{"id":"1a997cc0def699b73cd8d2de9306a9de","_format":"hh-sol-build-info-1","solcVersion":"0.8.25","solcLongVersion":"0.8.25+commit.b61c2a91","input":{"language":"Solidity","sources":{"@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/ExecutorOptions.sol":{"content":"// SPDX-License-Identifier: LZBL-1.2\n\npragma solidity ^0.8.20;\n\nimport \"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\";\n\nlibrary ExecutorOptions {\n    using CalldataBytesLib for bytes;\n\n    uint8 internal constant WORKER_ID = 1;\n\n    uint8 internal constant OPTION_TYPE_LZRECEIVE = 1;\n    uint8 internal constant OPTION_TYPE_NATIVE_DROP = 2;\n    uint8 internal constant OPTION_TYPE_LZCOMPOSE = 3;\n    uint8 internal constant OPTION_TYPE_ORDERED_EXECUTION = 4;\n    uint8 internal constant OPTION_TYPE_LZREAD = 5;\n\n    error Executor_InvalidLzReceiveOption();\n    error Executor_InvalidNativeDropOption();\n    error Executor_InvalidLzComposeOption();\n    error Executor_InvalidLzReadOption();\n\n    /// @dev decode the next executor option from the options starting from the specified cursor\n    /// @param _options [executor_id][executor_option][executor_id][executor_option]...\n    ///        executor_option = [option_size][option_type][option]\n    ///        option_size = len(option_type) + len(option)\n    ///        executor_id: uint8, option_size: uint16, option_type: uint8, option: bytes\n    /// @param _cursor the cursor to start decoding from\n    /// @return optionType the type of the option\n    /// @return option the option of the executor\n    /// @return cursor the cursor to start decoding the next executor option\n    function nextExecutorOption(\n        bytes calldata _options,\n        uint256 _cursor\n    ) internal pure returns (uint8 optionType, bytes calldata option, uint256 cursor) {\n        unchecked {\n            // skip worker id\n            cursor = _cursor + 1;\n\n            // read option size\n            uint16 size = _options.toU16(cursor);\n            cursor += 2;\n\n            // read option type\n            optionType = _options.toU8(cursor);\n\n            // startCursor and endCursor are used to slice the option from _options\n            uint256 startCursor = cursor + 1; // skip option type\n            uint256 endCursor = cursor + size;\n            option = _options[startCursor:endCursor];\n            cursor += size;\n        }\n    }\n\n    function decodeLzReceiveOption(bytes calldata _option) internal pure returns (uint128 gas, uint128 value) {\n        if (_option.length != 16 && _option.length != 32) revert Executor_InvalidLzReceiveOption();\n        gas = _option.toU128(0);\n        value = _option.length == 32 ? _option.toU128(16) : 0;\n    }\n\n    function decodeNativeDropOption(bytes calldata _option) internal pure returns (uint128 amount, bytes32 receiver) {\n        if (_option.length != 48) revert Executor_InvalidNativeDropOption();\n        amount = _option.toU128(0);\n        receiver = _option.toB32(16);\n    }\n\n    function decodeLzComposeOption(\n        bytes calldata _option\n    ) internal pure returns (uint16 index, uint128 gas, uint128 value) {\n        if (_option.length != 18 && _option.length != 34) revert Executor_InvalidLzComposeOption();\n        index = _option.toU16(0);\n        gas = _option.toU128(2);\n        value = _option.length == 34 ? _option.toU128(18) : 0;\n    }\n\n    function decodeLzReadOption(\n        bytes calldata _option\n    ) internal pure returns (uint128 gas, uint32 calldataSize, uint128 value) {\n        if (_option.length != 20 && _option.length != 36) revert Executor_InvalidLzReadOption();\n        gas = _option.toU128(0);\n        calldataSize = _option.toU32(16);\n        value = _option.length == 36 ? _option.toU128(20) : 0;\n    }\n\n    function encodeLzReceiveOption(uint128 _gas, uint128 _value) internal pure returns (bytes memory) {\n        return _value == 0 ? abi.encodePacked(_gas) : abi.encodePacked(_gas, _value);\n    }\n\n    function encodeNativeDropOption(uint128 _amount, bytes32 _receiver) internal pure returns (bytes memory) {\n        return abi.encodePacked(_amount, _receiver);\n    }\n\n    function encodeLzComposeOption(uint16 _index, uint128 _gas, uint128 _value) internal pure returns (bytes memory) {\n        return _value == 0 ? abi.encodePacked(_index, _gas) : abi.encodePacked(_index, _gas, _value);\n    }\n\n    function encodeLzReadOption(\n        uint128 _gas,\n        uint32 _calldataSize,\n        uint128 _value\n    ) internal pure returns (bytes memory) {\n        return _value == 0 ? abi.encodePacked(_gas, _calldataSize) : abi.encodePacked(_gas, _calldataSize, _value);\n    }\n}\n"},"@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol":{"content":"// SPDX-License-Identifier: LZBL-1.2\n\npragma solidity ^0.8.20;\n\nimport { BytesLib } from \"solidity-bytes-utils/contracts/BytesLib.sol\";\n\nimport { BitMap256 } from \"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\";\nimport { CalldataBytesLib } from \"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\";\n\nlibrary DVNOptions {\n    using CalldataBytesLib for bytes;\n    using BytesLib for bytes;\n\n    uint8 internal constant WORKER_ID = 2;\n    uint8 internal constant OPTION_TYPE_PRECRIME = 1;\n\n    error DVN_InvalidDVNIdx();\n    error DVN_InvalidDVNOptions(uint256 cursor);\n\n    /// @dev group dvn options by its idx\n    /// @param _options [dvn_id][dvn_option][dvn_id][dvn_option]...\n    ///        dvn_option = [option_size][dvn_idx][option_type][option]\n    ///        option_size = len(dvn_idx) + len(option_type) + len(option)\n    ///        dvn_id: uint8, dvn_idx: uint8, option_size: uint16, option_type: uint8, option: bytes\n    /// @return dvnOptions the grouped options, still share the same format of _options\n    /// @return dvnIndices the dvn indices\n    function groupDVNOptionsByIdx(\n        bytes memory _options\n    ) internal pure returns (bytes[] memory dvnOptions, uint8[] memory dvnIndices) {\n        if (_options.length == 0) return (dvnOptions, dvnIndices);\n\n        uint8 numDVNs = getNumDVNs(_options);\n\n        // if there is only 1 dvn, we can just return the whole options\n        if (numDVNs == 1) {\n            dvnOptions = new bytes[](1);\n            dvnOptions[0] = _options;\n\n            dvnIndices = new uint8[](1);\n            dvnIndices[0] = _options.toUint8(3); // dvn idx\n            return (dvnOptions, dvnIndices);\n        }\n\n        // otherwise, we need to group the options by dvn_idx\n        dvnIndices = new uint8[](numDVNs);\n        dvnOptions = new bytes[](numDVNs);\n        unchecked {\n            uint256 cursor = 0;\n            uint256 start = 0;\n            uint8 lastDVNIdx = 255; // 255 is an invalid dvn_idx\n\n            while (cursor < _options.length) {\n                ++cursor; // skip worker_id\n\n                // optionLength asserted in getNumDVNs (skip check)\n                uint16 optionLength = _options.toUint16(cursor);\n                cursor += 2;\n\n                // dvnIdx asserted in getNumDVNs (skip check)\n                uint8 dvnIdx = _options.toUint8(cursor);\n\n                // dvnIdx must equal to the lastDVNIdx for the first option\n                // so it is always skipped in the first option\n                // this operation slices out options whenever the scan finds a different lastDVNIdx\n                if (lastDVNIdx == 255) {\n                    lastDVNIdx = dvnIdx;\n                } else if (dvnIdx != lastDVNIdx) {\n                    uint256 len = cursor - start - 3; // 3 is for worker_id and option_length\n                    bytes memory opt = _options.slice(start, len);\n                    _insertDVNOptions(dvnOptions, dvnIndices, lastDVNIdx, opt);\n\n                    // reset the start and lastDVNIdx\n                    start += len;\n                    lastDVNIdx = dvnIdx;\n                }\n\n                cursor += optionLength;\n            }\n\n            // skip check the cursor here because the cursor is asserted in getNumDVNs\n            // if we have reached the end of the options, we need to process the last dvn\n            uint256 size = cursor - start;\n            bytes memory op = _options.slice(start, size);\n            _insertDVNOptions(dvnOptions, dvnIndices, lastDVNIdx, op);\n\n            // revert dvnIndices to start from 0\n            for (uint8 i = 0; i < numDVNs; ++i) {\n                --dvnIndices[i];\n            }\n        }\n    }\n\n    function _insertDVNOptions(\n        bytes[] memory _dvnOptions,\n        uint8[] memory _dvnIndices,\n        uint8 _dvnIdx,\n        bytes memory _newOptions\n    ) internal pure {\n        // dvnIdx starts from 0 but default value of dvnIndices is 0,\n        // so we tell if the slot is empty by adding 1 to dvnIdx\n        if (_dvnIdx == 255) revert DVN_InvalidDVNIdx();\n        uint8 dvnIdxAdj = _dvnIdx + 1;\n\n        for (uint256 j = 0; j < _dvnIndices.length; ++j) {\n            uint8 index = _dvnIndices[j];\n            if (dvnIdxAdj == index) {\n                _dvnOptions[j] = abi.encodePacked(_dvnOptions[j], _newOptions);\n                break;\n            } else if (index == 0) {\n                // empty slot, that means it is the first time we see this dvn\n                _dvnIndices[j] = dvnIdxAdj;\n                _dvnOptions[j] = _newOptions;\n                break;\n            }\n        }\n    }\n\n    /// @dev get the number of unique dvns\n    /// @param _options the format is the same as groupDVNOptionsByIdx\n    function getNumDVNs(bytes memory _options) internal pure returns (uint8 numDVNs) {\n        uint256 cursor = 0;\n        BitMap256 bitmap;\n\n        // find number of unique dvn_idx\n        unchecked {\n            while (cursor < _options.length) {\n                ++cursor; // skip worker_id\n\n                uint16 optionLength = _options.toUint16(cursor);\n                cursor += 2;\n                if (optionLength < 2) revert DVN_InvalidDVNOptions(cursor); // at least 1 byte for dvn_idx and 1 byte for option_type\n\n                uint8 dvnIdx = _options.toUint8(cursor);\n\n                // if dvnIdx is not set, increment numDVNs\n                // max num of dvns is 255, 255 is an invalid dvn_idx\n                // The order of the dvnIdx is not required to be sequential, as enforcing the order may weaken\n                // the composability of the options. e.g. if we refrain from enforcing the order, an OApp that has\n                // already enforced certain options can append additional options to the end of the enforced\n                // ones without restrictions.\n                if (dvnIdx == 255) revert DVN_InvalidDVNIdx();\n                if (!bitmap.get(dvnIdx)) {\n                    ++numDVNs;\n                    bitmap = bitmap.set(dvnIdx);\n                }\n\n                cursor += optionLength;\n            }\n        }\n        if (cursor != _options.length) revert DVN_InvalidDVNOptions(cursor);\n    }\n\n    /// @dev decode the next dvn option from _options starting from the specified cursor\n    /// @param _options the format is the same as groupDVNOptionsByIdx\n    /// @param _cursor the cursor to start decoding\n    /// @return optionType the type of the option\n    /// @return option the option\n    /// @return cursor the cursor to start decoding the next option\n    function nextDVNOption(\n        bytes calldata _options,\n        uint256 _cursor\n    ) internal pure returns (uint8 optionType, bytes calldata option, uint256 cursor) {\n        unchecked {\n            // skip worker id\n            cursor = _cursor + 1;\n\n            // read option size\n            uint16 size = _options.toU16(cursor);\n            cursor += 2;\n\n            // read option type\n            optionType = _options.toU8(cursor + 1); // skip dvn_idx\n\n            // startCursor and endCursor are used to slice the option from _options\n            uint256 startCursor = cursor + 2; // skip option type and dvn_idx\n            uint256 endCursor = cursor + size;\n            option = _options[startCursor:endCursor];\n            cursor += size;\n        }\n    }\n}\n"},"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity >=0.8.0;\n\nimport { IMessageLibManager } from \"./IMessageLibManager.sol\";\nimport { IMessagingComposer } from \"./IMessagingComposer.sol\";\nimport { IMessagingChannel } from \"./IMessagingChannel.sol\";\nimport { IMessagingContext } from \"./IMessagingContext.sol\";\n\nstruct MessagingParams {\n    uint32 dstEid;\n    bytes32 receiver;\n    bytes message;\n    bytes options;\n    bool payInLzToken;\n}\n\nstruct MessagingReceipt {\n    bytes32 guid;\n    uint64 nonce;\n    MessagingFee fee;\n}\n\nstruct MessagingFee {\n    uint256 nativeFee;\n    uint256 lzTokenFee;\n}\n\nstruct Origin {\n    uint32 srcEid;\n    bytes32 sender;\n    uint64 nonce;\n}\n\ninterface ILayerZeroEndpointV2 is IMessageLibManager, IMessagingComposer, IMessagingChannel, IMessagingContext {\n    event PacketSent(bytes encodedPayload, bytes options, address sendLibrary);\n\n    event PacketVerified(Origin origin, address receiver, bytes32 payloadHash);\n\n    event PacketDelivered(Origin origin, address receiver);\n\n    event LzReceiveAlert(\n        address indexed receiver,\n        address indexed executor,\n        Origin origin,\n        bytes32 guid,\n        uint256 gas,\n        uint256 value,\n        bytes message,\n        bytes extraData,\n        bytes reason\n    );\n\n    event LzTokenSet(address token);\n\n    event DelegateSet(address sender, address delegate);\n\n    function quote(MessagingParams calldata _params, address _sender) external view returns (MessagingFee memory);\n\n    function send(\n        MessagingParams calldata _params,\n        address _refundAddress\n    ) external payable returns (MessagingReceipt memory);\n\n    function verify(Origin calldata _origin, address _receiver, bytes32 _payloadHash) external;\n\n    function verifiable(Origin calldata _origin, address _receiver) external view returns (bool);\n\n    function initializable(Origin calldata _origin, address _receiver) external view returns (bool);\n\n    function lzReceive(\n        Origin calldata _origin,\n        address _receiver,\n        bytes32 _guid,\n        bytes calldata _message,\n        bytes calldata _extraData\n    ) external payable;\n\n    // oapp can burn messages partially by calling this function with its own business logic if messages are verified in order\n    function clear(address _oapp, Origin calldata _origin, bytes32 _guid, bytes calldata _message) external;\n\n    function setLzToken(address _lzToken) external;\n\n    function lzToken() external view returns (address);\n\n    function nativeToken() external view returns (address);\n\n    function setDelegate(address _delegate) external;\n}\n"},"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity >=0.8.0;\n\nimport { Origin } from \"./ILayerZeroEndpointV2.sol\";\n\ninterface ILayerZeroReceiver {\n    function allowInitializePath(Origin calldata _origin) external view returns (bool);\n\n    function nextNonce(uint32 _eid, bytes32 _sender) external view returns (uint64);\n\n    function lzReceive(\n        Origin calldata _origin,\n        bytes32 _guid,\n        bytes calldata _message,\n        address _executor,\n        bytes calldata _extraData\n    ) external payable;\n}\n"},"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity >=0.8.0;\n\nstruct SetConfigParam {\n    uint32 eid;\n    uint32 configType;\n    bytes config;\n}\n\ninterface IMessageLibManager {\n    struct Timeout {\n        address lib;\n        uint256 expiry;\n    }\n\n    event LibraryRegistered(address newLib);\n    event DefaultSendLibrarySet(uint32 eid, address newLib);\n    event DefaultReceiveLibrarySet(uint32 eid, address newLib);\n    event DefaultReceiveLibraryTimeoutSet(uint32 eid, address oldLib, uint256 expiry);\n    event SendLibrarySet(address sender, uint32 eid, address newLib);\n    event ReceiveLibrarySet(address receiver, uint32 eid, address newLib);\n    event ReceiveLibraryTimeoutSet(address receiver, uint32 eid, address oldLib, uint256 timeout);\n\n    function registerLibrary(address _lib) external;\n\n    function isRegisteredLibrary(address _lib) external view returns (bool);\n\n    function getRegisteredLibraries() external view returns (address[] memory);\n\n    function setDefaultSendLibrary(uint32 _eid, address _newLib) external;\n\n    function defaultSendLibrary(uint32 _eid) external view returns (address);\n\n    function setDefaultReceiveLibrary(uint32 _eid, address _newLib, uint256 _gracePeriod) external;\n\n    function defaultReceiveLibrary(uint32 _eid) external view returns (address);\n\n    function setDefaultReceiveLibraryTimeout(uint32 _eid, address _lib, uint256 _expiry) external;\n\n    function defaultReceiveLibraryTimeout(uint32 _eid) external view returns (address lib, uint256 expiry);\n\n    function isSupportedEid(uint32 _eid) external view returns (bool);\n\n    function isValidReceiveLibrary(address _receiver, uint32 _eid, address _lib) external view returns (bool);\n\n    /// ------------------- OApp interfaces -------------------\n    function setSendLibrary(address _oapp, uint32 _eid, address _newLib) external;\n\n    function getSendLibrary(address _sender, uint32 _eid) external view returns (address lib);\n\n    function isDefaultSendLibrary(address _sender, uint32 _eid) external view returns (bool);\n\n    function setReceiveLibrary(address _oapp, uint32 _eid, address _newLib, uint256 _gracePeriod) external;\n\n    function getReceiveLibrary(address _receiver, uint32 _eid) external view returns (address lib, bool isDefault);\n\n    function setReceiveLibraryTimeout(address _oapp, uint32 _eid, address _lib, uint256 _expiry) external;\n\n    function receiveLibraryTimeout(address _receiver, uint32 _eid) external view returns (address lib, uint256 expiry);\n\n    function setConfig(address _oapp, address _lib, SetConfigParam[] calldata _params) external;\n\n    function getConfig(\n        address _oapp,\n        address _lib,\n        uint32 _eid,\n        uint32 _configType\n    ) external view returns (bytes memory config);\n}\n"},"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity >=0.8.0;\n\ninterface IMessagingChannel {\n    event InboundNonceSkipped(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce);\n    event PacketNilified(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\n    event PacketBurnt(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\n\n    function eid() external view returns (uint32);\n\n    // this is an emergency function if a message cannot be verified for some reasons\n    // required to provide _nextNonce to avoid race condition\n    function skip(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce) external;\n\n    function nilify(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\n\n    function burn(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\n\n    function nextGuid(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (bytes32);\n\n    function inboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\n\n    function outboundNonce(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (uint64);\n\n    function inboundPayloadHash(\n        address _receiver,\n        uint32 _srcEid,\n        bytes32 _sender,\n        uint64 _nonce\n    ) external view returns (bytes32);\n\n    function lazyInboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\n}\n"},"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity >=0.8.0;\n\ninterface IMessagingComposer {\n    event ComposeSent(address from, address to, bytes32 guid, uint16 index, bytes message);\n    event ComposeDelivered(address from, address to, bytes32 guid, uint16 index);\n    event LzComposeAlert(\n        address indexed from,\n        address indexed to,\n        address indexed executor,\n        bytes32 guid,\n        uint16 index,\n        uint256 gas,\n        uint256 value,\n        bytes message,\n        bytes extraData,\n        bytes reason\n    );\n\n    function composeQueue(\n        address _from,\n        address _to,\n        bytes32 _guid,\n        uint16 _index\n    ) external view returns (bytes32 messageHash);\n\n    function sendCompose(address _to, bytes32 _guid, uint16 _index, bytes calldata _message) external;\n\n    function lzCompose(\n        address _from,\n        address _to,\n        bytes32 _guid,\n        uint16 _index,\n        bytes calldata _message,\n        bytes calldata _extraData\n    ) external payable;\n}\n"},"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity >=0.8.0;\n\ninterface IMessagingContext {\n    function isSendingMessage() external view returns (bool);\n\n    function getSendContext() external view returns (uint32 dstEid, address sender);\n}\n"},"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol":{"content":"// SPDX-License-Identifier: LZBL-1.2\n\npragma solidity ^0.8.20;\n\nlibrary CalldataBytesLib {\n    function toU8(bytes calldata _bytes, uint256 _start) internal pure returns (uint8) {\n        return uint8(_bytes[_start]);\n    }\n\n    function toU16(bytes calldata _bytes, uint256 _start) internal pure returns (uint16) {\n        unchecked {\n            uint256 end = _start + 2;\n            return uint16(bytes2(_bytes[_start:end]));\n        }\n    }\n\n    function toU32(bytes calldata _bytes, uint256 _start) internal pure returns (uint32) {\n        unchecked {\n            uint256 end = _start + 4;\n            return uint32(bytes4(_bytes[_start:end]));\n        }\n    }\n\n    function toU64(bytes calldata _bytes, uint256 _start) internal pure returns (uint64) {\n        unchecked {\n            uint256 end = _start + 8;\n            return uint64(bytes8(_bytes[_start:end]));\n        }\n    }\n\n    function toU128(bytes calldata _bytes, uint256 _start) internal pure returns (uint128) {\n        unchecked {\n            uint256 end = _start + 16;\n            return uint128(bytes16(_bytes[_start:end]));\n        }\n    }\n\n    function toU256(bytes calldata _bytes, uint256 _start) internal pure returns (uint256) {\n        unchecked {\n            uint256 end = _start + 32;\n            return uint256(bytes32(_bytes[_start:end]));\n        }\n    }\n\n    function toAddr(bytes calldata _bytes, uint256 _start) internal pure returns (address) {\n        unchecked {\n            uint256 end = _start + 20;\n            return address(bytes20(_bytes[_start:end]));\n        }\n    }\n\n    function toB32(bytes calldata _bytes, uint256 _start) internal pure returns (bytes32) {\n        unchecked {\n            uint256 end = _start + 32;\n            return bytes32(_bytes[_start:end]);\n        }\n    }\n}\n"},"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol":{"content":"// SPDX-License-Identifier: MIT\n\n// modified from https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/structs/BitMaps.sol\npragma solidity ^0.8.20;\n\ntype BitMap256 is uint256;\n\nusing BitMaps for BitMap256 global;\n\nlibrary BitMaps {\n    /**\n     * @dev Returns whether the bit at `index` is set.\n     */\n    function get(BitMap256 bitmap, uint8 index) internal pure returns (bool) {\n        uint256 mask = 1 << index;\n        return BitMap256.unwrap(bitmap) & mask != 0;\n    }\n\n    /**\n     * @dev Sets the bit at `index`.\n     */\n    function set(BitMap256 bitmap, uint8 index) internal pure returns (BitMap256) {\n        uint256 mask = 1 << index;\n        return BitMap256.wrap(BitMap256.unwrap(bitmap) | mask);\n    }\n}\n"},"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppCoreUpgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.20;\n\nimport { OwnableUpgradeable } from \"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\";\nimport { IOAppCore, ILayerZeroEndpointV2 } from \"@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppCore.sol\";\n\n/**\n * @title OAppCore\n * @dev Abstract contract implementing the IOAppCore interface with basic OApp configurations.\n */\nabstract contract OAppCoreUpgradeable is IOAppCore, OwnableUpgradeable {\n    struct OAppCoreStorage {\n        mapping(uint32 => bytes32) peers;\n    }\n\n    // keccak256(abi.encode(uint256(keccak256(\"layerzerov2.storage.oappcore\")) - 1)) & ~bytes32(uint256(0xff))\n    bytes32 private constant OAPP_CORE_STORAGE_LOCATION =\n        0x72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f900;\n\n    function _getOAppCoreStorage() internal pure returns (OAppCoreStorage storage $) {\n        assembly {\n            $.slot := OAPP_CORE_STORAGE_LOCATION\n        }\n    }\n\n    // The LayerZero endpoint associated with the given OApp\n    ILayerZeroEndpointV2 public immutable endpoint;\n\n    /**\n     * @dev Constructor to initialize the OAppCore with the provided endpoint and delegate.\n     * @param _endpoint The address of the LOCAL Layer Zero endpoint.\n     */\n    constructor(address _endpoint) {\n        endpoint = ILayerZeroEndpointV2(_endpoint);\n    }\n\n    /**\n     * @dev Initializes the OAppCore with the provided delegate.\n     * @param _delegate The delegate capable of making OApp configurations inside of the endpoint.\n     *\n     * @dev The delegate typically should be set as the owner of the contract.\n     * @dev Ownable is not initialized here on purpose. It should be initialized in the child contract to\n     * accommodate the different version of Ownable.\n     */\n    function __OAppCore_init(address _delegate) internal onlyInitializing {\n        __OAppCore_init_unchained(_delegate);\n    }\n\n    function __OAppCore_init_unchained(address _delegate) internal onlyInitializing {\n        if (_delegate == address(0)) revert InvalidDelegate();\n        endpoint.setDelegate(_delegate);\n    }\n\n    /**\n     * @notice Returns the peer address (OApp instance) associated with a specific endpoint.\n     * @param _eid The endpoint ID.\n     * @return peer The address of the peer associated with the specified endpoint.\n     */\n    function peers(uint32 _eid) public view override returns (bytes32) {\n        OAppCoreStorage storage $ = _getOAppCoreStorage();\n        return $.peers[_eid];\n    }\n\n    /**\n     * @notice Sets the peer address (OApp instance) for a corresponding endpoint.\n     * @param _eid The endpoint ID.\n     * @param _peer The address of the peer to be associated with the corresponding endpoint.\n     *\n     * @dev Only the owner/admin of the OApp can call this function.\n     * @dev Indicates that the peer is trusted to send LayerZero messages to this OApp.\n     * @dev Set this to bytes32(0) to remove the peer address.\n     * @dev Peer is a bytes32 to accommodate non-evm chains.\n     */\n    function setPeer(uint32 _eid, bytes32 _peer) public virtual onlyOwner {\n        OAppCoreStorage storage $ = _getOAppCoreStorage();\n        $.peers[_eid] = _peer;\n        emit PeerSet(_eid, _peer);\n    }\n\n    /**\n     * @notice Internal function to get the peer address associated with a specific endpoint; reverts if NOT set.\n     * ie. the peer is set to bytes32(0).\n     * @param _eid The endpoint ID.\n     * @return peer The address of the peer associated with the specified endpoint.\n     */\n    function _getPeerOrRevert(uint32 _eid) internal view virtual returns (bytes32) {\n        OAppCoreStorage storage $ = _getOAppCoreStorage();\n        bytes32 peer = $.peers[_eid];\n        if (peer == bytes32(0)) revert NoPeer(_eid);\n        return peer;\n    }\n\n    /**\n     * @notice Sets the delegate address for the OApp.\n     * @param _delegate The address of the delegate to be set.\n     *\n     * @dev Only the owner/admin of the OApp can call this function.\n     * @dev Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\n     */\n    function setDelegate(address _delegate) public onlyOwner {\n        endpoint.setDelegate(_delegate);\n    }\n}\n"},"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppReceiverUpgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.20;\n\nimport { IOAppReceiver, Origin } from \"@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppReceiver.sol\";\nimport { OAppCoreUpgradeable } from \"./OAppCoreUpgradeable.sol\";\n\n/**\n * @title OAppReceiver\n * @dev Abstract contract implementing the ILayerZeroReceiver interface and extending OAppCore for OApp receivers.\n */\nabstract contract OAppReceiverUpgradeable is IOAppReceiver, OAppCoreUpgradeable {\n    // Custom error message for when the caller is not the registered endpoint/\n    error OnlyEndpoint(address addr);\n\n    // @dev The version of the OAppReceiver implementation.\n    // @dev Version is bumped when changes are made to this contract.\n    uint64 internal constant RECEIVER_VERSION = 2;\n\n    /**\n     * @param _delegate The delegate capable of making OApp configurations inside of the endpoint.\n     * @dev Ownable is not initialized here on purpose. It should be initialized in the child contract to\n     * accommodate the different version of Ownable.\n     */\n    function __OAppReceiver_init(address _delegate) internal onlyInitializing {\n        __OAppCore_init(_delegate);\n    }\n\n    function __OAppReceiver_init_unchained() internal onlyInitializing {}\n\n    /**\n     * @notice Retrieves the OApp version information.\n     * @return senderVersion The version of the OAppSender.sol contract.\n     * @return receiverVersion The version of the OAppReceiver.sol contract.\n     *\n     * @dev Providing 0 as the default for OAppSender version. Indicates that the OAppSender is not implemented.\n     * ie. this is a RECEIVE only OApp.\n     * @dev If the OApp uses both OAppSender and OAppReceiver, then this needs to be override returning the correct versions.\n     */\n    function oAppVersion() public view virtual returns (uint64 senderVersion, uint64 receiverVersion) {\n        return (0, RECEIVER_VERSION);\n    }\n\n    /**\n     * @notice Indicates whether an address is an approved composeMsg sender to the Endpoint.\n     * @dev _origin The origin information containing the source endpoint and sender address.\n     *  - srcEid: The source chain endpoint ID.\n     *  - sender: The sender address on the src chain.\n     *  - nonce: The nonce of the message.\n     * @dev _message The lzReceive payload.\n     * @param _sender The sender address.\n     * @return isSender Is a valid sender.\n     *\n     * @dev Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.\n     * @dev The default sender IS the OAppReceiver implementer.\n     */\n    function isComposeMsgSender(\n        Origin calldata /*_origin*/,\n        bytes calldata /*_message*/,\n        address _sender\n    ) public view virtual returns (bool) {\n        return _sender == address(this);\n    }\n\n    /**\n     * @notice Checks if the path initialization is allowed based on the provided origin.\n     * @param origin The origin information containing the source endpoint and sender address.\n     * @return Whether the path has been initialized.\n     *\n     * @dev This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.\n     * @dev This defaults to assuming if a peer has been set, its initialized.\n     * Can be overridden by the OApp if there is other logic to determine this.\n     */\n    function allowInitializePath(Origin calldata origin) public view virtual returns (bool) {\n        return peers(origin.srcEid) == origin.sender;\n    }\n\n    /**\n     * @notice Retrieves the next nonce for a given source endpoint and sender address.\n     * @dev _srcEid The source endpoint ID.\n     * @dev _sender The sender address.\n     * @return nonce The next nonce.\n     *\n     * @dev The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.\n     * @dev Is required by the off-chain executor to determine the OApp expects msg execution is ordered.\n     * @dev This is also enforced by the OApp.\n     * @dev By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.\n     */\n    function nextNonce(uint32, /*_srcEid*/ bytes32 /*_sender*/) public view virtual returns (uint64 nonce) {\n        return 0;\n    }\n\n    /**\n     * @dev Entry point for receiving messages or packets from the endpoint.\n     * @param _origin The origin information containing the source endpoint and sender address.\n     *  - srcEid: The source chain endpoint ID.\n     *  - sender: The sender address on the src chain.\n     *  - nonce: The nonce of the message.\n     * @param _guid The unique identifier for the received LayerZero message.\n     * @param _message The payload of the received message.\n     * @param _executor The address of the executor for the received message.\n     * @param _extraData Additional arbitrary data provided by the corresponding executor.\n     *\n     * @dev Entry point for receiving msg/packet from the LayerZero endpoint.\n     */\n    function lzReceive(\n        Origin calldata _origin,\n        bytes32 _guid,\n        bytes calldata _message,\n        address _executor,\n        bytes calldata _extraData\n    ) public payable virtual {\n        // Ensures that only the endpoint can attempt to lzReceive() messages to this OApp.\n        if (address(endpoint) != msg.sender) revert OnlyEndpoint(msg.sender);\n\n        // Ensure that the sender matches the expected peer for the source endpoint.\n        if (_getPeerOrRevert(_origin.srcEid) != _origin.sender) revert OnlyPeer(_origin.srcEid, _origin.sender);\n\n        // Call the internal OApp implementation of lzReceive.\n        _lzReceive(_origin, _guid, _message, _executor, _extraData);\n    }\n\n    /**\n     * @dev Internal function to implement lzReceive logic without needing to copy the basic parameter validation.\n     */\n    function _lzReceive(\n        Origin calldata _origin,\n        bytes32 _guid,\n        bytes calldata _message,\n        address _executor,\n        bytes calldata _extraData\n    ) internal virtual;\n}\n"},"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppSenderUpgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.20;\n\nimport { SafeERC20, IERC20 } from \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\";\nimport { MessagingParams, MessagingFee, MessagingReceipt } from \"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\";\nimport { OAppCoreUpgradeable } from \"./OAppCoreUpgradeable.sol\";\n\n/**\n * @title OAppSender\n * @dev Abstract contract implementing the OAppSender functionality for sending messages to a LayerZero endpoint.\n */\nabstract contract OAppSenderUpgradeable is OAppCoreUpgradeable {\n    using SafeERC20 for IERC20;\n\n    // Custom error messages\n    error NotEnoughNative(uint256 msgValue);\n    error LzTokenUnavailable();\n\n    // @dev The version of the OAppSender implementation.\n    // @dev Version is bumped when changes are made to this contract.\n    uint64 internal constant SENDER_VERSION = 1;\n\n    /**\n     * @param _delegate The delegate capable of making OApp configurations inside of the endpoint.\n     * @dev Ownable is not initialized here on purpose. It should be initialized in the child contract to\n     * accommodate the different version of Ownable.\n     */\n    function __OAppSender_init(address _delegate) internal onlyInitializing {\n        __OAppCore_init(_delegate);\n    }\n\n    function __OAppSender_init_unchained() internal onlyInitializing {}\n\n    /**\n     * @notice Retrieves the OApp version information.\n     * @return senderVersion The version of the OAppSender.sol contract.\n     * @return receiverVersion The version of the OAppReceiver.sol contract.\n     *\n     * @dev Providing 0 as the default for OAppReceiver version. Indicates that the OAppReceiver is not implemented.\n     * ie. this is a SEND only OApp.\n     * @dev If the OApp uses both OAppSender and OAppReceiver, then this needs to be override returning the correct versions\n     */\n    function oAppVersion() public view virtual returns (uint64 senderVersion, uint64 receiverVersion) {\n        return (SENDER_VERSION, 0);\n    }\n\n    /**\n     * @dev Internal function to interact with the LayerZero EndpointV2.quote() for fee calculation.\n     * @param _dstEid The destination endpoint ID.\n     * @param _message The message payload.\n     * @param _options Additional options for the message.\n     * @param _payInLzToken Flag indicating whether to pay the fee in LZ tokens.\n     * @return fee The calculated MessagingFee for the message.\n     *      - nativeFee: The native fee for the message.\n     *      - lzTokenFee: The LZ token fee for the message.\n     */\n    function _quote(\n        uint32 _dstEid,\n        bytes memory _message,\n        bytes memory _options,\n        bool _payInLzToken\n    ) internal view virtual returns (MessagingFee memory fee) {\n        return\n            endpoint.quote(\n                MessagingParams(_dstEid, _getPeerOrRevert(_dstEid), _message, _options, _payInLzToken),\n                address(this)\n            );\n    }\n\n    /**\n     * @dev Internal function to interact with the LayerZero EndpointV2.send() for sending a message.\n     * @param _dstEid The destination endpoint ID.\n     * @param _message The message payload.\n     * @param _options Additional options for the message.\n     * @param _fee The calculated LayerZero fee for the message.\n     *      - nativeFee: The native fee.\n     *      - lzTokenFee: The lzToken fee.\n     * @param _refundAddress The address to receive any excess fee values sent to the endpoint.\n     * @return receipt The receipt for the sent message.\n     *      - guid: The unique identifier for the sent message.\n     *      - nonce: The nonce of the sent message.\n     *      - fee: The LayerZero fee incurred for the message.\n     */\n    function _lzSend(\n        uint32 _dstEid,\n        bytes memory _message,\n        bytes memory _options,\n        MessagingFee memory _fee,\n        address _refundAddress\n    ) internal virtual returns (MessagingReceipt memory receipt) {\n        // @dev Push corresponding fees to the endpoint, any excess is sent back to the _refundAddress from the endpoint.\n        uint256 messageValue = _payNative(_fee.nativeFee);\n        if (_fee.lzTokenFee > 0) _payLzToken(_fee.lzTokenFee);\n\n        return\n            // solhint-disable-next-line check-send-result\n            endpoint.send{ value: messageValue }(\n                MessagingParams(_dstEid, _getPeerOrRevert(_dstEid), _message, _options, _fee.lzTokenFee > 0),\n                _refundAddress\n            );\n    }\n\n    /**\n     * @dev Internal function to pay the native fee associated with the message.\n     * @param _nativeFee The native fee to be paid.\n     * @return nativeFee The amount of native currency paid.\n     *\n     * @dev If the OApp needs to initiate MULTIPLE LayerZero messages in a single transaction,\n     * this will need to be overridden because msg.value would contain multiple lzFees.\n     * @dev Should be overridden in the event the LayerZero endpoint requires a different native currency.\n     * @dev Some EVMs use an ERC20 as a method for paying transactions/gasFees.\n     * @dev The endpoint is EITHER/OR, ie. it will NOT support both types of native payment at a time.\n     */\n    function _payNative(uint256 _nativeFee) internal virtual returns (uint256 nativeFee) {\n        if (msg.value != _nativeFee) revert NotEnoughNative(msg.value);\n        return _nativeFee;\n    }\n\n    /**\n     * @dev Internal function to pay the LZ token fee associated with the message.\n     * @param _lzTokenFee The LZ token fee to be paid.\n     *\n     * @dev If the caller is trying to pay in the specified lzToken, then the lzTokenFee is passed to the endpoint.\n     * @dev Any excess sent, is passed back to the specified _refundAddress in the _lzSend().\n     */\n    function _payLzToken(uint256 _lzTokenFee) internal virtual {\n        // @dev Cannot cache the token because it is not immutable in the endpoint.\n        address lzToken = endpoint.lzToken();\n        if (lzToken == address(0)) revert LzTokenUnavailable();\n\n        // Pay LZ token fee by sending tokens to the endpoint.\n        IERC20(lzToken).safeTransferFrom(msg.sender, address(endpoint), _lzTokenFee);\n    }\n}\n"},"@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppCore.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.20;\n\nimport { ILayerZeroEndpointV2 } from \"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\";\n\n/**\n * @title IOAppCore\n */\ninterface IOAppCore {\n    // Custom error messages\n    error OnlyPeer(uint32 eid, bytes32 sender);\n    error NoPeer(uint32 eid);\n    error InvalidEndpointCall();\n    error InvalidDelegate();\n\n    // Event emitted when a peer (OApp) is set for a corresponding endpoint\n    event PeerSet(uint32 eid, bytes32 peer);\n\n    /**\n     * @notice Retrieves the OApp version information.\n     * @return senderVersion The version of the OAppSender.sol contract.\n     * @return receiverVersion The version of the OAppReceiver.sol contract.\n     */\n    function oAppVersion() external view returns (uint64 senderVersion, uint64 receiverVersion);\n\n    /**\n     * @notice Retrieves the LayerZero endpoint associated with the OApp.\n     * @return iEndpoint The LayerZero endpoint as an interface.\n     */\n    function endpoint() external view returns (ILayerZeroEndpointV2 iEndpoint);\n\n    /**\n     * @notice Retrieves the peer (OApp) associated with a corresponding endpoint.\n     * @param _eid The endpoint ID.\n     * @return peer The peer address (OApp instance) associated with the corresponding endpoint.\n     */\n    function peers(uint32 _eid) external view returns (bytes32 peer);\n\n    /**\n     * @notice Sets the peer address (OApp instance) for a corresponding endpoint.\n     * @param _eid The endpoint ID.\n     * @param _peer The address of the peer to be associated with the corresponding endpoint.\n     */\n    function setPeer(uint32 _eid, bytes32 _peer) external;\n\n    /**\n     * @notice Sets the delegate address for the OApp Core.\n     * @param _delegate The address of the delegate to be set.\n     */\n    function setDelegate(address _delegate) external;\n}\n"},"@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppReceiver.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.20;\n\nimport { ILayerZeroReceiver, Origin } from \"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\";\n\ninterface IOAppReceiver is ILayerZeroReceiver {\n    /**\n     * @notice Indicates whether an address is an approved composeMsg sender to the Endpoint.\n     * @param _origin The origin information containing the source endpoint and sender address.\n     *  - srcEid: The source chain endpoint ID.\n     *  - sender: The sender address on the src chain.\n     *  - nonce: The nonce of the message.\n     * @param _message The lzReceive payload.\n     * @param _sender The sender address.\n     * @return isSender Is a valid sender.\n     *\n     * @dev Applications can optionally choose to implement a separate composeMsg sender that is NOT the bridging layer.\n     * @dev The default sender IS the OAppReceiver implementer.\n     */\n    function isComposeMsgSender(\n        Origin calldata _origin,\n        bytes calldata _message,\n        address _sender\n    ) external view returns (bool isSender);\n}\n"},"@layerzerolabs/oapp-evm/contracts/oapp/libs/OptionsBuilder.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.20;\n\nimport { BytesLib } from \"solidity-bytes-utils/contracts/BytesLib.sol\";\nimport { SafeCast } from \"@openzeppelin/contracts/utils/math/SafeCast.sol\";\n\nimport { ExecutorOptions } from \"@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/ExecutorOptions.sol\";\nimport { DVNOptions } from \"@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\";\n\n/**\n * @title OptionsBuilder\n * @dev Library for building and encoding various message options.\n */\nlibrary OptionsBuilder {\n    using SafeCast for uint256;\n    using BytesLib for bytes;\n\n    // Constants for options types\n    uint16 internal constant TYPE_1 = 1; // legacy options type 1\n    uint16 internal constant TYPE_2 = 2; // legacy options type 2\n    uint16 internal constant TYPE_3 = 3;\n\n    // Custom error message\n    error InvalidSize(uint256 max, uint256 actual);\n    error InvalidOptionType(uint16 optionType);\n\n    // Modifier to ensure only options of type 3 are used\n    modifier onlyType3(bytes memory _options) {\n        if (_options.toUint16(0) != TYPE_3) revert InvalidOptionType(_options.toUint16(0));\n        _;\n    }\n\n    /**\n     * @dev Creates a new options container with type 3.\n     * @return options The newly created options container.\n     */\n    function newOptions() internal pure returns (bytes memory) {\n        return abi.encodePacked(TYPE_3);\n    }\n\n    /**\n     * @dev Adds an executor LZ receive option to the existing options.\n     * @param _options The existing options container.\n     * @param _gas The gasLimit used on the lzReceive() function in the OApp.\n     * @param _value The msg.value passed to the lzReceive() function in the OApp.\n     * @return options The updated options container.\n     *\n     * @dev When multiples of this option are added, they are summed by the executor\n     * eg. if (_gas: 200k, and _value: 1 ether) AND (_gas: 100k, _value: 0.5 ether) are sent in an option to the LayerZeroEndpoint,\n     * that becomes (300k, 1.5 ether) when the message is executed on the remote lzReceive() function.\n     */\n    function addExecutorLzReceiveOption(\n        bytes memory _options,\n        uint128 _gas,\n        uint128 _value\n    ) internal pure onlyType3(_options) returns (bytes memory) {\n        bytes memory option = ExecutorOptions.encodeLzReceiveOption(_gas, _value);\n        return addExecutorOption(_options, ExecutorOptions.OPTION_TYPE_LZRECEIVE, option);\n    }\n\n    /**\n     * @dev Adds an executor native drop option to the existing options.\n     * @param _options The existing options container.\n     * @param _amount The amount for the native value that is airdropped to the 'receiver'.\n     * @param _receiver The receiver address for the native drop option.\n     * @return options The updated options container.\n     *\n     * @dev When multiples of this option are added, they are summed by the executor on the remote chain.\n     */\n    function addExecutorNativeDropOption(\n        bytes memory _options,\n        uint128 _amount,\n        bytes32 _receiver\n    ) internal pure onlyType3(_options) returns (bytes memory) {\n        bytes memory option = ExecutorOptions.encodeNativeDropOption(_amount, _receiver);\n        return addExecutorOption(_options, ExecutorOptions.OPTION_TYPE_NATIVE_DROP, option);\n    }\n\n    // /**\n    //  * @dev Adds an executor native drop option to the existing options.\n    //  * @param _options The existing options container.\n    //  * @param _amount The amount for the native value that is airdropped to the 'receiver'.\n    //  * @param _receiver The receiver address for the native drop option.\n    //  * @return options The updated options container.\n    //  *\n    //  * @dev When multiples of this option are added, they are summed by the executor on the remote chain.\n    //  */\n    function addExecutorLzReadOption(\n        bytes memory _options,\n        uint128 _gas,\n        uint32 _size,\n        uint128 _value\n    ) internal pure onlyType3(_options) returns (bytes memory) {\n        bytes memory option = ExecutorOptions.encodeLzReadOption(_gas, _size, _value);\n        return addExecutorOption(_options, ExecutorOptions.OPTION_TYPE_LZREAD, option);\n    }\n\n    /**\n     * @dev Adds an executor LZ compose option to the existing options.\n     * @param _options The existing options container.\n     * @param _index The index for the lzCompose() function call.\n     * @param _gas The gasLimit for the lzCompose() function call.\n     * @param _value The msg.value for the lzCompose() function call.\n     * @return options The updated options container.\n     *\n     * @dev When multiples of this option are added, they are summed PER index by the executor on the remote chain.\n     * @dev If the OApp sends N lzCompose calls on the remote, you must provide N incremented indexes starting with 0.\n     * ie. When your remote OApp composes (N = 3) messages, you must set this option for index 0,1,2\n     */\n    function addExecutorLzComposeOption(\n        bytes memory _options,\n        uint16 _index,\n        uint128 _gas,\n        uint128 _value\n    ) internal pure onlyType3(_options) returns (bytes memory) {\n        bytes memory option = ExecutorOptions.encodeLzComposeOption(_index, _gas, _value);\n        return addExecutorOption(_options, ExecutorOptions.OPTION_TYPE_LZCOMPOSE, option);\n    }\n\n    /**\n     * @dev Adds an executor ordered execution option to the existing options.\n     * @param _options The existing options container.\n     * @return options The updated options container.\n     */\n    function addExecutorOrderedExecutionOption(\n        bytes memory _options\n    ) internal pure onlyType3(_options) returns (bytes memory) {\n        return addExecutorOption(_options, ExecutorOptions.OPTION_TYPE_ORDERED_EXECUTION, bytes(\"\"));\n    }\n\n    /**\n     * @dev Adds a DVN pre-crime option to the existing options.\n     * @param _options The existing options container.\n     * @param _dvnIdx The DVN index for the pre-crime option.\n     * @return options The updated options container.\n     */\n    function addDVNPreCrimeOption(\n        bytes memory _options,\n        uint8 _dvnIdx\n    ) internal pure onlyType3(_options) returns (bytes memory) {\n        return addDVNOption(_options, _dvnIdx, DVNOptions.OPTION_TYPE_PRECRIME, bytes(\"\"));\n    }\n\n    /**\n     * @dev Adds an executor option to the existing options.\n     * @param _options The existing options container.\n     * @param _optionType The type of the executor option.\n     * @param _option The encoded data for the executor option.\n     * @return options The updated options container.\n     */\n    function addExecutorOption(\n        bytes memory _options,\n        uint8 _optionType,\n        bytes memory _option\n    ) internal pure onlyType3(_options) returns (bytes memory) {\n        return\n            abi.encodePacked(\n                _options,\n                ExecutorOptions.WORKER_ID,\n                _option.length.toUint16() + 1, // +1 for optionType\n                _optionType,\n                _option\n            );\n    }\n\n    /**\n     * @dev Adds a DVN option to the existing options.\n     * @param _options The existing options container.\n     * @param _dvnIdx The DVN index for the DVN option.\n     * @param _optionType The type of the DVN option.\n     * @param _option The encoded data for the DVN option.\n     * @return options The updated options container.\n     */\n    function addDVNOption(\n        bytes memory _options,\n        uint8 _dvnIdx,\n        uint8 _optionType,\n        bytes memory _option\n    ) internal pure onlyType3(_options) returns (bytes memory) {\n        return\n            abi.encodePacked(\n                _options,\n                DVNOptions.WORKER_ID,\n                _option.length.toUint16() + 2, // +2 for optionType and dvnIdx\n                _dvnIdx,\n                _optionType,\n                _option\n            );\n    }\n\n    /**\n     * @dev Encodes legacy options of type 1.\n     * @param _executionGas The gasLimit value passed to lzReceive().\n     * @return legacyOptions The encoded legacy options.\n     */\n    function encodeLegacyOptionsType1(uint256 _executionGas) internal pure returns (bytes memory) {\n        if (_executionGas > type(uint128).max) revert InvalidSize(type(uint128).max, _executionGas);\n        return abi.encodePacked(TYPE_1, _executionGas);\n    }\n\n    /**\n     * @dev Encodes legacy options of type 2.\n     * @param _executionGas The gasLimit value passed to lzReceive().\n     * @param _nativeForDst The amount of native air dropped to the receiver.\n     * @param _receiver The _nativeForDst receiver address.\n     * @return legacyOptions The encoded legacy options of type 2.\n     */\n    function encodeLegacyOptionsType2(\n        uint256 _executionGas,\n        uint256 _nativeForDst,\n        bytes memory _receiver // @dev Use bytes instead of bytes32 in legacy type 2 for _receiver.\n    ) internal pure returns (bytes memory) {\n        if (_executionGas > type(uint128).max) revert InvalidSize(type(uint128).max, _executionGas);\n        if (_nativeForDst > type(uint128).max) revert InvalidSize(type(uint128).max, _nativeForDst);\n        if (_receiver.length > 32) revert InvalidSize(32, _receiver.length);\n        return abi.encodePacked(TYPE_2, _executionGas, _nativeForDst, _receiver);\n    }\n}\n"},"@layerzerolabs/solidity-examples/contracts/libraries/BytesLib.sol":{"content":"// SPDX-License-Identifier: Unlicense\n/*\n * @title Solidity Bytes Arrays Utils\n * @author Gonçalo Sá <goncalo.sa@consensys.net>\n *\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\n *      The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\n */\npragma solidity >=0.8.0 <0.9.0;\n\nlibrary BytesLib {\n    function concat(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bytes memory) {\n        bytes memory tempBytes;\n\n        assembly {\n            // Get a location of some free memory and store it in tempBytes as\n            // Solidity does for memory variables.\n            tempBytes := mload(0x40)\n\n            // Store the length of the first bytes array at the beginning of\n            // the memory for tempBytes.\n            let length := mload(_preBytes)\n            mstore(tempBytes, length)\n\n            // Maintain a memory counter for the current write location in the\n            // temp bytes array by adding the 32 bytes for the array length to\n            // the starting location.\n            let mc := add(tempBytes, 0x20)\n            // Stop copying when the memory counter reaches the length of the\n            // first bytes array.\n            let end := add(mc, length)\n\n            for {\n                // Initialize a copy counter to the start of the _preBytes data,\n                // 32 bytes into its memory.\n                let cc := add(_preBytes, 0x20)\n            } lt(mc, end) {\n                // Increase both counters by 32 bytes each iteration.\n                mc := add(mc, 0x20)\n                cc := add(cc, 0x20)\n            } {\n                // Write the _preBytes data into the tempBytes memory 32 bytes\n                // at a time.\n                mstore(mc, mload(cc))\n            }\n\n            // Add the length of _postBytes to the current length of tempBytes\n            // and store it as the new length in the first 32 bytes of the\n            // tempBytes memory.\n            length := mload(_postBytes)\n            mstore(tempBytes, add(length, mload(tempBytes)))\n\n            // Move the memory counter back from a multiple of 0x20 to the\n            // actual end of the _preBytes data.\n            mc := end\n            // Stop copying when the memory counter reaches the new combined\n            // length of the arrays.\n            end := add(mc, length)\n\n            for {\n                let cc := add(_postBytes, 0x20)\n            } lt(mc, end) {\n                mc := add(mc, 0x20)\n                cc := add(cc, 0x20)\n            } {\n                mstore(mc, mload(cc))\n            }\n\n            // Update the free-memory pointer by padding our last write location\n            // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\n            // next 32 byte block, then round down to the nearest multiple of\n            // 32. If the sum of the length of the two arrays is zero then add\n            // one before rounding down to leave a blank 32 bytes (the length block with 0).\n            mstore(\n                0x40,\n                and(\n                    add(add(end, iszero(add(length, mload(_preBytes)))), 31),\n                    not(31) // Round down to the nearest 32 bytes.\n                )\n            )\n        }\n\n        return tempBytes;\n    }\n\n    function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\n        assembly {\n            // Read the first 32 bytes of _preBytes storage, which is the length\n            // of the array. (We don't need to use the offset into the slot\n            // because arrays use the entire slot.)\n            let fslot := sload(_preBytes.slot)\n            // Arrays of 31 bytes or less have an even value in their slot,\n            // while longer arrays have an odd value. The actual length is\n            // the slot divided by two for odd values, and the lowest order\n            // byte divided by two for even values.\n            // If the slot is even, bitwise and the slot with 255 and divide by\n            // two to get the length. If the slot is odd, bitwise and the slot\n            // with -1 and divide by two.\n            let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\n            let mlength := mload(_postBytes)\n            let newlength := add(slength, mlength)\n            // slength can contain both the length and contents of the array\n            // if length < 32 bytes so let's prepare for that\n            // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\n            switch add(lt(slength, 32), lt(newlength, 32))\n            case 2 {\n                // Since the new array still fits in the slot, we just need to\n                // update the contents of the slot.\n                // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\n                sstore(\n                    _preBytes.slot,\n                    // all the modifications to the slot are inside this\n                    // next block\n                    add(\n                        // we can just add to the slot contents because the\n                        // bytes we want to change are the LSBs\n                        fslot,\n                        add(\n                            mul(\n                                div(\n                                    // load the bytes from memory\n                                    mload(add(_postBytes, 0x20)),\n                                    // zero all bytes to the right\n                                    exp(0x100, sub(32, mlength))\n                                ),\n                                // and now shift left the number of bytes to\n                                // leave space for the length in the slot\n                                exp(0x100, sub(32, newlength))\n                            ),\n                            // increase length by the double of the memory\n                            // bytes length\n                            mul(mlength, 2)\n                        )\n                    )\n                )\n            }\n            case 1 {\n                // The stored value fits in the slot, but the combined value\n                // will exceed it.\n                // get the keccak hash to get the contents of the array\n                mstore(0x0, _preBytes.slot)\n                let sc := add(keccak256(0x0, 0x20), div(slength, 32))\n\n                // save new length\n                sstore(_preBytes.slot, add(mul(newlength, 2), 1))\n\n                // The contents of the _postBytes array start 32 bytes into\n                // the structure. Our first read should obtain the `submod`\n                // bytes that can fit into the unused space in the last word\n                // of the stored array. To get this, we read 32 bytes starting\n                // from `submod`, so the data we read overlaps with the array\n                // contents by `submod` bytes. Masking the lowest-order\n                // `submod` bytes allows us to add that value directly to the\n                // stored value.\n\n                let submod := sub(32, slength)\n                let mc := add(_postBytes, submod)\n                let end := add(_postBytes, mlength)\n                let mask := sub(exp(0x100, submod), 1)\n\n                sstore(sc, add(and(fslot, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00), and(mload(mc), mask)))\n\n                for {\n                    mc := add(mc, 0x20)\n                    sc := add(sc, 1)\n                } lt(mc, end) {\n                    sc := add(sc, 1)\n                    mc := add(mc, 0x20)\n                } {\n                    sstore(sc, mload(mc))\n                }\n\n                mask := exp(0x100, sub(mc, end))\n\n                sstore(sc, mul(div(mload(mc), mask), mask))\n            }\n            default {\n                // get the keccak hash to get the contents of the array\n                mstore(0x0, _preBytes.slot)\n                // Start copying to the last used word of the stored array.\n                let sc := add(keccak256(0x0, 0x20), div(slength, 32))\n\n                // save new length\n                sstore(_preBytes.slot, add(mul(newlength, 2), 1))\n\n                // Copy over the first `submod` bytes of the new data as in\n                // case 1 above.\n                let slengthmod := mod(slength, 32)\n                let mlengthmod := mod(mlength, 32)\n                let submod := sub(32, slengthmod)\n                let mc := add(_postBytes, submod)\n                let end := add(_postBytes, mlength)\n                let mask := sub(exp(0x100, submod), 1)\n\n                sstore(sc, add(sload(sc), and(mload(mc), mask)))\n\n                for {\n                    sc := add(sc, 1)\n                    mc := add(mc, 0x20)\n                } lt(mc, end) {\n                    sc := add(sc, 1)\n                    mc := add(mc, 0x20)\n                } {\n                    sstore(sc, mload(mc))\n                }\n\n                mask := exp(0x100, sub(mc, end))\n\n                sstore(sc, mul(div(mload(mc), mask), mask))\n            }\n        }\n    }\n\n    function slice(\n        bytes memory _bytes,\n        uint _start,\n        uint _length\n    ) internal pure returns (bytes memory) {\n        require(_length + 31 >= _length, \"slice_overflow\");\n        require(_bytes.length >= _start + _length, \"slice_outOfBounds\");\n\n        bytes memory tempBytes;\n\n        assembly {\n            switch iszero(_length)\n            case 0 {\n                // Get a location of some free memory and store it in tempBytes as\n                // Solidity does for memory variables.\n                tempBytes := mload(0x40)\n\n                // The first word of the slice result is potentially a partial\n                // word read from the original array. To read it, we calculate\n                // the length of that partial word and start copying that many\n                // bytes into the array. The first word we copy will start with\n                // data we don't care about, but the last `lengthmod` bytes will\n                // land at the beginning of the contents of the new array. When\n                // we're done copying, we overwrite the full first word with\n                // the actual length of the slice.\n                let lengthmod := and(_length, 31)\n\n                // The multiplication in the next line is necessary\n                // because when slicing multiples of 32 bytes (lengthmod == 0)\n                // the following copy loop was copying the origin's length\n                // and then ending prematurely not copying everything it should.\n                let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\n                let end := add(mc, _length)\n\n                for {\n                    // The multiplication in the next line has the same exact purpose\n                    // as the one above.\n                    let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\n                } lt(mc, end) {\n                    mc := add(mc, 0x20)\n                    cc := add(cc, 0x20)\n                } {\n                    mstore(mc, mload(cc))\n                }\n\n                mstore(tempBytes, _length)\n\n                //update free-memory pointer\n                //allocating the array padded to 32 bytes like the compiler does now\n                mstore(0x40, and(add(mc, 31), not(31)))\n            }\n            //if we want a zero-length slice let's just return a zero-length array\n            default {\n                tempBytes := mload(0x40)\n                //zero out the 32 bytes slice we are about to return\n                //we need to do it because Solidity does not garbage collect\n                mstore(tempBytes, 0)\n\n                mstore(0x40, add(tempBytes, 0x20))\n            }\n        }\n\n        return tempBytes;\n    }\n\n    function toAddress(bytes memory _bytes, uint _start) internal pure returns (address) {\n        require(_bytes.length >= _start + 20, \"toAddress_outOfBounds\");\n        address tempAddress;\n\n        assembly {\n            tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\n        }\n\n        return tempAddress;\n    }\n\n    function toUint8(bytes memory _bytes, uint _start) internal pure returns (uint8) {\n        require(_bytes.length >= _start + 1, \"toUint8_outOfBounds\");\n        uint8 tempUint;\n\n        assembly {\n            tempUint := mload(add(add(_bytes, 0x1), _start))\n        }\n\n        return tempUint;\n    }\n\n    function toUint16(bytes memory _bytes, uint _start) internal pure returns (uint16) {\n        require(_bytes.length >= _start + 2, \"toUint16_outOfBounds\");\n        uint16 tempUint;\n\n        assembly {\n            tempUint := mload(add(add(_bytes, 0x2), _start))\n        }\n\n        return tempUint;\n    }\n\n    function toUint32(bytes memory _bytes, uint _start) internal pure returns (uint32) {\n        require(_bytes.length >= _start + 4, \"toUint32_outOfBounds\");\n        uint32 tempUint;\n\n        assembly {\n            tempUint := mload(add(add(_bytes, 0x4), _start))\n        }\n\n        return tempUint;\n    }\n\n    function toUint64(bytes memory _bytes, uint _start) internal pure returns (uint64) {\n        require(_bytes.length >= _start + 8, \"toUint64_outOfBounds\");\n        uint64 tempUint;\n\n        assembly {\n            tempUint := mload(add(add(_bytes, 0x8), _start))\n        }\n\n        return tempUint;\n    }\n\n    function toUint96(bytes memory _bytes, uint _start) internal pure returns (uint96) {\n        require(_bytes.length >= _start + 12, \"toUint96_outOfBounds\");\n        uint96 tempUint;\n\n        assembly {\n            tempUint := mload(add(add(_bytes, 0xc), _start))\n        }\n\n        return tempUint;\n    }\n\n    function toUint128(bytes memory _bytes, uint _start) internal pure returns (uint128) {\n        require(_bytes.length >= _start + 16, \"toUint128_outOfBounds\");\n        uint128 tempUint;\n\n        assembly {\n            tempUint := mload(add(add(_bytes, 0x10), _start))\n        }\n\n        return tempUint;\n    }\n\n    function toUint256(bytes memory _bytes, uint _start) internal pure returns (uint) {\n        require(_bytes.length >= _start + 32, \"toUint256_outOfBounds\");\n        uint tempUint;\n\n        assembly {\n            tempUint := mload(add(add(_bytes, 0x20), _start))\n        }\n\n        return tempUint;\n    }\n\n    function toBytes32(bytes memory _bytes, uint _start) internal pure returns (bytes32) {\n        require(_bytes.length >= _start + 32, \"toBytes32_outOfBounds\");\n        bytes32 tempBytes32;\n\n        assembly {\n            tempBytes32 := mload(add(add(_bytes, 0x20), _start))\n        }\n\n        return tempBytes32;\n    }\n\n    function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\n        bool success = true;\n\n        assembly {\n            let length := mload(_preBytes)\n\n            // if lengths don't match the arrays are not equal\n            switch eq(length, mload(_postBytes))\n            case 1 {\n                // cb is a circuit breaker in the for loop since there's\n                //  no said feature for inline assembly loops\n                // cb = 1 - don't breaker\n                // cb = 0 - break\n                let cb := 1\n\n                let mc := add(_preBytes, 0x20)\n                let end := add(mc, length)\n\n                for {\n                    let cc := add(_postBytes, 0x20)\n                    // the next line is the loop condition:\n                    // while(uint256(mc < end) + cb == 2)\n                } eq(add(lt(mc, end), cb), 2) {\n                    mc := add(mc, 0x20)\n                    cc := add(cc, 0x20)\n                } {\n                    // if any of these checks fails then arrays are not equal\n                    if iszero(eq(mload(mc), mload(cc))) {\n                        // unsuccess:\n                        success := 0\n                        cb := 0\n                    }\n                }\n            }\n            default {\n                // unsuccess:\n                success := 0\n            }\n        }\n\n        return success;\n    }\n\n    function equalStorage(bytes storage _preBytes, bytes memory _postBytes) internal view returns (bool) {\n        bool success = true;\n\n        assembly {\n            // we know _preBytes_offset is 0\n            let fslot := sload(_preBytes.slot)\n            // Decode the length of the stored array like in concatStorage().\n            let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\n            let mlength := mload(_postBytes)\n\n            // if lengths don't match the arrays are not equal\n            switch eq(slength, mlength)\n            case 1 {\n                // slength can contain both the length and contents of the array\n                // if length < 32 bytes so let's prepare for that\n                // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\n                if iszero(iszero(slength)) {\n                    switch lt(slength, 32)\n                    case 1 {\n                        // blank the last byte which is the length\n                        fslot := mul(div(fslot, 0x100), 0x100)\n\n                        if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\n                            // unsuccess:\n                            success := 0\n                        }\n                    }\n                    default {\n                        // cb is a circuit breaker in the for loop since there's\n                        //  no said feature for inline assembly loops\n                        // cb = 1 - don't breaker\n                        // cb = 0 - break\n                        let cb := 1\n\n                        // get the keccak hash to get the contents of the array\n                        mstore(0x0, _preBytes.slot)\n                        let sc := keccak256(0x0, 0x20)\n\n                        let mc := add(_postBytes, 0x20)\n                        let end := add(mc, mlength)\n\n                        // the next line is the loop condition:\n                        // while(uint256(mc < end) + cb == 2)\n                        for {\n\n                        } eq(add(lt(mc, end), cb), 2) {\n                            sc := add(sc, 1)\n                            mc := add(mc, 0x20)\n                        } {\n                            if iszero(eq(sload(sc), mload(mc))) {\n                                // unsuccess:\n                                success := 0\n                                cb := 0\n                            }\n                        }\n                    }\n                }\n            }\n            default {\n                // unsuccess:\n                success := 0\n            }\n        }\n\n        return success;\n    }\n}\n"},"@layerzerolabs/solidity-examples/contracts/libraries/ExcessivelySafeCall.sol":{"content":"// SPDX-License-Identifier: MIT OR Apache-2.0\npragma solidity >=0.7.6;\n\nlibrary ExcessivelySafeCall {\n    uint constant LOW_28_MASK = 0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff;\n\n    /// @notice Use when you _really_ really _really_ don't trust the called\n    /// contract. This prevents the called contract from causing reversion of\n    /// the caller in as many ways as we can.\n    /// @dev The main difference between this and a solidity low-level call is\n    /// that we limit the number of bytes that the callee can cause to be\n    /// copied to caller memory. This prevents stupid things like malicious\n    /// contracts returning 10,000,000 bytes causing a local OOG when copying\n    /// to memory.\n    /// @param _target The address to call\n    /// @param _gas The amount of gas to forward to the remote contract\n    /// @param _maxCopy The maximum number of bytes of returndata to copy\n    /// to memory.\n    /// @param _calldata The data to send to the remote contract\n    /// @return success and returndata, as `.call()`. Returndata is capped to\n    /// `_maxCopy` bytes.\n    function excessivelySafeCall(\n        address _target,\n        uint _gas,\n        uint16 _maxCopy,\n        bytes memory _calldata\n    ) internal returns (bool, bytes memory) {\n        // set up for assembly call\n        uint _toCopy;\n        bool _success;\n        bytes memory _returnData = new bytes(_maxCopy);\n        // dispatch message to recipient\n        // by assembly calling \"handle\" function\n        // we call via assembly to avoid memcopying a very large returndata\n        // returned by a malicious contract\n        assembly {\n            _success := call(\n                _gas, // gas\n                _target, // recipient\n                0, // ether value\n                add(_calldata, 0x20), // inloc\n                mload(_calldata), // inlen\n                0, // outloc\n                0 // outlen\n            )\n            // limit our copy to 256 bytes\n            _toCopy := returndatasize()\n            if gt(_toCopy, _maxCopy) {\n                _toCopy := _maxCopy\n            }\n            // Store the length of the copied bytes\n            mstore(_returnData, _toCopy)\n            // copy the bytes from returndata[0:_toCopy]\n            returndatacopy(add(_returnData, 0x20), 0, _toCopy)\n        }\n        return (_success, _returnData);\n    }\n\n    /// @notice Use when you _really_ really _really_ don't trust the called\n    /// contract. This prevents the called contract from causing reversion of\n    /// the caller in as many ways as we can.\n    /// @dev The main difference between this and a solidity low-level call is\n    /// that we limit the number of bytes that the callee can cause to be\n    /// copied to caller memory. This prevents stupid things like malicious\n    /// contracts returning 10,000,000 bytes causing a local OOG when copying\n    /// to memory.\n    /// @param _target The address to call\n    /// @param _gas The amount of gas to forward to the remote contract\n    /// @param _maxCopy The maximum number of bytes of returndata to copy\n    /// to memory.\n    /// @param _calldata The data to send to the remote contract\n    /// @return success and returndata, as `.call()`. Returndata is capped to\n    /// `_maxCopy` bytes.\n    function excessivelySafeStaticCall(\n        address _target,\n        uint _gas,\n        uint16 _maxCopy,\n        bytes memory _calldata\n    ) internal view returns (bool, bytes memory) {\n        // set up for assembly call\n        uint _toCopy;\n        bool _success;\n        bytes memory _returnData = new bytes(_maxCopy);\n        // dispatch message to recipient\n        // by assembly calling \"handle\" function\n        // we call via assembly to avoid memcopying a very large returndata\n        // returned by a malicious contract\n        assembly {\n            _success := staticcall(\n                _gas, // gas\n                _target, // recipient\n                add(_calldata, 0x20), // inloc\n                mload(_calldata), // inlen\n                0, // outloc\n                0 // outlen\n            )\n            // limit our copy to 256 bytes\n            _toCopy := returndatasize()\n            if gt(_toCopy, _maxCopy) {\n                _toCopy := _maxCopy\n            }\n            // Store the length of the copied bytes\n            mstore(_returnData, _toCopy)\n            // copy the bytes from returndata[0:_toCopy]\n            returndatacopy(add(_returnData, 0x20), 0, _toCopy)\n        }\n        return (_success, _returnData);\n    }\n\n    /**\n     * @notice Swaps function selectors in encoded contract calls\n     * @dev Allows reuse of encoded calldata for functions with identical\n     * argument types but different names. It simply swaps out the first 4 bytes\n     * for the new selector. This function modifies memory in place, and should\n     * only be used with caution.\n     * @param _newSelector The new 4-byte selector\n     * @param _buf The encoded contract args\n     */\n    function swapSelector(bytes4 _newSelector, bytes memory _buf) internal pure {\n        require(_buf.length >= 4);\n        uint _mask = LOW_28_MASK;\n        assembly {\n            // load the first word of\n            let _word := mload(add(_buf, 0x20))\n            // mask out the top 4 bytes\n            // /x\n            _word := and(_word, _mask)\n            _word := or(_newSelector, _word)\n            mstore(add(_buf, 0x20), _word)\n        }\n    }\n}\n"},"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroEndpoint.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity >=0.5.0;\n\nimport \"./ILayerZeroUserApplicationConfig.sol\";\n\ninterface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig {\n    // @notice send a LayerZero message to the specified address at a LayerZero endpoint.\n    // @param _dstChainId - the destination chain identifier\n    // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains\n    // @param _payload - a custom bytes payload to send to the destination contract\n    // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address\n    // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction\n    // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination\n    function send(\n        uint16 _dstChainId,\n        bytes calldata _destination,\n        bytes calldata _payload,\n        address payable _refundAddress,\n        address _zroPaymentAddress,\n        bytes calldata _adapterParams\n    ) external payable;\n\n    // @notice used by the messaging library to publish verified payload\n    // @param _srcChainId - the source chain identifier\n    // @param _srcAddress - the source contract (as bytes) at the source chain\n    // @param _dstAddress - the address on destination chain\n    // @param _nonce - the unbound message ordering nonce\n    // @param _gasLimit - the gas limit for external contract execution\n    // @param _payload - verified payload to send to the destination contract\n    function receivePayload(\n        uint16 _srcChainId,\n        bytes calldata _srcAddress,\n        address _dstAddress,\n        uint64 _nonce,\n        uint _gasLimit,\n        bytes calldata _payload\n    ) external;\n\n    // @notice get the inboundNonce of a lzApp from a source chain which could be EVM or non-EVM chain\n    // @param _srcChainId - the source chain identifier\n    // @param _srcAddress - the source chain contract address\n    function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint64);\n\n    // @notice get the outboundNonce from this source chain which, consequently, is always an EVM\n    // @param _srcAddress - the source chain contract address\n    function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view returns (uint64);\n\n    // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery\n    // @param _dstChainId - the destination chain identifier\n    // @param _userApplication - the user app address on this EVM chain\n    // @param _payload - the custom message to send over LayerZero\n    // @param _payInZRO - if false, user app pays the protocol fee in native token\n    // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain\n    function estimateFees(\n        uint16 _dstChainId,\n        address _userApplication,\n        bytes calldata _payload,\n        bool _payInZRO,\n        bytes calldata _adapterParam\n    ) external view returns (uint nativeFee, uint zroFee);\n\n    // @notice get this Endpoint's immutable source identifier\n    function getChainId() external view returns (uint16);\n\n    // @notice the interface to retry failed message on this Endpoint destination\n    // @param _srcChainId - the source chain identifier\n    // @param _srcAddress - the source chain contract address\n    // @param _payload - the payload to be retried\n    function retryPayload(\n        uint16 _srcChainId,\n        bytes calldata _srcAddress,\n        bytes calldata _payload\n    ) external;\n\n    // @notice query if any STORED payload (message blocking) at the endpoint.\n    // @param _srcChainId - the source chain identifier\n    // @param _srcAddress - the source chain contract address\n    function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool);\n\n    // @notice query if the _libraryAddress is valid for sending msgs.\n    // @param _userApplication - the user app address on this EVM chain\n    function getSendLibraryAddress(address _userApplication) external view returns (address);\n\n    // @notice query if the _libraryAddress is valid for receiving msgs.\n    // @param _userApplication - the user app address on this EVM chain\n    function getReceiveLibraryAddress(address _userApplication) external view returns (address);\n\n    // @notice query if the non-reentrancy guard for send() is on\n    // @return true if the guard is on. false otherwise\n    function isSendingPayload() external view returns (bool);\n\n    // @notice query if the non-reentrancy guard for receive() is on\n    // @return true if the guard is on. false otherwise\n    function isReceivingPayload() external view returns (bool);\n\n    // @notice get the configuration of the LayerZero messaging library of the specified version\n    // @param _version - messaging library version\n    // @param _chainId - the chainId for the pending config change\n    // @param _userApplication - the contract address of the user application\n    // @param _configType - type of configuration. every messaging library has its own convention.\n    function getConfig(\n        uint16 _version,\n        uint16 _chainId,\n        address _userApplication,\n        uint _configType\n    ) external view returns (bytes memory);\n\n    // @notice get the send() LayerZero messaging library version\n    // @param _userApplication - the contract address of the user application\n    function getSendVersion(address _userApplication) external view returns (uint16);\n\n    // @notice get the lzReceive() LayerZero messaging library version\n    // @param _userApplication - the contract address of the user application\n    function getReceiveVersion(address _userApplication) external view returns (uint16);\n}\n"},"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroReceiver.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity >=0.5.0;\n\ninterface ILayerZeroReceiver {\n    // @notice LayerZero endpoint will invoke this function to deliver the message on the destination\n    // @param _srcChainId - the source endpoint identifier\n    // @param _srcAddress - the source sending contract address from the source chain\n    // @param _nonce - the ordered message nonce\n    // @param _payload - the signed payload is the UA bytes has encoded to be sent\n    function lzReceive(\n        uint16 _srcChainId,\n        bytes calldata _srcAddress,\n        uint64 _nonce,\n        bytes calldata _payload\n    ) external;\n}\n"},"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroUserApplicationConfig.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity >=0.5.0;\n\ninterface ILayerZeroUserApplicationConfig {\n    // @notice set the configuration of the LayerZero messaging library of the specified version\n    // @param _version - messaging library version\n    // @param _chainId - the chainId for the pending config change\n    // @param _configType - type of configuration. every messaging library has its own convention.\n    // @param _config - configuration in the bytes. can encode arbitrary content.\n    function setConfig(\n        uint16 _version,\n        uint16 _chainId,\n        uint _configType,\n        bytes calldata _config\n    ) external;\n\n    // @notice set the send() LayerZero messaging library version to _version\n    // @param _version - new messaging library version\n    function setSendVersion(uint16 _version) external;\n\n    // @notice set the lzReceive() LayerZero messaging library version to _version\n    // @param _version - new messaging library version\n    function setReceiveVersion(uint16 _version) external;\n\n    // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\n    // @param _srcChainId - the chainId of the source chain\n    // @param _srcAddress - the contract address of the source contract at the source chain\n    function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\n}\n"},"@layerzerolabs/solidity-examples/contracts/lzApp/libs/LzLib.sol":{"content":"// SPDX-License-Identifier: BUSL-1.1\n\npragma solidity >=0.6.0;\npragma experimental ABIEncoderV2;\n\nlibrary LzLib {\n    // LayerZero communication\n    struct CallParams {\n        address payable refundAddress;\n        address zroPaymentAddress;\n    }\n\n    //---------------------------------------------------------------------------\n    // Address type handling\n\n    struct AirdropParams {\n        uint airdropAmount;\n        bytes32 airdropAddress;\n    }\n\n    function buildAdapterParams(LzLib.AirdropParams memory _airdropParams, uint _uaGasLimit) internal pure returns (bytes memory adapterParams) {\n        if (_airdropParams.airdropAmount == 0 && _airdropParams.airdropAddress == bytes32(0x0)) {\n            adapterParams = buildDefaultAdapterParams(_uaGasLimit);\n        } else {\n            adapterParams = buildAirdropAdapterParams(_uaGasLimit, _airdropParams);\n        }\n    }\n\n    // Build Adapter Params\n    function buildDefaultAdapterParams(uint _uaGas) internal pure returns (bytes memory) {\n        // txType 1\n        // bytes  [2       32      ]\n        // fields [txType  extraGas]\n        return abi.encodePacked(uint16(1), _uaGas);\n    }\n\n    function buildAirdropAdapterParams(uint _uaGas, AirdropParams memory _params) internal pure returns (bytes memory) {\n        require(_params.airdropAmount > 0, \"Airdrop amount must be greater than 0\");\n        require(_params.airdropAddress != bytes32(0x0), \"Airdrop address must be set\");\n\n        // txType 2\n        // bytes  [2       32        32            bytes[]         ]\n        // fields [txType  extraGas  dstNativeAmt  dstNativeAddress]\n        return abi.encodePacked(uint16(2), _uaGas, _params.airdropAmount, _params.airdropAddress);\n    }\n\n    function getGasLimit(bytes memory _adapterParams) internal pure returns (uint gasLimit) {\n        require(_adapterParams.length == 34 || _adapterParams.length > 66, \"Invalid adapterParams\");\n        assembly {\n            gasLimit := mload(add(_adapterParams, 34))\n        }\n    }\n\n    // Decode Adapter Params\n    function decodeAdapterParams(bytes memory _adapterParams)\n        internal\n        pure\n        returns (\n            uint16 txType,\n            uint uaGas,\n            uint airdropAmount,\n            address payable airdropAddress\n        )\n    {\n        require(_adapterParams.length == 34 || _adapterParams.length > 66, \"Invalid adapterParams\");\n        assembly {\n            txType := mload(add(_adapterParams, 2))\n            uaGas := mload(add(_adapterParams, 34))\n        }\n        require(txType == 1 || txType == 2, \"Unsupported txType\");\n        require(uaGas > 0, \"Gas too low\");\n\n        if (txType == 2) {\n            assembly {\n                airdropAmount := mload(add(_adapterParams, 66))\n                airdropAddress := mload(add(_adapterParams, 86))\n            }\n        }\n    }\n\n    //---------------------------------------------------------------------------\n    // Address type handling\n    function bytes32ToAddress(bytes32 _bytes32Address) internal pure returns (address _address) {\n        return address(uint160(uint(_bytes32Address)));\n    }\n\n    function addressToBytes32(address _address) internal pure returns (bytes32 _bytes32Address) {\n        return bytes32(uint(uint160(_address)));\n    }\n}\n"},"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\nimport \"./interfaces/ILayerZeroReceiver.sol\";\nimport \"./interfaces/ILayerZeroUserApplicationConfig.sol\";\nimport \"./interfaces/ILayerZeroEndpoint.sol\";\nimport \"../libraries/BytesLib.sol\";\n\n/*\n * a generic LzReceiver implementation\n */\nabstract contract LzApp is Ownable, ILayerZeroReceiver, ILayerZeroUserApplicationConfig {\n    using BytesLib for bytes;\n\n    // ua can not send payload larger than this by default, but it can be changed by the ua owner\n    uint public constant DEFAULT_PAYLOAD_SIZE_LIMIT = 10000;\n\n    ILayerZeroEndpoint public immutable lzEndpoint;\n    mapping(uint16 => bytes) public trustedRemoteLookup;\n    mapping(uint16 => mapping(uint16 => uint)) public minDstGasLookup;\n    mapping(uint16 => uint) public payloadSizeLimitLookup;\n    address public precrime;\n\n    event SetPrecrime(address precrime);\n    event SetTrustedRemote(uint16 _remoteChainId, bytes _path);\n    event SetTrustedRemoteAddress(uint16 _remoteChainId, bytes _remoteAddress);\n    event SetMinDstGas(uint16 _dstChainId, uint16 _type, uint _minDstGas);\n\n    constructor(address _endpoint) {\n        lzEndpoint = ILayerZeroEndpoint(_endpoint);\n    }\n\n    function lzReceive(\n        uint16 _srcChainId,\n        bytes calldata _srcAddress,\n        uint64 _nonce,\n        bytes calldata _payload\n    ) public virtual override {\n        // lzReceive must be called by the endpoint for security\n        require(_msgSender() == address(lzEndpoint), \"LzApp: invalid endpoint caller\");\n\n        bytes memory trustedRemote = trustedRemoteLookup[_srcChainId];\n        // if will still block the message pathway from (srcChainId, srcAddress). should not receive message from untrusted remote.\n        require(\n            _srcAddress.length == trustedRemote.length && trustedRemote.length > 0 && keccak256(_srcAddress) == keccak256(trustedRemote),\n            \"LzApp: invalid source sending contract\"\n        );\n\n        _blockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\n    }\n\n    // abstract function - the default behaviour of LayerZero is blocking. See: NonblockingLzApp if you dont need to enforce ordered messaging\n    function _blockingLzReceive(\n        uint16 _srcChainId,\n        bytes memory _srcAddress,\n        uint64 _nonce,\n        bytes memory _payload\n    ) internal virtual;\n\n    function _lzSend(\n        uint16 _dstChainId,\n        bytes memory _payload,\n        address payable _refundAddress,\n        address _zroPaymentAddress,\n        bytes memory _adapterParams,\n        uint _nativeFee\n    ) internal virtual {\n        bytes memory trustedRemote = trustedRemoteLookup[_dstChainId];\n        require(trustedRemote.length != 0, \"LzApp: destination chain is not a trusted source\");\n        _checkPayloadSize(_dstChainId, _payload.length);\n        lzEndpoint.send{value: _nativeFee}(_dstChainId, trustedRemote, _payload, _refundAddress, _zroPaymentAddress, _adapterParams);\n    }\n\n    function _checkGasLimit(\n        uint16 _dstChainId,\n        uint16 _type,\n        bytes memory _adapterParams,\n        uint _extraGas\n    ) internal view virtual {\n        uint providedGasLimit = _getGasLimit(_adapterParams);\n        uint minGasLimit = minDstGasLookup[_dstChainId][_type];\n        require(minGasLimit > 0, \"LzApp: minGasLimit not set\");\n        require(providedGasLimit >= minGasLimit + _extraGas, \"LzApp: gas limit is too low\");\n    }\n\n    function _getGasLimit(bytes memory _adapterParams) internal pure virtual returns (uint gasLimit) {\n        require(_adapterParams.length >= 34, \"LzApp: invalid adapterParams\");\n        assembly {\n            gasLimit := mload(add(_adapterParams, 34))\n        }\n    }\n\n    function _checkPayloadSize(uint16 _dstChainId, uint _payloadSize) internal view virtual {\n        uint payloadSizeLimit = payloadSizeLimitLookup[_dstChainId];\n        if (payloadSizeLimit == 0) {\n            // use default if not set\n            payloadSizeLimit = DEFAULT_PAYLOAD_SIZE_LIMIT;\n        }\n        require(_payloadSize <= payloadSizeLimit, \"LzApp: payload size is too large\");\n    }\n\n    //---------------------------UserApplication config----------------------------------------\n    function getConfig(\n        uint16 _version,\n        uint16 _chainId,\n        address,\n        uint _configType\n    ) external view returns (bytes memory) {\n        return lzEndpoint.getConfig(_version, _chainId, address(this), _configType);\n    }\n\n    // generic config for LayerZero user Application\n    function setConfig(\n        uint16 _version,\n        uint16 _chainId,\n        uint _configType,\n        bytes calldata _config\n    ) external override onlyOwner {\n        lzEndpoint.setConfig(_version, _chainId, _configType, _config);\n    }\n\n    function setSendVersion(uint16 _version) external override onlyOwner {\n        lzEndpoint.setSendVersion(_version);\n    }\n\n    function setReceiveVersion(uint16 _version) external override onlyOwner {\n        lzEndpoint.setReceiveVersion(_version);\n    }\n\n    function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external override onlyOwner {\n        lzEndpoint.forceResumeReceive(_srcChainId, _srcAddress);\n    }\n\n    // _path = abi.encodePacked(remoteAddress, localAddress)\n    // this function set the trusted path for the cross-chain communication\n    function setTrustedRemote(uint16 _remoteChainId, bytes calldata _path) external onlyOwner {\n        trustedRemoteLookup[_remoteChainId] = _path;\n        emit SetTrustedRemote(_remoteChainId, _path);\n    }\n\n    function setTrustedRemoteAddress(uint16 _remoteChainId, bytes calldata _remoteAddress) external onlyOwner {\n        trustedRemoteLookup[_remoteChainId] = abi.encodePacked(_remoteAddress, address(this));\n        emit SetTrustedRemoteAddress(_remoteChainId, _remoteAddress);\n    }\n\n    function getTrustedRemoteAddress(uint16 _remoteChainId) external view returns (bytes memory) {\n        bytes memory path = trustedRemoteLookup[_remoteChainId];\n        require(path.length != 0, \"LzApp: no trusted path record\");\n        return path.slice(0, path.length - 20); // the last 20 bytes should be address(this)\n    }\n\n    function setPrecrime(address _precrime) external onlyOwner {\n        precrime = _precrime;\n        emit SetPrecrime(_precrime);\n    }\n\n    function setMinDstGas(\n        uint16 _dstChainId,\n        uint16 _packetType,\n        uint _minGas\n    ) external onlyOwner {\n        minDstGasLookup[_dstChainId][_packetType] = _minGas;\n        emit SetMinDstGas(_dstChainId, _packetType, _minGas);\n    }\n\n    // if the size is 0, it means default size limit\n    function setPayloadSizeLimit(uint16 _dstChainId, uint _size) external onlyOwner {\n        payloadSizeLimitLookup[_dstChainId] = _size;\n    }\n\n    //--------------------------- VIEW FUNCTION ----------------------------------------\n    function isTrustedRemote(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool) {\n        bytes memory trustedSource = trustedRemoteLookup[_srcChainId];\n        return keccak256(trustedSource) == keccak256(_srcAddress);\n    }\n}\n"},"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol":{"content":"// SPDX-License-Identifier: BUSL-1.1\n\npragma solidity ^0.8.0;\npragma abicoder v2;\n\nimport \"../interfaces/ILayerZeroReceiver.sol\";\nimport \"../interfaces/ILayerZeroEndpoint.sol\";\nimport \"../libs/LzLib.sol\";\n\n/*\nlike a real LayerZero endpoint but can be mocked, which handle message transmission, verification, and receipt.\n- blocking: LayerZero provides ordered delivery of messages from a given sender to a destination chain.\n- non-reentrancy: endpoint has a non-reentrancy guard for both the send() and receive(), respectively.\n- adapter parameters: allows UAs to add arbitrary transaction params in the send() function, like airdrop on destination chain.\nunlike a real LayerZero endpoint, it is\n- no messaging library versioning\n- send() will short circuit to lzReceive()\n- no user application configuration\n*/\ncontract LZEndpointMock is ILayerZeroEndpoint {\n    uint8 internal constant _NOT_ENTERED = 1;\n    uint8 internal constant _ENTERED = 2;\n\n    mapping(address => address) public lzEndpointLookup;\n\n    uint16 public mockChainId;\n    bool public nextMsgBlocked;\n\n    // fee config\n    RelayerFeeConfig public relayerFeeConfig;\n    ProtocolFeeConfig public protocolFeeConfig;\n    uint public oracleFee;\n    bytes public defaultAdapterParams;\n\n    // path = remote addrss + local address\n    // inboundNonce = [srcChainId][path].\n    mapping(uint16 => mapping(bytes => uint64)) public inboundNonce;\n    //todo: this is a hack\n    // outboundNonce = [dstChainId][srcAddress]\n    mapping(uint16 => mapping(address => uint64)) public outboundNonce;\n    //    // outboundNonce = [dstChainId][path].\n    //    mapping(uint16 => mapping(bytes => uint64)) public outboundNonce;\n    // storedPayload = [srcChainId][path]\n    mapping(uint16 => mapping(bytes => StoredPayload)) public storedPayload;\n    // msgToDeliver = [srcChainId][path]\n    mapping(uint16 => mapping(bytes => QueuedPayload[])) public msgsToDeliver;\n\n    // reentrancy guard\n    uint8 internal _send_entered_state = 1;\n    uint8 internal _receive_entered_state = 1;\n\n    struct ProtocolFeeConfig {\n        uint zroFee;\n        uint nativeBP;\n    }\n\n    struct RelayerFeeConfig {\n        uint128 dstPriceRatio; // 10^10\n        uint128 dstGasPriceInWei;\n        uint128 dstNativeAmtCap;\n        uint64 baseGas;\n        uint64 gasPerByte;\n    }\n\n    struct StoredPayload {\n        uint64 payloadLength;\n        address dstAddress;\n        bytes32 payloadHash;\n    }\n\n    struct QueuedPayload {\n        address dstAddress;\n        uint64 nonce;\n        bytes payload;\n    }\n\n    modifier sendNonReentrant() {\n        require(_send_entered_state == _NOT_ENTERED, \"LayerZeroMock: no send reentrancy\");\n        _send_entered_state = _ENTERED;\n        _;\n        _send_entered_state = _NOT_ENTERED;\n    }\n\n    modifier receiveNonReentrant() {\n        require(_receive_entered_state == _NOT_ENTERED, \"LayerZeroMock: no receive reentrancy\");\n        _receive_entered_state = _ENTERED;\n        _;\n        _receive_entered_state = _NOT_ENTERED;\n    }\n\n    event UaForceResumeReceive(uint16 chainId, bytes srcAddress);\n    event PayloadCleared(uint16 srcChainId, bytes srcAddress, uint64 nonce, address dstAddress);\n    event PayloadStored(uint16 srcChainId, bytes srcAddress, address dstAddress, uint64 nonce, bytes payload, bytes reason);\n    event ValueTransferFailed(address indexed to, uint indexed quantity);\n\n    constructor(uint16 _chainId) {\n        mockChainId = _chainId;\n\n        // init config\n        relayerFeeConfig = RelayerFeeConfig({\n            dstPriceRatio: 1e10, // 1:1, same chain, same native coin\n            dstGasPriceInWei: 1e10,\n            dstNativeAmtCap: 1e19,\n            baseGas: 100,\n            gasPerByte: 1\n        });\n        protocolFeeConfig = ProtocolFeeConfig({zroFee: 1e18, nativeBP: 1000}); // BP 0.1\n        oracleFee = 1e16;\n        defaultAdapterParams = LzLib.buildDefaultAdapterParams(200000);\n    }\n\n    // ------------------------------ ILayerZeroEndpoint Functions ------------------------------\n    function send(\n        uint16 _chainId,\n        bytes memory _path,\n        bytes calldata _payload,\n        address payable _refundAddress,\n        address _zroPaymentAddress,\n        bytes memory _adapterParams\n    ) external payable override sendNonReentrant {\n        require(_path.length == 40, \"LayerZeroMock: incorrect remote address size\"); // only support evm chains\n\n        address dstAddr;\n        assembly {\n            dstAddr := mload(add(_path, 20))\n        }\n\n        address lzEndpoint = lzEndpointLookup[dstAddr];\n        require(lzEndpoint != address(0), \"LayerZeroMock: destination LayerZero Endpoint not found\");\n\n        // not handle zro token\n        bytes memory adapterParams = _adapterParams.length > 0 ? _adapterParams : defaultAdapterParams;\n        (uint nativeFee, ) = estimateFees(_chainId, msg.sender, _payload, _zroPaymentAddress != address(0x0), adapterParams);\n        require(msg.value >= nativeFee, \"LayerZeroMock: not enough native for fees\");\n\n        uint64 nonce = ++outboundNonce[_chainId][msg.sender];\n\n        // refund if they send too much\n        uint amount = msg.value - nativeFee;\n        if (amount > 0) {\n            (bool success, ) = _refundAddress.call{value: amount}(\"\");\n            require(success, \"LayerZeroMock: failed to refund\");\n        }\n\n        // Mock the process of receiving msg on dst chain\n        // Mock the relayer paying the dstNativeAddr the amount of extra native token\n        (, uint extraGas, uint dstNativeAmt, address payable dstNativeAddr) = LzLib.decodeAdapterParams(adapterParams);\n        if (dstNativeAmt > 0) {\n            (bool success, ) = dstNativeAddr.call{value: dstNativeAmt}(\"\");\n            if (!success) {\n                emit ValueTransferFailed(dstNativeAddr, dstNativeAmt);\n            }\n        }\n\n        bytes memory srcUaAddress = abi.encodePacked(msg.sender, dstAddr); // cast this address to bytes\n        bytes memory payload = _payload;\n        LZEndpointMock(lzEndpoint).receivePayload(mockChainId, srcUaAddress, dstAddr, nonce, extraGas, payload);\n    }\n\n    function receivePayload(\n        uint16 _srcChainId,\n        bytes calldata _path,\n        address _dstAddress,\n        uint64 _nonce,\n        uint _gasLimit,\n        bytes calldata _payload\n    ) external override receiveNonReentrant {\n        StoredPayload storage sp = storedPayload[_srcChainId][_path];\n\n        // assert and increment the nonce. no message shuffling\n        require(_nonce == ++inboundNonce[_srcChainId][_path], \"LayerZeroMock: wrong nonce\");\n\n        // queue the following msgs inside of a stack to simulate a successful send on src, but not fully delivered on dst\n        if (sp.payloadHash != bytes32(0)) {\n            QueuedPayload[] storage msgs = msgsToDeliver[_srcChainId][_path];\n            QueuedPayload memory newMsg = QueuedPayload(_dstAddress, _nonce, _payload);\n\n            // warning, might run into gas issues trying to forward through a bunch of queued msgs\n            // shift all the msgs over so we can treat this like a fifo via array.pop()\n            if (msgs.length > 0) {\n                // extend the array\n                msgs.push(newMsg);\n\n                // shift all the indexes up for pop()\n                for (uint i = 0; i < msgs.length - 1; i++) {\n                    msgs[i + 1] = msgs[i];\n                }\n\n                // put the newMsg at the bottom of the stack\n                msgs[0] = newMsg;\n            } else {\n                msgs.push(newMsg);\n            }\n        } else if (nextMsgBlocked) {\n            storedPayload[_srcChainId][_path] = StoredPayload(uint64(_payload.length), _dstAddress, keccak256(_payload));\n            emit PayloadStored(_srcChainId, _path, _dstAddress, _nonce, _payload, bytes(\"\"));\n            // ensure the next msgs that go through are no longer blocked\n            nextMsgBlocked = false;\n        } else {\n            try ILayerZeroReceiver(_dstAddress).lzReceive{gas: _gasLimit}(_srcChainId, _path, _nonce, _payload) {} catch (bytes memory reason) {\n                storedPayload[_srcChainId][_path] = StoredPayload(uint64(_payload.length), _dstAddress, keccak256(_payload));\n                emit PayloadStored(_srcChainId, _path, _dstAddress, _nonce, _payload, reason);\n                // ensure the next msgs that go through are no longer blocked\n                nextMsgBlocked = false;\n            }\n        }\n    }\n\n    function getInboundNonce(uint16 _chainID, bytes calldata _path) external view override returns (uint64) {\n        return inboundNonce[_chainID][_path];\n    }\n\n    function getOutboundNonce(uint16 _chainID, address _srcAddress) external view override returns (uint64) {\n        return outboundNonce[_chainID][_srcAddress];\n    }\n\n    function estimateFees(\n        uint16 _dstChainId,\n        address _userApplication,\n        bytes memory _payload,\n        bool _payInZRO,\n        bytes memory _adapterParams\n    ) public view override returns (uint nativeFee, uint zroFee) {\n        bytes memory adapterParams = _adapterParams.length > 0 ? _adapterParams : defaultAdapterParams;\n\n        // Relayer Fee\n        uint relayerFee = _getRelayerFee(_dstChainId, 1, _userApplication, _payload.length, adapterParams);\n\n        // LayerZero Fee\n        uint protocolFee = _getProtocolFees(_payInZRO, relayerFee, oracleFee);\n        _payInZRO ? zroFee = protocolFee : nativeFee = protocolFee;\n\n        // return the sum of fees\n        nativeFee = nativeFee + relayerFee + oracleFee;\n    }\n\n    function getChainId() external view override returns (uint16) {\n        return mockChainId;\n    }\n\n    function retryPayload(\n        uint16 _srcChainId,\n        bytes calldata _path,\n        bytes calldata _payload\n    ) external override {\n        StoredPayload storage sp = storedPayload[_srcChainId][_path];\n        require(sp.payloadHash != bytes32(0), \"LayerZeroMock: no stored payload\");\n        require(_payload.length == sp.payloadLength && keccak256(_payload) == sp.payloadHash, \"LayerZeroMock: invalid payload\");\n\n        address dstAddress = sp.dstAddress;\n        // empty the storedPayload\n        sp.payloadLength = 0;\n        sp.dstAddress = address(0);\n        sp.payloadHash = bytes32(0);\n\n        uint64 nonce = inboundNonce[_srcChainId][_path];\n\n        ILayerZeroReceiver(dstAddress).lzReceive(_srcChainId, _path, nonce, _payload);\n        emit PayloadCleared(_srcChainId, _path, nonce, dstAddress);\n    }\n\n    function hasStoredPayload(uint16 _srcChainId, bytes calldata _path) external view override returns (bool) {\n        StoredPayload storage sp = storedPayload[_srcChainId][_path];\n        return sp.payloadHash != bytes32(0);\n    }\n\n    function getSendLibraryAddress(address) external view override returns (address) {\n        return address(this);\n    }\n\n    function getReceiveLibraryAddress(address) external view override returns (address) {\n        return address(this);\n    }\n\n    function isSendingPayload() external view override returns (bool) {\n        return _send_entered_state == _ENTERED;\n    }\n\n    function isReceivingPayload() external view override returns (bool) {\n        return _receive_entered_state == _ENTERED;\n    }\n\n    function getConfig(\n        uint16, /*_version*/\n        uint16, /*_chainId*/\n        address, /*_ua*/\n        uint /*_configType*/\n    ) external pure override returns (bytes memory) {\n        return \"\";\n    }\n\n    function getSendVersion(\n        address /*_userApplication*/\n    ) external pure override returns (uint16) {\n        return 1;\n    }\n\n    function getReceiveVersion(\n        address /*_userApplication*/\n    ) external pure override returns (uint16) {\n        return 1;\n    }\n\n    function setConfig(\n        uint16, /*_version*/\n        uint16, /*_chainId*/\n        uint, /*_configType*/\n        bytes memory /*_config*/\n    ) external override {}\n\n    function setSendVersion(\n        uint16 /*version*/\n    ) external override {}\n\n    function setReceiveVersion(\n        uint16 /*version*/\n    ) external override {}\n\n    function forceResumeReceive(uint16 _srcChainId, bytes calldata _path) external override {\n        StoredPayload storage sp = storedPayload[_srcChainId][_path];\n        // revert if no messages are cached. safeguard malicious UA behaviour\n        require(sp.payloadHash != bytes32(0), \"LayerZeroMock: no stored payload\");\n        require(sp.dstAddress == msg.sender, \"LayerZeroMock: invalid caller\");\n\n        // empty the storedPayload\n        sp.payloadLength = 0;\n        sp.dstAddress = address(0);\n        sp.payloadHash = bytes32(0);\n\n        emit UaForceResumeReceive(_srcChainId, _path);\n\n        // resume the receiving of msgs after we force clear the \"stuck\" msg\n        _clearMsgQue(_srcChainId, _path);\n    }\n\n    // ------------------------------ Other Public/External Functions --------------------------------------------------\n\n    function getLengthOfQueue(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint) {\n        return msgsToDeliver[_srcChainId][_srcAddress].length;\n    }\n\n    // used to simulate messages received get stored as a payload\n    function blockNextMsg() external {\n        nextMsgBlocked = true;\n    }\n\n    function setDestLzEndpoint(address destAddr, address lzEndpointAddr) external {\n        lzEndpointLookup[destAddr] = lzEndpointAddr;\n    }\n\n    function setRelayerPrice(\n        uint128 _dstPriceRatio,\n        uint128 _dstGasPriceInWei,\n        uint128 _dstNativeAmtCap,\n        uint64 _baseGas,\n        uint64 _gasPerByte\n    ) external {\n        relayerFeeConfig.dstPriceRatio = _dstPriceRatio;\n        relayerFeeConfig.dstGasPriceInWei = _dstGasPriceInWei;\n        relayerFeeConfig.dstNativeAmtCap = _dstNativeAmtCap;\n        relayerFeeConfig.baseGas = _baseGas;\n        relayerFeeConfig.gasPerByte = _gasPerByte;\n    }\n\n    function setProtocolFee(uint _zroFee, uint _nativeBP) external {\n        protocolFeeConfig.zroFee = _zroFee;\n        protocolFeeConfig.nativeBP = _nativeBP;\n    }\n\n    function setOracleFee(uint _oracleFee) external {\n        oracleFee = _oracleFee;\n    }\n\n    function setDefaultAdapterParams(bytes memory _adapterParams) external {\n        defaultAdapterParams = _adapterParams;\n    }\n\n    // --------------------- Internal Functions ---------------------\n    // simulates the relayer pushing through the rest of the msgs that got delayed due to the stored payload\n    function _clearMsgQue(uint16 _srcChainId, bytes calldata _path) internal {\n        QueuedPayload[] storage msgs = msgsToDeliver[_srcChainId][_path];\n\n        // warning, might run into gas issues trying to forward through a bunch of queued msgs\n        while (msgs.length > 0) {\n            QueuedPayload memory payload = msgs[msgs.length - 1];\n            ILayerZeroReceiver(payload.dstAddress).lzReceive(_srcChainId, _path, payload.nonce, payload.payload);\n            msgs.pop();\n        }\n    }\n\n    function _getProtocolFees(\n        bool _payInZro,\n        uint _relayerFee,\n        uint _oracleFee\n    ) internal view returns (uint) {\n        if (_payInZro) {\n            return protocolFeeConfig.zroFee;\n        } else {\n            return ((_relayerFee + _oracleFee) * protocolFeeConfig.nativeBP) / 10000;\n        }\n    }\n\n    function _getRelayerFee(\n        uint16, /* _dstChainId */\n        uint16, /* _outboundProofType */\n        address, /* _userApplication */\n        uint _payloadSize,\n        bytes memory _adapterParams\n    ) internal view returns (uint) {\n        (uint16 txType, uint extraGas, uint dstNativeAmt, ) = LzLib.decodeAdapterParams(_adapterParams);\n        uint totalRemoteToken; // = baseGas + extraGas + requiredNativeAmount\n        if (txType == 2) {\n            require(relayerFeeConfig.dstNativeAmtCap >= dstNativeAmt, \"LayerZeroMock: dstNativeAmt too large \");\n            totalRemoteToken += dstNativeAmt;\n        }\n        // remoteGasTotal = dstGasPriceInWei * (baseGas + extraGas)\n        uint remoteGasTotal = relayerFeeConfig.dstGasPriceInWei * (relayerFeeConfig.baseGas + extraGas);\n        totalRemoteToken += remoteGasTotal;\n\n        // tokenConversionRate = dstPrice / localPrice\n        // basePrice = totalRemoteToken * tokenConversionRate\n        uint basePrice = (totalRemoteToken * relayerFeeConfig.dstPriceRatio) / 10**10;\n\n        // pricePerByte = (dstGasPriceInWei * gasPerBytes) * tokenConversionRate\n        uint pricePerByte = (relayerFeeConfig.dstGasPriceInWei * relayerFeeConfig.gasPerByte * relayerFeeConfig.dstPriceRatio) / 10**10;\n\n        return basePrice + _payloadSize * pricePerByte;\n    }\n}\n"},"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport \"./LzApp.sol\";\nimport \"../libraries/ExcessivelySafeCall.sol\";\n\n/*\n * the default LayerZero messaging behaviour is blocking, i.e. any failed message will block the channel\n * this abstract class try-catch all fail messages and store locally for future retry. hence, non-blocking\n * NOTE: if the srcAddress is not configured properly, it will still block the message pathway from (srcChainId, srcAddress)\n */\nabstract contract NonblockingLzApp is LzApp {\n    using ExcessivelySafeCall for address;\n\n    constructor(address _endpoint) LzApp(_endpoint) {}\n\n    mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32))) public failedMessages;\n\n    event MessageFailed(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes _payload, bytes _reason);\n    event RetryMessageSuccess(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes32 _payloadHash);\n\n    // overriding the virtual function in LzReceiver\n    function _blockingLzReceive(\n        uint16 _srcChainId,\n        bytes memory _srcAddress,\n        uint64 _nonce,\n        bytes memory _payload\n    ) internal virtual override {\n        (bool success, bytes memory reason) = address(this).excessivelySafeCall(\n            gasleft(),\n            150,\n            abi.encodeWithSelector(this.nonblockingLzReceive.selector, _srcChainId, _srcAddress, _nonce, _payload)\n        );\n        if (!success) {\n            _storeFailedMessage(_srcChainId, _srcAddress, _nonce, _payload, reason);\n        }\n    }\n\n    function _storeFailedMessage(\n        uint16 _srcChainId,\n        bytes memory _srcAddress,\n        uint64 _nonce,\n        bytes memory _payload,\n        bytes memory _reason\n    ) internal virtual {\n        failedMessages[_srcChainId][_srcAddress][_nonce] = keccak256(_payload);\n        emit MessageFailed(_srcChainId, _srcAddress, _nonce, _payload, _reason);\n    }\n\n    function nonblockingLzReceive(\n        uint16 _srcChainId,\n        bytes calldata _srcAddress,\n        uint64 _nonce,\n        bytes calldata _payload\n    ) public virtual {\n        // only internal transaction\n        require(_msgSender() == address(this), \"NonblockingLzApp: caller must be LzApp\");\n        _nonblockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\n    }\n\n    //@notice override this function\n    function _nonblockingLzReceive(\n        uint16 _srcChainId,\n        bytes memory _srcAddress,\n        uint64 _nonce,\n        bytes memory _payload\n    ) internal virtual;\n\n    function retryMessage(\n        uint16 _srcChainId,\n        bytes calldata _srcAddress,\n        uint64 _nonce,\n        bytes calldata _payload\n    ) public payable virtual {\n        // assert there is message to retry\n        bytes32 payloadHash = failedMessages[_srcChainId][_srcAddress][_nonce];\n        require(payloadHash != bytes32(0), \"NonblockingLzApp: no stored message\");\n        require(keccak256(_payload) == payloadHash, \"NonblockingLzApp: invalid payload\");\n        // clear the stored message\n        failedMessages[_srcChainId][_srcAddress][_nonce] = bytes32(0);\n        // execute the message. revert if it fails again\n        _nonblockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\n        emit RetryMessageSuccess(_srcChainId, _srcAddress, _nonce, payloadHash);\n    }\n}\n"},"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (access/Ownable2Step.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./OwnableUpgradeable.sol\";\nimport \"../proxy/utils/Initializable.sol\";\n\n/**\n * @dev Contract module which provides access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * By default, the owner account will be the one that deploys the contract. This\n * can later be changed with {transferOwnership} and {acceptOwnership}.\n *\n * This module is used through inheritance. It will make available all functions\n * from parent (Ownable).\n */\nabstract contract Ownable2StepUpgradeable is Initializable, OwnableUpgradeable {\n    function __Ownable2Step_init() internal onlyInitializing {\n        __Ownable_init_unchained();\n    }\n\n    function __Ownable2Step_init_unchained() internal onlyInitializing {\n    }\n    address private _pendingOwner;\n\n    event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner);\n\n    /**\n     * @dev Returns the address of the pending owner.\n     */\n    function pendingOwner() public view virtual returns (address) {\n        return _pendingOwner;\n    }\n\n    /**\n     * @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\n     * Can only be called by the current owner.\n     */\n    function transferOwnership(address newOwner) public virtual override onlyOwner {\n        _pendingOwner = newOwner;\n        emit OwnershipTransferStarted(owner(), newOwner);\n    }\n\n    /**\n     * @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\n     * Internal function without access restriction.\n     */\n    function _transferOwnership(address newOwner) internal virtual override {\n        delete _pendingOwner;\n        super._transferOwnership(newOwner);\n    }\n\n    /**\n     * @dev The new owner accepts the ownership transfer.\n     */\n    function acceptOwnership() external {\n        address sender = _msgSender();\n        require(pendingOwner() == sender, \"Ownable2Step: caller is not the new owner\");\n        _transferOwnership(sender);\n    }\n\n    /**\n     * @dev This empty reserved space is put in place to allow future versions to add new\n     * variables without shifting down storage in the inheritance chain.\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n     */\n    uint256[49] private __gap;\n}\n"},"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../utils/ContextUpgradeable.sol\";\nimport \"../proxy/utils/Initializable.sol\";\n\n/**\n * @dev Contract module which provides a basic access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * By default, the owner account will be the one that deploys the contract. This\n * can later be changed with {transferOwnership}.\n *\n * This module is used through inheritance. It will make available the modifier\n * `onlyOwner`, which can be applied to your functions to restrict their use to\n * the owner.\n */\nabstract contract OwnableUpgradeable is Initializable, ContextUpgradeable {\n    address private _owner;\n\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n    /**\n     * @dev Initializes the contract setting the deployer as the initial owner.\n     */\n    function __Ownable_init() internal onlyInitializing {\n        __Ownable_init_unchained();\n    }\n\n    function __Ownable_init_unchained() internal onlyInitializing {\n        _transferOwnership(_msgSender());\n    }\n\n    /**\n     * @dev Throws if called by any account other than the owner.\n     */\n    modifier onlyOwner() {\n        _checkOwner();\n        _;\n    }\n\n    /**\n     * @dev Returns the address of the current owner.\n     */\n    function owner() public view virtual returns (address) {\n        return _owner;\n    }\n\n    /**\n     * @dev Throws if the sender is not the owner.\n     */\n    function _checkOwner() internal view virtual {\n        require(owner() == _msgSender(), \"Ownable: caller is not the owner\");\n    }\n\n    /**\n     * @dev Leaves the contract without owner. It will not be possible to call\n     * `onlyOwner` functions anymore. Can only be called by the current owner.\n     *\n     * NOTE: Renouncing ownership will leave the contract without an owner,\n     * thereby removing any functionality that is only available to the owner.\n     */\n    function renounceOwnership() public virtual onlyOwner {\n        _transferOwnership(address(0));\n    }\n\n    /**\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\n     * Can only be called by the current owner.\n     */\n    function transferOwnership(address newOwner) public virtual onlyOwner {\n        require(newOwner != address(0), \"Ownable: new owner is the zero address\");\n        _transferOwnership(newOwner);\n    }\n\n    /**\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\n     * Internal function without access restriction.\n     */\n    function _transferOwnership(address newOwner) internal virtual {\n        address oldOwner = _owner;\n        _owner = newOwner;\n        emit OwnershipTransferred(oldOwner, newOwner);\n    }\n\n    /**\n     * @dev This empty reserved space is put in place to allow future versions to add new\n     * variables without shifting down storage in the inheritance chain.\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n     */\n    uint256[49] private __gap;\n}\n"},"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.1) (proxy/utils/Initializable.sol)\n\npragma solidity ^0.8.2;\n\nimport \"../../utils/AddressUpgradeable.sol\";\n\n/**\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n *\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n * reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n * case an upgrade adds a module that needs to be initialized.\n *\n * For example:\n *\n * [.hljs-theme-light.nopadding]\n * ```\n * contract MyToken is ERC20Upgradeable {\n *     function initialize() initializer public {\n *         __ERC20_init(\"MyToken\", \"MTK\");\n *     }\n * }\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n *     function initializeV2() reinitializer(2) public {\n *         __ERC20Permit_init(\"MyToken\");\n *     }\n * }\n * ```\n *\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n *\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n *\n * [CAUTION]\n * ====\n * Avoid leaving a contract uninitialized.\n *\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n *\n * [.hljs-theme-light.nopadding]\n * ```\n * /// @custom:oz-upgrades-unsafe-allow constructor\n * constructor() {\n *     _disableInitializers();\n * }\n * ```\n * ====\n */\nabstract contract Initializable {\n    /**\n     * @dev Indicates that the contract has been initialized.\n     * @custom:oz-retyped-from bool\n     */\n    uint8 private _initialized;\n\n    /**\n     * @dev Indicates that the contract is in the process of being initialized.\n     */\n    bool private _initializing;\n\n    /**\n     * @dev Triggered when the contract has been initialized or reinitialized.\n     */\n    event Initialized(uint8 version);\n\n    /**\n     * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n     * `onlyInitializing` functions can be used to initialize parent contracts.\n     *\n     * Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\n     * constructor.\n     *\n     * Emits an {Initialized} event.\n     */\n    modifier initializer() {\n        bool isTopLevelCall = !_initializing;\n        require(\n            (isTopLevelCall && _initialized < 1) || (!AddressUpgradeable.isContract(address(this)) && _initialized == 1),\n            \"Initializable: contract is already initialized\"\n        );\n        _initialized = 1;\n        if (isTopLevelCall) {\n            _initializing = true;\n        }\n        _;\n        if (isTopLevelCall) {\n            _initializing = false;\n            emit Initialized(1);\n        }\n    }\n\n    /**\n     * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n     * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n     * used to initialize parent contracts.\n     *\n     * A reinitializer may be used after the original initialization step. This is essential to configure modules that\n     * are added through upgrades and that require initialization.\n     *\n     * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\n     * cannot be nested. If one is invoked in the context of another, execution will revert.\n     *\n     * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\n     * a contract, executing them in the right order is up to the developer or operator.\n     *\n     * WARNING: setting the version to 255 will prevent any future reinitialization.\n     *\n     * Emits an {Initialized} event.\n     */\n    modifier reinitializer(uint8 version) {\n        require(!_initializing && _initialized < version, \"Initializable: contract is already initialized\");\n        _initialized = version;\n        _initializing = true;\n        _;\n        _initializing = false;\n        emit Initialized(version);\n    }\n\n    /**\n     * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n     * {initializer} and {reinitializer} modifiers, directly or indirectly.\n     */\n    modifier onlyInitializing() {\n        require(_initializing, \"Initializable: contract is not initializing\");\n        _;\n    }\n\n    /**\n     * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\n     * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\n     * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\n     * through proxies.\n     *\n     * Emits an {Initialized} event the first time it is successfully executed.\n     */\n    function _disableInitializers() internal virtual {\n        require(!_initializing, \"Initializable: contract is initializing\");\n        if (_initialized < type(uint8).max) {\n            _initialized = type(uint8).max;\n            emit Initialized(type(uint8).max);\n        }\n    }\n\n    /**\n     * @dev Returns the highest version that has been initialized. See {reinitializer}.\n     */\n    function _getInitializedVersion() internal view returns (uint8) {\n        return _initialized;\n    }\n\n    /**\n     * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.\n     */\n    function _isInitializing() internal view returns (bool) {\n        return _initializing;\n    }\n}\n"},"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/Address.sol)\n\npragma solidity ^0.8.1;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary AddressUpgradeable {\n    /**\n     * @dev Returns true if `account` is a contract.\n     *\n     * [IMPORTANT]\n     * ====\n     * It is unsafe to assume that an address for which this function returns\n     * false is an externally-owned account (EOA) and not a contract.\n     *\n     * Among others, `isContract` will return false for the following\n     * types of addresses:\n     *\n     *  - an externally-owned account\n     *  - a contract in construction\n     *  - an address where a contract will be created\n     *  - an address where a contract lived, but was destroyed\n     * ====\n     *\n     * [IMPORTANT]\n     * ====\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\n     *\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n     * constructor.\n     * ====\n     */\n    function isContract(address account) internal view returns (bool) {\n        // This method relies on extcodesize/address.code.length, which returns 0\n        // for contracts in construction, since the code is only stored at the end\n        // of the constructor execution.\n\n        return account.code.length > 0;\n    }\n\n    /**\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n     * `recipient`, forwarding all available gas and reverting on errors.\n     *\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\n     * imposed by `transfer`, making them unable to receive funds via\n     * `transfer`. {sendValue} removes this limitation.\n     *\n     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n     *\n     * IMPORTANT: because control is transferred to `recipient`, care must be\n     * taken to not create reentrancy vulnerabilities. Consider using\n     * {ReentrancyGuard} or the\n     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n     */\n    function sendValue(address payable recipient, uint256 amount) internal {\n        require(address(this).balance >= amount, \"Address: insufficient balance\");\n\n        (bool success, ) = recipient.call{value: amount}(\"\");\n        require(success, \"Address: unable to send value, recipient may have reverted\");\n    }\n\n    /**\n     * @dev Performs a Solidity function call using a low level `call`. A\n     * plain `call` is an unsafe replacement for a function call: use this\n     * function instead.\n     *\n     * If `target` reverts with a revert reason, it is bubbled up by this\n     * function (like regular Solidity function calls).\n     *\n     * Returns the raw returned data. To convert to the expected return value,\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n     *\n     * Requirements:\n     *\n     * - `target` must be a contract.\n     * - calling `target` with `data` must not revert.\n     *\n     * _Available since v3.1._\n     */\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n        return functionCallWithValue(target, data, 0, \"Address: low-level call failed\");\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n     * `errorMessage` as a fallback revert reason when `target` reverts.\n     *\n     * _Available since v3.1._\n     */\n    function functionCall(\n        address target,\n        bytes memory data,\n        string memory errorMessage\n    ) internal returns (bytes memory) {\n        return functionCallWithValue(target, data, 0, errorMessage);\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n     * but also transferring `value` wei to `target`.\n     *\n     * Requirements:\n     *\n     * - the calling contract must have an ETH balance of at least `value`.\n     * - the called Solidity function must be `payable`.\n     *\n     * _Available since v3.1._\n     */\n    function functionCallWithValue(\n        address target,\n        bytes memory data,\n        uint256 value\n    ) internal returns (bytes memory) {\n        return functionCallWithValue(target, data, value, \"Address: low-level call with value failed\");\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\n     *\n     * _Available since v3.1._\n     */\n    function functionCallWithValue(\n        address target,\n        bytes memory data,\n        uint256 value,\n        string memory errorMessage\n    ) internal returns (bytes memory) {\n        require(address(this).balance >= value, \"Address: insufficient balance for call\");\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n     * but performing a static call.\n     *\n     * _Available since v3.3._\n     */\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\n        return functionStaticCall(target, data, \"Address: low-level static call failed\");\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n     * but performing a static call.\n     *\n     * _Available since v3.3._\n     */\n    function functionStaticCall(\n        address target,\n        bytes memory data,\n        string memory errorMessage\n    ) internal view returns (bytes memory) {\n        (bool success, bytes memory returndata) = target.staticcall(data);\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\n    }\n\n    /**\n     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\n     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\n     *\n     * _Available since v4.8._\n     */\n    function verifyCallResultFromTarget(\n        address target,\n        bool success,\n        bytes memory returndata,\n        string memory errorMessage\n    ) internal view returns (bytes memory) {\n        if (success) {\n            if (returndata.length == 0) {\n                // only check isContract if the call was successful and the return data is empty\n                // otherwise we already know that it was a contract\n                require(isContract(target), \"Address: call to non-contract\");\n            }\n            return returndata;\n        } else {\n            _revert(returndata, errorMessage);\n        }\n    }\n\n    /**\n     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\n     * revert reason or using the provided one.\n     *\n     * _Available since v4.3._\n     */\n    function verifyCallResult(\n        bool success,\n        bytes memory returndata,\n        string memory errorMessage\n    ) internal pure returns (bytes memory) {\n        if (success) {\n            return returndata;\n        } else {\n            _revert(returndata, errorMessage);\n        }\n    }\n\n    function _revert(bytes memory returndata, string memory errorMessage) private pure {\n        // Look for revert reason and bubble it up if present\n        if (returndata.length > 0) {\n            // The easiest way to bubble the revert reason is using memory via assembly\n            /// @solidity memory-safe-assembly\n            assembly {\n                let returndata_size := mload(returndata)\n                revert(add(32, returndata), returndata_size)\n            }\n        } else {\n            revert(errorMessage);\n        }\n    }\n}\n"},"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\n\npragma solidity ^0.8.0;\nimport \"../proxy/utils/Initializable.sol\";\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract ContextUpgradeable is Initializable {\n    function __Context_init() internal onlyInitializing {\n    }\n\n    function __Context_init_unchained() internal onlyInitializing {\n    }\n    function _msgSender() internal view virtual returns (address) {\n        return msg.sender;\n    }\n\n    function _msgData() internal view virtual returns (bytes calldata) {\n        return msg.data;\n    }\n\n    /**\n     * @dev This empty reserved space is put in place to allow future versions to add new\n     * variables without shifting down storage in the inheritance chain.\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n     */\n    uint256[50] private __gap;\n}\n"},"@openzeppelin/contracts/access/AccessControl.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (access/AccessControl.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IAccessControl.sol\";\nimport \"../utils/Context.sol\";\nimport \"../utils/Strings.sol\";\nimport \"../utils/introspection/ERC165.sol\";\n\n/**\n * @dev Contract module that allows children to implement role-based access\n * control mechanisms. This is a lightweight version that doesn't allow enumerating role\n * members except through off-chain means by accessing the contract event logs. Some\n * applications may benefit from on-chain enumerability, for those cases see\n * {AccessControlEnumerable}.\n *\n * Roles are referred to by their `bytes32` identifier. These should be exposed\n * in the external API and be unique. The best way to achieve this is by\n * using `public constant` hash digests:\n *\n * ```solidity\n * bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n * ```\n *\n * Roles can be used to represent a set of permissions. To restrict access to a\n * function call, use {hasRole}:\n *\n * ```solidity\n * function foo() public {\n *     require(hasRole(MY_ROLE, msg.sender));\n *     ...\n * }\n * ```\n *\n * Roles can be granted and revoked dynamically via the {grantRole} and\n * {revokeRole} functions. Each role has an associated admin role, and only\n * accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n *\n * By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n * that only accounts with this role will be able to grant or revoke other\n * roles. More complex role relationships can be created by using\n * {_setRoleAdmin}.\n *\n * WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n * grant and revoke this role. Extra precautions should be taken to secure\n * accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules}\n * to enforce additional security measures for this role.\n */\nabstract contract AccessControl is Context, IAccessControl, ERC165 {\n    struct RoleData {\n        mapping(address => bool) members;\n        bytes32 adminRole;\n    }\n\n    mapping(bytes32 => RoleData) private _roles;\n\n    bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00;\n\n    /**\n     * @dev Modifier that checks that an account has a specific role. Reverts\n     * with a standardized message including the required role.\n     *\n     * The format of the revert reason is given by the following regular expression:\n     *\n     *  /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\n     *\n     * _Available since v4.1._\n     */\n    modifier onlyRole(bytes32 role) {\n        _checkRole(role);\n        _;\n    }\n\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n        return interfaceId == type(IAccessControl).interfaceId || super.supportsInterface(interfaceId);\n    }\n\n    /**\n     * @dev Returns `true` if `account` has been granted `role`.\n     */\n    function hasRole(bytes32 role, address account) public view virtual override returns (bool) {\n        return _roles[role].members[account];\n    }\n\n    /**\n     * @dev Revert with a standard message if `_msgSender()` is missing `role`.\n     * Overriding this function changes the behavior of the {onlyRole} modifier.\n     *\n     * Format of the revert message is described in {_checkRole}.\n     *\n     * _Available since v4.6._\n     */\n    function _checkRole(bytes32 role) internal view virtual {\n        _checkRole(role, _msgSender());\n    }\n\n    /**\n     * @dev Revert with a standard message if `account` is missing `role`.\n     *\n     * The format of the revert reason is given by the following regular expression:\n     *\n     *  /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\n     */\n    function _checkRole(bytes32 role, address account) internal view virtual {\n        if (!hasRole(role, account)) {\n            revert(\n                string(\n                    abi.encodePacked(\n                        \"AccessControl: account \",\n                        Strings.toHexString(account),\n                        \" is missing role \",\n                        Strings.toHexString(uint256(role), 32)\n                    )\n                )\n            );\n        }\n    }\n\n    /**\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\n     * {revokeRole}.\n     *\n     * To change a role's admin, use {_setRoleAdmin}.\n     */\n    function getRoleAdmin(bytes32 role) public view virtual override returns (bytes32) {\n        return _roles[role].adminRole;\n    }\n\n    /**\n     * @dev Grants `role` to `account`.\n     *\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\n     * event.\n     *\n     * Requirements:\n     *\n     * - the caller must have ``role``'s admin role.\n     *\n     * May emit a {RoleGranted} event.\n     */\n    function grantRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {\n        _grantRole(role, account);\n    }\n\n    /**\n     * @dev Revokes `role` from `account`.\n     *\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\n     *\n     * Requirements:\n     *\n     * - the caller must have ``role``'s admin role.\n     *\n     * May emit a {RoleRevoked} event.\n     */\n    function revokeRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {\n        _revokeRole(role, account);\n    }\n\n    /**\n     * @dev Revokes `role` from the calling account.\n     *\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\n     * purpose is to provide a mechanism for accounts to lose their privileges\n     * if they are compromised (such as when a trusted device is misplaced).\n     *\n     * If the calling account had been revoked `role`, emits a {RoleRevoked}\n     * event.\n     *\n     * Requirements:\n     *\n     * - the caller must be `account`.\n     *\n     * May emit a {RoleRevoked} event.\n     */\n    function renounceRole(bytes32 role, address account) public virtual override {\n        require(account == _msgSender(), \"AccessControl: can only renounce roles for self\");\n\n        _revokeRole(role, account);\n    }\n\n    /**\n     * @dev Grants `role` to `account`.\n     *\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\n     * event. Note that unlike {grantRole}, this function doesn't perform any\n     * checks on the calling account.\n     *\n     * May emit a {RoleGranted} event.\n     *\n     * [WARNING]\n     * ====\n     * This function should only be called from the constructor when setting\n     * up the initial roles for the system.\n     *\n     * Using this function in any other way is effectively circumventing the admin\n     * system imposed by {AccessControl}.\n     * ====\n     *\n     * NOTE: This function is deprecated in favor of {_grantRole}.\n     */\n    function _setupRole(bytes32 role, address account) internal virtual {\n        _grantRole(role, account);\n    }\n\n    /**\n     * @dev Sets `adminRole` as ``role``'s admin role.\n     *\n     * Emits a {RoleAdminChanged} event.\n     */\n    function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {\n        bytes32 previousAdminRole = getRoleAdmin(role);\n        _roles[role].adminRole = adminRole;\n        emit RoleAdminChanged(role, previousAdminRole, adminRole);\n    }\n\n    /**\n     * @dev Grants `role` to `account`.\n     *\n     * Internal function without access restriction.\n     *\n     * May emit a {RoleGranted} event.\n     */\n    function _grantRole(bytes32 role, address account) internal virtual {\n        if (!hasRole(role, account)) {\n            _roles[role].members[account] = true;\n            emit RoleGranted(role, account, _msgSender());\n        }\n    }\n\n    /**\n     * @dev Revokes `role` from `account`.\n     *\n     * Internal function without access restriction.\n     *\n     * May emit a {RoleRevoked} event.\n     */\n    function _revokeRole(bytes32 role, address account) internal virtual {\n        if (hasRole(role, account)) {\n            _roles[role].members[account] = false;\n            emit RoleRevoked(role, account, _msgSender());\n        }\n    }\n}\n"},"@openzeppelin/contracts/access/IAccessControl.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev External interface of AccessControl declared to support ERC165 detection.\n */\ninterface IAccessControl {\n    /**\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n     *\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n     * {RoleAdminChanged} not being emitted signaling this.\n     *\n     * _Available since v3.1._\n     */\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\n\n    /**\n     * @dev Emitted when `account` is granted `role`.\n     *\n     * `sender` is the account that originated the contract call, an admin role\n     * bearer except when using {AccessControl-_setupRole}.\n     */\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\n\n    /**\n     * @dev Emitted when `account` is revoked `role`.\n     *\n     * `sender` is the account that originated the contract call:\n     *   - if using `revokeRole`, it is the admin role bearer\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\n     */\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\n\n    /**\n     * @dev Returns `true` if `account` has been granted `role`.\n     */\n    function hasRole(bytes32 role, address account) external view returns (bool);\n\n    /**\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\n     * {revokeRole}.\n     *\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\n     */\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\n\n    /**\n     * @dev Grants `role` to `account`.\n     *\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\n     * event.\n     *\n     * Requirements:\n     *\n     * - the caller must have ``role``'s admin role.\n     */\n    function grantRole(bytes32 role, address account) external;\n\n    /**\n     * @dev Revokes `role` from `account`.\n     *\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\n     *\n     * Requirements:\n     *\n     * - the caller must have ``role``'s admin role.\n     */\n    function revokeRole(bytes32 role, address account) external;\n\n    /**\n     * @dev Revokes `role` from the calling account.\n     *\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\n     * purpose is to provide a mechanism for accounts to lose their privileges\n     * if they are compromised (such as when a trusted device is misplaced).\n     *\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\n     * event.\n     *\n     * Requirements:\n     *\n     * - the caller must be `account`.\n     */\n    function renounceRole(bytes32 role, address account) external;\n}\n"},"@openzeppelin/contracts/access/Ownable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../utils/Context.sol\";\n\n/**\n * @dev Contract module which provides a basic access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * By default, the owner account will be the one that deploys the contract. This\n * can later be changed with {transferOwnership}.\n *\n * This module is used through inheritance. It will make available the modifier\n * `onlyOwner`, which can be applied to your functions to restrict their use to\n * the owner.\n */\nabstract contract Ownable is Context {\n    address private _owner;\n\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n    /**\n     * @dev Initializes the contract setting the deployer as the initial owner.\n     */\n    constructor() {\n        _transferOwnership(_msgSender());\n    }\n\n    /**\n     * @dev Throws if called by any account other than the owner.\n     */\n    modifier onlyOwner() {\n        _checkOwner();\n        _;\n    }\n\n    /**\n     * @dev Returns the address of the current owner.\n     */\n    function owner() public view virtual returns (address) {\n        return _owner;\n    }\n\n    /**\n     * @dev Throws if the sender is not the owner.\n     */\n    function _checkOwner() internal view virtual {\n        require(owner() == _msgSender(), \"Ownable: caller is not the owner\");\n    }\n\n    /**\n     * @dev Leaves the contract without owner. It will not be possible to call\n     * `onlyOwner` functions. Can only be called by the current owner.\n     *\n     * NOTE: Renouncing ownership will leave the contract without an owner,\n     * thereby disabling any functionality that is only available to the owner.\n     */\n    function renounceOwnership() public virtual onlyOwner {\n        _transferOwnership(address(0));\n    }\n\n    /**\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\n     * Can only be called by the current owner.\n     */\n    function transferOwnership(address newOwner) public virtual onlyOwner {\n        require(newOwner != address(0), \"Ownable: new owner is the zero address\");\n        _transferOwnership(newOwner);\n    }\n\n    /**\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\n     * Internal function without access restriction.\n     */\n    function _transferOwnership(address newOwner) internal virtual {\n        address oldOwner = _owner;\n        _owner = newOwner;\n        emit OwnershipTransferred(oldOwner, newOwner);\n    }\n}\n"},"@openzeppelin/contracts/security/Pausable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (security/Pausable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../utils/Context.sol\";\n\n/**\n * @dev Contract module which allows children to implement an emergency stop\n * mechanism that can be triggered by an authorized account.\n *\n * This module is used through inheritance. It will make available the\n * modifiers `whenNotPaused` and `whenPaused`, which can be applied to\n * the functions of your contract. Note that they will not be pausable by\n * simply including this module, only once the modifiers are put in place.\n */\nabstract contract Pausable is Context {\n    /**\n     * @dev Emitted when the pause is triggered by `account`.\n     */\n    event Paused(address account);\n\n    /**\n     * @dev Emitted when the pause is lifted by `account`.\n     */\n    event Unpaused(address account);\n\n    bool private _paused;\n\n    /**\n     * @dev Initializes the contract in unpaused state.\n     */\n    constructor() {\n        _paused = false;\n    }\n\n    /**\n     * @dev Modifier to make a function callable only when the contract is not paused.\n     *\n     * Requirements:\n     *\n     * - The contract must not be paused.\n     */\n    modifier whenNotPaused() {\n        _requireNotPaused();\n        _;\n    }\n\n    /**\n     * @dev Modifier to make a function callable only when the contract is paused.\n     *\n     * Requirements:\n     *\n     * - The contract must be paused.\n     */\n    modifier whenPaused() {\n        _requirePaused();\n        _;\n    }\n\n    /**\n     * @dev Returns true if the contract is paused, and false otherwise.\n     */\n    function paused() public view virtual returns (bool) {\n        return _paused;\n    }\n\n    /**\n     * @dev Throws if the contract is paused.\n     */\n    function _requireNotPaused() internal view virtual {\n        require(!paused(), \"Pausable: paused\");\n    }\n\n    /**\n     * @dev Throws if the contract is not paused.\n     */\n    function _requirePaused() internal view virtual {\n        require(paused(), \"Pausable: not paused\");\n    }\n\n    /**\n     * @dev Triggers stopped state.\n     *\n     * Requirements:\n     *\n     * - The contract must not be paused.\n     */\n    function _pause() internal virtual whenNotPaused {\n        _paused = true;\n        emit Paused(_msgSender());\n    }\n\n    /**\n     * @dev Returns to normal state.\n     *\n     * Requirements:\n     *\n     * - The contract must be paused.\n     */\n    function _unpause() internal virtual whenPaused {\n        _paused = false;\n        emit Unpaused(_msgSender());\n    }\n}\n"},"@openzeppelin/contracts/security/ReentrancyGuard.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (security/ReentrancyGuard.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Contract module that helps prevent reentrant calls to a function.\n *\n * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier\n * available, which can be applied to functions to make sure there are no nested\n * (reentrant) calls to them.\n *\n * Note that because there is a single `nonReentrant` guard, functions marked as\n * `nonReentrant` may not call one another. This can be worked around by making\n * those functions `private`, and then adding `external` `nonReentrant` entry\n * points to them.\n *\n * TIP: If you would like to learn more about reentrancy and alternative ways\n * to protect against it, check out our blog post\n * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].\n */\nabstract contract ReentrancyGuard {\n    // Booleans are more expensive than uint256 or any type that takes up a full\n    // word because each write operation emits an extra SLOAD to first read the\n    // slot's contents, replace the bits taken up by the boolean, and then write\n    // back. This is the compiler's defense against contract upgrades and\n    // pointer aliasing, and it cannot be disabled.\n\n    // The values being non-zero value makes deployment a bit more expensive,\n    // but in exchange the refund on every call to nonReentrant will be lower in\n    // amount. Since refunds are capped to a percentage of the total\n    // transaction's gas, it is best to keep them low in cases like this one, to\n    // increase the likelihood of the full refund coming into effect.\n    uint256 private constant _NOT_ENTERED = 1;\n    uint256 private constant _ENTERED = 2;\n\n    uint256 private _status;\n\n    constructor() {\n        _status = _NOT_ENTERED;\n    }\n\n    /**\n     * @dev Prevents a contract from calling itself, directly or indirectly.\n     * Calling a `nonReentrant` function from another `nonReentrant`\n     * function is not supported. It is possible to prevent this from happening\n     * by making the `nonReentrant` function external, and making it call a\n     * `private` function that does the actual work.\n     */\n    modifier nonReentrant() {\n        _nonReentrantBefore();\n        _;\n        _nonReentrantAfter();\n    }\n\n    function _nonReentrantBefore() private {\n        // On the first call to nonReentrant, _status will be _NOT_ENTERED\n        require(_status != _ENTERED, \"ReentrancyGuard: reentrant call\");\n\n        // Any calls to nonReentrant after this point will fail\n        _status = _ENTERED;\n    }\n\n    function _nonReentrantAfter() private {\n        // By storing the original value once again, a refund is triggered (see\n        // https://eips.ethereum.org/EIPS/eip-2200)\n        _status = _NOT_ENTERED;\n    }\n\n    /**\n     * @dev Returns true if the reentrancy guard is currently set to \"entered\", which indicates there is a\n     * `nonReentrant` function in the call stack.\n     */\n    function _reentrancyGuardEntered() internal view returns (bool) {\n        return _status == _ENTERED;\n    }\n}\n"},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.4) (token/ERC20/extensions/IERC20Permit.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\n * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\n *\n * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\n * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\n * need to send a transaction, and thus is not required to hold Ether at all.\n *\n * ==== Security Considerations\n *\n * There are two important considerations concerning the use of `permit`. The first is that a valid permit signature\n * expresses an allowance, and it should not be assumed to convey additional meaning. In particular, it should not be\n * considered as an intention to spend the allowance in any specific way. The second is that because permits have\n * built-in replay protection and can be submitted by anyone, they can be frontrun. A protocol that uses permits should\n * take this into consideration and allow a `permit` call to fail. Combining these two aspects, a pattern that may be\n * generally recommended is:\n *\n * ```solidity\n * function doThingWithPermit(..., uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public {\n *     try token.permit(msg.sender, address(this), value, deadline, v, r, s) {} catch {}\n *     doThing(..., value);\n * }\n *\n * function doThing(..., uint256 value) public {\n *     token.safeTransferFrom(msg.sender, address(this), value);\n *     ...\n * }\n * ```\n *\n * Observe that: 1) `msg.sender` is used as the owner, leaving no ambiguity as to the signer intent, and 2) the use of\n * `try/catch` allows the permit to fail and makes the code tolerant to frontrunning. (See also\n * {SafeERC20-safeTransferFrom}).\n *\n * Additionally, note that smart contract wallets (such as Argent or Safe) are not able to produce permit signatures, so\n * contracts should have entry points that don't rely on permit.\n */\ninterface IERC20Permit {\n    /**\n     * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\n     * given ``owner``'s signed approval.\n     *\n     * IMPORTANT: The same issues {IERC20-approve} has related to transaction\n     * ordering also apply here.\n     *\n     * Emits an {Approval} event.\n     *\n     * Requirements:\n     *\n     * - `spender` cannot be the zero address.\n     * - `deadline` must be a timestamp in the future.\n     * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\n     * over the EIP712-formatted function arguments.\n     * - the signature must use ``owner``'s current nonce (see {nonces}).\n     *\n     * For more information on the signature format, see the\n     * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\n     * section].\n     *\n     * CAUTION: See Security Considerations above.\n     */\n    function permit(\n        address owner,\n        address spender,\n        uint256 value,\n        uint256 deadline,\n        uint8 v,\n        bytes32 r,\n        bytes32 s\n    ) external;\n\n    /**\n     * @dev Returns the current nonce for `owner`. This value must be\n     * included whenever a signature is generated for {permit}.\n     *\n     * Every successful call to {permit} increases ``owner``'s nonce by one. This\n     * prevents a signature from being used multiple times.\n     */\n    function nonces(address owner) external view returns (uint256);\n\n    /**\n     * @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\n     */\n    // solhint-disable-next-line func-name-mixedcase\n    function DOMAIN_SEPARATOR() external view returns (bytes32);\n}\n"},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC20 standard as defined in the EIP.\n */\ninterface IERC20 {\n    /**\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\n     * another (`to`).\n     *\n     * Note that `value` may be zero.\n     */\n    event Transfer(address indexed from, address indexed to, uint256 value);\n\n    /**\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n     * a call to {approve}. `value` is the new allowance.\n     */\n    event Approval(address indexed owner, address indexed spender, uint256 value);\n\n    /**\n     * @dev Returns the amount of tokens in existence.\n     */\n    function totalSupply() external view returns (uint256);\n\n    /**\n     * @dev Returns the amount of tokens owned by `account`.\n     */\n    function balanceOf(address account) external view returns (uint256);\n\n    /**\n     * @dev Moves `amount` tokens from the caller's account to `to`.\n     *\n     * Returns a boolean value indicating whether the operation succeeded.\n     *\n     * Emits a {Transfer} event.\n     */\n    function transfer(address to, uint256 amount) external returns (bool);\n\n    /**\n     * @dev Returns the remaining number of tokens that `spender` will be\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\n     * zero by default.\n     *\n     * This value changes when {approve} or {transferFrom} are called.\n     */\n    function allowance(address owner, address spender) external view returns (uint256);\n\n    /**\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n     *\n     * Returns a boolean value indicating whether the operation succeeded.\n     *\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\n     * that someone may use both the old and the new allowance by unfortunate\n     * transaction ordering. One possible solution to mitigate this race\n     * condition is to first reduce the spender's allowance to 0 and set the\n     * desired value afterwards:\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n     *\n     * Emits an {Approval} event.\n     */\n    function approve(address spender, uint256 amount) external returns (bool);\n\n    /**\n     * @dev Moves `amount` tokens from `from` to `to` using the\n     * allowance mechanism. `amount` is then deducted from the caller's\n     * allowance.\n     *\n     * Returns a boolean value indicating whether the operation succeeded.\n     *\n     * Emits a {Transfer} event.\n     */\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\n}\n"},"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.3) (token/ERC20/utils/SafeERC20.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../IERC20.sol\";\nimport \"../extensions/IERC20Permit.sol\";\nimport \"../../../utils/Address.sol\";\n\n/**\n * @title SafeERC20\n * @dev Wrappers around ERC20 operations that throw on failure (when the token\n * contract returns false). Tokens that return no value (and instead revert or\n * throw on failure) are also supported, non-reverting calls are assumed to be\n * successful.\n * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\n */\nlibrary SafeERC20 {\n    using Address for address;\n\n    /**\n     * @dev Transfer `value` amount of `token` from the calling contract to `to`. If `token` returns no value,\n     * non-reverting calls are assumed to be successful.\n     */\n    function safeTransfer(IERC20 token, address to, uint256 value) internal {\n        _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));\n    }\n\n    /**\n     * @dev Transfer `value` amount of `token` from `from` to `to`, spending the approval given by `from` to the\n     * calling contract. If `token` returns no value, non-reverting calls are assumed to be successful.\n     */\n    function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {\n        _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));\n    }\n\n    /**\n     * @dev Deprecated. This function has issues similar to the ones found in\n     * {IERC20-approve}, and its usage is discouraged.\n     *\n     * Whenever possible, use {safeIncreaseAllowance} and\n     * {safeDecreaseAllowance} instead.\n     */\n    function safeApprove(IERC20 token, address spender, uint256 value) internal {\n        // safeApprove should only be called when setting an initial allowance,\n        // or when resetting it to zero. To increase and decrease it, use\n        // 'safeIncreaseAllowance' and 'safeDecreaseAllowance'\n        require(\n            (value == 0) || (token.allowance(address(this), spender) == 0),\n            \"SafeERC20: approve from non-zero to non-zero allowance\"\n        );\n        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));\n    }\n\n    /**\n     * @dev Increase the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\n     * non-reverting calls are assumed to be successful.\n     */\n    function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal {\n        uint256 oldAllowance = token.allowance(address(this), spender);\n        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, oldAllowance + value));\n    }\n\n    /**\n     * @dev Decrease the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\n     * non-reverting calls are assumed to be successful.\n     */\n    function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal {\n        unchecked {\n            uint256 oldAllowance = token.allowance(address(this), spender);\n            require(oldAllowance >= value, \"SafeERC20: decreased allowance below zero\");\n            _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, oldAllowance - value));\n        }\n    }\n\n    /**\n     * @dev Set the calling contract's allowance toward `spender` to `value`. If `token` returns no value,\n     * non-reverting calls are assumed to be successful. Meant to be used with tokens that require the approval\n     * to be set to zero before setting it to a non-zero value, such as USDT.\n     */\n    function forceApprove(IERC20 token, address spender, uint256 value) internal {\n        bytes memory approvalCall = abi.encodeWithSelector(token.approve.selector, spender, value);\n\n        if (!_callOptionalReturnBool(token, approvalCall)) {\n            _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, 0));\n            _callOptionalReturn(token, approvalCall);\n        }\n    }\n\n    /**\n     * @dev Use a ERC-2612 signature to set the `owner` approval toward `spender` on `token`.\n     * Revert on invalid signature.\n     */\n    function safePermit(\n        IERC20Permit token,\n        address owner,\n        address spender,\n        uint256 value,\n        uint256 deadline,\n        uint8 v,\n        bytes32 r,\n        bytes32 s\n    ) internal {\n        uint256 nonceBefore = token.nonces(owner);\n        token.permit(owner, spender, value, deadline, v, r, s);\n        uint256 nonceAfter = token.nonces(owner);\n        require(nonceAfter == nonceBefore + 1, \"SafeERC20: permit did not succeed\");\n    }\n\n    /**\n     * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n     * on the return value: the return value is optional (but if data is returned, it must not be false).\n     * @param token The token targeted by the call.\n     * @param data The call data (encoded using abi.encode or one of its variants).\n     */\n    function _callOptionalReturn(IERC20 token, bytes memory data) private {\n        // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\n        // we're implementing it ourselves. We use {Address-functionCall} to perform this call, which verifies that\n        // the target address contains contract code and also asserts for success in the low-level call.\n\n        bytes memory returndata = address(token).functionCall(data, \"SafeERC20: low-level call failed\");\n        require(returndata.length == 0 || abi.decode(returndata, (bool)), \"SafeERC20: ERC20 operation did not succeed\");\n    }\n\n    /**\n     * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n     * on the return value: the return value is optional (but if data is returned, it must not be false).\n     * @param token The token targeted by the call.\n     * @param data The call data (encoded using abi.encode or one of its variants).\n     *\n     * This is a variant of {_callOptionalReturn} that silents catches all reverts and returns a bool instead.\n     */\n    function _callOptionalReturnBool(IERC20 token, bytes memory data) private returns (bool) {\n        // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\n        // we're implementing it ourselves. We cannot use {Address-functionCall} here since this should return false\n        // and not revert is the subcall reverts.\n\n        (bool success, bytes memory returndata) = address(token).call(data);\n        return\n            success && (returndata.length == 0 || abi.decode(returndata, (bool))) && Address.isContract(address(token));\n    }\n}\n"},"@openzeppelin/contracts/utils/Address.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol)\n\npragma solidity ^0.8.1;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n    /**\n     * @dev Returns true if `account` is a contract.\n     *\n     * [IMPORTANT]\n     * ====\n     * It is unsafe to assume that an address for which this function returns\n     * false is an externally-owned account (EOA) and not a contract.\n     *\n     * Among others, `isContract` will return false for the following\n     * types of addresses:\n     *\n     *  - an externally-owned account\n     *  - a contract in construction\n     *  - an address where a contract will be created\n     *  - an address where a contract lived, but was destroyed\n     *\n     * Furthermore, `isContract` will also return true if the target contract within\n     * the same transaction is already scheduled for destruction by `SELFDESTRUCT`,\n     * which only has an effect at the end of a transaction.\n     * ====\n     *\n     * [IMPORTANT]\n     * ====\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\n     *\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n     * constructor.\n     * ====\n     */\n    function isContract(address account) internal view returns (bool) {\n        // This method relies on extcodesize/address.code.length, which returns 0\n        // for contracts in construction, since the code is only stored at the end\n        // of the constructor execution.\n\n        return account.code.length > 0;\n    }\n\n    /**\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n     * `recipient`, forwarding all available gas and reverting on errors.\n     *\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\n     * imposed by `transfer`, making them unable to receive funds via\n     * `transfer`. {sendValue} removes this limitation.\n     *\n     * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n     *\n     * IMPORTANT: because control is transferred to `recipient`, care must be\n     * taken to not create reentrancy vulnerabilities. Consider using\n     * {ReentrancyGuard} or the\n     * https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n     */\n    function sendValue(address payable recipient, uint256 amount) internal {\n        require(address(this).balance >= amount, \"Address: insufficient balance\");\n\n        (bool success, ) = recipient.call{value: amount}(\"\");\n        require(success, \"Address: unable to send value, recipient may have reverted\");\n    }\n\n    /**\n     * @dev Performs a Solidity function call using a low level `call`. A\n     * plain `call` is an unsafe replacement for a function call: use this\n     * function instead.\n     *\n     * If `target` reverts with a revert reason, it is bubbled up by this\n     * function (like regular Solidity function calls).\n     *\n     * Returns the raw returned data. To convert to the expected return value,\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n     *\n     * Requirements:\n     *\n     * - `target` must be a contract.\n     * - calling `target` with `data` must not revert.\n     *\n     * _Available since v3.1._\n     */\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n        return functionCallWithValue(target, data, 0, \"Address: low-level call failed\");\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n     * `errorMessage` as a fallback revert reason when `target` reverts.\n     *\n     * _Available since v3.1._\n     */\n    function functionCall(\n        address target,\n        bytes memory data,\n        string memory errorMessage\n    ) internal returns (bytes memory) {\n        return functionCallWithValue(target, data, 0, errorMessage);\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n     * but also transferring `value` wei to `target`.\n     *\n     * Requirements:\n     *\n     * - the calling contract must have an ETH balance of at least `value`.\n     * - the called Solidity function must be `payable`.\n     *\n     * _Available since v3.1._\n     */\n    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\n        return functionCallWithValue(target, data, value, \"Address: low-level call with value failed\");\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\n     *\n     * _Available since v3.1._\n     */\n    function functionCallWithValue(\n        address target,\n        bytes memory data,\n        uint256 value,\n        string memory errorMessage\n    ) internal returns (bytes memory) {\n        require(address(this).balance >= value, \"Address: insufficient balance for call\");\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n     * but performing a static call.\n     *\n     * _Available since v3.3._\n     */\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\n        return functionStaticCall(target, data, \"Address: low-level static call failed\");\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n     * but performing a static call.\n     *\n     * _Available since v3.3._\n     */\n    function functionStaticCall(\n        address target,\n        bytes memory data,\n        string memory errorMessage\n    ) internal view returns (bytes memory) {\n        (bool success, bytes memory returndata) = target.staticcall(data);\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n     * but performing a delegate call.\n     *\n     * _Available since v3.4._\n     */\n    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\n        return functionDelegateCall(target, data, \"Address: low-level delegate call failed\");\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n     * but performing a delegate call.\n     *\n     * _Available since v3.4._\n     */\n    function functionDelegateCall(\n        address target,\n        bytes memory data,\n        string memory errorMessage\n    ) internal returns (bytes memory) {\n        (bool success, bytes memory returndata) = target.delegatecall(data);\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\n    }\n\n    /**\n     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\n     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\n     *\n     * _Available since v4.8._\n     */\n    function verifyCallResultFromTarget(\n        address target,\n        bool success,\n        bytes memory returndata,\n        string memory errorMessage\n    ) internal view returns (bytes memory) {\n        if (success) {\n            if (returndata.length == 0) {\n                // only check isContract if the call was successful and the return data is empty\n                // otherwise we already know that it was a contract\n                require(isContract(target), \"Address: call to non-contract\");\n            }\n            return returndata;\n        } else {\n            _revert(returndata, errorMessage);\n        }\n    }\n\n    /**\n     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\n     * revert reason or using the provided one.\n     *\n     * _Available since v4.3._\n     */\n    function verifyCallResult(\n        bool success,\n        bytes memory returndata,\n        string memory errorMessage\n    ) internal pure returns (bytes memory) {\n        if (success) {\n            return returndata;\n        } else {\n            _revert(returndata, errorMessage);\n        }\n    }\n\n    function _revert(bytes memory returndata, string memory errorMessage) private pure {\n        // Look for revert reason and bubble it up if present\n        if (returndata.length > 0) {\n            // The easiest way to bubble the revert reason is using memory via assembly\n            /// @solidity memory-safe-assembly\n            assembly {\n                let returndata_size := mload(returndata)\n                revert(add(32, returndata), returndata_size)\n            }\n        } else {\n            revert(errorMessage);\n        }\n    }\n}\n"},"@openzeppelin/contracts/utils/Context.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n    function _msgSender() internal view virtual returns (address) {\n        return msg.sender;\n    }\n\n    function _msgData() internal view virtual returns (bytes calldata) {\n        return msg.data;\n    }\n\n    function _contextSuffixLength() internal view virtual returns (uint256) {\n        return 0;\n    }\n}\n"},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IERC165.sol\";\n\n/**\n * @dev Implementation of the {IERC165} interface.\n *\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n * for the additional interface id that will be supported. For example:\n *\n * ```solidity\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n *     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n * }\n * ```\n *\n * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\n */\nabstract contract ERC165 is IERC165 {\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n        return interfaceId == type(IERC165).interfaceId;\n    }\n}\n"},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165 {\n    /**\n     * @dev Returns true if this contract implements the interface defined by\n     * `interfaceId`. See the corresponding\n     * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n     * to learn more about how these ids are created.\n     *\n     * This function call must use less than 30 000 gas.\n     */\n    function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n"},"@openzeppelin/contracts/utils/math/Math.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/math/Math.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Standard math utilities missing in the Solidity language.\n */\nlibrary Math {\n    enum Rounding {\n        Down, // Toward negative infinity\n        Up, // Toward infinity\n        Zero // Toward zero\n    }\n\n    /**\n     * @dev Returns the largest of two numbers.\n     */\n    function max(uint256 a, uint256 b) internal pure returns (uint256) {\n        return a > b ? a : b;\n    }\n\n    /**\n     * @dev Returns the smallest of two numbers.\n     */\n    function min(uint256 a, uint256 b) internal pure returns (uint256) {\n        return a < b ? a : b;\n    }\n\n    /**\n     * @dev Returns the average of two numbers. The result is rounded towards\n     * zero.\n     */\n    function average(uint256 a, uint256 b) internal pure returns (uint256) {\n        // (a + b) / 2 can overflow.\n        return (a & b) + (a ^ b) / 2;\n    }\n\n    /**\n     * @dev Returns the ceiling of the division of two numbers.\n     *\n     * This differs from standard division with `/` in that it rounds up instead\n     * of rounding down.\n     */\n    function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\n        // (a + b - 1) / b can overflow on addition, so we distribute.\n        return a == 0 ? 0 : (a - 1) / b + 1;\n    }\n\n    /**\n     * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\n     * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)\n     * with further edits by Uniswap Labs also under MIT license.\n     */\n    function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {\n        unchecked {\n            // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use\n            // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\n            // variables such that product = prod1 * 2^256 + prod0.\n            uint256 prod0; // Least significant 256 bits of the product\n            uint256 prod1; // Most significant 256 bits of the product\n            assembly {\n                let mm := mulmod(x, y, not(0))\n                prod0 := mul(x, y)\n                prod1 := sub(sub(mm, prod0), lt(mm, prod0))\n            }\n\n            // Handle non-overflow cases, 256 by 256 division.\n            if (prod1 == 0) {\n                // Solidity will revert if denominator == 0, unlike the div opcode on its own.\n                // The surrounding unchecked block does not change this fact.\n                // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.\n                return prod0 / denominator;\n            }\n\n            // Make sure the result is less than 2^256. Also prevents denominator == 0.\n            require(denominator > prod1, \"Math: mulDiv overflow\");\n\n            ///////////////////////////////////////////////\n            // 512 by 256 division.\n            ///////////////////////////////////////////////\n\n            // Make division exact by subtracting the remainder from [prod1 prod0].\n            uint256 remainder;\n            assembly {\n                // Compute remainder using mulmod.\n                remainder := mulmod(x, y, denominator)\n\n                // Subtract 256 bit number from 512 bit number.\n                prod1 := sub(prod1, gt(remainder, prod0))\n                prod0 := sub(prod0, remainder)\n            }\n\n            // Factor powers of two out of denominator and compute largest power of two divisor of denominator. Always >= 1.\n            // See https://cs.stackexchange.com/q/138556/92363.\n\n            // Does not overflow because the denominator cannot be zero at this stage in the function.\n            uint256 twos = denominator & (~denominator + 1);\n            assembly {\n                // Divide denominator by twos.\n                denominator := div(denominator, twos)\n\n                // Divide [prod1 prod0] by twos.\n                prod0 := div(prod0, twos)\n\n                // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.\n                twos := add(div(sub(0, twos), twos), 1)\n            }\n\n            // Shift in bits from prod1 into prod0.\n            prod0 |= prod1 * twos;\n\n            // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\n            // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\n            // four bits. That is, denominator * inv = 1 mod 2^4.\n            uint256 inverse = (3 * denominator) ^ 2;\n\n            // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also works\n            // in modular arithmetic, doubling the correct bits in each step.\n            inverse *= 2 - denominator * inverse; // inverse mod 2^8\n            inverse *= 2 - denominator * inverse; // inverse mod 2^16\n            inverse *= 2 - denominator * inverse; // inverse mod 2^32\n            inverse *= 2 - denominator * inverse; // inverse mod 2^64\n            inverse *= 2 - denominator * inverse; // inverse mod 2^128\n            inverse *= 2 - denominator * inverse; // inverse mod 2^256\n\n            // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\n            // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\n            // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\n            // is no longer required.\n            result = prod0 * inverse;\n            return result;\n        }\n    }\n\n    /**\n     * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\n     */\n    function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\n        uint256 result = mulDiv(x, y, denominator);\n        if (rounding == Rounding.Up && mulmod(x, y, denominator) > 0) {\n            result += 1;\n        }\n        return result;\n    }\n\n    /**\n     * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down.\n     *\n     * Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11).\n     */\n    function sqrt(uint256 a) internal pure returns (uint256) {\n        if (a == 0) {\n            return 0;\n        }\n\n        // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\n        //\n        // We know that the \"msb\" (most significant bit) of our target number `a` is a power of 2 such that we have\n        // `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`.\n        //\n        // This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)`\n        // → `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`\n        // → `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)`\n        //\n        // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit.\n        uint256 result = 1 << (log2(a) >> 1);\n\n        // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128,\n        // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\n        // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\n        // into the expected uint128 result.\n        unchecked {\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            return min(result, a / result);\n        }\n    }\n\n    /**\n     * @notice Calculates sqrt(a), following the selected rounding direction.\n     */\n    function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\n        unchecked {\n            uint256 result = sqrt(a);\n            return result + (rounding == Rounding.Up && result * result < a ? 1 : 0);\n        }\n    }\n\n    /**\n     * @dev Return the log in base 2, rounded down, of a positive value.\n     * Returns 0 if given 0.\n     */\n    function log2(uint256 value) internal pure returns (uint256) {\n        uint256 result = 0;\n        unchecked {\n            if (value >> 128 > 0) {\n                value >>= 128;\n                result += 128;\n            }\n            if (value >> 64 > 0) {\n                value >>= 64;\n                result += 64;\n            }\n            if (value >> 32 > 0) {\n                value >>= 32;\n                result += 32;\n            }\n            if (value >> 16 > 0) {\n                value >>= 16;\n                result += 16;\n            }\n            if (value >> 8 > 0) {\n                value >>= 8;\n                result += 8;\n            }\n            if (value >> 4 > 0) {\n                value >>= 4;\n                result += 4;\n            }\n            if (value >> 2 > 0) {\n                value >>= 2;\n                result += 2;\n            }\n            if (value >> 1 > 0) {\n                result += 1;\n            }\n        }\n        return result;\n    }\n\n    /**\n     * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n     * Returns 0 if given 0.\n     */\n    function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\n        unchecked {\n            uint256 result = log2(value);\n            return result + (rounding == Rounding.Up && 1 << result < value ? 1 : 0);\n        }\n    }\n\n    /**\n     * @dev Return the log in base 10, rounded down, of a positive value.\n     * Returns 0 if given 0.\n     */\n    function log10(uint256 value) internal pure returns (uint256) {\n        uint256 result = 0;\n        unchecked {\n            if (value >= 10 ** 64) {\n                value /= 10 ** 64;\n                result += 64;\n            }\n            if (value >= 10 ** 32) {\n                value /= 10 ** 32;\n                result += 32;\n            }\n            if (value >= 10 ** 16) {\n                value /= 10 ** 16;\n                result += 16;\n            }\n            if (value >= 10 ** 8) {\n                value /= 10 ** 8;\n                result += 8;\n            }\n            if (value >= 10 ** 4) {\n                value /= 10 ** 4;\n                result += 4;\n            }\n            if (value >= 10 ** 2) {\n                value /= 10 ** 2;\n                result += 2;\n            }\n            if (value >= 10 ** 1) {\n                result += 1;\n            }\n        }\n        return result;\n    }\n\n    /**\n     * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n     * Returns 0 if given 0.\n     */\n    function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\n        unchecked {\n            uint256 result = log10(value);\n            return result + (rounding == Rounding.Up && 10 ** result < value ? 1 : 0);\n        }\n    }\n\n    /**\n     * @dev Return the log in base 256, rounded down, of a positive value.\n     * Returns 0 if given 0.\n     *\n     * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string.\n     */\n    function log256(uint256 value) internal pure returns (uint256) {\n        uint256 result = 0;\n        unchecked {\n            if (value >> 128 > 0) {\n                value >>= 128;\n                result += 16;\n            }\n            if (value >> 64 > 0) {\n                value >>= 64;\n                result += 8;\n            }\n            if (value >> 32 > 0) {\n                value >>= 32;\n                result += 4;\n            }\n            if (value >> 16 > 0) {\n                value >>= 16;\n                result += 2;\n            }\n            if (value >> 8 > 0) {\n                result += 1;\n            }\n        }\n        return result;\n    }\n\n    /**\n     * @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n     * Returns 0 if given 0.\n     */\n    function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\n        unchecked {\n            uint256 result = log256(value);\n            return result + (rounding == Rounding.Up && 1 << (result << 3) < value ? 1 : 0);\n        }\n    }\n}\n"},"@openzeppelin/contracts/utils/math/SafeCast.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/SafeCast.sol)\n// This file was procedurally generated from scripts/generate/templates/SafeCast.js.\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Wrappers over Solidity's uintXX/intXX casting operators with added overflow\n * checks.\n *\n * Downcasting from uint256/int256 in Solidity does not revert on overflow. This can\n * easily result in undesired exploitation or bugs, since developers usually\n * assume that overflows raise errors. `SafeCast` restores this intuition by\n * reverting the transaction when such an operation overflows.\n *\n * Using this library instead of the unchecked operations eliminates an entire\n * class of bugs, so it's recommended to use it always.\n *\n * Can be combined with {SafeMath} and {SignedSafeMath} to extend it to smaller types, by performing\n * all math on `uint256` and `int256` and then downcasting.\n */\nlibrary SafeCast {\n    /**\n     * @dev Returns the downcasted uint248 from uint256, reverting on\n     * overflow (when the input is greater than largest uint248).\n     *\n     * Counterpart to Solidity's `uint248` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 248 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint248(uint256 value) internal pure returns (uint248) {\n        require(value <= type(uint248).max, \"SafeCast: value doesn't fit in 248 bits\");\n        return uint248(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint240 from uint256, reverting on\n     * overflow (when the input is greater than largest uint240).\n     *\n     * Counterpart to Solidity's `uint240` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 240 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint240(uint256 value) internal pure returns (uint240) {\n        require(value <= type(uint240).max, \"SafeCast: value doesn't fit in 240 bits\");\n        return uint240(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint232 from uint256, reverting on\n     * overflow (when the input is greater than largest uint232).\n     *\n     * Counterpart to Solidity's `uint232` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 232 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint232(uint256 value) internal pure returns (uint232) {\n        require(value <= type(uint232).max, \"SafeCast: value doesn't fit in 232 bits\");\n        return uint232(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint224 from uint256, reverting on\n     * overflow (when the input is greater than largest uint224).\n     *\n     * Counterpart to Solidity's `uint224` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 224 bits\n     *\n     * _Available since v4.2._\n     */\n    function toUint224(uint256 value) internal pure returns (uint224) {\n        require(value <= type(uint224).max, \"SafeCast: value doesn't fit in 224 bits\");\n        return uint224(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint216 from uint256, reverting on\n     * overflow (when the input is greater than largest uint216).\n     *\n     * Counterpart to Solidity's `uint216` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 216 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint216(uint256 value) internal pure returns (uint216) {\n        require(value <= type(uint216).max, \"SafeCast: value doesn't fit in 216 bits\");\n        return uint216(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint208 from uint256, reverting on\n     * overflow (when the input is greater than largest uint208).\n     *\n     * Counterpart to Solidity's `uint208` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 208 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint208(uint256 value) internal pure returns (uint208) {\n        require(value <= type(uint208).max, \"SafeCast: value doesn't fit in 208 bits\");\n        return uint208(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint200 from uint256, reverting on\n     * overflow (when the input is greater than largest uint200).\n     *\n     * Counterpart to Solidity's `uint200` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 200 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint200(uint256 value) internal pure returns (uint200) {\n        require(value <= type(uint200).max, \"SafeCast: value doesn't fit in 200 bits\");\n        return uint200(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint192 from uint256, reverting on\n     * overflow (when the input is greater than largest uint192).\n     *\n     * Counterpart to Solidity's `uint192` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 192 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint192(uint256 value) internal pure returns (uint192) {\n        require(value <= type(uint192).max, \"SafeCast: value doesn't fit in 192 bits\");\n        return uint192(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint184 from uint256, reverting on\n     * overflow (when the input is greater than largest uint184).\n     *\n     * Counterpart to Solidity's `uint184` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 184 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint184(uint256 value) internal pure returns (uint184) {\n        require(value <= type(uint184).max, \"SafeCast: value doesn't fit in 184 bits\");\n        return uint184(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint176 from uint256, reverting on\n     * overflow (when the input is greater than largest uint176).\n     *\n     * Counterpart to Solidity's `uint176` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 176 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint176(uint256 value) internal pure returns (uint176) {\n        require(value <= type(uint176).max, \"SafeCast: value doesn't fit in 176 bits\");\n        return uint176(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint168 from uint256, reverting on\n     * overflow (when the input is greater than largest uint168).\n     *\n     * Counterpart to Solidity's `uint168` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 168 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint168(uint256 value) internal pure returns (uint168) {\n        require(value <= type(uint168).max, \"SafeCast: value doesn't fit in 168 bits\");\n        return uint168(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint160 from uint256, reverting on\n     * overflow (when the input is greater than largest uint160).\n     *\n     * Counterpart to Solidity's `uint160` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 160 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint160(uint256 value) internal pure returns (uint160) {\n        require(value <= type(uint160).max, \"SafeCast: value doesn't fit in 160 bits\");\n        return uint160(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint152 from uint256, reverting on\n     * overflow (when the input is greater than largest uint152).\n     *\n     * Counterpart to Solidity's `uint152` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 152 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint152(uint256 value) internal pure returns (uint152) {\n        require(value <= type(uint152).max, \"SafeCast: value doesn't fit in 152 bits\");\n        return uint152(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint144 from uint256, reverting on\n     * overflow (when the input is greater than largest uint144).\n     *\n     * Counterpart to Solidity's `uint144` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 144 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint144(uint256 value) internal pure returns (uint144) {\n        require(value <= type(uint144).max, \"SafeCast: value doesn't fit in 144 bits\");\n        return uint144(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint136 from uint256, reverting on\n     * overflow (when the input is greater than largest uint136).\n     *\n     * Counterpart to Solidity's `uint136` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 136 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint136(uint256 value) internal pure returns (uint136) {\n        require(value <= type(uint136).max, \"SafeCast: value doesn't fit in 136 bits\");\n        return uint136(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint128 from uint256, reverting on\n     * overflow (when the input is greater than largest uint128).\n     *\n     * Counterpart to Solidity's `uint128` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 128 bits\n     *\n     * _Available since v2.5._\n     */\n    function toUint128(uint256 value) internal pure returns (uint128) {\n        require(value <= type(uint128).max, \"SafeCast: value doesn't fit in 128 bits\");\n        return uint128(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint120 from uint256, reverting on\n     * overflow (when the input is greater than largest uint120).\n     *\n     * Counterpart to Solidity's `uint120` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 120 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint120(uint256 value) internal pure returns (uint120) {\n        require(value <= type(uint120).max, \"SafeCast: value doesn't fit in 120 bits\");\n        return uint120(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint112 from uint256, reverting on\n     * overflow (when the input is greater than largest uint112).\n     *\n     * Counterpart to Solidity's `uint112` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 112 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint112(uint256 value) internal pure returns (uint112) {\n        require(value <= type(uint112).max, \"SafeCast: value doesn't fit in 112 bits\");\n        return uint112(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint104 from uint256, reverting on\n     * overflow (when the input is greater than largest uint104).\n     *\n     * Counterpart to Solidity's `uint104` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 104 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint104(uint256 value) internal pure returns (uint104) {\n        require(value <= type(uint104).max, \"SafeCast: value doesn't fit in 104 bits\");\n        return uint104(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint96 from uint256, reverting on\n     * overflow (when the input is greater than largest uint96).\n     *\n     * Counterpart to Solidity's `uint96` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 96 bits\n     *\n     * _Available since v4.2._\n     */\n    function toUint96(uint256 value) internal pure returns (uint96) {\n        require(value <= type(uint96).max, \"SafeCast: value doesn't fit in 96 bits\");\n        return uint96(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint88 from uint256, reverting on\n     * overflow (when the input is greater than largest uint88).\n     *\n     * Counterpart to Solidity's `uint88` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 88 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint88(uint256 value) internal pure returns (uint88) {\n        require(value <= type(uint88).max, \"SafeCast: value doesn't fit in 88 bits\");\n        return uint88(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint80 from uint256, reverting on\n     * overflow (when the input is greater than largest uint80).\n     *\n     * Counterpart to Solidity's `uint80` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 80 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint80(uint256 value) internal pure returns (uint80) {\n        require(value <= type(uint80).max, \"SafeCast: value doesn't fit in 80 bits\");\n        return uint80(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint72 from uint256, reverting on\n     * overflow (when the input is greater than largest uint72).\n     *\n     * Counterpart to Solidity's `uint72` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 72 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint72(uint256 value) internal pure returns (uint72) {\n        require(value <= type(uint72).max, \"SafeCast: value doesn't fit in 72 bits\");\n        return uint72(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint64 from uint256, reverting on\n     * overflow (when the input is greater than largest uint64).\n     *\n     * Counterpart to Solidity's `uint64` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 64 bits\n     *\n     * _Available since v2.5._\n     */\n    function toUint64(uint256 value) internal pure returns (uint64) {\n        require(value <= type(uint64).max, \"SafeCast: value doesn't fit in 64 bits\");\n        return uint64(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint56 from uint256, reverting on\n     * overflow (when the input is greater than largest uint56).\n     *\n     * Counterpart to Solidity's `uint56` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 56 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint56(uint256 value) internal pure returns (uint56) {\n        require(value <= type(uint56).max, \"SafeCast: value doesn't fit in 56 bits\");\n        return uint56(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint48 from uint256, reverting on\n     * overflow (when the input is greater than largest uint48).\n     *\n     * Counterpart to Solidity's `uint48` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 48 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint48(uint256 value) internal pure returns (uint48) {\n        require(value <= type(uint48).max, \"SafeCast: value doesn't fit in 48 bits\");\n        return uint48(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint40 from uint256, reverting on\n     * overflow (when the input is greater than largest uint40).\n     *\n     * Counterpart to Solidity's `uint40` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 40 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint40(uint256 value) internal pure returns (uint40) {\n        require(value <= type(uint40).max, \"SafeCast: value doesn't fit in 40 bits\");\n        return uint40(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint32 from uint256, reverting on\n     * overflow (when the input is greater than largest uint32).\n     *\n     * Counterpart to Solidity's `uint32` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 32 bits\n     *\n     * _Available since v2.5._\n     */\n    function toUint32(uint256 value) internal pure returns (uint32) {\n        require(value <= type(uint32).max, \"SafeCast: value doesn't fit in 32 bits\");\n        return uint32(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint24 from uint256, reverting on\n     * overflow (when the input is greater than largest uint24).\n     *\n     * Counterpart to Solidity's `uint24` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 24 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint24(uint256 value) internal pure returns (uint24) {\n        require(value <= type(uint24).max, \"SafeCast: value doesn't fit in 24 bits\");\n        return uint24(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint16 from uint256, reverting on\n     * overflow (when the input is greater than largest uint16).\n     *\n     * Counterpart to Solidity's `uint16` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 16 bits\n     *\n     * _Available since v2.5._\n     */\n    function toUint16(uint256 value) internal pure returns (uint16) {\n        require(value <= type(uint16).max, \"SafeCast: value doesn't fit in 16 bits\");\n        return uint16(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint8 from uint256, reverting on\n     * overflow (when the input is greater than largest uint8).\n     *\n     * Counterpart to Solidity's `uint8` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 8 bits\n     *\n     * _Available since v2.5._\n     */\n    function toUint8(uint256 value) internal pure returns (uint8) {\n        require(value <= type(uint8).max, \"SafeCast: value doesn't fit in 8 bits\");\n        return uint8(value);\n    }\n\n    /**\n     * @dev Converts a signed int256 into an unsigned uint256.\n     *\n     * Requirements:\n     *\n     * - input must be greater than or equal to 0.\n     *\n     * _Available since v3.0._\n     */\n    function toUint256(int256 value) internal pure returns (uint256) {\n        require(value >= 0, \"SafeCast: value must be positive\");\n        return uint256(value);\n    }\n\n    /**\n     * @dev Returns the downcasted int248 from int256, reverting on\n     * overflow (when the input is less than smallest int248 or\n     * greater than largest int248).\n     *\n     * Counterpart to Solidity's `int248` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 248 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt248(int256 value) internal pure returns (int248 downcasted) {\n        downcasted = int248(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 248 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int240 from int256, reverting on\n     * overflow (when the input is less than smallest int240 or\n     * greater than largest int240).\n     *\n     * Counterpart to Solidity's `int240` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 240 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt240(int256 value) internal pure returns (int240 downcasted) {\n        downcasted = int240(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 240 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int232 from int256, reverting on\n     * overflow (when the input is less than smallest int232 or\n     * greater than largest int232).\n     *\n     * Counterpart to Solidity's `int232` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 232 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt232(int256 value) internal pure returns (int232 downcasted) {\n        downcasted = int232(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 232 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int224 from int256, reverting on\n     * overflow (when the input is less than smallest int224 or\n     * greater than largest int224).\n     *\n     * Counterpart to Solidity's `int224` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 224 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt224(int256 value) internal pure returns (int224 downcasted) {\n        downcasted = int224(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 224 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int216 from int256, reverting on\n     * overflow (when the input is less than smallest int216 or\n     * greater than largest int216).\n     *\n     * Counterpart to Solidity's `int216` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 216 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt216(int256 value) internal pure returns (int216 downcasted) {\n        downcasted = int216(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 216 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int208 from int256, reverting on\n     * overflow (when the input is less than smallest int208 or\n     * greater than largest int208).\n     *\n     * Counterpart to Solidity's `int208` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 208 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt208(int256 value) internal pure returns (int208 downcasted) {\n        downcasted = int208(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 208 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int200 from int256, reverting on\n     * overflow (when the input is less than smallest int200 or\n     * greater than largest int200).\n     *\n     * Counterpart to Solidity's `int200` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 200 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt200(int256 value) internal pure returns (int200 downcasted) {\n        downcasted = int200(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 200 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int192 from int256, reverting on\n     * overflow (when the input is less than smallest int192 or\n     * greater than largest int192).\n     *\n     * Counterpart to Solidity's `int192` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 192 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt192(int256 value) internal pure returns (int192 downcasted) {\n        downcasted = int192(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 192 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int184 from int256, reverting on\n     * overflow (when the input is less than smallest int184 or\n     * greater than largest int184).\n     *\n     * Counterpart to Solidity's `int184` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 184 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt184(int256 value) internal pure returns (int184 downcasted) {\n        downcasted = int184(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 184 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int176 from int256, reverting on\n     * overflow (when the input is less than smallest int176 or\n     * greater than largest int176).\n     *\n     * Counterpart to Solidity's `int176` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 176 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt176(int256 value) internal pure returns (int176 downcasted) {\n        downcasted = int176(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 176 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int168 from int256, reverting on\n     * overflow (when the input is less than smallest int168 or\n     * greater than largest int168).\n     *\n     * Counterpart to Solidity's `int168` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 168 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt168(int256 value) internal pure returns (int168 downcasted) {\n        downcasted = int168(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 168 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int160 from int256, reverting on\n     * overflow (when the input is less than smallest int160 or\n     * greater than largest int160).\n     *\n     * Counterpart to Solidity's `int160` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 160 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt160(int256 value) internal pure returns (int160 downcasted) {\n        downcasted = int160(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 160 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int152 from int256, reverting on\n     * overflow (when the input is less than smallest int152 or\n     * greater than largest int152).\n     *\n     * Counterpart to Solidity's `int152` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 152 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt152(int256 value) internal pure returns (int152 downcasted) {\n        downcasted = int152(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 152 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int144 from int256, reverting on\n     * overflow (when the input is less than smallest int144 or\n     * greater than largest int144).\n     *\n     * Counterpart to Solidity's `int144` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 144 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt144(int256 value) internal pure returns (int144 downcasted) {\n        downcasted = int144(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 144 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int136 from int256, reverting on\n     * overflow (when the input is less than smallest int136 or\n     * greater than largest int136).\n     *\n     * Counterpart to Solidity's `int136` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 136 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt136(int256 value) internal pure returns (int136 downcasted) {\n        downcasted = int136(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 136 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int128 from int256, reverting on\n     * overflow (when the input is less than smallest int128 or\n     * greater than largest int128).\n     *\n     * Counterpart to Solidity's `int128` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 128 bits\n     *\n     * _Available since v3.1._\n     */\n    function toInt128(int256 value) internal pure returns (int128 downcasted) {\n        downcasted = int128(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 128 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int120 from int256, reverting on\n     * overflow (when the input is less than smallest int120 or\n     * greater than largest int120).\n     *\n     * Counterpart to Solidity's `int120` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 120 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt120(int256 value) internal pure returns (int120 downcasted) {\n        downcasted = int120(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 120 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int112 from int256, reverting on\n     * overflow (when the input is less than smallest int112 or\n     * greater than largest int112).\n     *\n     * Counterpart to Solidity's `int112` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 112 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt112(int256 value) internal pure returns (int112 downcasted) {\n        downcasted = int112(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 112 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int104 from int256, reverting on\n     * overflow (when the input is less than smallest int104 or\n     * greater than largest int104).\n     *\n     * Counterpart to Solidity's `int104` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 104 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt104(int256 value) internal pure returns (int104 downcasted) {\n        downcasted = int104(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 104 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int96 from int256, reverting on\n     * overflow (when the input is less than smallest int96 or\n     * greater than largest int96).\n     *\n     * Counterpart to Solidity's `int96` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 96 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt96(int256 value) internal pure returns (int96 downcasted) {\n        downcasted = int96(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 96 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int88 from int256, reverting on\n     * overflow (when the input is less than smallest int88 or\n     * greater than largest int88).\n     *\n     * Counterpart to Solidity's `int88` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 88 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt88(int256 value) internal pure returns (int88 downcasted) {\n        downcasted = int88(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 88 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int80 from int256, reverting on\n     * overflow (when the input is less than smallest int80 or\n     * greater than largest int80).\n     *\n     * Counterpart to Solidity's `int80` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 80 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt80(int256 value) internal pure returns (int80 downcasted) {\n        downcasted = int80(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 80 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int72 from int256, reverting on\n     * overflow (when the input is less than smallest int72 or\n     * greater than largest int72).\n     *\n     * Counterpart to Solidity's `int72` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 72 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt72(int256 value) internal pure returns (int72 downcasted) {\n        downcasted = int72(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 72 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int64 from int256, reverting on\n     * overflow (when the input is less than smallest int64 or\n     * greater than largest int64).\n     *\n     * Counterpart to Solidity's `int64` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 64 bits\n     *\n     * _Available since v3.1._\n     */\n    function toInt64(int256 value) internal pure returns (int64 downcasted) {\n        downcasted = int64(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 64 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int56 from int256, reverting on\n     * overflow (when the input is less than smallest int56 or\n     * greater than largest int56).\n     *\n     * Counterpart to Solidity's `int56` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 56 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt56(int256 value) internal pure returns (int56 downcasted) {\n        downcasted = int56(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 56 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int48 from int256, reverting on\n     * overflow (when the input is less than smallest int48 or\n     * greater than largest int48).\n     *\n     * Counterpart to Solidity's `int48` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 48 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt48(int256 value) internal pure returns (int48 downcasted) {\n        downcasted = int48(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 48 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int40 from int256, reverting on\n     * overflow (when the input is less than smallest int40 or\n     * greater than largest int40).\n     *\n     * Counterpart to Solidity's `int40` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 40 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt40(int256 value) internal pure returns (int40 downcasted) {\n        downcasted = int40(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 40 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int32 from int256, reverting on\n     * overflow (when the input is less than smallest int32 or\n     * greater than largest int32).\n     *\n     * Counterpart to Solidity's `int32` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 32 bits\n     *\n     * _Available since v3.1._\n     */\n    function toInt32(int256 value) internal pure returns (int32 downcasted) {\n        downcasted = int32(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 32 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int24 from int256, reverting on\n     * overflow (when the input is less than smallest int24 or\n     * greater than largest int24).\n     *\n     * Counterpart to Solidity's `int24` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 24 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt24(int256 value) internal pure returns (int24 downcasted) {\n        downcasted = int24(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 24 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int16 from int256, reverting on\n     * overflow (when the input is less than smallest int16 or\n     * greater than largest int16).\n     *\n     * Counterpart to Solidity's `int16` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 16 bits\n     *\n     * _Available since v3.1._\n     */\n    function toInt16(int256 value) internal pure returns (int16 downcasted) {\n        downcasted = int16(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 16 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int8 from int256, reverting on\n     * overflow (when the input is less than smallest int8 or\n     * greater than largest int8).\n     *\n     * Counterpart to Solidity's `int8` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 8 bits\n     *\n     * _Available since v3.1._\n     */\n    function toInt8(int256 value) internal pure returns (int8 downcasted) {\n        downcasted = int8(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 8 bits\");\n    }\n\n    /**\n     * @dev Converts an unsigned uint256 into a signed int256.\n     *\n     * Requirements:\n     *\n     * - input must be less than or equal to maxInt256.\n     *\n     * _Available since v3.0._\n     */\n    function toInt256(uint256 value) internal pure returns (int256) {\n        // Note: Unsafe cast below is okay because `type(int256).max` is guaranteed to be positive\n        require(value <= uint256(type(int256).max), \"SafeCast: value doesn't fit in an int256\");\n        return int256(value);\n    }\n}\n"},"@openzeppelin/contracts/utils/math/SignedMath.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/SignedMath.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Standard signed math utilities missing in the Solidity language.\n */\nlibrary SignedMath {\n    /**\n     * @dev Returns the largest of two signed numbers.\n     */\n    function max(int256 a, int256 b) internal pure returns (int256) {\n        return a > b ? a : b;\n    }\n\n    /**\n     * @dev Returns the smallest of two signed numbers.\n     */\n    function min(int256 a, int256 b) internal pure returns (int256) {\n        return a < b ? a : b;\n    }\n\n    /**\n     * @dev Returns the average of two signed numbers without overflow.\n     * The result is rounded towards zero.\n     */\n    function average(int256 a, int256 b) internal pure returns (int256) {\n        // Formula from the book \"Hacker's Delight\"\n        int256 x = (a & b) + ((a ^ b) >> 1);\n        return x + (int256(uint256(x) >> 255) & (a ^ b));\n    }\n\n    /**\n     * @dev Returns the absolute unsigned value of a signed value.\n     */\n    function abs(int256 n) internal pure returns (uint256) {\n        unchecked {\n            // must be unchecked in order to support `n = type(int256).min`\n            return uint256(n >= 0 ? n : -n);\n        }\n    }\n}\n"},"@openzeppelin/contracts/utils/Strings.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Strings.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./math/Math.sol\";\nimport \"./math/SignedMath.sol\";\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n    bytes16 private constant _SYMBOLS = \"0123456789abcdef\";\n    uint8 private constant _ADDRESS_LENGTH = 20;\n\n    /**\n     * @dev Converts a `uint256` to its ASCII `string` decimal representation.\n     */\n    function toString(uint256 value) internal pure returns (string memory) {\n        unchecked {\n            uint256 length = Math.log10(value) + 1;\n            string memory buffer = new string(length);\n            uint256 ptr;\n            /// @solidity memory-safe-assembly\n            assembly {\n                ptr := add(buffer, add(32, length))\n            }\n            while (true) {\n                ptr--;\n                /// @solidity memory-safe-assembly\n                assembly {\n                    mstore8(ptr, byte(mod(value, 10), _SYMBOLS))\n                }\n                value /= 10;\n                if (value == 0) break;\n            }\n            return buffer;\n        }\n    }\n\n    /**\n     * @dev Converts a `int256` to its ASCII `string` decimal representation.\n     */\n    function toString(int256 value) internal pure returns (string memory) {\n        return string(abi.encodePacked(value < 0 ? \"-\" : \"\", toString(SignedMath.abs(value))));\n    }\n\n    /**\n     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.\n     */\n    function toHexString(uint256 value) internal pure returns (string memory) {\n        unchecked {\n            return toHexString(value, Math.log256(value) + 1);\n        }\n    }\n\n    /**\n     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\n     */\n    function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\n        bytes memory buffer = new bytes(2 * length + 2);\n        buffer[0] = \"0\";\n        buffer[1] = \"x\";\n        for (uint256 i = 2 * length + 1; i > 1; --i) {\n            buffer[i] = _SYMBOLS[value & 0xf];\n            value >>= 4;\n        }\n        require(value == 0, \"Strings: hex length insufficient\");\n        return string(buffer);\n    }\n\n    /**\n     * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation.\n     */\n    function toHexString(address addr) internal pure returns (string memory) {\n        return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH);\n    }\n\n    /**\n     * @dev Returns true if the two strings are equal.\n     */\n    function equal(string memory a, string memory b) internal pure returns (bool) {\n        return keccak256(bytes(a)) == keccak256(bytes(b));\n    }\n}\n"},"@venusprotocol/isolated-pools/contracts/InterestRateModel.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\n/**\n * @title Compound's InterestRateModel Interface\n * @author Compound\n */\nabstract contract InterestRateModel {\n    /**\n     * @notice Calculates the current borrow interest rate per slot (block or second)\n     * @param cash The total amount of cash the market has\n     * @param borrows The total amount of borrows the market has outstanding\n     * @param reserves The total amount of reserves the market has\n     * @param badDebt The amount of badDebt in the market\n     * @return The borrow rate percentage per slot (block or second) as a mantissa (scaled by EXP_SCALE)\n     */\n    function getBorrowRate(\n        uint256 cash,\n        uint256 borrows,\n        uint256 reserves,\n        uint256 badDebt\n    ) external view virtual returns (uint256);\n\n    /**\n     * @notice Calculates the current supply interest rate per slot (block or second)\n     * @param cash The total amount of cash the market has\n     * @param borrows The total amount of borrows the market has outstanding\n     * @param reserves The total amount of reserves the market has\n     * @param reserveFactorMantissa The current reserve factor the market has\n     * @param badDebt The amount of badDebt in the market\n     * @return The supply rate percentage per slot (block or second) as a mantissa (scaled by EXP_SCALE)\n     */\n    function getSupplyRate(\n        uint256 cash,\n        uint256 borrows,\n        uint256 reserves,\n        uint256 reserveFactorMantissa,\n        uint256 badDebt\n    ) external view virtual returns (uint256);\n\n    /**\n     * @notice Indicator that this is an InterestRateModel contract (for inspection)\n     * @return Always true\n     */\n    function isInterestRateModel() external pure virtual returns (bool) {\n        return true;\n    }\n}\n"},"@venusprotocol/solidity-utilities/contracts/validators.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\n/// @notice Thrown if the supplied address is a zero address where it is not allowed\nerror ZeroAddressNotAllowed();\n\n/// @notice Thrown if the supplied value is 0 where it is not allowed\nerror ZeroValueNotAllowed();\n\n/// @notice Checks if the provided address is nonzero, reverts otherwise\n/// @param address_ Address to check\n/// @custom:error ZeroAddressNotAllowed is thrown if the provided address is a zero address\nfunction ensureNonzeroAddress(address address_) pure {\n    if (address_ == address(0)) {\n        revert ZeroAddressNotAllowed();\n    }\n}\n\n/// @notice Checks if the provided value is nonzero, reverts otherwise\n/// @param value_ Value to check\n/// @custom:error ZeroValueNotAllowed is thrown if the provided value is 0\nfunction ensureNonzeroValue(uint256 value_) pure {\n    if (value_ == 0) {\n        revert ZeroValueNotAllowed();\n    }\n}\n"},"@venusprotocol/venus-protocol/contracts/InterestRateModels/InterestRateModelV8.sol":{"content":"pragma solidity 0.8.25;\n\n/**\n * @title Venus's InterestRateModelV8 Interface\n * @author Venus\n */\nabstract contract InterestRateModelV8 {\n    /// @notice Indicator that this is an InterestRateModel contract (for inspection)\n    bool public constant isInterestRateModel = true;\n\n    /**\n     * @notice Calculates the current borrow interest rate per block\n     * @param cash The total amount of cash the market has\n     * @param borrows The total amount of borrows the market has outstanding\n     * @param reserves The total amnount of reserves the market has\n     * @return The borrow rate per block (as a percentage, and scaled by 1e18)\n     */\n    function getBorrowRate(uint256 cash, uint256 borrows, uint256 reserves) external view virtual returns (uint256);\n\n    /**\n     * @notice Calculates the current supply interest rate per block\n     * @param cash The total amount of cash the market has\n     * @param borrows The total amount of borrows the market has outstanding\n     * @param reserves The total amnount of reserves the market has\n     * @param reserveFactorMantissa The current reserve factor the market has\n     * @return The supply rate per block (as a percentage, and scaled by 1e18)\n     */\n    function getSupplyRate(\n        uint256 cash,\n        uint256 borrows,\n        uint256 reserves,\n        uint256 reserveFactorMantissa\n    ) external view virtual returns (uint256);\n}\n"},"contracts/Cross-chain/BaseOmnichainControllerDest.sol":{"content":"//  SPDX-License-Identifier: BSD-3-Clause\n\npragma solidity 0.8.25;\n\nimport { NonblockingLzApp } from \"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol\";\nimport { Pausable } from \"@openzeppelin/contracts/security/Pausable.sol\";\nimport { ensureNonzeroAddress } from \"@venusprotocol/solidity-utilities/contracts/validators.sol\";\n\n/**\n * @title BaseOmnichainControllerDest\n * @author Venus\n * @dev This contract is the base for the Omnichain controller destination contract\n * It provides functionality related to daily command limits and pausability\n * @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion\n */\n\nabstract contract BaseOmnichainControllerDest is NonblockingLzApp, Pausable {\n    /**\n     * @notice Maximum daily limit for receiving commands from Binance chain\n     */\n    uint256 public maxDailyReceiveLimit;\n\n    /**\n     * @notice Total received commands within the last 24-hour window from Binance chain\n     */\n    uint256 public last24HourCommandsReceived;\n\n    /**\n     * @notice Timestamp when the last 24-hour window started from Binance chain\n     */\n    uint256 public last24HourReceiveWindowStart;\n\n    /**\n     * @notice Emitted when the maximum daily limit for receiving command from Binance chain is modified\n     */\n    event SetMaxDailyReceiveLimit(uint256 oldMaxLimit, uint256 newMaxLimit);\n\n    constructor(address endpoint_) NonblockingLzApp(endpoint_) {\n        ensureNonzeroAddress(endpoint_);\n    }\n\n    /**\n     * @notice Sets the maximum daily limit for receiving commands\n     * @param limit_ Number of commands\n     * @custom:access Only Owner\n     * @custom:event Emits SetMaxDailyReceiveLimit with old and new limit\n     */\n    function setMaxDailyReceiveLimit(uint256 limit_) external onlyOwner {\n        emit SetMaxDailyReceiveLimit(maxDailyReceiveLimit, limit_);\n        maxDailyReceiveLimit = limit_;\n    }\n\n    /**\n     * @notice Triggers the paused state of the controller\n     * @custom:access Only owner\n     */\n    function pause() external onlyOwner {\n        _pause();\n    }\n\n    /**\n     * @notice Triggers the resume state of the controller\n     * @custom:access Only owner\n     */\n    function unpause() external onlyOwner {\n        _unpause();\n    }\n\n    /**\n     * @notice Empty implementation of renounce ownership to avoid any mishappening\n     */\n    function renounceOwnership() public override {}\n\n    /**\n     * @notice Check eligibility to receive commands\n     * @param noOfCommands_ Number of commands to be received\n     */\n    function _isEligibleToReceive(uint256 noOfCommands_) internal {\n        uint256 currentBlockTimestamp = block.timestamp;\n\n        // Load values for the 24-hour window checks for receiving\n        uint256 receivedInWindow = last24HourCommandsReceived;\n\n        // Check if the time window has changed (more than 24 hours have passed)\n        if (currentBlockTimestamp - last24HourReceiveWindowStart > 1 days) {\n            receivedInWindow = noOfCommands_;\n            last24HourReceiveWindowStart = currentBlockTimestamp;\n        } else {\n            receivedInWindow += noOfCommands_;\n        }\n\n        // Revert if the received amount exceeds the daily limit\n        require(receivedInWindow <= maxDailyReceiveLimit, \"Daily Transaction Limit Exceeded\");\n\n        // Update the received amount for the 24-hour window\n        last24HourCommandsReceived = receivedInWindow;\n    }\n}\n"},"contracts/Cross-chain/BaseOmnichainControllerSrc.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\n\npragma solidity 0.8.25;\n\nimport { Pausable } from \"@openzeppelin/contracts/security/Pausable.sol\";\nimport { Ownable } from \"@openzeppelin/contracts/access/Ownable.sol\";\nimport { ensureNonzeroAddress } from \"@venusprotocol/solidity-utilities/contracts/validators.sol\";\nimport { IAccessControlManagerV8 } from \"./../Governance/IAccessControlManagerV8.sol\";\n\n/**\n * @title BaseOmnichainControllerSrc\n * @dev This contract is the base for the Omnichain controller source contracts.\n * It provides functionality related to daily command limits and pausability.\n * @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion\n */\n\ncontract BaseOmnichainControllerSrc is Ownable, Pausable {\n    /**\n     * @notice ACM (Access Control Manager) contract address\n     */\n    address public accessControlManager;\n\n    /**\n     * @notice Maximum daily limit for commands from the local chain\n     */\n    mapping(uint16 => uint256) public chainIdToMaxDailyLimit;\n\n    /**\n     * @notice Total commands transferred within the last 24-hour window from the local chain\n     */\n    mapping(uint16 => uint256) public chainIdToLast24HourCommandsSent;\n\n    /**\n     * @notice Timestamp when the last 24-hour window started from the local chain\n     */\n    mapping(uint16 => uint256) public chainIdToLast24HourWindowStart;\n    /**\n     * @notice Timestamp when the last proposal sent from the local chain to dest chain\n     */\n    mapping(uint16 => uint256) public chainIdToLastProposalSentTimestamp;\n\n    /**\n     * @notice Emitted when the maximum daily limit of commands from the local chain is modified\n     */\n    event SetMaxDailyLimit(uint16 indexed chainId, uint256 oldMaxLimit, uint256 newMaxLimit);\n\n    /**\n     * @notice Emitted when the address of ACM is updated\n     */\n    event NewAccessControlManager(address indexed oldAccessControlManager, address indexed newAccessControlManager);\n\n    constructor(address accessControlManager_) {\n        ensureNonzeroAddress(accessControlManager_);\n        accessControlManager = accessControlManager_;\n    }\n\n    /**\n     * @notice Sets the limit of daily (24 Hour) command amount\n     * @param chainId_ Destination chain id\n     * @param limit_ Number of commands\n     * @custom:access Controlled by AccessControlManager\n     * @custom:event Emits SetMaxDailyLimit with old and new limit and its corresponding chain id\n     */\n    function setMaxDailyLimit(uint16 chainId_, uint256 limit_) external {\n        _ensureAllowed(\"setMaxDailyLimit(uint16,uint256)\");\n        emit SetMaxDailyLimit(chainId_, chainIdToMaxDailyLimit[chainId_], limit_);\n        chainIdToMaxDailyLimit[chainId_] = limit_;\n    }\n\n    /**\n     * @notice Triggers the paused state of the controller\n     * @custom:access Controlled by AccessControlManager\n     */\n    function pause() external {\n        _ensureAllowed(\"pause()\");\n        _pause();\n    }\n\n    /**\n     * @notice Triggers the resume state of the controller\n     * @custom:access Controlled by AccessControlManager\n     */\n    function unpause() external {\n        _ensureAllowed(\"unpause()\");\n        _unpause();\n    }\n\n    /**\n     * @notice Sets the address of Access Control Manager (ACM)\n     * @param accessControlManager_ The new address of the Access Control Manager\n     * @custom:access Only owner\n     * @custom:event Emits NewAccessControlManager with old and new access control manager addresses\n     */\n    function setAccessControlManager(address accessControlManager_) external onlyOwner {\n        ensureNonzeroAddress(accessControlManager_);\n        emit NewAccessControlManager(accessControlManager, accessControlManager_);\n        accessControlManager = accessControlManager_;\n    }\n\n    /**\n     * @notice Empty implementation of renounce ownership to avoid any mishap\n     */\n    function renounceOwnership() public override {}\n\n    /**\n     * @notice Check eligibility to send commands\n     * @param dstChainId_ Destination chain id\n     * @param noOfCommands_ Number of commands to send\n     */\n    function _isEligibleToSend(uint16 dstChainId_, uint256 noOfCommands_) internal {\n        // Load values for the 24-hour window checks\n        uint256 currentBlockTimestamp = block.timestamp;\n        uint256 lastDayWindowStart = chainIdToLast24HourWindowStart[dstChainId_];\n        uint256 commandsSentInWindow = chainIdToLast24HourCommandsSent[dstChainId_];\n        uint256 maxDailyLimit = chainIdToMaxDailyLimit[dstChainId_];\n        uint256 lastProposalSentTimestamp = chainIdToLastProposalSentTimestamp[dstChainId_];\n\n        // Check if the time window has changed (more than 24 hours have passed)\n        if (currentBlockTimestamp - lastDayWindowStart > 1 days) {\n            commandsSentInWindow = noOfCommands_;\n            chainIdToLast24HourWindowStart[dstChainId_] = currentBlockTimestamp;\n        } else {\n            commandsSentInWindow += noOfCommands_;\n        }\n\n        // Revert if the amount exceeds the daily limit\n        require(commandsSentInWindow <= maxDailyLimit, \"Daily Transaction Limit Exceeded\");\n        // Revert if the last proposal is already sent in current block i.e multiple proposals cannot be sent within the same block.timestamp\n        require(lastProposalSentTimestamp != currentBlockTimestamp, \"Multiple bridging in a proposal\");\n\n        // Update the amount for the 24-hour window\n        chainIdToLast24HourCommandsSent[dstChainId_] = commandsSentInWindow;\n        // Update the last sent proposal timestamp\n        chainIdToLastProposalSentTimestamp[dstChainId_] = currentBlockTimestamp;\n    }\n\n    /**\n     * @notice Ensure that the caller has permission to execute a specific function\n     * @param functionSig_ Function signature to be checked for permission\n     */\n    function _ensureAllowed(string memory functionSig_) internal view {\n        require(\n            IAccessControlManagerV8(accessControlManager).isAllowedToCall(msg.sender, functionSig_),\n            \"access denied\"\n        );\n    }\n}\n"},"contracts/Cross-chain/interfaces/IOmnichainGovernanceExecutor.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.25;\n\ninterface IOmnichainGovernanceExecutor {\n    /**\n     * @notice Transfers ownership of the contract to the specified address\n     * @param addr The address to which ownership will be transferred\n     */\n    function transferOwnership(address addr) external;\n\n    /**\n     * @notice Sets the source message sender address\n     * @param srcChainId_ The LayerZero id of a source chain\n     * @param srcAddress_ The address of the contract on the source chain\n     */\n    function setTrustedRemoteAddress(uint16 srcChainId_, bytes calldata srcAddress_) external;\n}\n"},"contracts/Cross-chain/interfaces/ITimelock.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity ^0.8.25;\n\n/**\n * @title ITimelock\n * @author Venus\n * @dev Interface for Timelock contract\n * @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion\n */\ninterface ITimelock {\n    /**\n     * @notice Delay period for the transaction queue\n     */\n    function delay() external view returns (uint256);\n\n    /**\n     * @notice Required period to execute a proposal transaction\n     */\n    function GRACE_PERIOD() external view returns (uint256);\n\n    /**\n     * @notice Method for accepting a proposed admin\n     */\n    function acceptAdmin() external;\n\n    /**\n     * @notice Method to propose a new admin authorized to call timelock functions. This should be the Governor Contract.\n     */\n    function setPendingAdmin(address pendingAdmin) external;\n\n    /**\n     * @notice Show mapping of queued transactions\n     * @param hash Transaction hash\n     */\n    function queuedTransactions(bytes32 hash) external view returns (bool);\n\n    /**\n     * @notice Called for each action when queuing a proposal\n     * @param target Address of the contract with the method to be called\n     * @param value Native token amount sent with the transaction\n     * @param signature signature of the function to be called\n     * @param data Arguments to be passed to the function when called\n     * @param eta Timestamp after which the transaction can be executed\n     * @return Hash of the queued transaction\n     */\n    function queueTransaction(\n        address target,\n        uint256 value,\n        string calldata signature,\n        bytes calldata data,\n        uint256 eta\n    ) external returns (bytes32);\n\n    /**\n     * @notice Called to cancel a queued transaction\n     * @param target Address of the contract with the method to be called\n     * @param value Native token amount sent with the transaction\n     * @param signature signature of the function to be called\n     * @param data Arguments to be passed to the function when called\n     * @param eta Timestamp after which the transaction can be executed\n     */\n    function cancelTransaction(\n        address target,\n        uint256 value,\n        string calldata signature,\n        bytes calldata data,\n        uint256 eta\n    ) external;\n\n    /**\n     * @notice Called to execute a queued transaction\n     * @param target Address of the contract with the method to be called\n     * @param value Native token amount sent with the transaction\n     * @param signature signature of the function to be called\n     * @param data Arguments to be passed to the function when called\n     * @param eta Timestamp after which the transaction can be executed\n     * @return Result of function call\n     */\n    function executeTransaction(\n        address target,\n        uint256 value,\n        string calldata signature,\n        bytes calldata data,\n        uint256 eta\n    ) external payable returns (bytes memory);\n}\n"},"contracts/Cross-chain/OmnichainExecutorOwner.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport { AccessControlledV8 } from \"../Governance/AccessControlledV8.sol\";\nimport { IOmnichainGovernanceExecutor } from \"./interfaces/IOmnichainGovernanceExecutor.sol\";\nimport { ensureNonzeroAddress } from \"@venusprotocol/solidity-utilities/contracts/validators.sol\";\n\n/**\n * @title OmnichainExecutorOwner\n * @author Venus\n * @notice OmnichainProposalSender contract acts as a governance and access control mechanism,\n * allowing owner to upsert signature of OmnichainGovernanceExecutor contract,\n * also contains function to transfer the ownership of contract as well.\n * @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion\n */\n\ncontract OmnichainExecutorOwner is AccessControlledV8 {\n    /**\n     *  @custom:oz-upgrades-unsafe-allow state-variable-immutable\n     */\n    IOmnichainGovernanceExecutor public immutable OMNICHAIN_GOVERNANCE_EXECUTOR;\n\n    /**\n     * @notice Stores function signature corresponding to their 4 bytes hash value\n     */\n    mapping(bytes4 => string) public functionRegistry;\n\n    /**\n     * @notice Event emitted when function registry updated\n     */\n    event FunctionRegistryChanged(string indexed signature, bool active);\n\n    /// @custom:oz-upgrades-unsafe-allow constructor\n    constructor(address omnichainGovernanceExecutor_) {\n        require(omnichainGovernanceExecutor_ != address(0), \"Address must not be zero\");\n        OMNICHAIN_GOVERNANCE_EXECUTOR = IOmnichainGovernanceExecutor(omnichainGovernanceExecutor_);\n        _disableInitializers();\n    }\n\n    /**\n     * @notice Initialize the contract\n     * @param accessControlManager_  Address of access control manager\n     */\n    function initialize(address accessControlManager_) external initializer {\n        require(accessControlManager_ != address(0), \"Address must not be zero\");\n        __AccessControlled_init(accessControlManager_);\n    }\n\n    /**\n     * @notice Sets the source message sender address\n     * @param srcChainId_ The LayerZero id of a source chain\n     * @param srcAddress_ The address of the contract on the source chain\n     * @custom:access Controlled by AccessControlManager\n     * @custom:event Emits SetTrustedRemoteAddress with source chain Id and source address\n     */\n    function setTrustedRemoteAddress(uint16 srcChainId_, bytes calldata srcAddress_) external {\n        _checkAccessAllowed(\"setTrustedRemoteAddress(uint16,bytes)\");\n        require(srcChainId_ != 0, \"ChainId must not be zero\");\n        ensureNonzeroAddress(address(uint160(bytes20(srcAddress_))));\n        require(srcAddress_.length == 20, \"Source address must be 20 bytes long\");\n        OMNICHAIN_GOVERNANCE_EXECUTOR.setTrustedRemoteAddress(srcChainId_, srcAddress_);\n    }\n\n    /**\n     * @notice Invoked when called function does not exist in the contract\n     * @param data_ Calldata containing the encoded function call\n     * @return Result of function call\n     * @custom:access Controlled by Access Control Manager\n     */\n    fallback(bytes calldata data_) external returns (bytes memory) {\n        string memory fun = functionRegistry[msg.sig];\n        require(bytes(fun).length != 0, \"Function not found\");\n        _checkAccessAllowed(fun);\n        (bool ok, bytes memory res) = address(OMNICHAIN_GOVERNANCE_EXECUTOR).call(data_);\n        require(ok, \"call failed\");\n        return res;\n    }\n\n    /**\n     * @notice A registry of functions that are allowed to be executed from proposals\n     * @param signatures_  Function signature to be added or removed\n     * @param active_ bool value, should be true to add function\n     * @custom:access Only owner\n     */\n    function upsertSignature(string[] calldata signatures_, bool[] calldata active_) external onlyOwner {\n        uint256 signatureLength = signatures_.length;\n        require(signatureLength == active_.length, \"Input arrays must have the same length\");\n        for (uint256 i; i < signatureLength; ++i) {\n            bytes4 sigHash = bytes4(keccak256(bytes(signatures_[i])));\n            bytes memory signature = bytes(functionRegistry[sigHash]);\n            if (active_[i] && signature.length == 0) {\n                functionRegistry[sigHash] = signatures_[i];\n                emit FunctionRegistryChanged(signatures_[i], true);\n            } else if (!active_[i] && signature.length != 0) {\n                delete functionRegistry[sigHash];\n                emit FunctionRegistryChanged(signatures_[i], false);\n            }\n        }\n    }\n\n    /**\n     * @notice This function transfer the ownership of the executor from this contract to new owner\n     * @param newOwner_ New owner of the governanceExecutor\n     * @custom:access Controlled by AccessControlManager\n     */\n\n    function transferBridgeOwnership(address newOwner_) external {\n        _checkAccessAllowed(\"transferBridgeOwnership(address)\");\n        require(newOwner_ != address(0), \"Address must not be zero\");\n        OMNICHAIN_GOVERNANCE_EXECUTOR.transferOwnership(newOwner_);\n    }\n\n    /**\n     *  @notice Empty implementation of renounce ownership to avoid any mishappening\n     */\n    function renounceOwnership() public virtual override {}\n}\n"},"contracts/Cross-chain/OmnichainGovernanceExecutor.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity 0.8.25;\n\nimport { ReentrancyGuard } from \"@openzeppelin/contracts/security/ReentrancyGuard.sol\";\nimport { BytesLib } from \"@layerzerolabs/solidity-examples/contracts/libraries/BytesLib.sol\";\nimport { ExcessivelySafeCall } from \"@layerzerolabs/solidity-examples/contracts/libraries/ExcessivelySafeCall.sol\";\nimport { ensureNonzeroAddress } from \"@venusprotocol/solidity-utilities/contracts/validators.sol\";\nimport { BaseOmnichainControllerDest } from \"./BaseOmnichainControllerDest.sol\";\nimport { ITimelock } from \"./interfaces/ITimelock.sol\";\n\n/**\n * @title OmnichainGovernanceExecutor\n * @notice Executes the proposal transactions sent from the main chain\n * @dev The owner of this contract controls LayerZero configuration. When used in production the owner will be OmnichainExecutor\n * This implementation is non-blocking, meaning the failed messages will not block the future messages from the source.\n * For the blocking behavior, derive the contract from LzApp.\n * @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion\n */\ncontract OmnichainGovernanceExecutor is ReentrancyGuard, BaseOmnichainControllerDest {\n    using BytesLib for bytes;\n    using ExcessivelySafeCall for address;\n\n    enum ProposalType {\n        NORMAL,\n        FASTTRACK,\n        CRITICAL\n    }\n\n    struct Proposal {\n        /** Unique id for looking up a proposal */\n        uint256 id;\n        /** The timestamp that the proposal will be available for execution, set once the vote succeeds */\n        uint256 eta;\n        /** The ordered list of target addresses for calls to be made */\n        address[] targets;\n        /** The ordered list of values (i.e. msg.value) to be passed to the calls to be made */\n        uint256[] values;\n        /** The ordered list of function signatures to be called */\n        string[] signatures;\n        /** The ordered list of calldata to be passed to each call */\n        bytes[] calldatas;\n        /** Flag marking whether the proposal has been canceled */\n        bool canceled;\n        /** Flag marking whether the proposal has been executed */\n        bool executed;\n        /** The type of the proposal */\n        uint8 proposalType;\n    }\n    /*\n     * @notice Possible states that a proposal may be in\n     */\n    enum ProposalState {\n        Canceled,\n        Queued,\n        Executed\n    }\n\n    /**\n     * @notice A privileged role that can cancel any proposal\n     */\n    address public guardian;\n\n    /**\n     * @notice Stores BNB chain layerzero endpoint id\n     */\n    uint16 public srcChainId;\n\n    /**\n     * @notice Last proposal count received\n     */\n    uint256 public lastProposalReceived;\n\n    /**\n     * @notice The official record of all proposals ever proposed\n     */\n    mapping(uint256 => Proposal) public proposals;\n\n    /**\n     * @notice Mapping containing Timelock addresses for each proposal type\n     */\n    mapping(uint256 => ITimelock) public proposalTimelocks;\n\n    /**\n     * @notice Represents queue state of proposal\n     */\n    mapping(uint256 => bool) public queued;\n\n    /**\n     * @notice Emitted when proposal is received\n     */\n    event ProposalReceived(\n        uint256 indexed proposalId,\n        address[] targets,\n        uint256[] values,\n        string[] signatures,\n        bytes[] calldatas,\n        uint8 proposalType\n    );\n\n    /**\n     * @notice Emitted when proposal is queued\n     */\n    event ProposalQueued(uint256 indexed id, uint256 eta);\n\n    /**\n     * Emitted when proposal executed\n     */\n    event ProposalExecuted(uint256 indexed id);\n\n    /**\n     * @notice Emitted when proposal failed\n     */\n    event ReceivePayloadFailed(uint16 indexed srcChainId, bytes indexed srcAddress, uint64 nonce, bytes reason);\n\n    /**\n     * @notice Emitted when proposal is canceled\n     */\n    event ProposalCanceled(uint256 indexed id);\n\n    /**\n     * @notice Emitted when timelock added\n     */\n    event TimelockAdded(uint8 routeType, address indexed oldTimelock, address indexed newTimelock);\n\n    /**\n     * @notice Emitted when source layerzero endpoint id is updated\n     */\n    event SetSrcChainId(uint16 indexed oldSrcChainId, uint16 indexed newSrcChainId);\n\n    /**\n     * @notice Emitted when new guardian address is set\n     */\n    event NewGuardian(address indexed oldGuardian, address indexed newGuardian);\n\n    /**\n     * @notice Emitted when pending admin of Timelock is updated\n     */\n    event SetTimelockPendingAdmin(address, uint8);\n\n    /**\n     * @notice Thrown when proposal ID is invalid\n     */\n    error InvalidProposalId();\n\n    constructor(address endpoint_, address guardian_, uint16 srcChainId_) BaseOmnichainControllerDest(endpoint_) {\n        ensureNonzeroAddress(guardian_);\n        guardian = guardian_;\n        srcChainId = srcChainId_;\n    }\n\n    /**\n     * @notice Update source layerzero endpoint id\n     * @param srcChainId_ The new source chain id to be set\n     * @custom:event Emit SetSrcChainId with old and new source id\n     * @custom:access Only owner\n     */\n    function setSrcChainId(uint16 srcChainId_) external onlyOwner {\n        emit SetSrcChainId(srcChainId, srcChainId_);\n        srcChainId = srcChainId_;\n    }\n\n    /**\n     * @notice Sets the new executor guardian\n     * @param newGuardian The address of the new guardian\n     * @custom:access Must be call by guardian or owner\n     * @custom:event Emit NewGuardian with old and new guardian address\n     */\n    function setGuardian(address newGuardian) external {\n        require(\n            msg.sender == guardian || msg.sender == owner(),\n            \"OmnichainGovernanceExecutor::setGuardian: owner or guardian only\"\n        );\n        ensureNonzeroAddress(newGuardian);\n        emit NewGuardian(guardian, newGuardian);\n        guardian = newGuardian;\n    }\n\n    /**\n     * @notice Add timelocks to the ProposalTimelocks mapping\n     * @param timelocks_ Array of addresses of all 3 timelocks\n     * @custom:access Only owner\n     * @custom:event Emits TimelockAdded with old and new timelock and route type\n     */\n    function addTimelocks(ITimelock[] memory timelocks_) external onlyOwner {\n        uint8 length = uint8(type(ProposalType).max) + 1;\n        require(\n            timelocks_.length == length,\n            \"OmnichainGovernanceExecutor::addTimelocks:number of timelocks should match the number of governance routes\"\n        );\n        for (uint8 i; i < length; ++i) {\n            ensureNonzeroAddress(address(timelocks_[i]));\n            emit TimelockAdded(i, address(proposalTimelocks[i]), address(timelocks_[i]));\n            proposalTimelocks[i] = timelocks_[i];\n        }\n    }\n\n    /**\n     * @notice Executes a queued proposal if eta has passed\n     * @param proposalId_ Id of proposal that is to be executed\n     * @custom:event Emits ProposalExecuted with proposal id of executed proposal\n     */\n    function execute(uint256 proposalId_) external nonReentrant {\n        require(\n            state(proposalId_) == ProposalState.Queued,\n            \"OmnichainGovernanceExecutor::execute: proposal can only be executed if it is queued\"\n        );\n\n        Proposal storage proposal = proposals[proposalId_];\n        proposal.executed = true;\n        ITimelock timelock = proposalTimelocks[proposal.proposalType];\n        uint256 eta = proposal.eta;\n        uint256 length = proposal.targets.length;\n\n        emit ProposalExecuted(proposalId_);\n\n        for (uint256 i; i < length; ++i) {\n            timelock.executeTransaction(\n                proposal.targets[i],\n                proposal.values[i],\n                proposal.signatures[i],\n                proposal.calldatas[i],\n                eta\n            );\n        }\n        delete queued[proposalId_];\n    }\n\n    /**\n     * @notice Cancels a proposal only if sender is the guardian and proposal is not executed\n     * @param proposalId_ Id of proposal that is to be canceled\n     * @custom:access Sender must be the guardian\n     * @custom:event Emits ProposalCanceled with proposal id of the canceled proposal\n     */\n    function cancel(uint256 proposalId_) external {\n        require(\n            state(proposalId_) == ProposalState.Queued,\n            \"OmnichainGovernanceExecutor::cancel: proposal should be queued and not executed\"\n        );\n        Proposal storage proposal = proposals[proposalId_];\n        require(msg.sender == guardian, \"OmnichainGovernanceExecutor::cancel: sender must be guardian\");\n\n        proposal.canceled = true;\n        ITimelock timelock = proposalTimelocks[proposal.proposalType];\n        uint256 eta = proposal.eta;\n        uint256 length = proposal.targets.length;\n\n        emit ProposalCanceled(proposalId_);\n\n        for (uint256 i; i < length; ++i) {\n            timelock.cancelTransaction(\n                proposal.targets[i],\n                proposal.values[i],\n                proposal.signatures[i],\n                proposal.calldatas[i],\n                eta\n            );\n        }\n        delete queued[proposalId_];\n    }\n\n    /**\n     * @notice Sets the new pending admin of the Timelock\n     * @param pendingAdmin_ Address of new pending admin\n     * @param proposalType_ Type of proposal\n     * @custom:access Only owner\n     * @custom:event Emits SetTimelockPendingAdmin with new pending admin and proposal type\n     */\n    function setTimelockPendingAdmin(address pendingAdmin_, uint8 proposalType_) external onlyOwner {\n        uint8 proposalTypeLength = uint8(type(ProposalType).max) + 1;\n        require(\n            proposalType_ < proposalTypeLength,\n            \"OmnichainGovernanceExecutor::setTimelockPendingAdmin: invalid proposal type\"\n        );\n\n        proposalTimelocks[proposalType_].setPendingAdmin(pendingAdmin_);\n        emit SetTimelockPendingAdmin(pendingAdmin_, proposalType_);\n    }\n\n    /**\n     * @notice Resends a previously failed message\n     * @param srcChainId_ Source chain Id\n     * @param srcAddress_ Source address => local app address + remote app address\n     * @param nonce_ Nonce to identify failed message\n     * @param payload_ The payload of the message to be retried\n     * @custom:access Only owner\n     */\n    function retryMessage(\n        uint16 srcChainId_,\n        bytes calldata srcAddress_,\n        uint64 nonce_,\n        bytes calldata payload_\n    ) public payable override onlyOwner nonReentrant {\n        require(\n            keccak256(trustedRemoteLookup[srcChainId_]) == keccak256(srcAddress_),\n            \"OmnichainGovernanceExecutor::retryMessage: not a trusted remote\"\n        );\n        super.retryMessage(srcChainId_, srcAddress_, nonce_, payload_);\n    }\n\n    /**\n     * @notice Gets the state of a proposal\n     * @param proposalId_ The id of the proposal\n     * @return Proposal state\n     */\n    function state(uint256 proposalId_) public view returns (ProposalState) {\n        Proposal storage proposal = proposals[proposalId_];\n        if (proposal.canceled) {\n            return ProposalState.Canceled;\n        } else if (proposal.executed) {\n            return ProposalState.Executed;\n        } else if (queued[proposalId_]) {\n            // queued only when proposal is received\n            return ProposalState.Queued;\n        } else {\n            revert InvalidProposalId();\n        }\n    }\n\n    /**\n     * @notice Process blocking LayerZero receive request\n     * @param srcChainId_ Source chain Id\n     * @param srcAddress_ Source address from which payload is received\n     * @param nonce_ Nonce associated with the payload to prevent replay attacks\n     * @param payload_ Encoded payload containing proposal information\n     * @custom:event Emit ReceivePayloadFailed if call fails\n     */\n    function _blockingLzReceive(\n        uint16 srcChainId_,\n        bytes memory srcAddress_,\n        uint64 nonce_,\n        bytes memory payload_\n    ) internal virtual override {\n        require(srcChainId_ == srcChainId, \"OmnichainGovernanceExecutor::_blockingLzReceive: invalid source chain id\");\n        bytes32 hashedPayload = keccak256(payload_);\n        bytes memory callData = abi.encodeCall(this.nonblockingLzReceive, (srcChainId_, srcAddress_, nonce_, payload_));\n\n        (bool success, bytes memory reason) = address(this).excessivelySafeCall(gasleft() - 30000, 150, callData);\n        // try-catch all errors/exceptions\n        if (!success) {\n            failedMessages[srcChainId_][srcAddress_][nonce_] = hashedPayload;\n            emit ReceivePayloadFailed(srcChainId_, srcAddress_, nonce_, reason); // Retrieve payload from the src side tx if needed to clear\n        }\n    }\n\n    /**\n     * @notice Process non blocking LayerZero receive request\n     * @param payload_ Encoded payload containing proposal information\n     * @custom:event Emit ProposalReceived\n     */\n    function _nonblockingLzReceive(\n        uint16,\n        bytes memory,\n        uint64,\n        bytes memory payload_\n    ) internal virtual override whenNotPaused {\n        (bytes memory payload, uint256 pId) = abi.decode(payload_, (bytes, uint256));\n        (\n            address[] memory targets,\n            uint256[] memory values,\n            string[] memory signatures,\n            bytes[] memory calldatas,\n            uint8 pType\n        ) = abi.decode(payload, (address[], uint256[], string[], bytes[], uint8));\n        require(proposals[pId].id == 0, \"OmnichainGovernanceExecutor::_nonblockingLzReceive: duplicate proposal\");\n        require(\n            targets.length == values.length &&\n                targets.length == signatures.length &&\n                targets.length == calldatas.length,\n            \"OmnichainGovernanceExecutor::_nonblockingLzReceive: proposal function information arity mismatch\"\n        );\n        require(\n            pType < uint8(type(ProposalType).max) + 1,\n            \"OmnichainGovernanceExecutor::_nonblockingLzReceive: invalid proposal type\"\n        );\n        _isEligibleToReceive(targets.length);\n\n        Proposal memory newProposal = Proposal({\n            id: pId,\n            eta: 0,\n            targets: targets,\n            values: values,\n            signatures: signatures,\n            calldatas: calldatas,\n            canceled: false,\n            executed: false,\n            proposalType: pType\n        });\n\n        proposals[pId] = newProposal;\n        lastProposalReceived = pId;\n\n        emit ProposalReceived(newProposal.id, targets, values, signatures, calldatas, pType);\n        _queue(pId);\n    }\n\n    /**\n     * @notice Queue proposal for execution\n     * @param proposalId_ Proposal to be queued\n     * @custom:event Emit ProposalQueued with proposal id and eta\n     */\n    function _queue(uint256 proposalId_) internal {\n        Proposal storage proposal = proposals[proposalId_];\n        uint256 eta = block.timestamp + proposalTimelocks[proposal.proposalType].delay();\n\n        proposal.eta = eta;\n        queued[proposalId_] = true;\n        uint8 proposalType = proposal.proposalType;\n        uint256 length = proposal.targets.length;\n        emit ProposalQueued(proposalId_, eta);\n\n        for (uint256 i; i < length; ++i) {\n            _queueOrRevertInternal(\n                proposal.targets[i],\n                proposal.values[i],\n                proposal.signatures[i],\n                proposal.calldatas[i],\n                eta,\n                proposalType\n            );\n        }\n    }\n\n    /**\n     * @notice Check for unique proposal\n     * @param target_ Address of the contract with the method to be called\n     * @param value_ Native token amount sent with the transaction\n     * @param signature_ Signature of the function to be called\n     * @param data_ Arguments to be passed to the function when called\n     * @param eta_ Timestamp after which the transaction can be executed\n     * @param proposalType_ Type of proposal\n     */\n    function _queueOrRevertInternal(\n        address target_,\n        uint256 value_,\n        string memory signature_,\n        bytes memory data_,\n        uint256 eta_,\n        uint8 proposalType_\n    ) internal {\n        require(\n            !proposalTimelocks[proposalType_].queuedTransactions(\n                keccak256(abi.encode(target_, value_, signature_, data_, eta_))\n            ),\n            \"OmnichainGovernanceExecutor::queueOrRevertInternal: identical proposal action already queued at eta\"\n        );\n\n        proposalTimelocks[proposalType_].queueTransaction(target_, value_, signature_, data_, eta_);\n    }\n}\n"},"contracts/Cross-chain/OmnichainProposalSender.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity 0.8.25;\n\nimport { ReentrancyGuard } from \"@openzeppelin/contracts/security/ReentrancyGuard.sol\";\nimport { ILayerZeroEndpoint } from \"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroEndpoint.sol\";\nimport { ensureNonzeroAddress } from \"@venusprotocol/solidity-utilities/contracts/validators.sol\";\nimport { BaseOmnichainControllerSrc } from \"./BaseOmnichainControllerSrc.sol\";\n\n/**\n * @title OmnichainProposalSender\n * @author Venus\n * @notice OmnichainProposalSender contract builds upon the functionality of its parent contract , BaseOmnichainControllerSrc\n * It sends a proposal's data to remote chains for execution after the proposal passes on the main chain\n * when used with GovernorBravo, the owner of this contract must be set to the Timelock contract\n * @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion\n */\n\ncontract OmnichainProposalSender is ReentrancyGuard, BaseOmnichainControllerSrc {\n    /**\n     * @notice Stores the total number of remote proposals\n     */\n    uint256 public proposalCount;\n\n    /**\n     * @notice Execution hashes of failed messages\n     * @dev [proposalId] -> [executionHash]\n     */\n    mapping(uint256 => bytes32) public storedExecutionHashes;\n\n    /**\n     * @notice LayerZero endpoint for sending messages to remote chains\n     */\n    ILayerZeroEndpoint public immutable LZ_ENDPOINT;\n\n    /**\n     * @notice Specifies the allowed path for sending messages (remote chainId => remote app address + local app address)\n     */\n    mapping(uint16 => bytes) public trustedRemoteLookup;\n\n    /**\n     * @notice Emitted when a remote message receiver is set for the remote chain\n     */\n    event SetTrustedRemoteAddress(uint16 indexed remoteChainId, bytes oldRemoteAddress, bytes newRemoteAddress);\n\n    /**\n     * @notice Event emitted when trusted remote sets to empty\n     */\n    event TrustedRemoteRemoved(uint16 indexed chainId);\n\n    /**\n     * @notice Emitted when a proposal execution request is sent to the remote chain\n     */\n    event ExecuteRemoteProposal(uint16 indexed remoteChainId, uint256 proposalId, bytes payload);\n\n    /**\n     * @notice Emitted when a previously failed message is successfully sent to the remote chain\n     */\n    event ClearPayload(uint256 indexed proposalId, bytes32 executionHash);\n\n    /**\n     * @notice Emitted when an execution hash of a failed message is saved\n     */\n    event StorePayload(\n        uint256 indexed proposalId,\n        uint16 indexed remoteChainId,\n        bytes payload,\n        bytes adapterParams,\n        uint256 value,\n        bytes reason\n    );\n    /**\n     * @notice Emitted while fallback withdraw\n     */\n    event FallbackWithdraw(address indexed receiver, uint256 value);\n\n    constructor(\n        ILayerZeroEndpoint lzEndpoint_,\n        address accessControlManager_\n    ) BaseOmnichainControllerSrc(accessControlManager_) {\n        ensureNonzeroAddress(address(lzEndpoint_));\n        LZ_ENDPOINT = lzEndpoint_;\n    }\n\n    /**\n     * @notice Estimates LayerZero fees for cross-chain message delivery to the remote chain\n     * @dev The estimated fees are the minimum required; it's recommended to increase the fees amount when sending a message. The unused amount will be refunded\n     * @param remoteChainId_ The LayerZero id of a remote chain\n     * @param payload_ The payload to be sent to the remote chain. It's computed as follows:\n     * payload = abi.encode(abi.encode(targets, values, signatures, calldatas, proposalType), pId)\n     * @param useZro_ Bool that indicates whether to pay in ZRO tokens or not\n     * @param adapterParams_ The params used to specify the custom amount of gas required for the execution on the destination\n     * @return nativeFee The amount of fee in the native gas token (e.g. ETH)\n     * @return zroFee The amount of fee in ZRO token\n     */\n    function estimateFees(\n        uint16 remoteChainId_,\n        bytes calldata payload_,\n        bool useZro_,\n        bytes calldata adapterParams_\n    ) external view returns (uint256, uint256) {\n        return LZ_ENDPOINT.estimateFees(remoteChainId_, address(this), payload_, useZro_, adapterParams_);\n    }\n\n    /**\n     * @notice Remove trusted remote from storage\n     * @param remoteChainId_ The chain's id corresponds to setting the trusted remote to empty\n     * @custom:access Controlled by Access Control Manager\n     * @custom:event Emit TrustedRemoteRemoved with remote chain id\n     */\n    function removeTrustedRemote(uint16 remoteChainId_) external {\n        _ensureAllowed(\"removeTrustedRemote(uint16)\");\n        require(trustedRemoteLookup[remoteChainId_].length != 0, \"OmnichainProposalSender: trusted remote not found\");\n        delete trustedRemoteLookup[remoteChainId_];\n        emit TrustedRemoteRemoved(remoteChainId_);\n    }\n\n    /**\n     * @notice Sends a message to execute a remote proposal\n     * @dev Stores the hash of the execution parameters if sending fails (e.g., due to insufficient fees)\n     * @param remoteChainId_ The LayerZero id of the remote chain\n     * @param payload_ The payload to be sent to the remote chain\n     * It's computed as follows: payload = abi.encode(targets, values, signatures, calldatas, proposalType)\n     * @param adapterParams_ The params used to specify the custom amount of gas required for the execution on the destination\n     * @param zroPaymentAddress_ The address of the ZRO token holder who would pay for the transaction. This must be either address(this) or tx.origin\n     * @custom:event Emits ExecuteRemoteProposal with remote chain id, proposal ID and payload on success\n     * @custom:event Emits StorePayload with last stored payload proposal ID ,remote chain id , payload, adapter params , values and reason for failure\n     * @custom:access Controlled by Access Control Manager\n     */\n    function execute(\n        uint16 remoteChainId_,\n        bytes calldata payload_,\n        bytes calldata adapterParams_,\n        address zroPaymentAddress_\n    ) external payable whenNotPaused {\n        _ensureAllowed(\"execute(uint16,bytes,bytes,address)\");\n\n        // A zero value will result in a failed message; therefore, a positive value is required to send a message across the chain.\n        require(msg.value > 0, \"OmnichainProposalSender: value cannot be zero\");\n        require(payload_.length != 0, \"OmnichainProposalSender: empty payload\");\n\n        bytes memory trustedRemote = trustedRemoteLookup[remoteChainId_];\n        require(trustedRemote.length != 0, \"OmnichainProposalSender: destination chain is not a trusted source\");\n        _validateProposal(remoteChainId_, payload_);\n        uint256 _pId = ++proposalCount;\n        bytes memory payload = abi.encode(payload_, _pId);\n\n        try\n            LZ_ENDPOINT.send{ value: msg.value }(\n                remoteChainId_,\n                trustedRemote,\n                payload,\n                payable(msg.sender),\n                zroPaymentAddress_,\n                adapterParams_\n            )\n        {\n            emit ExecuteRemoteProposal(remoteChainId_, _pId, payload);\n        } catch (bytes memory reason) {\n            storedExecutionHashes[_pId] = keccak256(abi.encode(remoteChainId_, payload, adapterParams_, msg.value));\n            emit StorePayload(_pId, remoteChainId_, payload, adapterParams_, msg.value, reason);\n        }\n    }\n\n    /**\n     * @notice Resends a previously failed message\n     * @dev Allows providing more fees if needed. The extra fees will be refunded to the caller\n     * @param pId_ The proposal ID to identify a failed message\n     * @param remoteChainId_ The LayerZero id of the remote chain\n     * @param payload_ The payload to be sent to the remote chain\n     * It's computed as follows: payload = abi.encode(abi.encode(targets, values, signatures, calldatas, proposalType), pId)\n     * @param adapterParams_ The params used to specify the custom amount of gas required for the execution on the destination\n     * @param zroPaymentAddress_ The address of the ZRO token holder who would pay for the transaction.\n     * @param originalValue_ The msg.value passed when execute() function was called\n     * @custom:event Emits ClearPayload with proposal ID and hash\n     * @custom:access Controlled by Access Control Manager\n     */\n    function retryExecute(\n        uint256 pId_,\n        uint16 remoteChainId_,\n        bytes calldata payload_,\n        bytes calldata adapterParams_,\n        address zroPaymentAddress_,\n        uint256 originalValue_\n    ) external payable whenNotPaused nonReentrant {\n        _ensureAllowed(\"retryExecute(uint256,uint16,bytes,bytes,address,uint256)\");\n        bytes memory trustedRemote = trustedRemoteLookup[remoteChainId_];\n        require(trustedRemote.length != 0, \"OmnichainProposalSender: destination chain is not a trusted source\");\n        bytes32 hash = storedExecutionHashes[pId_];\n        require(hash != bytes32(0), \"OmnichainProposalSender: no stored payload\");\n        require(payload_.length != 0, \"OmnichainProposalSender: empty payload\");\n        (bytes memory payload, ) = abi.decode(payload_, (bytes, uint256));\n        _validateProposal(remoteChainId_, payload);\n\n        require(\n            keccak256(abi.encode(remoteChainId_, payload_, adapterParams_, originalValue_)) == hash,\n            \"OmnichainProposalSender: invalid execution params\"\n        );\n\n        delete storedExecutionHashes[pId_];\n\n        emit ClearPayload(pId_, hash);\n\n        LZ_ENDPOINT.send{ value: originalValue_ + msg.value }(\n            remoteChainId_,\n            trustedRemote,\n            payload_,\n            payable(msg.sender),\n            zroPaymentAddress_,\n            adapterParams_\n        );\n    }\n\n    /**\n     * @notice Clear previously failed message\n     * @param to_ Address of the receiver\n     * @param pId_ The proposal ID to identify a failed message\n     * @param remoteChainId_ The LayerZero id of the remote chain\n     * @param payload_ The payload to be sent to the remote chain\n     * It's computed as follows: payload = abi.encode(abi.encode(targets, values, signatures, calldatas, proposalType), pId)\n     * @param adapterParams_ The params used to specify the custom amount of gas required for the execution on the destination\n     * @param originalValue_ The msg.value passed when execute() function was called\n     * @custom:access Only owner\n     * @custom:event Emits ClearPayload with proposal ID and hash\n     * @custom:event Emits FallbackWithdraw with receiver and amount\n     */\n    function fallbackWithdraw(\n        address to_,\n        uint256 pId_,\n        uint16 remoteChainId_,\n        bytes calldata payload_,\n        bytes calldata adapterParams_,\n        uint256 originalValue_\n    ) external onlyOwner nonReentrant {\n        ensureNonzeroAddress(to_);\n        require(originalValue_ > 0, \"OmnichainProposalSender: invalid native amount\");\n        require(payload_.length != 0, \"OmnichainProposalSender: empty payload\");\n\n        bytes32 hash = storedExecutionHashes[pId_];\n        require(hash != bytes32(0), \"OmnichainProposalSender: no stored payload\");\n\n        bytes memory execution = abi.encode(remoteChainId_, payload_, adapterParams_, originalValue_);\n        require(keccak256(execution) == hash, \"OmnichainProposalSender: invalid execution params\");\n\n        delete storedExecutionHashes[pId_];\n\n        emit FallbackWithdraw(to_, originalValue_);\n        emit ClearPayload(pId_, hash);\n\n        // Transfer the native to the `to_` address\n        (bool sent, ) = to_.call{ value: originalValue_ }(\"\");\n        require(sent, \"Call failed\");\n    }\n\n    /**\n     * @notice Sets the remote message receiver address\n     * @param remoteChainId_ The LayerZero id of a remote chain\n     * @param newRemoteAddress_ The address of the contract on the remote chain to receive messages sent by this contract\n     * @custom:access Controlled by AccessControlManager\n     * @custom:event Emits SetTrustedRemoteAddress with remote chain Id and remote address\n     */\n    function setTrustedRemoteAddress(uint16 remoteChainId_, bytes calldata newRemoteAddress_) external {\n        _ensureAllowed(\"setTrustedRemoteAddress(uint16,bytes)\");\n        require(remoteChainId_ != 0, \"OmnichainProposalSender: chainId must not be zero\");\n        ensureNonzeroAddress(address(uint160(bytes20(newRemoteAddress_))));\n        require(newRemoteAddress_.length == 20, \"OmnichainProposalSender: remote address must be 20 bytes long\");\n        bytes memory oldRemoteAddress = trustedRemoteLookup[remoteChainId_];\n        trustedRemoteLookup[remoteChainId_] = abi.encodePacked(newRemoteAddress_, address(this));\n        emit SetTrustedRemoteAddress(remoteChainId_, oldRemoteAddress, trustedRemoteLookup[remoteChainId_]);\n    }\n\n    /**\n     * @notice Sets the configuration of the LayerZero messaging library of the specified version\n     * @param version_ Messaging library version\n     * @param chainId_ The LayerZero chainId for the pending config change\n     * @param configType_ The type of configuration. Every messaging library has its own convention\n     * @param config_ The configuration in bytes. It can encode arbitrary content\n     * @custom:access Controlled by AccessControlManager\n     */\n    function setConfig(uint16 version_, uint16 chainId_, uint256 configType_, bytes calldata config_) external {\n        _ensureAllowed(\"setConfig(uint16,uint16,uint256,bytes)\");\n        LZ_ENDPOINT.setConfig(version_, chainId_, configType_, config_);\n    }\n\n    /**\n     * @notice Sets the configuration of the LayerZero messaging library of the specified version\n     * @param version_ New messaging library version\n     * @custom:access Controlled by AccessControlManager\n     */\n    function setSendVersion(uint16 version_) external {\n        _ensureAllowed(\"setSendVersion(uint16)\");\n        LZ_ENDPOINT.setSendVersion(version_);\n    }\n\n    /**\n     * @notice Gets the configuration of the LayerZero messaging library of the specified version\n     * @param version_ Messaging library version\n     * @param chainId_ The LayerZero chainId\n     * @param configType_ Type of configuration. Every messaging library has its own convention\n     */\n    function getConfig(uint16 version_, uint16 chainId_, uint256 configType_) external view returns (bytes memory) {\n        return LZ_ENDPOINT.getConfig(version_, chainId_, address(this), configType_);\n    }\n\n    function _validateProposal(uint16 remoteChainId_, bytes memory payload_) internal {\n        (\n            address[] memory targets,\n            uint256[] memory values,\n            string[] memory signatures,\n            bytes[] memory calldatas,\n\n        ) = abi.decode(payload_, (address[], uint[], string[], bytes[], uint8));\n        require(\n            targets.length == values.length &&\n                targets.length == signatures.length &&\n                targets.length == calldatas.length,\n            \"OmnichainProposalSender: proposal function information arity mismatch\"\n        );\n        _isEligibleToSend(remoteChainId_, targets.length);\n    }\n}\n"},"contracts/Governance/AccessControlledV8.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity ^0.8.25;\n\nimport \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\";\nimport \"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\";\n\nimport \"./IAccessControlManagerV8.sol\";\n\n/**\n * @title AccessControlledV8\n * @author Venus\n * @notice This contract is helper between access control manager and actual contract. This contract further inherited by other contract (using solidity 0.8.13)\n * to integrate access controlled mechanism. It provides initialise methods and verifying access methods.\n */\nabstract contract AccessControlledV8 is Initializable, Ownable2StepUpgradeable {\n    /// @notice Access control manager contract\n    IAccessControlManagerV8 internal _accessControlManager;\n\n    /**\n     * @dev This empty reserved space is put in place to allow future versions to add new\n     * variables without shifting down storage in the inheritance chain.\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n     */\n    uint256[49] private __gap;\n\n    /// @notice Emitted when access control manager contract address is changed\n    event NewAccessControlManager(address oldAccessControlManager, address newAccessControlManager);\n\n    /// @notice Thrown when the action is prohibited by AccessControlManager\n    error Unauthorized(address sender, address calledContract, string methodSignature);\n\n    function __AccessControlled_init(address accessControlManager_) internal onlyInitializing {\n        __Ownable2Step_init();\n        __AccessControlled_init_unchained(accessControlManager_);\n    }\n\n    function __AccessControlled_init_unchained(address accessControlManager_) internal onlyInitializing {\n        _setAccessControlManager(accessControlManager_);\n    }\n\n    /**\n     * @notice Sets the address of AccessControlManager\n     * @dev Admin function to set address of AccessControlManager\n     * @param accessControlManager_ The new address of the AccessControlManager\n     * @custom:event Emits NewAccessControlManager event\n     * @custom:access Only Governance\n     */\n    function setAccessControlManager(address accessControlManager_) external onlyOwner {\n        _setAccessControlManager(accessControlManager_);\n    }\n\n    /**\n     * @notice Returns the address of the access control manager contract\n     */\n    function accessControlManager() external view returns (IAccessControlManagerV8) {\n        return _accessControlManager;\n    }\n\n    /**\n     * @dev Internal function to set address of AccessControlManager\n     * @param accessControlManager_ The new address of the AccessControlManager\n     */\n    function _setAccessControlManager(address accessControlManager_) internal {\n        require(address(accessControlManager_) != address(0), \"invalid acess control manager address\");\n        address oldAccessControlManager = address(_accessControlManager);\n        _accessControlManager = IAccessControlManagerV8(accessControlManager_);\n        emit NewAccessControlManager(oldAccessControlManager, accessControlManager_);\n    }\n\n    /**\n     * @notice Reverts if the call is not allowed by AccessControlManager\n     * @param signature Method signature\n     */\n    function _checkAccessAllowed(string memory signature) internal view {\n        bool isAllowedToCall = _accessControlManager.isAllowedToCall(msg.sender, signature);\n\n        if (!isAllowedToCall) {\n            revert Unauthorized(msg.sender, address(this), signature);\n        }\n    }\n}\n"},"contracts/Governance/AccessControlManager.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\nimport \"@openzeppelin/contracts/access/AccessControl.sol\";\nimport \"./IAccessControlManagerV8.sol\";\n\n/**\n * @title AccessControlManager\n * @author Venus\n * @dev This contract is a wrapper of OpenZeppelin AccessControl extending it in a way to standartize access control within Venus Smart Contract Ecosystem.\n * @notice Access control plays a crucial role in the Venus governance model. It is used to restrict functions so that they can only be called from one\n * account or list of accounts (EOA or Contract Accounts).\n *\n * The implementation of `AccessControlManager`(https://github.com/VenusProtocol/governance-contracts/blob/main/contracts/Governance/AccessControlManager.sol)\n * inherits the [Open Zeppelin AccessControl](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/AccessControl.sol)\n * contract as a base for role management logic. There are two role types: admin and granular permissions.\n * \n * ## Granular Roles\n * \n * Granular roles are built by hashing the contract address and its function signature. For example, given contract `Foo` with function `Foo.bar()` which\n * is guarded by ACM, calling `giveRolePermission` for account B do the following:\n * \n * 1. Compute `keccak256(contractFooAddress,functionSignatureBar)`\n * 1. Add the computed role to the roles of account B\n * 1. Account B now can call `ContractFoo.bar()`\n * \n * ## Admin Roles\n * \n * Admin roles allow for an address to call a function signature on any contract guarded by the `AccessControlManager`. This is particularly useful for\n * contracts created by factories.\n * \n * For Admin roles a null address is hashed in place of the contract address (`keccak256(0x0000000000000000000000000000000000000000,functionSignatureBar)`.\n * \n * In the previous example, giving account B the admin role, account B will have permissions to call the `bar()` function on any contract that is guarded by\n * ACM, not only contract A.\n * \n * ## Protocol Integration\n * \n * All restricted functions in Venus Protocol use a hook to ACM in order to check if the caller has the right permission to call the guarded function.\n * `AccessControlledV5` and `AccessControlledV8` abstract contract makes this integration easier. They call ACM's external method\n * `isAllowedToCall(address caller, string functionSig)`. Here is an example of how `setCollateralFactor` function in `Comptroller` is integrated with ACM:\n\n```\n    contract Comptroller is [...] AccessControlledV8 {\n        [...]\n        function setCollateralFactor(VToken vToken, uint256 newCollateralFactorMantissa, uint256 newLiquidationThresholdMantissa) external {\n            _checkAccessAllowed(\"setCollateralFactor(address,uint256,uint256)\");\n            [...]\n        }\n    }\n```\n */\ncontract AccessControlManager is AccessControl, IAccessControlManagerV8 {\n    /// @notice Emitted when an account is given a permission to a certain contract function\n    /// @dev If contract address is 0x000..0 this means that the account is a default admin of this function and\n    /// can call any contract function with this signature\n    event PermissionGranted(address account, address contractAddress, string functionSig);\n\n    /// @notice Emitted when an account is revoked a permission to a certain contract function\n    event PermissionRevoked(address account, address contractAddress, string functionSig);\n\n    constructor() {\n        // Grant the contract deployer the default admin role: it will be able\n        // to grant and revoke any roles\n        _setupRole(DEFAULT_ADMIN_ROLE, msg.sender);\n    }\n\n    /**\n     * @notice Gives a function call permission to one single account\n     * @dev this function can be called only from Role Admin or DEFAULT_ADMIN_ROLE\n     * @param contractAddress address of contract for which call permissions will be granted\n     * @dev if contractAddress is zero address, the account can access the specified function\n     *      on **any** contract managed by this ACL\n     * @param functionSig signature e.g. \"functionName(uint256,bool)\"\n     * @param accountToPermit account that will be given access to the contract function\n     * @custom:event Emits a {RoleGranted} and {PermissionGranted} events.\n     */\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) public {\n        bytes32 role = keccak256(abi.encodePacked(contractAddress, functionSig));\n        grantRole(role, accountToPermit);\n        emit PermissionGranted(accountToPermit, contractAddress, functionSig);\n    }\n\n    /**\n     * @notice Revokes an account's permission to a particular function call\n     * @dev this function can be called only from Role Admin or DEFAULT_ADMIN_ROLE\n     * \t\tMay emit a {RoleRevoked} event.\n     * @param contractAddress address of contract for which call permissions will be revoked\n     * @param functionSig signature e.g. \"functionName(uint256,bool)\"\n     * @custom:event Emits {RoleRevoked} and {PermissionRevoked} events.\n     */\n    function revokeCallPermission(\n        address contractAddress,\n        string calldata functionSig,\n        address accountToRevoke\n    ) public {\n        bytes32 role = keccak256(abi.encodePacked(contractAddress, functionSig));\n        revokeRole(role, accountToRevoke);\n        emit PermissionRevoked(accountToRevoke, contractAddress, functionSig);\n    }\n\n    /**\n     * @notice Verifies if the given account can call a contract's guarded function\n     * @dev Since restricted contracts using this function as a permission hook, we can get contracts address with msg.sender\n     * @param account for which call permissions will be checked\n     * @param functionSig restricted function signature e.g. \"functionName(uint256,bool)\"\n     * @return false if the user account cannot call the particular contract function\n     *\n     */\n    function isAllowedToCall(address account, string calldata functionSig) public view returns (bool) {\n        bytes32 role = keccak256(abi.encodePacked(msg.sender, functionSig));\n\n        if (hasRole(role, account)) {\n            return true;\n        } else {\n            role = keccak256(abi.encodePacked(address(0), functionSig));\n            return hasRole(role, account);\n        }\n    }\n\n    /**\n     * @notice Verifies if the given account can call a contract's guarded function\n     * @dev This function is used as a view function to check permissions rather than contract hook for access restriction check.\n     * @param account for which call permissions will be checked against\n     * @param contractAddress address of the restricted contract\n     * @param functionSig signature of the restricted function e.g. \"functionName(uint256,bool)\"\n     * @return false if the user account cannot call the particular contract function\n     */\n    function hasPermission(\n        address account,\n        address contractAddress,\n        string calldata functionSig\n    ) public view returns (bool) {\n        bytes32 role = keccak256(abi.encodePacked(contractAddress, functionSig));\n        return hasRole(role, account);\n    }\n}\n"},"contracts/Governance/IAccessControlManagerV8.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity ^0.8.25;\n\nimport \"@openzeppelin/contracts/access/IAccessControl.sol\";\n\n/**\n * @title IAccessControlManagerV8\n * @author Venus\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\n */\ninterface IAccessControlManagerV8 is IAccessControl {\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\n\n    function revokeCallPermission(\n        address contractAddress,\n        string calldata functionSig,\n        address accountToRevoke\n    ) external;\n\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\n\n    function hasPermission(\n        address account,\n        address contractAddress,\n        string calldata functionSig\n    ) external view returns (bool);\n}\n"},"contracts/Governance/TimelockV8.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\nimport { ensureNonzeroAddress } from \"@venusprotocol/solidity-utilities/contracts/validators.sol\";\n\n/**\n * @title TimelockV8\n * @author Venus\n * @notice The Timelock contract using solidity V8.\n * This contract also differs from the original timelock because it has a virtual function to get minimum delays\n * and allow test deployments to override the value.\n */\ncontract TimelockV8 {\n    /// @notice Required period to execute a proposal transaction\n    uint256 private constant DEFAULT_GRACE_PERIOD = 14 days;\n\n    /// @notice Minimum amount of time a proposal transaction must be queued\n    uint256 private constant DEFAULT_MINIMUM_DELAY = 1 hours;\n\n    /// @notice Maximum amount of time a proposal transaction must be queued\n    uint256 private constant DEFAULT_MAXIMUM_DELAY = 30 days;\n\n    /// @notice Timelock admin authorized to queue and execute transactions\n    address public admin;\n\n    /// @notice Account proposed as the next admin\n    address public pendingAdmin;\n\n    /// @notice Period for a proposal transaction to be queued\n    uint256 public delay;\n\n    /// @notice Mapping of queued transactions\n    mapping(bytes32 => bool) public queuedTransactions;\n\n    /// @notice Event emitted when a new admin is accepted\n    event NewAdmin(address indexed oldAdmin, address indexed newAdmin);\n\n    /// @notice Event emitted when a new admin is proposed\n    event NewPendingAdmin(address indexed newPendingAdmin);\n\n    /// @notice Event emitted when a new delay is proposed\n    event NewDelay(uint256 indexed oldDelay, uint256 indexed newDelay);\n\n    /// @notice Event emitted when a proposal transaction has been cancelled\n    event CancelTransaction(\n        bytes32 indexed txHash,\n        address indexed target,\n        uint256 value,\n        string signature,\n        bytes data,\n        uint256 eta\n    );\n\n    /// @notice Event emitted when a proposal transaction has been executed\n    event ExecuteTransaction(\n        bytes32 indexed txHash,\n        address indexed target,\n        uint256 value,\n        string signature,\n        bytes data,\n        uint256 eta\n    );\n\n    /// @notice Event emitted when a proposal transaction has been queued\n    event QueueTransaction(\n        bytes32 indexed txHash,\n        address indexed target,\n        uint256 value,\n        string signature,\n        bytes data,\n        uint256 eta\n    );\n\n    constructor(address admin_, uint256 delay_) {\n        require(delay_ >= MINIMUM_DELAY(), \"Timelock::constructor: Delay must exceed minimum delay.\");\n        require(delay_ <= MAXIMUM_DELAY(), \"Timelock::setDelay: Delay must not exceed maximum delay.\");\n        ensureNonzeroAddress(admin_);\n\n        admin = admin_;\n        delay = delay_;\n    }\n\n    fallback() external payable {}\n\n    /**\n     * @notice Setter for the transaction queue delay\n     * @param delay_ The new delay period for the transaction queue\n     * @custom:access Sender must be Timelock itself\n     * @custom:event Emit NewDelay with old and new delay\n     */\n    function setDelay(uint256 delay_) public {\n        require(msg.sender == address(this), \"Timelock::setDelay: Call must come from Timelock.\");\n        require(delay_ >= MINIMUM_DELAY(), \"Timelock::setDelay: Delay must exceed minimum delay.\");\n        require(delay_ <= MAXIMUM_DELAY(), \"Timelock::setDelay: Delay must not exceed maximum delay.\");\n        emit NewDelay(delay, delay_);\n        delay = delay_;\n    }\n\n    /**\n     * @notice Return grace period\n     * @return The duration of the grace period, specified as a uint256 value.\n     */\n    function GRACE_PERIOD() public view virtual returns (uint256) {\n        return DEFAULT_GRACE_PERIOD;\n    }\n\n    /**\n     * @notice Return required minimum delay\n     * @return Minimum delay\n     */\n    function MINIMUM_DELAY() public view virtual returns (uint256) {\n        return DEFAULT_MINIMUM_DELAY;\n    }\n\n    /**\n     * @notice Return required maximum delay\n     * @return Maximum delay\n     */\n    function MAXIMUM_DELAY() public view virtual returns (uint256) {\n        return DEFAULT_MAXIMUM_DELAY;\n    }\n\n    /**\n     * @notice Method for accepting a proposed admin\n     * @custom:access Sender must be pending admin\n     * @custom:event Emit NewAdmin with old and new admin\n     */\n    function acceptAdmin() public {\n        require(msg.sender == pendingAdmin, \"Timelock::acceptAdmin: Call must come from pendingAdmin.\");\n        emit NewAdmin(admin, msg.sender);\n        admin = msg.sender;\n        pendingAdmin = address(0);\n    }\n\n    /**\n     * @notice Method to propose a new admin authorized to call timelock functions. This should be the Governor Contract\n     * @param pendingAdmin_ Address of the proposed admin\n     * @custom:access Sender must be Timelock contract itself or admin\n     * @custom:event Emit NewPendingAdmin with new pending admin\n     */\n    function setPendingAdmin(address pendingAdmin_) public {\n        require(\n            msg.sender == address(this) || msg.sender == admin,\n            \"Timelock::setPendingAdmin: Call must come from Timelock.\"\n        );\n        ensureNonzeroAddress(pendingAdmin_);\n        pendingAdmin = pendingAdmin_;\n\n        emit NewPendingAdmin(pendingAdmin);\n    }\n\n    /**\n     * @notice Called for each action when queuing a proposal\n     * @param target Address of the contract with the method to be called\n     * @param value Native token amount sent with the transaction\n     * @param signature Signature of the function to be called\n     * @param data Arguments to be passed to the function when called\n     * @param eta Timestamp after which the transaction can be executed\n     * @return Hash of the queued transaction\n     * @custom:access Sender must be admin\n     * @custom:event Emit QueueTransaction\n     */\n    function queueTransaction(\n        address target,\n        uint256 value,\n        string calldata signature,\n        bytes calldata data,\n        uint256 eta\n    ) public returns (bytes32) {\n        require(msg.sender == admin, \"Timelock::queueTransaction: Call must come from admin.\");\n        require(\n            eta >= getBlockTimestamp() + delay,\n            \"Timelock::queueTransaction: Estimated execution block must satisfy delay.\"\n        );\n\n        bytes32 txHash = keccak256(abi.encode(target, value, signature, data, eta));\n        require(!queuedTransactions[txHash], \"Timelock::queueTransaction: transaction already queued.\");\n        queuedTransactions[txHash] = true;\n\n        emit QueueTransaction(txHash, target, value, signature, data, eta);\n        return txHash;\n    }\n\n    /**\n     * @notice Called to cancel a queued transaction\n     * @param target Address of the contract with the method to be called\n     * @param value Native token amount sent with the transaction\n     * @param signature Signature of the function to be called\n     * @param data Arguments to be passed to the function when called\n     * @param eta Timestamp after which the transaction can be executed\n     * @custom:access Sender must be admin\n     * @custom:event Emit CancelTransaction\n     */\n    function cancelTransaction(\n        address target,\n        uint256 value,\n        string calldata signature,\n        bytes calldata data,\n        uint256 eta\n    ) public {\n        require(msg.sender == admin, \"Timelock::cancelTransaction: Call must come from admin.\");\n\n        bytes32 txHash = keccak256(abi.encode(target, value, signature, data, eta));\n        require(queuedTransactions[txHash], \"Timelock::cancelTransaction: transaction is not queued yet.\");\n        delete (queuedTransactions[txHash]);\n\n        emit CancelTransaction(txHash, target, value, signature, data, eta);\n    }\n\n    /**\n     * @notice Called to execute a queued transaction\n     * @param target Address of the contract with the method to be called\n     * @param value Native token amount sent with the transaction\n     * @param signature Signature of the function to be called\n     * @param data Arguments to be passed to the function when called\n     * @param eta Timestamp after which the transaction can be executed\n     * @return Result of function call\n     * @custom:access Sender must be admin\n     * @custom:event Emit ExecuteTransaction\n     */\n    function executeTransaction(\n        address target,\n        uint256 value,\n        string calldata signature,\n        bytes calldata data,\n        uint256 eta\n    ) public returns (bytes memory) {\n        require(msg.sender == admin, \"Timelock::executeTransaction: Call must come from admin.\");\n\n        bytes32 txHash = keccak256(abi.encode(target, value, signature, data, eta));\n        require(queuedTransactions[txHash], \"Timelock::executeTransaction: Transaction hasn't been queued.\");\n        require(getBlockTimestamp() >= eta, \"Timelock::executeTransaction: Transaction hasn't surpassed time lock.\");\n        require(getBlockTimestamp() <= eta + GRACE_PERIOD(), \"Timelock::executeTransaction: Transaction is stale.\");\n\n        delete (queuedTransactions[txHash]);\n\n        bytes memory callData;\n\n        if (bytes(signature).length == 0) {\n            callData = data;\n        } else {\n            callData = abi.encodePacked(bytes4(keccak256(bytes(signature))), data);\n        }\n\n        // solium-disable-next-line security/no-call-value\n        (bool success, bytes memory returnData) = target.call{ value: value }(callData);\n        require(success, \"Timelock::executeTransaction: Transaction execution reverted.\");\n\n        emit ExecuteTransaction(txHash, target, value, signature, data, eta);\n\n        return returnData;\n    }\n\n    /**\n     * @notice Returns the current block timestamp\n     * @return The current block timestamp\n     */\n    function getBlockTimestamp() internal view returns (uint256) {\n        // solium-disable-next-line security/no-block-members\n        return block.timestamp;\n    }\n}\n"},"contracts/hardhat-dependency-compiler/hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol":{"content":"// SPDX-License-Identifier: UNLICENSED\npragma solidity >0.0.0;\nimport 'hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol';\n"},"contracts/hardhat-dependency-compiler/hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol":{"content":"// SPDX-License-Identifier: UNLICENSED\npragma solidity >0.0.0;\nimport 'hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol';\n"},"contracts/interfaces/ICorePoolComptroller.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\ninterface ICorePoolComptroller {\n    function borrowCaps(address) external view returns (uint256);\n\n    function supplyCaps(address) external view returns (uint256);\n\n    function _setMarketSupplyCaps(address[] calldata, uint256[] calldata) external;\n\n    function _setMarketBorrowCaps(address[] calldata, uint256[] calldata) external;\n\n    function setMarketSupplyCaps(address[] calldata, uint256[] calldata) external;\n\n    function setMarketBorrowCaps(address[] calldata, uint256[] calldata) external;\n\n    function getAllMarkets() external view returns (address[] memory);\n\n    function setCollateralFactor(\n        uint96 poolId,\n        address vToken,\n        uint256 newCollateralFactorMantissa,\n        uint256 newLiquidizationThresholdMantissa\n    ) external returns (uint256);\n\n    function setCollateralFactor(\n        address vToken,\n        uint256 newCollateralFactorMantissa,\n        uint256 newLiquidationThresholdMantissa\n    ) external returns (uint256);\n\n    function markets(\n        address\n    )\n        external\n        view\n        returns (\n            bool isListed,\n            uint256 collateralFactorMantissa,\n            bool isVenus,\n            uint256 liquidationThresholdMantissa,\n            uint256 liquidationIncentiveMantissa,\n            uint96 marketPoolId,\n            bool isBorrowAllowed\n        );\n\n    function poolMarkets(\n        uint96 poolId,\n        address vToken\n    )\n        external\n        view\n        returns (\n            bool isListed,\n            uint256 collateralFactorMantissa,\n            bool isVenus,\n            uint256 liquidationThresholdMantissa,\n            uint256 liquidationIncentiveMantissa,\n            uint96 marketPoolId,\n            bool isBorrowAllowed\n        );\n}\n"},"contracts/interfaces/ICorePoolVToken.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport { InterestRateModelV8 } from \"@venusprotocol/venus-protocol/contracts/InterestRateModels/InterestRateModelV8.sol\";\n\ninterface ICorePoolVToken {\n    function comptroller() external view returns (address);\n\n    function interestRateModel() external view returns (address);\n\n    function _setInterestRateModel(InterestRateModelV8 newInterestRateModel) external returns (uint256);\n}\n"},"contracts/interfaces/IIsolatedPoolsComptroller.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\ninterface IIsolatedPoolsComptroller {\n    function borrowCaps(address) external view returns (uint256);\n\n    function supplyCaps(address) external view returns (uint256);\n\n    function setMarketSupplyCaps(address[] calldata, uint256[] calldata) external;\n\n    function setMarketBorrowCaps(address[] calldata, uint256[] calldata) external;\n\n    function getAllMarkets() external view returns (address[] memory);\n\n    function setCollateralFactor(\n        address vToken,\n        uint256 newCollateralFactorMantissa,\n        uint256 newLiquidationThresholdMantissa\n    ) external;\n\n    function markets(\n        address vToken\n    ) external view returns (bool isListed, uint256 collateralFactorMantissa, uint256 liquidationThresholdMantissa);\n}\n"},"contracts/interfaces/IIsolatedPoolVToken.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport { InterestRateModel } from \"@venusprotocol/isolated-pools/contracts/InterestRateModel.sol\";\n\ninterface IIsolatedPoolVToken {\n    function comptroller() external view returns (address);\n\n    function interestRateModel() external view returns (address);\n\n    function setInterestRateModel(InterestRateModel newInterestRateModel) external;\n}\n"},"contracts/RiskSteward/BaseRiskSteward.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport { AccessControlledV8 } from \"../Governance/AccessControlledV8.sol\";\nimport { IRiskSteward } from \"./Interfaces/IRiskSteward.sol\";\n\n/**\n * @title BaseRiskSteward\n * @author Venus\n * @notice Abstract base contract for Risk Steward contracts providing common functionality\n * @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion\n */\nabstract contract BaseRiskSteward is IRiskSteward, AccessControlledV8 {\n    /// @dev Max basis points i.e., 100%\n    uint256 internal constant MAX_BPS = 10000;\n\n    /**\n     * @notice The safe delta threshold in basis points.\n     * @notice Updates within this delta are considered safe and require no timelock. Updates exceeding this delta require timelock.\n     * @dev This is only used by contracts that implement safe delta checks (e.g., MarketCapsRiskSteward, CollateralFactorsRiskSteward)\n     */\n    uint256 public safeDeltaBps;\n\n    /**\n     * @notice Thrown when trying to renounce ownership\n     */\n    error RenounceOwnershipNotAllowed();\n\n    /**\n     * @notice Disables renounceOwnership function\n     * @custom:error Throws RenounceOwnershipNotAllowed\n     */\n    function renounceOwnership() public pure override {\n        revert RenounceOwnershipNotAllowed();\n    }\n\n    /**\n     * @notice Checks if the difference between new and current values is within the safe delta threshold.\n     * @param newValue The new value to check\n     * @param currentValue The current value to compare against\n     * @return True if the difference is within the safe delta, false otherwise\n     */\n    function _isWithinSafeDelta(uint256 newValue, uint256 currentValue) internal view returns (bool) {\n        uint256 diff = newValue > currentValue ? newValue - currentValue : currentValue - newValue;\n        uint256 maxDiff = (safeDeltaBps * currentValue) / MAX_BPS;\n        return diff <= maxDiff;\n    }\n}\n"},"contracts/RiskSteward/CollateralFactorsRiskSteward.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport { RiskParameterUpdate } from \"./Interfaces/IRiskOracle.sol\";\nimport { ICorePoolVToken } from \"../interfaces/ICorePoolVToken.sol\";\nimport { ICorePoolComptroller } from \"../interfaces/ICorePoolComptroller.sol\";\nimport { IIsolatedPoolsComptroller } from \"../interfaces/IIsolatedPoolsComptroller.sol\";\nimport { IRiskStewardReceiver } from \"./Interfaces/IRiskStewardReceiver.sol\";\nimport { BaseRiskSteward } from \"./BaseRiskSteward.sol\";\nimport { ensureNonzeroAddress } from \"@venusprotocol/solidity-utilities/contracts/validators.sol\";\n\n/**\n * @title CollateralFactorsRiskSteward\n * @author Venus\n * @notice Contract that can update collateral factors and liquidation thresholds received from `RiskStewardReceiver`.\n * @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion\n */\ncontract CollateralFactorsRiskSteward is BaseRiskSteward {\n    /**\n     * @notice The update type for collateral factor and liquidation threshold.\n     */\n    string public constant COLLATERAL_FACTORS = \"collateralFactors\";\n\n    /**\n     * @notice The update type key for collateral factors (keccak256 hash of COLLATERAL_FACTORS)\n     */\n    bytes32 public constant COLLATERAL_FACTORS_KEY = keccak256(bytes(COLLATERAL_FACTORS));\n\n    /**\n     * @notice Address of the BNB Core Pool Comptroller.\n     * @dev This comptroller is specific to the BNB Core Pool, which uses a different ABI\n     *      than isolated pools. It is used solely to detect and handle BNB Core Pool\n     *      markets, and would not be used for remote-chain (isolated pool) deployments.\n     */\n    ICorePoolComptroller public immutable CORE_POOL_COMPTROLLER;\n\n    /**\n     * @notice Address of the `RiskStewardReceiver` used to validate and dispatch incoming updates.\n     */\n    IRiskStewardReceiver public immutable RISK_STEWARD_RECEIVER;\n\n    /**\n     * @dev Storage gap for upgradeability.\n     */\n    uint256[49] private __gap;\n\n    /**\n     * @notice Emitted when collateral factors are updated.\n     */\n    event CollateralFactorsUpdated(\n        uint256 indexed updateId,\n        address indexed market,\n        uint256 newCollateralFactor,\n        uint256 newLiquidationThreshold\n    );\n\n    /**\n     * @notice Emitted when the safe delta bps is updated.\n     */\n    event SafeDeltaBpsUpdated(uint256 oldSafeDeltaBps, uint256 newSafeDeltaBps);\n\n    /**\n     * @notice Thrown when a `safeDeltaBps` value is greater than `MAX_BPS`.\n     */\n    error InvalidSafeDeltaBps();\n\n    /**\n     * @notice Thrown when Core Pool Comptroller.setCollateralFactor fails.\n     */\n    error SetCollateralFactorFailed(uint256 errorCode);\n\n    /**\n     * @notice Thrown when an invalid pool configuration is used (non-core comptroller with non-zero poolId).\n     */\n    error InvalidPool();\n\n    /**\n     * @notice Thrown when an update type that is not supported is operated on.\n     */\n    error UnsupportedUpdateType();\n\n    /**\n     * @notice Thrown when the update is not coming from the `RiskStewardReceiver`.\n     */\n    error OnlyRiskStewardReceiver();\n\n    /**\n     * @notice Thrown when the two uint256 data length is invalid\n     */\n    error InvalidTwoUintLength();\n\n    /**\n     * @notice Thrown when attempting to apply a redundant value (no-op change).\n     */\n    error RedundantValue();\n\n    /**\n     * @notice Sets the immutable `CORE_POOL_COMPTROLLER` and `RISK_STEWARD_RECEIVER` addresses and disables initializers.\n     * @param corePoolComptroller_ The address of the Core Pool Comptroller\n     * @param riskStewardReceiver_ The address of the `RiskStewardReceiver`\n     * @custom:error Throws ZeroAddressNotAllowed if any of the addresses are zero\n     * @custom:oz-upgrades-unsafe-allow constructor\n     */\n    constructor(address corePoolComptroller_, address riskStewardReceiver_) {\n        ensureNonzeroAddress(riskStewardReceiver_);\n        CORE_POOL_COMPTROLLER = ICorePoolComptroller(corePoolComptroller_);\n        RISK_STEWARD_RECEIVER = IRiskStewardReceiver(riskStewardReceiver_);\n        _disableInitializers();\n    }\n\n    /**\n     * @notice Initializes the contract as ownable and access controlled.\n     * @param accessControlManager_ The address of the access control manager\n     */\n    function initialize(address accessControlManager_) external initializer {\n        __AccessControlled_init(accessControlManager_);\n    }\n\n    /**\n     * @notice Sets the safe delta bps.\n     * @param safeDeltaBps_ The new safe delta bps\n     * @custom:access Controlled by AccessControlManager\n     * @custom:event Emits SafeDeltaBpsUpdated with the old and new safe delta bps\n     * @custom:error Throws InvalidSafeDeltaBps if the safe delta bps is greater than MAX_BPS\n     * @custom:error Throws RedundantValue if the new safe delta bps is equal to the current value\n     */\n    function setSafeDeltaBps(uint256 safeDeltaBps_) external {\n        _checkAccessAllowed(\"setSafeDeltaBps(uint256)\");\n        if (safeDeltaBps_ > MAX_BPS) {\n            revert InvalidSafeDeltaBps();\n        }\n        uint256 oldSafeDeltaBps = safeDeltaBps;\n\n        if (safeDeltaBps_ == oldSafeDeltaBps) {\n            revert RedundantValue();\n        }\n        safeDeltaBps = safeDeltaBps_;\n        emit SafeDeltaBpsUpdated(oldSafeDeltaBps, safeDeltaBps_);\n    }\n\n    /**\n     * @notice Checks if an update is safe for direct execution (no timelock required).\n     * @param update The update to check.\n     * @return True if update is safe for direct execution, false if timelock is required\n     * @custom:error Throws UnsupportedUpdateType if the update type is not supported\n     * @custom:error Throws RedundantValue if the new collateral factor and liquidation threshold are unchanged\n     */\n    function isSafeForDirectExecution(RiskParameterUpdate calldata update) external view returns (bool) {\n        if (update.updateTypeKey == COLLATERAL_FACTORS_KEY) {\n            // eMode-style updates always require timelock (not safe for direct execution)\n            if (update.poolId != 0) return false;\n\n            address comptroller = ICorePoolVToken(update.market).comptroller();\n\n            (uint256 newCF, uint256 newLT) = _decodeAbiEncodedTwoUint256(update.newValue);\n            (uint256 currCF, uint256 currLT) = _getCurrentCollateralFactors(comptroller, update.market);\n\n            // Revert on redundant updates only when both CF and LT are unchanged.\n            if (newCF == currCF && newLT == currLT) {\n                revert RedundantValue();\n            }\n\n            // If current values are zero, update always requires timelock\n            if (currCF == 0 || currLT == 0) return false;\n\n            return _isWithinSafeDelta(newCF, currCF) && _isWithinSafeDelta(newLT, currLT);\n        }\n\n        revert UnsupportedUpdateType();\n    }\n\n    /**\n     * @notice Applies a collateral parameter update from the `RiskStewardReceiver`.\n     *         Delta validation and timelock checks are already performed by `RiskStewardReceiver` before execution.\n     * @param update RiskParameterUpdate update to apply\n     * @custom:access Only callable by the `RiskStewardReceiver`\n     * @custom:event Emits CollateralFactorsUpdated with updateId\n     * @custom:error Throws OnlyRiskStewardReceiver if the sender is not the `RiskStewardReceiver`\n     * @custom:error Throws UnsupportedUpdateType if the update type is not supported\n     */\n    function applyUpdate(RiskParameterUpdate calldata update) external {\n        if (msg.sender != address(RISK_STEWARD_RECEIVER)) {\n            revert OnlyRiskStewardReceiver();\n        }\n\n        address comptroller = ICorePoolVToken(update.market).comptroller();\n        uint96 poolId = update.poolId;\n\n        if (update.updateTypeKey == COLLATERAL_FACTORS_KEY) {\n            _updateCollateralFactors(update.updateId, comptroller, update.market, poolId, update.newValue);\n        } else {\n            revert UnsupportedUpdateType();\n        }\n    }\n\n    /**\n     * @notice Updates the collateral factors for the given market.\n     * @dev Updates both collateral factor and liquidation threshold together (same setter).\n     * @param updateId The update ID from the Risk Oracle\n     * @param comptroller The comptroller address\n     * @param market The market to update the collateral factors for\n     * @param poolId The pool identifier for eMode updates (0 for regular market updates)\n     * @param newValue Encoded new collateral factors: `abi.encode(uint256 newCollateralFactor, uint256 newLiquidationThreshold)`\n     * @custom:error Throws SetCollateralFactorFailed if the core pool comptroller call to setCollateralFactor returns a non‑zero error code\n     * @custom:error Throws InvalidPool if a non‑core comptroller is used together with a non‑zero poolId\n     * @custom:event Emits CollateralFactorsUpdated with updateId\n     */\n    function _updateCollateralFactors(\n        uint256 updateId,\n        address comptroller,\n        address market,\n        uint96 poolId,\n        bytes memory newValue\n    ) internal {\n        (uint256 newCollateralFactor, uint256 newLiquidationThreshold) = _decodeAbiEncodedTwoUint256(newValue);\n\n        if (comptroller == address(CORE_POOL_COMPTROLLER)) {\n            uint256 errorCode = ICorePoolComptroller(comptroller).setCollateralFactor(\n                poolId,\n                market,\n                newCollateralFactor,\n                newLiquidationThreshold\n            );\n            if (errorCode != 0) revert SetCollateralFactorFailed(errorCode);\n        } else {\n            if (poolId != 0) revert InvalidPool();\n\n            IIsolatedPoolsComptroller(comptroller).setCollateralFactor(\n                market,\n                newCollateralFactor,\n                newLiquidationThreshold\n            );\n        }\n\n        emit CollateralFactorsUpdated(updateId, market, newCollateralFactor, newLiquidationThreshold);\n    }\n\n    /**\n     * @notice Returns the current collateral factors for a market on a given comptroller.\n     * @dev Returns both collateral factor and liquidation threshold (updated together via the same setter).\n     * @param comptroller The comptroller address\n     * @param market The market whose collateral factors are being queried\n     * @return currentCollateralFactor The current collateral factor\n     * @return currentLiquidationThreshold The current liquidation threshold\n     */\n    function _getCurrentCollateralFactors(\n        address comptroller,\n        address market\n    ) internal view returns (uint256 currentCollateralFactor, uint256 currentLiquidationThreshold) {\n        if (comptroller == address(CORE_POOL_COMPTROLLER)) {\n            (, currentCollateralFactor, , currentLiquidationThreshold, , , ) = ICorePoolComptroller(comptroller)\n                .markets(market);\n        } else {\n            (, currentCollateralFactor, currentLiquidationThreshold) = IIsolatedPoolsComptroller(comptroller).markets(\n                market\n            );\n        }\n    }\n\n    /**\n     * @notice Decodes ABI-encoded bytes into two uint256 values.\n     * @dev Expects exactly 64 bytes as produced by abi.encode(uint256,uint256).\n     * @param data ABI-encoded (uint256, uint256) payload\n     * @return a First uint256\n     * @return b Second uint256\n     * @custom:error Throws InvalidTwoUintLength if data length is not 64 bytes\n     */\n    function _decodeAbiEncodedTwoUint256(bytes memory data) internal pure returns (uint256 a, uint256 b) {\n        if (data.length != 64) {\n            revert InvalidTwoUintLength();\n        }\n        (a, b) = abi.decode(data, (uint256, uint256));\n    }\n}\n"},"contracts/RiskSteward/DestinationStewardReceiver.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport { OwnableUpgradeable } from \"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\";\nimport { Ownable2StepUpgradeable } from \"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\";\nimport { IDestinationStewardReceiver } from \"./Interfaces/IDestinationStewardReceiver.sol\";\nimport { RiskParameterUpdate } from \"./Interfaces/IRiskOracle.sol\";\nimport { IRiskSteward } from \"./Interfaces/IRiskSteward.sol\";\nimport { ensureNonzeroAddress } from \"@venusprotocol/solidity-utilities/contracts/validators.sol\";\nimport { AccessControlledV8 } from \"../Governance/AccessControlledV8.sol\";\nimport { IIsolatedPoolsComptroller } from \"../interfaces/IIsolatedPoolsComptroller.sol\";\nimport { OAppReceiverUpgradeable, Origin } from \"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppReceiverUpgradeable.sol\";\nimport { OAppCoreUpgradeable } from \"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppCoreUpgradeable.sol\";\n\n/**\n * @title DestinationStewardReceiver\n * @author Venus\n * @notice Destination‑chain contract that receives bridged updates from `RiskStewardReceiver` via LayerZero,\n *         enforces a fixed remote delay, and then executes the updates on the configured `IRiskSteward` contracts.\n * @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion\n */\ncontract DestinationStewardReceiver is IDestinationStewardReceiver, AccessControlledV8, OAppReceiverUpgradeable {\n    /**\n     * @notice Time before a bridged update is considered stale on the destination chain\n     */\n    uint256 public constant REMOTE_UPDATE_EXPIRATION_TIME = 2 days;\n\n    /**\n     * @notice Destination chain LayerZero endpoint ID\n     */\n    uint32 public immutable LAYER_ZERO_EID;\n\n    /**\n     * @notice Delay before a bridged update can be executed on the destination chain\n     */\n    uint256 public remoteDelay;\n\n    /**\n     * @notice Mapping of supported risk configurations per update type (hashed updateType string)\n     */\n    mapping(bytes32 => RiskParamConfig) public riskParameterConfigs;\n\n    /**\n     * @notice Master storage of all bridged updates by update ID\n     */\n    mapping(uint256 updateId => DestinationUpdate) public updates;\n\n    /**\n     * @notice Mapping from (updateType, market) to currently registered remote update ID\n     */\n    mapping(bytes32 => mapping(address market => uint256)) public lastRegisteredUpdateId;\n\n    /**\n     * @notice Track last executed update timestamp per (updateType, market)\n     */\n    mapping(bytes32 => mapping(address market => uint256)) public lastExecutedAt;\n\n    /**\n     * @notice Mapping from executor address to whitelist status\n     */\n    mapping(address => bool) public whitelistedExecutors;\n\n    /**\n     * @dev This empty reserved space is put in place to allow future versions to add new\n     * variables without shifting down storage in the inheritance chain.\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n     */\n    uint256[44] private __gap;\n\n    /**\n     * @notice Modifier that ensures only whitelisted executors can call the function\n     * @custom:error NotAnExecutor if the caller is not a whitelisted executor\n     */\n    modifier onlyWhitelistedExecutors() {\n        if (!whitelistedExecutors[msg.sender]) {\n            revert NotAnExecutor();\n        }\n        _;\n    }\n\n    /**\n     * @notice Disables initializers and sets immutable values.\n     * @param endpoint_ Local LayerZero endpoint on this chain\n     * @param layerZeroEid_ LayerZero endpoint ID for this destination chain\n     * @custom:oz-upgrades-unsafe-allow constructor\n     */\n    constructor(address endpoint_, uint32 layerZeroEid_) OAppCoreUpgradeable(endpoint_) {\n        _disableInitializers();\n        ensureNonzeroAddress(endpoint_);\n        if (layerZeroEid_ == 0) revert InvalidLayerZeroEid();\n\n        LAYER_ZERO_EID = layerZeroEid_;\n    }\n\n    /**\n     * @notice Initializes the contract with the Access Control Manager and owner.\n     * @param accessControlManager_ The address of the access control manager\n     * @param delegate_ The owner (and LayerZero delegate) of this contract\n     */\n    function initialize(address accessControlManager_, address delegate_) external initializer {\n        __AccessControlled_init(accessControlManager_);\n        __OAppReceiver_init(delegate_);\n        remoteDelay = 6 hours; // Default value\n        emit RemoteDelaySet(remoteDelay);\n    }\n\n    /**\n     * @notice Sets the risk parameter config for a given update type on the destination chain.\n     * @param updateType The type of update to configure (e.g., \"supplyCap\", \"borrowCap\")\n     * @param riskSteward The address for the risk steward contract responsible for processing the update\n     * @param debounce The debounce period for updates of this type on the destination (anti‑DoS)\n     * @custom:access Controlled by AccessControlManager\n     * @custom:event Emits RiskParameterConfigUpdated\n     * @custom:error InvalidUpdateType if the update type string is empty\n     * @custom:error InvalidDebounce if the debounce is 0\n     */\n    function setRiskParameterConfig(string calldata updateType, address riskSteward, uint256 debounce) external {\n        _checkAccessAllowed(\"setRiskParameterConfig(string,address,uint256)\");\n        ensureNonzeroAddress(riskSteward);\n\n        if (bytes(updateType).length == 0 || bytes(updateType).length > 64) {\n            revert InvalidUpdateType();\n        }\n\n        if (debounce == 0) {\n            revert InvalidDebounce();\n        }\n\n        bytes32 key = keccak256(bytes(updateType));\n        RiskParamConfig storage previousConfig = riskParameterConfigs[key];\n\n        riskParameterConfigs[key] = RiskParamConfig({ active: true, debounce: debounce, riskSteward: riskSteward });\n\n        emit RiskParameterConfigUpdated(\n            key,\n            updateType,\n            previousConfig.riskSteward,\n            riskSteward,\n            previousConfig.debounce,\n            debounce,\n            previousConfig.active,\n            true\n        );\n    }\n\n    /**\n     * @notice Sets the active status of a risk parameter config\n     * @param updateType The type of update to configure\n     * @param active The active status to set\n     * @custom:access Controlled by AccessControlManager\n     * @custom:event Emits ConfigActiveUpdated with the update type hash, update type, previous active status, and the active status\n     * @custom:error Throws UnsupportedUpdateType if the update type is not supported\n     * @custom:error Throws ConfigStatusUnchanged if the active status is already set to the desired value\n     */\n    function setConfigActive(string calldata updateType, bool active) external {\n        _checkAccessAllowed(\"setConfigActive(string,bool)\");\n        bytes32 key = keccak256(bytes(updateType));\n\n        if (riskParameterConfigs[key].riskSteward == address(0)) {\n            revert UnsupportedUpdateType();\n        }\n\n        bool previousActive = riskParameterConfigs[key].active;\n        if (previousActive == active) {\n            revert ConfigStatusUnchanged();\n        }\n\n        riskParameterConfigs[key].active = active;\n        emit ConfigActiveUpdated(key, updateType, previousActive, active);\n    }\n\n    /**\n     * @notice Sets the remote delay before bridged updates can be executed on the destination chain.\n     * @param newRemoteDelay The new remote delay in seconds\n     * @custom:access Controlled by AccessControlManager\n     * @custom:event Emits RemoteDelaySet with the new remote delay value\n     * @custom:error InvalidRemoteDelay if the delay is 0 or greater than or equal to the remote update expiration time\n     * @custom:error RemoteDelayUnchanged if the new delay is equal to the current delay\n     */\n    function setRemoteDelay(uint256 newRemoteDelay) external {\n        _checkAccessAllowed(\"setRemoteDelay(uint256)\");\n\n        if (newRemoteDelay == 0 || newRemoteDelay >= REMOTE_UPDATE_EXPIRATION_TIME) {\n            revert InvalidRemoteDelay();\n        }\n\n        uint256 previousDelay = remoteDelay;\n        if (previousDelay == newRemoteDelay) {\n            revert RemoteDelayUnchanged();\n        }\n\n        remoteDelay = newRemoteDelay;\n        emit RemoteDelaySet(newRemoteDelay);\n    }\n\n    /**\n     * @notice Sets the whitelist status of an executor on the destination chain.\n     * @param executor The address of the executor\n     * @param approved The whitelist status to set (true to whitelist, false to remove)\n     * @custom:access Controlled by AccessControlManager\n     * @custom:event Emits ExecutorStatusUpdated with the executor address, previous approval status, and new approval status\n     * @custom:error Throws ZeroAddressNotAllowed if the executor address is zero\n     * @custom:error Throws ExecutorStatusUnchanged if the executor whitelist status is already set to the desired value\n     */\n    function setWhitelistedExecutor(address executor, bool approved) external {\n        _checkAccessAllowed(\"setWhitelistedExecutor(address,bool)\");\n        ensureNonzeroAddress(executor);\n        bool previousApproved = whitelistedExecutors[executor];\n        if (previousApproved == approved) {\n            revert ExecutorStatusUnchanged();\n        }\n\n        whitelistedExecutors[executor] = approved;\n        emit ExecutorStatusUpdated(executor, previousApproved, approved);\n    }\n\n    /**\n     * @notice Executes a bridged update after its remote delay has passed.\n     * @param updateId The bridged update ID to execute\n     * @custom:access Only whitelisted executors can execute updates\n     * @custom:event Emits RemoteUpdateExecuted with the executed update ID\n     * @custom:error NotAnExecutor if the caller is not a whitelisted executor\n     * @custom:error ConfigNotActive if the configuration for the update type is not active\n     * @custom:error UpdateNotFound if the update is not pending for the given (updateType, market)\n     * @custom:error UpdateNotUnlocked if the remote delay has not elapsed\n     * @custom:error UpdateIsExpired if the bridged update has expired on the destination\n     * @custom:error UpdateTooFrequent if the debounce period has not passed since the last execution\n     */\n    function executeUpdate(uint256 updateId) external onlyWhitelistedExecutors {\n        DestinationUpdate storage destUpdate = updates[updateId];\n        RiskParameterUpdate memory update = destUpdate.update;\n        bytes32 updateTypeKey = update.updateTypeKey;\n        RiskParamConfig storage config = riskParameterConfigs[updateTypeKey];\n        uint256 currentTime = block.timestamp;\n\n        if (!config.active) {\n            revert ConfigNotActive();\n        }\n\n        if (destUpdate.status != UpdateStatus.Pending) {\n            revert UpdateNotFound();\n        }\n\n        if (currentTime < destUpdate.arrivalTime + remoteDelay) {\n            revert UpdateNotUnlocked();\n        }\n\n        if (update.timestamp + REMOTE_UPDATE_EXPIRATION_TIME < currentTime) {\n            revert UpdateIsExpired();\n        }\n\n        // Destination-side debounce based on last execution for this (updateType, market)\n        uint256 lastExecutionTime = lastExecutedAt[updateTypeKey][update.market];\n        if (lastExecutionTime != 0 && (lastExecutionTime + config.debounce > currentTime)) {\n            revert UpdateTooFrequent();\n        }\n\n        lastExecutedAt[updateTypeKey][update.market] = currentTime;\n        destUpdate.status = UpdateStatus.Executed;\n        destUpdate.executor = msg.sender;\n\n        IRiskSteward(config.riskSteward).applyUpdate(update);\n\n        emit RemoteUpdateExecuted(updateId);\n    }\n\n    /**\n     * @notice Rejects a registered remote update on the destination chain.\n     * @param updateId The oracle update ID of the update to reject\n     * @custom:access Only whitelisted executors can reject updates\n     * @custom:event Emits UpdateRejected with the rejected update ID\n     * @custom:error NotAnExecutor if the caller is not a whitelisted executor\n     * @custom:error UpdateNotFound if there is no pending update with the given ID\n     */\n    function rejectUpdate(uint256 updateId) external onlyWhitelistedExecutors {\n        DestinationUpdate storage destUpdate = updates[updateId];\n\n        if (destUpdate.status != UpdateStatus.Pending) {\n            revert UpdateNotFound();\n        }\n\n        destUpdate.status = UpdateStatus.Rejected;\n        emit UpdateRejected(updateId);\n    }\n\n    /**\n     * @notice Returns executable updates for a given update type and comptroller.\n     * @param updateType The human‑readable identifier of the update type to filter by\n     * @param comptroller The address of the Isolated Pools Comptroller that manages the markets\n     * @return executableUpdates Array of update IDs that are ready to be executed\n     */\n    function getExecutableUpdates(\n        string calldata updateType,\n        address comptroller\n    ) external view returns (uint256[] memory executableUpdates) {\n        bytes32 updateTypeKey = keccak256(bytes(updateType));\n        address[] memory markets = IIsolatedPoolsComptroller(comptroller).getAllMarkets();\n        uint256 maxUpdates = markets.length;\n        uint256[] memory tempArray = new uint256[](maxUpdates);\n        uint256 count = 0;\n        RiskParamConfig storage config = riskParameterConfigs[updateTypeKey];\n\n        if (!config.active) return new uint256[](0);\n\n        for (uint256 i = 0; i < maxUpdates; ++i) {\n            address market = markets[i];\n            uint256 registeredUpdateId = lastRegisteredUpdateId[updateTypeKey][market];\n            DestinationUpdate storage destUpdate = updates[registeredUpdateId];\n\n            if (!_checkPendingUpdate(registeredUpdateId)) continue;\n\n            // Validate Remote Delay\n            if (block.timestamp < destUpdate.arrivalTime + remoteDelay) continue;\n\n            // Debounce: skip if last execution for this (updateType, market) is too recent\n            uint256 lastExecutionTime = lastExecutedAt[updateTypeKey][market];\n            if (lastExecutionTime != 0 && (lastExecutionTime + config.debounce > block.timestamp)) continue;\n\n            tempArray[count] = registeredUpdateId;\n            count++;\n        }\n\n        executableUpdates = new uint256[](count);\n        for (uint256 i = 0; i < count; ++i) {\n            executableUpdates[i] = tempArray[i];\n        }\n    }\n\n    /**\n     * @notice Returns the risk parameter configuration for a given update type\n     * @param updateType The human-readable identifier of the update type\n     * @return The risk parameter configuration\n     */\n    function getRiskParameterConfig(string calldata updateType) external view returns (RiskParamConfig memory) {\n        bytes32 key = keccak256(bytes(updateType));\n        return riskParameterConfigs[key];\n    }\n\n    /**\n     * @notice Returns the registered update for a given update type and market\n     * @param updateType The human-readable identifier of the update type\n     * @param market The address of the market\n     * @return The registered update\n     */\n    function getRegisteredUpdate(\n        string calldata updateType,\n        address market\n    ) external view returns (DestinationUpdate memory) {\n        bytes32 key = keccak256(bytes(updateType));\n        uint256 updateId = lastRegisteredUpdateId[key][market];\n        return updates[updateId];\n    }\n\n    /**\n     * @notice Returns the last executed timestamp for a given update type and market\n     * @param updateType The human-readable identifier of the update type\n     * @param market The address of the market\n     * @return The last executed timestamp\n     */\n    function getLastExecutedAt(string calldata updateType, address market) external view returns (uint256) {\n        bytes32 key = keccak256(bytes(updateType));\n        return lastExecutedAt[key][market];\n    }\n\n    /**\n     * @dev Overrides OwnableUpgradeable and Ownable2StepUpgradeable to resolve\n     *      the multiple inheritance ownership transfer conflict.\n     */\n    function transferOwnership(\n        address newOwner\n    ) public override(OwnableUpgradeable, Ownable2StepUpgradeable) onlyOwner {\n        Ownable2StepUpgradeable.transferOwnership(newOwner);\n    }\n\n    /**\n     * @dev Internal hook to finalize ownership transfer, resolving the\n     *      OwnableUpgradeable and Ownable2StepUpgradeable inheritance conflict.\n     */\n    function _transferOwnership(address newOwner) internal override(OwnableUpgradeable, Ownable2StepUpgradeable) {\n        Ownable2StepUpgradeable._transferOwnership(newOwner);\n    }\n\n    /**\n     * @notice Internal LayerZero receive hook that handles bridged updates from the source-chain `RiskStewardReceiver`.\n     * @dev Emits `DuplicateUpdateReceived`, `RegisteredPendingUpdateExist`, or `RemoteUpdateRegistered`\n     *      depending on whether the update ID was already seen or a non‑expired pending update exists.\n     * @param payload Encoded `RiskParameterUpdate` sent from the source chain\n     */\n    function _lzReceive(Origin calldata, bytes32, bytes calldata payload, address, bytes calldata) internal override {\n        RiskParameterUpdate memory update = abi.decode(payload, (RiskParameterUpdate));\n        uint256 newId = update.updateId;\n        uint256 arrivalTime = block.timestamp;\n\n        // If this update ID was already stored, treat as a duplicate and do not overwrite\n        if (updates[newId].status != UpdateStatus.None) {\n            emit DuplicateUpdateReceived(newId, arrivalTime, update.updateType, update.market);\n            return;\n        }\n\n        // If already an update in Process do not override the registered update\n        uint256 currentRegisteredId = lastRegisteredUpdateId[update.updateTypeKey][update.market];\n        if (_checkPendingUpdate(currentRegisteredId)) {\n            emit RegisteredPendingUpdateExist(currentRegisteredId, arrivalTime, update.updateType, update.market);\n            return;\n        }\n\n        DestinationUpdate storage destUpdate = updates[newId];\n        destUpdate.update = update;\n        destUpdate.status = UpdateStatus.Pending;\n        destUpdate.arrivalTime = arrivalTime;\n        lastRegisteredUpdateId[update.updateTypeKey][update.market] = newId;\n        emit RemoteUpdateRegistered(newId, arrivalTime, update.updateType, update.market);\n    }\n\n    /**\n     * @notice Checks whether a given registered update ID corresponds to a pending, non‑expired update.\n     * @param currentRegisteredId The currently registered update ID for a specific (updateType, market) pair\n     * @return True if currentRegisteredId is non‑zero, the update status is Pending, and it has not expired; otherwise false\n     */\n    function _checkPendingUpdate(uint256 currentRegisteredId) internal view returns (bool) {\n        if (currentRegisteredId == 0) return false; // no registered update\n\n        DestinationUpdate storage current = updates[currentRegisteredId];\n\n        if (current.status != UpdateStatus.Pending) return false;\n\n        // Check expiration\n        return current.update.timestamp + REMOTE_UPDATE_EXPIRATION_TIME >= block.timestamp;\n    }\n\n    /**\n     * @notice Disables renounceOwnership function\n     * @custom:error Throws RenounceOwnershipNotAllowed\n     */\n    function renounceOwnership() public pure override {\n        revert RenounceOwnershipNotAllowed();\n    }\n}\n"},"contracts/RiskSteward/Interfaces/IDestinationStewardReceiver.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport { RiskParameterUpdate } from \"./IRiskOracle.sol\";\n\ninterface IDestinationStewardReceiver {\n    /**\n     * @notice Local status of an update on the destination chain\n     */\n    enum UpdateStatus {\n        None,\n        Pending,\n        Executed,\n        Rejected\n    }\n\n    /**\n     * @notice Configuration for a risk parameter update type on the destination chain.\n     * @param active Whether this update type configuration is currently active\n     * @param debounce Minimum delay between consecutive executions for the same (updateType, market) pair\n     * @param riskSteward Address of the risk steward contract responsible for processing this update type\n     */\n    struct RiskParamConfig {\n        bool active;\n        uint256 debounce;\n        address riskSteward;\n    }\n\n    /**\n     * @notice Destination-side storage for a bridged risk parameter update.\n     * @param update The full risk parameter update payload received from the source chain\n     * @param status Current local status of the bridged update (Pending, Executed, Rejected)\n     * @param arrivalTime Timestamp when the update was received on this chain\n     * @param executor Address of the executor who executed this update on the destination (address(0) not executed yet)\n     * @dev Unlock time is derived as `arrivalTime + remoteDelay` instead of being stored separately.\n     */\n    struct DestinationUpdate {\n        RiskParameterUpdate update;\n        UpdateStatus status;\n        uint256 arrivalTime;\n        address executor;\n    }\n\n    /**\n     * @notice Emitted when a risk parameter config is updated for an update type\n     */\n    event RiskParameterConfigUpdated(\n        bytes32 indexed updateTypeHash,\n        string updateType,\n        address indexed previousRiskSteward,\n        address indexed riskSteward,\n        uint256 previousDebounce,\n        uint256 debounce,\n        bool previousActive,\n        bool active\n    );\n\n    /**\n     * @notice Emitted when a bridged update is registered on the destination\n     */\n    event RemoteUpdateRegistered(\n        uint256 indexed updateId,\n        uint256 arrivalTime,\n        string indexed updateType,\n        address indexed market\n    );\n\n    /**\n     * @notice Emitted when a new bridged update arrives but a pending update is already registered for the same (updateType, market).\n     */\n    event RegisteredPendingUpdateExist(\n        uint256 indexed updateId,\n        uint256 arrivalTime,\n        string indexed updateType,\n        address indexed market\n    );\n\n    /**\n     * @notice Emitted when a duplicate bridged update (same updateId) is received.\n     */\n    event DuplicateUpdateReceived(\n        uint256 indexed updateId,\n        uint256 arrivalTime,\n        string indexed updateType,\n        address indexed market\n    );\n\n    /**\n     * @notice Emitted when a bridged update is executed on the destination\n     */\n    event RemoteUpdateExecuted(uint256 indexed updateId);\n\n    /**\n     * @notice Emitted when an executor status is set on the destination\n     */\n    event ExecutorStatusUpdated(address indexed executor, bool previousApproved, bool approved);\n\n    /**\n     * @notice Emitted when a risk parameter config active status is updated\n     */\n    event ConfigActiveUpdated(\n        bytes32 indexed updateTypeHash,\n        string updateType,\n        bool previousActive,\n        bool indexed active\n    );\n\n    /**\n     * @notice Emitted when an update is rejected on the destination\n     */\n    event UpdateRejected(uint256 indexed updateId);\n\n    /**\n     * @notice Emitted when the remote delay is set in the constructor\n     */\n    event RemoteDelaySet(uint256 remoteDelay);\n\n    /**\n     * @notice Thrown when trying to operate on an update that was never registered\n     */\n    error UpdateNotFound();\n\n    /**\n     * @notice Thrown when trying to execute an update before its unlock time\n     */\n    error UpdateNotUnlocked();\n\n    /**\n     * @notice Thrown when config for an update type is not active or not configured\n     */\n    error ConfigNotActive();\n\n    /**\n     * @notice Thrown when a bridged update has expired on the destination\n     */\n    error UpdateIsExpired();\n\n    /**\n     * @notice Thrown when the debounce period hasn't passed for applying an update to a specific market / update type\n     */\n    error UpdateTooFrequent();\n\n    /**\n     * @notice Thrown when an empty update type string is provided\n     */\n    error InvalidUpdateType();\n\n    /**\n     * @notice Thrown when an update type is not supported\n     */\n    error UnsupportedUpdateType();\n\n    /**\n     * @notice Thrown when a debounce value of 0 is set\n     */\n    error InvalidDebounce();\n\n    /**\n     * @notice Thrown when an address is not a whitelisted executor\n     */\n    error NotAnExecutor();\n\n    /**\n     * @notice Thrown when an invalid LayerZero endpoint ID is provided\n     */\n    error InvalidLayerZeroEid();\n\n    /**\n     * @notice Thrown when an invalid remote delay is provided\n     */\n    error InvalidRemoteDelay();\n\n    /**\n     * @notice Thrown when trying to set the same remote delay value\n     */\n    error RemoteDelayUnchanged();\n\n    /**\n     * @notice Thrown when trying to renounce ownership\n     */\n    error RenounceOwnershipNotAllowed();\n\n    /**\n     * @notice Thrown when trying to set the same config active status\n     */\n    error ConfigStatusUnchanged();\n\n    /**\n     * @notice Thrown when trying to set the same executor whitelist status\n     */\n    error ExecutorStatusUnchanged();\n\n    function setRiskParameterConfig(string calldata updateType, address riskSteward, uint256 debounce) external;\n\n    function setConfigActive(string calldata updateType, bool active) external;\n\n    function setWhitelistedExecutor(address executor, bool approved) external;\n\n    function setRemoteDelay(uint256 newRemoteDelay) external;\n\n    function executeUpdate(uint256 updateId) external;\n\n    function rejectUpdate(uint256 updateId) external;\n\n    function getExecutableUpdates(\n        string calldata updateType,\n        address comptroller\n    ) external view returns (uint256[] memory executableUpdates);\n\n    function getRiskParameterConfig(string calldata updateType) external view returns (RiskParamConfig memory);\n\n    function getRegisteredUpdate(\n        string calldata updateType,\n        address market\n    ) external view returns (DestinationUpdate memory);\n\n    function getLastExecutedAt(string calldata updateType, address market) external view returns (uint256);\n}\n"},"contracts/RiskSteward/Interfaces/IRiskOracle.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity 0.8.25;\n\n/**\n * @notice Struct representing a risk parameter update published by the Risk Oracle\n * @param referenceId External reference ID, potentially linking to a document or off-chain data\n * @param updateId Unique identifier for this specific update\n * @param market Address of the market for which the parameter update applies\n * @param updateType Classification of the update type for validation purposes (human-readable)\n * @param updateTypeKey Keccak256 hash of updateType for efficient comparisons\n * @param newValue Encoded new value of the risk parameter, flexible for various data types\n * @param previousValue Previous value of the parameter for historical comparison\n * @param timestamp Block timestamp when the update was published\n * @param publisher Address of the account that published this update\n * @param poolId Pool identifier for eMode-style collateral configuration (0 for regular markets)\n * @param destLzEid LayerZero endpoint ID of the destination chain (0 for local execution)\n * @param additionalData Additional metadata or data associated with the update\n */\nstruct RiskParameterUpdate {\n    string referenceId;\n    uint256 updateId;\n    address market;\n    string updateType;\n    bytes32 updateTypeKey;\n    bytes newValue;\n    bytes previousValue;\n    uint256 timestamp;\n    address publisher;\n    uint96 poolId;\n    uint32 destLzEid;\n    bytes additionalData;\n}\n\n/**\n * @title IRiskOracle\n * @author Venus\n * @notice Interface for Risk Oracle contract that manages and publishes risk parameter updates\n */\ninterface IRiskOracle {\n    /// @notice Event emitted when a risk parameter update is published\n    event UpdatePublished(\n        string referenceId,\n        uint256 indexed updateId,\n        address indexed market,\n        string indexed updateType,\n        bytes newValue,\n        bytes previousValue,\n        uint256 timestamp,\n        address publisher,\n        bytes additionalData\n    );\n\n    /// @notice Event emitted when a new authorized sender is added\n    event AuthorizedSenderAdded(address indexed sender);\n\n    /// @notice Event emitted when an authorized sender is removed\n    event AuthorizedSenderRemoved(address indexed sender);\n\n    /// @notice Event emitted when a new update type is added\n    event UpdateTypeAdded(string indexed updateType);\n\n    /// @notice Event emitted when an update type's active status is changed\n    event UpdateTypeActiveStatusChanged(string indexed updateType, bool previousActive, bool active);\n\n    /// @notice Thrown when sender is not authorized\n    error SenderNotAuthorized();\n\n    /// @notice Thrown when sender is already authorized\n    error SenderAlreadyAuthorized();\n\n    /// @notice Thrown when update type string is invalid\n    error InvalidUpdateTypeString();\n\n    /// @notice Thrown when update type already exists\n    error UpdateTypeAlreadyExists();\n\n    /// @notice Thrown when update type doesn't exist\n    error UpdateTypeNotFound();\n\n    /// @notice Thrown when update type active status is already set to the desired value\n    error UpdateTypeStatusUnchanged();\n\n    /// @notice Thrown when update type is not active\n    error UpdateTypeNotActive();\n\n    /// @notice Thrown when no update is found\n    error NoUpdateFound();\n\n    /// @notice Thrown when update ID is invalid\n    error InvalidUpdateId();\n\n    /// @notice Thrown when array lengths don't match in bulk operations\n    error ArrayLengthMismatch();\n\n    /// @notice Thrown when trying to renounce ownership\n    error RenounceOwnershipNotAllowed();\n\n    /**\n     * @notice Returns the update type string at the given index in the allUpdateTypes array\n     * @param index The index in the allUpdateTypes array\n     * @return The update type string at the specified index\n     */\n    function allUpdateTypes(uint256 index) external view returns (string memory);\n\n    /**\n     * @notice Returns the total number of update types in the allUpdateTypes array\n     * @return The length of the allUpdateTypes array\n     */\n    function allUpdateTypesLength() external view returns (uint256);\n\n    /**\n     * @notice Returns all update types in the allUpdateTypes array\n     * @return An array of all update type strings\n     */\n    function getAllUpdateTypes() external view returns (string[] memory);\n\n    /**\n     * @notice Checks if a given update type is currently active\n     * @param updateType The update type string to check\n     * @return True if the update type is active, false otherwise\n     */\n    function getActiveUpdateTypes(string memory updateType) external view returns (bool);\n\n    /**\n     * @notice Checks if a given update type is currently active\n     * @param updateTypeKey The keccak256 hash of the update type string\n     * @return True if the update type key is active, false otherwise\n     */\n    function activeUpdateTypes(bytes32 updateTypeKey) external view returns (bool);\n\n    /**\n     * @notice Checks if an address is authorized to publish updates\n     * @param sender The address to check for authorization\n     * @return True if the address is authorized, false otherwise\n     */\n    function authorizedSenders(address sender) external view returns (bool);\n\n    /**\n     * @notice Gets the latest update ID for a specific market and update type combination\n     * @param updateTypeKey The keccak256 hash of the update type string\n     * @param market The market address\n     * @return The latest update ID for the given market and update type key, or 0 if none exists\n     */\n    function latestUpdateIdByMarketAndType(bytes32 updateTypeKey, address market) external view returns (uint256);\n\n    /**\n     * @notice Returns the total number of updates that have been published\n     * @return The current update counter value\n     */\n    function updateCounter() external view returns (uint256);\n\n    /**\n     * @notice Fetches the most recent update for a specific parameter type in a specific market\n     * @param updateType The update type identifier\n     * @param market The market address\n     * @return The most recent RiskParameterUpdate for the specified parameter and market\n     * @custom:error NoUpdateFound Thrown if no update exists for the specified parameter and market\n     */\n    function getLatestUpdateByTypeAndMarket(\n        string memory updateType,\n        address market\n    ) external view returns (RiskParameterUpdate memory);\n\n    /**\n     * @notice Gets the latest update ID for a specific market and update type (string) combination\n     * @param updateType The update type identifier\n     * @param market The market address\n     * @return The latest update ID for the given market and update type, or 0 if none exists\n     */\n    function getLatestUpdateIdByTypeAndMarket(string memory updateType, address market) external view returns (uint256);\n\n    /**\n     * @notice Fetches the update for a provided update ID\n     * @param updateId The unique update ID\n     * @return The RiskParameterUpdate struct for the specified update ID\n     * @custom:error InvalidUpdateId Thrown if updateId is 0 or greater than updateCounter\n     */\n    function getUpdateById(uint256 updateId) external view returns (RiskParameterUpdate memory);\n\n    /**\n     * @notice Adds a new address to the list of authorized senders who can publish updates\n     * @param sender Address to be authorized\n     * @custom:error ZeroAddressNotAllowed Thrown if sender is the zero address\n     * @custom:error SenderAlreadyAuthorized Thrown if sender is already authorized\n     * @custom:error Unauthorized Thrown if caller is not allowed by AccessControlManager\n     * @custom:event AuthorizedSenderAdded Emitted when sender is successfully added\n     */\n    function addAuthorizedSender(address sender) external;\n\n    /**\n     * @notice Removes an address from the list of authorized senders\n     * @param sender Address to be removed from authorization\n     * @custom:error SenderNotAuthorized Thrown if sender is not currently authorized\n     * @custom:error Unauthorized Thrown if caller is not allowed by AccessControlManager\n     * @custom:event AuthorizedSenderRemoved Emitted when sender is successfully removed\n     */\n    function removeAuthorizedSender(address sender) external;\n\n    /**\n     * @notice Adds a new update type to the list of authorized update types\n     * @param newUpdateType New update type string to allow (must be non-empty and <= 64 characters)\n     * @custom:error InvalidUpdateTypeString Thrown if update type string is empty or exceeds 64 characters\n     * @custom:error UpdateTypeAlreadyExists Thrown if update type already exists\n     * @custom:error Unauthorized Thrown if caller is not allowed by AccessControlManager\n     * @custom:event UpdateTypeAdded Emitted when update type is successfully added\n     */\n    function addUpdateType(string memory newUpdateType) external;\n\n    /**\n     * @notice Sets the active status of an existing update type\n     * @param updateType The update type to set active status for\n     * @param active True to activate the update type, false to deactivate it\n     * @custom:error UpdateTypeNotFound Thrown if update type doesn't exist\n     * @custom:error UpdateTypeStatusUnchanged Thrown if status is already set to the desired value\n     * @custom:error Unauthorized Thrown if caller is not allowed by AccessControlManager\n     * @custom:event UpdateTypeActiveStatusChanged Emitted when status is successfully changed\n     */\n    function setUpdateTypeActive(string memory updateType, bool active) external;\n\n    /**\n     * @notice Publishes a new risk parameter update.\n     * @param referenceId An external reference ID associated with the update\n     * @param newValue The new value of the risk parameter being updated (encoded as bytes)\n     * @param updateType Type of update performed, must be an active update type\n     * @param market Address of the market for which the parameter update applies\n     * @param poolId Pool identifier for eMode-style collateral configuration (0 for regular markets)\n     * @param dstEid Destination endpoint ID for cross-chain routing\n     * @param additionalData Additional data or metadata for the update\n     * @custom:error SenderNotAuthorized Thrown if caller is not an authorized sender\n     * @custom:error UpdateTypeNotActive Thrown if update type is not active\n     * @custom:error ZeroAddressNotAllowed Thrown if market is the zero address\n     * @custom:event UpdatePublished Emitted when the update is successfully published\n     */\n    function publishRiskParameterUpdate(\n        string memory referenceId,\n        bytes memory newValue,\n        string memory updateType,\n        address market,\n        uint96 poolId,\n        uint32 dstEid,\n        bytes memory additionalData\n    ) external;\n\n    /**\n     * @notice Publishes multiple risk parameter updates in a single transaction.\n     * @param referenceIds Array of external reference IDs, one for each update\n     * @param newValues Array of new values for each update (encoded as bytes)\n     * @param updateTypes Array of update types, all must be active update types\n     * @param markets Array of market addresses for each update\n     * @param poolIds Array of pool identifiers for eMode-style collateral configuration (0 for regular markets)\n     * @param dstEid Array of destination endpoint IDs for cross-chain routing\n     * @param additionalData Array of additional data for each update\n     * @custom:error SenderNotAuthorized Thrown if caller is not an authorized sender\n     * @custom:error ArrayLengthMismatch Thrown if all arrays don't have the same length\n     * @custom:error UpdateTypeNotActive Thrown if any update type is not active\n     * @custom:error ZeroAddressNotAllowed Thrown if any market is the zero address\n     * @custom:event UpdatePublished Emitted for each successfully published update\n     */\n    function publishBulkRiskParameterUpdates(\n        string[] memory referenceIds,\n        bytes[] memory newValues,\n        string[] memory updateTypes,\n        address[] memory markets,\n        uint96[] memory poolIds,\n        uint32[] memory dstEid,\n        bytes[] memory additionalData\n    ) external;\n}\n"},"contracts/RiskSteward/Interfaces/IRiskSteward.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport { RiskParameterUpdate } from \"./IRiskOracle.sol\";\nimport { IRiskStewardReceiver } from \"./IRiskStewardReceiver.sol\";\n\n/**\n * @title IRiskSteward\n * @author Venus\n * @notice Interface for risk stewards that validate and apply risk parameter updates\n */\ninterface IRiskSteward {\n    /**\n     * @notice Returns the `IRiskStewardReceiver` associated with this steward.\n     * @return The risk steward receiver contract\n     */\n    function RISK_STEWARD_RECEIVER() external view returns (IRiskStewardReceiver);\n\n    /**\n     * @notice Checks whether an update is safe for direct execution (no timelock required).\n     * @param update The risk parameter update to evaluate\n     * @return True if update is safe for direct execution, false if timelock is required\n     */\n    function isSafeForDirectExecution(RiskParameterUpdate calldata update) external view returns (bool);\n\n    /**\n     * @notice Applies a validated risk parameter update.\n     * @param update The risk parameter update to apply\n     */\n    function applyUpdate(RiskParameterUpdate calldata update) external;\n}\n"},"contracts/RiskSteward/Interfaces/IRiskStewardReceiver.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\ninterface IRiskStewardReceiver {\n    /**\n     * @notice Status of an update\n     */\n    enum UpdateStatus {\n        None,\n        Pending,\n        Executed,\n        Rejected,\n        Expired,\n        SENT_TO_DESTINATION\n    }\n\n    /**\n     * @notice Configuration for a risk parameter update type\n     * @param active Whether this update type configuration is currently active\n     * @param debounce Minimum delay between consecutive update executions for the same (updateType, market) pair\n     * @param timelock Period that must pass after registration before an update can be executed\n     * @param riskSteward Address of the risk steward contract responsible for processing this update type\n     */\n    struct RiskParamConfig {\n        bool active;\n        uint256 debounce;\n        uint256 timelock;\n        address riskSteward;\n    }\n\n    /**\n     * @notice Registered update structure with timelock and execution information\n     * @param updateId Update ID from the Risk Oracle\n     * @param unlockTime Timestamp when this update can be executed (calculated as registration time + timelock)\n     * @param status Current status of the update (Pending, Executed, Rejected, Expired, etc.)\n     * @param executor Address of the executor who executed this update (address(0) if not executed yet)\n     * @param executedAt Timestamp when this update was executed (0 if not executed yet)\n     */\n    struct RegisteredUpdate {\n        uint256 updateId;\n        uint256 unlockTime;\n        UpdateStatus status;\n        address executor;\n        uint256 executedAt;\n    }\n\n    /**\n     * @notice Event emitted when a risk parameter config is set\n     */\n    event RiskParameterConfigUpdated(\n        bytes32 indexed updateTypeHash,\n        string updateType,\n        address indexed previousRiskSteward,\n        address indexed riskSteward,\n        uint256 previousDebounce,\n        uint256 debounce,\n        uint256 previousTimelock,\n        uint256 timelock,\n        bool previousActive,\n        bool active\n    );\n\n    /**\n     * @notice Event emitted when a risk parameter config active status is set\n     */\n    event ConfigActiveUpdated(bytes32 indexed updateTypeHash, string updateType, bool previousActive, bool active);\n\n    /**\n     * @notice Event emitted when an update is successfully executed\n     */\n    event UpdateExecuted(uint256 indexed updateId);\n\n    /**\n     * @notice Event emitted when an update is rejected\n     */\n    event UpdateRejected(uint256 indexed updateId);\n\n    /**\n     * @notice Event emitted when an update is marked as expired\n     */\n    event UpdateExpired(uint256 indexed updateId);\n\n    /**\n     * @notice Event emitted when an executor status is set\n     */\n    event ExecutorStatusUpdated(address indexed executor, bool previousApproved, bool approved);\n\n    /**\n     * @notice Event emitted when an update is registered\n     */\n    event UpdateRegistered(uint256 indexed updateId, uint256 unlockTime, string updateType, address indexed market);\n\n    /**\n     * @notice Event emitted when an update is sent to a destination chain\n     */\n    event UpdateSentToDestination(\n        uint256 updateId,\n        uint32 indexed destLzEid,\n        string indexed updateType,\n        address indexed market\n    );\n\n    /**\n     * @notice Event emitted when an update is resent to a destination chain\n     */\n    event UpdateResentToDestination(\n        uint256 updateId,\n        uint32 indexed destLzEid,\n        string indexed updateType,\n        address indexed market\n    );\n\n    /**\n     * @notice Emitted when leftover native tokens are swept by owner\n     */\n    event SweepNative(address indexed receiver, uint256 amount);\n\n    /**\n     * @notice Event emitted when the pause status changes\n     * @param previousPaused Previous pause state\n     * @param paused Current pause state\n     */\n    event PauseStatusUpdated(bool previousPaused, bool paused);\n\n    /**\n     * @custom:error TransferFailed\n     */\n    error TransferFailed();\n\n    /**\n     * @notice Thrown if a submitted update is not active and therefore cannot be processed\n     */\n    error ConfigNotActive();\n\n    /**\n     * @notice Thrown when an update was not applied within the required time frame\n     */\n    error UpdateIsExpired();\n\n    /**\n     * @notice Thrown when an update has already been processed\n     */\n    error UpdateAlreadyResolved();\n\n    /**\n     * @notice Thrown when the debounce period hasn't passed for applying an update to a specific market / update type\n     */\n    error UpdateTooFrequent();\n\n    /**\n     * @notice Thrown when an update type that is not supported is operated on\n     */\n    error UnsupportedUpdateType();\n\n    /**\n     * @notice Thrown when an empty update type string is provided\n     */\n    error InvalidUpdateType();\n\n    /**\n     * @notice Thrown when a debounce value of 0 is set\n     */\n    error InvalidDebounce();\n\n    /**\n     * @notice Thrown when a timelock value is greater than or equal to the expiration time\n     */\n    error InvalidTimelock();\n\n    /**\n     * @notice Thrown when update unlock time has not been reached\n     */\n    error UpdateNotUnlocked();\n\n    /**\n     * @notice Thrown when trying to resolve an update that doesn't exist\n     */\n    error UpdateNotFound();\n\n    /**\n     * @notice Thrown when an address is not an executor\n     */\n    error NotAnExecutor();\n\n    /**\n     * @notice Thrown when there is a non-expired pending update of the same type for the market\n     */\n    error RegisteredUpdateTypeExist(uint256);\n\n    /**\n     * @notice Thrown when trying to resend an update that is not in SENT_TO_DESTINATION status\n     */\n    error InvalidUpdateToResend();\n\n    /**\n     * @notice Thrown when trying to execute an update that was never registered\n     */\n    error InvalidRegisteredUpdate();\n\n    /**\n     * @notice Thrown when attempting to call lzSend from an address other than this contract\n     */\n    error InvalidLzSendCaller();\n\n    /**\n     * @notice Thrown when trying to renounce ownership\n     */\n    error RenounceOwnershipNotAllowed();\n\n    /**\n     * @notice Thrown when processUpdate is called while the contract is paused\n     */\n    error PausedError();\n\n    /**\n     * @notice Thrown when an invalid LayerZero endpoint ID is provided\n     */\n    error InvalidLayerZeroEid();\n\n    /**\n     * @notice Thrown when trying to set the same pause status\n     */\n    error PauseStatusUnchanged();\n\n    /**\n     * @notice Thrown when trying to set the same config active status\n     */\n    error ConfigStatusUnchanged();\n\n    /**\n     * @notice Thrown when trying to set the same executor whitelist status\n     */\n    error ExecutorStatusUnchanged();\n\n    /**\n     * @notice Thrown when an update will expire before its timelock unlocks\n     */\n    error UpdateWillExpireBeforeUnlock();\n\n    function getRiskParameterConfig(string calldata updateType) external view returns (RiskParamConfig memory);\n\n    function getLastProcessedUpdate(string calldata updateType, address market) external view returns (uint256);\n\n    function getLastRegisteredUpdate(string calldata updateType, address market) external view returns (uint256);\n\n    function setRiskParameterConfig(\n        string calldata updateType,\n        address riskSteward,\n        uint256 debounce,\n        uint256 timelock\n    ) external;\n\n    function setConfigActive(string calldata updateType, bool active) external;\n\n    function setWhitelistedExecutor(address executor, bool approved) external;\n\n    function processUpdate(uint256 updateId) external;\n\n    function executeRegisteredUpdate(uint256 updateId) external;\n\n    function rejectUpdate(uint256 updateId) external;\n\n    function resendRemoteUpdate(uint256 updateId, bytes calldata options) external payable;\n\n    function getExecutableUpdates(\n        string calldata updateType,\n        address comptroller\n    ) external view returns (uint256[] memory executableUpdates);\n\n    function isUpdateExecutable(uint256 updateId) external view returns (bool);\n}\n"},"contracts/RiskSteward/IRMRiskSteward.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport { RiskParameterUpdate } from \"./Interfaces/IRiskOracle.sol\";\nimport { ICorePoolVToken } from \"../interfaces/ICorePoolVToken.sol\";\nimport { IIsolatedPoolVToken } from \"../interfaces/IIsolatedPoolVToken.sol\";\nimport { InterestRateModel } from \"@venusprotocol/isolated-pools/contracts/InterestRateModel.sol\";\nimport { InterestRateModelV8 } from \"@venusprotocol/venus-protocol/contracts/InterestRateModels/InterestRateModelV8.sol\";\nimport { ICorePoolComptroller } from \"../interfaces/ICorePoolComptroller.sol\";\nimport { IRiskStewardReceiver } from \"./Interfaces/IRiskStewardReceiver.sol\";\nimport { BaseRiskSteward } from \"./BaseRiskSteward.sol\";\nimport { ensureNonzeroAddress } from \"@venusprotocol/solidity-utilities/contracts/validators.sol\";\n\n/**\n * @title IRMRiskSteward\n * @author Venus\n * @notice Contract that can update interest rate models updates received from RiskStewardReceiver.\n * @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion\n */\ncontract IRMRiskSteward is BaseRiskSteward {\n    /**\n     * @notice The update type for interest rate model\n     */\n    string public constant INTEREST_RATE_MODEL = \"interestRateModel\";\n\n    /**\n     * @notice The update type key for interest rate model (keccak256 hash of INTEREST_RATE_MODEL)\n     */\n    bytes32 public constant INTEREST_RATE_MODEL_KEY = keccak256(bytes(INTEREST_RATE_MODEL));\n\n    /**\n     * @notice Address of the BNB Core Pool Comptroller.\n     * @dev This comptroller is specific to the BNB Core Pool, which uses a different ABI\n     *      than isolated pools. It is used solely to detect and handle BNB Core Pool\n     *      markets, and would not be used for remote-chain (isolated pool) deployments.\n     */\n    ICorePoolComptroller public immutable CORE_POOL_COMPTROLLER;\n\n    /**\n     * @notice Address of the RiskStewardReceiver used to validate incoming updates\n     */\n    IRiskStewardReceiver public immutable RISK_STEWARD_RECEIVER;\n\n    /**\n     * @dev This empty reserved space is put in place to allow future versions to add new\n     * variables without shifting down storage in the inheritance chain.\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n     */\n    uint256[49] private __gap;\n\n    /**\n     * @notice Emitted when an interest rate model is updated\n     */\n    event InterestRateModelUpdated(\n        uint256 indexed updateId,\n        address indexed market,\n        address indexed newInterestRateModel\n    );\n\n    /**\n     * @notice Thrown when an update type that is not supported is operated on\n     */\n    error UnsupportedUpdateType();\n\n    /**\n     * @notice Thrown when attempting to apply a redundant IRM value (no-op change).\n     */\n    error RedundantValue();\n\n    /**\n     * @notice Thrown when the update is not coming from the RiskStewardReceiver\n     */\n    error OnlyRiskStewardReceiver();\n\n    /**\n     * @notice Thrown when the address length is invalid\n     */\n    error InvalidAddressLength();\n\n    /**\n     * @notice Thrown when Core Pool VToken._setInterestRateModel fails.\n     */\n    error SetInterestRateModelFailed(uint256 errorCode);\n\n    /**\n     * @notice Sets the immutable CORE_POOL_COMPTROLLER and RISK_STEWARD_RECEIVER addresses and disables initializers\n     * @param corePoolComptroller_ The address of the Core Pool Comptroller\n     * @param riskStewardReceiver_ The address of the RiskStewardReceiver\n     * @custom:error Throws ZeroAddressNotAllowed if any of the addresses are zero\n     * @custom:oz-upgrades-unsafe-allow constructor\n     */\n    constructor(address corePoolComptroller_, address riskStewardReceiver_) {\n        ensureNonzeroAddress(riskStewardReceiver_);\n        CORE_POOL_COMPTROLLER = ICorePoolComptroller(corePoolComptroller_);\n        RISK_STEWARD_RECEIVER = IRiskStewardReceiver(riskStewardReceiver_);\n        _disableInitializers();\n    }\n\n    /**\n     * @notice Initializes the contract as ownable and access controlled.\n     * @param accessControlManager_ The address of the access control manager\n     */\n    function initialize(address accessControlManager_) external initializer {\n        __AccessControlled_init(accessControlManager_);\n    }\n\n    /**\n     * @notice Applies an interest rate model update from the RiskStewardReceiver.\n     * Directly updates the market interest rate model on the vToken.\n     * @param update RiskParameterUpdate update to apply\n     * @custom:error Throws OnlyRiskStewardReceiver if the sender is not the RiskStewardReceiver\n     * @custom:error Throws UnsupportedUpdateType if the update type is not supported\n     * @custom:event Emits InterestRateModelUpdated with the updateId, market and new IRM address\n     * @custom:access Only callable by the RiskStewardReceiver\n     */\n    function applyUpdate(RiskParameterUpdate calldata update) external {\n        if (msg.sender != address(RISK_STEWARD_RECEIVER)) {\n            revert OnlyRiskStewardReceiver();\n        }\n\n        if (update.updateTypeKey == INTEREST_RATE_MODEL_KEY) {\n            address newIRM = _decodeAbiEncodedAddress(update.newValue);\n            _updateIRM(update.updateId, update.market, newIRM);\n        } else {\n            revert UnsupportedUpdateType();\n        }\n    }\n\n    /**\n     * @notice Checks if an update is safe for direct execution (no timelock required)\n     * @param update The update to check\n     * @return True if update is safe for direct execution, false if timelock is required\n     * @custom:error Throws UnsupportedUpdateType if the update type is not supported\n     * @custom:error Throws RedundantValue if the new IRM address is equal to the current IRM address\n     * @dev For IRM updates, always returns false as we cannot compare IRM values\n     */\n    function isSafeForDirectExecution(RiskParameterUpdate calldata update) external view returns (bool) {\n        if (update.updateTypeKey != INTEREST_RATE_MODEL_KEY) {\n            revert UnsupportedUpdateType();\n        }\n\n        address newIRM = _decodeAbiEncodedAddress(update.newValue);\n        address currentIRM = address(ICorePoolVToken(update.market).interestRateModel());\n\n        // Revert on redundant updates\n        if (newIRM == currentIRM) {\n            revert RedundantValue();\n        }\n\n        // Always require timelock (not safe for direct execution)\n        return false;\n    }\n\n    /**\n     * @notice Updates the interest rate model for the given market.\n     * @param updateId The update ID from the Risk Oracle\n     * @param market The market to update the interest rate model for\n     * @param newIRM The new interest rate model address\n     * @custom:error Throws SetInterestRateModelFailed if the core pool vToken call to _setInterestRateModel returns a non-zero error code\n     * @custom:event Emits InterestRateModelUpdated with the updateId, market and new IRM address\n     */\n    function _updateIRM(uint256 updateId, address market, address newIRM) internal {\n        address comptroller = ICorePoolVToken(market).comptroller();\n\n        if (comptroller == address(CORE_POOL_COMPTROLLER)) {\n            uint256 errorCode = ICorePoolVToken(market)._setInterestRateModel(InterestRateModelV8(newIRM));\n            if (errorCode != 0) revert SetInterestRateModelFailed(errorCode);\n        } else {\n            IIsolatedPoolVToken(market).setInterestRateModel(InterestRateModel(newIRM));\n        }\n\n        emit InterestRateModelUpdated(updateId, market, newIRM);\n    }\n\n    /**\n     * @notice Decodes ABI-encoded bytes into an address.\n     * @dev Expects exactly 32 bytes as produced by abi.encode(address).\n     * @param data ABI-encoded address payload (32 bytes)\n     * @return The decoded address\n     * @custom:error Throws InvalidAddressLength if data length is not 32 bytes\n     */\n    function _decodeAbiEncodedAddress(bytes memory data) internal pure returns (address) {\n        if (data.length != 32) revert InvalidAddressLength();\n        return abi.decode(data, (address));\n    }\n}\n"},"contracts/RiskSteward/MarketCapsRiskSteward.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport { RiskParameterUpdate } from \"./Interfaces/IRiskOracle.sol\";\nimport { ICorePoolVToken } from \"../interfaces/ICorePoolVToken.sol\";\nimport { ICorePoolComptroller } from \"../interfaces/ICorePoolComptroller.sol\";\nimport { IRiskStewardReceiver } from \"./Interfaces/IRiskStewardReceiver.sol\";\nimport { BaseRiskSteward } from \"./BaseRiskSteward.sol\";\nimport { ensureNonzeroAddress } from \"@venusprotocol/solidity-utilities/contracts/validators.sol\";\n\n/**\n * @title MarketCapsRiskSteward\n * @author Venus\n * @notice Contract that can update supply and borrow caps updates received from RiskStewardReceiver.\n * @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion\n */\ncontract MarketCapsRiskSteward is BaseRiskSteward {\n    /**\n     * @notice The update type for supply caps\n     */\n    string public constant SUPPLY_CAP = \"supplyCap\";\n\n    /**\n     * @notice The update type key for supply caps (keccak256 hash of SUPPLY_CAP)\n     */\n    bytes32 public constant SUPPLY_CAP_KEY = keccak256(bytes(SUPPLY_CAP));\n\n    /**\n     * @notice The update type for borrow caps\n     */\n    string public constant BORROW_CAP = \"borrowCap\";\n\n    /**\n     * @notice The update type key for borrow caps (keccak256 hash of BORROW_CAP)\n     */\n    bytes32 public constant BORROW_CAP_KEY = keccak256(bytes(BORROW_CAP));\n\n    /**\n     * @notice Address of the RiskStewardReceiver used to validate incoming updates\n     */\n    IRiskStewardReceiver public immutable RISK_STEWARD_RECEIVER;\n\n    /**\n     * @dev This empty reserved space is put in place to allow future versions to add new\n     * variables without shifting down storage in the inheritance chain.\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n     */\n    uint256[49] private __gap;\n\n    /**\n     * @notice Emitted when a supply cap is updated\n     */\n    event SupplyCapUpdated(uint256 indexed updateId, address indexed market, uint256 newSupplyCap);\n\n    /**\n     * @notice Emitted when a borrow cap is updated\n     */\n    event BorrowCapUpdated(uint256 indexed updateId, address indexed market, uint256 newBorrowCap);\n\n    /**\n     * @notice Emitted when the safe delta bps is updated\n     */\n    event SafeDeltaBpsUpdated(uint256 oldSafeDeltaBps, uint256 newSafeDeltaBps);\n\n    /**\n     * @notice Thrown when a safeDeltaBps value is greater than MAX_BPS\n     */\n    error InvalidSafeDeltaBps();\n\n    /**\n     * @notice Thrown when an update type that is not supported is operated on\n     */\n    error UnsupportedUpdateType();\n\n    /**\n     * @notice Thrown when the update is not coming from the RiskStewardReceiver\n     */\n    error OnlyRiskStewardReceiver();\n\n    /**\n     * @notice Thrown when the uint256 data length is invalid\n     */\n    error InvalidUintLength();\n\n    /**\n     * @notice Thrown when attempting to apply a redundant value (no-op change).\n     */\n    error RedundantValue();\n\n    /**\n     * @notice Sets the immutable RiskStewardReceiver address and disables initializers\n     * @param riskStewardReceiver_ The address of the RiskStewardReceiver\n     * @custom:error Throws ZeroAddressNotAllowed if the RiskStewardReceiver address is zero\n     * @custom:oz-upgrades-unsafe-allow constructor\n     */\n    constructor(address riskStewardReceiver_) {\n        ensureNonzeroAddress(riskStewardReceiver_);\n        RISK_STEWARD_RECEIVER = IRiskStewardReceiver(riskStewardReceiver_);\n        _disableInitializers();\n    }\n\n    /**\n     * @notice Initializes the contract as ownable and access controlled.\n     * @param accessControlManager_ The address of the access control manager\n     */\n    function initialize(address accessControlManager_) external initializer {\n        __AccessControlled_init(accessControlManager_);\n    }\n\n    /**\n     * @notice Sets the safe delta bps\n     * @param safeDeltaBps_ The new safe delta bps\n     * @custom:access Controlled by AccessControlManager\n     * @custom:event Emits SafeDeltaBpsUpdated with the old and new safe delta bps\n     * @custom:error Throws InvalidSafeDeltaBps if the safe delta bps is greater than MAX_BPS\n     * @custom:error Throws RedundantValue if the new safe delta bps is equal to the current value\n     */\n    function setSafeDeltaBps(uint256 safeDeltaBps_) external {\n        _checkAccessAllowed(\"setSafeDeltaBps(uint256)\");\n        if (safeDeltaBps_ > MAX_BPS) {\n            revert InvalidSafeDeltaBps();\n        }\n        uint256 oldSafeDeltaBps = safeDeltaBps;\n        if (safeDeltaBps_ == oldSafeDeltaBps) {\n            revert RedundantValue();\n        }\n        safeDeltaBps = safeDeltaBps_;\n        emit SafeDeltaBpsUpdated(oldSafeDeltaBps, safeDeltaBps_);\n    }\n\n    /**\n     * @notice Checks if an update is safe for direct execution (no timelock required)\n     * @param update The update to check\n     * @return True if update is safe for direct execution, false if timelock is required\n     * @custom:error Throws UnsupportedUpdateType if the update type is not supported\n     * @custom:error Throws RedundantValue if the new cap value is equal to the current cap value\n     */\n    function isSafeForDirectExecution(RiskParameterUpdate calldata update) external view returns (bool) {\n        uint256 newValue = _decodeAbiEncodedUint256(update.newValue);\n        // Use the core pool comptroller interface here because the getter used below has the same signature for both core and isolated pools.\n        ICorePoolComptroller comptroller = ICorePoolComptroller(ICorePoolVToken(update.market).comptroller());\n        uint256 currentValue;\n\n        if (update.updateTypeKey == SUPPLY_CAP_KEY) {\n            currentValue = comptroller.supplyCaps(update.market);\n        } else if (update.updateTypeKey == BORROW_CAP_KEY) {\n            currentValue = comptroller.borrowCaps(update.market);\n        } else {\n            revert UnsupportedUpdateType();\n        }\n\n        // Revert on redundant updates\n        if (newValue == currentValue) {\n            revert RedundantValue();\n        }\n\n        // If current value is 0, always require timelock (not safe for direct execution)\n        if (currentValue == 0) {\n            return false;\n        }\n\n        // Return true if difference is within safe delta (safe for direct execution)\n        return _isWithinSafeDelta(newValue, currentValue);\n    }\n\n    /**\n     * @notice Applies a market cap update from the RiskStewardReceiver.\n     * Directly updates the market supply or borrow cap on the market's comptroller.\n     * @custom:access Only callable by the RiskStewardReceiver\n     * @param update RiskParameterUpdate update to apply\n     * @custom:event Emits SupplyCapUpdated or BorrowCapUpdated depending on the update with the updateId, market and new cap\n     * @custom:error Throws OnlyRiskStewardReceiver if the sender is not the RiskStewardReceiver\n     * @custom:error Throws UnsupportedUpdateType if the update type is not supported\n     */\n    function applyUpdate(RiskParameterUpdate calldata update) external {\n        if (msg.sender != address(RISK_STEWARD_RECEIVER)) {\n            revert OnlyRiskStewardReceiver();\n        }\n        uint256 newValue = _decodeAbiEncodedUint256(update.newValue);\n\n        if (update.updateTypeKey == SUPPLY_CAP_KEY) {\n            _updateSupplyCaps(update.updateId, update.market, newValue);\n        } else if (update.updateTypeKey == BORROW_CAP_KEY) {\n            _updateBorrowCaps(update.updateId, update.market, newValue);\n        } else {\n            revert UnsupportedUpdateType();\n        }\n    }\n\n    /**\n     * @notice Updates the supply cap for the given market.\n     * @param updateId The update ID from the Risk Oracle\n     * @param market The market to update the supply cap for\n     * @param newValue The new supply cap value\n     * @custom:event Emits SupplyCapUpdated with the updateId, market and new supply cap\n     */\n    function _updateSupplyCaps(uint256 updateId, address market, uint256 newValue) internal {\n        address comptroller = ICorePoolVToken(market).comptroller();\n        address[] memory newSupplyCapMarkets = new address[](1);\n        newSupplyCapMarkets[0] = market;\n        uint256[] memory newSupplyCaps = new uint256[](1);\n        newSupplyCaps[0] = newValue;\n\n        // Core and isolated pools share the same `setMarketSupplyCaps` signature.\n        ICorePoolComptroller(comptroller).setMarketSupplyCaps(newSupplyCapMarkets, newSupplyCaps);\n        emit SupplyCapUpdated(updateId, market, newSupplyCaps[0]);\n    }\n\n    /**\n     * @notice Updates the borrow cap for the given market.\n     * @param updateId The update ID from the Risk Oracle\n     * @param market The market to update the borrow cap for\n     * @param newValue The new borrow cap value\n     * @custom:event Emits BorrowCapUpdated with the updateId, market and new borrow cap\n     */\n    function _updateBorrowCaps(uint256 updateId, address market, uint256 newValue) internal {\n        address comptroller = ICorePoolVToken(market).comptroller();\n        address[] memory newBorrowCapMarkets = new address[](1);\n        newBorrowCapMarkets[0] = market;\n        uint256[] memory newBorrowCaps = new uint256[](1);\n        newBorrowCaps[0] = newValue;\n\n        //Core and isolated pools share the same `setMarketBorrowCaps` signature,\n        ICorePoolComptroller(comptroller).setMarketBorrowCaps(newBorrowCapMarkets, newBorrowCaps);\n        emit BorrowCapUpdated(updateId, market, newBorrowCaps[0]);\n    }\n\n    /**\n     * @notice Decodes ABI-encoded bytes into a uint256.\n     * @dev Expects exactly 32 bytes as produced by abi.encode(uint256).\n     * @param data ABI-encoded uint256 payload (32 bytes)\n     * @return value Decoded uint256\n     * @custom:error Throws InvalidUintLength if data length is not 32 bytes\n     */\n    function _decodeAbiEncodedUint256(bytes memory data) internal pure returns (uint256 value) {\n        if (data.length != 32) {\n            revert InvalidUintLength();\n        }\n        value = abi.decode(data, (uint256));\n    }\n}\n"},"contracts/RiskSteward/RiskOracle.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity 0.8.25;\n\nimport { AccessControlledV8 } from \"../Governance/AccessControlledV8.sol\";\nimport { ensureNonzeroAddress } from \"@venusprotocol/solidity-utilities/contracts/validators.sol\";\nimport { IRiskOracle, RiskParameterUpdate } from \"./Interfaces/IRiskOracle.sol\";\n\n/**\n * @title Risk Oracle\n * @author Venus\n * @notice Contract for managing and publishing risk parameter updates for Risk-Steward Updates\n */\ncontract RiskOracle is IRiskOracle, AccessControlledV8 {\n    /// @notice Counter to keep track of the total number of updates\n    uint256 public updateCounter;\n\n    /// @notice Array to store all update types\n    string[] public allUpdateTypes;\n\n    /// @notice Whitelist of valid update type identifiers, keyed by updateType hash\n    mapping(bytes32 => bool) public activeUpdateTypes;\n\n    /// @notice Mapping from unique update ID to the update details\n    mapping(uint256 => RiskParameterUpdate) public updatesById;\n\n    /// @notice Authorized accounts capable of proposing updates\n    mapping(address => bool) public authorizedSenders;\n\n    /// @notice Mapping to store the latest update ID for each combination of update type key and market\n    mapping(bytes32 updateTypeKey => mapping(address market => uint256 updateId)) public latestUpdateIdByMarketAndType;\n\n    /**\n     * @dev This empty reserved space is put in place to allow future versions to add new\n     * variables without shifting down storage in the inheritance chain.\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n     */\n    uint256[44] private __gap;\n\n    /**\n     * @notice Modifier that restricts function access to authorized senders only\n     */\n    modifier onlyAuthorized() {\n        if (!authorizedSenders[msg.sender]) {\n            revert SenderNotAuthorized();\n        }\n        _;\n    }\n\n    /**\n     * @notice Disables initializers\n     * @custom:oz-upgrades-unsafe-allow constructor\n     */\n    constructor() {\n        _disableInitializers();\n    }\n\n    /**\n     * @notice Initializes the contract with access control manager\n     * @param accessControlManager_ Address of the access control manager\n     * @custom:error Reverts with \"invalid acess control manager address\" if accessControlManager_ is zero address\n     */\n    function initialize(address accessControlManager_) external initializer {\n        __AccessControlled_init(accessControlManager_);\n    }\n\n    /**\n     * @notice Adds a new sender to the list of addresses authorized to perform updates\n     * @param sender Address to be authorized\n     * @custom:access Controlled by AccessControlManager\n     * @custom:error Throws ZeroAddressNotAllowed if sender is zero address\n     * @custom:error Throws SenderAlreadyAuthorized if sender is already authorized\n     * @custom:error Throws Unauthorized if caller is not allowed by AccessControlManager\n     * @custom:event Emits AuthorizedSenderAdded when sender is successfully added\n     */\n    function addAuthorizedSender(address sender) external {\n        _checkAccessAllowed(\"addAuthorizedSender(address)\");\n        ensureNonzeroAddress(sender);\n        if (authorizedSenders[sender]) {\n            revert SenderAlreadyAuthorized();\n        }\n        authorizedSenders[sender] = true;\n        emit AuthorizedSenderAdded(sender);\n    }\n\n    /**\n     * @notice Removes an address from the list of authorized senders\n     * @param sender Address to be unauthorized\n     * @custom:access Controlled by AccessControlManager\n     * @custom:error Throws SenderNotAuthorized if sender is not currently authorized\n     * @custom:error Throws Unauthorized if caller is not allowed by AccessControlManager\n     * @custom:event Emits AuthorizedSenderRemoved when sender is successfully removed\n     */\n    function removeAuthorizedSender(address sender) external {\n        _checkAccessAllowed(\"removeAuthorizedSender(address)\");\n        if (!authorizedSenders[sender]) {\n            revert SenderNotAuthorized();\n        }\n        delete authorizedSenders[sender];\n        emit AuthorizedSenderRemoved(sender);\n    }\n\n    /**\n     * @notice Adds a new type of update to the list of authorized update types\n     * @param newUpdateType New type of update to allow\n     * @custom:access Controlled by AccessControlManager\n     * @custom:error Throws InvalidUpdateTypeString if update type string is empty or exceeds 64 characters\n     * @custom:error Throws UpdateTypeAlreadyExists if update type already exists\n     * @custom:error Throws Unauthorized if caller is not allowed by AccessControlManager\n     * @custom:event Emits UpdateTypeAdded when update type is successfully added\n     */\n    function addUpdateType(string memory newUpdateType) external {\n        _checkAccessAllowed(\"addUpdateType(string)\");\n        if (bytes(newUpdateType).length == 0 || bytes(newUpdateType).length > 64) {\n            revert InvalidUpdateTypeString();\n        }\n        bytes32 key = keccak256(bytes(newUpdateType));\n\n        if (_updateTypeExists(key)) {\n            revert UpdateTypeAlreadyExists();\n        }\n\n        activeUpdateTypes[key] = true;\n        allUpdateTypes.push(newUpdateType);\n        emit UpdateTypeAdded(newUpdateType);\n    }\n\n    /**\n     * @notice Sets the active status of an existing update type\n     * @param updateType The update type to set active status for\n     * @param active True to activate, false to deactivate\n     * @custom:access Controlled by AccessControlManager\n     * @custom:error Throws UpdateTypeNotFound if update type doesn't exist\n     * @custom:error Throws UpdateTypeStatusUnchanged if status is already set to the desired value\n     * @custom:error Throws Unauthorized if caller is not allowed by AccessControlManager\n     * @custom:event Emits UpdateTypeActiveStatusChanged when status is successfully changed\n     */\n    function setUpdateTypeActive(string memory updateType, bool active) external {\n        _checkAccessAllowed(\"setUpdateTypeActive(string,bool)\");\n        bytes32 key = keccak256(bytes(updateType));\n\n        if (!_updateTypeExists(key)) {\n            revert UpdateTypeNotFound();\n        }\n\n        bool previousActive = activeUpdateTypes[key];\n        if (previousActive == active) {\n            revert UpdateTypeStatusUnchanged();\n        }\n\n        activeUpdateTypes[key] = active;\n        emit UpdateTypeActiveStatusChanged(updateType, previousActive, active);\n    }\n\n    /**\n     * @notice Publishes a new risk parameter update\n     * @param referenceId An external reference ID associated with the update\n     * @param newValue The new value of the risk parameter being updated\n     * @param updateType Type of update performed, must be previously authorized\n     * @param market Address for market of the parameter update\n     * @param poolId Pool identifier for eMode-style collateral configuration (0 for regular markets)\n     * @param dstEid Destination endpoint ID for cross-chain routing\n     * @param additionalData Additional data for the update\n     * @custom:error Throws SenderNotAuthorized if caller is not an authorized sender\n     * @custom:error Throws UpdateTypeNotActive if update type is not active\n     * @custom:error Throws ZeroAddressNotAllowed if market is zero address\n     * @custom:event Emits UpdatePublished when update is successfully published\n     */\n    function publishRiskParameterUpdate(\n        string memory referenceId,\n        bytes memory newValue,\n        string memory updateType,\n        address market,\n        uint96 poolId,\n        uint32 dstEid,\n        bytes memory additionalData\n    ) external onlyAuthorized {\n        _publishUpdate(referenceId, newValue, updateType, market, poolId, dstEid, additionalData);\n    }\n\n    /**\n     * @notice Publishes multiple risk parameter updates in a single transaction\n     * @param referenceIds Array of external reference IDs\n     * @param newValues Array of new values for each update\n     * @param updateTypes Array of types for each update, all must be authorized\n     * @param markets Array of addresses for markets of the parameter updates\n     * @param poolIds Array of pool identifiers for eMode-style collateral configuration (0 for regular markets)\n     * @param dstEid Array of destination endpoint IDs for cross-chain routing\n     * @param additionalData Array of additional data for the updates\n     * @custom:error Throws SenderNotAuthorized if caller is not an authorized sender\n     * @custom:error Throws ArrayLengthMismatch if the array lengths do not match or if no updates are provided\n     * @custom:error Throws UpdateTypeNotActive if any update type is not active\n     * @custom:error Throws ZeroAddressNotAllowed if any market is zero address\n     * @custom:event Emits UpdatePublished for each successfully published update\n     */\n    function publishBulkRiskParameterUpdates(\n        string[] memory referenceIds,\n        bytes[] memory newValues,\n        string[] memory updateTypes,\n        address[] memory markets,\n        uint96[] memory poolIds,\n        uint32[] memory dstEid,\n        bytes[] memory additionalData\n    ) external onlyAuthorized {\n        uint256 length = referenceIds.length;\n        if (\n            length == 0 ||\n            length != newValues.length ||\n            length != updateTypes.length ||\n            length != markets.length ||\n            length != poolIds.length ||\n            length != dstEid.length ||\n            length != additionalData.length\n        ) {\n            revert ArrayLengthMismatch();\n        }\n        for (uint256 i = 0; i < length; ++i) {\n            _publishUpdate(\n                referenceIds[i],\n                newValues[i],\n                updateTypes[i],\n                markets[i],\n                poolIds[i],\n                dstEid[i],\n                additionalData[i]\n            );\n        }\n    }\n\n    /**\n     * @notice Fetches the most recent update for a specific parameter in a specific market\n     * @param updateType The identifier for the parameter\n     * @param market The market identifier\n     * @return The most recent RiskParameterUpdate for the specified parameter and market\n     * @custom:error Throws NoUpdateFound if no update exists for the specified parameter and market\n     */\n    function getLatestUpdateByTypeAndMarket(\n        string memory updateType,\n        address market\n    ) external view returns (RiskParameterUpdate memory) {\n        bytes32 updateTypeKey = keccak256(bytes(updateType));\n        uint256 updateId = latestUpdateIdByMarketAndType[updateTypeKey][market];\n        if (updateId == 0) {\n            revert NoUpdateFound();\n        }\n        return updatesById[updateId];\n    }\n\n    /**\n     * @notice Fetches the update for a provided updateId\n     * @param updateId Update ID\n     * @return The RiskParameterUpdate for the specified id\n     * @custom:error Throws InvalidUpdateId if updateId is 0 or greater than updateCounter\n     */\n    function getUpdateById(uint256 updateId) external view returns (RiskParameterUpdate memory) {\n        if (updateId == 0 || updateId > updateCounter) {\n            revert InvalidUpdateId();\n        }\n        return updatesById[updateId];\n    }\n\n    /**\n     * @notice Publishes a new risk parameter update internally\n     * @param referenceId An external reference ID associated with the update\n     * @param newValue The new value of the risk parameter being updated\n     * @param updateType Type of update performed, must be previously authorized\n     * @param market Address for market of the parameter update\n     * @param poolId Pool identifier for eMode-style collateral configuration (0 for regular markets)\n     * @param dstEid Destination endpoint ID for cross-chain routing\n     * @param additionalData Additional data for the update\n     * @custom:error Throws ZeroAddressNotAllowed if market is zero address\n     * @custom:error Throws UpdateTypeNotActive if update type is not active\n     * @custom:event Emits UpdatePublished when update is successfully published\n     */\n    function _publishUpdate(\n        string memory referenceId,\n        bytes memory newValue,\n        string memory updateType,\n        address market,\n        uint96 poolId,\n        uint32 dstEid,\n        bytes memory additionalData\n    ) internal {\n        ensureNonzeroAddress(market);\n        bytes32 updateTypeKey = keccak256(bytes(updateType));\n        if (!activeUpdateTypes[updateTypeKey]) {\n            revert UpdateTypeNotActive();\n        }\n        uint256 newUpdateCounter = ++updateCounter;\n        uint256 previousUpdateId = latestUpdateIdByMarketAndType[updateTypeKey][market];\n        bytes memory previousValue = updatesById[previousUpdateId].newValue;\n\n        RiskParameterUpdate memory newUpdate = RiskParameterUpdate({\n            referenceId: referenceId,\n            updateId: newUpdateCounter,\n            market: market,\n            updateType: updateType,\n            updateTypeKey: updateTypeKey,\n            newValue: newValue,\n            previousValue: previousValue,\n            timestamp: block.timestamp,\n            publisher: msg.sender,\n            poolId: poolId,\n            destLzEid: dstEid,\n            additionalData: additionalData\n        });\n        updatesById[newUpdateCounter] = newUpdate;\n\n        // Update the latest update ID for the (updateTypeKey, market) pair\n        latestUpdateIdByMarketAndType[updateTypeKey][market] = newUpdateCounter;\n\n        emit UpdatePublished(\n            referenceId,\n            newUpdateCounter,\n            market,\n            updateType,\n            newValue,\n            previousValue,\n            block.timestamp,\n            msg.sender,\n            additionalData\n        );\n    }\n\n    /**\n     * @notice Returns the total number of update types in the allUpdateTypes array\n     * @return The length of the allUpdateTypes array\n     */\n    function allUpdateTypesLength() external view returns (uint256) {\n        return allUpdateTypes.length;\n    }\n\n    /**\n     * @notice Gets the latest update ID for a specific market and update type (string) combination\n     * @param updateType The update type string\n     * @param market The market address\n     * @return The latest update ID for the given market and update type, or 0 if none exists\n     */\n    function getLatestUpdateIdByTypeAndMarket(\n        string memory updateType,\n        address market\n    ) external view returns (uint256) {\n        bytes32 updateTypeKey = keccak256(bytes(updateType));\n        return latestUpdateIdByMarketAndType[updateTypeKey][market];\n    }\n\n    /**\n     * @notice Checks if a given update type is currently active.\n     * @param updateType The update type string to check\n     * @return True if the update type is active, false otherwise\n     */\n    function getActiveUpdateTypes(string memory updateType) external view returns (bool) {\n        bytes32 key = keccak256(bytes(updateType));\n        return activeUpdateTypes[key];\n    }\n\n    /**\n     * @notice Returns all update types in the allUpdateTypes array\n     * @return An array of all update type strings\n     */\n    function getAllUpdateTypes() external view returns (string[] memory) {\n        return allUpdateTypes;\n    }\n\n    /**\n     * @notice Checks if an update type exists in the allUpdateTypes array\n     * @param updateTypeKey The keccak256 hash of the update type string\n     * @return True if the update type exists, false otherwise\n     */\n    function _updateTypeExists(bytes32 updateTypeKey) internal view returns (bool) {\n        uint256 length = allUpdateTypes.length;\n        for (uint256 i = 0; i < length; ++i) {\n            if (keccak256(bytes(allUpdateTypes[i])) == updateTypeKey) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * @notice Disables renounceOwnership function\n     * @custom:error Throws RenounceOwnershipNotAllowed\n     */\n    function renounceOwnership() public pure override {\n        revert RenounceOwnershipNotAllowed();\n    }\n}\n"},"contracts/RiskSteward/RiskStewardReceiver.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport { OwnableUpgradeable } from \"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\";\nimport { Ownable2StepUpgradeable } from \"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\";\nimport { IRiskSteward } from \"./Interfaces/IRiskSteward.sol\";\nimport { IRiskOracle, RiskParameterUpdate } from \"./Interfaces/IRiskOracle.sol\";\nimport { IRiskStewardReceiver } from \"./Interfaces/IRiskStewardReceiver.sol\";\nimport { AccessControlledV8 } from \"../Governance/AccessControlledV8.sol\";\nimport { ensureNonzeroAddress } from \"@venusprotocol/solidity-utilities/contracts/validators.sol\";\nimport { ICorePoolComptroller } from \"../interfaces/ICorePoolComptroller.sol\";\nimport { OAppSenderUpgradeable, MessagingFee } from \"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppSenderUpgradeable.sol\";\nimport { OptionsBuilder } from \"@layerzerolabs/oapp-evm/contracts/oapp/libs/OptionsBuilder.sol\";\nimport { OAppCoreUpgradeable } from \"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppCoreUpgradeable.sol\";\n\n/**\n * @title RiskStewardReceiver\n * @author Venus\n * @notice Contract that reads updates from a Risk Oracle, validates them with timelock and debounce,\n *         and either executes them locally via the configured RiskSteward or forwards them cross‑chain.\n * @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion\n */\ncontract RiskStewardReceiver is IRiskStewardReceiver, AccessControlledV8, OAppSenderUpgradeable {\n    using OptionsBuilder for bytes;\n\n    /**\n     * @notice Period after which a proposed update becomes expired and can no longer be applied\n     */\n    uint256 public constant UPDATE_EXPIRATION_TIME = 2 days;\n\n    /**\n     * @notice Source chain LayerZero endpoint ID\n     */\n    uint32 public immutable LAYER_ZERO_EID;\n\n    /**\n     * @notice The Risk Oracle contract address\n     */\n    IRiskOracle public immutable RISK_ORACLE;\n\n    /**\n     * @notice Pause flag\n     */\n    bool public paused;\n\n    /**\n     * @notice Mapping of supported risk configurations and their validation parameters (keyed by hashed updateType)\n     */\n    mapping(bytes32 => RiskParamConfig) public riskParameterConfigs;\n\n    /**\n     * @notice Master storage of all registered updates by update ID\n     */\n    mapping(uint256 updateId => RegisteredUpdate) public updates;\n\n    /**\n     * @notice Track last processed update ID per (updateTypeKey, market)\n     */\n    mapping(bytes32 => mapping(address market => uint256)) public lastProcessedUpdate;\n\n    /**\n     * @notice Track the current registered update per (updateType, market) to avoid registering multiple updates\n     */\n    mapping(bytes32 => mapping(address market => uint256)) public lastRegisteredUpdate;\n\n    /**\n     * @notice Mapping from executor address to whitelist status\n     */\n    mapping(address => bool) public whitelistedExecutors;\n\n    /**\n     * @dev This empty reserved space is put in place to allow future versions to add new\n     * variables without shifting down storage in the inheritance chain.\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n     */\n    uint256[44] private __gap;\n\n    /**\n     * @dev Ensures the caller is a whitelisted executor.\n     */\n    modifier onlyWhitelistedExecutors() {\n        if (!whitelistedExecutors[msg.sender]) {\n            revert NotAnExecutor();\n        }\n        _;\n    }\n\n    /**\n     * @dev Ensures the contract is not paused.\n     */\n    modifier whenNotPaused() {\n        if (paused) {\n            revert PausedError();\n        }\n        _;\n    }\n\n    /**\n     * @notice Disables initializers and sets the Risk Oracle and LayerZero configuration.\n     * @param riskOracle_ The address of the Risk Oracle contract.\n     * @param endpoint_ The LayerZero endpoint contract used by the underlying `OAppUpgradeable`.\n     * @param layerZeroLzEid_ The LayerZero endpoint ID (EID) for this chain.\n     * @custom:oz-upgrades-unsafe-allow constructor\n     */\n    constructor(address riskOracle_, address endpoint_, uint32 layerZeroLzEid_) OAppCoreUpgradeable(endpoint_) {\n        _disableInitializers();\n        ensureNonzeroAddress(riskOracle_);\n        ensureNonzeroAddress(endpoint_);\n        if (layerZeroLzEid_ == 0) revert InvalidLayerZeroEid();\n\n        RISK_ORACLE = IRiskOracle(riskOracle_);\n        LAYER_ZERO_EID = layerZeroLzEid_;\n    }\n\n    /**\n     * @notice Initializes the contract with the Access Control Manager and OApp owner.\n     * @param acm_ The address of the Access Control Manager\n     * @param delegate_ The address of the OApp owner passed to `__OApp_init`.\n     */\n    function initialize(address acm_, address delegate_) external initializer {\n        __AccessControlled_init(acm_);\n        __OAppSender_init(delegate_);\n    }\n\n    /**\n     * @notice Accepts native tokens (e.g., BNB) sent to this contract.\n     */\n    receive() external payable {}\n\n    /**\n     * @notice Allows the owner to sweep leftover native tokens (e.g., BNB) from the contract.\n     * @custom:event Emits SweepNative event.\n     */\n    function sweepNative() external onlyOwner {\n        uint256 balance = address(this).balance;\n        if (balance > 0) {\n            (bool success, ) = payable(owner()).call{ value: balance }(\"\");\n            if (!success) revert TransferFailed();\n            emit SweepNative(owner(), balance);\n        }\n    }\n\n    /**\n     * @notice Sets the pause status for `processUpdate`.\n     * @param paused_ True to pause, false to unpause\n     * @custom:access Controlled by AccessControlManager\n     * @custom:event Emits PauseStatusUpdated\n     */\n    function setPaused(bool paused_) external {\n        _checkAccessAllowed(\"setPaused(bool)\");\n        if (paused == paused_) {\n            revert PauseStatusUnchanged();\n        }\n        emit PauseStatusUpdated(paused, paused_);\n        paused = paused_;\n    }\n\n    /**\n     * @notice Sets the risk parameter config for a given update type\n     * @param updateType The type of update to configure\n     * @param riskSteward The address for the risk steward contract responsible for processing the update\n     * @param debounce The debounce period for the update\n     * @param timelock The timelock period before the update can be executed\n     * @custom:access Controlled by AccessControlManager\n     * @custom:event Emits RiskParameterConfigUpdated\n     * @custom:error InvalidUpdateType if the update type string is empty\n     * @custom:error Throws InvalidDebounce if the debounce is 0\n     * @custom:error Throws InvalidTimelock if the timelock is greater than or equal to the expiration time\n     * @custom:error Throws ZeroAddressNotAllowed if the risk steward address is zero\n     */\n    function setRiskParameterConfig(\n        string calldata updateType,\n        address riskSteward,\n        uint256 debounce,\n        uint256 timelock\n    ) external {\n        _checkAccessAllowed(\"setRiskParameterConfig(string,address,uint256,uint256)\");\n        ensureNonzeroAddress(riskSteward);\n\n        if (bytes(updateType).length == 0 || bytes(updateType).length > 64) {\n            revert InvalidUpdateType();\n        }\n        if (debounce == 0) {\n            revert InvalidDebounce();\n        }\n        if (timelock >= UPDATE_EXPIRATION_TIME) {\n            revert InvalidTimelock();\n        }\n\n        bytes32 key = keccak256(bytes(updateType));\n        RiskParamConfig memory previousConfig = riskParameterConfigs[key];\n\n        riskParameterConfigs[key] = RiskParamConfig({\n            active: true,\n            riskSteward: riskSteward,\n            debounce: debounce,\n            timelock: timelock\n        });\n\n        emit RiskParameterConfigUpdated(\n            key,\n            updateType,\n            previousConfig.riskSteward,\n            riskSteward,\n            previousConfig.debounce,\n            debounce,\n            previousConfig.timelock,\n            timelock,\n            previousConfig.active,\n            true\n        );\n    }\n\n    /**\n     * @notice Sets the active status of a risk parameter config\n     * @param updateType The type of update to configure\n     * @param active The active status to set\n     * @custom:access Controlled by AccessControlManager\n     * @custom:event Emits ConfigActiveUpdated with the update type hash, update type, previous active status, and the active status\n     * @custom:error Throws UnsupportedUpdateType if the update type is not supported\n     * @custom:error Throws ConfigStatusUnchanged if the active status is already set to the desired value\n     */\n    function setConfigActive(string calldata updateType, bool active) external {\n        _checkAccessAllowed(\"setConfigActive(string,bool)\");\n        bytes32 key = keccak256(bytes(updateType));\n\n        if (riskParameterConfigs[key].riskSteward == address(0)) {\n            revert UnsupportedUpdateType();\n        }\n\n        bool previousActive = riskParameterConfigs[key].active;\n        if (previousActive == active) {\n            revert ConfigStatusUnchanged();\n        }\n\n        riskParameterConfigs[key].active = active;\n        emit ConfigActiveUpdated(key, updateType, previousActive, active);\n    }\n\n    /**\n     * @notice Manages the whitelist of executors that are allowed to execute timelocked registered updates.\n     * @param executor The address of the executor\n     * @param approved The whitelist status to set (true to whitelist, false to remove)\n     * @custom:access Controlled by AccessControlManager\n     * @custom:event Emits ExecutorStatusUpdated with the executor address, previous approval status, and approval status\n     * @custom:error Throws ZeroAddressNotAllowed if the executor address is zero\n     * @custom:error Throws ExecutorStatusUnchanged if the executor whitelist status is already set to the desired value\n     */\n    function setWhitelistedExecutor(address executor, bool approved) external {\n        _checkAccessAllowed(\"setWhitelistedExecutor(address,bool)\");\n        ensureNonzeroAddress(executor);\n\n        bool previousApproved = whitelistedExecutors[executor];\n        if (previousApproved == approved) {\n            revert ExecutorStatusUnchanged();\n        }\n\n        whitelistedExecutors[executor] = approved;\n        emit ExecutorStatusUpdated(executor, previousApproved, approved);\n    }\n\n    /**\n     * @notice Processes an update from the Risk Oracle. Validates, registers the update,\n     * and either executes immediately, registers with timelock, or forwards cross-chain.\n     * @param updateId The update ID from the oracle's perspective\n     * @custom:event Emits UpdateRegistered, UpdateExecuted, or UpdateSentToDestination depending on the update type\n     * @custom:error Throws UpdateAlreadyResolved if the update was already processed\n     * @custom:error Throws UpdateIsExpired if the update has expired\n     * @custom:error Throws ConfigNotActive if the config is not active\n     * @custom:error Throws UpdateTooFrequent if the debounce period has not passed\n     * @custom:error Throws RegisteredUpdateTypeExist if there is a non-expired pending update of the same type\n     */\n    function processUpdate(uint256 updateId) external whenNotPaused {\n        RiskParameterUpdate memory update = RISK_ORACLE.getUpdateById(updateId);\n        RiskParamConfig storage config = riskParameterConfigs[update.updateTypeKey];\n        bool isRemoteUpdate = update.destLzEid != 0 && update.destLzEid != LAYER_ZERO_EID;\n\n        // Skip active update check for remote updates since they are sent immediately and not registered locally\n        if (!isRemoteUpdate) _ensureNoActiveUpdate(update);\n        _validateRegisterUpdate(update, config, isRemoteUpdate);\n\n        IRiskSteward riskSteward = IRiskSteward(config.riskSteward);\n        bool safeForDirectExecution = isRemoteUpdate ? false : riskSteward.isSafeForDirectExecution(update);\n        _registerUpdate(update, config, safeForDirectExecution || isRemoteUpdate);\n\n        if (isRemoteUpdate) {\n            _sendRemoteUpdate(update, \"\", 0);\n        } else if (safeForDirectExecution) {\n            _executeUpdate(update, riskSteward);\n        }\n    }\n\n    /**\n     * @notice Executes a registered update. Only whitelisted executors can call this function.\n     *         This function can be used for updates that have completed their timelock and are ready to execute.\n     * @param updateId The oracle update ID of the update to execute\n     * @custom:access Only whitelisted executors can call this function\n     * @custom:event Emits UpdateExecuted with the oracle update ID\n     * @custom:error Throws NotAnExecutor if the caller is not a whitelisted executor\n     * @custom:error Throws InvalidRegisteredUpdate if the update was never registered\n     * @custom:error Throws UpdateAlreadyResolved if the update was already executed or rejected\n     * @custom:error Throws UpdateIsExpired if the update has expired\n     * @custom:error Throws ConfigNotActive if the config is not active\n     * @custom:error Throws UpdateNotUnlocked if the unlock time has not passed\n     */\n    function executeRegisteredUpdate(uint256 updateId) external onlyWhitelistedExecutors {\n        RegisteredUpdate storage registeredUpdate = updates[updateId];\n        RiskParameterUpdate memory update = RISK_ORACLE.getUpdateById(updateId);\n        RiskParamConfig storage config = riskParameterConfigs[update.updateTypeKey];\n\n        _validateExecuteUpdate(registeredUpdate, update, config);\n        _executeUpdate(update, IRiskSteward(config.riskSteward));\n    }\n\n    /**\n     * @notice Rejects a registered update\n     * @param updateId The oracle update ID of the update to reject\n     * @custom:access Only whitelisted executors can call this function\n     * @custom:event Emits UpdateRejected with the oracle update ID\n     * @custom:error Throws UpdateAlreadyResolved if the update was already executed or rejected\n     */\n    function rejectUpdate(uint256 updateId) external onlyWhitelistedExecutors {\n        RegisteredUpdate storage registeredUpdate = updates[updateId];\n\n        if (registeredUpdate.status != UpdateStatus.Pending) {\n            revert UpdateAlreadyResolved();\n        }\n\n        registeredUpdate.status = UpdateStatus.Rejected;\n        emit UpdateRejected(updateId);\n    }\n\n    /**\n     * @notice Resends a remote update to the destination chain. This function is useful in case of bridge failures.\n     * @dev Duplicate update rejection is handled in the destination contract itself, so resending\n     *      the same update multiple times is safe and will be deduplicated on the destination side.\n     * @param updateId The oracle update ID to resend\n     * @param options LayerZero message options; if empty, default executor option is used\n     * @custom:access Only whitelisted executors can call this function\n     * @custom:event Emits UpdateResentToDestination with the update ID, destination chain ID, update type, and market\n     * @custom:error Throws NotAnExecutor if the caller is not a whitelisted executor\n     * @custom:error Throws InvalidUpdateToResend if the update status is not SENT_TO_DESTINATION\n     * @custom:error Throws UpdateIsExpired if the update has expired\n     */\n    function resendRemoteUpdate(uint256 updateId, bytes calldata options) external payable onlyWhitelistedExecutors {\n        RegisteredUpdate storage registeredUpdate = updates[updateId];\n        if (registeredUpdate.status != UpdateStatus.SENT_TO_DESTINATION) {\n            revert InvalidUpdateToResend();\n        }\n\n        RiskParameterUpdate memory update = RISK_ORACLE.getUpdateById(updateId);\n\n        // Check if update is expired\n        if (update.timestamp + UPDATE_EXPIRATION_TIME < block.timestamp) {\n            revert UpdateIsExpired();\n        }\n\n        _sendRemoteUpdate(update, options, msg.value);\n        emit UpdateResentToDestination(update.updateId, update.destLzEid, update.updateType, update.market);\n    }\n\n    /**\n     * @notice Returns an array of update IDs for executable registered updates for a given update type and comptroller.\n     * @param updateType The human‑readable identifier of the update type to filter by\n     * @param comptroller The address of the Comptroller (either Core Pool or Isolated Pools) that manages the markets\n     * @return executableUpdates Array of update IDs that are ready to be executed\n     */\n    function getExecutableUpdates(\n        string calldata updateType,\n        address comptroller\n    ) external view returns (uint256[] memory executableUpdates) {\n        bytes32 updateTypeKey = keccak256(bytes(updateType));\n        // Both Core and Isolated Pools comptrollers expose the same signature\n        address[] memory markets = ICorePoolComptroller(comptroller).getAllMarkets();\n        uint256 maxUpdates = markets.length;\n        uint256[] memory tempArray = new uint256[](maxUpdates);\n        uint256 count = 0;\n\n        for (uint256 i = 0; i < maxUpdates; ++i) {\n            uint256 registeredUpdateId = lastRegisteredUpdate[updateTypeKey][markets[i]];\n            if (!_isUpdateExecutable(registeredUpdateId)) continue;\n            tempArray[count] = registeredUpdateId;\n            count++;\n        }\n\n        // shrink array to real size\n        executableUpdates = new uint256[](count);\n        for (uint256 i = 0; i < count; ++i) {\n            executableUpdates[i] = tempArray[i];\n        }\n    }\n\n    /**\n     * @notice Returns whether a registered update is ready to be executed.\n     * @param updateId The oracle update ID to query\n     * @return True if the update is pending, not expired, active, and past its timelock\n     */\n    function isUpdateExecutable(uint256 updateId) external view returns (bool) {\n        return _isUpdateExecutable(updateId);\n    }\n\n    /**\n     * @notice Returns the risk parameter configuration for a given update type\n     * @param updateType The human-readable identifier of the update type\n     * @return The risk parameter configuration\n     */\n    function getRiskParameterConfig(string calldata updateType) external view returns (RiskParamConfig memory) {\n        bytes32 key = keccak256(bytes(updateType));\n        return riskParameterConfigs[key];\n    }\n\n    /**\n     * @notice Returns the last processed update ID for a given update type and market\n     * @param updateType The human-readable identifier of the update type\n     * @param market The address of the market\n     * @return The last processed update ID\n     */\n    function getLastProcessedUpdate(string calldata updateType, address market) external view returns (uint256) {\n        bytes32 key = keccak256(bytes(updateType));\n        return lastProcessedUpdate[key][market];\n    }\n\n    /**\n     * @notice Returns the last registered update ID for a given update type and market\n     * @param updateType The human-readable identifier of the update type\n     * @param market The address of the market\n     * @return The last registered update ID\n     */\n    function getLastRegisteredUpdate(string calldata updateType, address market) external view returns (uint256) {\n        bytes32 key = keccak256(bytes(updateType));\n        return lastRegisteredUpdate[key][market];\n    }\n\n    /**\n     * @notice Quotes the gas fee needed to pay for the full omnichain transaction in native gas or ZRO token.\n     * @param update The risk parameter update payload to be sent\n     * @param options Message execution options (e.g., for sending gas to the destination)\n     * @param payInLzToken Whether to return the fee in ZRO token instead of native gas\n     * @return fee A `MessagingFee` struct containing the calculated gas fee\n     */\n    function quote(\n        RiskParameterUpdate memory update,\n        bytes memory options,\n        bool payInLzToken\n    ) public view returns (MessagingFee memory fee) {\n        bytes memory payload = abi.encode(update);\n        fee = _quote(update.destLzEid, payload, options, payInLzToken);\n    }\n\n    /**\n     * @notice Sends a `RiskParameterUpdate` to a destination chain via LayerZero.\n     * @param dstEid Destination chain endpoint ID\n     * @param update The risk parameter update payload to send\n     * @param options LayerZero message options; if empty, a default executor option is used\n     * @param fee Messaging fee structure returned by `quote`\n     * @param refundAddress Address to receive any surplus fee refunds\n     * @custom:error InvalidLzSendCaller if called by any address other than this contract\n     */\n    function lzSend(\n        uint32 dstEid,\n        RiskParameterUpdate memory update,\n        bytes memory options,\n        MessagingFee memory fee,\n        address refundAddress\n    ) public payable {\n        if (msg.sender != address(this)) {\n            revert InvalidLzSendCaller();\n        }\n\n        bytes memory payload = abi.encode(update);\n        _lzSend(dstEid, payload, options, fee, refundAddress);\n    }\n\n    /**\n     * @dev Overrides OwnableUpgradeable and Ownable2StepUpgradeable to resolve\n     *      the multiple inheritance ownership transfer conflict.\n     */\n    function transferOwnership(\n        address newOwner\n    ) public override(OwnableUpgradeable, Ownable2StepUpgradeable) onlyOwner {\n        Ownable2StepUpgradeable.transferOwnership(newOwner);\n    }\n\n    /**\n     * @dev Internal hook to finalize ownership transfer, resolving the\n     *      OwnableUpgradeable and Ownable2StepUpgradeable inheritance conflict.\n     */\n    function _transferOwnership(address newOwner) internal override(OwnableUpgradeable, Ownable2StepUpgradeable) {\n        Ownable2StepUpgradeable._transferOwnership(newOwner);\n    }\n\n    /**\n     * @notice Registers an update from the Risk Oracle with a timelock.\n     * @param update The risk parameter update from the Risk Oracle to register\n     * @param config The risk parameter configuration for this update type containing timelock\n     * @param useImmediateUnlock Whether to unlock the update immediately or use timelock\n     * @custom:event Emits UpdateRegistered with the oracle update ID, unlock time, update type, and market\n     */\n    function _registerUpdate(\n        RiskParameterUpdate memory update,\n        RiskParamConfig memory config,\n        bool useImmediateUnlock\n    ) internal {\n        uint256 updateId = update.updateId;\n        uint256 unlockTime = useImmediateUnlock ? block.timestamp : block.timestamp + config.timelock;\n\n        updates[updateId] = RegisteredUpdate({\n            updateId: updateId,\n            unlockTime: unlockTime,\n            status: UpdateStatus.Pending,\n            executor: address(0),\n            executedAt: 0\n        });\n\n        lastRegisteredUpdate[update.updateTypeKey][update.market] = updateId;\n        emit UpdateRegistered(updateId, unlockTime, update.updateType, update.market);\n    }\n\n    /**\n     * @notice Executes a validated update via the risk steward and records its execution metadata.\n     *         Updates the registered update storage, last processed tracking, and emits the execution event.\n     *         Preserves the unlockTime that was set during registration.\n     * @param update The risk parameter update to execute\n     * @param steward The risk steward contract that will process the update\n     * @custom:event Emits UpdateExecuted with the oracle update ID\n     */\n    function _executeUpdate(RiskParameterUpdate memory update, IRiskSteward steward) internal {\n        uint256 updateId = update.updateId;\n        uint256 timestamp = block.timestamp;\n        RegisteredUpdate storage registeredUpdate = updates[updateId];\n\n        registeredUpdate.status = UpdateStatus.Executed;\n        registeredUpdate.executor = address(msg.sender);\n        registeredUpdate.executedAt = timestamp;\n        lastProcessedUpdate[update.updateTypeKey][update.market] = updateId;\n\n        steward.applyUpdate(update);\n        emit UpdateExecuted(updateId);\n    }\n\n    /**\n     * @notice Sends a risk parameter update to a destination chain via LayerZero and records it as sent.\n     *         The update should already be registered before calling this function.\n     * @param update The risk parameter update to send to the destination chain\n     * @param options LayerZero message options; if empty, default executor option is used\n     * @param nativeFee Native tokens supplied to cover the bridge fee (0 to use the quoted amount)\n     * @custom:event Emits UpdateSentToDestination with the update ID, destination endpoint ID, update type, and market\n     */\n    function _sendRemoteUpdate(RiskParameterUpdate memory update, bytes memory options, uint256 nativeFee) internal {\n        bytes memory option = options.length == 0\n            ? OptionsBuilder.newOptions().addExecutorLzReceiveOption(1_000_000, 0)\n            : options;\n\n        MessagingFee memory fee;\n\n        if (nativeFee == 0) {\n            fee = quote(update, option, false);\n        } else {\n            fee = MessagingFee(nativeFee, 0);\n        }\n\n        this.lzSend{ value: fee.nativeFee }(update.destLzEid, update, option, fee, address(this));\n\n        RegisteredUpdate storage registeredUpdate = updates[update.updateId];\n        registeredUpdate.status = UpdateStatus.SENT_TO_DESTINATION;\n        registeredUpdate.executor = address(msg.sender);\n        registeredUpdate.executedAt = block.timestamp;\n\n        bytes32 updateTypeKey = update.updateTypeKey;\n        lastProcessedUpdate[updateTypeKey][update.market] = update.updateId;\n\n        emit UpdateSentToDestination(update.updateId, update.destLzEid, update.updateType, update.market);\n    }\n\n    /**\n     * @notice Ensures there is no other pending registered update of the same type for the same market.\n     *         If a pending update exists and is expired, it is marked as expired and a new update can proceed.\n     *         If a pending update exists and is not expired, the call reverts to prevent overlapping updates.\n     * @param update The risk parameter update being registered\n     * @custom:event Emits UpdateExpired with the ID of the previously pending update if it is found to be expired\n     * @custom:error RegisteredUpdateTypeExist if there is a non‑expired pending update of the same type for the market\n     */\n    function _ensureNoActiveUpdate(RiskParameterUpdate memory update) internal {\n        uint256 registeredUpdateId = lastRegisteredUpdate[update.updateTypeKey][update.market];\n        if (registeredUpdateId == 0) return; // no prior update of this type for this market\n\n        RegisteredUpdate storage existing = updates[registeredUpdateId];\n        if (existing.status != UpdateStatus.Pending) return;\n\n        // Check expiration\n        RiskParameterUpdate memory existingUpdate = RISK_ORACLE.getUpdateById(registeredUpdateId);\n        bool expired = existingUpdate.timestamp + UPDATE_EXPIRATION_TIME < block.timestamp;\n\n        if (expired) {\n            existing.status = UpdateStatus.Expired;\n            emit UpdateExpired(registeredUpdateId);\n            return;\n        }\n\n        // If still pending & not expired reject new update\n        revert RegisteredUpdateTypeExist(registeredUpdateId);\n    }\n\n    /**\n     * @notice Validates an oracle update before registration.\n     * @param update The risk parameter update to validate\n     * @param config The configuration for this update type\n     * @param isRemoteUpdate Whether the update is destined for a remote chain\n     * @custom:error UpdateAlreadyResolved if the update was already registered\n     * @custom:error ConfigNotActive if the configuration for the update type is not active\n     * @custom:error UpdateIsExpired if the update has expired or is not the latest for the given market and type\n     * @custom:error UpdateWillExpireBeforeUnlock if the update will expire before its timelock unlocks\n     * @custom:error UpdateTooFrequent if the debounce period has not passed for the given market and type (only for local updates)\n     */\n    function _validateRegisterUpdate(\n        RiskParameterUpdate memory update,\n        RiskParamConfig storage config,\n        bool isRemoteUpdate\n    ) internal view {\n        // Check if this update was already registered\n        if (updates[update.updateId].status != UpdateStatus.None) {\n            revert UpdateAlreadyResolved();\n        }\n\n        // Check if config is active\n        if (!config.active) {\n            revert ConfigNotActive();\n        }\n\n        // Check if this is the latest update for this market and type\n        uint256 latestUpdateIdForMarketAndType = RISK_ORACLE.getLatestUpdateIdByTypeAndMarket(\n            update.updateType,\n            update.market\n        );\n        if (latestUpdateIdForMarketAndType != update.updateId) {\n            revert UpdateIsExpired();\n        }\n\n        uint256 currentTime = block.timestamp;\n        uint256 expirationTime = update.timestamp + UPDATE_EXPIRATION_TIME;\n\n        // Check expiration\n        if (expirationTime < currentTime) {\n            revert UpdateIsExpired();\n        }\n\n        // Check if update will still be valid when timelock unlocks\n        if (expirationTime < currentTime + config.timelock) {\n            revert UpdateWillExpireBeforeUnlock();\n        }\n\n        // Check debounce (only for local updates)\n        if (!isRemoteUpdate) {\n            uint256 lastProcessedId = lastProcessedUpdate[update.updateTypeKey][update.market];\n            uint256 lastExecutionTime = updates[lastProcessedId].executedAt;\n            if (lastExecutionTime != 0 && (lastExecutionTime + config.debounce > currentTime)) {\n                revert UpdateTooFrequent();\n            }\n        }\n    }\n\n    /**\n     * @notice Validates a registered update before execution.\n     * @param registeredUpdate The stored registered update metadata\n     * @param update The risk parameter update fetched from the oracle\n     * @param config The configuration for this update type\n     * @custom:error ConfigNotActive if the configuration for the update type is not active\n     * @custom:error InvalidRegisteredUpdate if the update was never registered\n     * @custom:error UpdateAlreadyResolved if the update was already executed or rejected\n     * @custom:error UpdateIsExpired if the update has expired\n     * @custom:error UpdateNotUnlocked if the unlock time has not passed\n     */\n    function _validateExecuteUpdate(\n        RegisteredUpdate storage registeredUpdate,\n        RiskParameterUpdate memory update,\n        RiskParamConfig storage config\n    ) internal view {\n        if (!config.active) {\n            revert ConfigNotActive();\n        }\n\n        if (registeredUpdate.status == UpdateStatus.None) {\n            revert InvalidRegisteredUpdate();\n        }\n\n        if (registeredUpdate.status != UpdateStatus.Pending) {\n            revert UpdateAlreadyResolved();\n        }\n\n        if (update.timestamp + UPDATE_EXPIRATION_TIME < block.timestamp) {\n            revert UpdateIsExpired();\n        }\n\n        if (block.timestamp < registeredUpdate.unlockTime) {\n            revert UpdateNotUnlocked();\n        }\n    }\n\n    /**\n     * @notice Checks if an update has completed all conditions to be executed.\n     * @param updateId The oracle update ID to query\n     * @return True if the update is pending, not expired, active, and past its timelock\n     */\n    function _isUpdateExecutable(uint256 updateId) internal view returns (bool) {\n        RegisteredUpdate storage registeredUpdate = updates[updateId];\n        if (registeredUpdate.status != UpdateStatus.Pending) {\n            return false;\n        }\n\n        RiskParameterUpdate memory update = RISK_ORACLE.getUpdateById(updateId);\n        RiskParamConfig storage config = riskParameterConfigs[update.updateTypeKey];\n\n        if (!config.active) {\n            return false;\n        }\n\n        // Check expiration\n        if (update.timestamp + UPDATE_EXPIRATION_TIME < block.timestamp) {\n            return false;\n        }\n\n        // Check UnlockTime\n        return block.timestamp >= registeredUpdate.unlockTime;\n    }\n\n    /**\n     * @notice Disables renounceOwnership function\n     * @custom:error Throws RenounceOwnershipNotAllowed\n     */\n    function renounceOwnership() public pure override {\n        revert RenounceOwnershipNotAllowed();\n    }\n}\n"},"contracts/test/MockAccessTest.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport \"../Governance/AccessControlledV8.sol\";\nimport \"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol\";\n\ncontract MockAccessTest is AccessControlledV8 {\n    /**\n     * @param accessControlManager Access control manager contract address\n     */\n    function initialize(address accessControlManager) external initializer {\n        __AccessControlled_init(accessControlManager);\n    }\n}\n"},"contracts/test/MockComptroller.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport { ICorePoolVToken } from \"../interfaces/ICorePoolVToken.sol\";\n\ncontract MockComptroller {\n    /// @notice Mapping of vToken addresses to their supply caps\n    mapping(address => uint256) public supplyCaps;\n\n    /// @notice Mapping of vToken addresses to their borrow caps\n    mapping(address => uint256) public borrowCaps;\n\n    /// @notice Array of all vTokens\n    ICorePoolVToken[] public allVTokens;\n\n    /// @notice Mapping of vToken addresses to boolean indicating if they are listed\n    mapping(address => bool) public vTokenListed;\n\n    /// @notice Mapping of vToken addresses to their collateral factors\n    mapping(address => uint256) internal _collateralFactorMantissa;\n\n    /// @notice Mapping of vToken addresses to their liquidation thresholds\n    mapping(address => uint256) internal _liquidationThresholdMantissa;\n\n    /**\n     * @notice Add a new vToken to be tracked\n     * @param vToken The vToken to add\n     */\n    function supportMarket(address vToken) external {\n        require(!vTokenListed[vToken], \"vToken already listed\");\n        vTokenListed[address(vToken)] = true;\n        allVTokens.push(ICorePoolVToken(vToken));\n    }\n\n    /**\n     * @notice Set the supply cap for a vToken\n     * @param vTokens The vToken addresses\n     * @param newCaps The new supply caps\n     */\n    function setMarketSupplyCaps(address[] calldata vTokens, uint256[] calldata newCaps) external {\n        uint256 numMarkets = vTokens.length;\n        uint256 numSupplyCaps = newCaps.length;\n\n        require(numMarkets != 0 && numMarkets == numSupplyCaps, \"invalid input\");\n\n        for (uint256 i; i < numMarkets; ++i) {\n            require(vTokenListed[vTokens[i]], \"vToken not listed\");\n            supplyCaps[address(vTokens[i])] = newCaps[i];\n        }\n    }\n\n    /**\n     * @notice Set the borrow cap for a vToken\n     * @param vTokens The vToken addresses\n     * @param newCaps The new borrow caps\n     */\n    function setMarketBorrowCaps(address[] calldata vTokens, uint256[] calldata newCaps) external {\n        uint256 numMarkets = vTokens.length;\n        uint256 numBorrowCaps = newCaps.length;\n\n        require(numMarkets != 0 && numMarkets == numBorrowCaps, \"invalid input\");\n\n        for (uint256 i; i < numMarkets; ++i) {\n            require(vTokenListed[vTokens[i]], \"vToken not listed\");\n            borrowCaps[address(vTokens[i])] = newCaps[i];\n        }\n    }\n\n    /**\n     * @notice Get all vTokens\n     * @return Array of vToken addresses\n     */\n    function getAllMarkets() external view returns (address[] memory) {\n        address[] memory markets = new address[](allVTokens.length);\n        for (uint256 i = 0; i < allVTokens.length; i++) {\n            markets[i] = address(allVTokens[i]);\n        }\n        return markets;\n    }\n\n    /**\n     * @notice Set the collateral factor and liquidation threshold for a vToken\n     * @param vToken The vToken address\n     * @param newCollateralFactorMantissa The new collateral factor mantissa\n     * @param newLiquidationThresholdMantissa The new liquidation threshold mantissa\n     */\n    function setCollateralFactor(\n        address vToken,\n        uint256 newCollateralFactorMantissa,\n        uint256 newLiquidationThresholdMantissa\n    ) external {\n        require(vTokenListed[vToken], \"vToken not listed\");\n        _collateralFactorMantissa[vToken] = newCollateralFactorMantissa;\n        _liquidationThresholdMantissa[vToken] = newLiquidationThresholdMantissa;\n    }\n\n    /**\n     * @notice Get market information for a vToken\n     * @param vToken The vToken address\n     * @return isListed Whether the vToken is listed\n     * @return collateralFactorMantissa The collateral factor mantissa\n     * @return liquidationThresholdMantissa The liquidation threshold mantissa\n     */\n    function markets(\n        address vToken\n    ) external view returns (bool isListed, uint256 collateralFactorMantissa, uint256 liquidationThresholdMantissa) {\n        isListed = vTokenListed[vToken];\n        collateralFactorMantissa = _collateralFactorMantissa[vToken];\n        liquidationThresholdMantissa = _liquidationThresholdMantissa[vToken];\n    }\n}\n"},"contracts/test/MockCoreComptroller.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport { ICorePoolVToken } from \"../interfaces/ICorePoolVToken.sol\";\n\ncontract MockCoreComptroller {\n    /// @notice Mapping of vToken addresses to their supply caps\n    mapping(address => uint256) public supplyCaps;\n\n    /// @notice Mapping of vToken addresses to their borrow caps\n    mapping(address => uint256) public borrowCaps;\n\n    /// @notice Mapping of vToken addresses to their collateral factors (poolId 0 = regular market)\n    mapping(address => uint256) internal _collateralFactorMantissa;\n\n    /// @notice Mapping of vToken addresses to their liquidation thresholds (poolId 0 = regular market)\n    mapping(address => uint256) internal _liquidationThresholdMantissa;\n\n    /// @notice Mapping of (poolId, vToken) to eMode collateral factors\n    mapping(uint96 => mapping(address => uint256)) internal _eModeCollateralFactorMantissa;\n\n    /// @notice Mapping of (poolId, vToken) to eMode liquidation thresholds\n    mapping(uint96 => mapping(address => uint256)) internal _eModeLiquidationThresholdMantissa;\n\n    /// @notice Array of all vTokens\n    ICorePoolVToken[] public allVTokens;\n\n    /// @notice Mapping of vToken addresses to boolean indicating if they are listed\n    mapping(address => bool) public vTokenListed;\n\n    /**\n     * @notice Add a new vToken to be tracked\n     * @param vToken The vToken to add\n     */\n    function supportMarket(address vToken) external {\n        require(!vTokenListed[vToken], \"vToken already listed\");\n        vTokenListed[address(vToken)] = true;\n        allVTokens.push(ICorePoolVToken(vToken));\n    }\n\n    /**\n     * @notice Set the supply cap for a vToken\n     * @param vTokens The vToken addresses\n     * @param newCaps The new supply caps\n     */\n    function setMarketSupplyCaps(address[] calldata vTokens, uint256[] calldata newCaps) external {\n        uint256 numMarkets = vTokens.length;\n        uint256 numSupplyCaps = newCaps.length;\n\n        require(numMarkets != 0 && numMarkets == numSupplyCaps, \"invalid input\");\n\n        for (uint256 i; i < numMarkets; ++i) {\n            require(vTokenListed[vTokens[i]], \"vToken not listed\");\n            supplyCaps[address(vTokens[i])] = newCaps[i];\n        }\n    }\n\n    /**\n     * @notice Set the borrow cap for a vToken\n     * @param vTokens The vToken addresses\n     * @param newCaps The new borrow caps\n     */\n    function setMarketBorrowCaps(address[] calldata vTokens, uint256[] calldata newCaps) external {\n        uint256 numMarkets = vTokens.length;\n        uint256 numBorrowCaps = newCaps.length;\n\n        require(numMarkets != 0 && numMarkets == numBorrowCaps, \"invalid input\");\n\n        for (uint256 i; i < numMarkets; ++i) {\n            require(vTokenListed[vTokens[i]], \"vToken not listed\");\n            borrowCaps[address(vTokens[i])] = newCaps[i];\n        }\n    }\n\n    /**\n     * @notice Set the collateral factor and liquidation threshold for a vToken\n     * @param poolId The pool ID (0 for regular markets, >0 for eMode groups)\n     * @param vToken The vToken address\n     * @param newCollateralFactorMantissa The new collateral factor\n     * @param newLiquidationThresholdMantissa The new liquidation threshold\n     * @return Always returns 0\n     */\n    function setCollateralFactor(\n        uint96 poolId,\n        address vToken,\n        uint256 newCollateralFactorMantissa,\n        uint256 newLiquidationThresholdMantissa\n    ) external returns (uint256) {\n        require(vTokenListed[vToken], \"vToken not listed\");\n        if (poolId == 0) {\n            _collateralFactorMantissa[vToken] = newCollateralFactorMantissa;\n            _liquidationThresholdMantissa[vToken] = newLiquidationThresholdMantissa;\n        } else {\n            _eModeCollateralFactorMantissa[poolId][vToken] = newCollateralFactorMantissa;\n            _eModeLiquidationThresholdMantissa[poolId][vToken] = newLiquidationThresholdMantissa;\n        }\n        return 0;\n    }\n\n    /**\n     * @notice Get market information (for compatibility with ICorePoolComptroller interface)\n     * @param vToken The vToken address\n     * @return isListed Whether the market is listed\n     * @return collateralFactorMantissa The collateral factor\n     * @return isVenus Whether it's a Venus market\n     * @return liquidationThresholdMantissa The liquidation threshold\n     * @return liquidationIncentiveMantissa The liquidation incentive\n     * @return marketPoolId The pool ID\n     * @return isBorrowAllowed Whether borrowing is allowed\n     */\n    function markets(\n        address vToken\n    )\n        external\n        view\n        returns (\n            bool isListed,\n            uint256 collateralFactorMantissa,\n            bool isVenus,\n            uint256 liquidationThresholdMantissa,\n            uint256 liquidationIncentiveMantissa,\n            uint96 marketPoolId,\n            bool isBorrowAllowed\n        )\n    {\n        isListed = vTokenListed[vToken];\n        collateralFactorMantissa = _collateralFactorMantissa[vToken];\n        isVenus = false;\n        liquidationThresholdMantissa = _liquidationThresholdMantissa[vToken];\n        liquidationIncentiveMantissa = 0;\n        marketPoolId = 0;\n        isBorrowAllowed = true;\n    }\n\n    /**\n     * @notice Get eMode pool market information (for compatibility with ICorePoolComptroller interface)\n     * @param poolId The eMode pool ID\n     * @param vToken The vToken address\n     * @return isListed Whether the market is listed\n     * @return collateralFactorMantissa The collateral factor\n     * @return isVenus Whether it's a Venus market\n     * @return liquidationThresholdMantissa The liquidation threshold\n     * @return liquidationIncentiveMantissa The liquidation incentive\n     * @return marketPoolId The pool ID\n     * @return isBorrowAllowed Whether borrowing is allowed\n     */\n    function poolMarkets(\n        uint96 poolId,\n        address vToken\n    )\n        external\n        view\n        returns (\n            bool isListed,\n            uint256 collateralFactorMantissa,\n            bool isVenus,\n            uint256 liquidationThresholdMantissa,\n            uint256 liquidationIncentiveMantissa,\n            uint96 marketPoolId,\n            bool isBorrowAllowed\n        )\n    {\n        isListed = vTokenListed[vToken];\n        collateralFactorMantissa = _eModeCollateralFactorMantissa[poolId][vToken];\n        isVenus = false;\n        liquidationThresholdMantissa = _eModeLiquidationThresholdMantissa[poolId][vToken];\n        liquidationIncentiveMantissa = 0;\n        marketPoolId = poolId;\n        isBorrowAllowed = true;\n    }\n\n    /**\n     * @notice Get all vTokens\n     * @return Array of vToken addresses\n     */\n    function getAllMarkets() external view returns (ICorePoolVToken[] memory) {\n        return allVTokens;\n    }\n}\n"},"contracts/test/MockVToken.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport { InterestRateModel } from \"@venusprotocol/isolated-pools/contracts/InterestRateModel.sol\";\nimport { InterestRateModelV8 } from \"@venusprotocol/venus-protocol/contracts/InterestRateModels/InterestRateModelV8.sol\";\n\ninterface IVToken {\n    function comptroller() external view returns (address);\n}\n\ncontract MockVToken is IVToken {\n    address public override comptroller;\n    address public interestRateModel;\n\n    constructor(address _comptroller) {\n        comptroller = _comptroller;\n    }\n\n    function setInterestRateModel(InterestRateModel newInterestRateModel) external {\n        interestRateModel = address(newInterestRateModel);\n    }\n\n    function _setInterestRateModel(InterestRateModelV8 newInterestRateModel) external returns (uint) {\n        interestRateModel = address(newInterestRateModel);\n        return 0;\n    }\n}\n"},"contracts/test/MockXVSVault.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\ncontract MockXVSVault {\n    /* solhint-disable no-unused-vars */\n    function getPriorVotes(address account, uint256 blockNumber) external view returns (uint96) {\n        /* solhint-enable no-unused-vars */\n        return 0;\n    }\n}\n"},"contracts/test/TestTimelockV8.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\nimport { TimelockV8 } from \"../Governance/TimelockV8.sol\";\n\ncontract TestTimelockV8 is TimelockV8 {\n    constructor(address admin_, uint256 delay_) public TimelockV8(admin_, delay_) {}\n\n    function GRACE_PERIOD() public view override returns (uint256) {\n        return 1 hours;\n    }\n\n    function MINIMUM_DELAY() public view override returns (uint256) {\n        return 1;\n    }\n\n    function MAXIMUM_DELAY() public view override returns (uint256) {\n        return 1 hours;\n    }\n}\n"},"contracts/Utils/ACMCommandsAggregator.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport { IAccessControlManagerV8 } from \"../Governance/IAccessControlManagerV8.sol\";\nimport { ensureNonzeroAddress } from \"@venusprotocol/solidity-utilities/contracts/validators.sol\";\n\n/**\n * @title ACMCommandsAggregator\n * @author Venus\n * @notice This contract is a helper to aggregate multiple grant and revoke permissions in batches and execute them in one go.\n */\ncontract ACMCommandsAggregator {\n    /*\n     * @notice Struct to store permission details\n     */\n    struct Permission {\n        /*\n         * @notice Address of the contract\n         */\n        address contractAddress;\n        /*\n         * @notice Function signature\n         */\n        string functionSig;\n        /*\n         * @notice Address of the account\n         */\n        address account;\n    }\n\n    /**\n     * @notice Access control manager contract\n     */\n    IAccessControlManagerV8 public immutable ACM;\n\n    /*\n     * @notice 2D array to store grant permissions in batches\n     */\n    Permission[][] public grantPermissions;\n\n    /*\n     * @notice 2D array to store revoke permissions in batches\n     */\n    Permission[][] public revokePermissions;\n\n    /*\n     * @notice Event emitted when grant permissions are added\n     */\n    event GrantPermissionsAdded(uint256 index);\n\n    /*\n     * @notice Event emitted when revoke permissions are added\n     */\n    event RevokePermissionsAdded(uint256 index);\n\n    /*\n     * @notice Event emitted when grant permissions are executed\n     */\n    event GrantPermissionsExecuted(uint256 index);\n\n    /*\n     * @notice Event emitted when revoke permissions are executed\n     */\n    event RevokePermissionsExecuted(uint256 index);\n\n    /*\n     * @notice Error to be thrown when permissions are empty\n     */\n    error EmptyPermissions();\n\n    /*\n     * @notice Constructor to set the access control manager\n     * @param _acm Address of the access control manager\n     */\n    constructor(IAccessControlManagerV8 _acm) {\n        ensureNonzeroAddress(address(_acm));\n        ACM = _acm;\n    }\n\n    /*\n     * @notice Function to add grant permissions\n     * @param _permissions Array of permissions\n     * @custom:event Emits GrantPermissionsAdded event\n     */\n    function addGrantPermissions(Permission[] memory _permissions) external {\n        if (_permissions.length == 0) {\n            revert EmptyPermissions();\n        }\n\n        uint256 index = grantPermissions.length;\n        grantPermissions.push();\n\n        for (uint256 i; i < _permissions.length; ++i) {\n            grantPermissions[index].push(\n                Permission(_permissions[i].contractAddress, _permissions[i].functionSig, _permissions[i].account)\n            );\n        }\n\n        emit GrantPermissionsAdded(index);\n    }\n\n    /*\n     * @notice Function to add revoke permissions\n     * @param _permissions Array of permissions\n     * @custom:event Emits RevokePermissionsAdded event\n     */\n    function addRevokePermissions(Permission[] memory _permissions) external {\n        if (_permissions.length == 0) {\n            revert EmptyPermissions();\n        }\n\n        uint256 index = revokePermissions.length;\n        revokePermissions.push();\n\n        for (uint256 i; i < _permissions.length; ++i) {\n            revokePermissions[index].push(\n                Permission(_permissions[i].contractAddress, _permissions[i].functionSig, _permissions[i].account)\n            );\n        }\n\n        emit RevokePermissionsAdded(index);\n    }\n\n    /*\n     * @notice Function to execute grant permissions\n     * @param index Index of the permissions array\n     * @custom:event Emits GrantPermissionsExecuted event\n     */\n    function executeGrantPermissions(uint256 index) external {\n        uint256 length = grantPermissions[index].length;\n        for (uint256 i; i < length; ++i) {\n            Permission memory permission = grantPermissions[index][i];\n            ACM.giveCallPermission(permission.contractAddress, permission.functionSig, permission.account);\n        }\n\n        emit GrantPermissionsExecuted(index);\n    }\n\n    /*\n     * @notice Function to execute revoke permissions\n     * @param index Index of the permissions array\n     * @custom:event Emits RevokePermissionsExecuted event\n     */\n    function executeRevokePermissions(uint256 index) external {\n        uint256 length = revokePermissions[index].length;\n        for (uint256 i; i < length; ++i) {\n            Permission memory permission = revokePermissions[index][i];\n            ACM.revokeCallPermission(permission.contractAddress, permission.functionSig, permission.account);\n        }\n\n        emit RevokePermissionsExecuted(index);\n    }\n}\n"},"hardhat-deploy/solc_0.8/openzeppelin/access/Ownable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../utils/Context.sol\";\n\n/**\n * @dev Contract module which provides a basic access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * By default, the owner account will be the one that deploys the contract. This\n * can later be changed with {transferOwnership}.\n *\n * This module is used through inheritance. It will make available the modifier\n * `onlyOwner`, which can be applied to your functions to restrict their use to\n * the owner.\n */\nabstract contract Ownable is Context {\n    address private _owner;\n\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n    /**\n     * @dev Initializes the contract setting the deployer as the initial owner.\n     */\n    constructor (address initialOwner) {\n        _transferOwnership(initialOwner);\n    }\n\n    /**\n     * @dev Returns the address of the current owner.\n     */\n    function owner() public view virtual returns (address) {\n        return _owner;\n    }\n\n    /**\n     * @dev Throws if called by any account other than the owner.\n     */\n    modifier onlyOwner() {\n        require(owner() == _msgSender(), \"Ownable: caller is not the owner\");\n        _;\n    }\n\n    /**\n     * @dev Leaves the contract without owner. It will not be possible to call\n     * `onlyOwner` functions anymore. Can only be called by the current owner.\n     *\n     * NOTE: Renouncing ownership will leave the contract without an owner,\n     * thereby removing any functionality that is only available to the owner.\n     */\n    function renounceOwnership() public virtual onlyOwner {\n        _transferOwnership(address(0));\n    }\n\n    /**\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\n     * Can only be called by the current owner.\n     */\n    function transferOwnership(address newOwner) public virtual onlyOwner {\n        require(newOwner != address(0), \"Ownable: new owner is the zero address\");\n        _transferOwnership(newOwner);\n    }\n\n    /**\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\n     * Internal function without access restriction.\n     */\n    function _transferOwnership(address newOwner) internal virtual {\n        address oldOwner = _owner;\n        _owner = newOwner;\n        emit OwnershipTransferred(oldOwner, newOwner);\n    }\n}\n"},"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (interfaces/draft-IERC1822.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified\n * proxy whose upgrades are fully controlled by the current implementation.\n */\ninterface IERC1822Proxiable {\n    /**\n     * @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation\n     * address.\n     *\n     * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\n     * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\n     * function revert if invoked through a proxy.\n     */\n    function proxiableUUID() external view returns (bytes32);\n}\n"},"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (proxy/beacon/IBeacon.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev This is the interface that {BeaconProxy} expects of its beacon.\n */\ninterface IBeacon {\n    /**\n     * @dev Must return an address that can be used as a delegate call target.\n     *\n     * {BeaconProxy} will check that this address is a contract.\n     */\n    function implementation() external view returns (address);\n}\n"},"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (proxy/ERC1967/ERC1967Proxy.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../Proxy.sol\";\nimport \"./ERC1967Upgrade.sol\";\n\n/**\n * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\n * implementation address that can be changed. This address is stored in storage in the location specified by\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the\n * implementation behind the proxy.\n */\ncontract ERC1967Proxy is Proxy, ERC1967Upgrade {\n    /**\n     * @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`.\n     *\n     * If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded\n     * function call, and allows initializating the storage of the proxy like a Solidity constructor.\n     */\n    constructor(address _logic, bytes memory _data) payable {\n        assert(_IMPLEMENTATION_SLOT == bytes32(uint256(keccak256(\"eip1967.proxy.implementation\")) - 1));\n        _upgradeToAndCall(_logic, _data, false);\n    }\n\n    /**\n     * @dev Returns the current implementation address.\n     */\n    function _implementation() internal view virtual override returns (address impl) {\n        return ERC1967Upgrade._getImplementation();\n    }\n}\n"},"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (proxy/ERC1967/ERC1967Upgrade.sol)\n\npragma solidity ^0.8.2;\n\nimport \"../beacon/IBeacon.sol\";\nimport \"../../interfaces/draft-IERC1822.sol\";\nimport \"../../utils/Address.sol\";\nimport \"../../utils/StorageSlot.sol\";\n\n/**\n * @dev This abstract contract provides getters and event emitting update functions for\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.\n *\n * _Available since v4.1._\n *\n * @custom:oz-upgrades-unsafe-allow delegatecall\n */\nabstract contract ERC1967Upgrade {\n    // This is the keccak-256 hash of \"eip1967.proxy.rollback\" subtracted by 1\n    bytes32 private constant _ROLLBACK_SLOT = 0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143;\n\n    /**\n     * @dev Storage slot with the address of the current implementation.\n     * This is the keccak-256 hash of \"eip1967.proxy.implementation\" subtracted by 1, and is\n     * validated in the constructor.\n     */\n    bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n\n    /**\n     * @dev Emitted when the implementation is upgraded.\n     */\n    event Upgraded(address indexed implementation);\n\n    /**\n     * @dev Returns the current implementation address.\n     */\n    function _getImplementation() internal view returns (address) {\n        return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n    }\n\n    /**\n     * @dev Stores a new address in the EIP1967 implementation slot.\n     */\n    function _setImplementation(address newImplementation) private {\n        require(Address.isContract(newImplementation), \"ERC1967: new implementation is not a contract\");\n        StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n    }\n\n    /**\n     * @dev Perform implementation upgrade\n     *\n     * Emits an {Upgraded} event.\n     */\n    function _upgradeTo(address newImplementation) internal {\n        _setImplementation(newImplementation);\n        emit Upgraded(newImplementation);\n    }\n\n    /**\n     * @dev Perform implementation upgrade with additional setup call.\n     *\n     * Emits an {Upgraded} event.\n     */\n    function _upgradeToAndCall(\n        address newImplementation,\n        bytes memory data,\n        bool forceCall\n    ) internal {\n        _upgradeTo(newImplementation);\n        if (data.length > 0 || forceCall) {\n            Address.functionDelegateCall(newImplementation, data);\n        }\n    }\n\n    /**\n     * @dev Perform implementation upgrade with security checks for UUPS proxies, and additional setup call.\n     *\n     * Emits an {Upgraded} event.\n     */\n    function _upgradeToAndCallUUPS(\n        address newImplementation,\n        bytes memory data,\n        bool forceCall\n    ) internal {\n        // Upgrades from old implementations will perform a rollback test. This test requires the new\n        // implementation to upgrade back to the old, non-ERC1822 compliant, implementation. Removing\n        // this special case will break upgrade paths from old UUPS implementation to new ones.\n        if (StorageSlot.getBooleanSlot(_ROLLBACK_SLOT).value) {\n            _setImplementation(newImplementation);\n        } else {\n            try IERC1822Proxiable(newImplementation).proxiableUUID() returns (bytes32 slot) {\n                require(slot == _IMPLEMENTATION_SLOT, \"ERC1967Upgrade: unsupported proxiableUUID\");\n            } catch {\n                revert(\"ERC1967Upgrade: new implementation is not UUPS\");\n            }\n            _upgradeToAndCall(newImplementation, data, forceCall);\n        }\n    }\n\n    /**\n     * @dev Storage slot with the admin of the contract.\n     * This is the keccak-256 hash of \"eip1967.proxy.admin\" subtracted by 1, and is\n     * validated in the constructor.\n     */\n    bytes32 internal constant _ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;\n\n    /**\n     * @dev Emitted when the admin account has changed.\n     */\n    event AdminChanged(address previousAdmin, address newAdmin);\n\n    /**\n     * @dev Returns the current admin.\n     */\n    function _getAdmin() internal view virtual returns (address) {\n        return StorageSlot.getAddressSlot(_ADMIN_SLOT).value;\n    }\n\n    /**\n     * @dev Stores a new address in the EIP1967 admin slot.\n     */\n    function _setAdmin(address newAdmin) private {\n        require(newAdmin != address(0), \"ERC1967: new admin is the zero address\");\n        StorageSlot.getAddressSlot(_ADMIN_SLOT).value = newAdmin;\n    }\n\n    /**\n     * @dev Changes the admin of the proxy.\n     *\n     * Emits an {AdminChanged} event.\n     */\n    function _changeAdmin(address newAdmin) internal {\n        emit AdminChanged(_getAdmin(), newAdmin);\n        _setAdmin(newAdmin);\n    }\n\n    /**\n     * @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\n     * This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor.\n     */\n    bytes32 internal constant _BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50;\n\n    /**\n     * @dev Emitted when the beacon is upgraded.\n     */\n    event BeaconUpgraded(address indexed beacon);\n\n    /**\n     * @dev Returns the current beacon.\n     */\n    function _getBeacon() internal view returns (address) {\n        return StorageSlot.getAddressSlot(_BEACON_SLOT).value;\n    }\n\n    /**\n     * @dev Stores a new beacon in the EIP1967 beacon slot.\n     */\n    function _setBeacon(address newBeacon) private {\n        require(Address.isContract(newBeacon), \"ERC1967: new beacon is not a contract\");\n        require(Address.isContract(IBeacon(newBeacon).implementation()), \"ERC1967: beacon implementation is not a contract\");\n        StorageSlot.getAddressSlot(_BEACON_SLOT).value = newBeacon;\n    }\n\n    /**\n     * @dev Perform beacon upgrade with additional setup call. Note: This upgrades the address of the beacon, it does\n     * not upgrade the implementation contained in the beacon (see {UpgradeableBeacon-_setImplementation} for that).\n     *\n     * Emits a {BeaconUpgraded} event.\n     */\n    function _upgradeBeaconToAndCall(\n        address newBeacon,\n        bytes memory data,\n        bool forceCall\n    ) internal {\n        _setBeacon(newBeacon);\n        emit BeaconUpgraded(newBeacon);\n        if (data.length > 0 || forceCall) {\n            Address.functionDelegateCall(IBeacon(newBeacon).implementation(), data);\n        }\n    }\n}\n"},"hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (proxy/Proxy.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM\n * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to\n * be specified by overriding the virtual {_implementation} function.\n *\n * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a\n * different contract through the {_delegate} function.\n *\n * The success and return data of the delegated call will be returned back to the caller of the proxy.\n */\nabstract contract Proxy {\n    /**\n     * @dev Delegates the current call to `implementation`.\n     *\n     * This function does not return to its internal call site, it will return directly to the external caller.\n     */\n    function _delegate(address implementation) internal virtual {\n        assembly {\n            // Copy msg.data. We take full control of memory in this inline assembly\n            // block because it will not return to Solidity code. We overwrite the\n            // Solidity scratch pad at memory position 0.\n            calldatacopy(0, 0, calldatasize())\n\n            // Call the implementation.\n            // out and outsize are 0 because we don't know the size yet.\n            let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)\n\n            // Copy the returned data.\n            returndatacopy(0, 0, returndatasize())\n\n            switch result\n            // delegatecall returns 0 on error.\n            case 0 {\n                revert(0, returndatasize())\n            }\n            default {\n                return(0, returndatasize())\n            }\n        }\n    }\n\n    /**\n     * @dev This is a virtual function that should be overriden so it returns the address to which the fallback function\n     * and {_fallback} should delegate.\n     */\n    function _implementation() internal view virtual returns (address);\n\n    /**\n     * @dev Delegates the current call to the address returned by `_implementation()`.\n     *\n     * This function does not return to its internall call site, it will return directly to the external caller.\n     */\n    function _fallback() internal virtual {\n        _beforeFallback();\n        _delegate(_implementation());\n    }\n\n    /**\n     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other\n     * function in the contract matches the call data.\n     */\n    fallback() external payable virtual {\n        _fallback();\n    }\n\n    /**\n     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data\n     * is empty.\n     */\n    receive() external payable virtual {\n        _fallback();\n    }\n\n    /**\n     * @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback`\n     * call, or as part of the Solidity `fallback` or `receive` functions.\n     *\n     * If overriden should call `super._beforeFallback()`.\n     */\n    function _beforeFallback() internal virtual {}\n}\n"},"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (proxy/transparent/ProxyAdmin.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./TransparentUpgradeableProxy.sol\";\nimport \"../../access/Ownable.sol\";\n\n/**\n * @dev This is an auxiliary contract meant to be assigned as the admin of a {TransparentUpgradeableProxy}. For an\n * explanation of why you would want to use this see the documentation for {TransparentUpgradeableProxy}.\n */\ncontract ProxyAdmin is Ownable {\n\n    constructor (address initialOwner) Ownable(initialOwner) {}\n\n    /**\n     * @dev Returns the current implementation of `proxy`.\n     *\n     * Requirements:\n     *\n     * - This contract must be the admin of `proxy`.\n     */\n    function getProxyImplementation(TransparentUpgradeableProxy proxy) public view virtual returns (address) {\n        // We need to manually run the static call since the getter cannot be flagged as view\n        // bytes4(keccak256(\"implementation()\")) == 0x5c60da1b\n        (bool success, bytes memory returndata) = address(proxy).staticcall(hex\"5c60da1b\");\n        require(success);\n        return abi.decode(returndata, (address));\n    }\n\n    /**\n     * @dev Returns the current admin of `proxy`.\n     *\n     * Requirements:\n     *\n     * - This contract must be the admin of `proxy`.\n     */\n    function getProxyAdmin(TransparentUpgradeableProxy proxy) public view virtual returns (address) {\n        // We need to manually run the static call since the getter cannot be flagged as view\n        // bytes4(keccak256(\"admin()\")) == 0xf851a440\n        (bool success, bytes memory returndata) = address(proxy).staticcall(hex\"f851a440\");\n        require(success);\n        return abi.decode(returndata, (address));\n    }\n\n    /**\n     * @dev Changes the admin of `proxy` to `newAdmin`.\n     *\n     * Requirements:\n     *\n     * - This contract must be the current admin of `proxy`.\n     */\n    function changeProxyAdmin(TransparentUpgradeableProxy proxy, address newAdmin) public virtual onlyOwner {\n        proxy.changeAdmin(newAdmin);\n    }\n\n    /**\n     * @dev Upgrades `proxy` to `implementation`. See {TransparentUpgradeableProxy-upgradeTo}.\n     *\n     * Requirements:\n     *\n     * - This contract must be the admin of `proxy`.\n     */\n    function upgrade(TransparentUpgradeableProxy proxy, address implementation) public virtual onlyOwner {\n        proxy.upgradeTo(implementation);\n    }\n\n    /**\n     * @dev Upgrades `proxy` to `implementation` and calls a function on the new implementation. See\n     * {TransparentUpgradeableProxy-upgradeToAndCall}.\n     *\n     * Requirements:\n     *\n     * - This contract must be the admin of `proxy`.\n     */\n    function upgradeAndCall(\n        TransparentUpgradeableProxy proxy,\n        address implementation,\n        bytes memory data\n    ) public payable virtual onlyOwner {\n        proxy.upgradeToAndCall{value: msg.value}(implementation, data);\n    }\n}\n"},"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/TransparentUpgradeableProxy.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (proxy/transparent/TransparentUpgradeableProxy.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../ERC1967/ERC1967Proxy.sol\";\n\n/**\n * @dev This contract implements a proxy that is upgradeable by an admin.\n *\n * To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector\n * clashing], which can potentially be used in an attack, this contract uses the\n * https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two\n * things that go hand in hand:\n *\n * 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if\n * that call matches one of the admin functions exposed by the proxy itself.\n * 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the\n * implementation. If the admin tries to call a function on the implementation it will fail with an error that says\n * \"admin cannot fallback to proxy target\".\n *\n * These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing\n * the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due\n * to sudden errors when trying to call a function from the proxy implementation.\n *\n * Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way,\n * you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy.\n */\ncontract TransparentUpgradeableProxy is ERC1967Proxy {\n    /**\n     * @dev Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and\n     * optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}.\n     */\n    constructor(\n        address _logic,\n        address admin_,\n        bytes memory _data\n    ) payable ERC1967Proxy(_logic, _data) {\n        assert(_ADMIN_SLOT == bytes32(uint256(keccak256(\"eip1967.proxy.admin\")) - 1));\n        _changeAdmin(admin_);\n    }\n\n    /**\n     * @dev Modifier used internally that will delegate the call to the implementation unless the sender is the admin.\n     */\n    modifier ifAdmin() {\n        if (msg.sender == _getAdmin()) {\n            _;\n        } else {\n            _fallback();\n        }\n    }\n\n    /**\n     * @dev Returns the current admin.\n     *\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}.\n     *\n     * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\n     * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n     * `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`\n     */\n    function admin() external ifAdmin returns (address admin_) {\n        admin_ = _getAdmin();\n    }\n\n    /**\n     * @dev Returns the current implementation.\n     *\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}.\n     *\n     * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\n     * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n     * `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`\n     */\n    function implementation() external ifAdmin returns (address implementation_) {\n        implementation_ = _implementation();\n    }\n\n    /**\n     * @dev Changes the admin of the proxy.\n     *\n     * Emits an {AdminChanged} event.\n     *\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-changeProxyAdmin}.\n     */\n    function changeAdmin(address newAdmin) external virtual ifAdmin {\n        _changeAdmin(newAdmin);\n    }\n\n    /**\n     * @dev Upgrade the implementation of the proxy.\n     *\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}.\n     */\n    function upgradeTo(address newImplementation) external ifAdmin {\n        _upgradeToAndCall(newImplementation, bytes(\"\"), false);\n    }\n\n    /**\n     * @dev Upgrade the implementation of the proxy, and then call a function from the new implementation as specified\n     * by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the\n     * proxied contract.\n     *\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}.\n     */\n    function upgradeToAndCall(address newImplementation, bytes calldata data) external payable ifAdmin {\n        _upgradeToAndCall(newImplementation, data, true);\n    }\n\n    /**\n     * @dev Returns the current admin.\n     */\n    function _admin() internal view virtual returns (address) {\n        return _getAdmin();\n    }\n\n    /**\n     * @dev Makes sure the admin cannot access the fallback function. See {Proxy-_beforeFallback}.\n     */\n    function _beforeFallback() internal virtual override {\n        require(msg.sender != _getAdmin(), \"TransparentUpgradeableProxy: admin cannot fallback to proxy target\");\n        super._beforeFallback();\n    }\n}\n"},"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (utils/Address.sol)\n\npragma solidity ^0.8.1;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n    /**\n     * @dev Returns true if `account` is a contract.\n     *\n     * [IMPORTANT]\n     * ====\n     * It is unsafe to assume that an address for which this function returns\n     * false is an externally-owned account (EOA) and not a contract.\n     *\n     * Among others, `isContract` will return false for the following\n     * types of addresses:\n     *\n     *  - an externally-owned account\n     *  - a contract in construction\n     *  - an address where a contract will be created\n     *  - an address where a contract lived, but was destroyed\n     * ====\n     *\n     * [IMPORTANT]\n     * ====\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\n     *\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n     * constructor.\n     * ====\n     */\n    function isContract(address account) internal view returns (bool) {\n        // This method relies on extcodesize/address.code.length, which returns 0\n        // for contracts in construction, since the code is only stored at the end\n        // of the constructor execution.\n\n        return account.code.length > 0;\n    }\n\n    /**\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n     * `recipient`, forwarding all available gas and reverting on errors.\n     *\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\n     * imposed by `transfer`, making them unable to receive funds via\n     * `transfer`. {sendValue} removes this limitation.\n     *\n     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n     *\n     * IMPORTANT: because control is transferred to `recipient`, care must be\n     * taken to not create reentrancy vulnerabilities. Consider using\n     * {ReentrancyGuard} or the\n     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n     */\n    function sendValue(address payable recipient, uint256 amount) internal {\n        require(address(this).balance >= amount, \"Address: insufficient balance\");\n\n        (bool success, ) = recipient.call{value: amount}(\"\");\n        require(success, \"Address: unable to send value, recipient may have reverted\");\n    }\n\n    /**\n     * @dev Performs a Solidity function call using a low level `call`. A\n     * plain `call` is an unsafe replacement for a function call: use this\n     * function instead.\n     *\n     * If `target` reverts with a revert reason, it is bubbled up by this\n     * function (like regular Solidity function calls).\n     *\n     * Returns the raw returned data. To convert to the expected return value,\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n     *\n     * Requirements:\n     *\n     * - `target` must be a contract.\n     * - calling `target` with `data` must not revert.\n     *\n     * _Available since v3.1._\n     */\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n        return functionCall(target, data, \"Address: low-level call failed\");\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n     * `errorMessage` as a fallback revert reason when `target` reverts.\n     *\n     * _Available since v3.1._\n     */\n    function functionCall(\n        address target,\n        bytes memory data,\n        string memory errorMessage\n    ) internal returns (bytes memory) {\n        return functionCallWithValue(target, data, 0, errorMessage);\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n     * but also transferring `value` wei to `target`.\n     *\n     * Requirements:\n     *\n     * - the calling contract must have an ETH balance of at least `value`.\n     * - the called Solidity function must be `payable`.\n     *\n     * _Available since v3.1._\n     */\n    function functionCallWithValue(\n        address target,\n        bytes memory data,\n        uint256 value\n    ) internal returns (bytes memory) {\n        return functionCallWithValue(target, data, value, \"Address: low-level call with value failed\");\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\n     *\n     * _Available since v3.1._\n     */\n    function functionCallWithValue(\n        address target,\n        bytes memory data,\n        uint256 value,\n        string memory errorMessage\n    ) internal returns (bytes memory) {\n        require(address(this).balance >= value, \"Address: insufficient balance for call\");\n        require(isContract(target), \"Address: call to non-contract\");\n\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\n        return verifyCallResult(success, returndata, errorMessage);\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n     * but performing a static call.\n     *\n     * _Available since v3.3._\n     */\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\n        return functionStaticCall(target, data, \"Address: low-level static call failed\");\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n     * but performing a static call.\n     *\n     * _Available since v3.3._\n     */\n    function functionStaticCall(\n        address target,\n        bytes memory data,\n        string memory errorMessage\n    ) internal view returns (bytes memory) {\n        require(isContract(target), \"Address: static call to non-contract\");\n\n        (bool success, bytes memory returndata) = target.staticcall(data);\n        return verifyCallResult(success, returndata, errorMessage);\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n     * but performing a delegate call.\n     *\n     * _Available since v3.4._\n     */\n    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\n        return functionDelegateCall(target, data, \"Address: low-level delegate call failed\");\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n     * but performing a delegate call.\n     *\n     * _Available since v3.4._\n     */\n    function functionDelegateCall(\n        address target,\n        bytes memory data,\n        string memory errorMessage\n    ) internal returns (bytes memory) {\n        require(isContract(target), \"Address: delegate call to non-contract\");\n\n        (bool success, bytes memory returndata) = target.delegatecall(data);\n        return verifyCallResult(success, returndata, errorMessage);\n    }\n\n    /**\n     * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the\n     * revert reason using the provided one.\n     *\n     * _Available since v4.3._\n     */\n    function verifyCallResult(\n        bool success,\n        bytes memory returndata,\n        string memory errorMessage\n    ) internal pure returns (bytes memory) {\n        if (success) {\n            return returndata;\n        } else {\n            // Look for revert reason and bubble it up if present\n            if (returndata.length > 0) {\n                // The easiest way to bubble the revert reason is using memory via assembly\n\n                assembly {\n                    let returndata_size := mload(returndata)\n                    revert(add(32, returndata), returndata_size)\n                }\n            } else {\n                revert(errorMessage);\n            }\n        }\n    }\n}\n"},"hardhat-deploy/solc_0.8/openzeppelin/utils/Context.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n    function _msgSender() internal view virtual returns (address) {\n        return msg.sender;\n    }\n\n    function _msgData() internal view virtual returns (bytes calldata) {\n        return msg.data;\n    }\n}\n"},"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/StorageSlot.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Library for reading and writing primitive types to specific storage slots.\n *\n * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\n * This library helps with reading and writing to such slots without the need for inline assembly.\n *\n * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\n *\n * Example usage to set ERC1967 implementation slot:\n * ```\n * contract ERC1967 {\n *     bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n *\n *     function _getImplementation() internal view returns (address) {\n *         return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n *     }\n *\n *     function _setImplementation(address newImplementation) internal {\n *         require(Address.isContract(newImplementation), \"ERC1967: new implementation is not a contract\");\n *         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n *     }\n * }\n * ```\n *\n * _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._\n */\nlibrary StorageSlot {\n    struct AddressSlot {\n        address value;\n    }\n\n    struct BooleanSlot {\n        bool value;\n    }\n\n    struct Bytes32Slot {\n        bytes32 value;\n    }\n\n    struct Uint256Slot {\n        uint256 value;\n    }\n\n    /**\n     * @dev Returns an `AddressSlot` with member `value` located at `slot`.\n     */\n    function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {\n        assembly {\n            r.slot := slot\n        }\n    }\n\n    /**\n     * @dev Returns an `BooleanSlot` with member `value` located at `slot`.\n     */\n    function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\n        assembly {\n            r.slot := slot\n        }\n    }\n\n    /**\n     * @dev Returns an `Bytes32Slot` with member `value` located at `slot`.\n     */\n    function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\n        assembly {\n            r.slot := slot\n        }\n    }\n\n    /**\n     * @dev Returns an `Uint256Slot` with member `value` located at `slot`.\n     */\n    function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\n        assembly {\n            r.slot := slot\n        }\n    }\n}\n"},"hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (proxy/transparent/TransparentUpgradeableProxy.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../openzeppelin/proxy/ERC1967/ERC1967Proxy.sol\";\n\n/**\n * @dev This contract implements a proxy that is upgradeable by an admin.\n *\n * To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector\n * clashing], which can potentially be used in an attack, this contract uses the\n * https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two\n * things that go hand in hand:\n *\n * 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if\n * that call matches one of the admin functions exposed by the proxy itself.\n * 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the\n * implementation. If the admin tries to call a function on the implementation it will fail with an error that says\n * \"admin cannot fallback to proxy target\".\n *\n * These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing\n * the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due\n * to sudden errors when trying to call a function from the proxy implementation.\n *\n * Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way,\n * you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy.\n */\ncontract OptimizedTransparentUpgradeableProxy is ERC1967Proxy {\n    address internal immutable _ADMIN;\n\n    /**\n     * @dev Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and\n     * optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}.\n     */\n    constructor(\n        address _logic,\n        address admin_,\n        bytes memory _data\n    ) payable ERC1967Proxy(_logic, _data) {\n        assert(_ADMIN_SLOT == bytes32(uint256(keccak256(\"eip1967.proxy.admin\")) - 1));\n        _ADMIN = admin_;\n\n        // still store it to work with EIP-1967\n        bytes32 slot = _ADMIN_SLOT;\n        // solhint-disable-next-line no-inline-assembly\n        assembly {\n            sstore(slot, admin_)\n        }\n        emit AdminChanged(address(0), admin_);\n    }\n\n    /**\n     * @dev Modifier used internally that will delegate the call to the implementation unless the sender is the admin.\n     */\n    modifier ifAdmin() {\n        if (msg.sender == _getAdmin()) {\n            _;\n        } else {\n            _fallback();\n        }\n    }\n\n    /**\n     * @dev Returns the current admin.\n     *\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}.\n     *\n     * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\n     * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n     * `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`\n     */\n    function admin() external ifAdmin returns (address admin_) {\n        admin_ = _getAdmin();\n    }\n\n    /**\n     * @dev Returns the current implementation.\n     *\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}.\n     *\n     * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\n     * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n     * `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`\n     */\n    function implementation() external ifAdmin returns (address implementation_) {\n        implementation_ = _implementation();\n    }\n\n    /**\n     * @dev Upgrade the implementation of the proxy.\n     *\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}.\n     */\n    function upgradeTo(address newImplementation) external ifAdmin {\n        _upgradeToAndCall(newImplementation, bytes(\"\"), false);\n    }\n\n    /**\n     * @dev Upgrade the implementation of the proxy, and then call a function from the new implementation as specified\n     * by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the\n     * proxied contract.\n     *\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}.\n     */\n    function upgradeToAndCall(address newImplementation, bytes calldata data) external payable ifAdmin {\n        _upgradeToAndCall(newImplementation, data, true);\n    }\n\n    /**\n     * @dev Returns the current admin.\n     */\n    function _admin() internal view virtual returns (address) {\n        return _getAdmin();\n    }\n\n    /**\n     * @dev Makes sure the admin cannot access the fallback function. See {Proxy-_beforeFallback}.\n     */\n    function _beforeFallback() internal virtual override {\n        require(msg.sender != _getAdmin(), \"TransparentUpgradeableProxy: admin cannot fallback to proxy target\");\n        super._beforeFallback();\n    }\n\n    function _getAdmin() internal view virtual override returns (address) {\n        return _ADMIN;\n    }\n}\n"},"solidity-bytes-utils/contracts/BytesLib.sol":{"content":"// SPDX-License-Identifier: Unlicense\n/*\n * @title Solidity Bytes Arrays Utils\n * @author Gonçalo Sá <goncalo.sa@consensys.net>\n *\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\n *      The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\n */\npragma solidity >=0.8.0 <0.9.0;\n\n\nlibrary BytesLib {\n    function concat(\n        bytes memory _preBytes,\n        bytes memory _postBytes\n    )\n        internal\n        pure\n        returns (bytes memory)\n    {\n        bytes memory tempBytes;\n\n        assembly {\n            // Get a location of some free memory and store it in tempBytes as\n            // Solidity does for memory variables.\n            tempBytes := mload(0x40)\n\n            // Store the length of the first bytes array at the beginning of\n            // the memory for tempBytes.\n            let length := mload(_preBytes)\n            mstore(tempBytes, length)\n\n            // Maintain a memory counter for the current write location in the\n            // temp bytes array by adding the 32 bytes for the array length to\n            // the starting location.\n            let mc := add(tempBytes, 0x20)\n            // Stop copying when the memory counter reaches the length of the\n            // first bytes array.\n            let end := add(mc, length)\n\n            for {\n                // Initialize a copy counter to the start of the _preBytes data,\n                // 32 bytes into its memory.\n                let cc := add(_preBytes, 0x20)\n            } lt(mc, end) {\n                // Increase both counters by 32 bytes each iteration.\n                mc := add(mc, 0x20)\n                cc := add(cc, 0x20)\n            } {\n                // Write the _preBytes data into the tempBytes memory 32 bytes\n                // at a time.\n                mstore(mc, mload(cc))\n            }\n\n            // Add the length of _postBytes to the current length of tempBytes\n            // and store it as the new length in the first 32 bytes of the\n            // tempBytes memory.\n            length := mload(_postBytes)\n            mstore(tempBytes, add(length, mload(tempBytes)))\n\n            // Move the memory counter back from a multiple of 0x20 to the\n            // actual end of the _preBytes data.\n            mc := end\n            // Stop copying when the memory counter reaches the new combined\n            // length of the arrays.\n            end := add(mc, length)\n\n            for {\n                let cc := add(_postBytes, 0x20)\n            } lt(mc, end) {\n                mc := add(mc, 0x20)\n                cc := add(cc, 0x20)\n            } {\n                mstore(mc, mload(cc))\n            }\n\n            // Update the free-memory pointer by padding our last write location\n            // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\n            // next 32 byte block, then round down to the nearest multiple of\n            // 32. If the sum of the length of the two arrays is zero then add\n            // one before rounding down to leave a blank 32 bytes (the length block with 0).\n            mstore(0x40, and(\n              add(add(end, iszero(add(length, mload(_preBytes)))), 31),\n              not(31) // Round down to the nearest 32 bytes.\n            ))\n        }\n\n        return tempBytes;\n    }\n\n    function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\n        assembly {\n            // Read the first 32 bytes of _preBytes storage, which is the length\n            // of the array. (We don't need to use the offset into the slot\n            // because arrays use the entire slot.)\n            let fslot := sload(_preBytes.slot)\n            // Arrays of 31 bytes or less have an even value in their slot,\n            // while longer arrays have an odd value. The actual length is\n            // the slot divided by two for odd values, and the lowest order\n            // byte divided by two for even values.\n            // If the slot is even, bitwise and the slot with 255 and divide by\n            // two to get the length. If the slot is odd, bitwise and the slot\n            // with -1 and divide by two.\n            let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\n            let mlength := mload(_postBytes)\n            let newlength := add(slength, mlength)\n            // slength can contain both the length and contents of the array\n            // if length < 32 bytes so let's prepare for that\n            // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\n            switch add(lt(slength, 32), lt(newlength, 32))\n            case 2 {\n                // Since the new array still fits in the slot, we just need to\n                // update the contents of the slot.\n                // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\n                sstore(\n                    _preBytes.slot,\n                    // all the modifications to the slot are inside this\n                    // next block\n                    add(\n                        // we can just add to the slot contents because the\n                        // bytes we want to change are the LSBs\n                        fslot,\n                        add(\n                            mul(\n                                div(\n                                    // load the bytes from memory\n                                    mload(add(_postBytes, 0x20)),\n                                    // zero all bytes to the right\n                                    exp(0x100, sub(32, mlength))\n                                ),\n                                // and now shift left the number of bytes to\n                                // leave space for the length in the slot\n                                exp(0x100, sub(32, newlength))\n                            ),\n                            // increase length by the double of the memory\n                            // bytes length\n                            mul(mlength, 2)\n                        )\n                    )\n                )\n            }\n            case 1 {\n                // The stored value fits in the slot, but the combined value\n                // will exceed it.\n                // get the keccak hash to get the contents of the array\n                mstore(0x0, _preBytes.slot)\n                let sc := add(keccak256(0x0, 0x20), div(slength, 32))\n\n                // save new length\n                sstore(_preBytes.slot, add(mul(newlength, 2), 1))\n\n                // The contents of the _postBytes array start 32 bytes into\n                // the structure. Our first read should obtain the `submod`\n                // bytes that can fit into the unused space in the last word\n                // of the stored array. To get this, we read 32 bytes starting\n                // from `submod`, so the data we read overlaps with the array\n                // contents by `submod` bytes. Masking the lowest-order\n                // `submod` bytes allows us to add that value directly to the\n                // stored value.\n\n                let submod := sub(32, slength)\n                let mc := add(_postBytes, submod)\n                let end := add(_postBytes, mlength)\n                let mask := sub(exp(0x100, submod), 1)\n\n                sstore(\n                    sc,\n                    add(\n                        and(\n                            fslot,\n                            0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00\n                        ),\n                        and(mload(mc), mask)\n                    )\n                )\n\n                for {\n                    mc := add(mc, 0x20)\n                    sc := add(sc, 1)\n                } lt(mc, end) {\n                    sc := add(sc, 1)\n                    mc := add(mc, 0x20)\n                } {\n                    sstore(sc, mload(mc))\n                }\n\n                mask := exp(0x100, sub(mc, end))\n\n                sstore(sc, mul(div(mload(mc), mask), mask))\n            }\n            default {\n                // get the keccak hash to get the contents of the array\n                mstore(0x0, _preBytes.slot)\n                // Start copying to the last used word of the stored array.\n                let sc := add(keccak256(0x0, 0x20), div(slength, 32))\n\n                // save new length\n                sstore(_preBytes.slot, add(mul(newlength, 2), 1))\n\n                // Copy over the first `submod` bytes of the new data as in\n                // case 1 above.\n                let slengthmod := mod(slength, 32)\n                let mlengthmod := mod(mlength, 32)\n                let submod := sub(32, slengthmod)\n                let mc := add(_postBytes, submod)\n                let end := add(_postBytes, mlength)\n                let mask := sub(exp(0x100, submod), 1)\n\n                sstore(sc, add(sload(sc), and(mload(mc), mask)))\n\n                for {\n                    sc := add(sc, 1)\n                    mc := add(mc, 0x20)\n                } lt(mc, end) {\n                    sc := add(sc, 1)\n                    mc := add(mc, 0x20)\n                } {\n                    sstore(sc, mload(mc))\n                }\n\n                mask := exp(0x100, sub(mc, end))\n\n                sstore(sc, mul(div(mload(mc), mask), mask))\n            }\n        }\n    }\n\n    function slice(\n        bytes memory _bytes,\n        uint256 _start,\n        uint256 _length\n    )\n        internal\n        pure\n        returns (bytes memory)\n    {\n        // We're using the unchecked block below because otherwise execution ends \n        // with the native overflow error code.\n        unchecked {\n            require(_length + 31 >= _length, \"slice_overflow\");\n        }\n        require(_bytes.length >= _start + _length, \"slice_outOfBounds\");\n\n        bytes memory tempBytes;\n\n        assembly {\n            switch iszero(_length)\n            case 0 {\n                // Get a location of some free memory and store it in tempBytes as\n                // Solidity does for memory variables.\n                tempBytes := mload(0x40)\n\n                // The first word of the slice result is potentially a partial\n                // word read from the original array. To read it, we calculate\n                // the length of that partial word and start copying that many\n                // bytes into the array. The first word we copy will start with\n                // data we don't care about, but the last `lengthmod` bytes will\n                // land at the beginning of the contents of the new array. When\n                // we're done copying, we overwrite the full first word with\n                // the actual length of the slice.\n                let lengthmod := and(_length, 31)\n\n                // The multiplication in the next line is necessary\n                // because when slicing multiples of 32 bytes (lengthmod == 0)\n                // the following copy loop was copying the origin's length\n                // and then ending prematurely not copying everything it should.\n                let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\n                let end := add(mc, _length)\n\n                for {\n                    // The multiplication in the next line has the same exact purpose\n                    // as the one above.\n                    let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\n                } lt(mc, end) {\n                    mc := add(mc, 0x20)\n                    cc := add(cc, 0x20)\n                } {\n                    mstore(mc, mload(cc))\n                }\n\n                mstore(tempBytes, _length)\n\n                //update free-memory pointer\n                //allocating the array padded to 32 bytes like the compiler does now\n                mstore(0x40, and(add(mc, 31), not(31)))\n            }\n            //if we want a zero-length slice let's just return a zero-length array\n            default {\n                tempBytes := mload(0x40)\n                //zero out the 32 bytes slice we are about to return\n                //we need to do it because Solidity does not garbage collect\n                mstore(tempBytes, 0)\n\n                mstore(0x40, add(tempBytes, 0x20))\n            }\n        }\n\n        return tempBytes;\n    }\n\n    function toAddress(bytes memory _bytes, uint256 _start) internal pure returns (address) {\n        require(_bytes.length >= _start + 20, \"toAddress_outOfBounds\");\n        address tempAddress;\n\n        assembly {\n            tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\n        }\n\n        return tempAddress;\n    }\n\n    function toUint8(bytes memory _bytes, uint256 _start) internal pure returns (uint8) {\n        require(_bytes.length >= _start + 1 , \"toUint8_outOfBounds\");\n        uint8 tempUint;\n\n        assembly {\n            tempUint := mload(add(add(_bytes, 0x1), _start))\n        }\n\n        return tempUint;\n    }\n\n    function toUint16(bytes memory _bytes, uint256 _start) internal pure returns (uint16) {\n        require(_bytes.length >= _start + 2, \"toUint16_outOfBounds\");\n        uint16 tempUint;\n\n        assembly {\n            tempUint := mload(add(add(_bytes, 0x2), _start))\n        }\n\n        return tempUint;\n    }\n\n    function toUint32(bytes memory _bytes, uint256 _start) internal pure returns (uint32) {\n        require(_bytes.length >= _start + 4, \"toUint32_outOfBounds\");\n        uint32 tempUint;\n\n        assembly {\n            tempUint := mload(add(add(_bytes, 0x4), _start))\n        }\n\n        return tempUint;\n    }\n\n    function toUint64(bytes memory _bytes, uint256 _start) internal pure returns (uint64) {\n        require(_bytes.length >= _start + 8, \"toUint64_outOfBounds\");\n        uint64 tempUint;\n\n        assembly {\n            tempUint := mload(add(add(_bytes, 0x8), _start))\n        }\n\n        return tempUint;\n    }\n\n    function toUint96(bytes memory _bytes, uint256 _start) internal pure returns (uint96) {\n        require(_bytes.length >= _start + 12, \"toUint96_outOfBounds\");\n        uint96 tempUint;\n\n        assembly {\n            tempUint := mload(add(add(_bytes, 0xc), _start))\n        }\n\n        return tempUint;\n    }\n\n    function toUint128(bytes memory _bytes, uint256 _start) internal pure returns (uint128) {\n        require(_bytes.length >= _start + 16, \"toUint128_outOfBounds\");\n        uint128 tempUint;\n\n        assembly {\n            tempUint := mload(add(add(_bytes, 0x10), _start))\n        }\n\n        return tempUint;\n    }\n\n    function toUint256(bytes memory _bytes, uint256 _start) internal pure returns (uint256) {\n        require(_bytes.length >= _start + 32, \"toUint256_outOfBounds\");\n        uint256 tempUint;\n\n        assembly {\n            tempUint := mload(add(add(_bytes, 0x20), _start))\n        }\n\n        return tempUint;\n    }\n\n    function toBytes32(bytes memory _bytes, uint256 _start) internal pure returns (bytes32) {\n        require(_bytes.length >= _start + 32, \"toBytes32_outOfBounds\");\n        bytes32 tempBytes32;\n\n        assembly {\n            tempBytes32 := mload(add(add(_bytes, 0x20), _start))\n        }\n\n        return tempBytes32;\n    }\n\n    function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\n        bool success = true;\n\n        assembly {\n            let length := mload(_preBytes)\n\n            // if lengths don't match the arrays are not equal\n            switch eq(length, mload(_postBytes))\n            case 1 {\n                // cb is a circuit breaker in the for loop since there's\n                //  no said feature for inline assembly loops\n                // cb = 1 - don't breaker\n                // cb = 0 - break\n                let cb := 1\n\n                let mc := add(_preBytes, 0x20)\n                let end := add(mc, length)\n\n                for {\n                    let cc := add(_postBytes, 0x20)\n                // the next line is the loop condition:\n                // while(uint256(mc < end) + cb == 2)\n                } eq(add(lt(mc, end), cb), 2) {\n                    mc := add(mc, 0x20)\n                    cc := add(cc, 0x20)\n                } {\n                    // if any of these checks fails then arrays are not equal\n                    if iszero(eq(mload(mc), mload(cc))) {\n                        // unsuccess:\n                        success := 0\n                        cb := 0\n                    }\n                }\n            }\n            default {\n                // unsuccess:\n                success := 0\n            }\n        }\n\n        return success;\n    }\n\n    function equalStorage(\n        bytes storage _preBytes,\n        bytes memory _postBytes\n    )\n        internal\n        view\n        returns (bool)\n    {\n        bool success = true;\n\n        assembly {\n            // we know _preBytes_offset is 0\n            let fslot := sload(_preBytes.slot)\n            // Decode the length of the stored array like in concatStorage().\n            let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\n            let mlength := mload(_postBytes)\n\n            // if lengths don't match the arrays are not equal\n            switch eq(slength, mlength)\n            case 1 {\n                // slength can contain both the length and contents of the array\n                // if length < 32 bytes so let's prepare for that\n                // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\n                if iszero(iszero(slength)) {\n                    switch lt(slength, 32)\n                    case 1 {\n                        // blank the last byte which is the length\n                        fslot := mul(div(fslot, 0x100), 0x100)\n\n                        if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\n                            // unsuccess:\n                            success := 0\n                        }\n                    }\n                    default {\n                        // cb is a circuit breaker in the for loop since there's\n                        //  no said feature for inline assembly loops\n                        // cb = 1 - don't breaker\n                        // cb = 0 - break\n                        let cb := 1\n\n                        // get the keccak hash to get the contents of the array\n                        mstore(0x0, _preBytes.slot)\n                        let sc := keccak256(0x0, 0x20)\n\n                        let mc := add(_postBytes, 0x20)\n                        let end := add(mc, mlength)\n\n                        // the next line is the loop condition:\n                        // while(uint256(mc < end) + cb == 2)\n                        for {} eq(add(lt(mc, end), cb), 2) {\n                            sc := add(sc, 1)\n                            mc := add(mc, 0x20)\n                        } {\n                            if iszero(eq(sload(sc), mload(mc))) {\n                                // unsuccess:\n                                success := 0\n                                cb := 0\n                            }\n                        }\n                    }\n                }\n            }\n            default {\n                // unsuccess:\n                success := 0\n            }\n        }\n\n        return success;\n    }\n}\n"}},"settings":{"optimizer":{"enabled":true,"runs":10000},"evmVersion":"paris","outputSelection":{"*":{"*":["storageLayout","abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata","devdoc","userdoc","evm.gasEstimates"],"":["ast"]}},"metadata":{"useLiteralContent":true}}},"output":{"errors":[{"component":"general","errorCode":"1878","formattedMessage":"Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: <SPDX-License>\" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.\n--> @venusprotocol/venus-protocol/contracts/InterestRateModels/InterestRateModelV8.sol\n\n","message":"SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: <SPDX-License>\" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.","severity":"warning","sourceLocation":{"end":-1,"file":"@venusprotocol/venus-protocol/contracts/InterestRateModels/InterestRateModelV8.sol","start":-1},"type":"Warning"},{"component":"general","errorCode":"8760","formattedMessage":"Warning: This declaration has the same name as another declaration.\n  --> contracts/test/MockComptroller.sol:74:9:\n   |\n74 |         address[] memory markets = new address[](allVTokens.length);\n   |         ^^^^^^^^^^^^^^^^^^^^^^^^\nNote: The other declaration is here:\n   --> contracts/test/MockComptroller.sol:104:5:\n    |\n104 |     function markets(\n    |     ^ (Relevant source part starts here and spans across multiple lines).\n\n","message":"This declaration has the same name as another declaration.","secondarySourceLocations":[{"end":4186,"file":"contracts/test/MockComptroller.sol","message":"The other declaration is here:","start":3833}],"severity":"warning","sourceLocation":{"end":2647,"file":"contracts/test/MockComptroller.sol","start":2623},"type":"Warning"},{"component":"general","errorCode":"3628","formattedMessage":"Warning: This contract has a payable fallback function, but no receive ether function. Consider adding a receive ether function.\n  --> contracts/Governance/TimelockV8.sol:12:1:\n   |\n12 | contract TimelockV8 {\n   | ^ (Relevant source part starts here and spans across multiple lines).\nNote: The payable fallback function is defined here.\n  --> contracts/Governance/TimelockV8.sol:82:5:\n   |\n82 |     fallback() external payable {}\n   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n","message":"This contract has a payable fallback function, but no receive ether function. Consider adding a receive ether function.","secondarySourceLocations":[{"end":2807,"file":"contracts/Governance/TimelockV8.sol","message":"The payable fallback function is defined here.","start":2777}],"severity":"warning","sourceLocation":{"end":9867,"file":"contracts/Governance/TimelockV8.sol","start":429},"type":"Warning"},{"component":"general","errorCode":"3628","formattedMessage":"Warning: This contract has a payable fallback function, but no receive ether function. Consider adding a receive ether function.\n --> contracts/test/TestTimelockV8.sol:5:1:\n  |\n5 | contract TestTimelockV8 is TimelockV8 {\n  | ^ (Relevant source part starts here and spans across multiple lines).\nNote: The payable fallback function is defined here.\n  --> contracts/Governance/TimelockV8.sol:82:5:\n   |\n82 |     fallback() external payable {}\n   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n","message":"This contract has a payable fallback function, but no receive ether function. Consider adding a receive ether function.","secondarySourceLocations":[{"end":2807,"file":"contracts/Governance/TimelockV8.sol","message":"The payable fallback function is defined here.","start":2777}],"severity":"warning","sourceLocation":{"end":547,"file":"contracts/test/TestTimelockV8.sol","start":125},"type":"Warning"},{"component":"general","errorCode":"2462","formattedMessage":"Warning: Visibility for constructor is ignored. If you want the contract to be non-deployable, making it \"abstract\" is sufficient.\n --> contracts/test/TestTimelockV8.sol:6:5:\n  |\n6 |     constructor(address admin_, uint256 delay_) public TimelockV8(admin_, delay_) {}\n  |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n","message":"Visibility for constructor is ignored. If you want the contract to be non-deployable, making it \"abstract\" is sufficient.","severity":"warning","sourceLocation":{"end":249,"file":"contracts/test/TestTimelockV8.sol","start":169},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/test/MockXVSVault.sol:6:28:\n  |\n6 |     function getPriorVotes(address account, uint256 blockNumber) external view returns (uint96) {\n  |                            ^^^^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":173,"file":"contracts/test/MockXVSVault.sol","start":158},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/test/MockXVSVault.sol:6:45:\n  |\n6 |     function getPriorVotes(address account, uint256 blockNumber) external view returns (uint96) {\n  |                                             ^^^^^^^^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":194,"file":"contracts/test/MockXVSVault.sol","start":175},"type":"Warning"},{"component":"general","errorCode":"2018","formattedMessage":"Warning: Function state mutability can be restricted to pure\n --> contracts/test/MockXVSVault.sol:6:5:\n  |\n6 |     function getPriorVotes(address account, uint256 blockNumber) external view returns (uint96) {\n  |     ^ (Relevant source part starts here and spans across multiple lines).\n\n","message":"Function state mutability can be restricted to pure","severity":"warning","sourceLocation":{"end":296,"file":"contracts/test/MockXVSVault.sol","start":135},"type":"Warning"},{"component":"general","errorCode":"2018","formattedMessage":"Warning: Function state mutability can be restricted to pure\n --> contracts/test/TestTimelockV8.sol:8:5:\n  |\n8 |     function GRACE_PERIOD() public view override returns (uint256) {\n  |     ^ (Relevant source part starts here and spans across multiple lines).\n\n","message":"Function state mutability can be restricted to pure","severity":"warning","sourceLocation":{"end":349,"file":"contracts/test/TestTimelockV8.sol","start":255},"type":"Warning"},{"component":"general","errorCode":"2018","formattedMessage":"Warning: Function state mutability can be restricted to pure\n  --> contracts/test/TestTimelockV8.sol:12:5:\n   |\n12 |     function MINIMUM_DELAY() public view override returns (uint256) {\n   |     ^ (Relevant source part starts here and spans across multiple lines).\n\n","message":"Function state mutability can be restricted to pure","severity":"warning","sourceLocation":{"end":444,"file":"contracts/test/TestTimelockV8.sol","start":355},"type":"Warning"},{"component":"general","errorCode":"2018","formattedMessage":"Warning: Function state mutability can be restricted to pure\n  --> contracts/test/TestTimelockV8.sol:16:5:\n   |\n16 |     function MAXIMUM_DELAY() public view override returns (uint256) {\n   |     ^ (Relevant source part starts here and spans across multiple lines).\n\n","message":"Function state mutability can be restricted to pure","severity":"warning","sourceLocation":{"end":545,"file":"contracts/test/TestTimelockV8.sol","start":450},"type":"Warning"}],"sources":{"@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/ExecutorOptions.sol":{"ast":{"absolutePath":"@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/ExecutorOptions.sol","exportedSymbols":{"CalldataBytesLib":[1779],"ExecutorOptions":[370]},"id":371,"license":"LZBL-1.2","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"38:24:0"},{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol","file":"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol","id":2,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":371,"sourceUnit":1780,"src":"64:79:0","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"ExecutorOptions","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":370,"linearizedBaseContracts":[370],"name":"ExecutorOptions","nameLocation":"153:15:0","nodeType":"ContractDefinition","nodes":[{"global":false,"id":5,"libraryName":{"id":3,"name":"CalldataBytesLib","nameLocations":["181:16:0"],"nodeType":"IdentifierPath","referencedDeclaration":1779,"src":"181:16:0"},"nodeType":"UsingForDirective","src":"175:33:0","typeName":{"id":4,"name":"bytes","nodeType":"ElementaryTypeName","src":"202:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},{"constant":true,"id":8,"mutability":"constant","name":"WORKER_ID","nameLocation":"238:9:0","nodeType":"VariableDeclaration","scope":370,"src":"214:37:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6,"name":"uint8","nodeType":"ElementaryTypeName","src":"214:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"31","id":7,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"250:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"constant":true,"id":11,"mutability":"constant","name":"OPTION_TYPE_LZRECEIVE","nameLocation":"282:21:0","nodeType":"VariableDeclaration","scope":370,"src":"258:49:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":9,"name":"uint8","nodeType":"ElementaryTypeName","src":"258:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"31","id":10,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"306:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"constant":true,"id":14,"mutability":"constant","name":"OPTION_TYPE_NATIVE_DROP","nameLocation":"337:23:0","nodeType":"VariableDeclaration","scope":370,"src":"313:51:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":12,"name":"uint8","nodeType":"ElementaryTypeName","src":"313:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"32","id":13,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"363:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"internal"},{"constant":true,"id":17,"mutability":"constant","name":"OPTION_TYPE_LZCOMPOSE","nameLocation":"394:21:0","nodeType":"VariableDeclaration","scope":370,"src":"370:49:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":15,"name":"uint8","nodeType":"ElementaryTypeName","src":"370:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"33","id":16,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"418:1:0","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"visibility":"internal"},{"constant":true,"id":20,"mutability":"constant","name":"OPTION_TYPE_ORDERED_EXECUTION","nameLocation":"449:29:0","nodeType":"VariableDeclaration","scope":370,"src":"425:57:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":18,"name":"uint8","nodeType":"ElementaryTypeName","src":"425:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"34","id":19,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"481:1:0","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"visibility":"internal"},{"constant":true,"id":23,"mutability":"constant","name":"OPTION_TYPE_LZREAD","nameLocation":"512:18:0","nodeType":"VariableDeclaration","scope":370,"src":"488:46:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":21,"name":"uint8","nodeType":"ElementaryTypeName","src":"488:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"35","id":22,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"533:1:0","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"visibility":"internal"},{"errorSelector":"4796aee1","id":25,"name":"Executor_InvalidLzReceiveOption","nameLocation":"547:31:0","nodeType":"ErrorDefinition","parameters":{"id":24,"nodeType":"ParameterList","parameters":[],"src":"578:2:0"},"src":"541:40:0"},{"errorSelector":"c3a1858e","id":27,"name":"Executor_InvalidNativeDropOption","nameLocation":"592:32:0","nodeType":"ErrorDefinition","parameters":{"id":26,"nodeType":"ParameterList","parameters":[],"src":"624:2:0"},"src":"586:41:0"},{"errorSelector":"8b4aa70b","id":29,"name":"Executor_InvalidLzComposeOption","nameLocation":"638:31:0","nodeType":"ErrorDefinition","parameters":{"id":28,"nodeType":"ParameterList","parameters":[],"src":"669:2:0"},"src":"632:40:0"},{"errorSelector":"deb7fe42","id":31,"name":"Executor_InvalidLzReadOption","nameLocation":"683:28:0","nodeType":"ErrorDefinition","parameters":{"id":30,"nodeType":"ParameterList","parameters":[],"src":"711:2:0"},"src":"677:37:0"},{"body":{"id":93,"nodeType":"Block","src":"1529:570:0","statements":[{"id":92,"nodeType":"UncheckedBlock","src":"1539:554:0","statements":[{"expression":{"id":49,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":45,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43,"src":"1593:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46,"name":"_cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36,"src":"1602:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":47,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1612:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1602:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1593:20:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":50,"nodeType":"ExpressionStatement","src":"1593:20:0"},{"assignments":[52],"declarations":[{"constant":false,"id":52,"mutability":"mutable","name":"size","nameLocation":"1667:4:0","nodeType":"VariableDeclaration","scope":92,"src":"1660:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":51,"name":"uint16","nodeType":"ElementaryTypeName","src":"1660:6:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":57,"initialValue":{"arguments":[{"id":55,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43,"src":"1689:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":53,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34,"src":"1674:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":54,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1683:5:0","memberName":"toU16","nodeType":"MemberAccess","referencedDeclaration":1613,"src":"1674:14:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$_t_uint256_$returns$_t_uint16_$attached_to$_t_bytes_calldata_ptr_$","typeString":"function (bytes calldata,uint256) pure returns (uint16)"}},"id":56,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1674:22:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1660:36:0"},{"expression":{"id":60,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43,"src":"1710:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":59,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1720:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"1710:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":61,"nodeType":"ExpressionStatement","src":"1710:11:0"},{"expression":{"id":67,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":62,"name":"optionType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39,"src":"1768:10:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":65,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43,"src":"1795:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":63,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34,"src":"1781:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":64,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1790:4:0","memberName":"toU8","nodeType":"MemberAccess","referencedDeclaration":1585,"src":"1781:13:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$_t_uint256_$returns$_t_uint8_$attached_to$_t_bytes_calldata_ptr_$","typeString":"function (bytes calldata,uint256) pure returns (uint8)"}},"id":66,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1781:21:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"1768:34:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":68,"nodeType":"ExpressionStatement","src":"1768:34:0"},{"assignments":[70],"declarations":[{"constant":false,"id":70,"mutability":"mutable","name":"startCursor","nameLocation":"1909:11:0","nodeType":"VariableDeclaration","scope":92,"src":"1901:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":69,"name":"uint256","nodeType":"ElementaryTypeName","src":"1901:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":71,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43,"src":"1923:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":72,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1932:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1923:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1901:32:0"},{"assignments":[76],"declarations":[{"constant":false,"id":76,"mutability":"mutable","name":"endCursor","nameLocation":"1975:9:0","nodeType":"VariableDeclaration","scope":92,"src":"1967:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75,"name":"uint256","nodeType":"ElementaryTypeName","src":"1967:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43,"src":"1987:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":78,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52,"src":"1996:4:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1987:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1967:33:0"},{"expression":{"id":86,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81,"name":"option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41,"src":"2014:6:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":82,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34,"src":"2023:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"id":84,"name":"endCursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76,"src":"2044:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":85,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"2023:31:0","startExpression":{"id":83,"name":"startCursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70,"src":"2032:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}},"src":"2014:40:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":87,"nodeType":"ExpressionStatement","src":"2014:40:0"},{"expression":{"id":90,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":88,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43,"src":"2068:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":89,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52,"src":"2078:4:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2068:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":91,"nodeType":"ExpressionStatement","src":"2068:14:0"}]}]},"documentation":{"id":32,"nodeType":"StructuredDocumentation","src":"720:632:0","text":"@dev decode the next executor option from the options starting from the specified cursor\n @param _options [executor_id][executor_option][executor_id][executor_option]...\n        executor_option = [option_size][option_type][option]\n        option_size = len(option_type) + len(option)\n        executor_id: uint8, option_size: uint16, option_type: uint8, option: bytes\n @param _cursor the cursor to start decoding from\n @return optionType the type of the option\n @return option the option of the executor\n @return cursor the cursor to start decoding the next executor option"},"id":94,"implemented":true,"kind":"function","modifiers":[],"name":"nextExecutorOption","nameLocation":"1366:18:0","nodeType":"FunctionDefinition","parameters":{"id":37,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34,"mutability":"mutable","name":"_options","nameLocation":"1409:8:0","nodeType":"VariableDeclaration","scope":94,"src":"1394:23:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":33,"name":"bytes","nodeType":"ElementaryTypeName","src":"1394:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":36,"mutability":"mutable","name":"_cursor","nameLocation":"1435:7:0","nodeType":"VariableDeclaration","scope":94,"src":"1427:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35,"name":"uint256","nodeType":"ElementaryTypeName","src":"1427:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1384:64:0"},"returnParameters":{"id":44,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39,"mutability":"mutable","name":"optionType","nameLocation":"1478:10:0","nodeType":"VariableDeclaration","scope":94,"src":"1472:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":38,"name":"uint8","nodeType":"ElementaryTypeName","src":"1472:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":41,"mutability":"mutable","name":"option","nameLocation":"1505:6:0","nodeType":"VariableDeclaration","scope":94,"src":"1490:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":40,"name":"bytes","nodeType":"ElementaryTypeName","src":"1490:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":43,"mutability":"mutable","name":"cursor","nameLocation":"1521:6:0","nodeType":"VariableDeclaration","scope":94,"src":"1513:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42,"name":"uint256","nodeType":"ElementaryTypeName","src":"1513:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1471:57:0"},"scope":370,"src":"1357:742:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":136,"nodeType":"Block","src":"2211:203:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":103,"name":"_option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"2225:7:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2233:6:0","memberName":"length","nodeType":"MemberAccess","src":"2225:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3136","id":105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2243:2:0","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"2225:20:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":107,"name":"_option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"2249:7:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2257:6:0","memberName":"length","nodeType":"MemberAccess","src":"2249:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3332","id":109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2267:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"2249:20:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2225:44:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":115,"nodeType":"IfStatement","src":"2221:90:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":112,"name":"Executor_InvalidLzReceiveOption","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25,"src":"2278:31:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2278:33:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":114,"nodeType":"RevertStatement","src":"2271:40:0"}},{"expression":{"id":121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":116,"name":"gas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99,"src":"2321:3:0","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2342:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":117,"name":"_option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"2327:7:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2335:6:0","memberName":"toU128","nodeType":"MemberAccess","referencedDeclaration":1697,"src":"2327:14:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$_t_uint256_$returns$_t_uint128_$attached_to$_t_bytes_calldata_ptr_$","typeString":"function (bytes calldata,uint256) pure returns (uint128)"}},"id":120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2327:17:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"2321:23:0","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":122,"nodeType":"ExpressionStatement","src":"2321:23:0"},{"expression":{"id":134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":123,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101,"src":"2354:5:0","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":124,"name":"_option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"2362:7:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2370:6:0","memberName":"length","nodeType":"MemberAccess","src":"2362:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3332","id":126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2380:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"2362:20:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2406:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2362:45:0","trueExpression":{"arguments":[{"hexValue":"3136","id":130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2400:2:0","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"}],"expression":{"id":128,"name":"_option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"2385:7:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2393:6:0","memberName":"toU128","nodeType":"MemberAccess","referencedDeclaration":1697,"src":"2385:14:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$_t_uint256_$returns$_t_uint128_$attached_to$_t_bytes_calldata_ptr_$","typeString":"function (bytes calldata,uint256) pure returns (uint128)"}},"id":131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2385:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"2354:53:0","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":135,"nodeType":"ExpressionStatement","src":"2354:53:0"}]},"id":137,"implemented":true,"kind":"function","modifiers":[],"name":"decodeLzReceiveOption","nameLocation":"2114:21:0","nodeType":"FunctionDefinition","parameters":{"id":97,"nodeType":"ParameterList","parameters":[{"constant":false,"id":96,"mutability":"mutable","name":"_option","nameLocation":"2151:7:0","nodeType":"VariableDeclaration","scope":137,"src":"2136:22:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":95,"name":"bytes","nodeType":"ElementaryTypeName","src":"2136:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2135:24:0"},"returnParameters":{"id":102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99,"mutability":"mutable","name":"gas","nameLocation":"2191:3:0","nodeType":"VariableDeclaration","scope":137,"src":"2183:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":98,"name":"uint128","nodeType":"ElementaryTypeName","src":"2183:7:0","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":101,"mutability":"mutable","name":"value","nameLocation":"2204:5:0","nodeType":"VariableDeclaration","scope":137,"src":"2196:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":100,"name":"uint128","nodeType":"ElementaryTypeName","src":"2196:7:0","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"2182:28:0"},"scope":370,"src":"2105:309:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":168,"nodeType":"Block","src":"2533:158:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":146,"name":"_option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":139,"src":"2547:7:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2555:6:0","memberName":"length","nodeType":"MemberAccess","src":"2547:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3438","id":148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2565:2:0","typeDescriptions":{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},"value":"48"},"src":"2547:20:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":153,"nodeType":"IfStatement","src":"2543:67:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":150,"name":"Executor_InvalidNativeDropOption","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27,"src":"2576:32:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2576:34:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":152,"nodeType":"RevertStatement","src":"2569:41:0"}},{"expression":{"id":159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":154,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":142,"src":"2620:6:0","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2644:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":155,"name":"_option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":139,"src":"2629:7:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2637:6:0","memberName":"toU128","nodeType":"MemberAccess","referencedDeclaration":1697,"src":"2629:14:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$_t_uint256_$returns$_t_uint128_$attached_to$_t_bytes_calldata_ptr_$","typeString":"function (bytes calldata,uint256) pure returns (uint128)"}},"id":158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2629:17:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"2620:26:0","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":160,"nodeType":"ExpressionStatement","src":"2620:26:0"},{"expression":{"id":166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":161,"name":"receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":144,"src":"2656:8:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"3136","id":164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2681:2:0","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"}],"expression":{"id":162,"name":"_option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":139,"src":"2667:7:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2675:5:0","memberName":"toB32","nodeType":"MemberAccess","referencedDeclaration":1778,"src":"2667:13:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$_t_uint256_$returns$_t_bytes32_$attached_to$_t_bytes_calldata_ptr_$","typeString":"function (bytes calldata,uint256) pure returns (bytes32)"}},"id":165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2667:17:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2656:28:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":167,"nodeType":"ExpressionStatement","src":"2656:28:0"}]},"id":169,"implemented":true,"kind":"function","modifiers":[],"name":"decodeNativeDropOption","nameLocation":"2429:22:0","nodeType":"FunctionDefinition","parameters":{"id":140,"nodeType":"ParameterList","parameters":[{"constant":false,"id":139,"mutability":"mutable","name":"_option","nameLocation":"2467:7:0","nodeType":"VariableDeclaration","scope":169,"src":"2452:22:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":138,"name":"bytes","nodeType":"ElementaryTypeName","src":"2452:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2451:24:0"},"returnParameters":{"id":145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":142,"mutability":"mutable","name":"amount","nameLocation":"2507:6:0","nodeType":"VariableDeclaration","scope":169,"src":"2499:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":141,"name":"uint128","nodeType":"ElementaryTypeName","src":"2499:7:0","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":144,"mutability":"mutable","name":"receiver","nameLocation":"2523:8:0","nodeType":"VariableDeclaration","scope":169,"src":"2515:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":143,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2515:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2498:34:0"},"scope":370,"src":"2420:271:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":220,"nodeType":"Block","src":"2831:237:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":180,"name":"_option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":171,"src":"2845:7:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2853:6:0","memberName":"length","nodeType":"MemberAccess","src":"2845:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3138","id":182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2863:2:0","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"2845:20:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":184,"name":"_option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":171,"src":"2869:7:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2877:6:0","memberName":"length","nodeType":"MemberAccess","src":"2869:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3334","id":186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2887:2:0","typeDescriptions":{"typeIdentifier":"t_rational_34_by_1","typeString":"int_const 34"},"value":"34"},"src":"2869:20:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2845:44:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":192,"nodeType":"IfStatement","src":"2841:90:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":189,"name":"Executor_InvalidLzComposeOption","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29,"src":"2898:31:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2898:33:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":191,"nodeType":"RevertStatement","src":"2891:40:0"}},{"expression":{"id":198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":193,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174,"src":"2941:5:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2963:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":194,"name":"_option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":171,"src":"2949:7:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2957:5:0","memberName":"toU16","nodeType":"MemberAccess","referencedDeclaration":1613,"src":"2949:13:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$_t_uint256_$returns$_t_uint16_$attached_to$_t_bytes_calldata_ptr_$","typeString":"function (bytes calldata,uint256) pure returns (uint16)"}},"id":197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2949:16:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2941:24:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":199,"nodeType":"ExpressionStatement","src":"2941:24:0"},{"expression":{"id":205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":200,"name":"gas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":176,"src":"2975:3:0","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"32","id":203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2996:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"expression":{"id":201,"name":"_option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":171,"src":"2981:7:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2989:6:0","memberName":"toU128","nodeType":"MemberAccess","referencedDeclaration":1697,"src":"2981:14:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$_t_uint256_$returns$_t_uint128_$attached_to$_t_bytes_calldata_ptr_$","typeString":"function (bytes calldata,uint256) pure returns (uint128)"}},"id":204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2981:17:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"2975:23:0","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":206,"nodeType":"ExpressionStatement","src":"2975:23:0"},{"expression":{"id":218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":207,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":178,"src":"3008:5:0","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":208,"name":"_option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":171,"src":"3016:7:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3024:6:0","memberName":"length","nodeType":"MemberAccess","src":"3016:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3334","id":210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3034:2:0","typeDescriptions":{"typeIdentifier":"t_rational_34_by_1","typeString":"int_const 34"},"value":"34"},"src":"3016:20:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3060:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"3016:45:0","trueExpression":{"arguments":[{"hexValue":"3138","id":214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3054:2:0","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"}],"expression":{"id":212,"name":"_option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":171,"src":"3039:7:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3047:6:0","memberName":"toU128","nodeType":"MemberAccess","referencedDeclaration":1697,"src":"3039:14:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$_t_uint256_$returns$_t_uint128_$attached_to$_t_bytes_calldata_ptr_$","typeString":"function (bytes calldata,uint256) pure returns (uint128)"}},"id":215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3039:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"3008:53:0","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":219,"nodeType":"ExpressionStatement","src":"3008:53:0"}]},"id":221,"implemented":true,"kind":"function","modifiers":[],"name":"decodeLzComposeOption","nameLocation":"2706:21:0","nodeType":"FunctionDefinition","parameters":{"id":172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":171,"mutability":"mutable","name":"_option","nameLocation":"2752:7:0","nodeType":"VariableDeclaration","scope":221,"src":"2737:22:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":170,"name":"bytes","nodeType":"ElementaryTypeName","src":"2737:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2727:38:0"},"returnParameters":{"id":179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":174,"mutability":"mutable","name":"index","nameLocation":"2796:5:0","nodeType":"VariableDeclaration","scope":221,"src":"2789:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":173,"name":"uint16","nodeType":"ElementaryTypeName","src":"2789:6:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":176,"mutability":"mutable","name":"gas","nameLocation":"2811:3:0","nodeType":"VariableDeclaration","scope":221,"src":"2803:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":175,"name":"uint128","nodeType":"ElementaryTypeName","src":"2803:7:0","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":178,"mutability":"mutable","name":"value","nameLocation":"2824:5:0","nodeType":"VariableDeclaration","scope":221,"src":"2816:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":177,"name":"uint128","nodeType":"ElementaryTypeName","src":"2816:7:0","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"2788:42:0"},"scope":370,"src":"2697:371:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":272,"nodeType":"Block","src":"3212:242:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":232,"name":"_option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":223,"src":"3226:7:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3234:6:0","memberName":"length","nodeType":"MemberAccess","src":"3226:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3230","id":234,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3244:2:0","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"src":"3226:20:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":236,"name":"_option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":223,"src":"3250:7:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3258:6:0","memberName":"length","nodeType":"MemberAccess","src":"3250:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3336","id":238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3268:2:0","typeDescriptions":{"typeIdentifier":"t_rational_36_by_1","typeString":"int_const 36"},"value":"36"},"src":"3250:20:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3226:44:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":244,"nodeType":"IfStatement","src":"3222:87:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":241,"name":"Executor_InvalidLzReadOption","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31,"src":"3279:28:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3279:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":243,"nodeType":"RevertStatement","src":"3272:37:0"}},{"expression":{"id":250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":245,"name":"gas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":226,"src":"3319:3:0","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":248,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3340:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":246,"name":"_option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":223,"src":"3325:7:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3333:6:0","memberName":"toU128","nodeType":"MemberAccess","referencedDeclaration":1697,"src":"3325:14:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$_t_uint256_$returns$_t_uint128_$attached_to$_t_bytes_calldata_ptr_$","typeString":"function (bytes calldata,uint256) pure returns (uint128)"}},"id":249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3325:17:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"3319:23:0","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":251,"nodeType":"ExpressionStatement","src":"3319:23:0"},{"expression":{"id":257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":252,"name":"calldataSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":228,"src":"3352:12:0","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"3136","id":255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3381:2:0","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"}],"expression":{"id":253,"name":"_option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":223,"src":"3367:7:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3375:5:0","memberName":"toU32","nodeType":"MemberAccess","referencedDeclaration":1641,"src":"3367:13:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$_t_uint256_$returns$_t_uint32_$attached_to$_t_bytes_calldata_ptr_$","typeString":"function (bytes calldata,uint256) pure returns (uint32)"}},"id":256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3367:17:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"3352:32:0","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":258,"nodeType":"ExpressionStatement","src":"3352:32:0"},{"expression":{"id":270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":259,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":230,"src":"3394:5:0","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":260,"name":"_option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":223,"src":"3402:7:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3410:6:0","memberName":"length","nodeType":"MemberAccess","src":"3402:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3336","id":262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3420:2:0","typeDescriptions":{"typeIdentifier":"t_rational_36_by_1","typeString":"int_const 36"},"value":"36"},"src":"3402:20:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3446:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"3402:45:0","trueExpression":{"arguments":[{"hexValue":"3230","id":266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3440:2:0","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"}],"expression":{"id":264,"name":"_option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":223,"src":"3425:7:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3433:6:0","memberName":"toU128","nodeType":"MemberAccess","referencedDeclaration":1697,"src":"3425:14:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$_t_uint256_$returns$_t_uint128_$attached_to$_t_bytes_calldata_ptr_$","typeString":"function (bytes calldata,uint256) pure returns (uint128)"}},"id":267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3425:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"3394:53:0","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":271,"nodeType":"ExpressionStatement","src":"3394:53:0"}]},"id":273,"implemented":true,"kind":"function","modifiers":[],"name":"decodeLzReadOption","nameLocation":"3083:18:0","nodeType":"FunctionDefinition","parameters":{"id":224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":223,"mutability":"mutable","name":"_option","nameLocation":"3126:7:0","nodeType":"VariableDeclaration","scope":273,"src":"3111:22:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":222,"name":"bytes","nodeType":"ElementaryTypeName","src":"3111:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3101:38:0"},"returnParameters":{"id":231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":226,"mutability":"mutable","name":"gas","nameLocation":"3171:3:0","nodeType":"VariableDeclaration","scope":273,"src":"3163:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":225,"name":"uint128","nodeType":"ElementaryTypeName","src":"3163:7:0","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":228,"mutability":"mutable","name":"calldataSize","nameLocation":"3183:12:0","nodeType":"VariableDeclaration","scope":273,"src":"3176:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":227,"name":"uint32","nodeType":"ElementaryTypeName","src":"3176:6:0","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":230,"mutability":"mutable","name":"value","nameLocation":"3205:5:0","nodeType":"VariableDeclaration","scope":273,"src":"3197:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":229,"name":"uint128","nodeType":"ElementaryTypeName","src":"3197:7:0","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"3162:49:0"},"scope":370,"src":"3074:380:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":296,"nodeType":"Block","src":"3558:93:0","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":282,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":277,"src":"3575:6:0","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3585:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3575:11:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"id":291,"name":"_gas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":275,"src":"3631:4:0","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":292,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":277,"src":"3637:6:0","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":289,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3614:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":290,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3618:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"3614:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3614:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"3575:69:0","trueExpression":{"arguments":[{"id":287,"name":"_gas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":275,"src":"3606:4:0","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":285,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3589:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":286,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3593:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"3589:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3589:22:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":281,"id":295,"nodeType":"Return","src":"3568:76:0"}]},"id":297,"implemented":true,"kind":"function","modifiers":[],"name":"encodeLzReceiveOption","nameLocation":"3469:21:0","nodeType":"FunctionDefinition","parameters":{"id":278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":275,"mutability":"mutable","name":"_gas","nameLocation":"3499:4:0","nodeType":"VariableDeclaration","scope":297,"src":"3491:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":274,"name":"uint128","nodeType":"ElementaryTypeName","src":"3491:7:0","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":277,"mutability":"mutable","name":"_value","nameLocation":"3513:6:0","nodeType":"VariableDeclaration","scope":297,"src":"3505:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":276,"name":"uint128","nodeType":"ElementaryTypeName","src":"3505:7:0","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"3490:30:0"},"returnParameters":{"id":281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":280,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":297,"src":"3544:12:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":279,"name":"bytes","nodeType":"ElementaryTypeName","src":"3544:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3543:14:0"},"scope":370,"src":"3460:191:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":312,"nodeType":"Block","src":"3762:60:0","statements":[{"expression":{"arguments":[{"id":308,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":299,"src":"3796:7:0","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":309,"name":"_receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":301,"src":"3805:9:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":306,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3779:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":307,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3783:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"3779:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3779:36:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":305,"id":311,"nodeType":"Return","src":"3772:43:0"}]},"id":313,"implemented":true,"kind":"function","modifiers":[],"name":"encodeNativeDropOption","nameLocation":"3666:22:0","nodeType":"FunctionDefinition","parameters":{"id":302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":299,"mutability":"mutable","name":"_amount","nameLocation":"3697:7:0","nodeType":"VariableDeclaration","scope":313,"src":"3689:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":298,"name":"uint128","nodeType":"ElementaryTypeName","src":"3689:7:0","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":301,"mutability":"mutable","name":"_receiver","nameLocation":"3714:9:0","nodeType":"VariableDeclaration","scope":313,"src":"3706:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":300,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3706:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3688:36:0"},"returnParameters":{"id":305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":304,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":313,"src":"3748:12:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":303,"name":"bytes","nodeType":"ElementaryTypeName","src":"3748:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3747:14:0"},"scope":370,"src":"3657:165:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":340,"nodeType":"Block","src":"3941:109:0","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":324,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":319,"src":"3958:6:0","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3968:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3958:11:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"id":334,"name":"_index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":315,"src":"4022:6:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":335,"name":"_gas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":317,"src":"4030:4:0","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":336,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":319,"src":"4036:6:0","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":332,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4005:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":333,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4009:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"4005:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4005:38:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"3958:85:0","trueExpression":{"arguments":[{"id":329,"name":"_index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":315,"src":"3989:6:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":330,"name":"_gas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":317,"src":"3997:4:0","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":327,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3972:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":328,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3976:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"3972:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3972:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":323,"id":339,"nodeType":"Return","src":"3951:92:0"}]},"id":341,"implemented":true,"kind":"function","modifiers":[],"name":"encodeLzComposeOption","nameLocation":"3837:21:0","nodeType":"FunctionDefinition","parameters":{"id":320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":315,"mutability":"mutable","name":"_index","nameLocation":"3866:6:0","nodeType":"VariableDeclaration","scope":341,"src":"3859:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":314,"name":"uint16","nodeType":"ElementaryTypeName","src":"3859:6:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":317,"mutability":"mutable","name":"_gas","nameLocation":"3882:4:0","nodeType":"VariableDeclaration","scope":341,"src":"3874:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":316,"name":"uint128","nodeType":"ElementaryTypeName","src":"3874:7:0","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":319,"mutability":"mutable","name":"_value","nameLocation":"3896:6:0","nodeType":"VariableDeclaration","scope":341,"src":"3888:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":318,"name":"uint128","nodeType":"ElementaryTypeName","src":"3888:7:0","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"3858:45:0"},"returnParameters":{"id":323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":322,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":341,"src":"3927:12:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":321,"name":"bytes","nodeType":"ElementaryTypeName","src":"3927:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3926:14:0"},"scope":370,"src":"3828:222:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":368,"nodeType":"Block","src":"4203:123:0","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":352,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":347,"src":"4220:6:0","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4230:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4220:11:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"id":362,"name":"_gas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":343,"src":"4291:4:0","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":363,"name":"_calldataSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":345,"src":"4297:13:0","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":364,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":347,"src":"4312:6:0","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":360,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4274:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":361,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4278:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"4274:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4274:45:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"4220:99:0","trueExpression":{"arguments":[{"id":357,"name":"_gas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":343,"src":"4251:4:0","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":358,"name":"_calldataSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":345,"src":"4257:13:0","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint32","typeString":"uint32"}],"expression":{"id":355,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4234:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":356,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4238:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"4234:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4234:37:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":351,"id":367,"nodeType":"Return","src":"4213:106:0"}]},"id":369,"implemented":true,"kind":"function","modifiers":[],"name":"encodeLzReadOption","nameLocation":"4065:18:0","nodeType":"FunctionDefinition","parameters":{"id":348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":343,"mutability":"mutable","name":"_gas","nameLocation":"4101:4:0","nodeType":"VariableDeclaration","scope":369,"src":"4093:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":342,"name":"uint128","nodeType":"ElementaryTypeName","src":"4093:7:0","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":345,"mutability":"mutable","name":"_calldataSize","nameLocation":"4122:13:0","nodeType":"VariableDeclaration","scope":369,"src":"4115:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":344,"name":"uint32","nodeType":"ElementaryTypeName","src":"4115:6:0","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":347,"mutability":"mutable","name":"_value","nameLocation":"4153:6:0","nodeType":"VariableDeclaration","scope":369,"src":"4145:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":346,"name":"uint128","nodeType":"ElementaryTypeName","src":"4145:7:0","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"4083:82:0"},"returnParameters":{"id":351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":350,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":369,"src":"4189:12:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":349,"name":"bytes","nodeType":"ElementaryTypeName","src":"4189:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4188:14:0"},"scope":370,"src":"4056:270:0","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":371,"src":"145:4183:0","usedErrors":[25,27,29,31],"usedEvents":[]}],"src":"38:4291:0"},"id":0},"@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol":{"ast":{"absolutePath":"@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol","exportedSymbols":{"BitMap256":[1783],"BytesLib":[23039],"CalldataBytesLib":[1779],"DVNOptions":[845]},"id":846,"license":"LZBL-1.2","nodeType":"SourceUnit","nodes":[{"id":372,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"38:24:1"},{"absolutePath":"solidity-bytes-utils/contracts/BytesLib.sol","file":"solidity-bytes-utils/contracts/BytesLib.sol","id":374,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":846,"sourceUnit":23040,"src":"64:71:1","symbolAliases":[{"foreign":{"id":373,"name":"BytesLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23039,"src":"73:8:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol","file":"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol","id":376,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":846,"sourceUnit":1845,"src":"137:100:1","symbolAliases":[{"foreign":{"id":375,"name":"BitMap256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1783,"src":"146:9:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol","file":"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol","id":378,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":846,"sourceUnit":1780,"src":"238:105:1","symbolAliases":[{"foreign":{"id":377,"name":"CalldataBytesLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1779,"src":"247:16:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"DVNOptions","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":845,"linearizedBaseContracts":[845],"name":"DVNOptions","nameLocation":"353:10:1","nodeType":"ContractDefinition","nodes":[{"global":false,"id":381,"libraryName":{"id":379,"name":"CalldataBytesLib","nameLocations":["376:16:1"],"nodeType":"IdentifierPath","referencedDeclaration":1779,"src":"376:16:1"},"nodeType":"UsingForDirective","src":"370:33:1","typeName":{"id":380,"name":"bytes","nodeType":"ElementaryTypeName","src":"397:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},{"global":false,"id":384,"libraryName":{"id":382,"name":"BytesLib","nameLocations":["414:8:1"],"nodeType":"IdentifierPath","referencedDeclaration":23039,"src":"414:8:1"},"nodeType":"UsingForDirective","src":"408:25:1","typeName":{"id":383,"name":"bytes","nodeType":"ElementaryTypeName","src":"427:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},{"constant":true,"id":387,"mutability":"constant","name":"WORKER_ID","nameLocation":"463:9:1","nodeType":"VariableDeclaration","scope":845,"src":"439:37:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":385,"name":"uint8","nodeType":"ElementaryTypeName","src":"439:5:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"32","id":386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"475:1:1","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"internal"},{"constant":true,"id":390,"mutability":"constant","name":"OPTION_TYPE_PRECRIME","nameLocation":"506:20:1","nodeType":"VariableDeclaration","scope":845,"src":"482:48:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":388,"name":"uint8","nodeType":"ElementaryTypeName","src":"482:5:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"31","id":389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"529:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"errorSelector":"d3d3d9bc","id":392,"name":"DVN_InvalidDVNIdx","nameLocation":"543:17:1","nodeType":"ErrorDefinition","parameters":{"id":391,"nodeType":"ParameterList","parameters":[],"src":"560:2:1"},"src":"537:26:1"},{"errorSelector":"04eb6e0c","id":396,"name":"DVN_InvalidDVNOptions","nameLocation":"574:21:1","nodeType":"ErrorDefinition","parameters":{"id":395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":394,"mutability":"mutable","name":"cursor","nameLocation":"604:6:1","nodeType":"VariableDeclaration","scope":396,"src":"596:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":393,"name":"uint256","nodeType":"ElementaryTypeName","src":"596:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"595:16:1"},"src":"568:44:1"},{"body":{"id":606,"nodeType":"Block","src":"1251:2455:1","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":408,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":399,"src":"1265:8:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1274:6:1","memberName":"length","nodeType":"MemberAccess","src":"1265:15:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1284:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1265:20:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":416,"nodeType":"IfStatement","src":"1261:57:1","trueBody":{"expression":{"components":[{"id":412,"name":"dvnOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":403,"src":"1295:10:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"id":413,"name":"dvnIndices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":406,"src":"1307:10:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}}],"id":414,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1294:24:1","typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_array$_t_uint8_$dyn_memory_ptr_$","typeString":"tuple(bytes memory[] memory,uint8[] memory)"}},"functionReturnParameters":407,"id":415,"nodeType":"Return","src":"1287:31:1"}},{"assignments":[418],"declarations":[{"constant":false,"id":418,"mutability":"mutable","name":"numDVNs","nameLocation":"1335:7:1","nodeType":"VariableDeclaration","scope":606,"src":"1329:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":417,"name":"uint8","nodeType":"ElementaryTypeName","src":"1329:5:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":422,"initialValue":{"arguments":[{"id":420,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":399,"src":"1356:8:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":419,"name":"getNumDVNs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":779,"src":"1345:10:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint8_$","typeString":"function (bytes memory) pure returns (uint8)"}},"id":421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1345:20:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"1329:36:1"},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":423,"name":"numDVNs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":418,"src":"1452:7:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1463:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1452:12:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":462,"nodeType":"IfStatement","src":"1448:255:1","trueBody":{"id":461,"nodeType":"Block","src":"1466:237:1","statements":[{"expression":{"id":432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":426,"name":"dvnOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":403,"src":"1480:10:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"31","id":430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1505:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":429,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1493:11:1","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory[] memory)"},"typeName":{"baseType":{"id":427,"name":"bytes","nodeType":"ElementaryTypeName","src":"1497:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":428,"nodeType":"ArrayTypeName","src":"1497:7:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":431,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1493:14:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"src":"1480:27:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":433,"nodeType":"ExpressionStatement","src":"1480:27:1"},{"expression":{"id":438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":434,"name":"dvnOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":403,"src":"1521:10:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":436,"indexExpression":{"hexValue":"30","id":435,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1532:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1521:13:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":437,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":399,"src":"1537:8:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"1521:24:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":439,"nodeType":"ExpressionStatement","src":"1521:24:1"},{"expression":{"id":446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":440,"name":"dvnIndices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":406,"src":"1560:10:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"31","id":444,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1585:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":443,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1573:11:1","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint8_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint8[] memory)"},"typeName":{"baseType":{"id":441,"name":"uint8","nodeType":"ElementaryTypeName","src":"1577:5:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":442,"nodeType":"ArrayTypeName","src":"1577:7:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}}},"id":445,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1573:14:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"src":"1560:27:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":447,"nodeType":"ExpressionStatement","src":"1560:27:1"},{"expression":{"id":455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":448,"name":"dvnIndices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":406,"src":"1601:10:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":450,"indexExpression":{"hexValue":"30","id":449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1612:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1601:13:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":453,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1634:1:1","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"expression":{"id":451,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":399,"src":"1617:8:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1626:7:1","memberName":"toUint8","nodeType":"MemberAccess","referencedDeclaration":22822,"src":"1617:16:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$attached_to$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,uint256) pure returns (uint8)"}},"id":454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1617:19:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"1601:35:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":456,"nodeType":"ExpressionStatement","src":"1601:35:1"},{"expression":{"components":[{"id":457,"name":"dvnOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":403,"src":"1669:10:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"id":458,"name":"dvnIndices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":406,"src":"1681:10:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}}],"id":459,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1668:24:1","typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_array$_t_uint8_$dyn_memory_ptr_$","typeString":"tuple(bytes memory[] memory,uint8[] memory)"}},"functionReturnParameters":407,"id":460,"nodeType":"Return","src":"1661:31:1"}]}},{"expression":{"id":469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":463,"name":"dvnIndices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":406,"src":"1775:10:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":467,"name":"numDVNs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":418,"src":"1800:7:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":466,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1788:11:1","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint8_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint8[] memory)"},"typeName":{"baseType":{"id":464,"name":"uint8","nodeType":"ElementaryTypeName","src":"1792:5:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":465,"nodeType":"ArrayTypeName","src":"1792:7:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}}},"id":468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1788:20:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"src":"1775:33:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":470,"nodeType":"ExpressionStatement","src":"1775:33:1"},{"expression":{"id":477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":471,"name":"dvnOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":403,"src":"1818:10:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":475,"name":"numDVNs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":418,"src":"1843:7:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":474,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1831:11:1","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory[] memory)"},"typeName":{"baseType":{"id":472,"name":"bytes","nodeType":"ElementaryTypeName","src":"1835:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":473,"nodeType":"ArrayTypeName","src":"1835:7:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1831:20:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"src":"1818:33:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":478,"nodeType":"ExpressionStatement","src":"1818:33:1"},{"id":605,"nodeType":"UncheckedBlock","src":"1861:1839:1","statements":[{"assignments":[480],"declarations":[{"constant":false,"id":480,"mutability":"mutable","name":"cursor","nameLocation":"1893:6:1","nodeType":"VariableDeclaration","scope":605,"src":"1885:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":479,"name":"uint256","nodeType":"ElementaryTypeName","src":"1885:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":482,"initialValue":{"hexValue":"30","id":481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1902:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1885:18:1"},{"assignments":[484],"declarations":[{"constant":false,"id":484,"mutability":"mutable","name":"start","nameLocation":"1925:5:1","nodeType":"VariableDeclaration","scope":605,"src":"1917:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":483,"name":"uint256","nodeType":"ElementaryTypeName","src":"1917:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":486,"initialValue":{"hexValue":"30","id":485,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1933:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1917:17:1"},{"assignments":[488],"declarations":[{"constant":false,"id":488,"mutability":"mutable","name":"lastDVNIdx","nameLocation":"1954:10:1","nodeType":"VariableDeclaration","scope":605,"src":"1948:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":487,"name":"uint8","nodeType":"ElementaryTypeName","src":"1948:5:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":490,"initialValue":{"hexValue":"323535","id":489,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1967:3:1","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"nodeType":"VariableDeclarationStatement","src":"1948:22:1"},{"body":{"id":565,"nodeType":"Block","src":"2047:1145:1","statements":[{"expression":{"id":496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2065:8:1","subExpression":{"id":495,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":480,"src":"2067:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":497,"nodeType":"ExpressionStatement","src":"2065:8:1"},{"assignments":[499],"declarations":[{"constant":false,"id":499,"mutability":"mutable","name":"optionLength","nameLocation":"2185:12:1","nodeType":"VariableDeclaration","scope":565,"src":"2178:19:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":498,"name":"uint16","nodeType":"ElementaryTypeName","src":"2178:6:1","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":504,"initialValue":{"arguments":[{"id":502,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":480,"src":"2218:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":500,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":399,"src":"2200:8:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2209:8:1","memberName":"toUint16","nodeType":"MemberAccess","referencedDeclaration":22848,"src":"2200:17:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint16_$attached_to$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,uint256) pure returns (uint16)"}},"id":503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2200:25:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"2178:47:1"},{"expression":{"id":507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":505,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":480,"src":"2243:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2253:1:1","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2243:11:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":508,"nodeType":"ExpressionStatement","src":"2243:11:1"},{"assignments":[510],"declarations":[{"constant":false,"id":510,"mutability":"mutable","name":"dvnIdx","nameLocation":"2341:6:1","nodeType":"VariableDeclaration","scope":565,"src":"2335:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":509,"name":"uint8","nodeType":"ElementaryTypeName","src":"2335:5:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":515,"initialValue":{"arguments":[{"id":513,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":480,"src":"2367:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":511,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":399,"src":"2350:8:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2359:7:1","memberName":"toUint8","nodeType":"MemberAccess","referencedDeclaration":22822,"src":"2350:16:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$attached_to$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,uint256) pure returns (uint8)"}},"id":514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2350:24:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"2335:39:1"},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":516,"name":"lastDVNIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":488,"src":"2636:10:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"323535","id":517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2650:3:1","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"2636:17:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":524,"name":"dvnIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":510,"src":"2725:6:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":525,"name":"lastDVNIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":488,"src":"2735:10:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2725:20:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":559,"nodeType":"IfStatement","src":"2721:416:1","trueBody":{"id":558,"nodeType":"Block","src":"2747:390:1","statements":[{"assignments":[528],"declarations":[{"constant":false,"id":528,"mutability":"mutable","name":"len","nameLocation":"2777:3:1","nodeType":"VariableDeclaration","scope":558,"src":"2769:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":527,"name":"uint256","nodeType":"ElementaryTypeName","src":"2769:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":534,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":529,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":480,"src":"2783:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":530,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":484,"src":"2792:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2783:14:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"33","id":532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2800:1:1","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"2783:18:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2769:32:1"},{"assignments":[536],"declarations":[{"constant":false,"id":536,"mutability":"mutable","name":"opt","nameLocation":"2876:3:1","nodeType":"VariableDeclaration","scope":558,"src":"2863:16:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":535,"name":"bytes","nodeType":"ElementaryTypeName","src":"2863:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":542,"initialValue":{"arguments":[{"id":539,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":484,"src":"2897:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":540,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":528,"src":"2904:3:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":537,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":399,"src":"2882:8:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2891:5:1","memberName":"slice","nodeType":"MemberAccess","referencedDeclaration":22770,"src":"2882:14:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$attached_to$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,uint256,uint256) pure returns (bytes memory)"}},"id":541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2882:26:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2863:45:1"},{"expression":{"arguments":[{"id":544,"name":"dvnOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":403,"src":"2948:10:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"id":545,"name":"dvnIndices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":406,"src":"2960:10:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},{"id":546,"name":"lastDVNIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":488,"src":"2972:10:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":547,"name":"opt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":536,"src":"2984:3:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":543,"name":"_insertDVNOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":689,"src":"2930:17:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_array$_t_uint8_$dyn_memory_ptr_$_t_uint8_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory[] memory,uint8[] memory,uint8,bytes memory) pure"}},"id":548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2930:58:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":549,"nodeType":"ExpressionStatement","src":"2930:58:1"},{"expression":{"id":552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":550,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":484,"src":"3065:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":551,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":528,"src":"3074:3:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3065:12:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":553,"nodeType":"ExpressionStatement","src":"3065:12:1"},{"expression":{"id":556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":554,"name":"lastDVNIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":488,"src":"3099:10:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":555,"name":"dvnIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":510,"src":"3112:6:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"3099:19:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":557,"nodeType":"ExpressionStatement","src":"3099:19:1"}]}},"id":560,"nodeType":"IfStatement","src":"2632:505:1","trueBody":{"id":523,"nodeType":"Block","src":"2655:60:1","statements":[{"expression":{"id":521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":519,"name":"lastDVNIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":488,"src":"2677:10:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":520,"name":"dvnIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":510,"src":"2690:6:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2677:19:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":522,"nodeType":"ExpressionStatement","src":"2677:19:1"}]}},{"expression":{"id":563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":561,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":480,"src":"3155:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":562,"name":"optionLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":499,"src":"3165:12:1","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"3155:22:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":564,"nodeType":"ExpressionStatement","src":"3155:22:1"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":491,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":480,"src":"2021:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":492,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":399,"src":"2030:8:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2039:6:1","memberName":"length","nodeType":"MemberAccess","src":"2030:15:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2021:24:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":566,"nodeType":"WhileStatement","src":"2014:1178:1"},{"assignments":[568],"declarations":[{"constant":false,"id":568,"mutability":"mutable","name":"size","nameLocation":"3391:4:1","nodeType":"VariableDeclaration","scope":605,"src":"3383:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":567,"name":"uint256","nodeType":"ElementaryTypeName","src":"3383:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":572,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":569,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":480,"src":"3398:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":570,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":484,"src":"3407:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3398:14:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3383:29:1"},{"assignments":[574],"declarations":[{"constant":false,"id":574,"mutability":"mutable","name":"op","nameLocation":"3439:2:1","nodeType":"VariableDeclaration","scope":605,"src":"3426:15:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":573,"name":"bytes","nodeType":"ElementaryTypeName","src":"3426:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":580,"initialValue":{"arguments":[{"id":577,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":484,"src":"3459:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":578,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":568,"src":"3466:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":575,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":399,"src":"3444:8:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3453:5:1","memberName":"slice","nodeType":"MemberAccess","referencedDeclaration":22770,"src":"3444:14:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$attached_to$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,uint256,uint256) pure returns (bytes memory)"}},"id":579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3444:27:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3426:45:1"},{"expression":{"arguments":[{"id":582,"name":"dvnOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":403,"src":"3503:10:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"id":583,"name":"dvnIndices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":406,"src":"3515:10:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},{"id":584,"name":"lastDVNIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":488,"src":"3527:10:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":585,"name":"op","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":574,"src":"3539:2:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":581,"name":"_insertDVNOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":689,"src":"3485:17:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_array$_t_uint8_$dyn_memory_ptr_$_t_uint8_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory[] memory,uint8[] memory,uint8,bytes memory) pure"}},"id":586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3485:57:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":587,"nodeType":"ExpressionStatement","src":"3485:57:1"},{"body":{"id":603,"nodeType":"Block","src":"3642:48:1","statements":[{"expression":{"id":601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"3660:15:1","subExpression":{"baseExpression":{"id":598,"name":"dvnIndices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":406,"src":"3662:10:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":600,"indexExpression":{"id":599,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":589,"src":"3673:1:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3662:13:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":602,"nodeType":"ExpressionStatement","src":"3660:15:1"}]},"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":592,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":589,"src":"3624:1:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":593,"name":"numDVNs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":418,"src":"3628:7:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"3624:11:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":604,"initializationExpression":{"assignments":[589],"declarations":[{"constant":false,"id":589,"mutability":"mutable","name":"i","nameLocation":"3617:1:1","nodeType":"VariableDeclaration","scope":604,"src":"3611:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":588,"name":"uint8","nodeType":"ElementaryTypeName","src":"3611:5:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":591,"initialValue":{"hexValue":"30","id":590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3621:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3611:11:1"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3637:3:1","subExpression":{"id":595,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":589,"src":"3639:1:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":597,"nodeType":"ExpressionStatement","src":"3637:3:1"},"nodeType":"ForStatement","src":"3606:84:1"}]}]},"documentation":{"id":397,"nodeType":"StructuredDocumentation","src":"618:484:1","text":"@dev group dvn options by its idx\n @param _options [dvn_id][dvn_option][dvn_id][dvn_option]...\n        dvn_option = [option_size][dvn_idx][option_type][option]\n        option_size = len(dvn_idx) + len(option_type) + len(option)\n        dvn_id: uint8, dvn_idx: uint8, option_size: uint16, option_type: uint8, option: bytes\n @return dvnOptions the grouped options, still share the same format of _options\n @return dvnIndices the dvn indices"},"id":607,"implemented":true,"kind":"function","modifiers":[],"name":"groupDVNOptionsByIdx","nameLocation":"1116:20:1","nodeType":"FunctionDefinition","parameters":{"id":400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":399,"mutability":"mutable","name":"_options","nameLocation":"1159:8:1","nodeType":"VariableDeclaration","scope":607,"src":"1146:21:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":398,"name":"bytes","nodeType":"ElementaryTypeName","src":"1146:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1136:37:1"},"returnParameters":{"id":407,"nodeType":"ParameterList","parameters":[{"constant":false,"id":403,"mutability":"mutable","name":"dvnOptions","nameLocation":"1212:10:1","nodeType":"VariableDeclaration","scope":607,"src":"1197:25:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":401,"name":"bytes","nodeType":"ElementaryTypeName","src":"1197:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":402,"nodeType":"ArrayTypeName","src":"1197:7:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":406,"mutability":"mutable","name":"dvnIndices","nameLocation":"1239:10:1","nodeType":"VariableDeclaration","scope":607,"src":"1224:25:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":404,"name":"uint8","nodeType":"ElementaryTypeName","src":"1224:5:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":405,"nodeType":"ArrayTypeName","src":"1224:7:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"}],"src":"1196:54:1"},"scope":845,"src":"1107:2599:1","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":688,"nodeType":"Block","src":"3888:733:1","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":620,"name":"_dvnIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":615,"src":"4037:7:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"323535","id":621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4048:3:1","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"4037:14:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":626,"nodeType":"IfStatement","src":"4033:46:1","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":623,"name":"DVN_InvalidDVNIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":392,"src":"4060:17:1","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4060:19:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":625,"nodeType":"RevertStatement","src":"4053:26:1"}},{"assignments":[628],"declarations":[{"constant":false,"id":628,"mutability":"mutable","name":"dvnIdxAdj","nameLocation":"4095:9:1","nodeType":"VariableDeclaration","scope":688,"src":"4089:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":627,"name":"uint8","nodeType":"ElementaryTypeName","src":"4089:5:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":632,"initialValue":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":629,"name":"_dvnIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":615,"src":"4107:7:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":630,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4117:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4107:11:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"4089:29:1"},{"body":{"id":686,"nodeType":"Block","src":"4178:437:1","statements":[{"assignments":[645],"declarations":[{"constant":false,"id":645,"mutability":"mutable","name":"index","nameLocation":"4198:5:1","nodeType":"VariableDeclaration","scope":686,"src":"4192:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":644,"name":"uint8","nodeType":"ElementaryTypeName","src":"4192:5:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":649,"initialValue":{"baseExpression":{"id":646,"name":"_dvnIndices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":613,"src":"4206:11:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":648,"indexExpression":{"id":647,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":634,"src":"4218:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4206:14:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"4192:28:1"},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":650,"name":"dvnIdxAdj","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":628,"src":"4238:9:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":651,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":645,"src":"4251:5:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4238:18:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":667,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":645,"src":"4386:5:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4395:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4386:10:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":684,"nodeType":"IfStatement","src":"4382:223:1","trueBody":{"id":683,"nodeType":"Block","src":"4398:207:1","statements":[{"expression":{"id":674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":670,"name":"_dvnIndices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":613,"src":"4495:11:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":672,"indexExpression":{"id":671,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":634,"src":"4507:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4495:14:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":673,"name":"dvnIdxAdj","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":628,"src":"4512:9:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4495:26:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":675,"nodeType":"ExpressionStatement","src":"4495:26:1"},{"expression":{"id":680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":676,"name":"_dvnOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":610,"src":"4539:11:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":678,"indexExpression":{"id":677,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":634,"src":"4551:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4539:14:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":679,"name":"_newOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":617,"src":"4556:11:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"4539:28:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":681,"nodeType":"ExpressionStatement","src":"4539:28:1"},{"id":682,"nodeType":"Break","src":"4585:5:1"}]}},"id":685,"nodeType":"IfStatement","src":"4234:371:1","trueBody":{"id":666,"nodeType":"Block","src":"4258:118:1","statements":[{"expression":{"id":663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":653,"name":"_dvnOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":610,"src":"4276:11:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":655,"indexExpression":{"id":654,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":634,"src":"4288:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4276:14:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":658,"name":"_dvnOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":610,"src":"4310:11:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":660,"indexExpression":{"id":659,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":634,"src":"4322:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4310:14:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":661,"name":"_newOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":617,"src":"4326:11:1","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":656,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4293:3:1","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":657,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4297:12:1","memberName":"encodePacked","nodeType":"MemberAccess","src":"4293:16:1","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4293:45:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"4276:62:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":664,"nodeType":"ExpressionStatement","src":"4276:62:1"},{"id":665,"nodeType":"Break","src":"4356:5:1"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":637,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":634,"src":"4149:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":638,"name":"_dvnIndices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":613,"src":"4153:11:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4165:6:1","memberName":"length","nodeType":"MemberAccess","src":"4153:18:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4149:22:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":687,"initializationExpression":{"assignments":[634],"declarations":[{"constant":false,"id":634,"mutability":"mutable","name":"j","nameLocation":"4142:1:1","nodeType":"VariableDeclaration","scope":687,"src":"4134:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":633,"name":"uint256","nodeType":"ElementaryTypeName","src":"4134:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":636,"initialValue":{"hexValue":"30","id":635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4146:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4134:13:1"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4173:3:1","subExpression":{"id":641,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":634,"src":"4175:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":643,"nodeType":"ExpressionStatement","src":"4173:3:1"},"nodeType":"ForStatement","src":"4129:486:1"}]},"id":689,"implemented":true,"kind":"function","modifiers":[],"name":"_insertDVNOptions","nameLocation":"3721:17:1","nodeType":"FunctionDefinition","parameters":{"id":618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":610,"mutability":"mutable","name":"_dvnOptions","nameLocation":"3763:11:1","nodeType":"VariableDeclaration","scope":689,"src":"3748:26:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":608,"name":"bytes","nodeType":"ElementaryTypeName","src":"3748:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":609,"nodeType":"ArrayTypeName","src":"3748:7:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":613,"mutability":"mutable","name":"_dvnIndices","nameLocation":"3799:11:1","nodeType":"VariableDeclaration","scope":689,"src":"3784:26:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":611,"name":"uint8","nodeType":"ElementaryTypeName","src":"3784:5:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":612,"nodeType":"ArrayTypeName","src":"3784:7:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"},{"constant":false,"id":615,"mutability":"mutable","name":"_dvnIdx","nameLocation":"3826:7:1","nodeType":"VariableDeclaration","scope":689,"src":"3820:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":614,"name":"uint8","nodeType":"ElementaryTypeName","src":"3820:5:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":617,"mutability":"mutable","name":"_newOptions","nameLocation":"3856:11:1","nodeType":"VariableDeclaration","scope":689,"src":"3843:24:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":616,"name":"bytes","nodeType":"ElementaryTypeName","src":"3843:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3738:135:1"},"returnParameters":{"id":619,"nodeType":"ParameterList","parameters":[],"src":"3888:0:1"},"scope":845,"src":"3712:909:1","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":778,"nodeType":"Block","src":"4822:1357:1","statements":[{"assignments":[698],"declarations":[{"constant":false,"id":698,"mutability":"mutable","name":"cursor","nameLocation":"4840:6:1","nodeType":"VariableDeclaration","scope":778,"src":"4832:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":697,"name":"uint256","nodeType":"ElementaryTypeName","src":"4832:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":700,"initialValue":{"hexValue":"30","id":699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4849:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4832:18:1"},{"assignments":[703],"declarations":[{"constant":false,"id":703,"mutability":"mutable","name":"bitmap","nameLocation":"4870:6:1","nodeType":"VariableDeclaration","scope":778,"src":"4860:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BitMap256_$1783","typeString":"BitMap256"},"typeName":{"id":702,"nodeType":"UserDefinedTypeName","pathNode":{"id":701,"name":"BitMap256","nameLocations":["4860:9:1"],"nodeType":"IdentifierPath","referencedDeclaration":1783,"src":"4860:9:1"},"referencedDeclaration":1783,"src":"4860:9:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BitMap256_$1783","typeString":"BitMap256"}},"visibility":"internal"}],"id":704,"nodeType":"VariableDeclarationStatement","src":"4860:16:1"},{"id":768,"nodeType":"UncheckedBlock","src":"4928:1168:1","statements":[{"body":{"id":766,"nodeType":"Block","src":"4985:1101:1","statements":[{"expression":{"id":710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5003:8:1","subExpression":{"id":709,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":698,"src":"5005:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":711,"nodeType":"ExpressionStatement","src":"5003:8:1"},{"assignments":[713],"declarations":[{"constant":false,"id":713,"mutability":"mutable","name":"optionLength","nameLocation":"5055:12:1","nodeType":"VariableDeclaration","scope":766,"src":"5048:19:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":712,"name":"uint16","nodeType":"ElementaryTypeName","src":"5048:6:1","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":718,"initialValue":{"arguments":[{"id":716,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":698,"src":"5088:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":714,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":692,"src":"5070:8:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5079:8:1","memberName":"toUint16","nodeType":"MemberAccess","referencedDeclaration":22848,"src":"5070:17:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint16_$attached_to$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,uint256) pure returns (uint16)"}},"id":717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5070:25:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"5048:47:1"},{"expression":{"id":721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":719,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":698,"src":"5113:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5123:1:1","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"5113:11:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":722,"nodeType":"ExpressionStatement","src":"5113:11:1"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":723,"name":"optionLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":713,"src":"5146:12:1","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"32","id":724,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5161:1:1","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"5146:16:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":730,"nodeType":"IfStatement","src":"5142:58:1","trueBody":{"errorCall":{"arguments":[{"id":727,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":698,"src":"5193:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":726,"name":"DVN_InvalidDVNOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":396,"src":"5171:21:1","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5171:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":729,"nodeType":"RevertStatement","src":"5164:36:1"}},{"assignments":[732],"declarations":[{"constant":false,"id":732,"mutability":"mutable","name":"dvnIdx","nameLocation":"5283:6:1","nodeType":"VariableDeclaration","scope":766,"src":"5277:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":731,"name":"uint8","nodeType":"ElementaryTypeName","src":"5277:5:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":737,"initialValue":{"arguments":[{"id":735,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":698,"src":"5309:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":733,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":692,"src":"5292:8:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5301:7:1","memberName":"toUint8","nodeType":"MemberAccess","referencedDeclaration":22822,"src":"5292:16:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$attached_to$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,uint256) pure returns (uint8)"}},"id":736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5292:24:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"5277:39:1"},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":738,"name":"dvnIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":732,"src":"5848:6:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"323535","id":739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5858:3:1","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"5848:13:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":744,"nodeType":"IfStatement","src":"5844:45:1","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":741,"name":"DVN_InvalidDVNIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":392,"src":"5870:17:1","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5870:19:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":743,"nodeType":"RevertStatement","src":"5863:26:1"}},{"condition":{"id":749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5911:19:1","subExpression":{"arguments":[{"id":747,"name":"dvnIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":732,"src":"5923:6:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":745,"name":"bitmap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":703,"src":"5912:6:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BitMap256_$1783","typeString":"BitMap256"}},"id":746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5919:3:1","memberName":"get","nodeType":"MemberAccess","referencedDeclaration":1814,"src":"5912:10:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_BitMap256_$1783_$_t_uint8_$returns$_t_bool_$attached_to$_t_userDefinedValueType$_BitMap256_$1783_$","typeString":"function (BitMap256,uint8) pure returns (bool)"}},"id":748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5912:18:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":761,"nodeType":"IfStatement","src":"5907:124:1","trueBody":{"id":760,"nodeType":"Block","src":"5932:99:1","statements":[{"expression":{"id":751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5954:9:1","subExpression":{"id":750,"name":"numDVNs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":695,"src":"5956:7:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":752,"nodeType":"ExpressionStatement","src":"5954:9:1"},{"expression":{"id":758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":753,"name":"bitmap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":703,"src":"5985:6:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BitMap256_$1783","typeString":"BitMap256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":756,"name":"dvnIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":732,"src":"6005:6:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":754,"name":"bitmap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":703,"src":"5994:6:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BitMap256_$1783","typeString":"BitMap256"}},"id":755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6001:3:1","memberName":"set","nodeType":"MemberAccess","referencedDeclaration":1843,"src":"5994:10:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_BitMap256_$1783_$_t_uint8_$returns$_t_userDefinedValueType$_BitMap256_$1783_$attached_to$_t_userDefinedValueType$_BitMap256_$1783_$","typeString":"function (BitMap256,uint8) pure returns (BitMap256)"}},"id":757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5994:18:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BitMap256_$1783","typeString":"BitMap256"}},"src":"5985:27:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BitMap256_$1783","typeString":"BitMap256"}},"id":759,"nodeType":"ExpressionStatement","src":"5985:27:1"}]}},{"expression":{"id":764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":762,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":698,"src":"6049:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":763,"name":"optionLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":713,"src":"6059:12:1","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6049:22:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":765,"nodeType":"ExpressionStatement","src":"6049:22:1"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":705,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":698,"src":"4959:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":706,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":692,"src":"4968:8:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4977:6:1","memberName":"length","nodeType":"MemberAccess","src":"4968:15:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4959:24:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":767,"nodeType":"WhileStatement","src":"4952:1134:1"}]},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":769,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":698,"src":"6109:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":770,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":692,"src":"6119:8:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6128:6:1","memberName":"length","nodeType":"MemberAccess","src":"6119:15:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6109:25:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":777,"nodeType":"IfStatement","src":"6105:67:1","trueBody":{"errorCall":{"arguments":[{"id":774,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":698,"src":"6165:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":773,"name":"DVN_InvalidDVNOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":396,"src":"6143:21:1","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6143:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":776,"nodeType":"RevertStatement","src":"6136:36:1"}}]},"documentation":{"id":690,"nodeType":"StructuredDocumentation","src":"4627:109:1","text":"@dev get the number of unique dvns\n @param _options the format is the same as groupDVNOptionsByIdx"},"id":779,"implemented":true,"kind":"function","modifiers":[],"name":"getNumDVNs","nameLocation":"4750:10:1","nodeType":"FunctionDefinition","parameters":{"id":693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":692,"mutability":"mutable","name":"_options","nameLocation":"4774:8:1","nodeType":"VariableDeclaration","scope":779,"src":"4761:21:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":691,"name":"bytes","nodeType":"ElementaryTypeName","src":"4761:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4760:23:1"},"returnParameters":{"id":696,"nodeType":"ParameterList","parameters":[{"constant":false,"id":695,"mutability":"mutable","name":"numDVNs","nameLocation":"4813:7:1","nodeType":"VariableDeclaration","scope":779,"src":"4807:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":694,"name":"uint8","nodeType":"ElementaryTypeName","src":"4807:5:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"4806:15:1"},"scope":845,"src":"4741:1438:1","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":843,"nodeType":"Block","src":"6716:602:1","statements":[{"id":842,"nodeType":"UncheckedBlock","src":"6726:586:1","statements":[{"expression":{"id":797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":793,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":791,"src":"6780:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":794,"name":"_cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":784,"src":"6789:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6799:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6789:11:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6780:20:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":798,"nodeType":"ExpressionStatement","src":"6780:20:1"},{"assignments":[800],"declarations":[{"constant":false,"id":800,"mutability":"mutable","name":"size","nameLocation":"6854:4:1","nodeType":"VariableDeclaration","scope":842,"src":"6847:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":799,"name":"uint16","nodeType":"ElementaryTypeName","src":"6847:6:1","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":805,"initialValue":{"arguments":[{"id":803,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":791,"src":"6876:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":801,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":782,"src":"6861:8:1","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6870:5:1","memberName":"toU16","nodeType":"MemberAccess","referencedDeclaration":1613,"src":"6861:14:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$_t_uint256_$returns$_t_uint16_$attached_to$_t_bytes_calldata_ptr_$","typeString":"function (bytes calldata,uint256) pure returns (uint16)"}},"id":804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6861:22:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"6847:36:1"},{"expression":{"id":808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":806,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":791,"src":"6897:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6907:1:1","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"6897:11:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":809,"nodeType":"ExpressionStatement","src":"6897:11:1"},{"expression":{"id":817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":810,"name":"optionType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":787,"src":"6955:10:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":813,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":791,"src":"6982:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6991:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6982:10:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":811,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":782,"src":"6968:8:1","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6977:4:1","memberName":"toU8","nodeType":"MemberAccess","referencedDeclaration":1585,"src":"6968:13:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$_t_uint256_$returns$_t_uint8_$attached_to$_t_bytes_calldata_ptr_$","typeString":"function (bytes calldata,uint256) pure returns (uint8)"}},"id":816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6968:25:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"6955:38:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":818,"nodeType":"ExpressionStatement","src":"6955:38:1"},{"assignments":[820],"declarations":[{"constant":false,"id":820,"mutability":"mutable","name":"startCursor","nameLocation":"7116:11:1","nodeType":"VariableDeclaration","scope":842,"src":"7108:19:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":819,"name":"uint256","nodeType":"ElementaryTypeName","src":"7108:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":824,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":821,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":791,"src":"7130:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7139:1:1","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"7130:10:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7108:32:1"},{"assignments":[826],"declarations":[{"constant":false,"id":826,"mutability":"mutable","name":"endCursor","nameLocation":"7194:9:1","nodeType":"VariableDeclaration","scope":842,"src":"7186:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":825,"name":"uint256","nodeType":"ElementaryTypeName","src":"7186:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":830,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":827,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":791,"src":"7206:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":828,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":800,"src":"7215:4:1","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"7206:13:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7186:33:1"},{"expression":{"id":836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":831,"name":"option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":789,"src":"7233:6:1","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":832,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":782,"src":"7242:8:1","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"id":834,"name":"endCursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":826,"src":"7263:9:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"7242:31:1","startExpression":{"id":833,"name":"startCursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":820,"src":"7251:11:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}},"src":"7233:40:1","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":837,"nodeType":"ExpressionStatement","src":"7233:40:1"},{"expression":{"id":840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":838,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":791,"src":"7287:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":839,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":800,"src":"7297:4:1","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"7287:14:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":841,"nodeType":"ExpressionStatement","src":"7287:14:1"}]}]},"documentation":{"id":780,"nodeType":"StructuredDocumentation","src":"6185:359:1","text":"@dev decode the next dvn option from _options starting from the specified cursor\n @param _options the format is the same as groupDVNOptionsByIdx\n @param _cursor the cursor to start decoding\n @return optionType the type of the option\n @return option the option\n @return cursor the cursor to start decoding the next option"},"id":844,"implemented":true,"kind":"function","modifiers":[],"name":"nextDVNOption","nameLocation":"6558:13:1","nodeType":"FunctionDefinition","parameters":{"id":785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":782,"mutability":"mutable","name":"_options","nameLocation":"6596:8:1","nodeType":"VariableDeclaration","scope":844,"src":"6581:23:1","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":781,"name":"bytes","nodeType":"ElementaryTypeName","src":"6581:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":784,"mutability":"mutable","name":"_cursor","nameLocation":"6622:7:1","nodeType":"VariableDeclaration","scope":844,"src":"6614:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":783,"name":"uint256","nodeType":"ElementaryTypeName","src":"6614:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6571:64:1"},"returnParameters":{"id":792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":787,"mutability":"mutable","name":"optionType","nameLocation":"6665:10:1","nodeType":"VariableDeclaration","scope":844,"src":"6659:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":786,"name":"uint8","nodeType":"ElementaryTypeName","src":"6659:5:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":789,"mutability":"mutable","name":"option","nameLocation":"6692:6:1","nodeType":"VariableDeclaration","scope":844,"src":"6677:21:1","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":788,"name":"bytes","nodeType":"ElementaryTypeName","src":"6677:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":791,"mutability":"mutable","name":"cursor","nameLocation":"6708:6:1","nodeType":"VariableDeclaration","scope":844,"src":"6700:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":790,"name":"uint256","nodeType":"ElementaryTypeName","src":"6700:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6658:57:1"},"scope":845,"src":"6549:769:1","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":846,"src":"345:6975:1","usedErrors":[392,396],"usedEvents":[]}],"src":"38:7283:1"},"id":1},"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"ast":{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol","exportedSymbols":{"ILayerZeroEndpointV2":[1048],"IMessageLibManager":[1329],"IMessagingChannel":[1465],"IMessagingComposer":[1551],"IMessagingContext":[1566],"MessagingFee":[879],"MessagingParams":[866],"MessagingReceipt":[874],"Origin":[886]},"id":1049,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":847,"literals":["solidity",">=","0.8",".0"],"nodeType":"PragmaDirective","src":"33:24:2"},{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol","file":"./IMessageLibManager.sol","id":849,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1049,"sourceUnit":1330,"src":"59:62:2","symbolAliases":[{"foreign":{"id":848,"name":"IMessageLibManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1329,"src":"68:18:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol","file":"./IMessagingComposer.sol","id":851,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1049,"sourceUnit":1552,"src":"122:62:2","symbolAliases":[{"foreign":{"id":850,"name":"IMessagingComposer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1551,"src":"131:18:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol","file":"./IMessagingChannel.sol","id":853,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1049,"sourceUnit":1466,"src":"185:60:2","symbolAliases":[{"foreign":{"id":852,"name":"IMessagingChannel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1465,"src":"194:17:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol","file":"./IMessagingContext.sol","id":855,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1049,"sourceUnit":1567,"src":"246:60:2","symbolAliases":[{"foreign":{"id":854,"name":"IMessagingContext","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1566,"src":"255:17:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"canonicalName":"MessagingParams","id":866,"members":[{"constant":false,"id":857,"mutability":"mutable","name":"dstEid","nameLocation":"344:6:2","nodeType":"VariableDeclaration","scope":866,"src":"337:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":856,"name":"uint32","nodeType":"ElementaryTypeName","src":"337:6:2","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":859,"mutability":"mutable","name":"receiver","nameLocation":"364:8:2","nodeType":"VariableDeclaration","scope":866,"src":"356:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":858,"name":"bytes32","nodeType":"ElementaryTypeName","src":"356:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":861,"mutability":"mutable","name":"message","nameLocation":"384:7:2","nodeType":"VariableDeclaration","scope":866,"src":"378:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":860,"name":"bytes","nodeType":"ElementaryTypeName","src":"378:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":863,"mutability":"mutable","name":"options","nameLocation":"403:7:2","nodeType":"VariableDeclaration","scope":866,"src":"397:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":862,"name":"bytes","nodeType":"ElementaryTypeName","src":"397:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":865,"mutability":"mutable","name":"payInLzToken","nameLocation":"421:12:2","nodeType":"VariableDeclaration","scope":866,"src":"416:17:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":864,"name":"bool","nodeType":"ElementaryTypeName","src":"416:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"MessagingParams","nameLocation":"315:15:2","nodeType":"StructDefinition","scope":1049,"src":"308:128:2","visibility":"public"},{"canonicalName":"MessagingReceipt","id":874,"members":[{"constant":false,"id":868,"mutability":"mutable","name":"guid","nameLocation":"476:4:2","nodeType":"VariableDeclaration","scope":874,"src":"468:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":867,"name":"bytes32","nodeType":"ElementaryTypeName","src":"468:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":870,"mutability":"mutable","name":"nonce","nameLocation":"493:5:2","nodeType":"VariableDeclaration","scope":874,"src":"486:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":869,"name":"uint64","nodeType":"ElementaryTypeName","src":"486:6:2","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":873,"mutability":"mutable","name":"fee","nameLocation":"517:3:2","nodeType":"VariableDeclaration","scope":874,"src":"504:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$879_storage_ptr","typeString":"struct MessagingFee"},"typeName":{"id":872,"nodeType":"UserDefinedTypeName","pathNode":{"id":871,"name":"MessagingFee","nameLocations":["504:12:2"],"nodeType":"IdentifierPath","referencedDeclaration":879,"src":"504:12:2"},"referencedDeclaration":879,"src":"504:12:2","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$879_storage_ptr","typeString":"struct MessagingFee"}},"visibility":"internal"}],"name":"MessagingReceipt","nameLocation":"445:16:2","nodeType":"StructDefinition","scope":1049,"src":"438:85:2","visibility":"public"},{"canonicalName":"MessagingFee","id":879,"members":[{"constant":false,"id":876,"mutability":"mutable","name":"nativeFee","nameLocation":"559:9:2","nodeType":"VariableDeclaration","scope":879,"src":"551:17:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":875,"name":"uint256","nodeType":"ElementaryTypeName","src":"551:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":878,"mutability":"mutable","name":"lzTokenFee","nameLocation":"582:10:2","nodeType":"VariableDeclaration","scope":879,"src":"574:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":877,"name":"uint256","nodeType":"ElementaryTypeName","src":"574:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"MessagingFee","nameLocation":"532:12:2","nodeType":"StructDefinition","scope":1049,"src":"525:70:2","visibility":"public"},{"canonicalName":"Origin","id":886,"members":[{"constant":false,"id":881,"mutability":"mutable","name":"srcEid","nameLocation":"624:6:2","nodeType":"VariableDeclaration","scope":886,"src":"617:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":880,"name":"uint32","nodeType":"ElementaryTypeName","src":"617:6:2","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":883,"mutability":"mutable","name":"sender","nameLocation":"644:6:2","nodeType":"VariableDeclaration","scope":886,"src":"636:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":882,"name":"bytes32","nodeType":"ElementaryTypeName","src":"636:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":885,"mutability":"mutable","name":"nonce","nameLocation":"663:5:2","nodeType":"VariableDeclaration","scope":886,"src":"656:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":884,"name":"uint64","nodeType":"ElementaryTypeName","src":"656:6:2","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"name":"Origin","nameLocation":"604:6:2","nodeType":"StructDefinition","scope":1049,"src":"597:74:2","visibility":"public"},{"abstract":false,"baseContracts":[{"baseName":{"id":887,"name":"IMessageLibManager","nameLocations":["707:18:2"],"nodeType":"IdentifierPath","referencedDeclaration":1329,"src":"707:18:2"},"id":888,"nodeType":"InheritanceSpecifier","src":"707:18:2"},{"baseName":{"id":889,"name":"IMessagingComposer","nameLocations":["727:18:2"],"nodeType":"IdentifierPath","referencedDeclaration":1551,"src":"727:18:2"},"id":890,"nodeType":"InheritanceSpecifier","src":"727:18:2"},{"baseName":{"id":891,"name":"IMessagingChannel","nameLocations":["747:17:2"],"nodeType":"IdentifierPath","referencedDeclaration":1465,"src":"747:17:2"},"id":892,"nodeType":"InheritanceSpecifier","src":"747:17:2"},{"baseName":{"id":893,"name":"IMessagingContext","nameLocations":["766:17:2"],"nodeType":"IdentifierPath","referencedDeclaration":1566,"src":"766:17:2"},"id":894,"nodeType":"InheritanceSpecifier","src":"766:17:2"}],"canonicalName":"ILayerZeroEndpointV2","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1048,"linearizedBaseContracts":[1048,1566,1465,1551,1329],"name":"ILayerZeroEndpointV2","nameLocation":"683:20:2","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"eventSelector":"1ab700d4ced0c005b164c0f789fd09fcbb0156d4c2041b8a3bfbcd961cd1567f","id":902,"name":"PacketSent","nameLocation":"796:10:2","nodeType":"EventDefinition","parameters":{"id":901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":896,"indexed":false,"mutability":"mutable","name":"encodedPayload","nameLocation":"813:14:2","nodeType":"VariableDeclaration","scope":902,"src":"807:20:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":895,"name":"bytes","nodeType":"ElementaryTypeName","src":"807:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":898,"indexed":false,"mutability":"mutable","name":"options","nameLocation":"835:7:2","nodeType":"VariableDeclaration","scope":902,"src":"829:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":897,"name":"bytes","nodeType":"ElementaryTypeName","src":"829:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":900,"indexed":false,"mutability":"mutable","name":"sendLibrary","nameLocation":"852:11:2","nodeType":"VariableDeclaration","scope":902,"src":"844:19:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":899,"name":"address","nodeType":"ElementaryTypeName","src":"844:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"806:58:2"},"src":"790:75:2"},{"anonymous":false,"eventSelector":"0d87345f3d1c929caba93e1c3821b54ff3512e12b66aa3cfe54b6bcbc17e59b4","id":911,"name":"PacketVerified","nameLocation":"877:14:2","nodeType":"EventDefinition","parameters":{"id":910,"nodeType":"ParameterList","parameters":[{"constant":false,"id":905,"indexed":false,"mutability":"mutable","name":"origin","nameLocation":"899:6:2","nodeType":"VariableDeclaration","scope":911,"src":"892:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$886_memory_ptr","typeString":"struct Origin"},"typeName":{"id":904,"nodeType":"UserDefinedTypeName","pathNode":{"id":903,"name":"Origin","nameLocations":["892:6:2"],"nodeType":"IdentifierPath","referencedDeclaration":886,"src":"892:6:2"},"referencedDeclaration":886,"src":"892:6:2","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$886_storage_ptr","typeString":"struct Origin"}},"visibility":"internal"},{"constant":false,"id":907,"indexed":false,"mutability":"mutable","name":"receiver","nameLocation":"915:8:2","nodeType":"VariableDeclaration","scope":911,"src":"907:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":906,"name":"address","nodeType":"ElementaryTypeName","src":"907:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":909,"indexed":false,"mutability":"mutable","name":"payloadHash","nameLocation":"933:11:2","nodeType":"VariableDeclaration","scope":911,"src":"925:19:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":908,"name":"bytes32","nodeType":"ElementaryTypeName","src":"925:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"891:54:2"},"src":"871:75:2"},{"anonymous":false,"eventSelector":"3cd5e48f9730b129dc7550f0fcea9c767b7be37837cd10e55eb35f734f4bca04","id":918,"name":"PacketDelivered","nameLocation":"958:15:2","nodeType":"EventDefinition","parameters":{"id":917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":914,"indexed":false,"mutability":"mutable","name":"origin","nameLocation":"981:6:2","nodeType":"VariableDeclaration","scope":918,"src":"974:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$886_memory_ptr","typeString":"struct Origin"},"typeName":{"id":913,"nodeType":"UserDefinedTypeName","pathNode":{"id":912,"name":"Origin","nameLocations":["974:6:2"],"nodeType":"IdentifierPath","referencedDeclaration":886,"src":"974:6:2"},"referencedDeclaration":886,"src":"974:6:2","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$886_storage_ptr","typeString":"struct Origin"}},"visibility":"internal"},{"constant":false,"id":916,"indexed":false,"mutability":"mutable","name":"receiver","nameLocation":"997:8:2","nodeType":"VariableDeclaration","scope":918,"src":"989:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":915,"name":"address","nodeType":"ElementaryTypeName","src":"989:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"973:33:2"},"src":"952:55:2"},{"anonymous":false,"eventSelector":"7edfa10fe10193301ad8a8bea7e968c7bcabcc64981f368e3aeada40ce26ae2c","id":939,"name":"LzReceiveAlert","nameLocation":"1019:14:2","nodeType":"EventDefinition","parameters":{"id":938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":920,"indexed":true,"mutability":"mutable","name":"receiver","nameLocation":"1059:8:2","nodeType":"VariableDeclaration","scope":939,"src":"1043:24:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":919,"name":"address","nodeType":"ElementaryTypeName","src":"1043:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":922,"indexed":true,"mutability":"mutable","name":"executor","nameLocation":"1093:8:2","nodeType":"VariableDeclaration","scope":939,"src":"1077:24:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":921,"name":"address","nodeType":"ElementaryTypeName","src":"1077:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":925,"indexed":false,"mutability":"mutable","name":"origin","nameLocation":"1118:6:2","nodeType":"VariableDeclaration","scope":939,"src":"1111:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$886_memory_ptr","typeString":"struct Origin"},"typeName":{"id":924,"nodeType":"UserDefinedTypeName","pathNode":{"id":923,"name":"Origin","nameLocations":["1111:6:2"],"nodeType":"IdentifierPath","referencedDeclaration":886,"src":"1111:6:2"},"referencedDeclaration":886,"src":"1111:6:2","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$886_storage_ptr","typeString":"struct Origin"}},"visibility":"internal"},{"constant":false,"id":927,"indexed":false,"mutability":"mutable","name":"guid","nameLocation":"1142:4:2","nodeType":"VariableDeclaration","scope":939,"src":"1134:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":926,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1134:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":929,"indexed":false,"mutability":"mutable","name":"gas","nameLocation":"1164:3:2","nodeType":"VariableDeclaration","scope":939,"src":"1156:11:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":928,"name":"uint256","nodeType":"ElementaryTypeName","src":"1156:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":931,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"1185:5:2","nodeType":"VariableDeclaration","scope":939,"src":"1177:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":930,"name":"uint256","nodeType":"ElementaryTypeName","src":"1177:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":933,"indexed":false,"mutability":"mutable","name":"message","nameLocation":"1206:7:2","nodeType":"VariableDeclaration","scope":939,"src":"1200:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":932,"name":"bytes","nodeType":"ElementaryTypeName","src":"1200:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":935,"indexed":false,"mutability":"mutable","name":"extraData","nameLocation":"1229:9:2","nodeType":"VariableDeclaration","scope":939,"src":"1223:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":934,"name":"bytes","nodeType":"ElementaryTypeName","src":"1223:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":937,"indexed":false,"mutability":"mutable","name":"reason","nameLocation":"1254:6:2","nodeType":"VariableDeclaration","scope":939,"src":"1248:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":936,"name":"bytes","nodeType":"ElementaryTypeName","src":"1248:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1033:233:2"},"src":"1013:254:2"},{"anonymous":false,"eventSelector":"d476ec5ec1ac11cec3714d41e7ea49419471aceb9bd0dff1becfc3e363a62396","id":943,"name":"LzTokenSet","nameLocation":"1279:10:2","nodeType":"EventDefinition","parameters":{"id":942,"nodeType":"ParameterList","parameters":[{"constant":false,"id":941,"indexed":false,"mutability":"mutable","name":"token","nameLocation":"1298:5:2","nodeType":"VariableDeclaration","scope":943,"src":"1290:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":940,"name":"address","nodeType":"ElementaryTypeName","src":"1290:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1289:15:2"},"src":"1273:32:2"},{"anonymous":false,"eventSelector":"6ee10e9ed4d6ce9742703a498707862f4b00f1396a87195eb93267b3d7983981","id":949,"name":"DelegateSet","nameLocation":"1317:11:2","nodeType":"EventDefinition","parameters":{"id":948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":945,"indexed":false,"mutability":"mutable","name":"sender","nameLocation":"1337:6:2","nodeType":"VariableDeclaration","scope":949,"src":"1329:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":944,"name":"address","nodeType":"ElementaryTypeName","src":"1329:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":947,"indexed":false,"mutability":"mutable","name":"delegate","nameLocation":"1353:8:2","nodeType":"VariableDeclaration","scope":949,"src":"1345:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":946,"name":"address","nodeType":"ElementaryTypeName","src":"1345:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1328:34:2"},"src":"1311:52:2"},{"functionSelector":"ddc28c58","id":960,"implemented":false,"kind":"function","modifiers":[],"name":"quote","nameLocation":"1378:5:2","nodeType":"FunctionDefinition","parameters":{"id":955,"nodeType":"ParameterList","parameters":[{"constant":false,"id":952,"mutability":"mutable","name":"_params","nameLocation":"1409:7:2","nodeType":"VariableDeclaration","scope":960,"src":"1384:32:2","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingParams_$866_calldata_ptr","typeString":"struct MessagingParams"},"typeName":{"id":951,"nodeType":"UserDefinedTypeName","pathNode":{"id":950,"name":"MessagingParams","nameLocations":["1384:15:2"],"nodeType":"IdentifierPath","referencedDeclaration":866,"src":"1384:15:2"},"referencedDeclaration":866,"src":"1384:15:2","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingParams_$866_storage_ptr","typeString":"struct MessagingParams"}},"visibility":"internal"},{"constant":false,"id":954,"mutability":"mutable","name":"_sender","nameLocation":"1426:7:2","nodeType":"VariableDeclaration","scope":960,"src":"1418:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":953,"name":"address","nodeType":"ElementaryTypeName","src":"1418:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1383:51:2"},"returnParameters":{"id":959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":958,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":960,"src":"1458:19:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$879_memory_ptr","typeString":"struct MessagingFee"},"typeName":{"id":957,"nodeType":"UserDefinedTypeName","pathNode":{"id":956,"name":"MessagingFee","nameLocations":["1458:12:2"],"nodeType":"IdentifierPath","referencedDeclaration":879,"src":"1458:12:2"},"referencedDeclaration":879,"src":"1458:12:2","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$879_storage_ptr","typeString":"struct MessagingFee"}},"visibility":"internal"}],"src":"1457:21:2"},"scope":1048,"src":"1369:110:2","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"2637a450","id":971,"implemented":false,"kind":"function","modifiers":[],"name":"send","nameLocation":"1494:4:2","nodeType":"FunctionDefinition","parameters":{"id":966,"nodeType":"ParameterList","parameters":[{"constant":false,"id":963,"mutability":"mutable","name":"_params","nameLocation":"1533:7:2","nodeType":"VariableDeclaration","scope":971,"src":"1508:32:2","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingParams_$866_calldata_ptr","typeString":"struct MessagingParams"},"typeName":{"id":962,"nodeType":"UserDefinedTypeName","pathNode":{"id":961,"name":"MessagingParams","nameLocations":["1508:15:2"],"nodeType":"IdentifierPath","referencedDeclaration":866,"src":"1508:15:2"},"referencedDeclaration":866,"src":"1508:15:2","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingParams_$866_storage_ptr","typeString":"struct MessagingParams"}},"visibility":"internal"},{"constant":false,"id":965,"mutability":"mutable","name":"_refundAddress","nameLocation":"1558:14:2","nodeType":"VariableDeclaration","scope":971,"src":"1550:22:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":964,"name":"address","nodeType":"ElementaryTypeName","src":"1550:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1498:80:2"},"returnParameters":{"id":970,"nodeType":"ParameterList","parameters":[{"constant":false,"id":969,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":971,"src":"1605:23:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingReceipt_$874_memory_ptr","typeString":"struct MessagingReceipt"},"typeName":{"id":968,"nodeType":"UserDefinedTypeName","pathNode":{"id":967,"name":"MessagingReceipt","nameLocations":["1605:16:2"],"nodeType":"IdentifierPath","referencedDeclaration":874,"src":"1605:16:2"},"referencedDeclaration":874,"src":"1605:16:2","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingReceipt_$874_storage_ptr","typeString":"struct MessagingReceipt"}},"visibility":"internal"}],"src":"1604:25:2"},"scope":1048,"src":"1485:145:2","stateMutability":"payable","virtual":false,"visibility":"external"},{"functionSelector":"a825d747","id":981,"implemented":false,"kind":"function","modifiers":[],"name":"verify","nameLocation":"1645:6:2","nodeType":"FunctionDefinition","parameters":{"id":979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":974,"mutability":"mutable","name":"_origin","nameLocation":"1668:7:2","nodeType":"VariableDeclaration","scope":981,"src":"1652:23:2","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$886_calldata_ptr","typeString":"struct Origin"},"typeName":{"id":973,"nodeType":"UserDefinedTypeName","pathNode":{"id":972,"name":"Origin","nameLocations":["1652:6:2"],"nodeType":"IdentifierPath","referencedDeclaration":886,"src":"1652:6:2"},"referencedDeclaration":886,"src":"1652:6:2","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$886_storage_ptr","typeString":"struct Origin"}},"visibility":"internal"},{"constant":false,"id":976,"mutability":"mutable","name":"_receiver","nameLocation":"1685:9:2","nodeType":"VariableDeclaration","scope":981,"src":"1677:17:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":975,"name":"address","nodeType":"ElementaryTypeName","src":"1677:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":978,"mutability":"mutable","name":"_payloadHash","nameLocation":"1704:12:2","nodeType":"VariableDeclaration","scope":981,"src":"1696:20:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":977,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1696:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1651:66:2"},"returnParameters":{"id":980,"nodeType":"ParameterList","parameters":[],"src":"1726:0:2"},"scope":1048,"src":"1636:91:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"c9a54a99","id":991,"implemented":false,"kind":"function","modifiers":[],"name":"verifiable","nameLocation":"1742:10:2","nodeType":"FunctionDefinition","parameters":{"id":987,"nodeType":"ParameterList","parameters":[{"constant":false,"id":984,"mutability":"mutable","name":"_origin","nameLocation":"1769:7:2","nodeType":"VariableDeclaration","scope":991,"src":"1753:23:2","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$886_calldata_ptr","typeString":"struct Origin"},"typeName":{"id":983,"nodeType":"UserDefinedTypeName","pathNode":{"id":982,"name":"Origin","nameLocations":["1753:6:2"],"nodeType":"IdentifierPath","referencedDeclaration":886,"src":"1753:6:2"},"referencedDeclaration":886,"src":"1753:6:2","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$886_storage_ptr","typeString":"struct Origin"}},"visibility":"internal"},{"constant":false,"id":986,"mutability":"mutable","name":"_receiver","nameLocation":"1786:9:2","nodeType":"VariableDeclaration","scope":991,"src":"1778:17:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":985,"name":"address","nodeType":"ElementaryTypeName","src":"1778:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1752:44:2"},"returnParameters":{"id":990,"nodeType":"ParameterList","parameters":[{"constant":false,"id":989,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":991,"src":"1820:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":988,"name":"bool","nodeType":"ElementaryTypeName","src":"1820:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1819:6:2"},"scope":1048,"src":"1733:93:2","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"861e1ca5","id":1001,"implemented":false,"kind":"function","modifiers":[],"name":"initializable","nameLocation":"1841:13:2","nodeType":"FunctionDefinition","parameters":{"id":997,"nodeType":"ParameterList","parameters":[{"constant":false,"id":994,"mutability":"mutable","name":"_origin","nameLocation":"1871:7:2","nodeType":"VariableDeclaration","scope":1001,"src":"1855:23:2","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$886_calldata_ptr","typeString":"struct Origin"},"typeName":{"id":993,"nodeType":"UserDefinedTypeName","pathNode":{"id":992,"name":"Origin","nameLocations":["1855:6:2"],"nodeType":"IdentifierPath","referencedDeclaration":886,"src":"1855:6:2"},"referencedDeclaration":886,"src":"1855:6:2","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$886_storage_ptr","typeString":"struct Origin"}},"visibility":"internal"},{"constant":false,"id":996,"mutability":"mutable","name":"_receiver","nameLocation":"1888:9:2","nodeType":"VariableDeclaration","scope":1001,"src":"1880:17:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":995,"name":"address","nodeType":"ElementaryTypeName","src":"1880:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1854:44:2"},"returnParameters":{"id":1000,"nodeType":"ParameterList","parameters":[{"constant":false,"id":999,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1001,"src":"1922:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":998,"name":"bool","nodeType":"ElementaryTypeName","src":"1922:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1921:6:2"},"scope":1048,"src":"1832:96:2","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"0c0c389e","id":1015,"implemented":false,"kind":"function","modifiers":[],"name":"lzReceive","nameLocation":"1943:9:2","nodeType":"FunctionDefinition","parameters":{"id":1013,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1004,"mutability":"mutable","name":"_origin","nameLocation":"1978:7:2","nodeType":"VariableDeclaration","scope":1015,"src":"1962:23:2","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$886_calldata_ptr","typeString":"struct Origin"},"typeName":{"id":1003,"nodeType":"UserDefinedTypeName","pathNode":{"id":1002,"name":"Origin","nameLocations":["1962:6:2"],"nodeType":"IdentifierPath","referencedDeclaration":886,"src":"1962:6:2"},"referencedDeclaration":886,"src":"1962:6:2","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$886_storage_ptr","typeString":"struct Origin"}},"visibility":"internal"},{"constant":false,"id":1006,"mutability":"mutable","name":"_receiver","nameLocation":"2003:9:2","nodeType":"VariableDeclaration","scope":1015,"src":"1995:17:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1005,"name":"address","nodeType":"ElementaryTypeName","src":"1995:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1008,"mutability":"mutable","name":"_guid","nameLocation":"2030:5:2","nodeType":"VariableDeclaration","scope":1015,"src":"2022:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1007,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2022:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1010,"mutability":"mutable","name":"_message","nameLocation":"2060:8:2","nodeType":"VariableDeclaration","scope":1015,"src":"2045:23:2","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1009,"name":"bytes","nodeType":"ElementaryTypeName","src":"2045:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1012,"mutability":"mutable","name":"_extraData","nameLocation":"2093:10:2","nodeType":"VariableDeclaration","scope":1015,"src":"2078:25:2","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1011,"name":"bytes","nodeType":"ElementaryTypeName","src":"2078:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1952:157:2"},"returnParameters":{"id":1014,"nodeType":"ParameterList","parameters":[],"src":"2126:0:2"},"scope":1048,"src":"1934:193:2","stateMutability":"payable","virtual":false,"visibility":"external"},{"functionSelector":"2a56c1b0","id":1027,"implemented":false,"kind":"function","modifiers":[],"name":"clear","nameLocation":"2269:5:2","nodeType":"FunctionDefinition","parameters":{"id":1025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1017,"mutability":"mutable","name":"_oapp","nameLocation":"2283:5:2","nodeType":"VariableDeclaration","scope":1027,"src":"2275:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1016,"name":"address","nodeType":"ElementaryTypeName","src":"2275:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1020,"mutability":"mutable","name":"_origin","nameLocation":"2306:7:2","nodeType":"VariableDeclaration","scope":1027,"src":"2290:23:2","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$886_calldata_ptr","typeString":"struct Origin"},"typeName":{"id":1019,"nodeType":"UserDefinedTypeName","pathNode":{"id":1018,"name":"Origin","nameLocations":["2290:6:2"],"nodeType":"IdentifierPath","referencedDeclaration":886,"src":"2290:6:2"},"referencedDeclaration":886,"src":"2290:6:2","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$886_storage_ptr","typeString":"struct Origin"}},"visibility":"internal"},{"constant":false,"id":1022,"mutability":"mutable","name":"_guid","nameLocation":"2323:5:2","nodeType":"VariableDeclaration","scope":1027,"src":"2315:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1021,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2315:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1024,"mutability":"mutable","name":"_message","nameLocation":"2345:8:2","nodeType":"VariableDeclaration","scope":1027,"src":"2330:23:2","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1023,"name":"bytes","nodeType":"ElementaryTypeName","src":"2330:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2274:80:2"},"returnParameters":{"id":1026,"nodeType":"ParameterList","parameters":[],"src":"2363:0:2"},"scope":1048,"src":"2260:104:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"c28e0eed","id":1032,"implemented":false,"kind":"function","modifiers":[],"name":"setLzToken","nameLocation":"2379:10:2","nodeType":"FunctionDefinition","parameters":{"id":1030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1029,"mutability":"mutable","name":"_lzToken","nameLocation":"2398:8:2","nodeType":"VariableDeclaration","scope":1032,"src":"2390:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1028,"name":"address","nodeType":"ElementaryTypeName","src":"2390:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2389:18:2"},"returnParameters":{"id":1031,"nodeType":"ParameterList","parameters":[],"src":"2416:0:2"},"scope":1048,"src":"2370:47:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"e4fe1d94","id":1037,"implemented":false,"kind":"function","modifiers":[],"name":"lzToken","nameLocation":"2432:7:2","nodeType":"FunctionDefinition","parameters":{"id":1033,"nodeType":"ParameterList","parameters":[],"src":"2439:2:2"},"returnParameters":{"id":1036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1035,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1037,"src":"2465:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1034,"name":"address","nodeType":"ElementaryTypeName","src":"2465:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2464:9:2"},"scope":1048,"src":"2423:51:2","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"e1758bd8","id":1042,"implemented":false,"kind":"function","modifiers":[],"name":"nativeToken","nameLocation":"2489:11:2","nodeType":"FunctionDefinition","parameters":{"id":1038,"nodeType":"ParameterList","parameters":[],"src":"2500:2:2"},"returnParameters":{"id":1041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1040,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1042,"src":"2526:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1039,"name":"address","nodeType":"ElementaryTypeName","src":"2526:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2525:9:2"},"scope":1048,"src":"2480:55:2","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"ca5eb5e1","id":1047,"implemented":false,"kind":"function","modifiers":[],"name":"setDelegate","nameLocation":"2550:11:2","nodeType":"FunctionDefinition","parameters":{"id":1045,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1044,"mutability":"mutable","name":"_delegate","nameLocation":"2570:9:2","nodeType":"VariableDeclaration","scope":1047,"src":"2562:17:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1043,"name":"address","nodeType":"ElementaryTypeName","src":"2562:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2561:19:2"},"returnParameters":{"id":1046,"nodeType":"ParameterList","parameters":[],"src":"2589:0:2"},"scope":1048,"src":"2541:49:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1049,"src":"673:1919:2","usedErrors":[],"usedEvents":[902,911,918,939,943,949,1102,1108,1114,1122,1130,1138,1148,1341,1353,1365,1479,1489,1511]}],"src":"33:2560:2"},"id":2},"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol":{"ast":{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol","exportedSymbols":{"ILayerZeroReceiver":[1084],"Origin":[886]},"id":1085,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1050,"literals":["solidity",">=","0.8",".0"],"nodeType":"PragmaDirective","src":"33:24:3"},{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol","file":"./ILayerZeroEndpointV2.sol","id":1052,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1085,"sourceUnit":1049,"src":"59:52:3","symbolAliases":[{"foreign":{"id":1051,"name":"Origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":886,"src":"68:6:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"ILayerZeroReceiver","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1084,"linearizedBaseContracts":[1084],"name":"ILayerZeroReceiver","nameLocation":"123:18:3","nodeType":"ContractDefinition","nodes":[{"functionSelector":"ff7bd03d","id":1060,"implemented":false,"kind":"function","modifiers":[],"name":"allowInitializePath","nameLocation":"157:19:3","nodeType":"FunctionDefinition","parameters":{"id":1056,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1055,"mutability":"mutable","name":"_origin","nameLocation":"193:7:3","nodeType":"VariableDeclaration","scope":1060,"src":"177:23:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$886_calldata_ptr","typeString":"struct Origin"},"typeName":{"id":1054,"nodeType":"UserDefinedTypeName","pathNode":{"id":1053,"name":"Origin","nameLocations":["177:6:3"],"nodeType":"IdentifierPath","referencedDeclaration":886,"src":"177:6:3"},"referencedDeclaration":886,"src":"177:6:3","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$886_storage_ptr","typeString":"struct Origin"}},"visibility":"internal"}],"src":"176:25:3"},"returnParameters":{"id":1059,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1058,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1060,"src":"225:4:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1057,"name":"bool","nodeType":"ElementaryTypeName","src":"225:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"224:6:3"},"scope":1084,"src":"148:83:3","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"7d25a05e","id":1069,"implemented":false,"kind":"function","modifiers":[],"name":"nextNonce","nameLocation":"246:9:3","nodeType":"FunctionDefinition","parameters":{"id":1065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1062,"mutability":"mutable","name":"_eid","nameLocation":"263:4:3","nodeType":"VariableDeclaration","scope":1069,"src":"256:11:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1061,"name":"uint32","nodeType":"ElementaryTypeName","src":"256:6:3","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":1064,"mutability":"mutable","name":"_sender","nameLocation":"277:7:3","nodeType":"VariableDeclaration","scope":1069,"src":"269:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1063,"name":"bytes32","nodeType":"ElementaryTypeName","src":"269:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"255:30:3"},"returnParameters":{"id":1068,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1067,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1069,"src":"309:6:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1066,"name":"uint64","nodeType":"ElementaryTypeName","src":"309:6:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"308:8:3"},"scope":1084,"src":"237:80:3","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"13137d65","id":1083,"implemented":false,"kind":"function","modifiers":[],"name":"lzReceive","nameLocation":"332:9:3","nodeType":"FunctionDefinition","parameters":{"id":1081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1072,"mutability":"mutable","name":"_origin","nameLocation":"367:7:3","nodeType":"VariableDeclaration","scope":1083,"src":"351:23:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$886_calldata_ptr","typeString":"struct Origin"},"typeName":{"id":1071,"nodeType":"UserDefinedTypeName","pathNode":{"id":1070,"name":"Origin","nameLocations":["351:6:3"],"nodeType":"IdentifierPath","referencedDeclaration":886,"src":"351:6:3"},"referencedDeclaration":886,"src":"351:6:3","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$886_storage_ptr","typeString":"struct Origin"}},"visibility":"internal"},{"constant":false,"id":1074,"mutability":"mutable","name":"_guid","nameLocation":"392:5:3","nodeType":"VariableDeclaration","scope":1083,"src":"384:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1073,"name":"bytes32","nodeType":"ElementaryTypeName","src":"384:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1076,"mutability":"mutable","name":"_message","nameLocation":"422:8:3","nodeType":"VariableDeclaration","scope":1083,"src":"407:23:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1075,"name":"bytes","nodeType":"ElementaryTypeName","src":"407:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1078,"mutability":"mutable","name":"_executor","nameLocation":"448:9:3","nodeType":"VariableDeclaration","scope":1083,"src":"440:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1077,"name":"address","nodeType":"ElementaryTypeName","src":"440:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1080,"mutability":"mutable","name":"_extraData","nameLocation":"482:10:3","nodeType":"VariableDeclaration","scope":1083,"src":"467:25:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1079,"name":"bytes","nodeType":"ElementaryTypeName","src":"467:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"341:157:3"},"returnParameters":{"id":1082,"nodeType":"ParameterList","parameters":[],"src":"515:0:3"},"scope":1084,"src":"323:193:3","stateMutability":"payable","virtual":false,"visibility":"external"}],"scope":1085,"src":"113:405:3","usedErrors":[],"usedEvents":[]}],"src":"33:486:3"},"id":3},"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"ast":{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol","exportedSymbols":{"IMessageLibManager":[1329],"SetConfigParam":[1093]},"id":1330,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1086,"literals":["solidity",">=","0.8",".0"],"nodeType":"PragmaDirective","src":"33:24:4"},{"canonicalName":"SetConfigParam","id":1093,"members":[{"constant":false,"id":1088,"mutability":"mutable","name":"eid","nameLocation":"94:3:4","nodeType":"VariableDeclaration","scope":1093,"src":"87:10:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1087,"name":"uint32","nodeType":"ElementaryTypeName","src":"87:6:4","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":1090,"mutability":"mutable","name":"configType","nameLocation":"110:10:4","nodeType":"VariableDeclaration","scope":1093,"src":"103:17:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1089,"name":"uint32","nodeType":"ElementaryTypeName","src":"103:6:4","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":1092,"mutability":"mutable","name":"config","nameLocation":"132:6:4","nodeType":"VariableDeclaration","scope":1093,"src":"126:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":1091,"name":"bytes","nodeType":"ElementaryTypeName","src":"126:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"SetConfigParam","nameLocation":"66:14:4","nodeType":"StructDefinition","scope":1330,"src":"59:82:4","visibility":"public"},{"abstract":false,"baseContracts":[],"canonicalName":"IMessageLibManager","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1329,"linearizedBaseContracts":[1329],"name":"IMessageLibManager","nameLocation":"153:18:4","nodeType":"ContractDefinition","nodes":[{"canonicalName":"IMessageLibManager.Timeout","id":1098,"members":[{"constant":false,"id":1095,"mutability":"mutable","name":"lib","nameLocation":"211:3:4","nodeType":"VariableDeclaration","scope":1098,"src":"203:11:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1094,"name":"address","nodeType":"ElementaryTypeName","src":"203:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1097,"mutability":"mutable","name":"expiry","nameLocation":"232:6:4","nodeType":"VariableDeclaration","scope":1098,"src":"224:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1096,"name":"uint256","nodeType":"ElementaryTypeName","src":"224:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Timeout","nameLocation":"185:7:4","nodeType":"StructDefinition","scope":1329,"src":"178:67:4","visibility":"public"},{"anonymous":false,"eventSelector":"6b374d56679ca9463f27c85c6311e2bb7fde69bf201d3da39d53f10bd9d78af5","id":1102,"name":"LibraryRegistered","nameLocation":"257:17:4","nodeType":"EventDefinition","parameters":{"id":1101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1100,"indexed":false,"mutability":"mutable","name":"newLib","nameLocation":"283:6:4","nodeType":"VariableDeclaration","scope":1102,"src":"275:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1099,"name":"address","nodeType":"ElementaryTypeName","src":"275:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"274:16:4"},"src":"251:40:4"},{"anonymous":false,"eventSelector":"16aa0f528038ab41019e95bae5b418a50ba8532c5800e3b7ea2f517d3fa625f5","id":1108,"name":"DefaultSendLibrarySet","nameLocation":"302:21:4","nodeType":"EventDefinition","parameters":{"id":1107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1104,"indexed":false,"mutability":"mutable","name":"eid","nameLocation":"331:3:4","nodeType":"VariableDeclaration","scope":1108,"src":"324:10:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1103,"name":"uint32","nodeType":"ElementaryTypeName","src":"324:6:4","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":1106,"indexed":false,"mutability":"mutable","name":"newLib","nameLocation":"344:6:4","nodeType":"VariableDeclaration","scope":1108,"src":"336:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1105,"name":"address","nodeType":"ElementaryTypeName","src":"336:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"323:28:4"},"src":"296:56:4"},{"anonymous":false,"eventSelector":"c16891855cffb4a5ac51ac11864a3f3c96ba816cc45fe686c987ae36277de5ec","id":1114,"name":"DefaultReceiveLibrarySet","nameLocation":"363:24:4","nodeType":"EventDefinition","parameters":{"id":1113,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1110,"indexed":false,"mutability":"mutable","name":"eid","nameLocation":"395:3:4","nodeType":"VariableDeclaration","scope":1114,"src":"388:10:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1109,"name":"uint32","nodeType":"ElementaryTypeName","src":"388:6:4","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":1112,"indexed":false,"mutability":"mutable","name":"newLib","nameLocation":"408:6:4","nodeType":"VariableDeclaration","scope":1114,"src":"400:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1111,"name":"address","nodeType":"ElementaryTypeName","src":"400:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"387:28:4"},"src":"357:59:4"},{"anonymous":false,"eventSelector":"55b28633cdb29709386f555dfc54418592ad475ce7a65a78ac5928af60ffb8f8","id":1122,"name":"DefaultReceiveLibraryTimeoutSet","nameLocation":"427:31:4","nodeType":"EventDefinition","parameters":{"id":1121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1116,"indexed":false,"mutability":"mutable","name":"eid","nameLocation":"466:3:4","nodeType":"VariableDeclaration","scope":1122,"src":"459:10:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1115,"name":"uint32","nodeType":"ElementaryTypeName","src":"459:6:4","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":1118,"indexed":false,"mutability":"mutable","name":"oldLib","nameLocation":"479:6:4","nodeType":"VariableDeclaration","scope":1122,"src":"471:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1117,"name":"address","nodeType":"ElementaryTypeName","src":"471:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1120,"indexed":false,"mutability":"mutable","name":"expiry","nameLocation":"495:6:4","nodeType":"VariableDeclaration","scope":1122,"src":"487:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1119,"name":"uint256","nodeType":"ElementaryTypeName","src":"487:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"458:44:4"},"src":"421:82:4"},{"anonymous":false,"eventSelector":"4cff966ebee29a156dcb34cf72c1d06231fb1777f6bdf6e8089819232f002b1c","id":1130,"name":"SendLibrarySet","nameLocation":"514:14:4","nodeType":"EventDefinition","parameters":{"id":1129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1124,"indexed":false,"mutability":"mutable","name":"sender","nameLocation":"537:6:4","nodeType":"VariableDeclaration","scope":1130,"src":"529:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1123,"name":"address","nodeType":"ElementaryTypeName","src":"529:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1126,"indexed":false,"mutability":"mutable","name":"eid","nameLocation":"552:3:4","nodeType":"VariableDeclaration","scope":1130,"src":"545:10:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1125,"name":"uint32","nodeType":"ElementaryTypeName","src":"545:6:4","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":1128,"indexed":false,"mutability":"mutable","name":"newLib","nameLocation":"565:6:4","nodeType":"VariableDeclaration","scope":1130,"src":"557:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1127,"name":"address","nodeType":"ElementaryTypeName","src":"557:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"528:44:4"},"src":"508:65:4"},{"anonymous":false,"eventSelector":"cd6f92f5ac6185a5acfa02c92090746cec64d777269cbcd0ed031e396657a1c2","id":1138,"name":"ReceiveLibrarySet","nameLocation":"584:17:4","nodeType":"EventDefinition","parameters":{"id":1137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1132,"indexed":false,"mutability":"mutable","name":"receiver","nameLocation":"610:8:4","nodeType":"VariableDeclaration","scope":1138,"src":"602:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1131,"name":"address","nodeType":"ElementaryTypeName","src":"602:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1134,"indexed":false,"mutability":"mutable","name":"eid","nameLocation":"627:3:4","nodeType":"VariableDeclaration","scope":1138,"src":"620:10:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1133,"name":"uint32","nodeType":"ElementaryTypeName","src":"620:6:4","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":1136,"indexed":false,"mutability":"mutable","name":"newLib","nameLocation":"640:6:4","nodeType":"VariableDeclaration","scope":1138,"src":"632:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1135,"name":"address","nodeType":"ElementaryTypeName","src":"632:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"601:46:4"},"src":"578:70:4"},{"anonymous":false,"eventSelector":"4e0a5bbfa0c11a64effb1ada324b5437a17272e1aed9320398715ef71bb20928","id":1148,"name":"ReceiveLibraryTimeoutSet","nameLocation":"659:24:4","nodeType":"EventDefinition","parameters":{"id":1147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1140,"indexed":false,"mutability":"mutable","name":"receiver","nameLocation":"692:8:4","nodeType":"VariableDeclaration","scope":1148,"src":"684:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1139,"name":"address","nodeType":"ElementaryTypeName","src":"684:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1142,"indexed":false,"mutability":"mutable","name":"eid","nameLocation":"709:3:4","nodeType":"VariableDeclaration","scope":1148,"src":"702:10:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1141,"name":"uint32","nodeType":"ElementaryTypeName","src":"702:6:4","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":1144,"indexed":false,"mutability":"mutable","name":"oldLib","nameLocation":"722:6:4","nodeType":"VariableDeclaration","scope":1148,"src":"714:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1143,"name":"address","nodeType":"ElementaryTypeName","src":"714:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1146,"indexed":false,"mutability":"mutable","name":"timeout","nameLocation":"738:7:4","nodeType":"VariableDeclaration","scope":1148,"src":"730:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1145,"name":"uint256","nodeType":"ElementaryTypeName","src":"730:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"683:63:4"},"src":"653:94:4"},{"functionSelector":"e8964e81","id":1153,"implemented":false,"kind":"function","modifiers":[],"name":"registerLibrary","nameLocation":"762:15:4","nodeType":"FunctionDefinition","parameters":{"id":1151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1150,"mutability":"mutable","name":"_lib","nameLocation":"786:4:4","nodeType":"VariableDeclaration","scope":1153,"src":"778:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1149,"name":"address","nodeType":"ElementaryTypeName","src":"778:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"777:14:4"},"returnParameters":{"id":1152,"nodeType":"ParameterList","parameters":[],"src":"800:0:4"},"scope":1329,"src":"753:48:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"dc706a62","id":1160,"implemented":false,"kind":"function","modifiers":[],"name":"isRegisteredLibrary","nameLocation":"816:19:4","nodeType":"FunctionDefinition","parameters":{"id":1156,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1155,"mutability":"mutable","name":"_lib","nameLocation":"844:4:4","nodeType":"VariableDeclaration","scope":1160,"src":"836:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1154,"name":"address","nodeType":"ElementaryTypeName","src":"836:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"835:14:4"},"returnParameters":{"id":1159,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1158,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1160,"src":"873:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1157,"name":"bool","nodeType":"ElementaryTypeName","src":"873:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"872:6:4"},"scope":1329,"src":"807:72:4","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"9132e5c3","id":1166,"implemented":false,"kind":"function","modifiers":[],"name":"getRegisteredLibraries","nameLocation":"894:22:4","nodeType":"FunctionDefinition","parameters":{"id":1161,"nodeType":"ParameterList","parameters":[],"src":"916:2:4"},"returnParameters":{"id":1165,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1164,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1166,"src":"942:16:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1162,"name":"address","nodeType":"ElementaryTypeName","src":"942:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1163,"nodeType":"ArrayTypeName","src":"942:9:4","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"941:18:4"},"scope":1329,"src":"885:75:4","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"aafea312","id":1173,"implemented":false,"kind":"function","modifiers":[],"name":"setDefaultSendLibrary","nameLocation":"975:21:4","nodeType":"FunctionDefinition","parameters":{"id":1171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1168,"mutability":"mutable","name":"_eid","nameLocation":"1004:4:4","nodeType":"VariableDeclaration","scope":1173,"src":"997:11:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1167,"name":"uint32","nodeType":"ElementaryTypeName","src":"997:6:4","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":1170,"mutability":"mutable","name":"_newLib","nameLocation":"1018:7:4","nodeType":"VariableDeclaration","scope":1173,"src":"1010:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1169,"name":"address","nodeType":"ElementaryTypeName","src":"1010:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"996:30:4"},"returnParameters":{"id":1172,"nodeType":"ParameterList","parameters":[],"src":"1035:0:4"},"scope":1329,"src":"966:70:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"f64be4c7","id":1180,"implemented":false,"kind":"function","modifiers":[],"name":"defaultSendLibrary","nameLocation":"1051:18:4","nodeType":"FunctionDefinition","parameters":{"id":1176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1175,"mutability":"mutable","name":"_eid","nameLocation":"1077:4:4","nodeType":"VariableDeclaration","scope":1180,"src":"1070:11:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1174,"name":"uint32","nodeType":"ElementaryTypeName","src":"1070:6:4","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"1069:13:4"},"returnParameters":{"id":1179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1178,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1180,"src":"1106:7:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1177,"name":"address","nodeType":"ElementaryTypeName","src":"1106:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1105:9:4"},"scope":1329,"src":"1042:73:4","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"a718531b","id":1189,"implemented":false,"kind":"function","modifiers":[],"name":"setDefaultReceiveLibrary","nameLocation":"1130:24:4","nodeType":"FunctionDefinition","parameters":{"id":1187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1182,"mutability":"mutable","name":"_eid","nameLocation":"1162:4:4","nodeType":"VariableDeclaration","scope":1189,"src":"1155:11:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1181,"name":"uint32","nodeType":"ElementaryTypeName","src":"1155:6:4","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":1184,"mutability":"mutable","name":"_newLib","nameLocation":"1176:7:4","nodeType":"VariableDeclaration","scope":1189,"src":"1168:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1183,"name":"address","nodeType":"ElementaryTypeName","src":"1168:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1186,"mutability":"mutable","name":"_gracePeriod","nameLocation":"1193:12:4","nodeType":"VariableDeclaration","scope":1189,"src":"1185:20:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1185,"name":"uint256","nodeType":"ElementaryTypeName","src":"1185:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1154:52:4"},"returnParameters":{"id":1188,"nodeType":"ParameterList","parameters":[],"src":"1215:0:4"},"scope":1329,"src":"1121:95:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"6f50a803","id":1196,"implemented":false,"kind":"function","modifiers":[],"name":"defaultReceiveLibrary","nameLocation":"1231:21:4","nodeType":"FunctionDefinition","parameters":{"id":1192,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1191,"mutability":"mutable","name":"_eid","nameLocation":"1260:4:4","nodeType":"VariableDeclaration","scope":1196,"src":"1253:11:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1190,"name":"uint32","nodeType":"ElementaryTypeName","src":"1253:6:4","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"1252:13:4"},"returnParameters":{"id":1195,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1194,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1196,"src":"1289:7:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1193,"name":"address","nodeType":"ElementaryTypeName","src":"1289:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1288:9:4"},"scope":1329,"src":"1222:76:4","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"d4b4ec8f","id":1205,"implemented":false,"kind":"function","modifiers":[],"name":"setDefaultReceiveLibraryTimeout","nameLocation":"1313:31:4","nodeType":"FunctionDefinition","parameters":{"id":1203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1198,"mutability":"mutable","name":"_eid","nameLocation":"1352:4:4","nodeType":"VariableDeclaration","scope":1205,"src":"1345:11:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1197,"name":"uint32","nodeType":"ElementaryTypeName","src":"1345:6:4","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":1200,"mutability":"mutable","name":"_lib","nameLocation":"1366:4:4","nodeType":"VariableDeclaration","scope":1205,"src":"1358:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1199,"name":"address","nodeType":"ElementaryTypeName","src":"1358:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1202,"mutability":"mutable","name":"_expiry","nameLocation":"1380:7:4","nodeType":"VariableDeclaration","scope":1205,"src":"1372:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1201,"name":"uint256","nodeType":"ElementaryTypeName","src":"1372:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1344:44:4"},"returnParameters":{"id":1204,"nodeType":"ParameterList","parameters":[],"src":"1397:0:4"},"scope":1329,"src":"1304:94:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"6e83f5bb","id":1214,"implemented":false,"kind":"function","modifiers":[],"name":"defaultReceiveLibraryTimeout","nameLocation":"1413:28:4","nodeType":"FunctionDefinition","parameters":{"id":1208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1207,"mutability":"mutable","name":"_eid","nameLocation":"1449:4:4","nodeType":"VariableDeclaration","scope":1214,"src":"1442:11:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1206,"name":"uint32","nodeType":"ElementaryTypeName","src":"1442:6:4","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"1441:13:4"},"returnParameters":{"id":1213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1210,"mutability":"mutable","name":"lib","nameLocation":"1486:3:4","nodeType":"VariableDeclaration","scope":1214,"src":"1478:11:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1209,"name":"address","nodeType":"ElementaryTypeName","src":"1478:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1212,"mutability":"mutable","name":"expiry","nameLocation":"1499:6:4","nodeType":"VariableDeclaration","scope":1214,"src":"1491:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1211,"name":"uint256","nodeType":"ElementaryTypeName","src":"1491:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1477:29:4"},"scope":1329,"src":"1404:103:4","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"6750cd4c","id":1221,"implemented":false,"kind":"function","modifiers":[],"name":"isSupportedEid","nameLocation":"1522:14:4","nodeType":"FunctionDefinition","parameters":{"id":1217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1216,"mutability":"mutable","name":"_eid","nameLocation":"1544:4:4","nodeType":"VariableDeclaration","scope":1221,"src":"1537:11:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1215,"name":"uint32","nodeType":"ElementaryTypeName","src":"1537:6:4","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"1536:13:4"},"returnParameters":{"id":1220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1219,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1221,"src":"1573:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1218,"name":"bool","nodeType":"ElementaryTypeName","src":"1573:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1572:6:4"},"scope":1329,"src":"1513:66:4","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"9d7f9775","id":1232,"implemented":false,"kind":"function","modifiers":[],"name":"isValidReceiveLibrary","nameLocation":"1594:21:4","nodeType":"FunctionDefinition","parameters":{"id":1228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1223,"mutability":"mutable","name":"_receiver","nameLocation":"1624:9:4","nodeType":"VariableDeclaration","scope":1232,"src":"1616:17:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1222,"name":"address","nodeType":"ElementaryTypeName","src":"1616:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1225,"mutability":"mutable","name":"_eid","nameLocation":"1642:4:4","nodeType":"VariableDeclaration","scope":1232,"src":"1635:11:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1224,"name":"uint32","nodeType":"ElementaryTypeName","src":"1635:6:4","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":1227,"mutability":"mutable","name":"_lib","nameLocation":"1656:4:4","nodeType":"VariableDeclaration","scope":1232,"src":"1648:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1226,"name":"address","nodeType":"ElementaryTypeName","src":"1648:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1615:46:4"},"returnParameters":{"id":1231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1230,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1232,"src":"1685:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1229,"name":"bool","nodeType":"ElementaryTypeName","src":"1685:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1684:6:4"},"scope":1329,"src":"1585:106:4","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1233,"nodeType":"StructuredDocumentation","src":"1697:59:4","text":"------------------- OApp interfaces -------------------"},"functionSelector":"9535ff30","id":1242,"implemented":false,"kind":"function","modifiers":[],"name":"setSendLibrary","nameLocation":"1770:14:4","nodeType":"FunctionDefinition","parameters":{"id":1240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1235,"mutability":"mutable","name":"_oapp","nameLocation":"1793:5:4","nodeType":"VariableDeclaration","scope":1242,"src":"1785:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1234,"name":"address","nodeType":"ElementaryTypeName","src":"1785:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1237,"mutability":"mutable","name":"_eid","nameLocation":"1807:4:4","nodeType":"VariableDeclaration","scope":1242,"src":"1800:11:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1236,"name":"uint32","nodeType":"ElementaryTypeName","src":"1800:6:4","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":1239,"mutability":"mutable","name":"_newLib","nameLocation":"1821:7:4","nodeType":"VariableDeclaration","scope":1242,"src":"1813:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1238,"name":"address","nodeType":"ElementaryTypeName","src":"1813:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1784:45:4"},"returnParameters":{"id":1241,"nodeType":"ParameterList","parameters":[],"src":"1838:0:4"},"scope":1329,"src":"1761:78:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"b96a277f","id":1251,"implemented":false,"kind":"function","modifiers":[],"name":"getSendLibrary","nameLocation":"1854:14:4","nodeType":"FunctionDefinition","parameters":{"id":1247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1244,"mutability":"mutable","name":"_sender","nameLocation":"1877:7:4","nodeType":"VariableDeclaration","scope":1251,"src":"1869:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1243,"name":"address","nodeType":"ElementaryTypeName","src":"1869:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1246,"mutability":"mutable","name":"_eid","nameLocation":"1893:4:4","nodeType":"VariableDeclaration","scope":1251,"src":"1886:11:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1245,"name":"uint32","nodeType":"ElementaryTypeName","src":"1886:6:4","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"1868:30:4"},"returnParameters":{"id":1250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1249,"mutability":"mutable","name":"lib","nameLocation":"1930:3:4","nodeType":"VariableDeclaration","scope":1251,"src":"1922:11:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1248,"name":"address","nodeType":"ElementaryTypeName","src":"1922:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1921:13:4"},"scope":1329,"src":"1845:90:4","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"dc93c8a2","id":1260,"implemented":false,"kind":"function","modifiers":[],"name":"isDefaultSendLibrary","nameLocation":"1950:20:4","nodeType":"FunctionDefinition","parameters":{"id":1256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1253,"mutability":"mutable","name":"_sender","nameLocation":"1979:7:4","nodeType":"VariableDeclaration","scope":1260,"src":"1971:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1252,"name":"address","nodeType":"ElementaryTypeName","src":"1971:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1255,"mutability":"mutable","name":"_eid","nameLocation":"1995:4:4","nodeType":"VariableDeclaration","scope":1260,"src":"1988:11:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1254,"name":"uint32","nodeType":"ElementaryTypeName","src":"1988:6:4","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"1970:30:4"},"returnParameters":{"id":1259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1258,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1260,"src":"2024:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1257,"name":"bool","nodeType":"ElementaryTypeName","src":"2024:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2023:6:4"},"scope":1329,"src":"1941:89:4","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"6a14d715","id":1271,"implemented":false,"kind":"function","modifiers":[],"name":"setReceiveLibrary","nameLocation":"2045:17:4","nodeType":"FunctionDefinition","parameters":{"id":1269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1262,"mutability":"mutable","name":"_oapp","nameLocation":"2071:5:4","nodeType":"VariableDeclaration","scope":1271,"src":"2063:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1261,"name":"address","nodeType":"ElementaryTypeName","src":"2063:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1264,"mutability":"mutable","name":"_eid","nameLocation":"2085:4:4","nodeType":"VariableDeclaration","scope":1271,"src":"2078:11:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1263,"name":"uint32","nodeType":"ElementaryTypeName","src":"2078:6:4","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":1266,"mutability":"mutable","name":"_newLib","nameLocation":"2099:7:4","nodeType":"VariableDeclaration","scope":1271,"src":"2091:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1265,"name":"address","nodeType":"ElementaryTypeName","src":"2091:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1268,"mutability":"mutable","name":"_gracePeriod","nameLocation":"2116:12:4","nodeType":"VariableDeclaration","scope":1271,"src":"2108:20:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1267,"name":"uint256","nodeType":"ElementaryTypeName","src":"2108:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2062:67:4"},"returnParameters":{"id":1270,"nodeType":"ParameterList","parameters":[],"src":"2138:0:4"},"scope":1329,"src":"2036:103:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"402f8468","id":1282,"implemented":false,"kind":"function","modifiers":[],"name":"getReceiveLibrary","nameLocation":"2154:17:4","nodeType":"FunctionDefinition","parameters":{"id":1276,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1273,"mutability":"mutable","name":"_receiver","nameLocation":"2180:9:4","nodeType":"VariableDeclaration","scope":1282,"src":"2172:17:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1272,"name":"address","nodeType":"ElementaryTypeName","src":"2172:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1275,"mutability":"mutable","name":"_eid","nameLocation":"2198:4:4","nodeType":"VariableDeclaration","scope":1282,"src":"2191:11:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1274,"name":"uint32","nodeType":"ElementaryTypeName","src":"2191:6:4","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"2171:32:4"},"returnParameters":{"id":1281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1278,"mutability":"mutable","name":"lib","nameLocation":"2235:3:4","nodeType":"VariableDeclaration","scope":1282,"src":"2227:11:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1277,"name":"address","nodeType":"ElementaryTypeName","src":"2227:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1280,"mutability":"mutable","name":"isDefault","nameLocation":"2245:9:4","nodeType":"VariableDeclaration","scope":1282,"src":"2240:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1279,"name":"bool","nodeType":"ElementaryTypeName","src":"2240:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2226:29:4"},"scope":1329,"src":"2145:111:4","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"183c834f","id":1293,"implemented":false,"kind":"function","modifiers":[],"name":"setReceiveLibraryTimeout","nameLocation":"2271:24:4","nodeType":"FunctionDefinition","parameters":{"id":1291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1284,"mutability":"mutable","name":"_oapp","nameLocation":"2304:5:4","nodeType":"VariableDeclaration","scope":1293,"src":"2296:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1283,"name":"address","nodeType":"ElementaryTypeName","src":"2296:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1286,"mutability":"mutable","name":"_eid","nameLocation":"2318:4:4","nodeType":"VariableDeclaration","scope":1293,"src":"2311:11:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1285,"name":"uint32","nodeType":"ElementaryTypeName","src":"2311:6:4","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":1288,"mutability":"mutable","name":"_lib","nameLocation":"2332:4:4","nodeType":"VariableDeclaration","scope":1293,"src":"2324:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1287,"name":"address","nodeType":"ElementaryTypeName","src":"2324:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1290,"mutability":"mutable","name":"_expiry","nameLocation":"2346:7:4","nodeType":"VariableDeclaration","scope":1293,"src":"2338:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1289,"name":"uint256","nodeType":"ElementaryTypeName","src":"2338:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2295:59:4"},"returnParameters":{"id":1292,"nodeType":"ParameterList","parameters":[],"src":"2363:0:4"},"scope":1329,"src":"2262:102:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"ef667aa1","id":1304,"implemented":false,"kind":"function","modifiers":[],"name":"receiveLibraryTimeout","nameLocation":"2379:21:4","nodeType":"FunctionDefinition","parameters":{"id":1298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1295,"mutability":"mutable","name":"_receiver","nameLocation":"2409:9:4","nodeType":"VariableDeclaration","scope":1304,"src":"2401:17:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1294,"name":"address","nodeType":"ElementaryTypeName","src":"2401:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1297,"mutability":"mutable","name":"_eid","nameLocation":"2427:4:4","nodeType":"VariableDeclaration","scope":1304,"src":"2420:11:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1296,"name":"uint32","nodeType":"ElementaryTypeName","src":"2420:6:4","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"2400:32:4"},"returnParameters":{"id":1303,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1300,"mutability":"mutable","name":"lib","nameLocation":"2464:3:4","nodeType":"VariableDeclaration","scope":1304,"src":"2456:11:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1299,"name":"address","nodeType":"ElementaryTypeName","src":"2456:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1302,"mutability":"mutable","name":"expiry","nameLocation":"2477:6:4","nodeType":"VariableDeclaration","scope":1304,"src":"2469:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1301,"name":"uint256","nodeType":"ElementaryTypeName","src":"2469:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2455:29:4"},"scope":1329,"src":"2370:115:4","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"6dbd9f90","id":1315,"implemented":false,"kind":"function","modifiers":[],"name":"setConfig","nameLocation":"2500:9:4","nodeType":"FunctionDefinition","parameters":{"id":1313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1306,"mutability":"mutable","name":"_oapp","nameLocation":"2518:5:4","nodeType":"VariableDeclaration","scope":1315,"src":"2510:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1305,"name":"address","nodeType":"ElementaryTypeName","src":"2510:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1308,"mutability":"mutable","name":"_lib","nameLocation":"2533:4:4","nodeType":"VariableDeclaration","scope":1315,"src":"2525:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1307,"name":"address","nodeType":"ElementaryTypeName","src":"2525:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1312,"mutability":"mutable","name":"_params","nameLocation":"2565:7:4","nodeType":"VariableDeclaration","scope":1315,"src":"2539:33:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SetConfigParam_$1093_calldata_ptr_$dyn_calldata_ptr","typeString":"struct SetConfigParam[]"},"typeName":{"baseType":{"id":1310,"nodeType":"UserDefinedTypeName","pathNode":{"id":1309,"name":"SetConfigParam","nameLocations":["2539:14:4"],"nodeType":"IdentifierPath","referencedDeclaration":1093,"src":"2539:14:4"},"referencedDeclaration":1093,"src":"2539:14:4","typeDescriptions":{"typeIdentifier":"t_struct$_SetConfigParam_$1093_storage_ptr","typeString":"struct SetConfigParam"}},"id":1311,"nodeType":"ArrayTypeName","src":"2539:16:4","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SetConfigParam_$1093_storage_$dyn_storage_ptr","typeString":"struct SetConfigParam[]"}},"visibility":"internal"}],"src":"2509:64:4"},"returnParameters":{"id":1314,"nodeType":"ParameterList","parameters":[],"src":"2582:0:4"},"scope":1329,"src":"2491:92:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"2b3197b9","id":1328,"implemented":false,"kind":"function","modifiers":[],"name":"getConfig","nameLocation":"2598:9:4","nodeType":"FunctionDefinition","parameters":{"id":1324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1317,"mutability":"mutable","name":"_oapp","nameLocation":"2625:5:4","nodeType":"VariableDeclaration","scope":1328,"src":"2617:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1316,"name":"address","nodeType":"ElementaryTypeName","src":"2617:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1319,"mutability":"mutable","name":"_lib","nameLocation":"2648:4:4","nodeType":"VariableDeclaration","scope":1328,"src":"2640:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1318,"name":"address","nodeType":"ElementaryTypeName","src":"2640:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1321,"mutability":"mutable","name":"_eid","nameLocation":"2669:4:4","nodeType":"VariableDeclaration","scope":1328,"src":"2662:11:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1320,"name":"uint32","nodeType":"ElementaryTypeName","src":"2662:6:4","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":1323,"mutability":"mutable","name":"_configType","nameLocation":"2690:11:4","nodeType":"VariableDeclaration","scope":1328,"src":"2683:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1322,"name":"uint32","nodeType":"ElementaryTypeName","src":"2683:6:4","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"2607:100:4"},"returnParameters":{"id":1327,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1326,"mutability":"mutable","name":"config","nameLocation":"2744:6:4","nodeType":"VariableDeclaration","scope":1328,"src":"2731:19:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1325,"name":"bytes","nodeType":"ElementaryTypeName","src":"2731:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2730:21:4"},"scope":1329,"src":"2589:163:4","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1330,"src":"143:2611:4","usedErrors":[],"usedEvents":[1102,1108,1114,1122,1130,1138,1148]}],"src":"33:2722:4"},"id":4},"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"ast":{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol","exportedSymbols":{"IMessagingChannel":[1465]},"id":1466,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1331,"literals":["solidity",">=","0.8",".0"],"nodeType":"PragmaDirective","src":"33:24:5"},{"abstract":false,"baseContracts":[],"canonicalName":"IMessagingChannel","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1465,"linearizedBaseContracts":[1465],"name":"IMessagingChannel","nameLocation":"69:17:5","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"eventSelector":"28f40053783033ef755556a0c3315379141f51a33aed8334174ffbadd90bde48","id":1341,"name":"InboundNonceSkipped","nameLocation":"99:19:5","nodeType":"EventDefinition","parameters":{"id":1340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1333,"indexed":false,"mutability":"mutable","name":"srcEid","nameLocation":"126:6:5","nodeType":"VariableDeclaration","scope":1341,"src":"119:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1332,"name":"uint32","nodeType":"ElementaryTypeName","src":"119:6:5","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":1335,"indexed":false,"mutability":"mutable","name":"sender","nameLocation":"142:6:5","nodeType":"VariableDeclaration","scope":1341,"src":"134:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1334,"name":"bytes32","nodeType":"ElementaryTypeName","src":"134:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1337,"indexed":false,"mutability":"mutable","name":"receiver","nameLocation":"158:8:5","nodeType":"VariableDeclaration","scope":1341,"src":"150:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1336,"name":"address","nodeType":"ElementaryTypeName","src":"150:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1339,"indexed":false,"mutability":"mutable","name":"nonce","nameLocation":"175:5:5","nodeType":"VariableDeclaration","scope":1341,"src":"168:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1338,"name":"uint64","nodeType":"ElementaryTypeName","src":"168:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"118:63:5"},"src":"93:89:5"},{"anonymous":false,"eventSelector":"af0450c392c4f702515a457a362328c8aa21916048ca6d0419e248b30cb55292","id":1353,"name":"PacketNilified","nameLocation":"193:14:5","nodeType":"EventDefinition","parameters":{"id":1352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1343,"indexed":false,"mutability":"mutable","name":"srcEid","nameLocation":"215:6:5","nodeType":"VariableDeclaration","scope":1353,"src":"208:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1342,"name":"uint32","nodeType":"ElementaryTypeName","src":"208:6:5","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":1345,"indexed":false,"mutability":"mutable","name":"sender","nameLocation":"231:6:5","nodeType":"VariableDeclaration","scope":1353,"src":"223:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1344,"name":"bytes32","nodeType":"ElementaryTypeName","src":"223:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1347,"indexed":false,"mutability":"mutable","name":"receiver","nameLocation":"247:8:5","nodeType":"VariableDeclaration","scope":1353,"src":"239:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1346,"name":"address","nodeType":"ElementaryTypeName","src":"239:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1349,"indexed":false,"mutability":"mutable","name":"nonce","nameLocation":"264:5:5","nodeType":"VariableDeclaration","scope":1353,"src":"257:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1348,"name":"uint64","nodeType":"ElementaryTypeName","src":"257:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1351,"indexed":false,"mutability":"mutable","name":"payloadHash","nameLocation":"279:11:5","nodeType":"VariableDeclaration","scope":1353,"src":"271:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1350,"name":"bytes32","nodeType":"ElementaryTypeName","src":"271:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"207:84:5"},"src":"187:105:5"},{"anonymous":false,"eventSelector":"7f68a37a6e69a0de35024a234558f9efe4b33b58657753d21eaaa82d51c3510e","id":1365,"name":"PacketBurnt","nameLocation":"303:11:5","nodeType":"EventDefinition","parameters":{"id":1364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1355,"indexed":false,"mutability":"mutable","name":"srcEid","nameLocation":"322:6:5","nodeType":"VariableDeclaration","scope":1365,"src":"315:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1354,"name":"uint32","nodeType":"ElementaryTypeName","src":"315:6:5","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":1357,"indexed":false,"mutability":"mutable","name":"sender","nameLocation":"338:6:5","nodeType":"VariableDeclaration","scope":1365,"src":"330:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1356,"name":"bytes32","nodeType":"ElementaryTypeName","src":"330:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1359,"indexed":false,"mutability":"mutable","name":"receiver","nameLocation":"354:8:5","nodeType":"VariableDeclaration","scope":1365,"src":"346:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1358,"name":"address","nodeType":"ElementaryTypeName","src":"346:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1361,"indexed":false,"mutability":"mutable","name":"nonce","nameLocation":"371:5:5","nodeType":"VariableDeclaration","scope":1365,"src":"364:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1360,"name":"uint64","nodeType":"ElementaryTypeName","src":"364:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1363,"indexed":false,"mutability":"mutable","name":"payloadHash","nameLocation":"386:11:5","nodeType":"VariableDeclaration","scope":1365,"src":"378:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1362,"name":"bytes32","nodeType":"ElementaryTypeName","src":"378:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"314:84:5"},"src":"297:102:5"},{"functionSelector":"416ecebf","id":1370,"implemented":false,"kind":"function","modifiers":[],"name":"eid","nameLocation":"414:3:5","nodeType":"FunctionDefinition","parameters":{"id":1366,"nodeType":"ParameterList","parameters":[],"src":"417:2:5"},"returnParameters":{"id":1369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1368,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1370,"src":"443:6:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1367,"name":"uint32","nodeType":"ElementaryTypeName","src":"443:6:5","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"442:8:5"},"scope":1465,"src":"405:46:5","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"d70b8902","id":1381,"implemented":false,"kind":"function","modifiers":[],"name":"skip","nameLocation":"614:4:5","nodeType":"FunctionDefinition","parameters":{"id":1379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1372,"mutability":"mutable","name":"_oapp","nameLocation":"627:5:5","nodeType":"VariableDeclaration","scope":1381,"src":"619:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1371,"name":"address","nodeType":"ElementaryTypeName","src":"619:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1374,"mutability":"mutable","name":"_srcEid","nameLocation":"641:7:5","nodeType":"VariableDeclaration","scope":1381,"src":"634:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1373,"name":"uint32","nodeType":"ElementaryTypeName","src":"634:6:5","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":1376,"mutability":"mutable","name":"_sender","nameLocation":"658:7:5","nodeType":"VariableDeclaration","scope":1381,"src":"650:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1375,"name":"bytes32","nodeType":"ElementaryTypeName","src":"650:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1378,"mutability":"mutable","name":"_nonce","nameLocation":"674:6:5","nodeType":"VariableDeclaration","scope":1381,"src":"667:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1377,"name":"uint64","nodeType":"ElementaryTypeName","src":"667:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"618:63:5"},"returnParameters":{"id":1380,"nodeType":"ParameterList","parameters":[],"src":"690:0:5"},"scope":1465,"src":"605:86:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"2e80fbf3","id":1394,"implemented":false,"kind":"function","modifiers":[],"name":"nilify","nameLocation":"706:6:5","nodeType":"FunctionDefinition","parameters":{"id":1392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1383,"mutability":"mutable","name":"_oapp","nameLocation":"721:5:5","nodeType":"VariableDeclaration","scope":1394,"src":"713:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1382,"name":"address","nodeType":"ElementaryTypeName","src":"713:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1385,"mutability":"mutable","name":"_srcEid","nameLocation":"735:7:5","nodeType":"VariableDeclaration","scope":1394,"src":"728:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1384,"name":"uint32","nodeType":"ElementaryTypeName","src":"728:6:5","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":1387,"mutability":"mutable","name":"_sender","nameLocation":"752:7:5","nodeType":"VariableDeclaration","scope":1394,"src":"744:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1386,"name":"bytes32","nodeType":"ElementaryTypeName","src":"744:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1389,"mutability":"mutable","name":"_nonce","nameLocation":"768:6:5","nodeType":"VariableDeclaration","scope":1394,"src":"761:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1388,"name":"uint64","nodeType":"ElementaryTypeName","src":"761:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1391,"mutability":"mutable","name":"_payloadHash","nameLocation":"784:12:5","nodeType":"VariableDeclaration","scope":1394,"src":"776:20:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1390,"name":"bytes32","nodeType":"ElementaryTypeName","src":"776:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"712:85:5"},"returnParameters":{"id":1393,"nodeType":"ParameterList","parameters":[],"src":"806:0:5"},"scope":1465,"src":"697:110:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"40f80683","id":1407,"implemented":false,"kind":"function","modifiers":[],"name":"burn","nameLocation":"822:4:5","nodeType":"FunctionDefinition","parameters":{"id":1405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1396,"mutability":"mutable","name":"_oapp","nameLocation":"835:5:5","nodeType":"VariableDeclaration","scope":1407,"src":"827:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1395,"name":"address","nodeType":"ElementaryTypeName","src":"827:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1398,"mutability":"mutable","name":"_srcEid","nameLocation":"849:7:5","nodeType":"VariableDeclaration","scope":1407,"src":"842:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1397,"name":"uint32","nodeType":"ElementaryTypeName","src":"842:6:5","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":1400,"mutability":"mutable","name":"_sender","nameLocation":"866:7:5","nodeType":"VariableDeclaration","scope":1407,"src":"858:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1399,"name":"bytes32","nodeType":"ElementaryTypeName","src":"858:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1402,"mutability":"mutable","name":"_nonce","nameLocation":"882:6:5","nodeType":"VariableDeclaration","scope":1407,"src":"875:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1401,"name":"uint64","nodeType":"ElementaryTypeName","src":"875:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1404,"mutability":"mutable","name":"_payloadHash","nameLocation":"898:12:5","nodeType":"VariableDeclaration","scope":1407,"src":"890:20:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1403,"name":"bytes32","nodeType":"ElementaryTypeName","src":"890:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"826:85:5"},"returnParameters":{"id":1406,"nodeType":"ParameterList","parameters":[],"src":"920:0:5"},"scope":1465,"src":"813:108:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"aafe5e07","id":1418,"implemented":false,"kind":"function","modifiers":[],"name":"nextGuid","nameLocation":"936:8:5","nodeType":"FunctionDefinition","parameters":{"id":1414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1409,"mutability":"mutable","name":"_sender","nameLocation":"953:7:5","nodeType":"VariableDeclaration","scope":1418,"src":"945:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1408,"name":"address","nodeType":"ElementaryTypeName","src":"945:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1411,"mutability":"mutable","name":"_dstEid","nameLocation":"969:7:5","nodeType":"VariableDeclaration","scope":1418,"src":"962:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1410,"name":"uint32","nodeType":"ElementaryTypeName","src":"962:6:5","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":1413,"mutability":"mutable","name":"_receiver","nameLocation":"986:9:5","nodeType":"VariableDeclaration","scope":1418,"src":"978:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1412,"name":"bytes32","nodeType":"ElementaryTypeName","src":"978:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"944:52:5"},"returnParameters":{"id":1417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1416,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1418,"src":"1020:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1415,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1020:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1019:9:5"},"scope":1465,"src":"927:102:5","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"a0dd43fc","id":1429,"implemented":false,"kind":"function","modifiers":[],"name":"inboundNonce","nameLocation":"1044:12:5","nodeType":"FunctionDefinition","parameters":{"id":1425,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1420,"mutability":"mutable","name":"_receiver","nameLocation":"1065:9:5","nodeType":"VariableDeclaration","scope":1429,"src":"1057:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1419,"name":"address","nodeType":"ElementaryTypeName","src":"1057:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1422,"mutability":"mutable","name":"_srcEid","nameLocation":"1083:7:5","nodeType":"VariableDeclaration","scope":1429,"src":"1076:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1421,"name":"uint32","nodeType":"ElementaryTypeName","src":"1076:6:5","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":1424,"mutability":"mutable","name":"_sender","nameLocation":"1100:7:5","nodeType":"VariableDeclaration","scope":1429,"src":"1092:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1423,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1092:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1056:52:5"},"returnParameters":{"id":1428,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1427,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1429,"src":"1132:6:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1426,"name":"uint64","nodeType":"ElementaryTypeName","src":"1132:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1131:8:5"},"scope":1465,"src":"1035:105:5","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"9c6d7340","id":1440,"implemented":false,"kind":"function","modifiers":[],"name":"outboundNonce","nameLocation":"1155:13:5","nodeType":"FunctionDefinition","parameters":{"id":1436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1431,"mutability":"mutable","name":"_sender","nameLocation":"1177:7:5","nodeType":"VariableDeclaration","scope":1440,"src":"1169:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1430,"name":"address","nodeType":"ElementaryTypeName","src":"1169:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1433,"mutability":"mutable","name":"_dstEid","nameLocation":"1193:7:5","nodeType":"VariableDeclaration","scope":1440,"src":"1186:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1432,"name":"uint32","nodeType":"ElementaryTypeName","src":"1186:6:5","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":1435,"mutability":"mutable","name":"_receiver","nameLocation":"1210:9:5","nodeType":"VariableDeclaration","scope":1440,"src":"1202:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1434,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1202:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1168:52:5"},"returnParameters":{"id":1439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1438,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1440,"src":"1244:6:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1437,"name":"uint64","nodeType":"ElementaryTypeName","src":"1244:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1243:8:5"},"scope":1465,"src":"1146:106:5","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"c9fc7bcd","id":1453,"implemented":false,"kind":"function","modifiers":[],"name":"inboundPayloadHash","nameLocation":"1267:18:5","nodeType":"FunctionDefinition","parameters":{"id":1449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1442,"mutability":"mutable","name":"_receiver","nameLocation":"1303:9:5","nodeType":"VariableDeclaration","scope":1453,"src":"1295:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1441,"name":"address","nodeType":"ElementaryTypeName","src":"1295:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1444,"mutability":"mutable","name":"_srcEid","nameLocation":"1329:7:5","nodeType":"VariableDeclaration","scope":1453,"src":"1322:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1443,"name":"uint32","nodeType":"ElementaryTypeName","src":"1322:6:5","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":1446,"mutability":"mutable","name":"_sender","nameLocation":"1354:7:5","nodeType":"VariableDeclaration","scope":1453,"src":"1346:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1445,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1346:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1448,"mutability":"mutable","name":"_nonce","nameLocation":"1378:6:5","nodeType":"VariableDeclaration","scope":1453,"src":"1371:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1447,"name":"uint64","nodeType":"ElementaryTypeName","src":"1371:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1285:105:5"},"returnParameters":{"id":1452,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1451,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1453,"src":"1414:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1450,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1414:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1413:9:5"},"scope":1465,"src":"1258:165:5","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"5b17bb70","id":1464,"implemented":false,"kind":"function","modifiers":[],"name":"lazyInboundNonce","nameLocation":"1438:16:5","nodeType":"FunctionDefinition","parameters":{"id":1460,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1455,"mutability":"mutable","name":"_receiver","nameLocation":"1463:9:5","nodeType":"VariableDeclaration","scope":1464,"src":"1455:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1454,"name":"address","nodeType":"ElementaryTypeName","src":"1455:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1457,"mutability":"mutable","name":"_srcEid","nameLocation":"1481:7:5","nodeType":"VariableDeclaration","scope":1464,"src":"1474:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1456,"name":"uint32","nodeType":"ElementaryTypeName","src":"1474:6:5","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":1459,"mutability":"mutable","name":"_sender","nameLocation":"1498:7:5","nodeType":"VariableDeclaration","scope":1464,"src":"1490:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1458,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1490:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1454:52:5"},"returnParameters":{"id":1463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1462,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1464,"src":"1530:6:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1461,"name":"uint64","nodeType":"ElementaryTypeName","src":"1530:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1529:8:5"},"scope":1465,"src":"1429:109:5","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1466,"src":"59:1481:5","usedErrors":[],"usedEvents":[1341,1353,1365]}],"src":"33:1508:5"},"id":5},"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"ast":{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol","exportedSymbols":{"IMessagingComposer":[1551]},"id":1552,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1467,"literals":["solidity",">=","0.8",".0"],"nodeType":"PragmaDirective","src":"33:24:6"},{"abstract":false,"baseContracts":[],"canonicalName":"IMessagingComposer","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1551,"linearizedBaseContracts":[1551],"name":"IMessagingComposer","nameLocation":"69:18:6","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"eventSelector":"3d52ff888d033fd3dd1d8057da59e850c91d91a72c41dfa445b247dfedeb6dc1","id":1479,"name":"ComposeSent","nameLocation":"100:11:6","nodeType":"EventDefinition","parameters":{"id":1478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1469,"indexed":false,"mutability":"mutable","name":"from","nameLocation":"120:4:6","nodeType":"VariableDeclaration","scope":1479,"src":"112:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1468,"name":"address","nodeType":"ElementaryTypeName","src":"112:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1471,"indexed":false,"mutability":"mutable","name":"to","nameLocation":"134:2:6","nodeType":"VariableDeclaration","scope":1479,"src":"126:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1470,"name":"address","nodeType":"ElementaryTypeName","src":"126:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1473,"indexed":false,"mutability":"mutable","name":"guid","nameLocation":"146:4:6","nodeType":"VariableDeclaration","scope":1479,"src":"138:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1472,"name":"bytes32","nodeType":"ElementaryTypeName","src":"138:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1475,"indexed":false,"mutability":"mutable","name":"index","nameLocation":"159:5:6","nodeType":"VariableDeclaration","scope":1479,"src":"152:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1474,"name":"uint16","nodeType":"ElementaryTypeName","src":"152:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1477,"indexed":false,"mutability":"mutable","name":"message","nameLocation":"172:7:6","nodeType":"VariableDeclaration","scope":1479,"src":"166:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1476,"name":"bytes","nodeType":"ElementaryTypeName","src":"166:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"111:69:6"},"src":"94:87:6"},{"anonymous":false,"eventSelector":"0036c98efcf9e6641dfbc9051f66f405253e8e0c2ab4a24dccda15595b7378c8","id":1489,"name":"ComposeDelivered","nameLocation":"192:16:6","nodeType":"EventDefinition","parameters":{"id":1488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1481,"indexed":false,"mutability":"mutable","name":"from","nameLocation":"217:4:6","nodeType":"VariableDeclaration","scope":1489,"src":"209:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1480,"name":"address","nodeType":"ElementaryTypeName","src":"209:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1483,"indexed":false,"mutability":"mutable","name":"to","nameLocation":"231:2:6","nodeType":"VariableDeclaration","scope":1489,"src":"223:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1482,"name":"address","nodeType":"ElementaryTypeName","src":"223:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1485,"indexed":false,"mutability":"mutable","name":"guid","nameLocation":"243:4:6","nodeType":"VariableDeclaration","scope":1489,"src":"235:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1484,"name":"bytes32","nodeType":"ElementaryTypeName","src":"235:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1487,"indexed":false,"mutability":"mutable","name":"index","nameLocation":"256:5:6","nodeType":"VariableDeclaration","scope":1489,"src":"249:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1486,"name":"uint16","nodeType":"ElementaryTypeName","src":"249:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"208:54:6"},"src":"186:77:6"},{"anonymous":false,"eventSelector":"8a0b1dce321c5c5fb42349bce46d18087c04140de520917661fb923e44a904b9","id":1511,"name":"LzComposeAlert","nameLocation":"274:14:6","nodeType":"EventDefinition","parameters":{"id":1510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1491,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"314:4:6","nodeType":"VariableDeclaration","scope":1511,"src":"298:20:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1490,"name":"address","nodeType":"ElementaryTypeName","src":"298:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1493,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"344:2:6","nodeType":"VariableDeclaration","scope":1511,"src":"328:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1492,"name":"address","nodeType":"ElementaryTypeName","src":"328:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1495,"indexed":true,"mutability":"mutable","name":"executor","nameLocation":"372:8:6","nodeType":"VariableDeclaration","scope":1511,"src":"356:24:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1494,"name":"address","nodeType":"ElementaryTypeName","src":"356:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1497,"indexed":false,"mutability":"mutable","name":"guid","nameLocation":"398:4:6","nodeType":"VariableDeclaration","scope":1511,"src":"390:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1496,"name":"bytes32","nodeType":"ElementaryTypeName","src":"390:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1499,"indexed":false,"mutability":"mutable","name":"index","nameLocation":"419:5:6","nodeType":"VariableDeclaration","scope":1511,"src":"412:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1498,"name":"uint16","nodeType":"ElementaryTypeName","src":"412:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1501,"indexed":false,"mutability":"mutable","name":"gas","nameLocation":"442:3:6","nodeType":"VariableDeclaration","scope":1511,"src":"434:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1500,"name":"uint256","nodeType":"ElementaryTypeName","src":"434:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1503,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"463:5:6","nodeType":"VariableDeclaration","scope":1511,"src":"455:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1502,"name":"uint256","nodeType":"ElementaryTypeName","src":"455:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1505,"indexed":false,"mutability":"mutable","name":"message","nameLocation":"484:7:6","nodeType":"VariableDeclaration","scope":1511,"src":"478:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1504,"name":"bytes","nodeType":"ElementaryTypeName","src":"478:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1507,"indexed":false,"mutability":"mutable","name":"extraData","nameLocation":"507:9:6","nodeType":"VariableDeclaration","scope":1511,"src":"501:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1506,"name":"bytes","nodeType":"ElementaryTypeName","src":"501:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1509,"indexed":false,"mutability":"mutable","name":"reason","nameLocation":"532:6:6","nodeType":"VariableDeclaration","scope":1511,"src":"526:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1508,"name":"bytes","nodeType":"ElementaryTypeName","src":"526:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"288:256:6"},"src":"268:277:6"},{"functionSelector":"35d330b0","id":1524,"implemented":false,"kind":"function","modifiers":[],"name":"composeQueue","nameLocation":"560:12:6","nodeType":"FunctionDefinition","parameters":{"id":1520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1513,"mutability":"mutable","name":"_from","nameLocation":"590:5:6","nodeType":"VariableDeclaration","scope":1524,"src":"582:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1512,"name":"address","nodeType":"ElementaryTypeName","src":"582:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1515,"mutability":"mutable","name":"_to","nameLocation":"613:3:6","nodeType":"VariableDeclaration","scope":1524,"src":"605:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1514,"name":"address","nodeType":"ElementaryTypeName","src":"605:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1517,"mutability":"mutable","name":"_guid","nameLocation":"634:5:6","nodeType":"VariableDeclaration","scope":1524,"src":"626:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1516,"name":"bytes32","nodeType":"ElementaryTypeName","src":"626:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1519,"mutability":"mutable","name":"_index","nameLocation":"656:6:6","nodeType":"VariableDeclaration","scope":1524,"src":"649:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1518,"name":"uint16","nodeType":"ElementaryTypeName","src":"649:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"572:96:6"},"returnParameters":{"id":1523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1522,"mutability":"mutable","name":"messageHash","nameLocation":"700:11:6","nodeType":"VariableDeclaration","scope":1524,"src":"692:19:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1521,"name":"bytes32","nodeType":"ElementaryTypeName","src":"692:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"691:21:6"},"scope":1551,"src":"551:162:6","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"7cb59012","id":1535,"implemented":false,"kind":"function","modifiers":[],"name":"sendCompose","nameLocation":"728:11:6","nodeType":"FunctionDefinition","parameters":{"id":1533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1526,"mutability":"mutable","name":"_to","nameLocation":"748:3:6","nodeType":"VariableDeclaration","scope":1535,"src":"740:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1525,"name":"address","nodeType":"ElementaryTypeName","src":"740:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1528,"mutability":"mutable","name":"_guid","nameLocation":"761:5:6","nodeType":"VariableDeclaration","scope":1535,"src":"753:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1527,"name":"bytes32","nodeType":"ElementaryTypeName","src":"753:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1530,"mutability":"mutable","name":"_index","nameLocation":"775:6:6","nodeType":"VariableDeclaration","scope":1535,"src":"768:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1529,"name":"uint16","nodeType":"ElementaryTypeName","src":"768:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1532,"mutability":"mutable","name":"_message","nameLocation":"798:8:6","nodeType":"VariableDeclaration","scope":1535,"src":"783:23:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1531,"name":"bytes","nodeType":"ElementaryTypeName","src":"783:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"739:68:6"},"returnParameters":{"id":1534,"nodeType":"ParameterList","parameters":[],"src":"816:0:6"},"scope":1551,"src":"719:98:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"91d20fa1","id":1550,"implemented":false,"kind":"function","modifiers":[],"name":"lzCompose","nameLocation":"832:9:6","nodeType":"FunctionDefinition","parameters":{"id":1548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1537,"mutability":"mutable","name":"_from","nameLocation":"859:5:6","nodeType":"VariableDeclaration","scope":1550,"src":"851:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1536,"name":"address","nodeType":"ElementaryTypeName","src":"851:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1539,"mutability":"mutable","name":"_to","nameLocation":"882:3:6","nodeType":"VariableDeclaration","scope":1550,"src":"874:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1538,"name":"address","nodeType":"ElementaryTypeName","src":"874:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1541,"mutability":"mutable","name":"_guid","nameLocation":"903:5:6","nodeType":"VariableDeclaration","scope":1550,"src":"895:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1540,"name":"bytes32","nodeType":"ElementaryTypeName","src":"895:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1543,"mutability":"mutable","name":"_index","nameLocation":"925:6:6","nodeType":"VariableDeclaration","scope":1550,"src":"918:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1542,"name":"uint16","nodeType":"ElementaryTypeName","src":"918:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1545,"mutability":"mutable","name":"_message","nameLocation":"956:8:6","nodeType":"VariableDeclaration","scope":1550,"src":"941:23:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1544,"name":"bytes","nodeType":"ElementaryTypeName","src":"941:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1547,"mutability":"mutable","name":"_extraData","nameLocation":"989:10:6","nodeType":"VariableDeclaration","scope":1550,"src":"974:25:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1546,"name":"bytes","nodeType":"ElementaryTypeName","src":"974:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"841:164:6"},"returnParameters":{"id":1549,"nodeType":"ParameterList","parameters":[],"src":"1022:0:6"},"scope":1551,"src":"823:200:6","stateMutability":"payable","virtual":false,"visibility":"external"}],"scope":1552,"src":"59:966:6","usedErrors":[],"usedEvents":[1479,1489,1511]}],"src":"33:993:6"},"id":6},"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"ast":{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol","exportedSymbols":{"IMessagingContext":[1566]},"id":1567,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1553,"literals":["solidity",">=","0.8",".0"],"nodeType":"PragmaDirective","src":"33:24:7"},{"abstract":false,"baseContracts":[],"canonicalName":"IMessagingContext","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1566,"linearizedBaseContracts":[1566],"name":"IMessagingContext","nameLocation":"69:17:7","nodeType":"ContractDefinition","nodes":[{"functionSelector":"79624ca9","id":1558,"implemented":false,"kind":"function","modifiers":[],"name":"isSendingMessage","nameLocation":"102:16:7","nodeType":"FunctionDefinition","parameters":{"id":1554,"nodeType":"ParameterList","parameters":[],"src":"118:2:7"},"returnParameters":{"id":1557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1556,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1558,"src":"144:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1555,"name":"bool","nodeType":"ElementaryTypeName","src":"144:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"143:6:7"},"scope":1566,"src":"93:57:7","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"14f651a9","id":1565,"implemented":false,"kind":"function","modifiers":[],"name":"getSendContext","nameLocation":"165:14:7","nodeType":"FunctionDefinition","parameters":{"id":1559,"nodeType":"ParameterList","parameters":[],"src":"179:2:7"},"returnParameters":{"id":1564,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1561,"mutability":"mutable","name":"dstEid","nameLocation":"212:6:7","nodeType":"VariableDeclaration","scope":1565,"src":"205:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1560,"name":"uint32","nodeType":"ElementaryTypeName","src":"205:6:7","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":1563,"mutability":"mutable","name":"sender","nameLocation":"228:6:7","nodeType":"VariableDeclaration","scope":1565,"src":"220:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1562,"name":"address","nodeType":"ElementaryTypeName","src":"220:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"204:31:7"},"scope":1566,"src":"156:80:7","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1567,"src":"59:179:7","usedErrors":[],"usedEvents":[]}],"src":"33:206:7"},"id":7},"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol":{"ast":{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol","exportedSymbols":{"CalldataBytesLib":[1779]},"id":1780,"license":"LZBL-1.2","nodeType":"SourceUnit","nodes":[{"id":1568,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"38:24:8"},{"abstract":false,"baseContracts":[],"canonicalName":"CalldataBytesLib","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":1779,"linearizedBaseContracts":[1779],"name":"CalldataBytesLib","nameLocation":"72:16:8","nodeType":"ContractDefinition","nodes":[{"body":{"id":1584,"nodeType":"Block","src":"178:45:8","statements":[{"expression":{"arguments":[{"baseExpression":{"id":1579,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1570,"src":"201:6:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":1581,"indexExpression":{"id":1580,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1572,"src":"208:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"201:14:8","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"id":1578,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"195:5:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":1577,"name":"uint8","nodeType":"ElementaryTypeName","src":"195:5:8","typeDescriptions":{}}},"id":1582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"195:21:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":1576,"id":1583,"nodeType":"Return","src":"188:28:8"}]},"id":1585,"implemented":true,"kind":"function","modifiers":[],"name":"toU8","nameLocation":"104:4:8","nodeType":"FunctionDefinition","parameters":{"id":1573,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1570,"mutability":"mutable","name":"_bytes","nameLocation":"124:6:8","nodeType":"VariableDeclaration","scope":1585,"src":"109:21:8","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1569,"name":"bytes","nodeType":"ElementaryTypeName","src":"109:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1572,"mutability":"mutable","name":"_start","nameLocation":"140:6:8","nodeType":"VariableDeclaration","scope":1585,"src":"132:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1571,"name":"uint256","nodeType":"ElementaryTypeName","src":"132:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"108:39:8"},"returnParameters":{"id":1576,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1575,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1585,"src":"171:5:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1574,"name":"uint8","nodeType":"ElementaryTypeName","src":"171:5:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"170:7:8"},"scope":1779,"src":"95:128:8","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1612,"nodeType":"Block","src":"314:130:8","statements":[{"id":1611,"nodeType":"UncheckedBlock","src":"324:114:8","statements":[{"assignments":[1595],"declarations":[{"constant":false,"id":1595,"mutability":"mutable","name":"end","nameLocation":"356:3:8","nodeType":"VariableDeclaration","scope":1611,"src":"348:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1594,"name":"uint256","nodeType":"ElementaryTypeName","src":"348:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1599,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1596,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1589,"src":"362:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":1597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"371:1:8","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"362:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"348:24:8"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":1604,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1587,"src":"407:6:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"id":1606,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1595,"src":"421:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"407:18:8","startExpression":{"id":1605,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1589,"src":"414:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":1603,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"400:6:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes2_$","typeString":"type(bytes2)"},"typeName":{"id":1602,"name":"bytes2","nodeType":"ElementaryTypeName","src":"400:6:8","typeDescriptions":{}}},"id":1608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"400:26:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes2","typeString":"bytes2"}],"id":1601,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"393:6:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":1600,"name":"uint16","nodeType":"ElementaryTypeName","src":"393:6:8","typeDescriptions":{}}},"id":1609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"393:34:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":1593,"id":1610,"nodeType":"Return","src":"386:41:8"}]}]},"id":1613,"implemented":true,"kind":"function","modifiers":[],"name":"toU16","nameLocation":"238:5:8","nodeType":"FunctionDefinition","parameters":{"id":1590,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1587,"mutability":"mutable","name":"_bytes","nameLocation":"259:6:8","nodeType":"VariableDeclaration","scope":1613,"src":"244:21:8","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1586,"name":"bytes","nodeType":"ElementaryTypeName","src":"244:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1589,"mutability":"mutable","name":"_start","nameLocation":"275:6:8","nodeType":"VariableDeclaration","scope":1613,"src":"267:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1588,"name":"uint256","nodeType":"ElementaryTypeName","src":"267:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"243:39:8"},"returnParameters":{"id":1593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1592,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1613,"src":"306:6:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1591,"name":"uint16","nodeType":"ElementaryTypeName","src":"306:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"305:8:8"},"scope":1779,"src":"229:215:8","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1640,"nodeType":"Block","src":"535:130:8","statements":[{"id":1639,"nodeType":"UncheckedBlock","src":"545:114:8","statements":[{"assignments":[1623],"declarations":[{"constant":false,"id":1623,"mutability":"mutable","name":"end","nameLocation":"577:3:8","nodeType":"VariableDeclaration","scope":1639,"src":"569:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1622,"name":"uint256","nodeType":"ElementaryTypeName","src":"569:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1627,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1624,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1617,"src":"583:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"34","id":1625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"592:1:8","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"583:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"569:24:8"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":1632,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1615,"src":"628:6:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"id":1634,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1623,"src":"642:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"628:18:8","startExpression":{"id":1633,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1617,"src":"635:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":1631,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"621:6:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":1630,"name":"bytes4","nodeType":"ElementaryTypeName","src":"621:6:8","typeDescriptions":{}}},"id":1636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"621:26:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":1629,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"614:6:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":1628,"name":"uint32","nodeType":"ElementaryTypeName","src":"614:6:8","typeDescriptions":{}}},"id":1637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"614:34:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"functionReturnParameters":1621,"id":1638,"nodeType":"Return","src":"607:41:8"}]}]},"id":1641,"implemented":true,"kind":"function","modifiers":[],"name":"toU32","nameLocation":"459:5:8","nodeType":"FunctionDefinition","parameters":{"id":1618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1615,"mutability":"mutable","name":"_bytes","nameLocation":"480:6:8","nodeType":"VariableDeclaration","scope":1641,"src":"465:21:8","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1614,"name":"bytes","nodeType":"ElementaryTypeName","src":"465:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1617,"mutability":"mutable","name":"_start","nameLocation":"496:6:8","nodeType":"VariableDeclaration","scope":1641,"src":"488:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1616,"name":"uint256","nodeType":"ElementaryTypeName","src":"488:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"464:39:8"},"returnParameters":{"id":1621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1620,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1641,"src":"527:6:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1619,"name":"uint32","nodeType":"ElementaryTypeName","src":"527:6:8","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"526:8:8"},"scope":1779,"src":"450:215:8","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1668,"nodeType":"Block","src":"756:130:8","statements":[{"id":1667,"nodeType":"UncheckedBlock","src":"766:114:8","statements":[{"assignments":[1651],"declarations":[{"constant":false,"id":1651,"mutability":"mutable","name":"end","nameLocation":"798:3:8","nodeType":"VariableDeclaration","scope":1667,"src":"790:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1650,"name":"uint256","nodeType":"ElementaryTypeName","src":"790:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1655,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1652,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1645,"src":"804:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"38","id":1653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"813:1:8","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"804:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"790:24:8"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":1660,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1643,"src":"849:6:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"id":1662,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1651,"src":"863:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"849:18:8","startExpression":{"id":1661,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1645,"src":"856:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":1659,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"842:6:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes8_$","typeString":"type(bytes8)"},"typeName":{"id":1658,"name":"bytes8","nodeType":"ElementaryTypeName","src":"842:6:8","typeDescriptions":{}}},"id":1664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"842:26:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes8","typeString":"bytes8"}],"id":1657,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"835:6:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":1656,"name":"uint64","nodeType":"ElementaryTypeName","src":"835:6:8","typeDescriptions":{}}},"id":1665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"835:34:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":1649,"id":1666,"nodeType":"Return","src":"828:41:8"}]}]},"id":1669,"implemented":true,"kind":"function","modifiers":[],"name":"toU64","nameLocation":"680:5:8","nodeType":"FunctionDefinition","parameters":{"id":1646,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1643,"mutability":"mutable","name":"_bytes","nameLocation":"701:6:8","nodeType":"VariableDeclaration","scope":1669,"src":"686:21:8","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1642,"name":"bytes","nodeType":"ElementaryTypeName","src":"686:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1645,"mutability":"mutable","name":"_start","nameLocation":"717:6:8","nodeType":"VariableDeclaration","scope":1669,"src":"709:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1644,"name":"uint256","nodeType":"ElementaryTypeName","src":"709:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"685:39:8"},"returnParameters":{"id":1649,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1648,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1669,"src":"748:6:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1647,"name":"uint64","nodeType":"ElementaryTypeName","src":"748:6:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"747:8:8"},"scope":1779,"src":"671:215:8","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1696,"nodeType":"Block","src":"979:133:8","statements":[{"id":1695,"nodeType":"UncheckedBlock","src":"989:117:8","statements":[{"assignments":[1679],"declarations":[{"constant":false,"id":1679,"mutability":"mutable","name":"end","nameLocation":"1021:3:8","nodeType":"VariableDeclaration","scope":1695,"src":"1013:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1678,"name":"uint256","nodeType":"ElementaryTypeName","src":"1013:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1683,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1680,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1673,"src":"1027:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3136","id":1681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1036:2:8","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"1027:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1013:25:8"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":1688,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1671,"src":"1075:6:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"id":1690,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1679,"src":"1089:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"1075:18:8","startExpression":{"id":1689,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1673,"src":"1082:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":1687,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1067:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes16_$","typeString":"type(bytes16)"},"typeName":{"id":1686,"name":"bytes16","nodeType":"ElementaryTypeName","src":"1067:7:8","typeDescriptions":{}}},"id":1692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1067:27:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes16","typeString":"bytes16"}],"id":1685,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1059:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":1684,"name":"uint128","nodeType":"ElementaryTypeName","src":"1059:7:8","typeDescriptions":{}}},"id":1693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1059:36:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"functionReturnParameters":1677,"id":1694,"nodeType":"Return","src":"1052:43:8"}]}]},"id":1697,"implemented":true,"kind":"function","modifiers":[],"name":"toU128","nameLocation":"901:6:8","nodeType":"FunctionDefinition","parameters":{"id":1674,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1671,"mutability":"mutable","name":"_bytes","nameLocation":"923:6:8","nodeType":"VariableDeclaration","scope":1697,"src":"908:21:8","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1670,"name":"bytes","nodeType":"ElementaryTypeName","src":"908:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1673,"mutability":"mutable","name":"_start","nameLocation":"939:6:8","nodeType":"VariableDeclaration","scope":1697,"src":"931:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1672,"name":"uint256","nodeType":"ElementaryTypeName","src":"931:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"907:39:8"},"returnParameters":{"id":1677,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1676,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1697,"src":"970:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":1675,"name":"uint128","nodeType":"ElementaryTypeName","src":"970:7:8","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"969:9:8"},"scope":1779,"src":"892:220:8","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1724,"nodeType":"Block","src":"1205:133:8","statements":[{"id":1723,"nodeType":"UncheckedBlock","src":"1215:117:8","statements":[{"assignments":[1707],"declarations":[{"constant":false,"id":1707,"mutability":"mutable","name":"end","nameLocation":"1247:3:8","nodeType":"VariableDeclaration","scope":1723,"src":"1239:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1706,"name":"uint256","nodeType":"ElementaryTypeName","src":"1239:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1711,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1708,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1701,"src":"1253:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3332","id":1709,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1262:2:8","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"1253:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1239:25:8"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":1716,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1699,"src":"1301:6:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"id":1718,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1707,"src":"1315:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"1301:18:8","startExpression":{"id":1717,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1701,"src":"1308:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":1715,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1293:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1714,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1293:7:8","typeDescriptions":{}}},"id":1720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1293:27:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1713,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1285:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1712,"name":"uint256","nodeType":"ElementaryTypeName","src":"1285:7:8","typeDescriptions":{}}},"id":1721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1285:36:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1705,"id":1722,"nodeType":"Return","src":"1278:43:8"}]}]},"id":1725,"implemented":true,"kind":"function","modifiers":[],"name":"toU256","nameLocation":"1127:6:8","nodeType":"FunctionDefinition","parameters":{"id":1702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1699,"mutability":"mutable","name":"_bytes","nameLocation":"1149:6:8","nodeType":"VariableDeclaration","scope":1725,"src":"1134:21:8","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1698,"name":"bytes","nodeType":"ElementaryTypeName","src":"1134:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1701,"mutability":"mutable","name":"_start","nameLocation":"1165:6:8","nodeType":"VariableDeclaration","scope":1725,"src":"1157:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1700,"name":"uint256","nodeType":"ElementaryTypeName","src":"1157:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1133:39:8"},"returnParameters":{"id":1705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1704,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1725,"src":"1196:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1703,"name":"uint256","nodeType":"ElementaryTypeName","src":"1196:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1195:9:8"},"scope":1779,"src":"1118:220:8","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1752,"nodeType":"Block","src":"1431:133:8","statements":[{"id":1751,"nodeType":"UncheckedBlock","src":"1441:117:8","statements":[{"assignments":[1735],"declarations":[{"constant":false,"id":1735,"mutability":"mutable","name":"end","nameLocation":"1473:3:8","nodeType":"VariableDeclaration","scope":1751,"src":"1465:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1734,"name":"uint256","nodeType":"ElementaryTypeName","src":"1465:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1739,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1736,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1729,"src":"1479:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3230","id":1737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1488:2:8","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"src":"1479:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1465:25:8"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":1744,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1727,"src":"1527:6:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"id":1746,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1735,"src":"1541:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"1527:18:8","startExpression":{"id":1745,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1729,"src":"1534:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":1743,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1519:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes20_$","typeString":"type(bytes20)"},"typeName":{"id":1742,"name":"bytes20","nodeType":"ElementaryTypeName","src":"1519:7:8","typeDescriptions":{}}},"id":1748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1519:27:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes20","typeString":"bytes20"}],"id":1741,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1511:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1740,"name":"address","nodeType":"ElementaryTypeName","src":"1511:7:8","typeDescriptions":{}}},"id":1749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1511:36:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1733,"id":1750,"nodeType":"Return","src":"1504:43:8"}]}]},"id":1753,"implemented":true,"kind":"function","modifiers":[],"name":"toAddr","nameLocation":"1353:6:8","nodeType":"FunctionDefinition","parameters":{"id":1730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1727,"mutability":"mutable","name":"_bytes","nameLocation":"1375:6:8","nodeType":"VariableDeclaration","scope":1753,"src":"1360:21:8","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1726,"name":"bytes","nodeType":"ElementaryTypeName","src":"1360:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1729,"mutability":"mutable","name":"_start","nameLocation":"1391:6:8","nodeType":"VariableDeclaration","scope":1753,"src":"1383:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1728,"name":"uint256","nodeType":"ElementaryTypeName","src":"1383:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1359:39:8"},"returnParameters":{"id":1733,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1732,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1753,"src":"1422:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1731,"name":"address","nodeType":"ElementaryTypeName","src":"1422:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1421:9:8"},"scope":1779,"src":"1344:220:8","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1777,"nodeType":"Block","src":"1656:124:8","statements":[{"id":1776,"nodeType":"UncheckedBlock","src":"1666:108:8","statements":[{"assignments":[1763],"declarations":[{"constant":false,"id":1763,"mutability":"mutable","name":"end","nameLocation":"1698:3:8","nodeType":"VariableDeclaration","scope":1776,"src":"1690:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1762,"name":"uint256","nodeType":"ElementaryTypeName","src":"1690:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1767,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1764,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1757,"src":"1704:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3332","id":1765,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1713:2:8","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"1704:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1690:25:8"},{"expression":{"arguments":[{"baseExpression":{"id":1770,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1755,"src":"1744:6:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"id":1772,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1763,"src":"1758:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"1744:18:8","startExpression":{"id":1771,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1757,"src":"1751:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":1769,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1736:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1768,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1736:7:8","typeDescriptions":{}}},"id":1774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1736:27:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1761,"id":1775,"nodeType":"Return","src":"1729:34:8"}]}]},"id":1778,"implemented":true,"kind":"function","modifiers":[],"name":"toB32","nameLocation":"1579:5:8","nodeType":"FunctionDefinition","parameters":{"id":1758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1755,"mutability":"mutable","name":"_bytes","nameLocation":"1600:6:8","nodeType":"VariableDeclaration","scope":1778,"src":"1585:21:8","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1754,"name":"bytes","nodeType":"ElementaryTypeName","src":"1585:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1757,"mutability":"mutable","name":"_start","nameLocation":"1616:6:8","nodeType":"VariableDeclaration","scope":1778,"src":"1608:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1756,"name":"uint256","nodeType":"ElementaryTypeName","src":"1608:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1584:39:8"},"returnParameters":{"id":1761,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1760,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1778,"src":"1647:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1759,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1647:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1646:9:8"},"scope":1779,"src":"1570:210:8","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":1780,"src":"64:1718:8","usedErrors":[],"usedEvents":[]}],"src":"38:1745:8"},"id":8},"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol":{"ast":{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol","exportedSymbols":{"BitMap256":[1783],"BitMaps":[1844]},"id":1845,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1781,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"153:24:9"},{"canonicalName":"BitMap256","id":1783,"name":"BitMap256","nameLocation":"184:9:9","nodeType":"UserDefinedValueTypeDefinition","src":"179:26:9","underlyingType":{"id":1782,"name":"uint256","nodeType":"ElementaryTypeName","src":"197:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"global":true,"id":1787,"libraryName":{"id":1784,"name":"BitMaps","nameLocations":["213:7:9"],"nodeType":"IdentifierPath","referencedDeclaration":1844,"src":"213:7:9"},"nodeType":"UsingForDirective","src":"207:35:9","typeName":{"id":1786,"nodeType":"UserDefinedTypeName","pathNode":{"id":1785,"name":"BitMap256","nameLocations":["225:9:9"],"nodeType":"IdentifierPath","referencedDeclaration":1783,"src":"225:9:9"},"referencedDeclaration":1783,"src":"225:9:9","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BitMap256_$1783","typeString":"BitMap256"}}},{"abstract":false,"baseContracts":[],"canonicalName":"BitMaps","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":1844,"linearizedBaseContracts":[1844],"name":"BitMaps","nameLocation":"252:7:9","nodeType":"ContractDefinition","nodes":[{"body":{"id":1813,"nodeType":"Block","src":"410:95:9","statements":[{"assignments":[1799],"declarations":[{"constant":false,"id":1799,"mutability":"mutable","name":"mask","nameLocation":"428:4:9","nodeType":"VariableDeclaration","scope":1813,"src":"420:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1798,"name":"uint256","nodeType":"ElementaryTypeName","src":"420:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1803,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":1800,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"435:1:9","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":1801,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1793,"src":"440:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"435:10:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"420:25:9"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1806,"name":"bitmap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1791,"src":"479:6:9","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BitMap256_$1783","typeString":"BitMap256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_BitMap256_$1783","typeString":"BitMap256"}],"expression":{"id":1804,"name":"BitMap256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1783,"src":"462:9:9","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_BitMap256_$1783_$","typeString":"type(BitMap256)"}},"id":1805,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"472:6:9","memberName":"unwrap","nodeType":"MemberAccess","src":"462:16:9","typeDescriptions":{"typeIdentifier":"t_function_unwrap_pure$_t_userDefinedValueType$_BitMap256_$1783_$returns$_t_uint256_$","typeString":"function (BitMap256) pure returns (uint256)"}},"id":1807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"462:24:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":1808,"name":"mask","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1799,"src":"489:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"462:31:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":1810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"497:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"462:36:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1797,"id":1812,"nodeType":"Return","src":"455:43:9"}]},"documentation":{"id":1788,"nodeType":"StructuredDocumentation","src":"266:66:9","text":" @dev Returns whether the bit at `index` is set."},"id":1814,"implemented":true,"kind":"function","modifiers":[],"name":"get","nameLocation":"346:3:9","nodeType":"FunctionDefinition","parameters":{"id":1794,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1791,"mutability":"mutable","name":"bitmap","nameLocation":"360:6:9","nodeType":"VariableDeclaration","scope":1814,"src":"350:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BitMap256_$1783","typeString":"BitMap256"},"typeName":{"id":1790,"nodeType":"UserDefinedTypeName","pathNode":{"id":1789,"name":"BitMap256","nameLocations":["350:9:9"],"nodeType":"IdentifierPath","referencedDeclaration":1783,"src":"350:9:9"},"referencedDeclaration":1783,"src":"350:9:9","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BitMap256_$1783","typeString":"BitMap256"}},"visibility":"internal"},{"constant":false,"id":1793,"mutability":"mutable","name":"index","nameLocation":"374:5:9","nodeType":"VariableDeclaration","scope":1814,"src":"368:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1792,"name":"uint8","nodeType":"ElementaryTypeName","src":"368:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"349:31:9"},"returnParameters":{"id":1797,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1796,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1814,"src":"404:4:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1795,"name":"bool","nodeType":"ElementaryTypeName","src":"404:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"403:6:9"},"scope":1844,"src":"337:168:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1842,"nodeType":"Block","src":"642:106:9","statements":[{"assignments":[1827],"declarations":[{"constant":false,"id":1827,"mutability":"mutable","name":"mask","nameLocation":"660:4:9","nodeType":"VariableDeclaration","scope":1842,"src":"652:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1826,"name":"uint256","nodeType":"ElementaryTypeName","src":"652:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1831,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":1828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"667:1:9","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":1829,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1820,"src":"672:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"667:10:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"652:25:9"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1836,"name":"bitmap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"726:6:9","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BitMap256_$1783","typeString":"BitMap256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_BitMap256_$1783","typeString":"BitMap256"}],"expression":{"id":1834,"name":"BitMap256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1783,"src":"709:9:9","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_BitMap256_$1783_$","typeString":"type(BitMap256)"}},"id":1835,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"719:6:9","memberName":"unwrap","nodeType":"MemberAccess","src":"709:16:9","typeDescriptions":{"typeIdentifier":"t_function_unwrap_pure$_t_userDefinedValueType$_BitMap256_$1783_$returns$_t_uint256_$","typeString":"function (BitMap256) pure returns (uint256)"}},"id":1837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"709:24:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"id":1838,"name":"mask","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1827,"src":"736:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"709:31:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1832,"name":"BitMap256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1783,"src":"694:9:9","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_BitMap256_$1783_$","typeString":"type(BitMap256)"}},"id":1833,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"704:4:9","memberName":"wrap","nodeType":"MemberAccess","src":"694:14:9","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint256_$returns$_t_userDefinedValueType$_BitMap256_$1783_$","typeString":"function (uint256) pure returns (BitMap256)"}},"id":1840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"694:47:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BitMap256_$1783","typeString":"BitMap256"}},"functionReturnParameters":1825,"id":1841,"nodeType":"Return","src":"687:54:9"}]},"documentation":{"id":1815,"nodeType":"StructuredDocumentation","src":"511:48:9","text":" @dev Sets the bit at `index`."},"id":1843,"implemented":true,"kind":"function","modifiers":[],"name":"set","nameLocation":"573:3:9","nodeType":"FunctionDefinition","parameters":{"id":1821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1818,"mutability":"mutable","name":"bitmap","nameLocation":"587:6:9","nodeType":"VariableDeclaration","scope":1843,"src":"577:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BitMap256_$1783","typeString":"BitMap256"},"typeName":{"id":1817,"nodeType":"UserDefinedTypeName","pathNode":{"id":1816,"name":"BitMap256","nameLocations":["577:9:9"],"nodeType":"IdentifierPath","referencedDeclaration":1783,"src":"577:9:9"},"referencedDeclaration":1783,"src":"577:9:9","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BitMap256_$1783","typeString":"BitMap256"}},"visibility":"internal"},{"constant":false,"id":1820,"mutability":"mutable","name":"index","nameLocation":"601:5:9","nodeType":"VariableDeclaration","scope":1843,"src":"595:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1819,"name":"uint8","nodeType":"ElementaryTypeName","src":"595:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"576:31:9"},"returnParameters":{"id":1825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1824,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1843,"src":"631:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BitMap256_$1783","typeString":"BitMap256"},"typeName":{"id":1823,"nodeType":"UserDefinedTypeName","pathNode":{"id":1822,"name":"BitMap256","nameLocations":["631:9:9"],"nodeType":"IdentifierPath","referencedDeclaration":1783,"src":"631:9:9"},"referencedDeclaration":1783,"src":"631:9:9","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BitMap256_$1783","typeString":"BitMap256"}},"visibility":"internal"}],"src":"630:11:9"},"scope":1844,"src":"564:184:9","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":1845,"src":"244:506:9","usedErrors":[],"usedEvents":[]}],"src":"153:598:9"},"id":9},"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppCoreUpgradeable.sol":{"ast":{"absolutePath":"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppCoreUpgradeable.sol","exportedSymbols":{"ILayerZeroEndpointV2":[1048],"IOAppCore":[2466],"OAppCoreUpgradeable":[2027],"OwnableUpgradeable":[6079]},"id":2028,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1846,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"33:24:10"},{"absolutePath":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","id":1848,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2028,"sourceUnit":6080,"src":"59:103:10","symbolAliases":[{"foreign":{"id":1847,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6079,"src":"68:18:10","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppCore.sol","file":"@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppCore.sol","id":1851,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2028,"sourceUnit":2467,"src":"163:114:10","symbolAliases":[{"foreign":{"id":1849,"name":"IOAppCore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2466,"src":"172:9:10","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":1850,"name":"ILayerZeroEndpointV2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1048,"src":"183:20:10","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":1853,"name":"IOAppCore","nameLocations":["442:9:10"],"nodeType":"IdentifierPath","referencedDeclaration":2466,"src":"442:9:10"},"id":1854,"nodeType":"InheritanceSpecifier","src":"442:9:10"},{"baseName":{"id":1855,"name":"OwnableUpgradeable","nameLocations":["453:18:10"],"nodeType":"IdentifierPath","referencedDeclaration":6079,"src":"453:18:10"},"id":1856,"nodeType":"InheritanceSpecifier","src":"453:18:10"}],"canonicalName":"OAppCoreUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":1852,"nodeType":"StructuredDocumentation","src":"279:121:10","text":" @title OAppCore\n @dev Abstract contract implementing the IOAppCore interface with basic OApp configurations."},"fullyImplemented":false,"id":2027,"linearizedBaseContracts":[2027,6079,6574,6248,2466],"name":"OAppCoreUpgradeable","nameLocation":"419:19:10","nodeType":"ContractDefinition","nodes":[{"canonicalName":"OAppCoreUpgradeable.OAppCoreStorage","id":1861,"members":[{"constant":false,"id":1860,"mutability":"mutable","name":"peers","nameLocation":"538:5:10","nodeType":"VariableDeclaration","scope":1861,"src":"511:32:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint32_$_t_bytes32_$","typeString":"mapping(uint32 => bytes32)"},"typeName":{"id":1859,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":1857,"name":"uint32","nodeType":"ElementaryTypeName","src":"519:6:10","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"Mapping","src":"511:26:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint32_$_t_bytes32_$","typeString":"mapping(uint32 => bytes32)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":1858,"name":"bytes32","nodeType":"ElementaryTypeName","src":"529:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},"visibility":"internal"}],"name":"OAppCoreStorage","nameLocation":"485:15:10","nodeType":"StructDefinition","scope":2027,"src":"478:72:10","visibility":"public"},{"constant":true,"id":1864,"mutability":"constant","name":"OAPP_CORE_STORAGE_LOCATION","nameLocation":"692:26:10","nodeType":"VariableDeclaration","scope":2027,"src":"667:128:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1862,"name":"bytes32","nodeType":"ElementaryTypeName","src":"667:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307837326162316263313033396237396463343732346666636131336465383263393638333433303264336337653064343235323233326434623264643866393030","id":1863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"729:66:10","typeDescriptions":{"typeIdentifier":"t_rational_51865987137370438099025503412125180745177123634801725770878741457796941281536_by_1","typeString":"int_const 5186...(69 digits omitted)...1536"},"value":"0x72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f900"},"visibility":"private"},{"body":{"id":1871,"nodeType":"Block","src":"883:85:10","statements":[{"AST":{"nativeSrc":"902:60:10","nodeType":"YulBlock","src":"902:60:10","statements":[{"nativeSrc":"916:36:10","nodeType":"YulAssignment","src":"916:36:10","value":{"name":"OAPP_CORE_STORAGE_LOCATION","nativeSrc":"926:26:10","nodeType":"YulIdentifier","src":"926:26:10"},"variableNames":[{"name":"$.slot","nativeSrc":"916:6:10","nodeType":"YulIdentifier","src":"916:6:10"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":1868,"isOffset":false,"isSlot":true,"src":"916:6:10","suffix":"slot","valueSize":1},{"declaration":1864,"isOffset":false,"isSlot":false,"src":"926:26:10","valueSize":1}],"id":1870,"nodeType":"InlineAssembly","src":"893:69:10"}]},"id":1872,"implemented":true,"kind":"function","modifiers":[],"name":"_getOAppCoreStorage","nameLocation":"811:19:10","nodeType":"FunctionDefinition","parameters":{"id":1865,"nodeType":"ParameterList","parameters":[],"src":"830:2:10"},"returnParameters":{"id":1869,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1868,"mutability":"mutable","name":"$","nameLocation":"880:1:10","nodeType":"VariableDeclaration","scope":1872,"src":"856:25:10","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_OAppCoreStorage_$1861_storage_ptr","typeString":"struct OAppCoreUpgradeable.OAppCoreStorage"},"typeName":{"id":1867,"nodeType":"UserDefinedTypeName","pathNode":{"id":1866,"name":"OAppCoreStorage","nameLocations":["856:15:10"],"nodeType":"IdentifierPath","referencedDeclaration":1861,"src":"856:15:10"},"referencedDeclaration":1861,"src":"856:15:10","typeDescriptions":{"typeIdentifier":"t_struct$_OAppCoreStorage_$1861_storage_ptr","typeString":"struct OAppCoreUpgradeable.OAppCoreStorage"}},"visibility":"internal"}],"src":"855:27:10"},"scope":2027,"src":"802:166:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"baseFunctions":[2443],"constant":false,"functionSelector":"5e280f11","id":1875,"mutability":"immutable","name":"endpoint","nameLocation":"1073:8:10","nodeType":"VariableDeclaration","scope":2027,"src":"1035:46:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpointV2_$1048","typeString":"contract ILayerZeroEndpointV2"},"typeName":{"id":1874,"nodeType":"UserDefinedTypeName","pathNode":{"id":1873,"name":"ILayerZeroEndpointV2","nameLocations":["1035:20:10"],"nodeType":"IdentifierPath","referencedDeclaration":1048,"src":"1035:20:10"},"referencedDeclaration":1048,"src":"1035:20:10","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpointV2_$1048","typeString":"contract ILayerZeroEndpointV2"}},"visibility":"public"},{"body":{"id":1887,"nodeType":"Block","src":"1297:59:10","statements":[{"expression":{"id":1885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1881,"name":"endpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1875,"src":"1307:8:10","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpointV2_$1048","typeString":"contract ILayerZeroEndpointV2"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1883,"name":"_endpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1878,"src":"1339:9:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1882,"name":"ILayerZeroEndpointV2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1048,"src":"1318:20:10","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ILayerZeroEndpointV2_$1048_$","typeString":"type(contract ILayerZeroEndpointV2)"}},"id":1884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1318:31:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpointV2_$1048","typeString":"contract ILayerZeroEndpointV2"}},"src":"1307:42:10","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpointV2_$1048","typeString":"contract ILayerZeroEndpointV2"}},"id":1886,"nodeType":"ExpressionStatement","src":"1307:42:10"}]},"documentation":{"id":1876,"nodeType":"StructuredDocumentation","src":"1088:173:10","text":" @dev Constructor to initialize the OAppCore with the provided endpoint and delegate.\n @param _endpoint The address of the LOCAL Layer Zero endpoint."},"id":1888,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":1879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1878,"mutability":"mutable","name":"_endpoint","nameLocation":"1286:9:10","nodeType":"VariableDeclaration","scope":1888,"src":"1278:17:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1877,"name":"address","nodeType":"ElementaryTypeName","src":"1278:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1277:19:10"},"returnParameters":{"id":1880,"nodeType":"ParameterList","parameters":[],"src":"1297:0:10"},"scope":2027,"src":"1266:90:10","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1900,"nodeType":"Block","src":"1857:53:10","statements":[{"expression":{"arguments":[{"id":1897,"name":"_delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1891,"src":"1893:9:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1896,"name":"__OAppCore_init_unchained","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1925,"src":"1867:25:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":1898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1867:36:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1899,"nodeType":"ExpressionStatement","src":"1867:36:10"}]},"documentation":{"id":1889,"nodeType":"StructuredDocumentation","src":"1362:420:10","text":" @dev Initializes the OAppCore with the provided delegate.\n @param _delegate The delegate capable of making OApp configurations inside of the endpoint.\n @dev The delegate typically should be set as the owner of the contract.\n @dev Ownable is not initialized here on purpose. It should be initialized in the child contract to\n accommodate the different version of Ownable."},"id":1901,"implemented":true,"kind":"function","modifiers":[{"id":1894,"kind":"modifierInvocation","modifierName":{"id":1893,"name":"onlyInitializing","nameLocations":["1840:16:10"],"nodeType":"IdentifierPath","referencedDeclaration":6193,"src":"1840:16:10"},"nodeType":"ModifierInvocation","src":"1840:16:10"}],"name":"__OAppCore_init","nameLocation":"1796:15:10","nodeType":"FunctionDefinition","parameters":{"id":1892,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1891,"mutability":"mutable","name":"_delegate","nameLocation":"1820:9:10","nodeType":"VariableDeclaration","scope":1901,"src":"1812:17:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1890,"name":"address","nodeType":"ElementaryTypeName","src":"1812:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1811:19:10"},"returnParameters":{"id":1895,"nodeType":"ParameterList","parameters":[],"src":"1857:0:10"},"scope":2027,"src":"1787:123:10","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1924,"nodeType":"Block","src":"1996:111:10","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1908,"name":"_delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1903,"src":"2010:9:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1911,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2031:1:10","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":1910,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2023:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1909,"name":"address","nodeType":"ElementaryTypeName","src":"2023:7:10","typeDescriptions":{}}},"id":1912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2023:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2010:23:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1917,"nodeType":"IfStatement","src":"2006:53:10","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1914,"name":"InvalidDelegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2422,"src":"2042:15:10","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2042:17:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1916,"nodeType":"RevertStatement","src":"2035:24:10"}},{"expression":{"arguments":[{"id":1921,"name":"_delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1903,"src":"2090:9:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1918,"name":"endpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1875,"src":"2069:8:10","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpointV2_$1048","typeString":"contract ILayerZeroEndpointV2"}},"id":1920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2078:11:10","memberName":"setDelegate","nodeType":"MemberAccess","referencedDeclaration":1047,"src":"2069:20:10","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":1922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2069:31:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1923,"nodeType":"ExpressionStatement","src":"2069:31:10"}]},"id":1925,"implemented":true,"kind":"function","modifiers":[{"id":1906,"kind":"modifierInvocation","modifierName":{"id":1905,"name":"onlyInitializing","nameLocations":["1979:16:10"],"nodeType":"IdentifierPath","referencedDeclaration":6193,"src":"1979:16:10"},"nodeType":"ModifierInvocation","src":"1979:16:10"}],"name":"__OAppCore_init_unchained","nameLocation":"1925:25:10","nodeType":"FunctionDefinition","parameters":{"id":1904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1903,"mutability":"mutable","name":"_delegate","nameLocation":"1959:9:10","nodeType":"VariableDeclaration","scope":1925,"src":"1951:17:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1902,"name":"address","nodeType":"ElementaryTypeName","src":"1951:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1950:19:10"},"returnParameters":{"id":1907,"nodeType":"ParameterList","parameters":[],"src":"1996:0:10"},"scope":2027,"src":"1916:191:10","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[2451],"body":{"id":1945,"nodeType":"Block","src":"2409:96:10","statements":[{"assignments":[1936],"declarations":[{"constant":false,"id":1936,"mutability":"mutable","name":"$","nameLocation":"2443:1:10","nodeType":"VariableDeclaration","scope":1945,"src":"2419:25:10","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_OAppCoreStorage_$1861_storage_ptr","typeString":"struct OAppCoreUpgradeable.OAppCoreStorage"},"typeName":{"id":1935,"nodeType":"UserDefinedTypeName","pathNode":{"id":1934,"name":"OAppCoreStorage","nameLocations":["2419:15:10"],"nodeType":"IdentifierPath","referencedDeclaration":1861,"src":"2419:15:10"},"referencedDeclaration":1861,"src":"2419:15:10","typeDescriptions":{"typeIdentifier":"t_struct$_OAppCoreStorage_$1861_storage_ptr","typeString":"struct OAppCoreUpgradeable.OAppCoreStorage"}},"visibility":"internal"}],"id":1939,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":1937,"name":"_getOAppCoreStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1872,"src":"2447:19:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_OAppCoreStorage_$1861_storage_ptr_$","typeString":"function () pure returns (struct OAppCoreUpgradeable.OAppCoreStorage storage pointer)"}},"id":1938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2447:21:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_OAppCoreStorage_$1861_storage_ptr","typeString":"struct OAppCoreUpgradeable.OAppCoreStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2419:49:10"},{"expression":{"baseExpression":{"expression":{"id":1940,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1936,"src":"2485:1:10","typeDescriptions":{"typeIdentifier":"t_struct$_OAppCoreStorage_$1861_storage_ptr","typeString":"struct OAppCoreUpgradeable.OAppCoreStorage storage pointer"}},"id":1941,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2487:5:10","memberName":"peers","nodeType":"MemberAccess","referencedDeclaration":1860,"src":"2485:7:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint32_$_t_bytes32_$","typeString":"mapping(uint32 => bytes32)"}},"id":1943,"indexExpression":{"id":1942,"name":"_eid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1928,"src":"2493:4:10","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2485:13:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1933,"id":1944,"nodeType":"Return","src":"2478:20:10"}]},"documentation":{"id":1926,"nodeType":"StructuredDocumentation","src":"2113:224:10","text":" @notice Returns the peer address (OApp instance) associated with a specific endpoint.\n @param _eid The endpoint ID.\n @return peer The address of the peer associated with the specified endpoint."},"functionSelector":"bb0b6a53","id":1946,"implemented":true,"kind":"function","modifiers":[],"name":"peers","nameLocation":"2351:5:10","nodeType":"FunctionDefinition","overrides":{"id":1930,"nodeType":"OverrideSpecifier","overrides":[],"src":"2382:8:10"},"parameters":{"id":1929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1928,"mutability":"mutable","name":"_eid","nameLocation":"2364:4:10","nodeType":"VariableDeclaration","scope":1946,"src":"2357:11:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1927,"name":"uint32","nodeType":"ElementaryTypeName","src":"2357:6:10","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"2356:13:10"},"returnParameters":{"id":1933,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1932,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1946,"src":"2400:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1931,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2400:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2399:9:10"},"scope":2027,"src":"2342:163:10","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[2459],"body":{"id":1975,"nodeType":"Block","src":"3098:132:10","statements":[{"assignments":[1958],"declarations":[{"constant":false,"id":1958,"mutability":"mutable","name":"$","nameLocation":"3132:1:10","nodeType":"VariableDeclaration","scope":1975,"src":"3108:25:10","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_OAppCoreStorage_$1861_storage_ptr","typeString":"struct OAppCoreUpgradeable.OAppCoreStorage"},"typeName":{"id":1957,"nodeType":"UserDefinedTypeName","pathNode":{"id":1956,"name":"OAppCoreStorage","nameLocations":["3108:15:10"],"nodeType":"IdentifierPath","referencedDeclaration":1861,"src":"3108:15:10"},"referencedDeclaration":1861,"src":"3108:15:10","typeDescriptions":{"typeIdentifier":"t_struct$_OAppCoreStorage_$1861_storage_ptr","typeString":"struct OAppCoreUpgradeable.OAppCoreStorage"}},"visibility":"internal"}],"id":1961,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":1959,"name":"_getOAppCoreStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1872,"src":"3136:19:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_OAppCoreStorage_$1861_storage_ptr_$","typeString":"function () pure returns (struct OAppCoreUpgradeable.OAppCoreStorage storage pointer)"}},"id":1960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3136:21:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_OAppCoreStorage_$1861_storage_ptr","typeString":"struct OAppCoreUpgradeable.OAppCoreStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3108:49:10"},{"expression":{"id":1968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":1962,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1958,"src":"3167:1:10","typeDescriptions":{"typeIdentifier":"t_struct$_OAppCoreStorage_$1861_storage_ptr","typeString":"struct OAppCoreUpgradeable.OAppCoreStorage storage pointer"}},"id":1965,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3169:5:10","memberName":"peers","nodeType":"MemberAccess","referencedDeclaration":1860,"src":"3167:7:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint32_$_t_bytes32_$","typeString":"mapping(uint32 => bytes32)"}},"id":1966,"indexExpression":{"id":1964,"name":"_eid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1949,"src":"3175:4:10","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3167:13:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1967,"name":"_peer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1951,"src":"3183:5:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3167:21:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1969,"nodeType":"ExpressionStatement","src":"3167:21:10"},{"eventCall":{"arguments":[{"id":1971,"name":"_eid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1949,"src":"3211:4:10","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":1972,"name":"_peer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1951,"src":"3217:5:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1970,"name":"PeerSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2428,"src":"3203:7:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint32_$_t_bytes32_$returns$__$","typeString":"function (uint32,bytes32)"}},"id":1973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3203:20:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1974,"nodeType":"EmitStatement","src":"3198:25:10"}]},"documentation":{"id":1947,"nodeType":"StructuredDocumentation","src":"2511:512:10","text":" @notice Sets the peer address (OApp instance) for a corresponding endpoint.\n @param _eid The endpoint ID.\n @param _peer The address of the peer to be associated with the corresponding endpoint.\n @dev Only the owner/admin of the OApp can call this function.\n @dev Indicates that the peer is trusted to send LayerZero messages to this OApp.\n @dev Set this to bytes32(0) to remove the peer address.\n @dev Peer is a bytes32 to accommodate non-evm chains."},"functionSelector":"3400288b","id":1976,"implemented":true,"kind":"function","modifiers":[{"id":1954,"kind":"modifierInvocation","modifierName":{"id":1953,"name":"onlyOwner","nameLocations":["3088:9:10"],"nodeType":"IdentifierPath","referencedDeclaration":5993,"src":"3088:9:10"},"nodeType":"ModifierInvocation","src":"3088:9:10"}],"name":"setPeer","nameLocation":"3037:7:10","nodeType":"FunctionDefinition","parameters":{"id":1952,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1949,"mutability":"mutable","name":"_eid","nameLocation":"3052:4:10","nodeType":"VariableDeclaration","scope":1976,"src":"3045:11:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1948,"name":"uint32","nodeType":"ElementaryTypeName","src":"3045:6:10","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":1951,"mutability":"mutable","name":"_peer","nameLocation":"3066:5:10","nodeType":"VariableDeclaration","scope":1976,"src":"3058:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1950,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3058:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3044:28:10"},"returnParameters":{"id":1955,"nodeType":"ParameterList","parameters":[],"src":"3098:0:10"},"scope":2027,"src":"3028:202:10","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":2010,"nodeType":"Block","src":"3607:178:10","statements":[{"assignments":[1986],"declarations":[{"constant":false,"id":1986,"mutability":"mutable","name":"$","nameLocation":"3641:1:10","nodeType":"VariableDeclaration","scope":2010,"src":"3617:25:10","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_OAppCoreStorage_$1861_storage_ptr","typeString":"struct OAppCoreUpgradeable.OAppCoreStorage"},"typeName":{"id":1985,"nodeType":"UserDefinedTypeName","pathNode":{"id":1984,"name":"OAppCoreStorage","nameLocations":["3617:15:10"],"nodeType":"IdentifierPath","referencedDeclaration":1861,"src":"3617:15:10"},"referencedDeclaration":1861,"src":"3617:15:10","typeDescriptions":{"typeIdentifier":"t_struct$_OAppCoreStorage_$1861_storage_ptr","typeString":"struct OAppCoreUpgradeable.OAppCoreStorage"}},"visibility":"internal"}],"id":1989,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":1987,"name":"_getOAppCoreStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1872,"src":"3645:19:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_OAppCoreStorage_$1861_storage_ptr_$","typeString":"function () pure returns (struct OAppCoreUpgradeable.OAppCoreStorage storage pointer)"}},"id":1988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3645:21:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_OAppCoreStorage_$1861_storage_ptr","typeString":"struct OAppCoreUpgradeable.OAppCoreStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3617:49:10"},{"assignments":[1991],"declarations":[{"constant":false,"id":1991,"mutability":"mutable","name":"peer","nameLocation":"3684:4:10","nodeType":"VariableDeclaration","scope":2010,"src":"3676:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1990,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3676:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":1996,"initialValue":{"baseExpression":{"expression":{"id":1992,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1986,"src":"3691:1:10","typeDescriptions":{"typeIdentifier":"t_struct$_OAppCoreStorage_$1861_storage_ptr","typeString":"struct OAppCoreUpgradeable.OAppCoreStorage storage pointer"}},"id":1993,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3693:5:10","memberName":"peers","nodeType":"MemberAccess","referencedDeclaration":1860,"src":"3691:7:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint32_$_t_bytes32_$","typeString":"mapping(uint32 => bytes32)"}},"id":1995,"indexExpression":{"id":1994,"name":"_eid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1979,"src":"3699:4:10","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3691:13:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3676:28:10"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":2002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1997,"name":"peer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1991,"src":"3718:4:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":2000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3734:1:10","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":1999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3726:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1998,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3726:7:10","typeDescriptions":{}}},"id":2001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3726:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3718:18:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2007,"nodeType":"IfStatement","src":"3714:43:10","trueBody":{"errorCall":{"arguments":[{"id":2004,"name":"_eid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1979,"src":"3752:4:10","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":2003,"name":"NoPeer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2418,"src":"3745:6:10","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint32_$returns$__$","typeString":"function (uint32) pure"}},"id":2005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3745:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2006,"nodeType":"RevertStatement","src":"3738:19:10"}},{"expression":{"id":2008,"name":"peer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1991,"src":"3774:4:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1983,"id":2009,"nodeType":"Return","src":"3767:11:10"}]},"documentation":{"id":1977,"nodeType":"StructuredDocumentation","src":"3236:287:10","text":" @notice Internal function to get the peer address associated with a specific endpoint; reverts if NOT set.\n ie. the peer is set to bytes32(0).\n @param _eid The endpoint ID.\n @return peer The address of the peer associated with the specified endpoint."},"id":2011,"implemented":true,"kind":"function","modifiers":[],"name":"_getPeerOrRevert","nameLocation":"3537:16:10","nodeType":"FunctionDefinition","parameters":{"id":1980,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1979,"mutability":"mutable","name":"_eid","nameLocation":"3561:4:10","nodeType":"VariableDeclaration","scope":2011,"src":"3554:11:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1978,"name":"uint32","nodeType":"ElementaryTypeName","src":"3554:6:10","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"3553:13:10"},"returnParameters":{"id":1983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1982,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2011,"src":"3598:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1981,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3598:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3597:9:10"},"scope":2027,"src":"3528:257:10","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[2465],"body":{"id":2025,"nodeType":"Block","src":"4180:48:10","statements":[{"expression":{"arguments":[{"id":2022,"name":"_delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2014,"src":"4211:9:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":2019,"name":"endpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1875,"src":"4190:8:10","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpointV2_$1048","typeString":"contract ILayerZeroEndpointV2"}},"id":2021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4199:11:10","memberName":"setDelegate","nodeType":"MemberAccess","referencedDeclaration":1047,"src":"4190:20:10","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":2023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4190:31:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2024,"nodeType":"ExpressionStatement","src":"4190:31:10"}]},"documentation":{"id":2012,"nodeType":"StructuredDocumentation","src":"3791:327:10","text":" @notice Sets the delegate address for the OApp.\n @param _delegate The address of the delegate to be set.\n @dev Only the owner/admin of the OApp can call this function.\n @dev Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract."},"functionSelector":"ca5eb5e1","id":2026,"implemented":true,"kind":"function","modifiers":[{"id":2017,"kind":"modifierInvocation","modifierName":{"id":2016,"name":"onlyOwner","nameLocations":["4170:9:10"],"nodeType":"IdentifierPath","referencedDeclaration":5993,"src":"4170:9:10"},"nodeType":"ModifierInvocation","src":"4170:9:10"}],"name":"setDelegate","nameLocation":"4132:11:10","nodeType":"FunctionDefinition","parameters":{"id":2015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2014,"mutability":"mutable","name":"_delegate","nameLocation":"4152:9:10","nodeType":"VariableDeclaration","scope":2026,"src":"4144:17:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2013,"name":"address","nodeType":"ElementaryTypeName","src":"4144:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4143:19:10"},"returnParameters":{"id":2018,"nodeType":"ParameterList","parameters":[],"src":"4180:0:10"},"scope":2027,"src":"4123:105:10","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":2028,"src":"401:3829:10","usedErrors":[2414,2418,2420,2422],"usedEvents":[2428,5964,6094]}],"src":"33:4198:10"},"id":10},"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppReceiverUpgradeable.sol":{"ast":{"absolutePath":"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppReceiverUpgradeable.sol","exportedSymbols":{"IOAppReceiver":[2487],"OAppCoreUpgradeable":[2027],"OAppReceiverUpgradeable":[2198],"Origin":[886]},"id":2199,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2029,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"33:24:11"},{"absolutePath":"@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppReceiver.sol","file":"@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppReceiver.sol","id":2032,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2199,"sourceUnit":2488,"src":"59:108:11","symbolAliases":[{"foreign":{"id":2030,"name":"IOAppReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2487,"src":"68:13:11","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":2031,"name":"Origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":886,"src":"83:6:11","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppCoreUpgradeable.sol","file":"./OAppCoreUpgradeable.sol","id":2034,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2199,"sourceUnit":2028,"src":"168:64:11","symbolAliases":[{"foreign":{"id":2033,"name":"OAppCoreUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2027,"src":"177:19:11","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":2036,"name":"IOAppReceiver","nameLocations":["425:13:11"],"nodeType":"IdentifierPath","referencedDeclaration":2487,"src":"425:13:11"},"id":2037,"nodeType":"InheritanceSpecifier","src":"425:13:11"},{"baseName":{"id":2038,"name":"OAppCoreUpgradeable","nameLocations":["440:19:11"],"nodeType":"IdentifierPath","referencedDeclaration":2027,"src":"440:19:11"},"id":2039,"nodeType":"InheritanceSpecifier","src":"440:19:11"}],"canonicalName":"OAppReceiverUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":2035,"nodeType":"StructuredDocumentation","src":"234:145:11","text":" @title OAppReceiver\n @dev Abstract contract implementing the ILayerZeroReceiver interface and extending OAppCore for OApp receivers."},"fullyImplemented":false,"id":2198,"linearizedBaseContracts":[2198,2027,6079,6574,6248,2466,2487,1084],"name":"OAppReceiverUpgradeable","nameLocation":"398:23:11","nodeType":"ContractDefinition","nodes":[{"errorSelector":"91ac5e4f","id":2043,"name":"OnlyEndpoint","nameLocation":"552:12:11","nodeType":"ErrorDefinition","parameters":{"id":2042,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2041,"mutability":"mutable","name":"addr","nameLocation":"573:4:11","nodeType":"VariableDeclaration","scope":2043,"src":"565:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2040,"name":"address","nodeType":"ElementaryTypeName","src":"565:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"564:14:11"},"src":"546:33:11"},{"constant":true,"id":2046,"mutability":"constant","name":"RECEIVER_VERSION","nameLocation":"740:16:11","nodeType":"VariableDeclaration","scope":2198,"src":"715:45:11","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2044,"name":"uint64","nodeType":"ElementaryTypeName","src":"715:6:11","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"32","id":2045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"759:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"internal"},{"body":{"id":2058,"nodeType":"Block","src":"1115:43:11","statements":[{"expression":{"arguments":[{"id":2055,"name":"_delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2049,"src":"1141:9:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2054,"name":"__OAppCore_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1901,"src":"1125:15:11","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":2056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1125:26:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2057,"nodeType":"ExpressionStatement","src":"1125:26:11"}]},"documentation":{"id":2047,"nodeType":"StructuredDocumentation","src":"767:269:11","text":" @param _delegate The delegate capable of making OApp configurations inside of the endpoint.\n @dev Ownable is not initialized here on purpose. It should be initialized in the child contract to\n accommodate the different version of Ownable."},"id":2059,"implemented":true,"kind":"function","modifiers":[{"id":2052,"kind":"modifierInvocation","modifierName":{"id":2051,"name":"onlyInitializing","nameLocations":["1098:16:11"],"nodeType":"IdentifierPath","referencedDeclaration":6193,"src":"1098:16:11"},"nodeType":"ModifierInvocation","src":"1098:16:11"}],"name":"__OAppReceiver_init","nameLocation":"1050:19:11","nodeType":"FunctionDefinition","parameters":{"id":2050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2049,"mutability":"mutable","name":"_delegate","nameLocation":"1078:9:11","nodeType":"VariableDeclaration","scope":2059,"src":"1070:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2048,"name":"address","nodeType":"ElementaryTypeName","src":"1070:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1069:19:11"},"returnParameters":{"id":2053,"nodeType":"ParameterList","parameters":[],"src":"1115:0:11"},"scope":2198,"src":"1041:117:11","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2064,"nodeType":"Block","src":"1231:2:11","statements":[]},"id":2065,"implemented":true,"kind":"function","modifiers":[{"id":2062,"kind":"modifierInvocation","modifierName":{"id":2061,"name":"onlyInitializing","nameLocations":["1214:16:11"],"nodeType":"IdentifierPath","referencedDeclaration":6193,"src":"1214:16:11"},"nodeType":"ModifierInvocation","src":"1214:16:11"}],"name":"__OAppReceiver_init_unchained","nameLocation":"1173:29:11","nodeType":"FunctionDefinition","parameters":{"id":2060,"nodeType":"ParameterList","parameters":[],"src":"1202:2:11"},"returnParameters":{"id":2063,"nodeType":"ParameterList","parameters":[],"src":"1231:0:11"},"scope":2198,"src":"1164:69:11","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[2436],"body":{"id":2077,"nodeType":"Block","src":"1844:45:11","statements":[{"expression":{"components":[{"hexValue":"30","id":2073,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1862:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":2074,"name":"RECEIVER_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2046,"src":"1865:16:11","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":2075,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1861:21:11","typeDescriptions":{"typeIdentifier":"t_tuple$_t_rational_0_by_1_$_t_uint64_$","typeString":"tuple(int_const 0,uint64)"}},"functionReturnParameters":2072,"id":2076,"nodeType":"Return","src":"1854:28:11"}]},"documentation":{"id":2066,"nodeType":"StructuredDocumentation","src":"1239:502:11","text":" @notice Retrieves the OApp version information.\n @return senderVersion The version of the OAppSender.sol contract.\n @return receiverVersion The version of the OAppReceiver.sol contract.\n @dev Providing 0 as the default for OAppSender version. Indicates that the OAppSender is not implemented.\n ie. this is a RECEIVE only OApp.\n @dev If the OApp uses both OAppSender and OAppReceiver, then this needs to be override returning the correct versions."},"functionSelector":"17442b70","id":2078,"implemented":true,"kind":"function","modifiers":[],"name":"oAppVersion","nameLocation":"1755:11:11","nodeType":"FunctionDefinition","parameters":{"id":2067,"nodeType":"ParameterList","parameters":[],"src":"1766:2:11"},"returnParameters":{"id":2072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2069,"mutability":"mutable","name":"senderVersion","nameLocation":"1805:13:11","nodeType":"VariableDeclaration","scope":2078,"src":"1798:20:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2068,"name":"uint64","nodeType":"ElementaryTypeName","src":"1798:6:11","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":2071,"mutability":"mutable","name":"receiverVersion","nameLocation":"1827:15:11","nodeType":"VariableDeclaration","scope":2078,"src":"1820:22:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2070,"name":"uint64","nodeType":"ElementaryTypeName","src":"1820:6:11","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1797:46:11"},"scope":2198,"src":"1746:143:11","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[2486],"body":{"id":2098,"nodeType":"Block","src":"2734:48:11","statements":[{"expression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2091,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2086,"src":"2751:7:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":2094,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2770:4:11","typeDescriptions":{"typeIdentifier":"t_contract$_OAppReceiverUpgradeable_$2198","typeString":"contract OAppReceiverUpgradeable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OAppReceiverUpgradeable_$2198","typeString":"contract OAppReceiverUpgradeable"}],"id":2093,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2762:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2092,"name":"address","nodeType":"ElementaryTypeName","src":"2762:7:11","typeDescriptions":{}}},"id":2095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2762:13:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2751:24:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2090,"id":2097,"nodeType":"Return","src":"2744:31:11"}]},"documentation":{"id":2079,"nodeType":"StructuredDocumentation","src":"1895:666:11","text":" @notice Indicates whether an address is an approved composeMsg sender to the Endpoint.\n @dev _origin The origin information containing the source endpoint and sender address.\n  - srcEid: The source chain endpoint ID.\n  - sender: The sender address on the src chain.\n  - nonce: The nonce of the message.\n @dev _message The lzReceive payload.\n @param _sender The sender address.\n @return isSender Is a valid sender.\n @dev Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.\n @dev The default sender IS the OAppReceiver implementer."},"functionSelector":"82413eac","id":2099,"implemented":true,"kind":"function","modifiers":[],"name":"isComposeMsgSender","nameLocation":"2575:18:11","nodeType":"FunctionDefinition","parameters":{"id":2087,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2082,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2099,"src":"2603:15:11","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$886_calldata_ptr","typeString":"struct Origin"},"typeName":{"id":2081,"nodeType":"UserDefinedTypeName","pathNode":{"id":2080,"name":"Origin","nameLocations":["2603:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":886,"src":"2603:6:11"},"referencedDeclaration":886,"src":"2603:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$886_storage_ptr","typeString":"struct Origin"}},"visibility":"internal"},{"constant":false,"id":2084,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2099,"src":"2640:14:11","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2083,"name":"bytes","nodeType":"ElementaryTypeName","src":"2640:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2086,"mutability":"mutable","name":"_sender","nameLocation":"2685:7:11","nodeType":"VariableDeclaration","scope":2099,"src":"2677:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2085,"name":"address","nodeType":"ElementaryTypeName","src":"2677:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2593:105:11"},"returnParameters":{"id":2090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2089,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2099,"src":"2728:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2088,"name":"bool","nodeType":"ElementaryTypeName","src":"2728:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2727:6:11"},"scope":2198,"src":"2566:216:11","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1060],"body":{"id":2116,"nodeType":"Block","src":"3412:61:11","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":2114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":2109,"name":"origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2103,"src":"3435:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$886_calldata_ptr","typeString":"struct Origin calldata"}},"id":2110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3442:6:11","memberName":"srcEid","nodeType":"MemberAccess","referencedDeclaration":881,"src":"3435:13:11","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":2108,"name":"peers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1946,"src":"3429:5:11","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint32_$returns$_t_bytes32_$","typeString":"function (uint32) view returns (bytes32)"}},"id":2111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3429:20:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2112,"name":"origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2103,"src":"3453:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$886_calldata_ptr","typeString":"struct Origin calldata"}},"id":2113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3460:6:11","memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":883,"src":"3453:13:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3429:37:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2107,"id":2115,"nodeType":"Return","src":"3422:44:11"}]},"documentation":{"id":2100,"nodeType":"StructuredDocumentation","src":"2788:531:11","text":" @notice Checks if the path initialization is allowed based on the provided origin.\n @param origin The origin information containing the source endpoint and sender address.\n @return Whether the path has been initialized.\n @dev This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.\n @dev This defaults to assuming if a peer has been set, its initialized.\n Can be overridden by the OApp if there is other logic to determine this."},"functionSelector":"ff7bd03d","id":2117,"implemented":true,"kind":"function","modifiers":[],"name":"allowInitializePath","nameLocation":"3333:19:11","nodeType":"FunctionDefinition","parameters":{"id":2104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2103,"mutability":"mutable","name":"origin","nameLocation":"3369:6:11","nodeType":"VariableDeclaration","scope":2117,"src":"3353:22:11","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$886_calldata_ptr","typeString":"struct Origin"},"typeName":{"id":2102,"nodeType":"UserDefinedTypeName","pathNode":{"id":2101,"name":"Origin","nameLocations":["3353:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":886,"src":"3353:6:11"},"referencedDeclaration":886,"src":"3353:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$886_storage_ptr","typeString":"struct Origin"}},"visibility":"internal"}],"src":"3352:24:11"},"returnParameters":{"id":2107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2106,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2117,"src":"3406:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2105,"name":"bool","nodeType":"ElementaryTypeName","src":"3406:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3405:6:11"},"scope":2198,"src":"3324:149:11","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1069],"body":{"id":2129,"nodeType":"Block","src":"4163:25:11","statements":[{"expression":{"hexValue":"30","id":2127,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4180:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":2126,"id":2128,"nodeType":"Return","src":"4173:8:11"}]},"documentation":{"id":2118,"nodeType":"StructuredDocumentation","src":"3479:576:11","text":" @notice Retrieves the next nonce for a given source endpoint and sender address.\n @dev _srcEid The source endpoint ID.\n @dev _sender The sender address.\n @return nonce The next nonce.\n @dev The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.\n @dev Is required by the off-chain executor to determine the OApp expects msg execution is ordered.\n @dev This is also enforced by the OApp.\n @dev By default this is NOT enabled. ie. nextNonce is hardcoded to return 0."},"functionSelector":"7d25a05e","id":2130,"implemented":true,"kind":"function","modifiers":[],"name":"nextNonce","nameLocation":"4069:9:11","nodeType":"FunctionDefinition","parameters":{"id":2123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2120,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2130,"src":"4079:6:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2119,"name":"uint32","nodeType":"ElementaryTypeName","src":"4079:6:11","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2122,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2130,"src":"4099:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2121,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4099:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4078:41:11"},"returnParameters":{"id":2126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2125,"mutability":"mutable","name":"nonce","nameLocation":"4156:5:11","nodeType":"VariableDeclaration","scope":2130,"src":"4149:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2124,"name":"uint64","nodeType":"ElementaryTypeName","src":"4149:6:11","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"4148:14:11"},"scope":2198,"src":"4060:128:11","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1083],"body":{"id":2181,"nodeType":"Block","src":"5120:509:11","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2147,"name":"endpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1875,"src":"5234:8:11","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpointV2_$1048","typeString":"contract ILayerZeroEndpointV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ILayerZeroEndpointV2_$1048","typeString":"contract ILayerZeroEndpointV2"}],"id":2146,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5226:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2145,"name":"address","nodeType":"ElementaryTypeName","src":"5226:7:11","typeDescriptions":{}}},"id":2148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5226:17:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":2149,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5247:3:11","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5251:6:11","memberName":"sender","nodeType":"MemberAccess","src":"5247:10:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5226:31:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2157,"nodeType":"IfStatement","src":"5222:68:11","trueBody":{"errorCall":{"arguments":[{"expression":{"id":2153,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5279:3:11","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5283:6:11","memberName":"sender","nodeType":"MemberAccess","src":"5279:10:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2152,"name":"OnlyEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2043,"src":"5266:12:11","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":2155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5266:24:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2156,"nodeType":"RevertStatement","src":"5259:31:11"}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":2164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":2159,"name":"_origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2134,"src":"5407:7:11","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$886_calldata_ptr","typeString":"struct Origin calldata"}},"id":2160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5415:6:11","memberName":"srcEid","nodeType":"MemberAccess","referencedDeclaration":881,"src":"5407:14:11","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":2158,"name":"_getPeerOrRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2011,"src":"5390:16:11","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint32_$returns$_t_bytes32_$","typeString":"function (uint32) view returns (bytes32)"}},"id":2161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5390:32:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":2162,"name":"_origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2134,"src":"5426:7:11","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$886_calldata_ptr","typeString":"struct Origin calldata"}},"id":2163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5434:6:11","memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":883,"src":"5426:14:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5390:50:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2172,"nodeType":"IfStatement","src":"5386:103:11","trueBody":{"errorCall":{"arguments":[{"expression":{"id":2166,"name":"_origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2134,"src":"5458:7:11","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$886_calldata_ptr","typeString":"struct Origin calldata"}},"id":2167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5466:6:11","memberName":"srcEid","nodeType":"MemberAccess","referencedDeclaration":881,"src":"5458:14:11","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"expression":{"id":2168,"name":"_origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2134,"src":"5474:7:11","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$886_calldata_ptr","typeString":"struct Origin calldata"}},"id":2169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5482:6:11","memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":883,"src":"5474:14:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2165,"name":"OnlyPeer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2414,"src":"5449:8:11","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint32_$_t_bytes32_$returns$__$","typeString":"function (uint32,bytes32) pure"}},"id":2170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5449:40:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2171,"nodeType":"RevertStatement","src":"5442:47:11"}},{"expression":{"arguments":[{"id":2174,"name":"_origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2134,"src":"5574:7:11","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$886_calldata_ptr","typeString":"struct Origin calldata"}},{"id":2175,"name":"_guid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2136,"src":"5583:5:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2176,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2138,"src":"5590:8:11","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":2177,"name":"_executor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2140,"src":"5600:9:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2178,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2142,"src":"5611:10:11","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Origin_$886_calldata_ptr","typeString":"struct Origin calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":2173,"name":"_lzReceive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2197,"src":"5563:10:11","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Origin_$886_calldata_ptr_$_t_bytes32_$_t_bytes_calldata_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (struct Origin calldata,bytes32,bytes calldata,address,bytes calldata)"}},"id":2179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5563:59:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2180,"nodeType":"ExpressionStatement","src":"5563:59:11"}]},"documentation":{"id":2131,"nodeType":"StructuredDocumentation","src":"4194:722:11","text":" @dev Entry point for receiving messages or packets from the endpoint.\n @param _origin The origin information containing the source endpoint and sender address.\n  - srcEid: The source chain endpoint ID.\n  - sender: The sender address on the src chain.\n  - nonce: The nonce of the message.\n @param _guid The unique identifier for the received LayerZero message.\n @param _message The payload of the received message.\n @param _executor The address of the executor for the received message.\n @param _extraData Additional arbitrary data provided by the corresponding executor.\n @dev Entry point for receiving msg/packet from the LayerZero endpoint."},"functionSelector":"13137d65","id":2182,"implemented":true,"kind":"function","modifiers":[],"name":"lzReceive","nameLocation":"4930:9:11","nodeType":"FunctionDefinition","parameters":{"id":2143,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2134,"mutability":"mutable","name":"_origin","nameLocation":"4965:7:11","nodeType":"VariableDeclaration","scope":2182,"src":"4949:23:11","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$886_calldata_ptr","typeString":"struct Origin"},"typeName":{"id":2133,"nodeType":"UserDefinedTypeName","pathNode":{"id":2132,"name":"Origin","nameLocations":["4949:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":886,"src":"4949:6:11"},"referencedDeclaration":886,"src":"4949:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$886_storage_ptr","typeString":"struct Origin"}},"visibility":"internal"},{"constant":false,"id":2136,"mutability":"mutable","name":"_guid","nameLocation":"4990:5:11","nodeType":"VariableDeclaration","scope":2182,"src":"4982:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2135,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4982:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2138,"mutability":"mutable","name":"_message","nameLocation":"5020:8:11","nodeType":"VariableDeclaration","scope":2182,"src":"5005:23:11","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2137,"name":"bytes","nodeType":"ElementaryTypeName","src":"5005:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2140,"mutability":"mutable","name":"_executor","nameLocation":"5046:9:11","nodeType":"VariableDeclaration","scope":2182,"src":"5038:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2139,"name":"address","nodeType":"ElementaryTypeName","src":"5038:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2142,"mutability":"mutable","name":"_extraData","nameLocation":"5080:10:11","nodeType":"VariableDeclaration","scope":2182,"src":"5065:25:11","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2141,"name":"bytes","nodeType":"ElementaryTypeName","src":"5065:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4939:157:11"},"returnParameters":{"id":2144,"nodeType":"ParameterList","parameters":[],"src":"5120:0:11"},"scope":2198,"src":"4921:708:11","stateMutability":"payable","virtual":true,"visibility":"public"},{"documentation":{"id":2183,"nodeType":"StructuredDocumentation","src":"5635:126:11","text":" @dev Internal function to implement lzReceive logic without needing to copy the basic parameter validation."},"id":2197,"implemented":false,"kind":"function","modifiers":[],"name":"_lzReceive","nameLocation":"5775:10:11","nodeType":"FunctionDefinition","parameters":{"id":2195,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2186,"mutability":"mutable","name":"_origin","nameLocation":"5811:7:11","nodeType":"VariableDeclaration","scope":2197,"src":"5795:23:11","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$886_calldata_ptr","typeString":"struct Origin"},"typeName":{"id":2185,"nodeType":"UserDefinedTypeName","pathNode":{"id":2184,"name":"Origin","nameLocations":["5795:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":886,"src":"5795:6:11"},"referencedDeclaration":886,"src":"5795:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$886_storage_ptr","typeString":"struct Origin"}},"visibility":"internal"},{"constant":false,"id":2188,"mutability":"mutable","name":"_guid","nameLocation":"5836:5:11","nodeType":"VariableDeclaration","scope":2197,"src":"5828:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2187,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5828:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2190,"mutability":"mutable","name":"_message","nameLocation":"5866:8:11","nodeType":"VariableDeclaration","scope":2197,"src":"5851:23:11","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2189,"name":"bytes","nodeType":"ElementaryTypeName","src":"5851:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2192,"mutability":"mutable","name":"_executor","nameLocation":"5892:9:11","nodeType":"VariableDeclaration","scope":2197,"src":"5884:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2191,"name":"address","nodeType":"ElementaryTypeName","src":"5884:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2194,"mutability":"mutable","name":"_extraData","nameLocation":"5926:10:11","nodeType":"VariableDeclaration","scope":2197,"src":"5911:25:11","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2193,"name":"bytes","nodeType":"ElementaryTypeName","src":"5911:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5785:157:11"},"returnParameters":{"id":2196,"nodeType":"ParameterList","parameters":[],"src":"5959:0:11"},"scope":2198,"src":"5766:194:11","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":2199,"src":"380:5582:11","usedErrors":[2043,2414,2418,2420,2422],"usedEvents":[2428,5964,6094]}],"src":"33:5930:11"},"id":11},"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppSenderUpgradeable.sol":{"ast":{"absolutePath":"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppSenderUpgradeable.sol","exportedSymbols":{"IERC20":[7327],"MessagingFee":[879],"MessagingParams":[866],"MessagingReceipt":[874],"OAppCoreUpgradeable":[2027],"OAppSenderUpgradeable":[2403],"SafeERC20":[7739]},"id":2404,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2200,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"33:24:12"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","file":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","id":2203,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2404,"sourceUnit":7740,"src":"59:92:12","symbolAliases":[{"foreign":{"id":2201,"name":"SafeERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7739,"src":"68:9:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":2202,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7327,"src":"79:6:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol","file":"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol","id":2207,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2404,"sourceUnit":1049,"src":"152:146:12","symbolAliases":[{"foreign":{"id":2204,"name":"MessagingParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":866,"src":"161:15:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":2205,"name":"MessagingFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":879,"src":"178:12:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":2206,"name":"MessagingReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":874,"src":"192:16:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppCoreUpgradeable.sol","file":"./OAppCoreUpgradeable.sol","id":2209,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2404,"sourceUnit":2028,"src":"299:64:12","symbolAliases":[{"foreign":{"id":2208,"name":"OAppCoreUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2027,"src":"308:19:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":2211,"name":"OAppCoreUpgradeable","nameLocations":["551:19:12"],"nodeType":"IdentifierPath","referencedDeclaration":2027,"src":"551:19:12"},"id":2212,"nodeType":"InheritanceSpecifier","src":"551:19:12"}],"canonicalName":"OAppSenderUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":2210,"nodeType":"StructuredDocumentation","src":"365:142:12","text":" @title OAppSender\n @dev Abstract contract implementing the OAppSender functionality for sending messages to a LayerZero endpoint."},"fullyImplemented":true,"id":2403,"linearizedBaseContracts":[2403,2027,6079,6574,6248,2466],"name":"OAppSenderUpgradeable","nameLocation":"526:21:12","nodeType":"ContractDefinition","nodes":[{"global":false,"id":2216,"libraryName":{"id":2213,"name":"SafeERC20","nameLocations":["583:9:12"],"nodeType":"IdentifierPath","referencedDeclaration":7739,"src":"583:9:12"},"nodeType":"UsingForDirective","src":"577:27:12","typeName":{"id":2215,"nodeType":"UserDefinedTypeName","pathNode":{"id":2214,"name":"IERC20","nameLocations":["597:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":7327,"src":"597:6:12"},"referencedDeclaration":7327,"src":"597:6:12","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"}}},{"errorSelector":"9f704120","id":2220,"name":"NotEnoughNative","nameLocation":"645:15:12","nodeType":"ErrorDefinition","parameters":{"id":2219,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2218,"mutability":"mutable","name":"msgValue","nameLocation":"669:8:12","nodeType":"VariableDeclaration","scope":2220,"src":"661:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2217,"name":"uint256","nodeType":"ElementaryTypeName","src":"661:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"660:18:12"},"src":"639:40:12"},{"errorSelector":"5373352a","id":2222,"name":"LzTokenUnavailable","nameLocation":"690:18:12","nodeType":"ErrorDefinition","parameters":{"id":2221,"nodeType":"ParameterList","parameters":[],"src":"708:2:12"},"src":"684:27:12"},{"constant":true,"id":2225,"mutability":"constant","name":"SENDER_VERSION","nameLocation":"870:14:12","nodeType":"VariableDeclaration","scope":2403,"src":"845:43:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2223,"name":"uint64","nodeType":"ElementaryTypeName","src":"845:6:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":2224,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"887:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"body":{"id":2237,"nodeType":"Block","src":"1241:43:12","statements":[{"expression":{"arguments":[{"id":2234,"name":"_delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2228,"src":"1267:9:12","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2233,"name":"__OAppCore_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1901,"src":"1251:15:12","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":2235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1251:26:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2236,"nodeType":"ExpressionStatement","src":"1251:26:12"}]},"documentation":{"id":2226,"nodeType":"StructuredDocumentation","src":"895:269:12","text":" @param _delegate The delegate capable of making OApp configurations inside of the endpoint.\n @dev Ownable is not initialized here on purpose. It should be initialized in the child contract to\n accommodate the different version of Ownable."},"id":2238,"implemented":true,"kind":"function","modifiers":[{"id":2231,"kind":"modifierInvocation","modifierName":{"id":2230,"name":"onlyInitializing","nameLocations":["1224:16:12"],"nodeType":"IdentifierPath","referencedDeclaration":6193,"src":"1224:16:12"},"nodeType":"ModifierInvocation","src":"1224:16:12"}],"name":"__OAppSender_init","nameLocation":"1178:17:12","nodeType":"FunctionDefinition","parameters":{"id":2229,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2228,"mutability":"mutable","name":"_delegate","nameLocation":"1204:9:12","nodeType":"VariableDeclaration","scope":2238,"src":"1196:17:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2227,"name":"address","nodeType":"ElementaryTypeName","src":"1196:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1195:19:12"},"returnParameters":{"id":2232,"nodeType":"ParameterList","parameters":[],"src":"1241:0:12"},"scope":2403,"src":"1169:115:12","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2243,"nodeType":"Block","src":"1355:2:12","statements":[]},"id":2244,"implemented":true,"kind":"function","modifiers":[{"id":2241,"kind":"modifierInvocation","modifierName":{"id":2240,"name":"onlyInitializing","nameLocations":["1338:16:12"],"nodeType":"IdentifierPath","referencedDeclaration":6193,"src":"1338:16:12"},"nodeType":"ModifierInvocation","src":"1338:16:12"}],"name":"__OAppSender_init_unchained","nameLocation":"1299:27:12","nodeType":"FunctionDefinition","parameters":{"id":2239,"nodeType":"ParameterList","parameters":[],"src":"1326:2:12"},"returnParameters":{"id":2242,"nodeType":"ParameterList","parameters":[],"src":"1355:0:12"},"scope":2403,"src":"1290:67:12","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[2436],"body":{"id":2256,"nodeType":"Block","src":"1968:43:12","statements":[{"expression":{"components":[{"id":2252,"name":"SENDER_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2225,"src":"1986:14:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"hexValue":"30","id":2253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2002:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":2254,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1985:19:12","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_rational_0_by_1_$","typeString":"tuple(uint64,int_const 0)"}},"functionReturnParameters":2251,"id":2255,"nodeType":"Return","src":"1978:26:12"}]},"documentation":{"id":2245,"nodeType":"StructuredDocumentation","src":"1363:502:12","text":" @notice Retrieves the OApp version information.\n @return senderVersion The version of the OAppSender.sol contract.\n @return receiverVersion The version of the OAppReceiver.sol contract.\n @dev Providing 0 as the default for OAppReceiver version. Indicates that the OAppReceiver is not implemented.\n ie. this is a SEND only OApp.\n @dev If the OApp uses both OAppSender and OAppReceiver, then this needs to be override returning the correct versions"},"functionSelector":"17442b70","id":2257,"implemented":true,"kind":"function","modifiers":[],"name":"oAppVersion","nameLocation":"1879:11:12","nodeType":"FunctionDefinition","parameters":{"id":2246,"nodeType":"ParameterList","parameters":[],"src":"1890:2:12"},"returnParameters":{"id":2251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2248,"mutability":"mutable","name":"senderVersion","nameLocation":"1929:13:12","nodeType":"VariableDeclaration","scope":2257,"src":"1922:20:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2247,"name":"uint64","nodeType":"ElementaryTypeName","src":"1922:6:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":2250,"mutability":"mutable","name":"receiverVersion","nameLocation":"1951:15:12","nodeType":"VariableDeclaration","scope":2257,"src":"1944:22:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2249,"name":"uint64","nodeType":"ElementaryTypeName","src":"1944:6:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1921:46:12"},"scope":2403,"src":"1870:141:12","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":2289,"nodeType":"Block","src":"2742:199:12","statements":[{"expression":{"arguments":[{"arguments":[{"id":2275,"name":"_dstEid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2260,"src":"2819:7:12","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"arguments":[{"id":2277,"name":"_dstEid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2260,"src":"2845:7:12","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":2276,"name":"_getPeerOrRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2011,"src":"2828:16:12","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint32_$returns$_t_bytes32_$","typeString":"function (uint32) view returns (bytes32)"}},"id":2278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2828:25:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2279,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2262,"src":"2855:8:12","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":2280,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2264,"src":"2865:8:12","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":2281,"name":"_payInLzToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2266,"src":"2875:13:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2274,"name":"MessagingParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":866,"src":"2803:15:12","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_MessagingParams_$866_storage_ptr_$","typeString":"type(struct MessagingParams storage pointer)"}},"id":2282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2803:86:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_MessagingParams_$866_memory_ptr","typeString":"struct MessagingParams memory"}},{"arguments":[{"id":2285,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2915:4:12","typeDescriptions":{"typeIdentifier":"t_contract$_OAppSenderUpgradeable_$2403","typeString":"contract OAppSenderUpgradeable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OAppSenderUpgradeable_$2403","typeString":"contract OAppSenderUpgradeable"}],"id":2284,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2907:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2283,"name":"address","nodeType":"ElementaryTypeName","src":"2907:7:12","typeDescriptions":{}}},"id":2286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2907:13:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MessagingParams_$866_memory_ptr","typeString":"struct MessagingParams memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":2272,"name":"endpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1875,"src":"2771:8:12","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpointV2_$1048","typeString":"contract ILayerZeroEndpointV2"}},"id":2273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2780:5:12","memberName":"quote","nodeType":"MemberAccess","referencedDeclaration":960,"src":"2771:14:12","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_MessagingParams_$866_memory_ptr_$_t_address_$returns$_t_struct$_MessagingFee_$879_memory_ptr_$","typeString":"function (struct MessagingParams memory,address) view external returns (struct MessagingFee memory)"}},"id":2287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2771:163:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$879_memory_ptr","typeString":"struct MessagingFee memory"}},"functionReturnParameters":2271,"id":2288,"nodeType":"Return","src":"2752:182:12"}]},"documentation":{"id":2258,"nodeType":"StructuredDocumentation","src":"2017:528:12","text":" @dev Internal function to interact with the LayerZero EndpointV2.quote() for fee calculation.\n @param _dstEid The destination endpoint ID.\n @param _message The message payload.\n @param _options Additional options for the message.\n @param _payInLzToken Flag indicating whether to pay the fee in LZ tokens.\n @return fee The calculated MessagingFee for the message.\n      - nativeFee: The native fee for the message.\n      - lzTokenFee: The LZ token fee for the message."},"id":2290,"implemented":true,"kind":"function","modifiers":[],"name":"_quote","nameLocation":"2559:6:12","nodeType":"FunctionDefinition","parameters":{"id":2267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2260,"mutability":"mutable","name":"_dstEid","nameLocation":"2582:7:12","nodeType":"VariableDeclaration","scope":2290,"src":"2575:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2259,"name":"uint32","nodeType":"ElementaryTypeName","src":"2575:6:12","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2262,"mutability":"mutable","name":"_message","nameLocation":"2612:8:12","nodeType":"VariableDeclaration","scope":2290,"src":"2599:21:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2261,"name":"bytes","nodeType":"ElementaryTypeName","src":"2599:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2264,"mutability":"mutable","name":"_options","nameLocation":"2643:8:12","nodeType":"VariableDeclaration","scope":2290,"src":"2630:21:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2263,"name":"bytes","nodeType":"ElementaryTypeName","src":"2630:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2266,"mutability":"mutable","name":"_payInLzToken","nameLocation":"2666:13:12","nodeType":"VariableDeclaration","scope":2290,"src":"2661:18:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2265,"name":"bool","nodeType":"ElementaryTypeName","src":"2661:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2565:120:12"},"returnParameters":{"id":2271,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2270,"mutability":"mutable","name":"fee","nameLocation":"2737:3:12","nodeType":"VariableDeclaration","scope":2290,"src":"2717:23:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$879_memory_ptr","typeString":"struct MessagingFee"},"typeName":{"id":2269,"nodeType":"UserDefinedTypeName","pathNode":{"id":2268,"name":"MessagingFee","nameLocations":["2717:12:12"],"nodeType":"IdentifierPath","referencedDeclaration":879,"src":"2717:12:12"},"referencedDeclaration":879,"src":"2717:12:12","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$879_storage_ptr","typeString":"struct MessagingFee"}},"visibility":"internal"}],"src":"2716:25:12"},"scope":2403,"src":"2550:391:12","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":2344,"nodeType":"Block","src":"3934:532:12","statements":[{"assignments":[2309],"declarations":[{"constant":false,"id":2309,"mutability":"mutable","name":"messageValue","nameLocation":"4074:12:12","nodeType":"VariableDeclaration","scope":2344,"src":"4066:20:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2308,"name":"uint256","nodeType":"ElementaryTypeName","src":"4066:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2314,"initialValue":{"arguments":[{"expression":{"id":2311,"name":"_fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2300,"src":"4100:4:12","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$879_memory_ptr","typeString":"struct MessagingFee memory"}},"id":2312,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4105:9:12","memberName":"nativeFee","nodeType":"MemberAccess","referencedDeclaration":876,"src":"4100:14:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2310,"name":"_payNative","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2366,"src":"4089:10:12","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) returns (uint256)"}},"id":2313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4089:26:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4066:49:12"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2315,"name":"_fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2300,"src":"4129:4:12","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$879_memory_ptr","typeString":"struct MessagingFee memory"}},"id":2316,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4134:10:12","memberName":"lzTokenFee","nodeType":"MemberAccess","referencedDeclaration":878,"src":"4129:15:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2317,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4147:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4129:19:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2324,"nodeType":"IfStatement","src":"4125:53:12","trueBody":{"expression":{"arguments":[{"expression":{"id":2320,"name":"_fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2300,"src":"4162:4:12","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$879_memory_ptr","typeString":"struct MessagingFee memory"}},"id":2321,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4167:10:12","memberName":"lzTokenFee","nodeType":"MemberAccess","referencedDeclaration":878,"src":"4162:15:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2319,"name":"_payLzToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2402,"src":"4150:11:12","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":2322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4150:28:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2323,"nodeType":"ExpressionStatement","src":"4150:28:12"}},{"expression":{"arguments":[{"arguments":[{"id":2330,"name":"_dstEid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2293,"src":"4337:7:12","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"arguments":[{"id":2332,"name":"_dstEid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2293,"src":"4363:7:12","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":2331,"name":"_getPeerOrRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2011,"src":"4346:16:12","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint32_$returns$_t_bytes32_$","typeString":"function (uint32) view returns (bytes32)"}},"id":2333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4346:25:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2334,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2295,"src":"4373:8:12","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":2335,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2297,"src":"4383:8:12","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2336,"name":"_fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2300,"src":"4393:4:12","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$879_memory_ptr","typeString":"struct MessagingFee memory"}},"id":2337,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4398:10:12","memberName":"lzTokenFee","nodeType":"MemberAccess","referencedDeclaration":878,"src":"4393:15:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4411:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4393:19:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2329,"name":"MessagingParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":866,"src":"4321:15:12","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_MessagingParams_$866_storage_ptr_$","typeString":"type(struct MessagingParams storage pointer)"}},"id":2340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4321:92:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_MessagingParams_$866_memory_ptr","typeString":"struct MessagingParams memory"}},{"id":2341,"name":"_refundAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2302,"src":"4431:14:12","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MessagingParams_$866_memory_ptr","typeString":"struct MessagingParams memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MessagingParams_$866_memory_ptr","typeString":"struct MessagingParams memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":2325,"name":"endpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1875,"src":"4267:8:12","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpointV2_$1048","typeString":"contract ILayerZeroEndpointV2"}},"id":2326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4276:4:12","memberName":"send","nodeType":"MemberAccess","referencedDeclaration":971,"src":"4267:13:12","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_MessagingParams_$866_memory_ptr_$_t_address_$returns$_t_struct$_MessagingReceipt_$874_memory_ptr_$","typeString":"function (struct MessagingParams memory,address) payable external returns (struct MessagingReceipt memory)"}},"id":2328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":2327,"name":"messageValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2309,"src":"4289:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"4267:36:12","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_MessagingParams_$866_memory_ptr_$_t_address_$returns$_t_struct$_MessagingReceipt_$874_memory_ptr_$value","typeString":"function (struct MessagingParams memory,address) payable external returns (struct MessagingReceipt memory)"}},"id":2342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4267:192:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_MessagingReceipt_$874_memory_ptr","typeString":"struct MessagingReceipt memory"}},"functionReturnParameters":2307,"id":2343,"nodeType":"Return","src":"4189:270:12"}]},"documentation":{"id":2291,"nodeType":"StructuredDocumentation","src":"2947:748:12","text":" @dev Internal function to interact with the LayerZero EndpointV2.send() for sending a message.\n @param _dstEid The destination endpoint ID.\n @param _message The message payload.\n @param _options Additional options for the message.\n @param _fee The calculated LayerZero fee for the message.\n      - nativeFee: The native fee.\n      - lzTokenFee: The lzToken fee.\n @param _refundAddress The address to receive any excess fee values sent to the endpoint.\n @return receipt The receipt for the sent message.\n      - guid: The unique identifier for the sent message.\n      - nonce: The nonce of the sent message.\n      - fee: The LayerZero fee incurred for the message."},"id":2345,"implemented":true,"kind":"function","modifiers":[],"name":"_lzSend","nameLocation":"3709:7:12","nodeType":"FunctionDefinition","parameters":{"id":2303,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2293,"mutability":"mutable","name":"_dstEid","nameLocation":"3733:7:12","nodeType":"VariableDeclaration","scope":2345,"src":"3726:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2292,"name":"uint32","nodeType":"ElementaryTypeName","src":"3726:6:12","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2295,"mutability":"mutable","name":"_message","nameLocation":"3763:8:12","nodeType":"VariableDeclaration","scope":2345,"src":"3750:21:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2294,"name":"bytes","nodeType":"ElementaryTypeName","src":"3750:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2297,"mutability":"mutable","name":"_options","nameLocation":"3794:8:12","nodeType":"VariableDeclaration","scope":2345,"src":"3781:21:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2296,"name":"bytes","nodeType":"ElementaryTypeName","src":"3781:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2300,"mutability":"mutable","name":"_fee","nameLocation":"3832:4:12","nodeType":"VariableDeclaration","scope":2345,"src":"3812:24:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$879_memory_ptr","typeString":"struct MessagingFee"},"typeName":{"id":2299,"nodeType":"UserDefinedTypeName","pathNode":{"id":2298,"name":"MessagingFee","nameLocations":["3812:12:12"],"nodeType":"IdentifierPath","referencedDeclaration":879,"src":"3812:12:12"},"referencedDeclaration":879,"src":"3812:12:12","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$879_storage_ptr","typeString":"struct MessagingFee"}},"visibility":"internal"},{"constant":false,"id":2302,"mutability":"mutable","name":"_refundAddress","nameLocation":"3854:14:12","nodeType":"VariableDeclaration","scope":2345,"src":"3846:22:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2301,"name":"address","nodeType":"ElementaryTypeName","src":"3846:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3716:158:12"},"returnParameters":{"id":2307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2306,"mutability":"mutable","name":"receipt","nameLocation":"3925:7:12","nodeType":"VariableDeclaration","scope":2345,"src":"3901:31:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingReceipt_$874_memory_ptr","typeString":"struct MessagingReceipt"},"typeName":{"id":2305,"nodeType":"UserDefinedTypeName","pathNode":{"id":2304,"name":"MessagingReceipt","nameLocations":["3901:16:12"],"nodeType":"IdentifierPath","referencedDeclaration":874,"src":"3901:16:12"},"referencedDeclaration":874,"src":"3901:16:12","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingReceipt_$874_storage_ptr","typeString":"struct MessagingReceipt"}},"visibility":"internal"}],"src":"3900:33:12"},"scope":2403,"src":"3700:766:12","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2365,"nodeType":"Block","src":"5247:106:12","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2353,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5261:3:12","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5265:5:12","memberName":"value","nodeType":"MemberAccess","src":"5261:9:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":2355,"name":"_nativeFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2348,"src":"5274:10:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5261:23:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2362,"nodeType":"IfStatement","src":"5257:62:12","trueBody":{"errorCall":{"arguments":[{"expression":{"id":2358,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5309:3:12","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5313:5:12","memberName":"value","nodeType":"MemberAccess","src":"5309:9:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2357,"name":"NotEnoughNative","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2220,"src":"5293:15:12","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":2360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5293:26:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2361,"nodeType":"RevertStatement","src":"5286:33:12"}},{"expression":{"id":2363,"name":"_nativeFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2348,"src":"5336:10:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2352,"id":2364,"nodeType":"Return","src":"5329:17:12"}]},"documentation":{"id":2346,"nodeType":"StructuredDocumentation","src":"4472:685:12","text":" @dev Internal function to pay the native fee associated with the message.\n @param _nativeFee The native fee to be paid.\n @return nativeFee The amount of native currency paid.\n @dev If the OApp needs to initiate MULTIPLE LayerZero messages in a single transaction,\n this will need to be overridden because msg.value would contain multiple lzFees.\n @dev Should be overridden in the event the LayerZero endpoint requires a different native currency.\n @dev Some EVMs use an ERC20 as a method for paying transactions/gasFees.\n @dev The endpoint is EITHER/OR, ie. it will NOT support both types of native payment at a time."},"id":2366,"implemented":true,"kind":"function","modifiers":[],"name":"_payNative","nameLocation":"5171:10:12","nodeType":"FunctionDefinition","parameters":{"id":2349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2348,"mutability":"mutable","name":"_nativeFee","nameLocation":"5190:10:12","nodeType":"VariableDeclaration","scope":2366,"src":"5182:18:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2347,"name":"uint256","nodeType":"ElementaryTypeName","src":"5182:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5181:20:12"},"returnParameters":{"id":2352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2351,"mutability":"mutable","name":"nativeFee","nameLocation":"5236:9:12","nodeType":"VariableDeclaration","scope":2366,"src":"5228:17:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2350,"name":"uint256","nodeType":"ElementaryTypeName","src":"5228:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5227:19:12"},"scope":2403,"src":"5162:191:12","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2401,"nodeType":"Block","src":"5789:351:12","statements":[{"assignments":[2373],"declarations":[{"constant":false,"id":2373,"mutability":"mutable","name":"lzToken","nameLocation":"5891:7:12","nodeType":"VariableDeclaration","scope":2401,"src":"5883:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2372,"name":"address","nodeType":"ElementaryTypeName","src":"5883:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2377,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":2374,"name":"endpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1875,"src":"5901:8:12","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpointV2_$1048","typeString":"contract ILayerZeroEndpointV2"}},"id":2375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5910:7:12","memberName":"lzToken","nodeType":"MemberAccess","referencedDeclaration":1037,"src":"5901:16:12","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":2376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5901:18:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5883:36:12"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2378,"name":"lzToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2373,"src":"5933:7:12","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":2381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5952:1:12","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":2380,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5944:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2379,"name":"address","nodeType":"ElementaryTypeName","src":"5944:7:12","typeDescriptions":{}}},"id":2382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5944:10:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5933:21:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2387,"nodeType":"IfStatement","src":"5929:54:12","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":2384,"name":"LzTokenUnavailable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2222,"src":"5963:18:12","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":2385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5963:20:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2386,"nodeType":"RevertStatement","src":"5956:27:12"}},{"expression":{"arguments":[{"expression":{"id":2392,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6090:3:12","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6094:6:12","memberName":"sender","nodeType":"MemberAccess","src":"6090:10:12","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":2396,"name":"endpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1875,"src":"6110:8:12","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpointV2_$1048","typeString":"contract ILayerZeroEndpointV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ILayerZeroEndpointV2_$1048","typeString":"contract ILayerZeroEndpointV2"}],"id":2395,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6102:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2394,"name":"address","nodeType":"ElementaryTypeName","src":"6102:7:12","typeDescriptions":{}}},"id":2397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6102:17:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2398,"name":"_lzTokenFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2369,"src":"6121:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":2389,"name":"lzToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2373,"src":"6064:7:12","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2388,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7327,"src":"6057:6:12","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$7327_$","typeString":"type(contract IERC20)"}},"id":2390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6057:15:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"}},"id":2391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6073:16:12","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":7423,"src":"6057:32:12","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$7327_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$7327_$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":2399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6057:76:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2400,"nodeType":"ExpressionStatement","src":"6057:76:12"}]},"documentation":{"id":2367,"nodeType":"StructuredDocumentation","src":"5359:366:12","text":" @dev Internal function to pay the LZ token fee associated with the message.\n @param _lzTokenFee The LZ token fee to be paid.\n @dev If the caller is trying to pay in the specified lzToken, then the lzTokenFee is passed to the endpoint.\n @dev Any excess sent, is passed back to the specified _refundAddress in the _lzSend()."},"id":2402,"implemented":true,"kind":"function","modifiers":[],"name":"_payLzToken","nameLocation":"5739:11:12","nodeType":"FunctionDefinition","parameters":{"id":2370,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2369,"mutability":"mutable","name":"_lzTokenFee","nameLocation":"5759:11:12","nodeType":"VariableDeclaration","scope":2402,"src":"5751:19:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2368,"name":"uint256","nodeType":"ElementaryTypeName","src":"5751:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5750:21:12"},"returnParameters":{"id":2371,"nodeType":"ParameterList","parameters":[],"src":"5789:0:12"},"scope":2403,"src":"5730:410:12","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":2404,"src":"508:5634:12","usedErrors":[2220,2222,2414,2418,2420,2422],"usedEvents":[2428,5964,6094]}],"src":"33:6110:12"},"id":12},"@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppCore.sol":{"ast":{"absolutePath":"@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppCore.sol","exportedSymbols":{"ILayerZeroEndpointV2":[1048],"IOAppCore":[2466]},"id":2467,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2405,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"33:24:13"},{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol","file":"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol","id":2407,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2467,"sourceUnit":1049,"src":"59:119:13","symbolAliases":[{"foreign":{"id":2406,"name":"ILayerZeroEndpointV2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1048,"src":"68:20:13","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"IOAppCore","contractDependencies":[],"contractKind":"interface","documentation":{"id":2408,"nodeType":"StructuredDocumentation","src":"180:27:13","text":" @title IOAppCore"},"fullyImplemented":false,"id":2466,"linearizedBaseContracts":[2466],"name":"IOAppCore","nameLocation":"218:9:13","nodeType":"ContractDefinition","nodes":[{"errorSelector":"c26bebcc","id":2414,"name":"OnlyPeer","nameLocation":"269:8:13","nodeType":"ErrorDefinition","parameters":{"id":2413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2410,"mutability":"mutable","name":"eid","nameLocation":"285:3:13","nodeType":"VariableDeclaration","scope":2414,"src":"278:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2409,"name":"uint32","nodeType":"ElementaryTypeName","src":"278:6:13","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2412,"mutability":"mutable","name":"sender","nameLocation":"298:6:13","nodeType":"VariableDeclaration","scope":2414,"src":"290:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2411,"name":"bytes32","nodeType":"ElementaryTypeName","src":"290:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"277:28:13"},"src":"263:43:13"},{"errorSelector":"f6ff4fb7","id":2418,"name":"NoPeer","nameLocation":"317:6:13","nodeType":"ErrorDefinition","parameters":{"id":2417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2416,"mutability":"mutable","name":"eid","nameLocation":"331:3:13","nodeType":"VariableDeclaration","scope":2418,"src":"324:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2415,"name":"uint32","nodeType":"ElementaryTypeName","src":"324:6:13","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"323:12:13"},"src":"311:25:13"},{"errorSelector":"0fbdec0a","id":2420,"name":"InvalidEndpointCall","nameLocation":"347:19:13","nodeType":"ErrorDefinition","parameters":{"id":2419,"nodeType":"ParameterList","parameters":[],"src":"366:2:13"},"src":"341:28:13"},{"errorSelector":"b5863604","id":2422,"name":"InvalidDelegate","nameLocation":"380:15:13","nodeType":"ErrorDefinition","parameters":{"id":2421,"nodeType":"ParameterList","parameters":[],"src":"395:2:13"},"src":"374:24:13"},{"anonymous":false,"eventSelector":"238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b","id":2428,"name":"PeerSet","nameLocation":"486:7:13","nodeType":"EventDefinition","parameters":{"id":2427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2424,"indexed":false,"mutability":"mutable","name":"eid","nameLocation":"501:3:13","nodeType":"VariableDeclaration","scope":2428,"src":"494:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2423,"name":"uint32","nodeType":"ElementaryTypeName","src":"494:6:13","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2426,"indexed":false,"mutability":"mutable","name":"peer","nameLocation":"514:4:13","nodeType":"VariableDeclaration","scope":2428,"src":"506:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2425,"name":"bytes32","nodeType":"ElementaryTypeName","src":"506:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"493:26:13"},"src":"480:40:13"},{"documentation":{"id":2429,"nodeType":"StructuredDocumentation","src":"526:216:13","text":" @notice Retrieves the OApp version information.\n @return senderVersion The version of the OAppSender.sol contract.\n @return receiverVersion The version of the OAppReceiver.sol contract."},"functionSelector":"17442b70","id":2436,"implemented":false,"kind":"function","modifiers":[],"name":"oAppVersion","nameLocation":"756:11:13","nodeType":"FunctionDefinition","parameters":{"id":2430,"nodeType":"ParameterList","parameters":[],"src":"767:2:13"},"returnParameters":{"id":2435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2432,"mutability":"mutable","name":"senderVersion","nameLocation":"800:13:13","nodeType":"VariableDeclaration","scope":2436,"src":"793:20:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2431,"name":"uint64","nodeType":"ElementaryTypeName","src":"793:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":2434,"mutability":"mutable","name":"receiverVersion","nameLocation":"822:15:13","nodeType":"VariableDeclaration","scope":2436,"src":"815:22:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2433,"name":"uint64","nodeType":"ElementaryTypeName","src":"815:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"792:46:13"},"scope":2466,"src":"747:92:13","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":2437,"nodeType":"StructuredDocumentation","src":"845:150:13","text":" @notice Retrieves the LayerZero endpoint associated with the OApp.\n @return iEndpoint The LayerZero endpoint as an interface."},"functionSelector":"5e280f11","id":2443,"implemented":false,"kind":"function","modifiers":[],"name":"endpoint","nameLocation":"1009:8:13","nodeType":"FunctionDefinition","parameters":{"id":2438,"nodeType":"ParameterList","parameters":[],"src":"1017:2:13"},"returnParameters":{"id":2442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2441,"mutability":"mutable","name":"iEndpoint","nameLocation":"1064:9:13","nodeType":"VariableDeclaration","scope":2443,"src":"1043:30:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpointV2_$1048","typeString":"contract ILayerZeroEndpointV2"},"typeName":{"id":2440,"nodeType":"UserDefinedTypeName","pathNode":{"id":2439,"name":"ILayerZeroEndpointV2","nameLocations":["1043:20:13"],"nodeType":"IdentifierPath","referencedDeclaration":1048,"src":"1043:20:13"},"referencedDeclaration":1048,"src":"1043:20:13","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpointV2_$1048","typeString":"contract ILayerZeroEndpointV2"}},"visibility":"internal"}],"src":"1042:32:13"},"scope":2466,"src":"1000:75:13","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":2444,"nodeType":"StructuredDocumentation","src":"1081:227:13","text":" @notice Retrieves the peer (OApp) associated with a corresponding endpoint.\n @param _eid The endpoint ID.\n @return peer The peer address (OApp instance) associated with the corresponding endpoint."},"functionSelector":"bb0b6a53","id":2451,"implemented":false,"kind":"function","modifiers":[],"name":"peers","nameLocation":"1322:5:13","nodeType":"FunctionDefinition","parameters":{"id":2447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2446,"mutability":"mutable","name":"_eid","nameLocation":"1335:4:13","nodeType":"VariableDeclaration","scope":2451,"src":"1328:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2445,"name":"uint32","nodeType":"ElementaryTypeName","src":"1328:6:13","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"1327:13:13"},"returnParameters":{"id":2450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2449,"mutability":"mutable","name":"peer","nameLocation":"1372:4:13","nodeType":"VariableDeclaration","scope":2451,"src":"1364:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2448,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1364:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1363:14:13"},"scope":2466,"src":"1313:65:13","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":2452,"nodeType":"StructuredDocumentation","src":"1384:224:13","text":" @notice Sets the peer address (OApp instance) for a corresponding endpoint.\n @param _eid The endpoint ID.\n @param _peer The address of the peer to be associated with the corresponding endpoint."},"functionSelector":"3400288b","id":2459,"implemented":false,"kind":"function","modifiers":[],"name":"setPeer","nameLocation":"1622:7:13","nodeType":"FunctionDefinition","parameters":{"id":2457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2454,"mutability":"mutable","name":"_eid","nameLocation":"1637:4:13","nodeType":"VariableDeclaration","scope":2459,"src":"1630:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2453,"name":"uint32","nodeType":"ElementaryTypeName","src":"1630:6:13","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2456,"mutability":"mutable","name":"_peer","nameLocation":"1651:5:13","nodeType":"VariableDeclaration","scope":2459,"src":"1643:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2455,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1643:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1629:28:13"},"returnParameters":{"id":2458,"nodeType":"ParameterList","parameters":[],"src":"1666:0:13"},"scope":2466,"src":"1613:54:13","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":2460,"nodeType":"StructuredDocumentation","src":"1673:134:13","text":" @notice Sets the delegate address for the OApp Core.\n @param _delegate The address of the delegate to be set."},"functionSelector":"ca5eb5e1","id":2465,"implemented":false,"kind":"function","modifiers":[],"name":"setDelegate","nameLocation":"1821:11:13","nodeType":"FunctionDefinition","parameters":{"id":2463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2462,"mutability":"mutable","name":"_delegate","nameLocation":"1841:9:13","nodeType":"VariableDeclaration","scope":2465,"src":"1833:17:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2461,"name":"address","nodeType":"ElementaryTypeName","src":"1833:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1832:19:13"},"returnParameters":{"id":2464,"nodeType":"ParameterList","parameters":[],"src":"1860:0:13"},"scope":2466,"src":"1812:49:13","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":2467,"src":"208:1655:13","usedErrors":[2414,2418,2420,2422],"usedEvents":[2428]}],"src":"33:1831:13"},"id":13},"@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppReceiver.sol":{"ast":{"absolutePath":"@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppReceiver.sol","exportedSymbols":{"ILayerZeroReceiver":[1084],"IOAppReceiver":[2487],"Origin":[886]},"id":2488,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2468,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"32:24:14"},{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol","file":"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol","id":2471,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2488,"sourceUnit":1085,"src":"58:123:14","symbolAliases":[{"foreign":{"id":2469,"name":"ILayerZeroReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1084,"src":"67:18:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":2470,"name":"Origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":886,"src":"87:6:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":2472,"name":"ILayerZeroReceiver","nameLocations":["210:18:14"],"nodeType":"IdentifierPath","referencedDeclaration":1084,"src":"210:18:14"},"id":2473,"nodeType":"InheritanceSpecifier","src":"210:18:14"}],"canonicalName":"IOAppReceiver","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":2487,"linearizedBaseContracts":[2487,1084],"name":"IOAppReceiver","nameLocation":"193:13:14","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":2474,"nodeType":"StructuredDocumentation","src":"235:670:14","text":" @notice Indicates whether an address is an approved composeMsg sender to the Endpoint.\n @param _origin The origin information containing the source endpoint and sender address.\n  - srcEid: The source chain endpoint ID.\n  - sender: The sender address on the src chain.\n  - nonce: The nonce of the message.\n @param _message The lzReceive payload.\n @param _sender The sender address.\n @return isSender Is a valid sender.\n @dev Applications can optionally choose to implement a separate composeMsg sender that is NOT the bridging layer.\n @dev The default sender IS the OAppReceiver implementer."},"functionSelector":"82413eac","id":2486,"implemented":false,"kind":"function","modifiers":[],"name":"isComposeMsgSender","nameLocation":"919:18:14","nodeType":"FunctionDefinition","parameters":{"id":2482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2477,"mutability":"mutable","name":"_origin","nameLocation":"963:7:14","nodeType":"VariableDeclaration","scope":2486,"src":"947:23:14","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$886_calldata_ptr","typeString":"struct Origin"},"typeName":{"id":2476,"nodeType":"UserDefinedTypeName","pathNode":{"id":2475,"name":"Origin","nameLocations":["947:6:14"],"nodeType":"IdentifierPath","referencedDeclaration":886,"src":"947:6:14"},"referencedDeclaration":886,"src":"947:6:14","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$886_storage_ptr","typeString":"struct Origin"}},"visibility":"internal"},{"constant":false,"id":2479,"mutability":"mutable","name":"_message","nameLocation":"995:8:14","nodeType":"VariableDeclaration","scope":2486,"src":"980:23:14","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2478,"name":"bytes","nodeType":"ElementaryTypeName","src":"980:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2481,"mutability":"mutable","name":"_sender","nameLocation":"1021:7:14","nodeType":"VariableDeclaration","scope":2486,"src":"1013:15:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2480,"name":"address","nodeType":"ElementaryTypeName","src":"1013:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"937:97:14"},"returnParameters":{"id":2485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2484,"mutability":"mutable","name":"isSender","nameLocation":"1063:8:14","nodeType":"VariableDeclaration","scope":2486,"src":"1058:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2483,"name":"bool","nodeType":"ElementaryTypeName","src":"1058:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1057:15:14"},"scope":2487,"src":"910:163:14","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":2488,"src":"183:892:14","usedErrors":[],"usedEvents":[]}],"src":"32:1044:14"},"id":14},"@layerzerolabs/oapp-evm/contracts/oapp/libs/OptionsBuilder.sol":{"ast":{"absolutePath":"@layerzerolabs/oapp-evm/contracts/oapp/libs/OptionsBuilder.sol","exportedSymbols":{"BytesLib":[23039],"DVNOptions":[845],"ExecutorOptions":[370],"OptionsBuilder":[2895],"SafeCast":[10771]},"id":2896,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2489,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"33:24:15"},{"absolutePath":"solidity-bytes-utils/contracts/BytesLib.sol","file":"solidity-bytes-utils/contracts/BytesLib.sol","id":2491,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2896,"sourceUnit":23040,"src":"59:71:15","symbolAliases":[{"foreign":{"id":2490,"name":"BytesLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23039,"src":"68:8:15","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/SafeCast.sol","file":"@openzeppelin/contracts/utils/math/SafeCast.sol","id":2493,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2896,"sourceUnit":10772,"src":"131:75:15","symbolAliases":[{"foreign":{"id":2492,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10771,"src":"140:8:15","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/ExecutorOptions.sol","file":"@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/ExecutorOptions.sol","id":2495,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2896,"sourceUnit":371,"src":"208:105:15","symbolAliases":[{"foreign":{"id":2494,"name":"ExecutorOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":370,"src":"217:15:15","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol","file":"@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol","id":2497,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2896,"sourceUnit":846,"src":"314:99:15","symbolAliases":[{"foreign":{"id":2496,"name":"DVNOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":845,"src":"323:10:15","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"OptionsBuilder","contractDependencies":[],"contractKind":"library","documentation":{"id":2498,"nodeType":"StructuredDocumentation","src":"415:99:15","text":" @title OptionsBuilder\n @dev Library for building and encoding various message options."},"fullyImplemented":true,"id":2895,"linearizedBaseContracts":[2895],"name":"OptionsBuilder","nameLocation":"523:14:15","nodeType":"ContractDefinition","nodes":[{"global":false,"id":2501,"libraryName":{"id":2499,"name":"SafeCast","nameLocations":["550:8:15"],"nodeType":"IdentifierPath","referencedDeclaration":10771,"src":"550:8:15"},"nodeType":"UsingForDirective","src":"544:27:15","typeName":{"id":2500,"name":"uint256","nodeType":"ElementaryTypeName","src":"563:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"global":false,"id":2504,"libraryName":{"id":2502,"name":"BytesLib","nameLocations":["582:8:15"],"nodeType":"IdentifierPath","referencedDeclaration":23039,"src":"582:8:15"},"nodeType":"UsingForDirective","src":"576:25:15","typeName":{"id":2503,"name":"bytes","nodeType":"ElementaryTypeName","src":"595:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},{"constant":true,"id":2507,"mutability":"constant","name":"TYPE_1","nameLocation":"667:6:15","nodeType":"VariableDeclaration","scope":2895,"src":"642:35:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2505,"name":"uint16","nodeType":"ElementaryTypeName","src":"642:6:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"31","id":2506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"676:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"constant":true,"id":2510,"mutability":"constant","name":"TYPE_2","nameLocation":"733:6:15","nodeType":"VariableDeclaration","scope":2895,"src":"708:35:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2508,"name":"uint16","nodeType":"ElementaryTypeName","src":"708:6:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"32","id":2509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"742:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"internal"},{"constant":true,"id":2513,"mutability":"constant","name":"TYPE_3","nameLocation":"799:6:15","nodeType":"VariableDeclaration","scope":2895,"src":"774:35:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2511,"name":"uint16","nodeType":"ElementaryTypeName","src":"774:6:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"33","id":2512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"808:1:15","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"visibility":"internal"},{"errorSelector":"3256c04c","id":2519,"name":"InvalidSize","nameLocation":"850:11:15","nodeType":"ErrorDefinition","parameters":{"id":2518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2515,"mutability":"mutable","name":"max","nameLocation":"870:3:15","nodeType":"VariableDeclaration","scope":2519,"src":"862:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2514,"name":"uint256","nodeType":"ElementaryTypeName","src":"862:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2517,"mutability":"mutable","name":"actual","nameLocation":"883:6:15","nodeType":"VariableDeclaration","scope":2519,"src":"875:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2516,"name":"uint256","nodeType":"ElementaryTypeName","src":"875:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"861:29:15"},"src":"844:47:15"},{"errorSelector":"3a51740d","id":2523,"name":"InvalidOptionType","nameLocation":"902:17:15","nodeType":"ErrorDefinition","parameters":{"id":2522,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2521,"mutability":"mutable","name":"optionType","nameLocation":"927:10:15","nodeType":"VariableDeclaration","scope":2523,"src":"920:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2520,"name":"uint16","nodeType":"ElementaryTypeName","src":"920:6:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"919:19:15"},"src":"896:43:15"},{"body":{"id":2542,"nodeType":"Block","src":"1045:110:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":2532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"hexValue":"30","id":2529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1077:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":2527,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2525,"src":"1059:8:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1068:8:15","memberName":"toUint16","nodeType":"MemberAccess","referencedDeclaration":22848,"src":"1059:17:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint16_$attached_to$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,uint256) pure returns (uint16)"}},"id":2530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1059:20:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":2531,"name":"TYPE_3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2513,"src":"1083:6:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1059:30:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2540,"nodeType":"IfStatement","src":"1055:82:15","trueBody":{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":2536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1134:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":2534,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2525,"src":"1116:8:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1125:8:15","memberName":"toUint16","nodeType":"MemberAccess","referencedDeclaration":22848,"src":"1116:17:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint16_$attached_to$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,uint256) pure returns (uint16)"}},"id":2537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1116:20:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":2533,"name":"InvalidOptionType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2523,"src":"1098:17:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint16_$returns$__$","typeString":"function (uint16) pure"}},"id":2538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1098:39:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2539,"nodeType":"RevertStatement","src":"1091:46:15"}},{"id":2541,"nodeType":"PlaceholderStatement","src":"1147:1:15"}]},"id":2543,"name":"onlyType3","nameLocation":"1012:9:15","nodeType":"ModifierDefinition","parameters":{"id":2526,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2525,"mutability":"mutable","name":"_options","nameLocation":"1035:8:15","nodeType":"VariableDeclaration","scope":2543,"src":"1022:21:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2524,"name":"bytes","nodeType":"ElementaryTypeName","src":"1022:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1021:23:15"},"src":"1003:152:15","virtual":false,"visibility":"internal"},{"body":{"id":2554,"nodeType":"Block","src":"1353:48:15","statements":[{"expression":{"arguments":[{"id":2551,"name":"TYPE_3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2513,"src":"1387:6:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"id":2549,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1370:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2550,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1374:12:15","memberName":"encodePacked","nodeType":"MemberAccess","src":"1370:16:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1370:24:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2548,"id":2553,"nodeType":"Return","src":"1363:31:15"}]},"documentation":{"id":2544,"nodeType":"StructuredDocumentation","src":"1161:128:15","text":" @dev Creates a new options container with type 3.\n @return options The newly created options container."},"id":2555,"implemented":true,"kind":"function","modifiers":[],"name":"newOptions","nameLocation":"1303:10:15","nodeType":"FunctionDefinition","parameters":{"id":2545,"nodeType":"ParameterList","parameters":[],"src":"1313:2:15"},"returnParameters":{"id":2548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2547,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2555,"src":"1339:12:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2546,"name":"bytes","nodeType":"ElementaryTypeName","src":"1339:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1338:14:15"},"scope":2895,"src":"1294:107:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2585,"nodeType":"Block","src":"2268:181:15","statements":[{"assignments":[2571],"declarations":[{"constant":false,"id":2571,"mutability":"mutable","name":"option","nameLocation":"2291:6:15","nodeType":"VariableDeclaration","scope":2585,"src":"2278:19:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2570,"name":"bytes","nodeType":"ElementaryTypeName","src":"2278:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2577,"initialValue":{"arguments":[{"id":2574,"name":"_gas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2560,"src":"2338:4:15","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":2575,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2562,"src":"2344:6:15","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":2572,"name":"ExecutorOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":370,"src":"2300:15:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ExecutorOptions_$370_$","typeString":"type(library ExecutorOptions)"}},"id":2573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2316:21:15","memberName":"encodeLzReceiveOption","nodeType":"MemberAccess","referencedDeclaration":297,"src":"2300:37:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint128_$_t_uint128_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint128,uint128) pure returns (bytes memory)"}},"id":2576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2300:51:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2278:73:15"},{"expression":{"arguments":[{"id":2579,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2558,"src":"2386:8:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":2580,"name":"ExecutorOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":370,"src":"2396:15:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ExecutorOptions_$370_$","typeString":"type(library ExecutorOptions)"}},"id":2581,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2412:21:15","memberName":"OPTION_TYPE_LZRECEIVE","nodeType":"MemberAccess","referencedDeclaration":11,"src":"2396:37:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":2582,"name":"option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2571,"src":"2435:6:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2578,"name":"addExecutorOption","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2762,"src":"2368:17:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint8_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,uint8,bytes memory) pure returns (bytes memory)"}},"id":2583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2368:74:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2569,"id":2584,"nodeType":"Return","src":"2361:81:15"}]},"documentation":{"id":2556,"nodeType":"StructuredDocumentation","src":"1407:680:15","text":" @dev Adds an executor LZ receive option to the existing options.\n @param _options The existing options container.\n @param _gas The gasLimit used on the lzReceive() function in the OApp.\n @param _value The msg.value passed to the lzReceive() function in the OApp.\n @return options The updated options container.\n @dev When multiples of this option are added, they are summed by the executor\n eg. if (_gas: 200k, and _value: 1 ether) AND (_gas: 100k, _value: 0.5 ether) are sent in an option to the LayerZeroEndpoint,\n that becomes (300k, 1.5 ether) when the message is executed on the remote lzReceive() function."},"id":2586,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":2565,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2558,"src":"2235:8:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":2566,"kind":"modifierInvocation","modifierName":{"id":2564,"name":"onlyType3","nameLocations":["2225:9:15"],"nodeType":"IdentifierPath","referencedDeclaration":2543,"src":"2225:9:15"},"nodeType":"ModifierInvocation","src":"2225:19:15"}],"name":"addExecutorLzReceiveOption","nameLocation":"2101:26:15","nodeType":"FunctionDefinition","parameters":{"id":2563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2558,"mutability":"mutable","name":"_options","nameLocation":"2150:8:15","nodeType":"VariableDeclaration","scope":2586,"src":"2137:21:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2557,"name":"bytes","nodeType":"ElementaryTypeName","src":"2137:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2560,"mutability":"mutable","name":"_gas","nameLocation":"2176:4:15","nodeType":"VariableDeclaration","scope":2586,"src":"2168:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":2559,"name":"uint128","nodeType":"ElementaryTypeName","src":"2168:7:15","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":2562,"mutability":"mutable","name":"_value","nameLocation":"2198:6:15","nodeType":"VariableDeclaration","scope":2586,"src":"2190:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":2561,"name":"uint128","nodeType":"ElementaryTypeName","src":"2190:7:15","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"2127:83:15"},"returnParameters":{"id":2569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2568,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2586,"src":"2254:12:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2567,"name":"bytes","nodeType":"ElementaryTypeName","src":"2254:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2253:14:15"},"scope":2895,"src":"2092:357:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2616,"nodeType":"Block","src":"3114:190:15","statements":[{"assignments":[2602],"declarations":[{"constant":false,"id":2602,"mutability":"mutable","name":"option","nameLocation":"3137:6:15","nodeType":"VariableDeclaration","scope":2616,"src":"3124:19:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2601,"name":"bytes","nodeType":"ElementaryTypeName","src":"3124:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2608,"initialValue":{"arguments":[{"id":2605,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2591,"src":"3185:7:15","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":2606,"name":"_receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2593,"src":"3194:9:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":2603,"name":"ExecutorOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":370,"src":"3146:15:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ExecutorOptions_$370_$","typeString":"type(library ExecutorOptions)"}},"id":2604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3162:22:15","memberName":"encodeNativeDropOption","nodeType":"MemberAccess","referencedDeclaration":313,"src":"3146:38:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint128_$_t_bytes32_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint128,bytes32) pure returns (bytes memory)"}},"id":2607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3146:58:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3124:80:15"},{"expression":{"arguments":[{"id":2610,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2589,"src":"3239:8:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":2611,"name":"ExecutorOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":370,"src":"3249:15:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ExecutorOptions_$370_$","typeString":"type(library ExecutorOptions)"}},"id":2612,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3265:23:15","memberName":"OPTION_TYPE_NATIVE_DROP","nodeType":"MemberAccess","referencedDeclaration":14,"src":"3249:39:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":2613,"name":"option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2602,"src":"3290:6:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2609,"name":"addExecutorOption","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2762,"src":"3221:17:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint8_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,uint8,bytes memory) pure returns (bytes memory)"}},"id":2614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3221:76:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2600,"id":2615,"nodeType":"Return","src":"3214:83:15"}]},"documentation":{"id":2587,"nodeType":"StructuredDocumentation","src":"2455:471:15","text":" @dev Adds an executor native drop option to the existing options.\n @param _options The existing options container.\n @param _amount The amount for the native value that is airdropped to the 'receiver'.\n @param _receiver The receiver address for the native drop option.\n @return options The updated options container.\n @dev When multiples of this option are added, they are summed by the executor on the remote chain."},"id":2617,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":2596,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2589,"src":"3081:8:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":2597,"kind":"modifierInvocation","modifierName":{"id":2595,"name":"onlyType3","nameLocations":["3071:9:15"],"nodeType":"IdentifierPath","referencedDeclaration":2543,"src":"3071:9:15"},"nodeType":"ModifierInvocation","src":"3071:19:15"}],"name":"addExecutorNativeDropOption","nameLocation":"2940:27:15","nodeType":"FunctionDefinition","parameters":{"id":2594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2589,"mutability":"mutable","name":"_options","nameLocation":"2990:8:15","nodeType":"VariableDeclaration","scope":2617,"src":"2977:21:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2588,"name":"bytes","nodeType":"ElementaryTypeName","src":"2977:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2591,"mutability":"mutable","name":"_amount","nameLocation":"3016:7:15","nodeType":"VariableDeclaration","scope":2617,"src":"3008:15:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":2590,"name":"uint128","nodeType":"ElementaryTypeName","src":"3008:7:15","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":2593,"mutability":"mutable","name":"_receiver","nameLocation":"3041:9:15","nodeType":"VariableDeclaration","scope":2617,"src":"3033:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2592,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3033:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2967:89:15"},"returnParameters":{"id":2600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2599,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2617,"src":"3100:12:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2598,"name":"bytes","nodeType":"ElementaryTypeName","src":"3100:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3099:14:15"},"scope":2895,"src":"2931:373:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2649,"nodeType":"Block","src":"4008:182:15","statements":[{"assignments":[2634],"declarations":[{"constant":false,"id":2634,"mutability":"mutable","name":"option","nameLocation":"4031:6:15","nodeType":"VariableDeclaration","scope":2649,"src":"4018:19:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2633,"name":"bytes","nodeType":"ElementaryTypeName","src":"4018:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2641,"initialValue":{"arguments":[{"id":2637,"name":"_gas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2621,"src":"4075:4:15","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":2638,"name":"_size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2623,"src":"4081:5:15","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":2639,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2625,"src":"4088:6:15","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":2635,"name":"ExecutorOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":370,"src":"4040:15:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ExecutorOptions_$370_$","typeString":"type(library ExecutorOptions)"}},"id":2636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4056:18:15","memberName":"encodeLzReadOption","nodeType":"MemberAccess","referencedDeclaration":369,"src":"4040:34:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint128_$_t_uint32_$_t_uint128_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint128,uint32,uint128) pure returns (bytes memory)"}},"id":2640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4040:55:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4018:77:15"},{"expression":{"arguments":[{"id":2643,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2619,"src":"4130:8:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":2644,"name":"ExecutorOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":370,"src":"4140:15:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ExecutorOptions_$370_$","typeString":"type(library ExecutorOptions)"}},"id":2645,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4156:18:15","memberName":"OPTION_TYPE_LZREAD","nodeType":"MemberAccess","referencedDeclaration":23,"src":"4140:34:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":2646,"name":"option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2634,"src":"4176:6:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2642,"name":"addExecutorOption","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2762,"src":"4112:17:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint8_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,uint8,bytes memory) pure returns (bytes memory)"}},"id":2647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4112:71:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2632,"id":2648,"nodeType":"Return","src":"4105:78:15"}]},"id":2650,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":2628,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2619,"src":"3975:8:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":2629,"kind":"modifierInvocation","modifierName":{"id":2627,"name":"onlyType3","nameLocations":["3965:9:15"],"nodeType":"IdentifierPath","referencedDeclaration":2543,"src":"3965:9:15"},"nodeType":"ModifierInvocation","src":"3965:19:15"}],"name":"addExecutorLzReadOption","nameLocation":"3822:23:15","nodeType":"FunctionDefinition","parameters":{"id":2626,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2619,"mutability":"mutable","name":"_options","nameLocation":"3868:8:15","nodeType":"VariableDeclaration","scope":2650,"src":"3855:21:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2618,"name":"bytes","nodeType":"ElementaryTypeName","src":"3855:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2621,"mutability":"mutable","name":"_gas","nameLocation":"3894:4:15","nodeType":"VariableDeclaration","scope":2650,"src":"3886:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":2620,"name":"uint128","nodeType":"ElementaryTypeName","src":"3886:7:15","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":2623,"mutability":"mutable","name":"_size","nameLocation":"3915:5:15","nodeType":"VariableDeclaration","scope":2650,"src":"3908:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2622,"name":"uint32","nodeType":"ElementaryTypeName","src":"3908:6:15","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2625,"mutability":"mutable","name":"_value","nameLocation":"3938:6:15","nodeType":"VariableDeclaration","scope":2650,"src":"3930:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":2624,"name":"uint128","nodeType":"ElementaryTypeName","src":"3930:7:15","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"3845:105:15"},"returnParameters":{"id":2632,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2631,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2650,"src":"3994:12:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2630,"name":"bytes","nodeType":"ElementaryTypeName","src":"3994:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3993:14:15"},"scope":2895,"src":"3813:377:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2683,"nodeType":"Block","src":"5138:189:15","statements":[{"assignments":[2668],"declarations":[{"constant":false,"id":2668,"mutability":"mutable","name":"option","nameLocation":"5161:6:15","nodeType":"VariableDeclaration","scope":2683,"src":"5148:19:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2667,"name":"bytes","nodeType":"ElementaryTypeName","src":"5148:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2675,"initialValue":{"arguments":[{"id":2671,"name":"_index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2655,"src":"5208:6:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":2672,"name":"_gas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2657,"src":"5216:4:15","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":2673,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2659,"src":"5222:6:15","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":2669,"name":"ExecutorOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":370,"src":"5170:15:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ExecutorOptions_$370_$","typeString":"type(library ExecutorOptions)"}},"id":2670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5186:21:15","memberName":"encodeLzComposeOption","nodeType":"MemberAccess","referencedDeclaration":341,"src":"5170:37:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint16_$_t_uint128_$_t_uint128_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint16,uint128,uint128) pure returns (bytes memory)"}},"id":2674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5170:59:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"5148:81:15"},{"expression":{"arguments":[{"id":2677,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2653,"src":"5264:8:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":2678,"name":"ExecutorOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":370,"src":"5274:15:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ExecutorOptions_$370_$","typeString":"type(library ExecutorOptions)"}},"id":2679,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5290:21:15","memberName":"OPTION_TYPE_LZCOMPOSE","nodeType":"MemberAccess","referencedDeclaration":17,"src":"5274:37:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":2680,"name":"option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2668,"src":"5313:6:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2676,"name":"addExecutorOption","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2762,"src":"5246:17:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint8_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,uint8,bytes memory) pure returns (bytes memory)"}},"id":2681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5246:74:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2666,"id":2682,"nodeType":"Return","src":"5239:81:15"}]},"documentation":{"id":2651,"nodeType":"StructuredDocumentation","src":"4196:738:15","text":" @dev Adds an executor LZ compose option to the existing options.\n @param _options The existing options container.\n @param _index The index for the lzCompose() function call.\n @param _gas The gasLimit for the lzCompose() function call.\n @param _value The msg.value for the lzCompose() function call.\n @return options The updated options container.\n @dev When multiples of this option are added, they are summed PER index by the executor on the remote chain.\n @dev If the OApp sends N lzCompose calls on the remote, you must provide N incremented indexes starting with 0.\n ie. When your remote OApp composes (N = 3) messages, you must set this option for index 0,1,2"},"id":2684,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":2662,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2653,"src":"5105:8:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":2663,"kind":"modifierInvocation","modifierName":{"id":2661,"name":"onlyType3","nameLocations":["5095:9:15"],"nodeType":"IdentifierPath","referencedDeclaration":2543,"src":"5095:9:15"},"nodeType":"ModifierInvocation","src":"5095:19:15"}],"name":"addExecutorLzComposeOption","nameLocation":"4948:26:15","nodeType":"FunctionDefinition","parameters":{"id":2660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2653,"mutability":"mutable","name":"_options","nameLocation":"4997:8:15","nodeType":"VariableDeclaration","scope":2684,"src":"4984:21:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2652,"name":"bytes","nodeType":"ElementaryTypeName","src":"4984:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2655,"mutability":"mutable","name":"_index","nameLocation":"5022:6:15","nodeType":"VariableDeclaration","scope":2684,"src":"5015:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2654,"name":"uint16","nodeType":"ElementaryTypeName","src":"5015:6:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2657,"mutability":"mutable","name":"_gas","nameLocation":"5046:4:15","nodeType":"VariableDeclaration","scope":2684,"src":"5038:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":2656,"name":"uint128","nodeType":"ElementaryTypeName","src":"5038:7:15","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":2659,"mutability":"mutable","name":"_value","nameLocation":"5068:6:15","nodeType":"VariableDeclaration","scope":2684,"src":"5060:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":2658,"name":"uint128","nodeType":"ElementaryTypeName","src":"5060:7:15","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"4974:106:15"},"returnParameters":{"id":2666,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2665,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2684,"src":"5124:12:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2664,"name":"bytes","nodeType":"ElementaryTypeName","src":"5124:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5123:14:15"},"scope":2895,"src":"4939:388:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2705,"nodeType":"Block","src":"5674:109:15","statements":[{"expression":{"arguments":[{"id":2696,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2687,"src":"5709:8:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":2697,"name":"ExecutorOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":370,"src":"5719:15:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ExecutorOptions_$370_$","typeString":"type(library ExecutorOptions)"}},"id":2698,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5735:29:15","memberName":"OPTION_TYPE_ORDERED_EXECUTION","nodeType":"MemberAccess","referencedDeclaration":20,"src":"5719:45:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"hexValue":"","id":2701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5772:2:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":2700,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5766:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":2699,"name":"bytes","nodeType":"ElementaryTypeName","src":"5766:5:15","typeDescriptions":{}}},"id":2702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5766:9:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2695,"name":"addExecutorOption","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2762,"src":"5691:17:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint8_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,uint8,bytes memory) pure returns (bytes memory)"}},"id":2703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5691:85:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2694,"id":2704,"nodeType":"Return","src":"5684:92:15"}]},"documentation":{"id":2685,"nodeType":"StructuredDocumentation","src":"5333:199:15","text":" @dev Adds an executor ordered execution option to the existing options.\n @param _options The existing options container.\n @return options The updated options container."},"id":2706,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":2690,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2687,"src":"5641:8:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":2691,"kind":"modifierInvocation","modifierName":{"id":2689,"name":"onlyType3","nameLocations":["5631:9:15"],"nodeType":"IdentifierPath","referencedDeclaration":2543,"src":"5631:9:15"},"nodeType":"ModifierInvocation","src":"5631:19:15"}],"name":"addExecutorOrderedExecutionOption","nameLocation":"5546:33:15","nodeType":"FunctionDefinition","parameters":{"id":2688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2687,"mutability":"mutable","name":"_options","nameLocation":"5602:8:15","nodeType":"VariableDeclaration","scope":2706,"src":"5589:21:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2686,"name":"bytes","nodeType":"ElementaryTypeName","src":"5589:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5579:37:15"},"returnParameters":{"id":2694,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2693,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2706,"src":"5660:12:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2692,"name":"bytes","nodeType":"ElementaryTypeName","src":"5660:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5659:14:15"},"scope":2895,"src":"5537:246:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2730,"nodeType":"Block","src":"6188:99:15","statements":[{"expression":{"arguments":[{"id":2720,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2709,"src":"6218:8:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":2721,"name":"_dvnIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2711,"src":"6228:7:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"id":2722,"name":"DVNOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":845,"src":"6237:10:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DVNOptions_$845_$","typeString":"type(library DVNOptions)"}},"id":2723,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6248:20:15","memberName":"OPTION_TYPE_PRECRIME","nodeType":"MemberAccess","referencedDeclaration":390,"src":"6237:31:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"hexValue":"","id":2726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6276:2:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":2725,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6270:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":2724,"name":"bytes","nodeType":"ElementaryTypeName","src":"6270:5:15","typeDescriptions":{}}},"id":2727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6270:9:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2719,"name":"addDVNOption","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2796,"src":"6205:12:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint8_$_t_uint8_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,uint8,uint8,bytes memory) pure returns (bytes memory)"}},"id":2728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6205:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2718,"id":2729,"nodeType":"Return","src":"6198:82:15"}]},"documentation":{"id":2707,"nodeType":"StructuredDocumentation","src":"5789:247:15","text":" @dev Adds a DVN pre-crime option to the existing options.\n @param _options The existing options container.\n @param _dvnIdx The DVN index for the pre-crime option.\n @return options The updated options container."},"id":2731,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":2714,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2709,"src":"6155:8:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":2715,"kind":"modifierInvocation","modifierName":{"id":2713,"name":"onlyType3","nameLocations":["6145:9:15"],"nodeType":"IdentifierPath","referencedDeclaration":2543,"src":"6145:9:15"},"nodeType":"ModifierInvocation","src":"6145:19:15"}],"name":"addDVNPreCrimeOption","nameLocation":"6050:20:15","nodeType":"FunctionDefinition","parameters":{"id":2712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2709,"mutability":"mutable","name":"_options","nameLocation":"6093:8:15","nodeType":"VariableDeclaration","scope":2731,"src":"6080:21:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2708,"name":"bytes","nodeType":"ElementaryTypeName","src":"6080:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2711,"mutability":"mutable","name":"_dvnIdx","nameLocation":"6117:7:15","nodeType":"VariableDeclaration","scope":2731,"src":"6111:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2710,"name":"uint8","nodeType":"ElementaryTypeName","src":"6111:5:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"6070:60:15"},"returnParameters":{"id":2718,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2717,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2731,"src":"6174:12:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2716,"name":"bytes","nodeType":"ElementaryTypeName","src":"6174:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6173:14:15"},"scope":2895,"src":"6041:246:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2761,"nodeType":"Block","src":"6780:257:15","statements":[{"expression":{"arguments":[{"id":2748,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2734,"src":"6843:8:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":2749,"name":"ExecutorOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":370,"src":"6869:15:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ExecutorOptions_$370_$","typeString":"type(library ExecutorOptions)"}},"id":2750,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6885:9:15","memberName":"WORKER_ID","nodeType":"MemberAccess","referencedDeclaration":8,"src":"6869:25:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":2756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":2751,"name":"_option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2738,"src":"6912:7:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6920:6:15","memberName":"length","nodeType":"MemberAccess","src":"6912:14:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6927:8:15","memberName":"toUint16","nodeType":"MemberAccess","referencedDeclaration":9983,"src":"6912:23:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint16_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint16)"}},"id":2754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6912:25:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":2755,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6940:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6912:29:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":2757,"name":"_optionType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2736,"src":"6980:11:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":2758,"name":"_option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2738,"src":"7009:7:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2746,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6809:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2747,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6813:12:15","memberName":"encodePacked","nodeType":"MemberAccess","src":"6809:16:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6809:221:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2745,"id":2760,"nodeType":"Return","src":"6790:240:15"}]},"documentation":{"id":2732,"nodeType":"StructuredDocumentation","src":"6293:304:15","text":" @dev Adds an executor option to the existing options.\n @param _options The existing options container.\n @param _optionType The type of the executor option.\n @param _option The encoded data for the executor option.\n @return options The updated options container."},"id":2762,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":2741,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2734,"src":"6747:8:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":2742,"kind":"modifierInvocation","modifierName":{"id":2740,"name":"onlyType3","nameLocations":["6737:9:15"],"nodeType":"IdentifierPath","referencedDeclaration":2543,"src":"6737:9:15"},"nodeType":"ModifierInvocation","src":"6737:19:15"}],"name":"addExecutorOption","nameLocation":"6611:17:15","nodeType":"FunctionDefinition","parameters":{"id":2739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2734,"mutability":"mutable","name":"_options","nameLocation":"6651:8:15","nodeType":"VariableDeclaration","scope":2762,"src":"6638:21:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2733,"name":"bytes","nodeType":"ElementaryTypeName","src":"6638:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2736,"mutability":"mutable","name":"_optionType","nameLocation":"6675:11:15","nodeType":"VariableDeclaration","scope":2762,"src":"6669:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2735,"name":"uint8","nodeType":"ElementaryTypeName","src":"6669:5:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":2738,"mutability":"mutable","name":"_option","nameLocation":"6709:7:15","nodeType":"VariableDeclaration","scope":2762,"src":"6696:20:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2737,"name":"bytes","nodeType":"ElementaryTypeName","src":"6696:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6628:94:15"},"returnParameters":{"id":2745,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2744,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2762,"src":"6766:12:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2743,"name":"bytes","nodeType":"ElementaryTypeName","src":"6766:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6765:14:15"},"scope":2895,"src":"6602:435:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2795,"nodeType":"Block","src":"7588:288:15","statements":[{"expression":{"arguments":[{"id":2781,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2765,"src":"7651:8:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":2782,"name":"DVNOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":845,"src":"7677:10:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DVNOptions_$845_$","typeString":"type(library DVNOptions)"}},"id":2783,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7688:9:15","memberName":"WORKER_ID","nodeType":"MemberAccess","referencedDeclaration":387,"src":"7677:20:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":2789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":2784,"name":"_option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2771,"src":"7715:7:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7723:6:15","memberName":"length","nodeType":"MemberAccess","src":"7715:14:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7730:8:15","memberName":"toUint16","nodeType":"MemberAccess","referencedDeclaration":9983,"src":"7715:23:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint16_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint16)"}},"id":2787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7715:25:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":2788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7743:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"7715:29:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":2790,"name":"_dvnIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2767,"src":"7794:7:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":2791,"name":"_optionType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2769,"src":"7819:11:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":2792,"name":"_option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2771,"src":"7848:7:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2779,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7617:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2780,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7621:12:15","memberName":"encodePacked","nodeType":"MemberAccess","src":"7617:16:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7617:252:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2778,"id":2794,"nodeType":"Return","src":"7598:271:15"}]},"documentation":{"id":2763,"nodeType":"StructuredDocumentation","src":"7043:344:15","text":" @dev Adds a DVN option to the existing options.\n @param _options The existing options container.\n @param _dvnIdx The DVN index for the DVN option.\n @param _optionType The type of the DVN option.\n @param _option The encoded data for the DVN option.\n @return options The updated options container."},"id":2796,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":2774,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2765,"src":"7555:8:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":2775,"kind":"modifierInvocation","modifierName":{"id":2773,"name":"onlyType3","nameLocations":["7545:9:15"],"nodeType":"IdentifierPath","referencedDeclaration":2543,"src":"7545:9:15"},"nodeType":"ModifierInvocation","src":"7545:19:15"}],"name":"addDVNOption","nameLocation":"7401:12:15","nodeType":"FunctionDefinition","parameters":{"id":2772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2765,"mutability":"mutable","name":"_options","nameLocation":"7436:8:15","nodeType":"VariableDeclaration","scope":2796,"src":"7423:21:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2764,"name":"bytes","nodeType":"ElementaryTypeName","src":"7423:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2767,"mutability":"mutable","name":"_dvnIdx","nameLocation":"7460:7:15","nodeType":"VariableDeclaration","scope":2796,"src":"7454:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2766,"name":"uint8","nodeType":"ElementaryTypeName","src":"7454:5:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":2769,"mutability":"mutable","name":"_optionType","nameLocation":"7483:11:15","nodeType":"VariableDeclaration","scope":2796,"src":"7477:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2768,"name":"uint8","nodeType":"ElementaryTypeName","src":"7477:5:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":2771,"mutability":"mutable","name":"_option","nameLocation":"7517:7:15","nodeType":"VariableDeclaration","scope":2796,"src":"7504:20:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2770,"name":"bytes","nodeType":"ElementaryTypeName","src":"7504:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7413:117:15"},"returnParameters":{"id":2778,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2777,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2796,"src":"7574:12:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2776,"name":"bytes","nodeType":"ElementaryTypeName","src":"7574:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7573:14:15"},"scope":2895,"src":"7392:484:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2827,"nodeType":"Block","src":"8165:164:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2804,"name":"_executionGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2799,"src":"8179:13:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":2807,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8200:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":2806,"name":"uint128","nodeType":"ElementaryTypeName","src":"8200:7:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"}],"id":2805,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8195:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":2808,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8195:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint128","typeString":"type(uint128)"}},"id":2809,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8209:3:15","memberName":"max","nodeType":"MemberAccess","src":"8195:17:15","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"8179:33:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2820,"nodeType":"IfStatement","src":"8175:91:15","trueBody":{"errorCall":{"arguments":[{"expression":{"arguments":[{"id":2814,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8238:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":2813,"name":"uint128","nodeType":"ElementaryTypeName","src":"8238:7:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"}],"id":2812,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8233:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":2815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8233:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint128","typeString":"type(uint128)"}},"id":2816,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8247:3:15","memberName":"max","nodeType":"MemberAccess","src":"8233:17:15","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":2817,"name":"_executionGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2799,"src":"8252:13:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2811,"name":"InvalidSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2519,"src":"8221:11:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":2818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8221:45:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2819,"nodeType":"RevertStatement","src":"8214:52:15"}},{"expression":{"arguments":[{"id":2823,"name":"TYPE_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2507,"src":"8300:6:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":2824,"name":"_executionGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2799,"src":"8308:13:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2821,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8283:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2822,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8287:12:15","memberName":"encodePacked","nodeType":"MemberAccess","src":"8283:16:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8283:39:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2803,"id":2826,"nodeType":"Return","src":"8276:46:15"}]},"documentation":{"id":2797,"nodeType":"StructuredDocumentation","src":"7882:184:15","text":" @dev Encodes legacy options of type 1.\n @param _executionGas The gasLimit value passed to lzReceive().\n @return legacyOptions The encoded legacy options."},"id":2828,"implemented":true,"kind":"function","modifiers":[],"name":"encodeLegacyOptionsType1","nameLocation":"8080:24:15","nodeType":"FunctionDefinition","parameters":{"id":2800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2799,"mutability":"mutable","name":"_executionGas","nameLocation":"8113:13:15","nodeType":"VariableDeclaration","scope":2828,"src":"8105:21:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2798,"name":"uint256","nodeType":"ElementaryTypeName","src":"8105:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8104:23:15"},"returnParameters":{"id":2803,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2802,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2828,"src":"8151:12:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2801,"name":"bytes","nodeType":"ElementaryTypeName","src":"8151:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8150:14:15"},"scope":2895,"src":"8071:258:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2893,"nodeType":"Block","src":"8912:368:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2840,"name":"_executionGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2831,"src":"8926:13:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":2843,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8947:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":2842,"name":"uint128","nodeType":"ElementaryTypeName","src":"8947:7:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"}],"id":2841,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8942:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":2844,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8942:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint128","typeString":"type(uint128)"}},"id":2845,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8956:3:15","memberName":"max","nodeType":"MemberAccess","src":"8942:17:15","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"8926:33:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2856,"nodeType":"IfStatement","src":"8922:91:15","trueBody":{"errorCall":{"arguments":[{"expression":{"arguments":[{"id":2850,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8985:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":2849,"name":"uint128","nodeType":"ElementaryTypeName","src":"8985:7:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"}],"id":2848,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8980:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":2851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8980:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint128","typeString":"type(uint128)"}},"id":2852,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8994:3:15","memberName":"max","nodeType":"MemberAccess","src":"8980:17:15","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":2853,"name":"_executionGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2831,"src":"8999:13:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2847,"name":"InvalidSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2519,"src":"8968:11:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":2854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8968:45:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2855,"nodeType":"RevertStatement","src":"8961:52:15"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2857,"name":"_nativeForDst","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2833,"src":"9027:13:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":2860,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9048:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":2859,"name":"uint128","nodeType":"ElementaryTypeName","src":"9048:7:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"}],"id":2858,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"9043:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":2861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9043:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint128","typeString":"type(uint128)"}},"id":2862,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9057:3:15","memberName":"max","nodeType":"MemberAccess","src":"9043:17:15","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"9027:33:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2873,"nodeType":"IfStatement","src":"9023:91:15","trueBody":{"errorCall":{"arguments":[{"expression":{"arguments":[{"id":2867,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9086:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":2866,"name":"uint128","nodeType":"ElementaryTypeName","src":"9086:7:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"}],"id":2865,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"9081:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":2868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9081:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint128","typeString":"type(uint128)"}},"id":2869,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9095:3:15","memberName":"max","nodeType":"MemberAccess","src":"9081:17:15","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":2870,"name":"_nativeForDst","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2833,"src":"9100:13:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2864,"name":"InvalidSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2519,"src":"9069:11:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":2871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9069:45:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2872,"nodeType":"RevertStatement","src":"9062:52:15"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2874,"name":"_receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2835,"src":"9128:9:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9138:6:15","memberName":"length","nodeType":"MemberAccess","src":"9128:16:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3332","id":2876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9147:2:15","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"9128:21:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2884,"nodeType":"IfStatement","src":"9124:67:15","trueBody":{"errorCall":{"arguments":[{"hexValue":"3332","id":2879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9170:2:15","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},{"expression":{"id":2880,"name":"_receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2835,"src":"9174:9:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9184:6:15","memberName":"length","nodeType":"MemberAccess","src":"9174:16:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2878,"name":"InvalidSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2519,"src":"9158:11:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":2882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9158:33:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2883,"nodeType":"RevertStatement","src":"9151:40:15"}},{"expression":{"arguments":[{"id":2887,"name":"TYPE_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2510,"src":"9225:6:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":2888,"name":"_executionGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2831,"src":"9233:13:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2889,"name":"_nativeForDst","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2833,"src":"9248:13:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2890,"name":"_receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2835,"src":"9263:9:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2885,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9208:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2886,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9212:12:15","memberName":"encodePacked","nodeType":"MemberAccess","src":"9208:16:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9208:65:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2839,"id":2892,"nodeType":"Return","src":"9201:72:15"}]},"documentation":{"id":2829,"nodeType":"StructuredDocumentation","src":"8335:332:15","text":" @dev Encodes legacy options of type 2.\n @param _executionGas The gasLimit value passed to lzReceive().\n @param _nativeForDst The amount of native air dropped to the receiver.\n @param _receiver The _nativeForDst receiver address.\n @return legacyOptions The encoded legacy options of type 2."},"id":2894,"implemented":true,"kind":"function","modifiers":[],"name":"encodeLegacyOptionsType2","nameLocation":"8681:24:15","nodeType":"FunctionDefinition","parameters":{"id":2836,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2831,"mutability":"mutable","name":"_executionGas","nameLocation":"8723:13:15","nodeType":"VariableDeclaration","scope":2894,"src":"8715:21:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2830,"name":"uint256","nodeType":"ElementaryTypeName","src":"8715:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2833,"mutability":"mutable","name":"_nativeForDst","nameLocation":"8754:13:15","nodeType":"VariableDeclaration","scope":2894,"src":"8746:21:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2832,"name":"uint256","nodeType":"ElementaryTypeName","src":"8746:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2835,"mutability":"mutable","name":"_receiver","nameLocation":"8790:9:15","nodeType":"VariableDeclaration","scope":2894,"src":"8777:22:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2834,"name":"bytes","nodeType":"ElementaryTypeName","src":"8777:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8705:169:15"},"returnParameters":{"id":2839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2838,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2894,"src":"8898:12:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2837,"name":"bytes","nodeType":"ElementaryTypeName","src":"8898:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8897:14:15"},"scope":2895,"src":"8672:608:15","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":2896,"src":"515:8767:15","usedErrors":[2519,2523],"usedEvents":[]}],"src":"33:9250:15"},"id":15},"@layerzerolabs/solidity-examples/contracts/libraries/BytesLib.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/libraries/BytesLib.sol","exportedSymbols":{"BytesLib":[3228]},"id":3229,"license":"Unlicense","nodeType":"SourceUnit","nodes":[{"id":2897,"literals":["solidity",">=","0.8",".0","<","0.9",".0"],"nodeType":"PragmaDirective","src":"336:31:16"},{"abstract":false,"baseContracts":[],"canonicalName":"BytesLib","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":3228,"linearizedBaseContracts":[3228],"name":"BytesLib","nameLocation":"377:8:16","nodeType":"ContractDefinition","nodes":[{"body":{"id":2912,"nodeType":"Block","src":"494:2865:16","statements":[{"assignments":[2907],"declarations":[{"constant":false,"id":2907,"mutability":"mutable","name":"tempBytes","nameLocation":"517:9:16","nodeType":"VariableDeclaration","scope":2912,"src":"504:22:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2906,"name":"bytes","nodeType":"ElementaryTypeName","src":"504:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2908,"nodeType":"VariableDeclarationStatement","src":"504:22:16"},{"AST":{"nativeSrc":"546:2780:16","nodeType":"YulBlock","src":"546:2780:16","statements":[{"nativeSrc":"690:24:16","nodeType":"YulAssignment","src":"690:24:16","value":{"arguments":[{"kind":"number","nativeSrc":"709:4:16","nodeType":"YulLiteral","src":"709:4:16","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"703:5:16","nodeType":"YulIdentifier","src":"703:5:16"},"nativeSrc":"703:11:16","nodeType":"YulFunctionCall","src":"703:11:16"},"variableNames":[{"name":"tempBytes","nativeSrc":"690:9:16","nodeType":"YulIdentifier","src":"690:9:16"}]},{"nativeSrc":"846:30:16","nodeType":"YulVariableDeclaration","src":"846:30:16","value":{"arguments":[{"name":"_preBytes","nativeSrc":"866:9:16","nodeType":"YulIdentifier","src":"866:9:16"}],"functionName":{"name":"mload","nativeSrc":"860:5:16","nodeType":"YulIdentifier","src":"860:5:16"},"nativeSrc":"860:16:16","nodeType":"YulFunctionCall","src":"860:16:16"},"variables":[{"name":"length","nativeSrc":"850:6:16","nodeType":"YulTypedName","src":"850:6:16","type":""}]},{"expression":{"arguments":[{"name":"tempBytes","nativeSrc":"896:9:16","nodeType":"YulIdentifier","src":"896:9:16"},{"name":"length","nativeSrc":"907:6:16","nodeType":"YulIdentifier","src":"907:6:16"}],"functionName":{"name":"mstore","nativeSrc":"889:6:16","nodeType":"YulIdentifier","src":"889:6:16"},"nativeSrc":"889:25:16","nodeType":"YulFunctionCall","src":"889:25:16"},"nativeSrc":"889:25:16","nodeType":"YulExpressionStatement","src":"889:25:16"},{"nativeSrc":"1124:30:16","nodeType":"YulVariableDeclaration","src":"1124:30:16","value":{"arguments":[{"name":"tempBytes","nativeSrc":"1138:9:16","nodeType":"YulIdentifier","src":"1138:9:16"},{"kind":"number","nativeSrc":"1149:4:16","nodeType":"YulLiteral","src":"1149:4:16","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1134:3:16","nodeType":"YulIdentifier","src":"1134:3:16"},"nativeSrc":"1134:20:16","nodeType":"YulFunctionCall","src":"1134:20:16"},"variables":[{"name":"mc","nativeSrc":"1128:2:16","nodeType":"YulTypedName","src":"1128:2:16","type":""}]},{"nativeSrc":"1279:26:16","nodeType":"YulVariableDeclaration","src":"1279:26:16","value":{"arguments":[{"name":"mc","nativeSrc":"1294:2:16","nodeType":"YulIdentifier","src":"1294:2:16"},{"name":"length","nativeSrc":"1298:6:16","nodeType":"YulIdentifier","src":"1298:6:16"}],"functionName":{"name":"add","nativeSrc":"1290:3:16","nodeType":"YulIdentifier","src":"1290:3:16"},"nativeSrc":"1290:15:16","nodeType":"YulFunctionCall","src":"1290:15:16"},"variables":[{"name":"end","nativeSrc":"1283:3:16","nodeType":"YulTypedName","src":"1283:3:16","type":""}]},{"body":{"nativeSrc":"1682:162:16","nodeType":"YulBlock","src":"1682:162:16","statements":[{"expression":{"arguments":[{"name":"mc","nativeSrc":"1816:2:16","nodeType":"YulIdentifier","src":"1816:2:16"},{"arguments":[{"name":"cc","nativeSrc":"1826:2:16","nodeType":"YulIdentifier","src":"1826:2:16"}],"functionName":{"name":"mload","nativeSrc":"1820:5:16","nodeType":"YulIdentifier","src":"1820:5:16"},"nativeSrc":"1820:9:16","nodeType":"YulFunctionCall","src":"1820:9:16"}],"functionName":{"name":"mstore","nativeSrc":"1809:6:16","nodeType":"YulIdentifier","src":"1809:6:16"},"nativeSrc":"1809:21:16","nodeType":"YulFunctionCall","src":"1809:21:16"},"nativeSrc":"1809:21:16","nodeType":"YulExpressionStatement","src":"1809:21:16"}]},"condition":{"arguments":[{"name":"mc","nativeSrc":"1515:2:16","nodeType":"YulIdentifier","src":"1515:2:16"},{"name":"end","nativeSrc":"1519:3:16","nodeType":"YulIdentifier","src":"1519:3:16"}],"functionName":{"name":"lt","nativeSrc":"1512:2:16","nodeType":"YulIdentifier","src":"1512:2:16"},"nativeSrc":"1512:11:16","nodeType":"YulFunctionCall","src":"1512:11:16"},"nativeSrc":"1319:525:16","nodeType":"YulForLoop","post":{"nativeSrc":"1524:157:16","nodeType":"YulBlock","src":"1524:157:16","statements":[{"nativeSrc":"1612:19:16","nodeType":"YulAssignment","src":"1612:19:16","value":{"arguments":[{"name":"mc","nativeSrc":"1622:2:16","nodeType":"YulIdentifier","src":"1622:2:16"},{"kind":"number","nativeSrc":"1626:4:16","nodeType":"YulLiteral","src":"1626:4:16","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1618:3:16","nodeType":"YulIdentifier","src":"1618:3:16"},"nativeSrc":"1618:13:16","nodeType":"YulFunctionCall","src":"1618:13:16"},"variableNames":[{"name":"mc","nativeSrc":"1612:2:16","nodeType":"YulIdentifier","src":"1612:2:16"}]},{"nativeSrc":"1648:19:16","nodeType":"YulAssignment","src":"1648:19:16","value":{"arguments":[{"name":"cc","nativeSrc":"1658:2:16","nodeType":"YulIdentifier","src":"1658:2:16"},{"kind":"number","nativeSrc":"1662:4:16","nodeType":"YulLiteral","src":"1662:4:16","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1654:3:16","nodeType":"YulIdentifier","src":"1654:3:16"},"nativeSrc":"1654:13:16","nodeType":"YulFunctionCall","src":"1654:13:16"},"variableNames":[{"name":"cc","nativeSrc":"1648:2:16","nodeType":"YulIdentifier","src":"1648:2:16"}]}]},"pre":{"nativeSrc":"1323:188:16","nodeType":"YulBlock","src":"1323:188:16","statements":[{"nativeSrc":"1467:30:16","nodeType":"YulVariableDeclaration","src":"1467:30:16","value":{"arguments":[{"name":"_preBytes","nativeSrc":"1481:9:16","nodeType":"YulIdentifier","src":"1481:9:16"},{"kind":"number","nativeSrc":"1492:4:16","nodeType":"YulLiteral","src":"1492:4:16","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1477:3:16","nodeType":"YulIdentifier","src":"1477:3:16"},"nativeSrc":"1477:20:16","nodeType":"YulFunctionCall","src":"1477:20:16"},"variables":[{"name":"cc","nativeSrc":"1471:2:16","nodeType":"YulTypedName","src":"1471:2:16","type":""}]}]},"src":"1319:525:16"},{"nativeSrc":"2045:27:16","nodeType":"YulAssignment","src":"2045:27:16","value":{"arguments":[{"name":"_postBytes","nativeSrc":"2061:10:16","nodeType":"YulIdentifier","src":"2061:10:16"}],"functionName":{"name":"mload","nativeSrc":"2055:5:16","nodeType":"YulIdentifier","src":"2055:5:16"},"nativeSrc":"2055:17:16","nodeType":"YulFunctionCall","src":"2055:17:16"},"variableNames":[{"name":"length","nativeSrc":"2045:6:16","nodeType":"YulIdentifier","src":"2045:6:16"}]},{"expression":{"arguments":[{"name":"tempBytes","nativeSrc":"2092:9:16","nodeType":"YulIdentifier","src":"2092:9:16"},{"arguments":[{"name":"length","nativeSrc":"2107:6:16","nodeType":"YulIdentifier","src":"2107:6:16"},{"arguments":[{"name":"tempBytes","nativeSrc":"2121:9:16","nodeType":"YulIdentifier","src":"2121:9:16"}],"functionName":{"name":"mload","nativeSrc":"2115:5:16","nodeType":"YulIdentifier","src":"2115:5:16"},"nativeSrc":"2115:16:16","nodeType":"YulFunctionCall","src":"2115:16:16"}],"functionName":{"name":"add","nativeSrc":"2103:3:16","nodeType":"YulIdentifier","src":"2103:3:16"},"nativeSrc":"2103:29:16","nodeType":"YulFunctionCall","src":"2103:29:16"}],"functionName":{"name":"mstore","nativeSrc":"2085:6:16","nodeType":"YulIdentifier","src":"2085:6:16"},"nativeSrc":"2085:48:16","nodeType":"YulFunctionCall","src":"2085:48:16"},"nativeSrc":"2085:48:16","nodeType":"YulExpressionStatement","src":"2085:48:16"},{"nativeSrc":"2271:9:16","nodeType":"YulAssignment","src":"2271:9:16","value":{"name":"end","nativeSrc":"2277:3:16","nodeType":"YulIdentifier","src":"2277:3:16"},"variableNames":[{"name":"mc","nativeSrc":"2271:2:16","nodeType":"YulIdentifier","src":"2271:2:16"}]},{"nativeSrc":"2407:22:16","nodeType":"YulAssignment","src":"2407:22:16","value":{"arguments":[{"name":"mc","nativeSrc":"2418:2:16","nodeType":"YulIdentifier","src":"2418:2:16"},{"name":"length","nativeSrc":"2422:6:16","nodeType":"YulIdentifier","src":"2422:6:16"}],"functionName":{"name":"add","nativeSrc":"2414:3:16","nodeType":"YulIdentifier","src":"2414:3:16"},"nativeSrc":"2414:15:16","nodeType":"YulFunctionCall","src":"2414:15:16"},"variableNames":[{"name":"end","nativeSrc":"2407:3:16","nodeType":"YulIdentifier","src":"2407:3:16"}]},{"body":{"nativeSrc":"2611:53:16","nodeType":"YulBlock","src":"2611:53:16","statements":[{"expression":{"arguments":[{"name":"mc","nativeSrc":"2636:2:16","nodeType":"YulIdentifier","src":"2636:2:16"},{"arguments":[{"name":"cc","nativeSrc":"2646:2:16","nodeType":"YulIdentifier","src":"2646:2:16"}],"functionName":{"name":"mload","nativeSrc":"2640:5:16","nodeType":"YulIdentifier","src":"2640:5:16"},"nativeSrc":"2640:9:16","nodeType":"YulFunctionCall","src":"2640:9:16"}],"functionName":{"name":"mstore","nativeSrc":"2629:6:16","nodeType":"YulIdentifier","src":"2629:6:16"},"nativeSrc":"2629:21:16","nodeType":"YulFunctionCall","src":"2629:21:16"},"nativeSrc":"2629:21:16","nodeType":"YulExpressionStatement","src":"2629:21:16"}]},"condition":{"arguments":[{"name":"mc","nativeSrc":"2514:2:16","nodeType":"YulIdentifier","src":"2514:2:16"},{"name":"end","nativeSrc":"2518:3:16","nodeType":"YulIdentifier","src":"2518:3:16"}],"functionName":{"name":"lt","nativeSrc":"2511:2:16","nodeType":"YulIdentifier","src":"2511:2:16"},"nativeSrc":"2511:11:16","nodeType":"YulFunctionCall","src":"2511:11:16"},"nativeSrc":"2443:221:16","nodeType":"YulForLoop","post":{"nativeSrc":"2523:87:16","nodeType":"YulBlock","src":"2523:87:16","statements":[{"nativeSrc":"2541:19:16","nodeType":"YulAssignment","src":"2541:19:16","value":{"arguments":[{"name":"mc","nativeSrc":"2551:2:16","nodeType":"YulIdentifier","src":"2551:2:16"},{"kind":"number","nativeSrc":"2555:4:16","nodeType":"YulLiteral","src":"2555:4:16","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2547:3:16","nodeType":"YulIdentifier","src":"2547:3:16"},"nativeSrc":"2547:13:16","nodeType":"YulFunctionCall","src":"2547:13:16"},"variableNames":[{"name":"mc","nativeSrc":"2541:2:16","nodeType":"YulIdentifier","src":"2541:2:16"}]},{"nativeSrc":"2577:19:16","nodeType":"YulAssignment","src":"2577:19:16","value":{"arguments":[{"name":"cc","nativeSrc":"2587:2:16","nodeType":"YulIdentifier","src":"2587:2:16"},{"kind":"number","nativeSrc":"2591:4:16","nodeType":"YulLiteral","src":"2591:4:16","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2583:3:16","nodeType":"YulIdentifier","src":"2583:3:16"},"nativeSrc":"2583:13:16","nodeType":"YulFunctionCall","src":"2583:13:16"},"variableNames":[{"name":"cc","nativeSrc":"2577:2:16","nodeType":"YulIdentifier","src":"2577:2:16"}]}]},"pre":{"nativeSrc":"2447:63:16","nodeType":"YulBlock","src":"2447:63:16","statements":[{"nativeSrc":"2465:31:16","nodeType":"YulVariableDeclaration","src":"2465:31:16","value":{"arguments":[{"name":"_postBytes","nativeSrc":"2479:10:16","nodeType":"YulIdentifier","src":"2479:10:16"},{"kind":"number","nativeSrc":"2491:4:16","nodeType":"YulLiteral","src":"2491:4:16","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2475:3:16","nodeType":"YulIdentifier","src":"2475:3:16"},"nativeSrc":"2475:21:16","nodeType":"YulFunctionCall","src":"2475:21:16"},"variables":[{"name":"cc","nativeSrc":"2469:2:16","nodeType":"YulTypedName","src":"2469:2:16","type":""}]}]},"src":"2443:221:16"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3113:4:16","nodeType":"YulLiteral","src":"3113:4:16","type":"","value":"0x40"},{"arguments":[{"arguments":[{"arguments":[{"name":"end","nativeSrc":"3168:3:16","nodeType":"YulIdentifier","src":"3168:3:16"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"3184:6:16","nodeType":"YulIdentifier","src":"3184:6:16"},{"arguments":[{"name":"_preBytes","nativeSrc":"3198:9:16","nodeType":"YulIdentifier","src":"3198:9:16"}],"functionName":{"name":"mload","nativeSrc":"3192:5:16","nodeType":"YulIdentifier","src":"3192:5:16"},"nativeSrc":"3192:16:16","nodeType":"YulFunctionCall","src":"3192:16:16"}],"functionName":{"name":"add","nativeSrc":"3180:3:16","nodeType":"YulIdentifier","src":"3180:3:16"},"nativeSrc":"3180:29:16","nodeType":"YulFunctionCall","src":"3180:29:16"}],"functionName":{"name":"iszero","nativeSrc":"3173:6:16","nodeType":"YulIdentifier","src":"3173:6:16"},"nativeSrc":"3173:37:16","nodeType":"YulFunctionCall","src":"3173:37:16"}],"functionName":{"name":"add","nativeSrc":"3164:3:16","nodeType":"YulIdentifier","src":"3164:3:16"},"nativeSrc":"3164:47:16","nodeType":"YulFunctionCall","src":"3164:47:16"},{"kind":"number","nativeSrc":"3213:2:16","nodeType":"YulLiteral","src":"3213:2:16","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"3160:3:16","nodeType":"YulIdentifier","src":"3160:3:16"},"nativeSrc":"3160:56:16","nodeType":"YulFunctionCall","src":"3160:56:16"},{"arguments":[{"kind":"number","nativeSrc":"3242:2:16","nodeType":"YulLiteral","src":"3242:2:16","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"3238:3:16","nodeType":"YulIdentifier","src":"3238:3:16"},"nativeSrc":"3238:7:16","nodeType":"YulFunctionCall","src":"3238:7:16"}],"functionName":{"name":"and","nativeSrc":"3135:3:16","nodeType":"YulIdentifier","src":"3135:3:16"},"nativeSrc":"3135:167:16","nodeType":"YulFunctionCall","src":"3135:167:16"}],"functionName":{"name":"mstore","nativeSrc":"3089:6:16","nodeType":"YulIdentifier","src":"3089:6:16"},"nativeSrc":"3089:227:16","nodeType":"YulFunctionCall","src":"3089:227:16"},"nativeSrc":"3089:227:16","nodeType":"YulExpressionStatement","src":"3089:227:16"}]},"evmVersion":"paris","externalReferences":[{"declaration":2901,"isOffset":false,"isSlot":false,"src":"2061:10:16","valueSize":1},{"declaration":2901,"isOffset":false,"isSlot":false,"src":"2479:10:16","valueSize":1},{"declaration":2899,"isOffset":false,"isSlot":false,"src":"1481:9:16","valueSize":1},{"declaration":2899,"isOffset":false,"isSlot":false,"src":"3198:9:16","valueSize":1},{"declaration":2899,"isOffset":false,"isSlot":false,"src":"866:9:16","valueSize":1},{"declaration":2907,"isOffset":false,"isSlot":false,"src":"1138:9:16","valueSize":1},{"declaration":2907,"isOffset":false,"isSlot":false,"src":"2092:9:16","valueSize":1},{"declaration":2907,"isOffset":false,"isSlot":false,"src":"2121:9:16","valueSize":1},{"declaration":2907,"isOffset":false,"isSlot":false,"src":"690:9:16","valueSize":1},{"declaration":2907,"isOffset":false,"isSlot":false,"src":"896:9:16","valueSize":1}],"id":2909,"nodeType":"InlineAssembly","src":"537:2789:16"},{"expression":{"id":2910,"name":"tempBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2907,"src":"3343:9:16","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2905,"id":2911,"nodeType":"Return","src":"3336:16:16"}]},"id":2913,"implemented":true,"kind":"function","modifiers":[],"name":"concat","nameLocation":"401:6:16","nodeType":"FunctionDefinition","parameters":{"id":2902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2899,"mutability":"mutable","name":"_preBytes","nameLocation":"421:9:16","nodeType":"VariableDeclaration","scope":2913,"src":"408:22:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2898,"name":"bytes","nodeType":"ElementaryTypeName","src":"408:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2901,"mutability":"mutable","name":"_postBytes","nameLocation":"445:10:16","nodeType":"VariableDeclaration","scope":2913,"src":"432:23:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2900,"name":"bytes","nodeType":"ElementaryTypeName","src":"432:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"407:49:16"},"returnParameters":{"id":2905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2904,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2913,"src":"480:12:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2903,"name":"bytes","nodeType":"ElementaryTypeName","src":"480:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"479:14:16"},"scope":3228,"src":"392:2967:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2921,"nodeType":"Block","src":"3447:5805:16","statements":[{"AST":{"nativeSrc":"3466:5780:16","nodeType":"YulBlock","src":"3466:5780:16","statements":[{"nativeSrc":"3689:34:16","nodeType":"YulVariableDeclaration","src":"3689:34:16","value":{"arguments":[{"name":"_preBytes.slot","nativeSrc":"3708:14:16","nodeType":"YulIdentifier","src":"3708:14:16"}],"functionName":{"name":"sload","nativeSrc":"3702:5:16","nodeType":"YulIdentifier","src":"3702:5:16"},"nativeSrc":"3702:21:16","nodeType":"YulFunctionCall","src":"3702:21:16"},"variables":[{"name":"fslot","nativeSrc":"3693:5:16","nodeType":"YulTypedName","src":"3693:5:16","type":""}]},{"nativeSrc":"4216:76:16","nodeType":"YulVariableDeclaration","src":"4216:76:16","value":{"arguments":[{"arguments":[{"name":"fslot","nativeSrc":"4239:5:16","nodeType":"YulIdentifier","src":"4239:5:16"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"4254:5:16","nodeType":"YulLiteral","src":"4254:5:16","type":"","value":"0x100"},{"arguments":[{"arguments":[{"name":"fslot","nativeSrc":"4272:5:16","nodeType":"YulIdentifier","src":"4272:5:16"},{"kind":"number","nativeSrc":"4279:1:16","nodeType":"YulLiteral","src":"4279:1:16","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"4268:3:16","nodeType":"YulIdentifier","src":"4268:3:16"},"nativeSrc":"4268:13:16","nodeType":"YulFunctionCall","src":"4268:13:16"}],"functionName":{"name":"iszero","nativeSrc":"4261:6:16","nodeType":"YulIdentifier","src":"4261:6:16"},"nativeSrc":"4261:21:16","nodeType":"YulFunctionCall","src":"4261:21:16"}],"functionName":{"name":"mul","nativeSrc":"4250:3:16","nodeType":"YulIdentifier","src":"4250:3:16"},"nativeSrc":"4250:33:16","nodeType":"YulFunctionCall","src":"4250:33:16"},{"kind":"number","nativeSrc":"4285:1:16","nodeType":"YulLiteral","src":"4285:1:16","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"4246:3:16","nodeType":"YulIdentifier","src":"4246:3:16"},"nativeSrc":"4246:41:16","nodeType":"YulFunctionCall","src":"4246:41:16"}],"functionName":{"name":"and","nativeSrc":"4235:3:16","nodeType":"YulIdentifier","src":"4235:3:16"},"nativeSrc":"4235:53:16","nodeType":"YulFunctionCall","src":"4235:53:16"},{"kind":"number","nativeSrc":"4290:1:16","nodeType":"YulLiteral","src":"4290:1:16","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"4231:3:16","nodeType":"YulIdentifier","src":"4231:3:16"},"nativeSrc":"4231:61:16","nodeType":"YulFunctionCall","src":"4231:61:16"},"variables":[{"name":"slength","nativeSrc":"4220:7:16","nodeType":"YulTypedName","src":"4220:7:16","type":""}]},{"nativeSrc":"4305:32:16","nodeType":"YulVariableDeclaration","src":"4305:32:16","value":{"arguments":[{"name":"_postBytes","nativeSrc":"4326:10:16","nodeType":"YulIdentifier","src":"4326:10:16"}],"functionName":{"name":"mload","nativeSrc":"4320:5:16","nodeType":"YulIdentifier","src":"4320:5:16"},"nativeSrc":"4320:17:16","nodeType":"YulFunctionCall","src":"4320:17:16"},"variables":[{"name":"mlength","nativeSrc":"4309:7:16","nodeType":"YulTypedName","src":"4309:7:16","type":""}]},{"nativeSrc":"4350:38:16","nodeType":"YulVariableDeclaration","src":"4350:38:16","value":{"arguments":[{"name":"slength","nativeSrc":"4371:7:16","nodeType":"YulIdentifier","src":"4371:7:16"},{"name":"mlength","nativeSrc":"4380:7:16","nodeType":"YulIdentifier","src":"4380:7:16"}],"functionName":{"name":"add","nativeSrc":"4367:3:16","nodeType":"YulIdentifier","src":"4367:3:16"},"nativeSrc":"4367:21:16","nodeType":"YulFunctionCall","src":"4367:21:16"},"variables":[{"name":"newlength","nativeSrc":"4354:9:16","nodeType":"YulTypedName","src":"4354:9:16","type":""}]},{"cases":[{"body":{"nativeSrc":"4721:1485:16","nodeType":"YulBlock","src":"4721:1485:16","statements":[{"expression":{"arguments":[{"name":"_preBytes.slot","nativeSrc":"5002:14:16","nodeType":"YulIdentifier","src":"5002:14:16"},{"arguments":[{"name":"fslot","nativeSrc":"5314:5:16","nodeType":"YulIdentifier","src":"5314:5:16"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_postBytes","nativeSrc":"5532:10:16","nodeType":"YulIdentifier","src":"5532:10:16"},{"kind":"number","nativeSrc":"5544:4:16","nodeType":"YulLiteral","src":"5544:4:16","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5528:3:16","nodeType":"YulIdentifier","src":"5528:3:16"},"nativeSrc":"5528:21:16","nodeType":"YulFunctionCall","src":"5528:21:16"}],"functionName":{"name":"mload","nativeSrc":"5522:5:16","nodeType":"YulIdentifier","src":"5522:5:16"},"nativeSrc":"5522:28:16","nodeType":"YulFunctionCall","src":"5522:28:16"},{"arguments":[{"kind":"number","nativeSrc":"5659:5:16","nodeType":"YulLiteral","src":"5659:5:16","type":"","value":"0x100"},{"arguments":[{"kind":"number","nativeSrc":"5670:2:16","nodeType":"YulLiteral","src":"5670:2:16","type":"","value":"32"},{"name":"mlength","nativeSrc":"5674:7:16","nodeType":"YulIdentifier","src":"5674:7:16"}],"functionName":{"name":"sub","nativeSrc":"5666:3:16","nodeType":"YulIdentifier","src":"5666:3:16"},"nativeSrc":"5666:16:16","nodeType":"YulFunctionCall","src":"5666:16:16"}],"functionName":{"name":"exp","nativeSrc":"5655:3:16","nodeType":"YulIdentifier","src":"5655:3:16"},"nativeSrc":"5655:28:16","nodeType":"YulFunctionCall","src":"5655:28:16"}],"functionName":{"name":"div","nativeSrc":"5415:3:16","nodeType":"YulIdentifier","src":"5415:3:16"},"nativeSrc":"5415:302:16","nodeType":"YulFunctionCall","src":"5415:302:16"},{"arguments":[{"kind":"number","nativeSrc":"5906:5:16","nodeType":"YulLiteral","src":"5906:5:16","type":"","value":"0x100"},{"arguments":[{"kind":"number","nativeSrc":"5917:2:16","nodeType":"YulLiteral","src":"5917:2:16","type":"","value":"32"},{"name":"newlength","nativeSrc":"5921:9:16","nodeType":"YulIdentifier","src":"5921:9:16"}],"functionName":{"name":"sub","nativeSrc":"5913:3:16","nodeType":"YulIdentifier","src":"5913:3:16"},"nativeSrc":"5913:18:16","nodeType":"YulFunctionCall","src":"5913:18:16"}],"functionName":{"name":"exp","nativeSrc":"5902:3:16","nodeType":"YulIdentifier","src":"5902:3:16"},"nativeSrc":"5902:30:16","nodeType":"YulFunctionCall","src":"5902:30:16"}],"functionName":{"name":"mul","nativeSrc":"5378:3:16","nodeType":"YulIdentifier","src":"5378:3:16"},"nativeSrc":"5378:584:16","nodeType":"YulFunctionCall","src":"5378:584:16"},{"arguments":[{"name":"mlength","nativeSrc":"6115:7:16","nodeType":"YulIdentifier","src":"6115:7:16"},{"kind":"number","nativeSrc":"6124:1:16","nodeType":"YulLiteral","src":"6124:1:16","type":"","value":"2"}],"functionName":{"name":"mul","nativeSrc":"6111:3:16","nodeType":"YulIdentifier","src":"6111:3:16"},"nativeSrc":"6111:15:16","nodeType":"YulFunctionCall","src":"6111:15:16"}],"functionName":{"name":"add","nativeSrc":"5345:3:16","nodeType":"YulIdentifier","src":"5345:3:16"},"nativeSrc":"5345:807:16","nodeType":"YulFunctionCall","src":"5345:807:16"}],"functionName":{"name":"add","nativeSrc":"5145:3:16","nodeType":"YulIdentifier","src":"5145:3:16"},"nativeSrc":"5145:1029:16","nodeType":"YulFunctionCall","src":"5145:1029:16"}],"functionName":{"name":"sstore","nativeSrc":"4974:6:16","nodeType":"YulIdentifier","src":"4974:6:16"},"nativeSrc":"4974:1218:16","nodeType":"YulFunctionCall","src":"4974:1218:16"},"nativeSrc":"4974:1218:16","nodeType":"YulExpressionStatement","src":"4974:1218:16"}]},"nativeSrc":"4714:1492:16","nodeType":"YulCase","src":"4714:1492:16","value":{"kind":"number","nativeSrc":"4719:1:16","nodeType":"YulLiteral","src":"4719:1:16","type":"","value":"2"}},{"body":{"nativeSrc":"6226:1725:16","nodeType":"YulBlock","src":"6226:1725:16","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6435:3:16","nodeType":"YulLiteral","src":"6435:3:16","type":"","value":"0x0"},{"name":"_preBytes.slot","nativeSrc":"6440:14:16","nodeType":"YulIdentifier","src":"6440:14:16"}],"functionName":{"name":"mstore","nativeSrc":"6428:6:16","nodeType":"YulIdentifier","src":"6428:6:16"},"nativeSrc":"6428:27:16","nodeType":"YulFunctionCall","src":"6428:27:16"},"nativeSrc":"6428:27:16","nodeType":"YulExpressionStatement","src":"6428:27:16"},{"nativeSrc":"6472:53:16","nodeType":"YulVariableDeclaration","src":"6472:53:16","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"6496:3:16","nodeType":"YulLiteral","src":"6496:3:16","type":"","value":"0x0"},{"kind":"number","nativeSrc":"6501:4:16","nodeType":"YulLiteral","src":"6501:4:16","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"6486:9:16","nodeType":"YulIdentifier","src":"6486:9:16"},"nativeSrc":"6486:20:16","nodeType":"YulFunctionCall","src":"6486:20:16"},{"arguments":[{"name":"slength","nativeSrc":"6512:7:16","nodeType":"YulIdentifier","src":"6512:7:16"},{"kind":"number","nativeSrc":"6521:2:16","nodeType":"YulLiteral","src":"6521:2:16","type":"","value":"32"}],"functionName":{"name":"div","nativeSrc":"6508:3:16","nodeType":"YulIdentifier","src":"6508:3:16"},"nativeSrc":"6508:16:16","nodeType":"YulFunctionCall","src":"6508:16:16"}],"functionName":{"name":"add","nativeSrc":"6482:3:16","nodeType":"YulIdentifier","src":"6482:3:16"},"nativeSrc":"6482:43:16","nodeType":"YulFunctionCall","src":"6482:43:16"},"variables":[{"name":"sc","nativeSrc":"6476:2:16","nodeType":"YulTypedName","src":"6476:2:16","type":""}]},{"expression":{"arguments":[{"name":"_preBytes.slot","nativeSrc":"6585:14:16","nodeType":"YulIdentifier","src":"6585:14:16"},{"arguments":[{"arguments":[{"name":"newlength","nativeSrc":"6609:9:16","nodeType":"YulIdentifier","src":"6609:9:16"},{"kind":"number","nativeSrc":"6620:1:16","nodeType":"YulLiteral","src":"6620:1:16","type":"","value":"2"}],"functionName":{"name":"mul","nativeSrc":"6605:3:16","nodeType":"YulIdentifier","src":"6605:3:16"},"nativeSrc":"6605:17:16","nodeType":"YulFunctionCall","src":"6605:17:16"},{"kind":"number","nativeSrc":"6624:1:16","nodeType":"YulLiteral","src":"6624:1:16","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"6601:3:16","nodeType":"YulIdentifier","src":"6601:3:16"},"nativeSrc":"6601:25:16","nodeType":"YulFunctionCall","src":"6601:25:16"}],"functionName":{"name":"sstore","nativeSrc":"6578:6:16","nodeType":"YulIdentifier","src":"6578:6:16"},"nativeSrc":"6578:49:16","nodeType":"YulFunctionCall","src":"6578:49:16"},"nativeSrc":"6578:49:16","nodeType":"YulExpressionStatement","src":"6578:49:16"},{"nativeSrc":"7215:30:16","nodeType":"YulVariableDeclaration","src":"7215:30:16","value":{"arguments":[{"kind":"number","nativeSrc":"7233:2:16","nodeType":"YulLiteral","src":"7233:2:16","type":"","value":"32"},{"name":"slength","nativeSrc":"7237:7:16","nodeType":"YulIdentifier","src":"7237:7:16"}],"functionName":{"name":"sub","nativeSrc":"7229:3:16","nodeType":"YulIdentifier","src":"7229:3:16"},"nativeSrc":"7229:16:16","nodeType":"YulFunctionCall","src":"7229:16:16"},"variables":[{"name":"submod","nativeSrc":"7219:6:16","nodeType":"YulTypedName","src":"7219:6:16","type":""}]},{"nativeSrc":"7262:33:16","nodeType":"YulVariableDeclaration","src":"7262:33:16","value":{"arguments":[{"name":"_postBytes","nativeSrc":"7276:10:16","nodeType":"YulIdentifier","src":"7276:10:16"},{"name":"submod","nativeSrc":"7288:6:16","nodeType":"YulIdentifier","src":"7288:6:16"}],"functionName":{"name":"add","nativeSrc":"7272:3:16","nodeType":"YulIdentifier","src":"7272:3:16"},"nativeSrc":"7272:23:16","nodeType":"YulFunctionCall","src":"7272:23:16"},"variables":[{"name":"mc","nativeSrc":"7266:2:16","nodeType":"YulTypedName","src":"7266:2:16","type":""}]},{"nativeSrc":"7312:35:16","nodeType":"YulVariableDeclaration","src":"7312:35:16","value":{"arguments":[{"name":"_postBytes","nativeSrc":"7327:10:16","nodeType":"YulIdentifier","src":"7327:10:16"},{"name":"mlength","nativeSrc":"7339:7:16","nodeType":"YulIdentifier","src":"7339:7:16"}],"functionName":{"name":"add","nativeSrc":"7323:3:16","nodeType":"YulIdentifier","src":"7323:3:16"},"nativeSrc":"7323:24:16","nodeType":"YulFunctionCall","src":"7323:24:16"},"variables":[{"name":"end","nativeSrc":"7316:3:16","nodeType":"YulTypedName","src":"7316:3:16","type":""}]},{"nativeSrc":"7364:38:16","nodeType":"YulVariableDeclaration","src":"7364:38:16","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7384:5:16","nodeType":"YulLiteral","src":"7384:5:16","type":"","value":"0x100"},{"name":"submod","nativeSrc":"7391:6:16","nodeType":"YulIdentifier","src":"7391:6:16"}],"functionName":{"name":"exp","nativeSrc":"7380:3:16","nodeType":"YulIdentifier","src":"7380:3:16"},"nativeSrc":"7380:18:16","nodeType":"YulFunctionCall","src":"7380:18:16"},{"kind":"number","nativeSrc":"7400:1:16","nodeType":"YulLiteral","src":"7400:1:16","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"7376:3:16","nodeType":"YulIdentifier","src":"7376:3:16"},"nativeSrc":"7376:26:16","nodeType":"YulFunctionCall","src":"7376:26:16"},"variables":[{"name":"mask","nativeSrc":"7368:4:16","nodeType":"YulTypedName","src":"7368:4:16","type":""}]},{"expression":{"arguments":[{"name":"sc","nativeSrc":"7427:2:16","nodeType":"YulIdentifier","src":"7427:2:16"},{"arguments":[{"arguments":[{"name":"fslot","nativeSrc":"7439:5:16","nodeType":"YulIdentifier","src":"7439:5:16"},{"kind":"number","nativeSrc":"7446:66:16","nodeType":"YulLiteral","src":"7446:66:16","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00"}],"functionName":{"name":"and","nativeSrc":"7435:3:16","nodeType":"YulIdentifier","src":"7435:3:16"},"nativeSrc":"7435:78:16","nodeType":"YulFunctionCall","src":"7435:78:16"},{"arguments":[{"arguments":[{"name":"mc","nativeSrc":"7525:2:16","nodeType":"YulIdentifier","src":"7525:2:16"}],"functionName":{"name":"mload","nativeSrc":"7519:5:16","nodeType":"YulIdentifier","src":"7519:5:16"},"nativeSrc":"7519:9:16","nodeType":"YulFunctionCall","src":"7519:9:16"},{"name":"mask","nativeSrc":"7530:4:16","nodeType":"YulIdentifier","src":"7530:4:16"}],"functionName":{"name":"and","nativeSrc":"7515:3:16","nodeType":"YulIdentifier","src":"7515:3:16"},"nativeSrc":"7515:20:16","nodeType":"YulFunctionCall","src":"7515:20:16"}],"functionName":{"name":"add","nativeSrc":"7431:3:16","nodeType":"YulIdentifier","src":"7431:3:16"},"nativeSrc":"7431:105:16","nodeType":"YulFunctionCall","src":"7431:105:16"}],"functionName":{"name":"sstore","nativeSrc":"7420:6:16","nodeType":"YulIdentifier","src":"7420:6:16"},"nativeSrc":"7420:117:16","nodeType":"YulFunctionCall","src":"7420:117:16"},"nativeSrc":"7420:117:16","nodeType":"YulExpressionStatement","src":"7420:117:16"},{"body":{"nativeSrc":"7765:61:16","nodeType":"YulBlock","src":"7765:61:16","statements":[{"expression":{"arguments":[{"name":"sc","nativeSrc":"7794:2:16","nodeType":"YulIdentifier","src":"7794:2:16"},{"arguments":[{"name":"mc","nativeSrc":"7804:2:16","nodeType":"YulIdentifier","src":"7804:2:16"}],"functionName":{"name":"mload","nativeSrc":"7798:5:16","nodeType":"YulIdentifier","src":"7798:5:16"},"nativeSrc":"7798:9:16","nodeType":"YulFunctionCall","src":"7798:9:16"}],"functionName":{"name":"sstore","nativeSrc":"7787:6:16","nodeType":"YulIdentifier","src":"7787:6:16"},"nativeSrc":"7787:21:16","nodeType":"YulFunctionCall","src":"7787:21:16"},"nativeSrc":"7787:21:16","nodeType":"YulExpressionStatement","src":"7787:21:16"}]},"condition":{"arguments":[{"name":"mc","nativeSrc":"7659:2:16","nodeType":"YulIdentifier","src":"7659:2:16"},{"name":"end","nativeSrc":"7663:3:16","nodeType":"YulIdentifier","src":"7663:3:16"}],"functionName":{"name":"lt","nativeSrc":"7656:2:16","nodeType":"YulIdentifier","src":"7656:2:16"},"nativeSrc":"7656:11:16","nodeType":"YulFunctionCall","src":"7656:11:16"},"nativeSrc":"7555:271:16","nodeType":"YulForLoop","post":{"nativeSrc":"7668:96:16","nodeType":"YulBlock","src":"7668:96:16","statements":[{"nativeSrc":"7690:16:16","nodeType":"YulAssignment","src":"7690:16:16","value":{"arguments":[{"name":"sc","nativeSrc":"7700:2:16","nodeType":"YulIdentifier","src":"7700:2:16"},{"kind":"number","nativeSrc":"7704:1:16","nodeType":"YulLiteral","src":"7704:1:16","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"7696:3:16","nodeType":"YulIdentifier","src":"7696:3:16"},"nativeSrc":"7696:10:16","nodeType":"YulFunctionCall","src":"7696:10:16"},"variableNames":[{"name":"sc","nativeSrc":"7690:2:16","nodeType":"YulIdentifier","src":"7690:2:16"}]},{"nativeSrc":"7727:19:16","nodeType":"YulAssignment","src":"7727:19:16","value":{"arguments":[{"name":"mc","nativeSrc":"7737:2:16","nodeType":"YulIdentifier","src":"7737:2:16"},{"kind":"number","nativeSrc":"7741:4:16","nodeType":"YulLiteral","src":"7741:4:16","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7733:3:16","nodeType":"YulIdentifier","src":"7733:3:16"},"nativeSrc":"7733:13:16","nodeType":"YulFunctionCall","src":"7733:13:16"},"variableNames":[{"name":"mc","nativeSrc":"7727:2:16","nodeType":"YulIdentifier","src":"7727:2:16"}]}]},"pre":{"nativeSrc":"7559:96:16","nodeType":"YulBlock","src":"7559:96:16","statements":[{"nativeSrc":"7581:19:16","nodeType":"YulAssignment","src":"7581:19:16","value":{"arguments":[{"name":"mc","nativeSrc":"7591:2:16","nodeType":"YulIdentifier","src":"7591:2:16"},{"kind":"number","nativeSrc":"7595:4:16","nodeType":"YulLiteral","src":"7595:4:16","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7587:3:16","nodeType":"YulIdentifier","src":"7587:3:16"},"nativeSrc":"7587:13:16","nodeType":"YulFunctionCall","src":"7587:13:16"},"variableNames":[{"name":"mc","nativeSrc":"7581:2:16","nodeType":"YulIdentifier","src":"7581:2:16"}]},{"nativeSrc":"7621:16:16","nodeType":"YulAssignment","src":"7621:16:16","value":{"arguments":[{"name":"sc","nativeSrc":"7631:2:16","nodeType":"YulIdentifier","src":"7631:2:16"},{"kind":"number","nativeSrc":"7635:1:16","nodeType":"YulLiteral","src":"7635:1:16","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"7627:3:16","nodeType":"YulIdentifier","src":"7627:3:16"},"nativeSrc":"7627:10:16","nodeType":"YulFunctionCall","src":"7627:10:16"},"variableNames":[{"name":"sc","nativeSrc":"7621:2:16","nodeType":"YulIdentifier","src":"7621:2:16"}]}]},"src":"7555:271:16"},{"nativeSrc":"7844:32:16","nodeType":"YulAssignment","src":"7844:32:16","value":{"arguments":[{"kind":"number","nativeSrc":"7856:5:16","nodeType":"YulLiteral","src":"7856:5:16","type":"","value":"0x100"},{"arguments":[{"name":"mc","nativeSrc":"7867:2:16","nodeType":"YulIdentifier","src":"7867:2:16"},{"name":"end","nativeSrc":"7871:3:16","nodeType":"YulIdentifier","src":"7871:3:16"}],"functionName":{"name":"sub","nativeSrc":"7863:3:16","nodeType":"YulIdentifier","src":"7863:3:16"},"nativeSrc":"7863:12:16","nodeType":"YulFunctionCall","src":"7863:12:16"}],"functionName":{"name":"exp","nativeSrc":"7852:3:16","nodeType":"YulIdentifier","src":"7852:3:16"},"nativeSrc":"7852:24:16","nodeType":"YulFunctionCall","src":"7852:24:16"},"variableNames":[{"name":"mask","nativeSrc":"7844:4:16","nodeType":"YulIdentifier","src":"7844:4:16"}]},{"expression":{"arguments":[{"name":"sc","nativeSrc":"7901:2:16","nodeType":"YulIdentifier","src":"7901:2:16"},{"arguments":[{"arguments":[{"arguments":[{"name":"mc","nativeSrc":"7919:2:16","nodeType":"YulIdentifier","src":"7919:2:16"}],"functionName":{"name":"mload","nativeSrc":"7913:5:16","nodeType":"YulIdentifier","src":"7913:5:16"},"nativeSrc":"7913:9:16","nodeType":"YulFunctionCall","src":"7913:9:16"},{"name":"mask","nativeSrc":"7924:4:16","nodeType":"YulIdentifier","src":"7924:4:16"}],"functionName":{"name":"div","nativeSrc":"7909:3:16","nodeType":"YulIdentifier","src":"7909:3:16"},"nativeSrc":"7909:20:16","nodeType":"YulFunctionCall","src":"7909:20:16"},{"name":"mask","nativeSrc":"7931:4:16","nodeType":"YulIdentifier","src":"7931:4:16"}],"functionName":{"name":"mul","nativeSrc":"7905:3:16","nodeType":"YulIdentifier","src":"7905:3:16"},"nativeSrc":"7905:31:16","nodeType":"YulFunctionCall","src":"7905:31:16"}],"functionName":{"name":"sstore","nativeSrc":"7894:6:16","nodeType":"YulIdentifier","src":"7894:6:16"},"nativeSrc":"7894:43:16","nodeType":"YulFunctionCall","src":"7894:43:16"},"nativeSrc":"7894:43:16","nodeType":"YulExpressionStatement","src":"7894:43:16"}]},"nativeSrc":"6219:1732:16","nodeType":"YulCase","src":"6219:1732:16","value":{"kind":"number","nativeSrc":"6224:1:16","nodeType":"YulLiteral","src":"6224:1:16","type":"","value":"1"}},{"body":{"nativeSrc":"7972:1264:16","nodeType":"YulBlock","src":"7972:1264:16","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8069:3:16","nodeType":"YulLiteral","src":"8069:3:16","type":"","value":"0x0"},{"name":"_preBytes.slot","nativeSrc":"8074:14:16","nodeType":"YulIdentifier","src":"8074:14:16"}],"functionName":{"name":"mstore","nativeSrc":"8062:6:16","nodeType":"YulIdentifier","src":"8062:6:16"},"nativeSrc":"8062:27:16","nodeType":"YulFunctionCall","src":"8062:27:16"},"nativeSrc":"8062:27:16","nodeType":"YulExpressionStatement","src":"8062:27:16"},{"nativeSrc":"8182:53:16","nodeType":"YulVariableDeclaration","src":"8182:53:16","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"8206:3:16","nodeType":"YulLiteral","src":"8206:3:16","type":"","value":"0x0"},{"kind":"number","nativeSrc":"8211:4:16","nodeType":"YulLiteral","src":"8211:4:16","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"8196:9:16","nodeType":"YulIdentifier","src":"8196:9:16"},"nativeSrc":"8196:20:16","nodeType":"YulFunctionCall","src":"8196:20:16"},{"arguments":[{"name":"slength","nativeSrc":"8222:7:16","nodeType":"YulIdentifier","src":"8222:7:16"},{"kind":"number","nativeSrc":"8231:2:16","nodeType":"YulLiteral","src":"8231:2:16","type":"","value":"32"}],"functionName":{"name":"div","nativeSrc":"8218:3:16","nodeType":"YulIdentifier","src":"8218:3:16"},"nativeSrc":"8218:16:16","nodeType":"YulFunctionCall","src":"8218:16:16"}],"functionName":{"name":"add","nativeSrc":"8192:3:16","nodeType":"YulIdentifier","src":"8192:3:16"},"nativeSrc":"8192:43:16","nodeType":"YulFunctionCall","src":"8192:43:16"},"variables":[{"name":"sc","nativeSrc":"8186:2:16","nodeType":"YulTypedName","src":"8186:2:16","type":""}]},{"expression":{"arguments":[{"name":"_preBytes.slot","nativeSrc":"8295:14:16","nodeType":"YulIdentifier","src":"8295:14:16"},{"arguments":[{"arguments":[{"name":"newlength","nativeSrc":"8319:9:16","nodeType":"YulIdentifier","src":"8319:9:16"},{"kind":"number","nativeSrc":"8330:1:16","nodeType":"YulLiteral","src":"8330:1:16","type":"","value":"2"}],"functionName":{"name":"mul","nativeSrc":"8315:3:16","nodeType":"YulIdentifier","src":"8315:3:16"},"nativeSrc":"8315:17:16","nodeType":"YulFunctionCall","src":"8315:17:16"},{"kind":"number","nativeSrc":"8334:1:16","nodeType":"YulLiteral","src":"8334:1:16","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"8311:3:16","nodeType":"YulIdentifier","src":"8311:3:16"},"nativeSrc":"8311:25:16","nodeType":"YulFunctionCall","src":"8311:25:16"}],"functionName":{"name":"sstore","nativeSrc":"8288:6:16","nodeType":"YulIdentifier","src":"8288:6:16"},"nativeSrc":"8288:49:16","nodeType":"YulFunctionCall","src":"8288:49:16"},"nativeSrc":"8288:49:16","nodeType":"YulExpressionStatement","src":"8288:49:16"},{"nativeSrc":"8464:34:16","nodeType":"YulVariableDeclaration","src":"8464:34:16","value":{"arguments":[{"name":"slength","nativeSrc":"8486:7:16","nodeType":"YulIdentifier","src":"8486:7:16"},{"kind":"number","nativeSrc":"8495:2:16","nodeType":"YulLiteral","src":"8495:2:16","type":"","value":"32"}],"functionName":{"name":"mod","nativeSrc":"8482:3:16","nodeType":"YulIdentifier","src":"8482:3:16"},"nativeSrc":"8482:16:16","nodeType":"YulFunctionCall","src":"8482:16:16"},"variables":[{"name":"slengthmod","nativeSrc":"8468:10:16","nodeType":"YulTypedName","src":"8468:10:16","type":""}]},{"nativeSrc":"8515:34:16","nodeType":"YulVariableDeclaration","src":"8515:34:16","value":{"arguments":[{"name":"mlength","nativeSrc":"8537:7:16","nodeType":"YulIdentifier","src":"8537:7:16"},{"kind":"number","nativeSrc":"8546:2:16","nodeType":"YulLiteral","src":"8546:2:16","type":"","value":"32"}],"functionName":{"name":"mod","nativeSrc":"8533:3:16","nodeType":"YulIdentifier","src":"8533:3:16"},"nativeSrc":"8533:16:16","nodeType":"YulFunctionCall","src":"8533:16:16"},"variables":[{"name":"mlengthmod","nativeSrc":"8519:10:16","nodeType":"YulTypedName","src":"8519:10:16","type":""}]},{"nativeSrc":"8566:33:16","nodeType":"YulVariableDeclaration","src":"8566:33:16","value":{"arguments":[{"kind":"number","nativeSrc":"8584:2:16","nodeType":"YulLiteral","src":"8584:2:16","type":"","value":"32"},{"name":"slengthmod","nativeSrc":"8588:10:16","nodeType":"YulIdentifier","src":"8588:10:16"}],"functionName":{"name":"sub","nativeSrc":"8580:3:16","nodeType":"YulIdentifier","src":"8580:3:16"},"nativeSrc":"8580:19:16","nodeType":"YulFunctionCall","src":"8580:19:16"},"variables":[{"name":"submod","nativeSrc":"8570:6:16","nodeType":"YulTypedName","src":"8570:6:16","type":""}]},{"nativeSrc":"8616:33:16","nodeType":"YulVariableDeclaration","src":"8616:33:16","value":{"arguments":[{"name":"_postBytes","nativeSrc":"8630:10:16","nodeType":"YulIdentifier","src":"8630:10:16"},{"name":"submod","nativeSrc":"8642:6:16","nodeType":"YulIdentifier","src":"8642:6:16"}],"functionName":{"name":"add","nativeSrc":"8626:3:16","nodeType":"YulIdentifier","src":"8626:3:16"},"nativeSrc":"8626:23:16","nodeType":"YulFunctionCall","src":"8626:23:16"},"variables":[{"name":"mc","nativeSrc":"8620:2:16","nodeType":"YulTypedName","src":"8620:2:16","type":""}]},{"nativeSrc":"8666:35:16","nodeType":"YulVariableDeclaration","src":"8666:35:16","value":{"arguments":[{"name":"_postBytes","nativeSrc":"8681:10:16","nodeType":"YulIdentifier","src":"8681:10:16"},{"name":"mlength","nativeSrc":"8693:7:16","nodeType":"YulIdentifier","src":"8693:7:16"}],"functionName":{"name":"add","nativeSrc":"8677:3:16","nodeType":"YulIdentifier","src":"8677:3:16"},"nativeSrc":"8677:24:16","nodeType":"YulFunctionCall","src":"8677:24:16"},"variables":[{"name":"end","nativeSrc":"8670:3:16","nodeType":"YulTypedName","src":"8670:3:16","type":""}]},{"nativeSrc":"8718:38:16","nodeType":"YulVariableDeclaration","src":"8718:38:16","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"8738:5:16","nodeType":"YulLiteral","src":"8738:5:16","type":"","value":"0x100"},{"name":"submod","nativeSrc":"8745:6:16","nodeType":"YulIdentifier","src":"8745:6:16"}],"functionName":{"name":"exp","nativeSrc":"8734:3:16","nodeType":"YulIdentifier","src":"8734:3:16"},"nativeSrc":"8734:18:16","nodeType":"YulFunctionCall","src":"8734:18:16"},{"kind":"number","nativeSrc":"8754:1:16","nodeType":"YulLiteral","src":"8754:1:16","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"8730:3:16","nodeType":"YulIdentifier","src":"8730:3:16"},"nativeSrc":"8730:26:16","nodeType":"YulFunctionCall","src":"8730:26:16"},"variables":[{"name":"mask","nativeSrc":"8722:4:16","nodeType":"YulTypedName","src":"8722:4:16","type":""}]},{"expression":{"arguments":[{"name":"sc","nativeSrc":"8781:2:16","nodeType":"YulIdentifier","src":"8781:2:16"},{"arguments":[{"arguments":[{"name":"sc","nativeSrc":"8795:2:16","nodeType":"YulIdentifier","src":"8795:2:16"}],"functionName":{"name":"sload","nativeSrc":"8789:5:16","nodeType":"YulIdentifier","src":"8789:5:16"},"nativeSrc":"8789:9:16","nodeType":"YulFunctionCall","src":"8789:9:16"},{"arguments":[{"arguments":[{"name":"mc","nativeSrc":"8810:2:16","nodeType":"YulIdentifier","src":"8810:2:16"}],"functionName":{"name":"mload","nativeSrc":"8804:5:16","nodeType":"YulIdentifier","src":"8804:5:16"},"nativeSrc":"8804:9:16","nodeType":"YulFunctionCall","src":"8804:9:16"},{"name":"mask","nativeSrc":"8815:4:16","nodeType":"YulIdentifier","src":"8815:4:16"}],"functionName":{"name":"and","nativeSrc":"8800:3:16","nodeType":"YulIdentifier","src":"8800:3:16"},"nativeSrc":"8800:20:16","nodeType":"YulFunctionCall","src":"8800:20:16"}],"functionName":{"name":"add","nativeSrc":"8785:3:16","nodeType":"YulIdentifier","src":"8785:3:16"},"nativeSrc":"8785:36:16","nodeType":"YulFunctionCall","src":"8785:36:16"}],"functionName":{"name":"sstore","nativeSrc":"8774:6:16","nodeType":"YulIdentifier","src":"8774:6:16"},"nativeSrc":"8774:48:16","nodeType":"YulFunctionCall","src":"8774:48:16"},"nativeSrc":"8774:48:16","nodeType":"YulExpressionStatement","src":"8774:48:16"},{"body":{"nativeSrc":"9050:61:16","nodeType":"YulBlock","src":"9050:61:16","statements":[{"expression":{"arguments":[{"name":"sc","nativeSrc":"9079:2:16","nodeType":"YulIdentifier","src":"9079:2:16"},{"arguments":[{"name":"mc","nativeSrc":"9089:2:16","nodeType":"YulIdentifier","src":"9089:2:16"}],"functionName":{"name":"mload","nativeSrc":"9083:5:16","nodeType":"YulIdentifier","src":"9083:5:16"},"nativeSrc":"9083:9:16","nodeType":"YulFunctionCall","src":"9083:9:16"}],"functionName":{"name":"sstore","nativeSrc":"9072:6:16","nodeType":"YulIdentifier","src":"9072:6:16"},"nativeSrc":"9072:21:16","nodeType":"YulFunctionCall","src":"9072:21:16"},"nativeSrc":"9072:21:16","nodeType":"YulExpressionStatement","src":"9072:21:16"}]},"condition":{"arguments":[{"name":"mc","nativeSrc":"8944:2:16","nodeType":"YulIdentifier","src":"8944:2:16"},{"name":"end","nativeSrc":"8948:3:16","nodeType":"YulIdentifier","src":"8948:3:16"}],"functionName":{"name":"lt","nativeSrc":"8941:2:16","nodeType":"YulIdentifier","src":"8941:2:16"},"nativeSrc":"8941:11:16","nodeType":"YulFunctionCall","src":"8941:11:16"},"nativeSrc":"8840:271:16","nodeType":"YulForLoop","post":{"nativeSrc":"8953:96:16","nodeType":"YulBlock","src":"8953:96:16","statements":[{"nativeSrc":"8975:16:16","nodeType":"YulAssignment","src":"8975:16:16","value":{"arguments":[{"name":"sc","nativeSrc":"8985:2:16","nodeType":"YulIdentifier","src":"8985:2:16"},{"kind":"number","nativeSrc":"8989:1:16","nodeType":"YulLiteral","src":"8989:1:16","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"8981:3:16","nodeType":"YulIdentifier","src":"8981:3:16"},"nativeSrc":"8981:10:16","nodeType":"YulFunctionCall","src":"8981:10:16"},"variableNames":[{"name":"sc","nativeSrc":"8975:2:16","nodeType":"YulIdentifier","src":"8975:2:16"}]},{"nativeSrc":"9012:19:16","nodeType":"YulAssignment","src":"9012:19:16","value":{"arguments":[{"name":"mc","nativeSrc":"9022:2:16","nodeType":"YulIdentifier","src":"9022:2:16"},{"kind":"number","nativeSrc":"9026:4:16","nodeType":"YulLiteral","src":"9026:4:16","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9018:3:16","nodeType":"YulIdentifier","src":"9018:3:16"},"nativeSrc":"9018:13:16","nodeType":"YulFunctionCall","src":"9018:13:16"},"variableNames":[{"name":"mc","nativeSrc":"9012:2:16","nodeType":"YulIdentifier","src":"9012:2:16"}]}]},"pre":{"nativeSrc":"8844:96:16","nodeType":"YulBlock","src":"8844:96:16","statements":[{"nativeSrc":"8866:16:16","nodeType":"YulAssignment","src":"8866:16:16","value":{"arguments":[{"name":"sc","nativeSrc":"8876:2:16","nodeType":"YulIdentifier","src":"8876:2:16"},{"kind":"number","nativeSrc":"8880:1:16","nodeType":"YulLiteral","src":"8880:1:16","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"8872:3:16","nodeType":"YulIdentifier","src":"8872:3:16"},"nativeSrc":"8872:10:16","nodeType":"YulFunctionCall","src":"8872:10:16"},"variableNames":[{"name":"sc","nativeSrc":"8866:2:16","nodeType":"YulIdentifier","src":"8866:2:16"}]},{"nativeSrc":"8903:19:16","nodeType":"YulAssignment","src":"8903:19:16","value":{"arguments":[{"name":"mc","nativeSrc":"8913:2:16","nodeType":"YulIdentifier","src":"8913:2:16"},{"kind":"number","nativeSrc":"8917:4:16","nodeType":"YulLiteral","src":"8917:4:16","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8909:3:16","nodeType":"YulIdentifier","src":"8909:3:16"},"nativeSrc":"8909:13:16","nodeType":"YulFunctionCall","src":"8909:13:16"},"variableNames":[{"name":"mc","nativeSrc":"8903:2:16","nodeType":"YulIdentifier","src":"8903:2:16"}]}]},"src":"8840:271:16"},{"nativeSrc":"9129:32:16","nodeType":"YulAssignment","src":"9129:32:16","value":{"arguments":[{"kind":"number","nativeSrc":"9141:5:16","nodeType":"YulLiteral","src":"9141:5:16","type":"","value":"0x100"},{"arguments":[{"name":"mc","nativeSrc":"9152:2:16","nodeType":"YulIdentifier","src":"9152:2:16"},{"name":"end","nativeSrc":"9156:3:16","nodeType":"YulIdentifier","src":"9156:3:16"}],"functionName":{"name":"sub","nativeSrc":"9148:3:16","nodeType":"YulIdentifier","src":"9148:3:16"},"nativeSrc":"9148:12:16","nodeType":"YulFunctionCall","src":"9148:12:16"}],"functionName":{"name":"exp","nativeSrc":"9137:3:16","nodeType":"YulIdentifier","src":"9137:3:16"},"nativeSrc":"9137:24:16","nodeType":"YulFunctionCall","src":"9137:24:16"},"variableNames":[{"name":"mask","nativeSrc":"9129:4:16","nodeType":"YulIdentifier","src":"9129:4:16"}]},{"expression":{"arguments":[{"name":"sc","nativeSrc":"9186:2:16","nodeType":"YulIdentifier","src":"9186:2:16"},{"arguments":[{"arguments":[{"arguments":[{"name":"mc","nativeSrc":"9204:2:16","nodeType":"YulIdentifier","src":"9204:2:16"}],"functionName":{"name":"mload","nativeSrc":"9198:5:16","nodeType":"YulIdentifier","src":"9198:5:16"},"nativeSrc":"9198:9:16","nodeType":"YulFunctionCall","src":"9198:9:16"},{"name":"mask","nativeSrc":"9209:4:16","nodeType":"YulIdentifier","src":"9209:4:16"}],"functionName":{"name":"div","nativeSrc":"9194:3:16","nodeType":"YulIdentifier","src":"9194:3:16"},"nativeSrc":"9194:20:16","nodeType":"YulFunctionCall","src":"9194:20:16"},{"name":"mask","nativeSrc":"9216:4:16","nodeType":"YulIdentifier","src":"9216:4:16"}],"functionName":{"name":"mul","nativeSrc":"9190:3:16","nodeType":"YulIdentifier","src":"9190:3:16"},"nativeSrc":"9190:31:16","nodeType":"YulFunctionCall","src":"9190:31:16"}],"functionName":{"name":"sstore","nativeSrc":"9179:6:16","nodeType":"YulIdentifier","src":"9179:6:16"},"nativeSrc":"9179:43:16","nodeType":"YulFunctionCall","src":"9179:43:16"},"nativeSrc":"9179:43:16","nodeType":"YulExpressionStatement","src":"9179:43:16"}]},"nativeSrc":"7964:1272:16","nodeType":"YulCase","src":"7964:1272:16","value":"default"}],"expression":{"arguments":[{"arguments":[{"name":"slength","nativeSrc":"4669:7:16","nodeType":"YulIdentifier","src":"4669:7:16"},{"kind":"number","nativeSrc":"4678:2:16","nodeType":"YulLiteral","src":"4678:2:16","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"4666:2:16","nodeType":"YulIdentifier","src":"4666:2:16"},"nativeSrc":"4666:15:16","nodeType":"YulFunctionCall","src":"4666:15:16"},{"arguments":[{"name":"newlength","nativeSrc":"4686:9:16","nodeType":"YulIdentifier","src":"4686:9:16"},{"kind":"number","nativeSrc":"4697:2:16","nodeType":"YulLiteral","src":"4697:2:16","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"4683:2:16","nodeType":"YulIdentifier","src":"4683:2:16"},"nativeSrc":"4683:17:16","nodeType":"YulFunctionCall","src":"4683:17:16"}],"functionName":{"name":"add","nativeSrc":"4662:3:16","nodeType":"YulIdentifier","src":"4662:3:16"},"nativeSrc":"4662:39:16","nodeType":"YulFunctionCall","src":"4662:39:16"},"nativeSrc":"4655:4581:16","nodeType":"YulSwitch","src":"4655:4581:16"}]},"evmVersion":"paris","externalReferences":[{"declaration":2917,"isOffset":false,"isSlot":false,"src":"4326:10:16","valueSize":1},{"declaration":2917,"isOffset":false,"isSlot":false,"src":"5532:10:16","valueSize":1},{"declaration":2917,"isOffset":false,"isSlot":false,"src":"7276:10:16","valueSize":1},{"declaration":2917,"isOffset":false,"isSlot":false,"src":"7327:10:16","valueSize":1},{"declaration":2917,"isOffset":false,"isSlot":false,"src":"8630:10:16","valueSize":1},{"declaration":2917,"isOffset":false,"isSlot":false,"src":"8681:10:16","valueSize":1},{"declaration":2915,"isOffset":false,"isSlot":true,"src":"3708:14:16","suffix":"slot","valueSize":1},{"declaration":2915,"isOffset":false,"isSlot":true,"src":"5002:14:16","suffix":"slot","valueSize":1},{"declaration":2915,"isOffset":false,"isSlot":true,"src":"6440:14:16","suffix":"slot","valueSize":1},{"declaration":2915,"isOffset":false,"isSlot":true,"src":"6585:14:16","suffix":"slot","valueSize":1},{"declaration":2915,"isOffset":false,"isSlot":true,"src":"8074:14:16","suffix":"slot","valueSize":1},{"declaration":2915,"isOffset":false,"isSlot":true,"src":"8295:14:16","suffix":"slot","valueSize":1}],"id":2920,"nodeType":"InlineAssembly","src":"3457:5789:16"}]},"id":2922,"implemented":true,"kind":"function","modifiers":[],"name":"concatStorage","nameLocation":"3374:13:16","nodeType":"FunctionDefinition","parameters":{"id":2918,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2915,"mutability":"mutable","name":"_preBytes","nameLocation":"3402:9:16","nodeType":"VariableDeclaration","scope":2922,"src":"3388:23:16","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":2914,"name":"bytes","nodeType":"ElementaryTypeName","src":"3388:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2917,"mutability":"mutable","name":"_postBytes","nameLocation":"3426:10:16","nodeType":"VariableDeclaration","scope":2922,"src":"3413:23:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2916,"name":"bytes","nodeType":"ElementaryTypeName","src":"3413:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3387:50:16"},"returnParameters":{"id":2919,"nodeType":"ParameterList","parameters":[],"src":"3447:0:16"},"scope":3228,"src":"3365:5887:16","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2958,"nodeType":"Block","src":"9388:2640:16","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2934,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2928,"src":"9406:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3331","id":2935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9416:2:16","typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"31"},"src":"9406:12:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":2937,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2928,"src":"9422:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9406:23:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"736c6963655f6f766572666c6f77","id":2939,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9431:16:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e","typeString":"literal_string \"slice_overflow\""},"value":"slice_overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e","typeString":"literal_string \"slice_overflow\""}],"id":2933,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9398:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9398:50:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2941,"nodeType":"ExpressionStatement","src":"9398:50:16"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2943,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2924,"src":"9466:6:16","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9473:6:16","memberName":"length","nodeType":"MemberAccess","src":"9466:13:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2945,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2926,"src":"9483:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":2946,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2928,"src":"9492:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9483:16:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9466:33:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"736c6963655f6f75744f66426f756e6473","id":2949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9501:19:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0","typeString":"literal_string \"slice_outOfBounds\""},"value":"slice_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0","typeString":"literal_string \"slice_outOfBounds\""}],"id":2942,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9458:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9458:63:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2951,"nodeType":"ExpressionStatement","src":"9458:63:16"},{"assignments":[2953],"declarations":[{"constant":false,"id":2953,"mutability":"mutable","name":"tempBytes","nameLocation":"9545:9:16","nodeType":"VariableDeclaration","scope":2958,"src":"9532:22:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2952,"name":"bytes","nodeType":"ElementaryTypeName","src":"9532:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2954,"nodeType":"VariableDeclarationStatement","src":"9532:22:16"},{"AST":{"nativeSrc":"9574:2421:16","nodeType":"YulBlock","src":"9574:2421:16","statements":[{"cases":[{"body":{"nativeSrc":"9630:1960:16","nodeType":"YulBlock","src":"9630:1960:16","statements":[{"nativeSrc":"9786:24:16","nodeType":"YulAssignment","src":"9786:24:16","value":{"arguments":[{"kind":"number","nativeSrc":"9805:4:16","nodeType":"YulLiteral","src":"9805:4:16","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"9799:5:16","nodeType":"YulIdentifier","src":"9799:5:16"},"nativeSrc":"9799:11:16","nodeType":"YulFunctionCall","src":"9799:11:16"},"variableNames":[{"name":"tempBytes","nativeSrc":"9786:9:16","nodeType":"YulIdentifier","src":"9786:9:16"}]},{"nativeSrc":"10434:33:16","nodeType":"YulVariableDeclaration","src":"10434:33:16","value":{"arguments":[{"name":"_length","nativeSrc":"10455:7:16","nodeType":"YulIdentifier","src":"10455:7:16"},{"kind":"number","nativeSrc":"10464:2:16","nodeType":"YulLiteral","src":"10464:2:16","type":"","value":"31"}],"functionName":{"name":"and","nativeSrc":"10451:3:16","nodeType":"YulIdentifier","src":"10451:3:16"},"nativeSrc":"10451:16:16","nodeType":"YulFunctionCall","src":"10451:16:16"},"variables":[{"name":"lengthmod","nativeSrc":"10438:9:16","nodeType":"YulTypedName","src":"10438:9:16","type":""}]},{"nativeSrc":"10788:70:16","nodeType":"YulVariableDeclaration","src":"10788:70:16","value":{"arguments":[{"arguments":[{"name":"tempBytes","nativeSrc":"10806:9:16","nodeType":"YulIdentifier","src":"10806:9:16"},{"name":"lengthmod","nativeSrc":"10817:9:16","nodeType":"YulIdentifier","src":"10817:9:16"}],"functionName":{"name":"add","nativeSrc":"10802:3:16","nodeType":"YulIdentifier","src":"10802:3:16"},"nativeSrc":"10802:25:16","nodeType":"YulFunctionCall","src":"10802:25:16"},{"arguments":[{"kind":"number","nativeSrc":"10833:4:16","nodeType":"YulLiteral","src":"10833:4:16","type":"","value":"0x20"},{"arguments":[{"name":"lengthmod","nativeSrc":"10846:9:16","nodeType":"YulIdentifier","src":"10846:9:16"}],"functionName":{"name":"iszero","nativeSrc":"10839:6:16","nodeType":"YulIdentifier","src":"10839:6:16"},"nativeSrc":"10839:17:16","nodeType":"YulFunctionCall","src":"10839:17:16"}],"functionName":{"name":"mul","nativeSrc":"10829:3:16","nodeType":"YulIdentifier","src":"10829:3:16"},"nativeSrc":"10829:28:16","nodeType":"YulFunctionCall","src":"10829:28:16"}],"functionName":{"name":"add","nativeSrc":"10798:3:16","nodeType":"YulIdentifier","src":"10798:3:16"},"nativeSrc":"10798:60:16","nodeType":"YulFunctionCall","src":"10798:60:16"},"variables":[{"name":"mc","nativeSrc":"10792:2:16","nodeType":"YulTypedName","src":"10792:2:16","type":""}]},{"nativeSrc":"10875:27:16","nodeType":"YulVariableDeclaration","src":"10875:27:16","value":{"arguments":[{"name":"mc","nativeSrc":"10890:2:16","nodeType":"YulIdentifier","src":"10890:2:16"},{"name":"_length","nativeSrc":"10894:7:16","nodeType":"YulIdentifier","src":"10894:7:16"}],"functionName":{"name":"add","nativeSrc":"10886:3:16","nodeType":"YulIdentifier","src":"10886:3:16"},"nativeSrc":"10886:16:16","nodeType":"YulFunctionCall","src":"10886:16:16"},"variables":[{"name":"end","nativeSrc":"10879:3:16","nodeType":"YulTypedName","src":"10879:3:16","type":""}]},{"body":{"nativeSrc":"11284:61:16","nodeType":"YulBlock","src":"11284:61:16","statements":[{"expression":{"arguments":[{"name":"mc","nativeSrc":"11313:2:16","nodeType":"YulIdentifier","src":"11313:2:16"},{"arguments":[{"name":"cc","nativeSrc":"11323:2:16","nodeType":"YulIdentifier","src":"11323:2:16"}],"functionName":{"name":"mload","nativeSrc":"11317:5:16","nodeType":"YulIdentifier","src":"11317:5:16"},"nativeSrc":"11317:9:16","nodeType":"YulFunctionCall","src":"11317:9:16"}],"functionName":{"name":"mstore","nativeSrc":"11306:6:16","nodeType":"YulIdentifier","src":"11306:6:16"},"nativeSrc":"11306:21:16","nodeType":"YulFunctionCall","src":"11306:21:16"},"nativeSrc":"11306:21:16","nodeType":"YulExpressionStatement","src":"11306:21:16"}]},"condition":{"arguments":[{"name":"mc","nativeSrc":"11175:2:16","nodeType":"YulIdentifier","src":"11175:2:16"},{"name":"end","nativeSrc":"11179:3:16","nodeType":"YulIdentifier","src":"11179:3:16"}],"functionName":{"name":"lt","nativeSrc":"11172:2:16","nodeType":"YulIdentifier","src":"11172:2:16"},"nativeSrc":"11172:11:16","nodeType":"YulFunctionCall","src":"11172:11:16"},"nativeSrc":"10920:425:16","nodeType":"YulForLoop","post":{"nativeSrc":"11184:99:16","nodeType":"YulBlock","src":"11184:99:16","statements":[{"nativeSrc":"11206:19:16","nodeType":"YulAssignment","src":"11206:19:16","value":{"arguments":[{"name":"mc","nativeSrc":"11216:2:16","nodeType":"YulIdentifier","src":"11216:2:16"},{"kind":"number","nativeSrc":"11220:4:16","nodeType":"YulLiteral","src":"11220:4:16","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11212:3:16","nodeType":"YulIdentifier","src":"11212:3:16"},"nativeSrc":"11212:13:16","nodeType":"YulFunctionCall","src":"11212:13:16"},"variableNames":[{"name":"mc","nativeSrc":"11206:2:16","nodeType":"YulIdentifier","src":"11206:2:16"}]},{"nativeSrc":"11246:19:16","nodeType":"YulAssignment","src":"11246:19:16","value":{"arguments":[{"name":"cc","nativeSrc":"11256:2:16","nodeType":"YulIdentifier","src":"11256:2:16"},{"kind":"number","nativeSrc":"11260:4:16","nodeType":"YulLiteral","src":"11260:4:16","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11252:3:16","nodeType":"YulIdentifier","src":"11252:3:16"},"nativeSrc":"11252:13:16","nodeType":"YulFunctionCall","src":"11252:13:16"},"variableNames":[{"name":"cc","nativeSrc":"11246:2:16","nodeType":"YulIdentifier","src":"11246:2:16"}]}]},"pre":{"nativeSrc":"10924:247:16","nodeType":"YulBlock","src":"10924:247:16","statements":[{"nativeSrc":"11073:80:16","nodeType":"YulVariableDeclaration","src":"11073:80:16","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nativeSrc":"11095:6:16","nodeType":"YulIdentifier","src":"11095:6:16"},{"name":"lengthmod","nativeSrc":"11103:9:16","nodeType":"YulIdentifier","src":"11103:9:16"}],"functionName":{"name":"add","nativeSrc":"11091:3:16","nodeType":"YulIdentifier","src":"11091:3:16"},"nativeSrc":"11091:22:16","nodeType":"YulFunctionCall","src":"11091:22:16"},{"arguments":[{"kind":"number","nativeSrc":"11119:4:16","nodeType":"YulLiteral","src":"11119:4:16","type":"","value":"0x20"},{"arguments":[{"name":"lengthmod","nativeSrc":"11132:9:16","nodeType":"YulIdentifier","src":"11132:9:16"}],"functionName":{"name":"iszero","nativeSrc":"11125:6:16","nodeType":"YulIdentifier","src":"11125:6:16"},"nativeSrc":"11125:17:16","nodeType":"YulFunctionCall","src":"11125:17:16"}],"functionName":{"name":"mul","nativeSrc":"11115:3:16","nodeType":"YulIdentifier","src":"11115:3:16"},"nativeSrc":"11115:28:16","nodeType":"YulFunctionCall","src":"11115:28:16"}],"functionName":{"name":"add","nativeSrc":"11087:3:16","nodeType":"YulIdentifier","src":"11087:3:16"},"nativeSrc":"11087:57:16","nodeType":"YulFunctionCall","src":"11087:57:16"},{"name":"_start","nativeSrc":"11146:6:16","nodeType":"YulIdentifier","src":"11146:6:16"}],"functionName":{"name":"add","nativeSrc":"11083:3:16","nodeType":"YulIdentifier","src":"11083:3:16"},"nativeSrc":"11083:70:16","nodeType":"YulFunctionCall","src":"11083:70:16"},"variables":[{"name":"cc","nativeSrc":"11077:2:16","nodeType":"YulTypedName","src":"11077:2:16","type":""}]}]},"src":"10920:425:16"},{"expression":{"arguments":[{"name":"tempBytes","nativeSrc":"11370:9:16","nodeType":"YulIdentifier","src":"11370:9:16"},{"name":"_length","nativeSrc":"11381:7:16","nodeType":"YulIdentifier","src":"11381:7:16"}],"functionName":{"name":"mstore","nativeSrc":"11363:6:16","nodeType":"YulIdentifier","src":"11363:6:16"},"nativeSrc":"11363:26:16","nodeType":"YulFunctionCall","src":"11363:26:16"},"nativeSrc":"11363:26:16","nodeType":"YulExpressionStatement","src":"11363:26:16"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11544:4:16","nodeType":"YulLiteral","src":"11544:4:16","type":"","value":"0x40"},{"arguments":[{"arguments":[{"name":"mc","nativeSrc":"11558:2:16","nodeType":"YulIdentifier","src":"11558:2:16"},{"kind":"number","nativeSrc":"11562:2:16","nodeType":"YulLiteral","src":"11562:2:16","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"11554:3:16","nodeType":"YulIdentifier","src":"11554:3:16"},"nativeSrc":"11554:11:16","nodeType":"YulFunctionCall","src":"11554:11:16"},{"arguments":[{"kind":"number","nativeSrc":"11571:2:16","nodeType":"YulLiteral","src":"11571:2:16","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"11567:3:16","nodeType":"YulIdentifier","src":"11567:3:16"},"nativeSrc":"11567:7:16","nodeType":"YulFunctionCall","src":"11567:7:16"}],"functionName":{"name":"and","nativeSrc":"11550:3:16","nodeType":"YulIdentifier","src":"11550:3:16"},"nativeSrc":"11550:25:16","nodeType":"YulFunctionCall","src":"11550:25:16"}],"functionName":{"name":"mstore","nativeSrc":"11537:6:16","nodeType":"YulIdentifier","src":"11537:6:16"},"nativeSrc":"11537:39:16","nodeType":"YulFunctionCall","src":"11537:39:16"},"nativeSrc":"11537:39:16","nodeType":"YulExpressionStatement","src":"11537:39:16"}]},"nativeSrc":"9623:1967:16","nodeType":"YulCase","src":"9623:1967:16","value":{"kind":"number","nativeSrc":"9628:1:16","nodeType":"YulLiteral","src":"9628:1:16","type":"","value":"0"}},{"body":{"nativeSrc":"11694:291:16","nodeType":"YulBlock","src":"11694:291:16","statements":[{"nativeSrc":"11712:24:16","nodeType":"YulAssignment","src":"11712:24:16","value":{"arguments":[{"kind":"number","nativeSrc":"11731:4:16","nodeType":"YulLiteral","src":"11731:4:16","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"11725:5:16","nodeType":"YulIdentifier","src":"11725:5:16"},"nativeSrc":"11725:11:16","nodeType":"YulFunctionCall","src":"11725:11:16"},"variableNames":[{"name":"tempBytes","nativeSrc":"11712:9:16","nodeType":"YulIdentifier","src":"11712:9:16"}]},{"expression":{"arguments":[{"name":"tempBytes","nativeSrc":"11906:9:16","nodeType":"YulIdentifier","src":"11906:9:16"},{"kind":"number","nativeSrc":"11917:1:16","nodeType":"YulLiteral","src":"11917:1:16","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"11899:6:16","nodeType":"YulIdentifier","src":"11899:6:16"},"nativeSrc":"11899:20:16","nodeType":"YulFunctionCall","src":"11899:20:16"},"nativeSrc":"11899:20:16","nodeType":"YulExpressionStatement","src":"11899:20:16"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11944:4:16","nodeType":"YulLiteral","src":"11944:4:16","type":"","value":"0x40"},{"arguments":[{"name":"tempBytes","nativeSrc":"11954:9:16","nodeType":"YulIdentifier","src":"11954:9:16"},{"kind":"number","nativeSrc":"11965:4:16","nodeType":"YulLiteral","src":"11965:4:16","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11950:3:16","nodeType":"YulIdentifier","src":"11950:3:16"},"nativeSrc":"11950:20:16","nodeType":"YulFunctionCall","src":"11950:20:16"}],"functionName":{"name":"mstore","nativeSrc":"11937:6:16","nodeType":"YulIdentifier","src":"11937:6:16"},"nativeSrc":"11937:34:16","nodeType":"YulFunctionCall","src":"11937:34:16"},"nativeSrc":"11937:34:16","nodeType":"YulExpressionStatement","src":"11937:34:16"}]},"nativeSrc":"11686:299:16","nodeType":"YulCase","src":"11686:299:16","value":"default"}],"expression":{"arguments":[{"name":"_length","nativeSrc":"9602:7:16","nodeType":"YulIdentifier","src":"9602:7:16"}],"functionName":{"name":"iszero","nativeSrc":"9595:6:16","nodeType":"YulIdentifier","src":"9595:6:16"},"nativeSrc":"9595:15:16","nodeType":"YulFunctionCall","src":"9595:15:16"},"nativeSrc":"9588:2397:16","nodeType":"YulSwitch","src":"9588:2397:16"}]},"evmVersion":"paris","externalReferences":[{"declaration":2924,"isOffset":false,"isSlot":false,"src":"11095:6:16","valueSize":1},{"declaration":2928,"isOffset":false,"isSlot":false,"src":"10455:7:16","valueSize":1},{"declaration":2928,"isOffset":false,"isSlot":false,"src":"10894:7:16","valueSize":1},{"declaration":2928,"isOffset":false,"isSlot":false,"src":"11381:7:16","valueSize":1},{"declaration":2928,"isOffset":false,"isSlot":false,"src":"9602:7:16","valueSize":1},{"declaration":2926,"isOffset":false,"isSlot":false,"src":"11146:6:16","valueSize":1},{"declaration":2953,"isOffset":false,"isSlot":false,"src":"10806:9:16","valueSize":1},{"declaration":2953,"isOffset":false,"isSlot":false,"src":"11370:9:16","valueSize":1},{"declaration":2953,"isOffset":false,"isSlot":false,"src":"11712:9:16","valueSize":1},{"declaration":2953,"isOffset":false,"isSlot":false,"src":"11906:9:16","valueSize":1},{"declaration":2953,"isOffset":false,"isSlot":false,"src":"11954:9:16","valueSize":1},{"declaration":2953,"isOffset":false,"isSlot":false,"src":"9786:9:16","valueSize":1}],"id":2955,"nodeType":"InlineAssembly","src":"9565:2430:16"},{"expression":{"id":2956,"name":"tempBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2953,"src":"12012:9:16","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2932,"id":2957,"nodeType":"Return","src":"12005:16:16"}]},"id":2959,"implemented":true,"kind":"function","modifiers":[],"name":"slice","nameLocation":"9267:5:16","nodeType":"FunctionDefinition","parameters":{"id":2929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2924,"mutability":"mutable","name":"_bytes","nameLocation":"9295:6:16","nodeType":"VariableDeclaration","scope":2959,"src":"9282:19:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2923,"name":"bytes","nodeType":"ElementaryTypeName","src":"9282:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2926,"mutability":"mutable","name":"_start","nameLocation":"9316:6:16","nodeType":"VariableDeclaration","scope":2959,"src":"9311:11:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2925,"name":"uint","nodeType":"ElementaryTypeName","src":"9311:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2928,"mutability":"mutable","name":"_length","nameLocation":"9337:7:16","nodeType":"VariableDeclaration","scope":2959,"src":"9332:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2927,"name":"uint","nodeType":"ElementaryTypeName","src":"9332:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9272:78:16"},"returnParameters":{"id":2932,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2931,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2959,"src":"9374:12:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2930,"name":"bytes","nodeType":"ElementaryTypeName","src":"9374:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9373:14:16"},"scope":3228,"src":"9258:2770:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2984,"nodeType":"Block","src":"12119:266:16","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2969,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2961,"src":"12137:6:16","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12144:6:16","memberName":"length","nodeType":"MemberAccess","src":"12137:13:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2971,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2963,"src":"12154:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3230","id":2972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12163:2:16","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"src":"12154:11:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12137:28:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f416464726573735f6f75744f66426f756e6473","id":2975,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12167:23:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_9f688071e1df0f70b63e3651005878331be1fe9591d6cfb3187cb52a13439e5d","typeString":"literal_string \"toAddress_outOfBounds\""},"value":"toAddress_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9f688071e1df0f70b63e3651005878331be1fe9591d6cfb3187cb52a13439e5d","typeString":"literal_string \"toAddress_outOfBounds\""}],"id":2968,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12129:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12129:62:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2977,"nodeType":"ExpressionStatement","src":"12129:62:16"},{"assignments":[2979],"declarations":[{"constant":false,"id":2979,"mutability":"mutable","name":"tempAddress","nameLocation":"12209:11:16","nodeType":"VariableDeclaration","scope":2984,"src":"12201:19:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2978,"name":"address","nodeType":"ElementaryTypeName","src":"12201:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2980,"nodeType":"VariableDeclarationStatement","src":"12201:19:16"},{"AST":{"nativeSrc":"12240:110:16","nodeType":"YulBlock","src":"12240:110:16","statements":[{"nativeSrc":"12254:86:16","nodeType":"YulAssignment","src":"12254:86:16","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nativeSrc":"12287:6:16","nodeType":"YulIdentifier","src":"12287:6:16"},{"kind":"number","nativeSrc":"12295:4:16","nodeType":"YulLiteral","src":"12295:4:16","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12283:3:16","nodeType":"YulIdentifier","src":"12283:3:16"},"nativeSrc":"12283:17:16","nodeType":"YulFunctionCall","src":"12283:17:16"},{"name":"_start","nativeSrc":"12302:6:16","nodeType":"YulIdentifier","src":"12302:6:16"}],"functionName":{"name":"add","nativeSrc":"12279:3:16","nodeType":"YulIdentifier","src":"12279:3:16"},"nativeSrc":"12279:30:16","nodeType":"YulFunctionCall","src":"12279:30:16"}],"functionName":{"name":"mload","nativeSrc":"12273:5:16","nodeType":"YulIdentifier","src":"12273:5:16"},"nativeSrc":"12273:37:16","nodeType":"YulFunctionCall","src":"12273:37:16"},{"kind":"number","nativeSrc":"12312:27:16","nodeType":"YulLiteral","src":"12312:27:16","type":"","value":"0x1000000000000000000000000"}],"functionName":{"name":"div","nativeSrc":"12269:3:16","nodeType":"YulIdentifier","src":"12269:3:16"},"nativeSrc":"12269:71:16","nodeType":"YulFunctionCall","src":"12269:71:16"},"variableNames":[{"name":"tempAddress","nativeSrc":"12254:11:16","nodeType":"YulIdentifier","src":"12254:11:16"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":2961,"isOffset":false,"isSlot":false,"src":"12287:6:16","valueSize":1},{"declaration":2963,"isOffset":false,"isSlot":false,"src":"12302:6:16","valueSize":1},{"declaration":2979,"isOffset":false,"isSlot":false,"src":"12254:11:16","valueSize":1}],"id":2981,"nodeType":"InlineAssembly","src":"12231:119:16"},{"expression":{"id":2982,"name":"tempAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2979,"src":"12367:11:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":2967,"id":2983,"nodeType":"Return","src":"12360:18:16"}]},"id":2985,"implemented":true,"kind":"function","modifiers":[],"name":"toAddress","nameLocation":"12043:9:16","nodeType":"FunctionDefinition","parameters":{"id":2964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2961,"mutability":"mutable","name":"_bytes","nameLocation":"12066:6:16","nodeType":"VariableDeclaration","scope":2985,"src":"12053:19:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2960,"name":"bytes","nodeType":"ElementaryTypeName","src":"12053:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2963,"mutability":"mutable","name":"_start","nameLocation":"12079:6:16","nodeType":"VariableDeclaration","scope":2985,"src":"12074:11:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2962,"name":"uint","nodeType":"ElementaryTypeName","src":"12074:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12052:34:16"},"returnParameters":{"id":2967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2966,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2985,"src":"12110:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2965,"name":"address","nodeType":"ElementaryTypeName","src":"12110:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12109:9:16"},"scope":3228,"src":"12034:351:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3010,"nodeType":"Block","src":"12472:217:16","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2995,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2987,"src":"12490:6:16","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12497:6:16","memberName":"length","nodeType":"MemberAccess","src":"12490:13:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2997,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2989,"src":"12507:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":2998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12516:1:16","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12507:10:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12490:27:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e74385f6f75744f66426f756e6473","id":3001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12519:21:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_ce6d7be00009dd45cc670fb6c2ceee25786f142bcb64e7f1ee73012b26bb6ca1","typeString":"literal_string \"toUint8_outOfBounds\""},"value":"toUint8_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ce6d7be00009dd45cc670fb6c2ceee25786f142bcb64e7f1ee73012b26bb6ca1","typeString":"literal_string \"toUint8_outOfBounds\""}],"id":2994,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12482:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12482:59:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3003,"nodeType":"ExpressionStatement","src":"12482:59:16"},{"assignments":[3005],"declarations":[{"constant":false,"id":3005,"mutability":"mutable","name":"tempUint","nameLocation":"12557:8:16","nodeType":"VariableDeclaration","scope":3010,"src":"12551:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3004,"name":"uint8","nodeType":"ElementaryTypeName","src":"12551:5:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":3006,"nodeType":"VariableDeclarationStatement","src":"12551:14:16"},{"AST":{"nativeSrc":"12585:72:16","nodeType":"YulBlock","src":"12585:72:16","statements":[{"nativeSrc":"12599:48:16","nodeType":"YulAssignment","src":"12599:48:16","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nativeSrc":"12625:6:16","nodeType":"YulIdentifier","src":"12625:6:16"},{"kind":"number","nativeSrc":"12633:3:16","nodeType":"YulLiteral","src":"12633:3:16","type":"","value":"0x1"}],"functionName":{"name":"add","nativeSrc":"12621:3:16","nodeType":"YulIdentifier","src":"12621:3:16"},"nativeSrc":"12621:16:16","nodeType":"YulFunctionCall","src":"12621:16:16"},{"name":"_start","nativeSrc":"12639:6:16","nodeType":"YulIdentifier","src":"12639:6:16"}],"functionName":{"name":"add","nativeSrc":"12617:3:16","nodeType":"YulIdentifier","src":"12617:3:16"},"nativeSrc":"12617:29:16","nodeType":"YulFunctionCall","src":"12617:29:16"}],"functionName":{"name":"mload","nativeSrc":"12611:5:16","nodeType":"YulIdentifier","src":"12611:5:16"},"nativeSrc":"12611:36:16","nodeType":"YulFunctionCall","src":"12611:36:16"},"variableNames":[{"name":"tempUint","nativeSrc":"12599:8:16","nodeType":"YulIdentifier","src":"12599:8:16"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":2987,"isOffset":false,"isSlot":false,"src":"12625:6:16","valueSize":1},{"declaration":2989,"isOffset":false,"isSlot":false,"src":"12639:6:16","valueSize":1},{"declaration":3005,"isOffset":false,"isSlot":false,"src":"12599:8:16","valueSize":1}],"id":3007,"nodeType":"InlineAssembly","src":"12576:81:16"},{"expression":{"id":3008,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3005,"src":"12674:8:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":2993,"id":3009,"nodeType":"Return","src":"12667:15:16"}]},"id":3011,"implemented":true,"kind":"function","modifiers":[],"name":"toUint8","nameLocation":"12400:7:16","nodeType":"FunctionDefinition","parameters":{"id":2990,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2987,"mutability":"mutable","name":"_bytes","nameLocation":"12421:6:16","nodeType":"VariableDeclaration","scope":3011,"src":"12408:19:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2986,"name":"bytes","nodeType":"ElementaryTypeName","src":"12408:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2989,"mutability":"mutable","name":"_start","nameLocation":"12434:6:16","nodeType":"VariableDeclaration","scope":3011,"src":"12429:11:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2988,"name":"uint","nodeType":"ElementaryTypeName","src":"12429:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12407:34:16"},"returnParameters":{"id":2993,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2992,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3011,"src":"12465:5:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2991,"name":"uint8","nodeType":"ElementaryTypeName","src":"12465:5:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"12464:7:16"},"scope":3228,"src":"12391:298:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3036,"nodeType":"Block","src":"12778:219:16","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3021,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3013,"src":"12796:6:16","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12803:6:16","memberName":"length","nodeType":"MemberAccess","src":"12796:13:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3023,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3015,"src":"12813:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":3024,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12822:1:16","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"12813:10:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12796:27:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e7431365f6f75744f66426f756e6473","id":3027,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12825:22:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_414233483a71244a4f2700455a9733e71511b5279e381bdd2af6d44b1b09ecab","typeString":"literal_string \"toUint16_outOfBounds\""},"value":"toUint16_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_414233483a71244a4f2700455a9733e71511b5279e381bdd2af6d44b1b09ecab","typeString":"literal_string \"toUint16_outOfBounds\""}],"id":3020,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12788:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12788:60:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3029,"nodeType":"ExpressionStatement","src":"12788:60:16"},{"assignments":[3031],"declarations":[{"constant":false,"id":3031,"mutability":"mutable","name":"tempUint","nameLocation":"12865:8:16","nodeType":"VariableDeclaration","scope":3036,"src":"12858:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3030,"name":"uint16","nodeType":"ElementaryTypeName","src":"12858:6:16","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":3032,"nodeType":"VariableDeclarationStatement","src":"12858:15:16"},{"AST":{"nativeSrc":"12893:72:16","nodeType":"YulBlock","src":"12893:72:16","statements":[{"nativeSrc":"12907:48:16","nodeType":"YulAssignment","src":"12907:48:16","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nativeSrc":"12933:6:16","nodeType":"YulIdentifier","src":"12933:6:16"},{"kind":"number","nativeSrc":"12941:3:16","nodeType":"YulLiteral","src":"12941:3:16","type":"","value":"0x2"}],"functionName":{"name":"add","nativeSrc":"12929:3:16","nodeType":"YulIdentifier","src":"12929:3:16"},"nativeSrc":"12929:16:16","nodeType":"YulFunctionCall","src":"12929:16:16"},{"name":"_start","nativeSrc":"12947:6:16","nodeType":"YulIdentifier","src":"12947:6:16"}],"functionName":{"name":"add","nativeSrc":"12925:3:16","nodeType":"YulIdentifier","src":"12925:3:16"},"nativeSrc":"12925:29:16","nodeType":"YulFunctionCall","src":"12925:29:16"}],"functionName":{"name":"mload","nativeSrc":"12919:5:16","nodeType":"YulIdentifier","src":"12919:5:16"},"nativeSrc":"12919:36:16","nodeType":"YulFunctionCall","src":"12919:36:16"},"variableNames":[{"name":"tempUint","nativeSrc":"12907:8:16","nodeType":"YulIdentifier","src":"12907:8:16"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":3013,"isOffset":false,"isSlot":false,"src":"12933:6:16","valueSize":1},{"declaration":3015,"isOffset":false,"isSlot":false,"src":"12947:6:16","valueSize":1},{"declaration":3031,"isOffset":false,"isSlot":false,"src":"12907:8:16","valueSize":1}],"id":3033,"nodeType":"InlineAssembly","src":"12884:81:16"},{"expression":{"id":3034,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3031,"src":"12982:8:16","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":3019,"id":3035,"nodeType":"Return","src":"12975:15:16"}]},"id":3037,"implemented":true,"kind":"function","modifiers":[],"name":"toUint16","nameLocation":"12704:8:16","nodeType":"FunctionDefinition","parameters":{"id":3016,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3013,"mutability":"mutable","name":"_bytes","nameLocation":"12726:6:16","nodeType":"VariableDeclaration","scope":3037,"src":"12713:19:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3012,"name":"bytes","nodeType":"ElementaryTypeName","src":"12713:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3015,"mutability":"mutable","name":"_start","nameLocation":"12739:6:16","nodeType":"VariableDeclaration","scope":3037,"src":"12734:11:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3014,"name":"uint","nodeType":"ElementaryTypeName","src":"12734:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12712:34:16"},"returnParameters":{"id":3019,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3018,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3037,"src":"12770:6:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3017,"name":"uint16","nodeType":"ElementaryTypeName","src":"12770:6:16","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"12769:8:16"},"scope":3228,"src":"12695:302:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3062,"nodeType":"Block","src":"13086:219:16","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3047,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3039,"src":"13104:6:16","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13111:6:16","memberName":"length","nodeType":"MemberAccess","src":"13104:13:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3049,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3041,"src":"13121:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"34","id":3050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13130:1:16","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"13121:10:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13104:27:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e7433325f6f75744f66426f756e6473","id":3053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13133:22:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0a09853867d05bef4b1d534052126bc72acd3515e1725b9b280e16d988e6ccf","typeString":"literal_string \"toUint32_outOfBounds\""},"value":"toUint32_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e0a09853867d05bef4b1d534052126bc72acd3515e1725b9b280e16d988e6ccf","typeString":"literal_string \"toUint32_outOfBounds\""}],"id":3046,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13096:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13096:60:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3055,"nodeType":"ExpressionStatement","src":"13096:60:16"},{"assignments":[3057],"declarations":[{"constant":false,"id":3057,"mutability":"mutable","name":"tempUint","nameLocation":"13173:8:16","nodeType":"VariableDeclaration","scope":3062,"src":"13166:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":3056,"name":"uint32","nodeType":"ElementaryTypeName","src":"13166:6:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"id":3058,"nodeType":"VariableDeclarationStatement","src":"13166:15:16"},{"AST":{"nativeSrc":"13201:72:16","nodeType":"YulBlock","src":"13201:72:16","statements":[{"nativeSrc":"13215:48:16","nodeType":"YulAssignment","src":"13215:48:16","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nativeSrc":"13241:6:16","nodeType":"YulIdentifier","src":"13241:6:16"},{"kind":"number","nativeSrc":"13249:3:16","nodeType":"YulLiteral","src":"13249:3:16","type":"","value":"0x4"}],"functionName":{"name":"add","nativeSrc":"13237:3:16","nodeType":"YulIdentifier","src":"13237:3:16"},"nativeSrc":"13237:16:16","nodeType":"YulFunctionCall","src":"13237:16:16"},{"name":"_start","nativeSrc":"13255:6:16","nodeType":"YulIdentifier","src":"13255:6:16"}],"functionName":{"name":"add","nativeSrc":"13233:3:16","nodeType":"YulIdentifier","src":"13233:3:16"},"nativeSrc":"13233:29:16","nodeType":"YulFunctionCall","src":"13233:29:16"}],"functionName":{"name":"mload","nativeSrc":"13227:5:16","nodeType":"YulIdentifier","src":"13227:5:16"},"nativeSrc":"13227:36:16","nodeType":"YulFunctionCall","src":"13227:36:16"},"variableNames":[{"name":"tempUint","nativeSrc":"13215:8:16","nodeType":"YulIdentifier","src":"13215:8:16"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":3039,"isOffset":false,"isSlot":false,"src":"13241:6:16","valueSize":1},{"declaration":3041,"isOffset":false,"isSlot":false,"src":"13255:6:16","valueSize":1},{"declaration":3057,"isOffset":false,"isSlot":false,"src":"13215:8:16","valueSize":1}],"id":3059,"nodeType":"InlineAssembly","src":"13192:81:16"},{"expression":{"id":3060,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3057,"src":"13290:8:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"functionReturnParameters":3045,"id":3061,"nodeType":"Return","src":"13283:15:16"}]},"id":3063,"implemented":true,"kind":"function","modifiers":[],"name":"toUint32","nameLocation":"13012:8:16","nodeType":"FunctionDefinition","parameters":{"id":3042,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3039,"mutability":"mutable","name":"_bytes","nameLocation":"13034:6:16","nodeType":"VariableDeclaration","scope":3063,"src":"13021:19:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3038,"name":"bytes","nodeType":"ElementaryTypeName","src":"13021:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3041,"mutability":"mutable","name":"_start","nameLocation":"13047:6:16","nodeType":"VariableDeclaration","scope":3063,"src":"13042:11:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3040,"name":"uint","nodeType":"ElementaryTypeName","src":"13042:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13020:34:16"},"returnParameters":{"id":3045,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3044,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3063,"src":"13078:6:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":3043,"name":"uint32","nodeType":"ElementaryTypeName","src":"13078:6:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"13077:8:16"},"scope":3228,"src":"13003:302:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3088,"nodeType":"Block","src":"13394:219:16","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3073,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3065,"src":"13412:6:16","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13419:6:16","memberName":"length","nodeType":"MemberAccess","src":"13412:13:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3075,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3067,"src":"13429:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"38","id":3076,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13438:1:16","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"13429:10:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13412:27:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e7436345f6f75744f66426f756e6473","id":3079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13441:22:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_55885cc1e15ebd0ff3d9803b39476f6ee2279f42aa3070b40f2de433347c0145","typeString":"literal_string \"toUint64_outOfBounds\""},"value":"toUint64_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_55885cc1e15ebd0ff3d9803b39476f6ee2279f42aa3070b40f2de433347c0145","typeString":"literal_string \"toUint64_outOfBounds\""}],"id":3072,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13404:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13404:60:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3081,"nodeType":"ExpressionStatement","src":"13404:60:16"},{"assignments":[3083],"declarations":[{"constant":false,"id":3083,"mutability":"mutable","name":"tempUint","nameLocation":"13481:8:16","nodeType":"VariableDeclaration","scope":3088,"src":"13474:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3082,"name":"uint64","nodeType":"ElementaryTypeName","src":"13474:6:16","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":3084,"nodeType":"VariableDeclarationStatement","src":"13474:15:16"},{"AST":{"nativeSrc":"13509:72:16","nodeType":"YulBlock","src":"13509:72:16","statements":[{"nativeSrc":"13523:48:16","nodeType":"YulAssignment","src":"13523:48:16","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nativeSrc":"13549:6:16","nodeType":"YulIdentifier","src":"13549:6:16"},{"kind":"number","nativeSrc":"13557:3:16","nodeType":"YulLiteral","src":"13557:3:16","type":"","value":"0x8"}],"functionName":{"name":"add","nativeSrc":"13545:3:16","nodeType":"YulIdentifier","src":"13545:3:16"},"nativeSrc":"13545:16:16","nodeType":"YulFunctionCall","src":"13545:16:16"},{"name":"_start","nativeSrc":"13563:6:16","nodeType":"YulIdentifier","src":"13563:6:16"}],"functionName":{"name":"add","nativeSrc":"13541:3:16","nodeType":"YulIdentifier","src":"13541:3:16"},"nativeSrc":"13541:29:16","nodeType":"YulFunctionCall","src":"13541:29:16"}],"functionName":{"name":"mload","nativeSrc":"13535:5:16","nodeType":"YulIdentifier","src":"13535:5:16"},"nativeSrc":"13535:36:16","nodeType":"YulFunctionCall","src":"13535:36:16"},"variableNames":[{"name":"tempUint","nativeSrc":"13523:8:16","nodeType":"YulIdentifier","src":"13523:8:16"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":3065,"isOffset":false,"isSlot":false,"src":"13549:6:16","valueSize":1},{"declaration":3067,"isOffset":false,"isSlot":false,"src":"13563:6:16","valueSize":1},{"declaration":3083,"isOffset":false,"isSlot":false,"src":"13523:8:16","valueSize":1}],"id":3085,"nodeType":"InlineAssembly","src":"13500:81:16"},{"expression":{"id":3086,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3083,"src":"13598:8:16","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":3071,"id":3087,"nodeType":"Return","src":"13591:15:16"}]},"id":3089,"implemented":true,"kind":"function","modifiers":[],"name":"toUint64","nameLocation":"13320:8:16","nodeType":"FunctionDefinition","parameters":{"id":3068,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3065,"mutability":"mutable","name":"_bytes","nameLocation":"13342:6:16","nodeType":"VariableDeclaration","scope":3089,"src":"13329:19:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3064,"name":"bytes","nodeType":"ElementaryTypeName","src":"13329:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3067,"mutability":"mutable","name":"_start","nameLocation":"13355:6:16","nodeType":"VariableDeclaration","scope":3089,"src":"13350:11:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3066,"name":"uint","nodeType":"ElementaryTypeName","src":"13350:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13328:34:16"},"returnParameters":{"id":3071,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3070,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3089,"src":"13386:6:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3069,"name":"uint64","nodeType":"ElementaryTypeName","src":"13386:6:16","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"13385:8:16"},"scope":3228,"src":"13311:302:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3114,"nodeType":"Block","src":"13702:220:16","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3099,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3091,"src":"13720:6:16","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13727:6:16","memberName":"length","nodeType":"MemberAccess","src":"13720:13:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3101,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3093,"src":"13737:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3132","id":3102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13746:2:16","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"src":"13737:11:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13720:28:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e7439365f6f75744f66426f756e6473","id":3105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13750:22:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_245175b34ac1d95c460f2a4fcb106dbfea12949a3cbb7ae3362c49144bb9feb7","typeString":"literal_string \"toUint96_outOfBounds\""},"value":"toUint96_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_245175b34ac1d95c460f2a4fcb106dbfea12949a3cbb7ae3362c49144bb9feb7","typeString":"literal_string \"toUint96_outOfBounds\""}],"id":3098,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13712:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13712:61:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3107,"nodeType":"ExpressionStatement","src":"13712:61:16"},{"assignments":[3109],"declarations":[{"constant":false,"id":3109,"mutability":"mutable","name":"tempUint","nameLocation":"13790:8:16","nodeType":"VariableDeclaration","scope":3114,"src":"13783:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":3108,"name":"uint96","nodeType":"ElementaryTypeName","src":"13783:6:16","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"id":3110,"nodeType":"VariableDeclarationStatement","src":"13783:15:16"},{"AST":{"nativeSrc":"13818:72:16","nodeType":"YulBlock","src":"13818:72:16","statements":[{"nativeSrc":"13832:48:16","nodeType":"YulAssignment","src":"13832:48:16","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nativeSrc":"13858:6:16","nodeType":"YulIdentifier","src":"13858:6:16"},{"kind":"number","nativeSrc":"13866:3:16","nodeType":"YulLiteral","src":"13866:3:16","type":"","value":"0xc"}],"functionName":{"name":"add","nativeSrc":"13854:3:16","nodeType":"YulIdentifier","src":"13854:3:16"},"nativeSrc":"13854:16:16","nodeType":"YulFunctionCall","src":"13854:16:16"},{"name":"_start","nativeSrc":"13872:6:16","nodeType":"YulIdentifier","src":"13872:6:16"}],"functionName":{"name":"add","nativeSrc":"13850:3:16","nodeType":"YulIdentifier","src":"13850:3:16"},"nativeSrc":"13850:29:16","nodeType":"YulFunctionCall","src":"13850:29:16"}],"functionName":{"name":"mload","nativeSrc":"13844:5:16","nodeType":"YulIdentifier","src":"13844:5:16"},"nativeSrc":"13844:36:16","nodeType":"YulFunctionCall","src":"13844:36:16"},"variableNames":[{"name":"tempUint","nativeSrc":"13832:8:16","nodeType":"YulIdentifier","src":"13832:8:16"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":3091,"isOffset":false,"isSlot":false,"src":"13858:6:16","valueSize":1},{"declaration":3093,"isOffset":false,"isSlot":false,"src":"13872:6:16","valueSize":1},{"declaration":3109,"isOffset":false,"isSlot":false,"src":"13832:8:16","valueSize":1}],"id":3111,"nodeType":"InlineAssembly","src":"13809:81:16"},{"expression":{"id":3112,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3109,"src":"13907:8:16","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"functionReturnParameters":3097,"id":3113,"nodeType":"Return","src":"13900:15:16"}]},"id":3115,"implemented":true,"kind":"function","modifiers":[],"name":"toUint96","nameLocation":"13628:8:16","nodeType":"FunctionDefinition","parameters":{"id":3094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3091,"mutability":"mutable","name":"_bytes","nameLocation":"13650:6:16","nodeType":"VariableDeclaration","scope":3115,"src":"13637:19:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3090,"name":"bytes","nodeType":"ElementaryTypeName","src":"13637:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3093,"mutability":"mutable","name":"_start","nameLocation":"13663:6:16","nodeType":"VariableDeclaration","scope":3115,"src":"13658:11:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3092,"name":"uint","nodeType":"ElementaryTypeName","src":"13658:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13636:34:16"},"returnParameters":{"id":3097,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3096,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3115,"src":"13694:6:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":3095,"name":"uint96","nodeType":"ElementaryTypeName","src":"13694:6:16","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"13693:8:16"},"scope":3228,"src":"13619:303:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3140,"nodeType":"Block","src":"14013:223:16","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3125,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3117,"src":"14031:6:16","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14038:6:16","memberName":"length","nodeType":"MemberAccess","src":"14031:13:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3127,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3119,"src":"14048:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3136","id":3128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14057:2:16","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"14048:11:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14031:28:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e743132385f6f75744f66426f756e6473","id":3131,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14061:23:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_17474b965d7fdba029328487966488b63c32338e60aea74eafb22325bb8d90dc","typeString":"literal_string \"toUint128_outOfBounds\""},"value":"toUint128_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_17474b965d7fdba029328487966488b63c32338e60aea74eafb22325bb8d90dc","typeString":"literal_string \"toUint128_outOfBounds\""}],"id":3124,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"14023:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14023:62:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3133,"nodeType":"ExpressionStatement","src":"14023:62:16"},{"assignments":[3135],"declarations":[{"constant":false,"id":3135,"mutability":"mutable","name":"tempUint","nameLocation":"14103:8:16","nodeType":"VariableDeclaration","scope":3140,"src":"14095:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":3134,"name":"uint128","nodeType":"ElementaryTypeName","src":"14095:7:16","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":3136,"nodeType":"VariableDeclarationStatement","src":"14095:16:16"},{"AST":{"nativeSrc":"14131:73:16","nodeType":"YulBlock","src":"14131:73:16","statements":[{"nativeSrc":"14145:49:16","nodeType":"YulAssignment","src":"14145:49:16","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nativeSrc":"14171:6:16","nodeType":"YulIdentifier","src":"14171:6:16"},{"kind":"number","nativeSrc":"14179:4:16","nodeType":"YulLiteral","src":"14179:4:16","type":"","value":"0x10"}],"functionName":{"name":"add","nativeSrc":"14167:3:16","nodeType":"YulIdentifier","src":"14167:3:16"},"nativeSrc":"14167:17:16","nodeType":"YulFunctionCall","src":"14167:17:16"},{"name":"_start","nativeSrc":"14186:6:16","nodeType":"YulIdentifier","src":"14186:6:16"}],"functionName":{"name":"add","nativeSrc":"14163:3:16","nodeType":"YulIdentifier","src":"14163:3:16"},"nativeSrc":"14163:30:16","nodeType":"YulFunctionCall","src":"14163:30:16"}],"functionName":{"name":"mload","nativeSrc":"14157:5:16","nodeType":"YulIdentifier","src":"14157:5:16"},"nativeSrc":"14157:37:16","nodeType":"YulFunctionCall","src":"14157:37:16"},"variableNames":[{"name":"tempUint","nativeSrc":"14145:8:16","nodeType":"YulIdentifier","src":"14145:8:16"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":3117,"isOffset":false,"isSlot":false,"src":"14171:6:16","valueSize":1},{"declaration":3119,"isOffset":false,"isSlot":false,"src":"14186:6:16","valueSize":1},{"declaration":3135,"isOffset":false,"isSlot":false,"src":"14145:8:16","valueSize":1}],"id":3137,"nodeType":"InlineAssembly","src":"14122:82:16"},{"expression":{"id":3138,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3135,"src":"14221:8:16","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"functionReturnParameters":3123,"id":3139,"nodeType":"Return","src":"14214:15:16"}]},"id":3141,"implemented":true,"kind":"function","modifiers":[],"name":"toUint128","nameLocation":"13937:9:16","nodeType":"FunctionDefinition","parameters":{"id":3120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3117,"mutability":"mutable","name":"_bytes","nameLocation":"13960:6:16","nodeType":"VariableDeclaration","scope":3141,"src":"13947:19:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3116,"name":"bytes","nodeType":"ElementaryTypeName","src":"13947:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3119,"mutability":"mutable","name":"_start","nameLocation":"13973:6:16","nodeType":"VariableDeclaration","scope":3141,"src":"13968:11:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3118,"name":"uint","nodeType":"ElementaryTypeName","src":"13968:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13946:34:16"},"returnParameters":{"id":3123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3122,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3141,"src":"14004:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":3121,"name":"uint128","nodeType":"ElementaryTypeName","src":"14004:7:16","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"14003:9:16"},"scope":3228,"src":"13928:308:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3166,"nodeType":"Block","src":"14324:220:16","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3151,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3143,"src":"14342:6:16","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14349:6:16","memberName":"length","nodeType":"MemberAccess","src":"14342:13:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3153,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3145,"src":"14359:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3332","id":3154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14368:2:16","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"14359:11:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14342:28:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e743235365f6f75744f66426f756e6473","id":3157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14372:23:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_87a32b96294a395a4fb365d8b27a23d532fa10419cffd7dc13367cdc71bf4d7b","typeString":"literal_string \"toUint256_outOfBounds\""},"value":"toUint256_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_87a32b96294a395a4fb365d8b27a23d532fa10419cffd7dc13367cdc71bf4d7b","typeString":"literal_string \"toUint256_outOfBounds\""}],"id":3150,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"14334:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14334:62:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3159,"nodeType":"ExpressionStatement","src":"14334:62:16"},{"assignments":[3161],"declarations":[{"constant":false,"id":3161,"mutability":"mutable","name":"tempUint","nameLocation":"14411:8:16","nodeType":"VariableDeclaration","scope":3166,"src":"14406:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3160,"name":"uint","nodeType":"ElementaryTypeName","src":"14406:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3162,"nodeType":"VariableDeclarationStatement","src":"14406:13:16"},{"AST":{"nativeSrc":"14439:73:16","nodeType":"YulBlock","src":"14439:73:16","statements":[{"nativeSrc":"14453:49:16","nodeType":"YulAssignment","src":"14453:49:16","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nativeSrc":"14479:6:16","nodeType":"YulIdentifier","src":"14479:6:16"},{"kind":"number","nativeSrc":"14487:4:16","nodeType":"YulLiteral","src":"14487:4:16","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14475:3:16","nodeType":"YulIdentifier","src":"14475:3:16"},"nativeSrc":"14475:17:16","nodeType":"YulFunctionCall","src":"14475:17:16"},{"name":"_start","nativeSrc":"14494:6:16","nodeType":"YulIdentifier","src":"14494:6:16"}],"functionName":{"name":"add","nativeSrc":"14471:3:16","nodeType":"YulIdentifier","src":"14471:3:16"},"nativeSrc":"14471:30:16","nodeType":"YulFunctionCall","src":"14471:30:16"}],"functionName":{"name":"mload","nativeSrc":"14465:5:16","nodeType":"YulIdentifier","src":"14465:5:16"},"nativeSrc":"14465:37:16","nodeType":"YulFunctionCall","src":"14465:37:16"},"variableNames":[{"name":"tempUint","nativeSrc":"14453:8:16","nodeType":"YulIdentifier","src":"14453:8:16"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":3143,"isOffset":false,"isSlot":false,"src":"14479:6:16","valueSize":1},{"declaration":3145,"isOffset":false,"isSlot":false,"src":"14494:6:16","valueSize":1},{"declaration":3161,"isOffset":false,"isSlot":false,"src":"14453:8:16","valueSize":1}],"id":3163,"nodeType":"InlineAssembly","src":"14430:82:16"},{"expression":{"id":3164,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3161,"src":"14529:8:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3149,"id":3165,"nodeType":"Return","src":"14522:15:16"}]},"id":3167,"implemented":true,"kind":"function","modifiers":[],"name":"toUint256","nameLocation":"14251:9:16","nodeType":"FunctionDefinition","parameters":{"id":3146,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3143,"mutability":"mutable","name":"_bytes","nameLocation":"14274:6:16","nodeType":"VariableDeclaration","scope":3167,"src":"14261:19:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3142,"name":"bytes","nodeType":"ElementaryTypeName","src":"14261:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3145,"mutability":"mutable","name":"_start","nameLocation":"14287:6:16","nodeType":"VariableDeclaration","scope":3167,"src":"14282:11:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3144,"name":"uint","nodeType":"ElementaryTypeName","src":"14282:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14260:34:16"},"returnParameters":{"id":3149,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3148,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3167,"src":"14318:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3147,"name":"uint","nodeType":"ElementaryTypeName","src":"14318:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14317:6:16"},"scope":3228,"src":"14242:302:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3192,"nodeType":"Block","src":"14635:232:16","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3177,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3169,"src":"14653:6:16","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14660:6:16","memberName":"length","nodeType":"MemberAccess","src":"14653:13:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3179,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3171,"src":"14670:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3332","id":3180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14679:2:16","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"14670:11:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14653:28:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f427974657333325f6f75744f66426f756e6473","id":3183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14683:23:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_95abc635681816f3b423f999d8035c1cc722b70e3d801f56cd1748a4f5810fa2","typeString":"literal_string \"toBytes32_outOfBounds\""},"value":"toBytes32_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_95abc635681816f3b423f999d8035c1cc722b70e3d801f56cd1748a4f5810fa2","typeString":"literal_string \"toBytes32_outOfBounds\""}],"id":3176,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"14645:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14645:62:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3185,"nodeType":"ExpressionStatement","src":"14645:62:16"},{"assignments":[3187],"declarations":[{"constant":false,"id":3187,"mutability":"mutable","name":"tempBytes32","nameLocation":"14725:11:16","nodeType":"VariableDeclaration","scope":3192,"src":"14717:19:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3186,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14717:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":3188,"nodeType":"VariableDeclarationStatement","src":"14717:19:16"},{"AST":{"nativeSrc":"14756:76:16","nodeType":"YulBlock","src":"14756:76:16","statements":[{"nativeSrc":"14770:52:16","nodeType":"YulAssignment","src":"14770:52:16","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nativeSrc":"14799:6:16","nodeType":"YulIdentifier","src":"14799:6:16"},{"kind":"number","nativeSrc":"14807:4:16","nodeType":"YulLiteral","src":"14807:4:16","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14795:3:16","nodeType":"YulIdentifier","src":"14795:3:16"},"nativeSrc":"14795:17:16","nodeType":"YulFunctionCall","src":"14795:17:16"},{"name":"_start","nativeSrc":"14814:6:16","nodeType":"YulIdentifier","src":"14814:6:16"}],"functionName":{"name":"add","nativeSrc":"14791:3:16","nodeType":"YulIdentifier","src":"14791:3:16"},"nativeSrc":"14791:30:16","nodeType":"YulFunctionCall","src":"14791:30:16"}],"functionName":{"name":"mload","nativeSrc":"14785:5:16","nodeType":"YulIdentifier","src":"14785:5:16"},"nativeSrc":"14785:37:16","nodeType":"YulFunctionCall","src":"14785:37:16"},"variableNames":[{"name":"tempBytes32","nativeSrc":"14770:11:16","nodeType":"YulIdentifier","src":"14770:11:16"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":3169,"isOffset":false,"isSlot":false,"src":"14799:6:16","valueSize":1},{"declaration":3171,"isOffset":false,"isSlot":false,"src":"14814:6:16","valueSize":1},{"declaration":3187,"isOffset":false,"isSlot":false,"src":"14770:11:16","valueSize":1}],"id":3189,"nodeType":"InlineAssembly","src":"14747:85:16"},{"expression":{"id":3190,"name":"tempBytes32","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3187,"src":"14849:11:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":3175,"id":3191,"nodeType":"Return","src":"14842:18:16"}]},"id":3193,"implemented":true,"kind":"function","modifiers":[],"name":"toBytes32","nameLocation":"14559:9:16","nodeType":"FunctionDefinition","parameters":{"id":3172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3169,"mutability":"mutable","name":"_bytes","nameLocation":"14582:6:16","nodeType":"VariableDeclaration","scope":3193,"src":"14569:19:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3168,"name":"bytes","nodeType":"ElementaryTypeName","src":"14569:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3171,"mutability":"mutable","name":"_start","nameLocation":"14595:6:16","nodeType":"VariableDeclaration","scope":3193,"src":"14590:11:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3170,"name":"uint","nodeType":"ElementaryTypeName","src":"14590:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14568:34:16"},"returnParameters":{"id":3175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3174,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3193,"src":"14626:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3173,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14626:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"14625:9:16"},"scope":3228,"src":"14550:317:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3209,"nodeType":"Block","src":"14966:1331:16","statements":[{"assignments":[3203],"declarations":[{"constant":false,"id":3203,"mutability":"mutable","name":"success","nameLocation":"14981:7:16","nodeType":"VariableDeclaration","scope":3209,"src":"14976:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3202,"name":"bool","nodeType":"ElementaryTypeName","src":"14976:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":3205,"initialValue":{"hexValue":"74727565","id":3204,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14991:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"nodeType":"VariableDeclarationStatement","src":"14976:19:16"},{"AST":{"nativeSrc":"15015:1251:16","nodeType":"YulBlock","src":"15015:1251:16","statements":[{"nativeSrc":"15029:30:16","nodeType":"YulVariableDeclaration","src":"15029:30:16","value":{"arguments":[{"name":"_preBytes","nativeSrc":"15049:9:16","nodeType":"YulIdentifier","src":"15049:9:16"}],"functionName":{"name":"mload","nativeSrc":"15043:5:16","nodeType":"YulIdentifier","src":"15043:5:16"},"nativeSrc":"15043:16:16","nodeType":"YulFunctionCall","src":"15043:16:16"},"variables":[{"name":"length","nativeSrc":"15033:6:16","nodeType":"YulTypedName","src":"15033:6:16","type":""}]},{"cases":[{"body":{"nativeSrc":"15192:969:16","nodeType":"YulBlock","src":"15192:969:16","statements":[{"nativeSrc":"15421:11:16","nodeType":"YulVariableDeclaration","src":"15421:11:16","value":{"kind":"number","nativeSrc":"15431:1:16","nodeType":"YulLiteral","src":"15431:1:16","type":"","value":"1"},"variables":[{"name":"cb","nativeSrc":"15425:2:16","nodeType":"YulTypedName","src":"15425:2:16","type":""}]},{"nativeSrc":"15450:30:16","nodeType":"YulVariableDeclaration","src":"15450:30:16","value":{"arguments":[{"name":"_preBytes","nativeSrc":"15464:9:16","nodeType":"YulIdentifier","src":"15464:9:16"},{"kind":"number","nativeSrc":"15475:4:16","nodeType":"YulLiteral","src":"15475:4:16","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15460:3:16","nodeType":"YulIdentifier","src":"15460:3:16"},"nativeSrc":"15460:20:16","nodeType":"YulFunctionCall","src":"15460:20:16"},"variables":[{"name":"mc","nativeSrc":"15454:2:16","nodeType":"YulTypedName","src":"15454:2:16","type":""}]},{"nativeSrc":"15497:26:16","nodeType":"YulVariableDeclaration","src":"15497:26:16","value":{"arguments":[{"name":"mc","nativeSrc":"15512:2:16","nodeType":"YulIdentifier","src":"15512:2:16"},{"name":"length","nativeSrc":"15516:6:16","nodeType":"YulIdentifier","src":"15516:6:16"}],"functionName":{"name":"add","nativeSrc":"15508:3:16","nodeType":"YulIdentifier","src":"15508:3:16"},"nativeSrc":"15508:15:16","nodeType":"YulFunctionCall","src":"15508:15:16"},"variables":[{"name":"end","nativeSrc":"15501:3:16","nodeType":"YulTypedName","src":"15501:3:16","type":""}]},{"body":{"nativeSrc":"15863:284:16","nodeType":"YulBlock","src":"15863:284:16","statements":[{"body":{"nativeSrc":"15999:130:16","nodeType":"YulBlock","src":"15999:130:16","statements":[{"nativeSrc":"16063:12:16","nodeType":"YulAssignment","src":"16063:12:16","value":{"kind":"number","nativeSrc":"16074:1:16","nodeType":"YulLiteral","src":"16074:1:16","type":"","value":"0"},"variableNames":[{"name":"success","nativeSrc":"16063:7:16","nodeType":"YulIdentifier","src":"16063:7:16"}]},{"nativeSrc":"16100:7:16","nodeType":"YulAssignment","src":"16100:7:16","value":{"kind":"number","nativeSrc":"16106:1:16","nodeType":"YulLiteral","src":"16106:1:16","type":"","value":"0"},"variableNames":[{"name":"cb","nativeSrc":"16100:2:16","nodeType":"YulIdentifier","src":"16100:2:16"}]}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"mc","nativeSrc":"15982:2:16","nodeType":"YulIdentifier","src":"15982:2:16"}],"functionName":{"name":"mload","nativeSrc":"15976:5:16","nodeType":"YulIdentifier","src":"15976:5:16"},"nativeSrc":"15976:9:16","nodeType":"YulFunctionCall","src":"15976:9:16"},{"arguments":[{"name":"cc","nativeSrc":"15993:2:16","nodeType":"YulIdentifier","src":"15993:2:16"}],"functionName":{"name":"mload","nativeSrc":"15987:5:16","nodeType":"YulIdentifier","src":"15987:5:16"},"nativeSrc":"15987:9:16","nodeType":"YulFunctionCall","src":"15987:9:16"}],"functionName":{"name":"eq","nativeSrc":"15973:2:16","nodeType":"YulIdentifier","src":"15973:2:16"},"nativeSrc":"15973:24:16","nodeType":"YulFunctionCall","src":"15973:24:16"}],"functionName":{"name":"iszero","nativeSrc":"15966:6:16","nodeType":"YulIdentifier","src":"15966:6:16"},"nativeSrc":"15966:32:16","nodeType":"YulFunctionCall","src":"15966:32:16"},"nativeSrc":"15963:166:16","nodeType":"YulIf","src":"15963:166:16"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"mc","nativeSrc":"15745:2:16","nodeType":"YulIdentifier","src":"15745:2:16"},{"name":"end","nativeSrc":"15749:3:16","nodeType":"YulIdentifier","src":"15749:3:16"}],"functionName":{"name":"lt","nativeSrc":"15742:2:16","nodeType":"YulIdentifier","src":"15742:2:16"},"nativeSrc":"15742:11:16","nodeType":"YulFunctionCall","src":"15742:11:16"},{"name":"cb","nativeSrc":"15755:2:16","nodeType":"YulIdentifier","src":"15755:2:16"}],"functionName":{"name":"add","nativeSrc":"15738:3:16","nodeType":"YulIdentifier","src":"15738:3:16"},"nativeSrc":"15738:20:16","nodeType":"YulFunctionCall","src":"15738:20:16"},{"kind":"number","nativeSrc":"15760:1:16","nodeType":"YulLiteral","src":"15760:1:16","type":"","value":"2"}],"functionName":{"name":"eq","nativeSrc":"15735:2:16","nodeType":"YulIdentifier","src":"15735:2:16"},"nativeSrc":"15735:27:16","nodeType":"YulFunctionCall","src":"15735:27:16"},"nativeSrc":"15541:606:16","nodeType":"YulForLoop","post":{"nativeSrc":"15763:99:16","nodeType":"YulBlock","src":"15763:99:16","statements":[{"nativeSrc":"15785:19:16","nodeType":"YulAssignment","src":"15785:19:16","value":{"arguments":[{"name":"mc","nativeSrc":"15795:2:16","nodeType":"YulIdentifier","src":"15795:2:16"},{"kind":"number","nativeSrc":"15799:4:16","nodeType":"YulLiteral","src":"15799:4:16","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15791:3:16","nodeType":"YulIdentifier","src":"15791:3:16"},"nativeSrc":"15791:13:16","nodeType":"YulFunctionCall","src":"15791:13:16"},"variableNames":[{"name":"mc","nativeSrc":"15785:2:16","nodeType":"YulIdentifier","src":"15785:2:16"}]},{"nativeSrc":"15825:19:16","nodeType":"YulAssignment","src":"15825:19:16","value":{"arguments":[{"name":"cc","nativeSrc":"15835:2:16","nodeType":"YulIdentifier","src":"15835:2:16"},{"kind":"number","nativeSrc":"15839:4:16","nodeType":"YulLiteral","src":"15839:4:16","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15831:3:16","nodeType":"YulIdentifier","src":"15831:3:16"},"nativeSrc":"15831:13:16","nodeType":"YulFunctionCall","src":"15831:13:16"},"variableNames":[{"name":"cc","nativeSrc":"15825:2:16","nodeType":"YulIdentifier","src":"15825:2:16"}]}]},"pre":{"nativeSrc":"15545:189:16","nodeType":"YulBlock","src":"15545:189:16","statements":[{"nativeSrc":"15567:31:16","nodeType":"YulVariableDeclaration","src":"15567:31:16","value":{"arguments":[{"name":"_postBytes","nativeSrc":"15581:10:16","nodeType":"YulIdentifier","src":"15581:10:16"},{"kind":"number","nativeSrc":"15593:4:16","nodeType":"YulLiteral","src":"15593:4:16","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15577:3:16","nodeType":"YulIdentifier","src":"15577:3:16"},"nativeSrc":"15577:21:16","nodeType":"YulFunctionCall","src":"15577:21:16"},"variables":[{"name":"cc","nativeSrc":"15571:2:16","nodeType":"YulTypedName","src":"15571:2:16","type":""}]}]},"src":"15541:606:16"}]},"nativeSrc":"15185:976:16","nodeType":"YulCase","src":"15185:976:16","value":{"kind":"number","nativeSrc":"15190:1:16","nodeType":"YulLiteral","src":"15190:1:16","type":"","value":"1"}},{"body":{"nativeSrc":"16182:74:16","nodeType":"YulBlock","src":"16182:74:16","statements":[{"nativeSrc":"16230:12:16","nodeType":"YulAssignment","src":"16230:12:16","value":{"kind":"number","nativeSrc":"16241:1:16","nodeType":"YulLiteral","src":"16241:1:16","type":"","value":"0"},"variableNames":[{"name":"success","nativeSrc":"16230:7:16","nodeType":"YulIdentifier","src":"16230:7:16"}]}]},"nativeSrc":"16174:82:16","nodeType":"YulCase","src":"16174:82:16","value":"default"}],"expression":{"arguments":[{"name":"length","nativeSrc":"15146:6:16","nodeType":"YulIdentifier","src":"15146:6:16"},{"arguments":[{"name":"_postBytes","nativeSrc":"15160:10:16","nodeType":"YulIdentifier","src":"15160:10:16"}],"functionName":{"name":"mload","nativeSrc":"15154:5:16","nodeType":"YulIdentifier","src":"15154:5:16"},"nativeSrc":"15154:17:16","nodeType":"YulFunctionCall","src":"15154:17:16"}],"functionName":{"name":"eq","nativeSrc":"15143:2:16","nodeType":"YulIdentifier","src":"15143:2:16"},"nativeSrc":"15143:29:16","nodeType":"YulFunctionCall","src":"15143:29:16"},"nativeSrc":"15136:1120:16","nodeType":"YulSwitch","src":"15136:1120:16"}]},"evmVersion":"paris","externalReferences":[{"declaration":3197,"isOffset":false,"isSlot":false,"src":"15160:10:16","valueSize":1},{"declaration":3197,"isOffset":false,"isSlot":false,"src":"15581:10:16","valueSize":1},{"declaration":3195,"isOffset":false,"isSlot":false,"src":"15049:9:16","valueSize":1},{"declaration":3195,"isOffset":false,"isSlot":false,"src":"15464:9:16","valueSize":1},{"declaration":3203,"isOffset":false,"isSlot":false,"src":"16063:7:16","valueSize":1},{"declaration":3203,"isOffset":false,"isSlot":false,"src":"16230:7:16","valueSize":1}],"id":3206,"nodeType":"InlineAssembly","src":"15006:1260:16"},{"expression":{"id":3207,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3203,"src":"16283:7:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3201,"id":3208,"nodeType":"Return","src":"16276:14:16"}]},"id":3210,"implemented":true,"kind":"function","modifiers":[],"name":"equal","nameLocation":"14882:5:16","nodeType":"FunctionDefinition","parameters":{"id":3198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3195,"mutability":"mutable","name":"_preBytes","nameLocation":"14901:9:16","nodeType":"VariableDeclaration","scope":3210,"src":"14888:22:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3194,"name":"bytes","nodeType":"ElementaryTypeName","src":"14888:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3197,"mutability":"mutable","name":"_postBytes","nameLocation":"14925:10:16","nodeType":"VariableDeclaration","scope":3210,"src":"14912:23:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3196,"name":"bytes","nodeType":"ElementaryTypeName","src":"14912:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14887:49:16"},"returnParameters":{"id":3201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3200,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3210,"src":"14960:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3199,"name":"bool","nodeType":"ElementaryTypeName","src":"14960:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14959:6:16"},"scope":3228,"src":"14873:1424:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3226,"nodeType":"Block","src":"16404:2585:16","statements":[{"assignments":[3220],"declarations":[{"constant":false,"id":3220,"mutability":"mutable","name":"success","nameLocation":"16419:7:16","nodeType":"VariableDeclaration","scope":3226,"src":"16414:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3219,"name":"bool","nodeType":"ElementaryTypeName","src":"16414:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":3222,"initialValue":{"hexValue":"74727565","id":3221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"16429:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"nodeType":"VariableDeclarationStatement","src":"16414:19:16"},{"AST":{"nativeSrc":"16453:2505:16","nodeType":"YulBlock","src":"16453:2505:16","statements":[{"nativeSrc":"16512:34:16","nodeType":"YulVariableDeclaration","src":"16512:34:16","value":{"arguments":[{"name":"_preBytes.slot","nativeSrc":"16531:14:16","nodeType":"YulIdentifier","src":"16531:14:16"}],"functionName":{"name":"sload","nativeSrc":"16525:5:16","nodeType":"YulIdentifier","src":"16525:5:16"},"nativeSrc":"16525:21:16","nodeType":"YulFunctionCall","src":"16525:21:16"},"variables":[{"name":"fslot","nativeSrc":"16516:5:16","nodeType":"YulTypedName","src":"16516:5:16","type":""}]},{"nativeSrc":"16637:76:16","nodeType":"YulVariableDeclaration","src":"16637:76:16","value":{"arguments":[{"arguments":[{"name":"fslot","nativeSrc":"16660:5:16","nodeType":"YulIdentifier","src":"16660:5:16"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"16675:5:16","nodeType":"YulLiteral","src":"16675:5:16","type":"","value":"0x100"},{"arguments":[{"arguments":[{"name":"fslot","nativeSrc":"16693:5:16","nodeType":"YulIdentifier","src":"16693:5:16"},{"kind":"number","nativeSrc":"16700:1:16","nodeType":"YulLiteral","src":"16700:1:16","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"16689:3:16","nodeType":"YulIdentifier","src":"16689:3:16"},"nativeSrc":"16689:13:16","nodeType":"YulFunctionCall","src":"16689:13:16"}],"functionName":{"name":"iszero","nativeSrc":"16682:6:16","nodeType":"YulIdentifier","src":"16682:6:16"},"nativeSrc":"16682:21:16","nodeType":"YulFunctionCall","src":"16682:21:16"}],"functionName":{"name":"mul","nativeSrc":"16671:3:16","nodeType":"YulIdentifier","src":"16671:3:16"},"nativeSrc":"16671:33:16","nodeType":"YulFunctionCall","src":"16671:33:16"},{"kind":"number","nativeSrc":"16706:1:16","nodeType":"YulLiteral","src":"16706:1:16","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"16667:3:16","nodeType":"YulIdentifier","src":"16667:3:16"},"nativeSrc":"16667:41:16","nodeType":"YulFunctionCall","src":"16667:41:16"}],"functionName":{"name":"and","nativeSrc":"16656:3:16","nodeType":"YulIdentifier","src":"16656:3:16"},"nativeSrc":"16656:53:16","nodeType":"YulFunctionCall","src":"16656:53:16"},{"kind":"number","nativeSrc":"16711:1:16","nodeType":"YulLiteral","src":"16711:1:16","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"16652:3:16","nodeType":"YulIdentifier","src":"16652:3:16"},"nativeSrc":"16652:61:16","nodeType":"YulFunctionCall","src":"16652:61:16"},"variables":[{"name":"slength","nativeSrc":"16641:7:16","nodeType":"YulTypedName","src":"16641:7:16","type":""}]},{"nativeSrc":"16726:32:16","nodeType":"YulVariableDeclaration","src":"16726:32:16","value":{"arguments":[{"name":"_postBytes","nativeSrc":"16747:10:16","nodeType":"YulIdentifier","src":"16747:10:16"}],"functionName":{"name":"mload","nativeSrc":"16741:5:16","nodeType":"YulIdentifier","src":"16741:5:16"},"nativeSrc":"16741:17:16","nodeType":"YulFunctionCall","src":"16741:17:16"},"variables":[{"name":"mlength","nativeSrc":"16730:7:16","nodeType":"YulTypedName","src":"16730:7:16","type":""}]},{"cases":[{"body":{"nativeSrc":"16882:1971:16","nodeType":"YulBlock","src":"16882:1971:16","statements":[{"body":{"nativeSrc":"17193:1646:16","nodeType":"YulBlock","src":"17193:1646:16","statements":[{"cases":[{"body":{"nativeSrc":"17265:340:16","nodeType":"YulBlock","src":"17265:340:16","statements":[{"nativeSrc":"17358:38:16","nodeType":"YulAssignment","src":"17358:38:16","value":{"arguments":[{"arguments":[{"name":"fslot","nativeSrc":"17375:5:16","nodeType":"YulIdentifier","src":"17375:5:16"},{"kind":"number","nativeSrc":"17382:5:16","nodeType":"YulLiteral","src":"17382:5:16","type":"","value":"0x100"}],"functionName":{"name":"div","nativeSrc":"17371:3:16","nodeType":"YulIdentifier","src":"17371:3:16"},"nativeSrc":"17371:17:16","nodeType":"YulFunctionCall","src":"17371:17:16"},{"kind":"number","nativeSrc":"17390:5:16","nodeType":"YulLiteral","src":"17390:5:16","type":"","value":"0x100"}],"functionName":{"name":"mul","nativeSrc":"17367:3:16","nodeType":"YulIdentifier","src":"17367:3:16"},"nativeSrc":"17367:29:16","nodeType":"YulFunctionCall","src":"17367:29:16"},"variableNames":[{"name":"fslot","nativeSrc":"17358:5:16","nodeType":"YulIdentifier","src":"17358:5:16"}]},{"body":{"nativeSrc":"17473:110:16","nodeType":"YulBlock","src":"17473:110:16","statements":[{"nativeSrc":"17545:12:16","nodeType":"YulAssignment","src":"17545:12:16","value":{"kind":"number","nativeSrc":"17556:1:16","nodeType":"YulLiteral","src":"17556:1:16","type":"","value":"0"},"variableNames":[{"name":"success","nativeSrc":"17545:7:16","nodeType":"YulIdentifier","src":"17545:7:16"}]}]},"condition":{"arguments":[{"arguments":[{"name":"fslot","nativeSrc":"17435:5:16","nodeType":"YulIdentifier","src":"17435:5:16"},{"arguments":[{"arguments":[{"name":"_postBytes","nativeSrc":"17452:10:16","nodeType":"YulIdentifier","src":"17452:10:16"},{"kind":"number","nativeSrc":"17464:4:16","nodeType":"YulLiteral","src":"17464:4:16","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17448:3:16","nodeType":"YulIdentifier","src":"17448:3:16"},"nativeSrc":"17448:21:16","nodeType":"YulFunctionCall","src":"17448:21:16"}],"functionName":{"name":"mload","nativeSrc":"17442:5:16","nodeType":"YulIdentifier","src":"17442:5:16"},"nativeSrc":"17442:28:16","nodeType":"YulFunctionCall","src":"17442:28:16"}],"functionName":{"name":"eq","nativeSrc":"17432:2:16","nodeType":"YulIdentifier","src":"17432:2:16"},"nativeSrc":"17432:39:16","nodeType":"YulFunctionCall","src":"17432:39:16"}],"functionName":{"name":"iszero","nativeSrc":"17425:6:16","nodeType":"YulIdentifier","src":"17425:6:16"},"nativeSrc":"17425:47:16","nodeType":"YulFunctionCall","src":"17425:47:16"},"nativeSrc":"17422:161:16","nodeType":"YulIf","src":"17422:161:16"}]},"nativeSrc":"17258:347:16","nodeType":"YulCase","src":"17258:347:16","value":{"kind":"number","nativeSrc":"17263:1:16","nodeType":"YulLiteral","src":"17263:1:16","type":"","value":"1"}},{"body":{"nativeSrc":"17634:1187:16","nodeType":"YulBlock","src":"17634:1187:16","statements":[{"nativeSrc":"17903:11:16","nodeType":"YulVariableDeclaration","src":"17903:11:16","value":{"kind":"number","nativeSrc":"17913:1:16","nodeType":"YulLiteral","src":"17913:1:16","type":"","value":"1"},"variables":[{"name":"cb","nativeSrc":"17907:2:16","nodeType":"YulTypedName","src":"17907:2:16","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18027:3:16","nodeType":"YulLiteral","src":"18027:3:16","type":"","value":"0x0"},{"name":"_preBytes.slot","nativeSrc":"18032:14:16","nodeType":"YulIdentifier","src":"18032:14:16"}],"functionName":{"name":"mstore","nativeSrc":"18020:6:16","nodeType":"YulIdentifier","src":"18020:6:16"},"nativeSrc":"18020:27:16","nodeType":"YulFunctionCall","src":"18020:27:16"},"nativeSrc":"18020:27:16","nodeType":"YulExpressionStatement","src":"18020:27:16"},{"nativeSrc":"18072:30:16","nodeType":"YulVariableDeclaration","src":"18072:30:16","value":{"arguments":[{"kind":"number","nativeSrc":"18092:3:16","nodeType":"YulLiteral","src":"18092:3:16","type":"","value":"0x0"},{"kind":"number","nativeSrc":"18097:4:16","nodeType":"YulLiteral","src":"18097:4:16","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"18082:9:16","nodeType":"YulIdentifier","src":"18082:9:16"},"nativeSrc":"18082:20:16","nodeType":"YulFunctionCall","src":"18082:20:16"},"variables":[{"name":"sc","nativeSrc":"18076:2:16","nodeType":"YulTypedName","src":"18076:2:16","type":""}]},{"nativeSrc":"18128:31:16","nodeType":"YulVariableDeclaration","src":"18128:31:16","value":{"arguments":[{"name":"_postBytes","nativeSrc":"18142:10:16","nodeType":"YulIdentifier","src":"18142:10:16"},{"kind":"number","nativeSrc":"18154:4:16","nodeType":"YulLiteral","src":"18154:4:16","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"18138:3:16","nodeType":"YulIdentifier","src":"18138:3:16"},"nativeSrc":"18138:21:16","nodeType":"YulFunctionCall","src":"18138:21:16"},"variables":[{"name":"mc","nativeSrc":"18132:2:16","nodeType":"YulTypedName","src":"18132:2:16","type":""}]},{"nativeSrc":"18184:27:16","nodeType":"YulVariableDeclaration","src":"18184:27:16","value":{"arguments":[{"name":"mc","nativeSrc":"18199:2:16","nodeType":"YulIdentifier","src":"18199:2:16"},{"name":"mlength","nativeSrc":"18203:7:16","nodeType":"YulIdentifier","src":"18203:7:16"}],"functionName":{"name":"add","nativeSrc":"18195:3:16","nodeType":"YulIdentifier","src":"18195:3:16"},"nativeSrc":"18195:16:16","nodeType":"YulFunctionCall","src":"18195:16:16"},"variables":[{"name":"end","nativeSrc":"18188:3:16","nodeType":"YulTypedName","src":"18188:3:16","type":""}]},{"body":{"nativeSrc":"18545:254:16","nodeType":"YulBlock","src":"18545:254:16","statements":[{"body":{"nativeSrc":"18611:162:16","nodeType":"YulBlock","src":"18611:162:16","statements":[{"nativeSrc":"18691:12:16","nodeType":"YulAssignment","src":"18691:12:16","value":{"kind":"number","nativeSrc":"18702:1:16","nodeType":"YulLiteral","src":"18702:1:16","type":"","value":"0"},"variableNames":[{"name":"success","nativeSrc":"18691:7:16","nodeType":"YulIdentifier","src":"18691:7:16"}]},{"nativeSrc":"18736:7:16","nodeType":"YulAssignment","src":"18736:7:16","value":{"kind":"number","nativeSrc":"18742:1:16","nodeType":"YulLiteral","src":"18742:1:16","type":"","value":"0"},"variableNames":[{"name":"cb","nativeSrc":"18736:2:16","nodeType":"YulIdentifier","src":"18736:2:16"}]}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"sc","nativeSrc":"18594:2:16","nodeType":"YulIdentifier","src":"18594:2:16"}],"functionName":{"name":"sload","nativeSrc":"18588:5:16","nodeType":"YulIdentifier","src":"18588:5:16"},"nativeSrc":"18588:9:16","nodeType":"YulFunctionCall","src":"18588:9:16"},{"arguments":[{"name":"mc","nativeSrc":"18605:2:16","nodeType":"YulIdentifier","src":"18605:2:16"}],"functionName":{"name":"mload","nativeSrc":"18599:5:16","nodeType":"YulIdentifier","src":"18599:5:16"},"nativeSrc":"18599:9:16","nodeType":"YulFunctionCall","src":"18599:9:16"}],"functionName":{"name":"eq","nativeSrc":"18585:2:16","nodeType":"YulIdentifier","src":"18585:2:16"},"nativeSrc":"18585:24:16","nodeType":"YulFunctionCall","src":"18585:24:16"}],"functionName":{"name":"iszero","nativeSrc":"18578:6:16","nodeType":"YulIdentifier","src":"18578:6:16"},"nativeSrc":"18578:32:16","nodeType":"YulFunctionCall","src":"18578:32:16"},"nativeSrc":"18575:198:16","nodeType":"YulIf","src":"18575:198:16"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"mc","nativeSrc":"18406:2:16","nodeType":"YulIdentifier","src":"18406:2:16"},{"name":"end","nativeSrc":"18410:3:16","nodeType":"YulIdentifier","src":"18410:3:16"}],"functionName":{"name":"lt","nativeSrc":"18403:2:16","nodeType":"YulIdentifier","src":"18403:2:16"},"nativeSrc":"18403:11:16","nodeType":"YulFunctionCall","src":"18403:11:16"},{"name":"cb","nativeSrc":"18416:2:16","nodeType":"YulIdentifier","src":"18416:2:16"}],"functionName":{"name":"add","nativeSrc":"18399:3:16","nodeType":"YulIdentifier","src":"18399:3:16"},"nativeSrc":"18399:20:16","nodeType":"YulFunctionCall","src":"18399:20:16"},{"kind":"number","nativeSrc":"18421:1:16","nodeType":"YulLiteral","src":"18421:1:16","type":"","value":"2"}],"functionName":{"name":"eq","nativeSrc":"18396:2:16","nodeType":"YulIdentifier","src":"18396:2:16"},"nativeSrc":"18396:27:16","nodeType":"YulFunctionCall","src":"18396:27:16"},"nativeSrc":"18363:436:16","nodeType":"YulForLoop","post":{"nativeSrc":"18424:120:16","nodeType":"YulBlock","src":"18424:120:16","statements":[{"nativeSrc":"18454:16:16","nodeType":"YulAssignment","src":"18454:16:16","value":{"arguments":[{"name":"sc","nativeSrc":"18464:2:16","nodeType":"YulIdentifier","src":"18464:2:16"},{"kind":"number","nativeSrc":"18468:1:16","nodeType":"YulLiteral","src":"18468:1:16","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"18460:3:16","nodeType":"YulIdentifier","src":"18460:3:16"},"nativeSrc":"18460:10:16","nodeType":"YulFunctionCall","src":"18460:10:16"},"variableNames":[{"name":"sc","nativeSrc":"18454:2:16","nodeType":"YulIdentifier","src":"18454:2:16"}]},{"nativeSrc":"18499:19:16","nodeType":"YulAssignment","src":"18499:19:16","value":{"arguments":[{"name":"mc","nativeSrc":"18509:2:16","nodeType":"YulIdentifier","src":"18509:2:16"},{"kind":"number","nativeSrc":"18513:4:16","nodeType":"YulLiteral","src":"18513:4:16","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"18505:3:16","nodeType":"YulIdentifier","src":"18505:3:16"},"nativeSrc":"18505:13:16","nodeType":"YulFunctionCall","src":"18505:13:16"},"variableNames":[{"name":"mc","nativeSrc":"18499:2:16","nodeType":"YulIdentifier","src":"18499:2:16"}]}]},"pre":{"nativeSrc":"18367:28:16","nodeType":"YulBlock","src":"18367:28:16","statements":[]},"src":"18363:436:16"}]},"nativeSrc":"17626:1195:16","nodeType":"YulCase","src":"17626:1195:16","value":"default"}],"expression":{"arguments":[{"name":"slength","nativeSrc":"17225:7:16","nodeType":"YulIdentifier","src":"17225:7:16"},{"kind":"number","nativeSrc":"17234:2:16","nodeType":"YulLiteral","src":"17234:2:16","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"17222:2:16","nodeType":"YulIdentifier","src":"17222:2:16"},"nativeSrc":"17222:15:16","nodeType":"YulFunctionCall","src":"17222:15:16"},"nativeSrc":"17215:1606:16","nodeType":"YulSwitch","src":"17215:1606:16"}]},"condition":{"arguments":[{"arguments":[{"name":"slength","nativeSrc":"17183:7:16","nodeType":"YulIdentifier","src":"17183:7:16"}],"functionName":{"name":"iszero","nativeSrc":"17176:6:16","nodeType":"YulIdentifier","src":"17176:6:16"},"nativeSrc":"17176:15:16","nodeType":"YulFunctionCall","src":"17176:15:16"}],"functionName":{"name":"iszero","nativeSrc":"17169:6:16","nodeType":"YulIdentifier","src":"17169:6:16"},"nativeSrc":"17169:23:16","nodeType":"YulFunctionCall","src":"17169:23:16"},"nativeSrc":"17166:1673:16","nodeType":"YulIf","src":"17166:1673:16"}]},"nativeSrc":"16875:1978:16","nodeType":"YulCase","src":"16875:1978:16","value":{"kind":"number","nativeSrc":"16880:1:16","nodeType":"YulLiteral","src":"16880:1:16","type":"","value":"1"}},{"body":{"nativeSrc":"18874:74:16","nodeType":"YulBlock","src":"18874:74:16","statements":[{"nativeSrc":"18922:12:16","nodeType":"YulAssignment","src":"18922:12:16","value":{"kind":"number","nativeSrc":"18933:1:16","nodeType":"YulLiteral","src":"18933:1:16","type":"","value":"0"},"variableNames":[{"name":"success","nativeSrc":"18922:7:16","nodeType":"YulIdentifier","src":"18922:7:16"}]}]},"nativeSrc":"18866:82:16","nodeType":"YulCase","src":"18866:82:16","value":"default"}],"expression":{"arguments":[{"name":"slength","nativeSrc":"16845:7:16","nodeType":"YulIdentifier","src":"16845:7:16"},{"name":"mlength","nativeSrc":"16854:7:16","nodeType":"YulIdentifier","src":"16854:7:16"}],"functionName":{"name":"eq","nativeSrc":"16842:2:16","nodeType":"YulIdentifier","src":"16842:2:16"},"nativeSrc":"16842:20:16","nodeType":"YulFunctionCall","src":"16842:20:16"},"nativeSrc":"16835:2113:16","nodeType":"YulSwitch","src":"16835:2113:16"}]},"evmVersion":"paris","externalReferences":[{"declaration":3214,"isOffset":false,"isSlot":false,"src":"16747:10:16","valueSize":1},{"declaration":3214,"isOffset":false,"isSlot":false,"src":"17452:10:16","valueSize":1},{"declaration":3214,"isOffset":false,"isSlot":false,"src":"18142:10:16","valueSize":1},{"declaration":3212,"isOffset":false,"isSlot":true,"src":"16531:14:16","suffix":"slot","valueSize":1},{"declaration":3212,"isOffset":false,"isSlot":true,"src":"18032:14:16","suffix":"slot","valueSize":1},{"declaration":3220,"isOffset":false,"isSlot":false,"src":"17545:7:16","valueSize":1},{"declaration":3220,"isOffset":false,"isSlot":false,"src":"18691:7:16","valueSize":1},{"declaration":3220,"isOffset":false,"isSlot":false,"src":"18922:7:16","valueSize":1}],"id":3223,"nodeType":"InlineAssembly","src":"16444:2514:16"},{"expression":{"id":3224,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3220,"src":"18975:7:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3218,"id":3225,"nodeType":"Return","src":"18968:14:16"}]},"id":3227,"implemented":true,"kind":"function","modifiers":[],"name":"equalStorage","nameLocation":"16312:12:16","nodeType":"FunctionDefinition","parameters":{"id":3215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3212,"mutability":"mutable","name":"_preBytes","nameLocation":"16339:9:16","nodeType":"VariableDeclaration","scope":3227,"src":"16325:23:16","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3211,"name":"bytes","nodeType":"ElementaryTypeName","src":"16325:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3214,"mutability":"mutable","name":"_postBytes","nameLocation":"16363:10:16","nodeType":"VariableDeclaration","scope":3227,"src":"16350:23:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3213,"name":"bytes","nodeType":"ElementaryTypeName","src":"16350:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"16324:50:16"},"returnParameters":{"id":3218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3217,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3227,"src":"16398:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3216,"name":"bool","nodeType":"ElementaryTypeName","src":"16398:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16397:6:16"},"scope":3228,"src":"16303:2686:16","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":3229,"src":"369:18622:16","usedErrors":[],"usedEvents":[]}],"src":"336:18656:16"},"id":16},"@layerzerolabs/solidity-examples/contracts/libraries/ExcessivelySafeCall.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/libraries/ExcessivelySafeCall.sol","exportedSymbols":{"ExcessivelySafeCall":[3325]},"id":3326,"license":"MIT OR Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":3230,"literals":["solidity",">=","0.7",".6"],"nodeType":"PragmaDirective","src":"46:24:17"},{"abstract":false,"baseContracts":[],"canonicalName":"ExcessivelySafeCall","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":3325,"linearizedBaseContracts":[3325],"name":"ExcessivelySafeCall","nameLocation":"80:19:17","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":3233,"mutability":"constant","name":"LOW_28_MASK","nameLocation":"120:11:17","nodeType":"VariableDeclaration","scope":3325,"src":"106:94:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3231,"name":"uint","nodeType":"ElementaryTypeName","src":"106:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307830303030303030306666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666","id":3232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"134:66:17","typeDescriptions":{"typeIdentifier":"t_rational_26959946667150639794667015087019630673637144422540572481103610249215_by_1","typeString":"int_const 2695...(60 digits omitted)...9215"},"value":"0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},"visibility":"internal"},{"body":{"id":3267,"nodeType":"Block","src":"1285:1100:17","statements":[{"assignments":[3250],"declarations":[{"constant":false,"id":3250,"mutability":"mutable","name":"_toCopy","nameLocation":"1336:7:17","nodeType":"VariableDeclaration","scope":3267,"src":"1331:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3249,"name":"uint","nodeType":"ElementaryTypeName","src":"1331:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3251,"nodeType":"VariableDeclarationStatement","src":"1331:12:17"},{"assignments":[3253],"declarations":[{"constant":false,"id":3253,"mutability":"mutable","name":"_success","nameLocation":"1358:8:17","nodeType":"VariableDeclaration","scope":3267,"src":"1353:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3252,"name":"bool","nodeType":"ElementaryTypeName","src":"1353:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":3254,"nodeType":"VariableDeclarationStatement","src":"1353:13:17"},{"assignments":[3256],"declarations":[{"constant":false,"id":3256,"mutability":"mutable","name":"_returnData","nameLocation":"1389:11:17","nodeType":"VariableDeclaration","scope":3267,"src":"1376:24:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3255,"name":"bytes","nodeType":"ElementaryTypeName","src":"1376:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3261,"initialValue":{"arguments":[{"id":3259,"name":"_maxCopy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3240,"src":"1413:8:17","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":3258,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1403:9:17","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":3257,"name":"bytes","nodeType":"ElementaryTypeName","src":"1407:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":3260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1403:19:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1376:46:17"},{"AST":{"nativeSrc":"1651:688:17","nodeType":"YulBlock","src":"1651:688:17","statements":[{"nativeSrc":"1665:279:17","nodeType":"YulAssignment","src":"1665:279:17","value":{"arguments":[{"name":"_gas","nativeSrc":"1699:4:17","nodeType":"YulIdentifier","src":"1699:4:17"},{"name":"_target","nativeSrc":"1728:7:17","nodeType":"YulIdentifier","src":"1728:7:17"},{"kind":"number","nativeSrc":"1766:1:17","nodeType":"YulLiteral","src":"1766:1:17","type":"","value":"0"},{"arguments":[{"name":"_calldata","nativeSrc":"1804:9:17","nodeType":"YulIdentifier","src":"1804:9:17"},{"kind":"number","nativeSrc":"1815:4:17","nodeType":"YulLiteral","src":"1815:4:17","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1800:3:17","nodeType":"YulIdentifier","src":"1800:3:17"},"nativeSrc":"1800:20:17","nodeType":"YulFunctionCall","src":"1800:20:17"},{"arguments":[{"name":"_calldata","nativeSrc":"1853:9:17","nodeType":"YulIdentifier","src":"1853:9:17"}],"functionName":{"name":"mload","nativeSrc":"1847:5:17","nodeType":"YulIdentifier","src":"1847:5:17"},"nativeSrc":"1847:16:17","nodeType":"YulFunctionCall","src":"1847:16:17"},{"kind":"number","nativeSrc":"1890:1:17","nodeType":"YulLiteral","src":"1890:1:17","type":"","value":"0"},{"kind":"number","nativeSrc":"1919:1:17","nodeType":"YulLiteral","src":"1919:1:17","type":"","value":"0"}],"functionName":{"name":"call","nativeSrc":"1677:4:17","nodeType":"YulIdentifier","src":"1677:4:17"},"nativeSrc":"1677:267:17","nodeType":"YulFunctionCall","src":"1677:267:17"},"variableNames":[{"name":"_success","nativeSrc":"1665:8:17","nodeType":"YulIdentifier","src":"1665:8:17"}]},{"nativeSrc":"2000:27:17","nodeType":"YulAssignment","src":"2000:27:17","value":{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"2011:14:17","nodeType":"YulIdentifier","src":"2011:14:17"},"nativeSrc":"2011:16:17","nodeType":"YulFunctionCall","src":"2011:16:17"},"variableNames":[{"name":"_toCopy","nativeSrc":"2000:7:17","nodeType":"YulIdentifier","src":"2000:7:17"}]},{"body":{"nativeSrc":"2065:51:17","nodeType":"YulBlock","src":"2065:51:17","statements":[{"nativeSrc":"2083:19:17","nodeType":"YulAssignment","src":"2083:19:17","value":{"name":"_maxCopy","nativeSrc":"2094:8:17","nodeType":"YulIdentifier","src":"2094:8:17"},"variableNames":[{"name":"_toCopy","nativeSrc":"2083:7:17","nodeType":"YulIdentifier","src":"2083:7:17"}]}]},"condition":{"arguments":[{"name":"_toCopy","nativeSrc":"2046:7:17","nodeType":"YulIdentifier","src":"2046:7:17"},{"name":"_maxCopy","nativeSrc":"2055:8:17","nodeType":"YulIdentifier","src":"2055:8:17"}],"functionName":{"name":"gt","nativeSrc":"2043:2:17","nodeType":"YulIdentifier","src":"2043:2:17"},"nativeSrc":"2043:21:17","nodeType":"YulFunctionCall","src":"2043:21:17"},"nativeSrc":"2040:76:17","nodeType":"YulIf","src":"2040:76:17"},{"expression":{"arguments":[{"name":"_returnData","nativeSrc":"2188:11:17","nodeType":"YulIdentifier","src":"2188:11:17"},{"name":"_toCopy","nativeSrc":"2201:7:17","nodeType":"YulIdentifier","src":"2201:7:17"}],"functionName":{"name":"mstore","nativeSrc":"2181:6:17","nodeType":"YulIdentifier","src":"2181:6:17"},"nativeSrc":"2181:28:17","nodeType":"YulFunctionCall","src":"2181:28:17"},"nativeSrc":"2181:28:17","nodeType":"YulExpressionStatement","src":"2181:28:17"},{"expression":{"arguments":[{"arguments":[{"name":"_returnData","nativeSrc":"2298:11:17","nodeType":"YulIdentifier","src":"2298:11:17"},{"kind":"number","nativeSrc":"2311:4:17","nodeType":"YulLiteral","src":"2311:4:17","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2294:3:17","nodeType":"YulIdentifier","src":"2294:3:17"},"nativeSrc":"2294:22:17","nodeType":"YulFunctionCall","src":"2294:22:17"},{"kind":"number","nativeSrc":"2318:1:17","nodeType":"YulLiteral","src":"2318:1:17","type":"","value":"0"},{"name":"_toCopy","nativeSrc":"2321:7:17","nodeType":"YulIdentifier","src":"2321:7:17"}],"functionName":{"name":"returndatacopy","nativeSrc":"2279:14:17","nodeType":"YulIdentifier","src":"2279:14:17"},"nativeSrc":"2279:50:17","nodeType":"YulFunctionCall","src":"2279:50:17"},"nativeSrc":"2279:50:17","nodeType":"YulExpressionStatement","src":"2279:50:17"}]},"evmVersion":"paris","externalReferences":[{"declaration":3242,"isOffset":false,"isSlot":false,"src":"1804:9:17","valueSize":1},{"declaration":3242,"isOffset":false,"isSlot":false,"src":"1853:9:17","valueSize":1},{"declaration":3238,"isOffset":false,"isSlot":false,"src":"1699:4:17","valueSize":1},{"declaration":3240,"isOffset":false,"isSlot":false,"src":"2055:8:17","valueSize":1},{"declaration":3240,"isOffset":false,"isSlot":false,"src":"2094:8:17","valueSize":1},{"declaration":3256,"isOffset":false,"isSlot":false,"src":"2188:11:17","valueSize":1},{"declaration":3256,"isOffset":false,"isSlot":false,"src":"2298:11:17","valueSize":1},{"declaration":3253,"isOffset":false,"isSlot":false,"src":"1665:8:17","valueSize":1},{"declaration":3236,"isOffset":false,"isSlot":false,"src":"1728:7:17","valueSize":1},{"declaration":3250,"isOffset":false,"isSlot":false,"src":"2000:7:17","valueSize":1},{"declaration":3250,"isOffset":false,"isSlot":false,"src":"2046:7:17","valueSize":1},{"declaration":3250,"isOffset":false,"isSlot":false,"src":"2083:7:17","valueSize":1},{"declaration":3250,"isOffset":false,"isSlot":false,"src":"2201:7:17","valueSize":1},{"declaration":3250,"isOffset":false,"isSlot":false,"src":"2321:7:17","valueSize":1}],"id":3262,"nodeType":"InlineAssembly","src":"1642:697:17"},{"expression":{"components":[{"id":3263,"name":"_success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3253,"src":"2356:8:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3264,"name":"_returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3256,"src":"2366:11:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":3265,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2355:23:17","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"functionReturnParameters":3248,"id":3266,"nodeType":"Return","src":"2348:30:17"}]},"documentation":{"id":3234,"nodeType":"StructuredDocumentation","src":"207:899:17","text":"@notice Use when you _really_ really _really_ don't trust the called\n contract. This prevents the called contract from causing reversion of\n the caller in as many ways as we can.\n @dev The main difference between this and a solidity low-level call is\n that we limit the number of bytes that the callee can cause to be\n copied to caller memory. This prevents stupid things like malicious\n contracts returning 10,000,000 bytes causing a local OOG when copying\n to memory.\n @param _target The address to call\n @param _gas The amount of gas to forward to the remote contract\n @param _maxCopy The maximum number of bytes of returndata to copy\n to memory.\n @param _calldata The data to send to the remote contract\n @return success and returndata, as `.call()`. Returndata is capped to\n `_maxCopy` bytes."},"id":3268,"implemented":true,"kind":"function","modifiers":[],"name":"excessivelySafeCall","nameLocation":"1120:19:17","nodeType":"FunctionDefinition","parameters":{"id":3243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3236,"mutability":"mutable","name":"_target","nameLocation":"1157:7:17","nodeType":"VariableDeclaration","scope":3268,"src":"1149:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3235,"name":"address","nodeType":"ElementaryTypeName","src":"1149:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3238,"mutability":"mutable","name":"_gas","nameLocation":"1179:4:17","nodeType":"VariableDeclaration","scope":3268,"src":"1174:9:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3237,"name":"uint","nodeType":"ElementaryTypeName","src":"1174:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3240,"mutability":"mutable","name":"_maxCopy","nameLocation":"1200:8:17","nodeType":"VariableDeclaration","scope":3268,"src":"1193:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3239,"name":"uint16","nodeType":"ElementaryTypeName","src":"1193:6:17","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3242,"mutability":"mutable","name":"_calldata","nameLocation":"1231:9:17","nodeType":"VariableDeclaration","scope":3268,"src":"1218:22:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3241,"name":"bytes","nodeType":"ElementaryTypeName","src":"1218:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1139:107:17"},"returnParameters":{"id":3248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3245,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3268,"src":"1265:4:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3244,"name":"bool","nodeType":"ElementaryTypeName","src":"1265:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3247,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3268,"src":"1271:12:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3246,"name":"bytes","nodeType":"ElementaryTypeName","src":"1271:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1264:20:17"},"scope":3325,"src":"1111:1274:17","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3302,"nodeType":"Block","src":"3480:1072:17","statements":[{"assignments":[3285],"declarations":[{"constant":false,"id":3285,"mutability":"mutable","name":"_toCopy","nameLocation":"3531:7:17","nodeType":"VariableDeclaration","scope":3302,"src":"3526:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3284,"name":"uint","nodeType":"ElementaryTypeName","src":"3526:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3286,"nodeType":"VariableDeclarationStatement","src":"3526:12:17"},{"assignments":[3288],"declarations":[{"constant":false,"id":3288,"mutability":"mutable","name":"_success","nameLocation":"3553:8:17","nodeType":"VariableDeclaration","scope":3302,"src":"3548:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3287,"name":"bool","nodeType":"ElementaryTypeName","src":"3548:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":3289,"nodeType":"VariableDeclarationStatement","src":"3548:13:17"},{"assignments":[3291],"declarations":[{"constant":false,"id":3291,"mutability":"mutable","name":"_returnData","nameLocation":"3584:11:17","nodeType":"VariableDeclaration","scope":3302,"src":"3571:24:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3290,"name":"bytes","nodeType":"ElementaryTypeName","src":"3571:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3296,"initialValue":{"arguments":[{"id":3294,"name":"_maxCopy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3275,"src":"3608:8:17","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":3293,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3598:9:17","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":3292,"name":"bytes","nodeType":"ElementaryTypeName","src":"3602:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":3295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3598:19:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3571:46:17"},{"AST":{"nativeSrc":"3846:660:17","nodeType":"YulBlock","src":"3846:660:17","statements":[{"nativeSrc":"3860:251:17","nodeType":"YulAssignment","src":"3860:251:17","value":{"arguments":[{"name":"_gas","nativeSrc":"3900:4:17","nodeType":"YulIdentifier","src":"3900:4:17"},{"name":"_target","nativeSrc":"3929:7:17","nodeType":"YulIdentifier","src":"3929:7:17"},{"arguments":[{"name":"_calldata","nativeSrc":"3971:9:17","nodeType":"YulIdentifier","src":"3971:9:17"},{"kind":"number","nativeSrc":"3982:4:17","nodeType":"YulLiteral","src":"3982:4:17","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3967:3:17","nodeType":"YulIdentifier","src":"3967:3:17"},"nativeSrc":"3967:20:17","nodeType":"YulFunctionCall","src":"3967:20:17"},{"arguments":[{"name":"_calldata","nativeSrc":"4020:9:17","nodeType":"YulIdentifier","src":"4020:9:17"}],"functionName":{"name":"mload","nativeSrc":"4014:5:17","nodeType":"YulIdentifier","src":"4014:5:17"},"nativeSrc":"4014:16:17","nodeType":"YulFunctionCall","src":"4014:16:17"},{"kind":"number","nativeSrc":"4057:1:17","nodeType":"YulLiteral","src":"4057:1:17","type":"","value":"0"},{"kind":"number","nativeSrc":"4086:1:17","nodeType":"YulLiteral","src":"4086:1:17","type":"","value":"0"}],"functionName":{"name":"staticcall","nativeSrc":"3872:10:17","nodeType":"YulIdentifier","src":"3872:10:17"},"nativeSrc":"3872:239:17","nodeType":"YulFunctionCall","src":"3872:239:17"},"variableNames":[{"name":"_success","nativeSrc":"3860:8:17","nodeType":"YulIdentifier","src":"3860:8:17"}]},{"nativeSrc":"4167:27:17","nodeType":"YulAssignment","src":"4167:27:17","value":{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"4178:14:17","nodeType":"YulIdentifier","src":"4178:14:17"},"nativeSrc":"4178:16:17","nodeType":"YulFunctionCall","src":"4178:16:17"},"variableNames":[{"name":"_toCopy","nativeSrc":"4167:7:17","nodeType":"YulIdentifier","src":"4167:7:17"}]},{"body":{"nativeSrc":"4232:51:17","nodeType":"YulBlock","src":"4232:51:17","statements":[{"nativeSrc":"4250:19:17","nodeType":"YulAssignment","src":"4250:19:17","value":{"name":"_maxCopy","nativeSrc":"4261:8:17","nodeType":"YulIdentifier","src":"4261:8:17"},"variableNames":[{"name":"_toCopy","nativeSrc":"4250:7:17","nodeType":"YulIdentifier","src":"4250:7:17"}]}]},"condition":{"arguments":[{"name":"_toCopy","nativeSrc":"4213:7:17","nodeType":"YulIdentifier","src":"4213:7:17"},{"name":"_maxCopy","nativeSrc":"4222:8:17","nodeType":"YulIdentifier","src":"4222:8:17"}],"functionName":{"name":"gt","nativeSrc":"4210:2:17","nodeType":"YulIdentifier","src":"4210:2:17"},"nativeSrc":"4210:21:17","nodeType":"YulFunctionCall","src":"4210:21:17"},"nativeSrc":"4207:76:17","nodeType":"YulIf","src":"4207:76:17"},{"expression":{"arguments":[{"name":"_returnData","nativeSrc":"4355:11:17","nodeType":"YulIdentifier","src":"4355:11:17"},{"name":"_toCopy","nativeSrc":"4368:7:17","nodeType":"YulIdentifier","src":"4368:7:17"}],"functionName":{"name":"mstore","nativeSrc":"4348:6:17","nodeType":"YulIdentifier","src":"4348:6:17"},"nativeSrc":"4348:28:17","nodeType":"YulFunctionCall","src":"4348:28:17"},"nativeSrc":"4348:28:17","nodeType":"YulExpressionStatement","src":"4348:28:17"},{"expression":{"arguments":[{"arguments":[{"name":"_returnData","nativeSrc":"4465:11:17","nodeType":"YulIdentifier","src":"4465:11:17"},{"kind":"number","nativeSrc":"4478:4:17","nodeType":"YulLiteral","src":"4478:4:17","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4461:3:17","nodeType":"YulIdentifier","src":"4461:3:17"},"nativeSrc":"4461:22:17","nodeType":"YulFunctionCall","src":"4461:22:17"},{"kind":"number","nativeSrc":"4485:1:17","nodeType":"YulLiteral","src":"4485:1:17","type":"","value":"0"},{"name":"_toCopy","nativeSrc":"4488:7:17","nodeType":"YulIdentifier","src":"4488:7:17"}],"functionName":{"name":"returndatacopy","nativeSrc":"4446:14:17","nodeType":"YulIdentifier","src":"4446:14:17"},"nativeSrc":"4446:50:17","nodeType":"YulFunctionCall","src":"4446:50:17"},"nativeSrc":"4446:50:17","nodeType":"YulExpressionStatement","src":"4446:50:17"}]},"evmVersion":"paris","externalReferences":[{"declaration":3277,"isOffset":false,"isSlot":false,"src":"3971:9:17","valueSize":1},{"declaration":3277,"isOffset":false,"isSlot":false,"src":"4020:9:17","valueSize":1},{"declaration":3273,"isOffset":false,"isSlot":false,"src":"3900:4:17","valueSize":1},{"declaration":3275,"isOffset":false,"isSlot":false,"src":"4222:8:17","valueSize":1},{"declaration":3275,"isOffset":false,"isSlot":false,"src":"4261:8:17","valueSize":1},{"declaration":3291,"isOffset":false,"isSlot":false,"src":"4355:11:17","valueSize":1},{"declaration":3291,"isOffset":false,"isSlot":false,"src":"4465:11:17","valueSize":1},{"declaration":3288,"isOffset":false,"isSlot":false,"src":"3860:8:17","valueSize":1},{"declaration":3271,"isOffset":false,"isSlot":false,"src":"3929:7:17","valueSize":1},{"declaration":3285,"isOffset":false,"isSlot":false,"src":"4167:7:17","valueSize":1},{"declaration":3285,"isOffset":false,"isSlot":false,"src":"4213:7:17","valueSize":1},{"declaration":3285,"isOffset":false,"isSlot":false,"src":"4250:7:17","valueSize":1},{"declaration":3285,"isOffset":false,"isSlot":false,"src":"4368:7:17","valueSize":1},{"declaration":3285,"isOffset":false,"isSlot":false,"src":"4488:7:17","valueSize":1}],"id":3297,"nodeType":"InlineAssembly","src":"3837:669:17"},{"expression":{"components":[{"id":3298,"name":"_success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3288,"src":"4523:8:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3299,"name":"_returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3291,"src":"4533:11:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":3300,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4522:23:17","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"functionReturnParameters":3283,"id":3301,"nodeType":"Return","src":"4515:30:17"}]},"documentation":{"id":3269,"nodeType":"StructuredDocumentation","src":"2391:899:17","text":"@notice Use when you _really_ really _really_ don't trust the called\n contract. This prevents the called contract from causing reversion of\n the caller in as many ways as we can.\n @dev The main difference between this and a solidity low-level call is\n that we limit the number of bytes that the callee can cause to be\n copied to caller memory. This prevents stupid things like malicious\n contracts returning 10,000,000 bytes causing a local OOG when copying\n to memory.\n @param _target The address to call\n @param _gas The amount of gas to forward to the remote contract\n @param _maxCopy The maximum number of bytes of returndata to copy\n to memory.\n @param _calldata The data to send to the remote contract\n @return success and returndata, as `.call()`. Returndata is capped to\n `_maxCopy` bytes."},"id":3303,"implemented":true,"kind":"function","modifiers":[],"name":"excessivelySafeStaticCall","nameLocation":"3304:25:17","nodeType":"FunctionDefinition","parameters":{"id":3278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3271,"mutability":"mutable","name":"_target","nameLocation":"3347:7:17","nodeType":"VariableDeclaration","scope":3303,"src":"3339:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3270,"name":"address","nodeType":"ElementaryTypeName","src":"3339:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3273,"mutability":"mutable","name":"_gas","nameLocation":"3369:4:17","nodeType":"VariableDeclaration","scope":3303,"src":"3364:9:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3272,"name":"uint","nodeType":"ElementaryTypeName","src":"3364:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3275,"mutability":"mutable","name":"_maxCopy","nameLocation":"3390:8:17","nodeType":"VariableDeclaration","scope":3303,"src":"3383:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3274,"name":"uint16","nodeType":"ElementaryTypeName","src":"3383:6:17","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3277,"mutability":"mutable","name":"_calldata","nameLocation":"3421:9:17","nodeType":"VariableDeclaration","scope":3303,"src":"3408:22:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3276,"name":"bytes","nodeType":"ElementaryTypeName","src":"3408:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3329:107:17"},"returnParameters":{"id":3283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3280,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3303,"src":"3460:4:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3279,"name":"bool","nodeType":"ElementaryTypeName","src":"3460:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3282,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3303,"src":"3466:12:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3281,"name":"bytes","nodeType":"ElementaryTypeName","src":"3466:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3459:20:17"},"scope":3325,"src":"3295:1257:17","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3323,"nodeType":"Block","src":"5081:376:17","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3312,"name":"_buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3308,"src":"5099:4:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5104:6:17","memberName":"length","nodeType":"MemberAccess","src":"5099:11:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"34","id":3314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5114:1:17","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"5099:16:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":3311,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5091:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":3316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5091:25:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3317,"nodeType":"ExpressionStatement","src":"5091:25:17"},{"assignments":[3319],"declarations":[{"constant":false,"id":3319,"mutability":"mutable","name":"_mask","nameLocation":"5131:5:17","nodeType":"VariableDeclaration","scope":3323,"src":"5126:10:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3318,"name":"uint","nodeType":"ElementaryTypeName","src":"5126:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3321,"initialValue":{"id":3320,"name":"LOW_28_MASK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3233,"src":"5139:11:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5126:24:17"},{"AST":{"nativeSrc":"5169:282:17","nodeType":"YulBlock","src":"5169:282:17","statements":[{"nativeSrc":"5221:35:17","nodeType":"YulVariableDeclaration","src":"5221:35:17","value":{"arguments":[{"arguments":[{"name":"_buf","nativeSrc":"5244:4:17","nodeType":"YulIdentifier","src":"5244:4:17"},{"kind":"number","nativeSrc":"5250:4:17","nodeType":"YulLiteral","src":"5250:4:17","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5240:3:17","nodeType":"YulIdentifier","src":"5240:3:17"},"nativeSrc":"5240:15:17","nodeType":"YulFunctionCall","src":"5240:15:17"}],"functionName":{"name":"mload","nativeSrc":"5234:5:17","nodeType":"YulIdentifier","src":"5234:5:17"},"nativeSrc":"5234:22:17","nodeType":"YulFunctionCall","src":"5234:22:17"},"variables":[{"name":"_word","nativeSrc":"5225:5:17","nodeType":"YulTypedName","src":"5225:5:17","type":""}]},{"nativeSrc":"5327:26:17","nodeType":"YulAssignment","src":"5327:26:17","value":{"arguments":[{"name":"_word","nativeSrc":"5340:5:17","nodeType":"YulIdentifier","src":"5340:5:17"},{"name":"_mask","nativeSrc":"5347:5:17","nodeType":"YulIdentifier","src":"5347:5:17"}],"functionName":{"name":"and","nativeSrc":"5336:3:17","nodeType":"YulIdentifier","src":"5336:3:17"},"nativeSrc":"5336:17:17","nodeType":"YulFunctionCall","src":"5336:17:17"},"variableNames":[{"name":"_word","nativeSrc":"5327:5:17","nodeType":"YulIdentifier","src":"5327:5:17"}]},{"nativeSrc":"5366:32:17","nodeType":"YulAssignment","src":"5366:32:17","value":{"arguments":[{"name":"_newSelector","nativeSrc":"5378:12:17","nodeType":"YulIdentifier","src":"5378:12:17"},{"name":"_word","nativeSrc":"5392:5:17","nodeType":"YulIdentifier","src":"5392:5:17"}],"functionName":{"name":"or","nativeSrc":"5375:2:17","nodeType":"YulIdentifier","src":"5375:2:17"},"nativeSrc":"5375:23:17","nodeType":"YulFunctionCall","src":"5375:23:17"},"variableNames":[{"name":"_word","nativeSrc":"5366:5:17","nodeType":"YulIdentifier","src":"5366:5:17"}]},{"expression":{"arguments":[{"arguments":[{"name":"_buf","nativeSrc":"5422:4:17","nodeType":"YulIdentifier","src":"5422:4:17"},{"kind":"number","nativeSrc":"5428:4:17","nodeType":"YulLiteral","src":"5428:4:17","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5418:3:17","nodeType":"YulIdentifier","src":"5418:3:17"},"nativeSrc":"5418:15:17","nodeType":"YulFunctionCall","src":"5418:15:17"},{"name":"_word","nativeSrc":"5435:5:17","nodeType":"YulIdentifier","src":"5435:5:17"}],"functionName":{"name":"mstore","nativeSrc":"5411:6:17","nodeType":"YulIdentifier","src":"5411:6:17"},"nativeSrc":"5411:30:17","nodeType":"YulFunctionCall","src":"5411:30:17"},"nativeSrc":"5411:30:17","nodeType":"YulExpressionStatement","src":"5411:30:17"}]},"evmVersion":"paris","externalReferences":[{"declaration":3308,"isOffset":false,"isSlot":false,"src":"5244:4:17","valueSize":1},{"declaration":3308,"isOffset":false,"isSlot":false,"src":"5422:4:17","valueSize":1},{"declaration":3319,"isOffset":false,"isSlot":false,"src":"5347:5:17","valueSize":1},{"declaration":3306,"isOffset":false,"isSlot":false,"src":"5378:12:17","valueSize":1}],"id":3322,"nodeType":"InlineAssembly","src":"5160:291:17"}]},"documentation":{"id":3304,"nodeType":"StructuredDocumentation","src":"4558:442:17","text":" @notice Swaps function selectors in encoded contract calls\n @dev Allows reuse of encoded calldata for functions with identical\n argument types but different names. It simply swaps out the first 4 bytes\n for the new selector. This function modifies memory in place, and should\n only be used with caution.\n @param _newSelector The new 4-byte selector\n @param _buf The encoded contract args"},"id":3324,"implemented":true,"kind":"function","modifiers":[],"name":"swapSelector","nameLocation":"5014:12:17","nodeType":"FunctionDefinition","parameters":{"id":3309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3306,"mutability":"mutable","name":"_newSelector","nameLocation":"5034:12:17","nodeType":"VariableDeclaration","scope":3324,"src":"5027:19:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":3305,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5027:6:17","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":3308,"mutability":"mutable","name":"_buf","nameLocation":"5061:4:17","nodeType":"VariableDeclaration","scope":3324,"src":"5048:17:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3307,"name":"bytes","nodeType":"ElementaryTypeName","src":"5048:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5026:40:17"},"returnParameters":{"id":3310,"nodeType":"ParameterList","parameters":[],"src":"5081:0:17"},"scope":3325,"src":"5005:452:17","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":3326,"src":"72:5387:17","usedErrors":[],"usedEvents":[]}],"src":"46:5414:17"},"id":17},"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol","exportedSymbols":{"BytesLib":[3228],"Context":[8099],"ILayerZeroEndpoint":[4253],"ILayerZeroReceiver":[4267],"ILayerZeroUserApplicationConfig":[4298],"LzApp":[3867],"Ownable":[7076]},"id":3868,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3327,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:18"},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":3328,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3868,"sourceUnit":7077,"src":"58:52:18","symbolAliases":[],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroReceiver.sol","file":"./interfaces/ILayerZeroReceiver.sol","id":3329,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3868,"sourceUnit":4268,"src":"111:45:18","symbolAliases":[],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroUserApplicationConfig.sol","file":"./interfaces/ILayerZeroUserApplicationConfig.sol","id":3330,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3868,"sourceUnit":4299,"src":"157:58:18","symbolAliases":[],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroEndpoint.sol","file":"./interfaces/ILayerZeroEndpoint.sol","id":3331,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3868,"sourceUnit":4254,"src":"216:45:18","symbolAliases":[],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/libraries/BytesLib.sol","file":"../libraries/BytesLib.sol","id":3332,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3868,"sourceUnit":3229,"src":"262:35:18","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":3333,"name":"Ownable","nameLocations":["372:7:18"],"nodeType":"IdentifierPath","referencedDeclaration":7076,"src":"372:7:18"},"id":3334,"nodeType":"InheritanceSpecifier","src":"372:7:18"},{"baseName":{"id":3335,"name":"ILayerZeroReceiver","nameLocations":["381:18:18"],"nodeType":"IdentifierPath","referencedDeclaration":4267,"src":"381:18:18"},"id":3336,"nodeType":"InheritanceSpecifier","src":"381:18:18"},{"baseName":{"id":3337,"name":"ILayerZeroUserApplicationConfig","nameLocations":["401:31:18"],"nodeType":"IdentifierPath","referencedDeclaration":4298,"src":"401:31:18"},"id":3338,"nodeType":"InheritanceSpecifier","src":"401:31:18"}],"canonicalName":"LzApp","contractDependencies":[],"contractKind":"contract","fullyImplemented":false,"id":3867,"linearizedBaseContracts":[3867,4298,4267,7076,8099],"name":"LzApp","nameLocation":"363:5:18","nodeType":"ContractDefinition","nodes":[{"global":false,"id":3341,"libraryName":{"id":3339,"name":"BytesLib","nameLocations":["445:8:18"],"nodeType":"IdentifierPath","referencedDeclaration":3228,"src":"445:8:18"},"nodeType":"UsingForDirective","src":"439:25:18","typeName":{"id":3340,"name":"bytes","nodeType":"ElementaryTypeName","src":"458:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},{"constant":true,"functionSelector":"c4461834","id":3344,"mutability":"constant","name":"DEFAULT_PAYLOAD_SIZE_LIMIT","nameLocation":"589:26:18","nodeType":"VariableDeclaration","scope":3867,"src":"568:55:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3342,"name":"uint","nodeType":"ElementaryTypeName","src":"568:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130303030","id":3343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"618:5:18","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"value":"10000"},"visibility":"public"},{"constant":false,"functionSelector":"b353aaa7","id":3347,"mutability":"immutable","name":"lzEndpoint","nameLocation":"666:10:18","nodeType":"VariableDeclaration","scope":3867,"src":"630:46:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$4253","typeString":"contract ILayerZeroEndpoint"},"typeName":{"id":3346,"nodeType":"UserDefinedTypeName","pathNode":{"id":3345,"name":"ILayerZeroEndpoint","nameLocations":["630:18:18"],"nodeType":"IdentifierPath","referencedDeclaration":4253,"src":"630:18:18"},"referencedDeclaration":4253,"src":"630:18:18","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$4253","typeString":"contract ILayerZeroEndpoint"}},"visibility":"public"},{"constant":false,"functionSelector":"7533d788","id":3351,"mutability":"mutable","name":"trustedRemoteLookup","nameLocation":"714:19:18","nodeType":"VariableDeclaration","scope":3867,"src":"682:51:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes)"},"typeName":{"id":3350,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":3348,"name":"uint16","nodeType":"ElementaryTypeName","src":"690:6:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"682:24:18","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":3349,"name":"bytes","nodeType":"ElementaryTypeName","src":"700:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"visibility":"public"},{"constant":false,"functionSelector":"8cfd8f5c","id":3357,"mutability":"mutable","name":"minDstGasLookup","nameLocation":"789:15:18","nodeType":"VariableDeclaration","scope":3867,"src":"739:65:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_uint16_$_t_uint256_$_$","typeString":"mapping(uint16 => mapping(uint16 => uint256))"},"typeName":{"id":3356,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":3352,"name":"uint16","nodeType":"ElementaryTypeName","src":"747:6:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"739:42:18","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_uint16_$_t_uint256_$_$","typeString":"mapping(uint16 => mapping(uint16 => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":3355,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":3353,"name":"uint16","nodeType":"ElementaryTypeName","src":"765:6:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"757:23:18","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":3354,"name":"uint","nodeType":"ElementaryTypeName","src":"775:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"public"},{"constant":false,"functionSelector":"3f1f4fa4","id":3361,"mutability":"mutable","name":"payloadSizeLimitLookup","nameLocation":"841:22:18","nodeType":"VariableDeclaration","scope":3867,"src":"810:53:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"},"typeName":{"id":3360,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":3358,"name":"uint16","nodeType":"ElementaryTypeName","src":"818:6:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"810:23:18","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":3359,"name":"uint","nodeType":"ElementaryTypeName","src":"828:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"functionSelector":"950c8a74","id":3363,"mutability":"mutable","name":"precrime","nameLocation":"884:8:18","nodeType":"VariableDeclaration","scope":3867,"src":"869:23:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3362,"name":"address","nodeType":"ElementaryTypeName","src":"869:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"anonymous":false,"eventSelector":"5db758e995a17ec1ad84bdef7e8c3293a0bd6179bcce400dff5d4c3d87db726b","id":3367,"name":"SetPrecrime","nameLocation":"905:11:18","nodeType":"EventDefinition","parameters":{"id":3366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3365,"indexed":false,"mutability":"mutable","name":"precrime","nameLocation":"925:8:18","nodeType":"VariableDeclaration","scope":3367,"src":"917:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3364,"name":"address","nodeType":"ElementaryTypeName","src":"917:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"916:18:18"},"src":"899:36:18"},{"anonymous":false,"eventSelector":"fa41487ad5d6728f0b19276fa1eddc16558578f5109fc39d2dc33c3230470dab","id":3373,"name":"SetTrustedRemote","nameLocation":"946:16:18","nodeType":"EventDefinition","parameters":{"id":3372,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3369,"indexed":false,"mutability":"mutable","name":"_remoteChainId","nameLocation":"970:14:18","nodeType":"VariableDeclaration","scope":3373,"src":"963:21:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3368,"name":"uint16","nodeType":"ElementaryTypeName","src":"963:6:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3371,"indexed":false,"mutability":"mutable","name":"_path","nameLocation":"992:5:18","nodeType":"VariableDeclaration","scope":3373,"src":"986:11:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3370,"name":"bytes","nodeType":"ElementaryTypeName","src":"986:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"962:36:18"},"src":"940:59:18"},{"anonymous":false,"eventSelector":"8c0400cfe2d1199b1a725c78960bcc2a344d869b80590d0f2bd005db15a572ce","id":3379,"name":"SetTrustedRemoteAddress","nameLocation":"1010:23:18","nodeType":"EventDefinition","parameters":{"id":3378,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3375,"indexed":false,"mutability":"mutable","name":"_remoteChainId","nameLocation":"1041:14:18","nodeType":"VariableDeclaration","scope":3379,"src":"1034:21:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3374,"name":"uint16","nodeType":"ElementaryTypeName","src":"1034:6:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3377,"indexed":false,"mutability":"mutable","name":"_remoteAddress","nameLocation":"1063:14:18","nodeType":"VariableDeclaration","scope":3379,"src":"1057:20:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3376,"name":"bytes","nodeType":"ElementaryTypeName","src":"1057:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1033:45:18"},"src":"1004:75:18"},{"anonymous":false,"eventSelector":"9d5c7c0b934da8fefa9c7760c98383778a12dfbfc0c3b3106518f43fb9508ac0","id":3387,"name":"SetMinDstGas","nameLocation":"1090:12:18","nodeType":"EventDefinition","parameters":{"id":3386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3381,"indexed":false,"mutability":"mutable","name":"_dstChainId","nameLocation":"1110:11:18","nodeType":"VariableDeclaration","scope":3387,"src":"1103:18:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3380,"name":"uint16","nodeType":"ElementaryTypeName","src":"1103:6:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3383,"indexed":false,"mutability":"mutable","name":"_type","nameLocation":"1130:5:18","nodeType":"VariableDeclaration","scope":3387,"src":"1123:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3382,"name":"uint16","nodeType":"ElementaryTypeName","src":"1123:6:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3385,"indexed":false,"mutability":"mutable","name":"_minDstGas","nameLocation":"1142:10:18","nodeType":"VariableDeclaration","scope":3387,"src":"1137:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3384,"name":"uint","nodeType":"ElementaryTypeName","src":"1137:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1102:51:18"},"src":"1084:70:18"},{"body":{"id":3398,"nodeType":"Block","src":"1191:59:18","statements":[{"expression":{"id":3396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3392,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3347,"src":"1201:10:18","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$4253","typeString":"contract ILayerZeroEndpoint"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3394,"name":"_endpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3389,"src":"1233:9:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3393,"name":"ILayerZeroEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4253,"src":"1214:18:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ILayerZeroEndpoint_$4253_$","typeString":"type(contract ILayerZeroEndpoint)"}},"id":3395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1214:29:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$4253","typeString":"contract ILayerZeroEndpoint"}},"src":"1201:42:18","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$4253","typeString":"contract ILayerZeroEndpoint"}},"id":3397,"nodeType":"ExpressionStatement","src":"1201:42:18"}]},"id":3399,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":3390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3389,"mutability":"mutable","name":"_endpoint","nameLocation":"1180:9:18","nodeType":"VariableDeclaration","scope":3399,"src":"1172:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3388,"name":"address","nodeType":"ElementaryTypeName","src":"1172:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1171:19:18"},"returnParameters":{"id":3391,"nodeType":"ParameterList","parameters":[],"src":"1191:0:18"},"scope":3867,"src":"1160:90:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[4266],"body":{"id":3457,"nodeType":"Block","src":"1425:656:18","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":3412,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8081,"src":"1508:10:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1508:12:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":3416,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3347,"src":"1532:10:18","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$4253","typeString":"contract ILayerZeroEndpoint"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$4253","typeString":"contract ILayerZeroEndpoint"}],"id":3415,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1524:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3414,"name":"address","nodeType":"ElementaryTypeName","src":"1524:7:18","typeDescriptions":{}}},"id":3417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1524:19:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1508:35:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c7a4170703a20696e76616c696420656e64706f696e742063616c6c6572","id":3419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1545:32:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9","typeString":"literal_string \"LzApp: invalid endpoint caller\""},"value":"LzApp: invalid endpoint caller"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9","typeString":"literal_string \"LzApp: invalid endpoint caller\""}],"id":3411,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1500:7:18","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1500:78:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3421,"nodeType":"ExpressionStatement","src":"1500:78:18"},{"assignments":[3423],"declarations":[{"constant":false,"id":3423,"mutability":"mutable","name":"trustedRemote","nameLocation":"1602:13:18","nodeType":"VariableDeclaration","scope":3457,"src":"1589:26:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3422,"name":"bytes","nodeType":"ElementaryTypeName","src":"1589:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3427,"initialValue":{"baseExpression":{"id":3424,"name":"trustedRemoteLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3351,"src":"1618:19:18","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":3426,"indexExpression":{"id":3425,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3401,"src":"1638:11:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1618:32:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"VariableDeclarationStatement","src":"1589:61:18"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3429,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3403,"src":"1813:11:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":3430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1825:6:18","memberName":"length","nodeType":"MemberAccess","src":"1813:18:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":3431,"name":"trustedRemote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3423,"src":"1835:13:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1849:6:18","memberName":"length","nodeType":"MemberAccess","src":"1835:20:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1813:42:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3434,"name":"trustedRemote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3423,"src":"1859:13:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1873:6:18","memberName":"length","nodeType":"MemberAccess","src":"1859:20:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1882:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1859:24:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1813:70:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":3445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3440,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3403,"src":"1897:11:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":3439,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1887:9:18","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1887:22:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":3443,"name":"trustedRemote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3423,"src":"1923:13:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3442,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1913:9:18","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1913:24:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1887:50:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1813:124:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f6e7472616374","id":3447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1951:40:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815","typeString":"literal_string \"LzApp: invalid source sending contract\""},"value":"LzApp: invalid source sending contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815","typeString":"literal_string \"LzApp: invalid source sending contract\""}],"id":3428,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1792:7:18","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1792:209:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3449,"nodeType":"ExpressionStatement","src":"1792:209:18"},{"expression":{"arguments":[{"id":3451,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3401,"src":"2031:11:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":3452,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3403,"src":"2044:11:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":3453,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3405,"src":"2057:6:18","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":3454,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3407,"src":"2065:8:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":3450,"name":"_blockingLzReceive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3469,"src":"2012:18:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory)"}},"id":3455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2012:62:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3456,"nodeType":"ExpressionStatement","src":"2012:62:18"}]},"functionSelector":"001d3567","id":3458,"implemented":true,"kind":"function","modifiers":[],"name":"lzReceive","nameLocation":"1265:9:18","nodeType":"FunctionDefinition","overrides":{"id":3409,"nodeType":"OverrideSpecifier","overrides":[],"src":"1416:8:18"},"parameters":{"id":3408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3401,"mutability":"mutable","name":"_srcChainId","nameLocation":"1291:11:18","nodeType":"VariableDeclaration","scope":3458,"src":"1284:18:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3400,"name":"uint16","nodeType":"ElementaryTypeName","src":"1284:6:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3403,"mutability":"mutable","name":"_srcAddress","nameLocation":"1327:11:18","nodeType":"VariableDeclaration","scope":3458,"src":"1312:26:18","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3402,"name":"bytes","nodeType":"ElementaryTypeName","src":"1312:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3405,"mutability":"mutable","name":"_nonce","nameLocation":"1355:6:18","nodeType":"VariableDeclaration","scope":3458,"src":"1348:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3404,"name":"uint64","nodeType":"ElementaryTypeName","src":"1348:6:18","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":3407,"mutability":"mutable","name":"_payload","nameLocation":"1386:8:18","nodeType":"VariableDeclaration","scope":3458,"src":"1371:23:18","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3406,"name":"bytes","nodeType":"ElementaryTypeName","src":"1371:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1274:126:18"},"returnParameters":{"id":3410,"nodeType":"ParameterList","parameters":[],"src":"1425:0:18"},"scope":3867,"src":"1256:825:18","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":3469,"implemented":false,"kind":"function","modifiers":[],"name":"_blockingLzReceive","nameLocation":"2239:18:18","nodeType":"FunctionDefinition","parameters":{"id":3467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3460,"mutability":"mutable","name":"_srcChainId","nameLocation":"2274:11:18","nodeType":"VariableDeclaration","scope":3469,"src":"2267:18:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3459,"name":"uint16","nodeType":"ElementaryTypeName","src":"2267:6:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3462,"mutability":"mutable","name":"_srcAddress","nameLocation":"2308:11:18","nodeType":"VariableDeclaration","scope":3469,"src":"2295:24:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3461,"name":"bytes","nodeType":"ElementaryTypeName","src":"2295:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3464,"mutability":"mutable","name":"_nonce","nameLocation":"2336:6:18","nodeType":"VariableDeclaration","scope":3469,"src":"2329:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3463,"name":"uint64","nodeType":"ElementaryTypeName","src":"2329:6:18","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":3466,"mutability":"mutable","name":"_payload","nameLocation":"2365:8:18","nodeType":"VariableDeclaration","scope":3469,"src":"2352:21:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3465,"name":"bytes","nodeType":"ElementaryTypeName","src":"2352:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2257:122:18"},"returnParameters":{"id":3468,"nodeType":"ParameterList","parameters":[],"src":"2396:0:18"},"scope":3867,"src":"2230:167:18","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3517,"nodeType":"Block","src":"2640:365:18","statements":[{"assignments":[3485],"declarations":[{"constant":false,"id":3485,"mutability":"mutable","name":"trustedRemote","nameLocation":"2663:13:18","nodeType":"VariableDeclaration","scope":3517,"src":"2650:26:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3484,"name":"bytes","nodeType":"ElementaryTypeName","src":"2650:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3489,"initialValue":{"baseExpression":{"id":3486,"name":"trustedRemoteLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3351,"src":"2679:19:18","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":3488,"indexExpression":{"id":3487,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3471,"src":"2699:11:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2679:32:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2650:61:18"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3491,"name":"trustedRemote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3485,"src":"2729:13:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2743:6:18","memberName":"length","nodeType":"MemberAccess","src":"2729:20:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":3493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2753:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2729:25:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c7a4170703a2064657374696e6174696f6e20636861696e206973206e6f742061207472757374656420736f75726365","id":3495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2756:50:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_65511ce9fb02a17101879c9b581e54d0cddc37b781936a67d4a6ef307ad5afd7","typeString":"literal_string \"LzApp: destination chain is not a trusted source\""},"value":"LzApp: destination chain is not a trusted source"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_65511ce9fb02a17101879c9b581e54d0cddc37b781936a67d4a6ef307ad5afd7","typeString":"literal_string \"LzApp: destination chain is not a trusted source\""}],"id":3490,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2721:7:18","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2721:86:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3497,"nodeType":"ExpressionStatement","src":"2721:86:18"},{"expression":{"arguments":[{"id":3499,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3471,"src":"2835:11:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"expression":{"id":3500,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3473,"src":"2848:8:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2857:6:18","memberName":"length","nodeType":"MemberAccess","src":"2848:15:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3498,"name":"_checkPayloadSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3607,"src":"2817:17:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (uint16,uint256) view"}},"id":3502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2817:47:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3503,"nodeType":"ExpressionStatement","src":"2817:47:18"},{"expression":{"arguments":[{"id":3509,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3471,"src":"2909:11:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":3510,"name":"trustedRemote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3485,"src":"2922:13:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3511,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3473,"src":"2937:8:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3512,"name":"_refundAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3475,"src":"2947:14:18","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":3513,"name":"_zroPaymentAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3477,"src":"2963:18:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3514,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3479,"src":"2983:14:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":3504,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3347,"src":"2874:10:18","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$4253","typeString":"contract ILayerZeroEndpoint"}},"id":3506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2885:4:18","memberName":"send","nodeType":"MemberAccess","referencedDeclaration":4128,"src":"2874:15:18","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint16_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_address_payable_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,bytes memory,address payable,address,bytes memory) payable external"}},"id":3508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":3507,"name":"_nativeFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3481,"src":"2897:10:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2874:34:18","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint16_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_address_payable_$_t_address_$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (uint16,bytes memory,bytes memory,address payable,address,bytes memory) payable external"}},"id":3515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2874:124:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3516,"nodeType":"ExpressionStatement","src":"2874:124:18"}]},"id":3518,"implemented":true,"kind":"function","modifiers":[],"name":"_lzSend","nameLocation":"2412:7:18","nodeType":"FunctionDefinition","parameters":{"id":3482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3471,"mutability":"mutable","name":"_dstChainId","nameLocation":"2436:11:18","nodeType":"VariableDeclaration","scope":3518,"src":"2429:18:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3470,"name":"uint16","nodeType":"ElementaryTypeName","src":"2429:6:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3473,"mutability":"mutable","name":"_payload","nameLocation":"2470:8:18","nodeType":"VariableDeclaration","scope":3518,"src":"2457:21:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3472,"name":"bytes","nodeType":"ElementaryTypeName","src":"2457:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3475,"mutability":"mutable","name":"_refundAddress","nameLocation":"2504:14:18","nodeType":"VariableDeclaration","scope":3518,"src":"2488:30:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":3474,"name":"address","nodeType":"ElementaryTypeName","src":"2488:15:18","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":3477,"mutability":"mutable","name":"_zroPaymentAddress","nameLocation":"2536:18:18","nodeType":"VariableDeclaration","scope":3518,"src":"2528:26:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3476,"name":"address","nodeType":"ElementaryTypeName","src":"2528:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3479,"mutability":"mutable","name":"_adapterParams","nameLocation":"2577:14:18","nodeType":"VariableDeclaration","scope":3518,"src":"2564:27:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3478,"name":"bytes","nodeType":"ElementaryTypeName","src":"2564:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3481,"mutability":"mutable","name":"_nativeFee","nameLocation":"2606:10:18","nodeType":"VariableDeclaration","scope":3518,"src":"2601:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3480,"name":"uint","nodeType":"ElementaryTypeName","src":"2601:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2419:203:18"},"returnParameters":{"id":3483,"nodeType":"ParameterList","parameters":[],"src":"2640:0:18"},"scope":3867,"src":"2403:602:18","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3559,"nodeType":"Block","src":"3174:290:18","statements":[{"assignments":[3530],"declarations":[{"constant":false,"id":3530,"mutability":"mutable","name":"providedGasLimit","nameLocation":"3189:16:18","nodeType":"VariableDeclaration","scope":3559,"src":"3184:21:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3529,"name":"uint","nodeType":"ElementaryTypeName","src":"3184:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3534,"initialValue":{"arguments":[{"id":3532,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3524,"src":"3221:14:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3531,"name":"_getGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3577,"src":"3208:12:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":3533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3208:28:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3184:52:18"},{"assignments":[3536],"declarations":[{"constant":false,"id":3536,"mutability":"mutable","name":"minGasLimit","nameLocation":"3251:11:18","nodeType":"VariableDeclaration","scope":3559,"src":"3246:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3535,"name":"uint","nodeType":"ElementaryTypeName","src":"3246:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3542,"initialValue":{"baseExpression":{"baseExpression":{"id":3537,"name":"minDstGasLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3357,"src":"3265:15:18","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_uint16_$_t_uint256_$_$","typeString":"mapping(uint16 => mapping(uint16 => uint256))"}},"id":3539,"indexExpression":{"id":3538,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3520,"src":"3281:11:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3265:28:18","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":3541,"indexExpression":{"id":3540,"name":"_type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3522,"src":"3294:5:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3265:35:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3246:54:18"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3544,"name":"minGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3536,"src":"3318:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3332:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3318:15:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c7a4170703a206d696e4761734c696d6974206e6f7420736574","id":3547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3335:28:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_1c12f4398e5982835c19ea43197ffa859493a10bdc288c7cacc6a2d6df414b01","typeString":"literal_string \"LzApp: minGasLimit not set\""},"value":"LzApp: minGasLimit not set"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1c12f4398e5982835c19ea43197ffa859493a10bdc288c7cacc6a2d6df414b01","typeString":"literal_string \"LzApp: minGasLimit not set\""}],"id":3543,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3310:7:18","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3310:54:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3549,"nodeType":"ExpressionStatement","src":"3310:54:18"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3551,"name":"providedGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3530,"src":"3382:16:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3552,"name":"minGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3536,"src":"3402:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":3553,"name":"_extraGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3526,"src":"3416:9:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3402:23:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3382:43:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c7a4170703a20676173206c696d697420697320746f6f206c6f77","id":3556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3427:29:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_0cfbfb89d1bd60ee521649a7dce886710cc0992622f97b32d8e555a9c7073be1","typeString":"literal_string \"LzApp: gas limit is too low\""},"value":"LzApp: gas limit is too low"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0cfbfb89d1bd60ee521649a7dce886710cc0992622f97b32d8e555a9c7073be1","typeString":"literal_string \"LzApp: gas limit is too low\""}],"id":3550,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3374:7:18","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3374:83:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3558,"nodeType":"ExpressionStatement","src":"3374:83:18"}]},"id":3560,"implemented":true,"kind":"function","modifiers":[],"name":"_checkGasLimit","nameLocation":"3020:14:18","nodeType":"FunctionDefinition","parameters":{"id":3527,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3520,"mutability":"mutable","name":"_dstChainId","nameLocation":"3051:11:18","nodeType":"VariableDeclaration","scope":3560,"src":"3044:18:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3519,"name":"uint16","nodeType":"ElementaryTypeName","src":"3044:6:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3522,"mutability":"mutable","name":"_type","nameLocation":"3079:5:18","nodeType":"VariableDeclaration","scope":3560,"src":"3072:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3521,"name":"uint16","nodeType":"ElementaryTypeName","src":"3072:6:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3524,"mutability":"mutable","name":"_adapterParams","nameLocation":"3107:14:18","nodeType":"VariableDeclaration","scope":3560,"src":"3094:27:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3523,"name":"bytes","nodeType":"ElementaryTypeName","src":"3094:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3526,"mutability":"mutable","name":"_extraGas","nameLocation":"3136:9:18","nodeType":"VariableDeclaration","scope":3560,"src":"3131:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3525,"name":"uint","nodeType":"ElementaryTypeName","src":"3131:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3034:117:18"},"returnParameters":{"id":3528,"nodeType":"ParameterList","parameters":[],"src":"3174:0:18"},"scope":3867,"src":"3011:453:18","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":3576,"nodeType":"Block","src":"3567:169:18","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3568,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3562,"src":"3585:14:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3600:6:18","memberName":"length","nodeType":"MemberAccess","src":"3585:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"3334","id":3570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3610:2:18","typeDescriptions":{"typeIdentifier":"t_rational_34_by_1","typeString":"int_const 34"},"value":"34"},"src":"3585:27:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c7a4170703a20696e76616c69642061646170746572506172616d73","id":3572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3614:30:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_6e109d210c1f1e494c2d731512d3fcc1ea597f69de36a4fccbe193d9ece27e6d","typeString":"literal_string \"LzApp: invalid adapterParams\""},"value":"LzApp: invalid adapterParams"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6e109d210c1f1e494c2d731512d3fcc1ea597f69de36a4fccbe193d9ece27e6d","typeString":"literal_string \"LzApp: invalid adapterParams\""}],"id":3567,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3577:7:18","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3577:68:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3574,"nodeType":"ExpressionStatement","src":"3577:68:18"},{"AST":{"nativeSrc":"3664:66:18","nodeType":"YulBlock","src":"3664:66:18","statements":[{"nativeSrc":"3678:42:18","nodeType":"YulAssignment","src":"3678:42:18","value":{"arguments":[{"arguments":[{"name":"_adapterParams","nativeSrc":"3700:14:18","nodeType":"YulIdentifier","src":"3700:14:18"},{"kind":"number","nativeSrc":"3716:2:18","nodeType":"YulLiteral","src":"3716:2:18","type":"","value":"34"}],"functionName":{"name":"add","nativeSrc":"3696:3:18","nodeType":"YulIdentifier","src":"3696:3:18"},"nativeSrc":"3696:23:18","nodeType":"YulFunctionCall","src":"3696:23:18"}],"functionName":{"name":"mload","nativeSrc":"3690:5:18","nodeType":"YulIdentifier","src":"3690:5:18"},"nativeSrc":"3690:30:18","nodeType":"YulFunctionCall","src":"3690:30:18"},"variableNames":[{"name":"gasLimit","nativeSrc":"3678:8:18","nodeType":"YulIdentifier","src":"3678:8:18"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":3562,"isOffset":false,"isSlot":false,"src":"3700:14:18","valueSize":1},{"declaration":3565,"isOffset":false,"isSlot":false,"src":"3678:8:18","valueSize":1}],"id":3575,"nodeType":"InlineAssembly","src":"3655:75:18"}]},"id":3577,"implemented":true,"kind":"function","modifiers":[],"name":"_getGasLimit","nameLocation":"3479:12:18","nodeType":"FunctionDefinition","parameters":{"id":3563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3562,"mutability":"mutable","name":"_adapterParams","nameLocation":"3505:14:18","nodeType":"VariableDeclaration","scope":3577,"src":"3492:27:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3561,"name":"bytes","nodeType":"ElementaryTypeName","src":"3492:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3491:29:18"},"returnParameters":{"id":3566,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3565,"mutability":"mutable","name":"gasLimit","nameLocation":"3557:8:18","nodeType":"VariableDeclaration","scope":3577,"src":"3552:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3564,"name":"uint","nodeType":"ElementaryTypeName","src":"3552:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3551:15:18"},"scope":3867,"src":"3470:266:18","stateMutability":"pure","virtual":true,"visibility":"internal"},{"body":{"id":3606,"nodeType":"Block","src":"3830:307:18","statements":[{"assignments":[3585],"declarations":[{"constant":false,"id":3585,"mutability":"mutable","name":"payloadSizeLimit","nameLocation":"3845:16:18","nodeType":"VariableDeclaration","scope":3606,"src":"3840:21:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3584,"name":"uint","nodeType":"ElementaryTypeName","src":"3840:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3589,"initialValue":{"baseExpression":{"id":3586,"name":"payloadSizeLimitLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3361,"src":"3864:22:18","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":3588,"indexExpression":{"id":3587,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3579,"src":"3887:11:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3864:35:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3840:59:18"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3590,"name":"payloadSizeLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3585,"src":"3913:16:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3591,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3933:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3913:21:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3598,"nodeType":"IfStatement","src":"3909:135:18","trueBody":{"id":3597,"nodeType":"Block","src":"3936:108:18","statements":[{"expression":{"id":3595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3593,"name":"payloadSizeLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3585,"src":"3988:16:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3594,"name":"DEFAULT_PAYLOAD_SIZE_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3344,"src":"4007:26:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3988:45:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3596,"nodeType":"ExpressionStatement","src":"3988:45:18"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3600,"name":"_payloadSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3581,"src":"4061:12:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":3601,"name":"payloadSizeLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3585,"src":"4077:16:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4061:32:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c7a4170703a207061796c6f61642073697a6520697320746f6f206c61726765","id":3603,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4095:34:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_fdfeef12c0e20d028b50cab1ee288ba9867f56b726ecc8cd0c9ed3048ec177dd","typeString":"literal_string \"LzApp: payload size is too large\""},"value":"LzApp: payload size is too large"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fdfeef12c0e20d028b50cab1ee288ba9867f56b726ecc8cd0c9ed3048ec177dd","typeString":"literal_string \"LzApp: payload size is too large\""}],"id":3599,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4053:7:18","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4053:77:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3605,"nodeType":"ExpressionStatement","src":"4053:77:18"}]},"id":3607,"implemented":true,"kind":"function","modifiers":[],"name":"_checkPayloadSize","nameLocation":"3751:17:18","nodeType":"FunctionDefinition","parameters":{"id":3582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3579,"mutability":"mutable","name":"_dstChainId","nameLocation":"3776:11:18","nodeType":"VariableDeclaration","scope":3607,"src":"3769:18:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3578,"name":"uint16","nodeType":"ElementaryTypeName","src":"3769:6:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3581,"mutability":"mutable","name":"_payloadSize","nameLocation":"3794:12:18","nodeType":"VariableDeclaration","scope":3607,"src":"3789:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3580,"name":"uint","nodeType":"ElementaryTypeName","src":"3789:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3768:39:18"},"returnParameters":{"id":3583,"nodeType":"ParameterList","parameters":[],"src":"3830:0:18"},"scope":3867,"src":"3742:395:18","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":3631,"nodeType":"Block","src":"4394:92:18","statements":[{"expression":{"arguments":[{"id":3622,"name":"_version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3609,"src":"4432:8:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":3623,"name":"_chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3611,"src":"4442:8:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"arguments":[{"id":3626,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4460:4:18","typeDescriptions":{"typeIdentifier":"t_contract$_LzApp_$3867","typeString":"contract LzApp"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LzApp_$3867","typeString":"contract LzApp"}],"id":3625,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4452:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3624,"name":"address","nodeType":"ElementaryTypeName","src":"4452:7:18","typeDescriptions":{}}},"id":3627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4452:13:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3628,"name":"_configType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3615,"src":"4467:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3620,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3347,"src":"4411:10:18","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$4253","typeString":"contract ILayerZeroEndpoint"}},"id":3621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4422:9:18","memberName":"getConfig","nodeType":"MemberAccess","referencedDeclaration":4238,"src":"4411:20:18","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint16_$_t_uint16_$_t_address_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint16,uint16,address,uint256) view external returns (bytes memory)"}},"id":3629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4411:68:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":3619,"id":3630,"nodeType":"Return","src":"4404:75:18"}]},"functionSelector":"f5ecbdbc","id":3632,"implemented":true,"kind":"function","modifiers":[],"name":"getConfig","nameLocation":"4248:9:18","nodeType":"FunctionDefinition","parameters":{"id":3616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3609,"mutability":"mutable","name":"_version","nameLocation":"4274:8:18","nodeType":"VariableDeclaration","scope":3632,"src":"4267:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3608,"name":"uint16","nodeType":"ElementaryTypeName","src":"4267:6:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3611,"mutability":"mutable","name":"_chainId","nameLocation":"4299:8:18","nodeType":"VariableDeclaration","scope":3632,"src":"4292:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3610,"name":"uint16","nodeType":"ElementaryTypeName","src":"4292:6:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3613,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3632,"src":"4317:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3612,"name":"address","nodeType":"ElementaryTypeName","src":"4317:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3615,"mutability":"mutable","name":"_configType","nameLocation":"4339:11:18","nodeType":"VariableDeclaration","scope":3632,"src":"4334:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3614,"name":"uint","nodeType":"ElementaryTypeName","src":"4334:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4257:99:18"},"returnParameters":{"id":3619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3618,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3632,"src":"4380:12:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3617,"name":"bytes","nodeType":"ElementaryTypeName","src":"4380:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4379:14:18"},"scope":3867,"src":"4239:247:18","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[4280],"body":{"id":3655,"nodeType":"Block","src":"4706:79:18","statements":[{"expression":{"arguments":[{"id":3649,"name":"_version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3634,"src":"4737:8:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":3650,"name":"_chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3636,"src":"4747:8:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":3651,"name":"_configType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3638,"src":"4757:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3652,"name":"_config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3640,"src":"4770:7:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":3646,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3347,"src":"4716:10:18","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$4253","typeString":"contract ILayerZeroEndpoint"}},"id":3648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4727:9:18","memberName":"setConfig","nodeType":"MemberAccess","referencedDeclaration":4280,"src":"4716:20:18","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_uint16_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,uint16,uint256,bytes memory) external"}},"id":3653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4716:62:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3654,"nodeType":"ExpressionStatement","src":"4716:62:18"}]},"functionSelector":"cbed8b9c","id":3656,"implemented":true,"kind":"function","modifiers":[{"id":3644,"kind":"modifierInvocation","modifierName":{"id":3643,"name":"onlyOwner","nameLocations":["4696:9:18"],"nodeType":"IdentifierPath","referencedDeclaration":6995,"src":"4696:9:18"},"nodeType":"ModifierInvocation","src":"4696:9:18"}],"name":"setConfig","nameLocation":"4554:9:18","nodeType":"FunctionDefinition","overrides":{"id":3642,"nodeType":"OverrideSpecifier","overrides":[],"src":"4687:8:18"},"parameters":{"id":3641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3634,"mutability":"mutable","name":"_version","nameLocation":"4580:8:18","nodeType":"VariableDeclaration","scope":3656,"src":"4573:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3633,"name":"uint16","nodeType":"ElementaryTypeName","src":"4573:6:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3636,"mutability":"mutable","name":"_chainId","nameLocation":"4605:8:18","nodeType":"VariableDeclaration","scope":3656,"src":"4598:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3635,"name":"uint16","nodeType":"ElementaryTypeName","src":"4598:6:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3638,"mutability":"mutable","name":"_configType","nameLocation":"4628:11:18","nodeType":"VariableDeclaration","scope":3656,"src":"4623:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3637,"name":"uint","nodeType":"ElementaryTypeName","src":"4623:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3640,"mutability":"mutable","name":"_config","nameLocation":"4664:7:18","nodeType":"VariableDeclaration","scope":3656,"src":"4649:22:18","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3639,"name":"bytes","nodeType":"ElementaryTypeName","src":"4649:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4563:114:18"},"returnParameters":{"id":3645,"nodeType":"ParameterList","parameters":[],"src":"4706:0:18"},"scope":3867,"src":"4545:240:18","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[4285],"body":{"id":3670,"nodeType":"Block","src":"4860:52:18","statements":[{"expression":{"arguments":[{"id":3667,"name":"_version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3658,"src":"4896:8:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"id":3664,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3347,"src":"4870:10:18","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$4253","typeString":"contract ILayerZeroEndpoint"}},"id":3666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4881:14:18","memberName":"setSendVersion","nodeType":"MemberAccess","referencedDeclaration":4285,"src":"4870:25:18","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$returns$__$","typeString":"function (uint16) external"}},"id":3668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4870:35:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3669,"nodeType":"ExpressionStatement","src":"4870:35:18"}]},"functionSelector":"07e0db17","id":3671,"implemented":true,"kind":"function","modifiers":[{"id":3662,"kind":"modifierInvocation","modifierName":{"id":3661,"name":"onlyOwner","nameLocations":["4850:9:18"],"nodeType":"IdentifierPath","referencedDeclaration":6995,"src":"4850:9:18"},"nodeType":"ModifierInvocation","src":"4850:9:18"}],"name":"setSendVersion","nameLocation":"4800:14:18","nodeType":"FunctionDefinition","overrides":{"id":3660,"nodeType":"OverrideSpecifier","overrides":[],"src":"4841:8:18"},"parameters":{"id":3659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3658,"mutability":"mutable","name":"_version","nameLocation":"4822:8:18","nodeType":"VariableDeclaration","scope":3671,"src":"4815:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3657,"name":"uint16","nodeType":"ElementaryTypeName","src":"4815:6:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"4814:17:18"},"returnParameters":{"id":3663,"nodeType":"ParameterList","parameters":[],"src":"4860:0:18"},"scope":3867,"src":"4791:121:18","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[4290],"body":{"id":3685,"nodeType":"Block","src":"4990:55:18","statements":[{"expression":{"arguments":[{"id":3682,"name":"_version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3673,"src":"5029:8:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"id":3679,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3347,"src":"5000:10:18","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$4253","typeString":"contract ILayerZeroEndpoint"}},"id":3681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5011:17:18","memberName":"setReceiveVersion","nodeType":"MemberAccess","referencedDeclaration":4290,"src":"5000:28:18","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$returns$__$","typeString":"function (uint16) external"}},"id":3683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5000:38:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3684,"nodeType":"ExpressionStatement","src":"5000:38:18"}]},"functionSelector":"10ddb137","id":3686,"implemented":true,"kind":"function","modifiers":[{"id":3677,"kind":"modifierInvocation","modifierName":{"id":3676,"name":"onlyOwner","nameLocations":["4980:9:18"],"nodeType":"IdentifierPath","referencedDeclaration":6995,"src":"4980:9:18"},"nodeType":"ModifierInvocation","src":"4980:9:18"}],"name":"setReceiveVersion","nameLocation":"4927:17:18","nodeType":"FunctionDefinition","overrides":{"id":3675,"nodeType":"OverrideSpecifier","overrides":[],"src":"4971:8:18"},"parameters":{"id":3674,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3673,"mutability":"mutable","name":"_version","nameLocation":"4952:8:18","nodeType":"VariableDeclaration","scope":3686,"src":"4945:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3672,"name":"uint16","nodeType":"ElementaryTypeName","src":"4945:6:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"4944:17:18"},"returnParameters":{"id":3678,"nodeType":"ParameterList","parameters":[],"src":"4990:0:18"},"scope":3867,"src":"4918:127:18","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[4297],"body":{"id":3703,"nodeType":"Block","src":"5155:72:18","statements":[{"expression":{"arguments":[{"id":3699,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3688,"src":"5195:11:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":3700,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3690,"src":"5208:11:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":3696,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3347,"src":"5165:10:18","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$4253","typeString":"contract ILayerZeroEndpoint"}},"id":3698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5176:18:18","memberName":"forceResumeReceive","nodeType":"MemberAccess","referencedDeclaration":4297,"src":"5165:29:18","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory) external"}},"id":3701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5165:55:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3702,"nodeType":"ExpressionStatement","src":"5165:55:18"}]},"functionSelector":"42d65a8d","id":3704,"implemented":true,"kind":"function","modifiers":[{"id":3694,"kind":"modifierInvocation","modifierName":{"id":3693,"name":"onlyOwner","nameLocations":["5145:9:18"],"nodeType":"IdentifierPath","referencedDeclaration":6995,"src":"5145:9:18"},"nodeType":"ModifierInvocation","src":"5145:9:18"}],"name":"forceResumeReceive","nameLocation":"5060:18:18","nodeType":"FunctionDefinition","overrides":{"id":3692,"nodeType":"OverrideSpecifier","overrides":[],"src":"5136:8:18"},"parameters":{"id":3691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3688,"mutability":"mutable","name":"_srcChainId","nameLocation":"5086:11:18","nodeType":"VariableDeclaration","scope":3704,"src":"5079:18:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3687,"name":"uint16","nodeType":"ElementaryTypeName","src":"5079:6:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3690,"mutability":"mutable","name":"_srcAddress","nameLocation":"5114:11:18","nodeType":"VariableDeclaration","scope":3704,"src":"5099:26:18","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3689,"name":"bytes","nodeType":"ElementaryTypeName","src":"5099:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5078:48:18"},"returnParameters":{"id":3695,"nodeType":"ParameterList","parameters":[],"src":"5155:0:18"},"scope":3867,"src":"5051:176:18","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":3724,"nodeType":"Block","src":"5460:114:18","statements":[{"expression":{"id":3717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3713,"name":"trustedRemoteLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3351,"src":"5470:19:18","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":3715,"indexExpression":{"id":3714,"name":"_remoteChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3706,"src":"5490:14:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5470:35:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3716,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3708,"src":"5508:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"5470:43:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":3718,"nodeType":"ExpressionStatement","src":"5470:43:18"},{"eventCall":{"arguments":[{"id":3720,"name":"_remoteChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3706,"src":"5545:14:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":3721,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3708,"src":"5561:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":3719,"name":"SetTrustedRemote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3373,"src":"5528:16:18","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory)"}},"id":3722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5528:39:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3723,"nodeType":"EmitStatement","src":"5523:44:18"}]},"functionSelector":"eb8d72b7","id":3725,"implemented":true,"kind":"function","modifiers":[{"id":3711,"kind":"modifierInvocation","modifierName":{"id":3710,"name":"onlyOwner","nameLocations":["5450:9:18"],"nodeType":"IdentifierPath","referencedDeclaration":6995,"src":"5450:9:18"},"nodeType":"ModifierInvocation","src":"5450:9:18"}],"name":"setTrustedRemote","nameLocation":"5379:16:18","nodeType":"FunctionDefinition","parameters":{"id":3709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3706,"mutability":"mutable","name":"_remoteChainId","nameLocation":"5403:14:18","nodeType":"VariableDeclaration","scope":3725,"src":"5396:21:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3705,"name":"uint16","nodeType":"ElementaryTypeName","src":"5396:6:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3708,"mutability":"mutable","name":"_path","nameLocation":"5434:5:18","nodeType":"VariableDeclaration","scope":3725,"src":"5419:20:18","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3707,"name":"bytes","nodeType":"ElementaryTypeName","src":"5419:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5395:45:18"},"returnParameters":{"id":3712,"nodeType":"ParameterList","parameters":[],"src":"5460:0:18"},"scope":3867,"src":"5370:204:18","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":3752,"nodeType":"Block","src":"5686:172:18","statements":[{"expression":{"id":3745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3734,"name":"trustedRemoteLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3351,"src":"5696:19:18","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":3736,"indexExpression":{"id":3735,"name":"_remoteChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3727,"src":"5716:14:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5696:35:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3739,"name":"_remoteAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3729,"src":"5751:14:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"arguments":[{"id":3742,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5775:4:18","typeDescriptions":{"typeIdentifier":"t_contract$_LzApp_$3867","typeString":"contract LzApp"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LzApp_$3867","typeString":"contract LzApp"}],"id":3741,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5767:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3740,"name":"address","nodeType":"ElementaryTypeName","src":"5767:7:18","typeDescriptions":{}}},"id":3743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5767:13:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":3737,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5734:3:18","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3738,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5738:12:18","memberName":"encodePacked","nodeType":"MemberAccess","src":"5734:16:18","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5734:47:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"5696:85:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":3746,"nodeType":"ExpressionStatement","src":"5696:85:18"},{"eventCall":{"arguments":[{"id":3748,"name":"_remoteChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3727,"src":"5820:14:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":3749,"name":"_remoteAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3729,"src":"5836:14:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":3747,"name":"SetTrustedRemoteAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3379,"src":"5796:23:18","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory)"}},"id":3750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5796:55:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3751,"nodeType":"EmitStatement","src":"5791:60:18"}]},"functionSelector":"a6c3d165","id":3753,"implemented":true,"kind":"function","modifiers":[{"id":3732,"kind":"modifierInvocation","modifierName":{"id":3731,"name":"onlyOwner","nameLocations":["5676:9:18"],"nodeType":"IdentifierPath","referencedDeclaration":6995,"src":"5676:9:18"},"nodeType":"ModifierInvocation","src":"5676:9:18"}],"name":"setTrustedRemoteAddress","nameLocation":"5589:23:18","nodeType":"FunctionDefinition","parameters":{"id":3730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3727,"mutability":"mutable","name":"_remoteChainId","nameLocation":"5620:14:18","nodeType":"VariableDeclaration","scope":3753,"src":"5613:21:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3726,"name":"uint16","nodeType":"ElementaryTypeName","src":"5613:6:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3729,"mutability":"mutable","name":"_remoteAddress","nameLocation":"5651:14:18","nodeType":"VariableDeclaration","scope":3753,"src":"5636:29:18","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3728,"name":"bytes","nodeType":"ElementaryTypeName","src":"5636:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5612:54:18"},"returnParameters":{"id":3733,"nodeType":"ParameterList","parameters":[],"src":"5686:0:18"},"scope":3867,"src":"5580:278:18","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":3783,"nodeType":"Block","src":"5957:233:18","statements":[{"assignments":[3761],"declarations":[{"constant":false,"id":3761,"mutability":"mutable","name":"path","nameLocation":"5980:4:18","nodeType":"VariableDeclaration","scope":3783,"src":"5967:17:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3760,"name":"bytes","nodeType":"ElementaryTypeName","src":"5967:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3765,"initialValue":{"baseExpression":{"id":3762,"name":"trustedRemoteLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3351,"src":"5987:19:18","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":3764,"indexExpression":{"id":3763,"name":"_remoteChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3755,"src":"6007:14:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5987:35:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"VariableDeclarationStatement","src":"5967:55:18"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3767,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3761,"src":"6040:4:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6045:6:18","memberName":"length","nodeType":"MemberAccess","src":"6040:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":3769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6055:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6040:16:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c7a4170703a206e6f20747275737465642070617468207265636f7264","id":3771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6058:31:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552","typeString":"literal_string \"LzApp: no trusted path record\""},"value":"LzApp: no trusted path record"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552","typeString":"literal_string \"LzApp: no trusted path record\""}],"id":3766,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6032:7:18","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6032:58:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3773,"nodeType":"ExpressionStatement","src":"6032:58:18"},{"expression":{"arguments":[{"hexValue":"30","id":3776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6118:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3777,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3761,"src":"6121:4:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6126:6:18","memberName":"length","nodeType":"MemberAccess","src":"6121:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3230","id":3779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6135:2:18","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"src":"6121:16:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3774,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3761,"src":"6107:4:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6112:5:18","memberName":"slice","nodeType":"MemberAccess","referencedDeclaration":2959,"src":"6107:10:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$attached_to$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,uint256,uint256) pure returns (bytes memory)"}},"id":3781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6107:31:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":3759,"id":3782,"nodeType":"Return","src":"6100:38:18"}]},"functionSelector":"9f38369a","id":3784,"implemented":true,"kind":"function","modifiers":[],"name":"getTrustedRemoteAddress","nameLocation":"5873:23:18","nodeType":"FunctionDefinition","parameters":{"id":3756,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3755,"mutability":"mutable","name":"_remoteChainId","nameLocation":"5904:14:18","nodeType":"VariableDeclaration","scope":3784,"src":"5897:21:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3754,"name":"uint16","nodeType":"ElementaryTypeName","src":"5897:6:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"5896:23:18"},"returnParameters":{"id":3759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3758,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3784,"src":"5943:12:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3757,"name":"bytes","nodeType":"ElementaryTypeName","src":"5943:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5942:14:18"},"scope":3867,"src":"5864:326:18","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":3799,"nodeType":"Block","src":"6255:74:18","statements":[{"expression":{"id":3793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3791,"name":"precrime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3363,"src":"6265:8:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3792,"name":"_precrime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3786,"src":"6276:9:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6265:20:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3794,"nodeType":"ExpressionStatement","src":"6265:20:18"},{"eventCall":{"arguments":[{"id":3796,"name":"_precrime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3786,"src":"6312:9:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3795,"name":"SetPrecrime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3367,"src":"6300:11:18","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":3797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6300:22:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3798,"nodeType":"EmitStatement","src":"6295:27:18"}]},"functionSelector":"baf3292d","id":3800,"implemented":true,"kind":"function","modifiers":[{"id":3789,"kind":"modifierInvocation","modifierName":{"id":3788,"name":"onlyOwner","nameLocations":["6245:9:18"],"nodeType":"IdentifierPath","referencedDeclaration":6995,"src":"6245:9:18"},"nodeType":"ModifierInvocation","src":"6245:9:18"}],"name":"setPrecrime","nameLocation":"6205:11:18","nodeType":"FunctionDefinition","parameters":{"id":3787,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3786,"mutability":"mutable","name":"_precrime","nameLocation":"6225:9:18","nodeType":"VariableDeclaration","scope":3800,"src":"6217:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3785,"name":"address","nodeType":"ElementaryTypeName","src":"6217:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6216:19:18"},"returnParameters":{"id":3790,"nodeType":"ParameterList","parameters":[],"src":"6255:0:18"},"scope":3867,"src":"6196:133:18","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":3825,"nodeType":"Block","src":"6460:130:18","statements":[{"expression":{"id":3817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":3811,"name":"minDstGasLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3357,"src":"6470:15:18","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_uint16_$_t_uint256_$_$","typeString":"mapping(uint16 => mapping(uint16 => uint256))"}},"id":3814,"indexExpression":{"id":3812,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3802,"src":"6486:11:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6470:28:18","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":3815,"indexExpression":{"id":3813,"name":"_packetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3804,"src":"6499:11:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6470:41:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3816,"name":"_minGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3806,"src":"6514:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6470:51:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3818,"nodeType":"ExpressionStatement","src":"6470:51:18"},{"eventCall":{"arguments":[{"id":3820,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3802,"src":"6549:11:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":3821,"name":"_packetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3804,"src":"6562:11:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":3822,"name":"_minGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3806,"src":"6575:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3819,"name":"SetMinDstGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3387,"src":"6536:12:18","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (uint16,uint16,uint256)"}},"id":3823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6536:47:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3824,"nodeType":"EmitStatement","src":"6531:52:18"}]},"functionSelector":"df2a5b3b","id":3826,"implemented":true,"kind":"function","modifiers":[{"id":3809,"kind":"modifierInvocation","modifierName":{"id":3808,"name":"onlyOwner","nameLocations":["6450:9:18"],"nodeType":"IdentifierPath","referencedDeclaration":6995,"src":"6450:9:18"},"nodeType":"ModifierInvocation","src":"6450:9:18"}],"name":"setMinDstGas","nameLocation":"6344:12:18","nodeType":"FunctionDefinition","parameters":{"id":3807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3802,"mutability":"mutable","name":"_dstChainId","nameLocation":"6373:11:18","nodeType":"VariableDeclaration","scope":3826,"src":"6366:18:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3801,"name":"uint16","nodeType":"ElementaryTypeName","src":"6366:6:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3804,"mutability":"mutable","name":"_packetType","nameLocation":"6401:11:18","nodeType":"VariableDeclaration","scope":3826,"src":"6394:18:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3803,"name":"uint16","nodeType":"ElementaryTypeName","src":"6394:6:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3806,"mutability":"mutable","name":"_minGas","nameLocation":"6427:7:18","nodeType":"VariableDeclaration","scope":3826,"src":"6422:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3805,"name":"uint","nodeType":"ElementaryTypeName","src":"6422:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6356:84:18"},"returnParameters":{"id":3810,"nodeType":"ParameterList","parameters":[],"src":"6460:0:18"},"scope":3867,"src":"6335:255:18","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":3841,"nodeType":"Block","src":"6729:60:18","statements":[{"expression":{"id":3839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3835,"name":"payloadSizeLimitLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3361,"src":"6739:22:18","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":3837,"indexExpression":{"id":3836,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3828,"src":"6762:11:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6739:35:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3838,"name":"_size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3830,"src":"6777:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6739:43:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3840,"nodeType":"ExpressionStatement","src":"6739:43:18"}]},"functionSelector":"0df37483","id":3842,"implemented":true,"kind":"function","modifiers":[{"id":3833,"kind":"modifierInvocation","modifierName":{"id":3832,"name":"onlyOwner","nameLocations":["6719:9:18"],"nodeType":"IdentifierPath","referencedDeclaration":6995,"src":"6719:9:18"},"nodeType":"ModifierInvocation","src":"6719:9:18"}],"name":"setPayloadSizeLimit","nameLocation":"6658:19:18","nodeType":"FunctionDefinition","parameters":{"id":3831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3828,"mutability":"mutable","name":"_dstChainId","nameLocation":"6685:11:18","nodeType":"VariableDeclaration","scope":3842,"src":"6678:18:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3827,"name":"uint16","nodeType":"ElementaryTypeName","src":"6678:6:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3830,"mutability":"mutable","name":"_size","nameLocation":"6703:5:18","nodeType":"VariableDeclaration","scope":3842,"src":"6698:10:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3829,"name":"uint","nodeType":"ElementaryTypeName","src":"6698:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6677:32:18"},"returnParameters":{"id":3834,"nodeType":"ParameterList","parameters":[],"src":"6729:0:18"},"scope":3867,"src":"6649:140:18","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":3865,"nodeType":"Block","src":"6986:145:18","statements":[{"assignments":[3852],"declarations":[{"constant":false,"id":3852,"mutability":"mutable","name":"trustedSource","nameLocation":"7009:13:18","nodeType":"VariableDeclaration","scope":3865,"src":"6996:26:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3851,"name":"bytes","nodeType":"ElementaryTypeName","src":"6996:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3856,"initialValue":{"baseExpression":{"id":3853,"name":"trustedRemoteLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3351,"src":"7025:19:18","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":3855,"indexExpression":{"id":3854,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3844,"src":"7045:11:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7025:32:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"VariableDeclarationStatement","src":"6996:61:18"},{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":3863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3858,"name":"trustedSource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3852,"src":"7084:13:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3857,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7074:9:18","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7074:24:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":3861,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3846,"src":"7112:11:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":3860,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7102:9:18","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7102:22:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7074:50:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3850,"id":3864,"nodeType":"Return","src":"7067:57:18"}]},"functionSelector":"3d8b38f6","id":3866,"implemented":true,"kind":"function","modifiers":[],"name":"isTrustedRemote","nameLocation":"6893:15:18","nodeType":"FunctionDefinition","parameters":{"id":3847,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3844,"mutability":"mutable","name":"_srcChainId","nameLocation":"6916:11:18","nodeType":"VariableDeclaration","scope":3866,"src":"6909:18:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3843,"name":"uint16","nodeType":"ElementaryTypeName","src":"6909:6:18","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3846,"mutability":"mutable","name":"_srcAddress","nameLocation":"6944:11:18","nodeType":"VariableDeclaration","scope":3866,"src":"6929:26:18","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3845,"name":"bytes","nodeType":"ElementaryTypeName","src":"6929:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6908:48:18"},"returnParameters":{"id":3850,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3849,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3866,"src":"6980:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3848,"name":"bool","nodeType":"ElementaryTypeName","src":"6980:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6979:6:18"},"scope":3867,"src":"6884:247:18","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":3868,"src":"345:6788:18","usedErrors":[],"usedEvents":[3367,3373,3379,3387,6977]}],"src":"33:7101:18"},"id":18},"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol","exportedSymbols":{"BytesLib":[3228],"Context":[8099],"ExcessivelySafeCall":[3325],"ILayerZeroEndpoint":[4253],"ILayerZeroReceiver":[4267],"ILayerZeroUserApplicationConfig":[4298],"LzApp":[3867],"NonblockingLzApp":[4108],"Ownable":[7076]},"id":4109,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3869,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:19"},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol","file":"./LzApp.sol","id":3870,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4109,"sourceUnit":3868,"src":"58:21:19","symbolAliases":[],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/libraries/ExcessivelySafeCall.sol","file":"../libraries/ExcessivelySafeCall.sol","id":3871,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4109,"sourceUnit":3326,"src":"80:46:19","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":3872,"name":"LzApp","nameLocations":["510:5:19"],"nodeType":"IdentifierPath","referencedDeclaration":3867,"src":"510:5:19"},"id":3873,"nodeType":"InheritanceSpecifier","src":"510:5:19"}],"canonicalName":"NonblockingLzApp","contractDependencies":[],"contractKind":"contract","fullyImplemented":false,"id":4108,"linearizedBaseContracts":[4108,3867,4298,4267,7076,8099],"name":"NonblockingLzApp","nameLocation":"490:16:19","nodeType":"ContractDefinition","nodes":[{"global":false,"id":3876,"libraryName":{"id":3874,"name":"ExcessivelySafeCall","nameLocations":["528:19:19"],"nodeType":"IdentifierPath","referencedDeclaration":3325,"src":"528:19:19"},"nodeType":"UsingForDirective","src":"522:38:19","typeName":{"id":3875,"name":"address","nodeType":"ElementaryTypeName","src":"552:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"body":{"id":3884,"nodeType":"Block","src":"614:2:19","statements":[]},"id":3885,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":3881,"name":"_endpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3878,"src":"603:9:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":3882,"kind":"baseConstructorSpecifier","modifierName":{"id":3880,"name":"LzApp","nameLocations":["597:5:19"],"nodeType":"IdentifierPath","referencedDeclaration":3867,"src":"597:5:19"},"nodeType":"ModifierInvocation","src":"597:16:19"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":3879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3878,"mutability":"mutable","name":"_endpoint","nameLocation":"586:9:19","nodeType":"VariableDeclaration","scope":3885,"src":"578:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3877,"name":"address","nodeType":"ElementaryTypeName","src":"578:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"577:19:19"},"returnParameters":{"id":3883,"nodeType":"ParameterList","parameters":[],"src":"614:0:19"},"scope":4108,"src":"566:50:19","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"constant":false,"functionSelector":"5b8c41e6","id":3893,"mutability":"mutable","name":"failedMessages","nameLocation":"693:14:19","nodeType":"VariableDeclaration","scope":4108,"src":"622:85:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$_$","typeString":"mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32)))"},"typeName":{"id":3892,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":3886,"name":"uint16","nodeType":"ElementaryTypeName","src":"630:6:19","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"622:63:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$_$","typeString":"mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32)))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":3891,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":3887,"name":"bytes","nodeType":"ElementaryTypeName","src":"648:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"nodeType":"Mapping","src":"640:44:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$","typeString":"mapping(bytes => mapping(uint64 => bytes32))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":3890,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":3888,"name":"uint64","nodeType":"ElementaryTypeName","src":"665:6:19","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Mapping","src":"657:26:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_bytes32_$","typeString":"mapping(uint64 => bytes32)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":3889,"name":"bytes32","nodeType":"ElementaryTypeName","src":"675:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}}}},"visibility":"public"},{"anonymous":false,"eventSelector":"e183f33de2837795525b4792ca4cd60535bd77c53b7e7030060bfcf5734d6b0c","id":3905,"name":"MessageFailed","nameLocation":"720:13:19","nodeType":"EventDefinition","parameters":{"id":3904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3895,"indexed":false,"mutability":"mutable","name":"_srcChainId","nameLocation":"741:11:19","nodeType":"VariableDeclaration","scope":3905,"src":"734:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3894,"name":"uint16","nodeType":"ElementaryTypeName","src":"734:6:19","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3897,"indexed":false,"mutability":"mutable","name":"_srcAddress","nameLocation":"760:11:19","nodeType":"VariableDeclaration","scope":3905,"src":"754:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3896,"name":"bytes","nodeType":"ElementaryTypeName","src":"754:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3899,"indexed":false,"mutability":"mutable","name":"_nonce","nameLocation":"780:6:19","nodeType":"VariableDeclaration","scope":3905,"src":"773:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3898,"name":"uint64","nodeType":"ElementaryTypeName","src":"773:6:19","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":3901,"indexed":false,"mutability":"mutable","name":"_payload","nameLocation":"794:8:19","nodeType":"VariableDeclaration","scope":3905,"src":"788:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3900,"name":"bytes","nodeType":"ElementaryTypeName","src":"788:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3903,"indexed":false,"mutability":"mutable","name":"_reason","nameLocation":"810:7:19","nodeType":"VariableDeclaration","scope":3905,"src":"804:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3902,"name":"bytes","nodeType":"ElementaryTypeName","src":"804:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"733:85:19"},"src":"714:105:19"},{"anonymous":false,"eventSelector":"c264d91f3adc5588250e1551f547752ca0cfa8f6b530d243b9f9f4cab10ea8e5","id":3915,"name":"RetryMessageSuccess","nameLocation":"830:19:19","nodeType":"EventDefinition","parameters":{"id":3914,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3907,"indexed":false,"mutability":"mutable","name":"_srcChainId","nameLocation":"857:11:19","nodeType":"VariableDeclaration","scope":3915,"src":"850:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3906,"name":"uint16","nodeType":"ElementaryTypeName","src":"850:6:19","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3909,"indexed":false,"mutability":"mutable","name":"_srcAddress","nameLocation":"876:11:19","nodeType":"VariableDeclaration","scope":3915,"src":"870:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3908,"name":"bytes","nodeType":"ElementaryTypeName","src":"870:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3911,"indexed":false,"mutability":"mutable","name":"_nonce","nameLocation":"896:6:19","nodeType":"VariableDeclaration","scope":3915,"src":"889:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3910,"name":"uint64","nodeType":"ElementaryTypeName","src":"889:6:19","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":3913,"indexed":false,"mutability":"mutable","name":"_payloadHash","nameLocation":"912:12:19","nodeType":"VariableDeclaration","scope":3915,"src":"904:20:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3912,"name":"bytes32","nodeType":"ElementaryTypeName","src":"904:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"849:76:19"},"src":"824:102:19"},{"baseFunctions":[3469],"body":{"id":3963,"nodeType":"Block","src":"1161:373:19","statements":[{"assignments":[3928,3930],"declarations":[{"constant":false,"id":3928,"mutability":"mutable","name":"success","nameLocation":"1177:7:19","nodeType":"VariableDeclaration","scope":3963,"src":"1172:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3927,"name":"bool","nodeType":"ElementaryTypeName","src":"1172:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3930,"mutability":"mutable","name":"reason","nameLocation":"1199:6:19","nodeType":"VariableDeclaration","scope":3963,"src":"1186:19:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3929,"name":"bytes","nodeType":"ElementaryTypeName","src":"1186:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3950,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":3936,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"1256:7:19","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":3937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1256:9:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"313530","id":3938,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1279:3:19","typeDescriptions":{"typeIdentifier":"t_rational_150_by_1","typeString":"int_const 150"},"value":"150"},{"arguments":[{"expression":{"expression":{"id":3941,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1319:4:19","typeDescriptions":{"typeIdentifier":"t_contract$_NonblockingLzApp_$4108","typeString":"contract NonblockingLzApp"}},"id":3942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1324:20:19","memberName":"nonblockingLzReceive","nodeType":"MemberAccess","referencedDeclaration":4028,"src":"1319:25:19","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory) external"}},"id":3943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1345:8:19","memberName":"selector","nodeType":"MemberAccess","src":"1319:34:19","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":3944,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3917,"src":"1355:11:19","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":3945,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3919,"src":"1368:11:19","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3946,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3921,"src":"1381:6:19","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":3947,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3923,"src":"1389:8:19","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":3939,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1296:3:19","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3940,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1300:18:19","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"1296:22:19","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":3948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1296:102:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_150_by_1","typeString":"int_const 150"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":3933,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1217:4:19","typeDescriptions":{"typeIdentifier":"t_contract$_NonblockingLzApp_$4108","typeString":"contract NonblockingLzApp"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_NonblockingLzApp_$4108","typeString":"contract NonblockingLzApp"}],"id":3932,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1209:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3931,"name":"address","nodeType":"ElementaryTypeName","src":"1209:7:19","typeDescriptions":{}}},"id":3934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1209:13:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1223:19:19","memberName":"excessivelySafeCall","nodeType":"MemberAccess","referencedDeclaration":3268,"src":"1209:33:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint16_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$attached_to$_t_address_$","typeString":"function (address,uint256,uint16,bytes memory) returns (bool,bytes memory)"}},"id":3949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1209:199:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1171:237:19"},{"condition":{"id":3952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1422:8:19","subExpression":{"id":3951,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3928,"src":"1423:7:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3962,"nodeType":"IfStatement","src":"1418:110:19","trueBody":{"id":3961,"nodeType":"Block","src":"1432:96:19","statements":[{"expression":{"arguments":[{"id":3954,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3917,"src":"1466:11:19","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":3955,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3919,"src":"1479:11:19","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3956,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3921,"src":"1492:6:19","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":3957,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3923,"src":"1500:8:19","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3958,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3930,"src":"1510:6:19","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3953,"name":"_storeFailedMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3998,"src":"1446:19:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory,bytes memory)"}},"id":3959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1446:71:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3960,"nodeType":"ExpressionStatement","src":"1446:71:19"}]}}]},"id":3964,"implemented":true,"kind":"function","modifiers":[],"name":"_blockingLzReceive","nameLocation":"994:18:19","nodeType":"FunctionDefinition","overrides":{"id":3925,"nodeType":"OverrideSpecifier","overrides":[],"src":"1152:8:19"},"parameters":{"id":3924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3917,"mutability":"mutable","name":"_srcChainId","nameLocation":"1029:11:19","nodeType":"VariableDeclaration","scope":3964,"src":"1022:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3916,"name":"uint16","nodeType":"ElementaryTypeName","src":"1022:6:19","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3919,"mutability":"mutable","name":"_srcAddress","nameLocation":"1063:11:19","nodeType":"VariableDeclaration","scope":3964,"src":"1050:24:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3918,"name":"bytes","nodeType":"ElementaryTypeName","src":"1050:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3921,"mutability":"mutable","name":"_nonce","nameLocation":"1091:6:19","nodeType":"VariableDeclaration","scope":3964,"src":"1084:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3920,"name":"uint64","nodeType":"ElementaryTypeName","src":"1084:6:19","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":3923,"mutability":"mutable","name":"_payload","nameLocation":"1120:8:19","nodeType":"VariableDeclaration","scope":3964,"src":"1107:21:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3922,"name":"bytes","nodeType":"ElementaryTypeName","src":"1107:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1012:122:19"},"returnParameters":{"id":3926,"nodeType":"ParameterList","parameters":[],"src":"1161:0:19"},"scope":4108,"src":"985:549:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3997,"nodeType":"Block","src":"1738:168:19","statements":[{"expression":{"id":3987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"baseExpression":{"id":3977,"name":"failedMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3893,"src":"1748:14:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$_$","typeString":"mapping(uint16 => mapping(bytes memory => mapping(uint64 => bytes32)))"}},"id":3981,"indexExpression":{"id":3978,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3966,"src":"1763:11:19","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1748:27:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$","typeString":"mapping(bytes memory => mapping(uint64 => bytes32))"}},"id":3982,"indexExpression":{"id":3979,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3968,"src":"1776:11:19","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1748:40:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_bytes32_$","typeString":"mapping(uint64 => bytes32)"}},"id":3983,"indexExpression":{"id":3980,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3970,"src":"1789:6:19","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1748:48:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3985,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3972,"src":"1809:8:19","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3984,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1799:9:19","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1799:19:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1748:70:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3988,"nodeType":"ExpressionStatement","src":"1748:70:19"},{"eventCall":{"arguments":[{"id":3990,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3966,"src":"1847:11:19","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":3991,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3968,"src":"1860:11:19","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3992,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3970,"src":"1873:6:19","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":3993,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3972,"src":"1881:8:19","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3994,"name":"_reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3974,"src":"1891:7:19","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3989,"name":"MessageFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3905,"src":"1833:13:19","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory,bytes memory)"}},"id":3995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1833:66:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3996,"nodeType":"EmitStatement","src":"1828:71:19"}]},"id":3998,"implemented":true,"kind":"function","modifiers":[],"name":"_storeFailedMessage","nameLocation":"1549:19:19","nodeType":"FunctionDefinition","parameters":{"id":3975,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3966,"mutability":"mutable","name":"_srcChainId","nameLocation":"1585:11:19","nodeType":"VariableDeclaration","scope":3998,"src":"1578:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3965,"name":"uint16","nodeType":"ElementaryTypeName","src":"1578:6:19","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3968,"mutability":"mutable","name":"_srcAddress","nameLocation":"1619:11:19","nodeType":"VariableDeclaration","scope":3998,"src":"1606:24:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3967,"name":"bytes","nodeType":"ElementaryTypeName","src":"1606:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3970,"mutability":"mutable","name":"_nonce","nameLocation":"1647:6:19","nodeType":"VariableDeclaration","scope":3998,"src":"1640:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3969,"name":"uint64","nodeType":"ElementaryTypeName","src":"1640:6:19","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":3972,"mutability":"mutable","name":"_payload","nameLocation":"1676:8:19","nodeType":"VariableDeclaration","scope":3998,"src":"1663:21:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3971,"name":"bytes","nodeType":"ElementaryTypeName","src":"1663:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3974,"mutability":"mutable","name":"_reason","nameLocation":"1707:7:19","nodeType":"VariableDeclaration","scope":3998,"src":"1694:20:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3973,"name":"bytes","nodeType":"ElementaryTypeName","src":"1694:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1568:152:19"},"returnParameters":{"id":3976,"nodeType":"ParameterList","parameters":[],"src":"1738:0:19"},"scope":4108,"src":"1540:366:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":4027,"nodeType":"Block","src":"2083:209:19","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":4010,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8081,"src":"2138:10:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":4011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2138:12:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":4014,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2162:4:19","typeDescriptions":{"typeIdentifier":"t_contract$_NonblockingLzApp_$4108","typeString":"contract NonblockingLzApp"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_NonblockingLzApp_$4108","typeString":"contract NonblockingLzApp"}],"id":4013,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2154:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4012,"name":"address","nodeType":"ElementaryTypeName","src":"2154:7:19","typeDescriptions":{}}},"id":4015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2154:13:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2138:29:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d757374206265204c7a417070","id":4017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2169:40:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa","typeString":"literal_string \"NonblockingLzApp: caller must be LzApp\""},"value":"NonblockingLzApp: caller must be LzApp"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa","typeString":"literal_string \"NonblockingLzApp: caller must be LzApp\""}],"id":4009,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2130:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2130:80:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4019,"nodeType":"ExpressionStatement","src":"2130:80:19"},{"expression":{"arguments":[{"id":4021,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4000,"src":"2242:11:19","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":4022,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4002,"src":"2255:11:19","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":4023,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4004,"src":"2268:6:19","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":4024,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4006,"src":"2276:8:19","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":4020,"name":"_nonblockingLzReceive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4039,"src":"2220:21:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory)"}},"id":4025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2220:65:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4026,"nodeType":"ExpressionStatement","src":"2220:65:19"}]},"functionSelector":"66ad5c8a","id":4028,"implemented":true,"kind":"function","modifiers":[],"name":"nonblockingLzReceive","nameLocation":"1921:20:19","nodeType":"FunctionDefinition","parameters":{"id":4007,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4000,"mutability":"mutable","name":"_srcChainId","nameLocation":"1958:11:19","nodeType":"VariableDeclaration","scope":4028,"src":"1951:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3999,"name":"uint16","nodeType":"ElementaryTypeName","src":"1951:6:19","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4002,"mutability":"mutable","name":"_srcAddress","nameLocation":"1994:11:19","nodeType":"VariableDeclaration","scope":4028,"src":"1979:26:19","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4001,"name":"bytes","nodeType":"ElementaryTypeName","src":"1979:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4004,"mutability":"mutable","name":"_nonce","nameLocation":"2022:6:19","nodeType":"VariableDeclaration","scope":4028,"src":"2015:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":4003,"name":"uint64","nodeType":"ElementaryTypeName","src":"2015:6:19","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":4006,"mutability":"mutable","name":"_payload","nameLocation":"2053:8:19","nodeType":"VariableDeclaration","scope":4028,"src":"2038:23:19","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4005,"name":"bytes","nodeType":"ElementaryTypeName","src":"2038:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1941:126:19"},"returnParameters":{"id":4008,"nodeType":"ParameterList","parameters":[],"src":"2083:0:19"},"scope":4108,"src":"1912:380:19","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":4039,"implemented":false,"kind":"function","modifiers":[],"name":"_nonblockingLzReceive","nameLocation":"2344:21:19","nodeType":"FunctionDefinition","parameters":{"id":4037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4030,"mutability":"mutable","name":"_srcChainId","nameLocation":"2382:11:19","nodeType":"VariableDeclaration","scope":4039,"src":"2375:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4029,"name":"uint16","nodeType":"ElementaryTypeName","src":"2375:6:19","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4032,"mutability":"mutable","name":"_srcAddress","nameLocation":"2416:11:19","nodeType":"VariableDeclaration","scope":4039,"src":"2403:24:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4031,"name":"bytes","nodeType":"ElementaryTypeName","src":"2403:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4034,"mutability":"mutable","name":"_nonce","nameLocation":"2444:6:19","nodeType":"VariableDeclaration","scope":4039,"src":"2437:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":4033,"name":"uint64","nodeType":"ElementaryTypeName","src":"2437:6:19","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":4036,"mutability":"mutable","name":"_payload","nameLocation":"2473:8:19","nodeType":"VariableDeclaration","scope":4039,"src":"2460:21:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4035,"name":"bytes","nodeType":"ElementaryTypeName","src":"2460:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2365:122:19"},"returnParameters":{"id":4038,"nodeType":"ParameterList","parameters":[],"src":"2504:0:19"},"scope":4108,"src":"2335:170:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":4106,"nodeType":"Block","src":"2682:624:19","statements":[{"assignments":[4051],"declarations":[{"constant":false,"id":4051,"mutability":"mutable","name":"payloadHash","nameLocation":"2744:11:19","nodeType":"VariableDeclaration","scope":4106,"src":"2736:19:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4050,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2736:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":4059,"initialValue":{"baseExpression":{"baseExpression":{"baseExpression":{"id":4052,"name":"failedMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3893,"src":"2758:14:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$_$","typeString":"mapping(uint16 => mapping(bytes memory => mapping(uint64 => bytes32)))"}},"id":4054,"indexExpression":{"id":4053,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4041,"src":"2773:11:19","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2758:27:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$","typeString":"mapping(bytes memory => mapping(uint64 => bytes32))"}},"id":4056,"indexExpression":{"id":4055,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4043,"src":"2786:11:19","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2758:40:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_bytes32_$","typeString":"mapping(uint64 => bytes32)"}},"id":4058,"indexExpression":{"id":4057,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4045,"src":"2799:6:19","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2758:48:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2736:70:19"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":4066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4061,"name":"payloadHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4051,"src":"2824:11:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":4064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2847:1:19","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":4063,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2839:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":4062,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2839:7:19","typeDescriptions":{}}},"id":4065,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2839:10:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2824:25:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d657373616765","id":4067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2851:37:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894","typeString":"literal_string \"NonblockingLzApp: no stored message\""},"value":"NonblockingLzApp: no stored message"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894","typeString":"literal_string \"NonblockingLzApp: no stored message\""}],"id":4060,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2816:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2816:73:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4069,"nodeType":"ExpressionStatement","src":"2816:73:19"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":4075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4072,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4047,"src":"2917:8:19","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":4071,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2907:9:19","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":4073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2907:19:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":4074,"name":"payloadHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4051,"src":"2930:11:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2907:34:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f6164","id":4076,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2943:35:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3","typeString":"literal_string \"NonblockingLzApp: invalid payload\""},"value":"NonblockingLzApp: invalid payload"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3","typeString":"literal_string \"NonblockingLzApp: invalid payload\""}],"id":4070,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2899:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2899:80:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4078,"nodeType":"ExpressionStatement","src":"2899:80:19"},{"expression":{"id":4090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"baseExpression":{"id":4079,"name":"failedMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3893,"src":"3025:14:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$_$","typeString":"mapping(uint16 => mapping(bytes memory => mapping(uint64 => bytes32)))"}},"id":4083,"indexExpression":{"id":4080,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4041,"src":"3040:11:19","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3025:27:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$","typeString":"mapping(bytes memory => mapping(uint64 => bytes32))"}},"id":4084,"indexExpression":{"id":4081,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4043,"src":"3053:11:19","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3025:40:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_bytes32_$","typeString":"mapping(uint64 => bytes32)"}},"id":4085,"indexExpression":{"id":4082,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4045,"src":"3066:6:19","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3025:48:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":4088,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3084:1:19","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":4087,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3076:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":4086,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3076:7:19","typeDescriptions":{}}},"id":4089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3076:10:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3025:61:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4091,"nodeType":"ExpressionStatement","src":"3025:61:19"},{"expression":{"arguments":[{"id":4093,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4041,"src":"3175:11:19","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":4094,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4043,"src":"3188:11:19","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":4095,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4045,"src":"3201:6:19","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":4096,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4047,"src":"3209:8:19","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":4092,"name":"_nonblockingLzReceive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4039,"src":"3153:21:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory)"}},"id":4097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3153:65:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4098,"nodeType":"ExpressionStatement","src":"3153:65:19"},{"eventCall":{"arguments":[{"id":4100,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4041,"src":"3253:11:19","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":4101,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4043,"src":"3266:11:19","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":4102,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4045,"src":"3279:6:19","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":4103,"name":"payloadHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4051,"src":"3287:11:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4099,"name":"RetryMessageSuccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3915,"src":"3233:19:19","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes32_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes32)"}},"id":4104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3233:66:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4105,"nodeType":"EmitStatement","src":"3228:71:19"}]},"functionSelector":"d1deba1f","id":4107,"implemented":true,"kind":"function","modifiers":[],"name":"retryMessage","nameLocation":"2520:12:19","nodeType":"FunctionDefinition","parameters":{"id":4048,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4041,"mutability":"mutable","name":"_srcChainId","nameLocation":"2549:11:19","nodeType":"VariableDeclaration","scope":4107,"src":"2542:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4040,"name":"uint16","nodeType":"ElementaryTypeName","src":"2542:6:19","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4043,"mutability":"mutable","name":"_srcAddress","nameLocation":"2585:11:19","nodeType":"VariableDeclaration","scope":4107,"src":"2570:26:19","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4042,"name":"bytes","nodeType":"ElementaryTypeName","src":"2570:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4045,"mutability":"mutable","name":"_nonce","nameLocation":"2613:6:19","nodeType":"VariableDeclaration","scope":4107,"src":"2606:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":4044,"name":"uint64","nodeType":"ElementaryTypeName","src":"2606:6:19","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":4047,"mutability":"mutable","name":"_payload","nameLocation":"2644:8:19","nodeType":"VariableDeclaration","scope":4107,"src":"2629:23:19","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4046,"name":"bytes","nodeType":"ElementaryTypeName","src":"2629:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2532:126:19"},"returnParameters":{"id":4049,"nodeType":"ParameterList","parameters":[],"src":"2682:0:19"},"scope":4108,"src":"2511:795:19","stateMutability":"payable","virtual":true,"visibility":"public"}],"scope":4109,"src":"472:2836:19","usedErrors":[],"usedEvents":[3367,3373,3379,3387,3905,3915,6977]}],"src":"33:3276:19"},"id":19},"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroEndpoint.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroEndpoint.sol","exportedSymbols":{"ILayerZeroEndpoint":[4253],"ILayerZeroUserApplicationConfig":[4298]},"id":4254,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4110,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"33:24:20"},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroUserApplicationConfig.sol","file":"./ILayerZeroUserApplicationConfig.sol","id":4111,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4254,"sourceUnit":4299,"src":"59:47:20","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":4112,"name":"ILayerZeroUserApplicationConfig","nameLocations":["140:31:20"],"nodeType":"IdentifierPath","referencedDeclaration":4298,"src":"140:31:20"},"id":4113,"nodeType":"InheritanceSpecifier","src":"140:31:20"}],"canonicalName":"ILayerZeroEndpoint","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":4253,"linearizedBaseContracts":[4253,4298],"name":"ILayerZeroEndpoint","nameLocation":"118:18:20","nodeType":"ContractDefinition","nodes":[{"functionSelector":"c5803100","id":4128,"implemented":false,"kind":"function","modifiers":[],"name":"send","nameLocation":"923:4:20","nodeType":"FunctionDefinition","parameters":{"id":4126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4115,"mutability":"mutable","name":"_dstChainId","nameLocation":"944:11:20","nodeType":"VariableDeclaration","scope":4128,"src":"937:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4114,"name":"uint16","nodeType":"ElementaryTypeName","src":"937:6:20","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4117,"mutability":"mutable","name":"_destination","nameLocation":"980:12:20","nodeType":"VariableDeclaration","scope":4128,"src":"965:27:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4116,"name":"bytes","nodeType":"ElementaryTypeName","src":"965:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4119,"mutability":"mutable","name":"_payload","nameLocation":"1017:8:20","nodeType":"VariableDeclaration","scope":4128,"src":"1002:23:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4118,"name":"bytes","nodeType":"ElementaryTypeName","src":"1002:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4121,"mutability":"mutable","name":"_refundAddress","nameLocation":"1051:14:20","nodeType":"VariableDeclaration","scope":4128,"src":"1035:30:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":4120,"name":"address","nodeType":"ElementaryTypeName","src":"1035:15:20","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":4123,"mutability":"mutable","name":"_zroPaymentAddress","nameLocation":"1083:18:20","nodeType":"VariableDeclaration","scope":4128,"src":"1075:26:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4122,"name":"address","nodeType":"ElementaryTypeName","src":"1075:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4125,"mutability":"mutable","name":"_adapterParams","nameLocation":"1126:14:20","nodeType":"VariableDeclaration","scope":4128,"src":"1111:29:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4124,"name":"bytes","nodeType":"ElementaryTypeName","src":"1111:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"927:219:20"},"returnParameters":{"id":4127,"nodeType":"ParameterList","parameters":[],"src":"1163:0:20"},"scope":4253,"src":"914:250:20","stateMutability":"payable","virtual":false,"visibility":"external"},{"functionSelector":"c2fa4813","id":4143,"implemented":false,"kind":"function","modifiers":[],"name":"receivePayload","nameLocation":"1656:14:20","nodeType":"FunctionDefinition","parameters":{"id":4141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4130,"mutability":"mutable","name":"_srcChainId","nameLocation":"1687:11:20","nodeType":"VariableDeclaration","scope":4143,"src":"1680:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4129,"name":"uint16","nodeType":"ElementaryTypeName","src":"1680:6:20","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4132,"mutability":"mutable","name":"_srcAddress","nameLocation":"1723:11:20","nodeType":"VariableDeclaration","scope":4143,"src":"1708:26:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4131,"name":"bytes","nodeType":"ElementaryTypeName","src":"1708:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4134,"mutability":"mutable","name":"_dstAddress","nameLocation":"1752:11:20","nodeType":"VariableDeclaration","scope":4143,"src":"1744:19:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4133,"name":"address","nodeType":"ElementaryTypeName","src":"1744:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4136,"mutability":"mutable","name":"_nonce","nameLocation":"1780:6:20","nodeType":"VariableDeclaration","scope":4143,"src":"1773:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":4135,"name":"uint64","nodeType":"ElementaryTypeName","src":"1773:6:20","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":4138,"mutability":"mutable","name":"_gasLimit","nameLocation":"1801:9:20","nodeType":"VariableDeclaration","scope":4143,"src":"1796:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4137,"name":"uint","nodeType":"ElementaryTypeName","src":"1796:4:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4140,"mutability":"mutable","name":"_payload","nameLocation":"1835:8:20","nodeType":"VariableDeclaration","scope":4143,"src":"1820:23:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4139,"name":"bytes","nodeType":"ElementaryTypeName","src":"1820:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1670:179:20"},"returnParameters":{"id":4142,"nodeType":"ParameterList","parameters":[],"src":"1858:0:20"},"scope":4253,"src":"1647:212:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"fdc07c70","id":4152,"implemented":false,"kind":"function","modifiers":[],"name":"getInboundNonce","nameLocation":"2095:15:20","nodeType":"FunctionDefinition","parameters":{"id":4148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4145,"mutability":"mutable","name":"_srcChainId","nameLocation":"2118:11:20","nodeType":"VariableDeclaration","scope":4152,"src":"2111:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4144,"name":"uint16","nodeType":"ElementaryTypeName","src":"2111:6:20","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4147,"mutability":"mutable","name":"_srcAddress","nameLocation":"2146:11:20","nodeType":"VariableDeclaration","scope":4152,"src":"2131:26:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4146,"name":"bytes","nodeType":"ElementaryTypeName","src":"2131:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2110:48:20"},"returnParameters":{"id":4151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4150,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4152,"src":"2182:6:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":4149,"name":"uint64","nodeType":"ElementaryTypeName","src":"2182:6:20","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"2181:8:20"},"scope":4253,"src":"2086:104:20","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"7a145748","id":4161,"implemented":false,"kind":"function","modifiers":[],"name":"getOutboundNonce","nameLocation":"2365:16:20","nodeType":"FunctionDefinition","parameters":{"id":4157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4154,"mutability":"mutable","name":"_dstChainId","nameLocation":"2389:11:20","nodeType":"VariableDeclaration","scope":4161,"src":"2382:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4153,"name":"uint16","nodeType":"ElementaryTypeName","src":"2382:6:20","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4156,"mutability":"mutable","name":"_srcAddress","nameLocation":"2410:11:20","nodeType":"VariableDeclaration","scope":4161,"src":"2402:19:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4155,"name":"address","nodeType":"ElementaryTypeName","src":"2402:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2381:41:20"},"returnParameters":{"id":4160,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4159,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4161,"src":"2446:6:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":4158,"name":"uint64","nodeType":"ElementaryTypeName","src":"2446:6:20","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"2445:8:20"},"scope":4253,"src":"2356:98:20","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"40a7bb10","id":4178,"implemented":false,"kind":"function","modifiers":[],"name":"estimateFees","nameLocation":"2977:12:20","nodeType":"FunctionDefinition","parameters":{"id":4172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4163,"mutability":"mutable","name":"_dstChainId","nameLocation":"3006:11:20","nodeType":"VariableDeclaration","scope":4178,"src":"2999:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4162,"name":"uint16","nodeType":"ElementaryTypeName","src":"2999:6:20","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4165,"mutability":"mutable","name":"_userApplication","nameLocation":"3035:16:20","nodeType":"VariableDeclaration","scope":4178,"src":"3027:24:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4164,"name":"address","nodeType":"ElementaryTypeName","src":"3027:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4167,"mutability":"mutable","name":"_payload","nameLocation":"3076:8:20","nodeType":"VariableDeclaration","scope":4178,"src":"3061:23:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4166,"name":"bytes","nodeType":"ElementaryTypeName","src":"3061:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4169,"mutability":"mutable","name":"_payInZRO","nameLocation":"3099:9:20","nodeType":"VariableDeclaration","scope":4178,"src":"3094:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4168,"name":"bool","nodeType":"ElementaryTypeName","src":"3094:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4171,"mutability":"mutable","name":"_adapterParam","nameLocation":"3133:13:20","nodeType":"VariableDeclaration","scope":4178,"src":"3118:28:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4170,"name":"bytes","nodeType":"ElementaryTypeName","src":"3118:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2989:163:20"},"returnParameters":{"id":4177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4174,"mutability":"mutable","name":"nativeFee","nameLocation":"3181:9:20","nodeType":"VariableDeclaration","scope":4178,"src":"3176:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4173,"name":"uint","nodeType":"ElementaryTypeName","src":"3176:4:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4176,"mutability":"mutable","name":"zroFee","nameLocation":"3197:6:20","nodeType":"VariableDeclaration","scope":4178,"src":"3192:11:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4175,"name":"uint","nodeType":"ElementaryTypeName","src":"3192:4:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3175:29:20"},"scope":4253,"src":"2968:237:20","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"3408e470","id":4183,"implemented":false,"kind":"function","modifiers":[],"name":"getChainId","nameLocation":"3283:10:20","nodeType":"FunctionDefinition","parameters":{"id":4179,"nodeType":"ParameterList","parameters":[],"src":"3293:2:20"},"returnParameters":{"id":4182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4181,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4183,"src":"3319:6:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4180,"name":"uint16","nodeType":"ElementaryTypeName","src":"3319:6:20","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"3318:8:20"},"scope":4253,"src":"3274:53:20","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"aaff5f16","id":4192,"implemented":false,"kind":"function","modifiers":[],"name":"retryPayload","nameLocation":"3593:12:20","nodeType":"FunctionDefinition","parameters":{"id":4190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4185,"mutability":"mutable","name":"_srcChainId","nameLocation":"3622:11:20","nodeType":"VariableDeclaration","scope":4192,"src":"3615:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4184,"name":"uint16","nodeType":"ElementaryTypeName","src":"3615:6:20","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4187,"mutability":"mutable","name":"_srcAddress","nameLocation":"3658:11:20","nodeType":"VariableDeclaration","scope":4192,"src":"3643:26:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4186,"name":"bytes","nodeType":"ElementaryTypeName","src":"3643:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4189,"mutability":"mutable","name":"_payload","nameLocation":"3694:8:20","nodeType":"VariableDeclaration","scope":4192,"src":"3679:23:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4188,"name":"bytes","nodeType":"ElementaryTypeName","src":"3679:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3605:103:20"},"returnParameters":{"id":4191,"nodeType":"ParameterList","parameters":[],"src":"3717:0:20"},"scope":4253,"src":"3584:134:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"0eaf6ea6","id":4201,"implemented":false,"kind":"function","modifiers":[],"name":"hasStoredPayload","nameLocation":"3930:16:20","nodeType":"FunctionDefinition","parameters":{"id":4197,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4194,"mutability":"mutable","name":"_srcChainId","nameLocation":"3954:11:20","nodeType":"VariableDeclaration","scope":4201,"src":"3947:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4193,"name":"uint16","nodeType":"ElementaryTypeName","src":"3947:6:20","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4196,"mutability":"mutable","name":"_srcAddress","nameLocation":"3982:11:20","nodeType":"VariableDeclaration","scope":4201,"src":"3967:26:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4195,"name":"bytes","nodeType":"ElementaryTypeName","src":"3967:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3946:48:20"},"returnParameters":{"id":4200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4199,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4201,"src":"4018:4:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4198,"name":"bool","nodeType":"ElementaryTypeName","src":"4018:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4017:6:20"},"scope":4253,"src":"3921:103:20","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"9c729da1","id":4208,"implemented":false,"kind":"function","modifiers":[],"name":"getSendLibraryAddress","nameLocation":"4182:21:20","nodeType":"FunctionDefinition","parameters":{"id":4204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4203,"mutability":"mutable","name":"_userApplication","nameLocation":"4212:16:20","nodeType":"VariableDeclaration","scope":4208,"src":"4204:24:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4202,"name":"address","nodeType":"ElementaryTypeName","src":"4204:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4203:26:20"},"returnParameters":{"id":4207,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4206,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4208,"src":"4253:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4205,"name":"address","nodeType":"ElementaryTypeName","src":"4253:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4252:9:20"},"scope":4253,"src":"4173:89:20","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"71ba2fd6","id":4215,"implemented":false,"kind":"function","modifiers":[],"name":"getReceiveLibraryAddress","nameLocation":"4422:24:20","nodeType":"FunctionDefinition","parameters":{"id":4211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4210,"mutability":"mutable","name":"_userApplication","nameLocation":"4455:16:20","nodeType":"VariableDeclaration","scope":4215,"src":"4447:24:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4209,"name":"address","nodeType":"ElementaryTypeName","src":"4447:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4446:26:20"},"returnParameters":{"id":4214,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4213,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4215,"src":"4496:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4212,"name":"address","nodeType":"ElementaryTypeName","src":"4496:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4495:9:20"},"scope":4253,"src":"4413:92:20","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"e97a448a","id":4220,"implemented":false,"kind":"function","modifiers":[],"name":"isSendingPayload","nameLocation":"4642:16:20","nodeType":"FunctionDefinition","parameters":{"id":4216,"nodeType":"ParameterList","parameters":[],"src":"4658:2:20"},"returnParameters":{"id":4219,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4218,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4220,"src":"4684:4:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4217,"name":"bool","nodeType":"ElementaryTypeName","src":"4684:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4683:6:20"},"scope":4253,"src":"4633:57:20","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"ca066b35","id":4225,"implemented":false,"kind":"function","modifiers":[],"name":"isReceivingPayload","nameLocation":"4830:18:20","nodeType":"FunctionDefinition","parameters":{"id":4221,"nodeType":"ParameterList","parameters":[],"src":"4848:2:20"},"returnParameters":{"id":4224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4223,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4225,"src":"4874:4:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4222,"name":"bool","nodeType":"ElementaryTypeName","src":"4874:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4873:6:20"},"scope":4253,"src":"4821:59:20","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"f5ecbdbc","id":4238,"implemented":false,"kind":"function","modifiers":[],"name":"getConfig","nameLocation":"5287:9:20","nodeType":"FunctionDefinition","parameters":{"id":4234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4227,"mutability":"mutable","name":"_version","nameLocation":"5313:8:20","nodeType":"VariableDeclaration","scope":4238,"src":"5306:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4226,"name":"uint16","nodeType":"ElementaryTypeName","src":"5306:6:20","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4229,"mutability":"mutable","name":"_chainId","nameLocation":"5338:8:20","nodeType":"VariableDeclaration","scope":4238,"src":"5331:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4228,"name":"uint16","nodeType":"ElementaryTypeName","src":"5331:6:20","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4231,"mutability":"mutable","name":"_userApplication","nameLocation":"5364:16:20","nodeType":"VariableDeclaration","scope":4238,"src":"5356:24:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4230,"name":"address","nodeType":"ElementaryTypeName","src":"5356:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4233,"mutability":"mutable","name":"_configType","nameLocation":"5395:11:20","nodeType":"VariableDeclaration","scope":4238,"src":"5390:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4232,"name":"uint","nodeType":"ElementaryTypeName","src":"5390:4:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5296:116:20"},"returnParameters":{"id":4237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4236,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4238,"src":"5436:12:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4235,"name":"bytes","nodeType":"ElementaryTypeName","src":"5436:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5435:14:20"},"scope":4253,"src":"5278:172:20","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"096568f6","id":4245,"implemented":false,"kind":"function","modifiers":[],"name":"getSendVersion","nameLocation":"5609:14:20","nodeType":"FunctionDefinition","parameters":{"id":4241,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4240,"mutability":"mutable","name":"_userApplication","nameLocation":"5632:16:20","nodeType":"VariableDeclaration","scope":4245,"src":"5624:24:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4239,"name":"address","nodeType":"ElementaryTypeName","src":"5624:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5623:26:20"},"returnParameters":{"id":4244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4243,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4245,"src":"5673:6:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4242,"name":"uint16","nodeType":"ElementaryTypeName","src":"5673:6:20","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"5672:8:20"},"scope":4253,"src":"5600:81:20","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"da1a7c9a","id":4252,"implemented":false,"kind":"function","modifiers":[],"name":"getReceiveVersion","nameLocation":"5845:17:20","nodeType":"FunctionDefinition","parameters":{"id":4248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4247,"mutability":"mutable","name":"_userApplication","nameLocation":"5871:16:20","nodeType":"VariableDeclaration","scope":4252,"src":"5863:24:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4246,"name":"address","nodeType":"ElementaryTypeName","src":"5863:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5862:26:20"},"returnParameters":{"id":4251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4250,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4252,"src":"5912:6:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4249,"name":"uint16","nodeType":"ElementaryTypeName","src":"5912:6:20","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"5911:8:20"},"scope":4253,"src":"5836:84:20","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":4254,"src":"108:5814:20","usedErrors":[],"usedEvents":[]}],"src":"33:5890:20"},"id":20},"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroReceiver.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroReceiver.sol","exportedSymbols":{"ILayerZeroReceiver":[4267]},"id":4268,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4255,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"33:24:21"},{"abstract":false,"baseContracts":[],"canonicalName":"ILayerZeroReceiver","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":4267,"linearizedBaseContracts":[4267],"name":"ILayerZeroReceiver","nameLocation":"69:18:21","nodeType":"ContractDefinition","nodes":[{"functionSelector":"001d3567","id":4266,"implemented":false,"kind":"function","modifiers":[],"name":"lzReceive","nameLocation":"482:9:21","nodeType":"FunctionDefinition","parameters":{"id":4264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4257,"mutability":"mutable","name":"_srcChainId","nameLocation":"508:11:21","nodeType":"VariableDeclaration","scope":4266,"src":"501:18:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4256,"name":"uint16","nodeType":"ElementaryTypeName","src":"501:6:21","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4259,"mutability":"mutable","name":"_srcAddress","nameLocation":"544:11:21","nodeType":"VariableDeclaration","scope":4266,"src":"529:26:21","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4258,"name":"bytes","nodeType":"ElementaryTypeName","src":"529:5:21","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4261,"mutability":"mutable","name":"_nonce","nameLocation":"572:6:21","nodeType":"VariableDeclaration","scope":4266,"src":"565:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":4260,"name":"uint64","nodeType":"ElementaryTypeName","src":"565:6:21","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":4263,"mutability":"mutable","name":"_payload","nameLocation":"603:8:21","nodeType":"VariableDeclaration","scope":4266,"src":"588:23:21","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4262,"name":"bytes","nodeType":"ElementaryTypeName","src":"588:5:21","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"491:126:21"},"returnParameters":{"id":4265,"nodeType":"ParameterList","parameters":[],"src":"626:0:21"},"scope":4267,"src":"473:154:21","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":4268,"src":"59:570:21","usedErrors":[],"usedEvents":[]}],"src":"33:597:21"},"id":21},"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroUserApplicationConfig.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroUserApplicationConfig.sol","exportedSymbols":{"ILayerZeroUserApplicationConfig":[4298]},"id":4299,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4269,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"33:24:22"},{"abstract":false,"baseContracts":[],"canonicalName":"ILayerZeroUserApplicationConfig","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":4298,"linearizedBaseContracts":[4298],"name":"ILayerZeroUserApplicationConfig","nameLocation":"69:31:22","nodeType":"ContractDefinition","nodes":[{"functionSelector":"cbed8b9c","id":4280,"implemented":false,"kind":"function","modifiers":[],"name":"setConfig","nameLocation":"512:9:22","nodeType":"FunctionDefinition","parameters":{"id":4278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4271,"mutability":"mutable","name":"_version","nameLocation":"538:8:22","nodeType":"VariableDeclaration","scope":4280,"src":"531:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4270,"name":"uint16","nodeType":"ElementaryTypeName","src":"531:6:22","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4273,"mutability":"mutable","name":"_chainId","nameLocation":"563:8:22","nodeType":"VariableDeclaration","scope":4280,"src":"556:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4272,"name":"uint16","nodeType":"ElementaryTypeName","src":"556:6:22","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4275,"mutability":"mutable","name":"_configType","nameLocation":"586:11:22","nodeType":"VariableDeclaration","scope":4280,"src":"581:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4274,"name":"uint","nodeType":"ElementaryTypeName","src":"581:4:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4277,"mutability":"mutable","name":"_config","nameLocation":"622:7:22","nodeType":"VariableDeclaration","scope":4280,"src":"607:22:22","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4276,"name":"bytes","nodeType":"ElementaryTypeName","src":"607:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"521:114:22"},"returnParameters":{"id":4279,"nodeType":"ParameterList","parameters":[],"src":"644:0:22"},"scope":4298,"src":"503:142:22","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"07e0db17","id":4285,"implemented":false,"kind":"function","modifiers":[],"name":"setSendVersion","nameLocation":"793:14:22","nodeType":"FunctionDefinition","parameters":{"id":4283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4282,"mutability":"mutable","name":"_version","nameLocation":"815:8:22","nodeType":"VariableDeclaration","scope":4285,"src":"808:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4281,"name":"uint16","nodeType":"ElementaryTypeName","src":"808:6:22","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"807:17:22"},"returnParameters":{"id":4284,"nodeType":"ParameterList","parameters":[],"src":"833:0:22"},"scope":4298,"src":"784:50:22","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"10ddb137","id":4290,"implemented":false,"kind":"function","modifiers":[],"name":"setReceiveVersion","nameLocation":"987:17:22","nodeType":"FunctionDefinition","parameters":{"id":4288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4287,"mutability":"mutable","name":"_version","nameLocation":"1012:8:22","nodeType":"VariableDeclaration","scope":4290,"src":"1005:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4286,"name":"uint16","nodeType":"ElementaryTypeName","src":"1005:6:22","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1004:17:22"},"returnParameters":{"id":4289,"nodeType":"ParameterList","parameters":[],"src":"1030:0:22"},"scope":4298,"src":"978:53:22","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"42d65a8d","id":4297,"implemented":false,"kind":"function","modifiers":[],"name":"forceResumeReceive","nameLocation":"1309:18:22","nodeType":"FunctionDefinition","parameters":{"id":4295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4292,"mutability":"mutable","name":"_srcChainId","nameLocation":"1335:11:22","nodeType":"VariableDeclaration","scope":4297,"src":"1328:18:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4291,"name":"uint16","nodeType":"ElementaryTypeName","src":"1328:6:22","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4294,"mutability":"mutable","name":"_srcAddress","nameLocation":"1363:11:22","nodeType":"VariableDeclaration","scope":4297,"src":"1348:26:22","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4293,"name":"bytes","nodeType":"ElementaryTypeName","src":"1348:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1327:48:22"},"returnParameters":{"id":4296,"nodeType":"ParameterList","parameters":[],"src":"1384:0:22"},"scope":4298,"src":"1300:85:22","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":4299,"src":"59:1328:22","usedErrors":[],"usedEvents":[]}],"src":"33:1355:22"},"id":22},"@layerzerolabs/solidity-examples/contracts/lzApp/libs/LzLib.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/libs/LzLib.sol","exportedSymbols":{"LzLib":[4523]},"id":4524,"license":"BUSL-1.1","nodeType":"SourceUnit","nodes":[{"id":4300,"literals":["solidity",">=","0.6",".0"],"nodeType":"PragmaDirective","src":"38:24:23"},{"id":4301,"literals":["experimental","ABIEncoderV2"],"nodeType":"PragmaDirective","src":"63:33:23"},{"abstract":false,"baseContracts":[],"canonicalName":"LzLib","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":4523,"linearizedBaseContracts":[4523],"name":"LzLib","nameLocation":"106:5:23","nodeType":"ContractDefinition","nodes":[{"canonicalName":"LzLib.CallParams","id":4306,"members":[{"constant":false,"id":4303,"mutability":"mutable","name":"refundAddress","nameLocation":"193:13:23","nodeType":"VariableDeclaration","scope":4306,"src":"177:29:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":4302,"name":"address","nodeType":"ElementaryTypeName","src":"177:15:23","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":4305,"mutability":"mutable","name":"zroPaymentAddress","nameLocation":"224:17:23","nodeType":"VariableDeclaration","scope":4306,"src":"216:25:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4304,"name":"address","nodeType":"ElementaryTypeName","src":"216:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"CallParams","nameLocation":"156:10:23","nodeType":"StructDefinition","scope":4523,"src":"149:99:23","visibility":"public"},{"canonicalName":"LzLib.AirdropParams","id":4311,"members":[{"constant":false,"id":4308,"mutability":"mutable","name":"airdropAmount","nameLocation":"402:13:23","nodeType":"VariableDeclaration","scope":4311,"src":"397:18:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4307,"name":"uint","nodeType":"ElementaryTypeName","src":"397:4:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4310,"mutability":"mutable","name":"airdropAddress","nameLocation":"433:14:23","nodeType":"VariableDeclaration","scope":4311,"src":"425:22:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4309,"name":"bytes32","nodeType":"ElementaryTypeName","src":"425:7:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"AirdropParams","nameLocation":"373:13:23","nodeType":"StructDefinition","scope":4523,"src":"366:88:23","visibility":"public"},{"body":{"id":4349,"nodeType":"Block","src":"600:284:23","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4321,"name":"_airdropParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4314,"src":"614:14:23","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$4311_memory_ptr","typeString":"struct LzLib.AirdropParams memory"}},"id":4322,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"629:13:23","memberName":"airdropAmount","nodeType":"MemberAccess","referencedDeclaration":4308,"src":"614:28:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"646:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"614:33:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":4331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4325,"name":"_airdropParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4314,"src":"651:14:23","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$4311_memory_ptr","typeString":"struct LzLib.AirdropParams memory"}},"id":4326,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"666:14:23","memberName":"airdropAddress","nodeType":"MemberAccess","referencedDeclaration":4310,"src":"651:29:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"307830","id":4329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"692:3:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":4328,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"684:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":4327,"name":"bytes32","nodeType":"ElementaryTypeName","src":"684:7:23","typeDescriptions":{}}},"id":4330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"684:12:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"651:45:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"614:82:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":4347,"nodeType":"Block","src":"783:95:23","statements":[{"expression":{"id":4345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4340,"name":"adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4319,"src":"797:13:23","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4342,"name":"_uaGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4316,"src":"839:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4343,"name":"_airdropParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4314,"src":"852:14:23","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$4311_memory_ptr","typeString":"struct LzLib.AirdropParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_AirdropParams_$4311_memory_ptr","typeString":"struct LzLib.AirdropParams memory"}],"id":4341,"name":"buildAirdropAdapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4410,"src":"813:25:23","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_struct$_AirdropParams_$4311_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256,struct LzLib.AirdropParams memory) pure returns (bytes memory)"}},"id":4344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"813:54:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"797:70:23","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4346,"nodeType":"ExpressionStatement","src":"797:70:23"}]},"id":4348,"nodeType":"IfStatement","src":"610:268:23","trueBody":{"id":4339,"nodeType":"Block","src":"698:79:23","statements":[{"expression":{"id":4337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4333,"name":"adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4319,"src":"712:13:23","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4335,"name":"_uaGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4316,"src":"754:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4334,"name":"buildDefaultAdapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4367,"src":"728:25:23","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":4336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"728:38:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"712:54:23","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4338,"nodeType":"ExpressionStatement","src":"712:54:23"}]}}]},"id":4350,"implemented":true,"kind":"function","modifiers":[],"name":"buildAdapterParams","nameLocation":"469:18:23","nodeType":"FunctionDefinition","parameters":{"id":4317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4314,"mutability":"mutable","name":"_airdropParams","nameLocation":"515:14:23","nodeType":"VariableDeclaration","scope":4350,"src":"488:41:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$4311_memory_ptr","typeString":"struct LzLib.AirdropParams"},"typeName":{"id":4313,"nodeType":"UserDefinedTypeName","pathNode":{"id":4312,"name":"LzLib.AirdropParams","nameLocations":["488:5:23","494:13:23"],"nodeType":"IdentifierPath","referencedDeclaration":4311,"src":"488:19:23"},"referencedDeclaration":4311,"src":"488:19:23","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$4311_storage_ptr","typeString":"struct LzLib.AirdropParams"}},"visibility":"internal"},{"constant":false,"id":4316,"mutability":"mutable","name":"_uaGasLimit","nameLocation":"536:11:23","nodeType":"VariableDeclaration","scope":4350,"src":"531:16:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4315,"name":"uint","nodeType":"ElementaryTypeName","src":"531:4:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"487:61:23"},"returnParameters":{"id":4320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4319,"mutability":"mutable","name":"adapterParams","nameLocation":"585:13:23","nodeType":"VariableDeclaration","scope":4350,"src":"572:26:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4318,"name":"bytes","nodeType":"ElementaryTypeName","src":"572:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"571:28:23"},"scope":4523,"src":"460:424:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4366,"nodeType":"Block","src":"1003:153:23","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"31","id":4361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1138:1:23","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":4360,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1131:6:23","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":4359,"name":"uint16","nodeType":"ElementaryTypeName","src":"1131:6:23","typeDescriptions":{}}},"id":4362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1131:9:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":4363,"name":"_uaGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4352,"src":"1142:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4357,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1114:3:23","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4358,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1118:12:23","memberName":"encodePacked","nodeType":"MemberAccess","src":"1114:16:23","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1114:35:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":4356,"id":4365,"nodeType":"Return","src":"1107:42:23"}]},"id":4367,"implemented":true,"kind":"function","modifiers":[],"name":"buildDefaultAdapterParams","nameLocation":"927:25:23","nodeType":"FunctionDefinition","parameters":{"id":4353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4352,"mutability":"mutable","name":"_uaGas","nameLocation":"958:6:23","nodeType":"VariableDeclaration","scope":4367,"src":"953:11:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4351,"name":"uint","nodeType":"ElementaryTypeName","src":"953:4:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"952:13:23"},"returnParameters":{"id":4356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4355,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4367,"src":"989:12:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4354,"name":"bytes","nodeType":"ElementaryTypeName","src":"989:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"988:14:23"},"scope":4523,"src":"918:238:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4409,"nodeType":"Block","src":"1277:438:23","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4378,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4372,"src":"1295:7:23","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$4311_memory_ptr","typeString":"struct LzLib.AirdropParams memory"}},"id":4379,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1303:13:23","memberName":"airdropAmount","nodeType":"MemberAccess","referencedDeclaration":4308,"src":"1295:21:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1319:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1295:25:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"41697264726f7020616d6f756e74206d7573742062652067726561746572207468616e2030","id":4382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1322:39:23","typeDescriptions":{"typeIdentifier":"t_stringliteral_7ce7fe7751b8950db4e0241310685c073c029895d6cd545e35c9e6359e2648a8","typeString":"literal_string \"Airdrop amount must be greater than 0\""},"value":"Airdrop amount must be greater than 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7ce7fe7751b8950db4e0241310685c073c029895d6cd545e35c9e6359e2648a8","typeString":"literal_string \"Airdrop amount must be greater than 0\""}],"id":4377,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1287:7:23","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1287:75:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4384,"nodeType":"ExpressionStatement","src":"1287:75:23"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":4392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4386,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4372,"src":"1380:7:23","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$4311_memory_ptr","typeString":"struct LzLib.AirdropParams memory"}},"id":4387,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1388:14:23","memberName":"airdropAddress","nodeType":"MemberAccess","referencedDeclaration":4310,"src":"1380:22:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"307830","id":4390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1414:3:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":4389,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1406:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":4388,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1406:7:23","typeDescriptions":{}}},"id":4391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1406:12:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1380:38:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"41697264726f702061646472657373206d75737420626520736574","id":4393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1420:29:23","typeDescriptions":{"typeIdentifier":"t_stringliteral_ffe2f6917af6bbc0ca026a12135666d62243f06a6ea5f65d92ac05e992c443b6","typeString":"literal_string \"Airdrop address must be set\""},"value":"Airdrop address must be set"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ffe2f6917af6bbc0ca026a12135666d62243f06a6ea5f65d92ac05e992c443b6","typeString":"literal_string \"Airdrop address must be set\""}],"id":4385,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1372:7:23","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1372:78:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4395,"nodeType":"ExpressionStatement","src":"1372:78:23"},{"expression":{"arguments":[{"arguments":[{"hexValue":"32","id":4400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1650:1:23","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":4399,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1643:6:23","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":4398,"name":"uint16","nodeType":"ElementaryTypeName","src":"1643:6:23","typeDescriptions":{}}},"id":4401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1643:9:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":4402,"name":"_uaGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4369,"src":"1654:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":4403,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4372,"src":"1662:7:23","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$4311_memory_ptr","typeString":"struct LzLib.AirdropParams memory"}},"id":4404,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1670:13:23","memberName":"airdropAmount","nodeType":"MemberAccess","referencedDeclaration":4308,"src":"1662:21:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":4405,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4372,"src":"1685:7:23","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$4311_memory_ptr","typeString":"struct LzLib.AirdropParams memory"}},"id":4406,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1693:14:23","memberName":"airdropAddress","nodeType":"MemberAccess","referencedDeclaration":4310,"src":"1685:22:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":4396,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1626:3:23","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4397,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1630:12:23","memberName":"encodePacked","nodeType":"MemberAccess","src":"1626:16:23","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1626:82:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":4376,"id":4408,"nodeType":"Return","src":"1619:89:23"}]},"id":4410,"implemented":true,"kind":"function","modifiers":[],"name":"buildAirdropAdapterParams","nameLocation":"1171:25:23","nodeType":"FunctionDefinition","parameters":{"id":4373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4369,"mutability":"mutable","name":"_uaGas","nameLocation":"1202:6:23","nodeType":"VariableDeclaration","scope":4410,"src":"1197:11:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4368,"name":"uint","nodeType":"ElementaryTypeName","src":"1197:4:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4372,"mutability":"mutable","name":"_params","nameLocation":"1231:7:23","nodeType":"VariableDeclaration","scope":4410,"src":"1210:28:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$4311_memory_ptr","typeString":"struct LzLib.AirdropParams"},"typeName":{"id":4371,"nodeType":"UserDefinedTypeName","pathNode":{"id":4370,"name":"AirdropParams","nameLocations":["1210:13:23"],"nodeType":"IdentifierPath","referencedDeclaration":4311,"src":"1210:13:23"},"referencedDeclaration":4311,"src":"1210:13:23","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$4311_storage_ptr","typeString":"struct LzLib.AirdropParams"}},"visibility":"internal"}],"src":"1196:43:23"},"returnParameters":{"id":4376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4375,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4410,"src":"1263:12:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4374,"name":"bytes","nodeType":"ElementaryTypeName","src":"1263:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1262:14:23"},"scope":4523,"src":"1162:553:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4431,"nodeType":"Block","src":"1809:192:23","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4418,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4412,"src":"1827:14:23","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1842:6:23","memberName":"length","nodeType":"MemberAccess","src":"1827:21:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3334","id":4420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1852:2:23","typeDescriptions":{"typeIdentifier":"t_rational_34_by_1","typeString":"int_const 34"},"value":"34"},"src":"1827:27:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4422,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4412,"src":"1858:14:23","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1873:6:23","memberName":"length","nodeType":"MemberAccess","src":"1858:21:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3636","id":4424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1882:2:23","typeDescriptions":{"typeIdentifier":"t_rational_66_by_1","typeString":"int_const 66"},"value":"66"},"src":"1858:26:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1827:57:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c69642061646170746572506172616d73","id":4427,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1886:23:23","typeDescriptions":{"typeIdentifier":"t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811","typeString":"literal_string \"Invalid adapterParams\""},"value":"Invalid adapterParams"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811","typeString":"literal_string \"Invalid adapterParams\""}],"id":4417,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1819:7:23","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1819:91:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4429,"nodeType":"ExpressionStatement","src":"1819:91:23"},{"AST":{"nativeSrc":"1929:66:23","nodeType":"YulBlock","src":"1929:66:23","statements":[{"nativeSrc":"1943:42:23","nodeType":"YulAssignment","src":"1943:42:23","value":{"arguments":[{"arguments":[{"name":"_adapterParams","nativeSrc":"1965:14:23","nodeType":"YulIdentifier","src":"1965:14:23"},{"kind":"number","nativeSrc":"1981:2:23","nodeType":"YulLiteral","src":"1981:2:23","type":"","value":"34"}],"functionName":{"name":"add","nativeSrc":"1961:3:23","nodeType":"YulIdentifier","src":"1961:3:23"},"nativeSrc":"1961:23:23","nodeType":"YulFunctionCall","src":"1961:23:23"}],"functionName":{"name":"mload","nativeSrc":"1955:5:23","nodeType":"YulIdentifier","src":"1955:5:23"},"nativeSrc":"1955:30:23","nodeType":"YulFunctionCall","src":"1955:30:23"},"variableNames":[{"name":"gasLimit","nativeSrc":"1943:8:23","nodeType":"YulIdentifier","src":"1943:8:23"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":4412,"isOffset":false,"isSlot":false,"src":"1965:14:23","valueSize":1},{"declaration":4415,"isOffset":false,"isSlot":false,"src":"1943:8:23","valueSize":1}],"id":4430,"nodeType":"InlineAssembly","src":"1920:75:23"}]},"id":4432,"implemented":true,"kind":"function","modifiers":[],"name":"getGasLimit","nameLocation":"1730:11:23","nodeType":"FunctionDefinition","parameters":{"id":4413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4412,"mutability":"mutable","name":"_adapterParams","nameLocation":"1755:14:23","nodeType":"VariableDeclaration","scope":4432,"src":"1742:27:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4411,"name":"bytes","nodeType":"ElementaryTypeName","src":"1742:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1741:29:23"},"returnParameters":{"id":4416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4415,"mutability":"mutable","name":"gasLimit","nameLocation":"1799:8:23","nodeType":"VariableDeclaration","scope":4432,"src":"1794:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4414,"name":"uint","nodeType":"ElementaryTypeName","src":"1794:4:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1793:15:23"},"scope":4523,"src":"1721:280:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4483,"nodeType":"Block","src":"2282:555:23","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4446,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4434,"src":"2300:14:23","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2315:6:23","memberName":"length","nodeType":"MemberAccess","src":"2300:21:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3334","id":4448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2325:2:23","typeDescriptions":{"typeIdentifier":"t_rational_34_by_1","typeString":"int_const 34"},"value":"34"},"src":"2300:27:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4450,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4434,"src":"2331:14:23","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2346:6:23","memberName":"length","nodeType":"MemberAccess","src":"2331:21:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3636","id":4452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2355:2:23","typeDescriptions":{"typeIdentifier":"t_rational_66_by_1","typeString":"int_const 66"},"value":"66"},"src":"2331:26:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2300:57:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c69642061646170746572506172616d73","id":4455,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2359:23:23","typeDescriptions":{"typeIdentifier":"t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811","typeString":"literal_string \"Invalid adapterParams\""},"value":"Invalid adapterParams"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811","typeString":"literal_string \"Invalid adapterParams\""}],"id":4445,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2292:7:23","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2292:91:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4457,"nodeType":"ExpressionStatement","src":"2292:91:23"},{"AST":{"nativeSrc":"2402:115:23","nodeType":"YulBlock","src":"2402:115:23","statements":[{"nativeSrc":"2416:39:23","nodeType":"YulAssignment","src":"2416:39:23","value":{"arguments":[{"arguments":[{"name":"_adapterParams","nativeSrc":"2436:14:23","nodeType":"YulIdentifier","src":"2436:14:23"},{"kind":"number","nativeSrc":"2452:1:23","nodeType":"YulLiteral","src":"2452:1:23","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"2432:3:23","nodeType":"YulIdentifier","src":"2432:3:23"},"nativeSrc":"2432:22:23","nodeType":"YulFunctionCall","src":"2432:22:23"}],"functionName":{"name":"mload","nativeSrc":"2426:5:23","nodeType":"YulIdentifier","src":"2426:5:23"},"nativeSrc":"2426:29:23","nodeType":"YulFunctionCall","src":"2426:29:23"},"variableNames":[{"name":"txType","nativeSrc":"2416:6:23","nodeType":"YulIdentifier","src":"2416:6:23"}]},{"nativeSrc":"2468:39:23","nodeType":"YulAssignment","src":"2468:39:23","value":{"arguments":[{"arguments":[{"name":"_adapterParams","nativeSrc":"2487:14:23","nodeType":"YulIdentifier","src":"2487:14:23"},{"kind":"number","nativeSrc":"2503:2:23","nodeType":"YulLiteral","src":"2503:2:23","type":"","value":"34"}],"functionName":{"name":"add","nativeSrc":"2483:3:23","nodeType":"YulIdentifier","src":"2483:3:23"},"nativeSrc":"2483:23:23","nodeType":"YulFunctionCall","src":"2483:23:23"}],"functionName":{"name":"mload","nativeSrc":"2477:5:23","nodeType":"YulIdentifier","src":"2477:5:23"},"nativeSrc":"2477:30:23","nodeType":"YulFunctionCall","src":"2477:30:23"},"variableNames":[{"name":"uaGas","nativeSrc":"2468:5:23","nodeType":"YulIdentifier","src":"2468:5:23"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":4434,"isOffset":false,"isSlot":false,"src":"2436:14:23","valueSize":1},{"declaration":4434,"isOffset":false,"isSlot":false,"src":"2487:14:23","valueSize":1},{"declaration":4437,"isOffset":false,"isSlot":false,"src":"2416:6:23","valueSize":1},{"declaration":4439,"isOffset":false,"isSlot":false,"src":"2468:5:23","valueSize":1}],"id":4458,"nodeType":"InlineAssembly","src":"2393:124:23"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":4462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4460,"name":"txType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4437,"src":"2534:6:23","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":4461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2544:1:23","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2534:11:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":4465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4463,"name":"txType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4437,"src":"2549:6:23","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"32","id":4464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2559:1:23","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2549:11:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2534:26:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"556e737570706f7274656420747854797065","id":4467,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2562:20:23","typeDescriptions":{"typeIdentifier":"t_stringliteral_4077c8a598c34a32244e743d20d5e8902c44c8500a46b23d668292bbbe5d2c83","typeString":"literal_string \"Unsupported txType\""},"value":"Unsupported txType"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4077c8a598c34a32244e743d20d5e8902c44c8500a46b23d668292bbbe5d2c83","typeString":"literal_string \"Unsupported txType\""}],"id":4459,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2526:7:23","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2526:57:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4469,"nodeType":"ExpressionStatement","src":"2526:57:23"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4471,"name":"uaGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4439,"src":"2601:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2609:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2601:9:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"47617320746f6f206c6f77","id":4474,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2612:13:23","typeDescriptions":{"typeIdentifier":"t_stringliteral_9b212afc0809d994d44a873b9f3c4e7606021e0d8d455342b5758a2ae53b8e2b","typeString":"literal_string \"Gas too low\""},"value":"Gas too low"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9b212afc0809d994d44a873b9f3c4e7606021e0d8d455342b5758a2ae53b8e2b","typeString":"literal_string \"Gas too low\""}],"id":4470,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2593:7:23","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2593:33:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4476,"nodeType":"ExpressionStatement","src":"2593:33:23"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":4479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4477,"name":"txType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4437,"src":"2641:6:23","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"32","id":4478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2651:1:23","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2641:11:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4482,"nodeType":"IfStatement","src":"2637:194:23","trueBody":{"id":4481,"nodeType":"Block","src":"2654:177:23","statements":[{"AST":{"nativeSrc":"2677:144:23","nodeType":"YulBlock","src":"2677:144:23","statements":[{"nativeSrc":"2695:47:23","nodeType":"YulAssignment","src":"2695:47:23","value":{"arguments":[{"arguments":[{"name":"_adapterParams","nativeSrc":"2722:14:23","nodeType":"YulIdentifier","src":"2722:14:23"},{"kind":"number","nativeSrc":"2738:2:23","nodeType":"YulLiteral","src":"2738:2:23","type":"","value":"66"}],"functionName":{"name":"add","nativeSrc":"2718:3:23","nodeType":"YulIdentifier","src":"2718:3:23"},"nativeSrc":"2718:23:23","nodeType":"YulFunctionCall","src":"2718:23:23"}],"functionName":{"name":"mload","nativeSrc":"2712:5:23","nodeType":"YulIdentifier","src":"2712:5:23"},"nativeSrc":"2712:30:23","nodeType":"YulFunctionCall","src":"2712:30:23"},"variableNames":[{"name":"airdropAmount","nativeSrc":"2695:13:23","nodeType":"YulIdentifier","src":"2695:13:23"}]},{"nativeSrc":"2759:48:23","nodeType":"YulAssignment","src":"2759:48:23","value":{"arguments":[{"arguments":[{"name":"_adapterParams","nativeSrc":"2787:14:23","nodeType":"YulIdentifier","src":"2787:14:23"},{"kind":"number","nativeSrc":"2803:2:23","nodeType":"YulLiteral","src":"2803:2:23","type":"","value":"86"}],"functionName":{"name":"add","nativeSrc":"2783:3:23","nodeType":"YulIdentifier","src":"2783:3:23"},"nativeSrc":"2783:23:23","nodeType":"YulFunctionCall","src":"2783:23:23"}],"functionName":{"name":"mload","nativeSrc":"2777:5:23","nodeType":"YulIdentifier","src":"2777:5:23"},"nativeSrc":"2777:30:23","nodeType":"YulFunctionCall","src":"2777:30:23"},"variableNames":[{"name":"airdropAddress","nativeSrc":"2759:14:23","nodeType":"YulIdentifier","src":"2759:14:23"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":4434,"isOffset":false,"isSlot":false,"src":"2722:14:23","valueSize":1},{"declaration":4434,"isOffset":false,"isSlot":false,"src":"2787:14:23","valueSize":1},{"declaration":4443,"isOffset":false,"isSlot":false,"src":"2759:14:23","valueSize":1},{"declaration":4441,"isOffset":false,"isSlot":false,"src":"2695:13:23","valueSize":1}],"id":4480,"nodeType":"InlineAssembly","src":"2668:153:23"}]}}]},"id":4484,"implemented":true,"kind":"function","modifiers":[],"name":"decodeAdapterParams","nameLocation":"2045:19:23","nodeType":"FunctionDefinition","parameters":{"id":4435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4434,"mutability":"mutable","name":"_adapterParams","nameLocation":"2078:14:23","nodeType":"VariableDeclaration","scope":4484,"src":"2065:27:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4433,"name":"bytes","nodeType":"ElementaryTypeName","src":"2065:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2064:29:23"},"returnParameters":{"id":4444,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4437,"mutability":"mutable","name":"txType","nameLocation":"2161:6:23","nodeType":"VariableDeclaration","scope":4484,"src":"2154:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4436,"name":"uint16","nodeType":"ElementaryTypeName","src":"2154:6:23","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4439,"mutability":"mutable","name":"uaGas","nameLocation":"2186:5:23","nodeType":"VariableDeclaration","scope":4484,"src":"2181:10:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4438,"name":"uint","nodeType":"ElementaryTypeName","src":"2181:4:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4441,"mutability":"mutable","name":"airdropAmount","nameLocation":"2210:13:23","nodeType":"VariableDeclaration","scope":4484,"src":"2205:18:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4440,"name":"uint","nodeType":"ElementaryTypeName","src":"2205:4:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4443,"mutability":"mutable","name":"airdropAddress","nameLocation":"2253:14:23","nodeType":"VariableDeclaration","scope":4484,"src":"2237:30:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":4442,"name":"address","nodeType":"ElementaryTypeName","src":"2237:15:23","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"2140:137:23"},"scope":4523,"src":"2036:801:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4502,"nodeType":"Block","src":"3046:63:23","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":4497,"name":"_bytes32Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4486,"src":"3084:15:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4496,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3079:4:23","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4495,"name":"uint","nodeType":"ElementaryTypeName","src":"3079:4:23","typeDescriptions":{}}},"id":4498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3079:21:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4494,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3071:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":4493,"name":"uint160","nodeType":"ElementaryTypeName","src":"3071:7:23","typeDescriptions":{}}},"id":4499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3071:30:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":4492,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3063:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4491,"name":"address","nodeType":"ElementaryTypeName","src":"3063:7:23","typeDescriptions":{}}},"id":4500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3063:39:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":4490,"id":4501,"nodeType":"Return","src":"3056:46:23"}]},"id":4503,"implemented":true,"kind":"function","modifiers":[],"name":"bytes32ToAddress","nameLocation":"2963:16:23","nodeType":"FunctionDefinition","parameters":{"id":4487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4486,"mutability":"mutable","name":"_bytes32Address","nameLocation":"2988:15:23","nodeType":"VariableDeclaration","scope":4503,"src":"2980:23:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4485,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2980:7:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2979:25:23"},"returnParameters":{"id":4490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4489,"mutability":"mutable","name":"_address","nameLocation":"3036:8:23","nodeType":"VariableDeclaration","scope":4503,"src":"3028:16:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4488,"name":"address","nodeType":"ElementaryTypeName","src":"3028:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3027:18:23"},"scope":4523,"src":"2954:155:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4521,"nodeType":"Block","src":"3207:56:23","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":4516,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4505,"src":"3245:8:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4515,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3237:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":4514,"name":"uint160","nodeType":"ElementaryTypeName","src":"3237:7:23","typeDescriptions":{}}},"id":4517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3237:17:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":4513,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3232:4:23","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4512,"name":"uint","nodeType":"ElementaryTypeName","src":"3232:4:23","typeDescriptions":{}}},"id":4518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3232:23:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4511,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3224:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":4510,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3224:7:23","typeDescriptions":{}}},"id":4519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3224:32:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":4509,"id":4520,"nodeType":"Return","src":"3217:39:23"}]},"id":4522,"implemented":true,"kind":"function","modifiers":[],"name":"addressToBytes32","nameLocation":"3124:16:23","nodeType":"FunctionDefinition","parameters":{"id":4506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4505,"mutability":"mutable","name":"_address","nameLocation":"3149:8:23","nodeType":"VariableDeclaration","scope":4522,"src":"3141:16:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4504,"name":"address","nodeType":"ElementaryTypeName","src":"3141:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3140:18:23"},"returnParameters":{"id":4509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4508,"mutability":"mutable","name":"_bytes32Address","nameLocation":"3190:15:23","nodeType":"VariableDeclaration","scope":4522,"src":"3182:23:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4507,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3182:7:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3181:25:23"},"scope":4523,"src":"3115:148:23","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":4524,"src":"98:3167:23","usedErrors":[],"usedEvents":[]}],"src":"38:3228:23"},"id":23},"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol","exportedSymbols":{"ILayerZeroEndpoint":[4253],"ILayerZeroReceiver":[4267],"ILayerZeroUserApplicationConfig":[4298],"LZEndpointMock":[5841],"LzLib":[4523]},"id":5842,"license":"BUSL-1.1","nodeType":"SourceUnit","nodes":[{"id":4525,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"38:23:24"},{"id":4526,"literals":["abicoder","v2"],"nodeType":"PragmaDirective","src":"62:19:24"},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroReceiver.sol","file":"../interfaces/ILayerZeroReceiver.sol","id":4527,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5842,"sourceUnit":4268,"src":"83:46:24","symbolAliases":[],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroEndpoint.sol","file":"../interfaces/ILayerZeroEndpoint.sol","id":4528,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5842,"sourceUnit":4254,"src":"130:46:24","symbolAliases":[],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/libs/LzLib.sol","file":"../libs/LzLib.sol","id":4529,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5842,"sourceUnit":4524,"src":"177:27:24","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":4530,"name":"ILayerZeroEndpoint","nameLocations":["839:18:24"],"nodeType":"IdentifierPath","referencedDeclaration":4253,"src":"839:18:24"},"id":4531,"nodeType":"InheritanceSpecifier","src":"839:18:24"}],"canonicalName":"LZEndpointMock","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":5841,"linearizedBaseContracts":[5841,4253,4298],"name":"LZEndpointMock","nameLocation":"821:14:24","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":4534,"mutability":"constant","name":"_NOT_ENTERED","nameLocation":"888:12:24","nodeType":"VariableDeclaration","scope":5841,"src":"864:40:24","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4532,"name":"uint8","nodeType":"ElementaryTypeName","src":"864:5:24","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"31","id":4533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"903:1:24","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"constant":true,"id":4537,"mutability":"constant","name":"_ENTERED","nameLocation":"934:8:24","nodeType":"VariableDeclaration","scope":5841,"src":"910:36:24","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4535,"name":"uint8","nodeType":"ElementaryTypeName","src":"910:5:24","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"32","id":4536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"945:1:24","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"internal"},{"constant":false,"functionSelector":"c81b383a","id":4541,"mutability":"mutable","name":"lzEndpointLookup","nameLocation":"988:16:24","nodeType":"VariableDeclaration","scope":5841,"src":"953:51:24","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"typeName":{"id":4540,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":4538,"name":"address","nodeType":"ElementaryTypeName","src":"961:7:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"953:27:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":4539,"name":"address","nodeType":"ElementaryTypeName","src":"972:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"public"},{"constant":false,"functionSelector":"db14f305","id":4543,"mutability":"mutable","name":"mockChainId","nameLocation":"1025:11:24","nodeType":"VariableDeclaration","scope":5841,"src":"1011:25:24","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4542,"name":"uint16","nodeType":"ElementaryTypeName","src":"1011:6:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"public"},{"constant":false,"functionSelector":"3e0dd83e","id":4545,"mutability":"mutable","name":"nextMsgBlocked","nameLocation":"1054:14:24","nodeType":"VariableDeclaration","scope":5841,"src":"1042:26:24","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4544,"name":"bool","nodeType":"ElementaryTypeName","src":"1042:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"constant":false,"functionSelector":"907c5e7e","id":4548,"mutability":"mutable","name":"relayerFeeConfig","nameLocation":"1117:16:24","nodeType":"VariableDeclaration","scope":5841,"src":"1093:40:24","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$4604_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig"},"typeName":{"id":4547,"nodeType":"UserDefinedTypeName","pathNode":{"id":4546,"name":"RelayerFeeConfig","nameLocations":["1093:16:24"],"nodeType":"IdentifierPath","referencedDeclaration":4604,"src":"1093:16:24"},"referencedDeclaration":4604,"src":"1093:16:24","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$4604_storage_ptr","typeString":"struct LZEndpointMock.RelayerFeeConfig"}},"visibility":"public"},{"constant":false,"functionSelector":"07d3277f","id":4551,"mutability":"mutable","name":"protocolFeeConfig","nameLocation":"1164:17:24","nodeType":"VariableDeclaration","scope":5841,"src":"1139:42:24","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolFeeConfig_$4593_storage","typeString":"struct LZEndpointMock.ProtocolFeeConfig"},"typeName":{"id":4550,"nodeType":"UserDefinedTypeName","pathNode":{"id":4549,"name":"ProtocolFeeConfig","nameLocations":["1139:17:24"],"nodeType":"IdentifierPath","referencedDeclaration":4593,"src":"1139:17:24"},"referencedDeclaration":4593,"src":"1139:17:24","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolFeeConfig_$4593_storage_ptr","typeString":"struct LZEndpointMock.ProtocolFeeConfig"}},"visibility":"public"},{"constant":false,"functionSelector":"f9cd3ceb","id":4553,"mutability":"mutable","name":"oracleFee","nameLocation":"1199:9:24","nodeType":"VariableDeclaration","scope":5841,"src":"1187:21:24","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4552,"name":"uint","nodeType":"ElementaryTypeName","src":"1187:4:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"272bd384","id":4555,"mutability":"mutable","name":"defaultAdapterParams","nameLocation":"1227:20:24","nodeType":"VariableDeclaration","scope":5841,"src":"1214:33:24","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes"},"typeName":{"id":4554,"name":"bytes","nodeType":"ElementaryTypeName","src":"1214:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"public"},{"constant":false,"functionSelector":"9924d33b","id":4561,"mutability":"mutable","name":"inboundNonce","nameLocation":"1391:12:24","nodeType":"VariableDeclaration","scope":5841,"src":"1340:63:24","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_uint64_$_$","typeString":"mapping(uint16 => mapping(bytes => uint64))"},"typeName":{"id":4560,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":4556,"name":"uint16","nodeType":"ElementaryTypeName","src":"1348:6:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"1340:43:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_uint64_$_$","typeString":"mapping(uint16 => mapping(bytes => uint64))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":4559,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":4557,"name":"bytes","nodeType":"ElementaryTypeName","src":"1366:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"nodeType":"Mapping","src":"1358:24:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_uint64_$","typeString":"mapping(bytes => uint64)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":4558,"name":"uint64","nodeType":"ElementaryTypeName","src":"1375:6:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}}},"visibility":"public"},{"constant":false,"functionSelector":"b2086499","id":4567,"mutability":"mutable","name":"outboundNonce","nameLocation":"1537:13:24","nodeType":"VariableDeclaration","scope":5841,"src":"1484:66:24","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_address_$_t_uint64_$_$","typeString":"mapping(uint16 => mapping(address => uint64))"},"typeName":{"id":4566,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":4562,"name":"uint16","nodeType":"ElementaryTypeName","src":"1492:6:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"1484:45:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_address_$_t_uint64_$_$","typeString":"mapping(uint16 => mapping(address => uint64))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":4565,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":4563,"name":"address","nodeType":"ElementaryTypeName","src":"1510:7:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1502:26:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint64_$","typeString":"mapping(address => uint64)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":4564,"name":"uint64","nodeType":"ElementaryTypeName","src":"1521:6:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}}},"visibility":"public"},{"constant":false,"functionSelector":"76a386dc","id":4574,"mutability":"mutable","name":"storedPayload","nameLocation":"1781:13:24","nodeType":"VariableDeclaration","scope":5841,"src":"1723:71:24","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$4611_storage_$_$","typeString":"mapping(uint16 => mapping(bytes => struct LZEndpointMock.StoredPayload))"},"typeName":{"id":4573,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":4568,"name":"uint16","nodeType":"ElementaryTypeName","src":"1731:6:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"1723:50:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$4611_storage_$_$","typeString":"mapping(uint16 => mapping(bytes => struct LZEndpointMock.StoredPayload))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":4572,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":4569,"name":"bytes","nodeType":"ElementaryTypeName","src":"1749:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"nodeType":"Mapping","src":"1741:31:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$4611_storage_$","typeString":"mapping(bytes => struct LZEndpointMock.StoredPayload)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":4571,"nodeType":"UserDefinedTypeName","pathNode":{"id":4570,"name":"StoredPayload","nameLocations":["1758:13:24"],"nodeType":"IdentifierPath","referencedDeclaration":4611,"src":"1758:13:24"},"referencedDeclaration":4611,"src":"1758:13:24","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$4611_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload"}}}},"visibility":"public"},{"constant":false,"functionSelector":"12a9ee6b","id":4582,"mutability":"mutable","name":"msgsToDeliver","nameLocation":"1901:13:24","nodeType":"VariableDeclaration","scope":5841,"src":"1841:73:24","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_array$_t_struct$_QueuedPayload_$4618_storage_$dyn_storage_$_$","typeString":"mapping(uint16 => mapping(bytes => struct LZEndpointMock.QueuedPayload[]))"},"typeName":{"id":4581,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":4575,"name":"uint16","nodeType":"ElementaryTypeName","src":"1849:6:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"1841:52:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_array$_t_struct$_QueuedPayload_$4618_storage_$dyn_storage_$_$","typeString":"mapping(uint16 => mapping(bytes => struct LZEndpointMock.QueuedPayload[]))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":4580,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":4576,"name":"bytes","nodeType":"ElementaryTypeName","src":"1867:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"nodeType":"Mapping","src":"1859:33:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_array$_t_struct$_QueuedPayload_$4618_storage_$dyn_storage_$","typeString":"mapping(bytes => struct LZEndpointMock.QueuedPayload[])"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"baseType":{"id":4578,"nodeType":"UserDefinedTypeName","pathNode":{"id":4577,"name":"QueuedPayload","nameLocations":["1876:13:24"],"nodeType":"IdentifierPath","referencedDeclaration":4618,"src":"1876:13:24"},"referencedDeclaration":4618,"src":"1876:13:24","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$4618_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload"}},"id":4579,"nodeType":"ArrayTypeName","src":"1876:15:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$4618_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload[]"}}}},"visibility":"public"},{"constant":false,"id":4585,"mutability":"mutable","name":"_send_entered_state","nameLocation":"1960:19:24","nodeType":"VariableDeclaration","scope":5841,"src":"1945:38:24","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4583,"name":"uint8","nodeType":"ElementaryTypeName","src":"1945:5:24","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"31","id":4584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1982:1:24","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"constant":false,"id":4588,"mutability":"mutable","name":"_receive_entered_state","nameLocation":"2004:22:24","nodeType":"VariableDeclaration","scope":5841,"src":"1989:41:24","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4586,"name":"uint8","nodeType":"ElementaryTypeName","src":"1989:5:24","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"31","id":4587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2029:1:24","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"canonicalName":"LZEndpointMock.ProtocolFeeConfig","id":4593,"members":[{"constant":false,"id":4590,"mutability":"mutable","name":"zroFee","nameLocation":"2077:6:24","nodeType":"VariableDeclaration","scope":4593,"src":"2072:11:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4589,"name":"uint","nodeType":"ElementaryTypeName","src":"2072:4:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4592,"mutability":"mutable","name":"nativeBP","nameLocation":"2098:8:24","nodeType":"VariableDeclaration","scope":4593,"src":"2093:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4591,"name":"uint","nodeType":"ElementaryTypeName","src":"2093:4:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ProtocolFeeConfig","nameLocation":"2044:17:24","nodeType":"StructDefinition","scope":5841,"src":"2037:76:24","visibility":"public"},{"canonicalName":"LZEndpointMock.RelayerFeeConfig","id":4604,"members":[{"constant":false,"id":4595,"mutability":"mutable","name":"dstPriceRatio","nameLocation":"2161:13:24","nodeType":"VariableDeclaration","scope":4604,"src":"2153:21:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":4594,"name":"uint128","nodeType":"ElementaryTypeName","src":"2153:7:24","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":4597,"mutability":"mutable","name":"dstGasPriceInWei","nameLocation":"2201:16:24","nodeType":"VariableDeclaration","scope":4604,"src":"2193:24:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":4596,"name":"uint128","nodeType":"ElementaryTypeName","src":"2193:7:24","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":4599,"mutability":"mutable","name":"dstNativeAmtCap","nameLocation":"2235:15:24","nodeType":"VariableDeclaration","scope":4604,"src":"2227:23:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":4598,"name":"uint128","nodeType":"ElementaryTypeName","src":"2227:7:24","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":4601,"mutability":"mutable","name":"baseGas","nameLocation":"2267:7:24","nodeType":"VariableDeclaration","scope":4604,"src":"2260:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":4600,"name":"uint64","nodeType":"ElementaryTypeName","src":"2260:6:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":4603,"mutability":"mutable","name":"gasPerByte","nameLocation":"2291:10:24","nodeType":"VariableDeclaration","scope":4604,"src":"2284:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":4602,"name":"uint64","nodeType":"ElementaryTypeName","src":"2284:6:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"name":"RelayerFeeConfig","nameLocation":"2126:16:24","nodeType":"StructDefinition","scope":5841,"src":"2119:189:24","visibility":"public"},{"canonicalName":"LZEndpointMock.StoredPayload","id":4611,"members":[{"constant":false,"id":4606,"mutability":"mutable","name":"payloadLength","nameLocation":"2352:13:24","nodeType":"VariableDeclaration","scope":4611,"src":"2345:20:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":4605,"name":"uint64","nodeType":"ElementaryTypeName","src":"2345:6:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":4608,"mutability":"mutable","name":"dstAddress","nameLocation":"2383:10:24","nodeType":"VariableDeclaration","scope":4611,"src":"2375:18:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4607,"name":"address","nodeType":"ElementaryTypeName","src":"2375:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4610,"mutability":"mutable","name":"payloadHash","nameLocation":"2411:11:24","nodeType":"VariableDeclaration","scope":4611,"src":"2403:19:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4609,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2403:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"StoredPayload","nameLocation":"2321:13:24","nodeType":"StructDefinition","scope":5841,"src":"2314:115:24","visibility":"public"},{"canonicalName":"LZEndpointMock.QueuedPayload","id":4618,"members":[{"constant":false,"id":4613,"mutability":"mutable","name":"dstAddress","nameLocation":"2474:10:24","nodeType":"VariableDeclaration","scope":4618,"src":"2466:18:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4612,"name":"address","nodeType":"ElementaryTypeName","src":"2466:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4615,"mutability":"mutable","name":"nonce","nameLocation":"2501:5:24","nodeType":"VariableDeclaration","scope":4618,"src":"2494:12:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":4614,"name":"uint64","nodeType":"ElementaryTypeName","src":"2494:6:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":4617,"mutability":"mutable","name":"payload","nameLocation":"2522:7:24","nodeType":"VariableDeclaration","scope":4618,"src":"2516:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":4616,"name":"bytes","nodeType":"ElementaryTypeName","src":"2516:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"QueuedPayload","nameLocation":"2442:13:24","nodeType":"StructDefinition","scope":5841,"src":"2435:101:24","visibility":"public"},{"body":{"id":4636,"nodeType":"Block","src":"2570:193:24","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":4623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4621,"name":"_send_entered_state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4585,"src":"2588:19:24","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":4622,"name":"_NOT_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4534,"src":"2611:12:24","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2588:35:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f2073656e64207265656e7472616e6379","id":4624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2625:35:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_73b1d6d5ba54cd5e4e2ebace0c8623f647e51a2b5e72af7e7df83d716224bbcb","typeString":"literal_string \"LayerZeroMock: no send reentrancy\""},"value":"LayerZeroMock: no send reentrancy"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_73b1d6d5ba54cd5e4e2ebace0c8623f647e51a2b5e72af7e7df83d716224bbcb","typeString":"literal_string \"LayerZeroMock: no send reentrancy\""}],"id":4620,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2580:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2580:81:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4626,"nodeType":"ExpressionStatement","src":"2580:81:24"},{"expression":{"id":4629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4627,"name":"_send_entered_state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4585,"src":"2671:19:24","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4628,"name":"_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4537,"src":"2693:8:24","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2671:30:24","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4630,"nodeType":"ExpressionStatement","src":"2671:30:24"},{"id":4631,"nodeType":"PlaceholderStatement","src":"2711:1:24"},{"expression":{"id":4634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4632,"name":"_send_entered_state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4585,"src":"2722:19:24","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4633,"name":"_NOT_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4534,"src":"2744:12:24","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2722:34:24","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4635,"nodeType":"ExpressionStatement","src":"2722:34:24"}]},"id":4637,"name":"sendNonReentrant","nameLocation":"2551:16:24","nodeType":"ModifierDefinition","parameters":{"id":4619,"nodeType":"ParameterList","parameters":[],"src":"2567:2:24"},"src":"2542:221:24","virtual":false,"visibility":"internal"},{"body":{"id":4655,"nodeType":"Block","src":"2800:205:24","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":4642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4640,"name":"_receive_entered_state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4588,"src":"2818:22:24","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":4641,"name":"_NOT_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4534,"src":"2844:12:24","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2818:38:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f2072656365697665207265656e7472616e6379","id":4643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2858:38:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_82caa7769a2a1defb5e8d4082900c39c0f04eedfd5e921c1e3bf1d16730a12ab","typeString":"literal_string \"LayerZeroMock: no receive reentrancy\""},"value":"LayerZeroMock: no receive reentrancy"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_82caa7769a2a1defb5e8d4082900c39c0f04eedfd5e921c1e3bf1d16730a12ab","typeString":"literal_string \"LayerZeroMock: no receive reentrancy\""}],"id":4639,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2810:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2810:87:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4645,"nodeType":"ExpressionStatement","src":"2810:87:24"},{"expression":{"id":4648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4646,"name":"_receive_entered_state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4588,"src":"2907:22:24","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4647,"name":"_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4537,"src":"2932:8:24","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2907:33:24","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4649,"nodeType":"ExpressionStatement","src":"2907:33:24"},{"id":4650,"nodeType":"PlaceholderStatement","src":"2950:1:24"},{"expression":{"id":4653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4651,"name":"_receive_entered_state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4588,"src":"2961:22:24","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4652,"name":"_NOT_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4534,"src":"2986:12:24","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2961:37:24","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4654,"nodeType":"ExpressionStatement","src":"2961:37:24"}]},"id":4656,"name":"receiveNonReentrant","nameLocation":"2778:19:24","nodeType":"ModifierDefinition","parameters":{"id":4638,"nodeType":"ParameterList","parameters":[],"src":"2797:2:24"},"src":"2769:236:24","virtual":false,"visibility":"internal"},{"anonymous":false,"eventSelector":"23d2684f396e92a6e2ff2d16f98e6fea00d50cb27a64b531bc0748f730211f98","id":4662,"name":"UaForceResumeReceive","nameLocation":"3017:20:24","nodeType":"EventDefinition","parameters":{"id":4661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4658,"indexed":false,"mutability":"mutable","name":"chainId","nameLocation":"3045:7:24","nodeType":"VariableDeclaration","scope":4662,"src":"3038:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4657,"name":"uint16","nodeType":"ElementaryTypeName","src":"3038:6:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4660,"indexed":false,"mutability":"mutable","name":"srcAddress","nameLocation":"3060:10:24","nodeType":"VariableDeclaration","scope":4662,"src":"3054:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4659,"name":"bytes","nodeType":"ElementaryTypeName","src":"3054:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3037:34:24"},"src":"3011:61:24"},{"anonymous":false,"eventSelector":"612434f39581c8e7d99746c9c20c6eb0ce8c0eb99f007c5719d620841370957d","id":4672,"name":"PayloadCleared","nameLocation":"3083:14:24","nodeType":"EventDefinition","parameters":{"id":4671,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4664,"indexed":false,"mutability":"mutable","name":"srcChainId","nameLocation":"3105:10:24","nodeType":"VariableDeclaration","scope":4672,"src":"3098:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4663,"name":"uint16","nodeType":"ElementaryTypeName","src":"3098:6:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4666,"indexed":false,"mutability":"mutable","name":"srcAddress","nameLocation":"3123:10:24","nodeType":"VariableDeclaration","scope":4672,"src":"3117:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4665,"name":"bytes","nodeType":"ElementaryTypeName","src":"3117:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4668,"indexed":false,"mutability":"mutable","name":"nonce","nameLocation":"3142:5:24","nodeType":"VariableDeclaration","scope":4672,"src":"3135:12:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":4667,"name":"uint64","nodeType":"ElementaryTypeName","src":"3135:6:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":4670,"indexed":false,"mutability":"mutable","name":"dstAddress","nameLocation":"3157:10:24","nodeType":"VariableDeclaration","scope":4672,"src":"3149:18:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4669,"name":"address","nodeType":"ElementaryTypeName","src":"3149:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3097:71:24"},"src":"3077:92:24"},{"anonymous":false,"eventSelector":"0f9e4d95b62f08222d612b5ab92039cd8fbbbea550a95e8df9f927436bbdf5db","id":4686,"name":"PayloadStored","nameLocation":"3180:13:24","nodeType":"EventDefinition","parameters":{"id":4685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4674,"indexed":false,"mutability":"mutable","name":"srcChainId","nameLocation":"3201:10:24","nodeType":"VariableDeclaration","scope":4686,"src":"3194:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4673,"name":"uint16","nodeType":"ElementaryTypeName","src":"3194:6:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4676,"indexed":false,"mutability":"mutable","name":"srcAddress","nameLocation":"3219:10:24","nodeType":"VariableDeclaration","scope":4686,"src":"3213:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4675,"name":"bytes","nodeType":"ElementaryTypeName","src":"3213:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4678,"indexed":false,"mutability":"mutable","name":"dstAddress","nameLocation":"3239:10:24","nodeType":"VariableDeclaration","scope":4686,"src":"3231:18:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4677,"name":"address","nodeType":"ElementaryTypeName","src":"3231:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4680,"indexed":false,"mutability":"mutable","name":"nonce","nameLocation":"3258:5:24","nodeType":"VariableDeclaration","scope":4686,"src":"3251:12:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":4679,"name":"uint64","nodeType":"ElementaryTypeName","src":"3251:6:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":4682,"indexed":false,"mutability":"mutable","name":"payload","nameLocation":"3271:7:24","nodeType":"VariableDeclaration","scope":4686,"src":"3265:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4681,"name":"bytes","nodeType":"ElementaryTypeName","src":"3265:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4684,"indexed":false,"mutability":"mutable","name":"reason","nameLocation":"3286:6:24","nodeType":"VariableDeclaration","scope":4686,"src":"3280:12:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4683,"name":"bytes","nodeType":"ElementaryTypeName","src":"3280:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3193:100:24"},"src":"3174:120:24"},{"anonymous":false,"eventSelector":"2c7a964ca3de5ec1d42d9822f9bbd0eb142a59cc9f855e9d93813b773192c7a3","id":4692,"name":"ValueTransferFailed","nameLocation":"3305:19:24","nodeType":"EventDefinition","parameters":{"id":4691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4688,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"3341:2:24","nodeType":"VariableDeclaration","scope":4692,"src":"3325:18:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4687,"name":"address","nodeType":"ElementaryTypeName","src":"3325:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4690,"indexed":true,"mutability":"mutable","name":"quantity","nameLocation":"3358:8:24","nodeType":"VariableDeclaration","scope":4692,"src":"3345:21:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4689,"name":"uint","nodeType":"ElementaryTypeName","src":"3345:4:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3324:43:24"},"src":"3299:69:24"},{"body":{"id":4729,"nodeType":"Block","src":"3403:501:24","statements":[{"expression":{"id":4699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4697,"name":"mockChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4543,"src":"3413:11:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4698,"name":"_chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4694,"src":"3427:8:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"3413:22:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":4700,"nodeType":"ExpressionStatement","src":"3413:22:24"},{"expression":{"id":4709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4701,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4548,"src":"3469:16:24","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$4604_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"31653130","id":4703,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3534:4:24","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"1e10"},{"hexValue":"31653130","id":4704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3607:4:24","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"1e10"},{"hexValue":"31653139","id":4705,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3642:4:24","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000_by_1","typeString":"int_const 10000000000000000000"},"value":"1e19"},{"hexValue":"313030","id":4706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3669:3:24","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},{"hexValue":"31","id":4707,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3698:1:24","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},{"typeIdentifier":"t_rational_10000000000000000000_by_1","typeString":"int_const 10000000000000000000"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":4702,"name":"RelayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4604,"src":"3488:16:24","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RelayerFeeConfig_$4604_storage_ptr_$","typeString":"type(struct LZEndpointMock.RelayerFeeConfig storage pointer)"}},"id":4708,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3519:13:24","3589:16:24","3625:15:24","3660:7:24","3686:10:24"],"names":["dstPriceRatio","dstGasPriceInWei","dstNativeAmtCap","baseGas","gasPerByte"],"nodeType":"FunctionCall","src":"3488:222:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$4604_memory_ptr","typeString":"struct LZEndpointMock.RelayerFeeConfig memory"}},"src":"3469:241:24","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$4604_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":4710,"nodeType":"ExpressionStatement","src":"3469:241:24"},{"expression":{"id":4716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4711,"name":"protocolFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4551,"src":"3720:17:24","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolFeeConfig_$4593_storage","typeString":"struct LZEndpointMock.ProtocolFeeConfig storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"31653138","id":4713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3767:4:24","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},{"hexValue":"31303030","id":4714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3783:4:24","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"}],"id":4712,"name":"ProtocolFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4593,"src":"3740:17:24","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProtocolFeeConfig_$4593_storage_ptr_$","typeString":"type(struct LZEndpointMock.ProtocolFeeConfig storage pointer)"}},"id":4715,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3759:6:24","3773:8:24"],"names":["zroFee","nativeBP"],"nodeType":"FunctionCall","src":"3740:49:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolFeeConfig_$4593_memory_ptr","typeString":"struct LZEndpointMock.ProtocolFeeConfig memory"}},"src":"3720:69:24","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolFeeConfig_$4593_storage","typeString":"struct LZEndpointMock.ProtocolFeeConfig storage ref"}},"id":4717,"nodeType":"ExpressionStatement","src":"3720:69:24"},{"expression":{"id":4720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4718,"name":"oracleFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4553,"src":"3809:9:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31653136","id":4719,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3821:4:24","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"value":"1e16"},"src":"3809:16:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4721,"nodeType":"ExpressionStatement","src":"3809:16:24"},{"expression":{"id":4727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4722,"name":"defaultAdapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4555,"src":"3835:20:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"323030303030","id":4725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3890:6:24","typeDescriptions":{"typeIdentifier":"t_rational_200000_by_1","typeString":"int_const 200000"},"value":"200000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200000_by_1","typeString":"int_const 200000"}],"expression":{"id":4723,"name":"LzLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4523,"src":"3858:5:24","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LzLib_$4523_$","typeString":"type(library LzLib)"}},"id":4724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3864:25:24","memberName":"buildDefaultAdapterParams","nodeType":"MemberAccess","referencedDeclaration":4367,"src":"3858:31:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":4726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3858:39:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"3835:62:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":4728,"nodeType":"ExpressionStatement","src":"3835:62:24"}]},"id":4730,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":4695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4694,"mutability":"mutable","name":"_chainId","nameLocation":"3393:8:24","nodeType":"VariableDeclaration","scope":4730,"src":"3386:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4693,"name":"uint16","nodeType":"ElementaryTypeName","src":"3386:6:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"3385:17:24"},"returnParameters":{"id":4696,"nodeType":"ParameterList","parameters":[],"src":"3403:0:24"},"scope":5841,"src":"3374:530:24","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[4128],"body":{"id":4905,"nodeType":"Block","src":"4270:1804:24","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4749,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4734,"src":"4288:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4294:6:24","memberName":"length","nodeType":"MemberAccess","src":"4288:12:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3430","id":4751,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4304:2:24","typeDescriptions":{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},"value":"40"},"src":"4288:18:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a20696e636f72726563742072656d6f746520616464726573732073697a65","id":4753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4308:46:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_a84f16779931db7ec618d2bd334bd656888d24e7e320bdf2dd7a0a0862d1916b","typeString":"literal_string \"LayerZeroMock: incorrect remote address size\""},"value":"LayerZeroMock: incorrect remote address size"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a84f16779931db7ec618d2bd334bd656888d24e7e320bdf2dd7a0a0862d1916b","typeString":"literal_string \"LayerZeroMock: incorrect remote address size\""}],"id":4748,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4280:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4280:75:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4755,"nodeType":"ExpressionStatement","src":"4280:75:24"},{"assignments":[4757],"declarations":[{"constant":false,"id":4757,"mutability":"mutable","name":"dstAddr","nameLocation":"4401:7:24","nodeType":"VariableDeclaration","scope":4905,"src":"4393:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4756,"name":"address","nodeType":"ElementaryTypeName","src":"4393:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":4758,"nodeType":"VariableDeclarationStatement","src":"4393:15:24"},{"AST":{"nativeSrc":"4427:56:24","nodeType":"YulBlock","src":"4427:56:24","statements":[{"nativeSrc":"4441:32:24","nodeType":"YulAssignment","src":"4441:32:24","value":{"arguments":[{"arguments":[{"name":"_path","nativeSrc":"4462:5:24","nodeType":"YulIdentifier","src":"4462:5:24"},{"kind":"number","nativeSrc":"4469:2:24","nodeType":"YulLiteral","src":"4469:2:24","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"4458:3:24","nodeType":"YulIdentifier","src":"4458:3:24"},"nativeSrc":"4458:14:24","nodeType":"YulFunctionCall","src":"4458:14:24"}],"functionName":{"name":"mload","nativeSrc":"4452:5:24","nodeType":"YulIdentifier","src":"4452:5:24"},"nativeSrc":"4452:21:24","nodeType":"YulFunctionCall","src":"4452:21:24"},"variableNames":[{"name":"dstAddr","nativeSrc":"4441:7:24","nodeType":"YulIdentifier","src":"4441:7:24"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":4734,"isOffset":false,"isSlot":false,"src":"4462:5:24","valueSize":1},{"declaration":4757,"isOffset":false,"isSlot":false,"src":"4441:7:24","valueSize":1}],"id":4759,"nodeType":"InlineAssembly","src":"4418:65:24"},{"assignments":[4761],"declarations":[{"constant":false,"id":4761,"mutability":"mutable","name":"lzEndpoint","nameLocation":"4501:10:24","nodeType":"VariableDeclaration","scope":4905,"src":"4493:18:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4760,"name":"address","nodeType":"ElementaryTypeName","src":"4493:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":4765,"initialValue":{"baseExpression":{"id":4762,"name":"lzEndpointLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4541,"src":"4514:16:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":4764,"indexExpression":{"id":4763,"name":"dstAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4757,"src":"4531:7:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4514:25:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4493:46:24"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4767,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4761,"src":"4557:10:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":4770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4579:1:24","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":4769,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4571:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4768,"name":"address","nodeType":"ElementaryTypeName","src":"4571:7:24","typeDescriptions":{}}},"id":4771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4571:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4557:24:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a2064657374696e6174696f6e204c617965725a65726f20456e64706f696e74206e6f7420666f756e64","id":4773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4583:57:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_03f2c372695dfb7017d0d1b5b039a7a7c563c382ff38f9563e77eedca785e4df","typeString":"literal_string \"LayerZeroMock: destination LayerZero Endpoint not found\""},"value":"LayerZeroMock: destination LayerZero Endpoint not found"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_03f2c372695dfb7017d0d1b5b039a7a7c563c382ff38f9563e77eedca785e4df","typeString":"literal_string \"LayerZeroMock: destination LayerZero Endpoint not found\""}],"id":4766,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4549:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4549:92:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4775,"nodeType":"ExpressionStatement","src":"4549:92:24"},{"assignments":[4777],"declarations":[{"constant":false,"id":4777,"mutability":"mutable","name":"adapterParams","nameLocation":"4697:13:24","nodeType":"VariableDeclaration","scope":4905,"src":"4684:26:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4776,"name":"bytes","nodeType":"ElementaryTypeName","src":"4684:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4785,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4778,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4742,"src":"4713:14:24","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4728:6:24","memberName":"length","nodeType":"MemberAccess","src":"4713:21:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4737:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4713:25:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":4783,"name":"defaultAdapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4555,"src":"4758:20:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":4784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"4713:65:24","trueExpression":{"id":4782,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4742,"src":"4741:14:24","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4684:94:24"},{"assignments":[4787,null],"declarations":[{"constant":false,"id":4787,"mutability":"mutable","name":"nativeFee","nameLocation":"4794:9:24","nodeType":"VariableDeclaration","scope":4905,"src":"4789:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4786,"name":"uint","nodeType":"ElementaryTypeName","src":"4789:4:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":4801,"initialValue":{"arguments":[{"id":4789,"name":"_chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4732,"src":"4822:8:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"expression":{"id":4790,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4832:3:24","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4836:6:24","memberName":"sender","nodeType":"MemberAccess","src":"4832:10:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4792,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4736,"src":"4844:8:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4793,"name":"_zroPaymentAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4740,"src":"4854:18:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"307830","id":4796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4884:3:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":4795,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4876:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4794,"name":"address","nodeType":"ElementaryTypeName","src":"4876:7:24","typeDescriptions":{}}},"id":4797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4876:12:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4854:34:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":4799,"name":"adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4777,"src":"4890:13:24","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4788,"name":"estimateFees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5212,"src":"4809:12:24","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint16_$_t_address_$_t_bytes_memory_ptr_$_t_bool_$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint16,address,bytes memory,bool,bytes memory) view returns (uint256,uint256)"}},"id":4800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4809:95:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"4788:116:24"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4803,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4922:3:24","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4926:5:24","memberName":"value","nodeType":"MemberAccess","src":"4922:9:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":4805,"name":"nativeFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4787,"src":"4935:9:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4922:22:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f7420656e6f756768206e617469766520666f722066656573","id":4807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4946:43:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_1d7a441e6351efbe3589b780f6d9098a5373ce9246e759367f3fb559adf16b4a","typeString":"literal_string \"LayerZeroMock: not enough native for fees\""},"value":"LayerZeroMock: not enough native for fees"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1d7a441e6351efbe3589b780f6d9098a5373ce9246e759367f3fb559adf16b4a","typeString":"literal_string \"LayerZeroMock: not enough native for fees\""}],"id":4802,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4914:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4914:76:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4809,"nodeType":"ExpressionStatement","src":"4914:76:24"},{"assignments":[4811],"declarations":[{"constant":false,"id":4811,"mutability":"mutable","name":"nonce","nameLocation":"5008:5:24","nodeType":"VariableDeclaration","scope":4905,"src":"5001:12:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":4810,"name":"uint64","nodeType":"ElementaryTypeName","src":"5001:6:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":4819,"initialValue":{"id":4818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5016:37:24","subExpression":{"baseExpression":{"baseExpression":{"id":4812,"name":"outboundNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4567,"src":"5018:13:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_address_$_t_uint64_$_$","typeString":"mapping(uint16 => mapping(address => uint64))"}},"id":4814,"indexExpression":{"id":4813,"name":"_chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4732,"src":"5032:8:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5018:23:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint64_$","typeString":"mapping(address => uint64)"}},"id":4817,"indexExpression":{"expression":{"id":4815,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5042:3:24","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5046:6:24","memberName":"sender","nodeType":"MemberAccess","src":"5042:10:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5018:35:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"5001:52:24"},{"assignments":[4821],"declarations":[{"constant":false,"id":4821,"mutability":"mutable","name":"amount","nameLocation":"5109:6:24","nodeType":"VariableDeclaration","scope":4905,"src":"5104:11:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4820,"name":"uint","nodeType":"ElementaryTypeName","src":"5104:4:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4826,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4822,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5118:3:24","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5122:5:24","memberName":"value","nodeType":"MemberAccess","src":"5118:9:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":4824,"name":"nativeFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4787,"src":"5130:9:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5118:21:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5104:35:24"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4827,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4821,"src":"5153:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5162:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5153:10:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4845,"nodeType":"IfStatement","src":"5149:163:24","trueBody":{"id":4844,"nodeType":"Block","src":"5165:147:24","statements":[{"assignments":[4831,null],"declarations":[{"constant":false,"id":4831,"mutability":"mutable","name":"success","nameLocation":"5185:7:24","nodeType":"VariableDeclaration","scope":4844,"src":"5180:12:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4830,"name":"bool","nodeType":"ElementaryTypeName","src":"5180:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":4838,"initialValue":{"arguments":[{"hexValue":"","id":4836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5233:2:24","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":4832,"name":"_refundAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4738,"src":"5198:14:24","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":4833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5213:4:24","memberName":"call","nodeType":"MemberAccess","src":"5198:19:24","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":4835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":4834,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4821,"src":"5225:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"5198:34:24","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":4837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5198:38:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5179:57:24"},{"expression":{"arguments":[{"id":4840,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4831,"src":"5258:7:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a206661696c656420746f20726566756e64","id":4841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5267:33:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_dcfb2fb846bf29eed16ab1966cc303d2b0cbdcaede7d9e78ee4c30c1a8119790","typeString":"literal_string \"LayerZeroMock: failed to refund\""},"value":"LayerZeroMock: failed to refund"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dcfb2fb846bf29eed16ab1966cc303d2b0cbdcaede7d9e78ee4c30c1a8119790","typeString":"literal_string \"LayerZeroMock: failed to refund\""}],"id":4839,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5250:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5250:51:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4843,"nodeType":"ExpressionStatement","src":"5250:51:24"}]}},{"assignments":[null,4847,4849,4851],"declarations":[null,{"constant":false,"id":4847,"mutability":"mutable","name":"extraGas","nameLocation":"5474:8:24","nodeType":"VariableDeclaration","scope":4905,"src":"5469:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4846,"name":"uint","nodeType":"ElementaryTypeName","src":"5469:4:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4849,"mutability":"mutable","name":"dstNativeAmt","nameLocation":"5489:12:24","nodeType":"VariableDeclaration","scope":4905,"src":"5484:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4848,"name":"uint","nodeType":"ElementaryTypeName","src":"5484:4:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4851,"mutability":"mutable","name":"dstNativeAddr","nameLocation":"5519:13:24","nodeType":"VariableDeclaration","scope":4905,"src":"5503:29:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":4850,"name":"address","nodeType":"ElementaryTypeName","src":"5503:15:24","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"id":4856,"initialValue":{"arguments":[{"id":4854,"name":"adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4777,"src":"5562:13:24","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":4852,"name":"LzLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4523,"src":"5536:5:24","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LzLib_$4523_$","typeString":"type(library LzLib)"}},"id":4853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5542:19:24","memberName":"decodeAdapterParams","nodeType":"MemberAccess","referencedDeclaration":4484,"src":"5536:25:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint16_$_t_uint256_$_t_uint256_$_t_address_payable_$","typeString":"function (bytes memory) pure returns (uint16,uint256,uint256,address payable)"}},"id":4855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5536:40:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$_t_uint256_$_t_address_payable_$","typeString":"tuple(uint16,uint256,uint256,address payable)"}},"nodeType":"VariableDeclarationStatement","src":"5466:110:24"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4857,"name":"dstNativeAmt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4849,"src":"5590:12:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4858,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5605:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5590:16:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4879,"nodeType":"IfStatement","src":"5586:222:24","trueBody":{"id":4878,"nodeType":"Block","src":"5608:200:24","statements":[{"assignments":[4861,null],"declarations":[{"constant":false,"id":4861,"mutability":"mutable","name":"success","nameLocation":"5628:7:24","nodeType":"VariableDeclaration","scope":4878,"src":"5623:12:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4860,"name":"bool","nodeType":"ElementaryTypeName","src":"5623:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":4868,"initialValue":{"arguments":[{"hexValue":"","id":4866,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5681:2:24","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":4862,"name":"dstNativeAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4851,"src":"5641:13:24","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":4863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5655:4:24","memberName":"call","nodeType":"MemberAccess","src":"5641:18:24","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":4865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":4864,"name":"dstNativeAmt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4849,"src":"5667:12:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"5641:39:24","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":4867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5641:43:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5622:62:24"},{"condition":{"id":4870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5702:8:24","subExpression":{"id":4869,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4861,"src":"5703:7:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4877,"nodeType":"IfStatement","src":"5698:100:24","trueBody":{"id":4876,"nodeType":"Block","src":"5712:86:24","statements":[{"eventCall":{"arguments":[{"id":4872,"name":"dstNativeAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4851,"src":"5755:13:24","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":4873,"name":"dstNativeAmt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4849,"src":"5770:12:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4871,"name":"ValueTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4692,"src":"5735:19:24","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":4874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5735:48:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4875,"nodeType":"EmitStatement","src":"5730:53:24"}]}}]}},{"assignments":[4881],"declarations":[{"constant":false,"id":4881,"mutability":"mutable","name":"srcUaAddress","nameLocation":"5831:12:24","nodeType":"VariableDeclaration","scope":4905,"src":"5818:25:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4880,"name":"bytes","nodeType":"ElementaryTypeName","src":"5818:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4888,"initialValue":{"arguments":[{"expression":{"id":4884,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5863:3:24","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5867:6:24","memberName":"sender","nodeType":"MemberAccess","src":"5863:10:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4886,"name":"dstAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4757,"src":"5875:7:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4882,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5846:3:24","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4883,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5850:12:24","memberName":"encodePacked","nodeType":"MemberAccess","src":"5846:16:24","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5846:37:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"5818:65:24"},{"assignments":[4890],"declarations":[{"constant":false,"id":4890,"mutability":"mutable","name":"payload","nameLocation":"5936:7:24","nodeType":"VariableDeclaration","scope":4905,"src":"5923:20:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4889,"name":"bytes","nodeType":"ElementaryTypeName","src":"5923:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4892,"initialValue":{"id":4891,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4736,"src":"5946:8:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"5923:31:24"},{"expression":{"arguments":[{"id":4897,"name":"mockChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4543,"src":"6006:11:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":4898,"name":"srcUaAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4881,"src":"6019:12:24","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4899,"name":"dstAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4757,"src":"6033:7:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4900,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4811,"src":"6042:5:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":4901,"name":"extraGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4847,"src":"6049:8:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4902,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4890,"src":"6059:7:24","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":4894,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4761,"src":"5979:10:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4893,"name":"LZEndpointMock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5841,"src":"5964:14:24","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LZEndpointMock_$5841_$","typeString":"type(contract LZEndpointMock)"}},"id":4895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5964:26:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_LZEndpointMock_$5841","typeString":"contract LZEndpointMock"}},"id":4896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5991:14:24","memberName":"receivePayload","nodeType":"MemberAccess","referencedDeclaration":5113,"src":"5964:41:24","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_address_$_t_uint64_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,address,uint64,uint256,bytes memory) external"}},"id":4903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5964:103:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4904,"nodeType":"ExpressionStatement","src":"5964:103:24"}]},"functionSelector":"c5803100","id":4906,"implemented":true,"kind":"function","modifiers":[{"id":4746,"kind":"modifierInvocation","modifierName":{"id":4745,"name":"sendNonReentrant","nameLocations":["4253:16:24"],"nodeType":"IdentifierPath","referencedDeclaration":4637,"src":"4253:16:24"},"nodeType":"ModifierInvocation","src":"4253:16:24"}],"name":"send","nameLocation":"4017:4:24","nodeType":"FunctionDefinition","overrides":{"id":4744,"nodeType":"OverrideSpecifier","overrides":[],"src":"4244:8:24"},"parameters":{"id":4743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4732,"mutability":"mutable","name":"_chainId","nameLocation":"4038:8:24","nodeType":"VariableDeclaration","scope":4906,"src":"4031:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4731,"name":"uint16","nodeType":"ElementaryTypeName","src":"4031:6:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4734,"mutability":"mutable","name":"_path","nameLocation":"4069:5:24","nodeType":"VariableDeclaration","scope":4906,"src":"4056:18:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4733,"name":"bytes","nodeType":"ElementaryTypeName","src":"4056:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4736,"mutability":"mutable","name":"_payload","nameLocation":"4099:8:24","nodeType":"VariableDeclaration","scope":4906,"src":"4084:23:24","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4735,"name":"bytes","nodeType":"ElementaryTypeName","src":"4084:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4738,"mutability":"mutable","name":"_refundAddress","nameLocation":"4133:14:24","nodeType":"VariableDeclaration","scope":4906,"src":"4117:30:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":4737,"name":"address","nodeType":"ElementaryTypeName","src":"4117:15:24","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":4740,"mutability":"mutable","name":"_zroPaymentAddress","nameLocation":"4165:18:24","nodeType":"VariableDeclaration","scope":4906,"src":"4157:26:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4739,"name":"address","nodeType":"ElementaryTypeName","src":"4157:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4742,"mutability":"mutable","name":"_adapterParams","nameLocation":"4206:14:24","nodeType":"VariableDeclaration","scope":4906,"src":"4193:27:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4741,"name":"bytes","nodeType":"ElementaryTypeName","src":"4193:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4021:205:24"},"returnParameters":{"id":4747,"nodeType":"ParameterList","parameters":[],"src":"4270:0:24"},"scope":5841,"src":"4008:2066:24","stateMutability":"payable","virtual":false,"visibility":"external"},{"baseFunctions":[4143],"body":{"id":5112,"nodeType":"Block","src":"6315:2094:24","statements":[{"assignments":[4926],"declarations":[{"constant":false,"id":4926,"mutability":"mutable","name":"sp","nameLocation":"6347:2:24","nodeType":"VariableDeclaration","scope":5112,"src":"6325:24:24","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$4611_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload"},"typeName":{"id":4925,"nodeType":"UserDefinedTypeName","pathNode":{"id":4924,"name":"StoredPayload","nameLocations":["6325:13:24"],"nodeType":"IdentifierPath","referencedDeclaration":4611,"src":"6325:13:24"},"referencedDeclaration":4611,"src":"6325:13:24","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$4611_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload"}},"visibility":"internal"}],"id":4932,"initialValue":{"baseExpression":{"baseExpression":{"id":4927,"name":"storedPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4574,"src":"6352:13:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$4611_storage_$_$","typeString":"mapping(uint16 => mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref))"}},"id":4929,"indexExpression":{"id":4928,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4908,"src":"6366:11:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6352:26:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$4611_storage_$","typeString":"mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref)"}},"id":4931,"indexExpression":{"id":4930,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4910,"src":"6379:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6352:33:24","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$4611_storage","typeString":"struct LZEndpointMock.StoredPayload storage ref"}},"nodeType":"VariableDeclarationStatement","src":"6325:60:24"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":4941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4934,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4914,"src":"6468:6:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":4940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6478:34:24","subExpression":{"baseExpression":{"baseExpression":{"id":4935,"name":"inboundNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4561,"src":"6480:12:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_uint64_$_$","typeString":"mapping(uint16 => mapping(bytes memory => uint64))"}},"id":4937,"indexExpression":{"id":4936,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4908,"src":"6493:11:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6480:25:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_uint64_$","typeString":"mapping(bytes memory => uint64)"}},"id":4939,"indexExpression":{"id":4938,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4910,"src":"6506:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6480:32:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"6468:44:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a2077726f6e67206e6f6e6365","id":4942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6514:28:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_cfe15a20060cae4027edaeadac99a28b9a581999e01bac9619e7f52b82ee25ac","typeString":"literal_string \"LayerZeroMock: wrong nonce\""},"value":"LayerZeroMock: wrong nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cfe15a20060cae4027edaeadac99a28b9a581999e01bac9619e7f52b82ee25ac","typeString":"literal_string \"LayerZeroMock: wrong nonce\""}],"id":4933,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6460:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6460:83:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4944,"nodeType":"ExpressionStatement","src":"6460:83:24"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":4951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4945,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4926,"src":"6681:2:24","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$4611_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":4946,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6684:11:24","memberName":"payloadHash","nodeType":"MemberAccess","referencedDeclaration":4610,"src":"6681:14:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":4949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6707:1:24","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":4948,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6699:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":4947,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6699:7:24","typeDescriptions":{}}},"id":4950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6699:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6681:28:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"id":5023,"name":"nextMsgBlocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4545,"src":"7535:14:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":5109,"nodeType":"Block","src":"7894:509:24","statements":[{"clauses":[{"block":{"id":5070,"nodeType":"Block","src":"8008:2:24","statements":[]},"errorName":"","id":5071,"nodeType":"TryCatchClause","src":"8008:2:24"},{"block":{"id":5106,"nodeType":"Block","src":"8039:354:24","statements":[{"expression":{"id":5091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":5075,"name":"storedPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4574,"src":"8057:13:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$4611_storage_$_$","typeString":"mapping(uint16 => mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref))"}},"id":5078,"indexExpression":{"id":5076,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4908,"src":"8071:11:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8057:26:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$4611_storage_$","typeString":"mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref)"}},"id":5079,"indexExpression":{"id":5077,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4910,"src":"8084:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8057:33:24","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$4611_storage","typeString":"struct LZEndpointMock.StoredPayload storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"expression":{"id":5083,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4918,"src":"8114:8:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":5084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8123:6:24","memberName":"length","nodeType":"MemberAccess","src":"8114:15:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5082,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8107:6:24","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":5081,"name":"uint64","nodeType":"ElementaryTypeName","src":"8107:6:24","typeDescriptions":{}}},"id":5085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8107:23:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":5086,"name":"_dstAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4912,"src":"8132:11:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":5088,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4918,"src":"8155:8:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":5087,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8145:9:24","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":5089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8145:19:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5080,"name":"StoredPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4611,"src":"8093:13:24","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StoredPayload_$4611_storage_ptr_$","typeString":"type(struct LZEndpointMock.StoredPayload storage pointer)"}},"id":5090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8093:72:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$4611_memory_ptr","typeString":"struct LZEndpointMock.StoredPayload memory"}},"src":"8057:108:24","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$4611_storage","typeString":"struct LZEndpointMock.StoredPayload storage ref"}},"id":5092,"nodeType":"ExpressionStatement","src":"8057:108:24"},{"eventCall":{"arguments":[{"id":5094,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4908,"src":"8202:11:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":5095,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4910,"src":"8215:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":5096,"name":"_dstAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4912,"src":"8222:11:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5097,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4914,"src":"8235:6:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":5098,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4918,"src":"8243:8:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":5099,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5073,"src":"8253:6:24","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5093,"name":"PayloadStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4686,"src":"8188:13:24","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_address_$_t_uint64_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,address,uint64,bytes memory,bytes memory)"}},"id":5100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8188:72:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5101,"nodeType":"EmitStatement","src":"8183:77:24"},{"expression":{"id":5104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5102,"name":"nextMsgBlocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4545,"src":"8356:14:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":5103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8373:5:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"8356:22:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5105,"nodeType":"ExpressionStatement","src":"8356:22:24"}]},"errorName":"","id":5107,"nodeType":"TryCatchClause","parameters":{"id":5074,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5073,"mutability":"mutable","name":"reason","nameLocation":"8031:6:24","nodeType":"VariableDeclaration","scope":5107,"src":"8018:19:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5072,"name":"bytes","nodeType":"ElementaryTypeName","src":"8018:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8017:21:24"},"src":"8011:382:24"}],"externalCall":{"arguments":[{"id":5065,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4908,"src":"7970:11:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":5066,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4910,"src":"7983:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":5067,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4914,"src":"7990:6:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":5068,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4918,"src":"7998:8:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"arguments":[{"id":5060,"name":"_dstAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4912,"src":"7931:11:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5059,"name":"ILayerZeroReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4267,"src":"7912:18:24","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ILayerZeroReceiver_$4267_$","typeString":"type(contract ILayerZeroReceiver)"}},"id":5061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7912:31:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroReceiver_$4267","typeString":"contract ILayerZeroReceiver"}},"id":5062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7944:9:24","memberName":"lzReceive","nodeType":"MemberAccess","referencedDeclaration":4266,"src":"7912:41:24","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory) external"}},"id":5064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas"],"nodeType":"FunctionCallOptions","options":[{"id":5063,"name":"_gasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4916,"src":"7959:9:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"7912:57:24","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$returns$__$gas","typeString":"function (uint16,bytes memory,uint64,bytes memory) external"}},"id":5069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7912:95:24","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5108,"nodeType":"TryStatement","src":"7908:485:24"}]},"id":5110,"nodeType":"IfStatement","src":"7531:872:24","trueBody":{"id":5058,"nodeType":"Block","src":"7551:337:24","statements":[{"expression":{"id":5040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":5024,"name":"storedPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4574,"src":"7565:13:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$4611_storage_$_$","typeString":"mapping(uint16 => mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref))"}},"id":5027,"indexExpression":{"id":5025,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4908,"src":"7579:11:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7565:26:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$4611_storage_$","typeString":"mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref)"}},"id":5028,"indexExpression":{"id":5026,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4910,"src":"7592:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7565:33:24","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$4611_storage","typeString":"struct LZEndpointMock.StoredPayload storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"expression":{"id":5032,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4918,"src":"7622:8:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":5033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7631:6:24","memberName":"length","nodeType":"MemberAccess","src":"7622:15:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5031,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7615:6:24","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":5030,"name":"uint64","nodeType":"ElementaryTypeName","src":"7615:6:24","typeDescriptions":{}}},"id":5034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7615:23:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":5035,"name":"_dstAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4912,"src":"7640:11:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":5037,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4918,"src":"7663:8:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":5036,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7653:9:24","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":5038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7653:19:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5029,"name":"StoredPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4611,"src":"7601:13:24","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StoredPayload_$4611_storage_ptr_$","typeString":"type(struct LZEndpointMock.StoredPayload storage pointer)"}},"id":5039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7601:72:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$4611_memory_ptr","typeString":"struct LZEndpointMock.StoredPayload memory"}},"src":"7565:108:24","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$4611_storage","typeString":"struct LZEndpointMock.StoredPayload storage ref"}},"id":5041,"nodeType":"ExpressionStatement","src":"7565:108:24"},{"eventCall":{"arguments":[{"id":5043,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4908,"src":"7706:11:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":5044,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4910,"src":"7719:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":5045,"name":"_dstAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4912,"src":"7726:11:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5046,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4914,"src":"7739:6:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":5047,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4918,"src":"7747:8:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"arguments":[{"hexValue":"","id":5050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7763:2:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":5049,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7757:5:24","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":5048,"name":"bytes","nodeType":"ElementaryTypeName","src":"7757:5:24","typeDescriptions":{}}},"id":5051,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7757:9:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5042,"name":"PayloadStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4686,"src":"7692:13:24","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_address_$_t_uint64_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,address,uint64,bytes memory,bytes memory)"}},"id":5052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7692:75:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5053,"nodeType":"EmitStatement","src":"7687:80:24"},{"expression":{"id":5056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5054,"name":"nextMsgBlocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4545,"src":"7855:14:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":5055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7872:5:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"7855:22:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5057,"nodeType":"ExpressionStatement","src":"7855:22:24"}]}},"id":5111,"nodeType":"IfStatement","src":"6677:1726:24","trueBody":{"id":5022,"nodeType":"Block","src":"6711:814:24","statements":[{"assignments":[4956],"declarations":[{"constant":false,"id":4956,"mutability":"mutable","name":"msgs","nameLocation":"6749:4:24","nodeType":"VariableDeclaration","scope":5022,"src":"6725:28:24","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$4618_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload[]"},"typeName":{"baseType":{"id":4954,"nodeType":"UserDefinedTypeName","pathNode":{"id":4953,"name":"QueuedPayload","nameLocations":["6725:13:24"],"nodeType":"IdentifierPath","referencedDeclaration":4618,"src":"6725:13:24"},"referencedDeclaration":4618,"src":"6725:13:24","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$4618_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload"}},"id":4955,"nodeType":"ArrayTypeName","src":"6725:15:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$4618_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload[]"}},"visibility":"internal"}],"id":4962,"initialValue":{"baseExpression":{"baseExpression":{"id":4957,"name":"msgsToDeliver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4582,"src":"6756:13:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_array$_t_struct$_QueuedPayload_$4618_storage_$dyn_storage_$_$","typeString":"mapping(uint16 => mapping(bytes memory => struct LZEndpointMock.QueuedPayload storage ref[] storage ref))"}},"id":4959,"indexExpression":{"id":4958,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4908,"src":"6770:11:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6756:26:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_array$_t_struct$_QueuedPayload_$4618_storage_$dyn_storage_$","typeString":"mapping(bytes memory => struct LZEndpointMock.QueuedPayload storage ref[] storage ref)"}},"id":4961,"indexExpression":{"id":4960,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4910,"src":"6783:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6756:33:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$4618_storage_$dyn_storage","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"6725:64:24"},{"assignments":[4965],"declarations":[{"constant":false,"id":4965,"mutability":"mutable","name":"newMsg","nameLocation":"6824:6:24","nodeType":"VariableDeclaration","scope":5022,"src":"6803:27:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$4618_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload"},"typeName":{"id":4964,"nodeType":"UserDefinedTypeName","pathNode":{"id":4963,"name":"QueuedPayload","nameLocations":["6803:13:24"],"nodeType":"IdentifierPath","referencedDeclaration":4618,"src":"6803:13:24"},"referencedDeclaration":4618,"src":"6803:13:24","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$4618_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload"}},"visibility":"internal"}],"id":4971,"initialValue":{"arguments":[{"id":4967,"name":"_dstAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4912,"src":"6847:11:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4968,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4914,"src":"6860:6:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":4969,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4918,"src":"6868:8:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":4966,"name":"QueuedPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4618,"src":"6833:13:24","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_QueuedPayload_$4618_storage_ptr_$","typeString":"type(struct LZEndpointMock.QueuedPayload storage pointer)"}},"id":4970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6833:44:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$4618_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"6803:74:24"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4972,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4956,"src":"7083:4:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$4618_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":4973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7088:6:24","memberName":"length","nodeType":"MemberAccess","src":"7083:11:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4974,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7097:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7083:15:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":5020,"nodeType":"Block","src":"7465:50:24","statements":[{"expression":{"arguments":[{"id":5017,"name":"newMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4965,"src":"7493:6:24","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$4618_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QueuedPayload_$4618_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload memory"}],"expression":{"id":5014,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4956,"src":"7483:4:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$4618_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":5016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7488:4:24","memberName":"push","nodeType":"MemberAccess","src":"7483:9:24","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_QueuedPayload_$4618_storage_$dyn_storage_ptr_$_t_struct$_QueuedPayload_$4618_storage_$returns$__$attached_to$_t_array$_t_struct$_QueuedPayload_$4618_storage_$dyn_storage_ptr_$","typeString":"function (struct LZEndpointMock.QueuedPayload storage ref[] storage pointer,struct LZEndpointMock.QueuedPayload storage ref)"}},"id":5018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7483:17:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5019,"nodeType":"ExpressionStatement","src":"7483:17:24"}]},"id":5021,"nodeType":"IfStatement","src":"7079:436:24","trueBody":{"id":5013,"nodeType":"Block","src":"7100:359:24","statements":[{"expression":{"arguments":[{"id":4979,"name":"newMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4965,"src":"7164:6:24","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$4618_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QueuedPayload_$4618_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload memory"}],"expression":{"id":4976,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4956,"src":"7154:4:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$4618_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":4978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7159:4:24","memberName":"push","nodeType":"MemberAccess","src":"7154:9:24","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_QueuedPayload_$4618_storage_$dyn_storage_ptr_$_t_struct$_QueuedPayload_$4618_storage_$returns$__$attached_to$_t_array$_t_struct$_QueuedPayload_$4618_storage_$dyn_storage_ptr_$","typeString":"function (struct LZEndpointMock.QueuedPayload storage ref[] storage pointer,struct LZEndpointMock.QueuedPayload storage ref)"}},"id":4980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7154:17:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4981,"nodeType":"ExpressionStatement","src":"7154:17:24"},{"body":{"id":5005,"nodeType":"Block","src":"7287:62:24","statements":[{"expression":{"id":5003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4995,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4956,"src":"7309:4:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$4618_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":4999,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4996,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"7314:1:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":4997,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7318:1:24","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7314:5:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7309:11:24","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$4618_storage","typeString":"struct LZEndpointMock.QueuedPayload storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":5000,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4956,"src":"7323:4:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$4618_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":5002,"indexExpression":{"id":5001,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"7328:1:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7323:7:24","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$4618_storage","typeString":"struct LZEndpointMock.QueuedPayload storage ref"}},"src":"7309:21:24","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$4618_storage","typeString":"struct LZEndpointMock.QueuedPayload storage ref"}},"id":5004,"nodeType":"ExpressionStatement","src":"7309:21:24"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4986,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"7261:1:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4987,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4956,"src":"7265:4:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$4618_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":4988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7270:6:24","memberName":"length","nodeType":"MemberAccess","src":"7265:11:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":4989,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7279:1:24","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7265:15:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7261:19:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5006,"initializationExpression":{"assignments":[4983],"declarations":[{"constant":false,"id":4983,"mutability":"mutable","name":"i","nameLocation":"7254:1:24","nodeType":"VariableDeclaration","scope":5006,"src":"7249:6:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4982,"name":"uint","nodeType":"ElementaryTypeName","src":"7249:4:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4985,"initialValue":{"hexValue":"30","id":4984,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7258:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"7249:10:24"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":4993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"7282:3:24","subExpression":{"id":4992,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"7282:1:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4994,"nodeType":"ExpressionStatement","src":"7282:3:24"},"nodeType":"ForStatement","src":"7244:105:24"},{"expression":{"id":5011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5007,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4956,"src":"7428:4:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$4618_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":5009,"indexExpression":{"hexValue":"30","id":5008,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7433:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7428:7:24","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$4618_storage","typeString":"struct LZEndpointMock.QueuedPayload storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5010,"name":"newMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4965,"src":"7438:6:24","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$4618_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload memory"}},"src":"7428:16:24","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$4618_storage","typeString":"struct LZEndpointMock.QueuedPayload storage ref"}},"id":5012,"nodeType":"ExpressionStatement","src":"7428:16:24"}]}}]}}]},"functionSelector":"c2fa4813","id":5113,"implemented":true,"kind":"function","modifiers":[{"id":4922,"kind":"modifierInvocation","modifierName":{"id":4921,"name":"receiveNonReentrant","nameLocations":["6295:19:24"],"nodeType":"IdentifierPath","referencedDeclaration":4656,"src":"6295:19:24"},"nodeType":"ModifierInvocation","src":"6295:19:24"}],"name":"receivePayload","nameLocation":"6089:14:24","nodeType":"FunctionDefinition","overrides":{"id":4920,"nodeType":"OverrideSpecifier","overrides":[],"src":"6286:8:24"},"parameters":{"id":4919,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4908,"mutability":"mutable","name":"_srcChainId","nameLocation":"6120:11:24","nodeType":"VariableDeclaration","scope":5113,"src":"6113:18:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4907,"name":"uint16","nodeType":"ElementaryTypeName","src":"6113:6:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4910,"mutability":"mutable","name":"_path","nameLocation":"6156:5:24","nodeType":"VariableDeclaration","scope":5113,"src":"6141:20:24","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4909,"name":"bytes","nodeType":"ElementaryTypeName","src":"6141:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4912,"mutability":"mutable","name":"_dstAddress","nameLocation":"6179:11:24","nodeType":"VariableDeclaration","scope":5113,"src":"6171:19:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4911,"name":"address","nodeType":"ElementaryTypeName","src":"6171:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4914,"mutability":"mutable","name":"_nonce","nameLocation":"6207:6:24","nodeType":"VariableDeclaration","scope":5113,"src":"6200:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":4913,"name":"uint64","nodeType":"ElementaryTypeName","src":"6200:6:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":4916,"mutability":"mutable","name":"_gasLimit","nameLocation":"6228:9:24","nodeType":"VariableDeclaration","scope":5113,"src":"6223:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4915,"name":"uint","nodeType":"ElementaryTypeName","src":"6223:4:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4918,"mutability":"mutable","name":"_payload","nameLocation":"6262:8:24","nodeType":"VariableDeclaration","scope":5113,"src":"6247:23:24","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4917,"name":"bytes","nodeType":"ElementaryTypeName","src":"6247:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6103:173:24"},"returnParameters":{"id":4923,"nodeType":"ParameterList","parameters":[],"src":"6315:0:24"},"scope":5841,"src":"6080:2329:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[4152],"body":{"id":5129,"nodeType":"Block","src":"8519:53:24","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":5123,"name":"inboundNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4561,"src":"8536:12:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_uint64_$_$","typeString":"mapping(uint16 => mapping(bytes memory => uint64))"}},"id":5125,"indexExpression":{"id":5124,"name":"_chainID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5115,"src":"8549:8:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8536:22:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_uint64_$","typeString":"mapping(bytes memory => uint64)"}},"id":5127,"indexExpression":{"id":5126,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5117,"src":"8559:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8536:29:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":5122,"id":5128,"nodeType":"Return","src":"8529:36:24"}]},"functionSelector":"fdc07c70","id":5130,"implemented":true,"kind":"function","modifiers":[],"name":"getInboundNonce","nameLocation":"8424:15:24","nodeType":"FunctionDefinition","overrides":{"id":5119,"nodeType":"OverrideSpecifier","overrides":[],"src":"8493:8:24"},"parameters":{"id":5118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5115,"mutability":"mutable","name":"_chainID","nameLocation":"8447:8:24","nodeType":"VariableDeclaration","scope":5130,"src":"8440:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":5114,"name":"uint16","nodeType":"ElementaryTypeName","src":"8440:6:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":5117,"mutability":"mutable","name":"_path","nameLocation":"8472:5:24","nodeType":"VariableDeclaration","scope":5130,"src":"8457:20:24","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":5116,"name":"bytes","nodeType":"ElementaryTypeName","src":"8457:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8439:39:24"},"returnParameters":{"id":5122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5121,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5130,"src":"8511:6:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":5120,"name":"uint64","nodeType":"ElementaryTypeName","src":"8511:6:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"8510:8:24"},"scope":5841,"src":"8415:157:24","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[4161],"body":{"id":5146,"nodeType":"Block","src":"8682:60:24","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":5140,"name":"outboundNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4567,"src":"8699:13:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_address_$_t_uint64_$_$","typeString":"mapping(uint16 => mapping(address => uint64))"}},"id":5142,"indexExpression":{"id":5141,"name":"_chainID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5132,"src":"8713:8:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8699:23:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint64_$","typeString":"mapping(address => uint64)"}},"id":5144,"indexExpression":{"id":5143,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5134,"src":"8723:11:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8699:36:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":5139,"id":5145,"nodeType":"Return","src":"8692:43:24"}]},"functionSelector":"7a145748","id":5147,"implemented":true,"kind":"function","modifiers":[],"name":"getOutboundNonce","nameLocation":"8587:16:24","nodeType":"FunctionDefinition","overrides":{"id":5136,"nodeType":"OverrideSpecifier","overrides":[],"src":"8656:8:24"},"parameters":{"id":5135,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5132,"mutability":"mutable","name":"_chainID","nameLocation":"8611:8:24","nodeType":"VariableDeclaration","scope":5147,"src":"8604:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":5131,"name":"uint16","nodeType":"ElementaryTypeName","src":"8604:6:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":5134,"mutability":"mutable","name":"_srcAddress","nameLocation":"8629:11:24","nodeType":"VariableDeclaration","scope":5147,"src":"8621:19:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5133,"name":"address","nodeType":"ElementaryTypeName","src":"8621:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8603:38:24"},"returnParameters":{"id":5139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5138,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5147,"src":"8674:6:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":5137,"name":"uint64","nodeType":"ElementaryTypeName","src":"8674:6:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"8673:8:24"},"scope":5841,"src":"8578:164:24","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[4178],"body":{"id":5211,"nodeType":"Block","src":"8989:507:24","statements":[{"assignments":[5166],"declarations":[{"constant":false,"id":5166,"mutability":"mutable","name":"adapterParams","nameLocation":"9012:13:24","nodeType":"VariableDeclaration","scope":5211,"src":"8999:26:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5165,"name":"bytes","nodeType":"ElementaryTypeName","src":"8999:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":5174,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5167,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5157,"src":"9028:14:24","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":5168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9043:6:24","memberName":"length","nodeType":"MemberAccess","src":"9028:21:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":5169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9052:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9028:25:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":5172,"name":"defaultAdapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4555,"src":"9073:20:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":5173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"9028:65:24","trueExpression":{"id":5171,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5157,"src":"9056:14:24","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"8999:94:24"},{"assignments":[5176],"declarations":[{"constant":false,"id":5176,"mutability":"mutable","name":"relayerFee","nameLocation":"9132:10:24","nodeType":"VariableDeclaration","scope":5211,"src":"9127:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5175,"name":"uint","nodeType":"ElementaryTypeName","src":"9127:4:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5185,"initialValue":{"arguments":[{"id":5178,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5149,"src":"9160:11:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"hexValue":"31","id":5179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9173:1:24","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"id":5180,"name":"_userApplication","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5151,"src":"9176:16:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":5181,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5153,"src":"9194:8:24","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":5182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9203:6:24","memberName":"length","nodeType":"MemberAccess","src":"9194:15:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5183,"name":"adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5166,"src":"9211:13:24","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5177,"name":"_getRelayerFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5840,"src":"9145:14:24","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint16_$_t_uint16_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint16,uint16,address,uint256,bytes memory) view returns (uint256)"}},"id":5184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9145:80:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9127:98:24"},{"assignments":[5187],"declarations":[{"constant":false,"id":5187,"mutability":"mutable","name":"protocolFee","nameLocation":"9266:11:24","nodeType":"VariableDeclaration","scope":5211,"src":"9261:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5186,"name":"uint","nodeType":"ElementaryTypeName","src":"9261:4:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5193,"initialValue":{"arguments":[{"id":5189,"name":"_payInZRO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5155,"src":"9297:9:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5190,"name":"relayerFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5176,"src":"9308:10:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5191,"name":"oracleFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4553,"src":"9320:9:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5188,"name":"_getProtocolFees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5744,"src":"9280:16:24","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bool,uint256,uint256) view returns (uint256)"}},"id":5192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9280:50:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9261:69:24"},{"expression":{"condition":{"id":5194,"name":"_payInZRO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5155,"src":"9340:9:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":5200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5198,"name":"nativeFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5161,"src":"9375:9:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5199,"name":"protocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5187,"src":"9387:11:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9375:23:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"9340:58:24","trueExpression":{"id":5197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5195,"name":"zroFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5163,"src":"9352:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5196,"name":"protocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5187,"src":"9361:11:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9352:20:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5202,"nodeType":"ExpressionStatement","src":"9340:58:24"},{"expression":{"id":5209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5203,"name":"nativeFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5161,"src":"9443:9:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5204,"name":"nativeFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5161,"src":"9455:9:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":5205,"name":"relayerFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5176,"src":"9467:10:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9455:22:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":5207,"name":"oracleFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4553,"src":"9480:9:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9455:34:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9443:46:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5210,"nodeType":"ExpressionStatement","src":"9443:46:24"}]},"functionSelector":"40a7bb10","id":5212,"implemented":true,"kind":"function","modifiers":[],"name":"estimateFees","nameLocation":"8757:12:24","nodeType":"FunctionDefinition","overrides":{"id":5159,"nodeType":"OverrideSpecifier","overrides":[],"src":"8942:8:24"},"parameters":{"id":5158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5149,"mutability":"mutable","name":"_dstChainId","nameLocation":"8786:11:24","nodeType":"VariableDeclaration","scope":5212,"src":"8779:18:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":5148,"name":"uint16","nodeType":"ElementaryTypeName","src":"8779:6:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":5151,"mutability":"mutable","name":"_userApplication","nameLocation":"8815:16:24","nodeType":"VariableDeclaration","scope":5212,"src":"8807:24:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5150,"name":"address","nodeType":"ElementaryTypeName","src":"8807:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5153,"mutability":"mutable","name":"_payload","nameLocation":"8854:8:24","nodeType":"VariableDeclaration","scope":5212,"src":"8841:21:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5152,"name":"bytes","nodeType":"ElementaryTypeName","src":"8841:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":5155,"mutability":"mutable","name":"_payInZRO","nameLocation":"8877:9:24","nodeType":"VariableDeclaration","scope":5212,"src":"8872:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5154,"name":"bool","nodeType":"ElementaryTypeName","src":"8872:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5157,"mutability":"mutable","name":"_adapterParams","nameLocation":"8909:14:24","nodeType":"VariableDeclaration","scope":5212,"src":"8896:27:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5156,"name":"bytes","nodeType":"ElementaryTypeName","src":"8896:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8769:160:24"},"returnParameters":{"id":5164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5161,"mutability":"mutable","name":"nativeFee","nameLocation":"8965:9:24","nodeType":"VariableDeclaration","scope":5212,"src":"8960:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5160,"name":"uint","nodeType":"ElementaryTypeName","src":"8960:4:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5163,"mutability":"mutable","name":"zroFee","nameLocation":"8981:6:24","nodeType":"VariableDeclaration","scope":5212,"src":"8976:11:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5162,"name":"uint","nodeType":"ElementaryTypeName","src":"8976:4:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8959:29:24"},"scope":5841,"src":"8748:748:24","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[4183],"body":{"id":5220,"nodeType":"Block","src":"9564:35:24","statements":[{"expression":{"id":5218,"name":"mockChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4543,"src":"9581:11:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":5217,"id":5219,"nodeType":"Return","src":"9574:18:24"}]},"functionSelector":"3408e470","id":5221,"implemented":true,"kind":"function","modifiers":[],"name":"getChainId","nameLocation":"9511:10:24","nodeType":"FunctionDefinition","overrides":{"id":5214,"nodeType":"OverrideSpecifier","overrides":[],"src":"9538:8:24"},"parameters":{"id":5213,"nodeType":"ParameterList","parameters":[],"src":"9521:2:24"},"returnParameters":{"id":5217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5216,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5221,"src":"9556:6:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":5215,"name":"uint16","nodeType":"ElementaryTypeName","src":"9556:6:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"9555:8:24"},"scope":5841,"src":"9502:97:24","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[4192],"body":{"id":5321,"nodeType":"Block","src":"9742:686:24","statements":[{"assignments":[5233],"declarations":[{"constant":false,"id":5233,"mutability":"mutable","name":"sp","nameLocation":"9774:2:24","nodeType":"VariableDeclaration","scope":5321,"src":"9752:24:24","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$4611_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload"},"typeName":{"id":5232,"nodeType":"UserDefinedTypeName","pathNode":{"id":5231,"name":"StoredPayload","nameLocations":["9752:13:24"],"nodeType":"IdentifierPath","referencedDeclaration":4611,"src":"9752:13:24"},"referencedDeclaration":4611,"src":"9752:13:24","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$4611_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload"}},"visibility":"internal"}],"id":5239,"initialValue":{"baseExpression":{"baseExpression":{"id":5234,"name":"storedPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4574,"src":"9779:13:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$4611_storage_$_$","typeString":"mapping(uint16 => mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref))"}},"id":5236,"indexExpression":{"id":5235,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5223,"src":"9793:11:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9779:26:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$4611_storage_$","typeString":"mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref)"}},"id":5238,"indexExpression":{"id":5237,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5225,"src":"9806:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9779:33:24","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$4611_storage","typeString":"struct LZEndpointMock.StoredPayload storage ref"}},"nodeType":"VariableDeclarationStatement","src":"9752:60:24"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":5247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5241,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5233,"src":"9830:2:24","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$4611_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":5242,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9833:11:24","memberName":"payloadHash","nodeType":"MemberAccess","referencedDeclaration":4610,"src":"9830:14:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":5245,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9856:1:24","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":5244,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9848:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":5243,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9848:7:24","typeDescriptions":{}}},"id":5246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9848:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"9830:28:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f6164","id":5248,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9860:34:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db","typeString":"literal_string \"LayerZeroMock: no stored payload\""},"value":"LayerZeroMock: no stored payload"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db","typeString":"literal_string \"LayerZeroMock: no stored payload\""}],"id":5240,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9822:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9822:73:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5250,"nodeType":"ExpressionStatement","src":"9822:73:24"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5252,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5227,"src":"9913:8:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":5253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9922:6:24","memberName":"length","nodeType":"MemberAccess","src":"9913:15:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":5254,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5233,"src":"9932:2:24","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$4611_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":5255,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9935:13:24","memberName":"payloadLength","nodeType":"MemberAccess","referencedDeclaration":4606,"src":"9932:16:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"9913:35:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":5262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":5258,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5227,"src":"9962:8:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":5257,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"9952:9:24","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":5259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9952:19:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":5260,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5233,"src":"9975:2:24","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$4611_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":5261,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9978:11:24","memberName":"payloadHash","nodeType":"MemberAccess","referencedDeclaration":4610,"src":"9975:14:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"9952:37:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9913:76:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a20696e76616c6964207061796c6f6164","id":5264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9991:32:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d0b005579c4d5f607baec096f4a22c77289f237586c7362a7902ea2a3c322fe","typeString":"literal_string \"LayerZeroMock: invalid payload\""},"value":"LayerZeroMock: invalid payload"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5d0b005579c4d5f607baec096f4a22c77289f237586c7362a7902ea2a3c322fe","typeString":"literal_string \"LayerZeroMock: invalid payload\""}],"id":5251,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9905:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9905:119:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5266,"nodeType":"ExpressionStatement","src":"9905:119:24"},{"assignments":[5268],"declarations":[{"constant":false,"id":5268,"mutability":"mutable","name":"dstAddress","nameLocation":"10043:10:24","nodeType":"VariableDeclaration","scope":5321,"src":"10035:18:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5267,"name":"address","nodeType":"ElementaryTypeName","src":"10035:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5271,"initialValue":{"expression":{"id":5269,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5233,"src":"10056:2:24","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$4611_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":5270,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10059:10:24","memberName":"dstAddress","nodeType":"MemberAccess","referencedDeclaration":4608,"src":"10056:13:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10035:34:24"},{"expression":{"id":5276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":5272,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5233,"src":"10114:2:24","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$4611_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":5274,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10117:13:24","memberName":"payloadLength","nodeType":"MemberAccess","referencedDeclaration":4606,"src":"10114:16:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":5275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10133:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10114:20:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":5277,"nodeType":"ExpressionStatement","src":"10114:20:24"},{"expression":{"id":5285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":5278,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5233,"src":"10144:2:24","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$4611_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":5280,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10147:10:24","memberName":"dstAddress","nodeType":"MemberAccess","referencedDeclaration":4608,"src":"10144:13:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":5283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10168:1:24","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":5282,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10160:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5281,"name":"address","nodeType":"ElementaryTypeName","src":"10160:7:24","typeDescriptions":{}}},"id":5284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10160:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10144:26:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5286,"nodeType":"ExpressionStatement","src":"10144:26:24"},{"expression":{"id":5294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":5287,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5233,"src":"10180:2:24","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$4611_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":5289,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10183:11:24","memberName":"payloadHash","nodeType":"MemberAccess","referencedDeclaration":4610,"src":"10180:14:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":5292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10205:1:24","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":5291,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10197:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":5290,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10197:7:24","typeDescriptions":{}}},"id":5293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10197:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"10180:27:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5295,"nodeType":"ExpressionStatement","src":"10180:27:24"},{"assignments":[5297],"declarations":[{"constant":false,"id":5297,"mutability":"mutable","name":"nonce","nameLocation":"10225:5:24","nodeType":"VariableDeclaration","scope":5321,"src":"10218:12:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":5296,"name":"uint64","nodeType":"ElementaryTypeName","src":"10218:6:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":5303,"initialValue":{"baseExpression":{"baseExpression":{"id":5298,"name":"inboundNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4561,"src":"10233:12:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_uint64_$_$","typeString":"mapping(uint16 => mapping(bytes memory => uint64))"}},"id":5300,"indexExpression":{"id":5299,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5223,"src":"10246:11:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10233:25:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_uint64_$","typeString":"mapping(bytes memory => uint64)"}},"id":5302,"indexExpression":{"id":5301,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5225,"src":"10259:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10233:32:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"10218:47:24"},{"expression":{"arguments":[{"id":5308,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5223,"src":"10317:11:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":5309,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5225,"src":"10330:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":5310,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5297,"src":"10337:5:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":5311,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5227,"src":"10344:8:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"arguments":[{"id":5305,"name":"dstAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5268,"src":"10295:10:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5304,"name":"ILayerZeroReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4267,"src":"10276:18:24","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ILayerZeroReceiver_$4267_$","typeString":"type(contract ILayerZeroReceiver)"}},"id":5306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10276:30:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroReceiver_$4267","typeString":"contract ILayerZeroReceiver"}},"id":5307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10307:9:24","memberName":"lzReceive","nodeType":"MemberAccess","referencedDeclaration":4266,"src":"10276:40:24","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory) external"}},"id":5312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10276:77:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5313,"nodeType":"ExpressionStatement","src":"10276:77:24"},{"eventCall":{"arguments":[{"id":5315,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5223,"src":"10383:11:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":5316,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5225,"src":"10396:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":5317,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5297,"src":"10403:5:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":5318,"name":"dstAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5268,"src":"10410:10:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5314,"name":"PayloadCleared","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4672,"src":"10368:14:24","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_address_$returns$__$","typeString":"function (uint16,bytes memory,uint64,address)"}},"id":5319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10368:53:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5320,"nodeType":"EmitStatement","src":"10363:58:24"}]},"functionSelector":"aaff5f16","id":5322,"implemented":true,"kind":"function","modifiers":[],"name":"retryPayload","nameLocation":"9614:12:24","nodeType":"FunctionDefinition","overrides":{"id":5229,"nodeType":"OverrideSpecifier","overrides":[],"src":"9733:8:24"},"parameters":{"id":5228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5223,"mutability":"mutable","name":"_srcChainId","nameLocation":"9643:11:24","nodeType":"VariableDeclaration","scope":5322,"src":"9636:18:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":5222,"name":"uint16","nodeType":"ElementaryTypeName","src":"9636:6:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":5225,"mutability":"mutable","name":"_path","nameLocation":"9679:5:24","nodeType":"VariableDeclaration","scope":5322,"src":"9664:20:24","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":5224,"name":"bytes","nodeType":"ElementaryTypeName","src":"9664:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":5227,"mutability":"mutable","name":"_payload","nameLocation":"9709:8:24","nodeType":"VariableDeclaration","scope":5322,"src":"9694:23:24","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":5226,"name":"bytes","nodeType":"ElementaryTypeName","src":"9694:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9626:97:24"},"returnParameters":{"id":5230,"nodeType":"ParameterList","parameters":[],"src":"9742:0:24"},"scope":5841,"src":"9605:823:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[4201],"body":{"id":5349,"nodeType":"Block","src":"10540:122:24","statements":[{"assignments":[5334],"declarations":[{"constant":false,"id":5334,"mutability":"mutable","name":"sp","nameLocation":"10572:2:24","nodeType":"VariableDeclaration","scope":5349,"src":"10550:24:24","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$4611_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload"},"typeName":{"id":5333,"nodeType":"UserDefinedTypeName","pathNode":{"id":5332,"name":"StoredPayload","nameLocations":["10550:13:24"],"nodeType":"IdentifierPath","referencedDeclaration":4611,"src":"10550:13:24"},"referencedDeclaration":4611,"src":"10550:13:24","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$4611_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload"}},"visibility":"internal"}],"id":5340,"initialValue":{"baseExpression":{"baseExpression":{"id":5335,"name":"storedPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4574,"src":"10577:13:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$4611_storage_$_$","typeString":"mapping(uint16 => mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref))"}},"id":5337,"indexExpression":{"id":5336,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5324,"src":"10591:11:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10577:26:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$4611_storage_$","typeString":"mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref)"}},"id":5339,"indexExpression":{"id":5338,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5326,"src":"10604:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10577:33:24","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$4611_storage","typeString":"struct LZEndpointMock.StoredPayload storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10550:60:24"},{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":5347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5341,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5334,"src":"10627:2:24","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$4611_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":5342,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10630:11:24","memberName":"payloadHash","nodeType":"MemberAccess","referencedDeclaration":4610,"src":"10627:14:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":5345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10653:1:24","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":5344,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10645:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":5343,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10645:7:24","typeDescriptions":{}}},"id":5346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10645:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"10627:28:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":5331,"id":5348,"nodeType":"Return","src":"10620:35:24"}]},"functionSelector":"0eaf6ea6","id":5350,"implemented":true,"kind":"function","modifiers":[],"name":"hasStoredPayload","nameLocation":"10443:16:24","nodeType":"FunctionDefinition","overrides":{"id":5328,"nodeType":"OverrideSpecifier","overrides":[],"src":"10516:8:24"},"parameters":{"id":5327,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5324,"mutability":"mutable","name":"_srcChainId","nameLocation":"10467:11:24","nodeType":"VariableDeclaration","scope":5350,"src":"10460:18:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":5323,"name":"uint16","nodeType":"ElementaryTypeName","src":"10460:6:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":5326,"mutability":"mutable","name":"_path","nameLocation":"10495:5:24","nodeType":"VariableDeclaration","scope":5350,"src":"10480:20:24","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":5325,"name":"bytes","nodeType":"ElementaryTypeName","src":"10480:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"10459:42:24"},"returnParameters":{"id":5331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5330,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5350,"src":"10534:4:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5329,"name":"bool","nodeType":"ElementaryTypeName","src":"10534:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10533:6:24"},"scope":5841,"src":"10434:228:24","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[4208],"body":{"id":5363,"nodeType":"Block","src":"10749:37:24","statements":[{"expression":{"arguments":[{"id":5360,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"10774:4:24","typeDescriptions":{"typeIdentifier":"t_contract$_LZEndpointMock_$5841","typeString":"contract LZEndpointMock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LZEndpointMock_$5841","typeString":"contract LZEndpointMock"}],"id":5359,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10766:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5358,"name":"address","nodeType":"ElementaryTypeName","src":"10766:7:24","typeDescriptions":{}}},"id":5361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10766:13:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":5357,"id":5362,"nodeType":"Return","src":"10759:20:24"}]},"functionSelector":"9c729da1","id":5364,"implemented":true,"kind":"function","modifiers":[],"name":"getSendLibraryAddress","nameLocation":"10677:21:24","nodeType":"FunctionDefinition","overrides":{"id":5354,"nodeType":"OverrideSpecifier","overrides":[],"src":"10722:8:24"},"parameters":{"id":5353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5352,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5364,"src":"10699:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5351,"name":"address","nodeType":"ElementaryTypeName","src":"10699:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10698:9:24"},"returnParameters":{"id":5357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5356,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5364,"src":"10740:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5355,"name":"address","nodeType":"ElementaryTypeName","src":"10740:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10739:9:24"},"scope":5841,"src":"10668:118:24","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[4215],"body":{"id":5377,"nodeType":"Block","src":"10876:37:24","statements":[{"expression":{"arguments":[{"id":5374,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"10901:4:24","typeDescriptions":{"typeIdentifier":"t_contract$_LZEndpointMock_$5841","typeString":"contract LZEndpointMock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LZEndpointMock_$5841","typeString":"contract LZEndpointMock"}],"id":5373,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10893:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5372,"name":"address","nodeType":"ElementaryTypeName","src":"10893:7:24","typeDescriptions":{}}},"id":5375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10893:13:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":5371,"id":5376,"nodeType":"Return","src":"10886:20:24"}]},"functionSelector":"71ba2fd6","id":5378,"implemented":true,"kind":"function","modifiers":[],"name":"getReceiveLibraryAddress","nameLocation":"10801:24:24","nodeType":"FunctionDefinition","overrides":{"id":5368,"nodeType":"OverrideSpecifier","overrides":[],"src":"10849:8:24"},"parameters":{"id":5367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5366,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5378,"src":"10826:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5365,"name":"address","nodeType":"ElementaryTypeName","src":"10826:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10825:9:24"},"returnParameters":{"id":5371,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5370,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5378,"src":"10867:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5369,"name":"address","nodeType":"ElementaryTypeName","src":"10867:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10866:9:24"},"scope":5841,"src":"10792:121:24","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[4220],"body":{"id":5388,"nodeType":"Block","src":"10985:55:24","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":5386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5384,"name":"_send_entered_state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4585,"src":"11002:19:24","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":5385,"name":"_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4537,"src":"11025:8:24","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"11002:31:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":5383,"id":5387,"nodeType":"Return","src":"10995:38:24"}]},"functionSelector":"e97a448a","id":5389,"implemented":true,"kind":"function","modifiers":[],"name":"isSendingPayload","nameLocation":"10928:16:24","nodeType":"FunctionDefinition","overrides":{"id":5380,"nodeType":"OverrideSpecifier","overrides":[],"src":"10961:8:24"},"parameters":{"id":5379,"nodeType":"ParameterList","parameters":[],"src":"10944:2:24"},"returnParameters":{"id":5383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5382,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5389,"src":"10979:4:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5381,"name":"bool","nodeType":"ElementaryTypeName","src":"10979:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10978:6:24"},"scope":5841,"src":"10919:121:24","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[4225],"body":{"id":5399,"nodeType":"Block","src":"11114:58:24","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":5397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5395,"name":"_receive_entered_state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4588,"src":"11131:22:24","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":5396,"name":"_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4537,"src":"11157:8:24","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"11131:34:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":5394,"id":5398,"nodeType":"Return","src":"11124:41:24"}]},"functionSelector":"ca066b35","id":5400,"implemented":true,"kind":"function","modifiers":[],"name":"isReceivingPayload","nameLocation":"11055:18:24","nodeType":"FunctionDefinition","overrides":{"id":5391,"nodeType":"OverrideSpecifier","overrides":[],"src":"11090:8:24"},"parameters":{"id":5390,"nodeType":"ParameterList","parameters":[],"src":"11073:2:24"},"returnParameters":{"id":5394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5393,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5400,"src":"11108:4:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5392,"name":"bool","nodeType":"ElementaryTypeName","src":"11108:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11107:6:24"},"scope":5841,"src":"11046:126:24","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[4238],"body":{"id":5416,"nodeType":"Block","src":"11362:26:24","statements":[{"expression":{"hexValue":"","id":5414,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11379:2:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"functionReturnParameters":5413,"id":5415,"nodeType":"Return","src":"11372:9:24"}]},"functionSelector":"f5ecbdbc","id":5417,"implemented":true,"kind":"function","modifiers":[],"name":"getConfig","nameLocation":"11187:9:24","nodeType":"FunctionDefinition","overrides":{"id":5410,"nodeType":"OverrideSpecifier","overrides":[],"src":"11330:8:24"},"parameters":{"id":5409,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5402,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5417,"src":"11206:6:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":5401,"name":"uint16","nodeType":"ElementaryTypeName","src":"11206:6:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":5404,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5417,"src":"11235:6:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":5403,"name":"uint16","nodeType":"ElementaryTypeName","src":"11235:6:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":5406,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5417,"src":"11264:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5405,"name":"address","nodeType":"ElementaryTypeName","src":"11264:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5408,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5417,"src":"11289:4:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5407,"name":"uint","nodeType":"ElementaryTypeName","src":"11289:4:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11196:119:24"},"returnParameters":{"id":5413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5412,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5417,"src":"11348:12:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5411,"name":"bytes","nodeType":"ElementaryTypeName","src":"11348:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"11347:14:24"},"scope":5841,"src":"11178:210:24","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[4245],"body":{"id":5427,"nodeType":"Block","src":"11502:25:24","statements":[{"expression":{"hexValue":"31","id":5425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11519:1:24","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"functionReturnParameters":5424,"id":5426,"nodeType":"Return","src":"11512:8:24"}]},"functionSelector":"096568f6","id":5428,"implemented":true,"kind":"function","modifiers":[],"name":"getSendVersion","nameLocation":"11403:14:24","nodeType":"FunctionDefinition","overrides":{"id":5421,"nodeType":"OverrideSpecifier","overrides":[],"src":"11476:8:24"},"parameters":{"id":5420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5419,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5428,"src":"11427:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5418,"name":"address","nodeType":"ElementaryTypeName","src":"11427:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11417:44:24"},"returnParameters":{"id":5424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5423,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5428,"src":"11494:6:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":5422,"name":"uint16","nodeType":"ElementaryTypeName","src":"11494:6:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"11493:8:24"},"scope":5841,"src":"11394:133:24","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[4252],"body":{"id":5438,"nodeType":"Block","src":"11644:25:24","statements":[{"expression":{"hexValue":"31","id":5436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11661:1:24","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"functionReturnParameters":5435,"id":5437,"nodeType":"Return","src":"11654:8:24"}]},"functionSelector":"da1a7c9a","id":5439,"implemented":true,"kind":"function","modifiers":[],"name":"getReceiveVersion","nameLocation":"11542:17:24","nodeType":"FunctionDefinition","overrides":{"id":5432,"nodeType":"OverrideSpecifier","overrides":[],"src":"11618:8:24"},"parameters":{"id":5431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5430,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5439,"src":"11569:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5429,"name":"address","nodeType":"ElementaryTypeName","src":"11569:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11559:44:24"},"returnParameters":{"id":5435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5434,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5439,"src":"11636:6:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":5433,"name":"uint16","nodeType":"ElementaryTypeName","src":"11636:6:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"11635:8:24"},"scope":5841,"src":"11533:136:24","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[4280],"body":{"id":5451,"nodeType":"Block","src":"11840:2:24","statements":[]},"functionSelector":"cbed8b9c","id":5452,"implemented":true,"kind":"function","modifiers":[],"name":"setConfig","nameLocation":"11684:9:24","nodeType":"FunctionDefinition","overrides":{"id":5449,"nodeType":"OverrideSpecifier","overrides":[],"src":"11831:8:24"},"parameters":{"id":5448,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5441,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5452,"src":"11703:6:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":5440,"name":"uint16","nodeType":"ElementaryTypeName","src":"11703:6:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":5443,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5452,"src":"11732:6:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":5442,"name":"uint16","nodeType":"ElementaryTypeName","src":"11732:6:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":5445,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5452,"src":"11761:4:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5444,"name":"uint","nodeType":"ElementaryTypeName","src":"11761:4:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5447,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5452,"src":"11791:12:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5446,"name":"bytes","nodeType":"ElementaryTypeName","src":"11791:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"11693:128:24"},"returnParameters":{"id":5450,"nodeType":"ParameterList","parameters":[],"src":"11840:0:24"},"scope":5841,"src":"11675:167:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[4285],"body":{"id":5458,"nodeType":"Block","src":"11924:2:24","statements":[]},"functionSelector":"07e0db17","id":5459,"implemented":true,"kind":"function","modifiers":[],"name":"setSendVersion","nameLocation":"11857:14:24","nodeType":"FunctionDefinition","overrides":{"id":5456,"nodeType":"OverrideSpecifier","overrides":[],"src":"11915:8:24"},"parameters":{"id":5455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5454,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5459,"src":"11881:6:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":5453,"name":"uint16","nodeType":"ElementaryTypeName","src":"11881:6:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"11871:34:24"},"returnParameters":{"id":5457,"nodeType":"ParameterList","parameters":[],"src":"11924:0:24"},"scope":5841,"src":"11848:78:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[4290],"body":{"id":5465,"nodeType":"Block","src":"12011:2:24","statements":[]},"functionSelector":"10ddb137","id":5466,"implemented":true,"kind":"function","modifiers":[],"name":"setReceiveVersion","nameLocation":"11941:17:24","nodeType":"FunctionDefinition","overrides":{"id":5463,"nodeType":"OverrideSpecifier","overrides":[],"src":"12002:8:24"},"parameters":{"id":5462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5461,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5466,"src":"11968:6:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":5460,"name":"uint16","nodeType":"ElementaryTypeName","src":"11968:6:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"11958:34:24"},"returnParameters":{"id":5464,"nodeType":"ParameterList","parameters":[],"src":"12011:0:24"},"scope":5841,"src":"11932:81:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[4297],"body":{"id":5537,"nodeType":"Block","src":"12107:632:24","statements":[{"assignments":[5476],"declarations":[{"constant":false,"id":5476,"mutability":"mutable","name":"sp","nameLocation":"12139:2:24","nodeType":"VariableDeclaration","scope":5537,"src":"12117:24:24","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$4611_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload"},"typeName":{"id":5475,"nodeType":"UserDefinedTypeName","pathNode":{"id":5474,"name":"StoredPayload","nameLocations":["12117:13:24"],"nodeType":"IdentifierPath","referencedDeclaration":4611,"src":"12117:13:24"},"referencedDeclaration":4611,"src":"12117:13:24","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$4611_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload"}},"visibility":"internal"}],"id":5482,"initialValue":{"baseExpression":{"baseExpression":{"id":5477,"name":"storedPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4574,"src":"12144:13:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$4611_storage_$_$","typeString":"mapping(uint16 => mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref))"}},"id":5479,"indexExpression":{"id":5478,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5468,"src":"12158:11:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12144:26:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$4611_storage_$","typeString":"mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref)"}},"id":5481,"indexExpression":{"id":5480,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5470,"src":"12171:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12144:33:24","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$4611_storage","typeString":"struct LZEndpointMock.StoredPayload storage ref"}},"nodeType":"VariableDeclarationStatement","src":"12117:60:24"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":5490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5484,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5476,"src":"12273:2:24","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$4611_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":5485,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12276:11:24","memberName":"payloadHash","nodeType":"MemberAccess","referencedDeclaration":4610,"src":"12273:14:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":5488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12299:1:24","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":5487,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12291:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":5486,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12291:7:24","typeDescriptions":{}}},"id":5489,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12291:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"12273:28:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f6164","id":5491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12303:34:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db","typeString":"literal_string \"LayerZeroMock: no stored payload\""},"value":"LayerZeroMock: no stored payload"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db","typeString":"literal_string \"LayerZeroMock: no stored payload\""}],"id":5483,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12265:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12265:73:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5493,"nodeType":"ExpressionStatement","src":"12265:73:24"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5495,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5476,"src":"12356:2:24","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$4611_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":5496,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12359:10:24","memberName":"dstAddress","nodeType":"MemberAccess","referencedDeclaration":4608,"src":"12356:13:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":5497,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12373:3:24","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12377:6:24","memberName":"sender","nodeType":"MemberAccess","src":"12373:10:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12356:27:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a20696e76616c69642063616c6c6572","id":5500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12385:31:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_3967011d6285a9dce57c3ff82ee9dd83446fd39eaaeb6fa26af022508e44801b","typeString":"literal_string \"LayerZeroMock: invalid caller\""},"value":"LayerZeroMock: invalid caller"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3967011d6285a9dce57c3ff82ee9dd83446fd39eaaeb6fa26af022508e44801b","typeString":"literal_string \"LayerZeroMock: invalid caller\""}],"id":5494,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12348:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12348:69:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5502,"nodeType":"ExpressionStatement","src":"12348:69:24"},{"expression":{"id":5507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":5503,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5476,"src":"12463:2:24","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$4611_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":5505,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12466:13:24","memberName":"payloadLength","nodeType":"MemberAccess","referencedDeclaration":4606,"src":"12463:16:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":5506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12482:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12463:20:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":5508,"nodeType":"ExpressionStatement","src":"12463:20:24"},{"expression":{"id":5516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":5509,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5476,"src":"12493:2:24","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$4611_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":5511,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12496:10:24","memberName":"dstAddress","nodeType":"MemberAccess","referencedDeclaration":4608,"src":"12493:13:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":5514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12517:1:24","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":5513,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12509:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5512,"name":"address","nodeType":"ElementaryTypeName","src":"12509:7:24","typeDescriptions":{}}},"id":5515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12509:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12493:26:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5517,"nodeType":"ExpressionStatement","src":"12493:26:24"},{"expression":{"id":5525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":5518,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5476,"src":"12529:2:24","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$4611_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":5520,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12532:11:24","memberName":"payloadHash","nodeType":"MemberAccess","referencedDeclaration":4610,"src":"12529:14:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":5523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12554:1:24","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":5522,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12546:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":5521,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12546:7:24","typeDescriptions":{}}},"id":5524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12546:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"12529:27:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5526,"nodeType":"ExpressionStatement","src":"12529:27:24"},{"eventCall":{"arguments":[{"id":5528,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5468,"src":"12593:11:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":5529,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5470,"src":"12606:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":5527,"name":"UaForceResumeReceive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4662,"src":"12572:20:24","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory)"}},"id":5530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12572:40:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5531,"nodeType":"EmitStatement","src":"12567:45:24"},{"expression":{"arguments":[{"id":5533,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5468,"src":"12713:11:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":5534,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5470,"src":"12726:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":5532,"name":"_clearMsgQue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5714,"src":"12700:12:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (uint16,bytes calldata)"}},"id":5535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12700:32:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5536,"nodeType":"ExpressionStatement","src":"12700:32:24"}]},"functionSelector":"42d65a8d","id":5538,"implemented":true,"kind":"function","modifiers":[],"name":"forceResumeReceive","nameLocation":"12028:18:24","nodeType":"FunctionDefinition","overrides":{"id":5472,"nodeType":"OverrideSpecifier","overrides":[],"src":"12098:8:24"},"parameters":{"id":5471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5468,"mutability":"mutable","name":"_srcChainId","nameLocation":"12054:11:24","nodeType":"VariableDeclaration","scope":5538,"src":"12047:18:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":5467,"name":"uint16","nodeType":"ElementaryTypeName","src":"12047:6:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":5470,"mutability":"mutable","name":"_path","nameLocation":"12082:5:24","nodeType":"VariableDeclaration","scope":5538,"src":"12067:20:24","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":5469,"name":"bytes","nodeType":"ElementaryTypeName","src":"12067:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12046:42:24"},"returnParameters":{"id":5473,"nodeType":"ParameterList","parameters":[],"src":"12107:0:24"},"scope":5841,"src":"12019:720:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":5554,"nodeType":"Block","src":"12970:70:24","statements":[{"expression":{"expression":{"baseExpression":{"baseExpression":{"id":5547,"name":"msgsToDeliver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4582,"src":"12987:13:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_array$_t_struct$_QueuedPayload_$4618_storage_$dyn_storage_$_$","typeString":"mapping(uint16 => mapping(bytes memory => struct LZEndpointMock.QueuedPayload storage ref[] storage ref))"}},"id":5549,"indexExpression":{"id":5548,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5540,"src":"13001:11:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12987:26:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_array$_t_struct$_QueuedPayload_$4618_storage_$dyn_storage_$","typeString":"mapping(bytes memory => struct LZEndpointMock.QueuedPayload storage ref[] storage ref)"}},"id":5551,"indexExpression":{"id":5550,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5542,"src":"13014:11:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12987:39:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$4618_storage_$dyn_storage","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage ref"}},"id":5552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13027:6:24","memberName":"length","nodeType":"MemberAccess","src":"12987:46:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5546,"id":5553,"nodeType":"Return","src":"12980:53:24"}]},"functionSelector":"7f6df8e6","id":5555,"implemented":true,"kind":"function","modifiers":[],"name":"getLengthOfQueue","nameLocation":"12876:16:24","nodeType":"FunctionDefinition","parameters":{"id":5543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5540,"mutability":"mutable","name":"_srcChainId","nameLocation":"12900:11:24","nodeType":"VariableDeclaration","scope":5555,"src":"12893:18:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":5539,"name":"uint16","nodeType":"ElementaryTypeName","src":"12893:6:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":5542,"mutability":"mutable","name":"_srcAddress","nameLocation":"12928:11:24","nodeType":"VariableDeclaration","scope":5555,"src":"12913:26:24","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":5541,"name":"bytes","nodeType":"ElementaryTypeName","src":"12913:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12892:48:24"},"returnParameters":{"id":5546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5545,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5555,"src":"12964:4:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5544,"name":"uint","nodeType":"ElementaryTypeName","src":"12964:4:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12963:6:24"},"scope":5841,"src":"12867:173:24","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":5562,"nodeType":"Block","src":"13145:38:24","statements":[{"expression":{"id":5560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5558,"name":"nextMsgBlocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4545,"src":"13155:14:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":5559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13172:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"13155:21:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5561,"nodeType":"ExpressionStatement","src":"13155:21:24"}]},"functionSelector":"d23104f1","id":5563,"implemented":true,"kind":"function","modifiers":[],"name":"blockNextMsg","nameLocation":"13121:12:24","nodeType":"FunctionDefinition","parameters":{"id":5556,"nodeType":"ParameterList","parameters":[],"src":"13133:2:24"},"returnParameters":{"id":5557,"nodeType":"ParameterList","parameters":[],"src":"13145:0:24"},"scope":5841,"src":"13112:71:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":5576,"nodeType":"Block","src":"13267:60:24","statements":[{"expression":{"id":5574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5570,"name":"lzEndpointLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4541,"src":"13277:16:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":5572,"indexExpression":{"id":5571,"name":"destAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5565,"src":"13294:8:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13277:26:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5573,"name":"lzEndpointAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5567,"src":"13306:14:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13277:43:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5575,"nodeType":"ExpressionStatement","src":"13277:43:24"}]},"functionSelector":"c08f15a1","id":5577,"implemented":true,"kind":"function","modifiers":[],"name":"setDestLzEndpoint","nameLocation":"13198:17:24","nodeType":"FunctionDefinition","parameters":{"id":5568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5565,"mutability":"mutable","name":"destAddr","nameLocation":"13224:8:24","nodeType":"VariableDeclaration","scope":5577,"src":"13216:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5564,"name":"address","nodeType":"ElementaryTypeName","src":"13216:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5567,"mutability":"mutable","name":"lzEndpointAddr","nameLocation":"13242:14:24","nodeType":"VariableDeclaration","scope":5577,"src":"13234:22:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5566,"name":"address","nodeType":"ElementaryTypeName","src":"13234:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13215:42:24"},"returnParameters":{"id":5569,"nodeType":"ParameterList","parameters":[],"src":"13267:0:24"},"scope":5841,"src":"13189:138:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":5620,"nodeType":"Block","src":"13527:284:24","statements":[{"expression":{"id":5594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":5590,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4548,"src":"13537:16:24","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$4604_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":5592,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13554:13:24","memberName":"dstPriceRatio","nodeType":"MemberAccess","referencedDeclaration":4595,"src":"13537:30:24","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5593,"name":"_dstPriceRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5579,"src":"13570:14:24","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"13537:47:24","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":5595,"nodeType":"ExpressionStatement","src":"13537:47:24"},{"expression":{"id":5600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":5596,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4548,"src":"13594:16:24","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$4604_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":5598,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13611:16:24","memberName":"dstGasPriceInWei","nodeType":"MemberAccess","referencedDeclaration":4597,"src":"13594:33:24","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5599,"name":"_dstGasPriceInWei","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5581,"src":"13630:17:24","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"13594:53:24","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":5601,"nodeType":"ExpressionStatement","src":"13594:53:24"},{"expression":{"id":5606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":5602,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4548,"src":"13657:16:24","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$4604_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":5604,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13674:15:24","memberName":"dstNativeAmtCap","nodeType":"MemberAccess","referencedDeclaration":4599,"src":"13657:32:24","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5605,"name":"_dstNativeAmtCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5583,"src":"13692:16:24","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"13657:51:24","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":5607,"nodeType":"ExpressionStatement","src":"13657:51:24"},{"expression":{"id":5612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":5608,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4548,"src":"13718:16:24","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$4604_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":5610,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13735:7:24","memberName":"baseGas","nodeType":"MemberAccess","referencedDeclaration":4601,"src":"13718:24:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5611,"name":"_baseGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5585,"src":"13745:8:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"13718:35:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":5613,"nodeType":"ExpressionStatement","src":"13718:35:24"},{"expression":{"id":5618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":5614,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4548,"src":"13763:16:24","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$4604_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":5616,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13780:10:24","memberName":"gasPerByte","nodeType":"MemberAccess","referencedDeclaration":4603,"src":"13763:27:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5617,"name":"_gasPerByte","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5587,"src":"13793:11:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"13763:41:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":5619,"nodeType":"ExpressionStatement","src":"13763:41:24"}]},"functionSelector":"2c365e25","id":5621,"implemented":true,"kind":"function","modifiers":[],"name":"setRelayerPrice","nameLocation":"13342:15:24","nodeType":"FunctionDefinition","parameters":{"id":5588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5579,"mutability":"mutable","name":"_dstPriceRatio","nameLocation":"13375:14:24","nodeType":"VariableDeclaration","scope":5621,"src":"13367:22:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":5578,"name":"uint128","nodeType":"ElementaryTypeName","src":"13367:7:24","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":5581,"mutability":"mutable","name":"_dstGasPriceInWei","nameLocation":"13407:17:24","nodeType":"VariableDeclaration","scope":5621,"src":"13399:25:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":5580,"name":"uint128","nodeType":"ElementaryTypeName","src":"13399:7:24","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":5583,"mutability":"mutable","name":"_dstNativeAmtCap","nameLocation":"13442:16:24","nodeType":"VariableDeclaration","scope":5621,"src":"13434:24:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":5582,"name":"uint128","nodeType":"ElementaryTypeName","src":"13434:7:24","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":5585,"mutability":"mutable","name":"_baseGas","nameLocation":"13475:8:24","nodeType":"VariableDeclaration","scope":5621,"src":"13468:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":5584,"name":"uint64","nodeType":"ElementaryTypeName","src":"13468:6:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":5587,"mutability":"mutable","name":"_gasPerByte","nameLocation":"13500:11:24","nodeType":"VariableDeclaration","scope":5621,"src":"13493:18:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":5586,"name":"uint64","nodeType":"ElementaryTypeName","src":"13493:6:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"13357:160:24"},"returnParameters":{"id":5589,"nodeType":"ParameterList","parameters":[],"src":"13527:0:24"},"scope":5841,"src":"13333:478:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":5640,"nodeType":"Block","src":"13880:99:24","statements":[{"expression":{"id":5632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":5628,"name":"protocolFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4551,"src":"13890:17:24","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolFeeConfig_$4593_storage","typeString":"struct LZEndpointMock.ProtocolFeeConfig storage ref"}},"id":5630,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13908:6:24","memberName":"zroFee","nodeType":"MemberAccess","referencedDeclaration":4590,"src":"13890:24:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5631,"name":"_zroFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5623,"src":"13917:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13890:34:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5633,"nodeType":"ExpressionStatement","src":"13890:34:24"},{"expression":{"id":5638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":5634,"name":"protocolFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4551,"src":"13934:17:24","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolFeeConfig_$4593_storage","typeString":"struct LZEndpointMock.ProtocolFeeConfig storage ref"}},"id":5636,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13952:8:24","memberName":"nativeBP","nodeType":"MemberAccess","referencedDeclaration":4592,"src":"13934:26:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5637,"name":"_nativeBP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5625,"src":"13963:9:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13934:38:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5639,"nodeType":"ExpressionStatement","src":"13934:38:24"}]},"functionSelector":"240de277","id":5641,"implemented":true,"kind":"function","modifiers":[],"name":"setProtocolFee","nameLocation":"13826:14:24","nodeType":"FunctionDefinition","parameters":{"id":5626,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5623,"mutability":"mutable","name":"_zroFee","nameLocation":"13846:7:24","nodeType":"VariableDeclaration","scope":5641,"src":"13841:12:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5622,"name":"uint","nodeType":"ElementaryTypeName","src":"13841:4:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5625,"mutability":"mutable","name":"_nativeBP","nameLocation":"13860:9:24","nodeType":"VariableDeclaration","scope":5641,"src":"13855:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5624,"name":"uint","nodeType":"ElementaryTypeName","src":"13855:4:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13840:30:24"},"returnParameters":{"id":5627,"nodeType":"ParameterList","parameters":[],"src":"13880:0:24"},"scope":5841,"src":"13817:162:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":5650,"nodeType":"Block","src":"14033:39:24","statements":[{"expression":{"id":5648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5646,"name":"oracleFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4553,"src":"14043:9:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5647,"name":"_oracleFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5643,"src":"14055:10:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14043:22:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5649,"nodeType":"ExpressionStatement","src":"14043:22:24"}]},"functionSelector":"b6d9ef60","id":5651,"implemented":true,"kind":"function","modifiers":[],"name":"setOracleFee","nameLocation":"13994:12:24","nodeType":"FunctionDefinition","parameters":{"id":5644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5643,"mutability":"mutable","name":"_oracleFee","nameLocation":"14012:10:24","nodeType":"VariableDeclaration","scope":5651,"src":"14007:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5642,"name":"uint","nodeType":"ElementaryTypeName","src":"14007:4:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14006:17:24"},"returnParameters":{"id":5645,"nodeType":"ParameterList","parameters":[],"src":"14033:0:24"},"scope":5841,"src":"13985:87:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":5660,"nodeType":"Block","src":"14149:54:24","statements":[{"expression":{"id":5658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5656,"name":"defaultAdapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4555,"src":"14159:20:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5657,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5653,"src":"14182:14:24","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"14159:37:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":5659,"nodeType":"ExpressionStatement","src":"14159:37:24"}]},"functionSelector":"fbba623b","id":5661,"implemented":true,"kind":"function","modifiers":[],"name":"setDefaultAdapterParams","nameLocation":"14087:23:24","nodeType":"FunctionDefinition","parameters":{"id":5654,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5653,"mutability":"mutable","name":"_adapterParams","nameLocation":"14124:14:24","nodeType":"VariableDeclaration","scope":5661,"src":"14111:27:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5652,"name":"bytes","nodeType":"ElementaryTypeName","src":"14111:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14110:29:24"},"returnParameters":{"id":5655,"nodeType":"ParameterList","parameters":[],"src":"14149:0:24"},"scope":5841,"src":"14078:125:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":5713,"nodeType":"Block","src":"14461:425:24","statements":[{"assignments":[5672],"declarations":[{"constant":false,"id":5672,"mutability":"mutable","name":"msgs","nameLocation":"14495:4:24","nodeType":"VariableDeclaration","scope":5713,"src":"14471:28:24","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$4618_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload[]"},"typeName":{"baseType":{"id":5670,"nodeType":"UserDefinedTypeName","pathNode":{"id":5669,"name":"QueuedPayload","nameLocations":["14471:13:24"],"nodeType":"IdentifierPath","referencedDeclaration":4618,"src":"14471:13:24"},"referencedDeclaration":4618,"src":"14471:13:24","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$4618_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload"}},"id":5671,"nodeType":"ArrayTypeName","src":"14471:15:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$4618_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload[]"}},"visibility":"internal"}],"id":5678,"initialValue":{"baseExpression":{"baseExpression":{"id":5673,"name":"msgsToDeliver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4582,"src":"14502:13:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_array$_t_struct$_QueuedPayload_$4618_storage_$dyn_storage_$_$","typeString":"mapping(uint16 => mapping(bytes memory => struct LZEndpointMock.QueuedPayload storage ref[] storage ref))"}},"id":5675,"indexExpression":{"id":5674,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5663,"src":"14516:11:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14502:26:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_array$_t_struct$_QueuedPayload_$4618_storage_$dyn_storage_$","typeString":"mapping(bytes memory => struct LZEndpointMock.QueuedPayload storage ref[] storage ref)"}},"id":5677,"indexExpression":{"id":5676,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5665,"src":"14529:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14502:33:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$4618_storage_$dyn_storage","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14471:64:24"},{"body":{"id":5711,"nodeType":"Block","src":"14665:215:24","statements":[{"assignments":[5685],"declarations":[{"constant":false,"id":5685,"mutability":"mutable","name":"payload","nameLocation":"14700:7:24","nodeType":"VariableDeclaration","scope":5711,"src":"14679:28:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$4618_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload"},"typeName":{"id":5684,"nodeType":"UserDefinedTypeName","pathNode":{"id":5683,"name":"QueuedPayload","nameLocations":["14679:13:24"],"nodeType":"IdentifierPath","referencedDeclaration":4618,"src":"14679:13:24"},"referencedDeclaration":4618,"src":"14679:13:24","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$4618_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload"}},"visibility":"internal"}],"id":5692,"initialValue":{"baseExpression":{"id":5686,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5672,"src":"14710:4:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$4618_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":5691,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5687,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5672,"src":"14715:4:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$4618_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":5688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14720:6:24","memberName":"length","nodeType":"MemberAccess","src":"14715:11:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":5689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14729:1:24","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14715:15:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14710:21:24","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$4618_storage","typeString":"struct LZEndpointMock.QueuedPayload storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14679:52:24"},{"expression":{"arguments":[{"id":5698,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5663,"src":"14794:11:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":5699,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5665,"src":"14807:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":5700,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5685,"src":"14814:7:24","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$4618_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload memory"}},"id":5701,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14822:5:24","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":4615,"src":"14814:13:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":5702,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5685,"src":"14829:7:24","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$4618_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload memory"}},"id":5703,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14837:7:24","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":4617,"src":"14829:15:24","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"expression":{"id":5694,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5685,"src":"14764:7:24","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$4618_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload memory"}},"id":5695,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14772:10:24","memberName":"dstAddress","nodeType":"MemberAccess","referencedDeclaration":4613,"src":"14764:18:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5693,"name":"ILayerZeroReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4267,"src":"14745:18:24","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ILayerZeroReceiver_$4267_$","typeString":"type(contract ILayerZeroReceiver)"}},"id":5696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14745:38:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroReceiver_$4267","typeString":"contract ILayerZeroReceiver"}},"id":5697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14784:9:24","memberName":"lzReceive","nodeType":"MemberAccess","referencedDeclaration":4266,"src":"14745:48:24","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory) external"}},"id":5704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14745:100:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5705,"nodeType":"ExpressionStatement","src":"14745:100:24"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":5706,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5672,"src":"14859:4:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$4618_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":5708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14864:3:24","memberName":"pop","nodeType":"MemberAccess","src":"14859:8:24","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_struct$_QueuedPayload_$4618_storage_$dyn_storage_ptr_$returns$__$attached_to$_t_array$_t_struct$_QueuedPayload_$4618_storage_$dyn_storage_ptr_$","typeString":"function (struct LZEndpointMock.QueuedPayload storage ref[] storage pointer)"}},"id":5709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14859:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5710,"nodeType":"ExpressionStatement","src":"14859:10:24"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5679,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5672,"src":"14648:4:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$4618_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":5680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14653:6:24","memberName":"length","nodeType":"MemberAccess","src":"14648:11:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":5681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14662:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14648:15:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5712,"nodeType":"WhileStatement","src":"14641:239:24"}]},"id":5714,"implemented":true,"kind":"function","modifiers":[],"name":"_clearMsgQue","nameLocation":"14397:12:24","nodeType":"FunctionDefinition","parameters":{"id":5666,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5663,"mutability":"mutable","name":"_srcChainId","nameLocation":"14417:11:24","nodeType":"VariableDeclaration","scope":5714,"src":"14410:18:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":5662,"name":"uint16","nodeType":"ElementaryTypeName","src":"14410:6:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":5665,"mutability":"mutable","name":"_path","nameLocation":"14445:5:24","nodeType":"VariableDeclaration","scope":5714,"src":"14430:20:24","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":5664,"name":"bytes","nodeType":"ElementaryTypeName","src":"14430:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14409:42:24"},"returnParameters":{"id":5667,"nodeType":"ParameterList","parameters":[],"src":"14461:0:24"},"scope":5841,"src":"14388:498:24","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5743,"nodeType":"Block","src":"15028:190:24","statements":[{"condition":{"id":5725,"name":"_payInZro","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5716,"src":"15042:9:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":5741,"nodeType":"Block","src":"15115:97:24","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5730,"name":"_relayerFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5718,"src":"15138:11:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":5731,"name":"_oracleFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5720,"src":"15152:10:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15138:24:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5733,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15137:26:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":5734,"name":"protocolFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4551,"src":"15166:17:24","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolFeeConfig_$4593_storage","typeString":"struct LZEndpointMock.ProtocolFeeConfig storage ref"}},"id":5735,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15184:8:24","memberName":"nativeBP","nodeType":"MemberAccess","referencedDeclaration":4592,"src":"15166:26:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15137:55:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5737,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15136:57:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"3130303030","id":5738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15196:5:24","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"value":"10000"},"src":"15136:65:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5724,"id":5740,"nodeType":"Return","src":"15129:72:24"}]},"id":5742,"nodeType":"IfStatement","src":"15038:174:24","trueBody":{"id":5729,"nodeType":"Block","src":"15053:56:24","statements":[{"expression":{"expression":{"id":5726,"name":"protocolFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4551,"src":"15074:17:24","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolFeeConfig_$4593_storage","typeString":"struct LZEndpointMock.ProtocolFeeConfig storage ref"}},"id":5727,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15092:6:24","memberName":"zroFee","nodeType":"MemberAccess","referencedDeclaration":4590,"src":"15074:24:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5724,"id":5728,"nodeType":"Return","src":"15067:31:24"}]}}]},"id":5744,"implemented":true,"kind":"function","modifiers":[],"name":"_getProtocolFees","nameLocation":"14901:16:24","nodeType":"FunctionDefinition","parameters":{"id":5721,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5716,"mutability":"mutable","name":"_payInZro","nameLocation":"14932:9:24","nodeType":"VariableDeclaration","scope":5744,"src":"14927:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5715,"name":"bool","nodeType":"ElementaryTypeName","src":"14927:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5718,"mutability":"mutable","name":"_relayerFee","nameLocation":"14956:11:24","nodeType":"VariableDeclaration","scope":5744,"src":"14951:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5717,"name":"uint","nodeType":"ElementaryTypeName","src":"14951:4:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5720,"mutability":"mutable","name":"_oracleFee","nameLocation":"14982:10:24","nodeType":"VariableDeclaration","scope":5744,"src":"14977:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5719,"name":"uint","nodeType":"ElementaryTypeName","src":"14977:4:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14917:81:24"},"returnParameters":{"id":5724,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5723,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5744,"src":"15022:4:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5722,"name":"uint","nodeType":"ElementaryTypeName","src":"15022:4:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15021:6:24"},"scope":5841,"src":"14892:326:24","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":5839,"nodeType":"Block","src":"15462:1084:24","statements":[{"assignments":[5760,5762,5764,null],"declarations":[{"constant":false,"id":5760,"mutability":"mutable","name":"txType","nameLocation":"15480:6:24","nodeType":"VariableDeclaration","scope":5839,"src":"15473:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":5759,"name":"uint16","nodeType":"ElementaryTypeName","src":"15473:6:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":5762,"mutability":"mutable","name":"extraGas","nameLocation":"15493:8:24","nodeType":"VariableDeclaration","scope":5839,"src":"15488:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5761,"name":"uint","nodeType":"ElementaryTypeName","src":"15488:4:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5764,"mutability":"mutable","name":"dstNativeAmt","nameLocation":"15508:12:24","nodeType":"VariableDeclaration","scope":5839,"src":"15503:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5763,"name":"uint","nodeType":"ElementaryTypeName","src":"15503:4:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":5769,"initialValue":{"arguments":[{"id":5767,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5754,"src":"15552:14:24","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":5765,"name":"LzLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4523,"src":"15526:5:24","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LzLib_$4523_$","typeString":"type(library LzLib)"}},"id":5766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15532:19:24","memberName":"decodeAdapterParams","nodeType":"MemberAccess","referencedDeclaration":4484,"src":"15526:25:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint16_$_t_uint256_$_t_uint256_$_t_address_payable_$","typeString":"function (bytes memory) pure returns (uint16,uint256,uint256,address payable)"}},"id":5768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15526:41:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$_t_uint256_$_t_address_payable_$","typeString":"tuple(uint16,uint256,uint256,address payable)"}},"nodeType":"VariableDeclarationStatement","src":"15472:95:24"},{"assignments":[5771],"declarations":[{"constant":false,"id":5771,"mutability":"mutable","name":"totalRemoteToken","nameLocation":"15582:16:24","nodeType":"VariableDeclaration","scope":5839,"src":"15577:21:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5770,"name":"uint","nodeType":"ElementaryTypeName","src":"15577:4:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5772,"nodeType":"VariableDeclarationStatement","src":"15577:21:24"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":5775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5773,"name":"txType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5760,"src":"15659:6:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"32","id":5774,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15669:1:24","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"15659:11:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5789,"nodeType":"IfStatement","src":"15655:187:24","trueBody":{"id":5788,"nodeType":"Block","src":"15672:170:24","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5777,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4548,"src":"15694:16:24","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$4604_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":5778,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15711:15:24","memberName":"dstNativeAmtCap","nodeType":"MemberAccess","referencedDeclaration":4599,"src":"15694:32:24","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":5779,"name":"dstNativeAmt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5764,"src":"15730:12:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15694:48:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a206473744e6174697665416d7420746f6f206c6172676520","id":5781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15744:40:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_9ed68b89a8d51980886c19b98768f5848012f002a5537f0951f8528791f91206","typeString":"literal_string \"LayerZeroMock: dstNativeAmt too large \""},"value":"LayerZeroMock: dstNativeAmt too large "}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9ed68b89a8d51980886c19b98768f5848012f002a5537f0951f8528791f91206","typeString":"literal_string \"LayerZeroMock: dstNativeAmt too large \""}],"id":5776,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"15686:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15686:99:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5783,"nodeType":"ExpressionStatement","src":"15686:99:24"},{"expression":{"id":5786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5784,"name":"totalRemoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5771,"src":"15799:16:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":5785,"name":"dstNativeAmt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5764,"src":"15819:12:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15799:32:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5787,"nodeType":"ExpressionStatement","src":"15799:32:24"}]}},{"assignments":[5791],"declarations":[{"constant":false,"id":5791,"mutability":"mutable","name":"remoteGasTotal","nameLocation":"15924:14:24","nodeType":"VariableDeclaration","scope":5839,"src":"15919:19:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5790,"name":"uint","nodeType":"ElementaryTypeName","src":"15919:4:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5800,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5792,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4548,"src":"15941:16:24","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$4604_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":5793,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15958:16:24","memberName":"dstGasPriceInWei","nodeType":"MemberAccess","referencedDeclaration":4597,"src":"15941:33:24","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5794,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4548,"src":"15978:16:24","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$4604_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":5795,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15995:7:24","memberName":"baseGas","nodeType":"MemberAccess","referencedDeclaration":4601,"src":"15978:24:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":5796,"name":"extraGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5762,"src":"16005:8:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15978:35:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5798,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15977:37:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15941:73:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15919:95:24"},{"expression":{"id":5803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5801,"name":"totalRemoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5771,"src":"16024:16:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":5802,"name":"remoteGasTotal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5791,"src":"16044:14:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16024:34:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5804,"nodeType":"ExpressionStatement","src":"16024:34:24"},{"assignments":[5806],"declarations":[{"constant":false,"id":5806,"mutability":"mutable","name":"basePrice","nameLocation":"16191:9:24","nodeType":"VariableDeclaration","scope":5839,"src":"16186:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5805,"name":"uint","nodeType":"ElementaryTypeName","src":"16186:4:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5816,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5807,"name":"totalRemoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5771,"src":"16204:16:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":5808,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4548,"src":"16223:16:24","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$4604_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":5809,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16240:13:24","memberName":"dstPriceRatio","nodeType":"MemberAccess","referencedDeclaration":4595,"src":"16223:30:24","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"16204:49:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5811,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16203:51:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"id":5814,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":5812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16257:2:24","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3130","id":5813,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16261:2:24","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"16257:6:24","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"}},"src":"16203:60:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16186:77:24"},{"assignments":[5818],"declarations":[{"constant":false,"id":5818,"mutability":"mutable","name":"pricePerByte","nameLocation":"16360:12:24","nodeType":"VariableDeclaration","scope":5839,"src":"16355:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5817,"name":"uint","nodeType":"ElementaryTypeName","src":"16355:4:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5832,"initialValue":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":5831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":5826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":5823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5819,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4548,"src":"16376:16:24","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$4604_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":5820,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16393:16:24","memberName":"dstGasPriceInWei","nodeType":"MemberAccess","referencedDeclaration":4597,"src":"16376:33:24","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":5821,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4548,"src":"16412:16:24","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$4604_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":5822,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16429:10:24","memberName":"gasPerByte","nodeType":"MemberAccess","referencedDeclaration":4603,"src":"16412:27:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"16376:63:24","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":5824,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4548,"src":"16442:16:24","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$4604_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":5825,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16459:13:24","memberName":"dstPriceRatio","nodeType":"MemberAccess","referencedDeclaration":4595,"src":"16442:30:24","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"16376:96:24","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"id":5827,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16375:98:24","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"id":5830,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":5828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16476:2:24","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3130","id":5829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16480:2:24","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"16476:6:24","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"}},"src":"16375:107:24","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"16355:127:24"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5833,"name":"basePrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5806,"src":"16500:9:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5834,"name":"_payloadSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5752,"src":"16512:12:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":5835,"name":"pricePerByte","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5818,"src":"16527:12:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16512:27:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16500:39:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5758,"id":5838,"nodeType":"Return","src":"16493:46:24"}]},"id":5840,"implemented":true,"kind":"function","modifiers":[],"name":"_getRelayerFee","nameLocation":"15233:14:24","nodeType":"FunctionDefinition","parameters":{"id":5755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5746,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5840,"src":"15257:6:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":5745,"name":"uint16","nodeType":"ElementaryTypeName","src":"15257:6:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":5748,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5840,"src":"15291:6:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":5747,"name":"uint16","nodeType":"ElementaryTypeName","src":"15291:6:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":5750,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5840,"src":"15332:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5749,"name":"address","nodeType":"ElementaryTypeName","src":"15332:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5752,"mutability":"mutable","name":"_payloadSize","nameLocation":"15377:12:24","nodeType":"VariableDeclaration","scope":5840,"src":"15372:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5751,"name":"uint","nodeType":"ElementaryTypeName","src":"15372:4:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5754,"mutability":"mutable","name":"_adapterParams","nameLocation":"15412:14:24","nodeType":"VariableDeclaration","scope":5840,"src":"15399:27:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5753,"name":"bytes","nodeType":"ElementaryTypeName","src":"15399:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"15247:185:24"},"returnParameters":{"id":5758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5757,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5840,"src":"15456:4:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5756,"name":"uint","nodeType":"ElementaryTypeName","src":"15456:4:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15455:6:24"},"scope":5841,"src":"15224:1322:24","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":5842,"src":"812:15736:24","usedErrors":[],"usedEvents":[4662,4672,4686,4692]}],"src":"38:16511:24"},"id":24},"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol","exportedSymbols":{"AddressUpgradeable":[6532],"ContextUpgradeable":[6574],"Initializable":[6248],"Ownable2StepUpgradeable":[5947],"OwnableUpgradeable":[6079]},"id":5948,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5843,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"107:23:25"},{"absolutePath":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","file":"./OwnableUpgradeable.sol","id":5844,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5948,"sourceUnit":6080,"src":"132:34:25","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"../proxy/utils/Initializable.sol","id":5845,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5948,"sourceUnit":6249,"src":"167:42:25","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":5847,"name":"Initializable","nameLocations":["698:13:25"],"nodeType":"IdentifierPath","referencedDeclaration":6248,"src":"698:13:25"},"id":5848,"nodeType":"InheritanceSpecifier","src":"698:13:25"},{"baseName":{"id":5849,"name":"OwnableUpgradeable","nameLocations":["713:18:25"],"nodeType":"IdentifierPath","referencedDeclaration":6079,"src":"713:18:25"},"id":5850,"nodeType":"InheritanceSpecifier","src":"713:18:25"}],"canonicalName":"Ownable2StepUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":5846,"nodeType":"StructuredDocumentation","src":"211:441:25","text":" @dev Contract module which provides access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership} and {acceptOwnership}.\n This module is used through inheritance. It will make available all functions\n from parent (Ownable)."},"fullyImplemented":true,"id":5947,"linearizedBaseContracts":[5947,6079,6574,6248],"name":"Ownable2StepUpgradeable","nameLocation":"671:23:25","nodeType":"ContractDefinition","nodes":[{"body":{"id":5858,"nodeType":"Block","src":"795:43:25","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":5855,"name":"__Ownable_init_unchained","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5985,"src":"805:24:25","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":5856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"805:26:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5857,"nodeType":"ExpressionStatement","src":"805:26:25"}]},"id":5859,"implemented":true,"kind":"function","modifiers":[{"id":5853,"kind":"modifierInvocation","modifierName":{"id":5852,"name":"onlyInitializing","nameLocations":["778:16:25"],"nodeType":"IdentifierPath","referencedDeclaration":6193,"src":"778:16:25"},"nodeType":"ModifierInvocation","src":"778:16:25"}],"name":"__Ownable2Step_init","nameLocation":"747:19:25","nodeType":"FunctionDefinition","parameters":{"id":5851,"nodeType":"ParameterList","parameters":[],"src":"766:2:25"},"returnParameters":{"id":5854,"nodeType":"ParameterList","parameters":[],"src":"795:0:25"},"scope":5947,"src":"738:100:25","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5864,"nodeType":"Block","src":"911:7:25","statements":[]},"id":5865,"implemented":true,"kind":"function","modifiers":[{"id":5862,"kind":"modifierInvocation","modifierName":{"id":5861,"name":"onlyInitializing","nameLocations":["894:16:25"],"nodeType":"IdentifierPath","referencedDeclaration":6193,"src":"894:16:25"},"nodeType":"ModifierInvocation","src":"894:16:25"}],"name":"__Ownable2Step_init_unchained","nameLocation":"853:29:25","nodeType":"FunctionDefinition","parameters":{"id":5860,"nodeType":"ParameterList","parameters":[],"src":"882:2:25"},"returnParameters":{"id":5863,"nodeType":"ParameterList","parameters":[],"src":"911:0:25"},"scope":5947,"src":"844:74:25","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"constant":false,"id":5867,"mutability":"mutable","name":"_pendingOwner","nameLocation":"939:13:25","nodeType":"VariableDeclaration","scope":5947,"src":"923:29:25","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5866,"name":"address","nodeType":"ElementaryTypeName","src":"923:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"anonymous":false,"eventSelector":"38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700","id":5873,"name":"OwnershipTransferStarted","nameLocation":"965:24:25","nodeType":"EventDefinition","parameters":{"id":5872,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5869,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"1006:13:25","nodeType":"VariableDeclaration","scope":5873,"src":"990:29:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5868,"name":"address","nodeType":"ElementaryTypeName","src":"990:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5871,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"1037:8:25","nodeType":"VariableDeclaration","scope":5873,"src":"1021:24:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5870,"name":"address","nodeType":"ElementaryTypeName","src":"1021:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"989:57:25"},"src":"959:88:25"},{"body":{"id":5881,"nodeType":"Block","src":"1185:37:25","statements":[{"expression":{"id":5879,"name":"_pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5867,"src":"1202:13:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":5878,"id":5880,"nodeType":"Return","src":"1195:20:25"}]},"documentation":{"id":5874,"nodeType":"StructuredDocumentation","src":"1053:65:25","text":" @dev Returns the address of the pending owner."},"functionSelector":"e30c3978","id":5882,"implemented":true,"kind":"function","modifiers":[],"name":"pendingOwner","nameLocation":"1132:12:25","nodeType":"FunctionDefinition","parameters":{"id":5875,"nodeType":"ParameterList","parameters":[],"src":"1144:2:25"},"returnParameters":{"id":5878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5877,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5882,"src":"1176:7:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5876,"name":"address","nodeType":"ElementaryTypeName","src":"1176:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1175:9:25"},"scope":5947,"src":"1123:99:25","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6053],"body":{"id":5901,"nodeType":"Block","src":"1494:99:25","statements":[{"expression":{"id":5893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5891,"name":"_pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5867,"src":"1504:13:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5892,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5885,"src":"1520:8:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1504:24:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5894,"nodeType":"ExpressionStatement","src":"1504:24:25"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":5896,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6002,"src":"1568:5:25","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1568:7:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5898,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5885,"src":"1577:8:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5895,"name":"OwnershipTransferStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5873,"src":"1543:24:25","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":5899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1543:43:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5900,"nodeType":"EmitStatement","src":"1538:48:25"}]},"documentation":{"id":5883,"nodeType":"StructuredDocumentation","src":"1228:182:25","text":" @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\n Can only be called by the current owner."},"functionSelector":"f2fde38b","id":5902,"implemented":true,"kind":"function","modifiers":[{"id":5889,"kind":"modifierInvocation","modifierName":{"id":5888,"name":"onlyOwner","nameLocations":["1484:9:25"],"nodeType":"IdentifierPath","referencedDeclaration":5993,"src":"1484:9:25"},"nodeType":"ModifierInvocation","src":"1484:9:25"}],"name":"transferOwnership","nameLocation":"1424:17:25","nodeType":"FunctionDefinition","overrides":{"id":5887,"nodeType":"OverrideSpecifier","overrides":[],"src":"1475:8:25"},"parameters":{"id":5886,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5885,"mutability":"mutable","name":"newOwner","nameLocation":"1450:8:25","nodeType":"VariableDeclaration","scope":5902,"src":"1442:16:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5884,"name":"address","nodeType":"ElementaryTypeName","src":"1442:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1441:18:25"},"returnParameters":{"id":5890,"nodeType":"ParameterList","parameters":[],"src":"1494:0:25"},"scope":5947,"src":"1415:178:25","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[6073],"body":{"id":5918,"nodeType":"Block","src":"1849:81:25","statements":[{"expression":{"id":5910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"1859:20:25","subExpression":{"id":5909,"name":"_pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5867,"src":"1866:13:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5911,"nodeType":"ExpressionStatement","src":"1859:20:25"},{"expression":{"arguments":[{"id":5915,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5905,"src":"1914:8:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5912,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1889:5:25","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_Ownable2StepUpgradeable_$5947_$","typeString":"type(contract super Ownable2StepUpgradeable)"}},"id":5914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1895:18:25","memberName":"_transferOwnership","nodeType":"MemberAccess","referencedDeclaration":6073,"src":"1889:24:25","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":5916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1889:34:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5917,"nodeType":"ExpressionStatement","src":"1889:34:25"}]},"documentation":{"id":5903,"nodeType":"StructuredDocumentation","src":"1599:173:25","text":" @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\n Internal function without access restriction."},"id":5919,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"1786:18:25","nodeType":"FunctionDefinition","overrides":{"id":5907,"nodeType":"OverrideSpecifier","overrides":[],"src":"1840:8:25"},"parameters":{"id":5906,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5905,"mutability":"mutable","name":"newOwner","nameLocation":"1813:8:25","nodeType":"VariableDeclaration","scope":5919,"src":"1805:16:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5904,"name":"address","nodeType":"ElementaryTypeName","src":"1805:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1804:18:25"},"returnParameters":{"id":5908,"nodeType":"ParameterList","parameters":[],"src":"1849:0:25"},"scope":5947,"src":"1777:153:25","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":5940,"nodeType":"Block","src":"2046:170:25","statements":[{"assignments":[5924],"declarations":[{"constant":false,"id":5924,"mutability":"mutable","name":"sender","nameLocation":"2064:6:25","nodeType":"VariableDeclaration","scope":5940,"src":"2056:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5923,"name":"address","nodeType":"ElementaryTypeName","src":"2056:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5927,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":5925,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6559,"src":"2073:10:25","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2073:12:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2056:29:25"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":5929,"name":"pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5882,"src":"2103:12:25","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2103:14:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":5931,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5924,"src":"2121:6:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2103:24:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206e6577206f776e6572","id":5933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2129:43:25","typeDescriptions":{"typeIdentifier":"t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc","typeString":"literal_string \"Ownable2Step: caller is not the new owner\""},"value":"Ownable2Step: caller is not the new owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc","typeString":"literal_string \"Ownable2Step: caller is not the new owner\""}],"id":5928,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2095:7:25","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2095:78:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5935,"nodeType":"ExpressionStatement","src":"2095:78:25"},{"expression":{"arguments":[{"id":5937,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5924,"src":"2202:6:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5936,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[5919],"referencedDeclaration":5919,"src":"2183:18:25","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":5938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2183:26:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5939,"nodeType":"ExpressionStatement","src":"2183:26:25"}]},"documentation":{"id":5920,"nodeType":"StructuredDocumentation","src":"1936:69:25","text":" @dev The new owner accepts the ownership transfer."},"functionSelector":"79ba5097","id":5941,"implemented":true,"kind":"function","modifiers":[],"name":"acceptOwnership","nameLocation":"2019:15:25","nodeType":"FunctionDefinition","parameters":{"id":5921,"nodeType":"ParameterList","parameters":[],"src":"2034:2:25"},"returnParameters":{"id":5922,"nodeType":"ParameterList","parameters":[],"src":"2046:0:25"},"scope":5947,"src":"2010:206:25","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"constant":false,"documentation":{"id":5942,"nodeType":"StructuredDocumentation","src":"2222:254:25","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"id":5946,"mutability":"mutable","name":"__gap","nameLocation":"2501:5:25","nodeType":"VariableDeclaration","scope":5947,"src":"2481:25:25","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage","typeString":"uint256[49]"},"typeName":{"baseType":{"id":5943,"name":"uint256","nodeType":"ElementaryTypeName","src":"2481:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5945,"length":{"hexValue":"3439","id":5944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2489:2:25","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"49"},"nodeType":"ArrayTypeName","src":"2481:11:25","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage_ptr","typeString":"uint256[49]"}},"visibility":"private"}],"scope":5948,"src":"653:1856:25","usedErrors":[],"usedEvents":[5873,5964,6094]}],"src":"107:2403:25"},"id":25},"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","exportedSymbols":{"AddressUpgradeable":[6532],"ContextUpgradeable":[6574],"Initializable":[6248],"OwnableUpgradeable":[6079]},"id":6080,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5949,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"102:23:26"},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol","file":"../utils/ContextUpgradeable.sol","id":5950,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6080,"sourceUnit":6575,"src":"127:41:26","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"../proxy/utils/Initializable.sol","id":5951,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6080,"sourceUnit":6249,"src":"169:42:26","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":5953,"name":"Initializable","nameLocations":["748:13:26"],"nodeType":"IdentifierPath","referencedDeclaration":6248,"src":"748:13:26"},"id":5954,"nodeType":"InheritanceSpecifier","src":"748:13:26"},{"baseName":{"id":5955,"name":"ContextUpgradeable","nameLocations":["763:18:26"],"nodeType":"IdentifierPath","referencedDeclaration":6574,"src":"763:18:26"},"id":5956,"nodeType":"InheritanceSpecifier","src":"763:18:26"}],"canonicalName":"OwnableUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":5952,"nodeType":"StructuredDocumentation","src":"213:494:26","text":" @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner."},"fullyImplemented":true,"id":6079,"linearizedBaseContracts":[6079,6574,6248],"name":"OwnableUpgradeable","nameLocation":"726:18:26","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":5958,"mutability":"mutable","name":"_owner","nameLocation":"804:6:26","nodeType":"VariableDeclaration","scope":6079,"src":"788:22:26","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5957,"name":"address","nodeType":"ElementaryTypeName","src":"788:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"anonymous":false,"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","id":5964,"name":"OwnershipTransferred","nameLocation":"823:20:26","nodeType":"EventDefinition","parameters":{"id":5963,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5960,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"860:13:26","nodeType":"VariableDeclaration","scope":5964,"src":"844:29:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5959,"name":"address","nodeType":"ElementaryTypeName","src":"844:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5962,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"891:8:26","nodeType":"VariableDeclaration","scope":5964,"src":"875:24:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5961,"name":"address","nodeType":"ElementaryTypeName","src":"875:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"843:57:26"},"src":"817:84:26"},{"body":{"id":5973,"nodeType":"Block","src":"1055:43:26","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":5970,"name":"__Ownable_init_unchained","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5985,"src":"1065:24:26","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":5971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1065:26:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5972,"nodeType":"ExpressionStatement","src":"1065:26:26"}]},"documentation":{"id":5965,"nodeType":"StructuredDocumentation","src":"907:91:26","text":" @dev Initializes the contract setting the deployer as the initial owner."},"id":5974,"implemented":true,"kind":"function","modifiers":[{"id":5968,"kind":"modifierInvocation","modifierName":{"id":5967,"name":"onlyInitializing","nameLocations":["1038:16:26"],"nodeType":"IdentifierPath","referencedDeclaration":6193,"src":"1038:16:26"},"nodeType":"ModifierInvocation","src":"1038:16:26"}],"name":"__Ownable_init","nameLocation":"1012:14:26","nodeType":"FunctionDefinition","parameters":{"id":5966,"nodeType":"ParameterList","parameters":[],"src":"1026:2:26"},"returnParameters":{"id":5969,"nodeType":"ParameterList","parameters":[],"src":"1055:0:26"},"scope":6079,"src":"1003:95:26","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5984,"nodeType":"Block","src":"1166:49:26","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":5980,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6559,"src":"1195:10:26","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1195:12:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5979,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6073,"src":"1176:18:26","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":5982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1176:32:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5983,"nodeType":"ExpressionStatement","src":"1176:32:26"}]},"id":5985,"implemented":true,"kind":"function","modifiers":[{"id":5977,"kind":"modifierInvocation","modifierName":{"id":5976,"name":"onlyInitializing","nameLocations":["1149:16:26"],"nodeType":"IdentifierPath","referencedDeclaration":6193,"src":"1149:16:26"},"nodeType":"ModifierInvocation","src":"1149:16:26"}],"name":"__Ownable_init_unchained","nameLocation":"1113:24:26","nodeType":"FunctionDefinition","parameters":{"id":5975,"nodeType":"ParameterList","parameters":[],"src":"1137:2:26"},"returnParameters":{"id":5978,"nodeType":"ParameterList","parameters":[],"src":"1166:0:26"},"scope":6079,"src":"1104:111:26","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5992,"nodeType":"Block","src":"1324:41:26","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":5988,"name":"_checkOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6016,"src":"1334:11:26","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":5989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1334:13:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5990,"nodeType":"ExpressionStatement","src":"1334:13:26"},{"id":5991,"nodeType":"PlaceholderStatement","src":"1357:1:26"}]},"documentation":{"id":5986,"nodeType":"StructuredDocumentation","src":"1221:77:26","text":" @dev Throws if called by any account other than the owner."},"id":5993,"name":"onlyOwner","nameLocation":"1312:9:26","nodeType":"ModifierDefinition","parameters":{"id":5987,"nodeType":"ParameterList","parameters":[],"src":"1321:2:26"},"src":"1303:62:26","virtual":false,"visibility":"internal"},{"body":{"id":6001,"nodeType":"Block","src":"1496:30:26","statements":[{"expression":{"id":5999,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5958,"src":"1513:6:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":5998,"id":6000,"nodeType":"Return","src":"1506:13:26"}]},"documentation":{"id":5994,"nodeType":"StructuredDocumentation","src":"1371:65:26","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","id":6002,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1450:5:26","nodeType":"FunctionDefinition","parameters":{"id":5995,"nodeType":"ParameterList","parameters":[],"src":"1455:2:26"},"returnParameters":{"id":5998,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5997,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6002,"src":"1487:7:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5996,"name":"address","nodeType":"ElementaryTypeName","src":"1487:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1486:9:26"},"scope":6079,"src":"1441:85:26","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":6015,"nodeType":"Block","src":"1644:85:26","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":6007,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6002,"src":"1662:5:26","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":6008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1662:7:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":6009,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6559,"src":"1673:10:26","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":6010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1673:12:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1662:23:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","id":6012,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1687:34:26","typeDescriptions":{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""},"value":"Ownable: caller is not the owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""}],"id":6006,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1654:7:26","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1654:68:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6014,"nodeType":"ExpressionStatement","src":"1654:68:26"}]},"documentation":{"id":6003,"nodeType":"StructuredDocumentation","src":"1532:62:26","text":" @dev Throws if the sender is not the owner."},"id":6016,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"1608:11:26","nodeType":"FunctionDefinition","parameters":{"id":6004,"nodeType":"ParameterList","parameters":[],"src":"1619:2:26"},"returnParameters":{"id":6005,"nodeType":"ParameterList","parameters":[],"src":"1644:0:26"},"scope":6079,"src":"1599:130:26","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":6029,"nodeType":"Block","src":"2125:47:26","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":6025,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2162:1:26","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":6024,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2154:7:26","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6023,"name":"address","nodeType":"ElementaryTypeName","src":"2154:7:26","typeDescriptions":{}}},"id":6026,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2154:10:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6022,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6073,"src":"2135:18:26","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":6027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2135:30:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6028,"nodeType":"ExpressionStatement","src":"2135:30:26"}]},"documentation":{"id":6017,"nodeType":"StructuredDocumentation","src":"1735:331:26","text":" @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions anymore. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby removing any functionality that is only available to the owner."},"functionSelector":"715018a6","id":6030,"implemented":true,"kind":"function","modifiers":[{"id":6020,"kind":"modifierInvocation","modifierName":{"id":6019,"name":"onlyOwner","nameLocations":["2115:9:26"],"nodeType":"IdentifierPath","referencedDeclaration":5993,"src":"2115:9:26"},"nodeType":"ModifierInvocation","src":"2115:9:26"}],"name":"renounceOwnership","nameLocation":"2080:17:26","nodeType":"FunctionDefinition","parameters":{"id":6018,"nodeType":"ParameterList","parameters":[],"src":"2097:2:26"},"returnParameters":{"id":6021,"nodeType":"ParameterList","parameters":[],"src":"2125:0:26"},"scope":6079,"src":"2071:101:26","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":6052,"nodeType":"Block","src":"2391:128:26","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6039,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6033,"src":"2409:8:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":6042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2429:1:26","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":6041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2421:7:26","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6040,"name":"address","nodeType":"ElementaryTypeName","src":"2421:7:26","typeDescriptions":{}}},"id":6043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2421:10:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2409:22:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373","id":6045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2433:40:26","typeDescriptions":{"typeIdentifier":"t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","typeString":"literal_string \"Ownable: new owner is the zero address\""},"value":"Ownable: new owner is the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","typeString":"literal_string \"Ownable: new owner is the zero address\""}],"id":6038,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2401:7:26","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2401:73:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6047,"nodeType":"ExpressionStatement","src":"2401:73:26"},{"expression":{"arguments":[{"id":6049,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6033,"src":"2503:8:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6048,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6073,"src":"2484:18:26","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":6050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2484:28:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6051,"nodeType":"ExpressionStatement","src":"2484:28:26"}]},"documentation":{"id":6031,"nodeType":"StructuredDocumentation","src":"2178:138:26","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","id":6053,"implemented":true,"kind":"function","modifiers":[{"id":6036,"kind":"modifierInvocation","modifierName":{"id":6035,"name":"onlyOwner","nameLocations":["2381:9:26"],"nodeType":"IdentifierPath","referencedDeclaration":5993,"src":"2381:9:26"},"nodeType":"ModifierInvocation","src":"2381:9:26"}],"name":"transferOwnership","nameLocation":"2330:17:26","nodeType":"FunctionDefinition","parameters":{"id":6034,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6033,"mutability":"mutable","name":"newOwner","nameLocation":"2356:8:26","nodeType":"VariableDeclaration","scope":6053,"src":"2348:16:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6032,"name":"address","nodeType":"ElementaryTypeName","src":"2348:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2347:18:26"},"returnParameters":{"id":6037,"nodeType":"ParameterList","parameters":[],"src":"2391:0:26"},"scope":6079,"src":"2321:198:26","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":6072,"nodeType":"Block","src":"2736:124:26","statements":[{"assignments":[6060],"declarations":[{"constant":false,"id":6060,"mutability":"mutable","name":"oldOwner","nameLocation":"2754:8:26","nodeType":"VariableDeclaration","scope":6072,"src":"2746:16:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6059,"name":"address","nodeType":"ElementaryTypeName","src":"2746:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":6062,"initialValue":{"id":6061,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5958,"src":"2765:6:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2746:25:26"},{"expression":{"id":6065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6063,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5958,"src":"2781:6:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6064,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6056,"src":"2790:8:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2781:17:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6066,"nodeType":"ExpressionStatement","src":"2781:17:26"},{"eventCall":{"arguments":[{"id":6068,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6060,"src":"2834:8:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6069,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6056,"src":"2844:8:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6067,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5964,"src":"2813:20:26","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":6070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2813:40:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6071,"nodeType":"EmitStatement","src":"2808:45:26"}]},"documentation":{"id":6054,"nodeType":"StructuredDocumentation","src":"2525:143:26","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."},"id":6073,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"2682:18:26","nodeType":"FunctionDefinition","parameters":{"id":6057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6056,"mutability":"mutable","name":"newOwner","nameLocation":"2709:8:26","nodeType":"VariableDeclaration","scope":6073,"src":"2701:16:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6055,"name":"address","nodeType":"ElementaryTypeName","src":"2701:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2700:18:26"},"returnParameters":{"id":6058,"nodeType":"ParameterList","parameters":[],"src":"2736:0:26"},"scope":6079,"src":"2673:187:26","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"constant":false,"documentation":{"id":6074,"nodeType":"StructuredDocumentation","src":"2866:254:26","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"id":6078,"mutability":"mutable","name":"__gap","nameLocation":"3145:5:26","nodeType":"VariableDeclaration","scope":6079,"src":"3125:25:26","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage","typeString":"uint256[49]"},"typeName":{"baseType":{"id":6075,"name":"uint256","nodeType":"ElementaryTypeName","src":"3125:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6077,"length":{"hexValue":"3439","id":6076,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3133:2:26","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"49"},"nodeType":"ArrayTypeName","src":"3125:11:26","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage_ptr","typeString":"uint256[49]"}},"visibility":"private"}],"scope":6080,"src":"708:2445:26","usedErrors":[],"usedEvents":[5964,6094]}],"src":"102:3052:26"},"id":26},"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","exportedSymbols":{"AddressUpgradeable":[6532],"Initializable":[6248]},"id":6249,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6081,"literals":["solidity","^","0.8",".2"],"nodeType":"PragmaDirective","src":"113:23:27"},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol","file":"../../utils/AddressUpgradeable.sol","id":6082,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6249,"sourceUnit":6533,"src":"138:44:27","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[],"canonicalName":"Initializable","contractDependencies":[],"contractKind":"contract","documentation":{"id":6083,"nodeType":"StructuredDocumentation","src":"184:2198:27","text":" @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\n external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n case an upgrade adds a module that needs to be initialized.\n For example:\n [.hljs-theme-light.nopadding]\n ```\n contract MyToken is ERC20Upgradeable {\n     function initialize() initializer public {\n         __ERC20_init(\"MyToken\", \"MTK\");\n     }\n }\n contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n     function initializeV2() reinitializer(2) public {\n         __ERC20Permit_init(\"MyToken\");\n     }\n }\n ```\n TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n [CAUTION]\n ====\n Avoid leaving a contract uninitialized.\n An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\n the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n [.hljs-theme-light.nopadding]\n ```\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() {\n     _disableInitializers();\n }\n ```\n ===="},"fullyImplemented":true,"id":6248,"linearizedBaseContracts":[6248],"name":"Initializable","nameLocation":"2401:13:27","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":6084,"nodeType":"StructuredDocumentation","src":"2421:109:27","text":" @dev Indicates that the contract has been initialized.\n @custom:oz-retyped-from bool"},"id":6086,"mutability":"mutable","name":"_initialized","nameLocation":"2549:12:27","nodeType":"VariableDeclaration","scope":6248,"src":"2535:26:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6085,"name":"uint8","nodeType":"ElementaryTypeName","src":"2535:5:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"private"},{"constant":false,"documentation":{"id":6087,"nodeType":"StructuredDocumentation","src":"2568:91:27","text":" @dev Indicates that the contract is in the process of being initialized."},"id":6089,"mutability":"mutable","name":"_initializing","nameLocation":"2677:13:27","nodeType":"VariableDeclaration","scope":6248,"src":"2664:26:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6088,"name":"bool","nodeType":"ElementaryTypeName","src":"2664:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"anonymous":false,"documentation":{"id":6090,"nodeType":"StructuredDocumentation","src":"2697:90:27","text":" @dev Triggered when the contract has been initialized or reinitialized."},"eventSelector":"7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498","id":6094,"name":"Initialized","nameLocation":"2798:11:27","nodeType":"EventDefinition","parameters":{"id":6093,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6092,"indexed":false,"mutability":"mutable","name":"version","nameLocation":"2816:7:27","nodeType":"VariableDeclaration","scope":6094,"src":"2810:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6091,"name":"uint8","nodeType":"ElementaryTypeName","src":"2810:5:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"2809:15:27"},"src":"2792:33:27"},{"body":{"id":6149,"nodeType":"Block","src":"3258:483:27","statements":[{"assignments":[6098],"declarations":[{"constant":false,"id":6098,"mutability":"mutable","name":"isTopLevelCall","nameLocation":"3273:14:27","nodeType":"VariableDeclaration","scope":6149,"src":"3268:19:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6097,"name":"bool","nodeType":"ElementaryTypeName","src":"3268:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":6101,"initialValue":{"id":6100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3290:14:27","subExpression":{"id":6099,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6089,"src":"3291:13:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"3268:36:27"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6103,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6098,"src":"3336:14:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":6106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6104,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6086,"src":"3354:12:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"31","id":6105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3369:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3354:16:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3336:34:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":6108,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3335:36:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3376:45:27","subExpression":{"arguments":[{"arguments":[{"id":6113,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3415:4:27","typeDescriptions":{"typeIdentifier":"t_contract$_Initializable_$6248","typeString":"contract Initializable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Initializable_$6248","typeString":"contract Initializable"}],"id":6112,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3407:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6111,"name":"address","nodeType":"ElementaryTypeName","src":"3407:7:27","typeDescriptions":{}}},"id":6114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3407:13:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6109,"name":"AddressUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6532,"src":"3377:18:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AddressUpgradeable_$6532_$","typeString":"type(library AddressUpgradeable)"}},"id":6110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3396:10:27","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":6266,"src":"3377:29:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":6115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3377:44:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":6119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6117,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6086,"src":"3425:12:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":6118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3441:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3425:17:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3376:66:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":6121,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3375:68:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3335:108:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564","id":6123,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3457:48:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","typeString":"literal_string \"Initializable: contract is already initialized\""},"value":"Initializable: contract is already initialized"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","typeString":"literal_string \"Initializable: contract is already initialized\""}],"id":6102,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3314:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3314:201:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6125,"nodeType":"ExpressionStatement","src":"3314:201:27"},{"expression":{"id":6128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6126,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6086,"src":"3525:12:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":6127,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3540:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3525:16:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":6129,"nodeType":"ExpressionStatement","src":"3525:16:27"},{"condition":{"id":6130,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6098,"src":"3555:14:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6136,"nodeType":"IfStatement","src":"3551:65:27","trueBody":{"id":6135,"nodeType":"Block","src":"3571:45:27","statements":[{"expression":{"id":6133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6131,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6089,"src":"3585:13:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":6132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3601:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3585:20:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6134,"nodeType":"ExpressionStatement","src":"3585:20:27"}]}},{"id":6137,"nodeType":"PlaceholderStatement","src":"3625:1:27"},{"condition":{"id":6138,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6098,"src":"3640:14:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6148,"nodeType":"IfStatement","src":"3636:99:27","trueBody":{"id":6147,"nodeType":"Block","src":"3656:79:27","statements":[{"expression":{"id":6141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6139,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6089,"src":"3670:13:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":6140,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3686:5:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"3670:21:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6142,"nodeType":"ExpressionStatement","src":"3670:21:27"},{"eventCall":{"arguments":[{"hexValue":"31","id":6144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3722:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":6143,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6094,"src":"3710:11:27","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":6145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3710:14:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6146,"nodeType":"EmitStatement","src":"3705:19:27"}]}}]},"documentation":{"id":6095,"nodeType":"StructuredDocumentation","src":"2831:399:27","text":" @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n `onlyInitializing` functions can be used to initialize parent contracts.\n Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\n constructor.\n Emits an {Initialized} event."},"id":6150,"name":"initializer","nameLocation":"3244:11:27","nodeType":"ModifierDefinition","parameters":{"id":6096,"nodeType":"ParameterList","parameters":[],"src":"3255:2:27"},"src":"3235:506:27","virtual":false,"visibility":"internal"},{"body":{"id":6182,"nodeType":"Block","src":"4852:255:27","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4870:14:27","subExpression":{"id":6156,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6089,"src":"4871:13:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":6160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6158,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6086,"src":"4888:12:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":6159,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6153,"src":"4903:7:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4888:22:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4870:40:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564","id":6162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4912:48:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","typeString":"literal_string \"Initializable: contract is already initialized\""},"value":"Initializable: contract is already initialized"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","typeString":"literal_string \"Initializable: contract is already initialized\""}],"id":6155,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4862:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4862:99:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6164,"nodeType":"ExpressionStatement","src":"4862:99:27"},{"expression":{"id":6167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6165,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6086,"src":"4971:12:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6166,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6153,"src":"4986:7:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4971:22:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":6168,"nodeType":"ExpressionStatement","src":"4971:22:27"},{"expression":{"id":6171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6169,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6089,"src":"5003:13:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":6170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5019:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"5003:20:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6172,"nodeType":"ExpressionStatement","src":"5003:20:27"},{"id":6173,"nodeType":"PlaceholderStatement","src":"5033:1:27"},{"expression":{"id":6176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6174,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6089,"src":"5044:13:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":6175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5060:5:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"5044:21:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6177,"nodeType":"ExpressionStatement","src":"5044:21:27"},{"eventCall":{"arguments":[{"id":6179,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6153,"src":"5092:7:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":6178,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6094,"src":"5080:11:27","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":6180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5080:20:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6181,"nodeType":"EmitStatement","src":"5075:25:27"}]},"documentation":{"id":6151,"nodeType":"StructuredDocumentation","src":"3747:1062:27","text":" @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n used to initialize parent contracts.\n A reinitializer may be used after the original initialization step. This is essential to configure modules that\n are added through upgrades and that require initialization.\n When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\n cannot be nested. If one is invoked in the context of another, execution will revert.\n Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\n a contract, executing them in the right order is up to the developer or operator.\n WARNING: setting the version to 255 will prevent any future reinitialization.\n Emits an {Initialized} event."},"id":6183,"name":"reinitializer","nameLocation":"4823:13:27","nodeType":"ModifierDefinition","parameters":{"id":6154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6153,"mutability":"mutable","name":"version","nameLocation":"4843:7:27","nodeType":"VariableDeclaration","scope":6183,"src":"4837:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6152,"name":"uint8","nodeType":"ElementaryTypeName","src":"4837:5:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"4836:15:27"},"src":"4814:293:27","virtual":false,"visibility":"internal"},{"body":{"id":6192,"nodeType":"Block","src":"5345:97:27","statements":[{"expression":{"arguments":[{"id":6187,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6089,"src":"5363:13:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f7420696e697469616c697a696e67","id":6188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5378:45:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b","typeString":"literal_string \"Initializable: contract is not initializing\""},"value":"Initializable: contract is not initializing"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b","typeString":"literal_string \"Initializable: contract is not initializing\""}],"id":6186,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5355:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5355:69:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6190,"nodeType":"ExpressionStatement","src":"5355:69:27"},{"id":6191,"nodeType":"PlaceholderStatement","src":"5434:1:27"}]},"documentation":{"id":6184,"nodeType":"StructuredDocumentation","src":"5113:199:27","text":" @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n {initializer} and {reinitializer} modifiers, directly or indirectly."},"id":6193,"name":"onlyInitializing","nameLocation":"5326:16:27","nodeType":"ModifierDefinition","parameters":{"id":6185,"nodeType":"ParameterList","parameters":[],"src":"5342:2:27"},"src":"5317:125:27","virtual":false,"visibility":"internal"},{"body":{"id":6228,"nodeType":"Block","src":"5977:230:27","statements":[{"expression":{"arguments":[{"id":6199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5995:14:27","subExpression":{"id":6198,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6089,"src":"5996:13:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320696e697469616c697a696e67","id":6200,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6011:41:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a","typeString":"literal_string \"Initializable: contract is initializing\""},"value":"Initializable: contract is initializing"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a","typeString":"literal_string \"Initializable: contract is initializing\""}],"id":6197,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5987:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5987:66:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6202,"nodeType":"ExpressionStatement","src":"5987:66:27"},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":6209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6203,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6086,"src":"6067:12:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"arguments":[{"id":6206,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6087:5:27","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":6205,"name":"uint8","nodeType":"ElementaryTypeName","src":"6087:5:27","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":6204,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6082:4:27","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":6207,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6082:11:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":6208,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6094:3:27","memberName":"max","nodeType":"MemberAccess","src":"6082:15:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"6067:30:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6227,"nodeType":"IfStatement","src":"6063:138:27","trueBody":{"id":6226,"nodeType":"Block","src":"6099:102:27","statements":[{"expression":{"id":6216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6210,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6086,"src":"6113:12:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"id":6213,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6133:5:27","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":6212,"name":"uint8","nodeType":"ElementaryTypeName","src":"6133:5:27","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":6211,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6128:4:27","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":6214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6128:11:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":6215,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6140:3:27","memberName":"max","nodeType":"MemberAccess","src":"6128:15:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"6113:30:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":6217,"nodeType":"ExpressionStatement","src":"6113:30:27"},{"eventCall":{"arguments":[{"expression":{"arguments":[{"id":6221,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6179:5:27","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":6220,"name":"uint8","nodeType":"ElementaryTypeName","src":"6179:5:27","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":6219,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6174:4:27","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":6222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6174:11:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":6223,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6186:3:27","memberName":"max","nodeType":"MemberAccess","src":"6174:15:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":6218,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6094,"src":"6162:11:27","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":6224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6162:28:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6225,"nodeType":"EmitStatement","src":"6157:33:27"}]}}]},"documentation":{"id":6194,"nodeType":"StructuredDocumentation","src":"5448:475:27","text":" @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\n Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\n to any version. It is recommended to use this to lock implementation contracts that are designed to be called\n through proxies.\n Emits an {Initialized} event the first time it is successfully executed."},"id":6229,"implemented":true,"kind":"function","modifiers":[],"name":"_disableInitializers","nameLocation":"5937:20:27","nodeType":"FunctionDefinition","parameters":{"id":6195,"nodeType":"ParameterList","parameters":[],"src":"5957:2:27"},"returnParameters":{"id":6196,"nodeType":"ParameterList","parameters":[],"src":"5977:0:27"},"scope":6248,"src":"5928:279:27","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6237,"nodeType":"Block","src":"6381:36:27","statements":[{"expression":{"id":6235,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6086,"src":"6398:12:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":6234,"id":6236,"nodeType":"Return","src":"6391:19:27"}]},"documentation":{"id":6230,"nodeType":"StructuredDocumentation","src":"6213:99:27","text":" @dev Returns the highest version that has been initialized. See {reinitializer}."},"id":6238,"implemented":true,"kind":"function","modifiers":[],"name":"_getInitializedVersion","nameLocation":"6326:22:27","nodeType":"FunctionDefinition","parameters":{"id":6231,"nodeType":"ParameterList","parameters":[],"src":"6348:2:27"},"returnParameters":{"id":6234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6233,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6238,"src":"6374:5:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6232,"name":"uint8","nodeType":"ElementaryTypeName","src":"6374:5:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"6373:7:27"},"scope":6248,"src":"6317:100:27","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":6246,"nodeType":"Block","src":"6589:37:27","statements":[{"expression":{"id":6244,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6089,"src":"6606:13:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6243,"id":6245,"nodeType":"Return","src":"6599:20:27"}]},"documentation":{"id":6239,"nodeType":"StructuredDocumentation","src":"6423:105:27","text":" @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}."},"id":6247,"implemented":true,"kind":"function","modifiers":[],"name":"_isInitializing","nameLocation":"6542:15:27","nodeType":"FunctionDefinition","parameters":{"id":6240,"nodeType":"ParameterList","parameters":[],"src":"6557:2:27"},"returnParameters":{"id":6243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6242,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6247,"src":"6583:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6241,"name":"bool","nodeType":"ElementaryTypeName","src":"6583:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6582:6:27"},"scope":6248,"src":"6533:93:27","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":6249,"src":"2383:4245:27","usedErrors":[],"usedEvents":[6094]}],"src":"113:6516:27"},"id":27},"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol","exportedSymbols":{"AddressUpgradeable":[6532]},"id":6533,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6250,"literals":["solidity","^","0.8",".1"],"nodeType":"PragmaDirective","src":"101:23:28"},{"abstract":false,"baseContracts":[],"canonicalName":"AddressUpgradeable","contractDependencies":[],"contractKind":"library","documentation":{"id":6251,"nodeType":"StructuredDocumentation","src":"126:67:28","text":" @dev Collection of functions related to the address type"},"fullyImplemented":true,"id":6532,"linearizedBaseContracts":[6532],"name":"AddressUpgradeable","nameLocation":"202:18:28","nodeType":"ContractDefinition","nodes":[{"body":{"id":6265,"nodeType":"Block","src":"1252:254:28","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":6259,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6254,"src":"1476:7:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1484:4:28","memberName":"code","nodeType":"MemberAccess","src":"1476:12:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":6261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1489:6:28","memberName":"length","nodeType":"MemberAccess","src":"1476:19:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":6262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1498:1:28","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1476:23:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6258,"id":6264,"nodeType":"Return","src":"1469:30:28"}]},"documentation":{"id":6252,"nodeType":"StructuredDocumentation","src":"227:954:28","text":" @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n  - an externally-owned account\n  - a contract in construction\n  - an address where a contract will be created\n  - an address where a contract lived, but was destroyed\n ====\n [IMPORTANT]\n ====\n You shouldn't rely on `isContract` to protect against flash loan attacks!\n Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n constructor.\n ===="},"id":6266,"implemented":true,"kind":"function","modifiers":[],"name":"isContract","nameLocation":"1195:10:28","nodeType":"FunctionDefinition","parameters":{"id":6255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6254,"mutability":"mutable","name":"account","nameLocation":"1214:7:28","nodeType":"VariableDeclaration","scope":6266,"src":"1206:15:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6253,"name":"address","nodeType":"ElementaryTypeName","src":"1206:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1205:17:28"},"returnParameters":{"id":6258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6257,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6266,"src":"1246:4:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6256,"name":"bool","nodeType":"ElementaryTypeName","src":"1246:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1245:6:28"},"scope":6532,"src":"1186:320:28","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":6299,"nodeType":"Block","src":"2494:241:28","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":6277,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2520:4:28","typeDescriptions":{"typeIdentifier":"t_contract$_AddressUpgradeable_$6532","typeString":"library AddressUpgradeable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AddressUpgradeable_$6532","typeString":"library AddressUpgradeable"}],"id":6276,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2512:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6275,"name":"address","nodeType":"ElementaryTypeName","src":"2512:7:28","typeDescriptions":{}}},"id":6278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2512:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2526:7:28","memberName":"balance","nodeType":"MemberAccess","src":"2512:21:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":6280,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6271,"src":"2537:6:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2512:31:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e6365","id":6282,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2545:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9","typeString":"literal_string \"Address: insufficient balance\""},"value":"Address: insufficient balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9","typeString":"literal_string \"Address: insufficient balance\""}],"id":6274,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2504:7:28","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2504:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6284,"nodeType":"ExpressionStatement","src":"2504:73:28"},{"assignments":[6286,null],"declarations":[{"constant":false,"id":6286,"mutability":"mutable","name":"success","nameLocation":"2594:7:28","nodeType":"VariableDeclaration","scope":6299,"src":"2589:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6285,"name":"bool","nodeType":"ElementaryTypeName","src":"2589:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":6293,"initialValue":{"arguments":[{"hexValue":"","id":6291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2637:2:28","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":6287,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6269,"src":"2607:9:28","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":6288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2617:4:28","memberName":"call","nodeType":"MemberAccess","src":"2607:14:28","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":6290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":6289,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6271,"src":"2629:6:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2607:29:28","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":6292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2607:33:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2588:52:28"},{"expression":{"arguments":[{"id":6295,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6286,"src":"2658:7:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564","id":6296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2667:60:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae","typeString":"literal_string \"Address: unable to send value, recipient may have reverted\""},"value":"Address: unable to send value, recipient may have reverted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae","typeString":"literal_string \"Address: unable to send value, recipient may have reverted\""}],"id":6294,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2650:7:28","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2650:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6298,"nodeType":"ExpressionStatement","src":"2650:78:28"}]},"documentation":{"id":6267,"nodeType":"StructuredDocumentation","src":"1512:906:28","text":" @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]."},"id":6300,"implemented":true,"kind":"function","modifiers":[],"name":"sendValue","nameLocation":"2432:9:28","nodeType":"FunctionDefinition","parameters":{"id":6272,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6269,"mutability":"mutable","name":"recipient","nameLocation":"2458:9:28","nodeType":"VariableDeclaration","scope":6300,"src":"2442:25:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":6268,"name":"address","nodeType":"ElementaryTypeName","src":"2442:15:28","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":6271,"mutability":"mutable","name":"amount","nameLocation":"2477:6:28","nodeType":"VariableDeclaration","scope":6300,"src":"2469:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6270,"name":"uint256","nodeType":"ElementaryTypeName","src":"2469:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2441:43:28"},"returnParameters":{"id":6273,"nodeType":"ParameterList","parameters":[],"src":"2494:0:28"},"scope":6532,"src":"2423:312:28","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6317,"nodeType":"Block","src":"3566:96:28","statements":[{"expression":{"arguments":[{"id":6311,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6303,"src":"3605:6:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6312,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6305,"src":"3613:4:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":6313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3619:1:28","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564","id":6314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3622:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df","typeString":"literal_string \"Address: low-level call failed\""},"value":"Address: low-level call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df","typeString":"literal_string \"Address: low-level call failed\""}],"id":6310,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[6358,6402],"referencedDeclaration":6402,"src":"3583:21:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":6315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3583:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":6309,"id":6316,"nodeType":"Return","src":"3576:79:28"}]},"documentation":{"id":6301,"nodeType":"StructuredDocumentation","src":"2741:731:28","text":" @dev Performs a Solidity function call using a low level `call`. A\n plain `call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._"},"id":6318,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3486:12:28","nodeType":"FunctionDefinition","parameters":{"id":6306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6303,"mutability":"mutable","name":"target","nameLocation":"3507:6:28","nodeType":"VariableDeclaration","scope":6318,"src":"3499:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6302,"name":"address","nodeType":"ElementaryTypeName","src":"3499:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6305,"mutability":"mutable","name":"data","nameLocation":"3528:4:28","nodeType":"VariableDeclaration","scope":6318,"src":"3515:17:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6304,"name":"bytes","nodeType":"ElementaryTypeName","src":"3515:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3498:35:28"},"returnParameters":{"id":6309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6308,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6318,"src":"3552:12:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6307,"name":"bytes","nodeType":"ElementaryTypeName","src":"3552:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3551:14:28"},"scope":6532,"src":"3477:185:28","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6337,"nodeType":"Block","src":"4031:76:28","statements":[{"expression":{"arguments":[{"id":6331,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6321,"src":"4070:6:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6332,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6323,"src":"4078:4:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":6333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4084:1:28","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":6334,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6325,"src":"4087:12:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":6330,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[6358,6402],"referencedDeclaration":6402,"src":"4048:21:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":6335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4048:52:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":6329,"id":6336,"nodeType":"Return","src":"4041:59:28"}]},"documentation":{"id":6319,"nodeType":"StructuredDocumentation","src":"3668:211:28","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"},"id":6338,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3893:12:28","nodeType":"FunctionDefinition","parameters":{"id":6326,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6321,"mutability":"mutable","name":"target","nameLocation":"3923:6:28","nodeType":"VariableDeclaration","scope":6338,"src":"3915:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6320,"name":"address","nodeType":"ElementaryTypeName","src":"3915:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6323,"mutability":"mutable","name":"data","nameLocation":"3952:4:28","nodeType":"VariableDeclaration","scope":6338,"src":"3939:17:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6322,"name":"bytes","nodeType":"ElementaryTypeName","src":"3939:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6325,"mutability":"mutable","name":"errorMessage","nameLocation":"3980:12:28","nodeType":"VariableDeclaration","scope":6338,"src":"3966:26:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6324,"name":"string","nodeType":"ElementaryTypeName","src":"3966:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3905:93:28"},"returnParameters":{"id":6329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6328,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6338,"src":"4017:12:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6327,"name":"bytes","nodeType":"ElementaryTypeName","src":"4017:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4016:14:28"},"scope":6532,"src":"3884:223:28","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6357,"nodeType":"Block","src":"4612:111:28","statements":[{"expression":{"arguments":[{"id":6351,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6341,"src":"4651:6:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6352,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6343,"src":"4659:4:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":6353,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6345,"src":"4665:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564","id":6354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4672:43:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc","typeString":"literal_string \"Address: low-level call with value failed\""},"value":"Address: low-level call with value failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc","typeString":"literal_string \"Address: low-level call with value failed\""}],"id":6350,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[6358,6402],"referencedDeclaration":6402,"src":"4629:21:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":6355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4629:87:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":6349,"id":6356,"nodeType":"Return","src":"4622:94:28"}]},"documentation":{"id":6339,"nodeType":"StructuredDocumentation","src":"4113:351:28","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._"},"id":6358,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4478:21:28","nodeType":"FunctionDefinition","parameters":{"id":6346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6341,"mutability":"mutable","name":"target","nameLocation":"4517:6:28","nodeType":"VariableDeclaration","scope":6358,"src":"4509:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6340,"name":"address","nodeType":"ElementaryTypeName","src":"4509:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6343,"mutability":"mutable","name":"data","nameLocation":"4546:4:28","nodeType":"VariableDeclaration","scope":6358,"src":"4533:17:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6342,"name":"bytes","nodeType":"ElementaryTypeName","src":"4533:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6345,"mutability":"mutable","name":"value","nameLocation":"4568:5:28","nodeType":"VariableDeclaration","scope":6358,"src":"4560:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6344,"name":"uint256","nodeType":"ElementaryTypeName","src":"4560:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4499:80:28"},"returnParameters":{"id":6349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6348,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6358,"src":"4598:12:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6347,"name":"bytes","nodeType":"ElementaryTypeName","src":"4598:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4597:14:28"},"scope":6532,"src":"4469:254:28","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6401,"nodeType":"Block","src":"5150:267:28","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":6375,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5176:4:28","typeDescriptions":{"typeIdentifier":"t_contract$_AddressUpgradeable_$6532","typeString":"library AddressUpgradeable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AddressUpgradeable_$6532","typeString":"library AddressUpgradeable"}],"id":6374,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5168:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6373,"name":"address","nodeType":"ElementaryTypeName","src":"5168:7:28","typeDescriptions":{}}},"id":6376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5168:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5182:7:28","memberName":"balance","nodeType":"MemberAccess","src":"5168:21:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":6378,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6365,"src":"5193:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5168:30:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c","id":6380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5200:40:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c","typeString":"literal_string \"Address: insufficient balance for call\""},"value":"Address: insufficient balance for call"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c","typeString":"literal_string \"Address: insufficient balance for call\""}],"id":6372,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5160:7:28","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5160:81:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6382,"nodeType":"ExpressionStatement","src":"5160:81:28"},{"assignments":[6384,6386],"declarations":[{"constant":false,"id":6384,"mutability":"mutable","name":"success","nameLocation":"5257:7:28","nodeType":"VariableDeclaration","scope":6401,"src":"5252:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6383,"name":"bool","nodeType":"ElementaryTypeName","src":"5252:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6386,"mutability":"mutable","name":"returndata","nameLocation":"5279:10:28","nodeType":"VariableDeclaration","scope":6401,"src":"5266:23:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6385,"name":"bytes","nodeType":"ElementaryTypeName","src":"5266:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6393,"initialValue":{"arguments":[{"id":6391,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6363,"src":"5319:4:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":6387,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6361,"src":"5293:6:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5300:4:28","memberName":"call","nodeType":"MemberAccess","src":"5293:11:28","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":6390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":6389,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6365,"src":"5312:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"5293:25:28","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":6392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5293:31:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5251:73:28"},{"expression":{"arguments":[{"id":6395,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6361,"src":"5368:6:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6396,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6384,"src":"5376:7:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6397,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6386,"src":"5385:10:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":6398,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6367,"src":"5397:12:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":6394,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6487,"src":"5341:26:28","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory,string memory) view returns (bytes memory)"}},"id":6399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5341:69:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":6371,"id":6400,"nodeType":"Return","src":"5334:76:28"}]},"documentation":{"id":6359,"nodeType":"StructuredDocumentation","src":"4729:237:28","text":" @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"},"id":6402,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4980:21:28","nodeType":"FunctionDefinition","parameters":{"id":6368,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6361,"mutability":"mutable","name":"target","nameLocation":"5019:6:28","nodeType":"VariableDeclaration","scope":6402,"src":"5011:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6360,"name":"address","nodeType":"ElementaryTypeName","src":"5011:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6363,"mutability":"mutable","name":"data","nameLocation":"5048:4:28","nodeType":"VariableDeclaration","scope":6402,"src":"5035:17:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6362,"name":"bytes","nodeType":"ElementaryTypeName","src":"5035:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6365,"mutability":"mutable","name":"value","nameLocation":"5070:5:28","nodeType":"VariableDeclaration","scope":6402,"src":"5062:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6364,"name":"uint256","nodeType":"ElementaryTypeName","src":"5062:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6367,"mutability":"mutable","name":"errorMessage","nameLocation":"5099:12:28","nodeType":"VariableDeclaration","scope":6402,"src":"5085:26:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6366,"name":"string","nodeType":"ElementaryTypeName","src":"5085:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5001:116:28"},"returnParameters":{"id":6371,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6370,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6402,"src":"5136:12:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6369,"name":"bytes","nodeType":"ElementaryTypeName","src":"5136:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5135:14:28"},"scope":6532,"src":"4971:446:28","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6418,"nodeType":"Block","src":"5694:97:28","statements":[{"expression":{"arguments":[{"id":6413,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6405,"src":"5730:6:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6414,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6407,"src":"5738:4:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564","id":6415,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5744:39:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0","typeString":"literal_string \"Address: low-level static call failed\""},"value":"Address: low-level static call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0","typeString":"literal_string \"Address: low-level static call failed\""}],"id":6412,"name":"functionStaticCall","nodeType":"Identifier","overloadedDeclarations":[6419,6448],"referencedDeclaration":6448,"src":"5711:18:28","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,string memory) view returns (bytes memory)"}},"id":6416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5711:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":6411,"id":6417,"nodeType":"Return","src":"5704:80:28"}]},"documentation":{"id":6403,"nodeType":"StructuredDocumentation","src":"5423:166:28","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":6419,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"5603:18:28","nodeType":"FunctionDefinition","parameters":{"id":6408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6405,"mutability":"mutable","name":"target","nameLocation":"5630:6:28","nodeType":"VariableDeclaration","scope":6419,"src":"5622:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6404,"name":"address","nodeType":"ElementaryTypeName","src":"5622:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6407,"mutability":"mutable","name":"data","nameLocation":"5651:4:28","nodeType":"VariableDeclaration","scope":6419,"src":"5638:17:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6406,"name":"bytes","nodeType":"ElementaryTypeName","src":"5638:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5621:35:28"},"returnParameters":{"id":6411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6410,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6419,"src":"5680:12:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6409,"name":"bytes","nodeType":"ElementaryTypeName","src":"5680:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5679:14:28"},"scope":6532,"src":"5594:197:28","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":6447,"nodeType":"Block","src":"6133:168:28","statements":[{"assignments":[6432,6434],"declarations":[{"constant":false,"id":6432,"mutability":"mutable","name":"success","nameLocation":"6149:7:28","nodeType":"VariableDeclaration","scope":6447,"src":"6144:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6431,"name":"bool","nodeType":"ElementaryTypeName","src":"6144:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6434,"mutability":"mutable","name":"returndata","nameLocation":"6171:10:28","nodeType":"VariableDeclaration","scope":6447,"src":"6158:23:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6433,"name":"bytes","nodeType":"ElementaryTypeName","src":"6158:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6439,"initialValue":{"arguments":[{"id":6437,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6424,"src":"6203:4:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":6435,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6422,"src":"6185:6:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6192:10:28","memberName":"staticcall","nodeType":"MemberAccess","src":"6185:17:28","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":6438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6185:23:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6143:65:28"},{"expression":{"arguments":[{"id":6441,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6422,"src":"6252:6:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6442,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6432,"src":"6260:7:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6443,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6434,"src":"6269:10:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":6444,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6426,"src":"6281:12:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":6440,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6487,"src":"6225:26:28","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory,string memory) view returns (bytes memory)"}},"id":6445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6225:69:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":6430,"id":6446,"nodeType":"Return","src":"6218:76:28"}]},"documentation":{"id":6420,"nodeType":"StructuredDocumentation","src":"5797:173:28","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":6448,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"5984:18:28","nodeType":"FunctionDefinition","parameters":{"id":6427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6422,"mutability":"mutable","name":"target","nameLocation":"6020:6:28","nodeType":"VariableDeclaration","scope":6448,"src":"6012:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6421,"name":"address","nodeType":"ElementaryTypeName","src":"6012:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6424,"mutability":"mutable","name":"data","nameLocation":"6049:4:28","nodeType":"VariableDeclaration","scope":6448,"src":"6036:17:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6423,"name":"bytes","nodeType":"ElementaryTypeName","src":"6036:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6426,"mutability":"mutable","name":"errorMessage","nameLocation":"6077:12:28","nodeType":"VariableDeclaration","scope":6448,"src":"6063:26:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6425,"name":"string","nodeType":"ElementaryTypeName","src":"6063:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6002:93:28"},"returnParameters":{"id":6430,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6429,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6448,"src":"6119:12:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6428,"name":"bytes","nodeType":"ElementaryTypeName","src":"6119:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6118:14:28"},"scope":6532,"src":"5975:326:28","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":6486,"nodeType":"Block","src":"6783:434:28","statements":[{"condition":{"id":6462,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6453,"src":"6797:7:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":6484,"nodeType":"Block","src":"7153:58:28","statements":[{"expression":{"arguments":[{"id":6480,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6455,"src":"7175:10:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":6481,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6457,"src":"7187:12:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":6479,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6531,"src":"7167:7:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory,string memory) pure"}},"id":6482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7167:33:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6483,"nodeType":"ExpressionStatement","src":"7167:33:28"}]},"id":6485,"nodeType":"IfStatement","src":"6793:418:28","trueBody":{"id":6478,"nodeType":"Block","src":"6806:341:28","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6463,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6455,"src":"6824:10:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":6464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6835:6:28","memberName":"length","nodeType":"MemberAccess","src":"6824:17:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6845:1:28","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6824:22:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6475,"nodeType":"IfStatement","src":"6820:286:28","trueBody":{"id":6474,"nodeType":"Block","src":"6848:258:28","statements":[{"expression":{"arguments":[{"arguments":[{"id":6469,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6451,"src":"7050:6:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6468,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6266,"src":"7039:10:28","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":6470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7039:18:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","id":6471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7059:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad","typeString":"literal_string \"Address: call to non-contract\""},"value":"Address: call to non-contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad","typeString":"literal_string \"Address: call to non-contract\""}],"id":6467,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7031:7:28","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7031:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6473,"nodeType":"ExpressionStatement","src":"7031:60:28"}]}},{"expression":{"id":6476,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6455,"src":"7126:10:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":6461,"id":6477,"nodeType":"Return","src":"7119:17:28"}]}}]},"documentation":{"id":6449,"nodeType":"StructuredDocumentation","src":"6307:277:28","text":" @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\n the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\n _Available since v4.8._"},"id":6487,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResultFromTarget","nameLocation":"6598:26:28","nodeType":"FunctionDefinition","parameters":{"id":6458,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6451,"mutability":"mutable","name":"target","nameLocation":"6642:6:28","nodeType":"VariableDeclaration","scope":6487,"src":"6634:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6450,"name":"address","nodeType":"ElementaryTypeName","src":"6634:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6453,"mutability":"mutable","name":"success","nameLocation":"6663:7:28","nodeType":"VariableDeclaration","scope":6487,"src":"6658:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6452,"name":"bool","nodeType":"ElementaryTypeName","src":"6658:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6455,"mutability":"mutable","name":"returndata","nameLocation":"6693:10:28","nodeType":"VariableDeclaration","scope":6487,"src":"6680:23:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6454,"name":"bytes","nodeType":"ElementaryTypeName","src":"6680:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6457,"mutability":"mutable","name":"errorMessage","nameLocation":"6727:12:28","nodeType":"VariableDeclaration","scope":6487,"src":"6713:26:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6456,"name":"string","nodeType":"ElementaryTypeName","src":"6713:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6624:121:28"},"returnParameters":{"id":6461,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6460,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6487,"src":"6769:12:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6459,"name":"bytes","nodeType":"ElementaryTypeName","src":"6769:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6768:14:28"},"scope":6532,"src":"6589:628:28","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":6510,"nodeType":"Block","src":"7598:135:28","statements":[{"condition":{"id":6499,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6490,"src":"7612:7:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":6508,"nodeType":"Block","src":"7669:58:28","statements":[{"expression":{"arguments":[{"id":6504,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6492,"src":"7691:10:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":6505,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6494,"src":"7703:12:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":6503,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6531,"src":"7683:7:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory,string memory) pure"}},"id":6506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7683:33:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6507,"nodeType":"ExpressionStatement","src":"7683:33:28"}]},"id":6509,"nodeType":"IfStatement","src":"7608:119:28","trueBody":{"id":6502,"nodeType":"Block","src":"7621:42:28","statements":[{"expression":{"id":6500,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6492,"src":"7642:10:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":6498,"id":6501,"nodeType":"Return","src":"7635:17:28"}]}}]},"documentation":{"id":6488,"nodeType":"StructuredDocumentation","src":"7223:210:28","text":" @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\n revert reason or using the provided one.\n _Available since v4.3._"},"id":6511,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResult","nameLocation":"7447:16:28","nodeType":"FunctionDefinition","parameters":{"id":6495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6490,"mutability":"mutable","name":"success","nameLocation":"7478:7:28","nodeType":"VariableDeclaration","scope":6511,"src":"7473:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6489,"name":"bool","nodeType":"ElementaryTypeName","src":"7473:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6492,"mutability":"mutable","name":"returndata","nameLocation":"7508:10:28","nodeType":"VariableDeclaration","scope":6511,"src":"7495:23:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6491,"name":"bytes","nodeType":"ElementaryTypeName","src":"7495:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6494,"mutability":"mutable","name":"errorMessage","nameLocation":"7542:12:28","nodeType":"VariableDeclaration","scope":6511,"src":"7528:26:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6493,"name":"string","nodeType":"ElementaryTypeName","src":"7528:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7463:97:28"},"returnParameters":{"id":6498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6497,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6511,"src":"7584:12:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6496,"name":"bytes","nodeType":"ElementaryTypeName","src":"7584:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7583:14:28"},"scope":6532,"src":"7438:295:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6530,"nodeType":"Block","src":"7822:457:28","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6518,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6513,"src":"7898:10:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":6519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7909:6:28","memberName":"length","nodeType":"MemberAccess","src":"7898:17:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":6520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7918:1:28","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7898:21:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":6528,"nodeType":"Block","src":"8228:45:28","statements":[{"expression":{"arguments":[{"id":6525,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6515,"src":"8249:12:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":6524,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"8242:6:28","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":6526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8242:20:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6527,"nodeType":"ExpressionStatement","src":"8242:20:28"}]},"id":6529,"nodeType":"IfStatement","src":"7894:379:28","trueBody":{"id":6523,"nodeType":"Block","src":"7921:301:28","statements":[{"AST":{"nativeSrc":"8079:133:28","nodeType":"YulBlock","src":"8079:133:28","statements":[{"nativeSrc":"8097:40:28","nodeType":"YulVariableDeclaration","src":"8097:40:28","value":{"arguments":[{"name":"returndata","nativeSrc":"8126:10:28","nodeType":"YulIdentifier","src":"8126:10:28"}],"functionName":{"name":"mload","nativeSrc":"8120:5:28","nodeType":"YulIdentifier","src":"8120:5:28"},"nativeSrc":"8120:17:28","nodeType":"YulFunctionCall","src":"8120:17:28"},"variables":[{"name":"returndata_size","nativeSrc":"8101:15:28","nodeType":"YulTypedName","src":"8101:15:28","type":""}]},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"8165:2:28","nodeType":"YulLiteral","src":"8165:2:28","type":"","value":"32"},{"name":"returndata","nativeSrc":"8169:10:28","nodeType":"YulIdentifier","src":"8169:10:28"}],"functionName":{"name":"add","nativeSrc":"8161:3:28","nodeType":"YulIdentifier","src":"8161:3:28"},"nativeSrc":"8161:19:28","nodeType":"YulFunctionCall","src":"8161:19:28"},{"name":"returndata_size","nativeSrc":"8182:15:28","nodeType":"YulIdentifier","src":"8182:15:28"}],"functionName":{"name":"revert","nativeSrc":"8154:6:28","nodeType":"YulIdentifier","src":"8154:6:28"},"nativeSrc":"8154:44:28","nodeType":"YulFunctionCall","src":"8154:44:28"},"nativeSrc":"8154:44:28","nodeType":"YulExpressionStatement","src":"8154:44:28"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":6513,"isOffset":false,"isSlot":false,"src":"8126:10:28","valueSize":1},{"declaration":6513,"isOffset":false,"isSlot":false,"src":"8169:10:28","valueSize":1}],"id":6522,"nodeType":"InlineAssembly","src":"8070:142:28"}]}}]},"id":6531,"implemented":true,"kind":"function","modifiers":[],"name":"_revert","nameLocation":"7748:7:28","nodeType":"FunctionDefinition","parameters":{"id":6516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6513,"mutability":"mutable","name":"returndata","nameLocation":"7769:10:28","nodeType":"VariableDeclaration","scope":6531,"src":"7756:23:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6512,"name":"bytes","nodeType":"ElementaryTypeName","src":"7756:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6515,"mutability":"mutable","name":"errorMessage","nameLocation":"7795:12:28","nodeType":"VariableDeclaration","scope":6531,"src":"7781:26:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6514,"name":"string","nodeType":"ElementaryTypeName","src":"7781:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7755:53:28"},"returnParameters":{"id":6517,"nodeType":"ParameterList","parameters":[],"src":"7822:0:28"},"scope":6532,"src":"7739:540:28","stateMutability":"pure","virtual":false,"visibility":"private"}],"scope":6533,"src":"194:8087:28","usedErrors":[],"usedEvents":[]}],"src":"101:8181:28"},"id":28},"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol","exportedSymbols":{"AddressUpgradeable":[6532],"ContextUpgradeable":[6574],"Initializable":[6248]},"id":6575,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6534,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"86:23:29"},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"../proxy/utils/Initializable.sol","id":6535,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6575,"sourceUnit":6249,"src":"110:42:29","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":6537,"name":"Initializable","nameLocations":["691:13:29"],"nodeType":"IdentifierPath","referencedDeclaration":6248,"src":"691:13:29"},"id":6538,"nodeType":"InheritanceSpecifier","src":"691:13:29"}],"canonicalName":"ContextUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":6536,"nodeType":"StructuredDocumentation","src":"154:496:29","text":" @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts."},"fullyImplemented":true,"id":6574,"linearizedBaseContracts":[6574,6248],"name":"ContextUpgradeable","nameLocation":"669:18:29","nodeType":"ContractDefinition","nodes":[{"body":{"id":6543,"nodeType":"Block","src":"763:7:29","statements":[]},"id":6544,"implemented":true,"kind":"function","modifiers":[{"id":6541,"kind":"modifierInvocation","modifierName":{"id":6540,"name":"onlyInitializing","nameLocations":["746:16:29"],"nodeType":"IdentifierPath","referencedDeclaration":6193,"src":"746:16:29"},"nodeType":"ModifierInvocation","src":"746:16:29"}],"name":"__Context_init","nameLocation":"720:14:29","nodeType":"FunctionDefinition","parameters":{"id":6539,"nodeType":"ParameterList","parameters":[],"src":"734:2:29"},"returnParameters":{"id":6542,"nodeType":"ParameterList","parameters":[],"src":"763:0:29"},"scope":6574,"src":"711:59:29","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6549,"nodeType":"Block","src":"838:7:29","statements":[]},"id":6550,"implemented":true,"kind":"function","modifiers":[{"id":6547,"kind":"modifierInvocation","modifierName":{"id":6546,"name":"onlyInitializing","nameLocations":["821:16:29"],"nodeType":"IdentifierPath","referencedDeclaration":6193,"src":"821:16:29"},"nodeType":"ModifierInvocation","src":"821:16:29"}],"name":"__Context_init_unchained","nameLocation":"785:24:29","nodeType":"FunctionDefinition","parameters":{"id":6545,"nodeType":"ParameterList","parameters":[],"src":"809:2:29"},"returnParameters":{"id":6548,"nodeType":"ParameterList","parameters":[],"src":"838:0:29"},"scope":6574,"src":"776:69:29","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6558,"nodeType":"Block","src":"912:34:29","statements":[{"expression":{"expression":{"id":6555,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"929:3:29","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"933:6:29","memberName":"sender","nodeType":"MemberAccess","src":"929:10:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":6554,"id":6557,"nodeType":"Return","src":"922:17:29"}]},"id":6559,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"859:10:29","nodeType":"FunctionDefinition","parameters":{"id":6551,"nodeType":"ParameterList","parameters":[],"src":"869:2:29"},"returnParameters":{"id":6554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6553,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6559,"src":"903:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6552,"name":"address","nodeType":"ElementaryTypeName","src":"903:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"902:9:29"},"scope":6574,"src":"850:96:29","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":6567,"nodeType":"Block","src":"1019:32:29","statements":[{"expression":{"expression":{"id":6564,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1036:3:29","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1040:4:29","memberName":"data","nodeType":"MemberAccess","src":"1036:8:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":6563,"id":6566,"nodeType":"Return","src":"1029:15:29"}]},"id":6568,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"961:8:29","nodeType":"FunctionDefinition","parameters":{"id":6560,"nodeType":"ParameterList","parameters":[],"src":"969:2:29"},"returnParameters":{"id":6563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6562,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6568,"src":"1003:14:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":6561,"name":"bytes","nodeType":"ElementaryTypeName","src":"1003:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1002:16:29"},"scope":6574,"src":"952:99:29","stateMutability":"view","virtual":true,"visibility":"internal"},{"constant":false,"documentation":{"id":6569,"nodeType":"StructuredDocumentation","src":"1057:254:29","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"id":6573,"mutability":"mutable","name":"__gap","nameLocation":"1336:5:29","nodeType":"VariableDeclaration","scope":6574,"src":"1316:25:29","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage","typeString":"uint256[50]"},"typeName":{"baseType":{"id":6570,"name":"uint256","nodeType":"ElementaryTypeName","src":"1316:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6572,"length":{"hexValue":"3530","id":6571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1324:2:29","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"nodeType":"ArrayTypeName","src":"1316:11:29","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage_ptr","typeString":"uint256[50]"}},"visibility":"private"}],"scope":6575,"src":"651:693:29","usedErrors":[],"usedEvents":[6094]}],"src":"86:1259:29"},"id":29},"@openzeppelin/contracts/access/AccessControl.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/AccessControl.sol","exportedSymbols":{"AccessControl":[6890],"Context":[8099],"ERC165":[8352],"IAccessControl":[6963],"IERC165":[8364],"Math":[9230],"SignedMath":[10876],"Strings":[8328]},"id":6891,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6576,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"108:23:30"},{"absolutePath":"@openzeppelin/contracts/access/IAccessControl.sol","file":"./IAccessControl.sol","id":6577,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6891,"sourceUnit":6964,"src":"133:30:30","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../utils/Context.sol","id":6578,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6891,"sourceUnit":8100,"src":"164:30:30","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","file":"../utils/Strings.sol","id":6579,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6891,"sourceUnit":8329,"src":"195:30:30","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","file":"../utils/introspection/ERC165.sol","id":6580,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6891,"sourceUnit":8353,"src":"226:43:30","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":6582,"name":"Context","nameLocations":["1967:7:30"],"nodeType":"IdentifierPath","referencedDeclaration":8099,"src":"1967:7:30"},"id":6583,"nodeType":"InheritanceSpecifier","src":"1967:7:30"},{"baseName":{"id":6584,"name":"IAccessControl","nameLocations":["1976:14:30"],"nodeType":"IdentifierPath","referencedDeclaration":6963,"src":"1976:14:30"},"id":6585,"nodeType":"InheritanceSpecifier","src":"1976:14:30"},{"baseName":{"id":6586,"name":"ERC165","nameLocations":["1992:6:30"],"nodeType":"IdentifierPath","referencedDeclaration":8352,"src":"1992:6:30"},"id":6587,"nodeType":"InheritanceSpecifier","src":"1992:6:30"}],"canonicalName":"AccessControl","contractDependencies":[],"contractKind":"contract","documentation":{"id":6581,"nodeType":"StructuredDocumentation","src":"271:1660:30","text":" @dev Contract module that allows children to implement role-based access\n control mechanisms. This is a lightweight version that doesn't allow enumerating role\n members except through off-chain means by accessing the contract event logs. Some\n applications may benefit from on-chain enumerability, for those cases see\n {AccessControlEnumerable}.\n Roles are referred to by their `bytes32` identifier. These should be exposed\n in the external API and be unique. The best way to achieve this is by\n using `public constant` hash digests:\n ```solidity\n bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n ```\n Roles can be used to represent a set of permissions. To restrict access to a\n function call, use {hasRole}:\n ```solidity\n function foo() public {\n     require(hasRole(MY_ROLE, msg.sender));\n     ...\n }\n ```\n Roles can be granted and revoked dynamically via the {grantRole} and\n {revokeRole} functions. Each role has an associated admin role, and only\n accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n that only accounts with this role will be able to grant or revoke other\n roles. More complex role relationships can be created by using\n {_setRoleAdmin}.\n WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n grant and revoke this role. Extra precautions should be taken to secure\n accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules}\n to enforce additional security measures for this role."},"fullyImplemented":true,"id":6890,"linearizedBaseContracts":[6890,8352,8364,6963,8099],"name":"AccessControl","nameLocation":"1950:13:30","nodeType":"ContractDefinition","nodes":[{"canonicalName":"AccessControl.RoleData","id":6594,"members":[{"constant":false,"id":6591,"mutability":"mutable","name":"members","nameLocation":"2056:7:30","nodeType":"VariableDeclaration","scope":6594,"src":"2031:32:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":6590,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":6588,"name":"address","nodeType":"ElementaryTypeName","src":"2039:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2031:24:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":6589,"name":"bool","nodeType":"ElementaryTypeName","src":"2050:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"internal"},{"constant":false,"id":6593,"mutability":"mutable","name":"adminRole","nameLocation":"2081:9:30","nodeType":"VariableDeclaration","scope":6594,"src":"2073:17:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6592,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2073:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"RoleData","nameLocation":"2012:8:30","nodeType":"StructDefinition","scope":6890,"src":"2005:92:30","visibility":"public"},{"constant":false,"id":6599,"mutability":"mutable","name":"_roles","nameLocation":"2140:6:30","nodeType":"VariableDeclaration","scope":6890,"src":"2103:43:30","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$6594_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData)"},"typeName":{"id":6598,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":6595,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2111:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2103:28:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$6594_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":6597,"nodeType":"UserDefinedTypeName","pathNode":{"id":6596,"name":"RoleData","nameLocations":["2122:8:30"],"nodeType":"IdentifierPath","referencedDeclaration":6594,"src":"2122:8:30"},"referencedDeclaration":6594,"src":"2122:8:30","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$6594_storage_ptr","typeString":"struct AccessControl.RoleData"}}},"visibility":"private"},{"constant":true,"functionSelector":"a217fddf","id":6602,"mutability":"constant","name":"DEFAULT_ADMIN_ROLE","nameLocation":"2177:18:30","nodeType":"VariableDeclaration","scope":6890,"src":"2153:49:30","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6600,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2153:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"30783030","id":6601,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2198:4:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},"visibility":"public"},{"body":{"id":6612,"nodeType":"Block","src":"2621:44:30","statements":[{"expression":{"arguments":[{"id":6608,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6605,"src":"2642:4:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6607,"name":"_checkRole","nodeType":"Identifier","overloadedDeclarations":[6667,6706],"referencedDeclaration":6667,"src":"2631:10:30","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$__$","typeString":"function (bytes32) view"}},"id":6609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2631:16:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6610,"nodeType":"ExpressionStatement","src":"2631:16:30"},{"id":6611,"nodeType":"PlaceholderStatement","src":"2657:1:30"}]},"documentation":{"id":6603,"nodeType":"StructuredDocumentation","src":"2209:375:30","text":" @dev Modifier that checks that an account has a specific role. Reverts\n with a standardized message including the required role.\n The format of the revert reason is given by the following regular expression:\n  /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\n _Available since v4.1._"},"id":6613,"name":"onlyRole","nameLocation":"2598:8:30","nodeType":"ModifierDefinition","parameters":{"id":6606,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6605,"mutability":"mutable","name":"role","nameLocation":"2615:4:30","nodeType":"VariableDeclaration","scope":6613,"src":"2607:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6604,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2607:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2606:14:30"},"src":"2589:76:30","virtual":false,"visibility":"internal"},{"baseFunctions":[8351],"body":{"id":6634,"nodeType":"Block","src":"2823:111:30","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":6627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6622,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6616,"src":"2840:11:30","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":6624,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6963,"src":"2860:14:30","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessControl_$6963_$","typeString":"type(contract IAccessControl)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IAccessControl_$6963_$","typeString":"type(contract IAccessControl)"}],"id":6623,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2855:4:30","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":6625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2855:20:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IAccessControl_$6963","typeString":"type(contract IAccessControl)"}},"id":6626,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2876:11:30","memberName":"interfaceId","nodeType":"MemberAccess","src":"2855:32:30","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2840:47:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":6630,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6616,"src":"2915:11:30","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":6628,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2891:5:30","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AccessControl_$6890_$","typeString":"type(contract super AccessControl)"}},"id":6629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2897:17:30","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":8351,"src":"2891:23:30","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":6631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2891:36:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2840:87:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6621,"id":6633,"nodeType":"Return","src":"2833:94:30"}]},"documentation":{"id":6614,"nodeType":"StructuredDocumentation","src":"2671:56:30","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":6635,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"2741:17:30","nodeType":"FunctionDefinition","overrides":{"id":6618,"nodeType":"OverrideSpecifier","overrides":[],"src":"2799:8:30"},"parameters":{"id":6617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6616,"mutability":"mutable","name":"interfaceId","nameLocation":"2766:11:30","nodeType":"VariableDeclaration","scope":6635,"src":"2759:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":6615,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2759:6:30","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2758:20:30"},"returnParameters":{"id":6621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6620,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6635,"src":"2817:4:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6619,"name":"bool","nodeType":"ElementaryTypeName","src":"2817:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2816:6:30"},"scope":6890,"src":"2732:202:30","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6930],"body":{"id":6653,"nodeType":"Block","src":"3113:53:30","statements":[{"expression":{"baseExpression":{"expression":{"baseExpression":{"id":6646,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6599,"src":"3130:6:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$6594_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":6648,"indexExpression":{"id":6647,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6638,"src":"3137:4:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3130:12:30","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$6594_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":6649,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3143:7:30","memberName":"members","nodeType":"MemberAccess","referencedDeclaration":6591,"src":"3130:20:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":6651,"indexExpression":{"id":6650,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6640,"src":"3151:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3130:29:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6645,"id":6652,"nodeType":"Return","src":"3123:36:30"}]},"documentation":{"id":6636,"nodeType":"StructuredDocumentation","src":"2940:76:30","text":" @dev Returns `true` if `account` has been granted `role`."},"functionSelector":"91d14854","id":6654,"implemented":true,"kind":"function","modifiers":[],"name":"hasRole","nameLocation":"3030:7:30","nodeType":"FunctionDefinition","overrides":{"id":6642,"nodeType":"OverrideSpecifier","overrides":[],"src":"3089:8:30"},"parameters":{"id":6641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6638,"mutability":"mutable","name":"role","nameLocation":"3046:4:30","nodeType":"VariableDeclaration","scope":6654,"src":"3038:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6637,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3038:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6640,"mutability":"mutable","name":"account","nameLocation":"3060:7:30","nodeType":"VariableDeclaration","scope":6654,"src":"3052:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6639,"name":"address","nodeType":"ElementaryTypeName","src":"3052:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3037:31:30"},"returnParameters":{"id":6645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6644,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6654,"src":"3107:4:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6643,"name":"bool","nodeType":"ElementaryTypeName","src":"3107:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3106:6:30"},"scope":6890,"src":"3021:145:30","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":6666,"nodeType":"Block","src":"3516:47:30","statements":[{"expression":{"arguments":[{"id":6661,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6657,"src":"3537:4:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":6662,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8081,"src":"3543:10:30","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":6663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3543:12:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6660,"name":"_checkRole","nodeType":"Identifier","overloadedDeclarations":[6667,6706],"referencedDeclaration":6706,"src":"3526:10:30","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address) view"}},"id":6664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3526:30:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6665,"nodeType":"ExpressionStatement","src":"3526:30:30"}]},"documentation":{"id":6655,"nodeType":"StructuredDocumentation","src":"3172:283:30","text":" @dev Revert with a standard message if `_msgSender()` is missing `role`.\n Overriding this function changes the behavior of the {onlyRole} modifier.\n Format of the revert message is described in {_checkRole}.\n _Available since v4.6._"},"id":6667,"implemented":true,"kind":"function","modifiers":[],"name":"_checkRole","nameLocation":"3469:10:30","nodeType":"FunctionDefinition","parameters":{"id":6658,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6657,"mutability":"mutable","name":"role","nameLocation":"3488:4:30","nodeType":"VariableDeclaration","scope":6667,"src":"3480:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6656,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3480:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3479:14:30"},"returnParameters":{"id":6659,"nodeType":"ParameterList","parameters":[],"src":"3516:0:30"},"scope":6890,"src":"3460:103:30","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":6705,"nodeType":"Block","src":"3917:406:30","statements":[{"condition":{"id":6679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3931:23:30","subExpression":{"arguments":[{"id":6676,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6670,"src":"3940:4:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":6677,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6672,"src":"3946:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6675,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6654,"src":"3932:7:30","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":6678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3932:22:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6704,"nodeType":"IfStatement","src":"3927:390:30","trueBody":{"id":6703,"nodeType":"Block","src":"3956:361:30","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"416363657373436f6e74726f6c3a206163636f756e7420","id":6685,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4064:25:30","typeDescriptions":{"typeIdentifier":"t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874","typeString":"literal_string \"AccessControl: account \""},"value":"AccessControl: account "},{"arguments":[{"id":6688,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6672,"src":"4135:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6686,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8328,"src":"4115:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$8328_$","typeString":"type(library Strings)"}},"id":6687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4123:11:30","memberName":"toHexString","nodeType":"MemberAccess","referencedDeclaration":8302,"src":"4115:19:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$","typeString":"function (address) pure returns (string memory)"}},"id":6689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4115:28:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"206973206d697373696e6720726f6c6520","id":6690,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4169:19:30","typeDescriptions":{"typeIdentifier":"t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69","typeString":"literal_string \" is missing role \""},"value":" is missing role "},{"arguments":[{"arguments":[{"id":6695,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6670,"src":"4242:4:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6694,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4234:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":6693,"name":"uint256","nodeType":"ElementaryTypeName","src":"4234:7:30","typeDescriptions":{}}},"id":6696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4234:13:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"3332","id":6697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4249:2:30","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"}],"expression":{"id":6691,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8328,"src":"4214:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$8328_$","typeString":"type(library Strings)"}},"id":6692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4222:11:30","memberName":"toHexString","nodeType":"MemberAccess","referencedDeclaration":8282,"src":"4214:19:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":6698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4214:38:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874","typeString":"literal_string \"AccessControl: account \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69","typeString":"literal_string \" is missing role \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6683,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4022:3:30","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6684,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4026:12:30","memberName":"encodePacked","nodeType":"MemberAccess","src":"4022:16:30","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4022:252:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6682,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3994:6:30","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":6681,"name":"string","nodeType":"ElementaryTypeName","src":"3994:6:30","typeDescriptions":{}}},"id":6700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3994:298:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":6680,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3970:6:30","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":6701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3970:336:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6702,"nodeType":"ExpressionStatement","src":"3970:336:30"}]}}]},"documentation":{"id":6668,"nodeType":"StructuredDocumentation","src":"3569:270:30","text":" @dev Revert with a standard message if `account` is missing `role`.\n The format of the revert reason is given by the following regular expression:\n  /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/"},"id":6706,"implemented":true,"kind":"function","modifiers":[],"name":"_checkRole","nameLocation":"3853:10:30","nodeType":"FunctionDefinition","parameters":{"id":6673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6670,"mutability":"mutable","name":"role","nameLocation":"3872:4:30","nodeType":"VariableDeclaration","scope":6706,"src":"3864:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6669,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3864:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6672,"mutability":"mutable","name":"account","nameLocation":"3886:7:30","nodeType":"VariableDeclaration","scope":6706,"src":"3878:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6671,"name":"address","nodeType":"ElementaryTypeName","src":"3878:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3863:31:30"},"returnParameters":{"id":6674,"nodeType":"ParameterList","parameters":[],"src":"3917:0:30"},"scope":6890,"src":"3844:479:30","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[6938],"body":{"id":6720,"nodeType":"Block","src":"4587:46:30","statements":[{"expression":{"expression":{"baseExpression":{"id":6715,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6599,"src":"4604:6:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$6594_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":6717,"indexExpression":{"id":6716,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6709,"src":"4611:4:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4604:12:30","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$6594_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":6718,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4617:9:30","memberName":"adminRole","nodeType":"MemberAccess","referencedDeclaration":6593,"src":"4604:22:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":6714,"id":6719,"nodeType":"Return","src":"4597:29:30"}]},"documentation":{"id":6707,"nodeType":"StructuredDocumentation","src":"4329:170:30","text":" @dev Returns the admin role that controls `role`. See {grantRole} and\n {revokeRole}.\n To change a role's admin, use {_setRoleAdmin}."},"functionSelector":"248a9ca3","id":6721,"implemented":true,"kind":"function","modifiers":[],"name":"getRoleAdmin","nameLocation":"4513:12:30","nodeType":"FunctionDefinition","overrides":{"id":6711,"nodeType":"OverrideSpecifier","overrides":[],"src":"4560:8:30"},"parameters":{"id":6710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6709,"mutability":"mutable","name":"role","nameLocation":"4534:4:30","nodeType":"VariableDeclaration","scope":6721,"src":"4526:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6708,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4526:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4525:14:30"},"returnParameters":{"id":6714,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6713,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6721,"src":"4578:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6712,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4578:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4577:9:30"},"scope":6890,"src":"4504:129:30","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6946],"body":{"id":6740,"nodeType":"Block","src":"5032:42:30","statements":[{"expression":{"arguments":[{"id":6736,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6724,"src":"5053:4:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":6737,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6726,"src":"5059:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6735,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6858,"src":"5042:10:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":6738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5042:25:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6739,"nodeType":"ExpressionStatement","src":"5042:25:30"}]},"documentation":{"id":6722,"nodeType":"StructuredDocumentation","src":"4639:285:30","text":" @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event.\n Requirements:\n - the caller must have ``role``'s admin role.\n May emit a {RoleGranted} event."},"functionSelector":"2f2ff15d","id":6741,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"arguments":[{"id":6731,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6724,"src":"5025:4:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6730,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6721,"src":"5012:12:30","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":6732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5012:18:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":6733,"kind":"modifierInvocation","modifierName":{"id":6729,"name":"onlyRole","nameLocations":["5003:8:30"],"nodeType":"IdentifierPath","referencedDeclaration":6613,"src":"5003:8:30"},"nodeType":"ModifierInvocation","src":"5003:28:30"}],"name":"grantRole","nameLocation":"4938:9:30","nodeType":"FunctionDefinition","overrides":{"id":6728,"nodeType":"OverrideSpecifier","overrides":[],"src":"4994:8:30"},"parameters":{"id":6727,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6724,"mutability":"mutable","name":"role","nameLocation":"4956:4:30","nodeType":"VariableDeclaration","scope":6741,"src":"4948:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6723,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4948:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6726,"mutability":"mutable","name":"account","nameLocation":"4970:7:30","nodeType":"VariableDeclaration","scope":6741,"src":"4962:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6725,"name":"address","nodeType":"ElementaryTypeName","src":"4962:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4947:31:30"},"returnParameters":{"id":6734,"nodeType":"ParameterList","parameters":[],"src":"5032:0:30"},"scope":6890,"src":"4929:145:30","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[6954],"body":{"id":6760,"nodeType":"Block","src":"5458:43:30","statements":[{"expression":{"arguments":[{"id":6756,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6744,"src":"5480:4:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":6757,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6746,"src":"5486:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6755,"name":"_revokeRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6889,"src":"5468:11:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":6758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5468:26:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6759,"nodeType":"ExpressionStatement","src":"5468:26:30"}]},"documentation":{"id":6742,"nodeType":"StructuredDocumentation","src":"5080:269:30","text":" @dev Revokes `role` from `account`.\n If `account` had been granted `role`, emits a {RoleRevoked} event.\n Requirements:\n - the caller must have ``role``'s admin role.\n May emit a {RoleRevoked} event."},"functionSelector":"d547741f","id":6761,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"arguments":[{"id":6751,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6744,"src":"5451:4:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6750,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6721,"src":"5438:12:30","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":6752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5438:18:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":6753,"kind":"modifierInvocation","modifierName":{"id":6749,"name":"onlyRole","nameLocations":["5429:8:30"],"nodeType":"IdentifierPath","referencedDeclaration":6613,"src":"5429:8:30"},"nodeType":"ModifierInvocation","src":"5429:28:30"}],"name":"revokeRole","nameLocation":"5363:10:30","nodeType":"FunctionDefinition","overrides":{"id":6748,"nodeType":"OverrideSpecifier","overrides":[],"src":"5420:8:30"},"parameters":{"id":6747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6744,"mutability":"mutable","name":"role","nameLocation":"5382:4:30","nodeType":"VariableDeclaration","scope":6761,"src":"5374:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6743,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5374:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6746,"mutability":"mutable","name":"account","nameLocation":"5396:7:30","nodeType":"VariableDeclaration","scope":6761,"src":"5388:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6745,"name":"address","nodeType":"ElementaryTypeName","src":"5388:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5373:31:30"},"returnParameters":{"id":6754,"nodeType":"ParameterList","parameters":[],"src":"5458:0:30"},"scope":6890,"src":"5354:147:30","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[6962],"body":{"id":6783,"nodeType":"Block","src":"6115:137:30","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6771,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6766,"src":"6133:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":6772,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8081,"src":"6144:10:30","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":6773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6144:12:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6133:23:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66","id":6775,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6158:49:30","typeDescriptions":{"typeIdentifier":"t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b","typeString":"literal_string \"AccessControl: can only renounce roles for self\""},"value":"AccessControl: can only renounce roles for self"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b","typeString":"literal_string \"AccessControl: can only renounce roles for self\""}],"id":6770,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6125:7:30","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6125:83:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6777,"nodeType":"ExpressionStatement","src":"6125:83:30"},{"expression":{"arguments":[{"id":6779,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6764,"src":"6231:4:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":6780,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6766,"src":"6237:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6778,"name":"_revokeRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6889,"src":"6219:11:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":6781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6219:26:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6782,"nodeType":"ExpressionStatement","src":"6219:26:30"}]},"documentation":{"id":6762,"nodeType":"StructuredDocumentation","src":"5507:526:30","text":" @dev Revokes `role` from the calling account.\n Roles are often managed via {grantRole} and {revokeRole}: this function's\n purpose is to provide a mechanism for accounts to lose their privileges\n if they are compromised (such as when a trusted device is misplaced).\n If the calling account had been revoked `role`, emits a {RoleRevoked}\n event.\n Requirements:\n - the caller must be `account`.\n May emit a {RoleRevoked} event."},"functionSelector":"36568abe","id":6784,"implemented":true,"kind":"function","modifiers":[],"name":"renounceRole","nameLocation":"6047:12:30","nodeType":"FunctionDefinition","overrides":{"id":6768,"nodeType":"OverrideSpecifier","overrides":[],"src":"6106:8:30"},"parameters":{"id":6767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6764,"mutability":"mutable","name":"role","nameLocation":"6068:4:30","nodeType":"VariableDeclaration","scope":6784,"src":"6060:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6763,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6060:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6766,"mutability":"mutable","name":"account","nameLocation":"6082:7:30","nodeType":"VariableDeclaration","scope":6784,"src":"6074:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6765,"name":"address","nodeType":"ElementaryTypeName","src":"6074:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6059:31:30"},"returnParameters":{"id":6769,"nodeType":"ParameterList","parameters":[],"src":"6115:0:30"},"scope":6890,"src":"6038:214:30","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":6797,"nodeType":"Block","src":"7005:42:30","statements":[{"expression":{"arguments":[{"id":6793,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6787,"src":"7026:4:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":6794,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6789,"src":"7032:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6792,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6858,"src":"7015:10:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":6795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7015:25:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6796,"nodeType":"ExpressionStatement","src":"7015:25:30"}]},"documentation":{"id":6785,"nodeType":"StructuredDocumentation","src":"6258:674:30","text":" @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event. Note that unlike {grantRole}, this function doesn't perform any\n checks on the calling account.\n May emit a {RoleGranted} event.\n [WARNING]\n ====\n This function should only be called from the constructor when setting\n up the initial roles for the system.\n Using this function in any other way is effectively circumventing the admin\n system imposed by {AccessControl}.\n ====\n NOTE: This function is deprecated in favor of {_grantRole}."},"id":6798,"implemented":true,"kind":"function","modifiers":[],"name":"_setupRole","nameLocation":"6946:10:30","nodeType":"FunctionDefinition","parameters":{"id":6790,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6787,"mutability":"mutable","name":"role","nameLocation":"6965:4:30","nodeType":"VariableDeclaration","scope":6798,"src":"6957:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6786,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6957:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6789,"mutability":"mutable","name":"account","nameLocation":"6979:7:30","nodeType":"VariableDeclaration","scope":6798,"src":"6971:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6788,"name":"address","nodeType":"ElementaryTypeName","src":"6971:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6956:31:30"},"returnParameters":{"id":6791,"nodeType":"ParameterList","parameters":[],"src":"7005:0:30"},"scope":6890,"src":"6937:110:30","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6825,"nodeType":"Block","src":"7245:174:30","statements":[{"assignments":[6807],"declarations":[{"constant":false,"id":6807,"mutability":"mutable","name":"previousAdminRole","nameLocation":"7263:17:30","nodeType":"VariableDeclaration","scope":6825,"src":"7255:25:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6806,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7255:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":6811,"initialValue":{"arguments":[{"id":6809,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6801,"src":"7296:4:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6808,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6721,"src":"7283:12:30","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":6810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7283:18:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7255:46:30"},{"expression":{"id":6817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":6812,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6599,"src":"7311:6:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$6594_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":6814,"indexExpression":{"id":6813,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6801,"src":"7318:4:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7311:12:30","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$6594_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":6815,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7324:9:30","memberName":"adminRole","nodeType":"MemberAccess","referencedDeclaration":6593,"src":"7311:22:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6816,"name":"adminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6803,"src":"7336:9:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7311:34:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":6818,"nodeType":"ExpressionStatement","src":"7311:34:30"},{"eventCall":{"arguments":[{"id":6820,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6801,"src":"7377:4:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":6821,"name":"previousAdminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6807,"src":"7383:17:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":6822,"name":"adminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6803,"src":"7402:9:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6819,"name":"RoleAdminChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6902,"src":"7360:16:30","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32,bytes32)"}},"id":6823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7360:52:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6824,"nodeType":"EmitStatement","src":"7355:57:30"}]},"documentation":{"id":6799,"nodeType":"StructuredDocumentation","src":"7053:114:30","text":" @dev Sets `adminRole` as ``role``'s admin role.\n Emits a {RoleAdminChanged} event."},"id":6826,"implemented":true,"kind":"function","modifiers":[],"name":"_setRoleAdmin","nameLocation":"7181:13:30","nodeType":"FunctionDefinition","parameters":{"id":6804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6801,"mutability":"mutable","name":"role","nameLocation":"7203:4:30","nodeType":"VariableDeclaration","scope":6826,"src":"7195:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6800,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7195:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6803,"mutability":"mutable","name":"adminRole","nameLocation":"7217:9:30","nodeType":"VariableDeclaration","scope":6826,"src":"7209:17:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6802,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7209:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7194:33:30"},"returnParameters":{"id":6805,"nodeType":"ParameterList","parameters":[],"src":"7245:0:30"},"scope":6890,"src":"7172:247:30","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6857,"nodeType":"Block","src":"7655:165:30","statements":[{"condition":{"id":6838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7669:23:30","subExpression":{"arguments":[{"id":6835,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6829,"src":"7678:4:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":6836,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6831,"src":"7684:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6834,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6654,"src":"7670:7:30","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":6837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7670:22:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6856,"nodeType":"IfStatement","src":"7665:149:30","trueBody":{"id":6855,"nodeType":"Block","src":"7694:120:30","statements":[{"expression":{"id":6846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"baseExpression":{"id":6839,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6599,"src":"7708:6:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$6594_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":6841,"indexExpression":{"id":6840,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6829,"src":"7715:4:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7708:12:30","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$6594_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":6842,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7721:7:30","memberName":"members","nodeType":"MemberAccess","referencedDeclaration":6591,"src":"7708:20:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":6844,"indexExpression":{"id":6843,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6831,"src":"7729:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7708:29:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":6845,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7740:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"7708:36:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6847,"nodeType":"ExpressionStatement","src":"7708:36:30"},{"eventCall":{"arguments":[{"id":6849,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6829,"src":"7775:4:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":6850,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6831,"src":"7781:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":6851,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8081,"src":"7790:10:30","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":6852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7790:12:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6848,"name":"RoleGranted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6911,"src":"7763:11:30","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$","typeString":"function (bytes32,address,address)"}},"id":6853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7763:40:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6854,"nodeType":"EmitStatement","src":"7758:45:30"}]}}]},"documentation":{"id":6827,"nodeType":"StructuredDocumentation","src":"7425:157:30","text":" @dev Grants `role` to `account`.\n Internal function without access restriction.\n May emit a {RoleGranted} event."},"id":6858,"implemented":true,"kind":"function","modifiers":[],"name":"_grantRole","nameLocation":"7596:10:30","nodeType":"FunctionDefinition","parameters":{"id":6832,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6829,"mutability":"mutable","name":"role","nameLocation":"7615:4:30","nodeType":"VariableDeclaration","scope":6858,"src":"7607:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6828,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7607:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6831,"mutability":"mutable","name":"account","nameLocation":"7629:7:30","nodeType":"VariableDeclaration","scope":6858,"src":"7621:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6830,"name":"address","nodeType":"ElementaryTypeName","src":"7621:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7606:31:30"},"returnParameters":{"id":6833,"nodeType":"ParameterList","parameters":[],"src":"7655:0:30"},"scope":6890,"src":"7587:233:30","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6888,"nodeType":"Block","src":"8060:165:30","statements":[{"condition":{"arguments":[{"id":6867,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6861,"src":"8082:4:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":6868,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6863,"src":"8088:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6866,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6654,"src":"8074:7:30","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":6869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8074:22:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6887,"nodeType":"IfStatement","src":"8070:149:30","trueBody":{"id":6886,"nodeType":"Block","src":"8098:121:30","statements":[{"expression":{"id":6877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"baseExpression":{"id":6870,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6599,"src":"8112:6:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$6594_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":6872,"indexExpression":{"id":6871,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6861,"src":"8119:4:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8112:12:30","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$6594_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":6873,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8125:7:30","memberName":"members","nodeType":"MemberAccess","referencedDeclaration":6591,"src":"8112:20:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":6875,"indexExpression":{"id":6874,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6863,"src":"8133:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8112:29:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":6876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8144:5:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"8112:37:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6878,"nodeType":"ExpressionStatement","src":"8112:37:30"},{"eventCall":{"arguments":[{"id":6880,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6861,"src":"8180:4:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":6881,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6863,"src":"8186:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":6882,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8081,"src":"8195:10:30","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":6883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8195:12:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6879,"name":"RoleRevoked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6920,"src":"8168:11:30","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$","typeString":"function (bytes32,address,address)"}},"id":6884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8168:40:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6885,"nodeType":"EmitStatement","src":"8163:45:30"}]}}]},"documentation":{"id":6859,"nodeType":"StructuredDocumentation","src":"7826:160:30","text":" @dev Revokes `role` from `account`.\n Internal function without access restriction.\n May emit a {RoleRevoked} event."},"id":6889,"implemented":true,"kind":"function","modifiers":[],"name":"_revokeRole","nameLocation":"8000:11:30","nodeType":"FunctionDefinition","parameters":{"id":6864,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6861,"mutability":"mutable","name":"role","nameLocation":"8020:4:30","nodeType":"VariableDeclaration","scope":6889,"src":"8012:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6860,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8012:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6863,"mutability":"mutable","name":"account","nameLocation":"8034:7:30","nodeType":"VariableDeclaration","scope":6889,"src":"8026:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6862,"name":"address","nodeType":"ElementaryTypeName","src":"8026:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8011:31:30"},"returnParameters":{"id":6865,"nodeType":"ParameterList","parameters":[],"src":"8060:0:30"},"scope":6890,"src":"7991:234:30","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":6891,"src":"1932:6295:30","usedErrors":[],"usedEvents":[6902,6911,6920]}],"src":"108:8120:30"},"id":30},"@openzeppelin/contracts/access/IAccessControl.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/IAccessControl.sol","exportedSymbols":{"IAccessControl":[6963]},"id":6964,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6892,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"94:23:31"},{"abstract":false,"baseContracts":[],"canonicalName":"IAccessControl","contractDependencies":[],"contractKind":"interface","documentation":{"id":6893,"nodeType":"StructuredDocumentation","src":"119:89:31","text":" @dev External interface of AccessControl declared to support ERC165 detection."},"fullyImplemented":false,"id":6963,"linearizedBaseContracts":[6963],"name":"IAccessControl","nameLocation":"219:14:31","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":6894,"nodeType":"StructuredDocumentation","src":"240:292:31","text":" @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n {RoleAdminChanged} not being emitted signaling this.\n _Available since v3.1._"},"eventSelector":"bd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff","id":6902,"name":"RoleAdminChanged","nameLocation":"543:16:31","nodeType":"EventDefinition","parameters":{"id":6901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6896,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"576:4:31","nodeType":"VariableDeclaration","scope":6902,"src":"560:20:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6895,"name":"bytes32","nodeType":"ElementaryTypeName","src":"560:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6898,"indexed":true,"mutability":"mutable","name":"previousAdminRole","nameLocation":"598:17:31","nodeType":"VariableDeclaration","scope":6902,"src":"582:33:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6897,"name":"bytes32","nodeType":"ElementaryTypeName","src":"582:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6900,"indexed":true,"mutability":"mutable","name":"newAdminRole","nameLocation":"633:12:31","nodeType":"VariableDeclaration","scope":6902,"src":"617:28:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6899,"name":"bytes32","nodeType":"ElementaryTypeName","src":"617:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"559:87:31"},"src":"537:110:31"},{"anonymous":false,"documentation":{"id":6903,"nodeType":"StructuredDocumentation","src":"653:212:31","text":" @dev Emitted when `account` is granted `role`.\n `sender` is the account that originated the contract call, an admin role\n bearer except when using {AccessControl-_setupRole}."},"eventSelector":"2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d","id":6911,"name":"RoleGranted","nameLocation":"876:11:31","nodeType":"EventDefinition","parameters":{"id":6910,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6905,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"904:4:31","nodeType":"VariableDeclaration","scope":6911,"src":"888:20:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6904,"name":"bytes32","nodeType":"ElementaryTypeName","src":"888:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6907,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"926:7:31","nodeType":"VariableDeclaration","scope":6911,"src":"910:23:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6906,"name":"address","nodeType":"ElementaryTypeName","src":"910:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6909,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"951:6:31","nodeType":"VariableDeclaration","scope":6911,"src":"935:22:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6908,"name":"address","nodeType":"ElementaryTypeName","src":"935:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"887:71:31"},"src":"870:89:31"},{"anonymous":false,"documentation":{"id":6912,"nodeType":"StructuredDocumentation","src":"965:275:31","text":" @dev Emitted when `account` is revoked `role`.\n `sender` is the account that originated the contract call:\n   - if using `revokeRole`, it is the admin role bearer\n   - if using `renounceRole`, it is the role bearer (i.e. `account`)"},"eventSelector":"f6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b","id":6920,"name":"RoleRevoked","nameLocation":"1251:11:31","nodeType":"EventDefinition","parameters":{"id":6919,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6914,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"1279:4:31","nodeType":"VariableDeclaration","scope":6920,"src":"1263:20:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6913,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1263:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6916,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"1301:7:31","nodeType":"VariableDeclaration","scope":6920,"src":"1285:23:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6915,"name":"address","nodeType":"ElementaryTypeName","src":"1285:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6918,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"1326:6:31","nodeType":"VariableDeclaration","scope":6920,"src":"1310:22:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6917,"name":"address","nodeType":"ElementaryTypeName","src":"1310:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1262:71:31"},"src":"1245:89:31"},{"documentation":{"id":6921,"nodeType":"StructuredDocumentation","src":"1340:76:31","text":" @dev Returns `true` if `account` has been granted `role`."},"functionSelector":"91d14854","id":6930,"implemented":false,"kind":"function","modifiers":[],"name":"hasRole","nameLocation":"1430:7:31","nodeType":"FunctionDefinition","parameters":{"id":6926,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6923,"mutability":"mutable","name":"role","nameLocation":"1446:4:31","nodeType":"VariableDeclaration","scope":6930,"src":"1438:12:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6922,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1438:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6925,"mutability":"mutable","name":"account","nameLocation":"1460:7:31","nodeType":"VariableDeclaration","scope":6930,"src":"1452:15:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6924,"name":"address","nodeType":"ElementaryTypeName","src":"1452:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1437:31:31"},"returnParameters":{"id":6929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6928,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6930,"src":"1492:4:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6927,"name":"bool","nodeType":"ElementaryTypeName","src":"1492:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1491:6:31"},"scope":6963,"src":"1421:77:31","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":6931,"nodeType":"StructuredDocumentation","src":"1504:184:31","text":" @dev Returns the admin role that controls `role`. See {grantRole} and\n {revokeRole}.\n To change a role's admin, use {AccessControl-_setRoleAdmin}."},"functionSelector":"248a9ca3","id":6938,"implemented":false,"kind":"function","modifiers":[],"name":"getRoleAdmin","nameLocation":"1702:12:31","nodeType":"FunctionDefinition","parameters":{"id":6934,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6933,"mutability":"mutable","name":"role","nameLocation":"1723:4:31","nodeType":"VariableDeclaration","scope":6938,"src":"1715:12:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6932,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1715:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1714:14:31"},"returnParameters":{"id":6937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6936,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6938,"src":"1752:7:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6935,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1752:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1751:9:31"},"scope":6963,"src":"1693:68:31","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":6939,"nodeType":"StructuredDocumentation","src":"1767:239:31","text":" @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event.\n Requirements:\n - the caller must have ``role``'s admin role."},"functionSelector":"2f2ff15d","id":6946,"implemented":false,"kind":"function","modifiers":[],"name":"grantRole","nameLocation":"2020:9:31","nodeType":"FunctionDefinition","parameters":{"id":6944,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6941,"mutability":"mutable","name":"role","nameLocation":"2038:4:31","nodeType":"VariableDeclaration","scope":6946,"src":"2030:12:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6940,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2030:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6943,"mutability":"mutable","name":"account","nameLocation":"2052:7:31","nodeType":"VariableDeclaration","scope":6946,"src":"2044:15:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6942,"name":"address","nodeType":"ElementaryTypeName","src":"2044:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2029:31:31"},"returnParameters":{"id":6945,"nodeType":"ParameterList","parameters":[],"src":"2069:0:31"},"scope":6963,"src":"2011:59:31","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":6947,"nodeType":"StructuredDocumentation","src":"2076:223:31","text":" @dev Revokes `role` from `account`.\n If `account` had been granted `role`, emits a {RoleRevoked} event.\n Requirements:\n - the caller must have ``role``'s admin role."},"functionSelector":"d547741f","id":6954,"implemented":false,"kind":"function","modifiers":[],"name":"revokeRole","nameLocation":"2313:10:31","nodeType":"FunctionDefinition","parameters":{"id":6952,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6949,"mutability":"mutable","name":"role","nameLocation":"2332:4:31","nodeType":"VariableDeclaration","scope":6954,"src":"2324:12:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6948,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2324:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6951,"mutability":"mutable","name":"account","nameLocation":"2346:7:31","nodeType":"VariableDeclaration","scope":6954,"src":"2338:15:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6950,"name":"address","nodeType":"ElementaryTypeName","src":"2338:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2323:31:31"},"returnParameters":{"id":6953,"nodeType":"ParameterList","parameters":[],"src":"2363:0:31"},"scope":6963,"src":"2304:60:31","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":6955,"nodeType":"StructuredDocumentation","src":"2370:480:31","text":" @dev Revokes `role` from the calling account.\n Roles are often managed via {grantRole} and {revokeRole}: this function's\n purpose is to provide a mechanism for accounts to lose their privileges\n if they are compromised (such as when a trusted device is misplaced).\n If the calling account had been granted `role`, emits a {RoleRevoked}\n event.\n Requirements:\n - the caller must be `account`."},"functionSelector":"36568abe","id":6962,"implemented":false,"kind":"function","modifiers":[],"name":"renounceRole","nameLocation":"2864:12:31","nodeType":"FunctionDefinition","parameters":{"id":6960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6957,"mutability":"mutable","name":"role","nameLocation":"2885:4:31","nodeType":"VariableDeclaration","scope":6962,"src":"2877:12:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6956,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2877:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6959,"mutability":"mutable","name":"account","nameLocation":"2899:7:31","nodeType":"VariableDeclaration","scope":6962,"src":"2891:15:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6958,"name":"address","nodeType":"ElementaryTypeName","src":"2891:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2876:31:31"},"returnParameters":{"id":6961,"nodeType":"ParameterList","parameters":[],"src":"2916:0:31"},"scope":6963,"src":"2855:62:31","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":6964,"src":"209:2710:31","usedErrors":[],"usedEvents":[6902,6911,6920]}],"src":"94:2826:31"},"id":31},"@openzeppelin/contracts/access/Ownable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","exportedSymbols":{"Context":[8099],"Ownable":[7076]},"id":7077,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6965,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"102:23:32"},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../utils/Context.sol","id":6966,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7077,"sourceUnit":8100,"src":"127:30:32","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":6968,"name":"Context","nameLocations":["683:7:32"],"nodeType":"IdentifierPath","referencedDeclaration":8099,"src":"683:7:32"},"id":6969,"nodeType":"InheritanceSpecifier","src":"683:7:32"}],"canonicalName":"Ownable","contractDependencies":[],"contractKind":"contract","documentation":{"id":6967,"nodeType":"StructuredDocumentation","src":"159:494:32","text":" @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner."},"fullyImplemented":true,"id":7076,"linearizedBaseContracts":[7076,8099],"name":"Ownable","nameLocation":"672:7:32","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":6971,"mutability":"mutable","name":"_owner","nameLocation":"713:6:32","nodeType":"VariableDeclaration","scope":7076,"src":"697:22:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6970,"name":"address","nodeType":"ElementaryTypeName","src":"697:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"anonymous":false,"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","id":6977,"name":"OwnershipTransferred","nameLocation":"732:20:32","nodeType":"EventDefinition","parameters":{"id":6976,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6973,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"769:13:32","nodeType":"VariableDeclaration","scope":6977,"src":"753:29:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6972,"name":"address","nodeType":"ElementaryTypeName","src":"753:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6975,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"800:8:32","nodeType":"VariableDeclaration","scope":6977,"src":"784:24:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6974,"name":"address","nodeType":"ElementaryTypeName","src":"784:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"752:57:32"},"src":"726:84:32"},{"body":{"id":6986,"nodeType":"Block","src":"926:49:32","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":6982,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8081,"src":"955:10:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":6983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"955:12:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6981,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7075,"src":"936:18:32","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":6984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"936:32:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6985,"nodeType":"ExpressionStatement","src":"936:32:32"}]},"documentation":{"id":6978,"nodeType":"StructuredDocumentation","src":"816:91:32","text":" @dev Initializes the contract setting the deployer as the initial owner."},"id":6987,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":6979,"nodeType":"ParameterList","parameters":[],"src":"923:2:32"},"returnParameters":{"id":6980,"nodeType":"ParameterList","parameters":[],"src":"926:0:32"},"scope":7076,"src":"912:63:32","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6994,"nodeType":"Block","src":"1084:41:32","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":6990,"name":"_checkOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7018,"src":"1094:11:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":6991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1094:13:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6992,"nodeType":"ExpressionStatement","src":"1094:13:32"},{"id":6993,"nodeType":"PlaceholderStatement","src":"1117:1:32"}]},"documentation":{"id":6988,"nodeType":"StructuredDocumentation","src":"981:77:32","text":" @dev Throws if called by any account other than the owner."},"id":6995,"name":"onlyOwner","nameLocation":"1072:9:32","nodeType":"ModifierDefinition","parameters":{"id":6989,"nodeType":"ParameterList","parameters":[],"src":"1081:2:32"},"src":"1063:62:32","virtual":false,"visibility":"internal"},{"body":{"id":7003,"nodeType":"Block","src":"1256:30:32","statements":[{"expression":{"id":7001,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6971,"src":"1273:6:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":7000,"id":7002,"nodeType":"Return","src":"1266:13:32"}]},"documentation":{"id":6996,"nodeType":"StructuredDocumentation","src":"1131:65:32","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","id":7004,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1210:5:32","nodeType":"FunctionDefinition","parameters":{"id":6997,"nodeType":"ParameterList","parameters":[],"src":"1215:2:32"},"returnParameters":{"id":7000,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6999,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7004,"src":"1247:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6998,"name":"address","nodeType":"ElementaryTypeName","src":"1247:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1246:9:32"},"scope":7076,"src":"1201:85:32","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":7017,"nodeType":"Block","src":"1404:85:32","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":7009,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7004,"src":"1422:5:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":7010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1422:7:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":7011,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8081,"src":"1433:10:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":7012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1433:12:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1422:23:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","id":7014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1447:34:32","typeDescriptions":{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""},"value":"Ownable: caller is not the owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""}],"id":7008,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1414:7:32","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1414:68:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7016,"nodeType":"ExpressionStatement","src":"1414:68:32"}]},"documentation":{"id":7005,"nodeType":"StructuredDocumentation","src":"1292:62:32","text":" @dev Throws if the sender is not the owner."},"id":7018,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"1368:11:32","nodeType":"FunctionDefinition","parameters":{"id":7006,"nodeType":"ParameterList","parameters":[],"src":"1379:2:32"},"returnParameters":{"id":7007,"nodeType":"ParameterList","parameters":[],"src":"1404:0:32"},"scope":7076,"src":"1359:130:32","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":7031,"nodeType":"Block","src":"1878:47:32","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":7027,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1915:1:32","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":7026,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1907:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7025,"name":"address","nodeType":"ElementaryTypeName","src":"1907:7:32","typeDescriptions":{}}},"id":7028,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1907:10:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7024,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7075,"src":"1888:18:32","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":7029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1888:30:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7030,"nodeType":"ExpressionStatement","src":"1888:30:32"}]},"documentation":{"id":7019,"nodeType":"StructuredDocumentation","src":"1495:324:32","text":" @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby disabling any functionality that is only available to the owner."},"functionSelector":"715018a6","id":7032,"implemented":true,"kind":"function","modifiers":[{"id":7022,"kind":"modifierInvocation","modifierName":{"id":7021,"name":"onlyOwner","nameLocations":["1868:9:32"],"nodeType":"IdentifierPath","referencedDeclaration":6995,"src":"1868:9:32"},"nodeType":"ModifierInvocation","src":"1868:9:32"}],"name":"renounceOwnership","nameLocation":"1833:17:32","nodeType":"FunctionDefinition","parameters":{"id":7020,"nodeType":"ParameterList","parameters":[],"src":"1850:2:32"},"returnParameters":{"id":7023,"nodeType":"ParameterList","parameters":[],"src":"1878:0:32"},"scope":7076,"src":"1824:101:32","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":7054,"nodeType":"Block","src":"2144:128:32","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7041,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7035,"src":"2162:8:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":7044,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2182:1:32","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":7043,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2174:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7042,"name":"address","nodeType":"ElementaryTypeName","src":"2174:7:32","typeDescriptions":{}}},"id":7045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2174:10:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2162:22:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373","id":7047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2186:40:32","typeDescriptions":{"typeIdentifier":"t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","typeString":"literal_string \"Ownable: new owner is the zero address\""},"value":"Ownable: new owner is the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","typeString":"literal_string \"Ownable: new owner is the zero address\""}],"id":7040,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2154:7:32","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2154:73:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7049,"nodeType":"ExpressionStatement","src":"2154:73:32"},{"expression":{"arguments":[{"id":7051,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7035,"src":"2256:8:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7050,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7075,"src":"2237:18:32","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":7052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2237:28:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7053,"nodeType":"ExpressionStatement","src":"2237:28:32"}]},"documentation":{"id":7033,"nodeType":"StructuredDocumentation","src":"1931:138:32","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","id":7055,"implemented":true,"kind":"function","modifiers":[{"id":7038,"kind":"modifierInvocation","modifierName":{"id":7037,"name":"onlyOwner","nameLocations":["2134:9:32"],"nodeType":"IdentifierPath","referencedDeclaration":6995,"src":"2134:9:32"},"nodeType":"ModifierInvocation","src":"2134:9:32"}],"name":"transferOwnership","nameLocation":"2083:17:32","nodeType":"FunctionDefinition","parameters":{"id":7036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7035,"mutability":"mutable","name":"newOwner","nameLocation":"2109:8:32","nodeType":"VariableDeclaration","scope":7055,"src":"2101:16:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7034,"name":"address","nodeType":"ElementaryTypeName","src":"2101:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2100:18:32"},"returnParameters":{"id":7039,"nodeType":"ParameterList","parameters":[],"src":"2144:0:32"},"scope":7076,"src":"2074:198:32","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":7074,"nodeType":"Block","src":"2489:124:32","statements":[{"assignments":[7062],"declarations":[{"constant":false,"id":7062,"mutability":"mutable","name":"oldOwner","nameLocation":"2507:8:32","nodeType":"VariableDeclaration","scope":7074,"src":"2499:16:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7061,"name":"address","nodeType":"ElementaryTypeName","src":"2499:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":7064,"initialValue":{"id":7063,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6971,"src":"2518:6:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2499:25:32"},{"expression":{"id":7067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7065,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6971,"src":"2534:6:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7066,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7058,"src":"2543:8:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2534:17:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7068,"nodeType":"ExpressionStatement","src":"2534:17:32"},{"eventCall":{"arguments":[{"id":7070,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7062,"src":"2587:8:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7071,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7058,"src":"2597:8:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":7069,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6977,"src":"2566:20:32","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":7072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2566:40:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7073,"nodeType":"EmitStatement","src":"2561:45:32"}]},"documentation":{"id":7056,"nodeType":"StructuredDocumentation","src":"2278:143:32","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."},"id":7075,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"2435:18:32","nodeType":"FunctionDefinition","parameters":{"id":7059,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7058,"mutability":"mutable","name":"newOwner","nameLocation":"2462:8:32","nodeType":"VariableDeclaration","scope":7075,"src":"2454:16:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7057,"name":"address","nodeType":"ElementaryTypeName","src":"2454:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2453:18:32"},"returnParameters":{"id":7060,"nodeType":"ParameterList","parameters":[],"src":"2489:0:32"},"scope":7076,"src":"2426:187:32","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":7077,"src":"654:1961:32","usedErrors":[],"usedEvents":[6977]}],"src":"102:2514:32"},"id":32},"@openzeppelin/contracts/security/Pausable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/security/Pausable.sol","exportedSymbols":{"Context":[8099],"Pausable":[7184]},"id":7185,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7078,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"105:23:33"},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../utils/Context.sol","id":7079,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7185,"sourceUnit":8100,"src":"130:30:33","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":7081,"name":"Context","nameLocations":["632:7:33"],"nodeType":"IdentifierPath","referencedDeclaration":8099,"src":"632:7:33"},"id":7082,"nodeType":"InheritanceSpecifier","src":"632:7:33"}],"canonicalName":"Pausable","contractDependencies":[],"contractKind":"contract","documentation":{"id":7080,"nodeType":"StructuredDocumentation","src":"162:439:33","text":" @dev Contract module which allows children to implement an emergency stop\n mechanism that can be triggered by an authorized account.\n This module is used through inheritance. It will make available the\n modifiers `whenNotPaused` and `whenPaused`, which can be applied to\n the functions of your contract. Note that they will not be pausable by\n simply including this module, only once the modifiers are put in place."},"fullyImplemented":true,"id":7184,"linearizedBaseContracts":[7184,8099],"name":"Pausable","nameLocation":"620:8:33","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":7083,"nodeType":"StructuredDocumentation","src":"646:73:33","text":" @dev Emitted when the pause is triggered by `account`."},"eventSelector":"62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258","id":7087,"name":"Paused","nameLocation":"730:6:33","nodeType":"EventDefinition","parameters":{"id":7086,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7085,"indexed":false,"mutability":"mutable","name":"account","nameLocation":"745:7:33","nodeType":"VariableDeclaration","scope":7087,"src":"737:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7084,"name":"address","nodeType":"ElementaryTypeName","src":"737:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"736:17:33"},"src":"724:30:33"},{"anonymous":false,"documentation":{"id":7088,"nodeType":"StructuredDocumentation","src":"760:70:33","text":" @dev Emitted when the pause is lifted by `account`."},"eventSelector":"5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa","id":7092,"name":"Unpaused","nameLocation":"841:8:33","nodeType":"EventDefinition","parameters":{"id":7091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7090,"indexed":false,"mutability":"mutable","name":"account","nameLocation":"858:7:33","nodeType":"VariableDeclaration","scope":7092,"src":"850:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7089,"name":"address","nodeType":"ElementaryTypeName","src":"850:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"849:17:33"},"src":"835:32:33"},{"constant":false,"id":7094,"mutability":"mutable","name":"_paused","nameLocation":"886:7:33","nodeType":"VariableDeclaration","scope":7184,"src":"873:20:33","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7093,"name":"bool","nodeType":"ElementaryTypeName","src":"873:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"body":{"id":7102,"nodeType":"Block","src":"986:32:33","statements":[{"expression":{"id":7100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7098,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7094,"src":"996:7:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":7099,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1006:5:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"996:15:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7101,"nodeType":"ExpressionStatement","src":"996:15:33"}]},"documentation":{"id":7095,"nodeType":"StructuredDocumentation","src":"900:67:33","text":" @dev Initializes the contract in unpaused state."},"id":7103,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":7096,"nodeType":"ParameterList","parameters":[],"src":"983:2:33"},"returnParameters":{"id":7097,"nodeType":"ParameterList","parameters":[],"src":"986:0:33"},"scope":7184,"src":"972:46:33","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":7110,"nodeType":"Block","src":"1229:47:33","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":7106,"name":"_requireNotPaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7140,"src":"1239:17:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":7107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1239:19:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7108,"nodeType":"ExpressionStatement","src":"1239:19:33"},{"id":7109,"nodeType":"PlaceholderStatement","src":"1268:1:33"}]},"documentation":{"id":7104,"nodeType":"StructuredDocumentation","src":"1024:175:33","text":" @dev Modifier to make a function callable only when the contract is not paused.\n Requirements:\n - The contract must not be paused."},"id":7111,"name":"whenNotPaused","nameLocation":"1213:13:33","nodeType":"ModifierDefinition","parameters":{"id":7105,"nodeType":"ParameterList","parameters":[],"src":"1226:2:33"},"src":"1204:72:33","virtual":false,"visibility":"internal"},{"body":{"id":7118,"nodeType":"Block","src":"1476:44:33","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":7114,"name":"_requirePaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7151,"src":"1486:14:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":7115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1486:16:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7116,"nodeType":"ExpressionStatement","src":"1486:16:33"},{"id":7117,"nodeType":"PlaceholderStatement","src":"1512:1:33"}]},"documentation":{"id":7112,"nodeType":"StructuredDocumentation","src":"1282:167:33","text":" @dev Modifier to make a function callable only when the contract is paused.\n Requirements:\n - The contract must be paused."},"id":7119,"name":"whenPaused","nameLocation":"1463:10:33","nodeType":"ModifierDefinition","parameters":{"id":7113,"nodeType":"ParameterList","parameters":[],"src":"1473:2:33"},"src":"1454:66:33","virtual":false,"visibility":"internal"},{"body":{"id":7127,"nodeType":"Block","src":"1668:31:33","statements":[{"expression":{"id":7125,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7094,"src":"1685:7:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7124,"id":7126,"nodeType":"Return","src":"1678:14:33"}]},"documentation":{"id":7120,"nodeType":"StructuredDocumentation","src":"1526:84:33","text":" @dev Returns true if the contract is paused, and false otherwise."},"functionSelector":"5c975abb","id":7128,"implemented":true,"kind":"function","modifiers":[],"name":"paused","nameLocation":"1624:6:33","nodeType":"FunctionDefinition","parameters":{"id":7121,"nodeType":"ParameterList","parameters":[],"src":"1630:2:33"},"returnParameters":{"id":7124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7123,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7128,"src":"1662:4:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7122,"name":"bool","nodeType":"ElementaryTypeName","src":"1662:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1661:6:33"},"scope":7184,"src":"1615:84:33","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":7139,"nodeType":"Block","src":"1818:55:33","statements":[{"expression":{"arguments":[{"id":7135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1836:9:33","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":7133,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7128,"src":"1837:6:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":7134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1837:8:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5061757361626c653a20706175736564","id":7136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1847:18:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a","typeString":"literal_string \"Pausable: paused\""},"value":"Pausable: paused"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a","typeString":"literal_string \"Pausable: paused\""}],"id":7132,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1828:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1828:38:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7138,"nodeType":"ExpressionStatement","src":"1828:38:33"}]},"documentation":{"id":7129,"nodeType":"StructuredDocumentation","src":"1705:57:33","text":" @dev Throws if the contract is paused."},"id":7140,"implemented":true,"kind":"function","modifiers":[],"name":"_requireNotPaused","nameLocation":"1776:17:33","nodeType":"FunctionDefinition","parameters":{"id":7130,"nodeType":"ParameterList","parameters":[],"src":"1793:2:33"},"returnParameters":{"id":7131,"nodeType":"ParameterList","parameters":[],"src":"1818:0:33"},"scope":7184,"src":"1767:106:33","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":7150,"nodeType":"Block","src":"1993:58:33","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":7145,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7128,"src":"2011:6:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":7146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2011:8:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5061757361626c653a206e6f7420706175736564","id":7147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2021:22:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a","typeString":"literal_string \"Pausable: not paused\""},"value":"Pausable: not paused"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a","typeString":"literal_string \"Pausable: not paused\""}],"id":7144,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2003:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2003:41:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7149,"nodeType":"ExpressionStatement","src":"2003:41:33"}]},"documentation":{"id":7141,"nodeType":"StructuredDocumentation","src":"1879:61:33","text":" @dev Throws if the contract is not paused."},"id":7151,"implemented":true,"kind":"function","modifiers":[],"name":"_requirePaused","nameLocation":"1954:14:33","nodeType":"FunctionDefinition","parameters":{"id":7142,"nodeType":"ParameterList","parameters":[],"src":"1968:2:33"},"returnParameters":{"id":7143,"nodeType":"ParameterList","parameters":[],"src":"1993:0:33"},"scope":7184,"src":"1945:106:33","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":7166,"nodeType":"Block","src":"2235:66:33","statements":[{"expression":{"id":7159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7157,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7094,"src":"2245:7:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":7158,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2255:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2245:14:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7160,"nodeType":"ExpressionStatement","src":"2245:14:33"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":7162,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8081,"src":"2281:10:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":7163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2281:12:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7161,"name":"Paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7087,"src":"2274:6:33","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":7164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2274:20:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7165,"nodeType":"EmitStatement","src":"2269:25:33"}]},"documentation":{"id":7152,"nodeType":"StructuredDocumentation","src":"2057:124:33","text":" @dev Triggers stopped state.\n Requirements:\n - The contract must not be paused."},"id":7167,"implemented":true,"kind":"function","modifiers":[{"id":7155,"kind":"modifierInvocation","modifierName":{"id":7154,"name":"whenNotPaused","nameLocations":["2221:13:33"],"nodeType":"IdentifierPath","referencedDeclaration":7111,"src":"2221:13:33"},"nodeType":"ModifierInvocation","src":"2221:13:33"}],"name":"_pause","nameLocation":"2195:6:33","nodeType":"FunctionDefinition","parameters":{"id":7153,"nodeType":"ParameterList","parameters":[],"src":"2201:2:33"},"returnParameters":{"id":7156,"nodeType":"ParameterList","parameters":[],"src":"2235:0:33"},"scope":7184,"src":"2186:115:33","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":7182,"nodeType":"Block","src":"2481:69:33","statements":[{"expression":{"id":7175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7173,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7094,"src":"2491:7:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":7174,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2501:5:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"2491:15:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7176,"nodeType":"ExpressionStatement","src":"2491:15:33"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":7178,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8081,"src":"2530:10:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":7179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2530:12:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7177,"name":"Unpaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7092,"src":"2521:8:33","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":7180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2521:22:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7181,"nodeType":"EmitStatement","src":"2516:27:33"}]},"documentation":{"id":7168,"nodeType":"StructuredDocumentation","src":"2307:121:33","text":" @dev Returns to normal state.\n Requirements:\n - The contract must be paused."},"id":7183,"implemented":true,"kind":"function","modifiers":[{"id":7171,"kind":"modifierInvocation","modifierName":{"id":7170,"name":"whenPaused","nameLocations":["2470:10:33"],"nodeType":"IdentifierPath","referencedDeclaration":7119,"src":"2470:10:33"},"nodeType":"ModifierInvocation","src":"2470:10:33"}],"name":"_unpause","nameLocation":"2442:8:33","nodeType":"FunctionDefinition","parameters":{"id":7169,"nodeType":"ParameterList","parameters":[],"src":"2450:2:33"},"returnParameters":{"id":7172,"nodeType":"ParameterList","parameters":[],"src":"2481:0:33"},"scope":7184,"src":"2433:117:33","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":7185,"src":"602:1950:33","usedErrors":[],"usedEvents":[7087,7092]}],"src":"105:2448:33"},"id":33},"@openzeppelin/contracts/security/ReentrancyGuard.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/security/ReentrancyGuard.sol","exportedSymbols":{"ReentrancyGuard":[7249]},"id":7250,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7186,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"112:23:34"},{"abstract":true,"baseContracts":[],"canonicalName":"ReentrancyGuard","contractDependencies":[],"contractKind":"contract","documentation":{"id":7187,"nodeType":"StructuredDocumentation","src":"137:750:34","text":" @dev Contract module that helps prevent reentrant calls to a function.\n Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier\n available, which can be applied to functions to make sure there are no nested\n (reentrant) calls to them.\n Note that because there is a single `nonReentrant` guard, functions marked as\n `nonReentrant` may not call one another. This can be worked around by making\n those functions `private`, and then adding `external` `nonReentrant` entry\n points to them.\n TIP: If you would like to learn more about reentrancy and alternative ways\n to protect against it, check out our blog post\n https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]."},"fullyImplemented":true,"id":7249,"linearizedBaseContracts":[7249],"name":"ReentrancyGuard","nameLocation":"906:15:34","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":7190,"mutability":"constant","name":"_NOT_ENTERED","nameLocation":"1701:12:34","nodeType":"VariableDeclaration","scope":7249,"src":"1676:41:34","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7188,"name":"uint256","nodeType":"ElementaryTypeName","src":"1676:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":7189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1716:1:34","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"constant":true,"id":7193,"mutability":"constant","name":"_ENTERED","nameLocation":"1748:8:34","nodeType":"VariableDeclaration","scope":7249,"src":"1723:37:34","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7191,"name":"uint256","nodeType":"ElementaryTypeName","src":"1723:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"32","id":7192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1759:1:34","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"private"},{"constant":false,"id":7195,"mutability":"mutable","name":"_status","nameLocation":"1783:7:34","nodeType":"VariableDeclaration","scope":7249,"src":"1767:23:34","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7194,"name":"uint256","nodeType":"ElementaryTypeName","src":"1767:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"body":{"id":7202,"nodeType":"Block","src":"1811:39:34","statements":[{"expression":{"id":7200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7198,"name":"_status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7195,"src":"1821:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7199,"name":"_NOT_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7190,"src":"1831:12:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1821:22:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7201,"nodeType":"ExpressionStatement","src":"1821:22:34"}]},"id":7203,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":7196,"nodeType":"ParameterList","parameters":[],"src":"1808:2:34"},"returnParameters":{"id":7197,"nodeType":"ParameterList","parameters":[],"src":"1811:0:34"},"scope":7249,"src":"1797:53:34","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":7213,"nodeType":"Block","src":"2251:79:34","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":7206,"name":"_nonReentrantBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7229,"src":"2261:19:34","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":7207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2261:21:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7208,"nodeType":"ExpressionStatement","src":"2261:21:34"},{"id":7209,"nodeType":"PlaceholderStatement","src":"2292:1:34"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":7210,"name":"_nonReentrantAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7237,"src":"2303:18:34","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":7211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2303:20:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7212,"nodeType":"ExpressionStatement","src":"2303:20:34"}]},"documentation":{"id":7204,"nodeType":"StructuredDocumentation","src":"1856:366:34","text":" @dev Prevents a contract from calling itself, directly or indirectly.\n Calling a `nonReentrant` function from another `nonReentrant`\n function is not supported. It is possible to prevent this from happening\n by making the `nonReentrant` function external, and making it call a\n `private` function that does the actual work."},"id":7214,"name":"nonReentrant","nameLocation":"2236:12:34","nodeType":"ModifierDefinition","parameters":{"id":7205,"nodeType":"ParameterList","parameters":[],"src":"2248:2:34"},"src":"2227:103:34","virtual":false,"visibility":"internal"},{"body":{"id":7228,"nodeType":"Block","src":"2375:248:34","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7218,"name":"_status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7195,"src":"2468:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":7219,"name":"_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7193,"src":"2479:8:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2468:19:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5265656e7472616e637947756172643a207265656e7472616e742063616c6c","id":7221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2489:33:34","typeDescriptions":{"typeIdentifier":"t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619","typeString":"literal_string \"ReentrancyGuard: reentrant call\""},"value":"ReentrancyGuard: reentrant call"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619","typeString":"literal_string \"ReentrancyGuard: reentrant call\""}],"id":7217,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2460:7:34","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2460:63:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7223,"nodeType":"ExpressionStatement","src":"2460:63:34"},{"expression":{"id":7226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7224,"name":"_status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7195,"src":"2598:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7225,"name":"_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7193,"src":"2608:8:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2598:18:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7227,"nodeType":"ExpressionStatement","src":"2598:18:34"}]},"id":7229,"implemented":true,"kind":"function","modifiers":[],"name":"_nonReentrantBefore","nameLocation":"2345:19:34","nodeType":"FunctionDefinition","parameters":{"id":7215,"nodeType":"ParameterList","parameters":[],"src":"2364:2:34"},"returnParameters":{"id":7216,"nodeType":"ParameterList","parameters":[],"src":"2375:0:34"},"scope":7249,"src":"2336:287:34","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":7236,"nodeType":"Block","src":"2667:171:34","statements":[{"expression":{"id":7234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7232,"name":"_status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7195,"src":"2809:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7233,"name":"_NOT_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7190,"src":"2819:12:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2809:22:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7235,"nodeType":"ExpressionStatement","src":"2809:22:34"}]},"id":7237,"implemented":true,"kind":"function","modifiers":[],"name":"_nonReentrantAfter","nameLocation":"2638:18:34","nodeType":"FunctionDefinition","parameters":{"id":7230,"nodeType":"ParameterList","parameters":[],"src":"2656:2:34"},"returnParameters":{"id":7231,"nodeType":"ParameterList","parameters":[],"src":"2667:0:34"},"scope":7249,"src":"2629:209:34","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":7247,"nodeType":"Block","src":"3081:43:34","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7243,"name":"_status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7195,"src":"3098:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":7244,"name":"_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7193,"src":"3109:8:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3098:19:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7242,"id":7246,"nodeType":"Return","src":"3091:26:34"}]},"documentation":{"id":7238,"nodeType":"StructuredDocumentation","src":"2844:168:34","text":" @dev Returns true if the reentrancy guard is currently set to \"entered\", which indicates there is a\n `nonReentrant` function in the call stack."},"id":7248,"implemented":true,"kind":"function","modifiers":[],"name":"_reentrancyGuardEntered","nameLocation":"3026:23:34","nodeType":"FunctionDefinition","parameters":{"id":7239,"nodeType":"ParameterList","parameters":[],"src":"3049:2:34"},"returnParameters":{"id":7242,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7241,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7248,"src":"3075:4:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7240,"name":"bool","nodeType":"ElementaryTypeName","src":"3075:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3074:6:34"},"scope":7249,"src":"3017:107:34","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":7250,"src":"888:2238:34","usedErrors":[],"usedEvents":[]}],"src":"112:3015:34"},"id":34},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","exportedSymbols":{"IERC20":[7327]},"id":7328,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7251,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"106:23:35"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20","contractDependencies":[],"contractKind":"interface","documentation":{"id":7252,"nodeType":"StructuredDocumentation","src":"131:70:35","text":" @dev Interface of the ERC20 standard as defined in the EIP."},"fullyImplemented":false,"id":7327,"linearizedBaseContracts":[7327],"name":"IERC20","nameLocation":"212:6:35","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":7253,"nodeType":"StructuredDocumentation","src":"225:158:35","text":" @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","id":7261,"name":"Transfer","nameLocation":"394:8:35","nodeType":"EventDefinition","parameters":{"id":7260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7255,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"419:4:35","nodeType":"VariableDeclaration","scope":7261,"src":"403:20:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7254,"name":"address","nodeType":"ElementaryTypeName","src":"403:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7257,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"441:2:35","nodeType":"VariableDeclaration","scope":7261,"src":"425:18:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7256,"name":"address","nodeType":"ElementaryTypeName","src":"425:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7259,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"453:5:35","nodeType":"VariableDeclaration","scope":7261,"src":"445:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7258,"name":"uint256","nodeType":"ElementaryTypeName","src":"445:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"402:57:35"},"src":"388:72:35"},{"anonymous":false,"documentation":{"id":7262,"nodeType":"StructuredDocumentation","src":"466:148:35","text":" @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","id":7270,"name":"Approval","nameLocation":"625:8:35","nodeType":"EventDefinition","parameters":{"id":7269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7264,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"650:5:35","nodeType":"VariableDeclaration","scope":7270,"src":"634:21:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7263,"name":"address","nodeType":"ElementaryTypeName","src":"634:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7266,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"673:7:35","nodeType":"VariableDeclaration","scope":7270,"src":"657:23:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7265,"name":"address","nodeType":"ElementaryTypeName","src":"657:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7268,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"690:5:35","nodeType":"VariableDeclaration","scope":7270,"src":"682:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7267,"name":"uint256","nodeType":"ElementaryTypeName","src":"682:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"633:63:35"},"src":"619:78:35"},{"documentation":{"id":7271,"nodeType":"StructuredDocumentation","src":"703:66:35","text":" @dev Returns the amount of tokens in existence."},"functionSelector":"18160ddd","id":7276,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"783:11:35","nodeType":"FunctionDefinition","parameters":{"id":7272,"nodeType":"ParameterList","parameters":[],"src":"794:2:35"},"returnParameters":{"id":7275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7274,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7276,"src":"820:7:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7273,"name":"uint256","nodeType":"ElementaryTypeName","src":"820:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"819:9:35"},"scope":7327,"src":"774:55:35","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":7277,"nodeType":"StructuredDocumentation","src":"835:72:35","text":" @dev Returns the amount of tokens owned by `account`."},"functionSelector":"70a08231","id":7284,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"921:9:35","nodeType":"FunctionDefinition","parameters":{"id":7280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7279,"mutability":"mutable","name":"account","nameLocation":"939:7:35","nodeType":"VariableDeclaration","scope":7284,"src":"931:15:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7278,"name":"address","nodeType":"ElementaryTypeName","src":"931:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"930:17:35"},"returnParameters":{"id":7283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7282,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7284,"src":"971:7:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7281,"name":"uint256","nodeType":"ElementaryTypeName","src":"971:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"970:9:35"},"scope":7327,"src":"912:68:35","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":7285,"nodeType":"StructuredDocumentation","src":"986:202:35","text":" @dev Moves `amount` tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"a9059cbb","id":7294,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1202:8:35","nodeType":"FunctionDefinition","parameters":{"id":7290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7287,"mutability":"mutable","name":"to","nameLocation":"1219:2:35","nodeType":"VariableDeclaration","scope":7294,"src":"1211:10:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7286,"name":"address","nodeType":"ElementaryTypeName","src":"1211:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7289,"mutability":"mutable","name":"amount","nameLocation":"1231:6:35","nodeType":"VariableDeclaration","scope":7294,"src":"1223:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7288,"name":"uint256","nodeType":"ElementaryTypeName","src":"1223:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1210:28:35"},"returnParameters":{"id":7293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7292,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7294,"src":"1257:4:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7291,"name":"bool","nodeType":"ElementaryTypeName","src":"1257:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1256:6:35"},"scope":7327,"src":"1193:70:35","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":7295,"nodeType":"StructuredDocumentation","src":"1269:264:35","text":" @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called."},"functionSelector":"dd62ed3e","id":7304,"implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"1547:9:35","nodeType":"FunctionDefinition","parameters":{"id":7300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7297,"mutability":"mutable","name":"owner","nameLocation":"1565:5:35","nodeType":"VariableDeclaration","scope":7304,"src":"1557:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7296,"name":"address","nodeType":"ElementaryTypeName","src":"1557:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7299,"mutability":"mutable","name":"spender","nameLocation":"1580:7:35","nodeType":"VariableDeclaration","scope":7304,"src":"1572:15:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7298,"name":"address","nodeType":"ElementaryTypeName","src":"1572:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1556:32:35"},"returnParameters":{"id":7303,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7302,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7304,"src":"1612:7:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7301,"name":"uint256","nodeType":"ElementaryTypeName","src":"1612:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1611:9:35"},"scope":7327,"src":"1538:83:35","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":7305,"nodeType":"StructuredDocumentation","src":"1627:642:35","text":" @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event."},"functionSelector":"095ea7b3","id":7314,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"2283:7:35","nodeType":"FunctionDefinition","parameters":{"id":7310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7307,"mutability":"mutable","name":"spender","nameLocation":"2299:7:35","nodeType":"VariableDeclaration","scope":7314,"src":"2291:15:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7306,"name":"address","nodeType":"ElementaryTypeName","src":"2291:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7309,"mutability":"mutable","name":"amount","nameLocation":"2316:6:35","nodeType":"VariableDeclaration","scope":7314,"src":"2308:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7308,"name":"uint256","nodeType":"ElementaryTypeName","src":"2308:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2290:33:35"},"returnParameters":{"id":7313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7312,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7314,"src":"2342:4:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7311,"name":"bool","nodeType":"ElementaryTypeName","src":"2342:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2341:6:35"},"scope":7327,"src":"2274:74:35","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":7315,"nodeType":"StructuredDocumentation","src":"2354:287:35","text":" @dev Moves `amount` tokens from `from` to `to` using the\n allowance mechanism. `amount` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","id":7326,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"2655:12:35","nodeType":"FunctionDefinition","parameters":{"id":7322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7317,"mutability":"mutable","name":"from","nameLocation":"2676:4:35","nodeType":"VariableDeclaration","scope":7326,"src":"2668:12:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7316,"name":"address","nodeType":"ElementaryTypeName","src":"2668:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7319,"mutability":"mutable","name":"to","nameLocation":"2690:2:35","nodeType":"VariableDeclaration","scope":7326,"src":"2682:10:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7318,"name":"address","nodeType":"ElementaryTypeName","src":"2682:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7321,"mutability":"mutable","name":"amount","nameLocation":"2702:6:35","nodeType":"VariableDeclaration","scope":7326,"src":"2694:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7320,"name":"uint256","nodeType":"ElementaryTypeName","src":"2694:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2667:42:35"},"returnParameters":{"id":7325,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7324,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7326,"src":"2728:4:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7323,"name":"bool","nodeType":"ElementaryTypeName","src":"2728:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2727:6:35"},"scope":7327,"src":"2646:88:35","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":7328,"src":"202:2534:35","usedErrors":[],"usedEvents":[7261,7270]}],"src":"106:2631:35"},"id":35},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol","exportedSymbols":{"IERC20Permit":[7363]},"id":7364,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7329,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"123:23:36"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20Permit","contractDependencies":[],"contractKind":"interface","documentation":{"id":7330,"nodeType":"StructuredDocumentation","src":"148:1963:36","text":" @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\n https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\n Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\n presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\n need to send a transaction, and thus is not required to hold Ether at all.\n ==== Security Considerations\n There are two important considerations concerning the use of `permit`. The first is that a valid permit signature\n expresses an allowance, and it should not be assumed to convey additional meaning. In particular, it should not be\n considered as an intention to spend the allowance in any specific way. The second is that because permits have\n built-in replay protection and can be submitted by anyone, they can be frontrun. A protocol that uses permits should\n take this into consideration and allow a `permit` call to fail. Combining these two aspects, a pattern that may be\n generally recommended is:\n ```solidity\n function doThingWithPermit(..., uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public {\n     try token.permit(msg.sender, address(this), value, deadline, v, r, s) {} catch {}\n     doThing(..., value);\n }\n function doThing(..., uint256 value) public {\n     token.safeTransferFrom(msg.sender, address(this), value);\n     ...\n }\n ```\n Observe that: 1) `msg.sender` is used as the owner, leaving no ambiguity as to the signer intent, and 2) the use of\n `try/catch` allows the permit to fail and makes the code tolerant to frontrunning. (See also\n {SafeERC20-safeTransferFrom}).\n Additionally, note that smart contract wallets (such as Argent or Safe) are not able to produce permit signatures, so\n contracts should have entry points that don't rely on permit."},"fullyImplemented":false,"id":7363,"linearizedBaseContracts":[7363],"name":"IERC20Permit","nameLocation":"2122:12:36","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":7331,"nodeType":"StructuredDocumentation","src":"2141:850:36","text":" @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\n given ``owner``'s signed approval.\n IMPORTANT: The same issues {IERC20-approve} has related to transaction\n ordering also apply here.\n Emits an {Approval} event.\n Requirements:\n - `spender` cannot be the zero address.\n - `deadline` must be a timestamp in the future.\n - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\n over the EIP712-formatted function arguments.\n - the signature must use ``owner``'s current nonce (see {nonces}).\n For more information on the signature format, see the\n https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\n section].\n CAUTION: See Security Considerations above."},"functionSelector":"d505accf","id":7348,"implemented":false,"kind":"function","modifiers":[],"name":"permit","nameLocation":"3005:6:36","nodeType":"FunctionDefinition","parameters":{"id":7346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7333,"mutability":"mutable","name":"owner","nameLocation":"3029:5:36","nodeType":"VariableDeclaration","scope":7348,"src":"3021:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7332,"name":"address","nodeType":"ElementaryTypeName","src":"3021:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7335,"mutability":"mutable","name":"spender","nameLocation":"3052:7:36","nodeType":"VariableDeclaration","scope":7348,"src":"3044:15:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7334,"name":"address","nodeType":"ElementaryTypeName","src":"3044:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7337,"mutability":"mutable","name":"value","nameLocation":"3077:5:36","nodeType":"VariableDeclaration","scope":7348,"src":"3069:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7336,"name":"uint256","nodeType":"ElementaryTypeName","src":"3069:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7339,"mutability":"mutable","name":"deadline","nameLocation":"3100:8:36","nodeType":"VariableDeclaration","scope":7348,"src":"3092:16:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7338,"name":"uint256","nodeType":"ElementaryTypeName","src":"3092:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7341,"mutability":"mutable","name":"v","nameLocation":"3124:1:36","nodeType":"VariableDeclaration","scope":7348,"src":"3118:7:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7340,"name":"uint8","nodeType":"ElementaryTypeName","src":"3118:5:36","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":7343,"mutability":"mutable","name":"r","nameLocation":"3143:1:36","nodeType":"VariableDeclaration","scope":7348,"src":"3135:9:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7342,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3135:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7345,"mutability":"mutable","name":"s","nameLocation":"3162:1:36","nodeType":"VariableDeclaration","scope":7348,"src":"3154:9:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7344,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3154:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3011:158:36"},"returnParameters":{"id":7347,"nodeType":"ParameterList","parameters":[],"src":"3178:0:36"},"scope":7363,"src":"2996:183:36","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":7349,"nodeType":"StructuredDocumentation","src":"3185:294:36","text":" @dev Returns the current nonce for `owner`. This value must be\n included whenever a signature is generated for {permit}.\n Every successful call to {permit} increases ``owner``'s nonce by one. This\n prevents a signature from being used multiple times."},"functionSelector":"7ecebe00","id":7356,"implemented":false,"kind":"function","modifiers":[],"name":"nonces","nameLocation":"3493:6:36","nodeType":"FunctionDefinition","parameters":{"id":7352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7351,"mutability":"mutable","name":"owner","nameLocation":"3508:5:36","nodeType":"VariableDeclaration","scope":7356,"src":"3500:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7350,"name":"address","nodeType":"ElementaryTypeName","src":"3500:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3499:15:36"},"returnParameters":{"id":7355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7354,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7356,"src":"3538:7:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7353,"name":"uint256","nodeType":"ElementaryTypeName","src":"3538:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3537:9:36"},"scope":7363,"src":"3484:63:36","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":7357,"nodeType":"StructuredDocumentation","src":"3553:128:36","text":" @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"functionSelector":"3644e515","id":7362,"implemented":false,"kind":"function","modifiers":[],"name":"DOMAIN_SEPARATOR","nameLocation":"3748:16:36","nodeType":"FunctionDefinition","parameters":{"id":7358,"nodeType":"ParameterList","parameters":[],"src":"3764:2:36"},"returnParameters":{"id":7361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7360,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7362,"src":"3790:7:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7359,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3790:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3789:9:36"},"scope":7363,"src":"3739:60:36","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":7364,"src":"2112:1689:36","usedErrors":[],"usedEvents":[]}],"src":"123:3679:36"},"id":36},"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","exportedSymbols":{"Address":[8069],"IERC20":[7327],"IERC20Permit":[7363],"SafeERC20":[7739]},"id":7740,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7365,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"115:23:37"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"../IERC20.sol","id":7366,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7740,"sourceUnit":7328,"src":"140:23:37","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol","file":"../extensions/IERC20Permit.sol","id":7367,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7740,"sourceUnit":7364,"src":"164:40:37","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","file":"../../../utils/Address.sol","id":7368,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7740,"sourceUnit":8070,"src":"205:36:37","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"SafeERC20","contractDependencies":[],"contractKind":"library","documentation":{"id":7369,"nodeType":"StructuredDocumentation","src":"243:457:37","text":" @title SafeERC20\n @dev Wrappers around ERC20 operations that throw on failure (when the token\n contract returns false). Tokens that return no value (and instead revert or\n throw on failure) are also supported, non-reverting calls are assumed to be\n successful.\n To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n which allows you to call the safe operations as `token.safeTransfer(...)`, etc."},"fullyImplemented":true,"id":7739,"linearizedBaseContracts":[7739],"name":"SafeERC20","nameLocation":"709:9:37","nodeType":"ContractDefinition","nodes":[{"global":false,"id":7372,"libraryName":{"id":7370,"name":"Address","nameLocations":["731:7:37"],"nodeType":"IdentifierPath","referencedDeclaration":8069,"src":"731:7:37"},"nodeType":"UsingForDirective","src":"725:26:37","typeName":{"id":7371,"name":"address","nodeType":"ElementaryTypeName","src":"743:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"body":{"id":7395,"nodeType":"Block","src":"1013:103:37","statements":[{"expression":{"arguments":[{"id":7384,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7376,"src":"1043:5:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":7387,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7376,"src":"1073:5:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"}},"id":7388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1079:8:37","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":7294,"src":"1073:14:37","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":7389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1088:8:37","memberName":"selector","nodeType":"MemberAccess","src":"1073:23:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":7390,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7378,"src":"1098:2:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7391,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7380,"src":"1102:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7385,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1050:3:37","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7386,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1054:18:37","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"1050:22:37","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":7392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1050:58:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7383,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7690,"src":"1023:19:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$7327_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":7393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1023:86:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7394,"nodeType":"ExpressionStatement","src":"1023:86:37"}]},"documentation":{"id":7373,"nodeType":"StructuredDocumentation","src":"757:179:37","text":" @dev Transfer `value` amount of `token` from the calling contract to `to`. If `token` returns no value,\n non-reverting calls are assumed to be successful."},"id":7396,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransfer","nameLocation":"950:12:37","nodeType":"FunctionDefinition","parameters":{"id":7381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7376,"mutability":"mutable","name":"token","nameLocation":"970:5:37","nodeType":"VariableDeclaration","scope":7396,"src":"963:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"},"typeName":{"id":7375,"nodeType":"UserDefinedTypeName","pathNode":{"id":7374,"name":"IERC20","nameLocations":["963:6:37"],"nodeType":"IdentifierPath","referencedDeclaration":7327,"src":"963:6:37"},"referencedDeclaration":7327,"src":"963:6:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":7378,"mutability":"mutable","name":"to","nameLocation":"985:2:37","nodeType":"VariableDeclaration","scope":7396,"src":"977:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7377,"name":"address","nodeType":"ElementaryTypeName","src":"977:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7380,"mutability":"mutable","name":"value","nameLocation":"997:5:37","nodeType":"VariableDeclaration","scope":7396,"src":"989:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7379,"name":"uint256","nodeType":"ElementaryTypeName","src":"989:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"962:41:37"},"returnParameters":{"id":7382,"nodeType":"ParameterList","parameters":[],"src":"1013:0:37"},"scope":7739,"src":"941:175:37","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":7422,"nodeType":"Block","src":"1445:113:37","statements":[{"expression":{"arguments":[{"id":7410,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7400,"src":"1475:5:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":7413,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7400,"src":"1505:5:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"}},"id":7414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1511:12:37","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":7326,"src":"1505:18:37","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":7415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1524:8:37","memberName":"selector","nodeType":"MemberAccess","src":"1505:27:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":7416,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7402,"src":"1534:4:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7417,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7404,"src":"1540:2:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7418,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7406,"src":"1544:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7411,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1482:3:37","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7412,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1486:18:37","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"1482:22:37","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":7419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1482:68:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7409,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7690,"src":"1455:19:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$7327_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":7420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1455:96:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7421,"nodeType":"ExpressionStatement","src":"1455:96:37"}]},"documentation":{"id":7397,"nodeType":"StructuredDocumentation","src":"1122:228:37","text":" @dev Transfer `value` amount of `token` from `from` to `to`, spending the approval given by `from` to the\n calling contract. If `token` returns no value, non-reverting calls are assumed to be successful."},"id":7423,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"1364:16:37","nodeType":"FunctionDefinition","parameters":{"id":7407,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7400,"mutability":"mutable","name":"token","nameLocation":"1388:5:37","nodeType":"VariableDeclaration","scope":7423,"src":"1381:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"},"typeName":{"id":7399,"nodeType":"UserDefinedTypeName","pathNode":{"id":7398,"name":"IERC20","nameLocations":["1381:6:37"],"nodeType":"IdentifierPath","referencedDeclaration":7327,"src":"1381:6:37"},"referencedDeclaration":7327,"src":"1381:6:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":7402,"mutability":"mutable","name":"from","nameLocation":"1403:4:37","nodeType":"VariableDeclaration","scope":7423,"src":"1395:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7401,"name":"address","nodeType":"ElementaryTypeName","src":"1395:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7404,"mutability":"mutable","name":"to","nameLocation":"1417:2:37","nodeType":"VariableDeclaration","scope":7423,"src":"1409:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7403,"name":"address","nodeType":"ElementaryTypeName","src":"1409:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7406,"mutability":"mutable","name":"value","nameLocation":"1429:5:37","nodeType":"VariableDeclaration","scope":7423,"src":"1421:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7405,"name":"uint256","nodeType":"ElementaryTypeName","src":"1421:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1380:55:37"},"returnParameters":{"id":7408,"nodeType":"ParameterList","parameters":[],"src":"1445:0:37"},"scope":7739,"src":"1355:203:37","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":7466,"nodeType":"Block","src":"1894:497:37","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7435,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7431,"src":"2143:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":7436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2152:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2143:10:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":7438,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2142:12:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":7443,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2183:4:37","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$7739","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$7739","typeString":"library SafeERC20"}],"id":7442,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2175:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7441,"name":"address","nodeType":"ElementaryTypeName","src":"2175:7:37","typeDescriptions":{}}},"id":7444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2175:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7445,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7429,"src":"2190:7:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7439,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7427,"src":"2159:5:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"}},"id":7440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2165:9:37","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":7304,"src":"2159:15:37","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":7446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2159:39:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":7447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2202:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2159:44:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":7449,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2158:46:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2142:62:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365","id":7451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2218:56:37","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25","typeString":"literal_string \"SafeERC20: approve from non-zero to non-zero allowance\""},"value":"SafeERC20: approve from non-zero to non-zero allowance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25","typeString":"literal_string \"SafeERC20: approve from non-zero to non-zero allowance\""}],"id":7434,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2121:7:37","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2121:163:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7453,"nodeType":"ExpressionStatement","src":"2121:163:37"},{"expression":{"arguments":[{"id":7455,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7427,"src":"2314:5:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":7458,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7427,"src":"2344:5:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"}},"id":7459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2350:7:37","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":7314,"src":"2344:13:37","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":7460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2358:8:37","memberName":"selector","nodeType":"MemberAccess","src":"2344:22:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":7461,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7429,"src":"2368:7:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7462,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7431,"src":"2377:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7456,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2321:3:37","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7457,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2325:18:37","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2321:22:37","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":7463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2321:62:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7454,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7690,"src":"2294:19:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$7327_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":7464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2294:90:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7465,"nodeType":"ExpressionStatement","src":"2294:90:37"}]},"documentation":{"id":7424,"nodeType":"StructuredDocumentation","src":"1564:249:37","text":" @dev Deprecated. This function has issues similar to the ones found in\n {IERC20-approve}, and its usage is discouraged.\n Whenever possible, use {safeIncreaseAllowance} and\n {safeDecreaseAllowance} instead."},"id":7467,"implemented":true,"kind":"function","modifiers":[],"name":"safeApprove","nameLocation":"1827:11:37","nodeType":"FunctionDefinition","parameters":{"id":7432,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7427,"mutability":"mutable","name":"token","nameLocation":"1846:5:37","nodeType":"VariableDeclaration","scope":7467,"src":"1839:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"},"typeName":{"id":7426,"nodeType":"UserDefinedTypeName","pathNode":{"id":7425,"name":"IERC20","nameLocations":["1839:6:37"],"nodeType":"IdentifierPath","referencedDeclaration":7327,"src":"1839:6:37"},"referencedDeclaration":7327,"src":"1839:6:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":7429,"mutability":"mutable","name":"spender","nameLocation":"1861:7:37","nodeType":"VariableDeclaration","scope":7467,"src":"1853:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7428,"name":"address","nodeType":"ElementaryTypeName","src":"1853:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7431,"mutability":"mutable","name":"value","nameLocation":"1878:5:37","nodeType":"VariableDeclaration","scope":7467,"src":"1870:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7430,"name":"uint256","nodeType":"ElementaryTypeName","src":"1870:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1838:46:37"},"returnParameters":{"id":7433,"nodeType":"ParameterList","parameters":[],"src":"1894:0:37"},"scope":7739,"src":"1818:573:37","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":7503,"nodeType":"Block","src":"2668:194:37","statements":[{"assignments":[7479],"declarations":[{"constant":false,"id":7479,"mutability":"mutable","name":"oldAllowance","nameLocation":"2686:12:37","nodeType":"VariableDeclaration","scope":7503,"src":"2678:20:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7478,"name":"uint256","nodeType":"ElementaryTypeName","src":"2678:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7488,"initialValue":{"arguments":[{"arguments":[{"id":7484,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2725:4:37","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$7739","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$7739","typeString":"library SafeERC20"}],"id":7483,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2717:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7482,"name":"address","nodeType":"ElementaryTypeName","src":"2717:7:37","typeDescriptions":{}}},"id":7485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2717:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7486,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7473,"src":"2732:7:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7480,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7471,"src":"2701:5:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"}},"id":7481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2707:9:37","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":7304,"src":"2701:15:37","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":7487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2701:39:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2678:62:37"},{"expression":{"arguments":[{"id":7490,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7471,"src":"2770:5:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":7493,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7471,"src":"2800:5:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"}},"id":7494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2806:7:37","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":7314,"src":"2800:13:37","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":7495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2814:8:37","memberName":"selector","nodeType":"MemberAccess","src":"2800:22:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":7496,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7473,"src":"2824:7:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7497,"name":"oldAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7479,"src":"2833:12:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":7498,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7475,"src":"2848:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2833:20:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7491,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2777:3:37","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7492,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2781:18:37","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2777:22:37","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":7500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2777:77:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7489,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7690,"src":"2750:19:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$7327_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":7501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2750:105:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7502,"nodeType":"ExpressionStatement","src":"2750:105:37"}]},"documentation":{"id":7468,"nodeType":"StructuredDocumentation","src":"2397:180:37","text":" @dev Increase the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\n non-reverting calls are assumed to be successful."},"id":7504,"implemented":true,"kind":"function","modifiers":[],"name":"safeIncreaseAllowance","nameLocation":"2591:21:37","nodeType":"FunctionDefinition","parameters":{"id":7476,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7471,"mutability":"mutable","name":"token","nameLocation":"2620:5:37","nodeType":"VariableDeclaration","scope":7504,"src":"2613:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"},"typeName":{"id":7470,"nodeType":"UserDefinedTypeName","pathNode":{"id":7469,"name":"IERC20","nameLocations":["2613:6:37"],"nodeType":"IdentifierPath","referencedDeclaration":7327,"src":"2613:6:37"},"referencedDeclaration":7327,"src":"2613:6:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":7473,"mutability":"mutable","name":"spender","nameLocation":"2635:7:37","nodeType":"VariableDeclaration","scope":7504,"src":"2627:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7472,"name":"address","nodeType":"ElementaryTypeName","src":"2627:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7475,"mutability":"mutable","name":"value","nameLocation":"2652:5:37","nodeType":"VariableDeclaration","scope":7504,"src":"2644:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7474,"name":"uint256","nodeType":"ElementaryTypeName","src":"2644:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2612:46:37"},"returnParameters":{"id":7477,"nodeType":"ParameterList","parameters":[],"src":"2668:0:37"},"scope":7739,"src":"2582:280:37","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":7548,"nodeType":"Block","src":"3139:321:37","statements":[{"id":7547,"nodeType":"UncheckedBlock","src":"3149:305:37","statements":[{"assignments":[7516],"declarations":[{"constant":false,"id":7516,"mutability":"mutable","name":"oldAllowance","nameLocation":"3181:12:37","nodeType":"VariableDeclaration","scope":7547,"src":"3173:20:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7515,"name":"uint256","nodeType":"ElementaryTypeName","src":"3173:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7525,"initialValue":{"arguments":[{"arguments":[{"id":7521,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3220:4:37","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$7739","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$7739","typeString":"library SafeERC20"}],"id":7520,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3212:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7519,"name":"address","nodeType":"ElementaryTypeName","src":"3212:7:37","typeDescriptions":{}}},"id":7522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3212:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7523,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7510,"src":"3227:7:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7517,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7508,"src":"3196:5:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"}},"id":7518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3202:9:37","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":7304,"src":"3196:15:37","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":7524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3196:39:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3173:62:37"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7527,"name":"oldAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7516,"src":"3257:12:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":7528,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7512,"src":"3273:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3257:21:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f","id":7530,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3280:43:37","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a","typeString":"literal_string \"SafeERC20: decreased allowance below zero\""},"value":"SafeERC20: decreased allowance below zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a","typeString":"literal_string \"SafeERC20: decreased allowance below zero\""}],"id":7526,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3249:7:37","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3249:75:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7532,"nodeType":"ExpressionStatement","src":"3249:75:37"},{"expression":{"arguments":[{"id":7534,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7508,"src":"3358:5:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":7537,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7508,"src":"3388:5:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"}},"id":7538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3394:7:37","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":7314,"src":"3388:13:37","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":7539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3402:8:37","memberName":"selector","nodeType":"MemberAccess","src":"3388:22:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":7540,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7510,"src":"3412:7:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7541,"name":"oldAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7516,"src":"3421:12:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":7542,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7512,"src":"3436:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3421:20:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7535,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3365:3:37","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7536,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3369:18:37","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"3365:22:37","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":7544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3365:77:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7533,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7690,"src":"3338:19:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$7327_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":7545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3338:105:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7546,"nodeType":"ExpressionStatement","src":"3338:105:37"}]}]},"documentation":{"id":7505,"nodeType":"StructuredDocumentation","src":"2868:180:37","text":" @dev Decrease the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\n non-reverting calls are assumed to be successful."},"id":7549,"implemented":true,"kind":"function","modifiers":[],"name":"safeDecreaseAllowance","nameLocation":"3062:21:37","nodeType":"FunctionDefinition","parameters":{"id":7513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7508,"mutability":"mutable","name":"token","nameLocation":"3091:5:37","nodeType":"VariableDeclaration","scope":7549,"src":"3084:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"},"typeName":{"id":7507,"nodeType":"UserDefinedTypeName","pathNode":{"id":7506,"name":"IERC20","nameLocations":["3084:6:37"],"nodeType":"IdentifierPath","referencedDeclaration":7327,"src":"3084:6:37"},"referencedDeclaration":7327,"src":"3084:6:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":7510,"mutability":"mutable","name":"spender","nameLocation":"3106:7:37","nodeType":"VariableDeclaration","scope":7549,"src":"3098:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7509,"name":"address","nodeType":"ElementaryTypeName","src":"3098:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7512,"mutability":"mutable","name":"value","nameLocation":"3123:5:37","nodeType":"VariableDeclaration","scope":7549,"src":"3115:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7511,"name":"uint256","nodeType":"ElementaryTypeName","src":"3115:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3083:46:37"},"returnParameters":{"id":7514,"nodeType":"ParameterList","parameters":[],"src":"3139:0:37"},"scope":7739,"src":"3053:407:37","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":7595,"nodeType":"Block","src":"3856:333:37","statements":[{"assignments":[7561],"declarations":[{"constant":false,"id":7561,"mutability":"mutable","name":"approvalCall","nameLocation":"3879:12:37","nodeType":"VariableDeclaration","scope":7595,"src":"3866:25:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7560,"name":"bytes","nodeType":"ElementaryTypeName","src":"3866:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":7570,"initialValue":{"arguments":[{"expression":{"expression":{"id":7564,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7553,"src":"3917:5:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"}},"id":7565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3923:7:37","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":7314,"src":"3917:13:37","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":7566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3931:8:37","memberName":"selector","nodeType":"MemberAccess","src":"3917:22:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":7567,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7555,"src":"3941:7:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7568,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7557,"src":"3950:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7562,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3894:3:37","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7563,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3898:18:37","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"3894:22:37","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":7569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3894:62:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3866:90:37"},{"condition":{"id":7575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3971:45:37","subExpression":{"arguments":[{"id":7572,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7553,"src":"3996:5:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"}},{"id":7573,"name":"approvalCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7561,"src":"4003:12:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7571,"name":"_callOptionalReturnBool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7738,"src":"3972:23:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$7327_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (contract IERC20,bytes memory) returns (bool)"}},"id":7574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3972:44:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7594,"nodeType":"IfStatement","src":"3967:216:37","trueBody":{"id":7593,"nodeType":"Block","src":"4018:165:37","statements":[{"expression":{"arguments":[{"id":7577,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7553,"src":"4052:5:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":7580,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7553,"src":"4082:5:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"}},"id":7581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4088:7:37","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":7314,"src":"4082:13:37","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":7582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4096:8:37","memberName":"selector","nodeType":"MemberAccess","src":"4082:22:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":7583,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7555,"src":"4106:7:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":7584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4115:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":7578,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4059:3:37","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7579,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4063:18:37","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"4059:22:37","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":7585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4059:58:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7576,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7690,"src":"4032:19:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$7327_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":7586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4032:86:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7587,"nodeType":"ExpressionStatement","src":"4032:86:37"},{"expression":{"arguments":[{"id":7589,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7553,"src":"4152:5:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"}},{"id":7590,"name":"approvalCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7561,"src":"4159:12:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7588,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7690,"src":"4132:19:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$7327_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":7591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4132:40:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7592,"nodeType":"ExpressionStatement","src":"4132:40:37"}]}}]},"documentation":{"id":7550,"nodeType":"StructuredDocumentation","src":"3466:308:37","text":" @dev Set the calling contract's allowance toward `spender` to `value`. If `token` returns no value,\n non-reverting calls are assumed to be successful. Meant to be used with tokens that require the approval\n to be set to zero before setting it to a non-zero value, such as USDT."},"id":7596,"implemented":true,"kind":"function","modifiers":[],"name":"forceApprove","nameLocation":"3788:12:37","nodeType":"FunctionDefinition","parameters":{"id":7558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7553,"mutability":"mutable","name":"token","nameLocation":"3808:5:37","nodeType":"VariableDeclaration","scope":7596,"src":"3801:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"},"typeName":{"id":7552,"nodeType":"UserDefinedTypeName","pathNode":{"id":7551,"name":"IERC20","nameLocations":["3801:6:37"],"nodeType":"IdentifierPath","referencedDeclaration":7327,"src":"3801:6:37"},"referencedDeclaration":7327,"src":"3801:6:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":7555,"mutability":"mutable","name":"spender","nameLocation":"3823:7:37","nodeType":"VariableDeclaration","scope":7596,"src":"3815:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7554,"name":"address","nodeType":"ElementaryTypeName","src":"3815:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7557,"mutability":"mutable","name":"value","nameLocation":"3840:5:37","nodeType":"VariableDeclaration","scope":7596,"src":"3832:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7556,"name":"uint256","nodeType":"ElementaryTypeName","src":"3832:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3800:46:37"},"returnParameters":{"id":7559,"nodeType":"ParameterList","parameters":[],"src":"3856:0:37"},"scope":7739,"src":"3779:410:37","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":7652,"nodeType":"Block","src":"4556:257:37","statements":[{"assignments":[7618],"declarations":[{"constant":false,"id":7618,"mutability":"mutable","name":"nonceBefore","nameLocation":"4574:11:37","nodeType":"VariableDeclaration","scope":7652,"src":"4566:19:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7617,"name":"uint256","nodeType":"ElementaryTypeName","src":"4566:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7623,"initialValue":{"arguments":[{"id":7621,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7602,"src":"4601:5:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7619,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7600,"src":"4588:5:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$7363","typeString":"contract IERC20Permit"}},"id":7620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4594:6:37","memberName":"nonces","nodeType":"MemberAccess","referencedDeclaration":7356,"src":"4588:12:37","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":7622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4588:19:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4566:41:37"},{"expression":{"arguments":[{"id":7627,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7602,"src":"4630:5:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7628,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7604,"src":"4637:7:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7629,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7606,"src":"4646:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7630,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7608,"src":"4653:8:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7631,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7610,"src":"4663:1:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":7632,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7612,"src":"4666:1:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7633,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7614,"src":"4669:1:37","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":7624,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7600,"src":"4617:5:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$7363","typeString":"contract IERC20Permit"}},"id":7626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4623:6:37","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":7348,"src":"4617:12:37","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":7634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4617:54:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7635,"nodeType":"ExpressionStatement","src":"4617:54:37"},{"assignments":[7637],"declarations":[{"constant":false,"id":7637,"mutability":"mutable","name":"nonceAfter","nameLocation":"4689:10:37","nodeType":"VariableDeclaration","scope":7652,"src":"4681:18:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7636,"name":"uint256","nodeType":"ElementaryTypeName","src":"4681:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7642,"initialValue":{"arguments":[{"id":7640,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7602,"src":"4715:5:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7638,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7600,"src":"4702:5:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$7363","typeString":"contract IERC20Permit"}},"id":7639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4708:6:37","memberName":"nonces","nodeType":"MemberAccess","referencedDeclaration":7356,"src":"4702:12:37","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":7641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4702:19:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4681:40:37"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7644,"name":"nonceAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7637,"src":"4739:10:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7645,"name":"nonceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7618,"src":"4753:11:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":7646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4767:1:37","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4753:15:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4739:29:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a207065726d697420646964206e6f742073756363656564","id":7649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4770:35:37","typeDescriptions":{"typeIdentifier":"t_stringliteral_cde8e927812a7a656f8f04e89ac4f4113d47940dd2125d11fcb8e0bd36bfc59d","typeString":"literal_string \"SafeERC20: permit did not succeed\""},"value":"SafeERC20: permit did not succeed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cde8e927812a7a656f8f04e89ac4f4113d47940dd2125d11fcb8e0bd36bfc59d","typeString":"literal_string \"SafeERC20: permit did not succeed\""}],"id":7643,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4731:7:37","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4731:75:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7651,"nodeType":"ExpressionStatement","src":"4731:75:37"}]},"documentation":{"id":7597,"nodeType":"StructuredDocumentation","src":"4195:141:37","text":" @dev Use a ERC-2612 signature to set the `owner` approval toward `spender` on `token`.\n Revert on invalid signature."},"id":7653,"implemented":true,"kind":"function","modifiers":[],"name":"safePermit","nameLocation":"4350:10:37","nodeType":"FunctionDefinition","parameters":{"id":7615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7600,"mutability":"mutable","name":"token","nameLocation":"4383:5:37","nodeType":"VariableDeclaration","scope":7653,"src":"4370:18:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$7363","typeString":"contract IERC20Permit"},"typeName":{"id":7599,"nodeType":"UserDefinedTypeName","pathNode":{"id":7598,"name":"IERC20Permit","nameLocations":["4370:12:37"],"nodeType":"IdentifierPath","referencedDeclaration":7363,"src":"4370:12:37"},"referencedDeclaration":7363,"src":"4370:12:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$7363","typeString":"contract IERC20Permit"}},"visibility":"internal"},{"constant":false,"id":7602,"mutability":"mutable","name":"owner","nameLocation":"4406:5:37","nodeType":"VariableDeclaration","scope":7653,"src":"4398:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7601,"name":"address","nodeType":"ElementaryTypeName","src":"4398:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7604,"mutability":"mutable","name":"spender","nameLocation":"4429:7:37","nodeType":"VariableDeclaration","scope":7653,"src":"4421:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7603,"name":"address","nodeType":"ElementaryTypeName","src":"4421:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7606,"mutability":"mutable","name":"value","nameLocation":"4454:5:37","nodeType":"VariableDeclaration","scope":7653,"src":"4446:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7605,"name":"uint256","nodeType":"ElementaryTypeName","src":"4446:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7608,"mutability":"mutable","name":"deadline","nameLocation":"4477:8:37","nodeType":"VariableDeclaration","scope":7653,"src":"4469:16:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7607,"name":"uint256","nodeType":"ElementaryTypeName","src":"4469:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7610,"mutability":"mutable","name":"v","nameLocation":"4501:1:37","nodeType":"VariableDeclaration","scope":7653,"src":"4495:7:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7609,"name":"uint8","nodeType":"ElementaryTypeName","src":"4495:5:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":7612,"mutability":"mutable","name":"r","nameLocation":"4520:1:37","nodeType":"VariableDeclaration","scope":7653,"src":"4512:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7611,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4512:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7614,"mutability":"mutable","name":"s","nameLocation":"4539:1:37","nodeType":"VariableDeclaration","scope":7653,"src":"4531:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7613,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4531:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4360:186:37"},"returnParameters":{"id":7616,"nodeType":"ParameterList","parameters":[],"src":"4556:0:37"},"scope":7739,"src":"4341:472:37","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":7689,"nodeType":"Block","src":"5266:572:37","statements":[{"assignments":[7663],"declarations":[{"constant":false,"id":7663,"mutability":"mutable","name":"returndata","nameLocation":"5628:10:37","nodeType":"VariableDeclaration","scope":7689,"src":"5615:23:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7662,"name":"bytes","nodeType":"ElementaryTypeName","src":"5615:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":7672,"initialValue":{"arguments":[{"id":7669,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7659,"src":"5669:4:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564","id":7670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5675:34:37","typeDescriptions":{"typeIdentifier":"t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b","typeString":"literal_string \"SafeERC20: low-level call failed\""},"value":"SafeERC20: low-level call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b","typeString":"literal_string \"SafeERC20: low-level call failed\""}],"expression":{"arguments":[{"id":7666,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7657,"src":"5649:5:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"}],"id":7665,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5641:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7664,"name":"address","nodeType":"ElementaryTypeName","src":"5641:7:37","typeDescriptions":{}}},"id":7667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5641:14:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5656:12:37","memberName":"functionCall","nodeType":"MemberAccess","referencedDeclaration":7829,"src":"5641:27:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$attached_to$_t_address_$","typeString":"function (address,bytes memory,string memory) returns (bytes memory)"}},"id":7671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5641:69:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"5615:95:37"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7674,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7663,"src":"5728:10:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5739:6:37","memberName":"length","nodeType":"MemberAccess","src":"5728:17:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":7676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5749:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5728:22:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":7680,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7663,"src":"5765:10:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":7682,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5778:4:37","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":7681,"name":"bool","nodeType":"ElementaryTypeName","src":"5778:4:37","typeDescriptions":{}}}],"id":7683,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5777:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":7678,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5754:3:37","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7679,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5758:6:37","memberName":"decode","nodeType":"MemberAccess","src":"5754:10:37","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":7684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5754:30:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5728:56:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564","id":7686,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5786:44:37","typeDescriptions":{"typeIdentifier":"t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd","typeString":"literal_string \"SafeERC20: ERC20 operation did not succeed\""},"value":"SafeERC20: ERC20 operation did not succeed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd","typeString":"literal_string \"SafeERC20: ERC20 operation did not succeed\""}],"id":7673,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5720:7:37","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5720:111:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7688,"nodeType":"ExpressionStatement","src":"5720:111:37"}]},"documentation":{"id":7654,"nodeType":"StructuredDocumentation","src":"4819:372:37","text":" @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n on the return value: the return value is optional (but if data is returned, it must not be false).\n @param token The token targeted by the call.\n @param data The call data (encoded using abi.encode or one of its variants)."},"id":7690,"implemented":true,"kind":"function","modifiers":[],"name":"_callOptionalReturn","nameLocation":"5205:19:37","nodeType":"FunctionDefinition","parameters":{"id":7660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7657,"mutability":"mutable","name":"token","nameLocation":"5232:5:37","nodeType":"VariableDeclaration","scope":7690,"src":"5225:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"},"typeName":{"id":7656,"nodeType":"UserDefinedTypeName","pathNode":{"id":7655,"name":"IERC20","nameLocations":["5225:6:37"],"nodeType":"IdentifierPath","referencedDeclaration":7327,"src":"5225:6:37"},"referencedDeclaration":7327,"src":"5225:6:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":7659,"mutability":"mutable","name":"data","nameLocation":"5252:4:37","nodeType":"VariableDeclaration","scope":7690,"src":"5239:17:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7658,"name":"bytes","nodeType":"ElementaryTypeName","src":"5239:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5224:33:37"},"returnParameters":{"id":7661,"nodeType":"ParameterList","parameters":[],"src":"5266:0:37"},"scope":7739,"src":"5196:642:37","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":7737,"nodeType":"Block","src":"6428:505:37","statements":[{"assignments":[7702,7704],"declarations":[{"constant":false,"id":7702,"mutability":"mutable","name":"success","nameLocation":"6729:7:37","nodeType":"VariableDeclaration","scope":7737,"src":"6724:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7701,"name":"bool","nodeType":"ElementaryTypeName","src":"6724:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7704,"mutability":"mutable","name":"returndata","nameLocation":"6751:10:37","nodeType":"VariableDeclaration","scope":7737,"src":"6738:23:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7703,"name":"bytes","nodeType":"ElementaryTypeName","src":"6738:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":7712,"initialValue":{"arguments":[{"id":7710,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7696,"src":"6785:4:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":7707,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7694,"src":"6773:5:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"}],"id":7706,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6765:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7705,"name":"address","nodeType":"ElementaryTypeName","src":"6765:7:37","typeDescriptions":{}}},"id":7708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6765:14:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6780:4:37","memberName":"call","nodeType":"MemberAccess","src":"6765:19:37","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":7711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6765:25:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6723:67:37"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7713,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7702,"src":"6819:7:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7714,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7704,"src":"6831:10:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6842:6:37","memberName":"length","nodeType":"MemberAccess","src":"6831:17:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":7716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6852:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6831:22:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":7720,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7704,"src":"6868:10:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":7722,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6881:4:37","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":7721,"name":"bool","nodeType":"ElementaryTypeName","src":"6881:4:37","typeDescriptions":{}}}],"id":7723,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6880:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":7718,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6857:3:37","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7719,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6861:6:37","memberName":"decode","nodeType":"MemberAccess","src":"6857:10:37","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":7724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6857:30:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6831:56:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":7726,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6830:58:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6819:69:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"arguments":[{"arguments":[{"id":7732,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7694,"src":"6919:5:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"}],"id":7731,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6911:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7730,"name":"address","nodeType":"ElementaryTypeName","src":"6911:7:37","typeDescriptions":{}}},"id":7733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6911:14:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7728,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8069,"src":"6892:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$8069_$","typeString":"type(library Address)"}},"id":7729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6900:10:37","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":7757,"src":"6892:18:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":7734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6892:34:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6819:107:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7700,"id":7736,"nodeType":"Return","src":"6800:126:37"}]},"documentation":{"id":7691,"nodeType":"StructuredDocumentation","src":"5844:490:37","text":" @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n on the return value: the return value is optional (but if data is returned, it must not be false).\n @param token The token targeted by the call.\n @param data The call data (encoded using abi.encode or one of its variants).\n This is a variant of {_callOptionalReturn} that silents catches all reverts and returns a bool instead."},"id":7738,"implemented":true,"kind":"function","modifiers":[],"name":"_callOptionalReturnBool","nameLocation":"6348:23:37","nodeType":"FunctionDefinition","parameters":{"id":7697,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7694,"mutability":"mutable","name":"token","nameLocation":"6379:5:37","nodeType":"VariableDeclaration","scope":7738,"src":"6372:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"},"typeName":{"id":7693,"nodeType":"UserDefinedTypeName","pathNode":{"id":7692,"name":"IERC20","nameLocations":["6372:6:37"],"nodeType":"IdentifierPath","referencedDeclaration":7327,"src":"6372:6:37"},"referencedDeclaration":7327,"src":"6372:6:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$7327","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":7696,"mutability":"mutable","name":"data","nameLocation":"6399:4:37","nodeType":"VariableDeclaration","scope":7738,"src":"6386:17:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7695,"name":"bytes","nodeType":"ElementaryTypeName","src":"6386:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6371:33:37"},"returnParameters":{"id":7700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7699,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7738,"src":"6422:4:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7698,"name":"bool","nodeType":"ElementaryTypeName","src":"6422:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6421:6:37"},"scope":7739,"src":"6339:594:37","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":7740,"src":"701:6234:37","usedErrors":[],"usedEvents":[]}],"src":"115:6821:37"},"id":37},"@openzeppelin/contracts/utils/Address.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","exportedSymbols":{"Address":[8069]},"id":8070,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7741,"literals":["solidity","^","0.8",".1"],"nodeType":"PragmaDirective","src":"101:23:38"},{"abstract":false,"baseContracts":[],"canonicalName":"Address","contractDependencies":[],"contractKind":"library","documentation":{"id":7742,"nodeType":"StructuredDocumentation","src":"126:67:38","text":" @dev Collection of functions related to the address type"},"fullyImplemented":true,"id":8069,"linearizedBaseContracts":[8069],"name":"Address","nameLocation":"202:7:38","nodeType":"ContractDefinition","nodes":[{"body":{"id":7756,"nodeType":"Block","src":"1478:254:38","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":7750,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7745,"src":"1702:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1710:4:38","memberName":"code","nodeType":"MemberAccess","src":"1702:12:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1715:6:38","memberName":"length","nodeType":"MemberAccess","src":"1702:19:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":7753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1724:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1702:23:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7749,"id":7755,"nodeType":"Return","src":"1695:30:38"}]},"documentation":{"id":7743,"nodeType":"StructuredDocumentation","src":"216:1191:38","text":" @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n  - an externally-owned account\n  - a contract in construction\n  - an address where a contract will be created\n  - an address where a contract lived, but was destroyed\n Furthermore, `isContract` will also return true if the target contract within\n the same transaction is already scheduled for destruction by `SELFDESTRUCT`,\n which only has an effect at the end of a transaction.\n ====\n [IMPORTANT]\n ====\n You shouldn't rely on `isContract` to protect against flash loan attacks!\n Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n constructor.\n ===="},"id":7757,"implemented":true,"kind":"function","modifiers":[],"name":"isContract","nameLocation":"1421:10:38","nodeType":"FunctionDefinition","parameters":{"id":7746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7745,"mutability":"mutable","name":"account","nameLocation":"1440:7:38","nodeType":"VariableDeclaration","scope":7757,"src":"1432:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7744,"name":"address","nodeType":"ElementaryTypeName","src":"1432:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1431:17:38"},"returnParameters":{"id":7749,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7748,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7757,"src":"1472:4:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7747,"name":"bool","nodeType":"ElementaryTypeName","src":"1472:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1471:6:38"},"scope":8069,"src":"1412:320:38","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":7790,"nodeType":"Block","src":"2718:241:38","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":7768,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2744:4:38","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$8069","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$8069","typeString":"library Address"}],"id":7767,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2736:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7766,"name":"address","nodeType":"ElementaryTypeName","src":"2736:7:38","typeDescriptions":{}}},"id":7769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2736:13:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2750:7:38","memberName":"balance","nodeType":"MemberAccess","src":"2736:21:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":7771,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7762,"src":"2761:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2736:31:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e6365","id":7773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2769:31:38","typeDescriptions":{"typeIdentifier":"t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9","typeString":"literal_string \"Address: insufficient balance\""},"value":"Address: insufficient balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9","typeString":"literal_string \"Address: insufficient balance\""}],"id":7765,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2728:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2728:73:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7775,"nodeType":"ExpressionStatement","src":"2728:73:38"},{"assignments":[7777,null],"declarations":[{"constant":false,"id":7777,"mutability":"mutable","name":"success","nameLocation":"2818:7:38","nodeType":"VariableDeclaration","scope":7790,"src":"2813:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7776,"name":"bool","nodeType":"ElementaryTypeName","src":"2813:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":7784,"initialValue":{"arguments":[{"hexValue":"","id":7782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2861:2:38","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":7778,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7760,"src":"2831:9:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":7779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2841:4:38","memberName":"call","nodeType":"MemberAccess","src":"2831:14:38","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":7781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":7780,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7762,"src":"2853:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2831:29:38","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":7783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2831:33:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2812:52:38"},{"expression":{"arguments":[{"id":7786,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7777,"src":"2882:7:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564","id":7787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2891:60:38","typeDescriptions":{"typeIdentifier":"t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae","typeString":"literal_string \"Address: unable to send value, recipient may have reverted\""},"value":"Address: unable to send value, recipient may have reverted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae","typeString":"literal_string \"Address: unable to send value, recipient may have reverted\""}],"id":7785,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2874:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2874:78:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7789,"nodeType":"ExpressionStatement","src":"2874:78:38"}]},"documentation":{"id":7758,"nodeType":"StructuredDocumentation","src":"1738:904:38","text":" @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]."},"id":7791,"implemented":true,"kind":"function","modifiers":[],"name":"sendValue","nameLocation":"2656:9:38","nodeType":"FunctionDefinition","parameters":{"id":7763,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7760,"mutability":"mutable","name":"recipient","nameLocation":"2682:9:38","nodeType":"VariableDeclaration","scope":7791,"src":"2666:25:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":7759,"name":"address","nodeType":"ElementaryTypeName","src":"2666:15:38","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":7762,"mutability":"mutable","name":"amount","nameLocation":"2701:6:38","nodeType":"VariableDeclaration","scope":7791,"src":"2693:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7761,"name":"uint256","nodeType":"ElementaryTypeName","src":"2693:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2665:43:38"},"returnParameters":{"id":7764,"nodeType":"ParameterList","parameters":[],"src":"2718:0:38"},"scope":8069,"src":"2647:312:38","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":7808,"nodeType":"Block","src":"3790:96:38","statements":[{"expression":{"arguments":[{"id":7802,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7794,"src":"3829:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7803,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7796,"src":"3837:4:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":7804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3843:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564","id":7805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3846:32:38","typeDescriptions":{"typeIdentifier":"t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df","typeString":"literal_string \"Address: low-level call failed\""},"value":"Address: low-level call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df","typeString":"literal_string \"Address: low-level call failed\""}],"id":7801,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[7849,7893],"referencedDeclaration":7893,"src":"3807:21:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":7806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3807:72:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":7800,"id":7807,"nodeType":"Return","src":"3800:79:38"}]},"documentation":{"id":7792,"nodeType":"StructuredDocumentation","src":"2965:731:38","text":" @dev Performs a Solidity function call using a low level `call`. A\n plain `call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._"},"id":7809,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3710:12:38","nodeType":"FunctionDefinition","parameters":{"id":7797,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7794,"mutability":"mutable","name":"target","nameLocation":"3731:6:38","nodeType":"VariableDeclaration","scope":7809,"src":"3723:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7793,"name":"address","nodeType":"ElementaryTypeName","src":"3723:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7796,"mutability":"mutable","name":"data","nameLocation":"3752:4:38","nodeType":"VariableDeclaration","scope":7809,"src":"3739:17:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7795,"name":"bytes","nodeType":"ElementaryTypeName","src":"3739:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3722:35:38"},"returnParameters":{"id":7800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7799,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7809,"src":"3776:12:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7798,"name":"bytes","nodeType":"ElementaryTypeName","src":"3776:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3775:14:38"},"scope":8069,"src":"3701:185:38","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":7828,"nodeType":"Block","src":"4255:76:38","statements":[{"expression":{"arguments":[{"id":7822,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7812,"src":"4294:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7823,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7814,"src":"4302:4:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":7824,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4308:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":7825,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7816,"src":"4311:12:38","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":7821,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[7849,7893],"referencedDeclaration":7893,"src":"4272:21:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":7826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4272:52:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":7820,"id":7827,"nodeType":"Return","src":"4265:59:38"}]},"documentation":{"id":7810,"nodeType":"StructuredDocumentation","src":"3892:211:38","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"},"id":7829,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"4117:12:38","nodeType":"FunctionDefinition","parameters":{"id":7817,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7812,"mutability":"mutable","name":"target","nameLocation":"4147:6:38","nodeType":"VariableDeclaration","scope":7829,"src":"4139:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7811,"name":"address","nodeType":"ElementaryTypeName","src":"4139:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7814,"mutability":"mutable","name":"data","nameLocation":"4176:4:38","nodeType":"VariableDeclaration","scope":7829,"src":"4163:17:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7813,"name":"bytes","nodeType":"ElementaryTypeName","src":"4163:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7816,"mutability":"mutable","name":"errorMessage","nameLocation":"4204:12:38","nodeType":"VariableDeclaration","scope":7829,"src":"4190:26:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7815,"name":"string","nodeType":"ElementaryTypeName","src":"4190:6:38","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4129:93:38"},"returnParameters":{"id":7820,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7819,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7829,"src":"4241:12:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7818,"name":"bytes","nodeType":"ElementaryTypeName","src":"4241:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4240:14:38"},"scope":8069,"src":"4108:223:38","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":7848,"nodeType":"Block","src":"4806:111:38","statements":[{"expression":{"arguments":[{"id":7842,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7832,"src":"4845:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7843,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7834,"src":"4853:4:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":7844,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7836,"src":"4859:5:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564","id":7845,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4866:43:38","typeDescriptions":{"typeIdentifier":"t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc","typeString":"literal_string \"Address: low-level call with value failed\""},"value":"Address: low-level call with value failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc","typeString":"literal_string \"Address: low-level call with value failed\""}],"id":7841,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[7849,7893],"referencedDeclaration":7893,"src":"4823:21:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":7846,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4823:87:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":7840,"id":7847,"nodeType":"Return","src":"4816:94:38"}]},"documentation":{"id":7830,"nodeType":"StructuredDocumentation","src":"4337:351:38","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._"},"id":7849,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4702:21:38","nodeType":"FunctionDefinition","parameters":{"id":7837,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7832,"mutability":"mutable","name":"target","nameLocation":"4732:6:38","nodeType":"VariableDeclaration","scope":7849,"src":"4724:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7831,"name":"address","nodeType":"ElementaryTypeName","src":"4724:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7834,"mutability":"mutable","name":"data","nameLocation":"4753:4:38","nodeType":"VariableDeclaration","scope":7849,"src":"4740:17:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7833,"name":"bytes","nodeType":"ElementaryTypeName","src":"4740:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7836,"mutability":"mutable","name":"value","nameLocation":"4767:5:38","nodeType":"VariableDeclaration","scope":7849,"src":"4759:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7835,"name":"uint256","nodeType":"ElementaryTypeName","src":"4759:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4723:50:38"},"returnParameters":{"id":7840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7839,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7849,"src":"4792:12:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7838,"name":"bytes","nodeType":"ElementaryTypeName","src":"4792:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4791:14:38"},"scope":8069,"src":"4693:224:38","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":7892,"nodeType":"Block","src":"5344:267:38","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":7866,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5370:4:38","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$8069","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$8069","typeString":"library Address"}],"id":7865,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5362:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7864,"name":"address","nodeType":"ElementaryTypeName","src":"5362:7:38","typeDescriptions":{}}},"id":7867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5362:13:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5376:7:38","memberName":"balance","nodeType":"MemberAccess","src":"5362:21:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":7869,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7856,"src":"5387:5:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5362:30:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c","id":7871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5394:40:38","typeDescriptions":{"typeIdentifier":"t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c","typeString":"literal_string \"Address: insufficient balance for call\""},"value":"Address: insufficient balance for call"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c","typeString":"literal_string \"Address: insufficient balance for call\""}],"id":7863,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5354:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5354:81:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7873,"nodeType":"ExpressionStatement","src":"5354:81:38"},{"assignments":[7875,7877],"declarations":[{"constant":false,"id":7875,"mutability":"mutable","name":"success","nameLocation":"5451:7:38","nodeType":"VariableDeclaration","scope":7892,"src":"5446:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7874,"name":"bool","nodeType":"ElementaryTypeName","src":"5446:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7877,"mutability":"mutable","name":"returndata","nameLocation":"5473:10:38","nodeType":"VariableDeclaration","scope":7892,"src":"5460:23:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7876,"name":"bytes","nodeType":"ElementaryTypeName","src":"5460:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":7884,"initialValue":{"arguments":[{"id":7882,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7854,"src":"5513:4:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":7878,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7852,"src":"5487:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5494:4:38","memberName":"call","nodeType":"MemberAccess","src":"5487:11:38","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":7881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":7880,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7856,"src":"5506:5:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"5487:25:38","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":7883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5487:31:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5445:73:38"},{"expression":{"arguments":[{"id":7886,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7852,"src":"5562:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7887,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7875,"src":"5570:7:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7888,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7877,"src":"5579:10:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":7889,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7858,"src":"5591:12:38","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":7885,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8024,"src":"5535:26:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory,string memory) view returns (bytes memory)"}},"id":7890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5535:69:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":7862,"id":7891,"nodeType":"Return","src":"5528:76:38"}]},"documentation":{"id":7850,"nodeType":"StructuredDocumentation","src":"4923:237:38","text":" @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"},"id":7893,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"5174:21:38","nodeType":"FunctionDefinition","parameters":{"id":7859,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7852,"mutability":"mutable","name":"target","nameLocation":"5213:6:38","nodeType":"VariableDeclaration","scope":7893,"src":"5205:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7851,"name":"address","nodeType":"ElementaryTypeName","src":"5205:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7854,"mutability":"mutable","name":"data","nameLocation":"5242:4:38","nodeType":"VariableDeclaration","scope":7893,"src":"5229:17:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7853,"name":"bytes","nodeType":"ElementaryTypeName","src":"5229:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7856,"mutability":"mutable","name":"value","nameLocation":"5264:5:38","nodeType":"VariableDeclaration","scope":7893,"src":"5256:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7855,"name":"uint256","nodeType":"ElementaryTypeName","src":"5256:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7858,"mutability":"mutable","name":"errorMessage","nameLocation":"5293:12:38","nodeType":"VariableDeclaration","scope":7893,"src":"5279:26:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7857,"name":"string","nodeType":"ElementaryTypeName","src":"5279:6:38","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5195:116:38"},"returnParameters":{"id":7862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7861,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7893,"src":"5330:12:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7860,"name":"bytes","nodeType":"ElementaryTypeName","src":"5330:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5329:14:38"},"scope":8069,"src":"5165:446:38","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":7909,"nodeType":"Block","src":"5888:97:38","statements":[{"expression":{"arguments":[{"id":7904,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7896,"src":"5924:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7905,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7898,"src":"5932:4:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564","id":7906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5938:39:38","typeDescriptions":{"typeIdentifier":"t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0","typeString":"literal_string \"Address: low-level static call failed\""},"value":"Address: low-level static call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0","typeString":"literal_string \"Address: low-level static call failed\""}],"id":7903,"name":"functionStaticCall","nodeType":"Identifier","overloadedDeclarations":[7910,7939],"referencedDeclaration":7939,"src":"5905:18:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,string memory) view returns (bytes memory)"}},"id":7907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5905:73:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":7902,"id":7908,"nodeType":"Return","src":"5898:80:38"}]},"documentation":{"id":7894,"nodeType":"StructuredDocumentation","src":"5617:166:38","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":7910,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"5797:18:38","nodeType":"FunctionDefinition","parameters":{"id":7899,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7896,"mutability":"mutable","name":"target","nameLocation":"5824:6:38","nodeType":"VariableDeclaration","scope":7910,"src":"5816:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7895,"name":"address","nodeType":"ElementaryTypeName","src":"5816:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7898,"mutability":"mutable","name":"data","nameLocation":"5845:4:38","nodeType":"VariableDeclaration","scope":7910,"src":"5832:17:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7897,"name":"bytes","nodeType":"ElementaryTypeName","src":"5832:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5815:35:38"},"returnParameters":{"id":7902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7901,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7910,"src":"5874:12:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7900,"name":"bytes","nodeType":"ElementaryTypeName","src":"5874:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5873:14:38"},"scope":8069,"src":"5788:197:38","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":7938,"nodeType":"Block","src":"6327:168:38","statements":[{"assignments":[7923,7925],"declarations":[{"constant":false,"id":7923,"mutability":"mutable","name":"success","nameLocation":"6343:7:38","nodeType":"VariableDeclaration","scope":7938,"src":"6338:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7922,"name":"bool","nodeType":"ElementaryTypeName","src":"6338:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7925,"mutability":"mutable","name":"returndata","nameLocation":"6365:10:38","nodeType":"VariableDeclaration","scope":7938,"src":"6352:23:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7924,"name":"bytes","nodeType":"ElementaryTypeName","src":"6352:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":7930,"initialValue":{"arguments":[{"id":7928,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7915,"src":"6397:4:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":7926,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7913,"src":"6379:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6386:10:38","memberName":"staticcall","nodeType":"MemberAccess","src":"6379:17:38","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":7929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6379:23:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6337:65:38"},{"expression":{"arguments":[{"id":7932,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7913,"src":"6446:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7933,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7923,"src":"6454:7:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7934,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7925,"src":"6463:10:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":7935,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7917,"src":"6475:12:38","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":7931,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8024,"src":"6419:26:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory,string memory) view returns (bytes memory)"}},"id":7936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6419:69:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":7921,"id":7937,"nodeType":"Return","src":"6412:76:38"}]},"documentation":{"id":7911,"nodeType":"StructuredDocumentation","src":"5991:173:38","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":7939,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"6178:18:38","nodeType":"FunctionDefinition","parameters":{"id":7918,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7913,"mutability":"mutable","name":"target","nameLocation":"6214:6:38","nodeType":"VariableDeclaration","scope":7939,"src":"6206:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7912,"name":"address","nodeType":"ElementaryTypeName","src":"6206:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7915,"mutability":"mutable","name":"data","nameLocation":"6243:4:38","nodeType":"VariableDeclaration","scope":7939,"src":"6230:17:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7914,"name":"bytes","nodeType":"ElementaryTypeName","src":"6230:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7917,"mutability":"mutable","name":"errorMessage","nameLocation":"6271:12:38","nodeType":"VariableDeclaration","scope":7939,"src":"6257:26:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7916,"name":"string","nodeType":"ElementaryTypeName","src":"6257:6:38","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6196:93:38"},"returnParameters":{"id":7921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7920,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7939,"src":"6313:12:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7919,"name":"bytes","nodeType":"ElementaryTypeName","src":"6313:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6312:14:38"},"scope":8069,"src":"6169:326:38","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":7955,"nodeType":"Block","src":"6771:101:38","statements":[{"expression":{"arguments":[{"id":7950,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7942,"src":"6809:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7951,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7944,"src":"6817:4:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","id":7952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6823:41:38","typeDescriptions":{"typeIdentifier":"t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398","typeString":"literal_string \"Address: low-level delegate call failed\""},"value":"Address: low-level delegate call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398","typeString":"literal_string \"Address: low-level delegate call failed\""}],"id":7949,"name":"functionDelegateCall","nodeType":"Identifier","overloadedDeclarations":[7956,7985],"referencedDeclaration":7985,"src":"6788:20:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,string memory) returns (bytes memory)"}},"id":7953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6788:77:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":7948,"id":7954,"nodeType":"Return","src":"6781:84:38"}]},"documentation":{"id":7940,"nodeType":"StructuredDocumentation","src":"6501:168:38","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":7956,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"6683:20:38","nodeType":"FunctionDefinition","parameters":{"id":7945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7942,"mutability":"mutable","name":"target","nameLocation":"6712:6:38","nodeType":"VariableDeclaration","scope":7956,"src":"6704:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7941,"name":"address","nodeType":"ElementaryTypeName","src":"6704:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7944,"mutability":"mutable","name":"data","nameLocation":"6733:4:38","nodeType":"VariableDeclaration","scope":7956,"src":"6720:17:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7943,"name":"bytes","nodeType":"ElementaryTypeName","src":"6720:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6703:35:38"},"returnParameters":{"id":7948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7947,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7956,"src":"6757:12:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7946,"name":"bytes","nodeType":"ElementaryTypeName","src":"6757:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6756:14:38"},"scope":8069,"src":"6674:198:38","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":7984,"nodeType":"Block","src":"7213:170:38","statements":[{"assignments":[7969,7971],"declarations":[{"constant":false,"id":7969,"mutability":"mutable","name":"success","nameLocation":"7229:7:38","nodeType":"VariableDeclaration","scope":7984,"src":"7224:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7968,"name":"bool","nodeType":"ElementaryTypeName","src":"7224:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7971,"mutability":"mutable","name":"returndata","nameLocation":"7251:10:38","nodeType":"VariableDeclaration","scope":7984,"src":"7238:23:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7970,"name":"bytes","nodeType":"ElementaryTypeName","src":"7238:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":7976,"initialValue":{"arguments":[{"id":7974,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7961,"src":"7285:4:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":7972,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7959,"src":"7265:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7272:12:38","memberName":"delegatecall","nodeType":"MemberAccess","src":"7265:19:38","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":7975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7265:25:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"7223:67:38"},{"expression":{"arguments":[{"id":7978,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7959,"src":"7334:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7979,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7969,"src":"7342:7:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7980,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7971,"src":"7351:10:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":7981,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7963,"src":"7363:12:38","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":7977,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8024,"src":"7307:26:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory,string memory) view returns (bytes memory)"}},"id":7982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7307:69:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":7967,"id":7983,"nodeType":"Return","src":"7300:76:38"}]},"documentation":{"id":7957,"nodeType":"StructuredDocumentation","src":"6878:175:38","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":7985,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"7067:20:38","nodeType":"FunctionDefinition","parameters":{"id":7964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7959,"mutability":"mutable","name":"target","nameLocation":"7105:6:38","nodeType":"VariableDeclaration","scope":7985,"src":"7097:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7958,"name":"address","nodeType":"ElementaryTypeName","src":"7097:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7961,"mutability":"mutable","name":"data","nameLocation":"7134:4:38","nodeType":"VariableDeclaration","scope":7985,"src":"7121:17:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7960,"name":"bytes","nodeType":"ElementaryTypeName","src":"7121:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7963,"mutability":"mutable","name":"errorMessage","nameLocation":"7162:12:38","nodeType":"VariableDeclaration","scope":7985,"src":"7148:26:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7962,"name":"string","nodeType":"ElementaryTypeName","src":"7148:6:38","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7087:93:38"},"returnParameters":{"id":7967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7966,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7985,"src":"7199:12:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7965,"name":"bytes","nodeType":"ElementaryTypeName","src":"7199:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7198:14:38"},"scope":8069,"src":"7058:325:38","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":8023,"nodeType":"Block","src":"7865:434:38","statements":[{"condition":{"id":7999,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7990,"src":"7879:7:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":8021,"nodeType":"Block","src":"8235:58:38","statements":[{"expression":{"arguments":[{"id":8017,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7992,"src":"8257:10:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":8018,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7994,"src":"8269:12:38","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":8016,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8068,"src":"8249:7:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory,string memory) pure"}},"id":8019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8249:33:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8020,"nodeType":"ExpressionStatement","src":"8249:33:38"}]},"id":8022,"nodeType":"IfStatement","src":"7875:418:38","trueBody":{"id":8015,"nodeType":"Block","src":"7888:341:38","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8000,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7992,"src":"7906:10:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":8001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7917:6:38","memberName":"length","nodeType":"MemberAccess","src":"7906:17:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":8002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7927:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7906:22:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8012,"nodeType":"IfStatement","src":"7902:286:38","trueBody":{"id":8011,"nodeType":"Block","src":"7930:258:38","statements":[{"expression":{"arguments":[{"arguments":[{"id":8006,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7988,"src":"8132:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8005,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7757,"src":"8121:10:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":8007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8121:18:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","id":8008,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8141:31:38","typeDescriptions":{"typeIdentifier":"t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad","typeString":"literal_string \"Address: call to non-contract\""},"value":"Address: call to non-contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad","typeString":"literal_string \"Address: call to non-contract\""}],"id":8004,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8113:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8113:60:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8010,"nodeType":"ExpressionStatement","src":"8113:60:38"}]}},{"expression":{"id":8013,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7992,"src":"8208:10:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":7998,"id":8014,"nodeType":"Return","src":"8201:17:38"}]}}]},"documentation":{"id":7986,"nodeType":"StructuredDocumentation","src":"7389:277:38","text":" @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\n the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\n _Available since v4.8._"},"id":8024,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResultFromTarget","nameLocation":"7680:26:38","nodeType":"FunctionDefinition","parameters":{"id":7995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7988,"mutability":"mutable","name":"target","nameLocation":"7724:6:38","nodeType":"VariableDeclaration","scope":8024,"src":"7716:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7987,"name":"address","nodeType":"ElementaryTypeName","src":"7716:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7990,"mutability":"mutable","name":"success","nameLocation":"7745:7:38","nodeType":"VariableDeclaration","scope":8024,"src":"7740:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7989,"name":"bool","nodeType":"ElementaryTypeName","src":"7740:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7992,"mutability":"mutable","name":"returndata","nameLocation":"7775:10:38","nodeType":"VariableDeclaration","scope":8024,"src":"7762:23:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7991,"name":"bytes","nodeType":"ElementaryTypeName","src":"7762:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7994,"mutability":"mutable","name":"errorMessage","nameLocation":"7809:12:38","nodeType":"VariableDeclaration","scope":8024,"src":"7795:26:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7993,"name":"string","nodeType":"ElementaryTypeName","src":"7795:6:38","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7706:121:38"},"returnParameters":{"id":7998,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7997,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8024,"src":"7851:12:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7996,"name":"bytes","nodeType":"ElementaryTypeName","src":"7851:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7850:14:38"},"scope":8069,"src":"7671:628:38","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":8047,"nodeType":"Block","src":"8680:135:38","statements":[{"condition":{"id":8036,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8027,"src":"8694:7:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":8045,"nodeType":"Block","src":"8751:58:38","statements":[{"expression":{"arguments":[{"id":8041,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8029,"src":"8773:10:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":8042,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8031,"src":"8785:12:38","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":8040,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8068,"src":"8765:7:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory,string memory) pure"}},"id":8043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8765:33:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8044,"nodeType":"ExpressionStatement","src":"8765:33:38"}]},"id":8046,"nodeType":"IfStatement","src":"8690:119:38","trueBody":{"id":8039,"nodeType":"Block","src":"8703:42:38","statements":[{"expression":{"id":8037,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8029,"src":"8724:10:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":8035,"id":8038,"nodeType":"Return","src":"8717:17:38"}]}}]},"documentation":{"id":8025,"nodeType":"StructuredDocumentation","src":"8305:210:38","text":" @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\n revert reason or using the provided one.\n _Available since v4.3._"},"id":8048,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResult","nameLocation":"8529:16:38","nodeType":"FunctionDefinition","parameters":{"id":8032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8027,"mutability":"mutable","name":"success","nameLocation":"8560:7:38","nodeType":"VariableDeclaration","scope":8048,"src":"8555:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8026,"name":"bool","nodeType":"ElementaryTypeName","src":"8555:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8029,"mutability":"mutable","name":"returndata","nameLocation":"8590:10:38","nodeType":"VariableDeclaration","scope":8048,"src":"8577:23:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8028,"name":"bytes","nodeType":"ElementaryTypeName","src":"8577:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":8031,"mutability":"mutable","name":"errorMessage","nameLocation":"8624:12:38","nodeType":"VariableDeclaration","scope":8048,"src":"8610:26:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8030,"name":"string","nodeType":"ElementaryTypeName","src":"8610:6:38","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8545:97:38"},"returnParameters":{"id":8035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8034,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8048,"src":"8666:12:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8033,"name":"bytes","nodeType":"ElementaryTypeName","src":"8666:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8665:14:38"},"scope":8069,"src":"8520:295:38","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8067,"nodeType":"Block","src":"8904:457:38","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8055,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8050,"src":"8980:10:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":8056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8991:6:38","memberName":"length","nodeType":"MemberAccess","src":"8980:17:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8057,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9000:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8980:21:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":8065,"nodeType":"Block","src":"9310:45:38","statements":[{"expression":{"arguments":[{"id":8062,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8052,"src":"9331:12:38","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":8061,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"9324:6:38","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":8063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9324:20:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8064,"nodeType":"ExpressionStatement","src":"9324:20:38"}]},"id":8066,"nodeType":"IfStatement","src":"8976:379:38","trueBody":{"id":8060,"nodeType":"Block","src":"9003:301:38","statements":[{"AST":{"nativeSrc":"9161:133:38","nodeType":"YulBlock","src":"9161:133:38","statements":[{"nativeSrc":"9179:40:38","nodeType":"YulVariableDeclaration","src":"9179:40:38","value":{"arguments":[{"name":"returndata","nativeSrc":"9208:10:38","nodeType":"YulIdentifier","src":"9208:10:38"}],"functionName":{"name":"mload","nativeSrc":"9202:5:38","nodeType":"YulIdentifier","src":"9202:5:38"},"nativeSrc":"9202:17:38","nodeType":"YulFunctionCall","src":"9202:17:38"},"variables":[{"name":"returndata_size","nativeSrc":"9183:15:38","nodeType":"YulTypedName","src":"9183:15:38","type":""}]},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"9247:2:38","nodeType":"YulLiteral","src":"9247:2:38","type":"","value":"32"},{"name":"returndata","nativeSrc":"9251:10:38","nodeType":"YulIdentifier","src":"9251:10:38"}],"functionName":{"name":"add","nativeSrc":"9243:3:38","nodeType":"YulIdentifier","src":"9243:3:38"},"nativeSrc":"9243:19:38","nodeType":"YulFunctionCall","src":"9243:19:38"},{"name":"returndata_size","nativeSrc":"9264:15:38","nodeType":"YulIdentifier","src":"9264:15:38"}],"functionName":{"name":"revert","nativeSrc":"9236:6:38","nodeType":"YulIdentifier","src":"9236:6:38"},"nativeSrc":"9236:44:38","nodeType":"YulFunctionCall","src":"9236:44:38"},"nativeSrc":"9236:44:38","nodeType":"YulExpressionStatement","src":"9236:44:38"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":8050,"isOffset":false,"isSlot":false,"src":"9208:10:38","valueSize":1},{"declaration":8050,"isOffset":false,"isSlot":false,"src":"9251:10:38","valueSize":1}],"id":8059,"nodeType":"InlineAssembly","src":"9152:142:38"}]}}]},"id":8068,"implemented":true,"kind":"function","modifiers":[],"name":"_revert","nameLocation":"8830:7:38","nodeType":"FunctionDefinition","parameters":{"id":8053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8050,"mutability":"mutable","name":"returndata","nameLocation":"8851:10:38","nodeType":"VariableDeclaration","scope":8068,"src":"8838:23:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8049,"name":"bytes","nodeType":"ElementaryTypeName","src":"8838:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":8052,"mutability":"mutable","name":"errorMessage","nameLocation":"8877:12:38","nodeType":"VariableDeclaration","scope":8068,"src":"8863:26:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8051,"name":"string","nodeType":"ElementaryTypeName","src":"8863:6:38","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8837:53:38"},"returnParameters":{"id":8054,"nodeType":"ParameterList","parameters":[],"src":"8904:0:38"},"scope":8069,"src":"8821:540:38","stateMutability":"pure","virtual":false,"visibility":"private"}],"scope":8070,"src":"194:9169:38","usedErrors":[],"usedEvents":[]}],"src":"101:9263:38"},"id":38},"@openzeppelin/contracts/utils/Context.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","exportedSymbols":{"Context":[8099]},"id":8100,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8071,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"101:23:39"},{"abstract":true,"baseContracts":[],"canonicalName":"Context","contractDependencies":[],"contractKind":"contract","documentation":{"id":8072,"nodeType":"StructuredDocumentation","src":"126:496:39","text":" @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts."},"fullyImplemented":true,"id":8099,"linearizedBaseContracts":[8099],"name":"Context","nameLocation":"641:7:39","nodeType":"ContractDefinition","nodes":[{"body":{"id":8080,"nodeType":"Block","src":"717:34:39","statements":[{"expression":{"expression":{"id":8077,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"734:3:39","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"738:6:39","memberName":"sender","nodeType":"MemberAccess","src":"734:10:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":8076,"id":8079,"nodeType":"Return","src":"727:17:39"}]},"id":8081,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"664:10:39","nodeType":"FunctionDefinition","parameters":{"id":8073,"nodeType":"ParameterList","parameters":[],"src":"674:2:39"},"returnParameters":{"id":8076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8075,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8081,"src":"708:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8074,"name":"address","nodeType":"ElementaryTypeName","src":"708:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"707:9:39"},"scope":8099,"src":"655:96:39","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":8089,"nodeType":"Block","src":"824:32:39","statements":[{"expression":{"expression":{"id":8086,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"841:3:39","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"845:4:39","memberName":"data","nodeType":"MemberAccess","src":"841:8:39","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":8085,"id":8088,"nodeType":"Return","src":"834:15:39"}]},"id":8090,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"766:8:39","nodeType":"FunctionDefinition","parameters":{"id":8082,"nodeType":"ParameterList","parameters":[],"src":"774:2:39"},"returnParameters":{"id":8085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8084,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8090,"src":"808:14:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":8083,"name":"bytes","nodeType":"ElementaryTypeName","src":"808:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"807:16:39"},"scope":8099,"src":"757:99:39","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":8097,"nodeType":"Block","src":"934:25:39","statements":[{"expression":{"hexValue":"30","id":8095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"951:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":8094,"id":8096,"nodeType":"Return","src":"944:8:39"}]},"id":8098,"implemented":true,"kind":"function","modifiers":[],"name":"_contextSuffixLength","nameLocation":"871:20:39","nodeType":"FunctionDefinition","parameters":{"id":8091,"nodeType":"ParameterList","parameters":[],"src":"891:2:39"},"returnParameters":{"id":8094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8093,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8098,"src":"925:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8092,"name":"uint256","nodeType":"ElementaryTypeName","src":"925:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"924:9:39"},"scope":8099,"src":"862:97:39","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":8100,"src":"623:338:39","usedErrors":[],"usedEvents":[]}],"src":"101:861:39"},"id":39},"@openzeppelin/contracts/utils/Strings.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","exportedSymbols":{"Math":[9230],"SignedMath":[10876],"Strings":[8328]},"id":8329,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8101,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"101:23:40"},{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","file":"./math/Math.sol","id":8102,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8329,"sourceUnit":9231,"src":"126:25:40","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/SignedMath.sol","file":"./math/SignedMath.sol","id":8103,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8329,"sourceUnit":10877,"src":"152:31:40","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"Strings","contractDependencies":[],"contractKind":"library","documentation":{"id":8104,"nodeType":"StructuredDocumentation","src":"185:34:40","text":" @dev String operations."},"fullyImplemented":true,"id":8328,"linearizedBaseContracts":[8328],"name":"Strings","nameLocation":"228:7:40","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":8107,"mutability":"constant","name":"_SYMBOLS","nameLocation":"267:8:40","nodeType":"VariableDeclaration","scope":8328,"src":"242:54:40","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":8105,"name":"bytes16","nodeType":"ElementaryTypeName","src":"242:7:40","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"value":{"hexValue":"30313233343536373839616263646566","id":8106,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"278:18:40","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f","typeString":"literal_string \"0123456789abcdef\""},"value":"0123456789abcdef"},"visibility":"private"},{"constant":true,"id":8110,"mutability":"constant","name":"_ADDRESS_LENGTH","nameLocation":"325:15:40","nodeType":"VariableDeclaration","scope":8328,"src":"302:43:40","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":8108,"name":"uint8","nodeType":"ElementaryTypeName","src":"302:5:40","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3230","id":8109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"343:2:40","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"visibility":"private"},{"body":{"id":8157,"nodeType":"Block","src":"518:625:40","statements":[{"id":8156,"nodeType":"UncheckedBlock","src":"528:609:40","statements":[{"assignments":[8119],"declarations":[{"constant":false,"id":8119,"mutability":"mutable","name":"length","nameLocation":"560:6:40","nodeType":"VariableDeclaration","scope":8156,"src":"552:14:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8118,"name":"uint256","nodeType":"ElementaryTypeName","src":"552:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8126,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":8122,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8113,"src":"580:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8120,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9230,"src":"569:4:40","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$9230_$","typeString":"type(library Math)"}},"id":8121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"574:5:40","memberName":"log10","nodeType":"MemberAccess","referencedDeclaration":9067,"src":"569:10:40","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":8123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"569:17:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":8124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"589:1:40","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"569:21:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"552:38:40"},{"assignments":[8128],"declarations":[{"constant":false,"id":8128,"mutability":"mutable","name":"buffer","nameLocation":"618:6:40","nodeType":"VariableDeclaration","scope":8156,"src":"604:20:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8127,"name":"string","nodeType":"ElementaryTypeName","src":"604:6:40","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":8133,"initialValue":{"arguments":[{"id":8131,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8119,"src":"638:6:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8130,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"627:10:40","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"},"typeName":{"id":8129,"name":"string","nodeType":"ElementaryTypeName","src":"631:6:40","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"id":8132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"627:18:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"604:41:40"},{"assignments":[8135],"declarations":[{"constant":false,"id":8135,"mutability":"mutable","name":"ptr","nameLocation":"667:3:40","nodeType":"VariableDeclaration","scope":8156,"src":"659:11:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8134,"name":"uint256","nodeType":"ElementaryTypeName","src":"659:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8136,"nodeType":"VariableDeclarationStatement","src":"659:11:40"},{"AST":{"nativeSrc":"740:67:40","nodeType":"YulBlock","src":"740:67:40","statements":[{"nativeSrc":"758:35:40","nodeType":"YulAssignment","src":"758:35:40","value":{"arguments":[{"name":"buffer","nativeSrc":"769:6:40","nodeType":"YulIdentifier","src":"769:6:40"},{"arguments":[{"kind":"number","nativeSrc":"781:2:40","nodeType":"YulLiteral","src":"781:2:40","type":"","value":"32"},{"name":"length","nativeSrc":"785:6:40","nodeType":"YulIdentifier","src":"785:6:40"}],"functionName":{"name":"add","nativeSrc":"777:3:40","nodeType":"YulIdentifier","src":"777:3:40"},"nativeSrc":"777:15:40","nodeType":"YulFunctionCall","src":"777:15:40"}],"functionName":{"name":"add","nativeSrc":"765:3:40","nodeType":"YulIdentifier","src":"765:3:40"},"nativeSrc":"765:28:40","nodeType":"YulFunctionCall","src":"765:28:40"},"variableNames":[{"name":"ptr","nativeSrc":"758:3:40","nodeType":"YulIdentifier","src":"758:3:40"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":8128,"isOffset":false,"isSlot":false,"src":"769:6:40","valueSize":1},{"declaration":8119,"isOffset":false,"isSlot":false,"src":"785:6:40","valueSize":1},{"declaration":8135,"isOffset":false,"isSlot":false,"src":"758:3:40","valueSize":1}],"id":8137,"nodeType":"InlineAssembly","src":"731:76:40"},{"body":{"id":8152,"nodeType":"Block","src":"833:267:40","statements":[{"expression":{"id":8140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"851:5:40","subExpression":{"id":8139,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8135,"src":"851:3:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8141,"nodeType":"ExpressionStatement","src":"851:5:40"},{"AST":{"nativeSrc":"934:84:40","nodeType":"YulBlock","src":"934:84:40","statements":[{"expression":{"arguments":[{"name":"ptr","nativeSrc":"964:3:40","nodeType":"YulIdentifier","src":"964:3:40"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"978:5:40","nodeType":"YulIdentifier","src":"978:5:40"},{"kind":"number","nativeSrc":"985:2:40","nodeType":"YulLiteral","src":"985:2:40","type":"","value":"10"}],"functionName":{"name":"mod","nativeSrc":"974:3:40","nodeType":"YulIdentifier","src":"974:3:40"},"nativeSrc":"974:14:40","nodeType":"YulFunctionCall","src":"974:14:40"},{"name":"_SYMBOLS","nativeSrc":"990:8:40","nodeType":"YulIdentifier","src":"990:8:40"}],"functionName":{"name":"byte","nativeSrc":"969:4:40","nodeType":"YulIdentifier","src":"969:4:40"},"nativeSrc":"969:30:40","nodeType":"YulFunctionCall","src":"969:30:40"}],"functionName":{"name":"mstore8","nativeSrc":"956:7:40","nodeType":"YulIdentifier","src":"956:7:40"},"nativeSrc":"956:44:40","nodeType":"YulFunctionCall","src":"956:44:40"},"nativeSrc":"956:44:40","nodeType":"YulExpressionStatement","src":"956:44:40"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":8107,"isOffset":false,"isSlot":false,"src":"990:8:40","valueSize":1},{"declaration":8135,"isOffset":false,"isSlot":false,"src":"964:3:40","valueSize":1},{"declaration":8113,"isOffset":false,"isSlot":false,"src":"978:5:40","valueSize":1}],"id":8142,"nodeType":"InlineAssembly","src":"925:93:40"},{"expression":{"id":8145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8143,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8113,"src":"1035:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":8144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1044:2:40","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1035:11:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8146,"nodeType":"ExpressionStatement","src":"1035:11:40"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8147,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8113,"src":"1068:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":8148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1077:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1068:10:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8151,"nodeType":"IfStatement","src":"1064:21:40","trueBody":{"id":8150,"nodeType":"Break","src":"1080:5:40"}}]},"condition":{"hexValue":"74727565","id":8138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"827:4:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"id":8153,"nodeType":"WhileStatement","src":"820:280:40"},{"expression":{"id":8154,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8128,"src":"1120:6:40","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":8117,"id":8155,"nodeType":"Return","src":"1113:13:40"}]}]},"documentation":{"id":8111,"nodeType":"StructuredDocumentation","src":"352:90:40","text":" @dev Converts a `uint256` to its ASCII `string` decimal representation."},"id":8158,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"456:8:40","nodeType":"FunctionDefinition","parameters":{"id":8114,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8113,"mutability":"mutable","name":"value","nameLocation":"473:5:40","nodeType":"VariableDeclaration","scope":8158,"src":"465:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8112,"name":"uint256","nodeType":"ElementaryTypeName","src":"465:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"464:15:40"},"returnParameters":{"id":8117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8116,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8158,"src":"503:13:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8115,"name":"string","nodeType":"ElementaryTypeName","src":"503:6:40","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"502:15:40"},"scope":8328,"src":"447:696:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8185,"nodeType":"Block","src":"1313:103:40","statements":[{"expression":{"arguments":[{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8170,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8161,"src":"1354:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":8171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1362:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1354:9:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"","id":8174,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1372:2:40","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"id":8175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1354:20:40","trueExpression":{"hexValue":"2d","id":8173,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1366:3:40","typeDescriptions":{"typeIdentifier":"t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561","typeString":"literal_string \"-\""},"value":"-"},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"arguments":[{"id":8179,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8161,"src":"1400:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":8177,"name":"SignedMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10876,"src":"1385:10:40","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SignedMath_$10876_$","typeString":"type(library SignedMath)"}},"id":8178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1396:3:40","memberName":"abs","nodeType":"MemberAccess","referencedDeclaration":10875,"src":"1385:14:40","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":8180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1385:21:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8176,"name":"toString","nodeType":"Identifier","overloadedDeclarations":[8158,8186],"referencedDeclaration":8158,"src":"1376:8:40","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":8181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1376:31:40","tryCall":false,"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"}],"expression":{"id":8168,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1337:3:40","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8169,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1341:12:40","memberName":"encodePacked","nodeType":"MemberAccess","src":"1337:16:40","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":8182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1337:71:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8167,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1330:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":8166,"name":"string","nodeType":"ElementaryTypeName","src":"1330:6:40","typeDescriptions":{}}},"id":8183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1330:79:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":8165,"id":8184,"nodeType":"Return","src":"1323:86:40"}]},"documentation":{"id":8159,"nodeType":"StructuredDocumentation","src":"1149:89:40","text":" @dev Converts a `int256` to its ASCII `string` decimal representation."},"id":8186,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"1252:8:40","nodeType":"FunctionDefinition","parameters":{"id":8162,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8161,"mutability":"mutable","name":"value","nameLocation":"1268:5:40","nodeType":"VariableDeclaration","scope":8186,"src":"1261:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8160,"name":"int256","nodeType":"ElementaryTypeName","src":"1261:6:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1260:14:40"},"returnParameters":{"id":8165,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8164,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8186,"src":"1298:13:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8163,"name":"string","nodeType":"ElementaryTypeName","src":"1298:6:40","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1297:15:40"},"scope":8328,"src":"1243:173:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8205,"nodeType":"Block","src":"1595:100:40","statements":[{"id":8204,"nodeType":"UncheckedBlock","src":"1605:84:40","statements":[{"expression":{"arguments":[{"id":8195,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8189,"src":"1648:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":8198,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8189,"src":"1667:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8196,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9230,"src":"1655:4:40","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$9230_$","typeString":"type(library Math)"}},"id":8197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1660:6:40","memberName":"log256","nodeType":"MemberAccess","referencedDeclaration":9190,"src":"1655:11:40","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":8199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1655:18:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":8200,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1676:1:40","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1655:22:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8194,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[8206,8282,8302],"referencedDeclaration":8282,"src":"1636:11:40","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":8202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1636:42:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":8193,"id":8203,"nodeType":"Return","src":"1629:49:40"}]}]},"documentation":{"id":8187,"nodeType":"StructuredDocumentation","src":"1422:94:40","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation."},"id":8206,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1530:11:40","nodeType":"FunctionDefinition","parameters":{"id":8190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8189,"mutability":"mutable","name":"value","nameLocation":"1550:5:40","nodeType":"VariableDeclaration","scope":8206,"src":"1542:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8188,"name":"uint256","nodeType":"ElementaryTypeName","src":"1542:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1541:15:40"},"returnParameters":{"id":8193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8192,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8206,"src":"1580:13:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8191,"name":"string","nodeType":"ElementaryTypeName","src":"1580:6:40","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1579:15:40"},"scope":8328,"src":"1521:174:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8281,"nodeType":"Block","src":"1908:347:40","statements":[{"assignments":[8217],"declarations":[{"constant":false,"id":8217,"mutability":"mutable","name":"buffer","nameLocation":"1931:6:40","nodeType":"VariableDeclaration","scope":8281,"src":"1918:19:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8216,"name":"bytes","nodeType":"ElementaryTypeName","src":"1918:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":8226,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":8220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1950:1:40","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":8221,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8211,"src":"1954:6:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1950:10:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":8223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1963:1:40","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"1950:14:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8219,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1940:9:40","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":8218,"name":"bytes","nodeType":"ElementaryTypeName","src":"1944:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":8225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1940:25:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1918:47:40"},{"expression":{"id":8231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8227,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8217,"src":"1975:6:40","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":8229,"indexExpression":{"hexValue":"30","id":8228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1982:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1975:9:40","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":8230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1987:3:40","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"src":"1975:15:40","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":8232,"nodeType":"ExpressionStatement","src":"1975:15:40"},{"expression":{"id":8237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8233,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8217,"src":"2000:6:40","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":8235,"indexExpression":{"hexValue":"31","id":8234,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2007:1:40","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2000:9:40","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"78","id":8236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2012:3:40","typeDescriptions":{"typeIdentifier":"t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83","typeString":"literal_string \"x\""},"value":"x"},"src":"2000:15:40","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":8238,"nodeType":"ExpressionStatement","src":"2000:15:40"},{"body":{"id":8267,"nodeType":"Block","src":"2070:83:40","statements":[{"expression":{"id":8261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8253,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8217,"src":"2084:6:40","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":8255,"indexExpression":{"id":8254,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8240,"src":"2091:1:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2084:9:40","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":8256,"name":"_SYMBOLS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8107,"src":"2096:8:40","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"id":8260,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8257,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8209,"src":"2105:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307866","id":8258,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2113:3:40","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"0xf"},"src":"2105:11:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2096:21:40","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"2084:33:40","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":8262,"nodeType":"ExpressionStatement","src":"2084:33:40"},{"expression":{"id":8265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8263,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8209,"src":"2131:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":8264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2141:1:40","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"2131:11:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8266,"nodeType":"ExpressionStatement","src":"2131:11:40"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8247,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8240,"src":"2058:1:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":8248,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2062:1:40","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2058:5:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8268,"initializationExpression":{"assignments":[8240],"declarations":[{"constant":false,"id":8240,"mutability":"mutable","name":"i","nameLocation":"2038:1:40","nodeType":"VariableDeclaration","scope":8268,"src":"2030:9:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8239,"name":"uint256","nodeType":"ElementaryTypeName","src":"2030:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8246,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":8241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2042:1:40","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":8242,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8211,"src":"2046:6:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2042:10:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":8244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2055:1:40","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2042:14:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2030:26:40"},"isSimpleCounterLoop":false,"loopExpression":{"expression":{"id":8251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"2065:3:40","subExpression":{"id":8250,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8240,"src":"2067:1:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8252,"nodeType":"ExpressionStatement","src":"2065:3:40"},"nodeType":"ForStatement","src":"2025:128:40"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8270,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8209,"src":"2170:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":8271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2179:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2170:10:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537472696e67733a20686578206c656e67746820696e73756666696369656e74","id":8273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2182:34:40","typeDescriptions":{"typeIdentifier":"t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2","typeString":"literal_string \"Strings: hex length insufficient\""},"value":"Strings: hex length insufficient"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2","typeString":"literal_string \"Strings: hex length insufficient\""}],"id":8269,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2162:7:40","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2162:55:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8275,"nodeType":"ExpressionStatement","src":"2162:55:40"},{"expression":{"arguments":[{"id":8278,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8217,"src":"2241:6:40","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8277,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2234:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":8276,"name":"string","nodeType":"ElementaryTypeName","src":"2234:6:40","typeDescriptions":{}}},"id":8279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2234:14:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":8215,"id":8280,"nodeType":"Return","src":"2227:21:40"}]},"documentation":{"id":8207,"nodeType":"StructuredDocumentation","src":"1701:112:40","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length."},"id":8282,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1827:11:40","nodeType":"FunctionDefinition","parameters":{"id":8212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8209,"mutability":"mutable","name":"value","nameLocation":"1847:5:40","nodeType":"VariableDeclaration","scope":8282,"src":"1839:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8208,"name":"uint256","nodeType":"ElementaryTypeName","src":"1839:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8211,"mutability":"mutable","name":"length","nameLocation":"1862:6:40","nodeType":"VariableDeclaration","scope":8282,"src":"1854:14:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8210,"name":"uint256","nodeType":"ElementaryTypeName","src":"1854:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1838:31:40"},"returnParameters":{"id":8215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8214,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8282,"src":"1893:13:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8213,"name":"string","nodeType":"ElementaryTypeName","src":"1893:6:40","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1892:15:40"},"scope":8328,"src":"1818:437:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8301,"nodeType":"Block","src":"2480:76:40","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":8295,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8285,"src":"2525:4:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8294,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2517:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":8293,"name":"uint160","nodeType":"ElementaryTypeName","src":"2517:7:40","typeDescriptions":{}}},"id":8296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2517:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":8292,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2509:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8291,"name":"uint256","nodeType":"ElementaryTypeName","src":"2509:7:40","typeDescriptions":{}}},"id":8297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2509:22:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8298,"name":"_ADDRESS_LENGTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8110,"src":"2533:15:40","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":8290,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[8206,8282,8302],"referencedDeclaration":8282,"src":"2497:11:40","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":8299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2497:52:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":8289,"id":8300,"nodeType":"Return","src":"2490:59:40"}]},"documentation":{"id":8283,"nodeType":"StructuredDocumentation","src":"2261:141:40","text":" @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation."},"id":8302,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"2416:11:40","nodeType":"FunctionDefinition","parameters":{"id":8286,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8285,"mutability":"mutable","name":"addr","nameLocation":"2436:4:40","nodeType":"VariableDeclaration","scope":8302,"src":"2428:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8284,"name":"address","nodeType":"ElementaryTypeName","src":"2428:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2427:14:40"},"returnParameters":{"id":8289,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8288,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8302,"src":"2465:13:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8287,"name":"string","nodeType":"ElementaryTypeName","src":"2465:6:40","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2464:15:40"},"scope":8328,"src":"2407:149:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8326,"nodeType":"Block","src":"2711:66:40","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":8324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":8315,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8305,"src":"2744:1:40","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":8314,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2738:5:40","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":8313,"name":"bytes","nodeType":"ElementaryTypeName","src":"2738:5:40","typeDescriptions":{}}},"id":8316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2738:8:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8312,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2728:9:40","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2728:19:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"id":8321,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8307,"src":"2767:1:40","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":8320,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2761:5:40","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":8319,"name":"bytes","nodeType":"ElementaryTypeName","src":"2761:5:40","typeDescriptions":{}}},"id":8322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2761:8:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8318,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2751:9:40","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2751:19:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2728:42:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8311,"id":8325,"nodeType":"Return","src":"2721:49:40"}]},"documentation":{"id":8303,"nodeType":"StructuredDocumentation","src":"2562:66:40","text":" @dev Returns true if the two strings are equal."},"id":8327,"implemented":true,"kind":"function","modifiers":[],"name":"equal","nameLocation":"2642:5:40","nodeType":"FunctionDefinition","parameters":{"id":8308,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8305,"mutability":"mutable","name":"a","nameLocation":"2662:1:40","nodeType":"VariableDeclaration","scope":8327,"src":"2648:15:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8304,"name":"string","nodeType":"ElementaryTypeName","src":"2648:6:40","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8307,"mutability":"mutable","name":"b","nameLocation":"2679:1:40","nodeType":"VariableDeclaration","scope":8327,"src":"2665:15:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8306,"name":"string","nodeType":"ElementaryTypeName","src":"2665:6:40","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2647:34:40"},"returnParameters":{"id":8311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8310,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8327,"src":"2705:4:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8309,"name":"bool","nodeType":"ElementaryTypeName","src":"2705:4:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2704:6:40"},"scope":8328,"src":"2633:144:40","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":8329,"src":"220:2559:40","usedErrors":[],"usedEvents":[]}],"src":"101:2679:40"},"id":40},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","exportedSymbols":{"ERC165":[8352],"IERC165":[8364]},"id":8353,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8330,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"99:23:41"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"./IERC165.sol","id":8331,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8353,"sourceUnit":8365,"src":"124:23:41","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":8333,"name":"IERC165","nameLocations":["754:7:41"],"nodeType":"IdentifierPath","referencedDeclaration":8364,"src":"754:7:41"},"id":8334,"nodeType":"InheritanceSpecifier","src":"754:7:41"}],"canonicalName":"ERC165","contractDependencies":[],"contractKind":"contract","documentation":{"id":8332,"nodeType":"StructuredDocumentation","src":"149:576:41","text":" @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n for the additional interface id that will be supported. For example:\n ```solidity\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n }\n ```\n Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation."},"fullyImplemented":true,"id":8352,"linearizedBaseContracts":[8352,8364],"name":"ERC165","nameLocation":"744:6:41","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[8363],"body":{"id":8350,"nodeType":"Block","src":"920:64:41","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":8348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8343,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8337,"src":"937:11:41","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":8345,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8364,"src":"957:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$8364_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$8364_$","typeString":"type(contract IERC165)"}],"id":8344,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"952:4:41","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":8346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"952:13:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$8364","typeString":"type(contract IERC165)"}},"id":8347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"966:11:41","memberName":"interfaceId","nodeType":"MemberAccess","src":"952:25:41","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"937:40:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8342,"id":8349,"nodeType":"Return","src":"930:47:41"}]},"documentation":{"id":8335,"nodeType":"StructuredDocumentation","src":"768:56:41","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":8351,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"838:17:41","nodeType":"FunctionDefinition","overrides":{"id":8339,"nodeType":"OverrideSpecifier","overrides":[],"src":"896:8:41"},"parameters":{"id":8338,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8337,"mutability":"mutable","name":"interfaceId","nameLocation":"863:11:41","nodeType":"VariableDeclaration","scope":8351,"src":"856:18:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":8336,"name":"bytes4","nodeType":"ElementaryTypeName","src":"856:6:41","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"855:20:41"},"returnParameters":{"id":8342,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8341,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8351,"src":"914:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8340,"name":"bool","nodeType":"ElementaryTypeName","src":"914:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"913:6:41"},"scope":8352,"src":"829:155:41","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":8353,"src":"726:260:41","usedErrors":[],"usedEvents":[]}],"src":"99:888:41"},"id":41},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","exportedSymbols":{"IERC165":[8364]},"id":8365,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8354,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"100:23:42"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC165","contractDependencies":[],"contractKind":"interface","documentation":{"id":8355,"nodeType":"StructuredDocumentation","src":"125:279:42","text":" @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}."},"fullyImplemented":false,"id":8364,"linearizedBaseContracts":[8364],"name":"IERC165","nameLocation":"415:7:42","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":8356,"nodeType":"StructuredDocumentation","src":"429:340:42","text":" @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas."},"functionSelector":"01ffc9a7","id":8363,"implemented":false,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"783:17:42","nodeType":"FunctionDefinition","parameters":{"id":8359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8358,"mutability":"mutable","name":"interfaceId","nameLocation":"808:11:42","nodeType":"VariableDeclaration","scope":8363,"src":"801:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":8357,"name":"bytes4","nodeType":"ElementaryTypeName","src":"801:6:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"800:20:42"},"returnParameters":{"id":8362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8361,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8363,"src":"844:4:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8360,"name":"bool","nodeType":"ElementaryTypeName","src":"844:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"843:6:42"},"scope":8364,"src":"774:76:42","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":8365,"src":"405:447:42","usedErrors":[],"usedEvents":[]}],"src":"100:753:42"},"id":42},"@openzeppelin/contracts/utils/math/Math.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","exportedSymbols":{"Math":[9230]},"id":9231,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8366,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"103:23:43"},{"abstract":false,"baseContracts":[],"canonicalName":"Math","contractDependencies":[],"contractKind":"library","documentation":{"id":8367,"nodeType":"StructuredDocumentation","src":"128:73:43","text":" @dev Standard math utilities missing in the Solidity language."},"fullyImplemented":true,"id":9230,"linearizedBaseContracts":[9230],"name":"Math","nameLocation":"210:4:43","nodeType":"ContractDefinition","nodes":[{"canonicalName":"Math.Rounding","id":8371,"members":[{"id":8368,"name":"Down","nameLocation":"245:4:43","nodeType":"EnumValue","src":"245:4:43"},{"id":8369,"name":"Up","nameLocation":"287:2:43","nodeType":"EnumValue","src":"287:2:43"},{"id":8370,"name":"Zero","nameLocation":"318:4:43","nodeType":"EnumValue","src":"318:4:43"}],"name":"Rounding","nameLocation":"226:8:43","nodeType":"EnumDefinition","src":"221:122:43"},{"body":{"id":8388,"nodeType":"Block","src":"480:37:43","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8381,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8374,"src":"497:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":8382,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8376,"src":"501:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"497:5:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":8385,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8376,"src":"509:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"497:13:43","trueExpression":{"id":8384,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8374,"src":"505:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8380,"id":8387,"nodeType":"Return","src":"490:20:43"}]},"documentation":{"id":8372,"nodeType":"StructuredDocumentation","src":"349:59:43","text":" @dev Returns the largest of two numbers."},"id":8389,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"422:3:43","nodeType":"FunctionDefinition","parameters":{"id":8377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8374,"mutability":"mutable","name":"a","nameLocation":"434:1:43","nodeType":"VariableDeclaration","scope":8389,"src":"426:9:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8373,"name":"uint256","nodeType":"ElementaryTypeName","src":"426:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8376,"mutability":"mutable","name":"b","nameLocation":"445:1:43","nodeType":"VariableDeclaration","scope":8389,"src":"437:9:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8375,"name":"uint256","nodeType":"ElementaryTypeName","src":"437:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"425:22:43"},"returnParameters":{"id":8380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8379,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8389,"src":"471:7:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8378,"name":"uint256","nodeType":"ElementaryTypeName","src":"471:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"470:9:43"},"scope":9230,"src":"413:104:43","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8406,"nodeType":"Block","src":"655:37:43","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8399,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8392,"src":"672:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":8400,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8394,"src":"676:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"672:5:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":8403,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8394,"src":"684:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"672:13:43","trueExpression":{"id":8402,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8392,"src":"680:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8398,"id":8405,"nodeType":"Return","src":"665:20:43"}]},"documentation":{"id":8390,"nodeType":"StructuredDocumentation","src":"523:60:43","text":" @dev Returns the smallest of two numbers."},"id":8407,"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"597:3:43","nodeType":"FunctionDefinition","parameters":{"id":8395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8392,"mutability":"mutable","name":"a","nameLocation":"609:1:43","nodeType":"VariableDeclaration","scope":8407,"src":"601:9:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8391,"name":"uint256","nodeType":"ElementaryTypeName","src":"601:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8394,"mutability":"mutable","name":"b","nameLocation":"620:1:43","nodeType":"VariableDeclaration","scope":8407,"src":"612:9:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8393,"name":"uint256","nodeType":"ElementaryTypeName","src":"612:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"600:22:43"},"returnParameters":{"id":8398,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8397,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8407,"src":"646:7:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8396,"name":"uint256","nodeType":"ElementaryTypeName","src":"646:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"645:9:43"},"scope":9230,"src":"588:104:43","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8429,"nodeType":"Block","src":"876:82:43","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8417,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8410,"src":"931:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":8418,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8412,"src":"935:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"931:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8420,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"930:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8421,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8410,"src":"941:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":8422,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8412,"src":"945:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"941:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8424,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"940:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":8425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"950:1:43","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"940:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"930:21:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8416,"id":8428,"nodeType":"Return","src":"923:28:43"}]},"documentation":{"id":8408,"nodeType":"StructuredDocumentation","src":"698:102:43","text":" @dev Returns the average of two numbers. The result is rounded towards\n zero."},"id":8430,"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"814:7:43","nodeType":"FunctionDefinition","parameters":{"id":8413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8410,"mutability":"mutable","name":"a","nameLocation":"830:1:43","nodeType":"VariableDeclaration","scope":8430,"src":"822:9:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8409,"name":"uint256","nodeType":"ElementaryTypeName","src":"822:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8412,"mutability":"mutable","name":"b","nameLocation":"841:1:43","nodeType":"VariableDeclaration","scope":8430,"src":"833:9:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8411,"name":"uint256","nodeType":"ElementaryTypeName","src":"833:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"821:22:43"},"returnParameters":{"id":8416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8415,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8430,"src":"867:7:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8414,"name":"uint256","nodeType":"ElementaryTypeName","src":"867:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"866:9:43"},"scope":9230,"src":"805:153:43","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8454,"nodeType":"Block","src":"1228:123:43","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8440,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8433,"src":"1316:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":8441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1321:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1316:6:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8444,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8433,"src":"1330:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":8445,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1334:1:43","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1330:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8447,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1329:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":8448,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8435,"src":"1339:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1329:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":8450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1343:1:43","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1329:15:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1316:28:43","trueExpression":{"hexValue":"30","id":8443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1325:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8439,"id":8453,"nodeType":"Return","src":"1309:35:43"}]},"documentation":{"id":8431,"nodeType":"StructuredDocumentation","src":"964:188:43","text":" @dev Returns the ceiling of the division of two numbers.\n This differs from standard division with `/` in that it rounds up instead\n of rounding down."},"id":8455,"implemented":true,"kind":"function","modifiers":[],"name":"ceilDiv","nameLocation":"1166:7:43","nodeType":"FunctionDefinition","parameters":{"id":8436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8433,"mutability":"mutable","name":"a","nameLocation":"1182:1:43","nodeType":"VariableDeclaration","scope":8455,"src":"1174:9:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8432,"name":"uint256","nodeType":"ElementaryTypeName","src":"1174:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8435,"mutability":"mutable","name":"b","nameLocation":"1193:1:43","nodeType":"VariableDeclaration","scope":8455,"src":"1185:9:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8434,"name":"uint256","nodeType":"ElementaryTypeName","src":"1185:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1173:22:43"},"returnParameters":{"id":8439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8438,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8455,"src":"1219:7:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8437,"name":"uint256","nodeType":"ElementaryTypeName","src":"1219:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1218:9:43"},"scope":9230,"src":"1157:194:43","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8577,"nodeType":"Block","src":"1765:4115:43","statements":[{"id":8576,"nodeType":"UncheckedBlock","src":"1775:4099:43","statements":[{"assignments":[8468],"declarations":[{"constant":false,"id":8468,"mutability":"mutable","name":"prod0","nameLocation":"2104:5:43","nodeType":"VariableDeclaration","scope":8576,"src":"2096:13:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8467,"name":"uint256","nodeType":"ElementaryTypeName","src":"2096:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8469,"nodeType":"VariableDeclarationStatement","src":"2096:13:43"},{"assignments":[8471],"declarations":[{"constant":false,"id":8471,"mutability":"mutable","name":"prod1","nameLocation":"2176:5:43","nodeType":"VariableDeclaration","scope":8576,"src":"2168:13:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8470,"name":"uint256","nodeType":"ElementaryTypeName","src":"2168:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8472,"nodeType":"VariableDeclarationStatement","src":"2168:13:43"},{"AST":{"nativeSrc":"2248:157:43","nodeType":"YulBlock","src":"2248:157:43","statements":[{"nativeSrc":"2266:30:43","nodeType":"YulVariableDeclaration","src":"2266:30:43","value":{"arguments":[{"name":"x","nativeSrc":"2283:1:43","nodeType":"YulIdentifier","src":"2283:1:43"},{"name":"y","nativeSrc":"2286:1:43","nodeType":"YulIdentifier","src":"2286:1:43"},{"arguments":[{"kind":"number","nativeSrc":"2293:1:43","nodeType":"YulLiteral","src":"2293:1:43","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"2289:3:43","nodeType":"YulIdentifier","src":"2289:3:43"},"nativeSrc":"2289:6:43","nodeType":"YulFunctionCall","src":"2289:6:43"}],"functionName":{"name":"mulmod","nativeSrc":"2276:6:43","nodeType":"YulIdentifier","src":"2276:6:43"},"nativeSrc":"2276:20:43","nodeType":"YulFunctionCall","src":"2276:20:43"},"variables":[{"name":"mm","nativeSrc":"2270:2:43","nodeType":"YulTypedName","src":"2270:2:43","type":""}]},{"nativeSrc":"2313:18:43","nodeType":"YulAssignment","src":"2313:18:43","value":{"arguments":[{"name":"x","nativeSrc":"2326:1:43","nodeType":"YulIdentifier","src":"2326:1:43"},{"name":"y","nativeSrc":"2329:1:43","nodeType":"YulIdentifier","src":"2329:1:43"}],"functionName":{"name":"mul","nativeSrc":"2322:3:43","nodeType":"YulIdentifier","src":"2322:3:43"},"nativeSrc":"2322:9:43","nodeType":"YulFunctionCall","src":"2322:9:43"},"variableNames":[{"name":"prod0","nativeSrc":"2313:5:43","nodeType":"YulIdentifier","src":"2313:5:43"}]},{"nativeSrc":"2348:43:43","nodeType":"YulAssignment","src":"2348:43:43","value":{"arguments":[{"arguments":[{"name":"mm","nativeSrc":"2365:2:43","nodeType":"YulIdentifier","src":"2365:2:43"},{"name":"prod0","nativeSrc":"2369:5:43","nodeType":"YulIdentifier","src":"2369:5:43"}],"functionName":{"name":"sub","nativeSrc":"2361:3:43","nodeType":"YulIdentifier","src":"2361:3:43"},"nativeSrc":"2361:14:43","nodeType":"YulFunctionCall","src":"2361:14:43"},{"arguments":[{"name":"mm","nativeSrc":"2380:2:43","nodeType":"YulIdentifier","src":"2380:2:43"},{"name":"prod0","nativeSrc":"2384:5:43","nodeType":"YulIdentifier","src":"2384:5:43"}],"functionName":{"name":"lt","nativeSrc":"2377:2:43","nodeType":"YulIdentifier","src":"2377:2:43"},"nativeSrc":"2377:13:43","nodeType":"YulFunctionCall","src":"2377:13:43"}],"functionName":{"name":"sub","nativeSrc":"2357:3:43","nodeType":"YulIdentifier","src":"2357:3:43"},"nativeSrc":"2357:34:43","nodeType":"YulFunctionCall","src":"2357:34:43"},"variableNames":[{"name":"prod1","nativeSrc":"2348:5:43","nodeType":"YulIdentifier","src":"2348:5:43"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":8468,"isOffset":false,"isSlot":false,"src":"2313:5:43","valueSize":1},{"declaration":8468,"isOffset":false,"isSlot":false,"src":"2369:5:43","valueSize":1},{"declaration":8468,"isOffset":false,"isSlot":false,"src":"2384:5:43","valueSize":1},{"declaration":8471,"isOffset":false,"isSlot":false,"src":"2348:5:43","valueSize":1},{"declaration":8458,"isOffset":false,"isSlot":false,"src":"2283:1:43","valueSize":1},{"declaration":8458,"isOffset":false,"isSlot":false,"src":"2326:1:43","valueSize":1},{"declaration":8460,"isOffset":false,"isSlot":false,"src":"2286:1:43","valueSize":1},{"declaration":8460,"isOffset":false,"isSlot":false,"src":"2329:1:43","valueSize":1}],"id":8473,"nodeType":"InlineAssembly","src":"2239:166:43"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8474,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8471,"src":"2486:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":8475,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2495:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2486:10:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8482,"nodeType":"IfStatement","src":"2482:368:43","trueBody":{"id":8481,"nodeType":"Block","src":"2498:352:43","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8477,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8468,"src":"2816:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":8478,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8462,"src":"2824:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2816:19:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8466,"id":8480,"nodeType":"Return","src":"2809:26:43"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8484,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8462,"src":"2960:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":8485,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8471,"src":"2974:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2960:19:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4d6174683a206d756c446976206f766572666c6f77","id":8487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2981:23:43","typeDescriptions":{"typeIdentifier":"t_stringliteral_d87093691d63b122ac2c14d1b11554b287e2431cf2b03550b3be7cffb0f86851","typeString":"literal_string \"Math: mulDiv overflow\""},"value":"Math: mulDiv overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d87093691d63b122ac2c14d1b11554b287e2431cf2b03550b3be7cffb0f86851","typeString":"literal_string \"Math: mulDiv overflow\""}],"id":8483,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2952:7:43","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2952:53:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8489,"nodeType":"ExpressionStatement","src":"2952:53:43"},{"assignments":[8491],"declarations":[{"constant":false,"id":8491,"mutability":"mutable","name":"remainder","nameLocation":"3269:9:43","nodeType":"VariableDeclaration","scope":8576,"src":"3261:17:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8490,"name":"uint256","nodeType":"ElementaryTypeName","src":"3261:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8492,"nodeType":"VariableDeclarationStatement","src":"3261:17:43"},{"AST":{"nativeSrc":"3301:291:43","nodeType":"YulBlock","src":"3301:291:43","statements":[{"nativeSrc":"3370:38:43","nodeType":"YulAssignment","src":"3370:38:43","value":{"arguments":[{"name":"x","nativeSrc":"3390:1:43","nodeType":"YulIdentifier","src":"3390:1:43"},{"name":"y","nativeSrc":"3393:1:43","nodeType":"YulIdentifier","src":"3393:1:43"},{"name":"denominator","nativeSrc":"3396:11:43","nodeType":"YulIdentifier","src":"3396:11:43"}],"functionName":{"name":"mulmod","nativeSrc":"3383:6:43","nodeType":"YulIdentifier","src":"3383:6:43"},"nativeSrc":"3383:25:43","nodeType":"YulFunctionCall","src":"3383:25:43"},"variableNames":[{"name":"remainder","nativeSrc":"3370:9:43","nodeType":"YulIdentifier","src":"3370:9:43"}]},{"nativeSrc":"3490:41:43","nodeType":"YulAssignment","src":"3490:41:43","value":{"arguments":[{"name":"prod1","nativeSrc":"3503:5:43","nodeType":"YulIdentifier","src":"3503:5:43"},{"arguments":[{"name":"remainder","nativeSrc":"3513:9:43","nodeType":"YulIdentifier","src":"3513:9:43"},{"name":"prod0","nativeSrc":"3524:5:43","nodeType":"YulIdentifier","src":"3524:5:43"}],"functionName":{"name":"gt","nativeSrc":"3510:2:43","nodeType":"YulIdentifier","src":"3510:2:43"},"nativeSrc":"3510:20:43","nodeType":"YulFunctionCall","src":"3510:20:43"}],"functionName":{"name":"sub","nativeSrc":"3499:3:43","nodeType":"YulIdentifier","src":"3499:3:43"},"nativeSrc":"3499:32:43","nodeType":"YulFunctionCall","src":"3499:32:43"},"variableNames":[{"name":"prod1","nativeSrc":"3490:5:43","nodeType":"YulIdentifier","src":"3490:5:43"}]},{"nativeSrc":"3548:30:43","nodeType":"YulAssignment","src":"3548:30:43","value":{"arguments":[{"name":"prod0","nativeSrc":"3561:5:43","nodeType":"YulIdentifier","src":"3561:5:43"},{"name":"remainder","nativeSrc":"3568:9:43","nodeType":"YulIdentifier","src":"3568:9:43"}],"functionName":{"name":"sub","nativeSrc":"3557:3:43","nodeType":"YulIdentifier","src":"3557:3:43"},"nativeSrc":"3557:21:43","nodeType":"YulFunctionCall","src":"3557:21:43"},"variableNames":[{"name":"prod0","nativeSrc":"3548:5:43","nodeType":"YulIdentifier","src":"3548:5:43"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":8462,"isOffset":false,"isSlot":false,"src":"3396:11:43","valueSize":1},{"declaration":8468,"isOffset":false,"isSlot":false,"src":"3524:5:43","valueSize":1},{"declaration":8468,"isOffset":false,"isSlot":false,"src":"3548:5:43","valueSize":1},{"declaration":8468,"isOffset":false,"isSlot":false,"src":"3561:5:43","valueSize":1},{"declaration":8471,"isOffset":false,"isSlot":false,"src":"3490:5:43","valueSize":1},{"declaration":8471,"isOffset":false,"isSlot":false,"src":"3503:5:43","valueSize":1},{"declaration":8491,"isOffset":false,"isSlot":false,"src":"3370:9:43","valueSize":1},{"declaration":8491,"isOffset":false,"isSlot":false,"src":"3513:9:43","valueSize":1},{"declaration":8491,"isOffset":false,"isSlot":false,"src":"3568:9:43","valueSize":1},{"declaration":8458,"isOffset":false,"isSlot":false,"src":"3390:1:43","valueSize":1},{"declaration":8460,"isOffset":false,"isSlot":false,"src":"3393:1:43","valueSize":1}],"id":8493,"nodeType":"InlineAssembly","src":"3292:300:43"},{"assignments":[8495],"declarations":[{"constant":false,"id":8495,"mutability":"mutable","name":"twos","nameLocation":"3907:4:43","nodeType":"VariableDeclaration","scope":8576,"src":"3899:12:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8494,"name":"uint256","nodeType":"ElementaryTypeName","src":"3899:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8503,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8496,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8462,"src":"3914:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"3929:12:43","subExpression":{"id":8497,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8462,"src":"3930:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":8499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3944:1:43","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3929:16:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8501,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3928:18:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3914:32:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3899:47:43"},{"AST":{"nativeSrc":"3969:362:43","nodeType":"YulBlock","src":"3969:362:43","statements":[{"nativeSrc":"4034:37:43","nodeType":"YulAssignment","src":"4034:37:43","value":{"arguments":[{"name":"denominator","nativeSrc":"4053:11:43","nodeType":"YulIdentifier","src":"4053:11:43"},{"name":"twos","nativeSrc":"4066:4:43","nodeType":"YulIdentifier","src":"4066:4:43"}],"functionName":{"name":"div","nativeSrc":"4049:3:43","nodeType":"YulIdentifier","src":"4049:3:43"},"nativeSrc":"4049:22:43","nodeType":"YulFunctionCall","src":"4049:22:43"},"variableNames":[{"name":"denominator","nativeSrc":"4034:11:43","nodeType":"YulIdentifier","src":"4034:11:43"}]},{"nativeSrc":"4138:25:43","nodeType":"YulAssignment","src":"4138:25:43","value":{"arguments":[{"name":"prod0","nativeSrc":"4151:5:43","nodeType":"YulIdentifier","src":"4151:5:43"},{"name":"twos","nativeSrc":"4158:4:43","nodeType":"YulIdentifier","src":"4158:4:43"}],"functionName":{"name":"div","nativeSrc":"4147:3:43","nodeType":"YulIdentifier","src":"4147:3:43"},"nativeSrc":"4147:16:43","nodeType":"YulFunctionCall","src":"4147:16:43"},"variableNames":[{"name":"prod0","nativeSrc":"4138:5:43","nodeType":"YulIdentifier","src":"4138:5:43"}]},{"nativeSrc":"4278:39:43","nodeType":"YulAssignment","src":"4278:39:43","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"4298:1:43","nodeType":"YulLiteral","src":"4298:1:43","type":"","value":"0"},{"name":"twos","nativeSrc":"4301:4:43","nodeType":"YulIdentifier","src":"4301:4:43"}],"functionName":{"name":"sub","nativeSrc":"4294:3:43","nodeType":"YulIdentifier","src":"4294:3:43"},"nativeSrc":"4294:12:43","nodeType":"YulFunctionCall","src":"4294:12:43"},{"name":"twos","nativeSrc":"4308:4:43","nodeType":"YulIdentifier","src":"4308:4:43"}],"functionName":{"name":"div","nativeSrc":"4290:3:43","nodeType":"YulIdentifier","src":"4290:3:43"},"nativeSrc":"4290:23:43","nodeType":"YulFunctionCall","src":"4290:23:43"},{"kind":"number","nativeSrc":"4315:1:43","nodeType":"YulLiteral","src":"4315:1:43","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"4286:3:43","nodeType":"YulIdentifier","src":"4286:3:43"},"nativeSrc":"4286:31:43","nodeType":"YulFunctionCall","src":"4286:31:43"},"variableNames":[{"name":"twos","nativeSrc":"4278:4:43","nodeType":"YulIdentifier","src":"4278:4:43"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":8462,"isOffset":false,"isSlot":false,"src":"4034:11:43","valueSize":1},{"declaration":8462,"isOffset":false,"isSlot":false,"src":"4053:11:43","valueSize":1},{"declaration":8468,"isOffset":false,"isSlot":false,"src":"4138:5:43","valueSize":1},{"declaration":8468,"isOffset":false,"isSlot":false,"src":"4151:5:43","valueSize":1},{"declaration":8495,"isOffset":false,"isSlot":false,"src":"4066:4:43","valueSize":1},{"declaration":8495,"isOffset":false,"isSlot":false,"src":"4158:4:43","valueSize":1},{"declaration":8495,"isOffset":false,"isSlot":false,"src":"4278:4:43","valueSize":1},{"declaration":8495,"isOffset":false,"isSlot":false,"src":"4301:4:43","valueSize":1},{"declaration":8495,"isOffset":false,"isSlot":false,"src":"4308:4:43","valueSize":1}],"id":8504,"nodeType":"InlineAssembly","src":"3960:371:43"},{"expression":{"id":8509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8505,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8468,"src":"4397:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8506,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8471,"src":"4406:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":8507,"name":"twos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8495,"src":"4414:4:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4406:12:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4397:21:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8510,"nodeType":"ExpressionStatement","src":"4397:21:43"},{"assignments":[8512],"declarations":[{"constant":false,"id":8512,"mutability":"mutable","name":"inverse","nameLocation":"4744:7:43","nodeType":"VariableDeclaration","scope":8576,"src":"4736:15:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8511,"name":"uint256","nodeType":"ElementaryTypeName","src":"4736:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8519,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":8513,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4755:1:43","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":8514,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8462,"src":"4759:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4755:15:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8516,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4754:17:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"hexValue":"32","id":8517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4774:1:43","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"4754:21:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4736:39:43"},{"expression":{"id":8526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8520,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8512,"src":"4992:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":8521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5003:1:43","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8522,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8462,"src":"5007:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":8523,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8512,"src":"5021:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5007:21:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5003:25:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4992:36:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8527,"nodeType":"ExpressionStatement","src":"4992:36:43"},{"expression":{"id":8534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8528,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8512,"src":"5061:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":8529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5072:1:43","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8530,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8462,"src":"5076:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":8531,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8512,"src":"5090:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5076:21:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5072:25:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5061:36:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8535,"nodeType":"ExpressionStatement","src":"5061:36:43"},{"expression":{"id":8542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8536,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8512,"src":"5131:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":8537,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5142:1:43","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8538,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8462,"src":"5146:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":8539,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8512,"src":"5160:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5146:21:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5142:25:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5131:36:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8543,"nodeType":"ExpressionStatement","src":"5131:36:43"},{"expression":{"id":8550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8544,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8512,"src":"5201:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":8545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5212:1:43","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8546,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8462,"src":"5216:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":8547,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8512,"src":"5230:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5216:21:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5212:25:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5201:36:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8551,"nodeType":"ExpressionStatement","src":"5201:36:43"},{"expression":{"id":8558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8552,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8512,"src":"5271:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":8553,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5282:1:43","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8554,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8462,"src":"5286:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":8555,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8512,"src":"5300:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5286:21:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5282:25:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5271:36:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8559,"nodeType":"ExpressionStatement","src":"5271:36:43"},{"expression":{"id":8566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8560,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8512,"src":"5342:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":8561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5353:1:43","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8562,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8462,"src":"5357:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":8563,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8512,"src":"5371:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5357:21:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5353:25:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5342:36:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8567,"nodeType":"ExpressionStatement","src":"5342:36:43"},{"expression":{"id":8572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8568,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8465,"src":"5812:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8569,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8468,"src":"5821:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":8570,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8512,"src":"5829:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5821:15:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5812:24:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8573,"nodeType":"ExpressionStatement","src":"5812:24:43"},{"expression":{"id":8574,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8465,"src":"5857:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8466,"id":8575,"nodeType":"Return","src":"5850:13:43"}]}]},"documentation":{"id":8456,"nodeType":"StructuredDocumentation","src":"1357:305:43","text":" @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\n @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)\n with further edits by Uniswap Labs also under MIT license."},"id":8578,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"1676:6:43","nodeType":"FunctionDefinition","parameters":{"id":8463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8458,"mutability":"mutable","name":"x","nameLocation":"1691:1:43","nodeType":"VariableDeclaration","scope":8578,"src":"1683:9:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8457,"name":"uint256","nodeType":"ElementaryTypeName","src":"1683:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8460,"mutability":"mutable","name":"y","nameLocation":"1702:1:43","nodeType":"VariableDeclaration","scope":8578,"src":"1694:9:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8459,"name":"uint256","nodeType":"ElementaryTypeName","src":"1694:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8462,"mutability":"mutable","name":"denominator","nameLocation":"1713:11:43","nodeType":"VariableDeclaration","scope":8578,"src":"1705:19:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8461,"name":"uint256","nodeType":"ElementaryTypeName","src":"1705:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1682:43:43"},"returnParameters":{"id":8466,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8465,"mutability":"mutable","name":"result","nameLocation":"1757:6:43","nodeType":"VariableDeclaration","scope":8578,"src":"1749:14:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8464,"name":"uint256","nodeType":"ElementaryTypeName","src":"1749:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1748:16:43"},"scope":9230,"src":"1667:4213:43","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8621,"nodeType":"Block","src":"6122:189:43","statements":[{"assignments":[8594],"declarations":[{"constant":false,"id":8594,"mutability":"mutable","name":"result","nameLocation":"6140:6:43","nodeType":"VariableDeclaration","scope":8621,"src":"6132:14:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8593,"name":"uint256","nodeType":"ElementaryTypeName","src":"6132:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8600,"initialValue":{"arguments":[{"id":8596,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8581,"src":"6156:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8597,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8583,"src":"6159:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8598,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8585,"src":"6162:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8595,"name":"mulDiv","nodeType":"Identifier","overloadedDeclarations":[8578,8622],"referencedDeclaration":8578,"src":"6149:6:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":8599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6149:25:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6132:42:43"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":8612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$8371","typeString":"enum Math.Rounding"},"id":8604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8601,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8588,"src":"6188:8:43","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$8371","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":8602,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8371,"src":"6200:8:43","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$8371_$","typeString":"type(enum Math.Rounding)"}},"id":8603,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6209:2:43","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":8369,"src":"6200:11:43","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$8371","typeString":"enum Math.Rounding"}},"src":"6188:23:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":8606,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8581,"src":"6222:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8607,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8583,"src":"6225:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8608,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8585,"src":"6228:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8605,"name":"mulmod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-16,"src":"6215:6:43","typeDescriptions":{"typeIdentifier":"t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":8609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6215:25:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6243:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6215:29:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6188:56:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8618,"nodeType":"IfStatement","src":"6184:98:43","trueBody":{"id":8617,"nodeType":"Block","src":"6246:36:43","statements":[{"expression":{"id":8615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8613,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8594,"src":"6260:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":8614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6270:1:43","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6260:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8616,"nodeType":"ExpressionStatement","src":"6260:11:43"}]}},{"expression":{"id":8619,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8594,"src":"6298:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8592,"id":8620,"nodeType":"Return","src":"6291:13:43"}]},"documentation":{"id":8579,"nodeType":"StructuredDocumentation","src":"5886:121:43","text":" @notice Calculates x * y / denominator with full precision, following the selected rounding direction."},"id":8622,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"6021:6:43","nodeType":"FunctionDefinition","parameters":{"id":8589,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8581,"mutability":"mutable","name":"x","nameLocation":"6036:1:43","nodeType":"VariableDeclaration","scope":8622,"src":"6028:9:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8580,"name":"uint256","nodeType":"ElementaryTypeName","src":"6028:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8583,"mutability":"mutable","name":"y","nameLocation":"6047:1:43","nodeType":"VariableDeclaration","scope":8622,"src":"6039:9:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8582,"name":"uint256","nodeType":"ElementaryTypeName","src":"6039:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8585,"mutability":"mutable","name":"denominator","nameLocation":"6058:11:43","nodeType":"VariableDeclaration","scope":8622,"src":"6050:19:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8584,"name":"uint256","nodeType":"ElementaryTypeName","src":"6050:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8588,"mutability":"mutable","name":"rounding","nameLocation":"6080:8:43","nodeType":"VariableDeclaration","scope":8622,"src":"6071:17:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$8371","typeString":"enum Math.Rounding"},"typeName":{"id":8587,"nodeType":"UserDefinedTypeName","pathNode":{"id":8586,"name":"Rounding","nameLocations":["6071:8:43"],"nodeType":"IdentifierPath","referencedDeclaration":8371,"src":"6071:8:43"},"referencedDeclaration":8371,"src":"6071:8:43","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$8371","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"6027:62:43"},"returnParameters":{"id":8592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8591,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8622,"src":"6113:7:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8590,"name":"uint256","nodeType":"ElementaryTypeName","src":"6113:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6112:9:43"},"scope":9230,"src":"6012:299:43","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8733,"nodeType":"Block","src":"6587:1585:43","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8630,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8625,"src":"6601:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":8631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6606:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6601:6:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8636,"nodeType":"IfStatement","src":"6597:45:43","trueBody":{"id":8635,"nodeType":"Block","src":"6609:33:43","statements":[{"expression":{"hexValue":"30","id":8633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6630:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":8629,"id":8634,"nodeType":"Return","src":"6623:8:43"}]}},{"assignments":[8638],"declarations":[{"constant":false,"id":8638,"mutability":"mutable","name":"result","nameLocation":"7329:6:43","nodeType":"VariableDeclaration","scope":8733,"src":"7321:14:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8637,"name":"uint256","nodeType":"ElementaryTypeName","src":"7321:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8647,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":8639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7338:1:43","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":8641,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8625,"src":"7349:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8640,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[8902,8938],"referencedDeclaration":8902,"src":"7344:4:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":8642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7344:7:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":8643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7355:1:43","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7344:12:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8645,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7343:14:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7338:19:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7321:36:43"},{"id":8732,"nodeType":"UncheckedBlock","src":"7758:408:43","statements":[{"expression":{"id":8657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8648,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8638,"src":"7782:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8649,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8638,"src":"7792:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8650,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8625,"src":"7801:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":8651,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8638,"src":"7805:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7801:10:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7792:19:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8654,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7791:21:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":8655,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7816:1:43","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7791:26:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7782:35:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8658,"nodeType":"ExpressionStatement","src":"7782:35:43"},{"expression":{"id":8668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8659,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8638,"src":"7831:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8660,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8638,"src":"7841:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8661,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8625,"src":"7850:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":8662,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8638,"src":"7854:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7850:10:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7841:19:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8665,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7840:21:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":8666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7865:1:43","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7840:26:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7831:35:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8669,"nodeType":"ExpressionStatement","src":"7831:35:43"},{"expression":{"id":8679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8670,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8638,"src":"7880:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8671,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8638,"src":"7890:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8672,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8625,"src":"7899:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":8673,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8638,"src":"7903:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7899:10:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7890:19:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8676,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7889:21:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":8677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7914:1:43","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7889:26:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7880:35:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8680,"nodeType":"ExpressionStatement","src":"7880:35:43"},{"expression":{"id":8690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8681,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8638,"src":"7929:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8682,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8638,"src":"7939:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8683,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8625,"src":"7948:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":8684,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8638,"src":"7952:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7948:10:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7939:19:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8687,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7938:21:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":8688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7963:1:43","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7938:26:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7929:35:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8691,"nodeType":"ExpressionStatement","src":"7929:35:43"},{"expression":{"id":8701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8692,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8638,"src":"7978:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8693,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8638,"src":"7988:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8694,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8625,"src":"7997:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":8695,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8638,"src":"8001:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7997:10:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7988:19:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8698,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7987:21:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":8699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8012:1:43","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7987:26:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7978:35:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8702,"nodeType":"ExpressionStatement","src":"7978:35:43"},{"expression":{"id":8712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8703,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8638,"src":"8027:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8704,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8638,"src":"8037:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8705,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8625,"src":"8046:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":8706,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8638,"src":"8050:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8046:10:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8037:19:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8709,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8036:21:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":8710,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8061:1:43","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8036:26:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8027:35:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8713,"nodeType":"ExpressionStatement","src":"8027:35:43"},{"expression":{"id":8723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8714,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8638,"src":"8076:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8715,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8638,"src":"8086:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8716,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8625,"src":"8095:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":8717,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8638,"src":"8099:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8095:10:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8086:19:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8720,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8085:21:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":8721,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8110:1:43","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8085:26:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8076:35:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8724,"nodeType":"ExpressionStatement","src":"8076:35:43"},{"expression":{"arguments":[{"id":8726,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8638,"src":"8136:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8727,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8625,"src":"8144:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":8728,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8638,"src":"8148:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8144:10:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8725,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8407,"src":"8132:3:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":8730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8132:23:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8629,"id":8731,"nodeType":"Return","src":"8125:30:43"}]}]},"documentation":{"id":8623,"nodeType":"StructuredDocumentation","src":"6317:208:43","text":" @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down.\n Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11)."},"id":8734,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"6539:4:43","nodeType":"FunctionDefinition","parameters":{"id":8626,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8625,"mutability":"mutable","name":"a","nameLocation":"6552:1:43","nodeType":"VariableDeclaration","scope":8734,"src":"6544:9:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8624,"name":"uint256","nodeType":"ElementaryTypeName","src":"6544:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6543:11:43"},"returnParameters":{"id":8629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8628,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8734,"src":"6578:7:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8627,"name":"uint256","nodeType":"ElementaryTypeName","src":"6578:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6577:9:43"},"scope":9230,"src":"6530:1642:43","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8769,"nodeType":"Block","src":"8348:161:43","statements":[{"id":8768,"nodeType":"UncheckedBlock","src":"8358:145:43","statements":[{"assignments":[8746],"declarations":[{"constant":false,"id":8746,"mutability":"mutable","name":"result","nameLocation":"8390:6:43","nodeType":"VariableDeclaration","scope":8768,"src":"8382:14:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8745,"name":"uint256","nodeType":"ElementaryTypeName","src":"8382:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8750,"initialValue":{"arguments":[{"id":8748,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8737,"src":"8404:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8747,"name":"sqrt","nodeType":"Identifier","overloadedDeclarations":[8734,8770],"referencedDeclaration":8734,"src":"8399:4:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":8749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8399:7:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8382:24:43"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8751,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8746,"src":"8427:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":8761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$8371","typeString":"enum Math.Rounding"},"id":8755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8752,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8740,"src":"8437:8:43","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$8371","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":8753,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8371,"src":"8449:8:43","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$8371_$","typeString":"type(enum Math.Rounding)"}},"id":8754,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8458:2:43","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":8369,"src":"8449:11:43","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$8371","typeString":"enum Math.Rounding"}},"src":"8437:23:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8756,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8746,"src":"8464:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":8757,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8746,"src":"8473:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8464:15:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":8759,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8737,"src":"8482:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8464:19:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8437:46:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":8763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8490:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":8764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"8437:54:43","trueExpression":{"hexValue":"31","id":8762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8486:1:43","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":8765,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8436:56:43","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"8427:65:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8744,"id":8767,"nodeType":"Return","src":"8420:72:43"}]}]},"documentation":{"id":8735,"nodeType":"StructuredDocumentation","src":"8178:89:43","text":" @notice Calculates sqrt(a), following the selected rounding direction."},"id":8770,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"8281:4:43","nodeType":"FunctionDefinition","parameters":{"id":8741,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8737,"mutability":"mutable","name":"a","nameLocation":"8294:1:43","nodeType":"VariableDeclaration","scope":8770,"src":"8286:9:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8736,"name":"uint256","nodeType":"ElementaryTypeName","src":"8286:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8740,"mutability":"mutable","name":"rounding","nameLocation":"8306:8:43","nodeType":"VariableDeclaration","scope":8770,"src":"8297:17:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$8371","typeString":"enum Math.Rounding"},"typeName":{"id":8739,"nodeType":"UserDefinedTypeName","pathNode":{"id":8738,"name":"Rounding","nameLocations":["8297:8:43"],"nodeType":"IdentifierPath","referencedDeclaration":8371,"src":"8297:8:43"},"referencedDeclaration":8371,"src":"8297:8:43","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$8371","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"8285:30:43"},"returnParameters":{"id":8744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8743,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8770,"src":"8339:7:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8742,"name":"uint256","nodeType":"ElementaryTypeName","src":"8339:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8338:9:43"},"scope":9230,"src":"8272:237:43","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8901,"nodeType":"Block","src":"8694:922:43","statements":[{"assignments":[8779],"declarations":[{"constant":false,"id":8779,"mutability":"mutable","name":"result","nameLocation":"8712:6:43","nodeType":"VariableDeclaration","scope":8901,"src":"8704:14:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8778,"name":"uint256","nodeType":"ElementaryTypeName","src":"8704:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8781,"initialValue":{"hexValue":"30","id":8780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8721:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8704:18:43"},{"id":8898,"nodeType":"UncheckedBlock","src":"8732:855:43","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8782,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8773,"src":"8760:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":8783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8769:3:43","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"8760:12:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8785,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8775:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8760:16:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8796,"nodeType":"IfStatement","src":"8756:99:43","trueBody":{"id":8795,"nodeType":"Block","src":"8778:77:43","statements":[{"expression":{"id":8789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8787,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8773,"src":"8796:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":8788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8806:3:43","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"8796:13:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8790,"nodeType":"ExpressionStatement","src":"8796:13:43"},{"expression":{"id":8793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8791,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8779,"src":"8827:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"313238","id":8792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8837:3:43","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"8827:13:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8794,"nodeType":"ExpressionStatement","src":"8827:13:43"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8797,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8773,"src":"8872:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":8798,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8881:2:43","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"8872:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8800,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8886:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8872:15:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8811,"nodeType":"IfStatement","src":"8868:96:43","trueBody":{"id":8810,"nodeType":"Block","src":"8889:75:43","statements":[{"expression":{"id":8804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8802,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8773,"src":"8907:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":8803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8917:2:43","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"8907:12:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8805,"nodeType":"ExpressionStatement","src":"8907:12:43"},{"expression":{"id":8808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8806,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8779,"src":"8937:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":8807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8947:2:43","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"8937:12:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8809,"nodeType":"ExpressionStatement","src":"8937:12:43"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8812,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8773,"src":"8981:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3332","id":8813,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8990:2:43","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"8981:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8995:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8981:15:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8826,"nodeType":"IfStatement","src":"8977:96:43","trueBody":{"id":8825,"nodeType":"Block","src":"8998:75:43","statements":[{"expression":{"id":8819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8817,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8773,"src":"9016:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":8818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9026:2:43","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"9016:12:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8820,"nodeType":"ExpressionStatement","src":"9016:12:43"},{"expression":{"id":8823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8821,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8779,"src":"9046:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":8822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9056:2:43","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"9046:12:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8824,"nodeType":"ExpressionStatement","src":"9046:12:43"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8827,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8773,"src":"9090:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3136","id":8828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9099:2:43","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"9090:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8830,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9104:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9090:15:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8841,"nodeType":"IfStatement","src":"9086:96:43","trueBody":{"id":8840,"nodeType":"Block","src":"9107:75:43","statements":[{"expression":{"id":8834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8832,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8773,"src":"9125:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":8833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9135:2:43","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"9125:12:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8835,"nodeType":"ExpressionStatement","src":"9125:12:43"},{"expression":{"id":8838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8836,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8779,"src":"9155:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":8837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9165:2:43","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"9155:12:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8839,"nodeType":"ExpressionStatement","src":"9155:12:43"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8842,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8773,"src":"9199:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"38","id":8843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9208:1:43","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"9199:10:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8845,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9212:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9199:14:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8856,"nodeType":"IfStatement","src":"9195:93:43","trueBody":{"id":8855,"nodeType":"Block","src":"9215:73:43","statements":[{"expression":{"id":8849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8847,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8773,"src":"9233:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"38","id":8848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9243:1:43","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"9233:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8850,"nodeType":"ExpressionStatement","src":"9233:11:43"},{"expression":{"id":8853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8851,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8779,"src":"9262:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":8852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9272:1:43","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"9262:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8854,"nodeType":"ExpressionStatement","src":"9262:11:43"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8857,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8773,"src":"9305:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"34","id":8858,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9314:1:43","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"9305:10:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8860,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9318:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9305:14:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8871,"nodeType":"IfStatement","src":"9301:93:43","trueBody":{"id":8870,"nodeType":"Block","src":"9321:73:43","statements":[{"expression":{"id":8864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8862,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8773,"src":"9339:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":8863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9349:1:43","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"9339:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8865,"nodeType":"ExpressionStatement","src":"9339:11:43"},{"expression":{"id":8868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8866,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8779,"src":"9368:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":8867,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9378:1:43","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"9368:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8869,"nodeType":"ExpressionStatement","src":"9368:11:43"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8872,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8773,"src":"9411:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"32","id":8873,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9420:1:43","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9411:10:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9424:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9411:14:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8886,"nodeType":"IfStatement","src":"9407:93:43","trueBody":{"id":8885,"nodeType":"Block","src":"9427:73:43","statements":[{"expression":{"id":8879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8877,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8773,"src":"9445:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"32","id":8878,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9455:1:43","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9445:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8880,"nodeType":"ExpressionStatement","src":"9445:11:43"},{"expression":{"id":8883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8881,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8779,"src":"9474:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":8882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9484:1:43","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9474:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8884,"nodeType":"ExpressionStatement","src":"9474:11:43"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8887,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8773,"src":"9517:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":8888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9526:1:43","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9517:10:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9530:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9517:14:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8897,"nodeType":"IfStatement","src":"9513:64:43","trueBody":{"id":8896,"nodeType":"Block","src":"9533:44:43","statements":[{"expression":{"id":8894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8892,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8779,"src":"9551:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":8893,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9561:1:43","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9551:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8895,"nodeType":"ExpressionStatement","src":"9551:11:43"}]}}]},{"expression":{"id":8899,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8779,"src":"9603:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8777,"id":8900,"nodeType":"Return","src":"9596:13:43"}]},"documentation":{"id":8771,"nodeType":"StructuredDocumentation","src":"8515:113:43","text":" @dev Return the log in base 2, rounded down, of a positive value.\n Returns 0 if given 0."},"id":8902,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"8642:4:43","nodeType":"FunctionDefinition","parameters":{"id":8774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8773,"mutability":"mutable","name":"value","nameLocation":"8655:5:43","nodeType":"VariableDeclaration","scope":8902,"src":"8647:13:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8772,"name":"uint256","nodeType":"ElementaryTypeName","src":"8647:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8646:15:43"},"returnParameters":{"id":8777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8776,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8902,"src":"8685:7:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8775,"name":"uint256","nodeType":"ElementaryTypeName","src":"8685:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8684:9:43"},"scope":9230,"src":"8633:983:43","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8937,"nodeType":"Block","src":"9849:165:43","statements":[{"id":8936,"nodeType":"UncheckedBlock","src":"9859:149:43","statements":[{"assignments":[8914],"declarations":[{"constant":false,"id":8914,"mutability":"mutable","name":"result","nameLocation":"9891:6:43","nodeType":"VariableDeclaration","scope":8936,"src":"9883:14:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8913,"name":"uint256","nodeType":"ElementaryTypeName","src":"9883:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8918,"initialValue":{"arguments":[{"id":8916,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8905,"src":"9905:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8915,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[8902,8938],"referencedDeclaration":8902,"src":"9900:4:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":8917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9900:11:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9883:28:43"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8919,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8914,"src":"9932:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":8929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$8371","typeString":"enum Math.Rounding"},"id":8923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8920,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8908,"src":"9942:8:43","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$8371","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":8921,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8371,"src":"9954:8:43","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$8371_$","typeString":"type(enum Math.Rounding)"}},"id":8922,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9963:2:43","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":8369,"src":"9954:11:43","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$8371","typeString":"enum Math.Rounding"}},"src":"9942:23:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":8924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9969:1:43","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":8925,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8914,"src":"9974:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9969:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":8927,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8905,"src":"9983:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9969:19:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9942:46:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":8931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9995:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":8932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"9942:54:43","trueExpression":{"hexValue":"31","id":8930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9991:1:43","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":8933,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9941:56:43","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"9932:65:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8912,"id":8935,"nodeType":"Return","src":"9925:72:43"}]}]},"documentation":{"id":8903,"nodeType":"StructuredDocumentation","src":"9622:142:43","text":" @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":8938,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"9778:4:43","nodeType":"FunctionDefinition","parameters":{"id":8909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8905,"mutability":"mutable","name":"value","nameLocation":"9791:5:43","nodeType":"VariableDeclaration","scope":8938,"src":"9783:13:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8904,"name":"uint256","nodeType":"ElementaryTypeName","src":"9783:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8908,"mutability":"mutable","name":"rounding","nameLocation":"9807:8:43","nodeType":"VariableDeclaration","scope":8938,"src":"9798:17:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$8371","typeString":"enum Math.Rounding"},"typeName":{"id":8907,"nodeType":"UserDefinedTypeName","pathNode":{"id":8906,"name":"Rounding","nameLocations":["9798:8:43"],"nodeType":"IdentifierPath","referencedDeclaration":8371,"src":"9798:8:43"},"referencedDeclaration":8371,"src":"9798:8:43","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$8371","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"9782:34:43"},"returnParameters":{"id":8912,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8911,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8938,"src":"9840:7:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8910,"name":"uint256","nodeType":"ElementaryTypeName","src":"9840:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9839:9:43"},"scope":9230,"src":"9769:245:43","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9066,"nodeType":"Block","src":"10201:854:43","statements":[{"assignments":[8947],"declarations":[{"constant":false,"id":8947,"mutability":"mutable","name":"result","nameLocation":"10219:6:43","nodeType":"VariableDeclaration","scope":9066,"src":"10211:14:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8946,"name":"uint256","nodeType":"ElementaryTypeName","src":"10211:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8949,"initialValue":{"hexValue":"30","id":8948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10228:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10211:18:43"},{"id":9063,"nodeType":"UncheckedBlock","src":"10239:787:43","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8950,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8941,"src":"10267:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"},"id":8953,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":8951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10276:2:43","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":8952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10282:2:43","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10276:8:43","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"10267:17:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8966,"nodeType":"IfStatement","src":"10263:103:43","trueBody":{"id":8965,"nodeType":"Block","src":"10286:80:43","statements":[{"expression":{"id":8959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8955,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8941,"src":"10304:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"},"id":8958,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":8956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10313:2:43","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":8957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10319:2:43","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10313:8:43","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"10304:17:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8960,"nodeType":"ExpressionStatement","src":"10304:17:43"},{"expression":{"id":8963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8961,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8947,"src":"10339:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":8962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10349:2:43","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10339:12:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8964,"nodeType":"ExpressionStatement","src":"10339:12:43"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8967,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8941,"src":"10383:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"},"id":8970,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":8968,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10392:2:43","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":8969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10398:2:43","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"10392:8:43","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"10383:17:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8983,"nodeType":"IfStatement","src":"10379:103:43","trueBody":{"id":8982,"nodeType":"Block","src":"10402:80:43","statements":[{"expression":{"id":8976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8972,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8941,"src":"10420:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"},"id":8975,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":8973,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10429:2:43","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":8974,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10435:2:43","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"10429:8:43","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"10420:17:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8977,"nodeType":"ExpressionStatement","src":"10420:17:43"},{"expression":{"id":8980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8978,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8947,"src":"10455:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":8979,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10465:2:43","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"10455:12:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8981,"nodeType":"ExpressionStatement","src":"10455:12:43"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8984,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8941,"src":"10499:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":8987,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":8985,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10508:2:43","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":8986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10514:2:43","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"10508:8:43","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"10499:17:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9000,"nodeType":"IfStatement","src":"10495:103:43","trueBody":{"id":8999,"nodeType":"Block","src":"10518:80:43","statements":[{"expression":{"id":8993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8989,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8941,"src":"10536:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":8992,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":8990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10545:2:43","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":8991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10551:2:43","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"10545:8:43","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"10536:17:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8994,"nodeType":"ExpressionStatement","src":"10536:17:43"},{"expression":{"id":8997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8995,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8947,"src":"10571:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":8996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10581:2:43","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"10571:12:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8998,"nodeType":"ExpressionStatement","src":"10571:12:43"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9001,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8941,"src":"10615:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":9004,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":9002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10624:2:43","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":9003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10630:1:43","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"10624:7:43","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"10615:16:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9017,"nodeType":"IfStatement","src":"10611:100:43","trueBody":{"id":9016,"nodeType":"Block","src":"10633:78:43","statements":[{"expression":{"id":9010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9006,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8941,"src":"10651:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":9009,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":9007,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10660:2:43","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":9008,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10666:1:43","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"10660:7:43","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"10651:16:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9011,"nodeType":"ExpressionStatement","src":"10651:16:43"},{"expression":{"id":9014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9012,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8947,"src":"10685:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":9013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10695:1:43","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"10685:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9015,"nodeType":"ExpressionStatement","src":"10685:11:43"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9018,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8941,"src":"10728:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":9021,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":9019,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10737:2:43","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":9020,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10743:1:43","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"10737:7:43","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"10728:16:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9034,"nodeType":"IfStatement","src":"10724:100:43","trueBody":{"id":9033,"nodeType":"Block","src":"10746:78:43","statements":[{"expression":{"id":9027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9023,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8941,"src":"10764:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":9026,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":9024,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10773:2:43","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":9025,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10779:1:43","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"10773:7:43","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"10764:16:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9028,"nodeType":"ExpressionStatement","src":"10764:16:43"},{"expression":{"id":9031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9029,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8947,"src":"10798:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":9030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10808:1:43","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"10798:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9032,"nodeType":"ExpressionStatement","src":"10798:11:43"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9035,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8941,"src":"10841:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":9038,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":9036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10850:2:43","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":9037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10856:1:43","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"10850:7:43","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"10841:16:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9051,"nodeType":"IfStatement","src":"10837:100:43","trueBody":{"id":9050,"nodeType":"Block","src":"10859:78:43","statements":[{"expression":{"id":9044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9040,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8941,"src":"10877:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":9043,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":9041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10886:2:43","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":9042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10892:1:43","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"10886:7:43","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"10877:16:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9045,"nodeType":"ExpressionStatement","src":"10877:16:43"},{"expression":{"id":9048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9046,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8947,"src":"10911:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":9047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10921:1:43","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"10911:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9049,"nodeType":"ExpressionStatement","src":"10911:11:43"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9052,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8941,"src":"10954:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"id":9055,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":9053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10963:2:43","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"31","id":9054,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10969:1:43","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10963:7:43","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}},"src":"10954:16:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9062,"nodeType":"IfStatement","src":"10950:66:43","trueBody":{"id":9061,"nodeType":"Block","src":"10972:44:43","statements":[{"expression":{"id":9059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9057,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8947,"src":"10990:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":9058,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11000:1:43","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10990:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9060,"nodeType":"ExpressionStatement","src":"10990:11:43"}]}}]},{"expression":{"id":9064,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8947,"src":"11042:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8945,"id":9065,"nodeType":"Return","src":"11035:13:43"}]},"documentation":{"id":8939,"nodeType":"StructuredDocumentation","src":"10020:114:43","text":" @dev Return the log in base 10, rounded down, of a positive value.\n Returns 0 if given 0."},"id":9067,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"10148:5:43","nodeType":"FunctionDefinition","parameters":{"id":8942,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8941,"mutability":"mutable","name":"value","nameLocation":"10162:5:43","nodeType":"VariableDeclaration","scope":9067,"src":"10154:13:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8940,"name":"uint256","nodeType":"ElementaryTypeName","src":"10154:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10153:15:43"},"returnParameters":{"id":8945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8944,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9067,"src":"10192:7:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8943,"name":"uint256","nodeType":"ElementaryTypeName","src":"10192:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10191:9:43"},"scope":9230,"src":"10139:916:43","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9102,"nodeType":"Block","src":"11290:167:43","statements":[{"id":9101,"nodeType":"UncheckedBlock","src":"11300:151:43","statements":[{"assignments":[9079],"declarations":[{"constant":false,"id":9079,"mutability":"mutable","name":"result","nameLocation":"11332:6:43","nodeType":"VariableDeclaration","scope":9101,"src":"11324:14:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9078,"name":"uint256","nodeType":"ElementaryTypeName","src":"11324:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9083,"initialValue":{"arguments":[{"id":9081,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9070,"src":"11347:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9080,"name":"log10","nodeType":"Identifier","overloadedDeclarations":[9067,9103],"referencedDeclaration":9067,"src":"11341:5:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":9082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11341:12:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11324:29:43"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9084,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9079,"src":"11374:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$8371","typeString":"enum Math.Rounding"},"id":9088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9085,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9073,"src":"11384:8:43","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$8371","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":9086,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8371,"src":"11396:8:43","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$8371_$","typeString":"type(enum Math.Rounding)"}},"id":9087,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11405:2:43","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":8369,"src":"11396:11:43","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$8371","typeString":"enum Math.Rounding"}},"src":"11384:23:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":9089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11411:2:43","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":9090,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9079,"src":"11417:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11411:12:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":9092,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9070,"src":"11426:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11411:20:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11384:47:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":9096,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11438:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":9097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"11384:55:43","trueExpression":{"hexValue":"31","id":9095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11434:1:43","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":9098,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11383:57:43","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"11374:66:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9077,"id":9100,"nodeType":"Return","src":"11367:73:43"}]}]},"documentation":{"id":9068,"nodeType":"StructuredDocumentation","src":"11061:143:43","text":" @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":9103,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"11218:5:43","nodeType":"FunctionDefinition","parameters":{"id":9074,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9070,"mutability":"mutable","name":"value","nameLocation":"11232:5:43","nodeType":"VariableDeclaration","scope":9103,"src":"11224:13:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9069,"name":"uint256","nodeType":"ElementaryTypeName","src":"11224:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9073,"mutability":"mutable","name":"rounding","nameLocation":"11248:8:43","nodeType":"VariableDeclaration","scope":9103,"src":"11239:17:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$8371","typeString":"enum Math.Rounding"},"typeName":{"id":9072,"nodeType":"UserDefinedTypeName","pathNode":{"id":9071,"name":"Rounding","nameLocations":["11239:8:43"],"nodeType":"IdentifierPath","referencedDeclaration":8371,"src":"11239:8:43"},"referencedDeclaration":8371,"src":"11239:8:43","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$8371","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"11223:34:43"},"returnParameters":{"id":9077,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9076,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9103,"src":"11281:7:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9075,"name":"uint256","nodeType":"ElementaryTypeName","src":"11281:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11280:9:43"},"scope":9230,"src":"11209:248:43","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9189,"nodeType":"Block","src":"11771:600:43","statements":[{"assignments":[9112],"declarations":[{"constant":false,"id":9112,"mutability":"mutable","name":"result","nameLocation":"11789:6:43","nodeType":"VariableDeclaration","scope":9189,"src":"11781:14:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9111,"name":"uint256","nodeType":"ElementaryTypeName","src":"11781:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9114,"initialValue":{"hexValue":"30","id":9113,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11798:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11781:18:43"},{"id":9186,"nodeType":"UncheckedBlock","src":"11809:533:43","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9115,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9106,"src":"11837:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":9116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11846:3:43","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"11837:12:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":9118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11852:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11837:16:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9129,"nodeType":"IfStatement","src":"11833:98:43","trueBody":{"id":9128,"nodeType":"Block","src":"11855:76:43","statements":[{"expression":{"id":9122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9120,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9106,"src":"11873:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":9121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11883:3:43","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"11873:13:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9123,"nodeType":"ExpressionStatement","src":"11873:13:43"},{"expression":{"id":9126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9124,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9112,"src":"11904:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":9125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11914:2:43","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"11904:12:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9127,"nodeType":"ExpressionStatement","src":"11904:12:43"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9130,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9106,"src":"11948:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":9131,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11957:2:43","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"11948:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":9133,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11962:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11948:15:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9144,"nodeType":"IfStatement","src":"11944:95:43","trueBody":{"id":9143,"nodeType":"Block","src":"11965:74:43","statements":[{"expression":{"id":9137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9135,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9106,"src":"11983:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":9136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11993:2:43","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"11983:12:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9138,"nodeType":"ExpressionStatement","src":"11983:12:43"},{"expression":{"id":9141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9139,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9112,"src":"12013:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":9140,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12023:1:43","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12013:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9142,"nodeType":"ExpressionStatement","src":"12013:11:43"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9145,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9106,"src":"12056:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3332","id":9146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12065:2:43","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"12056:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":9148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12070:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12056:15:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9159,"nodeType":"IfStatement","src":"12052:95:43","trueBody":{"id":9158,"nodeType":"Block","src":"12073:74:43","statements":[{"expression":{"id":9152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9150,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9106,"src":"12091:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":9151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12101:2:43","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"12091:12:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9153,"nodeType":"ExpressionStatement","src":"12091:12:43"},{"expression":{"id":9156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9154,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9112,"src":"12121:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":9155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12131:1:43","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"12121:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9157,"nodeType":"ExpressionStatement","src":"12121:11:43"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9160,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9106,"src":"12164:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3136","id":9161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12173:2:43","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"12164:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":9163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12178:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12164:15:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9174,"nodeType":"IfStatement","src":"12160:95:43","trueBody":{"id":9173,"nodeType":"Block","src":"12181:74:43","statements":[{"expression":{"id":9167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9165,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9106,"src":"12199:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":9166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12209:2:43","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"12199:12:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9168,"nodeType":"ExpressionStatement","src":"12199:12:43"},{"expression":{"id":9171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9169,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9112,"src":"12229:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":9170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12239:1:43","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"12229:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9172,"nodeType":"ExpressionStatement","src":"12229:11:43"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9175,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9106,"src":"12272:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"38","id":9176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12281:1:43","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12272:10:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":9178,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12285:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12272:14:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9185,"nodeType":"IfStatement","src":"12268:64:43","trueBody":{"id":9184,"nodeType":"Block","src":"12288:44:43","statements":[{"expression":{"id":9182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9180,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9112,"src":"12306:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":9181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12316:1:43","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12306:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9183,"nodeType":"ExpressionStatement","src":"12306:11:43"}]}}]},{"expression":{"id":9187,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9112,"src":"12358:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9110,"id":9188,"nodeType":"Return","src":"12351:13:43"}]},"documentation":{"id":9104,"nodeType":"StructuredDocumentation","src":"11463:240:43","text":" @dev Return the log in base 256, rounded down, of a positive value.\n Returns 0 if given 0.\n Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string."},"id":9190,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"11717:6:43","nodeType":"FunctionDefinition","parameters":{"id":9107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9106,"mutability":"mutable","name":"value","nameLocation":"11732:5:43","nodeType":"VariableDeclaration","scope":9190,"src":"11724:13:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9105,"name":"uint256","nodeType":"ElementaryTypeName","src":"11724:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11723:15:43"},"returnParameters":{"id":9110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9109,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9190,"src":"11762:7:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9108,"name":"uint256","nodeType":"ElementaryTypeName","src":"11762:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11761:9:43"},"scope":9230,"src":"11708:663:43","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9228,"nodeType":"Block","src":"12608:174:43","statements":[{"id":9227,"nodeType":"UncheckedBlock","src":"12618:158:43","statements":[{"assignments":[9202],"declarations":[{"constant":false,"id":9202,"mutability":"mutable","name":"result","nameLocation":"12650:6:43","nodeType":"VariableDeclaration","scope":9227,"src":"12642:14:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9201,"name":"uint256","nodeType":"ElementaryTypeName","src":"12642:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9206,"initialValue":{"arguments":[{"id":9204,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9193,"src":"12666:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9203,"name":"log256","nodeType":"Identifier","overloadedDeclarations":[9190,9229],"referencedDeclaration":9190,"src":"12659:6:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":9205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12659:13:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12642:30:43"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9207,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9202,"src":"12693:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$8371","typeString":"enum Math.Rounding"},"id":9211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9208,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9196,"src":"12703:8:43","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$8371","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":9209,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8371,"src":"12715:8:43","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$8371_$","typeString":"type(enum Math.Rounding)"}},"id":9210,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12724:2:43","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":8369,"src":"12715:11:43","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$8371","typeString":"enum Math.Rounding"}},"src":"12703:23:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":9212,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12730:1:43","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9213,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9202,"src":"12736:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"33","id":9214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12746:1:43","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"12736:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":9216,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12735:13:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12730:18:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":9218,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9193,"src":"12751:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12730:26:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12703:53:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":9222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12763:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":9223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"12703:61:43","trueExpression":{"hexValue":"31","id":9221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12759:1:43","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":9224,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12702:63:43","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"12693:72:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9200,"id":9226,"nodeType":"Return","src":"12686:79:43"}]}]},"documentation":{"id":9191,"nodeType":"StructuredDocumentation","src":"12377:144:43","text":" @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":9229,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"12535:6:43","nodeType":"FunctionDefinition","parameters":{"id":9197,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9193,"mutability":"mutable","name":"value","nameLocation":"12550:5:43","nodeType":"VariableDeclaration","scope":9229,"src":"12542:13:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9192,"name":"uint256","nodeType":"ElementaryTypeName","src":"12542:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9196,"mutability":"mutable","name":"rounding","nameLocation":"12566:8:43","nodeType":"VariableDeclaration","scope":9229,"src":"12557:17:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$8371","typeString":"enum Math.Rounding"},"typeName":{"id":9195,"nodeType":"UserDefinedTypeName","pathNode":{"id":9194,"name":"Rounding","nameLocations":["12557:8:43"],"nodeType":"IdentifierPath","referencedDeclaration":8371,"src":"12557:8:43"},"referencedDeclaration":8371,"src":"12557:8:43","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$8371","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"12541:34:43"},"returnParameters":{"id":9200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9199,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9229,"src":"12599:7:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9198,"name":"uint256","nodeType":"ElementaryTypeName","src":"12599:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12598:9:43"},"scope":9230,"src":"12526:256:43","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":9231,"src":"202:12582:43","usedErrors":[],"usedEvents":[]}],"src":"103:12682:43"},"id":43},"@openzeppelin/contracts/utils/math/SafeCast.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/SafeCast.sol","exportedSymbols":{"SafeCast":[10771]},"id":10772,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9232,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"192:23:44"},{"abstract":false,"baseContracts":[],"canonicalName":"SafeCast","contractDependencies":[],"contractKind":"library","documentation":{"id":9233,"nodeType":"StructuredDocumentation","src":"217:709:44","text":" @dev Wrappers over Solidity's uintXX/intXX casting operators with added overflow\n checks.\n Downcasting from uint256/int256 in Solidity does not revert on overflow. This can\n easily result in undesired exploitation or bugs, since developers usually\n assume that overflows raise errors. `SafeCast` restores this intuition by\n reverting the transaction when such an operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always.\n Can be combined with {SafeMath} and {SignedSafeMath} to extend it to smaller types, by performing\n all math on `uint256` and `int256` and then downcasting."},"fullyImplemented":true,"id":10771,"linearizedBaseContracts":[10771],"name":"SafeCast","nameLocation":"935:8:44","nodeType":"ContractDefinition","nodes":[{"body":{"id":9257,"nodeType":"Block","src":"1339:126:44","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9242,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9236,"src":"1357:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9245,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1371:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint248_$","typeString":"type(uint248)"},"typeName":{"id":9244,"name":"uint248","nodeType":"ElementaryTypeName","src":"1371:7:44","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint248_$","typeString":"type(uint248)"}],"id":9243,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1366:4:44","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1366:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint248","typeString":"type(uint248)"}},"id":9247,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1380:3:44","memberName":"max","nodeType":"MemberAccess","src":"1366:17:44","typeDescriptions":{"typeIdentifier":"t_uint248","typeString":"uint248"}},"src":"1357:26:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203234382062697473","id":9249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1385:41:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_6ac19bba4607c9b45ff35f54fbc4ca64c29c7457109a16fa180ea77cdbda8593","typeString":"literal_string \"SafeCast: value doesn't fit in 248 bits\""},"value":"SafeCast: value doesn't fit in 248 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6ac19bba4607c9b45ff35f54fbc4ca64c29c7457109a16fa180ea77cdbda8593","typeString":"literal_string \"SafeCast: value doesn't fit in 248 bits\""}],"id":9241,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1349:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1349:78:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9251,"nodeType":"ExpressionStatement","src":"1349:78:44"},{"expression":{"arguments":[{"id":9254,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9236,"src":"1452:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9253,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1444:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint248_$","typeString":"type(uint248)"},"typeName":{"id":9252,"name":"uint248","nodeType":"ElementaryTypeName","src":"1444:7:44","typeDescriptions":{}}},"id":9255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1444:14:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint248","typeString":"uint248"}},"functionReturnParameters":9240,"id":9256,"nodeType":"Return","src":"1437:21:44"}]},"documentation":{"id":9234,"nodeType":"StructuredDocumentation","src":"950:318:44","text":" @dev Returns the downcasted uint248 from uint256, reverting on\n overflow (when the input is greater than largest uint248).\n Counterpart to Solidity's `uint248` operator.\n Requirements:\n - input must fit into 248 bits\n _Available since v4.7._"},"id":9258,"implemented":true,"kind":"function","modifiers":[],"name":"toUint248","nameLocation":"1282:9:44","nodeType":"FunctionDefinition","parameters":{"id":9237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9236,"mutability":"mutable","name":"value","nameLocation":"1300:5:44","nodeType":"VariableDeclaration","scope":9258,"src":"1292:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9235,"name":"uint256","nodeType":"ElementaryTypeName","src":"1292:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1291:15:44"},"returnParameters":{"id":9240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9239,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9258,"src":"1330:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint248","typeString":"uint248"},"typeName":{"id":9238,"name":"uint248","nodeType":"ElementaryTypeName","src":"1330:7:44","typeDescriptions":{"typeIdentifier":"t_uint248","typeString":"uint248"}},"visibility":"internal"}],"src":"1329:9:44"},"scope":10771,"src":"1273:192:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9282,"nodeType":"Block","src":"1860:126:44","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9267,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9261,"src":"1878:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9270,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1892:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint240_$","typeString":"type(uint240)"},"typeName":{"id":9269,"name":"uint240","nodeType":"ElementaryTypeName","src":"1892:7:44","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint240_$","typeString":"type(uint240)"}],"id":9268,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1887:4:44","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1887:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint240","typeString":"type(uint240)"}},"id":9272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1901:3:44","memberName":"max","nodeType":"MemberAccess","src":"1887:17:44","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},"src":"1878:26:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203234302062697473","id":9274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1906:41:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_375fa0f6cb9fb5845d214c630920cedf4424913ed6dc32c297d430efa3d61a87","typeString":"literal_string \"SafeCast: value doesn't fit in 240 bits\""},"value":"SafeCast: value doesn't fit in 240 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_375fa0f6cb9fb5845d214c630920cedf4424913ed6dc32c297d430efa3d61a87","typeString":"literal_string \"SafeCast: value doesn't fit in 240 bits\""}],"id":9266,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1870:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1870:78:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9276,"nodeType":"ExpressionStatement","src":"1870:78:44"},{"expression":{"arguments":[{"id":9279,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9261,"src":"1973:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9278,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1965:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint240_$","typeString":"type(uint240)"},"typeName":{"id":9277,"name":"uint240","nodeType":"ElementaryTypeName","src":"1965:7:44","typeDescriptions":{}}},"id":9280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1965:14:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},"functionReturnParameters":9265,"id":9281,"nodeType":"Return","src":"1958:21:44"}]},"documentation":{"id":9259,"nodeType":"StructuredDocumentation","src":"1471:318:44","text":" @dev Returns the downcasted uint240 from uint256, reverting on\n overflow (when the input is greater than largest uint240).\n Counterpart to Solidity's `uint240` operator.\n Requirements:\n - input must fit into 240 bits\n _Available since v4.7._"},"id":9283,"implemented":true,"kind":"function","modifiers":[],"name":"toUint240","nameLocation":"1803:9:44","nodeType":"FunctionDefinition","parameters":{"id":9262,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9261,"mutability":"mutable","name":"value","nameLocation":"1821:5:44","nodeType":"VariableDeclaration","scope":9283,"src":"1813:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9260,"name":"uint256","nodeType":"ElementaryTypeName","src":"1813:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1812:15:44"},"returnParameters":{"id":9265,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9264,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9283,"src":"1851:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"},"typeName":{"id":9263,"name":"uint240","nodeType":"ElementaryTypeName","src":"1851:7:44","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},"visibility":"internal"}],"src":"1850:9:44"},"scope":10771,"src":"1794:192:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9307,"nodeType":"Block","src":"2381:126:44","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9292,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9286,"src":"2399:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9295,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2413:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint232_$","typeString":"type(uint232)"},"typeName":{"id":9294,"name":"uint232","nodeType":"ElementaryTypeName","src":"2413:7:44","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint232_$","typeString":"type(uint232)"}],"id":9293,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2408:4:44","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2408:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint232","typeString":"type(uint232)"}},"id":9297,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2422:3:44","memberName":"max","nodeType":"MemberAccess","src":"2408:17:44","typeDescriptions":{"typeIdentifier":"t_uint232","typeString":"uint232"}},"src":"2399:26:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203233322062697473","id":9299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2427:41:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_5797fb2c4589bd6a92752ce0eacaac67341e37ab28c96c2284ab897e7ac77957","typeString":"literal_string \"SafeCast: value doesn't fit in 232 bits\""},"value":"SafeCast: value doesn't fit in 232 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5797fb2c4589bd6a92752ce0eacaac67341e37ab28c96c2284ab897e7ac77957","typeString":"literal_string \"SafeCast: value doesn't fit in 232 bits\""}],"id":9291,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2391:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2391:78:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9301,"nodeType":"ExpressionStatement","src":"2391:78:44"},{"expression":{"arguments":[{"id":9304,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9286,"src":"2494:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9303,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2486:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint232_$","typeString":"type(uint232)"},"typeName":{"id":9302,"name":"uint232","nodeType":"ElementaryTypeName","src":"2486:7:44","typeDescriptions":{}}},"id":9305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2486:14:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint232","typeString":"uint232"}},"functionReturnParameters":9290,"id":9306,"nodeType":"Return","src":"2479:21:44"}]},"documentation":{"id":9284,"nodeType":"StructuredDocumentation","src":"1992:318:44","text":" @dev Returns the downcasted uint232 from uint256, reverting on\n overflow (when the input is greater than largest uint232).\n Counterpart to Solidity's `uint232` operator.\n Requirements:\n - input must fit into 232 bits\n _Available since v4.7._"},"id":9308,"implemented":true,"kind":"function","modifiers":[],"name":"toUint232","nameLocation":"2324:9:44","nodeType":"FunctionDefinition","parameters":{"id":9287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9286,"mutability":"mutable","name":"value","nameLocation":"2342:5:44","nodeType":"VariableDeclaration","scope":9308,"src":"2334:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9285,"name":"uint256","nodeType":"ElementaryTypeName","src":"2334:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2333:15:44"},"returnParameters":{"id":9290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9289,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9308,"src":"2372:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint232","typeString":"uint232"},"typeName":{"id":9288,"name":"uint232","nodeType":"ElementaryTypeName","src":"2372:7:44","typeDescriptions":{"typeIdentifier":"t_uint232","typeString":"uint232"}},"visibility":"internal"}],"src":"2371:9:44"},"scope":10771,"src":"2315:192:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9332,"nodeType":"Block","src":"2902:126:44","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9317,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9311,"src":"2920:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9320,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2934:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":9319,"name":"uint224","nodeType":"ElementaryTypeName","src":"2934:7:44","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"}],"id":9318,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2929:4:44","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2929:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint224","typeString":"type(uint224)"}},"id":9322,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2943:3:44","memberName":"max","nodeType":"MemberAccess","src":"2929:17:44","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"src":"2920:26:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203232342062697473","id":9324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2948:41:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_9d2acf551b2466898443b9bc3a403a4d86037386bc5a8960c1bbb0f204e69b79","typeString":"literal_string \"SafeCast: value doesn't fit in 224 bits\""},"value":"SafeCast: value doesn't fit in 224 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9d2acf551b2466898443b9bc3a403a4d86037386bc5a8960c1bbb0f204e69b79","typeString":"literal_string \"SafeCast: value doesn't fit in 224 bits\""}],"id":9316,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2912:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2912:78:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9326,"nodeType":"ExpressionStatement","src":"2912:78:44"},{"expression":{"arguments":[{"id":9329,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9311,"src":"3015:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9328,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3007:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":9327,"name":"uint224","nodeType":"ElementaryTypeName","src":"3007:7:44","typeDescriptions":{}}},"id":9330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3007:14:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"functionReturnParameters":9315,"id":9331,"nodeType":"Return","src":"3000:21:44"}]},"documentation":{"id":9309,"nodeType":"StructuredDocumentation","src":"2513:318:44","text":" @dev Returns the downcasted uint224 from uint256, reverting on\n overflow (when the input is greater than largest uint224).\n Counterpart to Solidity's `uint224` operator.\n Requirements:\n - input must fit into 224 bits\n _Available since v4.2._"},"id":9333,"implemented":true,"kind":"function","modifiers":[],"name":"toUint224","nameLocation":"2845:9:44","nodeType":"FunctionDefinition","parameters":{"id":9312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9311,"mutability":"mutable","name":"value","nameLocation":"2863:5:44","nodeType":"VariableDeclaration","scope":9333,"src":"2855:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9310,"name":"uint256","nodeType":"ElementaryTypeName","src":"2855:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2854:15:44"},"returnParameters":{"id":9315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9314,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9333,"src":"2893:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":9313,"name":"uint224","nodeType":"ElementaryTypeName","src":"2893:7:44","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"}],"src":"2892:9:44"},"scope":10771,"src":"2836:192:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9357,"nodeType":"Block","src":"3423:126:44","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9342,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9336,"src":"3441:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9345,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3455:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"},"typeName":{"id":9344,"name":"uint216","nodeType":"ElementaryTypeName","src":"3455:7:44","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"}],"id":9343,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3450:4:44","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3450:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint216","typeString":"type(uint216)"}},"id":9347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3464:3:44","memberName":"max","nodeType":"MemberAccess","src":"3450:17:44","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"src":"3441:26:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203231362062697473","id":9349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3469:41:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_8966adc0aad8dc91b207c69c3eb4937e498af8cc706cfe7edd55f3a6ea53488d","typeString":"literal_string \"SafeCast: value doesn't fit in 216 bits\""},"value":"SafeCast: value doesn't fit in 216 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8966adc0aad8dc91b207c69c3eb4937e498af8cc706cfe7edd55f3a6ea53488d","typeString":"literal_string \"SafeCast: value doesn't fit in 216 bits\""}],"id":9341,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3433:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3433:78:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9351,"nodeType":"ExpressionStatement","src":"3433:78:44"},{"expression":{"arguments":[{"id":9354,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9336,"src":"3536:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9353,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3528:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"},"typeName":{"id":9352,"name":"uint216","nodeType":"ElementaryTypeName","src":"3528:7:44","typeDescriptions":{}}},"id":9355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3528:14:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"functionReturnParameters":9340,"id":9356,"nodeType":"Return","src":"3521:21:44"}]},"documentation":{"id":9334,"nodeType":"StructuredDocumentation","src":"3034:318:44","text":" @dev Returns the downcasted uint216 from uint256, reverting on\n overflow (when the input is greater than largest uint216).\n Counterpart to Solidity's `uint216` operator.\n Requirements:\n - input must fit into 216 bits\n _Available since v4.7._"},"id":9358,"implemented":true,"kind":"function","modifiers":[],"name":"toUint216","nameLocation":"3366:9:44","nodeType":"FunctionDefinition","parameters":{"id":9337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9336,"mutability":"mutable","name":"value","nameLocation":"3384:5:44","nodeType":"VariableDeclaration","scope":9358,"src":"3376:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9335,"name":"uint256","nodeType":"ElementaryTypeName","src":"3376:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3375:15:44"},"returnParameters":{"id":9340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9339,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9358,"src":"3414:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"},"typeName":{"id":9338,"name":"uint216","nodeType":"ElementaryTypeName","src":"3414:7:44","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"visibility":"internal"}],"src":"3413:9:44"},"scope":10771,"src":"3357:192:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9382,"nodeType":"Block","src":"3944:126:44","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9367,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9361,"src":"3962:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9370,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3976:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint208_$","typeString":"type(uint208)"},"typeName":{"id":9369,"name":"uint208","nodeType":"ElementaryTypeName","src":"3976:7:44","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint208_$","typeString":"type(uint208)"}],"id":9368,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3971:4:44","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3971:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint208","typeString":"type(uint208)"}},"id":9372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3985:3:44","memberName":"max","nodeType":"MemberAccess","src":"3971:17:44","typeDescriptions":{"typeIdentifier":"t_uint208","typeString":"uint208"}},"src":"3962:26:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203230382062697473","id":9374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3990:41:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_43d81217fa633fa1c6e88855de94fb990f5831ac266b0a90afa660e986ab5e23","typeString":"literal_string \"SafeCast: value doesn't fit in 208 bits\""},"value":"SafeCast: value doesn't fit in 208 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_43d81217fa633fa1c6e88855de94fb990f5831ac266b0a90afa660e986ab5e23","typeString":"literal_string \"SafeCast: value doesn't fit in 208 bits\""}],"id":9366,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3954:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3954:78:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9376,"nodeType":"ExpressionStatement","src":"3954:78:44"},{"expression":{"arguments":[{"id":9379,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9361,"src":"4057:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9378,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4049:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint208_$","typeString":"type(uint208)"},"typeName":{"id":9377,"name":"uint208","nodeType":"ElementaryTypeName","src":"4049:7:44","typeDescriptions":{}}},"id":9380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4049:14:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint208","typeString":"uint208"}},"functionReturnParameters":9365,"id":9381,"nodeType":"Return","src":"4042:21:44"}]},"documentation":{"id":9359,"nodeType":"StructuredDocumentation","src":"3555:318:44","text":" @dev Returns the downcasted uint208 from uint256, reverting on\n overflow (when the input is greater than largest uint208).\n Counterpart to Solidity's `uint208` operator.\n Requirements:\n - input must fit into 208 bits\n _Available since v4.7._"},"id":9383,"implemented":true,"kind":"function","modifiers":[],"name":"toUint208","nameLocation":"3887:9:44","nodeType":"FunctionDefinition","parameters":{"id":9362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9361,"mutability":"mutable","name":"value","nameLocation":"3905:5:44","nodeType":"VariableDeclaration","scope":9383,"src":"3897:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9360,"name":"uint256","nodeType":"ElementaryTypeName","src":"3897:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3896:15:44"},"returnParameters":{"id":9365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9364,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9383,"src":"3935:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint208","typeString":"uint208"},"typeName":{"id":9363,"name":"uint208","nodeType":"ElementaryTypeName","src":"3935:7:44","typeDescriptions":{"typeIdentifier":"t_uint208","typeString":"uint208"}},"visibility":"internal"}],"src":"3934:9:44"},"scope":10771,"src":"3878:192:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9407,"nodeType":"Block","src":"4465:126:44","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9392,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9386,"src":"4483:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9395,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4497:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint200_$","typeString":"type(uint200)"},"typeName":{"id":9394,"name":"uint200","nodeType":"ElementaryTypeName","src":"4497:7:44","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint200_$","typeString":"type(uint200)"}],"id":9393,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4492:4:44","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4492:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint200","typeString":"type(uint200)"}},"id":9397,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4506:3:44","memberName":"max","nodeType":"MemberAccess","src":"4492:17:44","typeDescriptions":{"typeIdentifier":"t_uint200","typeString":"uint200"}},"src":"4483:26:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203230302062697473","id":9399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4511:41:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_df8130f294fe2698967ea9ead82c4da9454490567d976d00551e0174e655314c","typeString":"literal_string \"SafeCast: value doesn't fit in 200 bits\""},"value":"SafeCast: value doesn't fit in 200 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_df8130f294fe2698967ea9ead82c4da9454490567d976d00551e0174e655314c","typeString":"literal_string \"SafeCast: value doesn't fit in 200 bits\""}],"id":9391,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4475:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4475:78:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9401,"nodeType":"ExpressionStatement","src":"4475:78:44"},{"expression":{"arguments":[{"id":9404,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9386,"src":"4578:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9403,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4570:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint200_$","typeString":"type(uint200)"},"typeName":{"id":9402,"name":"uint200","nodeType":"ElementaryTypeName","src":"4570:7:44","typeDescriptions":{}}},"id":9405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4570:14:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint200","typeString":"uint200"}},"functionReturnParameters":9390,"id":9406,"nodeType":"Return","src":"4563:21:44"}]},"documentation":{"id":9384,"nodeType":"StructuredDocumentation","src":"4076:318:44","text":" @dev Returns the downcasted uint200 from uint256, reverting on\n overflow (when the input is greater than largest uint200).\n Counterpart to Solidity's `uint200` operator.\n Requirements:\n - input must fit into 200 bits\n _Available since v4.7._"},"id":9408,"implemented":true,"kind":"function","modifiers":[],"name":"toUint200","nameLocation":"4408:9:44","nodeType":"FunctionDefinition","parameters":{"id":9387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9386,"mutability":"mutable","name":"value","nameLocation":"4426:5:44","nodeType":"VariableDeclaration","scope":9408,"src":"4418:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9385,"name":"uint256","nodeType":"ElementaryTypeName","src":"4418:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4417:15:44"},"returnParameters":{"id":9390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9389,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9408,"src":"4456:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint200","typeString":"uint200"},"typeName":{"id":9388,"name":"uint200","nodeType":"ElementaryTypeName","src":"4456:7:44","typeDescriptions":{"typeIdentifier":"t_uint200","typeString":"uint200"}},"visibility":"internal"}],"src":"4455:9:44"},"scope":10771,"src":"4399:192:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9432,"nodeType":"Block","src":"4986:126:44","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9417,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9411,"src":"5004:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9420,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5018:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint192_$","typeString":"type(uint192)"},"typeName":{"id":9419,"name":"uint192","nodeType":"ElementaryTypeName","src":"5018:7:44","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint192_$","typeString":"type(uint192)"}],"id":9418,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5013:4:44","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5013:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint192","typeString":"type(uint192)"}},"id":9422,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5027:3:44","memberName":"max","nodeType":"MemberAccess","src":"5013:17:44","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"src":"5004:26:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203139322062697473","id":9424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5032:41:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_112978800f12a1c4f1eab82789f7b6defd49dc1c17ba270a84ffc28392fb05ae","typeString":"literal_string \"SafeCast: value doesn't fit in 192 bits\""},"value":"SafeCast: value doesn't fit in 192 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_112978800f12a1c4f1eab82789f7b6defd49dc1c17ba270a84ffc28392fb05ae","typeString":"literal_string \"SafeCast: value doesn't fit in 192 bits\""}],"id":9416,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4996:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4996:78:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9426,"nodeType":"ExpressionStatement","src":"4996:78:44"},{"expression":{"arguments":[{"id":9429,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9411,"src":"5099:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9428,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5091:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint192_$","typeString":"type(uint192)"},"typeName":{"id":9427,"name":"uint192","nodeType":"ElementaryTypeName","src":"5091:7:44","typeDescriptions":{}}},"id":9430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5091:14:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"functionReturnParameters":9415,"id":9431,"nodeType":"Return","src":"5084:21:44"}]},"documentation":{"id":9409,"nodeType":"StructuredDocumentation","src":"4597:318:44","text":" @dev Returns the downcasted uint192 from uint256, reverting on\n overflow (when the input is greater than largest uint192).\n Counterpart to Solidity's `uint192` operator.\n Requirements:\n - input must fit into 192 bits\n _Available since v4.7._"},"id":9433,"implemented":true,"kind":"function","modifiers":[],"name":"toUint192","nameLocation":"4929:9:44","nodeType":"FunctionDefinition","parameters":{"id":9412,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9411,"mutability":"mutable","name":"value","nameLocation":"4947:5:44","nodeType":"VariableDeclaration","scope":9433,"src":"4939:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9410,"name":"uint256","nodeType":"ElementaryTypeName","src":"4939:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4938:15:44"},"returnParameters":{"id":9415,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9414,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9433,"src":"4977:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"},"typeName":{"id":9413,"name":"uint192","nodeType":"ElementaryTypeName","src":"4977:7:44","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"visibility":"internal"}],"src":"4976:9:44"},"scope":10771,"src":"4920:192:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9457,"nodeType":"Block","src":"5507:126:44","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9442,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9436,"src":"5525:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9445,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5539:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint184_$","typeString":"type(uint184)"},"typeName":{"id":9444,"name":"uint184","nodeType":"ElementaryTypeName","src":"5539:7:44","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint184_$","typeString":"type(uint184)"}],"id":9443,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5534:4:44","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5534:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint184","typeString":"type(uint184)"}},"id":9447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5548:3:44","memberName":"max","nodeType":"MemberAccess","src":"5534:17:44","typeDescriptions":{"typeIdentifier":"t_uint184","typeString":"uint184"}},"src":"5525:26:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203138342062697473","id":9449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5553:41:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_86c53d89b1944d561ecfa42e859033241d1df6ea8d42a57ae02f79d45de4aa75","typeString":"literal_string \"SafeCast: value doesn't fit in 184 bits\""},"value":"SafeCast: value doesn't fit in 184 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_86c53d89b1944d561ecfa42e859033241d1df6ea8d42a57ae02f79d45de4aa75","typeString":"literal_string \"SafeCast: value doesn't fit in 184 bits\""}],"id":9441,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5517:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5517:78:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9451,"nodeType":"ExpressionStatement","src":"5517:78:44"},{"expression":{"arguments":[{"id":9454,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9436,"src":"5620:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9453,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5612:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint184_$","typeString":"type(uint184)"},"typeName":{"id":9452,"name":"uint184","nodeType":"ElementaryTypeName","src":"5612:7:44","typeDescriptions":{}}},"id":9455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5612:14:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint184","typeString":"uint184"}},"functionReturnParameters":9440,"id":9456,"nodeType":"Return","src":"5605:21:44"}]},"documentation":{"id":9434,"nodeType":"StructuredDocumentation","src":"5118:318:44","text":" @dev Returns the downcasted uint184 from uint256, reverting on\n overflow (when the input is greater than largest uint184).\n Counterpart to Solidity's `uint184` operator.\n Requirements:\n - input must fit into 184 bits\n _Available since v4.7._"},"id":9458,"implemented":true,"kind":"function","modifiers":[],"name":"toUint184","nameLocation":"5450:9:44","nodeType":"FunctionDefinition","parameters":{"id":9437,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9436,"mutability":"mutable","name":"value","nameLocation":"5468:5:44","nodeType":"VariableDeclaration","scope":9458,"src":"5460:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9435,"name":"uint256","nodeType":"ElementaryTypeName","src":"5460:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5459:15:44"},"returnParameters":{"id":9440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9439,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9458,"src":"5498:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint184","typeString":"uint184"},"typeName":{"id":9438,"name":"uint184","nodeType":"ElementaryTypeName","src":"5498:7:44","typeDescriptions":{"typeIdentifier":"t_uint184","typeString":"uint184"}},"visibility":"internal"}],"src":"5497:9:44"},"scope":10771,"src":"5441:192:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9482,"nodeType":"Block","src":"6028:126:44","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9467,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9461,"src":"6046:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6060:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint176_$","typeString":"type(uint176)"},"typeName":{"id":9469,"name":"uint176","nodeType":"ElementaryTypeName","src":"6060:7:44","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint176_$","typeString":"type(uint176)"}],"id":9468,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6055:4:44","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6055:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint176","typeString":"type(uint176)"}},"id":9472,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6069:3:44","memberName":"max","nodeType":"MemberAccess","src":"6055:17:44","typeDescriptions":{"typeIdentifier":"t_uint176","typeString":"uint176"}},"src":"6046:26:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203137362062697473","id":9474,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6074:41:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_4069e970f734339c7841e84a1b26f503bff22b76884c1168dc24e2e6af9b1e30","typeString":"literal_string \"SafeCast: value doesn't fit in 176 bits\""},"value":"SafeCast: value doesn't fit in 176 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4069e970f734339c7841e84a1b26f503bff22b76884c1168dc24e2e6af9b1e30","typeString":"literal_string \"SafeCast: value doesn't fit in 176 bits\""}],"id":9466,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6038:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6038:78:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9476,"nodeType":"ExpressionStatement","src":"6038:78:44"},{"expression":{"arguments":[{"id":9479,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9461,"src":"6141:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9478,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6133:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint176_$","typeString":"type(uint176)"},"typeName":{"id":9477,"name":"uint176","nodeType":"ElementaryTypeName","src":"6133:7:44","typeDescriptions":{}}},"id":9480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6133:14:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint176","typeString":"uint176"}},"functionReturnParameters":9465,"id":9481,"nodeType":"Return","src":"6126:21:44"}]},"documentation":{"id":9459,"nodeType":"StructuredDocumentation","src":"5639:318:44","text":" @dev Returns the downcasted uint176 from uint256, reverting on\n overflow (when the input is greater than largest uint176).\n Counterpart to Solidity's `uint176` operator.\n Requirements:\n - input must fit into 176 bits\n _Available since v4.7._"},"id":9483,"implemented":true,"kind":"function","modifiers":[],"name":"toUint176","nameLocation":"5971:9:44","nodeType":"FunctionDefinition","parameters":{"id":9462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9461,"mutability":"mutable","name":"value","nameLocation":"5989:5:44","nodeType":"VariableDeclaration","scope":9483,"src":"5981:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9460,"name":"uint256","nodeType":"ElementaryTypeName","src":"5981:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5980:15:44"},"returnParameters":{"id":9465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9464,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9483,"src":"6019:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint176","typeString":"uint176"},"typeName":{"id":9463,"name":"uint176","nodeType":"ElementaryTypeName","src":"6019:7:44","typeDescriptions":{"typeIdentifier":"t_uint176","typeString":"uint176"}},"visibility":"internal"}],"src":"6018:9:44"},"scope":10771,"src":"5962:192:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9507,"nodeType":"Block","src":"6549:126:44","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9492,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9486,"src":"6567:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9495,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6581:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint168_$","typeString":"type(uint168)"},"typeName":{"id":9494,"name":"uint168","nodeType":"ElementaryTypeName","src":"6581:7:44","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint168_$","typeString":"type(uint168)"}],"id":9493,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6576:4:44","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6576:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint168","typeString":"type(uint168)"}},"id":9497,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6590:3:44","memberName":"max","nodeType":"MemberAccess","src":"6576:17:44","typeDescriptions":{"typeIdentifier":"t_uint168","typeString":"uint168"}},"src":"6567:26:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203136382062697473","id":9499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6595:41:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_67ef32a3cbe7b34392347d335b0a7ae95c74a34ca40e4efb58f6c9a3154e85a1","typeString":"literal_string \"SafeCast: value doesn't fit in 168 bits\""},"value":"SafeCast: value doesn't fit in 168 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_67ef32a3cbe7b34392347d335b0a7ae95c74a34ca40e4efb58f6c9a3154e85a1","typeString":"literal_string \"SafeCast: value doesn't fit in 168 bits\""}],"id":9491,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6559:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6559:78:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9501,"nodeType":"ExpressionStatement","src":"6559:78:44"},{"expression":{"arguments":[{"id":9504,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9486,"src":"6662:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9503,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6654:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint168_$","typeString":"type(uint168)"},"typeName":{"id":9502,"name":"uint168","nodeType":"ElementaryTypeName","src":"6654:7:44","typeDescriptions":{}}},"id":9505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6654:14:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint168","typeString":"uint168"}},"functionReturnParameters":9490,"id":9506,"nodeType":"Return","src":"6647:21:44"}]},"documentation":{"id":9484,"nodeType":"StructuredDocumentation","src":"6160:318:44","text":" @dev Returns the downcasted uint168 from uint256, reverting on\n overflow (when the input is greater than largest uint168).\n Counterpart to Solidity's `uint168` operator.\n Requirements:\n - input must fit into 168 bits\n _Available since v4.7._"},"id":9508,"implemented":true,"kind":"function","modifiers":[],"name":"toUint168","nameLocation":"6492:9:44","nodeType":"FunctionDefinition","parameters":{"id":9487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9486,"mutability":"mutable","name":"value","nameLocation":"6510:5:44","nodeType":"VariableDeclaration","scope":9508,"src":"6502:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9485,"name":"uint256","nodeType":"ElementaryTypeName","src":"6502:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6501:15:44"},"returnParameters":{"id":9490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9489,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9508,"src":"6540:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint168","typeString":"uint168"},"typeName":{"id":9488,"name":"uint168","nodeType":"ElementaryTypeName","src":"6540:7:44","typeDescriptions":{"typeIdentifier":"t_uint168","typeString":"uint168"}},"visibility":"internal"}],"src":"6539:9:44"},"scope":10771,"src":"6483:192:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9532,"nodeType":"Block","src":"7070:126:44","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9517,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9511,"src":"7088:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9520,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7102:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":9519,"name":"uint160","nodeType":"ElementaryTypeName","src":"7102:7:44","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"}],"id":9518,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"7097:4:44","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7097:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint160","typeString":"type(uint160)"}},"id":9522,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7111:3:44","memberName":"max","nodeType":"MemberAccess","src":"7097:17:44","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"src":"7088:26:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203136302062697473","id":9524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7116:41:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_976ecce9083debfe29d3a99b955facf24b8725f1b964d1a5bb4197ffcd60ab9d","typeString":"literal_string \"SafeCast: value doesn't fit in 160 bits\""},"value":"SafeCast: value doesn't fit in 160 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_976ecce9083debfe29d3a99b955facf24b8725f1b964d1a5bb4197ffcd60ab9d","typeString":"literal_string \"SafeCast: value doesn't fit in 160 bits\""}],"id":9516,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7080:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7080:78:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9526,"nodeType":"ExpressionStatement","src":"7080:78:44"},{"expression":{"arguments":[{"id":9529,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9511,"src":"7183:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9528,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7175:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":9527,"name":"uint160","nodeType":"ElementaryTypeName","src":"7175:7:44","typeDescriptions":{}}},"id":9530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7175:14:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"functionReturnParameters":9515,"id":9531,"nodeType":"Return","src":"7168:21:44"}]},"documentation":{"id":9509,"nodeType":"StructuredDocumentation","src":"6681:318:44","text":" @dev Returns the downcasted uint160 from uint256, reverting on\n overflow (when the input is greater than largest uint160).\n Counterpart to Solidity's `uint160` operator.\n Requirements:\n - input must fit into 160 bits\n _Available since v4.7._"},"id":9533,"implemented":true,"kind":"function","modifiers":[],"name":"toUint160","nameLocation":"7013:9:44","nodeType":"FunctionDefinition","parameters":{"id":9512,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9511,"mutability":"mutable","name":"value","nameLocation":"7031:5:44","nodeType":"VariableDeclaration","scope":9533,"src":"7023:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9510,"name":"uint256","nodeType":"ElementaryTypeName","src":"7023:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7022:15:44"},"returnParameters":{"id":9515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9514,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9533,"src":"7061:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":9513,"name":"uint160","nodeType":"ElementaryTypeName","src":"7061:7:44","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"}],"src":"7060:9:44"},"scope":10771,"src":"7004:192:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9557,"nodeType":"Block","src":"7591:126:44","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9542,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9536,"src":"7609:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9545,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7623:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint152_$","typeString":"type(uint152)"},"typeName":{"id":9544,"name":"uint152","nodeType":"ElementaryTypeName","src":"7623:7:44","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint152_$","typeString":"type(uint152)"}],"id":9543,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"7618:4:44","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7618:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint152","typeString":"type(uint152)"}},"id":9547,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7632:3:44","memberName":"max","nodeType":"MemberAccess","src":"7618:17:44","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"src":"7609:26:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203135322062697473","id":9549,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7637:41:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_211cad43a2caf5f01e34af51190b8a7b6f3d9c195bd25586ea12242191b97831","typeString":"literal_string \"SafeCast: value doesn't fit in 152 bits\""},"value":"SafeCast: value doesn't fit in 152 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_211cad43a2caf5f01e34af51190b8a7b6f3d9c195bd25586ea12242191b97831","typeString":"literal_string \"SafeCast: value doesn't fit in 152 bits\""}],"id":9541,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7601:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7601:78:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9551,"nodeType":"ExpressionStatement","src":"7601:78:44"},{"expression":{"arguments":[{"id":9554,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9536,"src":"7704:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9553,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7696:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint152_$","typeString":"type(uint152)"},"typeName":{"id":9552,"name":"uint152","nodeType":"ElementaryTypeName","src":"7696:7:44","typeDescriptions":{}}},"id":9555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7696:14:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"functionReturnParameters":9540,"id":9556,"nodeType":"Return","src":"7689:21:44"}]},"documentation":{"id":9534,"nodeType":"StructuredDocumentation","src":"7202:318:44","text":" @dev Returns the downcasted uint152 from uint256, reverting on\n overflow (when the input is greater than largest uint152).\n Counterpart to Solidity's `uint152` operator.\n Requirements:\n - input must fit into 152 bits\n _Available since v4.7._"},"id":9558,"implemented":true,"kind":"function","modifiers":[],"name":"toUint152","nameLocation":"7534:9:44","nodeType":"FunctionDefinition","parameters":{"id":9537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9536,"mutability":"mutable","name":"value","nameLocation":"7552:5:44","nodeType":"VariableDeclaration","scope":9558,"src":"7544:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9535,"name":"uint256","nodeType":"ElementaryTypeName","src":"7544:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7543:15:44"},"returnParameters":{"id":9540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9539,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9558,"src":"7582:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"},"typeName":{"id":9538,"name":"uint152","nodeType":"ElementaryTypeName","src":"7582:7:44","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"visibility":"internal"}],"src":"7581:9:44"},"scope":10771,"src":"7525:192:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9582,"nodeType":"Block","src":"8112:126:44","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9567,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9561,"src":"8130:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9570,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8144:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint144_$","typeString":"type(uint144)"},"typeName":{"id":9569,"name":"uint144","nodeType":"ElementaryTypeName","src":"8144:7:44","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint144_$","typeString":"type(uint144)"}],"id":9568,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8139:4:44","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8139:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint144","typeString":"type(uint144)"}},"id":9572,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8153:3:44","memberName":"max","nodeType":"MemberAccess","src":"8139:17:44","typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"}},"src":"8130:26:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203134342062697473","id":9574,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8158:41:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_17d8c5a6d3b2fd2517ba2e4a2ac70a3367cd362448f8338aaa6edf8bfd812bab","typeString":"literal_string \"SafeCast: value doesn't fit in 144 bits\""},"value":"SafeCast: value doesn't fit in 144 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_17d8c5a6d3b2fd2517ba2e4a2ac70a3367cd362448f8338aaa6edf8bfd812bab","typeString":"literal_string \"SafeCast: value doesn't fit in 144 bits\""}],"id":9566,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8122:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8122:78:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9576,"nodeType":"ExpressionStatement","src":"8122:78:44"},{"expression":{"arguments":[{"id":9579,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9561,"src":"8225:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9578,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8217:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint144_$","typeString":"type(uint144)"},"typeName":{"id":9577,"name":"uint144","nodeType":"ElementaryTypeName","src":"8217:7:44","typeDescriptions":{}}},"id":9580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8217:14:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"}},"functionReturnParameters":9565,"id":9581,"nodeType":"Return","src":"8210:21:44"}]},"documentation":{"id":9559,"nodeType":"StructuredDocumentation","src":"7723:318:44","text":" @dev Returns the downcasted uint144 from uint256, reverting on\n overflow (when the input is greater than largest uint144).\n Counterpart to Solidity's `uint144` operator.\n Requirements:\n - input must fit into 144 bits\n _Available since v4.7._"},"id":9583,"implemented":true,"kind":"function","modifiers":[],"name":"toUint144","nameLocation":"8055:9:44","nodeType":"FunctionDefinition","parameters":{"id":9562,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9561,"mutability":"mutable","name":"value","nameLocation":"8073:5:44","nodeType":"VariableDeclaration","scope":9583,"src":"8065:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9560,"name":"uint256","nodeType":"ElementaryTypeName","src":"8065:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8064:15:44"},"returnParameters":{"id":9565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9564,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9583,"src":"8103:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"},"typeName":{"id":9563,"name":"uint144","nodeType":"ElementaryTypeName","src":"8103:7:44","typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"}},"visibility":"internal"}],"src":"8102:9:44"},"scope":10771,"src":"8046:192:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9607,"nodeType":"Block","src":"8633:126:44","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9592,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9586,"src":"8651:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9595,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8665:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint136_$","typeString":"type(uint136)"},"typeName":{"id":9594,"name":"uint136","nodeType":"ElementaryTypeName","src":"8665:7:44","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint136_$","typeString":"type(uint136)"}],"id":9593,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8660:4:44","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9596,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8660:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint136","typeString":"type(uint136)"}},"id":9597,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8674:3:44","memberName":"max","nodeType":"MemberAccess","src":"8660:17:44","typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"}},"src":"8651:26:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203133362062697473","id":9599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8679:41:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_8b1f81e2e2913e1cee9dba7bcd9837bbf8a8122edaac4afc578271db3c25a56a","typeString":"literal_string \"SafeCast: value doesn't fit in 136 bits\""},"value":"SafeCast: value doesn't fit in 136 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8b1f81e2e2913e1cee9dba7bcd9837bbf8a8122edaac4afc578271db3c25a56a","typeString":"literal_string \"SafeCast: value doesn't fit in 136 bits\""}],"id":9591,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8643:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8643:78:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9601,"nodeType":"ExpressionStatement","src":"8643:78:44"},{"expression":{"arguments":[{"id":9604,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9586,"src":"8746:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9603,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8738:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint136_$","typeString":"type(uint136)"},"typeName":{"id":9602,"name":"uint136","nodeType":"ElementaryTypeName","src":"8738:7:44","typeDescriptions":{}}},"id":9605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8738:14:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"}},"functionReturnParameters":9590,"id":9606,"nodeType":"Return","src":"8731:21:44"}]},"documentation":{"id":9584,"nodeType":"StructuredDocumentation","src":"8244:318:44","text":" @dev Returns the downcasted uint136 from uint256, reverting on\n overflow (when the input is greater than largest uint136).\n Counterpart to Solidity's `uint136` operator.\n Requirements:\n - input must fit into 136 bits\n _Available since v4.7._"},"id":9608,"implemented":true,"kind":"function","modifiers":[],"name":"toUint136","nameLocation":"8576:9:44","nodeType":"FunctionDefinition","parameters":{"id":9587,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9586,"mutability":"mutable","name":"value","nameLocation":"8594:5:44","nodeType":"VariableDeclaration","scope":9608,"src":"8586:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9585,"name":"uint256","nodeType":"ElementaryTypeName","src":"8586:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8585:15:44"},"returnParameters":{"id":9590,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9589,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9608,"src":"8624:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"},"typeName":{"id":9588,"name":"uint136","nodeType":"ElementaryTypeName","src":"8624:7:44","typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"}},"visibility":"internal"}],"src":"8623:9:44"},"scope":10771,"src":"8567:192:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9632,"nodeType":"Block","src":"9154:126:44","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9617,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9611,"src":"9172:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9620,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9186:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":9619,"name":"uint128","nodeType":"ElementaryTypeName","src":"9186:7:44","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"}],"id":9618,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"9181:4:44","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9181:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint128","typeString":"type(uint128)"}},"id":9622,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9195:3:44","memberName":"max","nodeType":"MemberAccess","src":"9181:17:44","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"9172:26:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203132382062697473","id":9624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9200:41:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_47a1e201974f94d3d1a31c8b08ae18c6966c758bdcd4400020012b98cc55426c","typeString":"literal_string \"SafeCast: value doesn't fit in 128 bits\""},"value":"SafeCast: value doesn't fit in 128 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_47a1e201974f94d3d1a31c8b08ae18c6966c758bdcd4400020012b98cc55426c","typeString":"literal_string \"SafeCast: value doesn't fit in 128 bits\""}],"id":9616,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9164:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9164:78:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9626,"nodeType":"ExpressionStatement","src":"9164:78:44"},{"expression":{"arguments":[{"id":9629,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9611,"src":"9267:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9628,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9259:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":9627,"name":"uint128","nodeType":"ElementaryTypeName","src":"9259:7:44","typeDescriptions":{}}},"id":9630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9259:14:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"functionReturnParameters":9615,"id":9631,"nodeType":"Return","src":"9252:21:44"}]},"documentation":{"id":9609,"nodeType":"StructuredDocumentation","src":"8765:318:44","text":" @dev Returns the downcasted uint128 from uint256, reverting on\n overflow (when the input is greater than largest uint128).\n Counterpart to Solidity's `uint128` operator.\n Requirements:\n - input must fit into 128 bits\n _Available since v2.5._"},"id":9633,"implemented":true,"kind":"function","modifiers":[],"name":"toUint128","nameLocation":"9097:9:44","nodeType":"FunctionDefinition","parameters":{"id":9612,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9611,"mutability":"mutable","name":"value","nameLocation":"9115:5:44","nodeType":"VariableDeclaration","scope":9633,"src":"9107:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9610,"name":"uint256","nodeType":"ElementaryTypeName","src":"9107:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9106:15:44"},"returnParameters":{"id":9615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9614,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9633,"src":"9145:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":9613,"name":"uint128","nodeType":"ElementaryTypeName","src":"9145:7:44","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"9144:9:44"},"scope":10771,"src":"9088:192:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9657,"nodeType":"Block","src":"9675:126:44","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9642,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9636,"src":"9693:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9645,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9707:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint120_$","typeString":"type(uint120)"},"typeName":{"id":9644,"name":"uint120","nodeType":"ElementaryTypeName","src":"9707:7:44","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint120_$","typeString":"type(uint120)"}],"id":9643,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"9702:4:44","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9702:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint120","typeString":"type(uint120)"}},"id":9647,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9716:3:44","memberName":"max","nodeType":"MemberAccess","src":"9702:17:44","typeDescriptions":{"typeIdentifier":"t_uint120","typeString":"uint120"}},"src":"9693:26:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203132302062697473","id":9649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9721:41:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_3c40c26bb27060cce77002ca0c426dcc1bef2d367c195ca2eb24bd8b2cc1bb09","typeString":"literal_string \"SafeCast: value doesn't fit in 120 bits\""},"value":"SafeCast: value doesn't fit in 120 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3c40c26bb27060cce77002ca0c426dcc1bef2d367c195ca2eb24bd8b2cc1bb09","typeString":"literal_string \"SafeCast: value doesn't fit in 120 bits\""}],"id":9641,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9685:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9685:78:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9651,"nodeType":"ExpressionStatement","src":"9685:78:44"},{"expression":{"arguments":[{"id":9654,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9636,"src":"9788:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9653,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9780:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint120_$","typeString":"type(uint120)"},"typeName":{"id":9652,"name":"uint120","nodeType":"ElementaryTypeName","src":"9780:7:44","typeDescriptions":{}}},"id":9655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9780:14:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint120","typeString":"uint120"}},"functionReturnParameters":9640,"id":9656,"nodeType":"Return","src":"9773:21:44"}]},"documentation":{"id":9634,"nodeType":"StructuredDocumentation","src":"9286:318:44","text":" @dev Returns the downcasted uint120 from uint256, reverting on\n overflow (when the input is greater than largest uint120).\n Counterpart to Solidity's `uint120` operator.\n Requirements:\n - input must fit into 120 bits\n _Available since v4.7._"},"id":9658,"implemented":true,"kind":"function","modifiers":[],"name":"toUint120","nameLocation":"9618:9:44","nodeType":"FunctionDefinition","parameters":{"id":9637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9636,"mutability":"mutable","name":"value","nameLocation":"9636:5:44","nodeType":"VariableDeclaration","scope":9658,"src":"9628:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9635,"name":"uint256","nodeType":"ElementaryTypeName","src":"9628:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9627:15:44"},"returnParameters":{"id":9640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9639,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9658,"src":"9666:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint120","typeString":"uint120"},"typeName":{"id":9638,"name":"uint120","nodeType":"ElementaryTypeName","src":"9666:7:44","typeDescriptions":{"typeIdentifier":"t_uint120","typeString":"uint120"}},"visibility":"internal"}],"src":"9665:9:44"},"scope":10771,"src":"9609:192:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9682,"nodeType":"Block","src":"10196:126:44","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9667,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9661,"src":"10214:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9670,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10228:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint112_$","typeString":"type(uint112)"},"typeName":{"id":9669,"name":"uint112","nodeType":"ElementaryTypeName","src":"10228:7:44","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint112_$","typeString":"type(uint112)"}],"id":9668,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"10223:4:44","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10223:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint112","typeString":"type(uint112)"}},"id":9672,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10237:3:44","memberName":"max","nodeType":"MemberAccess","src":"10223:17:44","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"src":"10214:26:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203131322062697473","id":9674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10242:41:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_45659ae152ef697531e1c1115de07c87af91ac22466c3e76b808821799776efd","typeString":"literal_string \"SafeCast: value doesn't fit in 112 bits\""},"value":"SafeCast: value doesn't fit in 112 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_45659ae152ef697531e1c1115de07c87af91ac22466c3e76b808821799776efd","typeString":"literal_string \"SafeCast: value doesn't fit in 112 bits\""}],"id":9666,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10206:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10206:78:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9676,"nodeType":"ExpressionStatement","src":"10206:78:44"},{"expression":{"arguments":[{"id":9679,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9661,"src":"10309:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9678,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10301:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint112_$","typeString":"type(uint112)"},"typeName":{"id":9677,"name":"uint112","nodeType":"ElementaryTypeName","src":"10301:7:44","typeDescriptions":{}}},"id":9680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10301:14:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"functionReturnParameters":9665,"id":9681,"nodeType":"Return","src":"10294:21:44"}]},"documentation":{"id":9659,"nodeType":"StructuredDocumentation","src":"9807:318:44","text":" @dev Returns the downcasted uint112 from uint256, reverting on\n overflow (when the input is greater than largest uint112).\n Counterpart to Solidity's `uint112` operator.\n Requirements:\n - input must fit into 112 bits\n _Available since v4.7._"},"id":9683,"implemented":true,"kind":"function","modifiers":[],"name":"toUint112","nameLocation":"10139:9:44","nodeType":"FunctionDefinition","parameters":{"id":9662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9661,"mutability":"mutable","name":"value","nameLocation":"10157:5:44","nodeType":"VariableDeclaration","scope":9683,"src":"10149:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9660,"name":"uint256","nodeType":"ElementaryTypeName","src":"10149:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10148:15:44"},"returnParameters":{"id":9665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9664,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9683,"src":"10187:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"},"typeName":{"id":9663,"name":"uint112","nodeType":"ElementaryTypeName","src":"10187:7:44","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"visibility":"internal"}],"src":"10186:9:44"},"scope":10771,"src":"10130:192:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9707,"nodeType":"Block","src":"10717:126:44","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9692,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9686,"src":"10735:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9695,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10749:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"},"typeName":{"id":9694,"name":"uint104","nodeType":"ElementaryTypeName","src":"10749:7:44","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"}],"id":9693,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"10744:4:44","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10744:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint104","typeString":"type(uint104)"}},"id":9697,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10758:3:44","memberName":"max","nodeType":"MemberAccess","src":"10744:17:44","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"src":"10735:26:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203130342062697473","id":9699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10763:41:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d7f3e1b7e9f9a06fded6b093c6fd1473ca0a14cc4bb683db904e803e2482981","typeString":"literal_string \"SafeCast: value doesn't fit in 104 bits\""},"value":"SafeCast: value doesn't fit in 104 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5d7f3e1b7e9f9a06fded6b093c6fd1473ca0a14cc4bb683db904e803e2482981","typeString":"literal_string \"SafeCast: value doesn't fit in 104 bits\""}],"id":9691,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10727:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10727:78:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9701,"nodeType":"ExpressionStatement","src":"10727:78:44"},{"expression":{"arguments":[{"id":9704,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9686,"src":"10830:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9703,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10822:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"},"typeName":{"id":9702,"name":"uint104","nodeType":"ElementaryTypeName","src":"10822:7:44","typeDescriptions":{}}},"id":9705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10822:14:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"functionReturnParameters":9690,"id":9706,"nodeType":"Return","src":"10815:21:44"}]},"documentation":{"id":9684,"nodeType":"StructuredDocumentation","src":"10328:318:44","text":" @dev Returns the downcasted uint104 from uint256, reverting on\n overflow (when the input is greater than largest uint104).\n Counterpart to Solidity's `uint104` operator.\n Requirements:\n - input must fit into 104 bits\n _Available since v4.7._"},"id":9708,"implemented":true,"kind":"function","modifiers":[],"name":"toUint104","nameLocation":"10660:9:44","nodeType":"FunctionDefinition","parameters":{"id":9687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9686,"mutability":"mutable","name":"value","nameLocation":"10678:5:44","nodeType":"VariableDeclaration","scope":9708,"src":"10670:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9685,"name":"uint256","nodeType":"ElementaryTypeName","src":"10670:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10669:15:44"},"returnParameters":{"id":9690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9689,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9708,"src":"10708:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"},"typeName":{"id":9688,"name":"uint104","nodeType":"ElementaryTypeName","src":"10708:7:44","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"visibility":"internal"}],"src":"10707:9:44"},"scope":10771,"src":"10651:192:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9732,"nodeType":"Block","src":"11232:123:44","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9717,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9711,"src":"11250:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9720,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11264:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":9719,"name":"uint96","nodeType":"ElementaryTypeName","src":"11264:6:44","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"}],"id":9718,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"11259:4:44","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9721,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11259:12:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint96","typeString":"type(uint96)"}},"id":9722,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11272:3:44","memberName":"max","nodeType":"MemberAccess","src":"11259:16:44","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"11250:25:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2039362062697473","id":9724,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11277:40:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_06d20189090e973729391526269baef79c35dd621633195648e5f8309eef9e19","typeString":"literal_string \"SafeCast: value doesn't fit in 96 bits\""},"value":"SafeCast: value doesn't fit in 96 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_06d20189090e973729391526269baef79c35dd621633195648e5f8309eef9e19","typeString":"literal_string \"SafeCast: value doesn't fit in 96 bits\""}],"id":9716,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11242:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11242:76:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9726,"nodeType":"ExpressionStatement","src":"11242:76:44"},{"expression":{"arguments":[{"id":9729,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9711,"src":"11342:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9728,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11335:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":9727,"name":"uint96","nodeType":"ElementaryTypeName","src":"11335:6:44","typeDescriptions":{}}},"id":9730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11335:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"functionReturnParameters":9715,"id":9731,"nodeType":"Return","src":"11328:20:44"}]},"documentation":{"id":9709,"nodeType":"StructuredDocumentation","src":"10849:314:44","text":" @dev Returns the downcasted uint96 from uint256, reverting on\n overflow (when the input is greater than largest uint96).\n Counterpart to Solidity's `uint96` operator.\n Requirements:\n - input must fit into 96 bits\n _Available since v4.2._"},"id":9733,"implemented":true,"kind":"function","modifiers":[],"name":"toUint96","nameLocation":"11177:8:44","nodeType":"FunctionDefinition","parameters":{"id":9712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9711,"mutability":"mutable","name":"value","nameLocation":"11194:5:44","nodeType":"VariableDeclaration","scope":9733,"src":"11186:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9710,"name":"uint256","nodeType":"ElementaryTypeName","src":"11186:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11185:15:44"},"returnParameters":{"id":9715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9714,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9733,"src":"11224:6:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":9713,"name":"uint96","nodeType":"ElementaryTypeName","src":"11224:6:44","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"11223:8:44"},"scope":10771,"src":"11168:187:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9757,"nodeType":"Block","src":"11744:123:44","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9742,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9736,"src":"11762:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9745,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11776:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint88_$","typeString":"type(uint88)"},"typeName":{"id":9744,"name":"uint88","nodeType":"ElementaryTypeName","src":"11776:6:44","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint88_$","typeString":"type(uint88)"}],"id":9743,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"11771:4:44","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11771:12:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint88","typeString":"type(uint88)"}},"id":9747,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11784:3:44","memberName":"max","nodeType":"MemberAccess","src":"11771:16:44","typeDescriptions":{"typeIdentifier":"t_uint88","typeString":"uint88"}},"src":"11762:25:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2038382062697473","id":9749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11789:40:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_ae080bd7a76a46f0a0caf00941bc2cdf6002799ca2813a3af7295019576d715d","typeString":"literal_string \"SafeCast: value doesn't fit in 88 bits\""},"value":"SafeCast: value doesn't fit in 88 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ae080bd7a76a46f0a0caf00941bc2cdf6002799ca2813a3af7295019576d715d","typeString":"literal_string \"SafeCast: value doesn't fit in 88 bits\""}],"id":9741,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11754:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11754:76:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9751,"nodeType":"ExpressionStatement","src":"11754:76:44"},{"expression":{"arguments":[{"id":9754,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9736,"src":"11854:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9753,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11847:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint88_$","typeString":"type(uint88)"},"typeName":{"id":9752,"name":"uint88","nodeType":"ElementaryTypeName","src":"11847:6:44","typeDescriptions":{}}},"id":9755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11847:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint88","typeString":"uint88"}},"functionReturnParameters":9740,"id":9756,"nodeType":"Return","src":"11840:20:44"}]},"documentation":{"id":9734,"nodeType":"StructuredDocumentation","src":"11361:314:44","text":" @dev Returns the downcasted uint88 from uint256, reverting on\n overflow (when the input is greater than largest uint88).\n Counterpart to Solidity's `uint88` operator.\n Requirements:\n - input must fit into 88 bits\n _Available since v4.7._"},"id":9758,"implemented":true,"kind":"function","modifiers":[],"name":"toUint88","nameLocation":"11689:8:44","nodeType":"FunctionDefinition","parameters":{"id":9737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9736,"mutability":"mutable","name":"value","nameLocation":"11706:5:44","nodeType":"VariableDeclaration","scope":9758,"src":"11698:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9735,"name":"uint256","nodeType":"ElementaryTypeName","src":"11698:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11697:15:44"},"returnParameters":{"id":9740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9739,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9758,"src":"11736:6:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint88","typeString":"uint88"},"typeName":{"id":9738,"name":"uint88","nodeType":"ElementaryTypeName","src":"11736:6:44","typeDescriptions":{"typeIdentifier":"t_uint88","typeString":"uint88"}},"visibility":"internal"}],"src":"11735:8:44"},"scope":10771,"src":"11680:187:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9782,"nodeType":"Block","src":"12256:123:44","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9767,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9761,"src":"12274:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9770,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12288:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint80_$","typeString":"type(uint80)"},"typeName":{"id":9769,"name":"uint80","nodeType":"ElementaryTypeName","src":"12288:6:44","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint80_$","typeString":"type(uint80)"}],"id":9768,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"12283:4:44","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12283:12:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint80","typeString":"type(uint80)"}},"id":9772,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12296:3:44","memberName":"max","nodeType":"MemberAccess","src":"12283:16:44","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"src":"12274:25:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2038302062697473","id":9774,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12301:40:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_3cba87c71fade7d3cd7b673c159aab98afc040a5369691a33559d905d20ab5d1","typeString":"literal_string \"SafeCast: value doesn't fit in 80 bits\""},"value":"SafeCast: value doesn't fit in 80 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3cba87c71fade7d3cd7b673c159aab98afc040a5369691a33559d905d20ab5d1","typeString":"literal_string \"SafeCast: value doesn't fit in 80 bits\""}],"id":9766,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12266:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12266:76:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9776,"nodeType":"ExpressionStatement","src":"12266:76:44"},{"expression":{"arguments":[{"id":9779,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9761,"src":"12366:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9778,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12359:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint80_$","typeString":"type(uint80)"},"typeName":{"id":9777,"name":"uint80","nodeType":"ElementaryTypeName","src":"12359:6:44","typeDescriptions":{}}},"id":9780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12359:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"functionReturnParameters":9765,"id":9781,"nodeType":"Return","src":"12352:20:44"}]},"documentation":{"id":9759,"nodeType":"StructuredDocumentation","src":"11873:314:44","text":" @dev Returns the downcasted uint80 from uint256, reverting on\n overflow (when the input is greater than largest uint80).\n Counterpart to Solidity's `uint80` operator.\n Requirements:\n - input must fit into 80 bits\n _Available since v4.7._"},"id":9783,"implemented":true,"kind":"function","modifiers":[],"name":"toUint80","nameLocation":"12201:8:44","nodeType":"FunctionDefinition","parameters":{"id":9762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9761,"mutability":"mutable","name":"value","nameLocation":"12218:5:44","nodeType":"VariableDeclaration","scope":9783,"src":"12210:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9760,"name":"uint256","nodeType":"ElementaryTypeName","src":"12210:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12209:15:44"},"returnParameters":{"id":9765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9764,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9783,"src":"12248:6:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"},"typeName":{"id":9763,"name":"uint80","nodeType":"ElementaryTypeName","src":"12248:6:44","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"visibility":"internal"}],"src":"12247:8:44"},"scope":10771,"src":"12192:187:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9807,"nodeType":"Block","src":"12768:123:44","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9792,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9786,"src":"12786:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9795,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12800:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint72_$","typeString":"type(uint72)"},"typeName":{"id":9794,"name":"uint72","nodeType":"ElementaryTypeName","src":"12800:6:44","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint72_$","typeString":"type(uint72)"}],"id":9793,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"12795:4:44","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12795:12:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint72","typeString":"type(uint72)"}},"id":9797,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12808:3:44","memberName":"max","nodeType":"MemberAccess","src":"12795:16:44","typeDescriptions":{"typeIdentifier":"t_uint72","typeString":"uint72"}},"src":"12786:25:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2037322062697473","id":9799,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12813:40:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_71584237cc5250b8f417982144a947efe8f4c76feba008ff32ac480e69d60606","typeString":"literal_string \"SafeCast: value doesn't fit in 72 bits\""},"value":"SafeCast: value doesn't fit in 72 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_71584237cc5250b8f417982144a947efe8f4c76feba008ff32ac480e69d60606","typeString":"literal_string \"SafeCast: value doesn't fit in 72 bits\""}],"id":9791,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12778:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12778:76:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9801,"nodeType":"ExpressionStatement","src":"12778:76:44"},{"expression":{"arguments":[{"id":9804,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9786,"src":"12878:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9803,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12871:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint72_$","typeString":"type(uint72)"},"typeName":{"id":9802,"name":"uint72","nodeType":"ElementaryTypeName","src":"12871:6:44","typeDescriptions":{}}},"id":9805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12871:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint72","typeString":"uint72"}},"functionReturnParameters":9790,"id":9806,"nodeType":"Return","src":"12864:20:44"}]},"documentation":{"id":9784,"nodeType":"StructuredDocumentation","src":"12385:314:44","text":" @dev Returns the downcasted uint72 from uint256, reverting on\n overflow (when the input is greater than largest uint72).\n Counterpart to Solidity's `uint72` operator.\n Requirements:\n - input must fit into 72 bits\n _Available since v4.7._"},"id":9808,"implemented":true,"kind":"function","modifiers":[],"name":"toUint72","nameLocation":"12713:8:44","nodeType":"FunctionDefinition","parameters":{"id":9787,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9786,"mutability":"mutable","name":"value","nameLocation":"12730:5:44","nodeType":"VariableDeclaration","scope":9808,"src":"12722:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9785,"name":"uint256","nodeType":"ElementaryTypeName","src":"12722:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12721:15:44"},"returnParameters":{"id":9790,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9789,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9808,"src":"12760:6:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint72","typeString":"uint72"},"typeName":{"id":9788,"name":"uint72","nodeType":"ElementaryTypeName","src":"12760:6:44","typeDescriptions":{"typeIdentifier":"t_uint72","typeString":"uint72"}},"visibility":"internal"}],"src":"12759:8:44"},"scope":10771,"src":"12704:187:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9832,"nodeType":"Block","src":"13280:123:44","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9817,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9811,"src":"13298:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9820,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13312:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":9819,"name":"uint64","nodeType":"ElementaryTypeName","src":"13312:6:44","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":9818,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"13307:4:44","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13307:12:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":9822,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13320:3:44","memberName":"max","nodeType":"MemberAccess","src":"13307:16:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"13298:25:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2036342062697473","id":9824,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13325:40:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_93ae0c6bf6ffaece591a770b1865daa9f65157e541970aa9d8dc5f89a9490939","typeString":"literal_string \"SafeCast: value doesn't fit in 64 bits\""},"value":"SafeCast: value doesn't fit in 64 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_93ae0c6bf6ffaece591a770b1865daa9f65157e541970aa9d8dc5f89a9490939","typeString":"literal_string \"SafeCast: value doesn't fit in 64 bits\""}],"id":9816,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13290:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13290:76:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9826,"nodeType":"ExpressionStatement","src":"13290:76:44"},{"expression":{"arguments":[{"id":9829,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9811,"src":"13390:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9828,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13383:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":9827,"name":"uint64","nodeType":"ElementaryTypeName","src":"13383:6:44","typeDescriptions":{}}},"id":9830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13383:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":9815,"id":9831,"nodeType":"Return","src":"13376:20:44"}]},"documentation":{"id":9809,"nodeType":"StructuredDocumentation","src":"12897:314:44","text":" @dev Returns the downcasted uint64 from uint256, reverting on\n overflow (when the input is greater than largest uint64).\n Counterpart to Solidity's `uint64` operator.\n Requirements:\n - input must fit into 64 bits\n _Available since v2.5._"},"id":9833,"implemented":true,"kind":"function","modifiers":[],"name":"toUint64","nameLocation":"13225:8:44","nodeType":"FunctionDefinition","parameters":{"id":9812,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9811,"mutability":"mutable","name":"value","nameLocation":"13242:5:44","nodeType":"VariableDeclaration","scope":9833,"src":"13234:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9810,"name":"uint256","nodeType":"ElementaryTypeName","src":"13234:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13233:15:44"},"returnParameters":{"id":9815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9814,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9833,"src":"13272:6:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":9813,"name":"uint64","nodeType":"ElementaryTypeName","src":"13272:6:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"13271:8:44"},"scope":10771,"src":"13216:187:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9857,"nodeType":"Block","src":"13792:123:44","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9842,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9836,"src":"13810:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9845,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13824:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint56_$","typeString":"type(uint56)"},"typeName":{"id":9844,"name":"uint56","nodeType":"ElementaryTypeName","src":"13824:6:44","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint56_$","typeString":"type(uint56)"}],"id":9843,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"13819:4:44","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13819:12:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint56","typeString":"type(uint56)"}},"id":9847,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13832:3:44","memberName":"max","nodeType":"MemberAccess","src":"13819:16:44","typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"}},"src":"13810:25:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2035362062697473","id":9849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13837:40:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_656ad93b5ff6665bfe05d97d51fad7c02ad79e6c43bef066c042a6900f450bc5","typeString":"literal_string \"SafeCast: value doesn't fit in 56 bits\""},"value":"SafeCast: value doesn't fit in 56 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_656ad93b5ff6665bfe05d97d51fad7c02ad79e6c43bef066c042a6900f450bc5","typeString":"literal_string \"SafeCast: value doesn't fit in 56 bits\""}],"id":9841,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13802:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13802:76:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9851,"nodeType":"ExpressionStatement","src":"13802:76:44"},{"expression":{"arguments":[{"id":9854,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9836,"src":"13902:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9853,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13895:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint56_$","typeString":"type(uint56)"},"typeName":{"id":9852,"name":"uint56","nodeType":"ElementaryTypeName","src":"13895:6:44","typeDescriptions":{}}},"id":9855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13895:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"}},"functionReturnParameters":9840,"id":9856,"nodeType":"Return","src":"13888:20:44"}]},"documentation":{"id":9834,"nodeType":"StructuredDocumentation","src":"13409:314:44","text":" @dev Returns the downcasted uint56 from uint256, reverting on\n overflow (when the input is greater than largest uint56).\n Counterpart to Solidity's `uint56` operator.\n Requirements:\n - input must fit into 56 bits\n _Available since v4.7._"},"id":9858,"implemented":true,"kind":"function","modifiers":[],"name":"toUint56","nameLocation":"13737:8:44","nodeType":"FunctionDefinition","parameters":{"id":9837,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9836,"mutability":"mutable","name":"value","nameLocation":"13754:5:44","nodeType":"VariableDeclaration","scope":9858,"src":"13746:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9835,"name":"uint256","nodeType":"ElementaryTypeName","src":"13746:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13745:15:44"},"returnParameters":{"id":9840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9839,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9858,"src":"13784:6:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"},"typeName":{"id":9838,"name":"uint56","nodeType":"ElementaryTypeName","src":"13784:6:44","typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"}},"visibility":"internal"}],"src":"13783:8:44"},"scope":10771,"src":"13728:187:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9882,"nodeType":"Block","src":"14304:123:44","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9867,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9861,"src":"14322:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9870,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14336:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint48_$","typeString":"type(uint48)"},"typeName":{"id":9869,"name":"uint48","nodeType":"ElementaryTypeName","src":"14336:6:44","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint48_$","typeString":"type(uint48)"}],"id":9868,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"14331:4:44","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14331:12:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint48","typeString":"type(uint48)"}},"id":9872,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14344:3:44","memberName":"max","nodeType":"MemberAccess","src":"14331:16:44","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"14322:25:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2034382062697473","id":9874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14349:40:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_599034f9324dd4e988c6cea5a00a30f53147fec1b01559682f18cd840028f495","typeString":"literal_string \"SafeCast: value doesn't fit in 48 bits\""},"value":"SafeCast: value doesn't fit in 48 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_599034f9324dd4e988c6cea5a00a30f53147fec1b01559682f18cd840028f495","typeString":"literal_string \"SafeCast: value doesn't fit in 48 bits\""}],"id":9866,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"14314:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14314:76:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9876,"nodeType":"ExpressionStatement","src":"14314:76:44"},{"expression":{"arguments":[{"id":9879,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9861,"src":"14414:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9878,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14407:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint48_$","typeString":"type(uint48)"},"typeName":{"id":9877,"name":"uint48","nodeType":"ElementaryTypeName","src":"14407:6:44","typeDescriptions":{}}},"id":9880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14407:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":9865,"id":9881,"nodeType":"Return","src":"14400:20:44"}]},"documentation":{"id":9859,"nodeType":"StructuredDocumentation","src":"13921:314:44","text":" @dev Returns the downcasted uint48 from uint256, reverting on\n overflow (when the input is greater than largest uint48).\n Counterpart to Solidity's `uint48` operator.\n Requirements:\n - input must fit into 48 bits\n _Available since v4.7._"},"id":9883,"implemented":true,"kind":"function","modifiers":[],"name":"toUint48","nameLocation":"14249:8:44","nodeType":"FunctionDefinition","parameters":{"id":9862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9861,"mutability":"mutable","name":"value","nameLocation":"14266:5:44","nodeType":"VariableDeclaration","scope":9883,"src":"14258:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9860,"name":"uint256","nodeType":"ElementaryTypeName","src":"14258:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14257:15:44"},"returnParameters":{"id":9865,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9864,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9883,"src":"14296:6:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":9863,"name":"uint48","nodeType":"ElementaryTypeName","src":"14296:6:44","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"14295:8:44"},"scope":10771,"src":"14240:187:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9907,"nodeType":"Block","src":"14816:123:44","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9892,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9886,"src":"14834:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9895,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14848:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"},"typeName":{"id":9894,"name":"uint40","nodeType":"ElementaryTypeName","src":"14848:6:44","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"}],"id":9893,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"14843:4:44","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14843:12:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint40","typeString":"type(uint40)"}},"id":9897,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14856:3:44","memberName":"max","nodeType":"MemberAccess","src":"14843:16:44","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"14834:25:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2034302062697473","id":9899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14861:40:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_b23559c58b98a5d3ed7016699c7171ac8defa5a1d180f9a9ffa60468a5701d37","typeString":"literal_string \"SafeCast: value doesn't fit in 40 bits\""},"value":"SafeCast: value doesn't fit in 40 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b23559c58b98a5d3ed7016699c7171ac8defa5a1d180f9a9ffa60468a5701d37","typeString":"literal_string \"SafeCast: value doesn't fit in 40 bits\""}],"id":9891,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"14826:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14826:76:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9901,"nodeType":"ExpressionStatement","src":"14826:76:44"},{"expression":{"arguments":[{"id":9904,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9886,"src":"14926:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9903,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14919:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"},"typeName":{"id":9902,"name":"uint40","nodeType":"ElementaryTypeName","src":"14919:6:44","typeDescriptions":{}}},"id":9905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14919:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"functionReturnParameters":9890,"id":9906,"nodeType":"Return","src":"14912:20:44"}]},"documentation":{"id":9884,"nodeType":"StructuredDocumentation","src":"14433:314:44","text":" @dev Returns the downcasted uint40 from uint256, reverting on\n overflow (when the input is greater than largest uint40).\n Counterpart to Solidity's `uint40` operator.\n Requirements:\n - input must fit into 40 bits\n _Available since v4.7._"},"id":9908,"implemented":true,"kind":"function","modifiers":[],"name":"toUint40","nameLocation":"14761:8:44","nodeType":"FunctionDefinition","parameters":{"id":9887,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9886,"mutability":"mutable","name":"value","nameLocation":"14778:5:44","nodeType":"VariableDeclaration","scope":9908,"src":"14770:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9885,"name":"uint256","nodeType":"ElementaryTypeName","src":"14770:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14769:15:44"},"returnParameters":{"id":9890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9889,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9908,"src":"14808:6:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":9888,"name":"uint40","nodeType":"ElementaryTypeName","src":"14808:6:44","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"}],"src":"14807:8:44"},"scope":10771,"src":"14752:187:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9932,"nodeType":"Block","src":"15328:123:44","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9917,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9911,"src":"15346:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9920,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15360:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":9919,"name":"uint32","nodeType":"ElementaryTypeName","src":"15360:6:44","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"}],"id":9918,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"15355:4:44","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9921,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15355:12:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint32","typeString":"type(uint32)"}},"id":9922,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15368:3:44","memberName":"max","nodeType":"MemberAccess","src":"15355:16:44","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"15346:25:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2033322062697473","id":9924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15373:40:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19","typeString":"literal_string \"SafeCast: value doesn't fit in 32 bits\""},"value":"SafeCast: value doesn't fit in 32 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19","typeString":"literal_string \"SafeCast: value doesn't fit in 32 bits\""}],"id":9916,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"15338:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15338:76:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9926,"nodeType":"ExpressionStatement","src":"15338:76:44"},{"expression":{"arguments":[{"id":9929,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9911,"src":"15438:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9928,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15431:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":9927,"name":"uint32","nodeType":"ElementaryTypeName","src":"15431:6:44","typeDescriptions":{}}},"id":9930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15431:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"functionReturnParameters":9915,"id":9931,"nodeType":"Return","src":"15424:20:44"}]},"documentation":{"id":9909,"nodeType":"StructuredDocumentation","src":"14945:314:44","text":" @dev Returns the downcasted uint32 from uint256, reverting on\n overflow (when the input is greater than largest uint32).\n Counterpart to Solidity's `uint32` operator.\n Requirements:\n - input must fit into 32 bits\n _Available since v2.5._"},"id":9933,"implemented":true,"kind":"function","modifiers":[],"name":"toUint32","nameLocation":"15273:8:44","nodeType":"FunctionDefinition","parameters":{"id":9912,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9911,"mutability":"mutable","name":"value","nameLocation":"15290:5:44","nodeType":"VariableDeclaration","scope":9933,"src":"15282:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9910,"name":"uint256","nodeType":"ElementaryTypeName","src":"15282:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15281:15:44"},"returnParameters":{"id":9915,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9914,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9933,"src":"15320:6:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":9913,"name":"uint32","nodeType":"ElementaryTypeName","src":"15320:6:44","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"15319:8:44"},"scope":10771,"src":"15264:187:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9957,"nodeType":"Block","src":"15840:123:44","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9942,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9936,"src":"15858:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9945,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15872:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint24_$","typeString":"type(uint24)"},"typeName":{"id":9944,"name":"uint24","nodeType":"ElementaryTypeName","src":"15872:6:44","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint24_$","typeString":"type(uint24)"}],"id":9943,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"15867:4:44","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15867:12:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint24","typeString":"type(uint24)"}},"id":9947,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15880:3:44","memberName":"max","nodeType":"MemberAccess","src":"15867:16:44","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"15858:25:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2032342062697473","id":9949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15885:40:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_f68b65aaf4574c34e9b9d1442d19636c6608b8c4dbd9331c7245f7915c8b2f55","typeString":"literal_string \"SafeCast: value doesn't fit in 24 bits\""},"value":"SafeCast: value doesn't fit in 24 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f68b65aaf4574c34e9b9d1442d19636c6608b8c4dbd9331c7245f7915c8b2f55","typeString":"literal_string \"SafeCast: value doesn't fit in 24 bits\""}],"id":9941,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"15850:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15850:76:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9951,"nodeType":"ExpressionStatement","src":"15850:76:44"},{"expression":{"arguments":[{"id":9954,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9936,"src":"15950:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9953,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15943:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint24_$","typeString":"type(uint24)"},"typeName":{"id":9952,"name":"uint24","nodeType":"ElementaryTypeName","src":"15943:6:44","typeDescriptions":{}}},"id":9955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15943:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"functionReturnParameters":9940,"id":9956,"nodeType":"Return","src":"15936:20:44"}]},"documentation":{"id":9934,"nodeType":"StructuredDocumentation","src":"15457:314:44","text":" @dev Returns the downcasted uint24 from uint256, reverting on\n overflow (when the input is greater than largest uint24).\n Counterpart to Solidity's `uint24` operator.\n Requirements:\n - input must fit into 24 bits\n _Available since v4.7._"},"id":9958,"implemented":true,"kind":"function","modifiers":[],"name":"toUint24","nameLocation":"15785:8:44","nodeType":"FunctionDefinition","parameters":{"id":9937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9936,"mutability":"mutable","name":"value","nameLocation":"15802:5:44","nodeType":"VariableDeclaration","scope":9958,"src":"15794:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9935,"name":"uint256","nodeType":"ElementaryTypeName","src":"15794:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15793:15:44"},"returnParameters":{"id":9940,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9939,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9958,"src":"15832:6:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":9938,"name":"uint24","nodeType":"ElementaryTypeName","src":"15832:6:44","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"}],"src":"15831:8:44"},"scope":10771,"src":"15776:187:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9982,"nodeType":"Block","src":"16352:123:44","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9967,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9961,"src":"16370:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9970,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16384:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":9969,"name":"uint16","nodeType":"ElementaryTypeName","src":"16384:6:44","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"}],"id":9968,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"16379:4:44","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16379:12:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint16","typeString":"type(uint16)"}},"id":9972,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16392:3:44","memberName":"max","nodeType":"MemberAccess","src":"16379:16:44","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"16370:25:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2031362062697473","id":9974,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16397:40:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_13d3a66f9e0e5c92bbe7743bcd3bdb4695009d5f3a96e5ff49718d715b484033","typeString":"literal_string \"SafeCast: value doesn't fit in 16 bits\""},"value":"SafeCast: value doesn't fit in 16 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_13d3a66f9e0e5c92bbe7743bcd3bdb4695009d5f3a96e5ff49718d715b484033","typeString":"literal_string \"SafeCast: value doesn't fit in 16 bits\""}],"id":9966,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"16362:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16362:76:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9976,"nodeType":"ExpressionStatement","src":"16362:76:44"},{"expression":{"arguments":[{"id":9979,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9961,"src":"16462:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9978,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16455:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":9977,"name":"uint16","nodeType":"ElementaryTypeName","src":"16455:6:44","typeDescriptions":{}}},"id":9980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16455:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":9965,"id":9981,"nodeType":"Return","src":"16448:20:44"}]},"documentation":{"id":9959,"nodeType":"StructuredDocumentation","src":"15969:314:44","text":" @dev Returns the downcasted uint16 from uint256, reverting on\n overflow (when the input is greater than largest uint16).\n Counterpart to Solidity's `uint16` operator.\n Requirements:\n - input must fit into 16 bits\n _Available since v2.5._"},"id":9983,"implemented":true,"kind":"function","modifiers":[],"name":"toUint16","nameLocation":"16297:8:44","nodeType":"FunctionDefinition","parameters":{"id":9962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9961,"mutability":"mutable","name":"value","nameLocation":"16314:5:44","nodeType":"VariableDeclaration","scope":9983,"src":"16306:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9960,"name":"uint256","nodeType":"ElementaryTypeName","src":"16306:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16305:15:44"},"returnParameters":{"id":9965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9964,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9983,"src":"16344:6:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":9963,"name":"uint16","nodeType":"ElementaryTypeName","src":"16344:6:44","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"16343:8:44"},"scope":10771,"src":"16288:187:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10007,"nodeType":"Block","src":"16858:120:44","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9992,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9986,"src":"16876:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":9995,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16890:5:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":9994,"name":"uint8","nodeType":"ElementaryTypeName","src":"16890:5:44","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":9993,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"16885:4:44","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16885:11:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":9997,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16897:3:44","memberName":"max","nodeType":"MemberAccess","src":"16885:15:44","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"16876:24:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e20382062697473","id":9999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16902:39:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_2610961ba53259047cd57c60366c5ad0b8aabf5eb4132487619b736715a740d1","typeString":"literal_string \"SafeCast: value doesn't fit in 8 bits\""},"value":"SafeCast: value doesn't fit in 8 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2610961ba53259047cd57c60366c5ad0b8aabf5eb4132487619b736715a740d1","typeString":"literal_string \"SafeCast: value doesn't fit in 8 bits\""}],"id":9991,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"16868:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16868:74:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10001,"nodeType":"ExpressionStatement","src":"16868:74:44"},{"expression":{"arguments":[{"id":10004,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9986,"src":"16965:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10003,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16959:5:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":10002,"name":"uint8","nodeType":"ElementaryTypeName","src":"16959:5:44","typeDescriptions":{}}},"id":10005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16959:12:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":9990,"id":10006,"nodeType":"Return","src":"16952:19:44"}]},"documentation":{"id":9984,"nodeType":"StructuredDocumentation","src":"16481:310:44","text":" @dev Returns the downcasted uint8 from uint256, reverting on\n overflow (when the input is greater than largest uint8).\n Counterpart to Solidity's `uint8` operator.\n Requirements:\n - input must fit into 8 bits\n _Available since v2.5._"},"id":10008,"implemented":true,"kind":"function","modifiers":[],"name":"toUint8","nameLocation":"16805:7:44","nodeType":"FunctionDefinition","parameters":{"id":9987,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9986,"mutability":"mutable","name":"value","nameLocation":"16821:5:44","nodeType":"VariableDeclaration","scope":10008,"src":"16813:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9985,"name":"uint256","nodeType":"ElementaryTypeName","src":"16813:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16812:15:44"},"returnParameters":{"id":9990,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9989,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10008,"src":"16851:5:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":9988,"name":"uint8","nodeType":"ElementaryTypeName","src":"16851:5:44","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"16850:7:44"},"scope":10771,"src":"16796:182:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10028,"nodeType":"Block","src":"17252:103:44","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10017,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10011,"src":"17270:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":10018,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17279:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17270:10:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c7565206d75737420626520706f736974697665","id":10020,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17282:34:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_74e6d3a4204092bea305532ded31d3763fc378e46be3884a93ceff08a0761807","typeString":"literal_string \"SafeCast: value must be positive\""},"value":"SafeCast: value must be positive"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_74e6d3a4204092bea305532ded31d3763fc378e46be3884a93ceff08a0761807","typeString":"literal_string \"SafeCast: value must be positive\""}],"id":10016,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"17262:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17262:55:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10022,"nodeType":"ExpressionStatement","src":"17262:55:44"},{"expression":{"arguments":[{"id":10025,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10011,"src":"17342:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10024,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17334:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10023,"name":"uint256","nodeType":"ElementaryTypeName","src":"17334:7:44","typeDescriptions":{}}},"id":10026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17334:14:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":10015,"id":10027,"nodeType":"Return","src":"17327:21:44"}]},"documentation":{"id":10009,"nodeType":"StructuredDocumentation","src":"16984:198:44","text":" @dev Converts a signed int256 into an unsigned uint256.\n Requirements:\n - input must be greater than or equal to 0.\n _Available since v3.0._"},"id":10029,"implemented":true,"kind":"function","modifiers":[],"name":"toUint256","nameLocation":"17196:9:44","nodeType":"FunctionDefinition","parameters":{"id":10012,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10011,"mutability":"mutable","name":"value","nameLocation":"17213:5:44","nodeType":"VariableDeclaration","scope":10029,"src":"17206:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10010,"name":"int256","nodeType":"ElementaryTypeName","src":"17206:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"17205:14:44"},"returnParameters":{"id":10015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10014,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10029,"src":"17243:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10013,"name":"uint256","nodeType":"ElementaryTypeName","src":"17243:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17242:9:44"},"scope":10771,"src":"17187:168:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10051,"nodeType":"Block","src":"17790:124:44","statements":[{"expression":{"id":10042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10037,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10035,"src":"17800:10:44","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10040,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10032,"src":"17820:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10039,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17813:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int248_$","typeString":"type(int248)"},"typeName":{"id":10038,"name":"int248","nodeType":"ElementaryTypeName","src":"17813:6:44","typeDescriptions":{}}},"id":10041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17813:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"src":"17800:26:44","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"id":10043,"nodeType":"ExpressionStatement","src":"17800:26:44"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10045,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10035,"src":"17844:10:44","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":10046,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10032,"src":"17858:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"17844:19:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203234382062697473","id":10048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17865:41:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_6ac19bba4607c9b45ff35f54fbc4ca64c29c7457109a16fa180ea77cdbda8593","typeString":"literal_string \"SafeCast: value doesn't fit in 248 bits\""},"value":"SafeCast: value doesn't fit in 248 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6ac19bba4607c9b45ff35f54fbc4ca64c29c7457109a16fa180ea77cdbda8593","typeString":"literal_string \"SafeCast: value doesn't fit in 248 bits\""}],"id":10044,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"17836:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17836:71:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10050,"nodeType":"ExpressionStatement","src":"17836:71:44"}]},"documentation":{"id":10030,"nodeType":"StructuredDocumentation","src":"17361:350:44","text":" @dev Returns the downcasted int248 from int256, reverting on\n overflow (when the input is less than smallest int248 or\n greater than largest int248).\n Counterpart to Solidity's `int248` operator.\n Requirements:\n - input must fit into 248 bits\n _Available since v4.7._"},"id":10052,"implemented":true,"kind":"function","modifiers":[],"name":"toInt248","nameLocation":"17725:8:44","nodeType":"FunctionDefinition","parameters":{"id":10033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10032,"mutability":"mutable","name":"value","nameLocation":"17741:5:44","nodeType":"VariableDeclaration","scope":10052,"src":"17734:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10031,"name":"int256","nodeType":"ElementaryTypeName","src":"17734:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"17733:14:44"},"returnParameters":{"id":10036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10035,"mutability":"mutable","name":"downcasted","nameLocation":"17778:10:44","nodeType":"VariableDeclaration","scope":10052,"src":"17771:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"},"typeName":{"id":10034,"name":"int248","nodeType":"ElementaryTypeName","src":"17771:6:44","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"visibility":"internal"}],"src":"17770:19:44"},"scope":10771,"src":"17716:198:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10074,"nodeType":"Block","src":"18349:124:44","statements":[{"expression":{"id":10065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10060,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10058,"src":"18359:10:44","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10063,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10055,"src":"18379:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10062,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18372:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int240_$","typeString":"type(int240)"},"typeName":{"id":10061,"name":"int240","nodeType":"ElementaryTypeName","src":"18372:6:44","typeDescriptions":{}}},"id":10064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18372:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"src":"18359:26:44","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"id":10066,"nodeType":"ExpressionStatement","src":"18359:26:44"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10068,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10058,"src":"18403:10:44","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":10069,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10055,"src":"18417:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"18403:19:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203234302062697473","id":10071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18424:41:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_375fa0f6cb9fb5845d214c630920cedf4424913ed6dc32c297d430efa3d61a87","typeString":"literal_string \"SafeCast: value doesn't fit in 240 bits\""},"value":"SafeCast: value doesn't fit in 240 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_375fa0f6cb9fb5845d214c630920cedf4424913ed6dc32c297d430efa3d61a87","typeString":"literal_string \"SafeCast: value doesn't fit in 240 bits\""}],"id":10067,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"18395:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18395:71:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10073,"nodeType":"ExpressionStatement","src":"18395:71:44"}]},"documentation":{"id":10053,"nodeType":"StructuredDocumentation","src":"17920:350:44","text":" @dev Returns the downcasted int240 from int256, reverting on\n overflow (when the input is less than smallest int240 or\n greater than largest int240).\n Counterpart to Solidity's `int240` operator.\n Requirements:\n - input must fit into 240 bits\n _Available since v4.7._"},"id":10075,"implemented":true,"kind":"function","modifiers":[],"name":"toInt240","nameLocation":"18284:8:44","nodeType":"FunctionDefinition","parameters":{"id":10056,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10055,"mutability":"mutable","name":"value","nameLocation":"18300:5:44","nodeType":"VariableDeclaration","scope":10075,"src":"18293:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10054,"name":"int256","nodeType":"ElementaryTypeName","src":"18293:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"18292:14:44"},"returnParameters":{"id":10059,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10058,"mutability":"mutable","name":"downcasted","nameLocation":"18337:10:44","nodeType":"VariableDeclaration","scope":10075,"src":"18330:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"},"typeName":{"id":10057,"name":"int240","nodeType":"ElementaryTypeName","src":"18330:6:44","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"visibility":"internal"}],"src":"18329:19:44"},"scope":10771,"src":"18275:198:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10097,"nodeType":"Block","src":"18908:124:44","statements":[{"expression":{"id":10088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10083,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10081,"src":"18918:10:44","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10086,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10078,"src":"18938:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10085,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18931:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int232_$","typeString":"type(int232)"},"typeName":{"id":10084,"name":"int232","nodeType":"ElementaryTypeName","src":"18931:6:44","typeDescriptions":{}}},"id":10087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18931:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"src":"18918:26:44","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"id":10089,"nodeType":"ExpressionStatement","src":"18918:26:44"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10091,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10081,"src":"18962:10:44","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":10092,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10078,"src":"18976:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"18962:19:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203233322062697473","id":10094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18983:41:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_5797fb2c4589bd6a92752ce0eacaac67341e37ab28c96c2284ab897e7ac77957","typeString":"literal_string \"SafeCast: value doesn't fit in 232 bits\""},"value":"SafeCast: value doesn't fit in 232 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5797fb2c4589bd6a92752ce0eacaac67341e37ab28c96c2284ab897e7ac77957","typeString":"literal_string \"SafeCast: value doesn't fit in 232 bits\""}],"id":10090,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"18954:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18954:71:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10096,"nodeType":"ExpressionStatement","src":"18954:71:44"}]},"documentation":{"id":10076,"nodeType":"StructuredDocumentation","src":"18479:350:44","text":" @dev Returns the downcasted int232 from int256, reverting on\n overflow (when the input is less than smallest int232 or\n greater than largest int232).\n Counterpart to Solidity's `int232` operator.\n Requirements:\n - input must fit into 232 bits\n _Available since v4.7._"},"id":10098,"implemented":true,"kind":"function","modifiers":[],"name":"toInt232","nameLocation":"18843:8:44","nodeType":"FunctionDefinition","parameters":{"id":10079,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10078,"mutability":"mutable","name":"value","nameLocation":"18859:5:44","nodeType":"VariableDeclaration","scope":10098,"src":"18852:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10077,"name":"int256","nodeType":"ElementaryTypeName","src":"18852:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"18851:14:44"},"returnParameters":{"id":10082,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10081,"mutability":"mutable","name":"downcasted","nameLocation":"18896:10:44","nodeType":"VariableDeclaration","scope":10098,"src":"18889:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"},"typeName":{"id":10080,"name":"int232","nodeType":"ElementaryTypeName","src":"18889:6:44","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"visibility":"internal"}],"src":"18888:19:44"},"scope":10771,"src":"18834:198:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10120,"nodeType":"Block","src":"19467:124:44","statements":[{"expression":{"id":10111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10106,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10104,"src":"19477:10:44","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10109,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10101,"src":"19497:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10108,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19490:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int224_$","typeString":"type(int224)"},"typeName":{"id":10107,"name":"int224","nodeType":"ElementaryTypeName","src":"19490:6:44","typeDescriptions":{}}},"id":10110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19490:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"src":"19477:26:44","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"id":10112,"nodeType":"ExpressionStatement","src":"19477:26:44"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10114,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10104,"src":"19521:10:44","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":10115,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10101,"src":"19535:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"19521:19:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203232342062697473","id":10117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19542:41:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_9d2acf551b2466898443b9bc3a403a4d86037386bc5a8960c1bbb0f204e69b79","typeString":"literal_string \"SafeCast: value doesn't fit in 224 bits\""},"value":"SafeCast: value doesn't fit in 224 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9d2acf551b2466898443b9bc3a403a4d86037386bc5a8960c1bbb0f204e69b79","typeString":"literal_string \"SafeCast: value doesn't fit in 224 bits\""}],"id":10113,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"19513:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19513:71:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10119,"nodeType":"ExpressionStatement","src":"19513:71:44"}]},"documentation":{"id":10099,"nodeType":"StructuredDocumentation","src":"19038:350:44","text":" @dev Returns the downcasted int224 from int256, reverting on\n overflow (when the input is less than smallest int224 or\n greater than largest int224).\n Counterpart to Solidity's `int224` operator.\n Requirements:\n - input must fit into 224 bits\n _Available since v4.7._"},"id":10121,"implemented":true,"kind":"function","modifiers":[],"name":"toInt224","nameLocation":"19402:8:44","nodeType":"FunctionDefinition","parameters":{"id":10102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10101,"mutability":"mutable","name":"value","nameLocation":"19418:5:44","nodeType":"VariableDeclaration","scope":10121,"src":"19411:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10100,"name":"int256","nodeType":"ElementaryTypeName","src":"19411:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"19410:14:44"},"returnParameters":{"id":10105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10104,"mutability":"mutable","name":"downcasted","nameLocation":"19455:10:44","nodeType":"VariableDeclaration","scope":10121,"src":"19448:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"},"typeName":{"id":10103,"name":"int224","nodeType":"ElementaryTypeName","src":"19448:6:44","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"visibility":"internal"}],"src":"19447:19:44"},"scope":10771,"src":"19393:198:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10143,"nodeType":"Block","src":"20026:124:44","statements":[{"expression":{"id":10134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10129,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10127,"src":"20036:10:44","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10132,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10124,"src":"20056:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10131,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20049:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int216_$","typeString":"type(int216)"},"typeName":{"id":10130,"name":"int216","nodeType":"ElementaryTypeName","src":"20049:6:44","typeDescriptions":{}}},"id":10133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20049:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"src":"20036:26:44","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"id":10135,"nodeType":"ExpressionStatement","src":"20036:26:44"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10137,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10127,"src":"20080:10:44","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":10138,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10124,"src":"20094:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"20080:19:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203231362062697473","id":10140,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20101:41:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_8966adc0aad8dc91b207c69c3eb4937e498af8cc706cfe7edd55f3a6ea53488d","typeString":"literal_string \"SafeCast: value doesn't fit in 216 bits\""},"value":"SafeCast: value doesn't fit in 216 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8966adc0aad8dc91b207c69c3eb4937e498af8cc706cfe7edd55f3a6ea53488d","typeString":"literal_string \"SafeCast: value doesn't fit in 216 bits\""}],"id":10136,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"20072:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20072:71:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10142,"nodeType":"ExpressionStatement","src":"20072:71:44"}]},"documentation":{"id":10122,"nodeType":"StructuredDocumentation","src":"19597:350:44","text":" @dev Returns the downcasted int216 from int256, reverting on\n overflow (when the input is less than smallest int216 or\n greater than largest int216).\n Counterpart to Solidity's `int216` operator.\n Requirements:\n - input must fit into 216 bits\n _Available since v4.7._"},"id":10144,"implemented":true,"kind":"function","modifiers":[],"name":"toInt216","nameLocation":"19961:8:44","nodeType":"FunctionDefinition","parameters":{"id":10125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10124,"mutability":"mutable","name":"value","nameLocation":"19977:5:44","nodeType":"VariableDeclaration","scope":10144,"src":"19970:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10123,"name":"int256","nodeType":"ElementaryTypeName","src":"19970:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"19969:14:44"},"returnParameters":{"id":10128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10127,"mutability":"mutable","name":"downcasted","nameLocation":"20014:10:44","nodeType":"VariableDeclaration","scope":10144,"src":"20007:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"},"typeName":{"id":10126,"name":"int216","nodeType":"ElementaryTypeName","src":"20007:6:44","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"visibility":"internal"}],"src":"20006:19:44"},"scope":10771,"src":"19952:198:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10166,"nodeType":"Block","src":"20585:124:44","statements":[{"expression":{"id":10157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10152,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10150,"src":"20595:10:44","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10155,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10147,"src":"20615:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10154,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20608:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int208_$","typeString":"type(int208)"},"typeName":{"id":10153,"name":"int208","nodeType":"ElementaryTypeName","src":"20608:6:44","typeDescriptions":{}}},"id":10156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20608:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"src":"20595:26:44","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"id":10158,"nodeType":"ExpressionStatement","src":"20595:26:44"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10160,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10150,"src":"20639:10:44","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":10161,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10147,"src":"20653:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"20639:19:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203230382062697473","id":10163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20660:41:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_43d81217fa633fa1c6e88855de94fb990f5831ac266b0a90afa660e986ab5e23","typeString":"literal_string \"SafeCast: value doesn't fit in 208 bits\""},"value":"SafeCast: value doesn't fit in 208 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_43d81217fa633fa1c6e88855de94fb990f5831ac266b0a90afa660e986ab5e23","typeString":"literal_string \"SafeCast: value doesn't fit in 208 bits\""}],"id":10159,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"20631:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20631:71:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10165,"nodeType":"ExpressionStatement","src":"20631:71:44"}]},"documentation":{"id":10145,"nodeType":"StructuredDocumentation","src":"20156:350:44","text":" @dev Returns the downcasted int208 from int256, reverting on\n overflow (when the input is less than smallest int208 or\n greater than largest int208).\n Counterpart to Solidity's `int208` operator.\n Requirements:\n - input must fit into 208 bits\n _Available since v4.7._"},"id":10167,"implemented":true,"kind":"function","modifiers":[],"name":"toInt208","nameLocation":"20520:8:44","nodeType":"FunctionDefinition","parameters":{"id":10148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10147,"mutability":"mutable","name":"value","nameLocation":"20536:5:44","nodeType":"VariableDeclaration","scope":10167,"src":"20529:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10146,"name":"int256","nodeType":"ElementaryTypeName","src":"20529:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"20528:14:44"},"returnParameters":{"id":10151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10150,"mutability":"mutable","name":"downcasted","nameLocation":"20573:10:44","nodeType":"VariableDeclaration","scope":10167,"src":"20566:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"},"typeName":{"id":10149,"name":"int208","nodeType":"ElementaryTypeName","src":"20566:6:44","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"visibility":"internal"}],"src":"20565:19:44"},"scope":10771,"src":"20511:198:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10189,"nodeType":"Block","src":"21144:124:44","statements":[{"expression":{"id":10180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10175,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10173,"src":"21154:10:44","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10178,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10170,"src":"21174:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10177,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21167:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int200_$","typeString":"type(int200)"},"typeName":{"id":10176,"name":"int200","nodeType":"ElementaryTypeName","src":"21167:6:44","typeDescriptions":{}}},"id":10179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21167:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"src":"21154:26:44","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"id":10181,"nodeType":"ExpressionStatement","src":"21154:26:44"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10183,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10173,"src":"21198:10:44","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":10184,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10170,"src":"21212:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"21198:19:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203230302062697473","id":10186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21219:41:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_df8130f294fe2698967ea9ead82c4da9454490567d976d00551e0174e655314c","typeString":"literal_string \"SafeCast: value doesn't fit in 200 bits\""},"value":"SafeCast: value doesn't fit in 200 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_df8130f294fe2698967ea9ead82c4da9454490567d976d00551e0174e655314c","typeString":"literal_string \"SafeCast: value doesn't fit in 200 bits\""}],"id":10182,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"21190:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21190:71:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10188,"nodeType":"ExpressionStatement","src":"21190:71:44"}]},"documentation":{"id":10168,"nodeType":"StructuredDocumentation","src":"20715:350:44","text":" @dev Returns the downcasted int200 from int256, reverting on\n overflow (when the input is less than smallest int200 or\n greater than largest int200).\n Counterpart to Solidity's `int200` operator.\n Requirements:\n - input must fit into 200 bits\n _Available since v4.7._"},"id":10190,"implemented":true,"kind":"function","modifiers":[],"name":"toInt200","nameLocation":"21079:8:44","nodeType":"FunctionDefinition","parameters":{"id":10171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10170,"mutability":"mutable","name":"value","nameLocation":"21095:5:44","nodeType":"VariableDeclaration","scope":10190,"src":"21088:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10169,"name":"int256","nodeType":"ElementaryTypeName","src":"21088:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"21087:14:44"},"returnParameters":{"id":10174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10173,"mutability":"mutable","name":"downcasted","nameLocation":"21132:10:44","nodeType":"VariableDeclaration","scope":10190,"src":"21125:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"},"typeName":{"id":10172,"name":"int200","nodeType":"ElementaryTypeName","src":"21125:6:44","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"visibility":"internal"}],"src":"21124:19:44"},"scope":10771,"src":"21070:198:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10212,"nodeType":"Block","src":"21703:124:44","statements":[{"expression":{"id":10203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10198,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10196,"src":"21713:10:44","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10201,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10193,"src":"21733:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10200,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21726:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int192_$","typeString":"type(int192)"},"typeName":{"id":10199,"name":"int192","nodeType":"ElementaryTypeName","src":"21726:6:44","typeDescriptions":{}}},"id":10202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21726:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"src":"21713:26:44","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"id":10204,"nodeType":"ExpressionStatement","src":"21713:26:44"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10206,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10196,"src":"21757:10:44","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":10207,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10193,"src":"21771:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"21757:19:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203139322062697473","id":10209,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21778:41:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_112978800f12a1c4f1eab82789f7b6defd49dc1c17ba270a84ffc28392fb05ae","typeString":"literal_string \"SafeCast: value doesn't fit in 192 bits\""},"value":"SafeCast: value doesn't fit in 192 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_112978800f12a1c4f1eab82789f7b6defd49dc1c17ba270a84ffc28392fb05ae","typeString":"literal_string \"SafeCast: value doesn't fit in 192 bits\""}],"id":10205,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"21749:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21749:71:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10211,"nodeType":"ExpressionStatement","src":"21749:71:44"}]},"documentation":{"id":10191,"nodeType":"StructuredDocumentation","src":"21274:350:44","text":" @dev Returns the downcasted int192 from int256, reverting on\n overflow (when the input is less than smallest int192 or\n greater than largest int192).\n Counterpart to Solidity's `int192` operator.\n Requirements:\n - input must fit into 192 bits\n _Available since v4.7._"},"id":10213,"implemented":true,"kind":"function","modifiers":[],"name":"toInt192","nameLocation":"21638:8:44","nodeType":"FunctionDefinition","parameters":{"id":10194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10193,"mutability":"mutable","name":"value","nameLocation":"21654:5:44","nodeType":"VariableDeclaration","scope":10213,"src":"21647:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10192,"name":"int256","nodeType":"ElementaryTypeName","src":"21647:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"21646:14:44"},"returnParameters":{"id":10197,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10196,"mutability":"mutable","name":"downcasted","nameLocation":"21691:10:44","nodeType":"VariableDeclaration","scope":10213,"src":"21684:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"},"typeName":{"id":10195,"name":"int192","nodeType":"ElementaryTypeName","src":"21684:6:44","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"visibility":"internal"}],"src":"21683:19:44"},"scope":10771,"src":"21629:198:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10235,"nodeType":"Block","src":"22262:124:44","statements":[{"expression":{"id":10226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10221,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10219,"src":"22272:10:44","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10224,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10216,"src":"22292:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10223,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22285:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int184_$","typeString":"type(int184)"},"typeName":{"id":10222,"name":"int184","nodeType":"ElementaryTypeName","src":"22285:6:44","typeDescriptions":{}}},"id":10225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22285:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"src":"22272:26:44","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"id":10227,"nodeType":"ExpressionStatement","src":"22272:26:44"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10229,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10219,"src":"22316:10:44","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":10230,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10216,"src":"22330:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"22316:19:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203138342062697473","id":10232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22337:41:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_86c53d89b1944d561ecfa42e859033241d1df6ea8d42a57ae02f79d45de4aa75","typeString":"literal_string \"SafeCast: value doesn't fit in 184 bits\""},"value":"SafeCast: value doesn't fit in 184 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_86c53d89b1944d561ecfa42e859033241d1df6ea8d42a57ae02f79d45de4aa75","typeString":"literal_string \"SafeCast: value doesn't fit in 184 bits\""}],"id":10228,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"22308:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22308:71:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10234,"nodeType":"ExpressionStatement","src":"22308:71:44"}]},"documentation":{"id":10214,"nodeType":"StructuredDocumentation","src":"21833:350:44","text":" @dev Returns the downcasted int184 from int256, reverting on\n overflow (when the input is less than smallest int184 or\n greater than largest int184).\n Counterpart to Solidity's `int184` operator.\n Requirements:\n - input must fit into 184 bits\n _Available since v4.7._"},"id":10236,"implemented":true,"kind":"function","modifiers":[],"name":"toInt184","nameLocation":"22197:8:44","nodeType":"FunctionDefinition","parameters":{"id":10217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10216,"mutability":"mutable","name":"value","nameLocation":"22213:5:44","nodeType":"VariableDeclaration","scope":10236,"src":"22206:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10215,"name":"int256","nodeType":"ElementaryTypeName","src":"22206:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"22205:14:44"},"returnParameters":{"id":10220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10219,"mutability":"mutable","name":"downcasted","nameLocation":"22250:10:44","nodeType":"VariableDeclaration","scope":10236,"src":"22243:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"},"typeName":{"id":10218,"name":"int184","nodeType":"ElementaryTypeName","src":"22243:6:44","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"visibility":"internal"}],"src":"22242:19:44"},"scope":10771,"src":"22188:198:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10258,"nodeType":"Block","src":"22821:124:44","statements":[{"expression":{"id":10249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10244,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10242,"src":"22831:10:44","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10247,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10239,"src":"22851:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10246,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22844:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int176_$","typeString":"type(int176)"},"typeName":{"id":10245,"name":"int176","nodeType":"ElementaryTypeName","src":"22844:6:44","typeDescriptions":{}}},"id":10248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22844:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"src":"22831:26:44","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"id":10250,"nodeType":"ExpressionStatement","src":"22831:26:44"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10252,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10242,"src":"22875:10:44","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":10253,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10239,"src":"22889:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"22875:19:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203137362062697473","id":10255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22896:41:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_4069e970f734339c7841e84a1b26f503bff22b76884c1168dc24e2e6af9b1e30","typeString":"literal_string \"SafeCast: value doesn't fit in 176 bits\""},"value":"SafeCast: value doesn't fit in 176 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4069e970f734339c7841e84a1b26f503bff22b76884c1168dc24e2e6af9b1e30","typeString":"literal_string \"SafeCast: value doesn't fit in 176 bits\""}],"id":10251,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"22867:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22867:71:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10257,"nodeType":"ExpressionStatement","src":"22867:71:44"}]},"documentation":{"id":10237,"nodeType":"StructuredDocumentation","src":"22392:350:44","text":" @dev Returns the downcasted int176 from int256, reverting on\n overflow (when the input is less than smallest int176 or\n greater than largest int176).\n Counterpart to Solidity's `int176` operator.\n Requirements:\n - input must fit into 176 bits\n _Available since v4.7._"},"id":10259,"implemented":true,"kind":"function","modifiers":[],"name":"toInt176","nameLocation":"22756:8:44","nodeType":"FunctionDefinition","parameters":{"id":10240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10239,"mutability":"mutable","name":"value","nameLocation":"22772:5:44","nodeType":"VariableDeclaration","scope":10259,"src":"22765:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10238,"name":"int256","nodeType":"ElementaryTypeName","src":"22765:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"22764:14:44"},"returnParameters":{"id":10243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10242,"mutability":"mutable","name":"downcasted","nameLocation":"22809:10:44","nodeType":"VariableDeclaration","scope":10259,"src":"22802:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"},"typeName":{"id":10241,"name":"int176","nodeType":"ElementaryTypeName","src":"22802:6:44","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"visibility":"internal"}],"src":"22801:19:44"},"scope":10771,"src":"22747:198:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10281,"nodeType":"Block","src":"23380:124:44","statements":[{"expression":{"id":10272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10267,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10265,"src":"23390:10:44","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10270,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10262,"src":"23410:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10269,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23403:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int168_$","typeString":"type(int168)"},"typeName":{"id":10268,"name":"int168","nodeType":"ElementaryTypeName","src":"23403:6:44","typeDescriptions":{}}},"id":10271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23403:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"src":"23390:26:44","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"id":10273,"nodeType":"ExpressionStatement","src":"23390:26:44"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10275,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10265,"src":"23434:10:44","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":10276,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10262,"src":"23448:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"23434:19:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203136382062697473","id":10278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23455:41:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_67ef32a3cbe7b34392347d335b0a7ae95c74a34ca40e4efb58f6c9a3154e85a1","typeString":"literal_string \"SafeCast: value doesn't fit in 168 bits\""},"value":"SafeCast: value doesn't fit in 168 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_67ef32a3cbe7b34392347d335b0a7ae95c74a34ca40e4efb58f6c9a3154e85a1","typeString":"literal_string \"SafeCast: value doesn't fit in 168 bits\""}],"id":10274,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"23426:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23426:71:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10280,"nodeType":"ExpressionStatement","src":"23426:71:44"}]},"documentation":{"id":10260,"nodeType":"StructuredDocumentation","src":"22951:350:44","text":" @dev Returns the downcasted int168 from int256, reverting on\n overflow (when the input is less than smallest int168 or\n greater than largest int168).\n Counterpart to Solidity's `int168` operator.\n Requirements:\n - input must fit into 168 bits\n _Available since v4.7._"},"id":10282,"implemented":true,"kind":"function","modifiers":[],"name":"toInt168","nameLocation":"23315:8:44","nodeType":"FunctionDefinition","parameters":{"id":10263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10262,"mutability":"mutable","name":"value","nameLocation":"23331:5:44","nodeType":"VariableDeclaration","scope":10282,"src":"23324:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10261,"name":"int256","nodeType":"ElementaryTypeName","src":"23324:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"23323:14:44"},"returnParameters":{"id":10266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10265,"mutability":"mutable","name":"downcasted","nameLocation":"23368:10:44","nodeType":"VariableDeclaration","scope":10282,"src":"23361:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"},"typeName":{"id":10264,"name":"int168","nodeType":"ElementaryTypeName","src":"23361:6:44","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"visibility":"internal"}],"src":"23360:19:44"},"scope":10771,"src":"23306:198:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10304,"nodeType":"Block","src":"23939:124:44","statements":[{"expression":{"id":10295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10290,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10288,"src":"23949:10:44","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10293,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10285,"src":"23969:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10292,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23962:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int160_$","typeString":"type(int160)"},"typeName":{"id":10291,"name":"int160","nodeType":"ElementaryTypeName","src":"23962:6:44","typeDescriptions":{}}},"id":10294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23962:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"src":"23949:26:44","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"id":10296,"nodeType":"ExpressionStatement","src":"23949:26:44"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10298,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10288,"src":"23993:10:44","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":10299,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10285,"src":"24007:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"23993:19:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203136302062697473","id":10301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24014:41:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_976ecce9083debfe29d3a99b955facf24b8725f1b964d1a5bb4197ffcd60ab9d","typeString":"literal_string \"SafeCast: value doesn't fit in 160 bits\""},"value":"SafeCast: value doesn't fit in 160 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_976ecce9083debfe29d3a99b955facf24b8725f1b964d1a5bb4197ffcd60ab9d","typeString":"literal_string \"SafeCast: value doesn't fit in 160 bits\""}],"id":10297,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"23985:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23985:71:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10303,"nodeType":"ExpressionStatement","src":"23985:71:44"}]},"documentation":{"id":10283,"nodeType":"StructuredDocumentation","src":"23510:350:44","text":" @dev Returns the downcasted int160 from int256, reverting on\n overflow (when the input is less than smallest int160 or\n greater than largest int160).\n Counterpart to Solidity's `int160` operator.\n Requirements:\n - input must fit into 160 bits\n _Available since v4.7._"},"id":10305,"implemented":true,"kind":"function","modifiers":[],"name":"toInt160","nameLocation":"23874:8:44","nodeType":"FunctionDefinition","parameters":{"id":10286,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10285,"mutability":"mutable","name":"value","nameLocation":"23890:5:44","nodeType":"VariableDeclaration","scope":10305,"src":"23883:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10284,"name":"int256","nodeType":"ElementaryTypeName","src":"23883:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"23882:14:44"},"returnParameters":{"id":10289,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10288,"mutability":"mutable","name":"downcasted","nameLocation":"23927:10:44","nodeType":"VariableDeclaration","scope":10305,"src":"23920:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"},"typeName":{"id":10287,"name":"int160","nodeType":"ElementaryTypeName","src":"23920:6:44","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"visibility":"internal"}],"src":"23919:19:44"},"scope":10771,"src":"23865:198:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10327,"nodeType":"Block","src":"24498:124:44","statements":[{"expression":{"id":10318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10313,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10311,"src":"24508:10:44","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10316,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10308,"src":"24528:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10315,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24521:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int152_$","typeString":"type(int152)"},"typeName":{"id":10314,"name":"int152","nodeType":"ElementaryTypeName","src":"24521:6:44","typeDescriptions":{}}},"id":10317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24521:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"src":"24508:26:44","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"id":10319,"nodeType":"ExpressionStatement","src":"24508:26:44"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10321,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10311,"src":"24552:10:44","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":10322,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10308,"src":"24566:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"24552:19:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203135322062697473","id":10324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24573:41:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_211cad43a2caf5f01e34af51190b8a7b6f3d9c195bd25586ea12242191b97831","typeString":"literal_string \"SafeCast: value doesn't fit in 152 bits\""},"value":"SafeCast: value doesn't fit in 152 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_211cad43a2caf5f01e34af51190b8a7b6f3d9c195bd25586ea12242191b97831","typeString":"literal_string \"SafeCast: value doesn't fit in 152 bits\""}],"id":10320,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"24544:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24544:71:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10326,"nodeType":"ExpressionStatement","src":"24544:71:44"}]},"documentation":{"id":10306,"nodeType":"StructuredDocumentation","src":"24069:350:44","text":" @dev Returns the downcasted int152 from int256, reverting on\n overflow (when the input is less than smallest int152 or\n greater than largest int152).\n Counterpart to Solidity's `int152` operator.\n Requirements:\n - input must fit into 152 bits\n _Available since v4.7._"},"id":10328,"implemented":true,"kind":"function","modifiers":[],"name":"toInt152","nameLocation":"24433:8:44","nodeType":"FunctionDefinition","parameters":{"id":10309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10308,"mutability":"mutable","name":"value","nameLocation":"24449:5:44","nodeType":"VariableDeclaration","scope":10328,"src":"24442:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10307,"name":"int256","nodeType":"ElementaryTypeName","src":"24442:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"24441:14:44"},"returnParameters":{"id":10312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10311,"mutability":"mutable","name":"downcasted","nameLocation":"24486:10:44","nodeType":"VariableDeclaration","scope":10328,"src":"24479:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"},"typeName":{"id":10310,"name":"int152","nodeType":"ElementaryTypeName","src":"24479:6:44","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"visibility":"internal"}],"src":"24478:19:44"},"scope":10771,"src":"24424:198:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10350,"nodeType":"Block","src":"25057:124:44","statements":[{"expression":{"id":10341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10336,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10334,"src":"25067:10:44","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10339,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10331,"src":"25087:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10338,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25080:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int144_$","typeString":"type(int144)"},"typeName":{"id":10337,"name":"int144","nodeType":"ElementaryTypeName","src":"25080:6:44","typeDescriptions":{}}},"id":10340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25080:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"src":"25067:26:44","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"id":10342,"nodeType":"ExpressionStatement","src":"25067:26:44"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10344,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10334,"src":"25111:10:44","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":10345,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10331,"src":"25125:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"25111:19:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203134342062697473","id":10347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25132:41:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_17d8c5a6d3b2fd2517ba2e4a2ac70a3367cd362448f8338aaa6edf8bfd812bab","typeString":"literal_string \"SafeCast: value doesn't fit in 144 bits\""},"value":"SafeCast: value doesn't fit in 144 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_17d8c5a6d3b2fd2517ba2e4a2ac70a3367cd362448f8338aaa6edf8bfd812bab","typeString":"literal_string \"SafeCast: value doesn't fit in 144 bits\""}],"id":10343,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"25103:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25103:71:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10349,"nodeType":"ExpressionStatement","src":"25103:71:44"}]},"documentation":{"id":10329,"nodeType":"StructuredDocumentation","src":"24628:350:44","text":" @dev Returns the downcasted int144 from int256, reverting on\n overflow (when the input is less than smallest int144 or\n greater than largest int144).\n Counterpart to Solidity's `int144` operator.\n Requirements:\n - input must fit into 144 bits\n _Available since v4.7._"},"id":10351,"implemented":true,"kind":"function","modifiers":[],"name":"toInt144","nameLocation":"24992:8:44","nodeType":"FunctionDefinition","parameters":{"id":10332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10331,"mutability":"mutable","name":"value","nameLocation":"25008:5:44","nodeType":"VariableDeclaration","scope":10351,"src":"25001:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10330,"name":"int256","nodeType":"ElementaryTypeName","src":"25001:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"25000:14:44"},"returnParameters":{"id":10335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10334,"mutability":"mutable","name":"downcasted","nameLocation":"25045:10:44","nodeType":"VariableDeclaration","scope":10351,"src":"25038:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"},"typeName":{"id":10333,"name":"int144","nodeType":"ElementaryTypeName","src":"25038:6:44","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"visibility":"internal"}],"src":"25037:19:44"},"scope":10771,"src":"24983:198:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10373,"nodeType":"Block","src":"25616:124:44","statements":[{"expression":{"id":10364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10359,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10357,"src":"25626:10:44","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10362,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10354,"src":"25646:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10361,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25639:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int136_$","typeString":"type(int136)"},"typeName":{"id":10360,"name":"int136","nodeType":"ElementaryTypeName","src":"25639:6:44","typeDescriptions":{}}},"id":10363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25639:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"src":"25626:26:44","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"id":10365,"nodeType":"ExpressionStatement","src":"25626:26:44"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10367,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10357,"src":"25670:10:44","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":10368,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10354,"src":"25684:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"25670:19:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203133362062697473","id":10370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25691:41:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_8b1f81e2e2913e1cee9dba7bcd9837bbf8a8122edaac4afc578271db3c25a56a","typeString":"literal_string \"SafeCast: value doesn't fit in 136 bits\""},"value":"SafeCast: value doesn't fit in 136 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8b1f81e2e2913e1cee9dba7bcd9837bbf8a8122edaac4afc578271db3c25a56a","typeString":"literal_string \"SafeCast: value doesn't fit in 136 bits\""}],"id":10366,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"25662:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25662:71:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10372,"nodeType":"ExpressionStatement","src":"25662:71:44"}]},"documentation":{"id":10352,"nodeType":"StructuredDocumentation","src":"25187:350:44","text":" @dev Returns the downcasted int136 from int256, reverting on\n overflow (when the input is less than smallest int136 or\n greater than largest int136).\n Counterpart to Solidity's `int136` operator.\n Requirements:\n - input must fit into 136 bits\n _Available since v4.7._"},"id":10374,"implemented":true,"kind":"function","modifiers":[],"name":"toInt136","nameLocation":"25551:8:44","nodeType":"FunctionDefinition","parameters":{"id":10355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10354,"mutability":"mutable","name":"value","nameLocation":"25567:5:44","nodeType":"VariableDeclaration","scope":10374,"src":"25560:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10353,"name":"int256","nodeType":"ElementaryTypeName","src":"25560:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"25559:14:44"},"returnParameters":{"id":10358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10357,"mutability":"mutable","name":"downcasted","nameLocation":"25604:10:44","nodeType":"VariableDeclaration","scope":10374,"src":"25597:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"},"typeName":{"id":10356,"name":"int136","nodeType":"ElementaryTypeName","src":"25597:6:44","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"visibility":"internal"}],"src":"25596:19:44"},"scope":10771,"src":"25542:198:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10396,"nodeType":"Block","src":"26175:124:44","statements":[{"expression":{"id":10387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10382,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10380,"src":"26185:10:44","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10385,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10377,"src":"26205:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10384,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26198:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int128_$","typeString":"type(int128)"},"typeName":{"id":10383,"name":"int128","nodeType":"ElementaryTypeName","src":"26198:6:44","typeDescriptions":{}}},"id":10386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26198:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"26185:26:44","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":10388,"nodeType":"ExpressionStatement","src":"26185:26:44"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10390,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10380,"src":"26229:10:44","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":10391,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10377,"src":"26243:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"26229:19:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203132382062697473","id":10393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26250:41:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_47a1e201974f94d3d1a31c8b08ae18c6966c758bdcd4400020012b98cc55426c","typeString":"literal_string \"SafeCast: value doesn't fit in 128 bits\""},"value":"SafeCast: value doesn't fit in 128 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_47a1e201974f94d3d1a31c8b08ae18c6966c758bdcd4400020012b98cc55426c","typeString":"literal_string \"SafeCast: value doesn't fit in 128 bits\""}],"id":10389,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26221:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26221:71:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10395,"nodeType":"ExpressionStatement","src":"26221:71:44"}]},"documentation":{"id":10375,"nodeType":"StructuredDocumentation","src":"25746:350:44","text":" @dev Returns the downcasted int128 from int256, reverting on\n overflow (when the input is less than smallest int128 or\n greater than largest int128).\n Counterpart to Solidity's `int128` operator.\n Requirements:\n - input must fit into 128 bits\n _Available since v3.1._"},"id":10397,"implemented":true,"kind":"function","modifiers":[],"name":"toInt128","nameLocation":"26110:8:44","nodeType":"FunctionDefinition","parameters":{"id":10378,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10377,"mutability":"mutable","name":"value","nameLocation":"26126:5:44","nodeType":"VariableDeclaration","scope":10397,"src":"26119:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10376,"name":"int256","nodeType":"ElementaryTypeName","src":"26119:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"26118:14:44"},"returnParameters":{"id":10381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10380,"mutability":"mutable","name":"downcasted","nameLocation":"26163:10:44","nodeType":"VariableDeclaration","scope":10397,"src":"26156:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":10379,"name":"int128","nodeType":"ElementaryTypeName","src":"26156:6:44","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"}],"src":"26155:19:44"},"scope":10771,"src":"26101:198:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10419,"nodeType":"Block","src":"26734:124:44","statements":[{"expression":{"id":10410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10405,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10403,"src":"26744:10:44","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10408,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10400,"src":"26764:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10407,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26757:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int120_$","typeString":"type(int120)"},"typeName":{"id":10406,"name":"int120","nodeType":"ElementaryTypeName","src":"26757:6:44","typeDescriptions":{}}},"id":10409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26757:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"src":"26744:26:44","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"id":10411,"nodeType":"ExpressionStatement","src":"26744:26:44"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10413,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10403,"src":"26788:10:44","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":10414,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10400,"src":"26802:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"26788:19:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203132302062697473","id":10416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26809:41:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_3c40c26bb27060cce77002ca0c426dcc1bef2d367c195ca2eb24bd8b2cc1bb09","typeString":"literal_string \"SafeCast: value doesn't fit in 120 bits\""},"value":"SafeCast: value doesn't fit in 120 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3c40c26bb27060cce77002ca0c426dcc1bef2d367c195ca2eb24bd8b2cc1bb09","typeString":"literal_string \"SafeCast: value doesn't fit in 120 bits\""}],"id":10412,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26780:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26780:71:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10418,"nodeType":"ExpressionStatement","src":"26780:71:44"}]},"documentation":{"id":10398,"nodeType":"StructuredDocumentation","src":"26305:350:44","text":" @dev Returns the downcasted int120 from int256, reverting on\n overflow (when the input is less than smallest int120 or\n greater than largest int120).\n Counterpart to Solidity's `int120` operator.\n Requirements:\n - input must fit into 120 bits\n _Available since v4.7._"},"id":10420,"implemented":true,"kind":"function","modifiers":[],"name":"toInt120","nameLocation":"26669:8:44","nodeType":"FunctionDefinition","parameters":{"id":10401,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10400,"mutability":"mutable","name":"value","nameLocation":"26685:5:44","nodeType":"VariableDeclaration","scope":10420,"src":"26678:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10399,"name":"int256","nodeType":"ElementaryTypeName","src":"26678:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"26677:14:44"},"returnParameters":{"id":10404,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10403,"mutability":"mutable","name":"downcasted","nameLocation":"26722:10:44","nodeType":"VariableDeclaration","scope":10420,"src":"26715:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"},"typeName":{"id":10402,"name":"int120","nodeType":"ElementaryTypeName","src":"26715:6:44","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"visibility":"internal"}],"src":"26714:19:44"},"scope":10771,"src":"26660:198:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10442,"nodeType":"Block","src":"27293:124:44","statements":[{"expression":{"id":10433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10428,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10426,"src":"27303:10:44","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10431,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10423,"src":"27323:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10430,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27316:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int112_$","typeString":"type(int112)"},"typeName":{"id":10429,"name":"int112","nodeType":"ElementaryTypeName","src":"27316:6:44","typeDescriptions":{}}},"id":10432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27316:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"src":"27303:26:44","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"id":10434,"nodeType":"ExpressionStatement","src":"27303:26:44"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10436,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10426,"src":"27347:10:44","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":10437,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10423,"src":"27361:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"27347:19:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203131322062697473","id":10439,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27368:41:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_45659ae152ef697531e1c1115de07c87af91ac22466c3e76b808821799776efd","typeString":"literal_string \"SafeCast: value doesn't fit in 112 bits\""},"value":"SafeCast: value doesn't fit in 112 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_45659ae152ef697531e1c1115de07c87af91ac22466c3e76b808821799776efd","typeString":"literal_string \"SafeCast: value doesn't fit in 112 bits\""}],"id":10435,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"27339:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27339:71:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10441,"nodeType":"ExpressionStatement","src":"27339:71:44"}]},"documentation":{"id":10421,"nodeType":"StructuredDocumentation","src":"26864:350:44","text":" @dev Returns the downcasted int112 from int256, reverting on\n overflow (when the input is less than smallest int112 or\n greater than largest int112).\n Counterpart to Solidity's `int112` operator.\n Requirements:\n - input must fit into 112 bits\n _Available since v4.7._"},"id":10443,"implemented":true,"kind":"function","modifiers":[],"name":"toInt112","nameLocation":"27228:8:44","nodeType":"FunctionDefinition","parameters":{"id":10424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10423,"mutability":"mutable","name":"value","nameLocation":"27244:5:44","nodeType":"VariableDeclaration","scope":10443,"src":"27237:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10422,"name":"int256","nodeType":"ElementaryTypeName","src":"27237:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"27236:14:44"},"returnParameters":{"id":10427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10426,"mutability":"mutable","name":"downcasted","nameLocation":"27281:10:44","nodeType":"VariableDeclaration","scope":10443,"src":"27274:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"},"typeName":{"id":10425,"name":"int112","nodeType":"ElementaryTypeName","src":"27274:6:44","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"visibility":"internal"}],"src":"27273:19:44"},"scope":10771,"src":"27219:198:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10465,"nodeType":"Block","src":"27852:124:44","statements":[{"expression":{"id":10456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10451,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10449,"src":"27862:10:44","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10454,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10446,"src":"27882:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10453,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27875:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int104_$","typeString":"type(int104)"},"typeName":{"id":10452,"name":"int104","nodeType":"ElementaryTypeName","src":"27875:6:44","typeDescriptions":{}}},"id":10455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27875:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"src":"27862:26:44","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"id":10457,"nodeType":"ExpressionStatement","src":"27862:26:44"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10459,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10449,"src":"27906:10:44","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":10460,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10446,"src":"27920:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"27906:19:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203130342062697473","id":10462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27927:41:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d7f3e1b7e9f9a06fded6b093c6fd1473ca0a14cc4bb683db904e803e2482981","typeString":"literal_string \"SafeCast: value doesn't fit in 104 bits\""},"value":"SafeCast: value doesn't fit in 104 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5d7f3e1b7e9f9a06fded6b093c6fd1473ca0a14cc4bb683db904e803e2482981","typeString":"literal_string \"SafeCast: value doesn't fit in 104 bits\""}],"id":10458,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"27898:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27898:71:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10464,"nodeType":"ExpressionStatement","src":"27898:71:44"}]},"documentation":{"id":10444,"nodeType":"StructuredDocumentation","src":"27423:350:44","text":" @dev Returns the downcasted int104 from int256, reverting on\n overflow (when the input is less than smallest int104 or\n greater than largest int104).\n Counterpart to Solidity's `int104` operator.\n Requirements:\n - input must fit into 104 bits\n _Available since v4.7._"},"id":10466,"implemented":true,"kind":"function","modifiers":[],"name":"toInt104","nameLocation":"27787:8:44","nodeType":"FunctionDefinition","parameters":{"id":10447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10446,"mutability":"mutable","name":"value","nameLocation":"27803:5:44","nodeType":"VariableDeclaration","scope":10466,"src":"27796:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10445,"name":"int256","nodeType":"ElementaryTypeName","src":"27796:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"27795:14:44"},"returnParameters":{"id":10450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10449,"mutability":"mutable","name":"downcasted","nameLocation":"27840:10:44","nodeType":"VariableDeclaration","scope":10466,"src":"27833:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"},"typeName":{"id":10448,"name":"int104","nodeType":"ElementaryTypeName","src":"27833:6:44","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"visibility":"internal"}],"src":"27832:19:44"},"scope":10771,"src":"27778:198:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10488,"nodeType":"Block","src":"28404:122:44","statements":[{"expression":{"id":10479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10474,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10472,"src":"28414:10:44","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10477,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10469,"src":"28433:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10476,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28427:5:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int96_$","typeString":"type(int96)"},"typeName":{"id":10475,"name":"int96","nodeType":"ElementaryTypeName","src":"28427:5:44","typeDescriptions":{}}},"id":10478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28427:12:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"src":"28414:25:44","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"id":10480,"nodeType":"ExpressionStatement","src":"28414:25:44"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10482,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10472,"src":"28457:10:44","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":10483,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10469,"src":"28471:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"28457:19:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2039362062697473","id":10485,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28478:40:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_06d20189090e973729391526269baef79c35dd621633195648e5f8309eef9e19","typeString":"literal_string \"SafeCast: value doesn't fit in 96 bits\""},"value":"SafeCast: value doesn't fit in 96 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_06d20189090e973729391526269baef79c35dd621633195648e5f8309eef9e19","typeString":"literal_string \"SafeCast: value doesn't fit in 96 bits\""}],"id":10481,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"28449:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28449:70:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10487,"nodeType":"ExpressionStatement","src":"28449:70:44"}]},"documentation":{"id":10467,"nodeType":"StructuredDocumentation","src":"27982:345:44","text":" @dev Returns the downcasted int96 from int256, reverting on\n overflow (when the input is less than smallest int96 or\n greater than largest int96).\n Counterpart to Solidity's `int96` operator.\n Requirements:\n - input must fit into 96 bits\n _Available since v4.7._"},"id":10489,"implemented":true,"kind":"function","modifiers":[],"name":"toInt96","nameLocation":"28341:7:44","nodeType":"FunctionDefinition","parameters":{"id":10470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10469,"mutability":"mutable","name":"value","nameLocation":"28356:5:44","nodeType":"VariableDeclaration","scope":10489,"src":"28349:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10468,"name":"int256","nodeType":"ElementaryTypeName","src":"28349:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"28348:14:44"},"returnParameters":{"id":10473,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10472,"mutability":"mutable","name":"downcasted","nameLocation":"28392:10:44","nodeType":"VariableDeclaration","scope":10489,"src":"28386:16:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"},"typeName":{"id":10471,"name":"int96","nodeType":"ElementaryTypeName","src":"28386:5:44","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"visibility":"internal"}],"src":"28385:18:44"},"scope":10771,"src":"28332:194:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10511,"nodeType":"Block","src":"28954:122:44","statements":[{"expression":{"id":10502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10497,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10495,"src":"28964:10:44","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10500,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10492,"src":"28983:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10499,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28977:5:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int88_$","typeString":"type(int88)"},"typeName":{"id":10498,"name":"int88","nodeType":"ElementaryTypeName","src":"28977:5:44","typeDescriptions":{}}},"id":10501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28977:12:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"src":"28964:25:44","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"id":10503,"nodeType":"ExpressionStatement","src":"28964:25:44"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10505,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10495,"src":"29007:10:44","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":10506,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10492,"src":"29021:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"29007:19:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2038382062697473","id":10508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29028:40:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_ae080bd7a76a46f0a0caf00941bc2cdf6002799ca2813a3af7295019576d715d","typeString":"literal_string \"SafeCast: value doesn't fit in 88 bits\""},"value":"SafeCast: value doesn't fit in 88 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ae080bd7a76a46f0a0caf00941bc2cdf6002799ca2813a3af7295019576d715d","typeString":"literal_string \"SafeCast: value doesn't fit in 88 bits\""}],"id":10504,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"28999:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28999:70:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10510,"nodeType":"ExpressionStatement","src":"28999:70:44"}]},"documentation":{"id":10490,"nodeType":"StructuredDocumentation","src":"28532:345:44","text":" @dev Returns the downcasted int88 from int256, reverting on\n overflow (when the input is less than smallest int88 or\n greater than largest int88).\n Counterpart to Solidity's `int88` operator.\n Requirements:\n - input must fit into 88 bits\n _Available since v4.7._"},"id":10512,"implemented":true,"kind":"function","modifiers":[],"name":"toInt88","nameLocation":"28891:7:44","nodeType":"FunctionDefinition","parameters":{"id":10493,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10492,"mutability":"mutable","name":"value","nameLocation":"28906:5:44","nodeType":"VariableDeclaration","scope":10512,"src":"28899:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10491,"name":"int256","nodeType":"ElementaryTypeName","src":"28899:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"28898:14:44"},"returnParameters":{"id":10496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10495,"mutability":"mutable","name":"downcasted","nameLocation":"28942:10:44","nodeType":"VariableDeclaration","scope":10512,"src":"28936:16:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"},"typeName":{"id":10494,"name":"int88","nodeType":"ElementaryTypeName","src":"28936:5:44","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"visibility":"internal"}],"src":"28935:18:44"},"scope":10771,"src":"28882:194:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10534,"nodeType":"Block","src":"29504:122:44","statements":[{"expression":{"id":10525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10520,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10518,"src":"29514:10:44","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10523,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10515,"src":"29533:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10522,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29527:5:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int80_$","typeString":"type(int80)"},"typeName":{"id":10521,"name":"int80","nodeType":"ElementaryTypeName","src":"29527:5:44","typeDescriptions":{}}},"id":10524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29527:12:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"src":"29514:25:44","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"id":10526,"nodeType":"ExpressionStatement","src":"29514:25:44"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10528,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10518,"src":"29557:10:44","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":10529,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10515,"src":"29571:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"29557:19:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2038302062697473","id":10531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29578:40:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_3cba87c71fade7d3cd7b673c159aab98afc040a5369691a33559d905d20ab5d1","typeString":"literal_string \"SafeCast: value doesn't fit in 80 bits\""},"value":"SafeCast: value doesn't fit in 80 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3cba87c71fade7d3cd7b673c159aab98afc040a5369691a33559d905d20ab5d1","typeString":"literal_string \"SafeCast: value doesn't fit in 80 bits\""}],"id":10527,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"29549:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29549:70:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10533,"nodeType":"ExpressionStatement","src":"29549:70:44"}]},"documentation":{"id":10513,"nodeType":"StructuredDocumentation","src":"29082:345:44","text":" @dev Returns the downcasted int80 from int256, reverting on\n overflow (when the input is less than smallest int80 or\n greater than largest int80).\n Counterpart to Solidity's `int80` operator.\n Requirements:\n - input must fit into 80 bits\n _Available since v4.7._"},"id":10535,"implemented":true,"kind":"function","modifiers":[],"name":"toInt80","nameLocation":"29441:7:44","nodeType":"FunctionDefinition","parameters":{"id":10516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10515,"mutability":"mutable","name":"value","nameLocation":"29456:5:44","nodeType":"VariableDeclaration","scope":10535,"src":"29449:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10514,"name":"int256","nodeType":"ElementaryTypeName","src":"29449:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"29448:14:44"},"returnParameters":{"id":10519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10518,"mutability":"mutable","name":"downcasted","nameLocation":"29492:10:44","nodeType":"VariableDeclaration","scope":10535,"src":"29486:16:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"},"typeName":{"id":10517,"name":"int80","nodeType":"ElementaryTypeName","src":"29486:5:44","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"visibility":"internal"}],"src":"29485:18:44"},"scope":10771,"src":"29432:194:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10557,"nodeType":"Block","src":"30054:122:44","statements":[{"expression":{"id":10548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10543,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10541,"src":"30064:10:44","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10546,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10538,"src":"30083:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10545,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30077:5:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int72_$","typeString":"type(int72)"},"typeName":{"id":10544,"name":"int72","nodeType":"ElementaryTypeName","src":"30077:5:44","typeDescriptions":{}}},"id":10547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30077:12:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"src":"30064:25:44","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"id":10549,"nodeType":"ExpressionStatement","src":"30064:25:44"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10551,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10541,"src":"30107:10:44","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":10552,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10538,"src":"30121:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"30107:19:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2037322062697473","id":10554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30128:40:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_71584237cc5250b8f417982144a947efe8f4c76feba008ff32ac480e69d60606","typeString":"literal_string \"SafeCast: value doesn't fit in 72 bits\""},"value":"SafeCast: value doesn't fit in 72 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_71584237cc5250b8f417982144a947efe8f4c76feba008ff32ac480e69d60606","typeString":"literal_string \"SafeCast: value doesn't fit in 72 bits\""}],"id":10550,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30099:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30099:70:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10556,"nodeType":"ExpressionStatement","src":"30099:70:44"}]},"documentation":{"id":10536,"nodeType":"StructuredDocumentation","src":"29632:345:44","text":" @dev Returns the downcasted int72 from int256, reverting on\n overflow (when the input is less than smallest int72 or\n greater than largest int72).\n Counterpart to Solidity's `int72` operator.\n Requirements:\n - input must fit into 72 bits\n _Available since v4.7._"},"id":10558,"implemented":true,"kind":"function","modifiers":[],"name":"toInt72","nameLocation":"29991:7:44","nodeType":"FunctionDefinition","parameters":{"id":10539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10538,"mutability":"mutable","name":"value","nameLocation":"30006:5:44","nodeType":"VariableDeclaration","scope":10558,"src":"29999:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10537,"name":"int256","nodeType":"ElementaryTypeName","src":"29999:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"29998:14:44"},"returnParameters":{"id":10542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10541,"mutability":"mutable","name":"downcasted","nameLocation":"30042:10:44","nodeType":"VariableDeclaration","scope":10558,"src":"30036:16:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"},"typeName":{"id":10540,"name":"int72","nodeType":"ElementaryTypeName","src":"30036:5:44","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"visibility":"internal"}],"src":"30035:18:44"},"scope":10771,"src":"29982:194:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10580,"nodeType":"Block","src":"30604:122:44","statements":[{"expression":{"id":10571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10566,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10564,"src":"30614:10:44","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10569,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10561,"src":"30633:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10568,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30627:5:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int64_$","typeString":"type(int64)"},"typeName":{"id":10567,"name":"int64","nodeType":"ElementaryTypeName","src":"30627:5:44","typeDescriptions":{}}},"id":10570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30627:12:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"src":"30614:25:44","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"id":10572,"nodeType":"ExpressionStatement","src":"30614:25:44"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10574,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10564,"src":"30657:10:44","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":10575,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10561,"src":"30671:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"30657:19:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2036342062697473","id":10577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30678:40:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_93ae0c6bf6ffaece591a770b1865daa9f65157e541970aa9d8dc5f89a9490939","typeString":"literal_string \"SafeCast: value doesn't fit in 64 bits\""},"value":"SafeCast: value doesn't fit in 64 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_93ae0c6bf6ffaece591a770b1865daa9f65157e541970aa9d8dc5f89a9490939","typeString":"literal_string \"SafeCast: value doesn't fit in 64 bits\""}],"id":10573,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30649:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30649:70:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10579,"nodeType":"ExpressionStatement","src":"30649:70:44"}]},"documentation":{"id":10559,"nodeType":"StructuredDocumentation","src":"30182:345:44","text":" @dev Returns the downcasted int64 from int256, reverting on\n overflow (when the input is less than smallest int64 or\n greater than largest int64).\n Counterpart to Solidity's `int64` operator.\n Requirements:\n - input must fit into 64 bits\n _Available since v3.1._"},"id":10581,"implemented":true,"kind":"function","modifiers":[],"name":"toInt64","nameLocation":"30541:7:44","nodeType":"FunctionDefinition","parameters":{"id":10562,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10561,"mutability":"mutable","name":"value","nameLocation":"30556:5:44","nodeType":"VariableDeclaration","scope":10581,"src":"30549:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10560,"name":"int256","nodeType":"ElementaryTypeName","src":"30549:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"30548:14:44"},"returnParameters":{"id":10565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10564,"mutability":"mutable","name":"downcasted","nameLocation":"30592:10:44","nodeType":"VariableDeclaration","scope":10581,"src":"30586:16:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"},"typeName":{"id":10563,"name":"int64","nodeType":"ElementaryTypeName","src":"30586:5:44","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"visibility":"internal"}],"src":"30585:18:44"},"scope":10771,"src":"30532:194:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10603,"nodeType":"Block","src":"31154:122:44","statements":[{"expression":{"id":10594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10589,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10587,"src":"31164:10:44","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10592,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10584,"src":"31183:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10591,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31177:5:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int56_$","typeString":"type(int56)"},"typeName":{"id":10590,"name":"int56","nodeType":"ElementaryTypeName","src":"31177:5:44","typeDescriptions":{}}},"id":10593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31177:12:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"src":"31164:25:44","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"id":10595,"nodeType":"ExpressionStatement","src":"31164:25:44"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10597,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10587,"src":"31207:10:44","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":10598,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10584,"src":"31221:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"31207:19:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2035362062697473","id":10600,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31228:40:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_656ad93b5ff6665bfe05d97d51fad7c02ad79e6c43bef066c042a6900f450bc5","typeString":"literal_string \"SafeCast: value doesn't fit in 56 bits\""},"value":"SafeCast: value doesn't fit in 56 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_656ad93b5ff6665bfe05d97d51fad7c02ad79e6c43bef066c042a6900f450bc5","typeString":"literal_string \"SafeCast: value doesn't fit in 56 bits\""}],"id":10596,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"31199:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31199:70:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10602,"nodeType":"ExpressionStatement","src":"31199:70:44"}]},"documentation":{"id":10582,"nodeType":"StructuredDocumentation","src":"30732:345:44","text":" @dev Returns the downcasted int56 from int256, reverting on\n overflow (when the input is less than smallest int56 or\n greater than largest int56).\n Counterpart to Solidity's `int56` operator.\n Requirements:\n - input must fit into 56 bits\n _Available since v4.7._"},"id":10604,"implemented":true,"kind":"function","modifiers":[],"name":"toInt56","nameLocation":"31091:7:44","nodeType":"FunctionDefinition","parameters":{"id":10585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10584,"mutability":"mutable","name":"value","nameLocation":"31106:5:44","nodeType":"VariableDeclaration","scope":10604,"src":"31099:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10583,"name":"int256","nodeType":"ElementaryTypeName","src":"31099:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"31098:14:44"},"returnParameters":{"id":10588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10587,"mutability":"mutable","name":"downcasted","nameLocation":"31142:10:44","nodeType":"VariableDeclaration","scope":10604,"src":"31136:16:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"},"typeName":{"id":10586,"name":"int56","nodeType":"ElementaryTypeName","src":"31136:5:44","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"visibility":"internal"}],"src":"31135:18:44"},"scope":10771,"src":"31082:194:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10626,"nodeType":"Block","src":"31704:122:44","statements":[{"expression":{"id":10617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10612,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10610,"src":"31714:10:44","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10615,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10607,"src":"31733:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10614,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31727:5:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int48_$","typeString":"type(int48)"},"typeName":{"id":10613,"name":"int48","nodeType":"ElementaryTypeName","src":"31727:5:44","typeDescriptions":{}}},"id":10616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31727:12:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"src":"31714:25:44","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"id":10618,"nodeType":"ExpressionStatement","src":"31714:25:44"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10620,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10610,"src":"31757:10:44","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":10621,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10607,"src":"31771:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"31757:19:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2034382062697473","id":10623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31778:40:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_599034f9324dd4e988c6cea5a00a30f53147fec1b01559682f18cd840028f495","typeString":"literal_string \"SafeCast: value doesn't fit in 48 bits\""},"value":"SafeCast: value doesn't fit in 48 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_599034f9324dd4e988c6cea5a00a30f53147fec1b01559682f18cd840028f495","typeString":"literal_string \"SafeCast: value doesn't fit in 48 bits\""}],"id":10619,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"31749:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31749:70:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10625,"nodeType":"ExpressionStatement","src":"31749:70:44"}]},"documentation":{"id":10605,"nodeType":"StructuredDocumentation","src":"31282:345:44","text":" @dev Returns the downcasted int48 from int256, reverting on\n overflow (when the input is less than smallest int48 or\n greater than largest int48).\n Counterpart to Solidity's `int48` operator.\n Requirements:\n - input must fit into 48 bits\n _Available since v4.7._"},"id":10627,"implemented":true,"kind":"function","modifiers":[],"name":"toInt48","nameLocation":"31641:7:44","nodeType":"FunctionDefinition","parameters":{"id":10608,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10607,"mutability":"mutable","name":"value","nameLocation":"31656:5:44","nodeType":"VariableDeclaration","scope":10627,"src":"31649:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10606,"name":"int256","nodeType":"ElementaryTypeName","src":"31649:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"31648:14:44"},"returnParameters":{"id":10611,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10610,"mutability":"mutable","name":"downcasted","nameLocation":"31692:10:44","nodeType":"VariableDeclaration","scope":10627,"src":"31686:16:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"},"typeName":{"id":10609,"name":"int48","nodeType":"ElementaryTypeName","src":"31686:5:44","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"visibility":"internal"}],"src":"31685:18:44"},"scope":10771,"src":"31632:194:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10649,"nodeType":"Block","src":"32254:122:44","statements":[{"expression":{"id":10640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10635,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10633,"src":"32264:10:44","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10638,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10630,"src":"32283:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10637,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32277:5:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int40_$","typeString":"type(int40)"},"typeName":{"id":10636,"name":"int40","nodeType":"ElementaryTypeName","src":"32277:5:44","typeDescriptions":{}}},"id":10639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32277:12:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"src":"32264:25:44","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"id":10641,"nodeType":"ExpressionStatement","src":"32264:25:44"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10643,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10633,"src":"32307:10:44","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":10644,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10630,"src":"32321:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"32307:19:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2034302062697473","id":10646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32328:40:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_b23559c58b98a5d3ed7016699c7171ac8defa5a1d180f9a9ffa60468a5701d37","typeString":"literal_string \"SafeCast: value doesn't fit in 40 bits\""},"value":"SafeCast: value doesn't fit in 40 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b23559c58b98a5d3ed7016699c7171ac8defa5a1d180f9a9ffa60468a5701d37","typeString":"literal_string \"SafeCast: value doesn't fit in 40 bits\""}],"id":10642,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"32299:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32299:70:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10648,"nodeType":"ExpressionStatement","src":"32299:70:44"}]},"documentation":{"id":10628,"nodeType":"StructuredDocumentation","src":"31832:345:44","text":" @dev Returns the downcasted int40 from int256, reverting on\n overflow (when the input is less than smallest int40 or\n greater than largest int40).\n Counterpart to Solidity's `int40` operator.\n Requirements:\n - input must fit into 40 bits\n _Available since v4.7._"},"id":10650,"implemented":true,"kind":"function","modifiers":[],"name":"toInt40","nameLocation":"32191:7:44","nodeType":"FunctionDefinition","parameters":{"id":10631,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10630,"mutability":"mutable","name":"value","nameLocation":"32206:5:44","nodeType":"VariableDeclaration","scope":10650,"src":"32199:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10629,"name":"int256","nodeType":"ElementaryTypeName","src":"32199:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"32198:14:44"},"returnParameters":{"id":10634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10633,"mutability":"mutable","name":"downcasted","nameLocation":"32242:10:44","nodeType":"VariableDeclaration","scope":10650,"src":"32236:16:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"},"typeName":{"id":10632,"name":"int40","nodeType":"ElementaryTypeName","src":"32236:5:44","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"visibility":"internal"}],"src":"32235:18:44"},"scope":10771,"src":"32182:194:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10672,"nodeType":"Block","src":"32804:122:44","statements":[{"expression":{"id":10663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10658,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10656,"src":"32814:10:44","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10661,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10653,"src":"32833:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10660,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32827:5:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int32_$","typeString":"type(int32)"},"typeName":{"id":10659,"name":"int32","nodeType":"ElementaryTypeName","src":"32827:5:44","typeDescriptions":{}}},"id":10662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32827:12:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"src":"32814:25:44","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"id":10664,"nodeType":"ExpressionStatement","src":"32814:25:44"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10666,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10656,"src":"32857:10:44","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":10667,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10653,"src":"32871:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"32857:19:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2033322062697473","id":10669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32878:40:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19","typeString":"literal_string \"SafeCast: value doesn't fit in 32 bits\""},"value":"SafeCast: value doesn't fit in 32 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19","typeString":"literal_string \"SafeCast: value doesn't fit in 32 bits\""}],"id":10665,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"32849:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32849:70:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10671,"nodeType":"ExpressionStatement","src":"32849:70:44"}]},"documentation":{"id":10651,"nodeType":"StructuredDocumentation","src":"32382:345:44","text":" @dev Returns the downcasted int32 from int256, reverting on\n overflow (when the input is less than smallest int32 or\n greater than largest int32).\n Counterpart to Solidity's `int32` operator.\n Requirements:\n - input must fit into 32 bits\n _Available since v3.1._"},"id":10673,"implemented":true,"kind":"function","modifiers":[],"name":"toInt32","nameLocation":"32741:7:44","nodeType":"FunctionDefinition","parameters":{"id":10654,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10653,"mutability":"mutable","name":"value","nameLocation":"32756:5:44","nodeType":"VariableDeclaration","scope":10673,"src":"32749:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10652,"name":"int256","nodeType":"ElementaryTypeName","src":"32749:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"32748:14:44"},"returnParameters":{"id":10657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10656,"mutability":"mutable","name":"downcasted","nameLocation":"32792:10:44","nodeType":"VariableDeclaration","scope":10673,"src":"32786:16:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"},"typeName":{"id":10655,"name":"int32","nodeType":"ElementaryTypeName","src":"32786:5:44","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"visibility":"internal"}],"src":"32785:18:44"},"scope":10771,"src":"32732:194:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10695,"nodeType":"Block","src":"33354:122:44","statements":[{"expression":{"id":10686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10681,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10679,"src":"33364:10:44","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10684,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10676,"src":"33383:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10683,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"33377:5:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int24_$","typeString":"type(int24)"},"typeName":{"id":10682,"name":"int24","nodeType":"ElementaryTypeName","src":"33377:5:44","typeDescriptions":{}}},"id":10685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33377:12:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"src":"33364:25:44","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"id":10687,"nodeType":"ExpressionStatement","src":"33364:25:44"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10689,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10679,"src":"33407:10:44","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":10690,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10676,"src":"33421:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"33407:19:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2032342062697473","id":10692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33428:40:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_f68b65aaf4574c34e9b9d1442d19636c6608b8c4dbd9331c7245f7915c8b2f55","typeString":"literal_string \"SafeCast: value doesn't fit in 24 bits\""},"value":"SafeCast: value doesn't fit in 24 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f68b65aaf4574c34e9b9d1442d19636c6608b8c4dbd9331c7245f7915c8b2f55","typeString":"literal_string \"SafeCast: value doesn't fit in 24 bits\""}],"id":10688,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"33399:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33399:70:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10694,"nodeType":"ExpressionStatement","src":"33399:70:44"}]},"documentation":{"id":10674,"nodeType":"StructuredDocumentation","src":"32932:345:44","text":" @dev Returns the downcasted int24 from int256, reverting on\n overflow (when the input is less than smallest int24 or\n greater than largest int24).\n Counterpart to Solidity's `int24` operator.\n Requirements:\n - input must fit into 24 bits\n _Available since v4.7._"},"id":10696,"implemented":true,"kind":"function","modifiers":[],"name":"toInt24","nameLocation":"33291:7:44","nodeType":"FunctionDefinition","parameters":{"id":10677,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10676,"mutability":"mutable","name":"value","nameLocation":"33306:5:44","nodeType":"VariableDeclaration","scope":10696,"src":"33299:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10675,"name":"int256","nodeType":"ElementaryTypeName","src":"33299:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"33298:14:44"},"returnParameters":{"id":10680,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10679,"mutability":"mutable","name":"downcasted","nameLocation":"33342:10:44","nodeType":"VariableDeclaration","scope":10696,"src":"33336:16:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":10678,"name":"int24","nodeType":"ElementaryTypeName","src":"33336:5:44","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"}],"src":"33335:18:44"},"scope":10771,"src":"33282:194:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10718,"nodeType":"Block","src":"33904:122:44","statements":[{"expression":{"id":10709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10704,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10702,"src":"33914:10:44","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10707,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10699,"src":"33933:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10706,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"33927:5:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int16_$","typeString":"type(int16)"},"typeName":{"id":10705,"name":"int16","nodeType":"ElementaryTypeName","src":"33927:5:44","typeDescriptions":{}}},"id":10708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33927:12:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"src":"33914:25:44","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"id":10710,"nodeType":"ExpressionStatement","src":"33914:25:44"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10712,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10702,"src":"33957:10:44","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":10713,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10699,"src":"33971:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"33957:19:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2031362062697473","id":10715,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33978:40:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_13d3a66f9e0e5c92bbe7743bcd3bdb4695009d5f3a96e5ff49718d715b484033","typeString":"literal_string \"SafeCast: value doesn't fit in 16 bits\""},"value":"SafeCast: value doesn't fit in 16 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_13d3a66f9e0e5c92bbe7743bcd3bdb4695009d5f3a96e5ff49718d715b484033","typeString":"literal_string \"SafeCast: value doesn't fit in 16 bits\""}],"id":10711,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"33949:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33949:70:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10717,"nodeType":"ExpressionStatement","src":"33949:70:44"}]},"documentation":{"id":10697,"nodeType":"StructuredDocumentation","src":"33482:345:44","text":" @dev Returns the downcasted int16 from int256, reverting on\n overflow (when the input is less than smallest int16 or\n greater than largest int16).\n Counterpart to Solidity's `int16` operator.\n Requirements:\n - input must fit into 16 bits\n _Available since v3.1._"},"id":10719,"implemented":true,"kind":"function","modifiers":[],"name":"toInt16","nameLocation":"33841:7:44","nodeType":"FunctionDefinition","parameters":{"id":10700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10699,"mutability":"mutable","name":"value","nameLocation":"33856:5:44","nodeType":"VariableDeclaration","scope":10719,"src":"33849:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10698,"name":"int256","nodeType":"ElementaryTypeName","src":"33849:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"33848:14:44"},"returnParameters":{"id":10703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10702,"mutability":"mutable","name":"downcasted","nameLocation":"33892:10:44","nodeType":"VariableDeclaration","scope":10719,"src":"33886:16:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"},"typeName":{"id":10701,"name":"int16","nodeType":"ElementaryTypeName","src":"33886:5:44","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"visibility":"internal"}],"src":"33885:18:44"},"scope":10771,"src":"33832:194:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10741,"nodeType":"Block","src":"34447:120:44","statements":[{"expression":{"id":10732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10727,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10725,"src":"34457:10:44","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10730,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10722,"src":"34475:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10729,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34470:4:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int8_$","typeString":"type(int8)"},"typeName":{"id":10728,"name":"int8","nodeType":"ElementaryTypeName","src":"34470:4:44","typeDescriptions":{}}},"id":10731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34470:11:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"src":"34457:24:44","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"id":10733,"nodeType":"ExpressionStatement","src":"34457:24:44"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10735,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10725,"src":"34499:10:44","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":10736,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10722,"src":"34513:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"34499:19:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e20382062697473","id":10738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34520:39:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_2610961ba53259047cd57c60366c5ad0b8aabf5eb4132487619b736715a740d1","typeString":"literal_string \"SafeCast: value doesn't fit in 8 bits\""},"value":"SafeCast: value doesn't fit in 8 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2610961ba53259047cd57c60366c5ad0b8aabf5eb4132487619b736715a740d1","typeString":"literal_string \"SafeCast: value doesn't fit in 8 bits\""}],"id":10734,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"34491:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34491:69:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10740,"nodeType":"ExpressionStatement","src":"34491:69:44"}]},"documentation":{"id":10720,"nodeType":"StructuredDocumentation","src":"34032:340:44","text":" @dev Returns the downcasted int8 from int256, reverting on\n overflow (when the input is less than smallest int8 or\n greater than largest int8).\n Counterpart to Solidity's `int8` operator.\n Requirements:\n - input must fit into 8 bits\n _Available since v3.1._"},"id":10742,"implemented":true,"kind":"function","modifiers":[],"name":"toInt8","nameLocation":"34386:6:44","nodeType":"FunctionDefinition","parameters":{"id":10723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10722,"mutability":"mutable","name":"value","nameLocation":"34400:5:44","nodeType":"VariableDeclaration","scope":10742,"src":"34393:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10721,"name":"int256","nodeType":"ElementaryTypeName","src":"34393:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"34392:14:44"},"returnParameters":{"id":10726,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10725,"mutability":"mutable","name":"downcasted","nameLocation":"34435:10:44","nodeType":"VariableDeclaration","scope":10742,"src":"34430:15:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":10724,"name":"int8","nodeType":"ElementaryTypeName","src":"34430:4:44","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"visibility":"internal"}],"src":"34429:17:44"},"scope":10771,"src":"34377:190:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10769,"nodeType":"Block","src":"34845:233:44","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10751,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10745,"src":"34962:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[{"expression":{"arguments":[{"id":10756,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34984:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":10755,"name":"int256","nodeType":"ElementaryTypeName","src":"34984:6:44","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"}],"id":10754,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"34979:4:44","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34979:12:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int256","typeString":"type(int256)"}},"id":10758,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34992:3:44","memberName":"max","nodeType":"MemberAccess","src":"34979:16:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10753,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34971:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10752,"name":"uint256","nodeType":"ElementaryTypeName","src":"34971:7:44","typeDescriptions":{}}},"id":10759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34971:25:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"34962:34:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e20616e20696e74323536","id":10761,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34998:42:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_d70dcf21692b3c91b4c5fbb89ed57f464aa42efbe5b0ea96c4acb7c080144227","typeString":"literal_string \"SafeCast: value doesn't fit in an int256\""},"value":"SafeCast: value doesn't fit in an int256"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d70dcf21692b3c91b4c5fbb89ed57f464aa42efbe5b0ea96c4acb7c080144227","typeString":"literal_string \"SafeCast: value doesn't fit in an int256\""}],"id":10750,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"34954:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34954:87:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10763,"nodeType":"ExpressionStatement","src":"34954:87:44"},{"expression":{"arguments":[{"id":10766,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10745,"src":"35065:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10765,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35058:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":10764,"name":"int256","nodeType":"ElementaryTypeName","src":"35058:6:44","typeDescriptions":{}}},"id":10767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35058:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":10749,"id":10768,"nodeType":"Return","src":"35051:20:44"}]},"documentation":{"id":10743,"nodeType":"StructuredDocumentation","src":"34573:203:44","text":" @dev Converts an unsigned uint256 into a signed int256.\n Requirements:\n - input must be less than or equal to maxInt256.\n _Available since v3.0._"},"id":10770,"implemented":true,"kind":"function","modifiers":[],"name":"toInt256","nameLocation":"34790:8:44","nodeType":"FunctionDefinition","parameters":{"id":10746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10745,"mutability":"mutable","name":"value","nameLocation":"34807:5:44","nodeType":"VariableDeclaration","scope":10770,"src":"34799:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10744,"name":"uint256","nodeType":"ElementaryTypeName","src":"34799:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34798:15:44"},"returnParameters":{"id":10749,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10748,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10770,"src":"34837:6:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10747,"name":"int256","nodeType":"ElementaryTypeName","src":"34837:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"34836:8:44"},"scope":10771,"src":"34781:297:44","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":10772,"src":"927:34153:44","usedErrors":[],"usedEvents":[]}],"src":"192:34889:44"},"id":44},"@openzeppelin/contracts/utils/math/SignedMath.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/SignedMath.sol","exportedSymbols":{"SignedMath":[10876]},"id":10877,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10773,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"109:23:45"},{"abstract":false,"baseContracts":[],"canonicalName":"SignedMath","contractDependencies":[],"contractKind":"library","documentation":{"id":10774,"nodeType":"StructuredDocumentation","src":"134:80:45","text":" @dev Standard signed math utilities missing in the Solidity language."},"fullyImplemented":true,"id":10876,"linearizedBaseContracts":[10876],"name":"SignedMath","nameLocation":"223:10:45","nodeType":"ContractDefinition","nodes":[{"body":{"id":10791,"nodeType":"Block","src":"375:37:45","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10784,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10777,"src":"392:1:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":10785,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10779,"src":"396:1:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"392:5:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":10788,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10779,"src":"404:1:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":10789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"392:13:45","trueExpression":{"id":10787,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10777,"src":"400:1:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":10783,"id":10790,"nodeType":"Return","src":"385:20:45"}]},"documentation":{"id":10775,"nodeType":"StructuredDocumentation","src":"240:66:45","text":" @dev Returns the largest of two signed numbers."},"id":10792,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"320:3:45","nodeType":"FunctionDefinition","parameters":{"id":10780,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10777,"mutability":"mutable","name":"a","nameLocation":"331:1:45","nodeType":"VariableDeclaration","scope":10792,"src":"324:8:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10776,"name":"int256","nodeType":"ElementaryTypeName","src":"324:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":10779,"mutability":"mutable","name":"b","nameLocation":"341:1:45","nodeType":"VariableDeclaration","scope":10792,"src":"334:8:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10778,"name":"int256","nodeType":"ElementaryTypeName","src":"334:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"323:20:45"},"returnParameters":{"id":10783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10782,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10792,"src":"367:6:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10781,"name":"int256","nodeType":"ElementaryTypeName","src":"367:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"366:8:45"},"scope":10876,"src":"311:101:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10809,"nodeType":"Block","src":"554:37:45","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10802,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10795,"src":"571:1:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":10803,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10797,"src":"575:1:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"571:5:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":10806,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10797,"src":"583:1:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":10807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"571:13:45","trueExpression":{"id":10805,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10795,"src":"579:1:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":10801,"id":10808,"nodeType":"Return","src":"564:20:45"}]},"documentation":{"id":10793,"nodeType":"StructuredDocumentation","src":"418:67:45","text":" @dev Returns the smallest of two signed numbers."},"id":10810,"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"499:3:45","nodeType":"FunctionDefinition","parameters":{"id":10798,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10795,"mutability":"mutable","name":"a","nameLocation":"510:1:45","nodeType":"VariableDeclaration","scope":10810,"src":"503:8:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10794,"name":"int256","nodeType":"ElementaryTypeName","src":"503:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":10797,"mutability":"mutable","name":"b","nameLocation":"520:1:45","nodeType":"VariableDeclaration","scope":10810,"src":"513:8:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10796,"name":"int256","nodeType":"ElementaryTypeName","src":"513:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"502:20:45"},"returnParameters":{"id":10801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10800,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10810,"src":"546:6:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10799,"name":"int256","nodeType":"ElementaryTypeName","src":"546:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"545:8:45"},"scope":10876,"src":"490:101:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10853,"nodeType":"Block","src":"796:162:45","statements":[{"assignments":[10821],"declarations":[{"constant":false,"id":10821,"mutability":"mutable","name":"x","nameLocation":"865:1:45","nodeType":"VariableDeclaration","scope":10853,"src":"858:8:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10820,"name":"int256","nodeType":"ElementaryTypeName","src":"858:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":10834,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10822,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10813,"src":"870:1:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":10823,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10815,"src":"874:1:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"870:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":10825,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"869:7:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10826,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10813,"src":"881:1:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":10827,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10815,"src":"885:1:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"881:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":10829,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"880:7:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":10830,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"891:1:45","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"880:12:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":10832,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"879:14:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"869:24:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"858:35:45"},{"expression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10835,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10821,"src":"910:1:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":10840,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10821,"src":"930:1:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10839,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"922:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10838,"name":"uint256","nodeType":"ElementaryTypeName","src":"922:7:45","typeDescriptions":{}}},"id":10841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"922:10:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"323535","id":10842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"936:3:45","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"922:17:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10837,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"915:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":10836,"name":"int256","nodeType":"ElementaryTypeName","src":"915:6:45","typeDescriptions":{}}},"id":10844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"915:25:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10845,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10813,"src":"944:1:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":10846,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10815,"src":"948:1:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"944:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":10848,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"943:7:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"915:35:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":10850,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"914:37:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"910:41:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":10819,"id":10852,"nodeType":"Return","src":"903:48:45"}]},"documentation":{"id":10811,"nodeType":"StructuredDocumentation","src":"597:126:45","text":" @dev Returns the average of two signed numbers without overflow.\n The result is rounded towards zero."},"id":10854,"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"737:7:45","nodeType":"FunctionDefinition","parameters":{"id":10816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10813,"mutability":"mutable","name":"a","nameLocation":"752:1:45","nodeType":"VariableDeclaration","scope":10854,"src":"745:8:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10812,"name":"int256","nodeType":"ElementaryTypeName","src":"745:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":10815,"mutability":"mutable","name":"b","nameLocation":"762:1:45","nodeType":"VariableDeclaration","scope":10854,"src":"755:8:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10814,"name":"int256","nodeType":"ElementaryTypeName","src":"755:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"744:20:45"},"returnParameters":{"id":10819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10818,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10854,"src":"788:6:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10817,"name":"int256","nodeType":"ElementaryTypeName","src":"788:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"787:8:45"},"scope":10876,"src":"728:230:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10874,"nodeType":"Block","src":"1102:158:45","statements":[{"id":10873,"nodeType":"UncheckedBlock","src":"1112:142:45","statements":[{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10864,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10857,"src":"1227:1:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":10865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1232:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1227:6:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":10869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"1240:2:45","subExpression":{"id":10868,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10857,"src":"1241:1:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":10870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1227:15:45","trueExpression":{"id":10867,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10857,"src":"1236:1:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10863,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1219:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10862,"name":"uint256","nodeType":"ElementaryTypeName","src":"1219:7:45","typeDescriptions":{}}},"id":10871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1219:24:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":10861,"id":10872,"nodeType":"Return","src":"1212:31:45"}]}]},"documentation":{"id":10855,"nodeType":"StructuredDocumentation","src":"964:78:45","text":" @dev Returns the absolute unsigned value of a signed value."},"id":10875,"implemented":true,"kind":"function","modifiers":[],"name":"abs","nameLocation":"1056:3:45","nodeType":"FunctionDefinition","parameters":{"id":10858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10857,"mutability":"mutable","name":"n","nameLocation":"1067:1:45","nodeType":"VariableDeclaration","scope":10875,"src":"1060:8:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10856,"name":"int256","nodeType":"ElementaryTypeName","src":"1060:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1059:10:45"},"returnParameters":{"id":10861,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10860,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10875,"src":"1093:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10859,"name":"uint256","nodeType":"ElementaryTypeName","src":"1093:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1092:9:45"},"scope":10876,"src":"1047:213:45","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":10877,"src":"215:1047:45","usedErrors":[],"usedEvents":[]}],"src":"109:1154:45"},"id":45},"@venusprotocol/isolated-pools/contracts/InterestRateModel.sol":{"ast":{"absolutePath":"@venusprotocol/isolated-pools/contracts/InterestRateModel.sol","exportedSymbols":{"InterestRateModel":[10919]},"id":10920,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":10878,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:46"},{"abstract":true,"baseContracts":[],"canonicalName":"InterestRateModel","contractDependencies":[],"contractKind":"contract","documentation":{"id":10879,"nodeType":"StructuredDocumentation","src":"66:76:46","text":" @title Compound's InterestRateModel Interface\n @author Compound"},"fullyImplemented":false,"id":10919,"linearizedBaseContracts":[10919],"name":"InterestRateModel","nameLocation":"161:17:46","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":10880,"nodeType":"StructuredDocumentation","src":"185:463:46","text":" @notice Calculates the current borrow interest rate per slot (block or second)\n @param cash The total amount of cash the market has\n @param borrows The total amount of borrows the market has outstanding\n @param reserves The total amount of reserves the market has\n @param badDebt The amount of badDebt in the market\n @return The borrow rate percentage per slot (block or second) as a mantissa (scaled by EXP_SCALE)"},"functionSelector":"073b8a74","id":10893,"implemented":false,"kind":"function","modifiers":[],"name":"getBorrowRate","nameLocation":"662:13:46","nodeType":"FunctionDefinition","parameters":{"id":10889,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10882,"mutability":"mutable","name":"cash","nameLocation":"693:4:46","nodeType":"VariableDeclaration","scope":10893,"src":"685:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10881,"name":"uint256","nodeType":"ElementaryTypeName","src":"685:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10884,"mutability":"mutable","name":"borrows","nameLocation":"715:7:46","nodeType":"VariableDeclaration","scope":10893,"src":"707:15:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10883,"name":"uint256","nodeType":"ElementaryTypeName","src":"707:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10886,"mutability":"mutable","name":"reserves","nameLocation":"740:8:46","nodeType":"VariableDeclaration","scope":10893,"src":"732:16:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10885,"name":"uint256","nodeType":"ElementaryTypeName","src":"732:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10888,"mutability":"mutable","name":"badDebt","nameLocation":"766:7:46","nodeType":"VariableDeclaration","scope":10893,"src":"758:15:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10887,"name":"uint256","nodeType":"ElementaryTypeName","src":"758:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"675:104:46"},"returnParameters":{"id":10892,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10891,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10893,"src":"811:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10890,"name":"uint256","nodeType":"ElementaryTypeName","src":"811:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"810:9:46"},"scope":10919,"src":"653:167:46","stateMutability":"view","virtual":true,"visibility":"external"},{"documentation":{"id":10894,"nodeType":"StructuredDocumentation","src":"826:541:46","text":" @notice Calculates the current supply interest rate per slot (block or second)\n @param cash The total amount of cash the market has\n @param borrows The total amount of borrows the market has outstanding\n @param reserves The total amount of reserves the market has\n @param reserveFactorMantissa The current reserve factor the market has\n @param badDebt The amount of badDebt in the market\n @return The supply rate percentage per slot (block or second) as a mantissa (scaled by EXP_SCALE)"},"functionSelector":"0cde8d1c","id":10909,"implemented":false,"kind":"function","modifiers":[],"name":"getSupplyRate","nameLocation":"1381:13:46","nodeType":"FunctionDefinition","parameters":{"id":10905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10896,"mutability":"mutable","name":"cash","nameLocation":"1412:4:46","nodeType":"VariableDeclaration","scope":10909,"src":"1404:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10895,"name":"uint256","nodeType":"ElementaryTypeName","src":"1404:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10898,"mutability":"mutable","name":"borrows","nameLocation":"1434:7:46","nodeType":"VariableDeclaration","scope":10909,"src":"1426:15:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10897,"name":"uint256","nodeType":"ElementaryTypeName","src":"1426:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10900,"mutability":"mutable","name":"reserves","nameLocation":"1459:8:46","nodeType":"VariableDeclaration","scope":10909,"src":"1451:16:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10899,"name":"uint256","nodeType":"ElementaryTypeName","src":"1451:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10902,"mutability":"mutable","name":"reserveFactorMantissa","nameLocation":"1485:21:46","nodeType":"VariableDeclaration","scope":10909,"src":"1477:29:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10901,"name":"uint256","nodeType":"ElementaryTypeName","src":"1477:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10904,"mutability":"mutable","name":"badDebt","nameLocation":"1524:7:46","nodeType":"VariableDeclaration","scope":10909,"src":"1516:15:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10903,"name":"uint256","nodeType":"ElementaryTypeName","src":"1516:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1394:143:46"},"returnParameters":{"id":10908,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10907,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10909,"src":"1569:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10906,"name":"uint256","nodeType":"ElementaryTypeName","src":"1569:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1568:9:46"},"scope":10919,"src":"1372:206:46","stateMutability":"view","virtual":true,"visibility":"external"},{"body":{"id":10917,"nodeType":"Block","src":"1780:28:46","statements":[{"expression":{"hexValue":"74727565","id":10915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1797:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":10914,"id":10916,"nodeType":"Return","src":"1790:11:46"}]},"documentation":{"id":10910,"nodeType":"StructuredDocumentation","src":"1584:123:46","text":" @notice Indicator that this is an InterestRateModel contract (for inspection)\n @return Always true"},"functionSelector":"2191f92a","id":10918,"implemented":true,"kind":"function","modifiers":[],"name":"isInterestRateModel","nameLocation":"1721:19:46","nodeType":"FunctionDefinition","parameters":{"id":10911,"nodeType":"ParameterList","parameters":[],"src":"1740:2:46"},"returnParameters":{"id":10914,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10913,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10918,"src":"1774:4:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10912,"name":"bool","nodeType":"ElementaryTypeName","src":"1774:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1773:6:46"},"scope":10919,"src":"1712:96:46","stateMutability":"pure","virtual":true,"visibility":"external"}],"scope":10920,"src":"143:1667:46","usedErrors":[],"usedEvents":[]}],"src":"41:1770:46"},"id":46},"@venusprotocol/solidity-utilities/contracts/validators.sol":{"ast":{"absolutePath":"@venusprotocol/solidity-utilities/contracts/validators.sol","exportedSymbols":{"ZeroAddressNotAllowed":[10924],"ZeroValueNotAllowed":[10927],"ensureNonzeroAddress":[10945],"ensureNonzeroValue":[10960]},"id":10961,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":10921,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:47"},{"documentation":{"id":10922,"nodeType":"StructuredDocumentation","src":"66:85:47","text":"@notice Thrown if the supplied address is a zero address where it is not allowed"},"errorSelector":"8579befe","id":10924,"name":"ZeroAddressNotAllowed","nameLocation":"157:21:47","nodeType":"ErrorDefinition","parameters":{"id":10923,"nodeType":"ParameterList","parameters":[],"src":"178:2:47"},"src":"151:30:47"},{"documentation":{"id":10925,"nodeType":"StructuredDocumentation","src":"183:70:47","text":"@notice Thrown if the supplied value is 0 where it is not allowed"},"errorSelector":"9cf8540c","id":10927,"name":"ZeroValueNotAllowed","nameLocation":"259:19:47","nodeType":"ErrorDefinition","parameters":{"id":10926,"nodeType":"ParameterList","parameters":[],"src":"278:2:47"},"src":"253:28:47"},{"body":{"id":10944,"nodeType":"Block","src":"538:83:47","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":10938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10933,"name":"address_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10930,"src":"548:8:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":10936,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"568:1:47","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":10935,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"560:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10934,"name":"address","nodeType":"ElementaryTypeName","src":"560:7:47","typeDescriptions":{}}},"id":10937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"560:10:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"548:22:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10943,"nodeType":"IfStatement","src":"544:75:47","trueBody":{"id":10942,"nodeType":"Block","src":"572:47:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":10939,"name":"ZeroAddressNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10924,"src":"589:21:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":10940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"589:23:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10941,"nodeType":"RevertStatement","src":"582:30:47"}]}}]},"documentation":{"id":10928,"nodeType":"StructuredDocumentation","src":"283:202:47","text":"@notice Checks if the provided address is nonzero, reverts otherwise\n @param address_ Address to check\n @custom:error ZeroAddressNotAllowed is thrown if the provided address is a zero address"},"id":10945,"implemented":true,"kind":"freeFunction","modifiers":[],"name":"ensureNonzeroAddress","nameLocation":"494:20:47","nodeType":"FunctionDefinition","parameters":{"id":10931,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10930,"mutability":"mutable","name":"address_","nameLocation":"523:8:47","nodeType":"VariableDeclaration","scope":10945,"src":"515:16:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10929,"name":"address","nodeType":"ElementaryTypeName","src":"515:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"514:18:47"},"returnParameters":{"id":10932,"nodeType":"ParameterList","parameters":[],"src":"538:0:47"},"scope":10961,"src":"485:136:47","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10959,"nodeType":"Block","src":"851:70:47","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10951,"name":"value_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10948,"src":"861:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":10952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"871:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"861:11:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10958,"nodeType":"IfStatement","src":"857:62:47","trueBody":{"id":10957,"nodeType":"Block","src":"874:45:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":10954,"name":"ZeroValueNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10927,"src":"891:19:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":10955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"891:21:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10956,"nodeType":"RevertStatement","src":"884:28:47"}]}}]},"documentation":{"id":10946,"nodeType":"StructuredDocumentation","src":"623:179:47","text":"@notice Checks if the provided value is nonzero, reverts otherwise\n @param value_ Value to check\n @custom:error ZeroValueNotAllowed is thrown if the provided value is 0"},"id":10960,"implemented":true,"kind":"freeFunction","modifiers":[],"name":"ensureNonzeroValue","nameLocation":"811:18:47","nodeType":"FunctionDefinition","parameters":{"id":10949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10948,"mutability":"mutable","name":"value_","nameLocation":"838:6:47","nodeType":"VariableDeclaration","scope":10960,"src":"830:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10947,"name":"uint256","nodeType":"ElementaryTypeName","src":"830:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"829:16:47"},"returnParameters":{"id":10950,"nodeType":"ParameterList","parameters":[],"src":"851:0:47"},"scope":10961,"src":"802:119:47","stateMutability":"pure","virtual":false,"visibility":"internal"}],"src":"41:881:47"},"id":47},"@venusprotocol/venus-protocol/contracts/InterestRateModels/InterestRateModelV8.sol":{"ast":{"absolutePath":"@venusprotocol/venus-protocol/contracts/InterestRateModels/InterestRateModelV8.sol","exportedSymbols":{"InterestRateModelV8":[10994]},"id":10995,"nodeType":"SourceUnit","nodes":[{"id":10962,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"0:23:48"},{"abstract":true,"baseContracts":[],"canonicalName":"InterestRateModelV8","contractDependencies":[],"contractKind":"contract","documentation":{"id":10963,"nodeType":"StructuredDocumentation","src":"25:72:48","text":" @title Venus's InterestRateModelV8 Interface\n @author Venus"},"fullyImplemented":false,"id":10994,"linearizedBaseContracts":[10994],"name":"InterestRateModelV8","nameLocation":"116:19:48","nodeType":"ContractDefinition","nodes":[{"constant":true,"documentation":{"id":10964,"nodeType":"StructuredDocumentation","src":"142:81:48","text":"@notice Indicator that this is an InterestRateModel contract (for inspection)"},"functionSelector":"2191f92a","id":10967,"mutability":"constant","name":"isInterestRateModel","nameLocation":"249:19:48","nodeType":"VariableDeclaration","scope":10994,"src":"228:47:48","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10965,"name":"bool","nodeType":"ElementaryTypeName","src":"228:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"74727565","id":10966,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"271:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"visibility":"public"},{"documentation":{"id":10968,"nodeType":"StructuredDocumentation","src":"282:363:48","text":" @notice Calculates the current borrow interest rate per block\n @param cash The total amount of cash the market has\n @param borrows The total amount of borrows the market has outstanding\n @param reserves The total amnount of reserves the market has\n @return The borrow rate per block (as a percentage, and scaled by 1e18)"},"functionSelector":"15f24053","id":10979,"implemented":false,"kind":"function","modifiers":[],"name":"getBorrowRate","nameLocation":"659:13:48","nodeType":"FunctionDefinition","parameters":{"id":10975,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10970,"mutability":"mutable","name":"cash","nameLocation":"681:4:48","nodeType":"VariableDeclaration","scope":10979,"src":"673:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10969,"name":"uint256","nodeType":"ElementaryTypeName","src":"673:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10972,"mutability":"mutable","name":"borrows","nameLocation":"695:7:48","nodeType":"VariableDeclaration","scope":10979,"src":"687:15:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10971,"name":"uint256","nodeType":"ElementaryTypeName","src":"687:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10974,"mutability":"mutable","name":"reserves","nameLocation":"712:8:48","nodeType":"VariableDeclaration","scope":10979,"src":"704:16:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10973,"name":"uint256","nodeType":"ElementaryTypeName","src":"704:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"672:49:48"},"returnParameters":{"id":10978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10977,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10979,"src":"753:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10976,"name":"uint256","nodeType":"ElementaryTypeName","src":"753:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"752:9:48"},"scope":10994,"src":"650:112:48","stateMutability":"view","virtual":true,"visibility":"external"},{"documentation":{"id":10980,"nodeType":"StructuredDocumentation","src":"768:441:48","text":" @notice Calculates the current supply interest rate per block\n @param cash The total amount of cash the market has\n @param borrows The total amount of borrows the market has outstanding\n @param reserves The total amnount of reserves the market has\n @param reserveFactorMantissa The current reserve factor the market has\n @return The supply rate per block (as a percentage, and scaled by 1e18)"},"functionSelector":"b8168816","id":10993,"implemented":false,"kind":"function","modifiers":[],"name":"getSupplyRate","nameLocation":"1223:13:48","nodeType":"FunctionDefinition","parameters":{"id":10989,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10982,"mutability":"mutable","name":"cash","nameLocation":"1254:4:48","nodeType":"VariableDeclaration","scope":10993,"src":"1246:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10981,"name":"uint256","nodeType":"ElementaryTypeName","src":"1246:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10984,"mutability":"mutable","name":"borrows","nameLocation":"1276:7:48","nodeType":"VariableDeclaration","scope":10993,"src":"1268:15:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10983,"name":"uint256","nodeType":"ElementaryTypeName","src":"1268:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10986,"mutability":"mutable","name":"reserves","nameLocation":"1301:8:48","nodeType":"VariableDeclaration","scope":10993,"src":"1293:16:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10985,"name":"uint256","nodeType":"ElementaryTypeName","src":"1293:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10988,"mutability":"mutable","name":"reserveFactorMantissa","nameLocation":"1327:21:48","nodeType":"VariableDeclaration","scope":10993,"src":"1319:29:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10987,"name":"uint256","nodeType":"ElementaryTypeName","src":"1319:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1236:118:48"},"returnParameters":{"id":10992,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10991,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10993,"src":"1386:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10990,"name":"uint256","nodeType":"ElementaryTypeName","src":"1386:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1385:9:48"},"scope":10994,"src":"1214:181:48","stateMutability":"view","virtual":true,"visibility":"external"}],"scope":10995,"src":"98:1299:48","usedErrors":[],"usedEvents":[]}],"src":"0:1398:48"},"id":48},"contracts/Cross-chain/BaseOmnichainControllerDest.sol":{"ast":{"absolutePath":"contracts/Cross-chain/BaseOmnichainControllerDest.sol","exportedSymbols":{"BaseOmnichainControllerDest":[11128],"NonblockingLzApp":[4108],"Pausable":[7184],"ensureNonzeroAddress":[10945]},"id":11129,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":10996,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"43:23:49"},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol","file":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol","id":10998,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11129,"sourceUnit":4109,"src":"68:105:49","symbolAliases":[{"foreign":{"id":10997,"name":"NonblockingLzApp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4108,"src":"77:16:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/security/Pausable.sol","file":"@openzeppelin/contracts/security/Pausable.sol","id":11000,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11129,"sourceUnit":7185,"src":"174:73:49","symbolAliases":[{"foreign":{"id":10999,"name":"Pausable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7184,"src":"183:8:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/validators.sol","file":"@venusprotocol/solidity-utilities/contracts/validators.sol","id":11002,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11129,"sourceUnit":10961,"src":"248:98:49","symbolAliases":[{"foreign":{"id":11001,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10945,"src":"257:20:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":11004,"name":"NonblockingLzApp","nameLocations":["715:16:49"],"nodeType":"IdentifierPath","referencedDeclaration":4108,"src":"715:16:49"},"id":11005,"nodeType":"InheritanceSpecifier","src":"715:16:49"},{"baseName":{"id":11006,"name":"Pausable","nameLocations":["733:8:49"],"nodeType":"IdentifierPath","referencedDeclaration":7184,"src":"733:8:49"},"id":11007,"nodeType":"InheritanceSpecifier","src":"733:8:49"}],"canonicalName":"BaseOmnichainControllerDest","contractDependencies":[],"contractKind":"contract","documentation":{"id":11003,"nodeType":"StructuredDocumentation","src":"348:316:49","text":" @title BaseOmnichainControllerDest\n @author Venus\n @dev This contract is the base for the Omnichain controller destination contract\n It provides functionality related to daily command limits and pausability\n @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion"},"fullyImplemented":false,"id":11128,"linearizedBaseContracts":[11128,7184,4108,3867,4298,4267,7076,8099],"name":"BaseOmnichainControllerDest","nameLocation":"684:27:49","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":11008,"nodeType":"StructuredDocumentation","src":"748:88:49","text":" @notice Maximum daily limit for receiving commands from Binance chain"},"functionSelector":"0435bb56","id":11010,"mutability":"mutable","name":"maxDailyReceiveLimit","nameLocation":"856:20:49","nodeType":"VariableDeclaration","scope":11128,"src":"841:35:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11009,"name":"uint256","nodeType":"ElementaryTypeName","src":"841:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":11011,"nodeType":"StructuredDocumentation","src":"883:100:49","text":" @notice Total received commands within the last 24-hour window from Binance chain"},"functionSelector":"70f6ad9a","id":11013,"mutability":"mutable","name":"last24HourCommandsReceived","nameLocation":"1003:26:49","nodeType":"VariableDeclaration","scope":11128,"src":"988:41:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11012,"name":"uint256","nodeType":"ElementaryTypeName","src":"988:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":11014,"nodeType":"StructuredDocumentation","src":"1036:92:49","text":" @notice Timestamp when the last 24-hour window started from Binance chain"},"functionSelector":"876919e8","id":11016,"mutability":"mutable","name":"last24HourReceiveWindowStart","nameLocation":"1148:28:49","nodeType":"VariableDeclaration","scope":11128,"src":"1133:43:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11015,"name":"uint256","nodeType":"ElementaryTypeName","src":"1133:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"anonymous":false,"documentation":{"id":11017,"nodeType":"StructuredDocumentation","src":"1183:116:49","text":" @notice Emitted when the maximum daily limit for receiving command from Binance chain is modified"},"eventSelector":"0a653bb1a57e62cfd43f0dc557c7223e8b58896238b5f9b300ef646d37b82d1b","id":11023,"name":"SetMaxDailyReceiveLimit","nameLocation":"1310:23:49","nodeType":"EventDefinition","parameters":{"id":11022,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11019,"indexed":false,"mutability":"mutable","name":"oldMaxLimit","nameLocation":"1342:11:49","nodeType":"VariableDeclaration","scope":11023,"src":"1334:19:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11018,"name":"uint256","nodeType":"ElementaryTypeName","src":"1334:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11021,"indexed":false,"mutability":"mutable","name":"newMaxLimit","nameLocation":"1363:11:49","nodeType":"VariableDeclaration","scope":11023,"src":"1355:19:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11020,"name":"uint256","nodeType":"ElementaryTypeName","src":"1355:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1333:42:49"},"src":"1304:72:49"},{"body":{"id":11035,"nodeType":"Block","src":"1441:48:49","statements":[{"expression":{"arguments":[{"id":11032,"name":"endpoint_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11025,"src":"1472:9:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11031,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10945,"src":"1451:20:49","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":11033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1451:31:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11034,"nodeType":"ExpressionStatement","src":"1451:31:49"}]},"id":11036,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":11028,"name":"endpoint_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11025,"src":"1430:9:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":11029,"kind":"baseConstructorSpecifier","modifierName":{"id":11027,"name":"NonblockingLzApp","nameLocations":["1413:16:49"],"nodeType":"IdentifierPath","referencedDeclaration":4108,"src":"1413:16:49"},"nodeType":"ModifierInvocation","src":"1413:27:49"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":11026,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11025,"mutability":"mutable","name":"endpoint_","nameLocation":"1402:9:49","nodeType":"VariableDeclaration","scope":11036,"src":"1394:17:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11024,"name":"address","nodeType":"ElementaryTypeName","src":"1394:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1393:19:49"},"returnParameters":{"id":11030,"nodeType":"ParameterList","parameters":[],"src":"1441:0:49"},"scope":11128,"src":"1382:107:49","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11053,"nodeType":"Block","src":"1793:114:49","statements":[{"eventCall":{"arguments":[{"id":11045,"name":"maxDailyReceiveLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11010,"src":"1832:20:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11046,"name":"limit_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11039,"src":"1854:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11044,"name":"SetMaxDailyReceiveLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11023,"src":"1808:23:49","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":11047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1808:53:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11048,"nodeType":"EmitStatement","src":"1803:58:49"},{"expression":{"id":11051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11049,"name":"maxDailyReceiveLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11010,"src":"1871:20:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11050,"name":"limit_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11039,"src":"1894:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1871:29:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11052,"nodeType":"ExpressionStatement","src":"1871:29:49"}]},"documentation":{"id":11037,"nodeType":"StructuredDocumentation","src":"1495:225:49","text":" @notice Sets the maximum daily limit for receiving commands\n @param limit_ Number of commands\n @custom:access Only Owner\n @custom:event Emits SetMaxDailyReceiveLimit with old and new limit"},"functionSelector":"9493ffad","id":11054,"implemented":true,"kind":"function","modifiers":[{"id":11042,"kind":"modifierInvocation","modifierName":{"id":11041,"name":"onlyOwner","nameLocations":["1783:9:49"],"nodeType":"IdentifierPath","referencedDeclaration":6995,"src":"1783:9:49"},"nodeType":"ModifierInvocation","src":"1783:9:49"}],"name":"setMaxDailyReceiveLimit","nameLocation":"1734:23:49","nodeType":"FunctionDefinition","parameters":{"id":11040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11039,"mutability":"mutable","name":"limit_","nameLocation":"1766:6:49","nodeType":"VariableDeclaration","scope":11054,"src":"1758:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11038,"name":"uint256","nodeType":"ElementaryTypeName","src":"1758:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1757:16:49"},"returnParameters":{"id":11043,"nodeType":"ParameterList","parameters":[],"src":"1793:0:49"},"scope":11128,"src":"1725:182:49","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11063,"nodeType":"Block","src":"2057:25:49","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":11060,"name":"_pause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7167,"src":"2067:6:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":11061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2067:8:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11062,"nodeType":"ExpressionStatement","src":"2067:8:49"}]},"documentation":{"id":11055,"nodeType":"StructuredDocumentation","src":"1913:103:49","text":" @notice Triggers the paused state of the controller\n @custom:access Only owner"},"functionSelector":"8456cb59","id":11064,"implemented":true,"kind":"function","modifiers":[{"id":11058,"kind":"modifierInvocation","modifierName":{"id":11057,"name":"onlyOwner","nameLocations":["2047:9:49"],"nodeType":"IdentifierPath","referencedDeclaration":6995,"src":"2047:9:49"},"nodeType":"ModifierInvocation","src":"2047:9:49"}],"name":"pause","nameLocation":"2030:5:49","nodeType":"FunctionDefinition","parameters":{"id":11056,"nodeType":"ParameterList","parameters":[],"src":"2035:2:49"},"returnParameters":{"id":11059,"nodeType":"ParameterList","parameters":[],"src":"2057:0:49"},"scope":11128,"src":"2021:61:49","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11073,"nodeType":"Block","src":"2234:27:49","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":11070,"name":"_unpause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7183,"src":"2244:8:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":11071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2244:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11072,"nodeType":"ExpressionStatement","src":"2244:10:49"}]},"documentation":{"id":11065,"nodeType":"StructuredDocumentation","src":"2088:103:49","text":" @notice Triggers the resume state of the controller\n @custom:access Only owner"},"functionSelector":"3f4ba83a","id":11074,"implemented":true,"kind":"function","modifiers":[{"id":11068,"kind":"modifierInvocation","modifierName":{"id":11067,"name":"onlyOwner","nameLocations":["2224:9:49"],"nodeType":"IdentifierPath","referencedDeclaration":6995,"src":"2224:9:49"},"nodeType":"ModifierInvocation","src":"2224:9:49"}],"name":"unpause","nameLocation":"2205:7:49","nodeType":"FunctionDefinition","parameters":{"id":11066,"nodeType":"ParameterList","parameters":[],"src":"2212:2:49"},"returnParameters":{"id":11069,"nodeType":"ParameterList","parameters":[],"src":"2234:0:49"},"scope":11128,"src":"2196:65:49","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[7032],"body":{"id":11079,"nodeType":"Block","src":"2412:2:49","statements":[]},"documentation":{"id":11075,"nodeType":"StructuredDocumentation","src":"2267:95:49","text":" @notice Empty implementation of renounce ownership to avoid any mishappening"},"functionSelector":"715018a6","id":11080,"implemented":true,"kind":"function","modifiers":[],"name":"renounceOwnership","nameLocation":"2376:17:49","nodeType":"FunctionDefinition","overrides":{"id":11077,"nodeType":"OverrideSpecifier","overrides":[],"src":"2403:8:49"},"parameters":{"id":11076,"nodeType":"ParameterList","parameters":[],"src":"2393:2:49"},"returnParameters":{"id":11078,"nodeType":"ParameterList","parameters":[],"src":"2412:0:49"},"scope":11128,"src":"2367:47:49","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":11126,"nodeType":"Block","src":"2613:818:49","statements":[{"assignments":[11087],"declarations":[{"constant":false,"id":11087,"mutability":"mutable","name":"currentBlockTimestamp","nameLocation":"2631:21:49","nodeType":"VariableDeclaration","scope":11126,"src":"2623:29:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11086,"name":"uint256","nodeType":"ElementaryTypeName","src":"2623:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11090,"initialValue":{"expression":{"id":11088,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2655:5:49","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":11089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2661:9:49","memberName":"timestamp","nodeType":"MemberAccess","src":"2655:15:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2623:47:49"},{"assignments":[11092],"declarations":[{"constant":false,"id":11092,"mutability":"mutable","name":"receivedInWindow","nameLocation":"2756:16:49","nodeType":"VariableDeclaration","scope":11126,"src":"2748:24:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11091,"name":"uint256","nodeType":"ElementaryTypeName","src":"2748:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11094,"initialValue":{"id":11093,"name":"last24HourCommandsReceived","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11013,"src":"2775:26:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2748:53:49"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11095,"name":"currentBlockTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11087,"src":"2897:21:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11096,"name":"last24HourReceiveWindowStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11016,"src":"2921:28:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2897:52:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":11098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2952:6:49","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_86400_by_1","typeString":"int_const 86400"},"value":"1"},"src":"2897:61:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":11113,"nodeType":"Block","src":"3089:58:49","statements":[{"expression":{"id":11111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11109,"name":"receivedInWindow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11092,"src":"3103:16:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":11110,"name":"noOfCommands_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11083,"src":"3123:13:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3103:33:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11112,"nodeType":"ExpressionStatement","src":"3103:33:49"}]},"id":11114,"nodeType":"IfStatement","src":"2893:254:49","trueBody":{"id":11108,"nodeType":"Block","src":"2960:123:49","statements":[{"expression":{"id":11102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11100,"name":"receivedInWindow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11092,"src":"2974:16:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11101,"name":"noOfCommands_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11083,"src":"2993:13:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2974:32:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11103,"nodeType":"ExpressionStatement","src":"2974:32:49"},{"expression":{"id":11106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11104,"name":"last24HourReceiveWindowStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11016,"src":"3020:28:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11105,"name":"currentBlockTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11087,"src":"3051:21:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3020:52:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11107,"nodeType":"ExpressionStatement","src":"3020:52:49"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11116,"name":"receivedInWindow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11092,"src":"3230:16:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":11117,"name":"maxDailyReceiveLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11010,"src":"3250:20:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3230:40:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4461696c79205472616e73616374696f6e204c696d6974204578636565646564","id":11119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3272:34:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_7f1ab6dca0c040aececbb4df1c67ab1f13c05f495e8356647158d9e65e565e3b","typeString":"literal_string \"Daily Transaction Limit Exceeded\""},"value":"Daily Transaction Limit Exceeded"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7f1ab6dca0c040aececbb4df1c67ab1f13c05f495e8356647158d9e65e565e3b","typeString":"literal_string \"Daily Transaction Limit Exceeded\""}],"id":11115,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3222:7:49","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3222:85:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11121,"nodeType":"ExpressionStatement","src":"3222:85:49"},{"expression":{"id":11124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11122,"name":"last24HourCommandsReceived","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11013,"src":"3379:26:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11123,"name":"receivedInWindow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11092,"src":"3408:16:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3379:45:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11125,"nodeType":"ExpressionStatement","src":"3379:45:49"}]},"documentation":{"id":11081,"nodeType":"StructuredDocumentation","src":"2420:126:49","text":" @notice Check eligibility to receive commands\n @param noOfCommands_ Number of commands to be received"},"id":11127,"implemented":true,"kind":"function","modifiers":[],"name":"_isEligibleToReceive","nameLocation":"2560:20:49","nodeType":"FunctionDefinition","parameters":{"id":11084,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11083,"mutability":"mutable","name":"noOfCommands_","nameLocation":"2589:13:49","nodeType":"VariableDeclaration","scope":11127,"src":"2581:21:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11082,"name":"uint256","nodeType":"ElementaryTypeName","src":"2581:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2580:23:49"},"returnParameters":{"id":11085,"nodeType":"ParameterList","parameters":[],"src":"2613:0:49"},"scope":11128,"src":"2551:880:49","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":11129,"src":"666:2767:49","usedErrors":[10924],"usedEvents":[3367,3373,3379,3387,3905,3915,6977,7087,7092,11023]}],"src":"43:3391:49"},"id":49},"contracts/Cross-chain/BaseOmnichainControllerSrc.sol":{"ast":{"absolutePath":"contracts/Cross-chain/BaseOmnichainControllerSrc.sol","exportedSymbols":{"BaseOmnichainControllerSrc":[11381],"IAccessControlManagerV8":[13903],"Ownable":[7076],"Pausable":[7184],"ensureNonzeroAddress":[10945]},"id":11382,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":11130,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"42:23:50"},{"absolutePath":"@openzeppelin/contracts/security/Pausable.sol","file":"@openzeppelin/contracts/security/Pausable.sol","id":11132,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11382,"sourceUnit":7185,"src":"67:73:50","symbolAliases":[{"foreign":{"id":11131,"name":"Pausable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7184,"src":"76:8:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":11134,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11382,"sourceUnit":7077,"src":"141:69:50","symbolAliases":[{"foreign":{"id":11133,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7076,"src":"150:7:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/validators.sol","file":"@venusprotocol/solidity-utilities/contracts/validators.sol","id":11136,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11382,"sourceUnit":10961,"src":"211:98:50","symbolAliases":[{"foreign":{"id":11135,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10945,"src":"220:20:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/Governance/IAccessControlManagerV8.sol","file":"./../Governance/IAccessControlManagerV8.sol","id":11138,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11382,"sourceUnit":13904,"src":"310:86:50","symbolAliases":[{"foreign":{"id":11137,"name":"IAccessControlManagerV8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13903,"src":"319:23:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":11140,"name":"Ownable","nameLocations":["735:7:50"],"nodeType":"IdentifierPath","referencedDeclaration":7076,"src":"735:7:50"},"id":11141,"nodeType":"InheritanceSpecifier","src":"735:7:50"},{"baseName":{"id":11142,"name":"Pausable","nameLocations":["744:8:50"],"nodeType":"IdentifierPath","referencedDeclaration":7184,"src":"744:8:50"},"id":11143,"nodeType":"InheritanceSpecifier","src":"744:8:50"}],"canonicalName":"BaseOmnichainControllerSrc","contractDependencies":[],"contractKind":"contract","documentation":{"id":11139,"nodeType":"StructuredDocumentation","src":"398:296:50","text":" @title BaseOmnichainControllerSrc\n @dev This contract is the base for the Omnichain controller source contracts.\n It provides functionality related to daily command limits and pausability.\n @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion"},"fullyImplemented":true,"id":11381,"linearizedBaseContracts":[11381,7184,7076,8099],"name":"BaseOmnichainControllerSrc","nameLocation":"705:26:50","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":11144,"nodeType":"StructuredDocumentation","src":"759:72:50","text":" @notice ACM (Access Control Manager) contract address"},"functionSelector":"b4a0bdf3","id":11146,"mutability":"mutable","name":"accessControlManager","nameLocation":"851:20:50","nodeType":"VariableDeclaration","scope":11381,"src":"836:35:50","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11145,"name":"address","nodeType":"ElementaryTypeName","src":"836:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"documentation":{"id":11147,"nodeType":"StructuredDocumentation","src":"878:80:50","text":" @notice Maximum daily limit for commands from the local chain"},"functionSelector":"4f4ba0f4","id":11151,"mutability":"mutable","name":"chainIdToMaxDailyLimit","nameLocation":"997:22:50","nodeType":"VariableDeclaration","scope":11381,"src":"963:56:50","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"},"typeName":{"id":11150,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":11148,"name":"uint16","nodeType":"ElementaryTypeName","src":"971:6:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"963:26:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":11149,"name":"uint256","nodeType":"ElementaryTypeName","src":"981:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"documentation":{"id":11152,"nodeType":"StructuredDocumentation","src":"1026:105:50","text":" @notice Total commands transferred within the last 24-hour window from the local chain"},"functionSelector":"1183a3b2","id":11156,"mutability":"mutable","name":"chainIdToLast24HourCommandsSent","nameLocation":"1170:31:50","nodeType":"VariableDeclaration","scope":11381,"src":"1136:65:50","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"},"typeName":{"id":11155,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":11153,"name":"uint16","nodeType":"ElementaryTypeName","src":"1144:6:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"1136:26:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":11154,"name":"uint256","nodeType":"ElementaryTypeName","src":"1154:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"documentation":{"id":11157,"nodeType":"StructuredDocumentation","src":"1208:94:50","text":" @notice Timestamp when the last 24-hour window started from the local chain"},"functionSelector":"93a61d6c","id":11161,"mutability":"mutable","name":"chainIdToLast24HourWindowStart","nameLocation":"1341:30:50","nodeType":"VariableDeclaration","scope":11381,"src":"1307:64:50","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"},"typeName":{"id":11160,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":11158,"name":"uint16","nodeType":"ElementaryTypeName","src":"1315:6:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"1307:26:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":11159,"name":"uint256","nodeType":"ElementaryTypeName","src":"1325:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"documentation":{"id":11162,"nodeType":"StructuredDocumentation","src":"1377:99:50","text":" @notice Timestamp when the last proposal sent from the local chain to dest chain"},"functionSelector":"e0354d7f","id":11166,"mutability":"mutable","name":"chainIdToLastProposalSentTimestamp","nameLocation":"1515:34:50","nodeType":"VariableDeclaration","scope":11381,"src":"1481:68:50","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"},"typeName":{"id":11165,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":11163,"name":"uint16","nodeType":"ElementaryTypeName","src":"1489:6:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"1481:26:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":11164,"name":"uint256","nodeType":"ElementaryTypeName","src":"1499:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"anonymous":false,"documentation":{"id":11167,"nodeType":"StructuredDocumentation","src":"1556:108:50","text":" @notice Emitted when the maximum daily limit of commands from the local chain is modified"},"eventSelector":"4dd31065e259d5284e44d1f9265710da72eafcf78dc925e3881189fc3b71f693","id":11175,"name":"SetMaxDailyLimit","nameLocation":"1675:16:50","nodeType":"EventDefinition","parameters":{"id":11174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11169,"indexed":true,"mutability":"mutable","name":"chainId","nameLocation":"1707:7:50","nodeType":"VariableDeclaration","scope":11175,"src":"1692:22:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11168,"name":"uint16","nodeType":"ElementaryTypeName","src":"1692:6:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":11171,"indexed":false,"mutability":"mutable","name":"oldMaxLimit","nameLocation":"1724:11:50","nodeType":"VariableDeclaration","scope":11175,"src":"1716:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11170,"name":"uint256","nodeType":"ElementaryTypeName","src":"1716:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11173,"indexed":false,"mutability":"mutable","name":"newMaxLimit","nameLocation":"1745:11:50","nodeType":"VariableDeclaration","scope":11175,"src":"1737:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11172,"name":"uint256","nodeType":"ElementaryTypeName","src":"1737:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1691:66:50"},"src":"1669:89:50"},{"anonymous":false,"documentation":{"id":11176,"nodeType":"StructuredDocumentation","src":"1764:69:50","text":" @notice Emitted when the address of ACM is updated"},"eventSelector":"66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa0","id":11182,"name":"NewAccessControlManager","nameLocation":"1844:23:50","nodeType":"EventDefinition","parameters":{"id":11181,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11178,"indexed":true,"mutability":"mutable","name":"oldAccessControlManager","nameLocation":"1884:23:50","nodeType":"VariableDeclaration","scope":11182,"src":"1868:39:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11177,"name":"address","nodeType":"ElementaryTypeName","src":"1868:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11180,"indexed":true,"mutability":"mutable","name":"newAccessControlManager","nameLocation":"1925:23:50","nodeType":"VariableDeclaration","scope":11182,"src":"1909:39:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11179,"name":"address","nodeType":"ElementaryTypeName","src":"1909:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1867:82:50"},"src":"1838:112:50"},{"body":{"id":11195,"nodeType":"Block","src":"1999:114:50","statements":[{"expression":{"arguments":[{"id":11188,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11184,"src":"2030:21:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11187,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10945,"src":"2009:20:50","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":11189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2009:43:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11190,"nodeType":"ExpressionStatement","src":"2009:43:50"},{"expression":{"id":11193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11191,"name":"accessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11146,"src":"2062:20:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11192,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11184,"src":"2085:21:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2062:44:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11194,"nodeType":"ExpressionStatement","src":"2062:44:50"}]},"id":11196,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":11185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11184,"mutability":"mutable","name":"accessControlManager_","nameLocation":"1976:21:50","nodeType":"VariableDeclaration","scope":11196,"src":"1968:29:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11183,"name":"address","nodeType":"ElementaryTypeName","src":"1968:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1967:31:50"},"returnParameters":{"id":11186,"nodeType":"ParameterList","parameters":[],"src":"1999:0:50"},"scope":11381,"src":"1956:157:50","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":11222,"nodeType":"Block","src":"2506:201:50","statements":[{"expression":{"arguments":[{"hexValue":"7365744d61784461696c794c696d69742875696e7431362c75696e7432353629","id":11205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2531:34:50","typeDescriptions":{"typeIdentifier":"t_stringliteral_2488eec8bda362f4b194125e74dc1ba51b47c87eea325ace3d09d029d71f6a2d","typeString":"literal_string \"setMaxDailyLimit(uint16,uint256)\""},"value":"setMaxDailyLimit(uint16,uint256)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2488eec8bda362f4b194125e74dc1ba51b47c87eea325ace3d09d029d71f6a2d","typeString":"literal_string \"setMaxDailyLimit(uint16,uint256)\""}],"id":11204,"name":"_ensureAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11380,"src":"2516:14:50","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":11206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2516:50:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11207,"nodeType":"ExpressionStatement","src":"2516:50:50"},{"eventCall":{"arguments":[{"id":11209,"name":"chainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11199,"src":"2598:8:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"baseExpression":{"id":11210,"name":"chainIdToMaxDailyLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11151,"src":"2608:22:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":11212,"indexExpression":{"id":11211,"name":"chainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11199,"src":"2631:8:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2608:32:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11213,"name":"limit_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11201,"src":"2642:6:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11208,"name":"SetMaxDailyLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11175,"src":"2581:16:50","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint16,uint256,uint256)"}},"id":11214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2581:68:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11215,"nodeType":"EmitStatement","src":"2576:73:50"},{"expression":{"id":11220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":11216,"name":"chainIdToMaxDailyLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11151,"src":"2659:22:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":11218,"indexExpression":{"id":11217,"name":"chainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11199,"src":"2682:8:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2659:32:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11219,"name":"limit_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11201,"src":"2694:6:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2659:41:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11221,"nodeType":"ExpressionStatement","src":"2659:41:50"}]},"documentation":{"id":11197,"nodeType":"StructuredDocumentation","src":"2119:314:50","text":" @notice Sets the limit of daily (24 Hour) command amount\n @param chainId_ Destination chain id\n @param limit_ Number of commands\n @custom:access Controlled by AccessControlManager\n @custom:event Emits SetMaxDailyLimit with old and new limit and its corresponding chain id"},"functionSelector":"2488eec8","id":11223,"implemented":true,"kind":"function","modifiers":[],"name":"setMaxDailyLimit","nameLocation":"2447:16:50","nodeType":"FunctionDefinition","parameters":{"id":11202,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11199,"mutability":"mutable","name":"chainId_","nameLocation":"2471:8:50","nodeType":"VariableDeclaration","scope":11223,"src":"2464:15:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11198,"name":"uint16","nodeType":"ElementaryTypeName","src":"2464:6:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":11201,"mutability":"mutable","name":"limit_","nameLocation":"2489:6:50","nodeType":"VariableDeclaration","scope":11223,"src":"2481:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11200,"name":"uint256","nodeType":"ElementaryTypeName","src":"2481:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2463:33:50"},"returnParameters":{"id":11203,"nodeType":"ParameterList","parameters":[],"src":"2506:0:50"},"scope":11381,"src":"2438:269:50","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11234,"nodeType":"Block","src":"2871:60:50","statements":[{"expression":{"arguments":[{"hexValue":"70617573652829","id":11228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2896:9:50","typeDescriptions":{"typeIdentifier":"t_stringliteral_8456cb591a934d53f6ccc6332123a165a1f3562907bf11330d847a29ca49eb89","typeString":"literal_string \"pause()\""},"value":"pause()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8456cb591a934d53f6ccc6332123a165a1f3562907bf11330d847a29ca49eb89","typeString":"literal_string \"pause()\""}],"id":11227,"name":"_ensureAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11380,"src":"2881:14:50","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":11229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2881:25:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11230,"nodeType":"ExpressionStatement","src":"2881:25:50"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":11231,"name":"_pause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7167,"src":"2916:6:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":11232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2916:8:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11233,"nodeType":"ExpressionStatement","src":"2916:8:50"}]},"documentation":{"id":11224,"nodeType":"StructuredDocumentation","src":"2713:127:50","text":" @notice Triggers the paused state of the controller\n @custom:access Controlled by AccessControlManager"},"functionSelector":"8456cb59","id":11235,"implemented":true,"kind":"function","modifiers":[],"name":"pause","nameLocation":"2854:5:50","nodeType":"FunctionDefinition","parameters":{"id":11225,"nodeType":"ParameterList","parameters":[],"src":"2859:2:50"},"returnParameters":{"id":11226,"nodeType":"ParameterList","parameters":[],"src":"2871:0:50"},"scope":11381,"src":"2845:86:50","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11246,"nodeType":"Block","src":"3097:64:50","statements":[{"expression":{"arguments":[{"hexValue":"756e70617573652829","id":11240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3122:11:50","typeDescriptions":{"typeIdentifier":"t_stringliteral_3f4ba83af89dc9793996d9e56b8abe6dc88cd97c9c2bb23027806e9c1ffd54dc","typeString":"literal_string \"unpause()\""},"value":"unpause()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3f4ba83af89dc9793996d9e56b8abe6dc88cd97c9c2bb23027806e9c1ffd54dc","typeString":"literal_string \"unpause()\""}],"id":11239,"name":"_ensureAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11380,"src":"3107:14:50","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":11241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3107:27:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11242,"nodeType":"ExpressionStatement","src":"3107:27:50"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":11243,"name":"_unpause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7183,"src":"3144:8:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":11244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3144:10:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11245,"nodeType":"ExpressionStatement","src":"3144:10:50"}]},"documentation":{"id":11236,"nodeType":"StructuredDocumentation","src":"2937:127:50","text":" @notice Triggers the resume state of the controller\n @custom:access Controlled by AccessControlManager"},"functionSelector":"3f4ba83a","id":11247,"implemented":true,"kind":"function","modifiers":[],"name":"unpause","nameLocation":"3078:7:50","nodeType":"FunctionDefinition","parameters":{"id":11237,"nodeType":"ParameterList","parameters":[],"src":"3085:2:50"},"returnParameters":{"id":11238,"nodeType":"ParameterList","parameters":[],"src":"3097:0:50"},"scope":11381,"src":"3069:92:50","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11268,"nodeType":"Block","src":"3546:197:50","statements":[{"expression":{"arguments":[{"id":11256,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11250,"src":"3577:21:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11255,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10945,"src":"3556:20:50","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":11257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3556:43:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11258,"nodeType":"ExpressionStatement","src":"3556:43:50"},{"eventCall":{"arguments":[{"id":11260,"name":"accessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11146,"src":"3638:20:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11261,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11250,"src":"3660:21:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":11259,"name":"NewAccessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11182,"src":"3614:23:50","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":11262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3614:68:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11263,"nodeType":"EmitStatement","src":"3609:73:50"},{"expression":{"id":11266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11264,"name":"accessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11146,"src":"3692:20:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11265,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11250,"src":"3715:21:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3692:44:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11267,"nodeType":"ExpressionStatement","src":"3692:44:50"}]},"documentation":{"id":11248,"nodeType":"StructuredDocumentation","src":"3167:291:50","text":" @notice Sets the address of Access Control Manager (ACM)\n @param accessControlManager_ The new address of the Access Control Manager\n @custom:access Only owner\n @custom:event Emits NewAccessControlManager with old and new access control manager addresses"},"functionSelector":"0e32cb86","id":11269,"implemented":true,"kind":"function","modifiers":[{"id":11253,"kind":"modifierInvocation","modifierName":{"id":11252,"name":"onlyOwner","nameLocations":["3536:9:50"],"nodeType":"IdentifierPath","referencedDeclaration":6995,"src":"3536:9:50"},"nodeType":"ModifierInvocation","src":"3536:9:50"}],"name":"setAccessControlManager","nameLocation":"3472:23:50","nodeType":"FunctionDefinition","parameters":{"id":11251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11250,"mutability":"mutable","name":"accessControlManager_","nameLocation":"3504:21:50","nodeType":"VariableDeclaration","scope":11269,"src":"3496:29:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11249,"name":"address","nodeType":"ElementaryTypeName","src":"3496:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3495:31:50"},"returnParameters":{"id":11254,"nodeType":"ParameterList","parameters":[],"src":"3546:0:50"},"scope":11381,"src":"3463:280:50","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[7032],"body":{"id":11274,"nodeType":"Block","src":"3888:2:50","statements":[]},"documentation":{"id":11270,"nodeType":"StructuredDocumentation","src":"3749:89:50","text":" @notice Empty implementation of renounce ownership to avoid any mishap"},"functionSelector":"715018a6","id":11275,"implemented":true,"kind":"function","modifiers":[],"name":"renounceOwnership","nameLocation":"3852:17:50","nodeType":"FunctionDefinition","overrides":{"id":11272,"nodeType":"OverrideSpecifier","overrides":[],"src":"3879:8:50"},"parameters":{"id":11271,"nodeType":"ParameterList","parameters":[],"src":"3869:2:50"},"returnParameters":{"id":11273,"nodeType":"ParameterList","parameters":[],"src":"3888:0:50"},"scope":11381,"src":"3843:47:50","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":11360,"nodeType":"Block","src":"4143:1461:50","statements":[{"assignments":[11284],"declarations":[{"constant":false,"id":11284,"mutability":"mutable","name":"currentBlockTimestamp","nameLocation":"4214:21:50","nodeType":"VariableDeclaration","scope":11360,"src":"4206:29:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11283,"name":"uint256","nodeType":"ElementaryTypeName","src":"4206:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11287,"initialValue":{"expression":{"id":11285,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4238:5:50","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":11286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4244:9:50","memberName":"timestamp","nodeType":"MemberAccess","src":"4238:15:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4206:47:50"},{"assignments":[11289],"declarations":[{"constant":false,"id":11289,"mutability":"mutable","name":"lastDayWindowStart","nameLocation":"4271:18:50","nodeType":"VariableDeclaration","scope":11360,"src":"4263:26:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11288,"name":"uint256","nodeType":"ElementaryTypeName","src":"4263:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11293,"initialValue":{"baseExpression":{"id":11290,"name":"chainIdToLast24HourWindowStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"4292:30:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":11292,"indexExpression":{"id":11291,"name":"dstChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11278,"src":"4323:11:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4292:43:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4263:72:50"},{"assignments":[11295],"declarations":[{"constant":false,"id":11295,"mutability":"mutable","name":"commandsSentInWindow","nameLocation":"4353:20:50","nodeType":"VariableDeclaration","scope":11360,"src":"4345:28:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11294,"name":"uint256","nodeType":"ElementaryTypeName","src":"4345:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11299,"initialValue":{"baseExpression":{"id":11296,"name":"chainIdToLast24HourCommandsSent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11156,"src":"4376:31:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":11298,"indexExpression":{"id":11297,"name":"dstChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11278,"src":"4408:11:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4376:44:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4345:75:50"},{"assignments":[11301],"declarations":[{"constant":false,"id":11301,"mutability":"mutable","name":"maxDailyLimit","nameLocation":"4438:13:50","nodeType":"VariableDeclaration","scope":11360,"src":"4430:21:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11300,"name":"uint256","nodeType":"ElementaryTypeName","src":"4430:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11305,"initialValue":{"baseExpression":{"id":11302,"name":"chainIdToMaxDailyLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11151,"src":"4454:22:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":11304,"indexExpression":{"id":11303,"name":"dstChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11278,"src":"4477:11:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4454:35:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4430:59:50"},{"assignments":[11307],"declarations":[{"constant":false,"id":11307,"mutability":"mutable","name":"lastProposalSentTimestamp","nameLocation":"4507:25:50","nodeType":"VariableDeclaration","scope":11360,"src":"4499:33:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11306,"name":"uint256","nodeType":"ElementaryTypeName","src":"4499:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11311,"initialValue":{"baseExpression":{"id":11308,"name":"chainIdToLastProposalSentTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11166,"src":"4535:34:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":11310,"indexExpression":{"id":11309,"name":"dstChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11278,"src":"4570:11:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4535:47:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4499:83:50"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11312,"name":"currentBlockTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11284,"src":"4678:21:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11313,"name":"lastDayWindowStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11289,"src":"4702:18:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4678:42:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":11315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4723:6:50","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_86400_by_1","typeString":"int_const 86400"},"value":"1"},"src":"4678:51:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":11332,"nodeType":"Block","src":"4879:62:50","statements":[{"expression":{"id":11330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11328,"name":"commandsSentInWindow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11295,"src":"4893:20:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":11329,"name":"noOfCommands_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11280,"src":"4917:13:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4893:37:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11331,"nodeType":"ExpressionStatement","src":"4893:37:50"}]},"id":11333,"nodeType":"IfStatement","src":"4674:267:50","trueBody":{"id":11327,"nodeType":"Block","src":"4731:142:50","statements":[{"expression":{"id":11319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11317,"name":"commandsSentInWindow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11295,"src":"4745:20:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11318,"name":"noOfCommands_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11280,"src":"4768:13:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4745:36:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11320,"nodeType":"ExpressionStatement","src":"4745:36:50"},{"expression":{"id":11325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":11321,"name":"chainIdToLast24HourWindowStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"4795:30:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":11323,"indexExpression":{"id":11322,"name":"dstChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11278,"src":"4826:11:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4795:43:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11324,"name":"currentBlockTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11284,"src":"4841:21:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4795:67:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11326,"nodeType":"ExpressionStatement","src":"4795:67:50"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11335,"name":"commandsSentInWindow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11295,"src":"5015:20:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":11336,"name":"maxDailyLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11301,"src":"5039:13:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5015:37:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4461696c79205472616e73616374696f6e204c696d6974204578636565646564","id":11338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5054:34:50","typeDescriptions":{"typeIdentifier":"t_stringliteral_7f1ab6dca0c040aececbb4df1c67ab1f13c05f495e8356647158d9e65e565e3b","typeString":"literal_string \"Daily Transaction Limit Exceeded\""},"value":"Daily Transaction Limit Exceeded"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7f1ab6dca0c040aececbb4df1c67ab1f13c05f495e8356647158d9e65e565e3b","typeString":"literal_string \"Daily Transaction Limit Exceeded\""}],"id":11334,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5007:7:50","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5007:82:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11340,"nodeType":"ExpressionStatement","src":"5007:82:50"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11342,"name":"lastProposalSentTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11307,"src":"5249:25:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":11343,"name":"currentBlockTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11284,"src":"5278:21:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5249:50:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4d756c7469706c65206272696467696e6720696e20612070726f706f73616c","id":11345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5301:33:50","typeDescriptions":{"typeIdentifier":"t_stringliteral_e46b78c27334ff7d48b2f5b14d5600e9479f0d3eae7a51dbf6a0c69d730dd8be","typeString":"literal_string \"Multiple bridging in a proposal\""},"value":"Multiple bridging in a proposal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e46b78c27334ff7d48b2f5b14d5600e9479f0d3eae7a51dbf6a0c69d730dd8be","typeString":"literal_string \"Multiple bridging in a proposal\""}],"id":11341,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5241:7:50","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5241:94:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11347,"nodeType":"ExpressionStatement","src":"5241:94:50"},{"expression":{"id":11352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":11348,"name":"chainIdToLast24HourCommandsSent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11156,"src":"5398:31:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":11350,"indexExpression":{"id":11349,"name":"dstChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11278,"src":"5430:11:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5398:44:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11351,"name":"commandsSentInWindow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11295,"src":"5445:20:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5398:67:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11353,"nodeType":"ExpressionStatement","src":"5398:67:50"},{"expression":{"id":11358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":11354,"name":"chainIdToLastProposalSentTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11166,"src":"5526:34:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":11356,"indexExpression":{"id":11355,"name":"dstChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11278,"src":"5561:11:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5526:47:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11357,"name":"currentBlockTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11284,"src":"5576:21:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5526:71:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11359,"nodeType":"ExpressionStatement","src":"5526:71:50"}]},"documentation":{"id":11276,"nodeType":"StructuredDocumentation","src":"3896:163:50","text":" @notice Check eligibility to send commands\n @param dstChainId_ Destination chain id\n @param noOfCommands_ Number of commands to send"},"id":11361,"implemented":true,"kind":"function","modifiers":[],"name":"_isEligibleToSend","nameLocation":"4073:17:50","nodeType":"FunctionDefinition","parameters":{"id":11281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11278,"mutability":"mutable","name":"dstChainId_","nameLocation":"4098:11:50","nodeType":"VariableDeclaration","scope":11361,"src":"4091:18:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11277,"name":"uint16","nodeType":"ElementaryTypeName","src":"4091:6:50","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":11280,"mutability":"mutable","name":"noOfCommands_","nameLocation":"4119:13:50","nodeType":"VariableDeclaration","scope":11361,"src":"4111:21:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11279,"name":"uint256","nodeType":"ElementaryTypeName","src":"4111:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4090:43:50"},"returnParameters":{"id":11282,"nodeType":"ParameterList","parameters":[],"src":"4143:0:50"},"scope":11381,"src":"4064:1540:50","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11379,"nodeType":"Block","src":"5851:164:50","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":11372,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5944:3:50","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5948:6:50","memberName":"sender","nodeType":"MemberAccess","src":"5944:10:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11374,"name":"functionSig_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11364,"src":"5956:12:50","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"arguments":[{"id":11369,"name":"accessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11146,"src":"5906:20:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11368,"name":"IAccessControlManagerV8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13903,"src":"5882:23:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessControlManagerV8_$13903_$","typeString":"type(contract IAccessControlManagerV8)"}},"id":11370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5882:45:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$13903","typeString":"contract IAccessControlManagerV8"}},"id":11371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5928:15:50","memberName":"isAllowedToCall","nodeType":"MemberAccess","referencedDeclaration":13891,"src":"5882:61:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_string_memory_ptr_$returns$_t_bool_$","typeString":"function (address,string memory) view external returns (bool)"}},"id":11375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5882:87:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6163636573732064656e696564","id":11376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5983:15:50","typeDescriptions":{"typeIdentifier":"t_stringliteral_cba8a57ccb1594d7138ca5e2a9216c55d23151b53a95734bafda4b812e3786ff","typeString":"literal_string \"access denied\""},"value":"access denied"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cba8a57ccb1594d7138ca5e2a9216c55d23151b53a95734bafda4b812e3786ff","typeString":"literal_string \"access denied\""}],"id":11367,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5861:7:50","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5861:147:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11378,"nodeType":"ExpressionStatement","src":"5861:147:50"}]},"documentation":{"id":11362,"nodeType":"StructuredDocumentation","src":"5610:170:50","text":" @notice Ensure that the caller has permission to execute a specific function\n @param functionSig_ Function signature to be checked for permission"},"id":11380,"implemented":true,"kind":"function","modifiers":[],"name":"_ensureAllowed","nameLocation":"5794:14:50","nodeType":"FunctionDefinition","parameters":{"id":11365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11364,"mutability":"mutable","name":"functionSig_","nameLocation":"5823:12:50","nodeType":"VariableDeclaration","scope":11380,"src":"5809:26:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11363,"name":"string","nodeType":"ElementaryTypeName","src":"5809:6:50","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5808:28:50"},"returnParameters":{"id":11366,"nodeType":"ParameterList","parameters":[],"src":"5851:0:50"},"scope":11381,"src":"5785:230:50","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":11382,"src":"696:5321:50","usedErrors":[10924],"usedEvents":[6977,7087,7092,11175,11182]}],"src":"42:5976:50"},"id":50},"contracts/Cross-chain/OmnichainExecutorOwner.sol":{"ast":{"absolutePath":"contracts/Cross-chain/OmnichainExecutorOwner.sol","exportedSymbols":{"AccessControlledV8":[13858],"IOmnichainGovernanceExecutor":[13445],"OmnichainExecutorOwner":[11697],"ensureNonzeroAddress":[10945]},"id":11698,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":11383,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:51"},{"absolutePath":"contracts/Governance/AccessControlledV8.sol","file":"../Governance/AccessControlledV8.sol","id":11385,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11698,"sourceUnit":13859,"src":"66:74:51","symbolAliases":[{"foreign":{"id":11384,"name":"AccessControlledV8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13858,"src":"75:18:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/Cross-chain/interfaces/IOmnichainGovernanceExecutor.sol","file":"./interfaces/IOmnichainGovernanceExecutor.sol","id":11387,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11698,"sourceUnit":13446,"src":"141:93:51","symbolAliases":[{"foreign":{"id":11386,"name":"IOmnichainGovernanceExecutor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13445,"src":"150:28:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/validators.sol","file":"@venusprotocol/solidity-utilities/contracts/validators.sol","id":11389,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11698,"sourceUnit":10961,"src":"235:98:51","symbolAliases":[{"foreign":{"id":11388,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10945,"src":"244:20:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":11391,"name":"AccessControlledV8","nameLocations":["769:18:51"],"nodeType":"IdentifierPath","referencedDeclaration":13858,"src":"769:18:51"},"id":11392,"nodeType":"InheritanceSpecifier","src":"769:18:51"}],"canonicalName":"OmnichainExecutorOwner","contractDependencies":[],"contractKind":"contract","documentation":{"id":11390,"nodeType":"StructuredDocumentation","src":"335:397:51","text":" @title OmnichainExecutorOwner\n @author Venus\n @notice OmnichainProposalSender contract acts as a governance and access control mechanism,\n allowing owner to upsert signature of OmnichainGovernanceExecutor contract,\n also contains function to transfer the ownership of contract as well.\n @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion"},"fullyImplemented":true,"id":11697,"linearizedBaseContracts":[11697,13858,5947,6079,6574,6248],"name":"OmnichainExecutorOwner","nameLocation":"743:22:51","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":11393,"nodeType":"StructuredDocumentation","src":"794:77:51","text":"  @custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"5f21f75e","id":11396,"mutability":"immutable","name":"OMNICHAIN_GOVERNANCE_EXECUTOR","nameLocation":"922:29:51","nodeType":"VariableDeclaration","scope":11697,"src":"876:75:51","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IOmnichainGovernanceExecutor_$13445","typeString":"contract IOmnichainGovernanceExecutor"},"typeName":{"id":11395,"nodeType":"UserDefinedTypeName","pathNode":{"id":11394,"name":"IOmnichainGovernanceExecutor","nameLocations":["876:28:51"],"nodeType":"IdentifierPath","referencedDeclaration":13445,"src":"876:28:51"},"referencedDeclaration":13445,"src":"876:28:51","typeDescriptions":{"typeIdentifier":"t_contract$_IOmnichainGovernanceExecutor_$13445","typeString":"contract IOmnichainGovernanceExecutor"}},"visibility":"public"},{"constant":false,"documentation":{"id":11397,"nodeType":"StructuredDocumentation","src":"958:94:51","text":" @notice Stores function signature corresponding to their 4 bytes hash value"},"functionSelector":"180d295c","id":11401,"mutability":"mutable","name":"functionRegistry","nameLocation":"1090:16:51","nodeType":"VariableDeclaration","scope":11697,"src":"1057:49:51","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_string_storage_$","typeString":"mapping(bytes4 => string)"},"typeName":{"id":11400,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":11398,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1065:6:51","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Mapping","src":"1057:25:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_string_storage_$","typeString":"mapping(bytes4 => string)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":11399,"name":"string","nodeType":"ElementaryTypeName","src":"1075:6:51","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"visibility":"public"},{"anonymous":false,"documentation":{"id":11402,"nodeType":"StructuredDocumentation","src":"1113:71:51","text":" @notice Event emitted when function registry updated"},"eventSelector":"9d424e54f4d851aabd288f6cc4946e5726d6b5c0e66ea4ef159a3c40bcc470fa","id":11408,"name":"FunctionRegistryChanged","nameLocation":"1195:23:51","nodeType":"EventDefinition","parameters":{"id":11407,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11404,"indexed":true,"mutability":"mutable","name":"signature","nameLocation":"1234:9:51","nodeType":"VariableDeclaration","scope":11408,"src":"1219:24:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11403,"name":"string","nodeType":"ElementaryTypeName","src":"1219:6:51","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11406,"indexed":false,"mutability":"mutable","name":"active","nameLocation":"1250:6:51","nodeType":"VariableDeclaration","scope":11408,"src":"1245:11:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11405,"name":"bool","nodeType":"ElementaryTypeName","src":"1245:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1218:39:51"},"src":"1189:69:51"},{"body":{"id":11433,"nodeType":"Block","src":"1367:228:51","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11415,"name":"omnichainGovernanceExecutor_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11411,"src":"1385:28:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":11418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1425:1:51","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":11417,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1417:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11416,"name":"address","nodeType":"ElementaryTypeName","src":"1417:7:51","typeDescriptions":{}}},"id":11419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1417:10:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1385:42:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"41646472657373206d757374206e6f74206265207a65726f","id":11421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1429:26:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_c39385493865630bb9b3c804a5f858917cc1a47989c0d222d56c03d1165a81a0","typeString":"literal_string \"Address must not be zero\""},"value":"Address must not be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c39385493865630bb9b3c804a5f858917cc1a47989c0d222d56c03d1165a81a0","typeString":"literal_string \"Address must not be zero\""}],"id":11414,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1377:7:51","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1377:79:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11423,"nodeType":"ExpressionStatement","src":"1377:79:51"},{"expression":{"id":11428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11424,"name":"OMNICHAIN_GOVERNANCE_EXECUTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11396,"src":"1466:29:51","typeDescriptions":{"typeIdentifier":"t_contract$_IOmnichainGovernanceExecutor_$13445","typeString":"contract IOmnichainGovernanceExecutor"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11426,"name":"omnichainGovernanceExecutor_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11411,"src":"1527:28:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11425,"name":"IOmnichainGovernanceExecutor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13445,"src":"1498:28:51","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOmnichainGovernanceExecutor_$13445_$","typeString":"type(contract IOmnichainGovernanceExecutor)"}},"id":11427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1498:58:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOmnichainGovernanceExecutor_$13445","typeString":"contract IOmnichainGovernanceExecutor"}},"src":"1466:90:51","typeDescriptions":{"typeIdentifier":"t_contract$_IOmnichainGovernanceExecutor_$13445","typeString":"contract IOmnichainGovernanceExecutor"}},"id":11429,"nodeType":"ExpressionStatement","src":"1466:90:51"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":11430,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6229,"src":"1566:20:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":11431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1566:22:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11432,"nodeType":"ExpressionStatement","src":"1566:22:51"}]},"documentation":{"id":11409,"nodeType":"StructuredDocumentation","src":"1264:48:51","text":"@custom:oz-upgrades-unsafe-allow constructor"},"id":11434,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":11412,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11411,"mutability":"mutable","name":"omnichainGovernanceExecutor_","nameLocation":"1337:28:51","nodeType":"VariableDeclaration","scope":11434,"src":"1329:36:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11410,"name":"address","nodeType":"ElementaryTypeName","src":"1329:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1328:38:51"},"returnParameters":{"id":11413,"nodeType":"ParameterList","parameters":[],"src":"1367:0:51"},"scope":11697,"src":"1317:278:51","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":11456,"nodeType":"Block","src":"1799:145:51","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11443,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11437,"src":"1817:21:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":11446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1850:1:51","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":11445,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1842:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11444,"name":"address","nodeType":"ElementaryTypeName","src":"1842:7:51","typeDescriptions":{}}},"id":11447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1842:10:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1817:35:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"41646472657373206d757374206e6f74206265207a65726f","id":11449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1854:26:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_c39385493865630bb9b3c804a5f858917cc1a47989c0d222d56c03d1165a81a0","typeString":"literal_string \"Address must not be zero\""},"value":"Address must not be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c39385493865630bb9b3c804a5f858917cc1a47989c0d222d56c03d1165a81a0","typeString":"literal_string \"Address must not be zero\""}],"id":11442,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1809:7:51","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1809:72:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11451,"nodeType":"ExpressionStatement","src":"1809:72:51"},{"expression":{"arguments":[{"id":11453,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11437,"src":"1915:21:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11452,"name":"__AccessControlled_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13754,"src":"1891:23:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":11454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1891:46:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11455,"nodeType":"ExpressionStatement","src":"1891:46:51"}]},"documentation":{"id":11435,"nodeType":"StructuredDocumentation","src":"1601:121:51","text":" @notice Initialize the contract\n @param accessControlManager_  Address of access control manager"},"functionSelector":"c4d66de8","id":11457,"implemented":true,"kind":"function","modifiers":[{"id":11440,"kind":"modifierInvocation","modifierName":{"id":11439,"name":"initializer","nameLocations":["1787:11:51"],"nodeType":"IdentifierPath","referencedDeclaration":6150,"src":"1787:11:51"},"nodeType":"ModifierInvocation","src":"1787:11:51"}],"name":"initialize","nameLocation":"1736:10:51","nodeType":"FunctionDefinition","parameters":{"id":11438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11437,"mutability":"mutable","name":"accessControlManager_","nameLocation":"1755:21:51","nodeType":"VariableDeclaration","scope":11457,"src":"1747:29:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11436,"name":"address","nodeType":"ElementaryTypeName","src":"1747:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1746:31:51"},"returnParameters":{"id":11441,"nodeType":"ParameterList","parameters":[],"src":"1799:0:51"},"scope":11697,"src":"1727:217:51","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11504,"nodeType":"Block","src":"2393:382:51","statements":[{"expression":{"arguments":[{"hexValue":"7365745472757374656452656d6f7465416464726573732875696e7431362c627974657329","id":11466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2423:39:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_a6c3d16528fdb8baf9e729063f35f9c7184418596f7c04e03850cd5ff17b0f92","typeString":"literal_string \"setTrustedRemoteAddress(uint16,bytes)\""},"value":"setTrustedRemoteAddress(uint16,bytes)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a6c3d16528fdb8baf9e729063f35f9c7184418596f7c04e03850cd5ff17b0f92","typeString":"literal_string \"setTrustedRemoteAddress(uint16,bytes)\""}],"id":11465,"name":"_checkAccessAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13857,"src":"2403:19:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":11467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2403:60:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11468,"nodeType":"ExpressionStatement","src":"2403:60:51"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":11472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11470,"name":"srcChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11460,"src":"2481:11:51","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":11471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2496:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2481:16:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"436861696e4964206d757374206e6f74206265207a65726f","id":11473,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2499:26:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_25330637c37e740ba17926890288a3211f1ce0916deecf251da03c3bc20367a1","typeString":"literal_string \"ChainId must not be zero\""},"value":"ChainId must not be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_25330637c37e740ba17926890288a3211f1ce0916deecf251da03c3bc20367a1","typeString":"literal_string \"ChainId must not be zero\""}],"id":11469,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2473:7:51","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2473:53:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11475,"nodeType":"ExpressionStatement","src":"2473:53:51"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":11483,"name":"srcAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11462,"src":"2581:11:51","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":11482,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2573:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes20_$","typeString":"type(bytes20)"},"typeName":{"id":11481,"name":"bytes20","nodeType":"ElementaryTypeName","src":"2573:7:51","typeDescriptions":{}}},"id":11484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2573:20:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes20","typeString":"bytes20"}],"id":11480,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2565:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":11479,"name":"uint160","nodeType":"ElementaryTypeName","src":"2565:7:51","typeDescriptions":{}}},"id":11485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2565:29:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":11478,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2557:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11477,"name":"address","nodeType":"ElementaryTypeName","src":"2557:7:51","typeDescriptions":{}}},"id":11486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2557:38:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11476,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10945,"src":"2536:20:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":11487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2536:60:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11488,"nodeType":"ExpressionStatement","src":"2536:60:51"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11490,"name":"srcAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11462,"src":"2614:11:51","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":11491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2626:6:51","memberName":"length","nodeType":"MemberAccess","src":"2614:18:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3230","id":11492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2636:2:51","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"src":"2614:24:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"536f757263652061646472657373206d757374206265203230206279746573206c6f6e67","id":11494,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2640:38:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_9a39bc466e8dc485b140962f2bafd9bf984c501b349d0866987f6e3bcf7433c3","typeString":"literal_string \"Source address must be 20 bytes long\""},"value":"Source address must be 20 bytes long"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9a39bc466e8dc485b140962f2bafd9bf984c501b349d0866987f6e3bcf7433c3","typeString":"literal_string \"Source address must be 20 bytes long\""}],"id":11489,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2606:7:51","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2606:73:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11496,"nodeType":"ExpressionStatement","src":"2606:73:51"},{"expression":{"arguments":[{"id":11500,"name":"srcChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11460,"src":"2743:11:51","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":11501,"name":"srcAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11462,"src":"2756:11:51","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":11497,"name":"OMNICHAIN_GOVERNANCE_EXECUTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11396,"src":"2689:29:51","typeDescriptions":{"typeIdentifier":"t_contract$_IOmnichainGovernanceExecutor_$13445","typeString":"contract IOmnichainGovernanceExecutor"}},"id":11499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2719:23:51","memberName":"setTrustedRemoteAddress","nodeType":"MemberAccess","referencedDeclaration":13444,"src":"2689:53:51","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory) external"}},"id":11502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2689:79:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11503,"nodeType":"ExpressionStatement","src":"2689:79:51"}]},"documentation":{"id":11458,"nodeType":"StructuredDocumentation","src":"1950:348:51","text":" @notice Sets the source message sender address\n @param srcChainId_ The LayerZero id of a source chain\n @param srcAddress_ The address of the contract on the source chain\n @custom:access Controlled by AccessControlManager\n @custom:event Emits SetTrustedRemoteAddress with source chain Id and source address"},"functionSelector":"a6c3d165","id":11505,"implemented":true,"kind":"function","modifiers":[],"name":"setTrustedRemoteAddress","nameLocation":"2312:23:51","nodeType":"FunctionDefinition","parameters":{"id":11463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11460,"mutability":"mutable","name":"srcChainId_","nameLocation":"2343:11:51","nodeType":"VariableDeclaration","scope":11505,"src":"2336:18:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11459,"name":"uint16","nodeType":"ElementaryTypeName","src":"2336:6:51","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":11462,"mutability":"mutable","name":"srcAddress_","nameLocation":"2371:11:51","nodeType":"VariableDeclaration","scope":11505,"src":"2356:26:51","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":11461,"name":"bytes","nodeType":"ElementaryTypeName","src":"2356:5:51","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2335:48:51"},"returnParameters":{"id":11464,"nodeType":"ParameterList","parameters":[],"src":"2393:0:51"},"scope":11697,"src":"2303:472:51","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11554,"nodeType":"Block","src":"3099:305:51","statements":[{"assignments":[11514],"declarations":[{"constant":false,"id":11514,"mutability":"mutable","name":"fun","nameLocation":"3123:3:51","nodeType":"VariableDeclaration","scope":11554,"src":"3109:17:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11513,"name":"string","nodeType":"ElementaryTypeName","src":"3109:6:51","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":11519,"initialValue":{"baseExpression":{"id":11515,"name":"functionRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11401,"src":"3129:16:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_string_storage_$","typeString":"mapping(bytes4 => string storage ref)"}},"id":11518,"indexExpression":{"expression":{"id":11516,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3146:3:51","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3150:3:51","memberName":"sig","nodeType":"MemberAccess","src":"3146:7:51","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3129:25:51","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"VariableDeclarationStatement","src":"3109:45:51"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":11523,"name":"fun","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11514,"src":"3178:3:51","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":11522,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3172:5:51","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":11521,"name":"bytes","nodeType":"ElementaryTypeName","src":"3172:5:51","typeDescriptions":{}}},"id":11524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3172:10:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":11525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3183:6:51","memberName":"length","nodeType":"MemberAccess","src":"3172:17:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":11526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3193:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3172:22:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"46756e6374696f6e206e6f7420666f756e64","id":11528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3196:20:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_b9c7f9fb4d10afcebf26c5daf76290a584c3f270eee838d3acb27fb2fe13b11d","typeString":"literal_string \"Function not found\""},"value":"Function not found"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b9c7f9fb4d10afcebf26c5daf76290a584c3f270eee838d3acb27fb2fe13b11d","typeString":"literal_string \"Function not found\""}],"id":11520,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3164:7:51","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3164:53:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11530,"nodeType":"ExpressionStatement","src":"3164:53:51"},{"expression":{"arguments":[{"id":11532,"name":"fun","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11514,"src":"3247:3:51","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":11531,"name":"_checkAccessAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13857,"src":"3227:19:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":11533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3227:24:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11534,"nodeType":"ExpressionStatement","src":"3227:24:51"},{"assignments":[11536,11538],"declarations":[{"constant":false,"id":11536,"mutability":"mutable","name":"ok","nameLocation":"3267:2:51","nodeType":"VariableDeclaration","scope":11554,"src":"3262:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11535,"name":"bool","nodeType":"ElementaryTypeName","src":"3262:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11538,"mutability":"mutable","name":"res","nameLocation":"3284:3:51","nodeType":"VariableDeclaration","scope":11554,"src":"3271:16:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11537,"name":"bytes","nodeType":"ElementaryTypeName","src":"3271:5:51","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":11546,"initialValue":{"arguments":[{"id":11544,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11508,"src":"3335:5:51","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"arguments":[{"id":11541,"name":"OMNICHAIN_GOVERNANCE_EXECUTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11396,"src":"3299:29:51","typeDescriptions":{"typeIdentifier":"t_contract$_IOmnichainGovernanceExecutor_$13445","typeString":"contract IOmnichainGovernanceExecutor"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IOmnichainGovernanceExecutor_$13445","typeString":"contract IOmnichainGovernanceExecutor"}],"id":11540,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3291:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11539,"name":"address","nodeType":"ElementaryTypeName","src":"3291:7:51","typeDescriptions":{}}},"id":11542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3291:38:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3330:4:51","memberName":"call","nodeType":"MemberAccess","src":"3291:43:51","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":11545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3291:50:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3261:80:51"},{"expression":{"arguments":[{"id":11548,"name":"ok","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11536,"src":"3359:2:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"63616c6c206661696c6564","id":11549,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3363:13:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_a04f7977a7361020e07a160885cb05178aa6d9ff17ec37e942914b4316b9352a","typeString":"literal_string \"call failed\""},"value":"call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a04f7977a7361020e07a160885cb05178aa6d9ff17ec37e942914b4316b9352a","typeString":"literal_string \"call failed\""}],"id":11547,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3351:7:51","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3351:26:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11551,"nodeType":"ExpressionStatement","src":"3351:26:51"},{"expression":{"id":11552,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11538,"src":"3394:3:51","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":11512,"id":11553,"nodeType":"Return","src":"3387:10:51"}]},"documentation":{"id":11506,"nodeType":"StructuredDocumentation","src":"2781:250:51","text":" @notice Invoked when called function does not exist in the contract\n @param data_ Calldata containing the encoded function call\n @return Result of function call\n @custom:access Controlled by Access Control Manager"},"id":11555,"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":11509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11508,"mutability":"mutable","name":"data_","nameLocation":"3060:5:51","nodeType":"VariableDeclaration","scope":11555,"src":"3045:20:51","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":11507,"name":"bytes","nodeType":"ElementaryTypeName","src":"3045:5:51","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3044:22:51"},"returnParameters":{"id":11512,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11511,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11555,"src":"3085:12:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11510,"name":"bytes","nodeType":"ElementaryTypeName","src":"3085:5:51","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3084:14:51"},"scope":11697,"src":"3036:368:51","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11662,"nodeType":"Block","src":"3779:738:51","statements":[{"assignments":[11568],"declarations":[{"constant":false,"id":11568,"mutability":"mutable","name":"signatureLength","nameLocation":"3797:15:51","nodeType":"VariableDeclaration","scope":11662,"src":"3789:23:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11567,"name":"uint256","nodeType":"ElementaryTypeName","src":"3789:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11571,"initialValue":{"expression":{"id":11569,"name":"signatures_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11559,"src":"3815:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string calldata[] calldata"}},"id":11570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3827:6:51","memberName":"length","nodeType":"MemberAccess","src":"3815:18:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3789:44:51"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11573,"name":"signatureLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11568,"src":"3851:15:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":11574,"name":"active_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11562,"src":"3870:7:51","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":11575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3878:6:51","memberName":"length","nodeType":"MemberAccess","src":"3870:14:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3851:33:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e70757420617272617973206d7573742068617665207468652073616d65206c656e677468","id":11577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3886:40:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_8c7d7f44a93d75a90a1d7078d1656040bea1969f911d1ad279bc9b0194f1b13e","typeString":"literal_string \"Input arrays must have the same length\""},"value":"Input arrays must have the same length"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8c7d7f44a93d75a90a1d7078d1656040bea1969f911d1ad279bc9b0194f1b13e","typeString":"literal_string \"Input arrays must have the same length\""}],"id":11572,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3843:7:51","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3843:84:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11579,"nodeType":"ExpressionStatement","src":"3843:84:51"},{"body":{"id":11660,"nodeType":"Block","src":"3979:532:51","statements":[{"assignments":[11590],"declarations":[{"constant":false,"id":11590,"mutability":"mutable","name":"sigHash","nameLocation":"4000:7:51","nodeType":"VariableDeclaration","scope":11660,"src":"3993:14:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":11589,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3993:6:51","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":11602,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"baseExpression":{"id":11596,"name":"signatures_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11559,"src":"4033:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string calldata[] calldata"}},"id":11598,"indexExpression":{"id":11597,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11581,"src":"4045:1:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4033:14:51","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":11595,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4027:5:51","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":11594,"name":"bytes","nodeType":"ElementaryTypeName","src":"4027:5:51","typeDescriptions":{}}},"id":11599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4027:21:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":11593,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4017:9:51","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":11600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4017:32:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11592,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4010:6:51","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":11591,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4010:6:51","typeDescriptions":{}}},"id":11601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4010:40:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"3993:57:51"},{"assignments":[11604],"declarations":[{"constant":false,"id":11604,"mutability":"mutable","name":"signature","nameLocation":"4077:9:51","nodeType":"VariableDeclaration","scope":11660,"src":"4064:22:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11603,"name":"bytes","nodeType":"ElementaryTypeName","src":"4064:5:51","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":11611,"initialValue":{"arguments":[{"baseExpression":{"id":11607,"name":"functionRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11401,"src":"4095:16:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_string_storage_$","typeString":"mapping(bytes4 => string storage ref)"}},"id":11609,"indexExpression":{"id":11608,"name":"sigHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11590,"src":"4112:7:51","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4095:25:51","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"id":11606,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4089:5:51","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":11605,"name":"bytes","nodeType":"ElementaryTypeName","src":"4089:5:51","typeDescriptions":{}}},"id":11610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4089:32:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4064:57:51"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":11612,"name":"active_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11562,"src":"4139:7:51","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":11614,"indexExpression":{"id":11613,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11581,"src":"4147:1:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4139:10:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11615,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11604,"src":"4153:9:51","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":11616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4163:6:51","memberName":"length","nodeType":"MemberAccess","src":"4153:16:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":11617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4173:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4153:21:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4139:35:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4329:11:51","subExpression":{"baseExpression":{"id":11636,"name":"active_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11562,"src":"4330:7:51","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":11638,"indexExpression":{"id":11637,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11581,"src":"4338:1:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4330:10:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11640,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11604,"src":"4344:9:51","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":11641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4354:6:51","memberName":"length","nodeType":"MemberAccess","src":"4344:16:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":11642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4364:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4344:21:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4329:36:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11658,"nodeType":"IfStatement","src":"4325:176:51","trueBody":{"id":11657,"nodeType":"Block","src":"4367:134:51","statements":[{"expression":{"id":11648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"4385:32:51","subExpression":{"baseExpression":{"id":11645,"name":"functionRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11401,"src":"4392:16:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_string_storage_$","typeString":"mapping(bytes4 => string storage ref)"}},"id":11647,"indexExpression":{"id":11646,"name":"sigHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11590,"src":"4409:7:51","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4392:25:51","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11649,"nodeType":"ExpressionStatement","src":"4385:32:51"},{"eventCall":{"arguments":[{"baseExpression":{"id":11651,"name":"signatures_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11559,"src":"4464:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string calldata[] calldata"}},"id":11653,"indexExpression":{"id":11652,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11581,"src":"4476:1:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4464:14:51","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"hexValue":"66616c7365","id":11654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4480:5:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11650,"name":"FunctionRegistryChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11408,"src":"4440:23:51","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_bool_$returns$__$","typeString":"function (string memory,bool)"}},"id":11655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4440:46:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11656,"nodeType":"EmitStatement","src":"4435:51:51"}]}},"id":11659,"nodeType":"IfStatement","src":"4135:366:51","trueBody":{"id":11635,"nodeType":"Block","src":"4176:143:51","statements":[{"expression":{"id":11626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":11620,"name":"functionRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11401,"src":"4194:16:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_string_storage_$","typeString":"mapping(bytes4 => string storage ref)"}},"id":11622,"indexExpression":{"id":11621,"name":"sigHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11590,"src":"4211:7:51","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4194:25:51","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":11623,"name":"signatures_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11559,"src":"4222:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string calldata[] calldata"}},"id":11625,"indexExpression":{"id":11624,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11581,"src":"4234:1:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4222:14:51","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},"src":"4194:42:51","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":11627,"nodeType":"ExpressionStatement","src":"4194:42:51"},{"eventCall":{"arguments":[{"baseExpression":{"id":11629,"name":"signatures_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11559,"src":"4283:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string calldata[] calldata"}},"id":11631,"indexExpression":{"id":11630,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11581,"src":"4295:1:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4283:14:51","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"hexValue":"74727565","id":11632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4299:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11628,"name":"FunctionRegistryChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11408,"src":"4259:23:51","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_bool_$returns$__$","typeString":"function (string memory,bool)"}},"id":11633,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4259:45:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11634,"nodeType":"EmitStatement","src":"4254:50:51"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11583,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11581,"src":"3953:1:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":11584,"name":"signatureLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11568,"src":"3957:15:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3953:19:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11661,"initializationExpression":{"assignments":[11581],"declarations":[{"constant":false,"id":11581,"mutability":"mutable","name":"i","nameLocation":"3950:1:51","nodeType":"VariableDeclaration","scope":11661,"src":"3942:9:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11580,"name":"uint256","nodeType":"ElementaryTypeName","src":"3942:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11582,"nodeType":"VariableDeclarationStatement","src":"3942:9:51"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":11587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3974:3:51","subExpression":{"id":11586,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11581,"src":"3976:1:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11588,"nodeType":"ExpressionStatement","src":"3974:3:51"},"nodeType":"ForStatement","src":"3937:574:51"}]},"documentation":{"id":11556,"nodeType":"StructuredDocumentation","src":"3410:264:51","text":" @notice A registry of functions that are allowed to be executed from proposals\n @param signatures_  Function signature to be added or removed\n @param active_ bool value, should be true to add function\n @custom:access Only owner"},"functionSelector":"4bb7453e","id":11663,"implemented":true,"kind":"function","modifiers":[{"id":11565,"kind":"modifierInvocation","modifierName":{"id":11564,"name":"onlyOwner","nameLocations":["3769:9:51"],"nodeType":"IdentifierPath","referencedDeclaration":5993,"src":"3769:9:51"},"nodeType":"ModifierInvocation","src":"3769:9:51"}],"name":"upsertSignature","nameLocation":"3688:15:51","nodeType":"FunctionDefinition","parameters":{"id":11563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11559,"mutability":"mutable","name":"signatures_","nameLocation":"3722:11:51","nodeType":"VariableDeclaration","scope":11663,"src":"3704:29:51","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":11557,"name":"string","nodeType":"ElementaryTypeName","src":"3704:6:51","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":11558,"nodeType":"ArrayTypeName","src":"3704:8:51","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":11562,"mutability":"mutable","name":"active_","nameLocation":"3751:7:51","nodeType":"VariableDeclaration","scope":11663,"src":"3735:23:51","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":11560,"name":"bool","nodeType":"ElementaryTypeName","src":"3735:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11561,"nodeType":"ArrayTypeName","src":"3735:6:51","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"3703:56:51"},"returnParameters":{"id":11566,"nodeType":"ParameterList","parameters":[],"src":"3779:0:51"},"scope":11697,"src":"3679:838:51","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11689,"nodeType":"Block","src":"4818:210:51","statements":[{"expression":{"arguments":[{"hexValue":"7472616e736665724272696467654f776e657273686970286164647265737329","id":11670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4848:34:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_3f90b5406c7cde78070dfe9c18268e7221f4985713dafd643183340649a7977e","typeString":"literal_string \"transferBridgeOwnership(address)\""},"value":"transferBridgeOwnership(address)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3f90b5406c7cde78070dfe9c18268e7221f4985713dafd643183340649a7977e","typeString":"literal_string \"transferBridgeOwnership(address)\""}],"id":11669,"name":"_checkAccessAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13857,"src":"4828:19:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":11671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4828:55:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11672,"nodeType":"ExpressionStatement","src":"4828:55:51"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11674,"name":"newOwner_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11666,"src":"4901:9:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":11677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4922:1:51","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":11676,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4914:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11675,"name":"address","nodeType":"ElementaryTypeName","src":"4914:7:51","typeDescriptions":{}}},"id":11678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4914:10:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4901:23:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"41646472657373206d757374206e6f74206265207a65726f","id":11680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4926:26:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_c39385493865630bb9b3c804a5f858917cc1a47989c0d222d56c03d1165a81a0","typeString":"literal_string \"Address must not be zero\""},"value":"Address must not be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c39385493865630bb9b3c804a5f858917cc1a47989c0d222d56c03d1165a81a0","typeString":"literal_string \"Address must not be zero\""}],"id":11673,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4893:7:51","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4893:60:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11682,"nodeType":"ExpressionStatement","src":"4893:60:51"},{"expression":{"arguments":[{"id":11686,"name":"newOwner_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11666,"src":"5011:9:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11683,"name":"OMNICHAIN_GOVERNANCE_EXECUTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11396,"src":"4963:29:51","typeDescriptions":{"typeIdentifier":"t_contract$_IOmnichainGovernanceExecutor_$13445","typeString":"contract IOmnichainGovernanceExecutor"}},"id":11685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4993:17:51","memberName":"transferOwnership","nodeType":"MemberAccess","referencedDeclaration":13436,"src":"4963:47:51","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":11687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4963:58:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11688,"nodeType":"ExpressionStatement","src":"4963:58:51"}]},"documentation":{"id":11664,"nodeType":"StructuredDocumentation","src":"4523:228:51","text":" @notice This function transfer the ownership of the executor from this contract to new owner\n @param newOwner_ New owner of the governanceExecutor\n @custom:access Controlled by AccessControlManager"},"functionSelector":"3f90b540","id":11690,"implemented":true,"kind":"function","modifiers":[],"name":"transferBridgeOwnership","nameLocation":"4766:23:51","nodeType":"FunctionDefinition","parameters":{"id":11667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11666,"mutability":"mutable","name":"newOwner_","nameLocation":"4798:9:51","nodeType":"VariableDeclaration","scope":11690,"src":"4790:17:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11665,"name":"address","nodeType":"ElementaryTypeName","src":"4790:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4789:19:51"},"returnParameters":{"id":11668,"nodeType":"ParameterList","parameters":[],"src":"4818:0:51"},"scope":11697,"src":"4757:271:51","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6030],"body":{"id":11695,"nodeType":"Block","src":"5188:2:51","statements":[]},"documentation":{"id":11691,"nodeType":"StructuredDocumentation","src":"5034:96:51","text":"  @notice Empty implementation of renounce ownership to avoid any mishappening"},"functionSelector":"715018a6","id":11696,"implemented":true,"kind":"function","modifiers":[],"name":"renounceOwnership","nameLocation":"5144:17:51","nodeType":"FunctionDefinition","overrides":{"id":11693,"nodeType":"OverrideSpecifier","overrides":[],"src":"5179:8:51"},"parameters":{"id":11692,"nodeType":"ParameterList","parameters":[],"src":"5161:2:51"},"returnParameters":{"id":11694,"nodeType":"ParameterList","parameters":[],"src":"5188:0:51"},"scope":11697,"src":"5135:55:51","stateMutability":"nonpayable","virtual":true,"visibility":"public"}],"scope":11698,"src":"734:4458:51","usedErrors":[10924,13739],"usedEvents":[5873,5964,6094,11408,13730]}],"src":"41:5152:51"},"id":51},"contracts/Cross-chain/OmnichainGovernanceExecutor.sol":{"ast":{"absolutePath":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol","exportedSymbols":{"BaseOmnichainControllerDest":[11128],"BytesLib":[3228],"ExcessivelySafeCall":[3325],"ITimelock":[13525],"OmnichainGovernanceExecutor":[12706],"ReentrancyGuard":[7249],"ensureNonzeroAddress":[10945]},"id":12707,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":11699,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"32:23:52"},{"absolutePath":"@openzeppelin/contracts/security/ReentrancyGuard.sol","file":"@openzeppelin/contracts/security/ReentrancyGuard.sol","id":11701,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12707,"sourceUnit":7250,"src":"57:87:52","symbolAliases":[{"foreign":{"id":11700,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7249,"src":"66:15:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/libraries/BytesLib.sol","file":"@layerzerolabs/solidity-examples/contracts/libraries/BytesLib.sol","id":11703,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12707,"sourceUnit":3229,"src":"145:93:52","symbolAliases":[{"foreign":{"id":11702,"name":"BytesLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3228,"src":"154:8:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/libraries/ExcessivelySafeCall.sol","file":"@layerzerolabs/solidity-examples/contracts/libraries/ExcessivelySafeCall.sol","id":11705,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12707,"sourceUnit":3326,"src":"239:115:52","symbolAliases":[{"foreign":{"id":11704,"name":"ExcessivelySafeCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3325,"src":"248:19:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/validators.sol","file":"@venusprotocol/solidity-utilities/contracts/validators.sol","id":11707,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12707,"sourceUnit":10961,"src":"355:98:52","symbolAliases":[{"foreign":{"id":11706,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10945,"src":"364:20:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/Cross-chain/BaseOmnichainControllerDest.sol","file":"./BaseOmnichainControllerDest.sol","id":11709,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12707,"sourceUnit":11129,"src":"454:80:52","symbolAliases":[{"foreign":{"id":11708,"name":"BaseOmnichainControllerDest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11128,"src":"463:27:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/Cross-chain/interfaces/ITimelock.sol","file":"./interfaces/ITimelock.sol","id":11711,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12707,"sourceUnit":13526,"src":"535:55:52","symbolAliases":[{"foreign":{"id":11710,"name":"ITimelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13525,"src":"544:9:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":11713,"name":"ReentrancyGuard","nameLocations":["1153:15:52"],"nodeType":"IdentifierPath","referencedDeclaration":7249,"src":"1153:15:52"},"id":11714,"nodeType":"InheritanceSpecifier","src":"1153:15:52"},{"baseName":{"id":11715,"name":"BaseOmnichainControllerDest","nameLocations":["1170:27:52"],"nodeType":"IdentifierPath","referencedDeclaration":11128,"src":"1170:27:52"},"id":11716,"nodeType":"InheritanceSpecifier","src":"1170:27:52"}],"canonicalName":"OmnichainGovernanceExecutor","contractDependencies":[],"contractKind":"contract","documentation":{"id":11712,"nodeType":"StructuredDocumentation","src":"592:520:52","text":" @title OmnichainGovernanceExecutor\n @notice Executes the proposal transactions sent from the main chain\n @dev The owner of this contract controls LayerZero configuration. When used in production the owner will be OmnichainExecutor\n This implementation is non-blocking, meaning the failed messages will not block the future messages from the source.\n For the blocking behavior, derive the contract from LzApp.\n @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion"},"fullyImplemented":true,"id":12706,"linearizedBaseContracts":[12706,11128,7184,4108,3867,4298,4267,7076,8099,7249],"name":"OmnichainGovernanceExecutor","nameLocation":"1122:27:52","nodeType":"ContractDefinition","nodes":[{"global":false,"id":11719,"libraryName":{"id":11717,"name":"BytesLib","nameLocations":["1210:8:52"],"nodeType":"IdentifierPath","referencedDeclaration":3228,"src":"1210:8:52"},"nodeType":"UsingForDirective","src":"1204:25:52","typeName":{"id":11718,"name":"bytes","nodeType":"ElementaryTypeName","src":"1223:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},{"global":false,"id":11722,"libraryName":{"id":11720,"name":"ExcessivelySafeCall","nameLocations":["1240:19:52"],"nodeType":"IdentifierPath","referencedDeclaration":3325,"src":"1240:19:52"},"nodeType":"UsingForDirective","src":"1234:38:52","typeName":{"id":11721,"name":"address","nodeType":"ElementaryTypeName","src":"1264:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"canonicalName":"OmnichainGovernanceExecutor.ProposalType","id":11726,"members":[{"id":11723,"name":"NORMAL","nameLocation":"1306:6:52","nodeType":"EnumValue","src":"1306:6:52"},{"id":11724,"name":"FASTTRACK","nameLocation":"1322:9:52","nodeType":"EnumValue","src":"1322:9:52"},{"id":11725,"name":"CRITICAL","nameLocation":"1341:8:52","nodeType":"EnumValue","src":"1341:8:52"}],"name":"ProposalType","nameLocation":"1283:12:52","nodeType":"EnumDefinition","src":"1278:77:52"},{"canonicalName":"OmnichainGovernanceExecutor.Proposal","id":11758,"members":[{"constant":false,"id":11729,"mutability":"mutable","name":"id","nameLocation":"1446:2:52","nodeType":"VariableDeclaration","scope":11758,"src":"1438:10:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11728,"name":"uint256","nodeType":"ElementaryTypeName","src":"1438:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11732,"mutability":"mutable","name":"eta","nameLocation":"1573:3:52","nodeType":"VariableDeclaration","scope":11758,"src":"1565:11:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11731,"name":"uint256","nodeType":"ElementaryTypeName","src":"1565:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11736,"mutability":"mutable","name":"targets","nameLocation":"1669:7:52","nodeType":"VariableDeclaration","scope":11758,"src":"1659:17:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":11734,"name":"address","nodeType":"ElementaryTypeName","src":"1659:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11735,"nodeType":"ArrayTypeName","src":"1659:9:52","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":11740,"mutability":"mutable","name":"values","nameLocation":"1792:6:52","nodeType":"VariableDeclaration","scope":11758,"src":"1782:16:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":11738,"name":"uint256","nodeType":"ElementaryTypeName","src":"1782:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11739,"nodeType":"ArrayTypeName","src":"1782:9:52","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":11744,"mutability":"mutable","name":"signatures","nameLocation":"1885:10:52","nodeType":"VariableDeclaration","scope":11758,"src":"1876:19:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":11742,"name":"string","nodeType":"ElementaryTypeName","src":"1876:6:52","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":11743,"nodeType":"ArrayTypeName","src":"1876:8:52","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":11748,"mutability":"mutable","name":"calldatas","nameLocation":"1983:9:52","nodeType":"VariableDeclaration","scope":11758,"src":"1975:17:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":11746,"name":"bytes","nodeType":"ElementaryTypeName","src":"1975:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":11747,"nodeType":"ArrayTypeName","src":"1975:7:52","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":11751,"mutability":"mutable","name":"canceled","nameLocation":"2074:8:52","nodeType":"VariableDeclaration","scope":11758,"src":"2069:13:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11750,"name":"bool","nodeType":"ElementaryTypeName","src":"2069:4:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11754,"mutability":"mutable","name":"executed","nameLocation":"2164:8:52","nodeType":"VariableDeclaration","scope":11758,"src":"2159:13:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11753,"name":"bool","nodeType":"ElementaryTypeName","src":"2159:4:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11757,"mutability":"mutable","name":"proposalType","nameLocation":"2228:12:52","nodeType":"VariableDeclaration","scope":11758,"src":"2222:18:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":11756,"name":"uint8","nodeType":"ElementaryTypeName","src":"2222:5:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"name":"Proposal","nameLocation":"1368:8:52","nodeType":"StructDefinition","scope":12706,"src":"1361:886:52","visibility":"public"},{"canonicalName":"OmnichainGovernanceExecutor.ProposalState","id":11762,"members":[{"id":11759,"name":"Canceled","nameLocation":"2353:8:52","nodeType":"EnumValue","src":"2353:8:52"},{"id":11760,"name":"Queued","nameLocation":"2371:6:52","nodeType":"EnumValue","src":"2371:6:52"},{"id":11761,"name":"Executed","nameLocation":"2387:8:52","nodeType":"EnumValue","src":"2387:8:52"}],"name":"ProposalState","nameLocation":"2329:13:52","nodeType":"EnumDefinition","src":"2324:77:52"},{"constant":false,"documentation":{"id":11763,"nodeType":"StructuredDocumentation","src":"2407:73:52","text":" @notice A privileged role that can cancel any proposal"},"functionSelector":"452a9320","id":11765,"mutability":"mutable","name":"guardian","nameLocation":"2500:8:52","nodeType":"VariableDeclaration","scope":12706,"src":"2485:23:52","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11764,"name":"address","nodeType":"ElementaryTypeName","src":"2485:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"documentation":{"id":11766,"nodeType":"StructuredDocumentation","src":"2515:65:52","text":" @notice Stores BNB chain layerzero endpoint id"},"functionSelector":"49d12605","id":11768,"mutability":"mutable","name":"srcChainId","nameLocation":"2599:10:52","nodeType":"VariableDeclaration","scope":12706,"src":"2585:24:52","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11767,"name":"uint16","nodeType":"ElementaryTypeName","src":"2585:6:52","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"public"},{"constant":false,"documentation":{"id":11769,"nodeType":"StructuredDocumentation","src":"2616:55:52","text":" @notice Last proposal count received"},"functionSelector":"4406baaf","id":11771,"mutability":"mutable","name":"lastProposalReceived","nameLocation":"2691:20:52","nodeType":"VariableDeclaration","scope":12706,"src":"2676:35:52","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11770,"name":"uint256","nodeType":"ElementaryTypeName","src":"2676:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":11772,"nodeType":"StructuredDocumentation","src":"2718:77:52","text":" @notice The official record of all proposals ever proposed"},"functionSelector":"013cf08b","id":11777,"mutability":"mutable","name":"proposals","nameLocation":"2836:9:52","nodeType":"VariableDeclaration","scope":12706,"src":"2800:45:52","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$11758_storage_$","typeString":"mapping(uint256 => struct OmnichainGovernanceExecutor.Proposal)"},"typeName":{"id":11776,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":11773,"name":"uint256","nodeType":"ElementaryTypeName","src":"2808:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2800:28:52","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$11758_storage_$","typeString":"mapping(uint256 => struct OmnichainGovernanceExecutor.Proposal)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":11775,"nodeType":"UserDefinedTypeName","pathNode":{"id":11774,"name":"Proposal","nameLocations":["2819:8:52"],"nodeType":"IdentifierPath","referencedDeclaration":11758,"src":"2819:8:52"},"referencedDeclaration":11758,"src":"2819:8:52","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$11758_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal"}}},"visibility":"public"},{"constant":false,"documentation":{"id":11778,"nodeType":"StructuredDocumentation","src":"2852:87:52","text":" @notice Mapping containing Timelock addresses for each proposal type"},"functionSelector":"ee9799ee","id":11783,"mutability":"mutable","name":"proposalTimelocks","nameLocation":"2981:17:52","nodeType":"VariableDeclaration","scope":12706,"src":"2944:54:52","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_ITimelock_$13525_$","typeString":"mapping(uint256 => contract ITimelock)"},"typeName":{"id":11782,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":11779,"name":"uint256","nodeType":"ElementaryTypeName","src":"2952:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2944:29:52","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_ITimelock_$13525_$","typeString":"mapping(uint256 => contract ITimelock)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":11781,"nodeType":"UserDefinedTypeName","pathNode":{"id":11780,"name":"ITimelock","nameLocations":["2963:9:52"],"nodeType":"IdentifierPath","referencedDeclaration":13525,"src":"2963:9:52"},"referencedDeclaration":13525,"src":"2963:9:52","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$13525","typeString":"contract ITimelock"}}},"visibility":"public"},{"constant":false,"documentation":{"id":11784,"nodeType":"StructuredDocumentation","src":"3005:61:52","text":" @notice Represents queue state of proposal"},"functionSelector":"9f0c3101","id":11788,"mutability":"mutable","name":"queued","nameLocation":"3103:6:52","nodeType":"VariableDeclaration","scope":12706,"src":"3071:38:52","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"},"typeName":{"id":11787,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":11785,"name":"uint256","nodeType":"ElementaryTypeName","src":"3079:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"3071:24:52","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":11786,"name":"bool","nodeType":"ElementaryTypeName","src":"3090:4:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"anonymous":false,"documentation":{"id":11789,"nodeType":"StructuredDocumentation","src":"3116:60:52","text":" @notice Emitted when proposal is received"},"eventSelector":"c37d19c9a6a9a568b5071658f9b5082ff8f142df3cf090385c5621ab11938065","id":11807,"name":"ProposalReceived","nameLocation":"3187:16:52","nodeType":"EventDefinition","parameters":{"id":11806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11791,"indexed":true,"mutability":"mutable","name":"proposalId","nameLocation":"3229:10:52","nodeType":"VariableDeclaration","scope":11807,"src":"3213:26:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11790,"name":"uint256","nodeType":"ElementaryTypeName","src":"3213:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11794,"indexed":false,"mutability":"mutable","name":"targets","nameLocation":"3259:7:52","nodeType":"VariableDeclaration","scope":11807,"src":"3249:17:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":11792,"name":"address","nodeType":"ElementaryTypeName","src":"3249:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11793,"nodeType":"ArrayTypeName","src":"3249:9:52","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":11797,"indexed":false,"mutability":"mutable","name":"values","nameLocation":"3286:6:52","nodeType":"VariableDeclaration","scope":11807,"src":"3276:16:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":11795,"name":"uint256","nodeType":"ElementaryTypeName","src":"3276:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11796,"nodeType":"ArrayTypeName","src":"3276:9:52","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":11800,"indexed":false,"mutability":"mutable","name":"signatures","nameLocation":"3311:10:52","nodeType":"VariableDeclaration","scope":11807,"src":"3302:19:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":11798,"name":"string","nodeType":"ElementaryTypeName","src":"3302:6:52","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":11799,"nodeType":"ArrayTypeName","src":"3302:8:52","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":11803,"indexed":false,"mutability":"mutable","name":"calldatas","nameLocation":"3339:9:52","nodeType":"VariableDeclaration","scope":11807,"src":"3331:17:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":11801,"name":"bytes","nodeType":"ElementaryTypeName","src":"3331:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":11802,"nodeType":"ArrayTypeName","src":"3331:7:52","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":11805,"indexed":false,"mutability":"mutable","name":"proposalType","nameLocation":"3364:12:52","nodeType":"VariableDeclaration","scope":11807,"src":"3358:18:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":11804,"name":"uint8","nodeType":"ElementaryTypeName","src":"3358:5:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"3203:179:52"},"src":"3181:202:52"},{"anonymous":false,"documentation":{"id":11808,"nodeType":"StructuredDocumentation","src":"3389:58:52","text":" @notice Emitted when proposal is queued"},"eventSelector":"9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda2892","id":11814,"name":"ProposalQueued","nameLocation":"3458:14:52","nodeType":"EventDefinition","parameters":{"id":11813,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11810,"indexed":true,"mutability":"mutable","name":"id","nameLocation":"3489:2:52","nodeType":"VariableDeclaration","scope":11814,"src":"3473:18:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11809,"name":"uint256","nodeType":"ElementaryTypeName","src":"3473:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11812,"indexed":false,"mutability":"mutable","name":"eta","nameLocation":"3501:3:52","nodeType":"VariableDeclaration","scope":11814,"src":"3493:11:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11811,"name":"uint256","nodeType":"ElementaryTypeName","src":"3493:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3472:33:52"},"src":"3452:54:52"},{"anonymous":false,"documentation":{"id":11815,"nodeType":"StructuredDocumentation","src":"3512:49:52","text":" Emitted when proposal executed"},"eventSelector":"712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f","id":11819,"name":"ProposalExecuted","nameLocation":"3572:16:52","nodeType":"EventDefinition","parameters":{"id":11818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11817,"indexed":true,"mutability":"mutable","name":"id","nameLocation":"3605:2:52","nodeType":"VariableDeclaration","scope":11819,"src":"3589:18:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11816,"name":"uint256","nodeType":"ElementaryTypeName","src":"3589:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3588:20:52"},"src":"3566:43:52"},{"anonymous":false,"documentation":{"id":11820,"nodeType":"StructuredDocumentation","src":"3615:55:52","text":" @notice Emitted when proposal failed"},"eventSelector":"41d73ce7be31a588d59fe9013cdcfe583bc0aab25093d042b64cade0df730656","id":11830,"name":"ReceivePayloadFailed","nameLocation":"3681:20:52","nodeType":"EventDefinition","parameters":{"id":11829,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11822,"indexed":true,"mutability":"mutable","name":"srcChainId","nameLocation":"3717:10:52","nodeType":"VariableDeclaration","scope":11830,"src":"3702:25:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11821,"name":"uint16","nodeType":"ElementaryTypeName","src":"3702:6:52","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":11824,"indexed":true,"mutability":"mutable","name":"srcAddress","nameLocation":"3743:10:52","nodeType":"VariableDeclaration","scope":11830,"src":"3729:24:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11823,"name":"bytes","nodeType":"ElementaryTypeName","src":"3729:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":11826,"indexed":false,"mutability":"mutable","name":"nonce","nameLocation":"3762:5:52","nodeType":"VariableDeclaration","scope":11830,"src":"3755:12:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":11825,"name":"uint64","nodeType":"ElementaryTypeName","src":"3755:6:52","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":11828,"indexed":false,"mutability":"mutable","name":"reason","nameLocation":"3775:6:52","nodeType":"VariableDeclaration","scope":11830,"src":"3769:12:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11827,"name":"bytes","nodeType":"ElementaryTypeName","src":"3769:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3701:81:52"},"src":"3675:108:52"},{"anonymous":false,"documentation":{"id":11831,"nodeType":"StructuredDocumentation","src":"3789:60:52","text":" @notice Emitted when proposal is canceled"},"eventSelector":"789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c","id":11835,"name":"ProposalCanceled","nameLocation":"3860:16:52","nodeType":"EventDefinition","parameters":{"id":11834,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11833,"indexed":true,"mutability":"mutable","name":"id","nameLocation":"3893:2:52","nodeType":"VariableDeclaration","scope":11835,"src":"3877:18:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11832,"name":"uint256","nodeType":"ElementaryTypeName","src":"3877:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3876:20:52"},"src":"3854:43:52"},{"anonymous":false,"documentation":{"id":11836,"nodeType":"StructuredDocumentation","src":"3903:54:52","text":" @notice Emitted when timelock added"},"eventSelector":"fc45ae51ac4893a3f843d030fbfd4037c0c196109c9e667645b8f144c83c16ea","id":11844,"name":"TimelockAdded","nameLocation":"3968:13:52","nodeType":"EventDefinition","parameters":{"id":11843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11838,"indexed":false,"mutability":"mutable","name":"routeType","nameLocation":"3988:9:52","nodeType":"VariableDeclaration","scope":11844,"src":"3982:15:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":11837,"name":"uint8","nodeType":"ElementaryTypeName","src":"3982:5:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":11840,"indexed":true,"mutability":"mutable","name":"oldTimelock","nameLocation":"4015:11:52","nodeType":"VariableDeclaration","scope":11844,"src":"3999:27:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11839,"name":"address","nodeType":"ElementaryTypeName","src":"3999:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11842,"indexed":true,"mutability":"mutable","name":"newTimelock","nameLocation":"4044:11:52","nodeType":"VariableDeclaration","scope":11844,"src":"4028:27:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11841,"name":"address","nodeType":"ElementaryTypeName","src":"4028:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3981:75:52"},"src":"3962:95:52"},{"anonymous":false,"documentation":{"id":11845,"nodeType":"StructuredDocumentation","src":"4063:79:52","text":" @notice Emitted when source layerzero endpoint id is updated"},"eventSelector":"b17c58d5977290696b6eea77c81c725f3dc83e426252bd9ece6287c1b8d0e968","id":11851,"name":"SetSrcChainId","nameLocation":"4153:13:52","nodeType":"EventDefinition","parameters":{"id":11850,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11847,"indexed":true,"mutability":"mutable","name":"oldSrcChainId","nameLocation":"4182:13:52","nodeType":"VariableDeclaration","scope":11851,"src":"4167:28:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11846,"name":"uint16","nodeType":"ElementaryTypeName","src":"4167:6:52","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":11849,"indexed":true,"mutability":"mutable","name":"newSrcChainId","nameLocation":"4212:13:52","nodeType":"VariableDeclaration","scope":11851,"src":"4197:28:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11848,"name":"uint16","nodeType":"ElementaryTypeName","src":"4197:6:52","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"4166:60:52"},"src":"4147:80:52"},{"anonymous":false,"documentation":{"id":11852,"nodeType":"StructuredDocumentation","src":"4233:67:52","text":" @notice Emitted when new guardian address is set"},"eventSelector":"08fdaf06427a2010e5958f4329b566993472d14ce81d3f16ce7f2a2660da98e3","id":11858,"name":"NewGuardian","nameLocation":"4311:11:52","nodeType":"EventDefinition","parameters":{"id":11857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11854,"indexed":true,"mutability":"mutable","name":"oldGuardian","nameLocation":"4339:11:52","nodeType":"VariableDeclaration","scope":11858,"src":"4323:27:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11853,"name":"address","nodeType":"ElementaryTypeName","src":"4323:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11856,"indexed":true,"mutability":"mutable","name":"newGuardian","nameLocation":"4368:11:52","nodeType":"VariableDeclaration","scope":11858,"src":"4352:27:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11855,"name":"address","nodeType":"ElementaryTypeName","src":"4352:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4322:58:52"},"src":"4305:76:52"},{"anonymous":false,"documentation":{"id":11859,"nodeType":"StructuredDocumentation","src":"4387:76:52","text":" @notice Emitted when pending admin of Timelock is updated"},"eventSelector":"6ac0b2c896b49975f12891f83c573bdf05490fe6b707cbaa2ba84c36094cbaec","id":11865,"name":"SetTimelockPendingAdmin","nameLocation":"4474:23:52","nodeType":"EventDefinition","parameters":{"id":11864,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11861,"indexed":false,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11865,"src":"4498:7:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11860,"name":"address","nodeType":"ElementaryTypeName","src":"4498:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11863,"indexed":false,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11865,"src":"4507:5:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":11862,"name":"uint8","nodeType":"ElementaryTypeName","src":"4507:5:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"4497:16:52"},"src":"4468:46:52"},{"documentation":{"id":11866,"nodeType":"StructuredDocumentation","src":"4520:61:52","text":" @notice Thrown when proposal ID is invalid"},"errorSelector":"0992f7ad","id":11868,"name":"InvalidProposalId","nameLocation":"4592:17:52","nodeType":"ErrorDefinition","parameters":{"id":11867,"nodeType":"ParameterList","parameters":[],"src":"4609:2:52"},"src":"4586:26:52"},{"body":{"id":11892,"nodeType":"Block","src":"4727:112:52","statements":[{"expression":{"arguments":[{"id":11881,"name":"guardian_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11872,"src":"4758:9:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11880,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10945,"src":"4737:20:52","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":11882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4737:31:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11883,"nodeType":"ExpressionStatement","src":"4737:31:52"},{"expression":{"id":11886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11884,"name":"guardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11765,"src":"4778:8:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11885,"name":"guardian_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11872,"src":"4789:9:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4778:20:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11887,"nodeType":"ExpressionStatement","src":"4778:20:52"},{"expression":{"id":11890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11888,"name":"srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11768,"src":"4808:10:52","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11889,"name":"srcChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11874,"src":"4821:11:52","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4808:24:52","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":11891,"nodeType":"ExpressionStatement","src":"4808:24:52"}]},"id":11893,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":11877,"name":"endpoint_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11870,"src":"4716:9:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":11878,"kind":"baseConstructorSpecifier","modifierName":{"id":11876,"name":"BaseOmnichainControllerDest","nameLocations":["4688:27:52"],"nodeType":"IdentifierPath","referencedDeclaration":11128,"src":"4688:27:52"},"nodeType":"ModifierInvocation","src":"4688:38:52"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":11875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11870,"mutability":"mutable","name":"endpoint_","nameLocation":"4638:9:52","nodeType":"VariableDeclaration","scope":11893,"src":"4630:17:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11869,"name":"address","nodeType":"ElementaryTypeName","src":"4630:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11872,"mutability":"mutable","name":"guardian_","nameLocation":"4657:9:52","nodeType":"VariableDeclaration","scope":11893,"src":"4649:17:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11871,"name":"address","nodeType":"ElementaryTypeName","src":"4649:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11874,"mutability":"mutable","name":"srcChainId_","nameLocation":"4675:11:52","nodeType":"VariableDeclaration","scope":11893,"src":"4668:18:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11873,"name":"uint16","nodeType":"ElementaryTypeName","src":"4668:6:52","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"4629:58:52"},"returnParameters":{"id":11879,"nodeType":"ParameterList","parameters":[],"src":"4727:0:52"},"scope":12706,"src":"4618:221:52","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":11910,"nodeType":"Block","src":"5134:94:52","statements":[{"eventCall":{"arguments":[{"id":11902,"name":"srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11768,"src":"5163:10:52","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":11903,"name":"srcChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11896,"src":"5175:11:52","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":11901,"name":"SetSrcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11851,"src":"5149:13:52","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_uint16_$returns$__$","typeString":"function (uint16,uint16)"}},"id":11904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5149:38:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11905,"nodeType":"EmitStatement","src":"5144:43:52"},{"expression":{"id":11908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11906,"name":"srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11768,"src":"5197:10:52","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11907,"name":"srcChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11896,"src":"5210:11:52","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5197:24:52","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":11909,"nodeType":"ExpressionStatement","src":"5197:24:52"}]},"documentation":{"id":11894,"nodeType":"StructuredDocumentation","src":"4845:222:52","text":" @notice Update source layerzero endpoint id\n @param srcChainId_ The new source chain id to be set\n @custom:event Emit SetSrcChainId with old and new source id\n @custom:access Only owner"},"functionSelector":"c8b42e5b","id":11911,"implemented":true,"kind":"function","modifiers":[{"id":11899,"kind":"modifierInvocation","modifierName":{"id":11898,"name":"onlyOwner","nameLocations":["5124:9:52"],"nodeType":"IdentifierPath","referencedDeclaration":6995,"src":"5124:9:52"},"nodeType":"ModifierInvocation","src":"5124:9:52"}],"name":"setSrcChainId","nameLocation":"5081:13:52","nodeType":"FunctionDefinition","parameters":{"id":11897,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11896,"mutability":"mutable","name":"srcChainId_","nameLocation":"5102:11:52","nodeType":"VariableDeclaration","scope":11911,"src":"5095:18:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11895,"name":"uint16","nodeType":"ElementaryTypeName","src":"5095:6:52","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"5094:20:52"},"returnParameters":{"id":11900,"nodeType":"ParameterList","parameters":[],"src":"5134:0:52"},"scope":12706,"src":"5072:156:52","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11944,"nodeType":"Block","src":"5533:299:52","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11918,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5564:3:52","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5568:6:52","memberName":"sender","nodeType":"MemberAccess","src":"5564:10:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":11920,"name":"guardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11765,"src":"5578:8:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5564:22:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11922,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5590:3:52","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5594:6:52","memberName":"sender","nodeType":"MemberAccess","src":"5590:10:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":11924,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7004,"src":"5604:5:52","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":11925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5604:7:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5590:21:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5564:47:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a736574477561726469616e3a206f776e6572206f7220677561726469616e206f6e6c79","id":11928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5625:66:52","typeDescriptions":{"typeIdentifier":"t_stringliteral_dcd823307e0cf8e2924ffc4da406ac40a542bd139ef180667b9ac44d3c4e1ed9","typeString":"literal_string \"OmnichainGovernanceExecutor::setGuardian: owner or guardian only\""},"value":"OmnichainGovernanceExecutor::setGuardian: owner or guardian only"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dcd823307e0cf8e2924ffc4da406ac40a542bd139ef180667b9ac44d3c4e1ed9","typeString":"literal_string \"OmnichainGovernanceExecutor::setGuardian: owner or guardian only\""}],"id":11917,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5543:7:52","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5543:158:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11930,"nodeType":"ExpressionStatement","src":"5543:158:52"},{"expression":{"arguments":[{"id":11932,"name":"newGuardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11914,"src":"5732:11:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11931,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10945,"src":"5711:20:52","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":11933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5711:33:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11934,"nodeType":"ExpressionStatement","src":"5711:33:52"},{"eventCall":{"arguments":[{"id":11936,"name":"guardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11765,"src":"5771:8:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11937,"name":"newGuardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11914,"src":"5781:11:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":11935,"name":"NewGuardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11858,"src":"5759:11:52","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":11938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5759:34:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11939,"nodeType":"EmitStatement","src":"5754:39:52"},{"expression":{"id":11942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11940,"name":"guardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11765,"src":"5803:8:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11941,"name":"newGuardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11914,"src":"5814:11:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5803:22:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11943,"nodeType":"ExpressionStatement","src":"5803:22:52"}]},"documentation":{"id":11912,"nodeType":"StructuredDocumentation","src":"5234:243:52","text":" @notice Sets the new executor guardian\n @param newGuardian The address of the new guardian\n @custom:access Must be call by guardian or owner\n @custom:event Emit NewGuardian with old and new guardian address"},"functionSelector":"8a0dac4a","id":11945,"implemented":true,"kind":"function","modifiers":[],"name":"setGuardian","nameLocation":"5491:11:52","nodeType":"FunctionDefinition","parameters":{"id":11915,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11914,"mutability":"mutable","name":"newGuardian","nameLocation":"5511:11:52","nodeType":"VariableDeclaration","scope":11945,"src":"5503:19:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11913,"name":"address","nodeType":"ElementaryTypeName","src":"5503:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5502:21:52"},"returnParameters":{"id":11916,"nodeType":"ParameterList","parameters":[],"src":"5533:0:52"},"scope":12706,"src":"5482:350:52","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12019,"nodeType":"Block","src":"6166:504:52","statements":[{"assignments":[11956],"declarations":[{"constant":false,"id":11956,"mutability":"mutable","name":"length","nameLocation":"6182:6:52","nodeType":"VariableDeclaration","scope":12019,"src":"6176:12:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":11955,"name":"uint8","nodeType":"ElementaryTypeName","src":"6176:5:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":11966,"initialValue":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":11965,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"arguments":[{"id":11960,"name":"ProposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11726,"src":"6202:12:52","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalType_$11726_$","typeString":"type(enum OmnichainGovernanceExecutor.ProposalType)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_enum$_ProposalType_$11726_$","typeString":"type(enum OmnichainGovernanceExecutor.ProposalType)"}],"id":11959,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6197:4:52","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6197:18:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_enum$_ProposalType_$11726","typeString":"type(enum OmnichainGovernanceExecutor.ProposalType)"}},"id":11962,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6216:3:52","memberName":"max","nodeType":"MemberAccess","src":"6197:22:52","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$11726","typeString":"enum OmnichainGovernanceExecutor.ProposalType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_ProposalType_$11726","typeString":"enum OmnichainGovernanceExecutor.ProposalType"}],"id":11958,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6191:5:52","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":11957,"name":"uint8","nodeType":"ElementaryTypeName","src":"6191:5:52","typeDescriptions":{}}},"id":11963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6191:29:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":11964,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6223:1:52","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6191:33:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"6176:48:52"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11968,"name":"timelocks_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11950,"src":"6255:10:52","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ITimelock_$13525_$dyn_memory_ptr","typeString":"contract ITimelock[] memory"}},"id":11969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6266:6:52","memberName":"length","nodeType":"MemberAccess","src":"6255:17:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":11970,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11956,"src":"6276:6:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"6255:27:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a61646454696d656c6f636b733a6e756d626572206f662074696d656c6f636b732073686f756c64206d6174636820746865206e756d626572206f6620676f7665726e616e636520726f75746573","id":11972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6296:108:52","typeDescriptions":{"typeIdentifier":"t_stringliteral_32080da14e7022f3ae138ecc980607030d5549ab2e1d714a8c2cbabbb48261e4","typeString":"literal_string \"OmnichainGovernanceExecutor::addTimelocks:number of timelocks should match the number of governance routes\""},"value":"OmnichainGovernanceExecutor::addTimelocks:number of timelocks should match the number of governance routes"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_32080da14e7022f3ae138ecc980607030d5549ab2e1d714a8c2cbabbb48261e4","typeString":"literal_string \"OmnichainGovernanceExecutor::addTimelocks:number of timelocks should match the number of governance routes\""}],"id":11967,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6234:7:52","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6234:180:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11974,"nodeType":"ExpressionStatement","src":"6234:180:52"},{"body":{"id":12017,"nodeType":"Block","src":"6455:209:52","statements":[{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":11987,"name":"timelocks_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11950,"src":"6498:10:52","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ITimelock_$13525_$dyn_memory_ptr","typeString":"contract ITimelock[] memory"}},"id":11989,"indexExpression":{"id":11988,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11976,"src":"6509:1:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6498:13:52","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$13525","typeString":"contract ITimelock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ITimelock_$13525","typeString":"contract ITimelock"}],"id":11986,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6490:7:52","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11985,"name":"address","nodeType":"ElementaryTypeName","src":"6490:7:52","typeDescriptions":{}}},"id":11990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6490:22:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11984,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10945,"src":"6469:20:52","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":11991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6469:44:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11992,"nodeType":"ExpressionStatement","src":"6469:44:52"},{"eventCall":{"arguments":[{"id":11994,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11976,"src":"6546:1:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"baseExpression":{"id":11997,"name":"proposalTimelocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11783,"src":"6557:17:52","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_ITimelock_$13525_$","typeString":"mapping(uint256 => contract ITimelock)"}},"id":11999,"indexExpression":{"id":11998,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11976,"src":"6575:1:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6557:20:52","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$13525","typeString":"contract ITimelock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ITimelock_$13525","typeString":"contract ITimelock"}],"id":11996,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6549:7:52","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11995,"name":"address","nodeType":"ElementaryTypeName","src":"6549:7:52","typeDescriptions":{}}},"id":12000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6549:29:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"baseExpression":{"id":12003,"name":"timelocks_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11950,"src":"6588:10:52","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ITimelock_$13525_$dyn_memory_ptr","typeString":"contract ITimelock[] memory"}},"id":12005,"indexExpression":{"id":12004,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11976,"src":"6599:1:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6588:13:52","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$13525","typeString":"contract ITimelock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ITimelock_$13525","typeString":"contract ITimelock"}],"id":12002,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6580:7:52","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12001,"name":"address","nodeType":"ElementaryTypeName","src":"6580:7:52","typeDescriptions":{}}},"id":12006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6580:22:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":11993,"name":"TimelockAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11844,"src":"6532:13:52","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$_t_address_$_t_address_$returns$__$","typeString":"function (uint8,address,address)"}},"id":12007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6532:71:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12008,"nodeType":"EmitStatement","src":"6527:76:52"},{"expression":{"id":12015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":12009,"name":"proposalTimelocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11783,"src":"6617:17:52","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_ITimelock_$13525_$","typeString":"mapping(uint256 => contract ITimelock)"}},"id":12011,"indexExpression":{"id":12010,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11976,"src":"6635:1:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6617:20:52","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$13525","typeString":"contract ITimelock"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":12012,"name":"timelocks_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11950,"src":"6640:10:52","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ITimelock_$13525_$dyn_memory_ptr","typeString":"contract ITimelock[] memory"}},"id":12014,"indexExpression":{"id":12013,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11976,"src":"6651:1:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6640:13:52","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$13525","typeString":"contract ITimelock"}},"src":"6617:36:52","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$13525","typeString":"contract ITimelock"}},"id":12016,"nodeType":"ExpressionStatement","src":"6617:36:52"}]},"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":11980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11978,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11976,"src":"6438:1:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":11979,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11956,"src":"6442:6:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"6438:10:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12018,"initializationExpression":{"assignments":[11976],"declarations":[{"constant":false,"id":11976,"mutability":"mutable","name":"i","nameLocation":"6435:1:52","nodeType":"VariableDeclaration","scope":12018,"src":"6429:7:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":11975,"name":"uint8","nodeType":"ElementaryTypeName","src":"6429:5:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":11977,"nodeType":"VariableDeclarationStatement","src":"6429:7:52"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":11982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6450:3:52","subExpression":{"id":11981,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11976,"src":"6452:1:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":11983,"nodeType":"ExpressionStatement","src":"6450:3:52"},"nodeType":"ForStatement","src":"6424:240:52"}]},"documentation":{"id":11946,"nodeType":"StructuredDocumentation","src":"5838:251:52","text":" @notice Add timelocks to the ProposalTimelocks mapping\n @param timelocks_ Array of addresses of all 3 timelocks\n @custom:access Only owner\n @custom:event Emits TimelockAdded with old and new timelock and route type"},"functionSelector":"ed66039b","id":12020,"implemented":true,"kind":"function","modifiers":[{"id":11953,"kind":"modifierInvocation","modifierName":{"id":11952,"name":"onlyOwner","nameLocations":["6156:9:52"],"nodeType":"IdentifierPath","referencedDeclaration":6995,"src":"6156:9:52"},"nodeType":"ModifierInvocation","src":"6156:9:52"}],"name":"addTimelocks","nameLocation":"6103:12:52","nodeType":"FunctionDefinition","parameters":{"id":11951,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11950,"mutability":"mutable","name":"timelocks_","nameLocation":"6135:10:52","nodeType":"VariableDeclaration","scope":12020,"src":"6116:29:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ITimelock_$13525_$dyn_memory_ptr","typeString":"contract ITimelock[]"},"typeName":{"baseType":{"id":11948,"nodeType":"UserDefinedTypeName","pathNode":{"id":11947,"name":"ITimelock","nameLocations":["6116:9:52"],"nodeType":"IdentifierPath","referencedDeclaration":13525,"src":"6116:9:52"},"referencedDeclaration":13525,"src":"6116:9:52","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$13525","typeString":"contract ITimelock"}},"id":11949,"nodeType":"ArrayTypeName","src":"6116:11:52","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ITimelock_$13525_$dyn_storage_ptr","typeString":"contract ITimelock[]"}},"visibility":"internal"}],"src":"6115:31:52"},"returnParameters":{"id":11954,"nodeType":"ParameterList","parameters":[],"src":"6166:0:52"},"scope":12706,"src":"6094:576:52","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12112,"nodeType":"Block","src":"6958:804:52","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ProposalState_$11762","typeString":"enum OmnichainGovernanceExecutor.ProposalState"},"id":12034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":12030,"name":"proposalId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12023,"src":"6995:11:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12029,"name":"state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12337,"src":"6989:5:52","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$11762_$","typeString":"function (uint256) view returns (enum OmnichainGovernanceExecutor.ProposalState)"}},"id":12031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6989:18:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$11762","typeString":"enum OmnichainGovernanceExecutor.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":12032,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11762,"src":"7011:13:52","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$11762_$","typeString":"type(enum OmnichainGovernanceExecutor.ProposalState)"}},"id":12033,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7025:6:52","memberName":"Queued","nodeType":"MemberAccess","referencedDeclaration":11760,"src":"7011:20:52","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$11762","typeString":"enum OmnichainGovernanceExecutor.ProposalState"}},"src":"6989:42:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a657865637574653a2070726f706f73616c2063616e206f6e6c7920626520657865637574656420696620697420697320717565756564","id":12035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7045:85:52","typeDescriptions":{"typeIdentifier":"t_stringliteral_e4bcaaea546383f3f12ee7e8affb6838fe2629172da652fe547c7dfbf4d39f35","typeString":"literal_string \"OmnichainGovernanceExecutor::execute: proposal can only be executed if it is queued\""},"value":"OmnichainGovernanceExecutor::execute: proposal can only be executed if it is queued"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e4bcaaea546383f3f12ee7e8affb6838fe2629172da652fe547c7dfbf4d39f35","typeString":"literal_string \"OmnichainGovernanceExecutor::execute: proposal can only be executed if it is queued\""}],"id":12028,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6968:7:52","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6968:172:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12037,"nodeType":"ExpressionStatement","src":"6968:172:52"},{"assignments":[12040],"declarations":[{"constant":false,"id":12040,"mutability":"mutable","name":"proposal","nameLocation":"7168:8:52","nodeType":"VariableDeclaration","scope":12112,"src":"7151:25:52","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$11758_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal"},"typeName":{"id":12039,"nodeType":"UserDefinedTypeName","pathNode":{"id":12038,"name":"Proposal","nameLocations":["7151:8:52"],"nodeType":"IdentifierPath","referencedDeclaration":11758,"src":"7151:8:52"},"referencedDeclaration":11758,"src":"7151:8:52","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$11758_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal"}},"visibility":"internal"}],"id":12044,"initialValue":{"baseExpression":{"id":12041,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11777,"src":"7179:9:52","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$11758_storage_$","typeString":"mapping(uint256 => struct OmnichainGovernanceExecutor.Proposal storage ref)"}},"id":12043,"indexExpression":{"id":12042,"name":"proposalId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12023,"src":"7189:11:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7179:22:52","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$11758_storage","typeString":"struct OmnichainGovernanceExecutor.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"7151:50:52"},{"expression":{"id":12049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12045,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12040,"src":"7211:8:52","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$11758_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":12047,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7220:8:52","memberName":"executed","nodeType":"MemberAccess","referencedDeclaration":11754,"src":"7211:17:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":12048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7231:4:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"7211:24:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12050,"nodeType":"ExpressionStatement","src":"7211:24:52"},{"assignments":[12053],"declarations":[{"constant":false,"id":12053,"mutability":"mutable","name":"timelock","nameLocation":"7255:8:52","nodeType":"VariableDeclaration","scope":12112,"src":"7245:18:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$13525","typeString":"contract ITimelock"},"typeName":{"id":12052,"nodeType":"UserDefinedTypeName","pathNode":{"id":12051,"name":"ITimelock","nameLocations":["7245:9:52"],"nodeType":"IdentifierPath","referencedDeclaration":13525,"src":"7245:9:52"},"referencedDeclaration":13525,"src":"7245:9:52","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$13525","typeString":"contract ITimelock"}},"visibility":"internal"}],"id":12058,"initialValue":{"baseExpression":{"id":12054,"name":"proposalTimelocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11783,"src":"7266:17:52","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_ITimelock_$13525_$","typeString":"mapping(uint256 => contract ITimelock)"}},"id":12057,"indexExpression":{"expression":{"id":12055,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12040,"src":"7284:8:52","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$11758_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":12056,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7293:12:52","memberName":"proposalType","nodeType":"MemberAccess","referencedDeclaration":11757,"src":"7284:21:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7266:40:52","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$13525","typeString":"contract ITimelock"}},"nodeType":"VariableDeclarationStatement","src":"7245:61:52"},{"assignments":[12060],"declarations":[{"constant":false,"id":12060,"mutability":"mutable","name":"eta","nameLocation":"7324:3:52","nodeType":"VariableDeclaration","scope":12112,"src":"7316:11:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12059,"name":"uint256","nodeType":"ElementaryTypeName","src":"7316:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12063,"initialValue":{"expression":{"id":12061,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12040,"src":"7330:8:52","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$11758_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":12062,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7339:3:52","memberName":"eta","nodeType":"MemberAccess","referencedDeclaration":11732,"src":"7330:12:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7316:26:52"},{"assignments":[12065],"declarations":[{"constant":false,"id":12065,"mutability":"mutable","name":"length","nameLocation":"7360:6:52","nodeType":"VariableDeclaration","scope":12112,"src":"7352:14:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12064,"name":"uint256","nodeType":"ElementaryTypeName","src":"7352:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12069,"initialValue":{"expression":{"expression":{"id":12066,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12040,"src":"7369:8:52","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$11758_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":12067,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7378:7:52","memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":11736,"src":"7369:16:52","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":12068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7386:6:52","memberName":"length","nodeType":"MemberAccess","src":"7369:23:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7352:40:52"},{"eventCall":{"arguments":[{"id":12071,"name":"proposalId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12023,"src":"7425:11:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12070,"name":"ProposalExecuted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11819,"src":"7408:16:52","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":12072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7408:29:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12073,"nodeType":"EmitStatement","src":"7403:34:52"},{"body":{"id":12105,"nodeType":"Block","src":"7481:239:52","statements":[{"expression":{"arguments":[{"baseExpression":{"expression":{"id":12086,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12040,"src":"7540:8:52","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$11758_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":12087,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7549:7:52","memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":11736,"src":"7540:16:52","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":12089,"indexExpression":{"id":12088,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12075,"src":"7557:1:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7540:19:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"expression":{"id":12090,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12040,"src":"7577:8:52","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$11758_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":12091,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7586:6:52","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":11740,"src":"7577:15:52","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":12093,"indexExpression":{"id":12092,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12075,"src":"7593:1:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7577:18:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"expression":{"id":12094,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12040,"src":"7613:8:52","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$11758_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":12095,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7622:10:52","memberName":"signatures","nodeType":"MemberAccess","referencedDeclaration":11744,"src":"7613:19:52","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"id":12097,"indexExpression":{"id":12096,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12075,"src":"7633:1:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7613:22:52","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"baseExpression":{"expression":{"id":12098,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12040,"src":"7653:8:52","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$11758_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":12099,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7662:9:52","memberName":"calldatas","nodeType":"MemberAccess","referencedDeclaration":11748,"src":"7653:18:52","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage","typeString":"bytes storage ref[] storage ref"}},"id":12101,"indexExpression":{"id":12100,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12075,"src":"7672:1:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7653:21:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"id":12102,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12060,"src":"7692:3:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12083,"name":"timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12053,"src":"7495:8:52","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$13525","typeString":"contract ITimelock"}},"id":12085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7504:18:52","memberName":"executeTransaction","nodeType":"MemberAccess","referencedDeclaration":13524,"src":"7495:27:52","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,uint256,string memory,bytes memory,uint256) payable external returns (bytes memory)"}},"id":12103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7495:214:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":12104,"nodeType":"ExpressionStatement","src":"7495:214:52"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12077,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12075,"src":"7464:1:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":12078,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12065,"src":"7468:6:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7464:10:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12106,"initializationExpression":{"assignments":[12075],"declarations":[{"constant":false,"id":12075,"mutability":"mutable","name":"i","nameLocation":"7461:1:52","nodeType":"VariableDeclaration","scope":12106,"src":"7453:9:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12074,"name":"uint256","nodeType":"ElementaryTypeName","src":"7453:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12076,"nodeType":"VariableDeclarationStatement","src":"7453:9:52"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":12081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7476:3:52","subExpression":{"id":12080,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12075,"src":"7478:1:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12082,"nodeType":"ExpressionStatement","src":"7476:3:52"},"nodeType":"ForStatement","src":"7448:272:52"},{"expression":{"id":12110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"7729:26:52","subExpression":{"baseExpression":{"id":12107,"name":"queued","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11788,"src":"7736:6:52","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"}},"id":12109,"indexExpression":{"id":12108,"name":"proposalId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12023,"src":"7743:11:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7736:19:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12111,"nodeType":"ExpressionStatement","src":"7729:26:52"}]},"documentation":{"id":12021,"nodeType":"StructuredDocumentation","src":"6676:217:52","text":" @notice Executes a queued proposal if eta has passed\n @param proposalId_ Id of proposal that is to be executed\n @custom:event Emits ProposalExecuted with proposal id of executed proposal"},"functionSelector":"fe0d94c1","id":12113,"implemented":true,"kind":"function","modifiers":[{"id":12026,"kind":"modifierInvocation","modifierName":{"id":12025,"name":"nonReentrant","nameLocations":["6945:12:52"],"nodeType":"IdentifierPath","referencedDeclaration":7214,"src":"6945:12:52"},"nodeType":"ModifierInvocation","src":"6945:12:52"}],"name":"execute","nameLocation":"6907:7:52","nodeType":"FunctionDefinition","parameters":{"id":12024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12023,"mutability":"mutable","name":"proposalId_","nameLocation":"6923:11:52","nodeType":"VariableDeclaration","scope":12113,"src":"6915:19:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12022,"name":"uint256","nodeType":"ElementaryTypeName","src":"6915:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6914:21:52"},"returnParameters":{"id":12027,"nodeType":"ParameterList","parameters":[],"src":"6958:0:52"},"scope":12706,"src":"6898:864:52","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12211,"nodeType":"Block","src":"8124:904:52","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ProposalState_$11762","typeString":"enum OmnichainGovernanceExecutor.ProposalState"},"id":12125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":12121,"name":"proposalId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12116,"src":"8161:11:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12120,"name":"state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12337,"src":"8155:5:52","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$11762_$","typeString":"function (uint256) view returns (enum OmnichainGovernanceExecutor.ProposalState)"}},"id":12122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8155:18:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$11762","typeString":"enum OmnichainGovernanceExecutor.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":12123,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11762,"src":"8177:13:52","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$11762_$","typeString":"type(enum OmnichainGovernanceExecutor.ProposalState)"}},"id":12124,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8191:6:52","memberName":"Queued","nodeType":"MemberAccess","referencedDeclaration":11760,"src":"8177:20:52","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$11762","typeString":"enum OmnichainGovernanceExecutor.ProposalState"}},"src":"8155:42:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a63616e63656c3a2070726f706f73616c2073686f756c642062652071756575656420616e64206e6f74206578656375746564","id":12126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8211:81:52","typeDescriptions":{"typeIdentifier":"t_stringliteral_4258c99d44f362f78e979b44d639851c2c0ef199c76ece73b41f8dc6845abafe","typeString":"literal_string \"OmnichainGovernanceExecutor::cancel: proposal should be queued and not executed\""},"value":"OmnichainGovernanceExecutor::cancel: proposal should be queued and not executed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4258c99d44f362f78e979b44d639851c2c0ef199c76ece73b41f8dc6845abafe","typeString":"literal_string \"OmnichainGovernanceExecutor::cancel: proposal should be queued and not executed\""}],"id":12119,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8134:7:52","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8134:168:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12128,"nodeType":"ExpressionStatement","src":"8134:168:52"},{"assignments":[12131],"declarations":[{"constant":false,"id":12131,"mutability":"mutable","name":"proposal","nameLocation":"8329:8:52","nodeType":"VariableDeclaration","scope":12211,"src":"8312:25:52","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$11758_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal"},"typeName":{"id":12130,"nodeType":"UserDefinedTypeName","pathNode":{"id":12129,"name":"Proposal","nameLocations":["8312:8:52"],"nodeType":"IdentifierPath","referencedDeclaration":11758,"src":"8312:8:52"},"referencedDeclaration":11758,"src":"8312:8:52","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$11758_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal"}},"visibility":"internal"}],"id":12135,"initialValue":{"baseExpression":{"id":12132,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11777,"src":"8340:9:52","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$11758_storage_$","typeString":"mapping(uint256 => struct OmnichainGovernanceExecutor.Proposal storage ref)"}},"id":12134,"indexExpression":{"id":12133,"name":"proposalId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12116,"src":"8350:11:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8340:22:52","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$11758_storage","typeString":"struct OmnichainGovernanceExecutor.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"8312:50:52"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12137,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8380:3:52","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8384:6:52","memberName":"sender","nodeType":"MemberAccess","src":"8380:10:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":12139,"name":"guardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11765,"src":"8394:8:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8380:22:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a63616e63656c3a2073656e646572206d75737420626520677561726469616e","id":12141,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8404:62:52","typeDescriptions":{"typeIdentifier":"t_stringliteral_fb16e4905cd1d461f30a69908479246c84efc58d7cbdb9b1113d7d74e2108621","typeString":"literal_string \"OmnichainGovernanceExecutor::cancel: sender must be guardian\""},"value":"OmnichainGovernanceExecutor::cancel: sender must be guardian"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fb16e4905cd1d461f30a69908479246c84efc58d7cbdb9b1113d7d74e2108621","typeString":"literal_string \"OmnichainGovernanceExecutor::cancel: sender must be guardian\""}],"id":12136,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8372:7:52","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8372:95:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12143,"nodeType":"ExpressionStatement","src":"8372:95:52"},{"expression":{"id":12148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12144,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12131,"src":"8478:8:52","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$11758_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":12146,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8487:8:52","memberName":"canceled","nodeType":"MemberAccess","referencedDeclaration":11751,"src":"8478:17:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":12147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8498:4:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"8478:24:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12149,"nodeType":"ExpressionStatement","src":"8478:24:52"},{"assignments":[12152],"declarations":[{"constant":false,"id":12152,"mutability":"mutable","name":"timelock","nameLocation":"8522:8:52","nodeType":"VariableDeclaration","scope":12211,"src":"8512:18:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$13525","typeString":"contract ITimelock"},"typeName":{"id":12151,"nodeType":"UserDefinedTypeName","pathNode":{"id":12150,"name":"ITimelock","nameLocations":["8512:9:52"],"nodeType":"IdentifierPath","referencedDeclaration":13525,"src":"8512:9:52"},"referencedDeclaration":13525,"src":"8512:9:52","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$13525","typeString":"contract ITimelock"}},"visibility":"internal"}],"id":12157,"initialValue":{"baseExpression":{"id":12153,"name":"proposalTimelocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11783,"src":"8533:17:52","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_ITimelock_$13525_$","typeString":"mapping(uint256 => contract ITimelock)"}},"id":12156,"indexExpression":{"expression":{"id":12154,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12131,"src":"8551:8:52","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$11758_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":12155,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8560:12:52","memberName":"proposalType","nodeType":"MemberAccess","referencedDeclaration":11757,"src":"8551:21:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8533:40:52","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$13525","typeString":"contract ITimelock"}},"nodeType":"VariableDeclarationStatement","src":"8512:61:52"},{"assignments":[12159],"declarations":[{"constant":false,"id":12159,"mutability":"mutable","name":"eta","nameLocation":"8591:3:52","nodeType":"VariableDeclaration","scope":12211,"src":"8583:11:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12158,"name":"uint256","nodeType":"ElementaryTypeName","src":"8583:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12162,"initialValue":{"expression":{"id":12160,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12131,"src":"8597:8:52","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$11758_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":12161,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8606:3:52","memberName":"eta","nodeType":"MemberAccess","referencedDeclaration":11732,"src":"8597:12:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8583:26:52"},{"assignments":[12164],"declarations":[{"constant":false,"id":12164,"mutability":"mutable","name":"length","nameLocation":"8627:6:52","nodeType":"VariableDeclaration","scope":12211,"src":"8619:14:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12163,"name":"uint256","nodeType":"ElementaryTypeName","src":"8619:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12168,"initialValue":{"expression":{"expression":{"id":12165,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12131,"src":"8636:8:52","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$11758_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":12166,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8645:7:52","memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":11736,"src":"8636:16:52","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":12167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8653:6:52","memberName":"length","nodeType":"MemberAccess","src":"8636:23:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8619:40:52"},{"eventCall":{"arguments":[{"id":12170,"name":"proposalId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12116,"src":"8692:11:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12169,"name":"ProposalCanceled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11835,"src":"8675:16:52","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":12171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8675:29:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12172,"nodeType":"EmitStatement","src":"8670:34:52"},{"body":{"id":12204,"nodeType":"Block","src":"8748:238:52","statements":[{"expression":{"arguments":[{"baseExpression":{"expression":{"id":12185,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12131,"src":"8806:8:52","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$11758_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":12186,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8815:7:52","memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":11736,"src":"8806:16:52","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":12188,"indexExpression":{"id":12187,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12174,"src":"8823:1:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8806:19:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"expression":{"id":12189,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12131,"src":"8843:8:52","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$11758_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":12190,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8852:6:52","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":11740,"src":"8843:15:52","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":12192,"indexExpression":{"id":12191,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12174,"src":"8859:1:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8843:18:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"expression":{"id":12193,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12131,"src":"8879:8:52","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$11758_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":12194,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8888:10:52","memberName":"signatures","nodeType":"MemberAccess","referencedDeclaration":11744,"src":"8879:19:52","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"id":12196,"indexExpression":{"id":12195,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12174,"src":"8899:1:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8879:22:52","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"baseExpression":{"expression":{"id":12197,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12131,"src":"8919:8:52","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$11758_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":12198,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8928:9:52","memberName":"calldatas","nodeType":"MemberAccess","referencedDeclaration":11748,"src":"8919:18:52","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage","typeString":"bytes storage ref[] storage ref"}},"id":12200,"indexExpression":{"id":12199,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12174,"src":"8938:1:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8919:21:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"id":12201,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12159,"src":"8958:3:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12182,"name":"timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12152,"src":"8762:8:52","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$13525","typeString":"contract ITimelock"}},"id":12184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8771:17:52","memberName":"cancelTransaction","nodeType":"MemberAccess","referencedDeclaration":13508,"src":"8762:26:52","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (address,uint256,string memory,bytes memory,uint256) external"}},"id":12202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8762:213:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12203,"nodeType":"ExpressionStatement","src":"8762:213:52"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12176,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12174,"src":"8731:1:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":12177,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12164,"src":"8735:6:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8731:10:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12205,"initializationExpression":{"assignments":[12174],"declarations":[{"constant":false,"id":12174,"mutability":"mutable","name":"i","nameLocation":"8728:1:52","nodeType":"VariableDeclaration","scope":12205,"src":"8720:9:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12173,"name":"uint256","nodeType":"ElementaryTypeName","src":"8720:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12175,"nodeType":"VariableDeclarationStatement","src":"8720:9:52"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":12180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"8743:3:52","subExpression":{"id":12179,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12174,"src":"8745:1:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12181,"nodeType":"ExpressionStatement","src":"8743:3:52"},"nodeType":"ForStatement","src":"8715:271:52"},{"expression":{"id":12209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"8995:26:52","subExpression":{"baseExpression":{"id":12206,"name":"queued","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11788,"src":"9002:6:52","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"}},"id":12208,"indexExpression":{"id":12207,"name":"proposalId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12116,"src":"9009:11:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9002:19:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12210,"nodeType":"ExpressionStatement","src":"8995:26:52"}]},"documentation":{"id":12114,"nodeType":"StructuredDocumentation","src":"7768:305:52","text":" @notice Cancels a proposal only if sender is the guardian and proposal is not executed\n @param proposalId_ Id of proposal that is to be canceled\n @custom:access Sender must be the guardian\n @custom:event Emits ProposalCanceled with proposal id of the canceled proposal"},"functionSelector":"40e58ee5","id":12212,"implemented":true,"kind":"function","modifiers":[],"name":"cancel","nameLocation":"8087:6:52","nodeType":"FunctionDefinition","parameters":{"id":12117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12116,"mutability":"mutable","name":"proposalId_","nameLocation":"8102:11:52","nodeType":"VariableDeclaration","scope":12212,"src":"8094:19:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12115,"name":"uint256","nodeType":"ElementaryTypeName","src":"8094:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8093:21:52"},"returnParameters":{"id":12118,"nodeType":"ParameterList","parameters":[],"src":"8124:0:52"},"scope":12706,"src":"8078:950:52","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12253,"nodeType":"Block","src":"9431:385:52","statements":[{"assignments":[12223],"declarations":[{"constant":false,"id":12223,"mutability":"mutable","name":"proposalTypeLength","nameLocation":"9447:18:52","nodeType":"VariableDeclaration","scope":12253,"src":"9441:24:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":12222,"name":"uint8","nodeType":"ElementaryTypeName","src":"9441:5:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":12233,"initialValue":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":12232,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"arguments":[{"id":12227,"name":"ProposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11726,"src":"9479:12:52","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalType_$11726_$","typeString":"type(enum OmnichainGovernanceExecutor.ProposalType)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_enum$_ProposalType_$11726_$","typeString":"type(enum OmnichainGovernanceExecutor.ProposalType)"}],"id":12226,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"9474:4:52","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":12228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9474:18:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_enum$_ProposalType_$11726","typeString":"type(enum OmnichainGovernanceExecutor.ProposalType)"}},"id":12229,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9493:3:52","memberName":"max","nodeType":"MemberAccess","src":"9474:22:52","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$11726","typeString":"enum OmnichainGovernanceExecutor.ProposalType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_ProposalType_$11726","typeString":"enum OmnichainGovernanceExecutor.ProposalType"}],"id":12225,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9468:5:52","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":12224,"name":"uint8","nodeType":"ElementaryTypeName","src":"9468:5:52","typeDescriptions":{}}},"id":12230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9468:29:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":12231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9500:1:52","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9468:33:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"9441:60:52"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":12237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12235,"name":"proposalType_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12217,"src":"9532:13:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":12236,"name":"proposalTypeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12223,"src":"9548:18:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"9532:34:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a73657454696d656c6f636b50656e64696e6741646d696e3a20696e76616c69642070726f706f73616c2074797065","id":12238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9580:77:52","typeDescriptions":{"typeIdentifier":"t_stringliteral_f08e2b8e61b5846c8974e694064edfd99da14433722704c9122062e543c20627","typeString":"literal_string \"OmnichainGovernanceExecutor::setTimelockPendingAdmin: invalid proposal type\""},"value":"OmnichainGovernanceExecutor::setTimelockPendingAdmin: invalid proposal type"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f08e2b8e61b5846c8974e694064edfd99da14433722704c9122062e543c20627","typeString":"literal_string \"OmnichainGovernanceExecutor::setTimelockPendingAdmin: invalid proposal type\""}],"id":12234,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9511:7:52","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9511:156:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12240,"nodeType":"ExpressionStatement","src":"9511:156:52"},{"expression":{"arguments":[{"id":12245,"name":"pendingAdmin_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12215,"src":"9727:13:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"id":12241,"name":"proposalTimelocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11783,"src":"9678:17:52","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_ITimelock_$13525_$","typeString":"mapping(uint256 => contract ITimelock)"}},"id":12243,"indexExpression":{"id":12242,"name":"proposalType_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12217,"src":"9696:13:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9678:32:52","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$13525","typeString":"contract ITimelock"}},"id":12244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9711:15:52","memberName":"setPendingAdmin","nodeType":"MemberAccess","referencedDeclaration":13470,"src":"9678:48:52","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":12246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9678:63:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12247,"nodeType":"ExpressionStatement","src":"9678:63:52"},{"eventCall":{"arguments":[{"id":12249,"name":"pendingAdmin_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12215,"src":"9780:13:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12250,"name":"proposalType_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12217,"src":"9795:13:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":12248,"name":"SetTimelockPendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11865,"src":"9756:23:52","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint8_$returns$__$","typeString":"function (address,uint8)"}},"id":12251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9756:53:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12252,"nodeType":"EmitStatement","src":"9751:58:52"}]},"documentation":{"id":12213,"nodeType":"StructuredDocumentation","src":"9034:296:52","text":" @notice Sets the new pending admin of the Timelock\n @param pendingAdmin_ Address of new pending admin\n @param proposalType_ Type of proposal\n @custom:access Only owner\n @custom:event Emits SetTimelockPendingAdmin with new pending admin and proposal type"},"functionSelector":"f4fcfcca","id":12254,"implemented":true,"kind":"function","modifiers":[{"id":12220,"kind":"modifierInvocation","modifierName":{"id":12219,"name":"onlyOwner","nameLocations":["9421:9:52"],"nodeType":"IdentifierPath","referencedDeclaration":6995,"src":"9421:9:52"},"nodeType":"ModifierInvocation","src":"9421:9:52"}],"name":"setTimelockPendingAdmin","nameLocation":"9344:23:52","nodeType":"FunctionDefinition","parameters":{"id":12218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12215,"mutability":"mutable","name":"pendingAdmin_","nameLocation":"9376:13:52","nodeType":"VariableDeclaration","scope":12254,"src":"9368:21:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12214,"name":"address","nodeType":"ElementaryTypeName","src":"9368:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12217,"mutability":"mutable","name":"proposalType_","nameLocation":"9397:13:52","nodeType":"VariableDeclaration","scope":12254,"src":"9391:19:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":12216,"name":"uint8","nodeType":"ElementaryTypeName","src":"9391:5:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"9367:44:52"},"returnParameters":{"id":12221,"nodeType":"ParameterList","parameters":[],"src":"9431:0:52"},"scope":12706,"src":"9335:481:52","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[4107],"body":{"id":12293,"nodeType":"Block","src":"10360:268:52","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":12280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":12273,"name":"trustedRemoteLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3351,"src":"10401:19:52","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":12275,"indexExpression":{"id":12274,"name":"srcChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12257,"src":"10421:11:52","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10401:32:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}],"id":12272,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"10391:9:52","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":12276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10391:43:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":12278,"name":"srcAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12259,"src":"10448:11:52","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":12277,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"10438:9:52","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":12279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10438:22:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"10391:69:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a72657472794d6573736167653a206e6f74206120747275737465642072656d6f7465","id":12281,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10474:65:52","typeDescriptions":{"typeIdentifier":"t_stringliteral_8604b21a2334391c4295b76ee13c85fa92759d2c1e0134eda5b5a12de87b6756","typeString":"literal_string \"OmnichainGovernanceExecutor::retryMessage: not a trusted remote\""},"value":"OmnichainGovernanceExecutor::retryMessage: not a trusted remote"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8604b21a2334391c4295b76ee13c85fa92759d2c1e0134eda5b5a12de87b6756","typeString":"literal_string \"OmnichainGovernanceExecutor::retryMessage: not a trusted remote\""}],"id":12271,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10370:7:52","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10370:179:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12283,"nodeType":"ExpressionStatement","src":"10370:179:52"},{"expression":{"arguments":[{"id":12287,"name":"srcChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12257,"src":"10578:11:52","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":12288,"name":"srcAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12259,"src":"10591:11:52","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":12289,"name":"nonce_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12261,"src":"10604:6:52","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":12290,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12263,"src":"10612:8:52","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":12284,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"10559:5:52","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_OmnichainGovernanceExecutor_$12706_$","typeString":"type(contract super OmnichainGovernanceExecutor)"}},"id":12286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10565:12:52","memberName":"retryMessage","nodeType":"MemberAccess","referencedDeclaration":4107,"src":"10559:18:52","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_bytes_calldata_ptr_$_t_uint64_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (uint16,bytes calldata,uint64,bytes calldata)"}},"id":12291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10559:62:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12292,"nodeType":"ExpressionStatement","src":"10559:62:52"}]},"documentation":{"id":12255,"nodeType":"StructuredDocumentation","src":"9822:338:52","text":" @notice Resends a previously failed message\n @param srcChainId_ Source chain Id\n @param srcAddress_ Source address => local app address + remote app address\n @param nonce_ Nonce to identify failed message\n @param payload_ The payload of the message to be retried\n @custom:access Only owner"},"functionSelector":"d1deba1f","id":12294,"implemented":true,"kind":"function","modifiers":[{"id":12267,"kind":"modifierInvocation","modifierName":{"id":12266,"name":"onlyOwner","nameLocations":["10337:9:52"],"nodeType":"IdentifierPath","referencedDeclaration":6995,"src":"10337:9:52"},"nodeType":"ModifierInvocation","src":"10337:9:52"},{"id":12269,"kind":"modifierInvocation","modifierName":{"id":12268,"name":"nonReentrant","nameLocations":["10347:12:52"],"nodeType":"IdentifierPath","referencedDeclaration":7214,"src":"10347:12:52"},"nodeType":"ModifierInvocation","src":"10347:12:52"}],"name":"retryMessage","nameLocation":"10174:12:52","nodeType":"FunctionDefinition","overrides":{"id":12265,"nodeType":"OverrideSpecifier","overrides":[],"src":"10328:8:52"},"parameters":{"id":12264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12257,"mutability":"mutable","name":"srcChainId_","nameLocation":"10203:11:52","nodeType":"VariableDeclaration","scope":12294,"src":"10196:18:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":12256,"name":"uint16","nodeType":"ElementaryTypeName","src":"10196:6:52","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":12259,"mutability":"mutable","name":"srcAddress_","nameLocation":"10239:11:52","nodeType":"VariableDeclaration","scope":12294,"src":"10224:26:52","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12258,"name":"bytes","nodeType":"ElementaryTypeName","src":"10224:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":12261,"mutability":"mutable","name":"nonce_","nameLocation":"10267:6:52","nodeType":"VariableDeclaration","scope":12294,"src":"10260:13:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":12260,"name":"uint64","nodeType":"ElementaryTypeName","src":"10260:6:52","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":12263,"mutability":"mutable","name":"payload_","nameLocation":"10298:8:52","nodeType":"VariableDeclaration","scope":12294,"src":"10283:23:52","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12262,"name":"bytes","nodeType":"ElementaryTypeName","src":"10283:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"10186:126:52"},"returnParameters":{"id":12270,"nodeType":"ParameterList","parameters":[],"src":"10360:0:52"},"scope":12706,"src":"10165:463:52","stateMutability":"payable","virtual":false,"visibility":"public"},{"body":{"id":12336,"nodeType":"Block","src":"10845:429:52","statements":[{"assignments":[12305],"declarations":[{"constant":false,"id":12305,"mutability":"mutable","name":"proposal","nameLocation":"10872:8:52","nodeType":"VariableDeclaration","scope":12336,"src":"10855:25:52","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$11758_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal"},"typeName":{"id":12304,"nodeType":"UserDefinedTypeName","pathNode":{"id":12303,"name":"Proposal","nameLocations":["10855:8:52"],"nodeType":"IdentifierPath","referencedDeclaration":11758,"src":"10855:8:52"},"referencedDeclaration":11758,"src":"10855:8:52","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$11758_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal"}},"visibility":"internal"}],"id":12309,"initialValue":{"baseExpression":{"id":12306,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11777,"src":"10883:9:52","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$11758_storage_$","typeString":"mapping(uint256 => struct OmnichainGovernanceExecutor.Proposal storage ref)"}},"id":12308,"indexExpression":{"id":12307,"name":"proposalId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12297,"src":"10893:11:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10883:22:52","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$11758_storage","typeString":"struct OmnichainGovernanceExecutor.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10855:50:52"},{"condition":{"expression":{"id":12310,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12305,"src":"10919:8:52","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$11758_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":12311,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10928:8:52","memberName":"canceled","nodeType":"MemberAccess","referencedDeclaration":11751,"src":"10919:17:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"expression":{"id":12316,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12305,"src":"11002:8:52","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$11758_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":12317,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11011:8:52","memberName":"executed","nodeType":"MemberAccess","referencedDeclaration":11754,"src":"11002:17:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"baseExpression":{"id":12322,"name":"queued","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11788,"src":"11085:6:52","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"}},"id":12324,"indexExpression":{"id":12323,"name":"proposalId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12297,"src":"11092:11:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11085:19:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":12332,"nodeType":"Block","src":"11217:51:52","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":12329,"name":"InvalidProposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11868,"src":"11238:17:52","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":12330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11238:19:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12331,"nodeType":"RevertStatement","src":"11231:26:52"}]},"id":12333,"nodeType":"IfStatement","src":"11081:187:52","trueBody":{"id":12328,"nodeType":"Block","src":"11106:105:52","statements":[{"expression":{"expression":{"id":12325,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11762,"src":"11180:13:52","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$11762_$","typeString":"type(enum OmnichainGovernanceExecutor.ProposalState)"}},"id":12326,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11194:6:52","memberName":"Queued","nodeType":"MemberAccess","referencedDeclaration":11760,"src":"11180:20:52","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$11762","typeString":"enum OmnichainGovernanceExecutor.ProposalState"}},"functionReturnParameters":12302,"id":12327,"nodeType":"Return","src":"11173:27:52"}]}},"id":12334,"nodeType":"IfStatement","src":"10998:270:52","trueBody":{"id":12321,"nodeType":"Block","src":"11021:54:52","statements":[{"expression":{"expression":{"id":12318,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11762,"src":"11042:13:52","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$11762_$","typeString":"type(enum OmnichainGovernanceExecutor.ProposalState)"}},"id":12319,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11056:8:52","memberName":"Executed","nodeType":"MemberAccess","referencedDeclaration":11761,"src":"11042:22:52","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$11762","typeString":"enum OmnichainGovernanceExecutor.ProposalState"}},"functionReturnParameters":12302,"id":12320,"nodeType":"Return","src":"11035:29:52"}]}},"id":12335,"nodeType":"IfStatement","src":"10915:353:52","trueBody":{"id":12315,"nodeType":"Block","src":"10938:54:52","statements":[{"expression":{"expression":{"id":12312,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11762,"src":"10959:13:52","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$11762_$","typeString":"type(enum OmnichainGovernanceExecutor.ProposalState)"}},"id":12313,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10973:8:52","memberName":"Canceled","nodeType":"MemberAccess","referencedDeclaration":11759,"src":"10959:22:52","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$11762","typeString":"enum OmnichainGovernanceExecutor.ProposalState"}},"functionReturnParameters":12302,"id":12314,"nodeType":"Return","src":"10952:29:52"}]}}]},"documentation":{"id":12295,"nodeType":"StructuredDocumentation","src":"10634:134:52","text":" @notice Gets the state of a proposal\n @param proposalId_ The id of the proposal\n @return Proposal state"},"functionSelector":"3e4f49e6","id":12337,"implemented":true,"kind":"function","modifiers":[],"name":"state","nameLocation":"10782:5:52","nodeType":"FunctionDefinition","parameters":{"id":12298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12297,"mutability":"mutable","name":"proposalId_","nameLocation":"10796:11:52","nodeType":"VariableDeclaration","scope":12337,"src":"10788:19:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12296,"name":"uint256","nodeType":"ElementaryTypeName","src":"10788:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10787:21:52"},"returnParameters":{"id":12302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12301,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12337,"src":"10830:13:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$11762","typeString":"enum OmnichainGovernanceExecutor.ProposalState"},"typeName":{"id":12300,"nodeType":"UserDefinedTypeName","pathNode":{"id":12299,"name":"ProposalState","nameLocations":["10830:13:52"],"nodeType":"IdentifierPath","referencedDeclaration":11762,"src":"10830:13:52"},"referencedDeclaration":11762,"src":"10830:13:52","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$11762","typeString":"enum OmnichainGovernanceExecutor.ProposalState"}},"visibility":"internal"}],"src":"10829:15:52"},"scope":12706,"src":"10773:501:52","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[3964],"body":{"id":12414,"nodeType":"Block","src":"11857:713:52","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":12353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12351,"name":"srcChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12340,"src":"11875:11:52","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":12352,"name":"srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11768,"src":"11890:10:52","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"11875:25:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a5f626c6f636b696e674c7a526563656976653a20696e76616c696420736f7572636520636861696e206964","id":12354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11902:74:52","typeDescriptions":{"typeIdentifier":"t_stringliteral_d275682feaebe22ea68148a3f20b1a2d3f04f7bd9d77ea436ebdac94de138df7","typeString":"literal_string \"OmnichainGovernanceExecutor::_blockingLzReceive: invalid source chain id\""},"value":"OmnichainGovernanceExecutor::_blockingLzReceive: invalid source chain id"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d275682feaebe22ea68148a3f20b1a2d3f04f7bd9d77ea436ebdac94de138df7","typeString":"literal_string \"OmnichainGovernanceExecutor::_blockingLzReceive: invalid source chain id\""}],"id":12350,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11867:7:52","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11867:110:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12356,"nodeType":"ExpressionStatement","src":"11867:110:52"},{"assignments":[12358],"declarations":[{"constant":false,"id":12358,"mutability":"mutable","name":"hashedPayload","nameLocation":"11995:13:52","nodeType":"VariableDeclaration","scope":12414,"src":"11987:21:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12357,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11987:7:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":12362,"initialValue":{"arguments":[{"id":12360,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12346,"src":"12021:8:52","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12359,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"12011:9:52","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":12361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12011:19:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"11987:43:52"},{"assignments":[12364],"declarations":[{"constant":false,"id":12364,"mutability":"mutable","name":"callData","nameLocation":"12053:8:52","nodeType":"VariableDeclaration","scope":12414,"src":"12040:21:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12363,"name":"bytes","nodeType":"ElementaryTypeName","src":"12040:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":12375,"initialValue":{"arguments":[{"expression":{"id":12367,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12079:4:52","typeDescriptions":{"typeIdentifier":"t_contract$_OmnichainGovernanceExecutor_$12706","typeString":"contract OmnichainGovernanceExecutor"}},"id":12368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12084:20:52","memberName":"nonblockingLzReceive","nodeType":"MemberAccess","referencedDeclaration":4028,"src":"12079:25:52","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory) external"}},{"components":[{"id":12369,"name":"srcChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12340,"src":"12107:11:52","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":12370,"name":"srcAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12342,"src":"12120:11:52","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":12371,"name":"nonce_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12344,"src":"12133:6:52","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":12372,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12346,"src":"12141:8:52","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":12373,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12106:44:52","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$","typeString":"tuple(uint16,bytes memory,uint64,bytes memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory) external"},{"typeIdentifier":"t_tuple$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$","typeString":"tuple(uint16,bytes memory,uint64,bytes memory)"}],"expression":{"id":12365,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12064:3:52","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12366,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12068:10:52","memberName":"encodeCall","nodeType":"MemberAccess","src":"12064:14:52","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":12374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12064:87:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"12040:111:52"},{"assignments":[12377,12379],"declarations":[{"constant":false,"id":12377,"mutability":"mutable","name":"success","nameLocation":"12168:7:52","nodeType":"VariableDeclaration","scope":12414,"src":"12163:12:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12376,"name":"bool","nodeType":"ElementaryTypeName","src":"12163:4:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12379,"mutability":"mutable","name":"reason","nameLocation":"12190:6:52","nodeType":"VariableDeclaration","scope":12414,"src":"12177:19:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12378,"name":"bytes","nodeType":"ElementaryTypeName","src":"12177:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":12392,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":12385,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"12234:7:52","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":12386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12234:9:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3330303030","id":12387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12246:5:52","typeDescriptions":{"typeIdentifier":"t_rational_30000_by_1","typeString":"int_const 30000"},"value":"30000"},"src":"12234:17:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"313530","id":12389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12253:3:52","typeDescriptions":{"typeIdentifier":"t_rational_150_by_1","typeString":"int_const 150"},"value":"150"},{"id":12390,"name":"callData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12364,"src":"12258:8:52","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_150_by_1","typeString":"int_const 150"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":12382,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12208:4:52","typeDescriptions":{"typeIdentifier":"t_contract$_OmnichainGovernanceExecutor_$12706","typeString":"contract OmnichainGovernanceExecutor"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OmnichainGovernanceExecutor_$12706","typeString":"contract OmnichainGovernanceExecutor"}],"id":12381,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12200:7:52","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12380,"name":"address","nodeType":"ElementaryTypeName","src":"12200:7:52","typeDescriptions":{}}},"id":12383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12200:13:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12214:19:52","memberName":"excessivelySafeCall","nodeType":"MemberAccess","referencedDeclaration":3268,"src":"12200:33:52","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint16_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$attached_to$_t_address_$","typeString":"function (address,uint256,uint16,bytes memory) returns (bool,bytes memory)"}},"id":12391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12200:67:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"12162:105:52"},{"condition":{"id":12394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"12324:8:52","subExpression":{"id":12393,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12377,"src":"12325:7:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12413,"nodeType":"IfStatement","src":"12320:244:52","trueBody":{"id":12412,"nodeType":"Block","src":"12334:230:52","statements":[{"expression":{"id":12403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"baseExpression":{"id":12395,"name":"failedMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3893,"src":"12348:14:52","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$_$","typeString":"mapping(uint16 => mapping(bytes memory => mapping(uint64 => bytes32)))"}},"id":12399,"indexExpression":{"id":12396,"name":"srcChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12340,"src":"12363:11:52","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12348:27:52","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$","typeString":"mapping(bytes memory => mapping(uint64 => bytes32))"}},"id":12400,"indexExpression":{"id":12397,"name":"srcAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12342,"src":"12376:11:52","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12348:40:52","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_bytes32_$","typeString":"mapping(uint64 => bytes32)"}},"id":12401,"indexExpression":{"id":12398,"name":"nonce_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12344,"src":"12389:6:52","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12348:48:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12402,"name":"hashedPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12358,"src":"12399:13:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"12348:64:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12404,"nodeType":"ExpressionStatement","src":"12348:64:52"},{"eventCall":{"arguments":[{"id":12406,"name":"srcChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12340,"src":"12452:11:52","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":12407,"name":"srcAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12342,"src":"12465:11:52","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":12408,"name":"nonce_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12344,"src":"12478:6:52","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":12409,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12379,"src":"12486:6:52","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12405,"name":"ReceivePayloadFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11830,"src":"12431:20:52","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory)"}},"id":12410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12431:62:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12411,"nodeType":"EmitStatement","src":"12426:67:52"}]}}]},"documentation":{"id":12338,"nodeType":"StructuredDocumentation","src":"11280:396:52","text":" @notice Process blocking LayerZero receive request\n @param srcChainId_ Source chain Id\n @param srcAddress_ Source address from which payload is received\n @param nonce_ Nonce associated with the payload to prevent replay attacks\n @param payload_ Encoded payload containing proposal information\n @custom:event Emit ReceivePayloadFailed if call fails"},"id":12415,"implemented":true,"kind":"function","modifiers":[],"name":"_blockingLzReceive","nameLocation":"11690:18:52","nodeType":"FunctionDefinition","overrides":{"id":12348,"nodeType":"OverrideSpecifier","overrides":[],"src":"11848:8:52"},"parameters":{"id":12347,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12340,"mutability":"mutable","name":"srcChainId_","nameLocation":"11725:11:52","nodeType":"VariableDeclaration","scope":12415,"src":"11718:18:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":12339,"name":"uint16","nodeType":"ElementaryTypeName","src":"11718:6:52","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":12342,"mutability":"mutable","name":"srcAddress_","nameLocation":"11759:11:52","nodeType":"VariableDeclaration","scope":12415,"src":"11746:24:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12341,"name":"bytes","nodeType":"ElementaryTypeName","src":"11746:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":12344,"mutability":"mutable","name":"nonce_","nameLocation":"11787:6:52","nodeType":"VariableDeclaration","scope":12415,"src":"11780:13:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":12343,"name":"uint64","nodeType":"ElementaryTypeName","src":"11780:6:52","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":12346,"mutability":"mutable","name":"payload_","nameLocation":"11816:8:52","nodeType":"VariableDeclaration","scope":12415,"src":"11803:21:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12345,"name":"bytes","nodeType":"ElementaryTypeName","src":"11803:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"11708:122:52"},"returnParameters":{"id":12349,"nodeType":"ParameterList","parameters":[],"src":"11857:0:52"},"scope":12706,"src":"11681:889:52","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[4039],"body":{"id":12570,"nodeType":"Block","src":"12930:1500:52","statements":[{"assignments":[12431,12433],"declarations":[{"constant":false,"id":12431,"mutability":"mutable","name":"payload","nameLocation":"12954:7:52","nodeType":"VariableDeclaration","scope":12570,"src":"12941:20:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12430,"name":"bytes","nodeType":"ElementaryTypeName","src":"12941:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":12433,"mutability":"mutable","name":"pId","nameLocation":"12971:3:52","nodeType":"VariableDeclaration","scope":12570,"src":"12963:11:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12432,"name":"uint256","nodeType":"ElementaryTypeName","src":"12963:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12443,"initialValue":{"arguments":[{"id":12436,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12424,"src":"12989:8:52","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":12438,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13000:5:52","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":12437,"name":"bytes","nodeType":"ElementaryTypeName","src":"13000:5:52","typeDescriptions":{}}},{"id":12440,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13007:7:52","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":12439,"name":"uint256","nodeType":"ElementaryTypeName","src":"13007:7:52","typeDescriptions":{}}}],"id":12441,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"12999:16:52","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}],"expression":{"id":12434,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12978:3:52","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12435,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12982:6:52","memberName":"decode","nodeType":"MemberAccess","src":"12978:10:52","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":12442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12978:38:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"tuple(bytes memory,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"12940:76:52"},{"assignments":[12448,12451,12454,12457,12459],"declarations":[{"constant":false,"id":12448,"mutability":"mutable","name":"targets","nameLocation":"13057:7:52","nodeType":"VariableDeclaration","scope":12570,"src":"13040:24:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":12446,"name":"address","nodeType":"ElementaryTypeName","src":"13040:7:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12447,"nodeType":"ArrayTypeName","src":"13040:9:52","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":12451,"mutability":"mutable","name":"values","nameLocation":"13095:6:52","nodeType":"VariableDeclaration","scope":12570,"src":"13078:23:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":12449,"name":"uint256","nodeType":"ElementaryTypeName","src":"13078:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12450,"nodeType":"ArrayTypeName","src":"13078:9:52","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":12454,"mutability":"mutable","name":"signatures","nameLocation":"13131:10:52","nodeType":"VariableDeclaration","scope":12570,"src":"13115:26:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":12452,"name":"string","nodeType":"ElementaryTypeName","src":"13115:6:52","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":12453,"nodeType":"ArrayTypeName","src":"13115:8:52","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":12457,"mutability":"mutable","name":"calldatas","nameLocation":"13170:9:52","nodeType":"VariableDeclaration","scope":12570,"src":"13155:24:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":12455,"name":"bytes","nodeType":"ElementaryTypeName","src":"13155:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":12456,"nodeType":"ArrayTypeName","src":"13155:7:52","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":12459,"mutability":"mutable","name":"pType","nameLocation":"13199:5:52","nodeType":"VariableDeclaration","scope":12570,"src":"13193:11:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":12458,"name":"uint8","nodeType":"ElementaryTypeName","src":"13193:5:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":12479,"initialValue":{"arguments":[{"id":12462,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12431,"src":"13228:7:52","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"baseExpression":{"id":12464,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13238:7:52","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12463,"name":"address","nodeType":"ElementaryTypeName","src":"13238:7:52","typeDescriptions":{}}},"id":12465,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"13238:9:52","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"type(address[] memory)"}},{"baseExpression":{"id":12467,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13249:7:52","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":12466,"name":"uint256","nodeType":"ElementaryTypeName","src":"13249:7:52","typeDescriptions":{}}},"id":12468,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"13249:9:52","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"type(uint256[] memory)"}},{"baseExpression":{"id":12470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13260:6:52","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":12469,"name":"string","nodeType":"ElementaryTypeName","src":"13260:6:52","typeDescriptions":{}}},"id":12471,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"13260:8:52","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$","typeString":"type(string memory[] memory)"}},{"baseExpression":{"id":12473,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13270:5:52","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":12472,"name":"bytes","nodeType":"ElementaryTypeName","src":"13270:5:52","typeDescriptions":{}}},"id":12474,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"13270:7:52","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"type(bytes memory[] memory)"}},{"id":12476,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13279:5:52","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":12475,"name":"uint8","nodeType":"ElementaryTypeName","src":"13279:5:52","typeDescriptions":{}}}],"id":12477,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"13237:48:52","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_array$_t_address_$dyn_memory_ptr_$_$_t_type$_t_array$_t_uint256_$dyn_memory_ptr_$_$_t_type$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_$_t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_$_t_type$_t_uint8_$_$","typeString":"tuple(type(address[] memory),type(uint256[] memory),type(string memory[] memory),type(bytes memory[] memory),type(uint8))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_array$_t_address_$dyn_memory_ptr_$_$_t_type$_t_array$_t_uint256_$dyn_memory_ptr_$_$_t_type$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_$_t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_$_t_type$_t_uint8_$_$","typeString":"tuple(type(address[] memory),type(uint256[] memory),type(string memory[] memory),type(bytes memory[] memory),type(uint8))"}],"expression":{"id":12460,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13217:3:52","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12461,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13221:6:52","memberName":"decode","nodeType":"MemberAccess","src":"13217:10:52","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":12478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13217:69:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_uint8_$","typeString":"tuple(address[] memory,uint256[] memory,string memory[] memory,bytes memory[] memory,uint8)"}},"nodeType":"VariableDeclarationStatement","src":"13026:260:52"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":12481,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11777,"src":"13304:9:52","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$11758_storage_$","typeString":"mapping(uint256 => struct OmnichainGovernanceExecutor.Proposal storage ref)"}},"id":12483,"indexExpression":{"id":12482,"name":"pId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12433,"src":"13314:3:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13304:14:52","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$11758_storage","typeString":"struct OmnichainGovernanceExecutor.Proposal storage ref"}},"id":12484,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13319:2:52","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":11729,"src":"13304:17:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12485,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13325:1:52","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13304:22:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a5f6e6f6e626c6f636b696e674c7a526563656976653a206475706c69636174652070726f706f73616c","id":12487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13328:72:52","typeDescriptions":{"typeIdentifier":"t_stringliteral_2803d9538cd5469ac5fa2c9532b3ddc0b845796807f5a1c18ddcf2f3ee49776b","typeString":"literal_string \"OmnichainGovernanceExecutor::_nonblockingLzReceive: duplicate proposal\""},"value":"OmnichainGovernanceExecutor::_nonblockingLzReceive: duplicate proposal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2803d9538cd5469ac5fa2c9532b3ddc0b845796807f5a1c18ddcf2f3ee49776b","typeString":"literal_string \"OmnichainGovernanceExecutor::_nonblockingLzReceive: duplicate proposal\""}],"id":12480,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13296:7:52","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13296:105:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12489,"nodeType":"ExpressionStatement","src":"13296:105:52"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":12507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":12501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12491,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12448,"src":"13432:7:52","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":12492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13440:6:52","memberName":"length","nodeType":"MemberAccess","src":"13432:14:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":12493,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12451,"src":"13450:6:52","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":12494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13457:6:52","memberName":"length","nodeType":"MemberAccess","src":"13450:13:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13432:31:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12496,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12448,"src":"13483:7:52","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":12497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13491:6:52","memberName":"length","nodeType":"MemberAccess","src":"13483:14:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":12498,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12454,"src":"13501:10:52","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":12499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13512:6:52","memberName":"length","nodeType":"MemberAccess","src":"13501:17:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13483:35:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13432:86:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12502,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12448,"src":"13538:7:52","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":12503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13546:6:52","memberName":"length","nodeType":"MemberAccess","src":"13538:14:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":12504,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12457,"src":"13556:9:52","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":12505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13566:6:52","memberName":"length","nodeType":"MemberAccess","src":"13556:16:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13538:34:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13432:140:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a5f6e6f6e626c6f636b696e674c7a526563656976653a2070726f706f73616c2066756e6374696f6e20696e666f726d6174696f6e206172697479206d69736d61746368","id":12508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13586:98:52","typeDescriptions":{"typeIdentifier":"t_stringliteral_73269ca63e07077728e117499df129cf16ffbb7f2e384ee0422cb3a9906cbd6f","typeString":"literal_string \"OmnichainGovernanceExecutor::_nonblockingLzReceive: proposal function information arity mismatch\""},"value":"OmnichainGovernanceExecutor::_nonblockingLzReceive: proposal function information arity mismatch"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_73269ca63e07077728e117499df129cf16ffbb7f2e384ee0422cb3a9906cbd6f","typeString":"literal_string \"OmnichainGovernanceExecutor::_nonblockingLzReceive: proposal function information arity mismatch\""}],"id":12490,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13411:7:52","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13411:283:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12510,"nodeType":"ExpressionStatement","src":"13411:283:52"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":12522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12512,"name":"pType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12459,"src":"13725:5:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":12521,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"arguments":[{"id":12516,"name":"ProposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11726,"src":"13744:12:52","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalType_$11726_$","typeString":"type(enum OmnichainGovernanceExecutor.ProposalType)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_enum$_ProposalType_$11726_$","typeString":"type(enum OmnichainGovernanceExecutor.ProposalType)"}],"id":12515,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"13739:4:52","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":12517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13739:18:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_enum$_ProposalType_$11726","typeString":"type(enum OmnichainGovernanceExecutor.ProposalType)"}},"id":12518,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13758:3:52","memberName":"max","nodeType":"MemberAccess","src":"13739:22:52","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$11726","typeString":"enum OmnichainGovernanceExecutor.ProposalType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_ProposalType_$11726","typeString":"enum OmnichainGovernanceExecutor.ProposalType"}],"id":12514,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13733:5:52","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":12513,"name":"uint8","nodeType":"ElementaryTypeName","src":"13733:5:52","typeDescriptions":{}}},"id":12519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13733:29:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":12520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13765:1:52","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13733:33:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"13725:41:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a5f6e6f6e626c6f636b696e674c7a526563656976653a20696e76616c69642070726f706f73616c2074797065","id":12523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13780:75:52","typeDescriptions":{"typeIdentifier":"t_stringliteral_6f48fffb767fcd1a10142050a1c2f0fa4d3752673ff6e94ff8b534dd8a3a82bb","typeString":"literal_string \"OmnichainGovernanceExecutor::_nonblockingLzReceive: invalid proposal type\""},"value":"OmnichainGovernanceExecutor::_nonblockingLzReceive: invalid proposal type"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6f48fffb767fcd1a10142050a1c2f0fa4d3752673ff6e94ff8b534dd8a3a82bb","typeString":"literal_string \"OmnichainGovernanceExecutor::_nonblockingLzReceive: invalid proposal type\""}],"id":12511,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13704:7:52","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13704:161:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12525,"nodeType":"ExpressionStatement","src":"13704:161:52"},{"expression":{"arguments":[{"expression":{"id":12527,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12448,"src":"13896:7:52","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":12528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13904:6:52","memberName":"length","nodeType":"MemberAccess","src":"13896:14:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12526,"name":"_isEligibleToReceive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11127,"src":"13875:20:52","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":12529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13875:36:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12530,"nodeType":"ExpressionStatement","src":"13875:36:52"},{"assignments":[12533],"declarations":[{"constant":false,"id":12533,"mutability":"mutable","name":"newProposal","nameLocation":"13938:11:52","nodeType":"VariableDeclaration","scope":12570,"src":"13922:27:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$11758_memory_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal"},"typeName":{"id":12532,"nodeType":"UserDefinedTypeName","pathNode":{"id":12531,"name":"Proposal","nameLocations":["13922:8:52"],"nodeType":"IdentifierPath","referencedDeclaration":11758,"src":"13922:8:52"},"referencedDeclaration":11758,"src":"13922:8:52","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$11758_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal"}},"visibility":"internal"}],"id":12545,"initialValue":{"arguments":[{"id":12535,"name":"pId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12433,"src":"13979:3:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":12536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14001:1:52","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":12537,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12448,"src":"14025:7:52","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":12538,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12451,"src":"14054:6:52","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":12539,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12454,"src":"14086:10:52","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},{"id":12540,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12457,"src":"14121:9:52","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"hexValue":"66616c7365","id":12541,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14154:5:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"66616c7365","id":12542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14183:5:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"id":12543,"name":"pType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12459,"src":"14216:5:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":12534,"name":"Proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11758,"src":"13952:8:52","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Proposal_$11758_storage_ptr_$","typeString":"type(struct OmnichainGovernanceExecutor.Proposal storage pointer)"}},"id":12544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13975:2:52","13996:3:52","14016:7:52","14046:6:52","14074:10:52","14110:9:52","14144:8:52","14173:8:52","14202:12:52"],"names":["id","eta","targets","values","signatures","calldatas","canceled","executed","proposalType"],"nodeType":"FunctionCall","src":"13952:280:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$11758_memory_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal memory"}},"nodeType":"VariableDeclarationStatement","src":"13922:310:52"},{"expression":{"id":12550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":12546,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11777,"src":"14243:9:52","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$11758_storage_$","typeString":"mapping(uint256 => struct OmnichainGovernanceExecutor.Proposal storage ref)"}},"id":12548,"indexExpression":{"id":12547,"name":"pId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12433,"src":"14253:3:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14243:14:52","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$11758_storage","typeString":"struct OmnichainGovernanceExecutor.Proposal storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12549,"name":"newProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12533,"src":"14260:11:52","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$11758_memory_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal memory"}},"src":"14243:28:52","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$11758_storage","typeString":"struct OmnichainGovernanceExecutor.Proposal storage ref"}},"id":12551,"nodeType":"ExpressionStatement","src":"14243:28:52"},{"expression":{"id":12554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12552,"name":"lastProposalReceived","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11771,"src":"14281:20:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12553,"name":"pId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12433,"src":"14304:3:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14281:26:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12555,"nodeType":"ExpressionStatement","src":"14281:26:52"},{"eventCall":{"arguments":[{"expression":{"id":12557,"name":"newProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12533,"src":"14340:11:52","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$11758_memory_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal memory"}},"id":12558,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14352:2:52","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":11729,"src":"14340:14:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12559,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12448,"src":"14356:7:52","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":12560,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12451,"src":"14365:6:52","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":12561,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12454,"src":"14373:10:52","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},{"id":12562,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12457,"src":"14385:9:52","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"id":12563,"name":"pType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12459,"src":"14396:5:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":12556,"name":"ProposalReceived","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11807,"src":"14323:16:52","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_uint8_$returns$__$","typeString":"function (uint256,address[] memory,uint256[] memory,string memory[] memory,bytes memory[] memory,uint8)"}},"id":12564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14323:79:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12565,"nodeType":"EmitStatement","src":"14318:84:52"},{"expression":{"arguments":[{"id":12567,"name":"pId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12433,"src":"14419:3:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12566,"name":"_queue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12657,"src":"14412:6:52","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":12568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14412:11:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12569,"nodeType":"ExpressionStatement","src":"14412:11:52"}]},"documentation":{"id":12416,"nodeType":"StructuredDocumentation","src":"12576:187:52","text":" @notice Process non blocking LayerZero receive request\n @param payload_ Encoded payload containing proposal information\n @custom:event Emit ProposalReceived"},"id":12571,"implemented":true,"kind":"function","modifiers":[{"id":12428,"kind":"modifierInvocation","modifierName":{"id":12427,"name":"whenNotPaused","nameLocations":["12916:13:52"],"nodeType":"IdentifierPath","referencedDeclaration":7111,"src":"12916:13:52"},"nodeType":"ModifierInvocation","src":"12916:13:52"}],"name":"_nonblockingLzReceive","nameLocation":"12777:21:52","nodeType":"FunctionDefinition","overrides":{"id":12426,"nodeType":"OverrideSpecifier","overrides":[],"src":"12907:8:52"},"parameters":{"id":12425,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12418,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12571,"src":"12808:6:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":12417,"name":"uint16","nodeType":"ElementaryTypeName","src":"12808:6:52","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":12420,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12571,"src":"12824:12:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12419,"name":"bytes","nodeType":"ElementaryTypeName","src":"12824:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":12422,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12571,"src":"12846:6:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":12421,"name":"uint64","nodeType":"ElementaryTypeName","src":"12846:6:52","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":12424,"mutability":"mutable","name":"payload_","nameLocation":"12875:8:52","nodeType":"VariableDeclaration","scope":12571,"src":"12862:21:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12423,"name":"bytes","nodeType":"ElementaryTypeName","src":"12862:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12798:91:52"},"returnParameters":{"id":12429,"nodeType":"ParameterList","parameters":[],"src":"12930:0:52"},"scope":12706,"src":"12768:1662:52","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":12656,"nodeType":"Block","src":"14656:678:52","statements":[{"assignments":[12579],"declarations":[{"constant":false,"id":12579,"mutability":"mutable","name":"proposal","nameLocation":"14683:8:52","nodeType":"VariableDeclaration","scope":12656,"src":"14666:25:52","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$11758_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal"},"typeName":{"id":12578,"nodeType":"UserDefinedTypeName","pathNode":{"id":12577,"name":"Proposal","nameLocations":["14666:8:52"],"nodeType":"IdentifierPath","referencedDeclaration":11758,"src":"14666:8:52"},"referencedDeclaration":11758,"src":"14666:8:52","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$11758_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal"}},"visibility":"internal"}],"id":12583,"initialValue":{"baseExpression":{"id":12580,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11777,"src":"14694:9:52","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$11758_storage_$","typeString":"mapping(uint256 => struct OmnichainGovernanceExecutor.Proposal storage ref)"}},"id":12582,"indexExpression":{"id":12581,"name":"proposalId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12574,"src":"14704:11:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14694:22:52","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$11758_storage","typeString":"struct OmnichainGovernanceExecutor.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14666:50:52"},{"assignments":[12585],"declarations":[{"constant":false,"id":12585,"mutability":"mutable","name":"eta","nameLocation":"14734:3:52","nodeType":"VariableDeclaration","scope":12656,"src":"14726:11:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12584,"name":"uint256","nodeType":"ElementaryTypeName","src":"14726:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12595,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12586,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"14740:5:52","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":12587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14746:9:52","memberName":"timestamp","nodeType":"MemberAccess","src":"14740:15:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"id":12588,"name":"proposalTimelocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11783,"src":"14758:17:52","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_ITimelock_$13525_$","typeString":"mapping(uint256 => contract ITimelock)"}},"id":12591,"indexExpression":{"expression":{"id":12589,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12579,"src":"14776:8:52","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$11758_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":12590,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14785:12:52","memberName":"proposalType","nodeType":"MemberAccess","referencedDeclaration":11757,"src":"14776:21:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14758:40:52","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$13525","typeString":"contract ITimelock"}},"id":12592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14799:5:52","memberName":"delay","nodeType":"MemberAccess","referencedDeclaration":13454,"src":"14758:46:52","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":12593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14758:48:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14740:66:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14726:80:52"},{"expression":{"id":12600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12596,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12579,"src":"14817:8:52","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$11758_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":12598,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"14826:3:52","memberName":"eta","nodeType":"MemberAccess","referencedDeclaration":11732,"src":"14817:12:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12599,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12585,"src":"14832:3:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14817:18:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12601,"nodeType":"ExpressionStatement","src":"14817:18:52"},{"expression":{"id":12606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":12602,"name":"queued","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11788,"src":"14845:6:52","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"}},"id":12604,"indexExpression":{"id":12603,"name":"proposalId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12574,"src":"14852:11:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14845:19:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":12605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14867:4:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"14845:26:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12607,"nodeType":"ExpressionStatement","src":"14845:26:52"},{"assignments":[12609],"declarations":[{"constant":false,"id":12609,"mutability":"mutable","name":"proposalType","nameLocation":"14887:12:52","nodeType":"VariableDeclaration","scope":12656,"src":"14881:18:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":12608,"name":"uint8","nodeType":"ElementaryTypeName","src":"14881:5:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":12612,"initialValue":{"expression":{"id":12610,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12579,"src":"14902:8:52","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$11758_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":12611,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14911:12:52","memberName":"proposalType","nodeType":"MemberAccess","referencedDeclaration":11757,"src":"14902:21:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"14881:42:52"},{"assignments":[12614],"declarations":[{"constant":false,"id":12614,"mutability":"mutable","name":"length","nameLocation":"14941:6:52","nodeType":"VariableDeclaration","scope":12656,"src":"14933:14:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12613,"name":"uint256","nodeType":"ElementaryTypeName","src":"14933:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12618,"initialValue":{"expression":{"expression":{"id":12615,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12579,"src":"14950:8:52","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$11758_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":12616,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14959:7:52","memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":11736,"src":"14950:16:52","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":12617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14967:6:52","memberName":"length","nodeType":"MemberAccess","src":"14950:23:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14933:40:52"},{"eventCall":{"arguments":[{"id":12620,"name":"proposalId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12574,"src":"15003:11:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12621,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12585,"src":"15016:3:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12619,"name":"ProposalQueued","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11814,"src":"14988:14:52","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":12622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14988:32:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12623,"nodeType":"EmitStatement","src":"14983:37:52"},{"body":{"id":12654,"nodeType":"Block","src":"15064:264:52","statements":[{"expression":{"arguments":[{"baseExpression":{"expression":{"id":12634,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12579,"src":"15118:8:52","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$11758_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":12635,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15127:7:52","memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":11736,"src":"15118:16:52","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":12637,"indexExpression":{"id":12636,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12625,"src":"15135:1:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15118:19:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"expression":{"id":12638,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12579,"src":"15155:8:52","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$11758_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":12639,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15164:6:52","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":11740,"src":"15155:15:52","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":12641,"indexExpression":{"id":12640,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12625,"src":"15171:1:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15155:18:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"expression":{"id":12642,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12579,"src":"15191:8:52","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$11758_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":12643,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15200:10:52","memberName":"signatures","nodeType":"MemberAccess","referencedDeclaration":11744,"src":"15191:19:52","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"id":12645,"indexExpression":{"id":12644,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12625,"src":"15211:1:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15191:22:52","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"baseExpression":{"expression":{"id":12646,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12579,"src":"15231:8:52","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$11758_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":12647,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15240:9:52","memberName":"calldatas","nodeType":"MemberAccess","referencedDeclaration":11748,"src":"15231:18:52","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage","typeString":"bytes storage ref[] storage ref"}},"id":12649,"indexExpression":{"id":12648,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12625,"src":"15250:1:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15231:21:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"id":12650,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12585,"src":"15270:3:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12651,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12609,"src":"15291:12:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":12633,"name":"_queueOrRevertInternal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12705,"src":"15078:22:52","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$_t_uint8_$returns$__$","typeString":"function (address,uint256,string memory,bytes memory,uint256,uint8)"}},"id":12652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15078:239:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12653,"nodeType":"ExpressionStatement","src":"15078:239:52"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12627,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12625,"src":"15047:1:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":12628,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12614,"src":"15051:6:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15047:10:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12655,"initializationExpression":{"assignments":[12625],"declarations":[{"constant":false,"id":12625,"mutability":"mutable","name":"i","nameLocation":"15044:1:52","nodeType":"VariableDeclaration","scope":12655,"src":"15036:9:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12624,"name":"uint256","nodeType":"ElementaryTypeName","src":"15036:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12626,"nodeType":"VariableDeclarationStatement","src":"15036:9:52"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":12631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"15059:3:52","subExpression":{"id":12630,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12625,"src":"15061:1:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12632,"nodeType":"ExpressionStatement","src":"15059:3:52"},"nodeType":"ForStatement","src":"15031:297:52"}]},"documentation":{"id":12572,"nodeType":"StructuredDocumentation","src":"14436:169:52","text":" @notice Queue proposal for execution\n @param proposalId_ Proposal to be queued\n @custom:event Emit ProposalQueued with proposal id and eta"},"id":12657,"implemented":true,"kind":"function","modifiers":[],"name":"_queue","nameLocation":"14619:6:52","nodeType":"FunctionDefinition","parameters":{"id":12575,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12574,"mutability":"mutable","name":"proposalId_","nameLocation":"14634:11:52","nodeType":"VariableDeclaration","scope":12657,"src":"14626:19:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12573,"name":"uint256","nodeType":"ElementaryTypeName","src":"14626:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14625:21:52"},"returnParameters":{"id":12576,"nodeType":"ParameterList","parameters":[],"src":"14656:0:52"},"scope":12706,"src":"14610:724:52","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":12704,"nodeType":"Block","src":"16001:412:52","statements":[{"expression":{"arguments":[{"id":12689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16032:147:52","subExpression":{"arguments":[{"arguments":[{"arguments":[{"id":12681,"name":"target_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12660,"src":"16123:7:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12682,"name":"value_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12662,"src":"16132:6:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12683,"name":"signature_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12664,"src":"16140:10:52","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12684,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12666,"src":"16152:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":12685,"name":"eta_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12668,"src":"16159:4:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12679,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16112:3:52","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12680,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16116:6:52","memberName":"encode","nodeType":"MemberAccess","src":"16112:10:52","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":12686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16112:52:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12678,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16102:9:52","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":12687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16102:63:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"baseExpression":{"id":12674,"name":"proposalTimelocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11783,"src":"16033:17:52","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_ITimelock_$13525_$","typeString":"mapping(uint256 => contract ITimelock)"}},"id":12676,"indexExpression":{"id":12675,"name":"proposalType_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12670,"src":"16051:13:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16033:32:52","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$13525","typeString":"contract ITimelock"}},"id":12677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16066:18:52","memberName":"queuedTransactions","nodeType":"MemberAccess","referencedDeclaration":13478,"src":"16033:51:52","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view external returns (bool)"}},"id":12688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16033:146:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a71756575654f72526576657274496e7465726e616c3a206964656e746963616c2070726f706f73616c20616374696f6e20616c72656164792071756575656420617420657461","id":12690,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16193:101:52","typeDescriptions":{"typeIdentifier":"t_stringliteral_8864d14fd204ea66650b5ca543c106bdc1f9dca39811219c69678312ec6eb275","typeString":"literal_string \"OmnichainGovernanceExecutor::queueOrRevertInternal: identical proposal action already queued at eta\""},"value":"OmnichainGovernanceExecutor::queueOrRevertInternal: identical proposal action already queued at eta"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8864d14fd204ea66650b5ca543c106bdc1f9dca39811219c69678312ec6eb275","typeString":"literal_string \"OmnichainGovernanceExecutor::queueOrRevertInternal: identical proposal action already queued at eta\""}],"id":12673,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"16011:7:52","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16011:293:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12692,"nodeType":"ExpressionStatement","src":"16011:293:52"},{"expression":{"arguments":[{"id":12697,"name":"target_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12660,"src":"16365:7:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12698,"name":"value_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12662,"src":"16374:6:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12699,"name":"signature_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12664,"src":"16382:10:52","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12700,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12666,"src":"16394:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":12701,"name":"eta_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12668,"src":"16401:4:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"id":12693,"name":"proposalTimelocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11783,"src":"16315:17:52","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_ITimelock_$13525_$","typeString":"mapping(uint256 => contract ITimelock)"}},"id":12695,"indexExpression":{"id":12694,"name":"proposalType_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12670,"src":"16333:13:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16315:32:52","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$13525","typeString":"contract ITimelock"}},"id":12696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16348:16:52","memberName":"queueTransaction","nodeType":"MemberAccess","referencedDeclaration":13494,"src":"16315:49:52","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (address,uint256,string memory,bytes memory,uint256) external returns (bytes32)"}},"id":12702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16315:91:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12703,"nodeType":"ExpressionStatement","src":"16315:91:52"}]},"documentation":{"id":12658,"nodeType":"StructuredDocumentation","src":"15340:447:52","text":" @notice Check for unique proposal\n @param target_ Address of the contract with the method to be called\n @param value_ Native token amount sent with the transaction\n @param signature_ Signature of the function to be called\n @param data_ Arguments to be passed to the function when called\n @param eta_ Timestamp after which the transaction can be executed\n @param proposalType_ Type of proposal"},"id":12705,"implemented":true,"kind":"function","modifiers":[],"name":"_queueOrRevertInternal","nameLocation":"15801:22:52","nodeType":"FunctionDefinition","parameters":{"id":12671,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12660,"mutability":"mutable","name":"target_","nameLocation":"15841:7:52","nodeType":"VariableDeclaration","scope":12705,"src":"15833:15:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12659,"name":"address","nodeType":"ElementaryTypeName","src":"15833:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12662,"mutability":"mutable","name":"value_","nameLocation":"15866:6:52","nodeType":"VariableDeclaration","scope":12705,"src":"15858:14:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12661,"name":"uint256","nodeType":"ElementaryTypeName","src":"15858:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12664,"mutability":"mutable","name":"signature_","nameLocation":"15896:10:52","nodeType":"VariableDeclaration","scope":12705,"src":"15882:24:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12663,"name":"string","nodeType":"ElementaryTypeName","src":"15882:6:52","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12666,"mutability":"mutable","name":"data_","nameLocation":"15929:5:52","nodeType":"VariableDeclaration","scope":12705,"src":"15916:18:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12665,"name":"bytes","nodeType":"ElementaryTypeName","src":"15916:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":12668,"mutability":"mutable","name":"eta_","nameLocation":"15952:4:52","nodeType":"VariableDeclaration","scope":12705,"src":"15944:12:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12667,"name":"uint256","nodeType":"ElementaryTypeName","src":"15944:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12670,"mutability":"mutable","name":"proposalType_","nameLocation":"15972:13:52","nodeType":"VariableDeclaration","scope":12705,"src":"15966:19:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":12669,"name":"uint8","nodeType":"ElementaryTypeName","src":"15966:5:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"15823:168:52"},"returnParameters":{"id":12672,"nodeType":"ParameterList","parameters":[],"src":"16001:0:52"},"scope":12706,"src":"15792:621:52","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":12707,"src":"1113:15302:52","usedErrors":[10924,11868],"usedEvents":[3367,3373,3379,3387,3905,3915,6977,7087,7092,11023,11807,11814,11819,11830,11835,11844,11851,11858,11865]}],"src":"32:16384:52"},"id":52},"contracts/Cross-chain/OmnichainProposalSender.sol":{"ast":{"absolutePath":"contracts/Cross-chain/OmnichainProposalSender.sol","exportedSymbols":{"BaseOmnichainControllerSrc":[11381],"ILayerZeroEndpoint":[4253],"OmnichainProposalSender":[13428],"ReentrancyGuard":[7249],"ensureNonzeroAddress":[10945]},"id":13429,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":12708,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"33:23:53"},{"absolutePath":"@openzeppelin/contracts/security/ReentrancyGuard.sol","file":"@openzeppelin/contracts/security/ReentrancyGuard.sol","id":12710,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13429,"sourceUnit":7250,"src":"58:87:53","symbolAliases":[{"foreign":{"id":12709,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7249,"src":"67:15:53","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroEndpoint.sol","file":"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroEndpoint.sol","id":12712,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13429,"sourceUnit":4254,"src":"146:120:53","symbolAliases":[{"foreign":{"id":12711,"name":"ILayerZeroEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4253,"src":"155:18:53","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/validators.sol","file":"@venusprotocol/solidity-utilities/contracts/validators.sol","id":12714,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13429,"sourceUnit":10961,"src":"267:98:53","symbolAliases":[{"foreign":{"id":12713,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10945,"src":"276:20:53","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/Cross-chain/BaseOmnichainControllerSrc.sol","file":"./BaseOmnichainControllerSrc.sol","id":12716,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13429,"sourceUnit":11382,"src":"366:78:53","symbolAliases":[{"foreign":{"id":12715,"name":"BaseOmnichainControllerSrc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11381,"src":"375:26:53","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":12718,"name":"ReentrancyGuard","nameLocations":["963:15:53"],"nodeType":"IdentifierPath","referencedDeclaration":7249,"src":"963:15:53"},"id":12719,"nodeType":"InheritanceSpecifier","src":"963:15:53"},{"baseName":{"id":12720,"name":"BaseOmnichainControllerSrc","nameLocations":["980:26:53"],"nodeType":"IdentifierPath","referencedDeclaration":11381,"src":"980:26:53"},"id":12721,"nodeType":"InheritanceSpecifier","src":"980:26:53"}],"canonicalName":"OmnichainProposalSender","contractDependencies":[],"contractKind":"contract","documentation":{"id":12717,"nodeType":"StructuredDocumentation","src":"446:479:53","text":" @title OmnichainProposalSender\n @author Venus\n @notice OmnichainProposalSender contract builds upon the functionality of its parent contract , BaseOmnichainControllerSrc\n It sends a proposal's data to remote chains for execution after the proposal passes on the main chain\n when used with GovernorBravo, the owner of this contract must be set to the Timelock contract\n @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion"},"fullyImplemented":true,"id":13428,"linearizedBaseContracts":[13428,11381,7184,7076,8099,7249],"name":"OmnichainProposalSender","nameLocation":"936:23:53","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":12722,"nodeType":"StructuredDocumentation","src":"1013:70:53","text":" @notice Stores the total number of remote proposals"},"functionSelector":"da35c664","id":12724,"mutability":"mutable","name":"proposalCount","nameLocation":"1103:13:53","nodeType":"VariableDeclaration","scope":13428,"src":"1088:28:53","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12723,"name":"uint256","nodeType":"ElementaryTypeName","src":"1088:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":12725,"nodeType":"StructuredDocumentation","src":"1123:106:53","text":" @notice Execution hashes of failed messages\n @dev [proposalId] -> [executionHash]"},"functionSelector":"7dbb533c","id":12729,"mutability":"mutable","name":"storedExecutionHashes","nameLocation":"1269:21:53","nodeType":"VariableDeclaration","scope":13428,"src":"1234:56:53","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"},"typeName":{"id":12728,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":12726,"name":"uint256","nodeType":"ElementaryTypeName","src":"1242:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1234:27:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":12727,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1253:7:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},"visibility":"public"},{"constant":false,"documentation":{"id":12730,"nodeType":"StructuredDocumentation","src":"1297:83:53","text":" @notice LayerZero endpoint for sending messages to remote chains"},"functionSelector":"cd4d1c64","id":12733,"mutability":"immutable","name":"LZ_ENDPOINT","nameLocation":"1421:11:53","nodeType":"VariableDeclaration","scope":13428,"src":"1385:47:53","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$4253","typeString":"contract ILayerZeroEndpoint"},"typeName":{"id":12732,"nodeType":"UserDefinedTypeName","pathNode":{"id":12731,"name":"ILayerZeroEndpoint","nameLocations":["1385:18:53"],"nodeType":"IdentifierPath","referencedDeclaration":4253,"src":"1385:18:53"},"referencedDeclaration":4253,"src":"1385:18:53","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$4253","typeString":"contract ILayerZeroEndpoint"}},"visibility":"public"},{"constant":false,"documentation":{"id":12734,"nodeType":"StructuredDocumentation","src":"1439:133:53","text":" @notice Specifies the allowed path for sending messages (remote chainId => remote app address + local app address)"},"functionSelector":"7533d788","id":12738,"mutability":"mutable","name":"trustedRemoteLookup","nameLocation":"1609:19:53","nodeType":"VariableDeclaration","scope":13428,"src":"1577:51:53","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes)"},"typeName":{"id":12737,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":12735,"name":"uint16","nodeType":"ElementaryTypeName","src":"1585:6:53","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"1577:24:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":12736,"name":"bytes","nodeType":"ElementaryTypeName","src":"1595:5:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"visibility":"public"},{"anonymous":false,"documentation":{"id":12739,"nodeType":"StructuredDocumentation","src":"1635:93:53","text":" @notice Emitted when a remote message receiver is set for the remote chain"},"eventSelector":"e84e609c32d71c678382f7c65cc051810a41dcaf660e55c9f8fcffeba4621a32","id":12747,"name":"SetTrustedRemoteAddress","nameLocation":"1739:23:53","nodeType":"EventDefinition","parameters":{"id":12746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12741,"indexed":true,"mutability":"mutable","name":"remoteChainId","nameLocation":"1778:13:53","nodeType":"VariableDeclaration","scope":12747,"src":"1763:28:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":12740,"name":"uint16","nodeType":"ElementaryTypeName","src":"1763:6:53","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":12743,"indexed":false,"mutability":"mutable","name":"oldRemoteAddress","nameLocation":"1799:16:53","nodeType":"VariableDeclaration","scope":12747,"src":"1793:22:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12742,"name":"bytes","nodeType":"ElementaryTypeName","src":"1793:5:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":12745,"indexed":false,"mutability":"mutable","name":"newRemoteAddress","nameLocation":"1823:16:53","nodeType":"VariableDeclaration","scope":12747,"src":"1817:22:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12744,"name":"bytes","nodeType":"ElementaryTypeName","src":"1817:5:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1762:78:53"},"src":"1733:108:53"},{"anonymous":false,"documentation":{"id":12748,"nodeType":"StructuredDocumentation","src":"1847:74:53","text":" @notice Event emitted when trusted remote sets to empty"},"eventSelector":"6d5075c81d4d9e75bec6052f4e44f58f8a8cf1327544addbbf015fb06f83bd37","id":12752,"name":"TrustedRemoteRemoved","nameLocation":"1932:20:53","nodeType":"EventDefinition","parameters":{"id":12751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12750,"indexed":true,"mutability":"mutable","name":"chainId","nameLocation":"1968:7:53","nodeType":"VariableDeclaration","scope":12752,"src":"1953:22:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":12749,"name":"uint16","nodeType":"ElementaryTypeName","src":"1953:6:53","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1952:24:53"},"src":"1926:51:53"},{"anonymous":false,"documentation":{"id":12753,"nodeType":"StructuredDocumentation","src":"1983:96:53","text":" @notice Emitted when a proposal execution request is sent to the remote chain"},"eventSelector":"95a4fcf4eb9be6f5cf2eb6830782870f8907bccc513f765388a9cb2dae2f3259","id":12761,"name":"ExecuteRemoteProposal","nameLocation":"2090:21:53","nodeType":"EventDefinition","parameters":{"id":12760,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12755,"indexed":true,"mutability":"mutable","name":"remoteChainId","nameLocation":"2127:13:53","nodeType":"VariableDeclaration","scope":12761,"src":"2112:28:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":12754,"name":"uint16","nodeType":"ElementaryTypeName","src":"2112:6:53","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":12757,"indexed":false,"mutability":"mutable","name":"proposalId","nameLocation":"2150:10:53","nodeType":"VariableDeclaration","scope":12761,"src":"2142:18:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12756,"name":"uint256","nodeType":"ElementaryTypeName","src":"2142:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12759,"indexed":false,"mutability":"mutable","name":"payload","nameLocation":"2168:7:53","nodeType":"VariableDeclaration","scope":12761,"src":"2162:13:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12758,"name":"bytes","nodeType":"ElementaryTypeName","src":"2162:5:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2111:65:53"},"src":"2084:93:53"},{"anonymous":false,"documentation":{"id":12762,"nodeType":"StructuredDocumentation","src":"2183:108:53","text":" @notice Emitted when a previously failed message is successfully sent to the remote chain"},"eventSelector":"2dc7ac5d08fd553243fc66b5f15262e3f3013e27abf660d7bb3fccf133322f6e","id":12768,"name":"ClearPayload","nameLocation":"2302:12:53","nodeType":"EventDefinition","parameters":{"id":12767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12764,"indexed":true,"mutability":"mutable","name":"proposalId","nameLocation":"2331:10:53","nodeType":"VariableDeclaration","scope":12768,"src":"2315:26:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12763,"name":"uint256","nodeType":"ElementaryTypeName","src":"2315:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12766,"indexed":false,"mutability":"mutable","name":"executionHash","nameLocation":"2351:13:53","nodeType":"VariableDeclaration","scope":12768,"src":"2343:21:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12765,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2343:7:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2314:51:53"},"src":"2296:70:53"},{"anonymous":false,"documentation":{"id":12769,"nodeType":"StructuredDocumentation","src":"2372:86:53","text":" @notice Emitted when an execution hash of a failed message is saved"},"eventSelector":"6d16111647e03d7f1cb2b71c02eafe3355b97dfc17af3de1b94ef39c8a9ee4d9","id":12783,"name":"StorePayload","nameLocation":"2469:12:53","nodeType":"EventDefinition","parameters":{"id":12782,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12771,"indexed":true,"mutability":"mutable","name":"proposalId","nameLocation":"2507:10:53","nodeType":"VariableDeclaration","scope":12783,"src":"2491:26:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12770,"name":"uint256","nodeType":"ElementaryTypeName","src":"2491:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12773,"indexed":true,"mutability":"mutable","name":"remoteChainId","nameLocation":"2542:13:53","nodeType":"VariableDeclaration","scope":12783,"src":"2527:28:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":12772,"name":"uint16","nodeType":"ElementaryTypeName","src":"2527:6:53","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":12775,"indexed":false,"mutability":"mutable","name":"payload","nameLocation":"2571:7:53","nodeType":"VariableDeclaration","scope":12783,"src":"2565:13:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12774,"name":"bytes","nodeType":"ElementaryTypeName","src":"2565:5:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":12777,"indexed":false,"mutability":"mutable","name":"adapterParams","nameLocation":"2594:13:53","nodeType":"VariableDeclaration","scope":12783,"src":"2588:19:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12776,"name":"bytes","nodeType":"ElementaryTypeName","src":"2588:5:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":12779,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"2625:5:53","nodeType":"VariableDeclaration","scope":12783,"src":"2617:13:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12778,"name":"uint256","nodeType":"ElementaryTypeName","src":"2617:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12781,"indexed":false,"mutability":"mutable","name":"reason","nameLocation":"2646:6:53","nodeType":"VariableDeclaration","scope":12783,"src":"2640:12:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12780,"name":"bytes","nodeType":"ElementaryTypeName","src":"2640:5:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2481:177:53"},"src":"2463:196:53"},{"anonymous":false,"documentation":{"id":12784,"nodeType":"StructuredDocumentation","src":"2664:58:53","text":" @notice Emitted while fallback withdraw"},"eventSelector":"22fe8e8ead80ad0961d77107e806ba9bcf9ca3b175a9d446145646d39c36ab96","id":12790,"name":"FallbackWithdraw","nameLocation":"2733:16:53","nodeType":"EventDefinition","parameters":{"id":12789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12786,"indexed":true,"mutability":"mutable","name":"receiver","nameLocation":"2766:8:53","nodeType":"VariableDeclaration","scope":12790,"src":"2750:24:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12785,"name":"address","nodeType":"ElementaryTypeName","src":"2750:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12788,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"2784:5:53","nodeType":"VariableDeclaration","scope":12790,"src":"2776:13:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12787,"name":"uint256","nodeType":"ElementaryTypeName","src":"2776:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2749:41:53"},"src":"2727:64:53"},{"body":{"id":12812,"nodeType":"Block","src":"2944:94:53","statements":[{"expression":{"arguments":[{"arguments":[{"id":12804,"name":"lzEndpoint_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12793,"src":"2983:11:53","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$4253","typeString":"contract ILayerZeroEndpoint"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$4253","typeString":"contract ILayerZeroEndpoint"}],"id":12803,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2975:7:53","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12802,"name":"address","nodeType":"ElementaryTypeName","src":"2975:7:53","typeDescriptions":{}}},"id":12805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2975:20:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12801,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10945,"src":"2954:20:53","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":12806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2954:42:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12807,"nodeType":"ExpressionStatement","src":"2954:42:53"},{"expression":{"id":12810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12808,"name":"LZ_ENDPOINT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12733,"src":"3006:11:53","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$4253","typeString":"contract ILayerZeroEndpoint"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12809,"name":"lzEndpoint_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12793,"src":"3020:11:53","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$4253","typeString":"contract ILayerZeroEndpoint"}},"src":"3006:25:53","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$4253","typeString":"contract ILayerZeroEndpoint"}},"id":12811,"nodeType":"ExpressionStatement","src":"3006:25:53"}]},"id":12813,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":12798,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12795,"src":"2921:21:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":12799,"kind":"baseConstructorSpecifier","modifierName":{"id":12797,"name":"BaseOmnichainControllerSrc","nameLocations":["2894:26:53"],"nodeType":"IdentifierPath","referencedDeclaration":11381,"src":"2894:26:53"},"nodeType":"ModifierInvocation","src":"2894:49:53"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":12796,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12793,"mutability":"mutable","name":"lzEndpoint_","nameLocation":"2837:11:53","nodeType":"VariableDeclaration","scope":12813,"src":"2818:30:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$4253","typeString":"contract ILayerZeroEndpoint"},"typeName":{"id":12792,"nodeType":"UserDefinedTypeName","pathNode":{"id":12791,"name":"ILayerZeroEndpoint","nameLocations":["2818:18:53"],"nodeType":"IdentifierPath","referencedDeclaration":4253,"src":"2818:18:53"},"referencedDeclaration":4253,"src":"2818:18:53","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$4253","typeString":"contract ILayerZeroEndpoint"}},"visibility":"internal"},{"constant":false,"id":12795,"mutability":"mutable","name":"accessControlManager_","nameLocation":"2866:21:53","nodeType":"VariableDeclaration","scope":12813,"src":"2858:29:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12794,"name":"address","nodeType":"ElementaryTypeName","src":"2858:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2808:85:53"},"returnParameters":{"id":12800,"nodeType":"ParameterList","parameters":[],"src":"2944:0:53"},"scope":13428,"src":"2797:241:53","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":12841,"nodeType":"Block","src":"4100:114:53","statements":[{"expression":{"arguments":[{"id":12831,"name":"remoteChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12816,"src":"4142:14:53","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"arguments":[{"id":12834,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4166:4:53","typeDescriptions":{"typeIdentifier":"t_contract$_OmnichainProposalSender_$13428","typeString":"contract OmnichainProposalSender"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OmnichainProposalSender_$13428","typeString":"contract OmnichainProposalSender"}],"id":12833,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4158:7:53","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12832,"name":"address","nodeType":"ElementaryTypeName","src":"4158:7:53","typeDescriptions":{}}},"id":12835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4158:13:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12836,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12818,"src":"4173:8:53","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":12837,"name":"useZro_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12820,"src":"4183:7:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12838,"name":"adapterParams_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12822,"src":"4192:14:53","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":12829,"name":"LZ_ENDPOINT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12733,"src":"4117:11:53","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$4253","typeString":"contract ILayerZeroEndpoint"}},"id":12830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4129:12:53","memberName":"estimateFees","nodeType":"MemberAccess","referencedDeclaration":4178,"src":"4117:24:53","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint16_$_t_address_$_t_bytes_memory_ptr_$_t_bool_$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint16,address,bytes memory,bool,bytes memory) view external returns (uint256,uint256)"}},"id":12839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4117:90:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":12828,"id":12840,"nodeType":"Return","src":"4110:97:53"}]},"documentation":{"id":12814,"nodeType":"StructuredDocumentation","src":"3044:857:53","text":" @notice Estimates LayerZero fees for cross-chain message delivery to the remote chain\n @dev The estimated fees are the minimum required; it's recommended to increase the fees amount when sending a message. The unused amount will be refunded\n @param remoteChainId_ The LayerZero id of a remote chain\n @param payload_ The payload to be sent to the remote chain. It's computed as follows:\n payload = abi.encode(abi.encode(targets, values, signatures, calldatas, proposalType), pId)\n @param useZro_ Bool that indicates whether to pay in ZRO tokens or not\n @param adapterParams_ The params used to specify the custom amount of gas required for the execution on the destination\n @return nativeFee The amount of fee in the native gas token (e.g. ETH)\n @return zroFee The amount of fee in ZRO token"},"functionSelector":"21b4eaa1","id":12842,"implemented":true,"kind":"function","modifiers":[],"name":"estimateFees","nameLocation":"3915:12:53","nodeType":"FunctionDefinition","parameters":{"id":12823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12816,"mutability":"mutable","name":"remoteChainId_","nameLocation":"3944:14:53","nodeType":"VariableDeclaration","scope":12842,"src":"3937:21:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":12815,"name":"uint16","nodeType":"ElementaryTypeName","src":"3937:6:53","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":12818,"mutability":"mutable","name":"payload_","nameLocation":"3983:8:53","nodeType":"VariableDeclaration","scope":12842,"src":"3968:23:53","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12817,"name":"bytes","nodeType":"ElementaryTypeName","src":"3968:5:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":12820,"mutability":"mutable","name":"useZro_","nameLocation":"4006:7:53","nodeType":"VariableDeclaration","scope":12842,"src":"4001:12:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12819,"name":"bool","nodeType":"ElementaryTypeName","src":"4001:4:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12822,"mutability":"mutable","name":"adapterParams_","nameLocation":"4038:14:53","nodeType":"VariableDeclaration","scope":12842,"src":"4023:29:53","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12821,"name":"bytes","nodeType":"ElementaryTypeName","src":"4023:5:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3927:131:53"},"returnParameters":{"id":12828,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12825,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12842,"src":"4082:7:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12824,"name":"uint256","nodeType":"ElementaryTypeName","src":"4082:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12827,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12842,"src":"4091:7:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12826,"name":"uint256","nodeType":"ElementaryTypeName","src":"4091:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4081:18:53"},"scope":13428,"src":"3906:308:53","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":12871,"nodeType":"Block","src":"4569:284:53","statements":[{"expression":{"arguments":[{"hexValue":"72656d6f76655472757374656452656d6f74652875696e74313629","id":12849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4594:29:53","typeDescriptions":{"typeIdentifier":"t_stringliteral_2dbbec08fb1e5f0b31c703e4dff7e3268ebac9da544f0373d4687a0b82b9223e","typeString":"literal_string \"removeTrustedRemote(uint16)\""},"value":"removeTrustedRemote(uint16)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2dbbec08fb1e5f0b31c703e4dff7e3268ebac9da544f0373d4687a0b82b9223e","typeString":"literal_string \"removeTrustedRemote(uint16)\""}],"id":12848,"name":"_ensureAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11380,"src":"4579:14:53","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":12850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4579:45:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12851,"nodeType":"ExpressionStatement","src":"4579:45:53"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":12853,"name":"trustedRemoteLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12738,"src":"4642:19:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":12855,"indexExpression":{"id":12854,"name":"remoteChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12845,"src":"4662:14:53","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4642:35:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":12856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4678:6:53","memberName":"length","nodeType":"MemberAccess","src":"4642:42:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":12857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4688:1:53","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4642:47:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a20747275737465642072656d6f7465206e6f7420666f756e64","id":12859,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4691:51:53","typeDescriptions":{"typeIdentifier":"t_stringliteral_fb6f40981fe5a22463da4d402f5b2d8f9dbbf83560ebbdd44591d6544b346e53","typeString":"literal_string \"OmnichainProposalSender: trusted remote not found\""},"value":"OmnichainProposalSender: trusted remote not found"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fb6f40981fe5a22463da4d402f5b2d8f9dbbf83560ebbdd44591d6544b346e53","typeString":"literal_string \"OmnichainProposalSender: trusted remote not found\""}],"id":12852,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4634:7:53","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4634:109:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12861,"nodeType":"ExpressionStatement","src":"4634:109:53"},{"expression":{"id":12865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"4753:42:53","subExpression":{"baseExpression":{"id":12862,"name":"trustedRemoteLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12738,"src":"4760:19:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":12864,"indexExpression":{"id":12863,"name":"remoteChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12845,"src":"4780:14:53","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4760:35:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12866,"nodeType":"ExpressionStatement","src":"4753:42:53"},{"eventCall":{"arguments":[{"id":12868,"name":"remoteChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12845,"src":"4831:14:53","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":12867,"name":"TrustedRemoteRemoved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12752,"src":"4810:20:53","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$returns$__$","typeString":"function (uint16)"}},"id":12869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4810:36:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12870,"nodeType":"EmitStatement","src":"4805:41:53"}]},"documentation":{"id":12843,"nodeType":"StructuredDocumentation","src":"4220:283:53","text":" @notice Remove trusted remote from storage\n @param remoteChainId_ The chain's id corresponds to setting the trusted remote to empty\n @custom:access Controlled by Access Control Manager\n @custom:event Emit TrustedRemoteRemoved with remote chain id"},"functionSelector":"2dbbec08","id":12872,"implemented":true,"kind":"function","modifiers":[],"name":"removeTrustedRemote","nameLocation":"4517:19:53","nodeType":"FunctionDefinition","parameters":{"id":12846,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12845,"mutability":"mutable","name":"remoteChainId_","nameLocation":"4544:14:53","nodeType":"VariableDeclaration","scope":12872,"src":"4537:21:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":12844,"name":"uint16","nodeType":"ElementaryTypeName","src":"4537:6:53","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"4536:23:53"},"returnParameters":{"id":12847,"nodeType":"ParameterList","parameters":[],"src":"4569:0:53"},"scope":13428,"src":"4508:345:53","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12993,"nodeType":"Block","src":"6069:1321:53","statements":[{"expression":{"arguments":[{"hexValue":"657865637574652875696e7431362c62797465732c62797465732c6164647265737329","id":12887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6094:37:53","typeDescriptions":{"typeIdentifier":"t_stringliteral_3fd9d7efa735693e4dd1c041655113c895f924ac98c05803ddef289db151740d","typeString":"literal_string \"execute(uint16,bytes,bytes,address)\""},"value":"execute(uint16,bytes,bytes,address)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3fd9d7efa735693e4dd1c041655113c895f924ac98c05803ddef289db151740d","typeString":"literal_string \"execute(uint16,bytes,bytes,address)\""}],"id":12886,"name":"_ensureAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11380,"src":"6079:14:53","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":12888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6079:53:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12889,"nodeType":"ExpressionStatement","src":"6079:53:53"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12891,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6284:3:53","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6288:5:53","memberName":"value","nodeType":"MemberAccess","src":"6284:9:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":12893,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6296:1:53","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6284:13:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a2076616c75652063616e6e6f74206265207a65726f","id":12895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6299:47:53","typeDescriptions":{"typeIdentifier":"t_stringliteral_8fc786e18c67f9a2aae9af1908b470ce7b6a77c7cd6fd1e9dbdafb6499657565","typeString":"literal_string \"OmnichainProposalSender: value cannot be zero\""},"value":"OmnichainProposalSender: value cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8fc786e18c67f9a2aae9af1908b470ce7b6a77c7cd6fd1e9dbdafb6499657565","typeString":"literal_string \"OmnichainProposalSender: value cannot be zero\""}],"id":12890,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6276:7:53","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6276:71:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12897,"nodeType":"ExpressionStatement","src":"6276:71:53"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12899,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12877,"src":"6365:8:53","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":12900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6374:6:53","memberName":"length","nodeType":"MemberAccess","src":"6365:15:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":12901,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6384:1:53","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6365:20:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a20656d707479207061796c6f6164","id":12903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6387:40:53","typeDescriptions":{"typeIdentifier":"t_stringliteral_b4b52b7d4888c17cd61b7d072c8bae52af7ec4fe5cc936af361e359d49845e55","typeString":"literal_string \"OmnichainProposalSender: empty payload\""},"value":"OmnichainProposalSender: empty payload"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b4b52b7d4888c17cd61b7d072c8bae52af7ec4fe5cc936af361e359d49845e55","typeString":"literal_string \"OmnichainProposalSender: empty payload\""}],"id":12898,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6357:7:53","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6357:71:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12905,"nodeType":"ExpressionStatement","src":"6357:71:53"},{"assignments":[12907],"declarations":[{"constant":false,"id":12907,"mutability":"mutable","name":"trustedRemote","nameLocation":"6452:13:53","nodeType":"VariableDeclaration","scope":12993,"src":"6439:26:53","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12906,"name":"bytes","nodeType":"ElementaryTypeName","src":"6439:5:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":12911,"initialValue":{"baseExpression":{"id":12908,"name":"trustedRemoteLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12738,"src":"6468:19:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":12910,"indexExpression":{"id":12909,"name":"remoteChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12875,"src":"6488:14:53","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6468:35:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"VariableDeclarationStatement","src":"6439:64:53"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12913,"name":"trustedRemote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12907,"src":"6521:13:53","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":12914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6535:6:53","memberName":"length","nodeType":"MemberAccess","src":"6521:20:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":12915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6545:1:53","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6521:25:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a2064657374696e6174696f6e20636861696e206973206e6f742061207472757374656420736f75726365","id":12917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6548:68:53","typeDescriptions":{"typeIdentifier":"t_stringliteral_61468fbafd753a44eba72b43458a5a571ff9821e3893131cc67b0876c2e26370","typeString":"literal_string \"OmnichainProposalSender: destination chain is not a trusted source\""},"value":"OmnichainProposalSender: destination chain is not a trusted source"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_61468fbafd753a44eba72b43458a5a571ff9821e3893131cc67b0876c2e26370","typeString":"literal_string \"OmnichainProposalSender: destination chain is not a trusted source\""}],"id":12912,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6513:7:53","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6513:104:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12919,"nodeType":"ExpressionStatement","src":"6513:104:53"},{"expression":{"arguments":[{"id":12921,"name":"remoteChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12875,"src":"6645:14:53","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":12922,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12877,"src":"6661:8:53","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":12920,"name":"_validateProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13427,"src":"6627:17:53","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory)"}},"id":12923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6627:43:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12924,"nodeType":"ExpressionStatement","src":"6627:43:53"},{"assignments":[12926],"declarations":[{"constant":false,"id":12926,"mutability":"mutable","name":"_pId","nameLocation":"6688:4:53","nodeType":"VariableDeclaration","scope":12993,"src":"6680:12:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12925,"name":"uint256","nodeType":"ElementaryTypeName","src":"6680:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12929,"initialValue":{"id":12928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6695:15:53","subExpression":{"id":12927,"name":"proposalCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12724,"src":"6697:13:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6680:30:53"},{"assignments":[12931],"declarations":[{"constant":false,"id":12931,"mutability":"mutable","name":"payload","nameLocation":"6733:7:53","nodeType":"VariableDeclaration","scope":12993,"src":"6720:20:53","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12930,"name":"bytes","nodeType":"ElementaryTypeName","src":"6720:5:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":12937,"initialValue":{"arguments":[{"id":12934,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12877,"src":"6754:8:53","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":12935,"name":"_pId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12926,"src":"6764:4:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12932,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6743:3:53","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12933,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6747:6:53","memberName":"encode","nodeType":"MemberAccess","src":"6743:10:53","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":12936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6743:26:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"6720:49:53"},{"clauses":[{"block":{"id":12960,"nodeType":"Block","src":"7048:82:53","statements":[{"eventCall":{"arguments":[{"id":12955,"name":"remoteChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12875,"src":"7089:14:53","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":12956,"name":"_pId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12926,"src":"7105:4:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12957,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12931,"src":"7111:7:53","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12954,"name":"ExecuteRemoteProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12761,"src":"7067:21:53","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,uint256,bytes memory)"}},"id":12958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7067:52:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12959,"nodeType":"EmitStatement","src":"7062:57:53"}]},"errorName":"","id":12961,"nodeType":"TryCatchClause","src":"7048:82:53"},{"block":{"id":12990,"nodeType":"Block","src":"7159:225:53","statements":[{"expression":{"id":12978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":12965,"name":"storedExecutionHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12729,"src":"7173:21:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"}},"id":12967,"indexExpression":{"id":12966,"name":"_pId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12926,"src":"7195:4:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7173:27:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":12971,"name":"remoteChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12875,"src":"7224:14:53","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":12972,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12931,"src":"7240:7:53","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":12973,"name":"adapterParams_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12879,"src":"7249:14:53","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":12974,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7265:3:53","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7269:5:53","memberName":"value","nodeType":"MemberAccess","src":"7265:9:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12969,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7213:3:53","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12970,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7217:6:53","memberName":"encode","nodeType":"MemberAccess","src":"7213:10:53","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":12976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7213:62:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12968,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7203:9:53","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":12977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7203:73:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7173:103:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12979,"nodeType":"ExpressionStatement","src":"7173:103:53"},{"eventCall":{"arguments":[{"id":12981,"name":"_pId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12926,"src":"7308:4:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12982,"name":"remoteChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12875,"src":"7314:14:53","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":12983,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12931,"src":"7330:7:53","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":12984,"name":"adapterParams_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12879,"src":"7339:14:53","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":12985,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7355:3:53","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7359:5:53","memberName":"value","nodeType":"MemberAccess","src":"7355:9:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12987,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12963,"src":"7366:6:53","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12980,"name":"StorePayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12783,"src":"7295:12:53","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint16_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint256,uint16,bytes memory,bytes memory,uint256,bytes memory)"}},"id":12988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7295:78:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12989,"nodeType":"EmitStatement","src":"7290:83:53"}]},"errorName":"","id":12991,"nodeType":"TryCatchClause","parameters":{"id":12964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12963,"mutability":"mutable","name":"reason","nameLocation":"7151:6:53","nodeType":"VariableDeclaration","scope":12991,"src":"7138:19:53","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12962,"name":"bytes","nodeType":"ElementaryTypeName","src":"7138:5:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7137:21:53"},"src":"7131:253:53"}],"externalCall":{"arguments":[{"id":12943,"name":"remoteChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12875,"src":"6850:14:53","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":12944,"name":"trustedRemote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12907,"src":"6882:13:53","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":12945,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12931,"src":"6913:7:53","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"expression":{"id":12948,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6946:3:53","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6950:6:53","memberName":"sender","nodeType":"MemberAccess","src":"6946:10:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12947,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6938:8:53","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":12946,"name":"address","nodeType":"ElementaryTypeName","src":"6938:8:53","stateMutability":"payable","typeDescriptions":{}}},"id":12950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6938:19:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":12951,"name":"zroPaymentAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12881,"src":"6975:18:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12952,"name":"adapterParams_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12879,"src":"7011:14:53","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":12938,"name":"LZ_ENDPOINT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12733,"src":"6796:11:53","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$4253","typeString":"contract ILayerZeroEndpoint"}},"id":12939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6808:4:53","memberName":"send","nodeType":"MemberAccess","referencedDeclaration":4128,"src":"6796:16:53","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint16_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_address_payable_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,bytes memory,address payable,address,bytes memory) payable external"}},"id":12942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":12940,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6821:3:53","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6825:5:53","memberName":"value","nodeType":"MemberAccess","src":"6821:9:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"6796:36:53","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint16_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_address_payable_$_t_address_$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (uint16,bytes memory,bytes memory,address payable,address,bytes memory) payable external"}},"id":12953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6796:243:53","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12992,"nodeType":"TryStatement","src":"6780:604:53"}]},"documentation":{"id":12873,"nodeType":"StructuredDocumentation","src":"4859:1012:53","text":" @notice Sends a message to execute a remote proposal\n @dev Stores the hash of the execution parameters if sending fails (e.g., due to insufficient fees)\n @param remoteChainId_ The LayerZero id of the remote chain\n @param payload_ The payload to be sent to the remote chain\n It's computed as follows: payload = abi.encode(targets, values, signatures, calldatas, proposalType)\n @param adapterParams_ The params used to specify the custom amount of gas required for the execution on the destination\n @param zroPaymentAddress_ The address of the ZRO token holder who would pay for the transaction. This must be either address(this) or tx.origin\n @custom:event Emits ExecuteRemoteProposal with remote chain id, proposal ID and payload on success\n @custom:event Emits StorePayload with last stored payload proposal ID ,remote chain id , payload, adapter params , values and reason for failure\n @custom:access Controlled by Access Control Manager"},"functionSelector":"3fd9d7ef","id":12994,"implemented":true,"kind":"function","modifiers":[{"id":12884,"kind":"modifierInvocation","modifierName":{"id":12883,"name":"whenNotPaused","nameLocations":["6055:13:53"],"nodeType":"IdentifierPath","referencedDeclaration":7111,"src":"6055:13:53"},"nodeType":"ModifierInvocation","src":"6055:13:53"}],"name":"execute","nameLocation":"5885:7:53","nodeType":"FunctionDefinition","parameters":{"id":12882,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12875,"mutability":"mutable","name":"remoteChainId_","nameLocation":"5909:14:53","nodeType":"VariableDeclaration","scope":12994,"src":"5902:21:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":12874,"name":"uint16","nodeType":"ElementaryTypeName","src":"5902:6:53","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":12877,"mutability":"mutable","name":"payload_","nameLocation":"5948:8:53","nodeType":"VariableDeclaration","scope":12994,"src":"5933:23:53","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12876,"name":"bytes","nodeType":"ElementaryTypeName","src":"5933:5:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":12879,"mutability":"mutable","name":"adapterParams_","nameLocation":"5981:14:53","nodeType":"VariableDeclaration","scope":12994,"src":"5966:29:53","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12878,"name":"bytes","nodeType":"ElementaryTypeName","src":"5966:5:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":12881,"mutability":"mutable","name":"zroPaymentAddress_","nameLocation":"6013:18:53","nodeType":"VariableDeclaration","scope":12994,"src":"6005:26:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12880,"name":"address","nodeType":"ElementaryTypeName","src":"6005:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5892:145:53"},"returnParameters":{"id":12885,"nodeType":"ParameterList","parameters":[],"src":"6069:0:53"},"scope":13428,"src":"5876:1514:53","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":13118,"nodeType":"Block","src":"8586:1145:53","statements":[{"expression":{"arguments":[{"hexValue":"7265747279457865637574652875696e743235362c75696e7431362c62797465732c62797465732c616464726573732c75696e7432353629","id":13015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8611:58:53","typeDescriptions":{"typeIdentifier":"t_stringliteral_e2222b0ec35e4fa576f31f72f2c5a26afdf6b84ac315b7af59d111107a7c89d6","typeString":"literal_string \"retryExecute(uint256,uint16,bytes,bytes,address,uint256)\""},"value":"retryExecute(uint256,uint16,bytes,bytes,address,uint256)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e2222b0ec35e4fa576f31f72f2c5a26afdf6b84ac315b7af59d111107a7c89d6","typeString":"literal_string \"retryExecute(uint256,uint16,bytes,bytes,address,uint256)\""}],"id":13014,"name":"_ensureAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11380,"src":"8596:14:53","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":13016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8596:74:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13017,"nodeType":"ExpressionStatement","src":"8596:74:53"},{"assignments":[13019],"declarations":[{"constant":false,"id":13019,"mutability":"mutable","name":"trustedRemote","nameLocation":"8693:13:53","nodeType":"VariableDeclaration","scope":13118,"src":"8680:26:53","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13018,"name":"bytes","nodeType":"ElementaryTypeName","src":"8680:5:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":13023,"initialValue":{"baseExpression":{"id":13020,"name":"trustedRemoteLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12738,"src":"8709:19:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":13022,"indexExpression":{"id":13021,"name":"remoteChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12999,"src":"8729:14:53","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8709:35:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"VariableDeclarationStatement","src":"8680:64:53"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13025,"name":"trustedRemote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13019,"src":"8762:13:53","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":13026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8776:6:53","memberName":"length","nodeType":"MemberAccess","src":"8762:20:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":13027,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8786:1:53","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8762:25:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a2064657374696e6174696f6e20636861696e206973206e6f742061207472757374656420736f75726365","id":13029,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8789:68:53","typeDescriptions":{"typeIdentifier":"t_stringliteral_61468fbafd753a44eba72b43458a5a571ff9821e3893131cc67b0876c2e26370","typeString":"literal_string \"OmnichainProposalSender: destination chain is not a trusted source\""},"value":"OmnichainProposalSender: destination chain is not a trusted source"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_61468fbafd753a44eba72b43458a5a571ff9821e3893131cc67b0876c2e26370","typeString":"literal_string \"OmnichainProposalSender: destination chain is not a trusted source\""}],"id":13024,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8754:7:53","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8754:104:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13031,"nodeType":"ExpressionStatement","src":"8754:104:53"},{"assignments":[13033],"declarations":[{"constant":false,"id":13033,"mutability":"mutable","name":"hash","nameLocation":"8876:4:53","nodeType":"VariableDeclaration","scope":13118,"src":"8868:12:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13032,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8868:7:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":13037,"initialValue":{"baseExpression":{"id":13034,"name":"storedExecutionHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12729,"src":"8883:21:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"}},"id":13036,"indexExpression":{"id":13035,"name":"pId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12997,"src":"8905:4:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8883:27:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"8868:42:53"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":13044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13039,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13033,"src":"8928:4:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":13042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8944:1:53","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":13041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8936:7:53","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":13040,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8936:7:53","typeDescriptions":{}}},"id":13043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8936:10:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"8928:18:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a206e6f2073746f726564207061796c6f6164","id":13045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8948:44:53","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2dee99a91d995c8e88710507d1b85f55e19c65efb5b25670813dd22d63ba09d","typeString":"literal_string \"OmnichainProposalSender: no stored payload\""},"value":"OmnichainProposalSender: no stored payload"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f2dee99a91d995c8e88710507d1b85f55e19c65efb5b25670813dd22d63ba09d","typeString":"literal_string \"OmnichainProposalSender: no stored payload\""}],"id":13038,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8920:7:53","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8920:73:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13047,"nodeType":"ExpressionStatement","src":"8920:73:53"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13049,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13001,"src":"9011:8:53","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":13050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9020:6:53","memberName":"length","nodeType":"MemberAccess","src":"9011:15:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":13051,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9030:1:53","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9011:20:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a20656d707479207061796c6f6164","id":13053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9033:40:53","typeDescriptions":{"typeIdentifier":"t_stringliteral_b4b52b7d4888c17cd61b7d072c8bae52af7ec4fe5cc936af361e359d49845e55","typeString":"literal_string \"OmnichainProposalSender: empty payload\""},"value":"OmnichainProposalSender: empty payload"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b4b52b7d4888c17cd61b7d072c8bae52af7ec4fe5cc936af361e359d49845e55","typeString":"literal_string \"OmnichainProposalSender: empty payload\""}],"id":13048,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9003:7:53","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9003:71:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13055,"nodeType":"ExpressionStatement","src":"9003:71:53"},{"assignments":[13057,null],"declarations":[{"constant":false,"id":13057,"mutability":"mutable","name":"payload","nameLocation":"9098:7:53","nodeType":"VariableDeclaration","scope":13118,"src":"9085:20:53","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13056,"name":"bytes","nodeType":"ElementaryTypeName","src":"9085:5:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},null],"id":13067,"initialValue":{"arguments":[{"id":13060,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13001,"src":"9122:8:53","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":13062,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9133:5:53","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":13061,"name":"bytes","nodeType":"ElementaryTypeName","src":"9133:5:53","typeDescriptions":{}}},{"id":13064,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9140:7:53","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":13063,"name":"uint256","nodeType":"ElementaryTypeName","src":"9140:7:53","typeDescriptions":{}}}],"id":13065,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"9132:16:53","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}],"expression":{"id":13058,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9111:3:53","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13059,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9115:6:53","memberName":"decode","nodeType":"MemberAccess","src":"9111:10:53","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":13066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9111:38:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"tuple(bytes memory,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"9084:65:53"},{"expression":{"arguments":[{"id":13069,"name":"remoteChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12999,"src":"9177:14:53","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":13070,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13057,"src":"9193:7:53","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13068,"name":"_validateProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13427,"src":"9159:17:53","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory)"}},"id":13071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9159:42:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13072,"nodeType":"ExpressionStatement","src":"9159:42:53"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":13084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":13077,"name":"remoteChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12999,"src":"9254:14:53","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":13078,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13001,"src":"9270:8:53","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":13079,"name":"adapterParams_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13003,"src":"9280:14:53","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":13080,"name":"originalValue_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13007,"src":"9296:14:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13075,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9243:3:53","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13076,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9247:6:53","memberName":"encode","nodeType":"MemberAccess","src":"9243:10:53","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":13081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9243:68:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13074,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"9233:9:53","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":13082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9233:79:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":13083,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13033,"src":"9316:4:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"9233:87:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a20696e76616c696420657865637574696f6e20706172616d73","id":13085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9334:51:53","typeDescriptions":{"typeIdentifier":"t_stringliteral_8358903084c88ef15210bf333ef998ba2611eed32c9f09d8b5a82883806d1286","typeString":"literal_string \"OmnichainProposalSender: invalid execution params\""},"value":"OmnichainProposalSender: invalid execution params"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8358903084c88ef15210bf333ef998ba2611eed32c9f09d8b5a82883806d1286","typeString":"literal_string \"OmnichainProposalSender: invalid execution params\""}],"id":13073,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9212:7:53","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9212:183:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13087,"nodeType":"ExpressionStatement","src":"9212:183:53"},{"expression":{"id":13091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"9406:34:53","subExpression":{"baseExpression":{"id":13088,"name":"storedExecutionHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12729,"src":"9413:21:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"}},"id":13090,"indexExpression":{"id":13089,"name":"pId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12997,"src":"9435:4:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9413:27:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13092,"nodeType":"ExpressionStatement","src":"9406:34:53"},{"eventCall":{"arguments":[{"id":13094,"name":"pId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12997,"src":"9469:4:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13095,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13033,"src":"9475:4:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13093,"name":"ClearPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12768,"src":"9456:12:53","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,bytes32)"}},"id":13096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9456:24:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13097,"nodeType":"EmitStatement","src":"9451:29:53"},{"expression":{"arguments":[{"id":13106,"name":"remoteChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12999,"src":"9558:14:53","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":13107,"name":"trustedRemote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13019,"src":"9586:13:53","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":13108,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13001,"src":"9613:8:53","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"arguments":[{"expression":{"id":13111,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9643:3:53","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9647:6:53","memberName":"sender","nodeType":"MemberAccess","src":"9643:10:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13110,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9635:8:53","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":13109,"name":"address","nodeType":"ElementaryTypeName","src":"9635:8:53","stateMutability":"payable","typeDescriptions":{}}},"id":13113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9635:19:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":13114,"name":"zroPaymentAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13005,"src":"9668:18:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13115,"name":"adapterParams_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13003,"src":"9700:14:53","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":13098,"name":"LZ_ENDPOINT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12733,"src":"9491:11:53","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$4253","typeString":"contract ILayerZeroEndpoint"}},"id":13100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9503:4:53","memberName":"send","nodeType":"MemberAccess","referencedDeclaration":4128,"src":"9491:16:53","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint16_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_address_payable_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,bytes memory,address payable,address,bytes memory) payable external"}},"id":13105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13101,"name":"originalValue_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13007,"src":"9516:14:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":13102,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9533:3:53","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9537:5:53","memberName":"value","nodeType":"MemberAccess","src":"9533:9:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9516:26:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"9491:53:53","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint16_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_address_payable_$_t_address_$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (uint16,bytes memory,bytes memory,address payable,address,bytes memory) payable external"}},"id":13116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9491:233:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13117,"nodeType":"ExpressionStatement","src":"9491:233:53"}]},"documentation":{"id":12995,"nodeType":"StructuredDocumentation","src":"7396:920:53","text":" @notice Resends a previously failed message\n @dev Allows providing more fees if needed. The extra fees will be refunded to the caller\n @param pId_ The proposal ID to identify a failed message\n @param remoteChainId_ The LayerZero id of the remote chain\n @param payload_ The payload to be sent to the remote chain\n It's computed as follows: payload = abi.encode(abi.encode(targets, values, signatures, calldatas, proposalType), pId)\n @param adapterParams_ The params used to specify the custom amount of gas required for the execution on the destination\n @param zroPaymentAddress_ The address of the ZRO token holder who would pay for the transaction.\n @param originalValue_ The msg.value passed when execute() function was called\n @custom:event Emits ClearPayload with proposal ID and hash\n @custom:access Controlled by Access Control Manager"},"functionSelector":"e2222b0e","id":13119,"implemented":true,"kind":"function","modifiers":[{"id":13010,"kind":"modifierInvocation","modifierName":{"id":13009,"name":"whenNotPaused","nameLocations":["8559:13:53"],"nodeType":"IdentifierPath","referencedDeclaration":7111,"src":"8559:13:53"},"nodeType":"ModifierInvocation","src":"8559:13:53"},{"id":13012,"kind":"modifierInvocation","modifierName":{"id":13011,"name":"nonReentrant","nameLocations":["8573:12:53"],"nodeType":"IdentifierPath","referencedDeclaration":7214,"src":"8573:12:53"},"nodeType":"ModifierInvocation","src":"8573:12:53"}],"name":"retryExecute","nameLocation":"8330:12:53","nodeType":"FunctionDefinition","parameters":{"id":13008,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12997,"mutability":"mutable","name":"pId_","nameLocation":"8360:4:53","nodeType":"VariableDeclaration","scope":13119,"src":"8352:12:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12996,"name":"uint256","nodeType":"ElementaryTypeName","src":"8352:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12999,"mutability":"mutable","name":"remoteChainId_","nameLocation":"8381:14:53","nodeType":"VariableDeclaration","scope":13119,"src":"8374:21:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":12998,"name":"uint16","nodeType":"ElementaryTypeName","src":"8374:6:53","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":13001,"mutability":"mutable","name":"payload_","nameLocation":"8420:8:53","nodeType":"VariableDeclaration","scope":13119,"src":"8405:23:53","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13000,"name":"bytes","nodeType":"ElementaryTypeName","src":"8405:5:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":13003,"mutability":"mutable","name":"adapterParams_","nameLocation":"8453:14:53","nodeType":"VariableDeclaration","scope":13119,"src":"8438:29:53","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13002,"name":"bytes","nodeType":"ElementaryTypeName","src":"8438:5:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":13005,"mutability":"mutable","name":"zroPaymentAddress_","nameLocation":"8485:18:53","nodeType":"VariableDeclaration","scope":13119,"src":"8477:26:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13004,"name":"address","nodeType":"ElementaryTypeName","src":"8477:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13007,"mutability":"mutable","name":"originalValue_","nameLocation":"8521:14:53","nodeType":"VariableDeclaration","scope":13119,"src":"8513:22:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13006,"name":"uint256","nodeType":"ElementaryTypeName","src":"8513:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8342:199:53"},"returnParameters":{"id":13013,"nodeType":"ParameterList","parameters":[],"src":"8586:0:53"},"scope":13428,"src":"8321:1410:53","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":13222,"nodeType":"Block","src":"10785:841:53","statements":[{"expression":{"arguments":[{"id":13140,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13122,"src":"10816:3:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13139,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10945,"src":"10795:20:53","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":13141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10795:25:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13142,"nodeType":"ExpressionStatement","src":"10795:25:53"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13144,"name":"originalValue_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13132,"src":"10838:14:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":13145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10855:1:53","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10838:18:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a20696e76616c6964206e617469766520616d6f756e74","id":13147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10858:48:53","typeDescriptions":{"typeIdentifier":"t_stringliteral_232124683b132441e662395a64e30551728c0a15d01f6ff2dd9080f88729b51d","typeString":"literal_string \"OmnichainProposalSender: invalid native amount\""},"value":"OmnichainProposalSender: invalid native amount"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_232124683b132441e662395a64e30551728c0a15d01f6ff2dd9080f88729b51d","typeString":"literal_string \"OmnichainProposalSender: invalid native amount\""}],"id":13143,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10830:7:53","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10830:77:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13149,"nodeType":"ExpressionStatement","src":"10830:77:53"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13151,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13128,"src":"10925:8:53","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":13152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10934:6:53","memberName":"length","nodeType":"MemberAccess","src":"10925:15:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":13153,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10944:1:53","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10925:20:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a20656d707479207061796c6f6164","id":13155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10947:40:53","typeDescriptions":{"typeIdentifier":"t_stringliteral_b4b52b7d4888c17cd61b7d072c8bae52af7ec4fe5cc936af361e359d49845e55","typeString":"literal_string \"OmnichainProposalSender: empty payload\""},"value":"OmnichainProposalSender: empty payload"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b4b52b7d4888c17cd61b7d072c8bae52af7ec4fe5cc936af361e359d49845e55","typeString":"literal_string \"OmnichainProposalSender: empty payload\""}],"id":13150,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10917:7:53","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10917:71:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13157,"nodeType":"ExpressionStatement","src":"10917:71:53"},{"assignments":[13159],"declarations":[{"constant":false,"id":13159,"mutability":"mutable","name":"hash","nameLocation":"11007:4:53","nodeType":"VariableDeclaration","scope":13222,"src":"10999:12:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13158,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10999:7:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":13163,"initialValue":{"baseExpression":{"id":13160,"name":"storedExecutionHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12729,"src":"11014:21:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"}},"id":13162,"indexExpression":{"id":13161,"name":"pId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13124,"src":"11036:4:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11014:27:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"10999:42:53"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":13170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13165,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13159,"src":"11059:4:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":13168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11075:1:53","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":13167,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11067:7:53","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":13166,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11067:7:53","typeDescriptions":{}}},"id":13169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11067:10:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"11059:18:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a206e6f2073746f726564207061796c6f6164","id":13171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11079:44:53","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2dee99a91d995c8e88710507d1b85f55e19c65efb5b25670813dd22d63ba09d","typeString":"literal_string \"OmnichainProposalSender: no stored payload\""},"value":"OmnichainProposalSender: no stored payload"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f2dee99a91d995c8e88710507d1b85f55e19c65efb5b25670813dd22d63ba09d","typeString":"literal_string \"OmnichainProposalSender: no stored payload\""}],"id":13164,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11051:7:53","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11051:73:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13173,"nodeType":"ExpressionStatement","src":"11051:73:53"},{"assignments":[13175],"declarations":[{"constant":false,"id":13175,"mutability":"mutable","name":"execution","nameLocation":"11148:9:53","nodeType":"VariableDeclaration","scope":13222,"src":"11135:22:53","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13174,"name":"bytes","nodeType":"ElementaryTypeName","src":"11135:5:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":13183,"initialValue":{"arguments":[{"id":13178,"name":"remoteChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13126,"src":"11171:14:53","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":13179,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13128,"src":"11187:8:53","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":13180,"name":"adapterParams_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13130,"src":"11197:14:53","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":13181,"name":"originalValue_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13132,"src":"11213:14:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13176,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11160:3:53","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13177,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11164:6:53","memberName":"encode","nodeType":"MemberAccess","src":"11160:10:53","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":13182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11160:68:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"11135:93:53"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":13189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":13186,"name":"execution","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13175,"src":"11256:9:53","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13185,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"11246:9:53","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":13187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11246:20:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":13188,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13159,"src":"11270:4:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"11246:28:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a20696e76616c696420657865637574696f6e20706172616d73","id":13190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11276:51:53","typeDescriptions":{"typeIdentifier":"t_stringliteral_8358903084c88ef15210bf333ef998ba2611eed32c9f09d8b5a82883806d1286","typeString":"literal_string \"OmnichainProposalSender: invalid execution params\""},"value":"OmnichainProposalSender: invalid execution params"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8358903084c88ef15210bf333ef998ba2611eed32c9f09d8b5a82883806d1286","typeString":"literal_string \"OmnichainProposalSender: invalid execution params\""}],"id":13184,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11238:7:53","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11238:90:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13192,"nodeType":"ExpressionStatement","src":"11238:90:53"},{"expression":{"id":13196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"11339:34:53","subExpression":{"baseExpression":{"id":13193,"name":"storedExecutionHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12729,"src":"11346:21:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"}},"id":13195,"indexExpression":{"id":13194,"name":"pId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13124,"src":"11368:4:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11346:27:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13197,"nodeType":"ExpressionStatement","src":"11339:34:53"},{"eventCall":{"arguments":[{"id":13199,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13122,"src":"11406:3:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13200,"name":"originalValue_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13132,"src":"11411:14:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13198,"name":"FallbackWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12790,"src":"11389:16:53","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":13201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11389:37:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13202,"nodeType":"EmitStatement","src":"11384:42:53"},{"eventCall":{"arguments":[{"id":13204,"name":"pId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13124,"src":"11454:4:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13205,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13159,"src":"11460:4:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13203,"name":"ClearPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12768,"src":"11441:12:53","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,bytes32)"}},"id":13206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11441:24:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13207,"nodeType":"EmitStatement","src":"11436:29:53"},{"assignments":[13209,null],"declarations":[{"constant":false,"id":13209,"mutability":"mutable","name":"sent","nameLocation":"11534:4:53","nodeType":"VariableDeclaration","scope":13222,"src":"11529:9:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13208,"name":"bool","nodeType":"ElementaryTypeName","src":"11529:4:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":13216,"initialValue":{"arguments":[{"hexValue":"","id":13214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11578:2:53","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":13210,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13122,"src":"11544:3:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11548:4:53","memberName":"call","nodeType":"MemberAccess","src":"11544:8:53","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":13213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":13212,"name":"originalValue_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13132,"src":"11561:14:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"11544:33:53","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":13215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11544:37:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"11528:53:53"},{"expression":{"arguments":[{"id":13218,"name":"sent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13209,"src":"11599:4:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43616c6c206661696c6564","id":13219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11605:13:53","typeDescriptions":{"typeIdentifier":"t_stringliteral_066ad49a0ed9e5d6a9f3c20fca13a038f0a5d629f0aaf09d634ae2a7c232ac2b","typeString":"literal_string \"Call failed\""},"value":"Call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_066ad49a0ed9e5d6a9f3c20fca13a038f0a5d629f0aaf09d634ae2a7c232ac2b","typeString":"literal_string \"Call failed\""}],"id":13217,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11591:7:53","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11591:28:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13221,"nodeType":"ExpressionStatement","src":"11591:28:53"}]},"documentation":{"id":13120,"nodeType":"StructuredDocumentation","src":"9737:801:53","text":" @notice Clear previously failed message\n @param to_ Address of the receiver\n @param pId_ The proposal ID to identify a failed message\n @param remoteChainId_ The LayerZero id of the remote chain\n @param payload_ The payload to be sent to the remote chain\n It's computed as follows: payload = abi.encode(abi.encode(targets, values, signatures, calldatas, proposalType), pId)\n @param adapterParams_ The params used to specify the custom amount of gas required for the execution on the destination\n @param originalValue_ The msg.value passed when execute() function was called\n @custom:access Only owner\n @custom:event Emits ClearPayload with proposal ID and hash\n @custom:event Emits FallbackWithdraw with receiver and amount"},"functionSelector":"30fd54a0","id":13223,"implemented":true,"kind":"function","modifiers":[{"id":13135,"kind":"modifierInvocation","modifierName":{"id":13134,"name":"onlyOwner","nameLocations":["10762:9:53"],"nodeType":"IdentifierPath","referencedDeclaration":6995,"src":"10762:9:53"},"nodeType":"ModifierInvocation","src":"10762:9:53"},{"id":13137,"kind":"modifierInvocation","modifierName":{"id":13136,"name":"nonReentrant","nameLocations":["10772:12:53"],"nodeType":"IdentifierPath","referencedDeclaration":7214,"src":"10772:12:53"},"nodeType":"ModifierInvocation","src":"10772:12:53"}],"name":"fallbackWithdraw","nameLocation":"10552:16:53","nodeType":"FunctionDefinition","parameters":{"id":13133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13122,"mutability":"mutable","name":"to_","nameLocation":"10586:3:53","nodeType":"VariableDeclaration","scope":13223,"src":"10578:11:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13121,"name":"address","nodeType":"ElementaryTypeName","src":"10578:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13124,"mutability":"mutable","name":"pId_","nameLocation":"10607:4:53","nodeType":"VariableDeclaration","scope":13223,"src":"10599:12:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13123,"name":"uint256","nodeType":"ElementaryTypeName","src":"10599:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13126,"mutability":"mutable","name":"remoteChainId_","nameLocation":"10628:14:53","nodeType":"VariableDeclaration","scope":13223,"src":"10621:21:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":13125,"name":"uint16","nodeType":"ElementaryTypeName","src":"10621:6:53","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":13128,"mutability":"mutable","name":"payload_","nameLocation":"10667:8:53","nodeType":"VariableDeclaration","scope":13223,"src":"10652:23:53","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13127,"name":"bytes","nodeType":"ElementaryTypeName","src":"10652:5:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":13130,"mutability":"mutable","name":"adapterParams_","nameLocation":"10700:14:53","nodeType":"VariableDeclaration","scope":13223,"src":"10685:29:53","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13129,"name":"bytes","nodeType":"ElementaryTypeName","src":"10685:5:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":13132,"mutability":"mutable","name":"originalValue_","nameLocation":"10732:14:53","nodeType":"VariableDeclaration","scope":13223,"src":"10724:22:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13131,"name":"uint256","nodeType":"ElementaryTypeName","src":"10724:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10568:184:53"},"returnParameters":{"id":13138,"nodeType":"ParameterList","parameters":[],"src":"10785:0:53"},"scope":13428,"src":"10543:1083:53","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":13290,"nodeType":"Block","src":"12137:637:53","statements":[{"expression":{"arguments":[{"hexValue":"7365745472757374656452656d6f7465416464726573732875696e7431362c627974657329","id":13232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12162:39:53","typeDescriptions":{"typeIdentifier":"t_stringliteral_a6c3d16528fdb8baf9e729063f35f9c7184418596f7c04e03850cd5ff17b0f92","typeString":"literal_string \"setTrustedRemoteAddress(uint16,bytes)\""},"value":"setTrustedRemoteAddress(uint16,bytes)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a6c3d16528fdb8baf9e729063f35f9c7184418596f7c04e03850cd5ff17b0f92","typeString":"literal_string \"setTrustedRemoteAddress(uint16,bytes)\""}],"id":13231,"name":"_ensureAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11380,"src":"12147:14:53","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":13233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12147:55:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13234,"nodeType":"ExpressionStatement","src":"12147:55:53"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":13238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13236,"name":"remoteChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13226,"src":"12220:14:53","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":13237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12238:1:53","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12220:19:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a20636861696e4964206d757374206e6f74206265207a65726f","id":13239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12241:51:53","typeDescriptions":{"typeIdentifier":"t_stringliteral_4867e9bc1f5aceefa1d5492b8babd12820787c1937becbd7fd5e31e7ecb2fecc","typeString":"literal_string \"OmnichainProposalSender: chainId must not be zero\""},"value":"OmnichainProposalSender: chainId must not be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4867e9bc1f5aceefa1d5492b8babd12820787c1937becbd7fd5e31e7ecb2fecc","typeString":"literal_string \"OmnichainProposalSender: chainId must not be zero\""}],"id":13235,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12212:7:53","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12212:81:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13241,"nodeType":"ExpressionStatement","src":"12212:81:53"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":13249,"name":"newRemoteAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13228,"src":"12348:17:53","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":13248,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12340:7:53","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes20_$","typeString":"type(bytes20)"},"typeName":{"id":13247,"name":"bytes20","nodeType":"ElementaryTypeName","src":"12340:7:53","typeDescriptions":{}}},"id":13250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12340:26:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes20","typeString":"bytes20"}],"id":13246,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12332:7:53","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":13245,"name":"uint160","nodeType":"ElementaryTypeName","src":"12332:7:53","typeDescriptions":{}}},"id":13251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12332:35:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":13244,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12324:7:53","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13243,"name":"address","nodeType":"ElementaryTypeName","src":"12324:7:53","typeDescriptions":{}}},"id":13252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12324:44:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13242,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10945,"src":"12303:20:53","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":13253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12303:66:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13254,"nodeType":"ExpressionStatement","src":"12303:66:53"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13256,"name":"newRemoteAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13228,"src":"12387:17:53","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":13257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12405:6:53","memberName":"length","nodeType":"MemberAccess","src":"12387:24:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3230","id":13258,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12415:2:53","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"src":"12387:30:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a2072656d6f74652061646472657373206d757374206265203230206279746573206c6f6e67","id":13260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12419:63:53","typeDescriptions":{"typeIdentifier":"t_stringliteral_f5eefd0c62457e6ddad4d12b314f91d912b3ccd761af75b4b7cf73ff444e1b62","typeString":"literal_string \"OmnichainProposalSender: remote address must be 20 bytes long\""},"value":"OmnichainProposalSender: remote address must be 20 bytes long"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f5eefd0c62457e6ddad4d12b314f91d912b3ccd761af75b4b7cf73ff444e1b62","typeString":"literal_string \"OmnichainProposalSender: remote address must be 20 bytes long\""}],"id":13255,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12379:7:53","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12379:104:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13262,"nodeType":"ExpressionStatement","src":"12379:104:53"},{"assignments":[13264],"declarations":[{"constant":false,"id":13264,"mutability":"mutable","name":"oldRemoteAddress","nameLocation":"12506:16:53","nodeType":"VariableDeclaration","scope":13290,"src":"12493:29:53","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13263,"name":"bytes","nodeType":"ElementaryTypeName","src":"12493:5:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":13268,"initialValue":{"baseExpression":{"id":13265,"name":"trustedRemoteLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12738,"src":"12525:19:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":13267,"indexExpression":{"id":13266,"name":"remoteChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13226,"src":"12545:14:53","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12525:35:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"VariableDeclarationStatement","src":"12493:67:53"},{"expression":{"id":13280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":13269,"name":"trustedRemoteLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12738,"src":"12570:19:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":13271,"indexExpression":{"id":13270,"name":"remoteChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13226,"src":"12590:14:53","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12570:35:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":13274,"name":"newRemoteAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13228,"src":"12625:17:53","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"arguments":[{"id":13277,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12652:4:53","typeDescriptions":{"typeIdentifier":"t_contract$_OmnichainProposalSender_$13428","typeString":"contract OmnichainProposalSender"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OmnichainProposalSender_$13428","typeString":"contract OmnichainProposalSender"}],"id":13276,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12644:7:53","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13275,"name":"address","nodeType":"ElementaryTypeName","src":"12644:7:53","typeDescriptions":{}}},"id":13278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12644:13:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":13272,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12608:3:53","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13273,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12612:12:53","memberName":"encodePacked","nodeType":"MemberAccess","src":"12608:16:53","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":13279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12608:50:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"12570:88:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":13281,"nodeType":"ExpressionStatement","src":"12570:88:53"},{"eventCall":{"arguments":[{"id":13283,"name":"remoteChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13226,"src":"12697:14:53","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":13284,"name":"oldRemoteAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13264,"src":"12713:16:53","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"baseExpression":{"id":13285,"name":"trustedRemoteLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12738,"src":"12731:19:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":13287,"indexExpression":{"id":13286,"name":"remoteChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13226,"src":"12751:14:53","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12731:35:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}],"id":13282,"name":"SetTrustedRemoteAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12747,"src":"12673:23:53","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,bytes memory)"}},"id":13288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12673:94:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13289,"nodeType":"EmitStatement","src":"12668:99:53"}]},"documentation":{"id":13224,"nodeType":"StructuredDocumentation","src":"11632:401:53","text":" @notice Sets the remote message receiver address\n @param remoteChainId_ The LayerZero id of a remote chain\n @param newRemoteAddress_ The address of the contract on the remote chain to receive messages sent by this contract\n @custom:access Controlled by AccessControlManager\n @custom:event Emits SetTrustedRemoteAddress with remote chain Id and remote address"},"functionSelector":"a6c3d165","id":13291,"implemented":true,"kind":"function","modifiers":[],"name":"setTrustedRemoteAddress","nameLocation":"12047:23:53","nodeType":"FunctionDefinition","parameters":{"id":13229,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13226,"mutability":"mutable","name":"remoteChainId_","nameLocation":"12078:14:53","nodeType":"VariableDeclaration","scope":13291,"src":"12071:21:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":13225,"name":"uint16","nodeType":"ElementaryTypeName","src":"12071:6:53","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":13228,"mutability":"mutable","name":"newRemoteAddress_","nameLocation":"12109:17:53","nodeType":"VariableDeclaration","scope":13291,"src":"12094:32:53","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13227,"name":"bytes","nodeType":"ElementaryTypeName","src":"12094:5:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12070:57:53"},"returnParameters":{"id":13230,"nodeType":"ParameterList","parameters":[],"src":"12137:0:53"},"scope":13428,"src":"12038:736:53","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":13316,"nodeType":"Block","src":"13364:146:53","statements":[{"expression":{"arguments":[{"hexValue":"736574436f6e6669672875696e7431362c75696e7431362c75696e743235362c627974657329","id":13304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13389:40:53","typeDescriptions":{"typeIdentifier":"t_stringliteral_cbed8b9c800c1b7dc5ea46356aeb1ab48cb3e48210b3337f05074dd78ea37409","typeString":"literal_string \"setConfig(uint16,uint16,uint256,bytes)\""},"value":"setConfig(uint16,uint16,uint256,bytes)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cbed8b9c800c1b7dc5ea46356aeb1ab48cb3e48210b3337f05074dd78ea37409","typeString":"literal_string \"setConfig(uint16,uint16,uint256,bytes)\""}],"id":13303,"name":"_ensureAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11380,"src":"13374:14:53","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":13305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13374:56:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13306,"nodeType":"ExpressionStatement","src":"13374:56:53"},{"expression":{"arguments":[{"id":13310,"name":"version_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13294,"src":"13462:8:53","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":13311,"name":"chainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13296,"src":"13472:8:53","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":13312,"name":"configType_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13298,"src":"13482:11:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13313,"name":"config_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13300,"src":"13495:7:53","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":13307,"name":"LZ_ENDPOINT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12733,"src":"13440:11:53","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$4253","typeString":"contract ILayerZeroEndpoint"}},"id":13309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13452:9:53","memberName":"setConfig","nodeType":"MemberAccess","referencedDeclaration":4280,"src":"13440:21:53","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_uint16_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,uint16,uint256,bytes memory) external"}},"id":13314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13440:63:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13315,"nodeType":"ExpressionStatement","src":"13440:63:53"}]},"documentation":{"id":13292,"nodeType":"StructuredDocumentation","src":"12780:472:53","text":" @notice Sets the configuration of the LayerZero messaging library of the specified version\n @param version_ Messaging library version\n @param chainId_ The LayerZero chainId for the pending config change\n @param configType_ The type of configuration. Every messaging library has its own convention\n @param config_ The configuration in bytes. It can encode arbitrary content\n @custom:access Controlled by AccessControlManager"},"functionSelector":"cbed8b9c","id":13317,"implemented":true,"kind":"function","modifiers":[],"name":"setConfig","nameLocation":"13266:9:53","nodeType":"FunctionDefinition","parameters":{"id":13301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13294,"mutability":"mutable","name":"version_","nameLocation":"13283:8:53","nodeType":"VariableDeclaration","scope":13317,"src":"13276:15:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":13293,"name":"uint16","nodeType":"ElementaryTypeName","src":"13276:6:53","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":13296,"mutability":"mutable","name":"chainId_","nameLocation":"13300:8:53","nodeType":"VariableDeclaration","scope":13317,"src":"13293:15:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":13295,"name":"uint16","nodeType":"ElementaryTypeName","src":"13293:6:53","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":13298,"mutability":"mutable","name":"configType_","nameLocation":"13318:11:53","nodeType":"VariableDeclaration","scope":13317,"src":"13310:19:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13297,"name":"uint256","nodeType":"ElementaryTypeName","src":"13310:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13300,"mutability":"mutable","name":"config_","nameLocation":"13346:7:53","nodeType":"VariableDeclaration","scope":13317,"src":"13331:22:53","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13299,"name":"bytes","nodeType":"ElementaryTypeName","src":"13331:5:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"13275:79:53"},"returnParameters":{"id":13302,"nodeType":"ParameterList","parameters":[],"src":"13364:0:53"},"scope":13428,"src":"13257:253:53","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":13333,"nodeType":"Block","src":"13790:103:53","statements":[{"expression":{"arguments":[{"hexValue":"73657453656e6456657273696f6e2875696e74313629","id":13324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13815:24:53","typeDescriptions":{"typeIdentifier":"t_stringliteral_07e0db17904b81981c0c43740d597b22eeb99bef680ad829920a4586dd4b1604","typeString":"literal_string \"setSendVersion(uint16)\""},"value":"setSendVersion(uint16)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_07e0db17904b81981c0c43740d597b22eeb99bef680ad829920a4586dd4b1604","typeString":"literal_string \"setSendVersion(uint16)\""}],"id":13323,"name":"_ensureAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11380,"src":"13800:14:53","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":13325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13800:40:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13326,"nodeType":"ExpressionStatement","src":"13800:40:53"},{"expression":{"arguments":[{"id":13330,"name":"version_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13320,"src":"13877:8:53","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"id":13327,"name":"LZ_ENDPOINT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12733,"src":"13850:11:53","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$4253","typeString":"contract ILayerZeroEndpoint"}},"id":13329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13862:14:53","memberName":"setSendVersion","nodeType":"MemberAccess","referencedDeclaration":4285,"src":"13850:26:53","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$returns$__$","typeString":"function (uint16) external"}},"id":13331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13850:36:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13332,"nodeType":"ExpressionStatement","src":"13850:36:53"}]},"documentation":{"id":13318,"nodeType":"StructuredDocumentation","src":"13516:219:53","text":" @notice Sets the configuration of the LayerZero messaging library of the specified version\n @param version_ New messaging library version\n @custom:access Controlled by AccessControlManager"},"functionSelector":"07e0db17","id":13334,"implemented":true,"kind":"function","modifiers":[],"name":"setSendVersion","nameLocation":"13749:14:53","nodeType":"FunctionDefinition","parameters":{"id":13321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13320,"mutability":"mutable","name":"version_","nameLocation":"13771:8:53","nodeType":"VariableDeclaration","scope":13334,"src":"13764:15:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":13319,"name":"uint16","nodeType":"ElementaryTypeName","src":"13764:6:53","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"13763:17:53"},"returnParameters":{"id":13322,"nodeType":"ParameterList","parameters":[],"src":"13790:0:53"},"scope":13428,"src":"13740:153:53","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":13357,"nodeType":"Block","src":"14314:93:53","statements":[{"expression":{"arguments":[{"id":13348,"name":"version_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13337,"src":"14353:8:53","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":13349,"name":"chainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13339,"src":"14363:8:53","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"arguments":[{"id":13352,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"14381:4:53","typeDescriptions":{"typeIdentifier":"t_contract$_OmnichainProposalSender_$13428","typeString":"contract OmnichainProposalSender"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OmnichainProposalSender_$13428","typeString":"contract OmnichainProposalSender"}],"id":13351,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14373:7:53","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13350,"name":"address","nodeType":"ElementaryTypeName","src":"14373:7:53","typeDescriptions":{}}},"id":13353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14373:13:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13354,"name":"configType_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13341,"src":"14388:11:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13346,"name":"LZ_ENDPOINT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12733,"src":"14331:11:53","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$4253","typeString":"contract ILayerZeroEndpoint"}},"id":13347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14343:9:53","memberName":"getConfig","nodeType":"MemberAccess","referencedDeclaration":4238,"src":"14331:21:53","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint16_$_t_uint16_$_t_address_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint16,uint16,address,uint256) view external returns (bytes memory)"}},"id":13355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14331:69:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":13345,"id":13356,"nodeType":"Return","src":"14324:76:53"}]},"documentation":{"id":13335,"nodeType":"StructuredDocumentation","src":"13899:299:53","text":" @notice Gets the configuration of the LayerZero messaging library of the specified version\n @param version_ Messaging library version\n @param chainId_ The LayerZero chainId\n @param configType_ Type of configuration. Every messaging library has its own convention"},"functionSelector":"5f6716f7","id":13358,"implemented":true,"kind":"function","modifiers":[],"name":"getConfig","nameLocation":"14212:9:53","nodeType":"FunctionDefinition","parameters":{"id":13342,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13337,"mutability":"mutable","name":"version_","nameLocation":"14229:8:53","nodeType":"VariableDeclaration","scope":13358,"src":"14222:15:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":13336,"name":"uint16","nodeType":"ElementaryTypeName","src":"14222:6:53","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":13339,"mutability":"mutable","name":"chainId_","nameLocation":"14246:8:53","nodeType":"VariableDeclaration","scope":13358,"src":"14239:15:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":13338,"name":"uint16","nodeType":"ElementaryTypeName","src":"14239:6:53","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":13341,"mutability":"mutable","name":"configType_","nameLocation":"14264:11:53","nodeType":"VariableDeclaration","scope":13358,"src":"14256:19:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13340,"name":"uint256","nodeType":"ElementaryTypeName","src":"14256:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14221:55:53"},"returnParameters":{"id":13345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13344,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13358,"src":"14300:12:53","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13343,"name":"bytes","nodeType":"ElementaryTypeName","src":"14300:5:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14299:14:53"},"scope":13428,"src":"14203:204:53","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":13426,"nodeType":"Block","src":"14495:577:53","statements":[{"assignments":[13369,13372,13375,13378,null],"declarations":[{"constant":false,"id":13369,"mutability":"mutable","name":"targets","nameLocation":"14536:7:53","nodeType":"VariableDeclaration","scope":13426,"src":"14519:24:53","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":13367,"name":"address","nodeType":"ElementaryTypeName","src":"14519:7:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13368,"nodeType":"ArrayTypeName","src":"14519:9:53","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":13372,"mutability":"mutable","name":"values","nameLocation":"14574:6:53","nodeType":"VariableDeclaration","scope":13426,"src":"14557:23:53","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":13370,"name":"uint256","nodeType":"ElementaryTypeName","src":"14557:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13371,"nodeType":"ArrayTypeName","src":"14557:9:53","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":13375,"mutability":"mutable","name":"signatures","nameLocation":"14610:10:53","nodeType":"VariableDeclaration","scope":13426,"src":"14594:26:53","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":13373,"name":"string","nodeType":"ElementaryTypeName","src":"14594:6:53","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":13374,"nodeType":"ArrayTypeName","src":"14594:8:53","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":13378,"mutability":"mutable","name":"calldatas","nameLocation":"14649:9:53","nodeType":"VariableDeclaration","scope":13426,"src":"14634:24:53","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":13376,"name":"bytes","nodeType":"ElementaryTypeName","src":"14634:5:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":13377,"nodeType":"ArrayTypeName","src":"14634:7:53","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},null],"id":13398,"initialValue":{"arguments":[{"id":13381,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13362,"src":"14684:8:53","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"baseExpression":{"id":13383,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14695:7:53","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13382,"name":"address","nodeType":"ElementaryTypeName","src":"14695:7:53","typeDescriptions":{}}},"id":13384,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"14695:9:53","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"type(address[] memory)"}},{"baseExpression":{"id":13386,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14706:4:53","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":13385,"name":"uint","nodeType":"ElementaryTypeName","src":"14706:4:53","typeDescriptions":{}}},"id":13387,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"14706:6:53","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"type(uint256[] memory)"}},{"baseExpression":{"id":13389,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14714:6:53","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":13388,"name":"string","nodeType":"ElementaryTypeName","src":"14714:6:53","typeDescriptions":{}}},"id":13390,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"14714:8:53","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$","typeString":"type(string memory[] memory)"}},{"baseExpression":{"id":13392,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14724:5:53","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":13391,"name":"bytes","nodeType":"ElementaryTypeName","src":"14724:5:53","typeDescriptions":{}}},"id":13393,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"14724:7:53","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"type(bytes memory[] memory)"}},{"id":13395,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14733:5:53","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":13394,"name":"uint8","nodeType":"ElementaryTypeName","src":"14733:5:53","typeDescriptions":{}}}],"id":13396,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"14694:45:53","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_array$_t_address_$dyn_memory_ptr_$_$_t_type$_t_array$_t_uint256_$dyn_memory_ptr_$_$_t_type$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_$_t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_$_t_type$_t_uint8_$_$","typeString":"tuple(type(address[] memory),type(uint256[] memory),type(string memory[] memory),type(bytes memory[] memory),type(uint8))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_array$_t_address_$dyn_memory_ptr_$_$_t_type$_t_array$_t_uint256_$dyn_memory_ptr_$_$_t_type$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_$_t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_$_t_type$_t_uint8_$_$","typeString":"tuple(type(address[] memory),type(uint256[] memory),type(string memory[] memory),type(bytes memory[] memory),type(uint8))"}],"expression":{"id":13379,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14673:3:53","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13380,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14677:6:53","memberName":"decode","nodeType":"MemberAccess","src":"14673:10:53","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":13397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14673:67:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_uint8_$","typeString":"tuple(address[] memory,uint256[] memory,string memory[] memory,bytes memory[] memory,uint8)"}},"nodeType":"VariableDeclarationStatement","src":"14505:235:53"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":13416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":13410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13400,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13369,"src":"14771:7:53","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":13401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14779:6:53","memberName":"length","nodeType":"MemberAccess","src":"14771:14:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":13402,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13372,"src":"14789:6:53","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":13403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14796:6:53","memberName":"length","nodeType":"MemberAccess","src":"14789:13:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14771:31:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13405,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13369,"src":"14822:7:53","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":13406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14830:6:53","memberName":"length","nodeType":"MemberAccess","src":"14822:14:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":13407,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13375,"src":"14840:10:53","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":13408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14851:6:53","memberName":"length","nodeType":"MemberAccess","src":"14840:17:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14822:35:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14771:86:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13411,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13369,"src":"14877:7:53","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":13412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14885:6:53","memberName":"length","nodeType":"MemberAccess","src":"14877:14:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":13413,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13378,"src":"14895:9:53","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":13414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14905:6:53","memberName":"length","nodeType":"MemberAccess","src":"14895:16:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14877:34:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14771:140:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a2070726f706f73616c2066756e6374696f6e20696e666f726d6174696f6e206172697479206d69736d61746368","id":13417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14925:71:53","typeDescriptions":{"typeIdentifier":"t_stringliteral_c21731293dc1db8cf9168ecb51cce73dc982950e761a15c276e0761cd2ea3210","typeString":"literal_string \"OmnichainProposalSender: proposal function information arity mismatch\""},"value":"OmnichainProposalSender: proposal function information arity mismatch"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c21731293dc1db8cf9168ecb51cce73dc982950e761a15c276e0761cd2ea3210","typeString":"literal_string \"OmnichainProposalSender: proposal function information arity mismatch\""}],"id":13399,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"14750:7:53","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14750:256:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13419,"nodeType":"ExpressionStatement","src":"14750:256:53"},{"expression":{"arguments":[{"id":13421,"name":"remoteChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13360,"src":"15034:14:53","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"expression":{"id":13422,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13369,"src":"15050:7:53","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":13423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15058:6:53","memberName":"length","nodeType":"MemberAccess","src":"15050:14:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13420,"name":"_isEligibleToSend","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11361,"src":"15016:17:53","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (uint16,uint256)"}},"id":13424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15016:49:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13425,"nodeType":"ExpressionStatement","src":"15016:49:53"}]},"id":13427,"implemented":true,"kind":"function","modifiers":[],"name":"_validateProposal","nameLocation":"14422:17:53","nodeType":"FunctionDefinition","parameters":{"id":13363,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13360,"mutability":"mutable","name":"remoteChainId_","nameLocation":"14447:14:53","nodeType":"VariableDeclaration","scope":13427,"src":"14440:21:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":13359,"name":"uint16","nodeType":"ElementaryTypeName","src":"14440:6:53","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":13362,"mutability":"mutable","name":"payload_","nameLocation":"14476:8:53","nodeType":"VariableDeclaration","scope":13427,"src":"14463:21:53","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13361,"name":"bytes","nodeType":"ElementaryTypeName","src":"14463:5:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14439:46:53"},"returnParameters":{"id":13364,"nodeType":"ParameterList","parameters":[],"src":"14495:0:53"},"scope":13428,"src":"14413:659:53","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":13429,"src":"927:14147:53","usedErrors":[10924],"usedEvents":[6977,7087,7092,11175,11182,12747,12752,12761,12768,12783,12790]}],"src":"33:15042:53"},"id":53},"contracts/Cross-chain/interfaces/IOmnichainGovernanceExecutor.sol":{"ast":{"absolutePath":"contracts/Cross-chain/interfaces/IOmnichainGovernanceExecutor.sol","exportedSymbols":{"IOmnichainGovernanceExecutor":[13445]},"id":13446,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":13430,"literals":["solidity","^","0.8",".25"],"nodeType":"PragmaDirective","src":"32:24:54"},{"abstract":false,"baseContracts":[],"canonicalName":"IOmnichainGovernanceExecutor","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":13445,"linearizedBaseContracts":[13445],"name":"IOmnichainGovernanceExecutor","nameLocation":"68:28:54","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":13431,"nodeType":"StructuredDocumentation","src":"103:157:54","text":" @notice Transfers ownership of the contract to the specified address\n @param addr The address to which ownership will be transferred"},"functionSelector":"f2fde38b","id":13436,"implemented":false,"kind":"function","modifiers":[],"name":"transferOwnership","nameLocation":"274:17:54","nodeType":"FunctionDefinition","parameters":{"id":13434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13433,"mutability":"mutable","name":"addr","nameLocation":"300:4:54","nodeType":"VariableDeclaration","scope":13436,"src":"292:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13432,"name":"address","nodeType":"ElementaryTypeName","src":"292:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"291:14:54"},"returnParameters":{"id":13435,"nodeType":"ParameterList","parameters":[],"src":"314:0:54"},"scope":13445,"src":"265:50:54","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":13437,"nodeType":"StructuredDocumentation","src":"321:200:54","text":" @notice Sets the source message sender address\n @param srcChainId_ The LayerZero id of a source chain\n @param srcAddress_ The address of the contract on the source chain"},"functionSelector":"a6c3d165","id":13444,"implemented":false,"kind":"function","modifiers":[],"name":"setTrustedRemoteAddress","nameLocation":"535:23:54","nodeType":"FunctionDefinition","parameters":{"id":13442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13439,"mutability":"mutable","name":"srcChainId_","nameLocation":"566:11:54","nodeType":"VariableDeclaration","scope":13444,"src":"559:18:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":13438,"name":"uint16","nodeType":"ElementaryTypeName","src":"559:6:54","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":13441,"mutability":"mutable","name":"srcAddress_","nameLocation":"594:11:54","nodeType":"VariableDeclaration","scope":13444,"src":"579:26:54","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13440,"name":"bytes","nodeType":"ElementaryTypeName","src":"579:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"558:48:54"},"returnParameters":{"id":13443,"nodeType":"ParameterList","parameters":[],"src":"615:0:54"},"scope":13445,"src":"526:90:54","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":13446,"src":"58:560:54","usedErrors":[],"usedEvents":[]}],"src":"32:587:54"},"id":54},"contracts/Cross-chain/interfaces/ITimelock.sol":{"ast":{"absolutePath":"contracts/Cross-chain/interfaces/ITimelock.sol","exportedSymbols":{"ITimelock":[13525]},"id":13526,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":13447,"literals":["solidity","^","0.8",".25"],"nodeType":"PragmaDirective","src":"41:24:55"},{"abstract":false,"baseContracts":[],"canonicalName":"ITimelock","contractDependencies":[],"contractKind":"interface","documentation":{"id":13448,"nodeType":"StructuredDocumentation","src":"67:177:55","text":" @title ITimelock\n @author Venus\n @dev Interface for Timelock contract\n @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion"},"fullyImplemented":false,"id":13525,"linearizedBaseContracts":[13525],"name":"ITimelock","nameLocation":"255:9:55","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":13449,"nodeType":"StructuredDocumentation","src":"271:65:55","text":" @notice Delay period for the transaction queue"},"functionSelector":"6a42b8f8","id":13454,"implemented":false,"kind":"function","modifiers":[],"name":"delay","nameLocation":"350:5:55","nodeType":"FunctionDefinition","parameters":{"id":13450,"nodeType":"ParameterList","parameters":[],"src":"355:2:55"},"returnParameters":{"id":13453,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13452,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13454,"src":"381:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13451,"name":"uint256","nodeType":"ElementaryTypeName","src":"381:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"380:9:55"},"scope":13525,"src":"341:49:55","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":13455,"nodeType":"StructuredDocumentation","src":"396:76:55","text":" @notice Required period to execute a proposal transaction"},"functionSelector":"c1a287e2","id":13460,"implemented":false,"kind":"function","modifiers":[],"name":"GRACE_PERIOD","nameLocation":"486:12:55","nodeType":"FunctionDefinition","parameters":{"id":13456,"nodeType":"ParameterList","parameters":[],"src":"498:2:55"},"returnParameters":{"id":13459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13458,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13460,"src":"524:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13457,"name":"uint256","nodeType":"ElementaryTypeName","src":"524:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"523:9:55"},"scope":13525,"src":"477:56:55","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":13461,"nodeType":"StructuredDocumentation","src":"539:64:55","text":" @notice Method for accepting a proposed admin"},"functionSelector":"0e18b681","id":13464,"implemented":false,"kind":"function","modifiers":[],"name":"acceptAdmin","nameLocation":"617:11:55","nodeType":"FunctionDefinition","parameters":{"id":13462,"nodeType":"ParameterList","parameters":[],"src":"628:2:55"},"returnParameters":{"id":13463,"nodeType":"ParameterList","parameters":[],"src":"639:0:55"},"scope":13525,"src":"608:32:55","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":13465,"nodeType":"StructuredDocumentation","src":"646:133:55","text":" @notice Method to propose a new admin authorized to call timelock functions. This should be the Governor Contract."},"functionSelector":"4dd18bf5","id":13470,"implemented":false,"kind":"function","modifiers":[],"name":"setPendingAdmin","nameLocation":"793:15:55","nodeType":"FunctionDefinition","parameters":{"id":13468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13467,"mutability":"mutable","name":"pendingAdmin","nameLocation":"817:12:55","nodeType":"VariableDeclaration","scope":13470,"src":"809:20:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13466,"name":"address","nodeType":"ElementaryTypeName","src":"809:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"808:22:55"},"returnParameters":{"id":13469,"nodeType":"ParameterList","parameters":[],"src":"839:0:55"},"scope":13525,"src":"784:56:55","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":13471,"nodeType":"StructuredDocumentation","src":"846:98:55","text":" @notice Show mapping of queued transactions\n @param hash Transaction hash"},"functionSelector":"f2b06537","id":13478,"implemented":false,"kind":"function","modifiers":[],"name":"queuedTransactions","nameLocation":"958:18:55","nodeType":"FunctionDefinition","parameters":{"id":13474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13473,"mutability":"mutable","name":"hash","nameLocation":"985:4:55","nodeType":"VariableDeclaration","scope":13478,"src":"977:12:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13472,"name":"bytes32","nodeType":"ElementaryTypeName","src":"977:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"976:14:55"},"returnParameters":{"id":13477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13476,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13478,"src":"1014:4:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13475,"name":"bool","nodeType":"ElementaryTypeName","src":"1014:4:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1013:6:55"},"scope":13525,"src":"949:71:55","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":13479,"nodeType":"StructuredDocumentation","src":"1026:464:55","text":" @notice Called for each action when queuing a proposal\n @param target Address of the contract with the method to be called\n @param value Native token amount sent with the transaction\n @param signature signature of the function to be called\n @param data Arguments to be passed to the function when called\n @param eta Timestamp after which the transaction can be executed\n @return Hash of the queued transaction"},"functionSelector":"3a66f901","id":13494,"implemented":false,"kind":"function","modifiers":[],"name":"queueTransaction","nameLocation":"1504:16:55","nodeType":"FunctionDefinition","parameters":{"id":13490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13481,"mutability":"mutable","name":"target","nameLocation":"1538:6:55","nodeType":"VariableDeclaration","scope":13494,"src":"1530:14:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13480,"name":"address","nodeType":"ElementaryTypeName","src":"1530:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13483,"mutability":"mutable","name":"value","nameLocation":"1562:5:55","nodeType":"VariableDeclaration","scope":13494,"src":"1554:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13482,"name":"uint256","nodeType":"ElementaryTypeName","src":"1554:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13485,"mutability":"mutable","name":"signature","nameLocation":"1593:9:55","nodeType":"VariableDeclaration","scope":13494,"src":"1577:25:55","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13484,"name":"string","nodeType":"ElementaryTypeName","src":"1577:6:55","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13487,"mutability":"mutable","name":"data","nameLocation":"1627:4:55","nodeType":"VariableDeclaration","scope":13494,"src":"1612:19:55","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13486,"name":"bytes","nodeType":"ElementaryTypeName","src":"1612:5:55","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":13489,"mutability":"mutable","name":"eta","nameLocation":"1649:3:55","nodeType":"VariableDeclaration","scope":13494,"src":"1641:11:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13488,"name":"uint256","nodeType":"ElementaryTypeName","src":"1641:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1520:138:55"},"returnParameters":{"id":13493,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13492,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13494,"src":"1677:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13491,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1677:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1676:9:55"},"scope":13525,"src":"1495:191:55","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":13495,"nodeType":"StructuredDocumentation","src":"1692:409:55","text":" @notice Called to cancel a queued transaction\n @param target Address of the contract with the method to be called\n @param value Native token amount sent with the transaction\n @param signature signature of the function to be called\n @param data Arguments to be passed to the function when called\n @param eta Timestamp after which the transaction can be executed"},"functionSelector":"591fcdfe","id":13508,"implemented":false,"kind":"function","modifiers":[],"name":"cancelTransaction","nameLocation":"2115:17:55","nodeType":"FunctionDefinition","parameters":{"id":13506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13497,"mutability":"mutable","name":"target","nameLocation":"2150:6:55","nodeType":"VariableDeclaration","scope":13508,"src":"2142:14:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13496,"name":"address","nodeType":"ElementaryTypeName","src":"2142:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13499,"mutability":"mutable","name":"value","nameLocation":"2174:5:55","nodeType":"VariableDeclaration","scope":13508,"src":"2166:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13498,"name":"uint256","nodeType":"ElementaryTypeName","src":"2166:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13501,"mutability":"mutable","name":"signature","nameLocation":"2205:9:55","nodeType":"VariableDeclaration","scope":13508,"src":"2189:25:55","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13500,"name":"string","nodeType":"ElementaryTypeName","src":"2189:6:55","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13503,"mutability":"mutable","name":"data","nameLocation":"2239:4:55","nodeType":"VariableDeclaration","scope":13508,"src":"2224:19:55","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13502,"name":"bytes","nodeType":"ElementaryTypeName","src":"2224:5:55","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":13505,"mutability":"mutable","name":"eta","nameLocation":"2261:3:55","nodeType":"VariableDeclaration","scope":13508,"src":"2253:11:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13504,"name":"uint256","nodeType":"ElementaryTypeName","src":"2253:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2132:138:55"},"returnParameters":{"id":13507,"nodeType":"ParameterList","parameters":[],"src":"2279:0:55"},"scope":13525,"src":"2106:174:55","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":13509,"nodeType":"StructuredDocumentation","src":"2286:449:55","text":" @notice Called to execute a queued transaction\n @param target Address of the contract with the method to be called\n @param value Native token amount sent with the transaction\n @param signature signature of the function to be called\n @param data Arguments to be passed to the function when called\n @param eta Timestamp after which the transaction can be executed\n @return Result of function call"},"functionSelector":"0825f38f","id":13524,"implemented":false,"kind":"function","modifiers":[],"name":"executeTransaction","nameLocation":"2749:18:55","nodeType":"FunctionDefinition","parameters":{"id":13520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13511,"mutability":"mutable","name":"target","nameLocation":"2785:6:55","nodeType":"VariableDeclaration","scope":13524,"src":"2777:14:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13510,"name":"address","nodeType":"ElementaryTypeName","src":"2777:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13513,"mutability":"mutable","name":"value","nameLocation":"2809:5:55","nodeType":"VariableDeclaration","scope":13524,"src":"2801:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13512,"name":"uint256","nodeType":"ElementaryTypeName","src":"2801:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13515,"mutability":"mutable","name":"signature","nameLocation":"2840:9:55","nodeType":"VariableDeclaration","scope":13524,"src":"2824:25:55","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13514,"name":"string","nodeType":"ElementaryTypeName","src":"2824:6:55","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13517,"mutability":"mutable","name":"data","nameLocation":"2874:4:55","nodeType":"VariableDeclaration","scope":13524,"src":"2859:19:55","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13516,"name":"bytes","nodeType":"ElementaryTypeName","src":"2859:5:55","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":13519,"mutability":"mutable","name":"eta","nameLocation":"2896:3:55","nodeType":"VariableDeclaration","scope":13524,"src":"2888:11:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13518,"name":"uint256","nodeType":"ElementaryTypeName","src":"2888:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2767:138:55"},"returnParameters":{"id":13523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13522,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13524,"src":"2932:12:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13521,"name":"bytes","nodeType":"ElementaryTypeName","src":"2932:5:55","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2931:14:55"},"scope":13525,"src":"2740:206:55","stateMutability":"payable","virtual":false,"visibility":"external"}],"scope":13526,"src":"245:2703:55","usedErrors":[],"usedEvents":[]}],"src":"41:2908:55"},"id":55},"contracts/Governance/AccessControlManager.sol":{"ast":{"absolutePath":"contracts/Governance/AccessControlManager.sol","exportedSymbols":{"AccessControl":[6890],"AccessControlManager":[13704],"Context":[8099],"ERC165":[8352],"IAccessControl":[6963],"IAccessControlManagerV8":[13903],"IERC165":[8364],"Math":[9230],"SignedMath":[10876],"Strings":[8328]},"id":13705,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":13527,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:56"},{"absolutePath":"@openzeppelin/contracts/access/AccessControl.sol","file":"@openzeppelin/contracts/access/AccessControl.sol","id":13528,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13705,"sourceUnit":6891,"src":"65:58:56","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/Governance/IAccessControlManagerV8.sol","file":"./IAccessControlManagerV8.sol","id":13529,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13705,"sourceUnit":13904,"src":"124:39:56","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":13531,"name":"AccessControl","nameLocations":["2848:13:56"],"nodeType":"IdentifierPath","referencedDeclaration":6890,"src":"2848:13:56"},"id":13532,"nodeType":"InheritanceSpecifier","src":"2848:13:56"},{"baseName":{"id":13533,"name":"IAccessControlManagerV8","nameLocations":["2863:23:56"],"nodeType":"IdentifierPath","referencedDeclaration":13903,"src":"2863:23:56"},"id":13534,"nodeType":"InheritanceSpecifier","src":"2863:23:56"}],"canonicalName":"AccessControlManager","contractDependencies":[],"contractKind":"contract","documentation":{"id":13530,"nodeType":"StructuredDocumentation","src":"165:2649:56","text":" @title AccessControlManager\n @author Venus\n @dev This contract is a wrapper of OpenZeppelin AccessControl extending it in a way to standartize access control within Venus Smart Contract Ecosystem.\n @notice Access control plays a crucial role in the Venus governance model. It is used to restrict functions so that they can only be called from one\n account or list of accounts (EOA or Contract Accounts).\n The implementation of `AccessControlManager`(https://github.com/VenusProtocol/governance-contracts/blob/main/contracts/Governance/AccessControlManager.sol)\n inherits the [Open Zeppelin AccessControl](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/AccessControl.sol)\n contract as a base for role management logic. There are two role types: admin and granular permissions.\n \n ## Granular Roles\n \n Granular roles are built by hashing the contract address and its function signature. For example, given contract `Foo` with function `Foo.bar()` which\n is guarded by ACM, calling `giveRolePermission` for account B do the following:\n \n 1. Compute `keccak256(contractFooAddress,functionSignatureBar)`\n 1. Add the computed role to the roles of account B\n 1. Account B now can call `ContractFoo.bar()`\n \n ## Admin Roles\n \n Admin roles allow for an address to call a function signature on any contract guarded by the `AccessControlManager`. This is particularly useful for\n contracts created by factories.\n \n For Admin roles a null address is hashed in place of the contract address (`keccak256(0x0000000000000000000000000000000000000000,functionSignatureBar)`.\n \n In the previous example, giving account B the admin role, account B will have permissions to call the `bar()` function on any contract that is guarded by\n ACM, not only contract A.\n \n ## Protocol Integration\n \n All restricted functions in Venus Protocol use a hook to ACM in order to check if the caller has the right permission to call the guarded function.\n `AccessControlledV5` and `AccessControlledV8` abstract contract makes this integration easier. They call ACM's external method\n `isAllowedToCall(address caller, string functionSig)`. Here is an example of how `setCollateralFactor` function in `Comptroller` is integrated with ACM:\n```\ncontract Comptroller is [...] AccessControlledV8 {\n[...]\nfunction setCollateralFactor(VToken vToken, uint256 newCollateralFactorMantissa, uint256 newLiquidationThresholdMantissa) external {\n_checkAccessAllowed(\"setCollateralFactor(address,uint256,uint256)\");\n[...]\n}\n}\n```"},"fullyImplemented":true,"id":13704,"linearizedBaseContracts":[13704,13903,6890,8352,8364,6963,8099],"name":"AccessControlManager","nameLocation":"2824:20:56","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":13535,"nodeType":"StructuredDocumentation","src":"2893:260:56","text":"@notice Emitted when an account is given a permission to a certain contract function\n @dev If contract address is 0x000..0 this means that the account is a default admin of this function and\n can call any contract function with this signature"},"eventSelector":"69c5ce2d658fea352a2464f87ffbe1f09746c918a91da0994044c3767d641b3f","id":13543,"name":"PermissionGranted","nameLocation":"3164:17:56","nodeType":"EventDefinition","parameters":{"id":13542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13537,"indexed":false,"mutability":"mutable","name":"account","nameLocation":"3190:7:56","nodeType":"VariableDeclaration","scope":13543,"src":"3182:15:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13536,"name":"address","nodeType":"ElementaryTypeName","src":"3182:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13539,"indexed":false,"mutability":"mutable","name":"contractAddress","nameLocation":"3207:15:56","nodeType":"VariableDeclaration","scope":13543,"src":"3199:23:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13538,"name":"address","nodeType":"ElementaryTypeName","src":"3199:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13541,"indexed":false,"mutability":"mutable","name":"functionSig","nameLocation":"3231:11:56","nodeType":"VariableDeclaration","scope":13543,"src":"3224:18:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13540,"name":"string","nodeType":"ElementaryTypeName","src":"3224:6:56","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3181:62:56"},"src":"3158:86:56"},{"anonymous":false,"documentation":{"id":13544,"nodeType":"StructuredDocumentation","src":"3250:90:56","text":"@notice Emitted when an account is revoked a permission to a certain contract function"},"eventSelector":"55426a61e90ac7d7d1fc886b67b420ade8c8b535e68d655394bc271e3a12b8e2","id":13552,"name":"PermissionRevoked","nameLocation":"3351:17:56","nodeType":"EventDefinition","parameters":{"id":13551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13546,"indexed":false,"mutability":"mutable","name":"account","nameLocation":"3377:7:56","nodeType":"VariableDeclaration","scope":13552,"src":"3369:15:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13545,"name":"address","nodeType":"ElementaryTypeName","src":"3369:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13548,"indexed":false,"mutability":"mutable","name":"contractAddress","nameLocation":"3394:15:56","nodeType":"VariableDeclaration","scope":13552,"src":"3386:23:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13547,"name":"address","nodeType":"ElementaryTypeName","src":"3386:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13550,"indexed":false,"mutability":"mutable","name":"functionSig","nameLocation":"3418:11:56","nodeType":"VariableDeclaration","scope":13552,"src":"3411:18:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13549,"name":"string","nodeType":"ElementaryTypeName","src":"3411:6:56","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3368:62:56"},"src":"3345:86:56"},{"body":{"id":13561,"nodeType":"Block","src":"3451:179:56","statements":[{"expression":{"arguments":[{"id":13556,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6602,"src":"3592:18:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":13557,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3612:3:56","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3616:6:56","memberName":"sender","nodeType":"MemberAccess","src":"3612:10:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":13555,"name":"_setupRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6798,"src":"3581:10:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":13559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3581:42:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13560,"nodeType":"ExpressionStatement","src":"3581:42:56"}]},"id":13562,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":13553,"nodeType":"ParameterList","parameters":[],"src":"3448:2:56"},"returnParameters":{"id":13554,"nodeType":"ParameterList","parameters":[],"src":"3451:0:56"},"scope":13704,"src":"3437:193:56","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[13873],"body":{"id":13593,"nodeType":"Block","src":"4392:210:56","statements":[{"assignments":[13573],"declarations":[{"constant":false,"id":13573,"mutability":"mutable","name":"role","nameLocation":"4410:4:56","nodeType":"VariableDeclaration","scope":13593,"src":"4402:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13572,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4402:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":13581,"initialValue":{"arguments":[{"arguments":[{"id":13577,"name":"contractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13565,"src":"4444:15:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13578,"name":"functionSig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13567,"src":"4461:11:56","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"expression":{"id":13575,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4427:3:56","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13576,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4431:12:56","memberName":"encodePacked","nodeType":"MemberAccess","src":"4427:16:56","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":13579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4427:46:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13574,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4417:9:56","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":13580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4417:57:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4402:72:56"},{"expression":{"arguments":[{"id":13583,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13573,"src":"4494:4:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13584,"name":"accountToPermit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13569,"src":"4500:15:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":13582,"name":"grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6741,"src":"4484:9:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":13585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4484:32:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13586,"nodeType":"ExpressionStatement","src":"4484:32:56"},{"eventCall":{"arguments":[{"id":13588,"name":"accountToPermit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13569,"src":"4549:15:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13589,"name":"contractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13565,"src":"4566:15:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13590,"name":"functionSig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13567,"src":"4583:11:56","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":13587,"name":"PermissionGranted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13543,"src":"4531:17:56","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,address,string memory)"}},"id":13591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4531:64:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13592,"nodeType":"EmitStatement","src":"4526:69:56"}]},"documentation":{"id":13563,"nodeType":"StructuredDocumentation","src":"3636:637:56","text":" @notice Gives a function call permission to one single account\n @dev this function can be called only from Role Admin or DEFAULT_ADMIN_ROLE\n @param contractAddress address of contract for which call permissions will be granted\n @dev if contractAddress is zero address, the account can access the specified function\n      on **any** contract managed by this ACL\n @param functionSig signature e.g. \"functionName(uint256,bool)\"\n @param accountToPermit account that will be given access to the contract function\n @custom:event Emits a {RoleGranted} and {PermissionGranted} events."},"functionSelector":"584f6b60","id":13594,"implemented":true,"kind":"function","modifiers":[],"name":"giveCallPermission","nameLocation":"4287:18:56","nodeType":"FunctionDefinition","parameters":{"id":13570,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13565,"mutability":"mutable","name":"contractAddress","nameLocation":"4314:15:56","nodeType":"VariableDeclaration","scope":13594,"src":"4306:23:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13564,"name":"address","nodeType":"ElementaryTypeName","src":"4306:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13567,"mutability":"mutable","name":"functionSig","nameLocation":"4347:11:56","nodeType":"VariableDeclaration","scope":13594,"src":"4331:27:56","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13566,"name":"string","nodeType":"ElementaryTypeName","src":"4331:6:56","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13569,"mutability":"mutable","name":"accountToPermit","nameLocation":"4368:15:56","nodeType":"VariableDeclaration","scope":13594,"src":"4360:23:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13568,"name":"address","nodeType":"ElementaryTypeName","src":"4360:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4305:79:56"},"returnParameters":{"id":13571,"nodeType":"ParameterList","parameters":[],"src":"4392:0:56"},"scope":13704,"src":"4278:324:56","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[13882],"body":{"id":13625,"nodeType":"Block","src":"5207:211:56","statements":[{"assignments":[13605],"declarations":[{"constant":false,"id":13605,"mutability":"mutable","name":"role","nameLocation":"5225:4:56","nodeType":"VariableDeclaration","scope":13625,"src":"5217:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13604,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5217:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":13613,"initialValue":{"arguments":[{"arguments":[{"id":13609,"name":"contractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13597,"src":"5259:15:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13610,"name":"functionSig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13599,"src":"5276:11:56","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"expression":{"id":13607,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5242:3:56","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13608,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5246:12:56","memberName":"encodePacked","nodeType":"MemberAccess","src":"5242:16:56","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":13611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5242:46:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13606,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5232:9:56","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":13612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5232:57:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5217:72:56"},{"expression":{"arguments":[{"id":13615,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13605,"src":"5310:4:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13616,"name":"accountToRevoke","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13601,"src":"5316:15:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":13614,"name":"revokeRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6761,"src":"5299:10:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":13617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5299:33:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13618,"nodeType":"ExpressionStatement","src":"5299:33:56"},{"eventCall":{"arguments":[{"id":13620,"name":"accountToRevoke","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13601,"src":"5365:15:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13621,"name":"contractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13597,"src":"5382:15:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13622,"name":"functionSig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13599,"src":"5399:11:56","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":13619,"name":"PermissionRevoked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13552,"src":"5347:17:56","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,address,string memory)"}},"id":13623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5347:64:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13624,"nodeType":"EmitStatement","src":"5342:69:56"}]},"documentation":{"id":13595,"nodeType":"StructuredDocumentation","src":"4608:448:56","text":" @notice Revokes an account's permission to a particular function call\n @dev this function can be called only from Role Admin or DEFAULT_ADMIN_ROLE\n \t\tMay emit a {RoleRevoked} event.\n @param contractAddress address of contract for which call permissions will be revoked\n @param functionSig signature e.g. \"functionName(uint256,bool)\"\n @custom:event Emits {RoleRevoked} and {PermissionRevoked} events."},"functionSelector":"545f7a32","id":13626,"implemented":true,"kind":"function","modifiers":[],"name":"revokeCallPermission","nameLocation":"5070:20:56","nodeType":"FunctionDefinition","parameters":{"id":13602,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13597,"mutability":"mutable","name":"contractAddress","nameLocation":"5108:15:56","nodeType":"VariableDeclaration","scope":13626,"src":"5100:23:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13596,"name":"address","nodeType":"ElementaryTypeName","src":"5100:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13599,"mutability":"mutable","name":"functionSig","nameLocation":"5149:11:56","nodeType":"VariableDeclaration","scope":13626,"src":"5133:27:56","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13598,"name":"string","nodeType":"ElementaryTypeName","src":"5133:6:56","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13601,"mutability":"mutable","name":"accountToRevoke","nameLocation":"5178:15:56","nodeType":"VariableDeclaration","scope":13626,"src":"5170:23:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13600,"name":"address","nodeType":"ElementaryTypeName","src":"5170:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5090:109:56"},"returnParameters":{"id":13603,"nodeType":"ParameterList","parameters":[],"src":"5207:0:56"},"scope":13704,"src":"5061:357:56","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[13891],"body":{"id":13674,"nodeType":"Block","src":"5996:291:56","statements":[{"assignments":[13637],"declarations":[{"constant":false,"id":13637,"mutability":"mutable","name":"role","nameLocation":"6014:4:56","nodeType":"VariableDeclaration","scope":13674,"src":"6006:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13636,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6006:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":13646,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":13641,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6048:3:56","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6052:6:56","memberName":"sender","nodeType":"MemberAccess","src":"6048:10:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13643,"name":"functionSig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13631,"src":"6060:11:56","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"expression":{"id":13639,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6031:3:56","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13640,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6035:12:56","memberName":"encodePacked","nodeType":"MemberAccess","src":"6031:16:56","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":13644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6031:41:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13638,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6021:9:56","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":13645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6021:52:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6006:67:56"},{"condition":{"arguments":[{"id":13648,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13637,"src":"6096:4:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13649,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13629,"src":"6102:7:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":13647,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6654,"src":"6088:7:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":13650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6088:22:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13672,"nodeType":"Block","src":"6154:127:56","statements":[{"expression":{"id":13665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13654,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13637,"src":"6168:4:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30","id":13660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6210:1:56","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":13659,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6202:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13658,"name":"address","nodeType":"ElementaryTypeName","src":"6202:7:56","typeDescriptions":{}}},"id":13661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6202:10:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13662,"name":"functionSig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13631,"src":"6214:11:56","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"expression":{"id":13656,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6185:3:56","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13657,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6189:12:56","memberName":"encodePacked","nodeType":"MemberAccess","src":"6185:16:56","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":13663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6185:41:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13655,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6175:9:56","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":13664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6175:52:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6168:59:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":13666,"nodeType":"ExpressionStatement","src":"6168:59:56"},{"expression":{"arguments":[{"id":13668,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13637,"src":"6256:4:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13669,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13629,"src":"6262:7:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":13667,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6654,"src":"6248:7:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":13670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6248:22:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":13635,"id":13671,"nodeType":"Return","src":"6241:29:56"}]},"id":13673,"nodeType":"IfStatement","src":"6084:197:56","trueBody":{"id":13653,"nodeType":"Block","src":"6112:36:56","statements":[{"expression":{"hexValue":"74727565","id":13651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6133:4:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":13635,"id":13652,"nodeType":"Return","src":"6126:11:56"}]}}]},"documentation":{"id":13627,"nodeType":"StructuredDocumentation","src":"5424:469:56","text":" @notice Verifies if the given account can call a contract's guarded function\n @dev Since restricted contracts using this function as a permission hook, we can get contracts address with msg.sender\n @param account for which call permissions will be checked\n @param functionSig restricted function signature e.g. \"functionName(uint256,bool)\"\n @return false if the user account cannot call the particular contract function"},"functionSelector":"18c5e8ab","id":13675,"implemented":true,"kind":"function","modifiers":[],"name":"isAllowedToCall","nameLocation":"5907:15:56","nodeType":"FunctionDefinition","parameters":{"id":13632,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13629,"mutability":"mutable","name":"account","nameLocation":"5931:7:56","nodeType":"VariableDeclaration","scope":13675,"src":"5923:15:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13628,"name":"address","nodeType":"ElementaryTypeName","src":"5923:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13631,"mutability":"mutable","name":"functionSig","nameLocation":"5956:11:56","nodeType":"VariableDeclaration","scope":13675,"src":"5940:27:56","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13630,"name":"string","nodeType":"ElementaryTypeName","src":"5940:6:56","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5922:46:56"},"returnParameters":{"id":13635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13634,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13675,"src":"5990:4:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13633,"name":"bool","nodeType":"ElementaryTypeName","src":"5990:4:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5989:6:56"},"scope":13704,"src":"5898:389:56","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[13902],"body":{"id":13702,"nodeType":"Block","src":"6995:128:56","statements":[{"assignments":[13688],"declarations":[{"constant":false,"id":13688,"mutability":"mutable","name":"role","nameLocation":"7013:4:56","nodeType":"VariableDeclaration","scope":13702,"src":"7005:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13687,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7005:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":13696,"initialValue":{"arguments":[{"arguments":[{"id":13692,"name":"contractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13680,"src":"7047:15:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13693,"name":"functionSig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13682,"src":"7064:11:56","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"expression":{"id":13690,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7030:3:56","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7034:12:56","memberName":"encodePacked","nodeType":"MemberAccess","src":"7030:16:56","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":13694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7030:46:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13689,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7020:9:56","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":13695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7020:57:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7005:72:56"},{"expression":{"arguments":[{"id":13698,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13688,"src":"7102:4:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13699,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13678,"src":"7108:7:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":13697,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6654,"src":"7094:7:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":13700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7094:22:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":13686,"id":13701,"nodeType":"Return","src":"7087:29:56"}]},"documentation":{"id":13676,"nodeType":"StructuredDocumentation","src":"6293:546:56","text":" @notice Verifies if the given account can call a contract's guarded function\n @dev This function is used as a view function to check permissions rather than contract hook for access restriction check.\n @param account for which call permissions will be checked against\n @param contractAddress address of the restricted contract\n @param functionSig signature of the restricted function e.g. \"functionName(uint256,bool)\"\n @return false if the user account cannot call the particular contract function"},"functionSelector":"82bfd0f0","id":13703,"implemented":true,"kind":"function","modifiers":[],"name":"hasPermission","nameLocation":"6853:13:56","nodeType":"FunctionDefinition","parameters":{"id":13683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13678,"mutability":"mutable","name":"account","nameLocation":"6884:7:56","nodeType":"VariableDeclaration","scope":13703,"src":"6876:15:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13677,"name":"address","nodeType":"ElementaryTypeName","src":"6876:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13680,"mutability":"mutable","name":"contractAddress","nameLocation":"6909:15:56","nodeType":"VariableDeclaration","scope":13703,"src":"6901:23:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13679,"name":"address","nodeType":"ElementaryTypeName","src":"6901:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13682,"mutability":"mutable","name":"functionSig","nameLocation":"6950:11:56","nodeType":"VariableDeclaration","scope":13703,"src":"6934:27:56","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13681,"name":"string","nodeType":"ElementaryTypeName","src":"6934:6:56","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6866:101:56"},"returnParameters":{"id":13686,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13685,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13703,"src":"6989:4:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13684,"name":"bool","nodeType":"ElementaryTypeName","src":"6989:4:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6988:6:56"},"scope":13704,"src":"6844:279:56","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":13705,"src":"2815:4310:56","usedErrors":[],"usedEvents":[6902,6911,6920,13543,13552]}],"src":"41:7085:56"},"id":56},"contracts/Governance/AccessControlledV8.sol":{"ast":{"absolutePath":"contracts/Governance/AccessControlledV8.sol","exportedSymbols":{"AccessControlledV8":[13858],"AddressUpgradeable":[6532],"ContextUpgradeable":[6574],"IAccessControl":[6963],"IAccessControlManagerV8":[13903],"Initializable":[6248],"Ownable2StepUpgradeable":[5947],"OwnableUpgradeable":[6079]},"id":13859,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":13706,"literals":["solidity","^","0.8",".25"],"nodeType":"PragmaDirective","src":"41:24:57"},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","id":13707,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13859,"sourceUnit":6249,"src":"67:75:57","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol","id":13708,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13859,"sourceUnit":5948,"src":"143:80:57","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/Governance/IAccessControlManagerV8.sol","file":"./IAccessControlManagerV8.sol","id":13709,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13859,"sourceUnit":13904,"src":"225:39:57","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":13711,"name":"Initializable","nameLocations":["627:13:57"],"nodeType":"IdentifierPath","referencedDeclaration":6248,"src":"627:13:57"},"id":13712,"nodeType":"InheritanceSpecifier","src":"627:13:57"},{"baseName":{"id":13713,"name":"Ownable2StepUpgradeable","nameLocations":["642:23:57"],"nodeType":"IdentifierPath","referencedDeclaration":5947,"src":"642:23:57"},"id":13714,"nodeType":"InheritanceSpecifier","src":"642:23:57"}],"canonicalName":"AccessControlledV8","contractDependencies":[],"contractKind":"contract","documentation":{"id":13710,"nodeType":"StructuredDocumentation","src":"266:320:57","text":" @title AccessControlledV8\n @author Venus\n @notice This contract is helper between access control manager and actual contract. This contract further inherited by other contract (using solidity 0.8.13)\n to integrate access controlled mechanism. It provides initialise methods and verifying access methods."},"fullyImplemented":true,"id":13858,"linearizedBaseContracts":[13858,5947,6079,6574,6248],"name":"AccessControlledV8","nameLocation":"605:18:57","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":13715,"nodeType":"StructuredDocumentation","src":"672:43:57","text":"@notice Access control manager contract"},"id":13718,"mutability":"mutable","name":"_accessControlManager","nameLocation":"753:21:57","nodeType":"VariableDeclaration","scope":13858,"src":"720:54:57","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$13903","typeString":"contract IAccessControlManagerV8"},"typeName":{"id":13717,"nodeType":"UserDefinedTypeName","pathNode":{"id":13716,"name":"IAccessControlManagerV8","nameLocations":["720:23:57"],"nodeType":"IdentifierPath","referencedDeclaration":13903,"src":"720:23:57"},"referencedDeclaration":13903,"src":"720:23:57","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$13903","typeString":"contract IAccessControlManagerV8"}},"visibility":"internal"},{"constant":false,"documentation":{"id":13719,"nodeType":"StructuredDocumentation","src":"781:254:57","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"id":13723,"mutability":"mutable","name":"__gap","nameLocation":"1060:5:57","nodeType":"VariableDeclaration","scope":13858,"src":"1040:25:57","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage","typeString":"uint256[49]"},"typeName":{"baseType":{"id":13720,"name":"uint256","nodeType":"ElementaryTypeName","src":"1040:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13722,"length":{"hexValue":"3439","id":13721,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1048:2:57","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"49"},"nodeType":"ArrayTypeName","src":"1040:11:57","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage_ptr","typeString":"uint256[49]"}},"visibility":"private"},{"anonymous":false,"documentation":{"id":13724,"nodeType":"StructuredDocumentation","src":"1072:75:57","text":"@notice Emitted when access control manager contract address is changed"},"eventSelector":"66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa0","id":13730,"name":"NewAccessControlManager","nameLocation":"1158:23:57","nodeType":"EventDefinition","parameters":{"id":13729,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13726,"indexed":false,"mutability":"mutable","name":"oldAccessControlManager","nameLocation":"1190:23:57","nodeType":"VariableDeclaration","scope":13730,"src":"1182:31:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13725,"name":"address","nodeType":"ElementaryTypeName","src":"1182:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13728,"indexed":false,"mutability":"mutable","name":"newAccessControlManager","nameLocation":"1223:23:57","nodeType":"VariableDeclaration","scope":13730,"src":"1215:31:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13727,"name":"address","nodeType":"ElementaryTypeName","src":"1215:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1181:66:57"},"src":"1152:96:57"},{"documentation":{"id":13731,"nodeType":"StructuredDocumentation","src":"1254:72:57","text":"@notice Thrown when the action is prohibited by AccessControlManager"},"errorSelector":"4a3fa293","id":13739,"name":"Unauthorized","nameLocation":"1337:12:57","nodeType":"ErrorDefinition","parameters":{"id":13738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13733,"mutability":"mutable","name":"sender","nameLocation":"1358:6:57","nodeType":"VariableDeclaration","scope":13739,"src":"1350:14:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13732,"name":"address","nodeType":"ElementaryTypeName","src":"1350:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13735,"mutability":"mutable","name":"calledContract","nameLocation":"1374:14:57","nodeType":"VariableDeclaration","scope":13739,"src":"1366:22:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13734,"name":"address","nodeType":"ElementaryTypeName","src":"1366:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13737,"mutability":"mutable","name":"methodSignature","nameLocation":"1397:15:57","nodeType":"VariableDeclaration","scope":13739,"src":"1390:22:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13736,"name":"string","nodeType":"ElementaryTypeName","src":"1390:6:57","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1349:64:57"},"src":"1331:83:57"},{"body":{"id":13753,"nodeType":"Block","src":"1510:104:57","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":13746,"name":"__Ownable2Step_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5859,"src":"1520:19:57","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":13747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1520:21:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13748,"nodeType":"ExpressionStatement","src":"1520:21:57"},{"expression":{"arguments":[{"id":13750,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13741,"src":"1585:21:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13749,"name":"__AccessControlled_init_unchained","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13766,"src":"1551:33:57","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":13751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1551:56:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13752,"nodeType":"ExpressionStatement","src":"1551:56:57"}]},"id":13754,"implemented":true,"kind":"function","modifiers":[{"id":13744,"kind":"modifierInvocation","modifierName":{"id":13743,"name":"onlyInitializing","nameLocations":["1493:16:57"],"nodeType":"IdentifierPath","referencedDeclaration":6193,"src":"1493:16:57"},"nodeType":"ModifierInvocation","src":"1493:16:57"}],"name":"__AccessControlled_init","nameLocation":"1429:23:57","nodeType":"FunctionDefinition","parameters":{"id":13742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13741,"mutability":"mutable","name":"accessControlManager_","nameLocation":"1461:21:57","nodeType":"VariableDeclaration","scope":13754,"src":"1453:29:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13740,"name":"address","nodeType":"ElementaryTypeName","src":"1453:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1452:31:57"},"returnParameters":{"id":13745,"nodeType":"ParameterList","parameters":[],"src":"1510:0:57"},"scope":13858,"src":"1420:194:57","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":13765,"nodeType":"Block","src":"1720:64:57","statements":[{"expression":{"arguments":[{"id":13762,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13756,"src":"1755:21:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13761,"name":"_setAccessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13827,"src":"1730:24:57","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":13763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1730:47:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13764,"nodeType":"ExpressionStatement","src":"1730:47:57"}]},"id":13766,"implemented":true,"kind":"function","modifiers":[{"id":13759,"kind":"modifierInvocation","modifierName":{"id":13758,"name":"onlyInitializing","nameLocations":["1703:16:57"],"nodeType":"IdentifierPath","referencedDeclaration":6193,"src":"1703:16:57"},"nodeType":"ModifierInvocation","src":"1703:16:57"}],"name":"__AccessControlled_init_unchained","nameLocation":"1629:33:57","nodeType":"FunctionDefinition","parameters":{"id":13757,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13756,"mutability":"mutable","name":"accessControlManager_","nameLocation":"1671:21:57","nodeType":"VariableDeclaration","scope":13766,"src":"1663:29:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13755,"name":"address","nodeType":"ElementaryTypeName","src":"1663:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1662:31:57"},"returnParameters":{"id":13760,"nodeType":"ParameterList","parameters":[],"src":"1720:0:57"},"scope":13858,"src":"1620:164:57","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":13778,"nodeType":"Block","src":"2186:64:57","statements":[{"expression":{"arguments":[{"id":13775,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13769,"src":"2221:21:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13774,"name":"_setAccessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13827,"src":"2196:24:57","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":13776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2196:47:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13777,"nodeType":"ExpressionStatement","src":"2196:47:57"}]},"documentation":{"id":13767,"nodeType":"StructuredDocumentation","src":"1790:308:57","text":" @notice Sets the address of AccessControlManager\n @dev Admin function to set address of AccessControlManager\n @param accessControlManager_ The new address of the AccessControlManager\n @custom:event Emits NewAccessControlManager event\n @custom:access Only Governance"},"functionSelector":"0e32cb86","id":13779,"implemented":true,"kind":"function","modifiers":[{"id":13772,"kind":"modifierInvocation","modifierName":{"id":13771,"name":"onlyOwner","nameLocations":["2176:9:57"],"nodeType":"IdentifierPath","referencedDeclaration":5993,"src":"2176:9:57"},"nodeType":"ModifierInvocation","src":"2176:9:57"}],"name":"setAccessControlManager","nameLocation":"2112:23:57","nodeType":"FunctionDefinition","parameters":{"id":13770,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13769,"mutability":"mutable","name":"accessControlManager_","nameLocation":"2144:21:57","nodeType":"VariableDeclaration","scope":13779,"src":"2136:29:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13768,"name":"address","nodeType":"ElementaryTypeName","src":"2136:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2135:31:57"},"returnParameters":{"id":13773,"nodeType":"ParameterList","parameters":[],"src":"2186:0:57"},"scope":13858,"src":"2103:147:57","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":13788,"nodeType":"Block","src":"2426:45:57","statements":[{"expression":{"id":13786,"name":"_accessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13718,"src":"2443:21:57","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$13903","typeString":"contract IAccessControlManagerV8"}},"functionReturnParameters":13785,"id":13787,"nodeType":"Return","src":"2436:28:57"}]},"documentation":{"id":13780,"nodeType":"StructuredDocumentation","src":"2256:85:57","text":" @notice Returns the address of the access control manager contract"},"functionSelector":"b4a0bdf3","id":13789,"implemented":true,"kind":"function","modifiers":[],"name":"accessControlManager","nameLocation":"2355:20:57","nodeType":"FunctionDefinition","parameters":{"id":13781,"nodeType":"ParameterList","parameters":[],"src":"2375:2:57"},"returnParameters":{"id":13785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13784,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13789,"src":"2401:23:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$13903","typeString":"contract IAccessControlManagerV8"},"typeName":{"id":13783,"nodeType":"UserDefinedTypeName","pathNode":{"id":13782,"name":"IAccessControlManagerV8","nameLocations":["2401:23:57"],"nodeType":"IdentifierPath","referencedDeclaration":13903,"src":"2401:23:57"},"referencedDeclaration":13903,"src":"2401:23:57","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$13903","typeString":"contract IAccessControlManagerV8"}},"visibility":"internal"}],"src":"2400:25:57"},"scope":13858,"src":"2346:125:57","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":13826,"nodeType":"Block","src":"2716:351:57","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":13798,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13792,"src":"2742:21:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13797,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2734:7:57","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13796,"name":"address","nodeType":"ElementaryTypeName","src":"2734:7:57","typeDescriptions":{}}},"id":13799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2734:30:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":13802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2776:1:57","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":13801,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2768:7:57","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13800,"name":"address","nodeType":"ElementaryTypeName","src":"2768:7:57","typeDescriptions":{}}},"id":13803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2768:10:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2734:44:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c696420616365737320636f6e74726f6c206d616e616765722061646472657373","id":13805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2780:39:57","typeDescriptions":{"typeIdentifier":"t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb","typeString":"literal_string \"invalid acess control manager address\""},"value":"invalid acess control manager address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb","typeString":"literal_string \"invalid acess control manager address\""}],"id":13795,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2726:7:57","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2726:94:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13807,"nodeType":"ExpressionStatement","src":"2726:94:57"},{"assignments":[13809],"declarations":[{"constant":false,"id":13809,"mutability":"mutable","name":"oldAccessControlManager","nameLocation":"2838:23:57","nodeType":"VariableDeclaration","scope":13826,"src":"2830:31:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13808,"name":"address","nodeType":"ElementaryTypeName","src":"2830:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":13814,"initialValue":{"arguments":[{"id":13812,"name":"_accessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13718,"src":"2872:21:57","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$13903","typeString":"contract IAccessControlManagerV8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$13903","typeString":"contract IAccessControlManagerV8"}],"id":13811,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2864:7:57","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13810,"name":"address","nodeType":"ElementaryTypeName","src":"2864:7:57","typeDescriptions":{}}},"id":13813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2864:30:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2830:64:57"},{"expression":{"id":13819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13815,"name":"_accessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13718,"src":"2904:21:57","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$13903","typeString":"contract IAccessControlManagerV8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":13817,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13792,"src":"2952:21:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13816,"name":"IAccessControlManagerV8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13903,"src":"2928:23:57","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessControlManagerV8_$13903_$","typeString":"type(contract IAccessControlManagerV8)"}},"id":13818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2928:46:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$13903","typeString":"contract IAccessControlManagerV8"}},"src":"2904:70:57","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$13903","typeString":"contract IAccessControlManagerV8"}},"id":13820,"nodeType":"ExpressionStatement","src":"2904:70:57"},{"eventCall":{"arguments":[{"id":13822,"name":"oldAccessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13809,"src":"3013:23:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13823,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13792,"src":"3038:21:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":13821,"name":"NewAccessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13730,"src":"2989:23:57","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":13824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2989:71:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13825,"nodeType":"EmitStatement","src":"2984:76:57"}]},"documentation":{"id":13790,"nodeType":"StructuredDocumentation","src":"2477:160:57","text":" @dev Internal function to set address of AccessControlManager\n @param accessControlManager_ The new address of the AccessControlManager"},"id":13827,"implemented":true,"kind":"function","modifiers":[],"name":"_setAccessControlManager","nameLocation":"2651:24:57","nodeType":"FunctionDefinition","parameters":{"id":13793,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13792,"mutability":"mutable","name":"accessControlManager_","nameLocation":"2684:21:57","nodeType":"VariableDeclaration","scope":13827,"src":"2676:29:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13791,"name":"address","nodeType":"ElementaryTypeName","src":"2676:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2675:31:57"},"returnParameters":{"id":13794,"nodeType":"ParameterList","parameters":[],"src":"2716:0:57"},"scope":13858,"src":"2642:425:57","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":13856,"nodeType":"Block","src":"3272:214:57","statements":[{"assignments":[13834],"declarations":[{"constant":false,"id":13834,"mutability":"mutable","name":"isAllowedToCall","nameLocation":"3287:15:57","nodeType":"VariableDeclaration","scope":13856,"src":"3282:20:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13833,"name":"bool","nodeType":"ElementaryTypeName","src":"3282:4:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":13841,"initialValue":{"arguments":[{"expression":{"id":13837,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3343:3:57","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3347:6:57","memberName":"sender","nodeType":"MemberAccess","src":"3343:10:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13839,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13830,"src":"3355:9:57","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":13835,"name":"_accessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13718,"src":"3305:21:57","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$13903","typeString":"contract IAccessControlManagerV8"}},"id":13836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3327:15:57","memberName":"isAllowedToCall","nodeType":"MemberAccess","referencedDeclaration":13891,"src":"3305:37:57","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_string_memory_ptr_$returns$_t_bool_$","typeString":"function (address,string memory) view external returns (bool)"}},"id":13840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3305:60:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"3282:83:57"},{"condition":{"id":13843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3380:16:57","subExpression":{"id":13842,"name":"isAllowedToCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13834,"src":"3381:15:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13855,"nodeType":"IfStatement","src":"3376:104:57","trueBody":{"id":13854,"nodeType":"Block","src":"3398:82:57","statements":[{"errorCall":{"arguments":[{"expression":{"id":13845,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3432:3:57","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3436:6:57","memberName":"sender","nodeType":"MemberAccess","src":"3432:10:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":13849,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3452:4:57","typeDescriptions":{"typeIdentifier":"t_contract$_AccessControlledV8_$13858","typeString":"contract AccessControlledV8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AccessControlledV8_$13858","typeString":"contract AccessControlledV8"}],"id":13848,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3444:7:57","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13847,"name":"address","nodeType":"ElementaryTypeName","src":"3444:7:57","typeDescriptions":{}}},"id":13850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3444:13:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13851,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13830,"src":"3459:9:57","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":13844,"name":"Unauthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13739,"src":"3419:12:57","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,address,string memory) pure"}},"id":13852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3419:50:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13853,"nodeType":"RevertStatement","src":"3412:57:57"}]}}]},"documentation":{"id":13828,"nodeType":"StructuredDocumentation","src":"3073:126:57","text":" @notice Reverts if the call is not allowed by AccessControlManager\n @param signature Method signature"},"id":13857,"implemented":true,"kind":"function","modifiers":[],"name":"_checkAccessAllowed","nameLocation":"3213:19:57","nodeType":"FunctionDefinition","parameters":{"id":13831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13830,"mutability":"mutable","name":"signature","nameLocation":"3247:9:57","nodeType":"VariableDeclaration","scope":13857,"src":"3233:23:57","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13829,"name":"string","nodeType":"ElementaryTypeName","src":"3233:6:57","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3232:25:57"},"returnParameters":{"id":13832,"nodeType":"ParameterList","parameters":[],"src":"3272:0:57"},"scope":13858,"src":"3204:282:57","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":13859,"src":"587:2901:57","usedErrors":[13739],"usedEvents":[5873,5964,6094,13730]}],"src":"41:3448:57"},"id":57},"contracts/Governance/IAccessControlManagerV8.sol":{"ast":{"absolutePath":"contracts/Governance/IAccessControlManagerV8.sol","exportedSymbols":{"IAccessControl":[6963],"IAccessControlManagerV8":[13903]},"id":13904,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":13860,"literals":["solidity","^","0.8",".25"],"nodeType":"PragmaDirective","src":"41:24:58"},{"absolutePath":"@openzeppelin/contracts/access/IAccessControl.sol","file":"@openzeppelin/contracts/access/IAccessControl.sol","id":13861,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13904,"sourceUnit":6964,"src":"67:59:58","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":13863,"name":"IAccessControl","nameLocations":["299:14:58"],"nodeType":"IdentifierPath","referencedDeclaration":6963,"src":"299:14:58"},"id":13864,"nodeType":"InheritanceSpecifier","src":"299:14:58"}],"canonicalName":"IAccessControlManagerV8","contractDependencies":[],"contractKind":"interface","documentation":{"id":13862,"nodeType":"StructuredDocumentation","src":"128:133:58","text":" @title IAccessControlManagerV8\n @author Venus\n @notice Interface implemented by the `AccessControlManagerV8` contract."},"fullyImplemented":false,"id":13903,"linearizedBaseContracts":[13903,6963],"name":"IAccessControlManagerV8","nameLocation":"272:23:58","nodeType":"ContractDefinition","nodes":[{"functionSelector":"584f6b60","id":13873,"implemented":false,"kind":"function","modifiers":[],"name":"giveCallPermission","nameLocation":"329:18:58","nodeType":"FunctionDefinition","parameters":{"id":13871,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13866,"mutability":"mutable","name":"contractAddress","nameLocation":"356:15:58","nodeType":"VariableDeclaration","scope":13873,"src":"348:23:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13865,"name":"address","nodeType":"ElementaryTypeName","src":"348:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13868,"mutability":"mutable","name":"functionSig","nameLocation":"389:11:58","nodeType":"VariableDeclaration","scope":13873,"src":"373:27:58","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13867,"name":"string","nodeType":"ElementaryTypeName","src":"373:6:58","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13870,"mutability":"mutable","name":"accountToPermit","nameLocation":"410:15:58","nodeType":"VariableDeclaration","scope":13873,"src":"402:23:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13869,"name":"address","nodeType":"ElementaryTypeName","src":"402:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"347:79:58"},"returnParameters":{"id":13872,"nodeType":"ParameterList","parameters":[],"src":"435:0:58"},"scope":13903,"src":"320:116:58","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"545f7a32","id":13882,"implemented":false,"kind":"function","modifiers":[],"name":"revokeCallPermission","nameLocation":"451:20:58","nodeType":"FunctionDefinition","parameters":{"id":13880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13875,"mutability":"mutable","name":"contractAddress","nameLocation":"489:15:58","nodeType":"VariableDeclaration","scope":13882,"src":"481:23:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13874,"name":"address","nodeType":"ElementaryTypeName","src":"481:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13877,"mutability":"mutable","name":"functionSig","nameLocation":"530:11:58","nodeType":"VariableDeclaration","scope":13882,"src":"514:27:58","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13876,"name":"string","nodeType":"ElementaryTypeName","src":"514:6:58","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13879,"mutability":"mutable","name":"accountToRevoke","nameLocation":"559:15:58","nodeType":"VariableDeclaration","scope":13882,"src":"551:23:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13878,"name":"address","nodeType":"ElementaryTypeName","src":"551:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"471:109:58"},"returnParameters":{"id":13881,"nodeType":"ParameterList","parameters":[],"src":"589:0:58"},"scope":13903,"src":"442:148:58","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"18c5e8ab","id":13891,"implemented":false,"kind":"function","modifiers":[],"name":"isAllowedToCall","nameLocation":"605:15:58","nodeType":"FunctionDefinition","parameters":{"id":13887,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13884,"mutability":"mutable","name":"account","nameLocation":"629:7:58","nodeType":"VariableDeclaration","scope":13891,"src":"621:15:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13883,"name":"address","nodeType":"ElementaryTypeName","src":"621:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13886,"mutability":"mutable","name":"functionSig","nameLocation":"654:11:58","nodeType":"VariableDeclaration","scope":13891,"src":"638:27:58","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13885,"name":"string","nodeType":"ElementaryTypeName","src":"638:6:58","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"620:46:58"},"returnParameters":{"id":13890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13889,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13891,"src":"690:4:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13888,"name":"bool","nodeType":"ElementaryTypeName","src":"690:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"689:6:58"},"scope":13903,"src":"596:100:58","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"82bfd0f0","id":13902,"implemented":false,"kind":"function","modifiers":[],"name":"hasPermission","nameLocation":"711:13:58","nodeType":"FunctionDefinition","parameters":{"id":13898,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13893,"mutability":"mutable","name":"account","nameLocation":"742:7:58","nodeType":"VariableDeclaration","scope":13902,"src":"734:15:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13892,"name":"address","nodeType":"ElementaryTypeName","src":"734:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13895,"mutability":"mutable","name":"contractAddress","nameLocation":"767:15:58","nodeType":"VariableDeclaration","scope":13902,"src":"759:23:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13894,"name":"address","nodeType":"ElementaryTypeName","src":"759:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13897,"mutability":"mutable","name":"functionSig","nameLocation":"808:11:58","nodeType":"VariableDeclaration","scope":13902,"src":"792:27:58","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13896,"name":"string","nodeType":"ElementaryTypeName","src":"792:6:58","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"724:101:58"},"returnParameters":{"id":13901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13900,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13902,"src":"849:4:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13899,"name":"bool","nodeType":"ElementaryTypeName","src":"849:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"848:6:58"},"scope":13903,"src":"702:153:58","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":13904,"src":"262:595:58","usedErrors":[],"usedEvents":[6902,6911,6920]}],"src":"41:817:58"},"id":58},"contracts/Governance/TimelockV8.sol":{"ast":{"absolutePath":"contracts/Governance/TimelockV8.sol","exportedSymbols":{"TimelockV8":[14446],"ensureNonzeroAddress":[10945]},"id":14447,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":13905,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:59"},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/validators.sol","file":"@venusprotocol/solidity-utilities/contracts/validators.sol","id":13907,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14447,"sourceUnit":10961,"src":"65:98:59","symbolAliases":[{"foreign":{"id":13906,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10945,"src":"74:20:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"TimelockV8","contractDependencies":[],"contractKind":"contract","documentation":{"id":13908,"nodeType":"StructuredDocumentation","src":"165:263:59","text":" @title TimelockV8\n @author Venus\n @notice The Timelock contract using solidity V8.\n This contract also differs from the original timelock because it has a virtual function to get minimum delays\n and allow test deployments to override the value."},"fullyImplemented":true,"id":14446,"linearizedBaseContracts":[14446],"name":"TimelockV8","nameLocation":"438:10:59","nodeType":"ContractDefinition","nodes":[{"constant":true,"documentation":{"id":13909,"nodeType":"StructuredDocumentation","src":"455:61:59","text":"@notice Required period to execute a proposal transaction"},"id":13912,"mutability":"constant","name":"DEFAULT_GRACE_PERIOD","nameLocation":"546:20:59","nodeType":"VariableDeclaration","scope":14446,"src":"521:55:59","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13910,"name":"uint256","nodeType":"ElementaryTypeName","src":"521:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3134","id":13911,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"569:7:59","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_1209600_by_1","typeString":"int_const 1209600"},"value":"14"},"visibility":"private"},{"constant":true,"documentation":{"id":13913,"nodeType":"StructuredDocumentation","src":"583:72:59","text":"@notice Minimum amount of time a proposal transaction must be queued"},"id":13916,"mutability":"constant","name":"DEFAULT_MINIMUM_DELAY","nameLocation":"685:21:59","nodeType":"VariableDeclaration","scope":14446,"src":"660:56:59","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13914,"name":"uint256","nodeType":"ElementaryTypeName","src":"660:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":13915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"709:7:59","subdenomination":"hours","typeDescriptions":{"typeIdentifier":"t_rational_3600_by_1","typeString":"int_const 3600"},"value":"1"},"visibility":"private"},{"constant":true,"documentation":{"id":13917,"nodeType":"StructuredDocumentation","src":"723:72:59","text":"@notice Maximum amount of time a proposal transaction must be queued"},"id":13920,"mutability":"constant","name":"DEFAULT_MAXIMUM_DELAY","nameLocation":"825:21:59","nodeType":"VariableDeclaration","scope":14446,"src":"800:56:59","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13918,"name":"uint256","nodeType":"ElementaryTypeName","src":"800:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3330","id":13919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"849:7:59","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_2592000_by_1","typeString":"int_const 2592000"},"value":"30"},"visibility":"private"},{"constant":false,"documentation":{"id":13921,"nodeType":"StructuredDocumentation","src":"863:71:59","text":"@notice Timelock admin authorized to queue and execute transactions"},"functionSelector":"f851a440","id":13923,"mutability":"mutable","name":"admin","nameLocation":"954:5:59","nodeType":"VariableDeclaration","scope":14446,"src":"939:20:59","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13922,"name":"address","nodeType":"ElementaryTypeName","src":"939:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"documentation":{"id":13924,"nodeType":"StructuredDocumentation","src":"966:46:59","text":"@notice Account proposed as the next admin"},"functionSelector":"26782247","id":13926,"mutability":"mutable","name":"pendingAdmin","nameLocation":"1032:12:59","nodeType":"VariableDeclaration","scope":14446,"src":"1017:27:59","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13925,"name":"address","nodeType":"ElementaryTypeName","src":"1017:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"documentation":{"id":13927,"nodeType":"StructuredDocumentation","src":"1051:58:59","text":"@notice Period for a proposal transaction to be queued"},"functionSelector":"6a42b8f8","id":13929,"mutability":"mutable","name":"delay","nameLocation":"1129:5:59","nodeType":"VariableDeclaration","scope":14446,"src":"1114:20:59","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13928,"name":"uint256","nodeType":"ElementaryTypeName","src":"1114:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":13930,"nodeType":"StructuredDocumentation","src":"1141:42:59","text":"@notice Mapping of queued transactions"},"functionSelector":"f2b06537","id":13934,"mutability":"mutable","name":"queuedTransactions","nameLocation":"1220:18:59","nodeType":"VariableDeclaration","scope":14446,"src":"1188:50:59","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"typeName":{"id":13933,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":13931,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1196:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1188:24:59","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":13932,"name":"bool","nodeType":"ElementaryTypeName","src":"1207:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"anonymous":false,"documentation":{"id":13935,"nodeType":"StructuredDocumentation","src":"1245:54:59","text":"@notice Event emitted when a new admin is accepted"},"eventSelector":"f9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc","id":13941,"name":"NewAdmin","nameLocation":"1310:8:59","nodeType":"EventDefinition","parameters":{"id":13940,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13937,"indexed":true,"mutability":"mutable","name":"oldAdmin","nameLocation":"1335:8:59","nodeType":"VariableDeclaration","scope":13941,"src":"1319:24:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13936,"name":"address","nodeType":"ElementaryTypeName","src":"1319:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13939,"indexed":true,"mutability":"mutable","name":"newAdmin","nameLocation":"1361:8:59","nodeType":"VariableDeclaration","scope":13941,"src":"1345:24:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13938,"name":"address","nodeType":"ElementaryTypeName","src":"1345:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1318:52:59"},"src":"1304:67:59"},{"anonymous":false,"documentation":{"id":13942,"nodeType":"StructuredDocumentation","src":"1377:54:59","text":"@notice Event emitted when a new admin is proposed"},"eventSelector":"69d78e38a01985fbb1462961809b4b2d65531bc93b2b94037f3334b82ca4a756","id":13946,"name":"NewPendingAdmin","nameLocation":"1442:15:59","nodeType":"EventDefinition","parameters":{"id":13945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13944,"indexed":true,"mutability":"mutable","name":"newPendingAdmin","nameLocation":"1474:15:59","nodeType":"VariableDeclaration","scope":13946,"src":"1458:31:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13943,"name":"address","nodeType":"ElementaryTypeName","src":"1458:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1457:33:59"},"src":"1436:55:59"},{"anonymous":false,"documentation":{"id":13947,"nodeType":"StructuredDocumentation","src":"1497:54:59","text":"@notice Event emitted when a new delay is proposed"},"eventSelector":"ed0229422af39d4d7d33f7a27d31d6f5cb20ec628293da58dd6e8a528ed466be","id":13953,"name":"NewDelay","nameLocation":"1562:8:59","nodeType":"EventDefinition","parameters":{"id":13952,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13949,"indexed":true,"mutability":"mutable","name":"oldDelay","nameLocation":"1587:8:59","nodeType":"VariableDeclaration","scope":13953,"src":"1571:24:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13948,"name":"uint256","nodeType":"ElementaryTypeName","src":"1571:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13951,"indexed":true,"mutability":"mutable","name":"newDelay","nameLocation":"1613:8:59","nodeType":"VariableDeclaration","scope":13953,"src":"1597:24:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13950,"name":"uint256","nodeType":"ElementaryTypeName","src":"1597:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1570:52:59"},"src":"1556:67:59"},{"anonymous":false,"documentation":{"id":13954,"nodeType":"StructuredDocumentation","src":"1629:72:59","text":"@notice Event emitted when a proposal transaction has been cancelled"},"eventSelector":"2fffc091a501fd91bfbff27141450d3acb40fb8e6d8382b243ec7a812a3aaf87","id":13968,"name":"CancelTransaction","nameLocation":"1712:17:59","nodeType":"EventDefinition","parameters":{"id":13967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13956,"indexed":true,"mutability":"mutable","name":"txHash","nameLocation":"1755:6:59","nodeType":"VariableDeclaration","scope":13968,"src":"1739:22:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13955,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1739:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":13958,"indexed":true,"mutability":"mutable","name":"target","nameLocation":"1787:6:59","nodeType":"VariableDeclaration","scope":13968,"src":"1771:22:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13957,"name":"address","nodeType":"ElementaryTypeName","src":"1771:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13960,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"1811:5:59","nodeType":"VariableDeclaration","scope":13968,"src":"1803:13:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13959,"name":"uint256","nodeType":"ElementaryTypeName","src":"1803:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13962,"indexed":false,"mutability":"mutable","name":"signature","nameLocation":"1833:9:59","nodeType":"VariableDeclaration","scope":13968,"src":"1826:16:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13961,"name":"string","nodeType":"ElementaryTypeName","src":"1826:6:59","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13964,"indexed":false,"mutability":"mutable","name":"data","nameLocation":"1858:4:59","nodeType":"VariableDeclaration","scope":13968,"src":"1852:10:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13963,"name":"bytes","nodeType":"ElementaryTypeName","src":"1852:5:59","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":13966,"indexed":false,"mutability":"mutable","name":"eta","nameLocation":"1880:3:59","nodeType":"VariableDeclaration","scope":13968,"src":"1872:11:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13965,"name":"uint256","nodeType":"ElementaryTypeName","src":"1872:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1729:160:59"},"src":"1706:184:59"},{"anonymous":false,"documentation":{"id":13969,"nodeType":"StructuredDocumentation","src":"1896:71:59","text":"@notice Event emitted when a proposal transaction has been executed"},"eventSelector":"a560e3198060a2f10670c1ec5b403077ea6ae93ca8de1c32b451dc1a943cd6e7","id":13983,"name":"ExecuteTransaction","nameLocation":"1978:18:59","nodeType":"EventDefinition","parameters":{"id":13982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13971,"indexed":true,"mutability":"mutable","name":"txHash","nameLocation":"2022:6:59","nodeType":"VariableDeclaration","scope":13983,"src":"2006:22:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13970,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2006:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":13973,"indexed":true,"mutability":"mutable","name":"target","nameLocation":"2054:6:59","nodeType":"VariableDeclaration","scope":13983,"src":"2038:22:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13972,"name":"address","nodeType":"ElementaryTypeName","src":"2038:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13975,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"2078:5:59","nodeType":"VariableDeclaration","scope":13983,"src":"2070:13:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13974,"name":"uint256","nodeType":"ElementaryTypeName","src":"2070:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13977,"indexed":false,"mutability":"mutable","name":"signature","nameLocation":"2100:9:59","nodeType":"VariableDeclaration","scope":13983,"src":"2093:16:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13976,"name":"string","nodeType":"ElementaryTypeName","src":"2093:6:59","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13979,"indexed":false,"mutability":"mutable","name":"data","nameLocation":"2125:4:59","nodeType":"VariableDeclaration","scope":13983,"src":"2119:10:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13978,"name":"bytes","nodeType":"ElementaryTypeName","src":"2119:5:59","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":13981,"indexed":false,"mutability":"mutable","name":"eta","nameLocation":"2147:3:59","nodeType":"VariableDeclaration","scope":13983,"src":"2139:11:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13980,"name":"uint256","nodeType":"ElementaryTypeName","src":"2139:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1996:160:59"},"src":"1972:185:59"},{"anonymous":false,"documentation":{"id":13984,"nodeType":"StructuredDocumentation","src":"2163:69:59","text":"@notice Event emitted when a proposal transaction has been queued"},"eventSelector":"76e2796dc3a81d57b0e8504b647febcbeeb5f4af818e164f11eef8131a6a763f","id":13998,"name":"QueueTransaction","nameLocation":"2243:16:59","nodeType":"EventDefinition","parameters":{"id":13997,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13986,"indexed":true,"mutability":"mutable","name":"txHash","nameLocation":"2285:6:59","nodeType":"VariableDeclaration","scope":13998,"src":"2269:22:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13985,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2269:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":13988,"indexed":true,"mutability":"mutable","name":"target","nameLocation":"2317:6:59","nodeType":"VariableDeclaration","scope":13998,"src":"2301:22:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13987,"name":"address","nodeType":"ElementaryTypeName","src":"2301:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13990,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"2341:5:59","nodeType":"VariableDeclaration","scope":13998,"src":"2333:13:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13989,"name":"uint256","nodeType":"ElementaryTypeName","src":"2333:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13992,"indexed":false,"mutability":"mutable","name":"signature","nameLocation":"2363:9:59","nodeType":"VariableDeclaration","scope":13998,"src":"2356:16:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13991,"name":"string","nodeType":"ElementaryTypeName","src":"2356:6:59","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13994,"indexed":false,"mutability":"mutable","name":"data","nameLocation":"2388:4:59","nodeType":"VariableDeclaration","scope":13998,"src":"2382:10:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13993,"name":"bytes","nodeType":"ElementaryTypeName","src":"2382:5:59","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":13996,"indexed":false,"mutability":"mutable","name":"eta","nameLocation":"2410:3:59","nodeType":"VariableDeclaration","scope":13998,"src":"2402:11:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13995,"name":"uint256","nodeType":"ElementaryTypeName","src":"2402:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2259:160:59"},"src":"2237:183:59"},{"body":{"id":14033,"nodeType":"Block","src":"2470:301:59","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14006,"name":"delay_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14002,"src":"2488:6:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":14007,"name":"MINIMUM_DELAY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14099,"src":"2498:13:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":14008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2498:15:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2488:25:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b3a3a636f6e7374727563746f723a2044656c6179206d75737420657863656564206d696e696d756d2064656c61792e","id":14010,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2515:57:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_22e01fcea901594c01d464b6c5f076874d475b75affb5ba136b9bcf9c2e8cf2f","typeString":"literal_string \"Timelock::constructor: Delay must exceed minimum delay.\""},"value":"Timelock::constructor: Delay must exceed minimum delay."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_22e01fcea901594c01d464b6c5f076874d475b75affb5ba136b9bcf9c2e8cf2f","typeString":"literal_string \"Timelock::constructor: Delay must exceed minimum delay.\""}],"id":14005,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2480:7:59","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2480:93:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14012,"nodeType":"ExpressionStatement","src":"2480:93:59"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14014,"name":"delay_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14002,"src":"2591:6:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":14015,"name":"MAXIMUM_DELAY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14108,"src":"2601:13:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":14016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2601:15:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2591:25:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e6f7420657863656564206d6178696d756d2064656c61792e","id":14018,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2618:58:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_762218313af08cfa6c9b8eda00385502eefaa529f9945044fd2dee54ff5cefe0","typeString":"literal_string \"Timelock::setDelay: Delay must not exceed maximum delay.\""},"value":"Timelock::setDelay: Delay must not exceed maximum delay."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_762218313af08cfa6c9b8eda00385502eefaa529f9945044fd2dee54ff5cefe0","typeString":"literal_string \"Timelock::setDelay: Delay must not exceed maximum delay.\""}],"id":14013,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2583:7:59","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2583:94:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14020,"nodeType":"ExpressionStatement","src":"2583:94:59"},{"expression":{"arguments":[{"id":14022,"name":"admin_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14000,"src":"2708:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14021,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10945,"src":"2687:20:59","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":14023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2687:28:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14024,"nodeType":"ExpressionStatement","src":"2687:28:59"},{"expression":{"id":14027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14025,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13923,"src":"2726:5:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":14026,"name":"admin_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14000,"src":"2734:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2726:14:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14028,"nodeType":"ExpressionStatement","src":"2726:14:59"},{"expression":{"id":14031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14029,"name":"delay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13929,"src":"2750:5:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":14030,"name":"delay_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14002,"src":"2758:6:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2750:14:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14032,"nodeType":"ExpressionStatement","src":"2750:14:59"}]},"id":14034,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":14003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14000,"mutability":"mutable","name":"admin_","nameLocation":"2446:6:59","nodeType":"VariableDeclaration","scope":14034,"src":"2438:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13999,"name":"address","nodeType":"ElementaryTypeName","src":"2438:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14002,"mutability":"mutable","name":"delay_","nameLocation":"2462:6:59","nodeType":"VariableDeclaration","scope":14034,"src":"2454:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14001,"name":"uint256","nodeType":"ElementaryTypeName","src":"2454:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2437:32:59"},"returnParameters":{"id":14004,"nodeType":"ParameterList","parameters":[],"src":"2470:0:59"},"scope":14446,"src":"2426:345:59","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":14037,"nodeType":"Block","src":"2805:2:59","statements":[]},"id":14038,"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":14035,"nodeType":"ParameterList","parameters":[],"src":"2785:2:59"},"returnParameters":{"id":14036,"nodeType":"ParameterList","parameters":[],"src":"2805:0:59"},"scope":14446,"src":"2777:30:59","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":14080,"nodeType":"Block","src":"3103:372:59","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14045,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3121:3:59","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3125:6:59","memberName":"sender","nodeType":"MemberAccess","src":"3121:10:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":14049,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3143:4:59","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockV8_$14446","typeString":"contract TimelockV8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TimelockV8_$14446","typeString":"contract TimelockV8"}],"id":14048,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3135:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14047,"name":"address","nodeType":"ElementaryTypeName","src":"3135:7:59","typeDescriptions":{}}},"id":14050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3135:13:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3121:27:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b3a3a73657444656c61793a2043616c6c206d75737420636f6d652066726f6d2054696d656c6f636b2e","id":14052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3150:51:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_e810dcfb9ec7662fa74f0c58d14b8ca36ebffcb4d6cdf3e54d58e4096597d95d","typeString":"literal_string \"Timelock::setDelay: Call must come from Timelock.\""},"value":"Timelock::setDelay: Call must come from Timelock."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e810dcfb9ec7662fa74f0c58d14b8ca36ebffcb4d6cdf3e54d58e4096597d95d","typeString":"literal_string \"Timelock::setDelay: Call must come from Timelock.\""}],"id":14044,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3113:7:59","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3113:89:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14054,"nodeType":"ExpressionStatement","src":"3113:89:59"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14056,"name":"delay_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14041,"src":"3220:6:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":14057,"name":"MINIMUM_DELAY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14099,"src":"3230:13:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":14058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3230:15:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3220:25:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b3a3a73657444656c61793a2044656c6179206d75737420657863656564206d696e696d756d2064656c61792e","id":14060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3247:54:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_4198c63548ffd3e47f06dc876a374eb662a4ea6ff5509a211e07dd2b49998b1d","typeString":"literal_string \"Timelock::setDelay: Delay must exceed minimum delay.\""},"value":"Timelock::setDelay: Delay must exceed minimum delay."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4198c63548ffd3e47f06dc876a374eb662a4ea6ff5509a211e07dd2b49998b1d","typeString":"literal_string \"Timelock::setDelay: Delay must exceed minimum delay.\""}],"id":14055,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3212:7:59","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3212:90:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14062,"nodeType":"ExpressionStatement","src":"3212:90:59"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14064,"name":"delay_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14041,"src":"3320:6:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":14065,"name":"MAXIMUM_DELAY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14108,"src":"3330:13:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":14066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3330:15:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3320:25:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e6f7420657863656564206d6178696d756d2064656c61792e","id":14068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3347:58:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_762218313af08cfa6c9b8eda00385502eefaa529f9945044fd2dee54ff5cefe0","typeString":"literal_string \"Timelock::setDelay: Delay must not exceed maximum delay.\""},"value":"Timelock::setDelay: Delay must not exceed maximum delay."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_762218313af08cfa6c9b8eda00385502eefaa529f9945044fd2dee54ff5cefe0","typeString":"literal_string \"Timelock::setDelay: Delay must not exceed maximum delay.\""}],"id":14063,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3312:7:59","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3312:94:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14070,"nodeType":"ExpressionStatement","src":"3312:94:59"},{"eventCall":{"arguments":[{"id":14072,"name":"delay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13929,"src":"3430:5:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14073,"name":"delay_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14041,"src":"3437:6:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14071,"name":"NewDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13953,"src":"3421:8:59","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":14074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3421:23:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14075,"nodeType":"EmitStatement","src":"3416:28:59"},{"expression":{"id":14078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14076,"name":"delay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13929,"src":"3454:5:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":14077,"name":"delay_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14041,"src":"3462:6:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3454:14:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14079,"nodeType":"ExpressionStatement","src":"3454:14:59"}]},"documentation":{"id":14039,"nodeType":"StructuredDocumentation","src":"2813:244:59","text":" @notice Setter for the transaction queue delay\n @param delay_ The new delay period for the transaction queue\n @custom:access Sender must be Timelock itself\n @custom:event Emit NewDelay with old and new delay"},"functionSelector":"e177246e","id":14081,"implemented":true,"kind":"function","modifiers":[],"name":"setDelay","nameLocation":"3071:8:59","nodeType":"FunctionDefinition","parameters":{"id":14042,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14041,"mutability":"mutable","name":"delay_","nameLocation":"3088:6:59","nodeType":"VariableDeclaration","scope":14081,"src":"3080:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14040,"name":"uint256","nodeType":"ElementaryTypeName","src":"3080:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3079:16:59"},"returnParameters":{"id":14043,"nodeType":"ParameterList","parameters":[],"src":"3103:0:59"},"scope":14446,"src":"3062:413:59","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":14089,"nodeType":"Block","src":"3673:44:59","statements":[{"expression":{"id":14087,"name":"DEFAULT_GRACE_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13912,"src":"3690:20:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14086,"id":14088,"nodeType":"Return","src":"3683:27:59"}]},"documentation":{"id":14082,"nodeType":"StructuredDocumentation","src":"3481:125:59","text":" @notice Return grace period\n @return The duration of the grace period, specified as a uint256 value."},"functionSelector":"c1a287e2","id":14090,"implemented":true,"kind":"function","modifiers":[],"name":"GRACE_PERIOD","nameLocation":"3620:12:59","nodeType":"FunctionDefinition","parameters":{"id":14083,"nodeType":"ParameterList","parameters":[],"src":"3632:2:59"},"returnParameters":{"id":14086,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14085,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14090,"src":"3664:7:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14084,"name":"uint256","nodeType":"ElementaryTypeName","src":"3664:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3663:9:59"},"scope":14446,"src":"3611:106:59","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":14098,"nodeType":"Block","src":"3876:45:59","statements":[{"expression":{"id":14096,"name":"DEFAULT_MINIMUM_DELAY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13916,"src":"3893:21:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14095,"id":14097,"nodeType":"Return","src":"3886:28:59"}]},"documentation":{"id":14091,"nodeType":"StructuredDocumentation","src":"3723:85:59","text":" @notice Return required minimum delay\n @return Minimum delay"},"functionSelector":"b1b43ae5","id":14099,"implemented":true,"kind":"function","modifiers":[],"name":"MINIMUM_DELAY","nameLocation":"3822:13:59","nodeType":"FunctionDefinition","parameters":{"id":14092,"nodeType":"ParameterList","parameters":[],"src":"3835:2:59"},"returnParameters":{"id":14095,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14094,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14099,"src":"3867:7:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14093,"name":"uint256","nodeType":"ElementaryTypeName","src":"3867:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3866:9:59"},"scope":14446,"src":"3813:108:59","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":14107,"nodeType":"Block","src":"4080:45:59","statements":[{"expression":{"id":14105,"name":"DEFAULT_MAXIMUM_DELAY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13920,"src":"4097:21:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14104,"id":14106,"nodeType":"Return","src":"4090:28:59"}]},"documentation":{"id":14100,"nodeType":"StructuredDocumentation","src":"3927:85:59","text":" @notice Return required maximum delay\n @return Maximum delay"},"functionSelector":"7d645fab","id":14108,"implemented":true,"kind":"function","modifiers":[],"name":"MAXIMUM_DELAY","nameLocation":"4026:13:59","nodeType":"FunctionDefinition","parameters":{"id":14101,"nodeType":"ParameterList","parameters":[],"src":"4039:2:59"},"returnParameters":{"id":14104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14103,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14108,"src":"4071:7:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14102,"name":"uint256","nodeType":"ElementaryTypeName","src":"4071:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4070:9:59"},"scope":14446,"src":"4017:108:59","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":14138,"nodeType":"Block","src":"4339:217:59","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14113,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4357:3:59","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4361:6:59","memberName":"sender","nodeType":"MemberAccess","src":"4357:10:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":14115,"name":"pendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13926,"src":"4371:12:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4357:26:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b3a3a61636365707441646d696e3a2043616c6c206d75737420636f6d652066726f6d2070656e64696e6741646d696e2e","id":14117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4385:58:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_a6d22532620e2c2df8ce400b3f4754629da5ed6321258d3add10ae5aba9450b3","typeString":"literal_string \"Timelock::acceptAdmin: Call must come from pendingAdmin.\""},"value":"Timelock::acceptAdmin: Call must come from pendingAdmin."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a6d22532620e2c2df8ce400b3f4754629da5ed6321258d3add10ae5aba9450b3","typeString":"literal_string \"Timelock::acceptAdmin: Call must come from pendingAdmin.\""}],"id":14112,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4349:7:59","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4349:95:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14119,"nodeType":"ExpressionStatement","src":"4349:95:59"},{"eventCall":{"arguments":[{"id":14121,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13923,"src":"4468:5:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":14122,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4475:3:59","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4479:6:59","memberName":"sender","nodeType":"MemberAccess","src":"4475:10:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":14120,"name":"NewAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13941,"src":"4459:8:59","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":14124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4459:27:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14125,"nodeType":"EmitStatement","src":"4454:32:59"},{"expression":{"id":14129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14126,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13923,"src":"4496:5:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":14127,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4504:3:59","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4508:6:59","memberName":"sender","nodeType":"MemberAccess","src":"4504:10:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4496:18:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14130,"nodeType":"ExpressionStatement","src":"4496:18:59"},{"expression":{"id":14136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14131,"name":"pendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13926,"src":"4524:12:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":14134,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4547:1:59","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":14133,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4539:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14132,"name":"address","nodeType":"ElementaryTypeName","src":"4539:7:59","typeDescriptions":{}}},"id":14135,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4539:10:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4524:25:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14137,"nodeType":"ExpressionStatement","src":"4524:25:59"}]},"documentation":{"id":14109,"nodeType":"StructuredDocumentation","src":"4131:173:59","text":" @notice Method for accepting a proposed admin\n @custom:access Sender must be pending admin\n @custom:event Emit NewAdmin with old and new admin"},"functionSelector":"0e18b681","id":14139,"implemented":true,"kind":"function","modifiers":[],"name":"acceptAdmin","nameLocation":"4318:11:59","nodeType":"FunctionDefinition","parameters":{"id":14110,"nodeType":"ParameterList","parameters":[],"src":"4329:2:59"},"returnParameters":{"id":14111,"nodeType":"ParameterList","parameters":[],"src":"4339:0:59"},"scope":14446,"src":"4309:247:59","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":14173,"nodeType":"Block","src":"4948:298:59","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14146,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4979:3:59","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4983:6:59","memberName":"sender","nodeType":"MemberAccess","src":"4979:10:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":14150,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5001:4:59","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockV8_$14446","typeString":"contract TimelockV8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TimelockV8_$14446","typeString":"contract TimelockV8"}],"id":14149,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4993:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14148,"name":"address","nodeType":"ElementaryTypeName","src":"4993:7:59","typeDescriptions":{}}},"id":14151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4993:13:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4979:27:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14153,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5010:3:59","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5014:6:59","memberName":"sender","nodeType":"MemberAccess","src":"5010:10:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":14155,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13923,"src":"5024:5:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5010:19:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4979:50:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b3a3a73657450656e64696e6741646d696e3a2043616c6c206d75737420636f6d652066726f6d2054696d656c6f636b2e","id":14158,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5043:58:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_b7a0aaea4203d5a5318b76c13dcb2afd3f7e9e71cd6f5f022040411bd080d815","typeString":"literal_string \"Timelock::setPendingAdmin: Call must come from Timelock.\""},"value":"Timelock::setPendingAdmin: Call must come from Timelock."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b7a0aaea4203d5a5318b76c13dcb2afd3f7e9e71cd6f5f022040411bd080d815","typeString":"literal_string \"Timelock::setPendingAdmin: Call must come from Timelock.\""}],"id":14145,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4958:7:59","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4958:153:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14160,"nodeType":"ExpressionStatement","src":"4958:153:59"},{"expression":{"arguments":[{"id":14162,"name":"pendingAdmin_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14142,"src":"5142:13:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14161,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10945,"src":"5121:20:59","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":14163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5121:35:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14164,"nodeType":"ExpressionStatement","src":"5121:35:59"},{"expression":{"id":14167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14165,"name":"pendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13926,"src":"5166:12:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":14166,"name":"pendingAdmin_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14142,"src":"5181:13:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5166:28:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14168,"nodeType":"ExpressionStatement","src":"5166:28:59"},{"eventCall":{"arguments":[{"id":14170,"name":"pendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13926,"src":"5226:12:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14169,"name":"NewPendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13946,"src":"5210:15:59","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":14171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5210:29:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14172,"nodeType":"EmitStatement","src":"5205:34:59"}]},"documentation":{"id":14140,"nodeType":"StructuredDocumentation","src":"4562:326:59","text":" @notice Method to propose a new admin authorized to call timelock functions. This should be the Governor Contract\n @param pendingAdmin_ Address of the proposed admin\n @custom:access Sender must be Timelock contract itself or admin\n @custom:event Emit NewPendingAdmin with new pending admin"},"functionSelector":"4dd18bf5","id":14174,"implemented":true,"kind":"function","modifiers":[],"name":"setPendingAdmin","nameLocation":"4902:15:59","nodeType":"FunctionDefinition","parameters":{"id":14143,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14142,"mutability":"mutable","name":"pendingAdmin_","nameLocation":"4926:13:59","nodeType":"VariableDeclaration","scope":14174,"src":"4918:21:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14141,"name":"address","nodeType":"ElementaryTypeName","src":"4918:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4917:23:59"},"returnParameters":{"id":14144,"nodeType":"ParameterList","parameters":[],"src":"4948:0:59"},"scope":14446,"src":"4893:353:59","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":14246,"nodeType":"Block","src":"5996:601:59","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14191,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6014:3:59","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6018:6:59","memberName":"sender","nodeType":"MemberAccess","src":"6014:10:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":14193,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13923,"src":"6028:5:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6014:19:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b3a3a71756575655472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e","id":14195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6035:56:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_b9bd2ade56c0bd4d6738b7a39a90e136f8901e8e7945a3d237050075ad6fd749","typeString":"literal_string \"Timelock::queueTransaction: Call must come from admin.\""},"value":"Timelock::queueTransaction: Call must come from admin."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b9bd2ade56c0bd4d6738b7a39a90e136f8901e8e7945a3d237050075ad6fd749","typeString":"literal_string \"Timelock::queueTransaction: Call must come from admin.\""}],"id":14190,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6006:7:59","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6006:86:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14197,"nodeType":"ExpressionStatement","src":"6006:86:59"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14199,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14185,"src":"6123:3:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":14200,"name":"getBlockTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14445,"src":"6130:17:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":14201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6130:19:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":14202,"name":"delay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13929,"src":"6152:5:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6130:27:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6123:34:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b3a3a71756575655472616e73616374696f6e3a20457374696d6174656420657865637574696f6e20626c6f636b206d75737420736174697366792064656c61792e","id":14205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6171:75:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_d8f8e6fa46b62e55e6ef89f0d71d2a706a902748f37198aeb3e192bf7bca348c","typeString":"literal_string \"Timelock::queueTransaction: Estimated execution block must satisfy delay.\""},"value":"Timelock::queueTransaction: Estimated execution block must satisfy delay."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d8f8e6fa46b62e55e6ef89f0d71d2a706a902748f37198aeb3e192bf7bca348c","typeString":"literal_string \"Timelock::queueTransaction: Estimated execution block must satisfy delay.\""}],"id":14198,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6102:7:59","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6102:154:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14207,"nodeType":"ExpressionStatement","src":"6102:154:59"},{"assignments":[14209],"declarations":[{"constant":false,"id":14209,"mutability":"mutable","name":"txHash","nameLocation":"6275:6:59","nodeType":"VariableDeclaration","scope":14246,"src":"6267:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14208,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6267:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":14220,"initialValue":{"arguments":[{"arguments":[{"id":14213,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14177,"src":"6305:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14214,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14179,"src":"6313:5:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14215,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14181,"src":"6320:9:59","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"id":14216,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14183,"src":"6331:4:59","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":14217,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14185,"src":"6337:3:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14211,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6294:3:59","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14212,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6298:6:59","memberName":"encode","nodeType":"MemberAccess","src":"6294:10:59","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":14218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6294:47:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14210,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6284:9:59","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":14219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6284:58:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6267:75:59"},{"expression":{"arguments":[{"id":14225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6360:27:59","subExpression":{"baseExpression":{"id":14222,"name":"queuedTransactions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13934,"src":"6361:18:59","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":14224,"indexExpression":{"id":14223,"name":"txHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14209,"src":"6380:6:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6361:26:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b3a3a71756575655472616e73616374696f6e3a207472616e73616374696f6e20616c7265616479207175657565642e","id":14226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6389:57:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_c3dc77f6ede7b6195dca0ab15e49736c813ce698624fe501da985707f241d9c7","typeString":"literal_string \"Timelock::queueTransaction: transaction already queued.\""},"value":"Timelock::queueTransaction: transaction already queued."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c3dc77f6ede7b6195dca0ab15e49736c813ce698624fe501da985707f241d9c7","typeString":"literal_string \"Timelock::queueTransaction: transaction already queued.\""}],"id":14221,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6352:7:59","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6352:95:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14228,"nodeType":"ExpressionStatement","src":"6352:95:59"},{"expression":{"id":14233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":14229,"name":"queuedTransactions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13934,"src":"6457:18:59","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":14231,"indexExpression":{"id":14230,"name":"txHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14209,"src":"6476:6:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6457:26:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":14232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6486:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"6457:33:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14234,"nodeType":"ExpressionStatement","src":"6457:33:59"},{"eventCall":{"arguments":[{"id":14236,"name":"txHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14209,"src":"6523:6:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":14237,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14177,"src":"6531:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14238,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14179,"src":"6539:5:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14239,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14181,"src":"6546:9:59","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"id":14240,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14183,"src":"6557:4:59","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":14241,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14185,"src":"6563:3:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14235,"name":"QueueTransaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13998,"src":"6506:16:59","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,uint256,string memory,bytes memory,uint256)"}},"id":14242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6506:61:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14243,"nodeType":"EmitStatement","src":"6501:66:59"},{"expression":{"id":14244,"name":"txHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14209,"src":"6584:6:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":14189,"id":14245,"nodeType":"Return","src":"6577:13:59"}]},"documentation":{"id":14175,"nodeType":"StructuredDocumentation","src":"5252:550:59","text":" @notice Called for each action when queuing a proposal\n @param target Address of the contract with the method to be called\n @param value Native token amount sent with the transaction\n @param signature Signature of the function to be called\n @param data Arguments to be passed to the function when called\n @param eta Timestamp after which the transaction can be executed\n @return Hash of the queued transaction\n @custom:access Sender must be admin\n @custom:event Emit QueueTransaction"},"functionSelector":"3a66f901","id":14247,"implemented":true,"kind":"function","modifiers":[],"name":"queueTransaction","nameLocation":"5816:16:59","nodeType":"FunctionDefinition","parameters":{"id":14186,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14177,"mutability":"mutable","name":"target","nameLocation":"5850:6:59","nodeType":"VariableDeclaration","scope":14247,"src":"5842:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14176,"name":"address","nodeType":"ElementaryTypeName","src":"5842:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14179,"mutability":"mutable","name":"value","nameLocation":"5874:5:59","nodeType":"VariableDeclaration","scope":14247,"src":"5866:13:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14178,"name":"uint256","nodeType":"ElementaryTypeName","src":"5866:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14181,"mutability":"mutable","name":"signature","nameLocation":"5905:9:59","nodeType":"VariableDeclaration","scope":14247,"src":"5889:25:59","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14180,"name":"string","nodeType":"ElementaryTypeName","src":"5889:6:59","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14183,"mutability":"mutable","name":"data","nameLocation":"5939:4:59","nodeType":"VariableDeclaration","scope":14247,"src":"5924:19:59","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14182,"name":"bytes","nodeType":"ElementaryTypeName","src":"5924:5:59","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":14185,"mutability":"mutable","name":"eta","nameLocation":"5961:3:59","nodeType":"VariableDeclaration","scope":14247,"src":"5953:11:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14184,"name":"uint256","nodeType":"ElementaryTypeName","src":"5953:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5832:138:59"},"returnParameters":{"id":14189,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14188,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14247,"src":"5987:7:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14187,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5987:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5986:9:59"},"scope":14446,"src":"5807:790:59","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":14304,"nodeType":"Block","src":"7276:421:59","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14262,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7294:3:59","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7298:6:59","memberName":"sender","nodeType":"MemberAccess","src":"7294:10:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":14264,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13923,"src":"7308:5:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7294:19:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e","id":14266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7315:57:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_135e413b08c779b9b925daaaf6178471ba60ebd33d413d809c76a0d4e8beaf3d","typeString":"literal_string \"Timelock::cancelTransaction: Call must come from admin.\""},"value":"Timelock::cancelTransaction: Call must come from admin."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_135e413b08c779b9b925daaaf6178471ba60ebd33d413d809c76a0d4e8beaf3d","typeString":"literal_string \"Timelock::cancelTransaction: Call must come from admin.\""}],"id":14261,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7286:7:59","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7286:87:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14268,"nodeType":"ExpressionStatement","src":"7286:87:59"},{"assignments":[14270],"declarations":[{"constant":false,"id":14270,"mutability":"mutable","name":"txHash","nameLocation":"7392:6:59","nodeType":"VariableDeclaration","scope":14304,"src":"7384:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14269,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7384:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":14281,"initialValue":{"arguments":[{"arguments":[{"id":14274,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14250,"src":"7422:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14275,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14252,"src":"7430:5:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14276,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14254,"src":"7437:9:59","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"id":14277,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14256,"src":"7448:4:59","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":14278,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14258,"src":"7454:3:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14272,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7411:3:59","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14273,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7415:6:59","memberName":"encode","nodeType":"MemberAccess","src":"7411:10:59","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":14279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7411:47:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14271,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7401:9:59","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":14280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7401:58:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7384:75:59"},{"expression":{"arguments":[{"baseExpression":{"id":14283,"name":"queuedTransactions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13934,"src":"7477:18:59","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":14285,"indexExpression":{"id":14284,"name":"txHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14270,"src":"7496:6:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7477:26:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a207472616e73616374696f6e206973206e6f7420717565756564207965742e","id":14286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7505:61:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_5dff9a8bd683a1f8a197320db69edd3e2d2988378442d324202dc24789d949f5","typeString":"literal_string \"Timelock::cancelTransaction: transaction is not queued yet.\""},"value":"Timelock::cancelTransaction: transaction is not queued yet."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5dff9a8bd683a1f8a197320db69edd3e2d2988378442d324202dc24789d949f5","typeString":"literal_string \"Timelock::cancelTransaction: transaction is not queued yet.\""}],"id":14282,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7469:7:59","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7469:98:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14288,"nodeType":"ExpressionStatement","src":"7469:98:59"},{"expression":{"id":14293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"7577:35:59","subExpression":{"components":[{"baseExpression":{"id":14289,"name":"queuedTransactions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13934,"src":"7585:18:59","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":14291,"indexExpression":{"id":14290,"name":"txHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14270,"src":"7604:6:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7585:26:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":14292,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"7584:28:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14294,"nodeType":"ExpressionStatement","src":"7577:35:59"},{"eventCall":{"arguments":[{"id":14296,"name":"txHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14270,"src":"7646:6:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":14297,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14250,"src":"7654:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14298,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14252,"src":"7662:5:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14299,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14254,"src":"7669:9:59","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"id":14300,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14256,"src":"7680:4:59","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":14301,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14258,"src":"7686:3:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14295,"name":"CancelTransaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13968,"src":"7628:17:59","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,uint256,string memory,bytes memory,uint256)"}},"id":14302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7628:62:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14303,"nodeType":"EmitStatement","src":"7623:67:59"}]},"documentation":{"id":14248,"nodeType":"StructuredDocumentation","src":"6603:496:59","text":" @notice Called to cancel a queued transaction\n @param target Address of the contract with the method to be called\n @param value Native token amount sent with the transaction\n @param signature Signature of the function to be called\n @param data Arguments to be passed to the function when called\n @param eta Timestamp after which the transaction can be executed\n @custom:access Sender must be admin\n @custom:event Emit CancelTransaction"},"functionSelector":"591fcdfe","id":14305,"implemented":true,"kind":"function","modifiers":[],"name":"cancelTransaction","nameLocation":"7113:17:59","nodeType":"FunctionDefinition","parameters":{"id":14259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14250,"mutability":"mutable","name":"target","nameLocation":"7148:6:59","nodeType":"VariableDeclaration","scope":14305,"src":"7140:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14249,"name":"address","nodeType":"ElementaryTypeName","src":"7140:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14252,"mutability":"mutable","name":"value","nameLocation":"7172:5:59","nodeType":"VariableDeclaration","scope":14305,"src":"7164:13:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14251,"name":"uint256","nodeType":"ElementaryTypeName","src":"7164:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14254,"mutability":"mutable","name":"signature","nameLocation":"7203:9:59","nodeType":"VariableDeclaration","scope":14305,"src":"7187:25:59","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14253,"name":"string","nodeType":"ElementaryTypeName","src":"7187:6:59","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14256,"mutability":"mutable","name":"data","nameLocation":"7237:4:59","nodeType":"VariableDeclaration","scope":14305,"src":"7222:19:59","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14255,"name":"bytes","nodeType":"ElementaryTypeName","src":"7222:5:59","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":14258,"mutability":"mutable","name":"eta","nameLocation":"7259:3:59","nodeType":"VariableDeclaration","scope":14305,"src":"7251:11:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14257,"name":"uint256","nodeType":"ElementaryTypeName","src":"7251:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7130:138:59"},"returnParameters":{"id":14260,"nodeType":"ParameterList","parameters":[],"src":"7276:0:59"},"scope":14446,"src":"7104:593:59","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":14434,"nodeType":"Block","src":"8441:1146:59","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14322,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8459:3:59","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8463:6:59","memberName":"sender","nodeType":"MemberAccess","src":"8459:10:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":14324,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13923,"src":"8473:5:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8459:19:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e","id":14326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8480:58:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_0cbc65ac44dc8b90b8bc4c38c9c6ad704bfeb2c8170538058496c0e805dfa947","typeString":"literal_string \"Timelock::executeTransaction: Call must come from admin.\""},"value":"Timelock::executeTransaction: Call must come from admin."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0cbc65ac44dc8b90b8bc4c38c9c6ad704bfeb2c8170538058496c0e805dfa947","typeString":"literal_string \"Timelock::executeTransaction: Call must come from admin.\""}],"id":14321,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8451:7:59","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8451:88:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14328,"nodeType":"ExpressionStatement","src":"8451:88:59"},{"assignments":[14330],"declarations":[{"constant":false,"id":14330,"mutability":"mutable","name":"txHash","nameLocation":"8558:6:59","nodeType":"VariableDeclaration","scope":14434,"src":"8550:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14329,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8550:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":14341,"initialValue":{"arguments":[{"arguments":[{"id":14334,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14308,"src":"8588:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14335,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14310,"src":"8596:5:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14336,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14312,"src":"8603:9:59","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"id":14337,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14314,"src":"8614:4:59","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":14338,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14316,"src":"8620:3:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14332,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8577:3:59","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14333,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8581:6:59","memberName":"encode","nodeType":"MemberAccess","src":"8577:10:59","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":14339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8577:47:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14331,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8567:9:59","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":14340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8567:58:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"8550:75:59"},{"expression":{"arguments":[{"baseExpression":{"id":14343,"name":"queuedTransactions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13934,"src":"8643:18:59","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":14345,"indexExpression":{"id":14344,"name":"txHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14330,"src":"8662:6:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8643:26:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206861736e2774206265656e207175657565642e","id":14346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8671:63:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_7e3bf24eec453753018af1214443c72d8abb3050b249b2b3b9bb2adb04310650","typeString":"literal_string \"Timelock::executeTransaction: Transaction hasn't been queued.\""},"value":"Timelock::executeTransaction: Transaction hasn't been queued."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7e3bf24eec453753018af1214443c72d8abb3050b249b2b3b9bb2adb04310650","typeString":"literal_string \"Timelock::executeTransaction: Transaction hasn't been queued.\""}],"id":14342,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8635:7:59","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8635:100:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14348,"nodeType":"ExpressionStatement","src":"8635:100:59"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":14350,"name":"getBlockTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14445,"src":"8753:17:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":14351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8753:19:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":14352,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14316,"src":"8776:3:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8753:26:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206861736e2774207375727061737365642074696d65206c6f636b2e","id":14354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8781:71:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_381d72a875dbcf282eb0ce43951c66b6c4d7dadc6fdeb9294add773d09cd1687","typeString":"literal_string \"Timelock::executeTransaction: Transaction hasn't surpassed time lock.\""},"value":"Timelock::executeTransaction: Transaction hasn't surpassed time lock."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_381d72a875dbcf282eb0ce43951c66b6c4d7dadc6fdeb9294add773d09cd1687","typeString":"literal_string \"Timelock::executeTransaction: Transaction hasn't surpassed time lock.\""}],"id":14349,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8745:7:59","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8745:108:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14356,"nodeType":"ExpressionStatement","src":"8745:108:59"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":14358,"name":"getBlockTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14445,"src":"8871:17:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":14359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8871:19:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14360,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14316,"src":"8894:3:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":14361,"name":"GRACE_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14090,"src":"8900:12:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":14362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8900:14:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8894:20:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8871:43:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206973207374616c652e","id":14365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8916:53:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c4a83afbdcff2c4ba869dacfa7dabb27b12f774a0707feae827e36773b8166c","typeString":"literal_string \"Timelock::executeTransaction: Transaction is stale.\""},"value":"Timelock::executeTransaction: Transaction is stale."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2c4a83afbdcff2c4ba869dacfa7dabb27b12f774a0707feae827e36773b8166c","typeString":"literal_string \"Timelock::executeTransaction: Transaction is stale.\""}],"id":14357,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8863:7:59","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8863:107:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14367,"nodeType":"ExpressionStatement","src":"8863:107:59"},{"expression":{"id":14372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"8981:35:59","subExpression":{"components":[{"baseExpression":{"id":14368,"name":"queuedTransactions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13934,"src":"8989:18:59","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":14370,"indexExpression":{"id":14369,"name":"txHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14330,"src":"9008:6:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8989:26:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":14371,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"8988:28:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14373,"nodeType":"ExpressionStatement","src":"8981:35:59"},{"assignments":[14375],"declarations":[{"constant":false,"id":14375,"mutability":"mutable","name":"callData","nameLocation":"9040:8:59","nodeType":"VariableDeclaration","scope":14434,"src":"9027:21:59","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":14374,"name":"bytes","nodeType":"ElementaryTypeName","src":"9027:5:59","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":14376,"nodeType":"VariableDeclarationStatement","src":"9027:21:59"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":14379,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14312,"src":"9069:9:59","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":14378,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9063:5:59","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":14377,"name":"bytes","nodeType":"ElementaryTypeName","src":"9063:5:59","typeDescriptions":{}}},"id":14380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9063:16:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":14381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9080:6:59","memberName":"length","nodeType":"MemberAccess","src":"9063:23:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9090:1:59","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9063:28:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14405,"nodeType":"Block","src":"9139:95:59","statements":[{"expression":{"id":14403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14389,"name":"callData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14375,"src":"9153:8:59","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":14397,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14312,"src":"9204:9:59","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":14396,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9198:5:59","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":14395,"name":"bytes","nodeType":"ElementaryTypeName","src":"9198:5:59","typeDescriptions":{}}},"id":14398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9198:16:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":14394,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"9188:9:59","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":14399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9188:27:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":14393,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9181:6:59","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":14392,"name":"bytes4","nodeType":"ElementaryTypeName","src":"9181:6:59","typeDescriptions":{}}},"id":14400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9181:35:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":14401,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14314,"src":"9218:4:59","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":14390,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9164:3:59","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14391,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9168:12:59","memberName":"encodePacked","nodeType":"MemberAccess","src":"9164:16:59","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":14402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9164:59:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"9153:70:59","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":14404,"nodeType":"ExpressionStatement","src":"9153:70:59"}]},"id":14406,"nodeType":"IfStatement","src":"9059:175:59","trueBody":{"id":14388,"nodeType":"Block","src":"9093:40:59","statements":[{"expression":{"id":14386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14384,"name":"callData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14375,"src":"9107:8:59","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":14385,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14314,"src":"9118:4:59","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"9107:15:59","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":14387,"nodeType":"ExpressionStatement","src":"9107:15:59"}]}},{"assignments":[14408,14410],"declarations":[{"constant":false,"id":14408,"mutability":"mutable","name":"success","nameLocation":"9309:7:59","nodeType":"VariableDeclaration","scope":14434,"src":"9304:12:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14407,"name":"bool","nodeType":"ElementaryTypeName","src":"9304:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14410,"mutability":"mutable","name":"returnData","nameLocation":"9331:10:59","nodeType":"VariableDeclaration","scope":14434,"src":"9318:23:59","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":14409,"name":"bytes","nodeType":"ElementaryTypeName","src":"9318:5:59","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":14417,"initialValue":{"arguments":[{"id":14415,"name":"callData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14375,"src":"9373:8:59","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":14411,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14308,"src":"9345:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9352:4:59","memberName":"call","nodeType":"MemberAccess","src":"9345:11:59","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":14414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":14413,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14310,"src":"9365:5:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"9345:27:59","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":14416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9345:37:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"9303:79:59"},{"expression":{"arguments":[{"id":14419,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14408,"src":"9400:7:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e20657865637574696f6e2072657665727465642e","id":14420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9409:63:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_c8cfef133518ef6ab39ac5f19562a74f4f875e9130c8117d51f88a557b6e72c9","typeString":"literal_string \"Timelock::executeTransaction: Transaction execution reverted.\""},"value":"Timelock::executeTransaction: Transaction execution reverted."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c8cfef133518ef6ab39ac5f19562a74f4f875e9130c8117d51f88a557b6e72c9","typeString":"literal_string \"Timelock::executeTransaction: Transaction execution reverted.\""}],"id":14418,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9392:7:59","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9392:81:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14422,"nodeType":"ExpressionStatement","src":"9392:81:59"},{"eventCall":{"arguments":[{"id":14424,"name":"txHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14330,"src":"9508:6:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":14425,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14308,"src":"9516:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14426,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14310,"src":"9524:5:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14427,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14312,"src":"9531:9:59","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"id":14428,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14314,"src":"9542:4:59","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":14429,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14316,"src":"9548:3:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14423,"name":"ExecuteTransaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13983,"src":"9489:18:59","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,uint256,string memory,bytes memory,uint256)"}},"id":14430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9489:63:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14431,"nodeType":"EmitStatement","src":"9484:68:59"},{"expression":{"id":14432,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14410,"src":"9570:10:59","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":14320,"id":14433,"nodeType":"Return","src":"9563:17:59"}]},"documentation":{"id":14306,"nodeType":"StructuredDocumentation","src":"7703:537:59","text":" @notice Called to execute a queued transaction\n @param target Address of the contract with the method to be called\n @param value Native token amount sent with the transaction\n @param signature Signature of the function to be called\n @param data Arguments to be passed to the function when called\n @param eta Timestamp after which the transaction can be executed\n @return Result of function call\n @custom:access Sender must be admin\n @custom:event Emit ExecuteTransaction"},"functionSelector":"0825f38f","id":14435,"implemented":true,"kind":"function","modifiers":[],"name":"executeTransaction","nameLocation":"8254:18:59","nodeType":"FunctionDefinition","parameters":{"id":14317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14308,"mutability":"mutable","name":"target","nameLocation":"8290:6:59","nodeType":"VariableDeclaration","scope":14435,"src":"8282:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14307,"name":"address","nodeType":"ElementaryTypeName","src":"8282:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14310,"mutability":"mutable","name":"value","nameLocation":"8314:5:59","nodeType":"VariableDeclaration","scope":14435,"src":"8306:13:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14309,"name":"uint256","nodeType":"ElementaryTypeName","src":"8306:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14312,"mutability":"mutable","name":"signature","nameLocation":"8345:9:59","nodeType":"VariableDeclaration","scope":14435,"src":"8329:25:59","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14311,"name":"string","nodeType":"ElementaryTypeName","src":"8329:6:59","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14314,"mutability":"mutable","name":"data","nameLocation":"8379:4:59","nodeType":"VariableDeclaration","scope":14435,"src":"8364:19:59","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14313,"name":"bytes","nodeType":"ElementaryTypeName","src":"8364:5:59","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":14316,"mutability":"mutable","name":"eta","nameLocation":"8401:3:59","nodeType":"VariableDeclaration","scope":14435,"src":"8393:11:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14315,"name":"uint256","nodeType":"ElementaryTypeName","src":"8393:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8272:138:59"},"returnParameters":{"id":14320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14319,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14435,"src":"8427:12:59","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":14318,"name":"bytes","nodeType":"ElementaryTypeName","src":"8427:5:59","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8426:14:59"},"scope":14446,"src":"8245:1342:59","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":14444,"nodeType":"Block","src":"9764:101:59","statements":[{"expression":{"expression":{"id":14441,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"9843:5:59","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":14442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9849:9:59","memberName":"timestamp","nodeType":"MemberAccess","src":"9843:15:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14440,"id":14443,"nodeType":"Return","src":"9836:22:59"}]},"documentation":{"id":14436,"nodeType":"StructuredDocumentation","src":"9593:105:59","text":" @notice Returns the current block timestamp\n @return The current block timestamp"},"id":14445,"implemented":true,"kind":"function","modifiers":[],"name":"getBlockTimestamp","nameLocation":"9712:17:59","nodeType":"FunctionDefinition","parameters":{"id":14437,"nodeType":"ParameterList","parameters":[],"src":"9729:2:59"},"returnParameters":{"id":14440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14439,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14445,"src":"9755:7:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14438,"name":"uint256","nodeType":"ElementaryTypeName","src":"9755:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9754:9:59"},"scope":14446,"src":"9703:162:59","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":14447,"src":"429:9438:59","usedErrors":[10924],"usedEvents":[13941,13946,13953,13968,13983,13998]}],"src":"41:9827:59"},"id":59},"contracts/RiskSteward/BaseRiskSteward.sol":{"ast":{"absolutePath":"contracts/RiskSteward/BaseRiskSteward.sol","exportedSymbols":{"AccessControlledV8":[13858],"BaseRiskSteward":[14514],"IRiskSteward":[16839]},"id":14515,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":14448,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:60"},{"absolutePath":"contracts/Governance/AccessControlledV8.sol","file":"../Governance/AccessControlledV8.sol","id":14450,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14515,"sourceUnit":13859,"src":"66:74:60","symbolAliases":[{"foreign":{"id":14449,"name":"AccessControlledV8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13858,"src":"75:18:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/RiskSteward/Interfaces/IRiskSteward.sol","file":"./Interfaces/IRiskSteward.sol","id":14452,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14515,"sourceUnit":16840,"src":"141:61:60","symbolAliases":[{"foreign":{"id":14451,"name":"IRiskSteward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16839,"src":"150:12:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":14454,"name":"IRiskSteward","nameLocations":["477:12:60"],"nodeType":"IdentifierPath","referencedDeclaration":16839,"src":"477:12:60"},"id":14455,"nodeType":"InheritanceSpecifier","src":"477:12:60"},{"baseName":{"id":14456,"name":"AccessControlledV8","nameLocations":["491:18:60"],"nodeType":"IdentifierPath","referencedDeclaration":13858,"src":"491:18:60"},"id":14457,"nodeType":"InheritanceSpecifier","src":"491:18:60"}],"canonicalName":"BaseRiskSteward","contractDependencies":[],"contractKind":"contract","documentation":{"id":14453,"nodeType":"StructuredDocumentation","src":"204:235:60","text":" @title BaseRiskSteward\n @author Venus\n @notice Abstract base contract for Risk Steward contracts providing common functionality\n @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion"},"fullyImplemented":false,"id":14514,"linearizedBaseContracts":[14514,13858,5947,6079,6574,6248,16839],"name":"BaseRiskSteward","nameLocation":"458:15:60","nodeType":"ContractDefinition","nodes":[{"constant":true,"documentation":{"id":14458,"nodeType":"StructuredDocumentation","src":"516:36:60","text":"@dev Max basis points i.e., 100%"},"id":14461,"mutability":"constant","name":"MAX_BPS","nameLocation":"583:7:60","nodeType":"VariableDeclaration","scope":14514,"src":"557:41:60","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14459,"name":"uint256","nodeType":"ElementaryTypeName","src":"557:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130303030","id":14460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"593:5:60","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"value":"10000"},"visibility":"internal"},{"constant":false,"documentation":{"id":14462,"nodeType":"StructuredDocumentation","src":"605:337:60","text":" @notice The safe delta threshold in basis points.\n @notice Updates within this delta are considered safe and require no timelock. Updates exceeding this delta require timelock.\n @dev This is only used by contracts that implement safe delta checks (e.g., MarketCapsRiskSteward, CollateralFactorsRiskSteward)"},"functionSelector":"ee97f265","id":14464,"mutability":"mutable","name":"safeDeltaBps","nameLocation":"962:12:60","nodeType":"VariableDeclaration","scope":14514,"src":"947:27:60","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14463,"name":"uint256","nodeType":"ElementaryTypeName","src":"947:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"documentation":{"id":14465,"nodeType":"StructuredDocumentation","src":"981:67:60","text":" @notice Thrown when trying to renounce ownership"},"errorSelector":"96c553eb","id":14467,"name":"RenounceOwnershipNotAllowed","nameLocation":"1059:27:60","nodeType":"ErrorDefinition","parameters":{"id":14466,"nodeType":"ParameterList","parameters":[],"src":"1086:2:60"},"src":"1053:36:60"},{"baseFunctions":[6030],"body":{"id":14475,"nodeType":"Block","src":"1268:53:60","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":14472,"name":"RenounceOwnershipNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14467,"src":"1285:27:60","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":14473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1285:29:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14474,"nodeType":"RevertStatement","src":"1278:36:60"}]},"documentation":{"id":14468,"nodeType":"StructuredDocumentation","src":"1095:118:60","text":" @notice Disables renounceOwnership function\n @custom:error Throws RenounceOwnershipNotAllowed"},"functionSelector":"715018a6","id":14476,"implemented":true,"kind":"function","modifiers":[],"name":"renounceOwnership","nameLocation":"1227:17:60","nodeType":"FunctionDefinition","overrides":{"id":14470,"nodeType":"OverrideSpecifier","overrides":[],"src":"1259:8:60"},"parameters":{"id":14469,"nodeType":"ParameterList","parameters":[],"src":"1244:2:60"},"returnParameters":{"id":14471,"nodeType":"ParameterList","parameters":[],"src":"1268:0:60"},"scope":14514,"src":"1218:103:60","stateMutability":"pure","virtual":false,"visibility":"public"},{"body":{"id":14512,"nodeType":"Block","src":"1737:206:60","statements":[{"assignments":[14487],"declarations":[{"constant":false,"id":14487,"mutability":"mutable","name":"diff","nameLocation":"1755:4:60","nodeType":"VariableDeclaration","scope":14512,"src":"1747:12:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14486,"name":"uint256","nodeType":"ElementaryTypeName","src":"1747:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14498,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14488,"name":"newValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14479,"src":"1762:8:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":14489,"name":"currentValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14481,"src":"1773:12:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1762:23:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14494,"name":"currentValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14481,"src":"1814:12:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":14495,"name":"newValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14479,"src":"1829:8:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1814:23:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1762:75:60","trueExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14491,"name":"newValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14479,"src":"1788:8:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":14492,"name":"currentValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14481,"src":"1799:12:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1788:23:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1747:90:60"},{"assignments":[14500],"declarations":[{"constant":false,"id":14500,"mutability":"mutable","name":"maxDiff","nameLocation":"1855:7:60","nodeType":"VariableDeclaration","scope":14512,"src":"1847:15:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14499,"name":"uint256","nodeType":"ElementaryTypeName","src":"1847:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14507,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14501,"name":"safeDeltaBps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14464,"src":"1866:12:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":14502,"name":"currentValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14481,"src":"1881:12:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1866:27:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":14504,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1865:29:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":14505,"name":"MAX_BPS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14461,"src":"1897:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1865:39:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1847:57:60"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14508,"name":"diff","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14487,"src":"1921:4:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":14509,"name":"maxDiff","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14500,"src":"1929:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1921:15:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14485,"id":14511,"nodeType":"Return","src":"1914:22:60"}]},"documentation":{"id":14477,"nodeType":"StructuredDocumentation","src":"1327:308:60","text":" @notice Checks if the difference between new and current values is within the safe delta threshold.\n @param newValue The new value to check\n @param currentValue The current value to compare against\n @return True if the difference is within the safe delta, false otherwise"},"id":14513,"implemented":true,"kind":"function","modifiers":[],"name":"_isWithinSafeDelta","nameLocation":"1649:18:60","nodeType":"FunctionDefinition","parameters":{"id":14482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14479,"mutability":"mutable","name":"newValue","nameLocation":"1676:8:60","nodeType":"VariableDeclaration","scope":14513,"src":"1668:16:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14478,"name":"uint256","nodeType":"ElementaryTypeName","src":"1668:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14481,"mutability":"mutable","name":"currentValue","nameLocation":"1694:12:60","nodeType":"VariableDeclaration","scope":14513,"src":"1686:20:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14480,"name":"uint256","nodeType":"ElementaryTypeName","src":"1686:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1667:40:60"},"returnParameters":{"id":14485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14484,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14513,"src":"1731:4:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14483,"name":"bool","nodeType":"ElementaryTypeName","src":"1731:4:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1730:6:60"},"scope":14514,"src":"1640:303:60","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":14515,"src":"440:1505:60","usedErrors":[13739,14467],"usedEvents":[5873,5964,6094,13730]}],"src":"41:1905:60"},"id":60},"contracts/RiskSteward/CollateralFactorsRiskSteward.sol":{"ast":{"absolutePath":"contracts/RiskSteward/CollateralFactorsRiskSteward.sol","exportedSymbols":{"BaseRiskSteward":[14514],"CollateralFactorsRiskSteward":[14976],"ICorePoolComptroller":[20347],"ICorePoolVToken":[20370],"IIsolatedPoolsComptroller":[20452],"IRiskStewardReceiver":[17139],"RiskParameterUpdate":[16568],"ensureNonzeroAddress":[10945]},"id":14977,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":14516,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:61"},{"absolutePath":"contracts/RiskSteward/Interfaces/IRiskOracle.sol","file":"./Interfaces/IRiskOracle.sol","id":14518,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14977,"sourceUnit":16809,"src":"66:67:61","symbolAliases":[{"foreign":{"id":14517,"name":"RiskParameterUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16568,"src":"75:19:61","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/ICorePoolVToken.sol","file":"../interfaces/ICorePoolVToken.sol","id":14520,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14977,"sourceUnit":20371,"src":"134:68:61","symbolAliases":[{"foreign":{"id":14519,"name":"ICorePoolVToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20370,"src":"143:15:61","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/ICorePoolComptroller.sol","file":"../interfaces/ICorePoolComptroller.sol","id":14522,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14977,"sourceUnit":20348,"src":"203:78:61","symbolAliases":[{"foreign":{"id":14521,"name":"ICorePoolComptroller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20347,"src":"212:20:61","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IIsolatedPoolsComptroller.sol","file":"../interfaces/IIsolatedPoolsComptroller.sol","id":14524,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14977,"sourceUnit":20453,"src":"282:88:61","symbolAliases":[{"foreign":{"id":14523,"name":"IIsolatedPoolsComptroller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20452,"src":"291:25:61","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/RiskSteward/Interfaces/IRiskStewardReceiver.sol","file":"./Interfaces/IRiskStewardReceiver.sol","id":14526,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14977,"sourceUnit":17140,"src":"371:77:61","symbolAliases":[{"foreign":{"id":14525,"name":"IRiskStewardReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17139,"src":"380:20:61","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/RiskSteward/BaseRiskSteward.sol","file":"./BaseRiskSteward.sol","id":14528,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14977,"sourceUnit":14515,"src":"449:56:61","symbolAliases":[{"foreign":{"id":14527,"name":"BaseRiskSteward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14514,"src":"458:15:61","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/validators.sol","file":"@venusprotocol/solidity-utilities/contracts/validators.sol","id":14530,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14977,"sourceUnit":10961,"src":"506:98:61","symbolAliases":[{"foreign":{"id":14529,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10945,"src":"515:20:61","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":14532,"name":"BaseRiskSteward","nameLocations":["923:15:61"],"nodeType":"IdentifierPath","referencedDeclaration":14514,"src":"923:15:61"},"id":14533,"nodeType":"InheritanceSpecifier","src":"923:15:61"}],"canonicalName":"CollateralFactorsRiskSteward","contractDependencies":[],"contractKind":"contract","documentation":{"id":14531,"nodeType":"StructuredDocumentation","src":"606:275:61","text":" @title CollateralFactorsRiskSteward\n @author Venus\n @notice Contract that can update collateral factors and liquidation thresholds received from `RiskStewardReceiver`.\n @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion"},"fullyImplemented":true,"id":14976,"linearizedBaseContracts":[14976,14514,13858,5947,6079,6574,6248,16839],"name":"CollateralFactorsRiskSteward","nameLocation":"891:28:61","nodeType":"ContractDefinition","nodes":[{"constant":true,"documentation":{"id":14534,"nodeType":"StructuredDocumentation","src":"945:91:61","text":" @notice The update type for collateral factor and liquidation threshold."},"functionSelector":"12cc2647","id":14537,"mutability":"constant","name":"COLLATERAL_FACTORS","nameLocation":"1064:18:61","nodeType":"VariableDeclaration","scope":14976,"src":"1041:63:61","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14535,"name":"string","nodeType":"ElementaryTypeName","src":"1041:6:61","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"636f6c6c61746572616c466163746f7273","id":14536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1085:19:61","typeDescriptions":{"typeIdentifier":"t_stringliteral_8370b9108dc54d549f7f967730058d7047833aa4750d10ac92879dc48e94db68","typeString":"literal_string \"collateralFactors\""},"value":"collateralFactors"},"visibility":"public"},{"constant":true,"documentation":{"id":14538,"nodeType":"StructuredDocumentation","src":"1111:108:61","text":" @notice The update type key for collateral factors (keccak256 hash of COLLATERAL_FACTORS)"},"functionSelector":"e62569be","id":14546,"mutability":"constant","name":"COLLATERAL_FACTORS_KEY","nameLocation":"1248:22:61","nodeType":"VariableDeclaration","scope":14976,"src":"1224:85:61","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14539,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1224:7:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"arguments":[{"id":14543,"name":"COLLATERAL_FACTORS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14537,"src":"1289:18:61","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":14542,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1283:5:61","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":14541,"name":"bytes","nodeType":"ElementaryTypeName","src":"1283:5:61","typeDescriptions":{}}},"id":14544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1283:25:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14540,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1273:9:61","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":14545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1273:36:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":false,"documentation":{"id":14547,"nodeType":"StructuredDocumentation","src":"1316:333:61","text":" @notice Address of the BNB Core Pool Comptroller.\n @dev This comptroller is specific to the BNB Core Pool, which uses a different ABI\n      than isolated pools. It is used solely to detect and handle BNB Core Pool\n      markets, and would not be used for remote-chain (isolated pool) deployments."},"functionSelector":"fa7b81a0","id":14550,"mutability":"immutable","name":"CORE_POOL_COMPTROLLER","nameLocation":"1692:21:61","nodeType":"VariableDeclaration","scope":14976,"src":"1654:59:61","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ICorePoolComptroller_$20347","typeString":"contract ICorePoolComptroller"},"typeName":{"id":14549,"nodeType":"UserDefinedTypeName","pathNode":{"id":14548,"name":"ICorePoolComptroller","nameLocations":["1654:20:61"],"nodeType":"IdentifierPath","referencedDeclaration":20347,"src":"1654:20:61"},"referencedDeclaration":20347,"src":"1654:20:61","typeDescriptions":{"typeIdentifier":"t_contract$_ICorePoolComptroller_$20347","typeString":"contract ICorePoolComptroller"}},"visibility":"public"},{"baseFunctions":[16822],"constant":false,"documentation":{"id":14551,"nodeType":"StructuredDocumentation","src":"1720:111:61","text":" @notice Address of the `RiskStewardReceiver` used to validate and dispatch incoming updates."},"functionSelector":"b296e6cb","id":14554,"mutability":"immutable","name":"RISK_STEWARD_RECEIVER","nameLocation":"1874:21:61","nodeType":"VariableDeclaration","scope":14976,"src":"1836:59:61","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskStewardReceiver_$17139","typeString":"contract IRiskStewardReceiver"},"typeName":{"id":14553,"nodeType":"UserDefinedTypeName","pathNode":{"id":14552,"name":"IRiskStewardReceiver","nameLocations":["1836:20:61"],"nodeType":"IdentifierPath","referencedDeclaration":17139,"src":"1836:20:61"},"referencedDeclaration":17139,"src":"1836:20:61","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskStewardReceiver_$17139","typeString":"contract IRiskStewardReceiver"}},"visibility":"public"},{"constant":false,"documentation":{"id":14555,"nodeType":"StructuredDocumentation","src":"1902:55:61","text":" @dev Storage gap for upgradeability."},"id":14559,"mutability":"mutable","name":"__gap","nameLocation":"1982:5:61","nodeType":"VariableDeclaration","scope":14976,"src":"1962:25:61","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage","typeString":"uint256[49]"},"typeName":{"baseType":{"id":14556,"name":"uint256","nodeType":"ElementaryTypeName","src":"1962:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14558,"length":{"hexValue":"3439","id":14557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1970:2:61","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"49"},"nodeType":"ArrayTypeName","src":"1962:11:61","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage_ptr","typeString":"uint256[49]"}},"visibility":"private"},{"anonymous":false,"documentation":{"id":14560,"nodeType":"StructuredDocumentation","src":"1994:71:61","text":" @notice Emitted when collateral factors are updated."},"eventSelector":"345175133778c4fdb297de94ca161a1248998f240be2ae89b35225d0167e0648","id":14570,"name":"CollateralFactorsUpdated","nameLocation":"2076:24:61","nodeType":"EventDefinition","parameters":{"id":14569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14562,"indexed":true,"mutability":"mutable","name":"updateId","nameLocation":"2126:8:61","nodeType":"VariableDeclaration","scope":14570,"src":"2110:24:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14561,"name":"uint256","nodeType":"ElementaryTypeName","src":"2110:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14564,"indexed":true,"mutability":"mutable","name":"market","nameLocation":"2160:6:61","nodeType":"VariableDeclaration","scope":14570,"src":"2144:22:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14563,"name":"address","nodeType":"ElementaryTypeName","src":"2144:7:61","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14566,"indexed":false,"mutability":"mutable","name":"newCollateralFactor","nameLocation":"2184:19:61","nodeType":"VariableDeclaration","scope":14570,"src":"2176:27:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14565,"name":"uint256","nodeType":"ElementaryTypeName","src":"2176:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14568,"indexed":false,"mutability":"mutable","name":"newLiquidationThreshold","nameLocation":"2221:23:61","nodeType":"VariableDeclaration","scope":14570,"src":"2213:31:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14567,"name":"uint256","nodeType":"ElementaryTypeName","src":"2213:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2100:150:61"},"src":"2070:181:61"},{"anonymous":false,"documentation":{"id":14571,"nodeType":"StructuredDocumentation","src":"2257:70:61","text":" @notice Emitted when the safe delta bps is updated."},"eventSelector":"a05c0cb0e77decc6503407c6ca159106b8b001d9feb7927d08fad60094a934ab","id":14577,"name":"SafeDeltaBpsUpdated","nameLocation":"2338:19:61","nodeType":"EventDefinition","parameters":{"id":14576,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14573,"indexed":false,"mutability":"mutable","name":"oldSafeDeltaBps","nameLocation":"2366:15:61","nodeType":"VariableDeclaration","scope":14577,"src":"2358:23:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14572,"name":"uint256","nodeType":"ElementaryTypeName","src":"2358:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14575,"indexed":false,"mutability":"mutable","name":"newSafeDeltaBps","nameLocation":"2391:15:61","nodeType":"VariableDeclaration","scope":14577,"src":"2383:23:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14574,"name":"uint256","nodeType":"ElementaryTypeName","src":"2383:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2357:50:61"},"src":"2332:76:61"},{"documentation":{"id":14578,"nodeType":"StructuredDocumentation","src":"2414:88:61","text":" @notice Thrown when a `safeDeltaBps` value is greater than `MAX_BPS`."},"errorSelector":"c5147585","id":14580,"name":"InvalidSafeDeltaBps","nameLocation":"2513:19:61","nodeType":"ErrorDefinition","parameters":{"id":14579,"nodeType":"ParameterList","parameters":[],"src":"2532:2:61"},"src":"2507:28:61"},{"documentation":{"id":14581,"nodeType":"StructuredDocumentation","src":"2541:87:61","text":" @notice Thrown when Core Pool Comptroller.setCollateralFactor fails."},"errorSelector":"f69d2099","id":14585,"name":"SetCollateralFactorFailed","nameLocation":"2639:25:61","nodeType":"ErrorDefinition","parameters":{"id":14584,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14583,"mutability":"mutable","name":"errorCode","nameLocation":"2673:9:61","nodeType":"VariableDeclaration","scope":14585,"src":"2665:17:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14582,"name":"uint256","nodeType":"ElementaryTypeName","src":"2665:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2664:19:61"},"src":"2633:51:61"},{"documentation":{"id":14586,"nodeType":"StructuredDocumentation","src":"2690:121:61","text":" @notice Thrown when an invalid pool configuration is used (non-core comptroller with non-zero poolId)."},"errorSelector":"2083cd40","id":14588,"name":"InvalidPool","nameLocation":"2822:11:61","nodeType":"ErrorDefinition","parameters":{"id":14587,"nodeType":"ParameterList","parameters":[],"src":"2833:2:61"},"src":"2816:20:61"},{"documentation":{"id":14589,"nodeType":"StructuredDocumentation","src":"2842:91:61","text":" @notice Thrown when an update type that is not supported is operated on."},"errorSelector":"80919d7b","id":14591,"name":"UnsupportedUpdateType","nameLocation":"2944:21:61","nodeType":"ErrorDefinition","parameters":{"id":14590,"nodeType":"ParameterList","parameters":[],"src":"2965:2:61"},"src":"2938:30:61"},{"documentation":{"id":14592,"nodeType":"StructuredDocumentation","src":"2974:95:61","text":" @notice Thrown when the update is not coming from the `RiskStewardReceiver`."},"errorSelector":"3a739dd7","id":14594,"name":"OnlyRiskStewardReceiver","nameLocation":"3080:23:61","nodeType":"ErrorDefinition","parameters":{"id":14593,"nodeType":"ParameterList","parameters":[],"src":"3103:2:61"},"src":"3074:32:61"},{"documentation":{"id":14595,"nodeType":"StructuredDocumentation","src":"3112:77:61","text":" @notice Thrown when the two uint256 data length is invalid"},"errorSelector":"3bead5a9","id":14597,"name":"InvalidTwoUintLength","nameLocation":"3200:20:61","nodeType":"ErrorDefinition","parameters":{"id":14596,"nodeType":"ParameterList","parameters":[],"src":"3220:2:61"},"src":"3194:29:61"},{"documentation":{"id":14598,"nodeType":"StructuredDocumentation","src":"3229:92:61","text":" @notice Thrown when attempting to apply a redundant value (no-op change)."},"errorSelector":"925cd795","id":14600,"name":"RedundantValue","nameLocation":"3332:14:61","nodeType":"ErrorDefinition","parameters":{"id":14599,"nodeType":"ParameterList","parameters":[],"src":"3346:2:61"},"src":"3326:23:61"},{"body":{"id":14627,"nodeType":"Block","src":"3853:243:61","statements":[{"expression":{"arguments":[{"id":14609,"name":"riskStewardReceiver_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14605,"src":"3884:20:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14608,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10945,"src":"3863:20:61","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":14610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3863:42:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14611,"nodeType":"ExpressionStatement","src":"3863:42:61"},{"expression":{"id":14616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14612,"name":"CORE_POOL_COMPTROLLER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14550,"src":"3915:21:61","typeDescriptions":{"typeIdentifier":"t_contract$_ICorePoolComptroller_$20347","typeString":"contract ICorePoolComptroller"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":14614,"name":"corePoolComptroller_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14603,"src":"3960:20:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14613,"name":"ICorePoolComptroller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20347,"src":"3939:20:61","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ICorePoolComptroller_$20347_$","typeString":"type(contract ICorePoolComptroller)"}},"id":14615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3939:42:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ICorePoolComptroller_$20347","typeString":"contract ICorePoolComptroller"}},"src":"3915:66:61","typeDescriptions":{"typeIdentifier":"t_contract$_ICorePoolComptroller_$20347","typeString":"contract ICorePoolComptroller"}},"id":14617,"nodeType":"ExpressionStatement","src":"3915:66:61"},{"expression":{"id":14622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14618,"name":"RISK_STEWARD_RECEIVER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14554,"src":"3991:21:61","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskStewardReceiver_$17139","typeString":"contract IRiskStewardReceiver"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":14620,"name":"riskStewardReceiver_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14605,"src":"4036:20:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14619,"name":"IRiskStewardReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17139,"src":"4015:20:61","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRiskStewardReceiver_$17139_$","typeString":"type(contract IRiskStewardReceiver)"}},"id":14621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4015:42:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRiskStewardReceiver_$17139","typeString":"contract IRiskStewardReceiver"}},"src":"3991:66:61","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskStewardReceiver_$17139","typeString":"contract IRiskStewardReceiver"}},"id":14623,"nodeType":"ExpressionStatement","src":"3991:66:61"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":14624,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6229,"src":"4067:20:61","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":14625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4067:22:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14626,"nodeType":"ExpressionStatement","src":"4067:22:61"}]},"documentation":{"id":14601,"nodeType":"StructuredDocumentation","src":"3355:421:61","text":" @notice Sets the immutable `CORE_POOL_COMPTROLLER` and `RISK_STEWARD_RECEIVER` addresses and disables initializers.\n @param corePoolComptroller_ The address of the Core Pool Comptroller\n @param riskStewardReceiver_ The address of the `RiskStewardReceiver`\n @custom:error Throws ZeroAddressNotAllowed if any of the addresses are zero\n @custom:oz-upgrades-unsafe-allow constructor"},"id":14628,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":14606,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14603,"mutability":"mutable","name":"corePoolComptroller_","nameLocation":"3801:20:61","nodeType":"VariableDeclaration","scope":14628,"src":"3793:28:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14602,"name":"address","nodeType":"ElementaryTypeName","src":"3793:7:61","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14605,"mutability":"mutable","name":"riskStewardReceiver_","nameLocation":"3831:20:61","nodeType":"VariableDeclaration","scope":14628,"src":"3823:28:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14604,"name":"address","nodeType":"ElementaryTypeName","src":"3823:7:61","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3792:60:61"},"returnParameters":{"id":14607,"nodeType":"ParameterList","parameters":[],"src":"3853:0:61"},"scope":14976,"src":"3781:315:61","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":14640,"nodeType":"Block","src":"4342:63:61","statements":[{"expression":{"arguments":[{"id":14637,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14631,"src":"4376:21:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14636,"name":"__AccessControlled_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13754,"src":"4352:23:61","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":14638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4352:46:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14639,"nodeType":"ExpressionStatement","src":"4352:46:61"}]},"documentation":{"id":14629,"nodeType":"StructuredDocumentation","src":"4102:163:61","text":" @notice Initializes the contract as ownable and access controlled.\n @param accessControlManager_ The address of the access control manager"},"functionSelector":"c4d66de8","id":14641,"implemented":true,"kind":"function","modifiers":[{"id":14634,"kind":"modifierInvocation","modifierName":{"id":14633,"name":"initializer","nameLocations":["4330:11:61"],"nodeType":"IdentifierPath","referencedDeclaration":6150,"src":"4330:11:61"},"nodeType":"ModifierInvocation","src":"4330:11:61"}],"name":"initialize","nameLocation":"4279:10:61","nodeType":"FunctionDefinition","parameters":{"id":14632,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14631,"mutability":"mutable","name":"accessControlManager_","nameLocation":"4298:21:61","nodeType":"VariableDeclaration","scope":14641,"src":"4290:29:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14630,"name":"address","nodeType":"ElementaryTypeName","src":"4290:7:61","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4289:31:61"},"returnParameters":{"id":14635,"nodeType":"ParameterList","parameters":[],"src":"4342:0:61"},"scope":14976,"src":"4270:135:61","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":14680,"nodeType":"Block","src":"4908:403:61","statements":[{"expression":{"arguments":[{"hexValue":"7365745361666544656c74614270732875696e7432353629","id":14648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4938:26:61","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c47d86f66d7d6df66346e87beecbc737575b49dde9b0174530ed1b674481bcb","typeString":"literal_string \"setSafeDeltaBps(uint256)\""},"value":"setSafeDeltaBps(uint256)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2c47d86f66d7d6df66346e87beecbc737575b49dde9b0174530ed1b674481bcb","typeString":"literal_string \"setSafeDeltaBps(uint256)\""}],"id":14647,"name":"_checkAccessAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13857,"src":"4918:19:61","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":14649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4918:47:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14650,"nodeType":"ExpressionStatement","src":"4918:47:61"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14651,"name":"safeDeltaBps_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14644,"src":"4979:13:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":14652,"name":"MAX_BPS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14461,"src":"4995:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4979:23:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14658,"nodeType":"IfStatement","src":"4975:82:61","trueBody":{"id":14657,"nodeType":"Block","src":"5004:53:61","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":14654,"name":"InvalidSafeDeltaBps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14580,"src":"5025:19:61","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":14655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5025:21:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14656,"nodeType":"RevertStatement","src":"5018:28:61"}]}},{"assignments":[14660],"declarations":[{"constant":false,"id":14660,"mutability":"mutable","name":"oldSafeDeltaBps","nameLocation":"5074:15:61","nodeType":"VariableDeclaration","scope":14680,"src":"5066:23:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14659,"name":"uint256","nodeType":"ElementaryTypeName","src":"5066:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14662,"initialValue":{"id":14661,"name":"safeDeltaBps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14464,"src":"5092:12:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5066:38:61"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14663,"name":"safeDeltaBps_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14644,"src":"5119:13:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":14664,"name":"oldSafeDeltaBps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14660,"src":"5136:15:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5119:32:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14670,"nodeType":"IfStatement","src":"5115:86:61","trueBody":{"id":14669,"nodeType":"Block","src":"5153:48:61","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":14666,"name":"RedundantValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14600,"src":"5174:14:61","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":14667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5174:16:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14668,"nodeType":"RevertStatement","src":"5167:23:61"}]}},{"expression":{"id":14673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14671,"name":"safeDeltaBps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14464,"src":"5210:12:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":14672,"name":"safeDeltaBps_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14644,"src":"5225:13:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5210:28:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14674,"nodeType":"ExpressionStatement","src":"5210:28:61"},{"eventCall":{"arguments":[{"id":14676,"name":"oldSafeDeltaBps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14660,"src":"5273:15:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14677,"name":"safeDeltaBps_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14644,"src":"5290:13:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14675,"name":"SafeDeltaBpsUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14577,"src":"5253:19:61","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":14678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5253:51:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14679,"nodeType":"EmitStatement","src":"5248:56:61"}]},"documentation":{"id":14642,"nodeType":"StructuredDocumentation","src":"4411:435:61","text":" @notice Sets the safe delta bps.\n @param safeDeltaBps_ The new safe delta bps\n @custom:access Controlled by AccessControlManager\n @custom:event Emits SafeDeltaBpsUpdated with the old and new safe delta bps\n @custom:error Throws InvalidSafeDeltaBps if the safe delta bps is greater than MAX_BPS\n @custom:error Throws RedundantValue if the new safe delta bps is equal to the current value"},"functionSelector":"2c47d86f","id":14681,"implemented":true,"kind":"function","modifiers":[],"name":"setSafeDeltaBps","nameLocation":"4860:15:61","nodeType":"FunctionDefinition","parameters":{"id":14645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14644,"mutability":"mutable","name":"safeDeltaBps_","nameLocation":"4884:13:61","nodeType":"VariableDeclaration","scope":14681,"src":"4876:21:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14643,"name":"uint256","nodeType":"ElementaryTypeName","src":"4876:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4875:23:61"},"returnParameters":{"id":14646,"nodeType":"ParameterList","parameters":[],"src":"4908:0:61"},"scope":14976,"src":"4851:460:61","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[16831],"body":{"id":14766,"nodeType":"Block","src":"5851:958:61","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":14693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14690,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14685,"src":"5865:6:61","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_calldata_ptr","typeString":"struct RiskParameterUpdate calldata"}},"id":14691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5872:13:61","memberName":"updateTypeKey","nodeType":"MemberAccess","referencedDeclaration":16553,"src":"5865:20:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":14692,"name":"COLLATERAL_FACTORS_KEY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14546,"src":"5889:22:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5865:46:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14762,"nodeType":"IfStatement","src":"5861:901:61","trueBody":{"id":14761,"nodeType":"Block","src":"5913:849:61","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint96","typeString":"uint96"},"id":14697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14694,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14685,"src":"6022:6:61","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_calldata_ptr","typeString":"struct RiskParameterUpdate calldata"}},"id":14695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6029:6:61","memberName":"poolId","nodeType":"MemberAccess","referencedDeclaration":16563,"src":"6022:13:61","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":14696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6039:1:61","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6022:18:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14700,"nodeType":"IfStatement","src":"6018:36:61","trueBody":{"expression":{"hexValue":"66616c7365","id":14698,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6049:5:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":14689,"id":14699,"nodeType":"Return","src":"6042:12:61"}},{"assignments":[14702],"declarations":[{"constant":false,"id":14702,"mutability":"mutable","name":"comptroller","nameLocation":"6077:11:61","nodeType":"VariableDeclaration","scope":14761,"src":"6069:19:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14701,"name":"address","nodeType":"ElementaryTypeName","src":"6069:7:61","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":14709,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":14704,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14685,"src":"6107:6:61","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_calldata_ptr","typeString":"struct RiskParameterUpdate calldata"}},"id":14705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6114:6:61","memberName":"market","nodeType":"MemberAccess","referencedDeclaration":16549,"src":"6107:13:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14703,"name":"ICorePoolVToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20370,"src":"6091:15:61","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ICorePoolVToken_$20370_$","typeString":"type(contract ICorePoolVToken)"}},"id":14706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6091:30:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ICorePoolVToken_$20370","typeString":"contract ICorePoolVToken"}},"id":14707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6122:11:61","memberName":"comptroller","nodeType":"MemberAccess","referencedDeclaration":20356,"src":"6091:42:61","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":14708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6091:44:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6069:66:61"},{"assignments":[14711,14713],"declarations":[{"constant":false,"id":14711,"mutability":"mutable","name":"newCF","nameLocation":"6159:5:61","nodeType":"VariableDeclaration","scope":14761,"src":"6151:13:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14710,"name":"uint256","nodeType":"ElementaryTypeName","src":"6151:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14713,"mutability":"mutable","name":"newLT","nameLocation":"6174:5:61","nodeType":"VariableDeclaration","scope":14761,"src":"6166:13:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14712,"name":"uint256","nodeType":"ElementaryTypeName","src":"6166:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14718,"initialValue":{"arguments":[{"expression":{"id":14715,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14685,"src":"6211:6:61","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_calldata_ptr","typeString":"struct RiskParameterUpdate calldata"}},"id":14716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6218:8:61","memberName":"newValue","nodeType":"MemberAccess","referencedDeclaration":16555,"src":"6211:15:61","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":14714,"name":"_decodeAbiEncodedTwoUint256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14975,"src":"6183:27:61","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256,uint256)"}},"id":14717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6183:44:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"6150:77:61"},{"assignments":[14720,14722],"declarations":[{"constant":false,"id":14720,"mutability":"mutable","name":"currCF","nameLocation":"6250:6:61","nodeType":"VariableDeclaration","scope":14761,"src":"6242:14:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14719,"name":"uint256","nodeType":"ElementaryTypeName","src":"6242:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14722,"mutability":"mutable","name":"currLT","nameLocation":"6266:6:61","nodeType":"VariableDeclaration","scope":14761,"src":"6258:14:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14721,"name":"uint256","nodeType":"ElementaryTypeName","src":"6258:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14728,"initialValue":{"arguments":[{"id":14724,"name":"comptroller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14702,"src":"6305:11:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":14725,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14685,"src":"6318:6:61","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_calldata_ptr","typeString":"struct RiskParameterUpdate calldata"}},"id":14726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6325:6:61","memberName":"market","nodeType":"MemberAccess","referencedDeclaration":16549,"src":"6318:13:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":14723,"name":"_getCurrentCollateralFactors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14941,"src":"6276:28:61","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address,address) view returns (uint256,uint256)"}},"id":14727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6276:56:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"6241:91:61"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14729,"name":"newCF","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14711,"src":"6434:5:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":14730,"name":"currCF","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14720,"src":"6443:6:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6434:15:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14732,"name":"newLT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14713,"src":"6453:5:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":14733,"name":"currLT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14722,"src":"6462:6:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6453:15:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6434:34:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14740,"nodeType":"IfStatement","src":"6430:96:61","trueBody":{"id":14739,"nodeType":"Block","src":"6470:56:61","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":14736,"name":"RedundantValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14600,"src":"6495:14:61","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":14737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6495:16:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14738,"nodeType":"RevertStatement","src":"6488:23:61"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14741,"name":"currCF","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14720,"src":"6619:6:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14742,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6629:1:61","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6619:11:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14744,"name":"currLT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14722,"src":"6634:6:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14745,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6644:1:61","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6634:11:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6619:26:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14750,"nodeType":"IfStatement","src":"6615:44:61","trueBody":{"expression":{"hexValue":"66616c7365","id":14748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6654:5:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":14689,"id":14749,"nodeType":"Return","src":"6647:12:61"}},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":14752,"name":"newCF","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14711,"src":"6700:5:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14753,"name":"currCF","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14720,"src":"6707:6:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14751,"name":"_isWithinSafeDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14513,"src":"6681:18:61","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) view returns (bool)"}},"id":14754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6681:33:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"arguments":[{"id":14756,"name":"newLT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14713,"src":"6737:5:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14757,"name":"currLT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14722,"src":"6744:6:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14755,"name":"_isWithinSafeDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14513,"src":"6718:18:61","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) view returns (bool)"}},"id":14758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6718:33:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6681:70:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14689,"id":14760,"nodeType":"Return","src":"6674:77:61"}]}},{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":14763,"name":"UnsupportedUpdateType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14591,"src":"6779:21:61","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":14764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6779:23:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14765,"nodeType":"RevertStatement","src":"6772:30:61"}]},"documentation":{"id":14682,"nodeType":"StructuredDocumentation","src":"5317:429:61","text":" @notice Checks if an update is safe for direct execution (no timelock required).\n @param update The update to check.\n @return True if update is safe for direct execution, false if timelock is required\n @custom:error Throws UnsupportedUpdateType if the update type is not supported\n @custom:error Throws RedundantValue if the new collateral factor and liquidation threshold are unchanged"},"functionSelector":"42b7cfbd","id":14767,"implemented":true,"kind":"function","modifiers":[],"name":"isSafeForDirectExecution","nameLocation":"5760:24:61","nodeType":"FunctionDefinition","parameters":{"id":14686,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14685,"mutability":"mutable","name":"update","nameLocation":"5814:6:61","nodeType":"VariableDeclaration","scope":14767,"src":"5785:35:61","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_calldata_ptr","typeString":"struct RiskParameterUpdate"},"typeName":{"id":14684,"nodeType":"UserDefinedTypeName","pathNode":{"id":14683,"name":"RiskParameterUpdate","nameLocations":["5785:19:61"],"nodeType":"IdentifierPath","referencedDeclaration":16568,"src":"5785:19:61"},"referencedDeclaration":16568,"src":"5785:19:61","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_storage_ptr","typeString":"struct RiskParameterUpdate"}},"visibility":"internal"}],"src":"5784:37:61"},"returnParameters":{"id":14689,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14688,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14767,"src":"5845:4:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14687,"name":"bool","nodeType":"ElementaryTypeName","src":"5845:4:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5844:6:61"},"scope":14976,"src":"5751:1058:61","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[16838],"body":{"id":14821,"nodeType":"Block","src":"7473:481:61","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14774,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7487:3:61","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7491:6:61","memberName":"sender","nodeType":"MemberAccess","src":"7487:10:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":14778,"name":"RISK_STEWARD_RECEIVER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14554,"src":"7509:21:61","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskStewardReceiver_$17139","typeString":"contract IRiskStewardReceiver"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRiskStewardReceiver_$17139","typeString":"contract IRiskStewardReceiver"}],"id":14777,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7501:7:61","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14776,"name":"address","nodeType":"ElementaryTypeName","src":"7501:7:61","typeDescriptions":{}}},"id":14779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7501:30:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7487:44:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14785,"nodeType":"IfStatement","src":"7483:107:61","trueBody":{"id":14784,"nodeType":"Block","src":"7533:57:61","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":14781,"name":"OnlyRiskStewardReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14594,"src":"7554:23:61","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":14782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7554:25:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14783,"nodeType":"RevertStatement","src":"7547:32:61"}]}},{"assignments":[14787],"declarations":[{"constant":false,"id":14787,"mutability":"mutable","name":"comptroller","nameLocation":"7608:11:61","nodeType":"VariableDeclaration","scope":14821,"src":"7600:19:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14786,"name":"address","nodeType":"ElementaryTypeName","src":"7600:7:61","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":14794,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":14789,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14771,"src":"7638:6:61","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_calldata_ptr","typeString":"struct RiskParameterUpdate calldata"}},"id":14790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7645:6:61","memberName":"market","nodeType":"MemberAccess","referencedDeclaration":16549,"src":"7638:13:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14788,"name":"ICorePoolVToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20370,"src":"7622:15:61","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ICorePoolVToken_$20370_$","typeString":"type(contract ICorePoolVToken)"}},"id":14791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7622:30:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ICorePoolVToken_$20370","typeString":"contract ICorePoolVToken"}},"id":14792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7653:11:61","memberName":"comptroller","nodeType":"MemberAccess","referencedDeclaration":20356,"src":"7622:42:61","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":14793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7622:44:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"7600:66:61"},{"assignments":[14796],"declarations":[{"constant":false,"id":14796,"mutability":"mutable","name":"poolId","nameLocation":"7683:6:61","nodeType":"VariableDeclaration","scope":14821,"src":"7676:13:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":14795,"name":"uint96","nodeType":"ElementaryTypeName","src":"7676:6:61","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"id":14799,"initialValue":{"expression":{"id":14797,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14771,"src":"7692:6:61","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_calldata_ptr","typeString":"struct RiskParameterUpdate calldata"}},"id":14798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7699:6:61","memberName":"poolId","nodeType":"MemberAccess","referencedDeclaration":16563,"src":"7692:13:61","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"VariableDeclarationStatement","src":"7676:29:61"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":14803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14800,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14771,"src":"7720:6:61","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_calldata_ptr","typeString":"struct RiskParameterUpdate calldata"}},"id":14801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7727:13:61","memberName":"updateTypeKey","nodeType":"MemberAccess","referencedDeclaration":16553,"src":"7720:20:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":14802,"name":"COLLATERAL_FACTORS_KEY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14546,"src":"7744:22:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7720:46:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14819,"nodeType":"Block","src":"7893:55:61","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":14816,"name":"UnsupportedUpdateType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14591,"src":"7914:21:61","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":14817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7914:23:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14818,"nodeType":"RevertStatement","src":"7907:30:61"}]},"id":14820,"nodeType":"IfStatement","src":"7716:232:61","trueBody":{"id":14815,"nodeType":"Block","src":"7768:119:61","statements":[{"expression":{"arguments":[{"expression":{"id":14805,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14771,"src":"7807:6:61","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_calldata_ptr","typeString":"struct RiskParameterUpdate calldata"}},"id":14806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7814:8:61","memberName":"updateId","nodeType":"MemberAccess","referencedDeclaration":16547,"src":"7807:15:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14807,"name":"comptroller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14787,"src":"7824:11:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":14808,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14771,"src":"7837:6:61","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_calldata_ptr","typeString":"struct RiskParameterUpdate calldata"}},"id":14809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7844:6:61","memberName":"market","nodeType":"MemberAccess","referencedDeclaration":16549,"src":"7837:13:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14810,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14796,"src":"7852:6:61","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},{"expression":{"id":14811,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14771,"src":"7860:6:61","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_calldata_ptr","typeString":"struct RiskParameterUpdate calldata"}},"id":14812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7867:8:61","memberName":"newValue","nodeType":"MemberAccess","referencedDeclaration":16555,"src":"7860:15:61","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint96","typeString":"uint96"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":14804,"name":"_updateCollateralFactors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14897,"src":"7782:24:61","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_uint96_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint256,address,address,uint96,bytes memory)"}},"id":14813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7782:94:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14814,"nodeType":"ExpressionStatement","src":"7782:94:61"}]}}]},"documentation":{"id":14768,"nodeType":"StructuredDocumentation","src":"6815:586:61","text":" @notice Applies a collateral parameter update from the `RiskStewardReceiver`.\n         Delta validation and timelock checks are already performed by `RiskStewardReceiver` before execution.\n @param update RiskParameterUpdate update to apply\n @custom:access Only callable by the `RiskStewardReceiver`\n @custom:event Emits CollateralFactorsUpdated with updateId\n @custom:error Throws OnlyRiskStewardReceiver if the sender is not the `RiskStewardReceiver`\n @custom:error Throws UnsupportedUpdateType if the update type is not supported"},"functionSelector":"bf637839","id":14822,"implemented":true,"kind":"function","modifiers":[],"name":"applyUpdate","nameLocation":"7415:11:61","nodeType":"FunctionDefinition","parameters":{"id":14772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14771,"mutability":"mutable","name":"update","nameLocation":"7456:6:61","nodeType":"VariableDeclaration","scope":14822,"src":"7427:35:61","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_calldata_ptr","typeString":"struct RiskParameterUpdate"},"typeName":{"id":14770,"nodeType":"UserDefinedTypeName","pathNode":{"id":14769,"name":"RiskParameterUpdate","nameLocations":["7427:19:61"],"nodeType":"IdentifierPath","referencedDeclaration":16568,"src":"7427:19:61"},"referencedDeclaration":16568,"src":"7427:19:61","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_storage_ptr","typeString":"struct RiskParameterUpdate"}},"visibility":"internal"}],"src":"7426:37:61"},"returnParameters":{"id":14773,"nodeType":"ParameterList","parameters":[],"src":"7473:0:61"},"scope":14976,"src":"7406:548:61","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":14896,"nodeType":"Block","src":"9035:856:61","statements":[{"assignments":[14837,14839],"declarations":[{"constant":false,"id":14837,"mutability":"mutable","name":"newCollateralFactor","nameLocation":"9054:19:61","nodeType":"VariableDeclaration","scope":14896,"src":"9046:27:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14836,"name":"uint256","nodeType":"ElementaryTypeName","src":"9046:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14839,"mutability":"mutable","name":"newLiquidationThreshold","nameLocation":"9083:23:61","nodeType":"VariableDeclaration","scope":14896,"src":"9075:31:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14838,"name":"uint256","nodeType":"ElementaryTypeName","src":"9075:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14843,"initialValue":{"arguments":[{"id":14841,"name":"newValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14833,"src":"9138:8:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14840,"name":"_decodeAbiEncodedTwoUint256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14975,"src":"9110:27:61","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256,uint256)"}},"id":14842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9110:37:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"9045:102:61"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14844,"name":"comptroller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14827,"src":"9162:11:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":14847,"name":"CORE_POOL_COMPTROLLER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14550,"src":"9185:21:61","typeDescriptions":{"typeIdentifier":"t_contract$_ICorePoolComptroller_$20347","typeString":"contract ICorePoolComptroller"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ICorePoolComptroller_$20347","typeString":"contract ICorePoolComptroller"}],"id":14846,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9177:7:61","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14845,"name":"address","nodeType":"ElementaryTypeName","src":"9177:7:61","typeDescriptions":{}}},"id":14848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9177:30:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9162:45:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14887,"nodeType":"Block","src":"9530:251:61","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint96","typeString":"uint96"},"id":14873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14871,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14831,"src":"9548:6:61","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":14872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9558:1:61","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9548:11:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14877,"nodeType":"IfStatement","src":"9544:37:61","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":14874,"name":"InvalidPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14588,"src":"9568:11:61","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":14875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9568:13:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14876,"nodeType":"RevertStatement","src":"9561:20:61"}},{"expression":{"arguments":[{"id":14882,"name":"market","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14829,"src":"9672:6:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14883,"name":"newCollateralFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14837,"src":"9696:19:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14884,"name":"newLiquidationThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14839,"src":"9733:23:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":14879,"name":"comptroller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14827,"src":"9622:11:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14878,"name":"IIsolatedPoolsComptroller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20452,"src":"9596:25:61","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IIsolatedPoolsComptroller_$20452_$","typeString":"type(contract IIsolatedPoolsComptroller)"}},"id":14880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9596:38:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IIsolatedPoolsComptroller_$20452","typeString":"contract IIsolatedPoolsComptroller"}},"id":14881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9635:19:61","memberName":"setCollateralFactor","nodeType":"MemberAccess","referencedDeclaration":20440,"src":"9596:58:61","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256) external"}},"id":14885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9596:174:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14886,"nodeType":"ExpressionStatement","src":"9596:174:61"}]},"id":14888,"nodeType":"IfStatement","src":"9158:623:61","trueBody":{"id":14870,"nodeType":"Block","src":"9209:315:61","statements":[{"assignments":[14851],"declarations":[{"constant":false,"id":14851,"mutability":"mutable","name":"errorCode","nameLocation":"9231:9:61","nodeType":"VariableDeclaration","scope":14870,"src":"9223:17:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14850,"name":"uint256","nodeType":"ElementaryTypeName","src":"9223:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14861,"initialValue":{"arguments":[{"id":14856,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14831,"src":"9314:6:61","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},{"id":14857,"name":"market","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14829,"src":"9338:6:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14858,"name":"newCollateralFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14837,"src":"9362:19:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14859,"name":"newLiquidationThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14839,"src":"9399:23:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint96","typeString":"uint96"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":14853,"name":"comptroller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14827,"src":"9264:11:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14852,"name":"ICorePoolComptroller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20347,"src":"9243:20:61","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ICorePoolComptroller_$20347_$","typeString":"type(contract ICorePoolComptroller)"}},"id":14854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9243:33:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ICorePoolComptroller_$20347","typeString":"contract ICorePoolComptroller"}},"id":14855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9277:19:61","memberName":"setCollateralFactor","nodeType":"MemberAccess","referencedDeclaration":20295,"src":"9243:53:61","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint96_$_t_address_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint96,address,uint256,uint256) external returns (uint256)"}},"id":14860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9243:193:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9223:213:61"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14862,"name":"errorCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14851,"src":"9454:9:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":14863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9467:1:61","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9454:14:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14869,"nodeType":"IfStatement","src":"9450:63:61","trueBody":{"errorCall":{"arguments":[{"id":14866,"name":"errorCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14851,"src":"9503:9:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14865,"name":"SetCollateralFactorFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14585,"src":"9477:25:61","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":14867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9477:36:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14868,"nodeType":"RevertStatement","src":"9470:43:61"}}]}},{"eventCall":{"arguments":[{"id":14890,"name":"updateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14825,"src":"9821:8:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14891,"name":"market","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14829,"src":"9831:6:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14892,"name":"newCollateralFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14837,"src":"9839:19:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14893,"name":"newLiquidationThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14839,"src":"9860:23:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14889,"name":"CollateralFactorsUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14570,"src":"9796:24:61","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,address,uint256,uint256)"}},"id":14894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9796:88:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14895,"nodeType":"EmitStatement","src":"9791:93:61"}]},"documentation":{"id":14823,"nodeType":"StructuredDocumentation","src":"7960:888:61","text":" @notice Updates the collateral factors for the given market.\n @dev Updates both collateral factor and liquidation threshold together (same setter).\n @param updateId The update ID from the Risk Oracle\n @param comptroller The comptroller address\n @param market The market to update the collateral factors for\n @param poolId The pool identifier for eMode updates (0 for regular market updates)\n @param newValue Encoded new collateral factors: `abi.encode(uint256 newCollateralFactor, uint256 newLiquidationThreshold)`\n @custom:error Throws SetCollateralFactorFailed if the core pool comptroller call to setCollateralFactor returns a non‑zero error code\n @custom:error Throws InvalidPool if a non‑core comptroller is used together with a non‑zero poolId\n @custom:event Emits CollateralFactorsUpdated with updateId"},"id":14897,"implemented":true,"kind":"function","modifiers":[],"name":"_updateCollateralFactors","nameLocation":"8862:24:61","nodeType":"FunctionDefinition","parameters":{"id":14834,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14825,"mutability":"mutable","name":"updateId","nameLocation":"8904:8:61","nodeType":"VariableDeclaration","scope":14897,"src":"8896:16:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14824,"name":"uint256","nodeType":"ElementaryTypeName","src":"8896:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14827,"mutability":"mutable","name":"comptroller","nameLocation":"8930:11:61","nodeType":"VariableDeclaration","scope":14897,"src":"8922:19:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14826,"name":"address","nodeType":"ElementaryTypeName","src":"8922:7:61","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14829,"mutability":"mutable","name":"market","nameLocation":"8959:6:61","nodeType":"VariableDeclaration","scope":14897,"src":"8951:14:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14828,"name":"address","nodeType":"ElementaryTypeName","src":"8951:7:61","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14831,"mutability":"mutable","name":"poolId","nameLocation":"8982:6:61","nodeType":"VariableDeclaration","scope":14897,"src":"8975:13:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":14830,"name":"uint96","nodeType":"ElementaryTypeName","src":"8975:6:61","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":14833,"mutability":"mutable","name":"newValue","nameLocation":"9011:8:61","nodeType":"VariableDeclaration","scope":14897,"src":"8998:21:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":14832,"name":"bytes","nodeType":"ElementaryTypeName","src":"8998:5:61","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8886:139:61"},"returnParameters":{"id":14835,"nodeType":"ParameterList","parameters":[],"src":"9035:0:61"},"scope":14976,"src":"8853:1038:61","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":14940,"nodeType":"Block","src":"10574:399:61","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14909,"name":"comptroller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14900,"src":"10588:11:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":14912,"name":"CORE_POOL_COMPTROLLER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14550,"src":"10611:21:61","typeDescriptions":{"typeIdentifier":"t_contract$_ICorePoolComptroller_$20347","typeString":"contract ICorePoolComptroller"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ICorePoolComptroller_$20347","typeString":"contract ICorePoolComptroller"}],"id":14911,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10603:7:61","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14910,"name":"address","nodeType":"ElementaryTypeName","src":"10603:7:61","typeDescriptions":{}}},"id":14913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10603:30:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10588:45:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14938,"nodeType":"Block","src":"10799:168:61","statements":[{"expression":{"id":14936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[null,{"id":14927,"name":"currentCollateralFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14905,"src":"10816:23:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14928,"name":"currentLiquidationThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14907,"src":"10841:27:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":14929,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"10813:56:61","typeDescriptions":{"typeIdentifier":"t_tuple$__$_t_uint256_$_t_uint256_$","typeString":"tuple(,uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":14934,"name":"market","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14902,"src":"10936:6:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":14931,"name":"comptroller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14900,"src":"10898:11:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14930,"name":"IIsolatedPoolsComptroller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20452,"src":"10872:25:61","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IIsolatedPoolsComptroller_$20452_$","typeString":"type(contract IIsolatedPoolsComptroller)"}},"id":14932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10872:38:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IIsolatedPoolsComptroller_$20452","typeString":"contract IIsolatedPoolsComptroller"}},"id":14933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10911:7:61","memberName":"markets","nodeType":"MemberAccess","referencedDeclaration":20451,"src":"10872:46:61","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"function (address) view external returns (bool,uint256,uint256)"}},"id":14935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10872:84:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,uint256,uint256)"}},"src":"10813:143:61","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14937,"nodeType":"ExpressionStatement","src":"10813:143:61"}]},"id":14939,"nodeType":"IfStatement","src":"10584:383:61","trueBody":{"id":14926,"nodeType":"Block","src":"10635:158:61","statements":[{"expression":{"id":14924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[null,{"id":14915,"name":"currentCollateralFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14905,"src":"10652:23:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},null,{"id":14916,"name":"currentLiquidationThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14907,"src":"10679:27:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},null,null,null],"id":14917,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"10649:64:61","typeDescriptions":{"typeIdentifier":"t_tuple$__$_t_uint256_$__$_t_uint256_$__$__$__$","typeString":"tuple(,uint256,,uint256,,,)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":14922,"name":"market","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14902,"src":"10775:6:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":14919,"name":"comptroller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14900,"src":"10737:11:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14918,"name":"ICorePoolComptroller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20347,"src":"10716:20:61","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ICorePoolComptroller_$20347_$","typeString":"type(contract ICorePoolComptroller)"}},"id":14920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10716:33:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ICorePoolComptroller_$20347","typeString":"contract ICorePoolComptroller"}},"id":14921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10767:7:61","memberName":"markets","nodeType":"MemberAccess","referencedDeclaration":20325,"src":"10716:58:61","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$_t_uint256_$_t_bool_$_t_uint256_$_t_uint256_$_t_uint96_$_t_bool_$","typeString":"function (address) view external returns (bool,uint256,bool,uint256,uint256,uint96,bool)"}},"id":14923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10716:66:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_bool_$_t_uint256_$_t_uint256_$_t_uint96_$_t_bool_$","typeString":"tuple(bool,uint256,bool,uint256,uint256,uint96,bool)"}},"src":"10649:133:61","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14925,"nodeType":"ExpressionStatement","src":"10649:133:61"}]}}]},"documentation":{"id":14898,"nodeType":"StructuredDocumentation","src":"9897:482:61","text":" @notice Returns the current collateral factors for a market on a given comptroller.\n @dev Returns both collateral factor and liquidation threshold (updated together via the same setter).\n @param comptroller The comptroller address\n @param market The market whose collateral factors are being queried\n @return currentCollateralFactor The current collateral factor\n @return currentLiquidationThreshold The current liquidation threshold"},"id":14941,"implemented":true,"kind":"function","modifiers":[],"name":"_getCurrentCollateralFactors","nameLocation":"10393:28:61","nodeType":"FunctionDefinition","parameters":{"id":14903,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14900,"mutability":"mutable","name":"comptroller","nameLocation":"10439:11:61","nodeType":"VariableDeclaration","scope":14941,"src":"10431:19:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14899,"name":"address","nodeType":"ElementaryTypeName","src":"10431:7:61","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14902,"mutability":"mutable","name":"market","nameLocation":"10468:6:61","nodeType":"VariableDeclaration","scope":14941,"src":"10460:14:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14901,"name":"address","nodeType":"ElementaryTypeName","src":"10460:7:61","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10421:59:61"},"returnParameters":{"id":14908,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14905,"mutability":"mutable","name":"currentCollateralFactor","nameLocation":"10512:23:61","nodeType":"VariableDeclaration","scope":14941,"src":"10504:31:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14904,"name":"uint256","nodeType":"ElementaryTypeName","src":"10504:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14907,"mutability":"mutable","name":"currentLiquidationThreshold","nameLocation":"10545:27:61","nodeType":"VariableDeclaration","scope":14941,"src":"10537:35:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14906,"name":"uint256","nodeType":"ElementaryTypeName","src":"10537:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10503:70:61"},"scope":14976,"src":"10384:589:61","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":14974,"nodeType":"Block","src":"11444:148:61","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14951,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14944,"src":"11458:4:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":14952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11463:6:61","memberName":"length","nodeType":"MemberAccess","src":"11458:11:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3634","id":14953,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11473:2:61","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"11458:17:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14959,"nodeType":"IfStatement","src":"11454:77:61","trueBody":{"id":14958,"nodeType":"Block","src":"11477:54:61","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":14955,"name":"InvalidTwoUintLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14597,"src":"11498:20:61","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":14956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11498:22:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14957,"nodeType":"RevertStatement","src":"11491:29:61"}]}},{"expression":{"id":14972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":14960,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14947,"src":"11541:1:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14961,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14949,"src":"11544:1:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":14962,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"11540:6:61","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":14965,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14944,"src":"11560:4:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":14967,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11567:7:61","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":14966,"name":"uint256","nodeType":"ElementaryTypeName","src":"11567:7:61","typeDescriptions":{}}},{"id":14969,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11576:7:61","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":14968,"name":"uint256","nodeType":"ElementaryTypeName","src":"11576:7:61","typeDescriptions":{}}}],"id":14970,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"11566:18:61","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(uint256),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(uint256),type(uint256))"}],"expression":{"id":14963,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11549:3:61","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14964,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11553:6:61","memberName":"decode","nodeType":"MemberAccess","src":"11549:10:61","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":14971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11549:36:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"11540:45:61","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14973,"nodeType":"ExpressionStatement","src":"11540:45:61"}]},"documentation":{"id":14942,"nodeType":"StructuredDocumentation","src":"10979:359:61","text":" @notice Decodes ABI-encoded bytes into two uint256 values.\n @dev Expects exactly 64 bytes as produced by abi.encode(uint256,uint256).\n @param data ABI-encoded (uint256, uint256) payload\n @return a First uint256\n @return b Second uint256\n @custom:error Throws InvalidTwoUintLength if data length is not 64 bytes"},"id":14975,"implemented":true,"kind":"function","modifiers":[],"name":"_decodeAbiEncodedTwoUint256","nameLocation":"11352:27:61","nodeType":"FunctionDefinition","parameters":{"id":14945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14944,"mutability":"mutable","name":"data","nameLocation":"11393:4:61","nodeType":"VariableDeclaration","scope":14975,"src":"11380:17:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":14943,"name":"bytes","nodeType":"ElementaryTypeName","src":"11380:5:61","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"11379:19:61"},"returnParameters":{"id":14950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14947,"mutability":"mutable","name":"a","nameLocation":"11430:1:61","nodeType":"VariableDeclaration","scope":14975,"src":"11422:9:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14946,"name":"uint256","nodeType":"ElementaryTypeName","src":"11422:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14949,"mutability":"mutable","name":"b","nameLocation":"11441:1:61","nodeType":"VariableDeclaration","scope":14975,"src":"11433:9:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14948,"name":"uint256","nodeType":"ElementaryTypeName","src":"11433:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11421:22:61"},"scope":14976,"src":"11343:249:61","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":14977,"src":"882:10712:61","usedErrors":[10924,13739,14467,14580,14585,14588,14591,14594,14597,14600],"usedEvents":[5873,5964,6094,13730,14570,14577]}],"src":"41:11554:61"},"id":61},"contracts/RiskSteward/DestinationStewardReceiver.sol":{"ast":{"absolutePath":"contracts/RiskSteward/DestinationStewardReceiver.sol","exportedSymbols":{"AccessControlledV8":[13858],"DestinationStewardReceiver":[16005],"IDestinationStewardReceiver":[16540],"IIsolatedPoolsComptroller":[20452],"IRiskSteward":[16839],"OAppCoreUpgradeable":[2027],"OAppReceiverUpgradeable":[2198],"Origin":[886],"Ownable2StepUpgradeable":[5947],"OwnableUpgradeable":[6079],"RiskParameterUpdate":[16568],"ensureNonzeroAddress":[10945]},"id":16006,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":14978,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:62"},{"absolutePath":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","id":14980,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16006,"sourceUnit":6080,"src":"66:103:62","symbolAliases":[{"foreign":{"id":14979,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6079,"src":"75:18:62","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol","id":14982,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16006,"sourceUnit":5948,"src":"170:113:62","symbolAliases":[{"foreign":{"id":14981,"name":"Ownable2StepUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5947,"src":"179:23:62","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/RiskSteward/Interfaces/IDestinationStewardReceiver.sol","file":"./Interfaces/IDestinationStewardReceiver.sol","id":14984,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16006,"sourceUnit":16541,"src":"284:91:62","symbolAliases":[{"foreign":{"id":14983,"name":"IDestinationStewardReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16540,"src":"293:27:62","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/RiskSteward/Interfaces/IRiskOracle.sol","file":"./Interfaces/IRiskOracle.sol","id":14986,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16006,"sourceUnit":16809,"src":"376:67:62","symbolAliases":[{"foreign":{"id":14985,"name":"RiskParameterUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16568,"src":"385:19:62","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/RiskSteward/Interfaces/IRiskSteward.sol","file":"./Interfaces/IRiskSteward.sol","id":14988,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16006,"sourceUnit":16840,"src":"444:61:62","symbolAliases":[{"foreign":{"id":14987,"name":"IRiskSteward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16839,"src":"453:12:62","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/validators.sol","file":"@venusprotocol/solidity-utilities/contracts/validators.sol","id":14990,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16006,"sourceUnit":10961,"src":"506:98:62","symbolAliases":[{"foreign":{"id":14989,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10945,"src":"515:20:62","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/Governance/AccessControlledV8.sol","file":"../Governance/AccessControlledV8.sol","id":14992,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16006,"sourceUnit":13859,"src":"605:74:62","symbolAliases":[{"foreign":{"id":14991,"name":"AccessControlledV8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13858,"src":"614:18:62","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IIsolatedPoolsComptroller.sol","file":"../interfaces/IIsolatedPoolsComptroller.sol","id":14994,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16006,"sourceUnit":20453,"src":"680:88:62","symbolAliases":[{"foreign":{"id":14993,"name":"IIsolatedPoolsComptroller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20452,"src":"689:25:62","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppReceiverUpgradeable.sol","file":"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppReceiverUpgradeable.sol","id":14997,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16006,"sourceUnit":2199,"src":"769:129:62","symbolAliases":[{"foreign":{"id":14995,"name":"OAppReceiverUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2198,"src":"778:23:62","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":14996,"name":"Origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":886,"src":"803:6:62","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppCoreUpgradeable.sol","file":"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppCoreUpgradeable.sol","id":14999,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16006,"sourceUnit":2028,"src":"899:113:62","symbolAliases":[{"foreign":{"id":14998,"name":"OAppCoreUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2027,"src":"908:19:62","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":15001,"name":"IDestinationStewardReceiver","nameLocations":["1436:27:62"],"nodeType":"IdentifierPath","referencedDeclaration":16540,"src":"1436:27:62"},"id":15002,"nodeType":"InheritanceSpecifier","src":"1436:27:62"},{"baseName":{"id":15003,"name":"AccessControlledV8","nameLocations":["1465:18:62"],"nodeType":"IdentifierPath","referencedDeclaration":13858,"src":"1465:18:62"},"id":15004,"nodeType":"InheritanceSpecifier","src":"1465:18:62"},{"baseName":{"id":15005,"name":"OAppReceiverUpgradeable","nameLocations":["1485:23:62"],"nodeType":"IdentifierPath","referencedDeclaration":2198,"src":"1485:23:62"},"id":15006,"nodeType":"InheritanceSpecifier","src":"1485:23:62"}],"canonicalName":"DestinationStewardReceiver","contractDependencies":[],"contractKind":"contract","documentation":{"id":15000,"nodeType":"StructuredDocumentation","src":"1014:382:62","text":" @title DestinationStewardReceiver\n @author Venus\n @notice Destination‑chain contract that receives bridged updates from `RiskStewardReceiver` via LayerZero,\n         enforces a fixed remote delay, and then executes the updates on the configured `IRiskSteward` contracts.\n @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion"},"fullyImplemented":true,"id":16005,"linearizedBaseContracts":[16005,2198,2027,13858,5947,6079,6574,6248,2466,2487,1084,16540],"name":"DestinationStewardReceiver","nameLocation":"1406:26:62","nodeType":"ContractDefinition","nodes":[{"constant":true,"documentation":{"id":15007,"nodeType":"StructuredDocumentation","src":"1515:100:62","text":" @notice Time before a bridged update is considered stale on the destination chain"},"functionSelector":"050d8986","id":15010,"mutability":"constant","name":"REMOTE_UPDATE_EXPIRATION_TIME","nameLocation":"1644:29:62","nodeType":"VariableDeclaration","scope":16005,"src":"1620:62:62","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15008,"name":"uint256","nodeType":"ElementaryTypeName","src":"1620:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"32","id":15009,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1676:6:62","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_172800_by_1","typeString":"int_const 172800"},"value":"2"},"visibility":"public"},{"constant":false,"documentation":{"id":15011,"nodeType":"StructuredDocumentation","src":"1689:66:62","text":" @notice Destination chain LayerZero endpoint ID"},"functionSelector":"4c213449","id":15013,"mutability":"immutable","name":"LAYER_ZERO_EID","nameLocation":"1784:14:62","nodeType":"VariableDeclaration","scope":16005,"src":"1760:38:62","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":15012,"name":"uint32","nodeType":"ElementaryTypeName","src":"1760:6:62","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"public"},{"constant":false,"documentation":{"id":15014,"nodeType":"StructuredDocumentation","src":"1805:97:62","text":" @notice Delay before a bridged update can be executed on the destination chain"},"functionSelector":"e2509c76","id":15016,"mutability":"mutable","name":"remoteDelay","nameLocation":"1922:11:62","nodeType":"VariableDeclaration","scope":16005,"src":"1907:26:62","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15015,"name":"uint256","nodeType":"ElementaryTypeName","src":"1907:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":15017,"nodeType":"StructuredDocumentation","src":"1940:110:62","text":" @notice Mapping of supported risk configurations per update type (hashed updateType string)"},"functionSelector":"af9e0fd3","id":15022,"mutability":"mutable","name":"riskParameterConfigs","nameLocation":"2098:20:62","nodeType":"VariableDeclaration","scope":16005,"src":"2055:63:62","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RiskParamConfig_$16320_storage_$","typeString":"mapping(bytes32 => struct IDestinationStewardReceiver.RiskParamConfig)"},"typeName":{"id":15021,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":15018,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2063:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2055:35:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RiskParamConfig_$16320_storage_$","typeString":"mapping(bytes32 => struct IDestinationStewardReceiver.RiskParamConfig)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":15020,"nodeType":"UserDefinedTypeName","pathNode":{"id":15019,"name":"RiskParamConfig","nameLocations":["2074:15:62"],"nodeType":"IdentifierPath","referencedDeclaration":16320,"src":"2074:15:62"},"referencedDeclaration":16320,"src":"2074:15:62","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16320_storage_ptr","typeString":"struct IDestinationStewardReceiver.RiskParamConfig"}}},"visibility":"public"},{"constant":false,"documentation":{"id":15023,"nodeType":"StructuredDocumentation","src":"2125:77:62","text":" @notice Master storage of all bridged updates by update ID"},"functionSelector":"b4c2f727","id":15028,"mutability":"mutable","name":"updates","nameLocation":"2261:7:62","nodeType":"VariableDeclaration","scope":16005,"src":"2207:61:62","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_DestinationUpdate_$16332_storage_$","typeString":"mapping(uint256 => struct IDestinationStewardReceiver.DestinationUpdate)"},"typeName":{"id":15027,"keyName":"updateId","keyNameLocation":"2223:8:62","keyType":{"id":15024,"name":"uint256","nodeType":"ElementaryTypeName","src":"2215:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2207:46:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_DestinationUpdate_$16332_storage_$","typeString":"mapping(uint256 => struct IDestinationStewardReceiver.DestinationUpdate)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":15026,"nodeType":"UserDefinedTypeName","pathNode":{"id":15025,"name":"DestinationUpdate","nameLocations":["2235:17:62"],"nodeType":"IdentifierPath","referencedDeclaration":16332,"src":"2235:17:62"},"referencedDeclaration":16332,"src":"2235:17:62","typeDescriptions":{"typeIdentifier":"t_struct$_DestinationUpdate_$16332_storage_ptr","typeString":"struct IDestinationStewardReceiver.DestinationUpdate"}}},"visibility":"public"},{"constant":false,"documentation":{"id":15029,"nodeType":"StructuredDocumentation","src":"2275:101:62","text":" @notice Mapping from (updateType, market) to currently registered remote update ID"},"functionSelector":"a49e9ea1","id":15035,"mutability":"mutable","name":"lastRegisteredUpdateId","nameLocation":"2443:22:62","nodeType":"VariableDeclaration","scope":16005,"src":"2381:84:62","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(bytes32 => mapping(address => uint256))"},"typeName":{"id":15034,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":15030,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2389:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2381:54:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(bytes32 => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":15033,"keyName":"market","keyNameLocation":"2416:6:62","keyType":{"id":15031,"name":"address","nodeType":"ElementaryTypeName","src":"2408:7:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2400:34:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":15032,"name":"uint256","nodeType":"ElementaryTypeName","src":"2426:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"public"},{"constant":false,"documentation":{"id":15036,"nodeType":"StructuredDocumentation","src":"2472:88:62","text":" @notice Track last executed update timestamp per (updateType, market)"},"functionSelector":"170338c8","id":15042,"mutability":"mutable","name":"lastExecutedAt","nameLocation":"2627:14:62","nodeType":"VariableDeclaration","scope":16005,"src":"2565:76:62","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(bytes32 => mapping(address => uint256))"},"typeName":{"id":15041,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":15037,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2573:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2565:54:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(bytes32 => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":15040,"keyName":"market","keyNameLocation":"2600:6:62","keyType":{"id":15038,"name":"address","nodeType":"ElementaryTypeName","src":"2592:7:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2584:34:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":15039,"name":"uint256","nodeType":"ElementaryTypeName","src":"2610:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"public"},{"constant":false,"documentation":{"id":15043,"nodeType":"StructuredDocumentation","src":"2648:76:62","text":" @notice Mapping from executor address to whitelist status"},"functionSelector":"fe2b3502","id":15047,"mutability":"mutable","name":"whitelistedExecutors","nameLocation":"2761:20:62","nodeType":"VariableDeclaration","scope":16005,"src":"2729:52:62","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":15046,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":15044,"name":"address","nodeType":"ElementaryTypeName","src":"2737:7:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2729:24:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":15045,"name":"bool","nodeType":"ElementaryTypeName","src":"2748:4:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"constant":false,"documentation":{"id":15048,"nodeType":"StructuredDocumentation","src":"2788:254:62","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"id":15052,"mutability":"mutable","name":"__gap","nameLocation":"3067:5:62","nodeType":"VariableDeclaration","scope":16005,"src":"3047:25:62","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$44_storage","typeString":"uint256[44]"},"typeName":{"baseType":{"id":15049,"name":"uint256","nodeType":"ElementaryTypeName","src":"3047:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15051,"length":{"hexValue":"3434","id":15050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3055:2:62","typeDescriptions":{"typeIdentifier":"t_rational_44_by_1","typeString":"int_const 44"},"value":"44"},"nodeType":"ArrayTypeName","src":"3047:11:62","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$44_storage_ptr","typeString":"uint256[44]"}},"visibility":"private"},{"body":{"id":15066,"nodeType":"Block","src":"3296:113:62","statements":[{"condition":{"id":15059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3310:33:62","subExpression":{"baseExpression":{"id":15055,"name":"whitelistedExecutors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15047,"src":"3311:20:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":15058,"indexExpression":{"expression":{"id":15056,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3332:3:62","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":15057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3336:6:62","memberName":"sender","nodeType":"MemberAccess","src":"3332:10:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3311:32:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15064,"nodeType":"IfStatement","src":"3306:86:62","trueBody":{"id":15063,"nodeType":"Block","src":"3345:47:62","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":15060,"name":"NotAnExecutor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16446,"src":"3366:13:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":15061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3366:15:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15062,"nodeType":"RevertStatement","src":"3359:22:62"}]}},{"id":15065,"nodeType":"PlaceholderStatement","src":"3401:1:62"}]},"documentation":{"id":15053,"nodeType":"StructuredDocumentation","src":"3079:176:62","text":" @notice Modifier that ensures only whitelisted executors can call the function\n @custom:error NotAnExecutor if the caller is not a whitelisted executor"},"id":15067,"name":"onlyWhitelistedExecutors","nameLocation":"3269:24:62","nodeType":"ModifierDefinition","parameters":{"id":15054,"nodeType":"ParameterList","parameters":[],"src":"3293:2:62"},"src":"3260:149:62","virtual":false,"visibility":"internal"},{"body":{"id":15096,"nodeType":"Block","src":"3771:183:62","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":15078,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6229,"src":"3781:20:62","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":15079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3781:22:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15080,"nodeType":"ExpressionStatement","src":"3781:22:62"},{"expression":{"arguments":[{"id":15082,"name":"endpoint_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15070,"src":"3834:9:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15081,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10945,"src":"3813:20:62","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":15083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3813:31:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15084,"nodeType":"ExpressionStatement","src":"3813:31:62"},{"condition":{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":15087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15085,"name":"layerZeroEid_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15072,"src":"3858:13:62","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":15086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3875:1:62","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3858:18:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15091,"nodeType":"IfStatement","src":"3854:52:62","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":15088,"name":"InvalidLayerZeroEid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16449,"src":"3885:19:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":15089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3885:21:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15090,"nodeType":"RevertStatement","src":"3878:28:62"}},{"expression":{"id":15094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15092,"name":"LAYER_ZERO_EID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15013,"src":"3917:14:62","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15093,"name":"layerZeroEid_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15072,"src":"3934:13:62","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"3917:30:62","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":15095,"nodeType":"ExpressionStatement","src":"3917:30:62"}]},"documentation":{"id":15068,"nodeType":"StructuredDocumentation","src":"3415:267:62","text":" @notice Disables initializers and sets immutable values.\n @param endpoint_ Local LayerZero endpoint on this chain\n @param layerZeroEid_ LayerZero endpoint ID for this destination chain\n @custom:oz-upgrades-unsafe-allow constructor"},"id":15097,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":15075,"name":"endpoint_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15070,"src":"3760:9:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":15076,"kind":"baseConstructorSpecifier","modifierName":{"id":15074,"name":"OAppCoreUpgradeable","nameLocations":["3740:19:62"],"nodeType":"IdentifierPath","referencedDeclaration":2027,"src":"3740:19:62"},"nodeType":"ModifierInvocation","src":"3740:30:62"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":15073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15070,"mutability":"mutable","name":"endpoint_","nameLocation":"3707:9:62","nodeType":"VariableDeclaration","scope":15097,"src":"3699:17:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15069,"name":"address","nodeType":"ElementaryTypeName","src":"3699:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15072,"mutability":"mutable","name":"layerZeroEid_","nameLocation":"3725:13:62","nodeType":"VariableDeclaration","scope":15097,"src":"3718:20:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":15071,"name":"uint32","nodeType":"ElementaryTypeName","src":"3718:6:62","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"3698:41:62"},"returnParameters":{"id":15077,"nodeType":"ParameterList","parameters":[],"src":"3771:0:62"},"scope":16005,"src":"3687:267:62","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":15123,"nodeType":"Block","src":"4304:193:62","statements":[{"expression":{"arguments":[{"id":15108,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15100,"src":"4338:21:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15107,"name":"__AccessControlled_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13754,"src":"4314:23:62","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":15109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4314:46:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15110,"nodeType":"ExpressionStatement","src":"4314:46:62"},{"expression":{"arguments":[{"id":15112,"name":"delegate_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15102,"src":"4390:9:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15111,"name":"__OAppReceiver_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2059,"src":"4370:19:62","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":15113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4370:30:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15114,"nodeType":"ExpressionStatement","src":"4370:30:62"},{"expression":{"id":15117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15115,"name":"remoteDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15016,"src":"4410:11:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"36","id":15116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4424:7:62","subdenomination":"hours","typeDescriptions":{"typeIdentifier":"t_rational_21600_by_1","typeString":"int_const 21600"},"value":"6"},"src":"4410:21:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15118,"nodeType":"ExpressionStatement","src":"4410:21:62"},{"eventCall":{"arguments":[{"id":15120,"name":"remoteDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15016,"src":"4478:11:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15119,"name":"RemoteDelaySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16419,"src":"4463:14:62","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":15121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4463:27:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15122,"nodeType":"EmitStatement","src":"4458:32:62"}]},"documentation":{"id":15098,"nodeType":"StructuredDocumentation","src":"3960:248:62","text":" @notice Initializes the contract with the Access Control Manager and owner.\n @param accessControlManager_ The address of the access control manager\n @param delegate_ The owner (and LayerZero delegate) of this contract"},"functionSelector":"485cc955","id":15124,"implemented":true,"kind":"function","modifiers":[{"id":15105,"kind":"modifierInvocation","modifierName":{"id":15104,"name":"initializer","nameLocations":["4292:11:62"],"nodeType":"IdentifierPath","referencedDeclaration":6150,"src":"4292:11:62"},"nodeType":"ModifierInvocation","src":"4292:11:62"}],"name":"initialize","nameLocation":"4222:10:62","nodeType":"FunctionDefinition","parameters":{"id":15103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15100,"mutability":"mutable","name":"accessControlManager_","nameLocation":"4241:21:62","nodeType":"VariableDeclaration","scope":15124,"src":"4233:29:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15099,"name":"address","nodeType":"ElementaryTypeName","src":"4233:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15102,"mutability":"mutable","name":"delegate_","nameLocation":"4272:9:62","nodeType":"VariableDeclaration","scope":15124,"src":"4264:17:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15101,"name":"address","nodeType":"ElementaryTypeName","src":"4264:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4232:50:62"},"returnParameters":{"id":15106,"nodeType":"ParameterList","parameters":[],"src":"4304:0:62"},"scope":16005,"src":"4213:284:62","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[16473],"body":{"id":15210,"nodeType":"Block","src":"5262:853:62","statements":[{"expression":{"arguments":[{"hexValue":"7365745269736b506172616d65746572436f6e66696728737472696e672c616464726573732c75696e7432353629","id":15135,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5292:48:62","typeDescriptions":{"typeIdentifier":"t_stringliteral_b080d71de31801361071ec72bd336a3c01b0833660bade8977c5fa930de3d1a7","typeString":"literal_string \"setRiskParameterConfig(string,address,uint256)\""},"value":"setRiskParameterConfig(string,address,uint256)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b080d71de31801361071ec72bd336a3c01b0833660bade8977c5fa930de3d1a7","typeString":"literal_string \"setRiskParameterConfig(string,address,uint256)\""}],"id":15134,"name":"_checkAccessAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13857,"src":"5272:19:62","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":15136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5272:69:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15137,"nodeType":"ExpressionStatement","src":"5272:69:62"},{"expression":{"arguments":[{"id":15139,"name":"riskSteward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15129,"src":"5372:11:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15138,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10945,"src":"5351:20:62","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":15140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5351:33:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15141,"nodeType":"ExpressionStatement","src":"5351:33:62"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":15156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":15144,"name":"updateType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15127,"src":"5405:10:62","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":15143,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5399:5:62","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":15142,"name":"bytes","nodeType":"ElementaryTypeName","src":"5399:5:62","typeDescriptions":{}}},"id":15145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5399:17:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":15146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5417:6:62","memberName":"length","nodeType":"MemberAccess","src":"5399:24:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":15147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5427:1:62","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5399:29:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":15151,"name":"updateType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15127,"src":"5438:10:62","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":15150,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5432:5:62","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":15149,"name":"bytes","nodeType":"ElementaryTypeName","src":"5432:5:62","typeDescriptions":{}}},"id":15152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5432:17:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":15153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5450:6:62","memberName":"length","nodeType":"MemberAccess","src":"5432:24:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3634","id":15154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5459:2:62","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"5432:29:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5399:62:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15161,"nodeType":"IfStatement","src":"5395:119:62","trueBody":{"id":15160,"nodeType":"Block","src":"5463:51:62","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":15157,"name":"InvalidUpdateType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16437,"src":"5484:17:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":15158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5484:19:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15159,"nodeType":"RevertStatement","src":"5477:26:62"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15162,"name":"debounce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15131,"src":"5528:8:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":15163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5540:1:62","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5528:13:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15169,"nodeType":"IfStatement","src":"5524:68:62","trueBody":{"id":15168,"nodeType":"Block","src":"5543:49:62","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":15165,"name":"InvalidDebounce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16443,"src":"5564:15:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":15166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5564:17:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15167,"nodeType":"RevertStatement","src":"5557:24:62"}]}},{"assignments":[15171],"declarations":[{"constant":false,"id":15171,"mutability":"mutable","name":"key","nameLocation":"5610:3:62","nodeType":"VariableDeclaration","scope":15210,"src":"5602:11:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15170,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5602:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":15178,"initialValue":{"arguments":[{"arguments":[{"id":15175,"name":"updateType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15127,"src":"5632:10:62","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":15174,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5626:5:62","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":15173,"name":"bytes","nodeType":"ElementaryTypeName","src":"5626:5:62","typeDescriptions":{}}},"id":15176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5626:17:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":15172,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5616:9:62","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":15177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5616:28:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5602:42:62"},{"assignments":[15181],"declarations":[{"constant":false,"id":15181,"mutability":"mutable","name":"previousConfig","nameLocation":"5678:14:62","nodeType":"VariableDeclaration","scope":15210,"src":"5654:38:62","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16320_storage_ptr","typeString":"struct IDestinationStewardReceiver.RiskParamConfig"},"typeName":{"id":15180,"nodeType":"UserDefinedTypeName","pathNode":{"id":15179,"name":"RiskParamConfig","nameLocations":["5654:15:62"],"nodeType":"IdentifierPath","referencedDeclaration":16320,"src":"5654:15:62"},"referencedDeclaration":16320,"src":"5654:15:62","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16320_storage_ptr","typeString":"struct IDestinationStewardReceiver.RiskParamConfig"}},"visibility":"internal"}],"id":15185,"initialValue":{"baseExpression":{"id":15182,"name":"riskParameterConfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15022,"src":"5695:20:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RiskParamConfig_$16320_storage_$","typeString":"mapping(bytes32 => struct IDestinationStewardReceiver.RiskParamConfig storage ref)"}},"id":15184,"indexExpression":{"id":15183,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15171,"src":"5716:3:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5695:25:62","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16320_storage","typeString":"struct IDestinationStewardReceiver.RiskParamConfig storage ref"}},"nodeType":"VariableDeclarationStatement","src":"5654:66:62"},{"expression":{"id":15194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":15186,"name":"riskParameterConfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15022,"src":"5731:20:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RiskParamConfig_$16320_storage_$","typeString":"mapping(bytes32 => struct IDestinationStewardReceiver.RiskParamConfig storage ref)"}},"id":15188,"indexExpression":{"id":15187,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15171,"src":"5752:3:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5731:25:62","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16320_storage","typeString":"struct IDestinationStewardReceiver.RiskParamConfig storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"74727565","id":15190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5785:4:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":15191,"name":"debounce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15131,"src":"5801:8:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15192,"name":"riskSteward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15129,"src":"5824:11:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":15189,"name":"RiskParamConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16320,"src":"5759:15:62","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RiskParamConfig_$16320_storage_ptr_$","typeString":"type(struct IDestinationStewardReceiver.RiskParamConfig storage pointer)"}},"id":15193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["5777:6:62","5791:8:62","5811:11:62"],"names":["active","debounce","riskSteward"],"nodeType":"FunctionCall","src":"5759:79:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16320_memory_ptr","typeString":"struct IDestinationStewardReceiver.RiskParamConfig memory"}},"src":"5731:107:62","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16320_storage","typeString":"struct IDestinationStewardReceiver.RiskParamConfig storage ref"}},"id":15195,"nodeType":"ExpressionStatement","src":"5731:107:62"},{"eventCall":{"arguments":[{"id":15197,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15171,"src":"5894:3:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15198,"name":"updateType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15127,"src":"5911:10:62","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"expression":{"id":15199,"name":"previousConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15181,"src":"5935:14:62","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16320_storage_ptr","typeString":"struct IDestinationStewardReceiver.RiskParamConfig storage pointer"}},"id":15200,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5950:11:62","memberName":"riskSteward","nodeType":"MemberAccess","referencedDeclaration":16319,"src":"5935:26:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15201,"name":"riskSteward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15129,"src":"5975:11:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":15202,"name":"previousConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15181,"src":"6000:14:62","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16320_storage_ptr","typeString":"struct IDestinationStewardReceiver.RiskParamConfig storage pointer"}},"id":15203,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6015:8:62","memberName":"debounce","nodeType":"MemberAccess","referencedDeclaration":16317,"src":"6000:23:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15204,"name":"debounce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15131,"src":"6037:8:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":15205,"name":"previousConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15181,"src":"6059:14:62","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16320_storage_ptr","typeString":"struct IDestinationStewardReceiver.RiskParamConfig storage pointer"}},"id":15206,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6074:6:62","memberName":"active","nodeType":"MemberAccess","referencedDeclaration":16315,"src":"6059:21:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"74727565","id":15207,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6094:4:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":15196,"name":"RiskParameterConfigUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16351,"src":"5854:26:62","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_string_memory_ptr_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bool_$_t_bool_$returns$__$","typeString":"function (bytes32,string memory,address,address,uint256,uint256,bool,bool)"}},"id":15208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5854:254:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15209,"nodeType":"EmitStatement","src":"5849:259:62"}]},"documentation":{"id":15125,"nodeType":"StructuredDocumentation","src":"4503:646:62","text":" @notice Sets the risk parameter config for a given update type on the destination chain.\n @param updateType The type of update to configure (e.g., \"supplyCap\", \"borrowCap\")\n @param riskSteward The address for the risk steward contract responsible for processing the update\n @param debounce The debounce period for updates of this type on the destination (anti‑DoS)\n @custom:access Controlled by AccessControlManager\n @custom:event Emits RiskParameterConfigUpdated\n @custom:error InvalidUpdateType if the update type string is empty\n @custom:error InvalidDebounce if the debounce is 0"},"functionSelector":"b080d71d","id":15211,"implemented":true,"kind":"function","modifiers":[],"name":"setRiskParameterConfig","nameLocation":"5163:22:62","nodeType":"FunctionDefinition","parameters":{"id":15132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15127,"mutability":"mutable","name":"updateType","nameLocation":"5202:10:62","nodeType":"VariableDeclaration","scope":15211,"src":"5186:26:62","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":15126,"name":"string","nodeType":"ElementaryTypeName","src":"5186:6:62","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15129,"mutability":"mutable","name":"riskSteward","nameLocation":"5222:11:62","nodeType":"VariableDeclaration","scope":15211,"src":"5214:19:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15128,"name":"address","nodeType":"ElementaryTypeName","src":"5214:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15131,"mutability":"mutable","name":"debounce","nameLocation":"5243:8:62","nodeType":"VariableDeclaration","scope":15211,"src":"5235:16:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15130,"name":"uint256","nodeType":"ElementaryTypeName","src":"5235:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5185:67:62"},"returnParameters":{"id":15133,"nodeType":"ParameterList","parameters":[],"src":"5262:0:62"},"scope":16005,"src":"5154:961:62","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[16480],"body":{"id":15275,"nodeType":"Block","src":"6763:528:62","statements":[{"expression":{"arguments":[{"hexValue":"736574436f6e66696741637469766528737472696e672c626f6f6c29","id":15220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6793:30:62","typeDescriptions":{"typeIdentifier":"t_stringliteral_438653fea6a7489da497f9194432a5d33d481bce149364131507cddc24496561","typeString":"literal_string \"setConfigActive(string,bool)\""},"value":"setConfigActive(string,bool)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_438653fea6a7489da497f9194432a5d33d481bce149364131507cddc24496561","typeString":"literal_string \"setConfigActive(string,bool)\""}],"id":15219,"name":"_checkAccessAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13857,"src":"6773:19:62","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":15221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6773:51:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15222,"nodeType":"ExpressionStatement","src":"6773:51:62"},{"assignments":[15224],"declarations":[{"constant":false,"id":15224,"mutability":"mutable","name":"key","nameLocation":"6842:3:62","nodeType":"VariableDeclaration","scope":15275,"src":"6834:11:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15223,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6834:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":15231,"initialValue":{"arguments":[{"arguments":[{"id":15228,"name":"updateType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15214,"src":"6864:10:62","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":15227,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6858:5:62","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":15226,"name":"bytes","nodeType":"ElementaryTypeName","src":"6858:5:62","typeDescriptions":{}}},"id":15229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6858:17:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":15225,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6848:9:62","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":15230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6848:28:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6834:42:62"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":15240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":15232,"name":"riskParameterConfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15022,"src":"6891:20:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RiskParamConfig_$16320_storage_$","typeString":"mapping(bytes32 => struct IDestinationStewardReceiver.RiskParamConfig storage ref)"}},"id":15234,"indexExpression":{"id":15233,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15224,"src":"6912:3:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6891:25:62","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16320_storage","typeString":"struct IDestinationStewardReceiver.RiskParamConfig storage ref"}},"id":15235,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6917:11:62","memberName":"riskSteward","nodeType":"MemberAccess","referencedDeclaration":16319,"src":"6891:37:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":15238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6940:1:62","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":15237,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6932:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":15236,"name":"address","nodeType":"ElementaryTypeName","src":"6932:7:62","typeDescriptions":{}}},"id":15239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6932:10:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6891:51:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15245,"nodeType":"IfStatement","src":"6887:112:62","trueBody":{"id":15244,"nodeType":"Block","src":"6944:55:62","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":15241,"name":"UnsupportedUpdateType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16440,"src":"6965:21:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":15242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6965:23:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15243,"nodeType":"RevertStatement","src":"6958:30:62"}]}},{"assignments":[15247],"declarations":[{"constant":false,"id":15247,"mutability":"mutable","name":"previousActive","nameLocation":"7014:14:62","nodeType":"VariableDeclaration","scope":15275,"src":"7009:19:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15246,"name":"bool","nodeType":"ElementaryTypeName","src":"7009:4:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":15252,"initialValue":{"expression":{"baseExpression":{"id":15248,"name":"riskParameterConfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15022,"src":"7031:20:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RiskParamConfig_$16320_storage_$","typeString":"mapping(bytes32 => struct IDestinationStewardReceiver.RiskParamConfig storage ref)"}},"id":15250,"indexExpression":{"id":15249,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15224,"src":"7052:3:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7031:25:62","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16320_storage","typeString":"struct IDestinationStewardReceiver.RiskParamConfig storage ref"}},"id":15251,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7057:6:62","memberName":"active","nodeType":"MemberAccess","referencedDeclaration":16315,"src":"7031:32:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"7009:54:62"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":15255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15253,"name":"previousActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15247,"src":"7077:14:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":15254,"name":"active","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15216,"src":"7095:6:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7077:24:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15260,"nodeType":"IfStatement","src":"7073:85:62","trueBody":{"id":15259,"nodeType":"Block","src":"7103:55:62","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":15256,"name":"ConfigStatusUnchanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16461,"src":"7124:21:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":15257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7124:23:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15258,"nodeType":"RevertStatement","src":"7117:30:62"}]}},{"expression":{"id":15266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":15261,"name":"riskParameterConfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15022,"src":"7168:20:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RiskParamConfig_$16320_storage_$","typeString":"mapping(bytes32 => struct IDestinationStewardReceiver.RiskParamConfig storage ref)"}},"id":15263,"indexExpression":{"id":15262,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15224,"src":"7189:3:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7168:25:62","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16320_storage","typeString":"struct IDestinationStewardReceiver.RiskParamConfig storage ref"}},"id":15264,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7194:6:62","memberName":"active","nodeType":"MemberAccess","referencedDeclaration":16315,"src":"7168:32:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15265,"name":"active","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15216,"src":"7203:6:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7168:41:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15267,"nodeType":"ExpressionStatement","src":"7168:41:62"},{"eventCall":{"arguments":[{"id":15269,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15224,"src":"7244:3:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15270,"name":"updateType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15214,"src":"7249:10:62","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"id":15271,"name":"previousActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15247,"src":"7261:14:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15272,"name":"active","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15216,"src":"7277:6:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":15268,"name":"ConfigActiveUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16409,"src":"7224:19:62","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_string_memory_ptr_$_t_bool_$_t_bool_$returns$__$","typeString":"function (bytes32,string memory,bool,bool)"}},"id":15273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7224:60:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15274,"nodeType":"EmitStatement","src":"7219:65:62"}]},"documentation":{"id":15212,"nodeType":"StructuredDocumentation","src":"6121:562:62","text":" @notice Sets the active status of a risk parameter config\n @param updateType The type of update to configure\n @param active The active status to set\n @custom:access Controlled by AccessControlManager\n @custom:event Emits ConfigActiveUpdated with the update type hash, update type, previous active status, and the active status\n @custom:error Throws UnsupportedUpdateType if the update type is not supported\n @custom:error Throws ConfigStatusUnchanged if the active status is already set to the desired value"},"functionSelector":"438653fe","id":15276,"implemented":true,"kind":"function","modifiers":[],"name":"setConfigActive","nameLocation":"6697:15:62","nodeType":"FunctionDefinition","parameters":{"id":15217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15214,"mutability":"mutable","name":"updateType","nameLocation":"6729:10:62","nodeType":"VariableDeclaration","scope":15276,"src":"6713:26:62","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":15213,"name":"string","nodeType":"ElementaryTypeName","src":"6713:6:62","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15216,"mutability":"mutable","name":"active","nameLocation":"6746:6:62","nodeType":"VariableDeclaration","scope":15276,"src":"6741:11:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15215,"name":"bool","nodeType":"ElementaryTypeName","src":"6741:4:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6712:41:62"},"returnParameters":{"id":15218,"nodeType":"ParameterList","parameters":[],"src":"6763:0:62"},"scope":16005,"src":"6688:603:62","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[16492],"body":{"id":15318,"nodeType":"Block","src":"7873:431:62","statements":[{"expression":{"arguments":[{"hexValue":"73657452656d6f746544656c61792875696e7432353629","id":15283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7903:25:62","typeDescriptions":{"typeIdentifier":"t_stringliteral_ca136b99b3915cfd5c9efe4cc2c964a449534150270a535dd702034c994a6b6b","typeString":"literal_string \"setRemoteDelay(uint256)\""},"value":"setRemoteDelay(uint256)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ca136b99b3915cfd5c9efe4cc2c964a449534150270a535dd702034c994a6b6b","typeString":"literal_string \"setRemoteDelay(uint256)\""}],"id":15282,"name":"_checkAccessAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13857,"src":"7883:19:62","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":15284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7883:46:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15285,"nodeType":"ExpressionStatement","src":"7883:46:62"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":15292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15286,"name":"newRemoteDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15279,"src":"7944:14:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":15287,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7962:1:62","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7944:19:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15289,"name":"newRemoteDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15279,"src":"7967:14:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":15290,"name":"REMOTE_UPDATE_EXPIRATION_TIME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15010,"src":"7985:29:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7967:47:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7944:70:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15297,"nodeType":"IfStatement","src":"7940:128:62","trueBody":{"id":15296,"nodeType":"Block","src":"8016:52:62","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":15293,"name":"InvalidRemoteDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16452,"src":"8037:18:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":15294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8037:20:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15295,"nodeType":"RevertStatement","src":"8030:27:62"}]}},{"assignments":[15299],"declarations":[{"constant":false,"id":15299,"mutability":"mutable","name":"previousDelay","nameLocation":"8086:13:62","nodeType":"VariableDeclaration","scope":15318,"src":"8078:21:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15298,"name":"uint256","nodeType":"ElementaryTypeName","src":"8078:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15301,"initialValue":{"id":15300,"name":"remoteDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15016,"src":"8102:11:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8078:35:62"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15302,"name":"previousDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15299,"src":"8127:13:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":15303,"name":"newRemoteDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15279,"src":"8144:14:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8127:31:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15309,"nodeType":"IfStatement","src":"8123:91:62","trueBody":{"id":15308,"nodeType":"Block","src":"8160:54:62","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":15305,"name":"RemoteDelayUnchanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16455,"src":"8181:20:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":15306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8181:22:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15307,"nodeType":"RevertStatement","src":"8174:29:62"}]}},{"expression":{"id":15312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15310,"name":"remoteDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15016,"src":"8224:11:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15311,"name":"newRemoteDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15279,"src":"8238:14:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8224:28:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15313,"nodeType":"ExpressionStatement","src":"8224:28:62"},{"eventCall":{"arguments":[{"id":15315,"name":"newRemoteDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15279,"src":"8282:14:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15314,"name":"RemoteDelaySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16419,"src":"8267:14:62","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":15316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8267:30:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15317,"nodeType":"EmitStatement","src":"8262:35:62"}]},"documentation":{"id":15277,"nodeType":"StructuredDocumentation","src":"7297:514:62","text":" @notice Sets the remote delay before bridged updates can be executed on the destination chain.\n @param newRemoteDelay The new remote delay in seconds\n @custom:access Controlled by AccessControlManager\n @custom:event Emits RemoteDelaySet with the new remote delay value\n @custom:error InvalidRemoteDelay if the delay is 0 or greater than or equal to the remote update expiration time\n @custom:error RemoteDelayUnchanged if the new delay is equal to the current delay"},"functionSelector":"ca136b99","id":15319,"implemented":true,"kind":"function","modifiers":[],"name":"setRemoteDelay","nameLocation":"7825:14:62","nodeType":"FunctionDefinition","parameters":{"id":15280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15279,"mutability":"mutable","name":"newRemoteDelay","nameLocation":"7848:14:62","nodeType":"VariableDeclaration","scope":15319,"src":"7840:22:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15278,"name":"uint256","nodeType":"ElementaryTypeName","src":"7840:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7839:24:62"},"returnParameters":{"id":15281,"nodeType":"ParameterList","parameters":[],"src":"7873:0:62"},"scope":16005,"src":"7816:488:62","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[16487],"body":{"id":15361,"nodeType":"Block","src":"9007:406:62","statements":[{"expression":{"arguments":[{"hexValue":"73657457686974656c69737465644578656375746f7228616464726573732c626f6f6c29","id":15328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9037:38:62","typeDescriptions":{"typeIdentifier":"t_stringliteral_3aed7f318df6d17618f4cdbfb20fac54d0f99e436e8a979213a008234d813cf1","typeString":"literal_string \"setWhitelistedExecutor(address,bool)\""},"value":"setWhitelistedExecutor(address,bool)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3aed7f318df6d17618f4cdbfb20fac54d0f99e436e8a979213a008234d813cf1","typeString":"literal_string \"setWhitelistedExecutor(address,bool)\""}],"id":15327,"name":"_checkAccessAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13857,"src":"9017:19:62","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":15329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9017:59:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15330,"nodeType":"ExpressionStatement","src":"9017:59:62"},{"expression":{"arguments":[{"id":15332,"name":"executor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15322,"src":"9107:8:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15331,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10945,"src":"9086:20:62","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":15333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9086:30:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15334,"nodeType":"ExpressionStatement","src":"9086:30:62"},{"assignments":[15336],"declarations":[{"constant":false,"id":15336,"mutability":"mutable","name":"previousApproved","nameLocation":"9131:16:62","nodeType":"VariableDeclaration","scope":15361,"src":"9126:21:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15335,"name":"bool","nodeType":"ElementaryTypeName","src":"9126:4:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":15340,"initialValue":{"baseExpression":{"id":15337,"name":"whitelistedExecutors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15047,"src":"9150:20:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":15339,"indexExpression":{"id":15338,"name":"executor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15322,"src":"9171:8:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9150:30:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"9126:54:62"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":15343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15341,"name":"previousApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15336,"src":"9194:16:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":15342,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15324,"src":"9214:8:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9194:28:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15348,"nodeType":"IfStatement","src":"9190:91:62","trueBody":{"id":15347,"nodeType":"Block","src":"9224:57:62","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":15344,"name":"ExecutorStatusUnchanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16464,"src":"9245:23:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":15345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9245:25:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15346,"nodeType":"RevertStatement","src":"9238:32:62"}]}},{"expression":{"id":15353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":15349,"name":"whitelistedExecutors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15047,"src":"9291:20:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":15351,"indexExpression":{"id":15350,"name":"executor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15322,"src":"9312:8:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9291:30:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15352,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15324,"src":"9324:8:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9291:41:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15354,"nodeType":"ExpressionStatement","src":"9291:41:62"},{"eventCall":{"arguments":[{"id":15356,"name":"executor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15322,"src":"9369:8:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15357,"name":"previousApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15336,"src":"9379:16:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15358,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15324,"src":"9397:8:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":15355,"name":"ExecutorStatusUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16398,"src":"9347:21:62","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bool_$_t_bool_$returns$__$","typeString":"function (address,bool,bool)"}},"id":15359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9347:59:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15360,"nodeType":"EmitStatement","src":"9342:64:62"}]},"documentation":{"id":15320,"nodeType":"StructuredDocumentation","src":"8310:618:62","text":" @notice Sets the whitelist status of an executor on the destination chain.\n @param executor The address of the executor\n @param approved The whitelist status to set (true to whitelist, false to remove)\n @custom:access Controlled by AccessControlManager\n @custom:event Emits ExecutorStatusUpdated with the executor address, previous approval status, and new approval status\n @custom:error Throws ZeroAddressNotAllowed if the executor address is zero\n @custom:error Throws ExecutorStatusUnchanged if the executor whitelist status is already set to the desired value"},"functionSelector":"3aed7f31","id":15362,"implemented":true,"kind":"function","modifiers":[],"name":"setWhitelistedExecutor","nameLocation":"8942:22:62","nodeType":"FunctionDefinition","parameters":{"id":15325,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15322,"mutability":"mutable","name":"executor","nameLocation":"8973:8:62","nodeType":"VariableDeclaration","scope":15362,"src":"8965:16:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15321,"name":"address","nodeType":"ElementaryTypeName","src":"8965:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15324,"mutability":"mutable","name":"approved","nameLocation":"8988:8:62","nodeType":"VariableDeclaration","scope":15362,"src":"8983:13:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15323,"name":"bool","nodeType":"ElementaryTypeName","src":"8983:4:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8964:33:62"},"returnParameters":{"id":15326,"nodeType":"ParameterList","parameters":[],"src":"9007:0:62"},"scope":16005,"src":"8933:480:62","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[16497],"body":{"id":15500,"nodeType":"Block","src":"10325:1331:62","statements":[{"assignments":[15372],"declarations":[{"constant":false,"id":15372,"mutability":"mutable","name":"destUpdate","nameLocation":"10361:10:62","nodeType":"VariableDeclaration","scope":15500,"src":"10335:36:62","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DestinationUpdate_$16332_storage_ptr","typeString":"struct IDestinationStewardReceiver.DestinationUpdate"},"typeName":{"id":15371,"nodeType":"UserDefinedTypeName","pathNode":{"id":15370,"name":"DestinationUpdate","nameLocations":["10335:17:62"],"nodeType":"IdentifierPath","referencedDeclaration":16332,"src":"10335:17:62"},"referencedDeclaration":16332,"src":"10335:17:62","typeDescriptions":{"typeIdentifier":"t_struct$_DestinationUpdate_$16332_storage_ptr","typeString":"struct IDestinationStewardReceiver.DestinationUpdate"}},"visibility":"internal"}],"id":15376,"initialValue":{"baseExpression":{"id":15373,"name":"updates","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15028,"src":"10374:7:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_DestinationUpdate_$16332_storage_$","typeString":"mapping(uint256 => struct IDestinationStewardReceiver.DestinationUpdate storage ref)"}},"id":15375,"indexExpression":{"id":15374,"name":"updateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15365,"src":"10382:8:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10374:17:62","typeDescriptions":{"typeIdentifier":"t_struct$_DestinationUpdate_$16332_storage","typeString":"struct IDestinationStewardReceiver.DestinationUpdate storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10335:56:62"},{"assignments":[15379],"declarations":[{"constant":false,"id":15379,"mutability":"mutable","name":"update","nameLocation":"10428:6:62","nodeType":"VariableDeclaration","scope":15500,"src":"10401:33:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate"},"typeName":{"id":15378,"nodeType":"UserDefinedTypeName","pathNode":{"id":15377,"name":"RiskParameterUpdate","nameLocations":["10401:19:62"],"nodeType":"IdentifierPath","referencedDeclaration":16568,"src":"10401:19:62"},"referencedDeclaration":16568,"src":"10401:19:62","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_storage_ptr","typeString":"struct RiskParameterUpdate"}},"visibility":"internal"}],"id":15382,"initialValue":{"expression":{"id":15380,"name":"destUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15372,"src":"10437:10:62","typeDescriptions":{"typeIdentifier":"t_struct$_DestinationUpdate_$16332_storage_ptr","typeString":"struct IDestinationStewardReceiver.DestinationUpdate storage pointer"}},"id":15381,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10448:6:62","memberName":"update","nodeType":"MemberAccess","referencedDeclaration":16324,"src":"10437:17:62","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_storage","typeString":"struct RiskParameterUpdate storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10401:53:62"},{"assignments":[15384],"declarations":[{"constant":false,"id":15384,"mutability":"mutable","name":"updateTypeKey","nameLocation":"10472:13:62","nodeType":"VariableDeclaration","scope":15500,"src":"10464:21:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15383,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10464:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":15387,"initialValue":{"expression":{"id":15385,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15379,"src":"10488:6:62","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":15386,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10495:13:62","memberName":"updateTypeKey","nodeType":"MemberAccess","referencedDeclaration":16553,"src":"10488:20:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"10464:44:62"},{"assignments":[15390],"declarations":[{"constant":false,"id":15390,"mutability":"mutable","name":"config","nameLocation":"10542:6:62","nodeType":"VariableDeclaration","scope":15500,"src":"10518:30:62","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16320_storage_ptr","typeString":"struct IDestinationStewardReceiver.RiskParamConfig"},"typeName":{"id":15389,"nodeType":"UserDefinedTypeName","pathNode":{"id":15388,"name":"RiskParamConfig","nameLocations":["10518:15:62"],"nodeType":"IdentifierPath","referencedDeclaration":16320,"src":"10518:15:62"},"referencedDeclaration":16320,"src":"10518:15:62","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16320_storage_ptr","typeString":"struct IDestinationStewardReceiver.RiskParamConfig"}},"visibility":"internal"}],"id":15394,"initialValue":{"baseExpression":{"id":15391,"name":"riskParameterConfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15022,"src":"10551:20:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RiskParamConfig_$16320_storage_$","typeString":"mapping(bytes32 => struct IDestinationStewardReceiver.RiskParamConfig storage ref)"}},"id":15393,"indexExpression":{"id":15392,"name":"updateTypeKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15384,"src":"10572:13:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10551:35:62","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16320_storage","typeString":"struct IDestinationStewardReceiver.RiskParamConfig storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10518:68:62"},{"assignments":[15396],"declarations":[{"constant":false,"id":15396,"mutability":"mutable","name":"currentTime","nameLocation":"10604:11:62","nodeType":"VariableDeclaration","scope":15500,"src":"10596:19:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15395,"name":"uint256","nodeType":"ElementaryTypeName","src":"10596:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15399,"initialValue":{"expression":{"id":15397,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"10618:5:62","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":15398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10624:9:62","memberName":"timestamp","nodeType":"MemberAccess","src":"10618:15:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10596:37:62"},{"condition":{"id":15402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10648:14:62","subExpression":{"expression":{"id":15400,"name":"config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15390,"src":"10649:6:62","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16320_storage_ptr","typeString":"struct IDestinationStewardReceiver.RiskParamConfig storage pointer"}},"id":15401,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10656:6:62","memberName":"active","nodeType":"MemberAccess","referencedDeclaration":16315,"src":"10649:13:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15407,"nodeType":"IfStatement","src":"10644:69:62","trueBody":{"id":15406,"nodeType":"Block","src":"10664:49:62","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":15403,"name":"ConfigNotActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16428,"src":"10685:15:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":15404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10685:17:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15405,"nodeType":"RevertStatement","src":"10678:24:62"}]}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_UpdateStatus_$16312","typeString":"enum IDestinationStewardReceiver.UpdateStatus"},"id":15412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15408,"name":"destUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15372,"src":"10727:10:62","typeDescriptions":{"typeIdentifier":"t_struct$_DestinationUpdate_$16332_storage_ptr","typeString":"struct IDestinationStewardReceiver.DestinationUpdate storage pointer"}},"id":15409,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10738:6:62","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":16327,"src":"10727:17:62","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateStatus_$16312","typeString":"enum IDestinationStewardReceiver.UpdateStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":15410,"name":"UpdateStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16312,"src":"10748:12:62","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_UpdateStatus_$16312_$","typeString":"type(enum IDestinationStewardReceiver.UpdateStatus)"}},"id":15411,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10761:7:62","memberName":"Pending","nodeType":"MemberAccess","referencedDeclaration":16309,"src":"10748:20:62","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateStatus_$16312","typeString":"enum IDestinationStewardReceiver.UpdateStatus"}},"src":"10727:41:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15417,"nodeType":"IfStatement","src":"10723:95:62","trueBody":{"id":15416,"nodeType":"Block","src":"10770:48:62","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":15413,"name":"UpdateNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16422,"src":"10791:14:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":15414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10791:16:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15415,"nodeType":"RevertStatement","src":"10784:23:62"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15418,"name":"currentTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15396,"src":"10832:11:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15419,"name":"destUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15372,"src":"10846:10:62","typeDescriptions":{"typeIdentifier":"t_struct$_DestinationUpdate_$16332_storage_ptr","typeString":"struct IDestinationStewardReceiver.DestinationUpdate storage pointer"}},"id":15420,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10857:11:62","memberName":"arrivalTime","nodeType":"MemberAccess","referencedDeclaration":16329,"src":"10846:22:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":15421,"name":"remoteDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15016,"src":"10871:11:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10846:36:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10832:50:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15428,"nodeType":"IfStatement","src":"10828:107:62","trueBody":{"id":15427,"nodeType":"Block","src":"10884:51:62","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":15424,"name":"UpdateNotUnlocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16425,"src":"10905:17:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":15425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10905:19:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15426,"nodeType":"RevertStatement","src":"10898:26:62"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15429,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15379,"src":"10949:6:62","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":15430,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10956:9:62","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":16559,"src":"10949:16:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":15431,"name":"REMOTE_UPDATE_EXPIRATION_TIME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15010,"src":"10968:29:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10949:48:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":15433,"name":"currentTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15396,"src":"11000:11:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10949:62:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15439,"nodeType":"IfStatement","src":"10945:117:62","trueBody":{"id":15438,"nodeType":"Block","src":"11013:49:62","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":15435,"name":"UpdateIsExpired","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16431,"src":"11034:15:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":15436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11034:17:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15437,"nodeType":"RevertStatement","src":"11027:24:62"}]}},{"assignments":[15441],"declarations":[{"constant":false,"id":15441,"mutability":"mutable","name":"lastExecutionTime","nameLocation":"11171:17:62","nodeType":"VariableDeclaration","scope":15500,"src":"11163:25:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15440,"name":"uint256","nodeType":"ElementaryTypeName","src":"11163:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15448,"initialValue":{"baseExpression":{"baseExpression":{"id":15442,"name":"lastExecutedAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15042,"src":"11191:14:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(bytes32 => mapping(address => uint256))"}},"id":15444,"indexExpression":{"id":15443,"name":"updateTypeKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15384,"src":"11206:13:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11191:29:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":15447,"indexExpression":{"expression":{"id":15445,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15379,"src":"11221:6:62","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":15446,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11228:6:62","memberName":"market","nodeType":"MemberAccess","referencedDeclaration":16549,"src":"11221:13:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11191:44:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11163:72:62"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":15459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15449,"name":"lastExecutionTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15441,"src":"11249:17:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":15450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11270:1:62","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11249:22:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15452,"name":"lastExecutionTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15441,"src":"11276:17:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":15453,"name":"config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15390,"src":"11296:6:62","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16320_storage_ptr","typeString":"struct IDestinationStewardReceiver.RiskParamConfig storage pointer"}},"id":15454,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11303:8:62","memberName":"debounce","nodeType":"MemberAccess","referencedDeclaration":16317,"src":"11296:15:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11276:35:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":15456,"name":"currentTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15396,"src":"11314:11:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11276:49:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":15458,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11275:51:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11249:77:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15464,"nodeType":"IfStatement","src":"11245:134:62","trueBody":{"id":15463,"nodeType":"Block","src":"11328:51:62","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":15460,"name":"UpdateTooFrequent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16434,"src":"11349:17:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":15461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11349:19:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15462,"nodeType":"RevertStatement","src":"11342:26:62"}]}},{"expression":{"id":15472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":15465,"name":"lastExecutedAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15042,"src":"11389:14:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(bytes32 => mapping(address => uint256))"}},"id":15469,"indexExpression":{"id":15466,"name":"updateTypeKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15384,"src":"11404:13:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11389:29:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":15470,"indexExpression":{"expression":{"id":15467,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15379,"src":"11419:6:62","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":15468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11426:6:62","memberName":"market","nodeType":"MemberAccess","referencedDeclaration":16549,"src":"11419:13:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11389:44:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15471,"name":"currentTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15396,"src":"11436:11:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11389:58:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15473,"nodeType":"ExpressionStatement","src":"11389:58:62"},{"expression":{"id":15479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15474,"name":"destUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15372,"src":"11457:10:62","typeDescriptions":{"typeIdentifier":"t_struct$_DestinationUpdate_$16332_storage_ptr","typeString":"struct IDestinationStewardReceiver.DestinationUpdate storage pointer"}},"id":15476,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11468:6:62","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":16327,"src":"11457:17:62","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateStatus_$16312","typeString":"enum IDestinationStewardReceiver.UpdateStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":15477,"name":"UpdateStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16312,"src":"11477:12:62","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_UpdateStatus_$16312_$","typeString":"type(enum IDestinationStewardReceiver.UpdateStatus)"}},"id":15478,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11490:8:62","memberName":"Executed","nodeType":"MemberAccess","referencedDeclaration":16310,"src":"11477:21:62","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateStatus_$16312","typeString":"enum IDestinationStewardReceiver.UpdateStatus"}},"src":"11457:41:62","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateStatus_$16312","typeString":"enum IDestinationStewardReceiver.UpdateStatus"}},"id":15480,"nodeType":"ExpressionStatement","src":"11457:41:62"},{"expression":{"id":15486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15481,"name":"destUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15372,"src":"11508:10:62","typeDescriptions":{"typeIdentifier":"t_struct$_DestinationUpdate_$16332_storage_ptr","typeString":"struct IDestinationStewardReceiver.DestinationUpdate storage pointer"}},"id":15483,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11519:8:62","memberName":"executor","nodeType":"MemberAccess","referencedDeclaration":16331,"src":"11508:19:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":15484,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"11530:3:62","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":15485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11534:6:62","memberName":"sender","nodeType":"MemberAccess","src":"11530:10:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11508:32:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15487,"nodeType":"ExpressionStatement","src":"11508:32:62"},{"expression":{"arguments":[{"id":15493,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15379,"src":"11596:6:62","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}],"expression":{"arguments":[{"expression":{"id":15489,"name":"config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15390,"src":"11564:6:62","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16320_storage_ptr","typeString":"struct IDestinationStewardReceiver.RiskParamConfig storage pointer"}},"id":15490,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11571:11:62","memberName":"riskSteward","nodeType":"MemberAccess","referencedDeclaration":16319,"src":"11564:18:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15488,"name":"IRiskSteward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16839,"src":"11551:12:62","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRiskSteward_$16839_$","typeString":"type(contract IRiskSteward)"}},"id":15491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11551:32:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRiskSteward_$16839","typeString":"contract IRiskSteward"}},"id":15492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11584:11:62","memberName":"applyUpdate","nodeType":"MemberAccess","referencedDeclaration":16838,"src":"11551:44:62","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_RiskParameterUpdate_$16568_memory_ptr_$returns$__$","typeString":"function (struct RiskParameterUpdate memory) external"}},"id":15494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11551:52:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15495,"nodeType":"ExpressionStatement","src":"11551:52:62"},{"eventCall":{"arguments":[{"id":15497,"name":"updateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15365,"src":"11640:8:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15496,"name":"RemoteUpdateExecuted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16389,"src":"11619:20:62","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":15498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11619:30:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15499,"nodeType":"EmitStatement","src":"11614:35:62"}]},"documentation":{"id":15363,"nodeType":"StructuredDocumentation","src":"9419:826:62","text":" @notice Executes a bridged update after its remote delay has passed.\n @param updateId The bridged update ID to execute\n @custom:access Only whitelisted executors can execute updates\n @custom:event Emits RemoteUpdateExecuted with the executed update ID\n @custom:error NotAnExecutor if the caller is not a whitelisted executor\n @custom:error ConfigNotActive if the configuration for the update type is not active\n @custom:error UpdateNotFound if the update is not pending for the given (updateType, market)\n @custom:error UpdateNotUnlocked if the remote delay has not elapsed\n @custom:error UpdateIsExpired if the bridged update has expired on the destination\n @custom:error UpdateTooFrequent if the debounce period has not passed since the last execution"},"functionSelector":"79edd100","id":15501,"implemented":true,"kind":"function","modifiers":[{"id":15368,"kind":"modifierInvocation","modifierName":{"id":15367,"name":"onlyWhitelistedExecutors","nameLocations":["10300:24:62"],"nodeType":"IdentifierPath","referencedDeclaration":15067,"src":"10300:24:62"},"nodeType":"ModifierInvocation","src":"10300:24:62"}],"name":"executeUpdate","nameLocation":"10259:13:62","nodeType":"FunctionDefinition","parameters":{"id":15366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15365,"mutability":"mutable","name":"updateId","nameLocation":"10281:8:62","nodeType":"VariableDeclaration","scope":15501,"src":"10273:16:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15364,"name":"uint256","nodeType":"ElementaryTypeName","src":"10273:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10272:18:62"},"returnParameters":{"id":15369,"nodeType":"ParameterList","parameters":[],"src":"10325:0:62"},"scope":16005,"src":"10250:1406:62","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[16502],"body":{"id":15537,"nodeType":"Block","src":"12197:269:62","statements":[{"assignments":[15511],"declarations":[{"constant":false,"id":15511,"mutability":"mutable","name":"destUpdate","nameLocation":"12233:10:62","nodeType":"VariableDeclaration","scope":15537,"src":"12207:36:62","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DestinationUpdate_$16332_storage_ptr","typeString":"struct IDestinationStewardReceiver.DestinationUpdate"},"typeName":{"id":15510,"nodeType":"UserDefinedTypeName","pathNode":{"id":15509,"name":"DestinationUpdate","nameLocations":["12207:17:62"],"nodeType":"IdentifierPath","referencedDeclaration":16332,"src":"12207:17:62"},"referencedDeclaration":16332,"src":"12207:17:62","typeDescriptions":{"typeIdentifier":"t_struct$_DestinationUpdate_$16332_storage_ptr","typeString":"struct IDestinationStewardReceiver.DestinationUpdate"}},"visibility":"internal"}],"id":15515,"initialValue":{"baseExpression":{"id":15512,"name":"updates","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15028,"src":"12246:7:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_DestinationUpdate_$16332_storage_$","typeString":"mapping(uint256 => struct IDestinationStewardReceiver.DestinationUpdate storage ref)"}},"id":15514,"indexExpression":{"id":15513,"name":"updateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15504,"src":"12254:8:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12246:17:62","typeDescriptions":{"typeIdentifier":"t_struct$_DestinationUpdate_$16332_storage","typeString":"struct IDestinationStewardReceiver.DestinationUpdate storage ref"}},"nodeType":"VariableDeclarationStatement","src":"12207:56:62"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_UpdateStatus_$16312","typeString":"enum IDestinationStewardReceiver.UpdateStatus"},"id":15520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15516,"name":"destUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15511,"src":"12278:10:62","typeDescriptions":{"typeIdentifier":"t_struct$_DestinationUpdate_$16332_storage_ptr","typeString":"struct IDestinationStewardReceiver.DestinationUpdate storage pointer"}},"id":15517,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12289:6:62","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":16327,"src":"12278:17:62","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateStatus_$16312","typeString":"enum IDestinationStewardReceiver.UpdateStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":15518,"name":"UpdateStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16312,"src":"12299:12:62","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_UpdateStatus_$16312_$","typeString":"type(enum IDestinationStewardReceiver.UpdateStatus)"}},"id":15519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12312:7:62","memberName":"Pending","nodeType":"MemberAccess","referencedDeclaration":16309,"src":"12299:20:62","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateStatus_$16312","typeString":"enum IDestinationStewardReceiver.UpdateStatus"}},"src":"12278:41:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15525,"nodeType":"IfStatement","src":"12274:95:62","trueBody":{"id":15524,"nodeType":"Block","src":"12321:48:62","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":15521,"name":"UpdateNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16422,"src":"12342:14:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":15522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12342:16:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15523,"nodeType":"RevertStatement","src":"12335:23:62"}]}},{"expression":{"id":15531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15526,"name":"destUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15511,"src":"12379:10:62","typeDescriptions":{"typeIdentifier":"t_struct$_DestinationUpdate_$16332_storage_ptr","typeString":"struct IDestinationStewardReceiver.DestinationUpdate storage pointer"}},"id":15528,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12390:6:62","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":16327,"src":"12379:17:62","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateStatus_$16312","typeString":"enum IDestinationStewardReceiver.UpdateStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":15529,"name":"UpdateStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16312,"src":"12399:12:62","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_UpdateStatus_$16312_$","typeString":"type(enum IDestinationStewardReceiver.UpdateStatus)"}},"id":15530,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12412:8:62","memberName":"Rejected","nodeType":"MemberAccess","referencedDeclaration":16311,"src":"12399:21:62","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateStatus_$16312","typeString":"enum IDestinationStewardReceiver.UpdateStatus"}},"src":"12379:41:62","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateStatus_$16312","typeString":"enum IDestinationStewardReceiver.UpdateStatus"}},"id":15532,"nodeType":"ExpressionStatement","src":"12379:41:62"},{"eventCall":{"arguments":[{"id":15534,"name":"updateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15504,"src":"12450:8:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15533,"name":"UpdateRejected","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16414,"src":"12435:14:62","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":15535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12435:24:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15536,"nodeType":"EmitStatement","src":"12430:29:62"}]},"documentation":{"id":15502,"nodeType":"StructuredDocumentation","src":"11662:456:62","text":" @notice Rejects a registered remote update on the destination chain.\n @param updateId The oracle update ID of the update to reject\n @custom:access Only whitelisted executors can reject updates\n @custom:event Emits UpdateRejected with the rejected update ID\n @custom:error NotAnExecutor if the caller is not a whitelisted executor\n @custom:error UpdateNotFound if there is no pending update with the given ID"},"functionSelector":"c3e10deb","id":15538,"implemented":true,"kind":"function","modifiers":[{"id":15507,"kind":"modifierInvocation","modifierName":{"id":15506,"name":"onlyWhitelistedExecutors","nameLocations":["12172:24:62"],"nodeType":"IdentifierPath","referencedDeclaration":15067,"src":"12172:24:62"},"nodeType":"ModifierInvocation","src":"12172:24:62"}],"name":"rejectUpdate","nameLocation":"12132:12:62","nodeType":"FunctionDefinition","parameters":{"id":15505,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15504,"mutability":"mutable","name":"updateId","nameLocation":"12153:8:62","nodeType":"VariableDeclaration","scope":15538,"src":"12145:16:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15503,"name":"uint256","nodeType":"ElementaryTypeName","src":"12145:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12144:18:62"},"returnParameters":{"id":15508,"nodeType":"ParameterList","parameters":[],"src":"12197:0:62"},"scope":16005,"src":"12123:343:62","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[16512],"body":{"id":15713,"nodeType":"Block","src":"13000:1398:62","statements":[{"assignments":[15550],"declarations":[{"constant":false,"id":15550,"mutability":"mutable","name":"updateTypeKey","nameLocation":"13018:13:62","nodeType":"VariableDeclaration","scope":15713,"src":"13010:21:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15549,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13010:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":15557,"initialValue":{"arguments":[{"arguments":[{"id":15554,"name":"updateType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15541,"src":"13050:10:62","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":15553,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13044:5:62","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":15552,"name":"bytes","nodeType":"ElementaryTypeName","src":"13044:5:62","typeDescriptions":{}}},"id":15555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13044:17:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":15551,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"13034:9:62","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":15556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13034:28:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"13010:52:62"},{"assignments":[15562],"declarations":[{"constant":false,"id":15562,"mutability":"mutable","name":"markets","nameLocation":"13089:7:62","nodeType":"VariableDeclaration","scope":15713,"src":"13072:24:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":15560,"name":"address","nodeType":"ElementaryTypeName","src":"13072:7:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15561,"nodeType":"ArrayTypeName","src":"13072:9:62","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":15568,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":15564,"name":"comptroller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15543,"src":"13125:11:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15563,"name":"IIsolatedPoolsComptroller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20452,"src":"13099:25:62","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IIsolatedPoolsComptroller_$20452_$","typeString":"type(contract IIsolatedPoolsComptroller)"}},"id":15565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13099:38:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IIsolatedPoolsComptroller_$20452","typeString":"contract IIsolatedPoolsComptroller"}},"id":15566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13138:13:62","memberName":"getAllMarkets","nodeType":"MemberAccess","referencedDeclaration":20431,"src":"13099:52:62","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function () view external returns (address[] memory)"}},"id":15567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13099:54:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"13072:81:62"},{"assignments":[15570],"declarations":[{"constant":false,"id":15570,"mutability":"mutable","name":"maxUpdates","nameLocation":"13171:10:62","nodeType":"VariableDeclaration","scope":15713,"src":"13163:18:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15569,"name":"uint256","nodeType":"ElementaryTypeName","src":"13163:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15573,"initialValue":{"expression":{"id":15571,"name":"markets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15562,"src":"13184:7:62","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":15572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13192:6:62","memberName":"length","nodeType":"MemberAccess","src":"13184:14:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13163:35:62"},{"assignments":[15578],"declarations":[{"constant":false,"id":15578,"mutability":"mutable","name":"tempArray","nameLocation":"13225:9:62","nodeType":"VariableDeclaration","scope":15713,"src":"13208:26:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":15576,"name":"uint256","nodeType":"ElementaryTypeName","src":"13208:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15577,"nodeType":"ArrayTypeName","src":"13208:9:62","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":15584,"initialValue":{"arguments":[{"id":15582,"name":"maxUpdates","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15570,"src":"13251:10:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15581,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"13237:13:62","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":15579,"name":"uint256","nodeType":"ElementaryTypeName","src":"13241:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15580,"nodeType":"ArrayTypeName","src":"13241:9:62","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":15583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13237:25:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"13208:54:62"},{"assignments":[15586],"declarations":[{"constant":false,"id":15586,"mutability":"mutable","name":"count","nameLocation":"13280:5:62","nodeType":"VariableDeclaration","scope":15713,"src":"13272:13:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15585,"name":"uint256","nodeType":"ElementaryTypeName","src":"13272:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15588,"initialValue":{"hexValue":"30","id":15587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13288:1:62","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"13272:17:62"},{"assignments":[15591],"declarations":[{"constant":false,"id":15591,"mutability":"mutable","name":"config","nameLocation":"13323:6:62","nodeType":"VariableDeclaration","scope":15713,"src":"13299:30:62","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16320_storage_ptr","typeString":"struct IDestinationStewardReceiver.RiskParamConfig"},"typeName":{"id":15590,"nodeType":"UserDefinedTypeName","pathNode":{"id":15589,"name":"RiskParamConfig","nameLocations":["13299:15:62"],"nodeType":"IdentifierPath","referencedDeclaration":16320,"src":"13299:15:62"},"referencedDeclaration":16320,"src":"13299:15:62","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16320_storage_ptr","typeString":"struct IDestinationStewardReceiver.RiskParamConfig"}},"visibility":"internal"}],"id":15595,"initialValue":{"baseExpression":{"id":15592,"name":"riskParameterConfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15022,"src":"13332:20:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RiskParamConfig_$16320_storage_$","typeString":"mapping(bytes32 => struct IDestinationStewardReceiver.RiskParamConfig storage ref)"}},"id":15594,"indexExpression":{"id":15593,"name":"updateTypeKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15550,"src":"13353:13:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13332:35:62","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16320_storage","typeString":"struct IDestinationStewardReceiver.RiskParamConfig storage ref"}},"nodeType":"VariableDeclarationStatement","src":"13299:68:62"},{"condition":{"id":15598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"13382:14:62","subExpression":{"expression":{"id":15596,"name":"config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15591,"src":"13383:6:62","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16320_storage_ptr","typeString":"struct IDestinationStewardReceiver.RiskParamConfig storage pointer"}},"id":15597,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13390:6:62","memberName":"active","nodeType":"MemberAccess","referencedDeclaration":16315,"src":"13383:13:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15605,"nodeType":"IfStatement","src":"13378:43:62","trueBody":{"expression":{"arguments":[{"hexValue":"30","id":15602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13419:1:62","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":15601,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"13405:13:62","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":15599,"name":"uint256","nodeType":"ElementaryTypeName","src":"13409:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15600,"nodeType":"ArrayTypeName","src":"13409:9:62","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":15603,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13405:16:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":15548,"id":15604,"nodeType":"Return","src":"13398:23:62"}},{"body":{"id":15683,"nodeType":"Block","src":"13473:763:62","statements":[{"assignments":[15617],"declarations":[{"constant":false,"id":15617,"mutability":"mutable","name":"market","nameLocation":"13495:6:62","nodeType":"VariableDeclaration","scope":15683,"src":"13487:14:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15616,"name":"address","nodeType":"ElementaryTypeName","src":"13487:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":15621,"initialValue":{"baseExpression":{"id":15618,"name":"markets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15562,"src":"13504:7:62","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":15620,"indexExpression":{"id":15619,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15607,"src":"13512:1:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13504:10:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"13487:27:62"},{"assignments":[15623],"declarations":[{"constant":false,"id":15623,"mutability":"mutable","name":"registeredUpdateId","nameLocation":"13536:18:62","nodeType":"VariableDeclaration","scope":15683,"src":"13528:26:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15622,"name":"uint256","nodeType":"ElementaryTypeName","src":"13528:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15629,"initialValue":{"baseExpression":{"baseExpression":{"id":15624,"name":"lastRegisteredUpdateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15035,"src":"13557:22:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(bytes32 => mapping(address => uint256))"}},"id":15626,"indexExpression":{"id":15625,"name":"updateTypeKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15550,"src":"13580:13:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13557:37:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":15628,"indexExpression":{"id":15627,"name":"market","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15617,"src":"13595:6:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13557:45:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13528:74:62"},{"assignments":[15632],"declarations":[{"constant":false,"id":15632,"mutability":"mutable","name":"destUpdate","nameLocation":"13642:10:62","nodeType":"VariableDeclaration","scope":15683,"src":"13616:36:62","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DestinationUpdate_$16332_storage_ptr","typeString":"struct IDestinationStewardReceiver.DestinationUpdate"},"typeName":{"id":15631,"nodeType":"UserDefinedTypeName","pathNode":{"id":15630,"name":"DestinationUpdate","nameLocations":["13616:17:62"],"nodeType":"IdentifierPath","referencedDeclaration":16332,"src":"13616:17:62"},"referencedDeclaration":16332,"src":"13616:17:62","typeDescriptions":{"typeIdentifier":"t_struct$_DestinationUpdate_$16332_storage_ptr","typeString":"struct IDestinationStewardReceiver.DestinationUpdate"}},"visibility":"internal"}],"id":15636,"initialValue":{"baseExpression":{"id":15633,"name":"updates","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15028,"src":"13655:7:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_DestinationUpdate_$16332_storage_$","typeString":"mapping(uint256 => struct IDestinationStewardReceiver.DestinationUpdate storage ref)"}},"id":15635,"indexExpression":{"id":15634,"name":"registeredUpdateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15623,"src":"13663:18:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13655:27:62","typeDescriptions":{"typeIdentifier":"t_struct$_DestinationUpdate_$16332_storage","typeString":"struct IDestinationStewardReceiver.DestinationUpdate storage ref"}},"nodeType":"VariableDeclarationStatement","src":"13616:66:62"},{"condition":{"id":15640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"13701:40:62","subExpression":{"arguments":[{"id":15638,"name":"registeredUpdateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15623,"src":"13722:18:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15637,"name":"_checkPendingUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15995,"src":"13702:19:62","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":15639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13702:39:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15642,"nodeType":"IfStatement","src":"13697:54:62","trueBody":{"id":15641,"nodeType":"Continue","src":"13743:8:62"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15643,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"13807:5:62","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":15644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13813:9:62","memberName":"timestamp","nodeType":"MemberAccess","src":"13807:15:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15645,"name":"destUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15632,"src":"13825:10:62","typeDescriptions":{"typeIdentifier":"t_struct$_DestinationUpdate_$16332_storage_ptr","typeString":"struct IDestinationStewardReceiver.DestinationUpdate storage pointer"}},"id":15646,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13836:11:62","memberName":"arrivalTime","nodeType":"MemberAccess","referencedDeclaration":16329,"src":"13825:22:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":15647,"name":"remoteDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15016,"src":"13850:11:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13825:36:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13807:54:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15651,"nodeType":"IfStatement","src":"13803:68:62","trueBody":{"id":15650,"nodeType":"Continue","src":"13863:8:62"}},{"assignments":[15653],"declarations":[{"constant":false,"id":15653,"mutability":"mutable","name":"lastExecutionTime","nameLocation":"13986:17:62","nodeType":"VariableDeclaration","scope":15683,"src":"13978:25:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15652,"name":"uint256","nodeType":"ElementaryTypeName","src":"13978:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15659,"initialValue":{"baseExpression":{"baseExpression":{"id":15654,"name":"lastExecutedAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15042,"src":"14006:14:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(bytes32 => mapping(address => uint256))"}},"id":15656,"indexExpression":{"id":15655,"name":"updateTypeKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15550,"src":"14021:13:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14006:29:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":15658,"indexExpression":{"id":15657,"name":"market","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15617,"src":"14036:6:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14006:37:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13978:65:62"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":15671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15660,"name":"lastExecutionTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15653,"src":"14061:17:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":15661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14082:1:62","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14061:22:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15663,"name":"lastExecutionTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15653,"src":"14088:17:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":15664,"name":"config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15591,"src":"14108:6:62","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16320_storage_ptr","typeString":"struct IDestinationStewardReceiver.RiskParamConfig storage pointer"}},"id":15665,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14115:8:62","memberName":"debounce","nodeType":"MemberAccess","referencedDeclaration":16317,"src":"14108:15:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14088:35:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":15667,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"14126:5:62","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":15668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14132:9:62","memberName":"timestamp","nodeType":"MemberAccess","src":"14126:15:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14088:53:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":15670,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14087:55:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14061:81:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15673,"nodeType":"IfStatement","src":"14057:95:62","trueBody":{"id":15672,"nodeType":"Continue","src":"14144:8:62"}},{"expression":{"id":15678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":15674,"name":"tempArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15578,"src":"14167:9:62","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":15676,"indexExpression":{"id":15675,"name":"count","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15586,"src":"14177:5:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14167:16:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15677,"name":"registeredUpdateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15623,"src":"14186:18:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14167:37:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15679,"nodeType":"ExpressionStatement","src":"14167:37:62"},{"expression":{"id":15681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"14218:7:62","subExpression":{"id":15680,"name":"count","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15586,"src":"14218:5:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15682,"nodeType":"ExpressionStatement","src":"14218:7:62"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15610,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15607,"src":"13452:1:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":15611,"name":"maxUpdates","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15570,"src":"13456:10:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13452:14:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15684,"initializationExpression":{"assignments":[15607],"declarations":[{"constant":false,"id":15607,"mutability":"mutable","name":"i","nameLocation":"13445:1:62","nodeType":"VariableDeclaration","scope":15684,"src":"13437:9:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15606,"name":"uint256","nodeType":"ElementaryTypeName","src":"13437:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15609,"initialValue":{"hexValue":"30","id":15608,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13449:1:62","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"13437:13:62"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":15614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"13468:3:62","subExpression":{"id":15613,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15607,"src":"13470:1:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15615,"nodeType":"ExpressionStatement","src":"13468:3:62"},"nodeType":"ForStatement","src":"13432:804:62"},{"expression":{"id":15691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15685,"name":"executableUpdates","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15547,"src":"14246:17:62","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":15689,"name":"count","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15586,"src":"14280:5:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15688,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"14266:13:62","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":15686,"name":"uint256","nodeType":"ElementaryTypeName","src":"14270:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15687,"nodeType":"ArrayTypeName","src":"14270:9:62","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":15690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14266:20:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"14246:40:62","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":15692,"nodeType":"ExpressionStatement","src":"14246:40:62"},{"body":{"id":15711,"nodeType":"Block","src":"14332:60:62","statements":[{"expression":{"id":15709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":15703,"name":"executableUpdates","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15547,"src":"14346:17:62","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":15705,"indexExpression":{"id":15704,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15694,"src":"14364:1:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14346:20:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":15706,"name":"tempArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15578,"src":"14369:9:62","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":15708,"indexExpression":{"id":15707,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15694,"src":"14379:1:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14369:12:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14346:35:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15710,"nodeType":"ExpressionStatement","src":"14346:35:62"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15697,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15694,"src":"14316:1:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":15698,"name":"count","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15586,"src":"14320:5:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14316:9:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15712,"initializationExpression":{"assignments":[15694],"declarations":[{"constant":false,"id":15694,"mutability":"mutable","name":"i","nameLocation":"14309:1:62","nodeType":"VariableDeclaration","scope":15712,"src":"14301:9:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15693,"name":"uint256","nodeType":"ElementaryTypeName","src":"14301:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15696,"initialValue":{"hexValue":"30","id":15695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14313:1:62","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14301:13:62"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":15701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"14327:3:62","subExpression":{"id":15700,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15694,"src":"14329:1:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15702,"nodeType":"ExpressionStatement","src":"14327:3:62"},"nodeType":"ForStatement","src":"14296:96:62"}]},"documentation":{"id":15539,"nodeType":"StructuredDocumentation","src":"12472:363:62","text":" @notice Returns executable updates for a given update type and comptroller.\n @param updateType The human‑readable identifier of the update type to filter by\n @param comptroller The address of the Isolated Pools Comptroller that manages the markets\n @return executableUpdates Array of update IDs that are ready to be executed"},"functionSelector":"f63106e4","id":15714,"implemented":true,"kind":"function","modifiers":[],"name":"getExecutableUpdates","nameLocation":"12849:20:62","nodeType":"FunctionDefinition","parameters":{"id":15544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15541,"mutability":"mutable","name":"updateType","nameLocation":"12895:10:62","nodeType":"VariableDeclaration","scope":15714,"src":"12879:26:62","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":15540,"name":"string","nodeType":"ElementaryTypeName","src":"12879:6:62","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15543,"mutability":"mutable","name":"comptroller","nameLocation":"12923:11:62","nodeType":"VariableDeclaration","scope":15714,"src":"12915:19:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15542,"name":"address","nodeType":"ElementaryTypeName","src":"12915:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12869:71:62"},"returnParameters":{"id":15548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15547,"mutability":"mutable","name":"executableUpdates","nameLocation":"12981:17:62","nodeType":"VariableDeclaration","scope":15714,"src":"12964:34:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":15545,"name":"uint256","nodeType":"ElementaryTypeName","src":"12964:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15546,"nodeType":"ArrayTypeName","src":"12964:9:62","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"12963:36:62"},"scope":16005,"src":"12840:1558:62","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[16520],"body":{"id":15736,"nodeType":"Block","src":"14729:101:62","statements":[{"assignments":[15724],"declarations":[{"constant":false,"id":15724,"mutability":"mutable","name":"key","nameLocation":"14747:3:62","nodeType":"VariableDeclaration","scope":15736,"src":"14739:11:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15723,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14739:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":15731,"initialValue":{"arguments":[{"arguments":[{"id":15728,"name":"updateType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15717,"src":"14769:10:62","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":15727,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14763:5:62","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":15726,"name":"bytes","nodeType":"ElementaryTypeName","src":"14763:5:62","typeDescriptions":{}}},"id":15729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14763:17:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":15725,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"14753:9:62","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":15730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14753:28:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"14739:42:62"},{"expression":{"baseExpression":{"id":15732,"name":"riskParameterConfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15022,"src":"14798:20:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RiskParamConfig_$16320_storage_$","typeString":"mapping(bytes32 => struct IDestinationStewardReceiver.RiskParamConfig storage ref)"}},"id":15734,"indexExpression":{"id":15733,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15724,"src":"14819:3:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14798:25:62","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16320_storage","typeString":"struct IDestinationStewardReceiver.RiskParamConfig storage ref"}},"functionReturnParameters":15722,"id":15735,"nodeType":"Return","src":"14791:32:62"}]},"documentation":{"id":15715,"nodeType":"StructuredDocumentation","src":"14404:213:62","text":" @notice Returns the risk parameter configuration for a given update type\n @param updateType The human-readable identifier of the update type\n @return The risk parameter configuration"},"functionSelector":"28207141","id":15737,"implemented":true,"kind":"function","modifiers":[],"name":"getRiskParameterConfig","nameLocation":"14631:22:62","nodeType":"FunctionDefinition","parameters":{"id":15718,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15717,"mutability":"mutable","name":"updateType","nameLocation":"14670:10:62","nodeType":"VariableDeclaration","scope":15737,"src":"14654:26:62","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":15716,"name":"string","nodeType":"ElementaryTypeName","src":"14654:6:62","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"14653:28:62"},"returnParameters":{"id":15722,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15721,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15737,"src":"14705:22:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16320_memory_ptr","typeString":"struct IDestinationStewardReceiver.RiskParamConfig"},"typeName":{"id":15720,"nodeType":"UserDefinedTypeName","pathNode":{"id":15719,"name":"RiskParamConfig","nameLocations":["14705:15:62"],"nodeType":"IdentifierPath","referencedDeclaration":16320,"src":"14705:15:62"},"referencedDeclaration":16320,"src":"14705:15:62","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16320_storage_ptr","typeString":"struct IDestinationStewardReceiver.RiskParamConfig"}},"visibility":"internal"}],"src":"14704:24:62"},"scope":16005,"src":"14622:208:62","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[16530],"body":{"id":15769,"nodeType":"Block","src":"15234:157:62","statements":[{"assignments":[15749],"declarations":[{"constant":false,"id":15749,"mutability":"mutable","name":"key","nameLocation":"15252:3:62","nodeType":"VariableDeclaration","scope":15769,"src":"15244:11:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15748,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15244:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":15756,"initialValue":{"arguments":[{"arguments":[{"id":15753,"name":"updateType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15740,"src":"15274:10:62","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":15752,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15268:5:62","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":15751,"name":"bytes","nodeType":"ElementaryTypeName","src":"15268:5:62","typeDescriptions":{}}},"id":15754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15268:17:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":15750,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"15258:9:62","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":15755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15258:28:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"15244:42:62"},{"assignments":[15758],"declarations":[{"constant":false,"id":15758,"mutability":"mutable","name":"updateId","nameLocation":"15304:8:62","nodeType":"VariableDeclaration","scope":15769,"src":"15296:16:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15757,"name":"uint256","nodeType":"ElementaryTypeName","src":"15296:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15764,"initialValue":{"baseExpression":{"baseExpression":{"id":15759,"name":"lastRegisteredUpdateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15035,"src":"15315:22:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(bytes32 => mapping(address => uint256))"}},"id":15761,"indexExpression":{"id":15760,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15749,"src":"15338:3:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15315:27:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":15763,"indexExpression":{"id":15762,"name":"market","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15742,"src":"15343:6:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15315:35:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15296:54:62"},{"expression":{"baseExpression":{"id":15765,"name":"updates","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15028,"src":"15367:7:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_DestinationUpdate_$16332_storage_$","typeString":"mapping(uint256 => struct IDestinationStewardReceiver.DestinationUpdate storage ref)"}},"id":15767,"indexExpression":{"id":15766,"name":"updateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15758,"src":"15375:8:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15367:17:62","typeDescriptions":{"typeIdentifier":"t_struct$_DestinationUpdate_$16332_storage","typeString":"struct IDestinationStewardReceiver.DestinationUpdate storage ref"}},"functionReturnParameters":15747,"id":15768,"nodeType":"Return","src":"15360:24:62"}]},"documentation":{"id":15738,"nodeType":"StructuredDocumentation","src":"14836:249:62","text":" @notice Returns the registered update for a given update type and market\n @param updateType The human-readable identifier of the update type\n @param market The address of the market\n @return The registered update"},"functionSelector":"f5d3b7b3","id":15770,"implemented":true,"kind":"function","modifiers":[],"name":"getRegisteredUpdate","nameLocation":"15099:19:62","nodeType":"FunctionDefinition","parameters":{"id":15743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15740,"mutability":"mutable","name":"updateType","nameLocation":"15144:10:62","nodeType":"VariableDeclaration","scope":15770,"src":"15128:26:62","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":15739,"name":"string","nodeType":"ElementaryTypeName","src":"15128:6:62","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15742,"mutability":"mutable","name":"market","nameLocation":"15172:6:62","nodeType":"VariableDeclaration","scope":15770,"src":"15164:14:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15741,"name":"address","nodeType":"ElementaryTypeName","src":"15164:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15118:66:62"},"returnParameters":{"id":15747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15746,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15770,"src":"15208:24:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_DestinationUpdate_$16332_memory_ptr","typeString":"struct IDestinationStewardReceiver.DestinationUpdate"},"typeName":{"id":15745,"nodeType":"UserDefinedTypeName","pathNode":{"id":15744,"name":"DestinationUpdate","nameLocations":["15208:17:62"],"nodeType":"IdentifierPath","referencedDeclaration":16332,"src":"15208:17:62"},"referencedDeclaration":16332,"src":"15208:17:62","typeDescriptions":{"typeIdentifier":"t_struct$_DestinationUpdate_$16332_storage_ptr","typeString":"struct IDestinationStewardReceiver.DestinationUpdate"}},"visibility":"internal"}],"src":"15207:26:62"},"scope":16005,"src":"15090:301:62","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[16539],"body":{"id":15795,"nodeType":"Block","src":"15766:103:62","statements":[{"assignments":[15781],"declarations":[{"constant":false,"id":15781,"mutability":"mutable","name":"key","nameLocation":"15784:3:62","nodeType":"VariableDeclaration","scope":15795,"src":"15776:11:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15780,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15776:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":15788,"initialValue":{"arguments":[{"arguments":[{"id":15785,"name":"updateType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15773,"src":"15806:10:62","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":15784,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15800:5:62","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":15783,"name":"bytes","nodeType":"ElementaryTypeName","src":"15800:5:62","typeDescriptions":{}}},"id":15786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15800:17:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":15782,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"15790:9:62","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":15787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15790:28:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"15776:42:62"},{"expression":{"baseExpression":{"baseExpression":{"id":15789,"name":"lastExecutedAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15042,"src":"15835:14:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(bytes32 => mapping(address => uint256))"}},"id":15791,"indexExpression":{"id":15790,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15781,"src":"15850:3:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15835:19:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":15793,"indexExpression":{"id":15792,"name":"market","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15775,"src":"15855:6:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15835:27:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15779,"id":15794,"nodeType":"Return","src":"15828:34:62"}]},"documentation":{"id":15771,"nodeType":"StructuredDocumentation","src":"15397:261:62","text":" @notice Returns the last executed timestamp for a given update type and market\n @param updateType The human-readable identifier of the update type\n @param market The address of the market\n @return The last executed timestamp"},"functionSelector":"be3881b4","id":15796,"implemented":true,"kind":"function","modifiers":[],"name":"getLastExecutedAt","nameLocation":"15672:17:62","nodeType":"FunctionDefinition","parameters":{"id":15776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15773,"mutability":"mutable","name":"updateType","nameLocation":"15706:10:62","nodeType":"VariableDeclaration","scope":15796,"src":"15690:26:62","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":15772,"name":"string","nodeType":"ElementaryTypeName","src":"15690:6:62","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15775,"mutability":"mutable","name":"market","nameLocation":"15726:6:62","nodeType":"VariableDeclaration","scope":15796,"src":"15718:14:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15774,"name":"address","nodeType":"ElementaryTypeName","src":"15718:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15689:44:62"},"returnParameters":{"id":15779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15778,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15796,"src":"15757:7:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15777,"name":"uint256","nodeType":"ElementaryTypeName","src":"15757:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15756:9:62"},"scope":16005,"src":"15663:206:62","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[5902,6053],"body":{"id":15813,"nodeType":"Block","src":"16167:68:62","statements":[{"expression":{"arguments":[{"id":15810,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15799,"src":"16219:8:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15807,"name":"Ownable2StepUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5947,"src":"16177:23:62","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Ownable2StepUpgradeable_$5947_$","typeString":"type(contract Ownable2StepUpgradeable)"}},"id":15809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16201:17:62","memberName":"transferOwnership","nodeType":"MemberAccess","referencedDeclaration":5902,"src":"16177:41:62","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":15811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16177:51:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15812,"nodeType":"ExpressionStatement","src":"16177:51:62"}]},"documentation":{"id":15797,"nodeType":"StructuredDocumentation","src":"15875:157:62","text":" @dev Overrides OwnableUpgradeable and Ownable2StepUpgradeable to resolve\n      the multiple inheritance ownership transfer conflict."},"functionSelector":"f2fde38b","id":15814,"implemented":true,"kind":"function","modifiers":[{"id":15805,"kind":"modifierInvocation","modifierName":{"id":15804,"name":"onlyOwner","nameLocations":["16157:9:62"],"nodeType":"IdentifierPath","referencedDeclaration":5993,"src":"16157:9:62"},"nodeType":"ModifierInvocation","src":"16157:9:62"}],"name":"transferOwnership","nameLocation":"16046:17:62","nodeType":"FunctionDefinition","overrides":{"id":15803,"nodeType":"OverrideSpecifier","overrides":[{"id":15801,"name":"OwnableUpgradeable","nameLocations":["16112:18:62"],"nodeType":"IdentifierPath","referencedDeclaration":6079,"src":"16112:18:62"},{"id":15802,"name":"Ownable2StepUpgradeable","nameLocations":["16132:23:62"],"nodeType":"IdentifierPath","referencedDeclaration":5947,"src":"16132:23:62"}],"src":"16103:53:62"},"parameters":{"id":15800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15799,"mutability":"mutable","name":"newOwner","nameLocation":"16081:8:62","nodeType":"VariableDeclaration","scope":15814,"src":"16073:16:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15798,"name":"address","nodeType":"ElementaryTypeName","src":"16073:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16063:32:62"},"returnParameters":{"id":15806,"nodeType":"ParameterList","parameters":[],"src":"16167:0:62"},"scope":16005,"src":"16037:198:62","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[5919,6073],"body":{"id":15829,"nodeType":"Block","src":"16519:69:62","statements":[{"expression":{"arguments":[{"id":15826,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15817,"src":"16572:8:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15823,"name":"Ownable2StepUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5947,"src":"16529:23:62","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Ownable2StepUpgradeable_$5947_$","typeString":"type(contract Ownable2StepUpgradeable)"}},"id":15825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16553:18:62","memberName":"_transferOwnership","nodeType":"MemberAccess","referencedDeclaration":5919,"src":"16529:42:62","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":15827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16529:52:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15828,"nodeType":"ExpressionStatement","src":"16529:52:62"}]},"documentation":{"id":15815,"nodeType":"StructuredDocumentation","src":"16241:164:62","text":" @dev Internal hook to finalize ownership transfer, resolving the\n      OwnableUpgradeable and Ownable2StepUpgradeable inheritance conflict."},"id":15830,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"16419:18:62","nodeType":"FunctionDefinition","overrides":{"id":15821,"nodeType":"OverrideSpecifier","overrides":[{"id":15819,"name":"OwnableUpgradeable","nameLocations":["16474:18:62"],"nodeType":"IdentifierPath","referencedDeclaration":6079,"src":"16474:18:62"},{"id":15820,"name":"Ownable2StepUpgradeable","nameLocations":["16494:23:62"],"nodeType":"IdentifierPath","referencedDeclaration":5947,"src":"16494:23:62"}],"src":"16465:53:62"},"parameters":{"id":15818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15817,"mutability":"mutable","name":"newOwner","nameLocation":"16446:8:62","nodeType":"VariableDeclaration","scope":15830,"src":"16438:16:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15816,"name":"address","nodeType":"ElementaryTypeName","src":"16438:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16437:18:62"},"returnParameters":{"id":15822,"nodeType":"ParameterList","parameters":[],"src":"16519:0:62"},"scope":16005,"src":"16410:178:62","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[2197],"body":{"id":15955,"nodeType":"Block","src":"17134:1205:62","statements":[{"assignments":[15848],"declarations":[{"constant":false,"id":15848,"mutability":"mutable","name":"update","nameLocation":"17171:6:62","nodeType":"VariableDeclaration","scope":15955,"src":"17144:33:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate"},"typeName":{"id":15847,"nodeType":"UserDefinedTypeName","pathNode":{"id":15846,"name":"RiskParameterUpdate","nameLocations":["17144:19:62"],"nodeType":"IdentifierPath","referencedDeclaration":16568,"src":"17144:19:62"},"referencedDeclaration":16568,"src":"17144:19:62","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_storage_ptr","typeString":"struct RiskParameterUpdate"}},"visibility":"internal"}],"id":15855,"initialValue":{"arguments":[{"id":15851,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15838,"src":"17191:7:62","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":15852,"name":"RiskParameterUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16568,"src":"17201:19:62","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RiskParameterUpdate_$16568_storage_ptr_$","typeString":"type(struct RiskParameterUpdate storage pointer)"}}],"id":15853,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"17200:21:62","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RiskParameterUpdate_$16568_storage_ptr_$","typeString":"type(struct RiskParameterUpdate storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_RiskParameterUpdate_$16568_storage_ptr_$","typeString":"type(struct RiskParameterUpdate storage pointer)"}],"expression":{"id":15849,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17180:3:62","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15850,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17184:6:62","memberName":"decode","nodeType":"MemberAccess","src":"17180:10:62","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":15854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17180:42:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"nodeType":"VariableDeclarationStatement","src":"17144:78:62"},{"assignments":[15857],"declarations":[{"constant":false,"id":15857,"mutability":"mutable","name":"newId","nameLocation":"17240:5:62","nodeType":"VariableDeclaration","scope":15955,"src":"17232:13:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15856,"name":"uint256","nodeType":"ElementaryTypeName","src":"17232:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15860,"initialValue":{"expression":{"id":15858,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15848,"src":"17248:6:62","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":15859,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17255:8:62","memberName":"updateId","nodeType":"MemberAccess","referencedDeclaration":16547,"src":"17248:15:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17232:31:62"},{"assignments":[15862],"declarations":[{"constant":false,"id":15862,"mutability":"mutable","name":"arrivalTime","nameLocation":"17281:11:62","nodeType":"VariableDeclaration","scope":15955,"src":"17273:19:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15861,"name":"uint256","nodeType":"ElementaryTypeName","src":"17273:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15865,"initialValue":{"expression":{"id":15863,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"17295:5:62","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":15864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17301:9:62","memberName":"timestamp","nodeType":"MemberAccess","src":"17295:15:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17273:37:62"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_UpdateStatus_$16312","typeString":"enum IDestinationStewardReceiver.UpdateStatus"},"id":15872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":15866,"name":"updates","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15028,"src":"17416:7:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_DestinationUpdate_$16332_storage_$","typeString":"mapping(uint256 => struct IDestinationStewardReceiver.DestinationUpdate storage ref)"}},"id":15868,"indexExpression":{"id":15867,"name":"newId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15857,"src":"17424:5:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17416:14:62","typeDescriptions":{"typeIdentifier":"t_struct$_DestinationUpdate_$16332_storage","typeString":"struct IDestinationStewardReceiver.DestinationUpdate storage ref"}},"id":15869,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17431:6:62","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":16327,"src":"17416:21:62","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateStatus_$16312","typeString":"enum IDestinationStewardReceiver.UpdateStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":15870,"name":"UpdateStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16312,"src":"17441:12:62","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_UpdateStatus_$16312_$","typeString":"type(enum IDestinationStewardReceiver.UpdateStatus)"}},"id":15871,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17454:4:62","memberName":"None","nodeType":"MemberAccess","referencedDeclaration":16308,"src":"17441:17:62","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateStatus_$16312","typeString":"enum IDestinationStewardReceiver.UpdateStatus"}},"src":"17416:42:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15884,"nodeType":"IfStatement","src":"17412:175:62","trueBody":{"id":15883,"nodeType":"Block","src":"17460:127:62","statements":[{"eventCall":{"arguments":[{"id":15874,"name":"newId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15857,"src":"17503:5:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15875,"name":"arrivalTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15862,"src":"17510:11:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":15876,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15848,"src":"17523:6:62","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":15877,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17530:10:62","memberName":"updateType","nodeType":"MemberAccess","referencedDeclaration":16551,"src":"17523:17:62","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":15878,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15848,"src":"17542:6:62","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":15879,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17549:6:62","memberName":"market","nodeType":"MemberAccess","referencedDeclaration":16549,"src":"17542:13:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"id":15873,"name":"DuplicateUpdateReceived","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16384,"src":"17479:23:62","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$_t_address_$returns$__$","typeString":"function (uint256,uint256,string memory,address)"}},"id":15880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17479:77:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15881,"nodeType":"EmitStatement","src":"17474:82:62"},{"functionReturnParameters":15845,"id":15882,"nodeType":"Return","src":"17570:7:62"}]}},{"assignments":[15886],"declarations":[{"constant":false,"id":15886,"mutability":"mutable","name":"currentRegisteredId","nameLocation":"17686:19:62","nodeType":"VariableDeclaration","scope":15955,"src":"17678:27:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15885,"name":"uint256","nodeType":"ElementaryTypeName","src":"17678:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15894,"initialValue":{"baseExpression":{"baseExpression":{"id":15887,"name":"lastRegisteredUpdateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15035,"src":"17708:22:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(bytes32 => mapping(address => uint256))"}},"id":15890,"indexExpression":{"expression":{"id":15888,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15848,"src":"17731:6:62","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":15889,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17738:13:62","memberName":"updateTypeKey","nodeType":"MemberAccess","referencedDeclaration":16553,"src":"17731:20:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17708:44:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":15893,"indexExpression":{"expression":{"id":15891,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15848,"src":"17753:6:62","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":15892,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17760:6:62","memberName":"market","nodeType":"MemberAccess","referencedDeclaration":16549,"src":"17753:13:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17708:59:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17678:89:62"},{"condition":{"arguments":[{"id":15896,"name":"currentRegisteredId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15886,"src":"17801:19:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15895,"name":"_checkPendingUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15995,"src":"17781:19:62","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":15897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17781:40:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15909,"nodeType":"IfStatement","src":"17777:192:62","trueBody":{"id":15908,"nodeType":"Block","src":"17823:146:62","statements":[{"eventCall":{"arguments":[{"id":15899,"name":"currentRegisteredId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15886,"src":"17871:19:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15900,"name":"arrivalTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15862,"src":"17892:11:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":15901,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15848,"src":"17905:6:62","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":15902,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17912:10:62","memberName":"updateType","nodeType":"MemberAccess","referencedDeclaration":16551,"src":"17905:17:62","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":15903,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15848,"src":"17924:6:62","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":15904,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17931:6:62","memberName":"market","nodeType":"MemberAccess","referencedDeclaration":16549,"src":"17924:13:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"id":15898,"name":"RegisteredPendingUpdateExist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16373,"src":"17842:28:62","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$_t_address_$returns$__$","typeString":"function (uint256,uint256,string memory,address)"}},"id":15905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17842:96:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15906,"nodeType":"EmitStatement","src":"17837:101:62"},{"functionReturnParameters":15845,"id":15907,"nodeType":"Return","src":"17952:7:62"}]}},{"assignments":[15912],"declarations":[{"constant":false,"id":15912,"mutability":"mutable","name":"destUpdate","nameLocation":"18005:10:62","nodeType":"VariableDeclaration","scope":15955,"src":"17979:36:62","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DestinationUpdate_$16332_storage_ptr","typeString":"struct IDestinationStewardReceiver.DestinationUpdate"},"typeName":{"id":15911,"nodeType":"UserDefinedTypeName","pathNode":{"id":15910,"name":"DestinationUpdate","nameLocations":["17979:17:62"],"nodeType":"IdentifierPath","referencedDeclaration":16332,"src":"17979:17:62"},"referencedDeclaration":16332,"src":"17979:17:62","typeDescriptions":{"typeIdentifier":"t_struct$_DestinationUpdate_$16332_storage_ptr","typeString":"struct IDestinationStewardReceiver.DestinationUpdate"}},"visibility":"internal"}],"id":15916,"initialValue":{"baseExpression":{"id":15913,"name":"updates","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15028,"src":"18018:7:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_DestinationUpdate_$16332_storage_$","typeString":"mapping(uint256 => struct IDestinationStewardReceiver.DestinationUpdate storage ref)"}},"id":15915,"indexExpression":{"id":15914,"name":"newId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15857,"src":"18026:5:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18018:14:62","typeDescriptions":{"typeIdentifier":"t_struct$_DestinationUpdate_$16332_storage","typeString":"struct IDestinationStewardReceiver.DestinationUpdate storage ref"}},"nodeType":"VariableDeclarationStatement","src":"17979:53:62"},{"expression":{"id":15921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15917,"name":"destUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15912,"src":"18042:10:62","typeDescriptions":{"typeIdentifier":"t_struct$_DestinationUpdate_$16332_storage_ptr","typeString":"struct IDestinationStewardReceiver.DestinationUpdate storage pointer"}},"id":15919,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"18053:6:62","memberName":"update","nodeType":"MemberAccess","referencedDeclaration":16324,"src":"18042:17:62","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_storage","typeString":"struct RiskParameterUpdate storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15920,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15848,"src":"18062:6:62","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"src":"18042:26:62","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_storage","typeString":"struct RiskParameterUpdate storage ref"}},"id":15922,"nodeType":"ExpressionStatement","src":"18042:26:62"},{"expression":{"id":15928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15923,"name":"destUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15912,"src":"18078:10:62","typeDescriptions":{"typeIdentifier":"t_struct$_DestinationUpdate_$16332_storage_ptr","typeString":"struct IDestinationStewardReceiver.DestinationUpdate storage pointer"}},"id":15925,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"18089:6:62","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":16327,"src":"18078:17:62","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateStatus_$16312","typeString":"enum IDestinationStewardReceiver.UpdateStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":15926,"name":"UpdateStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16312,"src":"18098:12:62","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_UpdateStatus_$16312_$","typeString":"type(enum IDestinationStewardReceiver.UpdateStatus)"}},"id":15927,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18111:7:62","memberName":"Pending","nodeType":"MemberAccess","referencedDeclaration":16309,"src":"18098:20:62","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateStatus_$16312","typeString":"enum IDestinationStewardReceiver.UpdateStatus"}},"src":"18078:40:62","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateStatus_$16312","typeString":"enum IDestinationStewardReceiver.UpdateStatus"}},"id":15929,"nodeType":"ExpressionStatement","src":"18078:40:62"},{"expression":{"id":15934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15930,"name":"destUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15912,"src":"18128:10:62","typeDescriptions":{"typeIdentifier":"t_struct$_DestinationUpdate_$16332_storage_ptr","typeString":"struct IDestinationStewardReceiver.DestinationUpdate storage pointer"}},"id":15932,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"18139:11:62","memberName":"arrivalTime","nodeType":"MemberAccess","referencedDeclaration":16329,"src":"18128:22:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15933,"name":"arrivalTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15862,"src":"18153:11:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18128:36:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15935,"nodeType":"ExpressionStatement","src":"18128:36:62"},{"expression":{"id":15944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":15936,"name":"lastRegisteredUpdateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15035,"src":"18174:22:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(bytes32 => mapping(address => uint256))"}},"id":15941,"indexExpression":{"expression":{"id":15937,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15848,"src":"18197:6:62","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":15938,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18204:13:62","memberName":"updateTypeKey","nodeType":"MemberAccess","referencedDeclaration":16553,"src":"18197:20:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18174:44:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":15942,"indexExpression":{"expression":{"id":15939,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15848,"src":"18219:6:62","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":15940,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18226:6:62","memberName":"market","nodeType":"MemberAccess","referencedDeclaration":16549,"src":"18219:13:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18174:59:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15943,"name":"newId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15857,"src":"18236:5:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18174:67:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15945,"nodeType":"ExpressionStatement","src":"18174:67:62"},{"eventCall":{"arguments":[{"id":15947,"name":"newId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15857,"src":"18279:5:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15948,"name":"arrivalTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15862,"src":"18286:11:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":15949,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15848,"src":"18299:6:62","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":15950,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18306:10:62","memberName":"updateType","nodeType":"MemberAccess","referencedDeclaration":16551,"src":"18299:17:62","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":15951,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15848,"src":"18318:6:62","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":15952,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18325:6:62","memberName":"market","nodeType":"MemberAccess","referencedDeclaration":16549,"src":"18318:13:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"id":15946,"name":"RemoteUpdateRegistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16362,"src":"18256:22:62","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$_t_address_$returns$__$","typeString":"function (uint256,uint256,string memory,address)"}},"id":15953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18256:76:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15954,"nodeType":"EmitStatement","src":"18251:81:62"}]},"documentation":{"id":15831,"nodeType":"StructuredDocumentation","src":"16594:422:62","text":" @notice Internal LayerZero receive hook that handles bridged updates from the source-chain `RiskStewardReceiver`.\n @dev Emits `DuplicateUpdateReceived`, `RegisteredPendingUpdateExist`, or `RemoteUpdateRegistered`\n      depending on whether the update ID was already seen or a non‑expired pending update exists.\n @param payload Encoded `RiskParameterUpdate` sent from the source chain"},"id":15956,"implemented":true,"kind":"function","modifiers":[],"name":"_lzReceive","nameLocation":"17030:10:62","nodeType":"FunctionDefinition","overrides":{"id":15844,"nodeType":"OverrideSpecifier","overrides":[],"src":"17125:8:62"},"parameters":{"id":15843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15834,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15956,"src":"17041:15:62","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$886_calldata_ptr","typeString":"struct Origin"},"typeName":{"id":15833,"nodeType":"UserDefinedTypeName","pathNode":{"id":15832,"name":"Origin","nameLocations":["17041:6:62"],"nodeType":"IdentifierPath","referencedDeclaration":886,"src":"17041:6:62"},"referencedDeclaration":886,"src":"17041:6:62","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$886_storage_ptr","typeString":"struct Origin"}},"visibility":"internal"},{"constant":false,"id":15836,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15956,"src":"17058:7:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15835,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17058:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15838,"mutability":"mutable","name":"payload","nameLocation":"17082:7:62","nodeType":"VariableDeclaration","scope":15956,"src":"17067:22:62","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15837,"name":"bytes","nodeType":"ElementaryTypeName","src":"17067:5:62","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":15840,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15956,"src":"17091:7:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15839,"name":"address","nodeType":"ElementaryTypeName","src":"17091:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15842,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15956,"src":"17100:14:62","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15841,"name":"bytes","nodeType":"ElementaryTypeName","src":"17100:5:62","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"17040:75:62"},"returnParameters":{"id":15845,"nodeType":"ParameterList","parameters":[],"src":"17134:0:62"},"scope":16005,"src":"17021:1318:62","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":15994,"nodeType":"Block","src":"18793:346:62","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15964,"name":"currentRegisteredId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15959,"src":"18807:19:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":15965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18830:1:62","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18807:24:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15969,"nodeType":"IfStatement","src":"18803:42:62","trueBody":{"expression":{"hexValue":"66616c7365","id":15967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"18840:5:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":15963,"id":15968,"nodeType":"Return","src":"18833:12:62"}},{"assignments":[15972],"declarations":[{"constant":false,"id":15972,"mutability":"mutable","name":"current","nameLocation":"18906:7:62","nodeType":"VariableDeclaration","scope":15994,"src":"18880:33:62","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DestinationUpdate_$16332_storage_ptr","typeString":"struct IDestinationStewardReceiver.DestinationUpdate"},"typeName":{"id":15971,"nodeType":"UserDefinedTypeName","pathNode":{"id":15970,"name":"DestinationUpdate","nameLocations":["18880:17:62"],"nodeType":"IdentifierPath","referencedDeclaration":16332,"src":"18880:17:62"},"referencedDeclaration":16332,"src":"18880:17:62","typeDescriptions":{"typeIdentifier":"t_struct$_DestinationUpdate_$16332_storage_ptr","typeString":"struct IDestinationStewardReceiver.DestinationUpdate"}},"visibility":"internal"}],"id":15976,"initialValue":{"baseExpression":{"id":15973,"name":"updates","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15028,"src":"18916:7:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_DestinationUpdate_$16332_storage_$","typeString":"mapping(uint256 => struct IDestinationStewardReceiver.DestinationUpdate storage ref)"}},"id":15975,"indexExpression":{"id":15974,"name":"currentRegisteredId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15959,"src":"18924:19:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18916:28:62","typeDescriptions":{"typeIdentifier":"t_struct$_DestinationUpdate_$16332_storage","typeString":"struct IDestinationStewardReceiver.DestinationUpdate storage ref"}},"nodeType":"VariableDeclarationStatement","src":"18880:64:62"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_UpdateStatus_$16312","typeString":"enum IDestinationStewardReceiver.UpdateStatus"},"id":15981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15977,"name":"current","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15972,"src":"18959:7:62","typeDescriptions":{"typeIdentifier":"t_struct$_DestinationUpdate_$16332_storage_ptr","typeString":"struct IDestinationStewardReceiver.DestinationUpdate storage pointer"}},"id":15978,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18967:6:62","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":16327,"src":"18959:14:62","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateStatus_$16312","typeString":"enum IDestinationStewardReceiver.UpdateStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":15979,"name":"UpdateStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16312,"src":"18977:12:62","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_UpdateStatus_$16312_$","typeString":"type(enum IDestinationStewardReceiver.UpdateStatus)"}},"id":15980,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18990:7:62","memberName":"Pending","nodeType":"MemberAccess","referencedDeclaration":16309,"src":"18977:20:62","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateStatus_$16312","typeString":"enum IDestinationStewardReceiver.UpdateStatus"}},"src":"18959:38:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15984,"nodeType":"IfStatement","src":"18955:56:62","trueBody":{"expression":{"hexValue":"66616c7365","id":15982,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"19006:5:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":15963,"id":15983,"nodeType":"Return","src":"18999:12:62"}},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":15985,"name":"current","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15972,"src":"19057:7:62","typeDescriptions":{"typeIdentifier":"t_struct$_DestinationUpdate_$16332_storage_ptr","typeString":"struct IDestinationStewardReceiver.DestinationUpdate storage pointer"}},"id":15986,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19065:6:62","memberName":"update","nodeType":"MemberAccess","referencedDeclaration":16324,"src":"19057:14:62","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_storage","typeString":"struct RiskParameterUpdate storage ref"}},"id":15987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19072:9:62","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":16559,"src":"19057:24:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":15988,"name":"REMOTE_UPDATE_EXPIRATION_TIME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15010,"src":"19084:29:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19057:56:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":15990,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"19117:5:62","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":15991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19123:9:62","memberName":"timestamp","nodeType":"MemberAccess","src":"19117:15:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19057:75:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":15963,"id":15993,"nodeType":"Return","src":"19050:82:62"}]},"documentation":{"id":15957,"nodeType":"StructuredDocumentation","src":"18345:356:62","text":" @notice Checks whether a given registered update ID corresponds to a pending, non‑expired update.\n @param currentRegisteredId The currently registered update ID for a specific (updateType, market) pair\n @return True if currentRegisteredId is non‑zero, the update status is Pending, and it has not expired; otherwise false"},"id":15995,"implemented":true,"kind":"function","modifiers":[],"name":"_checkPendingUpdate","nameLocation":"18715:19:62","nodeType":"FunctionDefinition","parameters":{"id":15960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15959,"mutability":"mutable","name":"currentRegisteredId","nameLocation":"18743:19:62","nodeType":"VariableDeclaration","scope":15995,"src":"18735:27:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15958,"name":"uint256","nodeType":"ElementaryTypeName","src":"18735:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18734:29:62"},"returnParameters":{"id":15963,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15962,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15995,"src":"18787:4:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15961,"name":"bool","nodeType":"ElementaryTypeName","src":"18787:4:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"18786:6:62"},"scope":16005,"src":"18706:433:62","stateMutability":"view","virtual":false,"visibility":"internal"},{"baseFunctions":[6030],"body":{"id":16003,"nodeType":"Block","src":"19318:53:62","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":16000,"name":"RenounceOwnershipNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16458,"src":"19335:27:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":16001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19335:29:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16002,"nodeType":"RevertStatement","src":"19328:36:62"}]},"documentation":{"id":15996,"nodeType":"StructuredDocumentation","src":"19145:118:62","text":" @notice Disables renounceOwnership function\n @custom:error Throws RenounceOwnershipNotAllowed"},"functionSelector":"715018a6","id":16004,"implemented":true,"kind":"function","modifiers":[],"name":"renounceOwnership","nameLocation":"19277:17:62","nodeType":"FunctionDefinition","overrides":{"id":15998,"nodeType":"OverrideSpecifier","overrides":[],"src":"19309:8:62"},"parameters":{"id":15997,"nodeType":"ParameterList","parameters":[],"src":"19294:2:62"},"returnParameters":{"id":15999,"nodeType":"ParameterList","parameters":[],"src":"19318:0:62"},"scope":16005,"src":"19268:103:62","stateMutability":"pure","virtual":false,"visibility":"public"}],"scope":16006,"src":"1397:17976:62","usedErrors":[2043,2414,2418,2420,2422,10924,13739,16422,16425,16428,16431,16434,16437,16440,16443,16446,16449,16452,16455,16458,16461,16464],"usedEvents":[2428,5873,5964,6094,13730,16351,16362,16373,16384,16389,16398,16409,16414,16419]}],"src":"41:19333:62"},"id":62},"contracts/RiskSteward/IRMRiskSteward.sol":{"ast":{"absolutePath":"contracts/RiskSteward/IRMRiskSteward.sol","exportedSymbols":{"BaseRiskSteward":[14514],"ICorePoolComptroller":[20347],"ICorePoolVToken":[20370],"IIsolatedPoolVToken":[20391],"IRMRiskSteward":[16302],"IRiskStewardReceiver":[17139],"InterestRateModel":[10919],"InterestRateModelV8":[10994],"RiskParameterUpdate":[16568],"ensureNonzeroAddress":[10945]},"id":16303,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":16007,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:63"},{"absolutePath":"contracts/RiskSteward/Interfaces/IRiskOracle.sol","file":"./Interfaces/IRiskOracle.sol","id":16009,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16303,"sourceUnit":16809,"src":"66:67:63","symbolAliases":[{"foreign":{"id":16008,"name":"RiskParameterUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16568,"src":"75:19:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/ICorePoolVToken.sol","file":"../interfaces/ICorePoolVToken.sol","id":16011,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16303,"sourceUnit":20371,"src":"134:68:63","symbolAliases":[{"foreign":{"id":16010,"name":"ICorePoolVToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20370,"src":"143:15:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IIsolatedPoolVToken.sol","file":"../interfaces/IIsolatedPoolVToken.sol","id":16013,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16303,"sourceUnit":20392,"src":"203:76:63","symbolAliases":[{"foreign":{"id":16012,"name":"IIsolatedPoolVToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20391,"src":"212:19:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/isolated-pools/contracts/InterestRateModel.sol","file":"@venusprotocol/isolated-pools/contracts/InterestRateModel.sol","id":16015,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16303,"sourceUnit":10920,"src":"280:98:63","symbolAliases":[{"foreign":{"id":16014,"name":"InterestRateModel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10919,"src":"289:17:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/venus-protocol/contracts/InterestRateModels/InterestRateModelV8.sol","file":"@venusprotocol/venus-protocol/contracts/InterestRateModels/InterestRateModelV8.sol","id":16017,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16303,"sourceUnit":10995,"src":"379:121:63","symbolAliases":[{"foreign":{"id":16016,"name":"InterestRateModelV8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10994,"src":"388:19:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/ICorePoolComptroller.sol","file":"../interfaces/ICorePoolComptroller.sol","id":16019,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16303,"sourceUnit":20348,"src":"501:78:63","symbolAliases":[{"foreign":{"id":16018,"name":"ICorePoolComptroller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20347,"src":"510:20:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/RiskSteward/Interfaces/IRiskStewardReceiver.sol","file":"./Interfaces/IRiskStewardReceiver.sol","id":16021,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16303,"sourceUnit":17140,"src":"580:77:63","symbolAliases":[{"foreign":{"id":16020,"name":"IRiskStewardReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17139,"src":"589:20:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/RiskSteward/BaseRiskSteward.sol","file":"./BaseRiskSteward.sol","id":16023,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16303,"sourceUnit":14515,"src":"658:56:63","symbolAliases":[{"foreign":{"id":16022,"name":"BaseRiskSteward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14514,"src":"667:15:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/validators.sol","file":"@venusprotocol/solidity-utilities/contracts/validators.sol","id":16025,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16303,"sourceUnit":10961,"src":"715:98:63","symbolAliases":[{"foreign":{"id":16024,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10945,"src":"724:20:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":16027,"name":"BaseRiskSteward","nameLocations":["1085:15:63"],"nodeType":"IdentifierPath","referencedDeclaration":14514,"src":"1085:15:63"},"id":16028,"nodeType":"InheritanceSpecifier","src":"1085:15:63"}],"canonicalName":"IRMRiskSteward","contractDependencies":[],"contractKind":"contract","documentation":{"id":16026,"nodeType":"StructuredDocumentation","src":"815:242:63","text":" @title IRMRiskSteward\n @author Venus\n @notice Contract that can update interest rate models updates received from RiskStewardReceiver.\n @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion"},"fullyImplemented":true,"id":16302,"linearizedBaseContracts":[16302,14514,13858,5947,6079,6574,6248,16839],"name":"IRMRiskSteward","nameLocation":"1067:14:63","nodeType":"ContractDefinition","nodes":[{"constant":true,"documentation":{"id":16029,"nodeType":"StructuredDocumentation","src":"1107:66:63","text":" @notice The update type for interest rate model"},"functionSelector":"3c781b1f","id":16032,"mutability":"constant","name":"INTEREST_RATE_MODEL","nameLocation":"1201:19:63","nodeType":"VariableDeclaration","scope":16302,"src":"1178:64:63","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16030,"name":"string","nodeType":"ElementaryTypeName","src":"1178:6:63","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"696e746572657374526174654d6f64656c","id":16031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1223:19:63","typeDescriptions":{"typeIdentifier":"t_stringliteral_f75408e574901a1e186e15f549424e67ef3d922f87ae58b527ea22f51cf7ef25","typeString":"literal_string \"interestRateModel\""},"value":"interestRateModel"},"visibility":"public"},{"constant":true,"documentation":{"id":16033,"nodeType":"StructuredDocumentation","src":"1249:110:63","text":" @notice The update type key for interest rate model (keccak256 hash of INTEREST_RATE_MODEL)"},"functionSelector":"a052e9b3","id":16041,"mutability":"constant","name":"INTEREST_RATE_MODEL_KEY","nameLocation":"1388:23:63","nodeType":"VariableDeclaration","scope":16302,"src":"1364:87:63","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16034,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1364:7:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"arguments":[{"id":16038,"name":"INTEREST_RATE_MODEL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16032,"src":"1430:19:63","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":16037,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1424:5:63","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":16036,"name":"bytes","nodeType":"ElementaryTypeName","src":"1424:5:63","typeDescriptions":{}}},"id":16039,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1424:26:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16035,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1414:9:63","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":16040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1414:37:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":false,"documentation":{"id":16042,"nodeType":"StructuredDocumentation","src":"1458:333:63","text":" @notice Address of the BNB Core Pool Comptroller.\n @dev This comptroller is specific to the BNB Core Pool, which uses a different ABI\n      than isolated pools. It is used solely to detect and handle BNB Core Pool\n      markets, and would not be used for remote-chain (isolated pool) deployments."},"functionSelector":"fa7b81a0","id":16045,"mutability":"immutable","name":"CORE_POOL_COMPTROLLER","nameLocation":"1834:21:63","nodeType":"VariableDeclaration","scope":16302,"src":"1796:59:63","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ICorePoolComptroller_$20347","typeString":"contract ICorePoolComptroller"},"typeName":{"id":16044,"nodeType":"UserDefinedTypeName","pathNode":{"id":16043,"name":"ICorePoolComptroller","nameLocations":["1796:20:63"],"nodeType":"IdentifierPath","referencedDeclaration":20347,"src":"1796:20:63"},"referencedDeclaration":20347,"src":"1796:20:63","typeDescriptions":{"typeIdentifier":"t_contract$_ICorePoolComptroller_$20347","typeString":"contract ICorePoolComptroller"}},"visibility":"public"},{"baseFunctions":[16822],"constant":false,"documentation":{"id":16046,"nodeType":"StructuredDocumentation","src":"1862:95:63","text":" @notice Address of the RiskStewardReceiver used to validate incoming updates"},"functionSelector":"b296e6cb","id":16049,"mutability":"immutable","name":"RISK_STEWARD_RECEIVER","nameLocation":"2000:21:63","nodeType":"VariableDeclaration","scope":16302,"src":"1962:59:63","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskStewardReceiver_$17139","typeString":"contract IRiskStewardReceiver"},"typeName":{"id":16048,"nodeType":"UserDefinedTypeName","pathNode":{"id":16047,"name":"IRiskStewardReceiver","nameLocations":["1962:20:63"],"nodeType":"IdentifierPath","referencedDeclaration":17139,"src":"1962:20:63"},"referencedDeclaration":17139,"src":"1962:20:63","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskStewardReceiver_$17139","typeString":"contract IRiskStewardReceiver"}},"visibility":"public"},{"constant":false,"documentation":{"id":16050,"nodeType":"StructuredDocumentation","src":"2028:254:63","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"id":16054,"mutability":"mutable","name":"__gap","nameLocation":"2307:5:63","nodeType":"VariableDeclaration","scope":16302,"src":"2287:25:63","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage","typeString":"uint256[49]"},"typeName":{"baseType":{"id":16051,"name":"uint256","nodeType":"ElementaryTypeName","src":"2287:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16053,"length":{"hexValue":"3439","id":16052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2295:2:63","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"49"},"nodeType":"ArrayTypeName","src":"2287:11:63","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage_ptr","typeString":"uint256[49]"}},"visibility":"private"},{"anonymous":false,"documentation":{"id":16055,"nodeType":"StructuredDocumentation","src":"2319:73:63","text":" @notice Emitted when an interest rate model is updated"},"eventSelector":"a8e9cd499759e0d6670a4fb6813dccb496a67475ff4c67d231e79e23bb816b4f","id":16063,"name":"InterestRateModelUpdated","nameLocation":"2403:24:63","nodeType":"EventDefinition","parameters":{"id":16062,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16057,"indexed":true,"mutability":"mutable","name":"updateId","nameLocation":"2453:8:63","nodeType":"VariableDeclaration","scope":16063,"src":"2437:24:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16056,"name":"uint256","nodeType":"ElementaryTypeName","src":"2437:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16059,"indexed":true,"mutability":"mutable","name":"market","nameLocation":"2487:6:63","nodeType":"VariableDeclaration","scope":16063,"src":"2471:22:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16058,"name":"address","nodeType":"ElementaryTypeName","src":"2471:7:63","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16061,"indexed":true,"mutability":"mutable","name":"newInterestRateModel","nameLocation":"2519:20:63","nodeType":"VariableDeclaration","scope":16063,"src":"2503:36:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16060,"name":"address","nodeType":"ElementaryTypeName","src":"2503:7:63","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2427:118:63"},"src":"2397:149:63"},{"documentation":{"id":16064,"nodeType":"StructuredDocumentation","src":"2552:90:63","text":" @notice Thrown when an update type that is not supported is operated on"},"errorSelector":"80919d7b","id":16066,"name":"UnsupportedUpdateType","nameLocation":"2653:21:63","nodeType":"ErrorDefinition","parameters":{"id":16065,"nodeType":"ParameterList","parameters":[],"src":"2674:2:63"},"src":"2647:30:63"},{"documentation":{"id":16067,"nodeType":"StructuredDocumentation","src":"2683:96:63","text":" @notice Thrown when attempting to apply a redundant IRM value (no-op change)."},"errorSelector":"925cd795","id":16069,"name":"RedundantValue","nameLocation":"2790:14:63","nodeType":"ErrorDefinition","parameters":{"id":16068,"nodeType":"ParameterList","parameters":[],"src":"2804:2:63"},"src":"2784:23:63"},{"documentation":{"id":16070,"nodeType":"StructuredDocumentation","src":"2813:92:63","text":" @notice Thrown when the update is not coming from the RiskStewardReceiver"},"errorSelector":"3a739dd7","id":16072,"name":"OnlyRiskStewardReceiver","nameLocation":"2916:23:63","nodeType":"ErrorDefinition","parameters":{"id":16071,"nodeType":"ParameterList","parameters":[],"src":"2939:2:63"},"src":"2910:32:63"},{"documentation":{"id":16073,"nodeType":"StructuredDocumentation","src":"2948:68:63","text":" @notice Thrown when the address length is invalid"},"errorSelector":"cc2cec02","id":16075,"name":"InvalidAddressLength","nameLocation":"3027:20:63","nodeType":"ErrorDefinition","parameters":{"id":16074,"nodeType":"ParameterList","parameters":[],"src":"3047:2:63"},"src":"3021:29:63"},{"documentation":{"id":16076,"nodeType":"StructuredDocumentation","src":"3056:84:63","text":" @notice Thrown when Core Pool VToken._setInterestRateModel fails."},"errorSelector":"4bb4ca74","id":16080,"name":"SetInterestRateModelFailed","nameLocation":"3151:26:63","nodeType":"ErrorDefinition","parameters":{"id":16079,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16078,"mutability":"mutable","name":"errorCode","nameLocation":"3186:9:63","nodeType":"VariableDeclaration","scope":16080,"src":"3178:17:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16077,"name":"uint256","nodeType":"ElementaryTypeName","src":"3178:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3177:19:63"},"src":"3145:52:63"},{"body":{"id":16107,"nodeType":"Block","src":"3694:243:63","statements":[{"expression":{"arguments":[{"id":16089,"name":"riskStewardReceiver_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16085,"src":"3725:20:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16088,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10945,"src":"3704:20:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":16090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3704:42:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16091,"nodeType":"ExpressionStatement","src":"3704:42:63"},{"expression":{"id":16096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16092,"name":"CORE_POOL_COMPTROLLER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16045,"src":"3756:21:63","typeDescriptions":{"typeIdentifier":"t_contract$_ICorePoolComptroller_$20347","typeString":"contract ICorePoolComptroller"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":16094,"name":"corePoolComptroller_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16083,"src":"3801:20:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16093,"name":"ICorePoolComptroller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20347,"src":"3780:20:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ICorePoolComptroller_$20347_$","typeString":"type(contract ICorePoolComptroller)"}},"id":16095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3780:42:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ICorePoolComptroller_$20347","typeString":"contract ICorePoolComptroller"}},"src":"3756:66:63","typeDescriptions":{"typeIdentifier":"t_contract$_ICorePoolComptroller_$20347","typeString":"contract ICorePoolComptroller"}},"id":16097,"nodeType":"ExpressionStatement","src":"3756:66:63"},{"expression":{"id":16102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16098,"name":"RISK_STEWARD_RECEIVER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16049,"src":"3832:21:63","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskStewardReceiver_$17139","typeString":"contract IRiskStewardReceiver"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":16100,"name":"riskStewardReceiver_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16085,"src":"3877:20:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16099,"name":"IRiskStewardReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17139,"src":"3856:20:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRiskStewardReceiver_$17139_$","typeString":"type(contract IRiskStewardReceiver)"}},"id":16101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3856:42:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRiskStewardReceiver_$17139","typeString":"contract IRiskStewardReceiver"}},"src":"3832:66:63","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskStewardReceiver_$17139","typeString":"contract IRiskStewardReceiver"}},"id":16103,"nodeType":"ExpressionStatement","src":"3832:66:63"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":16104,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6229,"src":"3908:20:63","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":16105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3908:22:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16106,"nodeType":"ExpressionStatement","src":"3908:22:63"}]},"documentation":{"id":16081,"nodeType":"StructuredDocumentation","src":"3203:414:63","text":" @notice Sets the immutable CORE_POOL_COMPTROLLER and RISK_STEWARD_RECEIVER addresses and disables initializers\n @param corePoolComptroller_ The address of the Core Pool Comptroller\n @param riskStewardReceiver_ The address of the RiskStewardReceiver\n @custom:error Throws ZeroAddressNotAllowed if any of the addresses are zero\n @custom:oz-upgrades-unsafe-allow constructor"},"id":16108,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":16086,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16083,"mutability":"mutable","name":"corePoolComptroller_","nameLocation":"3642:20:63","nodeType":"VariableDeclaration","scope":16108,"src":"3634:28:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16082,"name":"address","nodeType":"ElementaryTypeName","src":"3634:7:63","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16085,"mutability":"mutable","name":"riskStewardReceiver_","nameLocation":"3672:20:63","nodeType":"VariableDeclaration","scope":16108,"src":"3664:28:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16084,"name":"address","nodeType":"ElementaryTypeName","src":"3664:7:63","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3633:60:63"},"returnParameters":{"id":16087,"nodeType":"ParameterList","parameters":[],"src":"3694:0:63"},"scope":16302,"src":"3622:315:63","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":16120,"nodeType":"Block","src":"4183:63:63","statements":[{"expression":{"arguments":[{"id":16117,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16111,"src":"4217:21:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16116,"name":"__AccessControlled_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13754,"src":"4193:23:63","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":16118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4193:46:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16119,"nodeType":"ExpressionStatement","src":"4193:46:63"}]},"documentation":{"id":16109,"nodeType":"StructuredDocumentation","src":"3943:163:63","text":" @notice Initializes the contract as ownable and access controlled.\n @param accessControlManager_ The address of the access control manager"},"functionSelector":"c4d66de8","id":16121,"implemented":true,"kind":"function","modifiers":[{"id":16114,"kind":"modifierInvocation","modifierName":{"id":16113,"name":"initializer","nameLocations":["4171:11:63"],"nodeType":"IdentifierPath","referencedDeclaration":6150,"src":"4171:11:63"},"nodeType":"ModifierInvocation","src":"4171:11:63"}],"name":"initialize","nameLocation":"4120:10:63","nodeType":"FunctionDefinition","parameters":{"id":16112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16111,"mutability":"mutable","name":"accessControlManager_","nameLocation":"4139:21:63","nodeType":"VariableDeclaration","scope":16121,"src":"4131:29:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16110,"name":"address","nodeType":"ElementaryTypeName","src":"4131:7:63","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4130:31:63"},"returnParameters":{"id":16115,"nodeType":"ParameterList","parameters":[],"src":"4183:0:63"},"scope":16302,"src":"4111:135:63","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[16838],"body":{"id":16165,"nodeType":"Block","src":"4889:394:63","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":16134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16128,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4903:3:63","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":16129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4907:6:63","memberName":"sender","nodeType":"MemberAccess","src":"4903:10:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":16132,"name":"RISK_STEWARD_RECEIVER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16049,"src":"4925:21:63","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskStewardReceiver_$17139","typeString":"contract IRiskStewardReceiver"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRiskStewardReceiver_$17139","typeString":"contract IRiskStewardReceiver"}],"id":16131,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4917:7:63","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16130,"name":"address","nodeType":"ElementaryTypeName","src":"4917:7:63","typeDescriptions":{}}},"id":16133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4917:30:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4903:44:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16139,"nodeType":"IfStatement","src":"4899:107:63","trueBody":{"id":16138,"nodeType":"Block","src":"4949:57:63","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":16135,"name":"OnlyRiskStewardReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16072,"src":"4970:23:63","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":16136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4970:25:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16137,"nodeType":"RevertStatement","src":"4963:32:63"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":16143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16140,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16125,"src":"5020:6:63","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_calldata_ptr","typeString":"struct RiskParameterUpdate calldata"}},"id":16141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5027:13:63","memberName":"updateTypeKey","nodeType":"MemberAccess","referencedDeclaration":16553,"src":"5020:20:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":16142,"name":"INTEREST_RATE_MODEL_KEY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16041,"src":"5044:23:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5020:47:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":16163,"nodeType":"Block","src":"5222:55:63","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":16160,"name":"UnsupportedUpdateType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16066,"src":"5243:21:63","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":16161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5243:23:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16162,"nodeType":"RevertStatement","src":"5236:30:63"}]},"id":16164,"nodeType":"IfStatement","src":"5016:261:63","trueBody":{"id":16159,"nodeType":"Block","src":"5069:147:63","statements":[{"assignments":[16145],"declarations":[{"constant":false,"id":16145,"mutability":"mutable","name":"newIRM","nameLocation":"5091:6:63","nodeType":"VariableDeclaration","scope":16159,"src":"5083:14:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16144,"name":"address","nodeType":"ElementaryTypeName","src":"5083:7:63","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":16150,"initialValue":{"arguments":[{"expression":{"id":16147,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16125,"src":"5125:6:63","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_calldata_ptr","typeString":"struct RiskParameterUpdate calldata"}},"id":16148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5132:8:63","memberName":"newValue","nodeType":"MemberAccess","referencedDeclaration":16555,"src":"5125:15:63","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":16146,"name":"_decodeAbiEncodedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16301,"src":"5100:24:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (bytes memory) pure returns (address)"}},"id":16149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5100:41:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5083:58:63"},{"expression":{"arguments":[{"expression":{"id":16152,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16125,"src":"5166:6:63","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_calldata_ptr","typeString":"struct RiskParameterUpdate calldata"}},"id":16153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5173:8:63","memberName":"updateId","nodeType":"MemberAccess","referencedDeclaration":16547,"src":"5166:15:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":16154,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16125,"src":"5183:6:63","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_calldata_ptr","typeString":"struct RiskParameterUpdate calldata"}},"id":16155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5190:6:63","memberName":"market","nodeType":"MemberAccess","referencedDeclaration":16549,"src":"5183:13:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16156,"name":"newIRM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16145,"src":"5198:6:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":16151,"name":"_updateIRM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16276,"src":"5155:10:63","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$__$","typeString":"function (uint256,address,address)"}},"id":16157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5155:50:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16158,"nodeType":"ExpressionStatement","src":"5155:50:63"}]}}]},"documentation":{"id":16122,"nodeType":"StructuredDocumentation","src":"4252:565:63","text":" @notice Applies an interest rate model update from the RiskStewardReceiver.\n Directly updates the market interest rate model on the vToken.\n @param update RiskParameterUpdate update to apply\n @custom:error Throws OnlyRiskStewardReceiver if the sender is not the RiskStewardReceiver\n @custom:error Throws UnsupportedUpdateType if the update type is not supported\n @custom:event Emits InterestRateModelUpdated with the updateId, market and new IRM address\n @custom:access Only callable by the RiskStewardReceiver"},"functionSelector":"bf637839","id":16166,"implemented":true,"kind":"function","modifiers":[],"name":"applyUpdate","nameLocation":"4831:11:63","nodeType":"FunctionDefinition","parameters":{"id":16126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16125,"mutability":"mutable","name":"update","nameLocation":"4872:6:63","nodeType":"VariableDeclaration","scope":16166,"src":"4843:35:63","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_calldata_ptr","typeString":"struct RiskParameterUpdate"},"typeName":{"id":16124,"nodeType":"UserDefinedTypeName","pathNode":{"id":16123,"name":"RiskParameterUpdate","nameLocations":["4843:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":16568,"src":"4843:19:63"},"referencedDeclaration":16568,"src":"4843:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_storage_ptr","typeString":"struct RiskParameterUpdate"}},"visibility":"internal"}],"src":"4842:37:63"},"returnParameters":{"id":16127,"nodeType":"ParameterList","parameters":[],"src":"4889:0:63"},"scope":16302,"src":"4822:461:63","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[16831],"body":{"id":16213,"nodeType":"Block","src":"5893:496:63","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":16178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16175,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16170,"src":"5907:6:63","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_calldata_ptr","typeString":"struct RiskParameterUpdate calldata"}},"id":16176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5914:13:63","memberName":"updateTypeKey","nodeType":"MemberAccess","referencedDeclaration":16553,"src":"5907:20:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":16177,"name":"INTEREST_RATE_MODEL_KEY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16041,"src":"5931:23:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5907:47:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16183,"nodeType":"IfStatement","src":"5903:108:63","trueBody":{"id":16182,"nodeType":"Block","src":"5956:55:63","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":16179,"name":"UnsupportedUpdateType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16066,"src":"5977:21:63","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":16180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5977:23:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16181,"nodeType":"RevertStatement","src":"5970:30:63"}]}},{"assignments":[16185],"declarations":[{"constant":false,"id":16185,"mutability":"mutable","name":"newIRM","nameLocation":"6029:6:63","nodeType":"VariableDeclaration","scope":16213,"src":"6021:14:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16184,"name":"address","nodeType":"ElementaryTypeName","src":"6021:7:63","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":16190,"initialValue":{"arguments":[{"expression":{"id":16187,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16170,"src":"6063:6:63","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_calldata_ptr","typeString":"struct RiskParameterUpdate calldata"}},"id":16188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6070:8:63","memberName":"newValue","nodeType":"MemberAccess","referencedDeclaration":16555,"src":"6063:15:63","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":16186,"name":"_decodeAbiEncodedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16301,"src":"6038:24:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (bytes memory) pure returns (address)"}},"id":16189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6038:41:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6021:58:63"},{"assignments":[16192],"declarations":[{"constant":false,"id":16192,"mutability":"mutable","name":"currentIRM","nameLocation":"6097:10:63","nodeType":"VariableDeclaration","scope":16213,"src":"6089:18:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16191,"name":"address","nodeType":"ElementaryTypeName","src":"6089:7:63","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":16202,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":16196,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16170,"src":"6134:6:63","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_calldata_ptr","typeString":"struct RiskParameterUpdate calldata"}},"id":16197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6141:6:63","memberName":"market","nodeType":"MemberAccess","referencedDeclaration":16549,"src":"6134:13:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16195,"name":"ICorePoolVToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20370,"src":"6118:15:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ICorePoolVToken_$20370_$","typeString":"type(contract ICorePoolVToken)"}},"id":16198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6118:30:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ICorePoolVToken_$20370","typeString":"contract ICorePoolVToken"}},"id":16199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6149:17:63","memberName":"interestRateModel","nodeType":"MemberAccess","referencedDeclaration":20361,"src":"6118:48:63","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":16200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6118:50:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16194,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6110:7:63","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16193,"name":"address","nodeType":"ElementaryTypeName","src":"6110:7:63","typeDescriptions":{}}},"id":16201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6110:59:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6089:80:63"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":16205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16203,"name":"newIRM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16185,"src":"6223:6:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":16204,"name":"currentIRM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16192,"src":"6233:10:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6223:20:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16210,"nodeType":"IfStatement","src":"6219:74:63","trueBody":{"id":16209,"nodeType":"Block","src":"6245:48:63","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":16206,"name":"RedundantValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16069,"src":"6266:14:63","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":16207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6266:16:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16208,"nodeType":"RevertStatement","src":"6259:23:63"}]}},{"expression":{"hexValue":"66616c7365","id":16211,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6377:5:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":16174,"id":16212,"nodeType":"Return","src":"6370:12:63"}]},"documentation":{"id":16167,"nodeType":"StructuredDocumentation","src":"5289:499:63","text":" @notice Checks if an update is safe for direct execution (no timelock required)\n @param update The update to check\n @return True if update is safe for direct execution, false if timelock is required\n @custom:error Throws UnsupportedUpdateType if the update type is not supported\n @custom:error Throws RedundantValue if the new IRM address is equal to the current IRM address\n @dev For IRM updates, always returns false as we cannot compare IRM values"},"functionSelector":"42b7cfbd","id":16214,"implemented":true,"kind":"function","modifiers":[],"name":"isSafeForDirectExecution","nameLocation":"5802:24:63","nodeType":"FunctionDefinition","parameters":{"id":16171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16170,"mutability":"mutable","name":"update","nameLocation":"5856:6:63","nodeType":"VariableDeclaration","scope":16214,"src":"5827:35:63","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_calldata_ptr","typeString":"struct RiskParameterUpdate"},"typeName":{"id":16169,"nodeType":"UserDefinedTypeName","pathNode":{"id":16168,"name":"RiskParameterUpdate","nameLocations":["5827:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":16568,"src":"5827:19:63"},"referencedDeclaration":16568,"src":"5827:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_storage_ptr","typeString":"struct RiskParameterUpdate"}},"visibility":"internal"}],"src":"5826:37:63"},"returnParameters":{"id":16174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16173,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16214,"src":"5887:4:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16172,"name":"bool","nodeType":"ElementaryTypeName","src":"5887:4:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5886:6:63"},"scope":16302,"src":"5793:596:63","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":16275,"nodeType":"Block","src":"6981:506:63","statements":[{"assignments":[16225],"declarations":[{"constant":false,"id":16225,"mutability":"mutable","name":"comptroller","nameLocation":"6999:11:63","nodeType":"VariableDeclaration","scope":16275,"src":"6991:19:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16224,"name":"address","nodeType":"ElementaryTypeName","src":"6991:7:63","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":16231,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":16227,"name":"market","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16219,"src":"7029:6:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16226,"name":"ICorePoolVToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20370,"src":"7013:15:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ICorePoolVToken_$20370_$","typeString":"type(contract ICorePoolVToken)"}},"id":16228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7013:23:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ICorePoolVToken_$20370","typeString":"contract ICorePoolVToken"}},"id":16229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7037:11:63","memberName":"comptroller","nodeType":"MemberAccess","referencedDeclaration":20356,"src":"7013:35:63","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":16230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7013:37:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6991:59:63"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":16237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16232,"name":"comptroller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16225,"src":"7065:11:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":16235,"name":"CORE_POOL_COMPTROLLER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16045,"src":"7088:21:63","typeDescriptions":{"typeIdentifier":"t_contract$_ICorePoolComptroller_$20347","typeString":"contract ICorePoolComptroller"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ICorePoolComptroller_$20347","typeString":"contract ICorePoolComptroller"}],"id":16234,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7080:7:63","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16233,"name":"address","nodeType":"ElementaryTypeName","src":"7080:7:63","typeDescriptions":{}}},"id":16236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7080:30:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7065:45:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":16267,"nodeType":"Block","src":"7315:100:63","statements":[{"expression":{"arguments":[{"arguments":[{"id":16263,"name":"newIRM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16221,"src":"7396:6:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16262,"name":"InterestRateModel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10919,"src":"7378:17:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_InterestRateModel_$10919_$","typeString":"type(contract InterestRateModel)"}},"id":16264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7378:25:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_InterestRateModel_$10919","typeString":"contract InterestRateModel"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_InterestRateModel_$10919","typeString":"contract InterestRateModel"}],"expression":{"arguments":[{"id":16259,"name":"market","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16219,"src":"7349:6:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16258,"name":"IIsolatedPoolVToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20391,"src":"7329:19:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IIsolatedPoolVToken_$20391_$","typeString":"type(contract IIsolatedPoolVToken)"}},"id":16260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7329:27:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IIsolatedPoolVToken_$20391","typeString":"contract IIsolatedPoolVToken"}},"id":16261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7357:20:63","memberName":"setInterestRateModel","nodeType":"MemberAccess","referencedDeclaration":20390,"src":"7329:48:63","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_InterestRateModel_$10919_$returns$__$","typeString":"function (contract InterestRateModel) external"}},"id":16265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7329:75:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16266,"nodeType":"ExpressionStatement","src":"7329:75:63"}]},"id":16268,"nodeType":"IfStatement","src":"7061:354:63","trueBody":{"id":16257,"nodeType":"Block","src":"7112:197:63","statements":[{"assignments":[16239],"declarations":[{"constant":false,"id":16239,"mutability":"mutable","name":"errorCode","nameLocation":"7134:9:63","nodeType":"VariableDeclaration","scope":16257,"src":"7126:17:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16238,"name":"uint256","nodeType":"ElementaryTypeName","src":"7126:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16248,"initialValue":{"arguments":[{"arguments":[{"id":16245,"name":"newIRM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16221,"src":"7212:6:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16244,"name":"InterestRateModelV8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10994,"src":"7192:19:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_InterestRateModelV8_$10994_$","typeString":"type(contract InterestRateModelV8)"}},"id":16246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7192:27:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_InterestRateModelV8_$10994","typeString":"contract InterestRateModelV8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_InterestRateModelV8_$10994","typeString":"contract InterestRateModelV8"}],"expression":{"arguments":[{"id":16241,"name":"market","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16219,"src":"7162:6:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16240,"name":"ICorePoolVToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20370,"src":"7146:15:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ICorePoolVToken_$20370_$","typeString":"type(contract ICorePoolVToken)"}},"id":16242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7146:23:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ICorePoolVToken_$20370","typeString":"contract ICorePoolVToken"}},"id":16243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7170:21:63","memberName":"_setInterestRateModel","nodeType":"MemberAccess","referencedDeclaration":20369,"src":"7146:45:63","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_InterestRateModelV8_$10994_$returns$_t_uint256_$","typeString":"function (contract InterestRateModelV8) external returns (uint256)"}},"id":16247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7146:74:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7126:94:63"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16249,"name":"errorCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16239,"src":"7238:9:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":16250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7251:1:63","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7238:14:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16256,"nodeType":"IfStatement","src":"7234:64:63","trueBody":{"errorCall":{"arguments":[{"id":16253,"name":"errorCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16239,"src":"7288:9:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16252,"name":"SetInterestRateModelFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16080,"src":"7261:26:63","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":16254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7261:37:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16255,"nodeType":"RevertStatement","src":"7254:44:63"}}]}},{"eventCall":{"arguments":[{"id":16270,"name":"updateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16217,"src":"7455:8:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16271,"name":"market","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16219,"src":"7465:6:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16272,"name":"newIRM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16221,"src":"7473:6:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":16269,"name":"InterestRateModelUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16063,"src":"7430:24:63","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$__$","typeString":"function (uint256,address,address)"}},"id":16273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7430:50:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16274,"nodeType":"EmitStatement","src":"7425:55:63"}]},"documentation":{"id":16215,"nodeType":"StructuredDocumentation","src":"6395:502:63","text":" @notice Updates the interest rate model for the given market.\n @param updateId The update ID from the Risk Oracle\n @param market The market to update the interest rate model for\n @param newIRM The new interest rate model address\n @custom:error Throws SetInterestRateModelFailed if the core pool vToken call to _setInterestRateModel returns a non-zero error code\n @custom:event Emits InterestRateModelUpdated with the updateId, market and new IRM address"},"id":16276,"implemented":true,"kind":"function","modifiers":[],"name":"_updateIRM","nameLocation":"6911:10:63","nodeType":"FunctionDefinition","parameters":{"id":16222,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16217,"mutability":"mutable","name":"updateId","nameLocation":"6930:8:63","nodeType":"VariableDeclaration","scope":16276,"src":"6922:16:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16216,"name":"uint256","nodeType":"ElementaryTypeName","src":"6922:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16219,"mutability":"mutable","name":"market","nameLocation":"6948:6:63","nodeType":"VariableDeclaration","scope":16276,"src":"6940:14:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16218,"name":"address","nodeType":"ElementaryTypeName","src":"6940:7:63","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16221,"mutability":"mutable","name":"newIRM","nameLocation":"6964:6:63","nodeType":"VariableDeclaration","scope":16276,"src":"6956:14:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16220,"name":"address","nodeType":"ElementaryTypeName","src":"6956:7:63","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6921:50:63"},"returnParameters":{"id":16223,"nodeType":"ParameterList","parameters":[],"src":"6981:0:63"},"scope":16302,"src":"6902:585:63","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":16300,"nodeType":"Block","src":"7898:113:63","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16284,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16279,"src":"7912:4:63","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":16285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7917:6:63","memberName":"length","nodeType":"MemberAccess","src":"7912:11:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3332","id":16286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7927:2:63","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"7912:17:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16291,"nodeType":"IfStatement","src":"7908:52:63","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":16288,"name":"InvalidAddressLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16075,"src":"7938:20:63","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":16289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7938:22:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16290,"nodeType":"RevertStatement","src":"7931:29:63"}},{"expression":{"arguments":[{"id":16294,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16279,"src":"7988:4:63","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":16296,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7995:7:63","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16295,"name":"address","nodeType":"ElementaryTypeName","src":"7995:7:63","typeDescriptions":{}}}],"id":16297,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"7994:9:63","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}],"expression":{"id":16292,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7977:3:63","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16293,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7981:6:63","memberName":"decode","nodeType":"MemberAccess","src":"7977:10:63","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":16298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7977:27:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"functionReturnParameters":16283,"id":16299,"nodeType":"Return","src":"7970:34:63"}]},"documentation":{"id":16277,"nodeType":"StructuredDocumentation","src":"7493:315:63","text":" @notice Decodes ABI-encoded bytes into an address.\n @dev Expects exactly 32 bytes as produced by abi.encode(address).\n @param data ABI-encoded address payload (32 bytes)\n @return The decoded address\n @custom:error Throws InvalidAddressLength if data length is not 32 bytes"},"id":16301,"implemented":true,"kind":"function","modifiers":[],"name":"_decodeAbiEncodedAddress","nameLocation":"7822:24:63","nodeType":"FunctionDefinition","parameters":{"id":16280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16279,"mutability":"mutable","name":"data","nameLocation":"7860:4:63","nodeType":"VariableDeclaration","scope":16301,"src":"7847:17:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":16278,"name":"bytes","nodeType":"ElementaryTypeName","src":"7847:5:63","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7846:19:63"},"returnParameters":{"id":16283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16282,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16301,"src":"7889:7:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16281,"name":"address","nodeType":"ElementaryTypeName","src":"7889:7:63","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7888:9:63"},"scope":16302,"src":"7813:198:63","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":16303,"src":"1058:6955:63","usedErrors":[10924,13739,14467,16066,16069,16072,16075,16080],"usedEvents":[5873,5964,6094,13730,16063]}],"src":"41:7973:63"},"id":63},"contracts/RiskSteward/Interfaces/IDestinationStewardReceiver.sol":{"ast":{"absolutePath":"contracts/RiskSteward/Interfaces/IDestinationStewardReceiver.sol","exportedSymbols":{"IDestinationStewardReceiver":[16540],"RiskParameterUpdate":[16568]},"id":16541,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":16304,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:64"},{"absolutePath":"contracts/RiskSteward/Interfaces/IRiskOracle.sol","file":"./IRiskOracle.sol","id":16306,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16541,"sourceUnit":16809,"src":"66:56:64","symbolAliases":[{"foreign":{"id":16305,"name":"RiskParameterUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16568,"src":"75:19:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"IDestinationStewardReceiver","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":16540,"linearizedBaseContracts":[16540],"name":"IDestinationStewardReceiver","nameLocation":"134:27:64","nodeType":"ContractDefinition","nodes":[{"canonicalName":"IDestinationStewardReceiver.UpdateStatus","documentation":{"id":16307,"nodeType":"StructuredDocumentation","src":"168:77:64","text":" @notice Local status of an update on the destination chain"},"id":16312,"members":[{"id":16308,"name":"None","nameLocation":"278:4:64","nodeType":"EnumValue","src":"278:4:64"},{"id":16309,"name":"Pending","nameLocation":"292:7:64","nodeType":"EnumValue","src":"292:7:64"},{"id":16310,"name":"Executed","nameLocation":"309:8:64","nodeType":"EnumValue","src":"309:8:64"},{"id":16311,"name":"Rejected","nameLocation":"327:8:64","nodeType":"EnumValue","src":"327:8:64"}],"name":"UpdateStatus","nameLocation":"255:12:64","nodeType":"EnumDefinition","src":"250:91:64"},{"canonicalName":"IDestinationStewardReceiver.RiskParamConfig","documentation":{"id":16313,"nodeType":"StructuredDocumentation","src":"347:393:64","text":" @notice Configuration for a risk parameter update type on the destination chain.\n @param active Whether this update type configuration is currently active\n @param debounce Minimum delay between consecutive executions for the same (updateType, market) pair\n @param riskSteward Address of the risk steward contract responsible for processing this update type"},"id":16320,"members":[{"constant":false,"id":16315,"mutability":"mutable","name":"active","nameLocation":"783:6:64","nodeType":"VariableDeclaration","scope":16320,"src":"778:11:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16314,"name":"bool","nodeType":"ElementaryTypeName","src":"778:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16317,"mutability":"mutable","name":"debounce","nameLocation":"807:8:64","nodeType":"VariableDeclaration","scope":16320,"src":"799:16:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16316,"name":"uint256","nodeType":"ElementaryTypeName","src":"799:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16319,"mutability":"mutable","name":"riskSteward","nameLocation":"833:11:64","nodeType":"VariableDeclaration","scope":16320,"src":"825:19:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16318,"name":"address","nodeType":"ElementaryTypeName","src":"825:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"RiskParamConfig","nameLocation":"752:15:64","nodeType":"StructDefinition","scope":16540,"src":"745:106:64","visibility":"public"},{"canonicalName":"IDestinationStewardReceiver.DestinationUpdate","documentation":{"id":16321,"nodeType":"StructuredDocumentation","src":"857:575:64","text":" @notice Destination-side storage for a bridged risk parameter update.\n @param update The full risk parameter update payload received from the source chain\n @param status Current local status of the bridged update (Pending, Executed, Rejected)\n @param arrivalTime Timestamp when the update was received on this chain\n @param executor Address of the executor who executed this update on the destination (address(0) not executed yet)\n @dev Unlock time is derived as `arrivalTime + remoteDelay` instead of being stored separately."},"id":16332,"members":[{"constant":false,"id":16324,"mutability":"mutable","name":"update","nameLocation":"1492:6:64","nodeType":"VariableDeclaration","scope":16332,"src":"1472:26:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_storage_ptr","typeString":"struct RiskParameterUpdate"},"typeName":{"id":16323,"nodeType":"UserDefinedTypeName","pathNode":{"id":16322,"name":"RiskParameterUpdate","nameLocations":["1472:19:64"],"nodeType":"IdentifierPath","referencedDeclaration":16568,"src":"1472:19:64"},"referencedDeclaration":16568,"src":"1472:19:64","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_storage_ptr","typeString":"struct RiskParameterUpdate"}},"visibility":"internal"},{"constant":false,"id":16327,"mutability":"mutable","name":"status","nameLocation":"1521:6:64","nodeType":"VariableDeclaration","scope":16332,"src":"1508:19:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateStatus_$16312","typeString":"enum IDestinationStewardReceiver.UpdateStatus"},"typeName":{"id":16326,"nodeType":"UserDefinedTypeName","pathNode":{"id":16325,"name":"UpdateStatus","nameLocations":["1508:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":16312,"src":"1508:12:64"},"referencedDeclaration":16312,"src":"1508:12:64","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateStatus_$16312","typeString":"enum IDestinationStewardReceiver.UpdateStatus"}},"visibility":"internal"},{"constant":false,"id":16329,"mutability":"mutable","name":"arrivalTime","nameLocation":"1545:11:64","nodeType":"VariableDeclaration","scope":16332,"src":"1537:19:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16328,"name":"uint256","nodeType":"ElementaryTypeName","src":"1537:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16331,"mutability":"mutable","name":"executor","nameLocation":"1574:8:64","nodeType":"VariableDeclaration","scope":16332,"src":"1566:16:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16330,"name":"address","nodeType":"ElementaryTypeName","src":"1566:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"DestinationUpdate","nameLocation":"1444:17:64","nodeType":"StructDefinition","scope":16540,"src":"1437:152:64","visibility":"public"},{"anonymous":false,"documentation":{"id":16333,"nodeType":"StructuredDocumentation","src":"1595:93:64","text":" @notice Emitted when a risk parameter config is updated for an update type"},"eventSelector":"2cbea64d1a2ece216f5461b535881b82196130c6a988a9d3b323bd6d5cfe608e","id":16351,"name":"RiskParameterConfigUpdated","nameLocation":"1699:26:64","nodeType":"EventDefinition","parameters":{"id":16350,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16335,"indexed":true,"mutability":"mutable","name":"updateTypeHash","nameLocation":"1751:14:64","nodeType":"VariableDeclaration","scope":16351,"src":"1735:30:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16334,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1735:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":16337,"indexed":false,"mutability":"mutable","name":"updateType","nameLocation":"1782:10:64","nodeType":"VariableDeclaration","scope":16351,"src":"1775:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16336,"name":"string","nodeType":"ElementaryTypeName","src":"1775:6:64","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16339,"indexed":true,"mutability":"mutable","name":"previousRiskSteward","nameLocation":"1818:19:64","nodeType":"VariableDeclaration","scope":16351,"src":"1802:35:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16338,"name":"address","nodeType":"ElementaryTypeName","src":"1802:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16341,"indexed":true,"mutability":"mutable","name":"riskSteward","nameLocation":"1863:11:64","nodeType":"VariableDeclaration","scope":16351,"src":"1847:27:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16340,"name":"address","nodeType":"ElementaryTypeName","src":"1847:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16343,"indexed":false,"mutability":"mutable","name":"previousDebounce","nameLocation":"1892:16:64","nodeType":"VariableDeclaration","scope":16351,"src":"1884:24:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16342,"name":"uint256","nodeType":"ElementaryTypeName","src":"1884:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16345,"indexed":false,"mutability":"mutable","name":"debounce","nameLocation":"1926:8:64","nodeType":"VariableDeclaration","scope":16351,"src":"1918:16:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16344,"name":"uint256","nodeType":"ElementaryTypeName","src":"1918:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16347,"indexed":false,"mutability":"mutable","name":"previousActive","nameLocation":"1949:14:64","nodeType":"VariableDeclaration","scope":16351,"src":"1944:19:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16346,"name":"bool","nodeType":"ElementaryTypeName","src":"1944:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16349,"indexed":false,"mutability":"mutable","name":"active","nameLocation":"1978:6:64","nodeType":"VariableDeclaration","scope":16351,"src":"1973:11:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16348,"name":"bool","nodeType":"ElementaryTypeName","src":"1973:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1725:265:64"},"src":"1693:298:64"},{"anonymous":false,"documentation":{"id":16352,"nodeType":"StructuredDocumentation","src":"1997:89:64","text":" @notice Emitted when a bridged update is registered on the destination"},"eventSelector":"d5a7f72731c4bc3d3a2da54b4c53b429270f8d7f8c5b053d9ee98e072f875840","id":16362,"name":"RemoteUpdateRegistered","nameLocation":"2097:22:64","nodeType":"EventDefinition","parameters":{"id":16361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16354,"indexed":true,"mutability":"mutable","name":"updateId","nameLocation":"2145:8:64","nodeType":"VariableDeclaration","scope":16362,"src":"2129:24:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16353,"name":"uint256","nodeType":"ElementaryTypeName","src":"2129:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16356,"indexed":false,"mutability":"mutable","name":"arrivalTime","nameLocation":"2171:11:64","nodeType":"VariableDeclaration","scope":16362,"src":"2163:19:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16355,"name":"uint256","nodeType":"ElementaryTypeName","src":"2163:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16358,"indexed":true,"mutability":"mutable","name":"updateType","nameLocation":"2207:10:64","nodeType":"VariableDeclaration","scope":16362,"src":"2192:25:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16357,"name":"string","nodeType":"ElementaryTypeName","src":"2192:6:64","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16360,"indexed":true,"mutability":"mutable","name":"market","nameLocation":"2243:6:64","nodeType":"VariableDeclaration","scope":16362,"src":"2227:22:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16359,"name":"address","nodeType":"ElementaryTypeName","src":"2227:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2119:136:64"},"src":"2091:165:64"},{"anonymous":false,"documentation":{"id":16363,"nodeType":"StructuredDocumentation","src":"2262:146:64","text":" @notice Emitted when a new bridged update arrives but a pending update is already registered for the same (updateType, market)."},"eventSelector":"a5cf028a8d57c7fae7982ac3692bb4bdf11ddcca7c93493242a00f4957a5ebb7","id":16373,"name":"RegisteredPendingUpdateExist","nameLocation":"2419:28:64","nodeType":"EventDefinition","parameters":{"id":16372,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16365,"indexed":true,"mutability":"mutable","name":"updateId","nameLocation":"2473:8:64","nodeType":"VariableDeclaration","scope":16373,"src":"2457:24:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16364,"name":"uint256","nodeType":"ElementaryTypeName","src":"2457:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16367,"indexed":false,"mutability":"mutable","name":"arrivalTime","nameLocation":"2499:11:64","nodeType":"VariableDeclaration","scope":16373,"src":"2491:19:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16366,"name":"uint256","nodeType":"ElementaryTypeName","src":"2491:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16369,"indexed":true,"mutability":"mutable","name":"updateType","nameLocation":"2535:10:64","nodeType":"VariableDeclaration","scope":16373,"src":"2520:25:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16368,"name":"string","nodeType":"ElementaryTypeName","src":"2520:6:64","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16371,"indexed":true,"mutability":"mutable","name":"market","nameLocation":"2571:6:64","nodeType":"VariableDeclaration","scope":16373,"src":"2555:22:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16370,"name":"address","nodeType":"ElementaryTypeName","src":"2555:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2447:136:64"},"src":"2413:171:64"},{"anonymous":false,"documentation":{"id":16374,"nodeType":"StructuredDocumentation","src":"2590:95:64","text":" @notice Emitted when a duplicate bridged update (same updateId) is received."},"eventSelector":"6f2b8853cd821aee89a0dc78a586658bcbd9c930d3d25be1de720fa0346bd73b","id":16384,"name":"DuplicateUpdateReceived","nameLocation":"2696:23:64","nodeType":"EventDefinition","parameters":{"id":16383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16376,"indexed":true,"mutability":"mutable","name":"updateId","nameLocation":"2745:8:64","nodeType":"VariableDeclaration","scope":16384,"src":"2729:24:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16375,"name":"uint256","nodeType":"ElementaryTypeName","src":"2729:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16378,"indexed":false,"mutability":"mutable","name":"arrivalTime","nameLocation":"2771:11:64","nodeType":"VariableDeclaration","scope":16384,"src":"2763:19:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16377,"name":"uint256","nodeType":"ElementaryTypeName","src":"2763:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16380,"indexed":true,"mutability":"mutable","name":"updateType","nameLocation":"2807:10:64","nodeType":"VariableDeclaration","scope":16384,"src":"2792:25:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16379,"name":"string","nodeType":"ElementaryTypeName","src":"2792:6:64","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16382,"indexed":true,"mutability":"mutable","name":"market","nameLocation":"2843:6:64","nodeType":"VariableDeclaration","scope":16384,"src":"2827:22:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16381,"name":"address","nodeType":"ElementaryTypeName","src":"2827:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2719:136:64"},"src":"2690:166:64"},{"anonymous":false,"documentation":{"id":16385,"nodeType":"StructuredDocumentation","src":"2862:87:64","text":" @notice Emitted when a bridged update is executed on the destination"},"eventSelector":"27f52b13359f1687e1c3c6179b59fd5f217e9f580e76053c074a51d65de2dac7","id":16389,"name":"RemoteUpdateExecuted","nameLocation":"2960:20:64","nodeType":"EventDefinition","parameters":{"id":16388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16387,"indexed":true,"mutability":"mutable","name":"updateId","nameLocation":"2997:8:64","nodeType":"VariableDeclaration","scope":16389,"src":"2981:24:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16386,"name":"uint256","nodeType":"ElementaryTypeName","src":"2981:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2980:26:64"},"src":"2954:53:64"},{"anonymous":false,"documentation":{"id":16390,"nodeType":"StructuredDocumentation","src":"3013:84:64","text":" @notice Emitted when an executor status is set on the destination"},"eventSelector":"10c0e7519c24c8e42dbd4d2405e9976e893c51df86614145b2758289f197ec3b","id":16398,"name":"ExecutorStatusUpdated","nameLocation":"3108:21:64","nodeType":"EventDefinition","parameters":{"id":16397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16392,"indexed":true,"mutability":"mutable","name":"executor","nameLocation":"3146:8:64","nodeType":"VariableDeclaration","scope":16398,"src":"3130:24:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16391,"name":"address","nodeType":"ElementaryTypeName","src":"3130:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16394,"indexed":false,"mutability":"mutable","name":"previousApproved","nameLocation":"3161:16:64","nodeType":"VariableDeclaration","scope":16398,"src":"3156:21:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16393,"name":"bool","nodeType":"ElementaryTypeName","src":"3156:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16396,"indexed":false,"mutability":"mutable","name":"approved","nameLocation":"3184:8:64","nodeType":"VariableDeclaration","scope":16398,"src":"3179:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16395,"name":"bool","nodeType":"ElementaryTypeName","src":"3179:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3129:64:64"},"src":"3102:92:64"},{"anonymous":false,"documentation":{"id":16399,"nodeType":"StructuredDocumentation","src":"3200:88:64","text":" @notice Emitted when a risk parameter config active status is updated"},"eventSelector":"cba816b2fc5cd49700523a79b6e6c7dda19292fbb932cca77f7bccb1e5004792","id":16409,"name":"ConfigActiveUpdated","nameLocation":"3299:19:64","nodeType":"EventDefinition","parameters":{"id":16408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16401,"indexed":true,"mutability":"mutable","name":"updateTypeHash","nameLocation":"3344:14:64","nodeType":"VariableDeclaration","scope":16409,"src":"3328:30:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16400,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3328:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":16403,"indexed":false,"mutability":"mutable","name":"updateType","nameLocation":"3375:10:64","nodeType":"VariableDeclaration","scope":16409,"src":"3368:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16402,"name":"string","nodeType":"ElementaryTypeName","src":"3368:6:64","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16405,"indexed":false,"mutability":"mutable","name":"previousActive","nameLocation":"3400:14:64","nodeType":"VariableDeclaration","scope":16409,"src":"3395:19:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16404,"name":"bool","nodeType":"ElementaryTypeName","src":"3395:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16407,"indexed":true,"mutability":"mutable","name":"active","nameLocation":"3437:6:64","nodeType":"VariableDeclaration","scope":16409,"src":"3424:19:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16406,"name":"bool","nodeType":"ElementaryTypeName","src":"3424:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3318:131:64"},"src":"3293:157:64"},{"anonymous":false,"documentation":{"id":16410,"nodeType":"StructuredDocumentation","src":"3456:80:64","text":" @notice Emitted when an update is rejected on the destination"},"eventSelector":"0a4273908b9362e571cacd5610879e3dfd7ddc7c9b3ce1d7ea7ea8b418691164","id":16414,"name":"UpdateRejected","nameLocation":"3547:14:64","nodeType":"EventDefinition","parameters":{"id":16413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16412,"indexed":true,"mutability":"mutable","name":"updateId","nameLocation":"3578:8:64","nodeType":"VariableDeclaration","scope":16414,"src":"3562:24:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16411,"name":"uint256","nodeType":"ElementaryTypeName","src":"3562:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3561:26:64"},"src":"3541:47:64"},{"anonymous":false,"documentation":{"id":16415,"nodeType":"StructuredDocumentation","src":"3594:82:64","text":" @notice Emitted when the remote delay is set in the constructor"},"eventSelector":"a1c2964049f672e1cba842d393f777ed468b9846eb7de186d7e73665a326b301","id":16419,"name":"RemoteDelaySet","nameLocation":"3687:14:64","nodeType":"EventDefinition","parameters":{"id":16418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16417,"indexed":false,"mutability":"mutable","name":"remoteDelay","nameLocation":"3710:11:64","nodeType":"VariableDeclaration","scope":16419,"src":"3702:19:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16416,"name":"uint256","nodeType":"ElementaryTypeName","src":"3702:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3701:21:64"},"src":"3681:42:64"},{"documentation":{"id":16420,"nodeType":"StructuredDocumentation","src":"3729:95:64","text":" @notice Thrown when trying to operate on an update that was never registered"},"errorSelector":"6196e5a3","id":16422,"name":"UpdateNotFound","nameLocation":"3835:14:64","nodeType":"ErrorDefinition","parameters":{"id":16421,"nodeType":"ParameterList","parameters":[],"src":"3849:2:64"},"src":"3829:23:64"},{"documentation":{"id":16423,"nodeType":"StructuredDocumentation","src":"3858:89:64","text":" @notice Thrown when trying to execute an update before its unlock time"},"errorSelector":"05f5f498","id":16425,"name":"UpdateNotUnlocked","nameLocation":"3958:17:64","nodeType":"ErrorDefinition","parameters":{"id":16424,"nodeType":"ParameterList","parameters":[],"src":"3975:2:64"},"src":"3952:26:64"},{"documentation":{"id":16426,"nodeType":"StructuredDocumentation","src":"3984:96:64","text":" @notice Thrown when config for an update type is not active or not configured"},"errorSelector":"dea2a212","id":16428,"name":"ConfigNotActive","nameLocation":"4091:15:64","nodeType":"ErrorDefinition","parameters":{"id":16427,"nodeType":"ParameterList","parameters":[],"src":"4106:2:64"},"src":"4085:24:64"},{"documentation":{"id":16429,"nodeType":"StructuredDocumentation","src":"4115:86:64","text":" @notice Thrown when a bridged update has expired on the destination"},"errorSelector":"c2a16f14","id":16431,"name":"UpdateIsExpired","nameLocation":"4212:15:64","nodeType":"ErrorDefinition","parameters":{"id":16430,"nodeType":"ParameterList","parameters":[],"src":"4227:2:64"},"src":"4206:24:64"},{"documentation":{"id":16432,"nodeType":"StructuredDocumentation","src":"4236:130:64","text":" @notice Thrown when the debounce period hasn't passed for applying an update to a specific market / update type"},"errorSelector":"53f7a6ee","id":16434,"name":"UpdateTooFrequent","nameLocation":"4377:17:64","nodeType":"ErrorDefinition","parameters":{"id":16433,"nodeType":"ParameterList","parameters":[],"src":"4394:2:64"},"src":"4371:26:64"},{"documentation":{"id":16435,"nodeType":"StructuredDocumentation","src":"4403:78:64","text":" @notice Thrown when an empty update type string is provided"},"errorSelector":"00642800","id":16437,"name":"InvalidUpdateType","nameLocation":"4492:17:64","nodeType":"ErrorDefinition","parameters":{"id":16436,"nodeType":"ParameterList","parameters":[],"src":"4509:2:64"},"src":"4486:26:64"},{"documentation":{"id":16438,"nodeType":"StructuredDocumentation","src":"4518:70:64","text":" @notice Thrown when an update type is not supported"},"errorSelector":"80919d7b","id":16440,"name":"UnsupportedUpdateType","nameLocation":"4599:21:64","nodeType":"ErrorDefinition","parameters":{"id":16439,"nodeType":"ParameterList","parameters":[],"src":"4620:2:64"},"src":"4593:30:64"},{"documentation":{"id":16441,"nodeType":"StructuredDocumentation","src":"4629:67:64","text":" @notice Thrown when a debounce value of 0 is set"},"errorSelector":"f6ea4e06","id":16443,"name":"InvalidDebounce","nameLocation":"4707:15:64","nodeType":"ErrorDefinition","parameters":{"id":16442,"nodeType":"ParameterList","parameters":[],"src":"4722:2:64"},"src":"4701:24:64"},{"documentation":{"id":16444,"nodeType":"StructuredDocumentation","src":"4731:79:64","text":" @notice Thrown when an address is not a whitelisted executor"},"errorSelector":"341f61ec","id":16446,"name":"NotAnExecutor","nameLocation":"4821:13:64","nodeType":"ErrorDefinition","parameters":{"id":16445,"nodeType":"ParameterList","parameters":[],"src":"4834:2:64"},"src":"4815:22:64"},{"documentation":{"id":16447,"nodeType":"StructuredDocumentation","src":"4843:83:64","text":" @notice Thrown when an invalid LayerZero endpoint ID is provided"},"errorSelector":"932c38e6","id":16449,"name":"InvalidLayerZeroEid","nameLocation":"4937:19:64","nodeType":"ErrorDefinition","parameters":{"id":16448,"nodeType":"ParameterList","parameters":[],"src":"4956:2:64"},"src":"4931:28:64"},{"documentation":{"id":16450,"nodeType":"StructuredDocumentation","src":"4965:74:64","text":" @notice Thrown when an invalid remote delay is provided"},"errorSelector":"545f9913","id":16452,"name":"InvalidRemoteDelay","nameLocation":"5050:18:64","nodeType":"ErrorDefinition","parameters":{"id":16451,"nodeType":"ParameterList","parameters":[],"src":"5068:2:64"},"src":"5044:27:64"},{"documentation":{"id":16453,"nodeType":"StructuredDocumentation","src":"5077:80:64","text":" @notice Thrown when trying to set the same remote delay value"},"errorSelector":"bb45c33d","id":16455,"name":"RemoteDelayUnchanged","nameLocation":"5168:20:64","nodeType":"ErrorDefinition","parameters":{"id":16454,"nodeType":"ParameterList","parameters":[],"src":"5188:2:64"},"src":"5162:29:64"},{"documentation":{"id":16456,"nodeType":"StructuredDocumentation","src":"5197:67:64","text":" @notice Thrown when trying to renounce ownership"},"errorSelector":"96c553eb","id":16458,"name":"RenounceOwnershipNotAllowed","nameLocation":"5275:27:64","nodeType":"ErrorDefinition","parameters":{"id":16457,"nodeType":"ParameterList","parameters":[],"src":"5302:2:64"},"src":"5269:36:64"},{"documentation":{"id":16459,"nodeType":"StructuredDocumentation","src":"5311:82:64","text":" @notice Thrown when trying to set the same config active status"},"errorSelector":"01e852dc","id":16461,"name":"ConfigStatusUnchanged","nameLocation":"5404:21:64","nodeType":"ErrorDefinition","parameters":{"id":16460,"nodeType":"ParameterList","parameters":[],"src":"5425:2:64"},"src":"5398:30:64"},{"documentation":{"id":16462,"nodeType":"StructuredDocumentation","src":"5434:87:64","text":" @notice Thrown when trying to set the same executor whitelist status"},"errorSelector":"8eee990d","id":16464,"name":"ExecutorStatusUnchanged","nameLocation":"5532:23:64","nodeType":"ErrorDefinition","parameters":{"id":16463,"nodeType":"ParameterList","parameters":[],"src":"5555:2:64"},"src":"5526:32:64"},{"functionSelector":"b080d71d","id":16473,"implemented":false,"kind":"function","modifiers":[],"name":"setRiskParameterConfig","nameLocation":"5573:22:64","nodeType":"FunctionDefinition","parameters":{"id":16471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16466,"mutability":"mutable","name":"updateType","nameLocation":"5612:10:64","nodeType":"VariableDeclaration","scope":16473,"src":"5596:26:64","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":16465,"name":"string","nodeType":"ElementaryTypeName","src":"5596:6:64","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16468,"mutability":"mutable","name":"riskSteward","nameLocation":"5632:11:64","nodeType":"VariableDeclaration","scope":16473,"src":"5624:19:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16467,"name":"address","nodeType":"ElementaryTypeName","src":"5624:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16470,"mutability":"mutable","name":"debounce","nameLocation":"5653:8:64","nodeType":"VariableDeclaration","scope":16473,"src":"5645:16:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16469,"name":"uint256","nodeType":"ElementaryTypeName","src":"5645:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5595:67:64"},"returnParameters":{"id":16472,"nodeType":"ParameterList","parameters":[],"src":"5671:0:64"},"scope":16540,"src":"5564:108:64","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"438653fe","id":16480,"implemented":false,"kind":"function","modifiers":[],"name":"setConfigActive","nameLocation":"5687:15:64","nodeType":"FunctionDefinition","parameters":{"id":16478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16475,"mutability":"mutable","name":"updateType","nameLocation":"5719:10:64","nodeType":"VariableDeclaration","scope":16480,"src":"5703:26:64","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":16474,"name":"string","nodeType":"ElementaryTypeName","src":"5703:6:64","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16477,"mutability":"mutable","name":"active","nameLocation":"5736:6:64","nodeType":"VariableDeclaration","scope":16480,"src":"5731:11:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16476,"name":"bool","nodeType":"ElementaryTypeName","src":"5731:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5702:41:64"},"returnParameters":{"id":16479,"nodeType":"ParameterList","parameters":[],"src":"5752:0:64"},"scope":16540,"src":"5678:75:64","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"3aed7f31","id":16487,"implemented":false,"kind":"function","modifiers":[],"name":"setWhitelistedExecutor","nameLocation":"5768:22:64","nodeType":"FunctionDefinition","parameters":{"id":16485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16482,"mutability":"mutable","name":"executor","nameLocation":"5799:8:64","nodeType":"VariableDeclaration","scope":16487,"src":"5791:16:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16481,"name":"address","nodeType":"ElementaryTypeName","src":"5791:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16484,"mutability":"mutable","name":"approved","nameLocation":"5814:8:64","nodeType":"VariableDeclaration","scope":16487,"src":"5809:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16483,"name":"bool","nodeType":"ElementaryTypeName","src":"5809:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5790:33:64"},"returnParameters":{"id":16486,"nodeType":"ParameterList","parameters":[],"src":"5832:0:64"},"scope":16540,"src":"5759:74:64","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"ca136b99","id":16492,"implemented":false,"kind":"function","modifiers":[],"name":"setRemoteDelay","nameLocation":"5848:14:64","nodeType":"FunctionDefinition","parameters":{"id":16490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16489,"mutability":"mutable","name":"newRemoteDelay","nameLocation":"5871:14:64","nodeType":"VariableDeclaration","scope":16492,"src":"5863:22:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16488,"name":"uint256","nodeType":"ElementaryTypeName","src":"5863:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5862:24:64"},"returnParameters":{"id":16491,"nodeType":"ParameterList","parameters":[],"src":"5895:0:64"},"scope":16540,"src":"5839:57:64","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"79edd100","id":16497,"implemented":false,"kind":"function","modifiers":[],"name":"executeUpdate","nameLocation":"5911:13:64","nodeType":"FunctionDefinition","parameters":{"id":16495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16494,"mutability":"mutable","name":"updateId","nameLocation":"5933:8:64","nodeType":"VariableDeclaration","scope":16497,"src":"5925:16:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16493,"name":"uint256","nodeType":"ElementaryTypeName","src":"5925:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5924:18:64"},"returnParameters":{"id":16496,"nodeType":"ParameterList","parameters":[],"src":"5951:0:64"},"scope":16540,"src":"5902:50:64","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"c3e10deb","id":16502,"implemented":false,"kind":"function","modifiers":[],"name":"rejectUpdate","nameLocation":"5967:12:64","nodeType":"FunctionDefinition","parameters":{"id":16500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16499,"mutability":"mutable","name":"updateId","nameLocation":"5988:8:64","nodeType":"VariableDeclaration","scope":16502,"src":"5980:16:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16498,"name":"uint256","nodeType":"ElementaryTypeName","src":"5980:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5979:18:64"},"returnParameters":{"id":16501,"nodeType":"ParameterList","parameters":[],"src":"6006:0:64"},"scope":16540,"src":"5958:49:64","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"f63106e4","id":16512,"implemented":false,"kind":"function","modifiers":[],"name":"getExecutableUpdates","nameLocation":"6022:20:64","nodeType":"FunctionDefinition","parameters":{"id":16507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16504,"mutability":"mutable","name":"updateType","nameLocation":"6068:10:64","nodeType":"VariableDeclaration","scope":16512,"src":"6052:26:64","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":16503,"name":"string","nodeType":"ElementaryTypeName","src":"6052:6:64","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16506,"mutability":"mutable","name":"comptroller","nameLocation":"6096:11:64","nodeType":"VariableDeclaration","scope":16512,"src":"6088:19:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16505,"name":"address","nodeType":"ElementaryTypeName","src":"6088:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6042:71:64"},"returnParameters":{"id":16511,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16510,"mutability":"mutable","name":"executableUpdates","nameLocation":"6154:17:64","nodeType":"VariableDeclaration","scope":16512,"src":"6137:34:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":16508,"name":"uint256","nodeType":"ElementaryTypeName","src":"6137:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16509,"nodeType":"ArrayTypeName","src":"6137:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"6136:36:64"},"scope":16540,"src":"6013:160:64","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"28207141","id":16520,"implemented":false,"kind":"function","modifiers":[],"name":"getRiskParameterConfig","nameLocation":"6188:22:64","nodeType":"FunctionDefinition","parameters":{"id":16515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16514,"mutability":"mutable","name":"updateType","nameLocation":"6227:10:64","nodeType":"VariableDeclaration","scope":16520,"src":"6211:26:64","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":16513,"name":"string","nodeType":"ElementaryTypeName","src":"6211:6:64","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6210:28:64"},"returnParameters":{"id":16519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16518,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16520,"src":"6262:22:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16320_memory_ptr","typeString":"struct IDestinationStewardReceiver.RiskParamConfig"},"typeName":{"id":16517,"nodeType":"UserDefinedTypeName","pathNode":{"id":16516,"name":"RiskParamConfig","nameLocations":["6262:15:64"],"nodeType":"IdentifierPath","referencedDeclaration":16320,"src":"6262:15:64"},"referencedDeclaration":16320,"src":"6262:15:64","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16320_storage_ptr","typeString":"struct IDestinationStewardReceiver.RiskParamConfig"}},"visibility":"internal"}],"src":"6261:24:64"},"scope":16540,"src":"6179:107:64","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"f5d3b7b3","id":16530,"implemented":false,"kind":"function","modifiers":[],"name":"getRegisteredUpdate","nameLocation":"6301:19:64","nodeType":"FunctionDefinition","parameters":{"id":16525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16522,"mutability":"mutable","name":"updateType","nameLocation":"6346:10:64","nodeType":"VariableDeclaration","scope":16530,"src":"6330:26:64","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":16521,"name":"string","nodeType":"ElementaryTypeName","src":"6330:6:64","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16524,"mutability":"mutable","name":"market","nameLocation":"6374:6:64","nodeType":"VariableDeclaration","scope":16530,"src":"6366:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16523,"name":"address","nodeType":"ElementaryTypeName","src":"6366:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6320:66:64"},"returnParameters":{"id":16529,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16528,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16530,"src":"6410:24:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_DestinationUpdate_$16332_memory_ptr","typeString":"struct IDestinationStewardReceiver.DestinationUpdate"},"typeName":{"id":16527,"nodeType":"UserDefinedTypeName","pathNode":{"id":16526,"name":"DestinationUpdate","nameLocations":["6410:17:64"],"nodeType":"IdentifierPath","referencedDeclaration":16332,"src":"6410:17:64"},"referencedDeclaration":16332,"src":"6410:17:64","typeDescriptions":{"typeIdentifier":"t_struct$_DestinationUpdate_$16332_storage_ptr","typeString":"struct IDestinationStewardReceiver.DestinationUpdate"}},"visibility":"internal"}],"src":"6409:26:64"},"scope":16540,"src":"6292:144:64","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"be3881b4","id":16539,"implemented":false,"kind":"function","modifiers":[],"name":"getLastExecutedAt","nameLocation":"6451:17:64","nodeType":"FunctionDefinition","parameters":{"id":16535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16532,"mutability":"mutable","name":"updateType","nameLocation":"6485:10:64","nodeType":"VariableDeclaration","scope":16539,"src":"6469:26:64","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":16531,"name":"string","nodeType":"ElementaryTypeName","src":"6469:6:64","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16534,"mutability":"mutable","name":"market","nameLocation":"6505:6:64","nodeType":"VariableDeclaration","scope":16539,"src":"6497:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16533,"name":"address","nodeType":"ElementaryTypeName","src":"6497:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6468:44:64"},"returnParameters":{"id":16538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16537,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16539,"src":"6536:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16536,"name":"uint256","nodeType":"ElementaryTypeName","src":"6536:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6535:9:64"},"scope":16540,"src":"6442:103:64","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":16541,"src":"124:6423:64","usedErrors":[16422,16425,16428,16431,16434,16437,16440,16443,16446,16449,16452,16455,16458,16461,16464],"usedEvents":[16351,16362,16373,16384,16389,16398,16409,16414,16419]}],"src":"41:6507:64"},"id":64},"contracts/RiskSteward/Interfaces/IRiskOracle.sol":{"ast":{"absolutePath":"contracts/RiskSteward/Interfaces/IRiskOracle.sol","exportedSymbols":{"IRiskOracle":[16808],"RiskParameterUpdate":[16568]},"id":16809,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":16542,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"32:23:65"},{"canonicalName":"RiskParameterUpdate","documentation":{"id":16543,"nodeType":"StructuredDocumentation","src":"57:1082:65","text":" @notice Struct representing a risk parameter update published by the Risk Oracle\n @param referenceId External reference ID, potentially linking to a document or off-chain data\n @param updateId Unique identifier for this specific update\n @param market Address of the market for which the parameter update applies\n @param updateType Classification of the update type for validation purposes (human-readable)\n @param updateTypeKey Keccak256 hash of updateType for efficient comparisons\n @param newValue Encoded new value of the risk parameter, flexible for various data types\n @param previousValue Previous value of the parameter for historical comparison\n @param timestamp Block timestamp when the update was published\n @param publisher Address of the account that published this update\n @param poolId Pool identifier for eMode-style collateral configuration (0 for regular markets)\n @param destLzEid LayerZero endpoint ID of the destination chain (0 for local execution)\n @param additionalData Additional metadata or data associated with the update"},"id":16568,"members":[{"constant":false,"id":16545,"mutability":"mutable","name":"referenceId","nameLocation":"1180:11:65","nodeType":"VariableDeclaration","scope":16568,"src":"1173:18:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":16544,"name":"string","nodeType":"ElementaryTypeName","src":"1173:6:65","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16547,"mutability":"mutable","name":"updateId","nameLocation":"1205:8:65","nodeType":"VariableDeclaration","scope":16568,"src":"1197:16:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16546,"name":"uint256","nodeType":"ElementaryTypeName","src":"1197:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16549,"mutability":"mutable","name":"market","nameLocation":"1227:6:65","nodeType":"VariableDeclaration","scope":16568,"src":"1219:14:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16548,"name":"address","nodeType":"ElementaryTypeName","src":"1219:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16551,"mutability":"mutable","name":"updateType","nameLocation":"1246:10:65","nodeType":"VariableDeclaration","scope":16568,"src":"1239:17:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":16550,"name":"string","nodeType":"ElementaryTypeName","src":"1239:6:65","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16553,"mutability":"mutable","name":"updateTypeKey","nameLocation":"1270:13:65","nodeType":"VariableDeclaration","scope":16568,"src":"1262:21:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16552,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1262:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":16555,"mutability":"mutable","name":"newValue","nameLocation":"1295:8:65","nodeType":"VariableDeclaration","scope":16568,"src":"1289:14:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":16554,"name":"bytes","nodeType":"ElementaryTypeName","src":"1289:5:65","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":16557,"mutability":"mutable","name":"previousValue","nameLocation":"1315:13:65","nodeType":"VariableDeclaration","scope":16568,"src":"1309:19:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":16556,"name":"bytes","nodeType":"ElementaryTypeName","src":"1309:5:65","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":16559,"mutability":"mutable","name":"timestamp","nameLocation":"1342:9:65","nodeType":"VariableDeclaration","scope":16568,"src":"1334:17:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16558,"name":"uint256","nodeType":"ElementaryTypeName","src":"1334:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16561,"mutability":"mutable","name":"publisher","nameLocation":"1365:9:65","nodeType":"VariableDeclaration","scope":16568,"src":"1357:17:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16560,"name":"address","nodeType":"ElementaryTypeName","src":"1357:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16563,"mutability":"mutable","name":"poolId","nameLocation":"1387:6:65","nodeType":"VariableDeclaration","scope":16568,"src":"1380:13:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":16562,"name":"uint96","nodeType":"ElementaryTypeName","src":"1380:6:65","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":16565,"mutability":"mutable","name":"destLzEid","nameLocation":"1406:9:65","nodeType":"VariableDeclaration","scope":16568,"src":"1399:16:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":16564,"name":"uint32","nodeType":"ElementaryTypeName","src":"1399:6:65","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":16567,"mutability":"mutable","name":"additionalData","nameLocation":"1427:14:65","nodeType":"VariableDeclaration","scope":16568,"src":"1421:20:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":16566,"name":"bytes","nodeType":"ElementaryTypeName","src":"1421:5:65","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"RiskParameterUpdate","nameLocation":"1147:19:65","nodeType":"StructDefinition","scope":16809,"src":"1140:304:65","visibility":"public"},{"abstract":false,"baseContracts":[],"canonicalName":"IRiskOracle","contractDependencies":[],"contractKind":"interface","documentation":{"id":16569,"nodeType":"StructuredDocumentation","src":"1446:142:65","text":" @title IRiskOracle\n @author Venus\n @notice Interface for Risk Oracle contract that manages and publishes risk parameter updates"},"fullyImplemented":false,"id":16808,"linearizedBaseContracts":[16808],"name":"IRiskOracle","nameLocation":"1599:11:65","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":16570,"nodeType":"StructuredDocumentation","src":"1617:67:65","text":"@notice Event emitted when a risk parameter update is published"},"eventSelector":"fc790d5ce2687ea5b75f51b2fff6d34792504386d9c73160bb6bdc6ea25f5b69","id":16590,"name":"UpdatePublished","nameLocation":"1695:15:65","nodeType":"EventDefinition","parameters":{"id":16589,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16572,"indexed":false,"mutability":"mutable","name":"referenceId","nameLocation":"1727:11:65","nodeType":"VariableDeclaration","scope":16590,"src":"1720:18:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16571,"name":"string","nodeType":"ElementaryTypeName","src":"1720:6:65","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16574,"indexed":true,"mutability":"mutable","name":"updateId","nameLocation":"1764:8:65","nodeType":"VariableDeclaration","scope":16590,"src":"1748:24:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16573,"name":"uint256","nodeType":"ElementaryTypeName","src":"1748:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16576,"indexed":true,"mutability":"mutable","name":"market","nameLocation":"1798:6:65","nodeType":"VariableDeclaration","scope":16590,"src":"1782:22:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16575,"name":"address","nodeType":"ElementaryTypeName","src":"1782:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16578,"indexed":true,"mutability":"mutable","name":"updateType","nameLocation":"1829:10:65","nodeType":"VariableDeclaration","scope":16590,"src":"1814:25:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16577,"name":"string","nodeType":"ElementaryTypeName","src":"1814:6:65","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16580,"indexed":false,"mutability":"mutable","name":"newValue","nameLocation":"1855:8:65","nodeType":"VariableDeclaration","scope":16590,"src":"1849:14:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":16579,"name":"bytes","nodeType":"ElementaryTypeName","src":"1849:5:65","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":16582,"indexed":false,"mutability":"mutable","name":"previousValue","nameLocation":"1879:13:65","nodeType":"VariableDeclaration","scope":16590,"src":"1873:19:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":16581,"name":"bytes","nodeType":"ElementaryTypeName","src":"1873:5:65","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":16584,"indexed":false,"mutability":"mutable","name":"timestamp","nameLocation":"1910:9:65","nodeType":"VariableDeclaration","scope":16590,"src":"1902:17:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16583,"name":"uint256","nodeType":"ElementaryTypeName","src":"1902:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16586,"indexed":false,"mutability":"mutable","name":"publisher","nameLocation":"1937:9:65","nodeType":"VariableDeclaration","scope":16590,"src":"1929:17:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16585,"name":"address","nodeType":"ElementaryTypeName","src":"1929:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16588,"indexed":false,"mutability":"mutable","name":"additionalData","nameLocation":"1962:14:65","nodeType":"VariableDeclaration","scope":16590,"src":"1956:20:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":16587,"name":"bytes","nodeType":"ElementaryTypeName","src":"1956:5:65","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1710:272:65"},"src":"1689:294:65"},{"anonymous":false,"documentation":{"id":16591,"nodeType":"StructuredDocumentation","src":"1989:63:65","text":"@notice Event emitted when a new authorized sender is added"},"eventSelector":"d06d2241a59677d082959f22e5a5212c57a9e890949a9d0f2426efd49f8c5d7f","id":16595,"name":"AuthorizedSenderAdded","nameLocation":"2063:21:65","nodeType":"EventDefinition","parameters":{"id":16594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16593,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"2101:6:65","nodeType":"VariableDeclaration","scope":16595,"src":"2085:22:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16592,"name":"address","nodeType":"ElementaryTypeName","src":"2085:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2084:24:65"},"src":"2057:52:65"},{"anonymous":false,"documentation":{"id":16596,"nodeType":"StructuredDocumentation","src":"2115:62:65","text":"@notice Event emitted when an authorized sender is removed"},"eventSelector":"98f9958a855d78eae670154a7d047d26968849962c3204c2b12c2228634f4ff8","id":16600,"name":"AuthorizedSenderRemoved","nameLocation":"2188:23:65","nodeType":"EventDefinition","parameters":{"id":16599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16598,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"2228:6:65","nodeType":"VariableDeclaration","scope":16600,"src":"2212:22:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16597,"name":"address","nodeType":"ElementaryTypeName","src":"2212:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2211:24:65"},"src":"2182:54:65"},{"anonymous":false,"documentation":{"id":16601,"nodeType":"StructuredDocumentation","src":"2242:57:65","text":"@notice Event emitted when a new update type is added"},"eventSelector":"07d686af6e6b7a2e3d03f5c81f05bba6a5b3686aca218f92f96b84c7d59aabaf","id":16605,"name":"UpdateTypeAdded","nameLocation":"2310:15:65","nodeType":"EventDefinition","parameters":{"id":16604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16603,"indexed":true,"mutability":"mutable","name":"updateType","nameLocation":"2341:10:65","nodeType":"VariableDeclaration","scope":16605,"src":"2326:25:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16602,"name":"string","nodeType":"ElementaryTypeName","src":"2326:6:65","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2325:27:65"},"src":"2304:49:65"},{"anonymous":false,"documentation":{"id":16606,"nodeType":"StructuredDocumentation","src":"2359:72:65","text":"@notice Event emitted when an update type's active status is changed"},"eventSelector":"33843b38d9deffbe0817aebcd9e744876dbf296fb42cabaca9b24160ab70811e","id":16614,"name":"UpdateTypeActiveStatusChanged","nameLocation":"2442:29:65","nodeType":"EventDefinition","parameters":{"id":16613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16608,"indexed":true,"mutability":"mutable","name":"updateType","nameLocation":"2487:10:65","nodeType":"VariableDeclaration","scope":16614,"src":"2472:25:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16607,"name":"string","nodeType":"ElementaryTypeName","src":"2472:6:65","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16610,"indexed":false,"mutability":"mutable","name":"previousActive","nameLocation":"2504:14:65","nodeType":"VariableDeclaration","scope":16614,"src":"2499:19:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16609,"name":"bool","nodeType":"ElementaryTypeName","src":"2499:4:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16612,"indexed":false,"mutability":"mutable","name":"active","nameLocation":"2525:6:65","nodeType":"VariableDeclaration","scope":16614,"src":"2520:11:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16611,"name":"bool","nodeType":"ElementaryTypeName","src":"2520:4:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2471:61:65"},"src":"2436:97:65"},{"documentation":{"id":16615,"nodeType":"StructuredDocumentation","src":"2539:48:65","text":"@notice Thrown when sender is not authorized"},"errorSelector":"79d1e58f","id":16617,"name":"SenderNotAuthorized","nameLocation":"2598:19:65","nodeType":"ErrorDefinition","parameters":{"id":16616,"nodeType":"ParameterList","parameters":[],"src":"2617:2:65"},"src":"2592:28:65"},{"documentation":{"id":16618,"nodeType":"StructuredDocumentation","src":"2626:52:65","text":"@notice Thrown when sender is already authorized"},"errorSelector":"16fc7471","id":16620,"name":"SenderAlreadyAuthorized","nameLocation":"2689:23:65","nodeType":"ErrorDefinition","parameters":{"id":16619,"nodeType":"ParameterList","parameters":[],"src":"2712:2:65"},"src":"2683:32:65"},{"documentation":{"id":16621,"nodeType":"StructuredDocumentation","src":"2721:53:65","text":"@notice Thrown when update type string is invalid"},"errorSelector":"920af76c","id":16623,"name":"InvalidUpdateTypeString","nameLocation":"2785:23:65","nodeType":"ErrorDefinition","parameters":{"id":16622,"nodeType":"ParameterList","parameters":[],"src":"2808:2:65"},"src":"2779:32:65"},{"documentation":{"id":16624,"nodeType":"StructuredDocumentation","src":"2817:50:65","text":"@notice Thrown when update type already exists"},"errorSelector":"40df35ca","id":16626,"name":"UpdateTypeAlreadyExists","nameLocation":"2878:23:65","nodeType":"ErrorDefinition","parameters":{"id":16625,"nodeType":"ParameterList","parameters":[],"src":"2901:2:65"},"src":"2872:32:65"},{"documentation":{"id":16627,"nodeType":"StructuredDocumentation","src":"2910:49:65","text":"@notice Thrown when update type doesn't exist"},"errorSelector":"6ebb186d","id":16629,"name":"UpdateTypeNotFound","nameLocation":"2970:18:65","nodeType":"ErrorDefinition","parameters":{"id":16628,"nodeType":"ParameterList","parameters":[],"src":"2988:2:65"},"src":"2964:27:65"},{"documentation":{"id":16630,"nodeType":"StructuredDocumentation","src":"2997:85:65","text":"@notice Thrown when update type active status is already set to the desired value"},"errorSelector":"6ebba152","id":16632,"name":"UpdateTypeStatusUnchanged","nameLocation":"3093:25:65","nodeType":"ErrorDefinition","parameters":{"id":16631,"nodeType":"ParameterList","parameters":[],"src":"3118:2:65"},"src":"3087:34:65"},{"documentation":{"id":16633,"nodeType":"StructuredDocumentation","src":"3127:49:65","text":"@notice Thrown when update type is not active"},"errorSelector":"686d1d38","id":16635,"name":"UpdateTypeNotActive","nameLocation":"3187:19:65","nodeType":"ErrorDefinition","parameters":{"id":16634,"nodeType":"ParameterList","parameters":[],"src":"3206:2:65"},"src":"3181:28:65"},{"documentation":{"id":16636,"nodeType":"StructuredDocumentation","src":"3215:42:65","text":"@notice Thrown when no update is found"},"errorSelector":"1ca36fe2","id":16638,"name":"NoUpdateFound","nameLocation":"3268:13:65","nodeType":"ErrorDefinition","parameters":{"id":16637,"nodeType":"ParameterList","parameters":[],"src":"3281:2:65"},"src":"3262:22:65"},{"documentation":{"id":16639,"nodeType":"StructuredDocumentation","src":"3290:44:65","text":"@notice Thrown when update ID is invalid"},"errorSelector":"ac6c0d01","id":16641,"name":"InvalidUpdateId","nameLocation":"3345:15:65","nodeType":"ErrorDefinition","parameters":{"id":16640,"nodeType":"ParameterList","parameters":[],"src":"3360:2:65"},"src":"3339:24:65"},{"documentation":{"id":16642,"nodeType":"StructuredDocumentation","src":"3369:68:65","text":"@notice Thrown when array lengths don't match in bulk operations"},"errorSelector":"a24a13a6","id":16644,"name":"ArrayLengthMismatch","nameLocation":"3448:19:65","nodeType":"ErrorDefinition","parameters":{"id":16643,"nodeType":"ParameterList","parameters":[],"src":"3467:2:65"},"src":"3442:28:65"},{"documentation":{"id":16645,"nodeType":"StructuredDocumentation","src":"3476:52:65","text":"@notice Thrown when trying to renounce ownership"},"errorSelector":"96c553eb","id":16647,"name":"RenounceOwnershipNotAllowed","nameLocation":"3539:27:65","nodeType":"ErrorDefinition","parameters":{"id":16646,"nodeType":"ParameterList","parameters":[],"src":"3566:2:65"},"src":"3533:36:65"},{"documentation":{"id":16648,"nodeType":"StructuredDocumentation","src":"3575:223:65","text":" @notice Returns the update type string at the given index in the allUpdateTypes array\n @param index The index in the allUpdateTypes array\n @return The update type string at the specified index"},"functionSelector":"c6b8ab42","id":16655,"implemented":false,"kind":"function","modifiers":[],"name":"allUpdateTypes","nameLocation":"3812:14:65","nodeType":"FunctionDefinition","parameters":{"id":16651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16650,"mutability":"mutable","name":"index","nameLocation":"3835:5:65","nodeType":"VariableDeclaration","scope":16655,"src":"3827:13:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16649,"name":"uint256","nodeType":"ElementaryTypeName","src":"3827:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3826:15:65"},"returnParameters":{"id":16654,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16653,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16655,"src":"3865:13:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16652,"name":"string","nodeType":"ElementaryTypeName","src":"3865:6:65","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3864:15:65"},"scope":16808,"src":"3803:77:65","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":16656,"nodeType":"StructuredDocumentation","src":"3886:149:65","text":" @notice Returns the total number of update types in the allUpdateTypes array\n @return The length of the allUpdateTypes array"},"functionSelector":"592d3733","id":16661,"implemented":false,"kind":"function","modifiers":[],"name":"allUpdateTypesLength","nameLocation":"4049:20:65","nodeType":"FunctionDefinition","parameters":{"id":16657,"nodeType":"ParameterList","parameters":[],"src":"4069:2:65"},"returnParameters":{"id":16660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16659,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16661,"src":"4095:7:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16658,"name":"uint256","nodeType":"ElementaryTypeName","src":"4095:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4094:9:65"},"scope":16808,"src":"4040:64:65","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":16662,"nodeType":"StructuredDocumentation","src":"4110:130:65","text":" @notice Returns all update types in the allUpdateTypes array\n @return An array of all update type strings"},"functionSelector":"c030ce7b","id":16668,"implemented":false,"kind":"function","modifiers":[],"name":"getAllUpdateTypes","nameLocation":"4254:17:65","nodeType":"FunctionDefinition","parameters":{"id":16663,"nodeType":"ParameterList","parameters":[],"src":"4271:2:65"},"returnParameters":{"id":16667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16666,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16668,"src":"4297:15:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":16664,"name":"string","nodeType":"ElementaryTypeName","src":"4297:6:65","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":16665,"nodeType":"ArrayTypeName","src":"4297:8:65","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"4296:17:65"},"scope":16808,"src":"4245:69:65","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":16669,"nodeType":"StructuredDocumentation","src":"4320:199:65","text":" @notice Checks if a given update type is currently active\n @param updateType The update type string to check\n @return True if the update type is active, false otherwise"},"functionSelector":"986576fa","id":16676,"implemented":false,"kind":"function","modifiers":[],"name":"getActiveUpdateTypes","nameLocation":"4533:20:65","nodeType":"FunctionDefinition","parameters":{"id":16672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16671,"mutability":"mutable","name":"updateType","nameLocation":"4568:10:65","nodeType":"VariableDeclaration","scope":16676,"src":"4554:24:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16670,"name":"string","nodeType":"ElementaryTypeName","src":"4554:6:65","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4553:26:65"},"returnParameters":{"id":16675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16674,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16676,"src":"4603:4:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16673,"name":"bool","nodeType":"ElementaryTypeName","src":"4603:4:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4602:6:65"},"scope":16808,"src":"4524:85:65","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":16677,"nodeType":"StructuredDocumentation","src":"4615:219:65","text":" @notice Checks if a given update type is currently active\n @param updateTypeKey The keccak256 hash of the update type string\n @return True if the update type key is active, false otherwise"},"functionSelector":"157b1225","id":16684,"implemented":false,"kind":"function","modifiers":[],"name":"activeUpdateTypes","nameLocation":"4848:17:65","nodeType":"FunctionDefinition","parameters":{"id":16680,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16679,"mutability":"mutable","name":"updateTypeKey","nameLocation":"4874:13:65","nodeType":"VariableDeclaration","scope":16684,"src":"4866:21:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16678,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4866:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4865:23:65"},"returnParameters":{"id":16683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16682,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16684,"src":"4912:4:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16681,"name":"bool","nodeType":"ElementaryTypeName","src":"4912:4:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4911:6:65"},"scope":16808,"src":"4839:79:65","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":16685,"nodeType":"StructuredDocumentation","src":"4924:206:65","text":" @notice Checks if an address is authorized to publish updates\n @param sender The address to check for authorization\n @return True if the address is authorized, false otherwise"},"functionSelector":"6f324967","id":16692,"implemented":false,"kind":"function","modifiers":[],"name":"authorizedSenders","nameLocation":"5144:17:65","nodeType":"FunctionDefinition","parameters":{"id":16688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16687,"mutability":"mutable","name":"sender","nameLocation":"5170:6:65","nodeType":"VariableDeclaration","scope":16692,"src":"5162:14:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16686,"name":"address","nodeType":"ElementaryTypeName","src":"5162:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5161:16:65"},"returnParameters":{"id":16691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16690,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16692,"src":"5201:4:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16689,"name":"bool","nodeType":"ElementaryTypeName","src":"5201:4:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5200:6:65"},"scope":16808,"src":"5135:72:65","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":16693,"nodeType":"StructuredDocumentation","src":"5213:313:65","text":" @notice Gets the latest update ID for a specific market and update type combination\n @param updateTypeKey The keccak256 hash of the update type string\n @param market The market address\n @return The latest update ID for the given market and update type key, or 0 if none exists"},"functionSelector":"43b62b26","id":16702,"implemented":false,"kind":"function","modifiers":[],"name":"latestUpdateIdByMarketAndType","nameLocation":"5540:29:65","nodeType":"FunctionDefinition","parameters":{"id":16698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16695,"mutability":"mutable","name":"updateTypeKey","nameLocation":"5578:13:65","nodeType":"VariableDeclaration","scope":16702,"src":"5570:21:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16694,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5570:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":16697,"mutability":"mutable","name":"market","nameLocation":"5601:6:65","nodeType":"VariableDeclaration","scope":16702,"src":"5593:14:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16696,"name":"address","nodeType":"ElementaryTypeName","src":"5593:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5569:39:65"},"returnParameters":{"id":16701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16700,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16702,"src":"5632:7:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16699,"name":"uint256","nodeType":"ElementaryTypeName","src":"5632:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5631:9:65"},"scope":16808,"src":"5531:110:65","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":16703,"nodeType":"StructuredDocumentation","src":"5647:135:65","text":" @notice Returns the total number of updates that have been published\n @return The current update counter value"},"functionSelector":"1687fe8e","id":16708,"implemented":false,"kind":"function","modifiers":[],"name":"updateCounter","nameLocation":"5796:13:65","nodeType":"FunctionDefinition","parameters":{"id":16704,"nodeType":"ParameterList","parameters":[],"src":"5809:2:65"},"returnParameters":{"id":16707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16706,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16708,"src":"5835:7:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16705,"name":"uint256","nodeType":"ElementaryTypeName","src":"5835:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5834:9:65"},"scope":16808,"src":"5787:57:65","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":16709,"nodeType":"StructuredDocumentation","src":"5850:391:65","text":" @notice Fetches the most recent update for a specific parameter type in a specific market\n @param updateType The update type identifier\n @param market The market address\n @return The most recent RiskParameterUpdate for the specified parameter and market\n @custom:error NoUpdateFound Thrown if no update exists for the specified parameter and market"},"functionSelector":"f660fe69","id":16719,"implemented":false,"kind":"function","modifiers":[],"name":"getLatestUpdateByTypeAndMarket","nameLocation":"6255:30:65","nodeType":"FunctionDefinition","parameters":{"id":16714,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16711,"mutability":"mutable","name":"updateType","nameLocation":"6309:10:65","nodeType":"VariableDeclaration","scope":16719,"src":"6295:24:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16710,"name":"string","nodeType":"ElementaryTypeName","src":"6295:6:65","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16713,"mutability":"mutable","name":"market","nameLocation":"6337:6:65","nodeType":"VariableDeclaration","scope":16719,"src":"6329:14:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16712,"name":"address","nodeType":"ElementaryTypeName","src":"6329:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6285:64:65"},"returnParameters":{"id":16718,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16717,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16719,"src":"6373:26:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate"},"typeName":{"id":16716,"nodeType":"UserDefinedTypeName","pathNode":{"id":16715,"name":"RiskParameterUpdate","nameLocations":["6373:19:65"],"nodeType":"IdentifierPath","referencedDeclaration":16568,"src":"6373:19:65"},"referencedDeclaration":16568,"src":"6373:19:65","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_storage_ptr","typeString":"struct RiskParameterUpdate"}},"visibility":"internal"}],"src":"6372:28:65"},"scope":16808,"src":"6246:155:65","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":16720,"nodeType":"StructuredDocumentation","src":"6407:297:65","text":" @notice Gets the latest update ID for a specific market and update type (string) combination\n @param updateType The update type identifier\n @param market The market address\n @return The latest update ID for the given market and update type, or 0 if none exists"},"functionSelector":"34496b5a","id":16729,"implemented":false,"kind":"function","modifiers":[],"name":"getLatestUpdateIdByTypeAndMarket","nameLocation":"6718:32:65","nodeType":"FunctionDefinition","parameters":{"id":16725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16722,"mutability":"mutable","name":"updateType","nameLocation":"6765:10:65","nodeType":"VariableDeclaration","scope":16729,"src":"6751:24:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16721,"name":"string","nodeType":"ElementaryTypeName","src":"6751:6:65","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16724,"mutability":"mutable","name":"market","nameLocation":"6785:6:65","nodeType":"VariableDeclaration","scope":16729,"src":"6777:14:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16723,"name":"address","nodeType":"ElementaryTypeName","src":"6777:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6750:42:65"},"returnParameters":{"id":16728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16727,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16729,"src":"6816:7:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16726,"name":"uint256","nodeType":"ElementaryTypeName","src":"6816:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6815:9:65"},"scope":16808,"src":"6709:116:65","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":16730,"nodeType":"StructuredDocumentation","src":"6831:279:65","text":" @notice Fetches the update for a provided update ID\n @param updateId The unique update ID\n @return The RiskParameterUpdate struct for the specified update ID\n @custom:error InvalidUpdateId Thrown if updateId is 0 or greater than updateCounter"},"functionSelector":"37759b9a","id":16738,"implemented":false,"kind":"function","modifiers":[],"name":"getUpdateById","nameLocation":"7124:13:65","nodeType":"FunctionDefinition","parameters":{"id":16733,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16732,"mutability":"mutable","name":"updateId","nameLocation":"7146:8:65","nodeType":"VariableDeclaration","scope":16738,"src":"7138:16:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16731,"name":"uint256","nodeType":"ElementaryTypeName","src":"7138:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7137:18:65"},"returnParameters":{"id":16737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16736,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16738,"src":"7179:26:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate"},"typeName":{"id":16735,"nodeType":"UserDefinedTypeName","pathNode":{"id":16734,"name":"RiskParameterUpdate","nameLocations":["7179:19:65"],"nodeType":"IdentifierPath","referencedDeclaration":16568,"src":"7179:19:65"},"referencedDeclaration":16568,"src":"7179:19:65","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_storage_ptr","typeString":"struct RiskParameterUpdate"}},"visibility":"internal"}],"src":"7178:28:65"},"scope":16808,"src":"7115:92:65","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":16739,"nodeType":"StructuredDocumentation","src":"7213:488:65","text":" @notice Adds a new address to the list of authorized senders who can publish updates\n @param sender Address to be authorized\n @custom:error ZeroAddressNotAllowed Thrown if sender is the zero address\n @custom:error SenderAlreadyAuthorized Thrown if sender is already authorized\n @custom:error Unauthorized Thrown if caller is not allowed by AccessControlManager\n @custom:event AuthorizedSenderAdded Emitted when sender is successfully added"},"functionSelector":"fa7229ee","id":16744,"implemented":false,"kind":"function","modifiers":[],"name":"addAuthorizedSender","nameLocation":"7715:19:65","nodeType":"FunctionDefinition","parameters":{"id":16742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16741,"mutability":"mutable","name":"sender","nameLocation":"7743:6:65","nodeType":"VariableDeclaration","scope":16744,"src":"7735:14:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16740,"name":"address","nodeType":"ElementaryTypeName","src":"7735:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7734:16:65"},"returnParameters":{"id":16743,"nodeType":"ParameterList","parameters":[],"src":"7759:0:65"},"scope":16808,"src":"7706:54:65","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":16745,"nodeType":"StructuredDocumentation","src":"7766:408:65","text":" @notice Removes an address from the list of authorized senders\n @param sender Address to be removed from authorization\n @custom:error SenderNotAuthorized Thrown if sender is not currently authorized\n @custom:error Unauthorized Thrown if caller is not allowed by AccessControlManager\n @custom:event AuthorizedSenderRemoved Emitted when sender is successfully removed"},"functionSelector":"cbd57967","id":16750,"implemented":false,"kind":"function","modifiers":[],"name":"removeAuthorizedSender","nameLocation":"8188:22:65","nodeType":"FunctionDefinition","parameters":{"id":16748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16747,"mutability":"mutable","name":"sender","nameLocation":"8219:6:65","nodeType":"VariableDeclaration","scope":16750,"src":"8211:14:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16746,"name":"address","nodeType":"ElementaryTypeName","src":"8211:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8210:16:65"},"returnParameters":{"id":16749,"nodeType":"ParameterList","parameters":[],"src":"8235:0:65"},"scope":16808,"src":"8179:57:65","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":16751,"nodeType":"StructuredDocumentation","src":"8242:553:65","text":" @notice Adds a new update type to the list of authorized update types\n @param newUpdateType New update type string to allow (must be non-empty and <= 64 characters)\n @custom:error InvalidUpdateTypeString Thrown if update type string is empty or exceeds 64 characters\n @custom:error UpdateTypeAlreadyExists Thrown if update type already exists\n @custom:error Unauthorized Thrown if caller is not allowed by AccessControlManager\n @custom:event UpdateTypeAdded Emitted when update type is successfully added"},"functionSelector":"77abc9bd","id":16756,"implemented":false,"kind":"function","modifiers":[],"name":"addUpdateType","nameLocation":"8809:13:65","nodeType":"FunctionDefinition","parameters":{"id":16754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16753,"mutability":"mutable","name":"newUpdateType","nameLocation":"8837:13:65","nodeType":"VariableDeclaration","scope":16756,"src":"8823:27:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16752,"name":"string","nodeType":"ElementaryTypeName","src":"8823:6:65","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8822:29:65"},"returnParameters":{"id":16755,"nodeType":"ParameterList","parameters":[],"src":"8860:0:65"},"scope":16808,"src":"8800:61:65","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":16757,"nodeType":"StructuredDocumentation","src":"8867:581:65","text":" @notice Sets the active status of an existing update type\n @param updateType The update type to set active status for\n @param active True to activate the update type, false to deactivate it\n @custom:error UpdateTypeNotFound Thrown if update type doesn't exist\n @custom:error UpdateTypeStatusUnchanged Thrown if status is already set to the desired value\n @custom:error Unauthorized Thrown if caller is not allowed by AccessControlManager\n @custom:event UpdateTypeActiveStatusChanged Emitted when status is successfully changed"},"functionSelector":"ec1930b0","id":16764,"implemented":false,"kind":"function","modifiers":[],"name":"setUpdateTypeActive","nameLocation":"9462:19:65","nodeType":"FunctionDefinition","parameters":{"id":16762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16759,"mutability":"mutable","name":"updateType","nameLocation":"9496:10:65","nodeType":"VariableDeclaration","scope":16764,"src":"9482:24:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16758,"name":"string","nodeType":"ElementaryTypeName","src":"9482:6:65","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16761,"mutability":"mutable","name":"active","nameLocation":"9513:6:65","nodeType":"VariableDeclaration","scope":16764,"src":"9508:11:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16760,"name":"bool","nodeType":"ElementaryTypeName","src":"9508:4:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9481:39:65"},"returnParameters":{"id":16763,"nodeType":"ParameterList","parameters":[],"src":"9529:0:65"},"scope":16808,"src":"9453:77:65","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":16765,"nodeType":"StructuredDocumentation","src":"9536:971:65","text":" @notice Publishes a new risk parameter update.\n @param referenceId An external reference ID associated with the update\n @param newValue The new value of the risk parameter being updated (encoded as bytes)\n @param updateType Type of update performed, must be an active update type\n @param market Address of the market for which the parameter update applies\n @param poolId Pool identifier for eMode-style collateral configuration (0 for regular markets)\n @param dstEid Destination endpoint ID for cross-chain routing\n @param additionalData Additional data or metadata for the update\n @custom:error SenderNotAuthorized Thrown if caller is not an authorized sender\n @custom:error UpdateTypeNotActive Thrown if update type is not active\n @custom:error ZeroAddressNotAllowed Thrown if market is the zero address\n @custom:event UpdatePublished Emitted when the update is successfully published"},"functionSelector":"87d7f21f","id":16782,"implemented":false,"kind":"function","modifiers":[],"name":"publishRiskParameterUpdate","nameLocation":"10521:26:65","nodeType":"FunctionDefinition","parameters":{"id":16780,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16767,"mutability":"mutable","name":"referenceId","nameLocation":"10571:11:65","nodeType":"VariableDeclaration","scope":16782,"src":"10557:25:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16766,"name":"string","nodeType":"ElementaryTypeName","src":"10557:6:65","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16769,"mutability":"mutable","name":"newValue","nameLocation":"10605:8:65","nodeType":"VariableDeclaration","scope":16782,"src":"10592:21:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":16768,"name":"bytes","nodeType":"ElementaryTypeName","src":"10592:5:65","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":16771,"mutability":"mutable","name":"updateType","nameLocation":"10637:10:65","nodeType":"VariableDeclaration","scope":16782,"src":"10623:24:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16770,"name":"string","nodeType":"ElementaryTypeName","src":"10623:6:65","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16773,"mutability":"mutable","name":"market","nameLocation":"10665:6:65","nodeType":"VariableDeclaration","scope":16782,"src":"10657:14:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16772,"name":"address","nodeType":"ElementaryTypeName","src":"10657:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16775,"mutability":"mutable","name":"poolId","nameLocation":"10688:6:65","nodeType":"VariableDeclaration","scope":16782,"src":"10681:13:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":16774,"name":"uint96","nodeType":"ElementaryTypeName","src":"10681:6:65","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":16777,"mutability":"mutable","name":"dstEid","nameLocation":"10711:6:65","nodeType":"VariableDeclaration","scope":16782,"src":"10704:13:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":16776,"name":"uint32","nodeType":"ElementaryTypeName","src":"10704:6:65","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":16779,"mutability":"mutable","name":"additionalData","nameLocation":"10740:14:65","nodeType":"VariableDeclaration","scope":16782,"src":"10727:27:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":16778,"name":"bytes","nodeType":"ElementaryTypeName","src":"10727:5:65","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"10547:213:65"},"returnParameters":{"id":16781,"nodeType":"ParameterList","parameters":[],"src":"10769:0:65"},"scope":16808,"src":"10512:258:65","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":16783,"nodeType":"StructuredDocumentation","src":"10776:1083:65","text":" @notice Publishes multiple risk parameter updates in a single transaction.\n @param referenceIds Array of external reference IDs, one for each update\n @param newValues Array of new values for each update (encoded as bytes)\n @param updateTypes Array of update types, all must be active update types\n @param markets Array of market addresses for each update\n @param poolIds Array of pool identifiers for eMode-style collateral configuration (0 for regular markets)\n @param dstEid Array of destination endpoint IDs for cross-chain routing\n @param additionalData Array of additional data for each update\n @custom:error SenderNotAuthorized Thrown if caller is not an authorized sender\n @custom:error ArrayLengthMismatch Thrown if all arrays don't have the same length\n @custom:error UpdateTypeNotActive Thrown if any update type is not active\n @custom:error ZeroAddressNotAllowed Thrown if any market is the zero address\n @custom:event UpdatePublished Emitted for each successfully published update"},"functionSelector":"c4e1a280","id":16807,"implemented":false,"kind":"function","modifiers":[],"name":"publishBulkRiskParameterUpdates","nameLocation":"11873:31:65","nodeType":"FunctionDefinition","parameters":{"id":16805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16786,"mutability":"mutable","name":"referenceIds","nameLocation":"11930:12:65","nodeType":"VariableDeclaration","scope":16807,"src":"11914:28:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":16784,"name":"string","nodeType":"ElementaryTypeName","src":"11914:6:65","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":16785,"nodeType":"ArrayTypeName","src":"11914:8:65","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":16789,"mutability":"mutable","name":"newValues","nameLocation":"11967:9:65","nodeType":"VariableDeclaration","scope":16807,"src":"11952:24:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":16787,"name":"bytes","nodeType":"ElementaryTypeName","src":"11952:5:65","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":16788,"nodeType":"ArrayTypeName","src":"11952:7:65","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":16792,"mutability":"mutable","name":"updateTypes","nameLocation":"12002:11:65","nodeType":"VariableDeclaration","scope":16807,"src":"11986:27:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":16790,"name":"string","nodeType":"ElementaryTypeName","src":"11986:6:65","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":16791,"nodeType":"ArrayTypeName","src":"11986:8:65","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":16795,"mutability":"mutable","name":"markets","nameLocation":"12040:7:65","nodeType":"VariableDeclaration","scope":16807,"src":"12023:24:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":16793,"name":"address","nodeType":"ElementaryTypeName","src":"12023:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16794,"nodeType":"ArrayTypeName","src":"12023:9:65","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":16798,"mutability":"mutable","name":"poolIds","nameLocation":"12073:7:65","nodeType":"VariableDeclaration","scope":16807,"src":"12057:23:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint96_$dyn_memory_ptr","typeString":"uint96[]"},"typeName":{"baseType":{"id":16796,"name":"uint96","nodeType":"ElementaryTypeName","src":"12057:6:65","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"id":16797,"nodeType":"ArrayTypeName","src":"12057:8:65","typeDescriptions":{"typeIdentifier":"t_array$_t_uint96_$dyn_storage_ptr","typeString":"uint96[]"}},"visibility":"internal"},{"constant":false,"id":16801,"mutability":"mutable","name":"dstEid","nameLocation":"12106:6:65","nodeType":"VariableDeclaration","scope":16807,"src":"12090:22:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_memory_ptr","typeString":"uint32[]"},"typeName":{"baseType":{"id":16799,"name":"uint32","nodeType":"ElementaryTypeName","src":"12090:6:65","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":16800,"nodeType":"ArrayTypeName","src":"12090:8:65","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_storage_ptr","typeString":"uint32[]"}},"visibility":"internal"},{"constant":false,"id":16804,"mutability":"mutable","name":"additionalData","nameLocation":"12137:14:65","nodeType":"VariableDeclaration","scope":16807,"src":"12122:29:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":16802,"name":"bytes","nodeType":"ElementaryTypeName","src":"12122:5:65","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":16803,"nodeType":"ArrayTypeName","src":"12122:7:65","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"11904:253:65"},"returnParameters":{"id":16806,"nodeType":"ParameterList","parameters":[],"src":"12166:0:65"},"scope":16808,"src":"11864:303:65","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":16809,"src":"1589:10580:65","usedErrors":[16617,16620,16623,16626,16629,16632,16635,16638,16641,16644,16647],"usedEvents":[16590,16595,16600,16605,16614]}],"src":"32:12138:65"},"id":65},"contracts/RiskSteward/Interfaces/IRiskSteward.sol":{"ast":{"absolutePath":"contracts/RiskSteward/Interfaces/IRiskSteward.sol","exportedSymbols":{"IRiskSteward":[16839],"IRiskStewardReceiver":[17139],"RiskParameterUpdate":[16568]},"id":16840,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":16810,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:66"},{"absolutePath":"contracts/RiskSteward/Interfaces/IRiskOracle.sol","file":"./IRiskOracle.sol","id":16812,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16840,"sourceUnit":16809,"src":"66:56:66","symbolAliases":[{"foreign":{"id":16811,"name":"RiskParameterUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16568,"src":"75:19:66","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/RiskSteward/Interfaces/IRiskStewardReceiver.sol","file":"./IRiskStewardReceiver.sol","id":16814,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16840,"sourceUnit":17140,"src":"123:66:66","symbolAliases":[{"foreign":{"id":16813,"name":"IRiskStewardReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17139,"src":"132:20:66","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"IRiskSteward","contractDependencies":[],"contractKind":"interface","documentation":{"id":16815,"nodeType":"StructuredDocumentation","src":"191:133:66","text":" @title IRiskSteward\n @author Venus\n @notice Interface for risk stewards that validate and apply risk parameter updates"},"fullyImplemented":false,"id":16839,"linearizedBaseContracts":[16839],"name":"IRiskSteward","nameLocation":"335:12:66","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":16816,"nodeType":"StructuredDocumentation","src":"354:141:66","text":" @notice Returns the `IRiskStewardReceiver` associated with this steward.\n @return The risk steward receiver contract"},"functionSelector":"b296e6cb","id":16822,"implemented":false,"kind":"function","modifiers":[],"name":"RISK_STEWARD_RECEIVER","nameLocation":"509:21:66","nodeType":"FunctionDefinition","parameters":{"id":16817,"nodeType":"ParameterList","parameters":[],"src":"530:2:66"},"returnParameters":{"id":16821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16820,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16822,"src":"556:20:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskStewardReceiver_$17139","typeString":"contract IRiskStewardReceiver"},"typeName":{"id":16819,"nodeType":"UserDefinedTypeName","pathNode":{"id":16818,"name":"IRiskStewardReceiver","nameLocations":["556:20:66"],"nodeType":"IdentifierPath","referencedDeclaration":17139,"src":"556:20:66"},"referencedDeclaration":17139,"src":"556:20:66","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskStewardReceiver_$17139","typeString":"contract IRiskStewardReceiver"}},"visibility":"internal"}],"src":"555:22:66"},"scope":16839,"src":"500:78:66","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":16823,"nodeType":"StructuredDocumentation","src":"584:253:66","text":" @notice Checks whether an update is safe for direct execution (no timelock required).\n @param update The risk parameter update to evaluate\n @return True if update is safe for direct execution, false if timelock is required"},"functionSelector":"42b7cfbd","id":16831,"implemented":false,"kind":"function","modifiers":[],"name":"isSafeForDirectExecution","nameLocation":"851:24:66","nodeType":"FunctionDefinition","parameters":{"id":16827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16826,"mutability":"mutable","name":"update","nameLocation":"905:6:66","nodeType":"VariableDeclaration","scope":16831,"src":"876:35:66","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_calldata_ptr","typeString":"struct RiskParameterUpdate"},"typeName":{"id":16825,"nodeType":"UserDefinedTypeName","pathNode":{"id":16824,"name":"RiskParameterUpdate","nameLocations":["876:19:66"],"nodeType":"IdentifierPath","referencedDeclaration":16568,"src":"876:19:66"},"referencedDeclaration":16568,"src":"876:19:66","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_storage_ptr","typeString":"struct RiskParameterUpdate"}},"visibility":"internal"}],"src":"875:37:66"},"returnParameters":{"id":16830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16829,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16831,"src":"936:4:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16828,"name":"bool","nodeType":"ElementaryTypeName","src":"936:4:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"935:6:66"},"scope":16839,"src":"842:100:66","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":16832,"nodeType":"StructuredDocumentation","src":"948:125:66","text":" @notice Applies a validated risk parameter update.\n @param update The risk parameter update to apply"},"functionSelector":"bf637839","id":16838,"implemented":false,"kind":"function","modifiers":[],"name":"applyUpdate","nameLocation":"1087:11:66","nodeType":"FunctionDefinition","parameters":{"id":16836,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16835,"mutability":"mutable","name":"update","nameLocation":"1128:6:66","nodeType":"VariableDeclaration","scope":16838,"src":"1099:35:66","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_calldata_ptr","typeString":"struct RiskParameterUpdate"},"typeName":{"id":16834,"nodeType":"UserDefinedTypeName","pathNode":{"id":16833,"name":"RiskParameterUpdate","nameLocations":["1099:19:66"],"nodeType":"IdentifierPath","referencedDeclaration":16568,"src":"1099:19:66"},"referencedDeclaration":16568,"src":"1099:19:66","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_storage_ptr","typeString":"struct RiskParameterUpdate"}},"visibility":"internal"}],"src":"1098:37:66"},"returnParameters":{"id":16837,"nodeType":"ParameterList","parameters":[],"src":"1144:0:66"},"scope":16839,"src":"1078:67:66","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":16840,"src":"325:822:66","usedErrors":[],"usedEvents":[]}],"src":"41:1107:66"},"id":66},"contracts/RiskSteward/Interfaces/IRiskStewardReceiver.sol":{"ast":{"absolutePath":"contracts/RiskSteward/Interfaces/IRiskStewardReceiver.sol","exportedSymbols":{"IRiskStewardReceiver":[17139]},"id":17140,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":16841,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:67"},{"abstract":false,"baseContracts":[],"canonicalName":"IRiskStewardReceiver","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":17139,"linearizedBaseContracts":[17139],"name":"IRiskStewardReceiver","nameLocation":"76:20:67","nodeType":"ContractDefinition","nodes":[{"canonicalName":"IRiskStewardReceiver.UpdateStatus","documentation":{"id":16842,"nodeType":"StructuredDocumentation","src":"103:46:67","text":" @notice Status of an update"},"id":16849,"members":[{"id":16843,"name":"None","nameLocation":"182:4:67","nodeType":"EnumValue","src":"182:4:67"},{"id":16844,"name":"Pending","nameLocation":"196:7:67","nodeType":"EnumValue","src":"196:7:67"},{"id":16845,"name":"Executed","nameLocation":"213:8:67","nodeType":"EnumValue","src":"213:8:67"},{"id":16846,"name":"Rejected","nameLocation":"231:8:67","nodeType":"EnumValue","src":"231:8:67"},{"id":16847,"name":"Expired","nameLocation":"249:7:67","nodeType":"EnumValue","src":"249:7:67"},{"id":16848,"name":"SENT_TO_DESTINATION","nameLocation":"266:19:67","nodeType":"EnumValue","src":"266:19:67"}],"name":"UpdateStatus","nameLocation":"159:12:67","nodeType":"EnumDefinition","src":"154:137:67"},{"canonicalName":"IRiskStewardReceiver.RiskParamConfig","documentation":{"id":16850,"nodeType":"StructuredDocumentation","src":"297:471:67","text":" @notice Configuration for a risk parameter update type\n @param active Whether this update type configuration is currently active\n @param debounce Minimum delay between consecutive update executions for the same (updateType, market) pair\n @param timelock Period that must pass after registration before an update can be executed\n @param riskSteward Address of the risk steward contract responsible for processing this update type"},"id":16859,"members":[{"constant":false,"id":16852,"mutability":"mutable","name":"active","nameLocation":"811:6:67","nodeType":"VariableDeclaration","scope":16859,"src":"806:11:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16851,"name":"bool","nodeType":"ElementaryTypeName","src":"806:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16854,"mutability":"mutable","name":"debounce","nameLocation":"835:8:67","nodeType":"VariableDeclaration","scope":16859,"src":"827:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16853,"name":"uint256","nodeType":"ElementaryTypeName","src":"827:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16856,"mutability":"mutable","name":"timelock","nameLocation":"861:8:67","nodeType":"VariableDeclaration","scope":16859,"src":"853:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16855,"name":"uint256","nodeType":"ElementaryTypeName","src":"853:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16858,"mutability":"mutable","name":"riskSteward","nameLocation":"887:11:67","nodeType":"VariableDeclaration","scope":16859,"src":"879:19:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16857,"name":"address","nodeType":"ElementaryTypeName","src":"879:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"RiskParamConfig","nameLocation":"780:15:67","nodeType":"StructDefinition","scope":17139,"src":"773:132:67","visibility":"public"},{"canonicalName":"IRiskStewardReceiver.RegisteredUpdate","documentation":{"id":16860,"nodeType":"StructuredDocumentation","src":"911:550:67","text":" @notice Registered update structure with timelock and execution information\n @param updateId Update ID from the Risk Oracle\n @param unlockTime Timestamp when this update can be executed (calculated as registration time + timelock)\n @param status Current status of the update (Pending, Executed, Rejected, Expired, etc.)\n @param executor Address of the executor who executed this update (address(0) if not executed yet)\n @param executedAt Timestamp when this update was executed (0 if not executed yet)"},"id":16872,"members":[{"constant":false,"id":16862,"mutability":"mutable","name":"updateId","nameLocation":"1508:8:67","nodeType":"VariableDeclaration","scope":16872,"src":"1500:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16861,"name":"uint256","nodeType":"ElementaryTypeName","src":"1500:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16864,"mutability":"mutable","name":"unlockTime","nameLocation":"1534:10:67","nodeType":"VariableDeclaration","scope":16872,"src":"1526:18:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16863,"name":"uint256","nodeType":"ElementaryTypeName","src":"1526:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16867,"mutability":"mutable","name":"status","nameLocation":"1567:6:67","nodeType":"VariableDeclaration","scope":16872,"src":"1554:19:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateStatus_$16849","typeString":"enum IRiskStewardReceiver.UpdateStatus"},"typeName":{"id":16866,"nodeType":"UserDefinedTypeName","pathNode":{"id":16865,"name":"UpdateStatus","nameLocations":["1554:12:67"],"nodeType":"IdentifierPath","referencedDeclaration":16849,"src":"1554:12:67"},"referencedDeclaration":16849,"src":"1554:12:67","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateStatus_$16849","typeString":"enum IRiskStewardReceiver.UpdateStatus"}},"visibility":"internal"},{"constant":false,"id":16869,"mutability":"mutable","name":"executor","nameLocation":"1591:8:67","nodeType":"VariableDeclaration","scope":16872,"src":"1583:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16868,"name":"address","nodeType":"ElementaryTypeName","src":"1583:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16871,"mutability":"mutable","name":"executedAt","nameLocation":"1617:10:67","nodeType":"VariableDeclaration","scope":16872,"src":"1609:18:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16870,"name":"uint256","nodeType":"ElementaryTypeName","src":"1609:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"RegisteredUpdate","nameLocation":"1473:16:67","nodeType":"StructDefinition","scope":17139,"src":"1466:168:67","visibility":"public"},{"anonymous":false,"documentation":{"id":16873,"nodeType":"StructuredDocumentation","src":"1640:76:67","text":" @notice Event emitted when a risk parameter config is set"},"eventSelector":"ed1dcf396500587db779d729bcafd22d1cc4827708623e27189eb6687a696244","id":16895,"name":"RiskParameterConfigUpdated","nameLocation":"1727:26:67","nodeType":"EventDefinition","parameters":{"id":16894,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16875,"indexed":true,"mutability":"mutable","name":"updateTypeHash","nameLocation":"1779:14:67","nodeType":"VariableDeclaration","scope":16895,"src":"1763:30:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16874,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1763:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":16877,"indexed":false,"mutability":"mutable","name":"updateType","nameLocation":"1810:10:67","nodeType":"VariableDeclaration","scope":16895,"src":"1803:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16876,"name":"string","nodeType":"ElementaryTypeName","src":"1803:6:67","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16879,"indexed":true,"mutability":"mutable","name":"previousRiskSteward","nameLocation":"1846:19:67","nodeType":"VariableDeclaration","scope":16895,"src":"1830:35:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16878,"name":"address","nodeType":"ElementaryTypeName","src":"1830:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16881,"indexed":true,"mutability":"mutable","name":"riskSteward","nameLocation":"1891:11:67","nodeType":"VariableDeclaration","scope":16895,"src":"1875:27:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16880,"name":"address","nodeType":"ElementaryTypeName","src":"1875:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16883,"indexed":false,"mutability":"mutable","name":"previousDebounce","nameLocation":"1920:16:67","nodeType":"VariableDeclaration","scope":16895,"src":"1912:24:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16882,"name":"uint256","nodeType":"ElementaryTypeName","src":"1912:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16885,"indexed":false,"mutability":"mutable","name":"debounce","nameLocation":"1954:8:67","nodeType":"VariableDeclaration","scope":16895,"src":"1946:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16884,"name":"uint256","nodeType":"ElementaryTypeName","src":"1946:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16887,"indexed":false,"mutability":"mutable","name":"previousTimelock","nameLocation":"1980:16:67","nodeType":"VariableDeclaration","scope":16895,"src":"1972:24:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16886,"name":"uint256","nodeType":"ElementaryTypeName","src":"1972:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16889,"indexed":false,"mutability":"mutable","name":"timelock","nameLocation":"2014:8:67","nodeType":"VariableDeclaration","scope":16895,"src":"2006:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16888,"name":"uint256","nodeType":"ElementaryTypeName","src":"2006:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16891,"indexed":false,"mutability":"mutable","name":"previousActive","nameLocation":"2037:14:67","nodeType":"VariableDeclaration","scope":16895,"src":"2032:19:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16890,"name":"bool","nodeType":"ElementaryTypeName","src":"2032:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16893,"indexed":false,"mutability":"mutable","name":"active","nameLocation":"2066:6:67","nodeType":"VariableDeclaration","scope":16895,"src":"2061:11:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16892,"name":"bool","nodeType":"ElementaryTypeName","src":"2061:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1753:325:67"},"src":"1721:358:67"},{"anonymous":false,"documentation":{"id":16896,"nodeType":"StructuredDocumentation","src":"2085:90:67","text":" @notice Event emitted when a risk parameter config active status is set"},"eventSelector":"cba816b2fc5cd49700523a79b6e6c7dda19292fbb932cca77f7bccb1e5004792","id":16906,"name":"ConfigActiveUpdated","nameLocation":"2186:19:67","nodeType":"EventDefinition","parameters":{"id":16905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16898,"indexed":true,"mutability":"mutable","name":"updateTypeHash","nameLocation":"2222:14:67","nodeType":"VariableDeclaration","scope":16906,"src":"2206:30:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16897,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2206:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":16900,"indexed":false,"mutability":"mutable","name":"updateType","nameLocation":"2245:10:67","nodeType":"VariableDeclaration","scope":16906,"src":"2238:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16899,"name":"string","nodeType":"ElementaryTypeName","src":"2238:6:67","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16902,"indexed":false,"mutability":"mutable","name":"previousActive","nameLocation":"2262:14:67","nodeType":"VariableDeclaration","scope":16906,"src":"2257:19:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16901,"name":"bool","nodeType":"ElementaryTypeName","src":"2257:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16904,"indexed":false,"mutability":"mutable","name":"active","nameLocation":"2283:6:67","nodeType":"VariableDeclaration","scope":16906,"src":"2278:11:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16903,"name":"bool","nodeType":"ElementaryTypeName","src":"2278:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2205:85:67"},"src":"2180:111:67"},{"anonymous":false,"documentation":{"id":16907,"nodeType":"StructuredDocumentation","src":"2297:80:67","text":" @notice Event emitted when an update is successfully executed"},"eventSelector":"88dcce5c07c8daf9e03fa70df64b98c8598df462a55510b7a987dadbf84db109","id":16911,"name":"UpdateExecuted","nameLocation":"2388:14:67","nodeType":"EventDefinition","parameters":{"id":16910,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16909,"indexed":true,"mutability":"mutable","name":"updateId","nameLocation":"2419:8:67","nodeType":"VariableDeclaration","scope":16911,"src":"2403:24:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16908,"name":"uint256","nodeType":"ElementaryTypeName","src":"2403:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2402:26:67"},"src":"2382:47:67"},{"anonymous":false,"documentation":{"id":16912,"nodeType":"StructuredDocumentation","src":"2435:67:67","text":" @notice Event emitted when an update is rejected"},"eventSelector":"0a4273908b9362e571cacd5610879e3dfd7ddc7c9b3ce1d7ea7ea8b418691164","id":16916,"name":"UpdateRejected","nameLocation":"2513:14:67","nodeType":"EventDefinition","parameters":{"id":16915,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16914,"indexed":true,"mutability":"mutable","name":"updateId","nameLocation":"2544:8:67","nodeType":"VariableDeclaration","scope":16916,"src":"2528:24:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16913,"name":"uint256","nodeType":"ElementaryTypeName","src":"2528:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2527:26:67"},"src":"2507:47:67"},{"anonymous":false,"documentation":{"id":16917,"nodeType":"StructuredDocumentation","src":"2560:76:67","text":" @notice Event emitted when an update is marked as expired"},"eventSelector":"204a9e3c713ee1071c1d59b7caa015e0d7a583ebde2caf4cf34bb9d5d626cabb","id":16921,"name":"UpdateExpired","nameLocation":"2647:13:67","nodeType":"EventDefinition","parameters":{"id":16920,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16919,"indexed":true,"mutability":"mutable","name":"updateId","nameLocation":"2677:8:67","nodeType":"VariableDeclaration","scope":16921,"src":"2661:24:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16918,"name":"uint256","nodeType":"ElementaryTypeName","src":"2661:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2660:26:67"},"src":"2641:46:67"},{"anonymous":false,"documentation":{"id":16922,"nodeType":"StructuredDocumentation","src":"2693:71:67","text":" @notice Event emitted when an executor status is set"},"eventSelector":"10c0e7519c24c8e42dbd4d2405e9976e893c51df86614145b2758289f197ec3b","id":16930,"name":"ExecutorStatusUpdated","nameLocation":"2775:21:67","nodeType":"EventDefinition","parameters":{"id":16929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16924,"indexed":true,"mutability":"mutable","name":"executor","nameLocation":"2813:8:67","nodeType":"VariableDeclaration","scope":16930,"src":"2797:24:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16923,"name":"address","nodeType":"ElementaryTypeName","src":"2797:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16926,"indexed":false,"mutability":"mutable","name":"previousApproved","nameLocation":"2828:16:67","nodeType":"VariableDeclaration","scope":16930,"src":"2823:21:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16925,"name":"bool","nodeType":"ElementaryTypeName","src":"2823:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16928,"indexed":false,"mutability":"mutable","name":"approved","nameLocation":"2851:8:67","nodeType":"VariableDeclaration","scope":16930,"src":"2846:13:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16927,"name":"bool","nodeType":"ElementaryTypeName","src":"2846:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2796:64:67"},"src":"2769:92:67"},{"anonymous":false,"documentation":{"id":16931,"nodeType":"StructuredDocumentation","src":"2867:69:67","text":" @notice Event emitted when an update is registered"},"eventSelector":"1a61d230e613ab7202720dc7c24765ae456c59f31401ae23e29a5397829af5ec","id":16941,"name":"UpdateRegistered","nameLocation":"2947:16:67","nodeType":"EventDefinition","parameters":{"id":16940,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16933,"indexed":true,"mutability":"mutable","name":"updateId","nameLocation":"2980:8:67","nodeType":"VariableDeclaration","scope":16941,"src":"2964:24:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16932,"name":"uint256","nodeType":"ElementaryTypeName","src":"2964:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16935,"indexed":false,"mutability":"mutable","name":"unlockTime","nameLocation":"2998:10:67","nodeType":"VariableDeclaration","scope":16941,"src":"2990:18:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16934,"name":"uint256","nodeType":"ElementaryTypeName","src":"2990:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16937,"indexed":false,"mutability":"mutable","name":"updateType","nameLocation":"3017:10:67","nodeType":"VariableDeclaration","scope":16941,"src":"3010:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16936,"name":"string","nodeType":"ElementaryTypeName","src":"3010:6:67","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16939,"indexed":true,"mutability":"mutable","name":"market","nameLocation":"3045:6:67","nodeType":"VariableDeclaration","scope":16941,"src":"3029:22:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16938,"name":"address","nodeType":"ElementaryTypeName","src":"3029:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2963:89:67"},"src":"2941:112:67"},{"anonymous":false,"documentation":{"id":16942,"nodeType":"StructuredDocumentation","src":"3059:86:67","text":" @notice Event emitted when an update is sent to a destination chain"},"eventSelector":"7e5ab31b9063f36db8513c1ec8170e50aaad7cff84901c17758cc09ba40f38a3","id":16952,"name":"UpdateSentToDestination","nameLocation":"3156:23:67","nodeType":"EventDefinition","parameters":{"id":16951,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16944,"indexed":false,"mutability":"mutable","name":"updateId","nameLocation":"3197:8:67","nodeType":"VariableDeclaration","scope":16952,"src":"3189:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16943,"name":"uint256","nodeType":"ElementaryTypeName","src":"3189:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16946,"indexed":true,"mutability":"mutable","name":"destLzEid","nameLocation":"3230:9:67","nodeType":"VariableDeclaration","scope":16952,"src":"3215:24:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":16945,"name":"uint32","nodeType":"ElementaryTypeName","src":"3215:6:67","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":16948,"indexed":true,"mutability":"mutable","name":"updateType","nameLocation":"3264:10:67","nodeType":"VariableDeclaration","scope":16952,"src":"3249:25:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16947,"name":"string","nodeType":"ElementaryTypeName","src":"3249:6:67","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16950,"indexed":true,"mutability":"mutable","name":"market","nameLocation":"3300:6:67","nodeType":"VariableDeclaration","scope":16952,"src":"3284:22:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16949,"name":"address","nodeType":"ElementaryTypeName","src":"3284:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3179:133:67"},"src":"3150:163:67"},{"anonymous":false,"documentation":{"id":16953,"nodeType":"StructuredDocumentation","src":"3319:88:67","text":" @notice Event emitted when an update is resent to a destination chain"},"eventSelector":"315a04917a98179e57c69a0b2808641e45e218e5402d9d3c7da753ea76c70322","id":16963,"name":"UpdateResentToDestination","nameLocation":"3418:25:67","nodeType":"EventDefinition","parameters":{"id":16962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16955,"indexed":false,"mutability":"mutable","name":"updateId","nameLocation":"3461:8:67","nodeType":"VariableDeclaration","scope":16963,"src":"3453:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16954,"name":"uint256","nodeType":"ElementaryTypeName","src":"3453:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16957,"indexed":true,"mutability":"mutable","name":"destLzEid","nameLocation":"3494:9:67","nodeType":"VariableDeclaration","scope":16963,"src":"3479:24:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":16956,"name":"uint32","nodeType":"ElementaryTypeName","src":"3479:6:67","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":16959,"indexed":true,"mutability":"mutable","name":"updateType","nameLocation":"3528:10:67","nodeType":"VariableDeclaration","scope":16963,"src":"3513:25:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16958,"name":"string","nodeType":"ElementaryTypeName","src":"3513:6:67","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16961,"indexed":true,"mutability":"mutable","name":"market","nameLocation":"3564:6:67","nodeType":"VariableDeclaration","scope":16963,"src":"3548:22:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16960,"name":"address","nodeType":"ElementaryTypeName","src":"3548:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3443:133:67"},"src":"3412:165:67"},{"anonymous":false,"documentation":{"id":16964,"nodeType":"StructuredDocumentation","src":"3583:81:67","text":" @notice Emitted when leftover native tokens are swept by owner"},"eventSelector":"0a1dd7c5bdc40ecbdefc1bfda22f1dfb98c8fc3e3940aab73ad7fba37720d0a0","id":16970,"name":"SweepNative","nameLocation":"3675:11:67","nodeType":"EventDefinition","parameters":{"id":16969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16966,"indexed":true,"mutability":"mutable","name":"receiver","nameLocation":"3703:8:67","nodeType":"VariableDeclaration","scope":16970,"src":"3687:24:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16965,"name":"address","nodeType":"ElementaryTypeName","src":"3687:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16968,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"3721:6:67","nodeType":"VariableDeclaration","scope":16970,"src":"3713:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16967,"name":"uint256","nodeType":"ElementaryTypeName","src":"3713:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3686:42:67"},"src":"3669:60:67"},{"anonymous":false,"documentation":{"id":16971,"nodeType":"StructuredDocumentation","src":"3735:161:67","text":" @notice Event emitted when the pause status changes\n @param previousPaused Previous pause state\n @param paused Current pause state"},"eventSelector":"91691e0294d292cac1a26c64dd4130c61d6690edeac415bc1fb307d64d3732a1","id":16977,"name":"PauseStatusUpdated","nameLocation":"3907:18:67","nodeType":"EventDefinition","parameters":{"id":16976,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16973,"indexed":false,"mutability":"mutable","name":"previousPaused","nameLocation":"3931:14:67","nodeType":"VariableDeclaration","scope":16977,"src":"3926:19:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16972,"name":"bool","nodeType":"ElementaryTypeName","src":"3926:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16975,"indexed":false,"mutability":"mutable","name":"paused","nameLocation":"3952:6:67","nodeType":"VariableDeclaration","scope":16977,"src":"3947:11:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16974,"name":"bool","nodeType":"ElementaryTypeName","src":"3947:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3925:34:67"},"src":"3901:59:67"},{"documentation":{"id":16978,"nodeType":"StructuredDocumentation","src":"3966:47:67","text":" @custom:error TransferFailed"},"errorSelector":"90b8ec18","id":16980,"name":"TransferFailed","nameLocation":"4024:14:67","nodeType":"ErrorDefinition","parameters":{"id":16979,"nodeType":"ParameterList","parameters":[],"src":"4038:2:67"},"src":"4018:23:67"},{"documentation":{"id":16981,"nodeType":"StructuredDocumentation","src":"4047:103:67","text":" @notice Thrown if a submitted update is not active and therefore cannot be processed"},"errorSelector":"dea2a212","id":16983,"name":"ConfigNotActive","nameLocation":"4161:15:67","nodeType":"ErrorDefinition","parameters":{"id":16982,"nodeType":"ParameterList","parameters":[],"src":"4176:2:67"},"src":"4155:24:67"},{"documentation":{"id":16984,"nodeType":"StructuredDocumentation","src":"4185:95:67","text":" @notice Thrown when an update was not applied within the required time frame"},"errorSelector":"c2a16f14","id":16986,"name":"UpdateIsExpired","nameLocation":"4291:15:67","nodeType":"ErrorDefinition","parameters":{"id":16985,"nodeType":"ParameterList","parameters":[],"src":"4306:2:67"},"src":"4285:24:67"},{"documentation":{"id":16987,"nodeType":"StructuredDocumentation","src":"4315:75:67","text":" @notice Thrown when an update has already been processed"},"errorSelector":"defe2c25","id":16989,"name":"UpdateAlreadyResolved","nameLocation":"4401:21:67","nodeType":"ErrorDefinition","parameters":{"id":16988,"nodeType":"ParameterList","parameters":[],"src":"4422:2:67"},"src":"4395:30:67"},{"documentation":{"id":16990,"nodeType":"StructuredDocumentation","src":"4431:130:67","text":" @notice Thrown when the debounce period hasn't passed for applying an update to a specific market / update type"},"errorSelector":"53f7a6ee","id":16992,"name":"UpdateTooFrequent","nameLocation":"4572:17:67","nodeType":"ErrorDefinition","parameters":{"id":16991,"nodeType":"ParameterList","parameters":[],"src":"4589:2:67"},"src":"4566:26:67"},{"documentation":{"id":16993,"nodeType":"StructuredDocumentation","src":"4598:90:67","text":" @notice Thrown when an update type that is not supported is operated on"},"errorSelector":"80919d7b","id":16995,"name":"UnsupportedUpdateType","nameLocation":"4699:21:67","nodeType":"ErrorDefinition","parameters":{"id":16994,"nodeType":"ParameterList","parameters":[],"src":"4720:2:67"},"src":"4693:30:67"},{"documentation":{"id":16996,"nodeType":"StructuredDocumentation","src":"4729:78:67","text":" @notice Thrown when an empty update type string is provided"},"errorSelector":"00642800","id":16998,"name":"InvalidUpdateType","nameLocation":"4818:17:67","nodeType":"ErrorDefinition","parameters":{"id":16997,"nodeType":"ParameterList","parameters":[],"src":"4835:2:67"},"src":"4812:26:67"},{"documentation":{"id":16999,"nodeType":"StructuredDocumentation","src":"4844:67:67","text":" @notice Thrown when a debounce value of 0 is set"},"errorSelector":"f6ea4e06","id":17001,"name":"InvalidDebounce","nameLocation":"4922:15:67","nodeType":"ErrorDefinition","parameters":{"id":17000,"nodeType":"ParameterList","parameters":[],"src":"4937:2:67"},"src":"4916:24:67"},{"documentation":{"id":17002,"nodeType":"StructuredDocumentation","src":"4946:103:67","text":" @notice Thrown when a timelock value is greater than or equal to the expiration time"},"errorSelector":"f8d10e82","id":17004,"name":"InvalidTimelock","nameLocation":"5060:15:67","nodeType":"ErrorDefinition","parameters":{"id":17003,"nodeType":"ParameterList","parameters":[],"src":"5075:2:67"},"src":"5054:24:67"},{"documentation":{"id":17005,"nodeType":"StructuredDocumentation","src":"5084:78:67","text":" @notice Thrown when update unlock time has not been reached"},"errorSelector":"05f5f498","id":17007,"name":"UpdateNotUnlocked","nameLocation":"5173:17:67","nodeType":"ErrorDefinition","parameters":{"id":17006,"nodeType":"ParameterList","parameters":[],"src":"5190:2:67"},"src":"5167:26:67"},{"documentation":{"id":17008,"nodeType":"StructuredDocumentation","src":"5199:85:67","text":" @notice Thrown when trying to resolve an update that doesn't exist"},"errorSelector":"6196e5a3","id":17010,"name":"UpdateNotFound","nameLocation":"5295:14:67","nodeType":"ErrorDefinition","parameters":{"id":17009,"nodeType":"ParameterList","parameters":[],"src":"5309:2:67"},"src":"5289:23:67"},{"documentation":{"id":17011,"nodeType":"StructuredDocumentation","src":"5318:68:67","text":" @notice Thrown when an address is not an executor"},"errorSelector":"341f61ec","id":17013,"name":"NotAnExecutor","nameLocation":"5397:13:67","nodeType":"ErrorDefinition","parameters":{"id":17012,"nodeType":"ParameterList","parameters":[],"src":"5410:2:67"},"src":"5391:22:67"},{"documentation":{"id":17014,"nodeType":"StructuredDocumentation","src":"5419:108:67","text":" @notice Thrown when there is a non-expired pending update of the same type for the market"},"errorSelector":"edba5e07","id":17018,"name":"RegisteredUpdateTypeExist","nameLocation":"5538:25:67","nodeType":"ErrorDefinition","parameters":{"id":17017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17016,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17018,"src":"5564:7:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17015,"name":"uint256","nodeType":"ElementaryTypeName","src":"5564:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5563:9:67"},"src":"5532:41:67"},{"documentation":{"id":17019,"nodeType":"StructuredDocumentation","src":"5579:107:67","text":" @notice Thrown when trying to resend an update that is not in SENT_TO_DESTINATION status"},"errorSelector":"9aafae65","id":17021,"name":"InvalidUpdateToResend","nameLocation":"5697:21:67","nodeType":"ErrorDefinition","parameters":{"id":17020,"nodeType":"ParameterList","parameters":[],"src":"5718:2:67"},"src":"5691:30:67"},{"documentation":{"id":17022,"nodeType":"StructuredDocumentation","src":"5727:92:67","text":" @notice Thrown when trying to execute an update that was never registered"},"errorSelector":"9c58a619","id":17024,"name":"InvalidRegisteredUpdate","nameLocation":"5830:23:67","nodeType":"ErrorDefinition","parameters":{"id":17023,"nodeType":"ParameterList","parameters":[],"src":"5853:2:67"},"src":"5824:32:67"},{"documentation":{"id":17025,"nodeType":"StructuredDocumentation","src":"5862:105:67","text":" @notice Thrown when attempting to call lzSend from an address other than this contract"},"errorSelector":"22d1fc80","id":17027,"name":"InvalidLzSendCaller","nameLocation":"5978:19:67","nodeType":"ErrorDefinition","parameters":{"id":17026,"nodeType":"ParameterList","parameters":[],"src":"5997:2:67"},"src":"5972:28:67"},{"documentation":{"id":17028,"nodeType":"StructuredDocumentation","src":"6006:67:67","text":" @notice Thrown when trying to renounce ownership"},"errorSelector":"96c553eb","id":17030,"name":"RenounceOwnershipNotAllowed","nameLocation":"6084:27:67","nodeType":"ErrorDefinition","parameters":{"id":17029,"nodeType":"ParameterList","parameters":[],"src":"6111:2:67"},"src":"6078:36:67"},{"documentation":{"id":17031,"nodeType":"StructuredDocumentation","src":"6120:91:67","text":" @notice Thrown when processUpdate is called while the contract is paused"},"errorSelector":"eced32bc","id":17033,"name":"PausedError","nameLocation":"6222:11:67","nodeType":"ErrorDefinition","parameters":{"id":17032,"nodeType":"ParameterList","parameters":[],"src":"6233:2:67"},"src":"6216:20:67"},{"documentation":{"id":17034,"nodeType":"StructuredDocumentation","src":"6242:83:67","text":" @notice Thrown when an invalid LayerZero endpoint ID is provided"},"errorSelector":"932c38e6","id":17036,"name":"InvalidLayerZeroEid","nameLocation":"6336:19:67","nodeType":"ErrorDefinition","parameters":{"id":17035,"nodeType":"ParameterList","parameters":[],"src":"6355:2:67"},"src":"6330:28:67"},{"documentation":{"id":17037,"nodeType":"StructuredDocumentation","src":"6364:74:67","text":" @notice Thrown when trying to set the same pause status"},"errorSelector":"3f855e34","id":17039,"name":"PauseStatusUnchanged","nameLocation":"6449:20:67","nodeType":"ErrorDefinition","parameters":{"id":17038,"nodeType":"ParameterList","parameters":[],"src":"6469:2:67"},"src":"6443:29:67"},{"documentation":{"id":17040,"nodeType":"StructuredDocumentation","src":"6478:82:67","text":" @notice Thrown when trying to set the same config active status"},"errorSelector":"01e852dc","id":17042,"name":"ConfigStatusUnchanged","nameLocation":"6571:21:67","nodeType":"ErrorDefinition","parameters":{"id":17041,"nodeType":"ParameterList","parameters":[],"src":"6592:2:67"},"src":"6565:30:67"},{"documentation":{"id":17043,"nodeType":"StructuredDocumentation","src":"6601:87:67","text":" @notice Thrown when trying to set the same executor whitelist status"},"errorSelector":"8eee990d","id":17045,"name":"ExecutorStatusUnchanged","nameLocation":"6699:23:67","nodeType":"ErrorDefinition","parameters":{"id":17044,"nodeType":"ParameterList","parameters":[],"src":"6722:2:67"},"src":"6693:32:67"},{"documentation":{"id":17046,"nodeType":"StructuredDocumentation","src":"6731:88:67","text":" @notice Thrown when an update will expire before its timelock unlocks"},"errorSelector":"31289af4","id":17048,"name":"UpdateWillExpireBeforeUnlock","nameLocation":"6830:28:67","nodeType":"ErrorDefinition","parameters":{"id":17047,"nodeType":"ParameterList","parameters":[],"src":"6858:2:67"},"src":"6824:37:67"},{"functionSelector":"28207141","id":17056,"implemented":false,"kind":"function","modifiers":[],"name":"getRiskParameterConfig","nameLocation":"6876:22:67","nodeType":"FunctionDefinition","parameters":{"id":17051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17050,"mutability":"mutable","name":"updateType","nameLocation":"6915:10:67","nodeType":"VariableDeclaration","scope":17056,"src":"6899:26:67","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":17049,"name":"string","nodeType":"ElementaryTypeName","src":"6899:6:67","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6898:28:67"},"returnParameters":{"id":17055,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17054,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17056,"src":"6950:22:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16859_memory_ptr","typeString":"struct IRiskStewardReceiver.RiskParamConfig"},"typeName":{"id":17053,"nodeType":"UserDefinedTypeName","pathNode":{"id":17052,"name":"RiskParamConfig","nameLocations":["6950:15:67"],"nodeType":"IdentifierPath","referencedDeclaration":16859,"src":"6950:15:67"},"referencedDeclaration":16859,"src":"6950:15:67","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16859_storage_ptr","typeString":"struct IRiskStewardReceiver.RiskParamConfig"}},"visibility":"internal"}],"src":"6949:24:67"},"scope":17139,"src":"6867:107:67","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"f75875ad","id":17065,"implemented":false,"kind":"function","modifiers":[],"name":"getLastProcessedUpdate","nameLocation":"6989:22:67","nodeType":"FunctionDefinition","parameters":{"id":17061,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17058,"mutability":"mutable","name":"updateType","nameLocation":"7028:10:67","nodeType":"VariableDeclaration","scope":17065,"src":"7012:26:67","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":17057,"name":"string","nodeType":"ElementaryTypeName","src":"7012:6:67","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17060,"mutability":"mutable","name":"market","nameLocation":"7048:6:67","nodeType":"VariableDeclaration","scope":17065,"src":"7040:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17059,"name":"address","nodeType":"ElementaryTypeName","src":"7040:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7011:44:67"},"returnParameters":{"id":17064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17063,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17065,"src":"7079:7:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17062,"name":"uint256","nodeType":"ElementaryTypeName","src":"7079:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7078:9:67"},"scope":17139,"src":"6980:108:67","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"595bd377","id":17074,"implemented":false,"kind":"function","modifiers":[],"name":"getLastRegisteredUpdate","nameLocation":"7103:23:67","nodeType":"FunctionDefinition","parameters":{"id":17070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17067,"mutability":"mutable","name":"updateType","nameLocation":"7143:10:67","nodeType":"VariableDeclaration","scope":17074,"src":"7127:26:67","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":17066,"name":"string","nodeType":"ElementaryTypeName","src":"7127:6:67","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17069,"mutability":"mutable","name":"market","nameLocation":"7163:6:67","nodeType":"VariableDeclaration","scope":17074,"src":"7155:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17068,"name":"address","nodeType":"ElementaryTypeName","src":"7155:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7126:44:67"},"returnParameters":{"id":17073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17072,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17074,"src":"7194:7:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17071,"name":"uint256","nodeType":"ElementaryTypeName","src":"7194:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7193:9:67"},"scope":17139,"src":"7094:109:67","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"c2a23c84","id":17085,"implemented":false,"kind":"function","modifiers":[],"name":"setRiskParameterConfig","nameLocation":"7218:22:67","nodeType":"FunctionDefinition","parameters":{"id":17083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17076,"mutability":"mutable","name":"updateType","nameLocation":"7266:10:67","nodeType":"VariableDeclaration","scope":17085,"src":"7250:26:67","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":17075,"name":"string","nodeType":"ElementaryTypeName","src":"7250:6:67","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17078,"mutability":"mutable","name":"riskSteward","nameLocation":"7294:11:67","nodeType":"VariableDeclaration","scope":17085,"src":"7286:19:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17077,"name":"address","nodeType":"ElementaryTypeName","src":"7286:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17080,"mutability":"mutable","name":"debounce","nameLocation":"7323:8:67","nodeType":"VariableDeclaration","scope":17085,"src":"7315:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17079,"name":"uint256","nodeType":"ElementaryTypeName","src":"7315:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17082,"mutability":"mutable","name":"timelock","nameLocation":"7349:8:67","nodeType":"VariableDeclaration","scope":17085,"src":"7341:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17081,"name":"uint256","nodeType":"ElementaryTypeName","src":"7341:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7240:123:67"},"returnParameters":{"id":17084,"nodeType":"ParameterList","parameters":[],"src":"7372:0:67"},"scope":17139,"src":"7209:164:67","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"438653fe","id":17092,"implemented":false,"kind":"function","modifiers":[],"name":"setConfigActive","nameLocation":"7388:15:67","nodeType":"FunctionDefinition","parameters":{"id":17090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17087,"mutability":"mutable","name":"updateType","nameLocation":"7420:10:67","nodeType":"VariableDeclaration","scope":17092,"src":"7404:26:67","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":17086,"name":"string","nodeType":"ElementaryTypeName","src":"7404:6:67","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17089,"mutability":"mutable","name":"active","nameLocation":"7437:6:67","nodeType":"VariableDeclaration","scope":17092,"src":"7432:11:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17088,"name":"bool","nodeType":"ElementaryTypeName","src":"7432:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7403:41:67"},"returnParameters":{"id":17091,"nodeType":"ParameterList","parameters":[],"src":"7453:0:67"},"scope":17139,"src":"7379:75:67","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"3aed7f31","id":17099,"implemented":false,"kind":"function","modifiers":[],"name":"setWhitelistedExecutor","nameLocation":"7469:22:67","nodeType":"FunctionDefinition","parameters":{"id":17097,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17094,"mutability":"mutable","name":"executor","nameLocation":"7500:8:67","nodeType":"VariableDeclaration","scope":17099,"src":"7492:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17093,"name":"address","nodeType":"ElementaryTypeName","src":"7492:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17096,"mutability":"mutable","name":"approved","nameLocation":"7515:8:67","nodeType":"VariableDeclaration","scope":17099,"src":"7510:13:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17095,"name":"bool","nodeType":"ElementaryTypeName","src":"7510:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7491:33:67"},"returnParameters":{"id":17098,"nodeType":"ParameterList","parameters":[],"src":"7533:0:67"},"scope":17139,"src":"7460:74:67","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"62656e63","id":17104,"implemented":false,"kind":"function","modifiers":[],"name":"processUpdate","nameLocation":"7549:13:67","nodeType":"FunctionDefinition","parameters":{"id":17102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17101,"mutability":"mutable","name":"updateId","nameLocation":"7571:8:67","nodeType":"VariableDeclaration","scope":17104,"src":"7563:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17100,"name":"uint256","nodeType":"ElementaryTypeName","src":"7563:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7562:18:67"},"returnParameters":{"id":17103,"nodeType":"ParameterList","parameters":[],"src":"7589:0:67"},"scope":17139,"src":"7540:50:67","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"f8ce6ac2","id":17109,"implemented":false,"kind":"function","modifiers":[],"name":"executeRegisteredUpdate","nameLocation":"7605:23:67","nodeType":"FunctionDefinition","parameters":{"id":17107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17106,"mutability":"mutable","name":"updateId","nameLocation":"7637:8:67","nodeType":"VariableDeclaration","scope":17109,"src":"7629:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17105,"name":"uint256","nodeType":"ElementaryTypeName","src":"7629:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7628:18:67"},"returnParameters":{"id":17108,"nodeType":"ParameterList","parameters":[],"src":"7655:0:67"},"scope":17139,"src":"7596:60:67","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"c3e10deb","id":17114,"implemented":false,"kind":"function","modifiers":[],"name":"rejectUpdate","nameLocation":"7671:12:67","nodeType":"FunctionDefinition","parameters":{"id":17112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17111,"mutability":"mutable","name":"updateId","nameLocation":"7692:8:67","nodeType":"VariableDeclaration","scope":17114,"src":"7684:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17110,"name":"uint256","nodeType":"ElementaryTypeName","src":"7684:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7683:18:67"},"returnParameters":{"id":17113,"nodeType":"ParameterList","parameters":[],"src":"7710:0:67"},"scope":17139,"src":"7662:49:67","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"85a7602f","id":17121,"implemented":false,"kind":"function","modifiers":[],"name":"resendRemoteUpdate","nameLocation":"7726:18:67","nodeType":"FunctionDefinition","parameters":{"id":17119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17116,"mutability":"mutable","name":"updateId","nameLocation":"7753:8:67","nodeType":"VariableDeclaration","scope":17121,"src":"7745:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17115,"name":"uint256","nodeType":"ElementaryTypeName","src":"7745:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17118,"mutability":"mutable","name":"options","nameLocation":"7778:7:67","nodeType":"VariableDeclaration","scope":17121,"src":"7763:22:67","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":17117,"name":"bytes","nodeType":"ElementaryTypeName","src":"7763:5:67","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7744:42:67"},"returnParameters":{"id":17120,"nodeType":"ParameterList","parameters":[],"src":"7803:0:67"},"scope":17139,"src":"7717:87:67","stateMutability":"payable","virtual":false,"visibility":"external"},{"functionSelector":"f63106e4","id":17131,"implemented":false,"kind":"function","modifiers":[],"name":"getExecutableUpdates","nameLocation":"7819:20:67","nodeType":"FunctionDefinition","parameters":{"id":17126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17123,"mutability":"mutable","name":"updateType","nameLocation":"7865:10:67","nodeType":"VariableDeclaration","scope":17131,"src":"7849:26:67","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":17122,"name":"string","nodeType":"ElementaryTypeName","src":"7849:6:67","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17125,"mutability":"mutable","name":"comptroller","nameLocation":"7893:11:67","nodeType":"VariableDeclaration","scope":17131,"src":"7885:19:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17124,"name":"address","nodeType":"ElementaryTypeName","src":"7885:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7839:71:67"},"returnParameters":{"id":17130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17129,"mutability":"mutable","name":"executableUpdates","nameLocation":"7951:17:67","nodeType":"VariableDeclaration","scope":17131,"src":"7934:34:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":17127,"name":"uint256","nodeType":"ElementaryTypeName","src":"7934:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17128,"nodeType":"ArrayTypeName","src":"7934:9:67","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"7933:36:67"},"scope":17139,"src":"7810:160:67","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"33bde2ca","id":17138,"implemented":false,"kind":"function","modifiers":[],"name":"isUpdateExecutable","nameLocation":"7985:18:67","nodeType":"FunctionDefinition","parameters":{"id":17134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17133,"mutability":"mutable","name":"updateId","nameLocation":"8012:8:67","nodeType":"VariableDeclaration","scope":17138,"src":"8004:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17132,"name":"uint256","nodeType":"ElementaryTypeName","src":"8004:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8003:18:67"},"returnParameters":{"id":17137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17136,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17138,"src":"8045:4:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17135,"name":"bool","nodeType":"ElementaryTypeName","src":"8045:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8044:6:67"},"scope":17139,"src":"7976:75:67","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":17140,"src":"66:7987:67","usedErrors":[16980,16983,16986,16989,16992,16995,16998,17001,17004,17007,17010,17013,17018,17021,17024,17027,17030,17033,17036,17039,17042,17045,17048],"usedEvents":[16895,16906,16911,16916,16921,16930,16941,16952,16963,16970,16977]}],"src":"41:8013:67"},"id":67},"contracts/RiskSteward/MarketCapsRiskSteward.sol":{"ast":{"absolutePath":"contracts/RiskSteward/MarketCapsRiskSteward.sol","exportedSymbols":{"BaseRiskSteward":[14514],"ICorePoolComptroller":[20347],"ICorePoolVToken":[20370],"IRiskStewardReceiver":[17139],"MarketCapsRiskSteward":[17614],"RiskParameterUpdate":[16568],"ensureNonzeroAddress":[10945]},"id":17615,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":17141,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:68"},{"absolutePath":"contracts/RiskSteward/Interfaces/IRiskOracle.sol","file":"./Interfaces/IRiskOracle.sol","id":17143,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17615,"sourceUnit":16809,"src":"66:67:68","symbolAliases":[{"foreign":{"id":17142,"name":"RiskParameterUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16568,"src":"75:19:68","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/ICorePoolVToken.sol","file":"../interfaces/ICorePoolVToken.sol","id":17145,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17615,"sourceUnit":20371,"src":"134:68:68","symbolAliases":[{"foreign":{"id":17144,"name":"ICorePoolVToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20370,"src":"143:15:68","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/ICorePoolComptroller.sol","file":"../interfaces/ICorePoolComptroller.sol","id":17147,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17615,"sourceUnit":20348,"src":"203:78:68","symbolAliases":[{"foreign":{"id":17146,"name":"ICorePoolComptroller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20347,"src":"212:20:68","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/RiskSteward/Interfaces/IRiskStewardReceiver.sol","file":"./Interfaces/IRiskStewardReceiver.sol","id":17149,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17615,"sourceUnit":17140,"src":"282:77:68","symbolAliases":[{"foreign":{"id":17148,"name":"IRiskStewardReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17139,"src":"291:20:68","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/RiskSteward/BaseRiskSteward.sol","file":"./BaseRiskSteward.sol","id":17151,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17615,"sourceUnit":14515,"src":"360:56:68","symbolAliases":[{"foreign":{"id":17150,"name":"BaseRiskSteward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14514,"src":"369:15:68","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/validators.sol","file":"@venusprotocol/solidity-utilities/contracts/validators.sol","id":17153,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17615,"sourceUnit":10961,"src":"417:98:68","symbolAliases":[{"foreign":{"id":17152,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10945,"src":"426:20:68","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":17155,"name":"BaseRiskSteward","nameLocations":["803:15:68"],"nodeType":"IdentifierPath","referencedDeclaration":14514,"src":"803:15:68"},"id":17156,"nodeType":"InheritanceSpecifier","src":"803:15:68"}],"canonicalName":"MarketCapsRiskSteward","contractDependencies":[],"contractKind":"contract","documentation":{"id":17154,"nodeType":"StructuredDocumentation","src":"517:251:68","text":" @title MarketCapsRiskSteward\n @author Venus\n @notice Contract that can update supply and borrow caps updates received from RiskStewardReceiver.\n @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion"},"fullyImplemented":true,"id":17614,"linearizedBaseContracts":[17614,14514,13858,5947,6079,6574,6248,16839],"name":"MarketCapsRiskSteward","nameLocation":"778:21:68","nodeType":"ContractDefinition","nodes":[{"constant":true,"documentation":{"id":17157,"nodeType":"StructuredDocumentation","src":"825:58:68","text":" @notice The update type for supply caps"},"functionSelector":"0cfccc83","id":17160,"mutability":"constant","name":"SUPPLY_CAP","nameLocation":"911:10:68","nodeType":"VariableDeclaration","scope":17614,"src":"888:47:68","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17158,"name":"string","nodeType":"ElementaryTypeName","src":"888:6:68","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"737570706c79436170","id":17159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"924:11:68","typeDescriptions":{"typeIdentifier":"t_stringliteral_068e90f21e6e5d3d0c48f5983b5b5b9b9e7c4efbb8b596ef6c729c6870a3c943","typeString":"literal_string \"supplyCap\""},"value":"supplyCap"},"visibility":"public"},{"constant":true,"documentation":{"id":17161,"nodeType":"StructuredDocumentation","src":"942:93:68","text":" @notice The update type key for supply caps (keccak256 hash of SUPPLY_CAP)"},"functionSelector":"a0209e43","id":17169,"mutability":"constant","name":"SUPPLY_CAP_KEY","nameLocation":"1064:14:68","nodeType":"VariableDeclaration","scope":17614,"src":"1040:69:68","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17162,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1040:7:68","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"arguments":[{"id":17166,"name":"SUPPLY_CAP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17160,"src":"1097:10:68","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":17165,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1091:5:68","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":17164,"name":"bytes","nodeType":"ElementaryTypeName","src":"1091:5:68","typeDescriptions":{}}},"id":17167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1091:17:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17163,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1081:9:68","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":17168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1081:28:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"documentation":{"id":17170,"nodeType":"StructuredDocumentation","src":"1116:58:68","text":" @notice The update type for borrow caps"},"functionSelector":"77907191","id":17173,"mutability":"constant","name":"BORROW_CAP","nameLocation":"1202:10:68","nodeType":"VariableDeclaration","scope":17614,"src":"1179:47:68","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17171,"name":"string","nodeType":"ElementaryTypeName","src":"1179:6:68","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"626f72726f77436170","id":17172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1215:11:68","typeDescriptions":{"typeIdentifier":"t_stringliteral_cec723f9fbde52ce895e2dc35ea3c6d14c9e1de94ef0a9e37f9d251de1a78175","typeString":"literal_string \"borrowCap\""},"value":"borrowCap"},"visibility":"public"},{"constant":true,"documentation":{"id":17174,"nodeType":"StructuredDocumentation","src":"1233:93:68","text":" @notice The update type key for borrow caps (keccak256 hash of BORROW_CAP)"},"functionSelector":"c099f284","id":17182,"mutability":"constant","name":"BORROW_CAP_KEY","nameLocation":"1355:14:68","nodeType":"VariableDeclaration","scope":17614,"src":"1331:69:68","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17175,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1331:7:68","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"arguments":[{"id":17179,"name":"BORROW_CAP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17173,"src":"1388:10:68","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":17178,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1382:5:68","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":17177,"name":"bytes","nodeType":"ElementaryTypeName","src":"1382:5:68","typeDescriptions":{}}},"id":17180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1382:17:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17176,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1372:9:68","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":17181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1372:28:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"baseFunctions":[16822],"constant":false,"documentation":{"id":17183,"nodeType":"StructuredDocumentation","src":"1407:95:68","text":" @notice Address of the RiskStewardReceiver used to validate incoming updates"},"functionSelector":"b296e6cb","id":17186,"mutability":"immutable","name":"RISK_STEWARD_RECEIVER","nameLocation":"1545:21:68","nodeType":"VariableDeclaration","scope":17614,"src":"1507:59:68","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskStewardReceiver_$17139","typeString":"contract IRiskStewardReceiver"},"typeName":{"id":17185,"nodeType":"UserDefinedTypeName","pathNode":{"id":17184,"name":"IRiskStewardReceiver","nameLocations":["1507:20:68"],"nodeType":"IdentifierPath","referencedDeclaration":17139,"src":"1507:20:68"},"referencedDeclaration":17139,"src":"1507:20:68","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskStewardReceiver_$17139","typeString":"contract IRiskStewardReceiver"}},"visibility":"public"},{"constant":false,"documentation":{"id":17187,"nodeType":"StructuredDocumentation","src":"1573:254:68","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"id":17191,"mutability":"mutable","name":"__gap","nameLocation":"1852:5:68","nodeType":"VariableDeclaration","scope":17614,"src":"1832:25:68","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage","typeString":"uint256[49]"},"typeName":{"baseType":{"id":17188,"name":"uint256","nodeType":"ElementaryTypeName","src":"1832:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17190,"length":{"hexValue":"3439","id":17189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1840:2:68","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"49"},"nodeType":"ArrayTypeName","src":"1832:11:68","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage_ptr","typeString":"uint256[49]"}},"visibility":"private"},{"anonymous":false,"documentation":{"id":17192,"nodeType":"StructuredDocumentation","src":"1864:63:68","text":" @notice Emitted when a supply cap is updated"},"eventSelector":"4cf0c4bb7f5084ce4791920af9e571c6edb179b9f96f39ede8ce00c922d17cdd","id":17200,"name":"SupplyCapUpdated","nameLocation":"1938:16:68","nodeType":"EventDefinition","parameters":{"id":17199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17194,"indexed":true,"mutability":"mutable","name":"updateId","nameLocation":"1971:8:68","nodeType":"VariableDeclaration","scope":17200,"src":"1955:24:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17193,"name":"uint256","nodeType":"ElementaryTypeName","src":"1955:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17196,"indexed":true,"mutability":"mutable","name":"market","nameLocation":"1997:6:68","nodeType":"VariableDeclaration","scope":17200,"src":"1981:22:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17195,"name":"address","nodeType":"ElementaryTypeName","src":"1981:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17198,"indexed":false,"mutability":"mutable","name":"newSupplyCap","nameLocation":"2013:12:68","nodeType":"VariableDeclaration","scope":17200,"src":"2005:20:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17197,"name":"uint256","nodeType":"ElementaryTypeName","src":"2005:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1954:72:68"},"src":"1932:95:68"},{"anonymous":false,"documentation":{"id":17201,"nodeType":"StructuredDocumentation","src":"2033:63:68","text":" @notice Emitted when a borrow cap is updated"},"eventSelector":"be10220f8157f2d411dd6d5eb60524226528994d5a4ae89c640ae08ee21fb840","id":17209,"name":"BorrowCapUpdated","nameLocation":"2107:16:68","nodeType":"EventDefinition","parameters":{"id":17208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17203,"indexed":true,"mutability":"mutable","name":"updateId","nameLocation":"2140:8:68","nodeType":"VariableDeclaration","scope":17209,"src":"2124:24:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17202,"name":"uint256","nodeType":"ElementaryTypeName","src":"2124:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17205,"indexed":true,"mutability":"mutable","name":"market","nameLocation":"2166:6:68","nodeType":"VariableDeclaration","scope":17209,"src":"2150:22:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17204,"name":"address","nodeType":"ElementaryTypeName","src":"2150:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17207,"indexed":false,"mutability":"mutable","name":"newBorrowCap","nameLocation":"2182:12:68","nodeType":"VariableDeclaration","scope":17209,"src":"2174:20:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17206,"name":"uint256","nodeType":"ElementaryTypeName","src":"2174:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2123:72:68"},"src":"2101:95:68"},{"anonymous":false,"documentation":{"id":17210,"nodeType":"StructuredDocumentation","src":"2202:69:68","text":" @notice Emitted when the safe delta bps is updated"},"eventSelector":"a05c0cb0e77decc6503407c6ca159106b8b001d9feb7927d08fad60094a934ab","id":17216,"name":"SafeDeltaBpsUpdated","nameLocation":"2282:19:68","nodeType":"EventDefinition","parameters":{"id":17215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17212,"indexed":false,"mutability":"mutable","name":"oldSafeDeltaBps","nameLocation":"2310:15:68","nodeType":"VariableDeclaration","scope":17216,"src":"2302:23:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17211,"name":"uint256","nodeType":"ElementaryTypeName","src":"2302:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17214,"indexed":false,"mutability":"mutable","name":"newSafeDeltaBps","nameLocation":"2335:15:68","nodeType":"VariableDeclaration","scope":17216,"src":"2327:23:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17213,"name":"uint256","nodeType":"ElementaryTypeName","src":"2327:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2301:50:68"},"src":"2276:76:68"},{"documentation":{"id":17217,"nodeType":"StructuredDocumentation","src":"2358:83:68","text":" @notice Thrown when a safeDeltaBps value is greater than MAX_BPS"},"errorSelector":"c5147585","id":17219,"name":"InvalidSafeDeltaBps","nameLocation":"2452:19:68","nodeType":"ErrorDefinition","parameters":{"id":17218,"nodeType":"ParameterList","parameters":[],"src":"2471:2:68"},"src":"2446:28:68"},{"documentation":{"id":17220,"nodeType":"StructuredDocumentation","src":"2480:90:68","text":" @notice Thrown when an update type that is not supported is operated on"},"errorSelector":"80919d7b","id":17222,"name":"UnsupportedUpdateType","nameLocation":"2581:21:68","nodeType":"ErrorDefinition","parameters":{"id":17221,"nodeType":"ParameterList","parameters":[],"src":"2602:2:68"},"src":"2575:30:68"},{"documentation":{"id":17223,"nodeType":"StructuredDocumentation","src":"2611:92:68","text":" @notice Thrown when the update is not coming from the RiskStewardReceiver"},"errorSelector":"3a739dd7","id":17225,"name":"OnlyRiskStewardReceiver","nameLocation":"2714:23:68","nodeType":"ErrorDefinition","parameters":{"id":17224,"nodeType":"ParameterList","parameters":[],"src":"2737:2:68"},"src":"2708:32:68"},{"documentation":{"id":17226,"nodeType":"StructuredDocumentation","src":"2746:73:68","text":" @notice Thrown when the uint256 data length is invalid"},"errorSelector":"ccb08e23","id":17228,"name":"InvalidUintLength","nameLocation":"2830:17:68","nodeType":"ErrorDefinition","parameters":{"id":17227,"nodeType":"ParameterList","parameters":[],"src":"2847:2:68"},"src":"2824:26:68"},{"documentation":{"id":17229,"nodeType":"StructuredDocumentation","src":"2856:92:68","text":" @notice Thrown when attempting to apply a redundant value (no-op change)."},"errorSelector":"925cd795","id":17231,"name":"RedundantValue","nameLocation":"2959:14:68","nodeType":"ErrorDefinition","parameters":{"id":17230,"nodeType":"ParameterList","parameters":[],"src":"2973:2:68"},"src":"2953:23:68"},{"body":{"id":17250,"nodeType":"Block","src":"3347:167:68","statements":[{"expression":{"arguments":[{"id":17238,"name":"riskStewardReceiver_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17234,"src":"3378:20:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17237,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10945,"src":"3357:20:68","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":17239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3357:42:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17240,"nodeType":"ExpressionStatement","src":"3357:42:68"},{"expression":{"id":17245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17241,"name":"RISK_STEWARD_RECEIVER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17186,"src":"3409:21:68","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskStewardReceiver_$17139","typeString":"contract IRiskStewardReceiver"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":17243,"name":"riskStewardReceiver_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17234,"src":"3454:20:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17242,"name":"IRiskStewardReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17139,"src":"3433:20:68","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRiskStewardReceiver_$17139_$","typeString":"type(contract IRiskStewardReceiver)"}},"id":17244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3433:42:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRiskStewardReceiver_$17139","typeString":"contract IRiskStewardReceiver"}},"src":"3409:66:68","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskStewardReceiver_$17139","typeString":"contract IRiskStewardReceiver"}},"id":17246,"nodeType":"ExpressionStatement","src":"3409:66:68"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":17247,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6229,"src":"3485:20:68","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":17248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3485:22:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17249,"nodeType":"ExpressionStatement","src":"3485:22:68"}]},"documentation":{"id":17232,"nodeType":"StructuredDocumentation","src":"2982:318:68","text":" @notice Sets the immutable RiskStewardReceiver address and disables initializers\n @param riskStewardReceiver_ The address of the RiskStewardReceiver\n @custom:error Throws ZeroAddressNotAllowed if the RiskStewardReceiver address is zero\n @custom:oz-upgrades-unsafe-allow constructor"},"id":17251,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":17235,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17234,"mutability":"mutable","name":"riskStewardReceiver_","nameLocation":"3325:20:68","nodeType":"VariableDeclaration","scope":17251,"src":"3317:28:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17233,"name":"address","nodeType":"ElementaryTypeName","src":"3317:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3316:30:68"},"returnParameters":{"id":17236,"nodeType":"ParameterList","parameters":[],"src":"3347:0:68"},"scope":17614,"src":"3305:209:68","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":17263,"nodeType":"Block","src":"3760:63:68","statements":[{"expression":{"arguments":[{"id":17260,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17254,"src":"3794:21:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17259,"name":"__AccessControlled_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13754,"src":"3770:23:68","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":17261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3770:46:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17262,"nodeType":"ExpressionStatement","src":"3770:46:68"}]},"documentation":{"id":17252,"nodeType":"StructuredDocumentation","src":"3520:163:68","text":" @notice Initializes the contract as ownable and access controlled.\n @param accessControlManager_ The address of the access control manager"},"functionSelector":"c4d66de8","id":17264,"implemented":true,"kind":"function","modifiers":[{"id":17257,"kind":"modifierInvocation","modifierName":{"id":17256,"name":"initializer","nameLocations":["3748:11:68"],"nodeType":"IdentifierPath","referencedDeclaration":6150,"src":"3748:11:68"},"nodeType":"ModifierInvocation","src":"3748:11:68"}],"name":"initialize","nameLocation":"3697:10:68","nodeType":"FunctionDefinition","parameters":{"id":17255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17254,"mutability":"mutable","name":"accessControlManager_","nameLocation":"3716:21:68","nodeType":"VariableDeclaration","scope":17264,"src":"3708:29:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17253,"name":"address","nodeType":"ElementaryTypeName","src":"3708:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3707:31:68"},"returnParameters":{"id":17258,"nodeType":"ParameterList","parameters":[],"src":"3760:0:68"},"scope":17614,"src":"3688:135:68","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":17303,"nodeType":"Block","src":"4325:402:68","statements":[{"expression":{"arguments":[{"hexValue":"7365745361666544656c74614270732875696e7432353629","id":17271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4355:26:68","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c47d86f66d7d6df66346e87beecbc737575b49dde9b0174530ed1b674481bcb","typeString":"literal_string \"setSafeDeltaBps(uint256)\""},"value":"setSafeDeltaBps(uint256)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2c47d86f66d7d6df66346e87beecbc737575b49dde9b0174530ed1b674481bcb","typeString":"literal_string \"setSafeDeltaBps(uint256)\""}],"id":17270,"name":"_checkAccessAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13857,"src":"4335:19:68","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":17272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4335:47:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17273,"nodeType":"ExpressionStatement","src":"4335:47:68"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17274,"name":"safeDeltaBps_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17267,"src":"4396:13:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":17275,"name":"MAX_BPS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14461,"src":"4412:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4396:23:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17281,"nodeType":"IfStatement","src":"4392:82:68","trueBody":{"id":17280,"nodeType":"Block","src":"4421:53:68","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17277,"name":"InvalidSafeDeltaBps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17219,"src":"4442:19:68","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4442:21:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17279,"nodeType":"RevertStatement","src":"4435:28:68"}]}},{"assignments":[17283],"declarations":[{"constant":false,"id":17283,"mutability":"mutable","name":"oldSafeDeltaBps","nameLocation":"4491:15:68","nodeType":"VariableDeclaration","scope":17303,"src":"4483:23:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17282,"name":"uint256","nodeType":"ElementaryTypeName","src":"4483:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17285,"initialValue":{"id":17284,"name":"safeDeltaBps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14464,"src":"4509:12:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4483:38:68"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17286,"name":"safeDeltaBps_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17267,"src":"4535:13:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":17287,"name":"oldSafeDeltaBps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17283,"src":"4552:15:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4535:32:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17293,"nodeType":"IfStatement","src":"4531:86:68","trueBody":{"id":17292,"nodeType":"Block","src":"4569:48:68","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17289,"name":"RedundantValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17231,"src":"4590:14:68","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4590:16:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17291,"nodeType":"RevertStatement","src":"4583:23:68"}]}},{"expression":{"id":17296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17294,"name":"safeDeltaBps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14464,"src":"4626:12:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17295,"name":"safeDeltaBps_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17267,"src":"4641:13:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4626:28:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17297,"nodeType":"ExpressionStatement","src":"4626:28:68"},{"eventCall":{"arguments":[{"id":17299,"name":"oldSafeDeltaBps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17283,"src":"4689:15:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17300,"name":"safeDeltaBps_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17267,"src":"4706:13:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17298,"name":"SafeDeltaBpsUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17216,"src":"4669:19:68","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":17301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4669:51:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17302,"nodeType":"EmitStatement","src":"4664:56:68"}]},"documentation":{"id":17265,"nodeType":"StructuredDocumentation","src":"3829:434:68","text":" @notice Sets the safe delta bps\n @param safeDeltaBps_ The new safe delta bps\n @custom:access Controlled by AccessControlManager\n @custom:event Emits SafeDeltaBpsUpdated with the old and new safe delta bps\n @custom:error Throws InvalidSafeDeltaBps if the safe delta bps is greater than MAX_BPS\n @custom:error Throws RedundantValue if the new safe delta bps is equal to the current value"},"functionSelector":"2c47d86f","id":17304,"implemented":true,"kind":"function","modifiers":[],"name":"setSafeDeltaBps","nameLocation":"4277:15:68","nodeType":"FunctionDefinition","parameters":{"id":17268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17267,"mutability":"mutable","name":"safeDeltaBps_","nameLocation":"4301:13:68","nodeType":"VariableDeclaration","scope":17304,"src":"4293:21:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17266,"name":"uint256","nodeType":"ElementaryTypeName","src":"4293:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4292:23:68"},"returnParameters":{"id":17269,"nodeType":"ParameterList","parameters":[],"src":"4325:0:68"},"scope":17614,"src":"4268:459:68","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[16831],"body":{"id":17387,"nodeType":"Block","src":"5251:1113:68","statements":[{"assignments":[17314],"declarations":[{"constant":false,"id":17314,"mutability":"mutable","name":"newValue","nameLocation":"5269:8:68","nodeType":"VariableDeclaration","scope":17387,"src":"5261:16:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17313,"name":"uint256","nodeType":"ElementaryTypeName","src":"5261:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17319,"initialValue":{"arguments":[{"expression":{"id":17316,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17308,"src":"5305:6:68","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_calldata_ptr","typeString":"struct RiskParameterUpdate calldata"}},"id":17317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5312:8:68","memberName":"newValue","nodeType":"MemberAccess","referencedDeclaration":16555,"src":"5305:15:68","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":17315,"name":"_decodeAbiEncodedUint256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17613,"src":"5280:24:68","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":17318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5280:41:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5261:60:68"},{"assignments":[17322],"declarations":[{"constant":false,"id":17322,"mutability":"mutable","name":"comptroller","nameLocation":"5495:11:68","nodeType":"VariableDeclaration","scope":17387,"src":"5474:32:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ICorePoolComptroller_$20347","typeString":"contract ICorePoolComptroller"},"typeName":{"id":17321,"nodeType":"UserDefinedTypeName","pathNode":{"id":17320,"name":"ICorePoolComptroller","nameLocations":["5474:20:68"],"nodeType":"IdentifierPath","referencedDeclaration":20347,"src":"5474:20:68"},"referencedDeclaration":20347,"src":"5474:20:68","typeDescriptions":{"typeIdentifier":"t_contract$_ICorePoolComptroller_$20347","typeString":"contract ICorePoolComptroller"}},"visibility":"internal"}],"id":17331,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":17325,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17308,"src":"5546:6:68","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_calldata_ptr","typeString":"struct RiskParameterUpdate calldata"}},"id":17326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5553:6:68","memberName":"market","nodeType":"MemberAccess","referencedDeclaration":16549,"src":"5546:13:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17324,"name":"ICorePoolVToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20370,"src":"5530:15:68","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ICorePoolVToken_$20370_$","typeString":"type(contract ICorePoolVToken)"}},"id":17327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5530:30:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ICorePoolVToken_$20370","typeString":"contract ICorePoolVToken"}},"id":17328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5561:11:68","memberName":"comptroller","nodeType":"MemberAccess","referencedDeclaration":20356,"src":"5530:42:68","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":17329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5530:44:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17323,"name":"ICorePoolComptroller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20347,"src":"5509:20:68","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ICorePoolComptroller_$20347_$","typeString":"type(contract ICorePoolComptroller)"}},"id":17330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5509:66:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ICorePoolComptroller_$20347","typeString":"contract ICorePoolComptroller"}},"nodeType":"VariableDeclarationStatement","src":"5474:101:68"},{"assignments":[17333],"declarations":[{"constant":false,"id":17333,"mutability":"mutable","name":"currentValue","nameLocation":"5593:12:68","nodeType":"VariableDeclaration","scope":17387,"src":"5585:20:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17332,"name":"uint256","nodeType":"ElementaryTypeName","src":"5585:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17334,"nodeType":"VariableDeclarationStatement","src":"5585:20:68"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":17338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17335,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17308,"src":"5620:6:68","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_calldata_ptr","typeString":"struct RiskParameterUpdate calldata"}},"id":17336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5627:13:68","memberName":"updateTypeKey","nodeType":"MemberAccess","referencedDeclaration":16553,"src":"5620:20:68","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":17337,"name":"SUPPLY_CAP_KEY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17169,"src":"5644:14:68","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5620:38:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":17351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17348,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17308,"src":"5747:6:68","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_calldata_ptr","typeString":"struct RiskParameterUpdate calldata"}},"id":17349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5754:13:68","memberName":"updateTypeKey","nodeType":"MemberAccess","referencedDeclaration":16553,"src":"5747:20:68","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":17350,"name":"BORROW_CAP_KEY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17182,"src":"5771:14:68","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5747:38:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":17364,"nodeType":"Block","src":"5870:55:68","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17361,"name":"UnsupportedUpdateType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17222,"src":"5891:21:68","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5891:23:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17363,"nodeType":"RevertStatement","src":"5884:30:68"}]},"id":17365,"nodeType":"IfStatement","src":"5743:182:68","trueBody":{"id":17360,"nodeType":"Block","src":"5787:77:68","statements":[{"expression":{"id":17358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17352,"name":"currentValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17333,"src":"5801:12:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":17355,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17308,"src":"5839:6:68","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_calldata_ptr","typeString":"struct RiskParameterUpdate calldata"}},"id":17356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5846:6:68","memberName":"market","nodeType":"MemberAccess","referencedDeclaration":16549,"src":"5839:13:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17353,"name":"comptroller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"5816:11:68","typeDescriptions":{"typeIdentifier":"t_contract$_ICorePoolComptroller_$20347","typeString":"contract ICorePoolComptroller"}},"id":17354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5828:10:68","memberName":"borrowCaps","nodeType":"MemberAccess","referencedDeclaration":20233,"src":"5816:22:68","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":17357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5816:37:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5801:52:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17359,"nodeType":"ExpressionStatement","src":"5801:52:68"}]}},"id":17366,"nodeType":"IfStatement","src":"5616:309:68","trueBody":{"id":17347,"nodeType":"Block","src":"5660:77:68","statements":[{"expression":{"id":17345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17339,"name":"currentValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17333,"src":"5674:12:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":17342,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17308,"src":"5712:6:68","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_calldata_ptr","typeString":"struct RiskParameterUpdate calldata"}},"id":17343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5719:6:68","memberName":"market","nodeType":"MemberAccess","referencedDeclaration":16549,"src":"5712:13:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17340,"name":"comptroller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"5689:11:68","typeDescriptions":{"typeIdentifier":"t_contract$_ICorePoolComptroller_$20347","typeString":"contract ICorePoolComptroller"}},"id":17341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5701:10:68","memberName":"supplyCaps","nodeType":"MemberAccess","referencedDeclaration":20240,"src":"5689:22:68","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":17344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5689:37:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5674:52:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17346,"nodeType":"ExpressionStatement","src":"5674:52:68"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17367,"name":"newValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17314,"src":"5978:8:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":17368,"name":"currentValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17333,"src":"5990:12:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5978:24:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17374,"nodeType":"IfStatement","src":"5974:78:68","trueBody":{"id":17373,"nodeType":"Block","src":"6004:48:68","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17370,"name":"RedundantValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17231,"src":"6025:14:68","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6025:16:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17372,"nodeType":"RevertStatement","src":"6018:23:68"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17375,"name":"currentValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17333,"src":"6156:12:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":17376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6172:1:68","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6156:17:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17381,"nodeType":"IfStatement","src":"6152:60:68","trueBody":{"id":17380,"nodeType":"Block","src":"6175:37:68","statements":[{"expression":{"hexValue":"66616c7365","id":17378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6196:5:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":17312,"id":17379,"nodeType":"Return","src":"6189:12:68"}]}},{"expression":{"arguments":[{"id":17383,"name":"newValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17314,"src":"6334:8:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17384,"name":"currentValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17333,"src":"6344:12:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17382,"name":"_isWithinSafeDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14513,"src":"6315:18:68","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) view returns (bool)"}},"id":17385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6315:42:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":17312,"id":17386,"nodeType":"Return","src":"6308:49:68"}]},"documentation":{"id":17305,"nodeType":"StructuredDocumentation","src":"4733:413:68","text":" @notice Checks if an update is safe for direct execution (no timelock required)\n @param update The update to check\n @return True if update is safe for direct execution, false if timelock is required\n @custom:error Throws UnsupportedUpdateType if the update type is not supported\n @custom:error Throws RedundantValue if the new cap value is equal to the current cap value"},"functionSelector":"42b7cfbd","id":17388,"implemented":true,"kind":"function","modifiers":[],"name":"isSafeForDirectExecution","nameLocation":"5160:24:68","nodeType":"FunctionDefinition","parameters":{"id":17309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17308,"mutability":"mutable","name":"update","nameLocation":"5214:6:68","nodeType":"VariableDeclaration","scope":17388,"src":"5185:35:68","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_calldata_ptr","typeString":"struct RiskParameterUpdate"},"typeName":{"id":17307,"nodeType":"UserDefinedTypeName","pathNode":{"id":17306,"name":"RiskParameterUpdate","nameLocations":["5185:19:68"],"nodeType":"IdentifierPath","referencedDeclaration":16568,"src":"5185:19:68"},"referencedDeclaration":16568,"src":"5185:19:68","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_storage_ptr","typeString":"struct RiskParameterUpdate"}},"visibility":"internal"}],"src":"5184:37:68"},"returnParameters":{"id":17312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17311,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17388,"src":"5245:4:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17310,"name":"bool","nodeType":"ElementaryTypeName","src":"5245:4:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5244:6:68"},"scope":17614,"src":"5151:1213:68","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[16838],"body":{"id":17446,"nodeType":"Block","src":"7040:526:68","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":17401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17395,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7054:3:68","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7058:6:68","memberName":"sender","nodeType":"MemberAccess","src":"7054:10:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":17399,"name":"RISK_STEWARD_RECEIVER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17186,"src":"7076:21:68","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskStewardReceiver_$17139","typeString":"contract IRiskStewardReceiver"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRiskStewardReceiver_$17139","typeString":"contract IRiskStewardReceiver"}],"id":17398,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7068:7:68","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17397,"name":"address","nodeType":"ElementaryTypeName","src":"7068:7:68","typeDescriptions":{}}},"id":17400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7068:30:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7054:44:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17406,"nodeType":"IfStatement","src":"7050:107:68","trueBody":{"id":17405,"nodeType":"Block","src":"7100:57:68","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17402,"name":"OnlyRiskStewardReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17225,"src":"7121:23:68","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7121:25:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17404,"nodeType":"RevertStatement","src":"7114:32:68"}]}},{"assignments":[17408],"declarations":[{"constant":false,"id":17408,"mutability":"mutable","name":"newValue","nameLocation":"7174:8:68","nodeType":"VariableDeclaration","scope":17446,"src":"7166:16:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17407,"name":"uint256","nodeType":"ElementaryTypeName","src":"7166:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17413,"initialValue":{"arguments":[{"expression":{"id":17410,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17392,"src":"7210:6:68","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_calldata_ptr","typeString":"struct RiskParameterUpdate calldata"}},"id":17411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7217:8:68","memberName":"newValue","nodeType":"MemberAccess","referencedDeclaration":16555,"src":"7210:15:68","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":17409,"name":"_decodeAbiEncodedUint256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17613,"src":"7185:24:68","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":17412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7185:41:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7166:60:68"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":17417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17414,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17392,"src":"7241:6:68","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_calldata_ptr","typeString":"struct RiskParameterUpdate calldata"}},"id":17415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7248:13:68","memberName":"updateTypeKey","nodeType":"MemberAccess","referencedDeclaration":16553,"src":"7241:20:68","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":17416,"name":"SUPPLY_CAP_KEY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17169,"src":"7265:14:68","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7241:38:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":17430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17427,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17392,"src":"7375:6:68","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_calldata_ptr","typeString":"struct RiskParameterUpdate calldata"}},"id":17428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7382:13:68","memberName":"updateTypeKey","nodeType":"MemberAccess","referencedDeclaration":16553,"src":"7375:20:68","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":17429,"name":"BORROW_CAP_KEY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17182,"src":"7399:14:68","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7375:38:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":17443,"nodeType":"Block","src":"7505:55:68","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17440,"name":"UnsupportedUpdateType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17222,"src":"7526:21:68","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7526:23:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17442,"nodeType":"RevertStatement","src":"7519:30:68"}]},"id":17444,"nodeType":"IfStatement","src":"7371:189:68","trueBody":{"id":17439,"nodeType":"Block","src":"7415:84:68","statements":[{"expression":{"arguments":[{"expression":{"id":17432,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17392,"src":"7447:6:68","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_calldata_ptr","typeString":"struct RiskParameterUpdate calldata"}},"id":17433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7454:8:68","memberName":"updateId","nodeType":"MemberAccess","referencedDeclaration":16547,"src":"7447:15:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":17434,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17392,"src":"7464:6:68","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_calldata_ptr","typeString":"struct RiskParameterUpdate calldata"}},"id":17435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7471:6:68","memberName":"market","nodeType":"MemberAccess","referencedDeclaration":16549,"src":"7464:13:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17436,"name":"newValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17408,"src":"7479:8:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17431,"name":"_updateBorrowCaps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17585,"src":"7429:17:68","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_uint256_$returns$__$","typeString":"function (uint256,address,uint256)"}},"id":17437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7429:59:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17438,"nodeType":"ExpressionStatement","src":"7429:59:68"}]}},"id":17445,"nodeType":"IfStatement","src":"7237:323:68","trueBody":{"id":17426,"nodeType":"Block","src":"7281:84:68","statements":[{"expression":{"arguments":[{"expression":{"id":17419,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17392,"src":"7313:6:68","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_calldata_ptr","typeString":"struct RiskParameterUpdate calldata"}},"id":17420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7320:8:68","memberName":"updateId","nodeType":"MemberAccess","referencedDeclaration":16547,"src":"7313:15:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":17421,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17392,"src":"7330:6:68","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_calldata_ptr","typeString":"struct RiskParameterUpdate calldata"}},"id":17422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7337:6:68","memberName":"market","nodeType":"MemberAccess","referencedDeclaration":16549,"src":"7330:13:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17423,"name":"newValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17408,"src":"7345:8:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17418,"name":"_updateSupplyCaps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17516,"src":"7295:17:68","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_uint256_$returns$__$","typeString":"function (uint256,address,uint256)"}},"id":17424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7295:59:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17425,"nodeType":"ExpressionStatement","src":"7295:59:68"}]}}]},"documentation":{"id":17389,"nodeType":"StructuredDocumentation","src":"6370:598:68","text":" @notice Applies a market cap update from the RiskStewardReceiver.\n Directly updates the market supply or borrow cap on the market's comptroller.\n @custom:access Only callable by the RiskStewardReceiver\n @param update RiskParameterUpdate update to apply\n @custom:event Emits SupplyCapUpdated or BorrowCapUpdated depending on the update with the updateId, market and new cap\n @custom:error Throws OnlyRiskStewardReceiver if the sender is not the RiskStewardReceiver\n @custom:error Throws UnsupportedUpdateType if the update type is not supported"},"functionSelector":"bf637839","id":17447,"implemented":true,"kind":"function","modifiers":[],"name":"applyUpdate","nameLocation":"6982:11:68","nodeType":"FunctionDefinition","parameters":{"id":17393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17392,"mutability":"mutable","name":"update","nameLocation":"7023:6:68","nodeType":"VariableDeclaration","scope":17447,"src":"6994:35:68","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_calldata_ptr","typeString":"struct RiskParameterUpdate"},"typeName":{"id":17391,"nodeType":"UserDefinedTypeName","pathNode":{"id":17390,"name":"RiskParameterUpdate","nameLocations":["6994:19:68"],"nodeType":"IdentifierPath","referencedDeclaration":16568,"src":"6994:19:68"},"referencedDeclaration":16568,"src":"6994:19:68","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_storage_ptr","typeString":"struct RiskParameterUpdate"}},"visibility":"internal"}],"src":"6993:37:68"},"returnParameters":{"id":17394,"nodeType":"ParameterList","parameters":[],"src":"7040:0:68"},"scope":17614,"src":"6973:593:68","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":17515,"nodeType":"Block","src":"7992:528:68","statements":[{"assignments":[17458],"declarations":[{"constant":false,"id":17458,"mutability":"mutable","name":"comptroller","nameLocation":"8010:11:68","nodeType":"VariableDeclaration","scope":17515,"src":"8002:19:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17457,"name":"address","nodeType":"ElementaryTypeName","src":"8002:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":17464,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":17460,"name":"market","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17452,"src":"8040:6:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17459,"name":"ICorePoolVToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20370,"src":"8024:15:68","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ICorePoolVToken_$20370_$","typeString":"type(contract ICorePoolVToken)"}},"id":17461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8024:23:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ICorePoolVToken_$20370","typeString":"contract ICorePoolVToken"}},"id":17462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8048:11:68","memberName":"comptroller","nodeType":"MemberAccess","referencedDeclaration":20356,"src":"8024:35:68","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":17463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8024:37:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"8002:59:68"},{"assignments":[17469],"declarations":[{"constant":false,"id":17469,"mutability":"mutable","name":"newSupplyCapMarkets","nameLocation":"8088:19:68","nodeType":"VariableDeclaration","scope":17515,"src":"8071:36:68","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":17467,"name":"address","nodeType":"ElementaryTypeName","src":"8071:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17468,"nodeType":"ArrayTypeName","src":"8071:9:68","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":17475,"initialValue":{"arguments":[{"hexValue":"31","id":17473,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8124:1:68","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":17472,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"8110:13:68","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":17470,"name":"address","nodeType":"ElementaryTypeName","src":"8114:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17471,"nodeType":"ArrayTypeName","src":"8114:9:68","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":17474,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8110:16:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"8071:55:68"},{"expression":{"id":17480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":17476,"name":"newSupplyCapMarkets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17469,"src":"8136:19:68","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":17478,"indexExpression":{"hexValue":"30","id":17477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8156:1:68","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8136:22:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17479,"name":"market","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17452,"src":"8161:6:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8136:31:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17481,"nodeType":"ExpressionStatement","src":"8136:31:68"},{"assignments":[17486],"declarations":[{"constant":false,"id":17486,"mutability":"mutable","name":"newSupplyCaps","nameLocation":"8194:13:68","nodeType":"VariableDeclaration","scope":17515,"src":"8177:30:68","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":17484,"name":"uint256","nodeType":"ElementaryTypeName","src":"8177:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17485,"nodeType":"ArrayTypeName","src":"8177:9:68","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":17492,"initialValue":{"arguments":[{"hexValue":"31","id":17490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8224:1:68","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":17489,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"8210:13:68","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":17487,"name":"uint256","nodeType":"ElementaryTypeName","src":"8214:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17488,"nodeType":"ArrayTypeName","src":"8214:9:68","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":17491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8210:16:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"8177:49:68"},{"expression":{"id":17497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":17493,"name":"newSupplyCaps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17486,"src":"8236:13:68","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":17495,"indexExpression":{"hexValue":"30","id":17494,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8250:1:68","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8236:16:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17496,"name":"newValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17454,"src":"8255:8:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8236:27:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17498,"nodeType":"ExpressionStatement","src":"8236:27:68"},{"expression":{"arguments":[{"id":17503,"name":"newSupplyCapMarkets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17469,"src":"8411:19:68","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":17504,"name":"newSupplyCaps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17486,"src":"8432:13:68","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"expression":{"arguments":[{"id":17500,"name":"comptroller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17458,"src":"8378:11:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17499,"name":"ICorePoolComptroller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20347,"src":"8357:20:68","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ICorePoolComptroller_$20347_$","typeString":"type(contract ICorePoolComptroller)"}},"id":17501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8357:33:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ICorePoolComptroller_$20347","typeString":"contract ICorePoolComptroller"}},"id":17502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8391:19:68","memberName":"setMarketSupplyCaps","nodeType":"MemberAccess","referencedDeclaration":20267,"src":"8357:53:68","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory) external"}},"id":17505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8357:89:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17506,"nodeType":"ExpressionStatement","src":"8357:89:68"},{"eventCall":{"arguments":[{"id":17508,"name":"updateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17450,"src":"8478:8:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17509,"name":"market","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17452,"src":"8488:6:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":17510,"name":"newSupplyCaps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17486,"src":"8496:13:68","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":17512,"indexExpression":{"hexValue":"30","id":17511,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8510:1:68","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8496:16:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17507,"name":"SupplyCapUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17200,"src":"8461:16:68","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_uint256_$returns$__$","typeString":"function (uint256,address,uint256)"}},"id":17513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8461:52:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17514,"nodeType":"EmitStatement","src":"8456:57:68"}]},"documentation":{"id":17448,"nodeType":"StructuredDocumentation","src":"7572:327:68","text":" @notice Updates the supply cap for the given market.\n @param updateId The update ID from the Risk Oracle\n @param market The market to update the supply cap for\n @param newValue The new supply cap value\n @custom:event Emits SupplyCapUpdated with the updateId, market and new supply cap"},"id":17516,"implemented":true,"kind":"function","modifiers":[],"name":"_updateSupplyCaps","nameLocation":"7913:17:68","nodeType":"FunctionDefinition","parameters":{"id":17455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17450,"mutability":"mutable","name":"updateId","nameLocation":"7939:8:68","nodeType":"VariableDeclaration","scope":17516,"src":"7931:16:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17449,"name":"uint256","nodeType":"ElementaryTypeName","src":"7931:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17452,"mutability":"mutable","name":"market","nameLocation":"7957:6:68","nodeType":"VariableDeclaration","scope":17516,"src":"7949:14:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17451,"name":"address","nodeType":"ElementaryTypeName","src":"7949:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17454,"mutability":"mutable","name":"newValue","nameLocation":"7973:8:68","nodeType":"VariableDeclaration","scope":17516,"src":"7965:16:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17453,"name":"uint256","nodeType":"ElementaryTypeName","src":"7965:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7930:52:68"},"returnParameters":{"id":17456,"nodeType":"ParameterList","parameters":[],"src":"7992:0:68"},"scope":17614,"src":"7904:616:68","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":17584,"nodeType":"Block","src":"8946:527:68","statements":[{"assignments":[17527],"declarations":[{"constant":false,"id":17527,"mutability":"mutable","name":"comptroller","nameLocation":"8964:11:68","nodeType":"VariableDeclaration","scope":17584,"src":"8956:19:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17526,"name":"address","nodeType":"ElementaryTypeName","src":"8956:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":17533,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":17529,"name":"market","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17521,"src":"8994:6:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17528,"name":"ICorePoolVToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20370,"src":"8978:15:68","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ICorePoolVToken_$20370_$","typeString":"type(contract ICorePoolVToken)"}},"id":17530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8978:23:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ICorePoolVToken_$20370","typeString":"contract ICorePoolVToken"}},"id":17531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9002:11:68","memberName":"comptroller","nodeType":"MemberAccess","referencedDeclaration":20356,"src":"8978:35:68","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":17532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8978:37:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"8956:59:68"},{"assignments":[17538],"declarations":[{"constant":false,"id":17538,"mutability":"mutable","name":"newBorrowCapMarkets","nameLocation":"9042:19:68","nodeType":"VariableDeclaration","scope":17584,"src":"9025:36:68","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":17536,"name":"address","nodeType":"ElementaryTypeName","src":"9025:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17537,"nodeType":"ArrayTypeName","src":"9025:9:68","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":17544,"initialValue":{"arguments":[{"hexValue":"31","id":17542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9078:1:68","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":17541,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9064:13:68","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":17539,"name":"address","nodeType":"ElementaryTypeName","src":"9068:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17540,"nodeType":"ArrayTypeName","src":"9068:9:68","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":17543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9064:16:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9025:55:68"},{"expression":{"id":17549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":17545,"name":"newBorrowCapMarkets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17538,"src":"9090:19:68","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":17547,"indexExpression":{"hexValue":"30","id":17546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9110:1:68","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9090:22:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17548,"name":"market","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17521,"src":"9115:6:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9090:31:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17550,"nodeType":"ExpressionStatement","src":"9090:31:68"},{"assignments":[17555],"declarations":[{"constant":false,"id":17555,"mutability":"mutable","name":"newBorrowCaps","nameLocation":"9148:13:68","nodeType":"VariableDeclaration","scope":17584,"src":"9131:30:68","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":17553,"name":"uint256","nodeType":"ElementaryTypeName","src":"9131:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17554,"nodeType":"ArrayTypeName","src":"9131:9:68","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":17561,"initialValue":{"arguments":[{"hexValue":"31","id":17559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9178:1:68","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":17558,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9164:13:68","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":17556,"name":"uint256","nodeType":"ElementaryTypeName","src":"9168:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17557,"nodeType":"ArrayTypeName","src":"9168:9:68","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":17560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9164:16:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9131:49:68"},{"expression":{"id":17566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":17562,"name":"newBorrowCaps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17555,"src":"9190:13:68","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":17564,"indexExpression":{"hexValue":"30","id":17563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9204:1:68","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9190:16:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17565,"name":"newValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17523,"src":"9209:8:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9190:27:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17567,"nodeType":"ExpressionStatement","src":"9190:27:68"},{"expression":{"arguments":[{"id":17572,"name":"newBorrowCapMarkets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17538,"src":"9364:19:68","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":17573,"name":"newBorrowCaps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17555,"src":"9385:13:68","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"expression":{"arguments":[{"id":17569,"name":"comptroller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17527,"src":"9331:11:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17568,"name":"ICorePoolComptroller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20347,"src":"9310:20:68","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ICorePoolComptroller_$20347_$","typeString":"type(contract ICorePoolComptroller)"}},"id":17570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9310:33:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ICorePoolComptroller_$20347","typeString":"contract ICorePoolComptroller"}},"id":17571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9344:19:68","memberName":"setMarketBorrowCaps","nodeType":"MemberAccess","referencedDeclaration":20276,"src":"9310:53:68","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory) external"}},"id":17574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9310:89:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17575,"nodeType":"ExpressionStatement","src":"9310:89:68"},{"eventCall":{"arguments":[{"id":17577,"name":"updateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17519,"src":"9431:8:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17578,"name":"market","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17521,"src":"9441:6:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":17579,"name":"newBorrowCaps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17555,"src":"9449:13:68","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":17581,"indexExpression":{"hexValue":"30","id":17580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9463:1:68","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9449:16:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17576,"name":"BorrowCapUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17209,"src":"9414:16:68","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_uint256_$returns$__$","typeString":"function (uint256,address,uint256)"}},"id":17582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9414:52:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17583,"nodeType":"EmitStatement","src":"9409:57:68"}]},"documentation":{"id":17517,"nodeType":"StructuredDocumentation","src":"8526:327:68","text":" @notice Updates the borrow cap for the given market.\n @param updateId The update ID from the Risk Oracle\n @param market The market to update the borrow cap for\n @param newValue The new borrow cap value\n @custom:event Emits BorrowCapUpdated with the updateId, market and new borrow cap"},"id":17585,"implemented":true,"kind":"function","modifiers":[],"name":"_updateBorrowCaps","nameLocation":"8867:17:68","nodeType":"FunctionDefinition","parameters":{"id":17524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17519,"mutability":"mutable","name":"updateId","nameLocation":"8893:8:68","nodeType":"VariableDeclaration","scope":17585,"src":"8885:16:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17518,"name":"uint256","nodeType":"ElementaryTypeName","src":"8885:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17521,"mutability":"mutable","name":"market","nameLocation":"8911:6:68","nodeType":"VariableDeclaration","scope":17585,"src":"8903:14:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17520,"name":"address","nodeType":"ElementaryTypeName","src":"8903:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17523,"mutability":"mutable","name":"newValue","nameLocation":"8927:8:68","nodeType":"VariableDeclaration","scope":17585,"src":"8919:16:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17522,"name":"uint256","nodeType":"ElementaryTypeName","src":"8919:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8884:52:68"},"returnParameters":{"id":17525,"nodeType":"ParameterList","parameters":[],"src":"8946:0:68"},"scope":17614,"src":"8858:615:68","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":17612,"nodeType":"Block","src":"9888:135:68","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17593,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17588,"src":"9902:4:68","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":17594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9907:6:68","memberName":"length","nodeType":"MemberAccess","src":"9902:11:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3332","id":17595,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9917:2:68","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"9902:17:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17601,"nodeType":"IfStatement","src":"9898:74:68","trueBody":{"id":17600,"nodeType":"Block","src":"9921:51:68","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17597,"name":"InvalidUintLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17228,"src":"9942:17:68","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9942:19:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17599,"nodeType":"RevertStatement","src":"9935:26:68"}]}},{"expression":{"id":17610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17602,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17591,"src":"9981:5:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":17605,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17588,"src":"10000:4:68","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":17607,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10007:7:68","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":17606,"name":"uint256","nodeType":"ElementaryTypeName","src":"10007:7:68","typeDescriptions":{}}}],"id":17608,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"10006:9:68","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":17603,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9989:3:68","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17604,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9993:6:68","memberName":"decode","nodeType":"MemberAccess","src":"9989:10:68","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":17609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9989:27:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9981:35:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17611,"nodeType":"ExpressionStatement","src":"9981:35:68"}]},"documentation":{"id":17586,"nodeType":"StructuredDocumentation","src":"9479:313:68","text":" @notice Decodes ABI-encoded bytes into a uint256.\n @dev Expects exactly 32 bytes as produced by abi.encode(uint256).\n @param data ABI-encoded uint256 payload (32 bytes)\n @return value Decoded uint256\n @custom:error Throws InvalidUintLength if data length is not 32 bytes"},"id":17613,"implemented":true,"kind":"function","modifiers":[],"name":"_decodeAbiEncodedUint256","nameLocation":"9806:24:68","nodeType":"FunctionDefinition","parameters":{"id":17589,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17588,"mutability":"mutable","name":"data","nameLocation":"9844:4:68","nodeType":"VariableDeclaration","scope":17613,"src":"9831:17:68","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":17587,"name":"bytes","nodeType":"ElementaryTypeName","src":"9831:5:68","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9830:19:68"},"returnParameters":{"id":17592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17591,"mutability":"mutable","name":"value","nameLocation":"9881:5:68","nodeType":"VariableDeclaration","scope":17613,"src":"9873:13:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17590,"name":"uint256","nodeType":"ElementaryTypeName","src":"9873:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9872:15:68"},"scope":17614,"src":"9797:226:68","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":17615,"src":"769:9256:68","usedErrors":[10924,13739,14467,17219,17222,17225,17228,17231],"usedEvents":[5873,5964,6094,13730,17200,17209,17216]}],"src":"41:9985:68"},"id":68},"contracts/RiskSteward/RiskOracle.sol":{"ast":{"absolutePath":"contracts/RiskSteward/RiskOracle.sol","exportedSymbols":{"AccessControlledV8":[13858],"IRiskOracle":[16808],"RiskOracle":[18316],"RiskParameterUpdate":[16568],"ensureNonzeroAddress":[10945]},"id":18317,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":17616,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"32:23:69"},{"absolutePath":"contracts/Governance/AccessControlledV8.sol","file":"../Governance/AccessControlledV8.sol","id":17618,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18317,"sourceUnit":13859,"src":"57:74:69","symbolAliases":[{"foreign":{"id":17617,"name":"AccessControlledV8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13858,"src":"66:18:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/validators.sol","file":"@venusprotocol/solidity-utilities/contracts/validators.sol","id":17620,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18317,"sourceUnit":10961,"src":"132:98:69","symbolAliases":[{"foreign":{"id":17619,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10945,"src":"141:20:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/RiskSteward/Interfaces/IRiskOracle.sol","file":"./Interfaces/IRiskOracle.sol","id":17623,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18317,"sourceUnit":16809,"src":"231:80:69","symbolAliases":[{"foreign":{"id":17621,"name":"IRiskOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16808,"src":"240:11:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":17622,"name":"RiskParameterUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16568,"src":"253:19:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":17625,"name":"IRiskOracle","nameLocations":["479:11:69"],"nodeType":"IdentifierPath","referencedDeclaration":16808,"src":"479:11:69"},"id":17626,"nodeType":"InheritanceSpecifier","src":"479:11:69"},{"baseName":{"id":17627,"name":"AccessControlledV8","nameLocations":["492:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":13858,"src":"492:18:69"},"id":17628,"nodeType":"InheritanceSpecifier","src":"492:18:69"}],"canonicalName":"RiskOracle","contractDependencies":[],"contractKind":"contract","documentation":{"id":17624,"nodeType":"StructuredDocumentation","src":"313:142:69","text":" @title Risk Oracle\n @author Venus\n @notice Contract for managing and publishing risk parameter updates for Risk-Steward Updates"},"fullyImplemented":true,"id":18316,"linearizedBaseContracts":[18316,13858,5947,6079,6574,6248,16808],"name":"RiskOracle","nameLocation":"465:10:69","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[16708],"constant":false,"documentation":{"id":17629,"nodeType":"StructuredDocumentation","src":"517:64:69","text":"@notice Counter to keep track of the total number of updates"},"functionSelector":"1687fe8e","id":17631,"mutability":"mutable","name":"updateCounter","nameLocation":"601:13:69","nodeType":"VariableDeclaration","scope":18316,"src":"586:28:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17630,"name":"uint256","nodeType":"ElementaryTypeName","src":"586:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"baseFunctions":[16655],"constant":false,"documentation":{"id":17632,"nodeType":"StructuredDocumentation","src":"621:43:69","text":"@notice Array to store all update types"},"functionSelector":"c6b8ab42","id":17635,"mutability":"mutable","name":"allUpdateTypes","nameLocation":"685:14:69","nodeType":"VariableDeclaration","scope":18316,"src":"669:30:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string[]"},"typeName":{"baseType":{"id":17633,"name":"string","nodeType":"ElementaryTypeName","src":"669:6:69","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":17634,"nodeType":"ArrayTypeName","src":"669:8:69","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"public"},{"baseFunctions":[16684],"constant":false,"documentation":{"id":17636,"nodeType":"StructuredDocumentation","src":"706:80:69","text":"@notice Whitelist of valid update type identifiers, keyed by updateType hash"},"functionSelector":"157b1225","id":17640,"mutability":"mutable","name":"activeUpdateTypes","nameLocation":"823:17:69","nodeType":"VariableDeclaration","scope":18316,"src":"791:49:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"typeName":{"id":17639,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":17637,"name":"bytes32","nodeType":"ElementaryTypeName","src":"799:7:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"791:24:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":17638,"name":"bool","nodeType":"ElementaryTypeName","src":"810:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"constant":false,"documentation":{"id":17641,"nodeType":"StructuredDocumentation","src":"847:63:69","text":"@notice Mapping from unique update ID to the update details"},"functionSelector":"b39b55be","id":17646,"mutability":"mutable","name":"updatesById","nameLocation":"962:11:69","nodeType":"VariableDeclaration","scope":18316,"src":"915:58:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RiskParameterUpdate_$16568_storage_$","typeString":"mapping(uint256 => struct RiskParameterUpdate)"},"typeName":{"id":17645,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":17642,"name":"uint256","nodeType":"ElementaryTypeName","src":"923:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"915:39:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RiskParameterUpdate_$16568_storage_$","typeString":"mapping(uint256 => struct RiskParameterUpdate)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":17644,"nodeType":"UserDefinedTypeName","pathNode":{"id":17643,"name":"RiskParameterUpdate","nameLocations":["934:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":16568,"src":"934:19:69"},"referencedDeclaration":16568,"src":"934:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_storage_ptr","typeString":"struct RiskParameterUpdate"}}},"visibility":"public"},{"baseFunctions":[16692],"constant":false,"documentation":{"id":17647,"nodeType":"StructuredDocumentation","src":"980:60:69","text":"@notice Authorized accounts capable of proposing updates"},"functionSelector":"6f324967","id":17651,"mutability":"mutable","name":"authorizedSenders","nameLocation":"1077:17:69","nodeType":"VariableDeclaration","scope":18316,"src":"1045:49:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":17650,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":17648,"name":"address","nodeType":"ElementaryTypeName","src":"1053:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1045:24:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":17649,"name":"bool","nodeType":"ElementaryTypeName","src":"1064:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"baseFunctions":[16702],"constant":false,"documentation":{"id":17652,"nodeType":"StructuredDocumentation","src":"1101:100:69","text":"@notice Mapping to store the latest update ID for each combination of update type key and market"},"functionSelector":"43b62b26","id":17658,"mutability":"mutable","name":"latestUpdateIdByMarketAndType","nameLocation":"1291:29:69","nodeType":"VariableDeclaration","scope":18316,"src":"1206:114:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(bytes32 => mapping(address => uint256))"},"typeName":{"id":17657,"keyName":"updateTypeKey","keyNameLocation":"1222:13:69","keyType":{"id":17653,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1214:7:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1206:77:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(bytes32 => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":17656,"keyName":"market","keyNameLocation":"1255:6:69","keyType":{"id":17654,"name":"address","nodeType":"ElementaryTypeName","src":"1247:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1239:43:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"updateId","valueNameLocation":"1273:8:69","valueType":{"id":17655,"name":"uint256","nodeType":"ElementaryTypeName","src":"1265:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"public"},{"constant":false,"documentation":{"id":17659,"nodeType":"StructuredDocumentation","src":"1327:254:69","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"id":17663,"mutability":"mutable","name":"__gap","nameLocation":"1606:5:69","nodeType":"VariableDeclaration","scope":18316,"src":"1586:25:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$44_storage","typeString":"uint256[44]"},"typeName":{"baseType":{"id":17660,"name":"uint256","nodeType":"ElementaryTypeName","src":"1586:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17662,"length":{"hexValue":"3434","id":17661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1594:2:69","typeDescriptions":{"typeIdentifier":"t_rational_44_by_1","typeString":"int_const 44"},"value":"44"},"nodeType":"ArrayTypeName","src":"1586:11:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$44_storage_ptr","typeString":"uint256[44]"}},"visibility":"private"},{"body":{"id":17677,"nodeType":"Block","src":"1742:116:69","statements":[{"condition":{"id":17670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1756:30:69","subExpression":{"baseExpression":{"id":17666,"name":"authorizedSenders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17651,"src":"1757:17:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":17669,"indexExpression":{"expression":{"id":17667,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1775:3:69","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1779:6:69","memberName":"sender","nodeType":"MemberAccess","src":"1775:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1757:29:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17675,"nodeType":"IfStatement","src":"1752:89:69","trueBody":{"id":17674,"nodeType":"Block","src":"1788:53:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17671,"name":"SenderNotAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16617,"src":"1809:19:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1809:21:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17673,"nodeType":"RevertStatement","src":"1802:28:69"}]}},{"id":17676,"nodeType":"PlaceholderStatement","src":"1850:1:69"}]},"documentation":{"id":17664,"nodeType":"StructuredDocumentation","src":"1618:93:69","text":" @notice Modifier that restricts function access to authorized senders only"},"id":17678,"name":"onlyAuthorized","nameLocation":"1725:14:69","nodeType":"ModifierDefinition","parameters":{"id":17665,"nodeType":"ParameterList","parameters":[],"src":"1739:2:69"},"src":"1716:142:69","virtual":false,"visibility":"internal"},{"body":{"id":17685,"nodeType":"Block","src":"1983:39:69","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":17682,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6229,"src":"1993:20:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":17683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1993:22:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17684,"nodeType":"ExpressionStatement","src":"1993:22:69"}]},"documentation":{"id":17679,"nodeType":"StructuredDocumentation","src":"1864:100:69","text":" @notice Disables initializers\n @custom:oz-upgrades-unsafe-allow constructor"},"id":17686,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":17680,"nodeType":"ParameterList","parameters":[],"src":"1980:2:69"},"returnParameters":{"id":17681,"nodeType":"ParameterList","parameters":[],"src":"1983:0:69"},"scope":18316,"src":"1969:53:69","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":17698,"nodeType":"Block","src":"2373:63:69","statements":[{"expression":{"arguments":[{"id":17695,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17689,"src":"2407:21:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17694,"name":"__AccessControlled_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13754,"src":"2383:23:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":17696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2383:46:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17697,"nodeType":"ExpressionStatement","src":"2383:46:69"}]},"documentation":{"id":17687,"nodeType":"StructuredDocumentation","src":"2028:268:69","text":" @notice Initializes the contract with access control manager\n @param accessControlManager_ Address of the access control manager\n @custom:error Reverts with \"invalid acess control manager address\" if accessControlManager_ is zero address"},"functionSelector":"c4d66de8","id":17699,"implemented":true,"kind":"function","modifiers":[{"id":17692,"kind":"modifierInvocation","modifierName":{"id":17691,"name":"initializer","nameLocations":["2361:11:69"],"nodeType":"IdentifierPath","referencedDeclaration":6150,"src":"2361:11:69"},"nodeType":"ModifierInvocation","src":"2361:11:69"}],"name":"initialize","nameLocation":"2310:10:69","nodeType":"FunctionDefinition","parameters":{"id":17690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17689,"mutability":"mutable","name":"accessControlManager_","nameLocation":"2329:21:69","nodeType":"VariableDeclaration","scope":17699,"src":"2321:29:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17688,"name":"address","nodeType":"ElementaryTypeName","src":"2321:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2320:31:69"},"returnParameters":{"id":17693,"nodeType":"ParameterList","parameters":[],"src":"2373:0:69"},"scope":18316,"src":"2301:135:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[16744],"body":{"id":17731,"nodeType":"Block","src":"3036:289:69","statements":[{"expression":{"arguments":[{"hexValue":"616464417574686f72697a656453656e646572286164647265737329","id":17706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3066:30:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_fa7229ee244b56feb1c766f1193fe58d4c4733b8ef513c6a7cf557e31b0cb0e8","typeString":"literal_string \"addAuthorizedSender(address)\""},"value":"addAuthorizedSender(address)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fa7229ee244b56feb1c766f1193fe58d4c4733b8ef513c6a7cf557e31b0cb0e8","typeString":"literal_string \"addAuthorizedSender(address)\""}],"id":17705,"name":"_checkAccessAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13857,"src":"3046:19:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":17707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3046:51:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17708,"nodeType":"ExpressionStatement","src":"3046:51:69"},{"expression":{"arguments":[{"id":17710,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17702,"src":"3128:6:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17709,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10945,"src":"3107:20:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":17711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3107:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17712,"nodeType":"ExpressionStatement","src":"3107:28:69"},{"condition":{"baseExpression":{"id":17713,"name":"authorizedSenders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17651,"src":"3149:17:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":17715,"indexExpression":{"id":17714,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17702,"src":"3167:6:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3149:25:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17720,"nodeType":"IfStatement","src":"3145:88:69","trueBody":{"id":17719,"nodeType":"Block","src":"3176:57:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17716,"name":"SenderAlreadyAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16620,"src":"3197:23:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3197:25:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17718,"nodeType":"RevertStatement","src":"3190:32:69"}]}},{"expression":{"id":17725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":17721,"name":"authorizedSenders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17651,"src":"3242:17:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":17723,"indexExpression":{"id":17722,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17702,"src":"3260:6:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3242:25:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":17724,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3270:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3242:32:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17726,"nodeType":"ExpressionStatement","src":"3242:32:69"},{"eventCall":{"arguments":[{"id":17728,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17702,"src":"3311:6:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17727,"name":"AuthorizedSenderAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16595,"src":"3289:21:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":17729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3289:29:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17730,"nodeType":"EmitStatement","src":"3284:34:69"}]},"documentation":{"id":17700,"nodeType":"StructuredDocumentation","src":"2442:535:69","text":" @notice Adds a new sender to the list of addresses authorized to perform updates\n @param sender Address to be authorized\n @custom:access Controlled by AccessControlManager\n @custom:error Throws ZeroAddressNotAllowed if sender is zero address\n @custom:error Throws SenderAlreadyAuthorized if sender is already authorized\n @custom:error Throws Unauthorized if caller is not allowed by AccessControlManager\n @custom:event Emits AuthorizedSenderAdded when sender is successfully added"},"functionSelector":"fa7229ee","id":17732,"implemented":true,"kind":"function","modifiers":[],"name":"addAuthorizedSender","nameLocation":"2991:19:69","nodeType":"FunctionDefinition","parameters":{"id":17703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17702,"mutability":"mutable","name":"sender","nameLocation":"3019:6:69","nodeType":"VariableDeclaration","scope":17732,"src":"3011:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17701,"name":"address","nodeType":"ElementaryTypeName","src":"3011:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3010:16:69"},"returnParameters":{"id":17704,"nodeType":"ParameterList","parameters":[],"src":"3036:0:69"},"scope":18316,"src":"2982:343:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[16750],"body":{"id":17760,"nodeType":"Block","src":"3842:253:69","statements":[{"expression":{"arguments":[{"hexValue":"72656d6f7665417574686f72697a656453656e646572286164647265737329","id":17739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3872:33:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_cbd579677b646fb7dd7b06555ae893a60acb37442a1c8b051545f1388fc1a7bf","typeString":"literal_string \"removeAuthorizedSender(address)\""},"value":"removeAuthorizedSender(address)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cbd579677b646fb7dd7b06555ae893a60acb37442a1c8b051545f1388fc1a7bf","typeString":"literal_string \"removeAuthorizedSender(address)\""}],"id":17738,"name":"_checkAccessAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13857,"src":"3852:19:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":17740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3852:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17741,"nodeType":"ExpressionStatement","src":"3852:54:69"},{"condition":{"id":17745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3920:26:69","subExpression":{"baseExpression":{"id":17742,"name":"authorizedSenders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17651,"src":"3921:17:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":17744,"indexExpression":{"id":17743,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17735,"src":"3939:6:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3921:25:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17750,"nodeType":"IfStatement","src":"3916:85:69","trueBody":{"id":17749,"nodeType":"Block","src":"3948:53:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17746,"name":"SenderNotAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16617,"src":"3969:19:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3969:21:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17748,"nodeType":"RevertStatement","src":"3962:28:69"}]}},{"expression":{"id":17754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"4010:32:69","subExpression":{"baseExpression":{"id":17751,"name":"authorizedSenders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17651,"src":"4017:17:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":17753,"indexExpression":{"id":17752,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17735,"src":"4035:6:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4017:25:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17755,"nodeType":"ExpressionStatement","src":"4010:32:69"},{"eventCall":{"arguments":[{"id":17757,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17735,"src":"4081:6:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17756,"name":"AuthorizedSenderRemoved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16600,"src":"4057:23:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":17758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4057:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17759,"nodeType":"EmitStatement","src":"4052:36:69"}]},"documentation":{"id":17733,"nodeType":"StructuredDocumentation","src":"3331:449:69","text":" @notice Removes an address from the list of authorized senders\n @param sender Address to be unauthorized\n @custom:access Controlled by AccessControlManager\n @custom:error Throws SenderNotAuthorized if sender is not currently authorized\n @custom:error Throws Unauthorized if caller is not allowed by AccessControlManager\n @custom:event Emits AuthorizedSenderRemoved when sender is successfully removed"},"functionSelector":"cbd57967","id":17761,"implemented":true,"kind":"function","modifiers":[],"name":"removeAuthorizedSender","nameLocation":"3794:22:69","nodeType":"FunctionDefinition","parameters":{"id":17736,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17735,"mutability":"mutable","name":"sender","nameLocation":"3825:6:69","nodeType":"VariableDeclaration","scope":17761,"src":"3817:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17734,"name":"address","nodeType":"ElementaryTypeName","src":"3817:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3816:16:69"},"returnParameters":{"id":17737,"nodeType":"ParameterList","parameters":[],"src":"3842:0:69"},"scope":18316,"src":"3785:310:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[16756],"body":{"id":17824,"nodeType":"Block","src":"4733:480:69","statements":[{"expression":{"arguments":[{"hexValue":"6164645570646174655479706528737472696e6729","id":17768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4763:23:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_77abc9bda0f7ec1dcd1f625fa72b07fc83265fea485b2a32df46075ed44efd4c","typeString":"literal_string \"addUpdateType(string)\""},"value":"addUpdateType(string)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_77abc9bda0f7ec1dcd1f625fa72b07fc83265fea485b2a32df46075ed44efd4c","typeString":"literal_string \"addUpdateType(string)\""}],"id":17767,"name":"_checkAccessAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13857,"src":"4743:19:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":17769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4743:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17770,"nodeType":"ExpressionStatement","src":"4743:44:69"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":17773,"name":"newUpdateType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17764,"src":"4807:13:69","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":17772,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4801:5:69","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":17771,"name":"bytes","nodeType":"ElementaryTypeName","src":"4801:5:69","typeDescriptions":{}}},"id":17774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4801:20:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":17775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4822:6:69","memberName":"length","nodeType":"MemberAccess","src":"4801:27:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":17776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4832:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4801:32:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":17780,"name":"newUpdateType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17764,"src":"4843:13:69","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":17779,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4837:5:69","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":17778,"name":"bytes","nodeType":"ElementaryTypeName","src":"4837:5:69","typeDescriptions":{}}},"id":17781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4837:20:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":17782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4858:6:69","memberName":"length","nodeType":"MemberAccess","src":"4837:27:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3634","id":17783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4867:2:69","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"4837:32:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4801:68:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17790,"nodeType":"IfStatement","src":"4797:131:69","trueBody":{"id":17789,"nodeType":"Block","src":"4871:57:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17786,"name":"InvalidUpdateTypeString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16623,"src":"4892:23:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4892:25:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17788,"nodeType":"RevertStatement","src":"4885:32:69"}]}},{"assignments":[17792],"declarations":[{"constant":false,"id":17792,"mutability":"mutable","name":"key","nameLocation":"4945:3:69","nodeType":"VariableDeclaration","scope":17824,"src":"4937:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17791,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4937:7:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":17799,"initialValue":{"arguments":[{"arguments":[{"id":17796,"name":"newUpdateType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17764,"src":"4967:13:69","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":17795,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4961:5:69","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":17794,"name":"bytes","nodeType":"ElementaryTypeName","src":"4961:5:69","typeDescriptions":{}}},"id":17797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4961:20:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17793,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4951:9:69","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":17798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4951:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4937:45:69"},{"condition":{"arguments":[{"id":17801,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17792,"src":"5015:3:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":17800,"name":"_updateTypeExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18306,"src":"4997:17:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view returns (bool)"}},"id":17802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4997:22:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17807,"nodeType":"IfStatement","src":"4993:85:69","trueBody":{"id":17806,"nodeType":"Block","src":"5021:57:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17803,"name":"UpdateTypeAlreadyExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16626,"src":"5042:23:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5042:25:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17805,"nodeType":"RevertStatement","src":"5035:32:69"}]}},{"expression":{"id":17812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":17808,"name":"activeUpdateTypes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17640,"src":"5088:17:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":17810,"indexExpression":{"id":17809,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17792,"src":"5106:3:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5088:22:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":17811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5113:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"5088:29:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17813,"nodeType":"ExpressionStatement","src":"5088:29:69"},{"expression":{"arguments":[{"id":17817,"name":"newUpdateType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17764,"src":"5147:13:69","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":17814,"name":"allUpdateTypes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17635,"src":"5127:14:69","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"id":17816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5142:4:69","memberName":"push","nodeType":"MemberAccess","src":"5127:19:69","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_string_storage_$dyn_storage_ptr_$_t_string_storage_$returns$__$attached_to$_t_array$_t_string_storage_$dyn_storage_ptr_$","typeString":"function (string storage ref[] storage pointer,string storage ref)"}},"id":17818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5127:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17819,"nodeType":"ExpressionStatement","src":"5127:34:69"},{"eventCall":{"arguments":[{"id":17821,"name":"newUpdateType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17764,"src":"5192:13:69","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":17820,"name":"UpdateTypeAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16605,"src":"5176:15:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":17822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5176:30:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17823,"nodeType":"EmitStatement","src":"5171:35:69"}]},"documentation":{"id":17762,"nodeType":"StructuredDocumentation","src":"4101:566:69","text":" @notice Adds a new type of update to the list of authorized update types\n @param newUpdateType New type of update to allow\n @custom:access Controlled by AccessControlManager\n @custom:error Throws InvalidUpdateTypeString if update type string is empty or exceeds 64 characters\n @custom:error Throws UpdateTypeAlreadyExists if update type already exists\n @custom:error Throws Unauthorized if caller is not allowed by AccessControlManager\n @custom:event Emits UpdateTypeAdded when update type is successfully added"},"functionSelector":"77abc9bd","id":17825,"implemented":true,"kind":"function","modifiers":[],"name":"addUpdateType","nameLocation":"4681:13:69","nodeType":"FunctionDefinition","parameters":{"id":17765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17764,"mutability":"mutable","name":"newUpdateType","nameLocation":"4709:13:69","nodeType":"VariableDeclaration","scope":17825,"src":"4695:27:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17763,"name":"string","nodeType":"ElementaryTypeName","src":"4695:6:69","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4694:29:69"},"returnParameters":{"id":17766,"nodeType":"ParameterList","parameters":[],"src":"4733:0:69"},"scope":18316,"src":"4672:541:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[16764],"body":{"id":17881,"nodeType":"Block","src":"5918:490:69","statements":[{"expression":{"arguments":[{"hexValue":"7365745570646174655479706541637469766528737472696e672c626f6f6c29","id":17834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5948:34:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_ec1930b0c5c15cfa4d72fa59451f887c3984c02354477f80a5e21b0eb6344429","typeString":"literal_string \"setUpdateTypeActive(string,bool)\""},"value":"setUpdateTypeActive(string,bool)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ec1930b0c5c15cfa4d72fa59451f887c3984c02354477f80a5e21b0eb6344429","typeString":"literal_string \"setUpdateTypeActive(string,bool)\""}],"id":17833,"name":"_checkAccessAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13857,"src":"5928:19:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":17835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5928:55:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17836,"nodeType":"ExpressionStatement","src":"5928:55:69"},{"assignments":[17838],"declarations":[{"constant":false,"id":17838,"mutability":"mutable","name":"key","nameLocation":"6001:3:69","nodeType":"VariableDeclaration","scope":17881,"src":"5993:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17837,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5993:7:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":17845,"initialValue":{"arguments":[{"arguments":[{"id":17842,"name":"updateType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17828,"src":"6023:10:69","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":17841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6017:5:69","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":17840,"name":"bytes","nodeType":"ElementaryTypeName","src":"6017:5:69","typeDescriptions":{}}},"id":17843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6017:17:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17839,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6007:9:69","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":17844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6007:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5993:42:69"},{"condition":{"id":17849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6050:23:69","subExpression":{"arguments":[{"id":17847,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17838,"src":"6069:3:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":17846,"name":"_updateTypeExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18306,"src":"6051:17:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view returns (bool)"}},"id":17848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6051:22:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17854,"nodeType":"IfStatement","src":"6046:81:69","trueBody":{"id":17853,"nodeType":"Block","src":"6075:52:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17850,"name":"UpdateTypeNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16629,"src":"6096:18:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6096:20:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17852,"nodeType":"RevertStatement","src":"6089:27:69"}]}},{"assignments":[17856],"declarations":[{"constant":false,"id":17856,"mutability":"mutable","name":"previousActive","nameLocation":"6142:14:69","nodeType":"VariableDeclaration","scope":17881,"src":"6137:19:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17855,"name":"bool","nodeType":"ElementaryTypeName","src":"6137:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":17860,"initialValue":{"baseExpression":{"id":17857,"name":"activeUpdateTypes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17640,"src":"6159:17:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":17859,"indexExpression":{"id":17858,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17838,"src":"6177:3:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6159:22:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"6137:44:69"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17861,"name":"previousActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17856,"src":"6195:14:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":17862,"name":"active","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17830,"src":"6213:6:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6195:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17868,"nodeType":"IfStatement","src":"6191:89:69","trueBody":{"id":17867,"nodeType":"Block","src":"6221:59:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17864,"name":"UpdateTypeStatusUnchanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16632,"src":"6242:25:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6242:27:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17866,"nodeType":"RevertStatement","src":"6235:34:69"}]}},{"expression":{"id":17873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":17869,"name":"activeUpdateTypes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17640,"src":"6290:17:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":17871,"indexExpression":{"id":17870,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17838,"src":"6308:3:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6290:22:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17872,"name":"active","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17830,"src":"6315:6:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6290:31:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17874,"nodeType":"ExpressionStatement","src":"6290:31:69"},{"eventCall":{"arguments":[{"id":17876,"name":"updateType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17828,"src":"6366:10:69","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17877,"name":"previousActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17856,"src":"6378:14:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17878,"name":"active","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17830,"src":"6394:6:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":17875,"name":"UpdateTypeActiveStatusChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16614,"src":"6336:29:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_bool_$_t_bool_$returns$__$","typeString":"function (string memory,bool,bool)"}},"id":17879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6336:65:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17880,"nodeType":"EmitStatement","src":"6331:70:69"}]},"documentation":{"id":17826,"nodeType":"StructuredDocumentation","src":"5219:617:69","text":" @notice Sets the active status of an existing update type\n @param updateType The update type to set active status for\n @param active True to activate, false to deactivate\n @custom:access Controlled by AccessControlManager\n @custom:error Throws UpdateTypeNotFound if update type doesn't exist\n @custom:error Throws UpdateTypeStatusUnchanged if status is already set to the desired value\n @custom:error Throws Unauthorized if caller is not allowed by AccessControlManager\n @custom:event Emits UpdateTypeActiveStatusChanged when status is successfully changed"},"functionSelector":"ec1930b0","id":17882,"implemented":true,"kind":"function","modifiers":[],"name":"setUpdateTypeActive","nameLocation":"5850:19:69","nodeType":"FunctionDefinition","parameters":{"id":17831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17828,"mutability":"mutable","name":"updateType","nameLocation":"5884:10:69","nodeType":"VariableDeclaration","scope":17882,"src":"5870:24:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17827,"name":"string","nodeType":"ElementaryTypeName","src":"5870:6:69","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17830,"mutability":"mutable","name":"active","nameLocation":"5901:6:69","nodeType":"VariableDeclaration","scope":17882,"src":"5896:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17829,"name":"bool","nodeType":"ElementaryTypeName","src":"5896:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5869:39:69"},"returnParameters":{"id":17832,"nodeType":"ParameterList","parameters":[],"src":"5918:0:69"},"scope":18316,"src":"5841:567:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[16782],"body":{"id":17912,"nodeType":"Block","src":"7603:106:69","statements":[{"expression":{"arguments":[{"id":17903,"name":"referenceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17885,"src":"7628:11:69","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17904,"name":"newValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17887,"src":"7641:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":17905,"name":"updateType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17889,"src":"7651:10:69","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17906,"name":"market","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17891,"src":"7663:6:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17907,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17893,"src":"7671:6:69","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},{"id":17908,"name":"dstEid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17895,"src":"7679:6:69","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":17909,"name":"additionalData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17897,"src":"7687:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint96","typeString":"uint96"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17902,"name":"_publishUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18196,"src":"7613:14:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$_t_address_$_t_uint96_$_t_uint32_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (string memory,bytes memory,string memory,address,uint96,uint32,bytes memory)"}},"id":17910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7613:89:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17911,"nodeType":"ExpressionStatement","src":"7613:89:69"}]},"documentation":{"id":17883,"nodeType":"StructuredDocumentation","src":"6414:911:69","text":" @notice Publishes a new risk parameter update\n @param referenceId An external reference ID associated with the update\n @param newValue The new value of the risk parameter being updated\n @param updateType Type of update performed, must be previously authorized\n @param market Address for market of the parameter update\n @param poolId Pool identifier for eMode-style collateral configuration (0 for regular markets)\n @param dstEid Destination endpoint ID for cross-chain routing\n @param additionalData Additional data for the update\n @custom:error Throws SenderNotAuthorized if caller is not an authorized sender\n @custom:error Throws UpdateTypeNotActive if update type is not active\n @custom:error Throws ZeroAddressNotAllowed if market is zero address\n @custom:event Emits UpdatePublished when update is successfully published"},"functionSelector":"87d7f21f","id":17913,"implemented":true,"kind":"function","modifiers":[{"id":17900,"kind":"modifierInvocation","modifierName":{"id":17899,"name":"onlyAuthorized","nameLocations":["7588:14:69"],"nodeType":"IdentifierPath","referencedDeclaration":17678,"src":"7588:14:69"},"nodeType":"ModifierInvocation","src":"7588:14:69"}],"name":"publishRiskParameterUpdate","nameLocation":"7339:26:69","nodeType":"FunctionDefinition","parameters":{"id":17898,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17885,"mutability":"mutable","name":"referenceId","nameLocation":"7389:11:69","nodeType":"VariableDeclaration","scope":17913,"src":"7375:25:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17884,"name":"string","nodeType":"ElementaryTypeName","src":"7375:6:69","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17887,"mutability":"mutable","name":"newValue","nameLocation":"7423:8:69","nodeType":"VariableDeclaration","scope":17913,"src":"7410:21:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":17886,"name":"bytes","nodeType":"ElementaryTypeName","src":"7410:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":17889,"mutability":"mutable","name":"updateType","nameLocation":"7455:10:69","nodeType":"VariableDeclaration","scope":17913,"src":"7441:24:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17888,"name":"string","nodeType":"ElementaryTypeName","src":"7441:6:69","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17891,"mutability":"mutable","name":"market","nameLocation":"7483:6:69","nodeType":"VariableDeclaration","scope":17913,"src":"7475:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17890,"name":"address","nodeType":"ElementaryTypeName","src":"7475:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17893,"mutability":"mutable","name":"poolId","nameLocation":"7506:6:69","nodeType":"VariableDeclaration","scope":17913,"src":"7499:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":17892,"name":"uint96","nodeType":"ElementaryTypeName","src":"7499:6:69","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":17895,"mutability":"mutable","name":"dstEid","nameLocation":"7529:6:69","nodeType":"VariableDeclaration","scope":17913,"src":"7522:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":17894,"name":"uint32","nodeType":"ElementaryTypeName","src":"7522:6:69","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":17897,"mutability":"mutable","name":"additionalData","nameLocation":"7558:14:69","nodeType":"VariableDeclaration","scope":17913,"src":"7545:27:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":17896,"name":"bytes","nodeType":"ElementaryTypeName","src":"7545:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7365:213:69"},"returnParameters":{"id":17901,"nodeType":"ParameterList","parameters":[],"src":"7603:0:69"},"scope":18316,"src":"7330:379:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[16807],"body":{"id":18019,"nodeType":"Block","src":"9111:718:69","statements":[{"assignments":[17941],"declarations":[{"constant":false,"id":17941,"mutability":"mutable","name":"length","nameLocation":"9129:6:69","nodeType":"VariableDeclaration","scope":18019,"src":"9121:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17940,"name":"uint256","nodeType":"ElementaryTypeName","src":"9121:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17944,"initialValue":{"expression":{"id":17942,"name":"referenceIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17917,"src":"9138:12:69","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":17943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9151:6:69","memberName":"length","nodeType":"MemberAccess","src":"9138:19:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9121:36:69"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17945,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17941,"src":"9184:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":17946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9194:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9184:11:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17948,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17941,"src":"9211:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":17949,"name":"newValues","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17920,"src":"9221:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":17950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9231:6:69","memberName":"length","nodeType":"MemberAccess","src":"9221:16:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9211:26:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9184:53:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17953,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17941,"src":"9253:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":17954,"name":"updateTypes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17923,"src":"9263:11:69","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":17955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9275:6:69","memberName":"length","nodeType":"MemberAccess","src":"9263:18:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9253:28:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9184:97:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17958,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17941,"src":"9297:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":17959,"name":"markets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17926,"src":"9307:7:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":17960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9315:6:69","memberName":"length","nodeType":"MemberAccess","src":"9307:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9297:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9184:137:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17963,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17941,"src":"9337:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":17964,"name":"poolIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17929,"src":"9347:7:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint96_$dyn_memory_ptr","typeString":"uint96[] memory"}},"id":17965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9355:6:69","memberName":"length","nodeType":"MemberAccess","src":"9347:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9337:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9184:177:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17968,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17941,"src":"9377:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":17969,"name":"dstEid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17932,"src":"9387:6:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_memory_ptr","typeString":"uint32[] memory"}},"id":17970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9394:6:69","memberName":"length","nodeType":"MemberAccess","src":"9387:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9377:23:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9184:216:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17973,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17941,"src":"9416:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":17974,"name":"additionalData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17935,"src":"9426:14:69","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":17975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9441:6:69","memberName":"length","nodeType":"MemberAccess","src":"9426:21:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9416:31:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9184:263:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17982,"nodeType":"IfStatement","src":"9167:344:69","trueBody":{"id":17981,"nodeType":"Block","src":"9458:53:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17978,"name":"ArrayLengthMismatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16644,"src":"9479:19:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9479:21:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17980,"nodeType":"RevertStatement","src":"9472:28:69"}]}},{"body":{"id":18017,"nodeType":"Block","src":"9557:266:69","statements":[{"expression":{"arguments":[{"baseExpression":{"id":17994,"name":"referenceIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17917,"src":"9603:12:69","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":17996,"indexExpression":{"id":17995,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17984,"src":"9616:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9603:15:69","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"baseExpression":{"id":17997,"name":"newValues","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17920,"src":"9636:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":17999,"indexExpression":{"id":17998,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17984,"src":"9646:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9636:12:69","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"baseExpression":{"id":18000,"name":"updateTypes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17923,"src":"9666:11:69","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":18002,"indexExpression":{"id":18001,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17984,"src":"9678:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9666:14:69","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"baseExpression":{"id":18003,"name":"markets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17926,"src":"9698:7:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":18005,"indexExpression":{"id":18004,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17984,"src":"9706:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9698:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":18006,"name":"poolIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17929,"src":"9726:7:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint96_$dyn_memory_ptr","typeString":"uint96[] memory"}},"id":18008,"indexExpression":{"id":18007,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17984,"src":"9734:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9726:10:69","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},{"baseExpression":{"id":18009,"name":"dstEid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17932,"src":"9754:6:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_memory_ptr","typeString":"uint32[] memory"}},"id":18011,"indexExpression":{"id":18010,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17984,"src":"9761:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9754:9:69","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"baseExpression":{"id":18012,"name":"additionalData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17935,"src":"9781:14:69","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":18014,"indexExpression":{"id":18013,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17984,"src":"9796:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9781:17:69","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint96","typeString":"uint96"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17993,"name":"_publishUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18196,"src":"9571:14:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$_t_address_$_t_uint96_$_t_uint32_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (string memory,bytes memory,string memory,address,uint96,uint32,bytes memory)"}},"id":18015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9571:241:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18016,"nodeType":"ExpressionStatement","src":"9571:241:69"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17987,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17984,"src":"9540:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":17988,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17941,"src":"9544:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9540:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18018,"initializationExpression":{"assignments":[17984],"declarations":[{"constant":false,"id":17984,"mutability":"mutable","name":"i","nameLocation":"9533:1:69","nodeType":"VariableDeclaration","scope":18018,"src":"9525:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17983,"name":"uint256","nodeType":"ElementaryTypeName","src":"9525:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17986,"initialValue":{"hexValue":"30","id":17985,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9537:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9525:13:69"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":17991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"9552:3:69","subExpression":{"id":17990,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17984,"src":"9554:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17992,"nodeType":"ExpressionStatement","src":"9552:3:69"},"nodeType":"ForStatement","src":"9520:303:69"}]},"documentation":{"id":17914,"nodeType":"StructuredDocumentation","src":"7715:1073:69","text":" @notice Publishes multiple risk parameter updates in a single transaction\n @param referenceIds Array of external reference IDs\n @param newValues Array of new values for each update\n @param updateTypes Array of types for each update, all must be authorized\n @param markets Array of addresses for markets of the parameter updates\n @param poolIds Array of pool identifiers for eMode-style collateral configuration (0 for regular markets)\n @param dstEid Array of destination endpoint IDs for cross-chain routing\n @param additionalData Array of additional data for the updates\n @custom:error Throws SenderNotAuthorized if caller is not an authorized sender\n @custom:error Throws ArrayLengthMismatch if the array lengths do not match or if no updates are provided\n @custom:error Throws UpdateTypeNotActive if any update type is not active\n @custom:error Throws ZeroAddressNotAllowed if any market is zero address\n @custom:event Emits UpdatePublished for each successfully published update"},"functionSelector":"c4e1a280","id":18020,"implemented":true,"kind":"function","modifiers":[{"id":17938,"kind":"modifierInvocation","modifierName":{"id":17937,"name":"onlyAuthorized","nameLocations":["9096:14:69"],"nodeType":"IdentifierPath","referencedDeclaration":17678,"src":"9096:14:69"},"nodeType":"ModifierInvocation","src":"9096:14:69"}],"name":"publishBulkRiskParameterUpdates","nameLocation":"8802:31:69","nodeType":"FunctionDefinition","parameters":{"id":17936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17917,"mutability":"mutable","name":"referenceIds","nameLocation":"8859:12:69","nodeType":"VariableDeclaration","scope":18020,"src":"8843:28:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":17915,"name":"string","nodeType":"ElementaryTypeName","src":"8843:6:69","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":17916,"nodeType":"ArrayTypeName","src":"8843:8:69","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":17920,"mutability":"mutable","name":"newValues","nameLocation":"8896:9:69","nodeType":"VariableDeclaration","scope":18020,"src":"8881:24:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":17918,"name":"bytes","nodeType":"ElementaryTypeName","src":"8881:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":17919,"nodeType":"ArrayTypeName","src":"8881:7:69","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":17923,"mutability":"mutable","name":"updateTypes","nameLocation":"8931:11:69","nodeType":"VariableDeclaration","scope":18020,"src":"8915:27:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":17921,"name":"string","nodeType":"ElementaryTypeName","src":"8915:6:69","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":17922,"nodeType":"ArrayTypeName","src":"8915:8:69","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":17926,"mutability":"mutable","name":"markets","nameLocation":"8969:7:69","nodeType":"VariableDeclaration","scope":18020,"src":"8952:24:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":17924,"name":"address","nodeType":"ElementaryTypeName","src":"8952:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17925,"nodeType":"ArrayTypeName","src":"8952:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":17929,"mutability":"mutable","name":"poolIds","nameLocation":"9002:7:69","nodeType":"VariableDeclaration","scope":18020,"src":"8986:23:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint96_$dyn_memory_ptr","typeString":"uint96[]"},"typeName":{"baseType":{"id":17927,"name":"uint96","nodeType":"ElementaryTypeName","src":"8986:6:69","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"id":17928,"nodeType":"ArrayTypeName","src":"8986:8:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint96_$dyn_storage_ptr","typeString":"uint96[]"}},"visibility":"internal"},{"constant":false,"id":17932,"mutability":"mutable","name":"dstEid","nameLocation":"9035:6:69","nodeType":"VariableDeclaration","scope":18020,"src":"9019:22:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_memory_ptr","typeString":"uint32[]"},"typeName":{"baseType":{"id":17930,"name":"uint32","nodeType":"ElementaryTypeName","src":"9019:6:69","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":17931,"nodeType":"ArrayTypeName","src":"9019:8:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_storage_ptr","typeString":"uint32[]"}},"visibility":"internal"},{"constant":false,"id":17935,"mutability":"mutable","name":"additionalData","nameLocation":"9066:14:69","nodeType":"VariableDeclaration","scope":18020,"src":"9051:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":17933,"name":"bytes","nodeType":"ElementaryTypeName","src":"9051:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":17934,"nodeType":"ArrayTypeName","src":"9051:7:69","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"8833:253:69"},"returnParameters":{"id":17939,"nodeType":"ParameterList","parameters":[],"src":"9111:0:69"},"scope":18316,"src":"8793:1036:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[16719],"body":{"id":18060,"nodeType":"Block","src":"10390:263:69","statements":[{"assignments":[18032],"declarations":[{"constant":false,"id":18032,"mutability":"mutable","name":"updateTypeKey","nameLocation":"10408:13:69","nodeType":"VariableDeclaration","scope":18060,"src":"10400:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18031,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10400:7:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":18039,"initialValue":{"arguments":[{"arguments":[{"id":18036,"name":"updateType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18023,"src":"10440:10:69","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":18035,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10434:5:69","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":18034,"name":"bytes","nodeType":"ElementaryTypeName","src":"10434:5:69","typeDescriptions":{}}},"id":18037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10434:17:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18033,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"10424:9:69","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":18038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10424:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"10400:52:69"},{"assignments":[18041],"declarations":[{"constant":false,"id":18041,"mutability":"mutable","name":"updateId","nameLocation":"10470:8:69","nodeType":"VariableDeclaration","scope":18060,"src":"10462:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18040,"name":"uint256","nodeType":"ElementaryTypeName","src":"10462:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":18047,"initialValue":{"baseExpression":{"baseExpression":{"id":18042,"name":"latestUpdateIdByMarketAndType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17658,"src":"10481:29:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(bytes32 => mapping(address => uint256))"}},"id":18044,"indexExpression":{"id":18043,"name":"updateTypeKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18032,"src":"10511:13:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10481:44:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":18046,"indexExpression":{"id":18045,"name":"market","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18025,"src":"10526:6:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10481:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10462:71:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18048,"name":"updateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18041,"src":"10547:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":18049,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10559:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10547:13:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18055,"nodeType":"IfStatement","src":"10543:66:69","trueBody":{"id":18054,"nodeType":"Block","src":"10562:47:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":18051,"name":"NoUpdateFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16638,"src":"10583:13:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":18052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10583:15:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18053,"nodeType":"RevertStatement","src":"10576:22:69"}]}},{"expression":{"baseExpression":{"id":18056,"name":"updatesById","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17646,"src":"10625:11:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RiskParameterUpdate_$16568_storage_$","typeString":"mapping(uint256 => struct RiskParameterUpdate storage ref)"}},"id":18058,"indexExpression":{"id":18057,"name":"updateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18041,"src":"10637:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10625:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_storage","typeString":"struct RiskParameterUpdate storage ref"}},"functionReturnParameters":18030,"id":18059,"nodeType":"Return","src":"10618:28:69"}]},"documentation":{"id":18021,"nodeType":"StructuredDocumentation","src":"9835:395:69","text":" @notice Fetches the most recent update for a specific parameter in a specific market\n @param updateType The identifier for the parameter\n @param market The market identifier\n @return The most recent RiskParameterUpdate for the specified parameter and market\n @custom:error Throws NoUpdateFound if no update exists for the specified parameter and market"},"functionSelector":"f660fe69","id":18061,"implemented":true,"kind":"function","modifiers":[],"name":"getLatestUpdateByTypeAndMarket","nameLocation":"10244:30:69","nodeType":"FunctionDefinition","parameters":{"id":18026,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18023,"mutability":"mutable","name":"updateType","nameLocation":"10298:10:69","nodeType":"VariableDeclaration","scope":18061,"src":"10284:24:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18022,"name":"string","nodeType":"ElementaryTypeName","src":"10284:6:69","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18025,"mutability":"mutable","name":"market","nameLocation":"10326:6:69","nodeType":"VariableDeclaration","scope":18061,"src":"10318:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18024,"name":"address","nodeType":"ElementaryTypeName","src":"10318:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10274:64:69"},"returnParameters":{"id":18030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18029,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18061,"src":"10362:26:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate"},"typeName":{"id":18028,"nodeType":"UserDefinedTypeName","pathNode":{"id":18027,"name":"RiskParameterUpdate","nameLocations":["10362:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":16568,"src":"10362:19:69"},"referencedDeclaration":16568,"src":"10362:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_storage_ptr","typeString":"struct RiskParameterUpdate"}},"visibility":"internal"}],"src":"10361:28:69"},"scope":18316,"src":"10235:418:69","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[16738],"body":{"id":18086,"nodeType":"Block","src":"11009:150:69","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18070,"name":"updateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18064,"src":"11023:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":18071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11035:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11023:13:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18073,"name":"updateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18064,"src":"11040:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":18074,"name":"updateCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17631,"src":"11051:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11040:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11023:41:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18081,"nodeType":"IfStatement","src":"11019:96:69","trueBody":{"id":18080,"nodeType":"Block","src":"11066:49:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":18077,"name":"InvalidUpdateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16641,"src":"11087:15:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":18078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11087:17:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18079,"nodeType":"RevertStatement","src":"11080:24:69"}]}},{"expression":{"baseExpression":{"id":18082,"name":"updatesById","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17646,"src":"11131:11:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RiskParameterUpdate_$16568_storage_$","typeString":"mapping(uint256 => struct RiskParameterUpdate storage ref)"}},"id":18084,"indexExpression":{"id":18083,"name":"updateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18064,"src":"11143:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11131:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_storage","typeString":"struct RiskParameterUpdate storage ref"}},"functionReturnParameters":18069,"id":18085,"nodeType":"Return","src":"11124:28:69"}]},"documentation":{"id":18062,"nodeType":"StructuredDocumentation","src":"10659:253:69","text":" @notice Fetches the update for a provided updateId\n @param updateId Update ID\n @return The RiskParameterUpdate for the specified id\n @custom:error Throws InvalidUpdateId if updateId is 0 or greater than updateCounter"},"functionSelector":"37759b9a","id":18087,"implemented":true,"kind":"function","modifiers":[],"name":"getUpdateById","nameLocation":"10926:13:69","nodeType":"FunctionDefinition","parameters":{"id":18065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18064,"mutability":"mutable","name":"updateId","nameLocation":"10948:8:69","nodeType":"VariableDeclaration","scope":18087,"src":"10940:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18063,"name":"uint256","nodeType":"ElementaryTypeName","src":"10940:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10939:18:69"},"returnParameters":{"id":18069,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18068,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18087,"src":"10981:26:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate"},"typeName":{"id":18067,"nodeType":"UserDefinedTypeName","pathNode":{"id":18066,"name":"RiskParameterUpdate","nameLocations":["10981:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":16568,"src":"10981:19:69"},"referencedDeclaration":16568,"src":"10981:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_storage_ptr","typeString":"struct RiskParameterUpdate"}},"visibility":"internal"}],"src":"10980:28:69"},"scope":18316,"src":"10917:242:69","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":18195,"nodeType":"Block","src":"12252:1422:69","statements":[{"expression":{"arguments":[{"id":18106,"name":"market","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18096,"src":"12283:6:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18105,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10945,"src":"12262:20:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":18107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12262:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18108,"nodeType":"ExpressionStatement","src":"12262:28:69"},{"assignments":[18110],"declarations":[{"constant":false,"id":18110,"mutability":"mutable","name":"updateTypeKey","nameLocation":"12308:13:69","nodeType":"VariableDeclaration","scope":18195,"src":"12300:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18109,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12300:7:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":18117,"initialValue":{"arguments":[{"arguments":[{"id":18114,"name":"updateType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18094,"src":"12340:10:69","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":18113,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12334:5:69","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":18112,"name":"bytes","nodeType":"ElementaryTypeName","src":"12334:5:69","typeDescriptions":{}}},"id":18115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12334:17:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18111,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"12324:9:69","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":18116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12324:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"12300:52:69"},{"condition":{"id":18121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"12366:33:69","subExpression":{"baseExpression":{"id":18118,"name":"activeUpdateTypes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17640,"src":"12367:17:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":18120,"indexExpression":{"id":18119,"name":"updateTypeKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18110,"src":"12385:13:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12367:32:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18126,"nodeType":"IfStatement","src":"12362:92:69","trueBody":{"id":18125,"nodeType":"Block","src":"12401:53:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":18122,"name":"UpdateTypeNotActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16635,"src":"12422:19:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":18123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12422:21:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18124,"nodeType":"RevertStatement","src":"12415:28:69"}]}},{"assignments":[18128],"declarations":[{"constant":false,"id":18128,"mutability":"mutable","name":"newUpdateCounter","nameLocation":"12471:16:69","nodeType":"VariableDeclaration","scope":18195,"src":"12463:24:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18127,"name":"uint256","nodeType":"ElementaryTypeName","src":"12463:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":18131,"initialValue":{"id":18130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"12490:15:69","subExpression":{"id":18129,"name":"updateCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17631,"src":"12492:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12463:42:69"},{"assignments":[18133],"declarations":[{"constant":false,"id":18133,"mutability":"mutable","name":"previousUpdateId","nameLocation":"12523:16:69","nodeType":"VariableDeclaration","scope":18195,"src":"12515:24:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18132,"name":"uint256","nodeType":"ElementaryTypeName","src":"12515:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":18139,"initialValue":{"baseExpression":{"baseExpression":{"id":18134,"name":"latestUpdateIdByMarketAndType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17658,"src":"12542:29:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(bytes32 => mapping(address => uint256))"}},"id":18136,"indexExpression":{"id":18135,"name":"updateTypeKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18110,"src":"12572:13:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12542:44:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":18138,"indexExpression":{"id":18137,"name":"market","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18096,"src":"12587:6:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12542:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12515:79:69"},{"assignments":[18141],"declarations":[{"constant":false,"id":18141,"mutability":"mutable","name":"previousValue","nameLocation":"12617:13:69","nodeType":"VariableDeclaration","scope":18195,"src":"12604:26:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":18140,"name":"bytes","nodeType":"ElementaryTypeName","src":"12604:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":18146,"initialValue":{"expression":{"baseExpression":{"id":18142,"name":"updatesById","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17646,"src":"12633:11:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RiskParameterUpdate_$16568_storage_$","typeString":"mapping(uint256 => struct RiskParameterUpdate storage ref)"}},"id":18144,"indexExpression":{"id":18143,"name":"previousUpdateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18133,"src":"12645:16:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12633:29:69","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_storage","typeString":"struct RiskParameterUpdate storage ref"}},"id":18145,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12663:8:69","memberName":"newValue","nodeType":"MemberAccess","referencedDeclaration":16555,"src":"12633:38:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"VariableDeclarationStatement","src":"12604:67:69"},{"assignments":[18149],"declarations":[{"constant":false,"id":18149,"mutability":"mutable","name":"newUpdate","nameLocation":"12709:9:69","nodeType":"VariableDeclaration","scope":18195,"src":"12682:36:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate"},"typeName":{"id":18148,"nodeType":"UserDefinedTypeName","pathNode":{"id":18147,"name":"RiskParameterUpdate","nameLocations":["12682:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":16568,"src":"12682:19:69"},"referencedDeclaration":16568,"src":"12682:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_storage_ptr","typeString":"struct RiskParameterUpdate"}},"visibility":"internal"}],"id":18166,"initialValue":{"arguments":[{"id":18151,"name":"referenceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18090,"src":"12768:11:69","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18152,"name":"newUpdateCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18128,"src":"12803:16:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18153,"name":"market","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18096,"src":"12841:6:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18154,"name":"updateType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18094,"src":"12873:10:69","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18155,"name":"updateTypeKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18110,"src":"12912:13:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":18156,"name":"newValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18092,"src":"12949:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":18157,"name":"previousValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18141,"src":"12986:13:69","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":18158,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"13024:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13030:9:69","memberName":"timestamp","nodeType":"MemberAccess","src":"13024:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":18160,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13064:3:69","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":18161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13068:6:69","memberName":"sender","nodeType":"MemberAccess","src":"13064:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18162,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18098,"src":"13096:6:69","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},{"id":18163,"name":"dstEid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18100,"src":"13127:6:69","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":18164,"name":"additionalData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18102,"src":"13163:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint96","typeString":"uint96"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18150,"name":"RiskParameterUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16568,"src":"12721:19:69","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RiskParameterUpdate_$16568_storage_ptr_$","typeString":"type(struct RiskParameterUpdate storage pointer)"}},"id":18165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12755:11:69","12793:8:69","12833:6:69","12861:10:69","12897:13:69","12939:8:69","12971:13:69","13013:9:69","13053:9:69","13088:6:69","13116:9:69","13147:14:69"],"names":["referenceId","updateId","market","updateType","updateTypeKey","newValue","previousValue","timestamp","publisher","poolId","destLzEid","additionalData"],"nodeType":"FunctionCall","src":"12721:467:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"nodeType":"VariableDeclarationStatement","src":"12682:506:69"},{"expression":{"id":18171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18167,"name":"updatesById","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17646,"src":"13198:11:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RiskParameterUpdate_$16568_storage_$","typeString":"mapping(uint256 => struct RiskParameterUpdate storage ref)"}},"id":18169,"indexExpression":{"id":18168,"name":"newUpdateCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18128,"src":"13210:16:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13198:29:69","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_storage","typeString":"struct RiskParameterUpdate storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":18170,"name":"newUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18149,"src":"13230:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"src":"13198:41:69","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_storage","typeString":"struct RiskParameterUpdate storage ref"}},"id":18172,"nodeType":"ExpressionStatement","src":"13198:41:69"},{"expression":{"id":18179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":18173,"name":"latestUpdateIdByMarketAndType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17658,"src":"13326:29:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(bytes32 => mapping(address => uint256))"}},"id":18176,"indexExpression":{"id":18174,"name":"updateTypeKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18110,"src":"13356:13:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13326:44:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":18177,"indexExpression":{"id":18175,"name":"market","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18096,"src":"13371:6:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13326:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":18178,"name":"newUpdateCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18128,"src":"13381:16:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13326:71:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18180,"nodeType":"ExpressionStatement","src":"13326:71:69"},{"eventCall":{"arguments":[{"id":18182,"name":"referenceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18090,"src":"13442:11:69","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18183,"name":"newUpdateCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18128,"src":"13467:16:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18184,"name":"market","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18096,"src":"13497:6:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18185,"name":"updateType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18094,"src":"13517:10:69","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18186,"name":"newValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18092,"src":"13541:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":18187,"name":"previousValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18141,"src":"13563:13:69","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":18188,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"13590:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13596:9:69","memberName":"timestamp","nodeType":"MemberAccess","src":"13590:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":18190,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13619:3:69","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":18191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13623:6:69","memberName":"sender","nodeType":"MemberAccess","src":"13619:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18192,"name":"additionalData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18102,"src":"13643:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18181,"name":"UpdatePublished","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16590,"src":"13413:15:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (string memory,uint256,address,string memory,bytes memory,bytes memory,uint256,address,bytes memory)"}},"id":18193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13413:254:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18194,"nodeType":"EmitStatement","src":"13408:259:69"}]},"documentation":{"id":18088,"nodeType":"StructuredDocumentation","src":"11165:836:69","text":" @notice Publishes a new risk parameter update internally\n @param referenceId An external reference ID associated with the update\n @param newValue The new value of the risk parameter being updated\n @param updateType Type of update performed, must be previously authorized\n @param market Address for market of the parameter update\n @param poolId Pool identifier for eMode-style collateral configuration (0 for regular markets)\n @param dstEid Destination endpoint ID for cross-chain routing\n @param additionalData Additional data for the update\n @custom:error Throws ZeroAddressNotAllowed if market is zero address\n @custom:error Throws UpdateTypeNotActive if update type is not active\n @custom:event Emits UpdatePublished when update is successfully published"},"id":18196,"implemented":true,"kind":"function","modifiers":[],"name":"_publishUpdate","nameLocation":"12015:14:69","nodeType":"FunctionDefinition","parameters":{"id":18103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18090,"mutability":"mutable","name":"referenceId","nameLocation":"12053:11:69","nodeType":"VariableDeclaration","scope":18196,"src":"12039:25:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18089,"name":"string","nodeType":"ElementaryTypeName","src":"12039:6:69","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18092,"mutability":"mutable","name":"newValue","nameLocation":"12087:8:69","nodeType":"VariableDeclaration","scope":18196,"src":"12074:21:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":18091,"name":"bytes","nodeType":"ElementaryTypeName","src":"12074:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":18094,"mutability":"mutable","name":"updateType","nameLocation":"12119:10:69","nodeType":"VariableDeclaration","scope":18196,"src":"12105:24:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18093,"name":"string","nodeType":"ElementaryTypeName","src":"12105:6:69","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18096,"mutability":"mutable","name":"market","nameLocation":"12147:6:69","nodeType":"VariableDeclaration","scope":18196,"src":"12139:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18095,"name":"address","nodeType":"ElementaryTypeName","src":"12139:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18098,"mutability":"mutable","name":"poolId","nameLocation":"12170:6:69","nodeType":"VariableDeclaration","scope":18196,"src":"12163:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":18097,"name":"uint96","nodeType":"ElementaryTypeName","src":"12163:6:69","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":18100,"mutability":"mutable","name":"dstEid","nameLocation":"12193:6:69","nodeType":"VariableDeclaration","scope":18196,"src":"12186:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":18099,"name":"uint32","nodeType":"ElementaryTypeName","src":"12186:6:69","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":18102,"mutability":"mutable","name":"additionalData","nameLocation":"12222:14:69","nodeType":"VariableDeclaration","scope":18196,"src":"12209:27:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":18101,"name":"bytes","nodeType":"ElementaryTypeName","src":"12209:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12029:213:69"},"returnParameters":{"id":18104,"nodeType":"ParameterList","parameters":[],"src":"12252:0:69"},"scope":18316,"src":"12006:1668:69","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[16661],"body":{"id":18205,"nodeType":"Block","src":"13898:45:69","statements":[{"expression":{"expression":{"id":18202,"name":"allUpdateTypes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17635,"src":"13915:14:69","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"id":18203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13930:6:69","memberName":"length","nodeType":"MemberAccess","src":"13915:21:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":18201,"id":18204,"nodeType":"Return","src":"13908:28:69"}]},"documentation":{"id":18197,"nodeType":"StructuredDocumentation","src":"13680:149:69","text":" @notice Returns the total number of update types in the allUpdateTypes array\n @return The length of the allUpdateTypes array"},"functionSelector":"592d3733","id":18206,"implemented":true,"kind":"function","modifiers":[],"name":"allUpdateTypesLength","nameLocation":"13843:20:69","nodeType":"FunctionDefinition","parameters":{"id":18198,"nodeType":"ParameterList","parameters":[],"src":"13863:2:69"},"returnParameters":{"id":18201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18200,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18206,"src":"13889:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18199,"name":"uint256","nodeType":"ElementaryTypeName","src":"13889:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13888:9:69"},"scope":18316,"src":"13834:109:69","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[16729],"body":{"id":18231,"nodeType":"Block","src":"14385:138:69","statements":[{"assignments":[18217],"declarations":[{"constant":false,"id":18217,"mutability":"mutable","name":"updateTypeKey","nameLocation":"14403:13:69","nodeType":"VariableDeclaration","scope":18231,"src":"14395:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18216,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14395:7:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":18224,"initialValue":{"arguments":[{"arguments":[{"id":18221,"name":"updateType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18209,"src":"14435:10:69","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":18220,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14429:5:69","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":18219,"name":"bytes","nodeType":"ElementaryTypeName","src":"14429:5:69","typeDescriptions":{}}},"id":18222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14429:17:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18218,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"14419:9:69","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":18223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14419:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"14395:52:69"},{"expression":{"baseExpression":{"baseExpression":{"id":18225,"name":"latestUpdateIdByMarketAndType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17658,"src":"14464:29:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(bytes32 => mapping(address => uint256))"}},"id":18227,"indexExpression":{"id":18226,"name":"updateTypeKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18217,"src":"14494:13:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14464:44:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":18229,"indexExpression":{"id":18228,"name":"market","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18211,"src":"14509:6:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14464:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":18215,"id":18230,"nodeType":"Return","src":"14457:59:69"}]},"documentation":{"id":18207,"nodeType":"StructuredDocumentation","src":"13949:293:69","text":" @notice Gets the latest update ID for a specific market and update type (string) combination\n @param updateType The update type string\n @param market The market address\n @return The latest update ID for the given market and update type, or 0 if none exists"},"functionSelector":"34496b5a","id":18232,"implemented":true,"kind":"function","modifiers":[],"name":"getLatestUpdateIdByTypeAndMarket","nameLocation":"14256:32:69","nodeType":"FunctionDefinition","parameters":{"id":18212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18209,"mutability":"mutable","name":"updateType","nameLocation":"14312:10:69","nodeType":"VariableDeclaration","scope":18232,"src":"14298:24:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18208,"name":"string","nodeType":"ElementaryTypeName","src":"14298:6:69","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18211,"mutability":"mutable","name":"market","nameLocation":"14340:6:69","nodeType":"VariableDeclaration","scope":18232,"src":"14332:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18210,"name":"address","nodeType":"ElementaryTypeName","src":"14332:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14288:64:69"},"returnParameters":{"id":18215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18214,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18232,"src":"14376:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18213,"name":"uint256","nodeType":"ElementaryTypeName","src":"14376:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14375:9:69"},"scope":18316,"src":"14247:276:69","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[16676],"body":{"id":18253,"nodeType":"Block","src":"14819:98:69","statements":[{"assignments":[18241],"declarations":[{"constant":false,"id":18241,"mutability":"mutable","name":"key","nameLocation":"14837:3:69","nodeType":"VariableDeclaration","scope":18253,"src":"14829:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18240,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14829:7:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":18248,"initialValue":{"arguments":[{"arguments":[{"id":18245,"name":"updateType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18235,"src":"14859:10:69","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":18244,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14853:5:69","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":18243,"name":"bytes","nodeType":"ElementaryTypeName","src":"14853:5:69","typeDescriptions":{}}},"id":18246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14853:17:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18242,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"14843:9:69","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":18247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14843:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"14829:42:69"},{"expression":{"baseExpression":{"id":18249,"name":"activeUpdateTypes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17640,"src":"14888:17:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":18251,"indexExpression":{"id":18250,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18241,"src":"14906:3:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14888:22:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":18239,"id":18252,"nodeType":"Return","src":"14881:29:69"}]},"documentation":{"id":18233,"nodeType":"StructuredDocumentation","src":"14529:200:69","text":" @notice Checks if a given update type is currently active.\n @param updateType The update type string to check\n @return True if the update type is active, false otherwise"},"functionSelector":"986576fa","id":18254,"implemented":true,"kind":"function","modifiers":[],"name":"getActiveUpdateTypes","nameLocation":"14743:20:69","nodeType":"FunctionDefinition","parameters":{"id":18236,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18235,"mutability":"mutable","name":"updateType","nameLocation":"14778:10:69","nodeType":"VariableDeclaration","scope":18254,"src":"14764:24:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18234,"name":"string","nodeType":"ElementaryTypeName","src":"14764:6:69","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"14763:26:69"},"returnParameters":{"id":18239,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18238,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18254,"src":"14813:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18237,"name":"bool","nodeType":"ElementaryTypeName","src":"14813:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14812:6:69"},"scope":18316,"src":"14734:183:69","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[16668],"body":{"id":18263,"nodeType":"Block","src":"15127:38:69","statements":[{"expression":{"id":18261,"name":"allUpdateTypes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17635,"src":"15144:14:69","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"functionReturnParameters":18260,"id":18262,"nodeType":"Return","src":"15137:21:69"}]},"documentation":{"id":18255,"nodeType":"StructuredDocumentation","src":"14923:130:69","text":" @notice Returns all update types in the allUpdateTypes array\n @return An array of all update type strings"},"functionSelector":"c030ce7b","id":18264,"implemented":true,"kind":"function","modifiers":[],"name":"getAllUpdateTypes","nameLocation":"15067:17:69","nodeType":"FunctionDefinition","parameters":{"id":18256,"nodeType":"ParameterList","parameters":[],"src":"15084:2:69"},"returnParameters":{"id":18260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18259,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18264,"src":"15110:15:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":18257,"name":"string","nodeType":"ElementaryTypeName","src":"15110:6:69","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":18258,"nodeType":"ArrayTypeName","src":"15110:8:69","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"15109:17:69"},"scope":18316,"src":"15058:107:69","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":18305,"nodeType":"Block","src":"15477:249:69","statements":[{"assignments":[18273],"declarations":[{"constant":false,"id":18273,"mutability":"mutable","name":"length","nameLocation":"15495:6:69","nodeType":"VariableDeclaration","scope":18305,"src":"15487:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18272,"name":"uint256","nodeType":"ElementaryTypeName","src":"15487:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":18276,"initialValue":{"expression":{"id":18274,"name":"allUpdateTypes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17635,"src":"15504:14:69","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"id":18275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15519:6:69","memberName":"length","nodeType":"MemberAccess","src":"15504:21:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15487:38:69"},{"body":{"id":18301,"nodeType":"Block","src":"15572:126:69","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":18296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"baseExpression":{"id":18290,"name":"allUpdateTypes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17635,"src":"15606:14:69","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"id":18292,"indexExpression":{"id":18291,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18278,"src":"15621:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15606:17:69","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"id":18289,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15600:5:69","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":18288,"name":"bytes","nodeType":"ElementaryTypeName","src":"15600:5:69","typeDescriptions":{}}},"id":18293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15600:24:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"}],"id":18287,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"15590:9:69","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":18294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15590:35:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":18295,"name":"updateTypeKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18267,"src":"15629:13:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"15590:52:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18300,"nodeType":"IfStatement","src":"15586:102:69","trueBody":{"id":18299,"nodeType":"Block","src":"15644:44:69","statements":[{"expression":{"hexValue":"74727565","id":18297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"15669:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":18271,"id":18298,"nodeType":"Return","src":"15662:11:69"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18281,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18278,"src":"15555:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":18282,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18273,"src":"15559:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15555:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18302,"initializationExpression":{"assignments":[18278],"declarations":[{"constant":false,"id":18278,"mutability":"mutable","name":"i","nameLocation":"15548:1:69","nodeType":"VariableDeclaration","scope":18302,"src":"15540:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18277,"name":"uint256","nodeType":"ElementaryTypeName","src":"15540:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":18280,"initialValue":{"hexValue":"30","id":18279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15552:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"15540:13:69"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":18285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"15567:3:69","subExpression":{"id":18284,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18278,"src":"15569:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18286,"nodeType":"ExpressionStatement","src":"15567:3:69"},"nodeType":"ForStatement","src":"15535:163:69"},{"expression":{"hexValue":"66616c7365","id":18303,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"15714:5:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":18271,"id":18304,"nodeType":"Return","src":"15707:12:69"}]},"documentation":{"id":18265,"nodeType":"StructuredDocumentation","src":"15171:222:69","text":" @notice Checks if an update type exists in the allUpdateTypes array\n @param updateTypeKey The keccak256 hash of the update type string\n @return True if the update type exists, false otherwise"},"id":18306,"implemented":true,"kind":"function","modifiers":[],"name":"_updateTypeExists","nameLocation":"15407:17:69","nodeType":"FunctionDefinition","parameters":{"id":18268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18267,"mutability":"mutable","name":"updateTypeKey","nameLocation":"15433:13:69","nodeType":"VariableDeclaration","scope":18306,"src":"15425:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18266,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15425:7:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"15424:23:69"},"returnParameters":{"id":18271,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18270,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18306,"src":"15471:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18269,"name":"bool","nodeType":"ElementaryTypeName","src":"15471:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15470:6:69"},"scope":18316,"src":"15398:328:69","stateMutability":"view","virtual":false,"visibility":"internal"},{"baseFunctions":[6030],"body":{"id":18314,"nodeType":"Block","src":"15905:53:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":18311,"name":"RenounceOwnershipNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16647,"src":"15922:27:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":18312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15922:29:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18313,"nodeType":"RevertStatement","src":"15915:36:69"}]},"documentation":{"id":18307,"nodeType":"StructuredDocumentation","src":"15732:118:69","text":" @notice Disables renounceOwnership function\n @custom:error Throws RenounceOwnershipNotAllowed"},"functionSelector":"715018a6","id":18315,"implemented":true,"kind":"function","modifiers":[],"name":"renounceOwnership","nameLocation":"15864:17:69","nodeType":"FunctionDefinition","overrides":{"id":18309,"nodeType":"OverrideSpecifier","overrides":[],"src":"15896:8:69"},"parameters":{"id":18308,"nodeType":"ParameterList","parameters":[],"src":"15881:2:69"},"returnParameters":{"id":18310,"nodeType":"ParameterList","parameters":[],"src":"15905:0:69"},"scope":18316,"src":"15855:103:69","stateMutability":"pure","virtual":false,"visibility":"public"}],"scope":18317,"src":"456:15504:69","usedErrors":[10924,13739,16617,16620,16623,16626,16629,16632,16635,16638,16641,16644,16647],"usedEvents":[5873,5964,6094,13730,16590,16595,16600,16605,16614]}],"src":"32:15929:69"},"id":69},"contracts/RiskSteward/RiskStewardReceiver.sol":{"ast":{"absolutePath":"contracts/RiskSteward/RiskStewardReceiver.sol","exportedSymbols":{"AccessControlledV8":[13858],"ICorePoolComptroller":[20347],"IRiskOracle":[16808],"IRiskSteward":[16839],"IRiskStewardReceiver":[17139],"MessagingFee":[879],"OAppCoreUpgradeable":[2027],"OAppSenderUpgradeable":[2403],"OptionsBuilder":[2895],"Ownable2StepUpgradeable":[5947],"OwnableUpgradeable":[6079],"RiskParameterUpdate":[16568],"RiskStewardReceiver":[19931],"ensureNonzeroAddress":[10945]},"id":19932,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":18318,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:70"},{"absolutePath":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","id":18320,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19932,"sourceUnit":6080,"src":"66:103:70","symbolAliases":[{"foreign":{"id":18319,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6079,"src":"75:18:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol","id":18322,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19932,"sourceUnit":5948,"src":"170:113:70","symbolAliases":[{"foreign":{"id":18321,"name":"Ownable2StepUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5947,"src":"179:23:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/RiskSteward/Interfaces/IRiskSteward.sol","file":"./Interfaces/IRiskSteward.sol","id":18324,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19932,"sourceUnit":16840,"src":"284:61:70","symbolAliases":[{"foreign":{"id":18323,"name":"IRiskSteward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16839,"src":"293:12:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/RiskSteward/Interfaces/IRiskOracle.sol","file":"./Interfaces/IRiskOracle.sol","id":18327,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19932,"sourceUnit":16809,"src":"346:80:70","symbolAliases":[{"foreign":{"id":18325,"name":"IRiskOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16808,"src":"355:11:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":18326,"name":"RiskParameterUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16568,"src":"368:19:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/RiskSteward/Interfaces/IRiskStewardReceiver.sol","file":"./Interfaces/IRiskStewardReceiver.sol","id":18329,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19932,"sourceUnit":17140,"src":"427:77:70","symbolAliases":[{"foreign":{"id":18328,"name":"IRiskStewardReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17139,"src":"436:20:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/Governance/AccessControlledV8.sol","file":"../Governance/AccessControlledV8.sol","id":18331,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19932,"sourceUnit":13859,"src":"505:74:70","symbolAliases":[{"foreign":{"id":18330,"name":"AccessControlledV8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13858,"src":"514:18:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/validators.sol","file":"@venusprotocol/solidity-utilities/contracts/validators.sol","id":18333,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19932,"sourceUnit":10961,"src":"580:98:70","symbolAliases":[{"foreign":{"id":18332,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10945,"src":"589:20:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/ICorePoolComptroller.sol","file":"../interfaces/ICorePoolComptroller.sol","id":18335,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19932,"sourceUnit":20348,"src":"679:78:70","symbolAliases":[{"foreign":{"id":18334,"name":"ICorePoolComptroller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20347,"src":"688:20:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppSenderUpgradeable.sol","file":"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppSenderUpgradeable.sol","id":18338,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19932,"sourceUnit":2404,"src":"758:131:70","symbolAliases":[{"foreign":{"id":18336,"name":"OAppSenderUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2403,"src":"767:21:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":18337,"name":"MessagingFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":879,"src":"790:12:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/oapp-evm/contracts/oapp/libs/OptionsBuilder.sol","file":"@layerzerolabs/oapp-evm/contracts/oapp/libs/OptionsBuilder.sol","id":18340,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19932,"sourceUnit":2896,"src":"890:96:70","symbolAliases":[{"foreign":{"id":18339,"name":"OptionsBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2895,"src":"899:14:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppCoreUpgradeable.sol","file":"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppCoreUpgradeable.sol","id":18342,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19932,"sourceUnit":2028,"src":"987:113:70","symbolAliases":[{"foreign":{"id":18341,"name":"OAppCoreUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2027,"src":"996:19:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":18344,"name":"IRiskStewardReceiver","nameLocations":["1491:20:70"],"nodeType":"IdentifierPath","referencedDeclaration":17139,"src":"1491:20:70"},"id":18345,"nodeType":"InheritanceSpecifier","src":"1491:20:70"},{"baseName":{"id":18346,"name":"AccessControlledV8","nameLocations":["1513:18:70"],"nodeType":"IdentifierPath","referencedDeclaration":13858,"src":"1513:18:70"},"id":18347,"nodeType":"InheritanceSpecifier","src":"1513:18:70"},{"baseName":{"id":18348,"name":"OAppSenderUpgradeable","nameLocations":["1533:21:70"],"nodeType":"IdentifierPath","referencedDeclaration":2403,"src":"1533:21:70"},"id":18349,"nodeType":"InheritanceSpecifier","src":"1533:21:70"}],"canonicalName":"RiskStewardReceiver","contractDependencies":[],"contractKind":"contract","documentation":{"id":18343,"nodeType":"StructuredDocumentation","src":"1102:356:70","text":" @title RiskStewardReceiver\n @author Venus\n @notice Contract that reads updates from a Risk Oracle, validates them with timelock and debounce,\n         and either executes them locally via the configured RiskSteward or forwards them cross‑chain.\n @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion"},"fullyImplemented":true,"id":19931,"linearizedBaseContracts":[19931,2403,2027,13858,5947,6079,6574,6248,2466,17139],"name":"RiskStewardReceiver","nameLocation":"1468:19:70","nodeType":"ContractDefinition","nodes":[{"global":false,"id":18352,"libraryName":{"id":18350,"name":"OptionsBuilder","nameLocations":["1567:14:70"],"nodeType":"IdentifierPath","referencedDeclaration":2895,"src":"1567:14:70"},"nodeType":"UsingForDirective","src":"1561:31:70","typeName":{"id":18351,"name":"bytes","nodeType":"ElementaryTypeName","src":"1586:5:70","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},{"constant":true,"documentation":{"id":18353,"nodeType":"StructuredDocumentation","src":"1598:108:70","text":" @notice Period after which a proposed update becomes expired and can no longer be applied"},"functionSelector":"233dd0da","id":18356,"mutability":"constant","name":"UPDATE_EXPIRATION_TIME","nameLocation":"1735:22:70","nodeType":"VariableDeclaration","scope":19931,"src":"1711:55:70","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18354,"name":"uint256","nodeType":"ElementaryTypeName","src":"1711:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"32","id":18355,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1760:6:70","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_172800_by_1","typeString":"int_const 172800"},"value":"2"},"visibility":"public"},{"constant":false,"documentation":{"id":18357,"nodeType":"StructuredDocumentation","src":"1773:61:70","text":" @notice Source chain LayerZero endpoint ID"},"functionSelector":"4c213449","id":18359,"mutability":"immutable","name":"LAYER_ZERO_EID","nameLocation":"1863:14:70","nodeType":"VariableDeclaration","scope":19931,"src":"1839:38:70","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":18358,"name":"uint32","nodeType":"ElementaryTypeName","src":"1839:6:70","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"public"},{"constant":false,"documentation":{"id":18360,"nodeType":"StructuredDocumentation","src":"1884:59:70","text":" @notice The Risk Oracle contract address"},"functionSelector":"7dd8f522","id":18363,"mutability":"immutable","name":"RISK_ORACLE","nameLocation":"1977:11:70","nodeType":"VariableDeclaration","scope":19931,"src":"1948:40:70","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskOracle_$16808","typeString":"contract IRiskOracle"},"typeName":{"id":18362,"nodeType":"UserDefinedTypeName","pathNode":{"id":18361,"name":"IRiskOracle","nameLocations":["1948:11:70"],"nodeType":"IdentifierPath","referencedDeclaration":16808,"src":"1948:11:70"},"referencedDeclaration":16808,"src":"1948:11:70","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskOracle_$16808","typeString":"contract IRiskOracle"}},"visibility":"public"},{"constant":false,"documentation":{"id":18364,"nodeType":"StructuredDocumentation","src":"1995:37:70","text":" @notice Pause flag"},"functionSelector":"5c975abb","id":18366,"mutability":"mutable","name":"paused","nameLocation":"2049:6:70","nodeType":"VariableDeclaration","scope":19931,"src":"2037:18:70","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18365,"name":"bool","nodeType":"ElementaryTypeName","src":"2037:4:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"constant":false,"documentation":{"id":18367,"nodeType":"StructuredDocumentation","src":"2062:128:70","text":" @notice Mapping of supported risk configurations and their validation parameters (keyed by hashed updateType)"},"functionSelector":"af9e0fd3","id":18372,"mutability":"mutable","name":"riskParameterConfigs","nameLocation":"2238:20:70","nodeType":"VariableDeclaration","scope":19931,"src":"2195:63:70","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RiskParamConfig_$16859_storage_$","typeString":"mapping(bytes32 => struct IRiskStewardReceiver.RiskParamConfig)"},"typeName":{"id":18371,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":18368,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2203:7:70","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2195:35:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RiskParamConfig_$16859_storage_$","typeString":"mapping(bytes32 => struct IRiskStewardReceiver.RiskParamConfig)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":18370,"nodeType":"UserDefinedTypeName","pathNode":{"id":18369,"name":"RiskParamConfig","nameLocations":["2214:15:70"],"nodeType":"IdentifierPath","referencedDeclaration":16859,"src":"2214:15:70"},"referencedDeclaration":16859,"src":"2214:15:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16859_storage_ptr","typeString":"struct IRiskStewardReceiver.RiskParamConfig"}}},"visibility":"public"},{"constant":false,"documentation":{"id":18373,"nodeType":"StructuredDocumentation","src":"2265:80:70","text":" @notice Master storage of all registered updates by update ID"},"functionSelector":"b4c2f727","id":18378,"mutability":"mutable","name":"updates","nameLocation":"2403:7:70","nodeType":"VariableDeclaration","scope":19931,"src":"2350:60:70","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RegisteredUpdate_$16872_storage_$","typeString":"mapping(uint256 => struct IRiskStewardReceiver.RegisteredUpdate)"},"typeName":{"id":18377,"keyName":"updateId","keyNameLocation":"2366:8:70","keyType":{"id":18374,"name":"uint256","nodeType":"ElementaryTypeName","src":"2358:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2350:45:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RegisteredUpdate_$16872_storage_$","typeString":"mapping(uint256 => struct IRiskStewardReceiver.RegisteredUpdate)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":18376,"nodeType":"UserDefinedTypeName","pathNode":{"id":18375,"name":"RegisteredUpdate","nameLocations":["2378:16:70"],"nodeType":"IdentifierPath","referencedDeclaration":16872,"src":"2378:16:70"},"referencedDeclaration":16872,"src":"2378:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_RegisteredUpdate_$16872_storage_ptr","typeString":"struct IRiskStewardReceiver.RegisteredUpdate"}}},"visibility":"public"},{"constant":false,"documentation":{"id":18379,"nodeType":"StructuredDocumentation","src":"2417:85:70","text":" @notice Track last processed update ID per (updateTypeKey, market)"},"functionSelector":"513602e8","id":18385,"mutability":"mutable","name":"lastProcessedUpdate","nameLocation":"2569:19:70","nodeType":"VariableDeclaration","scope":19931,"src":"2507:81:70","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(bytes32 => mapping(address => uint256))"},"typeName":{"id":18384,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":18380,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2515:7:70","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2507:54:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(bytes32 => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":18383,"keyName":"market","keyNameLocation":"2542:6:70","keyType":{"id":18381,"name":"address","nodeType":"ElementaryTypeName","src":"2534:7:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2526:34:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":18382,"name":"uint256","nodeType":"ElementaryTypeName","src":"2552:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"public"},{"constant":false,"documentation":{"id":18386,"nodeType":"StructuredDocumentation","src":"2595:125:70","text":" @notice Track the current registered update per (updateType, market) to avoid registering multiple updates"},"functionSelector":"65bd691c","id":18392,"mutability":"mutable","name":"lastRegisteredUpdate","nameLocation":"2787:20:70","nodeType":"VariableDeclaration","scope":19931,"src":"2725:82:70","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(bytes32 => mapping(address => uint256))"},"typeName":{"id":18391,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":18387,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2733:7:70","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2725:54:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(bytes32 => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":18390,"keyName":"market","keyNameLocation":"2760:6:70","keyType":{"id":18388,"name":"address","nodeType":"ElementaryTypeName","src":"2752:7:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2744:34:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":18389,"name":"uint256","nodeType":"ElementaryTypeName","src":"2770:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"public"},{"constant":false,"documentation":{"id":18393,"nodeType":"StructuredDocumentation","src":"2814:76:70","text":" @notice Mapping from executor address to whitelist status"},"functionSelector":"fe2b3502","id":18397,"mutability":"mutable","name":"whitelistedExecutors","nameLocation":"2927:20:70","nodeType":"VariableDeclaration","scope":19931,"src":"2895:52:70","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":18396,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":18394,"name":"address","nodeType":"ElementaryTypeName","src":"2903:7:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2895:24:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":18395,"name":"bool","nodeType":"ElementaryTypeName","src":"2914:4:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"constant":false,"documentation":{"id":18398,"nodeType":"StructuredDocumentation","src":"2954:254:70","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"id":18402,"mutability":"mutable","name":"__gap","nameLocation":"3233:5:70","nodeType":"VariableDeclaration","scope":19931,"src":"3213:25:70","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$44_storage","typeString":"uint256[44]"},"typeName":{"baseType":{"id":18399,"name":"uint256","nodeType":"ElementaryTypeName","src":"3213:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18401,"length":{"hexValue":"3434","id":18400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3221:2:70","typeDescriptions":{"typeIdentifier":"t_rational_44_by_1","typeString":"int_const 44"},"value":"44"},"nodeType":"ArrayTypeName","src":"3213:11:70","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$44_storage_ptr","typeString":"uint256[44]"}},"visibility":"private"},{"body":{"id":18416,"nodeType":"Block","src":"3355:113:70","statements":[{"condition":{"id":18409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3369:33:70","subExpression":{"baseExpression":{"id":18405,"name":"whitelistedExecutors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18397,"src":"3370:20:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":18408,"indexExpression":{"expression":{"id":18406,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3391:3:70","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":18407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3395:6:70","memberName":"sender","nodeType":"MemberAccess","src":"3391:10:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3370:32:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18414,"nodeType":"IfStatement","src":"3365:86:70","trueBody":{"id":18413,"nodeType":"Block","src":"3404:47:70","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":18410,"name":"NotAnExecutor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17013,"src":"3425:13:70","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":18411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3425:15:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18412,"nodeType":"RevertStatement","src":"3418:22:70"}]}},{"id":18415,"nodeType":"PlaceholderStatement","src":"3460:1:70"}]},"documentation":{"id":18403,"nodeType":"StructuredDocumentation","src":"3245:69:70","text":" @dev Ensures the caller is a whitelisted executor."},"id":18417,"name":"onlyWhitelistedExecutors","nameLocation":"3328:24:70","nodeType":"ModifierDefinition","parameters":{"id":18404,"nodeType":"ParameterList","parameters":[],"src":"3352:2:70"},"src":"3319:149:70","virtual":false,"visibility":"internal"},{"body":{"id":18427,"nodeType":"Block","src":"3563:84:70","statements":[{"condition":{"id":18420,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18366,"src":"3577:6:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18425,"nodeType":"IfStatement","src":"3573:57:70","trueBody":{"id":18424,"nodeType":"Block","src":"3585:45:70","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":18421,"name":"PausedError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17033,"src":"3606:11:70","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":18422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3606:13:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18423,"nodeType":"RevertStatement","src":"3599:20:70"}]}},{"id":18426,"nodeType":"PlaceholderStatement","src":"3639:1:70"}]},"documentation":{"id":18418,"nodeType":"StructuredDocumentation","src":"3474:59:70","text":" @dev Ensures the contract is not paused."},"id":18428,"name":"whenNotPaused","nameLocation":"3547:13:70","nodeType":"ModifierDefinition","parameters":{"id":18419,"nodeType":"ParameterList","parameters":[],"src":"3560:2:70"},"src":"3538:109:70","virtual":false,"visibility":"internal"},{"body":{"id":18469,"nodeType":"Block","src":"4162:278:70","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":18441,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6229,"src":"4172:20:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":18442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4172:22:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18443,"nodeType":"ExpressionStatement","src":"4172:22:70"},{"expression":{"arguments":[{"id":18445,"name":"riskOracle_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18431,"src":"4225:11:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18444,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10945,"src":"4204:20:70","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":18446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4204:33:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18447,"nodeType":"ExpressionStatement","src":"4204:33:70"},{"expression":{"arguments":[{"id":18449,"name":"endpoint_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18433,"src":"4268:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18448,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10945,"src":"4247:20:70","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":18450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4247:31:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18451,"nodeType":"ExpressionStatement","src":"4247:31:70"},{"condition":{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":18454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18452,"name":"layerZeroLzEid_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18435,"src":"4292:15:70","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":18453,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4311:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4292:20:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18458,"nodeType":"IfStatement","src":"4288:54:70","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":18455,"name":"InvalidLayerZeroEid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17036,"src":"4321:19:70","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":18456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4321:21:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18457,"nodeType":"RevertStatement","src":"4314:28:70"}},{"expression":{"id":18463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18459,"name":"RISK_ORACLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18363,"src":"4353:11:70","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskOracle_$16808","typeString":"contract IRiskOracle"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":18461,"name":"riskOracle_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18431,"src":"4379:11:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18460,"name":"IRiskOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16808,"src":"4367:11:70","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRiskOracle_$16808_$","typeString":"type(contract IRiskOracle)"}},"id":18462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4367:24:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRiskOracle_$16808","typeString":"contract IRiskOracle"}},"src":"4353:38:70","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskOracle_$16808","typeString":"contract IRiskOracle"}},"id":18464,"nodeType":"ExpressionStatement","src":"4353:38:70"},{"expression":{"id":18467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18465,"name":"LAYER_ZERO_EID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18359,"src":"4401:14:70","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":18466,"name":"layerZeroLzEid_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18435,"src":"4418:15:70","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"4401:32:70","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":18468,"nodeType":"ExpressionStatement","src":"4401:32:70"}]},"documentation":{"id":18429,"nodeType":"StructuredDocumentation","src":"3653:397:70","text":" @notice Disables initializers and sets the Risk Oracle and LayerZero configuration.\n @param riskOracle_ The address of the Risk Oracle contract.\n @param endpoint_ The LayerZero endpoint contract used by the underlying `OAppUpgradeable`.\n @param layerZeroLzEid_ The LayerZero endpoint ID (EID) for this chain.\n @custom:oz-upgrades-unsafe-allow constructor"},"id":18470,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":18438,"name":"endpoint_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18433,"src":"4151:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":18439,"kind":"baseConstructorSpecifier","modifierName":{"id":18437,"name":"OAppCoreUpgradeable","nameLocations":["4131:19:70"],"nodeType":"IdentifierPath","referencedDeclaration":2027,"src":"4131:19:70"},"nodeType":"ModifierInvocation","src":"4131:30:70"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":18436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18431,"mutability":"mutable","name":"riskOracle_","nameLocation":"4075:11:70","nodeType":"VariableDeclaration","scope":18470,"src":"4067:19:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18430,"name":"address","nodeType":"ElementaryTypeName","src":"4067:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18433,"mutability":"mutable","name":"endpoint_","nameLocation":"4096:9:70","nodeType":"VariableDeclaration","scope":18470,"src":"4088:17:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18432,"name":"address","nodeType":"ElementaryTypeName","src":"4088:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18435,"mutability":"mutable","name":"layerZeroLzEid_","nameLocation":"4114:15:70","nodeType":"VariableDeclaration","scope":18470,"src":"4107:22:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":18434,"name":"uint32","nodeType":"ElementaryTypeName","src":"4107:6:70","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"4066:64:70"},"returnParameters":{"id":18440,"nodeType":"ParameterList","parameters":[],"src":"4162:0:70"},"scope":19931,"src":"4055:385:70","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":18488,"nodeType":"Block","src":"4764:84:70","statements":[{"expression":{"arguments":[{"id":18481,"name":"acm_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18473,"src":"4798:4:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18480,"name":"__AccessControlled_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13754,"src":"4774:23:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":18482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4774:29:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18483,"nodeType":"ExpressionStatement","src":"4774:29:70"},{"expression":{"arguments":[{"id":18485,"name":"delegate_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18475,"src":"4831:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18484,"name":"__OAppSender_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2238,"src":"4813:17:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":18486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4813:28:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18487,"nodeType":"ExpressionStatement","src":"4813:28:70"}]},"documentation":{"id":18471,"nodeType":"StructuredDocumentation","src":"4446:239:70","text":" @notice Initializes the contract with the Access Control Manager and OApp owner.\n @param acm_ The address of the Access Control Manager\n @param delegate_ The address of the OApp owner passed to `__OApp_init`."},"functionSelector":"485cc955","id":18489,"implemented":true,"kind":"function","modifiers":[{"id":18478,"kind":"modifierInvocation","modifierName":{"id":18477,"name":"initializer","nameLocations":["4752:11:70"],"nodeType":"IdentifierPath","referencedDeclaration":6150,"src":"4752:11:70"},"nodeType":"ModifierInvocation","src":"4752:11:70"}],"name":"initialize","nameLocation":"4699:10:70","nodeType":"FunctionDefinition","parameters":{"id":18476,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18473,"mutability":"mutable","name":"acm_","nameLocation":"4718:4:70","nodeType":"VariableDeclaration","scope":18489,"src":"4710:12:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18472,"name":"address","nodeType":"ElementaryTypeName","src":"4710:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18475,"mutability":"mutable","name":"delegate_","nameLocation":"4732:9:70","nodeType":"VariableDeclaration","scope":18489,"src":"4724:17:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18474,"name":"address","nodeType":"ElementaryTypeName","src":"4724:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4709:33:70"},"returnParameters":{"id":18479,"nodeType":"ParameterList","parameters":[],"src":"4764:0:70"},"scope":19931,"src":"4690:158:70","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":18493,"nodeType":"Block","src":"4969:2:70","statements":[]},"documentation":{"id":18490,"nodeType":"StructuredDocumentation","src":"4854:83:70","text":" @notice Accepts native tokens (e.g., BNB) sent to this contract."},"id":18494,"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":18491,"nodeType":"ParameterList","parameters":[],"src":"4949:2:70"},"returnParameters":{"id":18492,"nodeType":"ParameterList","parameters":[],"src":"4969:0:70"},"scope":19931,"src":"4942:29:70","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":18538,"nodeType":"Block","src":"5176:268:70","statements":[{"assignments":[18501],"declarations":[{"constant":false,"id":18501,"mutability":"mutable","name":"balance","nameLocation":"5194:7:70","nodeType":"VariableDeclaration","scope":18538,"src":"5186:15:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18500,"name":"uint256","nodeType":"ElementaryTypeName","src":"5186:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":18507,"initialValue":{"expression":{"arguments":[{"id":18504,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5212:4:70","typeDescriptions":{"typeIdentifier":"t_contract$_RiskStewardReceiver_$19931","typeString":"contract RiskStewardReceiver"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RiskStewardReceiver_$19931","typeString":"contract RiskStewardReceiver"}],"id":18503,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5204:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18502,"name":"address","nodeType":"ElementaryTypeName","src":"5204:7:70","typeDescriptions":{}}},"id":18505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5204:13:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":18506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5218:7:70","memberName":"balance","nodeType":"MemberAccess","src":"5204:21:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5186:39:70"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18508,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18501,"src":"5239:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":18509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5249:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5239:11:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18537,"nodeType":"IfStatement","src":"5235:203:70","trueBody":{"id":18536,"nodeType":"Block","src":"5252:186:70","statements":[{"assignments":[18512,null],"declarations":[{"constant":false,"id":18512,"mutability":"mutable","name":"success","nameLocation":"5272:7:70","nodeType":"VariableDeclaration","scope":18536,"src":"5267:12:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18511,"name":"bool","nodeType":"ElementaryTypeName","src":"5267:4:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":18523,"initialValue":{"arguments":[{"hexValue":"","id":18521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5325:2:70","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":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":18515,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6002,"src":"5293:5:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":18516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5293:7:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18514,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5285:8:70","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":18513,"name":"address","nodeType":"ElementaryTypeName","src":"5285:8:70","stateMutability":"payable","typeDescriptions":{}}},"id":18517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5285:16:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":18518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5302:4:70","memberName":"call","nodeType":"MemberAccess","src":"5285:21:70","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":18520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":18519,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18501,"src":"5315:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"5285:39:70","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":18522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5285:43:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5266:62:70"},{"condition":{"id":18525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5346:8:70","subExpression":{"id":18524,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18512,"src":"5347:7:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18529,"nodeType":"IfStatement","src":"5342:37:70","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":18526,"name":"TransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16980,"src":"5363:14:70","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":18527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5363:16:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18528,"nodeType":"RevertStatement","src":"5356:23:70"}},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":18531,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6002,"src":"5410:5:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":18532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5410:7:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18533,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18501,"src":"5419:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18530,"name":"SweepNative","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16970,"src":"5398:11:70","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":18534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5398:29:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18535,"nodeType":"EmitStatement","src":"5393:34:70"}]}}]},"documentation":{"id":18495,"nodeType":"StructuredDocumentation","src":"4977:152:70","text":" @notice Allows the owner to sweep leftover native tokens (e.g., BNB) from the contract.\n @custom:event Emits SweepNative event."},"functionSelector":"ab803a76","id":18539,"implemented":true,"kind":"function","modifiers":[{"id":18498,"kind":"modifierInvocation","modifierName":{"id":18497,"name":"onlyOwner","nameLocations":["5166:9:70"],"nodeType":"IdentifierPath","referencedDeclaration":5993,"src":"5166:9:70"},"nodeType":"ModifierInvocation","src":"5166:9:70"}],"name":"sweepNative","nameLocation":"5143:11:70","nodeType":"FunctionDefinition","parameters":{"id":18496,"nodeType":"ParameterList","parameters":[],"src":"5154:2:70"},"returnParameters":{"id":18499,"nodeType":"ParameterList","parameters":[],"src":"5176:0:70"},"scope":19931,"src":"5134:310:70","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":18566,"nodeType":"Block","src":"5723:217:70","statements":[{"expression":{"arguments":[{"hexValue":"73657450617573656428626f6f6c29","id":18546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5753:17:70","typeDescriptions":{"typeIdentifier":"t_stringliteral_16c38b3cfb9c835a5f950d73c15d045b565751e6b404363a0da2bb9837abd880","typeString":"literal_string \"setPaused(bool)\""},"value":"setPaused(bool)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_16c38b3cfb9c835a5f950d73c15d045b565751e6b404363a0da2bb9837abd880","typeString":"literal_string \"setPaused(bool)\""}],"id":18545,"name":"_checkAccessAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13857,"src":"5733:19:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":18547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5733:38:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18548,"nodeType":"ExpressionStatement","src":"5733:38:70"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18549,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18366,"src":"5785:6:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":18550,"name":"paused_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18542,"src":"5795:7:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5785:17:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18556,"nodeType":"IfStatement","src":"5781:77:70","trueBody":{"id":18555,"nodeType":"Block","src":"5804:54:70","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":18552,"name":"PauseStatusUnchanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17039,"src":"5825:20:70","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":18553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5825:22:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18554,"nodeType":"RevertStatement","src":"5818:29:70"}]}},{"eventCall":{"arguments":[{"id":18558,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18366,"src":"5891:6:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18559,"name":"paused_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18542,"src":"5899:7:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":18557,"name":"PauseStatusUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16977,"src":"5872:18:70","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bool_$_t_bool_$returns$__$","typeString":"function (bool,bool)"}},"id":18560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5872:35:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18561,"nodeType":"EmitStatement","src":"5867:40:70"},{"expression":{"id":18564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18562,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18366,"src":"5917:6:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":18563,"name":"paused_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18542,"src":"5926:7:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5917:16:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18565,"nodeType":"ExpressionStatement","src":"5917:16:70"}]},"documentation":{"id":18540,"nodeType":"StructuredDocumentation","src":"5450:226:70","text":" @notice Sets the pause status for `processUpdate`.\n @param paused_ True to pause, false to unpause\n @custom:access Controlled by AccessControlManager\n @custom:event Emits PauseStatusUpdated"},"functionSelector":"16c38b3c","id":18567,"implemented":true,"kind":"function","modifiers":[],"name":"setPaused","nameLocation":"5690:9:70","nodeType":"FunctionDefinition","parameters":{"id":18543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18542,"mutability":"mutable","name":"paused_","nameLocation":"5705:7:70","nodeType":"VariableDeclaration","scope":18567,"src":"5700:12:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18541,"name":"bool","nodeType":"ElementaryTypeName","src":"5700:4:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5699:14:70"},"returnParameters":{"id":18544,"nodeType":"ParameterList","parameters":[],"src":"5723:0:70"},"scope":19931,"src":"5681:259:70","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[17085],"body":{"id":18667,"nodeType":"Block","src":"6938:1092:70","statements":[{"expression":{"arguments":[{"hexValue":"7365745269736b506172616d65746572436f6e66696728737472696e672c616464726573732c75696e743235362c75696e7432353629","id":18580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6968:56:70","typeDescriptions":{"typeIdentifier":"t_stringliteral_c2a23c84235551dc55a19281ac54c868e0b8478ae30c0d4cf27fe86e94a1d648","typeString":"literal_string \"setRiskParameterConfig(string,address,uint256,uint256)\""},"value":"setRiskParameterConfig(string,address,uint256,uint256)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c2a23c84235551dc55a19281ac54c868e0b8478ae30c0d4cf27fe86e94a1d648","typeString":"literal_string \"setRiskParameterConfig(string,address,uint256,uint256)\""}],"id":18579,"name":"_checkAccessAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13857,"src":"6948:19:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":18581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6948:77:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18582,"nodeType":"ExpressionStatement","src":"6948:77:70"},{"expression":{"arguments":[{"id":18584,"name":"riskSteward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18572,"src":"7056:11:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18583,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10945,"src":"7035:20:70","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":18585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7035:33:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18586,"nodeType":"ExpressionStatement","src":"7035:33:70"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":18589,"name":"updateType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18570,"src":"7089:10:70","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":18588,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7083:5:70","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":18587,"name":"bytes","nodeType":"ElementaryTypeName","src":"7083:5:70","typeDescriptions":{}}},"id":18590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7083:17:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":18591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7101:6:70","memberName":"length","nodeType":"MemberAccess","src":"7083:24:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":18592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7111:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7083:29:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":18596,"name":"updateType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18570,"src":"7122:10:70","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":18595,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7116:5:70","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":18594,"name":"bytes","nodeType":"ElementaryTypeName","src":"7116:5:70","typeDescriptions":{}}},"id":18597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7116:17:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":18598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7134:6:70","memberName":"length","nodeType":"MemberAccess","src":"7116:24:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3634","id":18599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7143:2:70","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"7116:29:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7083:62:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18606,"nodeType":"IfStatement","src":"7079:119:70","trueBody":{"id":18605,"nodeType":"Block","src":"7147:51:70","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":18602,"name":"InvalidUpdateType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16998,"src":"7168:17:70","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":18603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7168:19:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18604,"nodeType":"RevertStatement","src":"7161:26:70"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18607,"name":"debounce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18574,"src":"7211:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":18608,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7223:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7211:13:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18614,"nodeType":"IfStatement","src":"7207:68:70","trueBody":{"id":18613,"nodeType":"Block","src":"7226:49:70","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":18610,"name":"InvalidDebounce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17001,"src":"7247:15:70","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":18611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7247:17:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18612,"nodeType":"RevertStatement","src":"7240:24:70"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18615,"name":"timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18576,"src":"7288:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":18616,"name":"UPDATE_EXPIRATION_TIME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18356,"src":"7300:22:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7288:34:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18622,"nodeType":"IfStatement","src":"7284:89:70","trueBody":{"id":18621,"nodeType":"Block","src":"7324:49:70","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":18618,"name":"InvalidTimelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17004,"src":"7345:15:70","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":18619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7345:17:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18620,"nodeType":"RevertStatement","src":"7338:24:70"}]}},{"assignments":[18624],"declarations":[{"constant":false,"id":18624,"mutability":"mutable","name":"key","nameLocation":"7391:3:70","nodeType":"VariableDeclaration","scope":18667,"src":"7383:11:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18623,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7383:7:70","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":18631,"initialValue":{"arguments":[{"arguments":[{"id":18628,"name":"updateType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18570,"src":"7413:10:70","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":18627,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7407:5:70","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":18626,"name":"bytes","nodeType":"ElementaryTypeName","src":"7407:5:70","typeDescriptions":{}}},"id":18629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7407:17:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":18625,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7397:9:70","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":18630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7397:28:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7383:42:70"},{"assignments":[18634],"declarations":[{"constant":false,"id":18634,"mutability":"mutable","name":"previousConfig","nameLocation":"7458:14:70","nodeType":"VariableDeclaration","scope":18667,"src":"7435:37:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16859_memory_ptr","typeString":"struct IRiskStewardReceiver.RiskParamConfig"},"typeName":{"id":18633,"nodeType":"UserDefinedTypeName","pathNode":{"id":18632,"name":"RiskParamConfig","nameLocations":["7435:15:70"],"nodeType":"IdentifierPath","referencedDeclaration":16859,"src":"7435:15:70"},"referencedDeclaration":16859,"src":"7435:15:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16859_storage_ptr","typeString":"struct IRiskStewardReceiver.RiskParamConfig"}},"visibility":"internal"}],"id":18638,"initialValue":{"baseExpression":{"id":18635,"name":"riskParameterConfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18372,"src":"7475:20:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RiskParamConfig_$16859_storage_$","typeString":"mapping(bytes32 => struct IRiskStewardReceiver.RiskParamConfig storage ref)"}},"id":18637,"indexExpression":{"id":18636,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18624,"src":"7496:3:70","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7475:25:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16859_storage","typeString":"struct IRiskStewardReceiver.RiskParamConfig storage ref"}},"nodeType":"VariableDeclarationStatement","src":"7435:65:70"},{"expression":{"id":18648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18639,"name":"riskParameterConfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18372,"src":"7511:20:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RiskParamConfig_$16859_storage_$","typeString":"mapping(bytes32 => struct IRiskStewardReceiver.RiskParamConfig storage ref)"}},"id":18641,"indexExpression":{"id":18640,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18624,"src":"7532:3:70","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7511:25:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16859_storage","typeString":"struct IRiskStewardReceiver.RiskParamConfig storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"74727565","id":18643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7577:4:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":18644,"name":"riskSteward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18572,"src":"7608:11:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18645,"name":"debounce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18574,"src":"7643:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18646,"name":"timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18576,"src":"7675:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18642,"name":"RiskParamConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16859,"src":"7539:15:70","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RiskParamConfig_$16859_storage_ptr_$","typeString":"type(struct IRiskStewardReceiver.RiskParamConfig storage pointer)"}},"id":18647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["7569:6:70","7595:11:70","7633:8:70","7665:8:70"],"names":["active","riskSteward","debounce","timelock"],"nodeType":"FunctionCall","src":"7539:155:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16859_memory_ptr","typeString":"struct IRiskStewardReceiver.RiskParamConfig memory"}},"src":"7511:183:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16859_storage","typeString":"struct IRiskStewardReceiver.RiskParamConfig storage ref"}},"id":18649,"nodeType":"ExpressionStatement","src":"7511:183:70"},{"eventCall":{"arguments":[{"id":18651,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18624,"src":"7750:3:70","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":18652,"name":"updateType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18570,"src":"7767:10:70","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"expression":{"id":18653,"name":"previousConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18634,"src":"7791:14:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16859_memory_ptr","typeString":"struct IRiskStewardReceiver.RiskParamConfig memory"}},"id":18654,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7806:11:70","memberName":"riskSteward","nodeType":"MemberAccess","referencedDeclaration":16858,"src":"7791:26:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18655,"name":"riskSteward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18572,"src":"7831:11:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":18656,"name":"previousConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18634,"src":"7856:14:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16859_memory_ptr","typeString":"struct IRiskStewardReceiver.RiskParamConfig memory"}},"id":18657,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7871:8:70","memberName":"debounce","nodeType":"MemberAccess","referencedDeclaration":16854,"src":"7856:23:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18658,"name":"debounce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18574,"src":"7893:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":18659,"name":"previousConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18634,"src":"7915:14:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16859_memory_ptr","typeString":"struct IRiskStewardReceiver.RiskParamConfig memory"}},"id":18660,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7930:8:70","memberName":"timelock","nodeType":"MemberAccess","referencedDeclaration":16856,"src":"7915:23:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18661,"name":"timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18576,"src":"7952:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":18662,"name":"previousConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18634,"src":"7974:14:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16859_memory_ptr","typeString":"struct IRiskStewardReceiver.RiskParamConfig memory"}},"id":18663,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7989:6:70","memberName":"active","nodeType":"MemberAccess","referencedDeclaration":16852,"src":"7974:21:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"74727565","id":18664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8009:4:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":18650,"name":"RiskParameterConfigUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16895,"src":"7710:26:70","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_string_memory_ptr_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_bool_$_t_bool_$returns$__$","typeString":"function (bytes32,string memory,address,address,uint256,uint256,uint256,uint256,bool,bool)"}},"id":18665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7710:313:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18666,"nodeType":"EmitStatement","src":"7705:318:70"}]},"documentation":{"id":18568,"nodeType":"StructuredDocumentation","src":"5946:823:70","text":" @notice Sets the risk parameter config for a given update type\n @param updateType The type of update to configure\n @param riskSteward The address for the risk steward contract responsible for processing the update\n @param debounce The debounce period for the update\n @param timelock The timelock period before the update can be executed\n @custom:access Controlled by AccessControlManager\n @custom:event Emits RiskParameterConfigUpdated\n @custom:error InvalidUpdateType if the update type string is empty\n @custom:error Throws InvalidDebounce if the debounce is 0\n @custom:error Throws InvalidTimelock if the timelock is greater than or equal to the expiration time\n @custom:error Throws ZeroAddressNotAllowed if the risk steward address is zero"},"functionSelector":"c2a23c84","id":18668,"implemented":true,"kind":"function","modifiers":[],"name":"setRiskParameterConfig","nameLocation":"6783:22:70","nodeType":"FunctionDefinition","parameters":{"id":18577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18570,"mutability":"mutable","name":"updateType","nameLocation":"6831:10:70","nodeType":"VariableDeclaration","scope":18668,"src":"6815:26:70","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":18569,"name":"string","nodeType":"ElementaryTypeName","src":"6815:6:70","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18572,"mutability":"mutable","name":"riskSteward","nameLocation":"6859:11:70","nodeType":"VariableDeclaration","scope":18668,"src":"6851:19:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18571,"name":"address","nodeType":"ElementaryTypeName","src":"6851:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18574,"mutability":"mutable","name":"debounce","nameLocation":"6888:8:70","nodeType":"VariableDeclaration","scope":18668,"src":"6880:16:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18573,"name":"uint256","nodeType":"ElementaryTypeName","src":"6880:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18576,"mutability":"mutable","name":"timelock","nameLocation":"6914:8:70","nodeType":"VariableDeclaration","scope":18668,"src":"6906:16:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18575,"name":"uint256","nodeType":"ElementaryTypeName","src":"6906:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6805:123:70"},"returnParameters":{"id":18578,"nodeType":"ParameterList","parameters":[],"src":"6938:0:70"},"scope":19931,"src":"6774:1256:70","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[17092],"body":{"id":18732,"nodeType":"Block","src":"8678:528:70","statements":[{"expression":{"arguments":[{"hexValue":"736574436f6e66696741637469766528737472696e672c626f6f6c29","id":18677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8708:30:70","typeDescriptions":{"typeIdentifier":"t_stringliteral_438653fea6a7489da497f9194432a5d33d481bce149364131507cddc24496561","typeString":"literal_string \"setConfigActive(string,bool)\""},"value":"setConfigActive(string,bool)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_438653fea6a7489da497f9194432a5d33d481bce149364131507cddc24496561","typeString":"literal_string \"setConfigActive(string,bool)\""}],"id":18676,"name":"_checkAccessAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13857,"src":"8688:19:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":18678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8688:51:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18679,"nodeType":"ExpressionStatement","src":"8688:51:70"},{"assignments":[18681],"declarations":[{"constant":false,"id":18681,"mutability":"mutable","name":"key","nameLocation":"8757:3:70","nodeType":"VariableDeclaration","scope":18732,"src":"8749:11:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18680,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8749:7:70","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":18688,"initialValue":{"arguments":[{"arguments":[{"id":18685,"name":"updateType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18671,"src":"8779:10:70","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":18684,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8773:5:70","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":18683,"name":"bytes","nodeType":"ElementaryTypeName","src":"8773:5:70","typeDescriptions":{}}},"id":18686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8773:17:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":18682,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8763:9:70","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":18687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8763:28:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"8749:42:70"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":18697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":18689,"name":"riskParameterConfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18372,"src":"8806:20:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RiskParamConfig_$16859_storage_$","typeString":"mapping(bytes32 => struct IRiskStewardReceiver.RiskParamConfig storage ref)"}},"id":18691,"indexExpression":{"id":18690,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18681,"src":"8827:3:70","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8806:25:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16859_storage","typeString":"struct IRiskStewardReceiver.RiskParamConfig storage ref"}},"id":18692,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8832:11:70","memberName":"riskSteward","nodeType":"MemberAccess","referencedDeclaration":16858,"src":"8806:37:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":18695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8855:1:70","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":18694,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8847:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18693,"name":"address","nodeType":"ElementaryTypeName","src":"8847:7:70","typeDescriptions":{}}},"id":18696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8847:10:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8806:51:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18702,"nodeType":"IfStatement","src":"8802:112:70","trueBody":{"id":18701,"nodeType":"Block","src":"8859:55:70","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":18698,"name":"UnsupportedUpdateType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16995,"src":"8880:21:70","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":18699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8880:23:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18700,"nodeType":"RevertStatement","src":"8873:30:70"}]}},{"assignments":[18704],"declarations":[{"constant":false,"id":18704,"mutability":"mutable","name":"previousActive","nameLocation":"8929:14:70","nodeType":"VariableDeclaration","scope":18732,"src":"8924:19:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18703,"name":"bool","nodeType":"ElementaryTypeName","src":"8924:4:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":18709,"initialValue":{"expression":{"baseExpression":{"id":18705,"name":"riskParameterConfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18372,"src":"8946:20:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RiskParamConfig_$16859_storage_$","typeString":"mapping(bytes32 => struct IRiskStewardReceiver.RiskParamConfig storage ref)"}},"id":18707,"indexExpression":{"id":18706,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18681,"src":"8967:3:70","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8946:25:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16859_storage","typeString":"struct IRiskStewardReceiver.RiskParamConfig storage ref"}},"id":18708,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8972:6:70","memberName":"active","nodeType":"MemberAccess","referencedDeclaration":16852,"src":"8946:32:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"8924:54:70"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18710,"name":"previousActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18704,"src":"8992:14:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":18711,"name":"active","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18673,"src":"9010:6:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8992:24:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18717,"nodeType":"IfStatement","src":"8988:85:70","trueBody":{"id":18716,"nodeType":"Block","src":"9018:55:70","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":18713,"name":"ConfigStatusUnchanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17042,"src":"9039:21:70","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":18714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9039:23:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18715,"nodeType":"RevertStatement","src":"9032:30:70"}]}},{"expression":{"id":18723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":18718,"name":"riskParameterConfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18372,"src":"9083:20:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RiskParamConfig_$16859_storage_$","typeString":"mapping(bytes32 => struct IRiskStewardReceiver.RiskParamConfig storage ref)"}},"id":18720,"indexExpression":{"id":18719,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18681,"src":"9104:3:70","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9083:25:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16859_storage","typeString":"struct IRiskStewardReceiver.RiskParamConfig storage ref"}},"id":18721,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9109:6:70","memberName":"active","nodeType":"MemberAccess","referencedDeclaration":16852,"src":"9083:32:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":18722,"name":"active","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18673,"src":"9118:6:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9083:41:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18724,"nodeType":"ExpressionStatement","src":"9083:41:70"},{"eventCall":{"arguments":[{"id":18726,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18681,"src":"9159:3:70","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":18727,"name":"updateType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18671,"src":"9164:10:70","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"id":18728,"name":"previousActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18704,"src":"9176:14:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18729,"name":"active","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18673,"src":"9192:6:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":18725,"name":"ConfigActiveUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16906,"src":"9139:19:70","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_string_memory_ptr_$_t_bool_$_t_bool_$returns$__$","typeString":"function (bytes32,string memory,bool,bool)"}},"id":18730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9139:60:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18731,"nodeType":"EmitStatement","src":"9134:65:70"}]},"documentation":{"id":18669,"nodeType":"StructuredDocumentation","src":"8036:562:70","text":" @notice Sets the active status of a risk parameter config\n @param updateType The type of update to configure\n @param active The active status to set\n @custom:access Controlled by AccessControlManager\n @custom:event Emits ConfigActiveUpdated with the update type hash, update type, previous active status, and the active status\n @custom:error Throws UnsupportedUpdateType if the update type is not supported\n @custom:error Throws ConfigStatusUnchanged if the active status is already set to the desired value"},"functionSelector":"438653fe","id":18733,"implemented":true,"kind":"function","modifiers":[],"name":"setConfigActive","nameLocation":"8612:15:70","nodeType":"FunctionDefinition","parameters":{"id":18674,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18671,"mutability":"mutable","name":"updateType","nameLocation":"8644:10:70","nodeType":"VariableDeclaration","scope":18733,"src":"8628:26:70","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":18670,"name":"string","nodeType":"ElementaryTypeName","src":"8628:6:70","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18673,"mutability":"mutable","name":"active","nameLocation":"8661:6:70","nodeType":"VariableDeclaration","scope":18733,"src":"8656:11:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18672,"name":"bool","nodeType":"ElementaryTypeName","src":"8656:4:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8627:41:70"},"returnParameters":{"id":18675,"nodeType":"ParameterList","parameters":[],"src":"8678:0:70"},"scope":19931,"src":"8603:603:70","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[17099],"body":{"id":18775,"nodeType":"Block","src":"9932:407:70","statements":[{"expression":{"arguments":[{"hexValue":"73657457686974656c69737465644578656375746f7228616464726573732c626f6f6c29","id":18742,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9962:38:70","typeDescriptions":{"typeIdentifier":"t_stringliteral_3aed7f318df6d17618f4cdbfb20fac54d0f99e436e8a979213a008234d813cf1","typeString":"literal_string \"setWhitelistedExecutor(address,bool)\""},"value":"setWhitelistedExecutor(address,bool)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3aed7f318df6d17618f4cdbfb20fac54d0f99e436e8a979213a008234d813cf1","typeString":"literal_string \"setWhitelistedExecutor(address,bool)\""}],"id":18741,"name":"_checkAccessAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13857,"src":"9942:19:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":18743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9942:59:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18744,"nodeType":"ExpressionStatement","src":"9942:59:70"},{"expression":{"arguments":[{"id":18746,"name":"executor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18736,"src":"10032:8:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18745,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10945,"src":"10011:20:70","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":18747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10011:30:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18748,"nodeType":"ExpressionStatement","src":"10011:30:70"},{"assignments":[18750],"declarations":[{"constant":false,"id":18750,"mutability":"mutable","name":"previousApproved","nameLocation":"10057:16:70","nodeType":"VariableDeclaration","scope":18775,"src":"10052:21:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18749,"name":"bool","nodeType":"ElementaryTypeName","src":"10052:4:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":18754,"initialValue":{"baseExpression":{"id":18751,"name":"whitelistedExecutors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18397,"src":"10076:20:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":18753,"indexExpression":{"id":18752,"name":"executor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18736,"src":"10097:8:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10076:30:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"10052:54:70"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18755,"name":"previousApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18750,"src":"10120:16:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":18756,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18738,"src":"10140:8:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10120:28:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18762,"nodeType":"IfStatement","src":"10116:91:70","trueBody":{"id":18761,"nodeType":"Block","src":"10150:57:70","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":18758,"name":"ExecutorStatusUnchanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17045,"src":"10171:23:70","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":18759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10171:25:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18760,"nodeType":"RevertStatement","src":"10164:32:70"}]}},{"expression":{"id":18767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18763,"name":"whitelistedExecutors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18397,"src":"10217:20:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":18765,"indexExpression":{"id":18764,"name":"executor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18736,"src":"10238:8:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10217:30:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":18766,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18738,"src":"10250:8:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10217:41:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18768,"nodeType":"ExpressionStatement","src":"10217:41:70"},{"eventCall":{"arguments":[{"id":18770,"name":"executor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18736,"src":"10295:8:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18771,"name":"previousApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18750,"src":"10305:16:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18772,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18738,"src":"10323:8:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":18769,"name":"ExecutorStatusUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16930,"src":"10273:21:70","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bool_$_t_bool_$returns$__$","typeString":"function (address,bool,bool)"}},"id":18773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10273:59:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18774,"nodeType":"EmitStatement","src":"10268:64:70"}]},"documentation":{"id":18734,"nodeType":"StructuredDocumentation","src":"9212:641:70","text":" @notice Manages the whitelist of executors that are allowed to execute timelocked registered updates.\n @param executor The address of the executor\n @param approved The whitelist status to set (true to whitelist, false to remove)\n @custom:access Controlled by AccessControlManager\n @custom:event Emits ExecutorStatusUpdated with the executor address, previous approval status, and approval status\n @custom:error Throws ZeroAddressNotAllowed if the executor address is zero\n @custom:error Throws ExecutorStatusUnchanged if the executor whitelist status is already set to the desired value"},"functionSelector":"3aed7f31","id":18776,"implemented":true,"kind":"function","modifiers":[],"name":"setWhitelistedExecutor","nameLocation":"9867:22:70","nodeType":"FunctionDefinition","parameters":{"id":18739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18736,"mutability":"mutable","name":"executor","nameLocation":"9898:8:70","nodeType":"VariableDeclaration","scope":18776,"src":"9890:16:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18735,"name":"address","nodeType":"ElementaryTypeName","src":"9890:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18738,"mutability":"mutable","name":"approved","nameLocation":"9913:8:70","nodeType":"VariableDeclaration","scope":18776,"src":"9908:13:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18737,"name":"bool","nodeType":"ElementaryTypeName","src":"9908:4:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9889:33:70"},"returnParameters":{"id":18740,"nodeType":"ParameterList","parameters":[],"src":"9932:0:70"},"scope":19931,"src":"9858:481:70","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[17104],"body":{"id":18868,"nodeType":"Block","src":"11213:947:70","statements":[{"assignments":[18786],"declarations":[{"constant":false,"id":18786,"mutability":"mutable","name":"update","nameLocation":"11250:6:70","nodeType":"VariableDeclaration","scope":18868,"src":"11223:33:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate"},"typeName":{"id":18785,"nodeType":"UserDefinedTypeName","pathNode":{"id":18784,"name":"RiskParameterUpdate","nameLocations":["11223:19:70"],"nodeType":"IdentifierPath","referencedDeclaration":16568,"src":"11223:19:70"},"referencedDeclaration":16568,"src":"11223:19:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_storage_ptr","typeString":"struct RiskParameterUpdate"}},"visibility":"internal"}],"id":18791,"initialValue":{"arguments":[{"id":18789,"name":"updateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18779,"src":"11285:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18787,"name":"RISK_ORACLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18363,"src":"11259:11:70","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskOracle_$16808","typeString":"contract IRiskOracle"}},"id":18788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11271:13:70","memberName":"getUpdateById","nodeType":"MemberAccess","referencedDeclaration":16738,"src":"11259:25:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_RiskParameterUpdate_$16568_memory_ptr_$","typeString":"function (uint256) view external returns (struct RiskParameterUpdate memory)"}},"id":18790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11259:35:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"nodeType":"VariableDeclarationStatement","src":"11223:71:70"},{"assignments":[18794],"declarations":[{"constant":false,"id":18794,"mutability":"mutable","name":"config","nameLocation":"11328:6:70","nodeType":"VariableDeclaration","scope":18868,"src":"11304:30:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16859_storage_ptr","typeString":"struct IRiskStewardReceiver.RiskParamConfig"},"typeName":{"id":18793,"nodeType":"UserDefinedTypeName","pathNode":{"id":18792,"name":"RiskParamConfig","nameLocations":["11304:15:70"],"nodeType":"IdentifierPath","referencedDeclaration":16859,"src":"11304:15:70"},"referencedDeclaration":16859,"src":"11304:15:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16859_storage_ptr","typeString":"struct IRiskStewardReceiver.RiskParamConfig"}},"visibility":"internal"}],"id":18799,"initialValue":{"baseExpression":{"id":18795,"name":"riskParameterConfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18372,"src":"11337:20:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RiskParamConfig_$16859_storage_$","typeString":"mapping(bytes32 => struct IRiskStewardReceiver.RiskParamConfig storage ref)"}},"id":18798,"indexExpression":{"expression":{"id":18796,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18786,"src":"11358:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":18797,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11365:13:70","memberName":"updateTypeKey","nodeType":"MemberAccess","referencedDeclaration":16553,"src":"11358:20:70","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11337:42:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16859_storage","typeString":"struct IRiskStewardReceiver.RiskParamConfig storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11304:75:70"},{"assignments":[18801],"declarations":[{"constant":false,"id":18801,"mutability":"mutable","name":"isRemoteUpdate","nameLocation":"11394:14:70","nodeType":"VariableDeclaration","scope":18868,"src":"11389:19:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18800,"name":"bool","nodeType":"ElementaryTypeName","src":"11389:4:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":18811,"initialValue":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":18805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18802,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18786,"src":"11411:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":18803,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11418:9:70","memberName":"destLzEid","nodeType":"MemberAccess","referencedDeclaration":16565,"src":"11411:16:70","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":18804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11431:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11411:21:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":18809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18806,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18786,"src":"11436:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":18807,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11443:9:70","memberName":"destLzEid","nodeType":"MemberAccess","referencedDeclaration":16565,"src":"11436:16:70","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":18808,"name":"LAYER_ZERO_EID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18359,"src":"11456:14:70","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"11436:34:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11411:59:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"11389:81:70"},{"condition":{"id":18813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"11599:15:70","subExpression":{"id":18812,"name":"isRemoteUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18801,"src":"11600:14:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18818,"nodeType":"IfStatement","src":"11595:50:70","trueBody":{"expression":{"arguments":[{"id":18815,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18786,"src":"11638:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}],"id":18814,"name":"_ensureNoActiveUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19671,"src":"11616:21:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_RiskParameterUpdate_$16568_memory_ptr_$returns$__$","typeString":"function (struct RiskParameterUpdate memory)"}},"id":18816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11616:29:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18817,"nodeType":"ExpressionStatement","src":"11616:29:70"}},{"expression":{"arguments":[{"id":18820,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18786,"src":"11679:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},{"id":18821,"name":"config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18794,"src":"11687:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16859_storage_ptr","typeString":"struct IRiskStewardReceiver.RiskParamConfig storage pointer"}},{"id":18822,"name":"isRemoteUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18801,"src":"11695:14:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"},{"typeIdentifier":"t_struct$_RiskParamConfig_$16859_storage_ptr","typeString":"struct IRiskStewardReceiver.RiskParamConfig storage pointer"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":18819,"name":"_validateRegisterUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19792,"src":"11655:23:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_RiskParameterUpdate_$16568_memory_ptr_$_t_struct$_RiskParamConfig_$16859_storage_ptr_$_t_bool_$returns$__$","typeString":"function (struct RiskParameterUpdate memory,struct IRiskStewardReceiver.RiskParamConfig storage pointer,bool) view"}},"id":18823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11655:55:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18824,"nodeType":"ExpressionStatement","src":"11655:55:70"},{"assignments":[18827],"declarations":[{"constant":false,"id":18827,"mutability":"mutable","name":"riskSteward","nameLocation":"11734:11:70","nodeType":"VariableDeclaration","scope":18868,"src":"11721:24:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskSteward_$16839","typeString":"contract IRiskSteward"},"typeName":{"id":18826,"nodeType":"UserDefinedTypeName","pathNode":{"id":18825,"name":"IRiskSteward","nameLocations":["11721:12:70"],"nodeType":"IdentifierPath","referencedDeclaration":16839,"src":"11721:12:70"},"referencedDeclaration":16839,"src":"11721:12:70","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskSteward_$16839","typeString":"contract IRiskSteward"}},"visibility":"internal"}],"id":18832,"initialValue":{"arguments":[{"expression":{"id":18829,"name":"config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18794,"src":"11761:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16859_storage_ptr","typeString":"struct IRiskStewardReceiver.RiskParamConfig storage pointer"}},"id":18830,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11768:11:70","memberName":"riskSteward","nodeType":"MemberAccess","referencedDeclaration":16858,"src":"11761:18:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18828,"name":"IRiskSteward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16839,"src":"11748:12:70","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRiskSteward_$16839_$","typeString":"type(contract IRiskSteward)"}},"id":18831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11748:32:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRiskSteward_$16839","typeString":"contract IRiskSteward"}},"nodeType":"VariableDeclarationStatement","src":"11721:59:70"},{"assignments":[18834],"declarations":[{"constant":false,"id":18834,"mutability":"mutable","name":"safeForDirectExecution","nameLocation":"11795:22:70","nodeType":"VariableDeclaration","scope":18868,"src":"11790:27:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18833,"name":"bool","nodeType":"ElementaryTypeName","src":"11790:4:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":18842,"initialValue":{"condition":{"id":18835,"name":"isRemoteUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18801,"src":"11820:14:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"id":18839,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18786,"src":"11882:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}],"expression":{"id":18837,"name":"riskSteward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18827,"src":"11845:11:70","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskSteward_$16839","typeString":"contract IRiskSteward"}},"id":18838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11857:24:70","memberName":"isSafeForDirectExecution","nodeType":"MemberAccess","referencedDeclaration":16831,"src":"11845:36:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_RiskParameterUpdate_$16568_memory_ptr_$returns$_t_bool_$","typeString":"function (struct RiskParameterUpdate memory) view external returns (bool)"}},"id":18840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11845:44:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"11820:69:70","trueExpression":{"hexValue":"66616c7365","id":18836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"11837:5:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"11790:99:70"},{"expression":{"arguments":[{"id":18844,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18786,"src":"11915:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},{"id":18845,"name":"config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18794,"src":"11923:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16859_storage_ptr","typeString":"struct IRiskStewardReceiver.RiskParamConfig storage pointer"}},{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18846,"name":"safeForDirectExecution","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18834,"src":"11931:22:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":18847,"name":"isRemoteUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18801,"src":"11957:14:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11931:40:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"},{"typeIdentifier":"t_struct$_RiskParamConfig_$16859_storage_ptr","typeString":"struct IRiskStewardReceiver.RiskParamConfig storage pointer"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":18843,"name":"_registerUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19398,"src":"11899:15:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_RiskParameterUpdate_$16568_memory_ptr_$_t_struct$_RiskParamConfig_$16859_memory_ptr_$_t_bool_$returns$__$","typeString":"function (struct RiskParameterUpdate memory,struct IRiskStewardReceiver.RiskParamConfig memory,bool)"}},"id":18849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11899:73:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18850,"nodeType":"ExpressionStatement","src":"11899:73:70"},{"condition":{"id":18851,"name":"isRemoteUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18801,"src":"11987:14:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"id":18859,"name":"safeForDirectExecution","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18834,"src":"12070:22:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18866,"nodeType":"IfStatement","src":"12066:88:70","trueBody":{"id":18865,"nodeType":"Block","src":"12094:60:70","statements":[{"expression":{"arguments":[{"id":18861,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18786,"src":"12123:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},{"id":18862,"name":"riskSteward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18827,"src":"12131:11:70","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskSteward_$16839","typeString":"contract IRiskSteward"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"},{"typeIdentifier":"t_contract$_IRiskSteward_$16839","typeString":"contract IRiskSteward"}],"id":18860,"name":"_executeUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19469,"src":"12108:14:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_RiskParameterUpdate_$16568_memory_ptr_$_t_contract$_IRiskSteward_$16839_$returns$__$","typeString":"function (struct RiskParameterUpdate memory,contract IRiskSteward)"}},"id":18863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12108:35:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18864,"nodeType":"ExpressionStatement","src":"12108:35:70"}]}},"id":18867,"nodeType":"IfStatement","src":"11983:171:70","trueBody":{"id":18858,"nodeType":"Block","src":"12003:57:70","statements":[{"expression":{"arguments":[{"id":18853,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18786,"src":"12035:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},{"hexValue":"","id":18854,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12043:2:70","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},{"hexValue":"30","id":18855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12047:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":18852,"name":"_sendRemoteUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19597,"src":"12017:17:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_RiskParameterUpdate_$16568_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct RiskParameterUpdate memory,bytes memory,uint256)"}},"id":18856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12017:32:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18857,"nodeType":"ExpressionStatement","src":"12017:32:70"}]}}]},"documentation":{"id":18777,"nodeType":"StructuredDocumentation","src":"10345:799:70","text":" @notice Processes an update from the Risk Oracle. Validates, registers the update,\n and either executes immediately, registers with timelock, or forwards cross-chain.\n @param updateId The update ID from the oracle's perspective\n @custom:event Emits UpdateRegistered, UpdateExecuted, or UpdateSentToDestination depending on the update type\n @custom:error Throws UpdateAlreadyResolved if the update was already processed\n @custom:error Throws UpdateIsExpired if the update has expired\n @custom:error Throws ConfigNotActive if the config is not active\n @custom:error Throws UpdateTooFrequent if the debounce period has not passed\n @custom:error Throws RegisteredUpdateTypeExist if there is a non-expired pending update of the same type"},"functionSelector":"62656e63","id":18869,"implemented":true,"kind":"function","modifiers":[{"id":18782,"kind":"modifierInvocation","modifierName":{"id":18781,"name":"whenNotPaused","nameLocations":["11199:13:70"],"nodeType":"IdentifierPath","referencedDeclaration":18428,"src":"11199:13:70"},"nodeType":"ModifierInvocation","src":"11199:13:70"}],"name":"processUpdate","nameLocation":"11158:13:70","nodeType":"FunctionDefinition","parameters":{"id":18780,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18779,"mutability":"mutable","name":"updateId","nameLocation":"11180:8:70","nodeType":"VariableDeclaration","scope":18869,"src":"11172:16:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18778,"name":"uint256","nodeType":"ElementaryTypeName","src":"11172:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11171:18:70"},"returnParameters":{"id":18783,"nodeType":"ParameterList","parameters":[],"src":"11213:0:70"},"scope":19931,"src":"11149:1011:70","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[17109],"body":{"id":18914,"nodeType":"Block","src":"13178:377:70","statements":[{"assignments":[18879],"declarations":[{"constant":false,"id":18879,"mutability":"mutable","name":"registeredUpdate","nameLocation":"13213:16:70","nodeType":"VariableDeclaration","scope":18914,"src":"13188:41:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_RegisteredUpdate_$16872_storage_ptr","typeString":"struct IRiskStewardReceiver.RegisteredUpdate"},"typeName":{"id":18878,"nodeType":"UserDefinedTypeName","pathNode":{"id":18877,"name":"RegisteredUpdate","nameLocations":["13188:16:70"],"nodeType":"IdentifierPath","referencedDeclaration":16872,"src":"13188:16:70"},"referencedDeclaration":16872,"src":"13188:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_RegisteredUpdate_$16872_storage_ptr","typeString":"struct IRiskStewardReceiver.RegisteredUpdate"}},"visibility":"internal"}],"id":18883,"initialValue":{"baseExpression":{"id":18880,"name":"updates","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18378,"src":"13232:7:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RegisteredUpdate_$16872_storage_$","typeString":"mapping(uint256 => struct IRiskStewardReceiver.RegisteredUpdate storage ref)"}},"id":18882,"indexExpression":{"id":18881,"name":"updateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18872,"src":"13240:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13232:17:70","typeDescriptions":{"typeIdentifier":"t_struct$_RegisteredUpdate_$16872_storage","typeString":"struct IRiskStewardReceiver.RegisteredUpdate storage ref"}},"nodeType":"VariableDeclarationStatement","src":"13188:61:70"},{"assignments":[18886],"declarations":[{"constant":false,"id":18886,"mutability":"mutable","name":"update","nameLocation":"13286:6:70","nodeType":"VariableDeclaration","scope":18914,"src":"13259:33:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate"},"typeName":{"id":18885,"nodeType":"UserDefinedTypeName","pathNode":{"id":18884,"name":"RiskParameterUpdate","nameLocations":["13259:19:70"],"nodeType":"IdentifierPath","referencedDeclaration":16568,"src":"13259:19:70"},"referencedDeclaration":16568,"src":"13259:19:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_storage_ptr","typeString":"struct RiskParameterUpdate"}},"visibility":"internal"}],"id":18891,"initialValue":{"arguments":[{"id":18889,"name":"updateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18872,"src":"13321:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18887,"name":"RISK_ORACLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18363,"src":"13295:11:70","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskOracle_$16808","typeString":"contract IRiskOracle"}},"id":18888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13307:13:70","memberName":"getUpdateById","nodeType":"MemberAccess","referencedDeclaration":16738,"src":"13295:25:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_RiskParameterUpdate_$16568_memory_ptr_$","typeString":"function (uint256) view external returns (struct RiskParameterUpdate memory)"}},"id":18890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13295:35:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"nodeType":"VariableDeclarationStatement","src":"13259:71:70"},{"assignments":[18894],"declarations":[{"constant":false,"id":18894,"mutability":"mutable","name":"config","nameLocation":"13364:6:70","nodeType":"VariableDeclaration","scope":18914,"src":"13340:30:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16859_storage_ptr","typeString":"struct IRiskStewardReceiver.RiskParamConfig"},"typeName":{"id":18893,"nodeType":"UserDefinedTypeName","pathNode":{"id":18892,"name":"RiskParamConfig","nameLocations":["13340:15:70"],"nodeType":"IdentifierPath","referencedDeclaration":16859,"src":"13340:15:70"},"referencedDeclaration":16859,"src":"13340:15:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16859_storage_ptr","typeString":"struct IRiskStewardReceiver.RiskParamConfig"}},"visibility":"internal"}],"id":18899,"initialValue":{"baseExpression":{"id":18895,"name":"riskParameterConfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18372,"src":"13373:20:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RiskParamConfig_$16859_storage_$","typeString":"mapping(bytes32 => struct IRiskStewardReceiver.RiskParamConfig storage ref)"}},"id":18898,"indexExpression":{"expression":{"id":18896,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18886,"src":"13394:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":18897,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13401:13:70","memberName":"updateTypeKey","nodeType":"MemberAccess","referencedDeclaration":16553,"src":"13394:20:70","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13373:42:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16859_storage","typeString":"struct IRiskStewardReceiver.RiskParamConfig storage ref"}},"nodeType":"VariableDeclarationStatement","src":"13340:75:70"},{"expression":{"arguments":[{"id":18901,"name":"registeredUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18879,"src":"13449:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_RegisteredUpdate_$16872_storage_ptr","typeString":"struct IRiskStewardReceiver.RegisteredUpdate storage pointer"}},{"id":18902,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18886,"src":"13467:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},{"id":18903,"name":"config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18894,"src":"13475:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16859_storage_ptr","typeString":"struct IRiskStewardReceiver.RiskParamConfig storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_RegisteredUpdate_$16872_storage_ptr","typeString":"struct IRiskStewardReceiver.RegisteredUpdate storage pointer"},{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"},{"typeIdentifier":"t_struct$_RiskParamConfig_$16859_storage_ptr","typeString":"struct IRiskStewardReceiver.RiskParamConfig storage pointer"}],"id":18900,"name":"_validateExecuteUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19856,"src":"13426:22:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_RegisteredUpdate_$16872_storage_ptr_$_t_struct$_RiskParameterUpdate_$16568_memory_ptr_$_t_struct$_RiskParamConfig_$16859_storage_ptr_$returns$__$","typeString":"function (struct IRiskStewardReceiver.RegisteredUpdate storage pointer,struct RiskParameterUpdate memory,struct IRiskStewardReceiver.RiskParamConfig storage pointer) view"}},"id":18904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13426:56:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18905,"nodeType":"ExpressionStatement","src":"13426:56:70"},{"expression":{"arguments":[{"id":18907,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18886,"src":"13507:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},{"arguments":[{"expression":{"id":18909,"name":"config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18894,"src":"13528:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16859_storage_ptr","typeString":"struct IRiskStewardReceiver.RiskParamConfig storage pointer"}},"id":18910,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13535:11:70","memberName":"riskSteward","nodeType":"MemberAccess","referencedDeclaration":16858,"src":"13528:18:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18908,"name":"IRiskSteward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16839,"src":"13515:12:70","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRiskSteward_$16839_$","typeString":"type(contract IRiskSteward)"}},"id":18911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13515:32:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRiskSteward_$16839","typeString":"contract IRiskSteward"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"},{"typeIdentifier":"t_contract$_IRiskSteward_$16839","typeString":"contract IRiskSteward"}],"id":18906,"name":"_executeUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19469,"src":"13492:14:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_RiskParameterUpdate_$16568_memory_ptr_$_t_contract$_IRiskSteward_$16839_$returns$__$","typeString":"function (struct RiskParameterUpdate memory,contract IRiskSteward)"}},"id":18912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13492:56:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18913,"nodeType":"ExpressionStatement","src":"13492:56:70"}]},"documentation":{"id":18870,"nodeType":"StructuredDocumentation","src":"12166:922:70","text":" @notice Executes a registered update. Only whitelisted executors can call this function.\n         This function can be used for updates that have completed their timelock and are ready to execute.\n @param updateId The oracle update ID of the update to execute\n @custom:access Only whitelisted executors can call this function\n @custom:event Emits UpdateExecuted with the oracle update ID\n @custom:error Throws NotAnExecutor if the caller is not a whitelisted executor\n @custom:error Throws InvalidRegisteredUpdate if the update was never registered\n @custom:error Throws UpdateAlreadyResolved if the update was already executed or rejected\n @custom:error Throws UpdateIsExpired if the update has expired\n @custom:error Throws ConfigNotActive if the config is not active\n @custom:error Throws UpdateNotUnlocked if the unlock time has not passed"},"functionSelector":"f8ce6ac2","id":18915,"implemented":true,"kind":"function","modifiers":[{"id":18875,"kind":"modifierInvocation","modifierName":{"id":18874,"name":"onlyWhitelistedExecutors","nameLocations":["13153:24:70"],"nodeType":"IdentifierPath","referencedDeclaration":18417,"src":"13153:24:70"},"nodeType":"ModifierInvocation","src":"13153:24:70"}],"name":"executeRegisteredUpdate","nameLocation":"13102:23:70","nodeType":"FunctionDefinition","parameters":{"id":18873,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18872,"mutability":"mutable","name":"updateId","nameLocation":"13134:8:70","nodeType":"VariableDeclaration","scope":18915,"src":"13126:16:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18871,"name":"uint256","nodeType":"ElementaryTypeName","src":"13126:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13125:18:70"},"returnParameters":{"id":18876,"nodeType":"ParameterList","parameters":[],"src":"13178:0:70"},"scope":19931,"src":"13093:462:70","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[17114],"body":{"id":18951,"nodeType":"Block","src":"13999:293:70","statements":[{"assignments":[18925],"declarations":[{"constant":false,"id":18925,"mutability":"mutable","name":"registeredUpdate","nameLocation":"14034:16:70","nodeType":"VariableDeclaration","scope":18951,"src":"14009:41:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_RegisteredUpdate_$16872_storage_ptr","typeString":"struct IRiskStewardReceiver.RegisteredUpdate"},"typeName":{"id":18924,"nodeType":"UserDefinedTypeName","pathNode":{"id":18923,"name":"RegisteredUpdate","nameLocations":["14009:16:70"],"nodeType":"IdentifierPath","referencedDeclaration":16872,"src":"14009:16:70"},"referencedDeclaration":16872,"src":"14009:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_RegisteredUpdate_$16872_storage_ptr","typeString":"struct IRiskStewardReceiver.RegisteredUpdate"}},"visibility":"internal"}],"id":18929,"initialValue":{"baseExpression":{"id":18926,"name":"updates","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18378,"src":"14053:7:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RegisteredUpdate_$16872_storage_$","typeString":"mapping(uint256 => struct IRiskStewardReceiver.RegisteredUpdate storage ref)"}},"id":18928,"indexExpression":{"id":18927,"name":"updateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18918,"src":"14061:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14053:17:70","typeDescriptions":{"typeIdentifier":"t_struct$_RegisteredUpdate_$16872_storage","typeString":"struct IRiskStewardReceiver.RegisteredUpdate storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14009:61:70"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_UpdateStatus_$16849","typeString":"enum IRiskStewardReceiver.UpdateStatus"},"id":18934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18930,"name":"registeredUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18925,"src":"14085:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_RegisteredUpdate_$16872_storage_ptr","typeString":"struct IRiskStewardReceiver.RegisteredUpdate storage pointer"}},"id":18931,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14102:6:70","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":16867,"src":"14085:23:70","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateStatus_$16849","typeString":"enum IRiskStewardReceiver.UpdateStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":18932,"name":"UpdateStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16849,"src":"14112:12:70","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_UpdateStatus_$16849_$","typeString":"type(enum IRiskStewardReceiver.UpdateStatus)"}},"id":18933,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14125:7:70","memberName":"Pending","nodeType":"MemberAccess","referencedDeclaration":16844,"src":"14112:20:70","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateStatus_$16849","typeString":"enum IRiskStewardReceiver.UpdateStatus"}},"src":"14085:47:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18939,"nodeType":"IfStatement","src":"14081:108:70","trueBody":{"id":18938,"nodeType":"Block","src":"14134:55:70","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":18935,"name":"UpdateAlreadyResolved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16989,"src":"14155:21:70","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":18936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14155:23:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18937,"nodeType":"RevertStatement","src":"14148:30:70"}]}},{"expression":{"id":18945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18940,"name":"registeredUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18925,"src":"14199:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_RegisteredUpdate_$16872_storage_ptr","typeString":"struct IRiskStewardReceiver.RegisteredUpdate storage pointer"}},"id":18942,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"14216:6:70","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":16867,"src":"14199:23:70","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateStatus_$16849","typeString":"enum IRiskStewardReceiver.UpdateStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18943,"name":"UpdateStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16849,"src":"14225:12:70","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_UpdateStatus_$16849_$","typeString":"type(enum IRiskStewardReceiver.UpdateStatus)"}},"id":18944,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14238:8:70","memberName":"Rejected","nodeType":"MemberAccess","referencedDeclaration":16846,"src":"14225:21:70","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateStatus_$16849","typeString":"enum IRiskStewardReceiver.UpdateStatus"}},"src":"14199:47:70","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateStatus_$16849","typeString":"enum IRiskStewardReceiver.UpdateStatus"}},"id":18946,"nodeType":"ExpressionStatement","src":"14199:47:70"},{"eventCall":{"arguments":[{"id":18948,"name":"updateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18918,"src":"14276:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18947,"name":"UpdateRejected","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16916,"src":"14261:14:70","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":18949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14261:24:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18950,"nodeType":"EmitStatement","src":"14256:29:70"}]},"documentation":{"id":18916,"nodeType":"StructuredDocumentation","src":"13561:359:70","text":" @notice Rejects a registered update\n @param updateId The oracle update ID of the update to reject\n @custom:access Only whitelisted executors can call this function\n @custom:event Emits UpdateRejected with the oracle update ID\n @custom:error Throws UpdateAlreadyResolved if the update was already executed or rejected"},"functionSelector":"c3e10deb","id":18952,"implemented":true,"kind":"function","modifiers":[{"id":18921,"kind":"modifierInvocation","modifierName":{"id":18920,"name":"onlyWhitelistedExecutors","nameLocations":["13974:24:70"],"nodeType":"IdentifierPath","referencedDeclaration":18417,"src":"13974:24:70"},"nodeType":"ModifierInvocation","src":"13974:24:70"}],"name":"rejectUpdate","nameLocation":"13934:12:70","nodeType":"FunctionDefinition","parameters":{"id":18919,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18918,"mutability":"mutable","name":"updateId","nameLocation":"13955:8:70","nodeType":"VariableDeclaration","scope":18952,"src":"13947:16:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18917,"name":"uint256","nodeType":"ElementaryTypeName","src":"13947:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13946:18:70"},"returnParameters":{"id":18922,"nodeType":"ParameterList","parameters":[],"src":"13999:0:70"},"scope":19931,"src":"13925:367:70","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[17121],"body":{"id":19017,"nodeType":"Block","src":"15333:616:70","statements":[{"assignments":[18964],"declarations":[{"constant":false,"id":18964,"mutability":"mutable","name":"registeredUpdate","nameLocation":"15368:16:70","nodeType":"VariableDeclaration","scope":19017,"src":"15343:41:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_RegisteredUpdate_$16872_storage_ptr","typeString":"struct IRiskStewardReceiver.RegisteredUpdate"},"typeName":{"id":18963,"nodeType":"UserDefinedTypeName","pathNode":{"id":18962,"name":"RegisteredUpdate","nameLocations":["15343:16:70"],"nodeType":"IdentifierPath","referencedDeclaration":16872,"src":"15343:16:70"},"referencedDeclaration":16872,"src":"15343:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_RegisteredUpdate_$16872_storage_ptr","typeString":"struct IRiskStewardReceiver.RegisteredUpdate"}},"visibility":"internal"}],"id":18968,"initialValue":{"baseExpression":{"id":18965,"name":"updates","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18378,"src":"15387:7:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RegisteredUpdate_$16872_storage_$","typeString":"mapping(uint256 => struct IRiskStewardReceiver.RegisteredUpdate storage ref)"}},"id":18967,"indexExpression":{"id":18966,"name":"updateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18955,"src":"15395:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15387:17:70","typeDescriptions":{"typeIdentifier":"t_struct$_RegisteredUpdate_$16872_storage","typeString":"struct IRiskStewardReceiver.RegisteredUpdate storage ref"}},"nodeType":"VariableDeclarationStatement","src":"15343:61:70"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_UpdateStatus_$16849","typeString":"enum IRiskStewardReceiver.UpdateStatus"},"id":18973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18969,"name":"registeredUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18964,"src":"15418:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_RegisteredUpdate_$16872_storage_ptr","typeString":"struct IRiskStewardReceiver.RegisteredUpdate storage pointer"}},"id":18970,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15435:6:70","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":16867,"src":"15418:23:70","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateStatus_$16849","typeString":"enum IRiskStewardReceiver.UpdateStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":18971,"name":"UpdateStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16849,"src":"15445:12:70","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_UpdateStatus_$16849_$","typeString":"type(enum IRiskStewardReceiver.UpdateStatus)"}},"id":18972,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15458:19:70","memberName":"SENT_TO_DESTINATION","nodeType":"MemberAccess","referencedDeclaration":16848,"src":"15445:32:70","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateStatus_$16849","typeString":"enum IRiskStewardReceiver.UpdateStatus"}},"src":"15418:59:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18978,"nodeType":"IfStatement","src":"15414:120:70","trueBody":{"id":18977,"nodeType":"Block","src":"15479:55:70","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":18974,"name":"InvalidUpdateToResend","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17021,"src":"15500:21:70","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":18975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15500:23:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18976,"nodeType":"RevertStatement","src":"15493:30:70"}]}},{"assignments":[18981],"declarations":[{"constant":false,"id":18981,"mutability":"mutable","name":"update","nameLocation":"15571:6:70","nodeType":"VariableDeclaration","scope":19017,"src":"15544:33:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate"},"typeName":{"id":18980,"nodeType":"UserDefinedTypeName","pathNode":{"id":18979,"name":"RiskParameterUpdate","nameLocations":["15544:19:70"],"nodeType":"IdentifierPath","referencedDeclaration":16568,"src":"15544:19:70"},"referencedDeclaration":16568,"src":"15544:19:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_storage_ptr","typeString":"struct RiskParameterUpdate"}},"visibility":"internal"}],"id":18986,"initialValue":{"arguments":[{"id":18984,"name":"updateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18955,"src":"15606:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18982,"name":"RISK_ORACLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18363,"src":"15580:11:70","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskOracle_$16808","typeString":"contract IRiskOracle"}},"id":18983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15592:13:70","memberName":"getUpdateById","nodeType":"MemberAccess","referencedDeclaration":16738,"src":"15580:25:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_RiskParameterUpdate_$16568_memory_ptr_$","typeString":"function (uint256) view external returns (struct RiskParameterUpdate memory)"}},"id":18985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15580:35:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"nodeType":"VariableDeclarationStatement","src":"15544:71:70"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18987,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18981,"src":"15668:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":18988,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15675:9:70","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":16559,"src":"15668:16:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":18989,"name":"UPDATE_EXPIRATION_TIME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18356,"src":"15687:22:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15668:41:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":18991,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"15712:5:70","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15718:9:70","memberName":"timestamp","nodeType":"MemberAccess","src":"15712:15:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15668:59:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18998,"nodeType":"IfStatement","src":"15664:114:70","trueBody":{"id":18997,"nodeType":"Block","src":"15729:49:70","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":18994,"name":"UpdateIsExpired","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16986,"src":"15750:15:70","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":18995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15750:17:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18996,"nodeType":"RevertStatement","src":"15743:24:70"}]}},{"expression":{"arguments":[{"id":19000,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18981,"src":"15806:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},{"id":19001,"name":"options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18957,"src":"15814:7:70","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":19002,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15823:3:70","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":19003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15827:5:70","memberName":"value","nodeType":"MemberAccess","src":"15823:9:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18999,"name":"_sendRemoteUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19597,"src":"15788:17:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_RiskParameterUpdate_$16568_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct RiskParameterUpdate memory,bytes memory,uint256)"}},"id":19004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15788:45:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19005,"nodeType":"ExpressionStatement","src":"15788:45:70"},{"eventCall":{"arguments":[{"expression":{"id":19007,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18981,"src":"15874:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":19008,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15881:8:70","memberName":"updateId","nodeType":"MemberAccess","referencedDeclaration":16547,"src":"15874:15:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":19009,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18981,"src":"15891:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":19010,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15898:9:70","memberName":"destLzEid","nodeType":"MemberAccess","referencedDeclaration":16565,"src":"15891:16:70","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"expression":{"id":19011,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18981,"src":"15909:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":19012,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15916:10:70","memberName":"updateType","nodeType":"MemberAccess","referencedDeclaration":16551,"src":"15909:17:70","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":19013,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18981,"src":"15928:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":19014,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15935:6:70","memberName":"market","nodeType":"MemberAccess","referencedDeclaration":16549,"src":"15928:13:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"id":19006,"name":"UpdateResentToDestination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16963,"src":"15848:25:70","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint32_$_t_string_memory_ptr_$_t_address_$returns$__$","typeString":"function (uint256,uint32,string memory,address)"}},"id":19015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15848:94:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19016,"nodeType":"EmitStatement","src":"15843:99:70"}]},"documentation":{"id":18953,"nodeType":"StructuredDocumentation","src":"14298:918:70","text":" @notice Resends a remote update to the destination chain. This function is useful in case of bridge failures.\n @dev Duplicate update rejection is handled in the destination contract itself, so resending\n      the same update multiple times is safe and will be deduplicated on the destination side.\n @param updateId The oracle update ID to resend\n @param options LayerZero message options; if empty, default executor option is used\n @custom:access Only whitelisted executors can call this function\n @custom:event Emits UpdateResentToDestination with the update ID, destination chain ID, update type, and market\n @custom:error Throws NotAnExecutor if the caller is not a whitelisted executor\n @custom:error Throws InvalidUpdateToResend if the update status is not SENT_TO_DESTINATION\n @custom:error Throws UpdateIsExpired if the update has expired"},"functionSelector":"85a7602f","id":19018,"implemented":true,"kind":"function","modifiers":[{"id":18960,"kind":"modifierInvocation","modifierName":{"id":18959,"name":"onlyWhitelistedExecutors","nameLocations":["15308:24:70"],"nodeType":"IdentifierPath","referencedDeclaration":18417,"src":"15308:24:70"},"nodeType":"ModifierInvocation","src":"15308:24:70"}],"name":"resendRemoteUpdate","nameLocation":"15230:18:70","nodeType":"FunctionDefinition","parameters":{"id":18958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18955,"mutability":"mutable","name":"updateId","nameLocation":"15257:8:70","nodeType":"VariableDeclaration","scope":19018,"src":"15249:16:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18954,"name":"uint256","nodeType":"ElementaryTypeName","src":"15249:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18957,"mutability":"mutable","name":"options","nameLocation":"15282:7:70","nodeType":"VariableDeclaration","scope":19018,"src":"15267:22:70","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":18956,"name":"bytes","nodeType":"ElementaryTypeName","src":"15267:5:70","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"15248:42:70"},"returnParameters":{"id":18961,"nodeType":"ParameterList","parameters":[],"src":"15333:0:70"},"scope":19931,"src":"15221:728:70","stateMutability":"payable","virtual":false,"visibility":"external"},{"baseFunctions":[17131],"body":{"id":19134,"nodeType":"Block","src":"16543:855:70","statements":[{"assignments":[19030],"declarations":[{"constant":false,"id":19030,"mutability":"mutable","name":"updateTypeKey","nameLocation":"16561:13:70","nodeType":"VariableDeclaration","scope":19134,"src":"16553:21:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19029,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16553:7:70","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":19037,"initialValue":{"arguments":[{"arguments":[{"id":19034,"name":"updateType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19021,"src":"16593:10:70","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":19033,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16587:5:70","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":19032,"name":"bytes","nodeType":"ElementaryTypeName","src":"16587:5:70","typeDescriptions":{}}},"id":19035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16587:17:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":19031,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16577:9:70","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":19036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16577:28:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"16553:52:70"},{"assignments":[19042],"declarations":[{"constant":false,"id":19042,"mutability":"mutable","name":"markets","nameLocation":"16711:7:70","nodeType":"VariableDeclaration","scope":19134,"src":"16694:24:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":19040,"name":"address","nodeType":"ElementaryTypeName","src":"16694:7:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":19041,"nodeType":"ArrayTypeName","src":"16694:9:70","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":19048,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":19044,"name":"comptroller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19023,"src":"16742:11:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":19043,"name":"ICorePoolComptroller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20347,"src":"16721:20:70","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ICorePoolComptroller_$20347_$","typeString":"type(contract ICorePoolComptroller)"}},"id":19045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16721:33:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ICorePoolComptroller_$20347","typeString":"contract ICorePoolComptroller"}},"id":19046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16755:13:70","memberName":"getAllMarkets","nodeType":"MemberAccess","referencedDeclaration":20282,"src":"16721:47:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function () view external returns (address[] memory)"}},"id":19047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16721:49:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"16694:76:70"},{"assignments":[19050],"declarations":[{"constant":false,"id":19050,"mutability":"mutable","name":"maxUpdates","nameLocation":"16788:10:70","nodeType":"VariableDeclaration","scope":19134,"src":"16780:18:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19049,"name":"uint256","nodeType":"ElementaryTypeName","src":"16780:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":19053,"initialValue":{"expression":{"id":19051,"name":"markets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19042,"src":"16801:7:70","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":19052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16809:6:70","memberName":"length","nodeType":"MemberAccess","src":"16801:14:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16780:35:70"},{"assignments":[19058],"declarations":[{"constant":false,"id":19058,"mutability":"mutable","name":"tempArray","nameLocation":"16842:9:70","nodeType":"VariableDeclaration","scope":19134,"src":"16825:26:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":19056,"name":"uint256","nodeType":"ElementaryTypeName","src":"16825:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19057,"nodeType":"ArrayTypeName","src":"16825:9:70","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":19064,"initialValue":{"arguments":[{"id":19062,"name":"maxUpdates","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19050,"src":"16868:10:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19061,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"16854:13:70","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":19059,"name":"uint256","nodeType":"ElementaryTypeName","src":"16858:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19060,"nodeType":"ArrayTypeName","src":"16858:9:70","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":19063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16854:25:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"16825:54:70"},{"assignments":[19066],"declarations":[{"constant":false,"id":19066,"mutability":"mutable","name":"count","nameLocation":"16897:5:70","nodeType":"VariableDeclaration","scope":19134,"src":"16889:13:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19065,"name":"uint256","nodeType":"ElementaryTypeName","src":"16889:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":19068,"initialValue":{"hexValue":"30","id":19067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16905:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"16889:17:70"},{"body":{"id":19104,"nodeType":"Block","src":"16958:241:70","statements":[{"assignments":[19080],"declarations":[{"constant":false,"id":19080,"mutability":"mutable","name":"registeredUpdateId","nameLocation":"16980:18:70","nodeType":"VariableDeclaration","scope":19104,"src":"16972:26:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19079,"name":"uint256","nodeType":"ElementaryTypeName","src":"16972:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":19088,"initialValue":{"baseExpression":{"baseExpression":{"id":19081,"name":"lastRegisteredUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18392,"src":"17001:20:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(bytes32 => mapping(address => uint256))"}},"id":19083,"indexExpression":{"id":19082,"name":"updateTypeKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19030,"src":"17022:13:70","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17001:35:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":19087,"indexExpression":{"baseExpression":{"id":19084,"name":"markets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19042,"src":"17037:7:70","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":19086,"indexExpression":{"id":19085,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19070,"src":"17045:1:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17037:10:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17001:47:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16972:76:70"},{"condition":{"id":19092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"17066:40:70","subExpression":{"arguments":[{"id":19090,"name":"registeredUpdateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19080,"src":"17087:18:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19089,"name":"_isUpdateExecutable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19921,"src":"17067:19:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":19091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17067:39:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19094,"nodeType":"IfStatement","src":"17062:54:70","trueBody":{"id":19093,"nodeType":"Continue","src":"17108:8:70"}},{"expression":{"id":19099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":19095,"name":"tempArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19058,"src":"17130:9:70","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":19097,"indexExpression":{"id":19096,"name":"count","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19066,"src":"17140:5:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17130:16:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":19098,"name":"registeredUpdateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19080,"src":"17149:18:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17130:37:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19100,"nodeType":"ExpressionStatement","src":"17130:37:70"},{"expression":{"id":19102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"17181:7:70","subExpression":{"id":19101,"name":"count","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19066,"src":"17181:5:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19103,"nodeType":"ExpressionStatement","src":"17181:7:70"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19073,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19070,"src":"16937:1:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":19074,"name":"maxUpdates","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19050,"src":"16941:10:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16937:14:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19105,"initializationExpression":{"assignments":[19070],"declarations":[{"constant":false,"id":19070,"mutability":"mutable","name":"i","nameLocation":"16930:1:70","nodeType":"VariableDeclaration","scope":19105,"src":"16922:9:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19069,"name":"uint256","nodeType":"ElementaryTypeName","src":"16922:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":19072,"initialValue":{"hexValue":"30","id":19071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16934:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"16922:13:70"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":19077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"16953:3:70","subExpression":{"id":19076,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19070,"src":"16955:1:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19078,"nodeType":"ExpressionStatement","src":"16953:3:70"},"nodeType":"ForStatement","src":"16917:282:70"},{"expression":{"id":19112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19106,"name":"executableUpdates","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19027,"src":"17246:17:70","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":19110,"name":"count","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19066,"src":"17280:5:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19109,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"17266:13:70","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":19107,"name":"uint256","nodeType":"ElementaryTypeName","src":"17270:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19108,"nodeType":"ArrayTypeName","src":"17270:9:70","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":19111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17266:20:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"17246:40:70","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":19113,"nodeType":"ExpressionStatement","src":"17246:40:70"},{"body":{"id":19132,"nodeType":"Block","src":"17332:60:70","statements":[{"expression":{"id":19130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":19124,"name":"executableUpdates","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19027,"src":"17346:17:70","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":19126,"indexExpression":{"id":19125,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19115,"src":"17364:1:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17346:20:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":19127,"name":"tempArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19058,"src":"17369:9:70","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":19129,"indexExpression":{"id":19128,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19115,"src":"17379:1:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17369:12:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17346:35:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19131,"nodeType":"ExpressionStatement","src":"17346:35:70"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19118,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19115,"src":"17316:1:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":19119,"name":"count","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19066,"src":"17320:5:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17316:9:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19133,"initializationExpression":{"assignments":[19115],"declarations":[{"constant":false,"id":19115,"mutability":"mutable","name":"i","nameLocation":"17309:1:70","nodeType":"VariableDeclaration","scope":19133,"src":"17301:9:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19114,"name":"uint256","nodeType":"ElementaryTypeName","src":"17301:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":19117,"initialValue":{"hexValue":"30","id":19116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17313:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"17301:13:70"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":19122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"17327:3:70","subExpression":{"id":19121,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19115,"src":"17329:1:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19123,"nodeType":"ExpressionStatement","src":"17327:3:70"},"nodeType":"ForStatement","src":"17296:96:70"}]},"documentation":{"id":19019,"nodeType":"StructuredDocumentation","src":"15955:423:70","text":" @notice Returns an array of update IDs for executable registered updates for a given update type and comptroller.\n @param updateType The human‑readable identifier of the update type to filter by\n @param comptroller The address of the Comptroller (either Core Pool or Isolated Pools) that manages the markets\n @return executableUpdates Array of update IDs that are ready to be executed"},"functionSelector":"f63106e4","id":19135,"implemented":true,"kind":"function","modifiers":[],"name":"getExecutableUpdates","nameLocation":"16392:20:70","nodeType":"FunctionDefinition","parameters":{"id":19024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19021,"mutability":"mutable","name":"updateType","nameLocation":"16438:10:70","nodeType":"VariableDeclaration","scope":19135,"src":"16422:26:70","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":19020,"name":"string","nodeType":"ElementaryTypeName","src":"16422:6:70","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19023,"mutability":"mutable","name":"comptroller","nameLocation":"16466:11:70","nodeType":"VariableDeclaration","scope":19135,"src":"16458:19:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19022,"name":"address","nodeType":"ElementaryTypeName","src":"16458:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16412:71:70"},"returnParameters":{"id":19028,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19027,"mutability":"mutable","name":"executableUpdates","nameLocation":"16524:17:70","nodeType":"VariableDeclaration","scope":19135,"src":"16507:34:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":19025,"name":"uint256","nodeType":"ElementaryTypeName","src":"16507:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19026,"nodeType":"ArrayTypeName","src":"16507:9:70","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"16506:36:70"},"scope":19931,"src":"16383:1015:70","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[17138],"body":{"id":19147,"nodeType":"Block","src":"17713:53:70","statements":[{"expression":{"arguments":[{"id":19144,"name":"updateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19138,"src":"17750:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19143,"name":"_isUpdateExecutable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19921,"src":"17730:19:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":19145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17730:29:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":19142,"id":19146,"nodeType":"Return","src":"17723:36:70"}]},"documentation":{"id":19136,"nodeType":"StructuredDocumentation","src":"17404:229:70","text":" @notice Returns whether a registered update is ready to be executed.\n @param updateId The oracle update ID to query\n @return True if the update is pending, not expired, active, and past its timelock"},"functionSelector":"33bde2ca","id":19148,"implemented":true,"kind":"function","modifiers":[],"name":"isUpdateExecutable","nameLocation":"17647:18:70","nodeType":"FunctionDefinition","parameters":{"id":19139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19138,"mutability":"mutable","name":"updateId","nameLocation":"17674:8:70","nodeType":"VariableDeclaration","scope":19148,"src":"17666:16:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19137,"name":"uint256","nodeType":"ElementaryTypeName","src":"17666:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17665:18:70"},"returnParameters":{"id":19142,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19141,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19148,"src":"17707:4:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19140,"name":"bool","nodeType":"ElementaryTypeName","src":"17707:4:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17706:6:70"},"scope":19931,"src":"17638:128:70","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[17056],"body":{"id":19170,"nodeType":"Block","src":"18097:101:70","statements":[{"assignments":[19158],"declarations":[{"constant":false,"id":19158,"mutability":"mutable","name":"key","nameLocation":"18115:3:70","nodeType":"VariableDeclaration","scope":19170,"src":"18107:11:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19157,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18107:7:70","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":19165,"initialValue":{"arguments":[{"arguments":[{"id":19162,"name":"updateType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19151,"src":"18137:10:70","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":19161,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18131:5:70","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":19160,"name":"bytes","nodeType":"ElementaryTypeName","src":"18131:5:70","typeDescriptions":{}}},"id":19163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18131:17:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":19159,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"18121:9:70","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":19164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18121:28:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"18107:42:70"},{"expression":{"baseExpression":{"id":19166,"name":"riskParameterConfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18372,"src":"18166:20:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RiskParamConfig_$16859_storage_$","typeString":"mapping(bytes32 => struct IRiskStewardReceiver.RiskParamConfig storage ref)"}},"id":19168,"indexExpression":{"id":19167,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19158,"src":"18187:3:70","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18166:25:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16859_storage","typeString":"struct IRiskStewardReceiver.RiskParamConfig storage ref"}},"functionReturnParameters":19156,"id":19169,"nodeType":"Return","src":"18159:32:70"}]},"documentation":{"id":19149,"nodeType":"StructuredDocumentation","src":"17772:213:70","text":" @notice Returns the risk parameter configuration for a given update type\n @param updateType The human-readable identifier of the update type\n @return The risk parameter configuration"},"functionSelector":"28207141","id":19171,"implemented":true,"kind":"function","modifiers":[],"name":"getRiskParameterConfig","nameLocation":"17999:22:70","nodeType":"FunctionDefinition","parameters":{"id":19152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19151,"mutability":"mutable","name":"updateType","nameLocation":"18038:10:70","nodeType":"VariableDeclaration","scope":19171,"src":"18022:26:70","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":19150,"name":"string","nodeType":"ElementaryTypeName","src":"18022:6:70","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"18021:28:70"},"returnParameters":{"id":19156,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19155,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19171,"src":"18073:22:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16859_memory_ptr","typeString":"struct IRiskStewardReceiver.RiskParamConfig"},"typeName":{"id":19154,"nodeType":"UserDefinedTypeName","pathNode":{"id":19153,"name":"RiskParamConfig","nameLocations":["18073:15:70"],"nodeType":"IdentifierPath","referencedDeclaration":16859,"src":"18073:15:70"},"referencedDeclaration":16859,"src":"18073:15:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16859_storage_ptr","typeString":"struct IRiskStewardReceiver.RiskParamConfig"}},"visibility":"internal"}],"src":"18072:24:70"},"scope":19931,"src":"17990:208:70","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[17065],"body":{"id":19196,"nodeType":"Block","src":"18580:108:70","statements":[{"assignments":[19182],"declarations":[{"constant":false,"id":19182,"mutability":"mutable","name":"key","nameLocation":"18598:3:70","nodeType":"VariableDeclaration","scope":19196,"src":"18590:11:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19181,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18590:7:70","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":19189,"initialValue":{"arguments":[{"arguments":[{"id":19186,"name":"updateType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19174,"src":"18620:10:70","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":19185,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18614:5:70","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":19184,"name":"bytes","nodeType":"ElementaryTypeName","src":"18614:5:70","typeDescriptions":{}}},"id":19187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18614:17:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":19183,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"18604:9:70","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":19188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18604:28:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"18590:42:70"},{"expression":{"baseExpression":{"baseExpression":{"id":19190,"name":"lastProcessedUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18385,"src":"18649:19:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(bytes32 => mapping(address => uint256))"}},"id":19192,"indexExpression":{"id":19191,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19182,"src":"18669:3:70","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18649:24:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":19194,"indexExpression":{"id":19193,"name":"market","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19176,"src":"18674:6:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18649:32:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":19180,"id":19195,"nodeType":"Return","src":"18642:39:70"}]},"documentation":{"id":19172,"nodeType":"StructuredDocumentation","src":"18204:263:70","text":" @notice Returns the last processed update ID for a given update type and market\n @param updateType The human-readable identifier of the update type\n @param market The address of the market\n @return The last processed update ID"},"functionSelector":"f75875ad","id":19197,"implemented":true,"kind":"function","modifiers":[],"name":"getLastProcessedUpdate","nameLocation":"18481:22:70","nodeType":"FunctionDefinition","parameters":{"id":19177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19174,"mutability":"mutable","name":"updateType","nameLocation":"18520:10:70","nodeType":"VariableDeclaration","scope":19197,"src":"18504:26:70","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":19173,"name":"string","nodeType":"ElementaryTypeName","src":"18504:6:70","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19176,"mutability":"mutable","name":"market","nameLocation":"18540:6:70","nodeType":"VariableDeclaration","scope":19197,"src":"18532:14:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19175,"name":"address","nodeType":"ElementaryTypeName","src":"18532:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18503:44:70"},"returnParameters":{"id":19180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19179,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19197,"src":"18571:7:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19178,"name":"uint256","nodeType":"ElementaryTypeName","src":"18571:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18570:9:70"},"scope":19931,"src":"18472:216:70","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[17074],"body":{"id":19222,"nodeType":"Block","src":"19073:109:70","statements":[{"assignments":[19208],"declarations":[{"constant":false,"id":19208,"mutability":"mutable","name":"key","nameLocation":"19091:3:70","nodeType":"VariableDeclaration","scope":19222,"src":"19083:11:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19207,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19083:7:70","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":19215,"initialValue":{"arguments":[{"arguments":[{"id":19212,"name":"updateType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19200,"src":"19113:10:70","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":19211,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19107:5:70","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":19210,"name":"bytes","nodeType":"ElementaryTypeName","src":"19107:5:70","typeDescriptions":{}}},"id":19213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19107:17:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":19209,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"19097:9:70","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":19214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19097:28:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"19083:42:70"},{"expression":{"baseExpression":{"baseExpression":{"id":19216,"name":"lastRegisteredUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18392,"src":"19142:20:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(bytes32 => mapping(address => uint256))"}},"id":19218,"indexExpression":{"id":19217,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19208,"src":"19163:3:70","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19142:25:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":19220,"indexExpression":{"id":19219,"name":"market","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19202,"src":"19168:6:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19142:33:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":19206,"id":19221,"nodeType":"Return","src":"19135:40:70"}]},"documentation":{"id":19198,"nodeType":"StructuredDocumentation","src":"18694:265:70","text":" @notice Returns the last registered update ID for a given update type and market\n @param updateType The human-readable identifier of the update type\n @param market The address of the market\n @return The last registered update ID"},"functionSelector":"595bd377","id":19223,"implemented":true,"kind":"function","modifiers":[],"name":"getLastRegisteredUpdate","nameLocation":"18973:23:70","nodeType":"FunctionDefinition","parameters":{"id":19203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19200,"mutability":"mutable","name":"updateType","nameLocation":"19013:10:70","nodeType":"VariableDeclaration","scope":19223,"src":"18997:26:70","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":19199,"name":"string","nodeType":"ElementaryTypeName","src":"18997:6:70","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19202,"mutability":"mutable","name":"market","nameLocation":"19033:6:70","nodeType":"VariableDeclaration","scope":19223,"src":"19025:14:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19201,"name":"address","nodeType":"ElementaryTypeName","src":"19025:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18996:44:70"},"returnParameters":{"id":19206,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19205,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19223,"src":"19064:7:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19204,"name":"uint256","nodeType":"ElementaryTypeName","src":"19064:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19063:9:70"},"scope":19931,"src":"18964:218:70","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":19254,"nodeType":"Block","src":"19804:130:70","statements":[{"assignments":[19238],"declarations":[{"constant":false,"id":19238,"mutability":"mutable","name":"payload","nameLocation":"19827:7:70","nodeType":"VariableDeclaration","scope":19254,"src":"19814:20:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":19237,"name":"bytes","nodeType":"ElementaryTypeName","src":"19814:5:70","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":19243,"initialValue":{"arguments":[{"id":19241,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19227,"src":"19848:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}],"expression":{"id":19239,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19837:3:70","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19240,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19841:6:70","memberName":"encode","nodeType":"MemberAccess","src":"19837:10:70","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":19242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19837:18:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"19814:41:70"},{"expression":{"id":19252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19244,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19235,"src":"19865:3:70","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$879_memory_ptr","typeString":"struct MessagingFee memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":19246,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19227,"src":"19878:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":19247,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19885:9:70","memberName":"destLzEid","nodeType":"MemberAccess","referencedDeclaration":16565,"src":"19878:16:70","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":19248,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19238,"src":"19896:7:70","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":19249,"name":"options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19229,"src":"19905:7:70","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":19250,"name":"payInLzToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19231,"src":"19914:12:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":19245,"name":"_quote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2290,"src":"19871:6:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_bool_$returns$_t_struct$_MessagingFee_$879_memory_ptr_$","typeString":"function (uint32,bytes memory,bytes memory,bool) view returns (struct MessagingFee memory)"}},"id":19251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19871:56:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$879_memory_ptr","typeString":"struct MessagingFee memory"}},"src":"19865:62:70","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$879_memory_ptr","typeString":"struct MessagingFee memory"}},"id":19253,"nodeType":"ExpressionStatement","src":"19865:62:70"}]},"documentation":{"id":19224,"nodeType":"StructuredDocumentation","src":"19188:444:70","text":" @notice Quotes the gas fee needed to pay for the full omnichain transaction in native gas or ZRO token.\n @param update The risk parameter update payload to be sent\n @param options Message execution options (e.g., for sending gas to the destination)\n @param payInLzToken Whether to return the fee in ZRO token instead of native gas\n @return fee A `MessagingFee` struct containing the calculated gas fee"},"functionSelector":"1d1c3620","id":19255,"implemented":true,"kind":"function","modifiers":[],"name":"quote","nameLocation":"19646:5:70","nodeType":"FunctionDefinition","parameters":{"id":19232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19227,"mutability":"mutable","name":"update","nameLocation":"19688:6:70","nodeType":"VariableDeclaration","scope":19255,"src":"19661:33:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate"},"typeName":{"id":19226,"nodeType":"UserDefinedTypeName","pathNode":{"id":19225,"name":"RiskParameterUpdate","nameLocations":["19661:19:70"],"nodeType":"IdentifierPath","referencedDeclaration":16568,"src":"19661:19:70"},"referencedDeclaration":16568,"src":"19661:19:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_storage_ptr","typeString":"struct RiskParameterUpdate"}},"visibility":"internal"},{"constant":false,"id":19229,"mutability":"mutable","name":"options","nameLocation":"19717:7:70","nodeType":"VariableDeclaration","scope":19255,"src":"19704:20:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":19228,"name":"bytes","nodeType":"ElementaryTypeName","src":"19704:5:70","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":19231,"mutability":"mutable","name":"payInLzToken","nameLocation":"19739:12:70","nodeType":"VariableDeclaration","scope":19255,"src":"19734:17:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19230,"name":"bool","nodeType":"ElementaryTypeName","src":"19734:4:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"19651:106:70"},"returnParameters":{"id":19236,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19235,"mutability":"mutable","name":"fee","nameLocation":"19799:3:70","nodeType":"VariableDeclaration","scope":19255,"src":"19779:23:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$879_memory_ptr","typeString":"struct MessagingFee"},"typeName":{"id":19234,"nodeType":"UserDefinedTypeName","pathNode":{"id":19233,"name":"MessagingFee","nameLocations":["19779:12:70"],"nodeType":"IdentifierPath","referencedDeclaration":879,"src":"19779:12:70"},"referencedDeclaration":879,"src":"19779:12:70","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$879_storage_ptr","typeString":"struct MessagingFee"}},"visibility":"internal"}],"src":"19778:25:70"},"scope":19931,"src":"19637:297:70","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":19298,"nodeType":"Block","src":"20667:217:70","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":19277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19271,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"20681:3:70","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":19272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20685:6:70","memberName":"sender","nodeType":"MemberAccess","src":"20681:10:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":19275,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"20703:4:70","typeDescriptions":{"typeIdentifier":"t_contract$_RiskStewardReceiver_$19931","typeString":"contract RiskStewardReceiver"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RiskStewardReceiver_$19931","typeString":"contract RiskStewardReceiver"}],"id":19274,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20695:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":19273,"name":"address","nodeType":"ElementaryTypeName","src":"20695:7:70","typeDescriptions":{}}},"id":19276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20695:13:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20681:27:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19282,"nodeType":"IfStatement","src":"20677:86:70","trueBody":{"id":19281,"nodeType":"Block","src":"20710:53:70","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":19278,"name":"InvalidLzSendCaller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17027,"src":"20731:19:70","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":19279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20731:21:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19280,"nodeType":"RevertStatement","src":"20724:28:70"}]}},{"assignments":[19284],"declarations":[{"constant":false,"id":19284,"mutability":"mutable","name":"payload","nameLocation":"20786:7:70","nodeType":"VariableDeclaration","scope":19298,"src":"20773:20:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":19283,"name":"bytes","nodeType":"ElementaryTypeName","src":"20773:5:70","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":19289,"initialValue":{"arguments":[{"id":19287,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19261,"src":"20807:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}],"expression":{"id":19285,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20796:3:70","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19286,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20800:6:70","memberName":"encode","nodeType":"MemberAccess","src":"20796:10:70","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":19288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20796:18:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"20773:41:70"},{"expression":{"arguments":[{"id":19291,"name":"dstEid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19258,"src":"20832:6:70","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":19292,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19284,"src":"20840:7:70","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":19293,"name":"options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19263,"src":"20849:7:70","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":19294,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19266,"src":"20858:3:70","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$879_memory_ptr","typeString":"struct MessagingFee memory"}},{"id":19295,"name":"refundAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19268,"src":"20863:13:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_struct$_MessagingFee_$879_memory_ptr","typeString":"struct MessagingFee memory"},{"typeIdentifier":"t_address","typeString":"address"}],"id":19290,"name":"_lzSend","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2345,"src":"20824:7:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_struct$_MessagingFee_$879_memory_ptr_$_t_address_$returns$_t_struct$_MessagingReceipt_$874_memory_ptr_$","typeString":"function (uint32,bytes memory,bytes memory,struct MessagingFee memory,address) returns (struct MessagingReceipt memory)"}},"id":19296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20824:53:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_MessagingReceipt_$874_memory_ptr","typeString":"struct MessagingReceipt memory"}},"id":19297,"nodeType":"ExpressionStatement","src":"20824:53:70"}]},"documentation":{"id":19256,"nodeType":"StructuredDocumentation","src":"19940:525:70","text":" @notice Sends a `RiskParameterUpdate` to a destination chain via LayerZero.\n @param dstEid Destination chain endpoint ID\n @param update The risk parameter update payload to send\n @param options LayerZero message options; if empty, a default executor option is used\n @param fee Messaging fee structure returned by `quote`\n @param refundAddress Address to receive any surplus fee refunds\n @custom:error InvalidLzSendCaller if called by any address other than this contract"},"functionSelector":"05687c19","id":19299,"implemented":true,"kind":"function","modifiers":[],"name":"lzSend","nameLocation":"20479:6:70","nodeType":"FunctionDefinition","parameters":{"id":19269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19258,"mutability":"mutable","name":"dstEid","nameLocation":"20502:6:70","nodeType":"VariableDeclaration","scope":19299,"src":"20495:13:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":19257,"name":"uint32","nodeType":"ElementaryTypeName","src":"20495:6:70","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":19261,"mutability":"mutable","name":"update","nameLocation":"20545:6:70","nodeType":"VariableDeclaration","scope":19299,"src":"20518:33:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate"},"typeName":{"id":19260,"nodeType":"UserDefinedTypeName","pathNode":{"id":19259,"name":"RiskParameterUpdate","nameLocations":["20518:19:70"],"nodeType":"IdentifierPath","referencedDeclaration":16568,"src":"20518:19:70"},"referencedDeclaration":16568,"src":"20518:19:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_storage_ptr","typeString":"struct RiskParameterUpdate"}},"visibility":"internal"},{"constant":false,"id":19263,"mutability":"mutable","name":"options","nameLocation":"20574:7:70","nodeType":"VariableDeclaration","scope":19299,"src":"20561:20:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":19262,"name":"bytes","nodeType":"ElementaryTypeName","src":"20561:5:70","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":19266,"mutability":"mutable","name":"fee","nameLocation":"20611:3:70","nodeType":"VariableDeclaration","scope":19299,"src":"20591:23:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$879_memory_ptr","typeString":"struct MessagingFee"},"typeName":{"id":19265,"nodeType":"UserDefinedTypeName","pathNode":{"id":19264,"name":"MessagingFee","nameLocations":["20591:12:70"],"nodeType":"IdentifierPath","referencedDeclaration":879,"src":"20591:12:70"},"referencedDeclaration":879,"src":"20591:12:70","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$879_storage_ptr","typeString":"struct MessagingFee"}},"visibility":"internal"},{"constant":false,"id":19268,"mutability":"mutable","name":"refundAddress","nameLocation":"20632:13:70","nodeType":"VariableDeclaration","scope":19299,"src":"20624:21:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19267,"name":"address","nodeType":"ElementaryTypeName","src":"20624:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20485:166:70"},"returnParameters":{"id":19270,"nodeType":"ParameterList","parameters":[],"src":"20667:0:70"},"scope":19931,"src":"20470:414:70","stateMutability":"payable","virtual":false,"visibility":"public"},{"baseFunctions":[5902,6053],"body":{"id":19316,"nodeType":"Block","src":"21182:68:70","statements":[{"expression":{"arguments":[{"id":19313,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19302,"src":"21234:8:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19310,"name":"Ownable2StepUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5947,"src":"21192:23:70","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Ownable2StepUpgradeable_$5947_$","typeString":"type(contract Ownable2StepUpgradeable)"}},"id":19312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21216:17:70","memberName":"transferOwnership","nodeType":"MemberAccess","referencedDeclaration":5902,"src":"21192:41:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":19314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21192:51:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19315,"nodeType":"ExpressionStatement","src":"21192:51:70"}]},"documentation":{"id":19300,"nodeType":"StructuredDocumentation","src":"20890:157:70","text":" @dev Overrides OwnableUpgradeable and Ownable2StepUpgradeable to resolve\n      the multiple inheritance ownership transfer conflict."},"functionSelector":"f2fde38b","id":19317,"implemented":true,"kind":"function","modifiers":[{"id":19308,"kind":"modifierInvocation","modifierName":{"id":19307,"name":"onlyOwner","nameLocations":["21172:9:70"],"nodeType":"IdentifierPath","referencedDeclaration":5993,"src":"21172:9:70"},"nodeType":"ModifierInvocation","src":"21172:9:70"}],"name":"transferOwnership","nameLocation":"21061:17:70","nodeType":"FunctionDefinition","overrides":{"id":19306,"nodeType":"OverrideSpecifier","overrides":[{"id":19304,"name":"OwnableUpgradeable","nameLocations":["21127:18:70"],"nodeType":"IdentifierPath","referencedDeclaration":6079,"src":"21127:18:70"},{"id":19305,"name":"Ownable2StepUpgradeable","nameLocations":["21147:23:70"],"nodeType":"IdentifierPath","referencedDeclaration":5947,"src":"21147:23:70"}],"src":"21118:53:70"},"parameters":{"id":19303,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19302,"mutability":"mutable","name":"newOwner","nameLocation":"21096:8:70","nodeType":"VariableDeclaration","scope":19317,"src":"21088:16:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19301,"name":"address","nodeType":"ElementaryTypeName","src":"21088:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21078:32:70"},"returnParameters":{"id":19309,"nodeType":"ParameterList","parameters":[],"src":"21182:0:70"},"scope":19931,"src":"21052:198:70","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[5919,6073],"body":{"id":19332,"nodeType":"Block","src":"21534:69:70","statements":[{"expression":{"arguments":[{"id":19329,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19320,"src":"21587:8:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19326,"name":"Ownable2StepUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5947,"src":"21544:23:70","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Ownable2StepUpgradeable_$5947_$","typeString":"type(contract Ownable2StepUpgradeable)"}},"id":19328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21568:18:70","memberName":"_transferOwnership","nodeType":"MemberAccess","referencedDeclaration":5919,"src":"21544:42:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":19330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21544:52:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19331,"nodeType":"ExpressionStatement","src":"21544:52:70"}]},"documentation":{"id":19318,"nodeType":"StructuredDocumentation","src":"21256:164:70","text":" @dev Internal hook to finalize ownership transfer, resolving the\n      OwnableUpgradeable and Ownable2StepUpgradeable inheritance conflict."},"id":19333,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"21434:18:70","nodeType":"FunctionDefinition","overrides":{"id":19324,"nodeType":"OverrideSpecifier","overrides":[{"id":19322,"name":"OwnableUpgradeable","nameLocations":["21489:18:70"],"nodeType":"IdentifierPath","referencedDeclaration":6079,"src":"21489:18:70"},{"id":19323,"name":"Ownable2StepUpgradeable","nameLocations":["21509:23:70"],"nodeType":"IdentifierPath","referencedDeclaration":5947,"src":"21509:23:70"}],"src":"21480:53:70"},"parameters":{"id":19321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19320,"mutability":"mutable","name":"newOwner","nameLocation":"21461:8:70","nodeType":"VariableDeclaration","scope":19333,"src":"21453:16:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19319,"name":"address","nodeType":"ElementaryTypeName","src":"21453:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21452:18:70"},"returnParameters":{"id":19325,"nodeType":"ParameterList","parameters":[],"src":"21534:0:70"},"scope":19931,"src":"21425:178:70","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":19397,"nodeType":"Block","src":"22226:550:70","statements":[{"assignments":[19346],"declarations":[{"constant":false,"id":19346,"mutability":"mutable","name":"updateId","nameLocation":"22244:8:70","nodeType":"VariableDeclaration","scope":19397,"src":"22236:16:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19345,"name":"uint256","nodeType":"ElementaryTypeName","src":"22236:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":19349,"initialValue":{"expression":{"id":19347,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19337,"src":"22255:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":19348,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22262:8:70","memberName":"updateId","nodeType":"MemberAccess","referencedDeclaration":16547,"src":"22255:15:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"22236:34:70"},{"assignments":[19351],"declarations":[{"constant":false,"id":19351,"mutability":"mutable","name":"unlockTime","nameLocation":"22288:10:70","nodeType":"VariableDeclaration","scope":19397,"src":"22280:18:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19350,"name":"uint256","nodeType":"ElementaryTypeName","src":"22280:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":19361,"initialValue":{"condition":{"id":19352,"name":"useImmediateUnlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19342,"src":"22301:18:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19355,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"22340:5:70","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22346:9:70","memberName":"timestamp","nodeType":"MemberAccess","src":"22340:15:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":19357,"name":"config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19340,"src":"22358:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16859_memory_ptr","typeString":"struct IRiskStewardReceiver.RiskParamConfig memory"}},"id":19358,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22365:8:70","memberName":"timelock","nodeType":"MemberAccess","referencedDeclaration":16856,"src":"22358:15:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22340:33:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"22301:72:70","trueExpression":{"expression":{"id":19353,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"22322:5:70","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22328:9:70","memberName":"timestamp","nodeType":"MemberAccess","src":"22322:15:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"22280:93:70"},{"expression":{"id":19376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":19362,"name":"updates","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18378,"src":"22384:7:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RegisteredUpdate_$16872_storage_$","typeString":"mapping(uint256 => struct IRiskStewardReceiver.RegisteredUpdate storage ref)"}},"id":19364,"indexExpression":{"id":19363,"name":"updateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19346,"src":"22392:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22384:17:70","typeDescriptions":{"typeIdentifier":"t_struct$_RegisteredUpdate_$16872_storage","typeString":"struct IRiskStewardReceiver.RegisteredUpdate storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":19366,"name":"updateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19346,"src":"22445:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19367,"name":"unlockTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"22479:10:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":19368,"name":"UpdateStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16849,"src":"22511:12:70","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_UpdateStatus_$16849_$","typeString":"type(enum IRiskStewardReceiver.UpdateStatus)"}},"id":19369,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22524:7:70","memberName":"Pending","nodeType":"MemberAccess","referencedDeclaration":16844,"src":"22511:20:70","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateStatus_$16849","typeString":"enum IRiskStewardReceiver.UpdateStatus"}},{"arguments":[{"hexValue":"30","id":19372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22563:1:70","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":19371,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22555:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":19370,"name":"address","nodeType":"ElementaryTypeName","src":"22555:7:70","typeDescriptions":{}}},"id":19373,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22555:10:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":19374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22591:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_UpdateStatus_$16849","typeString":"enum IRiskStewardReceiver.UpdateStatus"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":19365,"name":"RegisteredUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16872,"src":"22404:16:70","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RegisteredUpdate_$16872_storage_ptr_$","typeString":"type(struct IRiskStewardReceiver.RegisteredUpdate storage pointer)"}},"id":19375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["22435:8:70","22467:10:70","22503:6:70","22545:8:70","22579:10:70"],"names":["updateId","unlockTime","status","executor","executedAt"],"nodeType":"FunctionCall","src":"22404:199:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_RegisteredUpdate_$16872_memory_ptr","typeString":"struct IRiskStewardReceiver.RegisteredUpdate memory"}},"src":"22384:219:70","typeDescriptions":{"typeIdentifier":"t_struct$_RegisteredUpdate_$16872_storage","typeString":"struct IRiskStewardReceiver.RegisteredUpdate storage ref"}},"id":19377,"nodeType":"ExpressionStatement","src":"22384:219:70"},{"expression":{"id":19386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":19378,"name":"lastRegisteredUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18392,"src":"22614:20:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(bytes32 => mapping(address => uint256))"}},"id":19383,"indexExpression":{"expression":{"id":19379,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19337,"src":"22635:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":19380,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22642:13:70","memberName":"updateTypeKey","nodeType":"MemberAccess","referencedDeclaration":16553,"src":"22635:20:70","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22614:42:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":19384,"indexExpression":{"expression":{"id":19381,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19337,"src":"22657:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":19382,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22664:6:70","memberName":"market","nodeType":"MemberAccess","referencedDeclaration":16549,"src":"22657:13:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22614:57:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":19385,"name":"updateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19346,"src":"22674:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22614:68:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19387,"nodeType":"ExpressionStatement","src":"22614:68:70"},{"eventCall":{"arguments":[{"id":19389,"name":"updateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19346,"src":"22714:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19390,"name":"unlockTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"22724:10:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":19391,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19337,"src":"22736:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":19392,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22743:10:70","memberName":"updateType","nodeType":"MemberAccess","referencedDeclaration":16551,"src":"22736:17:70","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":19393,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19337,"src":"22755:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":19394,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22762:6:70","memberName":"market","nodeType":"MemberAccess","referencedDeclaration":16549,"src":"22755:13:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"id":19388,"name":"UpdateRegistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16941,"src":"22697:16:70","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$_t_address_$returns$__$","typeString":"function (uint256,uint256,string memory,address)"}},"id":19395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22697:72:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19396,"nodeType":"EmitStatement","src":"22692:77:70"}]},"documentation":{"id":19334,"nodeType":"StructuredDocumentation","src":"21609:457:70","text":" @notice Registers an update from the Risk Oracle with a timelock.\n @param update The risk parameter update from the Risk Oracle to register\n @param config The risk parameter configuration for this update type containing timelock\n @param useImmediateUnlock Whether to unlock the update immediately or use timelock\n @custom:event Emits UpdateRegistered with the oracle update ID, unlock time, update type, and market"},"id":19398,"implemented":true,"kind":"function","modifiers":[],"name":"_registerUpdate","nameLocation":"22080:15:70","nodeType":"FunctionDefinition","parameters":{"id":19343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19337,"mutability":"mutable","name":"update","nameLocation":"22132:6:70","nodeType":"VariableDeclaration","scope":19398,"src":"22105:33:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate"},"typeName":{"id":19336,"nodeType":"UserDefinedTypeName","pathNode":{"id":19335,"name":"RiskParameterUpdate","nameLocations":["22105:19:70"],"nodeType":"IdentifierPath","referencedDeclaration":16568,"src":"22105:19:70"},"referencedDeclaration":16568,"src":"22105:19:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_storage_ptr","typeString":"struct RiskParameterUpdate"}},"visibility":"internal"},{"constant":false,"id":19340,"mutability":"mutable","name":"config","nameLocation":"22171:6:70","nodeType":"VariableDeclaration","scope":19398,"src":"22148:29:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16859_memory_ptr","typeString":"struct IRiskStewardReceiver.RiskParamConfig"},"typeName":{"id":19339,"nodeType":"UserDefinedTypeName","pathNode":{"id":19338,"name":"RiskParamConfig","nameLocations":["22148:15:70"],"nodeType":"IdentifierPath","referencedDeclaration":16859,"src":"22148:15:70"},"referencedDeclaration":16859,"src":"22148:15:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16859_storage_ptr","typeString":"struct IRiskStewardReceiver.RiskParamConfig"}},"visibility":"internal"},{"constant":false,"id":19342,"mutability":"mutable","name":"useImmediateUnlock","nameLocation":"22192:18:70","nodeType":"VariableDeclaration","scope":19398,"src":"22187:23:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19341,"name":"bool","nodeType":"ElementaryTypeName","src":"22187:4:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22095:121:70"},"returnParameters":{"id":19344,"nodeType":"ParameterList","parameters":[],"src":"22226:0:70"},"scope":19931,"src":"22071:705:70","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":19468,"nodeType":"Block","src":"23375:485:70","statements":[{"assignments":[19409],"declarations":[{"constant":false,"id":19409,"mutability":"mutable","name":"updateId","nameLocation":"23393:8:70","nodeType":"VariableDeclaration","scope":19468,"src":"23385:16:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19408,"name":"uint256","nodeType":"ElementaryTypeName","src":"23385:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":19412,"initialValue":{"expression":{"id":19410,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19402,"src":"23404:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":19411,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23411:8:70","memberName":"updateId","nodeType":"MemberAccess","referencedDeclaration":16547,"src":"23404:15:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23385:34:70"},{"assignments":[19414],"declarations":[{"constant":false,"id":19414,"mutability":"mutable","name":"timestamp","nameLocation":"23437:9:70","nodeType":"VariableDeclaration","scope":19468,"src":"23429:17:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19413,"name":"uint256","nodeType":"ElementaryTypeName","src":"23429:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":19417,"initialValue":{"expression":{"id":19415,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"23449:5:70","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23455:9:70","memberName":"timestamp","nodeType":"MemberAccess","src":"23449:15:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23429:35:70"},{"assignments":[19420],"declarations":[{"constant":false,"id":19420,"mutability":"mutable","name":"registeredUpdate","nameLocation":"23499:16:70","nodeType":"VariableDeclaration","scope":19468,"src":"23474:41:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_RegisteredUpdate_$16872_storage_ptr","typeString":"struct IRiskStewardReceiver.RegisteredUpdate"},"typeName":{"id":19419,"nodeType":"UserDefinedTypeName","pathNode":{"id":19418,"name":"RegisteredUpdate","nameLocations":["23474:16:70"],"nodeType":"IdentifierPath","referencedDeclaration":16872,"src":"23474:16:70"},"referencedDeclaration":16872,"src":"23474:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_RegisteredUpdate_$16872_storage_ptr","typeString":"struct IRiskStewardReceiver.RegisteredUpdate"}},"visibility":"internal"}],"id":19424,"initialValue":{"baseExpression":{"id":19421,"name":"updates","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18378,"src":"23518:7:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RegisteredUpdate_$16872_storage_$","typeString":"mapping(uint256 => struct IRiskStewardReceiver.RegisteredUpdate storage ref)"}},"id":19423,"indexExpression":{"id":19422,"name":"updateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19409,"src":"23526:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23518:17:70","typeDescriptions":{"typeIdentifier":"t_struct$_RegisteredUpdate_$16872_storage","typeString":"struct IRiskStewardReceiver.RegisteredUpdate storage ref"}},"nodeType":"VariableDeclarationStatement","src":"23474:61:70"},{"expression":{"id":19430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19425,"name":"registeredUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19420,"src":"23546:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_RegisteredUpdate_$16872_storage_ptr","typeString":"struct IRiskStewardReceiver.RegisteredUpdate storage pointer"}},"id":19427,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"23563:6:70","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":16867,"src":"23546:23:70","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateStatus_$16849","typeString":"enum IRiskStewardReceiver.UpdateStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19428,"name":"UpdateStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16849,"src":"23572:12:70","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_UpdateStatus_$16849_$","typeString":"type(enum IRiskStewardReceiver.UpdateStatus)"}},"id":19429,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23585:8:70","memberName":"Executed","nodeType":"MemberAccess","referencedDeclaration":16845,"src":"23572:21:70","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateStatus_$16849","typeString":"enum IRiskStewardReceiver.UpdateStatus"}},"src":"23546:47:70","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateStatus_$16849","typeString":"enum IRiskStewardReceiver.UpdateStatus"}},"id":19431,"nodeType":"ExpressionStatement","src":"23546:47:70"},{"expression":{"id":19440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19432,"name":"registeredUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19420,"src":"23603:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_RegisteredUpdate_$16872_storage_ptr","typeString":"struct IRiskStewardReceiver.RegisteredUpdate storage pointer"}},"id":19434,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"23620:8:70","memberName":"executor","nodeType":"MemberAccess","referencedDeclaration":16869,"src":"23603:25:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":19437,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"23639:3:70","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":19438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23643:6:70","memberName":"sender","nodeType":"MemberAccess","src":"23639:10:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":19436,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23631:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":19435,"name":"address","nodeType":"ElementaryTypeName","src":"23631:7:70","typeDescriptions":{}}},"id":19439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23631:19:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"23603:47:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":19441,"nodeType":"ExpressionStatement","src":"23603:47:70"},{"expression":{"id":19446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19442,"name":"registeredUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19420,"src":"23660:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_RegisteredUpdate_$16872_storage_ptr","typeString":"struct IRiskStewardReceiver.RegisteredUpdate storage pointer"}},"id":19444,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"23677:10:70","memberName":"executedAt","nodeType":"MemberAccess","referencedDeclaration":16871,"src":"23660:27:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":19445,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19414,"src":"23690:9:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23660:39:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19447,"nodeType":"ExpressionStatement","src":"23660:39:70"},{"expression":{"id":19456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":19448,"name":"lastProcessedUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18385,"src":"23709:19:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(bytes32 => mapping(address => uint256))"}},"id":19453,"indexExpression":{"expression":{"id":19449,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19402,"src":"23729:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":19450,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23736:13:70","memberName":"updateTypeKey","nodeType":"MemberAccess","referencedDeclaration":16553,"src":"23729:20:70","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23709:41:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":19454,"indexExpression":{"expression":{"id":19451,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19402,"src":"23751:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":19452,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23758:6:70","memberName":"market","nodeType":"MemberAccess","referencedDeclaration":16549,"src":"23751:13:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23709:56:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":19455,"name":"updateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19409,"src":"23768:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23709:67:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19457,"nodeType":"ExpressionStatement","src":"23709:67:70"},{"expression":{"arguments":[{"id":19461,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19402,"src":"23807:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}],"expression":{"id":19458,"name":"steward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19405,"src":"23787:7:70","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskSteward_$16839","typeString":"contract IRiskSteward"}},"id":19460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23795:11:70","memberName":"applyUpdate","nodeType":"MemberAccess","referencedDeclaration":16838,"src":"23787:19:70","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_RiskParameterUpdate_$16568_memory_ptr_$returns$__$","typeString":"function (struct RiskParameterUpdate memory) external"}},"id":19462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23787:27:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19463,"nodeType":"ExpressionStatement","src":"23787:27:70"},{"eventCall":{"arguments":[{"id":19465,"name":"updateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19409,"src":"23844:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19464,"name":"UpdateExecuted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16911,"src":"23829:14:70","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":19466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23829:24:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19467,"nodeType":"EmitStatement","src":"23824:29:70"}]},"documentation":{"id":19399,"nodeType":"StructuredDocumentation","src":"22782:498:70","text":" @notice Executes a validated update via the risk steward and records its execution metadata.\n         Updates the registered update storage, last processed tracking, and emits the execution event.\n         Preserves the unlockTime that was set during registration.\n @param update The risk parameter update to execute\n @param steward The risk steward contract that will process the update\n @custom:event Emits UpdateExecuted with the oracle update ID"},"id":19469,"implemented":true,"kind":"function","modifiers":[],"name":"_executeUpdate","nameLocation":"23294:14:70","nodeType":"FunctionDefinition","parameters":{"id":19406,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19402,"mutability":"mutable","name":"update","nameLocation":"23336:6:70","nodeType":"VariableDeclaration","scope":19469,"src":"23309:33:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate"},"typeName":{"id":19401,"nodeType":"UserDefinedTypeName","pathNode":{"id":19400,"name":"RiskParameterUpdate","nameLocations":["23309:19:70"],"nodeType":"IdentifierPath","referencedDeclaration":16568,"src":"23309:19:70"},"referencedDeclaration":16568,"src":"23309:19:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_storage_ptr","typeString":"struct RiskParameterUpdate"}},"visibility":"internal"},{"constant":false,"id":19405,"mutability":"mutable","name":"steward","nameLocation":"23357:7:70","nodeType":"VariableDeclaration","scope":19469,"src":"23344:20:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskSteward_$16839","typeString":"contract IRiskSteward"},"typeName":{"id":19404,"nodeType":"UserDefinedTypeName","pathNode":{"id":19403,"name":"IRiskSteward","nameLocations":["23344:12:70"],"nodeType":"IdentifierPath","referencedDeclaration":16839,"src":"23344:12:70"},"referencedDeclaration":16839,"src":"23344:12:70","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskSteward_$16839","typeString":"contract IRiskSteward"}},"visibility":"internal"}],"src":"23308:57:70"},"returnParameters":{"id":19407,"nodeType":"ParameterList","parameters":[],"src":"23375:0:70"},"scope":19931,"src":"23285:575:70","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":19596,"nodeType":"Block","src":"24576:948:70","statements":[{"assignments":[19481],"declarations":[{"constant":false,"id":19481,"mutability":"mutable","name":"option","nameLocation":"24599:6:70","nodeType":"VariableDeclaration","scope":19596,"src":"24586:19:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":19480,"name":"bytes","nodeType":"ElementaryTypeName","src":"24586:5:70","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":19495,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19482,"name":"options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19475,"src":"24608:7:70","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":19483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24616:6:70","memberName":"length","nodeType":"MemberAccess","src":"24608:14:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":19484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24626:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"24608:19:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":19493,"name":"options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19475,"src":"24725:7:70","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":19494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"24608:124:70","trueExpression":{"arguments":[{"hexValue":"315f3030305f303030","id":19490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24697:9:70","typeDescriptions":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"value":"1_000_000"},{"hexValue":"30","id":19491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24708:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":19486,"name":"OptionsBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2895,"src":"24642:14:70","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_OptionsBuilder_$2895_$","typeString":"type(library OptionsBuilder)"}},"id":19487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24657:10:70","memberName":"newOptions","nodeType":"MemberAccess","referencedDeclaration":2555,"src":"24642:25:70","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":19488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24642:27:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":19489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24670:26:70","memberName":"addExecutorLzReceiveOption","nodeType":"MemberAccess","referencedDeclaration":2586,"src":"24642:54:70","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint128_$_t_uint128_$returns$_t_bytes_memory_ptr_$attached_to$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,uint128,uint128) pure returns (bytes memory)"}},"id":19492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24642:68:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"24586:146:70"},{"assignments":[19498],"declarations":[{"constant":false,"id":19498,"mutability":"mutable","name":"fee","nameLocation":"24763:3:70","nodeType":"VariableDeclaration","scope":19596,"src":"24743:23:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$879_memory_ptr","typeString":"struct MessagingFee"},"typeName":{"id":19497,"nodeType":"UserDefinedTypeName","pathNode":{"id":19496,"name":"MessagingFee","nameLocations":["24743:12:70"],"nodeType":"IdentifierPath","referencedDeclaration":879,"src":"24743:12:70"},"referencedDeclaration":879,"src":"24743:12:70","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$879_storage_ptr","typeString":"struct MessagingFee"}},"visibility":"internal"}],"id":19499,"nodeType":"VariableDeclarationStatement","src":"24743:23:70"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19500,"name":"nativeFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19477,"src":"24781:9:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":19501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24794:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"24781:14:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":19519,"nodeType":"Block","src":"24862:57:70","statements":[{"expression":{"id":19517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19512,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19498,"src":"24876:3:70","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$879_memory_ptr","typeString":"struct MessagingFee memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":19514,"name":"nativeFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19477,"src":"24895:9:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":19515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24906:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":19513,"name":"MessagingFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":879,"src":"24882:12:70","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_MessagingFee_$879_storage_ptr_$","typeString":"type(struct MessagingFee storage pointer)"}},"id":19516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24882:26:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$879_memory_ptr","typeString":"struct MessagingFee memory"}},"src":"24876:32:70","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$879_memory_ptr","typeString":"struct MessagingFee memory"}},"id":19518,"nodeType":"ExpressionStatement","src":"24876:32:70"}]},"id":19520,"nodeType":"IfStatement","src":"24777:142:70","trueBody":{"id":19511,"nodeType":"Block","src":"24797:59:70","statements":[{"expression":{"id":19509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19503,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19498,"src":"24811:3:70","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$879_memory_ptr","typeString":"struct MessagingFee memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":19505,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19473,"src":"24823:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},{"id":19506,"name":"option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19481,"src":"24831:6:70","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"66616c7365","id":19507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"24839:5:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":19504,"name":"quote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19255,"src":"24817:5:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_RiskParameterUpdate_$16568_memory_ptr_$_t_bytes_memory_ptr_$_t_bool_$returns$_t_struct$_MessagingFee_$879_memory_ptr_$","typeString":"function (struct RiskParameterUpdate memory,bytes memory,bool) view returns (struct MessagingFee memory)"}},"id":19508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24817:28:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$879_memory_ptr","typeString":"struct MessagingFee memory"}},"src":"24811:34:70","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$879_memory_ptr","typeString":"struct MessagingFee memory"}},"id":19510,"nodeType":"ExpressionStatement","src":"24811:34:70"}]}},{"expression":{"arguments":[{"expression":{"id":19527,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19473,"src":"24965:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":19528,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24972:9:70","memberName":"destLzEid","nodeType":"MemberAccess","referencedDeclaration":16565,"src":"24965:16:70","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":19529,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19473,"src":"24983:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},{"id":19530,"name":"option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19481,"src":"24991:6:70","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":19531,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19498,"src":"24999:3:70","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$879_memory_ptr","typeString":"struct MessagingFee memory"}},{"arguments":[{"id":19534,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"25012:4:70","typeDescriptions":{"typeIdentifier":"t_contract$_RiskStewardReceiver_$19931","typeString":"contract RiskStewardReceiver"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RiskStewardReceiver_$19931","typeString":"contract RiskStewardReceiver"}],"id":19533,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25004:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":19532,"name":"address","nodeType":"ElementaryTypeName","src":"25004:7:70","typeDescriptions":{}}},"id":19535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25004:13:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_struct$_MessagingFee_$879_memory_ptr","typeString":"struct MessagingFee memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_struct$_MessagingFee_$879_memory_ptr","typeString":"struct MessagingFee memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19521,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"24929:4:70","typeDescriptions":{"typeIdentifier":"t_contract$_RiskStewardReceiver_$19931","typeString":"contract RiskStewardReceiver"}},"id":19523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24934:6:70","memberName":"lzSend","nodeType":"MemberAccess","referencedDeclaration":19299,"src":"24929:11:70","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint32_$_t_struct$_RiskParameterUpdate_$16568_memory_ptr_$_t_bytes_memory_ptr_$_t_struct$_MessagingFee_$879_memory_ptr_$_t_address_$returns$__$","typeString":"function (uint32,struct RiskParameterUpdate memory,bytes memory,struct MessagingFee memory,address) payable external"}},"id":19526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":19524,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19498,"src":"24949:3:70","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$879_memory_ptr","typeString":"struct MessagingFee memory"}},"id":19525,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24953:9:70","memberName":"nativeFee","nodeType":"MemberAccess","referencedDeclaration":876,"src":"24949:13:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"24929:35:70","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint32_$_t_struct$_RiskParameterUpdate_$16568_memory_ptr_$_t_bytes_memory_ptr_$_t_struct$_MessagingFee_$879_memory_ptr_$_t_address_$returns$__$value","typeString":"function (uint32,struct RiskParameterUpdate memory,bytes memory,struct MessagingFee memory,address) payable external"}},"id":19536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24929:89:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19537,"nodeType":"ExpressionStatement","src":"24929:89:70"},{"assignments":[19540],"declarations":[{"constant":false,"id":19540,"mutability":"mutable","name":"registeredUpdate","nameLocation":"25054:16:70","nodeType":"VariableDeclaration","scope":19596,"src":"25029:41:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_RegisteredUpdate_$16872_storage_ptr","typeString":"struct IRiskStewardReceiver.RegisteredUpdate"},"typeName":{"id":19539,"nodeType":"UserDefinedTypeName","pathNode":{"id":19538,"name":"RegisteredUpdate","nameLocations":["25029:16:70"],"nodeType":"IdentifierPath","referencedDeclaration":16872,"src":"25029:16:70"},"referencedDeclaration":16872,"src":"25029:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_RegisteredUpdate_$16872_storage_ptr","typeString":"struct IRiskStewardReceiver.RegisteredUpdate"}},"visibility":"internal"}],"id":19545,"initialValue":{"baseExpression":{"id":19541,"name":"updates","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18378,"src":"25073:7:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RegisteredUpdate_$16872_storage_$","typeString":"mapping(uint256 => struct IRiskStewardReceiver.RegisteredUpdate storage ref)"}},"id":19544,"indexExpression":{"expression":{"id":19542,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19473,"src":"25081:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":19543,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25088:8:70","memberName":"updateId","nodeType":"MemberAccess","referencedDeclaration":16547,"src":"25081:15:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25073:24:70","typeDescriptions":{"typeIdentifier":"t_struct$_RegisteredUpdate_$16872_storage","typeString":"struct IRiskStewardReceiver.RegisteredUpdate storage ref"}},"nodeType":"VariableDeclarationStatement","src":"25029:68:70"},{"expression":{"id":19551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19546,"name":"registeredUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19540,"src":"25107:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_RegisteredUpdate_$16872_storage_ptr","typeString":"struct IRiskStewardReceiver.RegisteredUpdate storage pointer"}},"id":19548,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25124:6:70","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":16867,"src":"25107:23:70","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateStatus_$16849","typeString":"enum IRiskStewardReceiver.UpdateStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19549,"name":"UpdateStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16849,"src":"25133:12:70","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_UpdateStatus_$16849_$","typeString":"type(enum IRiskStewardReceiver.UpdateStatus)"}},"id":19550,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25146:19:70","memberName":"SENT_TO_DESTINATION","nodeType":"MemberAccess","referencedDeclaration":16848,"src":"25133:32:70","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateStatus_$16849","typeString":"enum IRiskStewardReceiver.UpdateStatus"}},"src":"25107:58:70","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateStatus_$16849","typeString":"enum IRiskStewardReceiver.UpdateStatus"}},"id":19552,"nodeType":"ExpressionStatement","src":"25107:58:70"},{"expression":{"id":19561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19553,"name":"registeredUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19540,"src":"25175:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_RegisteredUpdate_$16872_storage_ptr","typeString":"struct IRiskStewardReceiver.RegisteredUpdate storage pointer"}},"id":19555,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25192:8:70","memberName":"executor","nodeType":"MemberAccess","referencedDeclaration":16869,"src":"25175:25:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":19558,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"25211:3:70","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":19559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25215:6:70","memberName":"sender","nodeType":"MemberAccess","src":"25211:10:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":19557,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25203:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":19556,"name":"address","nodeType":"ElementaryTypeName","src":"25203:7:70","typeDescriptions":{}}},"id":19560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25203:19:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"25175:47:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":19562,"nodeType":"ExpressionStatement","src":"25175:47:70"},{"expression":{"id":19568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19563,"name":"registeredUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19540,"src":"25232:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_RegisteredUpdate_$16872_storage_ptr","typeString":"struct IRiskStewardReceiver.RegisteredUpdate storage pointer"}},"id":19565,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25249:10:70","memberName":"executedAt","nodeType":"MemberAccess","referencedDeclaration":16871,"src":"25232:27:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19566,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"25262:5:70","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25268:9:70","memberName":"timestamp","nodeType":"MemberAccess","src":"25262:15:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25232:45:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19569,"nodeType":"ExpressionStatement","src":"25232:45:70"},{"assignments":[19571],"declarations":[{"constant":false,"id":19571,"mutability":"mutable","name":"updateTypeKey","nameLocation":"25296:13:70","nodeType":"VariableDeclaration","scope":19596,"src":"25288:21:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19570,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25288:7:70","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":19574,"initialValue":{"expression":{"id":19572,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19473,"src":"25312:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":19573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25319:13:70","memberName":"updateTypeKey","nodeType":"MemberAccess","referencedDeclaration":16553,"src":"25312:20:70","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"25288:44:70"},{"expression":{"id":19583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":19575,"name":"lastProcessedUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18385,"src":"25342:19:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(bytes32 => mapping(address => uint256))"}},"id":19579,"indexExpression":{"id":19576,"name":"updateTypeKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19571,"src":"25362:13:70","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25342:34:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":19580,"indexExpression":{"expression":{"id":19577,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19473,"src":"25377:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":19578,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25384:6:70","memberName":"market","nodeType":"MemberAccess","referencedDeclaration":16549,"src":"25377:13:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"25342:49:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19581,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19473,"src":"25394:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":19582,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25401:8:70","memberName":"updateId","nodeType":"MemberAccess","referencedDeclaration":16547,"src":"25394:15:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25342:67:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19584,"nodeType":"ExpressionStatement","src":"25342:67:70"},{"eventCall":{"arguments":[{"expression":{"id":19586,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19473,"src":"25449:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":19587,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25456:8:70","memberName":"updateId","nodeType":"MemberAccess","referencedDeclaration":16547,"src":"25449:15:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":19588,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19473,"src":"25466:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":19589,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25473:9:70","memberName":"destLzEid","nodeType":"MemberAccess","referencedDeclaration":16565,"src":"25466:16:70","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"expression":{"id":19590,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19473,"src":"25484:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":19591,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25491:10:70","memberName":"updateType","nodeType":"MemberAccess","referencedDeclaration":16551,"src":"25484:17:70","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":19592,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19473,"src":"25503:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":19593,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25510:6:70","memberName":"market","nodeType":"MemberAccess","referencedDeclaration":16549,"src":"25503:13:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"id":19585,"name":"UpdateSentToDestination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16952,"src":"25425:23:70","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint32_$_t_string_memory_ptr_$_t_address_$returns$__$","typeString":"function (uint256,uint32,string memory,address)"}},"id":19594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25425:92:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19595,"nodeType":"EmitStatement","src":"25420:97:70"}]},"documentation":{"id":19470,"nodeType":"StructuredDocumentation","src":"23866:593:70","text":" @notice Sends a risk parameter update to a destination chain via LayerZero and records it as sent.\n         The update should already be registered before calling this function.\n @param update The risk parameter update to send to the destination chain\n @param options LayerZero message options; if empty, default executor option is used\n @param nativeFee Native tokens supplied to cover the bridge fee (0 to use the quoted amount)\n @custom:event Emits UpdateSentToDestination with the update ID, destination endpoint ID, update type, and market"},"id":19597,"implemented":true,"kind":"function","modifiers":[],"name":"_sendRemoteUpdate","nameLocation":"24473:17:70","nodeType":"FunctionDefinition","parameters":{"id":19478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19473,"mutability":"mutable","name":"update","nameLocation":"24518:6:70","nodeType":"VariableDeclaration","scope":19597,"src":"24491:33:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate"},"typeName":{"id":19472,"nodeType":"UserDefinedTypeName","pathNode":{"id":19471,"name":"RiskParameterUpdate","nameLocations":["24491:19:70"],"nodeType":"IdentifierPath","referencedDeclaration":16568,"src":"24491:19:70"},"referencedDeclaration":16568,"src":"24491:19:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_storage_ptr","typeString":"struct RiskParameterUpdate"}},"visibility":"internal"},{"constant":false,"id":19475,"mutability":"mutable","name":"options","nameLocation":"24539:7:70","nodeType":"VariableDeclaration","scope":19597,"src":"24526:20:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":19474,"name":"bytes","nodeType":"ElementaryTypeName","src":"24526:5:70","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":19477,"mutability":"mutable","name":"nativeFee","nameLocation":"24556:9:70","nodeType":"VariableDeclaration","scope":19597,"src":"24548:17:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19476,"name":"uint256","nodeType":"ElementaryTypeName","src":"24548:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24490:76:70"},"returnParameters":{"id":19479,"nodeType":"ParameterList","parameters":[],"src":"24576:0:70"},"scope":19931,"src":"24464:1060:70","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":19670,"nodeType":"Block","src":"26250:832:70","statements":[{"assignments":[19605],"declarations":[{"constant":false,"id":19605,"mutability":"mutable","name":"registeredUpdateId","nameLocation":"26268:18:70","nodeType":"VariableDeclaration","scope":19670,"src":"26260:26:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19604,"name":"uint256","nodeType":"ElementaryTypeName","src":"26260:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":19613,"initialValue":{"baseExpression":{"baseExpression":{"id":19606,"name":"lastRegisteredUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18392,"src":"26289:20:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(bytes32 => mapping(address => uint256))"}},"id":19609,"indexExpression":{"expression":{"id":19607,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19601,"src":"26310:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":19608,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26317:13:70","memberName":"updateTypeKey","nodeType":"MemberAccess","referencedDeclaration":16553,"src":"26310:20:70","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26289:42:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":19612,"indexExpression":{"expression":{"id":19610,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19601,"src":"26332:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":19611,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26339:6:70","memberName":"market","nodeType":"MemberAccess","referencedDeclaration":16549,"src":"26332:13:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26289:57:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"26260:86:70"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19614,"name":"registeredUpdateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19605,"src":"26360:18:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":19615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26382:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"26360:23:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19618,"nodeType":"IfStatement","src":"26356:36:70","trueBody":{"functionReturnParameters":19603,"id":19617,"nodeType":"Return","src":"26385:7:70"}},{"assignments":[19621],"declarations":[{"constant":false,"id":19621,"mutability":"mutable","name":"existing","nameLocation":"26475:8:70","nodeType":"VariableDeclaration","scope":19670,"src":"26450:33:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_RegisteredUpdate_$16872_storage_ptr","typeString":"struct IRiskStewardReceiver.RegisteredUpdate"},"typeName":{"id":19620,"nodeType":"UserDefinedTypeName","pathNode":{"id":19619,"name":"RegisteredUpdate","nameLocations":["26450:16:70"],"nodeType":"IdentifierPath","referencedDeclaration":16872,"src":"26450:16:70"},"referencedDeclaration":16872,"src":"26450:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_RegisteredUpdate_$16872_storage_ptr","typeString":"struct IRiskStewardReceiver.RegisteredUpdate"}},"visibility":"internal"}],"id":19625,"initialValue":{"baseExpression":{"id":19622,"name":"updates","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18378,"src":"26486:7:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RegisteredUpdate_$16872_storage_$","typeString":"mapping(uint256 => struct IRiskStewardReceiver.RegisteredUpdate storage ref)"}},"id":19624,"indexExpression":{"id":19623,"name":"registeredUpdateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19605,"src":"26494:18:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26486:27:70","typeDescriptions":{"typeIdentifier":"t_struct$_RegisteredUpdate_$16872_storage","typeString":"struct IRiskStewardReceiver.RegisteredUpdate storage ref"}},"nodeType":"VariableDeclarationStatement","src":"26450:63:70"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_UpdateStatus_$16849","typeString":"enum IRiskStewardReceiver.UpdateStatus"},"id":19630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19626,"name":"existing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19621,"src":"26527:8:70","typeDescriptions":{"typeIdentifier":"t_struct$_RegisteredUpdate_$16872_storage_ptr","typeString":"struct IRiskStewardReceiver.RegisteredUpdate storage pointer"}},"id":19627,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26536:6:70","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":16867,"src":"26527:15:70","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateStatus_$16849","typeString":"enum IRiskStewardReceiver.UpdateStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":19628,"name":"UpdateStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16849,"src":"26546:12:70","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_UpdateStatus_$16849_$","typeString":"type(enum IRiskStewardReceiver.UpdateStatus)"}},"id":19629,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26559:7:70","memberName":"Pending","nodeType":"MemberAccess","referencedDeclaration":16844,"src":"26546:20:70","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateStatus_$16849","typeString":"enum IRiskStewardReceiver.UpdateStatus"}},"src":"26527:39:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19632,"nodeType":"IfStatement","src":"26523:52:70","trueBody":{"functionReturnParameters":19603,"id":19631,"nodeType":"Return","src":"26568:7:70"}},{"assignments":[19635],"declarations":[{"constant":false,"id":19635,"mutability":"mutable","name":"existingUpdate","nameLocation":"26640:14:70","nodeType":"VariableDeclaration","scope":19670,"src":"26613:41:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate"},"typeName":{"id":19634,"nodeType":"UserDefinedTypeName","pathNode":{"id":19633,"name":"RiskParameterUpdate","nameLocations":["26613:19:70"],"nodeType":"IdentifierPath","referencedDeclaration":16568,"src":"26613:19:70"},"referencedDeclaration":16568,"src":"26613:19:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_storage_ptr","typeString":"struct RiskParameterUpdate"}},"visibility":"internal"}],"id":19640,"initialValue":{"arguments":[{"id":19638,"name":"registeredUpdateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19605,"src":"26683:18:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19636,"name":"RISK_ORACLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18363,"src":"26657:11:70","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskOracle_$16808","typeString":"contract IRiskOracle"}},"id":19637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26669:13:70","memberName":"getUpdateById","nodeType":"MemberAccess","referencedDeclaration":16738,"src":"26657:25:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_RiskParameterUpdate_$16568_memory_ptr_$","typeString":"function (uint256) view external returns (struct RiskParameterUpdate memory)"}},"id":19639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26657:45:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"nodeType":"VariableDeclarationStatement","src":"26613:89:70"},{"assignments":[19642],"declarations":[{"constant":false,"id":19642,"mutability":"mutable","name":"expired","nameLocation":"26717:7:70","nodeType":"VariableDeclaration","scope":19670,"src":"26712:12:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19641,"name":"bool","nodeType":"ElementaryTypeName","src":"26712:4:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":19650,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19643,"name":"existingUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19635,"src":"26727:14:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":19644,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26742:9:70","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":16559,"src":"26727:24:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":19645,"name":"UPDATE_EXPIRATION_TIME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18356,"src":"26754:22:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26727:49:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":19647,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"26779:5:70","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26785:9:70","memberName":"timestamp","nodeType":"MemberAccess","src":"26779:15:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26727:67:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"26712:82:70"},{"condition":{"id":19651,"name":"expired","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19642,"src":"26809:7:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19665,"nodeType":"IfStatement","src":"26805:148:70","trueBody":{"id":19664,"nodeType":"Block","src":"26818:135:70","statements":[{"expression":{"id":19657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19652,"name":"existing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19621,"src":"26832:8:70","typeDescriptions":{"typeIdentifier":"t_struct$_RegisteredUpdate_$16872_storage_ptr","typeString":"struct IRiskStewardReceiver.RegisteredUpdate storage pointer"}},"id":19654,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"26841:6:70","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":16867,"src":"26832:15:70","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateStatus_$16849","typeString":"enum IRiskStewardReceiver.UpdateStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19655,"name":"UpdateStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16849,"src":"26850:12:70","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_UpdateStatus_$16849_$","typeString":"type(enum IRiskStewardReceiver.UpdateStatus)"}},"id":19656,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26863:7:70","memberName":"Expired","nodeType":"MemberAccess","referencedDeclaration":16847,"src":"26850:20:70","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateStatus_$16849","typeString":"enum IRiskStewardReceiver.UpdateStatus"}},"src":"26832:38:70","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateStatus_$16849","typeString":"enum IRiskStewardReceiver.UpdateStatus"}},"id":19658,"nodeType":"ExpressionStatement","src":"26832:38:70"},{"eventCall":{"arguments":[{"id":19660,"name":"registeredUpdateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19605,"src":"26903:18:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19659,"name":"UpdateExpired","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16921,"src":"26889:13:70","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":19661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26889:33:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19662,"nodeType":"EmitStatement","src":"26884:38:70"},{"functionReturnParameters":19603,"id":19663,"nodeType":"Return","src":"26936:7:70"}]}},{"errorCall":{"arguments":[{"id":19667,"name":"registeredUpdateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19605,"src":"27056:18:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19666,"name":"RegisteredUpdateTypeExist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17018,"src":"27030:25:70","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":19668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27030:45:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19669,"nodeType":"RevertStatement","src":"27023:52:70"}]},"documentation":{"id":19598,"nodeType":"StructuredDocumentation","src":"25530:640:70","text":" @notice Ensures there is no other pending registered update of the same type for the same market.\n         If a pending update exists and is expired, it is marked as expired and a new update can proceed.\n         If a pending update exists and is not expired, the call reverts to prevent overlapping updates.\n @param update The risk parameter update being registered\n @custom:event Emits UpdateExpired with the ID of the previously pending update if it is found to be expired\n @custom:error RegisteredUpdateTypeExist if there is a non‑expired pending update of the same type for the market"},"id":19671,"implemented":true,"kind":"function","modifiers":[],"name":"_ensureNoActiveUpdate","nameLocation":"26184:21:70","nodeType":"FunctionDefinition","parameters":{"id":19602,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19601,"mutability":"mutable","name":"update","nameLocation":"26233:6:70","nodeType":"VariableDeclaration","scope":19671,"src":"26206:33:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate"},"typeName":{"id":19600,"nodeType":"UserDefinedTypeName","pathNode":{"id":19599,"name":"RiskParameterUpdate","nameLocations":["26206:19:70"],"nodeType":"IdentifierPath","referencedDeclaration":16568,"src":"26206:19:70"},"referencedDeclaration":16568,"src":"26206:19:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_storage_ptr","typeString":"struct RiskParameterUpdate"}},"visibility":"internal"}],"src":"26205:35:70"},"returnParameters":{"id":19603,"nodeType":"ParameterList","parameters":[],"src":"26250:0:70"},"scope":19931,"src":"26175:907:70","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":19791,"nodeType":"Block","src":"28052:1507:70","statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_UpdateStatus_$16849","typeString":"enum IRiskStewardReceiver.UpdateStatus"},"id":19690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":19683,"name":"updates","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18378,"src":"28121:7:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RegisteredUpdate_$16872_storage_$","typeString":"mapping(uint256 => struct IRiskStewardReceiver.RegisteredUpdate storage ref)"}},"id":19686,"indexExpression":{"expression":{"id":19684,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19675,"src":"28129:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":19685,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28136:8:70","memberName":"updateId","nodeType":"MemberAccess","referencedDeclaration":16547,"src":"28129:15:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28121:24:70","typeDescriptions":{"typeIdentifier":"t_struct$_RegisteredUpdate_$16872_storage","typeString":"struct IRiskStewardReceiver.RegisteredUpdate storage ref"}},"id":19687,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28146:6:70","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":16867,"src":"28121:31:70","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateStatus_$16849","typeString":"enum IRiskStewardReceiver.UpdateStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":19688,"name":"UpdateStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16849,"src":"28156:12:70","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_UpdateStatus_$16849_$","typeString":"type(enum IRiskStewardReceiver.UpdateStatus)"}},"id":19689,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28169:4:70","memberName":"None","nodeType":"MemberAccess","referencedDeclaration":16843,"src":"28156:17:70","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateStatus_$16849","typeString":"enum IRiskStewardReceiver.UpdateStatus"}},"src":"28121:52:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19695,"nodeType":"IfStatement","src":"28117:113:70","trueBody":{"id":19694,"nodeType":"Block","src":"28175:55:70","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":19691,"name":"UpdateAlreadyResolved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16989,"src":"28196:21:70","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":19692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28196:23:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19693,"nodeType":"RevertStatement","src":"28189:30:70"}]}},{"condition":{"id":19698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"28281:14:70","subExpression":{"expression":{"id":19696,"name":"config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19678,"src":"28282:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16859_storage_ptr","typeString":"struct IRiskStewardReceiver.RiskParamConfig storage pointer"}},"id":19697,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28289:6:70","memberName":"active","nodeType":"MemberAccess","referencedDeclaration":16852,"src":"28282:13:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19703,"nodeType":"IfStatement","src":"28277:69:70","trueBody":{"id":19702,"nodeType":"Block","src":"28297:49:70","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":19699,"name":"ConfigNotActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16983,"src":"28318:15:70","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":19700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28318:17:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19701,"nodeType":"RevertStatement","src":"28311:24:70"}]}},{"assignments":[19705],"declarations":[{"constant":false,"id":19705,"mutability":"mutable","name":"latestUpdateIdForMarketAndType","nameLocation":"28435:30:70","nodeType":"VariableDeclaration","scope":19791,"src":"28427:38:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19704,"name":"uint256","nodeType":"ElementaryTypeName","src":"28427:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":19713,"initialValue":{"arguments":[{"expression":{"id":19708,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19675,"src":"28526:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":19709,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28533:10:70","memberName":"updateType","nodeType":"MemberAccess","referencedDeclaration":16551,"src":"28526:17:70","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":19710,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19675,"src":"28557:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":19711,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28564:6:70","memberName":"market","nodeType":"MemberAccess","referencedDeclaration":16549,"src":"28557:13:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19706,"name":"RISK_ORACLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18363,"src":"28468:11:70","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskOracle_$16808","typeString":"contract IRiskOracle"}},"id":19707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28480:32:70","memberName":"getLatestUpdateIdByTypeAndMarket","nodeType":"MemberAccess","referencedDeclaration":16729,"src":"28468:44:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (string memory,address) view external returns (uint256)"}},"id":19712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28468:112:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28427:153:70"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19714,"name":"latestUpdateIdForMarketAndType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19705,"src":"28594:30:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":19715,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19675,"src":"28628:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":19716,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28635:8:70","memberName":"updateId","nodeType":"MemberAccess","referencedDeclaration":16547,"src":"28628:15:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28594:49:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19722,"nodeType":"IfStatement","src":"28590:104:70","trueBody":{"id":19721,"nodeType":"Block","src":"28645:49:70","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":19718,"name":"UpdateIsExpired","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16986,"src":"28666:15:70","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":19719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28666:17:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19720,"nodeType":"RevertStatement","src":"28659:24:70"}]}},{"assignments":[19724],"declarations":[{"constant":false,"id":19724,"mutability":"mutable","name":"currentTime","nameLocation":"28712:11:70","nodeType":"VariableDeclaration","scope":19791,"src":"28704:19:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19723,"name":"uint256","nodeType":"ElementaryTypeName","src":"28704:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":19727,"initialValue":{"expression":{"id":19725,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"28726:5:70","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28732:9:70","memberName":"timestamp","nodeType":"MemberAccess","src":"28726:15:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28704:37:70"},{"assignments":[19729],"declarations":[{"constant":false,"id":19729,"mutability":"mutable","name":"expirationTime","nameLocation":"28759:14:70","nodeType":"VariableDeclaration","scope":19791,"src":"28751:22:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19728,"name":"uint256","nodeType":"ElementaryTypeName","src":"28751:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":19734,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19730,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19675,"src":"28776:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":19731,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28783:9:70","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":16559,"src":"28776:16:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":19732,"name":"UPDATE_EXPIRATION_TIME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18356,"src":"28795:22:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28776:41:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28751:66:70"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19735,"name":"expirationTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19729,"src":"28860:14:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":19736,"name":"currentTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19724,"src":"28877:11:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28860:28:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19742,"nodeType":"IfStatement","src":"28856:83:70","trueBody":{"id":19741,"nodeType":"Block","src":"28890:49:70","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":19738,"name":"UpdateIsExpired","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16986,"src":"28911:15:70","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":19739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28911:17:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19740,"nodeType":"RevertStatement","src":"28904:24:70"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19743,"name":"expirationTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19729,"src":"29022:14:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19744,"name":"currentTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19724,"src":"29039:11:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":19745,"name":"config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19678,"src":"29053:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16859_storage_ptr","typeString":"struct IRiskStewardReceiver.RiskParamConfig storage pointer"}},"id":19746,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29060:8:70","memberName":"timelock","nodeType":"MemberAccess","referencedDeclaration":16856,"src":"29053:15:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29039:29:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29022:46:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19753,"nodeType":"IfStatement","src":"29018:114:70","trueBody":{"id":19752,"nodeType":"Block","src":"29070:62:70","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":19749,"name":"UpdateWillExpireBeforeUnlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17048,"src":"29091:28:70","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":19750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29091:30:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19751,"nodeType":"RevertStatement","src":"29084:37:70"}]}},{"condition":{"id":19755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"29197:15:70","subExpression":{"id":19754,"name":"isRemoteUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19680,"src":"29198:14:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19790,"nodeType":"IfStatement","src":"29193:360:70","trueBody":{"id":19789,"nodeType":"Block","src":"29214:339:70","statements":[{"assignments":[19757],"declarations":[{"constant":false,"id":19757,"mutability":"mutable","name":"lastProcessedId","nameLocation":"29236:15:70","nodeType":"VariableDeclaration","scope":19789,"src":"29228:23:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19756,"name":"uint256","nodeType":"ElementaryTypeName","src":"29228:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":19765,"initialValue":{"baseExpression":{"baseExpression":{"id":19758,"name":"lastProcessedUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18385,"src":"29254:19:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(bytes32 => mapping(address => uint256))"}},"id":19761,"indexExpression":{"expression":{"id":19759,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19675,"src":"29274:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":19760,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29281:13:70","memberName":"updateTypeKey","nodeType":"MemberAccess","referencedDeclaration":16553,"src":"29274:20:70","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29254:41:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":19764,"indexExpression":{"expression":{"id":19762,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19675,"src":"29296:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":19763,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29303:6:70","memberName":"market","nodeType":"MemberAccess","referencedDeclaration":16549,"src":"29296:13:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29254:56:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29228:82:70"},{"assignments":[19767],"declarations":[{"constant":false,"id":19767,"mutability":"mutable","name":"lastExecutionTime","nameLocation":"29332:17:70","nodeType":"VariableDeclaration","scope":19789,"src":"29324:25:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19766,"name":"uint256","nodeType":"ElementaryTypeName","src":"29324:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":19772,"initialValue":{"expression":{"baseExpression":{"id":19768,"name":"updates","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18378,"src":"29352:7:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RegisteredUpdate_$16872_storage_$","typeString":"mapping(uint256 => struct IRiskStewardReceiver.RegisteredUpdate storage ref)"}},"id":19770,"indexExpression":{"id":19769,"name":"lastProcessedId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19757,"src":"29360:15:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29352:24:70","typeDescriptions":{"typeIdentifier":"t_struct$_RegisteredUpdate_$16872_storage","typeString":"struct IRiskStewardReceiver.RegisteredUpdate storage ref"}},"id":19771,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29377:10:70","memberName":"executedAt","nodeType":"MemberAccess","referencedDeclaration":16871,"src":"29352:35:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29324:63:70"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":19783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19773,"name":"lastExecutionTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19767,"src":"29405:17:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":19774,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29426:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"29405:22:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19776,"name":"lastExecutionTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19767,"src":"29432:17:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":19777,"name":"config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19678,"src":"29452:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16859_storage_ptr","typeString":"struct IRiskStewardReceiver.RiskParamConfig storage pointer"}},"id":19778,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29459:8:70","memberName":"debounce","nodeType":"MemberAccess","referencedDeclaration":16854,"src":"29452:15:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29432:35:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":19780,"name":"currentTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19724,"src":"29470:11:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29432:49:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":19782,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"29431:51:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"29405:77:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19788,"nodeType":"IfStatement","src":"29401:142:70","trueBody":{"id":19787,"nodeType":"Block","src":"29484:59:70","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":19784,"name":"UpdateTooFrequent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16992,"src":"29509:17:70","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":19785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29509:19:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19786,"nodeType":"RevertStatement","src":"29502:26:70"}]}}]}}]},"documentation":{"id":19672,"nodeType":"StructuredDocumentation","src":"27088:794:70","text":" @notice Validates an oracle update before registration.\n @param update The risk parameter update to validate\n @param config The configuration for this update type\n @param isRemoteUpdate Whether the update is destined for a remote chain\n @custom:error UpdateAlreadyResolved if the update was already registered\n @custom:error ConfigNotActive if the configuration for the update type is not active\n @custom:error UpdateIsExpired if the update has expired or is not the latest for the given market and type\n @custom:error UpdateWillExpireBeforeUnlock if the update will expire before its timelock unlocks\n @custom:error UpdateTooFrequent if the debounce period has not passed for the given market and type (only for local updates)"},"id":19792,"implemented":true,"kind":"function","modifiers":[],"name":"_validateRegisterUpdate","nameLocation":"27896:23:70","nodeType":"FunctionDefinition","parameters":{"id":19681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19675,"mutability":"mutable","name":"update","nameLocation":"27956:6:70","nodeType":"VariableDeclaration","scope":19792,"src":"27929:33:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate"},"typeName":{"id":19674,"nodeType":"UserDefinedTypeName","pathNode":{"id":19673,"name":"RiskParameterUpdate","nameLocations":["27929:19:70"],"nodeType":"IdentifierPath","referencedDeclaration":16568,"src":"27929:19:70"},"referencedDeclaration":16568,"src":"27929:19:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_storage_ptr","typeString":"struct RiskParameterUpdate"}},"visibility":"internal"},{"constant":false,"id":19678,"mutability":"mutable","name":"config","nameLocation":"27996:6:70","nodeType":"VariableDeclaration","scope":19792,"src":"27972:30:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16859_storage_ptr","typeString":"struct IRiskStewardReceiver.RiskParamConfig"},"typeName":{"id":19677,"nodeType":"UserDefinedTypeName","pathNode":{"id":19676,"name":"RiskParamConfig","nameLocations":["27972:15:70"],"nodeType":"IdentifierPath","referencedDeclaration":16859,"src":"27972:15:70"},"referencedDeclaration":16859,"src":"27972:15:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16859_storage_ptr","typeString":"struct IRiskStewardReceiver.RiskParamConfig"}},"visibility":"internal"},{"constant":false,"id":19680,"mutability":"mutable","name":"isRemoteUpdate","nameLocation":"28017:14:70","nodeType":"VariableDeclaration","scope":19792,"src":"28012:19:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19679,"name":"bool","nodeType":"ElementaryTypeName","src":"28012:4:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"27919:118:70"},"returnParameters":{"id":19682,"nodeType":"ParameterList","parameters":[],"src":"28052:0:70"},"scope":19931,"src":"27887:1672:70","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":19855,"nodeType":"Block","src":"30428:556:70","statements":[{"condition":{"id":19807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"30442:14:70","subExpression":{"expression":{"id":19805,"name":"config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19802,"src":"30443:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16859_storage_ptr","typeString":"struct IRiskStewardReceiver.RiskParamConfig storage pointer"}},"id":19806,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30450:6:70","memberName":"active","nodeType":"MemberAccess","referencedDeclaration":16852,"src":"30443:13:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19812,"nodeType":"IfStatement","src":"30438:69:70","trueBody":{"id":19811,"nodeType":"Block","src":"30458:49:70","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":19808,"name":"ConfigNotActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16983,"src":"30479:15:70","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":19809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30479:17:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19810,"nodeType":"RevertStatement","src":"30472:24:70"}]}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_UpdateStatus_$16849","typeString":"enum IRiskStewardReceiver.UpdateStatus"},"id":19817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19813,"name":"registeredUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19796,"src":"30521:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_RegisteredUpdate_$16872_storage_ptr","typeString":"struct IRiskStewardReceiver.RegisteredUpdate storage pointer"}},"id":19814,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30538:6:70","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":16867,"src":"30521:23:70","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateStatus_$16849","typeString":"enum IRiskStewardReceiver.UpdateStatus"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":19815,"name":"UpdateStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16849,"src":"30548:12:70","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_UpdateStatus_$16849_$","typeString":"type(enum IRiskStewardReceiver.UpdateStatus)"}},"id":19816,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30561:4:70","memberName":"None","nodeType":"MemberAccess","referencedDeclaration":16843,"src":"30548:17:70","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateStatus_$16849","typeString":"enum IRiskStewardReceiver.UpdateStatus"}},"src":"30521:44:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19822,"nodeType":"IfStatement","src":"30517:107:70","trueBody":{"id":19821,"nodeType":"Block","src":"30567:57:70","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":19818,"name":"InvalidRegisteredUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17024,"src":"30588:23:70","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":19819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30588:25:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19820,"nodeType":"RevertStatement","src":"30581:32:70"}]}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_UpdateStatus_$16849","typeString":"enum IRiskStewardReceiver.UpdateStatus"},"id":19827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19823,"name":"registeredUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19796,"src":"30638:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_RegisteredUpdate_$16872_storage_ptr","typeString":"struct IRiskStewardReceiver.RegisteredUpdate storage pointer"}},"id":19824,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30655:6:70","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":16867,"src":"30638:23:70","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateStatus_$16849","typeString":"enum IRiskStewardReceiver.UpdateStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":19825,"name":"UpdateStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16849,"src":"30665:12:70","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_UpdateStatus_$16849_$","typeString":"type(enum IRiskStewardReceiver.UpdateStatus)"}},"id":19826,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30678:7:70","memberName":"Pending","nodeType":"MemberAccess","referencedDeclaration":16844,"src":"30665:20:70","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateStatus_$16849","typeString":"enum IRiskStewardReceiver.UpdateStatus"}},"src":"30638:47:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19832,"nodeType":"IfStatement","src":"30634:108:70","trueBody":{"id":19831,"nodeType":"Block","src":"30687:55:70","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":19828,"name":"UpdateAlreadyResolved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16989,"src":"30708:21:70","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":19829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30708:23:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19830,"nodeType":"RevertStatement","src":"30701:30:70"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19833,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19799,"src":"30756:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":19834,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30763:9:70","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":16559,"src":"30756:16:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":19835,"name":"UPDATE_EXPIRATION_TIME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18356,"src":"30775:22:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30756:41:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":19837,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"30800:5:70","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30806:9:70","memberName":"timestamp","nodeType":"MemberAccess","src":"30800:15:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30756:59:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19844,"nodeType":"IfStatement","src":"30752:114:70","trueBody":{"id":19843,"nodeType":"Block","src":"30817:49:70","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":19840,"name":"UpdateIsExpired","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16986,"src":"30838:15:70","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":19841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30838:17:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19842,"nodeType":"RevertStatement","src":"30831:24:70"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19845,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"30880:5:70","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30886:9:70","memberName":"timestamp","nodeType":"MemberAccess","src":"30880:15:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":19847,"name":"registeredUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19796,"src":"30898:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_RegisteredUpdate_$16872_storage_ptr","typeString":"struct IRiskStewardReceiver.RegisteredUpdate storage pointer"}},"id":19848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30915:10:70","memberName":"unlockTime","nodeType":"MemberAccess","referencedDeclaration":16864,"src":"30898:27:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30880:45:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19854,"nodeType":"IfStatement","src":"30876:102:70","trueBody":{"id":19853,"nodeType":"Block","src":"30927:51:70","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":19850,"name":"UpdateNotUnlocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17007,"src":"30948:17:70","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":19851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30948:19:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19852,"nodeType":"RevertStatement","src":"30941:26:70"}]}}]},"documentation":{"id":19793,"nodeType":"StructuredDocumentation","src":"29565:672:70","text":" @notice Validates a registered update before execution.\n @param registeredUpdate The stored registered update metadata\n @param update The risk parameter update fetched from the oracle\n @param config The configuration for this update type\n @custom:error ConfigNotActive if the configuration for the update type is not active\n @custom:error InvalidRegisteredUpdate if the update was never registered\n @custom:error UpdateAlreadyResolved if the update was already executed or rejected\n @custom:error UpdateIsExpired if the update has expired\n @custom:error UpdateNotUnlocked if the unlock time has not passed"},"id":19856,"implemented":true,"kind":"function","modifiers":[],"name":"_validateExecuteUpdate","nameLocation":"30251:22:70","nodeType":"FunctionDefinition","parameters":{"id":19803,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19796,"mutability":"mutable","name":"registeredUpdate","nameLocation":"30308:16:70","nodeType":"VariableDeclaration","scope":19856,"src":"30283:41:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_RegisteredUpdate_$16872_storage_ptr","typeString":"struct IRiskStewardReceiver.RegisteredUpdate"},"typeName":{"id":19795,"nodeType":"UserDefinedTypeName","pathNode":{"id":19794,"name":"RegisteredUpdate","nameLocations":["30283:16:70"],"nodeType":"IdentifierPath","referencedDeclaration":16872,"src":"30283:16:70"},"referencedDeclaration":16872,"src":"30283:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_RegisteredUpdate_$16872_storage_ptr","typeString":"struct IRiskStewardReceiver.RegisteredUpdate"}},"visibility":"internal"},{"constant":false,"id":19799,"mutability":"mutable","name":"update","nameLocation":"30361:6:70","nodeType":"VariableDeclaration","scope":19856,"src":"30334:33:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate"},"typeName":{"id":19798,"nodeType":"UserDefinedTypeName","pathNode":{"id":19797,"name":"RiskParameterUpdate","nameLocations":["30334:19:70"],"nodeType":"IdentifierPath","referencedDeclaration":16568,"src":"30334:19:70"},"referencedDeclaration":16568,"src":"30334:19:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_storage_ptr","typeString":"struct RiskParameterUpdate"}},"visibility":"internal"},{"constant":false,"id":19802,"mutability":"mutable","name":"config","nameLocation":"30401:6:70","nodeType":"VariableDeclaration","scope":19856,"src":"30377:30:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16859_storage_ptr","typeString":"struct IRiskStewardReceiver.RiskParamConfig"},"typeName":{"id":19801,"nodeType":"UserDefinedTypeName","pathNode":{"id":19800,"name":"RiskParamConfig","nameLocations":["30377:15:70"],"nodeType":"IdentifierPath","referencedDeclaration":16859,"src":"30377:15:70"},"referencedDeclaration":16859,"src":"30377:15:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16859_storage_ptr","typeString":"struct IRiskStewardReceiver.RiskParamConfig"}},"visibility":"internal"}],"src":"30273:140:70"},"returnParameters":{"id":19804,"nodeType":"ParameterList","parameters":[],"src":"30428:0:70"},"scope":19931,"src":"30242:742:70","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":19920,"nodeType":"Block","src":"31304:643:70","statements":[{"assignments":[19866],"declarations":[{"constant":false,"id":19866,"mutability":"mutable","name":"registeredUpdate","nameLocation":"31339:16:70","nodeType":"VariableDeclaration","scope":19920,"src":"31314:41:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_RegisteredUpdate_$16872_storage_ptr","typeString":"struct IRiskStewardReceiver.RegisteredUpdate"},"typeName":{"id":19865,"nodeType":"UserDefinedTypeName","pathNode":{"id":19864,"name":"RegisteredUpdate","nameLocations":["31314:16:70"],"nodeType":"IdentifierPath","referencedDeclaration":16872,"src":"31314:16:70"},"referencedDeclaration":16872,"src":"31314:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_RegisteredUpdate_$16872_storage_ptr","typeString":"struct IRiskStewardReceiver.RegisteredUpdate"}},"visibility":"internal"}],"id":19870,"initialValue":{"baseExpression":{"id":19867,"name":"updates","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18378,"src":"31358:7:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RegisteredUpdate_$16872_storage_$","typeString":"mapping(uint256 => struct IRiskStewardReceiver.RegisteredUpdate storage ref)"}},"id":19869,"indexExpression":{"id":19868,"name":"updateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19859,"src":"31366:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"31358:17:70","typeDescriptions":{"typeIdentifier":"t_struct$_RegisteredUpdate_$16872_storage","typeString":"struct IRiskStewardReceiver.RegisteredUpdate storage ref"}},"nodeType":"VariableDeclarationStatement","src":"31314:61:70"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_UpdateStatus_$16849","typeString":"enum IRiskStewardReceiver.UpdateStatus"},"id":19875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19871,"name":"registeredUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19866,"src":"31389:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_RegisteredUpdate_$16872_storage_ptr","typeString":"struct IRiskStewardReceiver.RegisteredUpdate storage pointer"}},"id":19872,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31406:6:70","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":16867,"src":"31389:23:70","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateStatus_$16849","typeString":"enum IRiskStewardReceiver.UpdateStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":19873,"name":"UpdateStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16849,"src":"31416:12:70","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_UpdateStatus_$16849_$","typeString":"type(enum IRiskStewardReceiver.UpdateStatus)"}},"id":19874,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31429:7:70","memberName":"Pending","nodeType":"MemberAccess","referencedDeclaration":16844,"src":"31416:20:70","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateStatus_$16849","typeString":"enum IRiskStewardReceiver.UpdateStatus"}},"src":"31389:47:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19879,"nodeType":"IfStatement","src":"31385:90:70","trueBody":{"id":19878,"nodeType":"Block","src":"31438:37:70","statements":[{"expression":{"hexValue":"66616c7365","id":19876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"31459:5:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":19863,"id":19877,"nodeType":"Return","src":"31452:12:70"}]}},{"assignments":[19882],"declarations":[{"constant":false,"id":19882,"mutability":"mutable","name":"update","nameLocation":"31512:6:70","nodeType":"VariableDeclaration","scope":19920,"src":"31485:33:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate"},"typeName":{"id":19881,"nodeType":"UserDefinedTypeName","pathNode":{"id":19880,"name":"RiskParameterUpdate","nameLocations":["31485:19:70"],"nodeType":"IdentifierPath","referencedDeclaration":16568,"src":"31485:19:70"},"referencedDeclaration":16568,"src":"31485:19:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_storage_ptr","typeString":"struct RiskParameterUpdate"}},"visibility":"internal"}],"id":19887,"initialValue":{"arguments":[{"id":19885,"name":"updateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19859,"src":"31547:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19883,"name":"RISK_ORACLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18363,"src":"31521:11:70","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskOracle_$16808","typeString":"contract IRiskOracle"}},"id":19884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31533:13:70","memberName":"getUpdateById","nodeType":"MemberAccess","referencedDeclaration":16738,"src":"31521:25:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_RiskParameterUpdate_$16568_memory_ptr_$","typeString":"function (uint256) view external returns (struct RiskParameterUpdate memory)"}},"id":19886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31521:35:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"nodeType":"VariableDeclarationStatement","src":"31485:71:70"},{"assignments":[19890],"declarations":[{"constant":false,"id":19890,"mutability":"mutable","name":"config","nameLocation":"31590:6:70","nodeType":"VariableDeclaration","scope":19920,"src":"31566:30:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16859_storage_ptr","typeString":"struct IRiskStewardReceiver.RiskParamConfig"},"typeName":{"id":19889,"nodeType":"UserDefinedTypeName","pathNode":{"id":19888,"name":"RiskParamConfig","nameLocations":["31566:15:70"],"nodeType":"IdentifierPath","referencedDeclaration":16859,"src":"31566:15:70"},"referencedDeclaration":16859,"src":"31566:15:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16859_storage_ptr","typeString":"struct IRiskStewardReceiver.RiskParamConfig"}},"visibility":"internal"}],"id":19895,"initialValue":{"baseExpression":{"id":19891,"name":"riskParameterConfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18372,"src":"31599:20:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RiskParamConfig_$16859_storage_$","typeString":"mapping(bytes32 => struct IRiskStewardReceiver.RiskParamConfig storage ref)"}},"id":19894,"indexExpression":{"expression":{"id":19892,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19882,"src":"31620:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":19893,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31627:13:70","memberName":"updateTypeKey","nodeType":"MemberAccess","referencedDeclaration":16553,"src":"31620:20:70","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"31599:42:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16859_storage","typeString":"struct IRiskStewardReceiver.RiskParamConfig storage ref"}},"nodeType":"VariableDeclarationStatement","src":"31566:75:70"},{"condition":{"id":19898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"31656:14:70","subExpression":{"expression":{"id":19896,"name":"config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19890,"src":"31657:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParamConfig_$16859_storage_ptr","typeString":"struct IRiskStewardReceiver.RiskParamConfig storage pointer"}},"id":19897,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31664:6:70","memberName":"active","nodeType":"MemberAccess","referencedDeclaration":16852,"src":"31657:13:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19902,"nodeType":"IfStatement","src":"31652:57:70","trueBody":{"id":19901,"nodeType":"Block","src":"31672:37:70","statements":[{"expression":{"hexValue":"66616c7365","id":19899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"31693:5:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":19863,"id":19900,"nodeType":"Return","src":"31686:12:70"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19903,"name":"update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19882,"src":"31751:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_RiskParameterUpdate_$16568_memory_ptr","typeString":"struct RiskParameterUpdate memory"}},"id":19904,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31758:9:70","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":16559,"src":"31751:16:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":19905,"name":"UPDATE_EXPIRATION_TIME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18356,"src":"31770:22:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31751:41:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":19907,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"31795:5:70","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31801:9:70","memberName":"timestamp","nodeType":"MemberAccess","src":"31795:15:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31751:59:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19913,"nodeType":"IfStatement","src":"31747:102:70","trueBody":{"id":19912,"nodeType":"Block","src":"31812:37:70","statements":[{"expression":{"hexValue":"66616c7365","id":19910,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"31833:5:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":19863,"id":19911,"nodeType":"Return","src":"31826:12:70"}]}},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19914,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"31894:5:70","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31900:9:70","memberName":"timestamp","nodeType":"MemberAccess","src":"31894:15:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":19916,"name":"registeredUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19866,"src":"31913:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_RegisteredUpdate_$16872_storage_ptr","typeString":"struct IRiskStewardReceiver.RegisteredUpdate storage pointer"}},"id":19917,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31930:10:70","memberName":"unlockTime","nodeType":"MemberAccess","referencedDeclaration":16864,"src":"31913:27:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31894:46:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":19863,"id":19919,"nodeType":"Return","src":"31887:53:70"}]},"documentation":{"id":19857,"nodeType":"StructuredDocumentation","src":"30990:233:70","text":" @notice Checks if an update has completed all conditions to be executed.\n @param updateId The oracle update ID to query\n @return True if the update is pending, not expired, active, and past its timelock"},"id":19921,"implemented":true,"kind":"function","modifiers":[],"name":"_isUpdateExecutable","nameLocation":"31237:19:70","nodeType":"FunctionDefinition","parameters":{"id":19860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19859,"mutability":"mutable","name":"updateId","nameLocation":"31265:8:70","nodeType":"VariableDeclaration","scope":19921,"src":"31257:16:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19858,"name":"uint256","nodeType":"ElementaryTypeName","src":"31257:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31256:18:70"},"returnParameters":{"id":19863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19862,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19921,"src":"31298:4:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19861,"name":"bool","nodeType":"ElementaryTypeName","src":"31298:4:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"31297:6:70"},"scope":19931,"src":"31228:719:70","stateMutability":"view","virtual":false,"visibility":"internal"},{"baseFunctions":[6030],"body":{"id":19929,"nodeType":"Block","src":"32126:53:70","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":19926,"name":"RenounceOwnershipNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17030,"src":"32143:27:70","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":19927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32143:29:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19928,"nodeType":"RevertStatement","src":"32136:36:70"}]},"documentation":{"id":19922,"nodeType":"StructuredDocumentation","src":"31953:118:70","text":" @notice Disables renounceOwnership function\n @custom:error Throws RenounceOwnershipNotAllowed"},"functionSelector":"715018a6","id":19930,"implemented":true,"kind":"function","modifiers":[],"name":"renounceOwnership","nameLocation":"32085:17:70","nodeType":"FunctionDefinition","overrides":{"id":19924,"nodeType":"OverrideSpecifier","overrides":[],"src":"32117:8:70"},"parameters":{"id":19923,"nodeType":"ParameterList","parameters":[],"src":"32102:2:70"},"returnParameters":{"id":19925,"nodeType":"ParameterList","parameters":[],"src":"32126:0:70"},"scope":19931,"src":"32076:103:70","stateMutability":"pure","virtual":false,"visibility":"public"}],"scope":19932,"src":"1459:30722:70","usedErrors":[2220,2222,2414,2418,2420,2422,2523,10924,13739,16980,16983,16986,16989,16992,16995,16998,17001,17004,17007,17010,17013,17018,17021,17024,17027,17030,17033,17036,17039,17042,17045,17048],"usedEvents":[2428,5873,5964,6094,13730,16895,16906,16911,16916,16921,16930,16941,16952,16963,16970,16977]}],"src":"41:32141:70"},"id":70},"contracts/Utils/ACMCommandsAggregator.sol":{"ast":{"absolutePath":"contracts/Utils/ACMCommandsAggregator.sol","exportedSymbols":{"ACMCommandsAggregator":[20218],"IAccessControlManagerV8":[13903],"ensureNonzeroAddress":[10945]},"id":20219,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":19933,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:71"},{"absolutePath":"contracts/Governance/IAccessControlManagerV8.sol","file":"../Governance/IAccessControlManagerV8.sol","id":19935,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":20219,"sourceUnit":13904,"src":"66:84:71","symbolAliases":[{"foreign":{"id":19934,"name":"IAccessControlManagerV8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13903,"src":"75:23:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/validators.sol","file":"@venusprotocol/solidity-utilities/contracts/validators.sol","id":19937,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":20219,"sourceUnit":10961,"src":"151:98:71","symbolAliases":[{"foreign":{"id":19936,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10945,"src":"160:20:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"ACMCommandsAggregator","contractDependencies":[],"contractKind":"contract","documentation":{"id":19938,"nodeType":"StructuredDocumentation","src":"251:183:71","text":" @title ACMCommandsAggregator\n @author Venus\n @notice This contract is a helper to aggregate multiple grant and revoke permissions in batches and execute them in one go."},"fullyImplemented":true,"id":20218,"linearizedBaseContracts":[20218],"name":"ACMCommandsAggregator","nameLocation":"444:21:71","nodeType":"ContractDefinition","nodes":[{"canonicalName":"ACMCommandsAggregator.Permission","id":19945,"members":[{"constant":false,"id":19940,"mutability":"mutable","name":"contractAddress","nameLocation":"639:15:71","nodeType":"VariableDeclaration","scope":19945,"src":"631:23:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19939,"name":"address","nodeType":"ElementaryTypeName","src":"631:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19942,"mutability":"mutable","name":"functionSig","nameLocation":"732:11:71","nodeType":"VariableDeclaration","scope":19945,"src":"725:18:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":19941,"name":"string","nodeType":"ElementaryTypeName","src":"725:6:71","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19944,"mutability":"mutable","name":"account","nameLocation":"826:7:71","nodeType":"VariableDeclaration","scope":19945,"src":"818:15:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19943,"name":"address","nodeType":"ElementaryTypeName","src":"818:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"Permission","nameLocation":"544:10:71","nodeType":"StructDefinition","scope":20218,"src":"537:303:71","visibility":"public"},{"constant":false,"documentation":{"id":19946,"nodeType":"StructuredDocumentation","src":"846:58:71","text":" @notice Access control manager contract"},"functionSelector":"f9b80da1","id":19949,"mutability":"immutable","name":"ACM","nameLocation":"950:3:71","nodeType":"VariableDeclaration","scope":20218,"src":"909:44:71","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$13903","typeString":"contract IAccessControlManagerV8"},"typeName":{"id":19948,"nodeType":"UserDefinedTypeName","pathNode":{"id":19947,"name":"IAccessControlManagerV8","nameLocations":["909:23:71"],"nodeType":"IdentifierPath","referencedDeclaration":13903,"src":"909:23:71"},"referencedDeclaration":13903,"src":"909:23:71","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$13903","typeString":"contract IAccessControlManagerV8"}},"visibility":"public"},{"constant":false,"functionSelector":"514aab87","id":19954,"mutability":"mutable","name":"grantPermissions","nameLocation":"1059:16:71","nodeType":"VariableDeclaration","scope":20218,"src":"1037:38:71","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_struct$_Permission_$19945_storage_$dyn_storage_$dyn_storage","typeString":"struct ACMCommandsAggregator.Permission[][]"},"typeName":{"baseType":{"baseType":{"id":19951,"nodeType":"UserDefinedTypeName","pathNode":{"id":19950,"name":"Permission","nameLocations":["1037:10:71"],"nodeType":"IdentifierPath","referencedDeclaration":19945,"src":"1037:10:71"},"referencedDeclaration":19945,"src":"1037:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_Permission_$19945_storage_ptr","typeString":"struct ACMCommandsAggregator.Permission"}},"id":19952,"nodeType":"ArrayTypeName","src":"1037:12:71","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Permission_$19945_storage_$dyn_storage_ptr","typeString":"struct ACMCommandsAggregator.Permission[]"}},"id":19953,"nodeType":"ArrayTypeName","src":"1037:14:71","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_struct$_Permission_$19945_storage_$dyn_storage_$dyn_storage_ptr","typeString":"struct ACMCommandsAggregator.Permission[][]"}},"visibility":"public"},{"constant":false,"functionSelector":"ff1575e1","id":19959,"mutability":"mutable","name":"revokePermissions","nameLocation":"1182:17:71","nodeType":"VariableDeclaration","scope":20218,"src":"1160:39:71","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_struct$_Permission_$19945_storage_$dyn_storage_$dyn_storage","typeString":"struct ACMCommandsAggregator.Permission[][]"},"typeName":{"baseType":{"baseType":{"id":19956,"nodeType":"UserDefinedTypeName","pathNode":{"id":19955,"name":"Permission","nameLocations":["1160:10:71"],"nodeType":"IdentifierPath","referencedDeclaration":19945,"src":"1160:10:71"},"referencedDeclaration":19945,"src":"1160:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_Permission_$19945_storage_ptr","typeString":"struct ACMCommandsAggregator.Permission"}},"id":19957,"nodeType":"ArrayTypeName","src":"1160:12:71","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Permission_$19945_storage_$dyn_storage_ptr","typeString":"struct ACMCommandsAggregator.Permission[]"}},"id":19958,"nodeType":"ArrayTypeName","src":"1160:14:71","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_struct$_Permission_$19945_storage_$dyn_storage_$dyn_storage_ptr","typeString":"struct ACMCommandsAggregator.Permission[][]"}},"visibility":"public"},{"anonymous":false,"eventSelector":"f8ca6ea7cc31be8572501c37ef5e9e8298be717fb881e0b1ca785aecc4d25e9f","id":19963,"name":"GrantPermissionsAdded","nameLocation":"1289:21:71","nodeType":"EventDefinition","parameters":{"id":19962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19961,"indexed":false,"mutability":"mutable","name":"index","nameLocation":"1319:5:71","nodeType":"VariableDeclaration","scope":19963,"src":"1311:13:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19960,"name":"uint256","nodeType":"ElementaryTypeName","src":"1311:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1310:15:71"},"src":"1283:43:71"},{"anonymous":false,"eventSelector":"75922591bf2cec980645dc4a32bb7d5e8da9a15fda86dacf06f8402cecd1478f","id":19967,"name":"RevokePermissionsAdded","nameLocation":"1416:22:71","nodeType":"EventDefinition","parameters":{"id":19966,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19965,"indexed":false,"mutability":"mutable","name":"index","nameLocation":"1447:5:71","nodeType":"VariableDeclaration","scope":19967,"src":"1439:13:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19964,"name":"uint256","nodeType":"ElementaryTypeName","src":"1439:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1438:15:71"},"src":"1410:44:71"},{"anonymous":false,"eventSelector":"01a805f459381af632ecab72ec192c3f9a4c72d26be089026ffd6636d82de988","id":19971,"name":"GrantPermissionsExecuted","nameLocation":"1546:24:71","nodeType":"EventDefinition","parameters":{"id":19970,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19969,"indexed":false,"mutability":"mutable","name":"index","nameLocation":"1579:5:71","nodeType":"VariableDeclaration","scope":19971,"src":"1571:13:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19968,"name":"uint256","nodeType":"ElementaryTypeName","src":"1571:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1570:15:71"},"src":"1540:46:71"},{"anonymous":false,"eventSelector":"1382323d6618527d8b03daa05db815f0490966e8b80679fe5ad3d868f84e1a71","id":19975,"name":"RevokePermissionsExecuted","nameLocation":"1679:25:71","nodeType":"EventDefinition","parameters":{"id":19974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19973,"indexed":false,"mutability":"mutable","name":"index","nameLocation":"1713:5:71","nodeType":"VariableDeclaration","scope":19975,"src":"1705:13:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19972,"name":"uint256","nodeType":"ElementaryTypeName","src":"1705:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1704:15:71"},"src":"1673:47:71"},{"errorSelector":"4494013c","id":19977,"name":"EmptyPermissions","nameLocation":"1808:16:71","nodeType":"ErrorDefinition","parameters":{"id":19976,"nodeType":"ParameterList","parameters":[],"src":"1824:2:71"},"src":"1802:25:71"},{"body":{"id":19994,"nodeType":"Block","src":"2008:72:71","statements":[{"expression":{"arguments":[{"arguments":[{"id":19986,"name":"_acm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19980,"src":"2047:4:71","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$13903","typeString":"contract IAccessControlManagerV8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$13903","typeString":"contract IAccessControlManagerV8"}],"id":19985,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2039:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":19984,"name":"address","nodeType":"ElementaryTypeName","src":"2039:7:71","typeDescriptions":{}}},"id":19987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2039:13:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":19983,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10945,"src":"2018:20:71","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":19988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2018:35:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19989,"nodeType":"ExpressionStatement","src":"2018:35:71"},{"expression":{"id":19992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19990,"name":"ACM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19949,"src":"2063:3:71","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$13903","typeString":"contract IAccessControlManagerV8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":19991,"name":"_acm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19980,"src":"2069:4:71","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$13903","typeString":"contract IAccessControlManagerV8"}},"src":"2063:10:71","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$13903","typeString":"contract IAccessControlManagerV8"}},"id":19993,"nodeType":"ExpressionStatement","src":"2063:10:71"}]},"id":19995,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":19981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19980,"mutability":"mutable","name":"_acm","nameLocation":"2002:4:71","nodeType":"VariableDeclaration","scope":19995,"src":"1978:28:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$13903","typeString":"contract IAccessControlManagerV8"},"typeName":{"id":19979,"nodeType":"UserDefinedTypeName","pathNode":{"id":19978,"name":"IAccessControlManagerV8","nameLocations":["1978:23:71"],"nodeType":"IdentifierPath","referencedDeclaration":13903,"src":"1978:23:71"},"referencedDeclaration":13903,"src":"1978:23:71","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$13903","typeString":"contract IAccessControlManagerV8"}},"visibility":"internal"}],"src":"1977:30:71"},"returnParameters":{"id":19982,"nodeType":"ParameterList","parameters":[],"src":"2008:0:71"},"scope":20218,"src":"1966:114:71","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":20057,"nodeType":"Block","src":"2325:461:71","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":20002,"name":"_permissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19999,"src":"2339:12:71","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Permission_$19945_memory_ptr_$dyn_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory[] memory"}},"id":20003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2352:6:71","memberName":"length","nodeType":"MemberAccess","src":"2339:19:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":20004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2362:1:71","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2339:24:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20010,"nodeType":"IfStatement","src":"2335:80:71","trueBody":{"id":20009,"nodeType":"Block","src":"2365:50:71","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":20006,"name":"EmptyPermissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19977,"src":"2386:16:71","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":20007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2386:18:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20008,"nodeType":"RevertStatement","src":"2379:25:71"}]}},{"assignments":[20012],"declarations":[{"constant":false,"id":20012,"mutability":"mutable","name":"index","nameLocation":"2433:5:71","nodeType":"VariableDeclaration","scope":20057,"src":"2425:13:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20011,"name":"uint256","nodeType":"ElementaryTypeName","src":"2425:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20015,"initialValue":{"expression":{"id":20013,"name":"grantPermissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19954,"src":"2441:16:71","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_struct$_Permission_$19945_storage_$dyn_storage_$dyn_storage","typeString":"struct ACMCommandsAggregator.Permission storage ref[] storage ref[] storage ref"}},"id":20014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2458:6:71","memberName":"length","nodeType":"MemberAccess","src":"2441:23:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2425:39:71"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":20016,"name":"grantPermissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19954,"src":"2474:16:71","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_struct$_Permission_$19945_storage_$dyn_storage_$dyn_storage","typeString":"struct ACMCommandsAggregator.Permission storage ref[] storage ref[] storage ref"}},"id":20018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2491:4:71","memberName":"push","nodeType":"MemberAccess","src":"2474:21:71","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_array$_t_struct$_Permission_$19945_storage_$dyn_storage_$dyn_storage_ptr_$returns$_t_array$_t_struct$_Permission_$19945_storage_$dyn_storage_$attached_to$_t_array$_t_array$_t_struct$_Permission_$19945_storage_$dyn_storage_$dyn_storage_ptr_$","typeString":"function (struct ACMCommandsAggregator.Permission storage ref[] storage ref[] storage pointer) returns (struct ACMCommandsAggregator.Permission storage ref[] storage ref)"}},"id":20019,"isConstant":false,"isLValue":true,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2474:23:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Permission_$19945_storage_$dyn_storage","typeString":"struct ACMCommandsAggregator.Permission storage ref[] storage ref"}},"id":20020,"nodeType":"ExpressionStatement","src":"2474:23:71"},{"body":{"id":20051,"nodeType":"Block","src":"2554:182:71","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"baseExpression":{"id":20036,"name":"_permissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19999,"src":"2625:12:71","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Permission_$19945_memory_ptr_$dyn_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory[] memory"}},"id":20038,"indexExpression":{"id":20037,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20022,"src":"2638:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2625:15:71","typeDescriptions":{"typeIdentifier":"t_struct$_Permission_$19945_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory"}},"id":20039,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2641:15:71","memberName":"contractAddress","nodeType":"MemberAccess","referencedDeclaration":19940,"src":"2625:31:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"baseExpression":{"id":20040,"name":"_permissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19999,"src":"2658:12:71","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Permission_$19945_memory_ptr_$dyn_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory[] memory"}},"id":20042,"indexExpression":{"id":20041,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20022,"src":"2671:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2658:15:71","typeDescriptions":{"typeIdentifier":"t_struct$_Permission_$19945_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory"}},"id":20043,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2674:11:71","memberName":"functionSig","nodeType":"MemberAccess","referencedDeclaration":19942,"src":"2658:27:71","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"baseExpression":{"id":20044,"name":"_permissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19999,"src":"2687:12:71","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Permission_$19945_memory_ptr_$dyn_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory[] memory"}},"id":20046,"indexExpression":{"id":20045,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20022,"src":"2700:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2687:15:71","typeDescriptions":{"typeIdentifier":"t_struct$_Permission_$19945_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory"}},"id":20047,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2703:7:71","memberName":"account","nodeType":"MemberAccess","referencedDeclaration":19944,"src":"2687:23:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"id":20035,"name":"Permission","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19945,"src":"2614:10:71","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Permission_$19945_storage_ptr_$","typeString":"type(struct ACMCommandsAggregator.Permission storage pointer)"}},"id":20048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2614:97:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Permission_$19945_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Permission_$19945_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory"}],"expression":{"baseExpression":{"id":20031,"name":"grantPermissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19954,"src":"2568:16:71","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_struct$_Permission_$19945_storage_$dyn_storage_$dyn_storage","typeString":"struct ACMCommandsAggregator.Permission storage ref[] storage ref[] storage ref"}},"id":20033,"indexExpression":{"id":20032,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20012,"src":"2585:5:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2568:23:71","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Permission_$19945_storage_$dyn_storage","typeString":"struct ACMCommandsAggregator.Permission storage ref[] storage ref"}},"id":20034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2592:4:71","memberName":"push","nodeType":"MemberAccess","src":"2568:28:71","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Permission_$19945_storage_$dyn_storage_ptr_$_t_struct$_Permission_$19945_storage_$returns$__$attached_to$_t_array$_t_struct$_Permission_$19945_storage_$dyn_storage_ptr_$","typeString":"function (struct ACMCommandsAggregator.Permission storage ref[] storage pointer,struct ACMCommandsAggregator.Permission storage ref)"}},"id":20049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2568:157:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20050,"nodeType":"ExpressionStatement","src":"2568:157:71"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20024,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20022,"src":"2524:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":20025,"name":"_permissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19999,"src":"2528:12:71","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Permission_$19945_memory_ptr_$dyn_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory[] memory"}},"id":20026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2541:6:71","memberName":"length","nodeType":"MemberAccess","src":"2528:19:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2524:23:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20052,"initializationExpression":{"assignments":[20022],"declarations":[{"constant":false,"id":20022,"mutability":"mutable","name":"i","nameLocation":"2521:1:71","nodeType":"VariableDeclaration","scope":20052,"src":"2513:9:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20021,"name":"uint256","nodeType":"ElementaryTypeName","src":"2513:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20023,"nodeType":"VariableDeclarationStatement","src":"2513:9:71"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":20029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2549:3:71","subExpression":{"id":20028,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20022,"src":"2551:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20030,"nodeType":"ExpressionStatement","src":"2549:3:71"},"nodeType":"ForStatement","src":"2508:228:71"},{"eventCall":{"arguments":[{"id":20054,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20012,"src":"2773:5:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20053,"name":"GrantPermissionsAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19963,"src":"2751:21:71","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":20055,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2751:28:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20056,"nodeType":"EmitStatement","src":"2746:33:71"}]},"functionSelector":"9d6c76b8","id":20058,"implemented":true,"kind":"function","modifiers":[],"name":"addGrantPermissions","nameLocation":"2262:19:71","nodeType":"FunctionDefinition","parameters":{"id":20000,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19999,"mutability":"mutable","name":"_permissions","nameLocation":"2302:12:71","nodeType":"VariableDeclaration","scope":20058,"src":"2282:32:71","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Permission_$19945_memory_ptr_$dyn_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission[]"},"typeName":{"baseType":{"id":19997,"nodeType":"UserDefinedTypeName","pathNode":{"id":19996,"name":"Permission","nameLocations":["2282:10:71"],"nodeType":"IdentifierPath","referencedDeclaration":19945,"src":"2282:10:71"},"referencedDeclaration":19945,"src":"2282:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_Permission_$19945_storage_ptr","typeString":"struct ACMCommandsAggregator.Permission"}},"id":19998,"nodeType":"ArrayTypeName","src":"2282:12:71","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Permission_$19945_storage_$dyn_storage_ptr","typeString":"struct ACMCommandsAggregator.Permission[]"}},"visibility":"internal"}],"src":"2281:34:71"},"returnParameters":{"id":20001,"nodeType":"ParameterList","parameters":[],"src":"2325:0:71"},"scope":20218,"src":"2253:533:71","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":20120,"nodeType":"Block","src":"3034:465:71","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":20065,"name":"_permissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20062,"src":"3048:12:71","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Permission_$19945_memory_ptr_$dyn_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory[] memory"}},"id":20066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3061:6:71","memberName":"length","nodeType":"MemberAccess","src":"3048:19:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":20067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3071:1:71","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3048:24:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20073,"nodeType":"IfStatement","src":"3044:80:71","trueBody":{"id":20072,"nodeType":"Block","src":"3074:50:71","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":20069,"name":"EmptyPermissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19977,"src":"3095:16:71","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":20070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3095:18:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20071,"nodeType":"RevertStatement","src":"3088:25:71"}]}},{"assignments":[20075],"declarations":[{"constant":false,"id":20075,"mutability":"mutable","name":"index","nameLocation":"3142:5:71","nodeType":"VariableDeclaration","scope":20120,"src":"3134:13:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20074,"name":"uint256","nodeType":"ElementaryTypeName","src":"3134:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20078,"initialValue":{"expression":{"id":20076,"name":"revokePermissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19959,"src":"3150:17:71","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_struct$_Permission_$19945_storage_$dyn_storage_$dyn_storage","typeString":"struct ACMCommandsAggregator.Permission storage ref[] storage ref[] storage ref"}},"id":20077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3168:6:71","memberName":"length","nodeType":"MemberAccess","src":"3150:24:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3134:40:71"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":20079,"name":"revokePermissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19959,"src":"3184:17:71","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_struct$_Permission_$19945_storage_$dyn_storage_$dyn_storage","typeString":"struct ACMCommandsAggregator.Permission storage ref[] storage ref[] storage ref"}},"id":20081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3202:4:71","memberName":"push","nodeType":"MemberAccess","src":"3184:22:71","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_array$_t_struct$_Permission_$19945_storage_$dyn_storage_$dyn_storage_ptr_$returns$_t_array$_t_struct$_Permission_$19945_storage_$dyn_storage_$attached_to$_t_array$_t_array$_t_struct$_Permission_$19945_storage_$dyn_storage_$dyn_storage_ptr_$","typeString":"function (struct ACMCommandsAggregator.Permission storage ref[] storage ref[] storage pointer) returns (struct ACMCommandsAggregator.Permission storage ref[] storage ref)"}},"id":20082,"isConstant":false,"isLValue":true,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3184:24:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Permission_$19945_storage_$dyn_storage","typeString":"struct ACMCommandsAggregator.Permission storage ref[] storage ref"}},"id":20083,"nodeType":"ExpressionStatement","src":"3184:24:71"},{"body":{"id":20114,"nodeType":"Block","src":"3265:183:71","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"baseExpression":{"id":20099,"name":"_permissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20062,"src":"3337:12:71","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Permission_$19945_memory_ptr_$dyn_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory[] memory"}},"id":20101,"indexExpression":{"id":20100,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20085,"src":"3350:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3337:15:71","typeDescriptions":{"typeIdentifier":"t_struct$_Permission_$19945_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory"}},"id":20102,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3353:15:71","memberName":"contractAddress","nodeType":"MemberAccess","referencedDeclaration":19940,"src":"3337:31:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"baseExpression":{"id":20103,"name":"_permissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20062,"src":"3370:12:71","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Permission_$19945_memory_ptr_$dyn_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory[] memory"}},"id":20105,"indexExpression":{"id":20104,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20085,"src":"3383:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3370:15:71","typeDescriptions":{"typeIdentifier":"t_struct$_Permission_$19945_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory"}},"id":20106,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3386:11:71","memberName":"functionSig","nodeType":"MemberAccess","referencedDeclaration":19942,"src":"3370:27:71","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"baseExpression":{"id":20107,"name":"_permissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20062,"src":"3399:12:71","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Permission_$19945_memory_ptr_$dyn_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory[] memory"}},"id":20109,"indexExpression":{"id":20108,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20085,"src":"3412:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3399:15:71","typeDescriptions":{"typeIdentifier":"t_struct$_Permission_$19945_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory"}},"id":20110,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3415:7:71","memberName":"account","nodeType":"MemberAccess","referencedDeclaration":19944,"src":"3399:23:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"id":20098,"name":"Permission","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19945,"src":"3326:10:71","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Permission_$19945_storage_ptr_$","typeString":"type(struct ACMCommandsAggregator.Permission storage pointer)"}},"id":20111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3326:97:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Permission_$19945_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Permission_$19945_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory"}],"expression":{"baseExpression":{"id":20094,"name":"revokePermissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19959,"src":"3279:17:71","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_struct$_Permission_$19945_storage_$dyn_storage_$dyn_storage","typeString":"struct ACMCommandsAggregator.Permission storage ref[] storage ref[] storage ref"}},"id":20096,"indexExpression":{"id":20095,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20075,"src":"3297:5:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3279:24:71","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Permission_$19945_storage_$dyn_storage","typeString":"struct ACMCommandsAggregator.Permission storage ref[] storage ref"}},"id":20097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3304:4:71","memberName":"push","nodeType":"MemberAccess","src":"3279:29:71","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Permission_$19945_storage_$dyn_storage_ptr_$_t_struct$_Permission_$19945_storage_$returns$__$attached_to$_t_array$_t_struct$_Permission_$19945_storage_$dyn_storage_ptr_$","typeString":"function (struct ACMCommandsAggregator.Permission storage ref[] storage pointer,struct ACMCommandsAggregator.Permission storage ref)"}},"id":20112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3279:158:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20113,"nodeType":"ExpressionStatement","src":"3279:158:71"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20087,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20085,"src":"3235:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":20088,"name":"_permissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20062,"src":"3239:12:71","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Permission_$19945_memory_ptr_$dyn_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory[] memory"}},"id":20089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3252:6:71","memberName":"length","nodeType":"MemberAccess","src":"3239:19:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3235:23:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20115,"initializationExpression":{"assignments":[20085],"declarations":[{"constant":false,"id":20085,"mutability":"mutable","name":"i","nameLocation":"3232:1:71","nodeType":"VariableDeclaration","scope":20115,"src":"3224:9:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20084,"name":"uint256","nodeType":"ElementaryTypeName","src":"3224:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20086,"nodeType":"VariableDeclarationStatement","src":"3224:9:71"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":20092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3260:3:71","subExpression":{"id":20091,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20085,"src":"3262:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20093,"nodeType":"ExpressionStatement","src":"3260:3:71"},"nodeType":"ForStatement","src":"3219:229:71"},{"eventCall":{"arguments":[{"id":20117,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20075,"src":"3486:5:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20116,"name":"RevokePermissionsAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19967,"src":"3463:22:71","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":20118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3463:29:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20119,"nodeType":"EmitStatement","src":"3458:34:71"}]},"functionSelector":"5666a5ea","id":20121,"implemented":true,"kind":"function","modifiers":[],"name":"addRevokePermissions","nameLocation":"2970:20:71","nodeType":"FunctionDefinition","parameters":{"id":20063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20062,"mutability":"mutable","name":"_permissions","nameLocation":"3011:12:71","nodeType":"VariableDeclaration","scope":20121,"src":"2991:32:71","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Permission_$19945_memory_ptr_$dyn_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission[]"},"typeName":{"baseType":{"id":20060,"nodeType":"UserDefinedTypeName","pathNode":{"id":20059,"name":"Permission","nameLocations":["2991:10:71"],"nodeType":"IdentifierPath","referencedDeclaration":19945,"src":"2991:10:71"},"referencedDeclaration":19945,"src":"2991:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_Permission_$19945_storage_ptr","typeString":"struct ACMCommandsAggregator.Permission"}},"id":20061,"nodeType":"ArrayTypeName","src":"2991:12:71","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Permission_$19945_storage_$dyn_storage_ptr","typeString":"struct ACMCommandsAggregator.Permission[]"}},"visibility":"internal"}],"src":"2990:34:71"},"returnParameters":{"id":20064,"nodeType":"ParameterList","parameters":[],"src":"3034:0:71"},"scope":20218,"src":"2961:538:71","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":20168,"nodeType":"Block","src":"3739:343:71","statements":[{"assignments":[20127],"declarations":[{"constant":false,"id":20127,"mutability":"mutable","name":"length","nameLocation":"3757:6:71","nodeType":"VariableDeclaration","scope":20168,"src":"3749:14:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20126,"name":"uint256","nodeType":"ElementaryTypeName","src":"3749:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20132,"initialValue":{"expression":{"baseExpression":{"id":20128,"name":"grantPermissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19954,"src":"3766:16:71","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_struct$_Permission_$19945_storage_$dyn_storage_$dyn_storage","typeString":"struct ACMCommandsAggregator.Permission storage ref[] storage ref[] storage ref"}},"id":20130,"indexExpression":{"id":20129,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20123,"src":"3783:5:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3766:23:71","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Permission_$19945_storage_$dyn_storage","typeString":"struct ACMCommandsAggregator.Permission storage ref[] storage ref"}},"id":20131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3790:6:71","memberName":"length","nodeType":"MemberAccess","src":"3766:30:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3749:47:71"},{"body":{"id":20162,"nodeType":"Block","src":"3839:190:71","statements":[{"assignments":[20144],"declarations":[{"constant":false,"id":20144,"mutability":"mutable","name":"permission","nameLocation":"3871:10:71","nodeType":"VariableDeclaration","scope":20162,"src":"3853:28:71","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Permission_$19945_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission"},"typeName":{"id":20143,"nodeType":"UserDefinedTypeName","pathNode":{"id":20142,"name":"Permission","nameLocations":["3853:10:71"],"nodeType":"IdentifierPath","referencedDeclaration":19945,"src":"3853:10:71"},"referencedDeclaration":19945,"src":"3853:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_Permission_$19945_storage_ptr","typeString":"struct ACMCommandsAggregator.Permission"}},"visibility":"internal"}],"id":20150,"initialValue":{"baseExpression":{"baseExpression":{"id":20145,"name":"grantPermissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19954,"src":"3884:16:71","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_struct$_Permission_$19945_storage_$dyn_storage_$dyn_storage","typeString":"struct ACMCommandsAggregator.Permission storage ref[] storage ref[] storage ref"}},"id":20147,"indexExpression":{"id":20146,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20123,"src":"3901:5:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3884:23:71","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Permission_$19945_storage_$dyn_storage","typeString":"struct ACMCommandsAggregator.Permission storage ref[] storage ref"}},"id":20149,"indexExpression":{"id":20148,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20134,"src":"3908:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3884:26:71","typeDescriptions":{"typeIdentifier":"t_struct$_Permission_$19945_storage","typeString":"struct ACMCommandsAggregator.Permission storage ref"}},"nodeType":"VariableDeclarationStatement","src":"3853:57:71"},{"expression":{"arguments":[{"expression":{"id":20154,"name":"permission","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20144,"src":"3947:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_Permission_$19945_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory"}},"id":20155,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3958:15:71","memberName":"contractAddress","nodeType":"MemberAccess","referencedDeclaration":19940,"src":"3947:26:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":20156,"name":"permission","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20144,"src":"3975:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_Permission_$19945_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory"}},"id":20157,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3986:11:71","memberName":"functionSig","nodeType":"MemberAccess","referencedDeclaration":19942,"src":"3975:22:71","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":20158,"name":"permission","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20144,"src":"3999:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_Permission_$19945_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory"}},"id":20159,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4010:7:71","memberName":"account","nodeType":"MemberAccess","referencedDeclaration":19944,"src":"3999:18:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20151,"name":"ACM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19949,"src":"3924:3:71","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$13903","typeString":"contract IAccessControlManagerV8"}},"id":20153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3928:18:71","memberName":"giveCallPermission","nodeType":"MemberAccess","referencedDeclaration":13873,"src":"3924:22:71","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$_t_address_$returns$__$","typeString":"function (address,string memory,address) external"}},"id":20160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3924:94:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20161,"nodeType":"ExpressionStatement","src":"3924:94:71"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20136,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20134,"src":"3822:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":20137,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20127,"src":"3826:6:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3822:10:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20163,"initializationExpression":{"assignments":[20134],"declarations":[{"constant":false,"id":20134,"mutability":"mutable","name":"i","nameLocation":"3819:1:71","nodeType":"VariableDeclaration","scope":20163,"src":"3811:9:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20133,"name":"uint256","nodeType":"ElementaryTypeName","src":"3811:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20135,"nodeType":"VariableDeclarationStatement","src":"3811:9:71"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":20140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3834:3:71","subExpression":{"id":20139,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20134,"src":"3836:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20141,"nodeType":"ExpressionStatement","src":"3834:3:71"},"nodeType":"ForStatement","src":"3806:223:71"},{"eventCall":{"arguments":[{"id":20165,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20123,"src":"4069:5:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20164,"name":"GrantPermissionsExecuted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19971,"src":"4044:24:71","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":20166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4044:31:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20167,"nodeType":"EmitStatement","src":"4039:36:71"}]},"functionSelector":"de46a235","id":20169,"implemented":true,"kind":"function","modifiers":[],"name":"executeGrantPermissions","nameLocation":"3691:23:71","nodeType":"FunctionDefinition","parameters":{"id":20124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20123,"mutability":"mutable","name":"index","nameLocation":"3723:5:71","nodeType":"VariableDeclaration","scope":20169,"src":"3715:13:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20122,"name":"uint256","nodeType":"ElementaryTypeName","src":"3715:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3714:15:71"},"returnParameters":{"id":20125,"nodeType":"ParameterList","parameters":[],"src":"3739:0:71"},"scope":20218,"src":"3682:400:71","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":20216,"nodeType":"Block","src":"4325:348:71","statements":[{"assignments":[20175],"declarations":[{"constant":false,"id":20175,"mutability":"mutable","name":"length","nameLocation":"4343:6:71","nodeType":"VariableDeclaration","scope":20216,"src":"4335:14:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20174,"name":"uint256","nodeType":"ElementaryTypeName","src":"4335:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20180,"initialValue":{"expression":{"baseExpression":{"id":20176,"name":"revokePermissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19959,"src":"4352:17:71","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_struct$_Permission_$19945_storage_$dyn_storage_$dyn_storage","typeString":"struct ACMCommandsAggregator.Permission storage ref[] storage ref[] storage ref"}},"id":20178,"indexExpression":{"id":20177,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20171,"src":"4370:5:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4352:24:71","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Permission_$19945_storage_$dyn_storage","typeString":"struct ACMCommandsAggregator.Permission storage ref[] storage ref"}},"id":20179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4377:6:71","memberName":"length","nodeType":"MemberAccess","src":"4352:31:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4335:48:71"},{"body":{"id":20210,"nodeType":"Block","src":"4426:193:71","statements":[{"assignments":[20192],"declarations":[{"constant":false,"id":20192,"mutability":"mutable","name":"permission","nameLocation":"4458:10:71","nodeType":"VariableDeclaration","scope":20210,"src":"4440:28:71","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Permission_$19945_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission"},"typeName":{"id":20191,"nodeType":"UserDefinedTypeName","pathNode":{"id":20190,"name":"Permission","nameLocations":["4440:10:71"],"nodeType":"IdentifierPath","referencedDeclaration":19945,"src":"4440:10:71"},"referencedDeclaration":19945,"src":"4440:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_Permission_$19945_storage_ptr","typeString":"struct ACMCommandsAggregator.Permission"}},"visibility":"internal"}],"id":20198,"initialValue":{"baseExpression":{"baseExpression":{"id":20193,"name":"revokePermissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19959,"src":"4471:17:71","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_struct$_Permission_$19945_storage_$dyn_storage_$dyn_storage","typeString":"struct ACMCommandsAggregator.Permission storage ref[] storage ref[] storage ref"}},"id":20195,"indexExpression":{"id":20194,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20171,"src":"4489:5:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4471:24:71","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Permission_$19945_storage_$dyn_storage","typeString":"struct ACMCommandsAggregator.Permission storage ref[] storage ref"}},"id":20197,"indexExpression":{"id":20196,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20182,"src":"4496:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4471:27:71","typeDescriptions":{"typeIdentifier":"t_struct$_Permission_$19945_storage","typeString":"struct ACMCommandsAggregator.Permission storage ref"}},"nodeType":"VariableDeclarationStatement","src":"4440:58:71"},{"expression":{"arguments":[{"expression":{"id":20202,"name":"permission","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20192,"src":"4537:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_Permission_$19945_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory"}},"id":20203,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4548:15:71","memberName":"contractAddress","nodeType":"MemberAccess","referencedDeclaration":19940,"src":"4537:26:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":20204,"name":"permission","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20192,"src":"4565:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_Permission_$19945_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory"}},"id":20205,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4576:11:71","memberName":"functionSig","nodeType":"MemberAccess","referencedDeclaration":19942,"src":"4565:22:71","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":20206,"name":"permission","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20192,"src":"4589:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_Permission_$19945_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory"}},"id":20207,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4600:7:71","memberName":"account","nodeType":"MemberAccess","referencedDeclaration":19944,"src":"4589:18:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20199,"name":"ACM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19949,"src":"4512:3:71","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$13903","typeString":"contract IAccessControlManagerV8"}},"id":20201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4516:20:71","memberName":"revokeCallPermission","nodeType":"MemberAccess","referencedDeclaration":13882,"src":"4512:24:71","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$_t_address_$returns$__$","typeString":"function (address,string memory,address) external"}},"id":20208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4512:96:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20209,"nodeType":"ExpressionStatement","src":"4512:96:71"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20184,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20182,"src":"4409:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":20185,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20175,"src":"4413:6:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4409:10:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20211,"initializationExpression":{"assignments":[20182],"declarations":[{"constant":false,"id":20182,"mutability":"mutable","name":"i","nameLocation":"4406:1:71","nodeType":"VariableDeclaration","scope":20211,"src":"4398:9:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20181,"name":"uint256","nodeType":"ElementaryTypeName","src":"4398:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20183,"nodeType":"VariableDeclarationStatement","src":"4398:9:71"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":20188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4421:3:71","subExpression":{"id":20187,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20182,"src":"4423:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20189,"nodeType":"ExpressionStatement","src":"4421:3:71"},"nodeType":"ForStatement","src":"4393:226:71"},{"eventCall":{"arguments":[{"id":20213,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20171,"src":"4660:5:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20212,"name":"RevokePermissionsExecuted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19975,"src":"4634:25:71","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":20214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4634:32:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20215,"nodeType":"EmitStatement","src":"4629:37:71"}]},"functionSelector":"22473d8c","id":20217,"implemented":true,"kind":"function","modifiers":[],"name":"executeRevokePermissions","nameLocation":"4276:24:71","nodeType":"FunctionDefinition","parameters":{"id":20172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20171,"mutability":"mutable","name":"index","nameLocation":"4309:5:71","nodeType":"VariableDeclaration","scope":20217,"src":"4301:13:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20170,"name":"uint256","nodeType":"ElementaryTypeName","src":"4301:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4300:15:71"},"returnParameters":{"id":20173,"nodeType":"ParameterList","parameters":[],"src":"4325:0:71"},"scope":20218,"src":"4267:406:71","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":20219,"src":"435:4240:71","usedErrors":[10924,19977],"usedEvents":[19963,19967,19971,19975]}],"src":"41:4635:71"},"id":71},"contracts/hardhat-dependency-compiler/hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol":{"ast":{"absolutePath":"contracts/hardhat-dependency-compiler/hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol","exportedSymbols":{"Address":[22448],"Context":[22470],"ERC1967Proxy":[21464],"ERC1967Upgrade":[21782],"IBeacon":[21844],"IERC1822Proxiable":[21411],"Ownable":[21401],"Proxy":[21834],"ProxyAdmin":[21989],"StorageSlot":[22530],"TransparentUpgradeableProxy":[22153]},"id":20222,"license":"UNLICENSED","nodeType":"SourceUnit","nodes":[{"id":20220,"literals":["solidity",">","0.0",".0"],"nodeType":"PragmaDirective","src":"39:23:72"},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol","file":"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol","id":20221,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":20222,"sourceUnit":21990,"src":"63:79:72","symbolAliases":[],"unitAlias":""}],"src":"39:104:72"},"id":72},"contracts/hardhat-dependency-compiler/hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol":{"ast":{"absolutePath":"contracts/hardhat-dependency-compiler/hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol","exportedSymbols":{"Address":[22448],"ERC1967Proxy":[21464],"ERC1967Upgrade":[21782],"IBeacon":[21844],"IERC1822Proxiable":[21411],"OptimizedTransparentUpgradeableProxy":[22705],"Proxy":[21834],"StorageSlot":[22530]},"id":20225,"license":"UNLICENSED","nodeType":"SourceUnit","nodes":[{"id":20223,"literals":["solidity",">","0.0",".0"],"nodeType":"PragmaDirective","src":"39:23:73"},{"absolutePath":"hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol","file":"hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol","id":20224,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":20225,"sourceUnit":22706,"src":"63:80:73","symbolAliases":[],"unitAlias":""}],"src":"39:105:73"},"id":73},"contracts/interfaces/ICorePoolComptroller.sol":{"ast":{"absolutePath":"contracts/interfaces/ICorePoolComptroller.sol","exportedSymbols":{"ICorePoolComptroller":[20347]},"id":20348,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":20226,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:74"},{"abstract":false,"baseContracts":[],"canonicalName":"ICorePoolComptroller","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":20347,"linearizedBaseContracts":[20347],"name":"ICorePoolComptroller","nameLocation":"76:20:74","nodeType":"ContractDefinition","nodes":[{"functionSelector":"4a584432","id":20233,"implemented":false,"kind":"function","modifiers":[],"name":"borrowCaps","nameLocation":"112:10:74","nodeType":"FunctionDefinition","parameters":{"id":20229,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20228,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20233,"src":"123:7:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20227,"name":"address","nodeType":"ElementaryTypeName","src":"123:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"122:9:74"},"returnParameters":{"id":20232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20231,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20233,"src":"155:7:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20230,"name":"uint256","nodeType":"ElementaryTypeName","src":"155:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"154:9:74"},"scope":20347,"src":"103:61:74","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"02c3bcbb","id":20240,"implemented":false,"kind":"function","modifiers":[],"name":"supplyCaps","nameLocation":"179:10:74","nodeType":"FunctionDefinition","parameters":{"id":20236,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20235,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20240,"src":"190:7:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20234,"name":"address","nodeType":"ElementaryTypeName","src":"190:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"189:9:74"},"returnParameters":{"id":20239,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20238,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20240,"src":"222:7:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20237,"name":"uint256","nodeType":"ElementaryTypeName","src":"222:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"221:9:74"},"scope":20347,"src":"170:61:74","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"51a485e4","id":20249,"implemented":false,"kind":"function","modifiers":[],"name":"_setMarketSupplyCaps","nameLocation":"246:20:74","nodeType":"FunctionDefinition","parameters":{"id":20247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20243,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20249,"src":"267:18:74","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":20241,"name":"address","nodeType":"ElementaryTypeName","src":"267:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20242,"nodeType":"ArrayTypeName","src":"267:9:74","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":20246,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20249,"src":"287:18:74","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":20244,"name":"uint256","nodeType":"ElementaryTypeName","src":"287:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20245,"nodeType":"ArrayTypeName","src":"287:9:74","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"266:40:74"},"returnParameters":{"id":20248,"nodeType":"ParameterList","parameters":[],"src":"315:0:74"},"scope":20347,"src":"237:79:74","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"607ef6c1","id":20258,"implemented":false,"kind":"function","modifiers":[],"name":"_setMarketBorrowCaps","nameLocation":"331:20:74","nodeType":"FunctionDefinition","parameters":{"id":20256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20252,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20258,"src":"352:18:74","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":20250,"name":"address","nodeType":"ElementaryTypeName","src":"352:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20251,"nodeType":"ArrayTypeName","src":"352:9:74","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":20255,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20258,"src":"372:18:74","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":20253,"name":"uint256","nodeType":"ElementaryTypeName","src":"372:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20254,"nodeType":"ArrayTypeName","src":"372:9:74","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"351:40:74"},"returnParameters":{"id":20257,"nodeType":"ParameterList","parameters":[],"src":"400:0:74"},"scope":20347,"src":"322:79:74","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"d136af44","id":20267,"implemented":false,"kind":"function","modifiers":[],"name":"setMarketSupplyCaps","nameLocation":"416:19:74","nodeType":"FunctionDefinition","parameters":{"id":20265,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20261,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20267,"src":"436:18:74","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":20259,"name":"address","nodeType":"ElementaryTypeName","src":"436:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20260,"nodeType":"ArrayTypeName","src":"436:9:74","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":20264,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20267,"src":"456:18:74","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":20262,"name":"uint256","nodeType":"ElementaryTypeName","src":"456:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20263,"nodeType":"ArrayTypeName","src":"456:9:74","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"435:40:74"},"returnParameters":{"id":20266,"nodeType":"ParameterList","parameters":[],"src":"484:0:74"},"scope":20347,"src":"407:78:74","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"186db48f","id":20276,"implemented":false,"kind":"function","modifiers":[],"name":"setMarketBorrowCaps","nameLocation":"500:19:74","nodeType":"FunctionDefinition","parameters":{"id":20274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20270,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20276,"src":"520:18:74","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":20268,"name":"address","nodeType":"ElementaryTypeName","src":"520:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20269,"nodeType":"ArrayTypeName","src":"520:9:74","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":20273,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20276,"src":"540:18:74","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":20271,"name":"uint256","nodeType":"ElementaryTypeName","src":"540:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20272,"nodeType":"ArrayTypeName","src":"540:9:74","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"519:40:74"},"returnParameters":{"id":20275,"nodeType":"ParameterList","parameters":[],"src":"568:0:74"},"scope":20347,"src":"491:78:74","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"b0772d0b","id":20282,"implemented":false,"kind":"function","modifiers":[],"name":"getAllMarkets","nameLocation":"584:13:74","nodeType":"FunctionDefinition","parameters":{"id":20277,"nodeType":"ParameterList","parameters":[],"src":"597:2:74"},"returnParameters":{"id":20281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20280,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20282,"src":"623:16:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":20278,"name":"address","nodeType":"ElementaryTypeName","src":"623:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20279,"nodeType":"ArrayTypeName","src":"623:9:74","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"622:18:74"},"scope":20347,"src":"575:66:74","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"9159b177","id":20295,"implemented":false,"kind":"function","modifiers":[],"name":"setCollateralFactor","nameLocation":"656:19:74","nodeType":"FunctionDefinition","parameters":{"id":20291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20284,"mutability":"mutable","name":"poolId","nameLocation":"692:6:74","nodeType":"VariableDeclaration","scope":20295,"src":"685:13:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":20283,"name":"uint96","nodeType":"ElementaryTypeName","src":"685:6:74","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":20286,"mutability":"mutable","name":"vToken","nameLocation":"716:6:74","nodeType":"VariableDeclaration","scope":20295,"src":"708:14:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20285,"name":"address","nodeType":"ElementaryTypeName","src":"708:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20288,"mutability":"mutable","name":"newCollateralFactorMantissa","nameLocation":"740:27:74","nodeType":"VariableDeclaration","scope":20295,"src":"732:35:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20287,"name":"uint256","nodeType":"ElementaryTypeName","src":"732:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20290,"mutability":"mutable","name":"newLiquidizationThresholdMantissa","nameLocation":"785:33:74","nodeType":"VariableDeclaration","scope":20295,"src":"777:41:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20289,"name":"uint256","nodeType":"ElementaryTypeName","src":"777:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"675:149:74"},"returnParameters":{"id":20294,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20293,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20295,"src":"843:7:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20292,"name":"uint256","nodeType":"ElementaryTypeName","src":"843:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"842:9:74"},"scope":20347,"src":"647:205:74","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"5cc4fdeb","id":20306,"implemented":false,"kind":"function","modifiers":[],"name":"setCollateralFactor","nameLocation":"867:19:74","nodeType":"FunctionDefinition","parameters":{"id":20302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20297,"mutability":"mutable","name":"vToken","nameLocation":"904:6:74","nodeType":"VariableDeclaration","scope":20306,"src":"896:14:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20296,"name":"address","nodeType":"ElementaryTypeName","src":"896:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20299,"mutability":"mutable","name":"newCollateralFactorMantissa","nameLocation":"928:27:74","nodeType":"VariableDeclaration","scope":20306,"src":"920:35:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20298,"name":"uint256","nodeType":"ElementaryTypeName","src":"920:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20301,"mutability":"mutable","name":"newLiquidationThresholdMantissa","nameLocation":"973:31:74","nodeType":"VariableDeclaration","scope":20306,"src":"965:39:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20300,"name":"uint256","nodeType":"ElementaryTypeName","src":"965:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"886:124:74"},"returnParameters":{"id":20305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20304,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20306,"src":"1029:7:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20303,"name":"uint256","nodeType":"ElementaryTypeName","src":"1029:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1028:9:74"},"scope":20347,"src":"858:180:74","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"8e8f294b","id":20325,"implemented":false,"kind":"function","modifiers":[],"name":"markets","nameLocation":"1053:7:74","nodeType":"FunctionDefinition","parameters":{"id":20309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20308,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20325,"src":"1070:7:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20307,"name":"address","nodeType":"ElementaryTypeName","src":"1070:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1060:23:74"},"returnParameters":{"id":20324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20311,"mutability":"mutable","name":"isListed","nameLocation":"1149:8:74","nodeType":"VariableDeclaration","scope":20325,"src":"1144:13:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20310,"name":"bool","nodeType":"ElementaryTypeName","src":"1144:4:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20313,"mutability":"mutable","name":"collateralFactorMantissa","nameLocation":"1179:24:74","nodeType":"VariableDeclaration","scope":20325,"src":"1171:32:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20312,"name":"uint256","nodeType":"ElementaryTypeName","src":"1171:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20315,"mutability":"mutable","name":"isVenus","nameLocation":"1222:7:74","nodeType":"VariableDeclaration","scope":20325,"src":"1217:12:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20314,"name":"bool","nodeType":"ElementaryTypeName","src":"1217:4:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20317,"mutability":"mutable","name":"liquidationThresholdMantissa","nameLocation":"1251:28:74","nodeType":"VariableDeclaration","scope":20325,"src":"1243:36:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20316,"name":"uint256","nodeType":"ElementaryTypeName","src":"1243:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20319,"mutability":"mutable","name":"liquidationIncentiveMantissa","nameLocation":"1301:28:74","nodeType":"VariableDeclaration","scope":20325,"src":"1293:36:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20318,"name":"uint256","nodeType":"ElementaryTypeName","src":"1293:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20321,"mutability":"mutable","name":"marketPoolId","nameLocation":"1350:12:74","nodeType":"VariableDeclaration","scope":20325,"src":"1343:19:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":20320,"name":"uint96","nodeType":"ElementaryTypeName","src":"1343:6:74","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":20323,"mutability":"mutable","name":"isBorrowAllowed","nameLocation":"1381:15:74","nodeType":"VariableDeclaration","scope":20325,"src":"1376:20:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20322,"name":"bool","nodeType":"ElementaryTypeName","src":"1376:4:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1130:276:74"},"scope":20347,"src":"1044:363:74","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"3093c11e","id":20346,"implemented":false,"kind":"function","modifiers":[],"name":"poolMarkets","nameLocation":"1422:11:74","nodeType":"FunctionDefinition","parameters":{"id":20330,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20327,"mutability":"mutable","name":"poolId","nameLocation":"1450:6:74","nodeType":"VariableDeclaration","scope":20346,"src":"1443:13:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":20326,"name":"uint96","nodeType":"ElementaryTypeName","src":"1443:6:74","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":20329,"mutability":"mutable","name":"vToken","nameLocation":"1474:6:74","nodeType":"VariableDeclaration","scope":20346,"src":"1466:14:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20328,"name":"address","nodeType":"ElementaryTypeName","src":"1466:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1433:53:74"},"returnParameters":{"id":20345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20332,"mutability":"mutable","name":"isListed","nameLocation":"1552:8:74","nodeType":"VariableDeclaration","scope":20346,"src":"1547:13:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20331,"name":"bool","nodeType":"ElementaryTypeName","src":"1547:4:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20334,"mutability":"mutable","name":"collateralFactorMantissa","nameLocation":"1582:24:74","nodeType":"VariableDeclaration","scope":20346,"src":"1574:32:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20333,"name":"uint256","nodeType":"ElementaryTypeName","src":"1574:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20336,"mutability":"mutable","name":"isVenus","nameLocation":"1625:7:74","nodeType":"VariableDeclaration","scope":20346,"src":"1620:12:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20335,"name":"bool","nodeType":"ElementaryTypeName","src":"1620:4:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20338,"mutability":"mutable","name":"liquidationThresholdMantissa","nameLocation":"1654:28:74","nodeType":"VariableDeclaration","scope":20346,"src":"1646:36:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20337,"name":"uint256","nodeType":"ElementaryTypeName","src":"1646:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20340,"mutability":"mutable","name":"liquidationIncentiveMantissa","nameLocation":"1704:28:74","nodeType":"VariableDeclaration","scope":20346,"src":"1696:36:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20339,"name":"uint256","nodeType":"ElementaryTypeName","src":"1696:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20342,"mutability":"mutable","name":"marketPoolId","nameLocation":"1753:12:74","nodeType":"VariableDeclaration","scope":20346,"src":"1746:19:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":20341,"name":"uint96","nodeType":"ElementaryTypeName","src":"1746:6:74","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":20344,"mutability":"mutable","name":"isBorrowAllowed","nameLocation":"1784:15:74","nodeType":"VariableDeclaration","scope":20346,"src":"1779:20:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20343,"name":"bool","nodeType":"ElementaryTypeName","src":"1779:4:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1533:276:74"},"scope":20347,"src":"1413:397:74","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":20348,"src":"66:1746:74","usedErrors":[],"usedEvents":[]}],"src":"41:1772:74"},"id":74},"contracts/interfaces/ICorePoolVToken.sol":{"ast":{"absolutePath":"contracts/interfaces/ICorePoolVToken.sol","exportedSymbols":{"ICorePoolVToken":[20370],"InterestRateModelV8":[10994]},"id":20371,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":20349,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:75"},{"absolutePath":"@venusprotocol/venus-protocol/contracts/InterestRateModels/InterestRateModelV8.sol","file":"@venusprotocol/venus-protocol/contracts/InterestRateModels/InterestRateModelV8.sol","id":20351,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":20371,"sourceUnit":10995,"src":"66:121:75","symbolAliases":[{"foreign":{"id":20350,"name":"InterestRateModelV8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10994,"src":"75:19:75","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"ICorePoolVToken","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":20370,"linearizedBaseContracts":[20370],"name":"ICorePoolVToken","nameLocation":"199:15:75","nodeType":"ContractDefinition","nodes":[{"functionSelector":"5fe3b567","id":20356,"implemented":false,"kind":"function","modifiers":[],"name":"comptroller","nameLocation":"230:11:75","nodeType":"FunctionDefinition","parameters":{"id":20352,"nodeType":"ParameterList","parameters":[],"src":"241:2:75"},"returnParameters":{"id":20355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20354,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20356,"src":"267:7:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20353,"name":"address","nodeType":"ElementaryTypeName","src":"267:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"266:9:75"},"scope":20370,"src":"221:55:75","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"f3fdb15a","id":20361,"implemented":false,"kind":"function","modifiers":[],"name":"interestRateModel","nameLocation":"291:17:75","nodeType":"FunctionDefinition","parameters":{"id":20357,"nodeType":"ParameterList","parameters":[],"src":"308:2:75"},"returnParameters":{"id":20360,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20359,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20361,"src":"334:7:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20358,"name":"address","nodeType":"ElementaryTypeName","src":"334:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"333:9:75"},"scope":20370,"src":"282:61:75","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"f2b3abbd","id":20369,"implemented":false,"kind":"function","modifiers":[],"name":"_setInterestRateModel","nameLocation":"358:21:75","nodeType":"FunctionDefinition","parameters":{"id":20365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20364,"mutability":"mutable","name":"newInterestRateModel","nameLocation":"400:20:75","nodeType":"VariableDeclaration","scope":20369,"src":"380:40:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_InterestRateModelV8_$10994","typeString":"contract InterestRateModelV8"},"typeName":{"id":20363,"nodeType":"UserDefinedTypeName","pathNode":{"id":20362,"name":"InterestRateModelV8","nameLocations":["380:19:75"],"nodeType":"IdentifierPath","referencedDeclaration":10994,"src":"380:19:75"},"referencedDeclaration":10994,"src":"380:19:75","typeDescriptions":{"typeIdentifier":"t_contract$_InterestRateModelV8_$10994","typeString":"contract InterestRateModelV8"}},"visibility":"internal"}],"src":"379:42:75"},"returnParameters":{"id":20368,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20367,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20369,"src":"440:7:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20366,"name":"uint256","nodeType":"ElementaryTypeName","src":"440:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"439:9:75"},"scope":20370,"src":"349:100:75","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":20371,"src":"189:262:75","usedErrors":[],"usedEvents":[]}],"src":"41:411:75"},"id":75},"contracts/interfaces/IIsolatedPoolVToken.sol":{"ast":{"absolutePath":"contracts/interfaces/IIsolatedPoolVToken.sol","exportedSymbols":{"IIsolatedPoolVToken":[20391],"InterestRateModel":[10919]},"id":20392,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":20372,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:76"},{"absolutePath":"@venusprotocol/isolated-pools/contracts/InterestRateModel.sol","file":"@venusprotocol/isolated-pools/contracts/InterestRateModel.sol","id":20374,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":20392,"sourceUnit":10920,"src":"66:98:76","symbolAliases":[{"foreign":{"id":20373,"name":"InterestRateModel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10919,"src":"75:17:76","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"IIsolatedPoolVToken","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":20391,"linearizedBaseContracts":[20391],"name":"IIsolatedPoolVToken","nameLocation":"176:19:76","nodeType":"ContractDefinition","nodes":[{"functionSelector":"5fe3b567","id":20379,"implemented":false,"kind":"function","modifiers":[],"name":"comptroller","nameLocation":"211:11:76","nodeType":"FunctionDefinition","parameters":{"id":20375,"nodeType":"ParameterList","parameters":[],"src":"222:2:76"},"returnParameters":{"id":20378,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20377,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20379,"src":"248:7:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20376,"name":"address","nodeType":"ElementaryTypeName","src":"248:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"247:9:76"},"scope":20391,"src":"202:55:76","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"f3fdb15a","id":20384,"implemented":false,"kind":"function","modifiers":[],"name":"interestRateModel","nameLocation":"272:17:76","nodeType":"FunctionDefinition","parameters":{"id":20380,"nodeType":"ParameterList","parameters":[],"src":"289:2:76"},"returnParameters":{"id":20383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20382,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20384,"src":"315:7:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20381,"name":"address","nodeType":"ElementaryTypeName","src":"315:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"314:9:76"},"scope":20391,"src":"263:61:76","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"8bcd4016","id":20390,"implemented":false,"kind":"function","modifiers":[],"name":"setInterestRateModel","nameLocation":"339:20:76","nodeType":"FunctionDefinition","parameters":{"id":20388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20387,"mutability":"mutable","name":"newInterestRateModel","nameLocation":"378:20:76","nodeType":"VariableDeclaration","scope":20390,"src":"360:38:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_InterestRateModel_$10919","typeString":"contract InterestRateModel"},"typeName":{"id":20386,"nodeType":"UserDefinedTypeName","pathNode":{"id":20385,"name":"InterestRateModel","nameLocations":["360:17:76"],"nodeType":"IdentifierPath","referencedDeclaration":10919,"src":"360:17:76"},"referencedDeclaration":10919,"src":"360:17:76","typeDescriptions":{"typeIdentifier":"t_contract$_InterestRateModel_$10919","typeString":"contract InterestRateModel"}},"visibility":"internal"}],"src":"359:40:76"},"returnParameters":{"id":20389,"nodeType":"ParameterList","parameters":[],"src":"408:0:76"},"scope":20391,"src":"330:79:76","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":20392,"src":"166:245:76","usedErrors":[],"usedEvents":[]}],"src":"41:371:76"},"id":76},"contracts/interfaces/IIsolatedPoolsComptroller.sol":{"ast":{"absolutePath":"contracts/interfaces/IIsolatedPoolsComptroller.sol","exportedSymbols":{"IIsolatedPoolsComptroller":[20452]},"id":20453,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":20393,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:77"},{"abstract":false,"baseContracts":[],"canonicalName":"IIsolatedPoolsComptroller","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":20452,"linearizedBaseContracts":[20452],"name":"IIsolatedPoolsComptroller","nameLocation":"76:25:77","nodeType":"ContractDefinition","nodes":[{"functionSelector":"4a584432","id":20400,"implemented":false,"kind":"function","modifiers":[],"name":"borrowCaps","nameLocation":"117:10:77","nodeType":"FunctionDefinition","parameters":{"id":20396,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20395,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20400,"src":"128:7:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20394,"name":"address","nodeType":"ElementaryTypeName","src":"128:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"127:9:77"},"returnParameters":{"id":20399,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20398,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20400,"src":"160:7:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20397,"name":"uint256","nodeType":"ElementaryTypeName","src":"160:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"159:9:77"},"scope":20452,"src":"108:61:77","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"02c3bcbb","id":20407,"implemented":false,"kind":"function","modifiers":[],"name":"supplyCaps","nameLocation":"184:10:77","nodeType":"FunctionDefinition","parameters":{"id":20403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20402,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20407,"src":"195:7:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20401,"name":"address","nodeType":"ElementaryTypeName","src":"195:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"194:9:77"},"returnParameters":{"id":20406,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20405,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20407,"src":"227:7:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20404,"name":"uint256","nodeType":"ElementaryTypeName","src":"227:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"226:9:77"},"scope":20452,"src":"175:61:77","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"d136af44","id":20416,"implemented":false,"kind":"function","modifiers":[],"name":"setMarketSupplyCaps","nameLocation":"251:19:77","nodeType":"FunctionDefinition","parameters":{"id":20414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20410,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20416,"src":"271:18:77","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":20408,"name":"address","nodeType":"ElementaryTypeName","src":"271:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20409,"nodeType":"ArrayTypeName","src":"271:9:77","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":20413,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20416,"src":"291:18:77","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":20411,"name":"uint256","nodeType":"ElementaryTypeName","src":"291:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20412,"nodeType":"ArrayTypeName","src":"291:9:77","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"270:40:77"},"returnParameters":{"id":20415,"nodeType":"ParameterList","parameters":[],"src":"319:0:77"},"scope":20452,"src":"242:78:77","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"186db48f","id":20425,"implemented":false,"kind":"function","modifiers":[],"name":"setMarketBorrowCaps","nameLocation":"335:19:77","nodeType":"FunctionDefinition","parameters":{"id":20423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20419,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20425,"src":"355:18:77","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":20417,"name":"address","nodeType":"ElementaryTypeName","src":"355:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20418,"nodeType":"ArrayTypeName","src":"355:9:77","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":20422,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20425,"src":"375:18:77","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":20420,"name":"uint256","nodeType":"ElementaryTypeName","src":"375:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20421,"nodeType":"ArrayTypeName","src":"375:9:77","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"354:40:77"},"returnParameters":{"id":20424,"nodeType":"ParameterList","parameters":[],"src":"403:0:77"},"scope":20452,"src":"326:78:77","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"b0772d0b","id":20431,"implemented":false,"kind":"function","modifiers":[],"name":"getAllMarkets","nameLocation":"419:13:77","nodeType":"FunctionDefinition","parameters":{"id":20426,"nodeType":"ParameterList","parameters":[],"src":"432:2:77"},"returnParameters":{"id":20430,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20429,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20431,"src":"458:16:77","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":20427,"name":"address","nodeType":"ElementaryTypeName","src":"458:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20428,"nodeType":"ArrayTypeName","src":"458:9:77","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"457:18:77"},"scope":20452,"src":"410:66:77","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"5cc4fdeb","id":20440,"implemented":false,"kind":"function","modifiers":[],"name":"setCollateralFactor","nameLocation":"491:19:77","nodeType":"FunctionDefinition","parameters":{"id":20438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20433,"mutability":"mutable","name":"vToken","nameLocation":"528:6:77","nodeType":"VariableDeclaration","scope":20440,"src":"520:14:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20432,"name":"address","nodeType":"ElementaryTypeName","src":"520:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20435,"mutability":"mutable","name":"newCollateralFactorMantissa","nameLocation":"552:27:77","nodeType":"VariableDeclaration","scope":20440,"src":"544:35:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20434,"name":"uint256","nodeType":"ElementaryTypeName","src":"544:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20437,"mutability":"mutable","name":"newLiquidationThresholdMantissa","nameLocation":"597:31:77","nodeType":"VariableDeclaration","scope":20440,"src":"589:39:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20436,"name":"uint256","nodeType":"ElementaryTypeName","src":"589:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"510:124:77"},"returnParameters":{"id":20439,"nodeType":"ParameterList","parameters":[],"src":"643:0:77"},"scope":20452,"src":"482:162:77","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"8e8f294b","id":20451,"implemented":false,"kind":"function","modifiers":[],"name":"markets","nameLocation":"659:7:77","nodeType":"FunctionDefinition","parameters":{"id":20443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20442,"mutability":"mutable","name":"vToken","nameLocation":"684:6:77","nodeType":"VariableDeclaration","scope":20451,"src":"676:14:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20441,"name":"address","nodeType":"ElementaryTypeName","src":"676:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"666:30:77"},"returnParameters":{"id":20450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20445,"mutability":"mutable","name":"isListed","nameLocation":"725:8:77","nodeType":"VariableDeclaration","scope":20451,"src":"720:13:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20444,"name":"bool","nodeType":"ElementaryTypeName","src":"720:4:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20447,"mutability":"mutable","name":"collateralFactorMantissa","nameLocation":"743:24:77","nodeType":"VariableDeclaration","scope":20451,"src":"735:32:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20446,"name":"uint256","nodeType":"ElementaryTypeName","src":"735:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20449,"mutability":"mutable","name":"liquidationThresholdMantissa","nameLocation":"777:28:77","nodeType":"VariableDeclaration","scope":20451,"src":"769:36:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20448,"name":"uint256","nodeType":"ElementaryTypeName","src":"769:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"719:87:77"},"scope":20452,"src":"650:157:77","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":20453,"src":"66:743:77","usedErrors":[],"usedEvents":[]}],"src":"41:769:77"},"id":77},"contracts/test/MockAccessTest.sol":{"ast":{"absolutePath":"contracts/test/MockAccessTest.sol","exportedSymbols":{"AccessControlledV8":[13858],"AddressUpgradeable":[6532],"ContextUpgradeable":[6574],"IAccessControl":[6963],"IAccessControlManagerV8":[13903],"ILayerZeroEndpoint":[4253],"ILayerZeroReceiver":[4267],"ILayerZeroUserApplicationConfig":[4298],"Initializable":[6248],"LZEndpointMock":[5841],"LzLib":[4523],"MockAccessTest":[20472],"Ownable2StepUpgradeable":[5947],"OwnableUpgradeable":[6079]},"id":20473,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":20454,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:78"},{"absolutePath":"contracts/Governance/AccessControlledV8.sol","file":"../Governance/AccessControlledV8.sol","id":20455,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":20473,"sourceUnit":13859,"src":"66:46:78","symbolAliases":[],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol","file":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol","id":20456,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":20473,"sourceUnit":5842,"src":"113:83:78","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":20457,"name":"AccessControlledV8","nameLocations":["225:18:78"],"nodeType":"IdentifierPath","referencedDeclaration":13858,"src":"225:18:78"},"id":20458,"nodeType":"InheritanceSpecifier","src":"225:18:78"}],"canonicalName":"MockAccessTest","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":20472,"linearizedBaseContracts":[20472,13858,5947,6079,6574,6248],"name":"MockAccessTest","nameLocation":"207:14:78","nodeType":"ContractDefinition","nodes":[{"body":{"id":20470,"nodeType":"Block","src":"412:62:78","statements":[{"expression":{"arguments":[{"id":20467,"name":"accessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20461,"src":"446:20:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":20466,"name":"__AccessControlled_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13754,"src":"422:23:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":20468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"422:45:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20469,"nodeType":"ExpressionStatement","src":"422:45:78"}]},"documentation":{"id":20459,"nodeType":"StructuredDocumentation","src":"250:86:78","text":" @param accessControlManager Access control manager contract address"},"functionSelector":"c4d66de8","id":20471,"implemented":true,"kind":"function","modifiers":[{"id":20464,"kind":"modifierInvocation","modifierName":{"id":20463,"name":"initializer","nameLocations":["400:11:78"],"nodeType":"IdentifierPath","referencedDeclaration":6150,"src":"400:11:78"},"nodeType":"ModifierInvocation","src":"400:11:78"}],"name":"initialize","nameLocation":"350:10:78","nodeType":"FunctionDefinition","parameters":{"id":20462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20461,"mutability":"mutable","name":"accessControlManager","nameLocation":"369:20:78","nodeType":"VariableDeclaration","scope":20471,"src":"361:28:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20460,"name":"address","nodeType":"ElementaryTypeName","src":"361:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"360:30:78"},"returnParameters":{"id":20465,"nodeType":"ParameterList","parameters":[],"src":"412:0:78"},"scope":20472,"src":"341:133:78","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":20473,"src":"198:278:78","usedErrors":[13739],"usedEvents":[5873,5964,6094,13730]}],"src":"41:436:78"},"id":78},"contracts/test/MockComptroller.sol":{"ast":{"absolutePath":"contracts/test/MockComptroller.sol","exportedSymbols":{"ICorePoolVToken":[20370],"MockComptroller":[20776]},"id":20777,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":20474,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:79"},{"absolutePath":"contracts/interfaces/ICorePoolVToken.sol","file":"../interfaces/ICorePoolVToken.sol","id":20476,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":20777,"sourceUnit":20371,"src":"66:68:79","symbolAliases":[{"foreign":{"id":20475,"name":"ICorePoolVToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20370,"src":"75:15:79","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"MockComptroller","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":20776,"linearizedBaseContracts":[20776],"name":"MockComptroller","nameLocation":"145:15:79","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":20477,"nodeType":"StructuredDocumentation","src":"167:60:79","text":"@notice Mapping of vToken addresses to their supply caps"},"functionSelector":"02c3bcbb","id":20481,"mutability":"mutable","name":"supplyCaps","nameLocation":"267:10:79","nodeType":"VariableDeclaration","scope":20776,"src":"232:45:79","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":20480,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":20478,"name":"address","nodeType":"ElementaryTypeName","src":"240:7:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"232:27:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":20479,"name":"uint256","nodeType":"ElementaryTypeName","src":"251:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"documentation":{"id":20482,"nodeType":"StructuredDocumentation","src":"284:60:79","text":"@notice Mapping of vToken addresses to their borrow caps"},"functionSelector":"4a584432","id":20486,"mutability":"mutable","name":"borrowCaps","nameLocation":"384:10:79","nodeType":"VariableDeclaration","scope":20776,"src":"349:45:79","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":20485,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":20483,"name":"address","nodeType":"ElementaryTypeName","src":"357:7:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"349:27:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":20484,"name":"uint256","nodeType":"ElementaryTypeName","src":"368:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"documentation":{"id":20487,"nodeType":"StructuredDocumentation","src":"401:32:79","text":"@notice Array of all vTokens"},"functionSelector":"1f3cefb5","id":20491,"mutability":"mutable","name":"allVTokens","nameLocation":"463:10:79","nodeType":"VariableDeclaration","scope":20776,"src":"438:35:79","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ICorePoolVToken_$20370_$dyn_storage","typeString":"contract ICorePoolVToken[]"},"typeName":{"baseType":{"id":20489,"nodeType":"UserDefinedTypeName","pathNode":{"id":20488,"name":"ICorePoolVToken","nameLocations":["438:15:79"],"nodeType":"IdentifierPath","referencedDeclaration":20370,"src":"438:15:79"},"referencedDeclaration":20370,"src":"438:15:79","typeDescriptions":{"typeIdentifier":"t_contract$_ICorePoolVToken_$20370","typeString":"contract ICorePoolVToken"}},"id":20490,"nodeType":"ArrayTypeName","src":"438:17:79","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ICorePoolVToken_$20370_$dyn_storage_ptr","typeString":"contract ICorePoolVToken[]"}},"visibility":"public"},{"constant":false,"documentation":{"id":20492,"nodeType":"StructuredDocumentation","src":"480:80:79","text":"@notice Mapping of vToken addresses to boolean indicating if they are listed"},"functionSelector":"d571c311","id":20496,"mutability":"mutable","name":"vTokenListed","nameLocation":"597:12:79","nodeType":"VariableDeclaration","scope":20776,"src":"565:44:79","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":20495,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":20493,"name":"address","nodeType":"ElementaryTypeName","src":"573:7:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"565:24:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":20494,"name":"bool","nodeType":"ElementaryTypeName","src":"584:4:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"constant":false,"documentation":{"id":20497,"nodeType":"StructuredDocumentation","src":"616:67:79","text":"@notice Mapping of vToken addresses to their collateral factors"},"id":20501,"mutability":"mutable","name":"_collateralFactorMantissa","nameLocation":"725:25:79","nodeType":"VariableDeclaration","scope":20776,"src":"688:62:79","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":20500,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":20498,"name":"address","nodeType":"ElementaryTypeName","src":"696:7:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"688:27:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":20499,"name":"uint256","nodeType":"ElementaryTypeName","src":"707:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"constant":false,"documentation":{"id":20502,"nodeType":"StructuredDocumentation","src":"757:71:79","text":"@notice Mapping of vToken addresses to their liquidation thresholds"},"id":20506,"mutability":"mutable","name":"_liquidationThresholdMantissa","nameLocation":"870:29:79","nodeType":"VariableDeclaration","scope":20776,"src":"833:66:79","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":20505,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":20503,"name":"address","nodeType":"ElementaryTypeName","src":"841:7:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"833:27:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":20504,"name":"uint256","nodeType":"ElementaryTypeName","src":"852:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"body":{"id":20537,"nodeType":"Block","src":"1055:168:79","statements":[{"expression":{"arguments":[{"id":20516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1073:21:79","subExpression":{"baseExpression":{"id":20513,"name":"vTokenListed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20496,"src":"1074:12:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":20515,"indexExpression":{"id":20514,"name":"vToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20509,"src":"1087:6:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1074:20:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"76546f6b656e20616c7265616479206c6973746564","id":20517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1096:23:79","typeDescriptions":{"typeIdentifier":"t_stringliteral_84ea8cbff7c4e00b3f00b9454b5ce4aa857457c6267822e855dbbcd0fcbc4cee","typeString":"literal_string \"vToken already listed\""},"value":"vToken already listed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_84ea8cbff7c4e00b3f00b9454b5ce4aa857457c6267822e855dbbcd0fcbc4cee","typeString":"literal_string \"vToken already listed\""}],"id":20512,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1065:7:79","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1065:55:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20519,"nodeType":"ExpressionStatement","src":"1065:55:79"},{"expression":{"id":20527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":20520,"name":"vTokenListed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20496,"src":"1130:12:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":20525,"indexExpression":{"arguments":[{"id":20523,"name":"vToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20509,"src":"1151:6:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":20522,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1143:7:79","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":20521,"name":"address","nodeType":"ElementaryTypeName","src":"1143:7:79","typeDescriptions":{}}},"id":20524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1143:15:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1130:29:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":20526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1162:4:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1130:36:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20528,"nodeType":"ExpressionStatement","src":"1130:36:79"},{"expression":{"arguments":[{"arguments":[{"id":20533,"name":"vToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20509,"src":"1208:6:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":20532,"name":"ICorePoolVToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20370,"src":"1192:15:79","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ICorePoolVToken_$20370_$","typeString":"type(contract ICorePoolVToken)"}},"id":20534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1192:23:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ICorePoolVToken_$20370","typeString":"contract ICorePoolVToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ICorePoolVToken_$20370","typeString":"contract ICorePoolVToken"}],"expression":{"id":20529,"name":"allVTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20491,"src":"1176:10:79","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ICorePoolVToken_$20370_$dyn_storage","typeString":"contract ICorePoolVToken[] storage ref"}},"id":20531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1187:4:79","memberName":"push","nodeType":"MemberAccess","src":"1176:15:79","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_contract$_ICorePoolVToken_$20370_$dyn_storage_ptr_$_t_contract$_ICorePoolVToken_$20370_$returns$__$attached_to$_t_array$_t_contract$_ICorePoolVToken_$20370_$dyn_storage_ptr_$","typeString":"function (contract ICorePoolVToken[] storage pointer,contract ICorePoolVToken)"}},"id":20535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1176:40:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20536,"nodeType":"ExpressionStatement","src":"1176:40:79"}]},"documentation":{"id":20507,"nodeType":"StructuredDocumentation","src":"906:96:79","text":" @notice Add a new vToken to be tracked\n @param vToken The vToken to add"},"functionSelector":"cab4f84c","id":20538,"implemented":true,"kind":"function","modifiers":[],"name":"supportMarket","nameLocation":"1016:13:79","nodeType":"FunctionDefinition","parameters":{"id":20510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20509,"mutability":"mutable","name":"vToken","nameLocation":"1038:6:79","nodeType":"VariableDeclaration","scope":20538,"src":"1030:14:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20508,"name":"address","nodeType":"ElementaryTypeName","src":"1030:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1029:16:79"},"returnParameters":{"id":20511,"nodeType":"ParameterList","parameters":[],"src":"1055:0:79"},"scope":20776,"src":"1007:216:79","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":20602,"nodeType":"Block","src":"1471:367:79","statements":[{"assignments":[20549],"declarations":[{"constant":false,"id":20549,"mutability":"mutable","name":"numMarkets","nameLocation":"1489:10:79","nodeType":"VariableDeclaration","scope":20602,"src":"1481:18:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20548,"name":"uint256","nodeType":"ElementaryTypeName","src":"1481:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20552,"initialValue":{"expression":{"id":20550,"name":"vTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20542,"src":"1502:7:79","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":20551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1510:6:79","memberName":"length","nodeType":"MemberAccess","src":"1502:14:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1481:35:79"},{"assignments":[20554],"declarations":[{"constant":false,"id":20554,"mutability":"mutable","name":"numSupplyCaps","nameLocation":"1534:13:79","nodeType":"VariableDeclaration","scope":20602,"src":"1526:21:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20553,"name":"uint256","nodeType":"ElementaryTypeName","src":"1526:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20557,"initialValue":{"expression":{"id":20555,"name":"newCaps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20545,"src":"1550:7:79","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":20556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1558:6:79","memberName":"length","nodeType":"MemberAccess","src":"1550:14:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1526:38:79"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":20565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20559,"name":"numMarkets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20549,"src":"1583:10:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":20560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1597:1:79","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1583:15:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20562,"name":"numMarkets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20549,"src":"1602:10:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":20563,"name":"numSupplyCaps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20554,"src":"1616:13:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1602:27:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1583:46:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c696420696e707574","id":20566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1631:15:79","typeDescriptions":{"typeIdentifier":"t_stringliteral_dbab81719f15ade78f76dcdbf7cff531fc5f9822fe7e8466ffdd2feb23510f3b","typeString":"literal_string \"invalid input\""},"value":"invalid input"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dbab81719f15ade78f76dcdbf7cff531fc5f9822fe7e8466ffdd2feb23510f3b","typeString":"literal_string \"invalid input\""}],"id":20558,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1575:7:79","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1575:72:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20568,"nodeType":"ExpressionStatement","src":"1575:72:79"},{"body":{"id":20600,"nodeType":"Block","src":"1695:137:79","statements":[{"expression":{"arguments":[{"baseExpression":{"id":20579,"name":"vTokenListed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20496,"src":"1717:12:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":20583,"indexExpression":{"baseExpression":{"id":20580,"name":"vTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20542,"src":"1730:7:79","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":20582,"indexExpression":{"id":20581,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20570,"src":"1738:1:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1730:10:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1717:24:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"76546f6b656e206e6f74206c6973746564","id":20584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1743:19:79","typeDescriptions":{"typeIdentifier":"t_stringliteral_5c13dd817de0f8201c35587e146ee1e71ecba9055e5e2b82d1180351af16b685","typeString":"literal_string \"vToken not listed\""},"value":"vToken not listed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5c13dd817de0f8201c35587e146ee1e71ecba9055e5e2b82d1180351af16b685","typeString":"literal_string \"vToken not listed\""}],"id":20578,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1709:7:79","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1709:54:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20586,"nodeType":"ExpressionStatement","src":"1709:54:79"},{"expression":{"id":20598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":20587,"name":"supplyCaps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20481,"src":"1777:10:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":20594,"indexExpression":{"arguments":[{"baseExpression":{"id":20590,"name":"vTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20542,"src":"1796:7:79","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":20592,"indexExpression":{"id":20591,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20570,"src":"1804:1:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1796:10:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":20589,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1788:7:79","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":20588,"name":"address","nodeType":"ElementaryTypeName","src":"1788:7:79","typeDescriptions":{}}},"id":20593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1788:19:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1777:31:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":20595,"name":"newCaps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20545,"src":"1811:7:79","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":20597,"indexExpression":{"id":20596,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20570,"src":"1819:1:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1811:10:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1777:44:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20599,"nodeType":"ExpressionStatement","src":"1777:44:79"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20572,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20570,"src":"1674:1:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":20573,"name":"numMarkets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20549,"src":"1678:10:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1674:14:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20601,"initializationExpression":{"assignments":[20570],"declarations":[{"constant":false,"id":20570,"mutability":"mutable","name":"i","nameLocation":"1671:1:79","nodeType":"VariableDeclaration","scope":20601,"src":"1663:9:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20569,"name":"uint256","nodeType":"ElementaryTypeName","src":"1663:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20571,"nodeType":"VariableDeclarationStatement","src":"1663:9:79"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":20576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"1690:3:79","subExpression":{"id":20575,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20570,"src":"1692:1:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20577,"nodeType":"ExpressionStatement","src":"1690:3:79"},"nodeType":"ForStatement","src":"1658:174:79"}]},"documentation":{"id":20539,"nodeType":"StructuredDocumentation","src":"1229:143:79","text":" @notice Set the supply cap for a vToken\n @param vTokens The vToken addresses\n @param newCaps The new supply caps"},"functionSelector":"d136af44","id":20603,"implemented":true,"kind":"function","modifiers":[],"name":"setMarketSupplyCaps","nameLocation":"1386:19:79","nodeType":"FunctionDefinition","parameters":{"id":20546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20542,"mutability":"mutable","name":"vTokens","nameLocation":"1425:7:79","nodeType":"VariableDeclaration","scope":20603,"src":"1406:26:79","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":20540,"name":"address","nodeType":"ElementaryTypeName","src":"1406:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20541,"nodeType":"ArrayTypeName","src":"1406:9:79","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":20545,"mutability":"mutable","name":"newCaps","nameLocation":"1453:7:79","nodeType":"VariableDeclaration","scope":20603,"src":"1434:26:79","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":20543,"name":"uint256","nodeType":"ElementaryTypeName","src":"1434:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20544,"nodeType":"ArrayTypeName","src":"1434:9:79","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"1405:56:79"},"returnParameters":{"id":20547,"nodeType":"ParameterList","parameters":[],"src":"1471:0:79"},"scope":20776,"src":"1377:461:79","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":20667,"nodeType":"Block","src":"2086:367:79","statements":[{"assignments":[20614],"declarations":[{"constant":false,"id":20614,"mutability":"mutable","name":"numMarkets","nameLocation":"2104:10:79","nodeType":"VariableDeclaration","scope":20667,"src":"2096:18:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20613,"name":"uint256","nodeType":"ElementaryTypeName","src":"2096:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20617,"initialValue":{"expression":{"id":20615,"name":"vTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20607,"src":"2117:7:79","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":20616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2125:6:79","memberName":"length","nodeType":"MemberAccess","src":"2117:14:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2096:35:79"},{"assignments":[20619],"declarations":[{"constant":false,"id":20619,"mutability":"mutable","name":"numBorrowCaps","nameLocation":"2149:13:79","nodeType":"VariableDeclaration","scope":20667,"src":"2141:21:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20618,"name":"uint256","nodeType":"ElementaryTypeName","src":"2141:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20622,"initialValue":{"expression":{"id":20620,"name":"newCaps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20610,"src":"2165:7:79","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":20621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2173:6:79","memberName":"length","nodeType":"MemberAccess","src":"2165:14:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2141:38:79"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":20630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20624,"name":"numMarkets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20614,"src":"2198:10:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":20625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2212:1:79","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2198:15:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20627,"name":"numMarkets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20614,"src":"2217:10:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":20628,"name":"numBorrowCaps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20619,"src":"2231:13:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2217:27:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2198:46:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c696420696e707574","id":20631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2246:15:79","typeDescriptions":{"typeIdentifier":"t_stringliteral_dbab81719f15ade78f76dcdbf7cff531fc5f9822fe7e8466ffdd2feb23510f3b","typeString":"literal_string \"invalid input\""},"value":"invalid input"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dbab81719f15ade78f76dcdbf7cff531fc5f9822fe7e8466ffdd2feb23510f3b","typeString":"literal_string \"invalid input\""}],"id":20623,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2190:7:79","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2190:72:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20633,"nodeType":"ExpressionStatement","src":"2190:72:79"},{"body":{"id":20665,"nodeType":"Block","src":"2310:137:79","statements":[{"expression":{"arguments":[{"baseExpression":{"id":20644,"name":"vTokenListed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20496,"src":"2332:12:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":20648,"indexExpression":{"baseExpression":{"id":20645,"name":"vTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20607,"src":"2345:7:79","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":20647,"indexExpression":{"id":20646,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20635,"src":"2353:1:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2345:10:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2332:24:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"76546f6b656e206e6f74206c6973746564","id":20649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2358:19:79","typeDescriptions":{"typeIdentifier":"t_stringliteral_5c13dd817de0f8201c35587e146ee1e71ecba9055e5e2b82d1180351af16b685","typeString":"literal_string \"vToken not listed\""},"value":"vToken not listed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5c13dd817de0f8201c35587e146ee1e71ecba9055e5e2b82d1180351af16b685","typeString":"literal_string \"vToken not listed\""}],"id":20643,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2324:7:79","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2324:54:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20651,"nodeType":"ExpressionStatement","src":"2324:54:79"},{"expression":{"id":20663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":20652,"name":"borrowCaps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20486,"src":"2392:10:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":20659,"indexExpression":{"arguments":[{"baseExpression":{"id":20655,"name":"vTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20607,"src":"2411:7:79","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":20657,"indexExpression":{"id":20656,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20635,"src":"2419:1:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2411:10:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":20654,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2403:7:79","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":20653,"name":"address","nodeType":"ElementaryTypeName","src":"2403:7:79","typeDescriptions":{}}},"id":20658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2403:19:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2392:31:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":20660,"name":"newCaps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20610,"src":"2426:7:79","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":20662,"indexExpression":{"id":20661,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20635,"src":"2434:1:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2426:10:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2392:44:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20664,"nodeType":"ExpressionStatement","src":"2392:44:79"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20637,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20635,"src":"2289:1:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":20638,"name":"numMarkets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20614,"src":"2293:10:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2289:14:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20666,"initializationExpression":{"assignments":[20635],"declarations":[{"constant":false,"id":20635,"mutability":"mutable","name":"i","nameLocation":"2286:1:79","nodeType":"VariableDeclaration","scope":20666,"src":"2278:9:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20634,"name":"uint256","nodeType":"ElementaryTypeName","src":"2278:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20636,"nodeType":"VariableDeclarationStatement","src":"2278:9:79"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":20641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2305:3:79","subExpression":{"id":20640,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20635,"src":"2307:1:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20642,"nodeType":"ExpressionStatement","src":"2305:3:79"},"nodeType":"ForStatement","src":"2273:174:79"}]},"documentation":{"id":20604,"nodeType":"StructuredDocumentation","src":"1844:143:79","text":" @notice Set the borrow cap for a vToken\n @param vTokens The vToken addresses\n @param newCaps The new borrow caps"},"functionSelector":"186db48f","id":20668,"implemented":true,"kind":"function","modifiers":[],"name":"setMarketBorrowCaps","nameLocation":"2001:19:79","nodeType":"FunctionDefinition","parameters":{"id":20611,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20607,"mutability":"mutable","name":"vTokens","nameLocation":"2040:7:79","nodeType":"VariableDeclaration","scope":20668,"src":"2021:26:79","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":20605,"name":"address","nodeType":"ElementaryTypeName","src":"2021:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20606,"nodeType":"ArrayTypeName","src":"2021:9:79","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":20610,"mutability":"mutable","name":"newCaps","nameLocation":"2068:7:79","nodeType":"VariableDeclaration","scope":20668,"src":"2049:26:79","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":20608,"name":"uint256","nodeType":"ElementaryTypeName","src":"2049:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20609,"nodeType":"ArrayTypeName","src":"2049:9:79","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"2020:56:79"},"returnParameters":{"id":20612,"nodeType":"ParameterList","parameters":[],"src":"2086:0:79"},"scope":20776,"src":"1992:461:79","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":20713,"nodeType":"Block","src":"2613:217:79","statements":[{"assignments":[20679],"declarations":[{"constant":false,"id":20679,"mutability":"mutable","name":"markets","nameLocation":"2640:7:79","nodeType":"VariableDeclaration","scope":20713,"src":"2623:24:79","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":20677,"name":"address","nodeType":"ElementaryTypeName","src":"2623:7:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20678,"nodeType":"ArrayTypeName","src":"2623:9:79","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":20686,"initialValue":{"arguments":[{"expression":{"id":20683,"name":"allVTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20491,"src":"2664:10:79","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ICorePoolVToken_$20370_$dyn_storage","typeString":"contract ICorePoolVToken[] storage ref"}},"id":20684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2675:6:79","memberName":"length","nodeType":"MemberAccess","src":"2664:17:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20682,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2650:13:79","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":20680,"name":"address","nodeType":"ElementaryTypeName","src":"2654:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20681,"nodeType":"ArrayTypeName","src":"2654:9:79","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":20685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2650:32:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"2623:59:79"},{"body":{"id":20709,"nodeType":"Block","src":"2740:60:79","statements":[{"expression":{"id":20707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":20698,"name":"markets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20679,"src":"2754:7:79","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":20700,"indexExpression":{"id":20699,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20688,"src":"2762:1:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2754:10:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":20703,"name":"allVTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20491,"src":"2775:10:79","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ICorePoolVToken_$20370_$dyn_storage","typeString":"contract ICorePoolVToken[] storage ref"}},"id":20705,"indexExpression":{"id":20704,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20688,"src":"2786:1:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2775:13:79","typeDescriptions":{"typeIdentifier":"t_contract$_ICorePoolVToken_$20370","typeString":"contract ICorePoolVToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ICorePoolVToken_$20370","typeString":"contract ICorePoolVToken"}],"id":20702,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2767:7:79","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":20701,"name":"address","nodeType":"ElementaryTypeName","src":"2767:7:79","typeDescriptions":{}}},"id":20706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2767:22:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2754:35:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20708,"nodeType":"ExpressionStatement","src":"2754:35:79"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20691,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20688,"src":"2712:1:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":20692,"name":"allVTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20491,"src":"2716:10:79","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ICorePoolVToken_$20370_$dyn_storage","typeString":"contract ICorePoolVToken[] storage ref"}},"id":20693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2727:6:79","memberName":"length","nodeType":"MemberAccess","src":"2716:17:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2712:21:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20710,"initializationExpression":{"assignments":[20688],"declarations":[{"constant":false,"id":20688,"mutability":"mutable","name":"i","nameLocation":"2705:1:79","nodeType":"VariableDeclaration","scope":20710,"src":"2697:9:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20687,"name":"uint256","nodeType":"ElementaryTypeName","src":"2697:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20690,"initialValue":{"hexValue":"30","id":20689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2709:1:79","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2697:13:79"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":20696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2735:3:79","subExpression":{"id":20695,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20688,"src":"2735:1:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20697,"nodeType":"ExpressionStatement","src":"2735:3:79"},"nodeType":"ForStatement","src":"2692:108:79"},{"expression":{"id":20711,"name":"markets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20679,"src":"2816:7:79","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":20674,"id":20712,"nodeType":"Return","src":"2809:14:79"}]},"documentation":{"id":20669,"nodeType":"StructuredDocumentation","src":"2459:83:79","text":" @notice Get all vTokens\n @return Array of vToken addresses"},"functionSelector":"b0772d0b","id":20714,"implemented":true,"kind":"function","modifiers":[],"name":"getAllMarkets","nameLocation":"2556:13:79","nodeType":"FunctionDefinition","parameters":{"id":20670,"nodeType":"ParameterList","parameters":[],"src":"2569:2:79"},"returnParameters":{"id":20674,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20673,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20714,"src":"2595:16:79","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":20671,"name":"address","nodeType":"ElementaryTypeName","src":"2595:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20672,"nodeType":"ArrayTypeName","src":"2595:9:79","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2594:18:79"},"scope":20776,"src":"2547:283:79","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":20743,"nodeType":"Block","src":"3296:221:79","statements":[{"expression":{"arguments":[{"baseExpression":{"id":20725,"name":"vTokenListed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20496,"src":"3314:12:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":20727,"indexExpression":{"id":20726,"name":"vToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20717,"src":"3327:6:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3314:20:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"76546f6b656e206e6f74206c6973746564","id":20728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3336:19:79","typeDescriptions":{"typeIdentifier":"t_stringliteral_5c13dd817de0f8201c35587e146ee1e71ecba9055e5e2b82d1180351af16b685","typeString":"literal_string \"vToken not listed\""},"value":"vToken not listed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5c13dd817de0f8201c35587e146ee1e71ecba9055e5e2b82d1180351af16b685","typeString":"literal_string \"vToken not listed\""}],"id":20724,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3306:7:79","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3306:50:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20730,"nodeType":"ExpressionStatement","src":"3306:50:79"},{"expression":{"id":20735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":20731,"name":"_collateralFactorMantissa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20501,"src":"3366:25:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":20733,"indexExpression":{"id":20732,"name":"vToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20717,"src":"3392:6:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3366:33:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":20734,"name":"newCollateralFactorMantissa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20719,"src":"3402:27:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3366:63:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20736,"nodeType":"ExpressionStatement","src":"3366:63:79"},{"expression":{"id":20741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":20737,"name":"_liquidationThresholdMantissa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20506,"src":"3439:29:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":20739,"indexExpression":{"id":20738,"name":"vToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20717,"src":"3469:6:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3439:37:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":20740,"name":"newLiquidationThresholdMantissa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20721,"src":"3479:31:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3439:71:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20742,"nodeType":"ExpressionStatement","src":"3439:71:79"}]},"documentation":{"id":20715,"nodeType":"StructuredDocumentation","src":"2836:293:79","text":" @notice Set the collateral factor and liquidation threshold for a vToken\n @param vToken The vToken address\n @param newCollateralFactorMantissa The new collateral factor mantissa\n @param newLiquidationThresholdMantissa The new liquidation threshold mantissa"},"functionSelector":"5cc4fdeb","id":20744,"implemented":true,"kind":"function","modifiers":[],"name":"setCollateralFactor","nameLocation":"3143:19:79","nodeType":"FunctionDefinition","parameters":{"id":20722,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20717,"mutability":"mutable","name":"vToken","nameLocation":"3180:6:79","nodeType":"VariableDeclaration","scope":20744,"src":"3172:14:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20716,"name":"address","nodeType":"ElementaryTypeName","src":"3172:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20719,"mutability":"mutable","name":"newCollateralFactorMantissa","nameLocation":"3204:27:79","nodeType":"VariableDeclaration","scope":20744,"src":"3196:35:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20718,"name":"uint256","nodeType":"ElementaryTypeName","src":"3196:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20721,"mutability":"mutable","name":"newLiquidationThresholdMantissa","nameLocation":"3249:31:79","nodeType":"VariableDeclaration","scope":20744,"src":"3241:39:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20720,"name":"uint256","nodeType":"ElementaryTypeName","src":"3241:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3162:124:79"},"returnParameters":{"id":20723,"nodeType":"ParameterList","parameters":[],"src":"3296:0:79"},"scope":20776,"src":"3134:383:79","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":20774,"nodeType":"Block","src":"3990:196:79","statements":[{"expression":{"id":20760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20756,"name":"isListed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20750,"src":"4000:8:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":20757,"name":"vTokenListed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20496,"src":"4011:12:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":20759,"indexExpression":{"id":20758,"name":"vToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20747,"src":"4024:6:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4011:20:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4000:31:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20761,"nodeType":"ExpressionStatement","src":"4000:31:79"},{"expression":{"id":20766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20762,"name":"collateralFactorMantissa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20752,"src":"4041:24:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":20763,"name":"_collateralFactorMantissa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20501,"src":"4068:25:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":20765,"indexExpression":{"id":20764,"name":"vToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20747,"src":"4094:6:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4068:33:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4041:60:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20767,"nodeType":"ExpressionStatement","src":"4041:60:79"},{"expression":{"id":20772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20768,"name":"liquidationThresholdMantissa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20754,"src":"4111:28:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":20769,"name":"_liquidationThresholdMantissa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20506,"src":"4142:29:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":20771,"indexExpression":{"id":20770,"name":"vToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20747,"src":"4172:6:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4142:37:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4111:68:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20773,"nodeType":"ExpressionStatement","src":"4111:68:79"}]},"documentation":{"id":20745,"nodeType":"StructuredDocumentation","src":"3523:305:79","text":" @notice Get market information for a vToken\n @param vToken The vToken address\n @return isListed Whether the vToken is listed\n @return collateralFactorMantissa The collateral factor mantissa\n @return liquidationThresholdMantissa The liquidation threshold mantissa"},"functionSelector":"8e8f294b","id":20775,"implemented":true,"kind":"function","modifiers":[],"name":"markets","nameLocation":"3842:7:79","nodeType":"FunctionDefinition","parameters":{"id":20748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20747,"mutability":"mutable","name":"vToken","nameLocation":"3867:6:79","nodeType":"VariableDeclaration","scope":20775,"src":"3859:14:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20746,"name":"address","nodeType":"ElementaryTypeName","src":"3859:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3849:30:79"},"returnParameters":{"id":20755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20750,"mutability":"mutable","name":"isListed","nameLocation":"3908:8:79","nodeType":"VariableDeclaration","scope":20775,"src":"3903:13:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20749,"name":"bool","nodeType":"ElementaryTypeName","src":"3903:4:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20752,"mutability":"mutable","name":"collateralFactorMantissa","nameLocation":"3926:24:79","nodeType":"VariableDeclaration","scope":20775,"src":"3918:32:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20751,"name":"uint256","nodeType":"ElementaryTypeName","src":"3918:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20754,"mutability":"mutable","name":"liquidationThresholdMantissa","nameLocation":"3960:28:79","nodeType":"VariableDeclaration","scope":20775,"src":"3952:36:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20753,"name":"uint256","nodeType":"ElementaryTypeName","src":"3952:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3902:87:79"},"scope":20776,"src":"3833:353:79","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":20777,"src":"136:4052:79","usedErrors":[],"usedEvents":[]}],"src":"41:4148:79"},"id":79},"contracts/test/MockCoreComptroller.sol":{"ast":{"absolutePath":"contracts/test/MockCoreComptroller.sol","exportedSymbols":{"ICorePoolVToken":[20370],"MockCoreComptroller":[21172]},"id":21173,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":20778,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:80"},{"absolutePath":"contracts/interfaces/ICorePoolVToken.sol","file":"../interfaces/ICorePoolVToken.sol","id":20780,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21173,"sourceUnit":20371,"src":"66:68:80","symbolAliases":[{"foreign":{"id":20779,"name":"ICorePoolVToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20370,"src":"75:15:80","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"MockCoreComptroller","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":21172,"linearizedBaseContracts":[21172],"name":"MockCoreComptroller","nameLocation":"145:19:80","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":20781,"nodeType":"StructuredDocumentation","src":"171:60:80","text":"@notice Mapping of vToken addresses to their supply caps"},"functionSelector":"02c3bcbb","id":20785,"mutability":"mutable","name":"supplyCaps","nameLocation":"271:10:80","nodeType":"VariableDeclaration","scope":21172,"src":"236:45:80","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":20784,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":20782,"name":"address","nodeType":"ElementaryTypeName","src":"244:7:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"236:27:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":20783,"name":"uint256","nodeType":"ElementaryTypeName","src":"255:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"documentation":{"id":20786,"nodeType":"StructuredDocumentation","src":"288:60:80","text":"@notice Mapping of vToken addresses to their borrow caps"},"functionSelector":"4a584432","id":20790,"mutability":"mutable","name":"borrowCaps","nameLocation":"388:10:80","nodeType":"VariableDeclaration","scope":21172,"src":"353:45:80","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":20789,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":20787,"name":"address","nodeType":"ElementaryTypeName","src":"361:7:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"353:27:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":20788,"name":"uint256","nodeType":"ElementaryTypeName","src":"372:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"documentation":{"id":20791,"nodeType":"StructuredDocumentation","src":"405:95:80","text":"@notice Mapping of vToken addresses to their collateral factors (poolId 0 = regular market)"},"id":20795,"mutability":"mutable","name":"_collateralFactorMantissa","nameLocation":"542:25:80","nodeType":"VariableDeclaration","scope":21172,"src":"505:62:80","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":20794,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":20792,"name":"address","nodeType":"ElementaryTypeName","src":"513:7:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"505:27:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":20793,"name":"uint256","nodeType":"ElementaryTypeName","src":"524:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"constant":false,"documentation":{"id":20796,"nodeType":"StructuredDocumentation","src":"574:99:80","text":"@notice Mapping of vToken addresses to their liquidation thresholds (poolId 0 = regular market)"},"id":20800,"mutability":"mutable","name":"_liquidationThresholdMantissa","nameLocation":"715:29:80","nodeType":"VariableDeclaration","scope":21172,"src":"678:66:80","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":20799,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":20797,"name":"address","nodeType":"ElementaryTypeName","src":"686:7:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"678:27:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":20798,"name":"uint256","nodeType":"ElementaryTypeName","src":"697:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"constant":false,"documentation":{"id":20801,"nodeType":"StructuredDocumentation","src":"751:67:80","text":"@notice Mapping of (poolId, vToken) to eMode collateral factors"},"id":20807,"mutability":"mutable","name":"_eModeCollateralFactorMantissa","nameLocation":"879:30:80","nodeType":"VariableDeclaration","scope":21172,"src":"823:86:80","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint96_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(uint96 => mapping(address => uint256))"},"typeName":{"id":20806,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":20802,"name":"uint96","nodeType":"ElementaryTypeName","src":"831:6:80","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"Mapping","src":"823:46:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint96_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(uint96 => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":20805,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":20803,"name":"address","nodeType":"ElementaryTypeName","src":"849:7:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"841:27:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":20804,"name":"uint256","nodeType":"ElementaryTypeName","src":"860:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"internal"},{"constant":false,"documentation":{"id":20808,"nodeType":"StructuredDocumentation","src":"916:71:80","text":"@notice Mapping of (poolId, vToken) to eMode liquidation thresholds"},"id":20814,"mutability":"mutable","name":"_eModeLiquidationThresholdMantissa","nameLocation":"1048:34:80","nodeType":"VariableDeclaration","scope":21172,"src":"992:90:80","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint96_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(uint96 => mapping(address => uint256))"},"typeName":{"id":20813,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":20809,"name":"uint96","nodeType":"ElementaryTypeName","src":"1000:6:80","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"Mapping","src":"992:46:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint96_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(uint96 => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":20812,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":20810,"name":"address","nodeType":"ElementaryTypeName","src":"1018:7:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1010:27:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":20811,"name":"uint256","nodeType":"ElementaryTypeName","src":"1029:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"internal"},{"constant":false,"documentation":{"id":20815,"nodeType":"StructuredDocumentation","src":"1089:32:80","text":"@notice Array of all vTokens"},"functionSelector":"1f3cefb5","id":20819,"mutability":"mutable","name":"allVTokens","nameLocation":"1151:10:80","nodeType":"VariableDeclaration","scope":21172,"src":"1126:35:80","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ICorePoolVToken_$20370_$dyn_storage","typeString":"contract ICorePoolVToken[]"},"typeName":{"baseType":{"id":20817,"nodeType":"UserDefinedTypeName","pathNode":{"id":20816,"name":"ICorePoolVToken","nameLocations":["1126:15:80"],"nodeType":"IdentifierPath","referencedDeclaration":20370,"src":"1126:15:80"},"referencedDeclaration":20370,"src":"1126:15:80","typeDescriptions":{"typeIdentifier":"t_contract$_ICorePoolVToken_$20370","typeString":"contract ICorePoolVToken"}},"id":20818,"nodeType":"ArrayTypeName","src":"1126:17:80","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ICorePoolVToken_$20370_$dyn_storage_ptr","typeString":"contract ICorePoolVToken[]"}},"visibility":"public"},{"constant":false,"documentation":{"id":20820,"nodeType":"StructuredDocumentation","src":"1168:80:80","text":"@notice Mapping of vToken addresses to boolean indicating if they are listed"},"functionSelector":"d571c311","id":20824,"mutability":"mutable","name":"vTokenListed","nameLocation":"1285:12:80","nodeType":"VariableDeclaration","scope":21172,"src":"1253:44:80","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":20823,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":20821,"name":"address","nodeType":"ElementaryTypeName","src":"1261:7:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1253:24:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":20822,"name":"bool","nodeType":"ElementaryTypeName","src":"1272:4:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"body":{"id":20855,"nodeType":"Block","src":"1453:168:80","statements":[{"expression":{"arguments":[{"id":20834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1471:21:80","subExpression":{"baseExpression":{"id":20831,"name":"vTokenListed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20824,"src":"1472:12:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":20833,"indexExpression":{"id":20832,"name":"vToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20827,"src":"1485:6:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1472:20:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"76546f6b656e20616c7265616479206c6973746564","id":20835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1494:23:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_84ea8cbff7c4e00b3f00b9454b5ce4aa857457c6267822e855dbbcd0fcbc4cee","typeString":"literal_string \"vToken already listed\""},"value":"vToken already listed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_84ea8cbff7c4e00b3f00b9454b5ce4aa857457c6267822e855dbbcd0fcbc4cee","typeString":"literal_string \"vToken already listed\""}],"id":20830,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1463:7:80","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1463:55:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20837,"nodeType":"ExpressionStatement","src":"1463:55:80"},{"expression":{"id":20845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":20838,"name":"vTokenListed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20824,"src":"1528:12:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":20843,"indexExpression":{"arguments":[{"id":20841,"name":"vToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20827,"src":"1549:6:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":20840,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1541:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":20839,"name":"address","nodeType":"ElementaryTypeName","src":"1541:7:80","typeDescriptions":{}}},"id":20842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1541:15:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1528:29:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":20844,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1560:4:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1528:36:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20846,"nodeType":"ExpressionStatement","src":"1528:36:80"},{"expression":{"arguments":[{"arguments":[{"id":20851,"name":"vToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20827,"src":"1606:6:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":20850,"name":"ICorePoolVToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20370,"src":"1590:15:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ICorePoolVToken_$20370_$","typeString":"type(contract ICorePoolVToken)"}},"id":20852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1590:23:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ICorePoolVToken_$20370","typeString":"contract ICorePoolVToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ICorePoolVToken_$20370","typeString":"contract ICorePoolVToken"}],"expression":{"id":20847,"name":"allVTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20819,"src":"1574:10:80","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ICorePoolVToken_$20370_$dyn_storage","typeString":"contract ICorePoolVToken[] storage ref"}},"id":20849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1585:4:80","memberName":"push","nodeType":"MemberAccess","src":"1574:15:80","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_contract$_ICorePoolVToken_$20370_$dyn_storage_ptr_$_t_contract$_ICorePoolVToken_$20370_$returns$__$attached_to$_t_array$_t_contract$_ICorePoolVToken_$20370_$dyn_storage_ptr_$","typeString":"function (contract ICorePoolVToken[] storage pointer,contract ICorePoolVToken)"}},"id":20853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1574:40:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20854,"nodeType":"ExpressionStatement","src":"1574:40:80"}]},"documentation":{"id":20825,"nodeType":"StructuredDocumentation","src":"1304:96:80","text":" @notice Add a new vToken to be tracked\n @param vToken The vToken to add"},"functionSelector":"cab4f84c","id":20856,"implemented":true,"kind":"function","modifiers":[],"name":"supportMarket","nameLocation":"1414:13:80","nodeType":"FunctionDefinition","parameters":{"id":20828,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20827,"mutability":"mutable","name":"vToken","nameLocation":"1436:6:80","nodeType":"VariableDeclaration","scope":20856,"src":"1428:14:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20826,"name":"address","nodeType":"ElementaryTypeName","src":"1428:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1427:16:80"},"returnParameters":{"id":20829,"nodeType":"ParameterList","parameters":[],"src":"1453:0:80"},"scope":21172,"src":"1405:216:80","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":20920,"nodeType":"Block","src":"1869:367:80","statements":[{"assignments":[20867],"declarations":[{"constant":false,"id":20867,"mutability":"mutable","name":"numMarkets","nameLocation":"1887:10:80","nodeType":"VariableDeclaration","scope":20920,"src":"1879:18:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20866,"name":"uint256","nodeType":"ElementaryTypeName","src":"1879:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20870,"initialValue":{"expression":{"id":20868,"name":"vTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20860,"src":"1900:7:80","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":20869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1908:6:80","memberName":"length","nodeType":"MemberAccess","src":"1900:14:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1879:35:80"},{"assignments":[20872],"declarations":[{"constant":false,"id":20872,"mutability":"mutable","name":"numSupplyCaps","nameLocation":"1932:13:80","nodeType":"VariableDeclaration","scope":20920,"src":"1924:21:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20871,"name":"uint256","nodeType":"ElementaryTypeName","src":"1924:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20875,"initialValue":{"expression":{"id":20873,"name":"newCaps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20863,"src":"1948:7:80","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":20874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1956:6:80","memberName":"length","nodeType":"MemberAccess","src":"1948:14:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1924:38:80"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":20883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20877,"name":"numMarkets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20867,"src":"1981:10:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":20878,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1995:1:80","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1981:15:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20880,"name":"numMarkets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20867,"src":"2000:10:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":20881,"name":"numSupplyCaps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20872,"src":"2014:13:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2000:27:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1981:46:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c696420696e707574","id":20884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2029:15:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_dbab81719f15ade78f76dcdbf7cff531fc5f9822fe7e8466ffdd2feb23510f3b","typeString":"literal_string \"invalid input\""},"value":"invalid input"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dbab81719f15ade78f76dcdbf7cff531fc5f9822fe7e8466ffdd2feb23510f3b","typeString":"literal_string \"invalid input\""}],"id":20876,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1973:7:80","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1973:72:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20886,"nodeType":"ExpressionStatement","src":"1973:72:80"},{"body":{"id":20918,"nodeType":"Block","src":"2093:137:80","statements":[{"expression":{"arguments":[{"baseExpression":{"id":20897,"name":"vTokenListed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20824,"src":"2115:12:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":20901,"indexExpression":{"baseExpression":{"id":20898,"name":"vTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20860,"src":"2128:7:80","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":20900,"indexExpression":{"id":20899,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20888,"src":"2136:1:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2128:10:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2115:24:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"76546f6b656e206e6f74206c6973746564","id":20902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2141:19:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_5c13dd817de0f8201c35587e146ee1e71ecba9055e5e2b82d1180351af16b685","typeString":"literal_string \"vToken not listed\""},"value":"vToken not listed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5c13dd817de0f8201c35587e146ee1e71ecba9055e5e2b82d1180351af16b685","typeString":"literal_string \"vToken not listed\""}],"id":20896,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2107:7:80","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2107:54:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20904,"nodeType":"ExpressionStatement","src":"2107:54:80"},{"expression":{"id":20916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":20905,"name":"supplyCaps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20785,"src":"2175:10:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":20912,"indexExpression":{"arguments":[{"baseExpression":{"id":20908,"name":"vTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20860,"src":"2194:7:80","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":20910,"indexExpression":{"id":20909,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20888,"src":"2202:1:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2194:10:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":20907,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2186:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":20906,"name":"address","nodeType":"ElementaryTypeName","src":"2186:7:80","typeDescriptions":{}}},"id":20911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2186:19:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2175:31:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":20913,"name":"newCaps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20863,"src":"2209:7:80","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":20915,"indexExpression":{"id":20914,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20888,"src":"2217:1:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2209:10:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2175:44:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20917,"nodeType":"ExpressionStatement","src":"2175:44:80"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20890,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20888,"src":"2072:1:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":20891,"name":"numMarkets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20867,"src":"2076:10:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2072:14:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20919,"initializationExpression":{"assignments":[20888],"declarations":[{"constant":false,"id":20888,"mutability":"mutable","name":"i","nameLocation":"2069:1:80","nodeType":"VariableDeclaration","scope":20919,"src":"2061:9:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20887,"name":"uint256","nodeType":"ElementaryTypeName","src":"2061:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20889,"nodeType":"VariableDeclarationStatement","src":"2061:9:80"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":20894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2088:3:80","subExpression":{"id":20893,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20888,"src":"2090:1:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20895,"nodeType":"ExpressionStatement","src":"2088:3:80"},"nodeType":"ForStatement","src":"2056:174:80"}]},"documentation":{"id":20857,"nodeType":"StructuredDocumentation","src":"1627:143:80","text":" @notice Set the supply cap for a vToken\n @param vTokens The vToken addresses\n @param newCaps The new supply caps"},"functionSelector":"d136af44","id":20921,"implemented":true,"kind":"function","modifiers":[],"name":"setMarketSupplyCaps","nameLocation":"1784:19:80","nodeType":"FunctionDefinition","parameters":{"id":20864,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20860,"mutability":"mutable","name":"vTokens","nameLocation":"1823:7:80","nodeType":"VariableDeclaration","scope":20921,"src":"1804:26:80","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":20858,"name":"address","nodeType":"ElementaryTypeName","src":"1804:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20859,"nodeType":"ArrayTypeName","src":"1804:9:80","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":20863,"mutability":"mutable","name":"newCaps","nameLocation":"1851:7:80","nodeType":"VariableDeclaration","scope":20921,"src":"1832:26:80","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":20861,"name":"uint256","nodeType":"ElementaryTypeName","src":"1832:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20862,"nodeType":"ArrayTypeName","src":"1832:9:80","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"1803:56:80"},"returnParameters":{"id":20865,"nodeType":"ParameterList","parameters":[],"src":"1869:0:80"},"scope":21172,"src":"1775:461:80","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":20985,"nodeType":"Block","src":"2484:367:80","statements":[{"assignments":[20932],"declarations":[{"constant":false,"id":20932,"mutability":"mutable","name":"numMarkets","nameLocation":"2502:10:80","nodeType":"VariableDeclaration","scope":20985,"src":"2494:18:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20931,"name":"uint256","nodeType":"ElementaryTypeName","src":"2494:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20935,"initialValue":{"expression":{"id":20933,"name":"vTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20925,"src":"2515:7:80","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":20934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2523:6:80","memberName":"length","nodeType":"MemberAccess","src":"2515:14:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2494:35:80"},{"assignments":[20937],"declarations":[{"constant":false,"id":20937,"mutability":"mutable","name":"numBorrowCaps","nameLocation":"2547:13:80","nodeType":"VariableDeclaration","scope":20985,"src":"2539:21:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20936,"name":"uint256","nodeType":"ElementaryTypeName","src":"2539:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20940,"initialValue":{"expression":{"id":20938,"name":"newCaps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20928,"src":"2563:7:80","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":20939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2571:6:80","memberName":"length","nodeType":"MemberAccess","src":"2563:14:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2539:38:80"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":20948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20942,"name":"numMarkets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20932,"src":"2596:10:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":20943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2610:1:80","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2596:15:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20945,"name":"numMarkets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20932,"src":"2615:10:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":20946,"name":"numBorrowCaps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20937,"src":"2629:13:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2615:27:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2596:46:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c696420696e707574","id":20949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2644:15:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_dbab81719f15ade78f76dcdbf7cff531fc5f9822fe7e8466ffdd2feb23510f3b","typeString":"literal_string \"invalid input\""},"value":"invalid input"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dbab81719f15ade78f76dcdbf7cff531fc5f9822fe7e8466ffdd2feb23510f3b","typeString":"literal_string \"invalid input\""}],"id":20941,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2588:7:80","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2588:72:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20951,"nodeType":"ExpressionStatement","src":"2588:72:80"},{"body":{"id":20983,"nodeType":"Block","src":"2708:137:80","statements":[{"expression":{"arguments":[{"baseExpression":{"id":20962,"name":"vTokenListed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20824,"src":"2730:12:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":20966,"indexExpression":{"baseExpression":{"id":20963,"name":"vTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20925,"src":"2743:7:80","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":20965,"indexExpression":{"id":20964,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20953,"src":"2751:1:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2743:10:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2730:24:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"76546f6b656e206e6f74206c6973746564","id":20967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2756:19:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_5c13dd817de0f8201c35587e146ee1e71ecba9055e5e2b82d1180351af16b685","typeString":"literal_string \"vToken not listed\""},"value":"vToken not listed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5c13dd817de0f8201c35587e146ee1e71ecba9055e5e2b82d1180351af16b685","typeString":"literal_string \"vToken not listed\""}],"id":20961,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2722:7:80","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2722:54:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20969,"nodeType":"ExpressionStatement","src":"2722:54:80"},{"expression":{"id":20981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":20970,"name":"borrowCaps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20790,"src":"2790:10:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":20977,"indexExpression":{"arguments":[{"baseExpression":{"id":20973,"name":"vTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20925,"src":"2809:7:80","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":20975,"indexExpression":{"id":20974,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20953,"src":"2817:1:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2809:10:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":20972,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2801:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":20971,"name":"address","nodeType":"ElementaryTypeName","src":"2801:7:80","typeDescriptions":{}}},"id":20976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2801:19:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2790:31:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":20978,"name":"newCaps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20928,"src":"2824:7:80","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":20980,"indexExpression":{"id":20979,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20953,"src":"2832:1:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2824:10:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2790:44:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20982,"nodeType":"ExpressionStatement","src":"2790:44:80"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20955,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20953,"src":"2687:1:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":20956,"name":"numMarkets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20932,"src":"2691:10:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2687:14:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20984,"initializationExpression":{"assignments":[20953],"declarations":[{"constant":false,"id":20953,"mutability":"mutable","name":"i","nameLocation":"2684:1:80","nodeType":"VariableDeclaration","scope":20984,"src":"2676:9:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20952,"name":"uint256","nodeType":"ElementaryTypeName","src":"2676:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20954,"nodeType":"VariableDeclarationStatement","src":"2676:9:80"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":20959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2703:3:80","subExpression":{"id":20958,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20953,"src":"2705:1:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20960,"nodeType":"ExpressionStatement","src":"2703:3:80"},"nodeType":"ForStatement","src":"2671:174:80"}]},"documentation":{"id":20922,"nodeType":"StructuredDocumentation","src":"2242:143:80","text":" @notice Set the borrow cap for a vToken\n @param vTokens The vToken addresses\n @param newCaps The new borrow caps"},"functionSelector":"186db48f","id":20986,"implemented":true,"kind":"function","modifiers":[],"name":"setMarketBorrowCaps","nameLocation":"2399:19:80","nodeType":"FunctionDefinition","parameters":{"id":20929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20925,"mutability":"mutable","name":"vTokens","nameLocation":"2438:7:80","nodeType":"VariableDeclaration","scope":20986,"src":"2419:26:80","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":20923,"name":"address","nodeType":"ElementaryTypeName","src":"2419:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20924,"nodeType":"ArrayTypeName","src":"2419:9:80","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":20928,"mutability":"mutable","name":"newCaps","nameLocation":"2466:7:80","nodeType":"VariableDeclaration","scope":20986,"src":"2447:26:80","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":20926,"name":"uint256","nodeType":"ElementaryTypeName","src":"2447:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20927,"nodeType":"ArrayTypeName","src":"2447:9:80","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"2418:56:80"},"returnParameters":{"id":20930,"nodeType":"ParameterList","parameters":[],"src":"2484:0:80"},"scope":21172,"src":"2390:461:80","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":21043,"nodeType":"Block","src":"3450:489:80","statements":[{"expression":{"arguments":[{"baseExpression":{"id":21001,"name":"vTokenListed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20824,"src":"3468:12:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":21003,"indexExpression":{"id":21002,"name":"vToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20991,"src":"3481:6:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3468:20:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"76546f6b656e206e6f74206c6973746564","id":21004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3490:19:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_5c13dd817de0f8201c35587e146ee1e71ecba9055e5e2b82d1180351af16b685","typeString":"literal_string \"vToken not listed\""},"value":"vToken not listed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5c13dd817de0f8201c35587e146ee1e71ecba9055e5e2b82d1180351af16b685","typeString":"literal_string \"vToken not listed\""}],"id":21000,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3460:7:80","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3460:50:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21006,"nodeType":"ExpressionStatement","src":"3460:50:80"},{"condition":{"commonType":{"typeIdentifier":"t_uint96","typeString":"uint96"},"id":21009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21007,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20989,"src":"3524:6:80","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":21008,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3534:1:80","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3524:11:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":21039,"nodeType":"Block","src":"3716:199:80","statements":[{"expression":{"id":21029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":21023,"name":"_eModeCollateralFactorMantissa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20807,"src":"3730:30:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint96_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(uint96 => mapping(address => uint256))"}},"id":21026,"indexExpression":{"id":21024,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20989,"src":"3761:6:80","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3730:38:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":21027,"indexExpression":{"id":21025,"name":"vToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20991,"src":"3769:6:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3730:46:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":21028,"name":"newCollateralFactorMantissa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20993,"src":"3779:27:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3730:76:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21030,"nodeType":"ExpressionStatement","src":"3730:76:80"},{"expression":{"id":21037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":21031,"name":"_eModeLiquidationThresholdMantissa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20814,"src":"3820:34:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint96_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(uint96 => mapping(address => uint256))"}},"id":21034,"indexExpression":{"id":21032,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20989,"src":"3855:6:80","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3820:42:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":21035,"indexExpression":{"id":21033,"name":"vToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20991,"src":"3863:6:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3820:50:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":21036,"name":"newLiquidationThresholdMantissa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20995,"src":"3873:31:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3820:84:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21038,"nodeType":"ExpressionStatement","src":"3820:84:80"}]},"id":21040,"nodeType":"IfStatement","src":"3520:395:80","trueBody":{"id":21022,"nodeType":"Block","src":"3537:173:80","statements":[{"expression":{"id":21014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":21010,"name":"_collateralFactorMantissa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20795,"src":"3551:25:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":21012,"indexExpression":{"id":21011,"name":"vToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20991,"src":"3577:6:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3551:33:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":21013,"name":"newCollateralFactorMantissa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20993,"src":"3587:27:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3551:63:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21015,"nodeType":"ExpressionStatement","src":"3551:63:80"},{"expression":{"id":21020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":21016,"name":"_liquidationThresholdMantissa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20800,"src":"3628:29:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":21018,"indexExpression":{"id":21017,"name":"vToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20991,"src":"3658:6:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3628:37:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":21019,"name":"newLiquidationThresholdMantissa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20995,"src":"3668:31:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3628:71:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21021,"nodeType":"ExpressionStatement","src":"3628:71:80"}]}},{"expression":{"hexValue":"30","id":21041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3931:1:80","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":20999,"id":21042,"nodeType":"Return","src":"3924:8:80"}]},"documentation":{"id":20987,"nodeType":"StructuredDocumentation","src":"2857:385:80","text":" @notice Set the collateral factor and liquidation threshold for a vToken\n @param poolId The pool ID (0 for regular markets, >0 for eMode groups)\n @param vToken The vToken address\n @param newCollateralFactorMantissa The new collateral factor\n @param newLiquidationThresholdMantissa The new liquidation threshold\n @return Always returns 0"},"functionSelector":"9159b177","id":21044,"implemented":true,"kind":"function","modifiers":[],"name":"setCollateralFactor","nameLocation":"3256:19:80","nodeType":"FunctionDefinition","parameters":{"id":20996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20989,"mutability":"mutable","name":"poolId","nameLocation":"3292:6:80","nodeType":"VariableDeclaration","scope":21044,"src":"3285:13:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":20988,"name":"uint96","nodeType":"ElementaryTypeName","src":"3285:6:80","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":20991,"mutability":"mutable","name":"vToken","nameLocation":"3316:6:80","nodeType":"VariableDeclaration","scope":21044,"src":"3308:14:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20990,"name":"address","nodeType":"ElementaryTypeName","src":"3308:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20993,"mutability":"mutable","name":"newCollateralFactorMantissa","nameLocation":"3340:27:80","nodeType":"VariableDeclaration","scope":21044,"src":"3332:35:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20992,"name":"uint256","nodeType":"ElementaryTypeName","src":"3332:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20995,"mutability":"mutable","name":"newLiquidationThresholdMantissa","nameLocation":"3385:31:80","nodeType":"VariableDeclaration","scope":21044,"src":"3377:39:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20994,"name":"uint256","nodeType":"ElementaryTypeName","src":"3377:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3275:147:80"},"returnParameters":{"id":20999,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20998,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21044,"src":"3441:7:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20997,"name":"uint256","nodeType":"ElementaryTypeName","src":"3441:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3440:9:80"},"scope":21172,"src":"3247:692:80","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":21098,"nodeType":"Block","src":"4875:321:80","statements":[{"expression":{"id":21068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21064,"name":"isListed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21050,"src":"4885:8:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":21065,"name":"vTokenListed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20824,"src":"4896:12:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":21067,"indexExpression":{"id":21066,"name":"vToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21047,"src":"4909:6:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4896:20:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4885:31:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21069,"nodeType":"ExpressionStatement","src":"4885:31:80"},{"expression":{"id":21074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21070,"name":"collateralFactorMantissa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21052,"src":"4926:24:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":21071,"name":"_collateralFactorMantissa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20795,"src":"4953:25:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":21073,"indexExpression":{"id":21072,"name":"vToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21047,"src":"4979:6:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4953:33:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4926:60:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21075,"nodeType":"ExpressionStatement","src":"4926:60:80"},{"expression":{"id":21078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21076,"name":"isVenus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21054,"src":"4996:7:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":21077,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5006:5:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"4996:15:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21079,"nodeType":"ExpressionStatement","src":"4996:15:80"},{"expression":{"id":21084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21080,"name":"liquidationThresholdMantissa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21056,"src":"5021:28:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":21081,"name":"_liquidationThresholdMantissa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20800,"src":"5052:29:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":21083,"indexExpression":{"id":21082,"name":"vToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21047,"src":"5082:6:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5052:37:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5021:68:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21085,"nodeType":"ExpressionStatement","src":"5021:68:80"},{"expression":{"id":21088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21086,"name":"liquidationIncentiveMantissa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21058,"src":"5099:28:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":21087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5130:1:80","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5099:32:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21089,"nodeType":"ExpressionStatement","src":"5099:32:80"},{"expression":{"id":21092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21090,"name":"marketPoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21060,"src":"5141:12:80","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":21091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5156:1:80","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5141:16:80","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"id":21093,"nodeType":"ExpressionStatement","src":"5141:16:80"},{"expression":{"id":21096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21094,"name":"isBorrowAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21062,"src":"5167:15:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":21095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5185:4:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"5167:22:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21097,"nodeType":"ExpressionStatement","src":"5167:22:80"}]},"documentation":{"id":21045,"nodeType":"StructuredDocumentation","src":"3945:551:80","text":" @notice Get market information (for compatibility with ICorePoolComptroller interface)\n @param vToken The vToken address\n @return isListed Whether the market is listed\n @return collateralFactorMantissa The collateral factor\n @return isVenus Whether it's a Venus market\n @return liquidationThresholdMantissa The liquidation threshold\n @return liquidationIncentiveMantissa The liquidation incentive\n @return marketPoolId The pool ID\n @return isBorrowAllowed Whether borrowing is allowed"},"functionSelector":"8e8f294b","id":21099,"implemented":true,"kind":"function","modifiers":[],"name":"markets","nameLocation":"4510:7:80","nodeType":"FunctionDefinition","parameters":{"id":21048,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21047,"mutability":"mutable","name":"vToken","nameLocation":"4535:6:80","nodeType":"VariableDeclaration","scope":21099,"src":"4527:14:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21046,"name":"address","nodeType":"ElementaryTypeName","src":"4527:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4517:30:80"},"returnParameters":{"id":21063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21050,"mutability":"mutable","name":"isListed","nameLocation":"4613:8:80","nodeType":"VariableDeclaration","scope":21099,"src":"4608:13:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21049,"name":"bool","nodeType":"ElementaryTypeName","src":"4608:4:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21052,"mutability":"mutable","name":"collateralFactorMantissa","nameLocation":"4643:24:80","nodeType":"VariableDeclaration","scope":21099,"src":"4635:32:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21051,"name":"uint256","nodeType":"ElementaryTypeName","src":"4635:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21054,"mutability":"mutable","name":"isVenus","nameLocation":"4686:7:80","nodeType":"VariableDeclaration","scope":21099,"src":"4681:12:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21053,"name":"bool","nodeType":"ElementaryTypeName","src":"4681:4:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21056,"mutability":"mutable","name":"liquidationThresholdMantissa","nameLocation":"4715:28:80","nodeType":"VariableDeclaration","scope":21099,"src":"4707:36:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21055,"name":"uint256","nodeType":"ElementaryTypeName","src":"4707:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21058,"mutability":"mutable","name":"liquidationIncentiveMantissa","nameLocation":"4765:28:80","nodeType":"VariableDeclaration","scope":21099,"src":"4757:36:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21057,"name":"uint256","nodeType":"ElementaryTypeName","src":"4757:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21060,"mutability":"mutable","name":"marketPoolId","nameLocation":"4814:12:80","nodeType":"VariableDeclaration","scope":21099,"src":"4807:19:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":21059,"name":"uint96","nodeType":"ElementaryTypeName","src":"4807:6:80","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":21062,"mutability":"mutable","name":"isBorrowAllowed","nameLocation":"4845:15:80","nodeType":"VariableDeclaration","scope":21099,"src":"4840:20:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21061,"name":"bool","nodeType":"ElementaryTypeName","src":"4840:4:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4594:276:80"},"scope":21172,"src":"4501:695:80","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":21159,"nodeType":"Block","src":"6209:352:80","statements":[{"expression":{"id":21125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21121,"name":"isListed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"6219:8:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":21122,"name":"vTokenListed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20824,"src":"6230:12:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":21124,"indexExpression":{"id":21123,"name":"vToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21104,"src":"6243:6:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6230:20:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6219:31:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21126,"nodeType":"ExpressionStatement","src":"6219:31:80"},{"expression":{"id":21133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21127,"name":"collateralFactorMantissa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"6260:24:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"baseExpression":{"id":21128,"name":"_eModeCollateralFactorMantissa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20807,"src":"6287:30:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint96_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(uint96 => mapping(address => uint256))"}},"id":21130,"indexExpression":{"id":21129,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21102,"src":"6318:6:80","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6287:38:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":21132,"indexExpression":{"id":21131,"name":"vToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21104,"src":"6326:6:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6287:46:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6260:73:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21134,"nodeType":"ExpressionStatement","src":"6260:73:80"},{"expression":{"id":21137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21135,"name":"isVenus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21111,"src":"6343:7:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":21136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6353:5:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"6343:15:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21138,"nodeType":"ExpressionStatement","src":"6343:15:80"},{"expression":{"id":21145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21139,"name":"liquidationThresholdMantissa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21113,"src":"6368:28:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"baseExpression":{"id":21140,"name":"_eModeLiquidationThresholdMantissa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20814,"src":"6399:34:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint96_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(uint96 => mapping(address => uint256))"}},"id":21142,"indexExpression":{"id":21141,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21102,"src":"6434:6:80","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6399:42:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":21144,"indexExpression":{"id":21143,"name":"vToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21104,"src":"6442:6:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6399:50:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6368:81:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21146,"nodeType":"ExpressionStatement","src":"6368:81:80"},{"expression":{"id":21149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21147,"name":"liquidationIncentiveMantissa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21115,"src":"6459:28:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":21148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6490:1:80","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6459:32:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21150,"nodeType":"ExpressionStatement","src":"6459:32:80"},{"expression":{"id":21153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21151,"name":"marketPoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21117,"src":"6501:12:80","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":21152,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21102,"src":"6516:6:80","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"6501:21:80","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"id":21154,"nodeType":"ExpressionStatement","src":"6501:21:80"},{"expression":{"id":21157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21155,"name":"isBorrowAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21119,"src":"6532:15:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":21156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6550:4:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"6532:22:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21158,"nodeType":"ExpressionStatement","src":"6532:22:80"}]},"documentation":{"id":21100,"nodeType":"StructuredDocumentation","src":"5202:601:80","text":" @notice Get eMode pool market information (for compatibility with ICorePoolComptroller interface)\n @param poolId The eMode pool ID\n @param vToken The vToken address\n @return isListed Whether the market is listed\n @return collateralFactorMantissa The collateral factor\n @return isVenus Whether it's a Venus market\n @return liquidationThresholdMantissa The liquidation threshold\n @return liquidationIncentiveMantissa The liquidation incentive\n @return marketPoolId The pool ID\n @return isBorrowAllowed Whether borrowing is allowed"},"functionSelector":"3093c11e","id":21160,"implemented":true,"kind":"function","modifiers":[],"name":"poolMarkets","nameLocation":"5817:11:80","nodeType":"FunctionDefinition","parameters":{"id":21105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21102,"mutability":"mutable","name":"poolId","nameLocation":"5845:6:80","nodeType":"VariableDeclaration","scope":21160,"src":"5838:13:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":21101,"name":"uint96","nodeType":"ElementaryTypeName","src":"5838:6:80","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":21104,"mutability":"mutable","name":"vToken","nameLocation":"5869:6:80","nodeType":"VariableDeclaration","scope":21160,"src":"5861:14:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21103,"name":"address","nodeType":"ElementaryTypeName","src":"5861:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5828:53:80"},"returnParameters":{"id":21120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21107,"mutability":"mutable","name":"isListed","nameLocation":"5947:8:80","nodeType":"VariableDeclaration","scope":21160,"src":"5942:13:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21106,"name":"bool","nodeType":"ElementaryTypeName","src":"5942:4:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21109,"mutability":"mutable","name":"collateralFactorMantissa","nameLocation":"5977:24:80","nodeType":"VariableDeclaration","scope":21160,"src":"5969:32:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21108,"name":"uint256","nodeType":"ElementaryTypeName","src":"5969:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21111,"mutability":"mutable","name":"isVenus","nameLocation":"6020:7:80","nodeType":"VariableDeclaration","scope":21160,"src":"6015:12:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21110,"name":"bool","nodeType":"ElementaryTypeName","src":"6015:4:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21113,"mutability":"mutable","name":"liquidationThresholdMantissa","nameLocation":"6049:28:80","nodeType":"VariableDeclaration","scope":21160,"src":"6041:36:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21112,"name":"uint256","nodeType":"ElementaryTypeName","src":"6041:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21115,"mutability":"mutable","name":"liquidationIncentiveMantissa","nameLocation":"6099:28:80","nodeType":"VariableDeclaration","scope":21160,"src":"6091:36:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21114,"name":"uint256","nodeType":"ElementaryTypeName","src":"6091:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21117,"mutability":"mutable","name":"marketPoolId","nameLocation":"6148:12:80","nodeType":"VariableDeclaration","scope":21160,"src":"6141:19:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":21116,"name":"uint96","nodeType":"ElementaryTypeName","src":"6141:6:80","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":21119,"mutability":"mutable","name":"isBorrowAllowed","nameLocation":"6179:15:80","nodeType":"VariableDeclaration","scope":21160,"src":"6174:20:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21118,"name":"bool","nodeType":"ElementaryTypeName","src":"6174:4:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5928:276:80"},"scope":21172,"src":"5808:753:80","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":21170,"nodeType":"Block","src":"6729:34:80","statements":[{"expression":{"id":21168,"name":"allVTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20819,"src":"6746:10:80","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ICorePoolVToken_$20370_$dyn_storage","typeString":"contract ICorePoolVToken[] storage ref"}},"functionReturnParameters":21167,"id":21169,"nodeType":"Return","src":"6739:17:80"}]},"documentation":{"id":21161,"nodeType":"StructuredDocumentation","src":"6567:83:80","text":" @notice Get all vTokens\n @return Array of vToken addresses"},"functionSelector":"b0772d0b","id":21171,"implemented":true,"kind":"function","modifiers":[],"name":"getAllMarkets","nameLocation":"6664:13:80","nodeType":"FunctionDefinition","parameters":{"id":21162,"nodeType":"ParameterList","parameters":[],"src":"6677:2:80"},"returnParameters":{"id":21167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21166,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21171,"src":"6703:24:80","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ICorePoolVToken_$20370_$dyn_memory_ptr","typeString":"contract ICorePoolVToken[]"},"typeName":{"baseType":{"id":21164,"nodeType":"UserDefinedTypeName","pathNode":{"id":21163,"name":"ICorePoolVToken","nameLocations":["6703:15:80"],"nodeType":"IdentifierPath","referencedDeclaration":20370,"src":"6703:15:80"},"referencedDeclaration":20370,"src":"6703:15:80","typeDescriptions":{"typeIdentifier":"t_contract$_ICorePoolVToken_$20370","typeString":"contract ICorePoolVToken"}},"id":21165,"nodeType":"ArrayTypeName","src":"6703:17:80","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ICorePoolVToken_$20370_$dyn_storage_ptr","typeString":"contract ICorePoolVToken[]"}},"visibility":"internal"}],"src":"6702:26:80"},"scope":21172,"src":"6655:108:80","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":21173,"src":"136:6629:80","usedErrors":[],"usedEvents":[]}],"src":"41:6725:80"},"id":80},"contracts/test/MockVToken.sol":{"ast":{"absolutePath":"contracts/test/MockVToken.sol","exportedSymbols":{"IVToken":[21184],"InterestRateModel":[10919],"InterestRateModelV8":[10994],"MockVToken":[21234]},"id":21235,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":21174,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:81"},{"absolutePath":"@venusprotocol/isolated-pools/contracts/InterestRateModel.sol","file":"@venusprotocol/isolated-pools/contracts/InterestRateModel.sol","id":21176,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21235,"sourceUnit":10920,"src":"66:98:81","symbolAliases":[{"foreign":{"id":21175,"name":"InterestRateModel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10919,"src":"75:17:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/venus-protocol/contracts/InterestRateModels/InterestRateModelV8.sol","file":"@venusprotocol/venus-protocol/contracts/InterestRateModels/InterestRateModelV8.sol","id":21178,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21235,"sourceUnit":10995,"src":"165:121:81","symbolAliases":[{"foreign":{"id":21177,"name":"InterestRateModelV8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10994,"src":"174:19:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"IVToken","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":21184,"linearizedBaseContracts":[21184],"name":"IVToken","nameLocation":"298:7:81","nodeType":"ContractDefinition","nodes":[{"functionSelector":"5fe3b567","id":21183,"implemented":false,"kind":"function","modifiers":[],"name":"comptroller","nameLocation":"321:11:81","nodeType":"FunctionDefinition","parameters":{"id":21179,"nodeType":"ParameterList","parameters":[],"src":"332:2:81"},"returnParameters":{"id":21182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21181,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21183,"src":"358:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21180,"name":"address","nodeType":"ElementaryTypeName","src":"358:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"357:9:81"},"scope":21184,"src":"312:55:81","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":21235,"src":"288:81:81","usedErrors":[],"usedEvents":[]},{"abstract":false,"baseContracts":[{"baseName":{"id":21185,"name":"IVToken","nameLocations":["394:7:81"],"nodeType":"IdentifierPath","referencedDeclaration":21184,"src":"394:7:81"},"id":21186,"nodeType":"InheritanceSpecifier","src":"394:7:81"}],"canonicalName":"MockVToken","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":21234,"linearizedBaseContracts":[21234,21184],"name":"MockVToken","nameLocation":"380:10:81","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[21183],"constant":false,"functionSelector":"5fe3b567","id":21189,"mutability":"mutable","name":"comptroller","nameLocation":"432:11:81","nodeType":"VariableDeclaration","overrides":{"id":21188,"nodeType":"OverrideSpecifier","overrides":[],"src":"423:8:81"},"scope":21234,"src":"408:35:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21187,"name":"address","nodeType":"ElementaryTypeName","src":"408:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"functionSelector":"f3fdb15a","id":21191,"mutability":"mutable","name":"interestRateModel","nameLocation":"464:17:81","nodeType":"VariableDeclaration","scope":21234,"src":"449:32:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21190,"name":"address","nodeType":"ElementaryTypeName","src":"449:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"body":{"id":21200,"nodeType":"Block","src":"522:43:81","statements":[{"expression":{"id":21198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21196,"name":"comptroller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21189,"src":"532:11:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":21197,"name":"_comptroller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21193,"src":"546:12:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"532:26:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":21199,"nodeType":"ExpressionStatement","src":"532:26:81"}]},"id":21201,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":21194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21193,"mutability":"mutable","name":"_comptroller","nameLocation":"508:12:81","nodeType":"VariableDeclaration","scope":21201,"src":"500:20:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21192,"name":"address","nodeType":"ElementaryTypeName","src":"500:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"499:22:81"},"returnParameters":{"id":21195,"nodeType":"ParameterList","parameters":[],"src":"522:0:81"},"scope":21234,"src":"488:77:81","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":21214,"nodeType":"Block","src":"650:66:81","statements":[{"expression":{"id":21212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21207,"name":"interestRateModel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21191,"src":"660:17:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":21210,"name":"newInterestRateModel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21204,"src":"688:20:81","typeDescriptions":{"typeIdentifier":"t_contract$_InterestRateModel_$10919","typeString":"contract InterestRateModel"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_InterestRateModel_$10919","typeString":"contract InterestRateModel"}],"id":21209,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"680:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":21208,"name":"address","nodeType":"ElementaryTypeName","src":"680:7:81","typeDescriptions":{}}},"id":21211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"680:29:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"660:49:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":21213,"nodeType":"ExpressionStatement","src":"660:49:81"}]},"functionSelector":"8bcd4016","id":21215,"implemented":true,"kind":"function","modifiers":[],"name":"setInterestRateModel","nameLocation":"580:20:81","nodeType":"FunctionDefinition","parameters":{"id":21205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21204,"mutability":"mutable","name":"newInterestRateModel","nameLocation":"619:20:81","nodeType":"VariableDeclaration","scope":21215,"src":"601:38:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_InterestRateModel_$10919","typeString":"contract InterestRateModel"},"typeName":{"id":21203,"nodeType":"UserDefinedTypeName","pathNode":{"id":21202,"name":"InterestRateModel","nameLocations":["601:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":10919,"src":"601:17:81"},"referencedDeclaration":10919,"src":"601:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_InterestRateModel_$10919","typeString":"contract InterestRateModel"}},"visibility":"internal"}],"src":"600:40:81"},"returnParameters":{"id":21206,"nodeType":"ParameterList","parameters":[],"src":"650:0:81"},"scope":21234,"src":"571:145:81","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":21232,"nodeType":"Block","src":"819:84:81","statements":[{"expression":{"id":21228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21223,"name":"interestRateModel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21191,"src":"829:17:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":21226,"name":"newInterestRateModel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21218,"src":"857:20:81","typeDescriptions":{"typeIdentifier":"t_contract$_InterestRateModelV8_$10994","typeString":"contract InterestRateModelV8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_InterestRateModelV8_$10994","typeString":"contract InterestRateModelV8"}],"id":21225,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"849:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":21224,"name":"address","nodeType":"ElementaryTypeName","src":"849:7:81","typeDescriptions":{}}},"id":21227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"849:29:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"829:49:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":21229,"nodeType":"ExpressionStatement","src":"829:49:81"},{"expression":{"hexValue":"30","id":21230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"895:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":21222,"id":21231,"nodeType":"Return","src":"888:8:81"}]},"functionSelector":"f2b3abbd","id":21233,"implemented":true,"kind":"function","modifiers":[],"name":"_setInterestRateModel","nameLocation":"731:21:81","nodeType":"FunctionDefinition","parameters":{"id":21219,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21218,"mutability":"mutable","name":"newInterestRateModel","nameLocation":"773:20:81","nodeType":"VariableDeclaration","scope":21233,"src":"753:40:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_InterestRateModelV8_$10994","typeString":"contract InterestRateModelV8"},"typeName":{"id":21217,"nodeType":"UserDefinedTypeName","pathNode":{"id":21216,"name":"InterestRateModelV8","nameLocations":["753:19:81"],"nodeType":"IdentifierPath","referencedDeclaration":10994,"src":"753:19:81"},"referencedDeclaration":10994,"src":"753:19:81","typeDescriptions":{"typeIdentifier":"t_contract$_InterestRateModelV8_$10994","typeString":"contract InterestRateModelV8"}},"visibility":"internal"}],"src":"752:42:81"},"returnParameters":{"id":21222,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21221,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21233,"src":"813:4:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21220,"name":"uint","nodeType":"ElementaryTypeName","src":"813:4:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"812:6:81"},"scope":21234,"src":"722:181:81","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":21235,"src":"371:534:81","usedErrors":[],"usedEvents":[]}],"src":"41:865:81"},"id":81},"contracts/test/MockXVSVault.sol":{"ast":{"absolutePath":"contracts/test/MockXVSVault.sol","exportedSymbols":{"MockXVSVault":[21249]},"id":21250,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":21236,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:82"},{"abstract":false,"baseContracts":[],"canonicalName":"MockXVSVault","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":21249,"linearizedBaseContracts":[21249],"name":"MockXVSVault","nameLocation":"75:12:82","nodeType":"ContractDefinition","nodes":[{"body":{"id":21247,"nodeType":"Block","src":"227:69:82","statements":[{"expression":{"hexValue":"30","id":21245,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"288:1:82","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":21244,"id":21246,"nodeType":"Return","src":"281:8:82"}]},"functionSelector":"782d6fe1","id":21248,"implemented":true,"kind":"function","modifiers":[],"name":"getPriorVotes","nameLocation":"144:13:82","nodeType":"FunctionDefinition","parameters":{"id":21241,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21238,"mutability":"mutable","name":"account","nameLocation":"166:7:82","nodeType":"VariableDeclaration","scope":21248,"src":"158:15:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21237,"name":"address","nodeType":"ElementaryTypeName","src":"158:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21240,"mutability":"mutable","name":"blockNumber","nameLocation":"183:11:82","nodeType":"VariableDeclaration","scope":21248,"src":"175:19:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21239,"name":"uint256","nodeType":"ElementaryTypeName","src":"175:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"157:38:82"},"returnParameters":{"id":21244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21243,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21248,"src":"219:6:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":21242,"name":"uint96","nodeType":"ElementaryTypeName","src":"219:6:82","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"218:8:82"},"scope":21249,"src":"135:161:82","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":21250,"src":"66:232:82","usedErrors":[],"usedEvents":[]}],"src":"41:258:82"},"id":82},"contracts/test/TestTimelockV8.sol":{"ast":{"absolutePath":"contracts/test/TestTimelockV8.sol","exportedSymbols":{"TestTimelockV8":[21295],"TimelockV8":[14446]},"id":21296,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":21251,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:83"},{"absolutePath":"contracts/Governance/TimelockV8.sol","file":"../Governance/TimelockV8.sol","id":21253,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21296,"sourceUnit":14447,"src":"65:58:83","symbolAliases":[{"foreign":{"id":21252,"name":"TimelockV8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14446,"src":"74:10:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":21254,"name":"TimelockV8","nameLocations":["152:10:83"],"nodeType":"IdentifierPath","referencedDeclaration":14446,"src":"152:10:83"},"id":21255,"nodeType":"InheritanceSpecifier","src":"152:10:83"}],"canonicalName":"TestTimelockV8","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":21295,"linearizedBaseContracts":[21295,14446],"name":"TestTimelockV8","nameLocation":"134:14:83","nodeType":"ContractDefinition","nodes":[{"body":{"id":21266,"nodeType":"Block","src":"247:2:83","statements":[]},"id":21267,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":21262,"name":"admin_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21257,"src":"231:6:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21263,"name":"delay_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21259,"src":"239:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":21264,"kind":"baseConstructorSpecifier","modifierName":{"id":21261,"name":"TimelockV8","nameLocations":["220:10:83"],"nodeType":"IdentifierPath","referencedDeclaration":14446,"src":"220:10:83"},"nodeType":"ModifierInvocation","src":"220:26:83"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":21260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21257,"mutability":"mutable","name":"admin_","nameLocation":"189:6:83","nodeType":"VariableDeclaration","scope":21267,"src":"181:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21256,"name":"address","nodeType":"ElementaryTypeName","src":"181:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21259,"mutability":"mutable","name":"delay_","nameLocation":"205:6:83","nodeType":"VariableDeclaration","scope":21267,"src":"197:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21258,"name":"uint256","nodeType":"ElementaryTypeName","src":"197:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"180:32:83"},"returnParameters":{"id":21265,"nodeType":"ParameterList","parameters":[],"src":"247:0:83"},"scope":21295,"src":"169:80:83","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[14090],"body":{"id":21275,"nodeType":"Block","src":"318:31:83","statements":[{"expression":{"hexValue":"31","id":21273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"335:7:83","subdenomination":"hours","typeDescriptions":{"typeIdentifier":"t_rational_3600_by_1","typeString":"int_const 3600"},"value":"1"},"functionReturnParameters":21272,"id":21274,"nodeType":"Return","src":"328:14:83"}]},"functionSelector":"c1a287e2","id":21276,"implemented":true,"kind":"function","modifiers":[],"name":"GRACE_PERIOD","nameLocation":"264:12:83","nodeType":"FunctionDefinition","overrides":{"id":21269,"nodeType":"OverrideSpecifier","overrides":[],"src":"291:8:83"},"parameters":{"id":21268,"nodeType":"ParameterList","parameters":[],"src":"276:2:83"},"returnParameters":{"id":21272,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21271,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21276,"src":"309:7:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21270,"name":"uint256","nodeType":"ElementaryTypeName","src":"309:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"308:9:83"},"scope":21295,"src":"255:94:83","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[14099],"body":{"id":21284,"nodeType":"Block","src":"419:25:83","statements":[{"expression":{"hexValue":"31","id":21282,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"436:1:83","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"functionReturnParameters":21281,"id":21283,"nodeType":"Return","src":"429:8:83"}]},"functionSelector":"b1b43ae5","id":21285,"implemented":true,"kind":"function","modifiers":[],"name":"MINIMUM_DELAY","nameLocation":"364:13:83","nodeType":"FunctionDefinition","overrides":{"id":21278,"nodeType":"OverrideSpecifier","overrides":[],"src":"392:8:83"},"parameters":{"id":21277,"nodeType":"ParameterList","parameters":[],"src":"377:2:83"},"returnParameters":{"id":21281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21280,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21285,"src":"410:7:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21279,"name":"uint256","nodeType":"ElementaryTypeName","src":"410:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"409:9:83"},"scope":21295,"src":"355:89:83","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[14108],"body":{"id":21293,"nodeType":"Block","src":"514:31:83","statements":[{"expression":{"hexValue":"31","id":21291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"531:7:83","subdenomination":"hours","typeDescriptions":{"typeIdentifier":"t_rational_3600_by_1","typeString":"int_const 3600"},"value":"1"},"functionReturnParameters":21290,"id":21292,"nodeType":"Return","src":"524:14:83"}]},"functionSelector":"7d645fab","id":21294,"implemented":true,"kind":"function","modifiers":[],"name":"MAXIMUM_DELAY","nameLocation":"459:13:83","nodeType":"FunctionDefinition","overrides":{"id":21287,"nodeType":"OverrideSpecifier","overrides":[],"src":"487:8:83"},"parameters":{"id":21286,"nodeType":"ParameterList","parameters":[],"src":"472:2:83"},"returnParameters":{"id":21290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21289,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21294,"src":"505:7:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21288,"name":"uint256","nodeType":"ElementaryTypeName","src":"505:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"504:9:83"},"scope":21295,"src":"450:95:83","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":21296,"src":"125:422:83","usedErrors":[10924],"usedEvents":[13941,13946,13953,13968,13983,13998]}],"src":"41:507:83"},"id":83},"hardhat-deploy/solc_0.8/openzeppelin/access/Ownable.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/access/Ownable.sol","exportedSymbols":{"Context":[22470],"Ownable":[21401]},"id":21402,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":21297,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"87:23:84"},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/utils/Context.sol","file":"../utils/Context.sol","id":21298,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21402,"sourceUnit":22471,"src":"112:30:84","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":21300,"name":"Context","nameLocations":["668:7:84"],"nodeType":"IdentifierPath","referencedDeclaration":22470,"src":"668:7:84"},"id":21301,"nodeType":"InheritanceSpecifier","src":"668:7:84"}],"canonicalName":"Ownable","contractDependencies":[],"contractKind":"contract","documentation":{"id":21299,"nodeType":"StructuredDocumentation","src":"144:494:84","text":" @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner."},"fullyImplemented":true,"id":21401,"linearizedBaseContracts":[21401,22470],"name":"Ownable","nameLocation":"657:7:84","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":21303,"mutability":"mutable","name":"_owner","nameLocation":"698:6:84","nodeType":"VariableDeclaration","scope":21401,"src":"682:22:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21302,"name":"address","nodeType":"ElementaryTypeName","src":"682:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"anonymous":false,"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","id":21309,"name":"OwnershipTransferred","nameLocation":"717:20:84","nodeType":"EventDefinition","parameters":{"id":21308,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21305,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"754:13:84","nodeType":"VariableDeclaration","scope":21309,"src":"738:29:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21304,"name":"address","nodeType":"ElementaryTypeName","src":"738:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21307,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"785:8:84","nodeType":"VariableDeclaration","scope":21309,"src":"769:24:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21306,"name":"address","nodeType":"ElementaryTypeName","src":"769:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"737:57:84"},"src":"711:84:84"},{"body":{"id":21319,"nodeType":"Block","src":"932:49:84","statements":[{"expression":{"arguments":[{"id":21316,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21312,"src":"961:12:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":21315,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21400,"src":"942:18:84","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":21317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"942:32:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21318,"nodeType":"ExpressionStatement","src":"942:32:84"}]},"documentation":{"id":21310,"nodeType":"StructuredDocumentation","src":"801:91:84","text":" @dev Initializes the contract setting the deployer as the initial owner."},"id":21320,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":21313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21312,"mutability":"mutable","name":"initialOwner","nameLocation":"918:12:84","nodeType":"VariableDeclaration","scope":21320,"src":"910:20:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21311,"name":"address","nodeType":"ElementaryTypeName","src":"910:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"909:22:84"},"returnParameters":{"id":21314,"nodeType":"ParameterList","parameters":[],"src":"932:0:84"},"scope":21401,"src":"897:84:84","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":21328,"nodeType":"Block","src":"1112:30:84","statements":[{"expression":{"id":21326,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21303,"src":"1129:6:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":21325,"id":21327,"nodeType":"Return","src":"1122:13:84"}]},"documentation":{"id":21321,"nodeType":"StructuredDocumentation","src":"987:65:84","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","id":21329,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1066:5:84","nodeType":"FunctionDefinition","parameters":{"id":21322,"nodeType":"ParameterList","parameters":[],"src":"1071:2:84"},"returnParameters":{"id":21325,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21324,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21329,"src":"1103:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21323,"name":"address","nodeType":"ElementaryTypeName","src":"1103:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1102:9:84"},"scope":21401,"src":"1057:85:84","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":21342,"nodeType":"Block","src":"1251:96:84","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":21337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":21333,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21329,"src":"1269:5:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":21334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1269:7:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":21335,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22460,"src":"1280:10:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":21336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1280:12:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1269:23:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","id":21338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1294:34:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""},"value":"Ownable: caller is not the owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""}],"id":21332,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1261:7:84","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1261:68:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21340,"nodeType":"ExpressionStatement","src":"1261:68:84"},{"id":21341,"nodeType":"PlaceholderStatement","src":"1339:1:84"}]},"documentation":{"id":21330,"nodeType":"StructuredDocumentation","src":"1148:77:84","text":" @dev Throws if called by any account other than the owner."},"id":21343,"name":"onlyOwner","nameLocation":"1239:9:84","nodeType":"ModifierDefinition","parameters":{"id":21331,"nodeType":"ParameterList","parameters":[],"src":"1248:2:84"},"src":"1230:117:84","virtual":false,"visibility":"internal"},{"body":{"id":21356,"nodeType":"Block","src":"1743:47:84","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":21352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1780:1:84","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":21351,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1772:7:84","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":21350,"name":"address","nodeType":"ElementaryTypeName","src":"1772:7:84","typeDescriptions":{}}},"id":21353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1772:10:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":21349,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21400,"src":"1753:18:84","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":21354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1753:30:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21355,"nodeType":"ExpressionStatement","src":"1753:30:84"}]},"documentation":{"id":21344,"nodeType":"StructuredDocumentation","src":"1353:331:84","text":" @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions anymore. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby removing any functionality that is only available to the owner."},"functionSelector":"715018a6","id":21357,"implemented":true,"kind":"function","modifiers":[{"id":21347,"kind":"modifierInvocation","modifierName":{"id":21346,"name":"onlyOwner","nameLocations":["1733:9:84"],"nodeType":"IdentifierPath","referencedDeclaration":21343,"src":"1733:9:84"},"nodeType":"ModifierInvocation","src":"1733:9:84"}],"name":"renounceOwnership","nameLocation":"1698:17:84","nodeType":"FunctionDefinition","parameters":{"id":21345,"nodeType":"ParameterList","parameters":[],"src":"1715:2:84"},"returnParameters":{"id":21348,"nodeType":"ParameterList","parameters":[],"src":"1743:0:84"},"scope":21401,"src":"1689:101:84","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":21379,"nodeType":"Block","src":"2009:128:84","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":21371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21366,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21360,"src":"2027:8:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":21369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2047:1:84","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":21368,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2039:7:84","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":21367,"name":"address","nodeType":"ElementaryTypeName","src":"2039:7:84","typeDescriptions":{}}},"id":21370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2039:10:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2027:22:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373","id":21372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2051:40:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","typeString":"literal_string \"Ownable: new owner is the zero address\""},"value":"Ownable: new owner is the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","typeString":"literal_string \"Ownable: new owner is the zero address\""}],"id":21365,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2019:7:84","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2019:73:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21374,"nodeType":"ExpressionStatement","src":"2019:73:84"},{"expression":{"arguments":[{"id":21376,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21360,"src":"2121:8:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":21375,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21400,"src":"2102:18:84","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":21377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2102:28:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21378,"nodeType":"ExpressionStatement","src":"2102:28:84"}]},"documentation":{"id":21358,"nodeType":"StructuredDocumentation","src":"1796:138:84","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","id":21380,"implemented":true,"kind":"function","modifiers":[{"id":21363,"kind":"modifierInvocation","modifierName":{"id":21362,"name":"onlyOwner","nameLocations":["1999:9:84"],"nodeType":"IdentifierPath","referencedDeclaration":21343,"src":"1999:9:84"},"nodeType":"ModifierInvocation","src":"1999:9:84"}],"name":"transferOwnership","nameLocation":"1948:17:84","nodeType":"FunctionDefinition","parameters":{"id":21361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21360,"mutability":"mutable","name":"newOwner","nameLocation":"1974:8:84","nodeType":"VariableDeclaration","scope":21380,"src":"1966:16:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21359,"name":"address","nodeType":"ElementaryTypeName","src":"1966:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1965:18:84"},"returnParameters":{"id":21364,"nodeType":"ParameterList","parameters":[],"src":"2009:0:84"},"scope":21401,"src":"1939:198:84","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":21399,"nodeType":"Block","src":"2354:124:84","statements":[{"assignments":[21387],"declarations":[{"constant":false,"id":21387,"mutability":"mutable","name":"oldOwner","nameLocation":"2372:8:84","nodeType":"VariableDeclaration","scope":21399,"src":"2364:16:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21386,"name":"address","nodeType":"ElementaryTypeName","src":"2364:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":21389,"initialValue":{"id":21388,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21303,"src":"2383:6:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2364:25:84"},{"expression":{"id":21392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21390,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21303,"src":"2399:6:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":21391,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21383,"src":"2408:8:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2399:17:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":21393,"nodeType":"ExpressionStatement","src":"2399:17:84"},{"eventCall":{"arguments":[{"id":21395,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21387,"src":"2452:8:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21396,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21383,"src":"2462:8:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":21394,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21309,"src":"2431:20:84","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":21397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2431:40:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21398,"nodeType":"EmitStatement","src":"2426:45:84"}]},"documentation":{"id":21381,"nodeType":"StructuredDocumentation","src":"2143:143:84","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."},"id":21400,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"2300:18:84","nodeType":"FunctionDefinition","parameters":{"id":21384,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21383,"mutability":"mutable","name":"newOwner","nameLocation":"2327:8:84","nodeType":"VariableDeclaration","scope":21400,"src":"2319:16:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21382,"name":"address","nodeType":"ElementaryTypeName","src":"2319:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2318:18:84"},"returnParameters":{"id":21385,"nodeType":"ParameterList","parameters":[],"src":"2354:0:84"},"scope":21401,"src":"2291:187:84","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":21402,"src":"639:1841:84","usedErrors":[],"usedEvents":[21309]}],"src":"87:2394:84"},"id":84},"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol","exportedSymbols":{"IERC1822Proxiable":[21411]},"id":21412,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":21403,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"118:23:85"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC1822Proxiable","contractDependencies":[],"contractKind":"interface","documentation":{"id":21404,"nodeType":"StructuredDocumentation","src":"143:203:85","text":" @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified\n proxy whose upgrades are fully controlled by the current implementation."},"fullyImplemented":false,"id":21411,"linearizedBaseContracts":[21411],"name":"IERC1822Proxiable","nameLocation":"357:17:85","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":21405,"nodeType":"StructuredDocumentation","src":"381:438:85","text":" @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation\n address.\n IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\n bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\n function revert if invoked through a proxy."},"functionSelector":"52d1902d","id":21410,"implemented":false,"kind":"function","modifiers":[],"name":"proxiableUUID","nameLocation":"833:13:85","nodeType":"FunctionDefinition","parameters":{"id":21406,"nodeType":"ParameterList","parameters":[],"src":"846:2:85"},"returnParameters":{"id":21409,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21408,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21410,"src":"872:7:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21407,"name":"bytes32","nodeType":"ElementaryTypeName","src":"872:7:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"871:9:85"},"scope":21411,"src":"824:57:85","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":21412,"src":"347:536:85","usedErrors":[],"usedEvents":[]}],"src":"118:766:85"},"id":85},"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol","exportedSymbols":{"Address":[22448],"ERC1967Proxy":[21464],"ERC1967Upgrade":[21782],"IBeacon":[21844],"IERC1822Proxiable":[21411],"Proxy":[21834],"StorageSlot":[22530]},"id":21465,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":21413,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"99:23:86"},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol","file":"../Proxy.sol","id":21414,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21465,"sourceUnit":21835,"src":"124:22:86","symbolAliases":[],"unitAlias":""},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol","file":"./ERC1967Upgrade.sol","id":21415,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21465,"sourceUnit":21783,"src":"147:30:86","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":21417,"name":"Proxy","nameLocations":["577:5:86"],"nodeType":"IdentifierPath","referencedDeclaration":21834,"src":"577:5:86"},"id":21418,"nodeType":"InheritanceSpecifier","src":"577:5:86"},{"baseName":{"id":21419,"name":"ERC1967Upgrade","nameLocations":["584:14:86"],"nodeType":"IdentifierPath","referencedDeclaration":21782,"src":"584:14:86"},"id":21420,"nodeType":"InheritanceSpecifier","src":"584:14:86"}],"canonicalName":"ERC1967Proxy","contractDependencies":[],"contractKind":"contract","documentation":{"id":21416,"nodeType":"StructuredDocumentation","src":"179:372:86","text":" @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\n implementation address that can be changed. This address is stored in storage in the location specified by\n https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the\n implementation behind the proxy."},"fullyImplemented":true,"id":21464,"linearizedBaseContracts":[21464,21782,21834],"name":"ERC1967Proxy","nameLocation":"561:12:86","nodeType":"ContractDefinition","nodes":[{"body":{"id":21450,"nodeType":"Block","src":"1001:161:86","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":21441,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":21429,"name":"_IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21478,"src":"1018:20:86","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21439,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"hexValue":"656970313936372e70726f78792e696d706c656d656e746174696f6e","id":21435,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1068:30:86","typeDescriptions":{"typeIdentifier":"t_stringliteral_360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd","typeString":"literal_string \"eip1967.proxy.implementation\""},"value":"eip1967.proxy.implementation"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd","typeString":"literal_string \"eip1967.proxy.implementation\""}],"id":21434,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1058:9:86","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":21436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1058:41:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":21433,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1050:7:86","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":21432,"name":"uint256","nodeType":"ElementaryTypeName","src":"1050:7:86","typeDescriptions":{}}},"id":21437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1050:50:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":21438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1103:1:86","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1050:54:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":21431,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1042:7:86","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":21430,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1042:7:86","typeDescriptions":{}}},"id":21440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1042:63:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1018:87:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":21428,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"1011:6:86","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":21442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1011:95:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21443,"nodeType":"ExpressionStatement","src":"1011:95:86"},{"expression":{"arguments":[{"id":21445,"name":"_logic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21423,"src":"1134:6:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21446,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21425,"src":"1142:5:86","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"66616c7365","id":21447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1149:5:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":21444,"name":"_upgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21565,"src":"1116:17:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,bool)"}},"id":21448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1116:39:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21449,"nodeType":"ExpressionStatement","src":"1116:39:86"}]},"documentation":{"id":21421,"nodeType":"StructuredDocumentation","src":"605:335:86","text":" @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`.\n If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded\n function call, and allows initializating the storage of the proxy like a Solidity constructor."},"id":21451,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":21426,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21423,"mutability":"mutable","name":"_logic","nameLocation":"965:6:86","nodeType":"VariableDeclaration","scope":21451,"src":"957:14:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21422,"name":"address","nodeType":"ElementaryTypeName","src":"957:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21425,"mutability":"mutable","name":"_data","nameLocation":"986:5:86","nodeType":"VariableDeclaration","scope":21451,"src":"973:18:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":21424,"name":"bytes","nodeType":"ElementaryTypeName","src":"973:5:86","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"956:36:86"},"returnParameters":{"id":21427,"nodeType":"ParameterList","parameters":[],"src":"1001:0:86"},"scope":21464,"src":"945:217:86","stateMutability":"payable","virtual":false,"visibility":"public"},{"baseFunctions":[21799],"body":{"id":21462,"nodeType":"Block","src":"1321:59:86","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":21458,"name":"ERC1967Upgrade","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21782,"src":"1338:14:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Upgrade_$21782_$","typeString":"type(contract ERC1967Upgrade)"}},"id":21459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1353:18:86","memberName":"_getImplementation","nodeType":"MemberAccess","referencedDeclaration":21496,"src":"1338:33:86","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":21460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1338:35:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":21457,"id":21461,"nodeType":"Return","src":"1331:42:86"}]},"documentation":{"id":21452,"nodeType":"StructuredDocumentation","src":"1168:67:86","text":" @dev Returns the current implementation address."},"id":21463,"implemented":true,"kind":"function","modifiers":[],"name":"_implementation","nameLocation":"1249:15:86","nodeType":"FunctionDefinition","overrides":{"id":21454,"nodeType":"OverrideSpecifier","overrides":[],"src":"1289:8:86"},"parameters":{"id":21453,"nodeType":"ParameterList","parameters":[],"src":"1264:2:86"},"returnParameters":{"id":21457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21456,"mutability":"mutable","name":"impl","nameLocation":"1315:4:86","nodeType":"VariableDeclaration","scope":21463,"src":"1307:12:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21455,"name":"address","nodeType":"ElementaryTypeName","src":"1307:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1306:14:86"},"scope":21464,"src":"1240:140:86","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":21465,"src":"552:830:86","usedErrors":[],"usedEvents":[21483,21629,21694]}],"src":"99:1284:86"},"id":86},"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol","exportedSymbols":{"Address":[22448],"ERC1967Upgrade":[21782],"IBeacon":[21844],"IERC1822Proxiable":[21411],"StorageSlot":[22530]},"id":21783,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":21466,"literals":["solidity","^","0.8",".2"],"nodeType":"PragmaDirective","src":"121:23:87"},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol","file":"../beacon/IBeacon.sol","id":21467,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21783,"sourceUnit":21845,"src":"146:31:87","symbolAliases":[],"unitAlias":""},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol","file":"../../interfaces/draft-IERC1822.sol","id":21468,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21783,"sourceUnit":21412,"src":"178:45:87","symbolAliases":[],"unitAlias":""},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol","file":"../../utils/Address.sol","id":21469,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21783,"sourceUnit":22449,"src":"224:33:87","symbolAliases":[],"unitAlias":""},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol","file":"../../utils/StorageSlot.sol","id":21470,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21783,"sourceUnit":22531,"src":"258:37:87","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[],"canonicalName":"ERC1967Upgrade","contractDependencies":[],"contractKind":"contract","documentation":{"id":21471,"nodeType":"StructuredDocumentation","src":"297:236:87","text":" @dev This abstract contract provides getters and event emitting update functions for\n https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.\n _Available since v4.1._\n @custom:oz-upgrades-unsafe-allow delegatecall"},"fullyImplemented":true,"id":21782,"linearizedBaseContracts":[21782],"name":"ERC1967Upgrade","nameLocation":"552:14:87","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":21474,"mutability":"constant","name":"_ROLLBACK_SLOT","nameLocation":"677:14:87","nodeType":"VariableDeclaration","scope":21782,"src":"652:108:87","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21472,"name":"bytes32","nodeType":"ElementaryTypeName","src":"652:7:87","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307834393130666466613136666564333236306564306537313437663763633664613131613630323038623562393430366431326136333536313466666439313433","id":21473,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"694:66:87","typeDescriptions":{"typeIdentifier":"t_rational_33048860383849004559742813297059419343339852917517107368639918720169455489347_by_1","typeString":"int_const 3304...(69 digits omitted)...9347"},"value":"0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143"},"visibility":"private"},{"constant":true,"documentation":{"id":21475,"nodeType":"StructuredDocumentation","src":"767:214:87","text":" @dev Storage slot with the address of the current implementation.\n This is the keccak-256 hash of \"eip1967.proxy.implementation\" subtracted by 1, and is\n validated in the constructor."},"id":21478,"mutability":"constant","name":"_IMPLEMENTATION_SLOT","nameLocation":"1012:20:87","nodeType":"VariableDeclaration","scope":21782,"src":"986:115:87","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21476,"name":"bytes32","nodeType":"ElementaryTypeName","src":"986:7:87","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307833363038393461313362613161333231303636376338323834393264623938646361336532303736636333373335613932306133636135303564333832626263","id":21477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1035:66:87","typeDescriptions":{"typeIdentifier":"t_rational_24440054405305269366569402256811496959409073762505157381672968839269610695612_by_1","typeString":"int_const 2444...(69 digits omitted)...5612"},"value":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"},"visibility":"internal"},{"anonymous":false,"documentation":{"id":21479,"nodeType":"StructuredDocumentation","src":"1108:68:87","text":" @dev Emitted when the implementation is upgraded."},"eventSelector":"bc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","id":21483,"name":"Upgraded","nameLocation":"1187:8:87","nodeType":"EventDefinition","parameters":{"id":21482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21481,"indexed":true,"mutability":"mutable","name":"implementation","nameLocation":"1212:14:87","nodeType":"VariableDeclaration","scope":21483,"src":"1196:30:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21480,"name":"address","nodeType":"ElementaryTypeName","src":"1196:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1195:32:87"},"src":"1181:47:87"},{"body":{"id":21495,"nodeType":"Block","src":"1368:78:87","statements":[{"expression":{"expression":{"arguments":[{"id":21491,"name":"_IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21478,"src":"1412:20:87","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":21489,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22530,"src":"1385:11:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$22530_$","typeString":"type(library StorageSlot)"}},"id":21490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1397:14:87","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":22496,"src":"1385:26:87","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$22476_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":21492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1385:48:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$22476_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":21493,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1434:5:87","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":22475,"src":"1385:54:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":21488,"id":21494,"nodeType":"Return","src":"1378:61:87"}]},"documentation":{"id":21484,"nodeType":"StructuredDocumentation","src":"1234:67:87","text":" @dev Returns the current implementation address."},"id":21496,"implemented":true,"kind":"function","modifiers":[],"name":"_getImplementation","nameLocation":"1315:18:87","nodeType":"FunctionDefinition","parameters":{"id":21485,"nodeType":"ParameterList","parameters":[],"src":"1333:2:87"},"returnParameters":{"id":21488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21487,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21496,"src":"1359:7:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21486,"name":"address","nodeType":"ElementaryTypeName","src":"1359:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1358:9:87"},"scope":21782,"src":"1306:140:87","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":21519,"nodeType":"Block","src":"1600:196:87","statements":[{"expression":{"arguments":[{"arguments":[{"id":21505,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21499,"src":"1637:17:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":21503,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22448,"src":"1618:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$22448_$","typeString":"type(library Address)"}},"id":21504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1626:10:87","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":22171,"src":"1618:18:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":21506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1618:37:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374","id":21507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1657:47:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","typeString":"literal_string \"ERC1967: new implementation is not a contract\""},"value":"ERC1967: new implementation is not a contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","typeString":"literal_string \"ERC1967: new implementation is not a contract\""}],"id":21502,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1610:7:87","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1610:95:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21509,"nodeType":"ExpressionStatement","src":"1610:95:87"},{"expression":{"id":21517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":21513,"name":"_IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21478,"src":"1742:20:87","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":21510,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22530,"src":"1715:11:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$22530_$","typeString":"type(library StorageSlot)"}},"id":21512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1727:14:87","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":22496,"src":"1715:26:87","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$22476_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":21514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1715:48:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$22476_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":21515,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1764:5:87","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":22475,"src":"1715:54:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":21516,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21499,"src":"1772:17:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1715:74:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":21518,"nodeType":"ExpressionStatement","src":"1715:74:87"}]},"documentation":{"id":21497,"nodeType":"StructuredDocumentation","src":"1452:80:87","text":" @dev Stores a new address in the EIP1967 implementation slot."},"id":21520,"implemented":true,"kind":"function","modifiers":[],"name":"_setImplementation","nameLocation":"1546:18:87","nodeType":"FunctionDefinition","parameters":{"id":21500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21499,"mutability":"mutable","name":"newImplementation","nameLocation":"1573:17:87","nodeType":"VariableDeclaration","scope":21520,"src":"1565:25:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21498,"name":"address","nodeType":"ElementaryTypeName","src":"1565:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1564:27:87"},"returnParameters":{"id":21501,"nodeType":"ParameterList","parameters":[],"src":"1600:0:87"},"scope":21782,"src":"1537:259:87","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":21534,"nodeType":"Block","src":"1958:96:87","statements":[{"expression":{"arguments":[{"id":21527,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21523,"src":"1987:17:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":21526,"name":"_setImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21520,"src":"1968:18:87","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":21528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1968:37:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21529,"nodeType":"ExpressionStatement","src":"1968:37:87"},{"eventCall":{"arguments":[{"id":21531,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21523,"src":"2029:17:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":21530,"name":"Upgraded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21483,"src":"2020:8:87","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":21532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2020:27:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21533,"nodeType":"EmitStatement","src":"2015:32:87"}]},"documentation":{"id":21521,"nodeType":"StructuredDocumentation","src":"1802:95:87","text":" @dev Perform implementation upgrade\n Emits an {Upgraded} event."},"id":21535,"implemented":true,"kind":"function","modifiers":[],"name":"_upgradeTo","nameLocation":"1911:10:87","nodeType":"FunctionDefinition","parameters":{"id":21524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21523,"mutability":"mutable","name":"newImplementation","nameLocation":"1930:17:87","nodeType":"VariableDeclaration","scope":21535,"src":"1922:25:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21522,"name":"address","nodeType":"ElementaryTypeName","src":"1922:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1921:27:87"},"returnParameters":{"id":21525,"nodeType":"ParameterList","parameters":[],"src":"1958:0:87"},"scope":21782,"src":"1902:152:87","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":21564,"nodeType":"Block","src":"2316:167:87","statements":[{"expression":{"arguments":[{"id":21546,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21538,"src":"2337:17:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":21545,"name":"_upgradeTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21535,"src":"2326:10:87","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":21547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2326:29:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21548,"nodeType":"ExpressionStatement","src":"2326:29:87"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":21554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":21549,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21540,"src":"2369:4:87","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":21550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2374:6:87","memberName":"length","nodeType":"MemberAccess","src":"2369:11:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":21551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2383:1:87","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2369:15:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":21553,"name":"forceCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21542,"src":"2388:9:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2369:28:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21563,"nodeType":"IfStatement","src":"2365:112:87","trueBody":{"id":21562,"nodeType":"Block","src":"2399:78:87","statements":[{"expression":{"arguments":[{"id":21558,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21538,"src":"2442:17:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21559,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21540,"src":"2461:4:87","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":21555,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22448,"src":"2413:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$22448_$","typeString":"type(library Address)"}},"id":21557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2421:20:87","memberName":"functionDelegateCall","nodeType":"MemberAccess","referencedDeclaration":22381,"src":"2413:28:87","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory) returns (bytes memory)"}},"id":21560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2413:53:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":21561,"nodeType":"ExpressionStatement","src":"2413:53:87"}]}}]},"documentation":{"id":21536,"nodeType":"StructuredDocumentation","src":"2060:123:87","text":" @dev Perform implementation upgrade with additional setup call.\n Emits an {Upgraded} event."},"id":21565,"implemented":true,"kind":"function","modifiers":[],"name":"_upgradeToAndCall","nameLocation":"2197:17:87","nodeType":"FunctionDefinition","parameters":{"id":21543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21538,"mutability":"mutable","name":"newImplementation","nameLocation":"2232:17:87","nodeType":"VariableDeclaration","scope":21565,"src":"2224:25:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21537,"name":"address","nodeType":"ElementaryTypeName","src":"2224:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21540,"mutability":"mutable","name":"data","nameLocation":"2272:4:87","nodeType":"VariableDeclaration","scope":21565,"src":"2259:17:87","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":21539,"name":"bytes","nodeType":"ElementaryTypeName","src":"2259:5:87","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":21542,"mutability":"mutable","name":"forceCall","nameLocation":"2291:9:87","nodeType":"VariableDeclaration","scope":21565,"src":"2286:14:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21541,"name":"bool","nodeType":"ElementaryTypeName","src":"2286:4:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2214:92:87"},"returnParameters":{"id":21544,"nodeType":"ParameterList","parameters":[],"src":"2316:0:87"},"scope":21782,"src":"2188:295:87","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":21617,"nodeType":"Block","src":"2787:820:87","statements":[{"condition":{"expression":{"arguments":[{"id":21577,"name":"_ROLLBACK_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21474,"src":"3128:14:87","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":21575,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22530,"src":"3101:11:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$22530_$","typeString":"type(library StorageSlot)"}},"id":21576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3113:14:87","memberName":"getBooleanSlot","nodeType":"MemberAccess","referencedDeclaration":22507,"src":"3101:26:87","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_BooleanSlot_$22479_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.BooleanSlot storage pointer)"}},"id":21578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3101:42:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$22479_storage_ptr","typeString":"struct StorageSlot.BooleanSlot storage pointer"}},"id":21579,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3144:5:87","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":22478,"src":"3101:48:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":21615,"nodeType":"Block","src":"3219:382:87","statements":[{"clauses":[{"block":{"id":21600,"nodeType":"Block","src":"3313:115:87","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":21596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21594,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21591,"src":"3339:4:87","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":21595,"name":"_IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21478,"src":"3347:20:87","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3339:28:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524331393637557067726164653a20756e737570706f727465642070726f786961626c6555554944","id":21597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3369:43:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c","typeString":"literal_string \"ERC1967Upgrade: unsupported proxiableUUID\""},"value":"ERC1967Upgrade: unsupported proxiableUUID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c","typeString":"literal_string \"ERC1967Upgrade: unsupported proxiableUUID\""}],"id":21593,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3331:7:87","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3331:82:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21599,"nodeType":"ExpressionStatement","src":"3331:82:87"}]},"errorName":"","id":21601,"nodeType":"TryCatchClause","parameters":{"id":21592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21591,"mutability":"mutable","name":"slot","nameLocation":"3307:4:87","nodeType":"VariableDeclaration","scope":21601,"src":"3299:12:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21590,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3299:7:87","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3298:14:87"},"src":"3290:138:87"},{"block":{"id":21606,"nodeType":"Block","src":"3435:89:87","statements":[{"expression":{"arguments":[{"hexValue":"45524331393637557067726164653a206e657720696d706c656d656e746174696f6e206973206e6f742055555053","id":21603,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3460:48:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24","typeString":"literal_string \"ERC1967Upgrade: new implementation is not UUPS\""},"value":"ERC1967Upgrade: new implementation is not UUPS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24","typeString":"literal_string \"ERC1967Upgrade: new implementation is not UUPS\""}],"id":21602,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3453:6:87","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":21604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3453:56:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21605,"nodeType":"ExpressionStatement","src":"3453:56:87"}]},"errorName":"","id":21607,"nodeType":"TryCatchClause","src":"3429:95:87"}],"externalCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":21586,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21568,"src":"3255:17:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":21585,"name":"IERC1822Proxiable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21411,"src":"3237:17:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1822Proxiable_$21411_$","typeString":"type(contract IERC1822Proxiable)"}},"id":21587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3237:36:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC1822Proxiable_$21411","typeString":"contract IERC1822Proxiable"}},"id":21588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3274:13:87","memberName":"proxiableUUID","nodeType":"MemberAccess","referencedDeclaration":21410,"src":"3237:50:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bytes32_$","typeString":"function () view external returns (bytes32)"}},"id":21589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3237:52:87","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":21608,"nodeType":"TryStatement","src":"3233:291:87"},{"expression":{"arguments":[{"id":21610,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21568,"src":"3555:17:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21611,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21570,"src":"3574:4:87","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":21612,"name":"forceCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21572,"src":"3580:9:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":21609,"name":"_upgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21565,"src":"3537:17:87","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,bool)"}},"id":21613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3537:53:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21614,"nodeType":"ExpressionStatement","src":"3537:53:87"}]},"id":21616,"nodeType":"IfStatement","src":"3097:504:87","trueBody":{"id":21584,"nodeType":"Block","src":"3151:62:87","statements":[{"expression":{"arguments":[{"id":21581,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21568,"src":"3184:17:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":21580,"name":"_setImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21520,"src":"3165:18:87","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":21582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3165:37:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21583,"nodeType":"ExpressionStatement","src":"3165:37:87"}]}}]},"documentation":{"id":21566,"nodeType":"StructuredDocumentation","src":"2489:161:87","text":" @dev Perform implementation upgrade with security checks for UUPS proxies, and additional setup call.\n Emits an {Upgraded} event."},"id":21618,"implemented":true,"kind":"function","modifiers":[],"name":"_upgradeToAndCallUUPS","nameLocation":"2664:21:87","nodeType":"FunctionDefinition","parameters":{"id":21573,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21568,"mutability":"mutable","name":"newImplementation","nameLocation":"2703:17:87","nodeType":"VariableDeclaration","scope":21618,"src":"2695:25:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21567,"name":"address","nodeType":"ElementaryTypeName","src":"2695:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21570,"mutability":"mutable","name":"data","nameLocation":"2743:4:87","nodeType":"VariableDeclaration","scope":21618,"src":"2730:17:87","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":21569,"name":"bytes","nodeType":"ElementaryTypeName","src":"2730:5:87","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":21572,"mutability":"mutable","name":"forceCall","nameLocation":"2762:9:87","nodeType":"VariableDeclaration","scope":21618,"src":"2757:14:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21571,"name":"bool","nodeType":"ElementaryTypeName","src":"2757:4:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2685:92:87"},"returnParameters":{"id":21574,"nodeType":"ParameterList","parameters":[],"src":"2787:0:87"},"scope":21782,"src":"2655:952:87","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"constant":true,"documentation":{"id":21619,"nodeType":"StructuredDocumentation","src":"3613:189:87","text":" @dev Storage slot with the admin of the contract.\n This is the keccak-256 hash of \"eip1967.proxy.admin\" subtracted by 1, and is\n validated in the constructor."},"id":21622,"mutability":"constant","name":"_ADMIN_SLOT","nameLocation":"3833:11:87","nodeType":"VariableDeclaration","scope":21782,"src":"3807:106:87","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21620,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3807:7:87","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307862353331323736383461353638623331373361653133623966386136303136653234336536336236653865653131373864366137313738353062356436313033","id":21621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3847:66:87","typeDescriptions":{"typeIdentifier":"t_rational_81955473079516046949633743016697847541294818689821282749996681496272635257091_by_1","typeString":"int_const 8195...(69 digits omitted)...7091"},"value":"0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103"},"visibility":"internal"},{"anonymous":false,"documentation":{"id":21623,"nodeType":"StructuredDocumentation","src":"3920:67:87","text":" @dev Emitted when the admin account has changed."},"eventSelector":"7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f","id":21629,"name":"AdminChanged","nameLocation":"3998:12:87","nodeType":"EventDefinition","parameters":{"id":21628,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21625,"indexed":false,"mutability":"mutable","name":"previousAdmin","nameLocation":"4019:13:87","nodeType":"VariableDeclaration","scope":21629,"src":"4011:21:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21624,"name":"address","nodeType":"ElementaryTypeName","src":"4011:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21627,"indexed":false,"mutability":"mutable","name":"newAdmin","nameLocation":"4042:8:87","nodeType":"VariableDeclaration","scope":21629,"src":"4034:16:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21626,"name":"address","nodeType":"ElementaryTypeName","src":"4034:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4010:41:87"},"src":"3992:60:87"},{"body":{"id":21641,"nodeType":"Block","src":"4174:69:87","statements":[{"expression":{"expression":{"arguments":[{"id":21637,"name":"_ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21622,"src":"4218:11:87","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":21635,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22530,"src":"4191:11:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$22530_$","typeString":"type(library StorageSlot)"}},"id":21636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4203:14:87","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":22496,"src":"4191:26:87","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$22476_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":21638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4191:39:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$22476_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":21639,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4231:5:87","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":22475,"src":"4191:45:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":21634,"id":21640,"nodeType":"Return","src":"4184:52:87"}]},"documentation":{"id":21630,"nodeType":"StructuredDocumentation","src":"4058:50:87","text":" @dev Returns the current admin."},"id":21642,"implemented":true,"kind":"function","modifiers":[],"name":"_getAdmin","nameLocation":"4122:9:87","nodeType":"FunctionDefinition","parameters":{"id":21631,"nodeType":"ParameterList","parameters":[],"src":"4131:2:87"},"returnParameters":{"id":21634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21633,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21642,"src":"4165:7:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21632,"name":"address","nodeType":"ElementaryTypeName","src":"4165:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4164:9:87"},"scope":21782,"src":"4113:130:87","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":21667,"nodeType":"Block","src":"4370:156:87","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":21654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21649,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21645,"src":"4388:8:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":21652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4408:1:87","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":21651,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4400:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":21650,"name":"address","nodeType":"ElementaryTypeName","src":"4400:7:87","typeDescriptions":{}}},"id":21653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4400:10:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4388:22:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243313936373a206e65772061646d696e20697320746865207a65726f2061646472657373","id":21655,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4412:40:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5","typeString":"literal_string \"ERC1967: new admin is the zero address\""},"value":"ERC1967: new admin is the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5","typeString":"literal_string \"ERC1967: new admin is the zero address\""}],"id":21648,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4380:7:87","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4380:73:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21657,"nodeType":"ExpressionStatement","src":"4380:73:87"},{"expression":{"id":21665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":21661,"name":"_ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21622,"src":"4490:11:87","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":21658,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22530,"src":"4463:11:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$22530_$","typeString":"type(library StorageSlot)"}},"id":21660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4475:14:87","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":22496,"src":"4463:26:87","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$22476_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":21662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4463:39:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$22476_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":21663,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4503:5:87","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":22475,"src":"4463:45:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":21664,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21645,"src":"4511:8:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4463:56:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":21666,"nodeType":"ExpressionStatement","src":"4463:56:87"}]},"documentation":{"id":21643,"nodeType":"StructuredDocumentation","src":"4249:71:87","text":" @dev Stores a new address in the EIP1967 admin slot."},"id":21668,"implemented":true,"kind":"function","modifiers":[],"name":"_setAdmin","nameLocation":"4334:9:87","nodeType":"FunctionDefinition","parameters":{"id":21646,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21645,"mutability":"mutable","name":"newAdmin","nameLocation":"4352:8:87","nodeType":"VariableDeclaration","scope":21668,"src":"4344:16:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21644,"name":"address","nodeType":"ElementaryTypeName","src":"4344:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4343:18:87"},"returnParameters":{"id":21647,"nodeType":"ParameterList","parameters":[],"src":"4370:0:87"},"scope":21782,"src":"4325:201:87","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":21684,"nodeType":"Block","src":"4686:86:87","statements":[{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":21675,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21642,"src":"4714:9:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":21676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4714:11:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21677,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21671,"src":"4727:8:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":21674,"name":"AdminChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21629,"src":"4701:12:87","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":21678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4701:35:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21679,"nodeType":"EmitStatement","src":"4696:40:87"},{"expression":{"arguments":[{"id":21681,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21671,"src":"4756:8:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":21680,"name":"_setAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21668,"src":"4746:9:87","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":21682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4746:19:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21683,"nodeType":"ExpressionStatement","src":"4746:19:87"}]},"documentation":{"id":21669,"nodeType":"StructuredDocumentation","src":"4532:100:87","text":" @dev Changes the admin of the proxy.\n Emits an {AdminChanged} event."},"id":21685,"implemented":true,"kind":"function","modifiers":[],"name":"_changeAdmin","nameLocation":"4646:12:87","nodeType":"FunctionDefinition","parameters":{"id":21672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21671,"mutability":"mutable","name":"newAdmin","nameLocation":"4667:8:87","nodeType":"VariableDeclaration","scope":21685,"src":"4659:16:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21670,"name":"address","nodeType":"ElementaryTypeName","src":"4659:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4658:18:87"},"returnParameters":{"id":21673,"nodeType":"ParameterList","parameters":[],"src":"4686:0:87"},"scope":21782,"src":"4637:135:87","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"constant":true,"documentation":{"id":21686,"nodeType":"StructuredDocumentation","src":"4778:232:87","text":" @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\n This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor."},"id":21689,"mutability":"constant","name":"_BEACON_SLOT","nameLocation":"5041:12:87","nodeType":"VariableDeclaration","scope":21782,"src":"5015:107:87","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21687,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5015:7:87","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307861336630616437346535343233616562666438306433656634333436353738333335613961373261656165653539666636636233353832623335313333643530","id":21688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5056:66:87","typeDescriptions":{"typeIdentifier":"t_rational_74152234768234802001998023604048924213078445070507226371336425913862612794704_by_1","typeString":"int_const 7415...(69 digits omitted)...4704"},"value":"0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50"},"visibility":"internal"},{"anonymous":false,"documentation":{"id":21690,"nodeType":"StructuredDocumentation","src":"5129:60:87","text":" @dev Emitted when the beacon is upgraded."},"eventSelector":"1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e","id":21694,"name":"BeaconUpgraded","nameLocation":"5200:14:87","nodeType":"EventDefinition","parameters":{"id":21693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21692,"indexed":true,"mutability":"mutable","name":"beacon","nameLocation":"5231:6:87","nodeType":"VariableDeclaration","scope":21694,"src":"5215:22:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21691,"name":"address","nodeType":"ElementaryTypeName","src":"5215:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5214:24:87"},"src":"5194:45:87"},{"body":{"id":21706,"nodeType":"Block","src":"5355:70:87","statements":[{"expression":{"expression":{"arguments":[{"id":21702,"name":"_BEACON_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21689,"src":"5399:12:87","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":21700,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22530,"src":"5372:11:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$22530_$","typeString":"type(library StorageSlot)"}},"id":21701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5384:14:87","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":22496,"src":"5372:26:87","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$22476_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":21703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5372:40:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$22476_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":21704,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5413:5:87","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":22475,"src":"5372:46:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":21699,"id":21705,"nodeType":"Return","src":"5365:53:87"}]},"documentation":{"id":21695,"nodeType":"StructuredDocumentation","src":"5245:51:87","text":" @dev Returns the current beacon."},"id":21707,"implemented":true,"kind":"function","modifiers":[],"name":"_getBeacon","nameLocation":"5310:10:87","nodeType":"FunctionDefinition","parameters":{"id":21696,"nodeType":"ParameterList","parameters":[],"src":"5320:2:87"},"returnParameters":{"id":21699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21698,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21707,"src":"5346:7:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21697,"name":"address","nodeType":"ElementaryTypeName","src":"5346:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5345:9:87"},"scope":21782,"src":"5301:124:87","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":21742,"nodeType":"Block","src":"5554:290:87","statements":[{"expression":{"arguments":[{"arguments":[{"id":21716,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21710,"src":"5591:9:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":21714,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22448,"src":"5572:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$22448_$","typeString":"type(library Address)"}},"id":21715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5580:10:87","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":22171,"src":"5572:18:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":21717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5572:29:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243313936373a206e657720626561636f6e206973206e6f74206120636f6e7472616374","id":21718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5603:39:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_9589b7809634e4928033de18bb696e9af4ef71b703652af5245f2dbebf2f4470","typeString":"literal_string \"ERC1967: new beacon is not a contract\""},"value":"ERC1967: new beacon is not a contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9589b7809634e4928033de18bb696e9af4ef71b703652af5245f2dbebf2f4470","typeString":"literal_string \"ERC1967: new beacon is not a contract\""}],"id":21713,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5564:7:87","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5564:79:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21720,"nodeType":"ExpressionStatement","src":"5564:79:87"},{"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":21725,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21710,"src":"5688:9:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":21724,"name":"IBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21844,"src":"5680:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBeacon_$21844_$","typeString":"type(contract IBeacon)"}},"id":21726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5680:18:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBeacon_$21844","typeString":"contract IBeacon"}},"id":21727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5699:14:87","memberName":"implementation","nodeType":"MemberAccess","referencedDeclaration":21843,"src":"5680:33:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":21728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5680:35:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":21722,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22448,"src":"5661:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$22448_$","typeString":"type(library Address)"}},"id":21723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5669:10:87","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":22171,"src":"5661:18:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":21729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5661:55:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243313936373a20626561636f6e20696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374","id":21730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5718:50:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_f95fd1f5b5578816eb23f6ca0f2439b4b5e4094dc16e99c3b8e91603a83f93c8","typeString":"literal_string \"ERC1967: beacon implementation is not a contract\""},"value":"ERC1967: beacon implementation is not a contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f95fd1f5b5578816eb23f6ca0f2439b4b5e4094dc16e99c3b8e91603a83f93c8","typeString":"literal_string \"ERC1967: beacon implementation is not a contract\""}],"id":21721,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5653:7:87","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5653:116:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21732,"nodeType":"ExpressionStatement","src":"5653:116:87"},{"expression":{"id":21740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":21736,"name":"_BEACON_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21689,"src":"5806:12:87","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":21733,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22530,"src":"5779:11:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$22530_$","typeString":"type(library StorageSlot)"}},"id":21735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5791:14:87","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":22496,"src":"5779:26:87","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$22476_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":21737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5779:40:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$22476_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":21738,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5820:5:87","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":22475,"src":"5779:46:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":21739,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21710,"src":"5828:9:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5779:58:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":21741,"nodeType":"ExpressionStatement","src":"5779:58:87"}]},"documentation":{"id":21708,"nodeType":"StructuredDocumentation","src":"5431:71:87","text":" @dev Stores a new beacon in the EIP1967 beacon slot."},"id":21743,"implemented":true,"kind":"function","modifiers":[],"name":"_setBeacon","nameLocation":"5516:10:87","nodeType":"FunctionDefinition","parameters":{"id":21711,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21710,"mutability":"mutable","name":"newBeacon","nameLocation":"5535:9:87","nodeType":"VariableDeclaration","scope":21743,"src":"5527:17:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21709,"name":"address","nodeType":"ElementaryTypeName","src":"5527:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5526:19:87"},"returnParameters":{"id":21712,"nodeType":"ParameterList","parameters":[],"src":"5554:0:87"},"scope":21782,"src":"5507:337:87","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":21780,"nodeType":"Block","src":"6273:217:87","statements":[{"expression":{"arguments":[{"id":21754,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21746,"src":"6294:9:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":21753,"name":"_setBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21743,"src":"6283:10:87","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":21755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6283:21:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21756,"nodeType":"ExpressionStatement","src":"6283:21:87"},{"eventCall":{"arguments":[{"id":21758,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21746,"src":"6334:9:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":21757,"name":"BeaconUpgraded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21694,"src":"6319:14:87","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":21759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6319:25:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21760,"nodeType":"EmitStatement","src":"6314:30:87"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":21766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":21761,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21748,"src":"6358:4:87","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":21762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6363:6:87","memberName":"length","nodeType":"MemberAccess","src":"6358:11:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":21763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6372:1:87","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6358:15:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":21765,"name":"forceCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21750,"src":"6377:9:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6358:28:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21779,"nodeType":"IfStatement","src":"6354:130:87","trueBody":{"id":21778,"nodeType":"Block","src":"6388:96:87","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":21771,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21746,"src":"6439:9:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":21770,"name":"IBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21844,"src":"6431:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBeacon_$21844_$","typeString":"type(contract IBeacon)"}},"id":21772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6431:18:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBeacon_$21844","typeString":"contract IBeacon"}},"id":21773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6450:14:87","memberName":"implementation","nodeType":"MemberAccess","referencedDeclaration":21843,"src":"6431:33:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":21774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6431:35:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21775,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21748,"src":"6468:4:87","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":21767,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22448,"src":"6402:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$22448_$","typeString":"type(library Address)"}},"id":21769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6410:20:87","memberName":"functionDelegateCall","nodeType":"MemberAccess","referencedDeclaration":22381,"src":"6402:28:87","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory) returns (bytes memory)"}},"id":21776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6402:71:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":21777,"nodeType":"ExpressionStatement","src":"6402:71:87"}]}}]},"documentation":{"id":21744,"nodeType":"StructuredDocumentation","src":"5850:292:87","text":" @dev Perform beacon upgrade with additional setup call. Note: This upgrades the address of the beacon, it does\n not upgrade the implementation contained in the beacon (see {UpgradeableBeacon-_setImplementation} for that).\n Emits a {BeaconUpgraded} event."},"id":21781,"implemented":true,"kind":"function","modifiers":[],"name":"_upgradeBeaconToAndCall","nameLocation":"6156:23:87","nodeType":"FunctionDefinition","parameters":{"id":21751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21746,"mutability":"mutable","name":"newBeacon","nameLocation":"6197:9:87","nodeType":"VariableDeclaration","scope":21781,"src":"6189:17:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21745,"name":"address","nodeType":"ElementaryTypeName","src":"6189:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21748,"mutability":"mutable","name":"data","nameLocation":"6229:4:87","nodeType":"VariableDeclaration","scope":21781,"src":"6216:17:87","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":21747,"name":"bytes","nodeType":"ElementaryTypeName","src":"6216:5:87","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":21750,"mutability":"mutable","name":"forceCall","nameLocation":"6248:9:87","nodeType":"VariableDeclaration","scope":21781,"src":"6243:14:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21749,"name":"bool","nodeType":"ElementaryTypeName","src":"6243:4:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6179:84:87"},"returnParameters":{"id":21752,"nodeType":"ParameterList","parameters":[],"src":"6273:0:87"},"scope":21782,"src":"6147:343:87","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":21783,"src":"534:5958:87","usedErrors":[],"usedEvents":[21483,21629,21694]}],"src":"121:6372:87"},"id":87},"hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol","exportedSymbols":{"Proxy":[21834]},"id":21835,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":21784,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"104:23:88"},{"abstract":true,"baseContracts":[],"canonicalName":"Proxy","contractDependencies":[],"contractKind":"contract","documentation":{"id":21785,"nodeType":"StructuredDocumentation","src":"129:598:88","text":" @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM\n instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to\n be specified by overriding the virtual {_implementation} function.\n Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a\n different contract through the {_delegate} function.\n The success and return data of the delegated call will be returned back to the caller of the proxy."},"fullyImplemented":false,"id":21834,"linearizedBaseContracts":[21834],"name":"Proxy","nameLocation":"746:5:88","nodeType":"ContractDefinition","nodes":[{"body":{"id":21792,"nodeType":"Block","src":"1013:835:88","statements":[{"AST":{"nativeSrc":"1032:810:88","nodeType":"YulBlock","src":"1032:810:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1285:1:88","nodeType":"YulLiteral","src":"1285:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1288:1:88","nodeType":"YulLiteral","src":"1288:1:88","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"1291:12:88","nodeType":"YulIdentifier","src":"1291:12:88"},"nativeSrc":"1291:14:88","nodeType":"YulFunctionCall","src":"1291:14:88"}],"functionName":{"name":"calldatacopy","nativeSrc":"1272:12:88","nodeType":"YulIdentifier","src":"1272:12:88"},"nativeSrc":"1272:34:88","nodeType":"YulFunctionCall","src":"1272:34:88"},"nativeSrc":"1272:34:88","nodeType":"YulExpressionStatement","src":"1272:34:88"},{"nativeSrc":"1433:74:88","nodeType":"YulVariableDeclaration","src":"1433:74:88","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"1460:3:88","nodeType":"YulIdentifier","src":"1460:3:88"},"nativeSrc":"1460:5:88","nodeType":"YulFunctionCall","src":"1460:5:88"},{"name":"implementation","nativeSrc":"1467:14:88","nodeType":"YulIdentifier","src":"1467:14:88"},{"kind":"number","nativeSrc":"1483:1:88","nodeType":"YulLiteral","src":"1483:1:88","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"1486:12:88","nodeType":"YulIdentifier","src":"1486:12:88"},"nativeSrc":"1486:14:88","nodeType":"YulFunctionCall","src":"1486:14:88"},{"kind":"number","nativeSrc":"1502:1:88","nodeType":"YulLiteral","src":"1502:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1505:1:88","nodeType":"YulLiteral","src":"1505:1:88","type":"","value":"0"}],"functionName":{"name":"delegatecall","nativeSrc":"1447:12:88","nodeType":"YulIdentifier","src":"1447:12:88"},"nativeSrc":"1447:60:88","nodeType":"YulFunctionCall","src":"1447:60:88"},"variables":[{"name":"result","nativeSrc":"1437:6:88","nodeType":"YulTypedName","src":"1437:6:88","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1575:1:88","nodeType":"YulLiteral","src":"1575:1:88","type":"","value":"0"},{"kind":"number","nativeSrc":"1578:1:88","nodeType":"YulLiteral","src":"1578:1:88","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"1581:14:88","nodeType":"YulIdentifier","src":"1581:14:88"},"nativeSrc":"1581:16:88","nodeType":"YulFunctionCall","src":"1581:16:88"}],"functionName":{"name":"returndatacopy","nativeSrc":"1560:14:88","nodeType":"YulIdentifier","src":"1560:14:88"},"nativeSrc":"1560:38:88","nodeType":"YulFunctionCall","src":"1560:38:88"},"nativeSrc":"1560:38:88","nodeType":"YulExpressionStatement","src":"1560:38:88"},{"cases":[{"body":{"nativeSrc":"1693:59:88","nodeType":"YulBlock","src":"1693:59:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1718:1:88","nodeType":"YulLiteral","src":"1718:1:88","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"1721:14:88","nodeType":"YulIdentifier","src":"1721:14:88"},"nativeSrc":"1721:16:88","nodeType":"YulFunctionCall","src":"1721:16:88"}],"functionName":{"name":"revert","nativeSrc":"1711:6:88","nodeType":"YulIdentifier","src":"1711:6:88"},"nativeSrc":"1711:27:88","nodeType":"YulFunctionCall","src":"1711:27:88"},"nativeSrc":"1711:27:88","nodeType":"YulExpressionStatement","src":"1711:27:88"}]},"nativeSrc":"1686:66:88","nodeType":"YulCase","src":"1686:66:88","value":{"kind":"number","nativeSrc":"1691:1:88","nodeType":"YulLiteral","src":"1691:1:88","type":"","value":"0"}},{"body":{"nativeSrc":"1773:59:88","nodeType":"YulBlock","src":"1773:59:88","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1798:1:88","nodeType":"YulLiteral","src":"1798:1:88","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"1801:14:88","nodeType":"YulIdentifier","src":"1801:14:88"},"nativeSrc":"1801:16:88","nodeType":"YulFunctionCall","src":"1801:16:88"}],"functionName":{"name":"return","nativeSrc":"1791:6:88","nodeType":"YulIdentifier","src":"1791:6:88"},"nativeSrc":"1791:27:88","nodeType":"YulFunctionCall","src":"1791:27:88"},"nativeSrc":"1791:27:88","nodeType":"YulExpressionStatement","src":"1791:27:88"}]},"nativeSrc":"1765:67:88","nodeType":"YulCase","src":"1765:67:88","value":"default"}],"expression":{"name":"result","nativeSrc":"1619:6:88","nodeType":"YulIdentifier","src":"1619:6:88"},"nativeSrc":"1612:220:88","nodeType":"YulSwitch","src":"1612:220:88"}]},"evmVersion":"paris","externalReferences":[{"declaration":21788,"isOffset":false,"isSlot":false,"src":"1467:14:88","valueSize":1}],"id":21791,"nodeType":"InlineAssembly","src":"1023:819:88"}]},"documentation":{"id":21786,"nodeType":"StructuredDocumentation","src":"758:190:88","text":" @dev Delegates the current call to `implementation`.\n This function does not return to its internal call site, it will return directly to the external caller."},"id":21793,"implemented":true,"kind":"function","modifiers":[],"name":"_delegate","nameLocation":"962:9:88","nodeType":"FunctionDefinition","parameters":{"id":21789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21788,"mutability":"mutable","name":"implementation","nameLocation":"980:14:88","nodeType":"VariableDeclaration","scope":21793,"src":"972:22:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21787,"name":"address","nodeType":"ElementaryTypeName","src":"972:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"971:24:88"},"returnParameters":{"id":21790,"nodeType":"ParameterList","parameters":[],"src":"1013:0:88"},"scope":21834,"src":"953:895:88","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"documentation":{"id":21794,"nodeType":"StructuredDocumentation","src":"1854:172:88","text":" @dev This is a virtual function that should be overriden so it returns the address to which the fallback function\n and {_fallback} should delegate."},"id":21799,"implemented":false,"kind":"function","modifiers":[],"name":"_implementation","nameLocation":"2040:15:88","nodeType":"FunctionDefinition","parameters":{"id":21795,"nodeType":"ParameterList","parameters":[],"src":"2055:2:88"},"returnParameters":{"id":21798,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21797,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21799,"src":"2089:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21796,"name":"address","nodeType":"ElementaryTypeName","src":"2089:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2088:9:88"},"scope":21834,"src":"2031:67:88","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":21811,"nodeType":"Block","src":"2365:72:88","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":21803,"name":"_beforeFallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21833,"src":"2375:15:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":21804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2375:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21805,"nodeType":"ExpressionStatement","src":"2375:17:88"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":21807,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21799,"src":"2412:15:88","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":21808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2412:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":21806,"name":"_delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21793,"src":"2402:9:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":21809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2402:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21810,"nodeType":"ExpressionStatement","src":"2402:28:88"}]},"documentation":{"id":21800,"nodeType":"StructuredDocumentation","src":"2104:218:88","text":" @dev Delegates the current call to the address returned by `_implementation()`.\n This function does not return to its internall call site, it will return directly to the external caller."},"id":21812,"implemented":true,"kind":"function","modifiers":[],"name":"_fallback","nameLocation":"2336:9:88","nodeType":"FunctionDefinition","parameters":{"id":21801,"nodeType":"ParameterList","parameters":[],"src":"2345:2:88"},"returnParameters":{"id":21802,"nodeType":"ParameterList","parameters":[],"src":"2365:0:88"},"scope":21834,"src":"2327:110:88","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":21819,"nodeType":"Block","src":"2670:28:88","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":21816,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21812,"src":"2680:9:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":21817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2680:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21818,"nodeType":"ExpressionStatement","src":"2680:11:88"}]},"documentation":{"id":21813,"nodeType":"StructuredDocumentation","src":"2443:186:88","text":" @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other\n function in the contract matches the call data."},"id":21820,"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":21814,"nodeType":"ParameterList","parameters":[],"src":"2642:2:88"},"returnParameters":{"id":21815,"nodeType":"ParameterList","parameters":[],"src":"2670:0:88"},"scope":21834,"src":"2634:64:88","stateMutability":"payable","virtual":true,"visibility":"external"},{"body":{"id":21827,"nodeType":"Block","src":"2893:28:88","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":21824,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21812,"src":"2903:9:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":21825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2903:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21826,"nodeType":"ExpressionStatement","src":"2903:11:88"}]},"documentation":{"id":21821,"nodeType":"StructuredDocumentation","src":"2704:149:88","text":" @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data\n is empty."},"id":21828,"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":21822,"nodeType":"ParameterList","parameters":[],"src":"2865:2:88"},"returnParameters":{"id":21823,"nodeType":"ParameterList","parameters":[],"src":"2893:0:88"},"scope":21834,"src":"2858:63:88","stateMutability":"payable","virtual":true,"visibility":"external"},{"body":{"id":21832,"nodeType":"Block","src":"3246:2:88","statements":[]},"documentation":{"id":21829,"nodeType":"StructuredDocumentation","src":"2927:270:88","text":" @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback`\n call, or as part of the Solidity `fallback` or `receive` functions.\n If overriden should call `super._beforeFallback()`."},"id":21833,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeFallback","nameLocation":"3211:15:88","nodeType":"FunctionDefinition","parameters":{"id":21830,"nodeType":"ParameterList","parameters":[],"src":"3226:2:88"},"returnParameters":{"id":21831,"nodeType":"ParameterList","parameters":[],"src":"3246:0:88"},"scope":21834,"src":"3202:46:88","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":21835,"src":"728:2522:88","usedErrors":[],"usedEvents":[]}],"src":"104:3147:88"},"id":88},"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol","exportedSymbols":{"IBeacon":[21844]},"id":21845,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":21836,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"93:23:89"},{"abstract":false,"baseContracts":[],"canonicalName":"IBeacon","contractDependencies":[],"contractKind":"interface","documentation":{"id":21837,"nodeType":"StructuredDocumentation","src":"118:79:89","text":" @dev This is the interface that {BeaconProxy} expects of its beacon."},"fullyImplemented":false,"id":21844,"linearizedBaseContracts":[21844],"name":"IBeacon","nameLocation":"208:7:89","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":21838,"nodeType":"StructuredDocumentation","src":"222:162:89","text":" @dev Must return an address that can be used as a delegate call target.\n {BeaconProxy} will check that this address is a contract."},"functionSelector":"5c60da1b","id":21843,"implemented":false,"kind":"function","modifiers":[],"name":"implementation","nameLocation":"398:14:89","nodeType":"FunctionDefinition","parameters":{"id":21839,"nodeType":"ParameterList","parameters":[],"src":"412:2:89"},"returnParameters":{"id":21842,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21841,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21843,"src":"438:7:89","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21840,"name":"address","nodeType":"ElementaryTypeName","src":"438:7:89","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"437:9:89"},"scope":21844,"src":"389:58:89","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":21845,"src":"198:251:89","usedErrors":[],"usedEvents":[]}],"src":"93:357:89"},"id":89},"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol","exportedSymbols":{"Address":[22448],"Context":[22470],"ERC1967Proxy":[21464],"ERC1967Upgrade":[21782],"IBeacon":[21844],"IERC1822Proxiable":[21411],"Ownable":[21401],"Proxy":[21834],"ProxyAdmin":[21989],"StorageSlot":[22530],"TransparentUpgradeableProxy":[22153]},"id":21990,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":21846,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"101:23:90"},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/TransparentUpgradeableProxy.sol","file":"./TransparentUpgradeableProxy.sol","id":21847,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21990,"sourceUnit":22154,"src":"126:43:90","symbolAliases":[],"unitAlias":""},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/access/Ownable.sol","file":"../../access/Ownable.sol","id":21848,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21990,"sourceUnit":21402,"src":"170:34:90","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":21850,"name":"Ownable","nameLocations":["458:7:90"],"nodeType":"IdentifierPath","referencedDeclaration":21401,"src":"458:7:90"},"id":21851,"nodeType":"InheritanceSpecifier","src":"458:7:90"}],"canonicalName":"ProxyAdmin","contractDependencies":[],"contractKind":"contract","documentation":{"id":21849,"nodeType":"StructuredDocumentation","src":"206:228:90","text":" @dev This is an auxiliary contract meant to be assigned as the admin of a {TransparentUpgradeableProxy}. For an\n explanation of why you would want to use this see the documentation for {TransparentUpgradeableProxy}."},"fullyImplemented":true,"id":21989,"linearizedBaseContracts":[21989,21401,22470],"name":"ProxyAdmin","nameLocation":"444:10:90","nodeType":"ContractDefinition","nodes":[{"body":{"id":21859,"nodeType":"Block","src":"530:2:90","statements":[]},"id":21860,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":21856,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21853,"src":"516:12:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":21857,"kind":"baseConstructorSpecifier","modifierName":{"id":21855,"name":"Ownable","nameLocations":["508:7:90"],"nodeType":"IdentifierPath","referencedDeclaration":21401,"src":"508:7:90"},"nodeType":"ModifierInvocation","src":"508:21:90"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":21854,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21853,"mutability":"mutable","name":"initialOwner","nameLocation":"494:12:90","nodeType":"VariableDeclaration","scope":21860,"src":"486:20:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21852,"name":"address","nodeType":"ElementaryTypeName","src":"486:7:90","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"485:22:90"},"returnParameters":{"id":21858,"nodeType":"ParameterList","parameters":[],"src":"530:0:90"},"scope":21989,"src":"473:59:90","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":21893,"nodeType":"Block","src":"806:332:90","statements":[{"assignments":[21870,21872],"declarations":[{"constant":false,"id":21870,"mutability":"mutable","name":"success","nameLocation":"979:7:90","nodeType":"VariableDeclaration","scope":21893,"src":"974:12:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21869,"name":"bool","nodeType":"ElementaryTypeName","src":"974:4:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21872,"mutability":"mutable","name":"returndata","nameLocation":"1001:10:90","nodeType":"VariableDeclaration","scope":21893,"src":"988:23:90","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":21871,"name":"bytes","nodeType":"ElementaryTypeName","src":"988:5:90","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":21880,"initialValue":{"arguments":[{"hexValue":"5c60da1b","id":21878,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"1041:13:90","typeDescriptions":{"typeIdentifier":"t_stringliteral_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29","typeString":"literal_string hex\"5c60da1b\""}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29","typeString":"literal_string hex\"5c60da1b\""}],"expression":{"arguments":[{"id":21875,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21864,"src":"1023:5:90","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$22153","typeString":"contract TransparentUpgradeableProxy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$22153","typeString":"contract TransparentUpgradeableProxy"}],"id":21874,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1015:7:90","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":21873,"name":"address","nodeType":"ElementaryTypeName","src":"1015:7:90","typeDescriptions":{}}},"id":21876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1015:14:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":21877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1030:10:90","memberName":"staticcall","nodeType":"MemberAccess","src":"1015:25:90","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":21879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1015:40:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"973:82:90"},{"expression":{"arguments":[{"id":21882,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21870,"src":"1073:7:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":21881,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1065:7:90","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":21883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1065:16:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21884,"nodeType":"ExpressionStatement","src":"1065:16:90"},{"expression":{"arguments":[{"id":21887,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21872,"src":"1109:10:90","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":21889,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1122:7:90","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":21888,"name":"address","nodeType":"ElementaryTypeName","src":"1122:7:90","typeDescriptions":{}}}],"id":21890,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1121:9:90","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}],"expression":{"id":21885,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1098:3:90","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21886,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1102:6:90","memberName":"decode","nodeType":"MemberAccess","src":"1098:10:90","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":21891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1098:33:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"functionReturnParameters":21868,"id":21892,"nodeType":"Return","src":"1091:40:90"}]},"documentation":{"id":21861,"nodeType":"StructuredDocumentation","src":"538:158:90","text":" @dev Returns the current implementation of `proxy`.\n Requirements:\n - This contract must be the admin of `proxy`."},"functionSelector":"204e1c7a","id":21894,"implemented":true,"kind":"function","modifiers":[],"name":"getProxyImplementation","nameLocation":"710:22:90","nodeType":"FunctionDefinition","parameters":{"id":21865,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21864,"mutability":"mutable","name":"proxy","nameLocation":"761:5:90","nodeType":"VariableDeclaration","scope":21894,"src":"733:33:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$22153","typeString":"contract TransparentUpgradeableProxy"},"typeName":{"id":21863,"nodeType":"UserDefinedTypeName","pathNode":{"id":21862,"name":"TransparentUpgradeableProxy","nameLocations":["733:27:90"],"nodeType":"IdentifierPath","referencedDeclaration":22153,"src":"733:27:90"},"referencedDeclaration":22153,"src":"733:27:90","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$22153","typeString":"contract TransparentUpgradeableProxy"}},"visibility":"internal"}],"src":"732:35:90"},"returnParameters":{"id":21868,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21867,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21894,"src":"797:7:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21866,"name":"address","nodeType":"ElementaryTypeName","src":"797:7:90","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"796:9:90"},"scope":21989,"src":"701:437:90","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":21927,"nodeType":"Block","src":"1394:323:90","statements":[{"assignments":[21904,21906],"declarations":[{"constant":false,"id":21904,"mutability":"mutable","name":"success","nameLocation":"1558:7:90","nodeType":"VariableDeclaration","scope":21927,"src":"1553:12:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21903,"name":"bool","nodeType":"ElementaryTypeName","src":"1553:4:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21906,"mutability":"mutable","name":"returndata","nameLocation":"1580:10:90","nodeType":"VariableDeclaration","scope":21927,"src":"1567:23:90","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":21905,"name":"bytes","nodeType":"ElementaryTypeName","src":"1567:5:90","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":21914,"initialValue":{"arguments":[{"hexValue":"f851a440","id":21912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"1620:13:90","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7","typeString":"literal_string hex\"f851a440\""}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7","typeString":"literal_string hex\"f851a440\""}],"expression":{"arguments":[{"id":21909,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21898,"src":"1602:5:90","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$22153","typeString":"contract TransparentUpgradeableProxy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$22153","typeString":"contract TransparentUpgradeableProxy"}],"id":21908,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1594:7:90","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":21907,"name":"address","nodeType":"ElementaryTypeName","src":"1594:7:90","typeDescriptions":{}}},"id":21910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1594:14:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":21911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1609:10:90","memberName":"staticcall","nodeType":"MemberAccess","src":"1594:25:90","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":21913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1594:40:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1552:82:90"},{"expression":{"arguments":[{"id":21916,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21904,"src":"1652:7:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":21915,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1644:7:90","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":21917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1644:16:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21918,"nodeType":"ExpressionStatement","src":"1644:16:90"},{"expression":{"arguments":[{"id":21921,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21906,"src":"1688:10:90","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":21923,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1701:7:90","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":21922,"name":"address","nodeType":"ElementaryTypeName","src":"1701:7:90","typeDescriptions":{}}}],"id":21924,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1700:9:90","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}],"expression":{"id":21919,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1677:3:90","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21920,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1681:6:90","memberName":"decode","nodeType":"MemberAccess","src":"1677:10:90","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":21925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1677:33:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"functionReturnParameters":21902,"id":21926,"nodeType":"Return","src":"1670:40:90"}]},"documentation":{"id":21895,"nodeType":"StructuredDocumentation","src":"1144:149:90","text":" @dev Returns the current admin of `proxy`.\n Requirements:\n - This contract must be the admin of `proxy`."},"functionSelector":"f3b7dead","id":21928,"implemented":true,"kind":"function","modifiers":[],"name":"getProxyAdmin","nameLocation":"1307:13:90","nodeType":"FunctionDefinition","parameters":{"id":21899,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21898,"mutability":"mutable","name":"proxy","nameLocation":"1349:5:90","nodeType":"VariableDeclaration","scope":21928,"src":"1321:33:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$22153","typeString":"contract TransparentUpgradeableProxy"},"typeName":{"id":21897,"nodeType":"UserDefinedTypeName","pathNode":{"id":21896,"name":"TransparentUpgradeableProxy","nameLocations":["1321:27:90"],"nodeType":"IdentifierPath","referencedDeclaration":22153,"src":"1321:27:90"},"referencedDeclaration":22153,"src":"1321:27:90","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$22153","typeString":"contract TransparentUpgradeableProxy"}},"visibility":"internal"}],"src":"1320:35:90"},"returnParameters":{"id":21902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21901,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21928,"src":"1385:7:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21900,"name":"address","nodeType":"ElementaryTypeName","src":"1385:7:90","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1384:9:90"},"scope":21989,"src":"1298:419:90","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":21945,"nodeType":"Block","src":"1995:44:90","statements":[{"expression":{"arguments":[{"id":21942,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21934,"src":"2023:8:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":21939,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21932,"src":"2005:5:90","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$22153","typeString":"contract TransparentUpgradeableProxy"}},"id":21941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2011:11:90","memberName":"changeAdmin","nodeType":"MemberAccess","referencedDeclaration":22087,"src":"2005:17:90","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":21943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2005:27:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21944,"nodeType":"ExpressionStatement","src":"2005:27:90"}]},"documentation":{"id":21929,"nodeType":"StructuredDocumentation","src":"1723:163:90","text":" @dev Changes the admin of `proxy` to `newAdmin`.\n Requirements:\n - This contract must be the current admin of `proxy`."},"functionSelector":"7eff275e","id":21946,"implemented":true,"kind":"function","modifiers":[{"id":21937,"kind":"modifierInvocation","modifierName":{"id":21936,"name":"onlyOwner","nameLocations":["1985:9:90"],"nodeType":"IdentifierPath","referencedDeclaration":21343,"src":"1985:9:90"},"nodeType":"ModifierInvocation","src":"1985:9:90"}],"name":"changeProxyAdmin","nameLocation":"1900:16:90","nodeType":"FunctionDefinition","parameters":{"id":21935,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21932,"mutability":"mutable","name":"proxy","nameLocation":"1945:5:90","nodeType":"VariableDeclaration","scope":21946,"src":"1917:33:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$22153","typeString":"contract TransparentUpgradeableProxy"},"typeName":{"id":21931,"nodeType":"UserDefinedTypeName","pathNode":{"id":21930,"name":"TransparentUpgradeableProxy","nameLocations":["1917:27:90"],"nodeType":"IdentifierPath","referencedDeclaration":22153,"src":"1917:27:90"},"referencedDeclaration":22153,"src":"1917:27:90","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$22153","typeString":"contract TransparentUpgradeableProxy"}},"visibility":"internal"},{"constant":false,"id":21934,"mutability":"mutable","name":"newAdmin","nameLocation":"1960:8:90","nodeType":"VariableDeclaration","scope":21946,"src":"1952:16:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21933,"name":"address","nodeType":"ElementaryTypeName","src":"1952:7:90","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1916:53:90"},"returnParameters":{"id":21938,"nodeType":"ParameterList","parameters":[],"src":"1995:0:90"},"scope":21989,"src":"1891:148:90","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":21963,"nodeType":"Block","src":"2345:48:90","statements":[{"expression":{"arguments":[{"id":21960,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21952,"src":"2371:14:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":21957,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21950,"src":"2355:5:90","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$22153","typeString":"contract TransparentUpgradeableProxy"}},"id":21959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2361:9:90","memberName":"upgradeTo","nodeType":"MemberAccess","referencedDeclaration":22105,"src":"2355:15:90","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":21961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2355:31:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21962,"nodeType":"ExpressionStatement","src":"2355:31:90"}]},"documentation":{"id":21947,"nodeType":"StructuredDocumentation","src":"2045:194:90","text":" @dev Upgrades `proxy` to `implementation`. See {TransparentUpgradeableProxy-upgradeTo}.\n Requirements:\n - This contract must be the admin of `proxy`."},"functionSelector":"99a88ec4","id":21964,"implemented":true,"kind":"function","modifiers":[{"id":21955,"kind":"modifierInvocation","modifierName":{"id":21954,"name":"onlyOwner","nameLocations":["2335:9:90"],"nodeType":"IdentifierPath","referencedDeclaration":21343,"src":"2335:9:90"},"nodeType":"ModifierInvocation","src":"2335:9:90"}],"name":"upgrade","nameLocation":"2253:7:90","nodeType":"FunctionDefinition","parameters":{"id":21953,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21950,"mutability":"mutable","name":"proxy","nameLocation":"2289:5:90","nodeType":"VariableDeclaration","scope":21964,"src":"2261:33:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$22153","typeString":"contract TransparentUpgradeableProxy"},"typeName":{"id":21949,"nodeType":"UserDefinedTypeName","pathNode":{"id":21948,"name":"TransparentUpgradeableProxy","nameLocations":["2261:27:90"],"nodeType":"IdentifierPath","referencedDeclaration":22153,"src":"2261:27:90"},"referencedDeclaration":22153,"src":"2261:27:90","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$22153","typeString":"contract TransparentUpgradeableProxy"}},"visibility":"internal"},{"constant":false,"id":21952,"mutability":"mutable","name":"implementation","nameLocation":"2304:14:90","nodeType":"VariableDeclaration","scope":21964,"src":"2296:22:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21951,"name":"address","nodeType":"ElementaryTypeName","src":"2296:7:90","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2260:59:90"},"returnParameters":{"id":21956,"nodeType":"ParameterList","parameters":[],"src":"2345:0:90"},"scope":21989,"src":"2244:149:90","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":21987,"nodeType":"Block","src":"2824:79:90","statements":[{"expression":{"arguments":[{"id":21983,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21970,"src":"2875:14:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21984,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21972,"src":"2891:4:90","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":21977,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21968,"src":"2834:5:90","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$22153","typeString":"contract TransparentUpgradeableProxy"}},"id":21979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2840:16:90","memberName":"upgradeToAndCall","nodeType":"MemberAccess","referencedDeclaration":22122,"src":"2834:22:90","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory) payable external"}},"id":21982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":21980,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2864:3:90","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":21981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2868:5:90","memberName":"value","nodeType":"MemberAccess","src":"2864:9:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2834:40:90","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (address,bytes memory) payable external"}},"id":21985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2834:62:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21986,"nodeType":"ExpressionStatement","src":"2834:62:90"}]},"documentation":{"id":21965,"nodeType":"StructuredDocumentation","src":"2399:255:90","text":" @dev Upgrades `proxy` to `implementation` and calls a function on the new implementation. See\n {TransparentUpgradeableProxy-upgradeToAndCall}.\n Requirements:\n - This contract must be the admin of `proxy`."},"functionSelector":"9623609d","id":21988,"implemented":true,"kind":"function","modifiers":[{"id":21975,"kind":"modifierInvocation","modifierName":{"id":21974,"name":"onlyOwner","nameLocations":["2814:9:90"],"nodeType":"IdentifierPath","referencedDeclaration":21343,"src":"2814:9:90"},"nodeType":"ModifierInvocation","src":"2814:9:90"}],"name":"upgradeAndCall","nameLocation":"2668:14:90","nodeType":"FunctionDefinition","parameters":{"id":21973,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21968,"mutability":"mutable","name":"proxy","nameLocation":"2720:5:90","nodeType":"VariableDeclaration","scope":21988,"src":"2692:33:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$22153","typeString":"contract TransparentUpgradeableProxy"},"typeName":{"id":21967,"nodeType":"UserDefinedTypeName","pathNode":{"id":21966,"name":"TransparentUpgradeableProxy","nameLocations":["2692:27:90"],"nodeType":"IdentifierPath","referencedDeclaration":22153,"src":"2692:27:90"},"referencedDeclaration":22153,"src":"2692:27:90","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$22153","typeString":"contract TransparentUpgradeableProxy"}},"visibility":"internal"},{"constant":false,"id":21970,"mutability":"mutable","name":"implementation","nameLocation":"2743:14:90","nodeType":"VariableDeclaration","scope":21988,"src":"2735:22:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21969,"name":"address","nodeType":"ElementaryTypeName","src":"2735:7:90","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21972,"mutability":"mutable","name":"data","nameLocation":"2780:4:90","nodeType":"VariableDeclaration","scope":21988,"src":"2767:17:90","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":21971,"name":"bytes","nodeType":"ElementaryTypeName","src":"2767:5:90","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2682:108:90"},"returnParameters":{"id":21976,"nodeType":"ParameterList","parameters":[],"src":"2824:0:90"},"scope":21989,"src":"2659:244:90","stateMutability":"payable","virtual":true,"visibility":"public"}],"scope":21990,"src":"435:2470:90","usedErrors":[],"usedEvents":[21309]}],"src":"101:2805:90"},"id":90},"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/TransparentUpgradeableProxy.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/TransparentUpgradeableProxy.sol","exportedSymbols":{"Address":[22448],"ERC1967Proxy":[21464],"ERC1967Upgrade":[21782],"IBeacon":[21844],"IERC1822Proxiable":[21411],"Proxy":[21834],"StorageSlot":[22530],"TransparentUpgradeableProxy":[22153]},"id":22154,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":21991,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"118:23:91"},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol","file":"../ERC1967/ERC1967Proxy.sol","id":21992,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22154,"sourceUnit":21465,"src":"143:37:91","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":21994,"name":"ERC1967Proxy","nameLocations":["1674:12:91"],"nodeType":"IdentifierPath","referencedDeclaration":21464,"src":"1674:12:91"},"id":21995,"nodeType":"InheritanceSpecifier","src":"1674:12:91"}],"canonicalName":"TransparentUpgradeableProxy","contractDependencies":[],"contractKind":"contract","documentation":{"id":21993,"nodeType":"StructuredDocumentation","src":"182:1451:91","text":" @dev This contract implements a proxy that is upgradeable by an admin.\n To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector\n clashing], which can potentially be used in an attack, this contract uses the\n https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two\n things that go hand in hand:\n 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if\n that call matches one of the admin functions exposed by the proxy itself.\n 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the\n implementation. If the admin tries to call a function on the implementation it will fail with an error that says\n \"admin cannot fallback to proxy target\".\n These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing\n the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due\n to sudden errors when trying to call a function from the proxy implementation.\n Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way,\n you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy."},"fullyImplemented":true,"id":22153,"linearizedBaseContracts":[22153,21464,21782,21834],"name":"TransparentUpgradeableProxy","nameLocation":"1643:27:91","nodeType":"ContractDefinition","nodes":[{"body":{"id":22029,"nodeType":"Block","src":"2038:124:91","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":22022,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":22010,"name":"_ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21622,"src":"2055:11:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22020,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"hexValue":"656970313936372e70726f78792e61646d696e","id":22016,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2096:21:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6104","typeString":"literal_string \"eip1967.proxy.admin\""},"value":"eip1967.proxy.admin"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6104","typeString":"literal_string \"eip1967.proxy.admin\""}],"id":22015,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2086:9:91","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":22017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2086:32:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":22014,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2078:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":22013,"name":"uint256","nodeType":"ElementaryTypeName","src":"2078:7:91","typeDescriptions":{}}},"id":22018,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2078:41:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":22019,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2122:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2078:45:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22012,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2070:7:91","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":22011,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2070:7:91","typeDescriptions":{}}},"id":22021,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2070:54:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2055:69:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":22009,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"2048:6:91","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":22023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2048:77:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22024,"nodeType":"ExpressionStatement","src":"2048:77:91"},{"expression":{"arguments":[{"id":22026,"name":"admin_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22000,"src":"2148:6:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":22025,"name":"_changeAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21685,"src":"2135:12:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":22027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2135:20:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22028,"nodeType":"ExpressionStatement","src":"2135:20:91"}]},"documentation":{"id":21996,"nodeType":"StructuredDocumentation","src":"1693:210:91","text":" @dev Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and\n optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}."},"id":22030,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":22005,"name":"_logic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21998,"src":"2023:6:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22006,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22002,"src":"2031:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":22007,"kind":"baseConstructorSpecifier","modifierName":{"id":22004,"name":"ERC1967Proxy","nameLocations":["2010:12:91"],"nodeType":"IdentifierPath","referencedDeclaration":21464,"src":"2010:12:91"},"nodeType":"ModifierInvocation","src":"2010:27:91"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":22003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21998,"mutability":"mutable","name":"_logic","nameLocation":"1937:6:91","nodeType":"VariableDeclaration","scope":22030,"src":"1929:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21997,"name":"address","nodeType":"ElementaryTypeName","src":"1929:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22000,"mutability":"mutable","name":"admin_","nameLocation":"1961:6:91","nodeType":"VariableDeclaration","scope":22030,"src":"1953:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21999,"name":"address","nodeType":"ElementaryTypeName","src":"1953:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22002,"mutability":"mutable","name":"_data","nameLocation":"1990:5:91","nodeType":"VariableDeclaration","scope":22030,"src":"1977:18:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":22001,"name":"bytes","nodeType":"ElementaryTypeName","src":"1977:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1919:82:91"},"returnParameters":{"id":22008,"nodeType":"ParameterList","parameters":[],"src":"2038:0:91"},"scope":22153,"src":"1908:254:91","stateMutability":"payable","virtual":false,"visibility":"public"},{"body":{"id":22045,"nodeType":"Block","src":"2322:115:91","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":22037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":22033,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2336:3:91","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":22034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2340:6:91","memberName":"sender","nodeType":"MemberAccess","src":"2336:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":22035,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21642,"src":"2350:9:91","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":22036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2350:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2336:25:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":22043,"nodeType":"Block","src":"2395:36:91","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":22040,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21812,"src":"2409:9:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":22041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2409:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22042,"nodeType":"ExpressionStatement","src":"2409:11:91"}]},"id":22044,"nodeType":"IfStatement","src":"2332:99:91","trueBody":{"id":22039,"nodeType":"Block","src":"2363:26:91","statements":[{"id":22038,"nodeType":"PlaceholderStatement","src":"2377:1:91"}]}}]},"documentation":{"id":22031,"nodeType":"StructuredDocumentation","src":"2168:130:91","text":" @dev Modifier used internally that will delegate the call to the implementation unless the sender is the admin."},"id":22046,"name":"ifAdmin","nameLocation":"2312:7:91","nodeType":"ModifierDefinition","parameters":{"id":22032,"nodeType":"ParameterList","parameters":[],"src":"2319:2:91"},"src":"2303:134:91","virtual":false,"visibility":"internal"},{"body":{"id":22059,"nodeType":"Block","src":"2938:37:91","statements":[{"expression":{"id":22057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":22054,"name":"admin_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22052,"src":"2948:6:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":22055,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21642,"src":"2957:9:91","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":22056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2957:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2948:20:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":22058,"nodeType":"ExpressionStatement","src":"2948:20:91"}]},"documentation":{"id":22047,"nodeType":"StructuredDocumentation","src":"2443:431:91","text":" @dev Returns the current admin.\n NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}.\n TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\n https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`"},"functionSelector":"f851a440","id":22060,"implemented":true,"kind":"function","modifiers":[{"id":22050,"kind":"modifierInvocation","modifierName":{"id":22049,"name":"ifAdmin","nameLocations":["2905:7:91"],"nodeType":"IdentifierPath","referencedDeclaration":22046,"src":"2905:7:91"},"nodeType":"ModifierInvocation","src":"2905:7:91"}],"name":"admin","nameLocation":"2888:5:91","nodeType":"FunctionDefinition","parameters":{"id":22048,"nodeType":"ParameterList","parameters":[],"src":"2893:2:91"},"returnParameters":{"id":22053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22052,"mutability":"mutable","name":"admin_","nameLocation":"2930:6:91","nodeType":"VariableDeclaration","scope":22060,"src":"2922:14:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22051,"name":"address","nodeType":"ElementaryTypeName","src":"2922:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2921:16:91"},"scope":22153,"src":"2879:96:91","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":22073,"nodeType":"Block","src":"3512:52:91","statements":[{"expression":{"id":22071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":22068,"name":"implementation_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22066,"src":"3522:15:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":22069,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[21463],"referencedDeclaration":21463,"src":"3540:15:91","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":22070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3540:17:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3522:35:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":22072,"nodeType":"ExpressionStatement","src":"3522:35:91"}]},"documentation":{"id":22061,"nodeType":"StructuredDocumentation","src":"2981:449:91","text":" @dev Returns the current implementation.\n NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}.\n TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\n https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`"},"functionSelector":"5c60da1b","id":22074,"implemented":true,"kind":"function","modifiers":[{"id":22064,"kind":"modifierInvocation","modifierName":{"id":22063,"name":"ifAdmin","nameLocations":["3470:7:91"],"nodeType":"IdentifierPath","referencedDeclaration":22046,"src":"3470:7:91"},"nodeType":"ModifierInvocation","src":"3470:7:91"}],"name":"implementation","nameLocation":"3444:14:91","nodeType":"FunctionDefinition","parameters":{"id":22062,"nodeType":"ParameterList","parameters":[],"src":"3458:2:91"},"returnParameters":{"id":22067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22066,"mutability":"mutable","name":"implementation_","nameLocation":"3495:15:91","nodeType":"VariableDeclaration","scope":22074,"src":"3487:23:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22065,"name":"address","nodeType":"ElementaryTypeName","src":"3487:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3486:25:91"},"scope":22153,"src":"3435:129:91","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":22086,"nodeType":"Block","src":"3833:39:91","statements":[{"expression":{"arguments":[{"id":22083,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22077,"src":"3856:8:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":22082,"name":"_changeAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21685,"src":"3843:12:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":22084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3843:22:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22085,"nodeType":"ExpressionStatement","src":"3843:22:91"}]},"documentation":{"id":22075,"nodeType":"StructuredDocumentation","src":"3570:194:91","text":" @dev Changes the admin of the proxy.\n Emits an {AdminChanged} event.\n NOTE: Only the admin can call this function. See {ProxyAdmin-changeProxyAdmin}."},"functionSelector":"8f283970","id":22087,"implemented":true,"kind":"function","modifiers":[{"id":22080,"kind":"modifierInvocation","modifierName":{"id":22079,"name":"ifAdmin","nameLocations":["3825:7:91"],"nodeType":"IdentifierPath","referencedDeclaration":22046,"src":"3825:7:91"},"nodeType":"ModifierInvocation","src":"3825:7:91"}],"name":"changeAdmin","nameLocation":"3778:11:91","nodeType":"FunctionDefinition","parameters":{"id":22078,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22077,"mutability":"mutable","name":"newAdmin","nameLocation":"3798:8:91","nodeType":"VariableDeclaration","scope":22087,"src":"3790:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22076,"name":"address","nodeType":"ElementaryTypeName","src":"3790:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3789:18:91"},"returnParameters":{"id":22081,"nodeType":"ParameterList","parameters":[],"src":"3833:0:91"},"scope":22153,"src":"3769:103:91","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"body":{"id":22104,"nodeType":"Block","src":"4095:71:91","statements":[{"expression":{"arguments":[{"id":22096,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22090,"src":"4123:17:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"","id":22099,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4148:2:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":22098,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4142:5:91","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":22097,"name":"bytes","nodeType":"ElementaryTypeName","src":"4142:5:91","typeDescriptions":{}}},"id":22100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4142:9:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"66616c7365","id":22101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4153:5:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":22095,"name":"_upgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21565,"src":"4105:17:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,bool)"}},"id":22102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4105:54:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22103,"nodeType":"ExpressionStatement","src":"4105:54:91"}]},"documentation":{"id":22088,"nodeType":"StructuredDocumentation","src":"3878:149:91","text":" @dev Upgrade the implementation of the proxy.\n NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}."},"functionSelector":"3659cfe6","id":22105,"implemented":true,"kind":"function","modifiers":[{"id":22093,"kind":"modifierInvocation","modifierName":{"id":22092,"name":"ifAdmin","nameLocations":["4087:7:91"],"nodeType":"IdentifierPath","referencedDeclaration":22046,"src":"4087:7:91"},"nodeType":"ModifierInvocation","src":"4087:7:91"}],"name":"upgradeTo","nameLocation":"4041:9:91","nodeType":"FunctionDefinition","parameters":{"id":22091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22090,"mutability":"mutable","name":"newImplementation","nameLocation":"4059:17:91","nodeType":"VariableDeclaration","scope":22105,"src":"4051:25:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22089,"name":"address","nodeType":"ElementaryTypeName","src":"4051:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4050:27:91"},"returnParameters":{"id":22094,"nodeType":"ParameterList","parameters":[],"src":"4095:0:91"},"scope":22153,"src":"4032:134:91","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":22121,"nodeType":"Block","src":"4641:65:91","statements":[{"expression":{"arguments":[{"id":22116,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22108,"src":"4669:17:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22117,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22110,"src":"4688:4:91","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"hexValue":"74727565","id":22118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4694:4:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":22115,"name":"_upgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21565,"src":"4651:17:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,bool)"}},"id":22119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4651:48:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22120,"nodeType":"ExpressionStatement","src":"4651:48:91"}]},"documentation":{"id":22106,"nodeType":"StructuredDocumentation","src":"4172:365:91","text":" @dev Upgrade the implementation of the proxy, and then call a function from the new implementation as specified\n by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the\n proxied contract.\n NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}."},"functionSelector":"4f1ef286","id":22122,"implemented":true,"kind":"function","modifiers":[{"id":22113,"kind":"modifierInvocation","modifierName":{"id":22112,"name":"ifAdmin","nameLocations":["4633:7:91"],"nodeType":"IdentifierPath","referencedDeclaration":22046,"src":"4633:7:91"},"nodeType":"ModifierInvocation","src":"4633:7:91"}],"name":"upgradeToAndCall","nameLocation":"4551:16:91","nodeType":"FunctionDefinition","parameters":{"id":22111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22108,"mutability":"mutable","name":"newImplementation","nameLocation":"4576:17:91","nodeType":"VariableDeclaration","scope":22122,"src":"4568:25:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22107,"name":"address","nodeType":"ElementaryTypeName","src":"4568:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22110,"mutability":"mutable","name":"data","nameLocation":"4610:4:91","nodeType":"VariableDeclaration","scope":22122,"src":"4595:19:91","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":22109,"name":"bytes","nodeType":"ElementaryTypeName","src":"4595:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4567:48:91"},"returnParameters":{"id":22114,"nodeType":"ParameterList","parameters":[],"src":"4641:0:91"},"scope":22153,"src":"4542:164:91","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":22131,"nodeType":"Block","src":"4825:35:91","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":22128,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21642,"src":"4842:9:91","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":22129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4842:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":22127,"id":22130,"nodeType":"Return","src":"4835:18:91"}]},"documentation":{"id":22123,"nodeType":"StructuredDocumentation","src":"4712:50:91","text":" @dev Returns the current admin."},"id":22132,"implemented":true,"kind":"function","modifiers":[],"name":"_admin","nameLocation":"4776:6:91","nodeType":"FunctionDefinition","parameters":{"id":22124,"nodeType":"ParameterList","parameters":[],"src":"4782:2:91"},"returnParameters":{"id":22127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22126,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22132,"src":"4816:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22125,"name":"address","nodeType":"ElementaryTypeName","src":"4816:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4815:9:91"},"scope":22153,"src":"4767:93:91","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[21833],"body":{"id":22151,"nodeType":"Block","src":"5034:154:91","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":22142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":22138,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5052:3:91","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":22139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5056:6:91","memberName":"sender","nodeType":"MemberAccess","src":"5052:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":22140,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21642,"src":"5066:9:91","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":22141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5066:11:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5052:25:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5472616e73706172656e745570677261646561626c6550726f78793a2061646d696e2063616e6e6f742066616c6c6261636b20746f2070726f787920746172676574","id":22143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5079:68:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d","typeString":"literal_string \"TransparentUpgradeableProxy: admin cannot fallback to proxy target\""},"value":"TransparentUpgradeableProxy: admin cannot fallback to proxy target"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d","typeString":"literal_string \"TransparentUpgradeableProxy: admin cannot fallback to proxy target\""}],"id":22137,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5044:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5044:104:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22145,"nodeType":"ExpressionStatement","src":"5044:104:91"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":22146,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"5158:5:91","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_TransparentUpgradeableProxy_$22153_$","typeString":"type(contract super TransparentUpgradeableProxy)"}},"id":22148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5164:15:91","memberName":"_beforeFallback","nodeType":"MemberAccess","referencedDeclaration":21833,"src":"5158:21:91","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":22149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5158:23:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22150,"nodeType":"ExpressionStatement","src":"5158:23:91"}]},"documentation":{"id":22133,"nodeType":"StructuredDocumentation","src":"4866:110:91","text":" @dev Makes sure the admin cannot access the fallback function. See {Proxy-_beforeFallback}."},"id":22152,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeFallback","nameLocation":"4990:15:91","nodeType":"FunctionDefinition","overrides":{"id":22135,"nodeType":"OverrideSpecifier","overrides":[],"src":"5025:8:91"},"parameters":{"id":22134,"nodeType":"ParameterList","parameters":[],"src":"5005:2:91"},"returnParameters":{"id":22136,"nodeType":"ParameterList","parameters":[],"src":"5034:0:91"},"scope":22153,"src":"4981:207:91","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":22154,"src":"1634:3556:91","usedErrors":[],"usedEvents":[21483,21629,21694]}],"src":"118:5073:91"},"id":91},"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol","exportedSymbols":{"Address":[22448]},"id":22449,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":22155,"literals":["solidity","^","0.8",".1"],"nodeType":"PragmaDirective","src":"106:23:92"},{"abstract":false,"baseContracts":[],"canonicalName":"Address","contractDependencies":[],"contractKind":"library","documentation":{"id":22156,"nodeType":"StructuredDocumentation","src":"131:67:92","text":" @dev Collection of functions related to the address type"},"fullyImplemented":true,"id":22448,"linearizedBaseContracts":[22448],"name":"Address","nameLocation":"207:7:92","nodeType":"ContractDefinition","nodes":[{"body":{"id":22170,"nodeType":"Block","src":"1246:254:92","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":22164,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22159,"src":"1470:7:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":22165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1478:4:92","memberName":"code","nodeType":"MemberAccess","src":"1470:12:92","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":22166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1483:6:92","memberName":"length","nodeType":"MemberAccess","src":"1470:19:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":22167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1492:1:92","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1470:23:92","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":22163,"id":22169,"nodeType":"Return","src":"1463:30:92"}]},"documentation":{"id":22157,"nodeType":"StructuredDocumentation","src":"221:954:92","text":" @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n  - an externally-owned account\n  - a contract in construction\n  - an address where a contract will be created\n  - an address where a contract lived, but was destroyed\n ====\n [IMPORTANT]\n ====\n You shouldn't rely on `isContract` to protect against flash loan attacks!\n Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n constructor.\n ===="},"id":22171,"implemented":true,"kind":"function","modifiers":[],"name":"isContract","nameLocation":"1189:10:92","nodeType":"FunctionDefinition","parameters":{"id":22160,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22159,"mutability":"mutable","name":"account","nameLocation":"1208:7:92","nodeType":"VariableDeclaration","scope":22171,"src":"1200:15:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22158,"name":"address","nodeType":"ElementaryTypeName","src":"1200:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1199:17:92"},"returnParameters":{"id":22163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22162,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22171,"src":"1240:4:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22161,"name":"bool","nodeType":"ElementaryTypeName","src":"1240:4:92","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1239:6:92"},"scope":22448,"src":"1180:320:92","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":22204,"nodeType":"Block","src":"2488:241:92","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":22182,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2514:4:92","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$22448","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$22448","typeString":"library Address"}],"id":22181,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2506:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":22180,"name":"address","nodeType":"ElementaryTypeName","src":"2506:7:92","typeDescriptions":{}}},"id":22183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2506:13:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":22184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2520:7:92","memberName":"balance","nodeType":"MemberAccess","src":"2506:21:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":22185,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22176,"src":"2531:6:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2506:31:92","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e6365","id":22187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2539:31:92","typeDescriptions":{"typeIdentifier":"t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9","typeString":"literal_string \"Address: insufficient balance\""},"value":"Address: insufficient balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9","typeString":"literal_string \"Address: insufficient balance\""}],"id":22179,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2498:7:92","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2498:73:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22189,"nodeType":"ExpressionStatement","src":"2498:73:92"},{"assignments":[22191,null],"declarations":[{"constant":false,"id":22191,"mutability":"mutable","name":"success","nameLocation":"2588:7:92","nodeType":"VariableDeclaration","scope":22204,"src":"2583:12:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22190,"name":"bool","nodeType":"ElementaryTypeName","src":"2583:4:92","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":22198,"initialValue":{"arguments":[{"hexValue":"","id":22196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2631:2:92","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":22192,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22174,"src":"2601:9:92","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":22193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2611:4:92","memberName":"call","nodeType":"MemberAccess","src":"2601:14:92","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":22195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":22194,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22176,"src":"2623:6:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2601:29:92","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":22197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2601:33:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2582:52:92"},{"expression":{"arguments":[{"id":22200,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22191,"src":"2652:7:92","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564","id":22201,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2661:60:92","typeDescriptions":{"typeIdentifier":"t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae","typeString":"literal_string \"Address: unable to send value, recipient may have reverted\""},"value":"Address: unable to send value, recipient may have reverted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae","typeString":"literal_string \"Address: unable to send value, recipient may have reverted\""}],"id":22199,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2644:7:92","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2644:78:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22203,"nodeType":"ExpressionStatement","src":"2644:78:92"}]},"documentation":{"id":22172,"nodeType":"StructuredDocumentation","src":"1506:906:92","text":" @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]."},"id":22205,"implemented":true,"kind":"function","modifiers":[],"name":"sendValue","nameLocation":"2426:9:92","nodeType":"FunctionDefinition","parameters":{"id":22177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22174,"mutability":"mutable","name":"recipient","nameLocation":"2452:9:92","nodeType":"VariableDeclaration","scope":22205,"src":"2436:25:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":22173,"name":"address","nodeType":"ElementaryTypeName","src":"2436:15:92","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":22176,"mutability":"mutable","name":"amount","nameLocation":"2471:6:92","nodeType":"VariableDeclaration","scope":22205,"src":"2463:14:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22175,"name":"uint256","nodeType":"ElementaryTypeName","src":"2463:7:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2435:43:92"},"returnParameters":{"id":22178,"nodeType":"ParameterList","parameters":[],"src":"2488:0:92"},"scope":22448,"src":"2417:312:92","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":22221,"nodeType":"Block","src":"3560:84:92","statements":[{"expression":{"arguments":[{"id":22216,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22208,"src":"3590:6:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22217,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22210,"src":"3598:4:92","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564","id":22218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3604:32:92","typeDescriptions":{"typeIdentifier":"t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df","typeString":"literal_string \"Address: low-level call failed\""},"value":"Address: low-level call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df","typeString":"literal_string \"Address: low-level call failed\""}],"id":22215,"name":"functionCall","nodeType":"Identifier","overloadedDeclarations":[22222,22242],"referencedDeclaration":22242,"src":"3577:12:92","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,string memory) returns (bytes memory)"}},"id":22219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3577:60:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":22214,"id":22220,"nodeType":"Return","src":"3570:67:92"}]},"documentation":{"id":22206,"nodeType":"StructuredDocumentation","src":"2735:731:92","text":" @dev Performs a Solidity function call using a low level `call`. A\n plain `call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._"},"id":22222,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3480:12:92","nodeType":"FunctionDefinition","parameters":{"id":22211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22208,"mutability":"mutable","name":"target","nameLocation":"3501:6:92","nodeType":"VariableDeclaration","scope":22222,"src":"3493:14:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22207,"name":"address","nodeType":"ElementaryTypeName","src":"3493:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22210,"mutability":"mutable","name":"data","nameLocation":"3522:4:92","nodeType":"VariableDeclaration","scope":22222,"src":"3509:17:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":22209,"name":"bytes","nodeType":"ElementaryTypeName","src":"3509:5:92","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3492:35:92"},"returnParameters":{"id":22214,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22213,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22222,"src":"3546:12:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":22212,"name":"bytes","nodeType":"ElementaryTypeName","src":"3546:5:92","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3545:14:92"},"scope":22448,"src":"3471:173:92","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":22241,"nodeType":"Block","src":"4013:76:92","statements":[{"expression":{"arguments":[{"id":22235,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22225,"src":"4052:6:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22236,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22227,"src":"4060:4:92","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":22237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4066:1:92","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":22238,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22229,"src":"4069:12:92","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":22234,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[22262,22312],"referencedDeclaration":22312,"src":"4030:21:92","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":22239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4030:52:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":22233,"id":22240,"nodeType":"Return","src":"4023:59:92"}]},"documentation":{"id":22223,"nodeType":"StructuredDocumentation","src":"3650:211:92","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"},"id":22242,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3875:12:92","nodeType":"FunctionDefinition","parameters":{"id":22230,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22225,"mutability":"mutable","name":"target","nameLocation":"3905:6:92","nodeType":"VariableDeclaration","scope":22242,"src":"3897:14:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22224,"name":"address","nodeType":"ElementaryTypeName","src":"3897:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22227,"mutability":"mutable","name":"data","nameLocation":"3934:4:92","nodeType":"VariableDeclaration","scope":22242,"src":"3921:17:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":22226,"name":"bytes","nodeType":"ElementaryTypeName","src":"3921:5:92","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":22229,"mutability":"mutable","name":"errorMessage","nameLocation":"3962:12:92","nodeType":"VariableDeclaration","scope":22242,"src":"3948:26:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22228,"name":"string","nodeType":"ElementaryTypeName","src":"3948:6:92","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3887:93:92"},"returnParameters":{"id":22233,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22232,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22242,"src":"3999:12:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":22231,"name":"bytes","nodeType":"ElementaryTypeName","src":"3999:5:92","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3998:14:92"},"scope":22448,"src":"3866:223:92","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":22261,"nodeType":"Block","src":"4594:111:92","statements":[{"expression":{"arguments":[{"id":22255,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22245,"src":"4633:6:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22256,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22247,"src":"4641:4:92","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":22257,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22249,"src":"4647:5:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564","id":22258,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4654:43:92","typeDescriptions":{"typeIdentifier":"t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc","typeString":"literal_string \"Address: low-level call with value failed\""},"value":"Address: low-level call with value failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc","typeString":"literal_string \"Address: low-level call with value failed\""}],"id":22254,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[22262,22312],"referencedDeclaration":22312,"src":"4611:21:92","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":22259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4611:87:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":22253,"id":22260,"nodeType":"Return","src":"4604:94:92"}]},"documentation":{"id":22243,"nodeType":"StructuredDocumentation","src":"4095:351:92","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._"},"id":22262,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4460:21:92","nodeType":"FunctionDefinition","parameters":{"id":22250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22245,"mutability":"mutable","name":"target","nameLocation":"4499:6:92","nodeType":"VariableDeclaration","scope":22262,"src":"4491:14:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22244,"name":"address","nodeType":"ElementaryTypeName","src":"4491:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22247,"mutability":"mutable","name":"data","nameLocation":"4528:4:92","nodeType":"VariableDeclaration","scope":22262,"src":"4515:17:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":22246,"name":"bytes","nodeType":"ElementaryTypeName","src":"4515:5:92","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":22249,"mutability":"mutable","name":"value","nameLocation":"4550:5:92","nodeType":"VariableDeclaration","scope":22262,"src":"4542:13:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22248,"name":"uint256","nodeType":"ElementaryTypeName","src":"4542:7:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4481:80:92"},"returnParameters":{"id":22253,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22252,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22262,"src":"4580:12:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":22251,"name":"bytes","nodeType":"ElementaryTypeName","src":"4580:5:92","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4579:14:92"},"scope":22448,"src":"4451:254:92","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":22311,"nodeType":"Block","src":"5132:320:92","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":22279,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5158:4:92","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$22448","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$22448","typeString":"library Address"}],"id":22278,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5150:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":22277,"name":"address","nodeType":"ElementaryTypeName","src":"5150:7:92","typeDescriptions":{}}},"id":22280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5150:13:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":22281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5164:7:92","memberName":"balance","nodeType":"MemberAccess","src":"5150:21:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":22282,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22269,"src":"5175:5:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5150:30:92","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c","id":22284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5182:40:92","typeDescriptions":{"typeIdentifier":"t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c","typeString":"literal_string \"Address: insufficient balance for call\""},"value":"Address: insufficient balance for call"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c","typeString":"literal_string \"Address: insufficient balance for call\""}],"id":22276,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5142:7:92","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5142:81:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22286,"nodeType":"ExpressionStatement","src":"5142:81:92"},{"expression":{"arguments":[{"arguments":[{"id":22289,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22265,"src":"5252:6:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":22288,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22171,"src":"5241:10:92","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":22290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5241:18:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","id":22291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5261:31:92","typeDescriptions":{"typeIdentifier":"t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad","typeString":"literal_string \"Address: call to non-contract\""},"value":"Address: call to non-contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad","typeString":"literal_string \"Address: call to non-contract\""}],"id":22287,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5233:7:92","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5233:60:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22293,"nodeType":"ExpressionStatement","src":"5233:60:92"},{"assignments":[22295,22297],"declarations":[{"constant":false,"id":22295,"mutability":"mutable","name":"success","nameLocation":"5310:7:92","nodeType":"VariableDeclaration","scope":22311,"src":"5305:12:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22294,"name":"bool","nodeType":"ElementaryTypeName","src":"5305:4:92","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22297,"mutability":"mutable","name":"returndata","nameLocation":"5332:10:92","nodeType":"VariableDeclaration","scope":22311,"src":"5319:23:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":22296,"name":"bytes","nodeType":"ElementaryTypeName","src":"5319:5:92","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":22304,"initialValue":{"arguments":[{"id":22302,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22267,"src":"5372:4:92","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":22298,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22265,"src":"5346:6:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":22299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5353:4:92","memberName":"call","nodeType":"MemberAccess","src":"5346:11:92","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":22301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":22300,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22269,"src":"5365:5:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"5346:25:92","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":22303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5346:31:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5304:73:92"},{"expression":{"arguments":[{"id":22306,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22295,"src":"5411:7:92","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22307,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22297,"src":"5420:10:92","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":22308,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22271,"src":"5432:12:92","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":22305,"name":"verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22447,"src":"5394:16:92","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bool,bytes memory,string memory) pure returns (bytes memory)"}},"id":22309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5394:51:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":22275,"id":22310,"nodeType":"Return","src":"5387:58:92"}]},"documentation":{"id":22263,"nodeType":"StructuredDocumentation","src":"4711:237:92","text":" @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"},"id":22312,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4962:21:92","nodeType":"FunctionDefinition","parameters":{"id":22272,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22265,"mutability":"mutable","name":"target","nameLocation":"5001:6:92","nodeType":"VariableDeclaration","scope":22312,"src":"4993:14:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22264,"name":"address","nodeType":"ElementaryTypeName","src":"4993:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22267,"mutability":"mutable","name":"data","nameLocation":"5030:4:92","nodeType":"VariableDeclaration","scope":22312,"src":"5017:17:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":22266,"name":"bytes","nodeType":"ElementaryTypeName","src":"5017:5:92","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":22269,"mutability":"mutable","name":"value","nameLocation":"5052:5:92","nodeType":"VariableDeclaration","scope":22312,"src":"5044:13:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22268,"name":"uint256","nodeType":"ElementaryTypeName","src":"5044:7:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22271,"mutability":"mutable","name":"errorMessage","nameLocation":"5081:12:92","nodeType":"VariableDeclaration","scope":22312,"src":"5067:26:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22270,"name":"string","nodeType":"ElementaryTypeName","src":"5067:6:92","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4983:116:92"},"returnParameters":{"id":22275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22274,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22312,"src":"5118:12:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":22273,"name":"bytes","nodeType":"ElementaryTypeName","src":"5118:5:92","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5117:14:92"},"scope":22448,"src":"4953:499:92","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":22328,"nodeType":"Block","src":"5729:97:92","statements":[{"expression":{"arguments":[{"id":22323,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22315,"src":"5765:6:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22324,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22317,"src":"5773:4:92","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564","id":22325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5779:39:92","typeDescriptions":{"typeIdentifier":"t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0","typeString":"literal_string \"Address: low-level static call failed\""},"value":"Address: low-level static call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0","typeString":"literal_string \"Address: low-level static call failed\""}],"id":22322,"name":"functionStaticCall","nodeType":"Identifier","overloadedDeclarations":[22329,22364],"referencedDeclaration":22364,"src":"5746:18:92","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,string memory) view returns (bytes memory)"}},"id":22326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5746:73:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":22321,"id":22327,"nodeType":"Return","src":"5739:80:92"}]},"documentation":{"id":22313,"nodeType":"StructuredDocumentation","src":"5458:166:92","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":22329,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"5638:18:92","nodeType":"FunctionDefinition","parameters":{"id":22318,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22315,"mutability":"mutable","name":"target","nameLocation":"5665:6:92","nodeType":"VariableDeclaration","scope":22329,"src":"5657:14:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22314,"name":"address","nodeType":"ElementaryTypeName","src":"5657:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22317,"mutability":"mutable","name":"data","nameLocation":"5686:4:92","nodeType":"VariableDeclaration","scope":22329,"src":"5673:17:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":22316,"name":"bytes","nodeType":"ElementaryTypeName","src":"5673:5:92","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5656:35:92"},"returnParameters":{"id":22321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22320,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22329,"src":"5715:12:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":22319,"name":"bytes","nodeType":"ElementaryTypeName","src":"5715:5:92","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5714:14:92"},"scope":22448,"src":"5629:197:92","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":22363,"nodeType":"Block","src":"6168:228:92","statements":[{"expression":{"arguments":[{"arguments":[{"id":22343,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22332,"src":"6197:6:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":22342,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22171,"src":"6186:10:92","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":22344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6186:18:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374","id":22345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6206:38:92","typeDescriptions":{"typeIdentifier":"t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9","typeString":"literal_string \"Address: static call to non-contract\""},"value":"Address: static call to non-contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9","typeString":"literal_string \"Address: static call to non-contract\""}],"id":22341,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6178:7:92","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6178:67:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22347,"nodeType":"ExpressionStatement","src":"6178:67:92"},{"assignments":[22349,22351],"declarations":[{"constant":false,"id":22349,"mutability":"mutable","name":"success","nameLocation":"6262:7:92","nodeType":"VariableDeclaration","scope":22363,"src":"6257:12:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22348,"name":"bool","nodeType":"ElementaryTypeName","src":"6257:4:92","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22351,"mutability":"mutable","name":"returndata","nameLocation":"6284:10:92","nodeType":"VariableDeclaration","scope":22363,"src":"6271:23:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":22350,"name":"bytes","nodeType":"ElementaryTypeName","src":"6271:5:92","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":22356,"initialValue":{"arguments":[{"id":22354,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22334,"src":"6316:4:92","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":22352,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22332,"src":"6298:6:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":22353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6305:10:92","memberName":"staticcall","nodeType":"MemberAccess","src":"6298:17:92","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":22355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6298:23:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6256:65:92"},{"expression":{"arguments":[{"id":22358,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22349,"src":"6355:7:92","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22359,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22351,"src":"6364:10:92","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":22360,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22336,"src":"6376:12:92","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":22357,"name":"verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22447,"src":"6338:16:92","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bool,bytes memory,string memory) pure returns (bytes memory)"}},"id":22361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6338:51:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":22340,"id":22362,"nodeType":"Return","src":"6331:58:92"}]},"documentation":{"id":22330,"nodeType":"StructuredDocumentation","src":"5832:173:92","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":22364,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"6019:18:92","nodeType":"FunctionDefinition","parameters":{"id":22337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22332,"mutability":"mutable","name":"target","nameLocation":"6055:6:92","nodeType":"VariableDeclaration","scope":22364,"src":"6047:14:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22331,"name":"address","nodeType":"ElementaryTypeName","src":"6047:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22334,"mutability":"mutable","name":"data","nameLocation":"6084:4:92","nodeType":"VariableDeclaration","scope":22364,"src":"6071:17:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":22333,"name":"bytes","nodeType":"ElementaryTypeName","src":"6071:5:92","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":22336,"mutability":"mutable","name":"errorMessage","nameLocation":"6112:12:92","nodeType":"VariableDeclaration","scope":22364,"src":"6098:26:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22335,"name":"string","nodeType":"ElementaryTypeName","src":"6098:6:92","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6037:93:92"},"returnParameters":{"id":22340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22339,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22364,"src":"6154:12:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":22338,"name":"bytes","nodeType":"ElementaryTypeName","src":"6154:5:92","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6153:14:92"},"scope":22448,"src":"6010:386:92","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":22380,"nodeType":"Block","src":"6672:101:92","statements":[{"expression":{"arguments":[{"id":22375,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22367,"src":"6710:6:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22376,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22369,"src":"6718:4:92","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","id":22377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6724:41:92","typeDescriptions":{"typeIdentifier":"t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398","typeString":"literal_string \"Address: low-level delegate call failed\""},"value":"Address: low-level delegate call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398","typeString":"literal_string \"Address: low-level delegate call failed\""}],"id":22374,"name":"functionDelegateCall","nodeType":"Identifier","overloadedDeclarations":[22381,22416],"referencedDeclaration":22416,"src":"6689:20:92","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,string memory) returns (bytes memory)"}},"id":22378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6689:77:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":22373,"id":22379,"nodeType":"Return","src":"6682:84:92"}]},"documentation":{"id":22365,"nodeType":"StructuredDocumentation","src":"6402:168:92","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":22381,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"6584:20:92","nodeType":"FunctionDefinition","parameters":{"id":22370,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22367,"mutability":"mutable","name":"target","nameLocation":"6613:6:92","nodeType":"VariableDeclaration","scope":22381,"src":"6605:14:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22366,"name":"address","nodeType":"ElementaryTypeName","src":"6605:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22369,"mutability":"mutable","name":"data","nameLocation":"6634:4:92","nodeType":"VariableDeclaration","scope":22381,"src":"6621:17:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":22368,"name":"bytes","nodeType":"ElementaryTypeName","src":"6621:5:92","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6604:35:92"},"returnParameters":{"id":22373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22372,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22381,"src":"6658:12:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":22371,"name":"bytes","nodeType":"ElementaryTypeName","src":"6658:5:92","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6657:14:92"},"scope":22448,"src":"6575:198:92","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":22415,"nodeType":"Block","src":"7114:232:92","statements":[{"expression":{"arguments":[{"arguments":[{"id":22395,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22384,"src":"7143:6:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":22394,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22171,"src":"7132:10:92","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":22396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7132:18:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374","id":22397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7152:40:92","typeDescriptions":{"typeIdentifier":"t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520","typeString":"literal_string \"Address: delegate call to non-contract\""},"value":"Address: delegate call to non-contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520","typeString":"literal_string \"Address: delegate call to non-contract\""}],"id":22393,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7124:7:92","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7124:69:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22399,"nodeType":"ExpressionStatement","src":"7124:69:92"},{"assignments":[22401,22403],"declarations":[{"constant":false,"id":22401,"mutability":"mutable","name":"success","nameLocation":"7210:7:92","nodeType":"VariableDeclaration","scope":22415,"src":"7205:12:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22400,"name":"bool","nodeType":"ElementaryTypeName","src":"7205:4:92","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22403,"mutability":"mutable","name":"returndata","nameLocation":"7232:10:92","nodeType":"VariableDeclaration","scope":22415,"src":"7219:23:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":22402,"name":"bytes","nodeType":"ElementaryTypeName","src":"7219:5:92","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":22408,"initialValue":{"arguments":[{"id":22406,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22386,"src":"7266:4:92","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":22404,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22384,"src":"7246:6:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":22405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7253:12:92","memberName":"delegatecall","nodeType":"MemberAccess","src":"7246:19:92","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":22407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7246:25:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"7204:67:92"},{"expression":{"arguments":[{"id":22410,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22401,"src":"7305:7:92","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22411,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22403,"src":"7314:10:92","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":22412,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22388,"src":"7326:12:92","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":22409,"name":"verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22447,"src":"7288:16:92","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bool,bytes memory,string memory) pure returns (bytes memory)"}},"id":22413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7288:51:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":22392,"id":22414,"nodeType":"Return","src":"7281:58:92"}]},"documentation":{"id":22382,"nodeType":"StructuredDocumentation","src":"6779:175:92","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":22416,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"6968:20:92","nodeType":"FunctionDefinition","parameters":{"id":22389,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22384,"mutability":"mutable","name":"target","nameLocation":"7006:6:92","nodeType":"VariableDeclaration","scope":22416,"src":"6998:14:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22383,"name":"address","nodeType":"ElementaryTypeName","src":"6998:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22386,"mutability":"mutable","name":"data","nameLocation":"7035:4:92","nodeType":"VariableDeclaration","scope":22416,"src":"7022:17:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":22385,"name":"bytes","nodeType":"ElementaryTypeName","src":"7022:5:92","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":22388,"mutability":"mutable","name":"errorMessage","nameLocation":"7063:12:92","nodeType":"VariableDeclaration","scope":22416,"src":"7049:26:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22387,"name":"string","nodeType":"ElementaryTypeName","src":"7049:6:92","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6988:93:92"},"returnParameters":{"id":22392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22391,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22416,"src":"7100:12:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":22390,"name":"bytes","nodeType":"ElementaryTypeName","src":"7100:5:92","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7099:14:92"},"scope":22448,"src":"6959:387:92","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":22446,"nodeType":"Block","src":"7726:532:92","statements":[{"condition":{"id":22428,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22419,"src":"7740:7:92","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":22444,"nodeType":"Block","src":"7797:455:92","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":22432,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22421,"src":"7881:10:92","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":22433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7892:6:92","memberName":"length","nodeType":"MemberAccess","src":"7881:17:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":22434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7901:1:92","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7881:21:92","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":22442,"nodeType":"Block","src":"8189:53:92","statements":[{"expression":{"arguments":[{"id":22439,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22423,"src":"8214:12:92","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":22438,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"8207:6:92","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":22440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8207:20:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22441,"nodeType":"ExpressionStatement","src":"8207:20:92"}]},"id":22443,"nodeType":"IfStatement","src":"7877:365:92","trueBody":{"id":22437,"nodeType":"Block","src":"7904:279:92","statements":[{"AST":{"nativeSrc":"8024:145:92","nodeType":"YulBlock","src":"8024:145:92","statements":[{"nativeSrc":"8046:40:92","nodeType":"YulVariableDeclaration","src":"8046:40:92","value":{"arguments":[{"name":"returndata","nativeSrc":"8075:10:92","nodeType":"YulIdentifier","src":"8075:10:92"}],"functionName":{"name":"mload","nativeSrc":"8069:5:92","nodeType":"YulIdentifier","src":"8069:5:92"},"nativeSrc":"8069:17:92","nodeType":"YulFunctionCall","src":"8069:17:92"},"variables":[{"name":"returndata_size","nativeSrc":"8050:15:92","nodeType":"YulTypedName","src":"8050:15:92","type":""}]},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"8118:2:92","nodeType":"YulLiteral","src":"8118:2:92","type":"","value":"32"},{"name":"returndata","nativeSrc":"8122:10:92","nodeType":"YulIdentifier","src":"8122:10:92"}],"functionName":{"name":"add","nativeSrc":"8114:3:92","nodeType":"YulIdentifier","src":"8114:3:92"},"nativeSrc":"8114:19:92","nodeType":"YulFunctionCall","src":"8114:19:92"},{"name":"returndata_size","nativeSrc":"8135:15:92","nodeType":"YulIdentifier","src":"8135:15:92"}],"functionName":{"name":"revert","nativeSrc":"8107:6:92","nodeType":"YulIdentifier","src":"8107:6:92"},"nativeSrc":"8107:44:92","nodeType":"YulFunctionCall","src":"8107:44:92"},"nativeSrc":"8107:44:92","nodeType":"YulExpressionStatement","src":"8107:44:92"}]},"evmVersion":"paris","externalReferences":[{"declaration":22421,"isOffset":false,"isSlot":false,"src":"8075:10:92","valueSize":1},{"declaration":22421,"isOffset":false,"isSlot":false,"src":"8122:10:92","valueSize":1}],"id":22436,"nodeType":"InlineAssembly","src":"8015:154:92"}]}}]},"id":22445,"nodeType":"IfStatement","src":"7736:516:92","trueBody":{"id":22431,"nodeType":"Block","src":"7749:42:92","statements":[{"expression":{"id":22429,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22421,"src":"7770:10:92","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":22427,"id":22430,"nodeType":"Return","src":"7763:17:92"}]}}]},"documentation":{"id":22417,"nodeType":"StructuredDocumentation","src":"7352:209:92","text":" @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the\n revert reason using the provided one.\n _Available since v4.3._"},"id":22447,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResult","nameLocation":"7575:16:92","nodeType":"FunctionDefinition","parameters":{"id":22424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22419,"mutability":"mutable","name":"success","nameLocation":"7606:7:92","nodeType":"VariableDeclaration","scope":22447,"src":"7601:12:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22418,"name":"bool","nodeType":"ElementaryTypeName","src":"7601:4:92","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22421,"mutability":"mutable","name":"returndata","nameLocation":"7636:10:92","nodeType":"VariableDeclaration","scope":22447,"src":"7623:23:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":22420,"name":"bytes","nodeType":"ElementaryTypeName","src":"7623:5:92","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":22423,"mutability":"mutable","name":"errorMessage","nameLocation":"7670:12:92","nodeType":"VariableDeclaration","scope":22447,"src":"7656:26:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22422,"name":"string","nodeType":"ElementaryTypeName","src":"7656:6:92","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7591:97:92"},"returnParameters":{"id":22427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22426,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22447,"src":"7712:12:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":22425,"name":"bytes","nodeType":"ElementaryTypeName","src":"7712:5:92","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7711:14:92"},"scope":22448,"src":"7566:692:92","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":22449,"src":"199:8061:92","usedErrors":[],"usedEvents":[]}],"src":"106:8155:92"},"id":92},"hardhat-deploy/solc_0.8/openzeppelin/utils/Context.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/utils/Context.sol","exportedSymbols":{"Context":[22470]},"id":22471,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":22450,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"86:23:93"},{"abstract":true,"baseContracts":[],"canonicalName":"Context","contractDependencies":[],"contractKind":"contract","documentation":{"id":22451,"nodeType":"StructuredDocumentation","src":"111:496:93","text":" @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts."},"fullyImplemented":true,"id":22470,"linearizedBaseContracts":[22470],"name":"Context","nameLocation":"626:7:93","nodeType":"ContractDefinition","nodes":[{"body":{"id":22459,"nodeType":"Block","src":"702:34:93","statements":[{"expression":{"expression":{"id":22456,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"719:3:93","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":22457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"723:6:93","memberName":"sender","nodeType":"MemberAccess","src":"719:10:93","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":22455,"id":22458,"nodeType":"Return","src":"712:17:93"}]},"id":22460,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"649:10:93","nodeType":"FunctionDefinition","parameters":{"id":22452,"nodeType":"ParameterList","parameters":[],"src":"659:2:93"},"returnParameters":{"id":22455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22454,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22460,"src":"693:7:93","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22453,"name":"address","nodeType":"ElementaryTypeName","src":"693:7:93","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"692:9:93"},"scope":22470,"src":"640:96:93","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":22468,"nodeType":"Block","src":"809:32:93","statements":[{"expression":{"expression":{"id":22465,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"826:3:93","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":22466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"830:4:93","memberName":"data","nodeType":"MemberAccess","src":"826:8:93","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":22464,"id":22467,"nodeType":"Return","src":"819:15:93"}]},"id":22469,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"751:8:93","nodeType":"FunctionDefinition","parameters":{"id":22461,"nodeType":"ParameterList","parameters":[],"src":"759:2:93"},"returnParameters":{"id":22464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22463,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22469,"src":"793:14:93","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":22462,"name":"bytes","nodeType":"ElementaryTypeName","src":"793:5:93","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"792:16:93"},"scope":22470,"src":"742:99:93","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":22471,"src":"608:235:93","usedErrors":[],"usedEvents":[]}],"src":"86:758:93"},"id":93},"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol","exportedSymbols":{"StorageSlot":[22530]},"id":22531,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":22472,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"90:23:94"},{"abstract":false,"baseContracts":[],"canonicalName":"StorageSlot","contractDependencies":[],"contractKind":"library","documentation":{"id":22473,"nodeType":"StructuredDocumentation","src":"115:1148:94","text":" @dev Library for reading and writing primitive types to specific storage slots.\n Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\n This library helps with reading and writing to such slots without the need for inline assembly.\n The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\n Example usage to set ERC1967 implementation slot:\n ```\n contract ERC1967 {\n     bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n     function _getImplementation() internal view returns (address) {\n         return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n     }\n     function _setImplementation(address newImplementation) internal {\n         require(Address.isContract(newImplementation), \"ERC1967: new implementation is not a contract\");\n         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n     }\n }\n ```\n _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._"},"fullyImplemented":true,"id":22530,"linearizedBaseContracts":[22530],"name":"StorageSlot","nameLocation":"1272:11:94","nodeType":"ContractDefinition","nodes":[{"canonicalName":"StorageSlot.AddressSlot","id":22476,"members":[{"constant":false,"id":22475,"mutability":"mutable","name":"value","nameLocation":"1327:5:94","nodeType":"VariableDeclaration","scope":22476,"src":"1319:13:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22474,"name":"address","nodeType":"ElementaryTypeName","src":"1319:7:94","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"AddressSlot","nameLocation":"1297:11:94","nodeType":"StructDefinition","scope":22530,"src":"1290:49:94","visibility":"public"},{"canonicalName":"StorageSlot.BooleanSlot","id":22479,"members":[{"constant":false,"id":22478,"mutability":"mutable","name":"value","nameLocation":"1379:5:94","nodeType":"VariableDeclaration","scope":22479,"src":"1374:10:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22477,"name":"bool","nodeType":"ElementaryTypeName","src":"1374:4:94","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"BooleanSlot","nameLocation":"1352:11:94","nodeType":"StructDefinition","scope":22530,"src":"1345:46:94","visibility":"public"},{"canonicalName":"StorageSlot.Bytes32Slot","id":22482,"members":[{"constant":false,"id":22481,"mutability":"mutable","name":"value","nameLocation":"1434:5:94","nodeType":"VariableDeclaration","scope":22482,"src":"1426:13:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":22480,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1426:7:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"Bytes32Slot","nameLocation":"1404:11:94","nodeType":"StructDefinition","scope":22530,"src":"1397:49:94","visibility":"public"},{"canonicalName":"StorageSlot.Uint256Slot","id":22485,"members":[{"constant":false,"id":22484,"mutability":"mutable","name":"value","nameLocation":"1489:5:94","nodeType":"VariableDeclaration","scope":22485,"src":"1481:13:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22483,"name":"uint256","nodeType":"ElementaryTypeName","src":"1481:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Uint256Slot","nameLocation":"1459:11:94","nodeType":"StructDefinition","scope":22530,"src":"1452:49:94","visibility":"public"},{"body":{"id":22495,"nodeType":"Block","src":"1683:63:94","statements":[{"AST":{"nativeSrc":"1702:38:94","nodeType":"YulBlock","src":"1702:38:94","statements":[{"nativeSrc":"1716:14:94","nodeType":"YulAssignment","src":"1716:14:94","value":{"name":"slot","nativeSrc":"1726:4:94","nodeType":"YulIdentifier","src":"1726:4:94"},"variableNames":[{"name":"r.slot","nativeSrc":"1716:6:94","nodeType":"YulIdentifier","src":"1716:6:94"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":22492,"isOffset":false,"isSlot":true,"src":"1716:6:94","suffix":"slot","valueSize":1},{"declaration":22488,"isOffset":false,"isSlot":false,"src":"1726:4:94","valueSize":1}],"id":22494,"nodeType":"InlineAssembly","src":"1693:47:94"}]},"documentation":{"id":22486,"nodeType":"StructuredDocumentation","src":"1507:87:94","text":" @dev Returns an `AddressSlot` with member `value` located at `slot`."},"id":22496,"implemented":true,"kind":"function","modifiers":[],"name":"getAddressSlot","nameLocation":"1608:14:94","nodeType":"FunctionDefinition","parameters":{"id":22489,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22488,"mutability":"mutable","name":"slot","nameLocation":"1631:4:94","nodeType":"VariableDeclaration","scope":22496,"src":"1623:12:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":22487,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1623:7:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1622:14:94"},"returnParameters":{"id":22493,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22492,"mutability":"mutable","name":"r","nameLocation":"1680:1:94","nodeType":"VariableDeclaration","scope":22496,"src":"1660:21:94","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$22476_storage_ptr","typeString":"struct StorageSlot.AddressSlot"},"typeName":{"id":22491,"nodeType":"UserDefinedTypeName","pathNode":{"id":22490,"name":"AddressSlot","nameLocations":["1660:11:94"],"nodeType":"IdentifierPath","referencedDeclaration":22476,"src":"1660:11:94"},"referencedDeclaration":22476,"src":"1660:11:94","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$22476_storage_ptr","typeString":"struct StorageSlot.AddressSlot"}},"visibility":"internal"}],"src":"1659:23:94"},"scope":22530,"src":"1599:147:94","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":22506,"nodeType":"Block","src":"1928:63:94","statements":[{"AST":{"nativeSrc":"1947:38:94","nodeType":"YulBlock","src":"1947:38:94","statements":[{"nativeSrc":"1961:14:94","nodeType":"YulAssignment","src":"1961:14:94","value":{"name":"slot","nativeSrc":"1971:4:94","nodeType":"YulIdentifier","src":"1971:4:94"},"variableNames":[{"name":"r.slot","nativeSrc":"1961:6:94","nodeType":"YulIdentifier","src":"1961:6:94"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":22503,"isOffset":false,"isSlot":true,"src":"1961:6:94","suffix":"slot","valueSize":1},{"declaration":22499,"isOffset":false,"isSlot":false,"src":"1971:4:94","valueSize":1}],"id":22505,"nodeType":"InlineAssembly","src":"1938:47:94"}]},"documentation":{"id":22497,"nodeType":"StructuredDocumentation","src":"1752:87:94","text":" @dev Returns an `BooleanSlot` with member `value` located at `slot`."},"id":22507,"implemented":true,"kind":"function","modifiers":[],"name":"getBooleanSlot","nameLocation":"1853:14:94","nodeType":"FunctionDefinition","parameters":{"id":22500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22499,"mutability":"mutable","name":"slot","nameLocation":"1876:4:94","nodeType":"VariableDeclaration","scope":22507,"src":"1868:12:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":22498,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1868:7:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1867:14:94"},"returnParameters":{"id":22504,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22503,"mutability":"mutable","name":"r","nameLocation":"1925:1:94","nodeType":"VariableDeclaration","scope":22507,"src":"1905:21:94","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$22479_storage_ptr","typeString":"struct StorageSlot.BooleanSlot"},"typeName":{"id":22502,"nodeType":"UserDefinedTypeName","pathNode":{"id":22501,"name":"BooleanSlot","nameLocations":["1905:11:94"],"nodeType":"IdentifierPath","referencedDeclaration":22479,"src":"1905:11:94"},"referencedDeclaration":22479,"src":"1905:11:94","typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$22479_storage_ptr","typeString":"struct StorageSlot.BooleanSlot"}},"visibility":"internal"}],"src":"1904:23:94"},"scope":22530,"src":"1844:147:94","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":22517,"nodeType":"Block","src":"2173:63:94","statements":[{"AST":{"nativeSrc":"2192:38:94","nodeType":"YulBlock","src":"2192:38:94","statements":[{"nativeSrc":"2206:14:94","nodeType":"YulAssignment","src":"2206:14:94","value":{"name":"slot","nativeSrc":"2216:4:94","nodeType":"YulIdentifier","src":"2216:4:94"},"variableNames":[{"name":"r.slot","nativeSrc":"2206:6:94","nodeType":"YulIdentifier","src":"2206:6:94"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":22514,"isOffset":false,"isSlot":true,"src":"2206:6:94","suffix":"slot","valueSize":1},{"declaration":22510,"isOffset":false,"isSlot":false,"src":"2216:4:94","valueSize":1}],"id":22516,"nodeType":"InlineAssembly","src":"2183:47:94"}]},"documentation":{"id":22508,"nodeType":"StructuredDocumentation","src":"1997:87:94","text":" @dev Returns an `Bytes32Slot` with member `value` located at `slot`."},"id":22518,"implemented":true,"kind":"function","modifiers":[],"name":"getBytes32Slot","nameLocation":"2098:14:94","nodeType":"FunctionDefinition","parameters":{"id":22511,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22510,"mutability":"mutable","name":"slot","nameLocation":"2121:4:94","nodeType":"VariableDeclaration","scope":22518,"src":"2113:12:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":22509,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2113:7:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2112:14:94"},"returnParameters":{"id":22515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22514,"mutability":"mutable","name":"r","nameLocation":"2170:1:94","nodeType":"VariableDeclaration","scope":22518,"src":"2150:21:94","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$22482_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot"},"typeName":{"id":22513,"nodeType":"UserDefinedTypeName","pathNode":{"id":22512,"name":"Bytes32Slot","nameLocations":["2150:11:94"],"nodeType":"IdentifierPath","referencedDeclaration":22482,"src":"2150:11:94"},"referencedDeclaration":22482,"src":"2150:11:94","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$22482_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot"}},"visibility":"internal"}],"src":"2149:23:94"},"scope":22530,"src":"2089:147:94","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":22528,"nodeType":"Block","src":"2418:63:94","statements":[{"AST":{"nativeSrc":"2437:38:94","nodeType":"YulBlock","src":"2437:38:94","statements":[{"nativeSrc":"2451:14:94","nodeType":"YulAssignment","src":"2451:14:94","value":{"name":"slot","nativeSrc":"2461:4:94","nodeType":"YulIdentifier","src":"2461:4:94"},"variableNames":[{"name":"r.slot","nativeSrc":"2451:6:94","nodeType":"YulIdentifier","src":"2451:6:94"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":22525,"isOffset":false,"isSlot":true,"src":"2451:6:94","suffix":"slot","valueSize":1},{"declaration":22521,"isOffset":false,"isSlot":false,"src":"2461:4:94","valueSize":1}],"id":22527,"nodeType":"InlineAssembly","src":"2428:47:94"}]},"documentation":{"id":22519,"nodeType":"StructuredDocumentation","src":"2242:87:94","text":" @dev Returns an `Uint256Slot` with member `value` located at `slot`."},"id":22529,"implemented":true,"kind":"function","modifiers":[],"name":"getUint256Slot","nameLocation":"2343:14:94","nodeType":"FunctionDefinition","parameters":{"id":22522,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22521,"mutability":"mutable","name":"slot","nameLocation":"2366:4:94","nodeType":"VariableDeclaration","scope":22529,"src":"2358:12:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":22520,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2358:7:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2357:14:94"},"returnParameters":{"id":22526,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22525,"mutability":"mutable","name":"r","nameLocation":"2415:1:94","nodeType":"VariableDeclaration","scope":22529,"src":"2395:21:94","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$22485_storage_ptr","typeString":"struct StorageSlot.Uint256Slot"},"typeName":{"id":22524,"nodeType":"UserDefinedTypeName","pathNode":{"id":22523,"name":"Uint256Slot","nameLocations":["2395:11:94"],"nodeType":"IdentifierPath","referencedDeclaration":22485,"src":"2395:11:94"},"referencedDeclaration":22485,"src":"2395:11:94","typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$22485_storage_ptr","typeString":"struct StorageSlot.Uint256Slot"}},"visibility":"internal"}],"src":"2394:23:94"},"scope":22530,"src":"2334:147:94","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":22531,"src":"1264:1219:94","usedErrors":[],"usedEvents":[]}],"src":"90:2394:94"},"id":94},"hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol","exportedSymbols":{"Address":[22448],"ERC1967Proxy":[21464],"ERC1967Upgrade":[21782],"IBeacon":[21844],"IERC1822Proxiable":[21411],"OptimizedTransparentUpgradeableProxy":[22705],"Proxy":[21834],"StorageSlot":[22530]},"id":22706,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":22532,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"118:23:95"},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol","file":"../openzeppelin/proxy/ERC1967/ERC1967Proxy.sol","id":22533,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22706,"sourceUnit":21465,"src":"143:56:95","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":22535,"name":"ERC1967Proxy","nameLocations":["1702:12:95"],"nodeType":"IdentifierPath","referencedDeclaration":21464,"src":"1702:12:95"},"id":22536,"nodeType":"InheritanceSpecifier","src":"1702:12:95"}],"canonicalName":"OptimizedTransparentUpgradeableProxy","contractDependencies":[],"contractKind":"contract","documentation":{"id":22534,"nodeType":"StructuredDocumentation","src":"201:1451:95","text":" @dev This contract implements a proxy that is upgradeable by an admin.\n To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector\n clashing], which can potentially be used in an attack, this contract uses the\n https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two\n things that go hand in hand:\n 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if\n that call matches one of the admin functions exposed by the proxy itself.\n 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the\n implementation. If the admin tries to call a function on the implementation it will fail with an error that says\n \"admin cannot fallback to proxy target\".\n These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing\n the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due\n to sudden errors when trying to call a function from the proxy implementation.\n Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way,\n you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy."},"fullyImplemented":true,"id":22705,"linearizedBaseContracts":[22705,21464,21782,21834],"name":"OptimizedTransparentUpgradeableProxy","nameLocation":"1662:36:95","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":22538,"mutability":"immutable","name":"_ADMIN","nameLocation":"1748:6:95","nodeType":"VariableDeclaration","scope":22705,"src":"1721:33:95","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22537,"name":"address","nodeType":"ElementaryTypeName","src":"1721:7:95","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"body":{"id":22585,"nodeType":"Block","src":"2106:369:95","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":22565,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":22553,"name":"_ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21622,"src":"2123:11:95","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22563,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"hexValue":"656970313936372e70726f78792e61646d696e","id":22559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2164:21:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6104","typeString":"literal_string \"eip1967.proxy.admin\""},"value":"eip1967.proxy.admin"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6104","typeString":"literal_string \"eip1967.proxy.admin\""}],"id":22558,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2154:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":22560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2154:32:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":22557,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2146:7:95","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":22556,"name":"uint256","nodeType":"ElementaryTypeName","src":"2146:7:95","typeDescriptions":{}}},"id":22561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2146:41:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":22562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2190:1:95","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2146:45:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22555,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2138:7:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":22554,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2138:7:95","typeDescriptions":{}}},"id":22564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2138:54:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2123:69:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":22552,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"2116:6:95","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":22566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2116:77:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22567,"nodeType":"ExpressionStatement","src":"2116:77:95"},{"expression":{"id":22570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":22568,"name":"_ADMIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22538,"src":"2203:6:95","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":22569,"name":"admin_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22543,"src":"2212:6:95","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2203:15:95","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":22571,"nodeType":"ExpressionStatement","src":"2203:15:95"},{"assignments":[22573],"declarations":[{"constant":false,"id":22573,"mutability":"mutable","name":"slot","nameLocation":"2285:4:95","nodeType":"VariableDeclaration","scope":22585,"src":"2277:12:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":22572,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2277:7:95","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":22575,"initialValue":{"id":22574,"name":"_ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21622,"src":"2292:11:95","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2277:26:95"},{"AST":{"nativeSrc":"2378:44:95","nodeType":"YulBlock","src":"2378:44:95","statements":[{"expression":{"arguments":[{"name":"slot","nativeSrc":"2399:4:95","nodeType":"YulIdentifier","src":"2399:4:95"},{"name":"admin_","nativeSrc":"2405:6:95","nodeType":"YulIdentifier","src":"2405:6:95"}],"functionName":{"name":"sstore","nativeSrc":"2392:6:95","nodeType":"YulIdentifier","src":"2392:6:95"},"nativeSrc":"2392:20:95","nodeType":"YulFunctionCall","src":"2392:20:95"},"nativeSrc":"2392:20:95","nodeType":"YulExpressionStatement","src":"2392:20:95"}]},"evmVersion":"paris","externalReferences":[{"declaration":22543,"isOffset":false,"isSlot":false,"src":"2405:6:95","valueSize":1},{"declaration":22573,"isOffset":false,"isSlot":false,"src":"2399:4:95","valueSize":1}],"id":22576,"nodeType":"InlineAssembly","src":"2369:53:95"},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":22580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2457:1:95","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":22579,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2449:7:95","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":22578,"name":"address","nodeType":"ElementaryTypeName","src":"2449:7:95","typeDescriptions":{}}},"id":22581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2449:10:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22582,"name":"admin_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22543,"src":"2461:6:95","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":22577,"name":"AdminChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21629,"src":"2436:12:95","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":22583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2436:32:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22584,"nodeType":"EmitStatement","src":"2431:37:95"}]},"documentation":{"id":22539,"nodeType":"StructuredDocumentation","src":"1761:210:95","text":" @dev Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and\n optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}."},"id":22586,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":22548,"name":"_logic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22541,"src":"2091:6:95","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22549,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22545,"src":"2099:5:95","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":22550,"kind":"baseConstructorSpecifier","modifierName":{"id":22547,"name":"ERC1967Proxy","nameLocations":["2078:12:95"],"nodeType":"IdentifierPath","referencedDeclaration":21464,"src":"2078:12:95"},"nodeType":"ModifierInvocation","src":"2078:27:95"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":22546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22541,"mutability":"mutable","name":"_logic","nameLocation":"2005:6:95","nodeType":"VariableDeclaration","scope":22586,"src":"1997:14:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22540,"name":"address","nodeType":"ElementaryTypeName","src":"1997:7:95","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22543,"mutability":"mutable","name":"admin_","nameLocation":"2029:6:95","nodeType":"VariableDeclaration","scope":22586,"src":"2021:14:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22542,"name":"address","nodeType":"ElementaryTypeName","src":"2021:7:95","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22545,"mutability":"mutable","name":"_data","nameLocation":"2058:5:95","nodeType":"VariableDeclaration","scope":22586,"src":"2045:18:95","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":22544,"name":"bytes","nodeType":"ElementaryTypeName","src":"2045:5:95","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1987:82:95"},"returnParameters":{"id":22551,"nodeType":"ParameterList","parameters":[],"src":"2106:0:95"},"scope":22705,"src":"1976:499:95","stateMutability":"payable","virtual":false,"visibility":"public"},{"body":{"id":22601,"nodeType":"Block","src":"2635:115:95","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":22593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":22589,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2649:3:95","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":22590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2653:6:95","memberName":"sender","nodeType":"MemberAccess","src":"2649:10:95","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":22591,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[22704],"referencedDeclaration":22704,"src":"2663:9:95","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":22592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2663:11:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2649:25:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":22599,"nodeType":"Block","src":"2708:36:95","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":22596,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21812,"src":"2722:9:95","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":22597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2722:11:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22598,"nodeType":"ExpressionStatement","src":"2722:11:95"}]},"id":22600,"nodeType":"IfStatement","src":"2645:99:95","trueBody":{"id":22595,"nodeType":"Block","src":"2676:26:95","statements":[{"id":22594,"nodeType":"PlaceholderStatement","src":"2690:1:95"}]}}]},"documentation":{"id":22587,"nodeType":"StructuredDocumentation","src":"2481:130:95","text":" @dev Modifier used internally that will delegate the call to the implementation unless the sender is the admin."},"id":22602,"name":"ifAdmin","nameLocation":"2625:7:95","nodeType":"ModifierDefinition","parameters":{"id":22588,"nodeType":"ParameterList","parameters":[],"src":"2632:2:95"},"src":"2616:134:95","virtual":false,"visibility":"internal"},{"body":{"id":22615,"nodeType":"Block","src":"3251:37:95","statements":[{"expression":{"id":22613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":22610,"name":"admin_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22608,"src":"3261:6:95","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":22611,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[22704],"referencedDeclaration":22704,"src":"3270:9:95","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":22612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3270:11:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3261:20:95","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":22614,"nodeType":"ExpressionStatement","src":"3261:20:95"}]},"documentation":{"id":22603,"nodeType":"StructuredDocumentation","src":"2756:431:95","text":" @dev Returns the current admin.\n NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}.\n TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\n https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`"},"functionSelector":"f851a440","id":22616,"implemented":true,"kind":"function","modifiers":[{"id":22606,"kind":"modifierInvocation","modifierName":{"id":22605,"name":"ifAdmin","nameLocations":["3218:7:95"],"nodeType":"IdentifierPath","referencedDeclaration":22602,"src":"3218:7:95"},"nodeType":"ModifierInvocation","src":"3218:7:95"}],"name":"admin","nameLocation":"3201:5:95","nodeType":"FunctionDefinition","parameters":{"id":22604,"nodeType":"ParameterList","parameters":[],"src":"3206:2:95"},"returnParameters":{"id":22609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22608,"mutability":"mutable","name":"admin_","nameLocation":"3243:6:95","nodeType":"VariableDeclaration","scope":22616,"src":"3235:14:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22607,"name":"address","nodeType":"ElementaryTypeName","src":"3235:7:95","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3234:16:95"},"scope":22705,"src":"3192:96:95","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":22629,"nodeType":"Block","src":"3825:52:95","statements":[{"expression":{"id":22627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":22624,"name":"implementation_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22622,"src":"3835:15:95","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":22625,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[21463],"referencedDeclaration":21463,"src":"3853:15:95","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":22626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3853:17:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3835:35:95","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":22628,"nodeType":"ExpressionStatement","src":"3835:35:95"}]},"documentation":{"id":22617,"nodeType":"StructuredDocumentation","src":"3294:449:95","text":" @dev Returns the current implementation.\n NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}.\n TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\n https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`"},"functionSelector":"5c60da1b","id":22630,"implemented":true,"kind":"function","modifiers":[{"id":22620,"kind":"modifierInvocation","modifierName":{"id":22619,"name":"ifAdmin","nameLocations":["3783:7:95"],"nodeType":"IdentifierPath","referencedDeclaration":22602,"src":"3783:7:95"},"nodeType":"ModifierInvocation","src":"3783:7:95"}],"name":"implementation","nameLocation":"3757:14:95","nodeType":"FunctionDefinition","parameters":{"id":22618,"nodeType":"ParameterList","parameters":[],"src":"3771:2:95"},"returnParameters":{"id":22623,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22622,"mutability":"mutable","name":"implementation_","nameLocation":"3808:15:95","nodeType":"VariableDeclaration","scope":22630,"src":"3800:23:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22621,"name":"address","nodeType":"ElementaryTypeName","src":"3800:7:95","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3799:25:95"},"scope":22705,"src":"3748:129:95","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":22647,"nodeType":"Block","src":"4100:71:95","statements":[{"expression":{"arguments":[{"id":22639,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22633,"src":"4128:17:95","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"","id":22642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4153:2:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":22641,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4147:5:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":22640,"name":"bytes","nodeType":"ElementaryTypeName","src":"4147:5:95","typeDescriptions":{}}},"id":22643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4147:9:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"66616c7365","id":22644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4158:5:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":22638,"name":"_upgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21565,"src":"4110:17:95","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,bool)"}},"id":22645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4110:54:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22646,"nodeType":"ExpressionStatement","src":"4110:54:95"}]},"documentation":{"id":22631,"nodeType":"StructuredDocumentation","src":"3883:149:95","text":" @dev Upgrade the implementation of the proxy.\n NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}."},"functionSelector":"3659cfe6","id":22648,"implemented":true,"kind":"function","modifiers":[{"id":22636,"kind":"modifierInvocation","modifierName":{"id":22635,"name":"ifAdmin","nameLocations":["4092:7:95"],"nodeType":"IdentifierPath","referencedDeclaration":22602,"src":"4092:7:95"},"nodeType":"ModifierInvocation","src":"4092:7:95"}],"name":"upgradeTo","nameLocation":"4046:9:95","nodeType":"FunctionDefinition","parameters":{"id":22634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22633,"mutability":"mutable","name":"newImplementation","nameLocation":"4064:17:95","nodeType":"VariableDeclaration","scope":22648,"src":"4056:25:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22632,"name":"address","nodeType":"ElementaryTypeName","src":"4056:7:95","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4055:27:95"},"returnParameters":{"id":22637,"nodeType":"ParameterList","parameters":[],"src":"4100:0:95"},"scope":22705,"src":"4037:134:95","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":22664,"nodeType":"Block","src":"4646:65:95","statements":[{"expression":{"arguments":[{"id":22659,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22651,"src":"4674:17:95","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22660,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22653,"src":"4693:4:95","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"hexValue":"74727565","id":22661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4699:4:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":22658,"name":"_upgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21565,"src":"4656:17:95","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,bool)"}},"id":22662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4656:48:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22663,"nodeType":"ExpressionStatement","src":"4656:48:95"}]},"documentation":{"id":22649,"nodeType":"StructuredDocumentation","src":"4177:365:95","text":" @dev Upgrade the implementation of the proxy, and then call a function from the new implementation as specified\n by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the\n proxied contract.\n NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}."},"functionSelector":"4f1ef286","id":22665,"implemented":true,"kind":"function","modifiers":[{"id":22656,"kind":"modifierInvocation","modifierName":{"id":22655,"name":"ifAdmin","nameLocations":["4638:7:95"],"nodeType":"IdentifierPath","referencedDeclaration":22602,"src":"4638:7:95"},"nodeType":"ModifierInvocation","src":"4638:7:95"}],"name":"upgradeToAndCall","nameLocation":"4556:16:95","nodeType":"FunctionDefinition","parameters":{"id":22654,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22651,"mutability":"mutable","name":"newImplementation","nameLocation":"4581:17:95","nodeType":"VariableDeclaration","scope":22665,"src":"4573:25:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22650,"name":"address","nodeType":"ElementaryTypeName","src":"4573:7:95","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22653,"mutability":"mutable","name":"data","nameLocation":"4615:4:95","nodeType":"VariableDeclaration","scope":22665,"src":"4600:19:95","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":22652,"name":"bytes","nodeType":"ElementaryTypeName","src":"4600:5:95","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4572:48:95"},"returnParameters":{"id":22657,"nodeType":"ParameterList","parameters":[],"src":"4646:0:95"},"scope":22705,"src":"4547:164:95","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":22674,"nodeType":"Block","src":"4830:35:95","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":22671,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[22704],"referencedDeclaration":22704,"src":"4847:9:95","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":22672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4847:11:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":22670,"id":22673,"nodeType":"Return","src":"4840:18:95"}]},"documentation":{"id":22666,"nodeType":"StructuredDocumentation","src":"4717:50:95","text":" @dev Returns the current admin."},"id":22675,"implemented":true,"kind":"function","modifiers":[],"name":"_admin","nameLocation":"4781:6:95","nodeType":"FunctionDefinition","parameters":{"id":22667,"nodeType":"ParameterList","parameters":[],"src":"4787:2:95"},"returnParameters":{"id":22670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22669,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22675,"src":"4821:7:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22668,"name":"address","nodeType":"ElementaryTypeName","src":"4821:7:95","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4820:9:95"},"scope":22705,"src":"4772:93:95","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[21833],"body":{"id":22694,"nodeType":"Block","src":"5039:154:95","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":22685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":22681,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5057:3:95","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":22682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5061:6:95","memberName":"sender","nodeType":"MemberAccess","src":"5057:10:95","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":22683,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[22704],"referencedDeclaration":22704,"src":"5071:9:95","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":22684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5071:11:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5057:25:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5472616e73706172656e745570677261646561626c6550726f78793a2061646d696e2063616e6e6f742066616c6c6261636b20746f2070726f787920746172676574","id":22686,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5084:68:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d","typeString":"literal_string \"TransparentUpgradeableProxy: admin cannot fallback to proxy target\""},"value":"TransparentUpgradeableProxy: admin cannot fallback to proxy target"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d","typeString":"literal_string \"TransparentUpgradeableProxy: admin cannot fallback to proxy target\""}],"id":22680,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5049:7:95","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5049:104:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22688,"nodeType":"ExpressionStatement","src":"5049:104:95"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":22689,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"5163:5:95","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_OptimizedTransparentUpgradeableProxy_$22705_$","typeString":"type(contract super OptimizedTransparentUpgradeableProxy)"}},"id":22691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5169:15:95","memberName":"_beforeFallback","nodeType":"MemberAccess","referencedDeclaration":21833,"src":"5163:21:95","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":22692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5163:23:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22693,"nodeType":"ExpressionStatement","src":"5163:23:95"}]},"documentation":{"id":22676,"nodeType":"StructuredDocumentation","src":"4871:110:95","text":" @dev Makes sure the admin cannot access the fallback function. See {Proxy-_beforeFallback}."},"id":22695,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeFallback","nameLocation":"4995:15:95","nodeType":"FunctionDefinition","overrides":{"id":22678,"nodeType":"OverrideSpecifier","overrides":[],"src":"5030:8:95"},"parameters":{"id":22677,"nodeType":"ParameterList","parameters":[],"src":"5010:2:95"},"returnParameters":{"id":22679,"nodeType":"ParameterList","parameters":[],"src":"5039:0:95"},"scope":22705,"src":"4986:207:95","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[21642],"body":{"id":22703,"nodeType":"Block","src":"5269:30:95","statements":[{"expression":{"id":22701,"name":"_ADMIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22538,"src":"5286:6:95","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":22700,"id":22702,"nodeType":"Return","src":"5279:13:95"}]},"id":22704,"implemented":true,"kind":"function","modifiers":[],"name":"_getAdmin","nameLocation":"5208:9:95","nodeType":"FunctionDefinition","overrides":{"id":22697,"nodeType":"OverrideSpecifier","overrides":[],"src":"5242:8:95"},"parameters":{"id":22696,"nodeType":"ParameterList","parameters":[],"src":"5217:2:95"},"returnParameters":{"id":22700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22699,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22704,"src":"5260:7:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22698,"name":"address","nodeType":"ElementaryTypeName","src":"5260:7:95","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5259:9:95"},"scope":22705,"src":"5199:100:95","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":22706,"src":"1653:3648:95","usedErrors":[],"usedEvents":[21483,21629,21694]}],"src":"118:5184:95"},"id":95},"solidity-bytes-utils/contracts/BytesLib.sol":{"ast":{"absolutePath":"solidity-bytes-utils/contracts/BytesLib.sol","exportedSymbols":{"BytesLib":[23039]},"id":23040,"license":"Unlicense","nodeType":"SourceUnit","nodes":[{"id":22707,"literals":["solidity",">=","0.8",".0","<","0.9",".0"],"nodeType":"PragmaDirective","src":"336:31:96"},{"abstract":false,"baseContracts":[],"canonicalName":"BytesLib","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":23039,"linearizedBaseContracts":[23039],"name":"BytesLib","nameLocation":"378:8:96","nodeType":"ContractDefinition","nodes":[{"body":{"id":22722,"nodeType":"Block","src":"545:2803:96","statements":[{"assignments":[22717],"declarations":[{"constant":false,"id":22717,"mutability":"mutable","name":"tempBytes","nameLocation":"568:9:96","nodeType":"VariableDeclaration","scope":22722,"src":"555:22:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":22716,"name":"bytes","nodeType":"ElementaryTypeName","src":"555:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":22718,"nodeType":"VariableDeclarationStatement","src":"555:22:96"},{"AST":{"nativeSrc":"597:2718:96","nodeType":"YulBlock","src":"597:2718:96","statements":[{"nativeSrc":"741:24:96","nodeType":"YulAssignment","src":"741:24:96","value":{"arguments":[{"kind":"number","nativeSrc":"760:4:96","nodeType":"YulLiteral","src":"760:4:96","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"754:5:96","nodeType":"YulIdentifier","src":"754:5:96"},"nativeSrc":"754:11:96","nodeType":"YulFunctionCall","src":"754:11:96"},"variableNames":[{"name":"tempBytes","nativeSrc":"741:9:96","nodeType":"YulIdentifier","src":"741:9:96"}]},{"nativeSrc":"897:30:96","nodeType":"YulVariableDeclaration","src":"897:30:96","value":{"arguments":[{"name":"_preBytes","nativeSrc":"917:9:96","nodeType":"YulIdentifier","src":"917:9:96"}],"functionName":{"name":"mload","nativeSrc":"911:5:96","nodeType":"YulIdentifier","src":"911:5:96"},"nativeSrc":"911:16:96","nodeType":"YulFunctionCall","src":"911:16:96"},"variables":[{"name":"length","nativeSrc":"901:6:96","nodeType":"YulTypedName","src":"901:6:96","type":""}]},{"expression":{"arguments":[{"name":"tempBytes","nativeSrc":"947:9:96","nodeType":"YulIdentifier","src":"947:9:96"},{"name":"length","nativeSrc":"958:6:96","nodeType":"YulIdentifier","src":"958:6:96"}],"functionName":{"name":"mstore","nativeSrc":"940:6:96","nodeType":"YulIdentifier","src":"940:6:96"},"nativeSrc":"940:25:96","nodeType":"YulFunctionCall","src":"940:25:96"},"nativeSrc":"940:25:96","nodeType":"YulExpressionStatement","src":"940:25:96"},{"nativeSrc":"1175:30:96","nodeType":"YulVariableDeclaration","src":"1175:30:96","value":{"arguments":[{"name":"tempBytes","nativeSrc":"1189:9:96","nodeType":"YulIdentifier","src":"1189:9:96"},{"kind":"number","nativeSrc":"1200:4:96","nodeType":"YulLiteral","src":"1200:4:96","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1185:3:96","nodeType":"YulIdentifier","src":"1185:3:96"},"nativeSrc":"1185:20:96","nodeType":"YulFunctionCall","src":"1185:20:96"},"variables":[{"name":"mc","nativeSrc":"1179:2:96","nodeType":"YulTypedName","src":"1179:2:96","type":""}]},{"nativeSrc":"1330:26:96","nodeType":"YulVariableDeclaration","src":"1330:26:96","value":{"arguments":[{"name":"mc","nativeSrc":"1345:2:96","nodeType":"YulIdentifier","src":"1345:2:96"},{"name":"length","nativeSrc":"1349:6:96","nodeType":"YulIdentifier","src":"1349:6:96"}],"functionName":{"name":"add","nativeSrc":"1341:3:96","nodeType":"YulIdentifier","src":"1341:3:96"},"nativeSrc":"1341:15:96","nodeType":"YulFunctionCall","src":"1341:15:96"},"variables":[{"name":"end","nativeSrc":"1334:3:96","nodeType":"YulTypedName","src":"1334:3:96","type":""}]},{"body":{"nativeSrc":"1733:162:96","nodeType":"YulBlock","src":"1733:162:96","statements":[{"expression":{"arguments":[{"name":"mc","nativeSrc":"1867:2:96","nodeType":"YulIdentifier","src":"1867:2:96"},{"arguments":[{"name":"cc","nativeSrc":"1877:2:96","nodeType":"YulIdentifier","src":"1877:2:96"}],"functionName":{"name":"mload","nativeSrc":"1871:5:96","nodeType":"YulIdentifier","src":"1871:5:96"},"nativeSrc":"1871:9:96","nodeType":"YulFunctionCall","src":"1871:9:96"}],"functionName":{"name":"mstore","nativeSrc":"1860:6:96","nodeType":"YulIdentifier","src":"1860:6:96"},"nativeSrc":"1860:21:96","nodeType":"YulFunctionCall","src":"1860:21:96"},"nativeSrc":"1860:21:96","nodeType":"YulExpressionStatement","src":"1860:21:96"}]},"condition":{"arguments":[{"name":"mc","nativeSrc":"1566:2:96","nodeType":"YulIdentifier","src":"1566:2:96"},{"name":"end","nativeSrc":"1570:3:96","nodeType":"YulIdentifier","src":"1570:3:96"}],"functionName":{"name":"lt","nativeSrc":"1563:2:96","nodeType":"YulIdentifier","src":"1563:2:96"},"nativeSrc":"1563:11:96","nodeType":"YulFunctionCall","src":"1563:11:96"},"nativeSrc":"1370:525:96","nodeType":"YulForLoop","post":{"nativeSrc":"1575:157:96","nodeType":"YulBlock","src":"1575:157:96","statements":[{"nativeSrc":"1663:19:96","nodeType":"YulAssignment","src":"1663:19:96","value":{"arguments":[{"name":"mc","nativeSrc":"1673:2:96","nodeType":"YulIdentifier","src":"1673:2:96"},{"kind":"number","nativeSrc":"1677:4:96","nodeType":"YulLiteral","src":"1677:4:96","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1669:3:96","nodeType":"YulIdentifier","src":"1669:3:96"},"nativeSrc":"1669:13:96","nodeType":"YulFunctionCall","src":"1669:13:96"},"variableNames":[{"name":"mc","nativeSrc":"1663:2:96","nodeType":"YulIdentifier","src":"1663:2:96"}]},{"nativeSrc":"1699:19:96","nodeType":"YulAssignment","src":"1699:19:96","value":{"arguments":[{"name":"cc","nativeSrc":"1709:2:96","nodeType":"YulIdentifier","src":"1709:2:96"},{"kind":"number","nativeSrc":"1713:4:96","nodeType":"YulLiteral","src":"1713:4:96","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1705:3:96","nodeType":"YulIdentifier","src":"1705:3:96"},"nativeSrc":"1705:13:96","nodeType":"YulFunctionCall","src":"1705:13:96"},"variableNames":[{"name":"cc","nativeSrc":"1699:2:96","nodeType":"YulIdentifier","src":"1699:2:96"}]}]},"pre":{"nativeSrc":"1374:188:96","nodeType":"YulBlock","src":"1374:188:96","statements":[{"nativeSrc":"1518:30:96","nodeType":"YulVariableDeclaration","src":"1518:30:96","value":{"arguments":[{"name":"_preBytes","nativeSrc":"1532:9:96","nodeType":"YulIdentifier","src":"1532:9:96"},{"kind":"number","nativeSrc":"1543:4:96","nodeType":"YulLiteral","src":"1543:4:96","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1528:3:96","nodeType":"YulIdentifier","src":"1528:3:96"},"nativeSrc":"1528:20:96","nodeType":"YulFunctionCall","src":"1528:20:96"},"variables":[{"name":"cc","nativeSrc":"1522:2:96","nodeType":"YulTypedName","src":"1522:2:96","type":""}]}]},"src":"1370:525:96"},{"nativeSrc":"2096:27:96","nodeType":"YulAssignment","src":"2096:27:96","value":{"arguments":[{"name":"_postBytes","nativeSrc":"2112:10:96","nodeType":"YulIdentifier","src":"2112:10:96"}],"functionName":{"name":"mload","nativeSrc":"2106:5:96","nodeType":"YulIdentifier","src":"2106:5:96"},"nativeSrc":"2106:17:96","nodeType":"YulFunctionCall","src":"2106:17:96"},"variableNames":[{"name":"length","nativeSrc":"2096:6:96","nodeType":"YulIdentifier","src":"2096:6:96"}]},{"expression":{"arguments":[{"name":"tempBytes","nativeSrc":"2143:9:96","nodeType":"YulIdentifier","src":"2143:9:96"},{"arguments":[{"name":"length","nativeSrc":"2158:6:96","nodeType":"YulIdentifier","src":"2158:6:96"},{"arguments":[{"name":"tempBytes","nativeSrc":"2172:9:96","nodeType":"YulIdentifier","src":"2172:9:96"}],"functionName":{"name":"mload","nativeSrc":"2166:5:96","nodeType":"YulIdentifier","src":"2166:5:96"},"nativeSrc":"2166:16:96","nodeType":"YulFunctionCall","src":"2166:16:96"}],"functionName":{"name":"add","nativeSrc":"2154:3:96","nodeType":"YulIdentifier","src":"2154:3:96"},"nativeSrc":"2154:29:96","nodeType":"YulFunctionCall","src":"2154:29:96"}],"functionName":{"name":"mstore","nativeSrc":"2136:6:96","nodeType":"YulIdentifier","src":"2136:6:96"},"nativeSrc":"2136:48:96","nodeType":"YulFunctionCall","src":"2136:48:96"},"nativeSrc":"2136:48:96","nodeType":"YulExpressionStatement","src":"2136:48:96"},{"nativeSrc":"2322:9:96","nodeType":"YulAssignment","src":"2322:9:96","value":{"name":"end","nativeSrc":"2328:3:96","nodeType":"YulIdentifier","src":"2328:3:96"},"variableNames":[{"name":"mc","nativeSrc":"2322:2:96","nodeType":"YulIdentifier","src":"2322:2:96"}]},{"nativeSrc":"2458:22:96","nodeType":"YulAssignment","src":"2458:22:96","value":{"arguments":[{"name":"mc","nativeSrc":"2469:2:96","nodeType":"YulIdentifier","src":"2469:2:96"},{"name":"length","nativeSrc":"2473:6:96","nodeType":"YulIdentifier","src":"2473:6:96"}],"functionName":{"name":"add","nativeSrc":"2465:3:96","nodeType":"YulIdentifier","src":"2465:3:96"},"nativeSrc":"2465:15:96","nodeType":"YulFunctionCall","src":"2465:15:96"},"variableNames":[{"name":"end","nativeSrc":"2458:3:96","nodeType":"YulIdentifier","src":"2458:3:96"}]},{"body":{"nativeSrc":"2662:53:96","nodeType":"YulBlock","src":"2662:53:96","statements":[{"expression":{"arguments":[{"name":"mc","nativeSrc":"2687:2:96","nodeType":"YulIdentifier","src":"2687:2:96"},{"arguments":[{"name":"cc","nativeSrc":"2697:2:96","nodeType":"YulIdentifier","src":"2697:2:96"}],"functionName":{"name":"mload","nativeSrc":"2691:5:96","nodeType":"YulIdentifier","src":"2691:5:96"},"nativeSrc":"2691:9:96","nodeType":"YulFunctionCall","src":"2691:9:96"}],"functionName":{"name":"mstore","nativeSrc":"2680:6:96","nodeType":"YulIdentifier","src":"2680:6:96"},"nativeSrc":"2680:21:96","nodeType":"YulFunctionCall","src":"2680:21:96"},"nativeSrc":"2680:21:96","nodeType":"YulExpressionStatement","src":"2680:21:96"}]},"condition":{"arguments":[{"name":"mc","nativeSrc":"2565:2:96","nodeType":"YulIdentifier","src":"2565:2:96"},{"name":"end","nativeSrc":"2569:3:96","nodeType":"YulIdentifier","src":"2569:3:96"}],"functionName":{"name":"lt","nativeSrc":"2562:2:96","nodeType":"YulIdentifier","src":"2562:2:96"},"nativeSrc":"2562:11:96","nodeType":"YulFunctionCall","src":"2562:11:96"},"nativeSrc":"2494:221:96","nodeType":"YulForLoop","post":{"nativeSrc":"2574:87:96","nodeType":"YulBlock","src":"2574:87:96","statements":[{"nativeSrc":"2592:19:96","nodeType":"YulAssignment","src":"2592:19:96","value":{"arguments":[{"name":"mc","nativeSrc":"2602:2:96","nodeType":"YulIdentifier","src":"2602:2:96"},{"kind":"number","nativeSrc":"2606:4:96","nodeType":"YulLiteral","src":"2606:4:96","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2598:3:96","nodeType":"YulIdentifier","src":"2598:3:96"},"nativeSrc":"2598:13:96","nodeType":"YulFunctionCall","src":"2598:13:96"},"variableNames":[{"name":"mc","nativeSrc":"2592:2:96","nodeType":"YulIdentifier","src":"2592:2:96"}]},{"nativeSrc":"2628:19:96","nodeType":"YulAssignment","src":"2628:19:96","value":{"arguments":[{"name":"cc","nativeSrc":"2638:2:96","nodeType":"YulIdentifier","src":"2638:2:96"},{"kind":"number","nativeSrc":"2642:4:96","nodeType":"YulLiteral","src":"2642:4:96","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2634:3:96","nodeType":"YulIdentifier","src":"2634:3:96"},"nativeSrc":"2634:13:96","nodeType":"YulFunctionCall","src":"2634:13:96"},"variableNames":[{"name":"cc","nativeSrc":"2628:2:96","nodeType":"YulIdentifier","src":"2628:2:96"}]}]},"pre":{"nativeSrc":"2498:63:96","nodeType":"YulBlock","src":"2498:63:96","statements":[{"nativeSrc":"2516:31:96","nodeType":"YulVariableDeclaration","src":"2516:31:96","value":{"arguments":[{"name":"_postBytes","nativeSrc":"2530:10:96","nodeType":"YulIdentifier","src":"2530:10:96"},{"kind":"number","nativeSrc":"2542:4:96","nodeType":"YulLiteral","src":"2542:4:96","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2526:3:96","nodeType":"YulIdentifier","src":"2526:3:96"},"nativeSrc":"2526:21:96","nodeType":"YulFunctionCall","src":"2526:21:96"},"variables":[{"name":"cc","nativeSrc":"2520:2:96","nodeType":"YulTypedName","src":"2520:2:96","type":""}]}]},"src":"2494:221:96"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3147:4:96","nodeType":"YulLiteral","src":"3147:4:96","type":"","value":"0x40"},{"arguments":[{"arguments":[{"arguments":[{"name":"end","nativeSrc":"3180:3:96","nodeType":"YulIdentifier","src":"3180:3:96"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"3196:6:96","nodeType":"YulIdentifier","src":"3196:6:96"},{"arguments":[{"name":"_preBytes","nativeSrc":"3210:9:96","nodeType":"YulIdentifier","src":"3210:9:96"}],"functionName":{"name":"mload","nativeSrc":"3204:5:96","nodeType":"YulIdentifier","src":"3204:5:96"},"nativeSrc":"3204:16:96","nodeType":"YulFunctionCall","src":"3204:16:96"}],"functionName":{"name":"add","nativeSrc":"3192:3:96","nodeType":"YulIdentifier","src":"3192:3:96"},"nativeSrc":"3192:29:96","nodeType":"YulFunctionCall","src":"3192:29:96"}],"functionName":{"name":"iszero","nativeSrc":"3185:6:96","nodeType":"YulIdentifier","src":"3185:6:96"},"nativeSrc":"3185:37:96","nodeType":"YulFunctionCall","src":"3185:37:96"}],"functionName":{"name":"add","nativeSrc":"3176:3:96","nodeType":"YulIdentifier","src":"3176:3:96"},"nativeSrc":"3176:47:96","nodeType":"YulFunctionCall","src":"3176:47:96"},{"kind":"number","nativeSrc":"3225:2:96","nodeType":"YulLiteral","src":"3225:2:96","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"3172:3:96","nodeType":"YulIdentifier","src":"3172:3:96"},"nativeSrc":"3172:56:96","nodeType":"YulFunctionCall","src":"3172:56:96"},{"arguments":[{"kind":"number","nativeSrc":"3248:2:96","nodeType":"YulLiteral","src":"3248:2:96","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"3244:3:96","nodeType":"YulIdentifier","src":"3244:3:96"},"nativeSrc":"3244:7:96","nodeType":"YulFunctionCall","src":"3244:7:96"}],"functionName":{"name":"and","nativeSrc":"3153:3:96","nodeType":"YulIdentifier","src":"3153:3:96"},"nativeSrc":"3153:151:96","nodeType":"YulFunctionCall","src":"3153:151:96"}],"functionName":{"name":"mstore","nativeSrc":"3140:6:96","nodeType":"YulIdentifier","src":"3140:6:96"},"nativeSrc":"3140:165:96","nodeType":"YulFunctionCall","src":"3140:165:96"},"nativeSrc":"3140:165:96","nodeType":"YulExpressionStatement","src":"3140:165:96"}]},"evmVersion":"paris","externalReferences":[{"declaration":22711,"isOffset":false,"isSlot":false,"src":"2112:10:96","valueSize":1},{"declaration":22711,"isOffset":false,"isSlot":false,"src":"2530:10:96","valueSize":1},{"declaration":22709,"isOffset":false,"isSlot":false,"src":"1532:9:96","valueSize":1},{"declaration":22709,"isOffset":false,"isSlot":false,"src":"3210:9:96","valueSize":1},{"declaration":22709,"isOffset":false,"isSlot":false,"src":"917:9:96","valueSize":1},{"declaration":22717,"isOffset":false,"isSlot":false,"src":"1189:9:96","valueSize":1},{"declaration":22717,"isOffset":false,"isSlot":false,"src":"2143:9:96","valueSize":1},{"declaration":22717,"isOffset":false,"isSlot":false,"src":"2172:9:96","valueSize":1},{"declaration":22717,"isOffset":false,"isSlot":false,"src":"741:9:96","valueSize":1},{"declaration":22717,"isOffset":false,"isSlot":false,"src":"947:9:96","valueSize":1}],"id":22719,"nodeType":"InlineAssembly","src":"588:2727:96"},{"expression":{"id":22720,"name":"tempBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22717,"src":"3332:9:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":22715,"id":22721,"nodeType":"Return","src":"3325:16:96"}]},"id":22723,"implemented":true,"kind":"function","modifiers":[],"name":"concat","nameLocation":"402:6:96","nodeType":"FunctionDefinition","parameters":{"id":22712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22709,"mutability":"mutable","name":"_preBytes","nameLocation":"431:9:96","nodeType":"VariableDeclaration","scope":22723,"src":"418:22:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":22708,"name":"bytes","nodeType":"ElementaryTypeName","src":"418:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":22711,"mutability":"mutable","name":"_postBytes","nameLocation":"463:10:96","nodeType":"VariableDeclaration","scope":22723,"src":"450:23:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":22710,"name":"bytes","nodeType":"ElementaryTypeName","src":"450:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"408:71:96"},"returnParameters":{"id":22715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22714,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22723,"src":"527:12:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":22713,"name":"bytes","nodeType":"ElementaryTypeName","src":"527:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"526:14:96"},"scope":23039,"src":"393:2955:96","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":22731,"nodeType":"Block","src":"3436:6015:96","statements":[{"AST":{"nativeSrc":"3455:5990:96","nodeType":"YulBlock","src":"3455:5990:96","statements":[{"nativeSrc":"3678:34:96","nodeType":"YulVariableDeclaration","src":"3678:34:96","value":{"arguments":[{"name":"_preBytes.slot","nativeSrc":"3697:14:96","nodeType":"YulIdentifier","src":"3697:14:96"}],"functionName":{"name":"sload","nativeSrc":"3691:5:96","nodeType":"YulIdentifier","src":"3691:5:96"},"nativeSrc":"3691:21:96","nodeType":"YulFunctionCall","src":"3691:21:96"},"variables":[{"name":"fslot","nativeSrc":"3682:5:96","nodeType":"YulTypedName","src":"3682:5:96","type":""}]},{"nativeSrc":"4205:76:96","nodeType":"YulVariableDeclaration","src":"4205:76:96","value":{"arguments":[{"arguments":[{"name":"fslot","nativeSrc":"4228:5:96","nodeType":"YulIdentifier","src":"4228:5:96"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"4243:5:96","nodeType":"YulLiteral","src":"4243:5:96","type":"","value":"0x100"},{"arguments":[{"arguments":[{"name":"fslot","nativeSrc":"4261:5:96","nodeType":"YulIdentifier","src":"4261:5:96"},{"kind":"number","nativeSrc":"4268:1:96","nodeType":"YulLiteral","src":"4268:1:96","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"4257:3:96","nodeType":"YulIdentifier","src":"4257:3:96"},"nativeSrc":"4257:13:96","nodeType":"YulFunctionCall","src":"4257:13:96"}],"functionName":{"name":"iszero","nativeSrc":"4250:6:96","nodeType":"YulIdentifier","src":"4250:6:96"},"nativeSrc":"4250:21:96","nodeType":"YulFunctionCall","src":"4250:21:96"}],"functionName":{"name":"mul","nativeSrc":"4239:3:96","nodeType":"YulIdentifier","src":"4239:3:96"},"nativeSrc":"4239:33:96","nodeType":"YulFunctionCall","src":"4239:33:96"},{"kind":"number","nativeSrc":"4274:1:96","nodeType":"YulLiteral","src":"4274:1:96","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"4235:3:96","nodeType":"YulIdentifier","src":"4235:3:96"},"nativeSrc":"4235:41:96","nodeType":"YulFunctionCall","src":"4235:41:96"}],"functionName":{"name":"and","nativeSrc":"4224:3:96","nodeType":"YulIdentifier","src":"4224:3:96"},"nativeSrc":"4224:53:96","nodeType":"YulFunctionCall","src":"4224:53:96"},{"kind":"number","nativeSrc":"4279:1:96","nodeType":"YulLiteral","src":"4279:1:96","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"4220:3:96","nodeType":"YulIdentifier","src":"4220:3:96"},"nativeSrc":"4220:61:96","nodeType":"YulFunctionCall","src":"4220:61:96"},"variables":[{"name":"slength","nativeSrc":"4209:7:96","nodeType":"YulTypedName","src":"4209:7:96","type":""}]},{"nativeSrc":"4294:32:96","nodeType":"YulVariableDeclaration","src":"4294:32:96","value":{"arguments":[{"name":"_postBytes","nativeSrc":"4315:10:96","nodeType":"YulIdentifier","src":"4315:10:96"}],"functionName":{"name":"mload","nativeSrc":"4309:5:96","nodeType":"YulIdentifier","src":"4309:5:96"},"nativeSrc":"4309:17:96","nodeType":"YulFunctionCall","src":"4309:17:96"},"variables":[{"name":"mlength","nativeSrc":"4298:7:96","nodeType":"YulTypedName","src":"4298:7:96","type":""}]},{"nativeSrc":"4339:38:96","nodeType":"YulVariableDeclaration","src":"4339:38:96","value":{"arguments":[{"name":"slength","nativeSrc":"4360:7:96","nodeType":"YulIdentifier","src":"4360:7:96"},{"name":"mlength","nativeSrc":"4369:7:96","nodeType":"YulIdentifier","src":"4369:7:96"}],"functionName":{"name":"add","nativeSrc":"4356:3:96","nodeType":"YulIdentifier","src":"4356:3:96"},"nativeSrc":"4356:21:96","nodeType":"YulFunctionCall","src":"4356:21:96"},"variables":[{"name":"newlength","nativeSrc":"4343:9:96","nodeType":"YulTypedName","src":"4343:9:96","type":""}]},{"cases":[{"body":{"nativeSrc":"4710:1485:96","nodeType":"YulBlock","src":"4710:1485:96","statements":[{"expression":{"arguments":[{"name":"_preBytes.slot","nativeSrc":"4991:14:96","nodeType":"YulIdentifier","src":"4991:14:96"},{"arguments":[{"name":"fslot","nativeSrc":"5303:5:96","nodeType":"YulIdentifier","src":"5303:5:96"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_postBytes","nativeSrc":"5521:10:96","nodeType":"YulIdentifier","src":"5521:10:96"},{"kind":"number","nativeSrc":"5533:4:96","nodeType":"YulLiteral","src":"5533:4:96","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5517:3:96","nodeType":"YulIdentifier","src":"5517:3:96"},"nativeSrc":"5517:21:96","nodeType":"YulFunctionCall","src":"5517:21:96"}],"functionName":{"name":"mload","nativeSrc":"5511:5:96","nodeType":"YulIdentifier","src":"5511:5:96"},"nativeSrc":"5511:28:96","nodeType":"YulFunctionCall","src":"5511:28:96"},{"arguments":[{"kind":"number","nativeSrc":"5648:5:96","nodeType":"YulLiteral","src":"5648:5:96","type":"","value":"0x100"},{"arguments":[{"kind":"number","nativeSrc":"5659:2:96","nodeType":"YulLiteral","src":"5659:2:96","type":"","value":"32"},{"name":"mlength","nativeSrc":"5663:7:96","nodeType":"YulIdentifier","src":"5663:7:96"}],"functionName":{"name":"sub","nativeSrc":"5655:3:96","nodeType":"YulIdentifier","src":"5655:3:96"},"nativeSrc":"5655:16:96","nodeType":"YulFunctionCall","src":"5655:16:96"}],"functionName":{"name":"exp","nativeSrc":"5644:3:96","nodeType":"YulIdentifier","src":"5644:3:96"},"nativeSrc":"5644:28:96","nodeType":"YulFunctionCall","src":"5644:28:96"}],"functionName":{"name":"div","nativeSrc":"5404:3:96","nodeType":"YulIdentifier","src":"5404:3:96"},"nativeSrc":"5404:302:96","nodeType":"YulFunctionCall","src":"5404:302:96"},{"arguments":[{"kind":"number","nativeSrc":"5895:5:96","nodeType":"YulLiteral","src":"5895:5:96","type":"","value":"0x100"},{"arguments":[{"kind":"number","nativeSrc":"5906:2:96","nodeType":"YulLiteral","src":"5906:2:96","type":"","value":"32"},{"name":"newlength","nativeSrc":"5910:9:96","nodeType":"YulIdentifier","src":"5910:9:96"}],"functionName":{"name":"sub","nativeSrc":"5902:3:96","nodeType":"YulIdentifier","src":"5902:3:96"},"nativeSrc":"5902:18:96","nodeType":"YulFunctionCall","src":"5902:18:96"}],"functionName":{"name":"exp","nativeSrc":"5891:3:96","nodeType":"YulIdentifier","src":"5891:3:96"},"nativeSrc":"5891:30:96","nodeType":"YulFunctionCall","src":"5891:30:96"}],"functionName":{"name":"mul","nativeSrc":"5367:3:96","nodeType":"YulIdentifier","src":"5367:3:96"},"nativeSrc":"5367:584:96","nodeType":"YulFunctionCall","src":"5367:584:96"},{"arguments":[{"name":"mlength","nativeSrc":"6104:7:96","nodeType":"YulIdentifier","src":"6104:7:96"},{"kind":"number","nativeSrc":"6113:1:96","nodeType":"YulLiteral","src":"6113:1:96","type":"","value":"2"}],"functionName":{"name":"mul","nativeSrc":"6100:3:96","nodeType":"YulIdentifier","src":"6100:3:96"},"nativeSrc":"6100:15:96","nodeType":"YulFunctionCall","src":"6100:15:96"}],"functionName":{"name":"add","nativeSrc":"5334:3:96","nodeType":"YulIdentifier","src":"5334:3:96"},"nativeSrc":"5334:807:96","nodeType":"YulFunctionCall","src":"5334:807:96"}],"functionName":{"name":"add","nativeSrc":"5134:3:96","nodeType":"YulIdentifier","src":"5134:3:96"},"nativeSrc":"5134:1029:96","nodeType":"YulFunctionCall","src":"5134:1029:96"}],"functionName":{"name":"sstore","nativeSrc":"4963:6:96","nodeType":"YulIdentifier","src":"4963:6:96"},"nativeSrc":"4963:1218:96","nodeType":"YulFunctionCall","src":"4963:1218:96"},"nativeSrc":"4963:1218:96","nodeType":"YulExpressionStatement","src":"4963:1218:96"}]},"nativeSrc":"4703:1492:96","nodeType":"YulCase","src":"4703:1492:96","value":{"kind":"number","nativeSrc":"4708:1:96","nodeType":"YulLiteral","src":"4708:1:96","type":"","value":"2"}},{"body":{"nativeSrc":"6215:1935:96","nodeType":"YulBlock","src":"6215:1935:96","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6424:3:96","nodeType":"YulLiteral","src":"6424:3:96","type":"","value":"0x0"},{"name":"_preBytes.slot","nativeSrc":"6429:14:96","nodeType":"YulIdentifier","src":"6429:14:96"}],"functionName":{"name":"mstore","nativeSrc":"6417:6:96","nodeType":"YulIdentifier","src":"6417:6:96"},"nativeSrc":"6417:27:96","nodeType":"YulFunctionCall","src":"6417:27:96"},"nativeSrc":"6417:27:96","nodeType":"YulExpressionStatement","src":"6417:27:96"},{"nativeSrc":"6461:53:96","nodeType":"YulVariableDeclaration","src":"6461:53:96","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"6485:3:96","nodeType":"YulLiteral","src":"6485:3:96","type":"","value":"0x0"},{"kind":"number","nativeSrc":"6490:4:96","nodeType":"YulLiteral","src":"6490:4:96","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"6475:9:96","nodeType":"YulIdentifier","src":"6475:9:96"},"nativeSrc":"6475:20:96","nodeType":"YulFunctionCall","src":"6475:20:96"},{"arguments":[{"name":"slength","nativeSrc":"6501:7:96","nodeType":"YulIdentifier","src":"6501:7:96"},{"kind":"number","nativeSrc":"6510:2:96","nodeType":"YulLiteral","src":"6510:2:96","type":"","value":"32"}],"functionName":{"name":"div","nativeSrc":"6497:3:96","nodeType":"YulIdentifier","src":"6497:3:96"},"nativeSrc":"6497:16:96","nodeType":"YulFunctionCall","src":"6497:16:96"}],"functionName":{"name":"add","nativeSrc":"6471:3:96","nodeType":"YulIdentifier","src":"6471:3:96"},"nativeSrc":"6471:43:96","nodeType":"YulFunctionCall","src":"6471:43:96"},"variables":[{"name":"sc","nativeSrc":"6465:2:96","nodeType":"YulTypedName","src":"6465:2:96","type":""}]},{"expression":{"arguments":[{"name":"_preBytes.slot","nativeSrc":"6574:14:96","nodeType":"YulIdentifier","src":"6574:14:96"},{"arguments":[{"arguments":[{"name":"newlength","nativeSrc":"6598:9:96","nodeType":"YulIdentifier","src":"6598:9:96"},{"kind":"number","nativeSrc":"6609:1:96","nodeType":"YulLiteral","src":"6609:1:96","type":"","value":"2"}],"functionName":{"name":"mul","nativeSrc":"6594:3:96","nodeType":"YulIdentifier","src":"6594:3:96"},"nativeSrc":"6594:17:96","nodeType":"YulFunctionCall","src":"6594:17:96"},{"kind":"number","nativeSrc":"6613:1:96","nodeType":"YulLiteral","src":"6613:1:96","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"6590:3:96","nodeType":"YulIdentifier","src":"6590:3:96"},"nativeSrc":"6590:25:96","nodeType":"YulFunctionCall","src":"6590:25:96"}],"functionName":{"name":"sstore","nativeSrc":"6567:6:96","nodeType":"YulIdentifier","src":"6567:6:96"},"nativeSrc":"6567:49:96","nodeType":"YulFunctionCall","src":"6567:49:96"},"nativeSrc":"6567:49:96","nodeType":"YulExpressionStatement","src":"6567:49:96"},{"nativeSrc":"7204:30:96","nodeType":"YulVariableDeclaration","src":"7204:30:96","value":{"arguments":[{"kind":"number","nativeSrc":"7222:2:96","nodeType":"YulLiteral","src":"7222:2:96","type":"","value":"32"},{"name":"slength","nativeSrc":"7226:7:96","nodeType":"YulIdentifier","src":"7226:7:96"}],"functionName":{"name":"sub","nativeSrc":"7218:3:96","nodeType":"YulIdentifier","src":"7218:3:96"},"nativeSrc":"7218:16:96","nodeType":"YulFunctionCall","src":"7218:16:96"},"variables":[{"name":"submod","nativeSrc":"7208:6:96","nodeType":"YulTypedName","src":"7208:6:96","type":""}]},{"nativeSrc":"7251:33:96","nodeType":"YulVariableDeclaration","src":"7251:33:96","value":{"arguments":[{"name":"_postBytes","nativeSrc":"7265:10:96","nodeType":"YulIdentifier","src":"7265:10:96"},{"name":"submod","nativeSrc":"7277:6:96","nodeType":"YulIdentifier","src":"7277:6:96"}],"functionName":{"name":"add","nativeSrc":"7261:3:96","nodeType":"YulIdentifier","src":"7261:3:96"},"nativeSrc":"7261:23:96","nodeType":"YulFunctionCall","src":"7261:23:96"},"variables":[{"name":"mc","nativeSrc":"7255:2:96","nodeType":"YulTypedName","src":"7255:2:96","type":""}]},{"nativeSrc":"7301:35:96","nodeType":"YulVariableDeclaration","src":"7301:35:96","value":{"arguments":[{"name":"_postBytes","nativeSrc":"7316:10:96","nodeType":"YulIdentifier","src":"7316:10:96"},{"name":"mlength","nativeSrc":"7328:7:96","nodeType":"YulIdentifier","src":"7328:7:96"}],"functionName":{"name":"add","nativeSrc":"7312:3:96","nodeType":"YulIdentifier","src":"7312:3:96"},"nativeSrc":"7312:24:96","nodeType":"YulFunctionCall","src":"7312:24:96"},"variables":[{"name":"end","nativeSrc":"7305:3:96","nodeType":"YulTypedName","src":"7305:3:96","type":""}]},{"nativeSrc":"7353:38:96","nodeType":"YulVariableDeclaration","src":"7353:38:96","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7373:5:96","nodeType":"YulLiteral","src":"7373:5:96","type":"","value":"0x100"},{"name":"submod","nativeSrc":"7380:6:96","nodeType":"YulIdentifier","src":"7380:6:96"}],"functionName":{"name":"exp","nativeSrc":"7369:3:96","nodeType":"YulIdentifier","src":"7369:3:96"},"nativeSrc":"7369:18:96","nodeType":"YulFunctionCall","src":"7369:18:96"},{"kind":"number","nativeSrc":"7389:1:96","nodeType":"YulLiteral","src":"7389:1:96","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"7365:3:96","nodeType":"YulIdentifier","src":"7365:3:96"},"nativeSrc":"7365:26:96","nodeType":"YulFunctionCall","src":"7365:26:96"},"variables":[{"name":"mask","nativeSrc":"7357:4:96","nodeType":"YulTypedName","src":"7357:4:96","type":""}]},{"expression":{"arguments":[{"name":"sc","nativeSrc":"7437:2:96","nodeType":"YulIdentifier","src":"7437:2:96"},{"arguments":[{"arguments":[{"name":"fslot","nativeSrc":"7523:5:96","nodeType":"YulIdentifier","src":"7523:5:96"},{"kind":"number","nativeSrc":"7558:66:96","nodeType":"YulLiteral","src":"7558:66:96","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00"}],"functionName":{"name":"and","nativeSrc":"7490:3:96","nodeType":"YulIdentifier","src":"7490:3:96"},"nativeSrc":"7490:160:96","nodeType":"YulFunctionCall","src":"7490:160:96"},{"arguments":[{"arguments":[{"name":"mc","nativeSrc":"7686:2:96","nodeType":"YulIdentifier","src":"7686:2:96"}],"functionName":{"name":"mload","nativeSrc":"7680:5:96","nodeType":"YulIdentifier","src":"7680:5:96"},"nativeSrc":"7680:9:96","nodeType":"YulFunctionCall","src":"7680:9:96"},{"name":"mask","nativeSrc":"7691:4:96","nodeType":"YulIdentifier","src":"7691:4:96"}],"functionName":{"name":"and","nativeSrc":"7676:3:96","nodeType":"YulIdentifier","src":"7676:3:96"},"nativeSrc":"7676:20:96","nodeType":"YulFunctionCall","src":"7676:20:96"}],"functionName":{"name":"add","nativeSrc":"7461:3:96","nodeType":"YulIdentifier","src":"7461:3:96"},"nativeSrc":"7461:257:96","nodeType":"YulFunctionCall","src":"7461:257:96"}],"functionName":{"name":"sstore","nativeSrc":"7409:6:96","nodeType":"YulIdentifier","src":"7409:6:96"},"nativeSrc":"7409:327:96","nodeType":"YulFunctionCall","src":"7409:327:96"},"nativeSrc":"7409:327:96","nodeType":"YulExpressionStatement","src":"7409:327:96"},{"body":{"nativeSrc":"7964:61:96","nodeType":"YulBlock","src":"7964:61:96","statements":[{"expression":{"arguments":[{"name":"sc","nativeSrc":"7993:2:96","nodeType":"YulIdentifier","src":"7993:2:96"},{"arguments":[{"name":"mc","nativeSrc":"8003:2:96","nodeType":"YulIdentifier","src":"8003:2:96"}],"functionName":{"name":"mload","nativeSrc":"7997:5:96","nodeType":"YulIdentifier","src":"7997:5:96"},"nativeSrc":"7997:9:96","nodeType":"YulFunctionCall","src":"7997:9:96"}],"functionName":{"name":"sstore","nativeSrc":"7986:6:96","nodeType":"YulIdentifier","src":"7986:6:96"},"nativeSrc":"7986:21:96","nodeType":"YulFunctionCall","src":"7986:21:96"},"nativeSrc":"7986:21:96","nodeType":"YulExpressionStatement","src":"7986:21:96"}]},"condition":{"arguments":[{"name":"mc","nativeSrc":"7858:2:96","nodeType":"YulIdentifier","src":"7858:2:96"},{"name":"end","nativeSrc":"7862:3:96","nodeType":"YulIdentifier","src":"7862:3:96"}],"functionName":{"name":"lt","nativeSrc":"7855:2:96","nodeType":"YulIdentifier","src":"7855:2:96"},"nativeSrc":"7855:11:96","nodeType":"YulFunctionCall","src":"7855:11:96"},"nativeSrc":"7754:271:96","nodeType":"YulForLoop","post":{"nativeSrc":"7867:96:96","nodeType":"YulBlock","src":"7867:96:96","statements":[{"nativeSrc":"7889:16:96","nodeType":"YulAssignment","src":"7889:16:96","value":{"arguments":[{"name":"sc","nativeSrc":"7899:2:96","nodeType":"YulIdentifier","src":"7899:2:96"},{"kind":"number","nativeSrc":"7903:1:96","nodeType":"YulLiteral","src":"7903:1:96","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"7895:3:96","nodeType":"YulIdentifier","src":"7895:3:96"},"nativeSrc":"7895:10:96","nodeType":"YulFunctionCall","src":"7895:10:96"},"variableNames":[{"name":"sc","nativeSrc":"7889:2:96","nodeType":"YulIdentifier","src":"7889:2:96"}]},{"nativeSrc":"7926:19:96","nodeType":"YulAssignment","src":"7926:19:96","value":{"arguments":[{"name":"mc","nativeSrc":"7936:2:96","nodeType":"YulIdentifier","src":"7936:2:96"},{"kind":"number","nativeSrc":"7940:4:96","nodeType":"YulLiteral","src":"7940:4:96","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7932:3:96","nodeType":"YulIdentifier","src":"7932:3:96"},"nativeSrc":"7932:13:96","nodeType":"YulFunctionCall","src":"7932:13:96"},"variableNames":[{"name":"mc","nativeSrc":"7926:2:96","nodeType":"YulIdentifier","src":"7926:2:96"}]}]},"pre":{"nativeSrc":"7758:96:96","nodeType":"YulBlock","src":"7758:96:96","statements":[{"nativeSrc":"7780:19:96","nodeType":"YulAssignment","src":"7780:19:96","value":{"arguments":[{"name":"mc","nativeSrc":"7790:2:96","nodeType":"YulIdentifier","src":"7790:2:96"},{"kind":"number","nativeSrc":"7794:4:96","nodeType":"YulLiteral","src":"7794:4:96","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7786:3:96","nodeType":"YulIdentifier","src":"7786:3:96"},"nativeSrc":"7786:13:96","nodeType":"YulFunctionCall","src":"7786:13:96"},"variableNames":[{"name":"mc","nativeSrc":"7780:2:96","nodeType":"YulIdentifier","src":"7780:2:96"}]},{"nativeSrc":"7820:16:96","nodeType":"YulAssignment","src":"7820:16:96","value":{"arguments":[{"name":"sc","nativeSrc":"7830:2:96","nodeType":"YulIdentifier","src":"7830:2:96"},{"kind":"number","nativeSrc":"7834:1:96","nodeType":"YulLiteral","src":"7834:1:96","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"7826:3:96","nodeType":"YulIdentifier","src":"7826:3:96"},"nativeSrc":"7826:10:96","nodeType":"YulFunctionCall","src":"7826:10:96"},"variableNames":[{"name":"sc","nativeSrc":"7820:2:96","nodeType":"YulIdentifier","src":"7820:2:96"}]}]},"src":"7754:271:96"},{"nativeSrc":"8043:32:96","nodeType":"YulAssignment","src":"8043:32:96","value":{"arguments":[{"kind":"number","nativeSrc":"8055:5:96","nodeType":"YulLiteral","src":"8055:5:96","type":"","value":"0x100"},{"arguments":[{"name":"mc","nativeSrc":"8066:2:96","nodeType":"YulIdentifier","src":"8066:2:96"},{"name":"end","nativeSrc":"8070:3:96","nodeType":"YulIdentifier","src":"8070:3:96"}],"functionName":{"name":"sub","nativeSrc":"8062:3:96","nodeType":"YulIdentifier","src":"8062:3:96"},"nativeSrc":"8062:12:96","nodeType":"YulFunctionCall","src":"8062:12:96"}],"functionName":{"name":"exp","nativeSrc":"8051:3:96","nodeType":"YulIdentifier","src":"8051:3:96"},"nativeSrc":"8051:24:96","nodeType":"YulFunctionCall","src":"8051:24:96"},"variableNames":[{"name":"mask","nativeSrc":"8043:4:96","nodeType":"YulIdentifier","src":"8043:4:96"}]},{"expression":{"arguments":[{"name":"sc","nativeSrc":"8100:2:96","nodeType":"YulIdentifier","src":"8100:2:96"},{"arguments":[{"arguments":[{"arguments":[{"name":"mc","nativeSrc":"8118:2:96","nodeType":"YulIdentifier","src":"8118:2:96"}],"functionName":{"name":"mload","nativeSrc":"8112:5:96","nodeType":"YulIdentifier","src":"8112:5:96"},"nativeSrc":"8112:9:96","nodeType":"YulFunctionCall","src":"8112:9:96"},{"name":"mask","nativeSrc":"8123:4:96","nodeType":"YulIdentifier","src":"8123:4:96"}],"functionName":{"name":"div","nativeSrc":"8108:3:96","nodeType":"YulIdentifier","src":"8108:3:96"},"nativeSrc":"8108:20:96","nodeType":"YulFunctionCall","src":"8108:20:96"},{"name":"mask","nativeSrc":"8130:4:96","nodeType":"YulIdentifier","src":"8130:4:96"}],"functionName":{"name":"mul","nativeSrc":"8104:3:96","nodeType":"YulIdentifier","src":"8104:3:96"},"nativeSrc":"8104:31:96","nodeType":"YulFunctionCall","src":"8104:31:96"}],"functionName":{"name":"sstore","nativeSrc":"8093:6:96","nodeType":"YulIdentifier","src":"8093:6:96"},"nativeSrc":"8093:43:96","nodeType":"YulFunctionCall","src":"8093:43:96"},"nativeSrc":"8093:43:96","nodeType":"YulExpressionStatement","src":"8093:43:96"}]},"nativeSrc":"6208:1942:96","nodeType":"YulCase","src":"6208:1942:96","value":{"kind":"number","nativeSrc":"6213:1:96","nodeType":"YulLiteral","src":"6213:1:96","type":"","value":"1"}},{"body":{"nativeSrc":"8171:1264:96","nodeType":"YulBlock","src":"8171:1264:96","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8268:3:96","nodeType":"YulLiteral","src":"8268:3:96","type":"","value":"0x0"},{"name":"_preBytes.slot","nativeSrc":"8273:14:96","nodeType":"YulIdentifier","src":"8273:14:96"}],"functionName":{"name":"mstore","nativeSrc":"8261:6:96","nodeType":"YulIdentifier","src":"8261:6:96"},"nativeSrc":"8261:27:96","nodeType":"YulFunctionCall","src":"8261:27:96"},"nativeSrc":"8261:27:96","nodeType":"YulExpressionStatement","src":"8261:27:96"},{"nativeSrc":"8381:53:96","nodeType":"YulVariableDeclaration","src":"8381:53:96","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"8405:3:96","nodeType":"YulLiteral","src":"8405:3:96","type":"","value":"0x0"},{"kind":"number","nativeSrc":"8410:4:96","nodeType":"YulLiteral","src":"8410:4:96","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"8395:9:96","nodeType":"YulIdentifier","src":"8395:9:96"},"nativeSrc":"8395:20:96","nodeType":"YulFunctionCall","src":"8395:20:96"},{"arguments":[{"name":"slength","nativeSrc":"8421:7:96","nodeType":"YulIdentifier","src":"8421:7:96"},{"kind":"number","nativeSrc":"8430:2:96","nodeType":"YulLiteral","src":"8430:2:96","type":"","value":"32"}],"functionName":{"name":"div","nativeSrc":"8417:3:96","nodeType":"YulIdentifier","src":"8417:3:96"},"nativeSrc":"8417:16:96","nodeType":"YulFunctionCall","src":"8417:16:96"}],"functionName":{"name":"add","nativeSrc":"8391:3:96","nodeType":"YulIdentifier","src":"8391:3:96"},"nativeSrc":"8391:43:96","nodeType":"YulFunctionCall","src":"8391:43:96"},"variables":[{"name":"sc","nativeSrc":"8385:2:96","nodeType":"YulTypedName","src":"8385:2:96","type":""}]},{"expression":{"arguments":[{"name":"_preBytes.slot","nativeSrc":"8494:14:96","nodeType":"YulIdentifier","src":"8494:14:96"},{"arguments":[{"arguments":[{"name":"newlength","nativeSrc":"8518:9:96","nodeType":"YulIdentifier","src":"8518:9:96"},{"kind":"number","nativeSrc":"8529:1:96","nodeType":"YulLiteral","src":"8529:1:96","type":"","value":"2"}],"functionName":{"name":"mul","nativeSrc":"8514:3:96","nodeType":"YulIdentifier","src":"8514:3:96"},"nativeSrc":"8514:17:96","nodeType":"YulFunctionCall","src":"8514:17:96"},{"kind":"number","nativeSrc":"8533:1:96","nodeType":"YulLiteral","src":"8533:1:96","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"8510:3:96","nodeType":"YulIdentifier","src":"8510:3:96"},"nativeSrc":"8510:25:96","nodeType":"YulFunctionCall","src":"8510:25:96"}],"functionName":{"name":"sstore","nativeSrc":"8487:6:96","nodeType":"YulIdentifier","src":"8487:6:96"},"nativeSrc":"8487:49:96","nodeType":"YulFunctionCall","src":"8487:49:96"},"nativeSrc":"8487:49:96","nodeType":"YulExpressionStatement","src":"8487:49:96"},{"nativeSrc":"8663:34:96","nodeType":"YulVariableDeclaration","src":"8663:34:96","value":{"arguments":[{"name":"slength","nativeSrc":"8685:7:96","nodeType":"YulIdentifier","src":"8685:7:96"},{"kind":"number","nativeSrc":"8694:2:96","nodeType":"YulLiteral","src":"8694:2:96","type":"","value":"32"}],"functionName":{"name":"mod","nativeSrc":"8681:3:96","nodeType":"YulIdentifier","src":"8681:3:96"},"nativeSrc":"8681:16:96","nodeType":"YulFunctionCall","src":"8681:16:96"},"variables":[{"name":"slengthmod","nativeSrc":"8667:10:96","nodeType":"YulTypedName","src":"8667:10:96","type":""}]},{"nativeSrc":"8714:34:96","nodeType":"YulVariableDeclaration","src":"8714:34:96","value":{"arguments":[{"name":"mlength","nativeSrc":"8736:7:96","nodeType":"YulIdentifier","src":"8736:7:96"},{"kind":"number","nativeSrc":"8745:2:96","nodeType":"YulLiteral","src":"8745:2:96","type":"","value":"32"}],"functionName":{"name":"mod","nativeSrc":"8732:3:96","nodeType":"YulIdentifier","src":"8732:3:96"},"nativeSrc":"8732:16:96","nodeType":"YulFunctionCall","src":"8732:16:96"},"variables":[{"name":"mlengthmod","nativeSrc":"8718:10:96","nodeType":"YulTypedName","src":"8718:10:96","type":""}]},{"nativeSrc":"8765:33:96","nodeType":"YulVariableDeclaration","src":"8765:33:96","value":{"arguments":[{"kind":"number","nativeSrc":"8783:2:96","nodeType":"YulLiteral","src":"8783:2:96","type":"","value":"32"},{"name":"slengthmod","nativeSrc":"8787:10:96","nodeType":"YulIdentifier","src":"8787:10:96"}],"functionName":{"name":"sub","nativeSrc":"8779:3:96","nodeType":"YulIdentifier","src":"8779:3:96"},"nativeSrc":"8779:19:96","nodeType":"YulFunctionCall","src":"8779:19:96"},"variables":[{"name":"submod","nativeSrc":"8769:6:96","nodeType":"YulTypedName","src":"8769:6:96","type":""}]},{"nativeSrc":"8815:33:96","nodeType":"YulVariableDeclaration","src":"8815:33:96","value":{"arguments":[{"name":"_postBytes","nativeSrc":"8829:10:96","nodeType":"YulIdentifier","src":"8829:10:96"},{"name":"submod","nativeSrc":"8841:6:96","nodeType":"YulIdentifier","src":"8841:6:96"}],"functionName":{"name":"add","nativeSrc":"8825:3:96","nodeType":"YulIdentifier","src":"8825:3:96"},"nativeSrc":"8825:23:96","nodeType":"YulFunctionCall","src":"8825:23:96"},"variables":[{"name":"mc","nativeSrc":"8819:2:96","nodeType":"YulTypedName","src":"8819:2:96","type":""}]},{"nativeSrc":"8865:35:96","nodeType":"YulVariableDeclaration","src":"8865:35:96","value":{"arguments":[{"name":"_postBytes","nativeSrc":"8880:10:96","nodeType":"YulIdentifier","src":"8880:10:96"},{"name":"mlength","nativeSrc":"8892:7:96","nodeType":"YulIdentifier","src":"8892:7:96"}],"functionName":{"name":"add","nativeSrc":"8876:3:96","nodeType":"YulIdentifier","src":"8876:3:96"},"nativeSrc":"8876:24:96","nodeType":"YulFunctionCall","src":"8876:24:96"},"variables":[{"name":"end","nativeSrc":"8869:3:96","nodeType":"YulTypedName","src":"8869:3:96","type":""}]},{"nativeSrc":"8917:38:96","nodeType":"YulVariableDeclaration","src":"8917:38:96","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"8937:5:96","nodeType":"YulLiteral","src":"8937:5:96","type":"","value":"0x100"},{"name":"submod","nativeSrc":"8944:6:96","nodeType":"YulIdentifier","src":"8944:6:96"}],"functionName":{"name":"exp","nativeSrc":"8933:3:96","nodeType":"YulIdentifier","src":"8933:3:96"},"nativeSrc":"8933:18:96","nodeType":"YulFunctionCall","src":"8933:18:96"},{"kind":"number","nativeSrc":"8953:1:96","nodeType":"YulLiteral","src":"8953:1:96","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"8929:3:96","nodeType":"YulIdentifier","src":"8929:3:96"},"nativeSrc":"8929:26:96","nodeType":"YulFunctionCall","src":"8929:26:96"},"variables":[{"name":"mask","nativeSrc":"8921:4:96","nodeType":"YulTypedName","src":"8921:4:96","type":""}]},{"expression":{"arguments":[{"name":"sc","nativeSrc":"8980:2:96","nodeType":"YulIdentifier","src":"8980:2:96"},{"arguments":[{"arguments":[{"name":"sc","nativeSrc":"8994:2:96","nodeType":"YulIdentifier","src":"8994:2:96"}],"functionName":{"name":"sload","nativeSrc":"8988:5:96","nodeType":"YulIdentifier","src":"8988:5:96"},"nativeSrc":"8988:9:96","nodeType":"YulFunctionCall","src":"8988:9:96"},{"arguments":[{"arguments":[{"name":"mc","nativeSrc":"9009:2:96","nodeType":"YulIdentifier","src":"9009:2:96"}],"functionName":{"name":"mload","nativeSrc":"9003:5:96","nodeType":"YulIdentifier","src":"9003:5:96"},"nativeSrc":"9003:9:96","nodeType":"YulFunctionCall","src":"9003:9:96"},{"name":"mask","nativeSrc":"9014:4:96","nodeType":"YulIdentifier","src":"9014:4:96"}],"functionName":{"name":"and","nativeSrc":"8999:3:96","nodeType":"YulIdentifier","src":"8999:3:96"},"nativeSrc":"8999:20:96","nodeType":"YulFunctionCall","src":"8999:20:96"}],"functionName":{"name":"add","nativeSrc":"8984:3:96","nodeType":"YulIdentifier","src":"8984:3:96"},"nativeSrc":"8984:36:96","nodeType":"YulFunctionCall","src":"8984:36:96"}],"functionName":{"name":"sstore","nativeSrc":"8973:6:96","nodeType":"YulIdentifier","src":"8973:6:96"},"nativeSrc":"8973:48:96","nodeType":"YulFunctionCall","src":"8973:48:96"},"nativeSrc":"8973:48:96","nodeType":"YulExpressionStatement","src":"8973:48:96"},{"body":{"nativeSrc":"9249:61:96","nodeType":"YulBlock","src":"9249:61:96","statements":[{"expression":{"arguments":[{"name":"sc","nativeSrc":"9278:2:96","nodeType":"YulIdentifier","src":"9278:2:96"},{"arguments":[{"name":"mc","nativeSrc":"9288:2:96","nodeType":"YulIdentifier","src":"9288:2:96"}],"functionName":{"name":"mload","nativeSrc":"9282:5:96","nodeType":"YulIdentifier","src":"9282:5:96"},"nativeSrc":"9282:9:96","nodeType":"YulFunctionCall","src":"9282:9:96"}],"functionName":{"name":"sstore","nativeSrc":"9271:6:96","nodeType":"YulIdentifier","src":"9271:6:96"},"nativeSrc":"9271:21:96","nodeType":"YulFunctionCall","src":"9271:21:96"},"nativeSrc":"9271:21:96","nodeType":"YulExpressionStatement","src":"9271:21:96"}]},"condition":{"arguments":[{"name":"mc","nativeSrc":"9143:2:96","nodeType":"YulIdentifier","src":"9143:2:96"},{"name":"end","nativeSrc":"9147:3:96","nodeType":"YulIdentifier","src":"9147:3:96"}],"functionName":{"name":"lt","nativeSrc":"9140:2:96","nodeType":"YulIdentifier","src":"9140:2:96"},"nativeSrc":"9140:11:96","nodeType":"YulFunctionCall","src":"9140:11:96"},"nativeSrc":"9039:271:96","nodeType":"YulForLoop","post":{"nativeSrc":"9152:96:96","nodeType":"YulBlock","src":"9152:96:96","statements":[{"nativeSrc":"9174:16:96","nodeType":"YulAssignment","src":"9174:16:96","value":{"arguments":[{"name":"sc","nativeSrc":"9184:2:96","nodeType":"YulIdentifier","src":"9184:2:96"},{"kind":"number","nativeSrc":"9188:1:96","nodeType":"YulLiteral","src":"9188:1:96","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"9180:3:96","nodeType":"YulIdentifier","src":"9180:3:96"},"nativeSrc":"9180:10:96","nodeType":"YulFunctionCall","src":"9180:10:96"},"variableNames":[{"name":"sc","nativeSrc":"9174:2:96","nodeType":"YulIdentifier","src":"9174:2:96"}]},{"nativeSrc":"9211:19:96","nodeType":"YulAssignment","src":"9211:19:96","value":{"arguments":[{"name":"mc","nativeSrc":"9221:2:96","nodeType":"YulIdentifier","src":"9221:2:96"},{"kind":"number","nativeSrc":"9225:4:96","nodeType":"YulLiteral","src":"9225:4:96","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9217:3:96","nodeType":"YulIdentifier","src":"9217:3:96"},"nativeSrc":"9217:13:96","nodeType":"YulFunctionCall","src":"9217:13:96"},"variableNames":[{"name":"mc","nativeSrc":"9211:2:96","nodeType":"YulIdentifier","src":"9211:2:96"}]}]},"pre":{"nativeSrc":"9043:96:96","nodeType":"YulBlock","src":"9043:96:96","statements":[{"nativeSrc":"9065:16:96","nodeType":"YulAssignment","src":"9065:16:96","value":{"arguments":[{"name":"sc","nativeSrc":"9075:2:96","nodeType":"YulIdentifier","src":"9075:2:96"},{"kind":"number","nativeSrc":"9079:1:96","nodeType":"YulLiteral","src":"9079:1:96","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"9071:3:96","nodeType":"YulIdentifier","src":"9071:3:96"},"nativeSrc":"9071:10:96","nodeType":"YulFunctionCall","src":"9071:10:96"},"variableNames":[{"name":"sc","nativeSrc":"9065:2:96","nodeType":"YulIdentifier","src":"9065:2:96"}]},{"nativeSrc":"9102:19:96","nodeType":"YulAssignment","src":"9102:19:96","value":{"arguments":[{"name":"mc","nativeSrc":"9112:2:96","nodeType":"YulIdentifier","src":"9112:2:96"},{"kind":"number","nativeSrc":"9116:4:96","nodeType":"YulLiteral","src":"9116:4:96","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9108:3:96","nodeType":"YulIdentifier","src":"9108:3:96"},"nativeSrc":"9108:13:96","nodeType":"YulFunctionCall","src":"9108:13:96"},"variableNames":[{"name":"mc","nativeSrc":"9102:2:96","nodeType":"YulIdentifier","src":"9102:2:96"}]}]},"src":"9039:271:96"},{"nativeSrc":"9328:32:96","nodeType":"YulAssignment","src":"9328:32:96","value":{"arguments":[{"kind":"number","nativeSrc":"9340:5:96","nodeType":"YulLiteral","src":"9340:5:96","type":"","value":"0x100"},{"arguments":[{"name":"mc","nativeSrc":"9351:2:96","nodeType":"YulIdentifier","src":"9351:2:96"},{"name":"end","nativeSrc":"9355:3:96","nodeType":"YulIdentifier","src":"9355:3:96"}],"functionName":{"name":"sub","nativeSrc":"9347:3:96","nodeType":"YulIdentifier","src":"9347:3:96"},"nativeSrc":"9347:12:96","nodeType":"YulFunctionCall","src":"9347:12:96"}],"functionName":{"name":"exp","nativeSrc":"9336:3:96","nodeType":"YulIdentifier","src":"9336:3:96"},"nativeSrc":"9336:24:96","nodeType":"YulFunctionCall","src":"9336:24:96"},"variableNames":[{"name":"mask","nativeSrc":"9328:4:96","nodeType":"YulIdentifier","src":"9328:4:96"}]},{"expression":{"arguments":[{"name":"sc","nativeSrc":"9385:2:96","nodeType":"YulIdentifier","src":"9385:2:96"},{"arguments":[{"arguments":[{"arguments":[{"name":"mc","nativeSrc":"9403:2:96","nodeType":"YulIdentifier","src":"9403:2:96"}],"functionName":{"name":"mload","nativeSrc":"9397:5:96","nodeType":"YulIdentifier","src":"9397:5:96"},"nativeSrc":"9397:9:96","nodeType":"YulFunctionCall","src":"9397:9:96"},{"name":"mask","nativeSrc":"9408:4:96","nodeType":"YulIdentifier","src":"9408:4:96"}],"functionName":{"name":"div","nativeSrc":"9393:3:96","nodeType":"YulIdentifier","src":"9393:3:96"},"nativeSrc":"9393:20:96","nodeType":"YulFunctionCall","src":"9393:20:96"},{"name":"mask","nativeSrc":"9415:4:96","nodeType":"YulIdentifier","src":"9415:4:96"}],"functionName":{"name":"mul","nativeSrc":"9389:3:96","nodeType":"YulIdentifier","src":"9389:3:96"},"nativeSrc":"9389:31:96","nodeType":"YulFunctionCall","src":"9389:31:96"}],"functionName":{"name":"sstore","nativeSrc":"9378:6:96","nodeType":"YulIdentifier","src":"9378:6:96"},"nativeSrc":"9378:43:96","nodeType":"YulFunctionCall","src":"9378:43:96"},"nativeSrc":"9378:43:96","nodeType":"YulExpressionStatement","src":"9378:43:96"}]},"nativeSrc":"8163:1272:96","nodeType":"YulCase","src":"8163:1272:96","value":"default"}],"expression":{"arguments":[{"arguments":[{"name":"slength","nativeSrc":"4658:7:96","nodeType":"YulIdentifier","src":"4658:7:96"},{"kind":"number","nativeSrc":"4667:2:96","nodeType":"YulLiteral","src":"4667:2:96","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"4655:2:96","nodeType":"YulIdentifier","src":"4655:2:96"},"nativeSrc":"4655:15:96","nodeType":"YulFunctionCall","src":"4655:15:96"},{"arguments":[{"name":"newlength","nativeSrc":"4675:9:96","nodeType":"YulIdentifier","src":"4675:9:96"},{"kind":"number","nativeSrc":"4686:2:96","nodeType":"YulLiteral","src":"4686:2:96","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"4672:2:96","nodeType":"YulIdentifier","src":"4672:2:96"},"nativeSrc":"4672:17:96","nodeType":"YulFunctionCall","src":"4672:17:96"}],"functionName":{"name":"add","nativeSrc":"4651:3:96","nodeType":"YulIdentifier","src":"4651:3:96"},"nativeSrc":"4651:39:96","nodeType":"YulFunctionCall","src":"4651:39:96"},"nativeSrc":"4644:4791:96","nodeType":"YulSwitch","src":"4644:4791:96"}]},"evmVersion":"paris","externalReferences":[{"declaration":22727,"isOffset":false,"isSlot":false,"src":"4315:10:96","valueSize":1},{"declaration":22727,"isOffset":false,"isSlot":false,"src":"5521:10:96","valueSize":1},{"declaration":22727,"isOffset":false,"isSlot":false,"src":"7265:10:96","valueSize":1},{"declaration":22727,"isOffset":false,"isSlot":false,"src":"7316:10:96","valueSize":1},{"declaration":22727,"isOffset":false,"isSlot":false,"src":"8829:10:96","valueSize":1},{"declaration":22727,"isOffset":false,"isSlot":false,"src":"8880:10:96","valueSize":1},{"declaration":22725,"isOffset":false,"isSlot":true,"src":"3697:14:96","suffix":"slot","valueSize":1},{"declaration":22725,"isOffset":false,"isSlot":true,"src":"4991:14:96","suffix":"slot","valueSize":1},{"declaration":22725,"isOffset":false,"isSlot":true,"src":"6429:14:96","suffix":"slot","valueSize":1},{"declaration":22725,"isOffset":false,"isSlot":true,"src":"6574:14:96","suffix":"slot","valueSize":1},{"declaration":22725,"isOffset":false,"isSlot":true,"src":"8273:14:96","suffix":"slot","valueSize":1},{"declaration":22725,"isOffset":false,"isSlot":true,"src":"8494:14:96","suffix":"slot","valueSize":1}],"id":22730,"nodeType":"InlineAssembly","src":"3446:5999:96"}]},"id":22732,"implemented":true,"kind":"function","modifiers":[],"name":"concatStorage","nameLocation":"3363:13:96","nodeType":"FunctionDefinition","parameters":{"id":22728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22725,"mutability":"mutable","name":"_preBytes","nameLocation":"3391:9:96","nodeType":"VariableDeclaration","scope":22732,"src":"3377:23:96","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":22724,"name":"bytes","nodeType":"ElementaryTypeName","src":"3377:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":22727,"mutability":"mutable","name":"_postBytes","nameLocation":"3415:10:96","nodeType":"VariableDeclaration","scope":22732,"src":"3402:23:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":22726,"name":"bytes","nodeType":"ElementaryTypeName","src":"3402:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3376:50:96"},"returnParameters":{"id":22729,"nodeType":"ParameterList","parameters":[],"src":"3436:0:96"},"scope":23039,"src":"3354:6097:96","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":22769,"nodeType":"Block","src":"9621:2805:96","statements":[{"id":22752,"nodeType":"UncheckedBlock","src":"9762:85:96","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22744,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22738,"src":"9794:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3331","id":22745,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9804:2:96","typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"31"},"src":"9794:12:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":22747,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22738,"src":"9810:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9794:23:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"736c6963655f6f766572666c6f77","id":22749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9819:16:96","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e","typeString":"literal_string \"slice_overflow\""},"value":"slice_overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e","typeString":"literal_string \"slice_overflow\""}],"id":22743,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9786:7:96","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9786:50:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22751,"nodeType":"ExpressionStatement","src":"9786:50:96"}]},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":22754,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22734,"src":"9864:6:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":22755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9871:6:96","memberName":"length","nodeType":"MemberAccess","src":"9864:13:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22756,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22736,"src":"9881:6:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":22757,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22738,"src":"9890:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9881:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9864:33:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"736c6963655f6f75744f66426f756e6473","id":22760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9899:19:96","typeDescriptions":{"typeIdentifier":"t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0","typeString":"literal_string \"slice_outOfBounds\""},"value":"slice_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0","typeString":"literal_string \"slice_outOfBounds\""}],"id":22753,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9856:7:96","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9856:63:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22762,"nodeType":"ExpressionStatement","src":"9856:63:96"},{"assignments":[22764],"declarations":[{"constant":false,"id":22764,"mutability":"mutable","name":"tempBytes","nameLocation":"9943:9:96","nodeType":"VariableDeclaration","scope":22769,"src":"9930:22:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":22763,"name":"bytes","nodeType":"ElementaryTypeName","src":"9930:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":22765,"nodeType":"VariableDeclarationStatement","src":"9930:22:96"},{"AST":{"nativeSrc":"9972:2421:96","nodeType":"YulBlock","src":"9972:2421:96","statements":[{"cases":[{"body":{"nativeSrc":"10028:1960:96","nodeType":"YulBlock","src":"10028:1960:96","statements":[{"nativeSrc":"10184:24:96","nodeType":"YulAssignment","src":"10184:24:96","value":{"arguments":[{"kind":"number","nativeSrc":"10203:4:96","nodeType":"YulLiteral","src":"10203:4:96","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"10197:5:96","nodeType":"YulIdentifier","src":"10197:5:96"},"nativeSrc":"10197:11:96","nodeType":"YulFunctionCall","src":"10197:11:96"},"variableNames":[{"name":"tempBytes","nativeSrc":"10184:9:96","nodeType":"YulIdentifier","src":"10184:9:96"}]},{"nativeSrc":"10832:33:96","nodeType":"YulVariableDeclaration","src":"10832:33:96","value":{"arguments":[{"name":"_length","nativeSrc":"10853:7:96","nodeType":"YulIdentifier","src":"10853:7:96"},{"kind":"number","nativeSrc":"10862:2:96","nodeType":"YulLiteral","src":"10862:2:96","type":"","value":"31"}],"functionName":{"name":"and","nativeSrc":"10849:3:96","nodeType":"YulIdentifier","src":"10849:3:96"},"nativeSrc":"10849:16:96","nodeType":"YulFunctionCall","src":"10849:16:96"},"variables":[{"name":"lengthmod","nativeSrc":"10836:9:96","nodeType":"YulTypedName","src":"10836:9:96","type":""}]},{"nativeSrc":"11186:70:96","nodeType":"YulVariableDeclaration","src":"11186:70:96","value":{"arguments":[{"arguments":[{"name":"tempBytes","nativeSrc":"11204:9:96","nodeType":"YulIdentifier","src":"11204:9:96"},{"name":"lengthmod","nativeSrc":"11215:9:96","nodeType":"YulIdentifier","src":"11215:9:96"}],"functionName":{"name":"add","nativeSrc":"11200:3:96","nodeType":"YulIdentifier","src":"11200:3:96"},"nativeSrc":"11200:25:96","nodeType":"YulFunctionCall","src":"11200:25:96"},{"arguments":[{"kind":"number","nativeSrc":"11231:4:96","nodeType":"YulLiteral","src":"11231:4:96","type":"","value":"0x20"},{"arguments":[{"name":"lengthmod","nativeSrc":"11244:9:96","nodeType":"YulIdentifier","src":"11244:9:96"}],"functionName":{"name":"iszero","nativeSrc":"11237:6:96","nodeType":"YulIdentifier","src":"11237:6:96"},"nativeSrc":"11237:17:96","nodeType":"YulFunctionCall","src":"11237:17:96"}],"functionName":{"name":"mul","nativeSrc":"11227:3:96","nodeType":"YulIdentifier","src":"11227:3:96"},"nativeSrc":"11227:28:96","nodeType":"YulFunctionCall","src":"11227:28:96"}],"functionName":{"name":"add","nativeSrc":"11196:3:96","nodeType":"YulIdentifier","src":"11196:3:96"},"nativeSrc":"11196:60:96","nodeType":"YulFunctionCall","src":"11196:60:96"},"variables":[{"name":"mc","nativeSrc":"11190:2:96","nodeType":"YulTypedName","src":"11190:2:96","type":""}]},{"nativeSrc":"11273:27:96","nodeType":"YulVariableDeclaration","src":"11273:27:96","value":{"arguments":[{"name":"mc","nativeSrc":"11288:2:96","nodeType":"YulIdentifier","src":"11288:2:96"},{"name":"_length","nativeSrc":"11292:7:96","nodeType":"YulIdentifier","src":"11292:7:96"}],"functionName":{"name":"add","nativeSrc":"11284:3:96","nodeType":"YulIdentifier","src":"11284:3:96"},"nativeSrc":"11284:16:96","nodeType":"YulFunctionCall","src":"11284:16:96"},"variables":[{"name":"end","nativeSrc":"11277:3:96","nodeType":"YulTypedName","src":"11277:3:96","type":""}]},{"body":{"nativeSrc":"11682:61:96","nodeType":"YulBlock","src":"11682:61:96","statements":[{"expression":{"arguments":[{"name":"mc","nativeSrc":"11711:2:96","nodeType":"YulIdentifier","src":"11711:2:96"},{"arguments":[{"name":"cc","nativeSrc":"11721:2:96","nodeType":"YulIdentifier","src":"11721:2:96"}],"functionName":{"name":"mload","nativeSrc":"11715:5:96","nodeType":"YulIdentifier","src":"11715:5:96"},"nativeSrc":"11715:9:96","nodeType":"YulFunctionCall","src":"11715:9:96"}],"functionName":{"name":"mstore","nativeSrc":"11704:6:96","nodeType":"YulIdentifier","src":"11704:6:96"},"nativeSrc":"11704:21:96","nodeType":"YulFunctionCall","src":"11704:21:96"},"nativeSrc":"11704:21:96","nodeType":"YulExpressionStatement","src":"11704:21:96"}]},"condition":{"arguments":[{"name":"mc","nativeSrc":"11573:2:96","nodeType":"YulIdentifier","src":"11573:2:96"},{"name":"end","nativeSrc":"11577:3:96","nodeType":"YulIdentifier","src":"11577:3:96"}],"functionName":{"name":"lt","nativeSrc":"11570:2:96","nodeType":"YulIdentifier","src":"11570:2:96"},"nativeSrc":"11570:11:96","nodeType":"YulFunctionCall","src":"11570:11:96"},"nativeSrc":"11318:425:96","nodeType":"YulForLoop","post":{"nativeSrc":"11582:99:96","nodeType":"YulBlock","src":"11582:99:96","statements":[{"nativeSrc":"11604:19:96","nodeType":"YulAssignment","src":"11604:19:96","value":{"arguments":[{"name":"mc","nativeSrc":"11614:2:96","nodeType":"YulIdentifier","src":"11614:2:96"},{"kind":"number","nativeSrc":"11618:4:96","nodeType":"YulLiteral","src":"11618:4:96","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11610:3:96","nodeType":"YulIdentifier","src":"11610:3:96"},"nativeSrc":"11610:13:96","nodeType":"YulFunctionCall","src":"11610:13:96"},"variableNames":[{"name":"mc","nativeSrc":"11604:2:96","nodeType":"YulIdentifier","src":"11604:2:96"}]},{"nativeSrc":"11644:19:96","nodeType":"YulAssignment","src":"11644:19:96","value":{"arguments":[{"name":"cc","nativeSrc":"11654:2:96","nodeType":"YulIdentifier","src":"11654:2:96"},{"kind":"number","nativeSrc":"11658:4:96","nodeType":"YulLiteral","src":"11658:4:96","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11650:3:96","nodeType":"YulIdentifier","src":"11650:3:96"},"nativeSrc":"11650:13:96","nodeType":"YulFunctionCall","src":"11650:13:96"},"variableNames":[{"name":"cc","nativeSrc":"11644:2:96","nodeType":"YulIdentifier","src":"11644:2:96"}]}]},"pre":{"nativeSrc":"11322:247:96","nodeType":"YulBlock","src":"11322:247:96","statements":[{"nativeSrc":"11471:80:96","nodeType":"YulVariableDeclaration","src":"11471:80:96","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nativeSrc":"11493:6:96","nodeType":"YulIdentifier","src":"11493:6:96"},{"name":"lengthmod","nativeSrc":"11501:9:96","nodeType":"YulIdentifier","src":"11501:9:96"}],"functionName":{"name":"add","nativeSrc":"11489:3:96","nodeType":"YulIdentifier","src":"11489:3:96"},"nativeSrc":"11489:22:96","nodeType":"YulFunctionCall","src":"11489:22:96"},{"arguments":[{"kind":"number","nativeSrc":"11517:4:96","nodeType":"YulLiteral","src":"11517:4:96","type":"","value":"0x20"},{"arguments":[{"name":"lengthmod","nativeSrc":"11530:9:96","nodeType":"YulIdentifier","src":"11530:9:96"}],"functionName":{"name":"iszero","nativeSrc":"11523:6:96","nodeType":"YulIdentifier","src":"11523:6:96"},"nativeSrc":"11523:17:96","nodeType":"YulFunctionCall","src":"11523:17:96"}],"functionName":{"name":"mul","nativeSrc":"11513:3:96","nodeType":"YulIdentifier","src":"11513:3:96"},"nativeSrc":"11513:28:96","nodeType":"YulFunctionCall","src":"11513:28:96"}],"functionName":{"name":"add","nativeSrc":"11485:3:96","nodeType":"YulIdentifier","src":"11485:3:96"},"nativeSrc":"11485:57:96","nodeType":"YulFunctionCall","src":"11485:57:96"},{"name":"_start","nativeSrc":"11544:6:96","nodeType":"YulIdentifier","src":"11544:6:96"}],"functionName":{"name":"add","nativeSrc":"11481:3:96","nodeType":"YulIdentifier","src":"11481:3:96"},"nativeSrc":"11481:70:96","nodeType":"YulFunctionCall","src":"11481:70:96"},"variables":[{"name":"cc","nativeSrc":"11475:2:96","nodeType":"YulTypedName","src":"11475:2:96","type":""}]}]},"src":"11318:425:96"},{"expression":{"arguments":[{"name":"tempBytes","nativeSrc":"11768:9:96","nodeType":"YulIdentifier","src":"11768:9:96"},{"name":"_length","nativeSrc":"11779:7:96","nodeType":"YulIdentifier","src":"11779:7:96"}],"functionName":{"name":"mstore","nativeSrc":"11761:6:96","nodeType":"YulIdentifier","src":"11761:6:96"},"nativeSrc":"11761:26:96","nodeType":"YulFunctionCall","src":"11761:26:96"},"nativeSrc":"11761:26:96","nodeType":"YulExpressionStatement","src":"11761:26:96"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11942:4:96","nodeType":"YulLiteral","src":"11942:4:96","type":"","value":"0x40"},{"arguments":[{"arguments":[{"name":"mc","nativeSrc":"11956:2:96","nodeType":"YulIdentifier","src":"11956:2:96"},{"kind":"number","nativeSrc":"11960:2:96","nodeType":"YulLiteral","src":"11960:2:96","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"11952:3:96","nodeType":"YulIdentifier","src":"11952:3:96"},"nativeSrc":"11952:11:96","nodeType":"YulFunctionCall","src":"11952:11:96"},{"arguments":[{"kind":"number","nativeSrc":"11969:2:96","nodeType":"YulLiteral","src":"11969:2:96","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"11965:3:96","nodeType":"YulIdentifier","src":"11965:3:96"},"nativeSrc":"11965:7:96","nodeType":"YulFunctionCall","src":"11965:7:96"}],"functionName":{"name":"and","nativeSrc":"11948:3:96","nodeType":"YulIdentifier","src":"11948:3:96"},"nativeSrc":"11948:25:96","nodeType":"YulFunctionCall","src":"11948:25:96"}],"functionName":{"name":"mstore","nativeSrc":"11935:6:96","nodeType":"YulIdentifier","src":"11935:6:96"},"nativeSrc":"11935:39:96","nodeType":"YulFunctionCall","src":"11935:39:96"},"nativeSrc":"11935:39:96","nodeType":"YulExpressionStatement","src":"11935:39:96"}]},"nativeSrc":"10021:1967:96","nodeType":"YulCase","src":"10021:1967:96","value":{"kind":"number","nativeSrc":"10026:1:96","nodeType":"YulLiteral","src":"10026:1:96","type":"","value":"0"}},{"body":{"nativeSrc":"12092:291:96","nodeType":"YulBlock","src":"12092:291:96","statements":[{"nativeSrc":"12110:24:96","nodeType":"YulAssignment","src":"12110:24:96","value":{"arguments":[{"kind":"number","nativeSrc":"12129:4:96","nodeType":"YulLiteral","src":"12129:4:96","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"12123:5:96","nodeType":"YulIdentifier","src":"12123:5:96"},"nativeSrc":"12123:11:96","nodeType":"YulFunctionCall","src":"12123:11:96"},"variableNames":[{"name":"tempBytes","nativeSrc":"12110:9:96","nodeType":"YulIdentifier","src":"12110:9:96"}]},{"expression":{"arguments":[{"name":"tempBytes","nativeSrc":"12304:9:96","nodeType":"YulIdentifier","src":"12304:9:96"},{"kind":"number","nativeSrc":"12315:1:96","nodeType":"YulLiteral","src":"12315:1:96","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"12297:6:96","nodeType":"YulIdentifier","src":"12297:6:96"},"nativeSrc":"12297:20:96","nodeType":"YulFunctionCall","src":"12297:20:96"},"nativeSrc":"12297:20:96","nodeType":"YulExpressionStatement","src":"12297:20:96"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12342:4:96","nodeType":"YulLiteral","src":"12342:4:96","type":"","value":"0x40"},{"arguments":[{"name":"tempBytes","nativeSrc":"12352:9:96","nodeType":"YulIdentifier","src":"12352:9:96"},{"kind":"number","nativeSrc":"12363:4:96","nodeType":"YulLiteral","src":"12363:4:96","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12348:3:96","nodeType":"YulIdentifier","src":"12348:3:96"},"nativeSrc":"12348:20:96","nodeType":"YulFunctionCall","src":"12348:20:96"}],"functionName":{"name":"mstore","nativeSrc":"12335:6:96","nodeType":"YulIdentifier","src":"12335:6:96"},"nativeSrc":"12335:34:96","nodeType":"YulFunctionCall","src":"12335:34:96"},"nativeSrc":"12335:34:96","nodeType":"YulExpressionStatement","src":"12335:34:96"}]},"nativeSrc":"12084:299:96","nodeType":"YulCase","src":"12084:299:96","value":"default"}],"expression":{"arguments":[{"name":"_length","nativeSrc":"10000:7:96","nodeType":"YulIdentifier","src":"10000:7:96"}],"functionName":{"name":"iszero","nativeSrc":"9993:6:96","nodeType":"YulIdentifier","src":"9993:6:96"},"nativeSrc":"9993:15:96","nodeType":"YulFunctionCall","src":"9993:15:96"},"nativeSrc":"9986:2397:96","nodeType":"YulSwitch","src":"9986:2397:96"}]},"evmVersion":"paris","externalReferences":[{"declaration":22734,"isOffset":false,"isSlot":false,"src":"11493:6:96","valueSize":1},{"declaration":22738,"isOffset":false,"isSlot":false,"src":"10000:7:96","valueSize":1},{"declaration":22738,"isOffset":false,"isSlot":false,"src":"10853:7:96","valueSize":1},{"declaration":22738,"isOffset":false,"isSlot":false,"src":"11292:7:96","valueSize":1},{"declaration":22738,"isOffset":false,"isSlot":false,"src":"11779:7:96","valueSize":1},{"declaration":22736,"isOffset":false,"isSlot":false,"src":"11544:6:96","valueSize":1},{"declaration":22764,"isOffset":false,"isSlot":false,"src":"10184:9:96","valueSize":1},{"declaration":22764,"isOffset":false,"isSlot":false,"src":"11204:9:96","valueSize":1},{"declaration":22764,"isOffset":false,"isSlot":false,"src":"11768:9:96","valueSize":1},{"declaration":22764,"isOffset":false,"isSlot":false,"src":"12110:9:96","valueSize":1},{"declaration":22764,"isOffset":false,"isSlot":false,"src":"12304:9:96","valueSize":1},{"declaration":22764,"isOffset":false,"isSlot":false,"src":"12352:9:96","valueSize":1}],"id":22766,"nodeType":"InlineAssembly","src":"9963:2430:96"},{"expression":{"id":22767,"name":"tempBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22764,"src":"12410:9:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":22742,"id":22768,"nodeType":"Return","src":"12403:16:96"}]},"id":22770,"implemented":true,"kind":"function","modifiers":[],"name":"slice","nameLocation":"9466:5:96","nodeType":"FunctionDefinition","parameters":{"id":22739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22734,"mutability":"mutable","name":"_bytes","nameLocation":"9494:6:96","nodeType":"VariableDeclaration","scope":22770,"src":"9481:19:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":22733,"name":"bytes","nodeType":"ElementaryTypeName","src":"9481:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":22736,"mutability":"mutable","name":"_start","nameLocation":"9518:6:96","nodeType":"VariableDeclaration","scope":22770,"src":"9510:14:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22735,"name":"uint256","nodeType":"ElementaryTypeName","src":"9510:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22738,"mutability":"mutable","name":"_length","nameLocation":"9542:7:96","nodeType":"VariableDeclaration","scope":22770,"src":"9534:15:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22737,"name":"uint256","nodeType":"ElementaryTypeName","src":"9534:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9471:84:96"},"returnParameters":{"id":22742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22741,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22770,"src":"9603:12:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":22740,"name":"bytes","nodeType":"ElementaryTypeName","src":"9603:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9602:14:96"},"scope":23039,"src":"9457:2969:96","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":22795,"nodeType":"Block","src":"12520:266:96","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":22780,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22772,"src":"12538:6:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":22781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12545:6:96","memberName":"length","nodeType":"MemberAccess","src":"12538:13:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22782,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22774,"src":"12555:6:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3230","id":22783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12564:2:96","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"src":"12555:11:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12538:28:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f416464726573735f6f75744f66426f756e6473","id":22786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12568:23:96","typeDescriptions":{"typeIdentifier":"t_stringliteral_9f688071e1df0f70b63e3651005878331be1fe9591d6cfb3187cb52a13439e5d","typeString":"literal_string \"toAddress_outOfBounds\""},"value":"toAddress_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9f688071e1df0f70b63e3651005878331be1fe9591d6cfb3187cb52a13439e5d","typeString":"literal_string \"toAddress_outOfBounds\""}],"id":22779,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12530:7:96","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12530:62:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22788,"nodeType":"ExpressionStatement","src":"12530:62:96"},{"assignments":[22790],"declarations":[{"constant":false,"id":22790,"mutability":"mutable","name":"tempAddress","nameLocation":"12610:11:96","nodeType":"VariableDeclaration","scope":22795,"src":"12602:19:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22789,"name":"address","nodeType":"ElementaryTypeName","src":"12602:7:96","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":22791,"nodeType":"VariableDeclarationStatement","src":"12602:19:96"},{"AST":{"nativeSrc":"12641:110:96","nodeType":"YulBlock","src":"12641:110:96","statements":[{"nativeSrc":"12655:86:96","nodeType":"YulAssignment","src":"12655:86:96","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nativeSrc":"12688:6:96","nodeType":"YulIdentifier","src":"12688:6:96"},{"kind":"number","nativeSrc":"12696:4:96","nodeType":"YulLiteral","src":"12696:4:96","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12684:3:96","nodeType":"YulIdentifier","src":"12684:3:96"},"nativeSrc":"12684:17:96","nodeType":"YulFunctionCall","src":"12684:17:96"},{"name":"_start","nativeSrc":"12703:6:96","nodeType":"YulIdentifier","src":"12703:6:96"}],"functionName":{"name":"add","nativeSrc":"12680:3:96","nodeType":"YulIdentifier","src":"12680:3:96"},"nativeSrc":"12680:30:96","nodeType":"YulFunctionCall","src":"12680:30:96"}],"functionName":{"name":"mload","nativeSrc":"12674:5:96","nodeType":"YulIdentifier","src":"12674:5:96"},"nativeSrc":"12674:37:96","nodeType":"YulFunctionCall","src":"12674:37:96"},{"kind":"number","nativeSrc":"12713:27:96","nodeType":"YulLiteral","src":"12713:27:96","type":"","value":"0x1000000000000000000000000"}],"functionName":{"name":"div","nativeSrc":"12670:3:96","nodeType":"YulIdentifier","src":"12670:3:96"},"nativeSrc":"12670:71:96","nodeType":"YulFunctionCall","src":"12670:71:96"},"variableNames":[{"name":"tempAddress","nativeSrc":"12655:11:96","nodeType":"YulIdentifier","src":"12655:11:96"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":22772,"isOffset":false,"isSlot":false,"src":"12688:6:96","valueSize":1},{"declaration":22774,"isOffset":false,"isSlot":false,"src":"12703:6:96","valueSize":1},{"declaration":22790,"isOffset":false,"isSlot":false,"src":"12655:11:96","valueSize":1}],"id":22792,"nodeType":"InlineAssembly","src":"12632:119:96"},{"expression":{"id":22793,"name":"tempAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22790,"src":"12768:11:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":22778,"id":22794,"nodeType":"Return","src":"12761:18:96"}]},"id":22796,"implemented":true,"kind":"function","modifiers":[],"name":"toAddress","nameLocation":"12441:9:96","nodeType":"FunctionDefinition","parameters":{"id":22775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22772,"mutability":"mutable","name":"_bytes","nameLocation":"12464:6:96","nodeType":"VariableDeclaration","scope":22796,"src":"12451:19:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":22771,"name":"bytes","nodeType":"ElementaryTypeName","src":"12451:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":22774,"mutability":"mutable","name":"_start","nameLocation":"12480:6:96","nodeType":"VariableDeclaration","scope":22796,"src":"12472:14:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22773,"name":"uint256","nodeType":"ElementaryTypeName","src":"12472:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12450:37:96"},"returnParameters":{"id":22778,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22777,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22796,"src":"12511:7:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22776,"name":"address","nodeType":"ElementaryTypeName","src":"12511:7:96","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12510:9:96"},"scope":23039,"src":"12432:354:96","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":22821,"nodeType":"Block","src":"12876:218:96","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":22806,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22798,"src":"12894:6:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":22807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12901:6:96","memberName":"length","nodeType":"MemberAccess","src":"12894:13:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22808,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22800,"src":"12911:6:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":22809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12920:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12911:10:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12894:27:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e74385f6f75744f66426f756e6473","id":22812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12924:21:96","typeDescriptions":{"typeIdentifier":"t_stringliteral_ce6d7be00009dd45cc670fb6c2ceee25786f142bcb64e7f1ee73012b26bb6ca1","typeString":"literal_string \"toUint8_outOfBounds\""},"value":"toUint8_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ce6d7be00009dd45cc670fb6c2ceee25786f142bcb64e7f1ee73012b26bb6ca1","typeString":"literal_string \"toUint8_outOfBounds\""}],"id":22805,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12886:7:96","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12886:60:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22814,"nodeType":"ExpressionStatement","src":"12886:60:96"},{"assignments":[22816],"declarations":[{"constant":false,"id":22816,"mutability":"mutable","name":"tempUint","nameLocation":"12962:8:96","nodeType":"VariableDeclaration","scope":22821,"src":"12956:14:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":22815,"name":"uint8","nodeType":"ElementaryTypeName","src":"12956:5:96","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":22817,"nodeType":"VariableDeclarationStatement","src":"12956:14:96"},{"AST":{"nativeSrc":"12990:72:96","nodeType":"YulBlock","src":"12990:72:96","statements":[{"nativeSrc":"13004:48:96","nodeType":"YulAssignment","src":"13004:48:96","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nativeSrc":"13030:6:96","nodeType":"YulIdentifier","src":"13030:6:96"},{"kind":"number","nativeSrc":"13038:3:96","nodeType":"YulLiteral","src":"13038:3:96","type":"","value":"0x1"}],"functionName":{"name":"add","nativeSrc":"13026:3:96","nodeType":"YulIdentifier","src":"13026:3:96"},"nativeSrc":"13026:16:96","nodeType":"YulFunctionCall","src":"13026:16:96"},{"name":"_start","nativeSrc":"13044:6:96","nodeType":"YulIdentifier","src":"13044:6:96"}],"functionName":{"name":"add","nativeSrc":"13022:3:96","nodeType":"YulIdentifier","src":"13022:3:96"},"nativeSrc":"13022:29:96","nodeType":"YulFunctionCall","src":"13022:29:96"}],"functionName":{"name":"mload","nativeSrc":"13016:5:96","nodeType":"YulIdentifier","src":"13016:5:96"},"nativeSrc":"13016:36:96","nodeType":"YulFunctionCall","src":"13016:36:96"},"variableNames":[{"name":"tempUint","nativeSrc":"13004:8:96","nodeType":"YulIdentifier","src":"13004:8:96"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":22798,"isOffset":false,"isSlot":false,"src":"13030:6:96","valueSize":1},{"declaration":22800,"isOffset":false,"isSlot":false,"src":"13044:6:96","valueSize":1},{"declaration":22816,"isOffset":false,"isSlot":false,"src":"13004:8:96","valueSize":1}],"id":22818,"nodeType":"InlineAssembly","src":"12981:81:96"},{"expression":{"id":22819,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22816,"src":"13079:8:96","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":22804,"id":22820,"nodeType":"Return","src":"13072:15:96"}]},"id":22822,"implemented":true,"kind":"function","modifiers":[],"name":"toUint8","nameLocation":"12801:7:96","nodeType":"FunctionDefinition","parameters":{"id":22801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22798,"mutability":"mutable","name":"_bytes","nameLocation":"12822:6:96","nodeType":"VariableDeclaration","scope":22822,"src":"12809:19:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":22797,"name":"bytes","nodeType":"ElementaryTypeName","src":"12809:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":22800,"mutability":"mutable","name":"_start","nameLocation":"12838:6:96","nodeType":"VariableDeclaration","scope":22822,"src":"12830:14:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22799,"name":"uint256","nodeType":"ElementaryTypeName","src":"12830:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12808:37:96"},"returnParameters":{"id":22804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22803,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22822,"src":"12869:5:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":22802,"name":"uint8","nodeType":"ElementaryTypeName","src":"12869:5:96","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"12868:7:96"},"scope":23039,"src":"12792:302:96","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":22847,"nodeType":"Block","src":"13186:219:96","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":22832,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22824,"src":"13204:6:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":22833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13211:6:96","memberName":"length","nodeType":"MemberAccess","src":"13204:13:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22834,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22826,"src":"13221:6:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":22835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13230:1:96","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"13221:10:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13204:27:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e7431365f6f75744f66426f756e6473","id":22838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13233:22:96","typeDescriptions":{"typeIdentifier":"t_stringliteral_414233483a71244a4f2700455a9733e71511b5279e381bdd2af6d44b1b09ecab","typeString":"literal_string \"toUint16_outOfBounds\""},"value":"toUint16_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_414233483a71244a4f2700455a9733e71511b5279e381bdd2af6d44b1b09ecab","typeString":"literal_string \"toUint16_outOfBounds\""}],"id":22831,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13196:7:96","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13196:60:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22840,"nodeType":"ExpressionStatement","src":"13196:60:96"},{"assignments":[22842],"declarations":[{"constant":false,"id":22842,"mutability":"mutable","name":"tempUint","nameLocation":"13273:8:96","nodeType":"VariableDeclaration","scope":22847,"src":"13266:15:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":22841,"name":"uint16","nodeType":"ElementaryTypeName","src":"13266:6:96","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":22843,"nodeType":"VariableDeclarationStatement","src":"13266:15:96"},{"AST":{"nativeSrc":"13301:72:96","nodeType":"YulBlock","src":"13301:72:96","statements":[{"nativeSrc":"13315:48:96","nodeType":"YulAssignment","src":"13315:48:96","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nativeSrc":"13341:6:96","nodeType":"YulIdentifier","src":"13341:6:96"},{"kind":"number","nativeSrc":"13349:3:96","nodeType":"YulLiteral","src":"13349:3:96","type":"","value":"0x2"}],"functionName":{"name":"add","nativeSrc":"13337:3:96","nodeType":"YulIdentifier","src":"13337:3:96"},"nativeSrc":"13337:16:96","nodeType":"YulFunctionCall","src":"13337:16:96"},{"name":"_start","nativeSrc":"13355:6:96","nodeType":"YulIdentifier","src":"13355:6:96"}],"functionName":{"name":"add","nativeSrc":"13333:3:96","nodeType":"YulIdentifier","src":"13333:3:96"},"nativeSrc":"13333:29:96","nodeType":"YulFunctionCall","src":"13333:29:96"}],"functionName":{"name":"mload","nativeSrc":"13327:5:96","nodeType":"YulIdentifier","src":"13327:5:96"},"nativeSrc":"13327:36:96","nodeType":"YulFunctionCall","src":"13327:36:96"},"variableNames":[{"name":"tempUint","nativeSrc":"13315:8:96","nodeType":"YulIdentifier","src":"13315:8:96"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":22824,"isOffset":false,"isSlot":false,"src":"13341:6:96","valueSize":1},{"declaration":22826,"isOffset":false,"isSlot":false,"src":"13355:6:96","valueSize":1},{"declaration":22842,"isOffset":false,"isSlot":false,"src":"13315:8:96","valueSize":1}],"id":22844,"nodeType":"InlineAssembly","src":"13292:81:96"},{"expression":{"id":22845,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22842,"src":"13390:8:96","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":22830,"id":22846,"nodeType":"Return","src":"13383:15:96"}]},"id":22848,"implemented":true,"kind":"function","modifiers":[],"name":"toUint16","nameLocation":"13109:8:96","nodeType":"FunctionDefinition","parameters":{"id":22827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22824,"mutability":"mutable","name":"_bytes","nameLocation":"13131:6:96","nodeType":"VariableDeclaration","scope":22848,"src":"13118:19:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":22823,"name":"bytes","nodeType":"ElementaryTypeName","src":"13118:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":22826,"mutability":"mutable","name":"_start","nameLocation":"13147:6:96","nodeType":"VariableDeclaration","scope":22848,"src":"13139:14:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22825,"name":"uint256","nodeType":"ElementaryTypeName","src":"13139:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13117:37:96"},"returnParameters":{"id":22830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22829,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22848,"src":"13178:6:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":22828,"name":"uint16","nodeType":"ElementaryTypeName","src":"13178:6:96","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"13177:8:96"},"scope":23039,"src":"13100:305:96","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":22873,"nodeType":"Block","src":"13497:219:96","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":22858,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22850,"src":"13515:6:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":22859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13522:6:96","memberName":"length","nodeType":"MemberAccess","src":"13515:13:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22860,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22852,"src":"13532:6:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"34","id":22861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13541:1:96","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"13532:10:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13515:27:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e7433325f6f75744f66426f756e6473","id":22864,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13544:22:96","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0a09853867d05bef4b1d534052126bc72acd3515e1725b9b280e16d988e6ccf","typeString":"literal_string \"toUint32_outOfBounds\""},"value":"toUint32_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e0a09853867d05bef4b1d534052126bc72acd3515e1725b9b280e16d988e6ccf","typeString":"literal_string \"toUint32_outOfBounds\""}],"id":22857,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13507:7:96","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13507:60:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22866,"nodeType":"ExpressionStatement","src":"13507:60:96"},{"assignments":[22868],"declarations":[{"constant":false,"id":22868,"mutability":"mutable","name":"tempUint","nameLocation":"13584:8:96","nodeType":"VariableDeclaration","scope":22873,"src":"13577:15:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":22867,"name":"uint32","nodeType":"ElementaryTypeName","src":"13577:6:96","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"id":22869,"nodeType":"VariableDeclarationStatement","src":"13577:15:96"},{"AST":{"nativeSrc":"13612:72:96","nodeType":"YulBlock","src":"13612:72:96","statements":[{"nativeSrc":"13626:48:96","nodeType":"YulAssignment","src":"13626:48:96","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nativeSrc":"13652:6:96","nodeType":"YulIdentifier","src":"13652:6:96"},{"kind":"number","nativeSrc":"13660:3:96","nodeType":"YulLiteral","src":"13660:3:96","type":"","value":"0x4"}],"functionName":{"name":"add","nativeSrc":"13648:3:96","nodeType":"YulIdentifier","src":"13648:3:96"},"nativeSrc":"13648:16:96","nodeType":"YulFunctionCall","src":"13648:16:96"},{"name":"_start","nativeSrc":"13666:6:96","nodeType":"YulIdentifier","src":"13666:6:96"}],"functionName":{"name":"add","nativeSrc":"13644:3:96","nodeType":"YulIdentifier","src":"13644:3:96"},"nativeSrc":"13644:29:96","nodeType":"YulFunctionCall","src":"13644:29:96"}],"functionName":{"name":"mload","nativeSrc":"13638:5:96","nodeType":"YulIdentifier","src":"13638:5:96"},"nativeSrc":"13638:36:96","nodeType":"YulFunctionCall","src":"13638:36:96"},"variableNames":[{"name":"tempUint","nativeSrc":"13626:8:96","nodeType":"YulIdentifier","src":"13626:8:96"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":22850,"isOffset":false,"isSlot":false,"src":"13652:6:96","valueSize":1},{"declaration":22852,"isOffset":false,"isSlot":false,"src":"13666:6:96","valueSize":1},{"declaration":22868,"isOffset":false,"isSlot":false,"src":"13626:8:96","valueSize":1}],"id":22870,"nodeType":"InlineAssembly","src":"13603:81:96"},{"expression":{"id":22871,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22868,"src":"13701:8:96","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"functionReturnParameters":22856,"id":22872,"nodeType":"Return","src":"13694:15:96"}]},"id":22874,"implemented":true,"kind":"function","modifiers":[],"name":"toUint32","nameLocation":"13420:8:96","nodeType":"FunctionDefinition","parameters":{"id":22853,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22850,"mutability":"mutable","name":"_bytes","nameLocation":"13442:6:96","nodeType":"VariableDeclaration","scope":22874,"src":"13429:19:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":22849,"name":"bytes","nodeType":"ElementaryTypeName","src":"13429:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":22852,"mutability":"mutable","name":"_start","nameLocation":"13458:6:96","nodeType":"VariableDeclaration","scope":22874,"src":"13450:14:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22851,"name":"uint256","nodeType":"ElementaryTypeName","src":"13450:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13428:37:96"},"returnParameters":{"id":22856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22855,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22874,"src":"13489:6:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":22854,"name":"uint32","nodeType":"ElementaryTypeName","src":"13489:6:96","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"13488:8:96"},"scope":23039,"src":"13411:305:96","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":22899,"nodeType":"Block","src":"13808:219:96","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":22884,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22876,"src":"13826:6:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":22885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13833:6:96","memberName":"length","nodeType":"MemberAccess","src":"13826:13:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22886,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22878,"src":"13843:6:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"38","id":22887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13852:1:96","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"13843:10:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13826:27:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e7436345f6f75744f66426f756e6473","id":22890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13855:22:96","typeDescriptions":{"typeIdentifier":"t_stringliteral_55885cc1e15ebd0ff3d9803b39476f6ee2279f42aa3070b40f2de433347c0145","typeString":"literal_string \"toUint64_outOfBounds\""},"value":"toUint64_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_55885cc1e15ebd0ff3d9803b39476f6ee2279f42aa3070b40f2de433347c0145","typeString":"literal_string \"toUint64_outOfBounds\""}],"id":22883,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13818:7:96","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13818:60:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22892,"nodeType":"ExpressionStatement","src":"13818:60:96"},{"assignments":[22894],"declarations":[{"constant":false,"id":22894,"mutability":"mutable","name":"tempUint","nameLocation":"13895:8:96","nodeType":"VariableDeclaration","scope":22899,"src":"13888:15:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":22893,"name":"uint64","nodeType":"ElementaryTypeName","src":"13888:6:96","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":22895,"nodeType":"VariableDeclarationStatement","src":"13888:15:96"},{"AST":{"nativeSrc":"13923:72:96","nodeType":"YulBlock","src":"13923:72:96","statements":[{"nativeSrc":"13937:48:96","nodeType":"YulAssignment","src":"13937:48:96","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nativeSrc":"13963:6:96","nodeType":"YulIdentifier","src":"13963:6:96"},{"kind":"number","nativeSrc":"13971:3:96","nodeType":"YulLiteral","src":"13971:3:96","type":"","value":"0x8"}],"functionName":{"name":"add","nativeSrc":"13959:3:96","nodeType":"YulIdentifier","src":"13959:3:96"},"nativeSrc":"13959:16:96","nodeType":"YulFunctionCall","src":"13959:16:96"},{"name":"_start","nativeSrc":"13977:6:96","nodeType":"YulIdentifier","src":"13977:6:96"}],"functionName":{"name":"add","nativeSrc":"13955:3:96","nodeType":"YulIdentifier","src":"13955:3:96"},"nativeSrc":"13955:29:96","nodeType":"YulFunctionCall","src":"13955:29:96"}],"functionName":{"name":"mload","nativeSrc":"13949:5:96","nodeType":"YulIdentifier","src":"13949:5:96"},"nativeSrc":"13949:36:96","nodeType":"YulFunctionCall","src":"13949:36:96"},"variableNames":[{"name":"tempUint","nativeSrc":"13937:8:96","nodeType":"YulIdentifier","src":"13937:8:96"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":22876,"isOffset":false,"isSlot":false,"src":"13963:6:96","valueSize":1},{"declaration":22878,"isOffset":false,"isSlot":false,"src":"13977:6:96","valueSize":1},{"declaration":22894,"isOffset":false,"isSlot":false,"src":"13937:8:96","valueSize":1}],"id":22896,"nodeType":"InlineAssembly","src":"13914:81:96"},{"expression":{"id":22897,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22894,"src":"14012:8:96","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":22882,"id":22898,"nodeType":"Return","src":"14005:15:96"}]},"id":22900,"implemented":true,"kind":"function","modifiers":[],"name":"toUint64","nameLocation":"13731:8:96","nodeType":"FunctionDefinition","parameters":{"id":22879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22876,"mutability":"mutable","name":"_bytes","nameLocation":"13753:6:96","nodeType":"VariableDeclaration","scope":22900,"src":"13740:19:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":22875,"name":"bytes","nodeType":"ElementaryTypeName","src":"13740:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":22878,"mutability":"mutable","name":"_start","nameLocation":"13769:6:96","nodeType":"VariableDeclaration","scope":22900,"src":"13761:14:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22877,"name":"uint256","nodeType":"ElementaryTypeName","src":"13761:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13739:37:96"},"returnParameters":{"id":22882,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22881,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22900,"src":"13800:6:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":22880,"name":"uint64","nodeType":"ElementaryTypeName","src":"13800:6:96","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"13799:8:96"},"scope":23039,"src":"13722:305:96","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":22925,"nodeType":"Block","src":"14119:220:96","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":22910,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22902,"src":"14137:6:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":22911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14144:6:96","memberName":"length","nodeType":"MemberAccess","src":"14137:13:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22912,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22904,"src":"14154:6:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3132","id":22913,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14163:2:96","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"src":"14154:11:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14137:28:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e7439365f6f75744f66426f756e6473","id":22916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14167:22:96","typeDescriptions":{"typeIdentifier":"t_stringliteral_245175b34ac1d95c460f2a4fcb106dbfea12949a3cbb7ae3362c49144bb9feb7","typeString":"literal_string \"toUint96_outOfBounds\""},"value":"toUint96_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_245175b34ac1d95c460f2a4fcb106dbfea12949a3cbb7ae3362c49144bb9feb7","typeString":"literal_string \"toUint96_outOfBounds\""}],"id":22909,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"14129:7:96","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14129:61:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22918,"nodeType":"ExpressionStatement","src":"14129:61:96"},{"assignments":[22920],"declarations":[{"constant":false,"id":22920,"mutability":"mutable","name":"tempUint","nameLocation":"14207:8:96","nodeType":"VariableDeclaration","scope":22925,"src":"14200:15:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":22919,"name":"uint96","nodeType":"ElementaryTypeName","src":"14200:6:96","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"id":22921,"nodeType":"VariableDeclarationStatement","src":"14200:15:96"},{"AST":{"nativeSrc":"14235:72:96","nodeType":"YulBlock","src":"14235:72:96","statements":[{"nativeSrc":"14249:48:96","nodeType":"YulAssignment","src":"14249:48:96","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nativeSrc":"14275:6:96","nodeType":"YulIdentifier","src":"14275:6:96"},{"kind":"number","nativeSrc":"14283:3:96","nodeType":"YulLiteral","src":"14283:3:96","type":"","value":"0xc"}],"functionName":{"name":"add","nativeSrc":"14271:3:96","nodeType":"YulIdentifier","src":"14271:3:96"},"nativeSrc":"14271:16:96","nodeType":"YulFunctionCall","src":"14271:16:96"},{"name":"_start","nativeSrc":"14289:6:96","nodeType":"YulIdentifier","src":"14289:6:96"}],"functionName":{"name":"add","nativeSrc":"14267:3:96","nodeType":"YulIdentifier","src":"14267:3:96"},"nativeSrc":"14267:29:96","nodeType":"YulFunctionCall","src":"14267:29:96"}],"functionName":{"name":"mload","nativeSrc":"14261:5:96","nodeType":"YulIdentifier","src":"14261:5:96"},"nativeSrc":"14261:36:96","nodeType":"YulFunctionCall","src":"14261:36:96"},"variableNames":[{"name":"tempUint","nativeSrc":"14249:8:96","nodeType":"YulIdentifier","src":"14249:8:96"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":22902,"isOffset":false,"isSlot":false,"src":"14275:6:96","valueSize":1},{"declaration":22904,"isOffset":false,"isSlot":false,"src":"14289:6:96","valueSize":1},{"declaration":22920,"isOffset":false,"isSlot":false,"src":"14249:8:96","valueSize":1}],"id":22922,"nodeType":"InlineAssembly","src":"14226:81:96"},{"expression":{"id":22923,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22920,"src":"14324:8:96","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"functionReturnParameters":22908,"id":22924,"nodeType":"Return","src":"14317:15:96"}]},"id":22926,"implemented":true,"kind":"function","modifiers":[],"name":"toUint96","nameLocation":"14042:8:96","nodeType":"FunctionDefinition","parameters":{"id":22905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22902,"mutability":"mutable","name":"_bytes","nameLocation":"14064:6:96","nodeType":"VariableDeclaration","scope":22926,"src":"14051:19:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":22901,"name":"bytes","nodeType":"ElementaryTypeName","src":"14051:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":22904,"mutability":"mutable","name":"_start","nameLocation":"14080:6:96","nodeType":"VariableDeclaration","scope":22926,"src":"14072:14:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22903,"name":"uint256","nodeType":"ElementaryTypeName","src":"14072:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14050:37:96"},"returnParameters":{"id":22908,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22907,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22926,"src":"14111:6:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":22906,"name":"uint96","nodeType":"ElementaryTypeName","src":"14111:6:96","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"14110:8:96"},"scope":23039,"src":"14033:306:96","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":22951,"nodeType":"Block","src":"14433:223:96","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":22936,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22928,"src":"14451:6:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":22937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14458:6:96","memberName":"length","nodeType":"MemberAccess","src":"14451:13:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22938,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22930,"src":"14468:6:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3136","id":22939,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14477:2:96","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"14468:11:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14451:28:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e743132385f6f75744f66426f756e6473","id":22942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14481:23:96","typeDescriptions":{"typeIdentifier":"t_stringliteral_17474b965d7fdba029328487966488b63c32338e60aea74eafb22325bb8d90dc","typeString":"literal_string \"toUint128_outOfBounds\""},"value":"toUint128_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_17474b965d7fdba029328487966488b63c32338e60aea74eafb22325bb8d90dc","typeString":"literal_string \"toUint128_outOfBounds\""}],"id":22935,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"14443:7:96","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14443:62:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22944,"nodeType":"ExpressionStatement","src":"14443:62:96"},{"assignments":[22946],"declarations":[{"constant":false,"id":22946,"mutability":"mutable","name":"tempUint","nameLocation":"14523:8:96","nodeType":"VariableDeclaration","scope":22951,"src":"14515:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":22945,"name":"uint128","nodeType":"ElementaryTypeName","src":"14515:7:96","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":22947,"nodeType":"VariableDeclarationStatement","src":"14515:16:96"},{"AST":{"nativeSrc":"14551:73:96","nodeType":"YulBlock","src":"14551:73:96","statements":[{"nativeSrc":"14565:49:96","nodeType":"YulAssignment","src":"14565:49:96","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nativeSrc":"14591:6:96","nodeType":"YulIdentifier","src":"14591:6:96"},{"kind":"number","nativeSrc":"14599:4:96","nodeType":"YulLiteral","src":"14599:4:96","type":"","value":"0x10"}],"functionName":{"name":"add","nativeSrc":"14587:3:96","nodeType":"YulIdentifier","src":"14587:3:96"},"nativeSrc":"14587:17:96","nodeType":"YulFunctionCall","src":"14587:17:96"},{"name":"_start","nativeSrc":"14606:6:96","nodeType":"YulIdentifier","src":"14606:6:96"}],"functionName":{"name":"add","nativeSrc":"14583:3:96","nodeType":"YulIdentifier","src":"14583:3:96"},"nativeSrc":"14583:30:96","nodeType":"YulFunctionCall","src":"14583:30:96"}],"functionName":{"name":"mload","nativeSrc":"14577:5:96","nodeType":"YulIdentifier","src":"14577:5:96"},"nativeSrc":"14577:37:96","nodeType":"YulFunctionCall","src":"14577:37:96"},"variableNames":[{"name":"tempUint","nativeSrc":"14565:8:96","nodeType":"YulIdentifier","src":"14565:8:96"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":22928,"isOffset":false,"isSlot":false,"src":"14591:6:96","valueSize":1},{"declaration":22930,"isOffset":false,"isSlot":false,"src":"14606:6:96","valueSize":1},{"declaration":22946,"isOffset":false,"isSlot":false,"src":"14565:8:96","valueSize":1}],"id":22948,"nodeType":"InlineAssembly","src":"14542:82:96"},{"expression":{"id":22949,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22946,"src":"14641:8:96","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"functionReturnParameters":22934,"id":22950,"nodeType":"Return","src":"14634:15:96"}]},"id":22952,"implemented":true,"kind":"function","modifiers":[],"name":"toUint128","nameLocation":"14354:9:96","nodeType":"FunctionDefinition","parameters":{"id":22931,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22928,"mutability":"mutable","name":"_bytes","nameLocation":"14377:6:96","nodeType":"VariableDeclaration","scope":22952,"src":"14364:19:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":22927,"name":"bytes","nodeType":"ElementaryTypeName","src":"14364:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":22930,"mutability":"mutable","name":"_start","nameLocation":"14393:6:96","nodeType":"VariableDeclaration","scope":22952,"src":"14385:14:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22929,"name":"uint256","nodeType":"ElementaryTypeName","src":"14385:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14363:37:96"},"returnParameters":{"id":22934,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22933,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22952,"src":"14424:7:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":22932,"name":"uint128","nodeType":"ElementaryTypeName","src":"14424:7:96","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"14423:9:96"},"scope":23039,"src":"14345:311:96","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":22977,"nodeType":"Block","src":"14750:223:96","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":22962,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22954,"src":"14768:6:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":22963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14775:6:96","memberName":"length","nodeType":"MemberAccess","src":"14768:13:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22964,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22956,"src":"14785:6:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3332","id":22965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14794:2:96","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"14785:11:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14768:28:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e743235365f6f75744f66426f756e6473","id":22968,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14798:23:96","typeDescriptions":{"typeIdentifier":"t_stringliteral_87a32b96294a395a4fb365d8b27a23d532fa10419cffd7dc13367cdc71bf4d7b","typeString":"literal_string \"toUint256_outOfBounds\""},"value":"toUint256_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_87a32b96294a395a4fb365d8b27a23d532fa10419cffd7dc13367cdc71bf4d7b","typeString":"literal_string \"toUint256_outOfBounds\""}],"id":22961,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"14760:7:96","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14760:62:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22970,"nodeType":"ExpressionStatement","src":"14760:62:96"},{"assignments":[22972],"declarations":[{"constant":false,"id":22972,"mutability":"mutable","name":"tempUint","nameLocation":"14840:8:96","nodeType":"VariableDeclaration","scope":22977,"src":"14832:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22971,"name":"uint256","nodeType":"ElementaryTypeName","src":"14832:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":22973,"nodeType":"VariableDeclarationStatement","src":"14832:16:96"},{"AST":{"nativeSrc":"14868:73:96","nodeType":"YulBlock","src":"14868:73:96","statements":[{"nativeSrc":"14882:49:96","nodeType":"YulAssignment","src":"14882:49:96","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nativeSrc":"14908:6:96","nodeType":"YulIdentifier","src":"14908:6:96"},{"kind":"number","nativeSrc":"14916:4:96","nodeType":"YulLiteral","src":"14916:4:96","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14904:3:96","nodeType":"YulIdentifier","src":"14904:3:96"},"nativeSrc":"14904:17:96","nodeType":"YulFunctionCall","src":"14904:17:96"},{"name":"_start","nativeSrc":"14923:6:96","nodeType":"YulIdentifier","src":"14923:6:96"}],"functionName":{"name":"add","nativeSrc":"14900:3:96","nodeType":"YulIdentifier","src":"14900:3:96"},"nativeSrc":"14900:30:96","nodeType":"YulFunctionCall","src":"14900:30:96"}],"functionName":{"name":"mload","nativeSrc":"14894:5:96","nodeType":"YulIdentifier","src":"14894:5:96"},"nativeSrc":"14894:37:96","nodeType":"YulFunctionCall","src":"14894:37:96"},"variableNames":[{"name":"tempUint","nativeSrc":"14882:8:96","nodeType":"YulIdentifier","src":"14882:8:96"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":22954,"isOffset":false,"isSlot":false,"src":"14908:6:96","valueSize":1},{"declaration":22956,"isOffset":false,"isSlot":false,"src":"14923:6:96","valueSize":1},{"declaration":22972,"isOffset":false,"isSlot":false,"src":"14882:8:96","valueSize":1}],"id":22974,"nodeType":"InlineAssembly","src":"14859:82:96"},{"expression":{"id":22975,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22972,"src":"14958:8:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":22960,"id":22976,"nodeType":"Return","src":"14951:15:96"}]},"id":22978,"implemented":true,"kind":"function","modifiers":[],"name":"toUint256","nameLocation":"14671:9:96","nodeType":"FunctionDefinition","parameters":{"id":22957,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22954,"mutability":"mutable","name":"_bytes","nameLocation":"14694:6:96","nodeType":"VariableDeclaration","scope":22978,"src":"14681:19:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":22953,"name":"bytes","nodeType":"ElementaryTypeName","src":"14681:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":22956,"mutability":"mutable","name":"_start","nameLocation":"14710:6:96","nodeType":"VariableDeclaration","scope":22978,"src":"14702:14:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22955,"name":"uint256","nodeType":"ElementaryTypeName","src":"14702:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14680:37:96"},"returnParameters":{"id":22960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22959,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22978,"src":"14741:7:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22958,"name":"uint256","nodeType":"ElementaryTypeName","src":"14741:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14740:9:96"},"scope":23039,"src":"14662:311:96","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":23003,"nodeType":"Block","src":"15067:232:96","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":22988,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22980,"src":"15085:6:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":22989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15092:6:96","memberName":"length","nodeType":"MemberAccess","src":"15085:13:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22990,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22982,"src":"15102:6:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3332","id":22991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15111:2:96","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"15102:11:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15085:28:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f427974657333325f6f75744f66426f756e6473","id":22994,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15115:23:96","typeDescriptions":{"typeIdentifier":"t_stringliteral_95abc635681816f3b423f999d8035c1cc722b70e3d801f56cd1748a4f5810fa2","typeString":"literal_string \"toBytes32_outOfBounds\""},"value":"toBytes32_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_95abc635681816f3b423f999d8035c1cc722b70e3d801f56cd1748a4f5810fa2","typeString":"literal_string \"toBytes32_outOfBounds\""}],"id":22987,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"15077:7:96","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15077:62:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22996,"nodeType":"ExpressionStatement","src":"15077:62:96"},{"assignments":[22998],"declarations":[{"constant":false,"id":22998,"mutability":"mutable","name":"tempBytes32","nameLocation":"15157:11:96","nodeType":"VariableDeclaration","scope":23003,"src":"15149:19:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":22997,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15149:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":22999,"nodeType":"VariableDeclarationStatement","src":"15149:19:96"},{"AST":{"nativeSrc":"15188:76:96","nodeType":"YulBlock","src":"15188:76:96","statements":[{"nativeSrc":"15202:52:96","nodeType":"YulAssignment","src":"15202:52:96","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nativeSrc":"15231:6:96","nodeType":"YulIdentifier","src":"15231:6:96"},{"kind":"number","nativeSrc":"15239:4:96","nodeType":"YulLiteral","src":"15239:4:96","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15227:3:96","nodeType":"YulIdentifier","src":"15227:3:96"},"nativeSrc":"15227:17:96","nodeType":"YulFunctionCall","src":"15227:17:96"},{"name":"_start","nativeSrc":"15246:6:96","nodeType":"YulIdentifier","src":"15246:6:96"}],"functionName":{"name":"add","nativeSrc":"15223:3:96","nodeType":"YulIdentifier","src":"15223:3:96"},"nativeSrc":"15223:30:96","nodeType":"YulFunctionCall","src":"15223:30:96"}],"functionName":{"name":"mload","nativeSrc":"15217:5:96","nodeType":"YulIdentifier","src":"15217:5:96"},"nativeSrc":"15217:37:96","nodeType":"YulFunctionCall","src":"15217:37:96"},"variableNames":[{"name":"tempBytes32","nativeSrc":"15202:11:96","nodeType":"YulIdentifier","src":"15202:11:96"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":22980,"isOffset":false,"isSlot":false,"src":"15231:6:96","valueSize":1},{"declaration":22982,"isOffset":false,"isSlot":false,"src":"15246:6:96","valueSize":1},{"declaration":22998,"isOffset":false,"isSlot":false,"src":"15202:11:96","valueSize":1}],"id":23000,"nodeType":"InlineAssembly","src":"15179:85:96"},{"expression":{"id":23001,"name":"tempBytes32","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22998,"src":"15281:11:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":22986,"id":23002,"nodeType":"Return","src":"15274:18:96"}]},"id":23004,"implemented":true,"kind":"function","modifiers":[],"name":"toBytes32","nameLocation":"14988:9:96","nodeType":"FunctionDefinition","parameters":{"id":22983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22980,"mutability":"mutable","name":"_bytes","nameLocation":"15011:6:96","nodeType":"VariableDeclaration","scope":23004,"src":"14998:19:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":22979,"name":"bytes","nodeType":"ElementaryTypeName","src":"14998:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":22982,"mutability":"mutable","name":"_start","nameLocation":"15027:6:96","nodeType":"VariableDeclaration","scope":23004,"src":"15019:14:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22981,"name":"uint256","nodeType":"ElementaryTypeName","src":"15019:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14997:37:96"},"returnParameters":{"id":22986,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22985,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23004,"src":"15058:7:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":22984,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15058:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"15057:9:96"},"scope":23039,"src":"14979:320:96","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":23020,"nodeType":"Block","src":"15398:1323:96","statements":[{"assignments":[23014],"declarations":[{"constant":false,"id":23014,"mutability":"mutable","name":"success","nameLocation":"15413:7:96","nodeType":"VariableDeclaration","scope":23020,"src":"15408:12:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23013,"name":"bool","nodeType":"ElementaryTypeName","src":"15408:4:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":23016,"initialValue":{"hexValue":"74727565","id":23015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"15423:4:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"nodeType":"VariableDeclarationStatement","src":"15408:19:96"},{"AST":{"nativeSrc":"15447:1243:96","nodeType":"YulBlock","src":"15447:1243:96","statements":[{"nativeSrc":"15461:30:96","nodeType":"YulVariableDeclaration","src":"15461:30:96","value":{"arguments":[{"name":"_preBytes","nativeSrc":"15481:9:96","nodeType":"YulIdentifier","src":"15481:9:96"}],"functionName":{"name":"mload","nativeSrc":"15475:5:96","nodeType":"YulIdentifier","src":"15475:5:96"},"nativeSrc":"15475:16:96","nodeType":"YulFunctionCall","src":"15475:16:96"},"variables":[{"name":"length","nativeSrc":"15465:6:96","nodeType":"YulTypedName","src":"15465:6:96","type":""}]},{"cases":[{"body":{"nativeSrc":"15624:961:96","nodeType":"YulBlock","src":"15624:961:96","statements":[{"nativeSrc":"15853:11:96","nodeType":"YulVariableDeclaration","src":"15853:11:96","value":{"kind":"number","nativeSrc":"15863:1:96","nodeType":"YulLiteral","src":"15863:1:96","type":"","value":"1"},"variables":[{"name":"cb","nativeSrc":"15857:2:96","nodeType":"YulTypedName","src":"15857:2:96","type":""}]},{"nativeSrc":"15882:30:96","nodeType":"YulVariableDeclaration","src":"15882:30:96","value":{"arguments":[{"name":"_preBytes","nativeSrc":"15896:9:96","nodeType":"YulIdentifier","src":"15896:9:96"},{"kind":"number","nativeSrc":"15907:4:96","nodeType":"YulLiteral","src":"15907:4:96","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15892:3:96","nodeType":"YulIdentifier","src":"15892:3:96"},"nativeSrc":"15892:20:96","nodeType":"YulFunctionCall","src":"15892:20:96"},"variables":[{"name":"mc","nativeSrc":"15886:2:96","nodeType":"YulTypedName","src":"15886:2:96","type":""}]},{"nativeSrc":"15929:26:96","nodeType":"YulVariableDeclaration","src":"15929:26:96","value":{"arguments":[{"name":"mc","nativeSrc":"15944:2:96","nodeType":"YulIdentifier","src":"15944:2:96"},{"name":"length","nativeSrc":"15948:6:96","nodeType":"YulIdentifier","src":"15948:6:96"}],"functionName":{"name":"add","nativeSrc":"15940:3:96","nodeType":"YulIdentifier","src":"15940:3:96"},"nativeSrc":"15940:15:96","nodeType":"YulFunctionCall","src":"15940:15:96"},"variables":[{"name":"end","nativeSrc":"15933:3:96","nodeType":"YulTypedName","src":"15933:3:96","type":""}]},{"body":{"nativeSrc":"16287:284:96","nodeType":"YulBlock","src":"16287:284:96","statements":[{"body":{"nativeSrc":"16423:130:96","nodeType":"YulBlock","src":"16423:130:96","statements":[{"nativeSrc":"16487:12:96","nodeType":"YulAssignment","src":"16487:12:96","value":{"kind":"number","nativeSrc":"16498:1:96","nodeType":"YulLiteral","src":"16498:1:96","type":"","value":"0"},"variableNames":[{"name":"success","nativeSrc":"16487:7:96","nodeType":"YulIdentifier","src":"16487:7:96"}]},{"nativeSrc":"16524:7:96","nodeType":"YulAssignment","src":"16524:7:96","value":{"kind":"number","nativeSrc":"16530:1:96","nodeType":"YulLiteral","src":"16530:1:96","type":"","value":"0"},"variableNames":[{"name":"cb","nativeSrc":"16524:2:96","nodeType":"YulIdentifier","src":"16524:2:96"}]}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"mc","nativeSrc":"16406:2:96","nodeType":"YulIdentifier","src":"16406:2:96"}],"functionName":{"name":"mload","nativeSrc":"16400:5:96","nodeType":"YulIdentifier","src":"16400:5:96"},"nativeSrc":"16400:9:96","nodeType":"YulFunctionCall","src":"16400:9:96"},{"arguments":[{"name":"cc","nativeSrc":"16417:2:96","nodeType":"YulIdentifier","src":"16417:2:96"}],"functionName":{"name":"mload","nativeSrc":"16411:5:96","nodeType":"YulIdentifier","src":"16411:5:96"},"nativeSrc":"16411:9:96","nodeType":"YulFunctionCall","src":"16411:9:96"}],"functionName":{"name":"eq","nativeSrc":"16397:2:96","nodeType":"YulIdentifier","src":"16397:2:96"},"nativeSrc":"16397:24:96","nodeType":"YulFunctionCall","src":"16397:24:96"}],"functionName":{"name":"iszero","nativeSrc":"16390:6:96","nodeType":"YulIdentifier","src":"16390:6:96"},"nativeSrc":"16390:32:96","nodeType":"YulFunctionCall","src":"16390:32:96"},"nativeSrc":"16387:166:96","nodeType":"YulIf","src":"16387:166:96"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"mc","nativeSrc":"16169:2:96","nodeType":"YulIdentifier","src":"16169:2:96"},{"name":"end","nativeSrc":"16173:3:96","nodeType":"YulIdentifier","src":"16173:3:96"}],"functionName":{"name":"lt","nativeSrc":"16166:2:96","nodeType":"YulIdentifier","src":"16166:2:96"},"nativeSrc":"16166:11:96","nodeType":"YulFunctionCall","src":"16166:11:96"},{"name":"cb","nativeSrc":"16179:2:96","nodeType":"YulIdentifier","src":"16179:2:96"}],"functionName":{"name":"add","nativeSrc":"16162:3:96","nodeType":"YulIdentifier","src":"16162:3:96"},"nativeSrc":"16162:20:96","nodeType":"YulFunctionCall","src":"16162:20:96"},{"kind":"number","nativeSrc":"16184:1:96","nodeType":"YulLiteral","src":"16184:1:96","type":"","value":"2"}],"functionName":{"name":"eq","nativeSrc":"16159:2:96","nodeType":"YulIdentifier","src":"16159:2:96"},"nativeSrc":"16159:27:96","nodeType":"YulFunctionCall","src":"16159:27:96"},"nativeSrc":"15973:598:96","nodeType":"YulForLoop","post":{"nativeSrc":"16187:99:96","nodeType":"YulBlock","src":"16187:99:96","statements":[{"nativeSrc":"16209:19:96","nodeType":"YulAssignment","src":"16209:19:96","value":{"arguments":[{"name":"mc","nativeSrc":"16219:2:96","nodeType":"YulIdentifier","src":"16219:2:96"},{"kind":"number","nativeSrc":"16223:4:96","nodeType":"YulLiteral","src":"16223:4:96","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16215:3:96","nodeType":"YulIdentifier","src":"16215:3:96"},"nativeSrc":"16215:13:96","nodeType":"YulFunctionCall","src":"16215:13:96"},"variableNames":[{"name":"mc","nativeSrc":"16209:2:96","nodeType":"YulIdentifier","src":"16209:2:96"}]},{"nativeSrc":"16249:19:96","nodeType":"YulAssignment","src":"16249:19:96","value":{"arguments":[{"name":"cc","nativeSrc":"16259:2:96","nodeType":"YulIdentifier","src":"16259:2:96"},{"kind":"number","nativeSrc":"16263:4:96","nodeType":"YulLiteral","src":"16263:4:96","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16255:3:96","nodeType":"YulIdentifier","src":"16255:3:96"},"nativeSrc":"16255:13:96","nodeType":"YulFunctionCall","src":"16255:13:96"},"variableNames":[{"name":"cc","nativeSrc":"16249:2:96","nodeType":"YulIdentifier","src":"16249:2:96"}]}]},"pre":{"nativeSrc":"15977:181:96","nodeType":"YulBlock","src":"15977:181:96","statements":[{"nativeSrc":"15999:31:96","nodeType":"YulVariableDeclaration","src":"15999:31:96","value":{"arguments":[{"name":"_postBytes","nativeSrc":"16013:10:96","nodeType":"YulIdentifier","src":"16013:10:96"},{"kind":"number","nativeSrc":"16025:4:96","nodeType":"YulLiteral","src":"16025:4:96","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16009:3:96","nodeType":"YulIdentifier","src":"16009:3:96"},"nativeSrc":"16009:21:96","nodeType":"YulFunctionCall","src":"16009:21:96"},"variables":[{"name":"cc","nativeSrc":"16003:2:96","nodeType":"YulTypedName","src":"16003:2:96","type":""}]}]},"src":"15973:598:96"}]},"nativeSrc":"15617:968:96","nodeType":"YulCase","src":"15617:968:96","value":{"kind":"number","nativeSrc":"15622:1:96","nodeType":"YulLiteral","src":"15622:1:96","type":"","value":"1"}},{"body":{"nativeSrc":"16606:74:96","nodeType":"YulBlock","src":"16606:74:96","statements":[{"nativeSrc":"16654:12:96","nodeType":"YulAssignment","src":"16654:12:96","value":{"kind":"number","nativeSrc":"16665:1:96","nodeType":"YulLiteral","src":"16665:1:96","type":"","value":"0"},"variableNames":[{"name":"success","nativeSrc":"16654:7:96","nodeType":"YulIdentifier","src":"16654:7:96"}]}]},"nativeSrc":"16598:82:96","nodeType":"YulCase","src":"16598:82:96","value":"default"}],"expression":{"arguments":[{"name":"length","nativeSrc":"15578:6:96","nodeType":"YulIdentifier","src":"15578:6:96"},{"arguments":[{"name":"_postBytes","nativeSrc":"15592:10:96","nodeType":"YulIdentifier","src":"15592:10:96"}],"functionName":{"name":"mload","nativeSrc":"15586:5:96","nodeType":"YulIdentifier","src":"15586:5:96"},"nativeSrc":"15586:17:96","nodeType":"YulFunctionCall","src":"15586:17:96"}],"functionName":{"name":"eq","nativeSrc":"15575:2:96","nodeType":"YulIdentifier","src":"15575:2:96"},"nativeSrc":"15575:29:96","nodeType":"YulFunctionCall","src":"15575:29:96"},"nativeSrc":"15568:1112:96","nodeType":"YulSwitch","src":"15568:1112:96"}]},"evmVersion":"paris","externalReferences":[{"declaration":23008,"isOffset":false,"isSlot":false,"src":"15592:10:96","valueSize":1},{"declaration":23008,"isOffset":false,"isSlot":false,"src":"16013:10:96","valueSize":1},{"declaration":23006,"isOffset":false,"isSlot":false,"src":"15481:9:96","valueSize":1},{"declaration":23006,"isOffset":false,"isSlot":false,"src":"15896:9:96","valueSize":1},{"declaration":23014,"isOffset":false,"isSlot":false,"src":"16487:7:96","valueSize":1},{"declaration":23014,"isOffset":false,"isSlot":false,"src":"16654:7:96","valueSize":1}],"id":23017,"nodeType":"InlineAssembly","src":"15438:1252:96"},{"expression":{"id":23018,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23014,"src":"16707:7:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":23012,"id":23019,"nodeType":"Return","src":"16700:14:96"}]},"id":23021,"implemented":true,"kind":"function","modifiers":[],"name":"equal","nameLocation":"15314:5:96","nodeType":"FunctionDefinition","parameters":{"id":23009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23006,"mutability":"mutable","name":"_preBytes","nameLocation":"15333:9:96","nodeType":"VariableDeclaration","scope":23021,"src":"15320:22:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":23005,"name":"bytes","nodeType":"ElementaryTypeName","src":"15320:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":23008,"mutability":"mutable","name":"_postBytes","nameLocation":"15357:10:96","nodeType":"VariableDeclaration","scope":23021,"src":"15344:23:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":23007,"name":"bytes","nodeType":"ElementaryTypeName","src":"15344:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"15319:49:96"},"returnParameters":{"id":23012,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23011,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23021,"src":"15392:4:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23010,"name":"bool","nodeType":"ElementaryTypeName","src":"15392:4:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15391:6:96"},"scope":23039,"src":"15305:1416:96","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":23037,"nodeType":"Block","src":"16878:2559:96","statements":[{"assignments":[23031],"declarations":[{"constant":false,"id":23031,"mutability":"mutable","name":"success","nameLocation":"16893:7:96","nodeType":"VariableDeclaration","scope":23037,"src":"16888:12:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23030,"name":"bool","nodeType":"ElementaryTypeName","src":"16888:4:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":23033,"initialValue":{"hexValue":"74727565","id":23032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"16903:4:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"nodeType":"VariableDeclarationStatement","src":"16888:19:96"},{"AST":{"nativeSrc":"16927:2479:96","nodeType":"YulBlock","src":"16927:2479:96","statements":[{"nativeSrc":"16986:34:96","nodeType":"YulVariableDeclaration","src":"16986:34:96","value":{"arguments":[{"name":"_preBytes.slot","nativeSrc":"17005:14:96","nodeType":"YulIdentifier","src":"17005:14:96"}],"functionName":{"name":"sload","nativeSrc":"16999:5:96","nodeType":"YulIdentifier","src":"16999:5:96"},"nativeSrc":"16999:21:96","nodeType":"YulFunctionCall","src":"16999:21:96"},"variables":[{"name":"fslot","nativeSrc":"16990:5:96","nodeType":"YulTypedName","src":"16990:5:96","type":""}]},{"nativeSrc":"17111:76:96","nodeType":"YulVariableDeclaration","src":"17111:76:96","value":{"arguments":[{"arguments":[{"name":"fslot","nativeSrc":"17134:5:96","nodeType":"YulIdentifier","src":"17134:5:96"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"17149:5:96","nodeType":"YulLiteral","src":"17149:5:96","type":"","value":"0x100"},{"arguments":[{"arguments":[{"name":"fslot","nativeSrc":"17167:5:96","nodeType":"YulIdentifier","src":"17167:5:96"},{"kind":"number","nativeSrc":"17174:1:96","nodeType":"YulLiteral","src":"17174:1:96","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"17163:3:96","nodeType":"YulIdentifier","src":"17163:3:96"},"nativeSrc":"17163:13:96","nodeType":"YulFunctionCall","src":"17163:13:96"}],"functionName":{"name":"iszero","nativeSrc":"17156:6:96","nodeType":"YulIdentifier","src":"17156:6:96"},"nativeSrc":"17156:21:96","nodeType":"YulFunctionCall","src":"17156:21:96"}],"functionName":{"name":"mul","nativeSrc":"17145:3:96","nodeType":"YulIdentifier","src":"17145:3:96"},"nativeSrc":"17145:33:96","nodeType":"YulFunctionCall","src":"17145:33:96"},{"kind":"number","nativeSrc":"17180:1:96","nodeType":"YulLiteral","src":"17180:1:96","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"17141:3:96","nodeType":"YulIdentifier","src":"17141:3:96"},"nativeSrc":"17141:41:96","nodeType":"YulFunctionCall","src":"17141:41:96"}],"functionName":{"name":"and","nativeSrc":"17130:3:96","nodeType":"YulIdentifier","src":"17130:3:96"},"nativeSrc":"17130:53:96","nodeType":"YulFunctionCall","src":"17130:53:96"},{"kind":"number","nativeSrc":"17185:1:96","nodeType":"YulLiteral","src":"17185:1:96","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"17126:3:96","nodeType":"YulIdentifier","src":"17126:3:96"},"nativeSrc":"17126:61:96","nodeType":"YulFunctionCall","src":"17126:61:96"},"variables":[{"name":"slength","nativeSrc":"17115:7:96","nodeType":"YulTypedName","src":"17115:7:96","type":""}]},{"nativeSrc":"17200:32:96","nodeType":"YulVariableDeclaration","src":"17200:32:96","value":{"arguments":[{"name":"_postBytes","nativeSrc":"17221:10:96","nodeType":"YulIdentifier","src":"17221:10:96"}],"functionName":{"name":"mload","nativeSrc":"17215:5:96","nodeType":"YulIdentifier","src":"17215:5:96"},"nativeSrc":"17215:17:96","nodeType":"YulFunctionCall","src":"17215:17:96"},"variables":[{"name":"mlength","nativeSrc":"17204:7:96","nodeType":"YulTypedName","src":"17204:7:96","type":""}]},{"cases":[{"body":{"nativeSrc":"17356:1945:96","nodeType":"YulBlock","src":"17356:1945:96","statements":[{"body":{"nativeSrc":"17667:1620:96","nodeType":"YulBlock","src":"17667:1620:96","statements":[{"cases":[{"body":{"nativeSrc":"17739:340:96","nodeType":"YulBlock","src":"17739:340:96","statements":[{"nativeSrc":"17832:38:96","nodeType":"YulAssignment","src":"17832:38:96","value":{"arguments":[{"arguments":[{"name":"fslot","nativeSrc":"17849:5:96","nodeType":"YulIdentifier","src":"17849:5:96"},{"kind":"number","nativeSrc":"17856:5:96","nodeType":"YulLiteral","src":"17856:5:96","type":"","value":"0x100"}],"functionName":{"name":"div","nativeSrc":"17845:3:96","nodeType":"YulIdentifier","src":"17845:3:96"},"nativeSrc":"17845:17:96","nodeType":"YulFunctionCall","src":"17845:17:96"},{"kind":"number","nativeSrc":"17864:5:96","nodeType":"YulLiteral","src":"17864:5:96","type":"","value":"0x100"}],"functionName":{"name":"mul","nativeSrc":"17841:3:96","nodeType":"YulIdentifier","src":"17841:3:96"},"nativeSrc":"17841:29:96","nodeType":"YulFunctionCall","src":"17841:29:96"},"variableNames":[{"name":"fslot","nativeSrc":"17832:5:96","nodeType":"YulIdentifier","src":"17832:5:96"}]},{"body":{"nativeSrc":"17947:110:96","nodeType":"YulBlock","src":"17947:110:96","statements":[{"nativeSrc":"18019:12:96","nodeType":"YulAssignment","src":"18019:12:96","value":{"kind":"number","nativeSrc":"18030:1:96","nodeType":"YulLiteral","src":"18030:1:96","type":"","value":"0"},"variableNames":[{"name":"success","nativeSrc":"18019:7:96","nodeType":"YulIdentifier","src":"18019:7:96"}]}]},"condition":{"arguments":[{"arguments":[{"name":"fslot","nativeSrc":"17909:5:96","nodeType":"YulIdentifier","src":"17909:5:96"},{"arguments":[{"arguments":[{"name":"_postBytes","nativeSrc":"17926:10:96","nodeType":"YulIdentifier","src":"17926:10:96"},{"kind":"number","nativeSrc":"17938:4:96","nodeType":"YulLiteral","src":"17938:4:96","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17922:3:96","nodeType":"YulIdentifier","src":"17922:3:96"},"nativeSrc":"17922:21:96","nodeType":"YulFunctionCall","src":"17922:21:96"}],"functionName":{"name":"mload","nativeSrc":"17916:5:96","nodeType":"YulIdentifier","src":"17916:5:96"},"nativeSrc":"17916:28:96","nodeType":"YulFunctionCall","src":"17916:28:96"}],"functionName":{"name":"eq","nativeSrc":"17906:2:96","nodeType":"YulIdentifier","src":"17906:2:96"},"nativeSrc":"17906:39:96","nodeType":"YulFunctionCall","src":"17906:39:96"}],"functionName":{"name":"iszero","nativeSrc":"17899:6:96","nodeType":"YulIdentifier","src":"17899:6:96"},"nativeSrc":"17899:47:96","nodeType":"YulFunctionCall","src":"17899:47:96"},"nativeSrc":"17896:161:96","nodeType":"YulIf","src":"17896:161:96"}]},"nativeSrc":"17732:347:96","nodeType":"YulCase","src":"17732:347:96","value":{"kind":"number","nativeSrc":"17737:1:96","nodeType":"YulLiteral","src":"17737:1:96","type":"","value":"1"}},{"body":{"nativeSrc":"18108:1161:96","nodeType":"YulBlock","src":"18108:1161:96","statements":[{"nativeSrc":"18377:11:96","nodeType":"YulVariableDeclaration","src":"18377:11:96","value":{"kind":"number","nativeSrc":"18387:1:96","nodeType":"YulLiteral","src":"18387:1:96","type":"","value":"1"},"variables":[{"name":"cb","nativeSrc":"18381:2:96","nodeType":"YulTypedName","src":"18381:2:96","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18501:3:96","nodeType":"YulLiteral","src":"18501:3:96","type":"","value":"0x0"},{"name":"_preBytes.slot","nativeSrc":"18506:14:96","nodeType":"YulIdentifier","src":"18506:14:96"}],"functionName":{"name":"mstore","nativeSrc":"18494:6:96","nodeType":"YulIdentifier","src":"18494:6:96"},"nativeSrc":"18494:27:96","nodeType":"YulFunctionCall","src":"18494:27:96"},"nativeSrc":"18494:27:96","nodeType":"YulExpressionStatement","src":"18494:27:96"},{"nativeSrc":"18546:30:96","nodeType":"YulVariableDeclaration","src":"18546:30:96","value":{"arguments":[{"kind":"number","nativeSrc":"18566:3:96","nodeType":"YulLiteral","src":"18566:3:96","type":"","value":"0x0"},{"kind":"number","nativeSrc":"18571:4:96","nodeType":"YulLiteral","src":"18571:4:96","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"18556:9:96","nodeType":"YulIdentifier","src":"18556:9:96"},"nativeSrc":"18556:20:96","nodeType":"YulFunctionCall","src":"18556:20:96"},"variables":[{"name":"sc","nativeSrc":"18550:2:96","nodeType":"YulTypedName","src":"18550:2:96","type":""}]},{"nativeSrc":"18602:31:96","nodeType":"YulVariableDeclaration","src":"18602:31:96","value":{"arguments":[{"name":"_postBytes","nativeSrc":"18616:10:96","nodeType":"YulIdentifier","src":"18616:10:96"},{"kind":"number","nativeSrc":"18628:4:96","nodeType":"YulLiteral","src":"18628:4:96","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"18612:3:96","nodeType":"YulIdentifier","src":"18612:3:96"},"nativeSrc":"18612:21:96","nodeType":"YulFunctionCall","src":"18612:21:96"},"variables":[{"name":"mc","nativeSrc":"18606:2:96","nodeType":"YulTypedName","src":"18606:2:96","type":""}]},{"nativeSrc":"18658:27:96","nodeType":"YulVariableDeclaration","src":"18658:27:96","value":{"arguments":[{"name":"mc","nativeSrc":"18673:2:96","nodeType":"YulIdentifier","src":"18673:2:96"},{"name":"mlength","nativeSrc":"18677:7:96","nodeType":"YulIdentifier","src":"18677:7:96"}],"functionName":{"name":"add","nativeSrc":"18669:3:96","nodeType":"YulIdentifier","src":"18669:3:96"},"nativeSrc":"18669:16:96","nodeType":"YulFunctionCall","src":"18669:16:96"},"variables":[{"name":"end","nativeSrc":"18662:3:96","nodeType":"YulTypedName","src":"18662:3:96","type":""}]},{"body":{"nativeSrc":"18993:254:96","nodeType":"YulBlock","src":"18993:254:96","statements":[{"body":{"nativeSrc":"19059:162:96","nodeType":"YulBlock","src":"19059:162:96","statements":[{"nativeSrc":"19139:12:96","nodeType":"YulAssignment","src":"19139:12:96","value":{"kind":"number","nativeSrc":"19150:1:96","nodeType":"YulLiteral","src":"19150:1:96","type":"","value":"0"},"variableNames":[{"name":"success","nativeSrc":"19139:7:96","nodeType":"YulIdentifier","src":"19139:7:96"}]},{"nativeSrc":"19184:7:96","nodeType":"YulAssignment","src":"19184:7:96","value":{"kind":"number","nativeSrc":"19190:1:96","nodeType":"YulLiteral","src":"19190:1:96","type":"","value":"0"},"variableNames":[{"name":"cb","nativeSrc":"19184:2:96","nodeType":"YulIdentifier","src":"19184:2:96"}]}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"sc","nativeSrc":"19042:2:96","nodeType":"YulIdentifier","src":"19042:2:96"}],"functionName":{"name":"sload","nativeSrc":"19036:5:96","nodeType":"YulIdentifier","src":"19036:5:96"},"nativeSrc":"19036:9:96","nodeType":"YulFunctionCall","src":"19036:9:96"},{"arguments":[{"name":"mc","nativeSrc":"19053:2:96","nodeType":"YulIdentifier","src":"19053:2:96"}],"functionName":{"name":"mload","nativeSrc":"19047:5:96","nodeType":"YulIdentifier","src":"19047:5:96"},"nativeSrc":"19047:9:96","nodeType":"YulFunctionCall","src":"19047:9:96"}],"functionName":{"name":"eq","nativeSrc":"19033:2:96","nodeType":"YulIdentifier","src":"19033:2:96"},"nativeSrc":"19033:24:96","nodeType":"YulFunctionCall","src":"19033:24:96"}],"functionName":{"name":"iszero","nativeSrc":"19026:6:96","nodeType":"YulIdentifier","src":"19026:6:96"},"nativeSrc":"19026:32:96","nodeType":"YulFunctionCall","src":"19026:32:96"},"nativeSrc":"19023:198:96","nodeType":"YulIf","src":"19023:198:96"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"mc","nativeSrc":"18854:2:96","nodeType":"YulIdentifier","src":"18854:2:96"},{"name":"end","nativeSrc":"18858:3:96","nodeType":"YulIdentifier","src":"18858:3:96"}],"functionName":{"name":"lt","nativeSrc":"18851:2:96","nodeType":"YulIdentifier","src":"18851:2:96"},"nativeSrc":"18851:11:96","nodeType":"YulFunctionCall","src":"18851:11:96"},{"name":"cb","nativeSrc":"18864:2:96","nodeType":"YulIdentifier","src":"18864:2:96"}],"functionName":{"name":"add","nativeSrc":"18847:3:96","nodeType":"YulIdentifier","src":"18847:3:96"},"nativeSrc":"18847:20:96","nodeType":"YulFunctionCall","src":"18847:20:96"},{"kind":"number","nativeSrc":"18869:1:96","nodeType":"YulLiteral","src":"18869:1:96","type":"","value":"2"}],"functionName":{"name":"eq","nativeSrc":"18844:2:96","nodeType":"YulIdentifier","src":"18844:2:96"},"nativeSrc":"18844:27:96","nodeType":"YulFunctionCall","src":"18844:27:96"},"nativeSrc":"18837:410:96","nodeType":"YulForLoop","post":{"nativeSrc":"18872:120:96","nodeType":"YulBlock","src":"18872:120:96","statements":[{"nativeSrc":"18902:16:96","nodeType":"YulAssignment","src":"18902:16:96","value":{"arguments":[{"name":"sc","nativeSrc":"18912:2:96","nodeType":"YulIdentifier","src":"18912:2:96"},{"kind":"number","nativeSrc":"18916:1:96","nodeType":"YulLiteral","src":"18916:1:96","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"18908:3:96","nodeType":"YulIdentifier","src":"18908:3:96"},"nativeSrc":"18908:10:96","nodeType":"YulFunctionCall","src":"18908:10:96"},"variableNames":[{"name":"sc","nativeSrc":"18902:2:96","nodeType":"YulIdentifier","src":"18902:2:96"}]},{"nativeSrc":"18947:19:96","nodeType":"YulAssignment","src":"18947:19:96","value":{"arguments":[{"name":"mc","nativeSrc":"18957:2:96","nodeType":"YulIdentifier","src":"18957:2:96"},{"kind":"number","nativeSrc":"18961:4:96","nodeType":"YulLiteral","src":"18961:4:96","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"18953:3:96","nodeType":"YulIdentifier","src":"18953:3:96"},"nativeSrc":"18953:13:96","nodeType":"YulFunctionCall","src":"18953:13:96"},"variableNames":[{"name":"mc","nativeSrc":"18947:2:96","nodeType":"YulIdentifier","src":"18947:2:96"}]}]},"pre":{"nativeSrc":"18841:2:96","nodeType":"YulBlock","src":"18841:2:96","statements":[]},"src":"18837:410:96"}]},"nativeSrc":"18100:1169:96","nodeType":"YulCase","src":"18100:1169:96","value":"default"}],"expression":{"arguments":[{"name":"slength","nativeSrc":"17699:7:96","nodeType":"YulIdentifier","src":"17699:7:96"},{"kind":"number","nativeSrc":"17708:2:96","nodeType":"YulLiteral","src":"17708:2:96","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"17696:2:96","nodeType":"YulIdentifier","src":"17696:2:96"},"nativeSrc":"17696:15:96","nodeType":"YulFunctionCall","src":"17696:15:96"},"nativeSrc":"17689:1580:96","nodeType":"YulSwitch","src":"17689:1580:96"}]},"condition":{"arguments":[{"arguments":[{"name":"slength","nativeSrc":"17657:7:96","nodeType":"YulIdentifier","src":"17657:7:96"}],"functionName":{"name":"iszero","nativeSrc":"17650:6:96","nodeType":"YulIdentifier","src":"17650:6:96"},"nativeSrc":"17650:15:96","nodeType":"YulFunctionCall","src":"17650:15:96"}],"functionName":{"name":"iszero","nativeSrc":"17643:6:96","nodeType":"YulIdentifier","src":"17643:6:96"},"nativeSrc":"17643:23:96","nodeType":"YulFunctionCall","src":"17643:23:96"},"nativeSrc":"17640:1647:96","nodeType":"YulIf","src":"17640:1647:96"}]},"nativeSrc":"17349:1952:96","nodeType":"YulCase","src":"17349:1952:96","value":{"kind":"number","nativeSrc":"17354:1:96","nodeType":"YulLiteral","src":"17354:1:96","type":"","value":"1"}},{"body":{"nativeSrc":"19322:74:96","nodeType":"YulBlock","src":"19322:74:96","statements":[{"nativeSrc":"19370:12:96","nodeType":"YulAssignment","src":"19370:12:96","value":{"kind":"number","nativeSrc":"19381:1:96","nodeType":"YulLiteral","src":"19381:1:96","type":"","value":"0"},"variableNames":[{"name":"success","nativeSrc":"19370:7:96","nodeType":"YulIdentifier","src":"19370:7:96"}]}]},"nativeSrc":"19314:82:96","nodeType":"YulCase","src":"19314:82:96","value":"default"}],"expression":{"arguments":[{"name":"slength","nativeSrc":"17319:7:96","nodeType":"YulIdentifier","src":"17319:7:96"},{"name":"mlength","nativeSrc":"17328:7:96","nodeType":"YulIdentifier","src":"17328:7:96"}],"functionName":{"name":"eq","nativeSrc":"17316:2:96","nodeType":"YulIdentifier","src":"17316:2:96"},"nativeSrc":"17316:20:96","nodeType":"YulFunctionCall","src":"17316:20:96"},"nativeSrc":"17309:2087:96","nodeType":"YulSwitch","src":"17309:2087:96"}]},"evmVersion":"paris","externalReferences":[{"declaration":23025,"isOffset":false,"isSlot":false,"src":"17221:10:96","valueSize":1},{"declaration":23025,"isOffset":false,"isSlot":false,"src":"17926:10:96","valueSize":1},{"declaration":23025,"isOffset":false,"isSlot":false,"src":"18616:10:96","valueSize":1},{"declaration":23023,"isOffset":false,"isSlot":true,"src":"17005:14:96","suffix":"slot","valueSize":1},{"declaration":23023,"isOffset":false,"isSlot":true,"src":"18506:14:96","suffix":"slot","valueSize":1},{"declaration":23031,"isOffset":false,"isSlot":false,"src":"18019:7:96","valueSize":1},{"declaration":23031,"isOffset":false,"isSlot":false,"src":"19139:7:96","valueSize":1},{"declaration":23031,"isOffset":false,"isSlot":false,"src":"19370:7:96","valueSize":1}],"id":23034,"nodeType":"InlineAssembly","src":"16918:2488:96"},{"expression":{"id":23035,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23031,"src":"19423:7:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":23029,"id":23036,"nodeType":"Return","src":"19416:14:96"}]},"id":23038,"implemented":true,"kind":"function","modifiers":[],"name":"equalStorage","nameLocation":"16736:12:96","nodeType":"FunctionDefinition","parameters":{"id":23026,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23023,"mutability":"mutable","name":"_preBytes","nameLocation":"16772:9:96","nodeType":"VariableDeclaration","scope":23038,"src":"16758:23:96","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":23022,"name":"bytes","nodeType":"ElementaryTypeName","src":"16758:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":23025,"mutability":"mutable","name":"_postBytes","nameLocation":"16804:10:96","nodeType":"VariableDeclaration","scope":23038,"src":"16791:23:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":23024,"name":"bytes","nodeType":"ElementaryTypeName","src":"16791:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"16748:72:96"},"returnParameters":{"id":23029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23028,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23038,"src":"16868:4:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23027,"name":"bool","nodeType":"ElementaryTypeName","src":"16868:4:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16867:6:96"},"scope":23039,"src":"16727:2710:96","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":23040,"src":"370:19069:96","usedErrors":[],"usedEvents":[]}],"src":"336:19104:96"},"id":96}},"contracts":{"@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/ExecutorOptions.sol":{"ExecutorOptions":{"abi":[{"inputs":[],"name":"Executor_InvalidLzComposeOption","type":"error"},{"inputs":[],"name":"Executor_InvalidLzReadOption","type":"error"},{"inputs":[],"name":"Executor_InvalidLzReceiveOption","type":"error"},{"inputs":[],"name":"Executor_InvalidNativeDropOption","type":"error"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220942d7bdfd3a1de5e1bccee2660ae5bd66a2b8a6e9922e695f2b82d1921fea9f964736f6c63430008190033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP5 0x2D PUSH28 0xDFD3A1DE5E1BCCEE2660AE5BD66A2B8A6E9922E695F2B82D1921FEA9 0xF9 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"145:4183:0:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;145:4183:0;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220942d7bdfd3a1de5e1bccee2660ae5bd66a2b8a6e9922e695f2b82d1921fea9f964736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP5 0x2D PUSH28 0xDFD3A1DE5E1BCCEE2660AE5BD66A2B8A6E9922E695F2B82D1921FEA9 0xF9 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"145:4183:0:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"decodeLzComposeOption(bytes calldata)":"infinite","decodeLzReadOption(bytes calldata)":"infinite","decodeLzReceiveOption(bytes calldata)":"infinite","decodeNativeDropOption(bytes calldata)":"infinite","encodeLzComposeOption(uint16,uint128,uint128)":"infinite","encodeLzReadOption(uint128,uint32,uint128)":"infinite","encodeLzReceiveOption(uint128,uint128)":"infinite","encodeNativeDropOption(uint128,bytes32)":"infinite","nextExecutorOption(bytes calldata,uint256)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"Executor_InvalidLzComposeOption\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Executor_InvalidLzReadOption\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Executor_InvalidLzReceiveOption\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Executor_InvalidNativeDropOption\",\"type\":\"error\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/ExecutorOptions.sol\":\"ExecutorOptions\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/ExecutorOptions.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nimport \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\\\";\\n\\nlibrary ExecutorOptions {\\n    using CalldataBytesLib for bytes;\\n\\n    uint8 internal constant WORKER_ID = 1;\\n\\n    uint8 internal constant OPTION_TYPE_LZRECEIVE = 1;\\n    uint8 internal constant OPTION_TYPE_NATIVE_DROP = 2;\\n    uint8 internal constant OPTION_TYPE_LZCOMPOSE = 3;\\n    uint8 internal constant OPTION_TYPE_ORDERED_EXECUTION = 4;\\n    uint8 internal constant OPTION_TYPE_LZREAD = 5;\\n\\n    error Executor_InvalidLzReceiveOption();\\n    error Executor_InvalidNativeDropOption();\\n    error Executor_InvalidLzComposeOption();\\n    error Executor_InvalidLzReadOption();\\n\\n    /// @dev decode the next executor option from the options starting from the specified cursor\\n    /// @param _options [executor_id][executor_option][executor_id][executor_option]...\\n    ///        executor_option = [option_size][option_type][option]\\n    ///        option_size = len(option_type) + len(option)\\n    ///        executor_id: uint8, option_size: uint16, option_type: uint8, option: bytes\\n    /// @param _cursor the cursor to start decoding from\\n    /// @return optionType the type of the option\\n    /// @return option the option of the executor\\n    /// @return cursor the cursor to start decoding the next executor option\\n    function nextExecutorOption(\\n        bytes calldata _options,\\n        uint256 _cursor\\n    ) internal pure returns (uint8 optionType, bytes calldata option, uint256 cursor) {\\n        unchecked {\\n            // skip worker id\\n            cursor = _cursor + 1;\\n\\n            // read option size\\n            uint16 size = _options.toU16(cursor);\\n            cursor += 2;\\n\\n            // read option type\\n            optionType = _options.toU8(cursor);\\n\\n            // startCursor and endCursor are used to slice the option from _options\\n            uint256 startCursor = cursor + 1; // skip option type\\n            uint256 endCursor = cursor + size;\\n            option = _options[startCursor:endCursor];\\n            cursor += size;\\n        }\\n    }\\n\\n    function decodeLzReceiveOption(bytes calldata _option) internal pure returns (uint128 gas, uint128 value) {\\n        if (_option.length != 16 && _option.length != 32) revert Executor_InvalidLzReceiveOption();\\n        gas = _option.toU128(0);\\n        value = _option.length == 32 ? _option.toU128(16) : 0;\\n    }\\n\\n    function decodeNativeDropOption(bytes calldata _option) internal pure returns (uint128 amount, bytes32 receiver) {\\n        if (_option.length != 48) revert Executor_InvalidNativeDropOption();\\n        amount = _option.toU128(0);\\n        receiver = _option.toB32(16);\\n    }\\n\\n    function decodeLzComposeOption(\\n        bytes calldata _option\\n    ) internal pure returns (uint16 index, uint128 gas, uint128 value) {\\n        if (_option.length != 18 && _option.length != 34) revert Executor_InvalidLzComposeOption();\\n        index = _option.toU16(0);\\n        gas = _option.toU128(2);\\n        value = _option.length == 34 ? _option.toU128(18) : 0;\\n    }\\n\\n    function decodeLzReadOption(\\n        bytes calldata _option\\n    ) internal pure returns (uint128 gas, uint32 calldataSize, uint128 value) {\\n        if (_option.length != 20 && _option.length != 36) revert Executor_InvalidLzReadOption();\\n        gas = _option.toU128(0);\\n        calldataSize = _option.toU32(16);\\n        value = _option.length == 36 ? _option.toU128(20) : 0;\\n    }\\n\\n    function encodeLzReceiveOption(uint128 _gas, uint128 _value) internal pure returns (bytes memory) {\\n        return _value == 0 ? abi.encodePacked(_gas) : abi.encodePacked(_gas, _value);\\n    }\\n\\n    function encodeNativeDropOption(uint128 _amount, bytes32 _receiver) internal pure returns (bytes memory) {\\n        return abi.encodePacked(_amount, _receiver);\\n    }\\n\\n    function encodeLzComposeOption(uint16 _index, uint128 _gas, uint128 _value) internal pure returns (bytes memory) {\\n        return _value == 0 ? abi.encodePacked(_index, _gas) : abi.encodePacked(_index, _gas, _value);\\n    }\\n\\n    function encodeLzReadOption(\\n        uint128 _gas,\\n        uint32 _calldataSize,\\n        uint128 _value\\n    ) internal pure returns (bytes memory) {\\n        return _value == 0 ? abi.encodePacked(_gas, _calldataSize) : abi.encodePacked(_gas, _calldataSize, _value);\\n    }\\n}\\n\",\"keccak256\":\"0x441b723f2f597be2ec2bb361fcf3f11852c23534db1cfa7d2ffff7e61d228e3c\",\"license\":\"LZBL-1.2\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nlibrary CalldataBytesLib {\\n    function toU8(bytes calldata _bytes, uint256 _start) internal pure returns (uint8) {\\n        return uint8(_bytes[_start]);\\n    }\\n\\n    function toU16(bytes calldata _bytes, uint256 _start) internal pure returns (uint16) {\\n        unchecked {\\n            uint256 end = _start + 2;\\n            return uint16(bytes2(_bytes[_start:end]));\\n        }\\n    }\\n\\n    function toU32(bytes calldata _bytes, uint256 _start) internal pure returns (uint32) {\\n        unchecked {\\n            uint256 end = _start + 4;\\n            return uint32(bytes4(_bytes[_start:end]));\\n        }\\n    }\\n\\n    function toU64(bytes calldata _bytes, uint256 _start) internal pure returns (uint64) {\\n        unchecked {\\n            uint256 end = _start + 8;\\n            return uint64(bytes8(_bytes[_start:end]));\\n        }\\n    }\\n\\n    function toU128(bytes calldata _bytes, uint256 _start) internal pure returns (uint128) {\\n        unchecked {\\n            uint256 end = _start + 16;\\n            return uint128(bytes16(_bytes[_start:end]));\\n        }\\n    }\\n\\n    function toU256(bytes calldata _bytes, uint256 _start) internal pure returns (uint256) {\\n        unchecked {\\n            uint256 end = _start + 32;\\n            return uint256(bytes32(_bytes[_start:end]));\\n        }\\n    }\\n\\n    function toAddr(bytes calldata _bytes, uint256 _start) internal pure returns (address) {\\n        unchecked {\\n            uint256 end = _start + 20;\\n            return address(bytes20(_bytes[_start:end]));\\n        }\\n    }\\n\\n    function toB32(bytes calldata _bytes, uint256 _start) internal pure returns (bytes32) {\\n        unchecked {\\n            uint256 end = _start + 32;\\n            return bytes32(_bytes[_start:end]);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875\",\"license\":\"LZBL-1.2\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol":{"DVNOptions":{"abi":[{"inputs":[],"name":"DVN_InvalidDVNIdx","type":"error"},{"inputs":[{"internalType":"uint256","name":"cursor","type":"uint256"}],"name":"DVN_InvalidDVNOptions","type":"error"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a3f4cf249084ef2ee5f05a0d64315adf1759729398664cdcedb5a763be39988364736f6c63430008190033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LOG3 DELEGATECALL 0xCF 0x24 SWAP1 DUP5 0xEF 0x2E 0xE5 CREATE GAS 0xD PUSH5 0x315ADF1759 PUSH19 0x9398664CDCEDB5A763BE39988364736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"345:6975:1:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;345:6975:1;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a3f4cf249084ef2ee5f05a0d64315adf1759729398664cdcedb5a763be39988364736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LOG3 DELEGATECALL 0xCF 0x24 SWAP1 DUP5 0xEF 0x2E 0xE5 CREATE GAS 0xD PUSH5 0x315ADF1759 PUSH19 0x9398664CDCEDB5A763BE39988364736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"345:6975:1:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"_insertDVNOptions(bytes memory[] memory,uint8[] memory,uint8,bytes memory)":"infinite","getNumDVNs(bytes memory)":"infinite","groupDVNOptionsByIdx(bytes memory)":"infinite","nextDVNOption(bytes calldata,uint256)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DVN_InvalidDVNIdx\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"cursor\",\"type\":\"uint256\"}],\"name\":\"DVN_InvalidDVNOptions\",\"type\":\"error\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\":\"DVNOptions\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nimport { BytesLib } from \\\"solidity-bytes-utils/contracts/BytesLib.sol\\\";\\n\\nimport { BitMap256 } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\\\";\\nimport { CalldataBytesLib } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\\\";\\n\\nlibrary DVNOptions {\\n    using CalldataBytesLib for bytes;\\n    using BytesLib for bytes;\\n\\n    uint8 internal constant WORKER_ID = 2;\\n    uint8 internal constant OPTION_TYPE_PRECRIME = 1;\\n\\n    error DVN_InvalidDVNIdx();\\n    error DVN_InvalidDVNOptions(uint256 cursor);\\n\\n    /// @dev group dvn options by its idx\\n    /// @param _options [dvn_id][dvn_option][dvn_id][dvn_option]...\\n    ///        dvn_option = [option_size][dvn_idx][option_type][option]\\n    ///        option_size = len(dvn_idx) + len(option_type) + len(option)\\n    ///        dvn_id: uint8, dvn_idx: uint8, option_size: uint16, option_type: uint8, option: bytes\\n    /// @return dvnOptions the grouped options, still share the same format of _options\\n    /// @return dvnIndices the dvn indices\\n    function groupDVNOptionsByIdx(\\n        bytes memory _options\\n    ) internal pure returns (bytes[] memory dvnOptions, uint8[] memory dvnIndices) {\\n        if (_options.length == 0) return (dvnOptions, dvnIndices);\\n\\n        uint8 numDVNs = getNumDVNs(_options);\\n\\n        // if there is only 1 dvn, we can just return the whole options\\n        if (numDVNs == 1) {\\n            dvnOptions = new bytes[](1);\\n            dvnOptions[0] = _options;\\n\\n            dvnIndices = new uint8[](1);\\n            dvnIndices[0] = _options.toUint8(3); // dvn idx\\n            return (dvnOptions, dvnIndices);\\n        }\\n\\n        // otherwise, we need to group the options by dvn_idx\\n        dvnIndices = new uint8[](numDVNs);\\n        dvnOptions = new bytes[](numDVNs);\\n        unchecked {\\n            uint256 cursor = 0;\\n            uint256 start = 0;\\n            uint8 lastDVNIdx = 255; // 255 is an invalid dvn_idx\\n\\n            while (cursor < _options.length) {\\n                ++cursor; // skip worker_id\\n\\n                // optionLength asserted in getNumDVNs (skip check)\\n                uint16 optionLength = _options.toUint16(cursor);\\n                cursor += 2;\\n\\n                // dvnIdx asserted in getNumDVNs (skip check)\\n                uint8 dvnIdx = _options.toUint8(cursor);\\n\\n                // dvnIdx must equal to the lastDVNIdx for the first option\\n                // so it is always skipped in the first option\\n                // this operation slices out options whenever the scan finds a different lastDVNIdx\\n                if (lastDVNIdx == 255) {\\n                    lastDVNIdx = dvnIdx;\\n                } else if (dvnIdx != lastDVNIdx) {\\n                    uint256 len = cursor - start - 3; // 3 is for worker_id and option_length\\n                    bytes memory opt = _options.slice(start, len);\\n                    _insertDVNOptions(dvnOptions, dvnIndices, lastDVNIdx, opt);\\n\\n                    // reset the start and lastDVNIdx\\n                    start += len;\\n                    lastDVNIdx = dvnIdx;\\n                }\\n\\n                cursor += optionLength;\\n            }\\n\\n            // skip check the cursor here because the cursor is asserted in getNumDVNs\\n            // if we have reached the end of the options, we need to process the last dvn\\n            uint256 size = cursor - start;\\n            bytes memory op = _options.slice(start, size);\\n            _insertDVNOptions(dvnOptions, dvnIndices, lastDVNIdx, op);\\n\\n            // revert dvnIndices to start from 0\\n            for (uint8 i = 0; i < numDVNs; ++i) {\\n                --dvnIndices[i];\\n            }\\n        }\\n    }\\n\\n    function _insertDVNOptions(\\n        bytes[] memory _dvnOptions,\\n        uint8[] memory _dvnIndices,\\n        uint8 _dvnIdx,\\n        bytes memory _newOptions\\n    ) internal pure {\\n        // dvnIdx starts from 0 but default value of dvnIndices is 0,\\n        // so we tell if the slot is empty by adding 1 to dvnIdx\\n        if (_dvnIdx == 255) revert DVN_InvalidDVNIdx();\\n        uint8 dvnIdxAdj = _dvnIdx + 1;\\n\\n        for (uint256 j = 0; j < _dvnIndices.length; ++j) {\\n            uint8 index = _dvnIndices[j];\\n            if (dvnIdxAdj == index) {\\n                _dvnOptions[j] = abi.encodePacked(_dvnOptions[j], _newOptions);\\n                break;\\n            } else if (index == 0) {\\n                // empty slot, that means it is the first time we see this dvn\\n                _dvnIndices[j] = dvnIdxAdj;\\n                _dvnOptions[j] = _newOptions;\\n                break;\\n            }\\n        }\\n    }\\n\\n    /// @dev get the number of unique dvns\\n    /// @param _options the format is the same as groupDVNOptionsByIdx\\n    function getNumDVNs(bytes memory _options) internal pure returns (uint8 numDVNs) {\\n        uint256 cursor = 0;\\n        BitMap256 bitmap;\\n\\n        // find number of unique dvn_idx\\n        unchecked {\\n            while (cursor < _options.length) {\\n                ++cursor; // skip worker_id\\n\\n                uint16 optionLength = _options.toUint16(cursor);\\n                cursor += 2;\\n                if (optionLength < 2) revert DVN_InvalidDVNOptions(cursor); // at least 1 byte for dvn_idx and 1 byte for option_type\\n\\n                uint8 dvnIdx = _options.toUint8(cursor);\\n\\n                // if dvnIdx is not set, increment numDVNs\\n                // max num of dvns is 255, 255 is an invalid dvn_idx\\n                // The order of the dvnIdx is not required to be sequential, as enforcing the order may weaken\\n                // the composability of the options. e.g. if we refrain from enforcing the order, an OApp that has\\n                // already enforced certain options can append additional options to the end of the enforced\\n                // ones without restrictions.\\n                if (dvnIdx == 255) revert DVN_InvalidDVNIdx();\\n                if (!bitmap.get(dvnIdx)) {\\n                    ++numDVNs;\\n                    bitmap = bitmap.set(dvnIdx);\\n                }\\n\\n                cursor += optionLength;\\n            }\\n        }\\n        if (cursor != _options.length) revert DVN_InvalidDVNOptions(cursor);\\n    }\\n\\n    /// @dev decode the next dvn option from _options starting from the specified cursor\\n    /// @param _options the format is the same as groupDVNOptionsByIdx\\n    /// @param _cursor the cursor to start decoding\\n    /// @return optionType the type of the option\\n    /// @return option the option\\n    /// @return cursor the cursor to start decoding the next option\\n    function nextDVNOption(\\n        bytes calldata _options,\\n        uint256 _cursor\\n    ) internal pure returns (uint8 optionType, bytes calldata option, uint256 cursor) {\\n        unchecked {\\n            // skip worker id\\n            cursor = _cursor + 1;\\n\\n            // read option size\\n            uint16 size = _options.toU16(cursor);\\n            cursor += 2;\\n\\n            // read option type\\n            optionType = _options.toU8(cursor + 1); // skip dvn_idx\\n\\n            // startCursor and endCursor are used to slice the option from _options\\n            uint256 startCursor = cursor + 2; // skip option type and dvn_idx\\n            uint256 endCursor = cursor + size;\\n            option = _options[startCursor:endCursor];\\n            cursor += size;\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35\",\"license\":\"LZBL-1.2\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nlibrary CalldataBytesLib {\\n    function toU8(bytes calldata _bytes, uint256 _start) internal pure returns (uint8) {\\n        return uint8(_bytes[_start]);\\n    }\\n\\n    function toU16(bytes calldata _bytes, uint256 _start) internal pure returns (uint16) {\\n        unchecked {\\n            uint256 end = _start + 2;\\n            return uint16(bytes2(_bytes[_start:end]));\\n        }\\n    }\\n\\n    function toU32(bytes calldata _bytes, uint256 _start) internal pure returns (uint32) {\\n        unchecked {\\n            uint256 end = _start + 4;\\n            return uint32(bytes4(_bytes[_start:end]));\\n        }\\n    }\\n\\n    function toU64(bytes calldata _bytes, uint256 _start) internal pure returns (uint64) {\\n        unchecked {\\n            uint256 end = _start + 8;\\n            return uint64(bytes8(_bytes[_start:end]));\\n        }\\n    }\\n\\n    function toU128(bytes calldata _bytes, uint256 _start) internal pure returns (uint128) {\\n        unchecked {\\n            uint256 end = _start + 16;\\n            return uint128(bytes16(_bytes[_start:end]));\\n        }\\n    }\\n\\n    function toU256(bytes calldata _bytes, uint256 _start) internal pure returns (uint256) {\\n        unchecked {\\n            uint256 end = _start + 32;\\n            return uint256(bytes32(_bytes[_start:end]));\\n        }\\n    }\\n\\n    function toAddr(bytes calldata _bytes, uint256 _start) internal pure returns (address) {\\n        unchecked {\\n            uint256 end = _start + 20;\\n            return address(bytes20(_bytes[_start:end]));\\n        }\\n    }\\n\\n    function toB32(bytes calldata _bytes, uint256 _start) internal pure returns (bytes32) {\\n        unchecked {\\n            uint256 end = _start + 32;\\n            return bytes32(_bytes[_start:end]);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875\",\"license\":\"LZBL-1.2\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\n// modified from https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/structs/BitMaps.sol\\npragma solidity ^0.8.20;\\n\\ntype BitMap256 is uint256;\\n\\nusing BitMaps for BitMap256 global;\\n\\nlibrary BitMaps {\\n    /**\\n     * @dev Returns whether the bit at `index` is set.\\n     */\\n    function get(BitMap256 bitmap, uint8 index) internal pure returns (bool) {\\n        uint256 mask = 1 << index;\\n        return BitMap256.unwrap(bitmap) & mask != 0;\\n    }\\n\\n    /**\\n     * @dev Sets the bit at `index`.\\n     */\\n    function set(BitMap256 bitmap, uint8 index) internal pure returns (BitMap256) {\\n        uint256 mask = 1 << index;\\n        return BitMap256.wrap(BitMap256.unwrap(bitmap) | mask);\\n    }\\n}\\n\",\"keccak256\":\"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9\",\"license\":\"MIT\"},\"solidity-bytes-utils/contracts/BytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: Unlicense\\n/*\\n * @title Solidity Bytes Arrays Utils\\n * @author Gon\\u00e7alo S\\u00e1 <goncalo.sa@consensys.net>\\n *\\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\\n *      The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\\n */\\npragma solidity >=0.8.0 <0.9.0;\\n\\n\\nlibrary BytesLib {\\n    function concat(\\n        bytes memory _preBytes,\\n        bytes memory _postBytes\\n    )\\n        internal\\n        pure\\n        returns (bytes memory)\\n    {\\n        bytes memory tempBytes;\\n\\n        assembly {\\n            // Get a location of some free memory and store it in tempBytes as\\n            // Solidity does for memory variables.\\n            tempBytes := mload(0x40)\\n\\n            // Store the length of the first bytes array at the beginning of\\n            // the memory for tempBytes.\\n            let length := mload(_preBytes)\\n            mstore(tempBytes, length)\\n\\n            // Maintain a memory counter for the current write location in the\\n            // temp bytes array by adding the 32 bytes for the array length to\\n            // the starting location.\\n            let mc := add(tempBytes, 0x20)\\n            // Stop copying when the memory counter reaches the length of the\\n            // first bytes array.\\n            let end := add(mc, length)\\n\\n            for {\\n                // Initialize a copy counter to the start of the _preBytes data,\\n                // 32 bytes into its memory.\\n                let cc := add(_preBytes, 0x20)\\n            } lt(mc, end) {\\n                // Increase both counters by 32 bytes each iteration.\\n                mc := add(mc, 0x20)\\n                cc := add(cc, 0x20)\\n            } {\\n                // Write the _preBytes data into the tempBytes memory 32 bytes\\n                // at a time.\\n                mstore(mc, mload(cc))\\n            }\\n\\n            // Add the length of _postBytes to the current length of tempBytes\\n            // and store it as the new length in the first 32 bytes of the\\n            // tempBytes memory.\\n            length := mload(_postBytes)\\n            mstore(tempBytes, add(length, mload(tempBytes)))\\n\\n            // Move the memory counter back from a multiple of 0x20 to the\\n            // actual end of the _preBytes data.\\n            mc := end\\n            // Stop copying when the memory counter reaches the new combined\\n            // length of the arrays.\\n            end := add(mc, length)\\n\\n            for {\\n                let cc := add(_postBytes, 0x20)\\n            } lt(mc, end) {\\n                mc := add(mc, 0x20)\\n                cc := add(cc, 0x20)\\n            } {\\n                mstore(mc, mload(cc))\\n            }\\n\\n            // Update the free-memory pointer by padding our last write location\\n            // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\\n            // next 32 byte block, then round down to the nearest multiple of\\n            // 32. If the sum of the length of the two arrays is zero then add\\n            // one before rounding down to leave a blank 32 bytes (the length block with 0).\\n            mstore(0x40, and(\\n              add(add(end, iszero(add(length, mload(_preBytes)))), 31),\\n              not(31) // Round down to the nearest 32 bytes.\\n            ))\\n        }\\n\\n        return tempBytes;\\n    }\\n\\n    function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\\n        assembly {\\n            // Read the first 32 bytes of _preBytes storage, which is the length\\n            // of the array. (We don't need to use the offset into the slot\\n            // because arrays use the entire slot.)\\n            let fslot := sload(_preBytes.slot)\\n            // Arrays of 31 bytes or less have an even value in their slot,\\n            // while longer arrays have an odd value. The actual length is\\n            // the slot divided by two for odd values, and the lowest order\\n            // byte divided by two for even values.\\n            // If the slot is even, bitwise and the slot with 255 and divide by\\n            // two to get the length. If the slot is odd, bitwise and the slot\\n            // with -1 and divide by two.\\n            let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n            let mlength := mload(_postBytes)\\n            let newlength := add(slength, mlength)\\n            // slength can contain both the length and contents of the array\\n            // if length < 32 bytes so let's prepare for that\\n            // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n            switch add(lt(slength, 32), lt(newlength, 32))\\n            case 2 {\\n                // Since the new array still fits in the slot, we just need to\\n                // update the contents of the slot.\\n                // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\\n                sstore(\\n                    _preBytes.slot,\\n                    // all the modifications to the slot are inside this\\n                    // next block\\n                    add(\\n                        // we can just add to the slot contents because the\\n                        // bytes we want to change are the LSBs\\n                        fslot,\\n                        add(\\n                            mul(\\n                                div(\\n                                    // load the bytes from memory\\n                                    mload(add(_postBytes, 0x20)),\\n                                    // zero all bytes to the right\\n                                    exp(0x100, sub(32, mlength))\\n                                ),\\n                                // and now shift left the number of bytes to\\n                                // leave space for the length in the slot\\n                                exp(0x100, sub(32, newlength))\\n                            ),\\n                            // increase length by the double of the memory\\n                            // bytes length\\n                            mul(mlength, 2)\\n                        )\\n                    )\\n                )\\n            }\\n            case 1 {\\n                // The stored value fits in the slot, but the combined value\\n                // will exceed it.\\n                // get the keccak hash to get the contents of the array\\n                mstore(0x0, _preBytes.slot)\\n                let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n                // save new length\\n                sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n                // The contents of the _postBytes array start 32 bytes into\\n                // the structure. Our first read should obtain the `submod`\\n                // bytes that can fit into the unused space in the last word\\n                // of the stored array. To get this, we read 32 bytes starting\\n                // from `submod`, so the data we read overlaps with the array\\n                // contents by `submod` bytes. Masking the lowest-order\\n                // `submod` bytes allows us to add that value directly to the\\n                // stored value.\\n\\n                let submod := sub(32, slength)\\n                let mc := add(_postBytes, submod)\\n                let end := add(_postBytes, mlength)\\n                let mask := sub(exp(0x100, submod), 1)\\n\\n                sstore(\\n                    sc,\\n                    add(\\n                        and(\\n                            fslot,\\n                            0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00\\n                        ),\\n                        and(mload(mc), mask)\\n                    )\\n                )\\n\\n                for {\\n                    mc := add(mc, 0x20)\\n                    sc := add(sc, 1)\\n                } lt(mc, end) {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } {\\n                    sstore(sc, mload(mc))\\n                }\\n\\n                mask := exp(0x100, sub(mc, end))\\n\\n                sstore(sc, mul(div(mload(mc), mask), mask))\\n            }\\n            default {\\n                // get the keccak hash to get the contents of the array\\n                mstore(0x0, _preBytes.slot)\\n                // Start copying to the last used word of the stored array.\\n                let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n                // save new length\\n                sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n                // Copy over the first `submod` bytes of the new data as in\\n                // case 1 above.\\n                let slengthmod := mod(slength, 32)\\n                let mlengthmod := mod(mlength, 32)\\n                let submod := sub(32, slengthmod)\\n                let mc := add(_postBytes, submod)\\n                let end := add(_postBytes, mlength)\\n                let mask := sub(exp(0x100, submod), 1)\\n\\n                sstore(sc, add(sload(sc), and(mload(mc), mask)))\\n\\n                for {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } lt(mc, end) {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } {\\n                    sstore(sc, mload(mc))\\n                }\\n\\n                mask := exp(0x100, sub(mc, end))\\n\\n                sstore(sc, mul(div(mload(mc), mask), mask))\\n            }\\n        }\\n    }\\n\\n    function slice(\\n        bytes memory _bytes,\\n        uint256 _start,\\n        uint256 _length\\n    )\\n        internal\\n        pure\\n        returns (bytes memory)\\n    {\\n        // We're using the unchecked block below because otherwise execution ends \\n        // with the native overflow error code.\\n        unchecked {\\n            require(_length + 31 >= _length, \\\"slice_overflow\\\");\\n        }\\n        require(_bytes.length >= _start + _length, \\\"slice_outOfBounds\\\");\\n\\n        bytes memory tempBytes;\\n\\n        assembly {\\n            switch iszero(_length)\\n            case 0 {\\n                // Get a location of some free memory and store it in tempBytes as\\n                // Solidity does for memory variables.\\n                tempBytes := mload(0x40)\\n\\n                // The first word of the slice result is potentially a partial\\n                // word read from the original array. To read it, we calculate\\n                // the length of that partial word and start copying that many\\n                // bytes into the array. The first word we copy will start with\\n                // data we don't care about, but the last `lengthmod` bytes will\\n                // land at the beginning of the contents of the new array. When\\n                // we're done copying, we overwrite the full first word with\\n                // the actual length of the slice.\\n                let lengthmod := and(_length, 31)\\n\\n                // The multiplication in the next line is necessary\\n                // because when slicing multiples of 32 bytes (lengthmod == 0)\\n                // the following copy loop was copying the origin's length\\n                // and then ending prematurely not copying everything it should.\\n                let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\\n                let end := add(mc, _length)\\n\\n                for {\\n                    // The multiplication in the next line has the same exact purpose\\n                    // as the one above.\\n                    let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\\n                } lt(mc, end) {\\n                    mc := add(mc, 0x20)\\n                    cc := add(cc, 0x20)\\n                } {\\n                    mstore(mc, mload(cc))\\n                }\\n\\n                mstore(tempBytes, _length)\\n\\n                //update free-memory pointer\\n                //allocating the array padded to 32 bytes like the compiler does now\\n                mstore(0x40, and(add(mc, 31), not(31)))\\n            }\\n            //if we want a zero-length slice let's just return a zero-length array\\n            default {\\n                tempBytes := mload(0x40)\\n                //zero out the 32 bytes slice we are about to return\\n                //we need to do it because Solidity does not garbage collect\\n                mstore(tempBytes, 0)\\n\\n                mstore(0x40, add(tempBytes, 0x20))\\n            }\\n        }\\n\\n        return tempBytes;\\n    }\\n\\n    function toAddress(bytes memory _bytes, uint256 _start) internal pure returns (address) {\\n        require(_bytes.length >= _start + 20, \\\"toAddress_outOfBounds\\\");\\n        address tempAddress;\\n\\n        assembly {\\n            tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\\n        }\\n\\n        return tempAddress;\\n    }\\n\\n    function toUint8(bytes memory _bytes, uint256 _start) internal pure returns (uint8) {\\n        require(_bytes.length >= _start + 1 , \\\"toUint8_outOfBounds\\\");\\n        uint8 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x1), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint16(bytes memory _bytes, uint256 _start) internal pure returns (uint16) {\\n        require(_bytes.length >= _start + 2, \\\"toUint16_outOfBounds\\\");\\n        uint16 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x2), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint32(bytes memory _bytes, uint256 _start) internal pure returns (uint32) {\\n        require(_bytes.length >= _start + 4, \\\"toUint32_outOfBounds\\\");\\n        uint32 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x4), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint64(bytes memory _bytes, uint256 _start) internal pure returns (uint64) {\\n        require(_bytes.length >= _start + 8, \\\"toUint64_outOfBounds\\\");\\n        uint64 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x8), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint96(bytes memory _bytes, uint256 _start) internal pure returns (uint96) {\\n        require(_bytes.length >= _start + 12, \\\"toUint96_outOfBounds\\\");\\n        uint96 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0xc), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint128(bytes memory _bytes, uint256 _start) internal pure returns (uint128) {\\n        require(_bytes.length >= _start + 16, \\\"toUint128_outOfBounds\\\");\\n        uint128 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x10), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint256(bytes memory _bytes, uint256 _start) internal pure returns (uint256) {\\n        require(_bytes.length >= _start + 32, \\\"toUint256_outOfBounds\\\");\\n        uint256 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x20), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toBytes32(bytes memory _bytes, uint256 _start) internal pure returns (bytes32) {\\n        require(_bytes.length >= _start + 32, \\\"toBytes32_outOfBounds\\\");\\n        bytes32 tempBytes32;\\n\\n        assembly {\\n            tempBytes32 := mload(add(add(_bytes, 0x20), _start))\\n        }\\n\\n        return tempBytes32;\\n    }\\n\\n    function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\\n        bool success = true;\\n\\n        assembly {\\n            let length := mload(_preBytes)\\n\\n            // if lengths don't match the arrays are not equal\\n            switch eq(length, mload(_postBytes))\\n            case 1 {\\n                // cb is a circuit breaker in the for loop since there's\\n                //  no said feature for inline assembly loops\\n                // cb = 1 - don't breaker\\n                // cb = 0 - break\\n                let cb := 1\\n\\n                let mc := add(_preBytes, 0x20)\\n                let end := add(mc, length)\\n\\n                for {\\n                    let cc := add(_postBytes, 0x20)\\n                // the next line is the loop condition:\\n                // while(uint256(mc < end) + cb == 2)\\n                } eq(add(lt(mc, end), cb), 2) {\\n                    mc := add(mc, 0x20)\\n                    cc := add(cc, 0x20)\\n                } {\\n                    // if any of these checks fails then arrays are not equal\\n                    if iszero(eq(mload(mc), mload(cc))) {\\n                        // unsuccess:\\n                        success := 0\\n                        cb := 0\\n                    }\\n                }\\n            }\\n            default {\\n                // unsuccess:\\n                success := 0\\n            }\\n        }\\n\\n        return success;\\n    }\\n\\n    function equalStorage(\\n        bytes storage _preBytes,\\n        bytes memory _postBytes\\n    )\\n        internal\\n        view\\n        returns (bool)\\n    {\\n        bool success = true;\\n\\n        assembly {\\n            // we know _preBytes_offset is 0\\n            let fslot := sload(_preBytes.slot)\\n            // Decode the length of the stored array like in concatStorage().\\n            let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n            let mlength := mload(_postBytes)\\n\\n            // if lengths don't match the arrays are not equal\\n            switch eq(slength, mlength)\\n            case 1 {\\n                // slength can contain both the length and contents of the array\\n                // if length < 32 bytes so let's prepare for that\\n                // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n                if iszero(iszero(slength)) {\\n                    switch lt(slength, 32)\\n                    case 1 {\\n                        // blank the last byte which is the length\\n                        fslot := mul(div(fslot, 0x100), 0x100)\\n\\n                        if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\\n                            // unsuccess:\\n                            success := 0\\n                        }\\n                    }\\n                    default {\\n                        // cb is a circuit breaker in the for loop since there's\\n                        //  no said feature for inline assembly loops\\n                        // cb = 1 - don't breaker\\n                        // cb = 0 - break\\n                        let cb := 1\\n\\n                        // get the keccak hash to get the contents of the array\\n                        mstore(0x0, _preBytes.slot)\\n                        let sc := keccak256(0x0, 0x20)\\n\\n                        let mc := add(_postBytes, 0x20)\\n                        let end := add(mc, mlength)\\n\\n                        // the next line is the loop condition:\\n                        // while(uint256(mc < end) + cb == 2)\\n                        for {} eq(add(lt(mc, end), cb), 2) {\\n                            sc := add(sc, 1)\\n                            mc := add(mc, 0x20)\\n                        } {\\n                            if iszero(eq(sload(sc), mload(mc))) {\\n                                // unsuccess:\\n                                success := 0\\n                                cb := 0\\n                            }\\n                        }\\n                    }\\n                }\\n            }\\n            default {\\n                // unsuccess:\\n                success := 0\\n            }\\n        }\\n\\n        return success;\\n    }\\n}\\n\",\"keccak256\":\"0xf4b07e5d8f69407bb43c6db224adfcf6c73b512dd64e85008ac3c222910c3555\",\"license\":\"Unlicense\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"ILayerZeroEndpointV2":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"bytes32","name":"guid","type":"bytes32"},{"indexed":false,"internalType":"uint16","name":"index","type":"uint16"}],"name":"ComposeDelivered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"bytes32","name":"guid","type":"bytes32"},{"indexed":false,"internalType":"uint16","name":"index","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"message","type":"bytes"}],"name":"ComposeSent","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"eid","type":"uint32"},{"indexed":false,"internalType":"address","name":"newLib","type":"address"}],"name":"DefaultReceiveLibrarySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"eid","type":"uint32"},{"indexed":false,"internalType":"address","name":"oldLib","type":"address"},{"indexed":false,"internalType":"uint256","name":"expiry","type":"uint256"}],"name":"DefaultReceiveLibraryTimeoutSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"eid","type":"uint32"},{"indexed":false,"internalType":"address","name":"newLib","type":"address"}],"name":"DefaultSendLibrarySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"address","name":"delegate","type":"address"}],"name":"DelegateSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"srcEid","type":"uint32"},{"indexed":false,"internalType":"bytes32","name":"sender","type":"bytes32"},{"indexed":false,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint64","name":"nonce","type":"uint64"}],"name":"InboundNonceSkipped","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newLib","type":"address"}],"name":"LibraryRegistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"address","name":"executor","type":"address"},{"indexed":false,"internalType":"bytes32","name":"guid","type":"bytes32"},{"indexed":false,"internalType":"uint16","name":"index","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"gas","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"message","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"extraData","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"reason","type":"bytes"}],"name":"LzComposeAlert","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":true,"internalType":"address","name":"executor","type":"address"},{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"indexed":false,"internalType":"struct Origin","name":"origin","type":"tuple"},{"indexed":false,"internalType":"bytes32","name":"guid","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"gas","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"message","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"extraData","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"reason","type":"bytes"}],"name":"LzReceiveAlert","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"}],"name":"LzTokenSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"srcEid","type":"uint32"},{"indexed":false,"internalType":"bytes32","name":"sender","type":"bytes32"},{"indexed":false,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint64","name":"nonce","type":"uint64"},{"indexed":false,"internalType":"bytes32","name":"payloadHash","type":"bytes32"}],"name":"PacketBurnt","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"indexed":false,"internalType":"struct Origin","name":"origin","type":"tuple"},{"indexed":false,"internalType":"address","name":"receiver","type":"address"}],"name":"PacketDelivered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"srcEid","type":"uint32"},{"indexed":false,"internalType":"bytes32","name":"sender","type":"bytes32"},{"indexed":false,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint64","name":"nonce","type":"uint64"},{"indexed":false,"internalType":"bytes32","name":"payloadHash","type":"bytes32"}],"name":"PacketNilified","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes","name":"encodedPayload","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"options","type":"bytes"},{"indexed":false,"internalType":"address","name":"sendLibrary","type":"address"}],"name":"PacketSent","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"indexed":false,"internalType":"struct Origin","name":"origin","type":"tuple"},{"indexed":false,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"bytes32","name":"payloadHash","type":"bytes32"}],"name":"PacketVerified","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint32","name":"eid","type":"uint32"},{"indexed":false,"internalType":"address","name":"newLib","type":"address"}],"name":"ReceiveLibrarySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint32","name":"eid","type":"uint32"},{"indexed":false,"internalType":"address","name":"oldLib","type":"address"},{"indexed":false,"internalType":"uint256","name":"timeout","type":"uint256"}],"name":"ReceiveLibraryTimeoutSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint32","name":"eid","type":"uint32"},{"indexed":false,"internalType":"address","name":"newLib","type":"address"}],"name":"SendLibrarySet","type":"event"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"_origin","type":"tuple"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"}],"name":"clear","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"uint16","name":"_index","type":"uint16"}],"name":"composeQueue","outputs":[{"internalType":"bytes32","name":"messageHash","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"name":"defaultReceiveLibrary","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"name":"defaultReceiveLibraryTimeout","outputs":[{"internalType":"address","name":"lib","type":"address"},{"internalType":"uint256","name":"expiry","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"name":"defaultSendLibrary","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"eid","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"address","name":"_lib","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint32","name":"_configType","type":"uint32"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"config","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"}],"name":"getReceiveLibrary","outputs":[{"internalType":"address","name":"lib","type":"address"},{"internalType":"bool","name":"isDefault","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRegisteredLibraries","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSendContext","outputs":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"address","name":"sender","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"}],"name":"getSendLibrary","outputs":[{"internalType":"address","name":"lib","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"}],"name":"inboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"},{"internalType":"uint64","name":"_nonce","type":"uint64"}],"name":"inboundPayloadHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"_origin","type":"tuple"},{"internalType":"address","name":"_receiver","type":"address"}],"name":"initializable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"}],"name":"isDefaultSendLibrary","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_lib","type":"address"}],"name":"isRegisteredLibrary","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isSendingMessage","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"name":"isSupportedEid","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_lib","type":"address"}],"name":"isValidReceiveLibrary","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"}],"name":"lazyInboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"uint16","name":"_index","type":"uint16"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"name":"lzCompose","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"_origin","type":"tuple"},{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"name":"lzReceive","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"lzToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nativeToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"bytes32","name":"_receiver","type":"bytes32"}],"name":"nextGuid","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"name":"nilify","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"bytes32","name":"_receiver","type":"bytes32"}],"name":"outboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"receiver","type":"bytes32"},{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"bytes","name":"options","type":"bytes"},{"internalType":"bool","name":"payInLzToken","type":"bool"}],"internalType":"struct MessagingParams","name":"_params","type":"tuple"},{"internalType":"address","name":"_sender","type":"address"}],"name":"quote","outputs":[{"components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}],"internalType":"struct MessagingFee","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"}],"name":"receiveLibraryTimeout","outputs":[{"internalType":"address","name":"lib","type":"address"},{"internalType":"uint256","name":"expiry","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_lib","type":"address"}],"name":"registerLibrary","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"receiver","type":"bytes32"},{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"bytes","name":"options","type":"bytes"},{"internalType":"bool","name":"payInLzToken","type":"bool"}],"internalType":"struct MessagingParams","name":"_params","type":"tuple"},{"internalType":"address","name":"_refundAddress","type":"address"}],"name":"send","outputs":[{"components":[{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}],"internalType":"struct MessagingFee","name":"fee","type":"tuple"}],"internalType":"struct MessagingReceipt","name":"","type":"tuple"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"uint16","name":"_index","type":"uint16"},{"internalType":"bytes","name":"_message","type":"bytes"}],"name":"sendCompose","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"address","name":"_lib","type":"address"},{"components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint32","name":"configType","type":"uint32"},{"internalType":"bytes","name":"config","type":"bytes"}],"internalType":"struct SetConfigParam[]","name":"_params","type":"tuple[]"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_newLib","type":"address"},{"internalType":"uint256","name":"_gracePeriod","type":"uint256"}],"name":"setDefaultReceiveLibrary","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_lib","type":"address"},{"internalType":"uint256","name":"_expiry","type":"uint256"}],"name":"setDefaultReceiveLibraryTimeout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_newLib","type":"address"}],"name":"setDefaultSendLibrary","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"name":"setDelegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_lzToken","type":"address"}],"name":"setLzToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_newLib","type":"address"},{"internalType":"uint256","name":"_gracePeriod","type":"uint256"}],"name":"setReceiveLibrary","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_lib","type":"address"},{"internalType":"uint256","name":"_expiry","type":"uint256"}],"name":"setReceiveLibraryTimeout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_newLib","type":"address"}],"name":"setSendLibrary","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"},{"internalType":"uint64","name":"_nonce","type":"uint64"}],"name":"skip","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"_origin","type":"tuple"},{"internalType":"address","name":"_receiver","type":"address"}],"name":"verifiable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"_origin","type":"tuple"},{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"name":"verify","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"burn(address,uint32,bytes32,uint64,bytes32)":"40f80683","clear(address,(uint32,bytes32,uint64),bytes32,bytes)":"2a56c1b0","composeQueue(address,address,bytes32,uint16)":"35d330b0","defaultReceiveLibrary(uint32)":"6f50a803","defaultReceiveLibraryTimeout(uint32)":"6e83f5bb","defaultSendLibrary(uint32)":"f64be4c7","eid()":"416ecebf","getConfig(address,address,uint32,uint32)":"2b3197b9","getReceiveLibrary(address,uint32)":"402f8468","getRegisteredLibraries()":"9132e5c3","getSendContext()":"14f651a9","getSendLibrary(address,uint32)":"b96a277f","inboundNonce(address,uint32,bytes32)":"a0dd43fc","inboundPayloadHash(address,uint32,bytes32,uint64)":"c9fc7bcd","initializable((uint32,bytes32,uint64),address)":"861e1ca5","isDefaultSendLibrary(address,uint32)":"dc93c8a2","isRegisteredLibrary(address)":"dc706a62","isSendingMessage()":"79624ca9","isSupportedEid(uint32)":"6750cd4c","isValidReceiveLibrary(address,uint32,address)":"9d7f9775","lazyInboundNonce(address,uint32,bytes32)":"5b17bb70","lzCompose(address,address,bytes32,uint16,bytes,bytes)":"91d20fa1","lzReceive((uint32,bytes32,uint64),address,bytes32,bytes,bytes)":"0c0c389e","lzToken()":"e4fe1d94","nativeToken()":"e1758bd8","nextGuid(address,uint32,bytes32)":"aafe5e07","nilify(address,uint32,bytes32,uint64,bytes32)":"2e80fbf3","outboundNonce(address,uint32,bytes32)":"9c6d7340","quote((uint32,bytes32,bytes,bytes,bool),address)":"ddc28c58","receiveLibraryTimeout(address,uint32)":"ef667aa1","registerLibrary(address)":"e8964e81","send((uint32,bytes32,bytes,bytes,bool),address)":"2637a450","sendCompose(address,bytes32,uint16,bytes)":"7cb59012","setConfig(address,address,(uint32,uint32,bytes)[])":"6dbd9f90","setDefaultReceiveLibrary(uint32,address,uint256)":"a718531b","setDefaultReceiveLibraryTimeout(uint32,address,uint256)":"d4b4ec8f","setDefaultSendLibrary(uint32,address)":"aafea312","setDelegate(address)":"ca5eb5e1","setLzToken(address)":"c28e0eed","setReceiveLibrary(address,uint32,address,uint256)":"6a14d715","setReceiveLibraryTimeout(address,uint32,address,uint256)":"183c834f","setSendLibrary(address,uint32,address)":"9535ff30","skip(address,uint32,bytes32,uint64)":"d70b8902","verifiable((uint32,bytes32,uint64),address)":"c9a54a99","verify((uint32,bytes32,uint64),address,bytes32)":"a825d747"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"index\",\"type\":\"uint16\"}],\"name\":\"ComposeDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"index\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"ComposeSent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"DefaultReceiveLibrarySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldLib\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"name\":\"DefaultReceiveLibraryTimeoutSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"DefaultSendLibrarySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"}],\"name\":\"DelegateSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"InboundNonceSkipped\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"LibraryRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"index\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"LzComposeAlert\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"LzReceiveAlert\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"LzTokenSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"payloadHash\",\"type\":\"bytes32\"}],\"name\":\"PacketBurnt\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"PacketDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"payloadHash\",\"type\":\"bytes32\"}],\"name\":\"PacketNilified\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"encodedPayload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sendLibrary\",\"type\":\"address\"}],\"name\":\"PacketSent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"payloadHash\",\"type\":\"bytes32\"}],\"name\":\"PacketVerified\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"ReceiveLibrarySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldLib\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timeout\",\"type\":\"uint256\"}],\"name\":\"ReceiveLibraryTimeoutSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"SendLibrarySet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"}],\"name\":\"clear\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"_index\",\"type\":\"uint16\"}],\"name\":\"composeQueue\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"defaultReceiveLibrary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"defaultReceiveLibraryTimeout\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"defaultSendLibrary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eid\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"_configType\",\"type\":\"uint32\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"getReceiveLibrary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isDefault\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegisteredLibraries\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSendContext\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"getSendLibrary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"}],\"name\":\"inboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"}],\"name\":\"inboundPayloadHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"}],\"name\":\"initializable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"isDefaultSendLibrary\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"}],\"name\":\"isRegisteredLibrary\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isSendingMessage\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"isSupportedEid\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"}],\"name\":\"isValidReceiveLibrary\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"}],\"name\":\"lazyInboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"_index\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzCompose\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lzToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nativeToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_receiver\",\"type\":\"bytes32\"}],\"name\":\"nextGuid\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"nilify\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_receiver\",\"type\":\"bytes32\"}],\"name\":\"outboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"payInLzToken\",\"type\":\"bool\"}],\"internalType\":\"struct MessagingParams\",\"name\":\"_params\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"quote\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"receiveLibraryTimeout\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"}],\"name\":\"registerLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"payInLzToken\",\"type\":\"bool\"}],\"internalType\":\"struct MessagingParams\",\"name\":\"_params\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_refundAddress\",\"type\":\"address\"}],\"name\":\"send\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"fee\",\"type\":\"tuple\"}],\"internalType\":\"struct MessagingReceipt\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"_index\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"}],\"name\":\"sendCompose\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configType\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"struct SetConfigParam[]\",\"name\":\"_params\",\"type\":\"tuple[]\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_newLib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_gracePeriod\",\"type\":\"uint256\"}],\"name\":\"setDefaultReceiveLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_expiry\",\"type\":\"uint256\"}],\"name\":\"setDefaultReceiveLibraryTimeout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_newLib\",\"type\":\"address\"}],\"name\":\"setDefaultSendLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lzToken\",\"type\":\"address\"}],\"name\":\"setLzToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_newLib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_gracePeriod\",\"type\":\"uint256\"}],\"name\":\"setReceiveLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_expiry\",\"type\":\"uint256\"}],\"name\":\"setReceiveLibraryTimeout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_newLib\",\"type\":\"address\"}],\"name\":\"setSendLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"}],\"name\":\"skip\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"}],\"name\":\"verifiable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"verify\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"setSendLibrary(address,uint32,address)\":{\"notice\":\"------------------- OApp interfaces -------------------\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":\"ILayerZeroEndpointV2\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { IMessageLibManager } from \\\"./IMessageLibManager.sol\\\";\\nimport { IMessagingComposer } from \\\"./IMessagingComposer.sol\\\";\\nimport { IMessagingChannel } from \\\"./IMessagingChannel.sol\\\";\\nimport { IMessagingContext } from \\\"./IMessagingContext.sol\\\";\\n\\nstruct MessagingParams {\\n    uint32 dstEid;\\n    bytes32 receiver;\\n    bytes message;\\n    bytes options;\\n    bool payInLzToken;\\n}\\n\\nstruct MessagingReceipt {\\n    bytes32 guid;\\n    uint64 nonce;\\n    MessagingFee fee;\\n}\\n\\nstruct MessagingFee {\\n    uint256 nativeFee;\\n    uint256 lzTokenFee;\\n}\\n\\nstruct Origin {\\n    uint32 srcEid;\\n    bytes32 sender;\\n    uint64 nonce;\\n}\\n\\ninterface ILayerZeroEndpointV2 is IMessageLibManager, IMessagingComposer, IMessagingChannel, IMessagingContext {\\n    event PacketSent(bytes encodedPayload, bytes options, address sendLibrary);\\n\\n    event PacketVerified(Origin origin, address receiver, bytes32 payloadHash);\\n\\n    event PacketDelivered(Origin origin, address receiver);\\n\\n    event LzReceiveAlert(\\n        address indexed receiver,\\n        address indexed executor,\\n        Origin origin,\\n        bytes32 guid,\\n        uint256 gas,\\n        uint256 value,\\n        bytes message,\\n        bytes extraData,\\n        bytes reason\\n    );\\n\\n    event LzTokenSet(address token);\\n\\n    event DelegateSet(address sender, address delegate);\\n\\n    function quote(MessagingParams calldata _params, address _sender) external view returns (MessagingFee memory);\\n\\n    function send(\\n        MessagingParams calldata _params,\\n        address _refundAddress\\n    ) external payable returns (MessagingReceipt memory);\\n\\n    function verify(Origin calldata _origin, address _receiver, bytes32 _payloadHash) external;\\n\\n    function verifiable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n    function initializable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n    function lzReceive(\\n        Origin calldata _origin,\\n        address _receiver,\\n        bytes32 _guid,\\n        bytes calldata _message,\\n        bytes calldata _extraData\\n    ) external payable;\\n\\n    // oapp can burn messages partially by calling this function with its own business logic if messages are verified in order\\n    function clear(address _oapp, Origin calldata _origin, bytes32 _guid, bytes calldata _message) external;\\n\\n    function setLzToken(address _lzToken) external;\\n\\n    function lzToken() external view returns (address);\\n\\n    function nativeToken() external view returns (address);\\n\\n    function setDelegate(address _delegate) external;\\n}\\n\",\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nstruct SetConfigParam {\\n    uint32 eid;\\n    uint32 configType;\\n    bytes config;\\n}\\n\\ninterface IMessageLibManager {\\n    struct Timeout {\\n        address lib;\\n        uint256 expiry;\\n    }\\n\\n    event LibraryRegistered(address newLib);\\n    event DefaultSendLibrarySet(uint32 eid, address newLib);\\n    event DefaultReceiveLibrarySet(uint32 eid, address newLib);\\n    event DefaultReceiveLibraryTimeoutSet(uint32 eid, address oldLib, uint256 expiry);\\n    event SendLibrarySet(address sender, uint32 eid, address newLib);\\n    event ReceiveLibrarySet(address receiver, uint32 eid, address newLib);\\n    event ReceiveLibraryTimeoutSet(address receiver, uint32 eid, address oldLib, uint256 timeout);\\n\\n    function registerLibrary(address _lib) external;\\n\\n    function isRegisteredLibrary(address _lib) external view returns (bool);\\n\\n    function getRegisteredLibraries() external view returns (address[] memory);\\n\\n    function setDefaultSendLibrary(uint32 _eid, address _newLib) external;\\n\\n    function defaultSendLibrary(uint32 _eid) external view returns (address);\\n\\n    function setDefaultReceiveLibrary(uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n    function defaultReceiveLibrary(uint32 _eid) external view returns (address);\\n\\n    function setDefaultReceiveLibraryTimeout(uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n    function defaultReceiveLibraryTimeout(uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n    function isSupportedEid(uint32 _eid) external view returns (bool);\\n\\n    function isValidReceiveLibrary(address _receiver, uint32 _eid, address _lib) external view returns (bool);\\n\\n    /// ------------------- OApp interfaces -------------------\\n    function setSendLibrary(address _oapp, uint32 _eid, address _newLib) external;\\n\\n    function getSendLibrary(address _sender, uint32 _eid) external view returns (address lib);\\n\\n    function isDefaultSendLibrary(address _sender, uint32 _eid) external view returns (bool);\\n\\n    function setReceiveLibrary(address _oapp, uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n    function getReceiveLibrary(address _receiver, uint32 _eid) external view returns (address lib, bool isDefault);\\n\\n    function setReceiveLibraryTimeout(address _oapp, uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n    function receiveLibraryTimeout(address _receiver, uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n    function setConfig(address _oapp, address _lib, SetConfigParam[] calldata _params) external;\\n\\n    function getConfig(\\n        address _oapp,\\n        address _lib,\\n        uint32 _eid,\\n        uint32 _configType\\n    ) external view returns (bytes memory config);\\n}\\n\",\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingChannel {\\n    event InboundNonceSkipped(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce);\\n    event PacketNilified(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n    event PacketBurnt(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n\\n    function eid() external view returns (uint32);\\n\\n    // this is an emergency function if a message cannot be verified for some reasons\\n    // required to provide _nextNonce to avoid race condition\\n    function skip(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce) external;\\n\\n    function nilify(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n    function burn(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n    function nextGuid(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (bytes32);\\n\\n    function inboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n\\n    function outboundNonce(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (uint64);\\n\\n    function inboundPayloadHash(\\n        address _receiver,\\n        uint32 _srcEid,\\n        bytes32 _sender,\\n        uint64 _nonce\\n    ) external view returns (bytes32);\\n\\n    function lazyInboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n}\\n\",\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingComposer {\\n    event ComposeSent(address from, address to, bytes32 guid, uint16 index, bytes message);\\n    event ComposeDelivered(address from, address to, bytes32 guid, uint16 index);\\n    event LzComposeAlert(\\n        address indexed from,\\n        address indexed to,\\n        address indexed executor,\\n        bytes32 guid,\\n        uint16 index,\\n        uint256 gas,\\n        uint256 value,\\n        bytes message,\\n        bytes extraData,\\n        bytes reason\\n    );\\n\\n    function composeQueue(\\n        address _from,\\n        address _to,\\n        bytes32 _guid,\\n        uint16 _index\\n    ) external view returns (bytes32 messageHash);\\n\\n    function sendCompose(address _to, bytes32 _guid, uint16 _index, bytes calldata _message) external;\\n\\n    function lzCompose(\\n        address _from,\\n        address _to,\\n        bytes32 _guid,\\n        uint16 _index,\\n        bytes calldata _message,\\n        bytes calldata _extraData\\n    ) external payable;\\n}\\n\",\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingContext {\\n    function isSendingMessage() external view returns (bool);\\n\\n    function getSendContext() external view returns (uint32 dstEid, address sender);\\n}\\n\",\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{"setSendLibrary(address,uint32,address)":{"notice":"------------------- OApp interfaces -------------------"}},"version":1}}},"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol":{"ILayerZeroReceiver":{"abi":[{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"_origin","type":"tuple"}],"name":"allowInitializePath","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"_origin","type":"tuple"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"name":"lzReceive","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"}],"name":"nextNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"allowInitializePath((uint32,bytes32,uint64))":"ff7bd03d","lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"13137d65","nextNonce(uint32,bytes32)":"7d25a05e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"}],\"name\":\"allowInitializePath\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"}],\"name\":\"nextNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":\"ILayerZeroReceiver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { IMessageLibManager } from \\\"./IMessageLibManager.sol\\\";\\nimport { IMessagingComposer } from \\\"./IMessagingComposer.sol\\\";\\nimport { IMessagingChannel } from \\\"./IMessagingChannel.sol\\\";\\nimport { IMessagingContext } from \\\"./IMessagingContext.sol\\\";\\n\\nstruct MessagingParams {\\n    uint32 dstEid;\\n    bytes32 receiver;\\n    bytes message;\\n    bytes options;\\n    bool payInLzToken;\\n}\\n\\nstruct MessagingReceipt {\\n    bytes32 guid;\\n    uint64 nonce;\\n    MessagingFee fee;\\n}\\n\\nstruct MessagingFee {\\n    uint256 nativeFee;\\n    uint256 lzTokenFee;\\n}\\n\\nstruct Origin {\\n    uint32 srcEid;\\n    bytes32 sender;\\n    uint64 nonce;\\n}\\n\\ninterface ILayerZeroEndpointV2 is IMessageLibManager, IMessagingComposer, IMessagingChannel, IMessagingContext {\\n    event PacketSent(bytes encodedPayload, bytes options, address sendLibrary);\\n\\n    event PacketVerified(Origin origin, address receiver, bytes32 payloadHash);\\n\\n    event PacketDelivered(Origin origin, address receiver);\\n\\n    event LzReceiveAlert(\\n        address indexed receiver,\\n        address indexed executor,\\n        Origin origin,\\n        bytes32 guid,\\n        uint256 gas,\\n        uint256 value,\\n        bytes message,\\n        bytes extraData,\\n        bytes reason\\n    );\\n\\n    event LzTokenSet(address token);\\n\\n    event DelegateSet(address sender, address delegate);\\n\\n    function quote(MessagingParams calldata _params, address _sender) external view returns (MessagingFee memory);\\n\\n    function send(\\n        MessagingParams calldata _params,\\n        address _refundAddress\\n    ) external payable returns (MessagingReceipt memory);\\n\\n    function verify(Origin calldata _origin, address _receiver, bytes32 _payloadHash) external;\\n\\n    function verifiable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n    function initializable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n    function lzReceive(\\n        Origin calldata _origin,\\n        address _receiver,\\n        bytes32 _guid,\\n        bytes calldata _message,\\n        bytes calldata _extraData\\n    ) external payable;\\n\\n    // oapp can burn messages partially by calling this function with its own business logic if messages are verified in order\\n    function clear(address _oapp, Origin calldata _origin, bytes32 _guid, bytes calldata _message) external;\\n\\n    function setLzToken(address _lzToken) external;\\n\\n    function lzToken() external view returns (address);\\n\\n    function nativeToken() external view returns (address);\\n\\n    function setDelegate(address _delegate) external;\\n}\\n\",\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { Origin } from \\\"./ILayerZeroEndpointV2.sol\\\";\\n\\ninterface ILayerZeroReceiver {\\n    function allowInitializePath(Origin calldata _origin) external view returns (bool);\\n\\n    function nextNonce(uint32 _eid, bytes32 _sender) external view returns (uint64);\\n\\n    function lzReceive(\\n        Origin calldata _origin,\\n        bytes32 _guid,\\n        bytes calldata _message,\\n        address _executor,\\n        bytes calldata _extraData\\n    ) external payable;\\n}\\n\",\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nstruct SetConfigParam {\\n    uint32 eid;\\n    uint32 configType;\\n    bytes config;\\n}\\n\\ninterface IMessageLibManager {\\n    struct Timeout {\\n        address lib;\\n        uint256 expiry;\\n    }\\n\\n    event LibraryRegistered(address newLib);\\n    event DefaultSendLibrarySet(uint32 eid, address newLib);\\n    event DefaultReceiveLibrarySet(uint32 eid, address newLib);\\n    event DefaultReceiveLibraryTimeoutSet(uint32 eid, address oldLib, uint256 expiry);\\n    event SendLibrarySet(address sender, uint32 eid, address newLib);\\n    event ReceiveLibrarySet(address receiver, uint32 eid, address newLib);\\n    event ReceiveLibraryTimeoutSet(address receiver, uint32 eid, address oldLib, uint256 timeout);\\n\\n    function registerLibrary(address _lib) external;\\n\\n    function isRegisteredLibrary(address _lib) external view returns (bool);\\n\\n    function getRegisteredLibraries() external view returns (address[] memory);\\n\\n    function setDefaultSendLibrary(uint32 _eid, address _newLib) external;\\n\\n    function defaultSendLibrary(uint32 _eid) external view returns (address);\\n\\n    function setDefaultReceiveLibrary(uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n    function defaultReceiveLibrary(uint32 _eid) external view returns (address);\\n\\n    function setDefaultReceiveLibraryTimeout(uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n    function defaultReceiveLibraryTimeout(uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n    function isSupportedEid(uint32 _eid) external view returns (bool);\\n\\n    function isValidReceiveLibrary(address _receiver, uint32 _eid, address _lib) external view returns (bool);\\n\\n    /// ------------------- OApp interfaces -------------------\\n    function setSendLibrary(address _oapp, uint32 _eid, address _newLib) external;\\n\\n    function getSendLibrary(address _sender, uint32 _eid) external view returns (address lib);\\n\\n    function isDefaultSendLibrary(address _sender, uint32 _eid) external view returns (bool);\\n\\n    function setReceiveLibrary(address _oapp, uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n    function getReceiveLibrary(address _receiver, uint32 _eid) external view returns (address lib, bool isDefault);\\n\\n    function setReceiveLibraryTimeout(address _oapp, uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n    function receiveLibraryTimeout(address _receiver, uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n    function setConfig(address _oapp, address _lib, SetConfigParam[] calldata _params) external;\\n\\n    function getConfig(\\n        address _oapp,\\n        address _lib,\\n        uint32 _eid,\\n        uint32 _configType\\n    ) external view returns (bytes memory config);\\n}\\n\",\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingChannel {\\n    event InboundNonceSkipped(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce);\\n    event PacketNilified(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n    event PacketBurnt(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n\\n    function eid() external view returns (uint32);\\n\\n    // this is an emergency function if a message cannot be verified for some reasons\\n    // required to provide _nextNonce to avoid race condition\\n    function skip(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce) external;\\n\\n    function nilify(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n    function burn(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n    function nextGuid(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (bytes32);\\n\\n    function inboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n\\n    function outboundNonce(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (uint64);\\n\\n    function inboundPayloadHash(\\n        address _receiver,\\n        uint32 _srcEid,\\n        bytes32 _sender,\\n        uint64 _nonce\\n    ) external view returns (bytes32);\\n\\n    function lazyInboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n}\\n\",\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingComposer {\\n    event ComposeSent(address from, address to, bytes32 guid, uint16 index, bytes message);\\n    event ComposeDelivered(address from, address to, bytes32 guid, uint16 index);\\n    event LzComposeAlert(\\n        address indexed from,\\n        address indexed to,\\n        address indexed executor,\\n        bytes32 guid,\\n        uint16 index,\\n        uint256 gas,\\n        uint256 value,\\n        bytes message,\\n        bytes extraData,\\n        bytes reason\\n    );\\n\\n    function composeQueue(\\n        address _from,\\n        address _to,\\n        bytes32 _guid,\\n        uint16 _index\\n    ) external view returns (bytes32 messageHash);\\n\\n    function sendCompose(address _to, bytes32 _guid, uint16 _index, bytes calldata _message) external;\\n\\n    function lzCompose(\\n        address _from,\\n        address _to,\\n        bytes32 _guid,\\n        uint16 _index,\\n        bytes calldata _message,\\n        bytes calldata _extraData\\n    ) external payable;\\n}\\n\",\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingContext {\\n    function isSendingMessage() external view returns (bool);\\n\\n    function getSendContext() external view returns (uint32 dstEid, address sender);\\n}\\n\",\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"IMessageLibManager":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"eid","type":"uint32"},{"indexed":false,"internalType":"address","name":"newLib","type":"address"}],"name":"DefaultReceiveLibrarySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"eid","type":"uint32"},{"indexed":false,"internalType":"address","name":"oldLib","type":"address"},{"indexed":false,"internalType":"uint256","name":"expiry","type":"uint256"}],"name":"DefaultReceiveLibraryTimeoutSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"eid","type":"uint32"},{"indexed":false,"internalType":"address","name":"newLib","type":"address"}],"name":"DefaultSendLibrarySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newLib","type":"address"}],"name":"LibraryRegistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint32","name":"eid","type":"uint32"},{"indexed":false,"internalType":"address","name":"newLib","type":"address"}],"name":"ReceiveLibrarySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint32","name":"eid","type":"uint32"},{"indexed":false,"internalType":"address","name":"oldLib","type":"address"},{"indexed":false,"internalType":"uint256","name":"timeout","type":"uint256"}],"name":"ReceiveLibraryTimeoutSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint32","name":"eid","type":"uint32"},{"indexed":false,"internalType":"address","name":"newLib","type":"address"}],"name":"SendLibrarySet","type":"event"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"name":"defaultReceiveLibrary","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"name":"defaultReceiveLibraryTimeout","outputs":[{"internalType":"address","name":"lib","type":"address"},{"internalType":"uint256","name":"expiry","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"name":"defaultSendLibrary","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"address","name":"_lib","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint32","name":"_configType","type":"uint32"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"config","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"}],"name":"getReceiveLibrary","outputs":[{"internalType":"address","name":"lib","type":"address"},{"internalType":"bool","name":"isDefault","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRegisteredLibraries","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"}],"name":"getSendLibrary","outputs":[{"internalType":"address","name":"lib","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"}],"name":"isDefaultSendLibrary","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_lib","type":"address"}],"name":"isRegisteredLibrary","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"name":"isSupportedEid","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_lib","type":"address"}],"name":"isValidReceiveLibrary","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"}],"name":"receiveLibraryTimeout","outputs":[{"internalType":"address","name":"lib","type":"address"},{"internalType":"uint256","name":"expiry","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_lib","type":"address"}],"name":"registerLibrary","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"address","name":"_lib","type":"address"},{"components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint32","name":"configType","type":"uint32"},{"internalType":"bytes","name":"config","type":"bytes"}],"internalType":"struct SetConfigParam[]","name":"_params","type":"tuple[]"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_newLib","type":"address"},{"internalType":"uint256","name":"_gracePeriod","type":"uint256"}],"name":"setDefaultReceiveLibrary","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_lib","type":"address"},{"internalType":"uint256","name":"_expiry","type":"uint256"}],"name":"setDefaultReceiveLibraryTimeout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_newLib","type":"address"}],"name":"setDefaultSendLibrary","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_newLib","type":"address"},{"internalType":"uint256","name":"_gracePeriod","type":"uint256"}],"name":"setReceiveLibrary","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_lib","type":"address"},{"internalType":"uint256","name":"_expiry","type":"uint256"}],"name":"setReceiveLibraryTimeout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_newLib","type":"address"}],"name":"setSendLibrary","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"defaultReceiveLibrary(uint32)":"6f50a803","defaultReceiveLibraryTimeout(uint32)":"6e83f5bb","defaultSendLibrary(uint32)":"f64be4c7","getConfig(address,address,uint32,uint32)":"2b3197b9","getReceiveLibrary(address,uint32)":"402f8468","getRegisteredLibraries()":"9132e5c3","getSendLibrary(address,uint32)":"b96a277f","isDefaultSendLibrary(address,uint32)":"dc93c8a2","isRegisteredLibrary(address)":"dc706a62","isSupportedEid(uint32)":"6750cd4c","isValidReceiveLibrary(address,uint32,address)":"9d7f9775","receiveLibraryTimeout(address,uint32)":"ef667aa1","registerLibrary(address)":"e8964e81","setConfig(address,address,(uint32,uint32,bytes)[])":"6dbd9f90","setDefaultReceiveLibrary(uint32,address,uint256)":"a718531b","setDefaultReceiveLibraryTimeout(uint32,address,uint256)":"d4b4ec8f","setDefaultSendLibrary(uint32,address)":"aafea312","setReceiveLibrary(address,uint32,address,uint256)":"6a14d715","setReceiveLibraryTimeout(address,uint32,address,uint256)":"183c834f","setSendLibrary(address,uint32,address)":"9535ff30"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"DefaultReceiveLibrarySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldLib\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"name\":\"DefaultReceiveLibraryTimeoutSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"DefaultSendLibrarySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"LibraryRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"ReceiveLibrarySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldLib\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timeout\",\"type\":\"uint256\"}],\"name\":\"ReceiveLibraryTimeoutSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"SendLibrarySet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"defaultReceiveLibrary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"defaultReceiveLibraryTimeout\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"defaultSendLibrary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"_configType\",\"type\":\"uint32\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"getReceiveLibrary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isDefault\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegisteredLibraries\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"getSendLibrary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"isDefaultSendLibrary\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"}],\"name\":\"isRegisteredLibrary\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"isSupportedEid\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"}],\"name\":\"isValidReceiveLibrary\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"receiveLibraryTimeout\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"}],\"name\":\"registerLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configType\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"struct SetConfigParam[]\",\"name\":\"_params\",\"type\":\"tuple[]\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_newLib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_gracePeriod\",\"type\":\"uint256\"}],\"name\":\"setDefaultReceiveLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_expiry\",\"type\":\"uint256\"}],\"name\":\"setDefaultReceiveLibraryTimeout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_newLib\",\"type\":\"address\"}],\"name\":\"setDefaultSendLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_newLib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_gracePeriod\",\"type\":\"uint256\"}],\"name\":\"setReceiveLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_expiry\",\"type\":\"uint256\"}],\"name\":\"setReceiveLibraryTimeout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_newLib\",\"type\":\"address\"}],\"name\":\"setSendLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"setSendLibrary(address,uint32,address)\":{\"notice\":\"------------------- OApp interfaces -------------------\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":\"IMessageLibManager\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nstruct SetConfigParam {\\n    uint32 eid;\\n    uint32 configType;\\n    bytes config;\\n}\\n\\ninterface IMessageLibManager {\\n    struct Timeout {\\n        address lib;\\n        uint256 expiry;\\n    }\\n\\n    event LibraryRegistered(address newLib);\\n    event DefaultSendLibrarySet(uint32 eid, address newLib);\\n    event DefaultReceiveLibrarySet(uint32 eid, address newLib);\\n    event DefaultReceiveLibraryTimeoutSet(uint32 eid, address oldLib, uint256 expiry);\\n    event SendLibrarySet(address sender, uint32 eid, address newLib);\\n    event ReceiveLibrarySet(address receiver, uint32 eid, address newLib);\\n    event ReceiveLibraryTimeoutSet(address receiver, uint32 eid, address oldLib, uint256 timeout);\\n\\n    function registerLibrary(address _lib) external;\\n\\n    function isRegisteredLibrary(address _lib) external view returns (bool);\\n\\n    function getRegisteredLibraries() external view returns (address[] memory);\\n\\n    function setDefaultSendLibrary(uint32 _eid, address _newLib) external;\\n\\n    function defaultSendLibrary(uint32 _eid) external view returns (address);\\n\\n    function setDefaultReceiveLibrary(uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n    function defaultReceiveLibrary(uint32 _eid) external view returns (address);\\n\\n    function setDefaultReceiveLibraryTimeout(uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n    function defaultReceiveLibraryTimeout(uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n    function isSupportedEid(uint32 _eid) external view returns (bool);\\n\\n    function isValidReceiveLibrary(address _receiver, uint32 _eid, address _lib) external view returns (bool);\\n\\n    /// ------------------- OApp interfaces -------------------\\n    function setSendLibrary(address _oapp, uint32 _eid, address _newLib) external;\\n\\n    function getSendLibrary(address _sender, uint32 _eid) external view returns (address lib);\\n\\n    function isDefaultSendLibrary(address _sender, uint32 _eid) external view returns (bool);\\n\\n    function setReceiveLibrary(address _oapp, uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n    function getReceiveLibrary(address _receiver, uint32 _eid) external view returns (address lib, bool isDefault);\\n\\n    function setReceiveLibraryTimeout(address _oapp, uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n    function receiveLibraryTimeout(address _receiver, uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n    function setConfig(address _oapp, address _lib, SetConfigParam[] calldata _params) external;\\n\\n    function getConfig(\\n        address _oapp,\\n        address _lib,\\n        uint32 _eid,\\n        uint32 _configType\\n    ) external view returns (bytes memory config);\\n}\\n\",\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{"setSendLibrary(address,uint32,address)":{"notice":"------------------- OApp interfaces -------------------"}},"version":1}}},"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"IMessagingChannel":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"srcEid","type":"uint32"},{"indexed":false,"internalType":"bytes32","name":"sender","type":"bytes32"},{"indexed":false,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint64","name":"nonce","type":"uint64"}],"name":"InboundNonceSkipped","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"srcEid","type":"uint32"},{"indexed":false,"internalType":"bytes32","name":"sender","type":"bytes32"},{"indexed":false,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint64","name":"nonce","type":"uint64"},{"indexed":false,"internalType":"bytes32","name":"payloadHash","type":"bytes32"}],"name":"PacketBurnt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"srcEid","type":"uint32"},{"indexed":false,"internalType":"bytes32","name":"sender","type":"bytes32"},{"indexed":false,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint64","name":"nonce","type":"uint64"},{"indexed":false,"internalType":"bytes32","name":"payloadHash","type":"bytes32"}],"name":"PacketNilified","type":"event"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"eid","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"}],"name":"inboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"},{"internalType":"uint64","name":"_nonce","type":"uint64"}],"name":"inboundPayloadHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"}],"name":"lazyInboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"bytes32","name":"_receiver","type":"bytes32"}],"name":"nextGuid","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"name":"nilify","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"bytes32","name":"_receiver","type":"bytes32"}],"name":"outboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"},{"internalType":"uint64","name":"_nonce","type":"uint64"}],"name":"skip","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"burn(address,uint32,bytes32,uint64,bytes32)":"40f80683","eid()":"416ecebf","inboundNonce(address,uint32,bytes32)":"a0dd43fc","inboundPayloadHash(address,uint32,bytes32,uint64)":"c9fc7bcd","lazyInboundNonce(address,uint32,bytes32)":"5b17bb70","nextGuid(address,uint32,bytes32)":"aafe5e07","nilify(address,uint32,bytes32,uint64,bytes32)":"2e80fbf3","outboundNonce(address,uint32,bytes32)":"9c6d7340","skip(address,uint32,bytes32,uint64)":"d70b8902"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"InboundNonceSkipped\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"payloadHash\",\"type\":\"bytes32\"}],\"name\":\"PacketBurnt\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"payloadHash\",\"type\":\"bytes32\"}],\"name\":\"PacketNilified\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eid\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"}],\"name\":\"inboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"}],\"name\":\"inboundPayloadHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"}],\"name\":\"lazyInboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_receiver\",\"type\":\"bytes32\"}],\"name\":\"nextGuid\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"nilify\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_receiver\",\"type\":\"bytes32\"}],\"name\":\"outboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"}],\"name\":\"skip\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":\"IMessagingChannel\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingChannel {\\n    event InboundNonceSkipped(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce);\\n    event PacketNilified(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n    event PacketBurnt(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n\\n    function eid() external view returns (uint32);\\n\\n    // this is an emergency function if a message cannot be verified for some reasons\\n    // required to provide _nextNonce to avoid race condition\\n    function skip(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce) external;\\n\\n    function nilify(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n    function burn(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n    function nextGuid(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (bytes32);\\n\\n    function inboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n\\n    function outboundNonce(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (uint64);\\n\\n    function inboundPayloadHash(\\n        address _receiver,\\n        uint32 _srcEid,\\n        bytes32 _sender,\\n        uint64 _nonce\\n    ) external view returns (bytes32);\\n\\n    function lazyInboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n}\\n\",\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"IMessagingComposer":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"bytes32","name":"guid","type":"bytes32"},{"indexed":false,"internalType":"uint16","name":"index","type":"uint16"}],"name":"ComposeDelivered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"bytes32","name":"guid","type":"bytes32"},{"indexed":false,"internalType":"uint16","name":"index","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"message","type":"bytes"}],"name":"ComposeSent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"address","name":"executor","type":"address"},{"indexed":false,"internalType":"bytes32","name":"guid","type":"bytes32"},{"indexed":false,"internalType":"uint16","name":"index","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"gas","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"message","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"extraData","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"reason","type":"bytes"}],"name":"LzComposeAlert","type":"event"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"uint16","name":"_index","type":"uint16"}],"name":"composeQueue","outputs":[{"internalType":"bytes32","name":"messageHash","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"uint16","name":"_index","type":"uint16"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"name":"lzCompose","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"uint16","name":"_index","type":"uint16"},{"internalType":"bytes","name":"_message","type":"bytes"}],"name":"sendCompose","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"composeQueue(address,address,bytes32,uint16)":"35d330b0","lzCompose(address,address,bytes32,uint16,bytes,bytes)":"91d20fa1","sendCompose(address,bytes32,uint16,bytes)":"7cb59012"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"index\",\"type\":\"uint16\"}],\"name\":\"ComposeDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"index\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"ComposeSent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"index\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"LzComposeAlert\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"_index\",\"type\":\"uint16\"}],\"name\":\"composeQueue\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"_index\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzCompose\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"_index\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"}],\"name\":\"sendCompose\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":\"IMessagingComposer\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingComposer {\\n    event ComposeSent(address from, address to, bytes32 guid, uint16 index, bytes message);\\n    event ComposeDelivered(address from, address to, bytes32 guid, uint16 index);\\n    event LzComposeAlert(\\n        address indexed from,\\n        address indexed to,\\n        address indexed executor,\\n        bytes32 guid,\\n        uint16 index,\\n        uint256 gas,\\n        uint256 value,\\n        bytes message,\\n        bytes extraData,\\n        bytes reason\\n    );\\n\\n    function composeQueue(\\n        address _from,\\n        address _to,\\n        bytes32 _guid,\\n        uint16 _index\\n    ) external view returns (bytes32 messageHash);\\n\\n    function sendCompose(address _to, bytes32 _guid, uint16 _index, bytes calldata _message) external;\\n\\n    function lzCompose(\\n        address _from,\\n        address _to,\\n        bytes32 _guid,\\n        uint16 _index,\\n        bytes calldata _message,\\n        bytes calldata _extraData\\n    ) external payable;\\n}\\n\",\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"IMessagingContext":{"abi":[{"inputs":[],"name":"getSendContext","outputs":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"address","name":"sender","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isSendingMessage","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"getSendContext()":"14f651a9","isSendingMessage()":"79624ca9"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getSendContext\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isSendingMessage\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":\"IMessagingContext\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingContext {\\n    function isSendingMessage() external view returns (bool);\\n\\n    function getSendContext() external view returns (uint32 dstEid, address sender);\\n}\\n\",\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol":{"CalldataBytesLib":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202edf9fe6eb38999402863ff35e707581857cf29d397b5f10ef9eb138dc3a129c64736f6c63430008190033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2E 0xDF SWAP16 0xE6 0xEB CODESIZE SWAP10 SWAP5 MUL DUP7 EXTCODEHASH RETURN MCOPY PUSH17 0x7581857CF29D397B5F10EF9EB138DC3A12 SWAP13 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"64:1718:8:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;64:1718:8;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202edf9fe6eb38999402863ff35e707581857cf29d397b5f10ef9eb138dc3a129c64736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2E 0xDF SWAP16 0xE6 0xEB CODESIZE SWAP10 SWAP5 MUL DUP7 EXTCODEHASH RETURN MCOPY PUSH17 0x7581857CF29D397B5F10EF9EB138DC3A12 SWAP13 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"64:1718:8:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"toAddr(bytes calldata,uint256)":"infinite","toB32(bytes calldata,uint256)":"infinite","toU128(bytes calldata,uint256)":"infinite","toU16(bytes calldata,uint256)":"infinite","toU256(bytes calldata,uint256)":"infinite","toU32(bytes calldata,uint256)":"infinite","toU64(bytes calldata,uint256)":"infinite","toU8(bytes calldata,uint256)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":\"CalldataBytesLib\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nlibrary CalldataBytesLib {\\n    function toU8(bytes calldata _bytes, uint256 _start) internal pure returns (uint8) {\\n        return uint8(_bytes[_start]);\\n    }\\n\\n    function toU16(bytes calldata _bytes, uint256 _start) internal pure returns (uint16) {\\n        unchecked {\\n            uint256 end = _start + 2;\\n            return uint16(bytes2(_bytes[_start:end]));\\n        }\\n    }\\n\\n    function toU32(bytes calldata _bytes, uint256 _start) internal pure returns (uint32) {\\n        unchecked {\\n            uint256 end = _start + 4;\\n            return uint32(bytes4(_bytes[_start:end]));\\n        }\\n    }\\n\\n    function toU64(bytes calldata _bytes, uint256 _start) internal pure returns (uint64) {\\n        unchecked {\\n            uint256 end = _start + 8;\\n            return uint64(bytes8(_bytes[_start:end]));\\n        }\\n    }\\n\\n    function toU128(bytes calldata _bytes, uint256 _start) internal pure returns (uint128) {\\n        unchecked {\\n            uint256 end = _start + 16;\\n            return uint128(bytes16(_bytes[_start:end]));\\n        }\\n    }\\n\\n    function toU256(bytes calldata _bytes, uint256 _start) internal pure returns (uint256) {\\n        unchecked {\\n            uint256 end = _start + 32;\\n            return uint256(bytes32(_bytes[_start:end]));\\n        }\\n    }\\n\\n    function toAddr(bytes calldata _bytes, uint256 _start) internal pure returns (address) {\\n        unchecked {\\n            uint256 end = _start + 20;\\n            return address(bytes20(_bytes[_start:end]));\\n        }\\n    }\\n\\n    function toB32(bytes calldata _bytes, uint256 _start) internal pure returns (bytes32) {\\n        unchecked {\\n            uint256 end = _start + 32;\\n            return bytes32(_bytes[_start:end]);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875\",\"license\":\"LZBL-1.2\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol":{"BitMaps":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c378ce1d95a7ffdde4a18e22a418620941c137a94a0374cbbe4da3a7dc18e04d64736f6c63430008190033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC3 PUSH25 0xCE1D95A7FFDDE4A18E22A418620941C137A94A0374CBBE4DA3 0xA7 0xDC XOR 0xE0 0x4D PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"244:506:9:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;244:506:9;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c378ce1d95a7ffdde4a18e22a418620941c137a94a0374cbbe4da3a7dc18e04d64736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC3 PUSH25 0xCE1D95A7FFDDE4A18E22A418620941C137A94A0374CBBE4DA3 0xA7 0xDC XOR 0xE0 0x4D PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"244:506:9:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"get(BitMap256,uint8)":"infinite","set(BitMap256,uint8)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\":\"BitMaps\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\n// modified from https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/structs/BitMaps.sol\\npragma solidity ^0.8.20;\\n\\ntype BitMap256 is uint256;\\n\\nusing BitMaps for BitMap256 global;\\n\\nlibrary BitMaps {\\n    /**\\n     * @dev Returns whether the bit at `index` is set.\\n     */\\n    function get(BitMap256 bitmap, uint8 index) internal pure returns (bool) {\\n        uint256 mask = 1 << index;\\n        return BitMap256.unwrap(bitmap) & mask != 0;\\n    }\\n\\n    /**\\n     * @dev Sets the bit at `index`.\\n     */\\n    function set(BitMap256 bitmap, uint8 index) internal pure returns (BitMap256) {\\n        uint256 mask = 1 << index;\\n        return BitMap256.wrap(BitMap256.unwrap(bitmap) | mask);\\n    }\\n}\\n\",\"keccak256\":\"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppCoreUpgradeable.sol":{"OAppCoreUpgradeable":{"abi":[{"inputs":[],"name":"InvalidDelegate","type":"error"},{"inputs":[],"name":"InvalidEndpointCall","type":"error"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"name":"NoPeer","type":"error"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"}],"name":"OnlyPeer","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"eid","type":"uint32"},{"indexed":false,"internalType":"bytes32","name":"peer","type":"bytes32"}],"name":"PeerSet","type":"event"},{"inputs":[],"name":"endpoint","outputs":[{"internalType":"contract ILayerZeroEndpointV2","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oAppVersion","outputs":[{"internalType":"uint64","name":"senderVersion","type":"uint64"},{"internalType":"uint64","name":"receiverVersion","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"name":"peers","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"name":"setDelegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"name":"setPeer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Abstract contract implementing the IOAppCore interface with basic OApp configurations.","events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."}},"kind":"dev","methods":{"constructor":{"details":"Constructor to initialize the OAppCore with the provided endpoint and delegate.","params":{"_endpoint":"The address of the LOCAL Layer Zero endpoint."}},"oAppVersion()":{"returns":{"receiverVersion":"The version of the OAppReceiver.sol contract.","senderVersion":"The version of the OAppSender.sol contract."}},"owner()":{"details":"Returns the address of the current owner."},"peers(uint32)":{"params":{"_eid":"The endpoint ID."},"returns":{"_0":"peer The address of the peer associated with the specified endpoint."}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"setDelegate(address)":{"details":"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.","params":{"_delegate":"The address of the delegate to be set."}},"setPeer(uint32,bytes32)":{"details":"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.","params":{"_eid":"The endpoint ID.","_peer":"The address of the peer to be associated with the corresponding endpoint."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"stateVariables":{"endpoint":{"return":"The LayerZero endpoint as an interface.","returns":{"_0":"The LayerZero endpoint as an interface."}}},"title":"OAppCore","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"endpoint()":"5e280f11","oAppVersion()":"17442b70","owner()":"8da5cb5b","peers(uint32)":"bb0b6a53","renounceOwnership()":"715018a6","setDelegate(address)":"ca5eb5e1","setPeer(uint32,bytes32)":"3400288b","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidDelegate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEndpointCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"NoPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"OnlyPeer\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"name\":\"PeerSet\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"endpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpointV2\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oAppVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"senderVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receiverVersion\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"peers\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"setPeer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Abstract contract implementing the IOAppCore interface with basic OApp configurations.\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Constructor to initialize the OAppCore with the provided endpoint and delegate.\",\"params\":{\"_endpoint\":\"The address of the LOCAL Layer Zero endpoint.\"}},\"oAppVersion()\":{\"returns\":{\"receiverVersion\":\"The version of the OAppReceiver.sol contract.\",\"senderVersion\":\"The version of the OAppSender.sol contract.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"peers(uint32)\":{\"params\":{\"_eid\":\"The endpoint ID.\"},\"returns\":{\"_0\":\"peer The address of the peer associated with the specified endpoint.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"setDelegate(address)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\",\"params\":{\"_delegate\":\"The address of the delegate to be set.\"}},\"setPeer(uint32,bytes32)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_peer\":\"The address of the peer to be associated with the corresponding endpoint.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"stateVariables\":{\"endpoint\":{\"return\":\"The LayerZero endpoint as an interface.\",\"returns\":{\"_0\":\"The LayerZero endpoint as an interface.\"}}},\"title\":\"OAppCore\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"endpoint()\":{\"notice\":\"Retrieves the LayerZero endpoint associated with the OApp.\"},\"oAppVersion()\":{\"notice\":\"Retrieves the OApp version information.\"},\"peers(uint32)\":{\"notice\":\"Returns the peer address (OApp instance) associated with a specific endpoint.\"},\"setDelegate(address)\":{\"notice\":\"Sets the delegate address for the OApp.\"},\"setPeer(uint32,bytes32)\":{\"notice\":\"Sets the peer address (OApp instance) for a corresponding endpoint.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppCoreUpgradeable.sol\":\"OAppCoreUpgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { IMessageLibManager } from \\\"./IMessageLibManager.sol\\\";\\nimport { IMessagingComposer } from \\\"./IMessagingComposer.sol\\\";\\nimport { IMessagingChannel } from \\\"./IMessagingChannel.sol\\\";\\nimport { IMessagingContext } from \\\"./IMessagingContext.sol\\\";\\n\\nstruct MessagingParams {\\n    uint32 dstEid;\\n    bytes32 receiver;\\n    bytes message;\\n    bytes options;\\n    bool payInLzToken;\\n}\\n\\nstruct MessagingReceipt {\\n    bytes32 guid;\\n    uint64 nonce;\\n    MessagingFee fee;\\n}\\n\\nstruct MessagingFee {\\n    uint256 nativeFee;\\n    uint256 lzTokenFee;\\n}\\n\\nstruct Origin {\\n    uint32 srcEid;\\n    bytes32 sender;\\n    uint64 nonce;\\n}\\n\\ninterface ILayerZeroEndpointV2 is IMessageLibManager, IMessagingComposer, IMessagingChannel, IMessagingContext {\\n    event PacketSent(bytes encodedPayload, bytes options, address sendLibrary);\\n\\n    event PacketVerified(Origin origin, address receiver, bytes32 payloadHash);\\n\\n    event PacketDelivered(Origin origin, address receiver);\\n\\n    event LzReceiveAlert(\\n        address indexed receiver,\\n        address indexed executor,\\n        Origin origin,\\n        bytes32 guid,\\n        uint256 gas,\\n        uint256 value,\\n        bytes message,\\n        bytes extraData,\\n        bytes reason\\n    );\\n\\n    event LzTokenSet(address token);\\n\\n    event DelegateSet(address sender, address delegate);\\n\\n    function quote(MessagingParams calldata _params, address _sender) external view returns (MessagingFee memory);\\n\\n    function send(\\n        MessagingParams calldata _params,\\n        address _refundAddress\\n    ) external payable returns (MessagingReceipt memory);\\n\\n    function verify(Origin calldata _origin, address _receiver, bytes32 _payloadHash) external;\\n\\n    function verifiable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n    function initializable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n    function lzReceive(\\n        Origin calldata _origin,\\n        address _receiver,\\n        bytes32 _guid,\\n        bytes calldata _message,\\n        bytes calldata _extraData\\n    ) external payable;\\n\\n    // oapp can burn messages partially by calling this function with its own business logic if messages are verified in order\\n    function clear(address _oapp, Origin calldata _origin, bytes32 _guid, bytes calldata _message) external;\\n\\n    function setLzToken(address _lzToken) external;\\n\\n    function lzToken() external view returns (address);\\n\\n    function nativeToken() external view returns (address);\\n\\n    function setDelegate(address _delegate) external;\\n}\\n\",\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nstruct SetConfigParam {\\n    uint32 eid;\\n    uint32 configType;\\n    bytes config;\\n}\\n\\ninterface IMessageLibManager {\\n    struct Timeout {\\n        address lib;\\n        uint256 expiry;\\n    }\\n\\n    event LibraryRegistered(address newLib);\\n    event DefaultSendLibrarySet(uint32 eid, address newLib);\\n    event DefaultReceiveLibrarySet(uint32 eid, address newLib);\\n    event DefaultReceiveLibraryTimeoutSet(uint32 eid, address oldLib, uint256 expiry);\\n    event SendLibrarySet(address sender, uint32 eid, address newLib);\\n    event ReceiveLibrarySet(address receiver, uint32 eid, address newLib);\\n    event ReceiveLibraryTimeoutSet(address receiver, uint32 eid, address oldLib, uint256 timeout);\\n\\n    function registerLibrary(address _lib) external;\\n\\n    function isRegisteredLibrary(address _lib) external view returns (bool);\\n\\n    function getRegisteredLibraries() external view returns (address[] memory);\\n\\n    function setDefaultSendLibrary(uint32 _eid, address _newLib) external;\\n\\n    function defaultSendLibrary(uint32 _eid) external view returns (address);\\n\\n    function setDefaultReceiveLibrary(uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n    function defaultReceiveLibrary(uint32 _eid) external view returns (address);\\n\\n    function setDefaultReceiveLibraryTimeout(uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n    function defaultReceiveLibraryTimeout(uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n    function isSupportedEid(uint32 _eid) external view returns (bool);\\n\\n    function isValidReceiveLibrary(address _receiver, uint32 _eid, address _lib) external view returns (bool);\\n\\n    /// ------------------- OApp interfaces -------------------\\n    function setSendLibrary(address _oapp, uint32 _eid, address _newLib) external;\\n\\n    function getSendLibrary(address _sender, uint32 _eid) external view returns (address lib);\\n\\n    function isDefaultSendLibrary(address _sender, uint32 _eid) external view returns (bool);\\n\\n    function setReceiveLibrary(address _oapp, uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n    function getReceiveLibrary(address _receiver, uint32 _eid) external view returns (address lib, bool isDefault);\\n\\n    function setReceiveLibraryTimeout(address _oapp, uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n    function receiveLibraryTimeout(address _receiver, uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n    function setConfig(address _oapp, address _lib, SetConfigParam[] calldata _params) external;\\n\\n    function getConfig(\\n        address _oapp,\\n        address _lib,\\n        uint32 _eid,\\n        uint32 _configType\\n    ) external view returns (bytes memory config);\\n}\\n\",\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingChannel {\\n    event InboundNonceSkipped(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce);\\n    event PacketNilified(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n    event PacketBurnt(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n\\n    function eid() external view returns (uint32);\\n\\n    // this is an emergency function if a message cannot be verified for some reasons\\n    // required to provide _nextNonce to avoid race condition\\n    function skip(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce) external;\\n\\n    function nilify(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n    function burn(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n    function nextGuid(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (bytes32);\\n\\n    function inboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n\\n    function outboundNonce(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (uint64);\\n\\n    function inboundPayloadHash(\\n        address _receiver,\\n        uint32 _srcEid,\\n        bytes32 _sender,\\n        uint64 _nonce\\n    ) external view returns (bytes32);\\n\\n    function lazyInboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n}\\n\",\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingComposer {\\n    event ComposeSent(address from, address to, bytes32 guid, uint16 index, bytes message);\\n    event ComposeDelivered(address from, address to, bytes32 guid, uint16 index);\\n    event LzComposeAlert(\\n        address indexed from,\\n        address indexed to,\\n        address indexed executor,\\n        bytes32 guid,\\n        uint16 index,\\n        uint256 gas,\\n        uint256 value,\\n        bytes message,\\n        bytes extraData,\\n        bytes reason\\n    );\\n\\n    function composeQueue(\\n        address _from,\\n        address _to,\\n        bytes32 _guid,\\n        uint16 _index\\n    ) external view returns (bytes32 messageHash);\\n\\n    function sendCompose(address _to, bytes32 _guid, uint16 _index, bytes calldata _message) external;\\n\\n    function lzCompose(\\n        address _from,\\n        address _to,\\n        bytes32 _guid,\\n        uint16 _index,\\n        bytes calldata _message,\\n        bytes calldata _extraData\\n    ) external payable;\\n}\\n\",\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingContext {\\n    function isSendingMessage() external view returns (bool);\\n\\n    function getSendContext() external view returns (uint32 dstEid, address sender);\\n}\\n\",\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\"},\"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppCoreUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { OwnableUpgradeable } from \\\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\\\";\\nimport { IOAppCore, ILayerZeroEndpointV2 } from \\\"@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppCore.sol\\\";\\n\\n/**\\n * @title OAppCore\\n * @dev Abstract contract implementing the IOAppCore interface with basic OApp configurations.\\n */\\nabstract contract OAppCoreUpgradeable is IOAppCore, OwnableUpgradeable {\\n    struct OAppCoreStorage {\\n        mapping(uint32 => bytes32) peers;\\n    }\\n\\n    // keccak256(abi.encode(uint256(keccak256(\\\"layerzerov2.storage.oappcore\\\")) - 1)) & ~bytes32(uint256(0xff))\\n    bytes32 private constant OAPP_CORE_STORAGE_LOCATION =\\n        0x72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f900;\\n\\n    function _getOAppCoreStorage() internal pure returns (OAppCoreStorage storage $) {\\n        assembly {\\n            $.slot := OAPP_CORE_STORAGE_LOCATION\\n        }\\n    }\\n\\n    // The LayerZero endpoint associated with the given OApp\\n    ILayerZeroEndpointV2 public immutable endpoint;\\n\\n    /**\\n     * @dev Constructor to initialize the OAppCore with the provided endpoint and delegate.\\n     * @param _endpoint The address of the LOCAL Layer Zero endpoint.\\n     */\\n    constructor(address _endpoint) {\\n        endpoint = ILayerZeroEndpointV2(_endpoint);\\n    }\\n\\n    /**\\n     * @dev Initializes the OAppCore with the provided delegate.\\n     * @param _delegate The delegate capable of making OApp configurations inside of the endpoint.\\n     *\\n     * @dev The delegate typically should be set as the owner of the contract.\\n     * @dev Ownable is not initialized here on purpose. It should be initialized in the child contract to\\n     * accommodate the different version of Ownable.\\n     */\\n    function __OAppCore_init(address _delegate) internal onlyInitializing {\\n        __OAppCore_init_unchained(_delegate);\\n    }\\n\\n    function __OAppCore_init_unchained(address _delegate) internal onlyInitializing {\\n        if (_delegate == address(0)) revert InvalidDelegate();\\n        endpoint.setDelegate(_delegate);\\n    }\\n\\n    /**\\n     * @notice Returns the peer address (OApp instance) associated with a specific endpoint.\\n     * @param _eid The endpoint ID.\\n     * @return peer The address of the peer associated with the specified endpoint.\\n     */\\n    function peers(uint32 _eid) public view override returns (bytes32) {\\n        OAppCoreStorage storage $ = _getOAppCoreStorage();\\n        return $.peers[_eid];\\n    }\\n\\n    /**\\n     * @notice Sets the peer address (OApp instance) for a corresponding endpoint.\\n     * @param _eid The endpoint ID.\\n     * @param _peer The address of the peer to be associated with the corresponding endpoint.\\n     *\\n     * @dev Only the owner/admin of the OApp can call this function.\\n     * @dev Indicates that the peer is trusted to send LayerZero messages to this OApp.\\n     * @dev Set this to bytes32(0) to remove the peer address.\\n     * @dev Peer is a bytes32 to accommodate non-evm chains.\\n     */\\n    function setPeer(uint32 _eid, bytes32 _peer) public virtual onlyOwner {\\n        OAppCoreStorage storage $ = _getOAppCoreStorage();\\n        $.peers[_eid] = _peer;\\n        emit PeerSet(_eid, _peer);\\n    }\\n\\n    /**\\n     * @notice Internal function to get the peer address associated with a specific endpoint; reverts if NOT set.\\n     * ie. the peer is set to bytes32(0).\\n     * @param _eid The endpoint ID.\\n     * @return peer The address of the peer associated with the specified endpoint.\\n     */\\n    function _getPeerOrRevert(uint32 _eid) internal view virtual returns (bytes32) {\\n        OAppCoreStorage storage $ = _getOAppCoreStorage();\\n        bytes32 peer = $.peers[_eid];\\n        if (peer == bytes32(0)) revert NoPeer(_eid);\\n        return peer;\\n    }\\n\\n    /**\\n     * @notice Sets the delegate address for the OApp.\\n     * @param _delegate The address of the delegate to be set.\\n     *\\n     * @dev Only the owner/admin of the OApp can call this function.\\n     * @dev Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\\n     */\\n    function setDelegate(address _delegate) public onlyOwner {\\n        endpoint.setDelegate(_delegate);\\n    }\\n}\\n\",\"keccak256\":\"0xbe135fd35bf12c97aeb701caeb6c5d0c1c28c1ac2ab1d4219d15f8384951c140\",\"license\":\"MIT\"},\"@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppCore.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { ILayerZeroEndpointV2 } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\\\";\\n\\n/**\\n * @title IOAppCore\\n */\\ninterface IOAppCore {\\n    // Custom error messages\\n    error OnlyPeer(uint32 eid, bytes32 sender);\\n    error NoPeer(uint32 eid);\\n    error InvalidEndpointCall();\\n    error InvalidDelegate();\\n\\n    // Event emitted when a peer (OApp) is set for a corresponding endpoint\\n    event PeerSet(uint32 eid, bytes32 peer);\\n\\n    /**\\n     * @notice Retrieves the OApp version information.\\n     * @return senderVersion The version of the OAppSender.sol contract.\\n     * @return receiverVersion The version of the OAppReceiver.sol contract.\\n     */\\n    function oAppVersion() external view returns (uint64 senderVersion, uint64 receiverVersion);\\n\\n    /**\\n     * @notice Retrieves the LayerZero endpoint associated with the OApp.\\n     * @return iEndpoint The LayerZero endpoint as an interface.\\n     */\\n    function endpoint() external view returns (ILayerZeroEndpointV2 iEndpoint);\\n\\n    /**\\n     * @notice Retrieves the peer (OApp) associated with a corresponding endpoint.\\n     * @param _eid The endpoint ID.\\n     * @return peer The peer address (OApp instance) associated with the corresponding endpoint.\\n     */\\n    function peers(uint32 _eid) external view returns (bytes32 peer);\\n\\n    /**\\n     * @notice Sets the peer address (OApp instance) for a corresponding endpoint.\\n     * @param _eid The endpoint ID.\\n     * @param _peer The address of the peer to be associated with the corresponding endpoint.\\n     */\\n    function setPeer(uint32 _eid, bytes32 _peer) external;\\n\\n    /**\\n     * @notice Sets the delegate address for the OApp Core.\\n     * @param _delegate The address of the delegate to be set.\\n     */\\n    function setDelegate(address _delegate) external;\\n}\\n\",\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/ContextUpgradeable.sol\\\";\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract OwnableUpgradeable is Initializable, ContextUpgradeable {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    function __Ownable_init() internal onlyInitializing {\\n        __Ownable_init_unchained();\\n    }\\n\\n    function __Ownable_init_unchained() internal onlyInitializing {\\n        _transferOwnership(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        _checkOwner();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if the sender is not the owner.\\n     */\\n    function _checkOwner() internal view virtual {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions anymore. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby removing any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.1) (proxy/utils/Initializable.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../../utils/AddressUpgradeable.sol\\\";\\n\\n/**\\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\\n *\\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\\n * reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in\\n * case an upgrade adds a module that needs to be initialized.\\n *\\n * For example:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * contract MyToken is ERC20Upgradeable {\\n *     function initialize() initializer public {\\n *         __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\");\\n *     }\\n * }\\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\\n *     function initializeV2() reinitializer(2) public {\\n *         __ERC20Permit_init(\\\"MyToken\\\");\\n *     }\\n * }\\n * ```\\n *\\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\\n *\\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\\n *\\n * [CAUTION]\\n * ====\\n * Avoid leaving a contract uninitialized.\\n *\\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * /// @custom:oz-upgrades-unsafe-allow constructor\\n * constructor() {\\n *     _disableInitializers();\\n * }\\n * ```\\n * ====\\n */\\nabstract contract Initializable {\\n    /**\\n     * @dev Indicates that the contract has been initialized.\\n     * @custom:oz-retyped-from bool\\n     */\\n    uint8 private _initialized;\\n\\n    /**\\n     * @dev Indicates that the contract is in the process of being initialized.\\n     */\\n    bool private _initializing;\\n\\n    /**\\n     * @dev Triggered when the contract has been initialized or reinitialized.\\n     */\\n    event Initialized(uint8 version);\\n\\n    /**\\n     * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\\n     * `onlyInitializing` functions can be used to initialize parent contracts.\\n     *\\n     * Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\\n     * constructor.\\n     *\\n     * Emits an {Initialized} event.\\n     */\\n    modifier initializer() {\\n        bool isTopLevelCall = !_initializing;\\n        require(\\n            (isTopLevelCall && _initialized < 1) || (!AddressUpgradeable.isContract(address(this)) && _initialized == 1),\\n            \\\"Initializable: contract is already initialized\\\"\\n        );\\n        _initialized = 1;\\n        if (isTopLevelCall) {\\n            _initializing = true;\\n        }\\n        _;\\n        if (isTopLevelCall) {\\n            _initializing = false;\\n            emit Initialized(1);\\n        }\\n    }\\n\\n    /**\\n     * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\\n     * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\\n     * used to initialize parent contracts.\\n     *\\n     * A reinitializer may be used after the original initialization step. This is essential to configure modules that\\n     * are added through upgrades and that require initialization.\\n     *\\n     * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\\n     * cannot be nested. If one is invoked in the context of another, execution will revert.\\n     *\\n     * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\\n     * a contract, executing them in the right order is up to the developer or operator.\\n     *\\n     * WARNING: setting the version to 255 will prevent any future reinitialization.\\n     *\\n     * Emits an {Initialized} event.\\n     */\\n    modifier reinitializer(uint8 version) {\\n        require(!_initializing && _initialized < version, \\\"Initializable: contract is already initialized\\\");\\n        _initialized = version;\\n        _initializing = true;\\n        _;\\n        _initializing = false;\\n        emit Initialized(version);\\n    }\\n\\n    /**\\n     * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\\n     * {initializer} and {reinitializer} modifiers, directly or indirectly.\\n     */\\n    modifier onlyInitializing() {\\n        require(_initializing, \\\"Initializable: contract is not initializing\\\");\\n        _;\\n    }\\n\\n    /**\\n     * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\\n     * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\\n     * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\\n     * through proxies.\\n     *\\n     * Emits an {Initialized} event the first time it is successfully executed.\\n     */\\n    function _disableInitializers() internal virtual {\\n        require(!_initializing, \\\"Initializable: contract is initializing\\\");\\n        if (_initialized < type(uint8).max) {\\n            _initialized = type(uint8).max;\\n            emit Initialized(type(uint8).max);\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns the highest version that has been initialized. See {reinitializer}.\\n     */\\n    function _getInitializedVersion() internal view returns (uint8) {\\n        return _initialized;\\n    }\\n\\n    /**\\n     * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.\\n     */\\n    function _isInitializing() internal view returns (bool) {\\n        return _initializing;\\n    }\\n}\\n\",\"keccak256\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary AddressUpgradeable {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\n     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\n     *\\n     * _Available since v4.8._\\n     */\\n    function verifyCallResultFromTarget(\\n        address target,\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        if (success) {\\n            if (returndata.length == 0) {\\n                // only check isContract if the call was successful and the return data is empty\\n                // otherwise we already know that it was a contract\\n                require(isContract(target), \\\"Address: call to non-contract\\\");\\n            }\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason or using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    function _revert(bytes memory returndata, string memory errorMessage) private pure {\\n        // Look for revert reason and bubble it up if present\\n        if (returndata.length > 0) {\\n            // The easiest way to bubble the revert reason is using memory via assembly\\n            /// @solidity memory-safe-assembly\\n            assembly {\\n                let returndata_size := mload(returndata)\\n                revert(add(32, returndata), returndata_size)\\n            }\\n        } else {\\n            revert(errorMessage);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract ContextUpgradeable is Initializable {\\n    function __Context_init() internal onlyInitializing {\\n    }\\n\\n    function __Context_init_unchained() internal onlyInitializing {\\n    }\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[50] private __gap;\\n}\\n\",\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":6086,"contract":"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppCoreUpgradeable.sol:OAppCoreUpgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":6089,"contract":"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppCoreUpgradeable.sol:OAppCoreUpgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":6573,"contract":"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppCoreUpgradeable.sol:OAppCoreUpgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":5958,"contract":"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppCoreUpgradeable.sol:OAppCoreUpgradeable","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":6078,"contract":"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppCoreUpgradeable.sol:OAppCoreUpgradeable","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"kind":"user","methods":{"endpoint()":{"notice":"Retrieves the LayerZero endpoint associated with the OApp."},"oAppVersion()":{"notice":"Retrieves the OApp version information."},"peers(uint32)":{"notice":"Returns the peer address (OApp instance) associated with a specific endpoint."},"setDelegate(address)":{"notice":"Sets the delegate address for the OApp."},"setPeer(uint32,bytes32)":{"notice":"Sets the peer address (OApp instance) for a corresponding endpoint."}},"version":1}}},"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppReceiverUpgradeable.sol":{"OAppReceiverUpgradeable":{"abi":[{"inputs":[],"name":"InvalidDelegate","type":"error"},{"inputs":[],"name":"InvalidEndpointCall","type":"error"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"name":"NoPeer","type":"error"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"OnlyEndpoint","type":"error"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"}],"name":"OnlyPeer","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"eid","type":"uint32"},{"indexed":false,"internalType":"bytes32","name":"peer","type":"bytes32"}],"name":"PeerSet","type":"event"},{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"origin","type":"tuple"}],"name":"allowInitializePath","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"endpoint","outputs":[{"internalType":"contract ILayerZeroEndpointV2","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"","type":"tuple"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"address","name":"_sender","type":"address"}],"name":"isComposeMsgSender","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"_origin","type":"tuple"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"name":"lzReceive","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"nextNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oAppVersion","outputs":[{"internalType":"uint64","name":"senderVersion","type":"uint64"},{"internalType":"uint64","name":"receiverVersion","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"name":"peers","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"name":"setDelegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"name":"setPeer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Abstract contract implementing the ILayerZeroReceiver interface and extending OAppCore for OApp receivers.","events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."}},"kind":"dev","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"details":"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.","params":{"origin":"The origin information containing the source endpoint and sender address."},"returns":{"_0":"Whether the path has been initialized."}},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"details":"_origin The origin information containing the source endpoint and sender address.  - srcEid: The source chain endpoint ID.  - sender: The sender address on the src chain.  - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.","params":{"_sender":"The sender address."},"returns":{"_0":"isSender Is a valid sender."}},"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.","params":{"_executor":"The address of the executor for the received message.","_extraData":"Additional arbitrary data provided by the corresponding executor.","_guid":"The unique identifier for the received LayerZero message.","_message":"The payload of the received message.","_origin":"The origin information containing the source endpoint and sender address.  - srcEid: The source chain endpoint ID.  - sender: The sender address on the src chain.  - nonce: The nonce of the message."}},"nextNonce(uint32,bytes32)":{"details":"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.","returns":{"nonce":"The next nonce."}},"oAppVersion()":{"details":"Providing 0 as the default for OAppSender version. Indicates that the OAppSender is not implemented. ie. this is a RECEIVE only OApp.If the OApp uses both OAppSender and OAppReceiver, then this needs to be override returning the correct versions.","returns":{"receiverVersion":"The version of the OAppReceiver.sol contract.","senderVersion":"The version of the OAppSender.sol contract."}},"owner()":{"details":"Returns the address of the current owner."},"peers(uint32)":{"params":{"_eid":"The endpoint ID."},"returns":{"_0":"peer The address of the peer associated with the specified endpoint."}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"setDelegate(address)":{"details":"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.","params":{"_delegate":"The address of the delegate to be set."}},"setPeer(uint32,bytes32)":{"details":"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.","params":{"_eid":"The endpoint ID.","_peer":"The address of the peer to be associated with the corresponding endpoint."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"title":"OAppReceiver","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"allowInitializePath((uint32,bytes32,uint64))":"ff7bd03d","endpoint()":"5e280f11","isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":"82413eac","lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"13137d65","nextNonce(uint32,bytes32)":"7d25a05e","oAppVersion()":"17442b70","owner()":"8da5cb5b","peers(uint32)":"bb0b6a53","renounceOwnership()":"715018a6","setDelegate(address)":"ca5eb5e1","setPeer(uint32,bytes32)":"3400288b","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidDelegate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEndpointCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"NoPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"OnlyEndpoint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"OnlyPeer\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"name\":\"PeerSet\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"}],\"name\":\"allowInitializePath\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpointV2\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"isComposeMsgSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"nextNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oAppVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"senderVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receiverVersion\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"peers\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"setPeer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Abstract contract implementing the ILayerZeroReceiver interface and extending OAppCore for OApp receivers.\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"details\":\"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.\",\"params\":{\"origin\":\"The origin information containing the source endpoint and sender address.\"},\"returns\":{\"_0\":\"Whether the path has been initialized.\"}},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"details\":\"_origin The origin information containing the source endpoint and sender address.  - srcEid: The source chain endpoint ID.  - sender: The sender address on the src chain.  - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.\",\"params\":{\"_sender\":\"The sender address.\"},\"returns\":{\"_0\":\"isSender Is a valid sender.\"}},\"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.\",\"params\":{\"_executor\":\"The address of the executor for the received message.\",\"_extraData\":\"Additional arbitrary data provided by the corresponding executor.\",\"_guid\":\"The unique identifier for the received LayerZero message.\",\"_message\":\"The payload of the received message.\",\"_origin\":\"The origin information containing the source endpoint and sender address.  - srcEid: The source chain endpoint ID.  - sender: The sender address on the src chain.  - nonce: The nonce of the message.\"}},\"nextNonce(uint32,bytes32)\":{\"details\":\"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.\",\"returns\":{\"nonce\":\"The next nonce.\"}},\"oAppVersion()\":{\"details\":\"Providing 0 as the default for OAppSender version. Indicates that the OAppSender is not implemented. ie. this is a RECEIVE only OApp.If the OApp uses both OAppSender and OAppReceiver, then this needs to be override returning the correct versions.\",\"returns\":{\"receiverVersion\":\"The version of the OAppReceiver.sol contract.\",\"senderVersion\":\"The version of the OAppSender.sol contract.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"peers(uint32)\":{\"params\":{\"_eid\":\"The endpoint ID.\"},\"returns\":{\"_0\":\"peer The address of the peer associated with the specified endpoint.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"setDelegate(address)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\",\"params\":{\"_delegate\":\"The address of the delegate to be set.\"}},\"setPeer(uint32,bytes32)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_peer\":\"The address of the peer to be associated with the corresponding endpoint.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"OAppReceiver\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"notice\":\"Checks if the path initialization is allowed based on the provided origin.\"},\"endpoint()\":{\"notice\":\"Retrieves the LayerZero endpoint associated with the OApp.\"},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"notice\":\"Indicates whether an address is an approved composeMsg sender to the Endpoint.\"},\"nextNonce(uint32,bytes32)\":{\"notice\":\"Retrieves the next nonce for a given source endpoint and sender address.\"},\"oAppVersion()\":{\"notice\":\"Retrieves the OApp version information.\"},\"peers(uint32)\":{\"notice\":\"Returns the peer address (OApp instance) associated with a specific endpoint.\"},\"setDelegate(address)\":{\"notice\":\"Sets the delegate address for the OApp.\"},\"setPeer(uint32,bytes32)\":{\"notice\":\"Sets the peer address (OApp instance) for a corresponding endpoint.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppReceiverUpgradeable.sol\":\"OAppReceiverUpgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { IMessageLibManager } from \\\"./IMessageLibManager.sol\\\";\\nimport { IMessagingComposer } from \\\"./IMessagingComposer.sol\\\";\\nimport { IMessagingChannel } from \\\"./IMessagingChannel.sol\\\";\\nimport { IMessagingContext } from \\\"./IMessagingContext.sol\\\";\\n\\nstruct MessagingParams {\\n    uint32 dstEid;\\n    bytes32 receiver;\\n    bytes message;\\n    bytes options;\\n    bool payInLzToken;\\n}\\n\\nstruct MessagingReceipt {\\n    bytes32 guid;\\n    uint64 nonce;\\n    MessagingFee fee;\\n}\\n\\nstruct MessagingFee {\\n    uint256 nativeFee;\\n    uint256 lzTokenFee;\\n}\\n\\nstruct Origin {\\n    uint32 srcEid;\\n    bytes32 sender;\\n    uint64 nonce;\\n}\\n\\ninterface ILayerZeroEndpointV2 is IMessageLibManager, IMessagingComposer, IMessagingChannel, IMessagingContext {\\n    event PacketSent(bytes encodedPayload, bytes options, address sendLibrary);\\n\\n    event PacketVerified(Origin origin, address receiver, bytes32 payloadHash);\\n\\n    event PacketDelivered(Origin origin, address receiver);\\n\\n    event LzReceiveAlert(\\n        address indexed receiver,\\n        address indexed executor,\\n        Origin origin,\\n        bytes32 guid,\\n        uint256 gas,\\n        uint256 value,\\n        bytes message,\\n        bytes extraData,\\n        bytes reason\\n    );\\n\\n    event LzTokenSet(address token);\\n\\n    event DelegateSet(address sender, address delegate);\\n\\n    function quote(MessagingParams calldata _params, address _sender) external view returns (MessagingFee memory);\\n\\n    function send(\\n        MessagingParams calldata _params,\\n        address _refundAddress\\n    ) external payable returns (MessagingReceipt memory);\\n\\n    function verify(Origin calldata _origin, address _receiver, bytes32 _payloadHash) external;\\n\\n    function verifiable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n    function initializable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n    function lzReceive(\\n        Origin calldata _origin,\\n        address _receiver,\\n        bytes32 _guid,\\n        bytes calldata _message,\\n        bytes calldata _extraData\\n    ) external payable;\\n\\n    // oapp can burn messages partially by calling this function with its own business logic if messages are verified in order\\n    function clear(address _oapp, Origin calldata _origin, bytes32 _guid, bytes calldata _message) external;\\n\\n    function setLzToken(address _lzToken) external;\\n\\n    function lzToken() external view returns (address);\\n\\n    function nativeToken() external view returns (address);\\n\\n    function setDelegate(address _delegate) external;\\n}\\n\",\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { Origin } from \\\"./ILayerZeroEndpointV2.sol\\\";\\n\\ninterface ILayerZeroReceiver {\\n    function allowInitializePath(Origin calldata _origin) external view returns (bool);\\n\\n    function nextNonce(uint32 _eid, bytes32 _sender) external view returns (uint64);\\n\\n    function lzReceive(\\n        Origin calldata _origin,\\n        bytes32 _guid,\\n        bytes calldata _message,\\n        address _executor,\\n        bytes calldata _extraData\\n    ) external payable;\\n}\\n\",\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nstruct SetConfigParam {\\n    uint32 eid;\\n    uint32 configType;\\n    bytes config;\\n}\\n\\ninterface IMessageLibManager {\\n    struct Timeout {\\n        address lib;\\n        uint256 expiry;\\n    }\\n\\n    event LibraryRegistered(address newLib);\\n    event DefaultSendLibrarySet(uint32 eid, address newLib);\\n    event DefaultReceiveLibrarySet(uint32 eid, address newLib);\\n    event DefaultReceiveLibraryTimeoutSet(uint32 eid, address oldLib, uint256 expiry);\\n    event SendLibrarySet(address sender, uint32 eid, address newLib);\\n    event ReceiveLibrarySet(address receiver, uint32 eid, address newLib);\\n    event ReceiveLibraryTimeoutSet(address receiver, uint32 eid, address oldLib, uint256 timeout);\\n\\n    function registerLibrary(address _lib) external;\\n\\n    function isRegisteredLibrary(address _lib) external view returns (bool);\\n\\n    function getRegisteredLibraries() external view returns (address[] memory);\\n\\n    function setDefaultSendLibrary(uint32 _eid, address _newLib) external;\\n\\n    function defaultSendLibrary(uint32 _eid) external view returns (address);\\n\\n    function setDefaultReceiveLibrary(uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n    function defaultReceiveLibrary(uint32 _eid) external view returns (address);\\n\\n    function setDefaultReceiveLibraryTimeout(uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n    function defaultReceiveLibraryTimeout(uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n    function isSupportedEid(uint32 _eid) external view returns (bool);\\n\\n    function isValidReceiveLibrary(address _receiver, uint32 _eid, address _lib) external view returns (bool);\\n\\n    /// ------------------- OApp interfaces -------------------\\n    function setSendLibrary(address _oapp, uint32 _eid, address _newLib) external;\\n\\n    function getSendLibrary(address _sender, uint32 _eid) external view returns (address lib);\\n\\n    function isDefaultSendLibrary(address _sender, uint32 _eid) external view returns (bool);\\n\\n    function setReceiveLibrary(address _oapp, uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n    function getReceiveLibrary(address _receiver, uint32 _eid) external view returns (address lib, bool isDefault);\\n\\n    function setReceiveLibraryTimeout(address _oapp, uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n    function receiveLibraryTimeout(address _receiver, uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n    function setConfig(address _oapp, address _lib, SetConfigParam[] calldata _params) external;\\n\\n    function getConfig(\\n        address _oapp,\\n        address _lib,\\n        uint32 _eid,\\n        uint32 _configType\\n    ) external view returns (bytes memory config);\\n}\\n\",\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingChannel {\\n    event InboundNonceSkipped(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce);\\n    event PacketNilified(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n    event PacketBurnt(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n\\n    function eid() external view returns (uint32);\\n\\n    // this is an emergency function if a message cannot be verified for some reasons\\n    // required to provide _nextNonce to avoid race condition\\n    function skip(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce) external;\\n\\n    function nilify(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n    function burn(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n    function nextGuid(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (bytes32);\\n\\n    function inboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n\\n    function outboundNonce(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (uint64);\\n\\n    function inboundPayloadHash(\\n        address _receiver,\\n        uint32 _srcEid,\\n        bytes32 _sender,\\n        uint64 _nonce\\n    ) external view returns (bytes32);\\n\\n    function lazyInboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n}\\n\",\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingComposer {\\n    event ComposeSent(address from, address to, bytes32 guid, uint16 index, bytes message);\\n    event ComposeDelivered(address from, address to, bytes32 guid, uint16 index);\\n    event LzComposeAlert(\\n        address indexed from,\\n        address indexed to,\\n        address indexed executor,\\n        bytes32 guid,\\n        uint16 index,\\n        uint256 gas,\\n        uint256 value,\\n        bytes message,\\n        bytes extraData,\\n        bytes reason\\n    );\\n\\n    function composeQueue(\\n        address _from,\\n        address _to,\\n        bytes32 _guid,\\n        uint16 _index\\n    ) external view returns (bytes32 messageHash);\\n\\n    function sendCompose(address _to, bytes32 _guid, uint16 _index, bytes calldata _message) external;\\n\\n    function lzCompose(\\n        address _from,\\n        address _to,\\n        bytes32 _guid,\\n        uint16 _index,\\n        bytes calldata _message,\\n        bytes calldata _extraData\\n    ) external payable;\\n}\\n\",\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingContext {\\n    function isSendingMessage() external view returns (bool);\\n\\n    function getSendContext() external view returns (uint32 dstEid, address sender);\\n}\\n\",\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\"},\"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppCoreUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { OwnableUpgradeable } from \\\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\\\";\\nimport { IOAppCore, ILayerZeroEndpointV2 } from \\\"@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppCore.sol\\\";\\n\\n/**\\n * @title OAppCore\\n * @dev Abstract contract implementing the IOAppCore interface with basic OApp configurations.\\n */\\nabstract contract OAppCoreUpgradeable is IOAppCore, OwnableUpgradeable {\\n    struct OAppCoreStorage {\\n        mapping(uint32 => bytes32) peers;\\n    }\\n\\n    // keccak256(abi.encode(uint256(keccak256(\\\"layerzerov2.storage.oappcore\\\")) - 1)) & ~bytes32(uint256(0xff))\\n    bytes32 private constant OAPP_CORE_STORAGE_LOCATION =\\n        0x72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f900;\\n\\n    function _getOAppCoreStorage() internal pure returns (OAppCoreStorage storage $) {\\n        assembly {\\n            $.slot := OAPP_CORE_STORAGE_LOCATION\\n        }\\n    }\\n\\n    // The LayerZero endpoint associated with the given OApp\\n    ILayerZeroEndpointV2 public immutable endpoint;\\n\\n    /**\\n     * @dev Constructor to initialize the OAppCore with the provided endpoint and delegate.\\n     * @param _endpoint The address of the LOCAL Layer Zero endpoint.\\n     */\\n    constructor(address _endpoint) {\\n        endpoint = ILayerZeroEndpointV2(_endpoint);\\n    }\\n\\n    /**\\n     * @dev Initializes the OAppCore with the provided delegate.\\n     * @param _delegate The delegate capable of making OApp configurations inside of the endpoint.\\n     *\\n     * @dev The delegate typically should be set as the owner of the contract.\\n     * @dev Ownable is not initialized here on purpose. It should be initialized in the child contract to\\n     * accommodate the different version of Ownable.\\n     */\\n    function __OAppCore_init(address _delegate) internal onlyInitializing {\\n        __OAppCore_init_unchained(_delegate);\\n    }\\n\\n    function __OAppCore_init_unchained(address _delegate) internal onlyInitializing {\\n        if (_delegate == address(0)) revert InvalidDelegate();\\n        endpoint.setDelegate(_delegate);\\n    }\\n\\n    /**\\n     * @notice Returns the peer address (OApp instance) associated with a specific endpoint.\\n     * @param _eid The endpoint ID.\\n     * @return peer The address of the peer associated with the specified endpoint.\\n     */\\n    function peers(uint32 _eid) public view override returns (bytes32) {\\n        OAppCoreStorage storage $ = _getOAppCoreStorage();\\n        return $.peers[_eid];\\n    }\\n\\n    /**\\n     * @notice Sets the peer address (OApp instance) for a corresponding endpoint.\\n     * @param _eid The endpoint ID.\\n     * @param _peer The address of the peer to be associated with the corresponding endpoint.\\n     *\\n     * @dev Only the owner/admin of the OApp can call this function.\\n     * @dev Indicates that the peer is trusted to send LayerZero messages to this OApp.\\n     * @dev Set this to bytes32(0) to remove the peer address.\\n     * @dev Peer is a bytes32 to accommodate non-evm chains.\\n     */\\n    function setPeer(uint32 _eid, bytes32 _peer) public virtual onlyOwner {\\n        OAppCoreStorage storage $ = _getOAppCoreStorage();\\n        $.peers[_eid] = _peer;\\n        emit PeerSet(_eid, _peer);\\n    }\\n\\n    /**\\n     * @notice Internal function to get the peer address associated with a specific endpoint; reverts if NOT set.\\n     * ie. the peer is set to bytes32(0).\\n     * @param _eid The endpoint ID.\\n     * @return peer The address of the peer associated with the specified endpoint.\\n     */\\n    function _getPeerOrRevert(uint32 _eid) internal view virtual returns (bytes32) {\\n        OAppCoreStorage storage $ = _getOAppCoreStorage();\\n        bytes32 peer = $.peers[_eid];\\n        if (peer == bytes32(0)) revert NoPeer(_eid);\\n        return peer;\\n    }\\n\\n    /**\\n     * @notice Sets the delegate address for the OApp.\\n     * @param _delegate The address of the delegate to be set.\\n     *\\n     * @dev Only the owner/admin of the OApp can call this function.\\n     * @dev Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\\n     */\\n    function setDelegate(address _delegate) public onlyOwner {\\n        endpoint.setDelegate(_delegate);\\n    }\\n}\\n\",\"keccak256\":\"0xbe135fd35bf12c97aeb701caeb6c5d0c1c28c1ac2ab1d4219d15f8384951c140\",\"license\":\"MIT\"},\"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppReceiverUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { IOAppReceiver, Origin } from \\\"@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppReceiver.sol\\\";\\nimport { OAppCoreUpgradeable } from \\\"./OAppCoreUpgradeable.sol\\\";\\n\\n/**\\n * @title OAppReceiver\\n * @dev Abstract contract implementing the ILayerZeroReceiver interface and extending OAppCore for OApp receivers.\\n */\\nabstract contract OAppReceiverUpgradeable is IOAppReceiver, OAppCoreUpgradeable {\\n    // Custom error message for when the caller is not the registered endpoint/\\n    error OnlyEndpoint(address addr);\\n\\n    // @dev The version of the OAppReceiver implementation.\\n    // @dev Version is bumped when changes are made to this contract.\\n    uint64 internal constant RECEIVER_VERSION = 2;\\n\\n    /**\\n     * @param _delegate The delegate capable of making OApp configurations inside of the endpoint.\\n     * @dev Ownable is not initialized here on purpose. It should be initialized in the child contract to\\n     * accommodate the different version of Ownable.\\n     */\\n    function __OAppReceiver_init(address _delegate) internal onlyInitializing {\\n        __OAppCore_init(_delegate);\\n    }\\n\\n    function __OAppReceiver_init_unchained() internal onlyInitializing {}\\n\\n    /**\\n     * @notice Retrieves the OApp version information.\\n     * @return senderVersion The version of the OAppSender.sol contract.\\n     * @return receiverVersion The version of the OAppReceiver.sol contract.\\n     *\\n     * @dev Providing 0 as the default for OAppSender version. Indicates that the OAppSender is not implemented.\\n     * ie. this is a RECEIVE only OApp.\\n     * @dev If the OApp uses both OAppSender and OAppReceiver, then this needs to be override returning the correct versions.\\n     */\\n    function oAppVersion() public view virtual returns (uint64 senderVersion, uint64 receiverVersion) {\\n        return (0, RECEIVER_VERSION);\\n    }\\n\\n    /**\\n     * @notice Indicates whether an address is an approved composeMsg sender to the Endpoint.\\n     * @dev _origin The origin information containing the source endpoint and sender address.\\n     *  - srcEid: The source chain endpoint ID.\\n     *  - sender: The sender address on the src chain.\\n     *  - nonce: The nonce of the message.\\n     * @dev _message The lzReceive payload.\\n     * @param _sender The sender address.\\n     * @return isSender Is a valid sender.\\n     *\\n     * @dev Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.\\n     * @dev The default sender IS the OAppReceiver implementer.\\n     */\\n    function isComposeMsgSender(\\n        Origin calldata /*_origin*/,\\n        bytes calldata /*_message*/,\\n        address _sender\\n    ) public view virtual returns (bool) {\\n        return _sender == address(this);\\n    }\\n\\n    /**\\n     * @notice Checks if the path initialization is allowed based on the provided origin.\\n     * @param origin The origin information containing the source endpoint and sender address.\\n     * @return Whether the path has been initialized.\\n     *\\n     * @dev This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.\\n     * @dev This defaults to assuming if a peer has been set, its initialized.\\n     * Can be overridden by the OApp if there is other logic to determine this.\\n     */\\n    function allowInitializePath(Origin calldata origin) public view virtual returns (bool) {\\n        return peers(origin.srcEid) == origin.sender;\\n    }\\n\\n    /**\\n     * @notice Retrieves the next nonce for a given source endpoint and sender address.\\n     * @dev _srcEid The source endpoint ID.\\n     * @dev _sender The sender address.\\n     * @return nonce The next nonce.\\n     *\\n     * @dev The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.\\n     * @dev Is required by the off-chain executor to determine the OApp expects msg execution is ordered.\\n     * @dev This is also enforced by the OApp.\\n     * @dev By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.\\n     */\\n    function nextNonce(uint32, /*_srcEid*/ bytes32 /*_sender*/) public view virtual returns (uint64 nonce) {\\n        return 0;\\n    }\\n\\n    /**\\n     * @dev Entry point for receiving messages or packets from the endpoint.\\n     * @param _origin The origin information containing the source endpoint and sender address.\\n     *  - srcEid: The source chain endpoint ID.\\n     *  - sender: The sender address on the src chain.\\n     *  - nonce: The nonce of the message.\\n     * @param _guid The unique identifier for the received LayerZero message.\\n     * @param _message The payload of the received message.\\n     * @param _executor The address of the executor for the received message.\\n     * @param _extraData Additional arbitrary data provided by the corresponding executor.\\n     *\\n     * @dev Entry point for receiving msg/packet from the LayerZero endpoint.\\n     */\\n    function lzReceive(\\n        Origin calldata _origin,\\n        bytes32 _guid,\\n        bytes calldata _message,\\n        address _executor,\\n        bytes calldata _extraData\\n    ) public payable virtual {\\n        // Ensures that only the endpoint can attempt to lzReceive() messages to this OApp.\\n        if (address(endpoint) != msg.sender) revert OnlyEndpoint(msg.sender);\\n\\n        // Ensure that the sender matches the expected peer for the source endpoint.\\n        if (_getPeerOrRevert(_origin.srcEid) != _origin.sender) revert OnlyPeer(_origin.srcEid, _origin.sender);\\n\\n        // Call the internal OApp implementation of lzReceive.\\n        _lzReceive(_origin, _guid, _message, _executor, _extraData);\\n    }\\n\\n    /**\\n     * @dev Internal function to implement lzReceive logic without needing to copy the basic parameter validation.\\n     */\\n    function _lzReceive(\\n        Origin calldata _origin,\\n        bytes32 _guid,\\n        bytes calldata _message,\\n        address _executor,\\n        bytes calldata _extraData\\n    ) internal virtual;\\n}\\n\",\"keccak256\":\"0xa38e5d26d044331212af7fc69dbbdebf25f527811bbd0492a4cee9ecdd3bd671\",\"license\":\"MIT\"},\"@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppCore.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { ILayerZeroEndpointV2 } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\\\";\\n\\n/**\\n * @title IOAppCore\\n */\\ninterface IOAppCore {\\n    // Custom error messages\\n    error OnlyPeer(uint32 eid, bytes32 sender);\\n    error NoPeer(uint32 eid);\\n    error InvalidEndpointCall();\\n    error InvalidDelegate();\\n\\n    // Event emitted when a peer (OApp) is set for a corresponding endpoint\\n    event PeerSet(uint32 eid, bytes32 peer);\\n\\n    /**\\n     * @notice Retrieves the OApp version information.\\n     * @return senderVersion The version of the OAppSender.sol contract.\\n     * @return receiverVersion The version of the OAppReceiver.sol contract.\\n     */\\n    function oAppVersion() external view returns (uint64 senderVersion, uint64 receiverVersion);\\n\\n    /**\\n     * @notice Retrieves the LayerZero endpoint associated with the OApp.\\n     * @return iEndpoint The LayerZero endpoint as an interface.\\n     */\\n    function endpoint() external view returns (ILayerZeroEndpointV2 iEndpoint);\\n\\n    /**\\n     * @notice Retrieves the peer (OApp) associated with a corresponding endpoint.\\n     * @param _eid The endpoint ID.\\n     * @return peer The peer address (OApp instance) associated with the corresponding endpoint.\\n     */\\n    function peers(uint32 _eid) external view returns (bytes32 peer);\\n\\n    /**\\n     * @notice Sets the peer address (OApp instance) for a corresponding endpoint.\\n     * @param _eid The endpoint ID.\\n     * @param _peer The address of the peer to be associated with the corresponding endpoint.\\n     */\\n    function setPeer(uint32 _eid, bytes32 _peer) external;\\n\\n    /**\\n     * @notice Sets the delegate address for the OApp Core.\\n     * @param _delegate The address of the delegate to be set.\\n     */\\n    function setDelegate(address _delegate) external;\\n}\\n\",\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\"},\"@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.20;\\n\\nimport { ILayerZeroReceiver, Origin } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\\\";\\n\\ninterface IOAppReceiver is ILayerZeroReceiver {\\n    /**\\n     * @notice Indicates whether an address is an approved composeMsg sender to the Endpoint.\\n     * @param _origin The origin information containing the source endpoint and sender address.\\n     *  - srcEid: The source chain endpoint ID.\\n     *  - sender: The sender address on the src chain.\\n     *  - nonce: The nonce of the message.\\n     * @param _message The lzReceive payload.\\n     * @param _sender The sender address.\\n     * @return isSender Is a valid sender.\\n     *\\n     * @dev Applications can optionally choose to implement a separate composeMsg sender that is NOT the bridging layer.\\n     * @dev The default sender IS the OAppReceiver implementer.\\n     */\\n    function isComposeMsgSender(\\n        Origin calldata _origin,\\n        bytes calldata _message,\\n        address _sender\\n    ) external view returns (bool isSender);\\n}\\n\",\"keccak256\":\"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/ContextUpgradeable.sol\\\";\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract OwnableUpgradeable is Initializable, ContextUpgradeable {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    function __Ownable_init() internal onlyInitializing {\\n        __Ownable_init_unchained();\\n    }\\n\\n    function __Ownable_init_unchained() internal onlyInitializing {\\n        _transferOwnership(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        _checkOwner();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if the sender is not the owner.\\n     */\\n    function _checkOwner() internal view virtual {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions anymore. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby removing any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.1) (proxy/utils/Initializable.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../../utils/AddressUpgradeable.sol\\\";\\n\\n/**\\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\\n *\\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\\n * reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in\\n * case an upgrade adds a module that needs to be initialized.\\n *\\n * For example:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * contract MyToken is ERC20Upgradeable {\\n *     function initialize() initializer public {\\n *         __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\");\\n *     }\\n * }\\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\\n *     function initializeV2() reinitializer(2) public {\\n *         __ERC20Permit_init(\\\"MyToken\\\");\\n *     }\\n * }\\n * ```\\n *\\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\\n *\\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\\n *\\n * [CAUTION]\\n * ====\\n * Avoid leaving a contract uninitialized.\\n *\\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * /// @custom:oz-upgrades-unsafe-allow constructor\\n * constructor() {\\n *     _disableInitializers();\\n * }\\n * ```\\n * ====\\n */\\nabstract contract Initializable {\\n    /**\\n     * @dev Indicates that the contract has been initialized.\\n     * @custom:oz-retyped-from bool\\n     */\\n    uint8 private _initialized;\\n\\n    /**\\n     * @dev Indicates that the contract is in the process of being initialized.\\n     */\\n    bool private _initializing;\\n\\n    /**\\n     * @dev Triggered when the contract has been initialized or reinitialized.\\n     */\\n    event Initialized(uint8 version);\\n\\n    /**\\n     * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\\n     * `onlyInitializing` functions can be used to initialize parent contracts.\\n     *\\n     * Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\\n     * constructor.\\n     *\\n     * Emits an {Initialized} event.\\n     */\\n    modifier initializer() {\\n        bool isTopLevelCall = !_initializing;\\n        require(\\n            (isTopLevelCall && _initialized < 1) || (!AddressUpgradeable.isContract(address(this)) && _initialized == 1),\\n            \\\"Initializable: contract is already initialized\\\"\\n        );\\n        _initialized = 1;\\n        if (isTopLevelCall) {\\n            _initializing = true;\\n        }\\n        _;\\n        if (isTopLevelCall) {\\n            _initializing = false;\\n            emit Initialized(1);\\n        }\\n    }\\n\\n    /**\\n     * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\\n     * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\\n     * used to initialize parent contracts.\\n     *\\n     * A reinitializer may be used after the original initialization step. This is essential to configure modules that\\n     * are added through upgrades and that require initialization.\\n     *\\n     * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\\n     * cannot be nested. If one is invoked in the context of another, execution will revert.\\n     *\\n     * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\\n     * a contract, executing them in the right order is up to the developer or operator.\\n     *\\n     * WARNING: setting the version to 255 will prevent any future reinitialization.\\n     *\\n     * Emits an {Initialized} event.\\n     */\\n    modifier reinitializer(uint8 version) {\\n        require(!_initializing && _initialized < version, \\\"Initializable: contract is already initialized\\\");\\n        _initialized = version;\\n        _initializing = true;\\n        _;\\n        _initializing = false;\\n        emit Initialized(version);\\n    }\\n\\n    /**\\n     * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\\n     * {initializer} and {reinitializer} modifiers, directly or indirectly.\\n     */\\n    modifier onlyInitializing() {\\n        require(_initializing, \\\"Initializable: contract is not initializing\\\");\\n        _;\\n    }\\n\\n    /**\\n     * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\\n     * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\\n     * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\\n     * through proxies.\\n     *\\n     * Emits an {Initialized} event the first time it is successfully executed.\\n     */\\n    function _disableInitializers() internal virtual {\\n        require(!_initializing, \\\"Initializable: contract is initializing\\\");\\n        if (_initialized < type(uint8).max) {\\n            _initialized = type(uint8).max;\\n            emit Initialized(type(uint8).max);\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns the highest version that has been initialized. See {reinitializer}.\\n     */\\n    function _getInitializedVersion() internal view returns (uint8) {\\n        return _initialized;\\n    }\\n\\n    /**\\n     * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.\\n     */\\n    function _isInitializing() internal view returns (bool) {\\n        return _initializing;\\n    }\\n}\\n\",\"keccak256\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary AddressUpgradeable {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\n     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\n     *\\n     * _Available since v4.8._\\n     */\\n    function verifyCallResultFromTarget(\\n        address target,\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        if (success) {\\n            if (returndata.length == 0) {\\n                // only check isContract if the call was successful and the return data is empty\\n                // otherwise we already know that it was a contract\\n                require(isContract(target), \\\"Address: call to non-contract\\\");\\n            }\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason or using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    function _revert(bytes memory returndata, string memory errorMessage) private pure {\\n        // Look for revert reason and bubble it up if present\\n        if (returndata.length > 0) {\\n            // The easiest way to bubble the revert reason is using memory via assembly\\n            /// @solidity memory-safe-assembly\\n            assembly {\\n                let returndata_size := mload(returndata)\\n                revert(add(32, returndata), returndata_size)\\n            }\\n        } else {\\n            revert(errorMessage);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract ContextUpgradeable is Initializable {\\n    function __Context_init() internal onlyInitializing {\\n    }\\n\\n    function __Context_init_unchained() internal onlyInitializing {\\n    }\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[50] private __gap;\\n}\\n\",\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":6086,"contract":"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppReceiverUpgradeable.sol:OAppReceiverUpgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":6089,"contract":"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppReceiverUpgradeable.sol:OAppReceiverUpgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":6573,"contract":"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppReceiverUpgradeable.sol:OAppReceiverUpgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":5958,"contract":"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppReceiverUpgradeable.sol:OAppReceiverUpgradeable","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":6078,"contract":"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppReceiverUpgradeable.sol:OAppReceiverUpgradeable","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"kind":"user","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"notice":"Checks if the path initialization is allowed based on the provided origin."},"endpoint()":{"notice":"Retrieves the LayerZero endpoint associated with the OApp."},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"notice":"Indicates whether an address is an approved composeMsg sender to the Endpoint."},"nextNonce(uint32,bytes32)":{"notice":"Retrieves the next nonce for a given source endpoint and sender address."},"oAppVersion()":{"notice":"Retrieves the OApp version information."},"peers(uint32)":{"notice":"Returns the peer address (OApp instance) associated with a specific endpoint."},"setDelegate(address)":{"notice":"Sets the delegate address for the OApp."},"setPeer(uint32,bytes32)":{"notice":"Sets the peer address (OApp instance) for a corresponding endpoint."}},"version":1}}},"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppSenderUpgradeable.sol":{"OAppSenderUpgradeable":{"abi":[{"inputs":[],"name":"InvalidDelegate","type":"error"},{"inputs":[],"name":"InvalidEndpointCall","type":"error"},{"inputs":[],"name":"LzTokenUnavailable","type":"error"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"name":"NoPeer","type":"error"},{"inputs":[{"internalType":"uint256","name":"msgValue","type":"uint256"}],"name":"NotEnoughNative","type":"error"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"}],"name":"OnlyPeer","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"eid","type":"uint32"},{"indexed":false,"internalType":"bytes32","name":"peer","type":"bytes32"}],"name":"PeerSet","type":"event"},{"inputs":[],"name":"endpoint","outputs":[{"internalType":"contract ILayerZeroEndpointV2","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oAppVersion","outputs":[{"internalType":"uint64","name":"senderVersion","type":"uint64"},{"internalType":"uint64","name":"receiverVersion","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"name":"peers","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"name":"setDelegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"name":"setPeer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Abstract contract implementing the OAppSender functionality for sending messages to a LayerZero endpoint.","events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."}},"kind":"dev","methods":{"oAppVersion()":{"details":"Providing 0 as the default for OAppReceiver version. Indicates that the OAppReceiver is not implemented. ie. this is a SEND only OApp.If the OApp uses both OAppSender and OAppReceiver, then this needs to be override returning the correct versions","returns":{"receiverVersion":"The version of the OAppReceiver.sol contract.","senderVersion":"The version of the OAppSender.sol contract."}},"owner()":{"details":"Returns the address of the current owner."},"peers(uint32)":{"params":{"_eid":"The endpoint ID."},"returns":{"_0":"peer The address of the peer associated with the specified endpoint."}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"setDelegate(address)":{"details":"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.","params":{"_delegate":"The address of the delegate to be set."}},"setPeer(uint32,bytes32)":{"details":"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.","params":{"_eid":"The endpoint ID.","_peer":"The address of the peer to be associated with the corresponding endpoint."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"title":"OAppSender","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"endpoint()":"5e280f11","oAppVersion()":"17442b70","owner()":"8da5cb5b","peers(uint32)":"bb0b6a53","renounceOwnership()":"715018a6","setDelegate(address)":"ca5eb5e1","setPeer(uint32,bytes32)":"3400288b","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidDelegate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEndpointCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LzTokenUnavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"NoPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"}],\"name\":\"NotEnoughNative\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"OnlyPeer\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"name\":\"PeerSet\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"endpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpointV2\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oAppVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"senderVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receiverVersion\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"peers\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"setPeer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Abstract contract implementing the OAppSender functionality for sending messages to a LayerZero endpoint.\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"oAppVersion()\":{\"details\":\"Providing 0 as the default for OAppReceiver version. Indicates that the OAppReceiver is not implemented. ie. this is a SEND only OApp.If the OApp uses both OAppSender and OAppReceiver, then this needs to be override returning the correct versions\",\"returns\":{\"receiverVersion\":\"The version of the OAppReceiver.sol contract.\",\"senderVersion\":\"The version of the OAppSender.sol contract.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"peers(uint32)\":{\"params\":{\"_eid\":\"The endpoint ID.\"},\"returns\":{\"_0\":\"peer The address of the peer associated with the specified endpoint.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"setDelegate(address)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\",\"params\":{\"_delegate\":\"The address of the delegate to be set.\"}},\"setPeer(uint32,bytes32)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_peer\":\"The address of the peer to be associated with the corresponding endpoint.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"OAppSender\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"endpoint()\":{\"notice\":\"Retrieves the LayerZero endpoint associated with the OApp.\"},\"oAppVersion()\":{\"notice\":\"Retrieves the OApp version information.\"},\"peers(uint32)\":{\"notice\":\"Returns the peer address (OApp instance) associated with a specific endpoint.\"},\"setDelegate(address)\":{\"notice\":\"Sets the delegate address for the OApp.\"},\"setPeer(uint32,bytes32)\":{\"notice\":\"Sets the peer address (OApp instance) for a corresponding endpoint.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppSenderUpgradeable.sol\":\"OAppSenderUpgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { IMessageLibManager } from \\\"./IMessageLibManager.sol\\\";\\nimport { IMessagingComposer } from \\\"./IMessagingComposer.sol\\\";\\nimport { IMessagingChannel } from \\\"./IMessagingChannel.sol\\\";\\nimport { IMessagingContext } from \\\"./IMessagingContext.sol\\\";\\n\\nstruct MessagingParams {\\n    uint32 dstEid;\\n    bytes32 receiver;\\n    bytes message;\\n    bytes options;\\n    bool payInLzToken;\\n}\\n\\nstruct MessagingReceipt {\\n    bytes32 guid;\\n    uint64 nonce;\\n    MessagingFee fee;\\n}\\n\\nstruct MessagingFee {\\n    uint256 nativeFee;\\n    uint256 lzTokenFee;\\n}\\n\\nstruct Origin {\\n    uint32 srcEid;\\n    bytes32 sender;\\n    uint64 nonce;\\n}\\n\\ninterface ILayerZeroEndpointV2 is IMessageLibManager, IMessagingComposer, IMessagingChannel, IMessagingContext {\\n    event PacketSent(bytes encodedPayload, bytes options, address sendLibrary);\\n\\n    event PacketVerified(Origin origin, address receiver, bytes32 payloadHash);\\n\\n    event PacketDelivered(Origin origin, address receiver);\\n\\n    event LzReceiveAlert(\\n        address indexed receiver,\\n        address indexed executor,\\n        Origin origin,\\n        bytes32 guid,\\n        uint256 gas,\\n        uint256 value,\\n        bytes message,\\n        bytes extraData,\\n        bytes reason\\n    );\\n\\n    event LzTokenSet(address token);\\n\\n    event DelegateSet(address sender, address delegate);\\n\\n    function quote(MessagingParams calldata _params, address _sender) external view returns (MessagingFee memory);\\n\\n    function send(\\n        MessagingParams calldata _params,\\n        address _refundAddress\\n    ) external payable returns (MessagingReceipt memory);\\n\\n    function verify(Origin calldata _origin, address _receiver, bytes32 _payloadHash) external;\\n\\n    function verifiable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n    function initializable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n    function lzReceive(\\n        Origin calldata _origin,\\n        address _receiver,\\n        bytes32 _guid,\\n        bytes calldata _message,\\n        bytes calldata _extraData\\n    ) external payable;\\n\\n    // oapp can burn messages partially by calling this function with its own business logic if messages are verified in order\\n    function clear(address _oapp, Origin calldata _origin, bytes32 _guid, bytes calldata _message) external;\\n\\n    function setLzToken(address _lzToken) external;\\n\\n    function lzToken() external view returns (address);\\n\\n    function nativeToken() external view returns (address);\\n\\n    function setDelegate(address _delegate) external;\\n}\\n\",\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nstruct SetConfigParam {\\n    uint32 eid;\\n    uint32 configType;\\n    bytes config;\\n}\\n\\ninterface IMessageLibManager {\\n    struct Timeout {\\n        address lib;\\n        uint256 expiry;\\n    }\\n\\n    event LibraryRegistered(address newLib);\\n    event DefaultSendLibrarySet(uint32 eid, address newLib);\\n    event DefaultReceiveLibrarySet(uint32 eid, address newLib);\\n    event DefaultReceiveLibraryTimeoutSet(uint32 eid, address oldLib, uint256 expiry);\\n    event SendLibrarySet(address sender, uint32 eid, address newLib);\\n    event ReceiveLibrarySet(address receiver, uint32 eid, address newLib);\\n    event ReceiveLibraryTimeoutSet(address receiver, uint32 eid, address oldLib, uint256 timeout);\\n\\n    function registerLibrary(address _lib) external;\\n\\n    function isRegisteredLibrary(address _lib) external view returns (bool);\\n\\n    function getRegisteredLibraries() external view returns (address[] memory);\\n\\n    function setDefaultSendLibrary(uint32 _eid, address _newLib) external;\\n\\n    function defaultSendLibrary(uint32 _eid) external view returns (address);\\n\\n    function setDefaultReceiveLibrary(uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n    function defaultReceiveLibrary(uint32 _eid) external view returns (address);\\n\\n    function setDefaultReceiveLibraryTimeout(uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n    function defaultReceiveLibraryTimeout(uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n    function isSupportedEid(uint32 _eid) external view returns (bool);\\n\\n    function isValidReceiveLibrary(address _receiver, uint32 _eid, address _lib) external view returns (bool);\\n\\n    /// ------------------- OApp interfaces -------------------\\n    function setSendLibrary(address _oapp, uint32 _eid, address _newLib) external;\\n\\n    function getSendLibrary(address _sender, uint32 _eid) external view returns (address lib);\\n\\n    function isDefaultSendLibrary(address _sender, uint32 _eid) external view returns (bool);\\n\\n    function setReceiveLibrary(address _oapp, uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n    function getReceiveLibrary(address _receiver, uint32 _eid) external view returns (address lib, bool isDefault);\\n\\n    function setReceiveLibraryTimeout(address _oapp, uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n    function receiveLibraryTimeout(address _receiver, uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n    function setConfig(address _oapp, address _lib, SetConfigParam[] calldata _params) external;\\n\\n    function getConfig(\\n        address _oapp,\\n        address _lib,\\n        uint32 _eid,\\n        uint32 _configType\\n    ) external view returns (bytes memory config);\\n}\\n\",\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingChannel {\\n    event InboundNonceSkipped(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce);\\n    event PacketNilified(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n    event PacketBurnt(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n\\n    function eid() external view returns (uint32);\\n\\n    // this is an emergency function if a message cannot be verified for some reasons\\n    // required to provide _nextNonce to avoid race condition\\n    function skip(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce) external;\\n\\n    function nilify(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n    function burn(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n    function nextGuid(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (bytes32);\\n\\n    function inboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n\\n    function outboundNonce(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (uint64);\\n\\n    function inboundPayloadHash(\\n        address _receiver,\\n        uint32 _srcEid,\\n        bytes32 _sender,\\n        uint64 _nonce\\n    ) external view returns (bytes32);\\n\\n    function lazyInboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n}\\n\",\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingComposer {\\n    event ComposeSent(address from, address to, bytes32 guid, uint16 index, bytes message);\\n    event ComposeDelivered(address from, address to, bytes32 guid, uint16 index);\\n    event LzComposeAlert(\\n        address indexed from,\\n        address indexed to,\\n        address indexed executor,\\n        bytes32 guid,\\n        uint16 index,\\n        uint256 gas,\\n        uint256 value,\\n        bytes message,\\n        bytes extraData,\\n        bytes reason\\n    );\\n\\n    function composeQueue(\\n        address _from,\\n        address _to,\\n        bytes32 _guid,\\n        uint16 _index\\n    ) external view returns (bytes32 messageHash);\\n\\n    function sendCompose(address _to, bytes32 _guid, uint16 _index, bytes calldata _message) external;\\n\\n    function lzCompose(\\n        address _from,\\n        address _to,\\n        bytes32 _guid,\\n        uint16 _index,\\n        bytes calldata _message,\\n        bytes calldata _extraData\\n    ) external payable;\\n}\\n\",\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingContext {\\n    function isSendingMessage() external view returns (bool);\\n\\n    function getSendContext() external view returns (uint32 dstEid, address sender);\\n}\\n\",\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\"},\"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppCoreUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { OwnableUpgradeable } from \\\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\\\";\\nimport { IOAppCore, ILayerZeroEndpointV2 } from \\\"@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppCore.sol\\\";\\n\\n/**\\n * @title OAppCore\\n * @dev Abstract contract implementing the IOAppCore interface with basic OApp configurations.\\n */\\nabstract contract OAppCoreUpgradeable is IOAppCore, OwnableUpgradeable {\\n    struct OAppCoreStorage {\\n        mapping(uint32 => bytes32) peers;\\n    }\\n\\n    // keccak256(abi.encode(uint256(keccak256(\\\"layerzerov2.storage.oappcore\\\")) - 1)) & ~bytes32(uint256(0xff))\\n    bytes32 private constant OAPP_CORE_STORAGE_LOCATION =\\n        0x72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f900;\\n\\n    function _getOAppCoreStorage() internal pure returns (OAppCoreStorage storage $) {\\n        assembly {\\n            $.slot := OAPP_CORE_STORAGE_LOCATION\\n        }\\n    }\\n\\n    // The LayerZero endpoint associated with the given OApp\\n    ILayerZeroEndpointV2 public immutable endpoint;\\n\\n    /**\\n     * @dev Constructor to initialize the OAppCore with the provided endpoint and delegate.\\n     * @param _endpoint The address of the LOCAL Layer Zero endpoint.\\n     */\\n    constructor(address _endpoint) {\\n        endpoint = ILayerZeroEndpointV2(_endpoint);\\n    }\\n\\n    /**\\n     * @dev Initializes the OAppCore with the provided delegate.\\n     * @param _delegate The delegate capable of making OApp configurations inside of the endpoint.\\n     *\\n     * @dev The delegate typically should be set as the owner of the contract.\\n     * @dev Ownable is not initialized here on purpose. It should be initialized in the child contract to\\n     * accommodate the different version of Ownable.\\n     */\\n    function __OAppCore_init(address _delegate) internal onlyInitializing {\\n        __OAppCore_init_unchained(_delegate);\\n    }\\n\\n    function __OAppCore_init_unchained(address _delegate) internal onlyInitializing {\\n        if (_delegate == address(0)) revert InvalidDelegate();\\n        endpoint.setDelegate(_delegate);\\n    }\\n\\n    /**\\n     * @notice Returns the peer address (OApp instance) associated with a specific endpoint.\\n     * @param _eid The endpoint ID.\\n     * @return peer The address of the peer associated with the specified endpoint.\\n     */\\n    function peers(uint32 _eid) public view override returns (bytes32) {\\n        OAppCoreStorage storage $ = _getOAppCoreStorage();\\n        return $.peers[_eid];\\n    }\\n\\n    /**\\n     * @notice Sets the peer address (OApp instance) for a corresponding endpoint.\\n     * @param _eid The endpoint ID.\\n     * @param _peer The address of the peer to be associated with the corresponding endpoint.\\n     *\\n     * @dev Only the owner/admin of the OApp can call this function.\\n     * @dev Indicates that the peer is trusted to send LayerZero messages to this OApp.\\n     * @dev Set this to bytes32(0) to remove the peer address.\\n     * @dev Peer is a bytes32 to accommodate non-evm chains.\\n     */\\n    function setPeer(uint32 _eid, bytes32 _peer) public virtual onlyOwner {\\n        OAppCoreStorage storage $ = _getOAppCoreStorage();\\n        $.peers[_eid] = _peer;\\n        emit PeerSet(_eid, _peer);\\n    }\\n\\n    /**\\n     * @notice Internal function to get the peer address associated with a specific endpoint; reverts if NOT set.\\n     * ie. the peer is set to bytes32(0).\\n     * @param _eid The endpoint ID.\\n     * @return peer The address of the peer associated with the specified endpoint.\\n     */\\n    function _getPeerOrRevert(uint32 _eid) internal view virtual returns (bytes32) {\\n        OAppCoreStorage storage $ = _getOAppCoreStorage();\\n        bytes32 peer = $.peers[_eid];\\n        if (peer == bytes32(0)) revert NoPeer(_eid);\\n        return peer;\\n    }\\n\\n    /**\\n     * @notice Sets the delegate address for the OApp.\\n     * @param _delegate The address of the delegate to be set.\\n     *\\n     * @dev Only the owner/admin of the OApp can call this function.\\n     * @dev Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\\n     */\\n    function setDelegate(address _delegate) public onlyOwner {\\n        endpoint.setDelegate(_delegate);\\n    }\\n}\\n\",\"keccak256\":\"0xbe135fd35bf12c97aeb701caeb6c5d0c1c28c1ac2ab1d4219d15f8384951c140\",\"license\":\"MIT\"},\"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppSenderUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { SafeERC20, IERC20 } from \\\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\\\";\\nimport { MessagingParams, MessagingFee, MessagingReceipt } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\\\";\\nimport { OAppCoreUpgradeable } from \\\"./OAppCoreUpgradeable.sol\\\";\\n\\n/**\\n * @title OAppSender\\n * @dev Abstract contract implementing the OAppSender functionality for sending messages to a LayerZero endpoint.\\n */\\nabstract contract OAppSenderUpgradeable is OAppCoreUpgradeable {\\n    using SafeERC20 for IERC20;\\n\\n    // Custom error messages\\n    error NotEnoughNative(uint256 msgValue);\\n    error LzTokenUnavailable();\\n\\n    // @dev The version of the OAppSender implementation.\\n    // @dev Version is bumped when changes are made to this contract.\\n    uint64 internal constant SENDER_VERSION = 1;\\n\\n    /**\\n     * @param _delegate The delegate capable of making OApp configurations inside of the endpoint.\\n     * @dev Ownable is not initialized here on purpose. It should be initialized in the child contract to\\n     * accommodate the different version of Ownable.\\n     */\\n    function __OAppSender_init(address _delegate) internal onlyInitializing {\\n        __OAppCore_init(_delegate);\\n    }\\n\\n    function __OAppSender_init_unchained() internal onlyInitializing {}\\n\\n    /**\\n     * @notice Retrieves the OApp version information.\\n     * @return senderVersion The version of the OAppSender.sol contract.\\n     * @return receiverVersion The version of the OAppReceiver.sol contract.\\n     *\\n     * @dev Providing 0 as the default for OAppReceiver version. Indicates that the OAppReceiver is not implemented.\\n     * ie. this is a SEND only OApp.\\n     * @dev If the OApp uses both OAppSender and OAppReceiver, then this needs to be override returning the correct versions\\n     */\\n    function oAppVersion() public view virtual returns (uint64 senderVersion, uint64 receiverVersion) {\\n        return (SENDER_VERSION, 0);\\n    }\\n\\n    /**\\n     * @dev Internal function to interact with the LayerZero EndpointV2.quote() for fee calculation.\\n     * @param _dstEid The destination endpoint ID.\\n     * @param _message The message payload.\\n     * @param _options Additional options for the message.\\n     * @param _payInLzToken Flag indicating whether to pay the fee in LZ tokens.\\n     * @return fee The calculated MessagingFee for the message.\\n     *      - nativeFee: The native fee for the message.\\n     *      - lzTokenFee: The LZ token fee for the message.\\n     */\\n    function _quote(\\n        uint32 _dstEid,\\n        bytes memory _message,\\n        bytes memory _options,\\n        bool _payInLzToken\\n    ) internal view virtual returns (MessagingFee memory fee) {\\n        return\\n            endpoint.quote(\\n                MessagingParams(_dstEid, _getPeerOrRevert(_dstEid), _message, _options, _payInLzToken),\\n                address(this)\\n            );\\n    }\\n\\n    /**\\n     * @dev Internal function to interact with the LayerZero EndpointV2.send() for sending a message.\\n     * @param _dstEid The destination endpoint ID.\\n     * @param _message The message payload.\\n     * @param _options Additional options for the message.\\n     * @param _fee The calculated LayerZero fee for the message.\\n     *      - nativeFee: The native fee.\\n     *      - lzTokenFee: The lzToken fee.\\n     * @param _refundAddress The address to receive any excess fee values sent to the endpoint.\\n     * @return receipt The receipt for the sent message.\\n     *      - guid: The unique identifier for the sent message.\\n     *      - nonce: The nonce of the sent message.\\n     *      - fee: The LayerZero fee incurred for the message.\\n     */\\n    function _lzSend(\\n        uint32 _dstEid,\\n        bytes memory _message,\\n        bytes memory _options,\\n        MessagingFee memory _fee,\\n        address _refundAddress\\n    ) internal virtual returns (MessagingReceipt memory receipt) {\\n        // @dev Push corresponding fees to the endpoint, any excess is sent back to the _refundAddress from the endpoint.\\n        uint256 messageValue = _payNative(_fee.nativeFee);\\n        if (_fee.lzTokenFee > 0) _payLzToken(_fee.lzTokenFee);\\n\\n        return\\n            // solhint-disable-next-line check-send-result\\n            endpoint.send{ value: messageValue }(\\n                MessagingParams(_dstEid, _getPeerOrRevert(_dstEid), _message, _options, _fee.lzTokenFee > 0),\\n                _refundAddress\\n            );\\n    }\\n\\n    /**\\n     * @dev Internal function to pay the native fee associated with the message.\\n     * @param _nativeFee The native fee to be paid.\\n     * @return nativeFee The amount of native currency paid.\\n     *\\n     * @dev If the OApp needs to initiate MULTIPLE LayerZero messages in a single transaction,\\n     * this will need to be overridden because msg.value would contain multiple lzFees.\\n     * @dev Should be overridden in the event the LayerZero endpoint requires a different native currency.\\n     * @dev Some EVMs use an ERC20 as a method for paying transactions/gasFees.\\n     * @dev The endpoint is EITHER/OR, ie. it will NOT support both types of native payment at a time.\\n     */\\n    function _payNative(uint256 _nativeFee) internal virtual returns (uint256 nativeFee) {\\n        if (msg.value != _nativeFee) revert NotEnoughNative(msg.value);\\n        return _nativeFee;\\n    }\\n\\n    /**\\n     * @dev Internal function to pay the LZ token fee associated with the message.\\n     * @param _lzTokenFee The LZ token fee to be paid.\\n     *\\n     * @dev If the caller is trying to pay in the specified lzToken, then the lzTokenFee is passed to the endpoint.\\n     * @dev Any excess sent, is passed back to the specified _refundAddress in the _lzSend().\\n     */\\n    function _payLzToken(uint256 _lzTokenFee) internal virtual {\\n        // @dev Cannot cache the token because it is not immutable in the endpoint.\\n        address lzToken = endpoint.lzToken();\\n        if (lzToken == address(0)) revert LzTokenUnavailable();\\n\\n        // Pay LZ token fee by sending tokens to the endpoint.\\n        IERC20(lzToken).safeTransferFrom(msg.sender, address(endpoint), _lzTokenFee);\\n    }\\n}\\n\",\"keccak256\":\"0x4e13557c5dc7c983f69d32911572efdbddea071a03bf2fc50e1cad92ddf0ef49\",\"license\":\"MIT\"},\"@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppCore.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { ILayerZeroEndpointV2 } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\\\";\\n\\n/**\\n * @title IOAppCore\\n */\\ninterface IOAppCore {\\n    // Custom error messages\\n    error OnlyPeer(uint32 eid, bytes32 sender);\\n    error NoPeer(uint32 eid);\\n    error InvalidEndpointCall();\\n    error InvalidDelegate();\\n\\n    // Event emitted when a peer (OApp) is set for a corresponding endpoint\\n    event PeerSet(uint32 eid, bytes32 peer);\\n\\n    /**\\n     * @notice Retrieves the OApp version information.\\n     * @return senderVersion The version of the OAppSender.sol contract.\\n     * @return receiverVersion The version of the OAppReceiver.sol contract.\\n     */\\n    function oAppVersion() external view returns (uint64 senderVersion, uint64 receiverVersion);\\n\\n    /**\\n     * @notice Retrieves the LayerZero endpoint associated with the OApp.\\n     * @return iEndpoint The LayerZero endpoint as an interface.\\n     */\\n    function endpoint() external view returns (ILayerZeroEndpointV2 iEndpoint);\\n\\n    /**\\n     * @notice Retrieves the peer (OApp) associated with a corresponding endpoint.\\n     * @param _eid The endpoint ID.\\n     * @return peer The peer address (OApp instance) associated with the corresponding endpoint.\\n     */\\n    function peers(uint32 _eid) external view returns (bytes32 peer);\\n\\n    /**\\n     * @notice Sets the peer address (OApp instance) for a corresponding endpoint.\\n     * @param _eid The endpoint ID.\\n     * @param _peer The address of the peer to be associated with the corresponding endpoint.\\n     */\\n    function setPeer(uint32 _eid, bytes32 _peer) external;\\n\\n    /**\\n     * @notice Sets the delegate address for the OApp Core.\\n     * @param _delegate The address of the delegate to be set.\\n     */\\n    function setDelegate(address _delegate) external;\\n}\\n\",\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/ContextUpgradeable.sol\\\";\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract OwnableUpgradeable is Initializable, ContextUpgradeable {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    function __Ownable_init() internal onlyInitializing {\\n        __Ownable_init_unchained();\\n    }\\n\\n    function __Ownable_init_unchained() internal onlyInitializing {\\n        _transferOwnership(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        _checkOwner();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if the sender is not the owner.\\n     */\\n    function _checkOwner() internal view virtual {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions anymore. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby removing any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.1) (proxy/utils/Initializable.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../../utils/AddressUpgradeable.sol\\\";\\n\\n/**\\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\\n *\\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\\n * reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in\\n * case an upgrade adds a module that needs to be initialized.\\n *\\n * For example:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * contract MyToken is ERC20Upgradeable {\\n *     function initialize() initializer public {\\n *         __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\");\\n *     }\\n * }\\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\\n *     function initializeV2() reinitializer(2) public {\\n *         __ERC20Permit_init(\\\"MyToken\\\");\\n *     }\\n * }\\n * ```\\n *\\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\\n *\\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\\n *\\n * [CAUTION]\\n * ====\\n * Avoid leaving a contract uninitialized.\\n *\\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * /// @custom:oz-upgrades-unsafe-allow constructor\\n * constructor() {\\n *     _disableInitializers();\\n * }\\n * ```\\n * ====\\n */\\nabstract contract Initializable {\\n    /**\\n     * @dev Indicates that the contract has been initialized.\\n     * @custom:oz-retyped-from bool\\n     */\\n    uint8 private _initialized;\\n\\n    /**\\n     * @dev Indicates that the contract is in the process of being initialized.\\n     */\\n    bool private _initializing;\\n\\n    /**\\n     * @dev Triggered when the contract has been initialized or reinitialized.\\n     */\\n    event Initialized(uint8 version);\\n\\n    /**\\n     * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\\n     * `onlyInitializing` functions can be used to initialize parent contracts.\\n     *\\n     * Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\\n     * constructor.\\n     *\\n     * Emits an {Initialized} event.\\n     */\\n    modifier initializer() {\\n        bool isTopLevelCall = !_initializing;\\n        require(\\n            (isTopLevelCall && _initialized < 1) || (!AddressUpgradeable.isContract(address(this)) && _initialized == 1),\\n            \\\"Initializable: contract is already initialized\\\"\\n        );\\n        _initialized = 1;\\n        if (isTopLevelCall) {\\n            _initializing = true;\\n        }\\n        _;\\n        if (isTopLevelCall) {\\n            _initializing = false;\\n            emit Initialized(1);\\n        }\\n    }\\n\\n    /**\\n     * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\\n     * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\\n     * used to initialize parent contracts.\\n     *\\n     * A reinitializer may be used after the original initialization step. This is essential to configure modules that\\n     * are added through upgrades and that require initialization.\\n     *\\n     * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\\n     * cannot be nested. If one is invoked in the context of another, execution will revert.\\n     *\\n     * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\\n     * a contract, executing them in the right order is up to the developer or operator.\\n     *\\n     * WARNING: setting the version to 255 will prevent any future reinitialization.\\n     *\\n     * Emits an {Initialized} event.\\n     */\\n    modifier reinitializer(uint8 version) {\\n        require(!_initializing && _initialized < version, \\\"Initializable: contract is already initialized\\\");\\n        _initialized = version;\\n        _initializing = true;\\n        _;\\n        _initializing = false;\\n        emit Initialized(version);\\n    }\\n\\n    /**\\n     * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\\n     * {initializer} and {reinitializer} modifiers, directly or indirectly.\\n     */\\n    modifier onlyInitializing() {\\n        require(_initializing, \\\"Initializable: contract is not initializing\\\");\\n        _;\\n    }\\n\\n    /**\\n     * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\\n     * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\\n     * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\\n     * through proxies.\\n     *\\n     * Emits an {Initialized} event the first time it is successfully executed.\\n     */\\n    function _disableInitializers() internal virtual {\\n        require(!_initializing, \\\"Initializable: contract is initializing\\\");\\n        if (_initialized < type(uint8).max) {\\n            _initialized = type(uint8).max;\\n            emit Initialized(type(uint8).max);\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns the highest version that has been initialized. See {reinitializer}.\\n     */\\n    function _getInitializedVersion() internal view returns (uint8) {\\n        return _initialized;\\n    }\\n\\n    /**\\n     * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.\\n     */\\n    function _isInitializing() internal view returns (bool) {\\n        return _initializing;\\n    }\\n}\\n\",\"keccak256\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary AddressUpgradeable {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\n     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\n     *\\n     * _Available since v4.8._\\n     */\\n    function verifyCallResultFromTarget(\\n        address target,\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        if (success) {\\n            if (returndata.length == 0) {\\n                // only check isContract if the call was successful and the return data is empty\\n                // otherwise we already know that it was a contract\\n                require(isContract(target), \\\"Address: call to non-contract\\\");\\n            }\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason or using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    function _revert(bytes memory returndata, string memory errorMessage) private pure {\\n        // Look for revert reason and bubble it up if present\\n        if (returndata.length > 0) {\\n            // The easiest way to bubble the revert reason is using memory via assembly\\n            /// @solidity memory-safe-assembly\\n            assembly {\\n                let returndata_size := mload(returndata)\\n                revert(add(32, returndata), returndata_size)\\n            }\\n        } else {\\n            revert(errorMessage);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract ContextUpgradeable is Initializable {\\n    function __Context_init() internal onlyInitializing {\\n    }\\n\\n    function __Context_init_unchained() internal onlyInitializing {\\n    }\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[50] private __gap;\\n}\\n\",\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n    /**\\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n     * another (`to`).\\n     *\\n     * Note that `value` may be zero.\\n     */\\n    event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n    /**\\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n     * a call to {approve}. `value` is the new allowance.\\n     */\\n    event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n    /**\\n     * @dev Returns the amount of tokens in existence.\\n     */\\n    function totalSupply() external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the amount of tokens owned by `account`.\\n     */\\n    function balanceOf(address account) external view returns (uint256);\\n\\n    /**\\n     * @dev Moves `amount` tokens from the caller's account to `to`.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transfer(address to, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Returns the remaining number of tokens that `spender` will be\\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n     * zero by default.\\n     *\\n     * This value changes when {approve} or {transferFrom} are called.\\n     */\\n    function allowance(address owner, address spender) external view returns (uint256);\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n     * that someone may use both the old and the new allowance by unfortunate\\n     * transaction ordering. One possible solution to mitigate this race\\n     * condition is to first reduce the spender's allowance to 0 and set the\\n     * desired value afterwards:\\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n     *\\n     * Emits an {Approval} event.\\n     */\\n    function approve(address spender, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Moves `amount` tokens from `from` to `to` using the\\n     * allowance mechanism. `amount` is then deducted from the caller's\\n     * allowance.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (token/ERC20/extensions/IERC20Permit.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\\n * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\\n *\\n * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\\n * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\\n * need to send a transaction, and thus is not required to hold Ether at all.\\n *\\n * ==== Security Considerations\\n *\\n * There are two important considerations concerning the use of `permit`. The first is that a valid permit signature\\n * expresses an allowance, and it should not be assumed to convey additional meaning. In particular, it should not be\\n * considered as an intention to spend the allowance in any specific way. The second is that because permits have\\n * built-in replay protection and can be submitted by anyone, they can be frontrun. A protocol that uses permits should\\n * take this into consideration and allow a `permit` call to fail. Combining these two aspects, a pattern that may be\\n * generally recommended is:\\n *\\n * ```solidity\\n * function doThingWithPermit(..., uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public {\\n *     try token.permit(msg.sender, address(this), value, deadline, v, r, s) {} catch {}\\n *     doThing(..., value);\\n * }\\n *\\n * function doThing(..., uint256 value) public {\\n *     token.safeTransferFrom(msg.sender, address(this), value);\\n *     ...\\n * }\\n * ```\\n *\\n * Observe that: 1) `msg.sender` is used as the owner, leaving no ambiguity as to the signer intent, and 2) the use of\\n * `try/catch` allows the permit to fail and makes the code tolerant to frontrunning. (See also\\n * {SafeERC20-safeTransferFrom}).\\n *\\n * Additionally, note that smart contract wallets (such as Argent or Safe) are not able to produce permit signatures, so\\n * contracts should have entry points that don't rely on permit.\\n */\\ninterface IERC20Permit {\\n    /**\\n     * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\\n     * given ``owner``'s signed approval.\\n     *\\n     * IMPORTANT: The same issues {IERC20-approve} has related to transaction\\n     * ordering also apply here.\\n     *\\n     * Emits an {Approval} event.\\n     *\\n     * Requirements:\\n     *\\n     * - `spender` cannot be the zero address.\\n     * - `deadline` must be a timestamp in the future.\\n     * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\\n     * over the EIP712-formatted function arguments.\\n     * - the signature must use ``owner``'s current nonce (see {nonces}).\\n     *\\n     * For more information on the signature format, see the\\n     * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\\n     * section].\\n     *\\n     * CAUTION: See Security Considerations above.\\n     */\\n    function permit(\\n        address owner,\\n        address spender,\\n        uint256 value,\\n        uint256 deadline,\\n        uint8 v,\\n        bytes32 r,\\n        bytes32 s\\n    ) external;\\n\\n    /**\\n     * @dev Returns the current nonce for `owner`. This value must be\\n     * included whenever a signature is generated for {permit}.\\n     *\\n     * Every successful call to {permit} increases ``owner``'s nonce by one. This\\n     * prevents a signature from being used multiple times.\\n     */\\n    function nonces(address owner) external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\\n     */\\n    // solhint-disable-next-line func-name-mixedcase\\n    function DOMAIN_SEPARATOR() external view returns (bytes32);\\n}\\n\",\"keccak256\":\"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.3) (token/ERC20/utils/SafeERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\nimport \\\"../extensions/IERC20Permit.sol\\\";\\nimport \\\"../../../utils/Address.sol\\\";\\n\\n/**\\n * @title SafeERC20\\n * @dev Wrappers around ERC20 operations that throw on failure (when the token\\n * contract returns false). Tokens that return no value (and instead revert or\\n * throw on failure) are also supported, non-reverting calls are assumed to be\\n * successful.\\n * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\\n * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\\n */\\nlibrary SafeERC20 {\\n    using Address for address;\\n\\n    /**\\n     * @dev Transfer `value` amount of `token` from the calling contract to `to`. If `token` returns no value,\\n     * non-reverting calls are assumed to be successful.\\n     */\\n    function safeTransfer(IERC20 token, address to, uint256 value) internal {\\n        _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));\\n    }\\n\\n    /**\\n     * @dev Transfer `value` amount of `token` from `from` to `to`, spending the approval given by `from` to the\\n     * calling contract. If `token` returns no value, non-reverting calls are assumed to be successful.\\n     */\\n    function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {\\n        _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));\\n    }\\n\\n    /**\\n     * @dev Deprecated. This function has issues similar to the ones found in\\n     * {IERC20-approve}, and its usage is discouraged.\\n     *\\n     * Whenever possible, use {safeIncreaseAllowance} and\\n     * {safeDecreaseAllowance} instead.\\n     */\\n    function safeApprove(IERC20 token, address spender, uint256 value) internal {\\n        // safeApprove should only be called when setting an initial allowance,\\n        // or when resetting it to zero. To increase and decrease it, use\\n        // 'safeIncreaseAllowance' and 'safeDecreaseAllowance'\\n        require(\\n            (value == 0) || (token.allowance(address(this), spender) == 0),\\n            \\\"SafeERC20: approve from non-zero to non-zero allowance\\\"\\n        );\\n        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));\\n    }\\n\\n    /**\\n     * @dev Increase the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\\n     * non-reverting calls are assumed to be successful.\\n     */\\n    function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal {\\n        uint256 oldAllowance = token.allowance(address(this), spender);\\n        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, oldAllowance + value));\\n    }\\n\\n    /**\\n     * @dev Decrease the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\\n     * non-reverting calls are assumed to be successful.\\n     */\\n    function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal {\\n        unchecked {\\n            uint256 oldAllowance = token.allowance(address(this), spender);\\n            require(oldAllowance >= value, \\\"SafeERC20: decreased allowance below zero\\\");\\n            _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, oldAllowance - value));\\n        }\\n    }\\n\\n    /**\\n     * @dev Set the calling contract's allowance toward `spender` to `value`. If `token` returns no value,\\n     * non-reverting calls are assumed to be successful. Meant to be used with tokens that require the approval\\n     * to be set to zero before setting it to a non-zero value, such as USDT.\\n     */\\n    function forceApprove(IERC20 token, address spender, uint256 value) internal {\\n        bytes memory approvalCall = abi.encodeWithSelector(token.approve.selector, spender, value);\\n\\n        if (!_callOptionalReturnBool(token, approvalCall)) {\\n            _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, 0));\\n            _callOptionalReturn(token, approvalCall);\\n        }\\n    }\\n\\n    /**\\n     * @dev Use a ERC-2612 signature to set the `owner` approval toward `spender` on `token`.\\n     * Revert on invalid signature.\\n     */\\n    function safePermit(\\n        IERC20Permit token,\\n        address owner,\\n        address spender,\\n        uint256 value,\\n        uint256 deadline,\\n        uint8 v,\\n        bytes32 r,\\n        bytes32 s\\n    ) internal {\\n        uint256 nonceBefore = token.nonces(owner);\\n        token.permit(owner, spender, value, deadline, v, r, s);\\n        uint256 nonceAfter = token.nonces(owner);\\n        require(nonceAfter == nonceBefore + 1, \\\"SafeERC20: permit did not succeed\\\");\\n    }\\n\\n    /**\\n     * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\\n     * on the return value: the return value is optional (but if data is returned, it must not be false).\\n     * @param token The token targeted by the call.\\n     * @param data The call data (encoded using abi.encode or one of its variants).\\n     */\\n    function _callOptionalReturn(IERC20 token, bytes memory data) private {\\n        // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\\n        // we're implementing it ourselves. We use {Address-functionCall} to perform this call, which verifies that\\n        // the target address contains contract code and also asserts for success in the low-level call.\\n\\n        bytes memory returndata = address(token).functionCall(data, \\\"SafeERC20: low-level call failed\\\");\\n        require(returndata.length == 0 || abi.decode(returndata, (bool)), \\\"SafeERC20: ERC20 operation did not succeed\\\");\\n    }\\n\\n    /**\\n     * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\\n     * on the return value: the return value is optional (but if data is returned, it must not be false).\\n     * @param token The token targeted by the call.\\n     * @param data The call data (encoded using abi.encode or one of its variants).\\n     *\\n     * This is a variant of {_callOptionalReturn} that silents catches all reverts and returns a bool instead.\\n     */\\n    function _callOptionalReturnBool(IERC20 token, bytes memory data) private returns (bool) {\\n        // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\\n        // we're implementing it ourselves. We cannot use {Address-functionCall} here since this should return false\\n        // and not revert is the subcall reverts.\\n\\n        (bool success, bytes memory returndata) = address(token).call(data);\\n        return\\n            success && (returndata.length == 0 || abi.decode(returndata, (bool))) && Address.isContract(address(token));\\n    }\\n}\\n\",\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Address.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary Address {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     *\\n     * Furthermore, `isContract` will also return true if the target contract within\\n     * the same transaction is already scheduled for destruction by `SELFDESTRUCT`,\\n     * which only has an effect at the end of a transaction.\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.delegatecall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\n     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\n     *\\n     * _Available since v4.8._\\n     */\\n    function verifyCallResultFromTarget(\\n        address target,\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        if (success) {\\n            if (returndata.length == 0) {\\n                // only check isContract if the call was successful and the return data is empty\\n                // otherwise we already know that it was a contract\\n                require(isContract(target), \\\"Address: call to non-contract\\\");\\n            }\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason or using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    function _revert(bytes memory returndata, string memory errorMessage) private pure {\\n        // Look for revert reason and bubble it up if present\\n        if (returndata.length > 0) {\\n            // The easiest way to bubble the revert reason is using memory via assembly\\n            /// @solidity memory-safe-assembly\\n            assembly {\\n                let returndata_size := mload(returndata)\\n                revert(add(32, returndata), returndata_size)\\n            }\\n        } else {\\n            revert(errorMessage);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":6086,"contract":"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppSenderUpgradeable.sol:OAppSenderUpgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":6089,"contract":"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppSenderUpgradeable.sol:OAppSenderUpgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":6573,"contract":"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppSenderUpgradeable.sol:OAppSenderUpgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":5958,"contract":"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppSenderUpgradeable.sol:OAppSenderUpgradeable","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":6078,"contract":"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppSenderUpgradeable.sol:OAppSenderUpgradeable","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"kind":"user","methods":{"endpoint()":{"notice":"Retrieves the LayerZero endpoint associated with the OApp."},"oAppVersion()":{"notice":"Retrieves the OApp version information."},"peers(uint32)":{"notice":"Returns the peer address (OApp instance) associated with a specific endpoint."},"setDelegate(address)":{"notice":"Sets the delegate address for the OApp."},"setPeer(uint32,bytes32)":{"notice":"Sets the peer address (OApp instance) for a corresponding endpoint."}},"version":1}}},"@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppCore.sol":{"IOAppCore":{"abi":[{"inputs":[],"name":"InvalidDelegate","type":"error"},{"inputs":[],"name":"InvalidEndpointCall","type":"error"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"name":"NoPeer","type":"error"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"}],"name":"OnlyPeer","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"eid","type":"uint32"},{"indexed":false,"internalType":"bytes32","name":"peer","type":"bytes32"}],"name":"PeerSet","type":"event"},{"inputs":[],"name":"endpoint","outputs":[{"internalType":"contract ILayerZeroEndpointV2","name":"iEndpoint","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oAppVersion","outputs":[{"internalType":"uint64","name":"senderVersion","type":"uint64"},{"internalType":"uint64","name":"receiverVersion","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"name":"peers","outputs":[{"internalType":"bytes32","name":"peer","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"name":"setDelegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"name":"setPeer","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{"endpoint()":{"returns":{"iEndpoint":"The LayerZero endpoint as an interface."}},"oAppVersion()":{"returns":{"receiverVersion":"The version of the OAppReceiver.sol contract.","senderVersion":"The version of the OAppSender.sol contract."}},"peers(uint32)":{"params":{"_eid":"The endpoint ID."},"returns":{"peer":"The peer address (OApp instance) associated with the corresponding endpoint."}},"setDelegate(address)":{"params":{"_delegate":"The address of the delegate to be set."}},"setPeer(uint32,bytes32)":{"params":{"_eid":"The endpoint ID.","_peer":"The address of the peer to be associated with the corresponding endpoint."}}},"title":"IOAppCore","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"endpoint()":"5e280f11","oAppVersion()":"17442b70","peers(uint32)":"bb0b6a53","setDelegate(address)":"ca5eb5e1","setPeer(uint32,bytes32)":"3400288b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidDelegate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEndpointCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"NoPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"OnlyPeer\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"name\":\"PeerSet\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"endpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpointV2\",\"name\":\"iEndpoint\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oAppVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"senderVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receiverVersion\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"peers\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"setPeer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"endpoint()\":{\"returns\":{\"iEndpoint\":\"The LayerZero endpoint as an interface.\"}},\"oAppVersion()\":{\"returns\":{\"receiverVersion\":\"The version of the OAppReceiver.sol contract.\",\"senderVersion\":\"The version of the OAppSender.sol contract.\"}},\"peers(uint32)\":{\"params\":{\"_eid\":\"The endpoint ID.\"},\"returns\":{\"peer\":\"The peer address (OApp instance) associated with the corresponding endpoint.\"}},\"setDelegate(address)\":{\"params\":{\"_delegate\":\"The address of the delegate to be set.\"}},\"setPeer(uint32,bytes32)\":{\"params\":{\"_eid\":\"The endpoint ID.\",\"_peer\":\"The address of the peer to be associated with the corresponding endpoint.\"}}},\"title\":\"IOAppCore\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"endpoint()\":{\"notice\":\"Retrieves the LayerZero endpoint associated with the OApp.\"},\"oAppVersion()\":{\"notice\":\"Retrieves the OApp version information.\"},\"peers(uint32)\":{\"notice\":\"Retrieves the peer (OApp) associated with a corresponding endpoint.\"},\"setDelegate(address)\":{\"notice\":\"Sets the delegate address for the OApp Core.\"},\"setPeer(uint32,bytes32)\":{\"notice\":\"Sets the peer address (OApp instance) for a corresponding endpoint.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppCore.sol\":\"IOAppCore\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { IMessageLibManager } from \\\"./IMessageLibManager.sol\\\";\\nimport { IMessagingComposer } from \\\"./IMessagingComposer.sol\\\";\\nimport { IMessagingChannel } from \\\"./IMessagingChannel.sol\\\";\\nimport { IMessagingContext } from \\\"./IMessagingContext.sol\\\";\\n\\nstruct MessagingParams {\\n    uint32 dstEid;\\n    bytes32 receiver;\\n    bytes message;\\n    bytes options;\\n    bool payInLzToken;\\n}\\n\\nstruct MessagingReceipt {\\n    bytes32 guid;\\n    uint64 nonce;\\n    MessagingFee fee;\\n}\\n\\nstruct MessagingFee {\\n    uint256 nativeFee;\\n    uint256 lzTokenFee;\\n}\\n\\nstruct Origin {\\n    uint32 srcEid;\\n    bytes32 sender;\\n    uint64 nonce;\\n}\\n\\ninterface ILayerZeroEndpointV2 is IMessageLibManager, IMessagingComposer, IMessagingChannel, IMessagingContext {\\n    event PacketSent(bytes encodedPayload, bytes options, address sendLibrary);\\n\\n    event PacketVerified(Origin origin, address receiver, bytes32 payloadHash);\\n\\n    event PacketDelivered(Origin origin, address receiver);\\n\\n    event LzReceiveAlert(\\n        address indexed receiver,\\n        address indexed executor,\\n        Origin origin,\\n        bytes32 guid,\\n        uint256 gas,\\n        uint256 value,\\n        bytes message,\\n        bytes extraData,\\n        bytes reason\\n    );\\n\\n    event LzTokenSet(address token);\\n\\n    event DelegateSet(address sender, address delegate);\\n\\n    function quote(MessagingParams calldata _params, address _sender) external view returns (MessagingFee memory);\\n\\n    function send(\\n        MessagingParams calldata _params,\\n        address _refundAddress\\n    ) external payable returns (MessagingReceipt memory);\\n\\n    function verify(Origin calldata _origin, address _receiver, bytes32 _payloadHash) external;\\n\\n    function verifiable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n    function initializable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n    function lzReceive(\\n        Origin calldata _origin,\\n        address _receiver,\\n        bytes32 _guid,\\n        bytes calldata _message,\\n        bytes calldata _extraData\\n    ) external payable;\\n\\n    // oapp can burn messages partially by calling this function with its own business logic if messages are verified in order\\n    function clear(address _oapp, Origin calldata _origin, bytes32 _guid, bytes calldata _message) external;\\n\\n    function setLzToken(address _lzToken) external;\\n\\n    function lzToken() external view returns (address);\\n\\n    function nativeToken() external view returns (address);\\n\\n    function setDelegate(address _delegate) external;\\n}\\n\",\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nstruct SetConfigParam {\\n    uint32 eid;\\n    uint32 configType;\\n    bytes config;\\n}\\n\\ninterface IMessageLibManager {\\n    struct Timeout {\\n        address lib;\\n        uint256 expiry;\\n    }\\n\\n    event LibraryRegistered(address newLib);\\n    event DefaultSendLibrarySet(uint32 eid, address newLib);\\n    event DefaultReceiveLibrarySet(uint32 eid, address newLib);\\n    event DefaultReceiveLibraryTimeoutSet(uint32 eid, address oldLib, uint256 expiry);\\n    event SendLibrarySet(address sender, uint32 eid, address newLib);\\n    event ReceiveLibrarySet(address receiver, uint32 eid, address newLib);\\n    event ReceiveLibraryTimeoutSet(address receiver, uint32 eid, address oldLib, uint256 timeout);\\n\\n    function registerLibrary(address _lib) external;\\n\\n    function isRegisteredLibrary(address _lib) external view returns (bool);\\n\\n    function getRegisteredLibraries() external view returns (address[] memory);\\n\\n    function setDefaultSendLibrary(uint32 _eid, address _newLib) external;\\n\\n    function defaultSendLibrary(uint32 _eid) external view returns (address);\\n\\n    function setDefaultReceiveLibrary(uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n    function defaultReceiveLibrary(uint32 _eid) external view returns (address);\\n\\n    function setDefaultReceiveLibraryTimeout(uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n    function defaultReceiveLibraryTimeout(uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n    function isSupportedEid(uint32 _eid) external view returns (bool);\\n\\n    function isValidReceiveLibrary(address _receiver, uint32 _eid, address _lib) external view returns (bool);\\n\\n    /// ------------------- OApp interfaces -------------------\\n    function setSendLibrary(address _oapp, uint32 _eid, address _newLib) external;\\n\\n    function getSendLibrary(address _sender, uint32 _eid) external view returns (address lib);\\n\\n    function isDefaultSendLibrary(address _sender, uint32 _eid) external view returns (bool);\\n\\n    function setReceiveLibrary(address _oapp, uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n    function getReceiveLibrary(address _receiver, uint32 _eid) external view returns (address lib, bool isDefault);\\n\\n    function setReceiveLibraryTimeout(address _oapp, uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n    function receiveLibraryTimeout(address _receiver, uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n    function setConfig(address _oapp, address _lib, SetConfigParam[] calldata _params) external;\\n\\n    function getConfig(\\n        address _oapp,\\n        address _lib,\\n        uint32 _eid,\\n        uint32 _configType\\n    ) external view returns (bytes memory config);\\n}\\n\",\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingChannel {\\n    event InboundNonceSkipped(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce);\\n    event PacketNilified(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n    event PacketBurnt(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n\\n    function eid() external view returns (uint32);\\n\\n    // this is an emergency function if a message cannot be verified for some reasons\\n    // required to provide _nextNonce to avoid race condition\\n    function skip(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce) external;\\n\\n    function nilify(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n    function burn(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n    function nextGuid(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (bytes32);\\n\\n    function inboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n\\n    function outboundNonce(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (uint64);\\n\\n    function inboundPayloadHash(\\n        address _receiver,\\n        uint32 _srcEid,\\n        bytes32 _sender,\\n        uint64 _nonce\\n    ) external view returns (bytes32);\\n\\n    function lazyInboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n}\\n\",\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingComposer {\\n    event ComposeSent(address from, address to, bytes32 guid, uint16 index, bytes message);\\n    event ComposeDelivered(address from, address to, bytes32 guid, uint16 index);\\n    event LzComposeAlert(\\n        address indexed from,\\n        address indexed to,\\n        address indexed executor,\\n        bytes32 guid,\\n        uint16 index,\\n        uint256 gas,\\n        uint256 value,\\n        bytes message,\\n        bytes extraData,\\n        bytes reason\\n    );\\n\\n    function composeQueue(\\n        address _from,\\n        address _to,\\n        bytes32 _guid,\\n        uint16 _index\\n    ) external view returns (bytes32 messageHash);\\n\\n    function sendCompose(address _to, bytes32 _guid, uint16 _index, bytes calldata _message) external;\\n\\n    function lzCompose(\\n        address _from,\\n        address _to,\\n        bytes32 _guid,\\n        uint16 _index,\\n        bytes calldata _message,\\n        bytes calldata _extraData\\n    ) external payable;\\n}\\n\",\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingContext {\\n    function isSendingMessage() external view returns (bool);\\n\\n    function getSendContext() external view returns (uint32 dstEid, address sender);\\n}\\n\",\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\"},\"@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppCore.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { ILayerZeroEndpointV2 } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\\\";\\n\\n/**\\n * @title IOAppCore\\n */\\ninterface IOAppCore {\\n    // Custom error messages\\n    error OnlyPeer(uint32 eid, bytes32 sender);\\n    error NoPeer(uint32 eid);\\n    error InvalidEndpointCall();\\n    error InvalidDelegate();\\n\\n    // Event emitted when a peer (OApp) is set for a corresponding endpoint\\n    event PeerSet(uint32 eid, bytes32 peer);\\n\\n    /**\\n     * @notice Retrieves the OApp version information.\\n     * @return senderVersion The version of the OAppSender.sol contract.\\n     * @return receiverVersion The version of the OAppReceiver.sol contract.\\n     */\\n    function oAppVersion() external view returns (uint64 senderVersion, uint64 receiverVersion);\\n\\n    /**\\n     * @notice Retrieves the LayerZero endpoint associated with the OApp.\\n     * @return iEndpoint The LayerZero endpoint as an interface.\\n     */\\n    function endpoint() external view returns (ILayerZeroEndpointV2 iEndpoint);\\n\\n    /**\\n     * @notice Retrieves the peer (OApp) associated with a corresponding endpoint.\\n     * @param _eid The endpoint ID.\\n     * @return peer The peer address (OApp instance) associated with the corresponding endpoint.\\n     */\\n    function peers(uint32 _eid) external view returns (bytes32 peer);\\n\\n    /**\\n     * @notice Sets the peer address (OApp instance) for a corresponding endpoint.\\n     * @param _eid The endpoint ID.\\n     * @param _peer The address of the peer to be associated with the corresponding endpoint.\\n     */\\n    function setPeer(uint32 _eid, bytes32 _peer) external;\\n\\n    /**\\n     * @notice Sets the delegate address for the OApp Core.\\n     * @param _delegate The address of the delegate to be set.\\n     */\\n    function setDelegate(address _delegate) external;\\n}\\n\",\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{"endpoint()":{"notice":"Retrieves the LayerZero endpoint associated with the OApp."},"oAppVersion()":{"notice":"Retrieves the OApp version information."},"peers(uint32)":{"notice":"Retrieves the peer (OApp) associated with a corresponding endpoint."},"setDelegate(address)":{"notice":"Sets the delegate address for the OApp Core."},"setPeer(uint32,bytes32)":{"notice":"Sets the peer address (OApp instance) for a corresponding endpoint."}},"version":1}}},"@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppReceiver.sol":{"IOAppReceiver":{"abi":[{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"_origin","type":"tuple"}],"name":"allowInitializePath","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"_origin","type":"tuple"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_sender","type":"address"}],"name":"isComposeMsgSender","outputs":[{"internalType":"bool","name":"isSender","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"_origin","type":"tuple"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"name":"lzReceive","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"}],"name":"nextNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"details":"Applications can optionally choose to implement a separate composeMsg sender that is NOT the bridging layer.The default sender IS the OAppReceiver implementer.","params":{"_message":"The lzReceive payload.","_origin":"The origin information containing the source endpoint and sender address.  - srcEid: The source chain endpoint ID.  - sender: The sender address on the src chain.  - nonce: The nonce of the message.","_sender":"The sender address."},"returns":{"isSender":"Is a valid sender."}}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"allowInitializePath((uint32,bytes32,uint64))":"ff7bd03d","isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":"82413eac","lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"13137d65","nextNonce(uint32,bytes32)":"7d25a05e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"}],\"name\":\"allowInitializePath\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"isComposeMsgSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isSender\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"}],\"name\":\"nextNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"details\":\"Applications can optionally choose to implement a separate composeMsg sender that is NOT the bridging layer.The default sender IS the OAppReceiver implementer.\",\"params\":{\"_message\":\"The lzReceive payload.\",\"_origin\":\"The origin information containing the source endpoint and sender address.  - srcEid: The source chain endpoint ID.  - sender: The sender address on the src chain.  - nonce: The nonce of the message.\",\"_sender\":\"The sender address.\"},\"returns\":{\"isSender\":\"Is a valid sender.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"notice\":\"Indicates whether an address is an approved composeMsg sender to the Endpoint.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppReceiver.sol\":\"IOAppReceiver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { IMessageLibManager } from \\\"./IMessageLibManager.sol\\\";\\nimport { IMessagingComposer } from \\\"./IMessagingComposer.sol\\\";\\nimport { IMessagingChannel } from \\\"./IMessagingChannel.sol\\\";\\nimport { IMessagingContext } from \\\"./IMessagingContext.sol\\\";\\n\\nstruct MessagingParams {\\n    uint32 dstEid;\\n    bytes32 receiver;\\n    bytes message;\\n    bytes options;\\n    bool payInLzToken;\\n}\\n\\nstruct MessagingReceipt {\\n    bytes32 guid;\\n    uint64 nonce;\\n    MessagingFee fee;\\n}\\n\\nstruct MessagingFee {\\n    uint256 nativeFee;\\n    uint256 lzTokenFee;\\n}\\n\\nstruct Origin {\\n    uint32 srcEid;\\n    bytes32 sender;\\n    uint64 nonce;\\n}\\n\\ninterface ILayerZeroEndpointV2 is IMessageLibManager, IMessagingComposer, IMessagingChannel, IMessagingContext {\\n    event PacketSent(bytes encodedPayload, bytes options, address sendLibrary);\\n\\n    event PacketVerified(Origin origin, address receiver, bytes32 payloadHash);\\n\\n    event PacketDelivered(Origin origin, address receiver);\\n\\n    event LzReceiveAlert(\\n        address indexed receiver,\\n        address indexed executor,\\n        Origin origin,\\n        bytes32 guid,\\n        uint256 gas,\\n        uint256 value,\\n        bytes message,\\n        bytes extraData,\\n        bytes reason\\n    );\\n\\n    event LzTokenSet(address token);\\n\\n    event DelegateSet(address sender, address delegate);\\n\\n    function quote(MessagingParams calldata _params, address _sender) external view returns (MessagingFee memory);\\n\\n    function send(\\n        MessagingParams calldata _params,\\n        address _refundAddress\\n    ) external payable returns (MessagingReceipt memory);\\n\\n    function verify(Origin calldata _origin, address _receiver, bytes32 _payloadHash) external;\\n\\n    function verifiable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n    function initializable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n    function lzReceive(\\n        Origin calldata _origin,\\n        address _receiver,\\n        bytes32 _guid,\\n        bytes calldata _message,\\n        bytes calldata _extraData\\n    ) external payable;\\n\\n    // oapp can burn messages partially by calling this function with its own business logic if messages are verified in order\\n    function clear(address _oapp, Origin calldata _origin, bytes32 _guid, bytes calldata _message) external;\\n\\n    function setLzToken(address _lzToken) external;\\n\\n    function lzToken() external view returns (address);\\n\\n    function nativeToken() external view returns (address);\\n\\n    function setDelegate(address _delegate) external;\\n}\\n\",\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { Origin } from \\\"./ILayerZeroEndpointV2.sol\\\";\\n\\ninterface ILayerZeroReceiver {\\n    function allowInitializePath(Origin calldata _origin) external view returns (bool);\\n\\n    function nextNonce(uint32 _eid, bytes32 _sender) external view returns (uint64);\\n\\n    function lzReceive(\\n        Origin calldata _origin,\\n        bytes32 _guid,\\n        bytes calldata _message,\\n        address _executor,\\n        bytes calldata _extraData\\n    ) external payable;\\n}\\n\",\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nstruct SetConfigParam {\\n    uint32 eid;\\n    uint32 configType;\\n    bytes config;\\n}\\n\\ninterface IMessageLibManager {\\n    struct Timeout {\\n        address lib;\\n        uint256 expiry;\\n    }\\n\\n    event LibraryRegistered(address newLib);\\n    event DefaultSendLibrarySet(uint32 eid, address newLib);\\n    event DefaultReceiveLibrarySet(uint32 eid, address newLib);\\n    event DefaultReceiveLibraryTimeoutSet(uint32 eid, address oldLib, uint256 expiry);\\n    event SendLibrarySet(address sender, uint32 eid, address newLib);\\n    event ReceiveLibrarySet(address receiver, uint32 eid, address newLib);\\n    event ReceiveLibraryTimeoutSet(address receiver, uint32 eid, address oldLib, uint256 timeout);\\n\\n    function registerLibrary(address _lib) external;\\n\\n    function isRegisteredLibrary(address _lib) external view returns (bool);\\n\\n    function getRegisteredLibraries() external view returns (address[] memory);\\n\\n    function setDefaultSendLibrary(uint32 _eid, address _newLib) external;\\n\\n    function defaultSendLibrary(uint32 _eid) external view returns (address);\\n\\n    function setDefaultReceiveLibrary(uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n    function defaultReceiveLibrary(uint32 _eid) external view returns (address);\\n\\n    function setDefaultReceiveLibraryTimeout(uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n    function defaultReceiveLibraryTimeout(uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n    function isSupportedEid(uint32 _eid) external view returns (bool);\\n\\n    function isValidReceiveLibrary(address _receiver, uint32 _eid, address _lib) external view returns (bool);\\n\\n    /// ------------------- OApp interfaces -------------------\\n    function setSendLibrary(address _oapp, uint32 _eid, address _newLib) external;\\n\\n    function getSendLibrary(address _sender, uint32 _eid) external view returns (address lib);\\n\\n    function isDefaultSendLibrary(address _sender, uint32 _eid) external view returns (bool);\\n\\n    function setReceiveLibrary(address _oapp, uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n    function getReceiveLibrary(address _receiver, uint32 _eid) external view returns (address lib, bool isDefault);\\n\\n    function setReceiveLibraryTimeout(address _oapp, uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n    function receiveLibraryTimeout(address _receiver, uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n    function setConfig(address _oapp, address _lib, SetConfigParam[] calldata _params) external;\\n\\n    function getConfig(\\n        address _oapp,\\n        address _lib,\\n        uint32 _eid,\\n        uint32 _configType\\n    ) external view returns (bytes memory config);\\n}\\n\",\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingChannel {\\n    event InboundNonceSkipped(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce);\\n    event PacketNilified(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n    event PacketBurnt(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n\\n    function eid() external view returns (uint32);\\n\\n    // this is an emergency function if a message cannot be verified for some reasons\\n    // required to provide _nextNonce to avoid race condition\\n    function skip(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce) external;\\n\\n    function nilify(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n    function burn(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n    function nextGuid(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (bytes32);\\n\\n    function inboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n\\n    function outboundNonce(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (uint64);\\n\\n    function inboundPayloadHash(\\n        address _receiver,\\n        uint32 _srcEid,\\n        bytes32 _sender,\\n        uint64 _nonce\\n    ) external view returns (bytes32);\\n\\n    function lazyInboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n}\\n\",\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingComposer {\\n    event ComposeSent(address from, address to, bytes32 guid, uint16 index, bytes message);\\n    event ComposeDelivered(address from, address to, bytes32 guid, uint16 index);\\n    event LzComposeAlert(\\n        address indexed from,\\n        address indexed to,\\n        address indexed executor,\\n        bytes32 guid,\\n        uint16 index,\\n        uint256 gas,\\n        uint256 value,\\n        bytes message,\\n        bytes extraData,\\n        bytes reason\\n    );\\n\\n    function composeQueue(\\n        address _from,\\n        address _to,\\n        bytes32 _guid,\\n        uint16 _index\\n    ) external view returns (bytes32 messageHash);\\n\\n    function sendCompose(address _to, bytes32 _guid, uint16 _index, bytes calldata _message) external;\\n\\n    function lzCompose(\\n        address _from,\\n        address _to,\\n        bytes32 _guid,\\n        uint16 _index,\\n        bytes calldata _message,\\n        bytes calldata _extraData\\n    ) external payable;\\n}\\n\",\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingContext {\\n    function isSendingMessage() external view returns (bool);\\n\\n    function getSendContext() external view returns (uint32 dstEid, address sender);\\n}\\n\",\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\"},\"@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.20;\\n\\nimport { ILayerZeroReceiver, Origin } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\\\";\\n\\ninterface IOAppReceiver is ILayerZeroReceiver {\\n    /**\\n     * @notice Indicates whether an address is an approved composeMsg sender to the Endpoint.\\n     * @param _origin The origin information containing the source endpoint and sender address.\\n     *  - srcEid: The source chain endpoint ID.\\n     *  - sender: The sender address on the src chain.\\n     *  - nonce: The nonce of the message.\\n     * @param _message The lzReceive payload.\\n     * @param _sender The sender address.\\n     * @return isSender Is a valid sender.\\n     *\\n     * @dev Applications can optionally choose to implement a separate composeMsg sender that is NOT the bridging layer.\\n     * @dev The default sender IS the OAppReceiver implementer.\\n     */\\n    function isComposeMsgSender(\\n        Origin calldata _origin,\\n        bytes calldata _message,\\n        address _sender\\n    ) external view returns (bool isSender);\\n}\\n\",\"keccak256\":\"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"notice":"Indicates whether an address is an approved composeMsg sender to the Endpoint."}},"version":1}}},"@layerzerolabs/oapp-evm/contracts/oapp/libs/OptionsBuilder.sol":{"OptionsBuilder":{"abi":[{"inputs":[{"internalType":"uint16","name":"optionType","type":"uint16"}],"name":"InvalidOptionType","type":"error"},{"inputs":[{"internalType":"uint256","name":"max","type":"uint256"},{"internalType":"uint256","name":"actual","type":"uint256"}],"name":"InvalidSize","type":"error"}],"devdoc":{"details":"Library for building and encoding various message options.","kind":"dev","methods":{},"title":"OptionsBuilder","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220fbff6fb434cdf1af80b293252d2c9fe1d2062bd618eb5614fb16713c70fce41764736f6c63430008190033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xFB SELFDESTRUCT PUSH16 0xB434CDF1AF80B293252D2C9FE1D2062B 0xD6 XOR 0xEB JUMP EQ 0xFB AND PUSH18 0x3C70FCE41764736F6C634300081900330000 ","sourceMap":"515:8767:15:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;515:8767:15;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220fbff6fb434cdf1af80b293252d2c9fe1d2062bd618eb5614fb16713c70fce41764736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xFB SELFDESTRUCT PUSH16 0xB434CDF1AF80B293252D2C9FE1D2062B 0xD6 XOR 0xEB JUMP EQ 0xFB AND PUSH18 0x3C70FCE41764736F6C634300081900330000 ","sourceMap":"515:8767:15:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"addDVNOption(bytes memory,uint8,uint8,bytes memory)":"infinite","addDVNPreCrimeOption(bytes memory,uint8)":"infinite","addExecutorLzComposeOption(bytes memory,uint16,uint128,uint128)":"infinite","addExecutorLzReadOption(bytes memory,uint128,uint32,uint128)":"infinite","addExecutorLzReceiveOption(bytes memory,uint128,uint128)":"infinite","addExecutorNativeDropOption(bytes memory,uint128,bytes32)":"infinite","addExecutorOption(bytes memory,uint8,bytes memory)":"infinite","addExecutorOrderedExecutionOption(bytes memory)":"infinite","encodeLegacyOptionsType1(uint256)":"infinite","encodeLegacyOptionsType2(uint256,uint256,bytes memory)":"infinite","newOptions()":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"optionType\",\"type\":\"uint16\"}],\"name\":\"InvalidOptionType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"InvalidSize\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Library for building and encoding various message options.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"OptionsBuilder\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/oapp-evm/contracts/oapp/libs/OptionsBuilder.sol\":\"OptionsBuilder\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/ExecutorOptions.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nimport \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\\\";\\n\\nlibrary ExecutorOptions {\\n    using CalldataBytesLib for bytes;\\n\\n    uint8 internal constant WORKER_ID = 1;\\n\\n    uint8 internal constant OPTION_TYPE_LZRECEIVE = 1;\\n    uint8 internal constant OPTION_TYPE_NATIVE_DROP = 2;\\n    uint8 internal constant OPTION_TYPE_LZCOMPOSE = 3;\\n    uint8 internal constant OPTION_TYPE_ORDERED_EXECUTION = 4;\\n    uint8 internal constant OPTION_TYPE_LZREAD = 5;\\n\\n    error Executor_InvalidLzReceiveOption();\\n    error Executor_InvalidNativeDropOption();\\n    error Executor_InvalidLzComposeOption();\\n    error Executor_InvalidLzReadOption();\\n\\n    /// @dev decode the next executor option from the options starting from the specified cursor\\n    /// @param _options [executor_id][executor_option][executor_id][executor_option]...\\n    ///        executor_option = [option_size][option_type][option]\\n    ///        option_size = len(option_type) + len(option)\\n    ///        executor_id: uint8, option_size: uint16, option_type: uint8, option: bytes\\n    /// @param _cursor the cursor to start decoding from\\n    /// @return optionType the type of the option\\n    /// @return option the option of the executor\\n    /// @return cursor the cursor to start decoding the next executor option\\n    function nextExecutorOption(\\n        bytes calldata _options,\\n        uint256 _cursor\\n    ) internal pure returns (uint8 optionType, bytes calldata option, uint256 cursor) {\\n        unchecked {\\n            // skip worker id\\n            cursor = _cursor + 1;\\n\\n            // read option size\\n            uint16 size = _options.toU16(cursor);\\n            cursor += 2;\\n\\n            // read option type\\n            optionType = _options.toU8(cursor);\\n\\n            // startCursor and endCursor are used to slice the option from _options\\n            uint256 startCursor = cursor + 1; // skip option type\\n            uint256 endCursor = cursor + size;\\n            option = _options[startCursor:endCursor];\\n            cursor += size;\\n        }\\n    }\\n\\n    function decodeLzReceiveOption(bytes calldata _option) internal pure returns (uint128 gas, uint128 value) {\\n        if (_option.length != 16 && _option.length != 32) revert Executor_InvalidLzReceiveOption();\\n        gas = _option.toU128(0);\\n        value = _option.length == 32 ? _option.toU128(16) : 0;\\n    }\\n\\n    function decodeNativeDropOption(bytes calldata _option) internal pure returns (uint128 amount, bytes32 receiver) {\\n        if (_option.length != 48) revert Executor_InvalidNativeDropOption();\\n        amount = _option.toU128(0);\\n        receiver = _option.toB32(16);\\n    }\\n\\n    function decodeLzComposeOption(\\n        bytes calldata _option\\n    ) internal pure returns (uint16 index, uint128 gas, uint128 value) {\\n        if (_option.length != 18 && _option.length != 34) revert Executor_InvalidLzComposeOption();\\n        index = _option.toU16(0);\\n        gas = _option.toU128(2);\\n        value = _option.length == 34 ? _option.toU128(18) : 0;\\n    }\\n\\n    function decodeLzReadOption(\\n        bytes calldata _option\\n    ) internal pure returns (uint128 gas, uint32 calldataSize, uint128 value) {\\n        if (_option.length != 20 && _option.length != 36) revert Executor_InvalidLzReadOption();\\n        gas = _option.toU128(0);\\n        calldataSize = _option.toU32(16);\\n        value = _option.length == 36 ? _option.toU128(20) : 0;\\n    }\\n\\n    function encodeLzReceiveOption(uint128 _gas, uint128 _value) internal pure returns (bytes memory) {\\n        return _value == 0 ? abi.encodePacked(_gas) : abi.encodePacked(_gas, _value);\\n    }\\n\\n    function encodeNativeDropOption(uint128 _amount, bytes32 _receiver) internal pure returns (bytes memory) {\\n        return abi.encodePacked(_amount, _receiver);\\n    }\\n\\n    function encodeLzComposeOption(uint16 _index, uint128 _gas, uint128 _value) internal pure returns (bytes memory) {\\n        return _value == 0 ? abi.encodePacked(_index, _gas) : abi.encodePacked(_index, _gas, _value);\\n    }\\n\\n    function encodeLzReadOption(\\n        uint128 _gas,\\n        uint32 _calldataSize,\\n        uint128 _value\\n    ) internal pure returns (bytes memory) {\\n        return _value == 0 ? abi.encodePacked(_gas, _calldataSize) : abi.encodePacked(_gas, _calldataSize, _value);\\n    }\\n}\\n\",\"keccak256\":\"0x441b723f2f597be2ec2bb361fcf3f11852c23534db1cfa7d2ffff7e61d228e3c\",\"license\":\"LZBL-1.2\"},\"@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nimport { BytesLib } from \\\"solidity-bytes-utils/contracts/BytesLib.sol\\\";\\n\\nimport { BitMap256 } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\\\";\\nimport { CalldataBytesLib } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\\\";\\n\\nlibrary DVNOptions {\\n    using CalldataBytesLib for bytes;\\n    using BytesLib for bytes;\\n\\n    uint8 internal constant WORKER_ID = 2;\\n    uint8 internal constant OPTION_TYPE_PRECRIME = 1;\\n\\n    error DVN_InvalidDVNIdx();\\n    error DVN_InvalidDVNOptions(uint256 cursor);\\n\\n    /// @dev group dvn options by its idx\\n    /// @param _options [dvn_id][dvn_option][dvn_id][dvn_option]...\\n    ///        dvn_option = [option_size][dvn_idx][option_type][option]\\n    ///        option_size = len(dvn_idx) + len(option_type) + len(option)\\n    ///        dvn_id: uint8, dvn_idx: uint8, option_size: uint16, option_type: uint8, option: bytes\\n    /// @return dvnOptions the grouped options, still share the same format of _options\\n    /// @return dvnIndices the dvn indices\\n    function groupDVNOptionsByIdx(\\n        bytes memory _options\\n    ) internal pure returns (bytes[] memory dvnOptions, uint8[] memory dvnIndices) {\\n        if (_options.length == 0) return (dvnOptions, dvnIndices);\\n\\n        uint8 numDVNs = getNumDVNs(_options);\\n\\n        // if there is only 1 dvn, we can just return the whole options\\n        if (numDVNs == 1) {\\n            dvnOptions = new bytes[](1);\\n            dvnOptions[0] = _options;\\n\\n            dvnIndices = new uint8[](1);\\n            dvnIndices[0] = _options.toUint8(3); // dvn idx\\n            return (dvnOptions, dvnIndices);\\n        }\\n\\n        // otherwise, we need to group the options by dvn_idx\\n        dvnIndices = new uint8[](numDVNs);\\n        dvnOptions = new bytes[](numDVNs);\\n        unchecked {\\n            uint256 cursor = 0;\\n            uint256 start = 0;\\n            uint8 lastDVNIdx = 255; // 255 is an invalid dvn_idx\\n\\n            while (cursor < _options.length) {\\n                ++cursor; // skip worker_id\\n\\n                // optionLength asserted in getNumDVNs (skip check)\\n                uint16 optionLength = _options.toUint16(cursor);\\n                cursor += 2;\\n\\n                // dvnIdx asserted in getNumDVNs (skip check)\\n                uint8 dvnIdx = _options.toUint8(cursor);\\n\\n                // dvnIdx must equal to the lastDVNIdx for the first option\\n                // so it is always skipped in the first option\\n                // this operation slices out options whenever the scan finds a different lastDVNIdx\\n                if (lastDVNIdx == 255) {\\n                    lastDVNIdx = dvnIdx;\\n                } else if (dvnIdx != lastDVNIdx) {\\n                    uint256 len = cursor - start - 3; // 3 is for worker_id and option_length\\n                    bytes memory opt = _options.slice(start, len);\\n                    _insertDVNOptions(dvnOptions, dvnIndices, lastDVNIdx, opt);\\n\\n                    // reset the start and lastDVNIdx\\n                    start += len;\\n                    lastDVNIdx = dvnIdx;\\n                }\\n\\n                cursor += optionLength;\\n            }\\n\\n            // skip check the cursor here because the cursor is asserted in getNumDVNs\\n            // if we have reached the end of the options, we need to process the last dvn\\n            uint256 size = cursor - start;\\n            bytes memory op = _options.slice(start, size);\\n            _insertDVNOptions(dvnOptions, dvnIndices, lastDVNIdx, op);\\n\\n            // revert dvnIndices to start from 0\\n            for (uint8 i = 0; i < numDVNs; ++i) {\\n                --dvnIndices[i];\\n            }\\n        }\\n    }\\n\\n    function _insertDVNOptions(\\n        bytes[] memory _dvnOptions,\\n        uint8[] memory _dvnIndices,\\n        uint8 _dvnIdx,\\n        bytes memory _newOptions\\n    ) internal pure {\\n        // dvnIdx starts from 0 but default value of dvnIndices is 0,\\n        // so we tell if the slot is empty by adding 1 to dvnIdx\\n        if (_dvnIdx == 255) revert DVN_InvalidDVNIdx();\\n        uint8 dvnIdxAdj = _dvnIdx + 1;\\n\\n        for (uint256 j = 0; j < _dvnIndices.length; ++j) {\\n            uint8 index = _dvnIndices[j];\\n            if (dvnIdxAdj == index) {\\n                _dvnOptions[j] = abi.encodePacked(_dvnOptions[j], _newOptions);\\n                break;\\n            } else if (index == 0) {\\n                // empty slot, that means it is the first time we see this dvn\\n                _dvnIndices[j] = dvnIdxAdj;\\n                _dvnOptions[j] = _newOptions;\\n                break;\\n            }\\n        }\\n    }\\n\\n    /// @dev get the number of unique dvns\\n    /// @param _options the format is the same as groupDVNOptionsByIdx\\n    function getNumDVNs(bytes memory _options) internal pure returns (uint8 numDVNs) {\\n        uint256 cursor = 0;\\n        BitMap256 bitmap;\\n\\n        // find number of unique dvn_idx\\n        unchecked {\\n            while (cursor < _options.length) {\\n                ++cursor; // skip worker_id\\n\\n                uint16 optionLength = _options.toUint16(cursor);\\n                cursor += 2;\\n                if (optionLength < 2) revert DVN_InvalidDVNOptions(cursor); // at least 1 byte for dvn_idx and 1 byte for option_type\\n\\n                uint8 dvnIdx = _options.toUint8(cursor);\\n\\n                // if dvnIdx is not set, increment numDVNs\\n                // max num of dvns is 255, 255 is an invalid dvn_idx\\n                // The order of the dvnIdx is not required to be sequential, as enforcing the order may weaken\\n                // the composability of the options. e.g. if we refrain from enforcing the order, an OApp that has\\n                // already enforced certain options can append additional options to the end of the enforced\\n                // ones without restrictions.\\n                if (dvnIdx == 255) revert DVN_InvalidDVNIdx();\\n                if (!bitmap.get(dvnIdx)) {\\n                    ++numDVNs;\\n                    bitmap = bitmap.set(dvnIdx);\\n                }\\n\\n                cursor += optionLength;\\n            }\\n        }\\n        if (cursor != _options.length) revert DVN_InvalidDVNOptions(cursor);\\n    }\\n\\n    /// @dev decode the next dvn option from _options starting from the specified cursor\\n    /// @param _options the format is the same as groupDVNOptionsByIdx\\n    /// @param _cursor the cursor to start decoding\\n    /// @return optionType the type of the option\\n    /// @return option the option\\n    /// @return cursor the cursor to start decoding the next option\\n    function nextDVNOption(\\n        bytes calldata _options,\\n        uint256 _cursor\\n    ) internal pure returns (uint8 optionType, bytes calldata option, uint256 cursor) {\\n        unchecked {\\n            // skip worker id\\n            cursor = _cursor + 1;\\n\\n            // read option size\\n            uint16 size = _options.toU16(cursor);\\n            cursor += 2;\\n\\n            // read option type\\n            optionType = _options.toU8(cursor + 1); // skip dvn_idx\\n\\n            // startCursor and endCursor are used to slice the option from _options\\n            uint256 startCursor = cursor + 2; // skip option type and dvn_idx\\n            uint256 endCursor = cursor + size;\\n            option = _options[startCursor:endCursor];\\n            cursor += size;\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35\",\"license\":\"LZBL-1.2\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nlibrary CalldataBytesLib {\\n    function toU8(bytes calldata _bytes, uint256 _start) internal pure returns (uint8) {\\n        return uint8(_bytes[_start]);\\n    }\\n\\n    function toU16(bytes calldata _bytes, uint256 _start) internal pure returns (uint16) {\\n        unchecked {\\n            uint256 end = _start + 2;\\n            return uint16(bytes2(_bytes[_start:end]));\\n        }\\n    }\\n\\n    function toU32(bytes calldata _bytes, uint256 _start) internal pure returns (uint32) {\\n        unchecked {\\n            uint256 end = _start + 4;\\n            return uint32(bytes4(_bytes[_start:end]));\\n        }\\n    }\\n\\n    function toU64(bytes calldata _bytes, uint256 _start) internal pure returns (uint64) {\\n        unchecked {\\n            uint256 end = _start + 8;\\n            return uint64(bytes8(_bytes[_start:end]));\\n        }\\n    }\\n\\n    function toU128(bytes calldata _bytes, uint256 _start) internal pure returns (uint128) {\\n        unchecked {\\n            uint256 end = _start + 16;\\n            return uint128(bytes16(_bytes[_start:end]));\\n        }\\n    }\\n\\n    function toU256(bytes calldata _bytes, uint256 _start) internal pure returns (uint256) {\\n        unchecked {\\n            uint256 end = _start + 32;\\n            return uint256(bytes32(_bytes[_start:end]));\\n        }\\n    }\\n\\n    function toAddr(bytes calldata _bytes, uint256 _start) internal pure returns (address) {\\n        unchecked {\\n            uint256 end = _start + 20;\\n            return address(bytes20(_bytes[_start:end]));\\n        }\\n    }\\n\\n    function toB32(bytes calldata _bytes, uint256 _start) internal pure returns (bytes32) {\\n        unchecked {\\n            uint256 end = _start + 32;\\n            return bytes32(_bytes[_start:end]);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875\",\"license\":\"LZBL-1.2\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\n// modified from https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/structs/BitMaps.sol\\npragma solidity ^0.8.20;\\n\\ntype BitMap256 is uint256;\\n\\nusing BitMaps for BitMap256 global;\\n\\nlibrary BitMaps {\\n    /**\\n     * @dev Returns whether the bit at `index` is set.\\n     */\\n    function get(BitMap256 bitmap, uint8 index) internal pure returns (bool) {\\n        uint256 mask = 1 << index;\\n        return BitMap256.unwrap(bitmap) & mask != 0;\\n    }\\n\\n    /**\\n     * @dev Sets the bit at `index`.\\n     */\\n    function set(BitMap256 bitmap, uint8 index) internal pure returns (BitMap256) {\\n        uint256 mask = 1 << index;\\n        return BitMap256.wrap(BitMap256.unwrap(bitmap) | mask);\\n    }\\n}\\n\",\"keccak256\":\"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9\",\"license\":\"MIT\"},\"@layerzerolabs/oapp-evm/contracts/oapp/libs/OptionsBuilder.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { BytesLib } from \\\"solidity-bytes-utils/contracts/BytesLib.sol\\\";\\nimport { SafeCast } from \\\"@openzeppelin/contracts/utils/math/SafeCast.sol\\\";\\n\\nimport { ExecutorOptions } from \\\"@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/ExecutorOptions.sol\\\";\\nimport { DVNOptions } from \\\"@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\\\";\\n\\n/**\\n * @title OptionsBuilder\\n * @dev Library for building and encoding various message options.\\n */\\nlibrary OptionsBuilder {\\n    using SafeCast for uint256;\\n    using BytesLib for bytes;\\n\\n    // Constants for options types\\n    uint16 internal constant TYPE_1 = 1; // legacy options type 1\\n    uint16 internal constant TYPE_2 = 2; // legacy options type 2\\n    uint16 internal constant TYPE_3 = 3;\\n\\n    // Custom error message\\n    error InvalidSize(uint256 max, uint256 actual);\\n    error InvalidOptionType(uint16 optionType);\\n\\n    // Modifier to ensure only options of type 3 are used\\n    modifier onlyType3(bytes memory _options) {\\n        if (_options.toUint16(0) != TYPE_3) revert InvalidOptionType(_options.toUint16(0));\\n        _;\\n    }\\n\\n    /**\\n     * @dev Creates a new options container with type 3.\\n     * @return options The newly created options container.\\n     */\\n    function newOptions() internal pure returns (bytes memory) {\\n        return abi.encodePacked(TYPE_3);\\n    }\\n\\n    /**\\n     * @dev Adds an executor LZ receive option to the existing options.\\n     * @param _options The existing options container.\\n     * @param _gas The gasLimit used on the lzReceive() function in the OApp.\\n     * @param _value The msg.value passed to the lzReceive() function in the OApp.\\n     * @return options The updated options container.\\n     *\\n     * @dev When multiples of this option are added, they are summed by the executor\\n     * eg. if (_gas: 200k, and _value: 1 ether) AND (_gas: 100k, _value: 0.5 ether) are sent in an option to the LayerZeroEndpoint,\\n     * that becomes (300k, 1.5 ether) when the message is executed on the remote lzReceive() function.\\n     */\\n    function addExecutorLzReceiveOption(\\n        bytes memory _options,\\n        uint128 _gas,\\n        uint128 _value\\n    ) internal pure onlyType3(_options) returns (bytes memory) {\\n        bytes memory option = ExecutorOptions.encodeLzReceiveOption(_gas, _value);\\n        return addExecutorOption(_options, ExecutorOptions.OPTION_TYPE_LZRECEIVE, option);\\n    }\\n\\n    /**\\n     * @dev Adds an executor native drop option to the existing options.\\n     * @param _options The existing options container.\\n     * @param _amount The amount for the native value that is airdropped to the 'receiver'.\\n     * @param _receiver The receiver address for the native drop option.\\n     * @return options The updated options container.\\n     *\\n     * @dev When multiples of this option are added, they are summed by the executor on the remote chain.\\n     */\\n    function addExecutorNativeDropOption(\\n        bytes memory _options,\\n        uint128 _amount,\\n        bytes32 _receiver\\n    ) internal pure onlyType3(_options) returns (bytes memory) {\\n        bytes memory option = ExecutorOptions.encodeNativeDropOption(_amount, _receiver);\\n        return addExecutorOption(_options, ExecutorOptions.OPTION_TYPE_NATIVE_DROP, option);\\n    }\\n\\n    // /**\\n    //  * @dev Adds an executor native drop option to the existing options.\\n    //  * @param _options The existing options container.\\n    //  * @param _amount The amount for the native value that is airdropped to the 'receiver'.\\n    //  * @param _receiver The receiver address for the native drop option.\\n    //  * @return options The updated options container.\\n    //  *\\n    //  * @dev When multiples of this option are added, they are summed by the executor on the remote chain.\\n    //  */\\n    function addExecutorLzReadOption(\\n        bytes memory _options,\\n        uint128 _gas,\\n        uint32 _size,\\n        uint128 _value\\n    ) internal pure onlyType3(_options) returns (bytes memory) {\\n        bytes memory option = ExecutorOptions.encodeLzReadOption(_gas, _size, _value);\\n        return addExecutorOption(_options, ExecutorOptions.OPTION_TYPE_LZREAD, option);\\n    }\\n\\n    /**\\n     * @dev Adds an executor LZ compose option to the existing options.\\n     * @param _options The existing options container.\\n     * @param _index The index for the lzCompose() function call.\\n     * @param _gas The gasLimit for the lzCompose() function call.\\n     * @param _value The msg.value for the lzCompose() function call.\\n     * @return options The updated options container.\\n     *\\n     * @dev When multiples of this option are added, they are summed PER index by the executor on the remote chain.\\n     * @dev If the OApp sends N lzCompose calls on the remote, you must provide N incremented indexes starting with 0.\\n     * ie. When your remote OApp composes (N = 3) messages, you must set this option for index 0,1,2\\n     */\\n    function addExecutorLzComposeOption(\\n        bytes memory _options,\\n        uint16 _index,\\n        uint128 _gas,\\n        uint128 _value\\n    ) internal pure onlyType3(_options) returns (bytes memory) {\\n        bytes memory option = ExecutorOptions.encodeLzComposeOption(_index, _gas, _value);\\n        return addExecutorOption(_options, ExecutorOptions.OPTION_TYPE_LZCOMPOSE, option);\\n    }\\n\\n    /**\\n     * @dev Adds an executor ordered execution option to the existing options.\\n     * @param _options The existing options container.\\n     * @return options The updated options container.\\n     */\\n    function addExecutorOrderedExecutionOption(\\n        bytes memory _options\\n    ) internal pure onlyType3(_options) returns (bytes memory) {\\n        return addExecutorOption(_options, ExecutorOptions.OPTION_TYPE_ORDERED_EXECUTION, bytes(\\\"\\\"));\\n    }\\n\\n    /**\\n     * @dev Adds a DVN pre-crime option to the existing options.\\n     * @param _options The existing options container.\\n     * @param _dvnIdx The DVN index for the pre-crime option.\\n     * @return options The updated options container.\\n     */\\n    function addDVNPreCrimeOption(\\n        bytes memory _options,\\n        uint8 _dvnIdx\\n    ) internal pure onlyType3(_options) returns (bytes memory) {\\n        return addDVNOption(_options, _dvnIdx, DVNOptions.OPTION_TYPE_PRECRIME, bytes(\\\"\\\"));\\n    }\\n\\n    /**\\n     * @dev Adds an executor option to the existing options.\\n     * @param _options The existing options container.\\n     * @param _optionType The type of the executor option.\\n     * @param _option The encoded data for the executor option.\\n     * @return options The updated options container.\\n     */\\n    function addExecutorOption(\\n        bytes memory _options,\\n        uint8 _optionType,\\n        bytes memory _option\\n    ) internal pure onlyType3(_options) returns (bytes memory) {\\n        return\\n            abi.encodePacked(\\n                _options,\\n                ExecutorOptions.WORKER_ID,\\n                _option.length.toUint16() + 1, // +1 for optionType\\n                _optionType,\\n                _option\\n            );\\n    }\\n\\n    /**\\n     * @dev Adds a DVN option to the existing options.\\n     * @param _options The existing options container.\\n     * @param _dvnIdx The DVN index for the DVN option.\\n     * @param _optionType The type of the DVN option.\\n     * @param _option The encoded data for the DVN option.\\n     * @return options The updated options container.\\n     */\\n    function addDVNOption(\\n        bytes memory _options,\\n        uint8 _dvnIdx,\\n        uint8 _optionType,\\n        bytes memory _option\\n    ) internal pure onlyType3(_options) returns (bytes memory) {\\n        return\\n            abi.encodePacked(\\n                _options,\\n                DVNOptions.WORKER_ID,\\n                _option.length.toUint16() + 2, // +2 for optionType and dvnIdx\\n                _dvnIdx,\\n                _optionType,\\n                _option\\n            );\\n    }\\n\\n    /**\\n     * @dev Encodes legacy options of type 1.\\n     * @param _executionGas The gasLimit value passed to lzReceive().\\n     * @return legacyOptions The encoded legacy options.\\n     */\\n    function encodeLegacyOptionsType1(uint256 _executionGas) internal pure returns (bytes memory) {\\n        if (_executionGas > type(uint128).max) revert InvalidSize(type(uint128).max, _executionGas);\\n        return abi.encodePacked(TYPE_1, _executionGas);\\n    }\\n\\n    /**\\n     * @dev Encodes legacy options of type 2.\\n     * @param _executionGas The gasLimit value passed to lzReceive().\\n     * @param _nativeForDst The amount of native air dropped to the receiver.\\n     * @param _receiver The _nativeForDst receiver address.\\n     * @return legacyOptions The encoded legacy options of type 2.\\n     */\\n    function encodeLegacyOptionsType2(\\n        uint256 _executionGas,\\n        uint256 _nativeForDst,\\n        bytes memory _receiver // @dev Use bytes instead of bytes32 in legacy type 2 for _receiver.\\n    ) internal pure returns (bytes memory) {\\n        if (_executionGas > type(uint128).max) revert InvalidSize(type(uint128).max, _executionGas);\\n        if (_nativeForDst > type(uint128).max) revert InvalidSize(type(uint128).max, _nativeForDst);\\n        if (_receiver.length > 32) revert InvalidSize(32, _receiver.length);\\n        return abi.encodePacked(TYPE_2, _executionGas, _nativeForDst, _receiver);\\n    }\\n}\\n\",\"keccak256\":\"0xd40d91e8173cdb5bb821b4594f806b99344d5fd605bc6f2cf0fb21d5ab2500e3\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/SafeCast.sol)\\n// This file was procedurally generated from scripts/generate/templates/SafeCast.js.\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Wrappers over Solidity's uintXX/intXX casting operators with added overflow\\n * checks.\\n *\\n * Downcasting from uint256/int256 in Solidity does not revert on overflow. This can\\n * easily result in undesired exploitation or bugs, since developers usually\\n * assume that overflows raise errors. `SafeCast` restores this intuition by\\n * reverting the transaction when such an operation overflows.\\n *\\n * Using this library instead of the unchecked operations eliminates an entire\\n * class of bugs, so it's recommended to use it always.\\n *\\n * Can be combined with {SafeMath} and {SignedSafeMath} to extend it to smaller types, by performing\\n * all math on `uint256` and `int256` and then downcasting.\\n */\\nlibrary SafeCast {\\n    /**\\n     * @dev Returns the downcasted uint248 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint248).\\n     *\\n     * Counterpart to Solidity's `uint248` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 248 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint248(uint256 value) internal pure returns (uint248) {\\n        require(value <= type(uint248).max, \\\"SafeCast: value doesn't fit in 248 bits\\\");\\n        return uint248(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint240 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint240).\\n     *\\n     * Counterpart to Solidity's `uint240` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 240 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint240(uint256 value) internal pure returns (uint240) {\\n        require(value <= type(uint240).max, \\\"SafeCast: value doesn't fit in 240 bits\\\");\\n        return uint240(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint232 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint232).\\n     *\\n     * Counterpart to Solidity's `uint232` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 232 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint232(uint256 value) internal pure returns (uint232) {\\n        require(value <= type(uint232).max, \\\"SafeCast: value doesn't fit in 232 bits\\\");\\n        return uint232(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint224 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint224).\\n     *\\n     * Counterpart to Solidity's `uint224` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 224 bits\\n     *\\n     * _Available since v4.2._\\n     */\\n    function toUint224(uint256 value) internal pure returns (uint224) {\\n        require(value <= type(uint224).max, \\\"SafeCast: value doesn't fit in 224 bits\\\");\\n        return uint224(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint216 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint216).\\n     *\\n     * Counterpart to Solidity's `uint216` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 216 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint216(uint256 value) internal pure returns (uint216) {\\n        require(value <= type(uint216).max, \\\"SafeCast: value doesn't fit in 216 bits\\\");\\n        return uint216(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint208 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint208).\\n     *\\n     * Counterpart to Solidity's `uint208` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 208 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint208(uint256 value) internal pure returns (uint208) {\\n        require(value <= type(uint208).max, \\\"SafeCast: value doesn't fit in 208 bits\\\");\\n        return uint208(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint200 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint200).\\n     *\\n     * Counterpart to Solidity's `uint200` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 200 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint200(uint256 value) internal pure returns (uint200) {\\n        require(value <= type(uint200).max, \\\"SafeCast: value doesn't fit in 200 bits\\\");\\n        return uint200(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint192 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint192).\\n     *\\n     * Counterpart to Solidity's `uint192` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 192 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint192(uint256 value) internal pure returns (uint192) {\\n        require(value <= type(uint192).max, \\\"SafeCast: value doesn't fit in 192 bits\\\");\\n        return uint192(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint184 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint184).\\n     *\\n     * Counterpart to Solidity's `uint184` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 184 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint184(uint256 value) internal pure returns (uint184) {\\n        require(value <= type(uint184).max, \\\"SafeCast: value doesn't fit in 184 bits\\\");\\n        return uint184(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint176 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint176).\\n     *\\n     * Counterpart to Solidity's `uint176` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 176 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint176(uint256 value) internal pure returns (uint176) {\\n        require(value <= type(uint176).max, \\\"SafeCast: value doesn't fit in 176 bits\\\");\\n        return uint176(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint168 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint168).\\n     *\\n     * Counterpart to Solidity's `uint168` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 168 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint168(uint256 value) internal pure returns (uint168) {\\n        require(value <= type(uint168).max, \\\"SafeCast: value doesn't fit in 168 bits\\\");\\n        return uint168(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint160 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint160).\\n     *\\n     * Counterpart to Solidity's `uint160` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 160 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint160(uint256 value) internal pure returns (uint160) {\\n        require(value <= type(uint160).max, \\\"SafeCast: value doesn't fit in 160 bits\\\");\\n        return uint160(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint152 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint152).\\n     *\\n     * Counterpart to Solidity's `uint152` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 152 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint152(uint256 value) internal pure returns (uint152) {\\n        require(value <= type(uint152).max, \\\"SafeCast: value doesn't fit in 152 bits\\\");\\n        return uint152(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint144 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint144).\\n     *\\n     * Counterpart to Solidity's `uint144` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 144 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint144(uint256 value) internal pure returns (uint144) {\\n        require(value <= type(uint144).max, \\\"SafeCast: value doesn't fit in 144 bits\\\");\\n        return uint144(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint136 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint136).\\n     *\\n     * Counterpart to Solidity's `uint136` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 136 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint136(uint256 value) internal pure returns (uint136) {\\n        require(value <= type(uint136).max, \\\"SafeCast: value doesn't fit in 136 bits\\\");\\n        return uint136(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint128 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint128).\\n     *\\n     * Counterpart to Solidity's `uint128` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 128 bits\\n     *\\n     * _Available since v2.5._\\n     */\\n    function toUint128(uint256 value) internal pure returns (uint128) {\\n        require(value <= type(uint128).max, \\\"SafeCast: value doesn't fit in 128 bits\\\");\\n        return uint128(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint120 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint120).\\n     *\\n     * Counterpart to Solidity's `uint120` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 120 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint120(uint256 value) internal pure returns (uint120) {\\n        require(value <= type(uint120).max, \\\"SafeCast: value doesn't fit in 120 bits\\\");\\n        return uint120(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint112 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint112).\\n     *\\n     * Counterpart to Solidity's `uint112` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 112 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint112(uint256 value) internal pure returns (uint112) {\\n        require(value <= type(uint112).max, \\\"SafeCast: value doesn't fit in 112 bits\\\");\\n        return uint112(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint104 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint104).\\n     *\\n     * Counterpart to Solidity's `uint104` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 104 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint104(uint256 value) internal pure returns (uint104) {\\n        require(value <= type(uint104).max, \\\"SafeCast: value doesn't fit in 104 bits\\\");\\n        return uint104(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint96 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint96).\\n     *\\n     * Counterpart to Solidity's `uint96` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 96 bits\\n     *\\n     * _Available since v4.2._\\n     */\\n    function toUint96(uint256 value) internal pure returns (uint96) {\\n        require(value <= type(uint96).max, \\\"SafeCast: value doesn't fit in 96 bits\\\");\\n        return uint96(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint88 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint88).\\n     *\\n     * Counterpart to Solidity's `uint88` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 88 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint88(uint256 value) internal pure returns (uint88) {\\n        require(value <= type(uint88).max, \\\"SafeCast: value doesn't fit in 88 bits\\\");\\n        return uint88(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint80 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint80).\\n     *\\n     * Counterpart to Solidity's `uint80` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 80 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint80(uint256 value) internal pure returns (uint80) {\\n        require(value <= type(uint80).max, \\\"SafeCast: value doesn't fit in 80 bits\\\");\\n        return uint80(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint72 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint72).\\n     *\\n     * Counterpart to Solidity's `uint72` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 72 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint72(uint256 value) internal pure returns (uint72) {\\n        require(value <= type(uint72).max, \\\"SafeCast: value doesn't fit in 72 bits\\\");\\n        return uint72(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint64 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint64).\\n     *\\n     * Counterpart to Solidity's `uint64` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 64 bits\\n     *\\n     * _Available since v2.5._\\n     */\\n    function toUint64(uint256 value) internal pure returns (uint64) {\\n        require(value <= type(uint64).max, \\\"SafeCast: value doesn't fit in 64 bits\\\");\\n        return uint64(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint56 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint56).\\n     *\\n     * Counterpart to Solidity's `uint56` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 56 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint56(uint256 value) internal pure returns (uint56) {\\n        require(value <= type(uint56).max, \\\"SafeCast: value doesn't fit in 56 bits\\\");\\n        return uint56(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint48 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint48).\\n     *\\n     * Counterpart to Solidity's `uint48` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 48 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint48(uint256 value) internal pure returns (uint48) {\\n        require(value <= type(uint48).max, \\\"SafeCast: value doesn't fit in 48 bits\\\");\\n        return uint48(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint40 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint40).\\n     *\\n     * Counterpart to Solidity's `uint40` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 40 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint40(uint256 value) internal pure returns (uint40) {\\n        require(value <= type(uint40).max, \\\"SafeCast: value doesn't fit in 40 bits\\\");\\n        return uint40(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint32 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint32).\\n     *\\n     * Counterpart to Solidity's `uint32` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 32 bits\\n     *\\n     * _Available since v2.5._\\n     */\\n    function toUint32(uint256 value) internal pure returns (uint32) {\\n        require(value <= type(uint32).max, \\\"SafeCast: value doesn't fit in 32 bits\\\");\\n        return uint32(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint24 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint24).\\n     *\\n     * Counterpart to Solidity's `uint24` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 24 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint24(uint256 value) internal pure returns (uint24) {\\n        require(value <= type(uint24).max, \\\"SafeCast: value doesn't fit in 24 bits\\\");\\n        return uint24(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint16 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint16).\\n     *\\n     * Counterpart to Solidity's `uint16` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 16 bits\\n     *\\n     * _Available since v2.5._\\n     */\\n    function toUint16(uint256 value) internal pure returns (uint16) {\\n        require(value <= type(uint16).max, \\\"SafeCast: value doesn't fit in 16 bits\\\");\\n        return uint16(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint8 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint8).\\n     *\\n     * Counterpart to Solidity's `uint8` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 8 bits\\n     *\\n     * _Available since v2.5._\\n     */\\n    function toUint8(uint256 value) internal pure returns (uint8) {\\n        require(value <= type(uint8).max, \\\"SafeCast: value doesn't fit in 8 bits\\\");\\n        return uint8(value);\\n    }\\n\\n    /**\\n     * @dev Converts a signed int256 into an unsigned uint256.\\n     *\\n     * Requirements:\\n     *\\n     * - input must be greater than or equal to 0.\\n     *\\n     * _Available since v3.0._\\n     */\\n    function toUint256(int256 value) internal pure returns (uint256) {\\n        require(value >= 0, \\\"SafeCast: value must be positive\\\");\\n        return uint256(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int248 from int256, reverting on\\n     * overflow (when the input is less than smallest int248 or\\n     * greater than largest int248).\\n     *\\n     * Counterpart to Solidity's `int248` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 248 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt248(int256 value) internal pure returns (int248 downcasted) {\\n        downcasted = int248(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 248 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int240 from int256, reverting on\\n     * overflow (when the input is less than smallest int240 or\\n     * greater than largest int240).\\n     *\\n     * Counterpart to Solidity's `int240` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 240 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt240(int256 value) internal pure returns (int240 downcasted) {\\n        downcasted = int240(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 240 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int232 from int256, reverting on\\n     * overflow (when the input is less than smallest int232 or\\n     * greater than largest int232).\\n     *\\n     * Counterpart to Solidity's `int232` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 232 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt232(int256 value) internal pure returns (int232 downcasted) {\\n        downcasted = int232(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 232 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int224 from int256, reverting on\\n     * overflow (when the input is less than smallest int224 or\\n     * greater than largest int224).\\n     *\\n     * Counterpart to Solidity's `int224` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 224 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt224(int256 value) internal pure returns (int224 downcasted) {\\n        downcasted = int224(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 224 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int216 from int256, reverting on\\n     * overflow (when the input is less than smallest int216 or\\n     * greater than largest int216).\\n     *\\n     * Counterpart to Solidity's `int216` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 216 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt216(int256 value) internal pure returns (int216 downcasted) {\\n        downcasted = int216(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 216 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int208 from int256, reverting on\\n     * overflow (when the input is less than smallest int208 or\\n     * greater than largest int208).\\n     *\\n     * Counterpart to Solidity's `int208` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 208 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt208(int256 value) internal pure returns (int208 downcasted) {\\n        downcasted = int208(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 208 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int200 from int256, reverting on\\n     * overflow (when the input is less than smallest int200 or\\n     * greater than largest int200).\\n     *\\n     * Counterpart to Solidity's `int200` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 200 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt200(int256 value) internal pure returns (int200 downcasted) {\\n        downcasted = int200(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 200 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int192 from int256, reverting on\\n     * overflow (when the input is less than smallest int192 or\\n     * greater than largest int192).\\n     *\\n     * Counterpart to Solidity's `int192` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 192 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt192(int256 value) internal pure returns (int192 downcasted) {\\n        downcasted = int192(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 192 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int184 from int256, reverting on\\n     * overflow (when the input is less than smallest int184 or\\n     * greater than largest int184).\\n     *\\n     * Counterpart to Solidity's `int184` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 184 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt184(int256 value) internal pure returns (int184 downcasted) {\\n        downcasted = int184(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 184 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int176 from int256, reverting on\\n     * overflow (when the input is less than smallest int176 or\\n     * greater than largest int176).\\n     *\\n     * Counterpart to Solidity's `int176` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 176 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt176(int256 value) internal pure returns (int176 downcasted) {\\n        downcasted = int176(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 176 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int168 from int256, reverting on\\n     * overflow (when the input is less than smallest int168 or\\n     * greater than largest int168).\\n     *\\n     * Counterpart to Solidity's `int168` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 168 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt168(int256 value) internal pure returns (int168 downcasted) {\\n        downcasted = int168(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 168 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int160 from int256, reverting on\\n     * overflow (when the input is less than smallest int160 or\\n     * greater than largest int160).\\n     *\\n     * Counterpart to Solidity's `int160` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 160 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt160(int256 value) internal pure returns (int160 downcasted) {\\n        downcasted = int160(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 160 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int152 from int256, reverting on\\n     * overflow (when the input is less than smallest int152 or\\n     * greater than largest int152).\\n     *\\n     * Counterpart to Solidity's `int152` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 152 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt152(int256 value) internal pure returns (int152 downcasted) {\\n        downcasted = int152(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 152 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int144 from int256, reverting on\\n     * overflow (when the input is less than smallest int144 or\\n     * greater than largest int144).\\n     *\\n     * Counterpart to Solidity's `int144` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 144 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt144(int256 value) internal pure returns (int144 downcasted) {\\n        downcasted = int144(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 144 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int136 from int256, reverting on\\n     * overflow (when the input is less than smallest int136 or\\n     * greater than largest int136).\\n     *\\n     * Counterpart to Solidity's `int136` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 136 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt136(int256 value) internal pure returns (int136 downcasted) {\\n        downcasted = int136(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 136 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int128 from int256, reverting on\\n     * overflow (when the input is less than smallest int128 or\\n     * greater than largest int128).\\n     *\\n     * Counterpart to Solidity's `int128` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 128 bits\\n     *\\n     * _Available since v3.1._\\n     */\\n    function toInt128(int256 value) internal pure returns (int128 downcasted) {\\n        downcasted = int128(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 128 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int120 from int256, reverting on\\n     * overflow (when the input is less than smallest int120 or\\n     * greater than largest int120).\\n     *\\n     * Counterpart to Solidity's `int120` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 120 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt120(int256 value) internal pure returns (int120 downcasted) {\\n        downcasted = int120(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 120 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int112 from int256, reverting on\\n     * overflow (when the input is less than smallest int112 or\\n     * greater than largest int112).\\n     *\\n     * Counterpart to Solidity's `int112` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 112 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt112(int256 value) internal pure returns (int112 downcasted) {\\n        downcasted = int112(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 112 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int104 from int256, reverting on\\n     * overflow (when the input is less than smallest int104 or\\n     * greater than largest int104).\\n     *\\n     * Counterpart to Solidity's `int104` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 104 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt104(int256 value) internal pure returns (int104 downcasted) {\\n        downcasted = int104(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 104 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int96 from int256, reverting on\\n     * overflow (when the input is less than smallest int96 or\\n     * greater than largest int96).\\n     *\\n     * Counterpart to Solidity's `int96` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 96 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt96(int256 value) internal pure returns (int96 downcasted) {\\n        downcasted = int96(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 96 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int88 from int256, reverting on\\n     * overflow (when the input is less than smallest int88 or\\n     * greater than largest int88).\\n     *\\n     * Counterpart to Solidity's `int88` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 88 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt88(int256 value) internal pure returns (int88 downcasted) {\\n        downcasted = int88(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 88 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int80 from int256, reverting on\\n     * overflow (when the input is less than smallest int80 or\\n     * greater than largest int80).\\n     *\\n     * Counterpart to Solidity's `int80` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 80 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt80(int256 value) internal pure returns (int80 downcasted) {\\n        downcasted = int80(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 80 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int72 from int256, reverting on\\n     * overflow (when the input is less than smallest int72 or\\n     * greater than largest int72).\\n     *\\n     * Counterpart to Solidity's `int72` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 72 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt72(int256 value) internal pure returns (int72 downcasted) {\\n        downcasted = int72(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 72 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int64 from int256, reverting on\\n     * overflow (when the input is less than smallest int64 or\\n     * greater than largest int64).\\n     *\\n     * Counterpart to Solidity's `int64` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 64 bits\\n     *\\n     * _Available since v3.1._\\n     */\\n    function toInt64(int256 value) internal pure returns (int64 downcasted) {\\n        downcasted = int64(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 64 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int56 from int256, reverting on\\n     * overflow (when the input is less than smallest int56 or\\n     * greater than largest int56).\\n     *\\n     * Counterpart to Solidity's `int56` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 56 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt56(int256 value) internal pure returns (int56 downcasted) {\\n        downcasted = int56(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 56 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int48 from int256, reverting on\\n     * overflow (when the input is less than smallest int48 or\\n     * greater than largest int48).\\n     *\\n     * Counterpart to Solidity's `int48` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 48 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt48(int256 value) internal pure returns (int48 downcasted) {\\n        downcasted = int48(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 48 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int40 from int256, reverting on\\n     * overflow (when the input is less than smallest int40 or\\n     * greater than largest int40).\\n     *\\n     * Counterpart to Solidity's `int40` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 40 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt40(int256 value) internal pure returns (int40 downcasted) {\\n        downcasted = int40(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 40 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int32 from int256, reverting on\\n     * overflow (when the input is less than smallest int32 or\\n     * greater than largest int32).\\n     *\\n     * Counterpart to Solidity's `int32` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 32 bits\\n     *\\n     * _Available since v3.1._\\n     */\\n    function toInt32(int256 value) internal pure returns (int32 downcasted) {\\n        downcasted = int32(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 32 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int24 from int256, reverting on\\n     * overflow (when the input is less than smallest int24 or\\n     * greater than largest int24).\\n     *\\n     * Counterpart to Solidity's `int24` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 24 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt24(int256 value) internal pure returns (int24 downcasted) {\\n        downcasted = int24(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 24 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int16 from int256, reverting on\\n     * overflow (when the input is less than smallest int16 or\\n     * greater than largest int16).\\n     *\\n     * Counterpart to Solidity's `int16` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 16 bits\\n     *\\n     * _Available since v3.1._\\n     */\\n    function toInt16(int256 value) internal pure returns (int16 downcasted) {\\n        downcasted = int16(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 16 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int8 from int256, reverting on\\n     * overflow (when the input is less than smallest int8 or\\n     * greater than largest int8).\\n     *\\n     * Counterpart to Solidity's `int8` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 8 bits\\n     *\\n     * _Available since v3.1._\\n     */\\n    function toInt8(int256 value) internal pure returns (int8 downcasted) {\\n        downcasted = int8(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 8 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Converts an unsigned uint256 into a signed int256.\\n     *\\n     * Requirements:\\n     *\\n     * - input must be less than or equal to maxInt256.\\n     *\\n     * _Available since v3.0._\\n     */\\n    function toInt256(uint256 value) internal pure returns (int256) {\\n        // Note: Unsafe cast below is okay because `type(int256).max` is guaranteed to be positive\\n        require(value <= uint256(type(int256).max), \\\"SafeCast: value doesn't fit in an int256\\\");\\n        return int256(value);\\n    }\\n}\\n\",\"keccak256\":\"0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad\",\"license\":\"MIT\"},\"solidity-bytes-utils/contracts/BytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: Unlicense\\n/*\\n * @title Solidity Bytes Arrays Utils\\n * @author Gon\\u00e7alo S\\u00e1 <goncalo.sa@consensys.net>\\n *\\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\\n *      The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\\n */\\npragma solidity >=0.8.0 <0.9.0;\\n\\n\\nlibrary BytesLib {\\n    function concat(\\n        bytes memory _preBytes,\\n        bytes memory _postBytes\\n    )\\n        internal\\n        pure\\n        returns (bytes memory)\\n    {\\n        bytes memory tempBytes;\\n\\n        assembly {\\n            // Get a location of some free memory and store it in tempBytes as\\n            // Solidity does for memory variables.\\n            tempBytes := mload(0x40)\\n\\n            // Store the length of the first bytes array at the beginning of\\n            // the memory for tempBytes.\\n            let length := mload(_preBytes)\\n            mstore(tempBytes, length)\\n\\n            // Maintain a memory counter for the current write location in the\\n            // temp bytes array by adding the 32 bytes for the array length to\\n            // the starting location.\\n            let mc := add(tempBytes, 0x20)\\n            // Stop copying when the memory counter reaches the length of the\\n            // first bytes array.\\n            let end := add(mc, length)\\n\\n            for {\\n                // Initialize a copy counter to the start of the _preBytes data,\\n                // 32 bytes into its memory.\\n                let cc := add(_preBytes, 0x20)\\n            } lt(mc, end) {\\n                // Increase both counters by 32 bytes each iteration.\\n                mc := add(mc, 0x20)\\n                cc := add(cc, 0x20)\\n            } {\\n                // Write the _preBytes data into the tempBytes memory 32 bytes\\n                // at a time.\\n                mstore(mc, mload(cc))\\n            }\\n\\n            // Add the length of _postBytes to the current length of tempBytes\\n            // and store it as the new length in the first 32 bytes of the\\n            // tempBytes memory.\\n            length := mload(_postBytes)\\n            mstore(tempBytes, add(length, mload(tempBytes)))\\n\\n            // Move the memory counter back from a multiple of 0x20 to the\\n            // actual end of the _preBytes data.\\n            mc := end\\n            // Stop copying when the memory counter reaches the new combined\\n            // length of the arrays.\\n            end := add(mc, length)\\n\\n            for {\\n                let cc := add(_postBytes, 0x20)\\n            } lt(mc, end) {\\n                mc := add(mc, 0x20)\\n                cc := add(cc, 0x20)\\n            } {\\n                mstore(mc, mload(cc))\\n            }\\n\\n            // Update the free-memory pointer by padding our last write location\\n            // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\\n            // next 32 byte block, then round down to the nearest multiple of\\n            // 32. If the sum of the length of the two arrays is zero then add\\n            // one before rounding down to leave a blank 32 bytes (the length block with 0).\\n            mstore(0x40, and(\\n              add(add(end, iszero(add(length, mload(_preBytes)))), 31),\\n              not(31) // Round down to the nearest 32 bytes.\\n            ))\\n        }\\n\\n        return tempBytes;\\n    }\\n\\n    function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\\n        assembly {\\n            // Read the first 32 bytes of _preBytes storage, which is the length\\n            // of the array. (We don't need to use the offset into the slot\\n            // because arrays use the entire slot.)\\n            let fslot := sload(_preBytes.slot)\\n            // Arrays of 31 bytes or less have an even value in their slot,\\n            // while longer arrays have an odd value. The actual length is\\n            // the slot divided by two for odd values, and the lowest order\\n            // byte divided by two for even values.\\n            // If the slot is even, bitwise and the slot with 255 and divide by\\n            // two to get the length. If the slot is odd, bitwise and the slot\\n            // with -1 and divide by two.\\n            let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n            let mlength := mload(_postBytes)\\n            let newlength := add(slength, mlength)\\n            // slength can contain both the length and contents of the array\\n            // if length < 32 bytes so let's prepare for that\\n            // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n            switch add(lt(slength, 32), lt(newlength, 32))\\n            case 2 {\\n                // Since the new array still fits in the slot, we just need to\\n                // update the contents of the slot.\\n                // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\\n                sstore(\\n                    _preBytes.slot,\\n                    // all the modifications to the slot are inside this\\n                    // next block\\n                    add(\\n                        // we can just add to the slot contents because the\\n                        // bytes we want to change are the LSBs\\n                        fslot,\\n                        add(\\n                            mul(\\n                                div(\\n                                    // load the bytes from memory\\n                                    mload(add(_postBytes, 0x20)),\\n                                    // zero all bytes to the right\\n                                    exp(0x100, sub(32, mlength))\\n                                ),\\n                                // and now shift left the number of bytes to\\n                                // leave space for the length in the slot\\n                                exp(0x100, sub(32, newlength))\\n                            ),\\n                            // increase length by the double of the memory\\n                            // bytes length\\n                            mul(mlength, 2)\\n                        )\\n                    )\\n                )\\n            }\\n            case 1 {\\n                // The stored value fits in the slot, but the combined value\\n                // will exceed it.\\n                // get the keccak hash to get the contents of the array\\n                mstore(0x0, _preBytes.slot)\\n                let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n                // save new length\\n                sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n                // The contents of the _postBytes array start 32 bytes into\\n                // the structure. Our first read should obtain the `submod`\\n                // bytes that can fit into the unused space in the last word\\n                // of the stored array. To get this, we read 32 bytes starting\\n                // from `submod`, so the data we read overlaps with the array\\n                // contents by `submod` bytes. Masking the lowest-order\\n                // `submod` bytes allows us to add that value directly to the\\n                // stored value.\\n\\n                let submod := sub(32, slength)\\n                let mc := add(_postBytes, submod)\\n                let end := add(_postBytes, mlength)\\n                let mask := sub(exp(0x100, submod), 1)\\n\\n                sstore(\\n                    sc,\\n                    add(\\n                        and(\\n                            fslot,\\n                            0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00\\n                        ),\\n                        and(mload(mc), mask)\\n                    )\\n                )\\n\\n                for {\\n                    mc := add(mc, 0x20)\\n                    sc := add(sc, 1)\\n                } lt(mc, end) {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } {\\n                    sstore(sc, mload(mc))\\n                }\\n\\n                mask := exp(0x100, sub(mc, end))\\n\\n                sstore(sc, mul(div(mload(mc), mask), mask))\\n            }\\n            default {\\n                // get the keccak hash to get the contents of the array\\n                mstore(0x0, _preBytes.slot)\\n                // Start copying to the last used word of the stored array.\\n                let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n                // save new length\\n                sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n                // Copy over the first `submod` bytes of the new data as in\\n                // case 1 above.\\n                let slengthmod := mod(slength, 32)\\n                let mlengthmod := mod(mlength, 32)\\n                let submod := sub(32, slengthmod)\\n                let mc := add(_postBytes, submod)\\n                let end := add(_postBytes, mlength)\\n                let mask := sub(exp(0x100, submod), 1)\\n\\n                sstore(sc, add(sload(sc), and(mload(mc), mask)))\\n\\n                for {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } lt(mc, end) {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } {\\n                    sstore(sc, mload(mc))\\n                }\\n\\n                mask := exp(0x100, sub(mc, end))\\n\\n                sstore(sc, mul(div(mload(mc), mask), mask))\\n            }\\n        }\\n    }\\n\\n    function slice(\\n        bytes memory _bytes,\\n        uint256 _start,\\n        uint256 _length\\n    )\\n        internal\\n        pure\\n        returns (bytes memory)\\n    {\\n        // We're using the unchecked block below because otherwise execution ends \\n        // with the native overflow error code.\\n        unchecked {\\n            require(_length + 31 >= _length, \\\"slice_overflow\\\");\\n        }\\n        require(_bytes.length >= _start + _length, \\\"slice_outOfBounds\\\");\\n\\n        bytes memory tempBytes;\\n\\n        assembly {\\n            switch iszero(_length)\\n            case 0 {\\n                // Get a location of some free memory and store it in tempBytes as\\n                // Solidity does for memory variables.\\n                tempBytes := mload(0x40)\\n\\n                // The first word of the slice result is potentially a partial\\n                // word read from the original array. To read it, we calculate\\n                // the length of that partial word and start copying that many\\n                // bytes into the array. The first word we copy will start with\\n                // data we don't care about, but the last `lengthmod` bytes will\\n                // land at the beginning of the contents of the new array. When\\n                // we're done copying, we overwrite the full first word with\\n                // the actual length of the slice.\\n                let lengthmod := and(_length, 31)\\n\\n                // The multiplication in the next line is necessary\\n                // because when slicing multiples of 32 bytes (lengthmod == 0)\\n                // the following copy loop was copying the origin's length\\n                // and then ending prematurely not copying everything it should.\\n                let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\\n                let end := add(mc, _length)\\n\\n                for {\\n                    // The multiplication in the next line has the same exact purpose\\n                    // as the one above.\\n                    let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\\n                } lt(mc, end) {\\n                    mc := add(mc, 0x20)\\n                    cc := add(cc, 0x20)\\n                } {\\n                    mstore(mc, mload(cc))\\n                }\\n\\n                mstore(tempBytes, _length)\\n\\n                //update free-memory pointer\\n                //allocating the array padded to 32 bytes like the compiler does now\\n                mstore(0x40, and(add(mc, 31), not(31)))\\n            }\\n            //if we want a zero-length slice let's just return a zero-length array\\n            default {\\n                tempBytes := mload(0x40)\\n                //zero out the 32 bytes slice we are about to return\\n                //we need to do it because Solidity does not garbage collect\\n                mstore(tempBytes, 0)\\n\\n                mstore(0x40, add(tempBytes, 0x20))\\n            }\\n        }\\n\\n        return tempBytes;\\n    }\\n\\n    function toAddress(bytes memory _bytes, uint256 _start) internal pure returns (address) {\\n        require(_bytes.length >= _start + 20, \\\"toAddress_outOfBounds\\\");\\n        address tempAddress;\\n\\n        assembly {\\n            tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\\n        }\\n\\n        return tempAddress;\\n    }\\n\\n    function toUint8(bytes memory _bytes, uint256 _start) internal pure returns (uint8) {\\n        require(_bytes.length >= _start + 1 , \\\"toUint8_outOfBounds\\\");\\n        uint8 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x1), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint16(bytes memory _bytes, uint256 _start) internal pure returns (uint16) {\\n        require(_bytes.length >= _start + 2, \\\"toUint16_outOfBounds\\\");\\n        uint16 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x2), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint32(bytes memory _bytes, uint256 _start) internal pure returns (uint32) {\\n        require(_bytes.length >= _start + 4, \\\"toUint32_outOfBounds\\\");\\n        uint32 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x4), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint64(bytes memory _bytes, uint256 _start) internal pure returns (uint64) {\\n        require(_bytes.length >= _start + 8, \\\"toUint64_outOfBounds\\\");\\n        uint64 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x8), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint96(bytes memory _bytes, uint256 _start) internal pure returns (uint96) {\\n        require(_bytes.length >= _start + 12, \\\"toUint96_outOfBounds\\\");\\n        uint96 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0xc), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint128(bytes memory _bytes, uint256 _start) internal pure returns (uint128) {\\n        require(_bytes.length >= _start + 16, \\\"toUint128_outOfBounds\\\");\\n        uint128 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x10), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint256(bytes memory _bytes, uint256 _start) internal pure returns (uint256) {\\n        require(_bytes.length >= _start + 32, \\\"toUint256_outOfBounds\\\");\\n        uint256 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x20), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toBytes32(bytes memory _bytes, uint256 _start) internal pure returns (bytes32) {\\n        require(_bytes.length >= _start + 32, \\\"toBytes32_outOfBounds\\\");\\n        bytes32 tempBytes32;\\n\\n        assembly {\\n            tempBytes32 := mload(add(add(_bytes, 0x20), _start))\\n        }\\n\\n        return tempBytes32;\\n    }\\n\\n    function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\\n        bool success = true;\\n\\n        assembly {\\n            let length := mload(_preBytes)\\n\\n            // if lengths don't match the arrays are not equal\\n            switch eq(length, mload(_postBytes))\\n            case 1 {\\n                // cb is a circuit breaker in the for loop since there's\\n                //  no said feature for inline assembly loops\\n                // cb = 1 - don't breaker\\n                // cb = 0 - break\\n                let cb := 1\\n\\n                let mc := add(_preBytes, 0x20)\\n                let end := add(mc, length)\\n\\n                for {\\n                    let cc := add(_postBytes, 0x20)\\n                // the next line is the loop condition:\\n                // while(uint256(mc < end) + cb == 2)\\n                } eq(add(lt(mc, end), cb), 2) {\\n                    mc := add(mc, 0x20)\\n                    cc := add(cc, 0x20)\\n                } {\\n                    // if any of these checks fails then arrays are not equal\\n                    if iszero(eq(mload(mc), mload(cc))) {\\n                        // unsuccess:\\n                        success := 0\\n                        cb := 0\\n                    }\\n                }\\n            }\\n            default {\\n                // unsuccess:\\n                success := 0\\n            }\\n        }\\n\\n        return success;\\n    }\\n\\n    function equalStorage(\\n        bytes storage _preBytes,\\n        bytes memory _postBytes\\n    )\\n        internal\\n        view\\n        returns (bool)\\n    {\\n        bool success = true;\\n\\n        assembly {\\n            // we know _preBytes_offset is 0\\n            let fslot := sload(_preBytes.slot)\\n            // Decode the length of the stored array like in concatStorage().\\n            let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n            let mlength := mload(_postBytes)\\n\\n            // if lengths don't match the arrays are not equal\\n            switch eq(slength, mlength)\\n            case 1 {\\n                // slength can contain both the length and contents of the array\\n                // if length < 32 bytes so let's prepare for that\\n                // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n                if iszero(iszero(slength)) {\\n                    switch lt(slength, 32)\\n                    case 1 {\\n                        // blank the last byte which is the length\\n                        fslot := mul(div(fslot, 0x100), 0x100)\\n\\n                        if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\\n                            // unsuccess:\\n                            success := 0\\n                        }\\n                    }\\n                    default {\\n                        // cb is a circuit breaker in the for loop since there's\\n                        //  no said feature for inline assembly loops\\n                        // cb = 1 - don't breaker\\n                        // cb = 0 - break\\n                        let cb := 1\\n\\n                        // get the keccak hash to get the contents of the array\\n                        mstore(0x0, _preBytes.slot)\\n                        let sc := keccak256(0x0, 0x20)\\n\\n                        let mc := add(_postBytes, 0x20)\\n                        let end := add(mc, mlength)\\n\\n                        // the next line is the loop condition:\\n                        // while(uint256(mc < end) + cb == 2)\\n                        for {} eq(add(lt(mc, end), cb), 2) {\\n                            sc := add(sc, 1)\\n                            mc := add(mc, 0x20)\\n                        } {\\n                            if iszero(eq(sload(sc), mload(mc))) {\\n                                // unsuccess:\\n                                success := 0\\n                                cb := 0\\n                            }\\n                        }\\n                    }\\n                }\\n            }\\n            default {\\n                // unsuccess:\\n                success := 0\\n            }\\n        }\\n\\n        return success;\\n    }\\n}\\n\",\"keccak256\":\"0xf4b07e5d8f69407bb43c6db224adfcf6c73b512dd64e85008ac3c222910c3555\",\"license\":\"Unlicense\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/solidity-examples/contracts/libraries/BytesLib.sol":{"BytesLib":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122016c943e260452a196bf46ff166d59596b572e9393a6dbf3c7b284a2e48b83c3d64736f6c63430008190033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 AND 0xC9 NUMBER 0xE2 PUSH1 0x45 0x2A NOT PUSH12 0xF46FF166D59596B572E9393A PUSH14 0xBF3C7B284A2E48B83C3D64736F6C PUSH4 0x43000819 STOP CALLER ","sourceMap":"369:18622:16:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;369:18622:16;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122016c943e260452a196bf46ff166d59596b572e9393a6dbf3c7b284a2e48b83c3d64736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 AND 0xC9 NUMBER 0xE2 PUSH1 0x45 0x2A NOT PUSH12 0xF46FF166D59596B572E9393A PUSH14 0xBF3C7B284A2E48B83C3D64736F6C PUSH4 0x43000819 STOP CALLER ","sourceMap":"369:18622:16:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"concat(bytes memory,bytes memory)":"infinite","concatStorage(bytes storage pointer,bytes memory)":"infinite","equal(bytes memory,bytes memory)":"infinite","equalStorage(bytes storage pointer,bytes memory)":"infinite","slice(bytes memory,uint256,uint256)":"infinite","toAddress(bytes memory,uint256)":"infinite","toBytes32(bytes memory,uint256)":"infinite","toUint128(bytes memory,uint256)":"infinite","toUint16(bytes memory,uint256)":"infinite","toUint256(bytes memory,uint256)":"infinite","toUint32(bytes memory,uint256)":"infinite","toUint64(bytes memory,uint256)":"infinite","toUint8(bytes memory,uint256)":"infinite","toUint96(bytes memory,uint256)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/libraries/BytesLib.sol\":\"BytesLib\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/libraries/BytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: Unlicense\\n/*\\n * @title Solidity Bytes Arrays Utils\\n * @author Gon\\u00e7alo S\\u00e1 <goncalo.sa@consensys.net>\\n *\\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\\n *      The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\\n */\\npragma solidity >=0.8.0 <0.9.0;\\n\\nlibrary BytesLib {\\n    function concat(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bytes memory) {\\n        bytes memory tempBytes;\\n\\n        assembly {\\n            // Get a location of some free memory and store it in tempBytes as\\n            // Solidity does for memory variables.\\n            tempBytes := mload(0x40)\\n\\n            // Store the length of the first bytes array at the beginning of\\n            // the memory for tempBytes.\\n            let length := mload(_preBytes)\\n            mstore(tempBytes, length)\\n\\n            // Maintain a memory counter for the current write location in the\\n            // temp bytes array by adding the 32 bytes for the array length to\\n            // the starting location.\\n            let mc := add(tempBytes, 0x20)\\n            // Stop copying when the memory counter reaches the length of the\\n            // first bytes array.\\n            let end := add(mc, length)\\n\\n            for {\\n                // Initialize a copy counter to the start of the _preBytes data,\\n                // 32 bytes into its memory.\\n                let cc := add(_preBytes, 0x20)\\n            } lt(mc, end) {\\n                // Increase both counters by 32 bytes each iteration.\\n                mc := add(mc, 0x20)\\n                cc := add(cc, 0x20)\\n            } {\\n                // Write the _preBytes data into the tempBytes memory 32 bytes\\n                // at a time.\\n                mstore(mc, mload(cc))\\n            }\\n\\n            // Add the length of _postBytes to the current length of tempBytes\\n            // and store it as the new length in the first 32 bytes of the\\n            // tempBytes memory.\\n            length := mload(_postBytes)\\n            mstore(tempBytes, add(length, mload(tempBytes)))\\n\\n            // Move the memory counter back from a multiple of 0x20 to the\\n            // actual end of the _preBytes data.\\n            mc := end\\n            // Stop copying when the memory counter reaches the new combined\\n            // length of the arrays.\\n            end := add(mc, length)\\n\\n            for {\\n                let cc := add(_postBytes, 0x20)\\n            } lt(mc, end) {\\n                mc := add(mc, 0x20)\\n                cc := add(cc, 0x20)\\n            } {\\n                mstore(mc, mload(cc))\\n            }\\n\\n            // Update the free-memory pointer by padding our last write location\\n            // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\\n            // next 32 byte block, then round down to the nearest multiple of\\n            // 32. If the sum of the length of the two arrays is zero then add\\n            // one before rounding down to leave a blank 32 bytes (the length block with 0).\\n            mstore(\\n                0x40,\\n                and(\\n                    add(add(end, iszero(add(length, mload(_preBytes)))), 31),\\n                    not(31) // Round down to the nearest 32 bytes.\\n                )\\n            )\\n        }\\n\\n        return tempBytes;\\n    }\\n\\n    function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\\n        assembly {\\n            // Read the first 32 bytes of _preBytes storage, which is the length\\n            // of the array. (We don't need to use the offset into the slot\\n            // because arrays use the entire slot.)\\n            let fslot := sload(_preBytes.slot)\\n            // Arrays of 31 bytes or less have an even value in their slot,\\n            // while longer arrays have an odd value. The actual length is\\n            // the slot divided by two for odd values, and the lowest order\\n            // byte divided by two for even values.\\n            // If the slot is even, bitwise and the slot with 255 and divide by\\n            // two to get the length. If the slot is odd, bitwise and the slot\\n            // with -1 and divide by two.\\n            let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n            let mlength := mload(_postBytes)\\n            let newlength := add(slength, mlength)\\n            // slength can contain both the length and contents of the array\\n            // if length < 32 bytes so let's prepare for that\\n            // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n            switch add(lt(slength, 32), lt(newlength, 32))\\n            case 2 {\\n                // Since the new array still fits in the slot, we just need to\\n                // update the contents of the slot.\\n                // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\\n                sstore(\\n                    _preBytes.slot,\\n                    // all the modifications to the slot are inside this\\n                    // next block\\n                    add(\\n                        // we can just add to the slot contents because the\\n                        // bytes we want to change are the LSBs\\n                        fslot,\\n                        add(\\n                            mul(\\n                                div(\\n                                    // load the bytes from memory\\n                                    mload(add(_postBytes, 0x20)),\\n                                    // zero all bytes to the right\\n                                    exp(0x100, sub(32, mlength))\\n                                ),\\n                                // and now shift left the number of bytes to\\n                                // leave space for the length in the slot\\n                                exp(0x100, sub(32, newlength))\\n                            ),\\n                            // increase length by the double of the memory\\n                            // bytes length\\n                            mul(mlength, 2)\\n                        )\\n                    )\\n                )\\n            }\\n            case 1 {\\n                // The stored value fits in the slot, but the combined value\\n                // will exceed it.\\n                // get the keccak hash to get the contents of the array\\n                mstore(0x0, _preBytes.slot)\\n                let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n                // save new length\\n                sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n                // The contents of the _postBytes array start 32 bytes into\\n                // the structure. Our first read should obtain the `submod`\\n                // bytes that can fit into the unused space in the last word\\n                // of the stored array. To get this, we read 32 bytes starting\\n                // from `submod`, so the data we read overlaps with the array\\n                // contents by `submod` bytes. Masking the lowest-order\\n                // `submod` bytes allows us to add that value directly to the\\n                // stored value.\\n\\n                let submod := sub(32, slength)\\n                let mc := add(_postBytes, submod)\\n                let end := add(_postBytes, mlength)\\n                let mask := sub(exp(0x100, submod), 1)\\n\\n                sstore(sc, add(and(fslot, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00), and(mload(mc), mask)))\\n\\n                for {\\n                    mc := add(mc, 0x20)\\n                    sc := add(sc, 1)\\n                } lt(mc, end) {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } {\\n                    sstore(sc, mload(mc))\\n                }\\n\\n                mask := exp(0x100, sub(mc, end))\\n\\n                sstore(sc, mul(div(mload(mc), mask), mask))\\n            }\\n            default {\\n                // get the keccak hash to get the contents of the array\\n                mstore(0x0, _preBytes.slot)\\n                // Start copying to the last used word of the stored array.\\n                let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n                // save new length\\n                sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n                // Copy over the first `submod` bytes of the new data as in\\n                // case 1 above.\\n                let slengthmod := mod(slength, 32)\\n                let mlengthmod := mod(mlength, 32)\\n                let submod := sub(32, slengthmod)\\n                let mc := add(_postBytes, submod)\\n                let end := add(_postBytes, mlength)\\n                let mask := sub(exp(0x100, submod), 1)\\n\\n                sstore(sc, add(sload(sc), and(mload(mc), mask)))\\n\\n                for {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } lt(mc, end) {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } {\\n                    sstore(sc, mload(mc))\\n                }\\n\\n                mask := exp(0x100, sub(mc, end))\\n\\n                sstore(sc, mul(div(mload(mc), mask), mask))\\n            }\\n        }\\n    }\\n\\n    function slice(\\n        bytes memory _bytes,\\n        uint _start,\\n        uint _length\\n    ) internal pure returns (bytes memory) {\\n        require(_length + 31 >= _length, \\\"slice_overflow\\\");\\n        require(_bytes.length >= _start + _length, \\\"slice_outOfBounds\\\");\\n\\n        bytes memory tempBytes;\\n\\n        assembly {\\n            switch iszero(_length)\\n            case 0 {\\n                // Get a location of some free memory and store it in tempBytes as\\n                // Solidity does for memory variables.\\n                tempBytes := mload(0x40)\\n\\n                // The first word of the slice result is potentially a partial\\n                // word read from the original array. To read it, we calculate\\n                // the length of that partial word and start copying that many\\n                // bytes into the array. The first word we copy will start with\\n                // data we don't care about, but the last `lengthmod` bytes will\\n                // land at the beginning of the contents of the new array. When\\n                // we're done copying, we overwrite the full first word with\\n                // the actual length of the slice.\\n                let lengthmod := and(_length, 31)\\n\\n                // The multiplication in the next line is necessary\\n                // because when slicing multiples of 32 bytes (lengthmod == 0)\\n                // the following copy loop was copying the origin's length\\n                // and then ending prematurely not copying everything it should.\\n                let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\\n                let end := add(mc, _length)\\n\\n                for {\\n                    // The multiplication in the next line has the same exact purpose\\n                    // as the one above.\\n                    let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\\n                } lt(mc, end) {\\n                    mc := add(mc, 0x20)\\n                    cc := add(cc, 0x20)\\n                } {\\n                    mstore(mc, mload(cc))\\n                }\\n\\n                mstore(tempBytes, _length)\\n\\n                //update free-memory pointer\\n                //allocating the array padded to 32 bytes like the compiler does now\\n                mstore(0x40, and(add(mc, 31), not(31)))\\n            }\\n            //if we want a zero-length slice let's just return a zero-length array\\n            default {\\n                tempBytes := mload(0x40)\\n                //zero out the 32 bytes slice we are about to return\\n                //we need to do it because Solidity does not garbage collect\\n                mstore(tempBytes, 0)\\n\\n                mstore(0x40, add(tempBytes, 0x20))\\n            }\\n        }\\n\\n        return tempBytes;\\n    }\\n\\n    function toAddress(bytes memory _bytes, uint _start) internal pure returns (address) {\\n        require(_bytes.length >= _start + 20, \\\"toAddress_outOfBounds\\\");\\n        address tempAddress;\\n\\n        assembly {\\n            tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\\n        }\\n\\n        return tempAddress;\\n    }\\n\\n    function toUint8(bytes memory _bytes, uint _start) internal pure returns (uint8) {\\n        require(_bytes.length >= _start + 1, \\\"toUint8_outOfBounds\\\");\\n        uint8 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x1), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint16(bytes memory _bytes, uint _start) internal pure returns (uint16) {\\n        require(_bytes.length >= _start + 2, \\\"toUint16_outOfBounds\\\");\\n        uint16 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x2), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint32(bytes memory _bytes, uint _start) internal pure returns (uint32) {\\n        require(_bytes.length >= _start + 4, \\\"toUint32_outOfBounds\\\");\\n        uint32 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x4), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint64(bytes memory _bytes, uint _start) internal pure returns (uint64) {\\n        require(_bytes.length >= _start + 8, \\\"toUint64_outOfBounds\\\");\\n        uint64 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x8), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint96(bytes memory _bytes, uint _start) internal pure returns (uint96) {\\n        require(_bytes.length >= _start + 12, \\\"toUint96_outOfBounds\\\");\\n        uint96 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0xc), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint128(bytes memory _bytes, uint _start) internal pure returns (uint128) {\\n        require(_bytes.length >= _start + 16, \\\"toUint128_outOfBounds\\\");\\n        uint128 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x10), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint256(bytes memory _bytes, uint _start) internal pure returns (uint) {\\n        require(_bytes.length >= _start + 32, \\\"toUint256_outOfBounds\\\");\\n        uint tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x20), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toBytes32(bytes memory _bytes, uint _start) internal pure returns (bytes32) {\\n        require(_bytes.length >= _start + 32, \\\"toBytes32_outOfBounds\\\");\\n        bytes32 tempBytes32;\\n\\n        assembly {\\n            tempBytes32 := mload(add(add(_bytes, 0x20), _start))\\n        }\\n\\n        return tempBytes32;\\n    }\\n\\n    function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\\n        bool success = true;\\n\\n        assembly {\\n            let length := mload(_preBytes)\\n\\n            // if lengths don't match the arrays are not equal\\n            switch eq(length, mload(_postBytes))\\n            case 1 {\\n                // cb is a circuit breaker in the for loop since there's\\n                //  no said feature for inline assembly loops\\n                // cb = 1 - don't breaker\\n                // cb = 0 - break\\n                let cb := 1\\n\\n                let mc := add(_preBytes, 0x20)\\n                let end := add(mc, length)\\n\\n                for {\\n                    let cc := add(_postBytes, 0x20)\\n                    // the next line is the loop condition:\\n                    // while(uint256(mc < end) + cb == 2)\\n                } eq(add(lt(mc, end), cb), 2) {\\n                    mc := add(mc, 0x20)\\n                    cc := add(cc, 0x20)\\n                } {\\n                    // if any of these checks fails then arrays are not equal\\n                    if iszero(eq(mload(mc), mload(cc))) {\\n                        // unsuccess:\\n                        success := 0\\n                        cb := 0\\n                    }\\n                }\\n            }\\n            default {\\n                // unsuccess:\\n                success := 0\\n            }\\n        }\\n\\n        return success;\\n    }\\n\\n    function equalStorage(bytes storage _preBytes, bytes memory _postBytes) internal view returns (bool) {\\n        bool success = true;\\n\\n        assembly {\\n            // we know _preBytes_offset is 0\\n            let fslot := sload(_preBytes.slot)\\n            // Decode the length of the stored array like in concatStorage().\\n            let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n            let mlength := mload(_postBytes)\\n\\n            // if lengths don't match the arrays are not equal\\n            switch eq(slength, mlength)\\n            case 1 {\\n                // slength can contain both the length and contents of the array\\n                // if length < 32 bytes so let's prepare for that\\n                // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n                if iszero(iszero(slength)) {\\n                    switch lt(slength, 32)\\n                    case 1 {\\n                        // blank the last byte which is the length\\n                        fslot := mul(div(fslot, 0x100), 0x100)\\n\\n                        if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\\n                            // unsuccess:\\n                            success := 0\\n                        }\\n                    }\\n                    default {\\n                        // cb is a circuit breaker in the for loop since there's\\n                        //  no said feature for inline assembly loops\\n                        // cb = 1 - don't breaker\\n                        // cb = 0 - break\\n                        let cb := 1\\n\\n                        // get the keccak hash to get the contents of the array\\n                        mstore(0x0, _preBytes.slot)\\n                        let sc := keccak256(0x0, 0x20)\\n\\n                        let mc := add(_postBytes, 0x20)\\n                        let end := add(mc, mlength)\\n\\n                        // the next line is the loop condition:\\n                        // while(uint256(mc < end) + cb == 2)\\n                        for {\\n\\n                        } eq(add(lt(mc, end), cb), 2) {\\n                            sc := add(sc, 1)\\n                            mc := add(mc, 0x20)\\n                        } {\\n                            if iszero(eq(sload(sc), mload(mc))) {\\n                                // unsuccess:\\n                                success := 0\\n                                cb := 0\\n                            }\\n                        }\\n                    }\\n                }\\n            }\\n            default {\\n                // unsuccess:\\n                success := 0\\n            }\\n        }\\n\\n        return success;\\n    }\\n}\\n\",\"keccak256\":\"0x7e64cccdf22a03f513d94960f2145dd801fb5ec88d971de079b5186a9f5e93c4\",\"license\":\"Unlicense\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/solidity-examples/contracts/libraries/ExcessivelySafeCall.sol":{"ExcessivelySafeCall":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201541fd585a298da9c0ad80d598c8564f9d308cdd6275ac5edae76fc8393f3fe164736f6c63430008190033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ISZERO COINBASE REVERT PC GAS 0x29 DUP14 0xA9 0xC0 0xAD DUP1 0xD5 SWAP9 0xC8 JUMP 0x4F SWAP14 ADDRESS DUP13 0xDD PUSH3 0x75AC5E 0xDA 0xE7 PUSH16 0xC8393F3FE164736F6C63430008190033 ","sourceMap":"72:5387:17:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;72:5387:17;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201541fd585a298da9c0ad80d598c8564f9d308cdd6275ac5edae76fc8393f3fe164736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ISZERO COINBASE REVERT PC GAS 0x29 DUP14 0xA9 0xC0 0xAD DUP1 0xD5 SWAP9 0xC8 JUMP 0x4F SWAP14 ADDRESS DUP13 0xDD PUSH3 0x75AC5E 0xDA 0xE7 PUSH16 0xC8393F3FE164736F6C63430008190033 ","sourceMap":"72:5387:17:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"excessivelySafeCall(address,uint256,uint16,bytes memory)":"infinite","excessivelySafeStaticCall(address,uint256,uint16,bytes memory)":"infinite","swapSelector(bytes4,bytes memory)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/libraries/ExcessivelySafeCall.sol\":\"ExcessivelySafeCall\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/libraries/ExcessivelySafeCall.sol\":{\"content\":\"// SPDX-License-Identifier: MIT OR Apache-2.0\\npragma solidity >=0.7.6;\\n\\nlibrary ExcessivelySafeCall {\\n    uint constant LOW_28_MASK = 0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff;\\n\\n    /// @notice Use when you _really_ really _really_ don't trust the called\\n    /// contract. This prevents the called contract from causing reversion of\\n    /// the caller in as many ways as we can.\\n    /// @dev The main difference between this and a solidity low-level call is\\n    /// that we limit the number of bytes that the callee can cause to be\\n    /// copied to caller memory. This prevents stupid things like malicious\\n    /// contracts returning 10,000,000 bytes causing a local OOG when copying\\n    /// to memory.\\n    /// @param _target The address to call\\n    /// @param _gas The amount of gas to forward to the remote contract\\n    /// @param _maxCopy The maximum number of bytes of returndata to copy\\n    /// to memory.\\n    /// @param _calldata The data to send to the remote contract\\n    /// @return success and returndata, as `.call()`. Returndata is capped to\\n    /// `_maxCopy` bytes.\\n    function excessivelySafeCall(\\n        address _target,\\n        uint _gas,\\n        uint16 _maxCopy,\\n        bytes memory _calldata\\n    ) internal returns (bool, bytes memory) {\\n        // set up for assembly call\\n        uint _toCopy;\\n        bool _success;\\n        bytes memory _returnData = new bytes(_maxCopy);\\n        // dispatch message to recipient\\n        // by assembly calling \\\"handle\\\" function\\n        // we call via assembly to avoid memcopying a very large returndata\\n        // returned by a malicious contract\\n        assembly {\\n            _success := call(\\n                _gas, // gas\\n                _target, // recipient\\n                0, // ether value\\n                add(_calldata, 0x20), // inloc\\n                mload(_calldata), // inlen\\n                0, // outloc\\n                0 // outlen\\n            )\\n            // limit our copy to 256 bytes\\n            _toCopy := returndatasize()\\n            if gt(_toCopy, _maxCopy) {\\n                _toCopy := _maxCopy\\n            }\\n            // Store the length of the copied bytes\\n            mstore(_returnData, _toCopy)\\n            // copy the bytes from returndata[0:_toCopy]\\n            returndatacopy(add(_returnData, 0x20), 0, _toCopy)\\n        }\\n        return (_success, _returnData);\\n    }\\n\\n    /// @notice Use when you _really_ really _really_ don't trust the called\\n    /// contract. This prevents the called contract from causing reversion of\\n    /// the caller in as many ways as we can.\\n    /// @dev The main difference between this and a solidity low-level call is\\n    /// that we limit the number of bytes that the callee can cause to be\\n    /// copied to caller memory. This prevents stupid things like malicious\\n    /// contracts returning 10,000,000 bytes causing a local OOG when copying\\n    /// to memory.\\n    /// @param _target The address to call\\n    /// @param _gas The amount of gas to forward to the remote contract\\n    /// @param _maxCopy The maximum number of bytes of returndata to copy\\n    /// to memory.\\n    /// @param _calldata The data to send to the remote contract\\n    /// @return success and returndata, as `.call()`. Returndata is capped to\\n    /// `_maxCopy` bytes.\\n    function excessivelySafeStaticCall(\\n        address _target,\\n        uint _gas,\\n        uint16 _maxCopy,\\n        bytes memory _calldata\\n    ) internal view returns (bool, bytes memory) {\\n        // set up for assembly call\\n        uint _toCopy;\\n        bool _success;\\n        bytes memory _returnData = new bytes(_maxCopy);\\n        // dispatch message to recipient\\n        // by assembly calling \\\"handle\\\" function\\n        // we call via assembly to avoid memcopying a very large returndata\\n        // returned by a malicious contract\\n        assembly {\\n            _success := staticcall(\\n                _gas, // gas\\n                _target, // recipient\\n                add(_calldata, 0x20), // inloc\\n                mload(_calldata), // inlen\\n                0, // outloc\\n                0 // outlen\\n            )\\n            // limit our copy to 256 bytes\\n            _toCopy := returndatasize()\\n            if gt(_toCopy, _maxCopy) {\\n                _toCopy := _maxCopy\\n            }\\n            // Store the length of the copied bytes\\n            mstore(_returnData, _toCopy)\\n            // copy the bytes from returndata[0:_toCopy]\\n            returndatacopy(add(_returnData, 0x20), 0, _toCopy)\\n        }\\n        return (_success, _returnData);\\n    }\\n\\n    /**\\n     * @notice Swaps function selectors in encoded contract calls\\n     * @dev Allows reuse of encoded calldata for functions with identical\\n     * argument types but different names. It simply swaps out the first 4 bytes\\n     * for the new selector. This function modifies memory in place, and should\\n     * only be used with caution.\\n     * @param _newSelector The new 4-byte selector\\n     * @param _buf The encoded contract args\\n     */\\n    function swapSelector(bytes4 _newSelector, bytes memory _buf) internal pure {\\n        require(_buf.length >= 4);\\n        uint _mask = LOW_28_MASK;\\n        assembly {\\n            // load the first word of\\n            let _word := mload(add(_buf, 0x20))\\n            // mask out the top 4 bytes\\n            // /x\\n            _word := and(_word, _mask)\\n            _word := or(_newSelector, _word)\\n            mstore(add(_buf, 0x20), _word)\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xd4e52af409b5ec80432292d86fb01906785eb78ac31da3bab4565aabcd6e3e56\",\"license\":\"MIT OR Apache-2.0\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol":{"LzApp":{"abi":[{"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":"uint16","name":"_dstChainId","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"_type","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"_minDstGas","type":"uint256"}],"name":"SetMinDstGas","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"precrime","type":"address"}],"name":"SetPrecrime","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_path","type":"bytes"}],"name":"SetTrustedRemote","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_remoteAddress","type":"bytes"}],"name":"SetTrustedRemoteAddress","type":"event"},{"inputs":[],"name":"DEFAULT_PAYLOAD_SIZE_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"forceResumeReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"_configType","type":"uint256"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"}],"name":"getTrustedRemoteAddress","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"isTrustedRemote","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lzEndpoint","outputs":[{"internalType":"contract ILayerZeroEndpoint","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"lzReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"}],"name":"minDstGasLookup","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":"uint16","name":"","type":"uint16"}],"name":"payloadSizeLimitLookup","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"precrime","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"uint256","name":"_configType","type":"uint256"},{"internalType":"bytes","name":"_config","type":"bytes"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"uint16","name":"_packetType","type":"uint16"},{"internalType":"uint256","name":"_minGas","type":"uint256"}],"name":"setMinDstGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"uint256","name":"_size","type":"uint256"}],"name":"setPayloadSizeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_precrime","type":"address"}],"name":"setPrecrime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setReceiveVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setSendVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"}],"name":"setTrustedRemote","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"internalType":"bytes","name":"_remoteAddress","type":"bytes"}],"name":"setTrustedRemoteAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"trustedRemoteLookup","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"DEFAULT_PAYLOAD_SIZE_LIMIT()":"c4461834","forceResumeReceive(uint16,bytes)":"42d65a8d","getConfig(uint16,uint16,address,uint256)":"f5ecbdbc","getTrustedRemoteAddress(uint16)":"9f38369a","isTrustedRemote(uint16,bytes)":"3d8b38f6","lzEndpoint()":"b353aaa7","lzReceive(uint16,bytes,uint64,bytes)":"001d3567","minDstGasLookup(uint16,uint16)":"8cfd8f5c","owner()":"8da5cb5b","payloadSizeLimitLookup(uint16)":"3f1f4fa4","precrime()":"950c8a74","renounceOwnership()":"715018a6","setConfig(uint16,uint16,uint256,bytes)":"cbed8b9c","setMinDstGas(uint16,uint16,uint256)":"df2a5b3b","setPayloadSizeLimit(uint16,uint256)":"0df37483","setPrecrime(address)":"baf3292d","setReceiveVersion(uint16)":"10ddb137","setSendVersion(uint16)":"07e0db17","setTrustedRemote(uint16,bytes)":"eb8d72b7","setTrustedRemoteAddress(uint16,bytes)":"a6c3d165","transferOwnership(address)":"f2fde38b","trustedRemoteLookup(uint16)":"7533d788"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_type\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_minDstGas\",\"type\":\"uint256\"}],\"name\":\"SetMinDstGas\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"precrime\",\"type\":\"address\"}],\"name\":\"SetPrecrime\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemote\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_remoteAddress\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemoteAddress\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_PAYLOAD_SIZE_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"forceResumeReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"}],\"name\":\"getTrustedRemoteAddress\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"isTrustedRemote\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lzEndpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpoint\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"minDstGasLookup\",\"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\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"payloadSizeLimitLookup\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"precrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_config\",\"type\":\"bytes\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_packetType\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_minGas\",\"type\":\"uint256\"}],\"name\":\"setMinDstGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_size\",\"type\":\"uint256\"}],\"name\":\"setPayloadSizeLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_precrime\",\"type\":\"address\"}],\"name\":\"setPrecrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setReceiveVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setSendVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_remoteAddress\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemoteAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"trustedRemoteLookup\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol\":\"LzApp\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/libraries/BytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: Unlicense\\n/*\\n * @title Solidity Bytes Arrays Utils\\n * @author Gon\\u00e7alo S\\u00e1 <goncalo.sa@consensys.net>\\n *\\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\\n *      The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\\n */\\npragma solidity >=0.8.0 <0.9.0;\\n\\nlibrary BytesLib {\\n    function concat(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bytes memory) {\\n        bytes memory tempBytes;\\n\\n        assembly {\\n            // Get a location of some free memory and store it in tempBytes as\\n            // Solidity does for memory variables.\\n            tempBytes := mload(0x40)\\n\\n            // Store the length of the first bytes array at the beginning of\\n            // the memory for tempBytes.\\n            let length := mload(_preBytes)\\n            mstore(tempBytes, length)\\n\\n            // Maintain a memory counter for the current write location in the\\n            // temp bytes array by adding the 32 bytes for the array length to\\n            // the starting location.\\n            let mc := add(tempBytes, 0x20)\\n            // Stop copying when the memory counter reaches the length of the\\n            // first bytes array.\\n            let end := add(mc, length)\\n\\n            for {\\n                // Initialize a copy counter to the start of the _preBytes data,\\n                // 32 bytes into its memory.\\n                let cc := add(_preBytes, 0x20)\\n            } lt(mc, end) {\\n                // Increase both counters by 32 bytes each iteration.\\n                mc := add(mc, 0x20)\\n                cc := add(cc, 0x20)\\n            } {\\n                // Write the _preBytes data into the tempBytes memory 32 bytes\\n                // at a time.\\n                mstore(mc, mload(cc))\\n            }\\n\\n            // Add the length of _postBytes to the current length of tempBytes\\n            // and store it as the new length in the first 32 bytes of the\\n            // tempBytes memory.\\n            length := mload(_postBytes)\\n            mstore(tempBytes, add(length, mload(tempBytes)))\\n\\n            // Move the memory counter back from a multiple of 0x20 to the\\n            // actual end of the _preBytes data.\\n            mc := end\\n            // Stop copying when the memory counter reaches the new combined\\n            // length of the arrays.\\n            end := add(mc, length)\\n\\n            for {\\n                let cc := add(_postBytes, 0x20)\\n            } lt(mc, end) {\\n                mc := add(mc, 0x20)\\n                cc := add(cc, 0x20)\\n            } {\\n                mstore(mc, mload(cc))\\n            }\\n\\n            // Update the free-memory pointer by padding our last write location\\n            // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\\n            // next 32 byte block, then round down to the nearest multiple of\\n            // 32. If the sum of the length of the two arrays is zero then add\\n            // one before rounding down to leave a blank 32 bytes (the length block with 0).\\n            mstore(\\n                0x40,\\n                and(\\n                    add(add(end, iszero(add(length, mload(_preBytes)))), 31),\\n                    not(31) // Round down to the nearest 32 bytes.\\n                )\\n            )\\n        }\\n\\n        return tempBytes;\\n    }\\n\\n    function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\\n        assembly {\\n            // Read the first 32 bytes of _preBytes storage, which is the length\\n            // of the array. (We don't need to use the offset into the slot\\n            // because arrays use the entire slot.)\\n            let fslot := sload(_preBytes.slot)\\n            // Arrays of 31 bytes or less have an even value in their slot,\\n            // while longer arrays have an odd value. The actual length is\\n            // the slot divided by two for odd values, and the lowest order\\n            // byte divided by two for even values.\\n            // If the slot is even, bitwise and the slot with 255 and divide by\\n            // two to get the length. If the slot is odd, bitwise and the slot\\n            // with -1 and divide by two.\\n            let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n            let mlength := mload(_postBytes)\\n            let newlength := add(slength, mlength)\\n            // slength can contain both the length and contents of the array\\n            // if length < 32 bytes so let's prepare for that\\n            // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n            switch add(lt(slength, 32), lt(newlength, 32))\\n            case 2 {\\n                // Since the new array still fits in the slot, we just need to\\n                // update the contents of the slot.\\n                // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\\n                sstore(\\n                    _preBytes.slot,\\n                    // all the modifications to the slot are inside this\\n                    // next block\\n                    add(\\n                        // we can just add to the slot contents because the\\n                        // bytes we want to change are the LSBs\\n                        fslot,\\n                        add(\\n                            mul(\\n                                div(\\n                                    // load the bytes from memory\\n                                    mload(add(_postBytes, 0x20)),\\n                                    // zero all bytes to the right\\n                                    exp(0x100, sub(32, mlength))\\n                                ),\\n                                // and now shift left the number of bytes to\\n                                // leave space for the length in the slot\\n                                exp(0x100, sub(32, newlength))\\n                            ),\\n                            // increase length by the double of the memory\\n                            // bytes length\\n                            mul(mlength, 2)\\n                        )\\n                    )\\n                )\\n            }\\n            case 1 {\\n                // The stored value fits in the slot, but the combined value\\n                // will exceed it.\\n                // get the keccak hash to get the contents of the array\\n                mstore(0x0, _preBytes.slot)\\n                let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n                // save new length\\n                sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n                // The contents of the _postBytes array start 32 bytes into\\n                // the structure. Our first read should obtain the `submod`\\n                // bytes that can fit into the unused space in the last word\\n                // of the stored array. To get this, we read 32 bytes starting\\n                // from `submod`, so the data we read overlaps with the array\\n                // contents by `submod` bytes. Masking the lowest-order\\n                // `submod` bytes allows us to add that value directly to the\\n                // stored value.\\n\\n                let submod := sub(32, slength)\\n                let mc := add(_postBytes, submod)\\n                let end := add(_postBytes, mlength)\\n                let mask := sub(exp(0x100, submod), 1)\\n\\n                sstore(sc, add(and(fslot, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00), and(mload(mc), mask)))\\n\\n                for {\\n                    mc := add(mc, 0x20)\\n                    sc := add(sc, 1)\\n                } lt(mc, end) {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } {\\n                    sstore(sc, mload(mc))\\n                }\\n\\n                mask := exp(0x100, sub(mc, end))\\n\\n                sstore(sc, mul(div(mload(mc), mask), mask))\\n            }\\n            default {\\n                // get the keccak hash to get the contents of the array\\n                mstore(0x0, _preBytes.slot)\\n                // Start copying to the last used word of the stored array.\\n                let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n                // save new length\\n                sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n                // Copy over the first `submod` bytes of the new data as in\\n                // case 1 above.\\n                let slengthmod := mod(slength, 32)\\n                let mlengthmod := mod(mlength, 32)\\n                let submod := sub(32, slengthmod)\\n                let mc := add(_postBytes, submod)\\n                let end := add(_postBytes, mlength)\\n                let mask := sub(exp(0x100, submod), 1)\\n\\n                sstore(sc, add(sload(sc), and(mload(mc), mask)))\\n\\n                for {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } lt(mc, end) {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } {\\n                    sstore(sc, mload(mc))\\n                }\\n\\n                mask := exp(0x100, sub(mc, end))\\n\\n                sstore(sc, mul(div(mload(mc), mask), mask))\\n            }\\n        }\\n    }\\n\\n    function slice(\\n        bytes memory _bytes,\\n        uint _start,\\n        uint _length\\n    ) internal pure returns (bytes memory) {\\n        require(_length + 31 >= _length, \\\"slice_overflow\\\");\\n        require(_bytes.length >= _start + _length, \\\"slice_outOfBounds\\\");\\n\\n        bytes memory tempBytes;\\n\\n        assembly {\\n            switch iszero(_length)\\n            case 0 {\\n                // Get a location of some free memory and store it in tempBytes as\\n                // Solidity does for memory variables.\\n                tempBytes := mload(0x40)\\n\\n                // The first word of the slice result is potentially a partial\\n                // word read from the original array. To read it, we calculate\\n                // the length of that partial word and start copying that many\\n                // bytes into the array. The first word we copy will start with\\n                // data we don't care about, but the last `lengthmod` bytes will\\n                // land at the beginning of the contents of the new array. When\\n                // we're done copying, we overwrite the full first word with\\n                // the actual length of the slice.\\n                let lengthmod := and(_length, 31)\\n\\n                // The multiplication in the next line is necessary\\n                // because when slicing multiples of 32 bytes (lengthmod == 0)\\n                // the following copy loop was copying the origin's length\\n                // and then ending prematurely not copying everything it should.\\n                let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\\n                let end := add(mc, _length)\\n\\n                for {\\n                    // The multiplication in the next line has the same exact purpose\\n                    // as the one above.\\n                    let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\\n                } lt(mc, end) {\\n                    mc := add(mc, 0x20)\\n                    cc := add(cc, 0x20)\\n                } {\\n                    mstore(mc, mload(cc))\\n                }\\n\\n                mstore(tempBytes, _length)\\n\\n                //update free-memory pointer\\n                //allocating the array padded to 32 bytes like the compiler does now\\n                mstore(0x40, and(add(mc, 31), not(31)))\\n            }\\n            //if we want a zero-length slice let's just return a zero-length array\\n            default {\\n                tempBytes := mload(0x40)\\n                //zero out the 32 bytes slice we are about to return\\n                //we need to do it because Solidity does not garbage collect\\n                mstore(tempBytes, 0)\\n\\n                mstore(0x40, add(tempBytes, 0x20))\\n            }\\n        }\\n\\n        return tempBytes;\\n    }\\n\\n    function toAddress(bytes memory _bytes, uint _start) internal pure returns (address) {\\n        require(_bytes.length >= _start + 20, \\\"toAddress_outOfBounds\\\");\\n        address tempAddress;\\n\\n        assembly {\\n            tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\\n        }\\n\\n        return tempAddress;\\n    }\\n\\n    function toUint8(bytes memory _bytes, uint _start) internal pure returns (uint8) {\\n        require(_bytes.length >= _start + 1, \\\"toUint8_outOfBounds\\\");\\n        uint8 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x1), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint16(bytes memory _bytes, uint _start) internal pure returns (uint16) {\\n        require(_bytes.length >= _start + 2, \\\"toUint16_outOfBounds\\\");\\n        uint16 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x2), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint32(bytes memory _bytes, uint _start) internal pure returns (uint32) {\\n        require(_bytes.length >= _start + 4, \\\"toUint32_outOfBounds\\\");\\n        uint32 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x4), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint64(bytes memory _bytes, uint _start) internal pure returns (uint64) {\\n        require(_bytes.length >= _start + 8, \\\"toUint64_outOfBounds\\\");\\n        uint64 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x8), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint96(bytes memory _bytes, uint _start) internal pure returns (uint96) {\\n        require(_bytes.length >= _start + 12, \\\"toUint96_outOfBounds\\\");\\n        uint96 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0xc), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint128(bytes memory _bytes, uint _start) internal pure returns (uint128) {\\n        require(_bytes.length >= _start + 16, \\\"toUint128_outOfBounds\\\");\\n        uint128 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x10), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint256(bytes memory _bytes, uint _start) internal pure returns (uint) {\\n        require(_bytes.length >= _start + 32, \\\"toUint256_outOfBounds\\\");\\n        uint tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x20), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toBytes32(bytes memory _bytes, uint _start) internal pure returns (bytes32) {\\n        require(_bytes.length >= _start + 32, \\\"toBytes32_outOfBounds\\\");\\n        bytes32 tempBytes32;\\n\\n        assembly {\\n            tempBytes32 := mload(add(add(_bytes, 0x20), _start))\\n        }\\n\\n        return tempBytes32;\\n    }\\n\\n    function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\\n        bool success = true;\\n\\n        assembly {\\n            let length := mload(_preBytes)\\n\\n            // if lengths don't match the arrays are not equal\\n            switch eq(length, mload(_postBytes))\\n            case 1 {\\n                // cb is a circuit breaker in the for loop since there's\\n                //  no said feature for inline assembly loops\\n                // cb = 1 - don't breaker\\n                // cb = 0 - break\\n                let cb := 1\\n\\n                let mc := add(_preBytes, 0x20)\\n                let end := add(mc, length)\\n\\n                for {\\n                    let cc := add(_postBytes, 0x20)\\n                    // the next line is the loop condition:\\n                    // while(uint256(mc < end) + cb == 2)\\n                } eq(add(lt(mc, end), cb), 2) {\\n                    mc := add(mc, 0x20)\\n                    cc := add(cc, 0x20)\\n                } {\\n                    // if any of these checks fails then arrays are not equal\\n                    if iszero(eq(mload(mc), mload(cc))) {\\n                        // unsuccess:\\n                        success := 0\\n                        cb := 0\\n                    }\\n                }\\n            }\\n            default {\\n                // unsuccess:\\n                success := 0\\n            }\\n        }\\n\\n        return success;\\n    }\\n\\n    function equalStorage(bytes storage _preBytes, bytes memory _postBytes) internal view returns (bool) {\\n        bool success = true;\\n\\n        assembly {\\n            // we know _preBytes_offset is 0\\n            let fslot := sload(_preBytes.slot)\\n            // Decode the length of the stored array like in concatStorage().\\n            let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n            let mlength := mload(_postBytes)\\n\\n            // if lengths don't match the arrays are not equal\\n            switch eq(slength, mlength)\\n            case 1 {\\n                // slength can contain both the length and contents of the array\\n                // if length < 32 bytes so let's prepare for that\\n                // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n                if iszero(iszero(slength)) {\\n                    switch lt(slength, 32)\\n                    case 1 {\\n                        // blank the last byte which is the length\\n                        fslot := mul(div(fslot, 0x100), 0x100)\\n\\n                        if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\\n                            // unsuccess:\\n                            success := 0\\n                        }\\n                    }\\n                    default {\\n                        // cb is a circuit breaker in the for loop since there's\\n                        //  no said feature for inline assembly loops\\n                        // cb = 1 - don't breaker\\n                        // cb = 0 - break\\n                        let cb := 1\\n\\n                        // get the keccak hash to get the contents of the array\\n                        mstore(0x0, _preBytes.slot)\\n                        let sc := keccak256(0x0, 0x20)\\n\\n                        let mc := add(_postBytes, 0x20)\\n                        let end := add(mc, mlength)\\n\\n                        // the next line is the loop condition:\\n                        // while(uint256(mc < end) + cb == 2)\\n                        for {\\n\\n                        } eq(add(lt(mc, end), cb), 2) {\\n                            sc := add(sc, 1)\\n                            mc := add(mc, 0x20)\\n                        } {\\n                            if iszero(eq(sload(sc), mload(mc))) {\\n                                // unsuccess:\\n                                success := 0\\n                                cb := 0\\n                            }\\n                        }\\n                    }\\n                }\\n            }\\n            default {\\n                // unsuccess:\\n                success := 0\\n            }\\n        }\\n\\n        return success;\\n    }\\n}\\n\",\"keccak256\":\"0x7e64cccdf22a03f513d94960f2145dd801fb5ec88d971de079b5186a9f5e93c4\",\"license\":\"Unlicense\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport \\\"./interfaces/ILayerZeroReceiver.sol\\\";\\nimport \\\"./interfaces/ILayerZeroUserApplicationConfig.sol\\\";\\nimport \\\"./interfaces/ILayerZeroEndpoint.sol\\\";\\nimport \\\"../libraries/BytesLib.sol\\\";\\n\\n/*\\n * a generic LzReceiver implementation\\n */\\nabstract contract LzApp is Ownable, ILayerZeroReceiver, ILayerZeroUserApplicationConfig {\\n    using BytesLib for bytes;\\n\\n    // ua can not send payload larger than this by default, but it can be changed by the ua owner\\n    uint public constant DEFAULT_PAYLOAD_SIZE_LIMIT = 10000;\\n\\n    ILayerZeroEndpoint public immutable lzEndpoint;\\n    mapping(uint16 => bytes) public trustedRemoteLookup;\\n    mapping(uint16 => mapping(uint16 => uint)) public minDstGasLookup;\\n    mapping(uint16 => uint) public payloadSizeLimitLookup;\\n    address public precrime;\\n\\n    event SetPrecrime(address precrime);\\n    event SetTrustedRemote(uint16 _remoteChainId, bytes _path);\\n    event SetTrustedRemoteAddress(uint16 _remoteChainId, bytes _remoteAddress);\\n    event SetMinDstGas(uint16 _dstChainId, uint16 _type, uint _minDstGas);\\n\\n    constructor(address _endpoint) {\\n        lzEndpoint = ILayerZeroEndpoint(_endpoint);\\n    }\\n\\n    function lzReceive(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) public virtual override {\\n        // lzReceive must be called by the endpoint for security\\n        require(_msgSender() == address(lzEndpoint), \\\"LzApp: invalid endpoint caller\\\");\\n\\n        bytes memory trustedRemote = trustedRemoteLookup[_srcChainId];\\n        // if will still block the message pathway from (srcChainId, srcAddress). should not receive message from untrusted remote.\\n        require(\\n            _srcAddress.length == trustedRemote.length && trustedRemote.length > 0 && keccak256(_srcAddress) == keccak256(trustedRemote),\\n            \\\"LzApp: invalid source sending contract\\\"\\n        );\\n\\n        _blockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n    }\\n\\n    // abstract function - the default behaviour of LayerZero is blocking. See: NonblockingLzApp if you dont need to enforce ordered messaging\\n    function _blockingLzReceive(\\n        uint16 _srcChainId,\\n        bytes memory _srcAddress,\\n        uint64 _nonce,\\n        bytes memory _payload\\n    ) internal virtual;\\n\\n    function _lzSend(\\n        uint16 _dstChainId,\\n        bytes memory _payload,\\n        address payable _refundAddress,\\n        address _zroPaymentAddress,\\n        bytes memory _adapterParams,\\n        uint _nativeFee\\n    ) internal virtual {\\n        bytes memory trustedRemote = trustedRemoteLookup[_dstChainId];\\n        require(trustedRemote.length != 0, \\\"LzApp: destination chain is not a trusted source\\\");\\n        _checkPayloadSize(_dstChainId, _payload.length);\\n        lzEndpoint.send{value: _nativeFee}(_dstChainId, trustedRemote, _payload, _refundAddress, _zroPaymentAddress, _adapterParams);\\n    }\\n\\n    function _checkGasLimit(\\n        uint16 _dstChainId,\\n        uint16 _type,\\n        bytes memory _adapterParams,\\n        uint _extraGas\\n    ) internal view virtual {\\n        uint providedGasLimit = _getGasLimit(_adapterParams);\\n        uint minGasLimit = minDstGasLookup[_dstChainId][_type];\\n        require(minGasLimit > 0, \\\"LzApp: minGasLimit not set\\\");\\n        require(providedGasLimit >= minGasLimit + _extraGas, \\\"LzApp: gas limit is too low\\\");\\n    }\\n\\n    function _getGasLimit(bytes memory _adapterParams) internal pure virtual returns (uint gasLimit) {\\n        require(_adapterParams.length >= 34, \\\"LzApp: invalid adapterParams\\\");\\n        assembly {\\n            gasLimit := mload(add(_adapterParams, 34))\\n        }\\n    }\\n\\n    function _checkPayloadSize(uint16 _dstChainId, uint _payloadSize) internal view virtual {\\n        uint payloadSizeLimit = payloadSizeLimitLookup[_dstChainId];\\n        if (payloadSizeLimit == 0) {\\n            // use default if not set\\n            payloadSizeLimit = DEFAULT_PAYLOAD_SIZE_LIMIT;\\n        }\\n        require(_payloadSize <= payloadSizeLimit, \\\"LzApp: payload size is too large\\\");\\n    }\\n\\n    //---------------------------UserApplication config----------------------------------------\\n    function getConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        address,\\n        uint _configType\\n    ) external view returns (bytes memory) {\\n        return lzEndpoint.getConfig(_version, _chainId, address(this), _configType);\\n    }\\n\\n    // generic config for LayerZero user Application\\n    function setConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        uint _configType,\\n        bytes calldata _config\\n    ) external override onlyOwner {\\n        lzEndpoint.setConfig(_version, _chainId, _configType, _config);\\n    }\\n\\n    function setSendVersion(uint16 _version) external override onlyOwner {\\n        lzEndpoint.setSendVersion(_version);\\n    }\\n\\n    function setReceiveVersion(uint16 _version) external override onlyOwner {\\n        lzEndpoint.setReceiveVersion(_version);\\n    }\\n\\n    function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external override onlyOwner {\\n        lzEndpoint.forceResumeReceive(_srcChainId, _srcAddress);\\n    }\\n\\n    // _path = abi.encodePacked(remoteAddress, localAddress)\\n    // this function set the trusted path for the cross-chain communication\\n    function setTrustedRemote(uint16 _remoteChainId, bytes calldata _path) external onlyOwner {\\n        trustedRemoteLookup[_remoteChainId] = _path;\\n        emit SetTrustedRemote(_remoteChainId, _path);\\n    }\\n\\n    function setTrustedRemoteAddress(uint16 _remoteChainId, bytes calldata _remoteAddress) external onlyOwner {\\n        trustedRemoteLookup[_remoteChainId] = abi.encodePacked(_remoteAddress, address(this));\\n        emit SetTrustedRemoteAddress(_remoteChainId, _remoteAddress);\\n    }\\n\\n    function getTrustedRemoteAddress(uint16 _remoteChainId) external view returns (bytes memory) {\\n        bytes memory path = trustedRemoteLookup[_remoteChainId];\\n        require(path.length != 0, \\\"LzApp: no trusted path record\\\");\\n        return path.slice(0, path.length - 20); // the last 20 bytes should be address(this)\\n    }\\n\\n    function setPrecrime(address _precrime) external onlyOwner {\\n        precrime = _precrime;\\n        emit SetPrecrime(_precrime);\\n    }\\n\\n    function setMinDstGas(\\n        uint16 _dstChainId,\\n        uint16 _packetType,\\n        uint _minGas\\n    ) external onlyOwner {\\n        minDstGasLookup[_dstChainId][_packetType] = _minGas;\\n        emit SetMinDstGas(_dstChainId, _packetType, _minGas);\\n    }\\n\\n    // if the size is 0, it means default size limit\\n    function setPayloadSizeLimit(uint16 _dstChainId, uint _size) external onlyOwner {\\n        payloadSizeLimitLookup[_dstChainId] = _size;\\n    }\\n\\n    //--------------------------- VIEW FUNCTION ----------------------------------------\\n    function isTrustedRemote(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool) {\\n        bytes memory trustedSource = trustedRemoteLookup[_srcChainId];\\n        return keccak256(trustedSource) == keccak256(_srcAddress);\\n    }\\n}\\n\",\"keccak256\":\"0x309c994bdcf69ad63c6789694a28eb72a773e2d9db58fe572ab2b34a475972ce\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroEndpoint.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"./ILayerZeroUserApplicationConfig.sol\\\";\\n\\ninterface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig {\\n    // @notice send a LayerZero message to the specified address at a LayerZero endpoint.\\n    // @param _dstChainId - the destination chain identifier\\n    // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains\\n    // @param _payload - a custom bytes payload to send to the destination contract\\n    // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address\\n    // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction\\n    // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination\\n    function send(\\n        uint16 _dstChainId,\\n        bytes calldata _destination,\\n        bytes calldata _payload,\\n        address payable _refundAddress,\\n        address _zroPaymentAddress,\\n        bytes calldata _adapterParams\\n    ) external payable;\\n\\n    // @notice used by the messaging library to publish verified payload\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source contract (as bytes) at the source chain\\n    // @param _dstAddress - the address on destination chain\\n    // @param _nonce - the unbound message ordering nonce\\n    // @param _gasLimit - the gas limit for external contract execution\\n    // @param _payload - verified payload to send to the destination contract\\n    function receivePayload(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        address _dstAddress,\\n        uint64 _nonce,\\n        uint _gasLimit,\\n        bytes calldata _payload\\n    ) external;\\n\\n    // @notice get the inboundNonce of a lzApp from a source chain which could be EVM or non-EVM chain\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint64);\\n\\n    // @notice get the outboundNonce from this source chain which, consequently, is always an EVM\\n    // @param _srcAddress - the source chain contract address\\n    function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view returns (uint64);\\n\\n    // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery\\n    // @param _dstChainId - the destination chain identifier\\n    // @param _userApplication - the user app address on this EVM chain\\n    // @param _payload - the custom message to send over LayerZero\\n    // @param _payInZRO - if false, user app pays the protocol fee in native token\\n    // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain\\n    function estimateFees(\\n        uint16 _dstChainId,\\n        address _userApplication,\\n        bytes calldata _payload,\\n        bool _payInZRO,\\n        bytes calldata _adapterParam\\n    ) external view returns (uint nativeFee, uint zroFee);\\n\\n    // @notice get this Endpoint's immutable source identifier\\n    function getChainId() external view returns (uint16);\\n\\n    // @notice the interface to retry failed message on this Endpoint destination\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    // @param _payload - the payload to be retried\\n    function retryPayload(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        bytes calldata _payload\\n    ) external;\\n\\n    // @notice query if any STORED payload (message blocking) at the endpoint.\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool);\\n\\n    // @notice query if the _libraryAddress is valid for sending msgs.\\n    // @param _userApplication - the user app address on this EVM chain\\n    function getSendLibraryAddress(address _userApplication) external view returns (address);\\n\\n    // @notice query if the _libraryAddress is valid for receiving msgs.\\n    // @param _userApplication - the user app address on this EVM chain\\n    function getReceiveLibraryAddress(address _userApplication) external view returns (address);\\n\\n    // @notice query if the non-reentrancy guard for send() is on\\n    // @return true if the guard is on. false otherwise\\n    function isSendingPayload() external view returns (bool);\\n\\n    // @notice query if the non-reentrancy guard for receive() is on\\n    // @return true if the guard is on. false otherwise\\n    function isReceivingPayload() external view returns (bool);\\n\\n    // @notice get the configuration of the LayerZero messaging library of the specified version\\n    // @param _version - messaging library version\\n    // @param _chainId - the chainId for the pending config change\\n    // @param _userApplication - the contract address of the user application\\n    // @param _configType - type of configuration. every messaging library has its own convention.\\n    function getConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        address _userApplication,\\n        uint _configType\\n    ) external view returns (bytes memory);\\n\\n    // @notice get the send() LayerZero messaging library version\\n    // @param _userApplication - the contract address of the user application\\n    function getSendVersion(address _userApplication) external view returns (uint16);\\n\\n    // @notice get the lzReceive() LayerZero messaging library version\\n    // @param _userApplication - the contract address of the user application\\n    function getReceiveVersion(address _userApplication) external view returns (uint16);\\n}\\n\",\"keccak256\":\"0xab7fcacc672251c850f00c0abd4100df9afcc4ad70b8d331a2fd4cb07acab9f4\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroReceiver {\\n    // @notice LayerZero endpoint will invoke this function to deliver the message on the destination\\n    // @param _srcChainId - the source endpoint identifier\\n    // @param _srcAddress - the source sending contract address from the source chain\\n    // @param _nonce - the ordered message nonce\\n    // @param _payload - the signed payload is the UA bytes has encoded to be sent\\n    function lzReceive(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) external;\\n}\\n\",\"keccak256\":\"0xac1966c1229bd4dc36b6c69eeb94a537bd9aa2198d7623b9ba7f8f7dbe79bb4c\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroUserApplicationConfig.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroUserApplicationConfig {\\n    // @notice set the configuration of the LayerZero messaging library of the specified version\\n    // @param _version - messaging library version\\n    // @param _chainId - the chainId for the pending config change\\n    // @param _configType - type of configuration. every messaging library has its own convention.\\n    // @param _config - configuration in the bytes. can encode arbitrary content.\\n    function setConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        uint _configType,\\n        bytes calldata _config\\n    ) external;\\n\\n    // @notice set the send() LayerZero messaging library version to _version\\n    // @param _version - new messaging library version\\n    function setSendVersion(uint16 _version) external;\\n\\n    // @notice set the lzReceive() LayerZero messaging library version to _version\\n    // @param _version - new messaging library version\\n    function setReceiveVersion(uint16 _version) external;\\n\\n    // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\\n    // @param _srcChainId - the chainId of the source chain\\n    // @param _srcAddress - the contract address of the source contract at the source chain\\n    function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\\n}\\n\",\"keccak256\":\"0xb4df93aeb0fb46373a4fb728ad2603edc8b9a1577eee8d801768dc115bf96498\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    constructor() {\\n        _transferOwnership(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        _checkOwner();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if the sender is not the owner.\\n     */\\n    function _checkOwner() internal view virtual {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby disabling any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n}\\n\",\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n\\n    function _contextSuffixLength() internal view virtual returns (uint256) {\\n        return 0;\\n    }\\n}\\n\",\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":6971,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol:LzApp","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":3351,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol:LzApp","label":"trustedRemoteLookup","offset":0,"slot":"1","type":"t_mapping(t_uint16,t_bytes_storage)"},{"astId":3357,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol:LzApp","label":"minDstGasLookup","offset":0,"slot":"2","type":"t_mapping(t_uint16,t_mapping(t_uint16,t_uint256))"},{"astId":3361,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol:LzApp","label":"payloadSizeLimitLookup","offset":0,"slot":"3","type":"t_mapping(t_uint16,t_uint256)"},{"astId":3363,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol:LzApp","label":"precrime","offset":0,"slot":"4","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_uint16,t_bytes_storage)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => bytes)","numberOfBytes":"32","value":"t_bytes_storage"},"t_mapping(t_uint16,t_mapping(t_uint16,t_uint256))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(uint16 => uint256))","numberOfBytes":"32","value":"t_mapping(t_uint16,t_uint256)"},"t_mapping(t_uint16,t_uint256)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol":{"NonblockingLzApp":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"_nonce","type":"uint64"},{"indexed":false,"internalType":"bytes","name":"_payload","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"_reason","type":"bytes"}],"name":"MessageFailed","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":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"_nonce","type":"uint64"},{"indexed":false,"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"name":"RetryMessageSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"_type","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"_minDstGas","type":"uint256"}],"name":"SetMinDstGas","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"precrime","type":"address"}],"name":"SetPrecrime","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_path","type":"bytes"}],"name":"SetTrustedRemote","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_remoteAddress","type":"bytes"}],"name":"SetTrustedRemoteAddress","type":"event"},{"inputs":[],"name":"DEFAULT_PAYLOAD_SIZE_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"uint64","name":"","type":"uint64"}],"name":"failedMessages","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"forceResumeReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"_configType","type":"uint256"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"}],"name":"getTrustedRemoteAddress","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"isTrustedRemote","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lzEndpoint","outputs":[{"internalType":"contract ILayerZeroEndpoint","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"lzReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"}],"name":"minDstGasLookup","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"nonblockingLzReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"payloadSizeLimitLookup","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"precrime","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"retryMessage","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"uint256","name":"_configType","type":"uint256"},{"internalType":"bytes","name":"_config","type":"bytes"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"uint16","name":"_packetType","type":"uint16"},{"internalType":"uint256","name":"_minGas","type":"uint256"}],"name":"setMinDstGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"uint256","name":"_size","type":"uint256"}],"name":"setPayloadSizeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_precrime","type":"address"}],"name":"setPrecrime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setReceiveVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setSendVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"}],"name":"setTrustedRemote","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"internalType":"bytes","name":"_remoteAddress","type":"bytes"}],"name":"setTrustedRemoteAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"trustedRemoteLookup","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"DEFAULT_PAYLOAD_SIZE_LIMIT()":"c4461834","failedMessages(uint16,bytes,uint64)":"5b8c41e6","forceResumeReceive(uint16,bytes)":"42d65a8d","getConfig(uint16,uint16,address,uint256)":"f5ecbdbc","getTrustedRemoteAddress(uint16)":"9f38369a","isTrustedRemote(uint16,bytes)":"3d8b38f6","lzEndpoint()":"b353aaa7","lzReceive(uint16,bytes,uint64,bytes)":"001d3567","minDstGasLookup(uint16,uint16)":"8cfd8f5c","nonblockingLzReceive(uint16,bytes,uint64,bytes)":"66ad5c8a","owner()":"8da5cb5b","payloadSizeLimitLookup(uint16)":"3f1f4fa4","precrime()":"950c8a74","renounceOwnership()":"715018a6","retryMessage(uint16,bytes,uint64,bytes)":"d1deba1f","setConfig(uint16,uint16,uint256,bytes)":"cbed8b9c","setMinDstGas(uint16,uint16,uint256)":"df2a5b3b","setPayloadSizeLimit(uint16,uint256)":"0df37483","setPrecrime(address)":"baf3292d","setReceiveVersion(uint16)":"10ddb137","setSendVersion(uint16)":"07e0db17","setTrustedRemote(uint16,bytes)":"eb8d72b7","setTrustedRemoteAddress(uint16,bytes)":"a6c3d165","transferOwnership(address)":"f2fde38b","trustedRemoteLookup(uint16)":"7533d788"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_reason\",\"type\":\"bytes\"}],\"name\":\"MessageFailed\",\"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\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"RetryMessageSuccess\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_type\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_minDstGas\",\"type\":\"uint256\"}],\"name\":\"SetMinDstGas\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"precrime\",\"type\":\"address\"}],\"name\":\"SetPrecrime\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemote\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_remoteAddress\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemoteAddress\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_PAYLOAD_SIZE_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"failedMessages\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"forceResumeReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"}],\"name\":\"getTrustedRemoteAddress\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"isTrustedRemote\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lzEndpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpoint\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"minDstGasLookup\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"nonblockingLzReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"payloadSizeLimitLookup\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"precrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"retryMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_config\",\"type\":\"bytes\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_packetType\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_minGas\",\"type\":\"uint256\"}],\"name\":\"setMinDstGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_size\",\"type\":\"uint256\"}],\"name\":\"setPayloadSizeLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_precrime\",\"type\":\"address\"}],\"name\":\"setPrecrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setReceiveVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setSendVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_remoteAddress\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemoteAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"trustedRemoteLookup\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol\":\"NonblockingLzApp\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/libraries/BytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: Unlicense\\n/*\\n * @title Solidity Bytes Arrays Utils\\n * @author Gon\\u00e7alo S\\u00e1 <goncalo.sa@consensys.net>\\n *\\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\\n *      The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\\n */\\npragma solidity >=0.8.0 <0.9.0;\\n\\nlibrary BytesLib {\\n    function concat(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bytes memory) {\\n        bytes memory tempBytes;\\n\\n        assembly {\\n            // Get a location of some free memory and store it in tempBytes as\\n            // Solidity does for memory variables.\\n            tempBytes := mload(0x40)\\n\\n            // Store the length of the first bytes array at the beginning of\\n            // the memory for tempBytes.\\n            let length := mload(_preBytes)\\n            mstore(tempBytes, length)\\n\\n            // Maintain a memory counter for the current write location in the\\n            // temp bytes array by adding the 32 bytes for the array length to\\n            // the starting location.\\n            let mc := add(tempBytes, 0x20)\\n            // Stop copying when the memory counter reaches the length of the\\n            // first bytes array.\\n            let end := add(mc, length)\\n\\n            for {\\n                // Initialize a copy counter to the start of the _preBytes data,\\n                // 32 bytes into its memory.\\n                let cc := add(_preBytes, 0x20)\\n            } lt(mc, end) {\\n                // Increase both counters by 32 bytes each iteration.\\n                mc := add(mc, 0x20)\\n                cc := add(cc, 0x20)\\n            } {\\n                // Write the _preBytes data into the tempBytes memory 32 bytes\\n                // at a time.\\n                mstore(mc, mload(cc))\\n            }\\n\\n            // Add the length of _postBytes to the current length of tempBytes\\n            // and store it as the new length in the first 32 bytes of the\\n            // tempBytes memory.\\n            length := mload(_postBytes)\\n            mstore(tempBytes, add(length, mload(tempBytes)))\\n\\n            // Move the memory counter back from a multiple of 0x20 to the\\n            // actual end of the _preBytes data.\\n            mc := end\\n            // Stop copying when the memory counter reaches the new combined\\n            // length of the arrays.\\n            end := add(mc, length)\\n\\n            for {\\n                let cc := add(_postBytes, 0x20)\\n            } lt(mc, end) {\\n                mc := add(mc, 0x20)\\n                cc := add(cc, 0x20)\\n            } {\\n                mstore(mc, mload(cc))\\n            }\\n\\n            // Update the free-memory pointer by padding our last write location\\n            // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\\n            // next 32 byte block, then round down to the nearest multiple of\\n            // 32. If the sum of the length of the two arrays is zero then add\\n            // one before rounding down to leave a blank 32 bytes (the length block with 0).\\n            mstore(\\n                0x40,\\n                and(\\n                    add(add(end, iszero(add(length, mload(_preBytes)))), 31),\\n                    not(31) // Round down to the nearest 32 bytes.\\n                )\\n            )\\n        }\\n\\n        return tempBytes;\\n    }\\n\\n    function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\\n        assembly {\\n            // Read the first 32 bytes of _preBytes storage, which is the length\\n            // of the array. (We don't need to use the offset into the slot\\n            // because arrays use the entire slot.)\\n            let fslot := sload(_preBytes.slot)\\n            // Arrays of 31 bytes or less have an even value in their slot,\\n            // while longer arrays have an odd value. The actual length is\\n            // the slot divided by two for odd values, and the lowest order\\n            // byte divided by two for even values.\\n            // If the slot is even, bitwise and the slot with 255 and divide by\\n            // two to get the length. If the slot is odd, bitwise and the slot\\n            // with -1 and divide by two.\\n            let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n            let mlength := mload(_postBytes)\\n            let newlength := add(slength, mlength)\\n            // slength can contain both the length and contents of the array\\n            // if length < 32 bytes so let's prepare for that\\n            // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n            switch add(lt(slength, 32), lt(newlength, 32))\\n            case 2 {\\n                // Since the new array still fits in the slot, we just need to\\n                // update the contents of the slot.\\n                // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\\n                sstore(\\n                    _preBytes.slot,\\n                    // all the modifications to the slot are inside this\\n                    // next block\\n                    add(\\n                        // we can just add to the slot contents because the\\n                        // bytes we want to change are the LSBs\\n                        fslot,\\n                        add(\\n                            mul(\\n                                div(\\n                                    // load the bytes from memory\\n                                    mload(add(_postBytes, 0x20)),\\n                                    // zero all bytes to the right\\n                                    exp(0x100, sub(32, mlength))\\n                                ),\\n                                // and now shift left the number of bytes to\\n                                // leave space for the length in the slot\\n                                exp(0x100, sub(32, newlength))\\n                            ),\\n                            // increase length by the double of the memory\\n                            // bytes length\\n                            mul(mlength, 2)\\n                        )\\n                    )\\n                )\\n            }\\n            case 1 {\\n                // The stored value fits in the slot, but the combined value\\n                // will exceed it.\\n                // get the keccak hash to get the contents of the array\\n                mstore(0x0, _preBytes.slot)\\n                let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n                // save new length\\n                sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n                // The contents of the _postBytes array start 32 bytes into\\n                // the structure. Our first read should obtain the `submod`\\n                // bytes that can fit into the unused space in the last word\\n                // of the stored array. To get this, we read 32 bytes starting\\n                // from `submod`, so the data we read overlaps with the array\\n                // contents by `submod` bytes. Masking the lowest-order\\n                // `submod` bytes allows us to add that value directly to the\\n                // stored value.\\n\\n                let submod := sub(32, slength)\\n                let mc := add(_postBytes, submod)\\n                let end := add(_postBytes, mlength)\\n                let mask := sub(exp(0x100, submod), 1)\\n\\n                sstore(sc, add(and(fslot, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00), and(mload(mc), mask)))\\n\\n                for {\\n                    mc := add(mc, 0x20)\\n                    sc := add(sc, 1)\\n                } lt(mc, end) {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } {\\n                    sstore(sc, mload(mc))\\n                }\\n\\n                mask := exp(0x100, sub(mc, end))\\n\\n                sstore(sc, mul(div(mload(mc), mask), mask))\\n            }\\n            default {\\n                // get the keccak hash to get the contents of the array\\n                mstore(0x0, _preBytes.slot)\\n                // Start copying to the last used word of the stored array.\\n                let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n                // save new length\\n                sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n                // Copy over the first `submod` bytes of the new data as in\\n                // case 1 above.\\n                let slengthmod := mod(slength, 32)\\n                let mlengthmod := mod(mlength, 32)\\n                let submod := sub(32, slengthmod)\\n                let mc := add(_postBytes, submod)\\n                let end := add(_postBytes, mlength)\\n                let mask := sub(exp(0x100, submod), 1)\\n\\n                sstore(sc, add(sload(sc), and(mload(mc), mask)))\\n\\n                for {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } lt(mc, end) {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } {\\n                    sstore(sc, mload(mc))\\n                }\\n\\n                mask := exp(0x100, sub(mc, end))\\n\\n                sstore(sc, mul(div(mload(mc), mask), mask))\\n            }\\n        }\\n    }\\n\\n    function slice(\\n        bytes memory _bytes,\\n        uint _start,\\n        uint _length\\n    ) internal pure returns (bytes memory) {\\n        require(_length + 31 >= _length, \\\"slice_overflow\\\");\\n        require(_bytes.length >= _start + _length, \\\"slice_outOfBounds\\\");\\n\\n        bytes memory tempBytes;\\n\\n        assembly {\\n            switch iszero(_length)\\n            case 0 {\\n                // Get a location of some free memory and store it in tempBytes as\\n                // Solidity does for memory variables.\\n                tempBytes := mload(0x40)\\n\\n                // The first word of the slice result is potentially a partial\\n                // word read from the original array. To read it, we calculate\\n                // the length of that partial word and start copying that many\\n                // bytes into the array. The first word we copy will start with\\n                // data we don't care about, but the last `lengthmod` bytes will\\n                // land at the beginning of the contents of the new array. When\\n                // we're done copying, we overwrite the full first word with\\n                // the actual length of the slice.\\n                let lengthmod := and(_length, 31)\\n\\n                // The multiplication in the next line is necessary\\n                // because when slicing multiples of 32 bytes (lengthmod == 0)\\n                // the following copy loop was copying the origin's length\\n                // and then ending prematurely not copying everything it should.\\n                let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\\n                let end := add(mc, _length)\\n\\n                for {\\n                    // The multiplication in the next line has the same exact purpose\\n                    // as the one above.\\n                    let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\\n                } lt(mc, end) {\\n                    mc := add(mc, 0x20)\\n                    cc := add(cc, 0x20)\\n                } {\\n                    mstore(mc, mload(cc))\\n                }\\n\\n                mstore(tempBytes, _length)\\n\\n                //update free-memory pointer\\n                //allocating the array padded to 32 bytes like the compiler does now\\n                mstore(0x40, and(add(mc, 31), not(31)))\\n            }\\n            //if we want a zero-length slice let's just return a zero-length array\\n            default {\\n                tempBytes := mload(0x40)\\n                //zero out the 32 bytes slice we are about to return\\n                //we need to do it because Solidity does not garbage collect\\n                mstore(tempBytes, 0)\\n\\n                mstore(0x40, add(tempBytes, 0x20))\\n            }\\n        }\\n\\n        return tempBytes;\\n    }\\n\\n    function toAddress(bytes memory _bytes, uint _start) internal pure returns (address) {\\n        require(_bytes.length >= _start + 20, \\\"toAddress_outOfBounds\\\");\\n        address tempAddress;\\n\\n        assembly {\\n            tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\\n        }\\n\\n        return tempAddress;\\n    }\\n\\n    function toUint8(bytes memory _bytes, uint _start) internal pure returns (uint8) {\\n        require(_bytes.length >= _start + 1, \\\"toUint8_outOfBounds\\\");\\n        uint8 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x1), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint16(bytes memory _bytes, uint _start) internal pure returns (uint16) {\\n        require(_bytes.length >= _start + 2, \\\"toUint16_outOfBounds\\\");\\n        uint16 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x2), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint32(bytes memory _bytes, uint _start) internal pure returns (uint32) {\\n        require(_bytes.length >= _start + 4, \\\"toUint32_outOfBounds\\\");\\n        uint32 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x4), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint64(bytes memory _bytes, uint _start) internal pure returns (uint64) {\\n        require(_bytes.length >= _start + 8, \\\"toUint64_outOfBounds\\\");\\n        uint64 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x8), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint96(bytes memory _bytes, uint _start) internal pure returns (uint96) {\\n        require(_bytes.length >= _start + 12, \\\"toUint96_outOfBounds\\\");\\n        uint96 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0xc), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint128(bytes memory _bytes, uint _start) internal pure returns (uint128) {\\n        require(_bytes.length >= _start + 16, \\\"toUint128_outOfBounds\\\");\\n        uint128 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x10), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint256(bytes memory _bytes, uint _start) internal pure returns (uint) {\\n        require(_bytes.length >= _start + 32, \\\"toUint256_outOfBounds\\\");\\n        uint tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x20), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toBytes32(bytes memory _bytes, uint _start) internal pure returns (bytes32) {\\n        require(_bytes.length >= _start + 32, \\\"toBytes32_outOfBounds\\\");\\n        bytes32 tempBytes32;\\n\\n        assembly {\\n            tempBytes32 := mload(add(add(_bytes, 0x20), _start))\\n        }\\n\\n        return tempBytes32;\\n    }\\n\\n    function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\\n        bool success = true;\\n\\n        assembly {\\n            let length := mload(_preBytes)\\n\\n            // if lengths don't match the arrays are not equal\\n            switch eq(length, mload(_postBytes))\\n            case 1 {\\n                // cb is a circuit breaker in the for loop since there's\\n                //  no said feature for inline assembly loops\\n                // cb = 1 - don't breaker\\n                // cb = 0 - break\\n                let cb := 1\\n\\n                let mc := add(_preBytes, 0x20)\\n                let end := add(mc, length)\\n\\n                for {\\n                    let cc := add(_postBytes, 0x20)\\n                    // the next line is the loop condition:\\n                    // while(uint256(mc < end) + cb == 2)\\n                } eq(add(lt(mc, end), cb), 2) {\\n                    mc := add(mc, 0x20)\\n                    cc := add(cc, 0x20)\\n                } {\\n                    // if any of these checks fails then arrays are not equal\\n                    if iszero(eq(mload(mc), mload(cc))) {\\n                        // unsuccess:\\n                        success := 0\\n                        cb := 0\\n                    }\\n                }\\n            }\\n            default {\\n                // unsuccess:\\n                success := 0\\n            }\\n        }\\n\\n        return success;\\n    }\\n\\n    function equalStorage(bytes storage _preBytes, bytes memory _postBytes) internal view returns (bool) {\\n        bool success = true;\\n\\n        assembly {\\n            // we know _preBytes_offset is 0\\n            let fslot := sload(_preBytes.slot)\\n            // Decode the length of the stored array like in concatStorage().\\n            let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n            let mlength := mload(_postBytes)\\n\\n            // if lengths don't match the arrays are not equal\\n            switch eq(slength, mlength)\\n            case 1 {\\n                // slength can contain both the length and contents of the array\\n                // if length < 32 bytes so let's prepare for that\\n                // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n                if iszero(iszero(slength)) {\\n                    switch lt(slength, 32)\\n                    case 1 {\\n                        // blank the last byte which is the length\\n                        fslot := mul(div(fslot, 0x100), 0x100)\\n\\n                        if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\\n                            // unsuccess:\\n                            success := 0\\n                        }\\n                    }\\n                    default {\\n                        // cb is a circuit breaker in the for loop since there's\\n                        //  no said feature for inline assembly loops\\n                        // cb = 1 - don't breaker\\n                        // cb = 0 - break\\n                        let cb := 1\\n\\n                        // get the keccak hash to get the contents of the array\\n                        mstore(0x0, _preBytes.slot)\\n                        let sc := keccak256(0x0, 0x20)\\n\\n                        let mc := add(_postBytes, 0x20)\\n                        let end := add(mc, mlength)\\n\\n                        // the next line is the loop condition:\\n                        // while(uint256(mc < end) + cb == 2)\\n                        for {\\n\\n                        } eq(add(lt(mc, end), cb), 2) {\\n                            sc := add(sc, 1)\\n                            mc := add(mc, 0x20)\\n                        } {\\n                            if iszero(eq(sload(sc), mload(mc))) {\\n                                // unsuccess:\\n                                success := 0\\n                                cb := 0\\n                            }\\n                        }\\n                    }\\n                }\\n            }\\n            default {\\n                // unsuccess:\\n                success := 0\\n            }\\n        }\\n\\n        return success;\\n    }\\n}\\n\",\"keccak256\":\"0x7e64cccdf22a03f513d94960f2145dd801fb5ec88d971de079b5186a9f5e93c4\",\"license\":\"Unlicense\"},\"@layerzerolabs/solidity-examples/contracts/libraries/ExcessivelySafeCall.sol\":{\"content\":\"// SPDX-License-Identifier: MIT OR Apache-2.0\\npragma solidity >=0.7.6;\\n\\nlibrary ExcessivelySafeCall {\\n    uint constant LOW_28_MASK = 0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff;\\n\\n    /// @notice Use when you _really_ really _really_ don't trust the called\\n    /// contract. This prevents the called contract from causing reversion of\\n    /// the caller in as many ways as we can.\\n    /// @dev The main difference between this and a solidity low-level call is\\n    /// that we limit the number of bytes that the callee can cause to be\\n    /// copied to caller memory. This prevents stupid things like malicious\\n    /// contracts returning 10,000,000 bytes causing a local OOG when copying\\n    /// to memory.\\n    /// @param _target The address to call\\n    /// @param _gas The amount of gas to forward to the remote contract\\n    /// @param _maxCopy The maximum number of bytes of returndata to copy\\n    /// to memory.\\n    /// @param _calldata The data to send to the remote contract\\n    /// @return success and returndata, as `.call()`. Returndata is capped to\\n    /// `_maxCopy` bytes.\\n    function excessivelySafeCall(\\n        address _target,\\n        uint _gas,\\n        uint16 _maxCopy,\\n        bytes memory _calldata\\n    ) internal returns (bool, bytes memory) {\\n        // set up for assembly call\\n        uint _toCopy;\\n        bool _success;\\n        bytes memory _returnData = new bytes(_maxCopy);\\n        // dispatch message to recipient\\n        // by assembly calling \\\"handle\\\" function\\n        // we call via assembly to avoid memcopying a very large returndata\\n        // returned by a malicious contract\\n        assembly {\\n            _success := call(\\n                _gas, // gas\\n                _target, // recipient\\n                0, // ether value\\n                add(_calldata, 0x20), // inloc\\n                mload(_calldata), // inlen\\n                0, // outloc\\n                0 // outlen\\n            )\\n            // limit our copy to 256 bytes\\n            _toCopy := returndatasize()\\n            if gt(_toCopy, _maxCopy) {\\n                _toCopy := _maxCopy\\n            }\\n            // Store the length of the copied bytes\\n            mstore(_returnData, _toCopy)\\n            // copy the bytes from returndata[0:_toCopy]\\n            returndatacopy(add(_returnData, 0x20), 0, _toCopy)\\n        }\\n        return (_success, _returnData);\\n    }\\n\\n    /// @notice Use when you _really_ really _really_ don't trust the called\\n    /// contract. This prevents the called contract from causing reversion of\\n    /// the caller in as many ways as we can.\\n    /// @dev The main difference between this and a solidity low-level call is\\n    /// that we limit the number of bytes that the callee can cause to be\\n    /// copied to caller memory. This prevents stupid things like malicious\\n    /// contracts returning 10,000,000 bytes causing a local OOG when copying\\n    /// to memory.\\n    /// @param _target The address to call\\n    /// @param _gas The amount of gas to forward to the remote contract\\n    /// @param _maxCopy The maximum number of bytes of returndata to copy\\n    /// to memory.\\n    /// @param _calldata The data to send to the remote contract\\n    /// @return success and returndata, as `.call()`. Returndata is capped to\\n    /// `_maxCopy` bytes.\\n    function excessivelySafeStaticCall(\\n        address _target,\\n        uint _gas,\\n        uint16 _maxCopy,\\n        bytes memory _calldata\\n    ) internal view returns (bool, bytes memory) {\\n        // set up for assembly call\\n        uint _toCopy;\\n        bool _success;\\n        bytes memory _returnData = new bytes(_maxCopy);\\n        // dispatch message to recipient\\n        // by assembly calling \\\"handle\\\" function\\n        // we call via assembly to avoid memcopying a very large returndata\\n        // returned by a malicious contract\\n        assembly {\\n            _success := staticcall(\\n                _gas, // gas\\n                _target, // recipient\\n                add(_calldata, 0x20), // inloc\\n                mload(_calldata), // inlen\\n                0, // outloc\\n                0 // outlen\\n            )\\n            // limit our copy to 256 bytes\\n            _toCopy := returndatasize()\\n            if gt(_toCopy, _maxCopy) {\\n                _toCopy := _maxCopy\\n            }\\n            // Store the length of the copied bytes\\n            mstore(_returnData, _toCopy)\\n            // copy the bytes from returndata[0:_toCopy]\\n            returndatacopy(add(_returnData, 0x20), 0, _toCopy)\\n        }\\n        return (_success, _returnData);\\n    }\\n\\n    /**\\n     * @notice Swaps function selectors in encoded contract calls\\n     * @dev Allows reuse of encoded calldata for functions with identical\\n     * argument types but different names. It simply swaps out the first 4 bytes\\n     * for the new selector. This function modifies memory in place, and should\\n     * only be used with caution.\\n     * @param _newSelector The new 4-byte selector\\n     * @param _buf The encoded contract args\\n     */\\n    function swapSelector(bytes4 _newSelector, bytes memory _buf) internal pure {\\n        require(_buf.length >= 4);\\n        uint _mask = LOW_28_MASK;\\n        assembly {\\n            // load the first word of\\n            let _word := mload(add(_buf, 0x20))\\n            // mask out the top 4 bytes\\n            // /x\\n            _word := and(_word, _mask)\\n            _word := or(_newSelector, _word)\\n            mstore(add(_buf, 0x20), _word)\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xd4e52af409b5ec80432292d86fb01906785eb78ac31da3bab4565aabcd6e3e56\",\"license\":\"MIT OR Apache-2.0\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport \\\"./interfaces/ILayerZeroReceiver.sol\\\";\\nimport \\\"./interfaces/ILayerZeroUserApplicationConfig.sol\\\";\\nimport \\\"./interfaces/ILayerZeroEndpoint.sol\\\";\\nimport \\\"../libraries/BytesLib.sol\\\";\\n\\n/*\\n * a generic LzReceiver implementation\\n */\\nabstract contract LzApp is Ownable, ILayerZeroReceiver, ILayerZeroUserApplicationConfig {\\n    using BytesLib for bytes;\\n\\n    // ua can not send payload larger than this by default, but it can be changed by the ua owner\\n    uint public constant DEFAULT_PAYLOAD_SIZE_LIMIT = 10000;\\n\\n    ILayerZeroEndpoint public immutable lzEndpoint;\\n    mapping(uint16 => bytes) public trustedRemoteLookup;\\n    mapping(uint16 => mapping(uint16 => uint)) public minDstGasLookup;\\n    mapping(uint16 => uint) public payloadSizeLimitLookup;\\n    address public precrime;\\n\\n    event SetPrecrime(address precrime);\\n    event SetTrustedRemote(uint16 _remoteChainId, bytes _path);\\n    event SetTrustedRemoteAddress(uint16 _remoteChainId, bytes _remoteAddress);\\n    event SetMinDstGas(uint16 _dstChainId, uint16 _type, uint _minDstGas);\\n\\n    constructor(address _endpoint) {\\n        lzEndpoint = ILayerZeroEndpoint(_endpoint);\\n    }\\n\\n    function lzReceive(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) public virtual override {\\n        // lzReceive must be called by the endpoint for security\\n        require(_msgSender() == address(lzEndpoint), \\\"LzApp: invalid endpoint caller\\\");\\n\\n        bytes memory trustedRemote = trustedRemoteLookup[_srcChainId];\\n        // if will still block the message pathway from (srcChainId, srcAddress). should not receive message from untrusted remote.\\n        require(\\n            _srcAddress.length == trustedRemote.length && trustedRemote.length > 0 && keccak256(_srcAddress) == keccak256(trustedRemote),\\n            \\\"LzApp: invalid source sending contract\\\"\\n        );\\n\\n        _blockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n    }\\n\\n    // abstract function - the default behaviour of LayerZero is blocking. See: NonblockingLzApp if you dont need to enforce ordered messaging\\n    function _blockingLzReceive(\\n        uint16 _srcChainId,\\n        bytes memory _srcAddress,\\n        uint64 _nonce,\\n        bytes memory _payload\\n    ) internal virtual;\\n\\n    function _lzSend(\\n        uint16 _dstChainId,\\n        bytes memory _payload,\\n        address payable _refundAddress,\\n        address _zroPaymentAddress,\\n        bytes memory _adapterParams,\\n        uint _nativeFee\\n    ) internal virtual {\\n        bytes memory trustedRemote = trustedRemoteLookup[_dstChainId];\\n        require(trustedRemote.length != 0, \\\"LzApp: destination chain is not a trusted source\\\");\\n        _checkPayloadSize(_dstChainId, _payload.length);\\n        lzEndpoint.send{value: _nativeFee}(_dstChainId, trustedRemote, _payload, _refundAddress, _zroPaymentAddress, _adapterParams);\\n    }\\n\\n    function _checkGasLimit(\\n        uint16 _dstChainId,\\n        uint16 _type,\\n        bytes memory _adapterParams,\\n        uint _extraGas\\n    ) internal view virtual {\\n        uint providedGasLimit = _getGasLimit(_adapterParams);\\n        uint minGasLimit = minDstGasLookup[_dstChainId][_type];\\n        require(minGasLimit > 0, \\\"LzApp: minGasLimit not set\\\");\\n        require(providedGasLimit >= minGasLimit + _extraGas, \\\"LzApp: gas limit is too low\\\");\\n    }\\n\\n    function _getGasLimit(bytes memory _adapterParams) internal pure virtual returns (uint gasLimit) {\\n        require(_adapterParams.length >= 34, \\\"LzApp: invalid adapterParams\\\");\\n        assembly {\\n            gasLimit := mload(add(_adapterParams, 34))\\n        }\\n    }\\n\\n    function _checkPayloadSize(uint16 _dstChainId, uint _payloadSize) internal view virtual {\\n        uint payloadSizeLimit = payloadSizeLimitLookup[_dstChainId];\\n        if (payloadSizeLimit == 0) {\\n            // use default if not set\\n            payloadSizeLimit = DEFAULT_PAYLOAD_SIZE_LIMIT;\\n        }\\n        require(_payloadSize <= payloadSizeLimit, \\\"LzApp: payload size is too large\\\");\\n    }\\n\\n    //---------------------------UserApplication config----------------------------------------\\n    function getConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        address,\\n        uint _configType\\n    ) external view returns (bytes memory) {\\n        return lzEndpoint.getConfig(_version, _chainId, address(this), _configType);\\n    }\\n\\n    // generic config for LayerZero user Application\\n    function setConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        uint _configType,\\n        bytes calldata _config\\n    ) external override onlyOwner {\\n        lzEndpoint.setConfig(_version, _chainId, _configType, _config);\\n    }\\n\\n    function setSendVersion(uint16 _version) external override onlyOwner {\\n        lzEndpoint.setSendVersion(_version);\\n    }\\n\\n    function setReceiveVersion(uint16 _version) external override onlyOwner {\\n        lzEndpoint.setReceiveVersion(_version);\\n    }\\n\\n    function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external override onlyOwner {\\n        lzEndpoint.forceResumeReceive(_srcChainId, _srcAddress);\\n    }\\n\\n    // _path = abi.encodePacked(remoteAddress, localAddress)\\n    // this function set the trusted path for the cross-chain communication\\n    function setTrustedRemote(uint16 _remoteChainId, bytes calldata _path) external onlyOwner {\\n        trustedRemoteLookup[_remoteChainId] = _path;\\n        emit SetTrustedRemote(_remoteChainId, _path);\\n    }\\n\\n    function setTrustedRemoteAddress(uint16 _remoteChainId, bytes calldata _remoteAddress) external onlyOwner {\\n        trustedRemoteLookup[_remoteChainId] = abi.encodePacked(_remoteAddress, address(this));\\n        emit SetTrustedRemoteAddress(_remoteChainId, _remoteAddress);\\n    }\\n\\n    function getTrustedRemoteAddress(uint16 _remoteChainId) external view returns (bytes memory) {\\n        bytes memory path = trustedRemoteLookup[_remoteChainId];\\n        require(path.length != 0, \\\"LzApp: no trusted path record\\\");\\n        return path.slice(0, path.length - 20); // the last 20 bytes should be address(this)\\n    }\\n\\n    function setPrecrime(address _precrime) external onlyOwner {\\n        precrime = _precrime;\\n        emit SetPrecrime(_precrime);\\n    }\\n\\n    function setMinDstGas(\\n        uint16 _dstChainId,\\n        uint16 _packetType,\\n        uint _minGas\\n    ) external onlyOwner {\\n        minDstGasLookup[_dstChainId][_packetType] = _minGas;\\n        emit SetMinDstGas(_dstChainId, _packetType, _minGas);\\n    }\\n\\n    // if the size is 0, it means default size limit\\n    function setPayloadSizeLimit(uint16 _dstChainId, uint _size) external onlyOwner {\\n        payloadSizeLimitLookup[_dstChainId] = _size;\\n    }\\n\\n    //--------------------------- VIEW FUNCTION ----------------------------------------\\n    function isTrustedRemote(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool) {\\n        bytes memory trustedSource = trustedRemoteLookup[_srcChainId];\\n        return keccak256(trustedSource) == keccak256(_srcAddress);\\n    }\\n}\\n\",\"keccak256\":\"0x309c994bdcf69ad63c6789694a28eb72a773e2d9db58fe572ab2b34a475972ce\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./LzApp.sol\\\";\\nimport \\\"../libraries/ExcessivelySafeCall.sol\\\";\\n\\n/*\\n * the default LayerZero messaging behaviour is blocking, i.e. any failed message will block the channel\\n * this abstract class try-catch all fail messages and store locally for future retry. hence, non-blocking\\n * NOTE: if the srcAddress is not configured properly, it will still block the message pathway from (srcChainId, srcAddress)\\n */\\nabstract contract NonblockingLzApp is LzApp {\\n    using ExcessivelySafeCall for address;\\n\\n    constructor(address _endpoint) LzApp(_endpoint) {}\\n\\n    mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32))) public failedMessages;\\n\\n    event MessageFailed(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes _payload, bytes _reason);\\n    event RetryMessageSuccess(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes32 _payloadHash);\\n\\n    // overriding the virtual function in LzReceiver\\n    function _blockingLzReceive(\\n        uint16 _srcChainId,\\n        bytes memory _srcAddress,\\n        uint64 _nonce,\\n        bytes memory _payload\\n    ) internal virtual override {\\n        (bool success, bytes memory reason) = address(this).excessivelySafeCall(\\n            gasleft(),\\n            150,\\n            abi.encodeWithSelector(this.nonblockingLzReceive.selector, _srcChainId, _srcAddress, _nonce, _payload)\\n        );\\n        if (!success) {\\n            _storeFailedMessage(_srcChainId, _srcAddress, _nonce, _payload, reason);\\n        }\\n    }\\n\\n    function _storeFailedMessage(\\n        uint16 _srcChainId,\\n        bytes memory _srcAddress,\\n        uint64 _nonce,\\n        bytes memory _payload,\\n        bytes memory _reason\\n    ) internal virtual {\\n        failedMessages[_srcChainId][_srcAddress][_nonce] = keccak256(_payload);\\n        emit MessageFailed(_srcChainId, _srcAddress, _nonce, _payload, _reason);\\n    }\\n\\n    function nonblockingLzReceive(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) public virtual {\\n        // only internal transaction\\n        require(_msgSender() == address(this), \\\"NonblockingLzApp: caller must be LzApp\\\");\\n        _nonblockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n    }\\n\\n    //@notice override this function\\n    function _nonblockingLzReceive(\\n        uint16 _srcChainId,\\n        bytes memory _srcAddress,\\n        uint64 _nonce,\\n        bytes memory _payload\\n    ) internal virtual;\\n\\n    function retryMessage(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) public payable virtual {\\n        // assert there is message to retry\\n        bytes32 payloadHash = failedMessages[_srcChainId][_srcAddress][_nonce];\\n        require(payloadHash != bytes32(0), \\\"NonblockingLzApp: no stored message\\\");\\n        require(keccak256(_payload) == payloadHash, \\\"NonblockingLzApp: invalid payload\\\");\\n        // clear the stored message\\n        failedMessages[_srcChainId][_srcAddress][_nonce] = bytes32(0);\\n        // execute the message. revert if it fails again\\n        _nonblockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n        emit RetryMessageSuccess(_srcChainId, _srcAddress, _nonce, payloadHash);\\n    }\\n}\\n\",\"keccak256\":\"0xf4bd9e0ecfa4eb18e7305eb66da44c8a4610c3d5afeaf6a3b44c4bf4b7169b40\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroEndpoint.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"./ILayerZeroUserApplicationConfig.sol\\\";\\n\\ninterface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig {\\n    // @notice send a LayerZero message to the specified address at a LayerZero endpoint.\\n    // @param _dstChainId - the destination chain identifier\\n    // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains\\n    // @param _payload - a custom bytes payload to send to the destination contract\\n    // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address\\n    // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction\\n    // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination\\n    function send(\\n        uint16 _dstChainId,\\n        bytes calldata _destination,\\n        bytes calldata _payload,\\n        address payable _refundAddress,\\n        address _zroPaymentAddress,\\n        bytes calldata _adapterParams\\n    ) external payable;\\n\\n    // @notice used by the messaging library to publish verified payload\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source contract (as bytes) at the source chain\\n    // @param _dstAddress - the address on destination chain\\n    // @param _nonce - the unbound message ordering nonce\\n    // @param _gasLimit - the gas limit for external contract execution\\n    // @param _payload - verified payload to send to the destination contract\\n    function receivePayload(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        address _dstAddress,\\n        uint64 _nonce,\\n        uint _gasLimit,\\n        bytes calldata _payload\\n    ) external;\\n\\n    // @notice get the inboundNonce of a lzApp from a source chain which could be EVM or non-EVM chain\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint64);\\n\\n    // @notice get the outboundNonce from this source chain which, consequently, is always an EVM\\n    // @param _srcAddress - the source chain contract address\\n    function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view returns (uint64);\\n\\n    // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery\\n    // @param _dstChainId - the destination chain identifier\\n    // @param _userApplication - the user app address on this EVM chain\\n    // @param _payload - the custom message to send over LayerZero\\n    // @param _payInZRO - if false, user app pays the protocol fee in native token\\n    // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain\\n    function estimateFees(\\n        uint16 _dstChainId,\\n        address _userApplication,\\n        bytes calldata _payload,\\n        bool _payInZRO,\\n        bytes calldata _adapterParam\\n    ) external view returns (uint nativeFee, uint zroFee);\\n\\n    // @notice get this Endpoint's immutable source identifier\\n    function getChainId() external view returns (uint16);\\n\\n    // @notice the interface to retry failed message on this Endpoint destination\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    // @param _payload - the payload to be retried\\n    function retryPayload(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        bytes calldata _payload\\n    ) external;\\n\\n    // @notice query if any STORED payload (message blocking) at the endpoint.\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool);\\n\\n    // @notice query if the _libraryAddress is valid for sending msgs.\\n    // @param _userApplication - the user app address on this EVM chain\\n    function getSendLibraryAddress(address _userApplication) external view returns (address);\\n\\n    // @notice query if the _libraryAddress is valid for receiving msgs.\\n    // @param _userApplication - the user app address on this EVM chain\\n    function getReceiveLibraryAddress(address _userApplication) external view returns (address);\\n\\n    // @notice query if the non-reentrancy guard for send() is on\\n    // @return true if the guard is on. false otherwise\\n    function isSendingPayload() external view returns (bool);\\n\\n    // @notice query if the non-reentrancy guard for receive() is on\\n    // @return true if the guard is on. false otherwise\\n    function isReceivingPayload() external view returns (bool);\\n\\n    // @notice get the configuration of the LayerZero messaging library of the specified version\\n    // @param _version - messaging library version\\n    // @param _chainId - the chainId for the pending config change\\n    // @param _userApplication - the contract address of the user application\\n    // @param _configType - type of configuration. every messaging library has its own convention.\\n    function getConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        address _userApplication,\\n        uint _configType\\n    ) external view returns (bytes memory);\\n\\n    // @notice get the send() LayerZero messaging library version\\n    // @param _userApplication - the contract address of the user application\\n    function getSendVersion(address _userApplication) external view returns (uint16);\\n\\n    // @notice get the lzReceive() LayerZero messaging library version\\n    // @param _userApplication - the contract address of the user application\\n    function getReceiveVersion(address _userApplication) external view returns (uint16);\\n}\\n\",\"keccak256\":\"0xab7fcacc672251c850f00c0abd4100df9afcc4ad70b8d331a2fd4cb07acab9f4\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroReceiver {\\n    // @notice LayerZero endpoint will invoke this function to deliver the message on the destination\\n    // @param _srcChainId - the source endpoint identifier\\n    // @param _srcAddress - the source sending contract address from the source chain\\n    // @param _nonce - the ordered message nonce\\n    // @param _payload - the signed payload is the UA bytes has encoded to be sent\\n    function lzReceive(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) external;\\n}\\n\",\"keccak256\":\"0xac1966c1229bd4dc36b6c69eeb94a537bd9aa2198d7623b9ba7f8f7dbe79bb4c\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroUserApplicationConfig.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroUserApplicationConfig {\\n    // @notice set the configuration of the LayerZero messaging library of the specified version\\n    // @param _version - messaging library version\\n    // @param _chainId - the chainId for the pending config change\\n    // @param _configType - type of configuration. every messaging library has its own convention.\\n    // @param _config - configuration in the bytes. can encode arbitrary content.\\n    function setConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        uint _configType,\\n        bytes calldata _config\\n    ) external;\\n\\n    // @notice set the send() LayerZero messaging library version to _version\\n    // @param _version - new messaging library version\\n    function setSendVersion(uint16 _version) external;\\n\\n    // @notice set the lzReceive() LayerZero messaging library version to _version\\n    // @param _version - new messaging library version\\n    function setReceiveVersion(uint16 _version) external;\\n\\n    // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\\n    // @param _srcChainId - the chainId of the source chain\\n    // @param _srcAddress - the contract address of the source contract at the source chain\\n    function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\\n}\\n\",\"keccak256\":\"0xb4df93aeb0fb46373a4fb728ad2603edc8b9a1577eee8d801768dc115bf96498\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    constructor() {\\n        _transferOwnership(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        _checkOwner();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if the sender is not the owner.\\n     */\\n    function _checkOwner() internal view virtual {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby disabling any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n}\\n\",\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n\\n    function _contextSuffixLength() internal view virtual returns (uint256) {\\n        return 0;\\n    }\\n}\\n\",\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":6971,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol:NonblockingLzApp","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":3351,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol:NonblockingLzApp","label":"trustedRemoteLookup","offset":0,"slot":"1","type":"t_mapping(t_uint16,t_bytes_storage)"},{"astId":3357,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol:NonblockingLzApp","label":"minDstGasLookup","offset":0,"slot":"2","type":"t_mapping(t_uint16,t_mapping(t_uint16,t_uint256))"},{"astId":3361,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol:NonblockingLzApp","label":"payloadSizeLimitLookup","offset":0,"slot":"3","type":"t_mapping(t_uint16,t_uint256)"},{"astId":3363,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol:NonblockingLzApp","label":"precrime","offset":0,"slot":"4","type":"t_address"},{"astId":3893,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol:NonblockingLzApp","label":"failedMessages","offset":0,"slot":"5","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32)))"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes_memory_ptr":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32))":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => mapping(uint64 => bytes32))","numberOfBytes":"32","value":"t_mapping(t_uint64,t_bytes32)"},"t_mapping(t_uint16,t_bytes_storage)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => bytes)","numberOfBytes":"32","value":"t_bytes_storage"},"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32)))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32)))","numberOfBytes":"32","value":"t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32))"},"t_mapping(t_uint16,t_mapping(t_uint16,t_uint256))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(uint16 => uint256))","numberOfBytes":"32","value":"t_mapping(t_uint16,t_uint256)"},"t_mapping(t_uint16,t_uint256)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint64,t_bytes32)":{"encoding":"mapping","key":"t_uint64","label":"mapping(uint64 => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroEndpoint.sol":{"ILayerZeroEndpoint":{"abi":[{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"address","name":"_userApplication","type":"address"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"bool","name":"_payInZRO","type":"bool"},{"internalType":"bytes","name":"_adapterParam","type":"bytes"}],"name":"estimateFees","outputs":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"zroFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"forceResumeReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getChainId","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"address","name":"_userApplication","type":"address"},{"internalType":"uint256","name":"_configType","type":"uint256"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"getInboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"address","name":"_srcAddress","type":"address"}],"name":"getOutboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_userApplication","type":"address"}],"name":"getReceiveLibraryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_userApplication","type":"address"}],"name":"getReceiveVersion","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_userApplication","type":"address"}],"name":"getSendLibraryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_userApplication","type":"address"}],"name":"getSendVersion","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"hasStoredPayload","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isReceivingPayload","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isSendingPayload","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"address","name":"_dstAddress","type":"address"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"uint256","name":"_gasLimit","type":"uint256"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"receivePayload","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"retryPayload","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bytes","name":"_destination","type":"bytes"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"address payable","name":"_refundAddress","type":"address"},{"internalType":"address","name":"_zroPaymentAddress","type":"address"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"send","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"uint256","name":"_configType","type":"uint256"},{"internalType":"bytes","name":"_config","type":"bytes"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setReceiveVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setSendVersion","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"estimateFees(uint16,address,bytes,bool,bytes)":"40a7bb10","forceResumeReceive(uint16,bytes)":"42d65a8d","getChainId()":"3408e470","getConfig(uint16,uint16,address,uint256)":"f5ecbdbc","getInboundNonce(uint16,bytes)":"fdc07c70","getOutboundNonce(uint16,address)":"7a145748","getReceiveLibraryAddress(address)":"71ba2fd6","getReceiveVersion(address)":"da1a7c9a","getSendLibraryAddress(address)":"9c729da1","getSendVersion(address)":"096568f6","hasStoredPayload(uint16,bytes)":"0eaf6ea6","isReceivingPayload()":"ca066b35","isSendingPayload()":"e97a448a","receivePayload(uint16,bytes,address,uint64,uint256,bytes)":"c2fa4813","retryPayload(uint16,bytes,bytes)":"aaff5f16","send(uint16,bytes,bytes,address,address,bytes)":"c5803100","setConfig(uint16,uint16,uint256,bytes)":"cbed8b9c","setReceiveVersion(uint16)":"10ddb137","setSendVersion(uint16)":"07e0db17"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"_userApplication\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"_payInZRO\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParam\",\"type\":\"bytes\"}],\"name\":\"estimateFees\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"zroFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"forceResumeReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainId\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"_userApplication\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"getInboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"_srcAddress\",\"type\":\"address\"}],\"name\":\"getOutboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userApplication\",\"type\":\"address\"}],\"name\":\"getReceiveLibraryAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userApplication\",\"type\":\"address\"}],\"name\":\"getReceiveVersion\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userApplication\",\"type\":\"address\"}],\"name\":\"getSendLibraryAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userApplication\",\"type\":\"address\"}],\"name\":\"getSendVersion\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"hasStoredPayload\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isReceivingPayload\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isSendingPayload\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_dstAddress\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"receivePayload\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"retryPayload\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_destination\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"address payable\",\"name\":\"_refundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_zroPaymentAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"send\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_config\",\"type\":\"bytes\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setReceiveVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setSendVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroEndpoint.sol\":\"ILayerZeroEndpoint\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroEndpoint.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"./ILayerZeroUserApplicationConfig.sol\\\";\\n\\ninterface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig {\\n    // @notice send a LayerZero message to the specified address at a LayerZero endpoint.\\n    // @param _dstChainId - the destination chain identifier\\n    // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains\\n    // @param _payload - a custom bytes payload to send to the destination contract\\n    // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address\\n    // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction\\n    // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination\\n    function send(\\n        uint16 _dstChainId,\\n        bytes calldata _destination,\\n        bytes calldata _payload,\\n        address payable _refundAddress,\\n        address _zroPaymentAddress,\\n        bytes calldata _adapterParams\\n    ) external payable;\\n\\n    // @notice used by the messaging library to publish verified payload\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source contract (as bytes) at the source chain\\n    // @param _dstAddress - the address on destination chain\\n    // @param _nonce - the unbound message ordering nonce\\n    // @param _gasLimit - the gas limit for external contract execution\\n    // @param _payload - verified payload to send to the destination contract\\n    function receivePayload(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        address _dstAddress,\\n        uint64 _nonce,\\n        uint _gasLimit,\\n        bytes calldata _payload\\n    ) external;\\n\\n    // @notice get the inboundNonce of a lzApp from a source chain which could be EVM or non-EVM chain\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint64);\\n\\n    // @notice get the outboundNonce from this source chain which, consequently, is always an EVM\\n    // @param _srcAddress - the source chain contract address\\n    function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view returns (uint64);\\n\\n    // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery\\n    // @param _dstChainId - the destination chain identifier\\n    // @param _userApplication - the user app address on this EVM chain\\n    // @param _payload - the custom message to send over LayerZero\\n    // @param _payInZRO - if false, user app pays the protocol fee in native token\\n    // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain\\n    function estimateFees(\\n        uint16 _dstChainId,\\n        address _userApplication,\\n        bytes calldata _payload,\\n        bool _payInZRO,\\n        bytes calldata _adapterParam\\n    ) external view returns (uint nativeFee, uint zroFee);\\n\\n    // @notice get this Endpoint's immutable source identifier\\n    function getChainId() external view returns (uint16);\\n\\n    // @notice the interface to retry failed message on this Endpoint destination\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    // @param _payload - the payload to be retried\\n    function retryPayload(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        bytes calldata _payload\\n    ) external;\\n\\n    // @notice query if any STORED payload (message blocking) at the endpoint.\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool);\\n\\n    // @notice query if the _libraryAddress is valid for sending msgs.\\n    // @param _userApplication - the user app address on this EVM chain\\n    function getSendLibraryAddress(address _userApplication) external view returns (address);\\n\\n    // @notice query if the _libraryAddress is valid for receiving msgs.\\n    // @param _userApplication - the user app address on this EVM chain\\n    function getReceiveLibraryAddress(address _userApplication) external view returns (address);\\n\\n    // @notice query if the non-reentrancy guard for send() is on\\n    // @return true if the guard is on. false otherwise\\n    function isSendingPayload() external view returns (bool);\\n\\n    // @notice query if the non-reentrancy guard for receive() is on\\n    // @return true if the guard is on. false otherwise\\n    function isReceivingPayload() external view returns (bool);\\n\\n    // @notice get the configuration of the LayerZero messaging library of the specified version\\n    // @param _version - messaging library version\\n    // @param _chainId - the chainId for the pending config change\\n    // @param _userApplication - the contract address of the user application\\n    // @param _configType - type of configuration. every messaging library has its own convention.\\n    function getConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        address _userApplication,\\n        uint _configType\\n    ) external view returns (bytes memory);\\n\\n    // @notice get the send() LayerZero messaging library version\\n    // @param _userApplication - the contract address of the user application\\n    function getSendVersion(address _userApplication) external view returns (uint16);\\n\\n    // @notice get the lzReceive() LayerZero messaging library version\\n    // @param _userApplication - the contract address of the user application\\n    function getReceiveVersion(address _userApplication) external view returns (uint16);\\n}\\n\",\"keccak256\":\"0xab7fcacc672251c850f00c0abd4100df9afcc4ad70b8d331a2fd4cb07acab9f4\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroUserApplicationConfig.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroUserApplicationConfig {\\n    // @notice set the configuration of the LayerZero messaging library of the specified version\\n    // @param _version - messaging library version\\n    // @param _chainId - the chainId for the pending config change\\n    // @param _configType - type of configuration. every messaging library has its own convention.\\n    // @param _config - configuration in the bytes. can encode arbitrary content.\\n    function setConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        uint _configType,\\n        bytes calldata _config\\n    ) external;\\n\\n    // @notice set the send() LayerZero messaging library version to _version\\n    // @param _version - new messaging library version\\n    function setSendVersion(uint16 _version) external;\\n\\n    // @notice set the lzReceive() LayerZero messaging library version to _version\\n    // @param _version - new messaging library version\\n    function setReceiveVersion(uint16 _version) external;\\n\\n    // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\\n    // @param _srcChainId - the chainId of the source chain\\n    // @param _srcAddress - the contract address of the source contract at the source chain\\n    function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\\n}\\n\",\"keccak256\":\"0xb4df93aeb0fb46373a4fb728ad2603edc8b9a1577eee8d801768dc115bf96498\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroReceiver.sol":{"ILayerZeroReceiver":{"abi":[{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"lzReceive","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"lzReceive(uint16,bytes,uint64,bytes)":"001d3567"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroReceiver.sol\":\"ILayerZeroReceiver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroReceiver {\\n    // @notice LayerZero endpoint will invoke this function to deliver the message on the destination\\n    // @param _srcChainId - the source endpoint identifier\\n    // @param _srcAddress - the source sending contract address from the source chain\\n    // @param _nonce - the ordered message nonce\\n    // @param _payload - the signed payload is the UA bytes has encoded to be sent\\n    function lzReceive(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) external;\\n}\\n\",\"keccak256\":\"0xac1966c1229bd4dc36b6c69eeb94a537bd9aa2198d7623b9ba7f8f7dbe79bb4c\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroUserApplicationConfig.sol":{"ILayerZeroUserApplicationConfig":{"abi":[{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"forceResumeReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"uint256","name":"_configType","type":"uint256"},{"internalType":"bytes","name":"_config","type":"bytes"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setReceiveVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setSendVersion","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"forceResumeReceive(uint16,bytes)":"42d65a8d","setConfig(uint16,uint16,uint256,bytes)":"cbed8b9c","setReceiveVersion(uint16)":"10ddb137","setSendVersion(uint16)":"07e0db17"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"forceResumeReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_config\",\"type\":\"bytes\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setReceiveVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setSendVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroUserApplicationConfig.sol\":\"ILayerZeroUserApplicationConfig\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroUserApplicationConfig.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroUserApplicationConfig {\\n    // @notice set the configuration of the LayerZero messaging library of the specified version\\n    // @param _version - messaging library version\\n    // @param _chainId - the chainId for the pending config change\\n    // @param _configType - type of configuration. every messaging library has its own convention.\\n    // @param _config - configuration in the bytes. can encode arbitrary content.\\n    function setConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        uint _configType,\\n        bytes calldata _config\\n    ) external;\\n\\n    // @notice set the send() LayerZero messaging library version to _version\\n    // @param _version - new messaging library version\\n    function setSendVersion(uint16 _version) external;\\n\\n    // @notice set the lzReceive() LayerZero messaging library version to _version\\n    // @param _version - new messaging library version\\n    function setReceiveVersion(uint16 _version) external;\\n\\n    // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\\n    // @param _srcChainId - the chainId of the source chain\\n    // @param _srcAddress - the contract address of the source contract at the source chain\\n    function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\\n}\\n\",\"keccak256\":\"0xb4df93aeb0fb46373a4fb728ad2603edc8b9a1577eee8d801768dc115bf96498\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/solidity-examples/contracts/lzApp/libs/LzLib.sol":{"LzLib":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201e75113d058fd19488ad94aaf72d4a244f12f3381834d39b715f0db84424712264736f6c63430008190033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x1E PUSH22 0x113D058FD19488AD94AAF72D4A244F12F3381834D39B PUSH18 0x5F0DB84424712264736F6C63430008190033 ","sourceMap":"98:3167:23:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;98:3167:23;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201e75113d058fd19488ad94aaf72d4a244f12f3381834d39b715f0db84424712264736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x1E PUSH22 0x113D058FD19488AD94AAF72D4A244F12F3381834D39B PUSH18 0x5F0DB84424712264736F6C63430008190033 ","sourceMap":"98:3167:23:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"addressToBytes32(address)":"infinite","buildAdapterParams(struct LzLib.AirdropParams memory,uint256)":"infinite","buildAirdropAdapterParams(uint256,struct LzLib.AirdropParams memory)":"infinite","buildDefaultAdapterParams(uint256)":"infinite","bytes32ToAddress(bytes32)":"infinite","decodeAdapterParams(bytes memory)":"infinite","getGasLimit(bytes memory)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/lzApp/libs/LzLib.sol\":\"LzLib\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/lzApp/libs/LzLib.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity >=0.6.0;\\npragma experimental ABIEncoderV2;\\n\\nlibrary LzLib {\\n    // LayerZero communication\\n    struct CallParams {\\n        address payable refundAddress;\\n        address zroPaymentAddress;\\n    }\\n\\n    //---------------------------------------------------------------------------\\n    // Address type handling\\n\\n    struct AirdropParams {\\n        uint airdropAmount;\\n        bytes32 airdropAddress;\\n    }\\n\\n    function buildAdapterParams(LzLib.AirdropParams memory _airdropParams, uint _uaGasLimit) internal pure returns (bytes memory adapterParams) {\\n        if (_airdropParams.airdropAmount == 0 && _airdropParams.airdropAddress == bytes32(0x0)) {\\n            adapterParams = buildDefaultAdapterParams(_uaGasLimit);\\n        } else {\\n            adapterParams = buildAirdropAdapterParams(_uaGasLimit, _airdropParams);\\n        }\\n    }\\n\\n    // Build Adapter Params\\n    function buildDefaultAdapterParams(uint _uaGas) internal pure returns (bytes memory) {\\n        // txType 1\\n        // bytes  [2       32      ]\\n        // fields [txType  extraGas]\\n        return abi.encodePacked(uint16(1), _uaGas);\\n    }\\n\\n    function buildAirdropAdapterParams(uint _uaGas, AirdropParams memory _params) internal pure returns (bytes memory) {\\n        require(_params.airdropAmount > 0, \\\"Airdrop amount must be greater than 0\\\");\\n        require(_params.airdropAddress != bytes32(0x0), \\\"Airdrop address must be set\\\");\\n\\n        // txType 2\\n        // bytes  [2       32        32            bytes[]         ]\\n        // fields [txType  extraGas  dstNativeAmt  dstNativeAddress]\\n        return abi.encodePacked(uint16(2), _uaGas, _params.airdropAmount, _params.airdropAddress);\\n    }\\n\\n    function getGasLimit(bytes memory _adapterParams) internal pure returns (uint gasLimit) {\\n        require(_adapterParams.length == 34 || _adapterParams.length > 66, \\\"Invalid adapterParams\\\");\\n        assembly {\\n            gasLimit := mload(add(_adapterParams, 34))\\n        }\\n    }\\n\\n    // Decode Adapter Params\\n    function decodeAdapterParams(bytes memory _adapterParams)\\n        internal\\n        pure\\n        returns (\\n            uint16 txType,\\n            uint uaGas,\\n            uint airdropAmount,\\n            address payable airdropAddress\\n        )\\n    {\\n        require(_adapterParams.length == 34 || _adapterParams.length > 66, \\\"Invalid adapterParams\\\");\\n        assembly {\\n            txType := mload(add(_adapterParams, 2))\\n            uaGas := mload(add(_adapterParams, 34))\\n        }\\n        require(txType == 1 || txType == 2, \\\"Unsupported txType\\\");\\n        require(uaGas > 0, \\\"Gas too low\\\");\\n\\n        if (txType == 2) {\\n            assembly {\\n                airdropAmount := mload(add(_adapterParams, 66))\\n                airdropAddress := mload(add(_adapterParams, 86))\\n            }\\n        }\\n    }\\n\\n    //---------------------------------------------------------------------------\\n    // Address type handling\\n    function bytes32ToAddress(bytes32 _bytes32Address) internal pure returns (address _address) {\\n        return address(uint160(uint(_bytes32Address)));\\n    }\\n\\n    function addressToBytes32(address _address) internal pure returns (bytes32 _bytes32Address) {\\n        return bytes32(uint(uint160(_address)));\\n    }\\n}\\n\",\"keccak256\":\"0xf61b7357d6638814e1a8d5edeba5c8f5db1cd782882b96da4452604ec0d5c20a\",\"license\":\"BUSL-1.1\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol":{"LZEndpointMock":{"abi":[{"inputs":[{"internalType":"uint16","name":"_chainId","type":"uint16"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"nonce","type":"uint64"},{"indexed":false,"internalType":"address","name":"dstAddress","type":"address"}],"name":"PayloadCleared","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"srcAddress","type":"bytes"},{"indexed":false,"internalType":"address","name":"dstAddress","type":"address"},{"indexed":false,"internalType":"uint64","name":"nonce","type":"uint64"},{"indexed":false,"internalType":"bytes","name":"payload","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"reason","type":"bytes"}],"name":"PayloadStored","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"chainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"srcAddress","type":"bytes"}],"name":"UaForceResumeReceive","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"quantity","type":"uint256"}],"name":"ValueTransferFailed","type":"event"},{"inputs":[],"name":"blockNextMsg","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"defaultAdapterParams","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"address","name":"_userApplication","type":"address"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"bool","name":"_payInZRO","type":"bool"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"estimateFees","outputs":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"zroFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"}],"name":"forceResumeReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getChainId","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint16","name":"_chainID","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"}],"name":"getInboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"getLengthOfQueue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_chainID","type":"uint16"},{"internalType":"address","name":"_srcAddress","type":"address"}],"name":"getOutboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"getReceiveLibraryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"getReceiveVersion","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"getSendLibraryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"getSendVersion","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"}],"name":"hasStoredPayload","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"inboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isReceivingPayload","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isSendingPayload","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lzEndpointLookup","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mockChainId","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"msgsToDeliver","outputs":[{"internalType":"address","name":"dstAddress","type":"address"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes","name":"payload","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextMsgBlocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oracleFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"address","name":"","type":"address"}],"name":"outboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protocolFeeConfig","outputs":[{"internalType":"uint256","name":"zroFee","type":"uint256"},{"internalType":"uint256","name":"nativeBP","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"},{"internalType":"address","name":"_dstAddress","type":"address"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"uint256","name":"_gasLimit","type":"uint256"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"receivePayload","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"relayerFeeConfig","outputs":[{"internalType":"uint128","name":"dstPriceRatio","type":"uint128"},{"internalType":"uint128","name":"dstGasPriceInWei","type":"uint128"},{"internalType":"uint128","name":"dstNativeAmtCap","type":"uint128"},{"internalType":"uint64","name":"baseGas","type":"uint64"},{"internalType":"uint64","name":"gasPerByte","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"retryPayload","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"address payable","name":"_refundAddress","type":"address"},{"internalType":"address","name":"_zroPaymentAddress","type":"address"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"send","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"setDefaultAdapterParams","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"destAddr","type":"address"},{"internalType":"address","name":"lzEndpointAddr","type":"address"}],"name":"setDestLzEndpoint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_oracleFee","type":"uint256"}],"name":"setOracleFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_zroFee","type":"uint256"},{"internalType":"uint256","name":"_nativeBP","type":"uint256"}],"name":"setProtocolFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"setReceiveVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint128","name":"_dstPriceRatio","type":"uint128"},{"internalType":"uint128","name":"_dstGasPriceInWei","type":"uint128"},{"internalType":"uint128","name":"_dstNativeAmtCap","type":"uint128"},{"internalType":"uint64","name":"_baseGas","type":"uint64"},{"internalType":"uint64","name":"_gasPerByte","type":"uint64"}],"name":"setRelayerPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"setSendVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"storedPayload","outputs":[{"internalType":"uint64","name":"payloadLength","type":"uint64"},{"internalType":"address","name":"dstAddress","type":"address"},{"internalType":"bytes32","name":"payloadHash","type":"bytes32"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_4730":{"entryPoint":null,"id":4730,"parameterSlots":1,"returnSlots":0},"@buildDefaultAdapterParams_4367":{"entryPoint":null,"id":4367,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_uint16_fromMemory":{"entryPoint":308,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_uint16_t_uint256__to_t_uint16_t_uint256__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"array_dataslot_bytes_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_bytes_storage":{"entryPoint":431,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage":{"entryPoint":512,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":373,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x41":{"entryPoint":351,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:3279:97","nodeType":"YulBlock","src":"0:3279:97","statements":[{"nativeSrc":"6:3:97","nodeType":"YulBlock","src":"6:3:97","statements":[]},{"body":{"nativeSrc":"94:196:97","nodeType":"YulBlock","src":"94:196:97","statements":[{"body":{"nativeSrc":"140:16:97","nodeType":"YulBlock","src":"140:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"149:1:97","nodeType":"YulLiteral","src":"149:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"152:1:97","nodeType":"YulLiteral","src":"152:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"142:6:97","nodeType":"YulIdentifier","src":"142:6:97"},"nativeSrc":"142:12:97","nodeType":"YulFunctionCall","src":"142:12:97"},"nativeSrc":"142:12:97","nodeType":"YulExpressionStatement","src":"142:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"115:7:97","nodeType":"YulIdentifier","src":"115:7:97"},{"name":"headStart","nativeSrc":"124:9:97","nodeType":"YulIdentifier","src":"124:9:97"}],"functionName":{"name":"sub","nativeSrc":"111:3:97","nodeType":"YulIdentifier","src":"111:3:97"},"nativeSrc":"111:23:97","nodeType":"YulFunctionCall","src":"111:23:97"},{"kind":"number","nativeSrc":"136:2:97","nodeType":"YulLiteral","src":"136:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"107:3:97","nodeType":"YulIdentifier","src":"107:3:97"},"nativeSrc":"107:32:97","nodeType":"YulFunctionCall","src":"107:32:97"},"nativeSrc":"104:52:97","nodeType":"YulIf","src":"104:52:97"},{"nativeSrc":"165:29:97","nodeType":"YulVariableDeclaration","src":"165:29:97","value":{"arguments":[{"name":"headStart","nativeSrc":"184:9:97","nodeType":"YulIdentifier","src":"184:9:97"}],"functionName":{"name":"mload","nativeSrc":"178:5:97","nodeType":"YulIdentifier","src":"178:5:97"},"nativeSrc":"178:16:97","nodeType":"YulFunctionCall","src":"178:16:97"},"variables":[{"name":"value","nativeSrc":"169:5:97","nodeType":"YulTypedName","src":"169:5:97","type":""}]},{"body":{"nativeSrc":"244:16:97","nodeType":"YulBlock","src":"244:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"253:1:97","nodeType":"YulLiteral","src":"253:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"256:1:97","nodeType":"YulLiteral","src":"256:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"246:6:97","nodeType":"YulIdentifier","src":"246:6:97"},"nativeSrc":"246:12:97","nodeType":"YulFunctionCall","src":"246:12:97"},"nativeSrc":"246:12:97","nodeType":"YulExpressionStatement","src":"246:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"216:5:97","nodeType":"YulIdentifier","src":"216:5:97"},{"arguments":[{"name":"value","nativeSrc":"227:5:97","nodeType":"YulIdentifier","src":"227:5:97"},{"kind":"number","nativeSrc":"234:6:97","nodeType":"YulLiteral","src":"234:6:97","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"223:3:97","nodeType":"YulIdentifier","src":"223:3:97"},"nativeSrc":"223:18:97","nodeType":"YulFunctionCall","src":"223:18:97"}],"functionName":{"name":"eq","nativeSrc":"213:2:97","nodeType":"YulIdentifier","src":"213:2:97"},"nativeSrc":"213:29:97","nodeType":"YulFunctionCall","src":"213:29:97"}],"functionName":{"name":"iszero","nativeSrc":"206:6:97","nodeType":"YulIdentifier","src":"206:6:97"},"nativeSrc":"206:37:97","nodeType":"YulFunctionCall","src":"206:37:97"},"nativeSrc":"203:57:97","nodeType":"YulIf","src":"203:57:97"},{"nativeSrc":"269:15:97","nodeType":"YulAssignment","src":"269:15:97","value":{"name":"value","nativeSrc":"279:5:97","nodeType":"YulIdentifier","src":"279:5:97"},"variableNames":[{"name":"value0","nativeSrc":"269:6:97","nodeType":"YulIdentifier","src":"269:6:97"}]}]},"name":"abi_decode_tuple_t_uint16_fromMemory","nativeSrc":"14:276:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"60:9:97","nodeType":"YulTypedName","src":"60:9:97","type":""},{"name":"dataEnd","nativeSrc":"71:7:97","nodeType":"YulTypedName","src":"71:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"83:6:97","nodeType":"YulTypedName","src":"83:6:97","type":""}],"src":"14:276:97"},{"body":{"nativeSrc":"327:95:97","nodeType":"YulBlock","src":"327:95:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"344:1:97","nodeType":"YulLiteral","src":"344:1:97","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"351:3:97","nodeType":"YulLiteral","src":"351:3:97","type":"","value":"224"},{"kind":"number","nativeSrc":"356:10:97","nodeType":"YulLiteral","src":"356:10:97","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"347:3:97","nodeType":"YulIdentifier","src":"347:3:97"},"nativeSrc":"347:20:97","nodeType":"YulFunctionCall","src":"347:20:97"}],"functionName":{"name":"mstore","nativeSrc":"337:6:97","nodeType":"YulIdentifier","src":"337:6:97"},"nativeSrc":"337:31:97","nodeType":"YulFunctionCall","src":"337:31:97"},"nativeSrc":"337:31:97","nodeType":"YulExpressionStatement","src":"337:31:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"384:1:97","nodeType":"YulLiteral","src":"384:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"387:4:97","nodeType":"YulLiteral","src":"387:4:97","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"377:6:97","nodeType":"YulIdentifier","src":"377:6:97"},"nativeSrc":"377:15:97","nodeType":"YulFunctionCall","src":"377:15:97"},"nativeSrc":"377:15:97","nodeType":"YulExpressionStatement","src":"377:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"408:1:97","nodeType":"YulLiteral","src":"408:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"411:4:97","nodeType":"YulLiteral","src":"411:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"401:6:97","nodeType":"YulIdentifier","src":"401:6:97"},"nativeSrc":"401:15:97","nodeType":"YulFunctionCall","src":"401:15:97"},"nativeSrc":"401:15:97","nodeType":"YulExpressionStatement","src":"401:15:97"}]},"name":"panic_error_0x41","nativeSrc":"295:127:97","nodeType":"YulFunctionDefinition","src":"295:127:97"},{"body":{"nativeSrc":"482:325:97","nodeType":"YulBlock","src":"482:325:97","statements":[{"nativeSrc":"492:22:97","nodeType":"YulAssignment","src":"492:22:97","value":{"arguments":[{"kind":"number","nativeSrc":"506:1:97","nodeType":"YulLiteral","src":"506:1:97","type":"","value":"1"},{"name":"data","nativeSrc":"509:4:97","nodeType":"YulIdentifier","src":"509:4:97"}],"functionName":{"name":"shr","nativeSrc":"502:3:97","nodeType":"YulIdentifier","src":"502:3:97"},"nativeSrc":"502:12:97","nodeType":"YulFunctionCall","src":"502:12:97"},"variableNames":[{"name":"length","nativeSrc":"492:6:97","nodeType":"YulIdentifier","src":"492:6:97"}]},{"nativeSrc":"523:38:97","nodeType":"YulVariableDeclaration","src":"523:38:97","value":{"arguments":[{"name":"data","nativeSrc":"553:4:97","nodeType":"YulIdentifier","src":"553:4:97"},{"kind":"number","nativeSrc":"559:1:97","nodeType":"YulLiteral","src":"559:1:97","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"549:3:97","nodeType":"YulIdentifier","src":"549:3:97"},"nativeSrc":"549:12:97","nodeType":"YulFunctionCall","src":"549:12:97"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"527:18:97","nodeType":"YulTypedName","src":"527:18:97","type":""}]},{"body":{"nativeSrc":"600:31:97","nodeType":"YulBlock","src":"600:31:97","statements":[{"nativeSrc":"602:27:97","nodeType":"YulAssignment","src":"602:27:97","value":{"arguments":[{"name":"length","nativeSrc":"616:6:97","nodeType":"YulIdentifier","src":"616:6:97"},{"kind":"number","nativeSrc":"624:4:97","nodeType":"YulLiteral","src":"624:4:97","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"612:3:97","nodeType":"YulIdentifier","src":"612:3:97"},"nativeSrc":"612:17:97","nodeType":"YulFunctionCall","src":"612:17:97"},"variableNames":[{"name":"length","nativeSrc":"602:6:97","nodeType":"YulIdentifier","src":"602:6:97"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"580:18:97","nodeType":"YulIdentifier","src":"580:18:97"}],"functionName":{"name":"iszero","nativeSrc":"573:6:97","nodeType":"YulIdentifier","src":"573:6:97"},"nativeSrc":"573:26:97","nodeType":"YulFunctionCall","src":"573:26:97"},"nativeSrc":"570:61:97","nodeType":"YulIf","src":"570:61:97"},{"body":{"nativeSrc":"690:111:97","nodeType":"YulBlock","src":"690:111:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"711:1:97","nodeType":"YulLiteral","src":"711:1:97","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"718:3:97","nodeType":"YulLiteral","src":"718:3:97","type":"","value":"224"},{"kind":"number","nativeSrc":"723:10:97","nodeType":"YulLiteral","src":"723:10:97","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"714:3:97","nodeType":"YulIdentifier","src":"714:3:97"},"nativeSrc":"714:20:97","nodeType":"YulFunctionCall","src":"714:20:97"}],"functionName":{"name":"mstore","nativeSrc":"704:6:97","nodeType":"YulIdentifier","src":"704:6:97"},"nativeSrc":"704:31:97","nodeType":"YulFunctionCall","src":"704:31:97"},"nativeSrc":"704:31:97","nodeType":"YulExpressionStatement","src":"704:31:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"755:1:97","nodeType":"YulLiteral","src":"755:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"758:4:97","nodeType":"YulLiteral","src":"758:4:97","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"748:6:97","nodeType":"YulIdentifier","src":"748:6:97"},"nativeSrc":"748:15:97","nodeType":"YulFunctionCall","src":"748:15:97"},"nativeSrc":"748:15:97","nodeType":"YulExpressionStatement","src":"748:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"783:1:97","nodeType":"YulLiteral","src":"783:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"786:4:97","nodeType":"YulLiteral","src":"786:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"776:6:97","nodeType":"YulIdentifier","src":"776:6:97"},"nativeSrc":"776:15:97","nodeType":"YulFunctionCall","src":"776:15:97"},"nativeSrc":"776:15:97","nodeType":"YulExpressionStatement","src":"776:15:97"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"646:18:97","nodeType":"YulIdentifier","src":"646:18:97"},{"arguments":[{"name":"length","nativeSrc":"669:6:97","nodeType":"YulIdentifier","src":"669:6:97"},{"kind":"number","nativeSrc":"677:2:97","nodeType":"YulLiteral","src":"677:2:97","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"666:2:97","nodeType":"YulIdentifier","src":"666:2:97"},"nativeSrc":"666:14:97","nodeType":"YulFunctionCall","src":"666:14:97"}],"functionName":{"name":"eq","nativeSrc":"643:2:97","nodeType":"YulIdentifier","src":"643:2:97"},"nativeSrc":"643:38:97","nodeType":"YulFunctionCall","src":"643:38:97"},"nativeSrc":"640:161:97","nodeType":"YulIf","src":"640:161:97"}]},"name":"extract_byte_array_length","nativeSrc":"427:380:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"462:4:97","nodeType":"YulTypedName","src":"462:4:97","type":""}],"returnVariables":[{"name":"length","nativeSrc":"471:6:97","nodeType":"YulTypedName","src":"471:6:97","type":""}],"src":"427:380:97"},{"body":{"nativeSrc":"867:65:97","nodeType":"YulBlock","src":"867:65:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"884:1:97","nodeType":"YulLiteral","src":"884:1:97","type":"","value":"0"},{"name":"ptr","nativeSrc":"887:3:97","nodeType":"YulIdentifier","src":"887:3:97"}],"functionName":{"name":"mstore","nativeSrc":"877:6:97","nodeType":"YulIdentifier","src":"877:6:97"},"nativeSrc":"877:14:97","nodeType":"YulFunctionCall","src":"877:14:97"},"nativeSrc":"877:14:97","nodeType":"YulExpressionStatement","src":"877:14:97"},{"nativeSrc":"900:26:97","nodeType":"YulAssignment","src":"900:26:97","value":{"arguments":[{"kind":"number","nativeSrc":"918:1:97","nodeType":"YulLiteral","src":"918:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"921:4:97","nodeType":"YulLiteral","src":"921:4:97","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"908:9:97","nodeType":"YulIdentifier","src":"908:9:97"},"nativeSrc":"908:18:97","nodeType":"YulFunctionCall","src":"908:18:97"},"variableNames":[{"name":"data","nativeSrc":"900:4:97","nodeType":"YulIdentifier","src":"900:4:97"}]}]},"name":"array_dataslot_bytes_storage","nativeSrc":"812:120:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"850:3:97","nodeType":"YulTypedName","src":"850:3:97","type":""}],"returnVariables":[{"name":"data","nativeSrc":"858:4:97","nodeType":"YulTypedName","src":"858:4:97","type":""}],"src":"812:120:97"},{"body":{"nativeSrc":"1017:462:97","nodeType":"YulBlock","src":"1017:462:97","statements":[{"body":{"nativeSrc":"1050:423:97","nodeType":"YulBlock","src":"1050:423:97","statements":[{"nativeSrc":"1064:11:97","nodeType":"YulVariableDeclaration","src":"1064:11:97","value":{"kind":"number","nativeSrc":"1074:1:97","nodeType":"YulLiteral","src":"1074:1:97","type":"","value":"0"},"variables":[{"name":"_1","nativeSrc":"1068:2:97","nodeType":"YulTypedName","src":"1068:2:97","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1095:1:97","nodeType":"YulLiteral","src":"1095:1:97","type":"","value":"0"},{"name":"array","nativeSrc":"1098:5:97","nodeType":"YulIdentifier","src":"1098:5:97"}],"functionName":{"name":"mstore","nativeSrc":"1088:6:97","nodeType":"YulIdentifier","src":"1088:6:97"},"nativeSrc":"1088:16:97","nodeType":"YulFunctionCall","src":"1088:16:97"},"nativeSrc":"1088:16:97","nodeType":"YulExpressionStatement","src":"1088:16:97"},{"nativeSrc":"1117:30:97","nodeType":"YulVariableDeclaration","src":"1117:30:97","value":{"arguments":[{"kind":"number","nativeSrc":"1139:1:97","nodeType":"YulLiteral","src":"1139:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1142:4:97","nodeType":"YulLiteral","src":"1142:4:97","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"1129:9:97","nodeType":"YulIdentifier","src":"1129:9:97"},"nativeSrc":"1129:18:97","nodeType":"YulFunctionCall","src":"1129:18:97"},"variables":[{"name":"data","nativeSrc":"1121:4:97","nodeType":"YulTypedName","src":"1121:4:97","type":""}]},{"nativeSrc":"1160:57:97","nodeType":"YulVariableDeclaration","src":"1160:57:97","value":{"arguments":[{"name":"data","nativeSrc":"1183:4:97","nodeType":"YulIdentifier","src":"1183:4:97"},{"arguments":[{"kind":"number","nativeSrc":"1193:1:97","nodeType":"YulLiteral","src":"1193:1:97","type":"","value":"5"},{"arguments":[{"name":"startIndex","nativeSrc":"1200:10:97","nodeType":"YulIdentifier","src":"1200:10:97"},{"kind":"number","nativeSrc":"1212:2:97","nodeType":"YulLiteral","src":"1212:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"1196:3:97","nodeType":"YulIdentifier","src":"1196:3:97"},"nativeSrc":"1196:19:97","nodeType":"YulFunctionCall","src":"1196:19:97"}],"functionName":{"name":"shr","nativeSrc":"1189:3:97","nodeType":"YulIdentifier","src":"1189:3:97"},"nativeSrc":"1189:27:97","nodeType":"YulFunctionCall","src":"1189:27:97"}],"functionName":{"name":"add","nativeSrc":"1179:3:97","nodeType":"YulIdentifier","src":"1179:3:97"},"nativeSrc":"1179:38:97","nodeType":"YulFunctionCall","src":"1179:38:97"},"variables":[{"name":"deleteStart","nativeSrc":"1164:11:97","nodeType":"YulTypedName","src":"1164:11:97","type":""}]},{"body":{"nativeSrc":"1254:23:97","nodeType":"YulBlock","src":"1254:23:97","statements":[{"nativeSrc":"1256:19:97","nodeType":"YulAssignment","src":"1256:19:97","value":{"name":"data","nativeSrc":"1271:4:97","nodeType":"YulIdentifier","src":"1271:4:97"},"variableNames":[{"name":"deleteStart","nativeSrc":"1256:11:97","nodeType":"YulIdentifier","src":"1256:11:97"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"1236:10:97","nodeType":"YulIdentifier","src":"1236:10:97"},{"kind":"number","nativeSrc":"1248:4:97","nodeType":"YulLiteral","src":"1248:4:97","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"1233:2:97","nodeType":"YulIdentifier","src":"1233:2:97"},"nativeSrc":"1233:20:97","nodeType":"YulFunctionCall","src":"1233:20:97"},"nativeSrc":"1230:47:97","nodeType":"YulIf","src":"1230:47:97"},{"nativeSrc":"1290:41:97","nodeType":"YulVariableDeclaration","src":"1290:41:97","value":{"arguments":[{"name":"data","nativeSrc":"1304:4:97","nodeType":"YulIdentifier","src":"1304:4:97"},{"arguments":[{"kind":"number","nativeSrc":"1314:1:97","nodeType":"YulLiteral","src":"1314:1:97","type":"","value":"5"},{"arguments":[{"name":"len","nativeSrc":"1321:3:97","nodeType":"YulIdentifier","src":"1321:3:97"},{"kind":"number","nativeSrc":"1326:2:97","nodeType":"YulLiteral","src":"1326:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"1317:3:97","nodeType":"YulIdentifier","src":"1317:3:97"},"nativeSrc":"1317:12:97","nodeType":"YulFunctionCall","src":"1317:12:97"}],"functionName":{"name":"shr","nativeSrc":"1310:3:97","nodeType":"YulIdentifier","src":"1310:3:97"},"nativeSrc":"1310:20:97","nodeType":"YulFunctionCall","src":"1310:20:97"}],"functionName":{"name":"add","nativeSrc":"1300:3:97","nodeType":"YulIdentifier","src":"1300:3:97"},"nativeSrc":"1300:31:97","nodeType":"YulFunctionCall","src":"1300:31:97"},"variables":[{"name":"_2","nativeSrc":"1294:2:97","nodeType":"YulTypedName","src":"1294:2:97","type":""}]},{"nativeSrc":"1344:24:97","nodeType":"YulVariableDeclaration","src":"1344:24:97","value":{"name":"deleteStart","nativeSrc":"1357:11:97","nodeType":"YulIdentifier","src":"1357:11:97"},"variables":[{"name":"start","nativeSrc":"1348:5:97","nodeType":"YulTypedName","src":"1348:5:97","type":""}]},{"body":{"nativeSrc":"1442:21:97","nodeType":"YulBlock","src":"1442:21:97","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"1451:5:97","nodeType":"YulIdentifier","src":"1451:5:97"},{"name":"_1","nativeSrc":"1458:2:97","nodeType":"YulIdentifier","src":"1458:2:97"}],"functionName":{"name":"sstore","nativeSrc":"1444:6:97","nodeType":"YulIdentifier","src":"1444:6:97"},"nativeSrc":"1444:17:97","nodeType":"YulFunctionCall","src":"1444:17:97"},"nativeSrc":"1444:17:97","nodeType":"YulExpressionStatement","src":"1444:17:97"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"1392:5:97","nodeType":"YulIdentifier","src":"1392:5:97"},{"name":"_2","nativeSrc":"1399:2:97","nodeType":"YulIdentifier","src":"1399:2:97"}],"functionName":{"name":"lt","nativeSrc":"1389:2:97","nodeType":"YulIdentifier","src":"1389:2:97"},"nativeSrc":"1389:13:97","nodeType":"YulFunctionCall","src":"1389:13:97"},"nativeSrc":"1381:82:97","nodeType":"YulForLoop","post":{"nativeSrc":"1403:26:97","nodeType":"YulBlock","src":"1403:26:97","statements":[{"nativeSrc":"1405:22:97","nodeType":"YulAssignment","src":"1405:22:97","value":{"arguments":[{"name":"start","nativeSrc":"1418:5:97","nodeType":"YulIdentifier","src":"1418:5:97"},{"kind":"number","nativeSrc":"1425:1:97","nodeType":"YulLiteral","src":"1425:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"1414:3:97","nodeType":"YulIdentifier","src":"1414:3:97"},"nativeSrc":"1414:13:97","nodeType":"YulFunctionCall","src":"1414:13:97"},"variableNames":[{"name":"start","nativeSrc":"1405:5:97","nodeType":"YulIdentifier","src":"1405:5:97"}]}]},"pre":{"nativeSrc":"1385:3:97","nodeType":"YulBlock","src":"1385:3:97","statements":[]},"src":"1381:82:97"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"1033:3:97","nodeType":"YulIdentifier","src":"1033:3:97"},{"kind":"number","nativeSrc":"1038:2:97","nodeType":"YulLiteral","src":"1038:2:97","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"1030:2:97","nodeType":"YulIdentifier","src":"1030:2:97"},"nativeSrc":"1030:11:97","nodeType":"YulFunctionCall","src":"1030:11:97"},"nativeSrc":"1027:446:97","nodeType":"YulIf","src":"1027:446:97"}]},"name":"clean_up_bytearray_end_slots_bytes_storage","nativeSrc":"937:542:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"989:5:97","nodeType":"YulTypedName","src":"989:5:97","type":""},{"name":"len","nativeSrc":"996:3:97","nodeType":"YulTypedName","src":"996:3:97","type":""},{"name":"startIndex","nativeSrc":"1001:10:97","nodeType":"YulTypedName","src":"1001:10:97","type":""}],"src":"937:542:97"},{"body":{"nativeSrc":"1569:81:97","nodeType":"YulBlock","src":"1569:81:97","statements":[{"nativeSrc":"1579:65:97","nodeType":"YulAssignment","src":"1579:65:97","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"1594:4:97","nodeType":"YulIdentifier","src":"1594:4:97"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1612:1:97","nodeType":"YulLiteral","src":"1612:1:97","type":"","value":"3"},{"name":"len","nativeSrc":"1615:3:97","nodeType":"YulIdentifier","src":"1615:3:97"}],"functionName":{"name":"shl","nativeSrc":"1608:3:97","nodeType":"YulIdentifier","src":"1608:3:97"},"nativeSrc":"1608:11:97","nodeType":"YulFunctionCall","src":"1608:11:97"},{"arguments":[{"kind":"number","nativeSrc":"1625:1:97","nodeType":"YulLiteral","src":"1625:1:97","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"1621:3:97","nodeType":"YulIdentifier","src":"1621:3:97"},"nativeSrc":"1621:6:97","nodeType":"YulFunctionCall","src":"1621:6:97"}],"functionName":{"name":"shr","nativeSrc":"1604:3:97","nodeType":"YulIdentifier","src":"1604:3:97"},"nativeSrc":"1604:24:97","nodeType":"YulFunctionCall","src":"1604:24:97"}],"functionName":{"name":"not","nativeSrc":"1600:3:97","nodeType":"YulIdentifier","src":"1600:3:97"},"nativeSrc":"1600:29:97","nodeType":"YulFunctionCall","src":"1600:29:97"}],"functionName":{"name":"and","nativeSrc":"1590:3:97","nodeType":"YulIdentifier","src":"1590:3:97"},"nativeSrc":"1590:40:97","nodeType":"YulFunctionCall","src":"1590:40:97"},{"arguments":[{"kind":"number","nativeSrc":"1636:1:97","nodeType":"YulLiteral","src":"1636:1:97","type":"","value":"1"},{"name":"len","nativeSrc":"1639:3:97","nodeType":"YulIdentifier","src":"1639:3:97"}],"functionName":{"name":"shl","nativeSrc":"1632:3:97","nodeType":"YulIdentifier","src":"1632:3:97"},"nativeSrc":"1632:11:97","nodeType":"YulFunctionCall","src":"1632:11:97"}],"functionName":{"name":"or","nativeSrc":"1587:2:97","nodeType":"YulIdentifier","src":"1587:2:97"},"nativeSrc":"1587:57:97","nodeType":"YulFunctionCall","src":"1587:57:97"},"variableNames":[{"name":"used","nativeSrc":"1579:4:97","nodeType":"YulIdentifier","src":"1579:4:97"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"1484:166:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"1546:4:97","nodeType":"YulTypedName","src":"1546:4:97","type":""},{"name":"len","nativeSrc":"1552:3:97","nodeType":"YulTypedName","src":"1552:3:97","type":""}],"returnVariables":[{"name":"used","nativeSrc":"1560:4:97","nodeType":"YulTypedName","src":"1560:4:97","type":""}],"src":"1484:166:97"},{"body":{"nativeSrc":"1749:1247:97","nodeType":"YulBlock","src":"1749:1247:97","statements":[{"nativeSrc":"1759:24:97","nodeType":"YulVariableDeclaration","src":"1759:24:97","value":{"arguments":[{"name":"src","nativeSrc":"1779:3:97","nodeType":"YulIdentifier","src":"1779:3:97"}],"functionName":{"name":"mload","nativeSrc":"1773:5:97","nodeType":"YulIdentifier","src":"1773:5:97"},"nativeSrc":"1773:10:97","nodeType":"YulFunctionCall","src":"1773:10:97"},"variables":[{"name":"newLen","nativeSrc":"1763:6:97","nodeType":"YulTypedName","src":"1763:6:97","type":""}]},{"body":{"nativeSrc":"1826:22:97","nodeType":"YulBlock","src":"1826:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1828:16:97","nodeType":"YulIdentifier","src":"1828:16:97"},"nativeSrc":"1828:18:97","nodeType":"YulFunctionCall","src":"1828:18:97"},"nativeSrc":"1828:18:97","nodeType":"YulExpressionStatement","src":"1828:18:97"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"1798:6:97","nodeType":"YulIdentifier","src":"1798:6:97"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1814:2:97","nodeType":"YulLiteral","src":"1814:2:97","type":"","value":"64"},{"kind":"number","nativeSrc":"1818:1:97","nodeType":"YulLiteral","src":"1818:1:97","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1810:3:97","nodeType":"YulIdentifier","src":"1810:3:97"},"nativeSrc":"1810:10:97","nodeType":"YulFunctionCall","src":"1810:10:97"},{"kind":"number","nativeSrc":"1822:1:97","nodeType":"YulLiteral","src":"1822:1:97","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1806:3:97","nodeType":"YulIdentifier","src":"1806:3:97"},"nativeSrc":"1806:18:97","nodeType":"YulFunctionCall","src":"1806:18:97"}],"functionName":{"name":"gt","nativeSrc":"1795:2:97","nodeType":"YulIdentifier","src":"1795:2:97"},"nativeSrc":"1795:30:97","nodeType":"YulFunctionCall","src":"1795:30:97"},"nativeSrc":"1792:56:97","nodeType":"YulIf","src":"1792:56:97"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"1900:4:97","nodeType":"YulIdentifier","src":"1900:4:97"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"1938:4:97","nodeType":"YulIdentifier","src":"1938:4:97"}],"functionName":{"name":"sload","nativeSrc":"1932:5:97","nodeType":"YulIdentifier","src":"1932:5:97"},"nativeSrc":"1932:11:97","nodeType":"YulFunctionCall","src":"1932:11:97"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"1906:25:97","nodeType":"YulIdentifier","src":"1906:25:97"},"nativeSrc":"1906:38:97","nodeType":"YulFunctionCall","src":"1906:38:97"},{"name":"newLen","nativeSrc":"1946:6:97","nodeType":"YulIdentifier","src":"1946:6:97"}],"functionName":{"name":"clean_up_bytearray_end_slots_bytes_storage","nativeSrc":"1857:42:97","nodeType":"YulIdentifier","src":"1857:42:97"},"nativeSrc":"1857:96:97","nodeType":"YulFunctionCall","src":"1857:96:97"},"nativeSrc":"1857:96:97","nodeType":"YulExpressionStatement","src":"1857:96:97"},{"nativeSrc":"1962:18:97","nodeType":"YulVariableDeclaration","src":"1962:18:97","value":{"kind":"number","nativeSrc":"1979:1:97","nodeType":"YulLiteral","src":"1979:1:97","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"1966:9:97","nodeType":"YulTypedName","src":"1966:9:97","type":""}]},{"nativeSrc":"1989:23:97","nodeType":"YulVariableDeclaration","src":"1989:23:97","value":{"kind":"number","nativeSrc":"2008:4:97","nodeType":"YulLiteral","src":"2008:4:97","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nativeSrc":"1993:11:97","nodeType":"YulTypedName","src":"1993:11:97","type":""}]},{"nativeSrc":"2021:17:97","nodeType":"YulAssignment","src":"2021:17:97","value":{"kind":"number","nativeSrc":"2034:4:97","nodeType":"YulLiteral","src":"2034:4:97","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"2021:9:97","nodeType":"YulIdentifier","src":"2021:9:97"}]},{"cases":[{"body":{"nativeSrc":"2084:655:97","nodeType":"YulBlock","src":"2084:655:97","statements":[{"nativeSrc":"2098:35:97","nodeType":"YulVariableDeclaration","src":"2098:35:97","value":{"arguments":[{"name":"newLen","nativeSrc":"2117:6:97","nodeType":"YulIdentifier","src":"2117:6:97"},{"arguments":[{"kind":"number","nativeSrc":"2129:2:97","nodeType":"YulLiteral","src":"2129:2:97","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"2125:3:97","nodeType":"YulIdentifier","src":"2125:3:97"},"nativeSrc":"2125:7:97","nodeType":"YulFunctionCall","src":"2125:7:97"}],"functionName":{"name":"and","nativeSrc":"2113:3:97","nodeType":"YulIdentifier","src":"2113:3:97"},"nativeSrc":"2113:20:97","nodeType":"YulFunctionCall","src":"2113:20:97"},"variables":[{"name":"loopEnd","nativeSrc":"2102:7:97","nodeType":"YulTypedName","src":"2102:7:97","type":""}]},{"nativeSrc":"2146:48:97","nodeType":"YulVariableDeclaration","src":"2146:48:97","value":{"arguments":[{"name":"slot","nativeSrc":"2189:4:97","nodeType":"YulIdentifier","src":"2189:4:97"}],"functionName":{"name":"array_dataslot_bytes_storage","nativeSrc":"2160:28:97","nodeType":"YulIdentifier","src":"2160:28:97"},"nativeSrc":"2160:34:97","nodeType":"YulFunctionCall","src":"2160:34:97"},"variables":[{"name":"dstPtr","nativeSrc":"2150:6:97","nodeType":"YulTypedName","src":"2150:6:97","type":""}]},{"nativeSrc":"2207:10:97","nodeType":"YulVariableDeclaration","src":"2207:10:97","value":{"kind":"number","nativeSrc":"2216:1:97","nodeType":"YulLiteral","src":"2216:1:97","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"2211:1:97","nodeType":"YulTypedName","src":"2211:1:97","type":""}]},{"body":{"nativeSrc":"2294:172:97","nodeType":"YulBlock","src":"2294:172:97","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"2319:6:97","nodeType":"YulIdentifier","src":"2319:6:97"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2337:3:97","nodeType":"YulIdentifier","src":"2337:3:97"},{"name":"srcOffset","nativeSrc":"2342:9:97","nodeType":"YulIdentifier","src":"2342:9:97"}],"functionName":{"name":"add","nativeSrc":"2333:3:97","nodeType":"YulIdentifier","src":"2333:3:97"},"nativeSrc":"2333:19:97","nodeType":"YulFunctionCall","src":"2333:19:97"}],"functionName":{"name":"mload","nativeSrc":"2327:5:97","nodeType":"YulIdentifier","src":"2327:5:97"},"nativeSrc":"2327:26:97","nodeType":"YulFunctionCall","src":"2327:26:97"}],"functionName":{"name":"sstore","nativeSrc":"2312:6:97","nodeType":"YulIdentifier","src":"2312:6:97"},"nativeSrc":"2312:42:97","nodeType":"YulFunctionCall","src":"2312:42:97"},"nativeSrc":"2312:42:97","nodeType":"YulExpressionStatement","src":"2312:42:97"},{"nativeSrc":"2371:24:97","nodeType":"YulAssignment","src":"2371:24:97","value":{"arguments":[{"name":"dstPtr","nativeSrc":"2385:6:97","nodeType":"YulIdentifier","src":"2385:6:97"},{"kind":"number","nativeSrc":"2393:1:97","nodeType":"YulLiteral","src":"2393:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"2381:3:97","nodeType":"YulIdentifier","src":"2381:3:97"},"nativeSrc":"2381:14:97","nodeType":"YulFunctionCall","src":"2381:14:97"},"variableNames":[{"name":"dstPtr","nativeSrc":"2371:6:97","nodeType":"YulIdentifier","src":"2371:6:97"}]},{"nativeSrc":"2412:40:97","nodeType":"YulAssignment","src":"2412:40:97","value":{"arguments":[{"name":"srcOffset","nativeSrc":"2429:9:97","nodeType":"YulIdentifier","src":"2429:9:97"},{"name":"srcOffset_1","nativeSrc":"2440:11:97","nodeType":"YulIdentifier","src":"2440:11:97"}],"functionName":{"name":"add","nativeSrc":"2425:3:97","nodeType":"YulIdentifier","src":"2425:3:97"},"nativeSrc":"2425:27:97","nodeType":"YulFunctionCall","src":"2425:27:97"},"variableNames":[{"name":"srcOffset","nativeSrc":"2412:9:97","nodeType":"YulIdentifier","src":"2412:9:97"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"2241:1:97","nodeType":"YulIdentifier","src":"2241:1:97"},{"name":"loopEnd","nativeSrc":"2244:7:97","nodeType":"YulIdentifier","src":"2244:7:97"}],"functionName":{"name":"lt","nativeSrc":"2238:2:97","nodeType":"YulIdentifier","src":"2238:2:97"},"nativeSrc":"2238:14:97","nodeType":"YulFunctionCall","src":"2238:14:97"},"nativeSrc":"2230:236:97","nodeType":"YulForLoop","post":{"nativeSrc":"2253:28:97","nodeType":"YulBlock","src":"2253:28:97","statements":[{"nativeSrc":"2255:24:97","nodeType":"YulAssignment","src":"2255:24:97","value":{"arguments":[{"name":"i","nativeSrc":"2264:1:97","nodeType":"YulIdentifier","src":"2264:1:97"},{"name":"srcOffset_1","nativeSrc":"2267:11:97","nodeType":"YulIdentifier","src":"2267:11:97"}],"functionName":{"name":"add","nativeSrc":"2260:3:97","nodeType":"YulIdentifier","src":"2260:3:97"},"nativeSrc":"2260:19:97","nodeType":"YulFunctionCall","src":"2260:19:97"},"variableNames":[{"name":"i","nativeSrc":"2255:1:97","nodeType":"YulIdentifier","src":"2255:1:97"}]}]},"pre":{"nativeSrc":"2234:3:97","nodeType":"YulBlock","src":"2234:3:97","statements":[]},"src":"2230:236:97"},{"body":{"nativeSrc":"2514:166:97","nodeType":"YulBlock","src":"2514:166:97","statements":[{"nativeSrc":"2532:43:97","nodeType":"YulVariableDeclaration","src":"2532:43:97","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2559:3:97","nodeType":"YulIdentifier","src":"2559:3:97"},{"name":"srcOffset","nativeSrc":"2564:9:97","nodeType":"YulIdentifier","src":"2564:9:97"}],"functionName":{"name":"add","nativeSrc":"2555:3:97","nodeType":"YulIdentifier","src":"2555:3:97"},"nativeSrc":"2555:19:97","nodeType":"YulFunctionCall","src":"2555:19:97"}],"functionName":{"name":"mload","nativeSrc":"2549:5:97","nodeType":"YulIdentifier","src":"2549:5:97"},"nativeSrc":"2549:26:97","nodeType":"YulFunctionCall","src":"2549:26:97"},"variables":[{"name":"lastValue","nativeSrc":"2536:9:97","nodeType":"YulTypedName","src":"2536:9:97","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"2599:6:97","nodeType":"YulIdentifier","src":"2599:6:97"},{"arguments":[{"name":"lastValue","nativeSrc":"2611:9:97","nodeType":"YulIdentifier","src":"2611:9:97"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2638:1:97","nodeType":"YulLiteral","src":"2638:1:97","type":"","value":"3"},{"name":"newLen","nativeSrc":"2641:6:97","nodeType":"YulIdentifier","src":"2641:6:97"}],"functionName":{"name":"shl","nativeSrc":"2634:3:97","nodeType":"YulIdentifier","src":"2634:3:97"},"nativeSrc":"2634:14:97","nodeType":"YulFunctionCall","src":"2634:14:97"},{"kind":"number","nativeSrc":"2650:3:97","nodeType":"YulLiteral","src":"2650:3:97","type":"","value":"248"}],"functionName":{"name":"and","nativeSrc":"2630:3:97","nodeType":"YulIdentifier","src":"2630:3:97"},"nativeSrc":"2630:24:97","nodeType":"YulFunctionCall","src":"2630:24:97"},{"arguments":[{"kind":"number","nativeSrc":"2660:1:97","nodeType":"YulLiteral","src":"2660:1:97","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"2656:3:97","nodeType":"YulIdentifier","src":"2656:3:97"},"nativeSrc":"2656:6:97","nodeType":"YulFunctionCall","src":"2656:6:97"}],"functionName":{"name":"shr","nativeSrc":"2626:3:97","nodeType":"YulIdentifier","src":"2626:3:97"},"nativeSrc":"2626:37:97","nodeType":"YulFunctionCall","src":"2626:37:97"}],"functionName":{"name":"not","nativeSrc":"2622:3:97","nodeType":"YulIdentifier","src":"2622:3:97"},"nativeSrc":"2622:42:97","nodeType":"YulFunctionCall","src":"2622:42:97"}],"functionName":{"name":"and","nativeSrc":"2607:3:97","nodeType":"YulIdentifier","src":"2607:3:97"},"nativeSrc":"2607:58:97","nodeType":"YulFunctionCall","src":"2607:58:97"}],"functionName":{"name":"sstore","nativeSrc":"2592:6:97","nodeType":"YulIdentifier","src":"2592:6:97"},"nativeSrc":"2592:74:97","nodeType":"YulFunctionCall","src":"2592:74:97"},"nativeSrc":"2592:74:97","nodeType":"YulExpressionStatement","src":"2592:74:97"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"2485:7:97","nodeType":"YulIdentifier","src":"2485:7:97"},{"name":"newLen","nativeSrc":"2494:6:97","nodeType":"YulIdentifier","src":"2494:6:97"}],"functionName":{"name":"lt","nativeSrc":"2482:2:97","nodeType":"YulIdentifier","src":"2482:2:97"},"nativeSrc":"2482:19:97","nodeType":"YulFunctionCall","src":"2482:19:97"},"nativeSrc":"2479:201:97","nodeType":"YulIf","src":"2479:201:97"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"2700:4:97","nodeType":"YulIdentifier","src":"2700:4:97"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2714:1:97","nodeType":"YulLiteral","src":"2714:1:97","type":"","value":"1"},{"name":"newLen","nativeSrc":"2717:6:97","nodeType":"YulIdentifier","src":"2717:6:97"}],"functionName":{"name":"shl","nativeSrc":"2710:3:97","nodeType":"YulIdentifier","src":"2710:3:97"},"nativeSrc":"2710:14:97","nodeType":"YulFunctionCall","src":"2710:14:97"},{"kind":"number","nativeSrc":"2726:1:97","nodeType":"YulLiteral","src":"2726:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"2706:3:97","nodeType":"YulIdentifier","src":"2706:3:97"},"nativeSrc":"2706:22:97","nodeType":"YulFunctionCall","src":"2706:22:97"}],"functionName":{"name":"sstore","nativeSrc":"2693:6:97","nodeType":"YulIdentifier","src":"2693:6:97"},"nativeSrc":"2693:36:97","nodeType":"YulFunctionCall","src":"2693:36:97"},"nativeSrc":"2693:36:97","nodeType":"YulExpressionStatement","src":"2693:36:97"}]},"nativeSrc":"2077:662:97","nodeType":"YulCase","src":"2077:662:97","value":{"kind":"number","nativeSrc":"2082:1:97","nodeType":"YulLiteral","src":"2082:1:97","type":"","value":"1"}},{"body":{"nativeSrc":"2756:234:97","nodeType":"YulBlock","src":"2756:234:97","statements":[{"nativeSrc":"2770:14:97","nodeType":"YulVariableDeclaration","src":"2770:14:97","value":{"kind":"number","nativeSrc":"2783:1:97","nodeType":"YulLiteral","src":"2783:1:97","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"2774:5:97","nodeType":"YulTypedName","src":"2774:5:97","type":""}]},{"body":{"nativeSrc":"2819:67:97","nodeType":"YulBlock","src":"2819:67:97","statements":[{"nativeSrc":"2837:35:97","nodeType":"YulAssignment","src":"2837:35:97","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2856:3:97","nodeType":"YulIdentifier","src":"2856:3:97"},{"name":"srcOffset","nativeSrc":"2861:9:97","nodeType":"YulIdentifier","src":"2861:9:97"}],"functionName":{"name":"add","nativeSrc":"2852:3:97","nodeType":"YulIdentifier","src":"2852:3:97"},"nativeSrc":"2852:19:97","nodeType":"YulFunctionCall","src":"2852:19:97"}],"functionName":{"name":"mload","nativeSrc":"2846:5:97","nodeType":"YulIdentifier","src":"2846:5:97"},"nativeSrc":"2846:26:97","nodeType":"YulFunctionCall","src":"2846:26:97"},"variableNames":[{"name":"value","nativeSrc":"2837:5:97","nodeType":"YulIdentifier","src":"2837:5:97"}]}]},"condition":{"name":"newLen","nativeSrc":"2800:6:97","nodeType":"YulIdentifier","src":"2800:6:97"},"nativeSrc":"2797:89:97","nodeType":"YulIf","src":"2797:89:97"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"2906:4:97","nodeType":"YulIdentifier","src":"2906:4:97"},{"arguments":[{"name":"value","nativeSrc":"2965:5:97","nodeType":"YulIdentifier","src":"2965:5:97"},{"name":"newLen","nativeSrc":"2972:6:97","nodeType":"YulIdentifier","src":"2972:6:97"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"2912:52:97","nodeType":"YulIdentifier","src":"2912:52:97"},"nativeSrc":"2912:67:97","nodeType":"YulFunctionCall","src":"2912:67:97"}],"functionName":{"name":"sstore","nativeSrc":"2899:6:97","nodeType":"YulIdentifier","src":"2899:6:97"},"nativeSrc":"2899:81:97","nodeType":"YulFunctionCall","src":"2899:81:97"},"nativeSrc":"2899:81:97","nodeType":"YulExpressionStatement","src":"2899:81:97"}]},"nativeSrc":"2748:242:97","nodeType":"YulCase","src":"2748:242:97","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"2057:6:97","nodeType":"YulIdentifier","src":"2057:6:97"},{"kind":"number","nativeSrc":"2065:2:97","nodeType":"YulLiteral","src":"2065:2:97","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"2054:2:97","nodeType":"YulIdentifier","src":"2054:2:97"},"nativeSrc":"2054:14:97","nodeType":"YulFunctionCall","src":"2054:14:97"},"nativeSrc":"2047:943:97","nodeType":"YulSwitch","src":"2047:943:97"}]},"name":"copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage","nativeSrc":"1655:1341:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"1734:4:97","nodeType":"YulTypedName","src":"1734:4:97","type":""},{"name":"src","nativeSrc":"1740:3:97","nodeType":"YulTypedName","src":"1740:3:97","type":""}],"src":"1655:1341:97"},{"body":{"nativeSrc":"3146:131:97","nodeType":"YulBlock","src":"3146:131:97","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3163:3:97","nodeType":"YulIdentifier","src":"3163:3:97"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3176:3:97","nodeType":"YulLiteral","src":"3176:3:97","type":"","value":"240"},{"name":"value0","nativeSrc":"3181:6:97","nodeType":"YulIdentifier","src":"3181:6:97"}],"functionName":{"name":"shl","nativeSrc":"3172:3:97","nodeType":"YulIdentifier","src":"3172:3:97"},"nativeSrc":"3172:16:97","nodeType":"YulFunctionCall","src":"3172:16:97"},{"arguments":[{"kind":"number","nativeSrc":"3194:3:97","nodeType":"YulLiteral","src":"3194:3:97","type":"","value":"240"},{"kind":"number","nativeSrc":"3199:5:97","nodeType":"YulLiteral","src":"3199:5:97","type":"","value":"65535"}],"functionName":{"name":"shl","nativeSrc":"3190:3:97","nodeType":"YulIdentifier","src":"3190:3:97"},"nativeSrc":"3190:15:97","nodeType":"YulFunctionCall","src":"3190:15:97"}],"functionName":{"name":"and","nativeSrc":"3168:3:97","nodeType":"YulIdentifier","src":"3168:3:97"},"nativeSrc":"3168:38:97","nodeType":"YulFunctionCall","src":"3168:38:97"}],"functionName":{"name":"mstore","nativeSrc":"3156:6:97","nodeType":"YulIdentifier","src":"3156:6:97"},"nativeSrc":"3156:51:97","nodeType":"YulFunctionCall","src":"3156:51:97"},"nativeSrc":"3156:51:97","nodeType":"YulExpressionStatement","src":"3156:51:97"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"3227:3:97","nodeType":"YulIdentifier","src":"3227:3:97"},{"kind":"number","nativeSrc":"3232:1:97","nodeType":"YulLiteral","src":"3232:1:97","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"3223:3:97","nodeType":"YulIdentifier","src":"3223:3:97"},"nativeSrc":"3223:11:97","nodeType":"YulFunctionCall","src":"3223:11:97"},{"name":"value1","nativeSrc":"3236:6:97","nodeType":"YulIdentifier","src":"3236:6:97"}],"functionName":{"name":"mstore","nativeSrc":"3216:6:97","nodeType":"YulIdentifier","src":"3216:6:97"},"nativeSrc":"3216:27:97","nodeType":"YulFunctionCall","src":"3216:27:97"},"nativeSrc":"3216:27:97","nodeType":"YulExpressionStatement","src":"3216:27:97"},{"nativeSrc":"3252:19:97","nodeType":"YulAssignment","src":"3252:19:97","value":{"arguments":[{"name":"pos","nativeSrc":"3263:3:97","nodeType":"YulIdentifier","src":"3263:3:97"},{"kind":"number","nativeSrc":"3268:2:97","nodeType":"YulLiteral","src":"3268:2:97","type":"","value":"34"}],"functionName":{"name":"add","nativeSrc":"3259:3:97","nodeType":"YulIdentifier","src":"3259:3:97"},"nativeSrc":"3259:12:97","nodeType":"YulFunctionCall","src":"3259:12:97"},"variableNames":[{"name":"end","nativeSrc":"3252:3:97","nodeType":"YulIdentifier","src":"3252:3:97"}]}]},"name":"abi_encode_tuple_packed_t_uint16_t_uint256__to_t_uint16_t_uint256__nonPadded_inplace_fromStack_reversed","nativeSrc":"3001:276:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3114:3:97","nodeType":"YulTypedName","src":"3114:3:97","type":""},{"name":"value1","nativeSrc":"3119:6:97","nodeType":"YulTypedName","src":"3119:6:97","type":""},{"name":"value0","nativeSrc":"3127:6:97","nodeType":"YulTypedName","src":"3127:6:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"3138:3:97","nodeType":"YulTypedName","src":"3138:3:97","type":""}],"src":"3001:276:97"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_uint16_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, 0xffff))) { revert(0, 0) }\n        value0 := value\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function array_dataslot_bytes_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function clean_up_bytearray_end_slots_bytes_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            let _1 := 0\n            mstore(0, array)\n            let data := keccak256(0, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _2 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _2) { start := add(start, 1) }\n            { sstore(start, _1) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage(slot, src)\n    {\n        let newLen := mload(src)\n        if gt(newLen, sub(shl(64, 1), 1)) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_bytes_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        let srcOffset_1 := 0x20\n        srcOffset := 0x20\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(31))\n            let dstPtr := array_dataslot_bytes_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n            {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, srcOffset_1)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n    function abi_encode_tuple_packed_t_uint16_t_uint256__to_t_uint16_t_uint256__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        mstore(pos, and(shl(240, value0), shl(240, 65535)))\n        mstore(add(pos, 2), value1)\n        end := add(pos, 34)\n    }\n}","id":97,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"6080604052600c805461ffff191661010117905534801561001f57600080fd5b5060405161399a38038061399a83398101604081905261003e91610134565b6001805461ffff191661ffff83161781556040805160a0810182526402540be400808252602080830191909152678ac7230489e8000082840152606460608301526080909101929092527402540be400000000000000000000000002540be4006002557801000000000000006400000000000000008ac7230489e800006003558051808201909152670de0b6b3a76400008082526103e891909201819052600491909155600555662386f26fc1000060065561012062030d4060408051600160f01b602082015260228082019390935281518082039093018352604201905290565b60079061012d9082610200565b50506102bf565b60006020828403121561014657600080fd5b815161ffff8116811461015857600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061018957607f821691505b6020821081036101a957634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156101fb576000816000526020600020601f850160051c810160208610156101d85750805b601f850160051c820191505b818110156101f7578281556001016101e4565b5050505b505050565b81516001600160401b038111156102195761021961015f565b61022d816102278454610175565b846101af565b602080601f831160018114610262576000841561024a5750858301515b600019600386901b1c1916600185901b1785556101f7565b600085815260208120601f198616915b8281101561029157888601518255948401946001909101908401610272565b50858210156102af5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6136cc806102ce6000396000f3fe60806040526004361061026a5760003560e01c80639924d33b11610153578063ca066b35116100cb578063e97a448a1161007f578063f9cd3ceb11610064578063f9cd3ceb146109b2578063fbba623b146109c8578063fdc07c70146109e857600080fd5b8063e97a448a14610964578063f5ecbdbc1461098057600080fd5b8063d23104f1116100b0578063d23104f11461090a578063da1a7c9a146102c4578063db14f3051461094957600080fd5b8063ca066b35146108c8578063cbed8b9c146108e957600080fd5b8063b6d9ef6011610122578063c2fa481311610107578063c2fa481314610852578063c580310014610872578063c81b383a1461088557600080fd5b8063b6d9ef60146107c4578063c08f15a1146107e457600080fd5b80639924d33b1461070f5780639c729da1146104e3578063aaff5f1614610762578063b20864991461078257600080fd5b80633408e470116101e657806371ba2fd6116101b55780637a1457481161019a5780637a145748146105e25780637f6df8e61461061b578063907c5e7e1461064957600080fd5b806371ba2fd6146104e357806376a386dc1461052857600080fd5b80633408e4701461046a5780633e0dd83e1461048357806340a7bb10146104a357806342d65a8d146104c357600080fd5b806310ddb1371161023d578063240de27711610222578063240de27714610357578063272bd3841461037d5780632c365e251461039f57600080fd5b806310ddb137146102a457806312a9ee6b1461032857600080fd5b806307d3277f1461026f57806307e0db17146102a4578063096568f6146102c45780630eaf6ea6146102f8575b600080fd5b34801561027b57600080fd5b5060045460055461028a919082565b604080519283526020830191909152015b60405180910390f35b3480156102b057600080fd5b506102c26102bf3660046127d7565b50565b005b3480156102d057600080fd5b506102e56102df366004612814565b50600190565b60405161ffff909116815260200161029b565b34801561030457600080fd5b5061031861031336600461287a565b610a08565b604051901515815260200161029b565b34801561033457600080fd5b506103486103433660046129a7565b610a4e565b60405161029b93929190612a62565b34801561036357600080fd5b506102c2610372366004612aaa565b600491909155600555565b34801561038957600080fd5b50610392610b6a565b60405161029b9190612acc565b3480156103ab57600080fd5b506102c26103ba366004612b17565b6fffffffffffffffffffffffffffffffff94851670010000000000000000000000000000000094861685021760025560038054939095167fffffffffffffffff0000000000000000000000000000000000000000000000009093169290921767ffffffffffffffff9182169093029290921777ffffffffffffffffffffffffffffffffffffffffffffffff1678010000000000000000000000000000000000000000000000009190921602179055565b34801561047657600080fd5b5060015461ffff166102e5565b34801561048f57600080fd5b506001546103189062010000900460ff1681565b3480156104af57600080fd5b5061028a6104be366004612b7c565b610bf8565b3480156104cf57600080fd5b506102c26104de36600461287a565b610cf7565b3480156104ef57600080fd5b506105036104fe366004612814565b503090565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161029b565b34801561053457600080fd5b506105a7610543366004612c1d565b600a60209081526000928352604090922081518083018401805192815290840192909301919091209152805460019091015467ffffffffffffffff82169168010000000000000000900473ffffffffffffffffffffffffffffffffffffffff169083565b6040805167ffffffffffffffff909416845273ffffffffffffffffffffffffffffffffffffffff90921660208401529082015260600161029b565b3480156105ee57600080fd5b506106026105fd366004612c6b565b610e68565b60405167ffffffffffffffff909116815260200161029b565b34801561062757600080fd5b5061063b61063636600461287a565b610eae565b60405190815260200161029b565b34801561065557600080fd5b506002546003546106c1916fffffffffffffffffffffffffffffffff80821692700100000000000000000000000000000000928390048216929181169167ffffffffffffffff908204811691780100000000000000000000000000000000000000000000000090041685565b604080516fffffffffffffffffffffffffffffffff96871681529486166020860152929094169183019190915267ffffffffffffffff9081166060830152909116608082015260a00161029b565b34801561071b57600080fd5b5061060261072a366004612c1d565b6008602090815260009283526040909220815180830184018051928152908401929093019190912091525467ffffffffffffffff1681565b34801561076e57600080fd5b506102c261077d366004612ca2565b610eea565b34801561078e57600080fd5b5061060261079d366004612c6b565b600960209081526000928352604080842090915290825290205467ffffffffffffffff1681565b3480156107d057600080fd5b506102c26107df366004612d23565b600655565b3480156107f057600080fd5b506102c26107ff366004612d3c565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260208190526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001691909216179055565b34801561085e57600080fd5b506102c261086d366004612d5a565b611152565b6102c2610880366004612e0a565b611aab565b34801561089157600080fd5b506105036108a0366004612814565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b3480156108d457600080fd5b50610318600c54610100900460ff1660021490565b3480156108f557600080fd5b506102c2610904366004612ed2565b50505050565b34801561091657600080fd5b506102c2600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff1662010000179055565b34801561095557600080fd5b506001546102e59061ffff1681565b34801561097057600080fd5b50610318600c5460ff1660021490565b34801561098c57600080fd5b5061039261099b366004612f3a565b604080516020810190915260008152949350505050565b3480156109be57600080fd5b5061063b60065481565b3480156109d457600080fd5b506102c26109e3366004612f87565b612127565b3480156109f457600080fd5b50610602610a0336600461287a565b612137565b61ffff83166000908152600a60205260408082209051829190610a2e9086908690612fc4565b9081526040519081900360200190206001015415159150505b9392505050565b600b6020908152600084815260409020835180850183018051928152908301928501929092209152805482908110610a8557600080fd5b60009182526020909120600290910201805460018201805473ffffffffffffffffffffffffffffffffffffffff831696507401000000000000000000000000000000000000000090920467ffffffffffffffff169450919250610ae790612fd4565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1390612fd4565b8015610b605780601f10610b3557610100808354040283529160200191610b60565b820191906000526020600020905b815481529060010190602001808311610b4357829003601f168201915b5050505050905083565b60078054610b7790612fd4565b80601f0160208091040260200160405190810160405280929190818152602001828054610ba390612fd4565b8015610bf05780601f10610bc557610100808354040283529160200191610bf0565b820191906000526020600020905b815481529060010190602001808311610bd357829003601f168201915b505050505081565b600080600080845111610c955760078054610c1290612fd4565b80601f0160208091040260200160405190810160405280929190818152602001828054610c3e90612fd4565b8015610c8b5780601f10610c6057610100808354040283529160200191610c8b565b820191906000526020600020905b815481529060010190602001808311610c6e57829003601f168201915b5050505050610c97565b835b90506000610caa8960018a8a518661217d565b90506000610cbb8783600654612398565b905086610ccb5780945084610cd0565b809350835b50600654610cde8387613056565b610ce89190613056565b94505050509550959350505050565b61ffff83166000908152600a60205260408082209051610d1a9085908590612fc4565b9081526040519081900360200190206001810154909150610d825760405162461bcd60e51b815260206004820181905260248201527f4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f616460448201526064015b60405180910390fd5b805468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff163314610df45760405162461bcd60e51b815260206004820152601d60248201527f4c617965725a65726f4d6f636b3a20696e76616c69642063616c6c65720000006044820152606401610d79565b80547fffffffff00000000000000000000000000000000000000000000000000000000168155600060018201556040517f23d2684f396e92a6e2ff2d16f98e6fea00d50cb27a64b531bc0748f730211f9890610e55908690869086906130b2565b60405180910390a16109048484846123d5565b61ffff8216600090815260096020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205467ffffffffffffffff165b92915050565b61ffff83166000908152600b60205260408082209051610ed19085908590612fc4565b9081526040519081900360200190205490509392505050565b61ffff85166000908152600a60205260408082209051610f0d9087908790612fc4565b9081526040519081900360200190206001810154909150610f705760405162461bcd60e51b815260206004820181905260248201527f4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f61646044820152606401610d79565b805467ffffffffffffffff1682148015610fa4575080600101548383604051610f9a929190612fc4565b6040518091039020145b610ff05760405162461bcd60e51b815260206004820152601e60248201527f4c617965725a65726f4d6f636b3a20696e76616c6964207061796c6f616400006044820152606401610d79565b80547fffffffff000000000000000000000000000000000000000000000000000000008116825560006001830181905561ffff881681526008602052604080822090516801000000000000000090930473ffffffffffffffffffffffffffffffffffffffff16926110649089908990612fc4565b908152604051908190036020018120547e1d356700000000000000000000000000000000000000000000000000000000825267ffffffffffffffff16915073ffffffffffffffffffffffffffffffffffffffff831690621d3567906110d7908b908b908b9087908c908c906004016130d0565b600060405180830381600087803b1580156110f157600080fd5b505af1158015611105573d6000803e3d6000fd5b505050507f612434f39581c8e7d99746c9c20c6eb0ce8c0eb99f007c5719d620841370957d888888848660405161114095949392919061311e565b60405180910390a15050505050505050565b600c54610100900460ff166001146111d15760405162461bcd60e51b8152602060048201526024808201527f4c617965725a65726f4d6f636b3a206e6f2072656365697665207265656e747260448201527f616e6379000000000000000000000000000000000000000000000000000000006064820152608401610d79565b600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661020017905561ffff88166000908152600a60205260408082209051611220908a908a90612fc4565b90815260200160405180910390209050600860008a61ffff1661ffff168152602001908152602001600020888860405161125b929190612fc4565b90815260405190819003602001902080546000906112829067ffffffffffffffff16613174565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905567ffffffffffffffff168567ffffffffffffffff16146113095760405162461bcd60e51b815260206004820152601a60248201527f4c617965725a65726f4d6f636b3a2077726f6e67206e6f6e63650000000000006044820152606401610d79565b6001810154156116d15761ffff89166000908152600b60205260408082209051611336908b908b90612fc4565b90815260200160405180910390209050600060405180606001604052808973ffffffffffffffffffffffffffffffffffffffff1681526020018867ffffffffffffffff16815260200186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505091525082549091501561162b578154600181810184556000848152602090819020845160029094020180549185015167ffffffffffffffff1674010000000000000000000000000000000000000000027fffffffff0000000000000000000000000000000000000000000000000000000090921673ffffffffffffffffffffffffffffffffffffffff90941693909317178255604083015183929182019061145c90826131ec565b50505060005b825461147090600190613306565b8110156115795782818154811061148957611489613319565b9060005260206000209060020201838260016114a59190613056565b815481106114b5576114b5613319565b600091825260209091208254600290920201805473ffffffffffffffffffffffffffffffffffffffff9092167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117825583547fffffffff0000000000000000000000000000000000000000000000000000000090931617740100000000000000000000000000000000000000009283900467ffffffffffffffff1690920291909117815560018082019061156e90840182613348565b505050600101611462565b50808260008154811061158e5761158e613319565b6000918252602091829020835160029092020180549284015167ffffffffffffffff1674010000000000000000000000000000000000000000027fffffffff0000000000000000000000000000000000000000000000000000000090931673ffffffffffffffffffffffffffffffffffffffff909216919091179190911781556040820151600182019061162290826131ec565b509050506116ca565b8154600181810184556000848152602090819020845160029094020180549185015167ffffffffffffffff1674010000000000000000000000000000000000000000027fffffffff0000000000000000000000000000000000000000000000000000000090921673ffffffffffffffffffffffffffffffffffffffff9094169390931717825560408301518392918201906116c690826131ec565b5050505b5050611a74565b60015462010000900460ff16156118545760405180606001604052808484905067ffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff168152602001848460405161172c929190612fc4565b604080519182900390912090915261ffff8b166000908152600a602052819020905161175b908b908b90612fc4565b908152604080519182900360209081018320845181548684015173ffffffffffffffffffffffffffffffffffffffff1668010000000000000000027fffffffff0000000000000000000000000000000000000000000000000000000090911667ffffffffffffffff909216919091171781559382015160019094019390935591810182526000815290517f0f9e4d95b62f08222d612b5ab92039cd8fbbbea550a95e8df9f927436bbdf5db9161181f918c918c918c918c918c918b918b919061347d565b60405180910390a1600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff169055611a74565b6040517e1d356700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff871690621d35679086906118b0908d908d908d908c908b908b906004016130d0565b600060405180830381600088803b1580156118ca57600080fd5b5087f1935050505080156118dc575060015b611a74573d80801561190a576040519150601f19603f3d011682016040523d82523d6000602084013e61190f565b606091505b5060405180606001604052808585905067ffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff168152602001858560405161195a929190612fc4565b604080519182900390912090915261ffff8c166000908152600a6020528190209051611989908c908c90612fc4565b908152604080519182900360209081018320845181549286015173ffffffffffffffffffffffffffffffffffffffff1668010000000000000000027fffffffff0000000000000000000000000000000000000000000000000000000090931667ffffffffffffffff909116179190911781559201516001909201919091557f0f9e4d95b62f08222d612b5ab92039cd8fbbbea550a95e8df9f927436bbdf5db90611a42908c908c908c908c908c908b908b908a9061347d565b60405180910390a150600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff1690555b5050600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905550505050505050565b600c5460ff16600114611b265760405162461bcd60e51b815260206004820152602160248201527f4c617965725a65726f4d6f636b3a206e6f2073656e64207265656e7472616e6360448201527f79000000000000000000000000000000000000000000000000000000000000006064820152608401610d79565b600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660021790558551602814611bc85760405162461bcd60e51b815260206004820152602c60248201527f4c617965725a65726f4d6f636b3a20696e636f72726563742072656d6f74652060448201527f616464726573732073697a6500000000000000000000000000000000000000006064820152608401610d79565b601486015173ffffffffffffffffffffffffffffffffffffffff8082166000908152602081905260409020541680611c685760405162461bcd60e51b815260206004820152603760248201527f4c617965725a65726f4d6f636b3a2064657374696e6174696f6e204c6179657260448201527f5a65726f20456e64706f696e74206e6f7420666f756e640000000000000000006064820152608401610d79565b600080845111611d025760078054611c7f90612fd4565b80601f0160208091040260200160405190810160405280929190818152602001828054611cab90612fd4565b8015611cf85780601f10611ccd57610100808354040283529160200191611cf8565b820191906000526020600020905b815481529060010190602001808311611cdb57829003601f168201915b5050505050611d04565b835b90506000611d628b338b8b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505073ffffffffffffffffffffffffffffffffffffffff8a16151586610bf8565b50905080341015611ddb5760405162461bcd60e51b815260206004820152602960248201527f4c617965725a65726f4d6f636b3a206e6f7420656e6f756768206e617469766560448201527f20666f72206665657300000000000000000000000000000000000000000000006064820152608401610d79565b61ffff8b166000908152600960209081526040808320338452909152812080548290611e109067ffffffffffffffff16613174565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055905060008234611e459190613306565b90508015611eff5760008973ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114611ea7576040519150601f19603f3d011682016040523d82523d6000602084013e611eac565b606091505b5050905080611efd5760405162461bcd60e51b815260206004820152601f60248201527f4c617965725a65726f4d6f636b3a206661696c656420746f20726566756e64006044820152606401610d79565b505b6000806000611f0d8761262e565b91955093509150508115611fc95760008173ffffffffffffffffffffffffffffffffffffffff168360405160006040518083038185875af1925050503d8060008114611f75576040519150601f19603f3d011682016040523d82523d6000602084013e611f7a565b606091505b5050905080611fc757604051839073ffffffffffffffffffffffffffffffffffffffff8416907f2c7a964ca3de5ec1d42d9822f9bbd0eb142a59cc9f855e9d93813b773192c7a390600090a35b505b6040517fffffffffffffffffffffffffffffffffffffffff00000000000000000000000033606090811b821660208401528b901b166034820152600090604801604051602081830303815290604052905060008f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505090508973ffffffffffffffffffffffffffffffffffffffff1663c2fa4813600160009054906101000a900461ffff16848e8b8a876040518763ffffffff1660e01b81526004016120b6969594939291906134fd565b600060405180830381600087803b1580156120d057600080fd5b505af11580156120e4573d6000803e3d6000fd5b5050600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555050505050505050505050505050505050505050565b600761213382826131ec565b5050565b61ffff8316600090815260086020526040808220905161215a9085908590612fc4565b9081526040519081900360200190205467ffffffffffffffff1690509392505050565b60008060008061218c8561262e565b5092509250925060008361ffff16600203612238576003546fffffffffffffffffffffffffffffffff1682111561222b5760405162461bcd60e51b815260206004820152602660248201527f4c617965725a65726f4d6f636b3a206473744e6174697665416d7420746f6f2060448201527f6c617267652000000000000000000000000000000000000000000000000000006064820152608401610d79565b6122358282613056565b90505b600354600090612267908590700100000000000000000000000000000000900467ffffffffffffffff16613056565b60025461229a919070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1661355e565b90506122a68183613056565b6002549092506000906402540be400906122d2906fffffffffffffffffffffffffffffffff168561355e565b6122dc91906135a4565b6002546003549192506000916402540be400916fffffffffffffffffffffffffffffffff8082169261234b92780100000000000000000000000000000000000000000000000090910467ffffffffffffffff1691700100000000000000000000000000000000909104166135b8565b61235591906135b8565b61235f91906135ec565b6fffffffffffffffffffffffffffffffff16905061237d818b61355e565b6123879083613056565b9d9c50505050505050505050505050565b600083156123a95750600454610a47565b600554612710906123ba8486613056565b6123c4919061355e565b6123ce91906135a4565b9050610a47565b61ffff83166000908152600b602052604080822090516123f89085908590612fc4565b908152602001604051809103902090505b805415610904578054600090829061242390600190613306565b8154811061243357612433613319565b6000918252602091829020604080516060810182526002909302909101805473ffffffffffffffffffffffffffffffffffffffff8116845267ffffffffffffffff740100000000000000000000000000000000000000009091041693830193909352600183018054929392918401916124ab90612fd4565b80601f01602080910402602001604051908101604052809291908181526020018280546124d790612fd4565b80156125245780601f106124f957610100808354040283529160200191612524565b820191906000526020600020905b81548152906001019060200180831161250757829003601f168201915b5050505050815250509050806000015173ffffffffffffffffffffffffffffffffffffffff16621d3567868686856020015186604001516040518663ffffffff1660e01b815260040161257b95949392919061361b565b600060405180830381600087803b15801561259557600080fd5b505af11580156125a9573d6000803e3d6000fd5b50505050818054806125bd576125bd613667565b60008281526020812060027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9093019283020180547fffffffff00000000000000000000000000000000000000000000000000000000168155906126246001830182612772565b5050905550612409565b600080600080845160221480612645575060428551115b6126915760405162461bcd60e51b815260206004820152601560248201527f496e76616c69642061646170746572506172616d7300000000000000000000006044820152606401610d79565b60028501519350602285015192508361ffff16600114806126b657508361ffff166002145b6127025760405162461bcd60e51b815260206004820152601260248201527f556e737570706f727465642074785479706500000000000000000000000000006044820152606401610d79565b600083116127525760405162461bcd60e51b815260206004820152600b60248201527f47617320746f6f206c6f770000000000000000000000000000000000000000006044820152606401610d79565b8361ffff1660020361276b575050604283015160568401515b9193509193565b50805461277e90612fd4565b6000825580601f1061278e575050565b601f0160209004906000526020600020908101906102bf91905b808211156127bc57600081556001016127a8565b5090565b803561ffff811681146127d257600080fd5b919050565b6000602082840312156127e957600080fd5b610a47826127c0565b73ffffffffffffffffffffffffffffffffffffffff811681146102bf57600080fd5b60006020828403121561282657600080fd5b8135610a47816127f2565b60008083601f84011261284357600080fd5b50813567ffffffffffffffff81111561285b57600080fd5b60208301915083602082850101111561287357600080fd5b9250929050565b60008060006040848603121561288f57600080fd5b612898846127c0565b9250602084013567ffffffffffffffff8111156128b457600080fd5b6128c086828701612831565b9497909650939450505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261290d57600080fd5b813567ffffffffffffffff80821115612928576129286128cd565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561296e5761296e6128cd565b8160405283815286602085880101111561298757600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806000606084860312156129bc57600080fd5b6129c5846127c0565b9250602084013567ffffffffffffffff8111156129e157600080fd5b6129ed868287016128fc565b925050604084013590509250925092565b6000815180845260005b81811015612a2457602081850181015186830182015201612a08565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b73ffffffffffffffffffffffffffffffffffffffff8416815267ffffffffffffffff83166020820152606060408201526000612aa160608301846129fe565b95945050505050565b60008060408385031215612abd57600080fd5b50508035926020909101359150565b602081526000610a4760208301846129fe565b80356fffffffffffffffffffffffffffffffff811681146127d257600080fd5b803567ffffffffffffffff811681146127d257600080fd5b600080600080600060a08688031215612b2f57600080fd5b612b3886612adf565b9450612b4660208701612adf565b9350612b5460408701612adf565b9250612b6260608701612aff565b9150612b7060808701612aff565b90509295509295909350565b600080600080600060a08688031215612b9457600080fd5b612b9d866127c0565b94506020860135612bad816127f2565b9350604086013567ffffffffffffffff80821115612bca57600080fd5b612bd689838a016128fc565b9450606088013591508115158214612bed57600080fd5b90925060808701359080821115612c0357600080fd5b50612c10888289016128fc565b9150509295509295909350565b60008060408385031215612c3057600080fd5b612c39836127c0565b9150602083013567ffffffffffffffff811115612c5557600080fd5b612c61858286016128fc565b9150509250929050565b60008060408385031215612c7e57600080fd5b612c87836127c0565b91506020830135612c97816127f2565b809150509250929050565b600080600080600060608688031215612cba57600080fd5b612cc3866127c0565b9450602086013567ffffffffffffffff80821115612ce057600080fd5b612cec89838a01612831565b90965094506040880135915080821115612d0557600080fd5b50612d1288828901612831565b969995985093965092949392505050565b600060208284031215612d3557600080fd5b5035919050565b60008060408385031215612d4f57600080fd5b8235612c87816127f2565b60008060008060008060008060c0898b031215612d7657600080fd5b612d7f896127c0565b9750602089013567ffffffffffffffff80821115612d9c57600080fd5b612da88c838d01612831565b909950975060408b01359150612dbd826127f2565b819650612dcc60608c01612aff565b955060808b0135945060a08b0135915080821115612de957600080fd5b50612df68b828c01612831565b999c989b5096995094979396929594505050565b600080600080600080600060c0888a031215612e2557600080fd5b612e2e886127c0565b9650602088013567ffffffffffffffff80821115612e4b57600080fd5b612e578b838c016128fc565b975060408a0135915080821115612e6d57600080fd5b612e798b838c01612831565b909750955060608a01359150612e8e826127f2565b909350608089013590612ea0826127f2565b90925060a08901359080821115612eb657600080fd5b50612ec38a828b016128fc565b91505092959891949750929550565b60008060008060808587031215612ee857600080fd5b612ef1856127c0565b9350612eff602086016127c0565b925060408501359150606085013567ffffffffffffffff811115612f2257600080fd5b612f2e878288016128fc565b91505092959194509250565b60008060008060808587031215612f5057600080fd5b612f59856127c0565b9350612f67602086016127c0565b92506040850135612f77816127f2565b9396929550929360600135925050565b600060208284031215612f9957600080fd5b813567ffffffffffffffff811115612fb057600080fd5b612fbc848285016128fc565b949350505050565b8183823760009101908152919050565b600181811c90821680612fe857607f821691505b602082108103613021577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610ea857610ea8613027565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b61ffff84168152604060208201526000612aa1604083018486613069565b61ffff871681526080602082015260006130ee608083018789613069565b67ffffffffffffffff861660408401528281036060840152613111818587613069565b9998505050505050505050565b61ffff8616815260806020820152600061313c608083018688613069565b905067ffffffffffffffff8416604083015273ffffffffffffffffffffffffffffffffffffffff831660608301529695505050505050565b600067ffffffffffffffff80831681810361319157613191613027565b6001019392505050565b601f8211156131e7576000816000526020600020601f850160051c810160208610156131c45750805b601f850160051c820191505b818110156131e3578281556001016131d0565b5050505b505050565b815167ffffffffffffffff811115613206576132066128cd565b61321a816132148454612fd4565b8461319b565b602080601f83116001811461326d57600084156132375750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556131e3565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156132ba5788860151825594840194600190910190840161329b565b50858210156132f657878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b81810381811115610ea857610ea8613027565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b818103613353575050565b61335d8254612fd4565b67ffffffffffffffff811115613375576133756128cd565b613383816132148454612fd4565b6000601f8211600181146133d5576000831561339f5750848201545b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600385901b1c1916600184901b178455613476565b6000858152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0841690600086815260209020845b8381101561342d578286015482556001958601959091019060200161340d565b508583101561346957818501547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b50505060018360011b0184555b5050505050565b61ffff8916815260c06020820152600061349b60c08301898b613069565b73ffffffffffffffffffffffffffffffffffffffff8816604084015267ffffffffffffffff8716606084015282810360808401526134da818688613069565b905082810360a08401526134ee81856129fe565b9b9a5050505050505050505050565b61ffff8716815260c06020820152600061351a60c08301886129fe565b73ffffffffffffffffffffffffffffffffffffffff8716604084015267ffffffffffffffff8616606084015284608084015282810360a084015261311181856129fe565b8082028115828204841417610ea857610ea8613027565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000826135b3576135b3613575565b500490565b6fffffffffffffffffffffffffffffffff8181168382160280821691908281146135e4576135e4613027565b505092915050565b60006fffffffffffffffffffffffffffffffff8084168061360f5761360f613575565b92169190910492915050565b61ffff86168152608060208201526000613639608083018688613069565b67ffffffffffffffff85166040840152828103606084015261365b81856129fe565b98975050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea2646970667358221220b0ab817030528fa2895fd39b9e3a47c1921762205d7e5ede8791dca3421d241b64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0xC DUP1 SLOAD PUSH2 0xFFFF NOT AND PUSH2 0x101 OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH2 0x1F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x399A CODESIZE SUB DUP1 PUSH2 0x399A DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x3E SWAP2 PUSH2 0x134 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH2 0xFFFF NOT AND PUSH2 0xFFFF DUP4 AND OR DUP2 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH5 0x2540BE400 DUP1 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH8 0x8AC7230489E80000 DUP3 DUP5 ADD MSTORE PUSH1 0x64 PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH21 0x2540BE400000000000000000000000002540BE400 PUSH1 0x2 SSTORE PUSH25 0x1000000000000006400000000000000008AC7230489E80000 PUSH1 0x3 SSTORE DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH8 0xDE0B6B3A7640000 DUP1 DUP3 MSTORE PUSH2 0x3E8 SWAP2 SWAP1 SWAP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x4 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x5 SSTORE PUSH7 0x2386F26FC10000 PUSH1 0x6 SSTORE PUSH2 0x120 PUSH3 0x30D40 PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x22 DUP1 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE DUP2 MLOAD DUP1 DUP3 SUB SWAP1 SWAP4 ADD DUP4 MSTORE PUSH1 0x42 ADD SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x7 SWAP1 PUSH2 0x12D SWAP1 DUP3 PUSH2 0x200 JUMP JUMPDEST POP POP PUSH2 0x2BF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x146 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x158 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x189 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1A9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1FB JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x1D8 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1F7 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x1E4 JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x219 JUMPI PUSH2 0x219 PUSH2 0x15F JUMP JUMPDEST PUSH2 0x22D DUP2 PUSH2 0x227 DUP5 SLOAD PUSH2 0x175 JUMP JUMPDEST DUP5 PUSH2 0x1AF JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x262 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x24A JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x1F7 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x291 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x272 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x2AF JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x36CC DUP1 PUSH2 0x2CE PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x26A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9924D33B GT PUSH2 0x153 JUMPI DUP1 PUSH4 0xCA066B35 GT PUSH2 0xCB JUMPI DUP1 PUSH4 0xE97A448A GT PUSH2 0x7F JUMPI DUP1 PUSH4 0xF9CD3CEB GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xF9CD3CEB EQ PUSH2 0x9B2 JUMPI DUP1 PUSH4 0xFBBA623B EQ PUSH2 0x9C8 JUMPI DUP1 PUSH4 0xFDC07C70 EQ PUSH2 0x9E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xE97A448A EQ PUSH2 0x964 JUMPI DUP1 PUSH4 0xF5ECBDBC EQ PUSH2 0x980 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xD23104F1 GT PUSH2 0xB0 JUMPI DUP1 PUSH4 0xD23104F1 EQ PUSH2 0x90A JUMPI DUP1 PUSH4 0xDA1A7C9A EQ PUSH2 0x2C4 JUMPI DUP1 PUSH4 0xDB14F305 EQ PUSH2 0x949 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCA066B35 EQ PUSH2 0x8C8 JUMPI DUP1 PUSH4 0xCBED8B9C EQ PUSH2 0x8E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB6D9EF60 GT PUSH2 0x122 JUMPI DUP1 PUSH4 0xC2FA4813 GT PUSH2 0x107 JUMPI DUP1 PUSH4 0xC2FA4813 EQ PUSH2 0x852 JUMPI DUP1 PUSH4 0xC5803100 EQ PUSH2 0x872 JUMPI DUP1 PUSH4 0xC81B383A EQ PUSH2 0x885 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB6D9EF60 EQ PUSH2 0x7C4 JUMPI DUP1 PUSH4 0xC08F15A1 EQ PUSH2 0x7E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x9924D33B EQ PUSH2 0x70F JUMPI DUP1 PUSH4 0x9C729DA1 EQ PUSH2 0x4E3 JUMPI DUP1 PUSH4 0xAAFF5F16 EQ PUSH2 0x762 JUMPI DUP1 PUSH4 0xB2086499 EQ PUSH2 0x782 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3408E470 GT PUSH2 0x1E6 JUMPI DUP1 PUSH4 0x71BA2FD6 GT PUSH2 0x1B5 JUMPI DUP1 PUSH4 0x7A145748 GT PUSH2 0x19A JUMPI DUP1 PUSH4 0x7A145748 EQ PUSH2 0x5E2 JUMPI DUP1 PUSH4 0x7F6DF8E6 EQ PUSH2 0x61B JUMPI DUP1 PUSH4 0x907C5E7E EQ PUSH2 0x649 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x71BA2FD6 EQ PUSH2 0x4E3 JUMPI DUP1 PUSH4 0x76A386DC EQ PUSH2 0x528 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3408E470 EQ PUSH2 0x46A JUMPI DUP1 PUSH4 0x3E0DD83E EQ PUSH2 0x483 JUMPI DUP1 PUSH4 0x40A7BB10 EQ PUSH2 0x4A3 JUMPI DUP1 PUSH4 0x42D65A8D EQ PUSH2 0x4C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x10DDB137 GT PUSH2 0x23D JUMPI DUP1 PUSH4 0x240DE277 GT PUSH2 0x222 JUMPI DUP1 PUSH4 0x240DE277 EQ PUSH2 0x357 JUMPI DUP1 PUSH4 0x272BD384 EQ PUSH2 0x37D JUMPI DUP1 PUSH4 0x2C365E25 EQ PUSH2 0x39F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x10DDB137 EQ PUSH2 0x2A4 JUMPI DUP1 PUSH4 0x12A9EE6B EQ PUSH2 0x328 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D3277F EQ PUSH2 0x26F JUMPI DUP1 PUSH4 0x7E0DB17 EQ PUSH2 0x2A4 JUMPI DUP1 PUSH4 0x96568F6 EQ PUSH2 0x2C4 JUMPI DUP1 PUSH4 0xEAF6EA6 EQ PUSH2 0x2F8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH1 0x5 SLOAD PUSH2 0x28A SWAP2 SWAP1 DUP3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C2 PUSH2 0x2BF CALLDATASIZE PUSH1 0x4 PUSH2 0x27D7 JUMP JUMPDEST POP JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E5 PUSH2 0x2DF CALLDATASIZE PUSH1 0x4 PUSH2 0x2814 JUMP JUMPDEST POP PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x29B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x304 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x318 PUSH2 0x313 CALLDATASIZE PUSH1 0x4 PUSH2 0x287A JUMP JUMPDEST PUSH2 0xA08 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x29B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x334 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x348 PUSH2 0x343 CALLDATASIZE PUSH1 0x4 PUSH2 0x29A7 JUMP JUMPDEST PUSH2 0xA4E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x29B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2A62 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x363 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C2 PUSH2 0x372 CALLDATASIZE PUSH1 0x4 PUSH2 0x2AAA JUMP JUMPDEST PUSH1 0x4 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x5 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x389 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x392 PUSH2 0xB6A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x29B SWAP2 SWAP1 PUSH2 0x2ACC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C2 PUSH2 0x3BA CALLDATASIZE PUSH1 0x4 PUSH2 0x2B17 JUMP JUMPDEST PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP5 DUP6 AND PUSH17 0x100000000000000000000000000000000 SWAP5 DUP7 AND DUP6 MUL OR PUSH1 0x2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP4 SWAP1 SWAP6 AND PUSH32 0xFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR PUSH8 0xFFFFFFFFFFFFFFFF SWAP2 DUP3 AND SWAP1 SWAP4 MUL SWAP3 SWAP1 SWAP3 OR PUSH24 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH25 0x1000000000000000000000000000000000000000000000000 SWAP2 SWAP1 SWAP3 AND MUL OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x476 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0xFFFF AND PUSH2 0x2E5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x318 SWAP1 PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28A PUSH2 0x4BE CALLDATASIZE PUSH1 0x4 PUSH2 0x2B7C JUMP JUMPDEST PUSH2 0xBF8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C2 PUSH2 0x4DE CALLDATASIZE PUSH1 0x4 PUSH2 0x287A JUMP JUMPDEST PUSH2 0xCF7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x503 PUSH2 0x4FE CALLDATASIZE PUSH1 0x4 PUSH2 0x2814 JUMP JUMPDEST POP ADDRESS SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x29B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x534 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5A7 PUSH2 0x543 CALLDATASIZE PUSH1 0x4 PUSH2 0x2C1D JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP3 SWAP1 SWAP4 ADD SWAP2 SWAP1 SWAP2 KECCAK256 SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND SWAP2 PUSH9 0x10000000000000000 SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF SWAP1 SWAP5 AND DUP5 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 DUP5 ADD MSTORE SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x29B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x602 PUSH2 0x5FD CALLDATASIZE PUSH1 0x4 PUSH2 0x2C6B JUMP JUMPDEST PUSH2 0xE68 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x29B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x627 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x63B PUSH2 0x636 CALLDATASIZE PUSH1 0x4 PUSH2 0x287A JUMP JUMPDEST PUSH2 0xEAE JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x29B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x655 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD PUSH2 0x6C1 SWAP2 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND SWAP3 PUSH17 0x100000000000000000000000000000000 SWAP3 DUP4 SWAP1 DIV DUP3 AND SWAP3 SWAP2 DUP2 AND SWAP2 PUSH8 0xFFFFFFFFFFFFFFFF SWAP1 DUP3 DIV DUP2 AND SWAP2 PUSH25 0x1000000000000000000000000000000000000000000000000 SWAP1 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP7 DUP8 AND DUP2 MSTORE SWAP5 DUP7 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP3 SWAP1 SWAP5 AND SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH8 0xFFFFFFFFFFFFFFFF SWAP1 DUP2 AND PUSH1 0x60 DUP4 ADD MSTORE SWAP1 SWAP2 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD PUSH2 0x29B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x71B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x602 PUSH2 0x72A CALLDATASIZE PUSH1 0x4 PUSH2 0x2C1D JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP3 SWAP1 SWAP4 ADD SWAP2 SWAP1 SWAP2 KECCAK256 SWAP2 MSTORE SLOAD PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x76E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C2 PUSH2 0x77D CALLDATASIZE PUSH1 0x4 PUSH2 0x2CA2 JUMP JUMPDEST PUSH2 0xEEA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x78E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x602 PUSH2 0x79D CALLDATASIZE PUSH1 0x4 PUSH2 0x2C6B JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C2 PUSH2 0x7DF CALLDATASIZE PUSH1 0x4 PUSH2 0x2D23 JUMP JUMPDEST PUSH1 0x6 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C2 PUSH2 0x7FF CALLDATASIZE PUSH1 0x4 PUSH2 0x2D3C JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND SWAP2 SWAP1 SWAP3 AND OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x85E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C2 PUSH2 0x86D CALLDATASIZE PUSH1 0x4 PUSH2 0x2D5A JUMP JUMPDEST PUSH2 0x1152 JUMP JUMPDEST PUSH2 0x2C2 PUSH2 0x880 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E0A JUMP JUMPDEST PUSH2 0x1AAB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x891 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x503 PUSH2 0x8A0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2814 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP2 SWAP1 MSTORE SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x318 PUSH1 0xC SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C2 PUSH2 0x904 CALLDATASIZE PUSH1 0x4 PUSH2 0x2ED2 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x916 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C2 PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF AND PUSH3 0x10000 OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x955 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x2E5 SWAP1 PUSH2 0xFFFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x970 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x318 PUSH1 0xC SLOAD PUSH1 0xFF AND PUSH1 0x2 EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x98C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x392 PUSH2 0x99B CALLDATASIZE PUSH1 0x4 PUSH2 0x2F3A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x63B PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C2 PUSH2 0x9E3 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F87 JUMP JUMPDEST PUSH2 0x2127 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x602 PUSH2 0xA03 CALLDATASIZE PUSH1 0x4 PUSH2 0x287A JUMP JUMPDEST PUSH2 0x2137 JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD DUP3 SWAP2 SWAP1 PUSH2 0xA2E SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH2 0x2FC4 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD ISZERO ISZERO SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 MLOAD DUP1 DUP6 ADD DUP4 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP4 ADD SWAP3 DUP6 ADD SWAP3 SWAP1 SWAP3 KECCAK256 SWAP2 MSTORE DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0xA85 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 SWAP1 SWAP2 MUL ADD DUP1 SLOAD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP7 POP PUSH21 0x10000000000000000000000000000000000000000 SWAP1 SWAP3 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP5 POP SWAP2 SWAP3 POP PUSH2 0xAE7 SWAP1 PUSH2 0x2FD4 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xB13 SWAP1 PUSH2 0x2FD4 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB60 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB35 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB60 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB43 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP4 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH2 0xB77 SWAP1 PUSH2 0x2FD4 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xBA3 SWAP1 PUSH2 0x2FD4 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xBF0 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xBC5 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xBF0 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xBD3 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 MLOAD GT PUSH2 0xC95 JUMPI PUSH1 0x7 DUP1 SLOAD PUSH2 0xC12 SWAP1 PUSH2 0x2FD4 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xC3E SWAP1 PUSH2 0x2FD4 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xC8B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xC60 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xC8B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xC6E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0xC97 JUMP JUMPDEST DUP4 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xCAA DUP10 PUSH1 0x1 DUP11 DUP11 MLOAD DUP7 PUSH2 0x217D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xCBB DUP8 DUP4 PUSH1 0x6 SLOAD PUSH2 0x2398 JUMP JUMPDEST SWAP1 POP DUP7 PUSH2 0xCCB JUMPI DUP1 SWAP5 POP DUP5 PUSH2 0xCD0 JUMP JUMPDEST DUP1 SWAP4 POP DUP4 JUMPDEST POP PUSH1 0x6 SLOAD PUSH2 0xCDE DUP4 DUP8 PUSH2 0x3056 JUMP JUMPDEST PUSH2 0xCE8 SWAP2 SWAP1 PUSH2 0x3056 JUMP JUMPDEST SWAP5 POP POP POP POP SWAP6 POP SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xD1A SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2FC4 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SWAP2 POP PUSH2 0xD82 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073746F726564207061796C6F6164 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SLOAD PUSH9 0x10000000000000000 SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0xDF4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A20696E76616C69642063616C6C6572000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD79 JUMP JUMPDEST DUP1 SLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND DUP2 SSTORE PUSH1 0x0 PUSH1 0x1 DUP3 ADD SSTORE PUSH1 0x40 MLOAD PUSH32 0x23D2684F396E92A6E2FF2D16F98E6FEA00D50CB27A64B531BC0748F730211F98 SWAP1 PUSH2 0xE55 SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH2 0x30B2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x904 DUP5 DUP5 DUP5 PUSH2 0x23D5 JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xED1 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2FC4 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 SLOAD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xF0D SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH2 0x2FC4 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SWAP2 POP PUSH2 0xF70 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073746F726564207061796C6F6164 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD79 JUMP JUMPDEST DUP1 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF AND DUP3 EQ DUP1 ISZERO PUSH2 0xFA4 JUMPI POP DUP1 PUSH1 0x1 ADD SLOAD DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xF9A SWAP3 SWAP2 SWAP1 PUSH2 0x2FC4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ JUMPDEST PUSH2 0xFF0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A20696E76616C6964207061796C6F61640000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD79 JUMP JUMPDEST DUP1 SLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND DUP3 SSTORE PUSH1 0x0 PUSH1 0x1 DUP4 ADD DUP2 SWAP1 SSTORE PUSH2 0xFFFF DUP9 AND DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH9 0x10000000000000000 SWAP1 SWAP4 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP3 PUSH2 0x1064 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH2 0x2FC4 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD DUP2 KECCAK256 SLOAD PUSH31 0x1D356700000000000000000000000000000000000000000000000000000000 DUP3 MSTORE PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP2 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP1 PUSH3 0x1D3567 SWAP1 PUSH2 0x10D7 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP8 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH1 0x4 ADD PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1105 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x612434F39581C8E7D99746C9C20C6EB0CE8C0EB99F007C5719D620841370957D DUP9 DUP9 DUP9 DUP5 DUP7 PUSH1 0x40 MLOAD PUSH2 0x1140 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x311E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xC SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x1 EQ PUSH2 0x11D1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2072656365697665207265656E7472 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616E637900000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xD79 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND PUSH2 0x200 OR SWAP1 SSTORE PUSH2 0xFFFF DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1220 SWAP1 DUP11 SWAP1 DUP11 SWAP1 PUSH2 0x2FC4 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP PUSH1 0x8 PUSH1 0x0 DUP11 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH2 0x125B SWAP3 SWAP2 SWAP1 PUSH2 0x2FC4 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x1282 SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0x3174 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE PUSH8 0xFFFFFFFFFFFFFFFF AND DUP6 PUSH8 0xFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1309 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A2077726F6E67206E6F6E6365000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD79 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SLOAD ISZERO PUSH2 0x16D1 JUMPI PUSH2 0xFFFF DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1336 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH2 0x2FC4 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP7 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP SWAP2 MSTORE POP DUP3 SLOAD SWAP1 SWAP2 POP ISZERO PUSH2 0x162B JUMPI DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 SWAP1 DUP2 SWAP1 KECCAK256 DUP5 MLOAD PUSH1 0x2 SWAP1 SWAP5 MUL ADD DUP1 SLOAD SWAP2 DUP6 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP3 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR OR DUP3 SSTORE PUSH1 0x40 DUP4 ADD MLOAD DUP4 SWAP3 SWAP2 DUP3 ADD SWAP1 PUSH2 0x145C SWAP1 DUP3 PUSH2 0x31EC JUMP JUMPDEST POP POP POP PUSH1 0x0 JUMPDEST DUP3 SLOAD PUSH2 0x1470 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x3306 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x1579 JUMPI DUP3 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x1489 JUMPI PUSH2 0x1489 PUSH2 0x3319 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD DUP4 DUP3 PUSH1 0x1 PUSH2 0x14A5 SWAP2 SWAP1 PUSH2 0x3056 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x14B5 JUMPI PUSH2 0x14B5 PUSH2 0x3319 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 DUP3 SLOAD PUSH1 0x2 SWAP1 SWAP3 MUL ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR DUP3 SSTORE DUP4 SLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND OR PUSH21 0x10000000000000000000000000000000000000000 SWAP3 DUP4 SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP1 SWAP3 MUL SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE PUSH1 0x1 DUP1 DUP3 ADD SWAP1 PUSH2 0x156E SWAP1 DUP5 ADD DUP3 PUSH2 0x3348 JUMP JUMPDEST POP POP POP PUSH1 0x1 ADD PUSH2 0x1462 JUMP JUMPDEST POP DUP1 DUP3 PUSH1 0x0 DUP2 SLOAD DUP2 LT PUSH2 0x158E JUMPI PUSH2 0x158E PUSH2 0x3319 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 DUP4 MLOAD PUSH1 0x2 SWAP1 SWAP3 MUL ADD DUP1 SLOAD SWAP3 DUP5 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x1 DUP3 ADD SWAP1 PUSH2 0x1622 SWAP1 DUP3 PUSH2 0x31EC JUMP JUMPDEST POP SWAP1 POP POP PUSH2 0x16CA JUMP JUMPDEST DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 SWAP1 DUP2 SWAP1 KECCAK256 DUP5 MLOAD PUSH1 0x2 SWAP1 SWAP5 MUL ADD DUP1 SLOAD SWAP2 DUP6 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP3 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR OR DUP3 SSTORE PUSH1 0x40 DUP4 ADD MLOAD DUP4 SWAP3 SWAP2 DUP3 ADD SWAP1 PUSH2 0x16C6 SWAP1 DUP3 PUSH2 0x31EC JUMP JUMPDEST POP POP POP JUMPDEST POP POP PUSH2 0x1A74 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x1854 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP5 DUP5 SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x172C SWAP3 SWAP2 SWAP1 PUSH2 0x2FC4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 SWAP1 SWAP2 MSTORE PUSH2 0xFFFF DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE DUP2 SWAP1 KECCAK256 SWAP1 MLOAD PUSH2 0x175B SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH2 0x2FC4 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 DUP5 MLOAD DUP2 SLOAD DUP7 DUP5 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH9 0x10000000000000000 MUL PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP2 AND PUSH8 0xFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR OR DUP2 SSTORE SWAP4 DUP3 ADD MLOAD PUSH1 0x1 SWAP1 SWAP5 ADD SWAP4 SWAP1 SWAP4 SSTORE SWAP2 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 MLOAD PUSH32 0xF9E4D95B62F08222D612B5AB92039CD8FBBBEA550A95E8DF9F927436BBDF5DB SWAP2 PUSH2 0x181F SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP12 SWAP2 DUP12 SWAP2 SWAP1 PUSH2 0x347D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF AND SWAP1 SSTORE PUSH2 0x1A74 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH31 0x1D356700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND SWAP1 PUSH3 0x1D3567 SWAP1 DUP7 SWAP1 PUSH2 0x18B0 SWAP1 DUP14 SWAP1 DUP14 SWAP1 DUP14 SWAP1 DUP13 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH1 0x4 ADD PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP8 CALL SWAP4 POP POP POP POP DUP1 ISZERO PUSH2 0x18DC JUMPI POP PUSH1 0x1 JUMPDEST PUSH2 0x1A74 JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x190A JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x190F JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP6 SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x195A SWAP3 SWAP2 SWAP1 PUSH2 0x2FC4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 SWAP1 SWAP2 MSTORE PUSH2 0xFFFF DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE DUP2 SWAP1 KECCAK256 SWAP1 MLOAD PUSH2 0x1989 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH2 0x2FC4 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 DUP5 MLOAD DUP2 SLOAD SWAP3 DUP7 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH9 0x10000000000000000 MUL PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND PUSH8 0xFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND OR SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE SWAP3 ADD MLOAD PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH32 0xF9E4D95B62F08222D612B5AB92039CD8FBBBEA550A95E8DF9F927436BBDF5DB SWAP1 PUSH2 0x1A42 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP11 SWAP1 PUSH2 0x347D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF AND SWAP1 SSTORE JUMPDEST POP POP PUSH1 0xC DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND PUSH2 0x100 OR SWAP1 SSTORE POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ PUSH2 0x1B26 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073656E64207265656E7472616E63 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7900000000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xD79 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND PUSH1 0x2 OR SWAP1 SSTORE DUP6 MLOAD PUSH1 0x28 EQ PUSH2 0x1BC8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A20696E636F72726563742072656D6F746520 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616464726573732073697A650000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xD79 JUMP JUMPDEST PUSH1 0x14 DUP7 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND DUP1 PUSH2 0x1C68 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x37 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A2064657374696E6174696F6E204C61796572 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x5A65726F20456E64706F696E74206E6F7420666F756E64000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xD79 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 MLOAD GT PUSH2 0x1D02 JUMPI PUSH1 0x7 DUP1 SLOAD PUSH2 0x1C7F SWAP1 PUSH2 0x2FD4 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1CAB SWAP1 PUSH2 0x2FD4 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1CF8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1CCD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1CF8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1CDB JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0x1D04 JUMP JUMPDEST DUP4 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1D62 DUP12 CALLER DUP12 DUP12 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP11 AND ISZERO ISZERO DUP7 PUSH2 0xBF8 JUMP JUMPDEST POP SWAP1 POP DUP1 CALLVALUE LT ISZERO PUSH2 0x1DDB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F7420656E6F756768206E6174697665 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x20666F7220666565730000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xD79 JUMP JUMPDEST PUSH2 0xFFFF DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD DUP3 SWAP1 PUSH2 0x1E10 SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0x3174 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE SWAP1 POP PUSH1 0x0 DUP3 CALLVALUE PUSH2 0x1E45 SWAP2 SWAP1 PUSH2 0x3306 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x1EFF JUMPI PUSH1 0x0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1EA7 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1EAC JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1EFD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206661696C656420746F20726566756E6400 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD79 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1F0D DUP8 PUSH2 0x262E JUMP JUMPDEST SWAP2 SWAP6 POP SWAP4 POP SWAP2 POP POP DUP2 ISZERO PUSH2 0x1FC9 JUMPI PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1F75 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1F7A JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1FC7 JUMPI PUSH1 0x40 MLOAD DUP4 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND SWAP1 PUSH32 0x2C7A964CA3DE5EC1D42D9822F9BBD0EB142A59CC9F855E9D93813B773192C7A3 SWAP1 PUSH1 0x0 SWAP1 LOG3 JUMPDEST POP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 CALLER PUSH1 0x60 SWAP1 DUP2 SHL DUP3 AND PUSH1 0x20 DUP5 ADD MSTORE DUP12 SWAP1 SHL AND PUSH1 0x34 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH1 0x48 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH1 0x0 DUP16 DUP16 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP1 POP DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xC2FA4813 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND DUP5 DUP15 DUP12 DUP11 DUP8 PUSH1 0x40 MLOAD DUP8 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x20B6 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x34FD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x20D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x20E4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0xC DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND PUSH1 0x1 OR SWAP1 SSTORE POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x7 PUSH2 0x2133 DUP3 DUP3 PUSH2 0x31EC JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x215A SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2FC4 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x218C DUP6 PUSH2 0x262E JUMP JUMPDEST POP SWAP3 POP SWAP3 POP SWAP3 POP PUSH1 0x0 DUP4 PUSH2 0xFFFF AND PUSH1 0x2 SUB PUSH2 0x2238 JUMPI PUSH1 0x3 SLOAD PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 GT ISZERO PUSH2 0x222B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206473744E6174697665416D7420746F6F20 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C61726765200000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xD79 JUMP JUMPDEST PUSH2 0x2235 DUP3 DUP3 PUSH2 0x3056 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x2267 SWAP1 DUP6 SWAP1 PUSH17 0x100000000000000000000000000000000 SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0x3056 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x229A SWAP2 SWAP1 PUSH17 0x100000000000000000000000000000000 SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x355E JUMP JUMPDEST SWAP1 POP PUSH2 0x22A6 DUP2 DUP4 PUSH2 0x3056 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP3 POP PUSH1 0x0 SWAP1 PUSH5 0x2540BE400 SWAP1 PUSH2 0x22D2 SWAP1 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH2 0x355E JUMP JUMPDEST PUSH2 0x22DC SWAP2 SWAP1 PUSH2 0x35A4 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH5 0x2540BE400 SWAP2 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND SWAP3 PUSH2 0x234B SWAP3 PUSH25 0x1000000000000000000000000000000000000000000000000 SWAP1 SWAP2 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP2 PUSH17 0x100000000000000000000000000000000 SWAP1 SWAP2 DIV AND PUSH2 0x35B8 JUMP JUMPDEST PUSH2 0x2355 SWAP2 SWAP1 PUSH2 0x35B8 JUMP JUMPDEST PUSH2 0x235F SWAP2 SWAP1 PUSH2 0x35EC JUMP JUMPDEST PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH2 0x237D DUP2 DUP12 PUSH2 0x355E JUMP JUMPDEST PUSH2 0x2387 SWAP1 DUP4 PUSH2 0x3056 JUMP JUMPDEST SWAP14 SWAP13 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 ISZERO PUSH2 0x23A9 JUMPI POP PUSH1 0x4 SLOAD PUSH2 0xA47 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x2710 SWAP1 PUSH2 0x23BA DUP5 DUP7 PUSH2 0x3056 JUMP JUMPDEST PUSH2 0x23C4 SWAP2 SWAP1 PUSH2 0x355E JUMP JUMPDEST PUSH2 0x23CE SWAP2 SWAP1 PUSH2 0x35A4 JUMP JUMPDEST SWAP1 POP PUSH2 0xA47 JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x23F8 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2FC4 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 SLOAD ISZERO PUSH2 0x904 JUMPI DUP1 SLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 PUSH2 0x2423 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x3306 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x2433 JUMPI PUSH2 0x2433 PUSH2 0x3319 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE PUSH1 0x2 SWAP1 SWAP4 MUL SWAP1 SWAP2 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP5 MSTORE PUSH8 0xFFFFFFFFFFFFFFFF PUSH21 0x10000000000000000000000000000000000000000 SWAP1 SWAP2 DIV AND SWAP4 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 DUP4 ADD DUP1 SLOAD SWAP3 SWAP4 SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH2 0x24AB SWAP1 PUSH2 0x2FD4 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x24D7 SWAP1 PUSH2 0x2FD4 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2524 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x24F9 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2524 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2507 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP SWAP1 POP DUP1 PUSH1 0x0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH3 0x1D3567 DUP7 DUP7 DUP7 DUP6 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x257B SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x361B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2595 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x25A9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP2 DUP1 SLOAD DUP1 PUSH2 0x25BD JUMPI PUSH2 0x25BD PUSH2 0x3667 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP4 ADD SWAP3 DUP4 MUL ADD DUP1 SLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND DUP2 SSTORE SWAP1 PUSH2 0x2624 PUSH1 0x1 DUP4 ADD DUP3 PUSH2 0x2772 JUMP JUMPDEST POP POP SWAP1 SSTORE POP PUSH2 0x2409 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 MLOAD PUSH1 0x22 EQ DUP1 PUSH2 0x2645 JUMPI POP PUSH1 0x42 DUP6 MLOAD GT JUMPDEST PUSH2 0x2691 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E76616C69642061646170746572506172616D730000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD79 JUMP JUMPDEST PUSH1 0x2 DUP6 ADD MLOAD SWAP4 POP PUSH1 0x22 DUP6 ADD MLOAD SWAP3 POP DUP4 PUSH2 0xFFFF AND PUSH1 0x1 EQ DUP1 PUSH2 0x26B6 JUMPI POP DUP4 PUSH2 0xFFFF AND PUSH1 0x2 EQ JUMPDEST PUSH2 0x2702 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E737570706F72746564207478547970650000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD79 JUMP JUMPDEST PUSH1 0x0 DUP4 GT PUSH2 0x2752 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xB PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x47617320746F6F206C6F77000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD79 JUMP JUMPDEST DUP4 PUSH2 0xFFFF AND PUSH1 0x2 SUB PUSH2 0x276B JUMPI POP POP PUSH1 0x42 DUP4 ADD MLOAD PUSH1 0x56 DUP5 ADD MLOAD JUMPDEST SWAP2 SWAP4 POP SWAP2 SWAP4 JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x277E SWAP1 PUSH2 0x2FD4 JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x278E JUMPI POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2BF SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x27BC JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x27A8 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x27D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x27E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA47 DUP3 PUSH2 0x27C0 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x2BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2826 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xA47 DUP2 PUSH2 0x27F2 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2843 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x285B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x2873 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x288F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2898 DUP5 PUSH2 0x27C0 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x28B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x28C0 DUP7 DUP3 DUP8 ADD PUSH2 0x2831 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x290D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2928 JUMPI PUSH2 0x2928 PUSH2 0x28CD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x296E JUMPI PUSH2 0x296E PUSH2 0x28CD JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP7 PUSH1 0x20 DUP6 DUP9 ADD ADD GT ISZERO PUSH2 0x2987 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH1 0x20 DUP8 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x29BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x29C5 DUP5 PUSH2 0x27C0 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x29E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x29ED DUP7 DUP3 DUP8 ADD PUSH2 0x28FC JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2A24 JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x2A08 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND DUP2 MSTORE PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2AA1 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x29FE JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2ABD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xA47 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x29FE JUMP JUMPDEST DUP1 CALLDATALOAD PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x27D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x27D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2B2F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2B38 DUP7 PUSH2 0x2ADF JUMP JUMPDEST SWAP5 POP PUSH2 0x2B46 PUSH1 0x20 DUP8 ADD PUSH2 0x2ADF JUMP JUMPDEST SWAP4 POP PUSH2 0x2B54 PUSH1 0x40 DUP8 ADD PUSH2 0x2ADF JUMP JUMPDEST SWAP3 POP PUSH2 0x2B62 PUSH1 0x60 DUP8 ADD PUSH2 0x2AFF JUMP JUMPDEST SWAP2 POP PUSH2 0x2B70 PUSH1 0x80 DUP8 ADD PUSH2 0x2AFF JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2B94 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2B9D DUP7 PUSH2 0x27C0 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x2BAD DUP2 PUSH2 0x27F2 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2BCA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2BD6 DUP10 DUP4 DUP11 ADD PUSH2 0x28FC JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP2 ISZERO ISZERO DUP3 EQ PUSH2 0x2BED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 SWAP3 POP PUSH1 0x80 DUP8 ADD CALLDATALOAD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0x2C03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C10 DUP9 DUP3 DUP10 ADD PUSH2 0x28FC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2C30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2C39 DUP4 PUSH2 0x27C0 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2C55 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2C61 DUP6 DUP3 DUP7 ADD PUSH2 0x28FC JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2C7E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2C87 DUP4 PUSH2 0x27C0 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x2C97 DUP2 PUSH2 0x27F2 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2CBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2CC3 DUP7 PUSH2 0x27C0 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2CE0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2CEC DUP10 DUP4 DUP11 ADD PUSH2 0x2831 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2D05 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D12 DUP9 DUP3 DUP10 ADD PUSH2 0x2831 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2D35 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2D4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2C87 DUP2 PUSH2 0x27F2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x2D76 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2D7F DUP10 PUSH2 0x27C0 JUMP JUMPDEST SWAP8 POP PUSH1 0x20 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2D9C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2DA8 DUP13 DUP4 DUP14 ADD PUSH2 0x2831 JUMP JUMPDEST SWAP1 SWAP10 POP SWAP8 POP PUSH1 0x40 DUP12 ADD CALLDATALOAD SWAP2 POP PUSH2 0x2DBD DUP3 PUSH2 0x27F2 JUMP JUMPDEST DUP2 SWAP7 POP PUSH2 0x2DCC PUSH1 0x60 DUP13 ADD PUSH2 0x2AFF JUMP JUMPDEST SWAP6 POP PUSH1 0x80 DUP12 ADD CALLDATALOAD SWAP5 POP PUSH1 0xA0 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2DE9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DF6 DUP12 DUP3 DUP13 ADD PUSH2 0x2831 JUMP JUMPDEST SWAP10 SWAP13 SWAP9 SWAP12 POP SWAP7 SWAP10 POP SWAP5 SWAP8 SWAP4 SWAP7 SWAP3 SWAP6 SWAP5 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xC0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x2E25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2E2E DUP9 PUSH2 0x27C0 JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2E4B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2E57 DUP12 DUP4 DUP13 ADD PUSH2 0x28FC JUMP JUMPDEST SWAP8 POP PUSH1 0x40 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2E6D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2E79 DUP12 DUP4 DUP13 ADD PUSH2 0x2831 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP PUSH1 0x60 DUP11 ADD CALLDATALOAD SWAP2 POP PUSH2 0x2E8E DUP3 PUSH2 0x27F2 JUMP JUMPDEST SWAP1 SWAP4 POP PUSH1 0x80 DUP10 ADD CALLDATALOAD SWAP1 PUSH2 0x2EA0 DUP3 PUSH2 0x27F2 JUMP JUMPDEST SWAP1 SWAP3 POP PUSH1 0xA0 DUP10 ADD CALLDATALOAD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0x2EB6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EC3 DUP11 DUP3 DUP12 ADD PUSH2 0x28FC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2EE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2EF1 DUP6 PUSH2 0x27C0 JUMP JUMPDEST SWAP4 POP PUSH2 0x2EFF PUSH1 0x20 DUP7 ADD PUSH2 0x27C0 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2F22 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2F2E DUP8 DUP3 DUP9 ADD PUSH2 0x28FC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2F50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2F59 DUP6 PUSH2 0x27C0 JUMP JUMPDEST SWAP4 POP PUSH2 0x2F67 PUSH1 0x20 DUP7 ADD PUSH2 0x27C0 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x2F77 DUP2 PUSH2 0x27F2 JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2F99 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2FB0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2FBC DUP5 DUP3 DUP6 ADD PUSH2 0x28FC JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x2FE8 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x3021 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0xEA8 JUMPI PUSH2 0xEA8 PUSH2 0x3027 JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 ADD ADD MSTORE PUSH1 0x0 PUSH1 0x20 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 PUSH1 0x1F DUP5 ADD AND DUP5 ADD ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2AA1 PUSH1 0x40 DUP4 ADD DUP5 DUP7 PUSH2 0x3069 JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x30EE PUSH1 0x80 DUP4 ADD DUP8 DUP10 PUSH2 0x3069 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP7 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x3111 DUP2 DUP6 DUP8 PUSH2 0x3069 JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x313C PUSH1 0x80 DUP4 ADD DUP7 DUP9 PUSH2 0x3069 JUMP JUMPDEST SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP5 AND PUSH1 0x40 DUP4 ADD MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x60 DUP4 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP4 AND DUP2 DUP2 SUB PUSH2 0x3191 JUMPI PUSH2 0x3191 PUSH2 0x3027 JUMP JUMPDEST PUSH1 0x1 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x31E7 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x31C4 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x31E3 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x31D0 JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3206 JUMPI PUSH2 0x3206 PUSH2 0x28CD JUMP JUMPDEST PUSH2 0x321A DUP2 PUSH2 0x3214 DUP5 SLOAD PUSH2 0x2FD4 JUMP JUMPDEST DUP5 PUSH2 0x319B JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x326D JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x3237 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x31E3 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x32BA JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x329B JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x32F6 JUMPI DUP8 DUP6 ADD MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0xEA8 JUMPI PUSH2 0xEA8 PUSH2 0x3027 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB PUSH2 0x3353 JUMPI POP POP JUMP JUMPDEST PUSH2 0x335D DUP3 SLOAD PUSH2 0x2FD4 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3375 JUMPI PUSH2 0x3375 PUSH2 0x28CD JUMP JUMPDEST PUSH2 0x3383 DUP2 PUSH2 0x3214 DUP5 SLOAD PUSH2 0x2FD4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 GT PUSH1 0x1 DUP2 EQ PUSH2 0x33D5 JUMPI PUSH1 0x0 DUP4 ISZERO PUSH2 0x339F JUMPI POP DUP5 DUP3 ADD SLOAD JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP6 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP5 SWAP1 SHL OR DUP5 SSTORE PUSH2 0x3476 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP5 AND SWAP1 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 DUP5 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x342D JUMPI DUP3 DUP7 ADD SLOAD DUP3 SSTORE PUSH1 0x1 SWAP6 DUP7 ADD SWAP6 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD PUSH2 0x340D JUMP JUMPDEST POP DUP6 DUP4 LT ISZERO PUSH2 0x3469 JUMPI DUP2 DUP6 ADD SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP PUSH1 0x1 DUP4 PUSH1 0x1 SHL ADD DUP5 SSTORE JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP10 AND DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x349B PUSH1 0xC0 DUP4 ADD DUP10 DUP12 PUSH2 0x3069 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP9 AND PUSH1 0x40 DUP5 ADD MSTORE PUSH8 0xFFFFFFFFFFFFFFFF DUP8 AND PUSH1 0x60 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x34DA DUP2 DUP7 DUP9 PUSH2 0x3069 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x34EE DUP2 DUP6 PUSH2 0x29FE JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x351A PUSH1 0xC0 DUP4 ADD DUP9 PUSH2 0x29FE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND PUSH1 0x40 DUP5 ADD MSTORE PUSH8 0xFFFFFFFFFFFFFFFF DUP7 AND PUSH1 0x60 DUP5 ADD MSTORE DUP5 PUSH1 0x80 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x3111 DUP2 DUP6 PUSH2 0x29FE JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0xEA8 JUMPI PUSH2 0xEA8 PUSH2 0x3027 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x35B3 JUMPI PUSH2 0x35B3 PUSH2 0x3575 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 DUP2 AND DUP4 DUP3 AND MUL DUP1 DUP3 AND SWAP2 SWAP1 DUP3 DUP2 EQ PUSH2 0x35E4 JUMPI PUSH2 0x35E4 PUSH2 0x3027 JUMP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND DUP1 PUSH2 0x360F JUMPI PUSH2 0x360F PUSH2 0x3575 JUMP JUMPDEST SWAP3 AND SWAP2 SWAP1 SWAP2 DIV SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x3639 PUSH1 0x80 DUP4 ADD DUP7 DUP9 PUSH2 0x3069 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x365B DUP2 DUP6 PUSH2 0x29FE JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB0 0xAB DUP2 PUSH17 0x30528FA2895FD39B9E3A47C1921762205D PUSH31 0x5EDE8791DCA3421D241B64736F6C6343000819003300000000000000000000 ","sourceMap":"812:15736:24:-:0;;;1945:38;;;-1:-1:-1;;1989:41:24;;;;;3374:530;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3413:11;:22;;-1:-1:-1;;3413:22:24;;;;;;;3488:222;;;;;;;;3534:4;3488:222;;;;;;;;;;;3642:4;3488:222;;;;3669:3;3488:222;;;;;;;;;;;;3469:241;:16;:241;;;;3740:49;;;;;;;;3767:4;3740:49;;;3783:4;3740:49;;;;;;;3720:17;:69;;;;;;3821:4;3809:9;:16;3858:39;3890:6;1114:35:23;;;-1:-1:-1;;;1114:35:23;;;3156:51:97;3223:11;;;;3216:27;;;;1114:35:23;;;;;;;;;;3259:12:97;;1114:35:23;;;918:238;3858:39:24;3835:20;;:62;;:20;:62;:::i;:::-;;3374:530;812:15736;;14:276:97;83:6;136:2;124:9;115:7;111:23;107:32;104:52;;;152:1;149;142:12;104:52;184:9;178:16;234:6;227:5;223:18;216:5;213:29;203:57;;256:1;253;246:12;203:57;279:5;14:276;-1:-1:-1;;;14:276:97:o;295:127::-;356:10;351:3;347:20;344:1;337:31;387:4;384:1;377:15;411:4;408:1;401:15;427:380;506:1;502:12;;;;549;;;570:61;;624:4;616:6;612:17;602:27;;570:61;677:2;669:6;666:14;646:18;643:38;640:161;;723:10;718:3;714:20;711:1;704:31;758:4;755:1;748:15;786:4;783:1;776:15;640:161;;427:380;;;:::o;937:542::-;1038:2;1033:3;1030:11;1027:446;;;1074:1;1098:5;1095:1;1088:16;1142:4;1139:1;1129:18;1212:2;1200:10;1196:19;1193:1;1189:27;1183:4;1179:38;1248:4;1236:10;1233:20;1230:47;;;-1:-1:-1;1271:4:97;1230:47;1326:2;1321:3;1317:12;1314:1;1310:20;1304:4;1300:31;1290:41;;1381:82;1399:2;1392:5;1389:13;1381:82;;;1444:17;;;1425:1;1414:13;1381:82;;;1385:3;;;1027:446;937:542;;;:::o;1655:1341::-;1773:10;;-1:-1:-1;;;;;1795:30:97;;1792:56;;;1828:18;;:::i;:::-;1857:96;1946:6;1906:38;1938:4;1932:11;1906:38;:::i;:::-;1900:4;1857:96;:::i;:::-;2008:4;;2065:2;2054:14;;2082:1;2077:662;;;;2783:1;2800:6;2797:89;;;-1:-1:-1;2852:19:97;;;2846:26;2797:89;-1:-1:-1;;1612:1:97;1608:11;;;1604:24;1600:29;1590:40;1636:1;1632:11;;;1587:57;2899:81;;2047:943;;2077:662;884:1;877:14;;;921:4;908:18;;-1:-1:-1;;2113:20:97;;;2230:236;2244:7;2241:1;2238:14;2230:236;;;2333:19;;;2327:26;2312:42;;2425:27;;;;2393:1;2381:14;;;;2260:19;;2230:236;;;2234:3;2494:6;2485:7;2482:19;2479:201;;;2555:19;;;2549:26;-1:-1:-1;;2638:1:97;2634:14;;;2650:3;2630:24;2626:37;2622:42;2607:58;2592:74;;2479:201;-1:-1:-1;;;;;2726:1:97;2710:14;;;2706:22;2693:36;;-1:-1:-1;1655:1341:97:o;3001:276::-;812:15736:24;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_clearMsgQue_5714":{"entryPoint":9173,"id":5714,"parameterSlots":3,"returnSlots":0},"@_getProtocolFees_5744":{"entryPoint":9112,"id":5744,"parameterSlots":3,"returnSlots":1},"@_getRelayerFee_5840":{"entryPoint":8573,"id":5840,"parameterSlots":5,"returnSlots":1},"@blockNextMsg_5563":{"entryPoint":null,"id":5563,"parameterSlots":0,"returnSlots":0},"@decodeAdapterParams_4484":{"entryPoint":9774,"id":4484,"parameterSlots":1,"returnSlots":4},"@defaultAdapterParams_4555":{"entryPoint":2922,"id":4555,"parameterSlots":0,"returnSlots":0},"@estimateFees_5212":{"entryPoint":3064,"id":5212,"parameterSlots":5,"returnSlots":2},"@forceResumeReceive_5538":{"entryPoint":3319,"id":5538,"parameterSlots":3,"returnSlots":0},"@getChainId_5221":{"entryPoint":null,"id":5221,"parameterSlots":0,"returnSlots":1},"@getConfig_5417":{"entryPoint":null,"id":5417,"parameterSlots":4,"returnSlots":1},"@getInboundNonce_5130":{"entryPoint":8503,"id":5130,"parameterSlots":3,"returnSlots":1},"@getLengthOfQueue_5555":{"entryPoint":3758,"id":5555,"parameterSlots":3,"returnSlots":1},"@getOutboundNonce_5147":{"entryPoint":3688,"id":5147,"parameterSlots":2,"returnSlots":1},"@getReceiveLibraryAddress_5378":{"entryPoint":null,"id":5378,"parameterSlots":1,"returnSlots":1},"@getReceiveVersion_5439":{"entryPoint":null,"id":5439,"parameterSlots":1,"returnSlots":1},"@getSendLibraryAddress_5364":{"entryPoint":null,"id":5364,"parameterSlots":1,"returnSlots":1},"@getSendVersion_5428":{"entryPoint":null,"id":5428,"parameterSlots":1,"returnSlots":1},"@hasStoredPayload_5350":{"entryPoint":2568,"id":5350,"parameterSlots":3,"returnSlots":1},"@inboundNonce_4561":{"entryPoint":null,"id":4561,"parameterSlots":0,"returnSlots":0},"@isReceivingPayload_5400":{"entryPoint":null,"id":5400,"parameterSlots":0,"returnSlots":1},"@isSendingPayload_5389":{"entryPoint":null,"id":5389,"parameterSlots":0,"returnSlots":1},"@lzEndpointLookup_4541":{"entryPoint":null,"id":4541,"parameterSlots":0,"returnSlots":0},"@mockChainId_4543":{"entryPoint":null,"id":4543,"parameterSlots":0,"returnSlots":0},"@msgsToDeliver_4582":{"entryPoint":2638,"id":4582,"parameterSlots":0,"returnSlots":0},"@nextMsgBlocked_4545":{"entryPoint":null,"id":4545,"parameterSlots":0,"returnSlots":0},"@oracleFee_4553":{"entryPoint":null,"id":4553,"parameterSlots":0,"returnSlots":0},"@outboundNonce_4567":{"entryPoint":null,"id":4567,"parameterSlots":0,"returnSlots":0},"@protocolFeeConfig_4551":{"entryPoint":null,"id":4551,"parameterSlots":0,"returnSlots":0},"@receivePayload_5113":{"entryPoint":4434,"id":5113,"parameterSlots":8,"returnSlots":0},"@relayerFeeConfig_4548":{"entryPoint":null,"id":4548,"parameterSlots":0,"returnSlots":0},"@retryPayload_5322":{"entryPoint":3818,"id":5322,"parameterSlots":5,"returnSlots":0},"@send_4906":{"entryPoint":6827,"id":4906,"parameterSlots":7,"returnSlots":0},"@setConfig_5452":{"entryPoint":null,"id":5452,"parameterSlots":4,"returnSlots":0},"@setDefaultAdapterParams_5661":{"entryPoint":8487,"id":5661,"parameterSlots":1,"returnSlots":0},"@setDestLzEndpoint_5577":{"entryPoint":null,"id":5577,"parameterSlots":2,"returnSlots":0},"@setOracleFee_5651":{"entryPoint":null,"id":5651,"parameterSlots":1,"returnSlots":0},"@setProtocolFee_5641":{"entryPoint":null,"id":5641,"parameterSlots":2,"returnSlots":0},"@setReceiveVersion_5466":{"entryPoint":null,"id":5466,"parameterSlots":1,"returnSlots":0},"@setRelayerPrice_5621":{"entryPoint":null,"id":5621,"parameterSlots":5,"returnSlots":0},"@setSendVersion_5459":{"entryPoint":null,"id":5459,"parameterSlots":1,"returnSlots":0},"@storedPayload_4574":{"entryPoint":null,"id":4574,"parameterSlots":0,"returnSlots":0},"abi_decode_bytes":{"entryPoint":10492,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_bytes_calldata":{"entryPoint":10289,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address":{"entryPoint":10260,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":11580,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes_memory_ptr":{"entryPoint":12167,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint128t_uint128t_uint128t_uint64t_uint64":{"entryPoint":11031,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_uint16":{"entryPoint":10199,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint16t_address":{"entryPoint":11371,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint16t_addresst_bytes_memory_ptrt_boolt_bytes_memory_ptr":{"entryPoint":11132,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_uint16t_bytes_calldata_ptr":{"entryPoint":10362,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_addresst_uint64t_uint256t_bytes_calldata_ptr":{"entryPoint":11610,"id":null,"parameterSlots":2,"returnSlots":8},"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_bytes_calldata_ptr":{"entryPoint":11426,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_uint16t_bytes_memory_ptr":{"entryPoint":11293,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_bytes_calldata_ptrt_address_payablet_addresst_bytes_memory_ptr":{"entryPoint":11786,"id":null,"parameterSlots":2,"returnSlots":7},"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint256":{"entryPoint":10663,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_uint16t_addresst_uint256":{"entryPoint":12090,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_memory_ptr":{"entryPoint":11986,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint256":{"entryPoint":11555,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256":{"entryPoint":10922,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_uint128":{"entryPoint":10975,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint16":{"entryPoint":10176,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint64":{"entryPoint":11007,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_bytes":{"entryPoint":10750,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_bytes_calldata":{"entryPoint":12393,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":12228,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint64_t_bytes_memory_ptr__to_t_address_t_uint64_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":10850,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":10956,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_03f2c372695dfb7017d0d1b5b039a7a7c563c382ff38f9563e77eedca785e4df__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1d7a441e6351efbe3589b780f6d9098a5373ce9246e759367f3fb559adf16b4a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3967011d6285a9dce57c3ff82ee9dd83446fd39eaaeb6fa26af022508e44801b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4077c8a598c34a32244e743d20d5e8902c44c8500a46b23d668292bbbe5d2c83__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5d0b005579c4d5f607baec096f4a22c77289f237586c7362a7902ea2a3c322fe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_73b1d6d5ba54cd5e4e2ebace0c8623f647e51a2b5e72af7e7df83d716224bbcb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_82caa7769a2a1defb5e8d4082900c39c0f04eedfd5e921c1e3bf1d16730a12ab__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9b212afc0809d994d44a873b9f3c4e7606021e0d8d455342b5758a2ae53b8e2b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9ed68b89a8d51980886c19b98768f5848012f002a5537f0951f8528791f91206__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_a84f16779931db7ec618d2bd334bd656888d24e7e320bdf2dd7a0a0862d1916b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cfe15a20060cae4027edaeadac99a28b9a581999e01bac9619e7f52b82ee25ac__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_dcfb2fb846bf29eed16ab1966cc303d2b0cbdcaede7d9e78ee4c30c1a8119790__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint128_t_uint128_t_uint128_t_uint64_t_uint64__to_t_uint128_t_uint128_t_uint128_t_uint64_t_uint64__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":12466,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_address_t_uint64_t_bytes_calldata_ptr_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":13437,"id":null,"parameterSlots":9,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_address__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_address__fromStack_reversed":{"entryPoint":12574,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":12496,"id":null,"parameterSlots":7,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":13851,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_uint256_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":13565,"id":null,"parameterSlots":7,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint64_t_address_t_bytes32__to_t_uint64_t_address_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"array_dataslot_bytes_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":12374,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint128":{"entryPoint":13804,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":13732,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint128":{"entryPoint":13752,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":13662,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":13062,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_bytes_storage":{"entryPoint":12699,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage":{"entryPoint":12780,"id":null,"parameterSlots":2,"returnSlots":0},"copy_byte_array_to_storage_from_t_bytes_storage_to_t_bytes_storage":{"entryPoint":13128,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":12244,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"increment_t_uint64":{"entryPoint":12660,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":12327,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":13685,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x31":{"entryPoint":13927,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":13081,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":10445,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":10226,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:30755:97","nodeType":"YulBlock","src":"0:30755:97","statements":[{"nativeSrc":"6:3:97","nodeType":"YulBlock","src":"6:3:97","statements":[]},{"body":{"nativeSrc":"143:119:97","nodeType":"YulBlock","src":"143:119:97","statements":[{"nativeSrc":"153:26:97","nodeType":"YulAssignment","src":"153:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"165:9:97","nodeType":"YulIdentifier","src":"165:9:97"},{"kind":"number","nativeSrc":"176:2:97","nodeType":"YulLiteral","src":"176:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"161:3:97","nodeType":"YulIdentifier","src":"161:3:97"},"nativeSrc":"161:18:97","nodeType":"YulFunctionCall","src":"161:18:97"},"variableNames":[{"name":"tail","nativeSrc":"153:4:97","nodeType":"YulIdentifier","src":"153:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"195:9:97","nodeType":"YulIdentifier","src":"195:9:97"},{"name":"value0","nativeSrc":"206:6:97","nodeType":"YulIdentifier","src":"206:6:97"}],"functionName":{"name":"mstore","nativeSrc":"188:6:97","nodeType":"YulIdentifier","src":"188:6:97"},"nativeSrc":"188:25:97","nodeType":"YulFunctionCall","src":"188:25:97"},"nativeSrc":"188:25:97","nodeType":"YulExpressionStatement","src":"188:25:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"233:9:97","nodeType":"YulIdentifier","src":"233:9:97"},{"kind":"number","nativeSrc":"244:2:97","nodeType":"YulLiteral","src":"244:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"229:3:97","nodeType":"YulIdentifier","src":"229:3:97"},"nativeSrc":"229:18:97","nodeType":"YulFunctionCall","src":"229:18:97"},{"name":"value1","nativeSrc":"249:6:97","nodeType":"YulIdentifier","src":"249:6:97"}],"functionName":{"name":"mstore","nativeSrc":"222:6:97","nodeType":"YulIdentifier","src":"222:6:97"},"nativeSrc":"222:34:97","nodeType":"YulFunctionCall","src":"222:34:97"},"nativeSrc":"222:34:97","nodeType":"YulExpressionStatement","src":"222:34:97"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"14:248:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"104:9:97","nodeType":"YulTypedName","src":"104:9:97","type":""},{"name":"value1","nativeSrc":"115:6:97","nodeType":"YulTypedName","src":"115:6:97","type":""},{"name":"value0","nativeSrc":"123:6:97","nodeType":"YulTypedName","src":"123:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"134:4:97","nodeType":"YulTypedName","src":"134:4:97","type":""}],"src":"14:248:97"},{"body":{"nativeSrc":"315:111:97","nodeType":"YulBlock","src":"315:111:97","statements":[{"nativeSrc":"325:29:97","nodeType":"YulAssignment","src":"325:29:97","value":{"arguments":[{"name":"offset","nativeSrc":"347:6:97","nodeType":"YulIdentifier","src":"347:6:97"}],"functionName":{"name":"calldataload","nativeSrc":"334:12:97","nodeType":"YulIdentifier","src":"334:12:97"},"nativeSrc":"334:20:97","nodeType":"YulFunctionCall","src":"334:20:97"},"variableNames":[{"name":"value","nativeSrc":"325:5:97","nodeType":"YulIdentifier","src":"325:5:97"}]},{"body":{"nativeSrc":"404:16:97","nodeType":"YulBlock","src":"404:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"413:1:97","nodeType":"YulLiteral","src":"413:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"416:1:97","nodeType":"YulLiteral","src":"416:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"406:6:97","nodeType":"YulIdentifier","src":"406:6:97"},"nativeSrc":"406:12:97","nodeType":"YulFunctionCall","src":"406:12:97"},"nativeSrc":"406:12:97","nodeType":"YulExpressionStatement","src":"406:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"376:5:97","nodeType":"YulIdentifier","src":"376:5:97"},{"arguments":[{"name":"value","nativeSrc":"387:5:97","nodeType":"YulIdentifier","src":"387:5:97"},{"kind":"number","nativeSrc":"394:6:97","nodeType":"YulLiteral","src":"394:6:97","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"383:3:97","nodeType":"YulIdentifier","src":"383:3:97"},"nativeSrc":"383:18:97","nodeType":"YulFunctionCall","src":"383:18:97"}],"functionName":{"name":"eq","nativeSrc":"373:2:97","nodeType":"YulIdentifier","src":"373:2:97"},"nativeSrc":"373:29:97","nodeType":"YulFunctionCall","src":"373:29:97"}],"functionName":{"name":"iszero","nativeSrc":"366:6:97","nodeType":"YulIdentifier","src":"366:6:97"},"nativeSrc":"366:37:97","nodeType":"YulFunctionCall","src":"366:37:97"},"nativeSrc":"363:57:97","nodeType":"YulIf","src":"363:57:97"}]},"name":"abi_decode_uint16","nativeSrc":"267:159:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"294:6:97","nodeType":"YulTypedName","src":"294:6:97","type":""}],"returnVariables":[{"name":"value","nativeSrc":"305:5:97","nodeType":"YulTypedName","src":"305:5:97","type":""}],"src":"267:159:97"},{"body":{"nativeSrc":"500:115:97","nodeType":"YulBlock","src":"500:115:97","statements":[{"body":{"nativeSrc":"546:16:97","nodeType":"YulBlock","src":"546:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"555:1:97","nodeType":"YulLiteral","src":"555:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"558:1:97","nodeType":"YulLiteral","src":"558:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"548:6:97","nodeType":"YulIdentifier","src":"548:6:97"},"nativeSrc":"548:12:97","nodeType":"YulFunctionCall","src":"548:12:97"},"nativeSrc":"548:12:97","nodeType":"YulExpressionStatement","src":"548:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"521:7:97","nodeType":"YulIdentifier","src":"521:7:97"},{"name":"headStart","nativeSrc":"530:9:97","nodeType":"YulIdentifier","src":"530:9:97"}],"functionName":{"name":"sub","nativeSrc":"517:3:97","nodeType":"YulIdentifier","src":"517:3:97"},"nativeSrc":"517:23:97","nodeType":"YulFunctionCall","src":"517:23:97"},{"kind":"number","nativeSrc":"542:2:97","nodeType":"YulLiteral","src":"542:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"513:3:97","nodeType":"YulIdentifier","src":"513:3:97"},"nativeSrc":"513:32:97","nodeType":"YulFunctionCall","src":"513:32:97"},"nativeSrc":"510:52:97","nodeType":"YulIf","src":"510:52:97"},{"nativeSrc":"571:38:97","nodeType":"YulAssignment","src":"571:38:97","value":{"arguments":[{"name":"headStart","nativeSrc":"599:9:97","nodeType":"YulIdentifier","src":"599:9:97"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"581:17:97","nodeType":"YulIdentifier","src":"581:17:97"},"nativeSrc":"581:28:97","nodeType":"YulFunctionCall","src":"581:28:97"},"variableNames":[{"name":"value0","nativeSrc":"571:6:97","nodeType":"YulIdentifier","src":"571:6:97"}]}]},"name":"abi_decode_tuple_t_uint16","nativeSrc":"431:184:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"466:9:97","nodeType":"YulTypedName","src":"466:9:97","type":""},{"name":"dataEnd","nativeSrc":"477:7:97","nodeType":"YulTypedName","src":"477:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"489:6:97","nodeType":"YulTypedName","src":"489:6:97","type":""}],"src":"431:184:97"},{"body":{"nativeSrc":"665:109:97","nodeType":"YulBlock","src":"665:109:97","statements":[{"body":{"nativeSrc":"752:16:97","nodeType":"YulBlock","src":"752:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"761:1:97","nodeType":"YulLiteral","src":"761:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"764:1:97","nodeType":"YulLiteral","src":"764:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"754:6:97","nodeType":"YulIdentifier","src":"754:6:97"},"nativeSrc":"754:12:97","nodeType":"YulFunctionCall","src":"754:12:97"},"nativeSrc":"754:12:97","nodeType":"YulExpressionStatement","src":"754:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"688:5:97","nodeType":"YulIdentifier","src":"688:5:97"},{"arguments":[{"name":"value","nativeSrc":"699:5:97","nodeType":"YulIdentifier","src":"699:5:97"},{"kind":"number","nativeSrc":"706:42:97","nodeType":"YulLiteral","src":"706:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"695:3:97","nodeType":"YulIdentifier","src":"695:3:97"},"nativeSrc":"695:54:97","nodeType":"YulFunctionCall","src":"695:54:97"}],"functionName":{"name":"eq","nativeSrc":"685:2:97","nodeType":"YulIdentifier","src":"685:2:97"},"nativeSrc":"685:65:97","nodeType":"YulFunctionCall","src":"685:65:97"}],"functionName":{"name":"iszero","nativeSrc":"678:6:97","nodeType":"YulIdentifier","src":"678:6:97"},"nativeSrc":"678:73:97","nodeType":"YulFunctionCall","src":"678:73:97"},"nativeSrc":"675:93:97","nodeType":"YulIf","src":"675:93:97"}]},"name":"validator_revert_address","nativeSrc":"620:154:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"654:5:97","nodeType":"YulTypedName","src":"654:5:97","type":""}],"src":"620:154:97"},{"body":{"nativeSrc":"849:177:97","nodeType":"YulBlock","src":"849:177:97","statements":[{"body":{"nativeSrc":"895:16:97","nodeType":"YulBlock","src":"895:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"904:1:97","nodeType":"YulLiteral","src":"904:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"907:1:97","nodeType":"YulLiteral","src":"907:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"897:6:97","nodeType":"YulIdentifier","src":"897:6:97"},"nativeSrc":"897:12:97","nodeType":"YulFunctionCall","src":"897:12:97"},"nativeSrc":"897:12:97","nodeType":"YulExpressionStatement","src":"897:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"870:7:97","nodeType":"YulIdentifier","src":"870:7:97"},{"name":"headStart","nativeSrc":"879:9:97","nodeType":"YulIdentifier","src":"879:9:97"}],"functionName":{"name":"sub","nativeSrc":"866:3:97","nodeType":"YulIdentifier","src":"866:3:97"},"nativeSrc":"866:23:97","nodeType":"YulFunctionCall","src":"866:23:97"},{"kind":"number","nativeSrc":"891:2:97","nodeType":"YulLiteral","src":"891:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"862:3:97","nodeType":"YulIdentifier","src":"862:3:97"},"nativeSrc":"862:32:97","nodeType":"YulFunctionCall","src":"862:32:97"},"nativeSrc":"859:52:97","nodeType":"YulIf","src":"859:52:97"},{"nativeSrc":"920:36:97","nodeType":"YulVariableDeclaration","src":"920:36:97","value":{"arguments":[{"name":"headStart","nativeSrc":"946:9:97","nodeType":"YulIdentifier","src":"946:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"933:12:97","nodeType":"YulIdentifier","src":"933:12:97"},"nativeSrc":"933:23:97","nodeType":"YulFunctionCall","src":"933:23:97"},"variables":[{"name":"value","nativeSrc":"924:5:97","nodeType":"YulTypedName","src":"924:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"990:5:97","nodeType":"YulIdentifier","src":"990:5:97"}],"functionName":{"name":"validator_revert_address","nativeSrc":"965:24:97","nodeType":"YulIdentifier","src":"965:24:97"},"nativeSrc":"965:31:97","nodeType":"YulFunctionCall","src":"965:31:97"},"nativeSrc":"965:31:97","nodeType":"YulExpressionStatement","src":"965:31:97"},{"nativeSrc":"1005:15:97","nodeType":"YulAssignment","src":"1005:15:97","value":{"name":"value","nativeSrc":"1015:5:97","nodeType":"YulIdentifier","src":"1015:5:97"},"variableNames":[{"name":"value0","nativeSrc":"1005:6:97","nodeType":"YulIdentifier","src":"1005:6:97"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"779:247:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"815:9:97","nodeType":"YulTypedName","src":"815:9:97","type":""},{"name":"dataEnd","nativeSrc":"826:7:97","nodeType":"YulTypedName","src":"826:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"838:6:97","nodeType":"YulTypedName","src":"838:6:97","type":""}],"src":"779:247:97"},{"body":{"nativeSrc":"1130:89:97","nodeType":"YulBlock","src":"1130:89:97","statements":[{"nativeSrc":"1140:26:97","nodeType":"YulAssignment","src":"1140:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1152:9:97","nodeType":"YulIdentifier","src":"1152:9:97"},{"kind":"number","nativeSrc":"1163:2:97","nodeType":"YulLiteral","src":"1163:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1148:3:97","nodeType":"YulIdentifier","src":"1148:3:97"},"nativeSrc":"1148:18:97","nodeType":"YulFunctionCall","src":"1148:18:97"},"variableNames":[{"name":"tail","nativeSrc":"1140:4:97","nodeType":"YulIdentifier","src":"1140:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1182:9:97","nodeType":"YulIdentifier","src":"1182:9:97"},{"arguments":[{"name":"value0","nativeSrc":"1197:6:97","nodeType":"YulIdentifier","src":"1197:6:97"},{"kind":"number","nativeSrc":"1205:6:97","nodeType":"YulLiteral","src":"1205:6:97","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"1193:3:97","nodeType":"YulIdentifier","src":"1193:3:97"},"nativeSrc":"1193:19:97","nodeType":"YulFunctionCall","src":"1193:19:97"}],"functionName":{"name":"mstore","nativeSrc":"1175:6:97","nodeType":"YulIdentifier","src":"1175:6:97"},"nativeSrc":"1175:38:97","nodeType":"YulFunctionCall","src":"1175:38:97"},"nativeSrc":"1175:38:97","nodeType":"YulExpressionStatement","src":"1175:38:97"}]},"name":"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed","nativeSrc":"1031:188:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1099:9:97","nodeType":"YulTypedName","src":"1099:9:97","type":""},{"name":"value0","nativeSrc":"1110:6:97","nodeType":"YulTypedName","src":"1110:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1121:4:97","nodeType":"YulTypedName","src":"1121:4:97","type":""}],"src":"1031:188:97"},{"body":{"nativeSrc":"1296:275:97","nodeType":"YulBlock","src":"1296:275:97","statements":[{"body":{"nativeSrc":"1345:16:97","nodeType":"YulBlock","src":"1345:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1354:1:97","nodeType":"YulLiteral","src":"1354:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1357:1:97","nodeType":"YulLiteral","src":"1357:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1347:6:97","nodeType":"YulIdentifier","src":"1347:6:97"},"nativeSrc":"1347:12:97","nodeType":"YulFunctionCall","src":"1347:12:97"},"nativeSrc":"1347:12:97","nodeType":"YulExpressionStatement","src":"1347:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"1324:6:97","nodeType":"YulIdentifier","src":"1324:6:97"},{"kind":"number","nativeSrc":"1332:4:97","nodeType":"YulLiteral","src":"1332:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"1320:3:97","nodeType":"YulIdentifier","src":"1320:3:97"},"nativeSrc":"1320:17:97","nodeType":"YulFunctionCall","src":"1320:17:97"},{"name":"end","nativeSrc":"1339:3:97","nodeType":"YulIdentifier","src":"1339:3:97"}],"functionName":{"name":"slt","nativeSrc":"1316:3:97","nodeType":"YulIdentifier","src":"1316:3:97"},"nativeSrc":"1316:27:97","nodeType":"YulFunctionCall","src":"1316:27:97"}],"functionName":{"name":"iszero","nativeSrc":"1309:6:97","nodeType":"YulIdentifier","src":"1309:6:97"},"nativeSrc":"1309:35:97","nodeType":"YulFunctionCall","src":"1309:35:97"},"nativeSrc":"1306:55:97","nodeType":"YulIf","src":"1306:55:97"},{"nativeSrc":"1370:30:97","nodeType":"YulAssignment","src":"1370:30:97","value":{"arguments":[{"name":"offset","nativeSrc":"1393:6:97","nodeType":"YulIdentifier","src":"1393:6:97"}],"functionName":{"name":"calldataload","nativeSrc":"1380:12:97","nodeType":"YulIdentifier","src":"1380:12:97"},"nativeSrc":"1380:20:97","nodeType":"YulFunctionCall","src":"1380:20:97"},"variableNames":[{"name":"length","nativeSrc":"1370:6:97","nodeType":"YulIdentifier","src":"1370:6:97"}]},{"body":{"nativeSrc":"1443:16:97","nodeType":"YulBlock","src":"1443:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1452:1:97","nodeType":"YulLiteral","src":"1452:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1455:1:97","nodeType":"YulLiteral","src":"1455:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1445:6:97","nodeType":"YulIdentifier","src":"1445:6:97"},"nativeSrc":"1445:12:97","nodeType":"YulFunctionCall","src":"1445:12:97"},"nativeSrc":"1445:12:97","nodeType":"YulExpressionStatement","src":"1445:12:97"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1415:6:97","nodeType":"YulIdentifier","src":"1415:6:97"},{"kind":"number","nativeSrc":"1423:18:97","nodeType":"YulLiteral","src":"1423:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1412:2:97","nodeType":"YulIdentifier","src":"1412:2:97"},"nativeSrc":"1412:30:97","nodeType":"YulFunctionCall","src":"1412:30:97"},"nativeSrc":"1409:50:97","nodeType":"YulIf","src":"1409:50:97"},{"nativeSrc":"1468:29:97","nodeType":"YulAssignment","src":"1468:29:97","value":{"arguments":[{"name":"offset","nativeSrc":"1484:6:97","nodeType":"YulIdentifier","src":"1484:6:97"},{"kind":"number","nativeSrc":"1492:4:97","nodeType":"YulLiteral","src":"1492:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1480:3:97","nodeType":"YulIdentifier","src":"1480:3:97"},"nativeSrc":"1480:17:97","nodeType":"YulFunctionCall","src":"1480:17:97"},"variableNames":[{"name":"arrayPos","nativeSrc":"1468:8:97","nodeType":"YulIdentifier","src":"1468:8:97"}]},{"body":{"nativeSrc":"1549:16:97","nodeType":"YulBlock","src":"1549:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1558:1:97","nodeType":"YulLiteral","src":"1558:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1561:1:97","nodeType":"YulLiteral","src":"1561:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1551:6:97","nodeType":"YulIdentifier","src":"1551:6:97"},"nativeSrc":"1551:12:97","nodeType":"YulFunctionCall","src":"1551:12:97"},"nativeSrc":"1551:12:97","nodeType":"YulExpressionStatement","src":"1551:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"1520:6:97","nodeType":"YulIdentifier","src":"1520:6:97"},{"name":"length","nativeSrc":"1528:6:97","nodeType":"YulIdentifier","src":"1528:6:97"}],"functionName":{"name":"add","nativeSrc":"1516:3:97","nodeType":"YulIdentifier","src":"1516:3:97"},"nativeSrc":"1516:19:97","nodeType":"YulFunctionCall","src":"1516:19:97"},{"kind":"number","nativeSrc":"1537:4:97","nodeType":"YulLiteral","src":"1537:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1512:3:97","nodeType":"YulIdentifier","src":"1512:3:97"},"nativeSrc":"1512:30:97","nodeType":"YulFunctionCall","src":"1512:30:97"},{"name":"end","nativeSrc":"1544:3:97","nodeType":"YulIdentifier","src":"1544:3:97"}],"functionName":{"name":"gt","nativeSrc":"1509:2:97","nodeType":"YulIdentifier","src":"1509:2:97"},"nativeSrc":"1509:39:97","nodeType":"YulFunctionCall","src":"1509:39:97"},"nativeSrc":"1506:59:97","nodeType":"YulIf","src":"1506:59:97"}]},"name":"abi_decode_bytes_calldata","nativeSrc":"1224:347:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1259:6:97","nodeType":"YulTypedName","src":"1259:6:97","type":""},{"name":"end","nativeSrc":"1267:3:97","nodeType":"YulTypedName","src":"1267:3:97","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"1275:8:97","nodeType":"YulTypedName","src":"1275:8:97","type":""},{"name":"length","nativeSrc":"1285:6:97","nodeType":"YulTypedName","src":"1285:6:97","type":""}],"src":"1224:347:97"},{"body":{"nativeSrc":"1681:376:97","nodeType":"YulBlock","src":"1681:376:97","statements":[{"body":{"nativeSrc":"1727:16:97","nodeType":"YulBlock","src":"1727:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1736:1:97","nodeType":"YulLiteral","src":"1736:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1739:1:97","nodeType":"YulLiteral","src":"1739:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1729:6:97","nodeType":"YulIdentifier","src":"1729:6:97"},"nativeSrc":"1729:12:97","nodeType":"YulFunctionCall","src":"1729:12:97"},"nativeSrc":"1729:12:97","nodeType":"YulExpressionStatement","src":"1729:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1702:7:97","nodeType":"YulIdentifier","src":"1702:7:97"},{"name":"headStart","nativeSrc":"1711:9:97","nodeType":"YulIdentifier","src":"1711:9:97"}],"functionName":{"name":"sub","nativeSrc":"1698:3:97","nodeType":"YulIdentifier","src":"1698:3:97"},"nativeSrc":"1698:23:97","nodeType":"YulFunctionCall","src":"1698:23:97"},{"kind":"number","nativeSrc":"1723:2:97","nodeType":"YulLiteral","src":"1723:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"1694:3:97","nodeType":"YulIdentifier","src":"1694:3:97"},"nativeSrc":"1694:32:97","nodeType":"YulFunctionCall","src":"1694:32:97"},"nativeSrc":"1691:52:97","nodeType":"YulIf","src":"1691:52:97"},{"nativeSrc":"1752:38:97","nodeType":"YulAssignment","src":"1752:38:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1780:9:97","nodeType":"YulIdentifier","src":"1780:9:97"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"1762:17:97","nodeType":"YulIdentifier","src":"1762:17:97"},"nativeSrc":"1762:28:97","nodeType":"YulFunctionCall","src":"1762:28:97"},"variableNames":[{"name":"value0","nativeSrc":"1752:6:97","nodeType":"YulIdentifier","src":"1752:6:97"}]},{"nativeSrc":"1799:46:97","nodeType":"YulVariableDeclaration","src":"1799:46:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1830:9:97","nodeType":"YulIdentifier","src":"1830:9:97"},{"kind":"number","nativeSrc":"1841:2:97","nodeType":"YulLiteral","src":"1841:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1826:3:97","nodeType":"YulIdentifier","src":"1826:3:97"},"nativeSrc":"1826:18:97","nodeType":"YulFunctionCall","src":"1826:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"1813:12:97","nodeType":"YulIdentifier","src":"1813:12:97"},"nativeSrc":"1813:32:97","nodeType":"YulFunctionCall","src":"1813:32:97"},"variables":[{"name":"offset","nativeSrc":"1803:6:97","nodeType":"YulTypedName","src":"1803:6:97","type":""}]},{"body":{"nativeSrc":"1888:16:97","nodeType":"YulBlock","src":"1888:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1897:1:97","nodeType":"YulLiteral","src":"1897:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1900:1:97","nodeType":"YulLiteral","src":"1900:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1890:6:97","nodeType":"YulIdentifier","src":"1890:6:97"},"nativeSrc":"1890:12:97","nodeType":"YulFunctionCall","src":"1890:12:97"},"nativeSrc":"1890:12:97","nodeType":"YulExpressionStatement","src":"1890:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"1860:6:97","nodeType":"YulIdentifier","src":"1860:6:97"},{"kind":"number","nativeSrc":"1868:18:97","nodeType":"YulLiteral","src":"1868:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1857:2:97","nodeType":"YulIdentifier","src":"1857:2:97"},"nativeSrc":"1857:30:97","nodeType":"YulFunctionCall","src":"1857:30:97"},"nativeSrc":"1854:50:97","nodeType":"YulIf","src":"1854:50:97"},{"nativeSrc":"1913:84:97","nodeType":"YulVariableDeclaration","src":"1913:84:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1969:9:97","nodeType":"YulIdentifier","src":"1969:9:97"},{"name":"offset","nativeSrc":"1980:6:97","nodeType":"YulIdentifier","src":"1980:6:97"}],"functionName":{"name":"add","nativeSrc":"1965:3:97","nodeType":"YulIdentifier","src":"1965:3:97"},"nativeSrc":"1965:22:97","nodeType":"YulFunctionCall","src":"1965:22:97"},{"name":"dataEnd","nativeSrc":"1989:7:97","nodeType":"YulIdentifier","src":"1989:7:97"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"1939:25:97","nodeType":"YulIdentifier","src":"1939:25:97"},"nativeSrc":"1939:58:97","nodeType":"YulFunctionCall","src":"1939:58:97"},"variables":[{"name":"value1_1","nativeSrc":"1917:8:97","nodeType":"YulTypedName","src":"1917:8:97","type":""},{"name":"value2_1","nativeSrc":"1927:8:97","nodeType":"YulTypedName","src":"1927:8:97","type":""}]},{"nativeSrc":"2006:18:97","nodeType":"YulAssignment","src":"2006:18:97","value":{"name":"value1_1","nativeSrc":"2016:8:97","nodeType":"YulIdentifier","src":"2016:8:97"},"variableNames":[{"name":"value1","nativeSrc":"2006:6:97","nodeType":"YulIdentifier","src":"2006:6:97"}]},{"nativeSrc":"2033:18:97","nodeType":"YulAssignment","src":"2033:18:97","value":{"name":"value2_1","nativeSrc":"2043:8:97","nodeType":"YulIdentifier","src":"2043:8:97"},"variableNames":[{"name":"value2","nativeSrc":"2033:6:97","nodeType":"YulIdentifier","src":"2033:6:97"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptr","nativeSrc":"1576:481:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1631:9:97","nodeType":"YulTypedName","src":"1631:9:97","type":""},{"name":"dataEnd","nativeSrc":"1642:7:97","nodeType":"YulTypedName","src":"1642:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1654:6:97","nodeType":"YulTypedName","src":"1654:6:97","type":""},{"name":"value1","nativeSrc":"1662:6:97","nodeType":"YulTypedName","src":"1662:6:97","type":""},{"name":"value2","nativeSrc":"1670:6:97","nodeType":"YulTypedName","src":"1670:6:97","type":""}],"src":"1576:481:97"},{"body":{"nativeSrc":"2157:92:97","nodeType":"YulBlock","src":"2157:92:97","statements":[{"nativeSrc":"2167:26:97","nodeType":"YulAssignment","src":"2167:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2179:9:97","nodeType":"YulIdentifier","src":"2179:9:97"},{"kind":"number","nativeSrc":"2190:2:97","nodeType":"YulLiteral","src":"2190:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2175:3:97","nodeType":"YulIdentifier","src":"2175:3:97"},"nativeSrc":"2175:18:97","nodeType":"YulFunctionCall","src":"2175:18:97"},"variableNames":[{"name":"tail","nativeSrc":"2167:4:97","nodeType":"YulIdentifier","src":"2167:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2209:9:97","nodeType":"YulIdentifier","src":"2209:9:97"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"2234:6:97","nodeType":"YulIdentifier","src":"2234:6:97"}],"functionName":{"name":"iszero","nativeSrc":"2227:6:97","nodeType":"YulIdentifier","src":"2227:6:97"},"nativeSrc":"2227:14:97","nodeType":"YulFunctionCall","src":"2227:14:97"}],"functionName":{"name":"iszero","nativeSrc":"2220:6:97","nodeType":"YulIdentifier","src":"2220:6:97"},"nativeSrc":"2220:22:97","nodeType":"YulFunctionCall","src":"2220:22:97"}],"functionName":{"name":"mstore","nativeSrc":"2202:6:97","nodeType":"YulIdentifier","src":"2202:6:97"},"nativeSrc":"2202:41:97","nodeType":"YulFunctionCall","src":"2202:41:97"},"nativeSrc":"2202:41:97","nodeType":"YulExpressionStatement","src":"2202:41:97"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"2062:187:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2126:9:97","nodeType":"YulTypedName","src":"2126:9:97","type":""},{"name":"value0","nativeSrc":"2137:6:97","nodeType":"YulTypedName","src":"2137:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2148:4:97","nodeType":"YulTypedName","src":"2148:4:97","type":""}],"src":"2062:187:97"},{"body":{"nativeSrc":"2286:152:97","nodeType":"YulBlock","src":"2286:152:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2303:1:97","nodeType":"YulLiteral","src":"2303:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"2306:77:97","nodeType":"YulLiteral","src":"2306:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"2296:6:97","nodeType":"YulIdentifier","src":"2296:6:97"},"nativeSrc":"2296:88:97","nodeType":"YulFunctionCall","src":"2296:88:97"},"nativeSrc":"2296:88:97","nodeType":"YulExpressionStatement","src":"2296:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2400:1:97","nodeType":"YulLiteral","src":"2400:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"2403:4:97","nodeType":"YulLiteral","src":"2403:4:97","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"2393:6:97","nodeType":"YulIdentifier","src":"2393:6:97"},"nativeSrc":"2393:15:97","nodeType":"YulFunctionCall","src":"2393:15:97"},"nativeSrc":"2393:15:97","nodeType":"YulExpressionStatement","src":"2393:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2424:1:97","nodeType":"YulLiteral","src":"2424:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"2427:4:97","nodeType":"YulLiteral","src":"2427:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"2417:6:97","nodeType":"YulIdentifier","src":"2417:6:97"},"nativeSrc":"2417:15:97","nodeType":"YulFunctionCall","src":"2417:15:97"},"nativeSrc":"2417:15:97","nodeType":"YulExpressionStatement","src":"2417:15:97"}]},"name":"panic_error_0x41","nativeSrc":"2254:184:97","nodeType":"YulFunctionDefinition","src":"2254:184:97"},{"body":{"nativeSrc":"2495:725:97","nodeType":"YulBlock","src":"2495:725:97","statements":[{"body":{"nativeSrc":"2544:16:97","nodeType":"YulBlock","src":"2544:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2553:1:97","nodeType":"YulLiteral","src":"2553:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"2556:1:97","nodeType":"YulLiteral","src":"2556:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2546:6:97","nodeType":"YulIdentifier","src":"2546:6:97"},"nativeSrc":"2546:12:97","nodeType":"YulFunctionCall","src":"2546:12:97"},"nativeSrc":"2546:12:97","nodeType":"YulExpressionStatement","src":"2546:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2523:6:97","nodeType":"YulIdentifier","src":"2523:6:97"},{"kind":"number","nativeSrc":"2531:4:97","nodeType":"YulLiteral","src":"2531:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2519:3:97","nodeType":"YulIdentifier","src":"2519:3:97"},"nativeSrc":"2519:17:97","nodeType":"YulFunctionCall","src":"2519:17:97"},{"name":"end","nativeSrc":"2538:3:97","nodeType":"YulIdentifier","src":"2538:3:97"}],"functionName":{"name":"slt","nativeSrc":"2515:3:97","nodeType":"YulIdentifier","src":"2515:3:97"},"nativeSrc":"2515:27:97","nodeType":"YulFunctionCall","src":"2515:27:97"}],"functionName":{"name":"iszero","nativeSrc":"2508:6:97","nodeType":"YulIdentifier","src":"2508:6:97"},"nativeSrc":"2508:35:97","nodeType":"YulFunctionCall","src":"2508:35:97"},"nativeSrc":"2505:55:97","nodeType":"YulIf","src":"2505:55:97"},{"nativeSrc":"2569:30:97","nodeType":"YulVariableDeclaration","src":"2569:30:97","value":{"arguments":[{"name":"offset","nativeSrc":"2592:6:97","nodeType":"YulIdentifier","src":"2592:6:97"}],"functionName":{"name":"calldataload","nativeSrc":"2579:12:97","nodeType":"YulIdentifier","src":"2579:12:97"},"nativeSrc":"2579:20:97","nodeType":"YulFunctionCall","src":"2579:20:97"},"variables":[{"name":"_1","nativeSrc":"2573:2:97","nodeType":"YulTypedName","src":"2573:2:97","type":""}]},{"nativeSrc":"2608:28:97","nodeType":"YulVariableDeclaration","src":"2608:28:97","value":{"kind":"number","nativeSrc":"2618:18:97","nodeType":"YulLiteral","src":"2618:18:97","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_2","nativeSrc":"2612:2:97","nodeType":"YulTypedName","src":"2612:2:97","type":""}]},{"body":{"nativeSrc":"2659:22:97","nodeType":"YulBlock","src":"2659:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2661:16:97","nodeType":"YulIdentifier","src":"2661:16:97"},"nativeSrc":"2661:18:97","nodeType":"YulFunctionCall","src":"2661:18:97"},"nativeSrc":"2661:18:97","nodeType":"YulExpressionStatement","src":"2661:18:97"}]},"condition":{"arguments":[{"name":"_1","nativeSrc":"2651:2:97","nodeType":"YulIdentifier","src":"2651:2:97"},{"name":"_2","nativeSrc":"2655:2:97","nodeType":"YulIdentifier","src":"2655:2:97"}],"functionName":{"name":"gt","nativeSrc":"2648:2:97","nodeType":"YulIdentifier","src":"2648:2:97"},"nativeSrc":"2648:10:97","nodeType":"YulFunctionCall","src":"2648:10:97"},"nativeSrc":"2645:36:97","nodeType":"YulIf","src":"2645:36:97"},{"nativeSrc":"2690:76:97","nodeType":"YulVariableDeclaration","src":"2690:76:97","value":{"kind":"number","nativeSrc":"2700:66:97","nodeType":"YulLiteral","src":"2700:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"},"variables":[{"name":"_3","nativeSrc":"2694:2:97","nodeType":"YulTypedName","src":"2694:2:97","type":""}]},{"nativeSrc":"2775:23:97","nodeType":"YulVariableDeclaration","src":"2775:23:97","value":{"arguments":[{"kind":"number","nativeSrc":"2795:2:97","nodeType":"YulLiteral","src":"2795:2:97","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"2789:5:97","nodeType":"YulIdentifier","src":"2789:5:97"},"nativeSrc":"2789:9:97","nodeType":"YulFunctionCall","src":"2789:9:97"},"variables":[{"name":"memPtr","nativeSrc":"2779:6:97","nodeType":"YulTypedName","src":"2779:6:97","type":""}]},{"nativeSrc":"2807:71:97","nodeType":"YulVariableDeclaration","src":"2807:71:97","value":{"arguments":[{"name":"memPtr","nativeSrc":"2829:6:97","nodeType":"YulIdentifier","src":"2829:6:97"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"2853:2:97","nodeType":"YulIdentifier","src":"2853:2:97"},{"kind":"number","nativeSrc":"2857:4:97","nodeType":"YulLiteral","src":"2857:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2849:3:97","nodeType":"YulIdentifier","src":"2849:3:97"},"nativeSrc":"2849:13:97","nodeType":"YulFunctionCall","src":"2849:13:97"},{"name":"_3","nativeSrc":"2864:2:97","nodeType":"YulIdentifier","src":"2864:2:97"}],"functionName":{"name":"and","nativeSrc":"2845:3:97","nodeType":"YulIdentifier","src":"2845:3:97"},"nativeSrc":"2845:22:97","nodeType":"YulFunctionCall","src":"2845:22:97"},{"kind":"number","nativeSrc":"2869:2:97","nodeType":"YulLiteral","src":"2869:2:97","type":"","value":"63"}],"functionName":{"name":"add","nativeSrc":"2841:3:97","nodeType":"YulIdentifier","src":"2841:3:97"},"nativeSrc":"2841:31:97","nodeType":"YulFunctionCall","src":"2841:31:97"},{"name":"_3","nativeSrc":"2874:2:97","nodeType":"YulIdentifier","src":"2874:2:97"}],"functionName":{"name":"and","nativeSrc":"2837:3:97","nodeType":"YulIdentifier","src":"2837:3:97"},"nativeSrc":"2837:40:97","nodeType":"YulFunctionCall","src":"2837:40:97"}],"functionName":{"name":"add","nativeSrc":"2825:3:97","nodeType":"YulIdentifier","src":"2825:3:97"},"nativeSrc":"2825:53:97","nodeType":"YulFunctionCall","src":"2825:53:97"},"variables":[{"name":"newFreePtr","nativeSrc":"2811:10:97","nodeType":"YulTypedName","src":"2811:10:97","type":""}]},{"body":{"nativeSrc":"2937:22:97","nodeType":"YulBlock","src":"2937:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2939:16:97","nodeType":"YulIdentifier","src":"2939:16:97"},"nativeSrc":"2939:18:97","nodeType":"YulFunctionCall","src":"2939:18:97"},"nativeSrc":"2939:18:97","nodeType":"YulExpressionStatement","src":"2939:18:97"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"2896:10:97","nodeType":"YulIdentifier","src":"2896:10:97"},{"name":"_2","nativeSrc":"2908:2:97","nodeType":"YulIdentifier","src":"2908:2:97"}],"functionName":{"name":"gt","nativeSrc":"2893:2:97","nodeType":"YulIdentifier","src":"2893:2:97"},"nativeSrc":"2893:18:97","nodeType":"YulFunctionCall","src":"2893:18:97"},{"arguments":[{"name":"newFreePtr","nativeSrc":"2916:10:97","nodeType":"YulIdentifier","src":"2916:10:97"},{"name":"memPtr","nativeSrc":"2928:6:97","nodeType":"YulIdentifier","src":"2928:6:97"}],"functionName":{"name":"lt","nativeSrc":"2913:2:97","nodeType":"YulIdentifier","src":"2913:2:97"},"nativeSrc":"2913:22:97","nodeType":"YulFunctionCall","src":"2913:22:97"}],"functionName":{"name":"or","nativeSrc":"2890:2:97","nodeType":"YulIdentifier","src":"2890:2:97"},"nativeSrc":"2890:46:97","nodeType":"YulFunctionCall","src":"2890:46:97"},"nativeSrc":"2887:72:97","nodeType":"YulIf","src":"2887:72:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2975:2:97","nodeType":"YulLiteral","src":"2975:2:97","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"2979:10:97","nodeType":"YulIdentifier","src":"2979:10:97"}],"functionName":{"name":"mstore","nativeSrc":"2968:6:97","nodeType":"YulIdentifier","src":"2968:6:97"},"nativeSrc":"2968:22:97","nodeType":"YulFunctionCall","src":"2968:22:97"},"nativeSrc":"2968:22:97","nodeType":"YulExpressionStatement","src":"2968:22:97"},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"3006:6:97","nodeType":"YulIdentifier","src":"3006:6:97"},{"name":"_1","nativeSrc":"3014:2:97","nodeType":"YulIdentifier","src":"3014:2:97"}],"functionName":{"name":"mstore","nativeSrc":"2999:6:97","nodeType":"YulIdentifier","src":"2999:6:97"},"nativeSrc":"2999:18:97","nodeType":"YulFunctionCall","src":"2999:18:97"},"nativeSrc":"2999:18:97","nodeType":"YulExpressionStatement","src":"2999:18:97"},{"body":{"nativeSrc":"3065:16:97","nodeType":"YulBlock","src":"3065:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3074:1:97","nodeType":"YulLiteral","src":"3074:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"3077:1:97","nodeType":"YulLiteral","src":"3077:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3067:6:97","nodeType":"YulIdentifier","src":"3067:6:97"},"nativeSrc":"3067:12:97","nodeType":"YulFunctionCall","src":"3067:12:97"},"nativeSrc":"3067:12:97","nodeType":"YulExpressionStatement","src":"3067:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3040:6:97","nodeType":"YulIdentifier","src":"3040:6:97"},{"name":"_1","nativeSrc":"3048:2:97","nodeType":"YulIdentifier","src":"3048:2:97"}],"functionName":{"name":"add","nativeSrc":"3036:3:97","nodeType":"YulIdentifier","src":"3036:3:97"},"nativeSrc":"3036:15:97","nodeType":"YulFunctionCall","src":"3036:15:97"},{"kind":"number","nativeSrc":"3053:4:97","nodeType":"YulLiteral","src":"3053:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3032:3:97","nodeType":"YulIdentifier","src":"3032:3:97"},"nativeSrc":"3032:26:97","nodeType":"YulFunctionCall","src":"3032:26:97"},{"name":"end","nativeSrc":"3060:3:97","nodeType":"YulIdentifier","src":"3060:3:97"}],"functionName":{"name":"gt","nativeSrc":"3029:2:97","nodeType":"YulIdentifier","src":"3029:2:97"},"nativeSrc":"3029:35:97","nodeType":"YulFunctionCall","src":"3029:35:97"},"nativeSrc":"3026:55:97","nodeType":"YulIf","src":"3026:55:97"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"3107:6:97","nodeType":"YulIdentifier","src":"3107:6:97"},{"kind":"number","nativeSrc":"3115:4:97","nodeType":"YulLiteral","src":"3115:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3103:3:97","nodeType":"YulIdentifier","src":"3103:3:97"},"nativeSrc":"3103:17:97","nodeType":"YulFunctionCall","src":"3103:17:97"},{"arguments":[{"name":"offset","nativeSrc":"3126:6:97","nodeType":"YulIdentifier","src":"3126:6:97"},{"kind":"number","nativeSrc":"3134:4:97","nodeType":"YulLiteral","src":"3134:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3122:3:97","nodeType":"YulIdentifier","src":"3122:3:97"},"nativeSrc":"3122:17:97","nodeType":"YulFunctionCall","src":"3122:17:97"},{"name":"_1","nativeSrc":"3141:2:97","nodeType":"YulIdentifier","src":"3141:2:97"}],"functionName":{"name":"calldatacopy","nativeSrc":"3090:12:97","nodeType":"YulIdentifier","src":"3090:12:97"},"nativeSrc":"3090:54:97","nodeType":"YulFunctionCall","src":"3090:54:97"},"nativeSrc":"3090:54:97","nodeType":"YulExpressionStatement","src":"3090:54:97"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"3168:6:97","nodeType":"YulIdentifier","src":"3168:6:97"},{"name":"_1","nativeSrc":"3176:2:97","nodeType":"YulIdentifier","src":"3176:2:97"}],"functionName":{"name":"add","nativeSrc":"3164:3:97","nodeType":"YulIdentifier","src":"3164:3:97"},"nativeSrc":"3164:15:97","nodeType":"YulFunctionCall","src":"3164:15:97"},{"kind":"number","nativeSrc":"3181:4:97","nodeType":"YulLiteral","src":"3181:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3160:3:97","nodeType":"YulIdentifier","src":"3160:3:97"},"nativeSrc":"3160:26:97","nodeType":"YulFunctionCall","src":"3160:26:97"},{"kind":"number","nativeSrc":"3188:1:97","nodeType":"YulLiteral","src":"3188:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"3153:6:97","nodeType":"YulIdentifier","src":"3153:6:97"},"nativeSrc":"3153:37:97","nodeType":"YulFunctionCall","src":"3153:37:97"},"nativeSrc":"3153:37:97","nodeType":"YulExpressionStatement","src":"3153:37:97"},{"nativeSrc":"3199:15:97","nodeType":"YulAssignment","src":"3199:15:97","value":{"name":"memPtr","nativeSrc":"3208:6:97","nodeType":"YulIdentifier","src":"3208:6:97"},"variableNames":[{"name":"array","nativeSrc":"3199:5:97","nodeType":"YulIdentifier","src":"3199:5:97"}]}]},"name":"abi_decode_bytes","nativeSrc":"2443:777:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2469:6:97","nodeType":"YulTypedName","src":"2469:6:97","type":""},{"name":"end","nativeSrc":"2477:3:97","nodeType":"YulTypedName","src":"2477:3:97","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2485:5:97","nodeType":"YulTypedName","src":"2485:5:97","type":""}],"src":"2443:777:97"},{"body":{"nativeSrc":"3337:348:97","nodeType":"YulBlock","src":"3337:348:97","statements":[{"body":{"nativeSrc":"3383:16:97","nodeType":"YulBlock","src":"3383:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3392:1:97","nodeType":"YulLiteral","src":"3392:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"3395:1:97","nodeType":"YulLiteral","src":"3395:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3385:6:97","nodeType":"YulIdentifier","src":"3385:6:97"},"nativeSrc":"3385:12:97","nodeType":"YulFunctionCall","src":"3385:12:97"},"nativeSrc":"3385:12:97","nodeType":"YulExpressionStatement","src":"3385:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3358:7:97","nodeType":"YulIdentifier","src":"3358:7:97"},{"name":"headStart","nativeSrc":"3367:9:97","nodeType":"YulIdentifier","src":"3367:9:97"}],"functionName":{"name":"sub","nativeSrc":"3354:3:97","nodeType":"YulIdentifier","src":"3354:3:97"},"nativeSrc":"3354:23:97","nodeType":"YulFunctionCall","src":"3354:23:97"},{"kind":"number","nativeSrc":"3379:2:97","nodeType":"YulLiteral","src":"3379:2:97","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"3350:3:97","nodeType":"YulIdentifier","src":"3350:3:97"},"nativeSrc":"3350:32:97","nodeType":"YulFunctionCall","src":"3350:32:97"},"nativeSrc":"3347:52:97","nodeType":"YulIf","src":"3347:52:97"},{"nativeSrc":"3408:38:97","nodeType":"YulAssignment","src":"3408:38:97","value":{"arguments":[{"name":"headStart","nativeSrc":"3436:9:97","nodeType":"YulIdentifier","src":"3436:9:97"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"3418:17:97","nodeType":"YulIdentifier","src":"3418:17:97"},"nativeSrc":"3418:28:97","nodeType":"YulFunctionCall","src":"3418:28:97"},"variableNames":[{"name":"value0","nativeSrc":"3408:6:97","nodeType":"YulIdentifier","src":"3408:6:97"}]},{"nativeSrc":"3455:46:97","nodeType":"YulVariableDeclaration","src":"3455:46:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3486:9:97","nodeType":"YulIdentifier","src":"3486:9:97"},{"kind":"number","nativeSrc":"3497:2:97","nodeType":"YulLiteral","src":"3497:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3482:3:97","nodeType":"YulIdentifier","src":"3482:3:97"},"nativeSrc":"3482:18:97","nodeType":"YulFunctionCall","src":"3482:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"3469:12:97","nodeType":"YulIdentifier","src":"3469:12:97"},"nativeSrc":"3469:32:97","nodeType":"YulFunctionCall","src":"3469:32:97"},"variables":[{"name":"offset","nativeSrc":"3459:6:97","nodeType":"YulTypedName","src":"3459:6:97","type":""}]},{"body":{"nativeSrc":"3544:16:97","nodeType":"YulBlock","src":"3544:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3553:1:97","nodeType":"YulLiteral","src":"3553:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"3556:1:97","nodeType":"YulLiteral","src":"3556:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3546:6:97","nodeType":"YulIdentifier","src":"3546:6:97"},"nativeSrc":"3546:12:97","nodeType":"YulFunctionCall","src":"3546:12:97"},"nativeSrc":"3546:12:97","nodeType":"YulExpressionStatement","src":"3546:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3516:6:97","nodeType":"YulIdentifier","src":"3516:6:97"},{"kind":"number","nativeSrc":"3524:18:97","nodeType":"YulLiteral","src":"3524:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3513:2:97","nodeType":"YulIdentifier","src":"3513:2:97"},"nativeSrc":"3513:30:97","nodeType":"YulFunctionCall","src":"3513:30:97"},"nativeSrc":"3510:50:97","nodeType":"YulIf","src":"3510:50:97"},{"nativeSrc":"3569:59:97","nodeType":"YulAssignment","src":"3569:59:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3600:9:97","nodeType":"YulIdentifier","src":"3600:9:97"},{"name":"offset","nativeSrc":"3611:6:97","nodeType":"YulIdentifier","src":"3611:6:97"}],"functionName":{"name":"add","nativeSrc":"3596:3:97","nodeType":"YulIdentifier","src":"3596:3:97"},"nativeSrc":"3596:22:97","nodeType":"YulFunctionCall","src":"3596:22:97"},{"name":"dataEnd","nativeSrc":"3620:7:97","nodeType":"YulIdentifier","src":"3620:7:97"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"3579:16:97","nodeType":"YulIdentifier","src":"3579:16:97"},"nativeSrc":"3579:49:97","nodeType":"YulFunctionCall","src":"3579:49:97"},"variableNames":[{"name":"value1","nativeSrc":"3569:6:97","nodeType":"YulIdentifier","src":"3569:6:97"}]},{"nativeSrc":"3637:42:97","nodeType":"YulAssignment","src":"3637:42:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3664:9:97","nodeType":"YulIdentifier","src":"3664:9:97"},{"kind":"number","nativeSrc":"3675:2:97","nodeType":"YulLiteral","src":"3675:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3660:3:97","nodeType":"YulIdentifier","src":"3660:3:97"},"nativeSrc":"3660:18:97","nodeType":"YulFunctionCall","src":"3660:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"3647:12:97","nodeType":"YulIdentifier","src":"3647:12:97"},"nativeSrc":"3647:32:97","nodeType":"YulFunctionCall","src":"3647:32:97"},"variableNames":[{"name":"value2","nativeSrc":"3637:6:97","nodeType":"YulIdentifier","src":"3637:6:97"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint256","nativeSrc":"3225:460:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3287:9:97","nodeType":"YulTypedName","src":"3287:9:97","type":""},{"name":"dataEnd","nativeSrc":"3298:7:97","nodeType":"YulTypedName","src":"3298:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3310:6:97","nodeType":"YulTypedName","src":"3310:6:97","type":""},{"name":"value1","nativeSrc":"3318:6:97","nodeType":"YulTypedName","src":"3318:6:97","type":""},{"name":"value2","nativeSrc":"3326:6:97","nodeType":"YulTypedName","src":"3326:6:97","type":""}],"src":"3225:460:97"},{"body":{"nativeSrc":"3739:432:97","nodeType":"YulBlock","src":"3739:432:97","statements":[{"nativeSrc":"3749:26:97","nodeType":"YulVariableDeclaration","src":"3749:26:97","value":{"arguments":[{"name":"value","nativeSrc":"3769:5:97","nodeType":"YulIdentifier","src":"3769:5:97"}],"functionName":{"name":"mload","nativeSrc":"3763:5:97","nodeType":"YulIdentifier","src":"3763:5:97"},"nativeSrc":"3763:12:97","nodeType":"YulFunctionCall","src":"3763:12:97"},"variables":[{"name":"length","nativeSrc":"3753:6:97","nodeType":"YulTypedName","src":"3753:6:97","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"3791:3:97","nodeType":"YulIdentifier","src":"3791:3:97"},{"name":"length","nativeSrc":"3796:6:97","nodeType":"YulIdentifier","src":"3796:6:97"}],"functionName":{"name":"mstore","nativeSrc":"3784:6:97","nodeType":"YulIdentifier","src":"3784:6:97"},"nativeSrc":"3784:19:97","nodeType":"YulFunctionCall","src":"3784:19:97"},"nativeSrc":"3784:19:97","nodeType":"YulExpressionStatement","src":"3784:19:97"},{"nativeSrc":"3812:10:97","nodeType":"YulVariableDeclaration","src":"3812:10:97","value":{"kind":"number","nativeSrc":"3821:1:97","nodeType":"YulLiteral","src":"3821:1:97","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"3816:1:97","nodeType":"YulTypedName","src":"3816:1:97","type":""}]},{"body":{"nativeSrc":"3883:110:97","nodeType":"YulBlock","src":"3883:110:97","statements":[{"nativeSrc":"3897:14:97","nodeType":"YulVariableDeclaration","src":"3897:14:97","value":{"kind":"number","nativeSrc":"3907:4:97","nodeType":"YulLiteral","src":"3907:4:97","type":"","value":"0x20"},"variables":[{"name":"_1","nativeSrc":"3901:2:97","nodeType":"YulTypedName","src":"3901:2:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"3939:3:97","nodeType":"YulIdentifier","src":"3939:3:97"},{"name":"i","nativeSrc":"3944:1:97","nodeType":"YulIdentifier","src":"3944:1:97"}],"functionName":{"name":"add","nativeSrc":"3935:3:97","nodeType":"YulIdentifier","src":"3935:3:97"},"nativeSrc":"3935:11:97","nodeType":"YulFunctionCall","src":"3935:11:97"},{"name":"_1","nativeSrc":"3948:2:97","nodeType":"YulIdentifier","src":"3948:2:97"}],"functionName":{"name":"add","nativeSrc":"3931:3:97","nodeType":"YulIdentifier","src":"3931:3:97"},"nativeSrc":"3931:20:97","nodeType":"YulFunctionCall","src":"3931:20:97"},{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3967:5:97","nodeType":"YulIdentifier","src":"3967:5:97"},{"name":"i","nativeSrc":"3974:1:97","nodeType":"YulIdentifier","src":"3974:1:97"}],"functionName":{"name":"add","nativeSrc":"3963:3:97","nodeType":"YulIdentifier","src":"3963:3:97"},"nativeSrc":"3963:13:97","nodeType":"YulFunctionCall","src":"3963:13:97"},{"name":"_1","nativeSrc":"3978:2:97","nodeType":"YulIdentifier","src":"3978:2:97"}],"functionName":{"name":"add","nativeSrc":"3959:3:97","nodeType":"YulIdentifier","src":"3959:3:97"},"nativeSrc":"3959:22:97","nodeType":"YulFunctionCall","src":"3959:22:97"}],"functionName":{"name":"mload","nativeSrc":"3953:5:97","nodeType":"YulIdentifier","src":"3953:5:97"},"nativeSrc":"3953:29:97","nodeType":"YulFunctionCall","src":"3953:29:97"}],"functionName":{"name":"mstore","nativeSrc":"3924:6:97","nodeType":"YulIdentifier","src":"3924:6:97"},"nativeSrc":"3924:59:97","nodeType":"YulFunctionCall","src":"3924:59:97"},"nativeSrc":"3924:59:97","nodeType":"YulExpressionStatement","src":"3924:59:97"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"3842:1:97","nodeType":"YulIdentifier","src":"3842:1:97"},{"name":"length","nativeSrc":"3845:6:97","nodeType":"YulIdentifier","src":"3845:6:97"}],"functionName":{"name":"lt","nativeSrc":"3839:2:97","nodeType":"YulIdentifier","src":"3839:2:97"},"nativeSrc":"3839:13:97","nodeType":"YulFunctionCall","src":"3839:13:97"},"nativeSrc":"3831:162:97","nodeType":"YulForLoop","post":{"nativeSrc":"3853:21:97","nodeType":"YulBlock","src":"3853:21:97","statements":[{"nativeSrc":"3855:17:97","nodeType":"YulAssignment","src":"3855:17:97","value":{"arguments":[{"name":"i","nativeSrc":"3864:1:97","nodeType":"YulIdentifier","src":"3864:1:97"},{"kind":"number","nativeSrc":"3867:4:97","nodeType":"YulLiteral","src":"3867:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3860:3:97","nodeType":"YulIdentifier","src":"3860:3:97"},"nativeSrc":"3860:12:97","nodeType":"YulFunctionCall","src":"3860:12:97"},"variableNames":[{"name":"i","nativeSrc":"3855:1:97","nodeType":"YulIdentifier","src":"3855:1:97"}]}]},"pre":{"nativeSrc":"3835:3:97","nodeType":"YulBlock","src":"3835:3:97","statements":[]},"src":"3831:162:97"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"4017:3:97","nodeType":"YulIdentifier","src":"4017:3:97"},{"name":"length","nativeSrc":"4022:6:97","nodeType":"YulIdentifier","src":"4022:6:97"}],"functionName":{"name":"add","nativeSrc":"4013:3:97","nodeType":"YulIdentifier","src":"4013:3:97"},"nativeSrc":"4013:16:97","nodeType":"YulFunctionCall","src":"4013:16:97"},{"kind":"number","nativeSrc":"4031:4:97","nodeType":"YulLiteral","src":"4031:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4009:3:97","nodeType":"YulIdentifier","src":"4009:3:97"},"nativeSrc":"4009:27:97","nodeType":"YulFunctionCall","src":"4009:27:97"},{"kind":"number","nativeSrc":"4038:1:97","nodeType":"YulLiteral","src":"4038:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4002:6:97","nodeType":"YulIdentifier","src":"4002:6:97"},"nativeSrc":"4002:38:97","nodeType":"YulFunctionCall","src":"4002:38:97"},"nativeSrc":"4002:38:97","nodeType":"YulExpressionStatement","src":"4002:38:97"},{"nativeSrc":"4049:116:97","nodeType":"YulAssignment","src":"4049:116:97","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"4064:3:97","nodeType":"YulIdentifier","src":"4064:3:97"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"4077:6:97","nodeType":"YulIdentifier","src":"4077:6:97"},{"kind":"number","nativeSrc":"4085:2:97","nodeType":"YulLiteral","src":"4085:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"4073:3:97","nodeType":"YulIdentifier","src":"4073:3:97"},"nativeSrc":"4073:15:97","nodeType":"YulFunctionCall","src":"4073:15:97"},{"kind":"number","nativeSrc":"4090:66:97","nodeType":"YulLiteral","src":"4090:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"4069:3:97","nodeType":"YulIdentifier","src":"4069:3:97"},"nativeSrc":"4069:88:97","nodeType":"YulFunctionCall","src":"4069:88:97"}],"functionName":{"name":"add","nativeSrc":"4060:3:97","nodeType":"YulIdentifier","src":"4060:3:97"},"nativeSrc":"4060:98:97","nodeType":"YulFunctionCall","src":"4060:98:97"},{"kind":"number","nativeSrc":"4160:4:97","nodeType":"YulLiteral","src":"4160:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4056:3:97","nodeType":"YulIdentifier","src":"4056:3:97"},"nativeSrc":"4056:109:97","nodeType":"YulFunctionCall","src":"4056:109:97"},"variableNames":[{"name":"end","nativeSrc":"4049:3:97","nodeType":"YulIdentifier","src":"4049:3:97"}]}]},"name":"abi_encode_bytes","nativeSrc":"3690:481:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3716:5:97","nodeType":"YulTypedName","src":"3716:5:97","type":""},{"name":"pos","nativeSrc":"3723:3:97","nodeType":"YulTypedName","src":"3723:3:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"3731:3:97","nodeType":"YulTypedName","src":"3731:3:97","type":""}],"src":"3690:481:97"},{"body":{"nativeSrc":"4349:258:97","nodeType":"YulBlock","src":"4349:258:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4366:9:97","nodeType":"YulIdentifier","src":"4366:9:97"},{"arguments":[{"name":"value0","nativeSrc":"4381:6:97","nodeType":"YulIdentifier","src":"4381:6:97"},{"kind":"number","nativeSrc":"4389:42:97","nodeType":"YulLiteral","src":"4389:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"4377:3:97","nodeType":"YulIdentifier","src":"4377:3:97"},"nativeSrc":"4377:55:97","nodeType":"YulFunctionCall","src":"4377:55:97"}],"functionName":{"name":"mstore","nativeSrc":"4359:6:97","nodeType":"YulIdentifier","src":"4359:6:97"},"nativeSrc":"4359:74:97","nodeType":"YulFunctionCall","src":"4359:74:97"},"nativeSrc":"4359:74:97","nodeType":"YulExpressionStatement","src":"4359:74:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4453:9:97","nodeType":"YulIdentifier","src":"4453:9:97"},{"kind":"number","nativeSrc":"4464:2:97","nodeType":"YulLiteral","src":"4464:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4449:3:97","nodeType":"YulIdentifier","src":"4449:3:97"},"nativeSrc":"4449:18:97","nodeType":"YulFunctionCall","src":"4449:18:97"},{"arguments":[{"name":"value1","nativeSrc":"4473:6:97","nodeType":"YulIdentifier","src":"4473:6:97"},{"kind":"number","nativeSrc":"4481:18:97","nodeType":"YulLiteral","src":"4481:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"4469:3:97","nodeType":"YulIdentifier","src":"4469:3:97"},"nativeSrc":"4469:31:97","nodeType":"YulFunctionCall","src":"4469:31:97"}],"functionName":{"name":"mstore","nativeSrc":"4442:6:97","nodeType":"YulIdentifier","src":"4442:6:97"},"nativeSrc":"4442:59:97","nodeType":"YulFunctionCall","src":"4442:59:97"},"nativeSrc":"4442:59:97","nodeType":"YulExpressionStatement","src":"4442:59:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4521:9:97","nodeType":"YulIdentifier","src":"4521:9:97"},{"kind":"number","nativeSrc":"4532:2:97","nodeType":"YulLiteral","src":"4532:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4517:3:97","nodeType":"YulIdentifier","src":"4517:3:97"},"nativeSrc":"4517:18:97","nodeType":"YulFunctionCall","src":"4517:18:97"},{"kind":"number","nativeSrc":"4537:2:97","nodeType":"YulLiteral","src":"4537:2:97","type":"","value":"96"}],"functionName":{"name":"mstore","nativeSrc":"4510:6:97","nodeType":"YulIdentifier","src":"4510:6:97"},"nativeSrc":"4510:30:97","nodeType":"YulFunctionCall","src":"4510:30:97"},"nativeSrc":"4510:30:97","nodeType":"YulExpressionStatement","src":"4510:30:97"},{"nativeSrc":"4549:52:97","nodeType":"YulAssignment","src":"4549:52:97","value":{"arguments":[{"name":"value2","nativeSrc":"4574:6:97","nodeType":"YulIdentifier","src":"4574:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"4586:9:97","nodeType":"YulIdentifier","src":"4586:9:97"},{"kind":"number","nativeSrc":"4597:2:97","nodeType":"YulLiteral","src":"4597:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4582:3:97","nodeType":"YulIdentifier","src":"4582:3:97"},"nativeSrc":"4582:18:97","nodeType":"YulFunctionCall","src":"4582:18:97"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"4557:16:97","nodeType":"YulIdentifier","src":"4557:16:97"},"nativeSrc":"4557:44:97","nodeType":"YulFunctionCall","src":"4557:44:97"},"variableNames":[{"name":"tail","nativeSrc":"4549:4:97","nodeType":"YulIdentifier","src":"4549:4:97"}]}]},"name":"abi_encode_tuple_t_address_t_uint64_t_bytes_memory_ptr__to_t_address_t_uint64_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"4176:431:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4302:9:97","nodeType":"YulTypedName","src":"4302:9:97","type":""},{"name":"value2","nativeSrc":"4313:6:97","nodeType":"YulTypedName","src":"4313:6:97","type":""},{"name":"value1","nativeSrc":"4321:6:97","nodeType":"YulTypedName","src":"4321:6:97","type":""},{"name":"value0","nativeSrc":"4329:6:97","nodeType":"YulTypedName","src":"4329:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4340:4:97","nodeType":"YulTypedName","src":"4340:4:97","type":""}],"src":"4176:431:97"},{"body":{"nativeSrc":"4699:161:97","nodeType":"YulBlock","src":"4699:161:97","statements":[{"body":{"nativeSrc":"4745:16:97","nodeType":"YulBlock","src":"4745:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4754:1:97","nodeType":"YulLiteral","src":"4754:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"4757:1:97","nodeType":"YulLiteral","src":"4757:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4747:6:97","nodeType":"YulIdentifier","src":"4747:6:97"},"nativeSrc":"4747:12:97","nodeType":"YulFunctionCall","src":"4747:12:97"},"nativeSrc":"4747:12:97","nodeType":"YulExpressionStatement","src":"4747:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4720:7:97","nodeType":"YulIdentifier","src":"4720:7:97"},{"name":"headStart","nativeSrc":"4729:9:97","nodeType":"YulIdentifier","src":"4729:9:97"}],"functionName":{"name":"sub","nativeSrc":"4716:3:97","nodeType":"YulIdentifier","src":"4716:3:97"},"nativeSrc":"4716:23:97","nodeType":"YulFunctionCall","src":"4716:23:97"},{"kind":"number","nativeSrc":"4741:2:97","nodeType":"YulLiteral","src":"4741:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"4712:3:97","nodeType":"YulIdentifier","src":"4712:3:97"},"nativeSrc":"4712:32:97","nodeType":"YulFunctionCall","src":"4712:32:97"},"nativeSrc":"4709:52:97","nodeType":"YulIf","src":"4709:52:97"},{"nativeSrc":"4770:33:97","nodeType":"YulAssignment","src":"4770:33:97","value":{"arguments":[{"name":"headStart","nativeSrc":"4793:9:97","nodeType":"YulIdentifier","src":"4793:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"4780:12:97","nodeType":"YulIdentifier","src":"4780:12:97"},"nativeSrc":"4780:23:97","nodeType":"YulFunctionCall","src":"4780:23:97"},"variableNames":[{"name":"value0","nativeSrc":"4770:6:97","nodeType":"YulIdentifier","src":"4770:6:97"}]},{"nativeSrc":"4812:42:97","nodeType":"YulAssignment","src":"4812:42:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4839:9:97","nodeType":"YulIdentifier","src":"4839:9:97"},{"kind":"number","nativeSrc":"4850:2:97","nodeType":"YulLiteral","src":"4850:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4835:3:97","nodeType":"YulIdentifier","src":"4835:3:97"},"nativeSrc":"4835:18:97","nodeType":"YulFunctionCall","src":"4835:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"4822:12:97","nodeType":"YulIdentifier","src":"4822:12:97"},"nativeSrc":"4822:32:97","nodeType":"YulFunctionCall","src":"4822:32:97"},"variableNames":[{"name":"value1","nativeSrc":"4812:6:97","nodeType":"YulIdentifier","src":"4812:6:97"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nativeSrc":"4612:248:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4657:9:97","nodeType":"YulTypedName","src":"4657:9:97","type":""},{"name":"dataEnd","nativeSrc":"4668:7:97","nodeType":"YulTypedName","src":"4668:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4680:6:97","nodeType":"YulTypedName","src":"4680:6:97","type":""},{"name":"value1","nativeSrc":"4688:6:97","nodeType":"YulTypedName","src":"4688:6:97","type":""}],"src":"4612:248:97"},{"body":{"nativeSrc":"4984:98:97","nodeType":"YulBlock","src":"4984:98:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5001:9:97","nodeType":"YulIdentifier","src":"5001:9:97"},{"kind":"number","nativeSrc":"5012:2:97","nodeType":"YulLiteral","src":"5012:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"4994:6:97","nodeType":"YulIdentifier","src":"4994:6:97"},"nativeSrc":"4994:21:97","nodeType":"YulFunctionCall","src":"4994:21:97"},"nativeSrc":"4994:21:97","nodeType":"YulExpressionStatement","src":"4994:21:97"},{"nativeSrc":"5024:52:97","nodeType":"YulAssignment","src":"5024:52:97","value":{"arguments":[{"name":"value0","nativeSrc":"5049:6:97","nodeType":"YulIdentifier","src":"5049:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"5061:9:97","nodeType":"YulIdentifier","src":"5061:9:97"},{"kind":"number","nativeSrc":"5072:2:97","nodeType":"YulLiteral","src":"5072:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5057:3:97","nodeType":"YulIdentifier","src":"5057:3:97"},"nativeSrc":"5057:18:97","nodeType":"YulFunctionCall","src":"5057:18:97"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"5032:16:97","nodeType":"YulIdentifier","src":"5032:16:97"},"nativeSrc":"5032:44:97","nodeType":"YulFunctionCall","src":"5032:44:97"},"variableNames":[{"name":"tail","nativeSrc":"5024:4:97","nodeType":"YulIdentifier","src":"5024:4:97"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"4865:217:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4953:9:97","nodeType":"YulTypedName","src":"4953:9:97","type":""},{"name":"value0","nativeSrc":"4964:6:97","nodeType":"YulTypedName","src":"4964:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4975:4:97","nodeType":"YulTypedName","src":"4975:4:97","type":""}],"src":"4865:217:97"},{"body":{"nativeSrc":"5136:139:97","nodeType":"YulBlock","src":"5136:139:97","statements":[{"nativeSrc":"5146:29:97","nodeType":"YulAssignment","src":"5146:29:97","value":{"arguments":[{"name":"offset","nativeSrc":"5168:6:97","nodeType":"YulIdentifier","src":"5168:6:97"}],"functionName":{"name":"calldataload","nativeSrc":"5155:12:97","nodeType":"YulIdentifier","src":"5155:12:97"},"nativeSrc":"5155:20:97","nodeType":"YulFunctionCall","src":"5155:20:97"},"variableNames":[{"name":"value","nativeSrc":"5146:5:97","nodeType":"YulIdentifier","src":"5146:5:97"}]},{"body":{"nativeSrc":"5253:16:97","nodeType":"YulBlock","src":"5253:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5262:1:97","nodeType":"YulLiteral","src":"5262:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"5265:1:97","nodeType":"YulLiteral","src":"5265:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5255:6:97","nodeType":"YulIdentifier","src":"5255:6:97"},"nativeSrc":"5255:12:97","nodeType":"YulFunctionCall","src":"5255:12:97"},"nativeSrc":"5255:12:97","nodeType":"YulExpressionStatement","src":"5255:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5197:5:97","nodeType":"YulIdentifier","src":"5197:5:97"},{"arguments":[{"name":"value","nativeSrc":"5208:5:97","nodeType":"YulIdentifier","src":"5208:5:97"},{"kind":"number","nativeSrc":"5215:34:97","nodeType":"YulLiteral","src":"5215:34:97","type":"","value":"0xffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"5204:3:97","nodeType":"YulIdentifier","src":"5204:3:97"},"nativeSrc":"5204:46:97","nodeType":"YulFunctionCall","src":"5204:46:97"}],"functionName":{"name":"eq","nativeSrc":"5194:2:97","nodeType":"YulIdentifier","src":"5194:2:97"},"nativeSrc":"5194:57:97","nodeType":"YulFunctionCall","src":"5194:57:97"}],"functionName":{"name":"iszero","nativeSrc":"5187:6:97","nodeType":"YulIdentifier","src":"5187:6:97"},"nativeSrc":"5187:65:97","nodeType":"YulFunctionCall","src":"5187:65:97"},"nativeSrc":"5184:85:97","nodeType":"YulIf","src":"5184:85:97"}]},"name":"abi_decode_uint128","nativeSrc":"5087:188:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"5115:6:97","nodeType":"YulTypedName","src":"5115:6:97","type":""}],"returnVariables":[{"name":"value","nativeSrc":"5126:5:97","nodeType":"YulTypedName","src":"5126:5:97","type":""}],"src":"5087:188:97"},{"body":{"nativeSrc":"5328:123:97","nodeType":"YulBlock","src":"5328:123:97","statements":[{"nativeSrc":"5338:29:97","nodeType":"YulAssignment","src":"5338:29:97","value":{"arguments":[{"name":"offset","nativeSrc":"5360:6:97","nodeType":"YulIdentifier","src":"5360:6:97"}],"functionName":{"name":"calldataload","nativeSrc":"5347:12:97","nodeType":"YulIdentifier","src":"5347:12:97"},"nativeSrc":"5347:20:97","nodeType":"YulFunctionCall","src":"5347:20:97"},"variableNames":[{"name":"value","nativeSrc":"5338:5:97","nodeType":"YulIdentifier","src":"5338:5:97"}]},{"body":{"nativeSrc":"5429:16:97","nodeType":"YulBlock","src":"5429:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5438:1:97","nodeType":"YulLiteral","src":"5438:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"5441:1:97","nodeType":"YulLiteral","src":"5441:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5431:6:97","nodeType":"YulIdentifier","src":"5431:6:97"},"nativeSrc":"5431:12:97","nodeType":"YulFunctionCall","src":"5431:12:97"},"nativeSrc":"5431:12:97","nodeType":"YulExpressionStatement","src":"5431:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5389:5:97","nodeType":"YulIdentifier","src":"5389:5:97"},{"arguments":[{"name":"value","nativeSrc":"5400:5:97","nodeType":"YulIdentifier","src":"5400:5:97"},{"kind":"number","nativeSrc":"5407:18:97","nodeType":"YulLiteral","src":"5407:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"5396:3:97","nodeType":"YulIdentifier","src":"5396:3:97"},"nativeSrc":"5396:30:97","nodeType":"YulFunctionCall","src":"5396:30:97"}],"functionName":{"name":"eq","nativeSrc":"5386:2:97","nodeType":"YulIdentifier","src":"5386:2:97"},"nativeSrc":"5386:41:97","nodeType":"YulFunctionCall","src":"5386:41:97"}],"functionName":{"name":"iszero","nativeSrc":"5379:6:97","nodeType":"YulIdentifier","src":"5379:6:97"},"nativeSrc":"5379:49:97","nodeType":"YulFunctionCall","src":"5379:49:97"},"nativeSrc":"5376:69:97","nodeType":"YulIf","src":"5376:69:97"}]},"name":"abi_decode_uint64","nativeSrc":"5280:171:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"5307:6:97","nodeType":"YulTypedName","src":"5307:6:97","type":""}],"returnVariables":[{"name":"value","nativeSrc":"5318:5:97","nodeType":"YulTypedName","src":"5318:5:97","type":""}],"src":"5280:171:97"},{"body":{"nativeSrc":"5592:344:97","nodeType":"YulBlock","src":"5592:344:97","statements":[{"body":{"nativeSrc":"5639:16:97","nodeType":"YulBlock","src":"5639:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5648:1:97","nodeType":"YulLiteral","src":"5648:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"5651:1:97","nodeType":"YulLiteral","src":"5651:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5641:6:97","nodeType":"YulIdentifier","src":"5641:6:97"},"nativeSrc":"5641:12:97","nodeType":"YulFunctionCall","src":"5641:12:97"},"nativeSrc":"5641:12:97","nodeType":"YulExpressionStatement","src":"5641:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5613:7:97","nodeType":"YulIdentifier","src":"5613:7:97"},{"name":"headStart","nativeSrc":"5622:9:97","nodeType":"YulIdentifier","src":"5622:9:97"}],"functionName":{"name":"sub","nativeSrc":"5609:3:97","nodeType":"YulIdentifier","src":"5609:3:97"},"nativeSrc":"5609:23:97","nodeType":"YulFunctionCall","src":"5609:23:97"},{"kind":"number","nativeSrc":"5634:3:97","nodeType":"YulLiteral","src":"5634:3:97","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"5605:3:97","nodeType":"YulIdentifier","src":"5605:3:97"},"nativeSrc":"5605:33:97","nodeType":"YulFunctionCall","src":"5605:33:97"},"nativeSrc":"5602:53:97","nodeType":"YulIf","src":"5602:53:97"},{"nativeSrc":"5664:39:97","nodeType":"YulAssignment","src":"5664:39:97","value":{"arguments":[{"name":"headStart","nativeSrc":"5693:9:97","nodeType":"YulIdentifier","src":"5693:9:97"}],"functionName":{"name":"abi_decode_uint128","nativeSrc":"5674:18:97","nodeType":"YulIdentifier","src":"5674:18:97"},"nativeSrc":"5674:29:97","nodeType":"YulFunctionCall","src":"5674:29:97"},"variableNames":[{"name":"value0","nativeSrc":"5664:6:97","nodeType":"YulIdentifier","src":"5664:6:97"}]},{"nativeSrc":"5712:48:97","nodeType":"YulAssignment","src":"5712:48:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5745:9:97","nodeType":"YulIdentifier","src":"5745:9:97"},{"kind":"number","nativeSrc":"5756:2:97","nodeType":"YulLiteral","src":"5756:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5741:3:97","nodeType":"YulIdentifier","src":"5741:3:97"},"nativeSrc":"5741:18:97","nodeType":"YulFunctionCall","src":"5741:18:97"}],"functionName":{"name":"abi_decode_uint128","nativeSrc":"5722:18:97","nodeType":"YulIdentifier","src":"5722:18:97"},"nativeSrc":"5722:38:97","nodeType":"YulFunctionCall","src":"5722:38:97"},"variableNames":[{"name":"value1","nativeSrc":"5712:6:97","nodeType":"YulIdentifier","src":"5712:6:97"}]},{"nativeSrc":"5769:48:97","nodeType":"YulAssignment","src":"5769:48:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5802:9:97","nodeType":"YulIdentifier","src":"5802:9:97"},{"kind":"number","nativeSrc":"5813:2:97","nodeType":"YulLiteral","src":"5813:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5798:3:97","nodeType":"YulIdentifier","src":"5798:3:97"},"nativeSrc":"5798:18:97","nodeType":"YulFunctionCall","src":"5798:18:97"}],"functionName":{"name":"abi_decode_uint128","nativeSrc":"5779:18:97","nodeType":"YulIdentifier","src":"5779:18:97"},"nativeSrc":"5779:38:97","nodeType":"YulFunctionCall","src":"5779:38:97"},"variableNames":[{"name":"value2","nativeSrc":"5769:6:97","nodeType":"YulIdentifier","src":"5769:6:97"}]},{"nativeSrc":"5826:47:97","nodeType":"YulAssignment","src":"5826:47:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5858:9:97","nodeType":"YulIdentifier","src":"5858:9:97"},{"kind":"number","nativeSrc":"5869:2:97","nodeType":"YulLiteral","src":"5869:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5854:3:97","nodeType":"YulIdentifier","src":"5854:3:97"},"nativeSrc":"5854:18:97","nodeType":"YulFunctionCall","src":"5854:18:97"}],"functionName":{"name":"abi_decode_uint64","nativeSrc":"5836:17:97","nodeType":"YulIdentifier","src":"5836:17:97"},"nativeSrc":"5836:37:97","nodeType":"YulFunctionCall","src":"5836:37:97"},"variableNames":[{"name":"value3","nativeSrc":"5826:6:97","nodeType":"YulIdentifier","src":"5826:6:97"}]},{"nativeSrc":"5882:48:97","nodeType":"YulAssignment","src":"5882:48:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5914:9:97","nodeType":"YulIdentifier","src":"5914:9:97"},{"kind":"number","nativeSrc":"5925:3:97","nodeType":"YulLiteral","src":"5925:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"5910:3:97","nodeType":"YulIdentifier","src":"5910:3:97"},"nativeSrc":"5910:19:97","nodeType":"YulFunctionCall","src":"5910:19:97"}],"functionName":{"name":"abi_decode_uint64","nativeSrc":"5892:17:97","nodeType":"YulIdentifier","src":"5892:17:97"},"nativeSrc":"5892:38:97","nodeType":"YulFunctionCall","src":"5892:38:97"},"variableNames":[{"name":"value4","nativeSrc":"5882:6:97","nodeType":"YulIdentifier","src":"5882:6:97"}]}]},"name":"abi_decode_tuple_t_uint128t_uint128t_uint128t_uint64t_uint64","nativeSrc":"5456:480:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5526:9:97","nodeType":"YulTypedName","src":"5526:9:97","type":""},{"name":"dataEnd","nativeSrc":"5537:7:97","nodeType":"YulTypedName","src":"5537:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5549:6:97","nodeType":"YulTypedName","src":"5549:6:97","type":""},{"name":"value1","nativeSrc":"5557:6:97","nodeType":"YulTypedName","src":"5557:6:97","type":""},{"name":"value2","nativeSrc":"5565:6:97","nodeType":"YulTypedName","src":"5565:6:97","type":""},{"name":"value3","nativeSrc":"5573:6:97","nodeType":"YulTypedName","src":"5573:6:97","type":""},{"name":"value4","nativeSrc":"5581:6:97","nodeType":"YulTypedName","src":"5581:6:97","type":""}],"src":"5456:480:97"},{"body":{"nativeSrc":"6093:765:97","nodeType":"YulBlock","src":"6093:765:97","statements":[{"body":{"nativeSrc":"6140:16:97","nodeType":"YulBlock","src":"6140:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6149:1:97","nodeType":"YulLiteral","src":"6149:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"6152:1:97","nodeType":"YulLiteral","src":"6152:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6142:6:97","nodeType":"YulIdentifier","src":"6142:6:97"},"nativeSrc":"6142:12:97","nodeType":"YulFunctionCall","src":"6142:12:97"},"nativeSrc":"6142:12:97","nodeType":"YulExpressionStatement","src":"6142:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6114:7:97","nodeType":"YulIdentifier","src":"6114:7:97"},{"name":"headStart","nativeSrc":"6123:9:97","nodeType":"YulIdentifier","src":"6123:9:97"}],"functionName":{"name":"sub","nativeSrc":"6110:3:97","nodeType":"YulIdentifier","src":"6110:3:97"},"nativeSrc":"6110:23:97","nodeType":"YulFunctionCall","src":"6110:23:97"},{"kind":"number","nativeSrc":"6135:3:97","nodeType":"YulLiteral","src":"6135:3:97","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"6106:3:97","nodeType":"YulIdentifier","src":"6106:3:97"},"nativeSrc":"6106:33:97","nodeType":"YulFunctionCall","src":"6106:33:97"},"nativeSrc":"6103:53:97","nodeType":"YulIf","src":"6103:53:97"},{"nativeSrc":"6165:38:97","nodeType":"YulAssignment","src":"6165:38:97","value":{"arguments":[{"name":"headStart","nativeSrc":"6193:9:97","nodeType":"YulIdentifier","src":"6193:9:97"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"6175:17:97","nodeType":"YulIdentifier","src":"6175:17:97"},"nativeSrc":"6175:28:97","nodeType":"YulFunctionCall","src":"6175:28:97"},"variableNames":[{"name":"value0","nativeSrc":"6165:6:97","nodeType":"YulIdentifier","src":"6165:6:97"}]},{"nativeSrc":"6212:45:97","nodeType":"YulVariableDeclaration","src":"6212:45:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6242:9:97","nodeType":"YulIdentifier","src":"6242:9:97"},{"kind":"number","nativeSrc":"6253:2:97","nodeType":"YulLiteral","src":"6253:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6238:3:97","nodeType":"YulIdentifier","src":"6238:3:97"},"nativeSrc":"6238:18:97","nodeType":"YulFunctionCall","src":"6238:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"6225:12:97","nodeType":"YulIdentifier","src":"6225:12:97"},"nativeSrc":"6225:32:97","nodeType":"YulFunctionCall","src":"6225:32:97"},"variables":[{"name":"value","nativeSrc":"6216:5:97","nodeType":"YulTypedName","src":"6216:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6291:5:97","nodeType":"YulIdentifier","src":"6291:5:97"}],"functionName":{"name":"validator_revert_address","nativeSrc":"6266:24:97","nodeType":"YulIdentifier","src":"6266:24:97"},"nativeSrc":"6266:31:97","nodeType":"YulFunctionCall","src":"6266:31:97"},"nativeSrc":"6266:31:97","nodeType":"YulExpressionStatement","src":"6266:31:97"},{"nativeSrc":"6306:15:97","nodeType":"YulAssignment","src":"6306:15:97","value":{"name":"value","nativeSrc":"6316:5:97","nodeType":"YulIdentifier","src":"6316:5:97"},"variableNames":[{"name":"value1","nativeSrc":"6306:6:97","nodeType":"YulIdentifier","src":"6306:6:97"}]},{"nativeSrc":"6330:46:97","nodeType":"YulVariableDeclaration","src":"6330:46:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6361:9:97","nodeType":"YulIdentifier","src":"6361:9:97"},{"kind":"number","nativeSrc":"6372:2:97","nodeType":"YulLiteral","src":"6372:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6357:3:97","nodeType":"YulIdentifier","src":"6357:3:97"},"nativeSrc":"6357:18:97","nodeType":"YulFunctionCall","src":"6357:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"6344:12:97","nodeType":"YulIdentifier","src":"6344:12:97"},"nativeSrc":"6344:32:97","nodeType":"YulFunctionCall","src":"6344:32:97"},"variables":[{"name":"offset","nativeSrc":"6334:6:97","nodeType":"YulTypedName","src":"6334:6:97","type":""}]},{"nativeSrc":"6385:28:97","nodeType":"YulVariableDeclaration","src":"6385:28:97","value":{"kind":"number","nativeSrc":"6395:18:97","nodeType":"YulLiteral","src":"6395:18:97","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"6389:2:97","nodeType":"YulTypedName","src":"6389:2:97","type":""}]},{"body":{"nativeSrc":"6440:16:97","nodeType":"YulBlock","src":"6440:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6449:1:97","nodeType":"YulLiteral","src":"6449:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"6452:1:97","nodeType":"YulLiteral","src":"6452:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6442:6:97","nodeType":"YulIdentifier","src":"6442:6:97"},"nativeSrc":"6442:12:97","nodeType":"YulFunctionCall","src":"6442:12:97"},"nativeSrc":"6442:12:97","nodeType":"YulExpressionStatement","src":"6442:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"6428:6:97","nodeType":"YulIdentifier","src":"6428:6:97"},{"name":"_1","nativeSrc":"6436:2:97","nodeType":"YulIdentifier","src":"6436:2:97"}],"functionName":{"name":"gt","nativeSrc":"6425:2:97","nodeType":"YulIdentifier","src":"6425:2:97"},"nativeSrc":"6425:14:97","nodeType":"YulFunctionCall","src":"6425:14:97"},"nativeSrc":"6422:34:97","nodeType":"YulIf","src":"6422:34:97"},{"nativeSrc":"6465:59:97","nodeType":"YulAssignment","src":"6465:59:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6496:9:97","nodeType":"YulIdentifier","src":"6496:9:97"},{"name":"offset","nativeSrc":"6507:6:97","nodeType":"YulIdentifier","src":"6507:6:97"}],"functionName":{"name":"add","nativeSrc":"6492:3:97","nodeType":"YulIdentifier","src":"6492:3:97"},"nativeSrc":"6492:22:97","nodeType":"YulFunctionCall","src":"6492:22:97"},{"name":"dataEnd","nativeSrc":"6516:7:97","nodeType":"YulIdentifier","src":"6516:7:97"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"6475:16:97","nodeType":"YulIdentifier","src":"6475:16:97"},"nativeSrc":"6475:49:97","nodeType":"YulFunctionCall","src":"6475:49:97"},"variableNames":[{"name":"value2","nativeSrc":"6465:6:97","nodeType":"YulIdentifier","src":"6465:6:97"}]},{"nativeSrc":"6533:47:97","nodeType":"YulVariableDeclaration","src":"6533:47:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6565:9:97","nodeType":"YulIdentifier","src":"6565:9:97"},{"kind":"number","nativeSrc":"6576:2:97","nodeType":"YulLiteral","src":"6576:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"6561:3:97","nodeType":"YulIdentifier","src":"6561:3:97"},"nativeSrc":"6561:18:97","nodeType":"YulFunctionCall","src":"6561:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"6548:12:97","nodeType":"YulIdentifier","src":"6548:12:97"},"nativeSrc":"6548:32:97","nodeType":"YulFunctionCall","src":"6548:32:97"},"variables":[{"name":"value_1","nativeSrc":"6537:7:97","nodeType":"YulTypedName","src":"6537:7:97","type":""}]},{"body":{"nativeSrc":"6637:16:97","nodeType":"YulBlock","src":"6637:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6646:1:97","nodeType":"YulLiteral","src":"6646:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"6649:1:97","nodeType":"YulLiteral","src":"6649:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6639:6:97","nodeType":"YulIdentifier","src":"6639:6:97"},"nativeSrc":"6639:12:97","nodeType":"YulFunctionCall","src":"6639:12:97"},"nativeSrc":"6639:12:97","nodeType":"YulExpressionStatement","src":"6639:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value_1","nativeSrc":"6602:7:97","nodeType":"YulIdentifier","src":"6602:7:97"},{"arguments":[{"arguments":[{"name":"value_1","nativeSrc":"6625:7:97","nodeType":"YulIdentifier","src":"6625:7:97"}],"functionName":{"name":"iszero","nativeSrc":"6618:6:97","nodeType":"YulIdentifier","src":"6618:6:97"},"nativeSrc":"6618:15:97","nodeType":"YulFunctionCall","src":"6618:15:97"}],"functionName":{"name":"iszero","nativeSrc":"6611:6:97","nodeType":"YulIdentifier","src":"6611:6:97"},"nativeSrc":"6611:23:97","nodeType":"YulFunctionCall","src":"6611:23:97"}],"functionName":{"name":"eq","nativeSrc":"6599:2:97","nodeType":"YulIdentifier","src":"6599:2:97"},"nativeSrc":"6599:36:97","nodeType":"YulFunctionCall","src":"6599:36:97"}],"functionName":{"name":"iszero","nativeSrc":"6592:6:97","nodeType":"YulIdentifier","src":"6592:6:97"},"nativeSrc":"6592:44:97","nodeType":"YulFunctionCall","src":"6592:44:97"},"nativeSrc":"6589:64:97","nodeType":"YulIf","src":"6589:64:97"},{"nativeSrc":"6662:17:97","nodeType":"YulAssignment","src":"6662:17:97","value":{"name":"value_1","nativeSrc":"6672:7:97","nodeType":"YulIdentifier","src":"6672:7:97"},"variableNames":[{"name":"value3","nativeSrc":"6662:6:97","nodeType":"YulIdentifier","src":"6662:6:97"}]},{"nativeSrc":"6688:49:97","nodeType":"YulVariableDeclaration","src":"6688:49:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6721:9:97","nodeType":"YulIdentifier","src":"6721:9:97"},{"kind":"number","nativeSrc":"6732:3:97","nodeType":"YulLiteral","src":"6732:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"6717:3:97","nodeType":"YulIdentifier","src":"6717:3:97"},"nativeSrc":"6717:19:97","nodeType":"YulFunctionCall","src":"6717:19:97"}],"functionName":{"name":"calldataload","nativeSrc":"6704:12:97","nodeType":"YulIdentifier","src":"6704:12:97"},"nativeSrc":"6704:33:97","nodeType":"YulFunctionCall","src":"6704:33:97"},"variables":[{"name":"offset_1","nativeSrc":"6692:8:97","nodeType":"YulTypedName","src":"6692:8:97","type":""}]},{"body":{"nativeSrc":"6766:16:97","nodeType":"YulBlock","src":"6766:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6775:1:97","nodeType":"YulLiteral","src":"6775:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"6778:1:97","nodeType":"YulLiteral","src":"6778:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6768:6:97","nodeType":"YulIdentifier","src":"6768:6:97"},"nativeSrc":"6768:12:97","nodeType":"YulFunctionCall","src":"6768:12:97"},"nativeSrc":"6768:12:97","nodeType":"YulExpressionStatement","src":"6768:12:97"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"6752:8:97","nodeType":"YulIdentifier","src":"6752:8:97"},{"name":"_1","nativeSrc":"6762:2:97","nodeType":"YulIdentifier","src":"6762:2:97"}],"functionName":{"name":"gt","nativeSrc":"6749:2:97","nodeType":"YulIdentifier","src":"6749:2:97"},"nativeSrc":"6749:16:97","nodeType":"YulFunctionCall","src":"6749:16:97"},"nativeSrc":"6746:36:97","nodeType":"YulIf","src":"6746:36:97"},{"nativeSrc":"6791:61:97","nodeType":"YulAssignment","src":"6791:61:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6822:9:97","nodeType":"YulIdentifier","src":"6822:9:97"},{"name":"offset_1","nativeSrc":"6833:8:97","nodeType":"YulIdentifier","src":"6833:8:97"}],"functionName":{"name":"add","nativeSrc":"6818:3:97","nodeType":"YulIdentifier","src":"6818:3:97"},"nativeSrc":"6818:24:97","nodeType":"YulFunctionCall","src":"6818:24:97"},{"name":"dataEnd","nativeSrc":"6844:7:97","nodeType":"YulIdentifier","src":"6844:7:97"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"6801:16:97","nodeType":"YulIdentifier","src":"6801:16:97"},"nativeSrc":"6801:51:97","nodeType":"YulFunctionCall","src":"6801:51:97"},"variableNames":[{"name":"value4","nativeSrc":"6791:6:97","nodeType":"YulIdentifier","src":"6791:6:97"}]}]},"name":"abi_decode_tuple_t_uint16t_addresst_bytes_memory_ptrt_boolt_bytes_memory_ptr","nativeSrc":"5941:917:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6027:9:97","nodeType":"YulTypedName","src":"6027:9:97","type":""},{"name":"dataEnd","nativeSrc":"6038:7:97","nodeType":"YulTypedName","src":"6038:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6050:6:97","nodeType":"YulTypedName","src":"6050:6:97","type":""},{"name":"value1","nativeSrc":"6058:6:97","nodeType":"YulTypedName","src":"6058:6:97","type":""},{"name":"value2","nativeSrc":"6066:6:97","nodeType":"YulTypedName","src":"6066:6:97","type":""},{"name":"value3","nativeSrc":"6074:6:97","nodeType":"YulTypedName","src":"6074:6:97","type":""},{"name":"value4","nativeSrc":"6082:6:97","nodeType":"YulTypedName","src":"6082:6:97","type":""}],"src":"5941:917:97"},{"body":{"nativeSrc":"6964:125:97","nodeType":"YulBlock","src":"6964:125:97","statements":[{"nativeSrc":"6974:26:97","nodeType":"YulAssignment","src":"6974:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"6986:9:97","nodeType":"YulIdentifier","src":"6986:9:97"},{"kind":"number","nativeSrc":"6997:2:97","nodeType":"YulLiteral","src":"6997:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6982:3:97","nodeType":"YulIdentifier","src":"6982:3:97"},"nativeSrc":"6982:18:97","nodeType":"YulFunctionCall","src":"6982:18:97"},"variableNames":[{"name":"tail","nativeSrc":"6974:4:97","nodeType":"YulIdentifier","src":"6974:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7016:9:97","nodeType":"YulIdentifier","src":"7016:9:97"},{"arguments":[{"name":"value0","nativeSrc":"7031:6:97","nodeType":"YulIdentifier","src":"7031:6:97"},{"kind":"number","nativeSrc":"7039:42:97","nodeType":"YulLiteral","src":"7039:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"7027:3:97","nodeType":"YulIdentifier","src":"7027:3:97"},"nativeSrc":"7027:55:97","nodeType":"YulFunctionCall","src":"7027:55:97"}],"functionName":{"name":"mstore","nativeSrc":"7009:6:97","nodeType":"YulIdentifier","src":"7009:6:97"},"nativeSrc":"7009:74:97","nodeType":"YulFunctionCall","src":"7009:74:97"},"nativeSrc":"7009:74:97","nodeType":"YulExpressionStatement","src":"7009:74:97"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"6863:226:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6933:9:97","nodeType":"YulTypedName","src":"6933:9:97","type":""},{"name":"value0","nativeSrc":"6944:6:97","nodeType":"YulTypedName","src":"6944:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6955:4:97","nodeType":"YulTypedName","src":"6955:4:97","type":""}],"src":"6863:226:97"},{"body":{"nativeSrc":"7189:297:97","nodeType":"YulBlock","src":"7189:297:97","statements":[{"body":{"nativeSrc":"7235:16:97","nodeType":"YulBlock","src":"7235:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7244:1:97","nodeType":"YulLiteral","src":"7244:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"7247:1:97","nodeType":"YulLiteral","src":"7247:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7237:6:97","nodeType":"YulIdentifier","src":"7237:6:97"},"nativeSrc":"7237:12:97","nodeType":"YulFunctionCall","src":"7237:12:97"},"nativeSrc":"7237:12:97","nodeType":"YulExpressionStatement","src":"7237:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7210:7:97","nodeType":"YulIdentifier","src":"7210:7:97"},{"name":"headStart","nativeSrc":"7219:9:97","nodeType":"YulIdentifier","src":"7219:9:97"}],"functionName":{"name":"sub","nativeSrc":"7206:3:97","nodeType":"YulIdentifier","src":"7206:3:97"},"nativeSrc":"7206:23:97","nodeType":"YulFunctionCall","src":"7206:23:97"},{"kind":"number","nativeSrc":"7231:2:97","nodeType":"YulLiteral","src":"7231:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"7202:3:97","nodeType":"YulIdentifier","src":"7202:3:97"},"nativeSrc":"7202:32:97","nodeType":"YulFunctionCall","src":"7202:32:97"},"nativeSrc":"7199:52:97","nodeType":"YulIf","src":"7199:52:97"},{"nativeSrc":"7260:38:97","nodeType":"YulAssignment","src":"7260:38:97","value":{"arguments":[{"name":"headStart","nativeSrc":"7288:9:97","nodeType":"YulIdentifier","src":"7288:9:97"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"7270:17:97","nodeType":"YulIdentifier","src":"7270:17:97"},"nativeSrc":"7270:28:97","nodeType":"YulFunctionCall","src":"7270:28:97"},"variableNames":[{"name":"value0","nativeSrc":"7260:6:97","nodeType":"YulIdentifier","src":"7260:6:97"}]},{"nativeSrc":"7307:46:97","nodeType":"YulVariableDeclaration","src":"7307:46:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7338:9:97","nodeType":"YulIdentifier","src":"7338:9:97"},{"kind":"number","nativeSrc":"7349:2:97","nodeType":"YulLiteral","src":"7349:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7334:3:97","nodeType":"YulIdentifier","src":"7334:3:97"},"nativeSrc":"7334:18:97","nodeType":"YulFunctionCall","src":"7334:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"7321:12:97","nodeType":"YulIdentifier","src":"7321:12:97"},"nativeSrc":"7321:32:97","nodeType":"YulFunctionCall","src":"7321:32:97"},"variables":[{"name":"offset","nativeSrc":"7311:6:97","nodeType":"YulTypedName","src":"7311:6:97","type":""}]},{"body":{"nativeSrc":"7396:16:97","nodeType":"YulBlock","src":"7396:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7405:1:97","nodeType":"YulLiteral","src":"7405:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"7408:1:97","nodeType":"YulLiteral","src":"7408:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7398:6:97","nodeType":"YulIdentifier","src":"7398:6:97"},"nativeSrc":"7398:12:97","nodeType":"YulFunctionCall","src":"7398:12:97"},"nativeSrc":"7398:12:97","nodeType":"YulExpressionStatement","src":"7398:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"7368:6:97","nodeType":"YulIdentifier","src":"7368:6:97"},{"kind":"number","nativeSrc":"7376:18:97","nodeType":"YulLiteral","src":"7376:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7365:2:97","nodeType":"YulIdentifier","src":"7365:2:97"},"nativeSrc":"7365:30:97","nodeType":"YulFunctionCall","src":"7365:30:97"},"nativeSrc":"7362:50:97","nodeType":"YulIf","src":"7362:50:97"},{"nativeSrc":"7421:59:97","nodeType":"YulAssignment","src":"7421:59:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7452:9:97","nodeType":"YulIdentifier","src":"7452:9:97"},{"name":"offset","nativeSrc":"7463:6:97","nodeType":"YulIdentifier","src":"7463:6:97"}],"functionName":{"name":"add","nativeSrc":"7448:3:97","nodeType":"YulIdentifier","src":"7448:3:97"},"nativeSrc":"7448:22:97","nodeType":"YulFunctionCall","src":"7448:22:97"},{"name":"dataEnd","nativeSrc":"7472:7:97","nodeType":"YulIdentifier","src":"7472:7:97"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"7431:16:97","nodeType":"YulIdentifier","src":"7431:16:97"},"nativeSrc":"7431:49:97","nodeType":"YulFunctionCall","src":"7431:49:97"},"variableNames":[{"name":"value1","nativeSrc":"7421:6:97","nodeType":"YulIdentifier","src":"7421:6:97"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_memory_ptr","nativeSrc":"7094:392:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7147:9:97","nodeType":"YulTypedName","src":"7147:9:97","type":""},{"name":"dataEnd","nativeSrc":"7158:7:97","nodeType":"YulTypedName","src":"7158:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7170:6:97","nodeType":"YulTypedName","src":"7170:6:97","type":""},{"name":"value1","nativeSrc":"7178:6:97","nodeType":"YulTypedName","src":"7178:6:97","type":""}],"src":"7094:392:97"},{"body":{"nativeSrc":"7646:236:97","nodeType":"YulBlock","src":"7646:236:97","statements":[{"nativeSrc":"7656:26:97","nodeType":"YulAssignment","src":"7656:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"7668:9:97","nodeType":"YulIdentifier","src":"7668:9:97"},{"kind":"number","nativeSrc":"7679:2:97","nodeType":"YulLiteral","src":"7679:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"7664:3:97","nodeType":"YulIdentifier","src":"7664:3:97"},"nativeSrc":"7664:18:97","nodeType":"YulFunctionCall","src":"7664:18:97"},"variableNames":[{"name":"tail","nativeSrc":"7656:4:97","nodeType":"YulIdentifier","src":"7656:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7698:9:97","nodeType":"YulIdentifier","src":"7698:9:97"},{"arguments":[{"name":"value0","nativeSrc":"7713:6:97","nodeType":"YulIdentifier","src":"7713:6:97"},{"kind":"number","nativeSrc":"7721:18:97","nodeType":"YulLiteral","src":"7721:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"7709:3:97","nodeType":"YulIdentifier","src":"7709:3:97"},"nativeSrc":"7709:31:97","nodeType":"YulFunctionCall","src":"7709:31:97"}],"functionName":{"name":"mstore","nativeSrc":"7691:6:97","nodeType":"YulIdentifier","src":"7691:6:97"},"nativeSrc":"7691:50:97","nodeType":"YulFunctionCall","src":"7691:50:97"},"nativeSrc":"7691:50:97","nodeType":"YulExpressionStatement","src":"7691:50:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7761:9:97","nodeType":"YulIdentifier","src":"7761:9:97"},{"kind":"number","nativeSrc":"7772:2:97","nodeType":"YulLiteral","src":"7772:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7757:3:97","nodeType":"YulIdentifier","src":"7757:3:97"},"nativeSrc":"7757:18:97","nodeType":"YulFunctionCall","src":"7757:18:97"},{"arguments":[{"name":"value1","nativeSrc":"7781:6:97","nodeType":"YulIdentifier","src":"7781:6:97"},{"kind":"number","nativeSrc":"7789:42:97","nodeType":"YulLiteral","src":"7789:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"7777:3:97","nodeType":"YulIdentifier","src":"7777:3:97"},"nativeSrc":"7777:55:97","nodeType":"YulFunctionCall","src":"7777:55:97"}],"functionName":{"name":"mstore","nativeSrc":"7750:6:97","nodeType":"YulIdentifier","src":"7750:6:97"},"nativeSrc":"7750:83:97","nodeType":"YulFunctionCall","src":"7750:83:97"},"nativeSrc":"7750:83:97","nodeType":"YulExpressionStatement","src":"7750:83:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7853:9:97","nodeType":"YulIdentifier","src":"7853:9:97"},{"kind":"number","nativeSrc":"7864:2:97","nodeType":"YulLiteral","src":"7864:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7849:3:97","nodeType":"YulIdentifier","src":"7849:3:97"},"nativeSrc":"7849:18:97","nodeType":"YulFunctionCall","src":"7849:18:97"},{"name":"value2","nativeSrc":"7869:6:97","nodeType":"YulIdentifier","src":"7869:6:97"}],"functionName":{"name":"mstore","nativeSrc":"7842:6:97","nodeType":"YulIdentifier","src":"7842:6:97"},"nativeSrc":"7842:34:97","nodeType":"YulFunctionCall","src":"7842:34:97"},"nativeSrc":"7842:34:97","nodeType":"YulExpressionStatement","src":"7842:34:97"}]},"name":"abi_encode_tuple_t_uint64_t_address_t_bytes32__to_t_uint64_t_address_t_bytes32__fromStack_reversed","nativeSrc":"7491:391:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7599:9:97","nodeType":"YulTypedName","src":"7599:9:97","type":""},{"name":"value2","nativeSrc":"7610:6:97","nodeType":"YulTypedName","src":"7610:6:97","type":""},{"name":"value1","nativeSrc":"7618:6:97","nodeType":"YulTypedName","src":"7618:6:97","type":""},{"name":"value0","nativeSrc":"7626:6:97","nodeType":"YulTypedName","src":"7626:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7637:4:97","nodeType":"YulTypedName","src":"7637:4:97","type":""}],"src":"7491:391:97"},{"body":{"nativeSrc":"7973:233:97","nodeType":"YulBlock","src":"7973:233:97","statements":[{"body":{"nativeSrc":"8019:16:97","nodeType":"YulBlock","src":"8019:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8028:1:97","nodeType":"YulLiteral","src":"8028:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"8031:1:97","nodeType":"YulLiteral","src":"8031:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8021:6:97","nodeType":"YulIdentifier","src":"8021:6:97"},"nativeSrc":"8021:12:97","nodeType":"YulFunctionCall","src":"8021:12:97"},"nativeSrc":"8021:12:97","nodeType":"YulExpressionStatement","src":"8021:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7994:7:97","nodeType":"YulIdentifier","src":"7994:7:97"},{"name":"headStart","nativeSrc":"8003:9:97","nodeType":"YulIdentifier","src":"8003:9:97"}],"functionName":{"name":"sub","nativeSrc":"7990:3:97","nodeType":"YulIdentifier","src":"7990:3:97"},"nativeSrc":"7990:23:97","nodeType":"YulFunctionCall","src":"7990:23:97"},{"kind":"number","nativeSrc":"8015:2:97","nodeType":"YulLiteral","src":"8015:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"7986:3:97","nodeType":"YulIdentifier","src":"7986:3:97"},"nativeSrc":"7986:32:97","nodeType":"YulFunctionCall","src":"7986:32:97"},"nativeSrc":"7983:52:97","nodeType":"YulIf","src":"7983:52:97"},{"nativeSrc":"8044:38:97","nodeType":"YulAssignment","src":"8044:38:97","value":{"arguments":[{"name":"headStart","nativeSrc":"8072:9:97","nodeType":"YulIdentifier","src":"8072:9:97"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"8054:17:97","nodeType":"YulIdentifier","src":"8054:17:97"},"nativeSrc":"8054:28:97","nodeType":"YulFunctionCall","src":"8054:28:97"},"variableNames":[{"name":"value0","nativeSrc":"8044:6:97","nodeType":"YulIdentifier","src":"8044:6:97"}]},{"nativeSrc":"8091:45:97","nodeType":"YulVariableDeclaration","src":"8091:45:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8121:9:97","nodeType":"YulIdentifier","src":"8121:9:97"},{"kind":"number","nativeSrc":"8132:2:97","nodeType":"YulLiteral","src":"8132:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8117:3:97","nodeType":"YulIdentifier","src":"8117:3:97"},"nativeSrc":"8117:18:97","nodeType":"YulFunctionCall","src":"8117:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"8104:12:97","nodeType":"YulIdentifier","src":"8104:12:97"},"nativeSrc":"8104:32:97","nodeType":"YulFunctionCall","src":"8104:32:97"},"variables":[{"name":"value","nativeSrc":"8095:5:97","nodeType":"YulTypedName","src":"8095:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8170:5:97","nodeType":"YulIdentifier","src":"8170:5:97"}],"functionName":{"name":"validator_revert_address","nativeSrc":"8145:24:97","nodeType":"YulIdentifier","src":"8145:24:97"},"nativeSrc":"8145:31:97","nodeType":"YulFunctionCall","src":"8145:31:97"},"nativeSrc":"8145:31:97","nodeType":"YulExpressionStatement","src":"8145:31:97"},{"nativeSrc":"8185:15:97","nodeType":"YulAssignment","src":"8185:15:97","value":{"name":"value","nativeSrc":"8195:5:97","nodeType":"YulIdentifier","src":"8195:5:97"},"variableNames":[{"name":"value1","nativeSrc":"8185:6:97","nodeType":"YulIdentifier","src":"8185:6:97"}]}]},"name":"abi_decode_tuple_t_uint16t_address","nativeSrc":"7887:319:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7931:9:97","nodeType":"YulTypedName","src":"7931:9:97","type":""},{"name":"dataEnd","nativeSrc":"7942:7:97","nodeType":"YulTypedName","src":"7942:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7954:6:97","nodeType":"YulTypedName","src":"7954:6:97","type":""},{"name":"value1","nativeSrc":"7962:6:97","nodeType":"YulTypedName","src":"7962:6:97","type":""}],"src":"7887:319:97"},{"body":{"nativeSrc":"8310:101:97","nodeType":"YulBlock","src":"8310:101:97","statements":[{"nativeSrc":"8320:26:97","nodeType":"YulAssignment","src":"8320:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"8332:9:97","nodeType":"YulIdentifier","src":"8332:9:97"},{"kind":"number","nativeSrc":"8343:2:97","nodeType":"YulLiteral","src":"8343:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8328:3:97","nodeType":"YulIdentifier","src":"8328:3:97"},"nativeSrc":"8328:18:97","nodeType":"YulFunctionCall","src":"8328:18:97"},"variableNames":[{"name":"tail","nativeSrc":"8320:4:97","nodeType":"YulIdentifier","src":"8320:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8362:9:97","nodeType":"YulIdentifier","src":"8362:9:97"},{"arguments":[{"name":"value0","nativeSrc":"8377:6:97","nodeType":"YulIdentifier","src":"8377:6:97"},{"kind":"number","nativeSrc":"8385:18:97","nodeType":"YulLiteral","src":"8385:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"8373:3:97","nodeType":"YulIdentifier","src":"8373:3:97"},"nativeSrc":"8373:31:97","nodeType":"YulFunctionCall","src":"8373:31:97"}],"functionName":{"name":"mstore","nativeSrc":"8355:6:97","nodeType":"YulIdentifier","src":"8355:6:97"},"nativeSrc":"8355:50:97","nodeType":"YulFunctionCall","src":"8355:50:97"},"nativeSrc":"8355:50:97","nodeType":"YulExpressionStatement","src":"8355:50:97"}]},"name":"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed","nativeSrc":"8211:200:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8279:9:97","nodeType":"YulTypedName","src":"8279:9:97","type":""},{"name":"value0","nativeSrc":"8290:6:97","nodeType":"YulTypedName","src":"8290:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8301:4:97","nodeType":"YulTypedName","src":"8301:4:97","type":""}],"src":"8211:200:97"},{"body":{"nativeSrc":"8517:76:97","nodeType":"YulBlock","src":"8517:76:97","statements":[{"nativeSrc":"8527:26:97","nodeType":"YulAssignment","src":"8527:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"8539:9:97","nodeType":"YulIdentifier","src":"8539:9:97"},{"kind":"number","nativeSrc":"8550:2:97","nodeType":"YulLiteral","src":"8550:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8535:3:97","nodeType":"YulIdentifier","src":"8535:3:97"},"nativeSrc":"8535:18:97","nodeType":"YulFunctionCall","src":"8535:18:97"},"variableNames":[{"name":"tail","nativeSrc":"8527:4:97","nodeType":"YulIdentifier","src":"8527:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8569:9:97","nodeType":"YulIdentifier","src":"8569:9:97"},{"name":"value0","nativeSrc":"8580:6:97","nodeType":"YulIdentifier","src":"8580:6:97"}],"functionName":{"name":"mstore","nativeSrc":"8562:6:97","nodeType":"YulIdentifier","src":"8562:6:97"},"nativeSrc":"8562:25:97","nodeType":"YulFunctionCall","src":"8562:25:97"},"nativeSrc":"8562:25:97","nodeType":"YulExpressionStatement","src":"8562:25:97"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"8416:177:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8486:9:97","nodeType":"YulTypedName","src":"8486:9:97","type":""},{"name":"value0","nativeSrc":"8497:6:97","nodeType":"YulTypedName","src":"8497:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8508:4:97","nodeType":"YulTypedName","src":"8508:4:97","type":""}],"src":"8416:177:97"},{"body":{"nativeSrc":"8807:385:97","nodeType":"YulBlock","src":"8807:385:97","statements":[{"nativeSrc":"8817:27:97","nodeType":"YulAssignment","src":"8817:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"8829:9:97","nodeType":"YulIdentifier","src":"8829:9:97"},{"kind":"number","nativeSrc":"8840:3:97","nodeType":"YulLiteral","src":"8840:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"8825:3:97","nodeType":"YulIdentifier","src":"8825:3:97"},"nativeSrc":"8825:19:97","nodeType":"YulFunctionCall","src":"8825:19:97"},"variableNames":[{"name":"tail","nativeSrc":"8817:4:97","nodeType":"YulIdentifier","src":"8817:4:97"}]},{"nativeSrc":"8853:44:97","nodeType":"YulVariableDeclaration","src":"8853:44:97","value":{"kind":"number","nativeSrc":"8863:34:97","nodeType":"YulLiteral","src":"8863:34:97","type":"","value":"0xffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"8857:2:97","nodeType":"YulTypedName","src":"8857:2:97","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8913:9:97","nodeType":"YulIdentifier","src":"8913:9:97"},{"arguments":[{"name":"value0","nativeSrc":"8928:6:97","nodeType":"YulIdentifier","src":"8928:6:97"},{"name":"_1","nativeSrc":"8936:2:97","nodeType":"YulIdentifier","src":"8936:2:97"}],"functionName":{"name":"and","nativeSrc":"8924:3:97","nodeType":"YulIdentifier","src":"8924:3:97"},"nativeSrc":"8924:15:97","nodeType":"YulFunctionCall","src":"8924:15:97"}],"functionName":{"name":"mstore","nativeSrc":"8906:6:97","nodeType":"YulIdentifier","src":"8906:6:97"},"nativeSrc":"8906:34:97","nodeType":"YulFunctionCall","src":"8906:34:97"},"nativeSrc":"8906:34:97","nodeType":"YulExpressionStatement","src":"8906:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8960:9:97","nodeType":"YulIdentifier","src":"8960:9:97"},{"kind":"number","nativeSrc":"8971:2:97","nodeType":"YulLiteral","src":"8971:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8956:3:97","nodeType":"YulIdentifier","src":"8956:3:97"},"nativeSrc":"8956:18:97","nodeType":"YulFunctionCall","src":"8956:18:97"},{"arguments":[{"name":"value1","nativeSrc":"8980:6:97","nodeType":"YulIdentifier","src":"8980:6:97"},{"name":"_1","nativeSrc":"8988:2:97","nodeType":"YulIdentifier","src":"8988:2:97"}],"functionName":{"name":"and","nativeSrc":"8976:3:97","nodeType":"YulIdentifier","src":"8976:3:97"},"nativeSrc":"8976:15:97","nodeType":"YulFunctionCall","src":"8976:15:97"}],"functionName":{"name":"mstore","nativeSrc":"8949:6:97","nodeType":"YulIdentifier","src":"8949:6:97"},"nativeSrc":"8949:43:97","nodeType":"YulFunctionCall","src":"8949:43:97"},"nativeSrc":"8949:43:97","nodeType":"YulExpressionStatement","src":"8949:43:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9012:9:97","nodeType":"YulIdentifier","src":"9012:9:97"},{"kind":"number","nativeSrc":"9023:2:97","nodeType":"YulLiteral","src":"9023:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9008:3:97","nodeType":"YulIdentifier","src":"9008:3:97"},"nativeSrc":"9008:18:97","nodeType":"YulFunctionCall","src":"9008:18:97"},{"arguments":[{"name":"value2","nativeSrc":"9032:6:97","nodeType":"YulIdentifier","src":"9032:6:97"},{"name":"_1","nativeSrc":"9040:2:97","nodeType":"YulIdentifier","src":"9040:2:97"}],"functionName":{"name":"and","nativeSrc":"9028:3:97","nodeType":"YulIdentifier","src":"9028:3:97"},"nativeSrc":"9028:15:97","nodeType":"YulFunctionCall","src":"9028:15:97"}],"functionName":{"name":"mstore","nativeSrc":"9001:6:97","nodeType":"YulIdentifier","src":"9001:6:97"},"nativeSrc":"9001:43:97","nodeType":"YulFunctionCall","src":"9001:43:97"},"nativeSrc":"9001:43:97","nodeType":"YulExpressionStatement","src":"9001:43:97"},{"nativeSrc":"9053:28:97","nodeType":"YulVariableDeclaration","src":"9053:28:97","value":{"kind":"number","nativeSrc":"9063:18:97","nodeType":"YulLiteral","src":"9063:18:97","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_2","nativeSrc":"9057:2:97","nodeType":"YulTypedName","src":"9057:2:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9101:9:97","nodeType":"YulIdentifier","src":"9101:9:97"},{"kind":"number","nativeSrc":"9112:2:97","nodeType":"YulLiteral","src":"9112:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"9097:3:97","nodeType":"YulIdentifier","src":"9097:3:97"},"nativeSrc":"9097:18:97","nodeType":"YulFunctionCall","src":"9097:18:97"},{"arguments":[{"name":"value3","nativeSrc":"9121:6:97","nodeType":"YulIdentifier","src":"9121:6:97"},{"name":"_2","nativeSrc":"9129:2:97","nodeType":"YulIdentifier","src":"9129:2:97"}],"functionName":{"name":"and","nativeSrc":"9117:3:97","nodeType":"YulIdentifier","src":"9117:3:97"},"nativeSrc":"9117:15:97","nodeType":"YulFunctionCall","src":"9117:15:97"}],"functionName":{"name":"mstore","nativeSrc":"9090:6:97","nodeType":"YulIdentifier","src":"9090:6:97"},"nativeSrc":"9090:43:97","nodeType":"YulFunctionCall","src":"9090:43:97"},"nativeSrc":"9090:43:97","nodeType":"YulExpressionStatement","src":"9090:43:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9153:9:97","nodeType":"YulIdentifier","src":"9153:9:97"},{"kind":"number","nativeSrc":"9164:3:97","nodeType":"YulLiteral","src":"9164:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"9149:3:97","nodeType":"YulIdentifier","src":"9149:3:97"},"nativeSrc":"9149:19:97","nodeType":"YulFunctionCall","src":"9149:19:97"},{"arguments":[{"name":"value4","nativeSrc":"9174:6:97","nodeType":"YulIdentifier","src":"9174:6:97"},{"name":"_2","nativeSrc":"9182:2:97","nodeType":"YulIdentifier","src":"9182:2:97"}],"functionName":{"name":"and","nativeSrc":"9170:3:97","nodeType":"YulIdentifier","src":"9170:3:97"},"nativeSrc":"9170:15:97","nodeType":"YulFunctionCall","src":"9170:15:97"}],"functionName":{"name":"mstore","nativeSrc":"9142:6:97","nodeType":"YulIdentifier","src":"9142:6:97"},"nativeSrc":"9142:44:97","nodeType":"YulFunctionCall","src":"9142:44:97"},"nativeSrc":"9142:44:97","nodeType":"YulExpressionStatement","src":"9142:44:97"}]},"name":"abi_encode_tuple_t_uint128_t_uint128_t_uint128_t_uint64_t_uint64__to_t_uint128_t_uint128_t_uint128_t_uint64_t_uint64__fromStack_reversed","nativeSrc":"8598:594:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8744:9:97","nodeType":"YulTypedName","src":"8744:9:97","type":""},{"name":"value4","nativeSrc":"8755:6:97","nodeType":"YulTypedName","src":"8755:6:97","type":""},{"name":"value3","nativeSrc":"8763:6:97","nodeType":"YulTypedName","src":"8763:6:97","type":""},{"name":"value2","nativeSrc":"8771:6:97","nodeType":"YulTypedName","src":"8771:6:97","type":""},{"name":"value1","nativeSrc":"8779:6:97","nodeType":"YulTypedName","src":"8779:6:97","type":""},{"name":"value0","nativeSrc":"8787:6:97","nodeType":"YulTypedName","src":"8787:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8798:4:97","nodeType":"YulTypedName","src":"8798:4:97","type":""}],"src":"8598:594:97"},{"body":{"nativeSrc":"9338:648:97","nodeType":"YulBlock","src":"9338:648:97","statements":[{"body":{"nativeSrc":"9384:16:97","nodeType":"YulBlock","src":"9384:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9393:1:97","nodeType":"YulLiteral","src":"9393:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"9396:1:97","nodeType":"YulLiteral","src":"9396:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9386:6:97","nodeType":"YulIdentifier","src":"9386:6:97"},"nativeSrc":"9386:12:97","nodeType":"YulFunctionCall","src":"9386:12:97"},"nativeSrc":"9386:12:97","nodeType":"YulExpressionStatement","src":"9386:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9359:7:97","nodeType":"YulIdentifier","src":"9359:7:97"},{"name":"headStart","nativeSrc":"9368:9:97","nodeType":"YulIdentifier","src":"9368:9:97"}],"functionName":{"name":"sub","nativeSrc":"9355:3:97","nodeType":"YulIdentifier","src":"9355:3:97"},"nativeSrc":"9355:23:97","nodeType":"YulFunctionCall","src":"9355:23:97"},{"kind":"number","nativeSrc":"9380:2:97","nodeType":"YulLiteral","src":"9380:2:97","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"9351:3:97","nodeType":"YulIdentifier","src":"9351:3:97"},"nativeSrc":"9351:32:97","nodeType":"YulFunctionCall","src":"9351:32:97"},"nativeSrc":"9348:52:97","nodeType":"YulIf","src":"9348:52:97"},{"nativeSrc":"9409:38:97","nodeType":"YulAssignment","src":"9409:38:97","value":{"arguments":[{"name":"headStart","nativeSrc":"9437:9:97","nodeType":"YulIdentifier","src":"9437:9:97"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"9419:17:97","nodeType":"YulIdentifier","src":"9419:17:97"},"nativeSrc":"9419:28:97","nodeType":"YulFunctionCall","src":"9419:28:97"},"variableNames":[{"name":"value0","nativeSrc":"9409:6:97","nodeType":"YulIdentifier","src":"9409:6:97"}]},{"nativeSrc":"9456:46:97","nodeType":"YulVariableDeclaration","src":"9456:46:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9487:9:97","nodeType":"YulIdentifier","src":"9487:9:97"},{"kind":"number","nativeSrc":"9498:2:97","nodeType":"YulLiteral","src":"9498:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9483:3:97","nodeType":"YulIdentifier","src":"9483:3:97"},"nativeSrc":"9483:18:97","nodeType":"YulFunctionCall","src":"9483:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"9470:12:97","nodeType":"YulIdentifier","src":"9470:12:97"},"nativeSrc":"9470:32:97","nodeType":"YulFunctionCall","src":"9470:32:97"},"variables":[{"name":"offset","nativeSrc":"9460:6:97","nodeType":"YulTypedName","src":"9460:6:97","type":""}]},{"nativeSrc":"9511:28:97","nodeType":"YulVariableDeclaration","src":"9511:28:97","value":{"kind":"number","nativeSrc":"9521:18:97","nodeType":"YulLiteral","src":"9521:18:97","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"9515:2:97","nodeType":"YulTypedName","src":"9515:2:97","type":""}]},{"body":{"nativeSrc":"9566:16:97","nodeType":"YulBlock","src":"9566:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9575:1:97","nodeType":"YulLiteral","src":"9575:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"9578:1:97","nodeType":"YulLiteral","src":"9578:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9568:6:97","nodeType":"YulIdentifier","src":"9568:6:97"},"nativeSrc":"9568:12:97","nodeType":"YulFunctionCall","src":"9568:12:97"},"nativeSrc":"9568:12:97","nodeType":"YulExpressionStatement","src":"9568:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"9554:6:97","nodeType":"YulIdentifier","src":"9554:6:97"},{"name":"_1","nativeSrc":"9562:2:97","nodeType":"YulIdentifier","src":"9562:2:97"}],"functionName":{"name":"gt","nativeSrc":"9551:2:97","nodeType":"YulIdentifier","src":"9551:2:97"},"nativeSrc":"9551:14:97","nodeType":"YulFunctionCall","src":"9551:14:97"},"nativeSrc":"9548:34:97","nodeType":"YulIf","src":"9548:34:97"},{"nativeSrc":"9591:84:97","nodeType":"YulVariableDeclaration","src":"9591:84:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9647:9:97","nodeType":"YulIdentifier","src":"9647:9:97"},{"name":"offset","nativeSrc":"9658:6:97","nodeType":"YulIdentifier","src":"9658:6:97"}],"functionName":{"name":"add","nativeSrc":"9643:3:97","nodeType":"YulIdentifier","src":"9643:3:97"},"nativeSrc":"9643:22:97","nodeType":"YulFunctionCall","src":"9643:22:97"},{"name":"dataEnd","nativeSrc":"9667:7:97","nodeType":"YulIdentifier","src":"9667:7:97"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"9617:25:97","nodeType":"YulIdentifier","src":"9617:25:97"},"nativeSrc":"9617:58:97","nodeType":"YulFunctionCall","src":"9617:58:97"},"variables":[{"name":"value1_1","nativeSrc":"9595:8:97","nodeType":"YulTypedName","src":"9595:8:97","type":""},{"name":"value2_1","nativeSrc":"9605:8:97","nodeType":"YulTypedName","src":"9605:8:97","type":""}]},{"nativeSrc":"9684:18:97","nodeType":"YulAssignment","src":"9684:18:97","value":{"name":"value1_1","nativeSrc":"9694:8:97","nodeType":"YulIdentifier","src":"9694:8:97"},"variableNames":[{"name":"value1","nativeSrc":"9684:6:97","nodeType":"YulIdentifier","src":"9684:6:97"}]},{"nativeSrc":"9711:18:97","nodeType":"YulAssignment","src":"9711:18:97","value":{"name":"value2_1","nativeSrc":"9721:8:97","nodeType":"YulIdentifier","src":"9721:8:97"},"variableNames":[{"name":"value2","nativeSrc":"9711:6:97","nodeType":"YulIdentifier","src":"9711:6:97"}]},{"nativeSrc":"9738:48:97","nodeType":"YulVariableDeclaration","src":"9738:48:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9771:9:97","nodeType":"YulIdentifier","src":"9771:9:97"},{"kind":"number","nativeSrc":"9782:2:97","nodeType":"YulLiteral","src":"9782:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9767:3:97","nodeType":"YulIdentifier","src":"9767:3:97"},"nativeSrc":"9767:18:97","nodeType":"YulFunctionCall","src":"9767:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"9754:12:97","nodeType":"YulIdentifier","src":"9754:12:97"},"nativeSrc":"9754:32:97","nodeType":"YulFunctionCall","src":"9754:32:97"},"variables":[{"name":"offset_1","nativeSrc":"9742:8:97","nodeType":"YulTypedName","src":"9742:8:97","type":""}]},{"body":{"nativeSrc":"9815:16:97","nodeType":"YulBlock","src":"9815:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9824:1:97","nodeType":"YulLiteral","src":"9824:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"9827:1:97","nodeType":"YulLiteral","src":"9827:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9817:6:97","nodeType":"YulIdentifier","src":"9817:6:97"},"nativeSrc":"9817:12:97","nodeType":"YulFunctionCall","src":"9817:12:97"},"nativeSrc":"9817:12:97","nodeType":"YulExpressionStatement","src":"9817:12:97"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"9801:8:97","nodeType":"YulIdentifier","src":"9801:8:97"},{"name":"_1","nativeSrc":"9811:2:97","nodeType":"YulIdentifier","src":"9811:2:97"}],"functionName":{"name":"gt","nativeSrc":"9798:2:97","nodeType":"YulIdentifier","src":"9798:2:97"},"nativeSrc":"9798:16:97","nodeType":"YulFunctionCall","src":"9798:16:97"},"nativeSrc":"9795:36:97","nodeType":"YulIf","src":"9795:36:97"},{"nativeSrc":"9840:86:97","nodeType":"YulVariableDeclaration","src":"9840:86:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9896:9:97","nodeType":"YulIdentifier","src":"9896:9:97"},{"name":"offset_1","nativeSrc":"9907:8:97","nodeType":"YulIdentifier","src":"9907:8:97"}],"functionName":{"name":"add","nativeSrc":"9892:3:97","nodeType":"YulIdentifier","src":"9892:3:97"},"nativeSrc":"9892:24:97","nodeType":"YulFunctionCall","src":"9892:24:97"},{"name":"dataEnd","nativeSrc":"9918:7:97","nodeType":"YulIdentifier","src":"9918:7:97"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"9866:25:97","nodeType":"YulIdentifier","src":"9866:25:97"},"nativeSrc":"9866:60:97","nodeType":"YulFunctionCall","src":"9866:60:97"},"variables":[{"name":"value3_1","nativeSrc":"9844:8:97","nodeType":"YulTypedName","src":"9844:8:97","type":""},{"name":"value4_1","nativeSrc":"9854:8:97","nodeType":"YulTypedName","src":"9854:8:97","type":""}]},{"nativeSrc":"9935:18:97","nodeType":"YulAssignment","src":"9935:18:97","value":{"name":"value3_1","nativeSrc":"9945:8:97","nodeType":"YulIdentifier","src":"9945:8:97"},"variableNames":[{"name":"value3","nativeSrc":"9935:6:97","nodeType":"YulIdentifier","src":"9935:6:97"}]},{"nativeSrc":"9962:18:97","nodeType":"YulAssignment","src":"9962:18:97","value":{"name":"value4_1","nativeSrc":"9972:8:97","nodeType":"YulIdentifier","src":"9972:8:97"},"variableNames":[{"name":"value4","nativeSrc":"9962:6:97","nodeType":"YulIdentifier","src":"9962:6:97"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_bytes_calldata_ptr","nativeSrc":"9197:789:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9272:9:97","nodeType":"YulTypedName","src":"9272:9:97","type":""},{"name":"dataEnd","nativeSrc":"9283:7:97","nodeType":"YulTypedName","src":"9283:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9295:6:97","nodeType":"YulTypedName","src":"9295:6:97","type":""},{"name":"value1","nativeSrc":"9303:6:97","nodeType":"YulTypedName","src":"9303:6:97","type":""},{"name":"value2","nativeSrc":"9311:6:97","nodeType":"YulTypedName","src":"9311:6:97","type":""},{"name":"value3","nativeSrc":"9319:6:97","nodeType":"YulTypedName","src":"9319:6:97","type":""},{"name":"value4","nativeSrc":"9327:6:97","nodeType":"YulTypedName","src":"9327:6:97","type":""}],"src":"9197:789:97"},{"body":{"nativeSrc":"10061:110:97","nodeType":"YulBlock","src":"10061:110:97","statements":[{"body":{"nativeSrc":"10107:16:97","nodeType":"YulBlock","src":"10107:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10116:1:97","nodeType":"YulLiteral","src":"10116:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"10119:1:97","nodeType":"YulLiteral","src":"10119:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10109:6:97","nodeType":"YulIdentifier","src":"10109:6:97"},"nativeSrc":"10109:12:97","nodeType":"YulFunctionCall","src":"10109:12:97"},"nativeSrc":"10109:12:97","nodeType":"YulExpressionStatement","src":"10109:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10082:7:97","nodeType":"YulIdentifier","src":"10082:7:97"},{"name":"headStart","nativeSrc":"10091:9:97","nodeType":"YulIdentifier","src":"10091:9:97"}],"functionName":{"name":"sub","nativeSrc":"10078:3:97","nodeType":"YulIdentifier","src":"10078:3:97"},"nativeSrc":"10078:23:97","nodeType":"YulFunctionCall","src":"10078:23:97"},{"kind":"number","nativeSrc":"10103:2:97","nodeType":"YulLiteral","src":"10103:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"10074:3:97","nodeType":"YulIdentifier","src":"10074:3:97"},"nativeSrc":"10074:32:97","nodeType":"YulFunctionCall","src":"10074:32:97"},"nativeSrc":"10071:52:97","nodeType":"YulIf","src":"10071:52:97"},{"nativeSrc":"10132:33:97","nodeType":"YulAssignment","src":"10132:33:97","value":{"arguments":[{"name":"headStart","nativeSrc":"10155:9:97","nodeType":"YulIdentifier","src":"10155:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"10142:12:97","nodeType":"YulIdentifier","src":"10142:12:97"},"nativeSrc":"10142:23:97","nodeType":"YulFunctionCall","src":"10142:23:97"},"variableNames":[{"name":"value0","nativeSrc":"10132:6:97","nodeType":"YulIdentifier","src":"10132:6:97"}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"9991:180:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10027:9:97","nodeType":"YulTypedName","src":"10027:9:97","type":""},{"name":"dataEnd","nativeSrc":"10038:7:97","nodeType":"YulTypedName","src":"10038:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10050:6:97","nodeType":"YulTypedName","src":"10050:6:97","type":""}],"src":"9991:180:97"},{"body":{"nativeSrc":"10263:301:97","nodeType":"YulBlock","src":"10263:301:97","statements":[{"body":{"nativeSrc":"10309:16:97","nodeType":"YulBlock","src":"10309:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10318:1:97","nodeType":"YulLiteral","src":"10318:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"10321:1:97","nodeType":"YulLiteral","src":"10321:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10311:6:97","nodeType":"YulIdentifier","src":"10311:6:97"},"nativeSrc":"10311:12:97","nodeType":"YulFunctionCall","src":"10311:12:97"},"nativeSrc":"10311:12:97","nodeType":"YulExpressionStatement","src":"10311:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10284:7:97","nodeType":"YulIdentifier","src":"10284:7:97"},{"name":"headStart","nativeSrc":"10293:9:97","nodeType":"YulIdentifier","src":"10293:9:97"}],"functionName":{"name":"sub","nativeSrc":"10280:3:97","nodeType":"YulIdentifier","src":"10280:3:97"},"nativeSrc":"10280:23:97","nodeType":"YulFunctionCall","src":"10280:23:97"},{"kind":"number","nativeSrc":"10305:2:97","nodeType":"YulLiteral","src":"10305:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"10276:3:97","nodeType":"YulIdentifier","src":"10276:3:97"},"nativeSrc":"10276:32:97","nodeType":"YulFunctionCall","src":"10276:32:97"},"nativeSrc":"10273:52:97","nodeType":"YulIf","src":"10273:52:97"},{"nativeSrc":"10334:36:97","nodeType":"YulVariableDeclaration","src":"10334:36:97","value":{"arguments":[{"name":"headStart","nativeSrc":"10360:9:97","nodeType":"YulIdentifier","src":"10360:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"10347:12:97","nodeType":"YulIdentifier","src":"10347:12:97"},"nativeSrc":"10347:23:97","nodeType":"YulFunctionCall","src":"10347:23:97"},"variables":[{"name":"value","nativeSrc":"10338:5:97","nodeType":"YulTypedName","src":"10338:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"10404:5:97","nodeType":"YulIdentifier","src":"10404:5:97"}],"functionName":{"name":"validator_revert_address","nativeSrc":"10379:24:97","nodeType":"YulIdentifier","src":"10379:24:97"},"nativeSrc":"10379:31:97","nodeType":"YulFunctionCall","src":"10379:31:97"},"nativeSrc":"10379:31:97","nodeType":"YulExpressionStatement","src":"10379:31:97"},{"nativeSrc":"10419:15:97","nodeType":"YulAssignment","src":"10419:15:97","value":{"name":"value","nativeSrc":"10429:5:97","nodeType":"YulIdentifier","src":"10429:5:97"},"variableNames":[{"name":"value0","nativeSrc":"10419:6:97","nodeType":"YulIdentifier","src":"10419:6:97"}]},{"nativeSrc":"10443:47:97","nodeType":"YulVariableDeclaration","src":"10443:47:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10475:9:97","nodeType":"YulIdentifier","src":"10475:9:97"},{"kind":"number","nativeSrc":"10486:2:97","nodeType":"YulLiteral","src":"10486:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10471:3:97","nodeType":"YulIdentifier","src":"10471:3:97"},"nativeSrc":"10471:18:97","nodeType":"YulFunctionCall","src":"10471:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"10458:12:97","nodeType":"YulIdentifier","src":"10458:12:97"},"nativeSrc":"10458:32:97","nodeType":"YulFunctionCall","src":"10458:32:97"},"variables":[{"name":"value_1","nativeSrc":"10447:7:97","nodeType":"YulTypedName","src":"10447:7:97","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"10524:7:97","nodeType":"YulIdentifier","src":"10524:7:97"}],"functionName":{"name":"validator_revert_address","nativeSrc":"10499:24:97","nodeType":"YulIdentifier","src":"10499:24:97"},"nativeSrc":"10499:33:97","nodeType":"YulFunctionCall","src":"10499:33:97"},"nativeSrc":"10499:33:97","nodeType":"YulExpressionStatement","src":"10499:33:97"},{"nativeSrc":"10541:17:97","nodeType":"YulAssignment","src":"10541:17:97","value":{"name":"value_1","nativeSrc":"10551:7:97","nodeType":"YulIdentifier","src":"10551:7:97"},"variableNames":[{"name":"value1","nativeSrc":"10541:6:97","nodeType":"YulIdentifier","src":"10541:6:97"}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"10176:388:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10221:9:97","nodeType":"YulTypedName","src":"10221:9:97","type":""},{"name":"dataEnd","nativeSrc":"10232:7:97","nodeType":"YulTypedName","src":"10232:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10244:6:97","nodeType":"YulTypedName","src":"10244:6:97","type":""},{"name":"value1","nativeSrc":"10252:6:97","nodeType":"YulTypedName","src":"10252:6:97","type":""}],"src":"10176:388:97"},{"body":{"nativeSrc":"10760:876:97","nodeType":"YulBlock","src":"10760:876:97","statements":[{"body":{"nativeSrc":"10807:16:97","nodeType":"YulBlock","src":"10807:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10816:1:97","nodeType":"YulLiteral","src":"10816:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"10819:1:97","nodeType":"YulLiteral","src":"10819:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10809:6:97","nodeType":"YulIdentifier","src":"10809:6:97"},"nativeSrc":"10809:12:97","nodeType":"YulFunctionCall","src":"10809:12:97"},"nativeSrc":"10809:12:97","nodeType":"YulExpressionStatement","src":"10809:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10781:7:97","nodeType":"YulIdentifier","src":"10781:7:97"},{"name":"headStart","nativeSrc":"10790:9:97","nodeType":"YulIdentifier","src":"10790:9:97"}],"functionName":{"name":"sub","nativeSrc":"10777:3:97","nodeType":"YulIdentifier","src":"10777:3:97"},"nativeSrc":"10777:23:97","nodeType":"YulFunctionCall","src":"10777:23:97"},{"kind":"number","nativeSrc":"10802:3:97","nodeType":"YulLiteral","src":"10802:3:97","type":"","value":"192"}],"functionName":{"name":"slt","nativeSrc":"10773:3:97","nodeType":"YulIdentifier","src":"10773:3:97"},"nativeSrc":"10773:33:97","nodeType":"YulFunctionCall","src":"10773:33:97"},"nativeSrc":"10770:53:97","nodeType":"YulIf","src":"10770:53:97"},{"nativeSrc":"10832:38:97","nodeType":"YulAssignment","src":"10832:38:97","value":{"arguments":[{"name":"headStart","nativeSrc":"10860:9:97","nodeType":"YulIdentifier","src":"10860:9:97"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"10842:17:97","nodeType":"YulIdentifier","src":"10842:17:97"},"nativeSrc":"10842:28:97","nodeType":"YulFunctionCall","src":"10842:28:97"},"variableNames":[{"name":"value0","nativeSrc":"10832:6:97","nodeType":"YulIdentifier","src":"10832:6:97"}]},{"nativeSrc":"10879:46:97","nodeType":"YulVariableDeclaration","src":"10879:46:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10910:9:97","nodeType":"YulIdentifier","src":"10910:9:97"},{"kind":"number","nativeSrc":"10921:2:97","nodeType":"YulLiteral","src":"10921:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10906:3:97","nodeType":"YulIdentifier","src":"10906:3:97"},"nativeSrc":"10906:18:97","nodeType":"YulFunctionCall","src":"10906:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"10893:12:97","nodeType":"YulIdentifier","src":"10893:12:97"},"nativeSrc":"10893:32:97","nodeType":"YulFunctionCall","src":"10893:32:97"},"variables":[{"name":"offset","nativeSrc":"10883:6:97","nodeType":"YulTypedName","src":"10883:6:97","type":""}]},{"nativeSrc":"10934:28:97","nodeType":"YulVariableDeclaration","src":"10934:28:97","value":{"kind":"number","nativeSrc":"10944:18:97","nodeType":"YulLiteral","src":"10944:18:97","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"10938:2:97","nodeType":"YulTypedName","src":"10938:2:97","type":""}]},{"body":{"nativeSrc":"10989:16:97","nodeType":"YulBlock","src":"10989:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10998:1:97","nodeType":"YulLiteral","src":"10998:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"11001:1:97","nodeType":"YulLiteral","src":"11001:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10991:6:97","nodeType":"YulIdentifier","src":"10991:6:97"},"nativeSrc":"10991:12:97","nodeType":"YulFunctionCall","src":"10991:12:97"},"nativeSrc":"10991:12:97","nodeType":"YulExpressionStatement","src":"10991:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"10977:6:97","nodeType":"YulIdentifier","src":"10977:6:97"},{"name":"_1","nativeSrc":"10985:2:97","nodeType":"YulIdentifier","src":"10985:2:97"}],"functionName":{"name":"gt","nativeSrc":"10974:2:97","nodeType":"YulIdentifier","src":"10974:2:97"},"nativeSrc":"10974:14:97","nodeType":"YulFunctionCall","src":"10974:14:97"},"nativeSrc":"10971:34:97","nodeType":"YulIf","src":"10971:34:97"},{"nativeSrc":"11014:84:97","nodeType":"YulVariableDeclaration","src":"11014:84:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11070:9:97","nodeType":"YulIdentifier","src":"11070:9:97"},{"name":"offset","nativeSrc":"11081:6:97","nodeType":"YulIdentifier","src":"11081:6:97"}],"functionName":{"name":"add","nativeSrc":"11066:3:97","nodeType":"YulIdentifier","src":"11066:3:97"},"nativeSrc":"11066:22:97","nodeType":"YulFunctionCall","src":"11066:22:97"},{"name":"dataEnd","nativeSrc":"11090:7:97","nodeType":"YulIdentifier","src":"11090:7:97"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"11040:25:97","nodeType":"YulIdentifier","src":"11040:25:97"},"nativeSrc":"11040:58:97","nodeType":"YulFunctionCall","src":"11040:58:97"},"variables":[{"name":"value1_1","nativeSrc":"11018:8:97","nodeType":"YulTypedName","src":"11018:8:97","type":""},{"name":"value2_1","nativeSrc":"11028:8:97","nodeType":"YulTypedName","src":"11028:8:97","type":""}]},{"nativeSrc":"11107:18:97","nodeType":"YulAssignment","src":"11107:18:97","value":{"name":"value1_1","nativeSrc":"11117:8:97","nodeType":"YulIdentifier","src":"11117:8:97"},"variableNames":[{"name":"value1","nativeSrc":"11107:6:97","nodeType":"YulIdentifier","src":"11107:6:97"}]},{"nativeSrc":"11134:18:97","nodeType":"YulAssignment","src":"11134:18:97","value":{"name":"value2_1","nativeSrc":"11144:8:97","nodeType":"YulIdentifier","src":"11144:8:97"},"variableNames":[{"name":"value2","nativeSrc":"11134:6:97","nodeType":"YulIdentifier","src":"11134:6:97"}]},{"nativeSrc":"11161:45:97","nodeType":"YulVariableDeclaration","src":"11161:45:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11191:9:97","nodeType":"YulIdentifier","src":"11191:9:97"},{"kind":"number","nativeSrc":"11202:2:97","nodeType":"YulLiteral","src":"11202:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11187:3:97","nodeType":"YulIdentifier","src":"11187:3:97"},"nativeSrc":"11187:18:97","nodeType":"YulFunctionCall","src":"11187:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"11174:12:97","nodeType":"YulIdentifier","src":"11174:12:97"},"nativeSrc":"11174:32:97","nodeType":"YulFunctionCall","src":"11174:32:97"},"variables":[{"name":"value","nativeSrc":"11165:5:97","nodeType":"YulTypedName","src":"11165:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"11240:5:97","nodeType":"YulIdentifier","src":"11240:5:97"}],"functionName":{"name":"validator_revert_address","nativeSrc":"11215:24:97","nodeType":"YulIdentifier","src":"11215:24:97"},"nativeSrc":"11215:31:97","nodeType":"YulFunctionCall","src":"11215:31:97"},"nativeSrc":"11215:31:97","nodeType":"YulExpressionStatement","src":"11215:31:97"},{"nativeSrc":"11255:15:97","nodeType":"YulAssignment","src":"11255:15:97","value":{"name":"value","nativeSrc":"11265:5:97","nodeType":"YulIdentifier","src":"11265:5:97"},"variableNames":[{"name":"value3","nativeSrc":"11255:6:97","nodeType":"YulIdentifier","src":"11255:6:97"}]},{"nativeSrc":"11279:47:97","nodeType":"YulAssignment","src":"11279:47:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11311:9:97","nodeType":"YulIdentifier","src":"11311:9:97"},{"kind":"number","nativeSrc":"11322:2:97","nodeType":"YulLiteral","src":"11322:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11307:3:97","nodeType":"YulIdentifier","src":"11307:3:97"},"nativeSrc":"11307:18:97","nodeType":"YulFunctionCall","src":"11307:18:97"}],"functionName":{"name":"abi_decode_uint64","nativeSrc":"11289:17:97","nodeType":"YulIdentifier","src":"11289:17:97"},"nativeSrc":"11289:37:97","nodeType":"YulFunctionCall","src":"11289:37:97"},"variableNames":[{"name":"value4","nativeSrc":"11279:6:97","nodeType":"YulIdentifier","src":"11279:6:97"}]},{"nativeSrc":"11335:43:97","nodeType":"YulAssignment","src":"11335:43:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11362:9:97","nodeType":"YulIdentifier","src":"11362:9:97"},{"kind":"number","nativeSrc":"11373:3:97","nodeType":"YulLiteral","src":"11373:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"11358:3:97","nodeType":"YulIdentifier","src":"11358:3:97"},"nativeSrc":"11358:19:97","nodeType":"YulFunctionCall","src":"11358:19:97"}],"functionName":{"name":"calldataload","nativeSrc":"11345:12:97","nodeType":"YulIdentifier","src":"11345:12:97"},"nativeSrc":"11345:33:97","nodeType":"YulFunctionCall","src":"11345:33:97"},"variableNames":[{"name":"value5","nativeSrc":"11335:6:97","nodeType":"YulIdentifier","src":"11335:6:97"}]},{"nativeSrc":"11387:49:97","nodeType":"YulVariableDeclaration","src":"11387:49:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11420:9:97","nodeType":"YulIdentifier","src":"11420:9:97"},{"kind":"number","nativeSrc":"11431:3:97","nodeType":"YulLiteral","src":"11431:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"11416:3:97","nodeType":"YulIdentifier","src":"11416:3:97"},"nativeSrc":"11416:19:97","nodeType":"YulFunctionCall","src":"11416:19:97"}],"functionName":{"name":"calldataload","nativeSrc":"11403:12:97","nodeType":"YulIdentifier","src":"11403:12:97"},"nativeSrc":"11403:33:97","nodeType":"YulFunctionCall","src":"11403:33:97"},"variables":[{"name":"offset_1","nativeSrc":"11391:8:97","nodeType":"YulTypedName","src":"11391:8:97","type":""}]},{"body":{"nativeSrc":"11465:16:97","nodeType":"YulBlock","src":"11465:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11474:1:97","nodeType":"YulLiteral","src":"11474:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"11477:1:97","nodeType":"YulLiteral","src":"11477:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11467:6:97","nodeType":"YulIdentifier","src":"11467:6:97"},"nativeSrc":"11467:12:97","nodeType":"YulFunctionCall","src":"11467:12:97"},"nativeSrc":"11467:12:97","nodeType":"YulExpressionStatement","src":"11467:12:97"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"11451:8:97","nodeType":"YulIdentifier","src":"11451:8:97"},{"name":"_1","nativeSrc":"11461:2:97","nodeType":"YulIdentifier","src":"11461:2:97"}],"functionName":{"name":"gt","nativeSrc":"11448:2:97","nodeType":"YulIdentifier","src":"11448:2:97"},"nativeSrc":"11448:16:97","nodeType":"YulFunctionCall","src":"11448:16:97"},"nativeSrc":"11445:36:97","nodeType":"YulIf","src":"11445:36:97"},{"nativeSrc":"11490:86:97","nodeType":"YulVariableDeclaration","src":"11490:86:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11546:9:97","nodeType":"YulIdentifier","src":"11546:9:97"},{"name":"offset_1","nativeSrc":"11557:8:97","nodeType":"YulIdentifier","src":"11557:8:97"}],"functionName":{"name":"add","nativeSrc":"11542:3:97","nodeType":"YulIdentifier","src":"11542:3:97"},"nativeSrc":"11542:24:97","nodeType":"YulFunctionCall","src":"11542:24:97"},{"name":"dataEnd","nativeSrc":"11568:7:97","nodeType":"YulIdentifier","src":"11568:7:97"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"11516:25:97","nodeType":"YulIdentifier","src":"11516:25:97"},"nativeSrc":"11516:60:97","nodeType":"YulFunctionCall","src":"11516:60:97"},"variables":[{"name":"value6_1","nativeSrc":"11494:8:97","nodeType":"YulTypedName","src":"11494:8:97","type":""},{"name":"value7_1","nativeSrc":"11504:8:97","nodeType":"YulTypedName","src":"11504:8:97","type":""}]},{"nativeSrc":"11585:18:97","nodeType":"YulAssignment","src":"11585:18:97","value":{"name":"value6_1","nativeSrc":"11595:8:97","nodeType":"YulIdentifier","src":"11595:8:97"},"variableNames":[{"name":"value6","nativeSrc":"11585:6:97","nodeType":"YulIdentifier","src":"11585:6:97"}]},{"nativeSrc":"11612:18:97","nodeType":"YulAssignment","src":"11612:18:97","value":{"name":"value7_1","nativeSrc":"11622:8:97","nodeType":"YulIdentifier","src":"11622:8:97"},"variableNames":[{"name":"value7","nativeSrc":"11612:6:97","nodeType":"YulIdentifier","src":"11612:6:97"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_addresst_uint64t_uint256t_bytes_calldata_ptr","nativeSrc":"10569:1067:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10670:9:97","nodeType":"YulTypedName","src":"10670:9:97","type":""},{"name":"dataEnd","nativeSrc":"10681:7:97","nodeType":"YulTypedName","src":"10681:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10693:6:97","nodeType":"YulTypedName","src":"10693:6:97","type":""},{"name":"value1","nativeSrc":"10701:6:97","nodeType":"YulTypedName","src":"10701:6:97","type":""},{"name":"value2","nativeSrc":"10709:6:97","nodeType":"YulTypedName","src":"10709:6:97","type":""},{"name":"value3","nativeSrc":"10717:6:97","nodeType":"YulTypedName","src":"10717:6:97","type":""},{"name":"value4","nativeSrc":"10725:6:97","nodeType":"YulTypedName","src":"10725:6:97","type":""},{"name":"value5","nativeSrc":"10733:6:97","nodeType":"YulTypedName","src":"10733:6:97","type":""},{"name":"value6","nativeSrc":"10741:6:97","nodeType":"YulTypedName","src":"10741:6:97","type":""},{"name":"value7","nativeSrc":"10749:6:97","nodeType":"YulTypedName","src":"10749:6:97","type":""}],"src":"10569:1067:97"},{"body":{"nativeSrc":"11840:986:97","nodeType":"YulBlock","src":"11840:986:97","statements":[{"body":{"nativeSrc":"11887:16:97","nodeType":"YulBlock","src":"11887:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11896:1:97","nodeType":"YulLiteral","src":"11896:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"11899:1:97","nodeType":"YulLiteral","src":"11899:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11889:6:97","nodeType":"YulIdentifier","src":"11889:6:97"},"nativeSrc":"11889:12:97","nodeType":"YulFunctionCall","src":"11889:12:97"},"nativeSrc":"11889:12:97","nodeType":"YulExpressionStatement","src":"11889:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11861:7:97","nodeType":"YulIdentifier","src":"11861:7:97"},{"name":"headStart","nativeSrc":"11870:9:97","nodeType":"YulIdentifier","src":"11870:9:97"}],"functionName":{"name":"sub","nativeSrc":"11857:3:97","nodeType":"YulIdentifier","src":"11857:3:97"},"nativeSrc":"11857:23:97","nodeType":"YulFunctionCall","src":"11857:23:97"},{"kind":"number","nativeSrc":"11882:3:97","nodeType":"YulLiteral","src":"11882:3:97","type":"","value":"192"}],"functionName":{"name":"slt","nativeSrc":"11853:3:97","nodeType":"YulIdentifier","src":"11853:3:97"},"nativeSrc":"11853:33:97","nodeType":"YulFunctionCall","src":"11853:33:97"},"nativeSrc":"11850:53:97","nodeType":"YulIf","src":"11850:53:97"},{"nativeSrc":"11912:38:97","nodeType":"YulAssignment","src":"11912:38:97","value":{"arguments":[{"name":"headStart","nativeSrc":"11940:9:97","nodeType":"YulIdentifier","src":"11940:9:97"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"11922:17:97","nodeType":"YulIdentifier","src":"11922:17:97"},"nativeSrc":"11922:28:97","nodeType":"YulFunctionCall","src":"11922:28:97"},"variableNames":[{"name":"value0","nativeSrc":"11912:6:97","nodeType":"YulIdentifier","src":"11912:6:97"}]},{"nativeSrc":"11959:46:97","nodeType":"YulVariableDeclaration","src":"11959:46:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11990:9:97","nodeType":"YulIdentifier","src":"11990:9:97"},{"kind":"number","nativeSrc":"12001:2:97","nodeType":"YulLiteral","src":"12001:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11986:3:97","nodeType":"YulIdentifier","src":"11986:3:97"},"nativeSrc":"11986:18:97","nodeType":"YulFunctionCall","src":"11986:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"11973:12:97","nodeType":"YulIdentifier","src":"11973:12:97"},"nativeSrc":"11973:32:97","nodeType":"YulFunctionCall","src":"11973:32:97"},"variables":[{"name":"offset","nativeSrc":"11963:6:97","nodeType":"YulTypedName","src":"11963:6:97","type":""}]},{"nativeSrc":"12014:28:97","nodeType":"YulVariableDeclaration","src":"12014:28:97","value":{"kind":"number","nativeSrc":"12024:18:97","nodeType":"YulLiteral","src":"12024:18:97","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"12018:2:97","nodeType":"YulTypedName","src":"12018:2:97","type":""}]},{"body":{"nativeSrc":"12069:16:97","nodeType":"YulBlock","src":"12069:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12078:1:97","nodeType":"YulLiteral","src":"12078:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"12081:1:97","nodeType":"YulLiteral","src":"12081:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12071:6:97","nodeType":"YulIdentifier","src":"12071:6:97"},"nativeSrc":"12071:12:97","nodeType":"YulFunctionCall","src":"12071:12:97"},"nativeSrc":"12071:12:97","nodeType":"YulExpressionStatement","src":"12071:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"12057:6:97","nodeType":"YulIdentifier","src":"12057:6:97"},{"name":"_1","nativeSrc":"12065:2:97","nodeType":"YulIdentifier","src":"12065:2:97"}],"functionName":{"name":"gt","nativeSrc":"12054:2:97","nodeType":"YulIdentifier","src":"12054:2:97"},"nativeSrc":"12054:14:97","nodeType":"YulFunctionCall","src":"12054:14:97"},"nativeSrc":"12051:34:97","nodeType":"YulIf","src":"12051:34:97"},{"nativeSrc":"12094:59:97","nodeType":"YulAssignment","src":"12094:59:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12125:9:97","nodeType":"YulIdentifier","src":"12125:9:97"},{"name":"offset","nativeSrc":"12136:6:97","nodeType":"YulIdentifier","src":"12136:6:97"}],"functionName":{"name":"add","nativeSrc":"12121:3:97","nodeType":"YulIdentifier","src":"12121:3:97"},"nativeSrc":"12121:22:97","nodeType":"YulFunctionCall","src":"12121:22:97"},{"name":"dataEnd","nativeSrc":"12145:7:97","nodeType":"YulIdentifier","src":"12145:7:97"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"12104:16:97","nodeType":"YulIdentifier","src":"12104:16:97"},"nativeSrc":"12104:49:97","nodeType":"YulFunctionCall","src":"12104:49:97"},"variableNames":[{"name":"value1","nativeSrc":"12094:6:97","nodeType":"YulIdentifier","src":"12094:6:97"}]},{"nativeSrc":"12162:48:97","nodeType":"YulVariableDeclaration","src":"12162:48:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12195:9:97","nodeType":"YulIdentifier","src":"12195:9:97"},{"kind":"number","nativeSrc":"12206:2:97","nodeType":"YulLiteral","src":"12206:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12191:3:97","nodeType":"YulIdentifier","src":"12191:3:97"},"nativeSrc":"12191:18:97","nodeType":"YulFunctionCall","src":"12191:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"12178:12:97","nodeType":"YulIdentifier","src":"12178:12:97"},"nativeSrc":"12178:32:97","nodeType":"YulFunctionCall","src":"12178:32:97"},"variables":[{"name":"offset_1","nativeSrc":"12166:8:97","nodeType":"YulTypedName","src":"12166:8:97","type":""}]},{"body":{"nativeSrc":"12239:16:97","nodeType":"YulBlock","src":"12239:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12248:1:97","nodeType":"YulLiteral","src":"12248:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"12251:1:97","nodeType":"YulLiteral","src":"12251:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12241:6:97","nodeType":"YulIdentifier","src":"12241:6:97"},"nativeSrc":"12241:12:97","nodeType":"YulFunctionCall","src":"12241:12:97"},"nativeSrc":"12241:12:97","nodeType":"YulExpressionStatement","src":"12241:12:97"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"12225:8:97","nodeType":"YulIdentifier","src":"12225:8:97"},{"name":"_1","nativeSrc":"12235:2:97","nodeType":"YulIdentifier","src":"12235:2:97"}],"functionName":{"name":"gt","nativeSrc":"12222:2:97","nodeType":"YulIdentifier","src":"12222:2:97"},"nativeSrc":"12222:16:97","nodeType":"YulFunctionCall","src":"12222:16:97"},"nativeSrc":"12219:36:97","nodeType":"YulIf","src":"12219:36:97"},{"nativeSrc":"12264:86:97","nodeType":"YulVariableDeclaration","src":"12264:86:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12320:9:97","nodeType":"YulIdentifier","src":"12320:9:97"},{"name":"offset_1","nativeSrc":"12331:8:97","nodeType":"YulIdentifier","src":"12331:8:97"}],"functionName":{"name":"add","nativeSrc":"12316:3:97","nodeType":"YulIdentifier","src":"12316:3:97"},"nativeSrc":"12316:24:97","nodeType":"YulFunctionCall","src":"12316:24:97"},{"name":"dataEnd","nativeSrc":"12342:7:97","nodeType":"YulIdentifier","src":"12342:7:97"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"12290:25:97","nodeType":"YulIdentifier","src":"12290:25:97"},"nativeSrc":"12290:60:97","nodeType":"YulFunctionCall","src":"12290:60:97"},"variables":[{"name":"value2_1","nativeSrc":"12268:8:97","nodeType":"YulTypedName","src":"12268:8:97","type":""},{"name":"value3_1","nativeSrc":"12278:8:97","nodeType":"YulTypedName","src":"12278:8:97","type":""}]},{"nativeSrc":"12359:18:97","nodeType":"YulAssignment","src":"12359:18:97","value":{"name":"value2_1","nativeSrc":"12369:8:97","nodeType":"YulIdentifier","src":"12369:8:97"},"variableNames":[{"name":"value2","nativeSrc":"12359:6:97","nodeType":"YulIdentifier","src":"12359:6:97"}]},{"nativeSrc":"12386:18:97","nodeType":"YulAssignment","src":"12386:18:97","value":{"name":"value3_1","nativeSrc":"12396:8:97","nodeType":"YulIdentifier","src":"12396:8:97"},"variableNames":[{"name":"value3","nativeSrc":"12386:6:97","nodeType":"YulIdentifier","src":"12386:6:97"}]},{"nativeSrc":"12413:45:97","nodeType":"YulVariableDeclaration","src":"12413:45:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12443:9:97","nodeType":"YulIdentifier","src":"12443:9:97"},{"kind":"number","nativeSrc":"12454:2:97","nodeType":"YulLiteral","src":"12454:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12439:3:97","nodeType":"YulIdentifier","src":"12439:3:97"},"nativeSrc":"12439:18:97","nodeType":"YulFunctionCall","src":"12439:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"12426:12:97","nodeType":"YulIdentifier","src":"12426:12:97"},"nativeSrc":"12426:32:97","nodeType":"YulFunctionCall","src":"12426:32:97"},"variables":[{"name":"value","nativeSrc":"12417:5:97","nodeType":"YulTypedName","src":"12417:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"12492:5:97","nodeType":"YulIdentifier","src":"12492:5:97"}],"functionName":{"name":"validator_revert_address","nativeSrc":"12467:24:97","nodeType":"YulIdentifier","src":"12467:24:97"},"nativeSrc":"12467:31:97","nodeType":"YulFunctionCall","src":"12467:31:97"},"nativeSrc":"12467:31:97","nodeType":"YulExpressionStatement","src":"12467:31:97"},{"nativeSrc":"12507:15:97","nodeType":"YulAssignment","src":"12507:15:97","value":{"name":"value","nativeSrc":"12517:5:97","nodeType":"YulIdentifier","src":"12517:5:97"},"variableNames":[{"name":"value4","nativeSrc":"12507:6:97","nodeType":"YulIdentifier","src":"12507:6:97"}]},{"nativeSrc":"12531:48:97","nodeType":"YulVariableDeclaration","src":"12531:48:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12563:9:97","nodeType":"YulIdentifier","src":"12563:9:97"},{"kind":"number","nativeSrc":"12574:3:97","nodeType":"YulLiteral","src":"12574:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"12559:3:97","nodeType":"YulIdentifier","src":"12559:3:97"},"nativeSrc":"12559:19:97","nodeType":"YulFunctionCall","src":"12559:19:97"}],"functionName":{"name":"calldataload","nativeSrc":"12546:12:97","nodeType":"YulIdentifier","src":"12546:12:97"},"nativeSrc":"12546:33:97","nodeType":"YulFunctionCall","src":"12546:33:97"},"variables":[{"name":"value_1","nativeSrc":"12535:7:97","nodeType":"YulTypedName","src":"12535:7:97","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"12613:7:97","nodeType":"YulIdentifier","src":"12613:7:97"}],"functionName":{"name":"validator_revert_address","nativeSrc":"12588:24:97","nodeType":"YulIdentifier","src":"12588:24:97"},"nativeSrc":"12588:33:97","nodeType":"YulFunctionCall","src":"12588:33:97"},"nativeSrc":"12588:33:97","nodeType":"YulExpressionStatement","src":"12588:33:97"},{"nativeSrc":"12630:17:97","nodeType":"YulAssignment","src":"12630:17:97","value":{"name":"value_1","nativeSrc":"12640:7:97","nodeType":"YulIdentifier","src":"12640:7:97"},"variableNames":[{"name":"value5","nativeSrc":"12630:6:97","nodeType":"YulIdentifier","src":"12630:6:97"}]},{"nativeSrc":"12656:49:97","nodeType":"YulVariableDeclaration","src":"12656:49:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12689:9:97","nodeType":"YulIdentifier","src":"12689:9:97"},{"kind":"number","nativeSrc":"12700:3:97","nodeType":"YulLiteral","src":"12700:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"12685:3:97","nodeType":"YulIdentifier","src":"12685:3:97"},"nativeSrc":"12685:19:97","nodeType":"YulFunctionCall","src":"12685:19:97"}],"functionName":{"name":"calldataload","nativeSrc":"12672:12:97","nodeType":"YulIdentifier","src":"12672:12:97"},"nativeSrc":"12672:33:97","nodeType":"YulFunctionCall","src":"12672:33:97"},"variables":[{"name":"offset_2","nativeSrc":"12660:8:97","nodeType":"YulTypedName","src":"12660:8:97","type":""}]},{"body":{"nativeSrc":"12734:16:97","nodeType":"YulBlock","src":"12734:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12743:1:97","nodeType":"YulLiteral","src":"12743:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"12746:1:97","nodeType":"YulLiteral","src":"12746:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12736:6:97","nodeType":"YulIdentifier","src":"12736:6:97"},"nativeSrc":"12736:12:97","nodeType":"YulFunctionCall","src":"12736:12:97"},"nativeSrc":"12736:12:97","nodeType":"YulExpressionStatement","src":"12736:12:97"}]},"condition":{"arguments":[{"name":"offset_2","nativeSrc":"12720:8:97","nodeType":"YulIdentifier","src":"12720:8:97"},{"name":"_1","nativeSrc":"12730:2:97","nodeType":"YulIdentifier","src":"12730:2:97"}],"functionName":{"name":"gt","nativeSrc":"12717:2:97","nodeType":"YulIdentifier","src":"12717:2:97"},"nativeSrc":"12717:16:97","nodeType":"YulFunctionCall","src":"12717:16:97"},"nativeSrc":"12714:36:97","nodeType":"YulIf","src":"12714:36:97"},{"nativeSrc":"12759:61:97","nodeType":"YulAssignment","src":"12759:61:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12790:9:97","nodeType":"YulIdentifier","src":"12790:9:97"},{"name":"offset_2","nativeSrc":"12801:8:97","nodeType":"YulIdentifier","src":"12801:8:97"}],"functionName":{"name":"add","nativeSrc":"12786:3:97","nodeType":"YulIdentifier","src":"12786:3:97"},"nativeSrc":"12786:24:97","nodeType":"YulFunctionCall","src":"12786:24:97"},{"name":"dataEnd","nativeSrc":"12812:7:97","nodeType":"YulIdentifier","src":"12812:7:97"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"12769:16:97","nodeType":"YulIdentifier","src":"12769:16:97"},"nativeSrc":"12769:51:97","nodeType":"YulFunctionCall","src":"12769:51:97"},"variableNames":[{"name":"value6","nativeSrc":"12759:6:97","nodeType":"YulIdentifier","src":"12759:6:97"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_bytes_calldata_ptrt_address_payablet_addresst_bytes_memory_ptr","nativeSrc":"11641:1185:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11758:9:97","nodeType":"YulTypedName","src":"11758:9:97","type":""},{"name":"dataEnd","nativeSrc":"11769:7:97","nodeType":"YulTypedName","src":"11769:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11781:6:97","nodeType":"YulTypedName","src":"11781:6:97","type":""},{"name":"value1","nativeSrc":"11789:6:97","nodeType":"YulTypedName","src":"11789:6:97","type":""},{"name":"value2","nativeSrc":"11797:6:97","nodeType":"YulTypedName","src":"11797:6:97","type":""},{"name":"value3","nativeSrc":"11805:6:97","nodeType":"YulTypedName","src":"11805:6:97","type":""},{"name":"value4","nativeSrc":"11813:6:97","nodeType":"YulTypedName","src":"11813:6:97","type":""},{"name":"value5","nativeSrc":"11821:6:97","nodeType":"YulTypedName","src":"11821:6:97","type":""},{"name":"value6","nativeSrc":"11829:6:97","nodeType":"YulTypedName","src":"11829:6:97","type":""}],"src":"11641:1185:97"},{"body":{"nativeSrc":"12959:405:97","nodeType":"YulBlock","src":"12959:405:97","statements":[{"body":{"nativeSrc":"13006:16:97","nodeType":"YulBlock","src":"13006:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13015:1:97","nodeType":"YulLiteral","src":"13015:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"13018:1:97","nodeType":"YulLiteral","src":"13018:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13008:6:97","nodeType":"YulIdentifier","src":"13008:6:97"},"nativeSrc":"13008:12:97","nodeType":"YulFunctionCall","src":"13008:12:97"},"nativeSrc":"13008:12:97","nodeType":"YulExpressionStatement","src":"13008:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12980:7:97","nodeType":"YulIdentifier","src":"12980:7:97"},{"name":"headStart","nativeSrc":"12989:9:97","nodeType":"YulIdentifier","src":"12989:9:97"}],"functionName":{"name":"sub","nativeSrc":"12976:3:97","nodeType":"YulIdentifier","src":"12976:3:97"},"nativeSrc":"12976:23:97","nodeType":"YulFunctionCall","src":"12976:23:97"},{"kind":"number","nativeSrc":"13001:3:97","nodeType":"YulLiteral","src":"13001:3:97","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"12972:3:97","nodeType":"YulIdentifier","src":"12972:3:97"},"nativeSrc":"12972:33:97","nodeType":"YulFunctionCall","src":"12972:33:97"},"nativeSrc":"12969:53:97","nodeType":"YulIf","src":"12969:53:97"},{"nativeSrc":"13031:38:97","nodeType":"YulAssignment","src":"13031:38:97","value":{"arguments":[{"name":"headStart","nativeSrc":"13059:9:97","nodeType":"YulIdentifier","src":"13059:9:97"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"13041:17:97","nodeType":"YulIdentifier","src":"13041:17:97"},"nativeSrc":"13041:28:97","nodeType":"YulFunctionCall","src":"13041:28:97"},"variableNames":[{"name":"value0","nativeSrc":"13031:6:97","nodeType":"YulIdentifier","src":"13031:6:97"}]},{"nativeSrc":"13078:47:97","nodeType":"YulAssignment","src":"13078:47:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13110:9:97","nodeType":"YulIdentifier","src":"13110:9:97"},{"kind":"number","nativeSrc":"13121:2:97","nodeType":"YulLiteral","src":"13121:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13106:3:97","nodeType":"YulIdentifier","src":"13106:3:97"},"nativeSrc":"13106:18:97","nodeType":"YulFunctionCall","src":"13106:18:97"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"13088:17:97","nodeType":"YulIdentifier","src":"13088:17:97"},"nativeSrc":"13088:37:97","nodeType":"YulFunctionCall","src":"13088:37:97"},"variableNames":[{"name":"value1","nativeSrc":"13078:6:97","nodeType":"YulIdentifier","src":"13078:6:97"}]},{"nativeSrc":"13134:42:97","nodeType":"YulAssignment","src":"13134:42:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13161:9:97","nodeType":"YulIdentifier","src":"13161:9:97"},{"kind":"number","nativeSrc":"13172:2:97","nodeType":"YulLiteral","src":"13172:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13157:3:97","nodeType":"YulIdentifier","src":"13157:3:97"},"nativeSrc":"13157:18:97","nodeType":"YulFunctionCall","src":"13157:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"13144:12:97","nodeType":"YulIdentifier","src":"13144:12:97"},"nativeSrc":"13144:32:97","nodeType":"YulFunctionCall","src":"13144:32:97"},"variableNames":[{"name":"value2","nativeSrc":"13134:6:97","nodeType":"YulIdentifier","src":"13134:6:97"}]},{"nativeSrc":"13185:46:97","nodeType":"YulVariableDeclaration","src":"13185:46:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13216:9:97","nodeType":"YulIdentifier","src":"13216:9:97"},{"kind":"number","nativeSrc":"13227:2:97","nodeType":"YulLiteral","src":"13227:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"13212:3:97","nodeType":"YulIdentifier","src":"13212:3:97"},"nativeSrc":"13212:18:97","nodeType":"YulFunctionCall","src":"13212:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"13199:12:97","nodeType":"YulIdentifier","src":"13199:12:97"},"nativeSrc":"13199:32:97","nodeType":"YulFunctionCall","src":"13199:32:97"},"variables":[{"name":"offset","nativeSrc":"13189:6:97","nodeType":"YulTypedName","src":"13189:6:97","type":""}]},{"body":{"nativeSrc":"13274:16:97","nodeType":"YulBlock","src":"13274:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13283:1:97","nodeType":"YulLiteral","src":"13283:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"13286:1:97","nodeType":"YulLiteral","src":"13286:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13276:6:97","nodeType":"YulIdentifier","src":"13276:6:97"},"nativeSrc":"13276:12:97","nodeType":"YulFunctionCall","src":"13276:12:97"},"nativeSrc":"13276:12:97","nodeType":"YulExpressionStatement","src":"13276:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"13246:6:97","nodeType":"YulIdentifier","src":"13246:6:97"},{"kind":"number","nativeSrc":"13254:18:97","nodeType":"YulLiteral","src":"13254:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"13243:2:97","nodeType":"YulIdentifier","src":"13243:2:97"},"nativeSrc":"13243:30:97","nodeType":"YulFunctionCall","src":"13243:30:97"},"nativeSrc":"13240:50:97","nodeType":"YulIf","src":"13240:50:97"},{"nativeSrc":"13299:59:97","nodeType":"YulAssignment","src":"13299:59:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13330:9:97","nodeType":"YulIdentifier","src":"13330:9:97"},{"name":"offset","nativeSrc":"13341:6:97","nodeType":"YulIdentifier","src":"13341:6:97"}],"functionName":{"name":"add","nativeSrc":"13326:3:97","nodeType":"YulIdentifier","src":"13326:3:97"},"nativeSrc":"13326:22:97","nodeType":"YulFunctionCall","src":"13326:22:97"},{"name":"dataEnd","nativeSrc":"13350:7:97","nodeType":"YulIdentifier","src":"13350:7:97"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"13309:16:97","nodeType":"YulIdentifier","src":"13309:16:97"},"nativeSrc":"13309:49:97","nodeType":"YulFunctionCall","src":"13309:49:97"},"variableNames":[{"name":"value3","nativeSrc":"13299:6:97","nodeType":"YulIdentifier","src":"13299:6:97"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_memory_ptr","nativeSrc":"12831:533:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12901:9:97","nodeType":"YulTypedName","src":"12901:9:97","type":""},{"name":"dataEnd","nativeSrc":"12912:7:97","nodeType":"YulTypedName","src":"12912:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12924:6:97","nodeType":"YulTypedName","src":"12924:6:97","type":""},{"name":"value1","nativeSrc":"12932:6:97","nodeType":"YulTypedName","src":"12932:6:97","type":""},{"name":"value2","nativeSrc":"12940:6:97","nodeType":"YulTypedName","src":"12940:6:97","type":""},{"name":"value3","nativeSrc":"12948:6:97","nodeType":"YulTypedName","src":"12948:6:97","type":""}],"src":"12831:533:97"},{"body":{"nativeSrc":"13488:341:97","nodeType":"YulBlock","src":"13488:341:97","statements":[{"body":{"nativeSrc":"13535:16:97","nodeType":"YulBlock","src":"13535:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13544:1:97","nodeType":"YulLiteral","src":"13544:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"13547:1:97","nodeType":"YulLiteral","src":"13547:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13537:6:97","nodeType":"YulIdentifier","src":"13537:6:97"},"nativeSrc":"13537:12:97","nodeType":"YulFunctionCall","src":"13537:12:97"},"nativeSrc":"13537:12:97","nodeType":"YulExpressionStatement","src":"13537:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"13509:7:97","nodeType":"YulIdentifier","src":"13509:7:97"},{"name":"headStart","nativeSrc":"13518:9:97","nodeType":"YulIdentifier","src":"13518:9:97"}],"functionName":{"name":"sub","nativeSrc":"13505:3:97","nodeType":"YulIdentifier","src":"13505:3:97"},"nativeSrc":"13505:23:97","nodeType":"YulFunctionCall","src":"13505:23:97"},{"kind":"number","nativeSrc":"13530:3:97","nodeType":"YulLiteral","src":"13530:3:97","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"13501:3:97","nodeType":"YulIdentifier","src":"13501:3:97"},"nativeSrc":"13501:33:97","nodeType":"YulFunctionCall","src":"13501:33:97"},"nativeSrc":"13498:53:97","nodeType":"YulIf","src":"13498:53:97"},{"nativeSrc":"13560:38:97","nodeType":"YulAssignment","src":"13560:38:97","value":{"arguments":[{"name":"headStart","nativeSrc":"13588:9:97","nodeType":"YulIdentifier","src":"13588:9:97"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"13570:17:97","nodeType":"YulIdentifier","src":"13570:17:97"},"nativeSrc":"13570:28:97","nodeType":"YulFunctionCall","src":"13570:28:97"},"variableNames":[{"name":"value0","nativeSrc":"13560:6:97","nodeType":"YulIdentifier","src":"13560:6:97"}]},{"nativeSrc":"13607:47:97","nodeType":"YulAssignment","src":"13607:47:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13639:9:97","nodeType":"YulIdentifier","src":"13639:9:97"},{"kind":"number","nativeSrc":"13650:2:97","nodeType":"YulLiteral","src":"13650:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13635:3:97","nodeType":"YulIdentifier","src":"13635:3:97"},"nativeSrc":"13635:18:97","nodeType":"YulFunctionCall","src":"13635:18:97"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"13617:17:97","nodeType":"YulIdentifier","src":"13617:17:97"},"nativeSrc":"13617:37:97","nodeType":"YulFunctionCall","src":"13617:37:97"},"variableNames":[{"name":"value1","nativeSrc":"13607:6:97","nodeType":"YulIdentifier","src":"13607:6:97"}]},{"nativeSrc":"13663:45:97","nodeType":"YulVariableDeclaration","src":"13663:45:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13693:9:97","nodeType":"YulIdentifier","src":"13693:9:97"},{"kind":"number","nativeSrc":"13704:2:97","nodeType":"YulLiteral","src":"13704:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13689:3:97","nodeType":"YulIdentifier","src":"13689:3:97"},"nativeSrc":"13689:18:97","nodeType":"YulFunctionCall","src":"13689:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"13676:12:97","nodeType":"YulIdentifier","src":"13676:12:97"},"nativeSrc":"13676:32:97","nodeType":"YulFunctionCall","src":"13676:32:97"},"variables":[{"name":"value","nativeSrc":"13667:5:97","nodeType":"YulTypedName","src":"13667:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"13742:5:97","nodeType":"YulIdentifier","src":"13742:5:97"}],"functionName":{"name":"validator_revert_address","nativeSrc":"13717:24:97","nodeType":"YulIdentifier","src":"13717:24:97"},"nativeSrc":"13717:31:97","nodeType":"YulFunctionCall","src":"13717:31:97"},"nativeSrc":"13717:31:97","nodeType":"YulExpressionStatement","src":"13717:31:97"},{"nativeSrc":"13757:15:97","nodeType":"YulAssignment","src":"13757:15:97","value":{"name":"value","nativeSrc":"13767:5:97","nodeType":"YulIdentifier","src":"13767:5:97"},"variableNames":[{"name":"value2","nativeSrc":"13757:6:97","nodeType":"YulIdentifier","src":"13757:6:97"}]},{"nativeSrc":"13781:42:97","nodeType":"YulAssignment","src":"13781:42:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13808:9:97","nodeType":"YulIdentifier","src":"13808:9:97"},{"kind":"number","nativeSrc":"13819:2:97","nodeType":"YulLiteral","src":"13819:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"13804:3:97","nodeType":"YulIdentifier","src":"13804:3:97"},"nativeSrc":"13804:18:97","nodeType":"YulFunctionCall","src":"13804:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"13791:12:97","nodeType":"YulIdentifier","src":"13791:12:97"},"nativeSrc":"13791:32:97","nodeType":"YulFunctionCall","src":"13791:32:97"},"variableNames":[{"name":"value3","nativeSrc":"13781:6:97","nodeType":"YulIdentifier","src":"13781:6:97"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_addresst_uint256","nativeSrc":"13369:460:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13430:9:97","nodeType":"YulTypedName","src":"13430:9:97","type":""},{"name":"dataEnd","nativeSrc":"13441:7:97","nodeType":"YulTypedName","src":"13441:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"13453:6:97","nodeType":"YulTypedName","src":"13453:6:97","type":""},{"name":"value1","nativeSrc":"13461:6:97","nodeType":"YulTypedName","src":"13461:6:97","type":""},{"name":"value2","nativeSrc":"13469:6:97","nodeType":"YulTypedName","src":"13469:6:97","type":""},{"name":"value3","nativeSrc":"13477:6:97","nodeType":"YulTypedName","src":"13477:6:97","type":""}],"src":"13369:460:97"},{"body":{"nativeSrc":"13913:241:97","nodeType":"YulBlock","src":"13913:241:97","statements":[{"body":{"nativeSrc":"13959:16:97","nodeType":"YulBlock","src":"13959:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13968:1:97","nodeType":"YulLiteral","src":"13968:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"13971:1:97","nodeType":"YulLiteral","src":"13971:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13961:6:97","nodeType":"YulIdentifier","src":"13961:6:97"},"nativeSrc":"13961:12:97","nodeType":"YulFunctionCall","src":"13961:12:97"},"nativeSrc":"13961:12:97","nodeType":"YulExpressionStatement","src":"13961:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"13934:7:97","nodeType":"YulIdentifier","src":"13934:7:97"},{"name":"headStart","nativeSrc":"13943:9:97","nodeType":"YulIdentifier","src":"13943:9:97"}],"functionName":{"name":"sub","nativeSrc":"13930:3:97","nodeType":"YulIdentifier","src":"13930:3:97"},"nativeSrc":"13930:23:97","nodeType":"YulFunctionCall","src":"13930:23:97"},{"kind":"number","nativeSrc":"13955:2:97","nodeType":"YulLiteral","src":"13955:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"13926:3:97","nodeType":"YulIdentifier","src":"13926:3:97"},"nativeSrc":"13926:32:97","nodeType":"YulFunctionCall","src":"13926:32:97"},"nativeSrc":"13923:52:97","nodeType":"YulIf","src":"13923:52:97"},{"nativeSrc":"13984:37:97","nodeType":"YulVariableDeclaration","src":"13984:37:97","value":{"arguments":[{"name":"headStart","nativeSrc":"14011:9:97","nodeType":"YulIdentifier","src":"14011:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"13998:12:97","nodeType":"YulIdentifier","src":"13998:12:97"},"nativeSrc":"13998:23:97","nodeType":"YulFunctionCall","src":"13998:23:97"},"variables":[{"name":"offset","nativeSrc":"13988:6:97","nodeType":"YulTypedName","src":"13988:6:97","type":""}]},{"body":{"nativeSrc":"14064:16:97","nodeType":"YulBlock","src":"14064:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14073:1:97","nodeType":"YulLiteral","src":"14073:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"14076:1:97","nodeType":"YulLiteral","src":"14076:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"14066:6:97","nodeType":"YulIdentifier","src":"14066:6:97"},"nativeSrc":"14066:12:97","nodeType":"YulFunctionCall","src":"14066:12:97"},"nativeSrc":"14066:12:97","nodeType":"YulExpressionStatement","src":"14066:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"14036:6:97","nodeType":"YulIdentifier","src":"14036:6:97"},{"kind":"number","nativeSrc":"14044:18:97","nodeType":"YulLiteral","src":"14044:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"14033:2:97","nodeType":"YulIdentifier","src":"14033:2:97"},"nativeSrc":"14033:30:97","nodeType":"YulFunctionCall","src":"14033:30:97"},"nativeSrc":"14030:50:97","nodeType":"YulIf","src":"14030:50:97"},{"nativeSrc":"14089:59:97","nodeType":"YulAssignment","src":"14089:59:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14120:9:97","nodeType":"YulIdentifier","src":"14120:9:97"},{"name":"offset","nativeSrc":"14131:6:97","nodeType":"YulIdentifier","src":"14131:6:97"}],"functionName":{"name":"add","nativeSrc":"14116:3:97","nodeType":"YulIdentifier","src":"14116:3:97"},"nativeSrc":"14116:22:97","nodeType":"YulFunctionCall","src":"14116:22:97"},{"name":"dataEnd","nativeSrc":"14140:7:97","nodeType":"YulIdentifier","src":"14140:7:97"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"14099:16:97","nodeType":"YulIdentifier","src":"14099:16:97"},"nativeSrc":"14099:49:97","nodeType":"YulFunctionCall","src":"14099:49:97"},"variableNames":[{"name":"value0","nativeSrc":"14089:6:97","nodeType":"YulIdentifier","src":"14089:6:97"}]}]},"name":"abi_decode_tuple_t_bytes_memory_ptr","nativeSrc":"13834:320:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13879:9:97","nodeType":"YulTypedName","src":"13879:9:97","type":""},{"name":"dataEnd","nativeSrc":"13890:7:97","nodeType":"YulTypedName","src":"13890:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"13902:6:97","nodeType":"YulTypedName","src":"13902:6:97","type":""}],"src":"13834:320:97"},{"body":{"nativeSrc":"14306:124:97","nodeType":"YulBlock","src":"14306:124:97","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"14329:3:97","nodeType":"YulIdentifier","src":"14329:3:97"},{"name":"value0","nativeSrc":"14334:6:97","nodeType":"YulIdentifier","src":"14334:6:97"},{"name":"value1","nativeSrc":"14342:6:97","nodeType":"YulIdentifier","src":"14342:6:97"}],"functionName":{"name":"calldatacopy","nativeSrc":"14316:12:97","nodeType":"YulIdentifier","src":"14316:12:97"},"nativeSrc":"14316:33:97","nodeType":"YulFunctionCall","src":"14316:33:97"},"nativeSrc":"14316:33:97","nodeType":"YulExpressionStatement","src":"14316:33:97"},{"nativeSrc":"14358:26:97","nodeType":"YulVariableDeclaration","src":"14358:26:97","value":{"arguments":[{"name":"pos","nativeSrc":"14372:3:97","nodeType":"YulIdentifier","src":"14372:3:97"},{"name":"value1","nativeSrc":"14377:6:97","nodeType":"YulIdentifier","src":"14377:6:97"}],"functionName":{"name":"add","nativeSrc":"14368:3:97","nodeType":"YulIdentifier","src":"14368:3:97"},"nativeSrc":"14368:16:97","nodeType":"YulFunctionCall","src":"14368:16:97"},"variables":[{"name":"_1","nativeSrc":"14362:2:97","nodeType":"YulTypedName","src":"14362:2:97","type":""}]},{"expression":{"arguments":[{"name":"_1","nativeSrc":"14400:2:97","nodeType":"YulIdentifier","src":"14400:2:97"},{"kind":"number","nativeSrc":"14404:1:97","nodeType":"YulLiteral","src":"14404:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"14393:6:97","nodeType":"YulIdentifier","src":"14393:6:97"},"nativeSrc":"14393:13:97","nodeType":"YulFunctionCall","src":"14393:13:97"},"nativeSrc":"14393:13:97","nodeType":"YulExpressionStatement","src":"14393:13:97"},{"nativeSrc":"14415:9:97","nodeType":"YulAssignment","src":"14415:9:97","value":{"name":"_1","nativeSrc":"14422:2:97","nodeType":"YulIdentifier","src":"14422:2:97"},"variableNames":[{"name":"end","nativeSrc":"14415:3:97","nodeType":"YulIdentifier","src":"14415:3:97"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"14159:271:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"14274:3:97","nodeType":"YulTypedName","src":"14274:3:97","type":""},{"name":"value1","nativeSrc":"14279:6:97","nodeType":"YulTypedName","src":"14279:6:97","type":""},{"name":"value0","nativeSrc":"14287:6:97","nodeType":"YulTypedName","src":"14287:6:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"14298:3:97","nodeType":"YulTypedName","src":"14298:3:97","type":""}],"src":"14159:271:97"},{"body":{"nativeSrc":"14490:382:97","nodeType":"YulBlock","src":"14490:382:97","statements":[{"nativeSrc":"14500:22:97","nodeType":"YulAssignment","src":"14500:22:97","value":{"arguments":[{"kind":"number","nativeSrc":"14514:1:97","nodeType":"YulLiteral","src":"14514:1:97","type":"","value":"1"},{"name":"data","nativeSrc":"14517:4:97","nodeType":"YulIdentifier","src":"14517:4:97"}],"functionName":{"name":"shr","nativeSrc":"14510:3:97","nodeType":"YulIdentifier","src":"14510:3:97"},"nativeSrc":"14510:12:97","nodeType":"YulFunctionCall","src":"14510:12:97"},"variableNames":[{"name":"length","nativeSrc":"14500:6:97","nodeType":"YulIdentifier","src":"14500:6:97"}]},{"nativeSrc":"14531:38:97","nodeType":"YulVariableDeclaration","src":"14531:38:97","value":{"arguments":[{"name":"data","nativeSrc":"14561:4:97","nodeType":"YulIdentifier","src":"14561:4:97"},{"kind":"number","nativeSrc":"14567:1:97","nodeType":"YulLiteral","src":"14567:1:97","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"14557:3:97","nodeType":"YulIdentifier","src":"14557:3:97"},"nativeSrc":"14557:12:97","nodeType":"YulFunctionCall","src":"14557:12:97"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"14535:18:97","nodeType":"YulTypedName","src":"14535:18:97","type":""}]},{"body":{"nativeSrc":"14608:31:97","nodeType":"YulBlock","src":"14608:31:97","statements":[{"nativeSrc":"14610:27:97","nodeType":"YulAssignment","src":"14610:27:97","value":{"arguments":[{"name":"length","nativeSrc":"14624:6:97","nodeType":"YulIdentifier","src":"14624:6:97"},{"kind":"number","nativeSrc":"14632:4:97","nodeType":"YulLiteral","src":"14632:4:97","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"14620:3:97","nodeType":"YulIdentifier","src":"14620:3:97"},"nativeSrc":"14620:17:97","nodeType":"YulFunctionCall","src":"14620:17:97"},"variableNames":[{"name":"length","nativeSrc":"14610:6:97","nodeType":"YulIdentifier","src":"14610:6:97"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"14588:18:97","nodeType":"YulIdentifier","src":"14588:18:97"}],"functionName":{"name":"iszero","nativeSrc":"14581:6:97","nodeType":"YulIdentifier","src":"14581:6:97"},"nativeSrc":"14581:26:97","nodeType":"YulFunctionCall","src":"14581:26:97"},"nativeSrc":"14578:61:97","nodeType":"YulIf","src":"14578:61:97"},{"body":{"nativeSrc":"14698:168:97","nodeType":"YulBlock","src":"14698:168:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14719:1:97","nodeType":"YulLiteral","src":"14719:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"14722:77:97","nodeType":"YulLiteral","src":"14722:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"14712:6:97","nodeType":"YulIdentifier","src":"14712:6:97"},"nativeSrc":"14712:88:97","nodeType":"YulFunctionCall","src":"14712:88:97"},"nativeSrc":"14712:88:97","nodeType":"YulExpressionStatement","src":"14712:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14820:1:97","nodeType":"YulLiteral","src":"14820:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"14823:4:97","nodeType":"YulLiteral","src":"14823:4:97","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"14813:6:97","nodeType":"YulIdentifier","src":"14813:6:97"},"nativeSrc":"14813:15:97","nodeType":"YulFunctionCall","src":"14813:15:97"},"nativeSrc":"14813:15:97","nodeType":"YulExpressionStatement","src":"14813:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14848:1:97","nodeType":"YulLiteral","src":"14848:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"14851:4:97","nodeType":"YulLiteral","src":"14851:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"14841:6:97","nodeType":"YulIdentifier","src":"14841:6:97"},"nativeSrc":"14841:15:97","nodeType":"YulFunctionCall","src":"14841:15:97"},"nativeSrc":"14841:15:97","nodeType":"YulExpressionStatement","src":"14841:15:97"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"14654:18:97","nodeType":"YulIdentifier","src":"14654:18:97"},{"arguments":[{"name":"length","nativeSrc":"14677:6:97","nodeType":"YulIdentifier","src":"14677:6:97"},{"kind":"number","nativeSrc":"14685:2:97","nodeType":"YulLiteral","src":"14685:2:97","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"14674:2:97","nodeType":"YulIdentifier","src":"14674:2:97"},"nativeSrc":"14674:14:97","nodeType":"YulFunctionCall","src":"14674:14:97"}],"functionName":{"name":"eq","nativeSrc":"14651:2:97","nodeType":"YulIdentifier","src":"14651:2:97"},"nativeSrc":"14651:38:97","nodeType":"YulFunctionCall","src":"14651:38:97"},"nativeSrc":"14648:218:97","nodeType":"YulIf","src":"14648:218:97"}]},"name":"extract_byte_array_length","nativeSrc":"14435:437:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"14470:4:97","nodeType":"YulTypedName","src":"14470:4:97","type":""}],"returnVariables":[{"name":"length","nativeSrc":"14479:6:97","nodeType":"YulTypedName","src":"14479:6:97","type":""}],"src":"14435:437:97"},{"body":{"nativeSrc":"14909:152:97","nodeType":"YulBlock","src":"14909:152:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14926:1:97","nodeType":"YulLiteral","src":"14926:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"14929:77:97","nodeType":"YulLiteral","src":"14929:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"14919:6:97","nodeType":"YulIdentifier","src":"14919:6:97"},"nativeSrc":"14919:88:97","nodeType":"YulFunctionCall","src":"14919:88:97"},"nativeSrc":"14919:88:97","nodeType":"YulExpressionStatement","src":"14919:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15023:1:97","nodeType":"YulLiteral","src":"15023:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"15026:4:97","nodeType":"YulLiteral","src":"15026:4:97","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"15016:6:97","nodeType":"YulIdentifier","src":"15016:6:97"},"nativeSrc":"15016:15:97","nodeType":"YulFunctionCall","src":"15016:15:97"},"nativeSrc":"15016:15:97","nodeType":"YulExpressionStatement","src":"15016:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15047:1:97","nodeType":"YulLiteral","src":"15047:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"15050:4:97","nodeType":"YulLiteral","src":"15050:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"15040:6:97","nodeType":"YulIdentifier","src":"15040:6:97"},"nativeSrc":"15040:15:97","nodeType":"YulFunctionCall","src":"15040:15:97"},"nativeSrc":"15040:15:97","nodeType":"YulExpressionStatement","src":"15040:15:97"}]},"name":"panic_error_0x11","nativeSrc":"14877:184:97","nodeType":"YulFunctionDefinition","src":"14877:184:97"},{"body":{"nativeSrc":"15114:77:97","nodeType":"YulBlock","src":"15114:77:97","statements":[{"nativeSrc":"15124:16:97","nodeType":"YulAssignment","src":"15124:16:97","value":{"arguments":[{"name":"x","nativeSrc":"15135:1:97","nodeType":"YulIdentifier","src":"15135:1:97"},{"name":"y","nativeSrc":"15138:1:97","nodeType":"YulIdentifier","src":"15138:1:97"}],"functionName":{"name":"add","nativeSrc":"15131:3:97","nodeType":"YulIdentifier","src":"15131:3:97"},"nativeSrc":"15131:9:97","nodeType":"YulFunctionCall","src":"15131:9:97"},"variableNames":[{"name":"sum","nativeSrc":"15124:3:97","nodeType":"YulIdentifier","src":"15124:3:97"}]},{"body":{"nativeSrc":"15163:22:97","nodeType":"YulBlock","src":"15163:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"15165:16:97","nodeType":"YulIdentifier","src":"15165:16:97"},"nativeSrc":"15165:18:97","nodeType":"YulFunctionCall","src":"15165:18:97"},"nativeSrc":"15165:18:97","nodeType":"YulExpressionStatement","src":"15165:18:97"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"15155:1:97","nodeType":"YulIdentifier","src":"15155:1:97"},{"name":"sum","nativeSrc":"15158:3:97","nodeType":"YulIdentifier","src":"15158:3:97"}],"functionName":{"name":"gt","nativeSrc":"15152:2:97","nodeType":"YulIdentifier","src":"15152:2:97"},"nativeSrc":"15152:10:97","nodeType":"YulFunctionCall","src":"15152:10:97"},"nativeSrc":"15149:36:97","nodeType":"YulIf","src":"15149:36:97"}]},"name":"checked_add_t_uint256","nativeSrc":"15066:125:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"15097:1:97","nodeType":"YulTypedName","src":"15097:1:97","type":""},{"name":"y","nativeSrc":"15100:1:97","nodeType":"YulTypedName","src":"15100:1:97","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"15106:3:97","nodeType":"YulTypedName","src":"15106:3:97","type":""}],"src":"15066:125:97"},{"body":{"nativeSrc":"15370:182:97","nodeType":"YulBlock","src":"15370:182:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"15387:9:97","nodeType":"YulIdentifier","src":"15387:9:97"},{"kind":"number","nativeSrc":"15398:2:97","nodeType":"YulLiteral","src":"15398:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"15380:6:97","nodeType":"YulIdentifier","src":"15380:6:97"},"nativeSrc":"15380:21:97","nodeType":"YulFunctionCall","src":"15380:21:97"},"nativeSrc":"15380:21:97","nodeType":"YulExpressionStatement","src":"15380:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15421:9:97","nodeType":"YulIdentifier","src":"15421:9:97"},{"kind":"number","nativeSrc":"15432:2:97","nodeType":"YulLiteral","src":"15432:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15417:3:97","nodeType":"YulIdentifier","src":"15417:3:97"},"nativeSrc":"15417:18:97","nodeType":"YulFunctionCall","src":"15417:18:97"},{"kind":"number","nativeSrc":"15437:2:97","nodeType":"YulLiteral","src":"15437:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"15410:6:97","nodeType":"YulIdentifier","src":"15410:6:97"},"nativeSrc":"15410:30:97","nodeType":"YulFunctionCall","src":"15410:30:97"},"nativeSrc":"15410:30:97","nodeType":"YulExpressionStatement","src":"15410:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15460:9:97","nodeType":"YulIdentifier","src":"15460:9:97"},{"kind":"number","nativeSrc":"15471:2:97","nodeType":"YulLiteral","src":"15471:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"15456:3:97","nodeType":"YulIdentifier","src":"15456:3:97"},"nativeSrc":"15456:18:97","nodeType":"YulFunctionCall","src":"15456:18:97"},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f6164","kind":"string","nativeSrc":"15476:34:97","nodeType":"YulLiteral","src":"15476:34:97","type":"","value":"LayerZeroMock: no stored payload"}],"functionName":{"name":"mstore","nativeSrc":"15449:6:97","nodeType":"YulIdentifier","src":"15449:6:97"},"nativeSrc":"15449:62:97","nodeType":"YulFunctionCall","src":"15449:62:97"},"nativeSrc":"15449:62:97","nodeType":"YulExpressionStatement","src":"15449:62:97"},{"nativeSrc":"15520:26:97","nodeType":"YulAssignment","src":"15520:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"15532:9:97","nodeType":"YulIdentifier","src":"15532:9:97"},{"kind":"number","nativeSrc":"15543:2:97","nodeType":"YulLiteral","src":"15543:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"15528:3:97","nodeType":"YulIdentifier","src":"15528:3:97"},"nativeSrc":"15528:18:97","nodeType":"YulFunctionCall","src":"15528:18:97"},"variableNames":[{"name":"tail","nativeSrc":"15520:4:97","nodeType":"YulIdentifier","src":"15520:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"15196:356:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15347:9:97","nodeType":"YulTypedName","src":"15347:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15361:4:97","nodeType":"YulTypedName","src":"15361:4:97","type":""}],"src":"15196:356:97"},{"body":{"nativeSrc":"15731:179:97","nodeType":"YulBlock","src":"15731:179:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"15748:9:97","nodeType":"YulIdentifier","src":"15748:9:97"},{"kind":"number","nativeSrc":"15759:2:97","nodeType":"YulLiteral","src":"15759:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"15741:6:97","nodeType":"YulIdentifier","src":"15741:6:97"},"nativeSrc":"15741:21:97","nodeType":"YulFunctionCall","src":"15741:21:97"},"nativeSrc":"15741:21:97","nodeType":"YulExpressionStatement","src":"15741:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15782:9:97","nodeType":"YulIdentifier","src":"15782:9:97"},{"kind":"number","nativeSrc":"15793:2:97","nodeType":"YulLiteral","src":"15793:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15778:3:97","nodeType":"YulIdentifier","src":"15778:3:97"},"nativeSrc":"15778:18:97","nodeType":"YulFunctionCall","src":"15778:18:97"},{"kind":"number","nativeSrc":"15798:2:97","nodeType":"YulLiteral","src":"15798:2:97","type":"","value":"29"}],"functionName":{"name":"mstore","nativeSrc":"15771:6:97","nodeType":"YulIdentifier","src":"15771:6:97"},"nativeSrc":"15771:30:97","nodeType":"YulFunctionCall","src":"15771:30:97"},"nativeSrc":"15771:30:97","nodeType":"YulExpressionStatement","src":"15771:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15821:9:97","nodeType":"YulIdentifier","src":"15821:9:97"},{"kind":"number","nativeSrc":"15832:2:97","nodeType":"YulLiteral","src":"15832:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"15817:3:97","nodeType":"YulIdentifier","src":"15817:3:97"},"nativeSrc":"15817:18:97","nodeType":"YulFunctionCall","src":"15817:18:97"},{"hexValue":"4c617965725a65726f4d6f636b3a20696e76616c69642063616c6c6572","kind":"string","nativeSrc":"15837:31:97","nodeType":"YulLiteral","src":"15837:31:97","type":"","value":"LayerZeroMock: invalid caller"}],"functionName":{"name":"mstore","nativeSrc":"15810:6:97","nodeType":"YulIdentifier","src":"15810:6:97"},"nativeSrc":"15810:59:97","nodeType":"YulFunctionCall","src":"15810:59:97"},"nativeSrc":"15810:59:97","nodeType":"YulExpressionStatement","src":"15810:59:97"},{"nativeSrc":"15878:26:97","nodeType":"YulAssignment","src":"15878:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"15890:9:97","nodeType":"YulIdentifier","src":"15890:9:97"},{"kind":"number","nativeSrc":"15901:2:97","nodeType":"YulLiteral","src":"15901:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"15886:3:97","nodeType":"YulIdentifier","src":"15886:3:97"},"nativeSrc":"15886:18:97","nodeType":"YulFunctionCall","src":"15886:18:97"},"variableNames":[{"name":"tail","nativeSrc":"15878:4:97","nodeType":"YulIdentifier","src":"15878:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_3967011d6285a9dce57c3ff82ee9dd83446fd39eaaeb6fa26af022508e44801b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"15557:353:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15708:9:97","nodeType":"YulTypedName","src":"15708:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15722:4:97","nodeType":"YulTypedName","src":"15722:4:97","type":""}],"src":"15557:353:97"},{"body":{"nativeSrc":"15981:259:97","nodeType":"YulBlock","src":"15981:259:97","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"15998:3:97","nodeType":"YulIdentifier","src":"15998:3:97"},{"name":"length","nativeSrc":"16003:6:97","nodeType":"YulIdentifier","src":"16003:6:97"}],"functionName":{"name":"mstore","nativeSrc":"15991:6:97","nodeType":"YulIdentifier","src":"15991:6:97"},"nativeSrc":"15991:19:97","nodeType":"YulFunctionCall","src":"15991:19:97"},"nativeSrc":"15991:19:97","nodeType":"YulExpressionStatement","src":"15991:19:97"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"16036:3:97","nodeType":"YulIdentifier","src":"16036:3:97"},{"kind":"number","nativeSrc":"16041:4:97","nodeType":"YulLiteral","src":"16041:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16032:3:97","nodeType":"YulIdentifier","src":"16032:3:97"},"nativeSrc":"16032:14:97","nodeType":"YulFunctionCall","src":"16032:14:97"},{"name":"start","nativeSrc":"16048:5:97","nodeType":"YulIdentifier","src":"16048:5:97"},{"name":"length","nativeSrc":"16055:6:97","nodeType":"YulIdentifier","src":"16055:6:97"}],"functionName":{"name":"calldatacopy","nativeSrc":"16019:12:97","nodeType":"YulIdentifier","src":"16019:12:97"},"nativeSrc":"16019:43:97","nodeType":"YulFunctionCall","src":"16019:43:97"},"nativeSrc":"16019:43:97","nodeType":"YulExpressionStatement","src":"16019:43:97"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"16086:3:97","nodeType":"YulIdentifier","src":"16086:3:97"},{"name":"length","nativeSrc":"16091:6:97","nodeType":"YulIdentifier","src":"16091:6:97"}],"functionName":{"name":"add","nativeSrc":"16082:3:97","nodeType":"YulIdentifier","src":"16082:3:97"},"nativeSrc":"16082:16:97","nodeType":"YulFunctionCall","src":"16082:16:97"},{"kind":"number","nativeSrc":"16100:4:97","nodeType":"YulLiteral","src":"16100:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16078:3:97","nodeType":"YulIdentifier","src":"16078:3:97"},"nativeSrc":"16078:27:97","nodeType":"YulFunctionCall","src":"16078:27:97"},{"kind":"number","nativeSrc":"16107:1:97","nodeType":"YulLiteral","src":"16107:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"16071:6:97","nodeType":"YulIdentifier","src":"16071:6:97"},"nativeSrc":"16071:38:97","nodeType":"YulFunctionCall","src":"16071:38:97"},"nativeSrc":"16071:38:97","nodeType":"YulExpressionStatement","src":"16071:38:97"},{"nativeSrc":"16118:116:97","nodeType":"YulAssignment","src":"16118:116:97","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"16133:3:97","nodeType":"YulIdentifier","src":"16133:3:97"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"16146:6:97","nodeType":"YulIdentifier","src":"16146:6:97"},{"kind":"number","nativeSrc":"16154:2:97","nodeType":"YulLiteral","src":"16154:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"16142:3:97","nodeType":"YulIdentifier","src":"16142:3:97"},"nativeSrc":"16142:15:97","nodeType":"YulFunctionCall","src":"16142:15:97"},{"kind":"number","nativeSrc":"16159:66:97","nodeType":"YulLiteral","src":"16159:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"16138:3:97","nodeType":"YulIdentifier","src":"16138:3:97"},"nativeSrc":"16138:88:97","nodeType":"YulFunctionCall","src":"16138:88:97"}],"functionName":{"name":"add","nativeSrc":"16129:3:97","nodeType":"YulIdentifier","src":"16129:3:97"},"nativeSrc":"16129:98:97","nodeType":"YulFunctionCall","src":"16129:98:97"},{"kind":"number","nativeSrc":"16229:4:97","nodeType":"YulLiteral","src":"16229:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16125:3:97","nodeType":"YulIdentifier","src":"16125:3:97"},"nativeSrc":"16125:109:97","nodeType":"YulFunctionCall","src":"16125:109:97"},"variableNames":[{"name":"end","nativeSrc":"16118:3:97","nodeType":"YulIdentifier","src":"16118:3:97"}]}]},"name":"abi_encode_bytes_calldata","nativeSrc":"15915:325:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"15950:5:97","nodeType":"YulTypedName","src":"15950:5:97","type":""},{"name":"length","nativeSrc":"15957:6:97","nodeType":"YulTypedName","src":"15957:6:97","type":""},{"name":"pos","nativeSrc":"15965:3:97","nodeType":"YulTypedName","src":"15965:3:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"15973:3:97","nodeType":"YulTypedName","src":"15973:3:97","type":""}],"src":"15915:325:97"},{"body":{"nativeSrc":"16400:171:97","nodeType":"YulBlock","src":"16400:171:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"16417:9:97","nodeType":"YulIdentifier","src":"16417:9:97"},{"arguments":[{"name":"value0","nativeSrc":"16432:6:97","nodeType":"YulIdentifier","src":"16432:6:97"},{"kind":"number","nativeSrc":"16440:6:97","nodeType":"YulLiteral","src":"16440:6:97","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"16428:3:97","nodeType":"YulIdentifier","src":"16428:3:97"},"nativeSrc":"16428:19:97","nodeType":"YulFunctionCall","src":"16428:19:97"}],"functionName":{"name":"mstore","nativeSrc":"16410:6:97","nodeType":"YulIdentifier","src":"16410:6:97"},"nativeSrc":"16410:38:97","nodeType":"YulFunctionCall","src":"16410:38:97"},"nativeSrc":"16410:38:97","nodeType":"YulExpressionStatement","src":"16410:38:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16468:9:97","nodeType":"YulIdentifier","src":"16468:9:97"},{"kind":"number","nativeSrc":"16479:2:97","nodeType":"YulLiteral","src":"16479:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16464:3:97","nodeType":"YulIdentifier","src":"16464:3:97"},"nativeSrc":"16464:18:97","nodeType":"YulFunctionCall","src":"16464:18:97"},{"kind":"number","nativeSrc":"16484:2:97","nodeType":"YulLiteral","src":"16484:2:97","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"16457:6:97","nodeType":"YulIdentifier","src":"16457:6:97"},"nativeSrc":"16457:30:97","nodeType":"YulFunctionCall","src":"16457:30:97"},"nativeSrc":"16457:30:97","nodeType":"YulExpressionStatement","src":"16457:30:97"},{"nativeSrc":"16496:69:97","nodeType":"YulAssignment","src":"16496:69:97","value":{"arguments":[{"name":"value1","nativeSrc":"16530:6:97","nodeType":"YulIdentifier","src":"16530:6:97"},{"name":"value2","nativeSrc":"16538:6:97","nodeType":"YulIdentifier","src":"16538:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"16550:9:97","nodeType":"YulIdentifier","src":"16550:9:97"},{"kind":"number","nativeSrc":"16561:2:97","nodeType":"YulLiteral","src":"16561:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16546:3:97","nodeType":"YulIdentifier","src":"16546:3:97"},"nativeSrc":"16546:18:97","nodeType":"YulFunctionCall","src":"16546:18:97"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"16504:25:97","nodeType":"YulIdentifier","src":"16504:25:97"},"nativeSrc":"16504:61:97","nodeType":"YulFunctionCall","src":"16504:61:97"},"variableNames":[{"name":"tail","nativeSrc":"16496:4:97","nodeType":"YulIdentifier","src":"16496:4:97"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"16245:326:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16353:9:97","nodeType":"YulTypedName","src":"16353:9:97","type":""},{"name":"value2","nativeSrc":"16364:6:97","nodeType":"YulTypedName","src":"16364:6:97","type":""},{"name":"value1","nativeSrc":"16372:6:97","nodeType":"YulTypedName","src":"16372:6:97","type":""},{"name":"value0","nativeSrc":"16380:6:97","nodeType":"YulTypedName","src":"16380:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16391:4:97","nodeType":"YulTypedName","src":"16391:4:97","type":""}],"src":"16245:326:97"},{"body":{"nativeSrc":"16750:180:97","nodeType":"YulBlock","src":"16750:180:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"16767:9:97","nodeType":"YulIdentifier","src":"16767:9:97"},{"kind":"number","nativeSrc":"16778:2:97","nodeType":"YulLiteral","src":"16778:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"16760:6:97","nodeType":"YulIdentifier","src":"16760:6:97"},"nativeSrc":"16760:21:97","nodeType":"YulFunctionCall","src":"16760:21:97"},"nativeSrc":"16760:21:97","nodeType":"YulExpressionStatement","src":"16760:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16801:9:97","nodeType":"YulIdentifier","src":"16801:9:97"},{"kind":"number","nativeSrc":"16812:2:97","nodeType":"YulLiteral","src":"16812:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16797:3:97","nodeType":"YulIdentifier","src":"16797:3:97"},"nativeSrc":"16797:18:97","nodeType":"YulFunctionCall","src":"16797:18:97"},{"kind":"number","nativeSrc":"16817:2:97","nodeType":"YulLiteral","src":"16817:2:97","type":"","value":"30"}],"functionName":{"name":"mstore","nativeSrc":"16790:6:97","nodeType":"YulIdentifier","src":"16790:6:97"},"nativeSrc":"16790:30:97","nodeType":"YulFunctionCall","src":"16790:30:97"},"nativeSrc":"16790:30:97","nodeType":"YulExpressionStatement","src":"16790:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16840:9:97","nodeType":"YulIdentifier","src":"16840:9:97"},{"kind":"number","nativeSrc":"16851:2:97","nodeType":"YulLiteral","src":"16851:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16836:3:97","nodeType":"YulIdentifier","src":"16836:3:97"},"nativeSrc":"16836:18:97","nodeType":"YulFunctionCall","src":"16836:18:97"},{"hexValue":"4c617965725a65726f4d6f636b3a20696e76616c6964207061796c6f6164","kind":"string","nativeSrc":"16856:32:97","nodeType":"YulLiteral","src":"16856:32:97","type":"","value":"LayerZeroMock: invalid payload"}],"functionName":{"name":"mstore","nativeSrc":"16829:6:97","nodeType":"YulIdentifier","src":"16829:6:97"},"nativeSrc":"16829:60:97","nodeType":"YulFunctionCall","src":"16829:60:97"},"nativeSrc":"16829:60:97","nodeType":"YulExpressionStatement","src":"16829:60:97"},{"nativeSrc":"16898:26:97","nodeType":"YulAssignment","src":"16898:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"16910:9:97","nodeType":"YulIdentifier","src":"16910:9:97"},{"kind":"number","nativeSrc":"16921:2:97","nodeType":"YulLiteral","src":"16921:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"16906:3:97","nodeType":"YulIdentifier","src":"16906:3:97"},"nativeSrc":"16906:18:97","nodeType":"YulFunctionCall","src":"16906:18:97"},"variableNames":[{"name":"tail","nativeSrc":"16898:4:97","nodeType":"YulIdentifier","src":"16898:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_5d0b005579c4d5f607baec096f4a22c77289f237586c7362a7902ea2a3c322fe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"16576:354:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16727:9:97","nodeType":"YulTypedName","src":"16727:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16741:4:97","nodeType":"YulTypedName","src":"16741:4:97","type":""}],"src":"16576:354:97"},{"body":{"nativeSrc":"17172:372:97","nodeType":"YulBlock","src":"17172:372:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"17189:9:97","nodeType":"YulIdentifier","src":"17189:9:97"},{"arguments":[{"name":"value0","nativeSrc":"17204:6:97","nodeType":"YulIdentifier","src":"17204:6:97"},{"kind":"number","nativeSrc":"17212:6:97","nodeType":"YulLiteral","src":"17212:6:97","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"17200:3:97","nodeType":"YulIdentifier","src":"17200:3:97"},"nativeSrc":"17200:19:97","nodeType":"YulFunctionCall","src":"17200:19:97"}],"functionName":{"name":"mstore","nativeSrc":"17182:6:97","nodeType":"YulIdentifier","src":"17182:6:97"},"nativeSrc":"17182:38:97","nodeType":"YulFunctionCall","src":"17182:38:97"},"nativeSrc":"17182:38:97","nodeType":"YulExpressionStatement","src":"17182:38:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17240:9:97","nodeType":"YulIdentifier","src":"17240:9:97"},{"kind":"number","nativeSrc":"17251:2:97","nodeType":"YulLiteral","src":"17251:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17236:3:97","nodeType":"YulIdentifier","src":"17236:3:97"},"nativeSrc":"17236:18:97","nodeType":"YulFunctionCall","src":"17236:18:97"},{"kind":"number","nativeSrc":"17256:3:97","nodeType":"YulLiteral","src":"17256:3:97","type":"","value":"128"}],"functionName":{"name":"mstore","nativeSrc":"17229:6:97","nodeType":"YulIdentifier","src":"17229:6:97"},"nativeSrc":"17229:31:97","nodeType":"YulFunctionCall","src":"17229:31:97"},"nativeSrc":"17229:31:97","nodeType":"YulExpressionStatement","src":"17229:31:97"},{"nativeSrc":"17269:76:97","nodeType":"YulVariableDeclaration","src":"17269:76:97","value":{"arguments":[{"name":"value1","nativeSrc":"17309:6:97","nodeType":"YulIdentifier","src":"17309:6:97"},{"name":"value2","nativeSrc":"17317:6:97","nodeType":"YulIdentifier","src":"17317:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"17329:9:97","nodeType":"YulIdentifier","src":"17329:9:97"},{"kind":"number","nativeSrc":"17340:3:97","nodeType":"YulLiteral","src":"17340:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"17325:3:97","nodeType":"YulIdentifier","src":"17325:3:97"},"nativeSrc":"17325:19:97","nodeType":"YulFunctionCall","src":"17325:19:97"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"17283:25:97","nodeType":"YulIdentifier","src":"17283:25:97"},"nativeSrc":"17283:62:97","nodeType":"YulFunctionCall","src":"17283:62:97"},"variables":[{"name":"tail_1","nativeSrc":"17273:6:97","nodeType":"YulTypedName","src":"17273:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17365:9:97","nodeType":"YulIdentifier","src":"17365:9:97"},{"kind":"number","nativeSrc":"17376:2:97","nodeType":"YulLiteral","src":"17376:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17361:3:97","nodeType":"YulIdentifier","src":"17361:3:97"},"nativeSrc":"17361:18:97","nodeType":"YulFunctionCall","src":"17361:18:97"},{"arguments":[{"name":"value3","nativeSrc":"17385:6:97","nodeType":"YulIdentifier","src":"17385:6:97"},{"kind":"number","nativeSrc":"17393:18:97","nodeType":"YulLiteral","src":"17393:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"17381:3:97","nodeType":"YulIdentifier","src":"17381:3:97"},"nativeSrc":"17381:31:97","nodeType":"YulFunctionCall","src":"17381:31:97"}],"functionName":{"name":"mstore","nativeSrc":"17354:6:97","nodeType":"YulIdentifier","src":"17354:6:97"},"nativeSrc":"17354:59:97","nodeType":"YulFunctionCall","src":"17354:59:97"},"nativeSrc":"17354:59:97","nodeType":"YulExpressionStatement","src":"17354:59:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17433:9:97","nodeType":"YulIdentifier","src":"17433:9:97"},{"kind":"number","nativeSrc":"17444:2:97","nodeType":"YulLiteral","src":"17444:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"17429:3:97","nodeType":"YulIdentifier","src":"17429:3:97"},"nativeSrc":"17429:18:97","nodeType":"YulFunctionCall","src":"17429:18:97"},{"arguments":[{"name":"tail_1","nativeSrc":"17453:6:97","nodeType":"YulIdentifier","src":"17453:6:97"},{"name":"headStart","nativeSrc":"17461:9:97","nodeType":"YulIdentifier","src":"17461:9:97"}],"functionName":{"name":"sub","nativeSrc":"17449:3:97","nodeType":"YulIdentifier","src":"17449:3:97"},"nativeSrc":"17449:22:97","nodeType":"YulFunctionCall","src":"17449:22:97"}],"functionName":{"name":"mstore","nativeSrc":"17422:6:97","nodeType":"YulIdentifier","src":"17422:6:97"},"nativeSrc":"17422:50:97","nodeType":"YulFunctionCall","src":"17422:50:97"},"nativeSrc":"17422:50:97","nodeType":"YulExpressionStatement","src":"17422:50:97"},{"nativeSrc":"17481:57:97","nodeType":"YulAssignment","src":"17481:57:97","value":{"arguments":[{"name":"value4","nativeSrc":"17515:6:97","nodeType":"YulIdentifier","src":"17515:6:97"},{"name":"value5","nativeSrc":"17523:6:97","nodeType":"YulIdentifier","src":"17523:6:97"},{"name":"tail_1","nativeSrc":"17531:6:97","nodeType":"YulIdentifier","src":"17531:6:97"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"17489:25:97","nodeType":"YulIdentifier","src":"17489:25:97"},"nativeSrc":"17489:49:97","nodeType":"YulFunctionCall","src":"17489:49:97"},"variableNames":[{"name":"tail","nativeSrc":"17481:4:97","nodeType":"YulIdentifier","src":"17481:4:97"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"16935:609:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17101:9:97","nodeType":"YulTypedName","src":"17101:9:97","type":""},{"name":"value5","nativeSrc":"17112:6:97","nodeType":"YulTypedName","src":"17112:6:97","type":""},{"name":"value4","nativeSrc":"17120:6:97","nodeType":"YulTypedName","src":"17120:6:97","type":""},{"name":"value3","nativeSrc":"17128:6:97","nodeType":"YulTypedName","src":"17128:6:97","type":""},{"name":"value2","nativeSrc":"17136:6:97","nodeType":"YulTypedName","src":"17136:6:97","type":""},{"name":"value1","nativeSrc":"17144:6:97","nodeType":"YulTypedName","src":"17144:6:97","type":""},{"name":"value0","nativeSrc":"17152:6:97","nodeType":"YulTypedName","src":"17152:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17163:4:97","nodeType":"YulTypedName","src":"17163:4:97","type":""}],"src":"16935:609:97"},{"body":{"nativeSrc":"17758:333:97","nodeType":"YulBlock","src":"17758:333:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"17775:9:97","nodeType":"YulIdentifier","src":"17775:9:97"},{"arguments":[{"name":"value0","nativeSrc":"17790:6:97","nodeType":"YulIdentifier","src":"17790:6:97"},{"kind":"number","nativeSrc":"17798:6:97","nodeType":"YulLiteral","src":"17798:6:97","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"17786:3:97","nodeType":"YulIdentifier","src":"17786:3:97"},"nativeSrc":"17786:19:97","nodeType":"YulFunctionCall","src":"17786:19:97"}],"functionName":{"name":"mstore","nativeSrc":"17768:6:97","nodeType":"YulIdentifier","src":"17768:6:97"},"nativeSrc":"17768:38:97","nodeType":"YulFunctionCall","src":"17768:38:97"},"nativeSrc":"17768:38:97","nodeType":"YulExpressionStatement","src":"17768:38:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17826:9:97","nodeType":"YulIdentifier","src":"17826:9:97"},{"kind":"number","nativeSrc":"17837:2:97","nodeType":"YulLiteral","src":"17837:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17822:3:97","nodeType":"YulIdentifier","src":"17822:3:97"},"nativeSrc":"17822:18:97","nodeType":"YulFunctionCall","src":"17822:18:97"},{"kind":"number","nativeSrc":"17842:3:97","nodeType":"YulLiteral","src":"17842:3:97","type":"","value":"128"}],"functionName":{"name":"mstore","nativeSrc":"17815:6:97","nodeType":"YulIdentifier","src":"17815:6:97"},"nativeSrc":"17815:31:97","nodeType":"YulFunctionCall","src":"17815:31:97"},"nativeSrc":"17815:31:97","nodeType":"YulExpressionStatement","src":"17815:31:97"},{"nativeSrc":"17855:70:97","nodeType":"YulAssignment","src":"17855:70:97","value":{"arguments":[{"name":"value1","nativeSrc":"17889:6:97","nodeType":"YulIdentifier","src":"17889:6:97"},{"name":"value2","nativeSrc":"17897:6:97","nodeType":"YulIdentifier","src":"17897:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"17909:9:97","nodeType":"YulIdentifier","src":"17909:9:97"},{"kind":"number","nativeSrc":"17920:3:97","nodeType":"YulLiteral","src":"17920:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"17905:3:97","nodeType":"YulIdentifier","src":"17905:3:97"},"nativeSrc":"17905:19:97","nodeType":"YulFunctionCall","src":"17905:19:97"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"17863:25:97","nodeType":"YulIdentifier","src":"17863:25:97"},"nativeSrc":"17863:62:97","nodeType":"YulFunctionCall","src":"17863:62:97"},"variableNames":[{"name":"tail","nativeSrc":"17855:4:97","nodeType":"YulIdentifier","src":"17855:4:97"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17945:9:97","nodeType":"YulIdentifier","src":"17945:9:97"},{"kind":"number","nativeSrc":"17956:2:97","nodeType":"YulLiteral","src":"17956:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17941:3:97","nodeType":"YulIdentifier","src":"17941:3:97"},"nativeSrc":"17941:18:97","nodeType":"YulFunctionCall","src":"17941:18:97"},{"arguments":[{"name":"value3","nativeSrc":"17965:6:97","nodeType":"YulIdentifier","src":"17965:6:97"},{"kind":"number","nativeSrc":"17973:18:97","nodeType":"YulLiteral","src":"17973:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"17961:3:97","nodeType":"YulIdentifier","src":"17961:3:97"},"nativeSrc":"17961:31:97","nodeType":"YulFunctionCall","src":"17961:31:97"}],"functionName":{"name":"mstore","nativeSrc":"17934:6:97","nodeType":"YulIdentifier","src":"17934:6:97"},"nativeSrc":"17934:59:97","nodeType":"YulFunctionCall","src":"17934:59:97"},"nativeSrc":"17934:59:97","nodeType":"YulExpressionStatement","src":"17934:59:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18013:9:97","nodeType":"YulIdentifier","src":"18013:9:97"},{"kind":"number","nativeSrc":"18024:2:97","nodeType":"YulLiteral","src":"18024:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"18009:3:97","nodeType":"YulIdentifier","src":"18009:3:97"},"nativeSrc":"18009:18:97","nodeType":"YulFunctionCall","src":"18009:18:97"},{"arguments":[{"name":"value4","nativeSrc":"18033:6:97","nodeType":"YulIdentifier","src":"18033:6:97"},{"kind":"number","nativeSrc":"18041:42:97","nodeType":"YulLiteral","src":"18041:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"18029:3:97","nodeType":"YulIdentifier","src":"18029:3:97"},"nativeSrc":"18029:55:97","nodeType":"YulFunctionCall","src":"18029:55:97"}],"functionName":{"name":"mstore","nativeSrc":"18002:6:97","nodeType":"YulIdentifier","src":"18002:6:97"},"nativeSrc":"18002:83:97","nodeType":"YulFunctionCall","src":"18002:83:97"},"nativeSrc":"18002:83:97","nodeType":"YulExpressionStatement","src":"18002:83:97"}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_address__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_address__fromStack_reversed","nativeSrc":"17549:542:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17695:9:97","nodeType":"YulTypedName","src":"17695:9:97","type":""},{"name":"value4","nativeSrc":"17706:6:97","nodeType":"YulTypedName","src":"17706:6:97","type":""},{"name":"value3","nativeSrc":"17714:6:97","nodeType":"YulTypedName","src":"17714:6:97","type":""},{"name":"value2","nativeSrc":"17722:6:97","nodeType":"YulTypedName","src":"17722:6:97","type":""},{"name":"value1","nativeSrc":"17730:6:97","nodeType":"YulTypedName","src":"17730:6:97","type":""},{"name":"value0","nativeSrc":"17738:6:97","nodeType":"YulTypedName","src":"17738:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17749:4:97","nodeType":"YulTypedName","src":"17749:4:97","type":""}],"src":"17549:542:97"},{"body":{"nativeSrc":"18270:226:97","nodeType":"YulBlock","src":"18270:226:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"18287:9:97","nodeType":"YulIdentifier","src":"18287:9:97"},{"kind":"number","nativeSrc":"18298:2:97","nodeType":"YulLiteral","src":"18298:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"18280:6:97","nodeType":"YulIdentifier","src":"18280:6:97"},"nativeSrc":"18280:21:97","nodeType":"YulFunctionCall","src":"18280:21:97"},"nativeSrc":"18280:21:97","nodeType":"YulExpressionStatement","src":"18280:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18321:9:97","nodeType":"YulIdentifier","src":"18321:9:97"},{"kind":"number","nativeSrc":"18332:2:97","nodeType":"YulLiteral","src":"18332:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18317:3:97","nodeType":"YulIdentifier","src":"18317:3:97"},"nativeSrc":"18317:18:97","nodeType":"YulFunctionCall","src":"18317:18:97"},{"kind":"number","nativeSrc":"18337:2:97","nodeType":"YulLiteral","src":"18337:2:97","type":"","value":"36"}],"functionName":{"name":"mstore","nativeSrc":"18310:6:97","nodeType":"YulIdentifier","src":"18310:6:97"},"nativeSrc":"18310:30:97","nodeType":"YulFunctionCall","src":"18310:30:97"},"nativeSrc":"18310:30:97","nodeType":"YulExpressionStatement","src":"18310:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18360:9:97","nodeType":"YulIdentifier","src":"18360:9:97"},{"kind":"number","nativeSrc":"18371:2:97","nodeType":"YulLiteral","src":"18371:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"18356:3:97","nodeType":"YulIdentifier","src":"18356:3:97"},"nativeSrc":"18356:18:97","nodeType":"YulFunctionCall","src":"18356:18:97"},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f2072656365697665207265656e7472","kind":"string","nativeSrc":"18376:34:97","nodeType":"YulLiteral","src":"18376:34:97","type":"","value":"LayerZeroMock: no receive reentr"}],"functionName":{"name":"mstore","nativeSrc":"18349:6:97","nodeType":"YulIdentifier","src":"18349:6:97"},"nativeSrc":"18349:62:97","nodeType":"YulFunctionCall","src":"18349:62:97"},"nativeSrc":"18349:62:97","nodeType":"YulExpressionStatement","src":"18349:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18431:9:97","nodeType":"YulIdentifier","src":"18431:9:97"},{"kind":"number","nativeSrc":"18442:2:97","nodeType":"YulLiteral","src":"18442:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"18427:3:97","nodeType":"YulIdentifier","src":"18427:3:97"},"nativeSrc":"18427:18:97","nodeType":"YulFunctionCall","src":"18427:18:97"},{"hexValue":"616e6379","kind":"string","nativeSrc":"18447:6:97","nodeType":"YulLiteral","src":"18447:6:97","type":"","value":"ancy"}],"functionName":{"name":"mstore","nativeSrc":"18420:6:97","nodeType":"YulIdentifier","src":"18420:6:97"},"nativeSrc":"18420:34:97","nodeType":"YulFunctionCall","src":"18420:34:97"},"nativeSrc":"18420:34:97","nodeType":"YulExpressionStatement","src":"18420:34:97"},{"nativeSrc":"18463:27:97","nodeType":"YulAssignment","src":"18463:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"18475:9:97","nodeType":"YulIdentifier","src":"18475:9:97"},{"kind":"number","nativeSrc":"18486:3:97","nodeType":"YulLiteral","src":"18486:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"18471:3:97","nodeType":"YulIdentifier","src":"18471:3:97"},"nativeSrc":"18471:19:97","nodeType":"YulFunctionCall","src":"18471:19:97"},"variableNames":[{"name":"tail","nativeSrc":"18463:4:97","nodeType":"YulIdentifier","src":"18463:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_82caa7769a2a1defb5e8d4082900c39c0f04eedfd5e921c1e3bf1d16730a12ab__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"18096:400:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18247:9:97","nodeType":"YulTypedName","src":"18247:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18261:4:97","nodeType":"YulTypedName","src":"18261:4:97","type":""}],"src":"18096:400:97"},{"body":{"nativeSrc":"18547:163:97","nodeType":"YulBlock","src":"18547:163:97","statements":[{"nativeSrc":"18557:28:97","nodeType":"YulVariableDeclaration","src":"18557:28:97","value":{"kind":"number","nativeSrc":"18567:18:97","nodeType":"YulLiteral","src":"18567:18:97","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"18561:2:97","nodeType":"YulTypedName","src":"18561:2:97","type":""}]},{"nativeSrc":"18594:29:97","nodeType":"YulVariableDeclaration","src":"18594:29:97","value":{"arguments":[{"name":"value","nativeSrc":"18613:5:97","nodeType":"YulIdentifier","src":"18613:5:97"},{"name":"_1","nativeSrc":"18620:2:97","nodeType":"YulIdentifier","src":"18620:2:97"}],"functionName":{"name":"and","nativeSrc":"18609:3:97","nodeType":"YulIdentifier","src":"18609:3:97"},"nativeSrc":"18609:14:97","nodeType":"YulFunctionCall","src":"18609:14:97"},"variables":[{"name":"value_1","nativeSrc":"18598:7:97","nodeType":"YulTypedName","src":"18598:7:97","type":""}]},{"body":{"nativeSrc":"18651:22:97","nodeType":"YulBlock","src":"18651:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"18653:16:97","nodeType":"YulIdentifier","src":"18653:16:97"},"nativeSrc":"18653:18:97","nodeType":"YulFunctionCall","src":"18653:18:97"},"nativeSrc":"18653:18:97","nodeType":"YulExpressionStatement","src":"18653:18:97"}]},"condition":{"arguments":[{"name":"value_1","nativeSrc":"18638:7:97","nodeType":"YulIdentifier","src":"18638:7:97"},{"name":"_1","nativeSrc":"18647:2:97","nodeType":"YulIdentifier","src":"18647:2:97"}],"functionName":{"name":"eq","nativeSrc":"18635:2:97","nodeType":"YulIdentifier","src":"18635:2:97"},"nativeSrc":"18635:15:97","nodeType":"YulFunctionCall","src":"18635:15:97"},"nativeSrc":"18632:41:97","nodeType":"YulIf","src":"18632:41:97"},{"nativeSrc":"18682:22:97","nodeType":"YulAssignment","src":"18682:22:97","value":{"arguments":[{"name":"value_1","nativeSrc":"18693:7:97","nodeType":"YulIdentifier","src":"18693:7:97"},{"kind":"number","nativeSrc":"18702:1:97","nodeType":"YulLiteral","src":"18702:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"18689:3:97","nodeType":"YulIdentifier","src":"18689:3:97"},"nativeSrc":"18689:15:97","nodeType":"YulFunctionCall","src":"18689:15:97"},"variableNames":[{"name":"ret","nativeSrc":"18682:3:97","nodeType":"YulIdentifier","src":"18682:3:97"}]}]},"name":"increment_t_uint64","nativeSrc":"18501:209:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"18529:5:97","nodeType":"YulTypedName","src":"18529:5:97","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"18539:3:97","nodeType":"YulTypedName","src":"18539:3:97","type":""}],"src":"18501:209:97"},{"body":{"nativeSrc":"18889:176:97","nodeType":"YulBlock","src":"18889:176:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"18906:9:97","nodeType":"YulIdentifier","src":"18906:9:97"},{"kind":"number","nativeSrc":"18917:2:97","nodeType":"YulLiteral","src":"18917:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"18899:6:97","nodeType":"YulIdentifier","src":"18899:6:97"},"nativeSrc":"18899:21:97","nodeType":"YulFunctionCall","src":"18899:21:97"},"nativeSrc":"18899:21:97","nodeType":"YulExpressionStatement","src":"18899:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18940:9:97","nodeType":"YulIdentifier","src":"18940:9:97"},{"kind":"number","nativeSrc":"18951:2:97","nodeType":"YulLiteral","src":"18951:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18936:3:97","nodeType":"YulIdentifier","src":"18936:3:97"},"nativeSrc":"18936:18:97","nodeType":"YulFunctionCall","src":"18936:18:97"},{"kind":"number","nativeSrc":"18956:2:97","nodeType":"YulLiteral","src":"18956:2:97","type":"","value":"26"}],"functionName":{"name":"mstore","nativeSrc":"18929:6:97","nodeType":"YulIdentifier","src":"18929:6:97"},"nativeSrc":"18929:30:97","nodeType":"YulFunctionCall","src":"18929:30:97"},"nativeSrc":"18929:30:97","nodeType":"YulExpressionStatement","src":"18929:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18979:9:97","nodeType":"YulIdentifier","src":"18979:9:97"},{"kind":"number","nativeSrc":"18990:2:97","nodeType":"YulLiteral","src":"18990:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"18975:3:97","nodeType":"YulIdentifier","src":"18975:3:97"},"nativeSrc":"18975:18:97","nodeType":"YulFunctionCall","src":"18975:18:97"},{"hexValue":"4c617965725a65726f4d6f636b3a2077726f6e67206e6f6e6365","kind":"string","nativeSrc":"18995:28:97","nodeType":"YulLiteral","src":"18995:28:97","type":"","value":"LayerZeroMock: wrong nonce"}],"functionName":{"name":"mstore","nativeSrc":"18968:6:97","nodeType":"YulIdentifier","src":"18968:6:97"},"nativeSrc":"18968:56:97","nodeType":"YulFunctionCall","src":"18968:56:97"},"nativeSrc":"18968:56:97","nodeType":"YulExpressionStatement","src":"18968:56:97"},{"nativeSrc":"19033:26:97","nodeType":"YulAssignment","src":"19033:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"19045:9:97","nodeType":"YulIdentifier","src":"19045:9:97"},{"kind":"number","nativeSrc":"19056:2:97","nodeType":"YulLiteral","src":"19056:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"19041:3:97","nodeType":"YulIdentifier","src":"19041:3:97"},"nativeSrc":"19041:18:97","nodeType":"YulFunctionCall","src":"19041:18:97"},"variableNames":[{"name":"tail","nativeSrc":"19033:4:97","nodeType":"YulIdentifier","src":"19033:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_cfe15a20060cae4027edaeadac99a28b9a581999e01bac9619e7f52b82ee25ac__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"18715:350:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18866:9:97","nodeType":"YulTypedName","src":"18866:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18880:4:97","nodeType":"YulTypedName","src":"18880:4:97","type":""}],"src":"18715:350:97"},{"body":{"nativeSrc":"19125:65:97","nodeType":"YulBlock","src":"19125:65:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19142:1:97","nodeType":"YulLiteral","src":"19142:1:97","type":"","value":"0"},{"name":"ptr","nativeSrc":"19145:3:97","nodeType":"YulIdentifier","src":"19145:3:97"}],"functionName":{"name":"mstore","nativeSrc":"19135:6:97","nodeType":"YulIdentifier","src":"19135:6:97"},"nativeSrc":"19135:14:97","nodeType":"YulFunctionCall","src":"19135:14:97"},"nativeSrc":"19135:14:97","nodeType":"YulExpressionStatement","src":"19135:14:97"},{"nativeSrc":"19158:26:97","nodeType":"YulAssignment","src":"19158:26:97","value":{"arguments":[{"kind":"number","nativeSrc":"19176:1:97","nodeType":"YulLiteral","src":"19176:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"19179:4:97","nodeType":"YulLiteral","src":"19179:4:97","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"19166:9:97","nodeType":"YulIdentifier","src":"19166:9:97"},"nativeSrc":"19166:18:97","nodeType":"YulFunctionCall","src":"19166:18:97"},"variableNames":[{"name":"data","nativeSrc":"19158:4:97","nodeType":"YulIdentifier","src":"19158:4:97"}]}]},"name":"array_dataslot_bytes_storage","nativeSrc":"19070:120:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"19108:3:97","nodeType":"YulTypedName","src":"19108:3:97","type":""}],"returnVariables":[{"name":"data","nativeSrc":"19116:4:97","nodeType":"YulTypedName","src":"19116:4:97","type":""}],"src":"19070:120:97"},{"body":{"nativeSrc":"19275:462:97","nodeType":"YulBlock","src":"19275:462:97","statements":[{"body":{"nativeSrc":"19308:423:97","nodeType":"YulBlock","src":"19308:423:97","statements":[{"nativeSrc":"19322:11:97","nodeType":"YulVariableDeclaration","src":"19322:11:97","value":{"kind":"number","nativeSrc":"19332:1:97","nodeType":"YulLiteral","src":"19332:1:97","type":"","value":"0"},"variables":[{"name":"_1","nativeSrc":"19326:2:97","nodeType":"YulTypedName","src":"19326:2:97","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19353:1:97","nodeType":"YulLiteral","src":"19353:1:97","type":"","value":"0"},{"name":"array","nativeSrc":"19356:5:97","nodeType":"YulIdentifier","src":"19356:5:97"}],"functionName":{"name":"mstore","nativeSrc":"19346:6:97","nodeType":"YulIdentifier","src":"19346:6:97"},"nativeSrc":"19346:16:97","nodeType":"YulFunctionCall","src":"19346:16:97"},"nativeSrc":"19346:16:97","nodeType":"YulExpressionStatement","src":"19346:16:97"},{"nativeSrc":"19375:30:97","nodeType":"YulVariableDeclaration","src":"19375:30:97","value":{"arguments":[{"kind":"number","nativeSrc":"19397:1:97","nodeType":"YulLiteral","src":"19397:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"19400:4:97","nodeType":"YulLiteral","src":"19400:4:97","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"19387:9:97","nodeType":"YulIdentifier","src":"19387:9:97"},"nativeSrc":"19387:18:97","nodeType":"YulFunctionCall","src":"19387:18:97"},"variables":[{"name":"data","nativeSrc":"19379:4:97","nodeType":"YulTypedName","src":"19379:4:97","type":""}]},{"nativeSrc":"19418:57:97","nodeType":"YulVariableDeclaration","src":"19418:57:97","value":{"arguments":[{"name":"data","nativeSrc":"19441:4:97","nodeType":"YulIdentifier","src":"19441:4:97"},{"arguments":[{"kind":"number","nativeSrc":"19451:1:97","nodeType":"YulLiteral","src":"19451:1:97","type":"","value":"5"},{"arguments":[{"name":"startIndex","nativeSrc":"19458:10:97","nodeType":"YulIdentifier","src":"19458:10:97"},{"kind":"number","nativeSrc":"19470:2:97","nodeType":"YulLiteral","src":"19470:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"19454:3:97","nodeType":"YulIdentifier","src":"19454:3:97"},"nativeSrc":"19454:19:97","nodeType":"YulFunctionCall","src":"19454:19:97"}],"functionName":{"name":"shr","nativeSrc":"19447:3:97","nodeType":"YulIdentifier","src":"19447:3:97"},"nativeSrc":"19447:27:97","nodeType":"YulFunctionCall","src":"19447:27:97"}],"functionName":{"name":"add","nativeSrc":"19437:3:97","nodeType":"YulIdentifier","src":"19437:3:97"},"nativeSrc":"19437:38:97","nodeType":"YulFunctionCall","src":"19437:38:97"},"variables":[{"name":"deleteStart","nativeSrc":"19422:11:97","nodeType":"YulTypedName","src":"19422:11:97","type":""}]},{"body":{"nativeSrc":"19512:23:97","nodeType":"YulBlock","src":"19512:23:97","statements":[{"nativeSrc":"19514:19:97","nodeType":"YulAssignment","src":"19514:19:97","value":{"name":"data","nativeSrc":"19529:4:97","nodeType":"YulIdentifier","src":"19529:4:97"},"variableNames":[{"name":"deleteStart","nativeSrc":"19514:11:97","nodeType":"YulIdentifier","src":"19514:11:97"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"19494:10:97","nodeType":"YulIdentifier","src":"19494:10:97"},{"kind":"number","nativeSrc":"19506:4:97","nodeType":"YulLiteral","src":"19506:4:97","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"19491:2:97","nodeType":"YulIdentifier","src":"19491:2:97"},"nativeSrc":"19491:20:97","nodeType":"YulFunctionCall","src":"19491:20:97"},"nativeSrc":"19488:47:97","nodeType":"YulIf","src":"19488:47:97"},{"nativeSrc":"19548:41:97","nodeType":"YulVariableDeclaration","src":"19548:41:97","value":{"arguments":[{"name":"data","nativeSrc":"19562:4:97","nodeType":"YulIdentifier","src":"19562:4:97"},{"arguments":[{"kind":"number","nativeSrc":"19572:1:97","nodeType":"YulLiteral","src":"19572:1:97","type":"","value":"5"},{"arguments":[{"name":"len","nativeSrc":"19579:3:97","nodeType":"YulIdentifier","src":"19579:3:97"},{"kind":"number","nativeSrc":"19584:2:97","nodeType":"YulLiteral","src":"19584:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"19575:3:97","nodeType":"YulIdentifier","src":"19575:3:97"},"nativeSrc":"19575:12:97","nodeType":"YulFunctionCall","src":"19575:12:97"}],"functionName":{"name":"shr","nativeSrc":"19568:3:97","nodeType":"YulIdentifier","src":"19568:3:97"},"nativeSrc":"19568:20:97","nodeType":"YulFunctionCall","src":"19568:20:97"}],"functionName":{"name":"add","nativeSrc":"19558:3:97","nodeType":"YulIdentifier","src":"19558:3:97"},"nativeSrc":"19558:31:97","nodeType":"YulFunctionCall","src":"19558:31:97"},"variables":[{"name":"_2","nativeSrc":"19552:2:97","nodeType":"YulTypedName","src":"19552:2:97","type":""}]},{"nativeSrc":"19602:24:97","nodeType":"YulVariableDeclaration","src":"19602:24:97","value":{"name":"deleteStart","nativeSrc":"19615:11:97","nodeType":"YulIdentifier","src":"19615:11:97"},"variables":[{"name":"start","nativeSrc":"19606:5:97","nodeType":"YulTypedName","src":"19606:5:97","type":""}]},{"body":{"nativeSrc":"19700:21:97","nodeType":"YulBlock","src":"19700:21:97","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"19709:5:97","nodeType":"YulIdentifier","src":"19709:5:97"},{"name":"_1","nativeSrc":"19716:2:97","nodeType":"YulIdentifier","src":"19716:2:97"}],"functionName":{"name":"sstore","nativeSrc":"19702:6:97","nodeType":"YulIdentifier","src":"19702:6:97"},"nativeSrc":"19702:17:97","nodeType":"YulFunctionCall","src":"19702:17:97"},"nativeSrc":"19702:17:97","nodeType":"YulExpressionStatement","src":"19702:17:97"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"19650:5:97","nodeType":"YulIdentifier","src":"19650:5:97"},{"name":"_2","nativeSrc":"19657:2:97","nodeType":"YulIdentifier","src":"19657:2:97"}],"functionName":{"name":"lt","nativeSrc":"19647:2:97","nodeType":"YulIdentifier","src":"19647:2:97"},"nativeSrc":"19647:13:97","nodeType":"YulFunctionCall","src":"19647:13:97"},"nativeSrc":"19639:82:97","nodeType":"YulForLoop","post":{"nativeSrc":"19661:26:97","nodeType":"YulBlock","src":"19661:26:97","statements":[{"nativeSrc":"19663:22:97","nodeType":"YulAssignment","src":"19663:22:97","value":{"arguments":[{"name":"start","nativeSrc":"19676:5:97","nodeType":"YulIdentifier","src":"19676:5:97"},{"kind":"number","nativeSrc":"19683:1:97","nodeType":"YulLiteral","src":"19683:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"19672:3:97","nodeType":"YulIdentifier","src":"19672:3:97"},"nativeSrc":"19672:13:97","nodeType":"YulFunctionCall","src":"19672:13:97"},"variableNames":[{"name":"start","nativeSrc":"19663:5:97","nodeType":"YulIdentifier","src":"19663:5:97"}]}]},"pre":{"nativeSrc":"19643:3:97","nodeType":"YulBlock","src":"19643:3:97","statements":[]},"src":"19639:82:97"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"19291:3:97","nodeType":"YulIdentifier","src":"19291:3:97"},{"kind":"number","nativeSrc":"19296:2:97","nodeType":"YulLiteral","src":"19296:2:97","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"19288:2:97","nodeType":"YulIdentifier","src":"19288:2:97"},"nativeSrc":"19288:11:97","nodeType":"YulFunctionCall","src":"19288:11:97"},"nativeSrc":"19285:446:97","nodeType":"YulIf","src":"19285:446:97"}]},"name":"clean_up_bytearray_end_slots_bytes_storage","nativeSrc":"19195:542:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"19247:5:97","nodeType":"YulTypedName","src":"19247:5:97","type":""},{"name":"len","nativeSrc":"19254:3:97","nodeType":"YulTypedName","src":"19254:3:97","type":""},{"name":"startIndex","nativeSrc":"19259:10:97","nodeType":"YulTypedName","src":"19259:10:97","type":""}],"src":"19195:542:97"},{"body":{"nativeSrc":"19827:141:97","nodeType":"YulBlock","src":"19827:141:97","statements":[{"nativeSrc":"19837:125:97","nodeType":"YulAssignment","src":"19837:125:97","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"19852:4:97","nodeType":"YulIdentifier","src":"19852:4:97"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"19870:1:97","nodeType":"YulLiteral","src":"19870:1:97","type":"","value":"3"},{"name":"len","nativeSrc":"19873:3:97","nodeType":"YulIdentifier","src":"19873:3:97"}],"functionName":{"name":"shl","nativeSrc":"19866:3:97","nodeType":"YulIdentifier","src":"19866:3:97"},"nativeSrc":"19866:11:97","nodeType":"YulFunctionCall","src":"19866:11:97"},{"kind":"number","nativeSrc":"19879:66:97","nodeType":"YulLiteral","src":"19879:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shr","nativeSrc":"19862:3:97","nodeType":"YulIdentifier","src":"19862:3:97"},"nativeSrc":"19862:84:97","nodeType":"YulFunctionCall","src":"19862:84:97"}],"functionName":{"name":"not","nativeSrc":"19858:3:97","nodeType":"YulIdentifier","src":"19858:3:97"},"nativeSrc":"19858:89:97","nodeType":"YulFunctionCall","src":"19858:89:97"}],"functionName":{"name":"and","nativeSrc":"19848:3:97","nodeType":"YulIdentifier","src":"19848:3:97"},"nativeSrc":"19848:100:97","nodeType":"YulFunctionCall","src":"19848:100:97"},{"arguments":[{"kind":"number","nativeSrc":"19954:1:97","nodeType":"YulLiteral","src":"19954:1:97","type":"","value":"1"},{"name":"len","nativeSrc":"19957:3:97","nodeType":"YulIdentifier","src":"19957:3:97"}],"functionName":{"name":"shl","nativeSrc":"19950:3:97","nodeType":"YulIdentifier","src":"19950:3:97"},"nativeSrc":"19950:11:97","nodeType":"YulFunctionCall","src":"19950:11:97"}],"functionName":{"name":"or","nativeSrc":"19845:2:97","nodeType":"YulIdentifier","src":"19845:2:97"},"nativeSrc":"19845:117:97","nodeType":"YulFunctionCall","src":"19845:117:97"},"variableNames":[{"name":"used","nativeSrc":"19837:4:97","nodeType":"YulIdentifier","src":"19837:4:97"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"19742:226:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"19804:4:97","nodeType":"YulTypedName","src":"19804:4:97","type":""},{"name":"len","nativeSrc":"19810:3:97","nodeType":"YulTypedName","src":"19810:3:97","type":""}],"returnVariables":[{"name":"used","nativeSrc":"19818:4:97","nodeType":"YulTypedName","src":"19818:4:97","type":""}],"src":"19742:226:97"},{"body":{"nativeSrc":"20067:1366:97","nodeType":"YulBlock","src":"20067:1366:97","statements":[{"nativeSrc":"20077:24:97","nodeType":"YulVariableDeclaration","src":"20077:24:97","value":{"arguments":[{"name":"src","nativeSrc":"20097:3:97","nodeType":"YulIdentifier","src":"20097:3:97"}],"functionName":{"name":"mload","nativeSrc":"20091:5:97","nodeType":"YulIdentifier","src":"20091:5:97"},"nativeSrc":"20091:10:97","nodeType":"YulFunctionCall","src":"20091:10:97"},"variables":[{"name":"newLen","nativeSrc":"20081:6:97","nodeType":"YulTypedName","src":"20081:6:97","type":""}]},{"body":{"nativeSrc":"20144:22:97","nodeType":"YulBlock","src":"20144:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"20146:16:97","nodeType":"YulIdentifier","src":"20146:16:97"},"nativeSrc":"20146:18:97","nodeType":"YulFunctionCall","src":"20146:18:97"},"nativeSrc":"20146:18:97","nodeType":"YulExpressionStatement","src":"20146:18:97"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"20116:6:97","nodeType":"YulIdentifier","src":"20116:6:97"},{"kind":"number","nativeSrc":"20124:18:97","nodeType":"YulLiteral","src":"20124:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"20113:2:97","nodeType":"YulIdentifier","src":"20113:2:97"},"nativeSrc":"20113:30:97","nodeType":"YulFunctionCall","src":"20113:30:97"},"nativeSrc":"20110:56:97","nodeType":"YulIf","src":"20110:56:97"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"20218:4:97","nodeType":"YulIdentifier","src":"20218:4:97"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"20256:4:97","nodeType":"YulIdentifier","src":"20256:4:97"}],"functionName":{"name":"sload","nativeSrc":"20250:5:97","nodeType":"YulIdentifier","src":"20250:5:97"},"nativeSrc":"20250:11:97","nodeType":"YulFunctionCall","src":"20250:11:97"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"20224:25:97","nodeType":"YulIdentifier","src":"20224:25:97"},"nativeSrc":"20224:38:97","nodeType":"YulFunctionCall","src":"20224:38:97"},{"name":"newLen","nativeSrc":"20264:6:97","nodeType":"YulIdentifier","src":"20264:6:97"}],"functionName":{"name":"clean_up_bytearray_end_slots_bytes_storage","nativeSrc":"20175:42:97","nodeType":"YulIdentifier","src":"20175:42:97"},"nativeSrc":"20175:96:97","nodeType":"YulFunctionCall","src":"20175:96:97"},"nativeSrc":"20175:96:97","nodeType":"YulExpressionStatement","src":"20175:96:97"},{"nativeSrc":"20280:18:97","nodeType":"YulVariableDeclaration","src":"20280:18:97","value":{"kind":"number","nativeSrc":"20297:1:97","nodeType":"YulLiteral","src":"20297:1:97","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"20284:9:97","nodeType":"YulTypedName","src":"20284:9:97","type":""}]},{"nativeSrc":"20307:23:97","nodeType":"YulVariableDeclaration","src":"20307:23:97","value":{"kind":"number","nativeSrc":"20326:4:97","nodeType":"YulLiteral","src":"20326:4:97","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nativeSrc":"20311:11:97","nodeType":"YulTypedName","src":"20311:11:97","type":""}]},{"nativeSrc":"20339:17:97","nodeType":"YulAssignment","src":"20339:17:97","value":{"kind":"number","nativeSrc":"20352:4:97","nodeType":"YulLiteral","src":"20352:4:97","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"20339:9:97","nodeType":"YulIdentifier","src":"20339:9:97"}]},{"cases":[{"body":{"nativeSrc":"20402:774:97","nodeType":"YulBlock","src":"20402:774:97","statements":[{"nativeSrc":"20416:94:97","nodeType":"YulVariableDeclaration","src":"20416:94:97","value":{"arguments":[{"name":"newLen","nativeSrc":"20435:6:97","nodeType":"YulIdentifier","src":"20435:6:97"},{"kind":"number","nativeSrc":"20443:66:97","nodeType":"YulLiteral","src":"20443:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"20431:3:97","nodeType":"YulIdentifier","src":"20431:3:97"},"nativeSrc":"20431:79:97","nodeType":"YulFunctionCall","src":"20431:79:97"},"variables":[{"name":"loopEnd","nativeSrc":"20420:7:97","nodeType":"YulTypedName","src":"20420:7:97","type":""}]},{"nativeSrc":"20523:48:97","nodeType":"YulVariableDeclaration","src":"20523:48:97","value":{"arguments":[{"name":"slot","nativeSrc":"20566:4:97","nodeType":"YulIdentifier","src":"20566:4:97"}],"functionName":{"name":"array_dataslot_bytes_storage","nativeSrc":"20537:28:97","nodeType":"YulIdentifier","src":"20537:28:97"},"nativeSrc":"20537:34:97","nodeType":"YulFunctionCall","src":"20537:34:97"},"variables":[{"name":"dstPtr","nativeSrc":"20527:6:97","nodeType":"YulTypedName","src":"20527:6:97","type":""}]},{"nativeSrc":"20584:10:97","nodeType":"YulVariableDeclaration","src":"20584:10:97","value":{"kind":"number","nativeSrc":"20593:1:97","nodeType":"YulLiteral","src":"20593:1:97","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"20588:1:97","nodeType":"YulTypedName","src":"20588:1:97","type":""}]},{"body":{"nativeSrc":"20671:172:97","nodeType":"YulBlock","src":"20671:172:97","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"20696:6:97","nodeType":"YulIdentifier","src":"20696:6:97"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"20714:3:97","nodeType":"YulIdentifier","src":"20714:3:97"},{"name":"srcOffset","nativeSrc":"20719:9:97","nodeType":"YulIdentifier","src":"20719:9:97"}],"functionName":{"name":"add","nativeSrc":"20710:3:97","nodeType":"YulIdentifier","src":"20710:3:97"},"nativeSrc":"20710:19:97","nodeType":"YulFunctionCall","src":"20710:19:97"}],"functionName":{"name":"mload","nativeSrc":"20704:5:97","nodeType":"YulIdentifier","src":"20704:5:97"},"nativeSrc":"20704:26:97","nodeType":"YulFunctionCall","src":"20704:26:97"}],"functionName":{"name":"sstore","nativeSrc":"20689:6:97","nodeType":"YulIdentifier","src":"20689:6:97"},"nativeSrc":"20689:42:97","nodeType":"YulFunctionCall","src":"20689:42:97"},"nativeSrc":"20689:42:97","nodeType":"YulExpressionStatement","src":"20689:42:97"},{"nativeSrc":"20748:24:97","nodeType":"YulAssignment","src":"20748:24:97","value":{"arguments":[{"name":"dstPtr","nativeSrc":"20762:6:97","nodeType":"YulIdentifier","src":"20762:6:97"},{"kind":"number","nativeSrc":"20770:1:97","nodeType":"YulLiteral","src":"20770:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"20758:3:97","nodeType":"YulIdentifier","src":"20758:3:97"},"nativeSrc":"20758:14:97","nodeType":"YulFunctionCall","src":"20758:14:97"},"variableNames":[{"name":"dstPtr","nativeSrc":"20748:6:97","nodeType":"YulIdentifier","src":"20748:6:97"}]},{"nativeSrc":"20789:40:97","nodeType":"YulAssignment","src":"20789:40:97","value":{"arguments":[{"name":"srcOffset","nativeSrc":"20806:9:97","nodeType":"YulIdentifier","src":"20806:9:97"},{"name":"srcOffset_1","nativeSrc":"20817:11:97","nodeType":"YulIdentifier","src":"20817:11:97"}],"functionName":{"name":"add","nativeSrc":"20802:3:97","nodeType":"YulIdentifier","src":"20802:3:97"},"nativeSrc":"20802:27:97","nodeType":"YulFunctionCall","src":"20802:27:97"},"variableNames":[{"name":"srcOffset","nativeSrc":"20789:9:97","nodeType":"YulIdentifier","src":"20789:9:97"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"20618:1:97","nodeType":"YulIdentifier","src":"20618:1:97"},{"name":"loopEnd","nativeSrc":"20621:7:97","nodeType":"YulIdentifier","src":"20621:7:97"}],"functionName":{"name":"lt","nativeSrc":"20615:2:97","nodeType":"YulIdentifier","src":"20615:2:97"},"nativeSrc":"20615:14:97","nodeType":"YulFunctionCall","src":"20615:14:97"},"nativeSrc":"20607:236:97","nodeType":"YulForLoop","post":{"nativeSrc":"20630:28:97","nodeType":"YulBlock","src":"20630:28:97","statements":[{"nativeSrc":"20632:24:97","nodeType":"YulAssignment","src":"20632:24:97","value":{"arguments":[{"name":"i","nativeSrc":"20641:1:97","nodeType":"YulIdentifier","src":"20641:1:97"},{"name":"srcOffset_1","nativeSrc":"20644:11:97","nodeType":"YulIdentifier","src":"20644:11:97"}],"functionName":{"name":"add","nativeSrc":"20637:3:97","nodeType":"YulIdentifier","src":"20637:3:97"},"nativeSrc":"20637:19:97","nodeType":"YulFunctionCall","src":"20637:19:97"},"variableNames":[{"name":"i","nativeSrc":"20632:1:97","nodeType":"YulIdentifier","src":"20632:1:97"}]}]},"pre":{"nativeSrc":"20611:3:97","nodeType":"YulBlock","src":"20611:3:97","statements":[]},"src":"20607:236:97"},{"body":{"nativeSrc":"20891:226:97","nodeType":"YulBlock","src":"20891:226:97","statements":[{"nativeSrc":"20909:43:97","nodeType":"YulVariableDeclaration","src":"20909:43:97","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"20936:3:97","nodeType":"YulIdentifier","src":"20936:3:97"},{"name":"srcOffset","nativeSrc":"20941:9:97","nodeType":"YulIdentifier","src":"20941:9:97"}],"functionName":{"name":"add","nativeSrc":"20932:3:97","nodeType":"YulIdentifier","src":"20932:3:97"},"nativeSrc":"20932:19:97","nodeType":"YulFunctionCall","src":"20932:19:97"}],"functionName":{"name":"mload","nativeSrc":"20926:5:97","nodeType":"YulIdentifier","src":"20926:5:97"},"nativeSrc":"20926:26:97","nodeType":"YulFunctionCall","src":"20926:26:97"},"variables":[{"name":"lastValue","nativeSrc":"20913:9:97","nodeType":"YulTypedName","src":"20913:9:97","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"20976:6:97","nodeType":"YulIdentifier","src":"20976:6:97"},{"arguments":[{"name":"lastValue","nativeSrc":"20988:9:97","nodeType":"YulIdentifier","src":"20988:9:97"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"21015:1:97","nodeType":"YulLiteral","src":"21015:1:97","type":"","value":"3"},{"name":"newLen","nativeSrc":"21018:6:97","nodeType":"YulIdentifier","src":"21018:6:97"}],"functionName":{"name":"shl","nativeSrc":"21011:3:97","nodeType":"YulIdentifier","src":"21011:3:97"},"nativeSrc":"21011:14:97","nodeType":"YulFunctionCall","src":"21011:14:97"},{"kind":"number","nativeSrc":"21027:3:97","nodeType":"YulLiteral","src":"21027:3:97","type":"","value":"248"}],"functionName":{"name":"and","nativeSrc":"21007:3:97","nodeType":"YulIdentifier","src":"21007:3:97"},"nativeSrc":"21007:24:97","nodeType":"YulFunctionCall","src":"21007:24:97"},{"kind":"number","nativeSrc":"21033:66:97","nodeType":"YulLiteral","src":"21033:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shr","nativeSrc":"21003:3:97","nodeType":"YulIdentifier","src":"21003:3:97"},"nativeSrc":"21003:97:97","nodeType":"YulFunctionCall","src":"21003:97:97"}],"functionName":{"name":"not","nativeSrc":"20999:3:97","nodeType":"YulIdentifier","src":"20999:3:97"},"nativeSrc":"20999:102:97","nodeType":"YulFunctionCall","src":"20999:102:97"}],"functionName":{"name":"and","nativeSrc":"20984:3:97","nodeType":"YulIdentifier","src":"20984:3:97"},"nativeSrc":"20984:118:97","nodeType":"YulFunctionCall","src":"20984:118:97"}],"functionName":{"name":"sstore","nativeSrc":"20969:6:97","nodeType":"YulIdentifier","src":"20969:6:97"},"nativeSrc":"20969:134:97","nodeType":"YulFunctionCall","src":"20969:134:97"},"nativeSrc":"20969:134:97","nodeType":"YulExpressionStatement","src":"20969:134:97"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"20862:7:97","nodeType":"YulIdentifier","src":"20862:7:97"},{"name":"newLen","nativeSrc":"20871:6:97","nodeType":"YulIdentifier","src":"20871:6:97"}],"functionName":{"name":"lt","nativeSrc":"20859:2:97","nodeType":"YulIdentifier","src":"20859:2:97"},"nativeSrc":"20859:19:97","nodeType":"YulFunctionCall","src":"20859:19:97"},"nativeSrc":"20856:261:97","nodeType":"YulIf","src":"20856:261:97"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"21137:4:97","nodeType":"YulIdentifier","src":"21137:4:97"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"21151:1:97","nodeType":"YulLiteral","src":"21151:1:97","type":"","value":"1"},{"name":"newLen","nativeSrc":"21154:6:97","nodeType":"YulIdentifier","src":"21154:6:97"}],"functionName":{"name":"shl","nativeSrc":"21147:3:97","nodeType":"YulIdentifier","src":"21147:3:97"},"nativeSrc":"21147:14:97","nodeType":"YulFunctionCall","src":"21147:14:97"},{"kind":"number","nativeSrc":"21163:1:97","nodeType":"YulLiteral","src":"21163:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"21143:3:97","nodeType":"YulIdentifier","src":"21143:3:97"},"nativeSrc":"21143:22:97","nodeType":"YulFunctionCall","src":"21143:22:97"}],"functionName":{"name":"sstore","nativeSrc":"21130:6:97","nodeType":"YulIdentifier","src":"21130:6:97"},"nativeSrc":"21130:36:97","nodeType":"YulFunctionCall","src":"21130:36:97"},"nativeSrc":"21130:36:97","nodeType":"YulExpressionStatement","src":"21130:36:97"}]},"nativeSrc":"20395:781:97","nodeType":"YulCase","src":"20395:781:97","value":{"kind":"number","nativeSrc":"20400:1:97","nodeType":"YulLiteral","src":"20400:1:97","type":"","value":"1"}},{"body":{"nativeSrc":"21193:234:97","nodeType":"YulBlock","src":"21193:234:97","statements":[{"nativeSrc":"21207:14:97","nodeType":"YulVariableDeclaration","src":"21207:14:97","value":{"kind":"number","nativeSrc":"21220:1:97","nodeType":"YulLiteral","src":"21220:1:97","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"21211:5:97","nodeType":"YulTypedName","src":"21211:5:97","type":""}]},{"body":{"nativeSrc":"21256:67:97","nodeType":"YulBlock","src":"21256:67:97","statements":[{"nativeSrc":"21274:35:97","nodeType":"YulAssignment","src":"21274:35:97","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"21293:3:97","nodeType":"YulIdentifier","src":"21293:3:97"},{"name":"srcOffset","nativeSrc":"21298:9:97","nodeType":"YulIdentifier","src":"21298:9:97"}],"functionName":{"name":"add","nativeSrc":"21289:3:97","nodeType":"YulIdentifier","src":"21289:3:97"},"nativeSrc":"21289:19:97","nodeType":"YulFunctionCall","src":"21289:19:97"}],"functionName":{"name":"mload","nativeSrc":"21283:5:97","nodeType":"YulIdentifier","src":"21283:5:97"},"nativeSrc":"21283:26:97","nodeType":"YulFunctionCall","src":"21283:26:97"},"variableNames":[{"name":"value","nativeSrc":"21274:5:97","nodeType":"YulIdentifier","src":"21274:5:97"}]}]},"condition":{"name":"newLen","nativeSrc":"21237:6:97","nodeType":"YulIdentifier","src":"21237:6:97"},"nativeSrc":"21234:89:97","nodeType":"YulIf","src":"21234:89:97"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"21343:4:97","nodeType":"YulIdentifier","src":"21343:4:97"},{"arguments":[{"name":"value","nativeSrc":"21402:5:97","nodeType":"YulIdentifier","src":"21402:5:97"},{"name":"newLen","nativeSrc":"21409:6:97","nodeType":"YulIdentifier","src":"21409:6:97"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"21349:52:97","nodeType":"YulIdentifier","src":"21349:52:97"},"nativeSrc":"21349:67:97","nodeType":"YulFunctionCall","src":"21349:67:97"}],"functionName":{"name":"sstore","nativeSrc":"21336:6:97","nodeType":"YulIdentifier","src":"21336:6:97"},"nativeSrc":"21336:81:97","nodeType":"YulFunctionCall","src":"21336:81:97"},"nativeSrc":"21336:81:97","nodeType":"YulExpressionStatement","src":"21336:81:97"}]},"nativeSrc":"21185:242:97","nodeType":"YulCase","src":"21185:242:97","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"20375:6:97","nodeType":"YulIdentifier","src":"20375:6:97"},{"kind":"number","nativeSrc":"20383:2:97","nodeType":"YulLiteral","src":"20383:2:97","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"20372:2:97","nodeType":"YulIdentifier","src":"20372:2:97"},"nativeSrc":"20372:14:97","nodeType":"YulFunctionCall","src":"20372:14:97"},"nativeSrc":"20365:1062:97","nodeType":"YulSwitch","src":"20365:1062:97"}]},"name":"copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage","nativeSrc":"19973:1460:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"20052:4:97","nodeType":"YulTypedName","src":"20052:4:97","type":""},{"name":"src","nativeSrc":"20058:3:97","nodeType":"YulTypedName","src":"20058:3:97","type":""}],"src":"19973:1460:97"},{"body":{"nativeSrc":"21487:79:97","nodeType":"YulBlock","src":"21487:79:97","statements":[{"nativeSrc":"21497:17:97","nodeType":"YulAssignment","src":"21497:17:97","value":{"arguments":[{"name":"x","nativeSrc":"21509:1:97","nodeType":"YulIdentifier","src":"21509:1:97"},{"name":"y","nativeSrc":"21512:1:97","nodeType":"YulIdentifier","src":"21512:1:97"}],"functionName":{"name":"sub","nativeSrc":"21505:3:97","nodeType":"YulIdentifier","src":"21505:3:97"},"nativeSrc":"21505:9:97","nodeType":"YulFunctionCall","src":"21505:9:97"},"variableNames":[{"name":"diff","nativeSrc":"21497:4:97","nodeType":"YulIdentifier","src":"21497:4:97"}]},{"body":{"nativeSrc":"21538:22:97","nodeType":"YulBlock","src":"21538:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"21540:16:97","nodeType":"YulIdentifier","src":"21540:16:97"},"nativeSrc":"21540:18:97","nodeType":"YulFunctionCall","src":"21540:18:97"},"nativeSrc":"21540:18:97","nodeType":"YulExpressionStatement","src":"21540:18:97"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"21529:4:97","nodeType":"YulIdentifier","src":"21529:4:97"},{"name":"x","nativeSrc":"21535:1:97","nodeType":"YulIdentifier","src":"21535:1:97"}],"functionName":{"name":"gt","nativeSrc":"21526:2:97","nodeType":"YulIdentifier","src":"21526:2:97"},"nativeSrc":"21526:11:97","nodeType":"YulFunctionCall","src":"21526:11:97"},"nativeSrc":"21523:37:97","nodeType":"YulIf","src":"21523:37:97"}]},"name":"checked_sub_t_uint256","nativeSrc":"21438:128:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"21469:1:97","nodeType":"YulTypedName","src":"21469:1:97","type":""},{"name":"y","nativeSrc":"21472:1:97","nodeType":"YulTypedName","src":"21472:1:97","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"21478:4:97","nodeType":"YulTypedName","src":"21478:4:97","type":""}],"src":"21438:128:97"},{"body":{"nativeSrc":"21603:152:97","nodeType":"YulBlock","src":"21603:152:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"21620:1:97","nodeType":"YulLiteral","src":"21620:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"21623:77:97","nodeType":"YulLiteral","src":"21623:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"21613:6:97","nodeType":"YulIdentifier","src":"21613:6:97"},"nativeSrc":"21613:88:97","nodeType":"YulFunctionCall","src":"21613:88:97"},"nativeSrc":"21613:88:97","nodeType":"YulExpressionStatement","src":"21613:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21717:1:97","nodeType":"YulLiteral","src":"21717:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"21720:4:97","nodeType":"YulLiteral","src":"21720:4:97","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"21710:6:97","nodeType":"YulIdentifier","src":"21710:6:97"},"nativeSrc":"21710:15:97","nodeType":"YulFunctionCall","src":"21710:15:97"},"nativeSrc":"21710:15:97","nodeType":"YulExpressionStatement","src":"21710:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21741:1:97","nodeType":"YulLiteral","src":"21741:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"21744:4:97","nodeType":"YulLiteral","src":"21744:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"21734:6:97","nodeType":"YulIdentifier","src":"21734:6:97"},"nativeSrc":"21734:15:97","nodeType":"YulFunctionCall","src":"21734:15:97"},"nativeSrc":"21734:15:97","nodeType":"YulExpressionStatement","src":"21734:15:97"}]},"name":"panic_error_0x32","nativeSrc":"21571:184:97","nodeType":"YulFunctionDefinition","src":"21571:184:97"},{"body":{"nativeSrc":"21851:1454:97","nodeType":"YulBlock","src":"21851:1454:97","statements":[{"body":{"nativeSrc":"21878:9:97","nodeType":"YulBlock","src":"21878:9:97","statements":[{"nativeSrc":"21880:5:97","nodeType":"YulLeave","src":"21880:5:97"}]},"condition":{"arguments":[{"name":"slot","nativeSrc":"21867:4:97","nodeType":"YulIdentifier","src":"21867:4:97"},{"name":"src","nativeSrc":"21873:3:97","nodeType":"YulIdentifier","src":"21873:3:97"}],"functionName":{"name":"eq","nativeSrc":"21864:2:97","nodeType":"YulIdentifier","src":"21864:2:97"},"nativeSrc":"21864:13:97","nodeType":"YulFunctionCall","src":"21864:13:97"},"nativeSrc":"21861:26:97","nodeType":"YulIf","src":"21861:26:97"},{"nativeSrc":"21896:51:97","nodeType":"YulVariableDeclaration","src":"21896:51:97","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"21942:3:97","nodeType":"YulIdentifier","src":"21942:3:97"}],"functionName":{"name":"sload","nativeSrc":"21936:5:97","nodeType":"YulIdentifier","src":"21936:5:97"},"nativeSrc":"21936:10:97","nodeType":"YulFunctionCall","src":"21936:10:97"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"21910:25:97","nodeType":"YulIdentifier","src":"21910:25:97"},"nativeSrc":"21910:37:97","nodeType":"YulFunctionCall","src":"21910:37:97"},"variables":[{"name":"newLen","nativeSrc":"21900:6:97","nodeType":"YulTypedName","src":"21900:6:97","type":""}]},{"body":{"nativeSrc":"21990:22:97","nodeType":"YulBlock","src":"21990:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"21992:16:97","nodeType":"YulIdentifier","src":"21992:16:97"},"nativeSrc":"21992:18:97","nodeType":"YulFunctionCall","src":"21992:18:97"},"nativeSrc":"21992:18:97","nodeType":"YulExpressionStatement","src":"21992:18:97"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"21962:6:97","nodeType":"YulIdentifier","src":"21962:6:97"},{"kind":"number","nativeSrc":"21970:18:97","nodeType":"YulLiteral","src":"21970:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"21959:2:97","nodeType":"YulIdentifier","src":"21959:2:97"},"nativeSrc":"21959:30:97","nodeType":"YulFunctionCall","src":"21959:30:97"},"nativeSrc":"21956:56:97","nodeType":"YulIf","src":"21956:56:97"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"22064:4:97","nodeType":"YulIdentifier","src":"22064:4:97"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"22102:4:97","nodeType":"YulIdentifier","src":"22102:4:97"}],"functionName":{"name":"sload","nativeSrc":"22096:5:97","nodeType":"YulIdentifier","src":"22096:5:97"},"nativeSrc":"22096:11:97","nodeType":"YulFunctionCall","src":"22096:11:97"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"22070:25:97","nodeType":"YulIdentifier","src":"22070:25:97"},"nativeSrc":"22070:38:97","nodeType":"YulFunctionCall","src":"22070:38:97"},{"name":"newLen","nativeSrc":"22110:6:97","nodeType":"YulIdentifier","src":"22110:6:97"}],"functionName":{"name":"clean_up_bytearray_end_slots_bytes_storage","nativeSrc":"22021:42:97","nodeType":"YulIdentifier","src":"22021:42:97"},"nativeSrc":"22021:96:97","nodeType":"YulFunctionCall","src":"22021:96:97"},"nativeSrc":"22021:96:97","nodeType":"YulExpressionStatement","src":"22021:96:97"},{"nativeSrc":"22126:18:97","nodeType":"YulVariableDeclaration","src":"22126:18:97","value":{"kind":"number","nativeSrc":"22143:1:97","nodeType":"YulLiteral","src":"22143:1:97","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"22130:9:97","nodeType":"YulTypedName","src":"22130:9:97","type":""}]},{"cases":[{"body":{"nativeSrc":"22190:858:97","nodeType":"YulBlock","src":"22190:858:97","statements":[{"nativeSrc":"22204:94:97","nodeType":"YulVariableDeclaration","src":"22204:94:97","value":{"arguments":[{"name":"newLen","nativeSrc":"22223:6:97","nodeType":"YulIdentifier","src":"22223:6:97"},{"kind":"number","nativeSrc":"22231:66:97","nodeType":"YulLiteral","src":"22231:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"22219:3:97","nodeType":"YulIdentifier","src":"22219:3:97"},"nativeSrc":"22219:79:97","nodeType":"YulFunctionCall","src":"22219:79:97"},"variables":[{"name":"loopEnd","nativeSrc":"22208:7:97","nodeType":"YulTypedName","src":"22208:7:97","type":""}]},{"nativeSrc":"22311:46:97","nodeType":"YulVariableDeclaration","src":"22311:46:97","value":{"arguments":[{"name":"src","nativeSrc":"22353:3:97","nodeType":"YulIdentifier","src":"22353:3:97"}],"functionName":{"name":"array_dataslot_bytes_storage","nativeSrc":"22324:28:97","nodeType":"YulIdentifier","src":"22324:28:97"},"nativeSrc":"22324:33:97","nodeType":"YulFunctionCall","src":"22324:33:97"},"variables":[{"name":"src_1","nativeSrc":"22315:5:97","nodeType":"YulTypedName","src":"22315:5:97","type":""}]},{"nativeSrc":"22370:48:97","nodeType":"YulVariableDeclaration","src":"22370:48:97","value":{"arguments":[{"name":"slot","nativeSrc":"22413:4:97","nodeType":"YulIdentifier","src":"22413:4:97"}],"functionName":{"name":"array_dataslot_bytes_storage","nativeSrc":"22384:28:97","nodeType":"YulIdentifier","src":"22384:28:97"},"nativeSrc":"22384:34:97","nodeType":"YulFunctionCall","src":"22384:34:97"},"variables":[{"name":"dstPtr","nativeSrc":"22374:6:97","nodeType":"YulTypedName","src":"22374:6:97","type":""}]},{"nativeSrc":"22431:18:97","nodeType":"YulVariableDeclaration","src":"22431:18:97","value":{"name":"srcOffset","nativeSrc":"22440:9:97","nodeType":"YulIdentifier","src":"22440:9:97"},"variables":[{"name":"i","nativeSrc":"22435:1:97","nodeType":"YulTypedName","src":"22435:1:97","type":""}]},{"body":{"nativeSrc":"22519:194:97","nodeType":"YulBlock","src":"22519:194:97","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"22544:6:97","nodeType":"YulIdentifier","src":"22544:6:97"},{"arguments":[{"arguments":[{"name":"src_1","nativeSrc":"22562:5:97","nodeType":"YulIdentifier","src":"22562:5:97"},{"name":"srcOffset","nativeSrc":"22569:9:97","nodeType":"YulIdentifier","src":"22569:9:97"}],"functionName":{"name":"add","nativeSrc":"22558:3:97","nodeType":"YulIdentifier","src":"22558:3:97"},"nativeSrc":"22558:21:97","nodeType":"YulFunctionCall","src":"22558:21:97"}],"functionName":{"name":"sload","nativeSrc":"22552:5:97","nodeType":"YulIdentifier","src":"22552:5:97"},"nativeSrc":"22552:28:97","nodeType":"YulFunctionCall","src":"22552:28:97"}],"functionName":{"name":"sstore","nativeSrc":"22537:6:97","nodeType":"YulIdentifier","src":"22537:6:97"},"nativeSrc":"22537:44:97","nodeType":"YulFunctionCall","src":"22537:44:97"},"nativeSrc":"22537:44:97","nodeType":"YulExpressionStatement","src":"22537:44:97"},{"nativeSrc":"22598:11:97","nodeType":"YulVariableDeclaration","src":"22598:11:97","value":{"kind":"number","nativeSrc":"22608:1:97","nodeType":"YulLiteral","src":"22608:1:97","type":"","value":"1"},"variables":[{"name":"_1","nativeSrc":"22602:2:97","nodeType":"YulTypedName","src":"22602:2:97","type":""}]},{"nativeSrc":"22626:25:97","nodeType":"YulAssignment","src":"22626:25:97","value":{"arguments":[{"name":"dstPtr","nativeSrc":"22640:6:97","nodeType":"YulIdentifier","src":"22640:6:97"},{"name":"_1","nativeSrc":"22648:2:97","nodeType":"YulIdentifier","src":"22648:2:97"}],"functionName":{"name":"add","nativeSrc":"22636:3:97","nodeType":"YulIdentifier","src":"22636:3:97"},"nativeSrc":"22636:15:97","nodeType":"YulFunctionCall","src":"22636:15:97"},"variableNames":[{"name":"dstPtr","nativeSrc":"22626:6:97","nodeType":"YulIdentifier","src":"22626:6:97"}]},{"nativeSrc":"22668:31:97","nodeType":"YulAssignment","src":"22668:31:97","value":{"arguments":[{"name":"srcOffset","nativeSrc":"22685:9:97","nodeType":"YulIdentifier","src":"22685:9:97"},{"name":"_1","nativeSrc":"22696:2:97","nodeType":"YulIdentifier","src":"22696:2:97"}],"functionName":{"name":"add","nativeSrc":"22681:3:97","nodeType":"YulIdentifier","src":"22681:3:97"},"nativeSrc":"22681:18:97","nodeType":"YulFunctionCall","src":"22681:18:97"},"variableNames":[{"name":"srcOffset","nativeSrc":"22668:9:97","nodeType":"YulIdentifier","src":"22668:9:97"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"22473:1:97","nodeType":"YulIdentifier","src":"22473:1:97"},{"name":"loopEnd","nativeSrc":"22476:7:97","nodeType":"YulIdentifier","src":"22476:7:97"}],"functionName":{"name":"lt","nativeSrc":"22470:2:97","nodeType":"YulIdentifier","src":"22470:2:97"},"nativeSrc":"22470:14:97","nodeType":"YulFunctionCall","src":"22470:14:97"},"nativeSrc":"22462:251:97","nodeType":"YulForLoop","post":{"nativeSrc":"22485:21:97","nodeType":"YulBlock","src":"22485:21:97","statements":[{"nativeSrc":"22487:17:97","nodeType":"YulAssignment","src":"22487:17:97","value":{"arguments":[{"name":"i","nativeSrc":"22496:1:97","nodeType":"YulIdentifier","src":"22496:1:97"},{"kind":"number","nativeSrc":"22499:4:97","nodeType":"YulLiteral","src":"22499:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22492:3:97","nodeType":"YulIdentifier","src":"22492:3:97"},"nativeSrc":"22492:12:97","nodeType":"YulFunctionCall","src":"22492:12:97"},"variableNames":[{"name":"i","nativeSrc":"22487:1:97","nodeType":"YulIdentifier","src":"22487:1:97"}]}]},"pre":{"nativeSrc":"22466:3:97","nodeType":"YulBlock","src":"22466:3:97","statements":[]},"src":"22462:251:97"},{"body":{"nativeSrc":"22761:228:97","nodeType":"YulBlock","src":"22761:228:97","statements":[{"nativeSrc":"22779:45:97","nodeType":"YulVariableDeclaration","src":"22779:45:97","value":{"arguments":[{"arguments":[{"name":"src_1","nativeSrc":"22806:5:97","nodeType":"YulIdentifier","src":"22806:5:97"},{"name":"srcOffset","nativeSrc":"22813:9:97","nodeType":"YulIdentifier","src":"22813:9:97"}],"functionName":{"name":"add","nativeSrc":"22802:3:97","nodeType":"YulIdentifier","src":"22802:3:97"},"nativeSrc":"22802:21:97","nodeType":"YulFunctionCall","src":"22802:21:97"}],"functionName":{"name":"sload","nativeSrc":"22796:5:97","nodeType":"YulIdentifier","src":"22796:5:97"},"nativeSrc":"22796:28:97","nodeType":"YulFunctionCall","src":"22796:28:97"},"variables":[{"name":"lastValue","nativeSrc":"22783:9:97","nodeType":"YulTypedName","src":"22783:9:97","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"22848:6:97","nodeType":"YulIdentifier","src":"22848:6:97"},{"arguments":[{"name":"lastValue","nativeSrc":"22860:9:97","nodeType":"YulIdentifier","src":"22860:9:97"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"22887:1:97","nodeType":"YulLiteral","src":"22887:1:97","type":"","value":"3"},{"name":"newLen","nativeSrc":"22890:6:97","nodeType":"YulIdentifier","src":"22890:6:97"}],"functionName":{"name":"shl","nativeSrc":"22883:3:97","nodeType":"YulIdentifier","src":"22883:3:97"},"nativeSrc":"22883:14:97","nodeType":"YulFunctionCall","src":"22883:14:97"},{"kind":"number","nativeSrc":"22899:3:97","nodeType":"YulLiteral","src":"22899:3:97","type":"","value":"248"}],"functionName":{"name":"and","nativeSrc":"22879:3:97","nodeType":"YulIdentifier","src":"22879:3:97"},"nativeSrc":"22879:24:97","nodeType":"YulFunctionCall","src":"22879:24:97"},{"kind":"number","nativeSrc":"22905:66:97","nodeType":"YulLiteral","src":"22905:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shr","nativeSrc":"22875:3:97","nodeType":"YulIdentifier","src":"22875:3:97"},"nativeSrc":"22875:97:97","nodeType":"YulFunctionCall","src":"22875:97:97"}],"functionName":{"name":"not","nativeSrc":"22871:3:97","nodeType":"YulIdentifier","src":"22871:3:97"},"nativeSrc":"22871:102:97","nodeType":"YulFunctionCall","src":"22871:102:97"}],"functionName":{"name":"and","nativeSrc":"22856:3:97","nodeType":"YulIdentifier","src":"22856:3:97"},"nativeSrc":"22856:118:97","nodeType":"YulFunctionCall","src":"22856:118:97"}],"functionName":{"name":"sstore","nativeSrc":"22841:6:97","nodeType":"YulIdentifier","src":"22841:6:97"},"nativeSrc":"22841:134:97","nodeType":"YulFunctionCall","src":"22841:134:97"},"nativeSrc":"22841:134:97","nodeType":"YulExpressionStatement","src":"22841:134:97"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"22732:7:97","nodeType":"YulIdentifier","src":"22732:7:97"},{"name":"newLen","nativeSrc":"22741:6:97","nodeType":"YulIdentifier","src":"22741:6:97"}],"functionName":{"name":"lt","nativeSrc":"22729:2:97","nodeType":"YulIdentifier","src":"22729:2:97"},"nativeSrc":"22729:19:97","nodeType":"YulFunctionCall","src":"22729:19:97"},"nativeSrc":"22726:263:97","nodeType":"YulIf","src":"22726:263:97"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"23009:4:97","nodeType":"YulIdentifier","src":"23009:4:97"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"23023:1:97","nodeType":"YulLiteral","src":"23023:1:97","type":"","value":"1"},{"name":"newLen","nativeSrc":"23026:6:97","nodeType":"YulIdentifier","src":"23026:6:97"}],"functionName":{"name":"shl","nativeSrc":"23019:3:97","nodeType":"YulIdentifier","src":"23019:3:97"},"nativeSrc":"23019:14:97","nodeType":"YulFunctionCall","src":"23019:14:97"},{"kind":"number","nativeSrc":"23035:1:97","nodeType":"YulLiteral","src":"23035:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"23015:3:97","nodeType":"YulIdentifier","src":"23015:3:97"},"nativeSrc":"23015:22:97","nodeType":"YulFunctionCall","src":"23015:22:97"}],"functionName":{"name":"sstore","nativeSrc":"23002:6:97","nodeType":"YulIdentifier","src":"23002:6:97"},"nativeSrc":"23002:36:97","nodeType":"YulFunctionCall","src":"23002:36:97"},"nativeSrc":"23002:36:97","nodeType":"YulExpressionStatement","src":"23002:36:97"}]},"nativeSrc":"22183:865:97","nodeType":"YulCase","src":"22183:865:97","value":{"kind":"number","nativeSrc":"22188:1:97","nodeType":"YulLiteral","src":"22188:1:97","type":"","value":"1"}},{"body":{"nativeSrc":"23065:234:97","nodeType":"YulBlock","src":"23065:234:97","statements":[{"nativeSrc":"23079:14:97","nodeType":"YulVariableDeclaration","src":"23079:14:97","value":{"kind":"number","nativeSrc":"23092:1:97","nodeType":"YulLiteral","src":"23092:1:97","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"23083:5:97","nodeType":"YulTypedName","src":"23083:5:97","type":""}]},{"body":{"nativeSrc":"23128:67:97","nodeType":"YulBlock","src":"23128:67:97","statements":[{"nativeSrc":"23146:35:97","nodeType":"YulAssignment","src":"23146:35:97","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"23165:3:97","nodeType":"YulIdentifier","src":"23165:3:97"},{"name":"srcOffset","nativeSrc":"23170:9:97","nodeType":"YulIdentifier","src":"23170:9:97"}],"functionName":{"name":"add","nativeSrc":"23161:3:97","nodeType":"YulIdentifier","src":"23161:3:97"},"nativeSrc":"23161:19:97","nodeType":"YulFunctionCall","src":"23161:19:97"}],"functionName":{"name":"sload","nativeSrc":"23155:5:97","nodeType":"YulIdentifier","src":"23155:5:97"},"nativeSrc":"23155:26:97","nodeType":"YulFunctionCall","src":"23155:26:97"},"variableNames":[{"name":"value","nativeSrc":"23146:5:97","nodeType":"YulIdentifier","src":"23146:5:97"}]}]},"condition":{"name":"newLen","nativeSrc":"23109:6:97","nodeType":"YulIdentifier","src":"23109:6:97"},"nativeSrc":"23106:89:97","nodeType":"YulIf","src":"23106:89:97"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"23215:4:97","nodeType":"YulIdentifier","src":"23215:4:97"},{"arguments":[{"name":"value","nativeSrc":"23274:5:97","nodeType":"YulIdentifier","src":"23274:5:97"},{"name":"newLen","nativeSrc":"23281:6:97","nodeType":"YulIdentifier","src":"23281:6:97"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"23221:52:97","nodeType":"YulIdentifier","src":"23221:52:97"},"nativeSrc":"23221:67:97","nodeType":"YulFunctionCall","src":"23221:67:97"}],"functionName":{"name":"sstore","nativeSrc":"23208:6:97","nodeType":"YulIdentifier","src":"23208:6:97"},"nativeSrc":"23208:81:97","nodeType":"YulFunctionCall","src":"23208:81:97"},"nativeSrc":"23208:81:97","nodeType":"YulExpressionStatement","src":"23208:81:97"}]},"nativeSrc":"23057:242:97","nodeType":"YulCase","src":"23057:242:97","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"22163:6:97","nodeType":"YulIdentifier","src":"22163:6:97"},{"kind":"number","nativeSrc":"22171:2:97","nodeType":"YulLiteral","src":"22171:2:97","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"22160:2:97","nodeType":"YulIdentifier","src":"22160:2:97"},"nativeSrc":"22160:14:97","nodeType":"YulFunctionCall","src":"22160:14:97"},"nativeSrc":"22153:1146:97","nodeType":"YulSwitch","src":"22153:1146:97"}]},"name":"copy_byte_array_to_storage_from_t_bytes_storage_to_t_bytes_storage","nativeSrc":"21760:1545:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"21836:4:97","nodeType":"YulTypedName","src":"21836:4:97","type":""},{"name":"src","nativeSrc":"21842:3:97","nodeType":"YulTypedName","src":"21842:3:97","type":""}],"src":"21760:1545:97"},{"body":{"nativeSrc":"23621:580:97","nodeType":"YulBlock","src":"23621:580:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"23638:9:97","nodeType":"YulIdentifier","src":"23638:9:97"},{"arguments":[{"name":"value0","nativeSrc":"23653:6:97","nodeType":"YulIdentifier","src":"23653:6:97"},{"kind":"number","nativeSrc":"23661:6:97","nodeType":"YulLiteral","src":"23661:6:97","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"23649:3:97","nodeType":"YulIdentifier","src":"23649:3:97"},"nativeSrc":"23649:19:97","nodeType":"YulFunctionCall","src":"23649:19:97"}],"functionName":{"name":"mstore","nativeSrc":"23631:6:97","nodeType":"YulIdentifier","src":"23631:6:97"},"nativeSrc":"23631:38:97","nodeType":"YulFunctionCall","src":"23631:38:97"},"nativeSrc":"23631:38:97","nodeType":"YulExpressionStatement","src":"23631:38:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23689:9:97","nodeType":"YulIdentifier","src":"23689:9:97"},{"kind":"number","nativeSrc":"23700:2:97","nodeType":"YulLiteral","src":"23700:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"23685:3:97","nodeType":"YulIdentifier","src":"23685:3:97"},"nativeSrc":"23685:18:97","nodeType":"YulFunctionCall","src":"23685:18:97"},{"kind":"number","nativeSrc":"23705:3:97","nodeType":"YulLiteral","src":"23705:3:97","type":"","value":"192"}],"functionName":{"name":"mstore","nativeSrc":"23678:6:97","nodeType":"YulIdentifier","src":"23678:6:97"},"nativeSrc":"23678:31:97","nodeType":"YulFunctionCall","src":"23678:31:97"},"nativeSrc":"23678:31:97","nodeType":"YulExpressionStatement","src":"23678:31:97"},{"nativeSrc":"23718:76:97","nodeType":"YulVariableDeclaration","src":"23718:76:97","value":{"arguments":[{"name":"value1","nativeSrc":"23758:6:97","nodeType":"YulIdentifier","src":"23758:6:97"},{"name":"value2","nativeSrc":"23766:6:97","nodeType":"YulIdentifier","src":"23766:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"23778:9:97","nodeType":"YulIdentifier","src":"23778:9:97"},{"kind":"number","nativeSrc":"23789:3:97","nodeType":"YulLiteral","src":"23789:3:97","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"23774:3:97","nodeType":"YulIdentifier","src":"23774:3:97"},"nativeSrc":"23774:19:97","nodeType":"YulFunctionCall","src":"23774:19:97"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"23732:25:97","nodeType":"YulIdentifier","src":"23732:25:97"},"nativeSrc":"23732:62:97","nodeType":"YulFunctionCall","src":"23732:62:97"},"variables":[{"name":"tail_1","nativeSrc":"23722:6:97","nodeType":"YulTypedName","src":"23722:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23814:9:97","nodeType":"YulIdentifier","src":"23814:9:97"},{"kind":"number","nativeSrc":"23825:2:97","nodeType":"YulLiteral","src":"23825:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"23810:3:97","nodeType":"YulIdentifier","src":"23810:3:97"},"nativeSrc":"23810:18:97","nodeType":"YulFunctionCall","src":"23810:18:97"},{"arguments":[{"name":"value3","nativeSrc":"23834:6:97","nodeType":"YulIdentifier","src":"23834:6:97"},{"kind":"number","nativeSrc":"23842:42:97","nodeType":"YulLiteral","src":"23842:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"23830:3:97","nodeType":"YulIdentifier","src":"23830:3:97"},"nativeSrc":"23830:55:97","nodeType":"YulFunctionCall","src":"23830:55:97"}],"functionName":{"name":"mstore","nativeSrc":"23803:6:97","nodeType":"YulIdentifier","src":"23803:6:97"},"nativeSrc":"23803:83:97","nodeType":"YulFunctionCall","src":"23803:83:97"},"nativeSrc":"23803:83:97","nodeType":"YulExpressionStatement","src":"23803:83:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23906:9:97","nodeType":"YulIdentifier","src":"23906:9:97"},{"kind":"number","nativeSrc":"23917:2:97","nodeType":"YulLiteral","src":"23917:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"23902:3:97","nodeType":"YulIdentifier","src":"23902:3:97"},"nativeSrc":"23902:18:97","nodeType":"YulFunctionCall","src":"23902:18:97"},{"arguments":[{"name":"value4","nativeSrc":"23926:6:97","nodeType":"YulIdentifier","src":"23926:6:97"},{"kind":"number","nativeSrc":"23934:18:97","nodeType":"YulLiteral","src":"23934:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"23922:3:97","nodeType":"YulIdentifier","src":"23922:3:97"},"nativeSrc":"23922:31:97","nodeType":"YulFunctionCall","src":"23922:31:97"}],"functionName":{"name":"mstore","nativeSrc":"23895:6:97","nodeType":"YulIdentifier","src":"23895:6:97"},"nativeSrc":"23895:59:97","nodeType":"YulFunctionCall","src":"23895:59:97"},"nativeSrc":"23895:59:97","nodeType":"YulExpressionStatement","src":"23895:59:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23974:9:97","nodeType":"YulIdentifier","src":"23974:9:97"},{"kind":"number","nativeSrc":"23985:3:97","nodeType":"YulLiteral","src":"23985:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"23970:3:97","nodeType":"YulIdentifier","src":"23970:3:97"},"nativeSrc":"23970:19:97","nodeType":"YulFunctionCall","src":"23970:19:97"},{"arguments":[{"name":"tail_1","nativeSrc":"23995:6:97","nodeType":"YulIdentifier","src":"23995:6:97"},{"name":"headStart","nativeSrc":"24003:9:97","nodeType":"YulIdentifier","src":"24003:9:97"}],"functionName":{"name":"sub","nativeSrc":"23991:3:97","nodeType":"YulIdentifier","src":"23991:3:97"},"nativeSrc":"23991:22:97","nodeType":"YulFunctionCall","src":"23991:22:97"}],"functionName":{"name":"mstore","nativeSrc":"23963:6:97","nodeType":"YulIdentifier","src":"23963:6:97"},"nativeSrc":"23963:51:97","nodeType":"YulFunctionCall","src":"23963:51:97"},"nativeSrc":"23963:51:97","nodeType":"YulExpressionStatement","src":"23963:51:97"},{"nativeSrc":"24023:63:97","nodeType":"YulVariableDeclaration","src":"24023:63:97","value":{"arguments":[{"name":"value5","nativeSrc":"24063:6:97","nodeType":"YulIdentifier","src":"24063:6:97"},{"name":"value6","nativeSrc":"24071:6:97","nodeType":"YulIdentifier","src":"24071:6:97"},{"name":"tail_1","nativeSrc":"24079:6:97","nodeType":"YulIdentifier","src":"24079:6:97"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"24037:25:97","nodeType":"YulIdentifier","src":"24037:25:97"},"nativeSrc":"24037:49:97","nodeType":"YulFunctionCall","src":"24037:49:97"},"variables":[{"name":"tail_2","nativeSrc":"24027:6:97","nodeType":"YulTypedName","src":"24027:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24106:9:97","nodeType":"YulIdentifier","src":"24106:9:97"},{"kind":"number","nativeSrc":"24117:3:97","nodeType":"YulLiteral","src":"24117:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"24102:3:97","nodeType":"YulIdentifier","src":"24102:3:97"},"nativeSrc":"24102:19:97","nodeType":"YulFunctionCall","src":"24102:19:97"},{"arguments":[{"name":"tail_2","nativeSrc":"24127:6:97","nodeType":"YulIdentifier","src":"24127:6:97"},{"name":"headStart","nativeSrc":"24135:9:97","nodeType":"YulIdentifier","src":"24135:9:97"}],"functionName":{"name":"sub","nativeSrc":"24123:3:97","nodeType":"YulIdentifier","src":"24123:3:97"},"nativeSrc":"24123:22:97","nodeType":"YulFunctionCall","src":"24123:22:97"}],"functionName":{"name":"mstore","nativeSrc":"24095:6:97","nodeType":"YulIdentifier","src":"24095:6:97"},"nativeSrc":"24095:51:97","nodeType":"YulFunctionCall","src":"24095:51:97"},"nativeSrc":"24095:51:97","nodeType":"YulExpressionStatement","src":"24095:51:97"},{"nativeSrc":"24155:40:97","nodeType":"YulAssignment","src":"24155:40:97","value":{"arguments":[{"name":"value7","nativeSrc":"24180:6:97","nodeType":"YulIdentifier","src":"24180:6:97"},{"name":"tail_2","nativeSrc":"24188:6:97","nodeType":"YulIdentifier","src":"24188:6:97"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"24163:16:97","nodeType":"YulIdentifier","src":"24163:16:97"},"nativeSrc":"24163:32:97","nodeType":"YulFunctionCall","src":"24163:32:97"},"variableNames":[{"name":"tail","nativeSrc":"24155:4:97","nodeType":"YulIdentifier","src":"24155:4:97"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_address_t_uint64_t_bytes_calldata_ptr_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"23310:891:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"23534:9:97","nodeType":"YulTypedName","src":"23534:9:97","type":""},{"name":"value7","nativeSrc":"23545:6:97","nodeType":"YulTypedName","src":"23545:6:97","type":""},{"name":"value6","nativeSrc":"23553:6:97","nodeType":"YulTypedName","src":"23553:6:97","type":""},{"name":"value5","nativeSrc":"23561:6:97","nodeType":"YulTypedName","src":"23561:6:97","type":""},{"name":"value4","nativeSrc":"23569:6:97","nodeType":"YulTypedName","src":"23569:6:97","type":""},{"name":"value3","nativeSrc":"23577:6:97","nodeType":"YulTypedName","src":"23577:6:97","type":""},{"name":"value2","nativeSrc":"23585:6:97","nodeType":"YulTypedName","src":"23585:6:97","type":""},{"name":"value1","nativeSrc":"23593:6:97","nodeType":"YulTypedName","src":"23593:6:97","type":""},{"name":"value0","nativeSrc":"23601:6:97","nodeType":"YulTypedName","src":"23601:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"23612:4:97","nodeType":"YulTypedName","src":"23612:4:97","type":""}],"src":"23310:891:97"},{"body":{"nativeSrc":"24380:223:97","nodeType":"YulBlock","src":"24380:223:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"24397:9:97","nodeType":"YulIdentifier","src":"24397:9:97"},{"kind":"number","nativeSrc":"24408:2:97","nodeType":"YulLiteral","src":"24408:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"24390:6:97","nodeType":"YulIdentifier","src":"24390:6:97"},"nativeSrc":"24390:21:97","nodeType":"YulFunctionCall","src":"24390:21:97"},"nativeSrc":"24390:21:97","nodeType":"YulExpressionStatement","src":"24390:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24431:9:97","nodeType":"YulIdentifier","src":"24431:9:97"},{"kind":"number","nativeSrc":"24442:2:97","nodeType":"YulLiteral","src":"24442:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"24427:3:97","nodeType":"YulIdentifier","src":"24427:3:97"},"nativeSrc":"24427:18:97","nodeType":"YulFunctionCall","src":"24427:18:97"},{"kind":"number","nativeSrc":"24447:2:97","nodeType":"YulLiteral","src":"24447:2:97","type":"","value":"33"}],"functionName":{"name":"mstore","nativeSrc":"24420:6:97","nodeType":"YulIdentifier","src":"24420:6:97"},"nativeSrc":"24420:30:97","nodeType":"YulFunctionCall","src":"24420:30:97"},"nativeSrc":"24420:30:97","nodeType":"YulExpressionStatement","src":"24420:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24470:9:97","nodeType":"YulIdentifier","src":"24470:9:97"},{"kind":"number","nativeSrc":"24481:2:97","nodeType":"YulLiteral","src":"24481:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"24466:3:97","nodeType":"YulIdentifier","src":"24466:3:97"},"nativeSrc":"24466:18:97","nodeType":"YulFunctionCall","src":"24466:18:97"},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f2073656e64207265656e7472616e63","kind":"string","nativeSrc":"24486:34:97","nodeType":"YulLiteral","src":"24486:34:97","type":"","value":"LayerZeroMock: no send reentranc"}],"functionName":{"name":"mstore","nativeSrc":"24459:6:97","nodeType":"YulIdentifier","src":"24459:6:97"},"nativeSrc":"24459:62:97","nodeType":"YulFunctionCall","src":"24459:62:97"},"nativeSrc":"24459:62:97","nodeType":"YulExpressionStatement","src":"24459:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24541:9:97","nodeType":"YulIdentifier","src":"24541:9:97"},{"kind":"number","nativeSrc":"24552:2:97","nodeType":"YulLiteral","src":"24552:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"24537:3:97","nodeType":"YulIdentifier","src":"24537:3:97"},"nativeSrc":"24537:18:97","nodeType":"YulFunctionCall","src":"24537:18:97"},{"hexValue":"79","kind":"string","nativeSrc":"24557:3:97","nodeType":"YulLiteral","src":"24557:3:97","type":"","value":"y"}],"functionName":{"name":"mstore","nativeSrc":"24530:6:97","nodeType":"YulIdentifier","src":"24530:6:97"},"nativeSrc":"24530:31:97","nodeType":"YulFunctionCall","src":"24530:31:97"},"nativeSrc":"24530:31:97","nodeType":"YulExpressionStatement","src":"24530:31:97"},{"nativeSrc":"24570:27:97","nodeType":"YulAssignment","src":"24570:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"24582:9:97","nodeType":"YulIdentifier","src":"24582:9:97"},{"kind":"number","nativeSrc":"24593:3:97","nodeType":"YulLiteral","src":"24593:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"24578:3:97","nodeType":"YulIdentifier","src":"24578:3:97"},"nativeSrc":"24578:19:97","nodeType":"YulFunctionCall","src":"24578:19:97"},"variableNames":[{"name":"tail","nativeSrc":"24570:4:97","nodeType":"YulIdentifier","src":"24570:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_73b1d6d5ba54cd5e4e2ebace0c8623f647e51a2b5e72af7e7df83d716224bbcb__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"24206:397:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"24357:9:97","nodeType":"YulTypedName","src":"24357:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"24371:4:97","nodeType":"YulTypedName","src":"24371:4:97","type":""}],"src":"24206:397:97"},{"body":{"nativeSrc":"24782:234:97","nodeType":"YulBlock","src":"24782:234:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"24799:9:97","nodeType":"YulIdentifier","src":"24799:9:97"},{"kind":"number","nativeSrc":"24810:2:97","nodeType":"YulLiteral","src":"24810:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"24792:6:97","nodeType":"YulIdentifier","src":"24792:6:97"},"nativeSrc":"24792:21:97","nodeType":"YulFunctionCall","src":"24792:21:97"},"nativeSrc":"24792:21:97","nodeType":"YulExpressionStatement","src":"24792:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24833:9:97","nodeType":"YulIdentifier","src":"24833:9:97"},{"kind":"number","nativeSrc":"24844:2:97","nodeType":"YulLiteral","src":"24844:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"24829:3:97","nodeType":"YulIdentifier","src":"24829:3:97"},"nativeSrc":"24829:18:97","nodeType":"YulFunctionCall","src":"24829:18:97"},{"kind":"number","nativeSrc":"24849:2:97","nodeType":"YulLiteral","src":"24849:2:97","type":"","value":"44"}],"functionName":{"name":"mstore","nativeSrc":"24822:6:97","nodeType":"YulIdentifier","src":"24822:6:97"},"nativeSrc":"24822:30:97","nodeType":"YulFunctionCall","src":"24822:30:97"},"nativeSrc":"24822:30:97","nodeType":"YulExpressionStatement","src":"24822:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24872:9:97","nodeType":"YulIdentifier","src":"24872:9:97"},{"kind":"number","nativeSrc":"24883:2:97","nodeType":"YulLiteral","src":"24883:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"24868:3:97","nodeType":"YulIdentifier","src":"24868:3:97"},"nativeSrc":"24868:18:97","nodeType":"YulFunctionCall","src":"24868:18:97"},{"hexValue":"4c617965725a65726f4d6f636b3a20696e636f72726563742072656d6f746520","kind":"string","nativeSrc":"24888:34:97","nodeType":"YulLiteral","src":"24888:34:97","type":"","value":"LayerZeroMock: incorrect remote "}],"functionName":{"name":"mstore","nativeSrc":"24861:6:97","nodeType":"YulIdentifier","src":"24861:6:97"},"nativeSrc":"24861:62:97","nodeType":"YulFunctionCall","src":"24861:62:97"},"nativeSrc":"24861:62:97","nodeType":"YulExpressionStatement","src":"24861:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24943:9:97","nodeType":"YulIdentifier","src":"24943:9:97"},{"kind":"number","nativeSrc":"24954:2:97","nodeType":"YulLiteral","src":"24954:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"24939:3:97","nodeType":"YulIdentifier","src":"24939:3:97"},"nativeSrc":"24939:18:97","nodeType":"YulFunctionCall","src":"24939:18:97"},{"hexValue":"616464726573732073697a65","kind":"string","nativeSrc":"24959:14:97","nodeType":"YulLiteral","src":"24959:14:97","type":"","value":"address size"}],"functionName":{"name":"mstore","nativeSrc":"24932:6:97","nodeType":"YulIdentifier","src":"24932:6:97"},"nativeSrc":"24932:42:97","nodeType":"YulFunctionCall","src":"24932:42:97"},"nativeSrc":"24932:42:97","nodeType":"YulExpressionStatement","src":"24932:42:97"},{"nativeSrc":"24983:27:97","nodeType":"YulAssignment","src":"24983:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"24995:9:97","nodeType":"YulIdentifier","src":"24995:9:97"},{"kind":"number","nativeSrc":"25006:3:97","nodeType":"YulLiteral","src":"25006:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"24991:3:97","nodeType":"YulIdentifier","src":"24991:3:97"},"nativeSrc":"24991:19:97","nodeType":"YulFunctionCall","src":"24991:19:97"},"variableNames":[{"name":"tail","nativeSrc":"24983:4:97","nodeType":"YulIdentifier","src":"24983:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_a84f16779931db7ec618d2bd334bd656888d24e7e320bdf2dd7a0a0862d1916b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"24608:408:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"24759:9:97","nodeType":"YulTypedName","src":"24759:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"24773:4:97","nodeType":"YulTypedName","src":"24773:4:97","type":""}],"src":"24608:408:97"},{"body":{"nativeSrc":"25195:245:97","nodeType":"YulBlock","src":"25195:245:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"25212:9:97","nodeType":"YulIdentifier","src":"25212:9:97"},{"kind":"number","nativeSrc":"25223:2:97","nodeType":"YulLiteral","src":"25223:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"25205:6:97","nodeType":"YulIdentifier","src":"25205:6:97"},"nativeSrc":"25205:21:97","nodeType":"YulFunctionCall","src":"25205:21:97"},"nativeSrc":"25205:21:97","nodeType":"YulExpressionStatement","src":"25205:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25246:9:97","nodeType":"YulIdentifier","src":"25246:9:97"},{"kind":"number","nativeSrc":"25257:2:97","nodeType":"YulLiteral","src":"25257:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"25242:3:97","nodeType":"YulIdentifier","src":"25242:3:97"},"nativeSrc":"25242:18:97","nodeType":"YulFunctionCall","src":"25242:18:97"},{"kind":"number","nativeSrc":"25262:2:97","nodeType":"YulLiteral","src":"25262:2:97","type":"","value":"55"}],"functionName":{"name":"mstore","nativeSrc":"25235:6:97","nodeType":"YulIdentifier","src":"25235:6:97"},"nativeSrc":"25235:30:97","nodeType":"YulFunctionCall","src":"25235:30:97"},"nativeSrc":"25235:30:97","nodeType":"YulExpressionStatement","src":"25235:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25285:9:97","nodeType":"YulIdentifier","src":"25285:9:97"},{"kind":"number","nativeSrc":"25296:2:97","nodeType":"YulLiteral","src":"25296:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"25281:3:97","nodeType":"YulIdentifier","src":"25281:3:97"},"nativeSrc":"25281:18:97","nodeType":"YulFunctionCall","src":"25281:18:97"},{"hexValue":"4c617965725a65726f4d6f636b3a2064657374696e6174696f6e204c61796572","kind":"string","nativeSrc":"25301:34:97","nodeType":"YulLiteral","src":"25301:34:97","type":"","value":"LayerZeroMock: destination Layer"}],"functionName":{"name":"mstore","nativeSrc":"25274:6:97","nodeType":"YulIdentifier","src":"25274:6:97"},"nativeSrc":"25274:62:97","nodeType":"YulFunctionCall","src":"25274:62:97"},"nativeSrc":"25274:62:97","nodeType":"YulExpressionStatement","src":"25274:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25356:9:97","nodeType":"YulIdentifier","src":"25356:9:97"},{"kind":"number","nativeSrc":"25367:2:97","nodeType":"YulLiteral","src":"25367:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"25352:3:97","nodeType":"YulIdentifier","src":"25352:3:97"},"nativeSrc":"25352:18:97","nodeType":"YulFunctionCall","src":"25352:18:97"},{"hexValue":"5a65726f20456e64706f696e74206e6f7420666f756e64","kind":"string","nativeSrc":"25372:25:97","nodeType":"YulLiteral","src":"25372:25:97","type":"","value":"Zero Endpoint not found"}],"functionName":{"name":"mstore","nativeSrc":"25345:6:97","nodeType":"YulIdentifier","src":"25345:6:97"},"nativeSrc":"25345:53:97","nodeType":"YulFunctionCall","src":"25345:53:97"},"nativeSrc":"25345:53:97","nodeType":"YulExpressionStatement","src":"25345:53:97"},{"nativeSrc":"25407:27:97","nodeType":"YulAssignment","src":"25407:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"25419:9:97","nodeType":"YulIdentifier","src":"25419:9:97"},{"kind":"number","nativeSrc":"25430:3:97","nodeType":"YulLiteral","src":"25430:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"25415:3:97","nodeType":"YulIdentifier","src":"25415:3:97"},"nativeSrc":"25415:19:97","nodeType":"YulFunctionCall","src":"25415:19:97"},"variableNames":[{"name":"tail","nativeSrc":"25407:4:97","nodeType":"YulIdentifier","src":"25407:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_03f2c372695dfb7017d0d1b5b039a7a7c563c382ff38f9563e77eedca785e4df__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"25021:419:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25172:9:97","nodeType":"YulTypedName","src":"25172:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"25186:4:97","nodeType":"YulTypedName","src":"25186:4:97","type":""}],"src":"25021:419:97"},{"body":{"nativeSrc":"25619:231:97","nodeType":"YulBlock","src":"25619:231:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"25636:9:97","nodeType":"YulIdentifier","src":"25636:9:97"},{"kind":"number","nativeSrc":"25647:2:97","nodeType":"YulLiteral","src":"25647:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"25629:6:97","nodeType":"YulIdentifier","src":"25629:6:97"},"nativeSrc":"25629:21:97","nodeType":"YulFunctionCall","src":"25629:21:97"},"nativeSrc":"25629:21:97","nodeType":"YulExpressionStatement","src":"25629:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25670:9:97","nodeType":"YulIdentifier","src":"25670:9:97"},{"kind":"number","nativeSrc":"25681:2:97","nodeType":"YulLiteral","src":"25681:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"25666:3:97","nodeType":"YulIdentifier","src":"25666:3:97"},"nativeSrc":"25666:18:97","nodeType":"YulFunctionCall","src":"25666:18:97"},{"kind":"number","nativeSrc":"25686:2:97","nodeType":"YulLiteral","src":"25686:2:97","type":"","value":"41"}],"functionName":{"name":"mstore","nativeSrc":"25659:6:97","nodeType":"YulIdentifier","src":"25659:6:97"},"nativeSrc":"25659:30:97","nodeType":"YulFunctionCall","src":"25659:30:97"},"nativeSrc":"25659:30:97","nodeType":"YulExpressionStatement","src":"25659:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25709:9:97","nodeType":"YulIdentifier","src":"25709:9:97"},{"kind":"number","nativeSrc":"25720:2:97","nodeType":"YulLiteral","src":"25720:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"25705:3:97","nodeType":"YulIdentifier","src":"25705:3:97"},"nativeSrc":"25705:18:97","nodeType":"YulFunctionCall","src":"25705:18:97"},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f7420656e6f756768206e6174697665","kind":"string","nativeSrc":"25725:34:97","nodeType":"YulLiteral","src":"25725:34:97","type":"","value":"LayerZeroMock: not enough native"}],"functionName":{"name":"mstore","nativeSrc":"25698:6:97","nodeType":"YulIdentifier","src":"25698:6:97"},"nativeSrc":"25698:62:97","nodeType":"YulFunctionCall","src":"25698:62:97"},"nativeSrc":"25698:62:97","nodeType":"YulExpressionStatement","src":"25698:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25780:9:97","nodeType":"YulIdentifier","src":"25780:9:97"},{"kind":"number","nativeSrc":"25791:2:97","nodeType":"YulLiteral","src":"25791:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"25776:3:97","nodeType":"YulIdentifier","src":"25776:3:97"},"nativeSrc":"25776:18:97","nodeType":"YulFunctionCall","src":"25776:18:97"},{"hexValue":"20666f722066656573","kind":"string","nativeSrc":"25796:11:97","nodeType":"YulLiteral","src":"25796:11:97","type":"","value":" for fees"}],"functionName":{"name":"mstore","nativeSrc":"25769:6:97","nodeType":"YulIdentifier","src":"25769:6:97"},"nativeSrc":"25769:39:97","nodeType":"YulFunctionCall","src":"25769:39:97"},"nativeSrc":"25769:39:97","nodeType":"YulExpressionStatement","src":"25769:39:97"},{"nativeSrc":"25817:27:97","nodeType":"YulAssignment","src":"25817:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"25829:9:97","nodeType":"YulIdentifier","src":"25829:9:97"},{"kind":"number","nativeSrc":"25840:3:97","nodeType":"YulLiteral","src":"25840:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"25825:3:97","nodeType":"YulIdentifier","src":"25825:3:97"},"nativeSrc":"25825:19:97","nodeType":"YulFunctionCall","src":"25825:19:97"},"variableNames":[{"name":"tail","nativeSrc":"25817:4:97","nodeType":"YulIdentifier","src":"25817:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_1d7a441e6351efbe3589b780f6d9098a5373ce9246e759367f3fb559adf16b4a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"25445:405:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25596:9:97","nodeType":"YulTypedName","src":"25596:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"25610:4:97","nodeType":"YulTypedName","src":"25610:4:97","type":""}],"src":"25445:405:97"},{"body":{"nativeSrc":"26046:14:97","nodeType":"YulBlock","src":"26046:14:97","statements":[{"nativeSrc":"26048:10:97","nodeType":"YulAssignment","src":"26048:10:97","value":{"name":"pos","nativeSrc":"26055:3:97","nodeType":"YulIdentifier","src":"26055:3:97"},"variableNames":[{"name":"end","nativeSrc":"26048:3:97","nodeType":"YulIdentifier","src":"26048:3:97"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"25855:205:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"26030:3:97","nodeType":"YulTypedName","src":"26030:3:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"26038:3:97","nodeType":"YulTypedName","src":"26038:3:97","type":""}],"src":"25855:205:97"},{"body":{"nativeSrc":"26239:181:97","nodeType":"YulBlock","src":"26239:181:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"26256:9:97","nodeType":"YulIdentifier","src":"26256:9:97"},{"kind":"number","nativeSrc":"26267:2:97","nodeType":"YulLiteral","src":"26267:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"26249:6:97","nodeType":"YulIdentifier","src":"26249:6:97"},"nativeSrc":"26249:21:97","nodeType":"YulFunctionCall","src":"26249:21:97"},"nativeSrc":"26249:21:97","nodeType":"YulExpressionStatement","src":"26249:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26290:9:97","nodeType":"YulIdentifier","src":"26290:9:97"},{"kind":"number","nativeSrc":"26301:2:97","nodeType":"YulLiteral","src":"26301:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"26286:3:97","nodeType":"YulIdentifier","src":"26286:3:97"},"nativeSrc":"26286:18:97","nodeType":"YulFunctionCall","src":"26286:18:97"},{"kind":"number","nativeSrc":"26306:2:97","nodeType":"YulLiteral","src":"26306:2:97","type":"","value":"31"}],"functionName":{"name":"mstore","nativeSrc":"26279:6:97","nodeType":"YulIdentifier","src":"26279:6:97"},"nativeSrc":"26279:30:97","nodeType":"YulFunctionCall","src":"26279:30:97"},"nativeSrc":"26279:30:97","nodeType":"YulExpressionStatement","src":"26279:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26329:9:97","nodeType":"YulIdentifier","src":"26329:9:97"},{"kind":"number","nativeSrc":"26340:2:97","nodeType":"YulLiteral","src":"26340:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"26325:3:97","nodeType":"YulIdentifier","src":"26325:3:97"},"nativeSrc":"26325:18:97","nodeType":"YulFunctionCall","src":"26325:18:97"},{"hexValue":"4c617965725a65726f4d6f636b3a206661696c656420746f20726566756e64","kind":"string","nativeSrc":"26345:33:97","nodeType":"YulLiteral","src":"26345:33:97","type":"","value":"LayerZeroMock: failed to refund"}],"functionName":{"name":"mstore","nativeSrc":"26318:6:97","nodeType":"YulIdentifier","src":"26318:6:97"},"nativeSrc":"26318:61:97","nodeType":"YulFunctionCall","src":"26318:61:97"},"nativeSrc":"26318:61:97","nodeType":"YulExpressionStatement","src":"26318:61:97"},{"nativeSrc":"26388:26:97","nodeType":"YulAssignment","src":"26388:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"26400:9:97","nodeType":"YulIdentifier","src":"26400:9:97"},{"kind":"number","nativeSrc":"26411:2:97","nodeType":"YulLiteral","src":"26411:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"26396:3:97","nodeType":"YulIdentifier","src":"26396:3:97"},"nativeSrc":"26396:18:97","nodeType":"YulFunctionCall","src":"26396:18:97"},"variableNames":[{"name":"tail","nativeSrc":"26388:4:97","nodeType":"YulIdentifier","src":"26388:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_dcfb2fb846bf29eed16ab1966cc303d2b0cbdcaede7d9e78ee4c30c1a8119790__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"26065:355:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"26216:9:97","nodeType":"YulTypedName","src":"26216:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"26230:4:97","nodeType":"YulTypedName","src":"26230:4:97","type":""}],"src":"26065:355:97"},{"body":{"nativeSrc":"26572:221:97","nodeType":"YulBlock","src":"26572:221:97","statements":[{"nativeSrc":"26582:76:97","nodeType":"YulVariableDeclaration","src":"26582:76:97","value":{"kind":"number","nativeSrc":"26592:66:97","nodeType":"YulLiteral","src":"26592:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000"},"variables":[{"name":"_1","nativeSrc":"26586:2:97","nodeType":"YulTypedName","src":"26586:2:97","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"26674:3:97","nodeType":"YulIdentifier","src":"26674:3:97"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"26687:2:97","nodeType":"YulLiteral","src":"26687:2:97","type":"","value":"96"},{"name":"value0","nativeSrc":"26691:6:97","nodeType":"YulIdentifier","src":"26691:6:97"}],"functionName":{"name":"shl","nativeSrc":"26683:3:97","nodeType":"YulIdentifier","src":"26683:3:97"},"nativeSrc":"26683:15:97","nodeType":"YulFunctionCall","src":"26683:15:97"},{"name":"_1","nativeSrc":"26700:2:97","nodeType":"YulIdentifier","src":"26700:2:97"}],"functionName":{"name":"and","nativeSrc":"26679:3:97","nodeType":"YulIdentifier","src":"26679:3:97"},"nativeSrc":"26679:24:97","nodeType":"YulFunctionCall","src":"26679:24:97"}],"functionName":{"name":"mstore","nativeSrc":"26667:6:97","nodeType":"YulIdentifier","src":"26667:6:97"},"nativeSrc":"26667:37:97","nodeType":"YulFunctionCall","src":"26667:37:97"},"nativeSrc":"26667:37:97","nodeType":"YulExpressionStatement","src":"26667:37:97"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"26724:3:97","nodeType":"YulIdentifier","src":"26724:3:97"},{"kind":"number","nativeSrc":"26729:2:97","nodeType":"YulLiteral","src":"26729:2:97","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"26720:3:97","nodeType":"YulIdentifier","src":"26720:3:97"},"nativeSrc":"26720:12:97","nodeType":"YulFunctionCall","src":"26720:12:97"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"26742:2:97","nodeType":"YulLiteral","src":"26742:2:97","type":"","value":"96"},{"name":"value1","nativeSrc":"26746:6:97","nodeType":"YulIdentifier","src":"26746:6:97"}],"functionName":{"name":"shl","nativeSrc":"26738:3:97","nodeType":"YulIdentifier","src":"26738:3:97"},"nativeSrc":"26738:15:97","nodeType":"YulFunctionCall","src":"26738:15:97"},{"name":"_1","nativeSrc":"26755:2:97","nodeType":"YulIdentifier","src":"26755:2:97"}],"functionName":{"name":"and","nativeSrc":"26734:3:97","nodeType":"YulIdentifier","src":"26734:3:97"},"nativeSrc":"26734:24:97","nodeType":"YulFunctionCall","src":"26734:24:97"}],"functionName":{"name":"mstore","nativeSrc":"26713:6:97","nodeType":"YulIdentifier","src":"26713:6:97"},"nativeSrc":"26713:46:97","nodeType":"YulFunctionCall","src":"26713:46:97"},"nativeSrc":"26713:46:97","nodeType":"YulExpressionStatement","src":"26713:46:97"},{"nativeSrc":"26768:19:97","nodeType":"YulAssignment","src":"26768:19:97","value":{"arguments":[{"name":"pos","nativeSrc":"26779:3:97","nodeType":"YulIdentifier","src":"26779:3:97"},{"kind":"number","nativeSrc":"26784:2:97","nodeType":"YulLiteral","src":"26784:2:97","type":"","value":"40"}],"functionName":{"name":"add","nativeSrc":"26775:3:97","nodeType":"YulIdentifier","src":"26775:3:97"},"nativeSrc":"26775:12:97","nodeType":"YulFunctionCall","src":"26775:12:97"},"variableNames":[{"name":"end","nativeSrc":"26768:3:97","nodeType":"YulIdentifier","src":"26768:3:97"}]}]},"name":"abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed","nativeSrc":"26425:368:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"26540:3:97","nodeType":"YulTypedName","src":"26540:3:97","type":""},{"name":"value1","nativeSrc":"26545:6:97","nodeType":"YulTypedName","src":"26545:6:97","type":""},{"name":"value0","nativeSrc":"26553:6:97","nodeType":"YulTypedName","src":"26553:6:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"26564:3:97","nodeType":"YulTypedName","src":"26564:3:97","type":""}],"src":"26425:368:97"},{"body":{"nativeSrc":"27071:475:97","nodeType":"YulBlock","src":"27071:475:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"27088:9:97","nodeType":"YulIdentifier","src":"27088:9:97"},{"arguments":[{"name":"value0","nativeSrc":"27103:6:97","nodeType":"YulIdentifier","src":"27103:6:97"},{"kind":"number","nativeSrc":"27111:6:97","nodeType":"YulLiteral","src":"27111:6:97","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"27099:3:97","nodeType":"YulIdentifier","src":"27099:3:97"},"nativeSrc":"27099:19:97","nodeType":"YulFunctionCall","src":"27099:19:97"}],"functionName":{"name":"mstore","nativeSrc":"27081:6:97","nodeType":"YulIdentifier","src":"27081:6:97"},"nativeSrc":"27081:38:97","nodeType":"YulFunctionCall","src":"27081:38:97"},"nativeSrc":"27081:38:97","nodeType":"YulExpressionStatement","src":"27081:38:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27139:9:97","nodeType":"YulIdentifier","src":"27139:9:97"},{"kind":"number","nativeSrc":"27150:2:97","nodeType":"YulLiteral","src":"27150:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"27135:3:97","nodeType":"YulIdentifier","src":"27135:3:97"},"nativeSrc":"27135:18:97","nodeType":"YulFunctionCall","src":"27135:18:97"},{"kind":"number","nativeSrc":"27155:3:97","nodeType":"YulLiteral","src":"27155:3:97","type":"","value":"192"}],"functionName":{"name":"mstore","nativeSrc":"27128:6:97","nodeType":"YulIdentifier","src":"27128:6:97"},"nativeSrc":"27128:31:97","nodeType":"YulFunctionCall","src":"27128:31:97"},"nativeSrc":"27128:31:97","nodeType":"YulExpressionStatement","src":"27128:31:97"},{"nativeSrc":"27168:59:97","nodeType":"YulVariableDeclaration","src":"27168:59:97","value":{"arguments":[{"name":"value1","nativeSrc":"27199:6:97","nodeType":"YulIdentifier","src":"27199:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"27211:9:97","nodeType":"YulIdentifier","src":"27211:9:97"},{"kind":"number","nativeSrc":"27222:3:97","nodeType":"YulLiteral","src":"27222:3:97","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"27207:3:97","nodeType":"YulIdentifier","src":"27207:3:97"},"nativeSrc":"27207:19:97","nodeType":"YulFunctionCall","src":"27207:19:97"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"27182:16:97","nodeType":"YulIdentifier","src":"27182:16:97"},"nativeSrc":"27182:45:97","nodeType":"YulFunctionCall","src":"27182:45:97"},"variables":[{"name":"tail_1","nativeSrc":"27172:6:97","nodeType":"YulTypedName","src":"27172:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27247:9:97","nodeType":"YulIdentifier","src":"27247:9:97"},{"kind":"number","nativeSrc":"27258:2:97","nodeType":"YulLiteral","src":"27258:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"27243:3:97","nodeType":"YulIdentifier","src":"27243:3:97"},"nativeSrc":"27243:18:97","nodeType":"YulFunctionCall","src":"27243:18:97"},{"arguments":[{"name":"value2","nativeSrc":"27267:6:97","nodeType":"YulIdentifier","src":"27267:6:97"},{"kind":"number","nativeSrc":"27275:42:97","nodeType":"YulLiteral","src":"27275:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"27263:3:97","nodeType":"YulIdentifier","src":"27263:3:97"},"nativeSrc":"27263:55:97","nodeType":"YulFunctionCall","src":"27263:55:97"}],"functionName":{"name":"mstore","nativeSrc":"27236:6:97","nodeType":"YulIdentifier","src":"27236:6:97"},"nativeSrc":"27236:83:97","nodeType":"YulFunctionCall","src":"27236:83:97"},"nativeSrc":"27236:83:97","nodeType":"YulExpressionStatement","src":"27236:83:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27339:9:97","nodeType":"YulIdentifier","src":"27339:9:97"},{"kind":"number","nativeSrc":"27350:2:97","nodeType":"YulLiteral","src":"27350:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"27335:3:97","nodeType":"YulIdentifier","src":"27335:3:97"},"nativeSrc":"27335:18:97","nodeType":"YulFunctionCall","src":"27335:18:97"},{"arguments":[{"name":"value3","nativeSrc":"27359:6:97","nodeType":"YulIdentifier","src":"27359:6:97"},{"kind":"number","nativeSrc":"27367:18:97","nodeType":"YulLiteral","src":"27367:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"27355:3:97","nodeType":"YulIdentifier","src":"27355:3:97"},"nativeSrc":"27355:31:97","nodeType":"YulFunctionCall","src":"27355:31:97"}],"functionName":{"name":"mstore","nativeSrc":"27328:6:97","nodeType":"YulIdentifier","src":"27328:6:97"},"nativeSrc":"27328:59:97","nodeType":"YulFunctionCall","src":"27328:59:97"},"nativeSrc":"27328:59:97","nodeType":"YulExpressionStatement","src":"27328:59:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27407:9:97","nodeType":"YulIdentifier","src":"27407:9:97"},{"kind":"number","nativeSrc":"27418:3:97","nodeType":"YulLiteral","src":"27418:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"27403:3:97","nodeType":"YulIdentifier","src":"27403:3:97"},"nativeSrc":"27403:19:97","nodeType":"YulFunctionCall","src":"27403:19:97"},{"name":"value4","nativeSrc":"27424:6:97","nodeType":"YulIdentifier","src":"27424:6:97"}],"functionName":{"name":"mstore","nativeSrc":"27396:6:97","nodeType":"YulIdentifier","src":"27396:6:97"},"nativeSrc":"27396:35:97","nodeType":"YulFunctionCall","src":"27396:35:97"},"nativeSrc":"27396:35:97","nodeType":"YulExpressionStatement","src":"27396:35:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27451:9:97","nodeType":"YulIdentifier","src":"27451:9:97"},{"kind":"number","nativeSrc":"27462:3:97","nodeType":"YulLiteral","src":"27462:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"27447:3:97","nodeType":"YulIdentifier","src":"27447:3:97"},"nativeSrc":"27447:19:97","nodeType":"YulFunctionCall","src":"27447:19:97"},{"arguments":[{"name":"tail_1","nativeSrc":"27472:6:97","nodeType":"YulIdentifier","src":"27472:6:97"},{"name":"headStart","nativeSrc":"27480:9:97","nodeType":"YulIdentifier","src":"27480:9:97"}],"functionName":{"name":"sub","nativeSrc":"27468:3:97","nodeType":"YulIdentifier","src":"27468:3:97"},"nativeSrc":"27468:22:97","nodeType":"YulFunctionCall","src":"27468:22:97"}],"functionName":{"name":"mstore","nativeSrc":"27440:6:97","nodeType":"YulIdentifier","src":"27440:6:97"},"nativeSrc":"27440:51:97","nodeType":"YulFunctionCall","src":"27440:51:97"},"nativeSrc":"27440:51:97","nodeType":"YulExpressionStatement","src":"27440:51:97"},{"nativeSrc":"27500:40:97","nodeType":"YulAssignment","src":"27500:40:97","value":{"arguments":[{"name":"value5","nativeSrc":"27525:6:97","nodeType":"YulIdentifier","src":"27525:6:97"},{"name":"tail_1","nativeSrc":"27533:6:97","nodeType":"YulIdentifier","src":"27533:6:97"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"27508:16:97","nodeType":"YulIdentifier","src":"27508:16:97"},"nativeSrc":"27508:32:97","nodeType":"YulFunctionCall","src":"27508:32:97"},"variableNames":[{"name":"tail","nativeSrc":"27500:4:97","nodeType":"YulIdentifier","src":"27500:4:97"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_uint256_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"26798:748:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"27000:9:97","nodeType":"YulTypedName","src":"27000:9:97","type":""},{"name":"value5","nativeSrc":"27011:6:97","nodeType":"YulTypedName","src":"27011:6:97","type":""},{"name":"value4","nativeSrc":"27019:6:97","nodeType":"YulTypedName","src":"27019:6:97","type":""},{"name":"value3","nativeSrc":"27027:6:97","nodeType":"YulTypedName","src":"27027:6:97","type":""},{"name":"value2","nativeSrc":"27035:6:97","nodeType":"YulTypedName","src":"27035:6:97","type":""},{"name":"value1","nativeSrc":"27043:6:97","nodeType":"YulTypedName","src":"27043:6:97","type":""},{"name":"value0","nativeSrc":"27051:6:97","nodeType":"YulTypedName","src":"27051:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"27062:4:97","nodeType":"YulTypedName","src":"27062:4:97","type":""}],"src":"26798:748:97"},{"body":{"nativeSrc":"27725:228:97","nodeType":"YulBlock","src":"27725:228:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"27742:9:97","nodeType":"YulIdentifier","src":"27742:9:97"},{"kind":"number","nativeSrc":"27753:2:97","nodeType":"YulLiteral","src":"27753:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"27735:6:97","nodeType":"YulIdentifier","src":"27735:6:97"},"nativeSrc":"27735:21:97","nodeType":"YulFunctionCall","src":"27735:21:97"},"nativeSrc":"27735:21:97","nodeType":"YulExpressionStatement","src":"27735:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27776:9:97","nodeType":"YulIdentifier","src":"27776:9:97"},{"kind":"number","nativeSrc":"27787:2:97","nodeType":"YulLiteral","src":"27787:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"27772:3:97","nodeType":"YulIdentifier","src":"27772:3:97"},"nativeSrc":"27772:18:97","nodeType":"YulFunctionCall","src":"27772:18:97"},{"kind":"number","nativeSrc":"27792:2:97","nodeType":"YulLiteral","src":"27792:2:97","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"27765:6:97","nodeType":"YulIdentifier","src":"27765:6:97"},"nativeSrc":"27765:30:97","nodeType":"YulFunctionCall","src":"27765:30:97"},"nativeSrc":"27765:30:97","nodeType":"YulExpressionStatement","src":"27765:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27815:9:97","nodeType":"YulIdentifier","src":"27815:9:97"},{"kind":"number","nativeSrc":"27826:2:97","nodeType":"YulLiteral","src":"27826:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"27811:3:97","nodeType":"YulIdentifier","src":"27811:3:97"},"nativeSrc":"27811:18:97","nodeType":"YulFunctionCall","src":"27811:18:97"},{"hexValue":"4c617965725a65726f4d6f636b3a206473744e6174697665416d7420746f6f20","kind":"string","nativeSrc":"27831:34:97","nodeType":"YulLiteral","src":"27831:34:97","type":"","value":"LayerZeroMock: dstNativeAmt too "}],"functionName":{"name":"mstore","nativeSrc":"27804:6:97","nodeType":"YulIdentifier","src":"27804:6:97"},"nativeSrc":"27804:62:97","nodeType":"YulFunctionCall","src":"27804:62:97"},"nativeSrc":"27804:62:97","nodeType":"YulExpressionStatement","src":"27804:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27886:9:97","nodeType":"YulIdentifier","src":"27886:9:97"},{"kind":"number","nativeSrc":"27897:2:97","nodeType":"YulLiteral","src":"27897:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"27882:3:97","nodeType":"YulIdentifier","src":"27882:3:97"},"nativeSrc":"27882:18:97","nodeType":"YulFunctionCall","src":"27882:18:97"},{"hexValue":"6c6172676520","kind":"string","nativeSrc":"27902:8:97","nodeType":"YulLiteral","src":"27902:8:97","type":"","value":"large "}],"functionName":{"name":"mstore","nativeSrc":"27875:6:97","nodeType":"YulIdentifier","src":"27875:6:97"},"nativeSrc":"27875:36:97","nodeType":"YulFunctionCall","src":"27875:36:97"},"nativeSrc":"27875:36:97","nodeType":"YulExpressionStatement","src":"27875:36:97"},{"nativeSrc":"27920:27:97","nodeType":"YulAssignment","src":"27920:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"27932:9:97","nodeType":"YulIdentifier","src":"27932:9:97"},{"kind":"number","nativeSrc":"27943:3:97","nodeType":"YulLiteral","src":"27943:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"27928:3:97","nodeType":"YulIdentifier","src":"27928:3:97"},"nativeSrc":"27928:19:97","nodeType":"YulFunctionCall","src":"27928:19:97"},"variableNames":[{"name":"tail","nativeSrc":"27920:4:97","nodeType":"YulIdentifier","src":"27920:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_9ed68b89a8d51980886c19b98768f5848012f002a5537f0951f8528791f91206__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"27551:402:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"27702:9:97","nodeType":"YulTypedName","src":"27702:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"27716:4:97","nodeType":"YulTypedName","src":"27716:4:97","type":""}],"src":"27551:402:97"},{"body":{"nativeSrc":"28010:116:97","nodeType":"YulBlock","src":"28010:116:97","statements":[{"nativeSrc":"28020:20:97","nodeType":"YulAssignment","src":"28020:20:97","value":{"arguments":[{"name":"x","nativeSrc":"28035:1:97","nodeType":"YulIdentifier","src":"28035:1:97"},{"name":"y","nativeSrc":"28038:1:97","nodeType":"YulIdentifier","src":"28038:1:97"}],"functionName":{"name":"mul","nativeSrc":"28031:3:97","nodeType":"YulIdentifier","src":"28031:3:97"},"nativeSrc":"28031:9:97","nodeType":"YulFunctionCall","src":"28031:9:97"},"variableNames":[{"name":"product","nativeSrc":"28020:7:97","nodeType":"YulIdentifier","src":"28020:7:97"}]},{"body":{"nativeSrc":"28098:22:97","nodeType":"YulBlock","src":"28098:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"28100:16:97","nodeType":"YulIdentifier","src":"28100:16:97"},"nativeSrc":"28100:18:97","nodeType":"YulFunctionCall","src":"28100:18:97"},"nativeSrc":"28100:18:97","nodeType":"YulExpressionStatement","src":"28100:18:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"28069:1:97","nodeType":"YulIdentifier","src":"28069:1:97"}],"functionName":{"name":"iszero","nativeSrc":"28062:6:97","nodeType":"YulIdentifier","src":"28062:6:97"},"nativeSrc":"28062:9:97","nodeType":"YulFunctionCall","src":"28062:9:97"},{"arguments":[{"name":"y","nativeSrc":"28076:1:97","nodeType":"YulIdentifier","src":"28076:1:97"},{"arguments":[{"name":"product","nativeSrc":"28083:7:97","nodeType":"YulIdentifier","src":"28083:7:97"},{"name":"x","nativeSrc":"28092:1:97","nodeType":"YulIdentifier","src":"28092:1:97"}],"functionName":{"name":"div","nativeSrc":"28079:3:97","nodeType":"YulIdentifier","src":"28079:3:97"},"nativeSrc":"28079:15:97","nodeType":"YulFunctionCall","src":"28079:15:97"}],"functionName":{"name":"eq","nativeSrc":"28073:2:97","nodeType":"YulIdentifier","src":"28073:2:97"},"nativeSrc":"28073:22:97","nodeType":"YulFunctionCall","src":"28073:22:97"}],"functionName":{"name":"or","nativeSrc":"28059:2:97","nodeType":"YulIdentifier","src":"28059:2:97"},"nativeSrc":"28059:37:97","nodeType":"YulFunctionCall","src":"28059:37:97"}],"functionName":{"name":"iszero","nativeSrc":"28052:6:97","nodeType":"YulIdentifier","src":"28052:6:97"},"nativeSrc":"28052:45:97","nodeType":"YulFunctionCall","src":"28052:45:97"},"nativeSrc":"28049:71:97","nodeType":"YulIf","src":"28049:71:97"}]},"name":"checked_mul_t_uint256","nativeSrc":"27958:168:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"27989:1:97","nodeType":"YulTypedName","src":"27989:1:97","type":""},{"name":"y","nativeSrc":"27992:1:97","nodeType":"YulTypedName","src":"27992:1:97","type":""}],"returnVariables":[{"name":"product","nativeSrc":"27998:7:97","nodeType":"YulTypedName","src":"27998:7:97","type":""}],"src":"27958:168:97"},{"body":{"nativeSrc":"28163:152:97","nodeType":"YulBlock","src":"28163:152:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"28180:1:97","nodeType":"YulLiteral","src":"28180:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"28183:77:97","nodeType":"YulLiteral","src":"28183:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"28173:6:97","nodeType":"YulIdentifier","src":"28173:6:97"},"nativeSrc":"28173:88:97","nodeType":"YulFunctionCall","src":"28173:88:97"},"nativeSrc":"28173:88:97","nodeType":"YulExpressionStatement","src":"28173:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"28277:1:97","nodeType":"YulLiteral","src":"28277:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"28280:4:97","nodeType":"YulLiteral","src":"28280:4:97","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"28270:6:97","nodeType":"YulIdentifier","src":"28270:6:97"},"nativeSrc":"28270:15:97","nodeType":"YulFunctionCall","src":"28270:15:97"},"nativeSrc":"28270:15:97","nodeType":"YulExpressionStatement","src":"28270:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"28301:1:97","nodeType":"YulLiteral","src":"28301:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"28304:4:97","nodeType":"YulLiteral","src":"28304:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"28294:6:97","nodeType":"YulIdentifier","src":"28294:6:97"},"nativeSrc":"28294:15:97","nodeType":"YulFunctionCall","src":"28294:15:97"},"nativeSrc":"28294:15:97","nodeType":"YulExpressionStatement","src":"28294:15:97"}]},"name":"panic_error_0x12","nativeSrc":"28131:184:97","nodeType":"YulFunctionDefinition","src":"28131:184:97"},{"body":{"nativeSrc":"28366:74:97","nodeType":"YulBlock","src":"28366:74:97","statements":[{"body":{"nativeSrc":"28389:22:97","nodeType":"YulBlock","src":"28389:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"28391:16:97","nodeType":"YulIdentifier","src":"28391:16:97"},"nativeSrc":"28391:18:97","nodeType":"YulFunctionCall","src":"28391:18:97"},"nativeSrc":"28391:18:97","nodeType":"YulExpressionStatement","src":"28391:18:97"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"28386:1:97","nodeType":"YulIdentifier","src":"28386:1:97"}],"functionName":{"name":"iszero","nativeSrc":"28379:6:97","nodeType":"YulIdentifier","src":"28379:6:97"},"nativeSrc":"28379:9:97","nodeType":"YulFunctionCall","src":"28379:9:97"},"nativeSrc":"28376:35:97","nodeType":"YulIf","src":"28376:35:97"},{"nativeSrc":"28420:14:97","nodeType":"YulAssignment","src":"28420:14:97","value":{"arguments":[{"name":"x","nativeSrc":"28429:1:97","nodeType":"YulIdentifier","src":"28429:1:97"},{"name":"y","nativeSrc":"28432:1:97","nodeType":"YulIdentifier","src":"28432:1:97"}],"functionName":{"name":"div","nativeSrc":"28425:3:97","nodeType":"YulIdentifier","src":"28425:3:97"},"nativeSrc":"28425:9:97","nodeType":"YulFunctionCall","src":"28425:9:97"},"variableNames":[{"name":"r","nativeSrc":"28420:1:97","nodeType":"YulIdentifier","src":"28420:1:97"}]}]},"name":"checked_div_t_uint256","nativeSrc":"28320:120:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"28351:1:97","nodeType":"YulTypedName","src":"28351:1:97","type":""},{"name":"y","nativeSrc":"28354:1:97","nodeType":"YulTypedName","src":"28354:1:97","type":""}],"returnVariables":[{"name":"r","nativeSrc":"28360:1:97","nodeType":"YulTypedName","src":"28360:1:97","type":""}],"src":"28320:120:97"},{"body":{"nativeSrc":"28497:222:97","nodeType":"YulBlock","src":"28497:222:97","statements":[{"nativeSrc":"28507:44:97","nodeType":"YulVariableDeclaration","src":"28507:44:97","value":{"kind":"number","nativeSrc":"28517:34:97","nodeType":"YulLiteral","src":"28517:34:97","type":"","value":"0xffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"28511:2:97","nodeType":"YulTypedName","src":"28511:2:97","type":""}]},{"nativeSrc":"28560:46:97","nodeType":"YulVariableDeclaration","src":"28560:46:97","value":{"arguments":[{"arguments":[{"name":"x","nativeSrc":"28587:1:97","nodeType":"YulIdentifier","src":"28587:1:97"},{"name":"_1","nativeSrc":"28590:2:97","nodeType":"YulIdentifier","src":"28590:2:97"}],"functionName":{"name":"and","nativeSrc":"28583:3:97","nodeType":"YulIdentifier","src":"28583:3:97"},"nativeSrc":"28583:10:97","nodeType":"YulFunctionCall","src":"28583:10:97"},{"arguments":[{"name":"y","nativeSrc":"28599:1:97","nodeType":"YulIdentifier","src":"28599:1:97"},{"name":"_1","nativeSrc":"28602:2:97","nodeType":"YulIdentifier","src":"28602:2:97"}],"functionName":{"name":"and","nativeSrc":"28595:3:97","nodeType":"YulIdentifier","src":"28595:3:97"},"nativeSrc":"28595:10:97","nodeType":"YulFunctionCall","src":"28595:10:97"}],"functionName":{"name":"mul","nativeSrc":"28579:3:97","nodeType":"YulIdentifier","src":"28579:3:97"},"nativeSrc":"28579:27:97","nodeType":"YulFunctionCall","src":"28579:27:97"},"variables":[{"name":"product_raw","nativeSrc":"28564:11:97","nodeType":"YulTypedName","src":"28564:11:97","type":""}]},{"nativeSrc":"28615:31:97","nodeType":"YulAssignment","src":"28615:31:97","value":{"arguments":[{"name":"product_raw","nativeSrc":"28630:11:97","nodeType":"YulIdentifier","src":"28630:11:97"},{"name":"_1","nativeSrc":"28643:2:97","nodeType":"YulIdentifier","src":"28643:2:97"}],"functionName":{"name":"and","nativeSrc":"28626:3:97","nodeType":"YulIdentifier","src":"28626:3:97"},"nativeSrc":"28626:20:97","nodeType":"YulFunctionCall","src":"28626:20:97"},"variableNames":[{"name":"product","nativeSrc":"28615:7:97","nodeType":"YulIdentifier","src":"28615:7:97"}]},{"body":{"nativeSrc":"28691:22:97","nodeType":"YulBlock","src":"28691:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"28693:16:97","nodeType":"YulIdentifier","src":"28693:16:97"},"nativeSrc":"28693:18:97","nodeType":"YulFunctionCall","src":"28693:18:97"},"nativeSrc":"28693:18:97","nodeType":"YulExpressionStatement","src":"28693:18:97"}]},"condition":{"arguments":[{"arguments":[{"name":"product","nativeSrc":"28668:7:97","nodeType":"YulIdentifier","src":"28668:7:97"},{"name":"product_raw","nativeSrc":"28677:11:97","nodeType":"YulIdentifier","src":"28677:11:97"}],"functionName":{"name":"eq","nativeSrc":"28665:2:97","nodeType":"YulIdentifier","src":"28665:2:97"},"nativeSrc":"28665:24:97","nodeType":"YulFunctionCall","src":"28665:24:97"}],"functionName":{"name":"iszero","nativeSrc":"28658:6:97","nodeType":"YulIdentifier","src":"28658:6:97"},"nativeSrc":"28658:32:97","nodeType":"YulFunctionCall","src":"28658:32:97"},"nativeSrc":"28655:58:97","nodeType":"YulIf","src":"28655:58:97"}]},"name":"checked_mul_t_uint128","nativeSrc":"28445:274:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"28476:1:97","nodeType":"YulTypedName","src":"28476:1:97","type":""},{"name":"y","nativeSrc":"28479:1:97","nodeType":"YulTypedName","src":"28479:1:97","type":""}],"returnVariables":[{"name":"product","nativeSrc":"28485:7:97","nodeType":"YulTypedName","src":"28485:7:97","type":""}],"src":"28445:274:97"},{"body":{"nativeSrc":"28770:170:97","nodeType":"YulBlock","src":"28770:170:97","statements":[{"nativeSrc":"28780:44:97","nodeType":"YulVariableDeclaration","src":"28780:44:97","value":{"kind":"number","nativeSrc":"28790:34:97","nodeType":"YulLiteral","src":"28790:34:97","type":"","value":"0xffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"28784:2:97","nodeType":"YulTypedName","src":"28784:2:97","type":""}]},{"nativeSrc":"28833:21:97","nodeType":"YulVariableDeclaration","src":"28833:21:97","value":{"arguments":[{"name":"y","nativeSrc":"28848:1:97","nodeType":"YulIdentifier","src":"28848:1:97"},{"name":"_1","nativeSrc":"28851:2:97","nodeType":"YulIdentifier","src":"28851:2:97"}],"functionName":{"name":"and","nativeSrc":"28844:3:97","nodeType":"YulIdentifier","src":"28844:3:97"},"nativeSrc":"28844:10:97","nodeType":"YulFunctionCall","src":"28844:10:97"},"variables":[{"name":"y_1","nativeSrc":"28837:3:97","nodeType":"YulTypedName","src":"28837:3:97","type":""}]},{"body":{"nativeSrc":"28878:22:97","nodeType":"YulBlock","src":"28878:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"28880:16:97","nodeType":"YulIdentifier","src":"28880:16:97"},"nativeSrc":"28880:18:97","nodeType":"YulFunctionCall","src":"28880:18:97"},"nativeSrc":"28880:18:97","nodeType":"YulExpressionStatement","src":"28880:18:97"}]},"condition":{"arguments":[{"name":"y_1","nativeSrc":"28873:3:97","nodeType":"YulIdentifier","src":"28873:3:97"}],"functionName":{"name":"iszero","nativeSrc":"28866:6:97","nodeType":"YulIdentifier","src":"28866:6:97"},"nativeSrc":"28866:11:97","nodeType":"YulFunctionCall","src":"28866:11:97"},"nativeSrc":"28863:37:97","nodeType":"YulIf","src":"28863:37:97"},{"nativeSrc":"28909:25:97","nodeType":"YulAssignment","src":"28909:25:97","value":{"arguments":[{"arguments":[{"name":"x","nativeSrc":"28922:1:97","nodeType":"YulIdentifier","src":"28922:1:97"},{"name":"_1","nativeSrc":"28925:2:97","nodeType":"YulIdentifier","src":"28925:2:97"}],"functionName":{"name":"and","nativeSrc":"28918:3:97","nodeType":"YulIdentifier","src":"28918:3:97"},"nativeSrc":"28918:10:97","nodeType":"YulFunctionCall","src":"28918:10:97"},{"name":"y_1","nativeSrc":"28930:3:97","nodeType":"YulIdentifier","src":"28930:3:97"}],"functionName":{"name":"div","nativeSrc":"28914:3:97","nodeType":"YulIdentifier","src":"28914:3:97"},"nativeSrc":"28914:20:97","nodeType":"YulFunctionCall","src":"28914:20:97"},"variableNames":[{"name":"r","nativeSrc":"28909:1:97","nodeType":"YulIdentifier","src":"28909:1:97"}]}]},"name":"checked_div_t_uint128","nativeSrc":"28724:216:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"28755:1:97","nodeType":"YulTypedName","src":"28755:1:97","type":""},{"name":"y","nativeSrc":"28758:1:97","nodeType":"YulTypedName","src":"28758:1:97","type":""}],"returnVariables":[{"name":"r","nativeSrc":"28764:1:97","nodeType":"YulTypedName","src":"28764:1:97","type":""}],"src":"28724:216:97"},{"body":{"nativeSrc":"29172:355:97","nodeType":"YulBlock","src":"29172:355:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"29189:9:97","nodeType":"YulIdentifier","src":"29189:9:97"},{"arguments":[{"name":"value0","nativeSrc":"29204:6:97","nodeType":"YulIdentifier","src":"29204:6:97"},{"kind":"number","nativeSrc":"29212:6:97","nodeType":"YulLiteral","src":"29212:6:97","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"29200:3:97","nodeType":"YulIdentifier","src":"29200:3:97"},"nativeSrc":"29200:19:97","nodeType":"YulFunctionCall","src":"29200:19:97"}],"functionName":{"name":"mstore","nativeSrc":"29182:6:97","nodeType":"YulIdentifier","src":"29182:6:97"},"nativeSrc":"29182:38:97","nodeType":"YulFunctionCall","src":"29182:38:97"},"nativeSrc":"29182:38:97","nodeType":"YulExpressionStatement","src":"29182:38:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29240:9:97","nodeType":"YulIdentifier","src":"29240:9:97"},{"kind":"number","nativeSrc":"29251:2:97","nodeType":"YulLiteral","src":"29251:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29236:3:97","nodeType":"YulIdentifier","src":"29236:3:97"},"nativeSrc":"29236:18:97","nodeType":"YulFunctionCall","src":"29236:18:97"},{"kind":"number","nativeSrc":"29256:3:97","nodeType":"YulLiteral","src":"29256:3:97","type":"","value":"128"}],"functionName":{"name":"mstore","nativeSrc":"29229:6:97","nodeType":"YulIdentifier","src":"29229:6:97"},"nativeSrc":"29229:31:97","nodeType":"YulFunctionCall","src":"29229:31:97"},"nativeSrc":"29229:31:97","nodeType":"YulExpressionStatement","src":"29229:31:97"},{"nativeSrc":"29269:76:97","nodeType":"YulVariableDeclaration","src":"29269:76:97","value":{"arguments":[{"name":"value1","nativeSrc":"29309:6:97","nodeType":"YulIdentifier","src":"29309:6:97"},{"name":"value2","nativeSrc":"29317:6:97","nodeType":"YulIdentifier","src":"29317:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"29329:9:97","nodeType":"YulIdentifier","src":"29329:9:97"},{"kind":"number","nativeSrc":"29340:3:97","nodeType":"YulLiteral","src":"29340:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"29325:3:97","nodeType":"YulIdentifier","src":"29325:3:97"},"nativeSrc":"29325:19:97","nodeType":"YulFunctionCall","src":"29325:19:97"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"29283:25:97","nodeType":"YulIdentifier","src":"29283:25:97"},"nativeSrc":"29283:62:97","nodeType":"YulFunctionCall","src":"29283:62:97"},"variables":[{"name":"tail_1","nativeSrc":"29273:6:97","nodeType":"YulTypedName","src":"29273:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29365:9:97","nodeType":"YulIdentifier","src":"29365:9:97"},{"kind":"number","nativeSrc":"29376:2:97","nodeType":"YulLiteral","src":"29376:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"29361:3:97","nodeType":"YulIdentifier","src":"29361:3:97"},"nativeSrc":"29361:18:97","nodeType":"YulFunctionCall","src":"29361:18:97"},{"arguments":[{"name":"value3","nativeSrc":"29385:6:97","nodeType":"YulIdentifier","src":"29385:6:97"},{"kind":"number","nativeSrc":"29393:18:97","nodeType":"YulLiteral","src":"29393:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"29381:3:97","nodeType":"YulIdentifier","src":"29381:3:97"},"nativeSrc":"29381:31:97","nodeType":"YulFunctionCall","src":"29381:31:97"}],"functionName":{"name":"mstore","nativeSrc":"29354:6:97","nodeType":"YulIdentifier","src":"29354:6:97"},"nativeSrc":"29354:59:97","nodeType":"YulFunctionCall","src":"29354:59:97"},"nativeSrc":"29354:59:97","nodeType":"YulExpressionStatement","src":"29354:59:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29433:9:97","nodeType":"YulIdentifier","src":"29433:9:97"},{"kind":"number","nativeSrc":"29444:2:97","nodeType":"YulLiteral","src":"29444:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"29429:3:97","nodeType":"YulIdentifier","src":"29429:3:97"},"nativeSrc":"29429:18:97","nodeType":"YulFunctionCall","src":"29429:18:97"},{"arguments":[{"name":"tail_1","nativeSrc":"29453:6:97","nodeType":"YulIdentifier","src":"29453:6:97"},{"name":"headStart","nativeSrc":"29461:9:97","nodeType":"YulIdentifier","src":"29461:9:97"}],"functionName":{"name":"sub","nativeSrc":"29449:3:97","nodeType":"YulIdentifier","src":"29449:3:97"},"nativeSrc":"29449:22:97","nodeType":"YulFunctionCall","src":"29449:22:97"}],"functionName":{"name":"mstore","nativeSrc":"29422:6:97","nodeType":"YulIdentifier","src":"29422:6:97"},"nativeSrc":"29422:50:97","nodeType":"YulFunctionCall","src":"29422:50:97"},"nativeSrc":"29422:50:97","nodeType":"YulExpressionStatement","src":"29422:50:97"},{"nativeSrc":"29481:40:97","nodeType":"YulAssignment","src":"29481:40:97","value":{"arguments":[{"name":"value4","nativeSrc":"29506:6:97","nodeType":"YulIdentifier","src":"29506:6:97"},{"name":"tail_1","nativeSrc":"29514:6:97","nodeType":"YulIdentifier","src":"29514:6:97"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"29489:16:97","nodeType":"YulIdentifier","src":"29489:16:97"},"nativeSrc":"29489:32:97","nodeType":"YulFunctionCall","src":"29489:32:97"},"variableNames":[{"name":"tail","nativeSrc":"29481:4:97","nodeType":"YulIdentifier","src":"29481:4:97"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"28945:582:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29109:9:97","nodeType":"YulTypedName","src":"29109:9:97","type":""},{"name":"value4","nativeSrc":"29120:6:97","nodeType":"YulTypedName","src":"29120:6:97","type":""},{"name":"value3","nativeSrc":"29128:6:97","nodeType":"YulTypedName","src":"29128:6:97","type":""},{"name":"value2","nativeSrc":"29136:6:97","nodeType":"YulTypedName","src":"29136:6:97","type":""},{"name":"value1","nativeSrc":"29144:6:97","nodeType":"YulTypedName","src":"29144:6:97","type":""},{"name":"value0","nativeSrc":"29152:6:97","nodeType":"YulTypedName","src":"29152:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"29163:4:97","nodeType":"YulTypedName","src":"29163:4:97","type":""}],"src":"28945:582:97"},{"body":{"nativeSrc":"29564:152:97","nodeType":"YulBlock","src":"29564:152:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"29581:1:97","nodeType":"YulLiteral","src":"29581:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"29584:77:97","nodeType":"YulLiteral","src":"29584:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"29574:6:97","nodeType":"YulIdentifier","src":"29574:6:97"},"nativeSrc":"29574:88:97","nodeType":"YulFunctionCall","src":"29574:88:97"},"nativeSrc":"29574:88:97","nodeType":"YulExpressionStatement","src":"29574:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"29678:1:97","nodeType":"YulLiteral","src":"29678:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"29681:4:97","nodeType":"YulLiteral","src":"29681:4:97","type":"","value":"0x31"}],"functionName":{"name":"mstore","nativeSrc":"29671:6:97","nodeType":"YulIdentifier","src":"29671:6:97"},"nativeSrc":"29671:15:97","nodeType":"YulFunctionCall","src":"29671:15:97"},"nativeSrc":"29671:15:97","nodeType":"YulExpressionStatement","src":"29671:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"29702:1:97","nodeType":"YulLiteral","src":"29702:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"29705:4:97","nodeType":"YulLiteral","src":"29705:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"29695:6:97","nodeType":"YulIdentifier","src":"29695:6:97"},"nativeSrc":"29695:15:97","nodeType":"YulFunctionCall","src":"29695:15:97"},"nativeSrc":"29695:15:97","nodeType":"YulExpressionStatement","src":"29695:15:97"}]},"name":"panic_error_0x31","nativeSrc":"29532:184:97","nodeType":"YulFunctionDefinition","src":"29532:184:97"},{"body":{"nativeSrc":"29895:171:97","nodeType":"YulBlock","src":"29895:171:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"29912:9:97","nodeType":"YulIdentifier","src":"29912:9:97"},{"kind":"number","nativeSrc":"29923:2:97","nodeType":"YulLiteral","src":"29923:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"29905:6:97","nodeType":"YulIdentifier","src":"29905:6:97"},"nativeSrc":"29905:21:97","nodeType":"YulFunctionCall","src":"29905:21:97"},"nativeSrc":"29905:21:97","nodeType":"YulExpressionStatement","src":"29905:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29946:9:97","nodeType":"YulIdentifier","src":"29946:9:97"},{"kind":"number","nativeSrc":"29957:2:97","nodeType":"YulLiteral","src":"29957:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29942:3:97","nodeType":"YulIdentifier","src":"29942:3:97"},"nativeSrc":"29942:18:97","nodeType":"YulFunctionCall","src":"29942:18:97"},{"kind":"number","nativeSrc":"29962:2:97","nodeType":"YulLiteral","src":"29962:2:97","type":"","value":"21"}],"functionName":{"name":"mstore","nativeSrc":"29935:6:97","nodeType":"YulIdentifier","src":"29935:6:97"},"nativeSrc":"29935:30:97","nodeType":"YulFunctionCall","src":"29935:30:97"},"nativeSrc":"29935:30:97","nodeType":"YulExpressionStatement","src":"29935:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29985:9:97","nodeType":"YulIdentifier","src":"29985:9:97"},{"kind":"number","nativeSrc":"29996:2:97","nodeType":"YulLiteral","src":"29996:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"29981:3:97","nodeType":"YulIdentifier","src":"29981:3:97"},"nativeSrc":"29981:18:97","nodeType":"YulFunctionCall","src":"29981:18:97"},{"hexValue":"496e76616c69642061646170746572506172616d73","kind":"string","nativeSrc":"30001:23:97","nodeType":"YulLiteral","src":"30001:23:97","type":"","value":"Invalid adapterParams"}],"functionName":{"name":"mstore","nativeSrc":"29974:6:97","nodeType":"YulIdentifier","src":"29974:6:97"},"nativeSrc":"29974:51:97","nodeType":"YulFunctionCall","src":"29974:51:97"},"nativeSrc":"29974:51:97","nodeType":"YulExpressionStatement","src":"29974:51:97"},{"nativeSrc":"30034:26:97","nodeType":"YulAssignment","src":"30034:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"30046:9:97","nodeType":"YulIdentifier","src":"30046:9:97"},{"kind":"number","nativeSrc":"30057:2:97","nodeType":"YulLiteral","src":"30057:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"30042:3:97","nodeType":"YulIdentifier","src":"30042:3:97"},"nativeSrc":"30042:18:97","nodeType":"YulFunctionCall","src":"30042:18:97"},"variableNames":[{"name":"tail","nativeSrc":"30034:4:97","nodeType":"YulIdentifier","src":"30034:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"29721:345:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29872:9:97","nodeType":"YulTypedName","src":"29872:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"29886:4:97","nodeType":"YulTypedName","src":"29886:4:97","type":""}],"src":"29721:345:97"},{"body":{"nativeSrc":"30245:168:97","nodeType":"YulBlock","src":"30245:168:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"30262:9:97","nodeType":"YulIdentifier","src":"30262:9:97"},{"kind":"number","nativeSrc":"30273:2:97","nodeType":"YulLiteral","src":"30273:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"30255:6:97","nodeType":"YulIdentifier","src":"30255:6:97"},"nativeSrc":"30255:21:97","nodeType":"YulFunctionCall","src":"30255:21:97"},"nativeSrc":"30255:21:97","nodeType":"YulExpressionStatement","src":"30255:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30296:9:97","nodeType":"YulIdentifier","src":"30296:9:97"},{"kind":"number","nativeSrc":"30307:2:97","nodeType":"YulLiteral","src":"30307:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"30292:3:97","nodeType":"YulIdentifier","src":"30292:3:97"},"nativeSrc":"30292:18:97","nodeType":"YulFunctionCall","src":"30292:18:97"},{"kind":"number","nativeSrc":"30312:2:97","nodeType":"YulLiteral","src":"30312:2:97","type":"","value":"18"}],"functionName":{"name":"mstore","nativeSrc":"30285:6:97","nodeType":"YulIdentifier","src":"30285:6:97"},"nativeSrc":"30285:30:97","nodeType":"YulFunctionCall","src":"30285:30:97"},"nativeSrc":"30285:30:97","nodeType":"YulExpressionStatement","src":"30285:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30335:9:97","nodeType":"YulIdentifier","src":"30335:9:97"},{"kind":"number","nativeSrc":"30346:2:97","nodeType":"YulLiteral","src":"30346:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"30331:3:97","nodeType":"YulIdentifier","src":"30331:3:97"},"nativeSrc":"30331:18:97","nodeType":"YulFunctionCall","src":"30331:18:97"},{"hexValue":"556e737570706f7274656420747854797065","kind":"string","nativeSrc":"30351:20:97","nodeType":"YulLiteral","src":"30351:20:97","type":"","value":"Unsupported txType"}],"functionName":{"name":"mstore","nativeSrc":"30324:6:97","nodeType":"YulIdentifier","src":"30324:6:97"},"nativeSrc":"30324:48:97","nodeType":"YulFunctionCall","src":"30324:48:97"},"nativeSrc":"30324:48:97","nodeType":"YulExpressionStatement","src":"30324:48:97"},{"nativeSrc":"30381:26:97","nodeType":"YulAssignment","src":"30381:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"30393:9:97","nodeType":"YulIdentifier","src":"30393:9:97"},{"kind":"number","nativeSrc":"30404:2:97","nodeType":"YulLiteral","src":"30404:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"30389:3:97","nodeType":"YulIdentifier","src":"30389:3:97"},"nativeSrc":"30389:18:97","nodeType":"YulFunctionCall","src":"30389:18:97"},"variableNames":[{"name":"tail","nativeSrc":"30381:4:97","nodeType":"YulIdentifier","src":"30381:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_4077c8a598c34a32244e743d20d5e8902c44c8500a46b23d668292bbbe5d2c83__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"30071:342:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"30222:9:97","nodeType":"YulTypedName","src":"30222:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"30236:4:97","nodeType":"YulTypedName","src":"30236:4:97","type":""}],"src":"30071:342:97"},{"body":{"nativeSrc":"30592:161:97","nodeType":"YulBlock","src":"30592:161:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"30609:9:97","nodeType":"YulIdentifier","src":"30609:9:97"},{"kind":"number","nativeSrc":"30620:2:97","nodeType":"YulLiteral","src":"30620:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"30602:6:97","nodeType":"YulIdentifier","src":"30602:6:97"},"nativeSrc":"30602:21:97","nodeType":"YulFunctionCall","src":"30602:21:97"},"nativeSrc":"30602:21:97","nodeType":"YulExpressionStatement","src":"30602:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30643:9:97","nodeType":"YulIdentifier","src":"30643:9:97"},{"kind":"number","nativeSrc":"30654:2:97","nodeType":"YulLiteral","src":"30654:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"30639:3:97","nodeType":"YulIdentifier","src":"30639:3:97"},"nativeSrc":"30639:18:97","nodeType":"YulFunctionCall","src":"30639:18:97"},{"kind":"number","nativeSrc":"30659:2:97","nodeType":"YulLiteral","src":"30659:2:97","type":"","value":"11"}],"functionName":{"name":"mstore","nativeSrc":"30632:6:97","nodeType":"YulIdentifier","src":"30632:6:97"},"nativeSrc":"30632:30:97","nodeType":"YulFunctionCall","src":"30632:30:97"},"nativeSrc":"30632:30:97","nodeType":"YulExpressionStatement","src":"30632:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30682:9:97","nodeType":"YulIdentifier","src":"30682:9:97"},{"kind":"number","nativeSrc":"30693:2:97","nodeType":"YulLiteral","src":"30693:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"30678:3:97","nodeType":"YulIdentifier","src":"30678:3:97"},"nativeSrc":"30678:18:97","nodeType":"YulFunctionCall","src":"30678:18:97"},{"hexValue":"47617320746f6f206c6f77","kind":"string","nativeSrc":"30698:13:97","nodeType":"YulLiteral","src":"30698:13:97","type":"","value":"Gas too low"}],"functionName":{"name":"mstore","nativeSrc":"30671:6:97","nodeType":"YulIdentifier","src":"30671:6:97"},"nativeSrc":"30671:41:97","nodeType":"YulFunctionCall","src":"30671:41:97"},"nativeSrc":"30671:41:97","nodeType":"YulExpressionStatement","src":"30671:41:97"},{"nativeSrc":"30721:26:97","nodeType":"YulAssignment","src":"30721:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"30733:9:97","nodeType":"YulIdentifier","src":"30733:9:97"},{"kind":"number","nativeSrc":"30744:2:97","nodeType":"YulLiteral","src":"30744:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"30729:3:97","nodeType":"YulIdentifier","src":"30729:3:97"},"nativeSrc":"30729:18:97","nodeType":"YulFunctionCall","src":"30729:18:97"},"variableNames":[{"name":"tail","nativeSrc":"30721:4:97","nodeType":"YulIdentifier","src":"30721:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_9b212afc0809d994d44a873b9f3c4e7606021e0d8d455342b5758a2ae53b8e2b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"30418:335:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"30569:9:97","nodeType":"YulTypedName","src":"30569:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"30583:4:97","nodeType":"YulTypedName","src":"30583:4:97","type":""}],"src":"30418:335:97"}]},"contents":"{\n    { }\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_decode_uint16(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_uint16(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffff))\n    }\n    function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_uint16t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function abi_decode_bytes(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let _1 := calldataload(offset)\n        let _2 := 0xffffffffffffffff\n        if gt(_1, _2) { panic_error_0x41() }\n        let _3 := 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n        if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, _1)\n        if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n        calldatacopy(add(memPtr, 0x20), add(offset, 0x20), _1)\n        mstore(add(add(memPtr, _1), 0x20), 0)\n        array := memPtr\n    }\n    function abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value1 := abi_decode_bytes(add(headStart, offset), dataEnd)\n        value2 := calldataload(add(headStart, 64))\n    }\n    function abi_encode_bytes(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 0x20) }\n        {\n            let _1 := 0x20\n            mstore(add(add(pos, i), _1), mload(add(add(value, i), _1)))\n        }\n        mstore(add(add(pos, length), 0x20), 0)\n        end := add(add(pos, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 0x20)\n    }\n    function abi_encode_tuple_t_address_t_uint64_t_bytes_memory_ptr__to_t_address_t_uint64_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 32), and(value1, 0xffffffffffffffff))\n        mstore(add(headStart, 64), 96)\n        tail := abi_encode_bytes(value2, add(headStart, 96))\n    }\n    function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_bytes(value0, add(headStart, 32))\n    }\n    function abi_decode_uint128(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_uint64(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_uint128t_uint128t_uint128t_uint64t_uint64(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n        value0 := abi_decode_uint128(headStart)\n        value1 := abi_decode_uint128(add(headStart, 32))\n        value2 := abi_decode_uint128(add(headStart, 64))\n        value3 := abi_decode_uint64(add(headStart, 96))\n        value4 := abi_decode_uint64(add(headStart, 128))\n    }\n    function abi_decode_tuple_t_uint16t_addresst_bytes_memory_ptrt_boolt_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        let value := calldataload(add(headStart, 32))\n        validator_revert_address(value)\n        value1 := value\n        let offset := calldataload(add(headStart, 64))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        value2 := abi_decode_bytes(add(headStart, offset), dataEnd)\n        let value_1 := calldataload(add(headStart, 96))\n        if iszero(eq(value_1, iszero(iszero(value_1)))) { revert(0, 0) }\n        value3 := value_1\n        let offset_1 := calldataload(add(headStart, 128))\n        if gt(offset_1, _1) { revert(0, 0) }\n        value4 := abi_decode_bytes(add(headStart, offset_1), dataEnd)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_uint16t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value1 := abi_decode_bytes(add(headStart, offset), dataEnd)\n    }\n    function abi_encode_tuple_t_uint64_t_address_t_bytes32__to_t_uint64_t_address_t_bytes32__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, and(value0, 0xffffffffffffffff))\n        mstore(add(headStart, 32), and(value1, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 64), value2)\n    }\n    function abi_decode_tuple_t_uint16t_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        let value := calldataload(add(headStart, 32))\n        validator_revert_address(value)\n        value1 := value\n    }\n    function abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffff))\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_uint128_t_uint128_t_uint128_t_uint64_t_uint64__to_t_uint128_t_uint128_t_uint128_t_uint64_t_uint64__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 160)\n        let _1 := 0xffffffffffffffffffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), and(value2, _1))\n        let _2 := 0xffffffffffffffff\n        mstore(add(headStart, 96), and(value3, _2))\n        mstore(add(headStart, 128), and(value4, _2))\n    }\n    function abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        let offset := calldataload(add(headStart, 32))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n        let offset_1 := calldataload(add(headStart, 64))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n        value3 := value3_1\n        value4 := value4_1\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n    }\n    function abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_addresst_uint64t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7\n    {\n        if slt(sub(dataEnd, headStart), 192) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        let offset := calldataload(add(headStart, 32))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n        let value := calldataload(add(headStart, 64))\n        validator_revert_address(value)\n        value3 := value\n        value4 := abi_decode_uint64(add(headStart, 96))\n        value5 := calldataload(add(headStart, 128))\n        let offset_1 := calldataload(add(headStart, 160))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value6_1, value7_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n        value6 := value6_1\n        value7 := value7_1\n    }\n    function abi_decode_tuple_t_uint16t_bytes_memory_ptrt_bytes_calldata_ptrt_address_payablet_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n    {\n        if slt(sub(dataEnd, headStart), 192) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        let offset := calldataload(add(headStart, 32))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        value1 := abi_decode_bytes(add(headStart, offset), dataEnd)\n        let offset_1 := calldataload(add(headStart, 64))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n        let value := calldataload(add(headStart, 96))\n        validator_revert_address(value)\n        value4 := value\n        let value_1 := calldataload(add(headStart, 128))\n        validator_revert_address(value_1)\n        value5 := value_1\n        let offset_2 := calldataload(add(headStart, 160))\n        if gt(offset_2, _1) { revert(0, 0) }\n        value6 := abi_decode_bytes(add(headStart, offset_2), dataEnd)\n    }\n    function abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        value1 := abi_decode_uint16(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n        let offset := calldataload(add(headStart, 96))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value3 := abi_decode_bytes(add(headStart, offset), dataEnd)\n    }\n    function abi_decode_tuple_t_uint16t_uint16t_addresst_uint256(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        value1 := abi_decode_uint16(add(headStart, 32))\n        let value := calldataload(add(headStart, 64))\n        validator_revert_address(value)\n        value2 := value\n        value3 := calldataload(add(headStart, 96))\n    }\n    function abi_decode_tuple_t_bytes_memory_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value0 := abi_decode_bytes(add(headStart, offset), dataEnd)\n    }\n    function abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        calldatacopy(pos, value0, value1)\n        let _1 := add(pos, value1)\n        mstore(_1, 0)\n        end := _1\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"LayerZeroMock: no stored payload\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_3967011d6285a9dce57c3ff82ee9dd83446fd39eaaeb6fa26af022508e44801b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"LayerZeroMock: invalid caller\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_bytes_calldata(start, length, pos) -> end\n    {\n        mstore(pos, length)\n        calldatacopy(add(pos, 0x20), start, length)\n        mstore(add(add(pos, length), 0x20), 0)\n        end := add(add(pos, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 0x20)\n    }\n    function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xffff))\n        mstore(add(headStart, 32), 64)\n        tail := abi_encode_bytes_calldata(value1, value2, add(headStart, 64))\n    }\n    function abi_encode_tuple_t_stringliteral_5d0b005579c4d5f607baec096f4a22c77289f237586c7362a7902ea2a3c322fe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 30)\n        mstore(add(headStart, 64), \"LayerZeroMock: invalid payload\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xffff))\n        mstore(add(headStart, 32), 128)\n        let tail_1 := abi_encode_bytes_calldata(value1, value2, add(headStart, 128))\n        mstore(add(headStart, 64), and(value3, 0xffffffffffffffff))\n        mstore(add(headStart, 96), sub(tail_1, headStart))\n        tail := abi_encode_bytes_calldata(value4, value5, tail_1)\n    }\n    function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_address__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_address__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xffff))\n        mstore(add(headStart, 32), 128)\n        tail := abi_encode_bytes_calldata(value1, value2, add(headStart, 128))\n        mstore(add(headStart, 64), and(value3, 0xffffffffffffffff))\n        mstore(add(headStart, 96), and(value4, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_stringliteral_82caa7769a2a1defb5e8d4082900c39c0f04eedfd5e921c1e3bf1d16730a12ab__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 36)\n        mstore(add(headStart, 64), \"LayerZeroMock: no receive reentr\")\n        mstore(add(headStart, 96), \"ancy\")\n        tail := add(headStart, 128)\n    }\n    function increment_t_uint64(value) -> ret\n    {\n        let _1 := 0xffffffffffffffff\n        let value_1 := and(value, _1)\n        if eq(value_1, _1) { panic_error_0x11() }\n        ret := add(value_1, 1)\n    }\n    function abi_encode_tuple_t_stringliteral_cfe15a20060cae4027edaeadac99a28b9a581999e01bac9619e7f52b82ee25ac__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 26)\n        mstore(add(headStart, 64), \"LayerZeroMock: wrong nonce\")\n        tail := add(headStart, 96)\n    }\n    function array_dataslot_bytes_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function clean_up_bytearray_end_slots_bytes_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            let _1 := 0\n            mstore(0, array)\n            let data := keccak256(0, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _2 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _2) { start := add(start, 1) }\n            { sstore(start, _1) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage(slot, src)\n    {\n        let newLen := mload(src)\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_bytes_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        let srcOffset_1 := 0x20\n        srcOffset := 0x20\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)\n            let dstPtr := array_dataslot_bytes_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n            {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, srcOffset_1)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        if gt(diff, x) { panic_error_0x11() }\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function copy_byte_array_to_storage_from_t_bytes_storage_to_t_bytes_storage(slot, src)\n    {\n        if eq(slot, src) { leave }\n        let newLen := extract_byte_array_length(sload(src))\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_bytes_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)\n            let src_1 := array_dataslot_bytes_storage(src)\n            let dstPtr := array_dataslot_bytes_storage(slot)\n            let i := srcOffset\n            for { } lt(i, loopEnd) { i := add(i, 0x20) }\n            {\n                sstore(dstPtr, sload(add(src_1, srcOffset)))\n                let _1 := 1\n                dstPtr := add(dstPtr, _1)\n                srcOffset := add(srcOffset, _1)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := sload(add(src_1, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\n                value := sload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n    function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_address_t_uint64_t_bytes_calldata_ptr_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xffff))\n        mstore(add(headStart, 32), 192)\n        let tail_1 := abi_encode_bytes_calldata(value1, value2, add(headStart, 192))\n        mstore(add(headStart, 64), and(value3, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 96), and(value4, 0xffffffffffffffff))\n        mstore(add(headStart, 128), sub(tail_1, headStart))\n        let tail_2 := abi_encode_bytes_calldata(value5, value6, tail_1)\n        mstore(add(headStart, 160), sub(tail_2, headStart))\n        tail := abi_encode_bytes(value7, tail_2)\n    }\n    function abi_encode_tuple_t_stringliteral_73b1d6d5ba54cd5e4e2ebace0c8623f647e51a2b5e72af7e7df83d716224bbcb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 33)\n        mstore(add(headStart, 64), \"LayerZeroMock: no send reentranc\")\n        mstore(add(headStart, 96), \"y\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_a84f16779931db7ec618d2bd334bd656888d24e7e320bdf2dd7a0a0862d1916b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 44)\n        mstore(add(headStart, 64), \"LayerZeroMock: incorrect remote \")\n        mstore(add(headStart, 96), \"address size\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_03f2c372695dfb7017d0d1b5b039a7a7c563c382ff38f9563e77eedca785e4df__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 55)\n        mstore(add(headStart, 64), \"LayerZeroMock: destination Layer\")\n        mstore(add(headStart, 96), \"Zero Endpoint not found\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_1d7a441e6351efbe3589b780f6d9098a5373ce9246e759367f3fb559adf16b4a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 41)\n        mstore(add(headStart, 64), \"LayerZeroMock: not enough native\")\n        mstore(add(headStart, 96), \" for fees\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos) -> end\n    { end := pos }\n    function abi_encode_tuple_t_stringliteral_dcfb2fb846bf29eed16ab1966cc303d2b0cbdcaede7d9e78ee4c30c1a8119790__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 31)\n        mstore(add(headStart, 64), \"LayerZeroMock: failed to refund\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000\n        mstore(pos, and(shl(96, value0), _1))\n        mstore(add(pos, 20), and(shl(96, value1), _1))\n        end := add(pos, 40)\n    }\n    function abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_uint256_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xffff))\n        mstore(add(headStart, 32), 192)\n        let tail_1 := abi_encode_bytes(value1, add(headStart, 192))\n        mstore(add(headStart, 64), and(value2, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 96), and(value3, 0xffffffffffffffff))\n        mstore(add(headStart, 128), value4)\n        mstore(add(headStart, 160), sub(tail_1, headStart))\n        tail := abi_encode_bytes(value5, tail_1)\n    }\n    function abi_encode_tuple_t_stringliteral_9ed68b89a8d51980886c19b98768f5848012f002a5537f0951f8528791f91206__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"LayerZeroMock: dstNativeAmt too \")\n        mstore(add(headStart, 96), \"large \")\n        tail := add(headStart, 128)\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        product := mul(x, y)\n        if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\n    }\n    function panic_error_0x12()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y) { panic_error_0x12() }\n        r := div(x, y)\n    }\n    function checked_mul_t_uint128(x, y) -> product\n    {\n        let _1 := 0xffffffffffffffffffffffffffffffff\n        let product_raw := mul(and(x, _1), and(y, _1))\n        product := and(product_raw, _1)\n        if iszero(eq(product, product_raw)) { panic_error_0x11() }\n    }\n    function checked_div_t_uint128(x, y) -> r\n    {\n        let _1 := 0xffffffffffffffffffffffffffffffff\n        let y_1 := and(y, _1)\n        if iszero(y_1) { panic_error_0x12() }\n        r := div(and(x, _1), y_1)\n    }\n    function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xffff))\n        mstore(add(headStart, 32), 128)\n        let tail_1 := abi_encode_bytes_calldata(value1, value2, add(headStart, 128))\n        mstore(add(headStart, 64), and(value3, 0xffffffffffffffff))\n        mstore(add(headStart, 96), sub(tail_1, headStart))\n        tail := abi_encode_bytes(value4, tail_1)\n    }\n    function panic_error_0x31()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x31)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 21)\n        mstore(add(headStart, 64), \"Invalid adapterParams\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_4077c8a598c34a32244e743d20d5e8902c44c8500a46b23d668292bbbe5d2c83__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 18)\n        mstore(add(headStart, 64), \"Unsupported txType\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_9b212afc0809d994d44a873b9f3c4e7606021e0d8d455342b5758a2ae53b8e2b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 11)\n        mstore(add(headStart, 64), \"Gas too low\")\n        tail := add(headStart, 96)\n    }\n}","id":97,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"60806040526004361061026a5760003560e01c80639924d33b11610153578063ca066b35116100cb578063e97a448a1161007f578063f9cd3ceb11610064578063f9cd3ceb146109b2578063fbba623b146109c8578063fdc07c70146109e857600080fd5b8063e97a448a14610964578063f5ecbdbc1461098057600080fd5b8063d23104f1116100b0578063d23104f11461090a578063da1a7c9a146102c4578063db14f3051461094957600080fd5b8063ca066b35146108c8578063cbed8b9c146108e957600080fd5b8063b6d9ef6011610122578063c2fa481311610107578063c2fa481314610852578063c580310014610872578063c81b383a1461088557600080fd5b8063b6d9ef60146107c4578063c08f15a1146107e457600080fd5b80639924d33b1461070f5780639c729da1146104e3578063aaff5f1614610762578063b20864991461078257600080fd5b80633408e470116101e657806371ba2fd6116101b55780637a1457481161019a5780637a145748146105e25780637f6df8e61461061b578063907c5e7e1461064957600080fd5b806371ba2fd6146104e357806376a386dc1461052857600080fd5b80633408e4701461046a5780633e0dd83e1461048357806340a7bb10146104a357806342d65a8d146104c357600080fd5b806310ddb1371161023d578063240de27711610222578063240de27714610357578063272bd3841461037d5780632c365e251461039f57600080fd5b806310ddb137146102a457806312a9ee6b1461032857600080fd5b806307d3277f1461026f57806307e0db17146102a4578063096568f6146102c45780630eaf6ea6146102f8575b600080fd5b34801561027b57600080fd5b5060045460055461028a919082565b604080519283526020830191909152015b60405180910390f35b3480156102b057600080fd5b506102c26102bf3660046127d7565b50565b005b3480156102d057600080fd5b506102e56102df366004612814565b50600190565b60405161ffff909116815260200161029b565b34801561030457600080fd5b5061031861031336600461287a565b610a08565b604051901515815260200161029b565b34801561033457600080fd5b506103486103433660046129a7565b610a4e565b60405161029b93929190612a62565b34801561036357600080fd5b506102c2610372366004612aaa565b600491909155600555565b34801561038957600080fd5b50610392610b6a565b60405161029b9190612acc565b3480156103ab57600080fd5b506102c26103ba366004612b17565b6fffffffffffffffffffffffffffffffff94851670010000000000000000000000000000000094861685021760025560038054939095167fffffffffffffffff0000000000000000000000000000000000000000000000009093169290921767ffffffffffffffff9182169093029290921777ffffffffffffffffffffffffffffffffffffffffffffffff1678010000000000000000000000000000000000000000000000009190921602179055565b34801561047657600080fd5b5060015461ffff166102e5565b34801561048f57600080fd5b506001546103189062010000900460ff1681565b3480156104af57600080fd5b5061028a6104be366004612b7c565b610bf8565b3480156104cf57600080fd5b506102c26104de36600461287a565b610cf7565b3480156104ef57600080fd5b506105036104fe366004612814565b503090565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161029b565b34801561053457600080fd5b506105a7610543366004612c1d565b600a60209081526000928352604090922081518083018401805192815290840192909301919091209152805460019091015467ffffffffffffffff82169168010000000000000000900473ffffffffffffffffffffffffffffffffffffffff169083565b6040805167ffffffffffffffff909416845273ffffffffffffffffffffffffffffffffffffffff90921660208401529082015260600161029b565b3480156105ee57600080fd5b506106026105fd366004612c6b565b610e68565b60405167ffffffffffffffff909116815260200161029b565b34801561062757600080fd5b5061063b61063636600461287a565b610eae565b60405190815260200161029b565b34801561065557600080fd5b506002546003546106c1916fffffffffffffffffffffffffffffffff80821692700100000000000000000000000000000000928390048216929181169167ffffffffffffffff908204811691780100000000000000000000000000000000000000000000000090041685565b604080516fffffffffffffffffffffffffffffffff96871681529486166020860152929094169183019190915267ffffffffffffffff9081166060830152909116608082015260a00161029b565b34801561071b57600080fd5b5061060261072a366004612c1d565b6008602090815260009283526040909220815180830184018051928152908401929093019190912091525467ffffffffffffffff1681565b34801561076e57600080fd5b506102c261077d366004612ca2565b610eea565b34801561078e57600080fd5b5061060261079d366004612c6b565b600960209081526000928352604080842090915290825290205467ffffffffffffffff1681565b3480156107d057600080fd5b506102c26107df366004612d23565b600655565b3480156107f057600080fd5b506102c26107ff366004612d3c565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260208190526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001691909216179055565b34801561085e57600080fd5b506102c261086d366004612d5a565b611152565b6102c2610880366004612e0a565b611aab565b34801561089157600080fd5b506105036108a0366004612814565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b3480156108d457600080fd5b50610318600c54610100900460ff1660021490565b3480156108f557600080fd5b506102c2610904366004612ed2565b50505050565b34801561091657600080fd5b506102c2600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff1662010000179055565b34801561095557600080fd5b506001546102e59061ffff1681565b34801561097057600080fd5b50610318600c5460ff1660021490565b34801561098c57600080fd5b5061039261099b366004612f3a565b604080516020810190915260008152949350505050565b3480156109be57600080fd5b5061063b60065481565b3480156109d457600080fd5b506102c26109e3366004612f87565b612127565b3480156109f457600080fd5b50610602610a0336600461287a565b612137565b61ffff83166000908152600a60205260408082209051829190610a2e9086908690612fc4565b9081526040519081900360200190206001015415159150505b9392505050565b600b6020908152600084815260409020835180850183018051928152908301928501929092209152805482908110610a8557600080fd5b60009182526020909120600290910201805460018201805473ffffffffffffffffffffffffffffffffffffffff831696507401000000000000000000000000000000000000000090920467ffffffffffffffff169450919250610ae790612fd4565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1390612fd4565b8015610b605780601f10610b3557610100808354040283529160200191610b60565b820191906000526020600020905b815481529060010190602001808311610b4357829003601f168201915b5050505050905083565b60078054610b7790612fd4565b80601f0160208091040260200160405190810160405280929190818152602001828054610ba390612fd4565b8015610bf05780601f10610bc557610100808354040283529160200191610bf0565b820191906000526020600020905b815481529060010190602001808311610bd357829003601f168201915b505050505081565b600080600080845111610c955760078054610c1290612fd4565b80601f0160208091040260200160405190810160405280929190818152602001828054610c3e90612fd4565b8015610c8b5780601f10610c6057610100808354040283529160200191610c8b565b820191906000526020600020905b815481529060010190602001808311610c6e57829003601f168201915b5050505050610c97565b835b90506000610caa8960018a8a518661217d565b90506000610cbb8783600654612398565b905086610ccb5780945084610cd0565b809350835b50600654610cde8387613056565b610ce89190613056565b94505050509550959350505050565b61ffff83166000908152600a60205260408082209051610d1a9085908590612fc4565b9081526040519081900360200190206001810154909150610d825760405162461bcd60e51b815260206004820181905260248201527f4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f616460448201526064015b60405180910390fd5b805468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff163314610df45760405162461bcd60e51b815260206004820152601d60248201527f4c617965725a65726f4d6f636b3a20696e76616c69642063616c6c65720000006044820152606401610d79565b80547fffffffff00000000000000000000000000000000000000000000000000000000168155600060018201556040517f23d2684f396e92a6e2ff2d16f98e6fea00d50cb27a64b531bc0748f730211f9890610e55908690869086906130b2565b60405180910390a16109048484846123d5565b61ffff8216600090815260096020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205467ffffffffffffffff165b92915050565b61ffff83166000908152600b60205260408082209051610ed19085908590612fc4565b9081526040519081900360200190205490509392505050565b61ffff85166000908152600a60205260408082209051610f0d9087908790612fc4565b9081526040519081900360200190206001810154909150610f705760405162461bcd60e51b815260206004820181905260248201527f4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f61646044820152606401610d79565b805467ffffffffffffffff1682148015610fa4575080600101548383604051610f9a929190612fc4565b6040518091039020145b610ff05760405162461bcd60e51b815260206004820152601e60248201527f4c617965725a65726f4d6f636b3a20696e76616c6964207061796c6f616400006044820152606401610d79565b80547fffffffff000000000000000000000000000000000000000000000000000000008116825560006001830181905561ffff881681526008602052604080822090516801000000000000000090930473ffffffffffffffffffffffffffffffffffffffff16926110649089908990612fc4565b908152604051908190036020018120547e1d356700000000000000000000000000000000000000000000000000000000825267ffffffffffffffff16915073ffffffffffffffffffffffffffffffffffffffff831690621d3567906110d7908b908b908b9087908c908c906004016130d0565b600060405180830381600087803b1580156110f157600080fd5b505af1158015611105573d6000803e3d6000fd5b505050507f612434f39581c8e7d99746c9c20c6eb0ce8c0eb99f007c5719d620841370957d888888848660405161114095949392919061311e565b60405180910390a15050505050505050565b600c54610100900460ff166001146111d15760405162461bcd60e51b8152602060048201526024808201527f4c617965725a65726f4d6f636b3a206e6f2072656365697665207265656e747260448201527f616e6379000000000000000000000000000000000000000000000000000000006064820152608401610d79565b600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661020017905561ffff88166000908152600a60205260408082209051611220908a908a90612fc4565b90815260200160405180910390209050600860008a61ffff1661ffff168152602001908152602001600020888860405161125b929190612fc4565b90815260405190819003602001902080546000906112829067ffffffffffffffff16613174565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905567ffffffffffffffff168567ffffffffffffffff16146113095760405162461bcd60e51b815260206004820152601a60248201527f4c617965725a65726f4d6f636b3a2077726f6e67206e6f6e63650000000000006044820152606401610d79565b6001810154156116d15761ffff89166000908152600b60205260408082209051611336908b908b90612fc4565b90815260200160405180910390209050600060405180606001604052808973ffffffffffffffffffffffffffffffffffffffff1681526020018867ffffffffffffffff16815260200186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505091525082549091501561162b578154600181810184556000848152602090819020845160029094020180549185015167ffffffffffffffff1674010000000000000000000000000000000000000000027fffffffff0000000000000000000000000000000000000000000000000000000090921673ffffffffffffffffffffffffffffffffffffffff90941693909317178255604083015183929182019061145c90826131ec565b50505060005b825461147090600190613306565b8110156115795782818154811061148957611489613319565b9060005260206000209060020201838260016114a59190613056565b815481106114b5576114b5613319565b600091825260209091208254600290920201805473ffffffffffffffffffffffffffffffffffffffff9092167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117825583547fffffffff0000000000000000000000000000000000000000000000000000000090931617740100000000000000000000000000000000000000009283900467ffffffffffffffff1690920291909117815560018082019061156e90840182613348565b505050600101611462565b50808260008154811061158e5761158e613319565b6000918252602091829020835160029092020180549284015167ffffffffffffffff1674010000000000000000000000000000000000000000027fffffffff0000000000000000000000000000000000000000000000000000000090931673ffffffffffffffffffffffffffffffffffffffff909216919091179190911781556040820151600182019061162290826131ec565b509050506116ca565b8154600181810184556000848152602090819020845160029094020180549185015167ffffffffffffffff1674010000000000000000000000000000000000000000027fffffffff0000000000000000000000000000000000000000000000000000000090921673ffffffffffffffffffffffffffffffffffffffff9094169390931717825560408301518392918201906116c690826131ec565b5050505b5050611a74565b60015462010000900460ff16156118545760405180606001604052808484905067ffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff168152602001848460405161172c929190612fc4565b604080519182900390912090915261ffff8b166000908152600a602052819020905161175b908b908b90612fc4565b908152604080519182900360209081018320845181548684015173ffffffffffffffffffffffffffffffffffffffff1668010000000000000000027fffffffff0000000000000000000000000000000000000000000000000000000090911667ffffffffffffffff909216919091171781559382015160019094019390935591810182526000815290517f0f9e4d95b62f08222d612b5ab92039cd8fbbbea550a95e8df9f927436bbdf5db9161181f918c918c918c918c918c918b918b919061347d565b60405180910390a1600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff169055611a74565b6040517e1d356700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff871690621d35679086906118b0908d908d908d908c908b908b906004016130d0565b600060405180830381600088803b1580156118ca57600080fd5b5087f1935050505080156118dc575060015b611a74573d80801561190a576040519150601f19603f3d011682016040523d82523d6000602084013e61190f565b606091505b5060405180606001604052808585905067ffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff168152602001858560405161195a929190612fc4565b604080519182900390912090915261ffff8c166000908152600a6020528190209051611989908c908c90612fc4565b908152604080519182900360209081018320845181549286015173ffffffffffffffffffffffffffffffffffffffff1668010000000000000000027fffffffff0000000000000000000000000000000000000000000000000000000090931667ffffffffffffffff909116179190911781559201516001909201919091557f0f9e4d95b62f08222d612b5ab92039cd8fbbbea550a95e8df9f927436bbdf5db90611a42908c908c908c908c908c908b908b908a9061347d565b60405180910390a150600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff1690555b5050600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905550505050505050565b600c5460ff16600114611b265760405162461bcd60e51b815260206004820152602160248201527f4c617965725a65726f4d6f636b3a206e6f2073656e64207265656e7472616e6360448201527f79000000000000000000000000000000000000000000000000000000000000006064820152608401610d79565b600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660021790558551602814611bc85760405162461bcd60e51b815260206004820152602c60248201527f4c617965725a65726f4d6f636b3a20696e636f72726563742072656d6f74652060448201527f616464726573732073697a6500000000000000000000000000000000000000006064820152608401610d79565b601486015173ffffffffffffffffffffffffffffffffffffffff8082166000908152602081905260409020541680611c685760405162461bcd60e51b815260206004820152603760248201527f4c617965725a65726f4d6f636b3a2064657374696e6174696f6e204c6179657260448201527f5a65726f20456e64706f696e74206e6f7420666f756e640000000000000000006064820152608401610d79565b600080845111611d025760078054611c7f90612fd4565b80601f0160208091040260200160405190810160405280929190818152602001828054611cab90612fd4565b8015611cf85780601f10611ccd57610100808354040283529160200191611cf8565b820191906000526020600020905b815481529060010190602001808311611cdb57829003601f168201915b5050505050611d04565b835b90506000611d628b338b8b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505073ffffffffffffffffffffffffffffffffffffffff8a16151586610bf8565b50905080341015611ddb5760405162461bcd60e51b815260206004820152602960248201527f4c617965725a65726f4d6f636b3a206e6f7420656e6f756768206e617469766560448201527f20666f72206665657300000000000000000000000000000000000000000000006064820152608401610d79565b61ffff8b166000908152600960209081526040808320338452909152812080548290611e109067ffffffffffffffff16613174565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055905060008234611e459190613306565b90508015611eff5760008973ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114611ea7576040519150601f19603f3d011682016040523d82523d6000602084013e611eac565b606091505b5050905080611efd5760405162461bcd60e51b815260206004820152601f60248201527f4c617965725a65726f4d6f636b3a206661696c656420746f20726566756e64006044820152606401610d79565b505b6000806000611f0d8761262e565b91955093509150508115611fc95760008173ffffffffffffffffffffffffffffffffffffffff168360405160006040518083038185875af1925050503d8060008114611f75576040519150601f19603f3d011682016040523d82523d6000602084013e611f7a565b606091505b5050905080611fc757604051839073ffffffffffffffffffffffffffffffffffffffff8416907f2c7a964ca3de5ec1d42d9822f9bbd0eb142a59cc9f855e9d93813b773192c7a390600090a35b505b6040517fffffffffffffffffffffffffffffffffffffffff00000000000000000000000033606090811b821660208401528b901b166034820152600090604801604051602081830303815290604052905060008f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505090508973ffffffffffffffffffffffffffffffffffffffff1663c2fa4813600160009054906101000a900461ffff16848e8b8a876040518763ffffffff1660e01b81526004016120b6969594939291906134fd565b600060405180830381600087803b1580156120d057600080fd5b505af11580156120e4573d6000803e3d6000fd5b5050600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555050505050505050505050505050505050505050565b600761213382826131ec565b5050565b61ffff8316600090815260086020526040808220905161215a9085908590612fc4565b9081526040519081900360200190205467ffffffffffffffff1690509392505050565b60008060008061218c8561262e565b5092509250925060008361ffff16600203612238576003546fffffffffffffffffffffffffffffffff1682111561222b5760405162461bcd60e51b815260206004820152602660248201527f4c617965725a65726f4d6f636b3a206473744e6174697665416d7420746f6f2060448201527f6c617267652000000000000000000000000000000000000000000000000000006064820152608401610d79565b6122358282613056565b90505b600354600090612267908590700100000000000000000000000000000000900467ffffffffffffffff16613056565b60025461229a919070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1661355e565b90506122a68183613056565b6002549092506000906402540be400906122d2906fffffffffffffffffffffffffffffffff168561355e565b6122dc91906135a4565b6002546003549192506000916402540be400916fffffffffffffffffffffffffffffffff8082169261234b92780100000000000000000000000000000000000000000000000090910467ffffffffffffffff1691700100000000000000000000000000000000909104166135b8565b61235591906135b8565b61235f91906135ec565b6fffffffffffffffffffffffffffffffff16905061237d818b61355e565b6123879083613056565b9d9c50505050505050505050505050565b600083156123a95750600454610a47565b600554612710906123ba8486613056565b6123c4919061355e565b6123ce91906135a4565b9050610a47565b61ffff83166000908152600b602052604080822090516123f89085908590612fc4565b908152602001604051809103902090505b805415610904578054600090829061242390600190613306565b8154811061243357612433613319565b6000918252602091829020604080516060810182526002909302909101805473ffffffffffffffffffffffffffffffffffffffff8116845267ffffffffffffffff740100000000000000000000000000000000000000009091041693830193909352600183018054929392918401916124ab90612fd4565b80601f01602080910402602001604051908101604052809291908181526020018280546124d790612fd4565b80156125245780601f106124f957610100808354040283529160200191612524565b820191906000526020600020905b81548152906001019060200180831161250757829003601f168201915b5050505050815250509050806000015173ffffffffffffffffffffffffffffffffffffffff16621d3567868686856020015186604001516040518663ffffffff1660e01b815260040161257b95949392919061361b565b600060405180830381600087803b15801561259557600080fd5b505af11580156125a9573d6000803e3d6000fd5b50505050818054806125bd576125bd613667565b60008281526020812060027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9093019283020180547fffffffff00000000000000000000000000000000000000000000000000000000168155906126246001830182612772565b5050905550612409565b600080600080845160221480612645575060428551115b6126915760405162461bcd60e51b815260206004820152601560248201527f496e76616c69642061646170746572506172616d7300000000000000000000006044820152606401610d79565b60028501519350602285015192508361ffff16600114806126b657508361ffff166002145b6127025760405162461bcd60e51b815260206004820152601260248201527f556e737570706f727465642074785479706500000000000000000000000000006044820152606401610d79565b600083116127525760405162461bcd60e51b815260206004820152600b60248201527f47617320746f6f206c6f770000000000000000000000000000000000000000006044820152606401610d79565b8361ffff1660020361276b575050604283015160568401515b9193509193565b50805461277e90612fd4565b6000825580601f1061278e575050565b601f0160209004906000526020600020908101906102bf91905b808211156127bc57600081556001016127a8565b5090565b803561ffff811681146127d257600080fd5b919050565b6000602082840312156127e957600080fd5b610a47826127c0565b73ffffffffffffffffffffffffffffffffffffffff811681146102bf57600080fd5b60006020828403121561282657600080fd5b8135610a47816127f2565b60008083601f84011261284357600080fd5b50813567ffffffffffffffff81111561285b57600080fd5b60208301915083602082850101111561287357600080fd5b9250929050565b60008060006040848603121561288f57600080fd5b612898846127c0565b9250602084013567ffffffffffffffff8111156128b457600080fd5b6128c086828701612831565b9497909650939450505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261290d57600080fd5b813567ffffffffffffffff80821115612928576129286128cd565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561296e5761296e6128cd565b8160405283815286602085880101111561298757600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806000606084860312156129bc57600080fd5b6129c5846127c0565b9250602084013567ffffffffffffffff8111156129e157600080fd5b6129ed868287016128fc565b925050604084013590509250925092565b6000815180845260005b81811015612a2457602081850181015186830182015201612a08565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b73ffffffffffffffffffffffffffffffffffffffff8416815267ffffffffffffffff83166020820152606060408201526000612aa160608301846129fe565b95945050505050565b60008060408385031215612abd57600080fd5b50508035926020909101359150565b602081526000610a4760208301846129fe565b80356fffffffffffffffffffffffffffffffff811681146127d257600080fd5b803567ffffffffffffffff811681146127d257600080fd5b600080600080600060a08688031215612b2f57600080fd5b612b3886612adf565b9450612b4660208701612adf565b9350612b5460408701612adf565b9250612b6260608701612aff565b9150612b7060808701612aff565b90509295509295909350565b600080600080600060a08688031215612b9457600080fd5b612b9d866127c0565b94506020860135612bad816127f2565b9350604086013567ffffffffffffffff80821115612bca57600080fd5b612bd689838a016128fc565b9450606088013591508115158214612bed57600080fd5b90925060808701359080821115612c0357600080fd5b50612c10888289016128fc565b9150509295509295909350565b60008060408385031215612c3057600080fd5b612c39836127c0565b9150602083013567ffffffffffffffff811115612c5557600080fd5b612c61858286016128fc565b9150509250929050565b60008060408385031215612c7e57600080fd5b612c87836127c0565b91506020830135612c97816127f2565b809150509250929050565b600080600080600060608688031215612cba57600080fd5b612cc3866127c0565b9450602086013567ffffffffffffffff80821115612ce057600080fd5b612cec89838a01612831565b90965094506040880135915080821115612d0557600080fd5b50612d1288828901612831565b969995985093965092949392505050565b600060208284031215612d3557600080fd5b5035919050565b60008060408385031215612d4f57600080fd5b8235612c87816127f2565b60008060008060008060008060c0898b031215612d7657600080fd5b612d7f896127c0565b9750602089013567ffffffffffffffff80821115612d9c57600080fd5b612da88c838d01612831565b909950975060408b01359150612dbd826127f2565b819650612dcc60608c01612aff565b955060808b0135945060a08b0135915080821115612de957600080fd5b50612df68b828c01612831565b999c989b5096995094979396929594505050565b600080600080600080600060c0888a031215612e2557600080fd5b612e2e886127c0565b9650602088013567ffffffffffffffff80821115612e4b57600080fd5b612e578b838c016128fc565b975060408a0135915080821115612e6d57600080fd5b612e798b838c01612831565b909750955060608a01359150612e8e826127f2565b909350608089013590612ea0826127f2565b90925060a08901359080821115612eb657600080fd5b50612ec38a828b016128fc565b91505092959891949750929550565b60008060008060808587031215612ee857600080fd5b612ef1856127c0565b9350612eff602086016127c0565b925060408501359150606085013567ffffffffffffffff811115612f2257600080fd5b612f2e878288016128fc565b91505092959194509250565b60008060008060808587031215612f5057600080fd5b612f59856127c0565b9350612f67602086016127c0565b92506040850135612f77816127f2565b9396929550929360600135925050565b600060208284031215612f9957600080fd5b813567ffffffffffffffff811115612fb057600080fd5b612fbc848285016128fc565b949350505050565b8183823760009101908152919050565b600181811c90821680612fe857607f821691505b602082108103613021577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610ea857610ea8613027565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b61ffff84168152604060208201526000612aa1604083018486613069565b61ffff871681526080602082015260006130ee608083018789613069565b67ffffffffffffffff861660408401528281036060840152613111818587613069565b9998505050505050505050565b61ffff8616815260806020820152600061313c608083018688613069565b905067ffffffffffffffff8416604083015273ffffffffffffffffffffffffffffffffffffffff831660608301529695505050505050565b600067ffffffffffffffff80831681810361319157613191613027565b6001019392505050565b601f8211156131e7576000816000526020600020601f850160051c810160208610156131c45750805b601f850160051c820191505b818110156131e3578281556001016131d0565b5050505b505050565b815167ffffffffffffffff811115613206576132066128cd565b61321a816132148454612fd4565b8461319b565b602080601f83116001811461326d57600084156132375750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556131e3565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156132ba5788860151825594840194600190910190840161329b565b50858210156132f657878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b81810381811115610ea857610ea8613027565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b818103613353575050565b61335d8254612fd4565b67ffffffffffffffff811115613375576133756128cd565b613383816132148454612fd4565b6000601f8211600181146133d5576000831561339f5750848201545b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600385901b1c1916600184901b178455613476565b6000858152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0841690600086815260209020845b8381101561342d578286015482556001958601959091019060200161340d565b508583101561346957818501547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b50505060018360011b0184555b5050505050565b61ffff8916815260c06020820152600061349b60c08301898b613069565b73ffffffffffffffffffffffffffffffffffffffff8816604084015267ffffffffffffffff8716606084015282810360808401526134da818688613069565b905082810360a08401526134ee81856129fe565b9b9a5050505050505050505050565b61ffff8716815260c06020820152600061351a60c08301886129fe565b73ffffffffffffffffffffffffffffffffffffffff8716604084015267ffffffffffffffff8616606084015284608084015282810360a084015261311181856129fe565b8082028115828204841417610ea857610ea8613027565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000826135b3576135b3613575565b500490565b6fffffffffffffffffffffffffffffffff8181168382160280821691908281146135e4576135e4613027565b505092915050565b60006fffffffffffffffffffffffffffffffff8084168061360f5761360f613575565b92169190910492915050565b61ffff86168152608060208201526000613639608083018688613069565b67ffffffffffffffff85166040840152828103606084015261365b81856129fe565b98975050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea2646970667358221220b0ab817030528fa2895fd39b9e3a47c1921762205d7e5ede8791dca3421d241b64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x26A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9924D33B GT PUSH2 0x153 JUMPI DUP1 PUSH4 0xCA066B35 GT PUSH2 0xCB JUMPI DUP1 PUSH4 0xE97A448A GT PUSH2 0x7F JUMPI DUP1 PUSH4 0xF9CD3CEB GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xF9CD3CEB EQ PUSH2 0x9B2 JUMPI DUP1 PUSH4 0xFBBA623B EQ PUSH2 0x9C8 JUMPI DUP1 PUSH4 0xFDC07C70 EQ PUSH2 0x9E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xE97A448A EQ PUSH2 0x964 JUMPI DUP1 PUSH4 0xF5ECBDBC EQ PUSH2 0x980 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xD23104F1 GT PUSH2 0xB0 JUMPI DUP1 PUSH4 0xD23104F1 EQ PUSH2 0x90A JUMPI DUP1 PUSH4 0xDA1A7C9A EQ PUSH2 0x2C4 JUMPI DUP1 PUSH4 0xDB14F305 EQ PUSH2 0x949 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCA066B35 EQ PUSH2 0x8C8 JUMPI DUP1 PUSH4 0xCBED8B9C EQ PUSH2 0x8E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB6D9EF60 GT PUSH2 0x122 JUMPI DUP1 PUSH4 0xC2FA4813 GT PUSH2 0x107 JUMPI DUP1 PUSH4 0xC2FA4813 EQ PUSH2 0x852 JUMPI DUP1 PUSH4 0xC5803100 EQ PUSH2 0x872 JUMPI DUP1 PUSH4 0xC81B383A EQ PUSH2 0x885 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB6D9EF60 EQ PUSH2 0x7C4 JUMPI DUP1 PUSH4 0xC08F15A1 EQ PUSH2 0x7E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x9924D33B EQ PUSH2 0x70F JUMPI DUP1 PUSH4 0x9C729DA1 EQ PUSH2 0x4E3 JUMPI DUP1 PUSH4 0xAAFF5F16 EQ PUSH2 0x762 JUMPI DUP1 PUSH4 0xB2086499 EQ PUSH2 0x782 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3408E470 GT PUSH2 0x1E6 JUMPI DUP1 PUSH4 0x71BA2FD6 GT PUSH2 0x1B5 JUMPI DUP1 PUSH4 0x7A145748 GT PUSH2 0x19A JUMPI DUP1 PUSH4 0x7A145748 EQ PUSH2 0x5E2 JUMPI DUP1 PUSH4 0x7F6DF8E6 EQ PUSH2 0x61B JUMPI DUP1 PUSH4 0x907C5E7E EQ PUSH2 0x649 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x71BA2FD6 EQ PUSH2 0x4E3 JUMPI DUP1 PUSH4 0x76A386DC EQ PUSH2 0x528 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3408E470 EQ PUSH2 0x46A JUMPI DUP1 PUSH4 0x3E0DD83E EQ PUSH2 0x483 JUMPI DUP1 PUSH4 0x40A7BB10 EQ PUSH2 0x4A3 JUMPI DUP1 PUSH4 0x42D65A8D EQ PUSH2 0x4C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x10DDB137 GT PUSH2 0x23D JUMPI DUP1 PUSH4 0x240DE277 GT PUSH2 0x222 JUMPI DUP1 PUSH4 0x240DE277 EQ PUSH2 0x357 JUMPI DUP1 PUSH4 0x272BD384 EQ PUSH2 0x37D JUMPI DUP1 PUSH4 0x2C365E25 EQ PUSH2 0x39F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x10DDB137 EQ PUSH2 0x2A4 JUMPI DUP1 PUSH4 0x12A9EE6B EQ PUSH2 0x328 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D3277F EQ PUSH2 0x26F JUMPI DUP1 PUSH4 0x7E0DB17 EQ PUSH2 0x2A4 JUMPI DUP1 PUSH4 0x96568F6 EQ PUSH2 0x2C4 JUMPI DUP1 PUSH4 0xEAF6EA6 EQ PUSH2 0x2F8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH1 0x5 SLOAD PUSH2 0x28A SWAP2 SWAP1 DUP3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C2 PUSH2 0x2BF CALLDATASIZE PUSH1 0x4 PUSH2 0x27D7 JUMP JUMPDEST POP JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E5 PUSH2 0x2DF CALLDATASIZE PUSH1 0x4 PUSH2 0x2814 JUMP JUMPDEST POP PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x29B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x304 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x318 PUSH2 0x313 CALLDATASIZE PUSH1 0x4 PUSH2 0x287A JUMP JUMPDEST PUSH2 0xA08 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x29B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x334 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x348 PUSH2 0x343 CALLDATASIZE PUSH1 0x4 PUSH2 0x29A7 JUMP JUMPDEST PUSH2 0xA4E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x29B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2A62 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x363 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C2 PUSH2 0x372 CALLDATASIZE PUSH1 0x4 PUSH2 0x2AAA JUMP JUMPDEST PUSH1 0x4 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x5 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x389 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x392 PUSH2 0xB6A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x29B SWAP2 SWAP1 PUSH2 0x2ACC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C2 PUSH2 0x3BA CALLDATASIZE PUSH1 0x4 PUSH2 0x2B17 JUMP JUMPDEST PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP5 DUP6 AND PUSH17 0x100000000000000000000000000000000 SWAP5 DUP7 AND DUP6 MUL OR PUSH1 0x2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP4 SWAP1 SWAP6 AND PUSH32 0xFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR PUSH8 0xFFFFFFFFFFFFFFFF SWAP2 DUP3 AND SWAP1 SWAP4 MUL SWAP3 SWAP1 SWAP3 OR PUSH24 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH25 0x1000000000000000000000000000000000000000000000000 SWAP2 SWAP1 SWAP3 AND MUL OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x476 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0xFFFF AND PUSH2 0x2E5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x318 SWAP1 PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28A PUSH2 0x4BE CALLDATASIZE PUSH1 0x4 PUSH2 0x2B7C JUMP JUMPDEST PUSH2 0xBF8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C2 PUSH2 0x4DE CALLDATASIZE PUSH1 0x4 PUSH2 0x287A JUMP JUMPDEST PUSH2 0xCF7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x503 PUSH2 0x4FE CALLDATASIZE PUSH1 0x4 PUSH2 0x2814 JUMP JUMPDEST POP ADDRESS SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x29B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x534 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5A7 PUSH2 0x543 CALLDATASIZE PUSH1 0x4 PUSH2 0x2C1D JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP3 SWAP1 SWAP4 ADD SWAP2 SWAP1 SWAP2 KECCAK256 SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND SWAP2 PUSH9 0x10000000000000000 SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF SWAP1 SWAP5 AND DUP5 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 DUP5 ADD MSTORE SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x29B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x602 PUSH2 0x5FD CALLDATASIZE PUSH1 0x4 PUSH2 0x2C6B JUMP JUMPDEST PUSH2 0xE68 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x29B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x627 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x63B PUSH2 0x636 CALLDATASIZE PUSH1 0x4 PUSH2 0x287A JUMP JUMPDEST PUSH2 0xEAE JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x29B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x655 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD PUSH2 0x6C1 SWAP2 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND SWAP3 PUSH17 0x100000000000000000000000000000000 SWAP3 DUP4 SWAP1 DIV DUP3 AND SWAP3 SWAP2 DUP2 AND SWAP2 PUSH8 0xFFFFFFFFFFFFFFFF SWAP1 DUP3 DIV DUP2 AND SWAP2 PUSH25 0x1000000000000000000000000000000000000000000000000 SWAP1 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP7 DUP8 AND DUP2 MSTORE SWAP5 DUP7 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP3 SWAP1 SWAP5 AND SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH8 0xFFFFFFFFFFFFFFFF SWAP1 DUP2 AND PUSH1 0x60 DUP4 ADD MSTORE SWAP1 SWAP2 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD PUSH2 0x29B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x71B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x602 PUSH2 0x72A CALLDATASIZE PUSH1 0x4 PUSH2 0x2C1D JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP3 SWAP1 SWAP4 ADD SWAP2 SWAP1 SWAP2 KECCAK256 SWAP2 MSTORE SLOAD PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x76E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C2 PUSH2 0x77D CALLDATASIZE PUSH1 0x4 PUSH2 0x2CA2 JUMP JUMPDEST PUSH2 0xEEA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x78E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x602 PUSH2 0x79D CALLDATASIZE PUSH1 0x4 PUSH2 0x2C6B JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C2 PUSH2 0x7DF CALLDATASIZE PUSH1 0x4 PUSH2 0x2D23 JUMP JUMPDEST PUSH1 0x6 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C2 PUSH2 0x7FF CALLDATASIZE PUSH1 0x4 PUSH2 0x2D3C JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND SWAP2 SWAP1 SWAP3 AND OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x85E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C2 PUSH2 0x86D CALLDATASIZE PUSH1 0x4 PUSH2 0x2D5A JUMP JUMPDEST PUSH2 0x1152 JUMP JUMPDEST PUSH2 0x2C2 PUSH2 0x880 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E0A JUMP JUMPDEST PUSH2 0x1AAB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x891 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x503 PUSH2 0x8A0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2814 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP2 SWAP1 MSTORE SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x318 PUSH1 0xC SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C2 PUSH2 0x904 CALLDATASIZE PUSH1 0x4 PUSH2 0x2ED2 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x916 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C2 PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF AND PUSH3 0x10000 OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x955 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x2E5 SWAP1 PUSH2 0xFFFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x970 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x318 PUSH1 0xC SLOAD PUSH1 0xFF AND PUSH1 0x2 EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x98C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x392 PUSH2 0x99B CALLDATASIZE PUSH1 0x4 PUSH2 0x2F3A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x63B PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C2 PUSH2 0x9E3 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F87 JUMP JUMPDEST PUSH2 0x2127 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x602 PUSH2 0xA03 CALLDATASIZE PUSH1 0x4 PUSH2 0x287A JUMP JUMPDEST PUSH2 0x2137 JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD DUP3 SWAP2 SWAP1 PUSH2 0xA2E SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH2 0x2FC4 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD ISZERO ISZERO SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 MLOAD DUP1 DUP6 ADD DUP4 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP4 ADD SWAP3 DUP6 ADD SWAP3 SWAP1 SWAP3 KECCAK256 SWAP2 MSTORE DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0xA85 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 SWAP1 SWAP2 MUL ADD DUP1 SLOAD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP7 POP PUSH21 0x10000000000000000000000000000000000000000 SWAP1 SWAP3 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP5 POP SWAP2 SWAP3 POP PUSH2 0xAE7 SWAP1 PUSH2 0x2FD4 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xB13 SWAP1 PUSH2 0x2FD4 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB60 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB35 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB60 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB43 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP4 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH2 0xB77 SWAP1 PUSH2 0x2FD4 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xBA3 SWAP1 PUSH2 0x2FD4 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xBF0 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xBC5 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xBF0 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xBD3 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 MLOAD GT PUSH2 0xC95 JUMPI PUSH1 0x7 DUP1 SLOAD PUSH2 0xC12 SWAP1 PUSH2 0x2FD4 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xC3E SWAP1 PUSH2 0x2FD4 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xC8B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xC60 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xC8B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xC6E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0xC97 JUMP JUMPDEST DUP4 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xCAA DUP10 PUSH1 0x1 DUP11 DUP11 MLOAD DUP7 PUSH2 0x217D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xCBB DUP8 DUP4 PUSH1 0x6 SLOAD PUSH2 0x2398 JUMP JUMPDEST SWAP1 POP DUP7 PUSH2 0xCCB JUMPI DUP1 SWAP5 POP DUP5 PUSH2 0xCD0 JUMP JUMPDEST DUP1 SWAP4 POP DUP4 JUMPDEST POP PUSH1 0x6 SLOAD PUSH2 0xCDE DUP4 DUP8 PUSH2 0x3056 JUMP JUMPDEST PUSH2 0xCE8 SWAP2 SWAP1 PUSH2 0x3056 JUMP JUMPDEST SWAP5 POP POP POP POP SWAP6 POP SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xD1A SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2FC4 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SWAP2 POP PUSH2 0xD82 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073746F726564207061796C6F6164 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SLOAD PUSH9 0x10000000000000000 SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0xDF4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A20696E76616C69642063616C6C6572000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD79 JUMP JUMPDEST DUP1 SLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND DUP2 SSTORE PUSH1 0x0 PUSH1 0x1 DUP3 ADD SSTORE PUSH1 0x40 MLOAD PUSH32 0x23D2684F396E92A6E2FF2D16F98E6FEA00D50CB27A64B531BC0748F730211F98 SWAP1 PUSH2 0xE55 SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH2 0x30B2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x904 DUP5 DUP5 DUP5 PUSH2 0x23D5 JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xED1 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2FC4 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 SLOAD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xF0D SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH2 0x2FC4 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SWAP2 POP PUSH2 0xF70 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073746F726564207061796C6F6164 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD79 JUMP JUMPDEST DUP1 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF AND DUP3 EQ DUP1 ISZERO PUSH2 0xFA4 JUMPI POP DUP1 PUSH1 0x1 ADD SLOAD DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xF9A SWAP3 SWAP2 SWAP1 PUSH2 0x2FC4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ JUMPDEST PUSH2 0xFF0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A20696E76616C6964207061796C6F61640000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD79 JUMP JUMPDEST DUP1 SLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND DUP3 SSTORE PUSH1 0x0 PUSH1 0x1 DUP4 ADD DUP2 SWAP1 SSTORE PUSH2 0xFFFF DUP9 AND DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH9 0x10000000000000000 SWAP1 SWAP4 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP3 PUSH2 0x1064 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH2 0x2FC4 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD DUP2 KECCAK256 SLOAD PUSH31 0x1D356700000000000000000000000000000000000000000000000000000000 DUP3 MSTORE PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP2 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP1 PUSH3 0x1D3567 SWAP1 PUSH2 0x10D7 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP8 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH1 0x4 ADD PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1105 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x612434F39581C8E7D99746C9C20C6EB0CE8C0EB99F007C5719D620841370957D DUP9 DUP9 DUP9 DUP5 DUP7 PUSH1 0x40 MLOAD PUSH2 0x1140 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x311E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xC SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x1 EQ PUSH2 0x11D1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2072656365697665207265656E7472 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616E637900000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xD79 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND PUSH2 0x200 OR SWAP1 SSTORE PUSH2 0xFFFF DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1220 SWAP1 DUP11 SWAP1 DUP11 SWAP1 PUSH2 0x2FC4 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP PUSH1 0x8 PUSH1 0x0 DUP11 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH2 0x125B SWAP3 SWAP2 SWAP1 PUSH2 0x2FC4 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x1282 SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0x3174 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE PUSH8 0xFFFFFFFFFFFFFFFF AND DUP6 PUSH8 0xFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1309 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A2077726F6E67206E6F6E6365000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD79 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SLOAD ISZERO PUSH2 0x16D1 JUMPI PUSH2 0xFFFF DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1336 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH2 0x2FC4 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP7 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP SWAP2 MSTORE POP DUP3 SLOAD SWAP1 SWAP2 POP ISZERO PUSH2 0x162B JUMPI DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 SWAP1 DUP2 SWAP1 KECCAK256 DUP5 MLOAD PUSH1 0x2 SWAP1 SWAP5 MUL ADD DUP1 SLOAD SWAP2 DUP6 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP3 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR OR DUP3 SSTORE PUSH1 0x40 DUP4 ADD MLOAD DUP4 SWAP3 SWAP2 DUP3 ADD SWAP1 PUSH2 0x145C SWAP1 DUP3 PUSH2 0x31EC JUMP JUMPDEST POP POP POP PUSH1 0x0 JUMPDEST DUP3 SLOAD PUSH2 0x1470 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x3306 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x1579 JUMPI DUP3 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x1489 JUMPI PUSH2 0x1489 PUSH2 0x3319 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD DUP4 DUP3 PUSH1 0x1 PUSH2 0x14A5 SWAP2 SWAP1 PUSH2 0x3056 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x14B5 JUMPI PUSH2 0x14B5 PUSH2 0x3319 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 DUP3 SLOAD PUSH1 0x2 SWAP1 SWAP3 MUL ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR DUP3 SSTORE DUP4 SLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND OR PUSH21 0x10000000000000000000000000000000000000000 SWAP3 DUP4 SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP1 SWAP3 MUL SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE PUSH1 0x1 DUP1 DUP3 ADD SWAP1 PUSH2 0x156E SWAP1 DUP5 ADD DUP3 PUSH2 0x3348 JUMP JUMPDEST POP POP POP PUSH1 0x1 ADD PUSH2 0x1462 JUMP JUMPDEST POP DUP1 DUP3 PUSH1 0x0 DUP2 SLOAD DUP2 LT PUSH2 0x158E JUMPI PUSH2 0x158E PUSH2 0x3319 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 DUP4 MLOAD PUSH1 0x2 SWAP1 SWAP3 MUL ADD DUP1 SLOAD SWAP3 DUP5 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x1 DUP3 ADD SWAP1 PUSH2 0x1622 SWAP1 DUP3 PUSH2 0x31EC JUMP JUMPDEST POP SWAP1 POP POP PUSH2 0x16CA JUMP JUMPDEST DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 SWAP1 DUP2 SWAP1 KECCAK256 DUP5 MLOAD PUSH1 0x2 SWAP1 SWAP5 MUL ADD DUP1 SLOAD SWAP2 DUP6 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP3 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR OR DUP3 SSTORE PUSH1 0x40 DUP4 ADD MLOAD DUP4 SWAP3 SWAP2 DUP3 ADD SWAP1 PUSH2 0x16C6 SWAP1 DUP3 PUSH2 0x31EC JUMP JUMPDEST POP POP POP JUMPDEST POP POP PUSH2 0x1A74 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x1854 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP5 DUP5 SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x172C SWAP3 SWAP2 SWAP1 PUSH2 0x2FC4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 SWAP1 SWAP2 MSTORE PUSH2 0xFFFF DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE DUP2 SWAP1 KECCAK256 SWAP1 MLOAD PUSH2 0x175B SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH2 0x2FC4 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 DUP5 MLOAD DUP2 SLOAD DUP7 DUP5 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH9 0x10000000000000000 MUL PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP2 AND PUSH8 0xFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR OR DUP2 SSTORE SWAP4 DUP3 ADD MLOAD PUSH1 0x1 SWAP1 SWAP5 ADD SWAP4 SWAP1 SWAP4 SSTORE SWAP2 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 MLOAD PUSH32 0xF9E4D95B62F08222D612B5AB92039CD8FBBBEA550A95E8DF9F927436BBDF5DB SWAP2 PUSH2 0x181F SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP12 SWAP2 DUP12 SWAP2 SWAP1 PUSH2 0x347D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF AND SWAP1 SSTORE PUSH2 0x1A74 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH31 0x1D356700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND SWAP1 PUSH3 0x1D3567 SWAP1 DUP7 SWAP1 PUSH2 0x18B0 SWAP1 DUP14 SWAP1 DUP14 SWAP1 DUP14 SWAP1 DUP13 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH1 0x4 ADD PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP8 CALL SWAP4 POP POP POP POP DUP1 ISZERO PUSH2 0x18DC JUMPI POP PUSH1 0x1 JUMPDEST PUSH2 0x1A74 JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x190A JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x190F JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP6 SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x195A SWAP3 SWAP2 SWAP1 PUSH2 0x2FC4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 SWAP1 SWAP2 MSTORE PUSH2 0xFFFF DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE DUP2 SWAP1 KECCAK256 SWAP1 MLOAD PUSH2 0x1989 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH2 0x2FC4 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 DUP5 MLOAD DUP2 SLOAD SWAP3 DUP7 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH9 0x10000000000000000 MUL PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND PUSH8 0xFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND OR SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE SWAP3 ADD MLOAD PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH32 0xF9E4D95B62F08222D612B5AB92039CD8FBBBEA550A95E8DF9F927436BBDF5DB SWAP1 PUSH2 0x1A42 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP11 SWAP1 PUSH2 0x347D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF AND SWAP1 SSTORE JUMPDEST POP POP PUSH1 0xC DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND PUSH2 0x100 OR SWAP1 SSTORE POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ PUSH2 0x1B26 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073656E64207265656E7472616E63 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7900000000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xD79 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND PUSH1 0x2 OR SWAP1 SSTORE DUP6 MLOAD PUSH1 0x28 EQ PUSH2 0x1BC8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A20696E636F72726563742072656D6F746520 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616464726573732073697A650000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xD79 JUMP JUMPDEST PUSH1 0x14 DUP7 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND DUP1 PUSH2 0x1C68 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x37 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A2064657374696E6174696F6E204C61796572 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x5A65726F20456E64706F696E74206E6F7420666F756E64000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xD79 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 MLOAD GT PUSH2 0x1D02 JUMPI PUSH1 0x7 DUP1 SLOAD PUSH2 0x1C7F SWAP1 PUSH2 0x2FD4 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1CAB SWAP1 PUSH2 0x2FD4 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1CF8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1CCD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1CF8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1CDB JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0x1D04 JUMP JUMPDEST DUP4 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1D62 DUP12 CALLER DUP12 DUP12 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP11 AND ISZERO ISZERO DUP7 PUSH2 0xBF8 JUMP JUMPDEST POP SWAP1 POP DUP1 CALLVALUE LT ISZERO PUSH2 0x1DDB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F7420656E6F756768206E6174697665 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x20666F7220666565730000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xD79 JUMP JUMPDEST PUSH2 0xFFFF DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD DUP3 SWAP1 PUSH2 0x1E10 SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0x3174 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE SWAP1 POP PUSH1 0x0 DUP3 CALLVALUE PUSH2 0x1E45 SWAP2 SWAP1 PUSH2 0x3306 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x1EFF JUMPI PUSH1 0x0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1EA7 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1EAC JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1EFD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206661696C656420746F20726566756E6400 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD79 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1F0D DUP8 PUSH2 0x262E JUMP JUMPDEST SWAP2 SWAP6 POP SWAP4 POP SWAP2 POP POP DUP2 ISZERO PUSH2 0x1FC9 JUMPI PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1F75 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1F7A JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1FC7 JUMPI PUSH1 0x40 MLOAD DUP4 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND SWAP1 PUSH32 0x2C7A964CA3DE5EC1D42D9822F9BBD0EB142A59CC9F855E9D93813B773192C7A3 SWAP1 PUSH1 0x0 SWAP1 LOG3 JUMPDEST POP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 CALLER PUSH1 0x60 SWAP1 DUP2 SHL DUP3 AND PUSH1 0x20 DUP5 ADD MSTORE DUP12 SWAP1 SHL AND PUSH1 0x34 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH1 0x48 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH1 0x0 DUP16 DUP16 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP1 POP DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xC2FA4813 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND DUP5 DUP15 DUP12 DUP11 DUP8 PUSH1 0x40 MLOAD DUP8 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x20B6 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x34FD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x20D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x20E4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0xC DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND PUSH1 0x1 OR SWAP1 SSTORE POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x7 PUSH2 0x2133 DUP3 DUP3 PUSH2 0x31EC JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x215A SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2FC4 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x218C DUP6 PUSH2 0x262E JUMP JUMPDEST POP SWAP3 POP SWAP3 POP SWAP3 POP PUSH1 0x0 DUP4 PUSH2 0xFFFF AND PUSH1 0x2 SUB PUSH2 0x2238 JUMPI PUSH1 0x3 SLOAD PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 GT ISZERO PUSH2 0x222B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206473744E6174697665416D7420746F6F20 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C61726765200000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xD79 JUMP JUMPDEST PUSH2 0x2235 DUP3 DUP3 PUSH2 0x3056 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x2267 SWAP1 DUP6 SWAP1 PUSH17 0x100000000000000000000000000000000 SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0x3056 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x229A SWAP2 SWAP1 PUSH17 0x100000000000000000000000000000000 SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x355E JUMP JUMPDEST SWAP1 POP PUSH2 0x22A6 DUP2 DUP4 PUSH2 0x3056 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP3 POP PUSH1 0x0 SWAP1 PUSH5 0x2540BE400 SWAP1 PUSH2 0x22D2 SWAP1 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH2 0x355E JUMP JUMPDEST PUSH2 0x22DC SWAP2 SWAP1 PUSH2 0x35A4 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH5 0x2540BE400 SWAP2 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND SWAP3 PUSH2 0x234B SWAP3 PUSH25 0x1000000000000000000000000000000000000000000000000 SWAP1 SWAP2 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP2 PUSH17 0x100000000000000000000000000000000 SWAP1 SWAP2 DIV AND PUSH2 0x35B8 JUMP JUMPDEST PUSH2 0x2355 SWAP2 SWAP1 PUSH2 0x35B8 JUMP JUMPDEST PUSH2 0x235F SWAP2 SWAP1 PUSH2 0x35EC JUMP JUMPDEST PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH2 0x237D DUP2 DUP12 PUSH2 0x355E JUMP JUMPDEST PUSH2 0x2387 SWAP1 DUP4 PUSH2 0x3056 JUMP JUMPDEST SWAP14 SWAP13 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 ISZERO PUSH2 0x23A9 JUMPI POP PUSH1 0x4 SLOAD PUSH2 0xA47 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x2710 SWAP1 PUSH2 0x23BA DUP5 DUP7 PUSH2 0x3056 JUMP JUMPDEST PUSH2 0x23C4 SWAP2 SWAP1 PUSH2 0x355E JUMP JUMPDEST PUSH2 0x23CE SWAP2 SWAP1 PUSH2 0x35A4 JUMP JUMPDEST SWAP1 POP PUSH2 0xA47 JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x23F8 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2FC4 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 SLOAD ISZERO PUSH2 0x904 JUMPI DUP1 SLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 PUSH2 0x2423 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x3306 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x2433 JUMPI PUSH2 0x2433 PUSH2 0x3319 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE PUSH1 0x2 SWAP1 SWAP4 MUL SWAP1 SWAP2 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP5 MSTORE PUSH8 0xFFFFFFFFFFFFFFFF PUSH21 0x10000000000000000000000000000000000000000 SWAP1 SWAP2 DIV AND SWAP4 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 DUP4 ADD DUP1 SLOAD SWAP3 SWAP4 SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH2 0x24AB SWAP1 PUSH2 0x2FD4 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x24D7 SWAP1 PUSH2 0x2FD4 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2524 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x24F9 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2524 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2507 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP SWAP1 POP DUP1 PUSH1 0x0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH3 0x1D3567 DUP7 DUP7 DUP7 DUP6 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x257B SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x361B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2595 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x25A9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP2 DUP1 SLOAD DUP1 PUSH2 0x25BD JUMPI PUSH2 0x25BD PUSH2 0x3667 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP4 ADD SWAP3 DUP4 MUL ADD DUP1 SLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND DUP2 SSTORE SWAP1 PUSH2 0x2624 PUSH1 0x1 DUP4 ADD DUP3 PUSH2 0x2772 JUMP JUMPDEST POP POP SWAP1 SSTORE POP PUSH2 0x2409 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 MLOAD PUSH1 0x22 EQ DUP1 PUSH2 0x2645 JUMPI POP PUSH1 0x42 DUP6 MLOAD GT JUMPDEST PUSH2 0x2691 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E76616C69642061646170746572506172616D730000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD79 JUMP JUMPDEST PUSH1 0x2 DUP6 ADD MLOAD SWAP4 POP PUSH1 0x22 DUP6 ADD MLOAD SWAP3 POP DUP4 PUSH2 0xFFFF AND PUSH1 0x1 EQ DUP1 PUSH2 0x26B6 JUMPI POP DUP4 PUSH2 0xFFFF AND PUSH1 0x2 EQ JUMPDEST PUSH2 0x2702 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E737570706F72746564207478547970650000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD79 JUMP JUMPDEST PUSH1 0x0 DUP4 GT PUSH2 0x2752 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xB PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x47617320746F6F206C6F77000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD79 JUMP JUMPDEST DUP4 PUSH2 0xFFFF AND PUSH1 0x2 SUB PUSH2 0x276B JUMPI POP POP PUSH1 0x42 DUP4 ADD MLOAD PUSH1 0x56 DUP5 ADD MLOAD JUMPDEST SWAP2 SWAP4 POP SWAP2 SWAP4 JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x277E SWAP1 PUSH2 0x2FD4 JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x278E JUMPI POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2BF SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x27BC JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x27A8 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x27D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x27E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA47 DUP3 PUSH2 0x27C0 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x2BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2826 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xA47 DUP2 PUSH2 0x27F2 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2843 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x285B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x2873 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x288F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2898 DUP5 PUSH2 0x27C0 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x28B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x28C0 DUP7 DUP3 DUP8 ADD PUSH2 0x2831 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x290D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2928 JUMPI PUSH2 0x2928 PUSH2 0x28CD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x296E JUMPI PUSH2 0x296E PUSH2 0x28CD JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP7 PUSH1 0x20 DUP6 DUP9 ADD ADD GT ISZERO PUSH2 0x2987 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH1 0x20 DUP8 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x29BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x29C5 DUP5 PUSH2 0x27C0 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x29E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x29ED DUP7 DUP3 DUP8 ADD PUSH2 0x28FC JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2A24 JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x2A08 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND DUP2 MSTORE PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2AA1 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x29FE JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2ABD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xA47 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x29FE JUMP JUMPDEST DUP1 CALLDATALOAD PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x27D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x27D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2B2F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2B38 DUP7 PUSH2 0x2ADF JUMP JUMPDEST SWAP5 POP PUSH2 0x2B46 PUSH1 0x20 DUP8 ADD PUSH2 0x2ADF JUMP JUMPDEST SWAP4 POP PUSH2 0x2B54 PUSH1 0x40 DUP8 ADD PUSH2 0x2ADF JUMP JUMPDEST SWAP3 POP PUSH2 0x2B62 PUSH1 0x60 DUP8 ADD PUSH2 0x2AFF JUMP JUMPDEST SWAP2 POP PUSH2 0x2B70 PUSH1 0x80 DUP8 ADD PUSH2 0x2AFF JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2B94 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2B9D DUP7 PUSH2 0x27C0 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x2BAD DUP2 PUSH2 0x27F2 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2BCA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2BD6 DUP10 DUP4 DUP11 ADD PUSH2 0x28FC JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP2 ISZERO ISZERO DUP3 EQ PUSH2 0x2BED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 SWAP3 POP PUSH1 0x80 DUP8 ADD CALLDATALOAD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0x2C03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C10 DUP9 DUP3 DUP10 ADD PUSH2 0x28FC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2C30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2C39 DUP4 PUSH2 0x27C0 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2C55 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2C61 DUP6 DUP3 DUP7 ADD PUSH2 0x28FC JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2C7E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2C87 DUP4 PUSH2 0x27C0 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x2C97 DUP2 PUSH2 0x27F2 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2CBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2CC3 DUP7 PUSH2 0x27C0 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2CE0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2CEC DUP10 DUP4 DUP11 ADD PUSH2 0x2831 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2D05 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D12 DUP9 DUP3 DUP10 ADD PUSH2 0x2831 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2D35 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2D4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2C87 DUP2 PUSH2 0x27F2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x2D76 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2D7F DUP10 PUSH2 0x27C0 JUMP JUMPDEST SWAP8 POP PUSH1 0x20 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2D9C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2DA8 DUP13 DUP4 DUP14 ADD PUSH2 0x2831 JUMP JUMPDEST SWAP1 SWAP10 POP SWAP8 POP PUSH1 0x40 DUP12 ADD CALLDATALOAD SWAP2 POP PUSH2 0x2DBD DUP3 PUSH2 0x27F2 JUMP JUMPDEST DUP2 SWAP7 POP PUSH2 0x2DCC PUSH1 0x60 DUP13 ADD PUSH2 0x2AFF JUMP JUMPDEST SWAP6 POP PUSH1 0x80 DUP12 ADD CALLDATALOAD SWAP5 POP PUSH1 0xA0 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2DE9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DF6 DUP12 DUP3 DUP13 ADD PUSH2 0x2831 JUMP JUMPDEST SWAP10 SWAP13 SWAP9 SWAP12 POP SWAP7 SWAP10 POP SWAP5 SWAP8 SWAP4 SWAP7 SWAP3 SWAP6 SWAP5 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xC0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x2E25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2E2E DUP9 PUSH2 0x27C0 JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2E4B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2E57 DUP12 DUP4 DUP13 ADD PUSH2 0x28FC JUMP JUMPDEST SWAP8 POP PUSH1 0x40 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2E6D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2E79 DUP12 DUP4 DUP13 ADD PUSH2 0x2831 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP PUSH1 0x60 DUP11 ADD CALLDATALOAD SWAP2 POP PUSH2 0x2E8E DUP3 PUSH2 0x27F2 JUMP JUMPDEST SWAP1 SWAP4 POP PUSH1 0x80 DUP10 ADD CALLDATALOAD SWAP1 PUSH2 0x2EA0 DUP3 PUSH2 0x27F2 JUMP JUMPDEST SWAP1 SWAP3 POP PUSH1 0xA0 DUP10 ADD CALLDATALOAD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0x2EB6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EC3 DUP11 DUP3 DUP12 ADD PUSH2 0x28FC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2EE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2EF1 DUP6 PUSH2 0x27C0 JUMP JUMPDEST SWAP4 POP PUSH2 0x2EFF PUSH1 0x20 DUP7 ADD PUSH2 0x27C0 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2F22 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2F2E DUP8 DUP3 DUP9 ADD PUSH2 0x28FC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2F50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2F59 DUP6 PUSH2 0x27C0 JUMP JUMPDEST SWAP4 POP PUSH2 0x2F67 PUSH1 0x20 DUP7 ADD PUSH2 0x27C0 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x2F77 DUP2 PUSH2 0x27F2 JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2F99 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2FB0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2FBC DUP5 DUP3 DUP6 ADD PUSH2 0x28FC JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x2FE8 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x3021 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0xEA8 JUMPI PUSH2 0xEA8 PUSH2 0x3027 JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 ADD ADD MSTORE PUSH1 0x0 PUSH1 0x20 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 PUSH1 0x1F DUP5 ADD AND DUP5 ADD ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2AA1 PUSH1 0x40 DUP4 ADD DUP5 DUP7 PUSH2 0x3069 JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x30EE PUSH1 0x80 DUP4 ADD DUP8 DUP10 PUSH2 0x3069 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP7 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x3111 DUP2 DUP6 DUP8 PUSH2 0x3069 JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x313C PUSH1 0x80 DUP4 ADD DUP7 DUP9 PUSH2 0x3069 JUMP JUMPDEST SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP5 AND PUSH1 0x40 DUP4 ADD MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x60 DUP4 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP4 AND DUP2 DUP2 SUB PUSH2 0x3191 JUMPI PUSH2 0x3191 PUSH2 0x3027 JUMP JUMPDEST PUSH1 0x1 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x31E7 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x31C4 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x31E3 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x31D0 JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3206 JUMPI PUSH2 0x3206 PUSH2 0x28CD JUMP JUMPDEST PUSH2 0x321A DUP2 PUSH2 0x3214 DUP5 SLOAD PUSH2 0x2FD4 JUMP JUMPDEST DUP5 PUSH2 0x319B JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x326D JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x3237 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x31E3 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x32BA JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x329B JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x32F6 JUMPI DUP8 DUP6 ADD MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0xEA8 JUMPI PUSH2 0xEA8 PUSH2 0x3027 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB PUSH2 0x3353 JUMPI POP POP JUMP JUMPDEST PUSH2 0x335D DUP3 SLOAD PUSH2 0x2FD4 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3375 JUMPI PUSH2 0x3375 PUSH2 0x28CD JUMP JUMPDEST PUSH2 0x3383 DUP2 PUSH2 0x3214 DUP5 SLOAD PUSH2 0x2FD4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 GT PUSH1 0x1 DUP2 EQ PUSH2 0x33D5 JUMPI PUSH1 0x0 DUP4 ISZERO PUSH2 0x339F JUMPI POP DUP5 DUP3 ADD SLOAD JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP6 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP5 SWAP1 SHL OR DUP5 SSTORE PUSH2 0x3476 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP5 AND SWAP1 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 DUP5 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x342D JUMPI DUP3 DUP7 ADD SLOAD DUP3 SSTORE PUSH1 0x1 SWAP6 DUP7 ADD SWAP6 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD PUSH2 0x340D JUMP JUMPDEST POP DUP6 DUP4 LT ISZERO PUSH2 0x3469 JUMPI DUP2 DUP6 ADD SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP PUSH1 0x1 DUP4 PUSH1 0x1 SHL ADD DUP5 SSTORE JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP10 AND DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x349B PUSH1 0xC0 DUP4 ADD DUP10 DUP12 PUSH2 0x3069 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP9 AND PUSH1 0x40 DUP5 ADD MSTORE PUSH8 0xFFFFFFFFFFFFFFFF DUP8 AND PUSH1 0x60 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x34DA DUP2 DUP7 DUP9 PUSH2 0x3069 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x34EE DUP2 DUP6 PUSH2 0x29FE JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x351A PUSH1 0xC0 DUP4 ADD DUP9 PUSH2 0x29FE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND PUSH1 0x40 DUP5 ADD MSTORE PUSH8 0xFFFFFFFFFFFFFFFF DUP7 AND PUSH1 0x60 DUP5 ADD MSTORE DUP5 PUSH1 0x80 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x3111 DUP2 DUP6 PUSH2 0x29FE JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0xEA8 JUMPI PUSH2 0xEA8 PUSH2 0x3027 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x35B3 JUMPI PUSH2 0x35B3 PUSH2 0x3575 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 DUP2 AND DUP4 DUP3 AND MUL DUP1 DUP3 AND SWAP2 SWAP1 DUP3 DUP2 EQ PUSH2 0x35E4 JUMPI PUSH2 0x35E4 PUSH2 0x3027 JUMP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND DUP1 PUSH2 0x360F JUMPI PUSH2 0x360F PUSH2 0x3575 JUMP JUMPDEST SWAP3 AND SWAP2 SWAP1 SWAP2 DIV SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x3639 PUSH1 0x80 DUP4 ADD DUP7 DUP9 PUSH2 0x3069 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x365B DUP2 DUP6 PUSH2 0x29FE JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB0 0xAB DUP2 PUSH17 0x30528FA2895FD39B9E3A47C1921762205D PUSH31 0x5EDE8791DCA3421D241B64736F6C6343000819003300000000000000000000 ","sourceMap":"812:15736:24:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1139:42;;;;;;;;;;-1:-1:-1;1139:42:24;;;;;;;;;;;;;188:25:97;;;244:2;229:18;;222:34;;;;161:18;1139:42:24;;;;;;;;11848:78;;;;;;;;;;-1:-1:-1;11848:78:24;;;;;:::i;:::-;;;;;11394:133;;;;;;;;;;-1:-1:-1;11394:133:24;;;;;:::i;:::-;-1:-1:-1;11519:1:24;;11394:133;;;;1205:6:97;1193:19;;;1175:38;;1163:2;1148:18;11394:133:24;1031:188:97;10434:228:24;;;;;;;;;;-1:-1:-1;10434:228:24;;;;;:::i;:::-;;:::i;:::-;;;2227:14:97;;2220:22;2202:41;;2190:2;2175:18;10434:228:24;2062:187:97;1841:73:24;;;;;;;;;;-1:-1:-1;1841:73:24;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;13817:162::-;;;;;;;;;;-1:-1:-1;13817:162:24;;;;;:::i;:::-;13890:17;:34;;;;13934:26;:38;13817:162;1214:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;13333:478::-;;;;;;;;;;-1:-1:-1;13333:478:24;;;;;:::i;:::-;13537:47;;;;13594:53;;;;;;;13537:16;13594:53;13657:32;:51;;;;;;13718:35;;;;;;;;;;;;;;;;;;;13763:41;;;;;;;;;;;13333:478;9502:97;;;;;;;;;;-1:-1:-1;9581:11:24;;;;9502:97;;1042:26;;;;;;;;;;-1:-1:-1;1042:26:24;;;;;;;;;;;8748:748;;;;;;;;;;-1:-1:-1;8748:748:24;;;;;:::i;:::-;;:::i;12019:720::-;;;;;;;;;;-1:-1:-1;12019:720:24;;;;;:::i;:::-;;:::i;10792:121::-;;;;;;;;;;-1:-1:-1;10792:121:24;;;;;:::i;:::-;-1:-1:-1;10901:4:24;;10792:121;;;;7039:42:97;7027:55;;;7009:74;;6997:2;6982:18;10792:121:24;6863:226:97;1723:71:24;;;;;;;;;;-1:-1:-1;1723:71:24;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7721:18:97;7709:31;;;7691:50;;7789:42;7777:55;;;7772:2;7757:18;;7750:83;7849:18;;;7842:34;7679:2;7664:18;1723:71:24;7491:391:97;8578:164:24;;;;;;;;;;-1:-1:-1;8578:164:24;;;;;:::i;:::-;;:::i;:::-;;;8385:18:97;8373:31;;;8355:50;;8343:2;8328:18;8578:164:24;8211:200:97;12867:173:24;;;;;;;;;;-1:-1:-1;12867:173:24;;;;;:::i;:::-;;:::i;:::-;;;8562:25:97;;;8550:2;8535:18;12867:173:24;8416:177:97;1093:40:24;;;;;;;;;;-1:-1:-1;1093:40:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8863:34:97;8924:15;;;8906:34;;8976:15;;;8971:2;8956:18;;8949:43;9028:15;;;;9008:18;;;9001:43;;;;9063:18;9117:15;;;9112:2;9097:18;;9090:43;9170:15;;;9164:3;9149:19;;9142:44;8840:3;8825:19;1093:40:24;8598:594:97;1340:63:24;;;;;;;;;;-1:-1:-1;1340:63:24;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9605:823;;;;;;;;;;-1:-1:-1;9605:823:24;;;;;:::i;:::-;;:::i;1484:66::-;;;;;;;;;;-1:-1:-1;1484:66:24;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;13985:87;;;;;;;;;;-1:-1:-1;13985:87:24;;;;;:::i;:::-;14043:9;:22;13985:87;13189:138;;;;;;;;;;-1:-1:-1;13189:138:24;;;;;:::i;:::-;13277:26;;;;:16;:26;;;;;;;;;;:43;;;;;;;;;;;13189:138;6080:2329;;;;;;;;;;-1:-1:-1;6080:2329:24;;;;;:::i;:::-;;:::i;4008:2066::-;;;;;;:::i;:::-;;:::i;953:51::-;;;;;;;;;;-1:-1:-1;953:51:24;;;;;:::i;:::-;;;;;;;;;;;;;;;;;11046:126;;;;;;;;;;;;11131:22;;;;;:34;:22;945:1;11131:34;;11046:126;11675:167;;;;;;;;;;-1:-1:-1;11675:167:24;;;;;:::i;:::-;12107:632;12019:720;;;;13112:71;;;;;;;;;;;;13172:4;13155:21;;;;;;;;13112:71;1011:25;;;;;;;;;;-1:-1:-1;1011:25:24;;;;;;;;10919:121;;;;;;;;;;;;11002:19;;:31;:19;945:1;11002:31;;10919:121;11178:210;;;;;;;;;;-1:-1:-1;11178:210:24;;;;;:::i;:::-;11372:9;;;;;;;;;-1:-1:-1;11372:9:24;;11178:210;;;;;;;1187:21;;;;;;;;;;;;;;;;14078:125;;;;;;;;;;-1:-1:-1;14078:125:24;;;;;:::i;:::-;;:::i;8415:157::-;;;;;;;;;;-1:-1:-1;8415:157:24;;;;;:::i;:::-;;:::i;10434:228::-;10577:26;;;10534:4;10577:26;;;:13;:26;;;;;;:33;;10534:4;;10577:26;:33;;10604:5;;;;10577:33;:::i;:::-;;;;;;;;;;;;;;10627:14;;;:28;;;-1:-1:-1;;10434:228:24;;;;;;:::o;1841:73::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1841:73:24;;;;;;;-1:-1:-1;1841:73:24;;-1:-1:-1;1841:73:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1214:33::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8748:748::-;8960:14;8976:11;8999:26;9052:1;9028:14;:21;:25;:65;;9073:20;9028:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9056:14;9028:65;8999:94;;9127:15;9145:80;9160:11;9173:1;9176:16;9194:8;:15;9211:13;9145:14;:80::i;:::-;9127:98;;9261:16;9280:50;9297:9;9308:10;9320:9;;9280:16;:50::i;:::-;9261:69;;9340:9;:58;;9387:11;9375:23;;;9340:58;;;9361:11;9352:20;;;9340:58;-1:-1:-1;9480:9:24;;9455:22;9467:10;9455:9;:22;:::i;:::-;:34;;;;:::i;:::-;9443:46;;8989:507;;;8748:748;;;;;;;;:::o;12019:720::-;12144:26;;;12117:24;12144:26;;;:13;:26;;;;;;:33;;;;12171:5;;;;12144:33;:::i;:::-;;;;;;;;;;;;;;12273:14;;;;12144:33;;-1:-1:-1;12265:73:24;;;;-1:-1:-1;;;12265:73:24;;15398:2:97;12265:73:24;;;15380:21:97;;;15417:18;;;15410:30;15476:34;15456:18;;;15449:62;15528:18;;12265:73:24;;;;;;;;;12356:13;;;;;:27;:13;12373:10;12356:27;12348:69;;;;-1:-1:-1;;;12348:69:24;;15759:2:97;12348:69:24;;;15741:21:97;15798:2;15778:18;;;15771:30;15837:31;15817:18;;;15810:59;15886:18;;12348:69:24;15557:353:97;12348:69:24;12463:20;;12493:26;;;;12482:1;12463:20;12529:14;;:27;12572:40;;;;;;12593:11;;12606:5;;;;12572:40;:::i;:::-;;;;;;;;12700:32;12713:11;12726:5;;12700:12;:32::i;8578:164::-;8699:23;;;8674:6;8699:23;;;:13;:23;;;;;;;;:36;;;;;;;;;;;;;8578:164;;;;;:::o;12867:173::-;12987:26;;;12964:4;12987:26;;;:13;:26;;;;;;:39;;;;13014:11;;;;12987:39;:::i;:::-;;;;;;;;;;;;;;:46;;-1:-1:-1;12867:173:24;;;;;:::o;9605:823::-;9779:26;;;9752:24;9779:26;;;:13;:26;;;;;;:33;;;;9806:5;;;;9779:33;:::i;:::-;;;;;;;;;;;;;;9830:14;;;;9779:33;;-1:-1:-1;9822:73:24;;;;-1:-1:-1;;;9822:73:24;;15398:2:97;9822:73:24;;;15380:21:97;;;15417:18;;;15410:30;15476:34;15456:18;;;15449:62;15528:18;;9822:73:24;15196:356:97;9822:73:24;9932:16;;;;9913:35;;:76;;;;;9975:2;:14;;;9962:8;;9952:19;;;;;;;:::i;:::-;;;;;;;;:37;9913:76;9905:119;;;;-1:-1:-1;;;9905:119:24;;16778:2:97;9905:119:24;;;16760:21:97;16817:2;16797:18;;;16790:30;16856:32;16836:18;;;16829:60;16906:18;;9905:119:24;16576:354:97;9905:119:24;10056:13;;10144:26;;;;;-1:-1:-1;;10180:14:24;;:27;;;10233:25;;;;;10056:13;10233:25;;;;;;:32;;10056:13;;;;;;;10233:32;;10259:5;;;;10233:32;:::i;:::-;;;;;;;;;;;;;;;10276:77;;;10233:32;;;-1:-1:-1;10276:40:24;;;;;;:77;;10317:11;;10330:5;;;;10233:32;;10344:8;;;;10276:77;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10368:53;10383:11;10396:5;;10403;10410:10;10368:53;;;;;;;;;;:::i;:::-;;;;;;;;9742:686;;;9605:823;;;;;:::o;6080:2329::-;2818:22;;;;;:38;:22;903:1;2818:38;2810:87;;;;-1:-1:-1;;;2810:87:24;;18298:2:97;2810:87:24;;;18280:21:97;18337:2;18317:18;;;18310:30;18376:34;18356:18;;;18349:62;18447:6;18427:18;;;18420:34;18471:19;;2810:87:24;18096:400:97;2810:87:24;2907:22;:33;;;;;;;;6352:26:::1;::::0;::::1;-1:-1:-1::0;6352:26:24;;;:13:::1;:26;::::0;;;;;:33;;::::1;::::0;6379:5;;;;6352:33:::1;:::i;:::-;;;;;;;;;;;;;6325:60;;6480:12;:25;6493:11;6480:25;;;;;;;;;;;;;;;6506:5;;6480:32;;;;;;;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;6478:34;;6480:32:::1;::::0;6478:34:::1;::::0;::::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;6468:44;;:6;:44;;;6460:83;;;::::0;-1:-1:-1;;;6460:83:24;;18917:2:97;6460:83:24::1;::::0;::::1;18899:21:97::0;18956:2;18936:18;;;18929:30;18995:28;18975:18;;;18968:56;19041:18;;6460:83:24::1;18715:350:97::0;6460:83:24::1;6681:14;::::0;::::1;::::0;:28;6677:1726:::1;;6756:26;::::0;::::1;6725:28;6756:26:::0;;;:13:::1;:26;::::0;;;;;:33;;::::1;::::0;6783:5;;;;6756:33:::1;:::i;:::-;;;;;;;;;;;;;6725:64;;6803:27;6833:44;;;;;;;;6847:11;6833:44;;;;;;6860:6;6833:44;;;;;;6868:8;;6833:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;;;6833:44:24;;-1:-1:-1;7083:11:24;;6803:74;;-1:-1:-1;7083:15:24;7079:436:::1;;7154:17:::0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;7154:17:24;;;::::1;::::0;;;;;;::::1;::::0;;::::1;;::::0;;;;::::1;::::0;::::1;;::::0;::::1;::::0;;;;::::1;::::0;;::::1;::::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;7164:6;;7154:17;;::::1;::::0;::::1;::::0;;::::1;:::i;:::-;;;;7249:6;7244:105;7265:11:::0;;:15:::1;::::0;7279:1:::1;::::0;7265:15:::1;:::i;:::-;7261:1;:19;7244:105;;;7323:4;7328:1;7323:7;;;;;;;;:::i;:::-;;;;;;;;;;;7309:4;7314:1;7318;7314:5;;;;:::i;:::-;7309:11;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;:21;;:11:::1;::::0;;::::1;;:21:::0;;::::1;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;::::1;;;::::0;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;7309:21:24;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;;;7282:3:24::1;;7244:105;;;;7438:6;7428:4;7433:1;7428:7;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;:16;;:7:::1;::::0;;::::1;;:16:::0;;;;::::1;::::0;::::1;;::::0;::::1;::::0;;;;::::1;::::0;;::::1;::::0;;;;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;:::i;:::-;;;;;7079:436;;;7483:17:::0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;7483:17:24;;;::::1;::::0;;;;;;::::1;::::0;;::::1;;::::0;;;;::::1;::::0;::::1;;::::0;::::1;::::0;;;;::::1;::::0;;::::1;::::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;7493:6;;7483:17;;::::1;::::0;::::1;::::0;;::::1;:::i;:::-;;;;7079:436;6711:814;;6677:1726;;;7535:14;::::0;;;::::1;;;7531:872;;;7601:72;;;;;;;;7622:8;;:15;;7601:72;;;;;;7640:11;7601:72;;;;;;7663:8;;7653:19;;;;;;;:::i;:::-;;::::0;;;;;::::1;::::0;;;7601:72;;;7565:26:::1;::::0;::::1;;::::0;;;:13:::1;:26;::::0;;;;:33;;::::1;::::0;7592:5;;;;7565:33:::1;:::i;:::-;::::0;;;::::1;::::0;;;;;;::::1;::::0;;;;;:108;;;;;;::::1;::::0;::::1;;::::0;::::1;::::0;;;;::::1;::::0;;::::1;::::0;;;;::::1;::::0;;;;::::1;::::0;;;;::::1;::::0;;;;7757:9;;::::1;::::0;;7565:108:::1;7757:9:::0;;7692:75;;::::1;::::0;::::1;::::0;7706:11;;7719:5;;;;7726:11;;7739:6;;7747:8;;;;7565:33;7692:75:::1;:::i;:::-;;;;;;;;7855:14;:22:::0;;;::::1;::::0;;7531:872:::1;;;7912:95;::::0;;;;:41:::1;::::0;::::1;::::0;::::1;::::0;7959:9;;7912:95:::1;::::0;7970:11;;7983:5;;;;7990:6;;7998:8;;;;7912:95:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;7908:485;;;::::0;;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8093:72;;;;;;;;8114:8;;:15;;8093:72;;;;;;8132:11;8093:72;;;;;;8155:8;;8145:19;;;;;;;:::i;:::-;;::::0;;;;;::::1;::::0;;;8093:72;;;8057:26:::1;::::0;::::1;;::::0;;;:13:::1;:26;::::0;;;;:33;;::::1;::::0;8084:5;;;;8057:33:::1;:::i;:::-;::::0;;;::::1;::::0;;;;;;::::1;::::0;;;;;:108;;;;;;::::1;::::0;::::1;;::::0;::::1;::::0;;;;::::1;::::0;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;;;;::::1;::::0;;;;8188:72:::1;::::0;::::1;::::0;8202:11;;8215:5;;;;8222:11;;8235:6;;8243:8;;;;8253:6;;8188:72:::1;:::i;:::-;;;;;;;;-1:-1:-1::0;8356:14:24::1;:22:::0;;;::::1;::::0;;7908:485:::1;-1:-1:-1::0;;2961:22:24;:37;;;;;;;;-1:-1:-1;;;;;;;6080:2329:24:o;4008:2066::-;2588:19;;:35;:19;903:1;2588:35;2580:81;;;;-1:-1:-1;;;2580:81:24;;24408:2:97;2580:81:24;;;24390:21:97;24447:2;24427:18;;;24420:30;24486:34;24466:18;;;24459:62;24557:3;24537:18;;;24530:31;24578:19;;2580:81:24;24206:397:97;2580:81:24;2671:19;:30;;;;945:1;2671:30;;;4288:12;;4304:2:::1;4288:18;4280:75;;;::::0;-1:-1:-1;;;4280:75:24;;24810:2:97;4280:75:24::1;::::0;::::1;24792:21:97::0;24849:2;24829:18;;;24822:30;24888:34;24868:18;;;24861:62;24959:14;24939:18;;;24932:42;24991:19;;4280:75:24::1;24608:408:97::0;4280:75:24::1;4469:2;4458:14:::0;::::1;4452:21:::0;4514:25:::1;::::0;;::::1;4393:15;4514:25:::0;;;::::1;::::0;;;;;;;::::1;::::0;4549:92:::1;;;::::0;-1:-1:-1;;;4549:92:24;;25223:2:97;4549:92:24::1;::::0;::::1;25205:21:97::0;25262:2;25242:18;;;25235:30;25301:34;25281:18;;;25274:62;25372:25;25352:18;;;25345:53;25415:19;;4549:92:24::1;25021:419:97::0;4549:92:24::1;4684:26;4737:1:::0;4713:14:::1;:21;:25;:65;;4758:20;4713:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4741:14;4713:65;4684:94;;4789:14;4809:95;4822:8;4832:10;4844:8;;4809:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;;;;4854:34:24::1;::::0;::::1;::::0;::::1;4890:13:::0;4809:12:::1;:95::i;:::-;4788:116;;;4935:9;4922;:22;;4914:76;;;::::0;-1:-1:-1;;;4914:76:24;;25647:2:97;4914:76:24::1;::::0;::::1;25629:21:97::0;25686:2;25666:18;;;25659:30;25725:34;25705:18;;;25698:62;25796:11;25776:18;;;25769:39;25825:19;;4914:76:24::1;25445:405:97::0;4914:76:24::1;5018:23;::::0;::::1;5001:12;5018:23:::0;;;:13:::1;:23;::::0;;;;;;;5042:10:::1;5018:35:::0;;;;;;;5016:37;;5001:12;;5016:37:::1;::::0;::::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;5001:52;;5104:11;5130:9;5118;:21;;;;:::i;:::-;5104:35:::0;-1:-1:-1;5153:10:24;;5149:163:::1;;5180:12;5198:14;:19;;5225:6;5198:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5179:57;;;5258:7;5250:51;;;::::0;-1:-1:-1;;;5250:51:24;;26267:2:97;5250:51:24::1;::::0;::::1;26249:21:97::0;26306:2;26286:18;;;26279:30;26345:33;26325:18;;;26318:61;26396:18;;5250:51:24::1;26065:355:97::0;5250:51:24::1;5165:147;5149:163;5469:13;5484:17:::0;5503:29:::1;5536:40;5562:13;5536:25;:40::i;:::-;5466:110:::0;;-1:-1:-1;5466:110:24;-1:-1:-1;5466:110:24;-1:-1:-1;;5590:16:24;;5586:222:::1;;5623:12;5641:13;:18;;5667:12;5641:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5622:62;;;5703:7;5698:100;;5735:48;::::0;5770:12;;5735:48:::1;::::0;::::1;::::0;::::1;::::0;;;::::1;5698:100;5608:200;5586:222;5846:37;::::0;26592:66:97;5863:10:24::1;26687:2:97::0;26683:15;;;26679:24;;5846:37:24::1;::::0;::::1;26667::97::0;26738:15;;;26734:24;26720:12;;;26713:46;5818:25:24::1;::::0;26775:12:97;;5846:37:24::1;;;;;;;;;;;;5818:65;;5923:20;5946:8;;5923:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5979:10;5964:41;;;6006:11;;;;;;;;;;;6019:12;6033:7;6042:5;6049:8;6059:7;5964:103;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;2722:19:24;:34;;;;903:1;2722:34;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;4008:2066:24:o;14078:125::-;14159:20;:37;14182:14;14159:20;:37;:::i;:::-;;14078:125;:::o;8415:157::-;8536:22;;;8511:6;8536:22;;;:12;:22;;;;;;:29;;;;8559:5;;;;8536:29;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;8415:157:24;;;;;:::o;15224:1322::-;15456:4;15473:13;15488;15503:17;15526:41;15552:14;15526:25;:41::i;:::-;15472:95;;;;;;;15577:21;15659:6;:11;;15669:1;15659:11;15655:187;;15694:32;;;;:48;-1:-1:-1;15694:48:24;15686:99;;;;-1:-1:-1;;;15686:99:24;;27753:2:97;15686:99:24;;;27735:21:97;27792:2;27772:18;;;27765:30;27831:34;27811:18;;;27804:62;27902:8;27882:18;;;27875:36;27928:19;;15686:99:24;27551:402:97;15686:99:24;15799:32;15819:12;15799:32;;:::i;:::-;;;15655:187;15978:24;;15919:19;;15978:35;;16005:8;;15978:24;;;;;:35;:::i;:::-;15941:16;:33;:73;;;:33;;;;;:73;:::i;:::-;15919:95;-1:-1:-1;16024:34:24;15919:95;16024:34;;:::i;:::-;16223:16;:30;16024:34;;-1:-1:-1;16186:14:24;;16257:6;;16204:49;;16223:30;;16024:34;16204:49;:::i;:::-;16203:60;;;;:::i;:::-;16442:16;:30;16412:27;;16186:77;;-1:-1:-1;16355:17:24;;16476:6;;16442:30;;;;;16376:63;;16412:27;;;;;;;16376:33;;;;;:63;:::i;:::-;:96;;;;:::i;:::-;16375:107;;;;:::i;:::-;16355:127;;;-1:-1:-1;16512:27:24;16355:127;16512:12;:27;:::i;:::-;16500:39;;:9;:39;:::i;:::-;16493:46;15224:1322;-1:-1:-1;;;;;;;;;;;;;15224:1322:24:o;14892:326::-;15022:4;15042:9;15038:174;;;-1:-1:-1;15074:17:24;:24;15067:31;;15038:174;15166:26;;15196:5;;15138:24;15152:10;15138:11;:24;:::i;:::-;15137:55;;;;:::i;:::-;15136:65;;;;:::i;:::-;15129:72;;;;14388:498;14502:26;;;14471:28;14502:26;;;:13;:26;;;;;;:33;;;;14529:5;;;;14502:33;:::i;:::-;;;;;;;;;;;;;14471:64;;14641:239;14648:11;;:15;14641:239;;14715:11;;14679:28;;14710:4;;14715:15;;14729:1;;14715:15;:::i;:::-;14710:21;;;;;;;;:::i;:::-;;;;;;;;;;14679:52;;;;;;;;14710:21;;;;;;;14679:52;;;;;;;;;;;;;;;;;;;;;;;;;;;14710:21;14679:52;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14764:7;:18;;;14745:48;;;14794:11;14807:5;;14814:7;:13;;;14829:7;:15;;;14745:100;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14859:4;:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;14665:215;14641:239;;2036:801:23;2154:13;2181:10;2205:18;2237:30;2300:14;:21;2325:2;2300:27;:57;;;;2355:2;2331:14;:21;:26;2300:57;2292:91;;;;-1:-1:-1;;;2292:91:23;;29923:2:97;2292:91:23;;;29905:21:97;29962:2;29942:18;;;29935:30;30001:23;29981:18;;;29974:51;30042:18;;2292:91:23;29721:345:97;2292:91:23;2452:1;2436:14;2432:22;2426:29;2416:39;;2503:2;2487:14;2483:23;2477:30;2468:39;;2534:6;:11;;2544:1;2534:11;:26;;;;2549:6;:11;;2559:1;2549:11;2534:26;2526:57;;;;-1:-1:-1;;;2526:57:23;;30273:2:97;2526:57:23;;;30255:21:97;30312:2;30292:18;;;30285:30;30351:20;30331:18;;;30324:48;30389:18;;2526:57:23;30071:342:97;2526:57:23;2609:1;2601:5;:9;2593:33;;;;-1:-1:-1;;;2593:33:23;;30620:2:97;2593:33:23;;;30602:21:97;30659:2;30639:18;;;30632:30;30698:13;30678:18;;;30671:41;30729:18;;2593:33:23;30418:335:97;2593:33:23;2641:6;:11;;2651:1;2641:11;2637:194;;-1:-1:-1;;2738:2:23;2718:23;;2712:30;2803:2;2783:23;;2777:30;2637:194;2036:801;;;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;267:159:97:-;334:20;;394:6;383:18;;373:29;;363:57;;416:1;413;406:12;363:57;267:159;;;:::o;431:184::-;489:6;542:2;530:9;521:7;517:23;513:32;510:52;;;558:1;555;548:12;510:52;581:28;599:9;581:28;:::i;620:154::-;706:42;699:5;695:54;688:5;685:65;675:93;;764:1;761;754:12;779:247;838:6;891:2;879:9;870:7;866:23;862:32;859:52;;;907:1;904;897:12;859:52;946:9;933:23;965:31;990:5;965:31;:::i;1224:347::-;1275:8;1285:6;1339:3;1332:4;1324:6;1320:17;1316:27;1306:55;;1357:1;1354;1347:12;1306:55;-1:-1:-1;1380:20:97;;1423:18;1412:30;;1409:50;;;1455:1;1452;1445:12;1409:50;1492:4;1484:6;1480:17;1468:29;;1544:3;1537:4;1528:6;1520;1516:19;1512:30;1509:39;1506:59;;;1561:1;1558;1551:12;1506:59;1224:347;;;;;:::o;1576:481::-;1654:6;1662;1670;1723:2;1711:9;1702:7;1698:23;1694:32;1691:52;;;1739:1;1736;1729:12;1691:52;1762:28;1780:9;1762:28;:::i;:::-;1752:38;;1841:2;1830:9;1826:18;1813:32;1868:18;1860:6;1857:30;1854:50;;;1900:1;1897;1890:12;1854:50;1939:58;1989:7;1980:6;1969:9;1965:22;1939:58;:::i;:::-;1576:481;;2016:8;;-1:-1:-1;1913:84:97;;-1:-1:-1;;;;1576:481:97:o;2254:184::-;2306:77;2303:1;2296:88;2403:4;2400:1;2393:15;2427:4;2424:1;2417:15;2443:777;2485:5;2538:3;2531:4;2523:6;2519:17;2515:27;2505:55;;2556:1;2553;2546:12;2505:55;2592:6;2579:20;2618:18;2655:2;2651;2648:10;2645:36;;;2661:18;;:::i;:::-;2795:2;2789:9;2857:4;2849:13;;2700:66;2845:22;;;2869:2;2841:31;2837:40;2825:53;;;2893:18;;;2913:22;;;2890:46;2887:72;;;2939:18;;:::i;:::-;2979:10;2975:2;2968:22;3014:2;3006:6;2999:18;3060:3;3053:4;3048:2;3040:6;3036:15;3032:26;3029:35;3026:55;;;3077:1;3074;3067:12;3026:55;3141:2;3134:4;3126:6;3122:17;3115:4;3107:6;3103:17;3090:54;3188:1;3181:4;3176:2;3168:6;3164:15;3160:26;3153:37;3208:6;3199:15;;;;;;2443:777;;;;:::o;3225:460::-;3310:6;3318;3326;3379:2;3367:9;3358:7;3354:23;3350:32;3347:52;;;3395:1;3392;3385:12;3347:52;3418:28;3436:9;3418:28;:::i;:::-;3408:38;;3497:2;3486:9;3482:18;3469:32;3524:18;3516:6;3513:30;3510:50;;;3556:1;3553;3546:12;3510:50;3579:49;3620:7;3611:6;3600:9;3596:22;3579:49;:::i;:::-;3569:59;;;3675:2;3664:9;3660:18;3647:32;3637:42;;3225:460;;;;;:::o;3690:481::-;3731:3;3769:5;3763:12;3796:6;3791:3;3784:19;3821:1;3831:162;3845:6;3842:1;3839:13;3831:162;;;3907:4;3963:13;;;3959:22;;3953:29;3935:11;;;3931:20;;3924:59;3860:12;3831:162;;;3835:3;4038:1;4031:4;4022:6;4017:3;4013:16;4009:27;4002:38;4160:4;4090:66;4085:2;4077:6;4073:15;4069:88;4064:3;4060:98;4056:109;4049:116;;;3690:481;;;;:::o;4176:431::-;4389:42;4381:6;4377:55;4366:9;4359:74;4481:18;4473:6;4469:31;4464:2;4453:9;4449:18;4442:59;4537:2;4532;4521:9;4517:18;4510:30;4340:4;4557:44;4597:2;4586:9;4582:18;4574:6;4557:44;:::i;:::-;4549:52;4176:431;-1:-1:-1;;;;;4176:431:97:o;4612:248::-;4680:6;4688;4741:2;4729:9;4720:7;4716:23;4712:32;4709:52;;;4757:1;4754;4747:12;4709:52;-1:-1:-1;;4780:23:97;;;4850:2;4835:18;;;4822:32;;-1:-1:-1;4612:248:97:o;4865:217::-;5012:2;5001:9;4994:21;4975:4;5032:44;5072:2;5061:9;5057:18;5049:6;5032:44;:::i;5087:188::-;5155:20;;5215:34;5204:46;;5194:57;;5184:85;;5265:1;5262;5255:12;5280:171;5347:20;;5407:18;5396:30;;5386:41;;5376:69;;5441:1;5438;5431:12;5456:480;5549:6;5557;5565;5573;5581;5634:3;5622:9;5613:7;5609:23;5605:33;5602:53;;;5651:1;5648;5641:12;5602:53;5674:29;5693:9;5674:29;:::i;:::-;5664:39;;5722:38;5756:2;5745:9;5741:18;5722:38;:::i;:::-;5712:48;;5779:38;5813:2;5802:9;5798:18;5779:38;:::i;:::-;5769:48;;5836:37;5869:2;5858:9;5854:18;5836:37;:::i;:::-;5826:47;;5892:38;5925:3;5914:9;5910:19;5892:38;:::i;:::-;5882:48;;5456:480;;;;;;;;:::o;5941:917::-;6050:6;6058;6066;6074;6082;6135:3;6123:9;6114:7;6110:23;6106:33;6103:53;;;6152:1;6149;6142:12;6103:53;6175:28;6193:9;6175:28;:::i;:::-;6165:38;;6253:2;6242:9;6238:18;6225:32;6266:31;6291:5;6266:31;:::i;:::-;6316:5;-1:-1:-1;6372:2:97;6357:18;;6344:32;6395:18;6425:14;;;6422:34;;;6452:1;6449;6442:12;6422:34;6475:49;6516:7;6507:6;6496:9;6492:22;6475:49;:::i;:::-;6465:59;;6576:2;6565:9;6561:18;6548:32;6533:47;;6625:7;6618:15;6611:23;6602:7;6599:36;6589:64;;6649:1;6646;6639:12;6589:64;6672:7;;-1:-1:-1;6732:3:97;6717:19;;6704:33;;6749:16;;;6746:36;;;6778:1;6775;6768:12;6746:36;;6801:51;6844:7;6833:8;6822:9;6818:24;6801:51;:::i;:::-;6791:61;;;5941:917;;;;;;;;:::o;7094:392::-;7170:6;7178;7231:2;7219:9;7210:7;7206:23;7202:32;7199:52;;;7247:1;7244;7237:12;7199:52;7270:28;7288:9;7270:28;:::i;:::-;7260:38;;7349:2;7338:9;7334:18;7321:32;7376:18;7368:6;7365:30;7362:50;;;7408:1;7405;7398:12;7362:50;7431:49;7472:7;7463:6;7452:9;7448:22;7431:49;:::i;:::-;7421:59;;;7094:392;;;;;:::o;7887:319::-;7954:6;7962;8015:2;8003:9;7994:7;7990:23;7986:32;7983:52;;;8031:1;8028;8021:12;7983:52;8054:28;8072:9;8054:28;:::i;:::-;8044:38;;8132:2;8121:9;8117:18;8104:32;8145:31;8170:5;8145:31;:::i;:::-;8195:5;8185:15;;;7887:319;;;;;:::o;9197:789::-;9295:6;9303;9311;9319;9327;9380:2;9368:9;9359:7;9355:23;9351:32;9348:52;;;9396:1;9393;9386:12;9348:52;9419:28;9437:9;9419:28;:::i;:::-;9409:38;;9498:2;9487:9;9483:18;9470:32;9521:18;9562:2;9554:6;9551:14;9548:34;;;9578:1;9575;9568:12;9548:34;9617:58;9667:7;9658:6;9647:9;9643:22;9617:58;:::i;:::-;9694:8;;-1:-1:-1;9591:84:97;-1:-1:-1;9782:2:97;9767:18;;9754:32;;-1:-1:-1;9798:16:97;;;9795:36;;;9827:1;9824;9817:12;9795:36;;9866:60;9918:7;9907:8;9896:9;9892:24;9866:60;:::i;:::-;9197:789;;;;-1:-1:-1;9197:789:97;;-1:-1:-1;9945:8:97;;9840:86;9197:789;-1:-1:-1;;;9197:789:97:o;9991:180::-;10050:6;10103:2;10091:9;10082:7;10078:23;10074:32;10071:52;;;10119:1;10116;10109:12;10071:52;-1:-1:-1;10142:23:97;;9991:180;-1:-1:-1;9991:180:97:o;10176:388::-;10244:6;10252;10305:2;10293:9;10284:7;10280:23;10276:32;10273:52;;;10321:1;10318;10311:12;10273:52;10360:9;10347:23;10379:31;10404:5;10379:31;:::i;10569:1067::-;10693:6;10701;10709;10717;10725;10733;10741;10749;10802:3;10790:9;10781:7;10777:23;10773:33;10770:53;;;10819:1;10816;10809:12;10770:53;10842:28;10860:9;10842:28;:::i;:::-;10832:38;;10921:2;10910:9;10906:18;10893:32;10944:18;10985:2;10977:6;10974:14;10971:34;;;11001:1;10998;10991:12;10971:34;11040:58;11090:7;11081:6;11070:9;11066:22;11040:58;:::i;:::-;11117:8;;-1:-1:-1;11014:84:97;-1:-1:-1;11202:2:97;11187:18;;11174:32;;-1:-1:-1;11215:31:97;11174:32;11215:31;:::i;:::-;11265:5;11255:15;;11289:37;11322:2;11311:9;11307:18;11289:37;:::i;:::-;11279:47;;11373:3;11362:9;11358:19;11345:33;11335:43;;11431:3;11420:9;11416:19;11403:33;11387:49;;11461:2;11451:8;11448:16;11445:36;;;11477:1;11474;11467:12;11445:36;;11516:60;11568:7;11557:8;11546:9;11542:24;11516:60;:::i;:::-;10569:1067;;;;-1:-1:-1;10569:1067:97;;-1:-1:-1;10569:1067:97;;;;;;11595:8;-1:-1:-1;;;10569:1067:97:o;11641:1185::-;11781:6;11789;11797;11805;11813;11821;11829;11882:3;11870:9;11861:7;11857:23;11853:33;11850:53;;;11899:1;11896;11889:12;11850:53;11922:28;11940:9;11922:28;:::i;:::-;11912:38;;12001:2;11990:9;11986:18;11973:32;12024:18;12065:2;12057:6;12054:14;12051:34;;;12081:1;12078;12071:12;12051:34;12104:49;12145:7;12136:6;12125:9;12121:22;12104:49;:::i;:::-;12094:59;;12206:2;12195:9;12191:18;12178:32;12162:48;;12235:2;12225:8;12222:16;12219:36;;;12251:1;12248;12241:12;12219:36;12290:60;12342:7;12331:8;12320:9;12316:24;12290:60;:::i;:::-;12369:8;;-1:-1:-1;12264:86:97;-1:-1:-1;12454:2:97;12439:18;;12426:32;;-1:-1:-1;12467:31:97;12426:32;12467:31;:::i;:::-;12517:5;;-1:-1:-1;12574:3:97;12559:19;;12546:33;;12588;12546;12588;:::i;:::-;12640:7;;-1:-1:-1;12700:3:97;12685:19;;12672:33;;12717:16;;;12714:36;;;12746:1;12743;12736:12;12714:36;;12769:51;12812:7;12801:8;12790:9;12786:24;12769:51;:::i;:::-;12759:61;;;11641:1185;;;;;;;;;;:::o;12831:533::-;12924:6;12932;12940;12948;13001:3;12989:9;12980:7;12976:23;12972:33;12969:53;;;13018:1;13015;13008:12;12969:53;13041:28;13059:9;13041:28;:::i;:::-;13031:38;;13088:37;13121:2;13110:9;13106:18;13088:37;:::i;:::-;13078:47;;13172:2;13161:9;13157:18;13144:32;13134:42;;13227:2;13216:9;13212:18;13199:32;13254:18;13246:6;13243:30;13240:50;;;13286:1;13283;13276:12;13240:50;13309:49;13350:7;13341:6;13330:9;13326:22;13309:49;:::i;:::-;13299:59;;;12831:533;;;;;;;:::o;13369:460::-;13453:6;13461;13469;13477;13530:3;13518:9;13509:7;13505:23;13501:33;13498:53;;;13547:1;13544;13537:12;13498:53;13570:28;13588:9;13570:28;:::i;:::-;13560:38;;13617:37;13650:2;13639:9;13635:18;13617:37;:::i;:::-;13607:47;;13704:2;13693:9;13689:18;13676:32;13717:31;13742:5;13717:31;:::i;:::-;13369:460;;;;-1:-1:-1;13767:5:97;;13819:2;13804:18;13791:32;;-1:-1:-1;;13369:460:97:o;13834:320::-;13902:6;13955:2;13943:9;13934:7;13930:23;13926:32;13923:52;;;13971:1;13968;13961:12;13923:52;14011:9;13998:23;14044:18;14036:6;14033:30;14030:50;;;14076:1;14073;14066:12;14030:50;14099:49;14140:7;14131:6;14120:9;14116:22;14099:49;:::i;:::-;14089:59;13834:320;-1:-1:-1;;;;13834:320:97:o;14159:271::-;14342:6;14334;14329:3;14316:33;14298:3;14368:16;;14393:13;;;14368:16;14159:271;-1:-1:-1;14159:271:97:o;14435:437::-;14514:1;14510:12;;;;14557;;;14578:61;;14632:4;14624:6;14620:17;14610:27;;14578:61;14685:2;14677:6;14674:14;14654:18;14651:38;14648:218;;14722:77;14719:1;14712:88;14823:4;14820:1;14813:15;14851:4;14848:1;14841:15;14648:218;;14435:437;;;:::o;14877:184::-;14929:77;14926:1;14919:88;15026:4;15023:1;15016:15;15050:4;15047:1;15040:15;15066:125;15131:9;;;15152:10;;;15149:36;;;15165:18;;:::i;15915:325::-;16003:6;15998:3;15991:19;16055:6;16048:5;16041:4;16036:3;16032:14;16019:43;;16107:1;16100:4;16091:6;16086:3;16082:16;16078:27;16071:38;15973:3;16229:4;16159:66;16154:2;16146:6;16142:15;16138:88;16133:3;16129:98;16125:109;16118:116;;15915:325;;;;:::o;16245:326::-;16440:6;16432;16428:19;16417:9;16410:38;16484:2;16479;16468:9;16464:18;16457:30;16391:4;16504:61;16561:2;16550:9;16546:18;16538:6;16530;16504:61;:::i;16935:609::-;17212:6;17204;17200:19;17189:9;17182:38;17256:3;17251:2;17240:9;17236:18;17229:31;17163:4;17283:62;17340:3;17329:9;17325:19;17317:6;17309;17283:62;:::i;:::-;17393:18;17385:6;17381:31;17376:2;17365:9;17361:18;17354:59;17461:9;17453:6;17449:22;17444:2;17433:9;17429:18;17422:50;17489:49;17531:6;17523;17515;17489:49;:::i;:::-;17481:57;16935:609;-1:-1:-1;;;;;;;;;16935:609:97:o;17549:542::-;17798:6;17790;17786:19;17775:9;17768:38;17842:3;17837:2;17826:9;17822:18;17815:31;17749:4;17863:62;17920:3;17909:9;17905:19;17897:6;17889;17863:62;:::i;:::-;17855:70;;17973:18;17965:6;17961:31;17956:2;17945:9;17941:18;17934:59;18041:42;18033:6;18029:55;18024:2;18013:9;18009:18;18002:83;17549:542;;;;;;;;:::o;18501:209::-;18539:3;18567:18;18620:2;18613:5;18609:14;18647:2;18638:7;18635:15;18632:41;;18653:18;;:::i;:::-;18702:1;18689:15;;18501:209;-1:-1:-1;;;18501:209:97:o;19195:542::-;19296:2;19291:3;19288:11;19285:446;;;19332:1;19356:5;19353:1;19346:16;19400:4;19397:1;19387:18;19470:2;19458:10;19454:19;19451:1;19447:27;19441:4;19437:38;19506:4;19494:10;19491:20;19488:47;;;-1:-1:-1;19529:4:97;19488:47;19584:2;19579:3;19575:12;19572:1;19568:20;19562:4;19558:31;19548:41;;19639:82;19657:2;19650:5;19647:13;19639:82;;;19702:17;;;19683:1;19672:13;19639:82;;;19643:3;;;19285:446;19195:542;;;:::o;19973:1460::-;20097:3;20091:10;20124:18;20116:6;20113:30;20110:56;;;20146:18;;:::i;:::-;20175:96;20264:6;20224:38;20256:4;20250:11;20224:38;:::i;:::-;20218:4;20175:96;:::i;:::-;20326:4;;20383:2;20372:14;;20400:1;20395:781;;;;21220:1;21237:6;21234:89;;;-1:-1:-1;21289:19:97;;;21283:26;21234:89;19879:66;19870:1;19866:11;;;19862:84;19858:89;19848:100;19954:1;19950:11;;;19845:117;21336:81;;20365:1062;;20395:781;19142:1;19135:14;;;19179:4;19166:18;;20443:66;20431:79;;;20607:236;20621:7;20618:1;20615:14;20607:236;;;20710:19;;;20704:26;20689:42;;20802:27;;;;20770:1;20758:14;;;;20637:19;;20607:236;;;20611:3;20871:6;20862:7;20859:19;20856:261;;;20932:19;;;20926:26;21033:66;21015:1;21011:14;;;21027:3;21007:24;21003:97;20999:102;20984:118;20969:134;;20856:261;-1:-1:-1;;;;;21163:1:97;21147:14;;;21143:22;21130:36;;-1:-1:-1;19973:1460:97:o;21438:128::-;21505:9;;;21526:11;;;21523:37;;;21540:18;;:::i;21571:184::-;21623:77;21620:1;21613:88;21720:4;21717:1;21710:15;21744:4;21741:1;21734:15;21760:1545;21873:3;21867:4;21864:13;21861:26;;21880:5;;21760:1545::o;21861:26::-;21910:37;21942:3;21936:10;21910:37;:::i;:::-;21970:18;21962:6;21959:30;21956:56;;;21992:18;;:::i;:::-;22021:96;22110:6;22070:38;22102:4;22096:11;22070:38;:::i;22021:96::-;22143:1;22171:2;22163:6;22160:14;22188:1;22183:865;;;;23092:1;23109:6;23106:89;;;-1:-1:-1;23161:19:97;;;23155:26;23106:89;19879:66;19870:1;19866:11;;;19862:84;19858:89;19848:100;19954:1;19950:11;;;19845:117;23208:81;;22153:1146;;22183:865;19142:1;19135:14;;;19179:4;19166:18;;22231:66;22219:79;;;19142:1;19135:14;;;19179:4;19166:18;;22440:9;22462:251;22476:7;22473:1;22470:14;22462:251;;;22558:21;;;22552:28;22537:44;;22608:1;22681:18;;;;22636:15;;;;22499:4;22492:12;22462:251;;;22466:3;22741:6;22732:7;22729:19;22726:263;;;22802:21;;;22796:28;22905:66;22887:1;22883:14;;;22899:3;22879:24;22875:97;22871:102;22856:118;22841:134;;22726:263;;;;23035:1;23026:6;23023:1;23019:14;23015:22;23009:4;23002:36;22153:1146;;;;21760:1545;;:::o;23310:891::-;23661:6;23653;23649:19;23638:9;23631:38;23705:3;23700:2;23689:9;23685:18;23678:31;23612:4;23732:62;23789:3;23778:9;23774:19;23766:6;23758;23732:62;:::i;:::-;23842:42;23834:6;23830:55;23825:2;23814:9;23810:18;23803:83;23934:18;23926:6;23922:31;23917:2;23906:9;23902:18;23895:59;24003:9;23995:6;23991:22;23985:3;23974:9;23970:19;23963:51;24037:49;24079:6;24071;24063;24037:49;:::i;:::-;24023:63;;24135:9;24127:6;24123:22;24117:3;24106:9;24102:19;24095:51;24163:32;24188:6;24180;24163:32;:::i;:::-;24155:40;23310:891;-1:-1:-1;;;;;;;;;;;23310:891:97:o;26798:748::-;27111:6;27103;27099:19;27088:9;27081:38;27155:3;27150:2;27139:9;27135:18;27128:31;27062:4;27182:45;27222:3;27211:9;27207:19;27199:6;27182:45;:::i;:::-;27275:42;27267:6;27263:55;27258:2;27247:9;27243:18;27236:83;27367:18;27359:6;27355:31;27350:2;27339:9;27335:18;27328:59;27424:6;27418:3;27407:9;27403:19;27396:35;27480:9;27472:6;27468:22;27462:3;27451:9;27447:19;27440:51;27508:32;27533:6;27525;27508:32;:::i;27958:168::-;28031:9;;;28062;;28079:15;;;28073:22;;28059:37;28049:71;;28100:18;;:::i;28131:184::-;28183:77;28180:1;28173:88;28280:4;28277:1;28270:15;28304:4;28301:1;28294:15;28320:120;28360:1;28386;28376:35;;28391:18;;:::i;:::-;-1:-1:-1;28425:9:97;;28320:120::o;28445:274::-;28517:34;28583:10;;;28595;;;28579:27;28626:20;;;;28517:34;28665:24;;;28655:58;;28693:18;;:::i;:::-;28655:58;;28445:274;;;;:::o;28724:216::-;28764:1;28790:34;28851:2;28848:1;28844:10;28873:3;28863:37;;28880:18;;:::i;:::-;28918:10;;28914:20;;;;;28724:216;-1:-1:-1;;28724:216:97:o;28945:582::-;29212:6;29204;29200:19;29189:9;29182:38;29256:3;29251:2;29240:9;29236:18;29229:31;29163:4;29283:62;29340:3;29329:9;29325:19;29317:6;29309;29283:62;:::i;:::-;29393:18;29385:6;29381:31;29376:2;29365:9;29361:18;29354:59;29461:9;29453:6;29449:22;29444:2;29433:9;29429:18;29422:50;29489:32;29514:6;29506;29489:32;:::i;:::-;29481:40;28945:582;-1:-1:-1;;;;;;;;28945:582:97:o;29532:184::-;29584:77;29581:1;29574:88;29681:4;29678:1;29671:15;29705:4;29702:1;29695:15"},"gasEstimates":{"creation":{"codeDepositCost":"2805600","executionCost":"infinite","totalCost":"infinite"},"external":{"blockNextMsg()":"24420","defaultAdapterParams()":"infinite","estimateFees(uint16,address,bytes,bool,bytes)":"infinite","forceResumeReceive(uint16,bytes)":"infinite","getChainId()":"2353","getConfig(uint16,uint16,address,uint256)":"infinite","getInboundNonce(uint16,bytes)":"infinite","getLengthOfQueue(uint16,bytes)":"infinite","getOutboundNonce(uint16,address)":"2785","getReceiveLibraryAddress(address)":"413","getReceiveVersion(address)":"435","getSendLibraryAddress(address)":"413","getSendVersion(address)":"437","hasStoredPayload(uint16,bytes)":"infinite","inboundNonce(uint16,bytes)":"infinite","isReceivingPayload()":"2392","isSendingPayload()":"2380","lzEndpointLookup(address)":"2630","mockChainId()":"2424","msgsToDeliver(uint16,bytes,uint256)":"infinite","nextMsgBlocked()":"2389","oracleFee()":"2361","outboundNonce(uint16,address)":"2795","protocolFeeConfig()":"4464","receivePayload(uint16,bytes,address,uint64,uint256,bytes)":"infinite","relayerFeeConfig()":"4725","retryPayload(uint16,bytes,bytes)":"infinite","send(uint16,bytes,bytes,address,address,bytes)":"infinite","setConfig(uint16,uint16,uint256,bytes)":"infinite","setDefaultAdapterParams(bytes)":"infinite","setDestLzEndpoint(address,address)":"infinite","setOracleFee(uint256)":"22380","setProtocolFee(uint256,uint256)":"44515","setReceiveVersion(uint16)":"349","setRelayerPrice(uint128,uint128,uint128,uint64,uint64)":"infinite","setSendVersion(uint16)":"349","storedPayload(uint16,bytes)":"infinite"},"internal":{"_clearMsgQue(uint16,bytes calldata)":"infinite","_getProtocolFees(bool,uint256,uint256)":"infinite","_getRelayerFee(uint16,uint16,address,uint256,bytes memory)":"infinite"}},"methodIdentifiers":{"blockNextMsg()":"d23104f1","defaultAdapterParams()":"272bd384","estimateFees(uint16,address,bytes,bool,bytes)":"40a7bb10","forceResumeReceive(uint16,bytes)":"42d65a8d","getChainId()":"3408e470","getConfig(uint16,uint16,address,uint256)":"f5ecbdbc","getInboundNonce(uint16,bytes)":"fdc07c70","getLengthOfQueue(uint16,bytes)":"7f6df8e6","getOutboundNonce(uint16,address)":"7a145748","getReceiveLibraryAddress(address)":"71ba2fd6","getReceiveVersion(address)":"da1a7c9a","getSendLibraryAddress(address)":"9c729da1","getSendVersion(address)":"096568f6","hasStoredPayload(uint16,bytes)":"0eaf6ea6","inboundNonce(uint16,bytes)":"9924d33b","isReceivingPayload()":"ca066b35","isSendingPayload()":"e97a448a","lzEndpointLookup(address)":"c81b383a","mockChainId()":"db14f305","msgsToDeliver(uint16,bytes,uint256)":"12a9ee6b","nextMsgBlocked()":"3e0dd83e","oracleFee()":"f9cd3ceb","outboundNonce(uint16,address)":"b2086499","protocolFeeConfig()":"07d3277f","receivePayload(uint16,bytes,address,uint64,uint256,bytes)":"c2fa4813","relayerFeeConfig()":"907c5e7e","retryPayload(uint16,bytes,bytes)":"aaff5f16","send(uint16,bytes,bytes,address,address,bytes)":"c5803100","setConfig(uint16,uint16,uint256,bytes)":"cbed8b9c","setDefaultAdapterParams(bytes)":"fbba623b","setDestLzEndpoint(address,address)":"c08f15a1","setOracleFee(uint256)":"b6d9ef60","setProtocolFee(uint256,uint256)":"240de277","setReceiveVersion(uint16)":"10ddb137","setRelayerPrice(uint128,uint128,uint128,uint64,uint64)":"2c365e25","setSendVersion(uint16)":"07e0db17","storedPayload(uint16,bytes)":"76a386dc"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dstAddress\",\"type\":\"address\"}],\"name\":\"PayloadCleared\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dstAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"PayloadStored\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"chainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"srcAddress\",\"type\":\"bytes\"}],\"name\":\"UaForceResumeReceive\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"quantity\",\"type\":\"uint256\"}],\"name\":\"ValueTransferFailed\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"blockNextMsg\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultAdapterParams\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"_userApplication\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"_payInZRO\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"estimateFees\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"zroFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"forceResumeReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainId\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_chainID\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"getInboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"getLengthOfQueue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_chainID\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"_srcAddress\",\"type\":\"address\"}],\"name\":\"getOutboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getReceiveLibraryAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getReceiveVersion\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getSendLibraryAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getSendVersion\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"hasStoredPayload\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"inboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isReceivingPayload\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isSendingPayload\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"lzEndpointLookup\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mockChainId\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"msgsToDeliver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"dstAddress\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextMsgBlocked\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oracleFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"outboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"protocolFeeConfig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"zroFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nativeBP\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_dstAddress\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"receivePayload\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"relayerFeeConfig\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"dstPriceRatio\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"dstGasPriceInWei\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"dstNativeAmtCap\",\"type\":\"uint128\"},{\"internalType\":\"uint64\",\"name\":\"baseGas\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"gasPerByte\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"retryPayload\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"address payable\",\"name\":\"_refundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_zroPaymentAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"send\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"setDefaultAdapterParams\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"destAddr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"lzEndpointAddr\",\"type\":\"address\"}],\"name\":\"setDestLzEndpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_oracleFee\",\"type\":\"uint256\"}],\"name\":\"setOracleFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_zroFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_nativeBP\",\"type\":\"uint256\"}],\"name\":\"setProtocolFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"setReceiveVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"_dstPriceRatio\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"_dstGasPriceInWei\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"_dstNativeAmtCap\",\"type\":\"uint128\"},{\"internalType\":\"uint64\",\"name\":\"_baseGas\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"_gasPerByte\",\"type\":\"uint64\"}],\"name\":\"setRelayerPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"setSendVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"storedPayload\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"payloadLength\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"dstAddress\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"payloadHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol\":\"LZEndpointMock\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroEndpoint.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"./ILayerZeroUserApplicationConfig.sol\\\";\\n\\ninterface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig {\\n    // @notice send a LayerZero message to the specified address at a LayerZero endpoint.\\n    // @param _dstChainId - the destination chain identifier\\n    // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains\\n    // @param _payload - a custom bytes payload to send to the destination contract\\n    // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address\\n    // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction\\n    // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination\\n    function send(\\n        uint16 _dstChainId,\\n        bytes calldata _destination,\\n        bytes calldata _payload,\\n        address payable _refundAddress,\\n        address _zroPaymentAddress,\\n        bytes calldata _adapterParams\\n    ) external payable;\\n\\n    // @notice used by the messaging library to publish verified payload\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source contract (as bytes) at the source chain\\n    // @param _dstAddress - the address on destination chain\\n    // @param _nonce - the unbound message ordering nonce\\n    // @param _gasLimit - the gas limit for external contract execution\\n    // @param _payload - verified payload to send to the destination contract\\n    function receivePayload(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        address _dstAddress,\\n        uint64 _nonce,\\n        uint _gasLimit,\\n        bytes calldata _payload\\n    ) external;\\n\\n    // @notice get the inboundNonce of a lzApp from a source chain which could be EVM or non-EVM chain\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint64);\\n\\n    // @notice get the outboundNonce from this source chain which, consequently, is always an EVM\\n    // @param _srcAddress - the source chain contract address\\n    function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view returns (uint64);\\n\\n    // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery\\n    // @param _dstChainId - the destination chain identifier\\n    // @param _userApplication - the user app address on this EVM chain\\n    // @param _payload - the custom message to send over LayerZero\\n    // @param _payInZRO - if false, user app pays the protocol fee in native token\\n    // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain\\n    function estimateFees(\\n        uint16 _dstChainId,\\n        address _userApplication,\\n        bytes calldata _payload,\\n        bool _payInZRO,\\n        bytes calldata _adapterParam\\n    ) external view returns (uint nativeFee, uint zroFee);\\n\\n    // @notice get this Endpoint's immutable source identifier\\n    function getChainId() external view returns (uint16);\\n\\n    // @notice the interface to retry failed message on this Endpoint destination\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    // @param _payload - the payload to be retried\\n    function retryPayload(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        bytes calldata _payload\\n    ) external;\\n\\n    // @notice query if any STORED payload (message blocking) at the endpoint.\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool);\\n\\n    // @notice query if the _libraryAddress is valid for sending msgs.\\n    // @param _userApplication - the user app address on this EVM chain\\n    function getSendLibraryAddress(address _userApplication) external view returns (address);\\n\\n    // @notice query if the _libraryAddress is valid for receiving msgs.\\n    // @param _userApplication - the user app address on this EVM chain\\n    function getReceiveLibraryAddress(address _userApplication) external view returns (address);\\n\\n    // @notice query if the non-reentrancy guard for send() is on\\n    // @return true if the guard is on. false otherwise\\n    function isSendingPayload() external view returns (bool);\\n\\n    // @notice query if the non-reentrancy guard for receive() is on\\n    // @return true if the guard is on. false otherwise\\n    function isReceivingPayload() external view returns (bool);\\n\\n    // @notice get the configuration of the LayerZero messaging library of the specified version\\n    // @param _version - messaging library version\\n    // @param _chainId - the chainId for the pending config change\\n    // @param _userApplication - the contract address of the user application\\n    // @param _configType - type of configuration. every messaging library has its own convention.\\n    function getConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        address _userApplication,\\n        uint _configType\\n    ) external view returns (bytes memory);\\n\\n    // @notice get the send() LayerZero messaging library version\\n    // @param _userApplication - the contract address of the user application\\n    function getSendVersion(address _userApplication) external view returns (uint16);\\n\\n    // @notice get the lzReceive() LayerZero messaging library version\\n    // @param _userApplication - the contract address of the user application\\n    function getReceiveVersion(address _userApplication) external view returns (uint16);\\n}\\n\",\"keccak256\":\"0xab7fcacc672251c850f00c0abd4100df9afcc4ad70b8d331a2fd4cb07acab9f4\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroReceiver {\\n    // @notice LayerZero endpoint will invoke this function to deliver the message on the destination\\n    // @param _srcChainId - the source endpoint identifier\\n    // @param _srcAddress - the source sending contract address from the source chain\\n    // @param _nonce - the ordered message nonce\\n    // @param _payload - the signed payload is the UA bytes has encoded to be sent\\n    function lzReceive(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) external;\\n}\\n\",\"keccak256\":\"0xac1966c1229bd4dc36b6c69eeb94a537bd9aa2198d7623b9ba7f8f7dbe79bb4c\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroUserApplicationConfig.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroUserApplicationConfig {\\n    // @notice set the configuration of the LayerZero messaging library of the specified version\\n    // @param _version - messaging library version\\n    // @param _chainId - the chainId for the pending config change\\n    // @param _configType - type of configuration. every messaging library has its own convention.\\n    // @param _config - configuration in the bytes. can encode arbitrary content.\\n    function setConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        uint _configType,\\n        bytes calldata _config\\n    ) external;\\n\\n    // @notice set the send() LayerZero messaging library version to _version\\n    // @param _version - new messaging library version\\n    function setSendVersion(uint16 _version) external;\\n\\n    // @notice set the lzReceive() LayerZero messaging library version to _version\\n    // @param _version - new messaging library version\\n    function setReceiveVersion(uint16 _version) external;\\n\\n    // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\\n    // @param _srcChainId - the chainId of the source chain\\n    // @param _srcAddress - the contract address of the source contract at the source chain\\n    function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\\n}\\n\",\"keccak256\":\"0xb4df93aeb0fb46373a4fb728ad2603edc8b9a1577eee8d801768dc115bf96498\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/libs/LzLib.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity >=0.6.0;\\npragma experimental ABIEncoderV2;\\n\\nlibrary LzLib {\\n    // LayerZero communication\\n    struct CallParams {\\n        address payable refundAddress;\\n        address zroPaymentAddress;\\n    }\\n\\n    //---------------------------------------------------------------------------\\n    // Address type handling\\n\\n    struct AirdropParams {\\n        uint airdropAmount;\\n        bytes32 airdropAddress;\\n    }\\n\\n    function buildAdapterParams(LzLib.AirdropParams memory _airdropParams, uint _uaGasLimit) internal pure returns (bytes memory adapterParams) {\\n        if (_airdropParams.airdropAmount == 0 && _airdropParams.airdropAddress == bytes32(0x0)) {\\n            adapterParams = buildDefaultAdapterParams(_uaGasLimit);\\n        } else {\\n            adapterParams = buildAirdropAdapterParams(_uaGasLimit, _airdropParams);\\n        }\\n    }\\n\\n    // Build Adapter Params\\n    function buildDefaultAdapterParams(uint _uaGas) internal pure returns (bytes memory) {\\n        // txType 1\\n        // bytes  [2       32      ]\\n        // fields [txType  extraGas]\\n        return abi.encodePacked(uint16(1), _uaGas);\\n    }\\n\\n    function buildAirdropAdapterParams(uint _uaGas, AirdropParams memory _params) internal pure returns (bytes memory) {\\n        require(_params.airdropAmount > 0, \\\"Airdrop amount must be greater than 0\\\");\\n        require(_params.airdropAddress != bytes32(0x0), \\\"Airdrop address must be set\\\");\\n\\n        // txType 2\\n        // bytes  [2       32        32            bytes[]         ]\\n        // fields [txType  extraGas  dstNativeAmt  dstNativeAddress]\\n        return abi.encodePacked(uint16(2), _uaGas, _params.airdropAmount, _params.airdropAddress);\\n    }\\n\\n    function getGasLimit(bytes memory _adapterParams) internal pure returns (uint gasLimit) {\\n        require(_adapterParams.length == 34 || _adapterParams.length > 66, \\\"Invalid adapterParams\\\");\\n        assembly {\\n            gasLimit := mload(add(_adapterParams, 34))\\n        }\\n    }\\n\\n    // Decode Adapter Params\\n    function decodeAdapterParams(bytes memory _adapterParams)\\n        internal\\n        pure\\n        returns (\\n            uint16 txType,\\n            uint uaGas,\\n            uint airdropAmount,\\n            address payable airdropAddress\\n        )\\n    {\\n        require(_adapterParams.length == 34 || _adapterParams.length > 66, \\\"Invalid adapterParams\\\");\\n        assembly {\\n            txType := mload(add(_adapterParams, 2))\\n            uaGas := mload(add(_adapterParams, 34))\\n        }\\n        require(txType == 1 || txType == 2, \\\"Unsupported txType\\\");\\n        require(uaGas > 0, \\\"Gas too low\\\");\\n\\n        if (txType == 2) {\\n            assembly {\\n                airdropAmount := mload(add(_adapterParams, 66))\\n                airdropAddress := mload(add(_adapterParams, 86))\\n            }\\n        }\\n    }\\n\\n    //---------------------------------------------------------------------------\\n    // Address type handling\\n    function bytes32ToAddress(bytes32 _bytes32Address) internal pure returns (address _address) {\\n        return address(uint160(uint(_bytes32Address)));\\n    }\\n\\n    function addressToBytes32(address _address) internal pure returns (bytes32 _bytes32Address) {\\n        return bytes32(uint(uint160(_address)));\\n    }\\n}\\n\",\"keccak256\":\"0xf61b7357d6638814e1a8d5edeba5c8f5db1cd782882b96da4452604ec0d5c20a\",\"license\":\"BUSL-1.1\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity ^0.8.0;\\npragma abicoder v2;\\n\\nimport \\\"../interfaces/ILayerZeroReceiver.sol\\\";\\nimport \\\"../interfaces/ILayerZeroEndpoint.sol\\\";\\nimport \\\"../libs/LzLib.sol\\\";\\n\\n/*\\nlike a real LayerZero endpoint but can be mocked, which handle message transmission, verification, and receipt.\\n- blocking: LayerZero provides ordered delivery of messages from a given sender to a destination chain.\\n- non-reentrancy: endpoint has a non-reentrancy guard for both the send() and receive(), respectively.\\n- adapter parameters: allows UAs to add arbitrary transaction params in the send() function, like airdrop on destination chain.\\nunlike a real LayerZero endpoint, it is\\n- no messaging library versioning\\n- send() will short circuit to lzReceive()\\n- no user application configuration\\n*/\\ncontract LZEndpointMock is ILayerZeroEndpoint {\\n    uint8 internal constant _NOT_ENTERED = 1;\\n    uint8 internal constant _ENTERED = 2;\\n\\n    mapping(address => address) public lzEndpointLookup;\\n\\n    uint16 public mockChainId;\\n    bool public nextMsgBlocked;\\n\\n    // fee config\\n    RelayerFeeConfig public relayerFeeConfig;\\n    ProtocolFeeConfig public protocolFeeConfig;\\n    uint public oracleFee;\\n    bytes public defaultAdapterParams;\\n\\n    // path = remote addrss + local address\\n    // inboundNonce = [srcChainId][path].\\n    mapping(uint16 => mapping(bytes => uint64)) public inboundNonce;\\n    //todo: this is a hack\\n    // outboundNonce = [dstChainId][srcAddress]\\n    mapping(uint16 => mapping(address => uint64)) public outboundNonce;\\n    //    // outboundNonce = [dstChainId][path].\\n    //    mapping(uint16 => mapping(bytes => uint64)) public outboundNonce;\\n    // storedPayload = [srcChainId][path]\\n    mapping(uint16 => mapping(bytes => StoredPayload)) public storedPayload;\\n    // msgToDeliver = [srcChainId][path]\\n    mapping(uint16 => mapping(bytes => QueuedPayload[])) public msgsToDeliver;\\n\\n    // reentrancy guard\\n    uint8 internal _send_entered_state = 1;\\n    uint8 internal _receive_entered_state = 1;\\n\\n    struct ProtocolFeeConfig {\\n        uint zroFee;\\n        uint nativeBP;\\n    }\\n\\n    struct RelayerFeeConfig {\\n        uint128 dstPriceRatio; // 10^10\\n        uint128 dstGasPriceInWei;\\n        uint128 dstNativeAmtCap;\\n        uint64 baseGas;\\n        uint64 gasPerByte;\\n    }\\n\\n    struct StoredPayload {\\n        uint64 payloadLength;\\n        address dstAddress;\\n        bytes32 payloadHash;\\n    }\\n\\n    struct QueuedPayload {\\n        address dstAddress;\\n        uint64 nonce;\\n        bytes payload;\\n    }\\n\\n    modifier sendNonReentrant() {\\n        require(_send_entered_state == _NOT_ENTERED, \\\"LayerZeroMock: no send reentrancy\\\");\\n        _send_entered_state = _ENTERED;\\n        _;\\n        _send_entered_state = _NOT_ENTERED;\\n    }\\n\\n    modifier receiveNonReentrant() {\\n        require(_receive_entered_state == _NOT_ENTERED, \\\"LayerZeroMock: no receive reentrancy\\\");\\n        _receive_entered_state = _ENTERED;\\n        _;\\n        _receive_entered_state = _NOT_ENTERED;\\n    }\\n\\n    event UaForceResumeReceive(uint16 chainId, bytes srcAddress);\\n    event PayloadCleared(uint16 srcChainId, bytes srcAddress, uint64 nonce, address dstAddress);\\n    event PayloadStored(uint16 srcChainId, bytes srcAddress, address dstAddress, uint64 nonce, bytes payload, bytes reason);\\n    event ValueTransferFailed(address indexed to, uint indexed quantity);\\n\\n    constructor(uint16 _chainId) {\\n        mockChainId = _chainId;\\n\\n        // init config\\n        relayerFeeConfig = RelayerFeeConfig({\\n            dstPriceRatio: 1e10, // 1:1, same chain, same native coin\\n            dstGasPriceInWei: 1e10,\\n            dstNativeAmtCap: 1e19,\\n            baseGas: 100,\\n            gasPerByte: 1\\n        });\\n        protocolFeeConfig = ProtocolFeeConfig({zroFee: 1e18, nativeBP: 1000}); // BP 0.1\\n        oracleFee = 1e16;\\n        defaultAdapterParams = LzLib.buildDefaultAdapterParams(200000);\\n    }\\n\\n    // ------------------------------ ILayerZeroEndpoint Functions ------------------------------\\n    function send(\\n        uint16 _chainId,\\n        bytes memory _path,\\n        bytes calldata _payload,\\n        address payable _refundAddress,\\n        address _zroPaymentAddress,\\n        bytes memory _adapterParams\\n    ) external payable override sendNonReentrant {\\n        require(_path.length == 40, \\\"LayerZeroMock: incorrect remote address size\\\"); // only support evm chains\\n\\n        address dstAddr;\\n        assembly {\\n            dstAddr := mload(add(_path, 20))\\n        }\\n\\n        address lzEndpoint = lzEndpointLookup[dstAddr];\\n        require(lzEndpoint != address(0), \\\"LayerZeroMock: destination LayerZero Endpoint not found\\\");\\n\\n        // not handle zro token\\n        bytes memory adapterParams = _adapterParams.length > 0 ? _adapterParams : defaultAdapterParams;\\n        (uint nativeFee, ) = estimateFees(_chainId, msg.sender, _payload, _zroPaymentAddress != address(0x0), adapterParams);\\n        require(msg.value >= nativeFee, \\\"LayerZeroMock: not enough native for fees\\\");\\n\\n        uint64 nonce = ++outboundNonce[_chainId][msg.sender];\\n\\n        // refund if they send too much\\n        uint amount = msg.value - nativeFee;\\n        if (amount > 0) {\\n            (bool success, ) = _refundAddress.call{value: amount}(\\\"\\\");\\n            require(success, \\\"LayerZeroMock: failed to refund\\\");\\n        }\\n\\n        // Mock the process of receiving msg on dst chain\\n        // Mock the relayer paying the dstNativeAddr the amount of extra native token\\n        (, uint extraGas, uint dstNativeAmt, address payable dstNativeAddr) = LzLib.decodeAdapterParams(adapterParams);\\n        if (dstNativeAmt > 0) {\\n            (bool success, ) = dstNativeAddr.call{value: dstNativeAmt}(\\\"\\\");\\n            if (!success) {\\n                emit ValueTransferFailed(dstNativeAddr, dstNativeAmt);\\n            }\\n        }\\n\\n        bytes memory srcUaAddress = abi.encodePacked(msg.sender, dstAddr); // cast this address to bytes\\n        bytes memory payload = _payload;\\n        LZEndpointMock(lzEndpoint).receivePayload(mockChainId, srcUaAddress, dstAddr, nonce, extraGas, payload);\\n    }\\n\\n    function receivePayload(\\n        uint16 _srcChainId,\\n        bytes calldata _path,\\n        address _dstAddress,\\n        uint64 _nonce,\\n        uint _gasLimit,\\n        bytes calldata _payload\\n    ) external override receiveNonReentrant {\\n        StoredPayload storage sp = storedPayload[_srcChainId][_path];\\n\\n        // assert and increment the nonce. no message shuffling\\n        require(_nonce == ++inboundNonce[_srcChainId][_path], \\\"LayerZeroMock: wrong nonce\\\");\\n\\n        // queue the following msgs inside of a stack to simulate a successful send on src, but not fully delivered on dst\\n        if (sp.payloadHash != bytes32(0)) {\\n            QueuedPayload[] storage msgs = msgsToDeliver[_srcChainId][_path];\\n            QueuedPayload memory newMsg = QueuedPayload(_dstAddress, _nonce, _payload);\\n\\n            // warning, might run into gas issues trying to forward through a bunch of queued msgs\\n            // shift all the msgs over so we can treat this like a fifo via array.pop()\\n            if (msgs.length > 0) {\\n                // extend the array\\n                msgs.push(newMsg);\\n\\n                // shift all the indexes up for pop()\\n                for (uint i = 0; i < msgs.length - 1; i++) {\\n                    msgs[i + 1] = msgs[i];\\n                }\\n\\n                // put the newMsg at the bottom of the stack\\n                msgs[0] = newMsg;\\n            } else {\\n                msgs.push(newMsg);\\n            }\\n        } else if (nextMsgBlocked) {\\n            storedPayload[_srcChainId][_path] = StoredPayload(uint64(_payload.length), _dstAddress, keccak256(_payload));\\n            emit PayloadStored(_srcChainId, _path, _dstAddress, _nonce, _payload, bytes(\\\"\\\"));\\n            // ensure the next msgs that go through are no longer blocked\\n            nextMsgBlocked = false;\\n        } else {\\n            try ILayerZeroReceiver(_dstAddress).lzReceive{gas: _gasLimit}(_srcChainId, _path, _nonce, _payload) {} catch (bytes memory reason) {\\n                storedPayload[_srcChainId][_path] = StoredPayload(uint64(_payload.length), _dstAddress, keccak256(_payload));\\n                emit PayloadStored(_srcChainId, _path, _dstAddress, _nonce, _payload, reason);\\n                // ensure the next msgs that go through are no longer blocked\\n                nextMsgBlocked = false;\\n            }\\n        }\\n    }\\n\\n    function getInboundNonce(uint16 _chainID, bytes calldata _path) external view override returns (uint64) {\\n        return inboundNonce[_chainID][_path];\\n    }\\n\\n    function getOutboundNonce(uint16 _chainID, address _srcAddress) external view override returns (uint64) {\\n        return outboundNonce[_chainID][_srcAddress];\\n    }\\n\\n    function estimateFees(\\n        uint16 _dstChainId,\\n        address _userApplication,\\n        bytes memory _payload,\\n        bool _payInZRO,\\n        bytes memory _adapterParams\\n    ) public view override returns (uint nativeFee, uint zroFee) {\\n        bytes memory adapterParams = _adapterParams.length > 0 ? _adapterParams : defaultAdapterParams;\\n\\n        // Relayer Fee\\n        uint relayerFee = _getRelayerFee(_dstChainId, 1, _userApplication, _payload.length, adapterParams);\\n\\n        // LayerZero Fee\\n        uint protocolFee = _getProtocolFees(_payInZRO, relayerFee, oracleFee);\\n        _payInZRO ? zroFee = protocolFee : nativeFee = protocolFee;\\n\\n        // return the sum of fees\\n        nativeFee = nativeFee + relayerFee + oracleFee;\\n    }\\n\\n    function getChainId() external view override returns (uint16) {\\n        return mockChainId;\\n    }\\n\\n    function retryPayload(\\n        uint16 _srcChainId,\\n        bytes calldata _path,\\n        bytes calldata _payload\\n    ) external override {\\n        StoredPayload storage sp = storedPayload[_srcChainId][_path];\\n        require(sp.payloadHash != bytes32(0), \\\"LayerZeroMock: no stored payload\\\");\\n        require(_payload.length == sp.payloadLength && keccak256(_payload) == sp.payloadHash, \\\"LayerZeroMock: invalid payload\\\");\\n\\n        address dstAddress = sp.dstAddress;\\n        // empty the storedPayload\\n        sp.payloadLength = 0;\\n        sp.dstAddress = address(0);\\n        sp.payloadHash = bytes32(0);\\n\\n        uint64 nonce = inboundNonce[_srcChainId][_path];\\n\\n        ILayerZeroReceiver(dstAddress).lzReceive(_srcChainId, _path, nonce, _payload);\\n        emit PayloadCleared(_srcChainId, _path, nonce, dstAddress);\\n    }\\n\\n    function hasStoredPayload(uint16 _srcChainId, bytes calldata _path) external view override returns (bool) {\\n        StoredPayload storage sp = storedPayload[_srcChainId][_path];\\n        return sp.payloadHash != bytes32(0);\\n    }\\n\\n    function getSendLibraryAddress(address) external view override returns (address) {\\n        return address(this);\\n    }\\n\\n    function getReceiveLibraryAddress(address) external view override returns (address) {\\n        return address(this);\\n    }\\n\\n    function isSendingPayload() external view override returns (bool) {\\n        return _send_entered_state == _ENTERED;\\n    }\\n\\n    function isReceivingPayload() external view override returns (bool) {\\n        return _receive_entered_state == _ENTERED;\\n    }\\n\\n    function getConfig(\\n        uint16, /*_version*/\\n        uint16, /*_chainId*/\\n        address, /*_ua*/\\n        uint /*_configType*/\\n    ) external pure override returns (bytes memory) {\\n        return \\\"\\\";\\n    }\\n\\n    function getSendVersion(\\n        address /*_userApplication*/\\n    ) external pure override returns (uint16) {\\n        return 1;\\n    }\\n\\n    function getReceiveVersion(\\n        address /*_userApplication*/\\n    ) external pure override returns (uint16) {\\n        return 1;\\n    }\\n\\n    function setConfig(\\n        uint16, /*_version*/\\n        uint16, /*_chainId*/\\n        uint, /*_configType*/\\n        bytes memory /*_config*/\\n    ) external override {}\\n\\n    function setSendVersion(\\n        uint16 /*version*/\\n    ) external override {}\\n\\n    function setReceiveVersion(\\n        uint16 /*version*/\\n    ) external override {}\\n\\n    function forceResumeReceive(uint16 _srcChainId, bytes calldata _path) external override {\\n        StoredPayload storage sp = storedPayload[_srcChainId][_path];\\n        // revert if no messages are cached. safeguard malicious UA behaviour\\n        require(sp.payloadHash != bytes32(0), \\\"LayerZeroMock: no stored payload\\\");\\n        require(sp.dstAddress == msg.sender, \\\"LayerZeroMock: invalid caller\\\");\\n\\n        // empty the storedPayload\\n        sp.payloadLength = 0;\\n        sp.dstAddress = address(0);\\n        sp.payloadHash = bytes32(0);\\n\\n        emit UaForceResumeReceive(_srcChainId, _path);\\n\\n        // resume the receiving of msgs after we force clear the \\\"stuck\\\" msg\\n        _clearMsgQue(_srcChainId, _path);\\n    }\\n\\n    // ------------------------------ Other Public/External Functions --------------------------------------------------\\n\\n    function getLengthOfQueue(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint) {\\n        return msgsToDeliver[_srcChainId][_srcAddress].length;\\n    }\\n\\n    // used to simulate messages received get stored as a payload\\n    function blockNextMsg() external {\\n        nextMsgBlocked = true;\\n    }\\n\\n    function setDestLzEndpoint(address destAddr, address lzEndpointAddr) external {\\n        lzEndpointLookup[destAddr] = lzEndpointAddr;\\n    }\\n\\n    function setRelayerPrice(\\n        uint128 _dstPriceRatio,\\n        uint128 _dstGasPriceInWei,\\n        uint128 _dstNativeAmtCap,\\n        uint64 _baseGas,\\n        uint64 _gasPerByte\\n    ) external {\\n        relayerFeeConfig.dstPriceRatio = _dstPriceRatio;\\n        relayerFeeConfig.dstGasPriceInWei = _dstGasPriceInWei;\\n        relayerFeeConfig.dstNativeAmtCap = _dstNativeAmtCap;\\n        relayerFeeConfig.baseGas = _baseGas;\\n        relayerFeeConfig.gasPerByte = _gasPerByte;\\n    }\\n\\n    function setProtocolFee(uint _zroFee, uint _nativeBP) external {\\n        protocolFeeConfig.zroFee = _zroFee;\\n        protocolFeeConfig.nativeBP = _nativeBP;\\n    }\\n\\n    function setOracleFee(uint _oracleFee) external {\\n        oracleFee = _oracleFee;\\n    }\\n\\n    function setDefaultAdapterParams(bytes memory _adapterParams) external {\\n        defaultAdapterParams = _adapterParams;\\n    }\\n\\n    // --------------------- Internal Functions ---------------------\\n    // simulates the relayer pushing through the rest of the msgs that got delayed due to the stored payload\\n    function _clearMsgQue(uint16 _srcChainId, bytes calldata _path) internal {\\n        QueuedPayload[] storage msgs = msgsToDeliver[_srcChainId][_path];\\n\\n        // warning, might run into gas issues trying to forward through a bunch of queued msgs\\n        while (msgs.length > 0) {\\n            QueuedPayload memory payload = msgs[msgs.length - 1];\\n            ILayerZeroReceiver(payload.dstAddress).lzReceive(_srcChainId, _path, payload.nonce, payload.payload);\\n            msgs.pop();\\n        }\\n    }\\n\\n    function _getProtocolFees(\\n        bool _payInZro,\\n        uint _relayerFee,\\n        uint _oracleFee\\n    ) internal view returns (uint) {\\n        if (_payInZro) {\\n            return protocolFeeConfig.zroFee;\\n        } else {\\n            return ((_relayerFee + _oracleFee) * protocolFeeConfig.nativeBP) / 10000;\\n        }\\n    }\\n\\n    function _getRelayerFee(\\n        uint16, /* _dstChainId */\\n        uint16, /* _outboundProofType */\\n        address, /* _userApplication */\\n        uint _payloadSize,\\n        bytes memory _adapterParams\\n    ) internal view returns (uint) {\\n        (uint16 txType, uint extraGas, uint dstNativeAmt, ) = LzLib.decodeAdapterParams(_adapterParams);\\n        uint totalRemoteToken; // = baseGas + extraGas + requiredNativeAmount\\n        if (txType == 2) {\\n            require(relayerFeeConfig.dstNativeAmtCap >= dstNativeAmt, \\\"LayerZeroMock: dstNativeAmt too large \\\");\\n            totalRemoteToken += dstNativeAmt;\\n        }\\n        // remoteGasTotal = dstGasPriceInWei * (baseGas + extraGas)\\n        uint remoteGasTotal = relayerFeeConfig.dstGasPriceInWei * (relayerFeeConfig.baseGas + extraGas);\\n        totalRemoteToken += remoteGasTotal;\\n\\n        // tokenConversionRate = dstPrice / localPrice\\n        // basePrice = totalRemoteToken * tokenConversionRate\\n        uint basePrice = (totalRemoteToken * relayerFeeConfig.dstPriceRatio) / 10**10;\\n\\n        // pricePerByte = (dstGasPriceInWei * gasPerBytes) * tokenConversionRate\\n        uint pricePerByte = (relayerFeeConfig.dstGasPriceInWei * relayerFeeConfig.gasPerByte * relayerFeeConfig.dstPriceRatio) / 10**10;\\n\\n        return basePrice + _payloadSize * pricePerByte;\\n    }\\n}\\n\",\"keccak256\":\"0x06bc56b213f08faece383b9df0eb7eeafebb36f490ca117d927c93f3d82e554b\",\"license\":\"BUSL-1.1\"}},\"version\":1}","storageLayout":{"storage":[{"astId":4541,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"lzEndpointLookup","offset":0,"slot":"0","type":"t_mapping(t_address,t_address)"},{"astId":4543,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"mockChainId","offset":0,"slot":"1","type":"t_uint16"},{"astId":4545,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"nextMsgBlocked","offset":2,"slot":"1","type":"t_bool"},{"astId":4548,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"relayerFeeConfig","offset":0,"slot":"2","type":"t_struct(RelayerFeeConfig)4604_storage"},{"astId":4551,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"protocolFeeConfig","offset":0,"slot":"4","type":"t_struct(ProtocolFeeConfig)4593_storage"},{"astId":4553,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"oracleFee","offset":0,"slot":"6","type":"t_uint256"},{"astId":4555,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"defaultAdapterParams","offset":0,"slot":"7","type":"t_bytes_storage"},{"astId":4561,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"inboundNonce","offset":0,"slot":"8","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_uint64))"},{"astId":4567,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"outboundNonce","offset":0,"slot":"9","type":"t_mapping(t_uint16,t_mapping(t_address,t_uint64))"},{"astId":4574,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"storedPayload","offset":0,"slot":"10","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_struct(StoredPayload)4611_storage))"},{"astId":4582,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"msgsToDeliver","offset":0,"slot":"11","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_array(t_struct(QueuedPayload)4618_storage)dyn_storage))"},{"astId":4585,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"_send_entered_state","offset":0,"slot":"12","type":"t_uint8"},{"astId":4588,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"_receive_entered_state","offset":1,"slot":"12","type":"t_uint8"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_struct(QueuedPayload)4618_storage)dyn_storage":{"base":"t_struct(QueuedPayload)4618_storage","encoding":"dynamic_array","label":"struct LZEndpointMock.QueuedPayload[]","numberOfBytes":"32"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes_memory_ptr":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_address,t_address)":{"encoding":"mapping","key":"t_address","label":"mapping(address => address)","numberOfBytes":"32","value":"t_address"},"t_mapping(t_address,t_uint64)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint64)","numberOfBytes":"32","value":"t_uint64"},"t_mapping(t_bytes_memory_ptr,t_array(t_struct(QueuedPayload)4618_storage)dyn_storage)":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => struct LZEndpointMock.QueuedPayload[])","numberOfBytes":"32","value":"t_array(t_struct(QueuedPayload)4618_storage)dyn_storage"},"t_mapping(t_bytes_memory_ptr,t_struct(StoredPayload)4611_storage)":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => struct LZEndpointMock.StoredPayload)","numberOfBytes":"32","value":"t_struct(StoredPayload)4611_storage"},"t_mapping(t_bytes_memory_ptr,t_uint64)":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => uint64)","numberOfBytes":"32","value":"t_uint64"},"t_mapping(t_uint16,t_mapping(t_address,t_uint64))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(address => uint64))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint64)"},"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_array(t_struct(QueuedPayload)4618_storage)dyn_storage))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(bytes => struct LZEndpointMock.QueuedPayload[]))","numberOfBytes":"32","value":"t_mapping(t_bytes_memory_ptr,t_array(t_struct(QueuedPayload)4618_storage)dyn_storage)"},"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_struct(StoredPayload)4611_storage))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(bytes => struct LZEndpointMock.StoredPayload))","numberOfBytes":"32","value":"t_mapping(t_bytes_memory_ptr,t_struct(StoredPayload)4611_storage)"},"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_uint64))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(bytes => uint64))","numberOfBytes":"32","value":"t_mapping(t_bytes_memory_ptr,t_uint64)"},"t_struct(ProtocolFeeConfig)4593_storage":{"encoding":"inplace","label":"struct LZEndpointMock.ProtocolFeeConfig","members":[{"astId":4590,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"zroFee","offset":0,"slot":"0","type":"t_uint256"},{"astId":4592,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"nativeBP","offset":0,"slot":"1","type":"t_uint256"}],"numberOfBytes":"64"},"t_struct(QueuedPayload)4618_storage":{"encoding":"inplace","label":"struct LZEndpointMock.QueuedPayload","members":[{"astId":4613,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"dstAddress","offset":0,"slot":"0","type":"t_address"},{"astId":4615,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"nonce","offset":20,"slot":"0","type":"t_uint64"},{"astId":4617,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"payload","offset":0,"slot":"1","type":"t_bytes_storage"}],"numberOfBytes":"64"},"t_struct(RelayerFeeConfig)4604_storage":{"encoding":"inplace","label":"struct LZEndpointMock.RelayerFeeConfig","members":[{"astId":4595,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"dstPriceRatio","offset":0,"slot":"0","type":"t_uint128"},{"astId":4597,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"dstGasPriceInWei","offset":16,"slot":"0","type":"t_uint128"},{"astId":4599,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"dstNativeAmtCap","offset":0,"slot":"1","type":"t_uint128"},{"astId":4601,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"baseGas","offset":16,"slot":"1","type":"t_uint64"},{"astId":4603,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"gasPerByte","offset":24,"slot":"1","type":"t_uint64"}],"numberOfBytes":"64"},"t_struct(StoredPayload)4611_storage":{"encoding":"inplace","label":"struct LZEndpointMock.StoredPayload","members":[{"astId":4606,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"payloadLength","offset":0,"slot":"0","type":"t_uint64"},{"astId":4608,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"dstAddress","offset":8,"slot":"0","type":"t_address"},{"astId":4610,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"payloadHash","offset":0,"slot":"1","type":"t_bytes32"}],"numberOfBytes":"64"},"t_uint128":{"encoding":"inplace","label":"uint128","numberOfBytes":"16"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol":{"Ownable2StepUpgradeable":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Contract module which provides access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership} and {acceptOwnership}. This module is used through inheritance. It will make available all functions from parent (Ownable).","events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."}},"kind":"dev","methods":{"acceptOwnership()":{"details":"The new owner accepts the ownership transfer."},"owner()":{"details":"Returns the address of the current owner."},"pendingOwner()":{"details":"Returns the address of the pending owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner."}},"stateVariables":{"__gap":{"details":"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"acceptOwnership()":"79ba5097","owner()":"8da5cb5b","pendingOwner()":"e30c3978","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership} and {acceptOwnership}. This module is used through inheritance. It will make available all functions from parent (Ownable).\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":\"Ownable2StepUpgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (access/Ownable2Step.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./OwnableUpgradeable.sol\\\";\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership} and {acceptOwnership}.\\n *\\n * This module is used through inheritance. It will make available all functions\\n * from parent (Ownable).\\n */\\nabstract contract Ownable2StepUpgradeable is Initializable, OwnableUpgradeable {\\n    function __Ownable2Step_init() internal onlyInitializing {\\n        __Ownable_init_unchained();\\n    }\\n\\n    function __Ownable2Step_init_unchained() internal onlyInitializing {\\n    }\\n    address private _pendingOwner;\\n\\n    event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Returns the address of the pending owner.\\n     */\\n    function pendingOwner() public view virtual returns (address) {\\n        return _pendingOwner;\\n    }\\n\\n    /**\\n     * @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual override onlyOwner {\\n        _pendingOwner = newOwner;\\n        emit OwnershipTransferStarted(owner(), newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual override {\\n        delete _pendingOwner;\\n        super._transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev The new owner accepts the ownership transfer.\\n     */\\n    function acceptOwnership() external {\\n        address sender = _msgSender();\\n        require(pendingOwner() == sender, \\\"Ownable2Step: caller is not the new owner\\\");\\n        _transferOwnership(sender);\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0xd712fb45b3ea0ab49679164e3895037adc26ce12879d5184feb040e01c1c07a9\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/ContextUpgradeable.sol\\\";\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract OwnableUpgradeable is Initializable, ContextUpgradeable {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    function __Ownable_init() internal onlyInitializing {\\n        __Ownable_init_unchained();\\n    }\\n\\n    function __Ownable_init_unchained() internal onlyInitializing {\\n        _transferOwnership(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        _checkOwner();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if the sender is not the owner.\\n     */\\n    function _checkOwner() internal view virtual {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions anymore. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby removing any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.1) (proxy/utils/Initializable.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../../utils/AddressUpgradeable.sol\\\";\\n\\n/**\\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\\n *\\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\\n * reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in\\n * case an upgrade adds a module that needs to be initialized.\\n *\\n * For example:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * contract MyToken is ERC20Upgradeable {\\n *     function initialize() initializer public {\\n *         __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\");\\n *     }\\n * }\\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\\n *     function initializeV2() reinitializer(2) public {\\n *         __ERC20Permit_init(\\\"MyToken\\\");\\n *     }\\n * }\\n * ```\\n *\\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\\n *\\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\\n *\\n * [CAUTION]\\n * ====\\n * Avoid leaving a contract uninitialized.\\n *\\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * /// @custom:oz-upgrades-unsafe-allow constructor\\n * constructor() {\\n *     _disableInitializers();\\n * }\\n * ```\\n * ====\\n */\\nabstract contract Initializable {\\n    /**\\n     * @dev Indicates that the contract has been initialized.\\n     * @custom:oz-retyped-from bool\\n     */\\n    uint8 private _initialized;\\n\\n    /**\\n     * @dev Indicates that the contract is in the process of being initialized.\\n     */\\n    bool private _initializing;\\n\\n    /**\\n     * @dev Triggered when the contract has been initialized or reinitialized.\\n     */\\n    event Initialized(uint8 version);\\n\\n    /**\\n     * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\\n     * `onlyInitializing` functions can be used to initialize parent contracts.\\n     *\\n     * Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\\n     * constructor.\\n     *\\n     * Emits an {Initialized} event.\\n     */\\n    modifier initializer() {\\n        bool isTopLevelCall = !_initializing;\\n        require(\\n            (isTopLevelCall && _initialized < 1) || (!AddressUpgradeable.isContract(address(this)) && _initialized == 1),\\n            \\\"Initializable: contract is already initialized\\\"\\n        );\\n        _initialized = 1;\\n        if (isTopLevelCall) {\\n            _initializing = true;\\n        }\\n        _;\\n        if (isTopLevelCall) {\\n            _initializing = false;\\n            emit Initialized(1);\\n        }\\n    }\\n\\n    /**\\n     * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\\n     * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\\n     * used to initialize parent contracts.\\n     *\\n     * A reinitializer may be used after the original initialization step. This is essential to configure modules that\\n     * are added through upgrades and that require initialization.\\n     *\\n     * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\\n     * cannot be nested. If one is invoked in the context of another, execution will revert.\\n     *\\n     * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\\n     * a contract, executing them in the right order is up to the developer or operator.\\n     *\\n     * WARNING: setting the version to 255 will prevent any future reinitialization.\\n     *\\n     * Emits an {Initialized} event.\\n     */\\n    modifier reinitializer(uint8 version) {\\n        require(!_initializing && _initialized < version, \\\"Initializable: contract is already initialized\\\");\\n        _initialized = version;\\n        _initializing = true;\\n        _;\\n        _initializing = false;\\n        emit Initialized(version);\\n    }\\n\\n    /**\\n     * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\\n     * {initializer} and {reinitializer} modifiers, directly or indirectly.\\n     */\\n    modifier onlyInitializing() {\\n        require(_initializing, \\\"Initializable: contract is not initializing\\\");\\n        _;\\n    }\\n\\n    /**\\n     * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\\n     * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\\n     * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\\n     * through proxies.\\n     *\\n     * Emits an {Initialized} event the first time it is successfully executed.\\n     */\\n    function _disableInitializers() internal virtual {\\n        require(!_initializing, \\\"Initializable: contract is initializing\\\");\\n        if (_initialized < type(uint8).max) {\\n            _initialized = type(uint8).max;\\n            emit Initialized(type(uint8).max);\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns the highest version that has been initialized. See {reinitializer}.\\n     */\\n    function _getInitializedVersion() internal view returns (uint8) {\\n        return _initialized;\\n    }\\n\\n    /**\\n     * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.\\n     */\\n    function _isInitializing() internal view returns (bool) {\\n        return _initializing;\\n    }\\n}\\n\",\"keccak256\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary AddressUpgradeable {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\n     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\n     *\\n     * _Available since v4.8._\\n     */\\n    function verifyCallResultFromTarget(\\n        address target,\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        if (success) {\\n            if (returndata.length == 0) {\\n                // only check isContract if the call was successful and the return data is empty\\n                // otherwise we already know that it was a contract\\n                require(isContract(target), \\\"Address: call to non-contract\\\");\\n            }\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason or using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    function _revert(bytes memory returndata, string memory errorMessage) private pure {\\n        // Look for revert reason and bubble it up if present\\n        if (returndata.length > 0) {\\n            // The easiest way to bubble the revert reason is using memory via assembly\\n            /// @solidity memory-safe-assembly\\n            assembly {\\n                let returndata_size := mload(returndata)\\n                revert(add(32, returndata), returndata_size)\\n            }\\n        } else {\\n            revert(errorMessage);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract ContextUpgradeable is Initializable {\\n    function __Context_init() internal onlyInitializing {\\n    }\\n\\n    function __Context_init_unchained() internal onlyInitializing {\\n    }\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[50] private __gap;\\n}\\n\",\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":6086,"contract":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:Ownable2StepUpgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":6089,"contract":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:Ownable2StepUpgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":6573,"contract":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:Ownable2StepUpgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":5958,"contract":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:Ownable2StepUpgradeable","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":6078,"contract":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:Ownable2StepUpgradeable","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":5867,"contract":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:Ownable2StepUpgradeable","label":"_pendingOwner","offset":0,"slot":"101","type":"t_address"},{"astId":5946,"contract":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:Ownable2StepUpgradeable","label":"__gap","offset":0,"slot":"102","type":"t_array(t_uint256)49_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol":{"OwnableUpgradeable":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.","events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."}},"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"stateVariables":{"__gap":{"details":"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":\"OwnableUpgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/ContextUpgradeable.sol\\\";\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract OwnableUpgradeable is Initializable, ContextUpgradeable {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    function __Ownable_init() internal onlyInitializing {\\n        __Ownable_init_unchained();\\n    }\\n\\n    function __Ownable_init_unchained() internal onlyInitializing {\\n        _transferOwnership(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        _checkOwner();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if the sender is not the owner.\\n     */\\n    function _checkOwner() internal view virtual {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions anymore. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby removing any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.1) (proxy/utils/Initializable.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../../utils/AddressUpgradeable.sol\\\";\\n\\n/**\\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\\n *\\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\\n * reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in\\n * case an upgrade adds a module that needs to be initialized.\\n *\\n * For example:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * contract MyToken is ERC20Upgradeable {\\n *     function initialize() initializer public {\\n *         __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\");\\n *     }\\n * }\\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\\n *     function initializeV2() reinitializer(2) public {\\n *         __ERC20Permit_init(\\\"MyToken\\\");\\n *     }\\n * }\\n * ```\\n *\\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\\n *\\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\\n *\\n * [CAUTION]\\n * ====\\n * Avoid leaving a contract uninitialized.\\n *\\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * /// @custom:oz-upgrades-unsafe-allow constructor\\n * constructor() {\\n *     _disableInitializers();\\n * }\\n * ```\\n * ====\\n */\\nabstract contract Initializable {\\n    /**\\n     * @dev Indicates that the contract has been initialized.\\n     * @custom:oz-retyped-from bool\\n     */\\n    uint8 private _initialized;\\n\\n    /**\\n     * @dev Indicates that the contract is in the process of being initialized.\\n     */\\n    bool private _initializing;\\n\\n    /**\\n     * @dev Triggered when the contract has been initialized or reinitialized.\\n     */\\n    event Initialized(uint8 version);\\n\\n    /**\\n     * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\\n     * `onlyInitializing` functions can be used to initialize parent contracts.\\n     *\\n     * Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\\n     * constructor.\\n     *\\n     * Emits an {Initialized} event.\\n     */\\n    modifier initializer() {\\n        bool isTopLevelCall = !_initializing;\\n        require(\\n            (isTopLevelCall && _initialized < 1) || (!AddressUpgradeable.isContract(address(this)) && _initialized == 1),\\n            \\\"Initializable: contract is already initialized\\\"\\n        );\\n        _initialized = 1;\\n        if (isTopLevelCall) {\\n            _initializing = true;\\n        }\\n        _;\\n        if (isTopLevelCall) {\\n            _initializing = false;\\n            emit Initialized(1);\\n        }\\n    }\\n\\n    /**\\n     * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\\n     * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\\n     * used to initialize parent contracts.\\n     *\\n     * A reinitializer may be used after the original initialization step. This is essential to configure modules that\\n     * are added through upgrades and that require initialization.\\n     *\\n     * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\\n     * cannot be nested. If one is invoked in the context of another, execution will revert.\\n     *\\n     * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\\n     * a contract, executing them in the right order is up to the developer or operator.\\n     *\\n     * WARNING: setting the version to 255 will prevent any future reinitialization.\\n     *\\n     * Emits an {Initialized} event.\\n     */\\n    modifier reinitializer(uint8 version) {\\n        require(!_initializing && _initialized < version, \\\"Initializable: contract is already initialized\\\");\\n        _initialized = version;\\n        _initializing = true;\\n        _;\\n        _initializing = false;\\n        emit Initialized(version);\\n    }\\n\\n    /**\\n     * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\\n     * {initializer} and {reinitializer} modifiers, directly or indirectly.\\n     */\\n    modifier onlyInitializing() {\\n        require(_initializing, \\\"Initializable: contract is not initializing\\\");\\n        _;\\n    }\\n\\n    /**\\n     * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\\n     * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\\n     * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\\n     * through proxies.\\n     *\\n     * Emits an {Initialized} event the first time it is successfully executed.\\n     */\\n    function _disableInitializers() internal virtual {\\n        require(!_initializing, \\\"Initializable: contract is initializing\\\");\\n        if (_initialized < type(uint8).max) {\\n            _initialized = type(uint8).max;\\n            emit Initialized(type(uint8).max);\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns the highest version that has been initialized. See {reinitializer}.\\n     */\\n    function _getInitializedVersion() internal view returns (uint8) {\\n        return _initialized;\\n    }\\n\\n    /**\\n     * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.\\n     */\\n    function _isInitializing() internal view returns (bool) {\\n        return _initializing;\\n    }\\n}\\n\",\"keccak256\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary AddressUpgradeable {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\n     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\n     *\\n     * _Available since v4.8._\\n     */\\n    function verifyCallResultFromTarget(\\n        address target,\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        if (success) {\\n            if (returndata.length == 0) {\\n                // only check isContract if the call was successful and the return data is empty\\n                // otherwise we already know that it was a contract\\n                require(isContract(target), \\\"Address: call to non-contract\\\");\\n            }\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason or using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    function _revert(bytes memory returndata, string memory errorMessage) private pure {\\n        // Look for revert reason and bubble it up if present\\n        if (returndata.length > 0) {\\n            // The easiest way to bubble the revert reason is using memory via assembly\\n            /// @solidity memory-safe-assembly\\n            assembly {\\n                let returndata_size := mload(returndata)\\n                revert(add(32, returndata), returndata_size)\\n            }\\n        } else {\\n            revert(errorMessage);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract ContextUpgradeable is Initializable {\\n    function __Context_init() internal onlyInitializing {\\n    }\\n\\n    function __Context_init_unchained() internal onlyInitializing {\\n    }\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[50] private __gap;\\n}\\n\",\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":6086,"contract":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":6089,"contract":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":6573,"contract":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":5958,"contract":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":6078,"contract":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"Initializable":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"}],"devdoc":{"custom:oz-upgrades-unsafe-allow":"constructor constructor() {     _disableInitializers(); } ``` ====","details":"This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. The initialization functions use a version number. Once a version number is used, it is consumed and cannot be reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in case an upgrade adds a module that needs to be initialized. For example: [.hljs-theme-light.nopadding] ``` contract MyToken is ERC20Upgradeable {     function initialize() initializer public {         __ERC20_init(\"MyToken\", \"MTK\");     } } contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {     function initializeV2() reinitializer(2) public {         __ERC20Permit_init(\"MyToken\");     } } ``` TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}. CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. [CAUTION] ==== Avoid leaving a contract uninitialized. An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke the {_disableInitializers} function in the constructor to automatically lock it when it is deployed: [.hljs-theme-light.nopadding] ```","events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."}},"kind":"dev","methods":{},"stateVariables":{"_initialized":{"custom:oz-retyped-from":"bool","details":"Indicates that the contract has been initialized."},"_initializing":{"details":"Indicates that the contract is in the process of being initialized."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor constructor() {     _disableInitializers(); } ``` ====\",\"details\":\"This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. The initialization functions use a version number. Once a version number is used, it is consumed and cannot be reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in case an upgrade adds a module that needs to be initialized. For example: [.hljs-theme-light.nopadding] ``` contract MyToken is ERC20Upgradeable {     function initialize() initializer public {         __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\");     } } contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {     function initializeV2() reinitializer(2) public {         __ERC20Permit_init(\\\"MyToken\\\");     } } ``` TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}. CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. [CAUTION] ==== Avoid leaving a contract uninitialized. An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke the {_disableInitializers} function in the constructor to automatically lock it when it is deployed: [.hljs-theme-light.nopadding] ```\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"_initialized\":{\"custom:oz-retyped-from\":\"bool\",\"details\":\"Indicates that the contract has been initialized.\"},\"_initializing\":{\"details\":\"Indicates that the contract is in the process of being initialized.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":\"Initializable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.1) (proxy/utils/Initializable.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../../utils/AddressUpgradeable.sol\\\";\\n\\n/**\\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\\n *\\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\\n * reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in\\n * case an upgrade adds a module that needs to be initialized.\\n *\\n * For example:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * contract MyToken is ERC20Upgradeable {\\n *     function initialize() initializer public {\\n *         __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\");\\n *     }\\n * }\\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\\n *     function initializeV2() reinitializer(2) public {\\n *         __ERC20Permit_init(\\\"MyToken\\\");\\n *     }\\n * }\\n * ```\\n *\\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\\n *\\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\\n *\\n * [CAUTION]\\n * ====\\n * Avoid leaving a contract uninitialized.\\n *\\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * /// @custom:oz-upgrades-unsafe-allow constructor\\n * constructor() {\\n *     _disableInitializers();\\n * }\\n * ```\\n * ====\\n */\\nabstract contract Initializable {\\n    /**\\n     * @dev Indicates that the contract has been initialized.\\n     * @custom:oz-retyped-from bool\\n     */\\n    uint8 private _initialized;\\n\\n    /**\\n     * @dev Indicates that the contract is in the process of being initialized.\\n     */\\n    bool private _initializing;\\n\\n    /**\\n     * @dev Triggered when the contract has been initialized or reinitialized.\\n     */\\n    event Initialized(uint8 version);\\n\\n    /**\\n     * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\\n     * `onlyInitializing` functions can be used to initialize parent contracts.\\n     *\\n     * Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\\n     * constructor.\\n     *\\n     * Emits an {Initialized} event.\\n     */\\n    modifier initializer() {\\n        bool isTopLevelCall = !_initializing;\\n        require(\\n            (isTopLevelCall && _initialized < 1) || (!AddressUpgradeable.isContract(address(this)) && _initialized == 1),\\n            \\\"Initializable: contract is already initialized\\\"\\n        );\\n        _initialized = 1;\\n        if (isTopLevelCall) {\\n            _initializing = true;\\n        }\\n        _;\\n        if (isTopLevelCall) {\\n            _initializing = false;\\n            emit Initialized(1);\\n        }\\n    }\\n\\n    /**\\n     * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\\n     * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\\n     * used to initialize parent contracts.\\n     *\\n     * A reinitializer may be used after the original initialization step. This is essential to configure modules that\\n     * are added through upgrades and that require initialization.\\n     *\\n     * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\\n     * cannot be nested. If one is invoked in the context of another, execution will revert.\\n     *\\n     * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\\n     * a contract, executing them in the right order is up to the developer or operator.\\n     *\\n     * WARNING: setting the version to 255 will prevent any future reinitialization.\\n     *\\n     * Emits an {Initialized} event.\\n     */\\n    modifier reinitializer(uint8 version) {\\n        require(!_initializing && _initialized < version, \\\"Initializable: contract is already initialized\\\");\\n        _initialized = version;\\n        _initializing = true;\\n        _;\\n        _initializing = false;\\n        emit Initialized(version);\\n    }\\n\\n    /**\\n     * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\\n     * {initializer} and {reinitializer} modifiers, directly or indirectly.\\n     */\\n    modifier onlyInitializing() {\\n        require(_initializing, \\\"Initializable: contract is not initializing\\\");\\n        _;\\n    }\\n\\n    /**\\n     * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\\n     * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\\n     * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\\n     * through proxies.\\n     *\\n     * Emits an {Initialized} event the first time it is successfully executed.\\n     */\\n    function _disableInitializers() internal virtual {\\n        require(!_initializing, \\\"Initializable: contract is initializing\\\");\\n        if (_initialized < type(uint8).max) {\\n            _initialized = type(uint8).max;\\n            emit Initialized(type(uint8).max);\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns the highest version that has been initialized. See {reinitializer}.\\n     */\\n    function _getInitializedVersion() internal view returns (uint8) {\\n        return _initialized;\\n    }\\n\\n    /**\\n     * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.\\n     */\\n    function _isInitializing() internal view returns (bool) {\\n        return _initializing;\\n    }\\n}\\n\",\"keccak256\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary AddressUpgradeable {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\n     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\n     *\\n     * _Available since v4.8._\\n     */\\n    function verifyCallResultFromTarget(\\n        address target,\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        if (success) {\\n            if (returndata.length == 0) {\\n                // only check isContract if the call was successful and the return data is empty\\n                // otherwise we already know that it was a contract\\n                require(isContract(target), \\\"Address: call to non-contract\\\");\\n            }\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason or using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    function _revert(bytes memory returndata, string memory errorMessage) private pure {\\n        // Look for revert reason and bubble it up if present\\n        if (returndata.length > 0) {\\n            // The easiest way to bubble the revert reason is using memory via assembly\\n            /// @solidity memory-safe-assembly\\n            assembly {\\n                let returndata_size := mload(returndata)\\n                revert(add(32, returndata), returndata_size)\\n            }\\n        } else {\\n            revert(errorMessage);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":6086,"contract":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:Initializable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":6089,"contract":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:Initializable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"}],"types":{"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol":{"AddressUpgradeable":{"abi":[],"devdoc":{"details":"Collection of functions related to the address type","kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220fa04b887c2d898594da76880d738f804bfbcc8c3afb01ea14c8d5d89d89ba4c764736f6c63430008190033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 STATICCALL DIV 0xB8 DUP8 0xC2 0xD8 SWAP9 MSIZE 0x4D 0xA7 PUSH9 0x80D738F804BFBCC8C3 0xAF 0xB0 0x1E LOG1 0x4C DUP14 TSTORE DUP10 0xD8 SWAP12 LOG4 0xC7 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"194:8087:28:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;194:8087:28;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220fa04b887c2d898594da76880d738f804bfbcc8c3afb01ea14c8d5d89d89ba4c764736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 STATICCALL DIV 0xB8 DUP8 0xC2 0xD8 SWAP9 MSIZE 0x4D 0xA7 PUSH9 0x80D738F804BFBCC8C3 0xAF 0xB0 0x1E LOG1 0x4C DUP14 TSTORE DUP10 0xD8 SWAP12 LOG4 0xC7 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"194:8087:28:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"_revert(bytes memory,string memory)":"infinite","functionCall(address,bytes memory)":"infinite","functionCall(address,bytes memory,string memory)":"infinite","functionCallWithValue(address,bytes memory,uint256)":"infinite","functionCallWithValue(address,bytes memory,uint256,string memory)":"infinite","functionStaticCall(address,bytes memory)":"infinite","functionStaticCall(address,bytes memory,string memory)":"infinite","isContract(address)":"infinite","sendValue(address payable,uint256)":"infinite","verifyCallResult(bool,bytes memory,string memory)":"infinite","verifyCallResultFromTarget(address,bool,bytes memory,string memory)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":\"AddressUpgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary AddressUpgradeable {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\n     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\n     *\\n     * _Available since v4.8._\\n     */\\n    function verifyCallResultFromTarget(\\n        address target,\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        if (success) {\\n            if (returndata.length == 0) {\\n                // only check isContract if the call was successful and the return data is empty\\n                // otherwise we already know that it was a contract\\n                require(isContract(target), \\\"Address: call to non-contract\\\");\\n            }\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason or using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    function _revert(bytes memory returndata, string memory errorMessage) private pure {\\n        // Look for revert reason and bubble it up if present\\n        if (returndata.length > 0) {\\n            // The easiest way to bubble the revert reason is using memory via assembly\\n            /// @solidity memory-safe-assembly\\n            assembly {\\n                let returndata_size := mload(returndata)\\n                revert(add(32, returndata), returndata_size)\\n            }\\n        } else {\\n            revert(errorMessage);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"ContextUpgradeable":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"}],"devdoc":{"details":"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.","events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."}},"kind":"dev","methods":{},"stateVariables":{"__gap":{"details":"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":\"ContextUpgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.1) (proxy/utils/Initializable.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../../utils/AddressUpgradeable.sol\\\";\\n\\n/**\\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\\n *\\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\\n * reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in\\n * case an upgrade adds a module that needs to be initialized.\\n *\\n * For example:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * contract MyToken is ERC20Upgradeable {\\n *     function initialize() initializer public {\\n *         __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\");\\n *     }\\n * }\\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\\n *     function initializeV2() reinitializer(2) public {\\n *         __ERC20Permit_init(\\\"MyToken\\\");\\n *     }\\n * }\\n * ```\\n *\\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\\n *\\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\\n *\\n * [CAUTION]\\n * ====\\n * Avoid leaving a contract uninitialized.\\n *\\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * /// @custom:oz-upgrades-unsafe-allow constructor\\n * constructor() {\\n *     _disableInitializers();\\n * }\\n * ```\\n * ====\\n */\\nabstract contract Initializable {\\n    /**\\n     * @dev Indicates that the contract has been initialized.\\n     * @custom:oz-retyped-from bool\\n     */\\n    uint8 private _initialized;\\n\\n    /**\\n     * @dev Indicates that the contract is in the process of being initialized.\\n     */\\n    bool private _initializing;\\n\\n    /**\\n     * @dev Triggered when the contract has been initialized or reinitialized.\\n     */\\n    event Initialized(uint8 version);\\n\\n    /**\\n     * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\\n     * `onlyInitializing` functions can be used to initialize parent contracts.\\n     *\\n     * Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\\n     * constructor.\\n     *\\n     * Emits an {Initialized} event.\\n     */\\n    modifier initializer() {\\n        bool isTopLevelCall = !_initializing;\\n        require(\\n            (isTopLevelCall && _initialized < 1) || (!AddressUpgradeable.isContract(address(this)) && _initialized == 1),\\n            \\\"Initializable: contract is already initialized\\\"\\n        );\\n        _initialized = 1;\\n        if (isTopLevelCall) {\\n            _initializing = true;\\n        }\\n        _;\\n        if (isTopLevelCall) {\\n            _initializing = false;\\n            emit Initialized(1);\\n        }\\n    }\\n\\n    /**\\n     * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\\n     * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\\n     * used to initialize parent contracts.\\n     *\\n     * A reinitializer may be used after the original initialization step. This is essential to configure modules that\\n     * are added through upgrades and that require initialization.\\n     *\\n     * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\\n     * cannot be nested. If one is invoked in the context of another, execution will revert.\\n     *\\n     * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\\n     * a contract, executing them in the right order is up to the developer or operator.\\n     *\\n     * WARNING: setting the version to 255 will prevent any future reinitialization.\\n     *\\n     * Emits an {Initialized} event.\\n     */\\n    modifier reinitializer(uint8 version) {\\n        require(!_initializing && _initialized < version, \\\"Initializable: contract is already initialized\\\");\\n        _initialized = version;\\n        _initializing = true;\\n        _;\\n        _initializing = false;\\n        emit Initialized(version);\\n    }\\n\\n    /**\\n     * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\\n     * {initializer} and {reinitializer} modifiers, directly or indirectly.\\n     */\\n    modifier onlyInitializing() {\\n        require(_initializing, \\\"Initializable: contract is not initializing\\\");\\n        _;\\n    }\\n\\n    /**\\n     * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\\n     * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\\n     * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\\n     * through proxies.\\n     *\\n     * Emits an {Initialized} event the first time it is successfully executed.\\n     */\\n    function _disableInitializers() internal virtual {\\n        require(!_initializing, \\\"Initializable: contract is initializing\\\");\\n        if (_initialized < type(uint8).max) {\\n            _initialized = type(uint8).max;\\n            emit Initialized(type(uint8).max);\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns the highest version that has been initialized. See {reinitializer}.\\n     */\\n    function _getInitializedVersion() internal view returns (uint8) {\\n        return _initialized;\\n    }\\n\\n    /**\\n     * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.\\n     */\\n    function _isInitializing() internal view returns (bool) {\\n        return _initializing;\\n    }\\n}\\n\",\"keccak256\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary AddressUpgradeable {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\n     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\n     *\\n     * _Available since v4.8._\\n     */\\n    function verifyCallResultFromTarget(\\n        address target,\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        if (success) {\\n            if (returndata.length == 0) {\\n                // only check isContract if the call was successful and the return data is empty\\n                // otherwise we already know that it was a contract\\n                require(isContract(target), \\\"Address: call to non-contract\\\");\\n            }\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason or using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    function _revert(bytes memory returndata, string memory errorMessage) private pure {\\n        // Look for revert reason and bubble it up if present\\n        if (returndata.length > 0) {\\n            // The easiest way to bubble the revert reason is using memory via assembly\\n            /// @solidity memory-safe-assembly\\n            assembly {\\n                let returndata_size := mload(returndata)\\n                revert(add(32, returndata), returndata_size)\\n            }\\n        } else {\\n            revert(errorMessage);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract ContextUpgradeable is Initializable {\\n    function __Context_init() internal onlyInitializing {\\n    }\\n\\n    function __Context_init_unchained() internal onlyInitializing {\\n    }\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[50] private __gap;\\n}\\n\",\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":6086,"contract":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:ContextUpgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":6089,"contract":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:ContextUpgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":6573,"contract":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:ContextUpgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"}],"types":{"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/access/AccessControl.sol":{"AccessControl":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"devdoc":{"details":"Contract module that allows children to implement role-based access control mechanisms. This is a lightweight version that doesn't allow enumerating role members except through off-chain means by accessing the contract event logs. Some applications may benefit from on-chain enumerability, for those cases see {AccessControlEnumerable}. Roles are referred to by their `bytes32` identifier. These should be exposed in the external API and be unique. The best way to achieve this is by using `public constant` hash digests: ```solidity bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\"); ``` Roles can be used to represent a set of permissions. To restrict access to a function call, use {hasRole}: ```solidity function foo() public {     require(hasRole(MY_ROLE, msg.sender));     ... } ``` Roles can be granted and revoked dynamically via the {grantRole} and {revokeRole} functions. Each role has an associated admin role, and only accounts that have a role's admin role can call {grantRole} and {revokeRole}. By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means that only accounts with this role will be able to grant or revoke other roles. More complex role relationships can be created by using {_setRoleAdmin}. WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to grant and revoke this role. Extra precautions should be taken to secure accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules} to enforce additional security measures for this role.","events":{"RoleAdminChanged(bytes32,bytes32,bytes32)":{"details":"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._"},"RoleGranted(bytes32,address,address)":{"details":"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}."},"RoleRevoked(bytes32,address,address)":{"details":"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)"}},"kind":"dev","methods":{"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module that allows children to implement role-based access control mechanisms. This is a lightweight version that doesn't allow enumerating role members except through off-chain means by accessing the contract event logs. Some applications may benefit from on-chain enumerability, for those cases see {AccessControlEnumerable}. Roles are referred to by their `bytes32` identifier. These should be exposed in the external API and be unique. The best way to achieve this is by using `public constant` hash digests: ```solidity bytes32 public constant MY_ROLE = keccak256(\\\"MY_ROLE\\\"); ``` Roles can be used to represent a set of permissions. To restrict access to a function call, use {hasRole}: ```solidity function foo() public {     require(hasRole(MY_ROLE, msg.sender));     ... } ``` Roles can be granted and revoked dynamically via the {grantRole} and {revokeRole} functions. Each role has an associated admin role, and only accounts that have a role's admin role can call {grantRole} and {revokeRole}. By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means that only accounts with this role will be able to grant or revoke other roles. More complex role relationships can be created by using {_setRoleAdmin}. WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to grant and revoke this role. Extra precautions should be taken to secure accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules} to enforce additional security measures for this role.\",\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/AccessControl.sol\":\"AccessControl\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/AccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IAccessControl.sol\\\";\\nimport \\\"../utils/Context.sol\\\";\\nimport \\\"../utils/Strings.sol\\\";\\nimport \\\"../utils/introspection/ERC165.sol\\\";\\n\\n/**\\n * @dev Contract module that allows children to implement role-based access\\n * control mechanisms. This is a lightweight version that doesn't allow enumerating role\\n * members except through off-chain means by accessing the contract event logs. Some\\n * applications may benefit from on-chain enumerability, for those cases see\\n * {AccessControlEnumerable}.\\n *\\n * Roles are referred to by their `bytes32` identifier. These should be exposed\\n * in the external API and be unique. The best way to achieve this is by\\n * using `public constant` hash digests:\\n *\\n * ```solidity\\n * bytes32 public constant MY_ROLE = keccak256(\\\"MY_ROLE\\\");\\n * ```\\n *\\n * Roles can be used to represent a set of permissions. To restrict access to a\\n * function call, use {hasRole}:\\n *\\n * ```solidity\\n * function foo() public {\\n *     require(hasRole(MY_ROLE, msg.sender));\\n *     ...\\n * }\\n * ```\\n *\\n * Roles can be granted and revoked dynamically via the {grantRole} and\\n * {revokeRole} functions. Each role has an associated admin role, and only\\n * accounts that have a role's admin role can call {grantRole} and {revokeRole}.\\n *\\n * By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\\n * that only accounts with this role will be able to grant or revoke other\\n * roles. More complex role relationships can be created by using\\n * {_setRoleAdmin}.\\n *\\n * WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\\n * grant and revoke this role. Extra precautions should be taken to secure\\n * accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules}\\n * to enforce additional security measures for this role.\\n */\\nabstract contract AccessControl is Context, IAccessControl, ERC165 {\\n    struct RoleData {\\n        mapping(address => bool) members;\\n        bytes32 adminRole;\\n    }\\n\\n    mapping(bytes32 => RoleData) private _roles;\\n\\n    bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00;\\n\\n    /**\\n     * @dev Modifier that checks that an account has a specific role. Reverts\\n     * with a standardized message including the required role.\\n     *\\n     * The format of the revert reason is given by the following regular expression:\\n     *\\n     *  /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\\n     *\\n     * _Available since v4.1._\\n     */\\n    modifier onlyRole(bytes32 role) {\\n        _checkRole(role);\\n        _;\\n    }\\n\\n    /**\\n     * @dev See {IERC165-supportsInterface}.\\n     */\\n    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\n        return interfaceId == type(IAccessControl).interfaceId || super.supportsInterface(interfaceId);\\n    }\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) public view virtual override returns (bool) {\\n        return _roles[role].members[account];\\n    }\\n\\n    /**\\n     * @dev Revert with a standard message if `_msgSender()` is missing `role`.\\n     * Overriding this function changes the behavior of the {onlyRole} modifier.\\n     *\\n     * Format of the revert message is described in {_checkRole}.\\n     *\\n     * _Available since v4.6._\\n     */\\n    function _checkRole(bytes32 role) internal view virtual {\\n        _checkRole(role, _msgSender());\\n    }\\n\\n    /**\\n     * @dev Revert with a standard message if `account` is missing `role`.\\n     *\\n     * The format of the revert reason is given by the following regular expression:\\n     *\\n     *  /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\\n     */\\n    function _checkRole(bytes32 role, address account) internal view virtual {\\n        if (!hasRole(role, account)) {\\n            revert(\\n                string(\\n                    abi.encodePacked(\\n                        \\\"AccessControl: account \\\",\\n                        Strings.toHexString(account),\\n                        \\\" is missing role \\\",\\n                        Strings.toHexString(uint256(role), 32)\\n                    )\\n                )\\n            );\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) public view virtual override returns (bytes32) {\\n        return _roles[role].adminRole;\\n    }\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     *\\n     * May emit a {RoleGranted} event.\\n     */\\n    function grantRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {\\n        _grantRole(role, account);\\n    }\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     *\\n     * May emit a {RoleRevoked} event.\\n     */\\n    function revokeRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {\\n        _revokeRole(role, account);\\n    }\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been revoked `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     *\\n     * May emit a {RoleRevoked} event.\\n     */\\n    function renounceRole(bytes32 role, address account) public virtual override {\\n        require(account == _msgSender(), \\\"AccessControl: can only renounce roles for self\\\");\\n\\n        _revokeRole(role, account);\\n    }\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event. Note that unlike {grantRole}, this function doesn't perform any\\n     * checks on the calling account.\\n     *\\n     * May emit a {RoleGranted} event.\\n     *\\n     * [WARNING]\\n     * ====\\n     * This function should only be called from the constructor when setting\\n     * up the initial roles for the system.\\n     *\\n     * Using this function in any other way is effectively circumventing the admin\\n     * system imposed by {AccessControl}.\\n     * ====\\n     *\\n     * NOTE: This function is deprecated in favor of {_grantRole}.\\n     */\\n    function _setupRole(bytes32 role, address account) internal virtual {\\n        _grantRole(role, account);\\n    }\\n\\n    /**\\n     * @dev Sets `adminRole` as ``role``'s admin role.\\n     *\\n     * Emits a {RoleAdminChanged} event.\\n     */\\n    function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {\\n        bytes32 previousAdminRole = getRoleAdmin(role);\\n        _roles[role].adminRole = adminRole;\\n        emit RoleAdminChanged(role, previousAdminRole, adminRole);\\n    }\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * Internal function without access restriction.\\n     *\\n     * May emit a {RoleGranted} event.\\n     */\\n    function _grantRole(bytes32 role, address account) internal virtual {\\n        if (!hasRole(role, account)) {\\n            _roles[role].members[account] = true;\\n            emit RoleGranted(role, account, _msgSender());\\n        }\\n    }\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * Internal function without access restriction.\\n     *\\n     * May emit a {RoleRevoked} event.\\n     */\\n    function _revokeRole(bytes32 role, address account) internal virtual {\\n        if (hasRole(role, account)) {\\n            _roles[role].members[account] = false;\\n            emit RoleRevoked(role, account, _msgSender());\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n\\n    function _contextSuffixLength() internal view virtual returns (uint256) {\\n        return 0;\\n    }\\n}\\n\",\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Strings.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Strings.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./math/Math.sol\\\";\\nimport \\\"./math/SignedMath.sol\\\";\\n\\n/**\\n * @dev String operations.\\n */\\nlibrary Strings {\\n    bytes16 private constant _SYMBOLS = \\\"0123456789abcdef\\\";\\n    uint8 private constant _ADDRESS_LENGTH = 20;\\n\\n    /**\\n     * @dev Converts a `uint256` to its ASCII `string` decimal representation.\\n     */\\n    function toString(uint256 value) internal pure returns (string memory) {\\n        unchecked {\\n            uint256 length = Math.log10(value) + 1;\\n            string memory buffer = new string(length);\\n            uint256 ptr;\\n            /// @solidity memory-safe-assembly\\n            assembly {\\n                ptr := add(buffer, add(32, length))\\n            }\\n            while (true) {\\n                ptr--;\\n                /// @solidity memory-safe-assembly\\n                assembly {\\n                    mstore8(ptr, byte(mod(value, 10), _SYMBOLS))\\n                }\\n                value /= 10;\\n                if (value == 0) break;\\n            }\\n            return buffer;\\n        }\\n    }\\n\\n    /**\\n     * @dev Converts a `int256` to its ASCII `string` decimal representation.\\n     */\\n    function toString(int256 value) internal pure returns (string memory) {\\n        return string(abi.encodePacked(value < 0 ? \\\"-\\\" : \\\"\\\", toString(SignedMath.abs(value))));\\n    }\\n\\n    /**\\n     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.\\n     */\\n    function toHexString(uint256 value) internal pure returns (string memory) {\\n        unchecked {\\n            return toHexString(value, Math.log256(value) + 1);\\n        }\\n    }\\n\\n    /**\\n     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\\n     */\\n    function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\\n        bytes memory buffer = new bytes(2 * length + 2);\\n        buffer[0] = \\\"0\\\";\\n        buffer[1] = \\\"x\\\";\\n        for (uint256 i = 2 * length + 1; i > 1; --i) {\\n            buffer[i] = _SYMBOLS[value & 0xf];\\n            value >>= 4;\\n        }\\n        require(value == 0, \\\"Strings: hex length insufficient\\\");\\n        return string(buffer);\\n    }\\n\\n    /**\\n     * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation.\\n     */\\n    function toHexString(address addr) internal pure returns (string memory) {\\n        return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH);\\n    }\\n\\n    /**\\n     * @dev Returns true if the two strings are equal.\\n     */\\n    function equal(string memory a, string memory b) internal pure returns (bool) {\\n        return keccak256(bytes(a)) == keccak256(bytes(b));\\n    }\\n}\\n\",\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IERC165.sol\\\";\\n\\n/**\\n * @dev Implementation of the {IERC165} interface.\\n *\\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\\n * for the additional interface id that will be supported. For example:\\n *\\n * ```solidity\\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\n *     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\\n * }\\n * ```\\n *\\n * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\\n */\\nabstract contract ERC165 is IERC165 {\\n    /**\\n     * @dev See {IERC165-supportsInterface}.\\n     */\\n    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\n        return interfaceId == type(IERC165).interfaceId;\\n    }\\n}\\n\",\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC165 standard, as defined in the\\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\\n *\\n * Implementers can declare support of contract interfaces, which can then be\\n * queried by others ({ERC165Checker}).\\n *\\n * For an implementation, see {ERC165}.\\n */\\ninterface IERC165 {\\n    /**\\n     * @dev Returns true if this contract implements the interface defined by\\n     * `interfaceId`. See the corresponding\\n     * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\\n     * to learn more about how these ids are created.\\n     *\\n     * This function call must use less than 30 000 gas.\\n     */\\n    function supportsInterface(bytes4 interfaceId) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/math/Math.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Standard math utilities missing in the Solidity language.\\n */\\nlibrary Math {\\n    enum Rounding {\\n        Down, // Toward negative infinity\\n        Up, // Toward infinity\\n        Zero // Toward zero\\n    }\\n\\n    /**\\n     * @dev Returns the largest of two numbers.\\n     */\\n    function max(uint256 a, uint256 b) internal pure returns (uint256) {\\n        return a > b ? a : b;\\n    }\\n\\n    /**\\n     * @dev Returns the smallest of two numbers.\\n     */\\n    function min(uint256 a, uint256 b) internal pure returns (uint256) {\\n        return a < b ? a : b;\\n    }\\n\\n    /**\\n     * @dev Returns the average of two numbers. The result is rounded towards\\n     * zero.\\n     */\\n    function average(uint256 a, uint256 b) internal pure returns (uint256) {\\n        // (a + b) / 2 can overflow.\\n        return (a & b) + (a ^ b) / 2;\\n    }\\n\\n    /**\\n     * @dev Returns the ceiling of the division of two numbers.\\n     *\\n     * This differs from standard division with `/` in that it rounds up instead\\n     * of rounding down.\\n     */\\n    function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\\n        // (a + b - 1) / b can overflow on addition, so we distribute.\\n        return a == 0 ? 0 : (a - 1) / b + 1;\\n    }\\n\\n    /**\\n     * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\\n     * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)\\n     * with further edits by Uniswap Labs also under MIT license.\\n     */\\n    function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {\\n        unchecked {\\n            // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use\\n            // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\\n            // variables such that product = prod1 * 2^256 + prod0.\\n            uint256 prod0; // Least significant 256 bits of the product\\n            uint256 prod1; // Most significant 256 bits of the product\\n            assembly {\\n                let mm := mulmod(x, y, not(0))\\n                prod0 := mul(x, y)\\n                prod1 := sub(sub(mm, prod0), lt(mm, prod0))\\n            }\\n\\n            // Handle non-overflow cases, 256 by 256 division.\\n            if (prod1 == 0) {\\n                // Solidity will revert if denominator == 0, unlike the div opcode on its own.\\n                // The surrounding unchecked block does not change this fact.\\n                // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.\\n                return prod0 / denominator;\\n            }\\n\\n            // Make sure the result is less than 2^256. Also prevents denominator == 0.\\n            require(denominator > prod1, \\\"Math: mulDiv overflow\\\");\\n\\n            ///////////////////////////////////////////////\\n            // 512 by 256 division.\\n            ///////////////////////////////////////////////\\n\\n            // Make division exact by subtracting the remainder from [prod1 prod0].\\n            uint256 remainder;\\n            assembly {\\n                // Compute remainder using mulmod.\\n                remainder := mulmod(x, y, denominator)\\n\\n                // Subtract 256 bit number from 512 bit number.\\n                prod1 := sub(prod1, gt(remainder, prod0))\\n                prod0 := sub(prod0, remainder)\\n            }\\n\\n            // Factor powers of two out of denominator and compute largest power of two divisor of denominator. Always >= 1.\\n            // See https://cs.stackexchange.com/q/138556/92363.\\n\\n            // Does not overflow because the denominator cannot be zero at this stage in the function.\\n            uint256 twos = denominator & (~denominator + 1);\\n            assembly {\\n                // Divide denominator by twos.\\n                denominator := div(denominator, twos)\\n\\n                // Divide [prod1 prod0] by twos.\\n                prod0 := div(prod0, twos)\\n\\n                // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.\\n                twos := add(div(sub(0, twos), twos), 1)\\n            }\\n\\n            // Shift in bits from prod1 into prod0.\\n            prod0 |= prod1 * twos;\\n\\n            // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\\n            // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\\n            // four bits. That is, denominator * inv = 1 mod 2^4.\\n            uint256 inverse = (3 * denominator) ^ 2;\\n\\n            // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also works\\n            // in modular arithmetic, doubling the correct bits in each step.\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^8\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^16\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^32\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^64\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^128\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^256\\n\\n            // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\\n            // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\\n            // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\\n            // is no longer required.\\n            result = prod0 * inverse;\\n            return result;\\n        }\\n    }\\n\\n    /**\\n     * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\\n     */\\n    function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\\n        uint256 result = mulDiv(x, y, denominator);\\n        if (rounding == Rounding.Up && mulmod(x, y, denominator) > 0) {\\n            result += 1;\\n        }\\n        return result;\\n    }\\n\\n    /**\\n     * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down.\\n     *\\n     * Inspired by Henry S. Warren, Jr.'s \\\"Hacker's Delight\\\" (Chapter 11).\\n     */\\n    function sqrt(uint256 a) internal pure returns (uint256) {\\n        if (a == 0) {\\n            return 0;\\n        }\\n\\n        // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\\n        //\\n        // We know that the \\\"msb\\\" (most significant bit) of our target number `a` is a power of 2 such that we have\\n        // `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`.\\n        //\\n        // This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)`\\n        // \\u2192 `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`\\n        // \\u2192 `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)`\\n        //\\n        // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit.\\n        uint256 result = 1 << (log2(a) >> 1);\\n\\n        // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128,\\n        // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\\n        // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\\n        // into the expected uint128 result.\\n        unchecked {\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            return min(result, a / result);\\n        }\\n    }\\n\\n    /**\\n     * @notice Calculates sqrt(a), following the selected rounding direction.\\n     */\\n    function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\\n        unchecked {\\n            uint256 result = sqrt(a);\\n            return result + (rounding == Rounding.Up && result * result < a ? 1 : 0);\\n        }\\n    }\\n\\n    /**\\n     * @dev Return the log in base 2, rounded down, of a positive value.\\n     * Returns 0 if given 0.\\n     */\\n    function log2(uint256 value) internal pure returns (uint256) {\\n        uint256 result = 0;\\n        unchecked {\\n            if (value >> 128 > 0) {\\n                value >>= 128;\\n                result += 128;\\n            }\\n            if (value >> 64 > 0) {\\n                value >>= 64;\\n                result += 64;\\n            }\\n            if (value >> 32 > 0) {\\n                value >>= 32;\\n                result += 32;\\n            }\\n            if (value >> 16 > 0) {\\n                value >>= 16;\\n                result += 16;\\n            }\\n            if (value >> 8 > 0) {\\n                value >>= 8;\\n                result += 8;\\n            }\\n            if (value >> 4 > 0) {\\n                value >>= 4;\\n                result += 4;\\n            }\\n            if (value >> 2 > 0) {\\n                value >>= 2;\\n                result += 2;\\n            }\\n            if (value >> 1 > 0) {\\n                result += 1;\\n            }\\n        }\\n        return result;\\n    }\\n\\n    /**\\n     * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\\n     * Returns 0 if given 0.\\n     */\\n    function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n        unchecked {\\n            uint256 result = log2(value);\\n            return result + (rounding == Rounding.Up && 1 << result < value ? 1 : 0);\\n        }\\n    }\\n\\n    /**\\n     * @dev Return the log in base 10, rounded down, of a positive value.\\n     * Returns 0 if given 0.\\n     */\\n    function log10(uint256 value) internal pure returns (uint256) {\\n        uint256 result = 0;\\n        unchecked {\\n            if (value >= 10 ** 64) {\\n                value /= 10 ** 64;\\n                result += 64;\\n            }\\n            if (value >= 10 ** 32) {\\n                value /= 10 ** 32;\\n                result += 32;\\n            }\\n            if (value >= 10 ** 16) {\\n                value /= 10 ** 16;\\n                result += 16;\\n            }\\n            if (value >= 10 ** 8) {\\n                value /= 10 ** 8;\\n                result += 8;\\n            }\\n            if (value >= 10 ** 4) {\\n                value /= 10 ** 4;\\n                result += 4;\\n            }\\n            if (value >= 10 ** 2) {\\n                value /= 10 ** 2;\\n                result += 2;\\n            }\\n            if (value >= 10 ** 1) {\\n                result += 1;\\n            }\\n        }\\n        return result;\\n    }\\n\\n    /**\\n     * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\\n     * Returns 0 if given 0.\\n     */\\n    function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n        unchecked {\\n            uint256 result = log10(value);\\n            return result + (rounding == Rounding.Up && 10 ** result < value ? 1 : 0);\\n        }\\n    }\\n\\n    /**\\n     * @dev Return the log in base 256, rounded down, of a positive value.\\n     * Returns 0 if given 0.\\n     *\\n     * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string.\\n     */\\n    function log256(uint256 value) internal pure returns (uint256) {\\n        uint256 result = 0;\\n        unchecked {\\n            if (value >> 128 > 0) {\\n                value >>= 128;\\n                result += 16;\\n            }\\n            if (value >> 64 > 0) {\\n                value >>= 64;\\n                result += 8;\\n            }\\n            if (value >> 32 > 0) {\\n                value >>= 32;\\n                result += 4;\\n            }\\n            if (value >> 16 > 0) {\\n                value >>= 16;\\n                result += 2;\\n            }\\n            if (value >> 8 > 0) {\\n                result += 1;\\n            }\\n        }\\n        return result;\\n    }\\n\\n    /**\\n     * @dev Return the log in base 256, following the selected rounding direction, of a positive value.\\n     * Returns 0 if given 0.\\n     */\\n    function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n        unchecked {\\n            uint256 result = log256(value);\\n            return result + (rounding == Rounding.Up && 1 << (result << 3) < value ? 1 : 0);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/SignedMath.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Standard signed math utilities missing in the Solidity language.\\n */\\nlibrary SignedMath {\\n    /**\\n     * @dev Returns the largest of two signed numbers.\\n     */\\n    function max(int256 a, int256 b) internal pure returns (int256) {\\n        return a > b ? a : b;\\n    }\\n\\n    /**\\n     * @dev Returns the smallest of two signed numbers.\\n     */\\n    function min(int256 a, int256 b) internal pure returns (int256) {\\n        return a < b ? a : b;\\n    }\\n\\n    /**\\n     * @dev Returns the average of two signed numbers without overflow.\\n     * The result is rounded towards zero.\\n     */\\n    function average(int256 a, int256 b) internal pure returns (int256) {\\n        // Formula from the book \\\"Hacker's Delight\\\"\\n        int256 x = (a & b) + ((a ^ b) >> 1);\\n        return x + (int256(uint256(x) >> 255) & (a ^ b));\\n    }\\n\\n    /**\\n     * @dev Returns the absolute unsigned value of a signed value.\\n     */\\n    function abs(int256 n) internal pure returns (uint256) {\\n        unchecked {\\n            // must be unchecked in order to support `n = type(int256).min`\\n            return uint256(n >= 0 ? n : -n);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":6599,"contract":"@openzeppelin/contracts/access/AccessControl.sol:AccessControl","label":"_roles","offset":0,"slot":"0","type":"t_mapping(t_bytes32,t_struct(RoleData)6594_storage)"}],"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_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_bytes32,t_struct(RoleData)6594_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct AccessControl.RoleData)","numberOfBytes":"32","value":"t_struct(RoleData)6594_storage"},"t_struct(RoleData)6594_storage":{"encoding":"inplace","label":"struct AccessControl.RoleData","members":[{"astId":6591,"contract":"@openzeppelin/contracts/access/AccessControl.sol:AccessControl","label":"members","offset":0,"slot":"0","type":"t_mapping(t_address,t_bool)"},{"astId":6593,"contract":"@openzeppelin/contracts/access/AccessControl.sol:AccessControl","label":"adminRole","offset":0,"slot":"1","type":"t_bytes32"}],"numberOfBytes":"64"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/access/IAccessControl.sol":{"IAccessControl":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"External interface of AccessControl declared to support ERC165 detection.","events":{"RoleAdminChanged(bytes32,bytes32,bytes32)":{"details":"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._"},"RoleGranted(bytes32,address,address)":{"details":"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}."},"RoleRevoked(bytes32,address,address)":{"details":"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)"}},"kind":"dev","methods":{"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"External interface of AccessControl declared to support ERC165 detection.\",\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":\"IAccessControl\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/access/Ownable.sol":{"Ownable":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.","kind":"dev","methods":{"constructor":{"details":"Initializes the contract setting the deployer as the initial owner."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    constructor() {\\n        _transferOwnership(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        _checkOwner();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if the sender is not the owner.\\n     */\\n    function _checkOwner() internal view virtual {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby disabling any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n}\\n\",\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n\\n    function _contextSuffixLength() internal view virtual returns (uint256) {\\n        return 0;\\n    }\\n}\\n\",\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":6971,"contract":"@openzeppelin/contracts/access/Ownable.sol:Ownable","label":"_owner","offset":0,"slot":"0","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/security/Pausable.sol":{"Pausable":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"devdoc":{"details":"Contract module which allows children to implement an emergency stop mechanism that can be triggered by an authorized account. This module is used through inheritance. It will make available the modifiers `whenNotPaused` and `whenPaused`, which can be applied to the functions of your contract. Note that they will not be pausable by simply including this module, only once the modifiers are put in place.","events":{"Paused(address)":{"details":"Emitted when the pause is triggered by `account`."},"Unpaused(address)":{"details":"Emitted when the pause is lifted by `account`."}},"kind":"dev","methods":{"constructor":{"details":"Initializes the contract in unpaused state."},"paused()":{"details":"Returns true if the contract is paused, and false otherwise."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"paused()":"5c975abb"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which allows children to implement an emergency stop mechanism that can be triggered by an authorized account. This module is used through inheritance. It will make available the modifiers `whenNotPaused` and `whenPaused`, which can be applied to the functions of your contract. Note that they will not be pausable by simply including this module, only once the modifiers are put in place.\",\"events\":{\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract in unpaused state.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/security/Pausable.sol\":\"Pausable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/security/Pausable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (security/Pausable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which allows children to implement an emergency stop\\n * mechanism that can be triggered by an authorized account.\\n *\\n * This module is used through inheritance. It will make available the\\n * modifiers `whenNotPaused` and `whenPaused`, which can be applied to\\n * the functions of your contract. Note that they will not be pausable by\\n * simply including this module, only once the modifiers are put in place.\\n */\\nabstract contract Pausable is Context {\\n    /**\\n     * @dev Emitted when the pause is triggered by `account`.\\n     */\\n    event Paused(address account);\\n\\n    /**\\n     * @dev Emitted when the pause is lifted by `account`.\\n     */\\n    event Unpaused(address account);\\n\\n    bool private _paused;\\n\\n    /**\\n     * @dev Initializes the contract in unpaused state.\\n     */\\n    constructor() {\\n        _paused = false;\\n    }\\n\\n    /**\\n     * @dev Modifier to make a function callable only when the contract is not paused.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must not be paused.\\n     */\\n    modifier whenNotPaused() {\\n        _requireNotPaused();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Modifier to make a function callable only when the contract is paused.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must be paused.\\n     */\\n    modifier whenPaused() {\\n        _requirePaused();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns true if the contract is paused, and false otherwise.\\n     */\\n    function paused() public view virtual returns (bool) {\\n        return _paused;\\n    }\\n\\n    /**\\n     * @dev Throws if the contract is paused.\\n     */\\n    function _requireNotPaused() internal view virtual {\\n        require(!paused(), \\\"Pausable: paused\\\");\\n    }\\n\\n    /**\\n     * @dev Throws if the contract is not paused.\\n     */\\n    function _requirePaused() internal view virtual {\\n        require(paused(), \\\"Pausable: not paused\\\");\\n    }\\n\\n    /**\\n     * @dev Triggers stopped state.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must not be paused.\\n     */\\n    function _pause() internal virtual whenNotPaused {\\n        _paused = true;\\n        emit Paused(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Returns to normal state.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must be paused.\\n     */\\n    function _unpause() internal virtual whenPaused {\\n        _paused = false;\\n        emit Unpaused(_msgSender());\\n    }\\n}\\n\",\"keccak256\":\"0x0849d93b16c9940beb286a7864ed02724b248b93e0d80ef6355af5ef15c64773\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n\\n    function _contextSuffixLength() internal view virtual returns (uint256) {\\n        return 0;\\n    }\\n}\\n\",\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":7094,"contract":"@openzeppelin/contracts/security/Pausable.sol:Pausable","label":"_paused","offset":0,"slot":"0","type":"t_bool"}],"types":{"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/security/ReentrancyGuard.sol":{"ReentrancyGuard":{"abi":[],"devdoc":{"details":"Contract module that helps prevent reentrant calls to a function. Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier available, which can be applied to functions to make sure there are no nested (reentrant) calls to them. Note that because there is a single `nonReentrant` guard, functions marked as `nonReentrant` may not call one another. This can be worked around by making those functions `private`, and then adding `external` `nonReentrant` entry points to them. TIP: If you would like to learn more about reentrancy and alternative ways to protect against it, check out our blog post https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].","kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Contract module that helps prevent reentrant calls to a function. Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier available, which can be applied to functions to make sure there are no nested (reentrant) calls to them. Note that because there is a single `nonReentrant` guard, functions marked as `nonReentrant` may not call one another. This can be worked around by making those functions `private`, and then adding `external` `nonReentrant` entry points to them. TIP: If you would like to learn more about reentrancy and alternative ways to protect against it, check out our blog post https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/security/ReentrancyGuard.sol\":\"ReentrancyGuard\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/security/ReentrancyGuard.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (security/ReentrancyGuard.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Contract module that helps prevent reentrant calls to a function.\\n *\\n * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier\\n * available, which can be applied to functions to make sure there are no nested\\n * (reentrant) calls to them.\\n *\\n * Note that because there is a single `nonReentrant` guard, functions marked as\\n * `nonReentrant` may not call one another. This can be worked around by making\\n * those functions `private`, and then adding `external` `nonReentrant` entry\\n * points to them.\\n *\\n * TIP: If you would like to learn more about reentrancy and alternative ways\\n * to protect against it, check out our blog post\\n * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].\\n */\\nabstract contract ReentrancyGuard {\\n    // Booleans are more expensive than uint256 or any type that takes up a full\\n    // word because each write operation emits an extra SLOAD to first read the\\n    // slot's contents, replace the bits taken up by the boolean, and then write\\n    // back. This is the compiler's defense against contract upgrades and\\n    // pointer aliasing, and it cannot be disabled.\\n\\n    // The values being non-zero value makes deployment a bit more expensive,\\n    // but in exchange the refund on every call to nonReentrant will be lower in\\n    // amount. Since refunds are capped to a percentage of the total\\n    // transaction's gas, it is best to keep them low in cases like this one, to\\n    // increase the likelihood of the full refund coming into effect.\\n    uint256 private constant _NOT_ENTERED = 1;\\n    uint256 private constant _ENTERED = 2;\\n\\n    uint256 private _status;\\n\\n    constructor() {\\n        _status = _NOT_ENTERED;\\n    }\\n\\n    /**\\n     * @dev Prevents a contract from calling itself, directly or indirectly.\\n     * Calling a `nonReentrant` function from another `nonReentrant`\\n     * function is not supported. It is possible to prevent this from happening\\n     * by making the `nonReentrant` function external, and making it call a\\n     * `private` function that does the actual work.\\n     */\\n    modifier nonReentrant() {\\n        _nonReentrantBefore();\\n        _;\\n        _nonReentrantAfter();\\n    }\\n\\n    function _nonReentrantBefore() private {\\n        // On the first call to nonReentrant, _status will be _NOT_ENTERED\\n        require(_status != _ENTERED, \\\"ReentrancyGuard: reentrant call\\\");\\n\\n        // Any calls to nonReentrant after this point will fail\\n        _status = _ENTERED;\\n    }\\n\\n    function _nonReentrantAfter() private {\\n        // By storing the original value once again, a refund is triggered (see\\n        // https://eips.ethereum.org/EIPS/eip-2200)\\n        _status = _NOT_ENTERED;\\n    }\\n\\n    /**\\n     * @dev Returns true if the reentrancy guard is currently set to \\\"entered\\\", which indicates there is a\\n     * `nonReentrant` function in the call stack.\\n     */\\n    function _reentrancyGuardEntered() internal view returns (bool) {\\n        return _status == _ENTERED;\\n    }\\n}\\n\",\"keccak256\":\"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":7195,"contract":"@openzeppelin/contracts/security/ReentrancyGuard.sol:ReentrancyGuard","label":"_status","offset":0,"slot":"0","type":"t_uint256"}],"types":{"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"IERC20":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Interface of the ERC20 standard as defined in the EIP.","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."},"Transfer(address,address,uint256)":{"details":"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero."}},"kind":"dev","methods":{"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":"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `account`."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 standard as defined in the EIP.\",\"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.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"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\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n    /**\\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n     * another (`to`).\\n     *\\n     * Note that `value` may be zero.\\n     */\\n    event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n    /**\\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n     * a call to {approve}. `value` is the new allowance.\\n     */\\n    event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n    /**\\n     * @dev Returns the amount of tokens in existence.\\n     */\\n    function totalSupply() external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the amount of tokens owned by `account`.\\n     */\\n    function balanceOf(address account) external view returns (uint256);\\n\\n    /**\\n     * @dev Moves `amount` tokens from the caller's account to `to`.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transfer(address to, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Returns the remaining number of tokens that `spender` will be\\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n     * zero by default.\\n     *\\n     * This value changes when {approve} or {transferFrom} are called.\\n     */\\n    function allowance(address owner, address spender) external view returns (uint256);\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n     * that someone may use both the old and the new allowance by unfortunate\\n     * transaction ordering. One possible solution to mitigate this race\\n     * condition is to first reduce the spender's allowance to 0 and set the\\n     * desired value afterwards:\\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n     *\\n     * Emits an {Approval} event.\\n     */\\n    function approve(address spender, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Moves `amount` tokens from `from` to `to` using the\\n     * allowance mechanism. `amount` is then deducted from the caller's\\n     * allowance.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"IERC20Permit":{"abi":[{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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"}],"devdoc":{"details":"Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't need to send a transaction, and thus is not required to hold Ether at all. ==== Security Considerations There are two important considerations concerning the use of `permit`. The first is that a valid permit signature expresses an allowance, and it should not be assumed to convey additional meaning. In particular, it should not be considered as an intention to spend the allowance in any specific way. The second is that because permits have built-in replay protection and can be submitted by anyone, they can be frontrun. A protocol that uses permits should take this into consideration and allow a `permit` call to fail. Combining these two aspects, a pattern that may be generally recommended is: ```solidity function doThingWithPermit(..., uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public {     try token.permit(msg.sender, address(this), value, deadline, v, r, s) {} catch {}     doThing(..., value); } function doThing(..., uint256 value) public {     token.safeTransferFrom(msg.sender, address(this), value);     ... } ``` Observe that: 1) `msg.sender` is used as the owner, leaving no ambiguity as to the signer intent, and 2) the use of `try/catch` allows the permit to fail and makes the code tolerant to frontrunning. (See also {SafeERC20-safeTransferFrom}). Additionally, note that smart contract wallets (such as Argent or Safe) are not able to produce permit signatures, so contracts should have entry points that don't rely on permit.","kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"details":"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"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."},"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."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"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\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't need to send a transaction, and thus is not required to hold Ether at all. ==== Security Considerations There are two important considerations concerning the use of `permit`. The first is that a valid permit signature expresses an allowance, and it should not be assumed to convey additional meaning. In particular, it should not be considered as an intention to spend the allowance in any specific way. The second is that because permits have built-in replay protection and can be submitted by anyone, they can be frontrun. A protocol that uses permits should take this into consideration and allow a `permit` call to fail. Combining these two aspects, a pattern that may be generally recommended is: ```solidity function doThingWithPermit(..., uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public {     try token.permit(msg.sender, address(this), value, deadline, v, r, s) {} catch {}     doThing(..., value); } function doThing(..., uint256 value) public {     token.safeTransferFrom(msg.sender, address(this), value);     ... } ``` Observe that: 1) `msg.sender` is used as the owner, leaving no ambiguity as to the signer intent, and 2) the use of `try/catch` allows the permit to fail and makes the code tolerant to frontrunning. (See also {SafeERC20-safeTransferFrom}). Additionally, note that smart contract wallets (such as Argent or Safe) are not able to produce permit signatures, so contracts should have entry points that don't rely on permit.\",\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\"},\"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.\"},\"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.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":\"IERC20Permit\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (token/ERC20/extensions/IERC20Permit.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\\n * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\\n *\\n * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\\n * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\\n * need to send a transaction, and thus is not required to hold Ether at all.\\n *\\n * ==== Security Considerations\\n *\\n * There are two important considerations concerning the use of `permit`. The first is that a valid permit signature\\n * expresses an allowance, and it should not be assumed to convey additional meaning. In particular, it should not be\\n * considered as an intention to spend the allowance in any specific way. The second is that because permits have\\n * built-in replay protection and can be submitted by anyone, they can be frontrun. A protocol that uses permits should\\n * take this into consideration and allow a `permit` call to fail. Combining these two aspects, a pattern that may be\\n * generally recommended is:\\n *\\n * ```solidity\\n * function doThingWithPermit(..., uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public {\\n *     try token.permit(msg.sender, address(this), value, deadline, v, r, s) {} catch {}\\n *     doThing(..., value);\\n * }\\n *\\n * function doThing(..., uint256 value) public {\\n *     token.safeTransferFrom(msg.sender, address(this), value);\\n *     ...\\n * }\\n * ```\\n *\\n * Observe that: 1) `msg.sender` is used as the owner, leaving no ambiguity as to the signer intent, and 2) the use of\\n * `try/catch` allows the permit to fail and makes the code tolerant to frontrunning. (See also\\n * {SafeERC20-safeTransferFrom}).\\n *\\n * Additionally, note that smart contract wallets (such as Argent or Safe) are not able to produce permit signatures, so\\n * contracts should have entry points that don't rely on permit.\\n */\\ninterface IERC20Permit {\\n    /**\\n     * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\\n     * given ``owner``'s signed approval.\\n     *\\n     * IMPORTANT: The same issues {IERC20-approve} has related to transaction\\n     * ordering also apply here.\\n     *\\n     * Emits an {Approval} event.\\n     *\\n     * Requirements:\\n     *\\n     * - `spender` cannot be the zero address.\\n     * - `deadline` must be a timestamp in the future.\\n     * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\\n     * over the EIP712-formatted function arguments.\\n     * - the signature must use ``owner``'s current nonce (see {nonces}).\\n     *\\n     * For more information on the signature format, see the\\n     * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\\n     * section].\\n     *\\n     * CAUTION: See Security Considerations above.\\n     */\\n    function permit(\\n        address owner,\\n        address spender,\\n        uint256 value,\\n        uint256 deadline,\\n        uint8 v,\\n        bytes32 r,\\n        bytes32 s\\n    ) external;\\n\\n    /**\\n     * @dev Returns the current nonce for `owner`. This value must be\\n     * included whenever a signature is generated for {permit}.\\n     *\\n     * Every successful call to {permit} increases ``owner``'s nonce by one. This\\n     * prevents a signature from being used multiple times.\\n     */\\n    function nonces(address owner) external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\\n     */\\n    // solhint-disable-next-line func-name-mixedcase\\n    function DOMAIN_SEPARATOR() external view returns (bytes32);\\n}\\n\",\"keccak256\":\"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"SafeERC20":{"abi":[],"devdoc":{"details":"Wrappers around ERC20 operations that throw on failure (when the token contract returns false). Tokens that return no value (and instead revert or throw on failure) are also supported, non-reverting calls are assumed to be successful. To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, which allows you to call the safe operations as `token.safeTransfer(...)`, etc.","kind":"dev","methods":{},"title":"SafeERC20","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209d89187f0ba2fb2917dff10298d92bee1e6515f9353224023123194a4dbc7a6364736f6c63430008190033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP14 DUP10 XOR PUSH32 0xBA2FB2917DFF10298D92BEE1E6515F9353224023123194A4DBC7A6364736F6C PUSH4 0x43000819 STOP CALLER ","sourceMap":"701:6234:37:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;701:6234:37;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209d89187f0ba2fb2917dff10298d92bee1e6515f9353224023123194a4dbc7a6364736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP14 DUP10 XOR PUSH32 0xBA2FB2917DFF10298D92BEE1E6515F9353224023123194A4DBC7A6364736F6C PUSH4 0x43000819 STOP CALLER ","sourceMap":"701:6234:37:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"_callOptionalReturn(contract IERC20,bytes memory)":"infinite","_callOptionalReturnBool(contract IERC20,bytes memory)":"infinite","forceApprove(contract IERC20,address,uint256)":"infinite","safeApprove(contract IERC20,address,uint256)":"infinite","safeDecreaseAllowance(contract IERC20,address,uint256)":"infinite","safeIncreaseAllowance(contract IERC20,address,uint256)":"infinite","safePermit(contract IERC20Permit,address,address,uint256,uint256,uint8,bytes32,bytes32)":"infinite","safeTransfer(contract IERC20,address,uint256)":"infinite","safeTransferFrom(contract IERC20,address,address,uint256)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers around ERC20 operations that throw on failure (when the token contract returns false). Tokens that return no value (and instead revert or throw on failure) are also supported, non-reverting calls are assumed to be successful. To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"SafeERC20\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":\"SafeERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n    /**\\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n     * another (`to`).\\n     *\\n     * Note that `value` may be zero.\\n     */\\n    event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n    /**\\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n     * a call to {approve}. `value` is the new allowance.\\n     */\\n    event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n    /**\\n     * @dev Returns the amount of tokens in existence.\\n     */\\n    function totalSupply() external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the amount of tokens owned by `account`.\\n     */\\n    function balanceOf(address account) external view returns (uint256);\\n\\n    /**\\n     * @dev Moves `amount` tokens from the caller's account to `to`.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transfer(address to, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Returns the remaining number of tokens that `spender` will be\\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n     * zero by default.\\n     *\\n     * This value changes when {approve} or {transferFrom} are called.\\n     */\\n    function allowance(address owner, address spender) external view returns (uint256);\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n     * that someone may use both the old and the new allowance by unfortunate\\n     * transaction ordering. One possible solution to mitigate this race\\n     * condition is to first reduce the spender's allowance to 0 and set the\\n     * desired value afterwards:\\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n     *\\n     * Emits an {Approval} event.\\n     */\\n    function approve(address spender, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Moves `amount` tokens from `from` to `to` using the\\n     * allowance mechanism. `amount` is then deducted from the caller's\\n     * allowance.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (token/ERC20/extensions/IERC20Permit.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\\n * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\\n *\\n * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\\n * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\\n * need to send a transaction, and thus is not required to hold Ether at all.\\n *\\n * ==== Security Considerations\\n *\\n * There are two important considerations concerning the use of `permit`. The first is that a valid permit signature\\n * expresses an allowance, and it should not be assumed to convey additional meaning. In particular, it should not be\\n * considered as an intention to spend the allowance in any specific way. The second is that because permits have\\n * built-in replay protection and can be submitted by anyone, they can be frontrun. A protocol that uses permits should\\n * take this into consideration and allow a `permit` call to fail. Combining these two aspects, a pattern that may be\\n * generally recommended is:\\n *\\n * ```solidity\\n * function doThingWithPermit(..., uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public {\\n *     try token.permit(msg.sender, address(this), value, deadline, v, r, s) {} catch {}\\n *     doThing(..., value);\\n * }\\n *\\n * function doThing(..., uint256 value) public {\\n *     token.safeTransferFrom(msg.sender, address(this), value);\\n *     ...\\n * }\\n * ```\\n *\\n * Observe that: 1) `msg.sender` is used as the owner, leaving no ambiguity as to the signer intent, and 2) the use of\\n * `try/catch` allows the permit to fail and makes the code tolerant to frontrunning. (See also\\n * {SafeERC20-safeTransferFrom}).\\n *\\n * Additionally, note that smart contract wallets (such as Argent or Safe) are not able to produce permit signatures, so\\n * contracts should have entry points that don't rely on permit.\\n */\\ninterface IERC20Permit {\\n    /**\\n     * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\\n     * given ``owner``'s signed approval.\\n     *\\n     * IMPORTANT: The same issues {IERC20-approve} has related to transaction\\n     * ordering also apply here.\\n     *\\n     * Emits an {Approval} event.\\n     *\\n     * Requirements:\\n     *\\n     * - `spender` cannot be the zero address.\\n     * - `deadline` must be a timestamp in the future.\\n     * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\\n     * over the EIP712-formatted function arguments.\\n     * - the signature must use ``owner``'s current nonce (see {nonces}).\\n     *\\n     * For more information on the signature format, see the\\n     * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\\n     * section].\\n     *\\n     * CAUTION: See Security Considerations above.\\n     */\\n    function permit(\\n        address owner,\\n        address spender,\\n        uint256 value,\\n        uint256 deadline,\\n        uint8 v,\\n        bytes32 r,\\n        bytes32 s\\n    ) external;\\n\\n    /**\\n     * @dev Returns the current nonce for `owner`. This value must be\\n     * included whenever a signature is generated for {permit}.\\n     *\\n     * Every successful call to {permit} increases ``owner``'s nonce by one. This\\n     * prevents a signature from being used multiple times.\\n     */\\n    function nonces(address owner) external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\\n     */\\n    // solhint-disable-next-line func-name-mixedcase\\n    function DOMAIN_SEPARATOR() external view returns (bytes32);\\n}\\n\",\"keccak256\":\"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.3) (token/ERC20/utils/SafeERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\nimport \\\"../extensions/IERC20Permit.sol\\\";\\nimport \\\"../../../utils/Address.sol\\\";\\n\\n/**\\n * @title SafeERC20\\n * @dev Wrappers around ERC20 operations that throw on failure (when the token\\n * contract returns false). Tokens that return no value (and instead revert or\\n * throw on failure) are also supported, non-reverting calls are assumed to be\\n * successful.\\n * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\\n * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\\n */\\nlibrary SafeERC20 {\\n    using Address for address;\\n\\n    /**\\n     * @dev Transfer `value` amount of `token` from the calling contract to `to`. If `token` returns no value,\\n     * non-reverting calls are assumed to be successful.\\n     */\\n    function safeTransfer(IERC20 token, address to, uint256 value) internal {\\n        _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));\\n    }\\n\\n    /**\\n     * @dev Transfer `value` amount of `token` from `from` to `to`, spending the approval given by `from` to the\\n     * calling contract. If `token` returns no value, non-reverting calls are assumed to be successful.\\n     */\\n    function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {\\n        _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));\\n    }\\n\\n    /**\\n     * @dev Deprecated. This function has issues similar to the ones found in\\n     * {IERC20-approve}, and its usage is discouraged.\\n     *\\n     * Whenever possible, use {safeIncreaseAllowance} and\\n     * {safeDecreaseAllowance} instead.\\n     */\\n    function safeApprove(IERC20 token, address spender, uint256 value) internal {\\n        // safeApprove should only be called when setting an initial allowance,\\n        // or when resetting it to zero. To increase and decrease it, use\\n        // 'safeIncreaseAllowance' and 'safeDecreaseAllowance'\\n        require(\\n            (value == 0) || (token.allowance(address(this), spender) == 0),\\n            \\\"SafeERC20: approve from non-zero to non-zero allowance\\\"\\n        );\\n        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));\\n    }\\n\\n    /**\\n     * @dev Increase the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\\n     * non-reverting calls are assumed to be successful.\\n     */\\n    function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal {\\n        uint256 oldAllowance = token.allowance(address(this), spender);\\n        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, oldAllowance + value));\\n    }\\n\\n    /**\\n     * @dev Decrease the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\\n     * non-reverting calls are assumed to be successful.\\n     */\\n    function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal {\\n        unchecked {\\n            uint256 oldAllowance = token.allowance(address(this), spender);\\n            require(oldAllowance >= value, \\\"SafeERC20: decreased allowance below zero\\\");\\n            _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, oldAllowance - value));\\n        }\\n    }\\n\\n    /**\\n     * @dev Set the calling contract's allowance toward `spender` to `value`. If `token` returns no value,\\n     * non-reverting calls are assumed to be successful. Meant to be used with tokens that require the approval\\n     * to be set to zero before setting it to a non-zero value, such as USDT.\\n     */\\n    function forceApprove(IERC20 token, address spender, uint256 value) internal {\\n        bytes memory approvalCall = abi.encodeWithSelector(token.approve.selector, spender, value);\\n\\n        if (!_callOptionalReturnBool(token, approvalCall)) {\\n            _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, 0));\\n            _callOptionalReturn(token, approvalCall);\\n        }\\n    }\\n\\n    /**\\n     * @dev Use a ERC-2612 signature to set the `owner` approval toward `spender` on `token`.\\n     * Revert on invalid signature.\\n     */\\n    function safePermit(\\n        IERC20Permit token,\\n        address owner,\\n        address spender,\\n        uint256 value,\\n        uint256 deadline,\\n        uint8 v,\\n        bytes32 r,\\n        bytes32 s\\n    ) internal {\\n        uint256 nonceBefore = token.nonces(owner);\\n        token.permit(owner, spender, value, deadline, v, r, s);\\n        uint256 nonceAfter = token.nonces(owner);\\n        require(nonceAfter == nonceBefore + 1, \\\"SafeERC20: permit did not succeed\\\");\\n    }\\n\\n    /**\\n     * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\\n     * on the return value: the return value is optional (but if data is returned, it must not be false).\\n     * @param token The token targeted by the call.\\n     * @param data The call data (encoded using abi.encode or one of its variants).\\n     */\\n    function _callOptionalReturn(IERC20 token, bytes memory data) private {\\n        // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\\n        // we're implementing it ourselves. We use {Address-functionCall} to perform this call, which verifies that\\n        // the target address contains contract code and also asserts for success in the low-level call.\\n\\n        bytes memory returndata = address(token).functionCall(data, \\\"SafeERC20: low-level call failed\\\");\\n        require(returndata.length == 0 || abi.decode(returndata, (bool)), \\\"SafeERC20: ERC20 operation did not succeed\\\");\\n    }\\n\\n    /**\\n     * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\\n     * on the return value: the return value is optional (but if data is returned, it must not be false).\\n     * @param token The token targeted by the call.\\n     * @param data The call data (encoded using abi.encode or one of its variants).\\n     *\\n     * This is a variant of {_callOptionalReturn} that silents catches all reverts and returns a bool instead.\\n     */\\n    function _callOptionalReturnBool(IERC20 token, bytes memory data) private returns (bool) {\\n        // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\\n        // we're implementing it ourselves. We cannot use {Address-functionCall} here since this should return false\\n        // and not revert is the subcall reverts.\\n\\n        (bool success, bytes memory returndata) = address(token).call(data);\\n        return\\n            success && (returndata.length == 0 || abi.decode(returndata, (bool))) && Address.isContract(address(token));\\n    }\\n}\\n\",\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Address.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary Address {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     *\\n     * Furthermore, `isContract` will also return true if the target contract within\\n     * the same transaction is already scheduled for destruction by `SELFDESTRUCT`,\\n     * which only has an effect at the end of a transaction.\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.delegatecall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\n     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\n     *\\n     * _Available since v4.8._\\n     */\\n    function verifyCallResultFromTarget(\\n        address target,\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        if (success) {\\n            if (returndata.length == 0) {\\n                // only check isContract if the call was successful and the return data is empty\\n                // otherwise we already know that it was a contract\\n                require(isContract(target), \\\"Address: call to non-contract\\\");\\n            }\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason or using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    function _revert(bytes memory returndata, string memory errorMessage) private pure {\\n        // Look for revert reason and bubble it up if present\\n        if (returndata.length > 0) {\\n            // The easiest way to bubble the revert reason is using memory via assembly\\n            /// @solidity memory-safe-assembly\\n            assembly {\\n                let returndata_size := mload(returndata)\\n                revert(add(32, returndata), returndata_size)\\n            }\\n        } else {\\n            revert(errorMessage);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/utils/Address.sol":{"Address":{"abi":[],"devdoc":{"details":"Collection of functions related to the address type","kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f3b9dc203e1b1ac1d75fe8cc46319173db5a0cdc5abe6b48fb21804b96132c1a64736f6c63430008190033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 RETURN 0xB9 0xDC KECCAK256 RETURNDATACOPY SHL BYTE 0xC1 0xD7 PUSH0 0xE8 0xCC CHAINID BALANCE SWAP2 PUSH20 0xDB5A0CDC5ABE6B48FB21804B96132C1A64736F6C PUSH4 0x43000819 STOP CALLER ","sourceMap":"194:9169:38:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;194:9169:38;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f3b9dc203e1b1ac1d75fe8cc46319173db5a0cdc5abe6b48fb21804b96132c1a64736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 RETURN 0xB9 0xDC KECCAK256 RETURNDATACOPY SHL BYTE 0xC1 0xD7 PUSH0 0xE8 0xCC CHAINID BALANCE SWAP2 PUSH20 0xDB5A0CDC5ABE6B48FB21804B96132C1A64736F6C PUSH4 0x43000819 STOP CALLER ","sourceMap":"194:9169:38:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"_revert(bytes memory,string memory)":"infinite","functionCall(address,bytes memory)":"infinite","functionCall(address,bytes memory,string memory)":"infinite","functionCallWithValue(address,bytes memory,uint256)":"infinite","functionCallWithValue(address,bytes memory,uint256,string memory)":"infinite","functionDelegateCall(address,bytes memory)":"infinite","functionDelegateCall(address,bytes memory,string memory)":"infinite","functionStaticCall(address,bytes memory)":"infinite","functionStaticCall(address,bytes memory,string memory)":"infinite","isContract(address)":"infinite","sendValue(address payable,uint256)":"infinite","verifyCallResult(bool,bytes memory,string memory)":"infinite","verifyCallResultFromTarget(address,bool,bytes memory,string memory)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Address.sol\":\"Address\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Address.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary Address {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     *\\n     * Furthermore, `isContract` will also return true if the target contract within\\n     * the same transaction is already scheduled for destruction by `SELFDESTRUCT`,\\n     * which only has an effect at the end of a transaction.\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.delegatecall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\n     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\n     *\\n     * _Available since v4.8._\\n     */\\n    function verifyCallResultFromTarget(\\n        address target,\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        if (success) {\\n            if (returndata.length == 0) {\\n                // only check isContract if the call was successful and the return data is empty\\n                // otherwise we already know that it was a contract\\n                require(isContract(target), \\\"Address: call to non-contract\\\");\\n            }\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason or using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    function _revert(bytes memory returndata, string memory errorMessage) private pure {\\n        // Look for revert reason and bubble it up if present\\n        if (returndata.length > 0) {\\n            // The easiest way to bubble the revert reason is using memory via assembly\\n            /// @solidity memory-safe-assembly\\n            assembly {\\n                let returndata_size := mload(returndata)\\n                revert(add(32, returndata), returndata_size)\\n            }\\n        } else {\\n            revert(errorMessage);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/utils/Context.sol":{"Context":{"abi":[],"devdoc":{"details":"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.","kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n\\n    function _contextSuffixLength() internal view virtual returns (uint256) {\\n        return 0;\\n    }\\n}\\n\",\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/utils/Strings.sol":{"Strings":{"abi":[],"devdoc":{"details":"String operations.","kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204dd495357929f022d8e923b5cdb15896c25c13851941701693d94ca4d8eb4f3e64736f6c63430008190033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4D 0xD4 SWAP6 CALLDATALOAD PUSH26 0x29F022D8E923B5CDB15896C25C13851941701693D94CA4D8EB4F RETURNDATACOPY PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"220:2559:40:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;220:2559:40;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204dd495357929f022d8e923b5cdb15896c25c13851941701693d94ca4d8eb4f3e64736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4D 0xD4 SWAP6 CALLDATALOAD PUSH26 0x29F022D8E923B5CDB15896C25C13851941701693D94CA4D8EB4F RETURNDATACOPY PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"220:2559:40:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"equal(string memory,string memory)":"infinite","toHexString(address)":"infinite","toHexString(uint256)":"infinite","toHexString(uint256,uint256)":"infinite","toString(int256)":"infinite","toString(uint256)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"String operations.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Strings.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./math/Math.sol\\\";\\nimport \\\"./math/SignedMath.sol\\\";\\n\\n/**\\n * @dev String operations.\\n */\\nlibrary Strings {\\n    bytes16 private constant _SYMBOLS = \\\"0123456789abcdef\\\";\\n    uint8 private constant _ADDRESS_LENGTH = 20;\\n\\n    /**\\n     * @dev Converts a `uint256` to its ASCII `string` decimal representation.\\n     */\\n    function toString(uint256 value) internal pure returns (string memory) {\\n        unchecked {\\n            uint256 length = Math.log10(value) + 1;\\n            string memory buffer = new string(length);\\n            uint256 ptr;\\n            /// @solidity memory-safe-assembly\\n            assembly {\\n                ptr := add(buffer, add(32, length))\\n            }\\n            while (true) {\\n                ptr--;\\n                /// @solidity memory-safe-assembly\\n                assembly {\\n                    mstore8(ptr, byte(mod(value, 10), _SYMBOLS))\\n                }\\n                value /= 10;\\n                if (value == 0) break;\\n            }\\n            return buffer;\\n        }\\n    }\\n\\n    /**\\n     * @dev Converts a `int256` to its ASCII `string` decimal representation.\\n     */\\n    function toString(int256 value) internal pure returns (string memory) {\\n        return string(abi.encodePacked(value < 0 ? \\\"-\\\" : \\\"\\\", toString(SignedMath.abs(value))));\\n    }\\n\\n    /**\\n     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.\\n     */\\n    function toHexString(uint256 value) internal pure returns (string memory) {\\n        unchecked {\\n            return toHexString(value, Math.log256(value) + 1);\\n        }\\n    }\\n\\n    /**\\n     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\\n     */\\n    function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\\n        bytes memory buffer = new bytes(2 * length + 2);\\n        buffer[0] = \\\"0\\\";\\n        buffer[1] = \\\"x\\\";\\n        for (uint256 i = 2 * length + 1; i > 1; --i) {\\n            buffer[i] = _SYMBOLS[value & 0xf];\\n            value >>= 4;\\n        }\\n        require(value == 0, \\\"Strings: hex length insufficient\\\");\\n        return string(buffer);\\n    }\\n\\n    /**\\n     * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation.\\n     */\\n    function toHexString(address addr) internal pure returns (string memory) {\\n        return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH);\\n    }\\n\\n    /**\\n     * @dev Returns true if the two strings are equal.\\n     */\\n    function equal(string memory a, string memory b) internal pure returns (bool) {\\n        return keccak256(bytes(a)) == keccak256(bytes(b));\\n    }\\n}\\n\",\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/math/Math.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Standard math utilities missing in the Solidity language.\\n */\\nlibrary Math {\\n    enum Rounding {\\n        Down, // Toward negative infinity\\n        Up, // Toward infinity\\n        Zero // Toward zero\\n    }\\n\\n    /**\\n     * @dev Returns the largest of two numbers.\\n     */\\n    function max(uint256 a, uint256 b) internal pure returns (uint256) {\\n        return a > b ? a : b;\\n    }\\n\\n    /**\\n     * @dev Returns the smallest of two numbers.\\n     */\\n    function min(uint256 a, uint256 b) internal pure returns (uint256) {\\n        return a < b ? a : b;\\n    }\\n\\n    /**\\n     * @dev Returns the average of two numbers. The result is rounded towards\\n     * zero.\\n     */\\n    function average(uint256 a, uint256 b) internal pure returns (uint256) {\\n        // (a + b) / 2 can overflow.\\n        return (a & b) + (a ^ b) / 2;\\n    }\\n\\n    /**\\n     * @dev Returns the ceiling of the division of two numbers.\\n     *\\n     * This differs from standard division with `/` in that it rounds up instead\\n     * of rounding down.\\n     */\\n    function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\\n        // (a + b - 1) / b can overflow on addition, so we distribute.\\n        return a == 0 ? 0 : (a - 1) / b + 1;\\n    }\\n\\n    /**\\n     * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\\n     * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)\\n     * with further edits by Uniswap Labs also under MIT license.\\n     */\\n    function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {\\n        unchecked {\\n            // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use\\n            // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\\n            // variables such that product = prod1 * 2^256 + prod0.\\n            uint256 prod0; // Least significant 256 bits of the product\\n            uint256 prod1; // Most significant 256 bits of the product\\n            assembly {\\n                let mm := mulmod(x, y, not(0))\\n                prod0 := mul(x, y)\\n                prod1 := sub(sub(mm, prod0), lt(mm, prod0))\\n            }\\n\\n            // Handle non-overflow cases, 256 by 256 division.\\n            if (prod1 == 0) {\\n                // Solidity will revert if denominator == 0, unlike the div opcode on its own.\\n                // The surrounding unchecked block does not change this fact.\\n                // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.\\n                return prod0 / denominator;\\n            }\\n\\n            // Make sure the result is less than 2^256. Also prevents denominator == 0.\\n            require(denominator > prod1, \\\"Math: mulDiv overflow\\\");\\n\\n            ///////////////////////////////////////////////\\n            // 512 by 256 division.\\n            ///////////////////////////////////////////////\\n\\n            // Make division exact by subtracting the remainder from [prod1 prod0].\\n            uint256 remainder;\\n            assembly {\\n                // Compute remainder using mulmod.\\n                remainder := mulmod(x, y, denominator)\\n\\n                // Subtract 256 bit number from 512 bit number.\\n                prod1 := sub(prod1, gt(remainder, prod0))\\n                prod0 := sub(prod0, remainder)\\n            }\\n\\n            // Factor powers of two out of denominator and compute largest power of two divisor of denominator. Always >= 1.\\n            // See https://cs.stackexchange.com/q/138556/92363.\\n\\n            // Does not overflow because the denominator cannot be zero at this stage in the function.\\n            uint256 twos = denominator & (~denominator + 1);\\n            assembly {\\n                // Divide denominator by twos.\\n                denominator := div(denominator, twos)\\n\\n                // Divide [prod1 prod0] by twos.\\n                prod0 := div(prod0, twos)\\n\\n                // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.\\n                twos := add(div(sub(0, twos), twos), 1)\\n            }\\n\\n            // Shift in bits from prod1 into prod0.\\n            prod0 |= prod1 * twos;\\n\\n            // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\\n            // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\\n            // four bits. That is, denominator * inv = 1 mod 2^4.\\n            uint256 inverse = (3 * denominator) ^ 2;\\n\\n            // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also works\\n            // in modular arithmetic, doubling the correct bits in each step.\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^8\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^16\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^32\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^64\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^128\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^256\\n\\n            // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\\n            // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\\n            // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\\n            // is no longer required.\\n            result = prod0 * inverse;\\n            return result;\\n        }\\n    }\\n\\n    /**\\n     * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\\n     */\\n    function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\\n        uint256 result = mulDiv(x, y, denominator);\\n        if (rounding == Rounding.Up && mulmod(x, y, denominator) > 0) {\\n            result += 1;\\n        }\\n        return result;\\n    }\\n\\n    /**\\n     * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down.\\n     *\\n     * Inspired by Henry S. Warren, Jr.'s \\\"Hacker's Delight\\\" (Chapter 11).\\n     */\\n    function sqrt(uint256 a) internal pure returns (uint256) {\\n        if (a == 0) {\\n            return 0;\\n        }\\n\\n        // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\\n        //\\n        // We know that the \\\"msb\\\" (most significant bit) of our target number `a` is a power of 2 such that we have\\n        // `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`.\\n        //\\n        // This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)`\\n        // \\u2192 `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`\\n        // \\u2192 `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)`\\n        //\\n        // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit.\\n        uint256 result = 1 << (log2(a) >> 1);\\n\\n        // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128,\\n        // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\\n        // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\\n        // into the expected uint128 result.\\n        unchecked {\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            return min(result, a / result);\\n        }\\n    }\\n\\n    /**\\n     * @notice Calculates sqrt(a), following the selected rounding direction.\\n     */\\n    function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\\n        unchecked {\\n            uint256 result = sqrt(a);\\n            return result + (rounding == Rounding.Up && result * result < a ? 1 : 0);\\n        }\\n    }\\n\\n    /**\\n     * @dev Return the log in base 2, rounded down, of a positive value.\\n     * Returns 0 if given 0.\\n     */\\n    function log2(uint256 value) internal pure returns (uint256) {\\n        uint256 result = 0;\\n        unchecked {\\n            if (value >> 128 > 0) {\\n                value >>= 128;\\n                result += 128;\\n            }\\n            if (value >> 64 > 0) {\\n                value >>= 64;\\n                result += 64;\\n            }\\n            if (value >> 32 > 0) {\\n                value >>= 32;\\n                result += 32;\\n            }\\n            if (value >> 16 > 0) {\\n                value >>= 16;\\n                result += 16;\\n            }\\n            if (value >> 8 > 0) {\\n                value >>= 8;\\n                result += 8;\\n            }\\n            if (value >> 4 > 0) {\\n                value >>= 4;\\n                result += 4;\\n            }\\n            if (value >> 2 > 0) {\\n                value >>= 2;\\n                result += 2;\\n            }\\n            if (value >> 1 > 0) {\\n                result += 1;\\n            }\\n        }\\n        return result;\\n    }\\n\\n    /**\\n     * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\\n     * Returns 0 if given 0.\\n     */\\n    function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n        unchecked {\\n            uint256 result = log2(value);\\n            return result + (rounding == Rounding.Up && 1 << result < value ? 1 : 0);\\n        }\\n    }\\n\\n    /**\\n     * @dev Return the log in base 10, rounded down, of a positive value.\\n     * Returns 0 if given 0.\\n     */\\n    function log10(uint256 value) internal pure returns (uint256) {\\n        uint256 result = 0;\\n        unchecked {\\n            if (value >= 10 ** 64) {\\n                value /= 10 ** 64;\\n                result += 64;\\n            }\\n            if (value >= 10 ** 32) {\\n                value /= 10 ** 32;\\n                result += 32;\\n            }\\n            if (value >= 10 ** 16) {\\n                value /= 10 ** 16;\\n                result += 16;\\n            }\\n            if (value >= 10 ** 8) {\\n                value /= 10 ** 8;\\n                result += 8;\\n            }\\n            if (value >= 10 ** 4) {\\n                value /= 10 ** 4;\\n                result += 4;\\n            }\\n            if (value >= 10 ** 2) {\\n                value /= 10 ** 2;\\n                result += 2;\\n            }\\n            if (value >= 10 ** 1) {\\n                result += 1;\\n            }\\n        }\\n        return result;\\n    }\\n\\n    /**\\n     * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\\n     * Returns 0 if given 0.\\n     */\\n    function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n        unchecked {\\n            uint256 result = log10(value);\\n            return result + (rounding == Rounding.Up && 10 ** result < value ? 1 : 0);\\n        }\\n    }\\n\\n    /**\\n     * @dev Return the log in base 256, rounded down, of a positive value.\\n     * Returns 0 if given 0.\\n     *\\n     * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string.\\n     */\\n    function log256(uint256 value) internal pure returns (uint256) {\\n        uint256 result = 0;\\n        unchecked {\\n            if (value >> 128 > 0) {\\n                value >>= 128;\\n                result += 16;\\n            }\\n            if (value >> 64 > 0) {\\n                value >>= 64;\\n                result += 8;\\n            }\\n            if (value >> 32 > 0) {\\n                value >>= 32;\\n                result += 4;\\n            }\\n            if (value >> 16 > 0) {\\n                value >>= 16;\\n                result += 2;\\n            }\\n            if (value >> 8 > 0) {\\n                result += 1;\\n            }\\n        }\\n        return result;\\n    }\\n\\n    /**\\n     * @dev Return the log in base 256, following the selected rounding direction, of a positive value.\\n     * Returns 0 if given 0.\\n     */\\n    function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n        unchecked {\\n            uint256 result = log256(value);\\n            return result + (rounding == Rounding.Up && 1 << (result << 3) < value ? 1 : 0);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/SignedMath.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Standard signed math utilities missing in the Solidity language.\\n */\\nlibrary SignedMath {\\n    /**\\n     * @dev Returns the largest of two signed numbers.\\n     */\\n    function max(int256 a, int256 b) internal pure returns (int256) {\\n        return a > b ? a : b;\\n    }\\n\\n    /**\\n     * @dev Returns the smallest of two signed numbers.\\n     */\\n    function min(int256 a, int256 b) internal pure returns (int256) {\\n        return a < b ? a : b;\\n    }\\n\\n    /**\\n     * @dev Returns the average of two signed numbers without overflow.\\n     * The result is rounded towards zero.\\n     */\\n    function average(int256 a, int256 b) internal pure returns (int256) {\\n        // Formula from the book \\\"Hacker's Delight\\\"\\n        int256 x = (a & b) + ((a ^ b) >> 1);\\n        return x + (int256(uint256(x) >> 255) & (a ^ b));\\n    }\\n\\n    /**\\n     * @dev Returns the absolute unsigned value of a signed value.\\n     */\\n    function abs(int256 n) internal pure returns (uint256) {\\n        unchecked {\\n            // must be unchecked in order to support `n = type(int256).min`\\n            return uint256(n >= 0 ? n : -n);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"ERC165":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"devdoc":{"details":"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ``` Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.","kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ``` Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":\"ERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IERC165.sol\\\";\\n\\n/**\\n * @dev Implementation of the {IERC165} interface.\\n *\\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\\n * for the additional interface id that will be supported. For example:\\n *\\n * ```solidity\\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\n *     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\\n * }\\n * ```\\n *\\n * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\\n */\\nabstract contract ERC165 is IERC165 {\\n    /**\\n     * @dev See {IERC165-supportsInterface}.\\n     */\\n    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\n        return interfaceId == type(IERC165).interfaceId;\\n    }\\n}\\n\",\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC165 standard, as defined in the\\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\\n *\\n * Implementers can declare support of contract interfaces, which can then be\\n * queried by others ({ERC165Checker}).\\n *\\n * For an implementation, see {ERC165}.\\n */\\ninterface IERC165 {\\n    /**\\n     * @dev Returns true if this contract implements the interface defined by\\n     * `interfaceId`. See the corresponding\\n     * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\\n     * to learn more about how these ids are created.\\n     *\\n     * This function call must use less than 30 000 gas.\\n     */\\n    function supportsInterface(bytes4 interfaceId) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"IERC165":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"devdoc":{"details":"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.","kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC165 standard, as defined in the\\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\\n *\\n * Implementers can declare support of contract interfaces, which can then be\\n * queried by others ({ERC165Checker}).\\n *\\n * For an implementation, see {ERC165}.\\n */\\ninterface IERC165 {\\n    /**\\n     * @dev Returns true if this contract implements the interface defined by\\n     * `interfaceId`. See the corresponding\\n     * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\\n     * to learn more about how these ids are created.\\n     *\\n     * This function call must use less than 30 000 gas.\\n     */\\n    function supportsInterface(bytes4 interfaceId) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/utils/math/Math.sol":{"Math":{"abi":[],"devdoc":{"details":"Standard math utilities missing in the Solidity language.","kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ddd74b6888974fdaf44552868a4e8f2bb0dd2fc839f35a4f74ac736abbd9f42f64736f6c63430008190033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDD 0xD7 0x4B PUSH9 0x88974FDAF44552868A 0x4E DUP16 0x2B 0xB0 0xDD 0x2F 0xC8 CODECOPY RETURN GAS 0x4F PUSH21 0xAC736ABBD9F42F64736F6C63430008190033000000 ","sourceMap":"202:12582:43:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;202:12582:43;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ddd74b6888974fdaf44552868a4e8f2bb0dd2fc839f35a4f74ac736abbd9f42f64736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDD 0xD7 0x4B PUSH9 0x88974FDAF44552868A 0x4E DUP16 0x2B 0xB0 0xDD 0x2F 0xC8 CODECOPY RETURN GAS 0x4F PUSH21 0xAC736ABBD9F42F64736F6C63430008190033000000 ","sourceMap":"202:12582:43:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"average(uint256,uint256)":"infinite","ceilDiv(uint256,uint256)":"infinite","log10(uint256)":"infinite","log10(uint256,enum Math.Rounding)":"infinite","log2(uint256)":"infinite","log2(uint256,enum Math.Rounding)":"infinite","log256(uint256)":"infinite","log256(uint256,enum Math.Rounding)":"infinite","max(uint256,uint256)":"infinite","min(uint256,uint256)":"infinite","mulDiv(uint256,uint256,uint256)":"infinite","mulDiv(uint256,uint256,uint256,enum Math.Rounding)":"infinite","sqrt(uint256)":"infinite","sqrt(uint256,enum Math.Rounding)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/Math.sol\":\"Math\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/Math.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/math/Math.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Standard math utilities missing in the Solidity language.\\n */\\nlibrary Math {\\n    enum Rounding {\\n        Down, // Toward negative infinity\\n        Up, // Toward infinity\\n        Zero // Toward zero\\n    }\\n\\n    /**\\n     * @dev Returns the largest of two numbers.\\n     */\\n    function max(uint256 a, uint256 b) internal pure returns (uint256) {\\n        return a > b ? a : b;\\n    }\\n\\n    /**\\n     * @dev Returns the smallest of two numbers.\\n     */\\n    function min(uint256 a, uint256 b) internal pure returns (uint256) {\\n        return a < b ? a : b;\\n    }\\n\\n    /**\\n     * @dev Returns the average of two numbers. The result is rounded towards\\n     * zero.\\n     */\\n    function average(uint256 a, uint256 b) internal pure returns (uint256) {\\n        // (a + b) / 2 can overflow.\\n        return (a & b) + (a ^ b) / 2;\\n    }\\n\\n    /**\\n     * @dev Returns the ceiling of the division of two numbers.\\n     *\\n     * This differs from standard division with `/` in that it rounds up instead\\n     * of rounding down.\\n     */\\n    function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\\n        // (a + b - 1) / b can overflow on addition, so we distribute.\\n        return a == 0 ? 0 : (a - 1) / b + 1;\\n    }\\n\\n    /**\\n     * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\\n     * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)\\n     * with further edits by Uniswap Labs also under MIT license.\\n     */\\n    function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {\\n        unchecked {\\n            // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use\\n            // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\\n            // variables such that product = prod1 * 2^256 + prod0.\\n            uint256 prod0; // Least significant 256 bits of the product\\n            uint256 prod1; // Most significant 256 bits of the product\\n            assembly {\\n                let mm := mulmod(x, y, not(0))\\n                prod0 := mul(x, y)\\n                prod1 := sub(sub(mm, prod0), lt(mm, prod0))\\n            }\\n\\n            // Handle non-overflow cases, 256 by 256 division.\\n            if (prod1 == 0) {\\n                // Solidity will revert if denominator == 0, unlike the div opcode on its own.\\n                // The surrounding unchecked block does not change this fact.\\n                // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.\\n                return prod0 / denominator;\\n            }\\n\\n            // Make sure the result is less than 2^256. Also prevents denominator == 0.\\n            require(denominator > prod1, \\\"Math: mulDiv overflow\\\");\\n\\n            ///////////////////////////////////////////////\\n            // 512 by 256 division.\\n            ///////////////////////////////////////////////\\n\\n            // Make division exact by subtracting the remainder from [prod1 prod0].\\n            uint256 remainder;\\n            assembly {\\n                // Compute remainder using mulmod.\\n                remainder := mulmod(x, y, denominator)\\n\\n                // Subtract 256 bit number from 512 bit number.\\n                prod1 := sub(prod1, gt(remainder, prod0))\\n                prod0 := sub(prod0, remainder)\\n            }\\n\\n            // Factor powers of two out of denominator and compute largest power of two divisor of denominator. Always >= 1.\\n            // See https://cs.stackexchange.com/q/138556/92363.\\n\\n            // Does not overflow because the denominator cannot be zero at this stage in the function.\\n            uint256 twos = denominator & (~denominator + 1);\\n            assembly {\\n                // Divide denominator by twos.\\n                denominator := div(denominator, twos)\\n\\n                // Divide [prod1 prod0] by twos.\\n                prod0 := div(prod0, twos)\\n\\n                // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.\\n                twos := add(div(sub(0, twos), twos), 1)\\n            }\\n\\n            // Shift in bits from prod1 into prod0.\\n            prod0 |= prod1 * twos;\\n\\n            // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\\n            // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\\n            // four bits. That is, denominator * inv = 1 mod 2^4.\\n            uint256 inverse = (3 * denominator) ^ 2;\\n\\n            // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also works\\n            // in modular arithmetic, doubling the correct bits in each step.\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^8\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^16\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^32\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^64\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^128\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^256\\n\\n            // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\\n            // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\\n            // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\\n            // is no longer required.\\n            result = prod0 * inverse;\\n            return result;\\n        }\\n    }\\n\\n    /**\\n     * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\\n     */\\n    function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\\n        uint256 result = mulDiv(x, y, denominator);\\n        if (rounding == Rounding.Up && mulmod(x, y, denominator) > 0) {\\n            result += 1;\\n        }\\n        return result;\\n    }\\n\\n    /**\\n     * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down.\\n     *\\n     * Inspired by Henry S. Warren, Jr.'s \\\"Hacker's Delight\\\" (Chapter 11).\\n     */\\n    function sqrt(uint256 a) internal pure returns (uint256) {\\n        if (a == 0) {\\n            return 0;\\n        }\\n\\n        // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\\n        //\\n        // We know that the \\\"msb\\\" (most significant bit) of our target number `a` is a power of 2 such that we have\\n        // `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`.\\n        //\\n        // This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)`\\n        // \\u2192 `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`\\n        // \\u2192 `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)`\\n        //\\n        // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit.\\n        uint256 result = 1 << (log2(a) >> 1);\\n\\n        // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128,\\n        // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\\n        // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\\n        // into the expected uint128 result.\\n        unchecked {\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            return min(result, a / result);\\n        }\\n    }\\n\\n    /**\\n     * @notice Calculates sqrt(a), following the selected rounding direction.\\n     */\\n    function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\\n        unchecked {\\n            uint256 result = sqrt(a);\\n            return result + (rounding == Rounding.Up && result * result < a ? 1 : 0);\\n        }\\n    }\\n\\n    /**\\n     * @dev Return the log in base 2, rounded down, of a positive value.\\n     * Returns 0 if given 0.\\n     */\\n    function log2(uint256 value) internal pure returns (uint256) {\\n        uint256 result = 0;\\n        unchecked {\\n            if (value >> 128 > 0) {\\n                value >>= 128;\\n                result += 128;\\n            }\\n            if (value >> 64 > 0) {\\n                value >>= 64;\\n                result += 64;\\n            }\\n            if (value >> 32 > 0) {\\n                value >>= 32;\\n                result += 32;\\n            }\\n            if (value >> 16 > 0) {\\n                value >>= 16;\\n                result += 16;\\n            }\\n            if (value >> 8 > 0) {\\n                value >>= 8;\\n                result += 8;\\n            }\\n            if (value >> 4 > 0) {\\n                value >>= 4;\\n                result += 4;\\n            }\\n            if (value >> 2 > 0) {\\n                value >>= 2;\\n                result += 2;\\n            }\\n            if (value >> 1 > 0) {\\n                result += 1;\\n            }\\n        }\\n        return result;\\n    }\\n\\n    /**\\n     * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\\n     * Returns 0 if given 0.\\n     */\\n    function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n        unchecked {\\n            uint256 result = log2(value);\\n            return result + (rounding == Rounding.Up && 1 << result < value ? 1 : 0);\\n        }\\n    }\\n\\n    /**\\n     * @dev Return the log in base 10, rounded down, of a positive value.\\n     * Returns 0 if given 0.\\n     */\\n    function log10(uint256 value) internal pure returns (uint256) {\\n        uint256 result = 0;\\n        unchecked {\\n            if (value >= 10 ** 64) {\\n                value /= 10 ** 64;\\n                result += 64;\\n            }\\n            if (value >= 10 ** 32) {\\n                value /= 10 ** 32;\\n                result += 32;\\n            }\\n            if (value >= 10 ** 16) {\\n                value /= 10 ** 16;\\n                result += 16;\\n            }\\n            if (value >= 10 ** 8) {\\n                value /= 10 ** 8;\\n                result += 8;\\n            }\\n            if (value >= 10 ** 4) {\\n                value /= 10 ** 4;\\n                result += 4;\\n            }\\n            if (value >= 10 ** 2) {\\n                value /= 10 ** 2;\\n                result += 2;\\n            }\\n            if (value >= 10 ** 1) {\\n                result += 1;\\n            }\\n        }\\n        return result;\\n    }\\n\\n    /**\\n     * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\\n     * Returns 0 if given 0.\\n     */\\n    function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n        unchecked {\\n            uint256 result = log10(value);\\n            return result + (rounding == Rounding.Up && 10 ** result < value ? 1 : 0);\\n        }\\n    }\\n\\n    /**\\n     * @dev Return the log in base 256, rounded down, of a positive value.\\n     * Returns 0 if given 0.\\n     *\\n     * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string.\\n     */\\n    function log256(uint256 value) internal pure returns (uint256) {\\n        uint256 result = 0;\\n        unchecked {\\n            if (value >> 128 > 0) {\\n                value >>= 128;\\n                result += 16;\\n            }\\n            if (value >> 64 > 0) {\\n                value >>= 64;\\n                result += 8;\\n            }\\n            if (value >> 32 > 0) {\\n                value >>= 32;\\n                result += 4;\\n            }\\n            if (value >> 16 > 0) {\\n                value >>= 16;\\n                result += 2;\\n            }\\n            if (value >> 8 > 0) {\\n                result += 1;\\n            }\\n        }\\n        return result;\\n    }\\n\\n    /**\\n     * @dev Return the log in base 256, following the selected rounding direction, of a positive value.\\n     * Returns 0 if given 0.\\n     */\\n    function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n        unchecked {\\n            uint256 result = log256(value);\\n            return result + (rounding == Rounding.Up && 1 << (result << 3) < value ? 1 : 0);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/utils/math/SafeCast.sol":{"SafeCast":{"abi":[],"devdoc":{"details":"Wrappers over Solidity's uintXX/intXX casting operators with added overflow checks. Downcasting from uint256/int256 in Solidity does not revert on overflow. This can easily result in undesired exploitation or bugs, since developers usually assume that overflows raise errors. `SafeCast` restores this intuition by reverting the transaction when such an operation overflows. Using this library instead of the unchecked operations eliminates an entire class of bugs, so it's recommended to use it always. Can be combined with {SafeMath} and {SignedSafeMath} to extend it to smaller types, by performing all math on `uint256` and `int256` and then downcasting.","kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c5e31e6a4e74b971e161e66ae2bff33bec4f42024a8ca0914537b016b201c5dc64736f6c63430008190033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC5 0xE3 0x1E PUSH11 0x4E74B971E161E66AE2BFF3 EXTCODESIZE 0xEC 0x4F TIMESTAMP MUL BLOBBASEFEE DUP13 LOG0 SWAP2 GASLIMIT CALLDATACOPY 0xB0 AND 0xB2 ADD 0xC5 0xDC PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"927:34153:44:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;927:34153:44;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c5e31e6a4e74b971e161e66ae2bff33bec4f42024a8ca0914537b016b201c5dc64736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC5 0xE3 0x1E PUSH11 0x4E74B971E161E66AE2BFF3 EXTCODESIZE 0xEC 0x4F TIMESTAMP MUL BLOBBASEFEE DUP13 LOG0 SWAP2 GASLIMIT CALLDATACOPY 0xB0 AND 0xB2 ADD 0xC5 0xDC PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"927:34153:44:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"toInt104(int256)":"infinite","toInt112(int256)":"infinite","toInt120(int256)":"infinite","toInt128(int256)":"infinite","toInt136(int256)":"infinite","toInt144(int256)":"infinite","toInt152(int256)":"infinite","toInt16(int256)":"infinite","toInt160(int256)":"infinite","toInt168(int256)":"infinite","toInt176(int256)":"infinite","toInt184(int256)":"infinite","toInt192(int256)":"infinite","toInt200(int256)":"infinite","toInt208(int256)":"infinite","toInt216(int256)":"infinite","toInt224(int256)":"infinite","toInt232(int256)":"infinite","toInt24(int256)":"infinite","toInt240(int256)":"infinite","toInt248(int256)":"infinite","toInt256(uint256)":"infinite","toInt32(int256)":"infinite","toInt40(int256)":"infinite","toInt48(int256)":"infinite","toInt56(int256)":"infinite","toInt64(int256)":"infinite","toInt72(int256)":"infinite","toInt8(int256)":"infinite","toInt80(int256)":"infinite","toInt88(int256)":"infinite","toInt96(int256)":"infinite","toUint104(uint256)":"infinite","toUint112(uint256)":"infinite","toUint120(uint256)":"infinite","toUint128(uint256)":"infinite","toUint136(uint256)":"infinite","toUint144(uint256)":"infinite","toUint152(uint256)":"infinite","toUint16(uint256)":"infinite","toUint160(uint256)":"infinite","toUint168(uint256)":"infinite","toUint176(uint256)":"infinite","toUint184(uint256)":"infinite","toUint192(uint256)":"infinite","toUint200(uint256)":"infinite","toUint208(uint256)":"infinite","toUint216(uint256)":"infinite","toUint224(uint256)":"infinite","toUint232(uint256)":"infinite","toUint24(uint256)":"infinite","toUint240(uint256)":"infinite","toUint248(uint256)":"infinite","toUint256(int256)":"infinite","toUint32(uint256)":"infinite","toUint40(uint256)":"infinite","toUint48(uint256)":"infinite","toUint56(uint256)":"infinite","toUint64(uint256)":"infinite","toUint72(uint256)":"infinite","toUint8(uint256)":"infinite","toUint80(uint256)":"infinite","toUint88(uint256)":"infinite","toUint96(uint256)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers over Solidity's uintXX/intXX casting operators with added overflow checks. Downcasting from uint256/int256 in Solidity does not revert on overflow. This can easily result in undesired exploitation or bugs, since developers usually assume that overflows raise errors. `SafeCast` restores this intuition by reverting the transaction when such an operation overflows. Using this library instead of the unchecked operations eliminates an entire class of bugs, so it's recommended to use it always. Can be combined with {SafeMath} and {SignedSafeMath} to extend it to smaller types, by performing all math on `uint256` and `int256` and then downcasting.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/SafeCast.sol\":\"SafeCast\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/SafeCast.sol)\\n// This file was procedurally generated from scripts/generate/templates/SafeCast.js.\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Wrappers over Solidity's uintXX/intXX casting operators with added overflow\\n * checks.\\n *\\n * Downcasting from uint256/int256 in Solidity does not revert on overflow. This can\\n * easily result in undesired exploitation or bugs, since developers usually\\n * assume that overflows raise errors. `SafeCast` restores this intuition by\\n * reverting the transaction when such an operation overflows.\\n *\\n * Using this library instead of the unchecked operations eliminates an entire\\n * class of bugs, so it's recommended to use it always.\\n *\\n * Can be combined with {SafeMath} and {SignedSafeMath} to extend it to smaller types, by performing\\n * all math on `uint256` and `int256` and then downcasting.\\n */\\nlibrary SafeCast {\\n    /**\\n     * @dev Returns the downcasted uint248 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint248).\\n     *\\n     * Counterpart to Solidity's `uint248` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 248 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint248(uint256 value) internal pure returns (uint248) {\\n        require(value <= type(uint248).max, \\\"SafeCast: value doesn't fit in 248 bits\\\");\\n        return uint248(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint240 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint240).\\n     *\\n     * Counterpart to Solidity's `uint240` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 240 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint240(uint256 value) internal pure returns (uint240) {\\n        require(value <= type(uint240).max, \\\"SafeCast: value doesn't fit in 240 bits\\\");\\n        return uint240(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint232 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint232).\\n     *\\n     * Counterpart to Solidity's `uint232` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 232 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint232(uint256 value) internal pure returns (uint232) {\\n        require(value <= type(uint232).max, \\\"SafeCast: value doesn't fit in 232 bits\\\");\\n        return uint232(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint224 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint224).\\n     *\\n     * Counterpart to Solidity's `uint224` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 224 bits\\n     *\\n     * _Available since v4.2._\\n     */\\n    function toUint224(uint256 value) internal pure returns (uint224) {\\n        require(value <= type(uint224).max, \\\"SafeCast: value doesn't fit in 224 bits\\\");\\n        return uint224(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint216 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint216).\\n     *\\n     * Counterpart to Solidity's `uint216` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 216 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint216(uint256 value) internal pure returns (uint216) {\\n        require(value <= type(uint216).max, \\\"SafeCast: value doesn't fit in 216 bits\\\");\\n        return uint216(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint208 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint208).\\n     *\\n     * Counterpart to Solidity's `uint208` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 208 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint208(uint256 value) internal pure returns (uint208) {\\n        require(value <= type(uint208).max, \\\"SafeCast: value doesn't fit in 208 bits\\\");\\n        return uint208(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint200 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint200).\\n     *\\n     * Counterpart to Solidity's `uint200` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 200 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint200(uint256 value) internal pure returns (uint200) {\\n        require(value <= type(uint200).max, \\\"SafeCast: value doesn't fit in 200 bits\\\");\\n        return uint200(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint192 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint192).\\n     *\\n     * Counterpart to Solidity's `uint192` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 192 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint192(uint256 value) internal pure returns (uint192) {\\n        require(value <= type(uint192).max, \\\"SafeCast: value doesn't fit in 192 bits\\\");\\n        return uint192(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint184 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint184).\\n     *\\n     * Counterpart to Solidity's `uint184` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 184 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint184(uint256 value) internal pure returns (uint184) {\\n        require(value <= type(uint184).max, \\\"SafeCast: value doesn't fit in 184 bits\\\");\\n        return uint184(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint176 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint176).\\n     *\\n     * Counterpart to Solidity's `uint176` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 176 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint176(uint256 value) internal pure returns (uint176) {\\n        require(value <= type(uint176).max, \\\"SafeCast: value doesn't fit in 176 bits\\\");\\n        return uint176(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint168 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint168).\\n     *\\n     * Counterpart to Solidity's `uint168` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 168 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint168(uint256 value) internal pure returns (uint168) {\\n        require(value <= type(uint168).max, \\\"SafeCast: value doesn't fit in 168 bits\\\");\\n        return uint168(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint160 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint160).\\n     *\\n     * Counterpart to Solidity's `uint160` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 160 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint160(uint256 value) internal pure returns (uint160) {\\n        require(value <= type(uint160).max, \\\"SafeCast: value doesn't fit in 160 bits\\\");\\n        return uint160(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint152 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint152).\\n     *\\n     * Counterpart to Solidity's `uint152` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 152 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint152(uint256 value) internal pure returns (uint152) {\\n        require(value <= type(uint152).max, \\\"SafeCast: value doesn't fit in 152 bits\\\");\\n        return uint152(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint144 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint144).\\n     *\\n     * Counterpart to Solidity's `uint144` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 144 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint144(uint256 value) internal pure returns (uint144) {\\n        require(value <= type(uint144).max, \\\"SafeCast: value doesn't fit in 144 bits\\\");\\n        return uint144(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint136 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint136).\\n     *\\n     * Counterpart to Solidity's `uint136` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 136 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint136(uint256 value) internal pure returns (uint136) {\\n        require(value <= type(uint136).max, \\\"SafeCast: value doesn't fit in 136 bits\\\");\\n        return uint136(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint128 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint128).\\n     *\\n     * Counterpart to Solidity's `uint128` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 128 bits\\n     *\\n     * _Available since v2.5._\\n     */\\n    function toUint128(uint256 value) internal pure returns (uint128) {\\n        require(value <= type(uint128).max, \\\"SafeCast: value doesn't fit in 128 bits\\\");\\n        return uint128(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint120 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint120).\\n     *\\n     * Counterpart to Solidity's `uint120` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 120 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint120(uint256 value) internal pure returns (uint120) {\\n        require(value <= type(uint120).max, \\\"SafeCast: value doesn't fit in 120 bits\\\");\\n        return uint120(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint112 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint112).\\n     *\\n     * Counterpart to Solidity's `uint112` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 112 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint112(uint256 value) internal pure returns (uint112) {\\n        require(value <= type(uint112).max, \\\"SafeCast: value doesn't fit in 112 bits\\\");\\n        return uint112(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint104 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint104).\\n     *\\n     * Counterpart to Solidity's `uint104` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 104 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint104(uint256 value) internal pure returns (uint104) {\\n        require(value <= type(uint104).max, \\\"SafeCast: value doesn't fit in 104 bits\\\");\\n        return uint104(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint96 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint96).\\n     *\\n     * Counterpart to Solidity's `uint96` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 96 bits\\n     *\\n     * _Available since v4.2._\\n     */\\n    function toUint96(uint256 value) internal pure returns (uint96) {\\n        require(value <= type(uint96).max, \\\"SafeCast: value doesn't fit in 96 bits\\\");\\n        return uint96(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint88 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint88).\\n     *\\n     * Counterpart to Solidity's `uint88` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 88 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint88(uint256 value) internal pure returns (uint88) {\\n        require(value <= type(uint88).max, \\\"SafeCast: value doesn't fit in 88 bits\\\");\\n        return uint88(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint80 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint80).\\n     *\\n     * Counterpart to Solidity's `uint80` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 80 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint80(uint256 value) internal pure returns (uint80) {\\n        require(value <= type(uint80).max, \\\"SafeCast: value doesn't fit in 80 bits\\\");\\n        return uint80(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint72 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint72).\\n     *\\n     * Counterpart to Solidity's `uint72` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 72 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint72(uint256 value) internal pure returns (uint72) {\\n        require(value <= type(uint72).max, \\\"SafeCast: value doesn't fit in 72 bits\\\");\\n        return uint72(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint64 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint64).\\n     *\\n     * Counterpart to Solidity's `uint64` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 64 bits\\n     *\\n     * _Available since v2.5._\\n     */\\n    function toUint64(uint256 value) internal pure returns (uint64) {\\n        require(value <= type(uint64).max, \\\"SafeCast: value doesn't fit in 64 bits\\\");\\n        return uint64(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint56 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint56).\\n     *\\n     * Counterpart to Solidity's `uint56` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 56 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint56(uint256 value) internal pure returns (uint56) {\\n        require(value <= type(uint56).max, \\\"SafeCast: value doesn't fit in 56 bits\\\");\\n        return uint56(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint48 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint48).\\n     *\\n     * Counterpart to Solidity's `uint48` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 48 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint48(uint256 value) internal pure returns (uint48) {\\n        require(value <= type(uint48).max, \\\"SafeCast: value doesn't fit in 48 bits\\\");\\n        return uint48(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint40 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint40).\\n     *\\n     * Counterpart to Solidity's `uint40` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 40 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint40(uint256 value) internal pure returns (uint40) {\\n        require(value <= type(uint40).max, \\\"SafeCast: value doesn't fit in 40 bits\\\");\\n        return uint40(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint32 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint32).\\n     *\\n     * Counterpart to Solidity's `uint32` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 32 bits\\n     *\\n     * _Available since v2.5._\\n     */\\n    function toUint32(uint256 value) internal pure returns (uint32) {\\n        require(value <= type(uint32).max, \\\"SafeCast: value doesn't fit in 32 bits\\\");\\n        return uint32(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint24 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint24).\\n     *\\n     * Counterpart to Solidity's `uint24` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 24 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint24(uint256 value) internal pure returns (uint24) {\\n        require(value <= type(uint24).max, \\\"SafeCast: value doesn't fit in 24 bits\\\");\\n        return uint24(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint16 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint16).\\n     *\\n     * Counterpart to Solidity's `uint16` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 16 bits\\n     *\\n     * _Available since v2.5._\\n     */\\n    function toUint16(uint256 value) internal pure returns (uint16) {\\n        require(value <= type(uint16).max, \\\"SafeCast: value doesn't fit in 16 bits\\\");\\n        return uint16(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint8 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint8).\\n     *\\n     * Counterpart to Solidity's `uint8` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 8 bits\\n     *\\n     * _Available since v2.5._\\n     */\\n    function toUint8(uint256 value) internal pure returns (uint8) {\\n        require(value <= type(uint8).max, \\\"SafeCast: value doesn't fit in 8 bits\\\");\\n        return uint8(value);\\n    }\\n\\n    /**\\n     * @dev Converts a signed int256 into an unsigned uint256.\\n     *\\n     * Requirements:\\n     *\\n     * - input must be greater than or equal to 0.\\n     *\\n     * _Available since v3.0._\\n     */\\n    function toUint256(int256 value) internal pure returns (uint256) {\\n        require(value >= 0, \\\"SafeCast: value must be positive\\\");\\n        return uint256(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int248 from int256, reverting on\\n     * overflow (when the input is less than smallest int248 or\\n     * greater than largest int248).\\n     *\\n     * Counterpart to Solidity's `int248` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 248 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt248(int256 value) internal pure returns (int248 downcasted) {\\n        downcasted = int248(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 248 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int240 from int256, reverting on\\n     * overflow (when the input is less than smallest int240 or\\n     * greater than largest int240).\\n     *\\n     * Counterpart to Solidity's `int240` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 240 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt240(int256 value) internal pure returns (int240 downcasted) {\\n        downcasted = int240(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 240 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int232 from int256, reverting on\\n     * overflow (when the input is less than smallest int232 or\\n     * greater than largest int232).\\n     *\\n     * Counterpart to Solidity's `int232` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 232 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt232(int256 value) internal pure returns (int232 downcasted) {\\n        downcasted = int232(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 232 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int224 from int256, reverting on\\n     * overflow (when the input is less than smallest int224 or\\n     * greater than largest int224).\\n     *\\n     * Counterpart to Solidity's `int224` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 224 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt224(int256 value) internal pure returns (int224 downcasted) {\\n        downcasted = int224(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 224 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int216 from int256, reverting on\\n     * overflow (when the input is less than smallest int216 or\\n     * greater than largest int216).\\n     *\\n     * Counterpart to Solidity's `int216` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 216 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt216(int256 value) internal pure returns (int216 downcasted) {\\n        downcasted = int216(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 216 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int208 from int256, reverting on\\n     * overflow (when the input is less than smallest int208 or\\n     * greater than largest int208).\\n     *\\n     * Counterpart to Solidity's `int208` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 208 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt208(int256 value) internal pure returns (int208 downcasted) {\\n        downcasted = int208(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 208 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int200 from int256, reverting on\\n     * overflow (when the input is less than smallest int200 or\\n     * greater than largest int200).\\n     *\\n     * Counterpart to Solidity's `int200` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 200 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt200(int256 value) internal pure returns (int200 downcasted) {\\n        downcasted = int200(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 200 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int192 from int256, reverting on\\n     * overflow (when the input is less than smallest int192 or\\n     * greater than largest int192).\\n     *\\n     * Counterpart to Solidity's `int192` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 192 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt192(int256 value) internal pure returns (int192 downcasted) {\\n        downcasted = int192(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 192 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int184 from int256, reverting on\\n     * overflow (when the input is less than smallest int184 or\\n     * greater than largest int184).\\n     *\\n     * Counterpart to Solidity's `int184` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 184 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt184(int256 value) internal pure returns (int184 downcasted) {\\n        downcasted = int184(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 184 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int176 from int256, reverting on\\n     * overflow (when the input is less than smallest int176 or\\n     * greater than largest int176).\\n     *\\n     * Counterpart to Solidity's `int176` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 176 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt176(int256 value) internal pure returns (int176 downcasted) {\\n        downcasted = int176(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 176 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int168 from int256, reverting on\\n     * overflow (when the input is less than smallest int168 or\\n     * greater than largest int168).\\n     *\\n     * Counterpart to Solidity's `int168` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 168 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt168(int256 value) internal pure returns (int168 downcasted) {\\n        downcasted = int168(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 168 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int160 from int256, reverting on\\n     * overflow (when the input is less than smallest int160 or\\n     * greater than largest int160).\\n     *\\n     * Counterpart to Solidity's `int160` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 160 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt160(int256 value) internal pure returns (int160 downcasted) {\\n        downcasted = int160(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 160 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int152 from int256, reverting on\\n     * overflow (when the input is less than smallest int152 or\\n     * greater than largest int152).\\n     *\\n     * Counterpart to Solidity's `int152` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 152 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt152(int256 value) internal pure returns (int152 downcasted) {\\n        downcasted = int152(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 152 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int144 from int256, reverting on\\n     * overflow (when the input is less than smallest int144 or\\n     * greater than largest int144).\\n     *\\n     * Counterpart to Solidity's `int144` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 144 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt144(int256 value) internal pure returns (int144 downcasted) {\\n        downcasted = int144(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 144 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int136 from int256, reverting on\\n     * overflow (when the input is less than smallest int136 or\\n     * greater than largest int136).\\n     *\\n     * Counterpart to Solidity's `int136` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 136 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt136(int256 value) internal pure returns (int136 downcasted) {\\n        downcasted = int136(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 136 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int128 from int256, reverting on\\n     * overflow (when the input is less than smallest int128 or\\n     * greater than largest int128).\\n     *\\n     * Counterpart to Solidity's `int128` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 128 bits\\n     *\\n     * _Available since v3.1._\\n     */\\n    function toInt128(int256 value) internal pure returns (int128 downcasted) {\\n        downcasted = int128(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 128 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int120 from int256, reverting on\\n     * overflow (when the input is less than smallest int120 or\\n     * greater than largest int120).\\n     *\\n     * Counterpart to Solidity's `int120` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 120 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt120(int256 value) internal pure returns (int120 downcasted) {\\n        downcasted = int120(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 120 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int112 from int256, reverting on\\n     * overflow (when the input is less than smallest int112 or\\n     * greater than largest int112).\\n     *\\n     * Counterpart to Solidity's `int112` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 112 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt112(int256 value) internal pure returns (int112 downcasted) {\\n        downcasted = int112(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 112 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int104 from int256, reverting on\\n     * overflow (when the input is less than smallest int104 or\\n     * greater than largest int104).\\n     *\\n     * Counterpart to Solidity's `int104` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 104 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt104(int256 value) internal pure returns (int104 downcasted) {\\n        downcasted = int104(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 104 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int96 from int256, reverting on\\n     * overflow (when the input is less than smallest int96 or\\n     * greater than largest int96).\\n     *\\n     * Counterpart to Solidity's `int96` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 96 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt96(int256 value) internal pure returns (int96 downcasted) {\\n        downcasted = int96(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 96 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int88 from int256, reverting on\\n     * overflow (when the input is less than smallest int88 or\\n     * greater than largest int88).\\n     *\\n     * Counterpart to Solidity's `int88` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 88 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt88(int256 value) internal pure returns (int88 downcasted) {\\n        downcasted = int88(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 88 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int80 from int256, reverting on\\n     * overflow (when the input is less than smallest int80 or\\n     * greater than largest int80).\\n     *\\n     * Counterpart to Solidity's `int80` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 80 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt80(int256 value) internal pure returns (int80 downcasted) {\\n        downcasted = int80(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 80 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int72 from int256, reverting on\\n     * overflow (when the input is less than smallest int72 or\\n     * greater than largest int72).\\n     *\\n     * Counterpart to Solidity's `int72` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 72 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt72(int256 value) internal pure returns (int72 downcasted) {\\n        downcasted = int72(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 72 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int64 from int256, reverting on\\n     * overflow (when the input is less than smallest int64 or\\n     * greater than largest int64).\\n     *\\n     * Counterpart to Solidity's `int64` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 64 bits\\n     *\\n     * _Available since v3.1._\\n     */\\n    function toInt64(int256 value) internal pure returns (int64 downcasted) {\\n        downcasted = int64(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 64 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int56 from int256, reverting on\\n     * overflow (when the input is less than smallest int56 or\\n     * greater than largest int56).\\n     *\\n     * Counterpart to Solidity's `int56` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 56 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt56(int256 value) internal pure returns (int56 downcasted) {\\n        downcasted = int56(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 56 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int48 from int256, reverting on\\n     * overflow (when the input is less than smallest int48 or\\n     * greater than largest int48).\\n     *\\n     * Counterpart to Solidity's `int48` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 48 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt48(int256 value) internal pure returns (int48 downcasted) {\\n        downcasted = int48(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 48 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int40 from int256, reverting on\\n     * overflow (when the input is less than smallest int40 or\\n     * greater than largest int40).\\n     *\\n     * Counterpart to Solidity's `int40` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 40 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt40(int256 value) internal pure returns (int40 downcasted) {\\n        downcasted = int40(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 40 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int32 from int256, reverting on\\n     * overflow (when the input is less than smallest int32 or\\n     * greater than largest int32).\\n     *\\n     * Counterpart to Solidity's `int32` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 32 bits\\n     *\\n     * _Available since v3.1._\\n     */\\n    function toInt32(int256 value) internal pure returns (int32 downcasted) {\\n        downcasted = int32(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 32 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int24 from int256, reverting on\\n     * overflow (when the input is less than smallest int24 or\\n     * greater than largest int24).\\n     *\\n     * Counterpart to Solidity's `int24` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 24 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt24(int256 value) internal pure returns (int24 downcasted) {\\n        downcasted = int24(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 24 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int16 from int256, reverting on\\n     * overflow (when the input is less than smallest int16 or\\n     * greater than largest int16).\\n     *\\n     * Counterpart to Solidity's `int16` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 16 bits\\n     *\\n     * _Available since v3.1._\\n     */\\n    function toInt16(int256 value) internal pure returns (int16 downcasted) {\\n        downcasted = int16(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 16 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int8 from int256, reverting on\\n     * overflow (when the input is less than smallest int8 or\\n     * greater than largest int8).\\n     *\\n     * Counterpart to Solidity's `int8` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 8 bits\\n     *\\n     * _Available since v3.1._\\n     */\\n    function toInt8(int256 value) internal pure returns (int8 downcasted) {\\n        downcasted = int8(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 8 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Converts an unsigned uint256 into a signed int256.\\n     *\\n     * Requirements:\\n     *\\n     * - input must be less than or equal to maxInt256.\\n     *\\n     * _Available since v3.0._\\n     */\\n    function toInt256(uint256 value) internal pure returns (int256) {\\n        // Note: Unsafe cast below is okay because `type(int256).max` is guaranteed to be positive\\n        require(value <= uint256(type(int256).max), \\\"SafeCast: value doesn't fit in an int256\\\");\\n        return int256(value);\\n    }\\n}\\n\",\"keccak256\":\"0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/utils/math/SignedMath.sol":{"SignedMath":{"abi":[],"devdoc":{"details":"Standard signed math utilities missing in the Solidity language.","kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200551112fd9f63bb6ca165c984e830a0f576bf353777567e7a573cbcd043d8f0464736f6c63430008190033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SDIV MLOAD GT 0x2F 0xD9 0xF6 EXTCODESIZE 0xB6 0xCA AND TLOAD SWAP9 0x4E DUP4 EXP 0xF JUMPI PUSH12 0xF353777567E7A573CBCD043D DUP16 DIV PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"215:1047:45:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;215:1047:45;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200551112fd9f63bb6ca165c984e830a0f576bf353777567e7a573cbcd043d8f0464736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SDIV MLOAD GT 0x2F 0xD9 0xF6 EXTCODESIZE 0xB6 0xCA AND TLOAD SWAP9 0x4E DUP4 EXP 0xF JUMPI PUSH12 0xF353777567E7A573CBCD043D DUP16 DIV PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"215:1047:45:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"abs(int256)":"infinite","average(int256,int256)":"infinite","max(int256,int256)":"infinite","min(int256,int256)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard signed math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":\"SignedMath\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/SignedMath.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Standard signed math utilities missing in the Solidity language.\\n */\\nlibrary SignedMath {\\n    /**\\n     * @dev Returns the largest of two signed numbers.\\n     */\\n    function max(int256 a, int256 b) internal pure returns (int256) {\\n        return a > b ? a : b;\\n    }\\n\\n    /**\\n     * @dev Returns the smallest of two signed numbers.\\n     */\\n    function min(int256 a, int256 b) internal pure returns (int256) {\\n        return a < b ? a : b;\\n    }\\n\\n    /**\\n     * @dev Returns the average of two signed numbers without overflow.\\n     * The result is rounded towards zero.\\n     */\\n    function average(int256 a, int256 b) internal pure returns (int256) {\\n        // Formula from the book \\\"Hacker's Delight\\\"\\n        int256 x = (a & b) + ((a ^ b) >> 1);\\n        return x + (int256(uint256(x) >> 255) & (a ^ b));\\n    }\\n\\n    /**\\n     * @dev Returns the absolute unsigned value of a signed value.\\n     */\\n    function abs(int256 n) internal pure returns (uint256) {\\n        unchecked {\\n            // must be unchecked in order to support `n = type(int256).min`\\n            return uint256(n >= 0 ? n : -n);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@venusprotocol/isolated-pools/contracts/InterestRateModel.sol":{"InterestRateModel":{"abi":[{"inputs":[{"internalType":"uint256","name":"cash","type":"uint256"},{"internalType":"uint256","name":"borrows","type":"uint256"},{"internalType":"uint256","name":"reserves","type":"uint256"},{"internalType":"uint256","name":"badDebt","type":"uint256"}],"name":"getBorrowRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"cash","type":"uint256"},{"internalType":"uint256","name":"borrows","type":"uint256"},{"internalType":"uint256","name":"reserves","type":"uint256"},{"internalType":"uint256","name":"reserveFactorMantissa","type":"uint256"},{"internalType":"uint256","name":"badDebt","type":"uint256"}],"name":"getSupplyRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isInterestRateModel","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"}],"devdoc":{"author":"Compound","kind":"dev","methods":{"getBorrowRate(uint256,uint256,uint256,uint256)":{"params":{"badDebt":"The amount of badDebt in the market","borrows":"The total amount of borrows the market has outstanding","cash":"The total amount of cash the market has","reserves":"The total amount of reserves the market has"},"returns":{"_0":"The borrow rate percentage per slot (block or second) as a mantissa (scaled by EXP_SCALE)"}},"getSupplyRate(uint256,uint256,uint256,uint256,uint256)":{"params":{"badDebt":"The amount of badDebt in the market","borrows":"The total amount of borrows the market has outstanding","cash":"The total amount of cash the market has","reserveFactorMantissa":"The current reserve factor the market has","reserves":"The total amount of reserves the market has"},"returns":{"_0":"The supply rate percentage per slot (block or second) as a mantissa (scaled by EXP_SCALE)"}},"isInterestRateModel()":{"returns":{"_0":"Always true"}}},"title":"Compound's InterestRateModel Interface","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"getBorrowRate(uint256,uint256,uint256,uint256)":"073b8a74","getSupplyRate(uint256,uint256,uint256,uint256,uint256)":"0cde8d1c","isInterestRateModel()":"2191f92a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"cash\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrows\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserves\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"badDebt\",\"type\":\"uint256\"}],\"name\":\"getBorrowRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"cash\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrows\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserves\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveFactorMantissa\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"badDebt\",\"type\":\"uint256\"}],\"name\":\"getSupplyRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isInterestRateModel\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Compound\",\"kind\":\"dev\",\"methods\":{\"getBorrowRate(uint256,uint256,uint256,uint256)\":{\"params\":{\"badDebt\":\"The amount of badDebt in the market\",\"borrows\":\"The total amount of borrows the market has outstanding\",\"cash\":\"The total amount of cash the market has\",\"reserves\":\"The total amount of reserves the market has\"},\"returns\":{\"_0\":\"The borrow rate percentage per slot (block or second) as a mantissa (scaled by EXP_SCALE)\"}},\"getSupplyRate(uint256,uint256,uint256,uint256,uint256)\":{\"params\":{\"badDebt\":\"The amount of badDebt in the market\",\"borrows\":\"The total amount of borrows the market has outstanding\",\"cash\":\"The total amount of cash the market has\",\"reserveFactorMantissa\":\"The current reserve factor the market has\",\"reserves\":\"The total amount of reserves the market has\"},\"returns\":{\"_0\":\"The supply rate percentage per slot (block or second) as a mantissa (scaled by EXP_SCALE)\"}},\"isInterestRateModel()\":{\"returns\":{\"_0\":\"Always true\"}}},\"title\":\"Compound's InterestRateModel Interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getBorrowRate(uint256,uint256,uint256,uint256)\":{\"notice\":\"Calculates the current borrow interest rate per slot (block or second)\"},\"getSupplyRate(uint256,uint256,uint256,uint256,uint256)\":{\"notice\":\"Calculates the current supply interest rate per slot (block or second)\"},\"isInterestRateModel()\":{\"notice\":\"Indicator that this is an InterestRateModel contract (for inspection)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@venusprotocol/isolated-pools/contracts/InterestRateModel.sol\":\"InterestRateModel\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@venusprotocol/isolated-pools/contracts/InterestRateModel.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\n/**\\n * @title Compound's InterestRateModel Interface\\n * @author Compound\\n */\\nabstract contract InterestRateModel {\\n    /**\\n     * @notice Calculates the current borrow interest rate per slot (block or second)\\n     * @param cash The total amount of cash the market has\\n     * @param borrows The total amount of borrows the market has outstanding\\n     * @param reserves The total amount of reserves the market has\\n     * @param badDebt The amount of badDebt in the market\\n     * @return The borrow rate percentage per slot (block or second) as a mantissa (scaled by EXP_SCALE)\\n     */\\n    function getBorrowRate(\\n        uint256 cash,\\n        uint256 borrows,\\n        uint256 reserves,\\n        uint256 badDebt\\n    ) external view virtual returns (uint256);\\n\\n    /**\\n     * @notice Calculates the current supply interest rate per slot (block or second)\\n     * @param cash The total amount of cash the market has\\n     * @param borrows The total amount of borrows the market has outstanding\\n     * @param reserves The total amount of reserves the market has\\n     * @param reserveFactorMantissa The current reserve factor the market has\\n     * @param badDebt The amount of badDebt in the market\\n     * @return The supply rate percentage per slot (block or second) as a mantissa (scaled by EXP_SCALE)\\n     */\\n    function getSupplyRate(\\n        uint256 cash,\\n        uint256 borrows,\\n        uint256 reserves,\\n        uint256 reserveFactorMantissa,\\n        uint256 badDebt\\n    ) external view virtual returns (uint256);\\n\\n    /**\\n     * @notice Indicator that this is an InterestRateModel contract (for inspection)\\n     * @return Always true\\n     */\\n    function isInterestRateModel() external pure virtual returns (bool) {\\n        return true;\\n    }\\n}\\n\",\"keccak256\":\"0xc4fda1ab75ebe4b187b707c4f10c58780f343cf343c537f641dc75d3cd28ab51\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{"getBorrowRate(uint256,uint256,uint256,uint256)":{"notice":"Calculates the current borrow interest rate per slot (block or second)"},"getSupplyRate(uint256,uint256,uint256,uint256,uint256)":{"notice":"Calculates the current supply interest rate per slot (block or second)"},"isInterestRateModel()":{"notice":"Indicator that this is an InterestRateModel contract (for inspection)"}},"version":1}}},"@venusprotocol/venus-protocol/contracts/InterestRateModels/InterestRateModelV8.sol":{"InterestRateModelV8":{"abi":[{"inputs":[{"internalType":"uint256","name":"cash","type":"uint256"},{"internalType":"uint256","name":"borrows","type":"uint256"},{"internalType":"uint256","name":"reserves","type":"uint256"}],"name":"getBorrowRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"cash","type":"uint256"},{"internalType":"uint256","name":"borrows","type":"uint256"},{"internalType":"uint256","name":"reserves","type":"uint256"},{"internalType":"uint256","name":"reserveFactorMantissa","type":"uint256"}],"name":"getSupplyRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isInterestRateModel","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"devdoc":{"author":"Venus","kind":"dev","methods":{"getBorrowRate(uint256,uint256,uint256)":{"params":{"borrows":"The total amount of borrows the market has outstanding","cash":"The total amount of cash the market has","reserves":"The total amnount of reserves the market has"},"returns":{"_0":"The borrow rate per block (as a percentage, and scaled by 1e18)"}},"getSupplyRate(uint256,uint256,uint256,uint256)":{"params":{"borrows":"The total amount of borrows the market has outstanding","cash":"The total amount of cash the market has","reserveFactorMantissa":"The current reserve factor the market has","reserves":"The total amnount of reserves the market has"},"returns":{"_0":"The supply rate per block (as a percentage, and scaled by 1e18)"}}},"title":"Venus's InterestRateModelV8 Interface","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"getBorrowRate(uint256,uint256,uint256)":"15f24053","getSupplyRate(uint256,uint256,uint256,uint256)":"b8168816","isInterestRateModel()":"2191f92a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"cash\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrows\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserves\",\"type\":\"uint256\"}],\"name\":\"getBorrowRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"cash\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrows\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserves\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveFactorMantissa\",\"type\":\"uint256\"}],\"name\":\"getSupplyRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isInterestRateModel\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"kind\":\"dev\",\"methods\":{\"getBorrowRate(uint256,uint256,uint256)\":{\"params\":{\"borrows\":\"The total amount of borrows the market has outstanding\",\"cash\":\"The total amount of cash the market has\",\"reserves\":\"The total amnount of reserves the market has\"},\"returns\":{\"_0\":\"The borrow rate per block (as a percentage, and scaled by 1e18)\"}},\"getSupplyRate(uint256,uint256,uint256,uint256)\":{\"params\":{\"borrows\":\"The total amount of borrows the market has outstanding\",\"cash\":\"The total amount of cash the market has\",\"reserveFactorMantissa\":\"The current reserve factor the market has\",\"reserves\":\"The total amnount of reserves the market has\"},\"returns\":{\"_0\":\"The supply rate per block (as a percentage, and scaled by 1e18)\"}}},\"title\":\"Venus's InterestRateModelV8 Interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getBorrowRate(uint256,uint256,uint256)\":{\"notice\":\"Calculates the current borrow interest rate per block\"},\"getSupplyRate(uint256,uint256,uint256,uint256)\":{\"notice\":\"Calculates the current supply interest rate per block\"},\"isInterestRateModel()\":{\"notice\":\"Indicator that this is an InterestRateModel contract (for inspection)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@venusprotocol/venus-protocol/contracts/InterestRateModels/InterestRateModelV8.sol\":\"InterestRateModelV8\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@venusprotocol/venus-protocol/contracts/InterestRateModels/InterestRateModelV8.sol\":{\"content\":\"pragma solidity 0.8.25;\\n\\n/**\\n * @title Venus's InterestRateModelV8 Interface\\n * @author Venus\\n */\\nabstract contract InterestRateModelV8 {\\n    /// @notice Indicator that this is an InterestRateModel contract (for inspection)\\n    bool public constant isInterestRateModel = true;\\n\\n    /**\\n     * @notice Calculates the current borrow interest rate per block\\n     * @param cash The total amount of cash the market has\\n     * @param borrows The total amount of borrows the market has outstanding\\n     * @param reserves The total amnount of reserves the market has\\n     * @return The borrow rate per block (as a percentage, and scaled by 1e18)\\n     */\\n    function getBorrowRate(uint256 cash, uint256 borrows, uint256 reserves) external view virtual returns (uint256);\\n\\n    /**\\n     * @notice Calculates the current supply interest rate per block\\n     * @param cash The total amount of cash the market has\\n     * @param borrows The total amount of borrows the market has outstanding\\n     * @param reserves The total amnount of reserves the market has\\n     * @param reserveFactorMantissa The current reserve factor the market has\\n     * @return The supply rate per block (as a percentage, and scaled by 1e18)\\n     */\\n    function getSupplyRate(\\n        uint256 cash,\\n        uint256 borrows,\\n        uint256 reserves,\\n        uint256 reserveFactorMantissa\\n    ) external view virtual returns (uint256);\\n}\\n\",\"keccak256\":\"0x9b71896f66909fb3fe829c413594121f0e165d8508e8a6fa29a6938ddcfbb61f\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{"getBorrowRate(uint256,uint256,uint256)":{"notice":"Calculates the current borrow interest rate per block"},"getSupplyRate(uint256,uint256,uint256,uint256)":{"notice":"Calculates the current supply interest rate per block"},"isInterestRateModel()":{"notice":"Indicator that this is an InterestRateModel contract (for inspection)"}},"version":1}}},"contracts/Cross-chain/BaseOmnichainControllerDest.sol":{"BaseOmnichainControllerDest":{"abi":[{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"_nonce","type":"uint64"},{"indexed":false,"internalType":"bytes","name":"_payload","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"_reason","type":"bytes"}],"name":"MessageFailed","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":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"_nonce","type":"uint64"},{"indexed":false,"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"name":"RetryMessageSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldMaxLimit","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newMaxLimit","type":"uint256"}],"name":"SetMaxDailyReceiveLimit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"_type","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"_minDstGas","type":"uint256"}],"name":"SetMinDstGas","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"precrime","type":"address"}],"name":"SetPrecrime","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_path","type":"bytes"}],"name":"SetTrustedRemote","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_remoteAddress","type":"bytes"}],"name":"SetTrustedRemoteAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"DEFAULT_PAYLOAD_SIZE_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"uint64","name":"","type":"uint64"}],"name":"failedMessages","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"forceResumeReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"_configType","type":"uint256"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"}],"name":"getTrustedRemoteAddress","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"isTrustedRemote","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"last24HourCommandsReceived","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"last24HourReceiveWindowStart","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lzEndpoint","outputs":[{"internalType":"contract ILayerZeroEndpoint","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"lzReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxDailyReceiveLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"}],"name":"minDstGasLookup","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"nonblockingLzReceive","outputs":[],"stateMutability":"nonpayable","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":"uint16","name":"","type":"uint16"}],"name":"payloadSizeLimitLookup","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"precrime","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"retryMessage","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"uint256","name":"_configType","type":"uint256"},{"internalType":"bytes","name":"_config","type":"bytes"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"limit_","type":"uint256"}],"name":"setMaxDailyReceiveLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"uint16","name":"_packetType","type":"uint16"},{"internalType":"uint256","name":"_minGas","type":"uint256"}],"name":"setMinDstGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"uint256","name":"_size","type":"uint256"}],"name":"setPayloadSizeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_precrime","type":"address"}],"name":"setPrecrime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setReceiveVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setSendVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"}],"name":"setTrustedRemote","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"internalType":"bytes","name":"_remoteAddress","type":"bytes"}],"name":"setTrustedRemoteAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"trustedRemoteLookup","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Venus","custom:security-contact":"https://github.com/VenusProtocol/governance-contracts#discussion","details":"This contract is the base for the Omnichain controller destination contract It provides functionality related to daily command limits and pausability","events":{"Paused(address)":{"details":"Emitted when the pause is triggered by `account`."},"Unpaused(address)":{"details":"Emitted when the pause is lifted by `account`."}},"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"pause()":{"custom:access":"Only owner"},"paused()":{"details":"Returns true if the contract is paused, and false otherwise."},"setMaxDailyReceiveLimit(uint256)":{"custom:access":"Only Owner","custom:event":"Emits SetMaxDailyReceiveLimit with old and new limit","params":{"limit_":"Number of commands"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"unpause()":{"custom:access":"Only owner"}},"title":"BaseOmnichainControllerDest","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"DEFAULT_PAYLOAD_SIZE_LIMIT()":"c4461834","failedMessages(uint16,bytes,uint64)":"5b8c41e6","forceResumeReceive(uint16,bytes)":"42d65a8d","getConfig(uint16,uint16,address,uint256)":"f5ecbdbc","getTrustedRemoteAddress(uint16)":"9f38369a","isTrustedRemote(uint16,bytes)":"3d8b38f6","last24HourCommandsReceived()":"70f6ad9a","last24HourReceiveWindowStart()":"876919e8","lzEndpoint()":"b353aaa7","lzReceive(uint16,bytes,uint64,bytes)":"001d3567","maxDailyReceiveLimit()":"0435bb56","minDstGasLookup(uint16,uint16)":"8cfd8f5c","nonblockingLzReceive(uint16,bytes,uint64,bytes)":"66ad5c8a","owner()":"8da5cb5b","pause()":"8456cb59","paused()":"5c975abb","payloadSizeLimitLookup(uint16)":"3f1f4fa4","precrime()":"950c8a74","renounceOwnership()":"715018a6","retryMessage(uint16,bytes,uint64,bytes)":"d1deba1f","setConfig(uint16,uint16,uint256,bytes)":"cbed8b9c","setMaxDailyReceiveLimit(uint256)":"9493ffad","setMinDstGas(uint16,uint16,uint256)":"df2a5b3b","setPayloadSizeLimit(uint16,uint256)":"0df37483","setPrecrime(address)":"baf3292d","setReceiveVersion(uint16)":"10ddb137","setSendVersion(uint16)":"07e0db17","setTrustedRemote(uint16,bytes)":"eb8d72b7","setTrustedRemoteAddress(uint16,bytes)":"a6c3d165","transferOwnership(address)":"f2fde38b","trustedRemoteLookup(uint16)":"7533d788","unpause()":"3f4ba83a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_reason\",\"type\":\"bytes\"}],\"name\":\"MessageFailed\",\"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\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"RetryMessageSuccess\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldMaxLimit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newMaxLimit\",\"type\":\"uint256\"}],\"name\":\"SetMaxDailyReceiveLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_type\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_minDstGas\",\"type\":\"uint256\"}],\"name\":\"SetMinDstGas\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"precrime\",\"type\":\"address\"}],\"name\":\"SetPrecrime\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemote\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_remoteAddress\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemoteAddress\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_PAYLOAD_SIZE_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"failedMessages\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"forceResumeReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"}],\"name\":\"getTrustedRemoteAddress\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"isTrustedRemote\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"last24HourCommandsReceived\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"last24HourReceiveWindowStart\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lzEndpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpoint\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxDailyReceiveLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"minDstGasLookup\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"nonblockingLzReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"payloadSizeLimitLookup\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"precrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"retryMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_config\",\"type\":\"bytes\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"setMaxDailyReceiveLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_packetType\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_minGas\",\"type\":\"uint256\"}],\"name\":\"setMinDstGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_size\",\"type\":\"uint256\"}],\"name\":\"setPayloadSizeLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_precrime\",\"type\":\"address\"}],\"name\":\"setPrecrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setReceiveVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setSendVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_remoteAddress\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemoteAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"trustedRemoteLookup\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"custom:security-contact\":\"https://github.com/VenusProtocol/governance-contracts#discussion\",\"details\":\"This contract is the base for the Omnichain controller destination contract It provides functionality related to daily command limits and pausability\",\"events\":{\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pause()\":{\"custom:access\":\"Only owner\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"setMaxDailyReceiveLimit(uint256)\":{\"custom:access\":\"Only Owner\",\"custom:event\":\"Emits SetMaxDailyReceiveLimit with old and new limit\",\"params\":{\"limit_\":\"Number of commands\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"unpause()\":{\"custom:access\":\"Only owner\"}},\"title\":\"BaseOmnichainControllerDest\",\"version\":1},\"userdoc\":{\"errors\":{\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}]},\"events\":{\"SetMaxDailyReceiveLimit(uint256,uint256)\":{\"notice\":\"Emitted when the maximum daily limit for receiving command from Binance chain is modified\"}},\"kind\":\"user\",\"methods\":{\"last24HourCommandsReceived()\":{\"notice\":\"Total received commands within the last 24-hour window from Binance chain\"},\"last24HourReceiveWindowStart()\":{\"notice\":\"Timestamp when the last 24-hour window started from Binance chain\"},\"maxDailyReceiveLimit()\":{\"notice\":\"Maximum daily limit for receiving commands from Binance chain\"},\"pause()\":{\"notice\":\"Triggers the paused state of the controller\"},\"renounceOwnership()\":{\"notice\":\"Empty implementation of renounce ownership to avoid any mishappening\"},\"setMaxDailyReceiveLimit(uint256)\":{\"notice\":\"Sets the maximum daily limit for receiving commands\"},\"unpause()\":{\"notice\":\"Triggers the resume state of the controller\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Cross-chain/BaseOmnichainControllerDest.sol\":\"BaseOmnichainControllerDest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/libraries/BytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: Unlicense\\n/*\\n * @title Solidity Bytes Arrays Utils\\n * @author Gon\\u00e7alo S\\u00e1 <goncalo.sa@consensys.net>\\n *\\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\\n *      The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\\n */\\npragma solidity >=0.8.0 <0.9.0;\\n\\nlibrary BytesLib {\\n    function concat(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bytes memory) {\\n        bytes memory tempBytes;\\n\\n        assembly {\\n            // Get a location of some free memory and store it in tempBytes as\\n            // Solidity does for memory variables.\\n            tempBytes := mload(0x40)\\n\\n            // Store the length of the first bytes array at the beginning of\\n            // the memory for tempBytes.\\n            let length := mload(_preBytes)\\n            mstore(tempBytes, length)\\n\\n            // Maintain a memory counter for the current write location in the\\n            // temp bytes array by adding the 32 bytes for the array length to\\n            // the starting location.\\n            let mc := add(tempBytes, 0x20)\\n            // Stop copying when the memory counter reaches the length of the\\n            // first bytes array.\\n            let end := add(mc, length)\\n\\n            for {\\n                // Initialize a copy counter to the start of the _preBytes data,\\n                // 32 bytes into its memory.\\n                let cc := add(_preBytes, 0x20)\\n            } lt(mc, end) {\\n                // Increase both counters by 32 bytes each iteration.\\n                mc := add(mc, 0x20)\\n                cc := add(cc, 0x20)\\n            } {\\n                // Write the _preBytes data into the tempBytes memory 32 bytes\\n                // at a time.\\n                mstore(mc, mload(cc))\\n            }\\n\\n            // Add the length of _postBytes to the current length of tempBytes\\n            // and store it as the new length in the first 32 bytes of the\\n            // tempBytes memory.\\n            length := mload(_postBytes)\\n            mstore(tempBytes, add(length, mload(tempBytes)))\\n\\n            // Move the memory counter back from a multiple of 0x20 to the\\n            // actual end of the _preBytes data.\\n            mc := end\\n            // Stop copying when the memory counter reaches the new combined\\n            // length of the arrays.\\n            end := add(mc, length)\\n\\n            for {\\n                let cc := add(_postBytes, 0x20)\\n            } lt(mc, end) {\\n                mc := add(mc, 0x20)\\n                cc := add(cc, 0x20)\\n            } {\\n                mstore(mc, mload(cc))\\n            }\\n\\n            // Update the free-memory pointer by padding our last write location\\n            // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\\n            // next 32 byte block, then round down to the nearest multiple of\\n            // 32. If the sum of the length of the two arrays is zero then add\\n            // one before rounding down to leave a blank 32 bytes (the length block with 0).\\n            mstore(\\n                0x40,\\n                and(\\n                    add(add(end, iszero(add(length, mload(_preBytes)))), 31),\\n                    not(31) // Round down to the nearest 32 bytes.\\n                )\\n            )\\n        }\\n\\n        return tempBytes;\\n    }\\n\\n    function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\\n        assembly {\\n            // Read the first 32 bytes of _preBytes storage, which is the length\\n            // of the array. (We don't need to use the offset into the slot\\n            // because arrays use the entire slot.)\\n            let fslot := sload(_preBytes.slot)\\n            // Arrays of 31 bytes or less have an even value in their slot,\\n            // while longer arrays have an odd value. The actual length is\\n            // the slot divided by two for odd values, and the lowest order\\n            // byte divided by two for even values.\\n            // If the slot is even, bitwise and the slot with 255 and divide by\\n            // two to get the length. If the slot is odd, bitwise and the slot\\n            // with -1 and divide by two.\\n            let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n            let mlength := mload(_postBytes)\\n            let newlength := add(slength, mlength)\\n            // slength can contain both the length and contents of the array\\n            // if length < 32 bytes so let's prepare for that\\n            // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n            switch add(lt(slength, 32), lt(newlength, 32))\\n            case 2 {\\n                // Since the new array still fits in the slot, we just need to\\n                // update the contents of the slot.\\n                // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\\n                sstore(\\n                    _preBytes.slot,\\n                    // all the modifications to the slot are inside this\\n                    // next block\\n                    add(\\n                        // we can just add to the slot contents because the\\n                        // bytes we want to change are the LSBs\\n                        fslot,\\n                        add(\\n                            mul(\\n                                div(\\n                                    // load the bytes from memory\\n                                    mload(add(_postBytes, 0x20)),\\n                                    // zero all bytes to the right\\n                                    exp(0x100, sub(32, mlength))\\n                                ),\\n                                // and now shift left the number of bytes to\\n                                // leave space for the length in the slot\\n                                exp(0x100, sub(32, newlength))\\n                            ),\\n                            // increase length by the double of the memory\\n                            // bytes length\\n                            mul(mlength, 2)\\n                        )\\n                    )\\n                )\\n            }\\n            case 1 {\\n                // The stored value fits in the slot, but the combined value\\n                // will exceed it.\\n                // get the keccak hash to get the contents of the array\\n                mstore(0x0, _preBytes.slot)\\n                let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n                // save new length\\n                sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n                // The contents of the _postBytes array start 32 bytes into\\n                // the structure. Our first read should obtain the `submod`\\n                // bytes that can fit into the unused space in the last word\\n                // of the stored array. To get this, we read 32 bytes starting\\n                // from `submod`, so the data we read overlaps with the array\\n                // contents by `submod` bytes. Masking the lowest-order\\n                // `submod` bytes allows us to add that value directly to the\\n                // stored value.\\n\\n                let submod := sub(32, slength)\\n                let mc := add(_postBytes, submod)\\n                let end := add(_postBytes, mlength)\\n                let mask := sub(exp(0x100, submod), 1)\\n\\n                sstore(sc, add(and(fslot, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00), and(mload(mc), mask)))\\n\\n                for {\\n                    mc := add(mc, 0x20)\\n                    sc := add(sc, 1)\\n                } lt(mc, end) {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } {\\n                    sstore(sc, mload(mc))\\n                }\\n\\n                mask := exp(0x100, sub(mc, end))\\n\\n                sstore(sc, mul(div(mload(mc), mask), mask))\\n            }\\n            default {\\n                // get the keccak hash to get the contents of the array\\n                mstore(0x0, _preBytes.slot)\\n                // Start copying to the last used word of the stored array.\\n                let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n                // save new length\\n                sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n                // Copy over the first `submod` bytes of the new data as in\\n                // case 1 above.\\n                let slengthmod := mod(slength, 32)\\n                let mlengthmod := mod(mlength, 32)\\n                let submod := sub(32, slengthmod)\\n                let mc := add(_postBytes, submod)\\n                let end := add(_postBytes, mlength)\\n                let mask := sub(exp(0x100, submod), 1)\\n\\n                sstore(sc, add(sload(sc), and(mload(mc), mask)))\\n\\n                for {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } lt(mc, end) {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } {\\n                    sstore(sc, mload(mc))\\n                }\\n\\n                mask := exp(0x100, sub(mc, end))\\n\\n                sstore(sc, mul(div(mload(mc), mask), mask))\\n            }\\n        }\\n    }\\n\\n    function slice(\\n        bytes memory _bytes,\\n        uint _start,\\n        uint _length\\n    ) internal pure returns (bytes memory) {\\n        require(_length + 31 >= _length, \\\"slice_overflow\\\");\\n        require(_bytes.length >= _start + _length, \\\"slice_outOfBounds\\\");\\n\\n        bytes memory tempBytes;\\n\\n        assembly {\\n            switch iszero(_length)\\n            case 0 {\\n                // Get a location of some free memory and store it in tempBytes as\\n                // Solidity does for memory variables.\\n                tempBytes := mload(0x40)\\n\\n                // The first word of the slice result is potentially a partial\\n                // word read from the original array. To read it, we calculate\\n                // the length of that partial word and start copying that many\\n                // bytes into the array. The first word we copy will start with\\n                // data we don't care about, but the last `lengthmod` bytes will\\n                // land at the beginning of the contents of the new array. When\\n                // we're done copying, we overwrite the full first word with\\n                // the actual length of the slice.\\n                let lengthmod := and(_length, 31)\\n\\n                // The multiplication in the next line is necessary\\n                // because when slicing multiples of 32 bytes (lengthmod == 0)\\n                // the following copy loop was copying the origin's length\\n                // and then ending prematurely not copying everything it should.\\n                let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\\n                let end := add(mc, _length)\\n\\n                for {\\n                    // The multiplication in the next line has the same exact purpose\\n                    // as the one above.\\n                    let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\\n                } lt(mc, end) {\\n                    mc := add(mc, 0x20)\\n                    cc := add(cc, 0x20)\\n                } {\\n                    mstore(mc, mload(cc))\\n                }\\n\\n                mstore(tempBytes, _length)\\n\\n                //update free-memory pointer\\n                //allocating the array padded to 32 bytes like the compiler does now\\n                mstore(0x40, and(add(mc, 31), not(31)))\\n            }\\n            //if we want a zero-length slice let's just return a zero-length array\\n            default {\\n                tempBytes := mload(0x40)\\n                //zero out the 32 bytes slice we are about to return\\n                //we need to do it because Solidity does not garbage collect\\n                mstore(tempBytes, 0)\\n\\n                mstore(0x40, add(tempBytes, 0x20))\\n            }\\n        }\\n\\n        return tempBytes;\\n    }\\n\\n    function toAddress(bytes memory _bytes, uint _start) internal pure returns (address) {\\n        require(_bytes.length >= _start + 20, \\\"toAddress_outOfBounds\\\");\\n        address tempAddress;\\n\\n        assembly {\\n            tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\\n        }\\n\\n        return tempAddress;\\n    }\\n\\n    function toUint8(bytes memory _bytes, uint _start) internal pure returns (uint8) {\\n        require(_bytes.length >= _start + 1, \\\"toUint8_outOfBounds\\\");\\n        uint8 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x1), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint16(bytes memory _bytes, uint _start) internal pure returns (uint16) {\\n        require(_bytes.length >= _start + 2, \\\"toUint16_outOfBounds\\\");\\n        uint16 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x2), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint32(bytes memory _bytes, uint _start) internal pure returns (uint32) {\\n        require(_bytes.length >= _start + 4, \\\"toUint32_outOfBounds\\\");\\n        uint32 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x4), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint64(bytes memory _bytes, uint _start) internal pure returns (uint64) {\\n        require(_bytes.length >= _start + 8, \\\"toUint64_outOfBounds\\\");\\n        uint64 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x8), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint96(bytes memory _bytes, uint _start) internal pure returns (uint96) {\\n        require(_bytes.length >= _start + 12, \\\"toUint96_outOfBounds\\\");\\n        uint96 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0xc), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint128(bytes memory _bytes, uint _start) internal pure returns (uint128) {\\n        require(_bytes.length >= _start + 16, \\\"toUint128_outOfBounds\\\");\\n        uint128 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x10), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint256(bytes memory _bytes, uint _start) internal pure returns (uint) {\\n        require(_bytes.length >= _start + 32, \\\"toUint256_outOfBounds\\\");\\n        uint tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x20), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toBytes32(bytes memory _bytes, uint _start) internal pure returns (bytes32) {\\n        require(_bytes.length >= _start + 32, \\\"toBytes32_outOfBounds\\\");\\n        bytes32 tempBytes32;\\n\\n        assembly {\\n            tempBytes32 := mload(add(add(_bytes, 0x20), _start))\\n        }\\n\\n        return tempBytes32;\\n    }\\n\\n    function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\\n        bool success = true;\\n\\n        assembly {\\n            let length := mload(_preBytes)\\n\\n            // if lengths don't match the arrays are not equal\\n            switch eq(length, mload(_postBytes))\\n            case 1 {\\n                // cb is a circuit breaker in the for loop since there's\\n                //  no said feature for inline assembly loops\\n                // cb = 1 - don't breaker\\n                // cb = 0 - break\\n                let cb := 1\\n\\n                let mc := add(_preBytes, 0x20)\\n                let end := add(mc, length)\\n\\n                for {\\n                    let cc := add(_postBytes, 0x20)\\n                    // the next line is the loop condition:\\n                    // while(uint256(mc < end) + cb == 2)\\n                } eq(add(lt(mc, end), cb), 2) {\\n                    mc := add(mc, 0x20)\\n                    cc := add(cc, 0x20)\\n                } {\\n                    // if any of these checks fails then arrays are not equal\\n                    if iszero(eq(mload(mc), mload(cc))) {\\n                        // unsuccess:\\n                        success := 0\\n                        cb := 0\\n                    }\\n                }\\n            }\\n            default {\\n                // unsuccess:\\n                success := 0\\n            }\\n        }\\n\\n        return success;\\n    }\\n\\n    function equalStorage(bytes storage _preBytes, bytes memory _postBytes) internal view returns (bool) {\\n        bool success = true;\\n\\n        assembly {\\n            // we know _preBytes_offset is 0\\n            let fslot := sload(_preBytes.slot)\\n            // Decode the length of the stored array like in concatStorage().\\n            let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n            let mlength := mload(_postBytes)\\n\\n            // if lengths don't match the arrays are not equal\\n            switch eq(slength, mlength)\\n            case 1 {\\n                // slength can contain both the length and contents of the array\\n                // if length < 32 bytes so let's prepare for that\\n                // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n                if iszero(iszero(slength)) {\\n                    switch lt(slength, 32)\\n                    case 1 {\\n                        // blank the last byte which is the length\\n                        fslot := mul(div(fslot, 0x100), 0x100)\\n\\n                        if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\\n                            // unsuccess:\\n                            success := 0\\n                        }\\n                    }\\n                    default {\\n                        // cb is a circuit breaker in the for loop since there's\\n                        //  no said feature for inline assembly loops\\n                        // cb = 1 - don't breaker\\n                        // cb = 0 - break\\n                        let cb := 1\\n\\n                        // get the keccak hash to get the contents of the array\\n                        mstore(0x0, _preBytes.slot)\\n                        let sc := keccak256(0x0, 0x20)\\n\\n                        let mc := add(_postBytes, 0x20)\\n                        let end := add(mc, mlength)\\n\\n                        // the next line is the loop condition:\\n                        // while(uint256(mc < end) + cb == 2)\\n                        for {\\n\\n                        } eq(add(lt(mc, end), cb), 2) {\\n                            sc := add(sc, 1)\\n                            mc := add(mc, 0x20)\\n                        } {\\n                            if iszero(eq(sload(sc), mload(mc))) {\\n                                // unsuccess:\\n                                success := 0\\n                                cb := 0\\n                            }\\n                        }\\n                    }\\n                }\\n            }\\n            default {\\n                // unsuccess:\\n                success := 0\\n            }\\n        }\\n\\n        return success;\\n    }\\n}\\n\",\"keccak256\":\"0x7e64cccdf22a03f513d94960f2145dd801fb5ec88d971de079b5186a9f5e93c4\",\"license\":\"Unlicense\"},\"@layerzerolabs/solidity-examples/contracts/libraries/ExcessivelySafeCall.sol\":{\"content\":\"// SPDX-License-Identifier: MIT OR Apache-2.0\\npragma solidity >=0.7.6;\\n\\nlibrary ExcessivelySafeCall {\\n    uint constant LOW_28_MASK = 0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff;\\n\\n    /// @notice Use when you _really_ really _really_ don't trust the called\\n    /// contract. This prevents the called contract from causing reversion of\\n    /// the caller in as many ways as we can.\\n    /// @dev The main difference between this and a solidity low-level call is\\n    /// that we limit the number of bytes that the callee can cause to be\\n    /// copied to caller memory. This prevents stupid things like malicious\\n    /// contracts returning 10,000,000 bytes causing a local OOG when copying\\n    /// to memory.\\n    /// @param _target The address to call\\n    /// @param _gas The amount of gas to forward to the remote contract\\n    /// @param _maxCopy The maximum number of bytes of returndata to copy\\n    /// to memory.\\n    /// @param _calldata The data to send to the remote contract\\n    /// @return success and returndata, as `.call()`. Returndata is capped to\\n    /// `_maxCopy` bytes.\\n    function excessivelySafeCall(\\n        address _target,\\n        uint _gas,\\n        uint16 _maxCopy,\\n        bytes memory _calldata\\n    ) internal returns (bool, bytes memory) {\\n        // set up for assembly call\\n        uint _toCopy;\\n        bool _success;\\n        bytes memory _returnData = new bytes(_maxCopy);\\n        // dispatch message to recipient\\n        // by assembly calling \\\"handle\\\" function\\n        // we call via assembly to avoid memcopying a very large returndata\\n        // returned by a malicious contract\\n        assembly {\\n            _success := call(\\n                _gas, // gas\\n                _target, // recipient\\n                0, // ether value\\n                add(_calldata, 0x20), // inloc\\n                mload(_calldata), // inlen\\n                0, // outloc\\n                0 // outlen\\n            )\\n            // limit our copy to 256 bytes\\n            _toCopy := returndatasize()\\n            if gt(_toCopy, _maxCopy) {\\n                _toCopy := _maxCopy\\n            }\\n            // Store the length of the copied bytes\\n            mstore(_returnData, _toCopy)\\n            // copy the bytes from returndata[0:_toCopy]\\n            returndatacopy(add(_returnData, 0x20), 0, _toCopy)\\n        }\\n        return (_success, _returnData);\\n    }\\n\\n    /// @notice Use when you _really_ really _really_ don't trust the called\\n    /// contract. This prevents the called contract from causing reversion of\\n    /// the caller in as many ways as we can.\\n    /// @dev The main difference between this and a solidity low-level call is\\n    /// that we limit the number of bytes that the callee can cause to be\\n    /// copied to caller memory. This prevents stupid things like malicious\\n    /// contracts returning 10,000,000 bytes causing a local OOG when copying\\n    /// to memory.\\n    /// @param _target The address to call\\n    /// @param _gas The amount of gas to forward to the remote contract\\n    /// @param _maxCopy The maximum number of bytes of returndata to copy\\n    /// to memory.\\n    /// @param _calldata The data to send to the remote contract\\n    /// @return success and returndata, as `.call()`. Returndata is capped to\\n    /// `_maxCopy` bytes.\\n    function excessivelySafeStaticCall(\\n        address _target,\\n        uint _gas,\\n        uint16 _maxCopy,\\n        bytes memory _calldata\\n    ) internal view returns (bool, bytes memory) {\\n        // set up for assembly call\\n        uint _toCopy;\\n        bool _success;\\n        bytes memory _returnData = new bytes(_maxCopy);\\n        // dispatch message to recipient\\n        // by assembly calling \\\"handle\\\" function\\n        // we call via assembly to avoid memcopying a very large returndata\\n        // returned by a malicious contract\\n        assembly {\\n            _success := staticcall(\\n                _gas, // gas\\n                _target, // recipient\\n                add(_calldata, 0x20), // inloc\\n                mload(_calldata), // inlen\\n                0, // outloc\\n                0 // outlen\\n            )\\n            // limit our copy to 256 bytes\\n            _toCopy := returndatasize()\\n            if gt(_toCopy, _maxCopy) {\\n                _toCopy := _maxCopy\\n            }\\n            // Store the length of the copied bytes\\n            mstore(_returnData, _toCopy)\\n            // copy the bytes from returndata[0:_toCopy]\\n            returndatacopy(add(_returnData, 0x20), 0, _toCopy)\\n        }\\n        return (_success, _returnData);\\n    }\\n\\n    /**\\n     * @notice Swaps function selectors in encoded contract calls\\n     * @dev Allows reuse of encoded calldata for functions with identical\\n     * argument types but different names. It simply swaps out the first 4 bytes\\n     * for the new selector. This function modifies memory in place, and should\\n     * only be used with caution.\\n     * @param _newSelector The new 4-byte selector\\n     * @param _buf The encoded contract args\\n     */\\n    function swapSelector(bytes4 _newSelector, bytes memory _buf) internal pure {\\n        require(_buf.length >= 4);\\n        uint _mask = LOW_28_MASK;\\n        assembly {\\n            // load the first word of\\n            let _word := mload(add(_buf, 0x20))\\n            // mask out the top 4 bytes\\n            // /x\\n            _word := and(_word, _mask)\\n            _word := or(_newSelector, _word)\\n            mstore(add(_buf, 0x20), _word)\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xd4e52af409b5ec80432292d86fb01906785eb78ac31da3bab4565aabcd6e3e56\",\"license\":\"MIT OR Apache-2.0\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport \\\"./interfaces/ILayerZeroReceiver.sol\\\";\\nimport \\\"./interfaces/ILayerZeroUserApplicationConfig.sol\\\";\\nimport \\\"./interfaces/ILayerZeroEndpoint.sol\\\";\\nimport \\\"../libraries/BytesLib.sol\\\";\\n\\n/*\\n * a generic LzReceiver implementation\\n */\\nabstract contract LzApp is Ownable, ILayerZeroReceiver, ILayerZeroUserApplicationConfig {\\n    using BytesLib for bytes;\\n\\n    // ua can not send payload larger than this by default, but it can be changed by the ua owner\\n    uint public constant DEFAULT_PAYLOAD_SIZE_LIMIT = 10000;\\n\\n    ILayerZeroEndpoint public immutable lzEndpoint;\\n    mapping(uint16 => bytes) public trustedRemoteLookup;\\n    mapping(uint16 => mapping(uint16 => uint)) public minDstGasLookup;\\n    mapping(uint16 => uint) public payloadSizeLimitLookup;\\n    address public precrime;\\n\\n    event SetPrecrime(address precrime);\\n    event SetTrustedRemote(uint16 _remoteChainId, bytes _path);\\n    event SetTrustedRemoteAddress(uint16 _remoteChainId, bytes _remoteAddress);\\n    event SetMinDstGas(uint16 _dstChainId, uint16 _type, uint _minDstGas);\\n\\n    constructor(address _endpoint) {\\n        lzEndpoint = ILayerZeroEndpoint(_endpoint);\\n    }\\n\\n    function lzReceive(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) public virtual override {\\n        // lzReceive must be called by the endpoint for security\\n        require(_msgSender() == address(lzEndpoint), \\\"LzApp: invalid endpoint caller\\\");\\n\\n        bytes memory trustedRemote = trustedRemoteLookup[_srcChainId];\\n        // if will still block the message pathway from (srcChainId, srcAddress). should not receive message from untrusted remote.\\n        require(\\n            _srcAddress.length == trustedRemote.length && trustedRemote.length > 0 && keccak256(_srcAddress) == keccak256(trustedRemote),\\n            \\\"LzApp: invalid source sending contract\\\"\\n        );\\n\\n        _blockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n    }\\n\\n    // abstract function - the default behaviour of LayerZero is blocking. See: NonblockingLzApp if you dont need to enforce ordered messaging\\n    function _blockingLzReceive(\\n        uint16 _srcChainId,\\n        bytes memory _srcAddress,\\n        uint64 _nonce,\\n        bytes memory _payload\\n    ) internal virtual;\\n\\n    function _lzSend(\\n        uint16 _dstChainId,\\n        bytes memory _payload,\\n        address payable _refundAddress,\\n        address _zroPaymentAddress,\\n        bytes memory _adapterParams,\\n        uint _nativeFee\\n    ) internal virtual {\\n        bytes memory trustedRemote = trustedRemoteLookup[_dstChainId];\\n        require(trustedRemote.length != 0, \\\"LzApp: destination chain is not a trusted source\\\");\\n        _checkPayloadSize(_dstChainId, _payload.length);\\n        lzEndpoint.send{value: _nativeFee}(_dstChainId, trustedRemote, _payload, _refundAddress, _zroPaymentAddress, _adapterParams);\\n    }\\n\\n    function _checkGasLimit(\\n        uint16 _dstChainId,\\n        uint16 _type,\\n        bytes memory _adapterParams,\\n        uint _extraGas\\n    ) internal view virtual {\\n        uint providedGasLimit = _getGasLimit(_adapterParams);\\n        uint minGasLimit = minDstGasLookup[_dstChainId][_type];\\n        require(minGasLimit > 0, \\\"LzApp: minGasLimit not set\\\");\\n        require(providedGasLimit >= minGasLimit + _extraGas, \\\"LzApp: gas limit is too low\\\");\\n    }\\n\\n    function _getGasLimit(bytes memory _adapterParams) internal pure virtual returns (uint gasLimit) {\\n        require(_adapterParams.length >= 34, \\\"LzApp: invalid adapterParams\\\");\\n        assembly {\\n            gasLimit := mload(add(_adapterParams, 34))\\n        }\\n    }\\n\\n    function _checkPayloadSize(uint16 _dstChainId, uint _payloadSize) internal view virtual {\\n        uint payloadSizeLimit = payloadSizeLimitLookup[_dstChainId];\\n        if (payloadSizeLimit == 0) {\\n            // use default if not set\\n            payloadSizeLimit = DEFAULT_PAYLOAD_SIZE_LIMIT;\\n        }\\n        require(_payloadSize <= payloadSizeLimit, \\\"LzApp: payload size is too large\\\");\\n    }\\n\\n    //---------------------------UserApplication config----------------------------------------\\n    function getConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        address,\\n        uint _configType\\n    ) external view returns (bytes memory) {\\n        return lzEndpoint.getConfig(_version, _chainId, address(this), _configType);\\n    }\\n\\n    // generic config for LayerZero user Application\\n    function setConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        uint _configType,\\n        bytes calldata _config\\n    ) external override onlyOwner {\\n        lzEndpoint.setConfig(_version, _chainId, _configType, _config);\\n    }\\n\\n    function setSendVersion(uint16 _version) external override onlyOwner {\\n        lzEndpoint.setSendVersion(_version);\\n    }\\n\\n    function setReceiveVersion(uint16 _version) external override onlyOwner {\\n        lzEndpoint.setReceiveVersion(_version);\\n    }\\n\\n    function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external override onlyOwner {\\n        lzEndpoint.forceResumeReceive(_srcChainId, _srcAddress);\\n    }\\n\\n    // _path = abi.encodePacked(remoteAddress, localAddress)\\n    // this function set the trusted path for the cross-chain communication\\n    function setTrustedRemote(uint16 _remoteChainId, bytes calldata _path) external onlyOwner {\\n        trustedRemoteLookup[_remoteChainId] = _path;\\n        emit SetTrustedRemote(_remoteChainId, _path);\\n    }\\n\\n    function setTrustedRemoteAddress(uint16 _remoteChainId, bytes calldata _remoteAddress) external onlyOwner {\\n        trustedRemoteLookup[_remoteChainId] = abi.encodePacked(_remoteAddress, address(this));\\n        emit SetTrustedRemoteAddress(_remoteChainId, _remoteAddress);\\n    }\\n\\n    function getTrustedRemoteAddress(uint16 _remoteChainId) external view returns (bytes memory) {\\n        bytes memory path = trustedRemoteLookup[_remoteChainId];\\n        require(path.length != 0, \\\"LzApp: no trusted path record\\\");\\n        return path.slice(0, path.length - 20); // the last 20 bytes should be address(this)\\n    }\\n\\n    function setPrecrime(address _precrime) external onlyOwner {\\n        precrime = _precrime;\\n        emit SetPrecrime(_precrime);\\n    }\\n\\n    function setMinDstGas(\\n        uint16 _dstChainId,\\n        uint16 _packetType,\\n        uint _minGas\\n    ) external onlyOwner {\\n        minDstGasLookup[_dstChainId][_packetType] = _minGas;\\n        emit SetMinDstGas(_dstChainId, _packetType, _minGas);\\n    }\\n\\n    // if the size is 0, it means default size limit\\n    function setPayloadSizeLimit(uint16 _dstChainId, uint _size) external onlyOwner {\\n        payloadSizeLimitLookup[_dstChainId] = _size;\\n    }\\n\\n    //--------------------------- VIEW FUNCTION ----------------------------------------\\n    function isTrustedRemote(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool) {\\n        bytes memory trustedSource = trustedRemoteLookup[_srcChainId];\\n        return keccak256(trustedSource) == keccak256(_srcAddress);\\n    }\\n}\\n\",\"keccak256\":\"0x309c994bdcf69ad63c6789694a28eb72a773e2d9db58fe572ab2b34a475972ce\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./LzApp.sol\\\";\\nimport \\\"../libraries/ExcessivelySafeCall.sol\\\";\\n\\n/*\\n * the default LayerZero messaging behaviour is blocking, i.e. any failed message will block the channel\\n * this abstract class try-catch all fail messages and store locally for future retry. hence, non-blocking\\n * NOTE: if the srcAddress is not configured properly, it will still block the message pathway from (srcChainId, srcAddress)\\n */\\nabstract contract NonblockingLzApp is LzApp {\\n    using ExcessivelySafeCall for address;\\n\\n    constructor(address _endpoint) LzApp(_endpoint) {}\\n\\n    mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32))) public failedMessages;\\n\\n    event MessageFailed(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes _payload, bytes _reason);\\n    event RetryMessageSuccess(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes32 _payloadHash);\\n\\n    // overriding the virtual function in LzReceiver\\n    function _blockingLzReceive(\\n        uint16 _srcChainId,\\n        bytes memory _srcAddress,\\n        uint64 _nonce,\\n        bytes memory _payload\\n    ) internal virtual override {\\n        (bool success, bytes memory reason) = address(this).excessivelySafeCall(\\n            gasleft(),\\n            150,\\n            abi.encodeWithSelector(this.nonblockingLzReceive.selector, _srcChainId, _srcAddress, _nonce, _payload)\\n        );\\n        if (!success) {\\n            _storeFailedMessage(_srcChainId, _srcAddress, _nonce, _payload, reason);\\n        }\\n    }\\n\\n    function _storeFailedMessage(\\n        uint16 _srcChainId,\\n        bytes memory _srcAddress,\\n        uint64 _nonce,\\n        bytes memory _payload,\\n        bytes memory _reason\\n    ) internal virtual {\\n        failedMessages[_srcChainId][_srcAddress][_nonce] = keccak256(_payload);\\n        emit MessageFailed(_srcChainId, _srcAddress, _nonce, _payload, _reason);\\n    }\\n\\n    function nonblockingLzReceive(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) public virtual {\\n        // only internal transaction\\n        require(_msgSender() == address(this), \\\"NonblockingLzApp: caller must be LzApp\\\");\\n        _nonblockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n    }\\n\\n    //@notice override this function\\n    function _nonblockingLzReceive(\\n        uint16 _srcChainId,\\n        bytes memory _srcAddress,\\n        uint64 _nonce,\\n        bytes memory _payload\\n    ) internal virtual;\\n\\n    function retryMessage(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) public payable virtual {\\n        // assert there is message to retry\\n        bytes32 payloadHash = failedMessages[_srcChainId][_srcAddress][_nonce];\\n        require(payloadHash != bytes32(0), \\\"NonblockingLzApp: no stored message\\\");\\n        require(keccak256(_payload) == payloadHash, \\\"NonblockingLzApp: invalid payload\\\");\\n        // clear the stored message\\n        failedMessages[_srcChainId][_srcAddress][_nonce] = bytes32(0);\\n        // execute the message. revert if it fails again\\n        _nonblockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n        emit RetryMessageSuccess(_srcChainId, _srcAddress, _nonce, payloadHash);\\n    }\\n}\\n\",\"keccak256\":\"0xf4bd9e0ecfa4eb18e7305eb66da44c8a4610c3d5afeaf6a3b44c4bf4b7169b40\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroEndpoint.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"./ILayerZeroUserApplicationConfig.sol\\\";\\n\\ninterface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig {\\n    // @notice send a LayerZero message to the specified address at a LayerZero endpoint.\\n    // @param _dstChainId - the destination chain identifier\\n    // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains\\n    // @param _payload - a custom bytes payload to send to the destination contract\\n    // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address\\n    // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction\\n    // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination\\n    function send(\\n        uint16 _dstChainId,\\n        bytes calldata _destination,\\n        bytes calldata _payload,\\n        address payable _refundAddress,\\n        address _zroPaymentAddress,\\n        bytes calldata _adapterParams\\n    ) external payable;\\n\\n    // @notice used by the messaging library to publish verified payload\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source contract (as bytes) at the source chain\\n    // @param _dstAddress - the address on destination chain\\n    // @param _nonce - the unbound message ordering nonce\\n    // @param _gasLimit - the gas limit for external contract execution\\n    // @param _payload - verified payload to send to the destination contract\\n    function receivePayload(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        address _dstAddress,\\n        uint64 _nonce,\\n        uint _gasLimit,\\n        bytes calldata _payload\\n    ) external;\\n\\n    // @notice get the inboundNonce of a lzApp from a source chain which could be EVM or non-EVM chain\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint64);\\n\\n    // @notice get the outboundNonce from this source chain which, consequently, is always an EVM\\n    // @param _srcAddress - the source chain contract address\\n    function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view returns (uint64);\\n\\n    // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery\\n    // @param _dstChainId - the destination chain identifier\\n    // @param _userApplication - the user app address on this EVM chain\\n    // @param _payload - the custom message to send over LayerZero\\n    // @param _payInZRO - if false, user app pays the protocol fee in native token\\n    // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain\\n    function estimateFees(\\n        uint16 _dstChainId,\\n        address _userApplication,\\n        bytes calldata _payload,\\n        bool _payInZRO,\\n        bytes calldata _adapterParam\\n    ) external view returns (uint nativeFee, uint zroFee);\\n\\n    // @notice get this Endpoint's immutable source identifier\\n    function getChainId() external view returns (uint16);\\n\\n    // @notice the interface to retry failed message on this Endpoint destination\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    // @param _payload - the payload to be retried\\n    function retryPayload(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        bytes calldata _payload\\n    ) external;\\n\\n    // @notice query if any STORED payload (message blocking) at the endpoint.\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool);\\n\\n    // @notice query if the _libraryAddress is valid for sending msgs.\\n    // @param _userApplication - the user app address on this EVM chain\\n    function getSendLibraryAddress(address _userApplication) external view returns (address);\\n\\n    // @notice query if the _libraryAddress is valid for receiving msgs.\\n    // @param _userApplication - the user app address on this EVM chain\\n    function getReceiveLibraryAddress(address _userApplication) external view returns (address);\\n\\n    // @notice query if the non-reentrancy guard for send() is on\\n    // @return true if the guard is on. false otherwise\\n    function isSendingPayload() external view returns (bool);\\n\\n    // @notice query if the non-reentrancy guard for receive() is on\\n    // @return true if the guard is on. false otherwise\\n    function isReceivingPayload() external view returns (bool);\\n\\n    // @notice get the configuration of the LayerZero messaging library of the specified version\\n    // @param _version - messaging library version\\n    // @param _chainId - the chainId for the pending config change\\n    // @param _userApplication - the contract address of the user application\\n    // @param _configType - type of configuration. every messaging library has its own convention.\\n    function getConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        address _userApplication,\\n        uint _configType\\n    ) external view returns (bytes memory);\\n\\n    // @notice get the send() LayerZero messaging library version\\n    // @param _userApplication - the contract address of the user application\\n    function getSendVersion(address _userApplication) external view returns (uint16);\\n\\n    // @notice get the lzReceive() LayerZero messaging library version\\n    // @param _userApplication - the contract address of the user application\\n    function getReceiveVersion(address _userApplication) external view returns (uint16);\\n}\\n\",\"keccak256\":\"0xab7fcacc672251c850f00c0abd4100df9afcc4ad70b8d331a2fd4cb07acab9f4\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroReceiver {\\n    // @notice LayerZero endpoint will invoke this function to deliver the message on the destination\\n    // @param _srcChainId - the source endpoint identifier\\n    // @param _srcAddress - the source sending contract address from the source chain\\n    // @param _nonce - the ordered message nonce\\n    // @param _payload - the signed payload is the UA bytes has encoded to be sent\\n    function lzReceive(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) external;\\n}\\n\",\"keccak256\":\"0xac1966c1229bd4dc36b6c69eeb94a537bd9aa2198d7623b9ba7f8f7dbe79bb4c\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroUserApplicationConfig.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroUserApplicationConfig {\\n    // @notice set the configuration of the LayerZero messaging library of the specified version\\n    // @param _version - messaging library version\\n    // @param _chainId - the chainId for the pending config change\\n    // @param _configType - type of configuration. every messaging library has its own convention.\\n    // @param _config - configuration in the bytes. can encode arbitrary content.\\n    function setConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        uint _configType,\\n        bytes calldata _config\\n    ) external;\\n\\n    // @notice set the send() LayerZero messaging library version to _version\\n    // @param _version - new messaging library version\\n    function setSendVersion(uint16 _version) external;\\n\\n    // @notice set the lzReceive() LayerZero messaging library version to _version\\n    // @param _version - new messaging library version\\n    function setReceiveVersion(uint16 _version) external;\\n\\n    // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\\n    // @param _srcChainId - the chainId of the source chain\\n    // @param _srcAddress - the contract address of the source contract at the source chain\\n    function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\\n}\\n\",\"keccak256\":\"0xb4df93aeb0fb46373a4fb728ad2603edc8b9a1577eee8d801768dc115bf96498\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    constructor() {\\n        _transferOwnership(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        _checkOwner();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if the sender is not the owner.\\n     */\\n    function _checkOwner() internal view virtual {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby disabling any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n}\\n\",\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\"},\"@openzeppelin/contracts/security/Pausable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (security/Pausable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which allows children to implement an emergency stop\\n * mechanism that can be triggered by an authorized account.\\n *\\n * This module is used through inheritance. It will make available the\\n * modifiers `whenNotPaused` and `whenPaused`, which can be applied to\\n * the functions of your contract. Note that they will not be pausable by\\n * simply including this module, only once the modifiers are put in place.\\n */\\nabstract contract Pausable is Context {\\n    /**\\n     * @dev Emitted when the pause is triggered by `account`.\\n     */\\n    event Paused(address account);\\n\\n    /**\\n     * @dev Emitted when the pause is lifted by `account`.\\n     */\\n    event Unpaused(address account);\\n\\n    bool private _paused;\\n\\n    /**\\n     * @dev Initializes the contract in unpaused state.\\n     */\\n    constructor() {\\n        _paused = false;\\n    }\\n\\n    /**\\n     * @dev Modifier to make a function callable only when the contract is not paused.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must not be paused.\\n     */\\n    modifier whenNotPaused() {\\n        _requireNotPaused();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Modifier to make a function callable only when the contract is paused.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must be paused.\\n     */\\n    modifier whenPaused() {\\n        _requirePaused();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns true if the contract is paused, and false otherwise.\\n     */\\n    function paused() public view virtual returns (bool) {\\n        return _paused;\\n    }\\n\\n    /**\\n     * @dev Throws if the contract is paused.\\n     */\\n    function _requireNotPaused() internal view virtual {\\n        require(!paused(), \\\"Pausable: paused\\\");\\n    }\\n\\n    /**\\n     * @dev Throws if the contract is not paused.\\n     */\\n    function _requirePaused() internal view virtual {\\n        require(paused(), \\\"Pausable: not paused\\\");\\n    }\\n\\n    /**\\n     * @dev Triggers stopped state.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must not be paused.\\n     */\\n    function _pause() internal virtual whenNotPaused {\\n        _paused = true;\\n        emit Paused(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Returns to normal state.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must be paused.\\n     */\\n    function _unpause() internal virtual whenPaused {\\n        _paused = false;\\n        emit Unpaused(_msgSender());\\n    }\\n}\\n\",\"keccak256\":\"0x0849d93b16c9940beb286a7864ed02724b248b93e0d80ef6355af5ef15c64773\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n\\n    function _contextSuffixLength() internal view virtual returns (uint256) {\\n        return 0;\\n    }\\n}\\n\",\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\"},\"@venusprotocol/solidity-utilities/contracts/validators.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\n/// @notice Thrown if the supplied address is a zero address where it is not allowed\\nerror ZeroAddressNotAllowed();\\n\\n/// @notice Thrown if the supplied value is 0 where it is not allowed\\nerror ZeroValueNotAllowed();\\n\\n/// @notice Checks if the provided address is nonzero, reverts otherwise\\n/// @param address_ Address to check\\n/// @custom:error ZeroAddressNotAllowed is thrown if the provided address is a zero address\\nfunction ensureNonzeroAddress(address address_) pure {\\n    if (address_ == address(0)) {\\n        revert ZeroAddressNotAllowed();\\n    }\\n}\\n\\n/// @notice Checks if the provided value is nonzero, reverts otherwise\\n/// @param value_ Value to check\\n/// @custom:error ZeroValueNotAllowed is thrown if the provided value is 0\\nfunction ensureNonzeroValue(uint256 value_) pure {\\n    if (value_ == 0) {\\n        revert ZeroValueNotAllowed();\\n    }\\n}\\n\",\"keccak256\":\"0xdb88e14d50dd21889ca3329d755673d022c47e8da005b6a545c7f69c2c4b7b86\",\"license\":\"BSD-3-Clause\"},\"contracts/Cross-chain/BaseOmnichainControllerDest.sol\":{\"content\":\"//  SPDX-License-Identifier: BSD-3-Clause\\n\\npragma solidity 0.8.25;\\n\\nimport { NonblockingLzApp } from \\\"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol\\\";\\nimport { Pausable } from \\\"@openzeppelin/contracts/security/Pausable.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\n\\n/**\\n * @title BaseOmnichainControllerDest\\n * @author Venus\\n * @dev This contract is the base for the Omnichain controller destination contract\\n * It provides functionality related to daily command limits and pausability\\n * @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion\\n */\\n\\nabstract contract BaseOmnichainControllerDest is NonblockingLzApp, Pausable {\\n    /**\\n     * @notice Maximum daily limit for receiving commands from Binance chain\\n     */\\n    uint256 public maxDailyReceiveLimit;\\n\\n    /**\\n     * @notice Total received commands within the last 24-hour window from Binance chain\\n     */\\n    uint256 public last24HourCommandsReceived;\\n\\n    /**\\n     * @notice Timestamp when the last 24-hour window started from Binance chain\\n     */\\n    uint256 public last24HourReceiveWindowStart;\\n\\n    /**\\n     * @notice Emitted when the maximum daily limit for receiving command from Binance chain is modified\\n     */\\n    event SetMaxDailyReceiveLimit(uint256 oldMaxLimit, uint256 newMaxLimit);\\n\\n    constructor(address endpoint_) NonblockingLzApp(endpoint_) {\\n        ensureNonzeroAddress(endpoint_);\\n    }\\n\\n    /**\\n     * @notice Sets the maximum daily limit for receiving commands\\n     * @param limit_ Number of commands\\n     * @custom:access Only Owner\\n     * @custom:event Emits SetMaxDailyReceiveLimit with old and new limit\\n     */\\n    function setMaxDailyReceiveLimit(uint256 limit_) external onlyOwner {\\n        emit SetMaxDailyReceiveLimit(maxDailyReceiveLimit, limit_);\\n        maxDailyReceiveLimit = limit_;\\n    }\\n\\n    /**\\n     * @notice Triggers the paused state of the controller\\n     * @custom:access Only owner\\n     */\\n    function pause() external onlyOwner {\\n        _pause();\\n    }\\n\\n    /**\\n     * @notice Triggers the resume state of the controller\\n     * @custom:access Only owner\\n     */\\n    function unpause() external onlyOwner {\\n        _unpause();\\n    }\\n\\n    /**\\n     * @notice Empty implementation of renounce ownership to avoid any mishappening\\n     */\\n    function renounceOwnership() public override {}\\n\\n    /**\\n     * @notice Check eligibility to receive commands\\n     * @param noOfCommands_ Number of commands to be received\\n     */\\n    function _isEligibleToReceive(uint256 noOfCommands_) internal {\\n        uint256 currentBlockTimestamp = block.timestamp;\\n\\n        // Load values for the 24-hour window checks for receiving\\n        uint256 receivedInWindow = last24HourCommandsReceived;\\n\\n        // Check if the time window has changed (more than 24 hours have passed)\\n        if (currentBlockTimestamp - last24HourReceiveWindowStart > 1 days) {\\n            receivedInWindow = noOfCommands_;\\n            last24HourReceiveWindowStart = currentBlockTimestamp;\\n        } else {\\n            receivedInWindow += noOfCommands_;\\n        }\\n\\n        // Revert if the received amount exceeds the daily limit\\n        require(receivedInWindow <= maxDailyReceiveLimit, \\\"Daily Transaction Limit Exceeded\\\");\\n\\n        // Update the received amount for the 24-hour window\\n        last24HourCommandsReceived = receivedInWindow;\\n    }\\n}\\n\",\"keccak256\":\"0x5ccc63f55acd7c37e6e3ce36d034f82173bc8daf257cb859e08238b860cf3723\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":6971,"contract":"contracts/Cross-chain/BaseOmnichainControllerDest.sol:BaseOmnichainControllerDest","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":3351,"contract":"contracts/Cross-chain/BaseOmnichainControllerDest.sol:BaseOmnichainControllerDest","label":"trustedRemoteLookup","offset":0,"slot":"1","type":"t_mapping(t_uint16,t_bytes_storage)"},{"astId":3357,"contract":"contracts/Cross-chain/BaseOmnichainControllerDest.sol:BaseOmnichainControllerDest","label":"minDstGasLookup","offset":0,"slot":"2","type":"t_mapping(t_uint16,t_mapping(t_uint16,t_uint256))"},{"astId":3361,"contract":"contracts/Cross-chain/BaseOmnichainControllerDest.sol:BaseOmnichainControllerDest","label":"payloadSizeLimitLookup","offset":0,"slot":"3","type":"t_mapping(t_uint16,t_uint256)"},{"astId":3363,"contract":"contracts/Cross-chain/BaseOmnichainControllerDest.sol:BaseOmnichainControllerDest","label":"precrime","offset":0,"slot":"4","type":"t_address"},{"astId":3893,"contract":"contracts/Cross-chain/BaseOmnichainControllerDest.sol:BaseOmnichainControllerDest","label":"failedMessages","offset":0,"slot":"5","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32)))"},{"astId":7094,"contract":"contracts/Cross-chain/BaseOmnichainControllerDest.sol:BaseOmnichainControllerDest","label":"_paused","offset":0,"slot":"6","type":"t_bool"},{"astId":11010,"contract":"contracts/Cross-chain/BaseOmnichainControllerDest.sol:BaseOmnichainControllerDest","label":"maxDailyReceiveLimit","offset":0,"slot":"7","type":"t_uint256"},{"astId":11013,"contract":"contracts/Cross-chain/BaseOmnichainControllerDest.sol:BaseOmnichainControllerDest","label":"last24HourCommandsReceived","offset":0,"slot":"8","type":"t_uint256"},{"astId":11016,"contract":"contracts/Cross-chain/BaseOmnichainControllerDest.sol:BaseOmnichainControllerDest","label":"last24HourReceiveWindowStart","offset":0,"slot":"9","type":"t_uint256"}],"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_bytes_memory_ptr":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32))":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => mapping(uint64 => bytes32))","numberOfBytes":"32","value":"t_mapping(t_uint64,t_bytes32)"},"t_mapping(t_uint16,t_bytes_storage)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => bytes)","numberOfBytes":"32","value":"t_bytes_storage"},"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32)))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32)))","numberOfBytes":"32","value":"t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32))"},"t_mapping(t_uint16,t_mapping(t_uint16,t_uint256))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(uint16 => uint256))","numberOfBytes":"32","value":"t_mapping(t_uint16,t_uint256)"},"t_mapping(t_uint16,t_uint256)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint64,t_bytes32)":{"encoding":"mapping","key":"t_uint64","label":"mapping(uint64 => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"}}},"userdoc":{"errors":{"ZeroAddressNotAllowed()":[{"notice":"Thrown if the supplied address is a zero address where it is not allowed"}]},"events":{"SetMaxDailyReceiveLimit(uint256,uint256)":{"notice":"Emitted when the maximum daily limit for receiving command from Binance chain is modified"}},"kind":"user","methods":{"last24HourCommandsReceived()":{"notice":"Total received commands within the last 24-hour window from Binance chain"},"last24HourReceiveWindowStart()":{"notice":"Timestamp when the last 24-hour window started from Binance chain"},"maxDailyReceiveLimit()":{"notice":"Maximum daily limit for receiving commands from Binance chain"},"pause()":{"notice":"Triggers the paused state of the controller"},"renounceOwnership()":{"notice":"Empty implementation of renounce ownership to avoid any mishappening"},"setMaxDailyReceiveLimit(uint256)":{"notice":"Sets the maximum daily limit for receiving commands"},"unpause()":{"notice":"Triggers the resume state of the controller"}},"version":1}}},"contracts/Cross-chain/BaseOmnichainControllerSrc.sol":{"BaseOmnichainControllerSrc":{"abi":[{"inputs":[{"internalType":"address","name":"accessControlManager_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldAccessControlManager","type":"address"},{"indexed":true,"internalType":"address","name":"newAccessControlManager","type":"address"}],"name":"NewAccessControlManager","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":true,"internalType":"uint16","name":"chainId","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"oldMaxLimit","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newMaxLimit","type":"uint256"}],"name":"SetMaxDailyLimit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"accessControlManager","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"chainIdToLast24HourCommandsSent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"chainIdToLast24HourWindowStart","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"chainIdToLastProposalSentTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"chainIdToMaxDailyLimit","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":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"accessControlManager_","type":"address"}],"name":"setAccessControlManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"chainId_","type":"uint16"},{"internalType":"uint256","name":"limit_","type":"uint256"}],"name":"setMaxDailyLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"custom:security-contact":"https://github.com/VenusProtocol/governance-contracts#discussion","details":"This contract is the base for the Omnichain controller source contracts. It provides functionality related to daily command limits and pausability.","events":{"Paused(address)":{"details":"Emitted when the pause is triggered by `account`."},"Unpaused(address)":{"details":"Emitted when the pause is lifted by `account`."}},"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"pause()":{"custom:access":"Controlled by AccessControlManager"},"paused()":{"details":"Returns true if the contract is paused, and false otherwise."},"setAccessControlManager(address)":{"custom:access":"Only owner","custom:event":"Emits NewAccessControlManager with old and new access control manager addresses","params":{"accessControlManager_":"The new address of the Access Control Manager"}},"setMaxDailyLimit(uint16,uint256)":{"custom:access":"Controlled by AccessControlManager","custom:event":"Emits SetMaxDailyLimit with old and new limit and its corresponding chain id","params":{"chainId_":"Destination chain id","limit_":"Number of commands"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"unpause()":{"custom:access":"Controlled by AccessControlManager"}},"title":"BaseOmnichainControllerSrc","version":1},"evm":{"bytecode":{"functionDebugData":{"@_11196":{"entryPoint":null,"id":11196,"parameterSlots":1,"returnSlots":0},"@_6987":{"entryPoint":null,"id":6987,"parameterSlots":0,"returnSlots":0},"@_7103":{"entryPoint":null,"id":7103,"parameterSlots":0,"returnSlots":0},"@_msgSender_8081":{"entryPoint":null,"id":8081,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_7075":{"entryPoint":115,"id":7075,"parameterSlots":1,"returnSlots":0},"@ensureNonzeroAddress_10945":{"entryPoint":195,"id":10945,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":237,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:306:97","nodeType":"YulBlock","src":"0:306:97","statements":[{"nativeSrc":"6:3:97","nodeType":"YulBlock","src":"6:3:97","statements":[]},{"body":{"nativeSrc":"95:209:97","nodeType":"YulBlock","src":"95:209:97","statements":[{"body":{"nativeSrc":"141:16:97","nodeType":"YulBlock","src":"141:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"150:1:97","nodeType":"YulLiteral","src":"150:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"153:1:97","nodeType":"YulLiteral","src":"153:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"143:6:97","nodeType":"YulIdentifier","src":"143:6:97"},"nativeSrc":"143:12:97","nodeType":"YulFunctionCall","src":"143:12:97"},"nativeSrc":"143:12:97","nodeType":"YulExpressionStatement","src":"143:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"116:7:97","nodeType":"YulIdentifier","src":"116:7:97"},{"name":"headStart","nativeSrc":"125:9:97","nodeType":"YulIdentifier","src":"125:9:97"}],"functionName":{"name":"sub","nativeSrc":"112:3:97","nodeType":"YulIdentifier","src":"112:3:97"},"nativeSrc":"112:23:97","nodeType":"YulFunctionCall","src":"112:23:97"},{"kind":"number","nativeSrc":"137:2:97","nodeType":"YulLiteral","src":"137:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"108:3:97","nodeType":"YulIdentifier","src":"108:3:97"},"nativeSrc":"108:32:97","nodeType":"YulFunctionCall","src":"108:32:97"},"nativeSrc":"105:52:97","nodeType":"YulIf","src":"105:52:97"},{"nativeSrc":"166:29:97","nodeType":"YulVariableDeclaration","src":"166:29:97","value":{"arguments":[{"name":"headStart","nativeSrc":"185:9:97","nodeType":"YulIdentifier","src":"185:9:97"}],"functionName":{"name":"mload","nativeSrc":"179:5:97","nodeType":"YulIdentifier","src":"179:5:97"},"nativeSrc":"179:16:97","nodeType":"YulFunctionCall","src":"179:16:97"},"variables":[{"name":"value","nativeSrc":"170:5:97","nodeType":"YulTypedName","src":"170:5:97","type":""}]},{"body":{"nativeSrc":"258:16:97","nodeType":"YulBlock","src":"258:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"267:1:97","nodeType":"YulLiteral","src":"267:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"270:1:97","nodeType":"YulLiteral","src":"270:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"260:6:97","nodeType":"YulIdentifier","src":"260:6:97"},"nativeSrc":"260:12:97","nodeType":"YulFunctionCall","src":"260:12:97"},"nativeSrc":"260:12:97","nodeType":"YulExpressionStatement","src":"260:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"217:5:97","nodeType":"YulIdentifier","src":"217:5:97"},{"arguments":[{"name":"value","nativeSrc":"228:5:97","nodeType":"YulIdentifier","src":"228:5:97"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"243:3:97","nodeType":"YulLiteral","src":"243:3:97","type":"","value":"160"},{"kind":"number","nativeSrc":"248:1:97","nodeType":"YulLiteral","src":"248:1:97","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"239:3:97","nodeType":"YulIdentifier","src":"239:3:97"},"nativeSrc":"239:11:97","nodeType":"YulFunctionCall","src":"239:11:97"},{"kind":"number","nativeSrc":"252:1:97","nodeType":"YulLiteral","src":"252:1:97","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"235:3:97","nodeType":"YulIdentifier","src":"235:3:97"},"nativeSrc":"235:19:97","nodeType":"YulFunctionCall","src":"235:19:97"}],"functionName":{"name":"and","nativeSrc":"224:3:97","nodeType":"YulIdentifier","src":"224:3:97"},"nativeSrc":"224:31:97","nodeType":"YulFunctionCall","src":"224:31:97"}],"functionName":{"name":"eq","nativeSrc":"214:2:97","nodeType":"YulIdentifier","src":"214:2:97"},"nativeSrc":"214:42:97","nodeType":"YulFunctionCall","src":"214:42:97"}],"functionName":{"name":"iszero","nativeSrc":"207:6:97","nodeType":"YulIdentifier","src":"207:6:97"},"nativeSrc":"207:50:97","nodeType":"YulFunctionCall","src":"207:50:97"},"nativeSrc":"204:70:97","nodeType":"YulIf","src":"204:70:97"},{"nativeSrc":"283:15:97","nodeType":"YulAssignment","src":"283:15:97","value":{"name":"value","nativeSrc":"293:5:97","nodeType":"YulIdentifier","src":"293:5:97"},"variableNames":[{"name":"value0","nativeSrc":"283:6:97","nodeType":"YulIdentifier","src":"283:6:97"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nativeSrc":"14:290:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"61:9:97","nodeType":"YulTypedName","src":"61:9:97","type":""},{"name":"dataEnd","nativeSrc":"72:7:97","nodeType":"YulTypedName","src":"72:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"84:6:97","nodeType":"YulTypedName","src":"84:6:97","type":""}],"src":"14:290:97"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n        value0 := value\n    }\n}","id":97,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b50604051610bba380380610bba83398101604081905261002f916100ed565b61003833610073565b6000805460ff60a01b1916905561004e816100c3565b600180546001600160a01b0319166001600160a01b039290921691909117905561011d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381166100ea576040516342bcdf7f60e11b815260040160405180910390fd5b50565b6000602082840312156100ff57600080fd5b81516001600160a01b038116811461011657600080fd5b9392505050565b610a8e8061012c6000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c8063715018a61161008c57806393a61d6c1161006657806393a61d6c146101dc578063b4a0bdf3146101fc578063e0354d7f1461021c578063f2fde38b1461023c57600080fd5b8063715018a6146100f75780638456cb59146101955780638da5cb5b1461019d57600080fd5b80633f4ba83a116100bd5780633f4ba83a1461013f5780634f4ba0f4146101475780635c975abb1461016757600080fd5b80630e32cb86146100e45780631183a3b2146100f95780632488eec81461012c575b600080fd5b6100f76100f2366004610912565b61024f565b005b610119610107366004610966565b60036020526000908152604090205481565b6040519081526020015b60405180910390f35b6100f761013a366004610981565b6102ee565b6100f7610391565b610119610155366004610966565b60026020526000908152604090205481565b60005474010000000000000000000000000000000000000000900460ff166040519015158152602001610123565b6100f76103d9565b60005473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610123565b6101196101ea366004610966565b60046020526000908152604090205481565b6001546101b79073ffffffffffffffffffffffffffffffffffffffff1681565b61011961022a366004610966565b60056020526000908152604090205481565b6100f761024a366004610912565b61041f565b6102576104db565b6102608161055c565b60015460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa090600090a3600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b61032c6040518060400160405280602081526020017f7365744d61784461696c794c696d69742875696e7431362c75696e74323536298152506105a9565b61ffff82166000818152600260209081526040918290205482519081529081018490527f4dd31065e259d5284e44d1f9265710da72eafcf78dc925e3881189fc3b71f693910160405180910390a261ffff909116600090815260026020526040902055565b6103cf6040518060400160405280600981526020017f756e7061757365282900000000000000000000000000000000000000000000008152506105a9565b6103d76106a8565b565b6104176040518060400160405280600781526020017f70617573652829000000000000000000000000000000000000000000000000008152506105a9565b6103d7610725565b6104276104db565b73ffffffffffffffffffffffffffffffffffffffff81166104cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6104d881610794565b50565b60005473ffffffffffffffffffffffffffffffffffffffff1633146103d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104c6565b73ffffffffffffffffffffffffffffffffffffffff81166104d8576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040517f18c5e8ab00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116906318c5e8ab9061060190339085906004016109ab565b602060405180830381865afa15801561061e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106429190610a36565b6104d8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f6163636573732064656e6965640000000000000000000000000000000000000060448201526064016104c6565b6106b0610809565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b61072d61088d565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586106fb3390565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60005474010000000000000000000000000000000000000000900460ff166103d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016104c6565b60005474010000000000000000000000000000000000000000900460ff16156103d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016104c6565b60006020828403121561092457600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461094857600080fd5b9392505050565b803561ffff8116811461096157600080fd5b919050565b60006020828403121561097857600080fd5b6109488261094f565b6000806040838503121561099457600080fd5b61099d8361094f565b946020939093013593505050565b73ffffffffffffffffffffffffffffffffffffffff831681526000602060406020840152835180604085015260005b818110156109f6578581018301518582016060015282016109da565b5060006060828601015260607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f830116850101925050509392505050565b600060208284031215610a4857600080fd5b8151801515811461094857600080fdfea26469706673582212200121b8d6a860d9e73d2f8ba86ee5823f10ffa3fc39e10998a0e07f09368f0ed064736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0xBBA CODESIZE SUB DUP1 PUSH2 0xBBA DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0xED JUMP JUMPDEST PUSH2 0x38 CALLER PUSH2 0x73 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND SWAP1 SSTORE PUSH2 0x4E DUP2 PUSH2 0xC3 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x11D JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xEA JUMPI PUSH1 0x40 MLOAD PUSH4 0x42BCDF7F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xFF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x116 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xA8E DUP1 PUSH2 0x12C PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xDF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x93A61D6C GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x93A61D6C EQ PUSH2 0x1DC JUMPI DUP1 PUSH4 0xB4A0BDF3 EQ PUSH2 0x1FC JUMPI DUP1 PUSH4 0xE0354D7F EQ PUSH2 0x21C JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x23C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x715018A6 EQ PUSH2 0xF7 JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x19D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3F4BA83A GT PUSH2 0xBD JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x13F JUMPI DUP1 PUSH4 0x4F4BA0F4 EQ PUSH2 0x147 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x167 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xE32CB86 EQ PUSH2 0xE4 JUMPI DUP1 PUSH4 0x1183A3B2 EQ PUSH2 0xF9 JUMPI DUP1 PUSH4 0x2488EEC8 EQ PUSH2 0x12C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF7 PUSH2 0xF2 CALLDATASIZE PUSH1 0x4 PUSH2 0x912 JUMP JUMPDEST PUSH2 0x24F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x119 PUSH2 0x107 CALLDATASIZE PUSH1 0x4 PUSH2 0x966 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF7 PUSH2 0x13A CALLDATASIZE PUSH1 0x4 PUSH2 0x981 JUMP JUMPDEST PUSH2 0x2EE JUMP JUMPDEST PUSH2 0xF7 PUSH2 0x391 JUMP JUMPDEST PUSH2 0x119 PUSH2 0x155 CALLDATASIZE PUSH1 0x4 PUSH2 0x966 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x123 JUMP JUMPDEST PUSH2 0xF7 PUSH2 0x3D9 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x123 JUMP JUMPDEST PUSH2 0x119 PUSH2 0x1EA CALLDATASIZE PUSH1 0x4 PUSH2 0x966 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0x1B7 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x119 PUSH2 0x22A CALLDATASIZE PUSH1 0x4 PUSH2 0x966 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0xF7 PUSH2 0x24A CALLDATASIZE PUSH1 0x4 PUSH2 0x912 JUMP JUMPDEST PUSH2 0x41F JUMP JUMPDEST PUSH2 0x257 PUSH2 0x4DB JUMP JUMPDEST PUSH2 0x260 DUP2 PUSH2 0x55C JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND SWAP3 AND SWAP1 PUSH32 0x66FD58E82F7B31A2A5C30E0888F3093EFE4E111B00CD2B0C31FE014601293AA0 SWAP1 PUSH1 0x0 SWAP1 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x32C PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x7365744D61784461696C794C696D69742875696E7431362C75696E7432353629 DUP2 MSTORE POP PUSH2 0x5A9 JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SLOAD DUP3 MLOAD SWAP1 DUP2 MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0x4DD31065E259D5284E44D1F9265710DA72EAFCF78DC925E3881189FC3B71F693 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH2 0xFFFF SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST PUSH2 0x3CF PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x756E706175736528290000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x5A9 JUMP JUMPDEST PUSH2 0x3D7 PUSH2 0x6A8 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x417 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x7 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x7061757365282900000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x5A9 JUMP JUMPDEST PUSH2 0x3D7 PUSH2 0x725 JUMP JUMPDEST PUSH2 0x427 PUSH2 0x4DB JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x4CF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4D8 DUP2 PUSH2 0x794 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x3D7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x4C6 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x4D8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8579BEFE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH32 0x18C5E8AB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x601 SWAP1 CALLER SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0x9AB JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x61E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x642 SWAP2 SWAP1 PUSH2 0xA36 JUMP JUMPDEST PUSH2 0x4D8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6163636573732064656E69656400000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x4C6 JUMP JUMPDEST PUSH2 0x6B0 PUSH2 0x809 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH2 0x72D PUSH2 0x88D JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH21 0x10000000000000000000000000000000000000000 OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x6FB CALLER SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3D7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061757361626C653A206E6F7420706175736564000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x4C6 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x3D7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061757361626C653A2070617573656400000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x4C6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x924 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x948 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x961 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x978 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x948 DUP3 PUSH2 0x94F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x994 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x99D DUP4 PUSH2 0x94F JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 PUSH1 0x40 PUSH1 0x20 DUP5 ADD MSTORE DUP4 MLOAD DUP1 PUSH1 0x40 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x9F6 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x60 ADD MSTORE DUP3 ADD PUSH2 0x9DA JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x60 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x60 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x948 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ADD 0x21 0xB8 0xD6 0xA8 PUSH1 0xD9 0xE7 RETURNDATASIZE 0x2F DUP12 0xA8 PUSH15 0xE5823F10FFA3FC39E10998A0E07F09 CALLDATASIZE DUP16 0xE 0xD0 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"696:5321:50:-:0;;;1956:157;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;936:32:32;734:10:39;936:18:32;:32::i;:::-;1006:5:33;996:15;;-1:-1:-1;;;;996:15:33;;;2009:43:50;2030:21;2009:20;:43::i;:::-;2062:20;:44;;-1:-1:-1;;;;;;2062:44:50;-1:-1:-1;;;;;2062:44:50;;;;;;;;;;696:5321;;2426:187:32;2499:16;2518:6;;-1:-1:-1;;;;;2534:17:32;;;-1:-1:-1;;;;;;2534:17:32;;;;;;2566:40;;2518:6;;;;;;;2566:40;;2499:16;2566:40;2489:124;2426:187;:::o;485:136:47:-;-1:-1:-1;;;;;548:22:47;;544:75;;589:23;;-1:-1:-1;;;589:23:47;;;;;;;;;;;544:75;485:136;:::o;14:290:97:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:97;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:97:o;:::-;696:5321:50;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_checkOwner_7018":{"entryPoint":1243,"id":7018,"parameterSlots":0,"returnSlots":0},"@_ensureAllowed_11380":{"entryPoint":1449,"id":11380,"parameterSlots":1,"returnSlots":0},"@_msgSender_8081":{"entryPoint":null,"id":8081,"parameterSlots":0,"returnSlots":1},"@_pause_7167":{"entryPoint":1829,"id":7167,"parameterSlots":0,"returnSlots":0},"@_requireNotPaused_7140":{"entryPoint":2189,"id":7140,"parameterSlots":0,"returnSlots":0},"@_requirePaused_7151":{"entryPoint":2057,"id":7151,"parameterSlots":0,"returnSlots":0},"@_transferOwnership_7075":{"entryPoint":1940,"id":7075,"parameterSlots":1,"returnSlots":0},"@_unpause_7183":{"entryPoint":1704,"id":7183,"parameterSlots":0,"returnSlots":0},"@accessControlManager_11146":{"entryPoint":null,"id":11146,"parameterSlots":0,"returnSlots":0},"@chainIdToLast24HourCommandsSent_11156":{"entryPoint":null,"id":11156,"parameterSlots":0,"returnSlots":0},"@chainIdToLast24HourWindowStart_11161":{"entryPoint":null,"id":11161,"parameterSlots":0,"returnSlots":0},"@chainIdToLastProposalSentTimestamp_11166":{"entryPoint":null,"id":11166,"parameterSlots":0,"returnSlots":0},"@chainIdToMaxDailyLimit_11151":{"entryPoint":null,"id":11151,"parameterSlots":0,"returnSlots":0},"@ensureNonzeroAddress_10945":{"entryPoint":1372,"id":10945,"parameterSlots":1,"returnSlots":0},"@owner_7004":{"entryPoint":null,"id":7004,"parameterSlots":0,"returnSlots":1},"@pause_11235":{"entryPoint":985,"id":11235,"parameterSlots":0,"returnSlots":0},"@paused_7128":{"entryPoint":null,"id":7128,"parameterSlots":0,"returnSlots":1},"@renounceOwnership_11275":{"entryPoint":null,"id":11275,"parameterSlots":0,"returnSlots":0},"@setAccessControlManager_11269":{"entryPoint":591,"id":11269,"parameterSlots":1,"returnSlots":0},"@setMaxDailyLimit_11223":{"entryPoint":750,"id":11223,"parameterSlots":2,"returnSlots":0},"@transferOwnership_7055":{"entryPoint":1055,"id":7055,"parameterSlots":1,"returnSlots":0},"@unpause_11247":{"entryPoint":913,"id":11247,"parameterSlots":0,"returnSlots":0},"abi_decode_tuple_t_address":{"entryPoint":2322,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":2614,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint16":{"entryPoint":2406,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint16t_uint256":{"entryPoint":2433,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_uint16":{"entryPoint":2383,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2475,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cba8a57ccb1594d7138ca5e2a9216c55d23151b53a95734bafda4b812e3786ff__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:4611:97","nodeType":"YulBlock","src":"0:4611:97","statements":[{"nativeSrc":"6:3:97","nodeType":"YulBlock","src":"6:3:97","statements":[]},{"body":{"nativeSrc":"84:239:97","nodeType":"YulBlock","src":"84:239:97","statements":[{"body":{"nativeSrc":"130:16:97","nodeType":"YulBlock","src":"130:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"139:1:97","nodeType":"YulLiteral","src":"139:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"142:1:97","nodeType":"YulLiteral","src":"142:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"132:6:97","nodeType":"YulIdentifier","src":"132:6:97"},"nativeSrc":"132:12:97","nodeType":"YulFunctionCall","src":"132:12:97"},"nativeSrc":"132:12:97","nodeType":"YulExpressionStatement","src":"132:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"105:7:97","nodeType":"YulIdentifier","src":"105:7:97"},{"name":"headStart","nativeSrc":"114:9:97","nodeType":"YulIdentifier","src":"114:9:97"}],"functionName":{"name":"sub","nativeSrc":"101:3:97","nodeType":"YulIdentifier","src":"101:3:97"},"nativeSrc":"101:23:97","nodeType":"YulFunctionCall","src":"101:23:97"},{"kind":"number","nativeSrc":"126:2:97","nodeType":"YulLiteral","src":"126:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"97:3:97","nodeType":"YulIdentifier","src":"97:3:97"},"nativeSrc":"97:32:97","nodeType":"YulFunctionCall","src":"97:32:97"},"nativeSrc":"94:52:97","nodeType":"YulIf","src":"94:52:97"},{"nativeSrc":"155:36:97","nodeType":"YulVariableDeclaration","src":"155:36:97","value":{"arguments":[{"name":"headStart","nativeSrc":"181:9:97","nodeType":"YulIdentifier","src":"181:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"168:12:97","nodeType":"YulIdentifier","src":"168:12:97"},"nativeSrc":"168:23:97","nodeType":"YulFunctionCall","src":"168:23:97"},"variables":[{"name":"value","nativeSrc":"159:5:97","nodeType":"YulTypedName","src":"159:5:97","type":""}]},{"body":{"nativeSrc":"277:16:97","nodeType":"YulBlock","src":"277:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"286:1:97","nodeType":"YulLiteral","src":"286:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"289:1:97","nodeType":"YulLiteral","src":"289:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"279:6:97","nodeType":"YulIdentifier","src":"279:6:97"},"nativeSrc":"279:12:97","nodeType":"YulFunctionCall","src":"279:12:97"},"nativeSrc":"279:12:97","nodeType":"YulExpressionStatement","src":"279:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"213:5:97","nodeType":"YulIdentifier","src":"213:5:97"},{"arguments":[{"name":"value","nativeSrc":"224:5:97","nodeType":"YulIdentifier","src":"224:5:97"},{"kind":"number","nativeSrc":"231:42:97","nodeType":"YulLiteral","src":"231:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"220:3:97","nodeType":"YulIdentifier","src":"220:3:97"},"nativeSrc":"220:54:97","nodeType":"YulFunctionCall","src":"220:54:97"}],"functionName":{"name":"eq","nativeSrc":"210:2:97","nodeType":"YulIdentifier","src":"210:2:97"},"nativeSrc":"210:65:97","nodeType":"YulFunctionCall","src":"210:65:97"}],"functionName":{"name":"iszero","nativeSrc":"203:6:97","nodeType":"YulIdentifier","src":"203:6:97"},"nativeSrc":"203:73:97","nodeType":"YulFunctionCall","src":"203:73:97"},"nativeSrc":"200:93:97","nodeType":"YulIf","src":"200:93:97"},{"nativeSrc":"302:15:97","nodeType":"YulAssignment","src":"302:15:97","value":{"name":"value","nativeSrc":"312:5:97","nodeType":"YulIdentifier","src":"312:5:97"},"variableNames":[{"name":"value0","nativeSrc":"302:6:97","nodeType":"YulIdentifier","src":"302:6:97"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"14:309:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"50:9:97","nodeType":"YulTypedName","src":"50:9:97","type":""},{"name":"dataEnd","nativeSrc":"61:7:97","nodeType":"YulTypedName","src":"61:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"73:6:97","nodeType":"YulTypedName","src":"73:6:97","type":""}],"src":"14:309:97"},{"body":{"nativeSrc":"376:111:97","nodeType":"YulBlock","src":"376:111:97","statements":[{"nativeSrc":"386:29:97","nodeType":"YulAssignment","src":"386:29:97","value":{"arguments":[{"name":"offset","nativeSrc":"408:6:97","nodeType":"YulIdentifier","src":"408:6:97"}],"functionName":{"name":"calldataload","nativeSrc":"395:12:97","nodeType":"YulIdentifier","src":"395:12:97"},"nativeSrc":"395:20:97","nodeType":"YulFunctionCall","src":"395:20:97"},"variableNames":[{"name":"value","nativeSrc":"386:5:97","nodeType":"YulIdentifier","src":"386:5:97"}]},{"body":{"nativeSrc":"465:16:97","nodeType":"YulBlock","src":"465:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"474:1:97","nodeType":"YulLiteral","src":"474:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"477:1:97","nodeType":"YulLiteral","src":"477:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"467:6:97","nodeType":"YulIdentifier","src":"467:6:97"},"nativeSrc":"467:12:97","nodeType":"YulFunctionCall","src":"467:12:97"},"nativeSrc":"467:12:97","nodeType":"YulExpressionStatement","src":"467:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"437:5:97","nodeType":"YulIdentifier","src":"437:5:97"},{"arguments":[{"name":"value","nativeSrc":"448:5:97","nodeType":"YulIdentifier","src":"448:5:97"},{"kind":"number","nativeSrc":"455:6:97","nodeType":"YulLiteral","src":"455:6:97","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"444:3:97","nodeType":"YulIdentifier","src":"444:3:97"},"nativeSrc":"444:18:97","nodeType":"YulFunctionCall","src":"444:18:97"}],"functionName":{"name":"eq","nativeSrc":"434:2:97","nodeType":"YulIdentifier","src":"434:2:97"},"nativeSrc":"434:29:97","nodeType":"YulFunctionCall","src":"434:29:97"}],"functionName":{"name":"iszero","nativeSrc":"427:6:97","nodeType":"YulIdentifier","src":"427:6:97"},"nativeSrc":"427:37:97","nodeType":"YulFunctionCall","src":"427:37:97"},"nativeSrc":"424:57:97","nodeType":"YulIf","src":"424:57:97"}]},"name":"abi_decode_uint16","nativeSrc":"328:159:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"355:6:97","nodeType":"YulTypedName","src":"355:6:97","type":""}],"returnVariables":[{"name":"value","nativeSrc":"366:5:97","nodeType":"YulTypedName","src":"366:5:97","type":""}],"src":"328:159:97"},{"body":{"nativeSrc":"561:115:97","nodeType":"YulBlock","src":"561:115:97","statements":[{"body":{"nativeSrc":"607:16:97","nodeType":"YulBlock","src":"607:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"616:1:97","nodeType":"YulLiteral","src":"616:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"619:1:97","nodeType":"YulLiteral","src":"619:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"609:6:97","nodeType":"YulIdentifier","src":"609:6:97"},"nativeSrc":"609:12:97","nodeType":"YulFunctionCall","src":"609:12:97"},"nativeSrc":"609:12:97","nodeType":"YulExpressionStatement","src":"609:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"582:7:97","nodeType":"YulIdentifier","src":"582:7:97"},{"name":"headStart","nativeSrc":"591:9:97","nodeType":"YulIdentifier","src":"591:9:97"}],"functionName":{"name":"sub","nativeSrc":"578:3:97","nodeType":"YulIdentifier","src":"578:3:97"},"nativeSrc":"578:23:97","nodeType":"YulFunctionCall","src":"578:23:97"},{"kind":"number","nativeSrc":"603:2:97","nodeType":"YulLiteral","src":"603:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"574:3:97","nodeType":"YulIdentifier","src":"574:3:97"},"nativeSrc":"574:32:97","nodeType":"YulFunctionCall","src":"574:32:97"},"nativeSrc":"571:52:97","nodeType":"YulIf","src":"571:52:97"},{"nativeSrc":"632:38:97","nodeType":"YulAssignment","src":"632:38:97","value":{"arguments":[{"name":"headStart","nativeSrc":"660:9:97","nodeType":"YulIdentifier","src":"660:9:97"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"642:17:97","nodeType":"YulIdentifier","src":"642:17:97"},"nativeSrc":"642:28:97","nodeType":"YulFunctionCall","src":"642:28:97"},"variableNames":[{"name":"value0","nativeSrc":"632:6:97","nodeType":"YulIdentifier","src":"632:6:97"}]}]},"name":"abi_decode_tuple_t_uint16","nativeSrc":"492:184:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"527:9:97","nodeType":"YulTypedName","src":"527:9:97","type":""},{"name":"dataEnd","nativeSrc":"538:7:97","nodeType":"YulTypedName","src":"538:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"550:6:97","nodeType":"YulTypedName","src":"550:6:97","type":""}],"src":"492:184:97"},{"body":{"nativeSrc":"782:76:97","nodeType":"YulBlock","src":"782:76:97","statements":[{"nativeSrc":"792:26:97","nodeType":"YulAssignment","src":"792:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"804:9:97","nodeType":"YulIdentifier","src":"804:9:97"},{"kind":"number","nativeSrc":"815:2:97","nodeType":"YulLiteral","src":"815:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"800:3:97","nodeType":"YulIdentifier","src":"800:3:97"},"nativeSrc":"800:18:97","nodeType":"YulFunctionCall","src":"800:18:97"},"variableNames":[{"name":"tail","nativeSrc":"792:4:97","nodeType":"YulIdentifier","src":"792:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"834:9:97","nodeType":"YulIdentifier","src":"834:9:97"},{"name":"value0","nativeSrc":"845:6:97","nodeType":"YulIdentifier","src":"845:6:97"}],"functionName":{"name":"mstore","nativeSrc":"827:6:97","nodeType":"YulIdentifier","src":"827:6:97"},"nativeSrc":"827:25:97","nodeType":"YulFunctionCall","src":"827:25:97"},"nativeSrc":"827:25:97","nodeType":"YulExpressionStatement","src":"827:25:97"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"681:177:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"751:9:97","nodeType":"YulTypedName","src":"751:9:97","type":""},{"name":"value0","nativeSrc":"762:6:97","nodeType":"YulTypedName","src":"762:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"773:4:97","nodeType":"YulTypedName","src":"773:4:97","type":""}],"src":"681:177:97"},{"body":{"nativeSrc":"949:166:97","nodeType":"YulBlock","src":"949:166:97","statements":[{"body":{"nativeSrc":"995:16:97","nodeType":"YulBlock","src":"995:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1004:1:97","nodeType":"YulLiteral","src":"1004:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1007:1:97","nodeType":"YulLiteral","src":"1007:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"997:6:97","nodeType":"YulIdentifier","src":"997:6:97"},"nativeSrc":"997:12:97","nodeType":"YulFunctionCall","src":"997:12:97"},"nativeSrc":"997:12:97","nodeType":"YulExpressionStatement","src":"997:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"970:7:97","nodeType":"YulIdentifier","src":"970:7:97"},{"name":"headStart","nativeSrc":"979:9:97","nodeType":"YulIdentifier","src":"979:9:97"}],"functionName":{"name":"sub","nativeSrc":"966:3:97","nodeType":"YulIdentifier","src":"966:3:97"},"nativeSrc":"966:23:97","nodeType":"YulFunctionCall","src":"966:23:97"},{"kind":"number","nativeSrc":"991:2:97","nodeType":"YulLiteral","src":"991:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"962:3:97","nodeType":"YulIdentifier","src":"962:3:97"},"nativeSrc":"962:32:97","nodeType":"YulFunctionCall","src":"962:32:97"},"nativeSrc":"959:52:97","nodeType":"YulIf","src":"959:52:97"},{"nativeSrc":"1020:38:97","nodeType":"YulAssignment","src":"1020:38:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1048:9:97","nodeType":"YulIdentifier","src":"1048:9:97"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"1030:17:97","nodeType":"YulIdentifier","src":"1030:17:97"},"nativeSrc":"1030:28:97","nodeType":"YulFunctionCall","src":"1030:28:97"},"variableNames":[{"name":"value0","nativeSrc":"1020:6:97","nodeType":"YulIdentifier","src":"1020:6:97"}]},{"nativeSrc":"1067:42:97","nodeType":"YulAssignment","src":"1067:42:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1094:9:97","nodeType":"YulIdentifier","src":"1094:9:97"},{"kind":"number","nativeSrc":"1105:2:97","nodeType":"YulLiteral","src":"1105:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1090:3:97","nodeType":"YulIdentifier","src":"1090:3:97"},"nativeSrc":"1090:18:97","nodeType":"YulFunctionCall","src":"1090:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"1077:12:97","nodeType":"YulIdentifier","src":"1077:12:97"},"nativeSrc":"1077:32:97","nodeType":"YulFunctionCall","src":"1077:32:97"},"variableNames":[{"name":"value1","nativeSrc":"1067:6:97","nodeType":"YulIdentifier","src":"1067:6:97"}]}]},"name":"abi_decode_tuple_t_uint16t_uint256","nativeSrc":"863:252:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"907:9:97","nodeType":"YulTypedName","src":"907:9:97","type":""},{"name":"dataEnd","nativeSrc":"918:7:97","nodeType":"YulTypedName","src":"918:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"930:6:97","nodeType":"YulTypedName","src":"930:6:97","type":""},{"name":"value1","nativeSrc":"938:6:97","nodeType":"YulTypedName","src":"938:6:97","type":""}],"src":"863:252:97"},{"body":{"nativeSrc":"1215:92:97","nodeType":"YulBlock","src":"1215:92:97","statements":[{"nativeSrc":"1225:26:97","nodeType":"YulAssignment","src":"1225:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1237:9:97","nodeType":"YulIdentifier","src":"1237:9:97"},{"kind":"number","nativeSrc":"1248:2:97","nodeType":"YulLiteral","src":"1248:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1233:3:97","nodeType":"YulIdentifier","src":"1233:3:97"},"nativeSrc":"1233:18:97","nodeType":"YulFunctionCall","src":"1233:18:97"},"variableNames":[{"name":"tail","nativeSrc":"1225:4:97","nodeType":"YulIdentifier","src":"1225:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1267:9:97","nodeType":"YulIdentifier","src":"1267:9:97"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"1292:6:97","nodeType":"YulIdentifier","src":"1292:6:97"}],"functionName":{"name":"iszero","nativeSrc":"1285:6:97","nodeType":"YulIdentifier","src":"1285:6:97"},"nativeSrc":"1285:14:97","nodeType":"YulFunctionCall","src":"1285:14:97"}],"functionName":{"name":"iszero","nativeSrc":"1278:6:97","nodeType":"YulIdentifier","src":"1278:6:97"},"nativeSrc":"1278:22:97","nodeType":"YulFunctionCall","src":"1278:22:97"}],"functionName":{"name":"mstore","nativeSrc":"1260:6:97","nodeType":"YulIdentifier","src":"1260:6:97"},"nativeSrc":"1260:41:97","nodeType":"YulFunctionCall","src":"1260:41:97"},"nativeSrc":"1260:41:97","nodeType":"YulExpressionStatement","src":"1260:41:97"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1120:187:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1184:9:97","nodeType":"YulTypedName","src":"1184:9:97","type":""},{"name":"value0","nativeSrc":"1195:6:97","nodeType":"YulTypedName","src":"1195:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1206:4:97","nodeType":"YulTypedName","src":"1206:4:97","type":""}],"src":"1120:187:97"},{"body":{"nativeSrc":"1413:125:97","nodeType":"YulBlock","src":"1413:125:97","statements":[{"nativeSrc":"1423:26:97","nodeType":"YulAssignment","src":"1423:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1435:9:97","nodeType":"YulIdentifier","src":"1435:9:97"},{"kind":"number","nativeSrc":"1446:2:97","nodeType":"YulLiteral","src":"1446:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1431:3:97","nodeType":"YulIdentifier","src":"1431:3:97"},"nativeSrc":"1431:18:97","nodeType":"YulFunctionCall","src":"1431:18:97"},"variableNames":[{"name":"tail","nativeSrc":"1423:4:97","nodeType":"YulIdentifier","src":"1423:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1465:9:97","nodeType":"YulIdentifier","src":"1465:9:97"},{"arguments":[{"name":"value0","nativeSrc":"1480:6:97","nodeType":"YulIdentifier","src":"1480:6:97"},{"kind":"number","nativeSrc":"1488:42:97","nodeType":"YulLiteral","src":"1488:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1476:3:97","nodeType":"YulIdentifier","src":"1476:3:97"},"nativeSrc":"1476:55:97","nodeType":"YulFunctionCall","src":"1476:55:97"}],"functionName":{"name":"mstore","nativeSrc":"1458:6:97","nodeType":"YulIdentifier","src":"1458:6:97"},"nativeSrc":"1458:74:97","nodeType":"YulFunctionCall","src":"1458:74:97"},"nativeSrc":"1458:74:97","nodeType":"YulExpressionStatement","src":"1458:74:97"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"1312:226:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1382:9:97","nodeType":"YulTypedName","src":"1382:9:97","type":""},{"name":"value0","nativeSrc":"1393:6:97","nodeType":"YulTypedName","src":"1393:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1404:4:97","nodeType":"YulTypedName","src":"1404:4:97","type":""}],"src":"1312:226:97"},{"body":{"nativeSrc":"1672:119:97","nodeType":"YulBlock","src":"1672:119:97","statements":[{"nativeSrc":"1682:26:97","nodeType":"YulAssignment","src":"1682:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1694:9:97","nodeType":"YulIdentifier","src":"1694:9:97"},{"kind":"number","nativeSrc":"1705:2:97","nodeType":"YulLiteral","src":"1705:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1690:3:97","nodeType":"YulIdentifier","src":"1690:3:97"},"nativeSrc":"1690:18:97","nodeType":"YulFunctionCall","src":"1690:18:97"},"variableNames":[{"name":"tail","nativeSrc":"1682:4:97","nodeType":"YulIdentifier","src":"1682:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1724:9:97","nodeType":"YulIdentifier","src":"1724:9:97"},{"name":"value0","nativeSrc":"1735:6:97","nodeType":"YulIdentifier","src":"1735:6:97"}],"functionName":{"name":"mstore","nativeSrc":"1717:6:97","nodeType":"YulIdentifier","src":"1717:6:97"},"nativeSrc":"1717:25:97","nodeType":"YulFunctionCall","src":"1717:25:97"},"nativeSrc":"1717:25:97","nodeType":"YulExpressionStatement","src":"1717:25:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1762:9:97","nodeType":"YulIdentifier","src":"1762:9:97"},{"kind":"number","nativeSrc":"1773:2:97","nodeType":"YulLiteral","src":"1773:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1758:3:97","nodeType":"YulIdentifier","src":"1758:3:97"},"nativeSrc":"1758:18:97","nodeType":"YulFunctionCall","src":"1758:18:97"},{"name":"value1","nativeSrc":"1778:6:97","nodeType":"YulIdentifier","src":"1778:6:97"}],"functionName":{"name":"mstore","nativeSrc":"1751:6:97","nodeType":"YulIdentifier","src":"1751:6:97"},"nativeSrc":"1751:34:97","nodeType":"YulFunctionCall","src":"1751:34:97"},"nativeSrc":"1751:34:97","nodeType":"YulExpressionStatement","src":"1751:34:97"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"1543:248:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1633:9:97","nodeType":"YulTypedName","src":"1633:9:97","type":""},{"name":"value1","nativeSrc":"1644:6:97","nodeType":"YulTypedName","src":"1644:6:97","type":""},{"name":"value0","nativeSrc":"1652:6:97","nodeType":"YulTypedName","src":"1652:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1663:4:97","nodeType":"YulTypedName","src":"1663:4:97","type":""}],"src":"1543:248:97"},{"body":{"nativeSrc":"1970:228:97","nodeType":"YulBlock","src":"1970:228:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1987:9:97","nodeType":"YulIdentifier","src":"1987:9:97"},{"kind":"number","nativeSrc":"1998:2:97","nodeType":"YulLiteral","src":"1998:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"1980:6:97","nodeType":"YulIdentifier","src":"1980:6:97"},"nativeSrc":"1980:21:97","nodeType":"YulFunctionCall","src":"1980:21:97"},"nativeSrc":"1980:21:97","nodeType":"YulExpressionStatement","src":"1980:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2021:9:97","nodeType":"YulIdentifier","src":"2021:9:97"},{"kind":"number","nativeSrc":"2032:2:97","nodeType":"YulLiteral","src":"2032:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2017:3:97","nodeType":"YulIdentifier","src":"2017:3:97"},"nativeSrc":"2017:18:97","nodeType":"YulFunctionCall","src":"2017:18:97"},{"kind":"number","nativeSrc":"2037:2:97","nodeType":"YulLiteral","src":"2037:2:97","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"2010:6:97","nodeType":"YulIdentifier","src":"2010:6:97"},"nativeSrc":"2010:30:97","nodeType":"YulFunctionCall","src":"2010:30:97"},"nativeSrc":"2010:30:97","nodeType":"YulExpressionStatement","src":"2010:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2060:9:97","nodeType":"YulIdentifier","src":"2060:9:97"},{"kind":"number","nativeSrc":"2071:2:97","nodeType":"YulLiteral","src":"2071:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2056:3:97","nodeType":"YulIdentifier","src":"2056:3:97"},"nativeSrc":"2056:18:97","nodeType":"YulFunctionCall","src":"2056:18:97"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nativeSrc":"2076:34:97","nodeType":"YulLiteral","src":"2076:34:97","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nativeSrc":"2049:6:97","nodeType":"YulIdentifier","src":"2049:6:97"},"nativeSrc":"2049:62:97","nodeType":"YulFunctionCall","src":"2049:62:97"},"nativeSrc":"2049:62:97","nodeType":"YulExpressionStatement","src":"2049:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2131:9:97","nodeType":"YulIdentifier","src":"2131:9:97"},{"kind":"number","nativeSrc":"2142:2:97","nodeType":"YulLiteral","src":"2142:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2127:3:97","nodeType":"YulIdentifier","src":"2127:3:97"},"nativeSrc":"2127:18:97","nodeType":"YulFunctionCall","src":"2127:18:97"},{"hexValue":"646472657373","kind":"string","nativeSrc":"2147:8:97","nodeType":"YulLiteral","src":"2147:8:97","type":"","value":"ddress"}],"functionName":{"name":"mstore","nativeSrc":"2120:6:97","nodeType":"YulIdentifier","src":"2120:6:97"},"nativeSrc":"2120:36:97","nodeType":"YulFunctionCall","src":"2120:36:97"},"nativeSrc":"2120:36:97","nodeType":"YulExpressionStatement","src":"2120:36:97"},{"nativeSrc":"2165:27:97","nodeType":"YulAssignment","src":"2165:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2177:9:97","nodeType":"YulIdentifier","src":"2177:9:97"},{"kind":"number","nativeSrc":"2188:3:97","nodeType":"YulLiteral","src":"2188:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"2173:3:97","nodeType":"YulIdentifier","src":"2173:3:97"},"nativeSrc":"2173:19:97","nodeType":"YulFunctionCall","src":"2173:19:97"},"variableNames":[{"name":"tail","nativeSrc":"2165:4:97","nodeType":"YulIdentifier","src":"2165:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"1796:402:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1947:9:97","nodeType":"YulTypedName","src":"1947:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1961:4:97","nodeType":"YulTypedName","src":"1961:4:97","type":""}],"src":"1796:402:97"},{"body":{"nativeSrc":"2377:182:97","nodeType":"YulBlock","src":"2377:182:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2394:9:97","nodeType":"YulIdentifier","src":"2394:9:97"},{"kind":"number","nativeSrc":"2405:2:97","nodeType":"YulLiteral","src":"2405:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"2387:6:97","nodeType":"YulIdentifier","src":"2387:6:97"},"nativeSrc":"2387:21:97","nodeType":"YulFunctionCall","src":"2387:21:97"},"nativeSrc":"2387:21:97","nodeType":"YulExpressionStatement","src":"2387:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2428:9:97","nodeType":"YulIdentifier","src":"2428:9:97"},{"kind":"number","nativeSrc":"2439:2:97","nodeType":"YulLiteral","src":"2439:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2424:3:97","nodeType":"YulIdentifier","src":"2424:3:97"},"nativeSrc":"2424:18:97","nodeType":"YulFunctionCall","src":"2424:18:97"},{"kind":"number","nativeSrc":"2444:2:97","nodeType":"YulLiteral","src":"2444:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"2417:6:97","nodeType":"YulIdentifier","src":"2417:6:97"},"nativeSrc":"2417:30:97","nodeType":"YulFunctionCall","src":"2417:30:97"},"nativeSrc":"2417:30:97","nodeType":"YulExpressionStatement","src":"2417:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2467:9:97","nodeType":"YulIdentifier","src":"2467:9:97"},{"kind":"number","nativeSrc":"2478:2:97","nodeType":"YulLiteral","src":"2478:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2463:3:97","nodeType":"YulIdentifier","src":"2463:3:97"},"nativeSrc":"2463:18:97","nodeType":"YulFunctionCall","src":"2463:18:97"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nativeSrc":"2483:34:97","nodeType":"YulLiteral","src":"2483:34:97","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nativeSrc":"2456:6:97","nodeType":"YulIdentifier","src":"2456:6:97"},"nativeSrc":"2456:62:97","nodeType":"YulFunctionCall","src":"2456:62:97"},"nativeSrc":"2456:62:97","nodeType":"YulExpressionStatement","src":"2456:62:97"},{"nativeSrc":"2527:26:97","nodeType":"YulAssignment","src":"2527:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2539:9:97","nodeType":"YulIdentifier","src":"2539:9:97"},{"kind":"number","nativeSrc":"2550:2:97","nodeType":"YulLiteral","src":"2550:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2535:3:97","nodeType":"YulIdentifier","src":"2535:3:97"},"nativeSrc":"2535:18:97","nodeType":"YulFunctionCall","src":"2535:18:97"},"variableNames":[{"name":"tail","nativeSrc":"2527:4:97","nodeType":"YulIdentifier","src":"2527:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2203:356:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2354:9:97","nodeType":"YulTypedName","src":"2354:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2368:4:97","nodeType":"YulTypedName","src":"2368:4:97","type":""}],"src":"2203:356:97"},{"body":{"nativeSrc":"2713:578:97","nodeType":"YulBlock","src":"2713:578:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2730:9:97","nodeType":"YulIdentifier","src":"2730:9:97"},{"arguments":[{"name":"value0","nativeSrc":"2745:6:97","nodeType":"YulIdentifier","src":"2745:6:97"},{"kind":"number","nativeSrc":"2753:42:97","nodeType":"YulLiteral","src":"2753:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"2741:3:97","nodeType":"YulIdentifier","src":"2741:3:97"},"nativeSrc":"2741:55:97","nodeType":"YulFunctionCall","src":"2741:55:97"}],"functionName":{"name":"mstore","nativeSrc":"2723:6:97","nodeType":"YulIdentifier","src":"2723:6:97"},"nativeSrc":"2723:74:97","nodeType":"YulFunctionCall","src":"2723:74:97"},"nativeSrc":"2723:74:97","nodeType":"YulExpressionStatement","src":"2723:74:97"},{"nativeSrc":"2806:12:97","nodeType":"YulVariableDeclaration","src":"2806:12:97","value":{"kind":"number","nativeSrc":"2816:2:97","nodeType":"YulLiteral","src":"2816:2:97","type":"","value":"32"},"variables":[{"name":"_1","nativeSrc":"2810:2:97","nodeType":"YulTypedName","src":"2810:2:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2838:9:97","nodeType":"YulIdentifier","src":"2838:9:97"},{"kind":"number","nativeSrc":"2849:2:97","nodeType":"YulLiteral","src":"2849:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2834:3:97","nodeType":"YulIdentifier","src":"2834:3:97"},"nativeSrc":"2834:18:97","nodeType":"YulFunctionCall","src":"2834:18:97"},{"kind":"number","nativeSrc":"2854:2:97","nodeType":"YulLiteral","src":"2854:2:97","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"2827:6:97","nodeType":"YulIdentifier","src":"2827:6:97"},"nativeSrc":"2827:30:97","nodeType":"YulFunctionCall","src":"2827:30:97"},"nativeSrc":"2827:30:97","nodeType":"YulExpressionStatement","src":"2827:30:97"},{"nativeSrc":"2866:27:97","nodeType":"YulVariableDeclaration","src":"2866:27:97","value":{"arguments":[{"name":"value1","nativeSrc":"2886:6:97","nodeType":"YulIdentifier","src":"2886:6:97"}],"functionName":{"name":"mload","nativeSrc":"2880:5:97","nodeType":"YulIdentifier","src":"2880:5:97"},"nativeSrc":"2880:13:97","nodeType":"YulFunctionCall","src":"2880:13:97"},"variables":[{"name":"length","nativeSrc":"2870:6:97","nodeType":"YulTypedName","src":"2870:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2913:9:97","nodeType":"YulIdentifier","src":"2913:9:97"},{"kind":"number","nativeSrc":"2924:2:97","nodeType":"YulLiteral","src":"2924:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2909:3:97","nodeType":"YulIdentifier","src":"2909:3:97"},"nativeSrc":"2909:18:97","nodeType":"YulFunctionCall","src":"2909:18:97"},{"name":"length","nativeSrc":"2929:6:97","nodeType":"YulIdentifier","src":"2929:6:97"}],"functionName":{"name":"mstore","nativeSrc":"2902:6:97","nodeType":"YulIdentifier","src":"2902:6:97"},"nativeSrc":"2902:34:97","nodeType":"YulFunctionCall","src":"2902:34:97"},"nativeSrc":"2902:34:97","nodeType":"YulExpressionStatement","src":"2902:34:97"},{"nativeSrc":"2945:10:97","nodeType":"YulVariableDeclaration","src":"2945:10:97","value":{"kind":"number","nativeSrc":"2954:1:97","nodeType":"YulLiteral","src":"2954:1:97","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"2949:1:97","nodeType":"YulTypedName","src":"2949:1:97","type":""}]},{"body":{"nativeSrc":"3014:90:97","nodeType":"YulBlock","src":"3014:90:97","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3043:9:97","nodeType":"YulIdentifier","src":"3043:9:97"},{"name":"i","nativeSrc":"3054:1:97","nodeType":"YulIdentifier","src":"3054:1:97"}],"functionName":{"name":"add","nativeSrc":"3039:3:97","nodeType":"YulIdentifier","src":"3039:3:97"},"nativeSrc":"3039:17:97","nodeType":"YulFunctionCall","src":"3039:17:97"},{"kind":"number","nativeSrc":"3058:2:97","nodeType":"YulLiteral","src":"3058:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3035:3:97","nodeType":"YulIdentifier","src":"3035:3:97"},"nativeSrc":"3035:26:97","nodeType":"YulFunctionCall","src":"3035:26:97"},{"arguments":[{"arguments":[{"arguments":[{"name":"value1","nativeSrc":"3077:6:97","nodeType":"YulIdentifier","src":"3077:6:97"},{"name":"i","nativeSrc":"3085:1:97","nodeType":"YulIdentifier","src":"3085:1:97"}],"functionName":{"name":"add","nativeSrc":"3073:3:97","nodeType":"YulIdentifier","src":"3073:3:97"},"nativeSrc":"3073:14:97","nodeType":"YulFunctionCall","src":"3073:14:97"},{"name":"_1","nativeSrc":"3089:2:97","nodeType":"YulIdentifier","src":"3089:2:97"}],"functionName":{"name":"add","nativeSrc":"3069:3:97","nodeType":"YulIdentifier","src":"3069:3:97"},"nativeSrc":"3069:23:97","nodeType":"YulFunctionCall","src":"3069:23:97"}],"functionName":{"name":"mload","nativeSrc":"3063:5:97","nodeType":"YulIdentifier","src":"3063:5:97"},"nativeSrc":"3063:30:97","nodeType":"YulFunctionCall","src":"3063:30:97"}],"functionName":{"name":"mstore","nativeSrc":"3028:6:97","nodeType":"YulIdentifier","src":"3028:6:97"},"nativeSrc":"3028:66:97","nodeType":"YulFunctionCall","src":"3028:66:97"},"nativeSrc":"3028:66:97","nodeType":"YulExpressionStatement","src":"3028:66:97"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"2975:1:97","nodeType":"YulIdentifier","src":"2975:1:97"},{"name":"length","nativeSrc":"2978:6:97","nodeType":"YulIdentifier","src":"2978:6:97"}],"functionName":{"name":"lt","nativeSrc":"2972:2:97","nodeType":"YulIdentifier","src":"2972:2:97"},"nativeSrc":"2972:13:97","nodeType":"YulFunctionCall","src":"2972:13:97"},"nativeSrc":"2964:140:97","nodeType":"YulForLoop","post":{"nativeSrc":"2986:19:97","nodeType":"YulBlock","src":"2986:19:97","statements":[{"nativeSrc":"2988:15:97","nodeType":"YulAssignment","src":"2988:15:97","value":{"arguments":[{"name":"i","nativeSrc":"2997:1:97","nodeType":"YulIdentifier","src":"2997:1:97"},{"name":"_1","nativeSrc":"3000:2:97","nodeType":"YulIdentifier","src":"3000:2:97"}],"functionName":{"name":"add","nativeSrc":"2993:3:97","nodeType":"YulIdentifier","src":"2993:3:97"},"nativeSrc":"2993:10:97","nodeType":"YulFunctionCall","src":"2993:10:97"},"variableNames":[{"name":"i","nativeSrc":"2988:1:97","nodeType":"YulIdentifier","src":"2988:1:97"}]}]},"pre":{"nativeSrc":"2968:3:97","nodeType":"YulBlock","src":"2968:3:97","statements":[]},"src":"2964:140:97"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3128:9:97","nodeType":"YulIdentifier","src":"3128:9:97"},{"name":"length","nativeSrc":"3139:6:97","nodeType":"YulIdentifier","src":"3139:6:97"}],"functionName":{"name":"add","nativeSrc":"3124:3:97","nodeType":"YulIdentifier","src":"3124:3:97"},"nativeSrc":"3124:22:97","nodeType":"YulFunctionCall","src":"3124:22:97"},{"kind":"number","nativeSrc":"3148:2:97","nodeType":"YulLiteral","src":"3148:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3120:3:97","nodeType":"YulIdentifier","src":"3120:3:97"},"nativeSrc":"3120:31:97","nodeType":"YulFunctionCall","src":"3120:31:97"},{"kind":"number","nativeSrc":"3153:1:97","nodeType":"YulLiteral","src":"3153:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"3113:6:97","nodeType":"YulIdentifier","src":"3113:6:97"},"nativeSrc":"3113:42:97","nodeType":"YulFunctionCall","src":"3113:42:97"},"nativeSrc":"3113:42:97","nodeType":"YulExpressionStatement","src":"3113:42:97"},{"nativeSrc":"3164:121:97","nodeType":"YulAssignment","src":"3164:121:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3180:9:97","nodeType":"YulIdentifier","src":"3180:9:97"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"3199:6:97","nodeType":"YulIdentifier","src":"3199:6:97"},{"kind":"number","nativeSrc":"3207:2:97","nodeType":"YulLiteral","src":"3207:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"3195:3:97","nodeType":"YulIdentifier","src":"3195:3:97"},"nativeSrc":"3195:15:97","nodeType":"YulFunctionCall","src":"3195:15:97"},{"kind":"number","nativeSrc":"3212:66:97","nodeType":"YulLiteral","src":"3212:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"3191:3:97","nodeType":"YulIdentifier","src":"3191:3:97"},"nativeSrc":"3191:88:97","nodeType":"YulFunctionCall","src":"3191:88:97"}],"functionName":{"name":"add","nativeSrc":"3176:3:97","nodeType":"YulIdentifier","src":"3176:3:97"},"nativeSrc":"3176:104:97","nodeType":"YulFunctionCall","src":"3176:104:97"},{"kind":"number","nativeSrc":"3282:2:97","nodeType":"YulLiteral","src":"3282:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3172:3:97","nodeType":"YulIdentifier","src":"3172:3:97"},"nativeSrc":"3172:113:97","nodeType":"YulFunctionCall","src":"3172:113:97"},"variableNames":[{"name":"tail","nativeSrc":"3164:4:97","nodeType":"YulIdentifier","src":"3164:4:97"}]}]},"name":"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2564:727:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2674:9:97","nodeType":"YulTypedName","src":"2674:9:97","type":""},{"name":"value1","nativeSrc":"2685:6:97","nodeType":"YulTypedName","src":"2685:6:97","type":""},{"name":"value0","nativeSrc":"2693:6:97","nodeType":"YulTypedName","src":"2693:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2704:4:97","nodeType":"YulTypedName","src":"2704:4:97","type":""}],"src":"2564:727:97"},{"body":{"nativeSrc":"3374:199:97","nodeType":"YulBlock","src":"3374:199:97","statements":[{"body":{"nativeSrc":"3420:16:97","nodeType":"YulBlock","src":"3420:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3429:1:97","nodeType":"YulLiteral","src":"3429:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"3432:1:97","nodeType":"YulLiteral","src":"3432:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3422:6:97","nodeType":"YulIdentifier","src":"3422:6:97"},"nativeSrc":"3422:12:97","nodeType":"YulFunctionCall","src":"3422:12:97"},"nativeSrc":"3422:12:97","nodeType":"YulExpressionStatement","src":"3422:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3395:7:97","nodeType":"YulIdentifier","src":"3395:7:97"},{"name":"headStart","nativeSrc":"3404:9:97","nodeType":"YulIdentifier","src":"3404:9:97"}],"functionName":{"name":"sub","nativeSrc":"3391:3:97","nodeType":"YulIdentifier","src":"3391:3:97"},"nativeSrc":"3391:23:97","nodeType":"YulFunctionCall","src":"3391:23:97"},{"kind":"number","nativeSrc":"3416:2:97","nodeType":"YulLiteral","src":"3416:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3387:3:97","nodeType":"YulIdentifier","src":"3387:3:97"},"nativeSrc":"3387:32:97","nodeType":"YulFunctionCall","src":"3387:32:97"},"nativeSrc":"3384:52:97","nodeType":"YulIf","src":"3384:52:97"},{"nativeSrc":"3445:29:97","nodeType":"YulVariableDeclaration","src":"3445:29:97","value":{"arguments":[{"name":"headStart","nativeSrc":"3464:9:97","nodeType":"YulIdentifier","src":"3464:9:97"}],"functionName":{"name":"mload","nativeSrc":"3458:5:97","nodeType":"YulIdentifier","src":"3458:5:97"},"nativeSrc":"3458:16:97","nodeType":"YulFunctionCall","src":"3458:16:97"},"variables":[{"name":"value","nativeSrc":"3449:5:97","nodeType":"YulTypedName","src":"3449:5:97","type":""}]},{"body":{"nativeSrc":"3527:16:97","nodeType":"YulBlock","src":"3527:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3536:1:97","nodeType":"YulLiteral","src":"3536:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"3539:1:97","nodeType":"YulLiteral","src":"3539:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3529:6:97","nodeType":"YulIdentifier","src":"3529:6:97"},"nativeSrc":"3529:12:97","nodeType":"YulFunctionCall","src":"3529:12:97"},"nativeSrc":"3529:12:97","nodeType":"YulExpressionStatement","src":"3529:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3496:5:97","nodeType":"YulIdentifier","src":"3496:5:97"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3517:5:97","nodeType":"YulIdentifier","src":"3517:5:97"}],"functionName":{"name":"iszero","nativeSrc":"3510:6:97","nodeType":"YulIdentifier","src":"3510:6:97"},"nativeSrc":"3510:13:97","nodeType":"YulFunctionCall","src":"3510:13:97"}],"functionName":{"name":"iszero","nativeSrc":"3503:6:97","nodeType":"YulIdentifier","src":"3503:6:97"},"nativeSrc":"3503:21:97","nodeType":"YulFunctionCall","src":"3503:21:97"}],"functionName":{"name":"eq","nativeSrc":"3493:2:97","nodeType":"YulIdentifier","src":"3493:2:97"},"nativeSrc":"3493:32:97","nodeType":"YulFunctionCall","src":"3493:32:97"}],"functionName":{"name":"iszero","nativeSrc":"3486:6:97","nodeType":"YulIdentifier","src":"3486:6:97"},"nativeSrc":"3486:40:97","nodeType":"YulFunctionCall","src":"3486:40:97"},"nativeSrc":"3483:60:97","nodeType":"YulIf","src":"3483:60:97"},{"nativeSrc":"3552:15:97","nodeType":"YulAssignment","src":"3552:15:97","value":{"name":"value","nativeSrc":"3562:5:97","nodeType":"YulIdentifier","src":"3562:5:97"},"variableNames":[{"name":"value0","nativeSrc":"3552:6:97","nodeType":"YulIdentifier","src":"3552:6:97"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"3296:277:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3340:9:97","nodeType":"YulTypedName","src":"3340:9:97","type":""},{"name":"dataEnd","nativeSrc":"3351:7:97","nodeType":"YulTypedName","src":"3351:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3363:6:97","nodeType":"YulTypedName","src":"3363:6:97","type":""}],"src":"3296:277:97"},{"body":{"nativeSrc":"3752:163:97","nodeType":"YulBlock","src":"3752:163:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3769:9:97","nodeType":"YulIdentifier","src":"3769:9:97"},{"kind":"number","nativeSrc":"3780:2:97","nodeType":"YulLiteral","src":"3780:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"3762:6:97","nodeType":"YulIdentifier","src":"3762:6:97"},"nativeSrc":"3762:21:97","nodeType":"YulFunctionCall","src":"3762:21:97"},"nativeSrc":"3762:21:97","nodeType":"YulExpressionStatement","src":"3762:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3803:9:97","nodeType":"YulIdentifier","src":"3803:9:97"},{"kind":"number","nativeSrc":"3814:2:97","nodeType":"YulLiteral","src":"3814:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3799:3:97","nodeType":"YulIdentifier","src":"3799:3:97"},"nativeSrc":"3799:18:97","nodeType":"YulFunctionCall","src":"3799:18:97"},{"kind":"number","nativeSrc":"3819:2:97","nodeType":"YulLiteral","src":"3819:2:97","type":"","value":"13"}],"functionName":{"name":"mstore","nativeSrc":"3792:6:97","nodeType":"YulIdentifier","src":"3792:6:97"},"nativeSrc":"3792:30:97","nodeType":"YulFunctionCall","src":"3792:30:97"},"nativeSrc":"3792:30:97","nodeType":"YulExpressionStatement","src":"3792:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3842:9:97","nodeType":"YulIdentifier","src":"3842:9:97"},{"kind":"number","nativeSrc":"3853:2:97","nodeType":"YulLiteral","src":"3853:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3838:3:97","nodeType":"YulIdentifier","src":"3838:3:97"},"nativeSrc":"3838:18:97","nodeType":"YulFunctionCall","src":"3838:18:97"},{"hexValue":"6163636573732064656e696564","kind":"string","nativeSrc":"3858:15:97","nodeType":"YulLiteral","src":"3858:15:97","type":"","value":"access denied"}],"functionName":{"name":"mstore","nativeSrc":"3831:6:97","nodeType":"YulIdentifier","src":"3831:6:97"},"nativeSrc":"3831:43:97","nodeType":"YulFunctionCall","src":"3831:43:97"},"nativeSrc":"3831:43:97","nodeType":"YulExpressionStatement","src":"3831:43:97"},{"nativeSrc":"3883:26:97","nodeType":"YulAssignment","src":"3883:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"3895:9:97","nodeType":"YulIdentifier","src":"3895:9:97"},{"kind":"number","nativeSrc":"3906:2:97","nodeType":"YulLiteral","src":"3906:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3891:3:97","nodeType":"YulIdentifier","src":"3891:3:97"},"nativeSrc":"3891:18:97","nodeType":"YulFunctionCall","src":"3891:18:97"},"variableNames":[{"name":"tail","nativeSrc":"3883:4:97","nodeType":"YulIdentifier","src":"3883:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_cba8a57ccb1594d7138ca5e2a9216c55d23151b53a95734bafda4b812e3786ff__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3578:337:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3729:9:97","nodeType":"YulTypedName","src":"3729:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3743:4:97","nodeType":"YulTypedName","src":"3743:4:97","type":""}],"src":"3578:337:97"},{"body":{"nativeSrc":"4094:170:97","nodeType":"YulBlock","src":"4094:170:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4111:9:97","nodeType":"YulIdentifier","src":"4111:9:97"},{"kind":"number","nativeSrc":"4122:2:97","nodeType":"YulLiteral","src":"4122:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"4104:6:97","nodeType":"YulIdentifier","src":"4104:6:97"},"nativeSrc":"4104:21:97","nodeType":"YulFunctionCall","src":"4104:21:97"},"nativeSrc":"4104:21:97","nodeType":"YulExpressionStatement","src":"4104:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4145:9:97","nodeType":"YulIdentifier","src":"4145:9:97"},{"kind":"number","nativeSrc":"4156:2:97","nodeType":"YulLiteral","src":"4156:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4141:3:97","nodeType":"YulIdentifier","src":"4141:3:97"},"nativeSrc":"4141:18:97","nodeType":"YulFunctionCall","src":"4141:18:97"},{"kind":"number","nativeSrc":"4161:2:97","nodeType":"YulLiteral","src":"4161:2:97","type":"","value":"20"}],"functionName":{"name":"mstore","nativeSrc":"4134:6:97","nodeType":"YulIdentifier","src":"4134:6:97"},"nativeSrc":"4134:30:97","nodeType":"YulFunctionCall","src":"4134:30:97"},"nativeSrc":"4134:30:97","nodeType":"YulExpressionStatement","src":"4134:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4184:9:97","nodeType":"YulIdentifier","src":"4184:9:97"},{"kind":"number","nativeSrc":"4195:2:97","nodeType":"YulLiteral","src":"4195:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4180:3:97","nodeType":"YulIdentifier","src":"4180:3:97"},"nativeSrc":"4180:18:97","nodeType":"YulFunctionCall","src":"4180:18:97"},{"hexValue":"5061757361626c653a206e6f7420706175736564","kind":"string","nativeSrc":"4200:22:97","nodeType":"YulLiteral","src":"4200:22:97","type":"","value":"Pausable: not paused"}],"functionName":{"name":"mstore","nativeSrc":"4173:6:97","nodeType":"YulIdentifier","src":"4173:6:97"},"nativeSrc":"4173:50:97","nodeType":"YulFunctionCall","src":"4173:50:97"},"nativeSrc":"4173:50:97","nodeType":"YulExpressionStatement","src":"4173:50:97"},{"nativeSrc":"4232:26:97","nodeType":"YulAssignment","src":"4232:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"4244:9:97","nodeType":"YulIdentifier","src":"4244:9:97"},{"kind":"number","nativeSrc":"4255:2:97","nodeType":"YulLiteral","src":"4255:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4240:3:97","nodeType":"YulIdentifier","src":"4240:3:97"},"nativeSrc":"4240:18:97","nodeType":"YulFunctionCall","src":"4240:18:97"},"variableNames":[{"name":"tail","nativeSrc":"4232:4:97","nodeType":"YulIdentifier","src":"4232:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3920:344:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4071:9:97","nodeType":"YulTypedName","src":"4071:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4085:4:97","nodeType":"YulTypedName","src":"4085:4:97","type":""}],"src":"3920:344:97"},{"body":{"nativeSrc":"4443:166:97","nodeType":"YulBlock","src":"4443:166:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4460:9:97","nodeType":"YulIdentifier","src":"4460:9:97"},{"kind":"number","nativeSrc":"4471:2:97","nodeType":"YulLiteral","src":"4471:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"4453:6:97","nodeType":"YulIdentifier","src":"4453:6:97"},"nativeSrc":"4453:21:97","nodeType":"YulFunctionCall","src":"4453:21:97"},"nativeSrc":"4453:21:97","nodeType":"YulExpressionStatement","src":"4453:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4494:9:97","nodeType":"YulIdentifier","src":"4494:9:97"},{"kind":"number","nativeSrc":"4505:2:97","nodeType":"YulLiteral","src":"4505:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4490:3:97","nodeType":"YulIdentifier","src":"4490:3:97"},"nativeSrc":"4490:18:97","nodeType":"YulFunctionCall","src":"4490:18:97"},{"kind":"number","nativeSrc":"4510:2:97","nodeType":"YulLiteral","src":"4510:2:97","type":"","value":"16"}],"functionName":{"name":"mstore","nativeSrc":"4483:6:97","nodeType":"YulIdentifier","src":"4483:6:97"},"nativeSrc":"4483:30:97","nodeType":"YulFunctionCall","src":"4483:30:97"},"nativeSrc":"4483:30:97","nodeType":"YulExpressionStatement","src":"4483:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4533:9:97","nodeType":"YulIdentifier","src":"4533:9:97"},{"kind":"number","nativeSrc":"4544:2:97","nodeType":"YulLiteral","src":"4544:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4529:3:97","nodeType":"YulIdentifier","src":"4529:3:97"},"nativeSrc":"4529:18:97","nodeType":"YulFunctionCall","src":"4529:18:97"},{"hexValue":"5061757361626c653a20706175736564","kind":"string","nativeSrc":"4549:18:97","nodeType":"YulLiteral","src":"4549:18:97","type":"","value":"Pausable: paused"}],"functionName":{"name":"mstore","nativeSrc":"4522:6:97","nodeType":"YulIdentifier","src":"4522:6:97"},"nativeSrc":"4522:46:97","nodeType":"YulFunctionCall","src":"4522:46:97"},"nativeSrc":"4522:46:97","nodeType":"YulExpressionStatement","src":"4522:46:97"},{"nativeSrc":"4577:26:97","nodeType":"YulAssignment","src":"4577:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"4589:9:97","nodeType":"YulIdentifier","src":"4589:9:97"},{"kind":"number","nativeSrc":"4600:2:97","nodeType":"YulLiteral","src":"4600:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4585:3:97","nodeType":"YulIdentifier","src":"4585:3:97"},"nativeSrc":"4585:18:97","nodeType":"YulFunctionCall","src":"4585:18:97"},"variableNames":[{"name":"tail","nativeSrc":"4577:4:97","nodeType":"YulIdentifier","src":"4577:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"4269:340:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4420:9:97","nodeType":"YulTypedName","src":"4420:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4434:4:97","nodeType":"YulTypedName","src":"4434:4:97","type":""}],"src":"4269:340:97"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_decode_uint16(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_uint16(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_uint16t_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n        mstore(add(headStart, 96), \"ddress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n        let _1 := 32\n        mstore(add(headStart, 32), 64)\n        let length := mload(value1)\n        mstore(add(headStart, 64), length)\n        let i := 0\n        for { } lt(i, length) { i := add(i, _1) }\n        {\n            mstore(add(add(headStart, i), 96), mload(add(add(value1, i), _1)))\n        }\n        mstore(add(add(headStart, length), 96), 0)\n        tail := add(add(headStart, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 96)\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_cba8a57ccb1594d7138ca5e2a9216c55d23151b53a95734bafda4b812e3786ff__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 13)\n        mstore(add(headStart, 64), \"access denied\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 20)\n        mstore(add(headStart, 64), \"Pausable: not paused\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 16)\n        mstore(add(headStart, 64), \"Pausable: paused\")\n        tail := add(headStart, 96)\n    }\n}","id":97,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100df5760003560e01c8063715018a61161008c57806393a61d6c1161006657806393a61d6c146101dc578063b4a0bdf3146101fc578063e0354d7f1461021c578063f2fde38b1461023c57600080fd5b8063715018a6146100f75780638456cb59146101955780638da5cb5b1461019d57600080fd5b80633f4ba83a116100bd5780633f4ba83a1461013f5780634f4ba0f4146101475780635c975abb1461016757600080fd5b80630e32cb86146100e45780631183a3b2146100f95780632488eec81461012c575b600080fd5b6100f76100f2366004610912565b61024f565b005b610119610107366004610966565b60036020526000908152604090205481565b6040519081526020015b60405180910390f35b6100f761013a366004610981565b6102ee565b6100f7610391565b610119610155366004610966565b60026020526000908152604090205481565b60005474010000000000000000000000000000000000000000900460ff166040519015158152602001610123565b6100f76103d9565b60005473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610123565b6101196101ea366004610966565b60046020526000908152604090205481565b6001546101b79073ffffffffffffffffffffffffffffffffffffffff1681565b61011961022a366004610966565b60056020526000908152604090205481565b6100f761024a366004610912565b61041f565b6102576104db565b6102608161055c565b60015460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa090600090a3600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b61032c6040518060400160405280602081526020017f7365744d61784461696c794c696d69742875696e7431362c75696e74323536298152506105a9565b61ffff82166000818152600260209081526040918290205482519081529081018490527f4dd31065e259d5284e44d1f9265710da72eafcf78dc925e3881189fc3b71f693910160405180910390a261ffff909116600090815260026020526040902055565b6103cf6040518060400160405280600981526020017f756e7061757365282900000000000000000000000000000000000000000000008152506105a9565b6103d76106a8565b565b6104176040518060400160405280600781526020017f70617573652829000000000000000000000000000000000000000000000000008152506105a9565b6103d7610725565b6104276104db565b73ffffffffffffffffffffffffffffffffffffffff81166104cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6104d881610794565b50565b60005473ffffffffffffffffffffffffffffffffffffffff1633146103d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104c6565b73ffffffffffffffffffffffffffffffffffffffff81166104d8576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040517f18c5e8ab00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116906318c5e8ab9061060190339085906004016109ab565b602060405180830381865afa15801561061e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106429190610a36565b6104d8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f6163636573732064656e6965640000000000000000000000000000000000000060448201526064016104c6565b6106b0610809565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b61072d61088d565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586106fb3390565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60005474010000000000000000000000000000000000000000900460ff166103d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016104c6565b60005474010000000000000000000000000000000000000000900460ff16156103d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016104c6565b60006020828403121561092457600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461094857600080fd5b9392505050565b803561ffff8116811461096157600080fd5b919050565b60006020828403121561097857600080fd5b6109488261094f565b6000806040838503121561099457600080fd5b61099d8361094f565b946020939093013593505050565b73ffffffffffffffffffffffffffffffffffffffff831681526000602060406020840152835180604085015260005b818110156109f6578581018301518582016060015282016109da565b5060006060828601015260607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f830116850101925050509392505050565b600060208284031215610a4857600080fd5b8151801515811461094857600080fdfea26469706673582212200121b8d6a860d9e73d2f8ba86ee5823f10ffa3fc39e10998a0e07f09368f0ed064736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xDF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x93A61D6C GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x93A61D6C EQ PUSH2 0x1DC JUMPI DUP1 PUSH4 0xB4A0BDF3 EQ PUSH2 0x1FC JUMPI DUP1 PUSH4 0xE0354D7F EQ PUSH2 0x21C JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x23C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x715018A6 EQ PUSH2 0xF7 JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x19D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3F4BA83A GT PUSH2 0xBD JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x13F JUMPI DUP1 PUSH4 0x4F4BA0F4 EQ PUSH2 0x147 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x167 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xE32CB86 EQ PUSH2 0xE4 JUMPI DUP1 PUSH4 0x1183A3B2 EQ PUSH2 0xF9 JUMPI DUP1 PUSH4 0x2488EEC8 EQ PUSH2 0x12C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF7 PUSH2 0xF2 CALLDATASIZE PUSH1 0x4 PUSH2 0x912 JUMP JUMPDEST PUSH2 0x24F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x119 PUSH2 0x107 CALLDATASIZE PUSH1 0x4 PUSH2 0x966 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF7 PUSH2 0x13A CALLDATASIZE PUSH1 0x4 PUSH2 0x981 JUMP JUMPDEST PUSH2 0x2EE JUMP JUMPDEST PUSH2 0xF7 PUSH2 0x391 JUMP JUMPDEST PUSH2 0x119 PUSH2 0x155 CALLDATASIZE PUSH1 0x4 PUSH2 0x966 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x123 JUMP JUMPDEST PUSH2 0xF7 PUSH2 0x3D9 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x123 JUMP JUMPDEST PUSH2 0x119 PUSH2 0x1EA CALLDATASIZE PUSH1 0x4 PUSH2 0x966 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0x1B7 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x119 PUSH2 0x22A CALLDATASIZE PUSH1 0x4 PUSH2 0x966 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0xF7 PUSH2 0x24A CALLDATASIZE PUSH1 0x4 PUSH2 0x912 JUMP JUMPDEST PUSH2 0x41F JUMP JUMPDEST PUSH2 0x257 PUSH2 0x4DB JUMP JUMPDEST PUSH2 0x260 DUP2 PUSH2 0x55C JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND SWAP3 AND SWAP1 PUSH32 0x66FD58E82F7B31A2A5C30E0888F3093EFE4E111B00CD2B0C31FE014601293AA0 SWAP1 PUSH1 0x0 SWAP1 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x32C PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x7365744D61784461696C794C696D69742875696E7431362C75696E7432353629 DUP2 MSTORE POP PUSH2 0x5A9 JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SLOAD DUP3 MLOAD SWAP1 DUP2 MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0x4DD31065E259D5284E44D1F9265710DA72EAFCF78DC925E3881189FC3B71F693 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH2 0xFFFF SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST PUSH2 0x3CF PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x756E706175736528290000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x5A9 JUMP JUMPDEST PUSH2 0x3D7 PUSH2 0x6A8 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x417 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x7 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x7061757365282900000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x5A9 JUMP JUMPDEST PUSH2 0x3D7 PUSH2 0x725 JUMP JUMPDEST PUSH2 0x427 PUSH2 0x4DB JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x4CF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4D8 DUP2 PUSH2 0x794 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x3D7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x4C6 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x4D8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8579BEFE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH32 0x18C5E8AB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x601 SWAP1 CALLER SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0x9AB JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x61E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x642 SWAP2 SWAP1 PUSH2 0xA36 JUMP JUMPDEST PUSH2 0x4D8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6163636573732064656E69656400000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x4C6 JUMP JUMPDEST PUSH2 0x6B0 PUSH2 0x809 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH2 0x72D PUSH2 0x88D JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH21 0x10000000000000000000000000000000000000000 OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x6FB CALLER SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3D7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061757361626C653A206E6F7420706175736564000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x4C6 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x3D7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061757361626C653A2070617573656400000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x4C6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x924 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x948 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x961 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x978 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x948 DUP3 PUSH2 0x94F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x994 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x99D DUP4 PUSH2 0x94F JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 PUSH1 0x40 PUSH1 0x20 DUP5 ADD MSTORE DUP4 MLOAD DUP1 PUSH1 0x40 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x9F6 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x60 ADD MSTORE DUP3 ADD PUSH2 0x9DA JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x60 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x60 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x948 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ADD 0x21 0xB8 0xD6 0xA8 PUSH1 0xD9 0xE7 RETURNDATASIZE 0x2F DUP12 0xA8 PUSH15 0xE5823F10FFA3FC39E10998A0E07F09 CALLDATASIZE DUP16 0xE 0xD0 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"696:5321:50:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3463:280;;;;;;:::i;:::-;;:::i;:::-;;1136:65;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;827:25:97;;;815:2;800:18;1136:65:50;;;;;;;;2438:269;;;;;;:::i;:::-;;:::i;3069:92::-;;;:::i;963:56::-;;;;;;:::i;:::-;;;;;;;;;;;;;;1615:84:33;1662:4;1685:7;;;;;;1615:84;;1285:14:97;;1278:22;1260:41;;1248:2;1233:18;1615:84:33;1120:187:97;2845:86:50;;;:::i;1201:85:32:-;1247:7;1273:6;;;1201:85;;;1488:42:97;1476:55;;;1458:74;;1446:2;1431:18;1201:85:32;1312:226:97;1307:64:50;;;;;;:::i;:::-;;;;;;;;;;;;;;836:35;;;;;;;;;1481:68;;;;;;:::i;:::-;;;;;;;;;;;;;;2074:198:32;;;;;;:::i;:::-;;:::i;3463:280:50:-;1094:13:32;:11;:13::i;:::-;3556:43:50::1;3577:21;3556:20;:43::i;:::-;3638:20;::::0;3614:68:::1;::::0;::::1;::::0;;::::1;::::0;3638:20:::1;::::0;3614:68:::1;::::0;3638:20:::1;::::0;3614:68:::1;3692:20;:44:::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;3463:280::o;2438:269::-;2516:50;;;;;;;;;;;;;;;;;;:14;:50::i;:::-;2581:68;;;2608:32;;;;:22;:32;;;;;;;;;;2581:68;;1717:25:97;;;1758:18;;;1751:34;;;2581:68:50;;1690:18:97;2581:68:50;;;;;;;2659:32;;;;;;;;:22;:32;;;;;:41;2438:269::o;3069:92::-;3107:27;;;;;;;;;;;;;;;;;;:14;:27::i;:::-;3144:10;:8;:10::i;:::-;3069:92::o;2845:86::-;2881:25;;;;;;;;;;;;;;;;;;:14;:25::i;:::-;2916:8;:6;:8::i;2074:198:32:-;1094:13;:11;:13::i;:::-;2162:22:::1;::::0;::::1;2154:73;;;::::0;::::1;::::0;;1998:2:97;2154:73:32::1;::::0;::::1;1980:21:97::0;2037:2;2017:18;;;2010:30;2076:34;2056:18;;;2049:62;2147:8;2127:18;;;2120:36;2173:19;;2154:73:32::1;;;;;;;;;2237:28;2256:8;2237:18;:28::i;:::-;2074:198:::0;:::o;1359:130::-;1247:7;1273:6;1422:23;1273:6;734:10:39;1422:23:32;1414:68;;;;;;;2405:2:97;1414:68:32;;;2387:21:97;;;2424:18;;;2417:30;2483:34;2463:18;;;2456:62;2535:18;;1414:68:32;2203:356:97;485:136:47;548:22;;;544:75;;589:23;;;;;;;;;;;;;;5785:230:50;5906:20;;5882:87;;;;;5906:20;;;;;5882:61;;:87;;5944:10;;5956:12;;5882:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5861:147;;;;;;;3780:2:97;5861:147:50;;;3762:21:97;3819:2;3799:18;;;3792:30;3858:15;3838:18;;;3831:43;3891:18;;5861:147:50;3578:337:97;2433:117:33;1486:16;:14;:16::i;:::-;2501:5:::1;2491:15:::0;;;::::1;::::0;;2521:22:::1;734:10:39::0;2530:12:33::1;2521:22;::::0;1488:42:97;1476:55;;;1458:74;;1446:2;1431:18;2521:22:33::1;;;;;;;2433:117::o:0;2186:115::-;1239:19;:17;:19::i;:::-;2245:7:::1;:14:::0;;;::::1;::::0;::::1;::::0;;2274:20:::1;2281:12;734:10:39::0;;655:96;2426:187:32;2499:16;2518:6;;;2534:17;;;;;;;;;;2566:40;;2518:6;;;;;;;2566:40;;2499:16;2566:40;2489:124;2426:187;:::o;1945:106:33:-;1662:4;1685:7;;;;;;2003:41;;;;;;;4122:2:97;2003:41:33;;;4104:21:97;4161:2;4141:18;;;4134:30;4200:22;4180:18;;;4173:50;4240:18;;2003:41:33;3920:344:97;1767:106:33;1662:4;1685:7;;;;;;1836:9;1828:38;;;;;;;4471:2:97;1828:38:33;;;4453:21:97;4510:2;4490:18;;;4483:30;4549:18;4529;;;4522:46;4585:18;;1828:38:33;4269:340:97;14:309;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;181:9;168:23;231:42;224:5;220:54;213:5;210:65;200:93;;289:1;286;279:12;200:93;312:5;14:309;-1:-1:-1;;;14:309:97:o;328:159::-;395:20;;455:6;444:18;;434:29;;424:57;;477:1;474;467:12;424:57;328:159;;;:::o;492:184::-;550:6;603:2;591:9;582:7;578:23;574:32;571:52;;;619:1;616;609:12;571:52;642:28;660:9;642:28;:::i;863:252::-;930:6;938;991:2;979:9;970:7;966:23;962:32;959:52;;;1007:1;1004;997:12;959:52;1030:28;1048:9;1030:28;:::i;:::-;1020:38;1105:2;1090:18;;;;1077:32;;-1:-1:-1;;;863:252:97:o;2564:727::-;2753:42;2745:6;2741:55;2730:9;2723:74;2704:4;2816:2;2854;2849;2838:9;2834:18;2827:30;2886:6;2880:13;2929:6;2924:2;2913:9;2909:18;2902:34;2954:1;2964:140;2978:6;2975:1;2972:13;2964:140;;;3073:14;;;3069:23;;3063:30;3039:17;;;3058:2;3035:26;3028:66;2993:10;;2964:140;;;2968:3;3153:1;3148:2;3139:6;3128:9;3124:22;3120:31;3113:42;3282:2;3212:66;3207:2;3199:6;3195:15;3191:88;3180:9;3176:104;3172:113;3164:121;;;;2564:727;;;;;:::o;3296:277::-;3363:6;3416:2;3404:9;3395:7;3391:23;3387:32;3384:52;;;3432:1;3429;3422:12;3384:52;3464:9;3458:16;3517:5;3510:13;3503:21;3496:5;3493:32;3483:60;;3539:1;3536;3529:12"},"gasEstimates":{"creation":{"codeDepositCost":"540400","executionCost":"infinite","totalCost":"infinite"},"external":{"accessControlManager()":"2357","chainIdToLast24HourCommandsSent(uint16)":"2542","chainIdToLast24HourWindowStart(uint16)":"2518","chainIdToLastProposalSentTimestamp(uint16)":"2562","chainIdToMaxDailyLimit(uint16)":"2541","owner()":"2363","pause()":"infinite","paused()":"2370","renounceOwnership()":"143","setAccessControlManager(address)":"30367","setMaxDailyLimit(uint16,uint256)":"infinite","transferOwnership(address)":"28323","unpause()":"infinite"},"internal":{"_ensureAllowed(string memory)":"infinite","_isEligibleToSend(uint16,uint256)":"infinite"}},"methodIdentifiers":{"accessControlManager()":"b4a0bdf3","chainIdToLast24HourCommandsSent(uint16)":"1183a3b2","chainIdToLast24HourWindowStart(uint16)":"93a61d6c","chainIdToLastProposalSentTimestamp(uint16)":"e0354d7f","chainIdToMaxDailyLimit(uint16)":"4f4ba0f4","owner()":"8da5cb5b","pause()":"8456cb59","paused()":"5c975abb","renounceOwnership()":"715018a6","setAccessControlManager(address)":"0e32cb86","setMaxDailyLimit(uint16,uint256)":"2488eec8","transferOwnership(address)":"f2fde38b","unpause()":"3f4ba83a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessControlManager_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldAccessControlManager\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAccessControlManager\",\"type\":\"address\"}],\"name\":\"NewAccessControlManager\",\"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\":true,\"internalType\":\"uint16\",\"name\":\"chainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldMaxLimit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newMaxLimit\",\"type\":\"uint256\"}],\"name\":\"SetMaxDailyLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"accessControlManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"chainIdToLast24HourCommandsSent\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"chainIdToLast24HourWindowStart\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"chainIdToLastProposalSentTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"chainIdToMaxDailyLimit\",\"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\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessControlManager_\",\"type\":\"address\"}],\"name\":\"setAccessControlManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"chainId_\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"setMaxDailyLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"custom:security-contact\":\"https://github.com/VenusProtocol/governance-contracts#discussion\",\"details\":\"This contract is the base for the Omnichain controller source contracts. It provides functionality related to daily command limits and pausability.\",\"events\":{\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pause()\":{\"custom:access\":\"Controlled by AccessControlManager\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"setAccessControlManager(address)\":{\"custom:access\":\"Only owner\",\"custom:event\":\"Emits NewAccessControlManager with old and new access control manager addresses\",\"params\":{\"accessControlManager_\":\"The new address of the Access Control Manager\"}},\"setMaxDailyLimit(uint16,uint256)\":{\"custom:access\":\"Controlled by AccessControlManager\",\"custom:event\":\"Emits SetMaxDailyLimit with old and new limit and its corresponding chain id\",\"params\":{\"chainId_\":\"Destination chain id\",\"limit_\":\"Number of commands\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"unpause()\":{\"custom:access\":\"Controlled by AccessControlManager\"}},\"title\":\"BaseOmnichainControllerSrc\",\"version\":1},\"userdoc\":{\"errors\":{\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}]},\"events\":{\"NewAccessControlManager(address,address)\":{\"notice\":\"Emitted when the address of ACM is updated\"},\"SetMaxDailyLimit(uint16,uint256,uint256)\":{\"notice\":\"Emitted when the maximum daily limit of commands from the local chain is modified\"}},\"kind\":\"user\",\"methods\":{\"accessControlManager()\":{\"notice\":\"ACM (Access Control Manager) contract address\"},\"chainIdToLast24HourCommandsSent(uint16)\":{\"notice\":\"Total commands transferred within the last 24-hour window from the local chain\"},\"chainIdToLast24HourWindowStart(uint16)\":{\"notice\":\"Timestamp when the last 24-hour window started from the local chain\"},\"chainIdToLastProposalSentTimestamp(uint16)\":{\"notice\":\"Timestamp when the last proposal sent from the local chain to dest chain\"},\"chainIdToMaxDailyLimit(uint16)\":{\"notice\":\"Maximum daily limit for commands from the local chain\"},\"pause()\":{\"notice\":\"Triggers the paused state of the controller\"},\"renounceOwnership()\":{\"notice\":\"Empty implementation of renounce ownership to avoid any mishap\"},\"setAccessControlManager(address)\":{\"notice\":\"Sets the address of Access Control Manager (ACM)\"},\"setMaxDailyLimit(uint16,uint256)\":{\"notice\":\"Sets the limit of daily (24 Hour) command amount\"},\"unpause()\":{\"notice\":\"Triggers the resume state of the controller\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Cross-chain/BaseOmnichainControllerSrc.sol\":\"BaseOmnichainControllerSrc\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    constructor() {\\n        _transferOwnership(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        _checkOwner();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if the sender is not the owner.\\n     */\\n    function _checkOwner() internal view virtual {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby disabling any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n}\\n\",\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\"},\"@openzeppelin/contracts/security/Pausable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (security/Pausable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which allows children to implement an emergency stop\\n * mechanism that can be triggered by an authorized account.\\n *\\n * This module is used through inheritance. It will make available the\\n * modifiers `whenNotPaused` and `whenPaused`, which can be applied to\\n * the functions of your contract. Note that they will not be pausable by\\n * simply including this module, only once the modifiers are put in place.\\n */\\nabstract contract Pausable is Context {\\n    /**\\n     * @dev Emitted when the pause is triggered by `account`.\\n     */\\n    event Paused(address account);\\n\\n    /**\\n     * @dev Emitted when the pause is lifted by `account`.\\n     */\\n    event Unpaused(address account);\\n\\n    bool private _paused;\\n\\n    /**\\n     * @dev Initializes the contract in unpaused state.\\n     */\\n    constructor() {\\n        _paused = false;\\n    }\\n\\n    /**\\n     * @dev Modifier to make a function callable only when the contract is not paused.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must not be paused.\\n     */\\n    modifier whenNotPaused() {\\n        _requireNotPaused();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Modifier to make a function callable only when the contract is paused.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must be paused.\\n     */\\n    modifier whenPaused() {\\n        _requirePaused();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns true if the contract is paused, and false otherwise.\\n     */\\n    function paused() public view virtual returns (bool) {\\n        return _paused;\\n    }\\n\\n    /**\\n     * @dev Throws if the contract is paused.\\n     */\\n    function _requireNotPaused() internal view virtual {\\n        require(!paused(), \\\"Pausable: paused\\\");\\n    }\\n\\n    /**\\n     * @dev Throws if the contract is not paused.\\n     */\\n    function _requirePaused() internal view virtual {\\n        require(paused(), \\\"Pausable: not paused\\\");\\n    }\\n\\n    /**\\n     * @dev Triggers stopped state.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must not be paused.\\n     */\\n    function _pause() internal virtual whenNotPaused {\\n        _paused = true;\\n        emit Paused(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Returns to normal state.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must be paused.\\n     */\\n    function _unpause() internal virtual whenPaused {\\n        _paused = false;\\n        emit Unpaused(_msgSender());\\n    }\\n}\\n\",\"keccak256\":\"0x0849d93b16c9940beb286a7864ed02724b248b93e0d80ef6355af5ef15c64773\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n\\n    function _contextSuffixLength() internal view virtual returns (uint256) {\\n        return 0;\\n    }\\n}\\n\",\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\"},\"@venusprotocol/solidity-utilities/contracts/validators.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\n/// @notice Thrown if the supplied address is a zero address where it is not allowed\\nerror ZeroAddressNotAllowed();\\n\\n/// @notice Thrown if the supplied value is 0 where it is not allowed\\nerror ZeroValueNotAllowed();\\n\\n/// @notice Checks if the provided address is nonzero, reverts otherwise\\n/// @param address_ Address to check\\n/// @custom:error ZeroAddressNotAllowed is thrown if the provided address is a zero address\\nfunction ensureNonzeroAddress(address address_) pure {\\n    if (address_ == address(0)) {\\n        revert ZeroAddressNotAllowed();\\n    }\\n}\\n\\n/// @notice Checks if the provided value is nonzero, reverts otherwise\\n/// @param value_ Value to check\\n/// @custom:error ZeroValueNotAllowed is thrown if the provided value is 0\\nfunction ensureNonzeroValue(uint256 value_) pure {\\n    if (value_ == 0) {\\n        revert ZeroValueNotAllowed();\\n    }\\n}\\n\",\"keccak256\":\"0xdb88e14d50dd21889ca3329d755673d022c47e8da005b6a545c7f69c2c4b7b86\",\"license\":\"BSD-3-Clause\"},\"contracts/Cross-chain/BaseOmnichainControllerSrc.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\n\\npragma solidity 0.8.25;\\n\\nimport { Pausable } from \\\"@openzeppelin/contracts/security/Pausable.sol\\\";\\nimport { Ownable } from \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\nimport { IAccessControlManagerV8 } from \\\"./../Governance/IAccessControlManagerV8.sol\\\";\\n\\n/**\\n * @title BaseOmnichainControllerSrc\\n * @dev This contract is the base for the Omnichain controller source contracts.\\n * It provides functionality related to daily command limits and pausability.\\n * @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion\\n */\\n\\ncontract BaseOmnichainControllerSrc is Ownable, Pausable {\\n    /**\\n     * @notice ACM (Access Control Manager) contract address\\n     */\\n    address public accessControlManager;\\n\\n    /**\\n     * @notice Maximum daily limit for commands from the local chain\\n     */\\n    mapping(uint16 => uint256) public chainIdToMaxDailyLimit;\\n\\n    /**\\n     * @notice Total commands transferred within the last 24-hour window from the local chain\\n     */\\n    mapping(uint16 => uint256) public chainIdToLast24HourCommandsSent;\\n\\n    /**\\n     * @notice Timestamp when the last 24-hour window started from the local chain\\n     */\\n    mapping(uint16 => uint256) public chainIdToLast24HourWindowStart;\\n    /**\\n     * @notice Timestamp when the last proposal sent from the local chain to dest chain\\n     */\\n    mapping(uint16 => uint256) public chainIdToLastProposalSentTimestamp;\\n\\n    /**\\n     * @notice Emitted when the maximum daily limit of commands from the local chain is modified\\n     */\\n    event SetMaxDailyLimit(uint16 indexed chainId, uint256 oldMaxLimit, uint256 newMaxLimit);\\n\\n    /**\\n     * @notice Emitted when the address of ACM is updated\\n     */\\n    event NewAccessControlManager(address indexed oldAccessControlManager, address indexed newAccessControlManager);\\n\\n    constructor(address accessControlManager_) {\\n        ensureNonzeroAddress(accessControlManager_);\\n        accessControlManager = accessControlManager_;\\n    }\\n\\n    /**\\n     * @notice Sets the limit of daily (24 Hour) command amount\\n     * @param chainId_ Destination chain id\\n     * @param limit_ Number of commands\\n     * @custom:access Controlled by AccessControlManager\\n     * @custom:event Emits SetMaxDailyLimit with old and new limit and its corresponding chain id\\n     */\\n    function setMaxDailyLimit(uint16 chainId_, uint256 limit_) external {\\n        _ensureAllowed(\\\"setMaxDailyLimit(uint16,uint256)\\\");\\n        emit SetMaxDailyLimit(chainId_, chainIdToMaxDailyLimit[chainId_], limit_);\\n        chainIdToMaxDailyLimit[chainId_] = limit_;\\n    }\\n\\n    /**\\n     * @notice Triggers the paused state of the controller\\n     * @custom:access Controlled by AccessControlManager\\n     */\\n    function pause() external {\\n        _ensureAllowed(\\\"pause()\\\");\\n        _pause();\\n    }\\n\\n    /**\\n     * @notice Triggers the resume state of the controller\\n     * @custom:access Controlled by AccessControlManager\\n     */\\n    function unpause() external {\\n        _ensureAllowed(\\\"unpause()\\\");\\n        _unpause();\\n    }\\n\\n    /**\\n     * @notice Sets the address of Access Control Manager (ACM)\\n     * @param accessControlManager_ The new address of the Access Control Manager\\n     * @custom:access Only owner\\n     * @custom:event Emits NewAccessControlManager with old and new access control manager addresses\\n     */\\n    function setAccessControlManager(address accessControlManager_) external onlyOwner {\\n        ensureNonzeroAddress(accessControlManager_);\\n        emit NewAccessControlManager(accessControlManager, accessControlManager_);\\n        accessControlManager = accessControlManager_;\\n    }\\n\\n    /**\\n     * @notice Empty implementation of renounce ownership to avoid any mishap\\n     */\\n    function renounceOwnership() public override {}\\n\\n    /**\\n     * @notice Check eligibility to send commands\\n     * @param dstChainId_ Destination chain id\\n     * @param noOfCommands_ Number of commands to send\\n     */\\n    function _isEligibleToSend(uint16 dstChainId_, uint256 noOfCommands_) internal {\\n        // Load values for the 24-hour window checks\\n        uint256 currentBlockTimestamp = block.timestamp;\\n        uint256 lastDayWindowStart = chainIdToLast24HourWindowStart[dstChainId_];\\n        uint256 commandsSentInWindow = chainIdToLast24HourCommandsSent[dstChainId_];\\n        uint256 maxDailyLimit = chainIdToMaxDailyLimit[dstChainId_];\\n        uint256 lastProposalSentTimestamp = chainIdToLastProposalSentTimestamp[dstChainId_];\\n\\n        // Check if the time window has changed (more than 24 hours have passed)\\n        if (currentBlockTimestamp - lastDayWindowStart > 1 days) {\\n            commandsSentInWindow = noOfCommands_;\\n            chainIdToLast24HourWindowStart[dstChainId_] = currentBlockTimestamp;\\n        } else {\\n            commandsSentInWindow += noOfCommands_;\\n        }\\n\\n        // Revert if the amount exceeds the daily limit\\n        require(commandsSentInWindow <= maxDailyLimit, \\\"Daily Transaction Limit Exceeded\\\");\\n        // Revert if the last proposal is already sent in current block i.e multiple proposals cannot be sent within the same block.timestamp\\n        require(lastProposalSentTimestamp != currentBlockTimestamp, \\\"Multiple bridging in a proposal\\\");\\n\\n        // Update the amount for the 24-hour window\\n        chainIdToLast24HourCommandsSent[dstChainId_] = commandsSentInWindow;\\n        // Update the last sent proposal timestamp\\n        chainIdToLastProposalSentTimestamp[dstChainId_] = currentBlockTimestamp;\\n    }\\n\\n    /**\\n     * @notice Ensure that the caller has permission to execute a specific function\\n     * @param functionSig_ Function signature to be checked for permission\\n     */\\n    function _ensureAllowed(string memory functionSig_) internal view {\\n        require(\\n            IAccessControlManagerV8(accessControlManager).isAllowedToCall(msg.sender, functionSig_),\\n            \\\"access denied\\\"\\n        );\\n    }\\n}\\n\",\"keccak256\":\"0x9c00249496928d7ae7aa0c24543acd2cdd48670749b620c7256498d094fb036a\",\"license\":\"BSD-3-Clause\"},\"contracts/Governance/IAccessControlManagerV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/access/IAccessControl.sol\\\";\\n\\n/**\\n * @title IAccessControlManagerV8\\n * @author Venus\\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\\n */\\ninterface IAccessControlManagerV8 is IAccessControl {\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\\n\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) external;\\n\\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\\n\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xaa29b098440d0b3a131c5ecdf25ce548790c1b5ac7bf9b5c0264b6af6f7a1e0b\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":6971,"contract":"contracts/Cross-chain/BaseOmnichainControllerSrc.sol:BaseOmnichainControllerSrc","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":7094,"contract":"contracts/Cross-chain/BaseOmnichainControllerSrc.sol:BaseOmnichainControllerSrc","label":"_paused","offset":20,"slot":"0","type":"t_bool"},{"astId":11146,"contract":"contracts/Cross-chain/BaseOmnichainControllerSrc.sol:BaseOmnichainControllerSrc","label":"accessControlManager","offset":0,"slot":"1","type":"t_address"},{"astId":11151,"contract":"contracts/Cross-chain/BaseOmnichainControllerSrc.sol:BaseOmnichainControllerSrc","label":"chainIdToMaxDailyLimit","offset":0,"slot":"2","type":"t_mapping(t_uint16,t_uint256)"},{"astId":11156,"contract":"contracts/Cross-chain/BaseOmnichainControllerSrc.sol:BaseOmnichainControllerSrc","label":"chainIdToLast24HourCommandsSent","offset":0,"slot":"3","type":"t_mapping(t_uint16,t_uint256)"},{"astId":11161,"contract":"contracts/Cross-chain/BaseOmnichainControllerSrc.sol:BaseOmnichainControllerSrc","label":"chainIdToLast24HourWindowStart","offset":0,"slot":"4","type":"t_mapping(t_uint16,t_uint256)"},{"astId":11166,"contract":"contracts/Cross-chain/BaseOmnichainControllerSrc.sol:BaseOmnichainControllerSrc","label":"chainIdToLastProposalSentTimestamp","offset":0,"slot":"5","type":"t_mapping(t_uint16,t_uint256)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_uint16,t_uint256)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"errors":{"ZeroAddressNotAllowed()":[{"notice":"Thrown if the supplied address is a zero address where it is not allowed"}]},"events":{"NewAccessControlManager(address,address)":{"notice":"Emitted when the address of ACM is updated"},"SetMaxDailyLimit(uint16,uint256,uint256)":{"notice":"Emitted when the maximum daily limit of commands from the local chain is modified"}},"kind":"user","methods":{"accessControlManager()":{"notice":"ACM (Access Control Manager) contract address"},"chainIdToLast24HourCommandsSent(uint16)":{"notice":"Total commands transferred within the last 24-hour window from the local chain"},"chainIdToLast24HourWindowStart(uint16)":{"notice":"Timestamp when the last 24-hour window started from the local chain"},"chainIdToLastProposalSentTimestamp(uint16)":{"notice":"Timestamp when the last proposal sent from the local chain to dest chain"},"chainIdToMaxDailyLimit(uint16)":{"notice":"Maximum daily limit for commands from the local chain"},"pause()":{"notice":"Triggers the paused state of the controller"},"renounceOwnership()":{"notice":"Empty implementation of renounce ownership to avoid any mishap"},"setAccessControlManager(address)":{"notice":"Sets the address of Access Control Manager (ACM)"},"setMaxDailyLimit(uint16,uint256)":{"notice":"Sets the limit of daily (24 Hour) command amount"},"unpause()":{"notice":"Triggers the resume state of the controller"}},"version":1}}},"contracts/Cross-chain/OmnichainExecutorOwner.sol":{"OmnichainExecutorOwner":{"abi":[{"inputs":[{"internalType":"address","name":"omnichainGovernanceExecutor_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"calledContract","type":"address"},{"internalType":"string","name":"methodSignature","type":"string"}],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"string","name":"signature","type":"string"},{"indexed":false,"internalType":"bool","name":"active","type":"bool"}],"name":"FunctionRegistryChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldAccessControlManager","type":"address"},{"indexed":false,"internalType":"address","name":"newAccessControlManager","type":"address"}],"name":"NewAccessControlManager","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","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"},{"stateMutability":"nonpayable","type":"fallback"},{"inputs":[],"name":"OMNICHAIN_GOVERNANCE_EXECUTOR","outputs":[{"internalType":"contract IOmnichainGovernanceExecutor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"accessControlManager","outputs":[{"internalType":"contract IAccessControlManagerV8","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"name":"functionRegistry","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"accessControlManager_","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"accessControlManager_","type":"address"}],"name":"setAccessControlManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"srcChainId_","type":"uint16"},{"internalType":"bytes","name":"srcAddress_","type":"bytes"}],"name":"setTrustedRemoteAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner_","type":"address"}],"name":"transferBridgeOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string[]","name":"signatures_","type":"string[]"},{"internalType":"bool[]","name":"active_","type":"bool[]"}],"name":"upsertSignature","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Venus","custom:security-contact":"https://github.com/VenusProtocol/governance-contracts#discussion","events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."}},"kind":"dev","methods":{"acceptOwnership()":{"details":"The new owner accepts the ownership transfer."},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"initialize(address)":{"params":{"accessControlManager_":"Address of access control manager"}},"owner()":{"details":"Returns the address of the current owner."},"pendingOwner()":{"details":"Returns the address of the pending owner."},"setAccessControlManager(address)":{"custom:access":"Only Governance","custom:event":"Emits NewAccessControlManager event","details":"Admin function to set address of AccessControlManager","params":{"accessControlManager_":"The new address of the AccessControlManager"}},"setTrustedRemoteAddress(uint16,bytes)":{"custom:access":"Controlled by AccessControlManager","custom:event":"Emits SetTrustedRemoteAddress with source chain Id and source address","params":{"srcAddress_":"The address of the contract on the source chain","srcChainId_":"The LayerZero id of a source chain"}},"transferBridgeOwnership(address)":{"custom:access":"Controlled by AccessControlManager","params":{"newOwner_":"New owner of the governanceExecutor"}},"transferOwnership(address)":{"details":"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner."},"upsertSignature(string[],bool[])":{"custom:access":"Only owner","params":{"active_":"bool value, should be true to add function","signatures_":"Function signature to be added or removed"}}},"stateVariables":{"OMNICHAIN_GOVERNANCE_EXECUTOR":{"custom:oz-upgrades-unsafe-allow":"state-variable-immutable"}},"title":"OmnichainExecutorOwner","version":1},"evm":{"bytecode":{"functionDebugData":{"@_11434":{"entryPoint":null,"id":11434,"parameterSlots":1,"returnSlots":0},"@_disableInitializers_6229":{"entryPoint":165,"id":6229,"parameterSlots":0,"returnSlots":0},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":353,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c39385493865630bb9b3c804a5f858917cc1a47989c0d222d56c03d1165a81a0__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:1256:97","nodeType":"YulBlock","src":"0:1256:97","statements":[{"nativeSrc":"6:3:97","nodeType":"YulBlock","src":"6:3:97","statements":[]},{"body":{"nativeSrc":"95:209:97","nodeType":"YulBlock","src":"95:209:97","statements":[{"body":{"nativeSrc":"141:16:97","nodeType":"YulBlock","src":"141:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"150:1:97","nodeType":"YulLiteral","src":"150:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"153:1:97","nodeType":"YulLiteral","src":"153:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"143:6:97","nodeType":"YulIdentifier","src":"143:6:97"},"nativeSrc":"143:12:97","nodeType":"YulFunctionCall","src":"143:12:97"},"nativeSrc":"143:12:97","nodeType":"YulExpressionStatement","src":"143:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"116:7:97","nodeType":"YulIdentifier","src":"116:7:97"},{"name":"headStart","nativeSrc":"125:9:97","nodeType":"YulIdentifier","src":"125:9:97"}],"functionName":{"name":"sub","nativeSrc":"112:3:97","nodeType":"YulIdentifier","src":"112:3:97"},"nativeSrc":"112:23:97","nodeType":"YulFunctionCall","src":"112:23:97"},{"kind":"number","nativeSrc":"137:2:97","nodeType":"YulLiteral","src":"137:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"108:3:97","nodeType":"YulIdentifier","src":"108:3:97"},"nativeSrc":"108:32:97","nodeType":"YulFunctionCall","src":"108:32:97"},"nativeSrc":"105:52:97","nodeType":"YulIf","src":"105:52:97"},{"nativeSrc":"166:29:97","nodeType":"YulVariableDeclaration","src":"166:29:97","value":{"arguments":[{"name":"headStart","nativeSrc":"185:9:97","nodeType":"YulIdentifier","src":"185:9:97"}],"functionName":{"name":"mload","nativeSrc":"179:5:97","nodeType":"YulIdentifier","src":"179:5:97"},"nativeSrc":"179:16:97","nodeType":"YulFunctionCall","src":"179:16:97"},"variables":[{"name":"value","nativeSrc":"170:5:97","nodeType":"YulTypedName","src":"170:5:97","type":""}]},{"body":{"nativeSrc":"258:16:97","nodeType":"YulBlock","src":"258:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"267:1:97","nodeType":"YulLiteral","src":"267:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"270:1:97","nodeType":"YulLiteral","src":"270:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"260:6:97","nodeType":"YulIdentifier","src":"260:6:97"},"nativeSrc":"260:12:97","nodeType":"YulFunctionCall","src":"260:12:97"},"nativeSrc":"260:12:97","nodeType":"YulExpressionStatement","src":"260:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"217:5:97","nodeType":"YulIdentifier","src":"217:5:97"},{"arguments":[{"name":"value","nativeSrc":"228:5:97","nodeType":"YulIdentifier","src":"228:5:97"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"243:3:97","nodeType":"YulLiteral","src":"243:3:97","type":"","value":"160"},{"kind":"number","nativeSrc":"248:1:97","nodeType":"YulLiteral","src":"248:1:97","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"239:3:97","nodeType":"YulIdentifier","src":"239:3:97"},"nativeSrc":"239:11:97","nodeType":"YulFunctionCall","src":"239:11:97"},{"kind":"number","nativeSrc":"252:1:97","nodeType":"YulLiteral","src":"252:1:97","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"235:3:97","nodeType":"YulIdentifier","src":"235:3:97"},"nativeSrc":"235:19:97","nodeType":"YulFunctionCall","src":"235:19:97"}],"functionName":{"name":"and","nativeSrc":"224:3:97","nodeType":"YulIdentifier","src":"224:3:97"},"nativeSrc":"224:31:97","nodeType":"YulFunctionCall","src":"224:31:97"}],"functionName":{"name":"eq","nativeSrc":"214:2:97","nodeType":"YulIdentifier","src":"214:2:97"},"nativeSrc":"214:42:97","nodeType":"YulFunctionCall","src":"214:42:97"}],"functionName":{"name":"iszero","nativeSrc":"207:6:97","nodeType":"YulIdentifier","src":"207:6:97"},"nativeSrc":"207:50:97","nodeType":"YulFunctionCall","src":"207:50:97"},"nativeSrc":"204:70:97","nodeType":"YulIf","src":"204:70:97"},{"nativeSrc":"283:15:97","nodeType":"YulAssignment","src":"283:15:97","value":{"name":"value","nativeSrc":"293:5:97","nodeType":"YulIdentifier","src":"293:5:97"},"variableNames":[{"name":"value0","nativeSrc":"283:6:97","nodeType":"YulIdentifier","src":"283:6:97"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nativeSrc":"14:290:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"61:9:97","nodeType":"YulTypedName","src":"61:9:97","type":""},{"name":"dataEnd","nativeSrc":"72:7:97","nodeType":"YulTypedName","src":"72:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"84:6:97","nodeType":"YulTypedName","src":"84:6:97","type":""}],"src":"14:290:97"},{"body":{"nativeSrc":"483:174:97","nodeType":"YulBlock","src":"483:174:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"500:9:97","nodeType":"YulIdentifier","src":"500:9:97"},{"kind":"number","nativeSrc":"511:2:97","nodeType":"YulLiteral","src":"511:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"493:6:97","nodeType":"YulIdentifier","src":"493:6:97"},"nativeSrc":"493:21:97","nodeType":"YulFunctionCall","src":"493:21:97"},"nativeSrc":"493:21:97","nodeType":"YulExpressionStatement","src":"493:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"534:9:97","nodeType":"YulIdentifier","src":"534:9:97"},{"kind":"number","nativeSrc":"545:2:97","nodeType":"YulLiteral","src":"545:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"530:3:97","nodeType":"YulIdentifier","src":"530:3:97"},"nativeSrc":"530:18:97","nodeType":"YulFunctionCall","src":"530:18:97"},{"kind":"number","nativeSrc":"550:2:97","nodeType":"YulLiteral","src":"550:2:97","type":"","value":"24"}],"functionName":{"name":"mstore","nativeSrc":"523:6:97","nodeType":"YulIdentifier","src":"523:6:97"},"nativeSrc":"523:30:97","nodeType":"YulFunctionCall","src":"523:30:97"},"nativeSrc":"523:30:97","nodeType":"YulExpressionStatement","src":"523:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"573:9:97","nodeType":"YulIdentifier","src":"573:9:97"},{"kind":"number","nativeSrc":"584:2:97","nodeType":"YulLiteral","src":"584:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"569:3:97","nodeType":"YulIdentifier","src":"569:3:97"},"nativeSrc":"569:18:97","nodeType":"YulFunctionCall","src":"569:18:97"},{"hexValue":"41646472657373206d757374206e6f74206265207a65726f","kind":"string","nativeSrc":"589:26:97","nodeType":"YulLiteral","src":"589:26:97","type":"","value":"Address must not be zero"}],"functionName":{"name":"mstore","nativeSrc":"562:6:97","nodeType":"YulIdentifier","src":"562:6:97"},"nativeSrc":"562:54:97","nodeType":"YulFunctionCall","src":"562:54:97"},"nativeSrc":"562:54:97","nodeType":"YulExpressionStatement","src":"562:54:97"},{"nativeSrc":"625:26:97","nodeType":"YulAssignment","src":"625:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"637:9:97","nodeType":"YulIdentifier","src":"637:9:97"},{"kind":"number","nativeSrc":"648:2:97","nodeType":"YulLiteral","src":"648:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"633:3:97","nodeType":"YulIdentifier","src":"633:3:97"},"nativeSrc":"633:18:97","nodeType":"YulFunctionCall","src":"633:18:97"},"variableNames":[{"name":"tail","nativeSrc":"625:4:97","nodeType":"YulIdentifier","src":"625:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_c39385493865630bb9b3c804a5f858917cc1a47989c0d222d56c03d1165a81a0__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"309:348:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"460:9:97","nodeType":"YulTypedName","src":"460:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"474:4:97","nodeType":"YulTypedName","src":"474:4:97","type":""}],"src":"309:348:97"},{"body":{"nativeSrc":"836:229:97","nodeType":"YulBlock","src":"836:229:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"853:9:97","nodeType":"YulIdentifier","src":"853:9:97"},{"kind":"number","nativeSrc":"864:2:97","nodeType":"YulLiteral","src":"864:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"846:6:97","nodeType":"YulIdentifier","src":"846:6:97"},"nativeSrc":"846:21:97","nodeType":"YulFunctionCall","src":"846:21:97"},"nativeSrc":"846:21:97","nodeType":"YulExpressionStatement","src":"846:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"887:9:97","nodeType":"YulIdentifier","src":"887:9:97"},{"kind":"number","nativeSrc":"898:2:97","nodeType":"YulLiteral","src":"898:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"883:3:97","nodeType":"YulIdentifier","src":"883:3:97"},"nativeSrc":"883:18:97","nodeType":"YulFunctionCall","src":"883:18:97"},{"kind":"number","nativeSrc":"903:2:97","nodeType":"YulLiteral","src":"903:2:97","type":"","value":"39"}],"functionName":{"name":"mstore","nativeSrc":"876:6:97","nodeType":"YulIdentifier","src":"876:6:97"},"nativeSrc":"876:30:97","nodeType":"YulFunctionCall","src":"876:30:97"},"nativeSrc":"876:30:97","nodeType":"YulExpressionStatement","src":"876:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"926:9:97","nodeType":"YulIdentifier","src":"926:9:97"},{"kind":"number","nativeSrc":"937:2:97","nodeType":"YulLiteral","src":"937:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"922:3:97","nodeType":"YulIdentifier","src":"922:3:97"},"nativeSrc":"922:18:97","nodeType":"YulFunctionCall","src":"922:18:97"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320696e697469","kind":"string","nativeSrc":"942:34:97","nodeType":"YulLiteral","src":"942:34:97","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nativeSrc":"915:6:97","nodeType":"YulIdentifier","src":"915:6:97"},"nativeSrc":"915:62:97","nodeType":"YulFunctionCall","src":"915:62:97"},"nativeSrc":"915:62:97","nodeType":"YulExpressionStatement","src":"915:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"997:9:97","nodeType":"YulIdentifier","src":"997:9:97"},{"kind":"number","nativeSrc":"1008:2:97","nodeType":"YulLiteral","src":"1008:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"993:3:97","nodeType":"YulIdentifier","src":"993:3:97"},"nativeSrc":"993:18:97","nodeType":"YulFunctionCall","src":"993:18:97"},{"hexValue":"616c697a696e67","kind":"string","nativeSrc":"1013:9:97","nodeType":"YulLiteral","src":"1013:9:97","type":"","value":"alizing"}],"functionName":{"name":"mstore","nativeSrc":"986:6:97","nodeType":"YulIdentifier","src":"986:6:97"},"nativeSrc":"986:37:97","nodeType":"YulFunctionCall","src":"986:37:97"},"nativeSrc":"986:37:97","nodeType":"YulExpressionStatement","src":"986:37:97"},{"nativeSrc":"1032:27:97","nodeType":"YulAssignment","src":"1032:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1044:9:97","nodeType":"YulIdentifier","src":"1044:9:97"},{"kind":"number","nativeSrc":"1055:3:97","nodeType":"YulLiteral","src":"1055:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"1040:3:97","nodeType":"YulIdentifier","src":"1040:3:97"},"nativeSrc":"1040:19:97","nodeType":"YulFunctionCall","src":"1040:19:97"},"variableNames":[{"name":"tail","nativeSrc":"1032:4:97","nodeType":"YulIdentifier","src":"1032:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"662:403:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"813:9:97","nodeType":"YulTypedName","src":"813:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"827:4:97","nodeType":"YulTypedName","src":"827:4:97","type":""}],"src":"662:403:97"},{"body":{"nativeSrc":"1167:87:97","nodeType":"YulBlock","src":"1167:87:97","statements":[{"nativeSrc":"1177:26:97","nodeType":"YulAssignment","src":"1177:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1189:9:97","nodeType":"YulIdentifier","src":"1189:9:97"},{"kind":"number","nativeSrc":"1200:2:97","nodeType":"YulLiteral","src":"1200:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1185:3:97","nodeType":"YulIdentifier","src":"1185:3:97"},"nativeSrc":"1185:18:97","nodeType":"YulFunctionCall","src":"1185:18:97"},"variableNames":[{"name":"tail","nativeSrc":"1177:4:97","nodeType":"YulIdentifier","src":"1177:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1219:9:97","nodeType":"YulIdentifier","src":"1219:9:97"},{"arguments":[{"name":"value0","nativeSrc":"1234:6:97","nodeType":"YulIdentifier","src":"1234:6:97"},{"kind":"number","nativeSrc":"1242:4:97","nodeType":"YulLiteral","src":"1242:4:97","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"1230:3:97","nodeType":"YulIdentifier","src":"1230:3:97"},"nativeSrc":"1230:17:97","nodeType":"YulFunctionCall","src":"1230:17:97"}],"functionName":{"name":"mstore","nativeSrc":"1212:6:97","nodeType":"YulIdentifier","src":"1212:6:97"},"nativeSrc":"1212:36:97","nodeType":"YulFunctionCall","src":"1212:36:97"},"nativeSrc":"1212:36:97","nodeType":"YulExpressionStatement","src":"1212:36:97"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"1070:184:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1136:9:97","nodeType":"YulTypedName","src":"1136:9:97","type":""},{"name":"value0","nativeSrc":"1147:6:97","nodeType":"YulTypedName","src":"1147:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1158:4:97","nodeType":"YulTypedName","src":"1158:4:97","type":""}],"src":"1070:184:97"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_c39385493865630bb9b3c804a5f858917cc1a47989c0d222d56c03d1165a81a0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 24)\n        mstore(add(headStart, 64), \"Address must not be zero\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 39)\n        mstore(add(headStart, 64), \"Initializable: contract is initi\")\n        mstore(add(headStart, 96), \"alizing\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n}","id":97,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a060405234801561001057600080fd5b50604051611c6d380380611c6d83398101604081905261002f91610161565b6001600160a01b03811661008a5760405162461bcd60e51b815260206004820152601860248201527f41646472657373206d757374206e6f74206265207a65726f000000000000000060448201526064015b60405180910390fd5b6001600160a01b03811660805261009f6100a5565b50610191565b600054610100900460ff161561010d5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608401610081565b60005460ff908116101561015f576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60006020828403121561017357600080fd5b81516001600160a01b038116811461018a57600080fd5b9392505050565b608051611aac6101c16000396000818161020701528181610357015281816106aa0152610c640152611aac6000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c806379ba50971161008c578063b4a0bdf311610066578063b4a0bdf3146103d7578063c4d66de8146103f5578063e30c397814610408578063f2fde38b14610426576100df565b806379ba50971461039e5780638da5cb5b146103a6578063a6c3d165146103c4576100df565b80634bb7453e116100bd5780634bb7453e1461033f5780635f21f75e14610352578063715018a614610301576100df565b80630e32cb86146102ee578063180d295c146103035780633f90b5401461032c575b600080357fffffffff0000000000000000000000000000000000000000000000000000000016815260c9602052604081208054369160609184919061012390611429565b80601f016020809104026020016040519081016040528092919081815260200182805461014f90611429565b801561019c5780601f106101715761010080835404028352916020019161019c565b820191906000526020600020905b81548152906001019060200180831161017f57829003601f168201915b5050505050905080516000036101f95760405162461bcd60e51b815260206004820152601260248201527f46756e6374696f6e206e6f7420666f756e64000000000000000000000000000060448201526064015b60405180910390fd5b61020281610439565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16868660405161024c92919061147c565b6000604051808303816000865af19150503d8060008114610289576040519150601f19603f3d011682016040523d82523d6000602084013e61028e565b606091505b5091509150816102e05760405162461bcd60e51b815260206004820152600b60248201527f63616c6c206661696c656400000000000000000000000000000000000000000060448201526064016101f0565b805195506020019350505050f35b6103016102fc36600461148c565b610516565b005b6103166103113660046114c9565b61052a565b604051610323919061156f565b60405180910390f35b61030161033a36600461148c565b6105c4565b61030161034d3660046115ce565b610709565b6103797f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610323565b610301610a90565b60335473ffffffffffffffffffffffffffffffffffffffff16610379565b6103016103d236600461163a565b610b28565b60975473ffffffffffffffffffffffffffffffffffffffff16610379565b61030161040336600461148c565b610cd4565b60655473ffffffffffffffffffffffffffffffffffffffff16610379565b61030161043436600461148c565b610eb1565b6097546040517f18c5e8ab00000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff16906318c5e8ab9061049290339086906004016116c6565b602060405180830381865afa1580156104af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d3919061170b565b905080610512573330836040517f4a3fa2930000000000000000000000000000000000000000000000000000000081526004016101f093929190611728565b5050565b61051e610f61565b61052781610fc8565b50565b60c9602052600090815260409020805461054390611429565b80601f016020809104026020016040519081016040528092919081815260200182805461056f90611429565b80156105bc5780601f10610591576101008083540402835291602001916105bc565b820191906000526020600020905b81548152906001019060200180831161059f57829003601f168201915b505050505081565b6106026040518060400160405280602081526020017f7472616e736665724272696467654f776e657273686970286164647265737329815250610439565b73ffffffffffffffffffffffffffffffffffffffff81166106655760405162461bcd60e51b815260206004820152601860248201527f41646472657373206d757374206e6f74206265207a65726f000000000000000060448201526064016101f0565b6040517ff2fde38b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063f2fde38b90602401600060405180830381600087803b1580156106ee57600080fd5b505af1158015610702573d6000803e3d6000fd5b5050505050565b610711610f61565b828181146107875760405162461bcd60e51b815260206004820152602660248201527f496e70757420617272617973206d7573742068617665207468652073616d652060448201527f6c656e677468000000000000000000000000000000000000000000000000000060648201526084016101f0565b60005b81811015610a865760008686838181106107a6576107a661176a565b90506020028101906107b89190611799565b6040516107c692919061147c565b60408051918290039091207fffffffff000000000000000000000000000000000000000000000000000000008116600090815260c960205291822080549193509061081090611429565b80601f016020809104026020016040519081016040528092919081815260200182805461083c90611429565b80156108895780601f1061085e57610100808354040283529160200191610889565b820191906000526020600020905b81548152906001019060200180831161086c57829003601f168201915b505050505090508585848181106108a2576108a261176a565b90506020020160208101906108b791906117fe565b80156108c257508051155b1561099b578787848181106108d9576108d961176a565b90506020028101906108eb9190611799565b7fffffffff000000000000000000000000000000000000000000000000000000008416600090815260c96020526040902091610928919083611897565b5087878481811061093b5761093b61176a565b905060200281019061094d9190611799565b60405161095b92919061147c565b60405190819003812060018252907f9d424e54f4d851aabd288f6cc4946e5726d6b5c0e66ea4ef159a3c40bcc470fa9060200160405180910390a2610a7c565b8585848181106109ad576109ad61176a565b90506020020160208101906109c291906117fe565b1580156109cf5750805115155b15610a7c577fffffffff000000000000000000000000000000000000000000000000000000008216600090815260c960205260408120610a0e916113db565b878784818110610a2057610a2061176a565b9050602002810190610a329190611799565b604051610a4092919061147c565b60405190819003812060008252907f9d424e54f4d851aabd288f6cc4946e5726d6b5c0e66ea4ef159a3c40bcc470fa9060200160405180910390a25b505060010161078a565b505050505050565b565b606554339073ffffffffffffffffffffffffffffffffffffffff168114610b1f5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e6572000000000000000000000000000000000000000000000060648201526084016101f0565b610527816110d0565b610b49604051806060016040528060258152602001611a5260259139610439565b8261ffff16600003610b9d5760405162461bcd60e51b815260206004820152601860248201527f436861696e4964206d757374206e6f74206265207a65726f000000000000000060448201526064016101f0565b610bb2610baa82846119b1565b60601c611101565b60148114610c275760405162461bcd60e51b8152602060048201526024808201527f536f757263652061646472657373206d7573742062652032302062797465732060448201527f6c6f6e670000000000000000000000000000000000000000000000000000000060648201526084016101f0565b6040517fa6c3d16500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063a6c3d16590610c9d908690869086906004016119f9565b600060405180830381600087803b158015610cb757600080fd5b505af1158015610ccb573d6000803e3d6000fd5b50505050505050565b600054610100900460ff1615808015610cf45750600054600160ff909116105b80610d0e5750303b158015610d0e575060005460ff166001145b610d805760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016101f0565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610dde57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b73ffffffffffffffffffffffffffffffffffffffff8216610e415760405162461bcd60e51b815260206004820152601860248201527f41646472657373206d757374206e6f74206265207a65726f000000000000000060448201526064016101f0565b610e4a8261114e565b801561051257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15050565b610eb9610f61565b6065805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff00000000000000000000000000000000000000009091168117909155610f1c60335473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60335473ffffffffffffffffffffffffffffffffffffffff163314610a8e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016101f0565b73ffffffffffffffffffffffffffffffffffffffff81166110515760405162461bcd60e51b815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e6167657220616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016101f0565b6097805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa09101610ea5565b606580547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055610527816111dc565b73ffffffffffffffffffffffffffffffffffffffff8116610527576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600054610100900460ff166111cb5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016101f0565b6111d3611253565b610527816112d8565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166112d05760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016101f0565b610a8e611355565b600054610100900460ff1661051e5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016101f0565b600054610100900460ff166113d25760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016101f0565b610a8e336110d0565b5080546113e790611429565b6000825580601f106113f7575050565b601f01602090049060005260206000209081019061052791905b808211156114255760008155600101611411565b5090565b600181811c9082168061143d57607f821691505b602082108103611476577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b8183823760009101908152919050565b60006020828403121561149e57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff811681146114c257600080fd5b9392505050565b6000602082840312156114db57600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146114c257600080fd5b6000815180845260005b8181101561153157602081850181015186830182015201611515565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6020815260006114c2602083018461150b565b60008083601f84011261159457600080fd5b50813567ffffffffffffffff8111156115ac57600080fd5b6020830191508360208260051b85010111156115c757600080fd5b9250929050565b600080600080604085870312156115e457600080fd5b843567ffffffffffffffff808211156115fc57600080fd5b61160888838901611582565b9096509450602087013591508082111561162157600080fd5b5061162e87828801611582565b95989497509550505050565b60008060006040848603121561164f57600080fd5b833561ffff8116811461166157600080fd5b9250602084013567ffffffffffffffff8082111561167e57600080fd5b818601915086601f83011261169257600080fd5b8135818111156116a157600080fd5b8760208285010111156116b357600080fd5b6020830194508093505050509250925092565b73ffffffffffffffffffffffffffffffffffffffff831681526040602082015260006116f5604083018461150b565b949350505050565b801515811461052757600080fd5b60006020828403121561171d57600080fd5b81516114c2816116fd565b600073ffffffffffffffffffffffffffffffffffffffff808616835280851660208401525060606040830152611761606083018461150b565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126117ce57600080fd5b83018035915067ffffffffffffffff8211156117e957600080fd5b6020019150368190038213156115c757600080fd5b60006020828403121561181057600080fd5b81356114c2816116fd565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f821115611892576000816000526020600020601f850160051c810160208610156118735750805b601f850160051c820191505b81811015610a865782815560010161187f565b505050565b67ffffffffffffffff8311156118af576118af61181b565b6118c3836118bd8354611429565b8361184a565b6000601f84116001811461191557600085156118df5750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355610702565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b828110156119645786850135825560209485019460019092019101611944565b508682101561199f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000081358181169160148510156119f15780818660140360031b1b83161692505b505092915050565b61ffff8416815260406020820152816040820152818360608301376000818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01601019291505056fe7365745472757374656452656d6f7465416464726573732875696e7431362c627974657329a2646970667358221220734fd31ef7e50b00f1576164573695dc004c9377b45a8d7e111a9e1615d68a4964736f6c63430008190033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x1C6D CODESIZE SUB DUP1 PUSH2 0x1C6D DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x161 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x8A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x41646472657373206D757374206E6F74206265207A65726F0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x80 MSTORE PUSH2 0x9F PUSH2 0xA5 JUMP JUMPDEST POP PUSH2 0x191 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x10D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x81 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND LT ISZERO PUSH2 0x15F JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x173 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x18A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x1AAC PUSH2 0x1C1 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x207 ADD MSTORE DUP2 DUP2 PUSH2 0x357 ADD MSTORE DUP2 DUP2 PUSH2 0x6AA ADD MSTORE PUSH2 0xC64 ADD MSTORE PUSH2 0x1AAC PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xDF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x79BA5097 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xB4A0BDF3 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xB4A0BDF3 EQ PUSH2 0x3D7 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x3F5 JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x408 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x426 JUMPI PUSH2 0xDF JUMP JUMPDEST DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x39E JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x3A6 JUMPI DUP1 PUSH4 0xA6C3D165 EQ PUSH2 0x3C4 JUMPI PUSH2 0xDF JUMP JUMPDEST DUP1 PUSH4 0x4BB7453E GT PUSH2 0xBD JUMPI DUP1 PUSH4 0x4BB7453E EQ PUSH2 0x33F JUMPI DUP1 PUSH4 0x5F21F75E EQ PUSH2 0x352 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x301 JUMPI PUSH2 0xDF JUMP JUMPDEST DUP1 PUSH4 0xE32CB86 EQ PUSH2 0x2EE JUMPI DUP1 PUSH4 0x180D295C EQ PUSH2 0x303 JUMPI DUP1 PUSH4 0x3F90B540 EQ PUSH2 0x32C JUMPI JUMPDEST PUSH1 0x0 DUP1 CALLDATALOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND DUP2 MSTORE PUSH1 0xC9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD CALLDATASIZE SWAP2 PUSH1 0x60 SWAP2 DUP5 SWAP2 SWAP1 PUSH2 0x123 SWAP1 PUSH2 0x1429 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x14F SWAP1 PUSH2 0x1429 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x19C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x171 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x19C JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x17F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x1F9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E206E6F7420666F756E640000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x202 DUP2 PUSH2 0x439 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x24C SWAP3 SWAP2 SWAP1 PUSH2 0x147C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x289 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x28E JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x2E0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xB PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x63616C6C206661696C6564000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1F0 JUMP JUMPDEST DUP1 MLOAD SWAP6 POP PUSH1 0x20 ADD SWAP4 POP POP POP POP RETURN JUMPDEST PUSH2 0x301 PUSH2 0x2FC CALLDATASIZE PUSH1 0x4 PUSH2 0x148C JUMP JUMPDEST PUSH2 0x516 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x316 PUSH2 0x311 CALLDATASIZE PUSH1 0x4 PUSH2 0x14C9 JUMP JUMPDEST PUSH2 0x52A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x323 SWAP2 SWAP1 PUSH2 0x156F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x301 PUSH2 0x33A CALLDATASIZE PUSH1 0x4 PUSH2 0x148C JUMP JUMPDEST PUSH2 0x5C4 JUMP JUMPDEST PUSH2 0x301 PUSH2 0x34D CALLDATASIZE PUSH1 0x4 PUSH2 0x15CE JUMP JUMPDEST PUSH2 0x709 JUMP JUMPDEST PUSH2 0x379 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x323 JUMP JUMPDEST PUSH2 0x301 PUSH2 0xA90 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x379 JUMP JUMPDEST PUSH2 0x301 PUSH2 0x3D2 CALLDATASIZE PUSH1 0x4 PUSH2 0x163A JUMP JUMPDEST PUSH2 0xB28 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x379 JUMP JUMPDEST PUSH2 0x301 PUSH2 0x403 CALLDATASIZE PUSH1 0x4 PUSH2 0x148C JUMP JUMPDEST PUSH2 0xCD4 JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x379 JUMP JUMPDEST PUSH2 0x301 PUSH2 0x434 CALLDATASIZE PUSH1 0x4 PUSH2 0x148C JUMP JUMPDEST PUSH2 0xEB1 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0x40 MLOAD PUSH32 0x18C5E8AB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x492 SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x16C6 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4AF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4D3 SWAP2 SWAP1 PUSH2 0x170B JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x512 JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH32 0x4A3FA29300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1F0 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1728 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x51E PUSH2 0xF61 JUMP JUMPDEST PUSH2 0x527 DUP2 PUSH2 0xFC8 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0xC9 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x543 SWAP1 PUSH2 0x1429 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x56F SWAP1 PUSH2 0x1429 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x5BC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x591 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x5BC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x59F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0x602 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x7472616E736665724272696467654F776E657273686970286164647265737329 DUP2 MSTORE POP PUSH2 0x439 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x665 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x41646472657373206D757374206E6F74206265207A65726F0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH32 0x0 AND SWAP1 PUSH4 0xF2FDE38B SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x6EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x702 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x711 PUSH2 0xF61 JUMP JUMPDEST DUP3 DUP2 DUP2 EQ PUSH2 0x787 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E70757420617272617973206D7573742068617665207468652073616D6520 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C656E6774680000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xA86 JUMPI PUSH1 0x0 DUP7 DUP7 DUP4 DUP2 DUP2 LT PUSH2 0x7A6 JUMPI PUSH2 0x7A6 PUSH2 0x176A JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x7B8 SWAP2 SWAP1 PUSH2 0x1799 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x7C6 SWAP3 SWAP2 SWAP1 PUSH2 0x147C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC9 PUSH1 0x20 MSTORE SWAP2 DUP3 KECCAK256 DUP1 SLOAD SWAP2 SWAP4 POP SWAP1 PUSH2 0x810 SWAP1 PUSH2 0x1429 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x83C SWAP1 PUSH2 0x1429 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x889 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x85E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x889 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x86C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP6 DUP6 DUP5 DUP2 DUP2 LT PUSH2 0x8A2 JUMPI PUSH2 0x8A2 PUSH2 0x176A JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x8B7 SWAP2 SWAP1 PUSH2 0x17FE JUMP JUMPDEST DUP1 ISZERO PUSH2 0x8C2 JUMPI POP DUP1 MLOAD ISZERO JUMPDEST ISZERO PUSH2 0x99B JUMPI DUP8 DUP8 DUP5 DUP2 DUP2 LT PUSH2 0x8D9 JUMPI PUSH2 0x8D9 PUSH2 0x176A JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x8EB SWAP2 SWAP1 PUSH2 0x1799 JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 PUSH2 0x928 SWAP2 SWAP1 DUP4 PUSH2 0x1897 JUMP JUMPDEST POP DUP8 DUP8 DUP5 DUP2 DUP2 LT PUSH2 0x93B JUMPI PUSH2 0x93B PUSH2 0x176A JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x94D SWAP2 SWAP1 PUSH2 0x1799 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x95B SWAP3 SWAP2 SWAP1 PUSH2 0x147C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 PUSH1 0x1 DUP3 MSTORE SWAP1 PUSH32 0x9D424E54F4D851AABD288F6CC4946E5726D6B5C0E66EA4EF159A3C40BCC470FA SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH2 0xA7C JUMP JUMPDEST DUP6 DUP6 DUP5 DUP2 DUP2 LT PUSH2 0x9AD JUMPI PUSH2 0x9AD PUSH2 0x176A JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x9C2 SWAP2 SWAP1 PUSH2 0x17FE JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0x9CF JUMPI POP DUP1 MLOAD ISZERO ISZERO JUMPDEST ISZERO PUSH2 0xA7C JUMPI PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0xA0E SWAP2 PUSH2 0x13DB JUMP JUMPDEST DUP8 DUP8 DUP5 DUP2 DUP2 LT PUSH2 0xA20 JUMPI PUSH2 0xA20 PUSH2 0x176A JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0xA32 SWAP2 SWAP1 PUSH2 0x1799 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA40 SWAP3 SWAP2 SWAP1 PUSH2 0x147C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 PUSH1 0x0 DUP3 MSTORE SWAP1 PUSH32 0x9D424E54F4D851AABD288F6CC4946E5726D6B5C0E66EA4EF159A3C40BCC470FA SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 JUMPDEST POP POP PUSH1 0x1 ADD PUSH2 0x78A JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x65 SLOAD CALLER SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 EQ PUSH2 0xB1F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C6532537465703A2063616C6C6572206973206E6F742074686520 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E6577206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH2 0x527 DUP2 PUSH2 0x10D0 JUMP JUMPDEST PUSH2 0xB49 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1A52 PUSH1 0x25 SWAP2 CODECOPY PUSH2 0x439 JUMP JUMPDEST DUP3 PUSH2 0xFFFF AND PUSH1 0x0 SUB PUSH2 0xB9D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x436861696E4964206D757374206E6F74206265207A65726F0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH2 0xBB2 PUSH2 0xBAA DUP3 DUP5 PUSH2 0x19B1 JUMP JUMPDEST PUSH1 0x60 SHR PUSH2 0x1101 JUMP JUMPDEST PUSH1 0x14 DUP2 EQ PUSH2 0xC27 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x536F757263652061646472657373206D75737420626520323020627974657320 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C6F6E6700000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xA6C3D16500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 AND SWAP1 PUSH4 0xA6C3D165 SWAP1 PUSH2 0xC9D SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x19F9 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCB7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCCB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0xCF4 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0xD0E JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD0E JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0xD80 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x647920696E697469616C697A6564000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0xDDE JUMPI PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH2 0xE41 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x41646472657373206D757374206E6F74206265207A65726F0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH2 0xE4A DUP3 PUSH2 0x114E JUMP JUMPDEST DUP1 ISZERO PUSH2 0x512 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH2 0xEB9 PUSH2 0xF61 JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP1 SWAP2 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0xF1C PUSH1 0x33 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0xA8E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x1051 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C696420616365737320636F6E74726F6C206D616E61676572206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 SWAP1 SWAP3 AND DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH32 0x66FD58E82F7B31A2A5C30E0888F3093EFE4E111B00CD2B0C31FE014601293AA0 SWAP2 ADD PUSH2 0xEA5 JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND SWAP1 SSTORE PUSH2 0x527 DUP2 PUSH2 0x11DC JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x527 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8579BEFE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x11CB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH2 0x11D3 PUSH2 0x1253 JUMP JUMPDEST PUSH2 0x527 DUP2 PUSH2 0x12D8 JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x12D0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH2 0xA8E PUSH2 0x1355 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x51E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x13D2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH2 0xA8E CALLER PUSH2 0x10D0 JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x13E7 SWAP1 PUSH2 0x1429 JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x13F7 JUMPI POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x527 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x1425 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x1411 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x143D JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1476 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x149E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x14C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND DUP2 EQ PUSH2 0x14C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1531 JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x1515 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x14C2 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x150B JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1594 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x15AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0x15C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x15E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x15FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1608 DUP9 DUP4 DUP10 ADD PUSH2 0x1582 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1621 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x162E DUP8 DUP3 DUP9 ADD PUSH2 0x1582 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x164F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x1661 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x167E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1692 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x16A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x16B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP5 POP DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x16F5 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x150B JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x527 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x171D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x14C2 DUP2 PUSH2 0x16FD JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP7 AND DUP4 MSTORE DUP1 DUP6 AND PUSH1 0x20 DUP5 ADD MSTORE POP PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x1761 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x150B JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x17CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x17E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x15C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1810 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x14C2 DUP2 PUSH2 0x16FD JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1892 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x1873 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xA86 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x187F JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP4 GT ISZERO PUSH2 0x18AF JUMPI PUSH2 0x18AF PUSH2 0x181B JUMP JUMPDEST PUSH2 0x18C3 DUP4 PUSH2 0x18BD DUP4 SLOAD PUSH2 0x1429 JUMP JUMPDEST DUP4 PUSH2 0x184A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP5 GT PUSH1 0x1 DUP2 EQ PUSH2 0x1915 JUMPI PUSH1 0x0 DUP6 ISZERO PUSH2 0x18DF JUMPI POP DUP4 DUP3 ADD CALLDATALOAD JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP8 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP7 SWAP1 SHL OR DUP4 SSTORE PUSH2 0x702 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP7 AND SWAP1 DUP4 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1964 JUMPI DUP7 DUP6 ADD CALLDATALOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x1944 JUMP JUMPDEST POP DUP7 DUP3 LT ISZERO PUSH2 0x199F JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0xF8 DUP9 PUSH1 0x3 SHL AND SHR NOT DUP5 DUP8 ADD CALLDATALOAD AND DUP2 SSTORE JUMPDEST POP POP PUSH1 0x1 DUP6 PUSH1 0x1 SHL ADD DUP4 SSTORE POP POP POP POP POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 DUP2 CALLDATALOAD DUP2 DUP2 AND SWAP2 PUSH1 0x14 DUP6 LT ISZERO PUSH2 0x19F1 JUMPI DUP1 DUP2 DUP7 PUSH1 0x14 SUB PUSH1 0x3 SHL SHL DUP4 AND AND SWAP3 POP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE DUP2 PUSH1 0x40 DUP3 ADD MSTORE DUP2 DUP4 PUSH1 0x60 DUP4 ADD CALLDATACOPY PUSH1 0x0 DUP2 DUP4 ADD PUSH1 0x60 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP3 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND ADD ADD SWAP3 SWAP2 POP POP JUMP INVALID PUSH20 0x65745472757374656452656D6F74654164647265 PUSH20 0x732875696E7431362C627974657329A264697066 PUSH20 0x58221220734FD31EF7E50B00F1576164573695DC STOP 0x4C SWAP4 PUSH24 0xB45A8D7E111A9E1615D68A4964736F6C6343000819003300 ","sourceMap":"734:4458:51:-:0;;;1317:278;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1385:42:51;;1377:79;;;;-1:-1:-1;;;1377:79:51;;511:2:97;1377:79:51;;;493:21:97;550:2;530:18;;;523:30;589:26;569:18;;;562:54;633:18;;1377:79:51;;;;;;;;;-1:-1:-1;;;;;1466:90:51;;;;1566:22;:20;:22::i;:::-;1317:278;734:4458;;5928:279:27;5996:13;;;;;;;5995:14;5987:66;;;;-1:-1:-1;;;5987:66:27;;864:2:97;5987:66:27;;;846:21:97;903:2;883:18;;;876:30;942:34;922:18;;;915:62;-1:-1:-1;;;993:18:97;;;986:37;1040:19;;5987:66:27;662:403:97;5987:66:27;6067:12;;6082:15;6067:12;;;:30;6063:138;;;6113:12;:30;;-1:-1:-1;;6113:30:27;6128:15;6113:30;;;;;;6162:28;;1212:36:97;;;6162:28:27;;1200:2:97;1185:18;6162:28:27;;;;;;;6063:138;5928:279::o;14:290:97:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:97;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:97:o;1070:184::-;734:4458:51;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@OMNICHAIN_GOVERNANCE_EXECUTOR_11396":{"entryPoint":null,"id":11396,"parameterSlots":0,"returnSlots":0},"@_11555":{"entryPoint":null,"id":11555,"parameterSlots":2,"returnSlots":1},"@__AccessControlled_init_13754":{"entryPoint":4430,"id":13754,"parameterSlots":1,"returnSlots":0},"@__AccessControlled_init_unchained_13766":{"entryPoint":4824,"id":13766,"parameterSlots":1,"returnSlots":0},"@__Ownable2Step_init_5859":{"entryPoint":4691,"id":5859,"parameterSlots":0,"returnSlots":0},"@__Ownable_init_unchained_5985":{"entryPoint":4949,"id":5985,"parameterSlots":0,"returnSlots":0},"@_checkAccessAllowed_13857":{"entryPoint":1081,"id":13857,"parameterSlots":1,"returnSlots":0},"@_checkOwner_6016":{"entryPoint":3937,"id":6016,"parameterSlots":0,"returnSlots":0},"@_msgSender_6559":{"entryPoint":null,"id":6559,"parameterSlots":0,"returnSlots":1},"@_setAccessControlManager_13827":{"entryPoint":4040,"id":13827,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_5919":{"entryPoint":4304,"id":5919,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_6073":{"entryPoint":4572,"id":6073,"parameterSlots":1,"returnSlots":0},"@acceptOwnership_5941":{"entryPoint":2704,"id":5941,"parameterSlots":0,"returnSlots":0},"@accessControlManager_13789":{"entryPoint":null,"id":13789,"parameterSlots":0,"returnSlots":1},"@ensureNonzeroAddress_10945":{"entryPoint":4353,"id":10945,"parameterSlots":1,"returnSlots":0},"@functionRegistry_11401":{"entryPoint":1322,"id":11401,"parameterSlots":0,"returnSlots":0},"@initialize_11457":{"entryPoint":3284,"id":11457,"parameterSlots":1,"returnSlots":0},"@isContract_6266":{"entryPoint":null,"id":6266,"parameterSlots":1,"returnSlots":1},"@owner_6002":{"entryPoint":null,"id":6002,"parameterSlots":0,"returnSlots":1},"@pendingOwner_5882":{"entryPoint":null,"id":5882,"parameterSlots":0,"returnSlots":1},"@renounceOwnership_11696":{"entryPoint":2702,"id":11696,"parameterSlots":0,"returnSlots":0},"@setAccessControlManager_13779":{"entryPoint":1302,"id":13779,"parameterSlots":1,"returnSlots":0},"@setTrustedRemoteAddress_11505":{"entryPoint":2856,"id":11505,"parameterSlots":3,"returnSlots":0},"@transferBridgeOwnership_11690":{"entryPoint":1476,"id":11690,"parameterSlots":1,"returnSlots":0},"@transferOwnership_5902":{"entryPoint":3761,"id":5902,"parameterSlots":1,"returnSlots":0},"@upsertSignature_11663":{"entryPoint":1801,"id":11663,"parameterSlots":4,"returnSlots":0},"abi_decode_array_string_calldata_dyn_calldata":{"entryPoint":5506,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address":{"entryPoint":5260,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_array$_t_string_calldata_ptr_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr":{"entryPoint":5582,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_bool":{"entryPoint":6142,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":5899,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":5321,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint16t_bytes_calldata_ptr":{"entryPoint":5690,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_string":{"entryPoint":5387,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":5244,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_string_calldata_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5928,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5830,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$13903__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IOmnichainGovernanceExecutor_$13445__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5487,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_25330637c37e740ba17926890288a3211f1ce0916deecf251da03c3bc20367a1__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_8c7d7f44a93d75a90a1d7078d1656040bea1969f911d1ad279bc9b0194f1b13e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9a39bc466e8dc485b140962f2bafd9bf984c501b349d0866987f6e3bcf7433c3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_a04f7977a7361020e07a160885cb05178aa6d9ff17ec37e942914b4316b9352a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b9c7f9fb4d10afcebf26c5daf76290a584c3f270eee838d3acb27fb2fe13b11d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c39385493865630bb9b3c804a5f858917cc1a47989c0d222d56c03d1165a81a0__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":6649,"id":null,"parameterSlots":4,"returnSlots":1},"access_calldata_tail_t_string_calldata_ptr":{"entryPoint":6041,"id":null,"parameterSlots":2,"returnSlots":2},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":6218,"id":null,"parameterSlots":3,"returnSlots":0},"convert_bytes_to_fixedbytes_from_t_bytes_calldata_ptr_to_t_bytes20":{"entryPoint":6577,"id":null,"parameterSlots":2,"returnSlots":1},"copy_byte_array_to_storage_from_t_string_calldata_ptr_to_t_string_storage":{"entryPoint":6295,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":5161,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x32":{"entryPoint":5994,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":6171,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_bool":{"entryPoint":5885,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:15525:97","nodeType":"YulBlock","src":"0:15525:97","statements":[{"nativeSrc":"6:3:97","nodeType":"YulBlock","src":"6:3:97","statements":[]},{"body":{"nativeSrc":"69:382:97","nodeType":"YulBlock","src":"69:382:97","statements":[{"nativeSrc":"79:22:97","nodeType":"YulAssignment","src":"79:22:97","value":{"arguments":[{"kind":"number","nativeSrc":"93:1:97","nodeType":"YulLiteral","src":"93:1:97","type":"","value":"1"},{"name":"data","nativeSrc":"96:4:97","nodeType":"YulIdentifier","src":"96:4:97"}],"functionName":{"name":"shr","nativeSrc":"89:3:97","nodeType":"YulIdentifier","src":"89:3:97"},"nativeSrc":"89:12:97","nodeType":"YulFunctionCall","src":"89:12:97"},"variableNames":[{"name":"length","nativeSrc":"79:6:97","nodeType":"YulIdentifier","src":"79:6:97"}]},{"nativeSrc":"110:38:97","nodeType":"YulVariableDeclaration","src":"110:38:97","value":{"arguments":[{"name":"data","nativeSrc":"140:4:97","nodeType":"YulIdentifier","src":"140:4:97"},{"kind":"number","nativeSrc":"146:1:97","nodeType":"YulLiteral","src":"146:1:97","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"136:3:97","nodeType":"YulIdentifier","src":"136:3:97"},"nativeSrc":"136:12:97","nodeType":"YulFunctionCall","src":"136:12:97"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"114:18:97","nodeType":"YulTypedName","src":"114:18:97","type":""}]},{"body":{"nativeSrc":"187:31:97","nodeType":"YulBlock","src":"187:31:97","statements":[{"nativeSrc":"189:27:97","nodeType":"YulAssignment","src":"189:27:97","value":{"arguments":[{"name":"length","nativeSrc":"203:6:97","nodeType":"YulIdentifier","src":"203:6:97"},{"kind":"number","nativeSrc":"211:4:97","nodeType":"YulLiteral","src":"211:4:97","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"199:3:97","nodeType":"YulIdentifier","src":"199:3:97"},"nativeSrc":"199:17:97","nodeType":"YulFunctionCall","src":"199:17:97"},"variableNames":[{"name":"length","nativeSrc":"189:6:97","nodeType":"YulIdentifier","src":"189:6:97"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"167:18:97","nodeType":"YulIdentifier","src":"167:18:97"}],"functionName":{"name":"iszero","nativeSrc":"160:6:97","nodeType":"YulIdentifier","src":"160:6:97"},"nativeSrc":"160:26:97","nodeType":"YulFunctionCall","src":"160:26:97"},"nativeSrc":"157:61:97","nodeType":"YulIf","src":"157:61:97"},{"body":{"nativeSrc":"277:168:97","nodeType":"YulBlock","src":"277:168:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"298:1:97","nodeType":"YulLiteral","src":"298:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"301:77:97","nodeType":"YulLiteral","src":"301:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"291:6:97","nodeType":"YulIdentifier","src":"291:6:97"},"nativeSrc":"291:88:97","nodeType":"YulFunctionCall","src":"291:88:97"},"nativeSrc":"291:88:97","nodeType":"YulExpressionStatement","src":"291:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"399:1:97","nodeType":"YulLiteral","src":"399:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"402:4:97","nodeType":"YulLiteral","src":"402:4:97","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"392:6:97","nodeType":"YulIdentifier","src":"392:6:97"},"nativeSrc":"392:15:97","nodeType":"YulFunctionCall","src":"392:15:97"},"nativeSrc":"392:15:97","nodeType":"YulExpressionStatement","src":"392:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"427:1:97","nodeType":"YulLiteral","src":"427:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"430:4:97","nodeType":"YulLiteral","src":"430:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"420:6:97","nodeType":"YulIdentifier","src":"420:6:97"},"nativeSrc":"420:15:97","nodeType":"YulFunctionCall","src":"420:15:97"},"nativeSrc":"420:15:97","nodeType":"YulExpressionStatement","src":"420:15:97"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"233:18:97","nodeType":"YulIdentifier","src":"233:18:97"},{"arguments":[{"name":"length","nativeSrc":"256:6:97","nodeType":"YulIdentifier","src":"256:6:97"},{"kind":"number","nativeSrc":"264:2:97","nodeType":"YulLiteral","src":"264:2:97","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"253:2:97","nodeType":"YulIdentifier","src":"253:2:97"},"nativeSrc":"253:14:97","nodeType":"YulFunctionCall","src":"253:14:97"}],"functionName":{"name":"eq","nativeSrc":"230:2:97","nodeType":"YulIdentifier","src":"230:2:97"},"nativeSrc":"230:38:97","nodeType":"YulFunctionCall","src":"230:38:97"},"nativeSrc":"227:218:97","nodeType":"YulIf","src":"227:218:97"}]},"name":"extract_byte_array_length","nativeSrc":"14:437:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"49:4:97","nodeType":"YulTypedName","src":"49:4:97","type":""}],"returnVariables":[{"name":"length","nativeSrc":"58:6:97","nodeType":"YulTypedName","src":"58:6:97","type":""}],"src":"14:437:97"},{"body":{"nativeSrc":"630:168:97","nodeType":"YulBlock","src":"630:168:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"647:9:97","nodeType":"YulIdentifier","src":"647:9:97"},{"kind":"number","nativeSrc":"658:2:97","nodeType":"YulLiteral","src":"658:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"640:6:97","nodeType":"YulIdentifier","src":"640:6:97"},"nativeSrc":"640:21:97","nodeType":"YulFunctionCall","src":"640:21:97"},"nativeSrc":"640:21:97","nodeType":"YulExpressionStatement","src":"640:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"681:9:97","nodeType":"YulIdentifier","src":"681:9:97"},{"kind":"number","nativeSrc":"692:2:97","nodeType":"YulLiteral","src":"692:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"677:3:97","nodeType":"YulIdentifier","src":"677:3:97"},"nativeSrc":"677:18:97","nodeType":"YulFunctionCall","src":"677:18:97"},{"kind":"number","nativeSrc":"697:2:97","nodeType":"YulLiteral","src":"697:2:97","type":"","value":"18"}],"functionName":{"name":"mstore","nativeSrc":"670:6:97","nodeType":"YulIdentifier","src":"670:6:97"},"nativeSrc":"670:30:97","nodeType":"YulFunctionCall","src":"670:30:97"},"nativeSrc":"670:30:97","nodeType":"YulExpressionStatement","src":"670:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"720:9:97","nodeType":"YulIdentifier","src":"720:9:97"},{"kind":"number","nativeSrc":"731:2:97","nodeType":"YulLiteral","src":"731:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"716:3:97","nodeType":"YulIdentifier","src":"716:3:97"},"nativeSrc":"716:18:97","nodeType":"YulFunctionCall","src":"716:18:97"},{"hexValue":"46756e6374696f6e206e6f7420666f756e64","kind":"string","nativeSrc":"736:20:97","nodeType":"YulLiteral","src":"736:20:97","type":"","value":"Function not found"}],"functionName":{"name":"mstore","nativeSrc":"709:6:97","nodeType":"YulIdentifier","src":"709:6:97"},"nativeSrc":"709:48:97","nodeType":"YulFunctionCall","src":"709:48:97"},"nativeSrc":"709:48:97","nodeType":"YulExpressionStatement","src":"709:48:97"},{"nativeSrc":"766:26:97","nodeType":"YulAssignment","src":"766:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"778:9:97","nodeType":"YulIdentifier","src":"778:9:97"},{"kind":"number","nativeSrc":"789:2:97","nodeType":"YulLiteral","src":"789:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"774:3:97","nodeType":"YulIdentifier","src":"774:3:97"},"nativeSrc":"774:18:97","nodeType":"YulFunctionCall","src":"774:18:97"},"variableNames":[{"name":"tail","nativeSrc":"766:4:97","nodeType":"YulIdentifier","src":"766:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_b9c7f9fb4d10afcebf26c5daf76290a584c3f270eee838d3acb27fb2fe13b11d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"456:342:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"607:9:97","nodeType":"YulTypedName","src":"607:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"621:4:97","nodeType":"YulTypedName","src":"621:4:97","type":""}],"src":"456:342:97"},{"body":{"nativeSrc":"950:124:97","nodeType":"YulBlock","src":"950:124:97","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"973:3:97","nodeType":"YulIdentifier","src":"973:3:97"},{"name":"value0","nativeSrc":"978:6:97","nodeType":"YulIdentifier","src":"978:6:97"},{"name":"value1","nativeSrc":"986:6:97","nodeType":"YulIdentifier","src":"986:6:97"}],"functionName":{"name":"calldatacopy","nativeSrc":"960:12:97","nodeType":"YulIdentifier","src":"960:12:97"},"nativeSrc":"960:33:97","nodeType":"YulFunctionCall","src":"960:33:97"},"nativeSrc":"960:33:97","nodeType":"YulExpressionStatement","src":"960:33:97"},{"nativeSrc":"1002:26:97","nodeType":"YulVariableDeclaration","src":"1002:26:97","value":{"arguments":[{"name":"pos","nativeSrc":"1016:3:97","nodeType":"YulIdentifier","src":"1016:3:97"},{"name":"value1","nativeSrc":"1021:6:97","nodeType":"YulIdentifier","src":"1021:6:97"}],"functionName":{"name":"add","nativeSrc":"1012:3:97","nodeType":"YulIdentifier","src":"1012:3:97"},"nativeSrc":"1012:16:97","nodeType":"YulFunctionCall","src":"1012:16:97"},"variables":[{"name":"_1","nativeSrc":"1006:2:97","nodeType":"YulTypedName","src":"1006:2:97","type":""}]},{"expression":{"arguments":[{"name":"_1","nativeSrc":"1044:2:97","nodeType":"YulIdentifier","src":"1044:2:97"},{"kind":"number","nativeSrc":"1048:1:97","nodeType":"YulLiteral","src":"1048:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"1037:6:97","nodeType":"YulIdentifier","src":"1037:6:97"},"nativeSrc":"1037:13:97","nodeType":"YulFunctionCall","src":"1037:13:97"},"nativeSrc":"1037:13:97","nodeType":"YulExpressionStatement","src":"1037:13:97"},{"nativeSrc":"1059:9:97","nodeType":"YulAssignment","src":"1059:9:97","value":{"name":"_1","nativeSrc":"1066:2:97","nodeType":"YulIdentifier","src":"1066:2:97"},"variableNames":[{"name":"end","nativeSrc":"1059:3:97","nodeType":"YulIdentifier","src":"1059:3:97"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"803:271:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"918:3:97","nodeType":"YulTypedName","src":"918:3:97","type":""},{"name":"value1","nativeSrc":"923:6:97","nodeType":"YulTypedName","src":"923:6:97","type":""},{"name":"value0","nativeSrc":"931:6:97","nodeType":"YulTypedName","src":"931:6:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"942:3:97","nodeType":"YulTypedName","src":"942:3:97","type":""}],"src":"803:271:97"},{"body":{"nativeSrc":"1253:161:97","nodeType":"YulBlock","src":"1253:161:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1270:9:97","nodeType":"YulIdentifier","src":"1270:9:97"},{"kind":"number","nativeSrc":"1281:2:97","nodeType":"YulLiteral","src":"1281:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"1263:6:97","nodeType":"YulIdentifier","src":"1263:6:97"},"nativeSrc":"1263:21:97","nodeType":"YulFunctionCall","src":"1263:21:97"},"nativeSrc":"1263:21:97","nodeType":"YulExpressionStatement","src":"1263:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1304:9:97","nodeType":"YulIdentifier","src":"1304:9:97"},{"kind":"number","nativeSrc":"1315:2:97","nodeType":"YulLiteral","src":"1315:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1300:3:97","nodeType":"YulIdentifier","src":"1300:3:97"},"nativeSrc":"1300:18:97","nodeType":"YulFunctionCall","src":"1300:18:97"},{"kind":"number","nativeSrc":"1320:2:97","nodeType":"YulLiteral","src":"1320:2:97","type":"","value":"11"}],"functionName":{"name":"mstore","nativeSrc":"1293:6:97","nodeType":"YulIdentifier","src":"1293:6:97"},"nativeSrc":"1293:30:97","nodeType":"YulFunctionCall","src":"1293:30:97"},"nativeSrc":"1293:30:97","nodeType":"YulExpressionStatement","src":"1293:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1343:9:97","nodeType":"YulIdentifier","src":"1343:9:97"},{"kind":"number","nativeSrc":"1354:2:97","nodeType":"YulLiteral","src":"1354:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1339:3:97","nodeType":"YulIdentifier","src":"1339:3:97"},"nativeSrc":"1339:18:97","nodeType":"YulFunctionCall","src":"1339:18:97"},{"hexValue":"63616c6c206661696c6564","kind":"string","nativeSrc":"1359:13:97","nodeType":"YulLiteral","src":"1359:13:97","type":"","value":"call failed"}],"functionName":{"name":"mstore","nativeSrc":"1332:6:97","nodeType":"YulIdentifier","src":"1332:6:97"},"nativeSrc":"1332:41:97","nodeType":"YulFunctionCall","src":"1332:41:97"},"nativeSrc":"1332:41:97","nodeType":"YulExpressionStatement","src":"1332:41:97"},{"nativeSrc":"1382:26:97","nodeType":"YulAssignment","src":"1382:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1394:9:97","nodeType":"YulIdentifier","src":"1394:9:97"},{"kind":"number","nativeSrc":"1405:2:97","nodeType":"YulLiteral","src":"1405:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"1390:3:97","nodeType":"YulIdentifier","src":"1390:3:97"},"nativeSrc":"1390:18:97","nodeType":"YulFunctionCall","src":"1390:18:97"},"variableNames":[{"name":"tail","nativeSrc":"1382:4:97","nodeType":"YulIdentifier","src":"1382:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_a04f7977a7361020e07a160885cb05178aa6d9ff17ec37e942914b4316b9352a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"1079:335:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1230:9:97","nodeType":"YulTypedName","src":"1230:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1244:4:97","nodeType":"YulTypedName","src":"1244:4:97","type":""}],"src":"1079:335:97"},{"body":{"nativeSrc":"1489:239:97","nodeType":"YulBlock","src":"1489:239:97","statements":[{"body":{"nativeSrc":"1535:16:97","nodeType":"YulBlock","src":"1535:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1544:1:97","nodeType":"YulLiteral","src":"1544:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1547:1:97","nodeType":"YulLiteral","src":"1547:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1537:6:97","nodeType":"YulIdentifier","src":"1537:6:97"},"nativeSrc":"1537:12:97","nodeType":"YulFunctionCall","src":"1537:12:97"},"nativeSrc":"1537:12:97","nodeType":"YulExpressionStatement","src":"1537:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1510:7:97","nodeType":"YulIdentifier","src":"1510:7:97"},{"name":"headStart","nativeSrc":"1519:9:97","nodeType":"YulIdentifier","src":"1519:9:97"}],"functionName":{"name":"sub","nativeSrc":"1506:3:97","nodeType":"YulIdentifier","src":"1506:3:97"},"nativeSrc":"1506:23:97","nodeType":"YulFunctionCall","src":"1506:23:97"},{"kind":"number","nativeSrc":"1531:2:97","nodeType":"YulLiteral","src":"1531:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1502:3:97","nodeType":"YulIdentifier","src":"1502:3:97"},"nativeSrc":"1502:32:97","nodeType":"YulFunctionCall","src":"1502:32:97"},"nativeSrc":"1499:52:97","nodeType":"YulIf","src":"1499:52:97"},{"nativeSrc":"1560:36:97","nodeType":"YulVariableDeclaration","src":"1560:36:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1586:9:97","nodeType":"YulIdentifier","src":"1586:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"1573:12:97","nodeType":"YulIdentifier","src":"1573:12:97"},"nativeSrc":"1573:23:97","nodeType":"YulFunctionCall","src":"1573:23:97"},"variables":[{"name":"value","nativeSrc":"1564:5:97","nodeType":"YulTypedName","src":"1564:5:97","type":""}]},{"body":{"nativeSrc":"1682:16:97","nodeType":"YulBlock","src":"1682:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1691:1:97","nodeType":"YulLiteral","src":"1691:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1694:1:97","nodeType":"YulLiteral","src":"1694:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1684:6:97","nodeType":"YulIdentifier","src":"1684:6:97"},"nativeSrc":"1684:12:97","nodeType":"YulFunctionCall","src":"1684:12:97"},"nativeSrc":"1684:12:97","nodeType":"YulExpressionStatement","src":"1684:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1618:5:97","nodeType":"YulIdentifier","src":"1618:5:97"},{"arguments":[{"name":"value","nativeSrc":"1629:5:97","nodeType":"YulIdentifier","src":"1629:5:97"},{"kind":"number","nativeSrc":"1636:42:97","nodeType":"YulLiteral","src":"1636:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1625:3:97","nodeType":"YulIdentifier","src":"1625:3:97"},"nativeSrc":"1625:54:97","nodeType":"YulFunctionCall","src":"1625:54:97"}],"functionName":{"name":"eq","nativeSrc":"1615:2:97","nodeType":"YulIdentifier","src":"1615:2:97"},"nativeSrc":"1615:65:97","nodeType":"YulFunctionCall","src":"1615:65:97"}],"functionName":{"name":"iszero","nativeSrc":"1608:6:97","nodeType":"YulIdentifier","src":"1608:6:97"},"nativeSrc":"1608:73:97","nodeType":"YulFunctionCall","src":"1608:73:97"},"nativeSrc":"1605:93:97","nodeType":"YulIf","src":"1605:93:97"},{"nativeSrc":"1707:15:97","nodeType":"YulAssignment","src":"1707:15:97","value":{"name":"value","nativeSrc":"1717:5:97","nodeType":"YulIdentifier","src":"1717:5:97"},"variableNames":[{"name":"value0","nativeSrc":"1707:6:97","nodeType":"YulIdentifier","src":"1707:6:97"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"1419:309:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1455:9:97","nodeType":"YulTypedName","src":"1455:9:97","type":""},{"name":"dataEnd","nativeSrc":"1466:7:97","nodeType":"YulTypedName","src":"1466:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1478:6:97","nodeType":"YulTypedName","src":"1478:6:97","type":""}],"src":"1419:309:97"},{"body":{"nativeSrc":"1802:263:97","nodeType":"YulBlock","src":"1802:263:97","statements":[{"body":{"nativeSrc":"1848:16:97","nodeType":"YulBlock","src":"1848:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1857:1:97","nodeType":"YulLiteral","src":"1857:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1860:1:97","nodeType":"YulLiteral","src":"1860:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1850:6:97","nodeType":"YulIdentifier","src":"1850:6:97"},"nativeSrc":"1850:12:97","nodeType":"YulFunctionCall","src":"1850:12:97"},"nativeSrc":"1850:12:97","nodeType":"YulExpressionStatement","src":"1850:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1823:7:97","nodeType":"YulIdentifier","src":"1823:7:97"},{"name":"headStart","nativeSrc":"1832:9:97","nodeType":"YulIdentifier","src":"1832:9:97"}],"functionName":{"name":"sub","nativeSrc":"1819:3:97","nodeType":"YulIdentifier","src":"1819:3:97"},"nativeSrc":"1819:23:97","nodeType":"YulFunctionCall","src":"1819:23:97"},{"kind":"number","nativeSrc":"1844:2:97","nodeType":"YulLiteral","src":"1844:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1815:3:97","nodeType":"YulIdentifier","src":"1815:3:97"},"nativeSrc":"1815:32:97","nodeType":"YulFunctionCall","src":"1815:32:97"},"nativeSrc":"1812:52:97","nodeType":"YulIf","src":"1812:52:97"},{"nativeSrc":"1873:36:97","nodeType":"YulVariableDeclaration","src":"1873:36:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1899:9:97","nodeType":"YulIdentifier","src":"1899:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"1886:12:97","nodeType":"YulIdentifier","src":"1886:12:97"},"nativeSrc":"1886:23:97","nodeType":"YulFunctionCall","src":"1886:23:97"},"variables":[{"name":"value","nativeSrc":"1877:5:97","nodeType":"YulTypedName","src":"1877:5:97","type":""}]},{"body":{"nativeSrc":"2019:16:97","nodeType":"YulBlock","src":"2019:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2028:1:97","nodeType":"YulLiteral","src":"2028:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"2031:1:97","nodeType":"YulLiteral","src":"2031:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2021:6:97","nodeType":"YulIdentifier","src":"2021:6:97"},"nativeSrc":"2021:12:97","nodeType":"YulFunctionCall","src":"2021:12:97"},"nativeSrc":"2021:12:97","nodeType":"YulExpressionStatement","src":"2021:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1931:5:97","nodeType":"YulIdentifier","src":"1931:5:97"},{"arguments":[{"name":"value","nativeSrc":"1942:5:97","nodeType":"YulIdentifier","src":"1942:5:97"},{"kind":"number","nativeSrc":"1949:66:97","nodeType":"YulLiteral","src":"1949:66:97","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"1938:3:97","nodeType":"YulIdentifier","src":"1938:3:97"},"nativeSrc":"1938:78:97","nodeType":"YulFunctionCall","src":"1938:78:97"}],"functionName":{"name":"eq","nativeSrc":"1928:2:97","nodeType":"YulIdentifier","src":"1928:2:97"},"nativeSrc":"1928:89:97","nodeType":"YulFunctionCall","src":"1928:89:97"}],"functionName":{"name":"iszero","nativeSrc":"1921:6:97","nodeType":"YulIdentifier","src":"1921:6:97"},"nativeSrc":"1921:97:97","nodeType":"YulFunctionCall","src":"1921:97:97"},"nativeSrc":"1918:117:97","nodeType":"YulIf","src":"1918:117:97"},{"nativeSrc":"2044:15:97","nodeType":"YulAssignment","src":"2044:15:97","value":{"name":"value","nativeSrc":"2054:5:97","nodeType":"YulIdentifier","src":"2054:5:97"},"variableNames":[{"name":"value0","nativeSrc":"2044:6:97","nodeType":"YulIdentifier","src":"2044:6:97"}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"1733:332:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1768:9:97","nodeType":"YulTypedName","src":"1768:9:97","type":""},{"name":"dataEnd","nativeSrc":"1779:7:97","nodeType":"YulTypedName","src":"1779:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1791:6:97","nodeType":"YulTypedName","src":"1791:6:97","type":""}],"src":"1733:332:97"},{"body":{"nativeSrc":"2120:432:97","nodeType":"YulBlock","src":"2120:432:97","statements":[{"nativeSrc":"2130:26:97","nodeType":"YulVariableDeclaration","src":"2130:26:97","value":{"arguments":[{"name":"value","nativeSrc":"2150:5:97","nodeType":"YulIdentifier","src":"2150:5:97"}],"functionName":{"name":"mload","nativeSrc":"2144:5:97","nodeType":"YulIdentifier","src":"2144:5:97"},"nativeSrc":"2144:12:97","nodeType":"YulFunctionCall","src":"2144:12:97"},"variables":[{"name":"length","nativeSrc":"2134:6:97","nodeType":"YulTypedName","src":"2134:6:97","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"2172:3:97","nodeType":"YulIdentifier","src":"2172:3:97"},{"name":"length","nativeSrc":"2177:6:97","nodeType":"YulIdentifier","src":"2177:6:97"}],"functionName":{"name":"mstore","nativeSrc":"2165:6:97","nodeType":"YulIdentifier","src":"2165:6:97"},"nativeSrc":"2165:19:97","nodeType":"YulFunctionCall","src":"2165:19:97"},"nativeSrc":"2165:19:97","nodeType":"YulExpressionStatement","src":"2165:19:97"},{"nativeSrc":"2193:10:97","nodeType":"YulVariableDeclaration","src":"2193:10:97","value":{"kind":"number","nativeSrc":"2202:1:97","nodeType":"YulLiteral","src":"2202:1:97","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"2197:1:97","nodeType":"YulTypedName","src":"2197:1:97","type":""}]},{"body":{"nativeSrc":"2264:110:97","nodeType":"YulBlock","src":"2264:110:97","statements":[{"nativeSrc":"2278:14:97","nodeType":"YulVariableDeclaration","src":"2278:14:97","value":{"kind":"number","nativeSrc":"2288:4:97","nodeType":"YulLiteral","src":"2288:4:97","type":"","value":"0x20"},"variables":[{"name":"_1","nativeSrc":"2282:2:97","nodeType":"YulTypedName","src":"2282:2:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"2320:3:97","nodeType":"YulIdentifier","src":"2320:3:97"},{"name":"i","nativeSrc":"2325:1:97","nodeType":"YulIdentifier","src":"2325:1:97"}],"functionName":{"name":"add","nativeSrc":"2316:3:97","nodeType":"YulIdentifier","src":"2316:3:97"},"nativeSrc":"2316:11:97","nodeType":"YulFunctionCall","src":"2316:11:97"},{"name":"_1","nativeSrc":"2329:2:97","nodeType":"YulIdentifier","src":"2329:2:97"}],"functionName":{"name":"add","nativeSrc":"2312:3:97","nodeType":"YulIdentifier","src":"2312:3:97"},"nativeSrc":"2312:20:97","nodeType":"YulFunctionCall","src":"2312:20:97"},{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2348:5:97","nodeType":"YulIdentifier","src":"2348:5:97"},{"name":"i","nativeSrc":"2355:1:97","nodeType":"YulIdentifier","src":"2355:1:97"}],"functionName":{"name":"add","nativeSrc":"2344:3:97","nodeType":"YulIdentifier","src":"2344:3:97"},"nativeSrc":"2344:13:97","nodeType":"YulFunctionCall","src":"2344:13:97"},{"name":"_1","nativeSrc":"2359:2:97","nodeType":"YulIdentifier","src":"2359:2:97"}],"functionName":{"name":"add","nativeSrc":"2340:3:97","nodeType":"YulIdentifier","src":"2340:3:97"},"nativeSrc":"2340:22:97","nodeType":"YulFunctionCall","src":"2340:22:97"}],"functionName":{"name":"mload","nativeSrc":"2334:5:97","nodeType":"YulIdentifier","src":"2334:5:97"},"nativeSrc":"2334:29:97","nodeType":"YulFunctionCall","src":"2334:29:97"}],"functionName":{"name":"mstore","nativeSrc":"2305:6:97","nodeType":"YulIdentifier","src":"2305:6:97"},"nativeSrc":"2305:59:97","nodeType":"YulFunctionCall","src":"2305:59:97"},"nativeSrc":"2305:59:97","nodeType":"YulExpressionStatement","src":"2305:59:97"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"2223:1:97","nodeType":"YulIdentifier","src":"2223:1:97"},{"name":"length","nativeSrc":"2226:6:97","nodeType":"YulIdentifier","src":"2226:6:97"}],"functionName":{"name":"lt","nativeSrc":"2220:2:97","nodeType":"YulIdentifier","src":"2220:2:97"},"nativeSrc":"2220:13:97","nodeType":"YulFunctionCall","src":"2220:13:97"},"nativeSrc":"2212:162:97","nodeType":"YulForLoop","post":{"nativeSrc":"2234:21:97","nodeType":"YulBlock","src":"2234:21:97","statements":[{"nativeSrc":"2236:17:97","nodeType":"YulAssignment","src":"2236:17:97","value":{"arguments":[{"name":"i","nativeSrc":"2245:1:97","nodeType":"YulIdentifier","src":"2245:1:97"},{"kind":"number","nativeSrc":"2248:4:97","nodeType":"YulLiteral","src":"2248:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2241:3:97","nodeType":"YulIdentifier","src":"2241:3:97"},"nativeSrc":"2241:12:97","nodeType":"YulFunctionCall","src":"2241:12:97"},"variableNames":[{"name":"i","nativeSrc":"2236:1:97","nodeType":"YulIdentifier","src":"2236:1:97"}]}]},"pre":{"nativeSrc":"2216:3:97","nodeType":"YulBlock","src":"2216:3:97","statements":[]},"src":"2212:162:97"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"2398:3:97","nodeType":"YulIdentifier","src":"2398:3:97"},{"name":"length","nativeSrc":"2403:6:97","nodeType":"YulIdentifier","src":"2403:6:97"}],"functionName":{"name":"add","nativeSrc":"2394:3:97","nodeType":"YulIdentifier","src":"2394:3:97"},"nativeSrc":"2394:16:97","nodeType":"YulFunctionCall","src":"2394:16:97"},{"kind":"number","nativeSrc":"2412:4:97","nodeType":"YulLiteral","src":"2412:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2390:3:97","nodeType":"YulIdentifier","src":"2390:3:97"},"nativeSrc":"2390:27:97","nodeType":"YulFunctionCall","src":"2390:27:97"},{"kind":"number","nativeSrc":"2419:1:97","nodeType":"YulLiteral","src":"2419:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2383:6:97","nodeType":"YulIdentifier","src":"2383:6:97"},"nativeSrc":"2383:38:97","nodeType":"YulFunctionCall","src":"2383:38:97"},"nativeSrc":"2383:38:97","nodeType":"YulExpressionStatement","src":"2383:38:97"},{"nativeSrc":"2430:116:97","nodeType":"YulAssignment","src":"2430:116:97","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"2445:3:97","nodeType":"YulIdentifier","src":"2445:3:97"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"2458:6:97","nodeType":"YulIdentifier","src":"2458:6:97"},{"kind":"number","nativeSrc":"2466:2:97","nodeType":"YulLiteral","src":"2466:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"2454:3:97","nodeType":"YulIdentifier","src":"2454:3:97"},"nativeSrc":"2454:15:97","nodeType":"YulFunctionCall","src":"2454:15:97"},{"kind":"number","nativeSrc":"2471:66:97","nodeType":"YulLiteral","src":"2471:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"2450:3:97","nodeType":"YulIdentifier","src":"2450:3:97"},"nativeSrc":"2450:88:97","nodeType":"YulFunctionCall","src":"2450:88:97"}],"functionName":{"name":"add","nativeSrc":"2441:3:97","nodeType":"YulIdentifier","src":"2441:3:97"},"nativeSrc":"2441:98:97","nodeType":"YulFunctionCall","src":"2441:98:97"},{"kind":"number","nativeSrc":"2541:4:97","nodeType":"YulLiteral","src":"2541:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2437:3:97","nodeType":"YulIdentifier","src":"2437:3:97"},"nativeSrc":"2437:109:97","nodeType":"YulFunctionCall","src":"2437:109:97"},"variableNames":[{"name":"end","nativeSrc":"2430:3:97","nodeType":"YulIdentifier","src":"2430:3:97"}]}]},"name":"abi_encode_string","nativeSrc":"2070:482:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2097:5:97","nodeType":"YulTypedName","src":"2097:5:97","type":""},{"name":"pos","nativeSrc":"2104:3:97","nodeType":"YulTypedName","src":"2104:3:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"2112:3:97","nodeType":"YulTypedName","src":"2112:3:97","type":""}],"src":"2070:482:97"},{"body":{"nativeSrc":"2678:99:97","nodeType":"YulBlock","src":"2678:99:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2695:9:97","nodeType":"YulIdentifier","src":"2695:9:97"},{"kind":"number","nativeSrc":"2706:2:97","nodeType":"YulLiteral","src":"2706:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"2688:6:97","nodeType":"YulIdentifier","src":"2688:6:97"},"nativeSrc":"2688:21:97","nodeType":"YulFunctionCall","src":"2688:21:97"},"nativeSrc":"2688:21:97","nodeType":"YulExpressionStatement","src":"2688:21:97"},{"nativeSrc":"2718:53:97","nodeType":"YulAssignment","src":"2718:53:97","value":{"arguments":[{"name":"value0","nativeSrc":"2744:6:97","nodeType":"YulIdentifier","src":"2744:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"2756:9:97","nodeType":"YulIdentifier","src":"2756:9:97"},{"kind":"number","nativeSrc":"2767:2:97","nodeType":"YulLiteral","src":"2767:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2752:3:97","nodeType":"YulIdentifier","src":"2752:3:97"},"nativeSrc":"2752:18:97","nodeType":"YulFunctionCall","src":"2752:18:97"}],"functionName":{"name":"abi_encode_string","nativeSrc":"2726:17:97","nodeType":"YulIdentifier","src":"2726:17:97"},"nativeSrc":"2726:45:97","nodeType":"YulFunctionCall","src":"2726:45:97"},"variableNames":[{"name":"tail","nativeSrc":"2718:4:97","nodeType":"YulIdentifier","src":"2718:4:97"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2557:220:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2647:9:97","nodeType":"YulTypedName","src":"2647:9:97","type":""},{"name":"value0","nativeSrc":"2658:6:97","nodeType":"YulTypedName","src":"2658:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2669:4:97","nodeType":"YulTypedName","src":"2669:4:97","type":""}],"src":"2557:220:97"},{"body":{"nativeSrc":"2874:283:97","nodeType":"YulBlock","src":"2874:283:97","statements":[{"body":{"nativeSrc":"2923:16:97","nodeType":"YulBlock","src":"2923:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2932:1:97","nodeType":"YulLiteral","src":"2932:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"2935:1:97","nodeType":"YulLiteral","src":"2935:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2925:6:97","nodeType":"YulIdentifier","src":"2925:6:97"},"nativeSrc":"2925:12:97","nodeType":"YulFunctionCall","src":"2925:12:97"},"nativeSrc":"2925:12:97","nodeType":"YulExpressionStatement","src":"2925:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2902:6:97","nodeType":"YulIdentifier","src":"2902:6:97"},{"kind":"number","nativeSrc":"2910:4:97","nodeType":"YulLiteral","src":"2910:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2898:3:97","nodeType":"YulIdentifier","src":"2898:3:97"},"nativeSrc":"2898:17:97","nodeType":"YulFunctionCall","src":"2898:17:97"},{"name":"end","nativeSrc":"2917:3:97","nodeType":"YulIdentifier","src":"2917:3:97"}],"functionName":{"name":"slt","nativeSrc":"2894:3:97","nodeType":"YulIdentifier","src":"2894:3:97"},"nativeSrc":"2894:27:97","nodeType":"YulFunctionCall","src":"2894:27:97"}],"functionName":{"name":"iszero","nativeSrc":"2887:6:97","nodeType":"YulIdentifier","src":"2887:6:97"},"nativeSrc":"2887:35:97","nodeType":"YulFunctionCall","src":"2887:35:97"},"nativeSrc":"2884:55:97","nodeType":"YulIf","src":"2884:55:97"},{"nativeSrc":"2948:30:97","nodeType":"YulAssignment","src":"2948:30:97","value":{"arguments":[{"name":"offset","nativeSrc":"2971:6:97","nodeType":"YulIdentifier","src":"2971:6:97"}],"functionName":{"name":"calldataload","nativeSrc":"2958:12:97","nodeType":"YulIdentifier","src":"2958:12:97"},"nativeSrc":"2958:20:97","nodeType":"YulFunctionCall","src":"2958:20:97"},"variableNames":[{"name":"length","nativeSrc":"2948:6:97","nodeType":"YulIdentifier","src":"2948:6:97"}]},{"body":{"nativeSrc":"3021:16:97","nodeType":"YulBlock","src":"3021:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3030:1:97","nodeType":"YulLiteral","src":"3030:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"3033:1:97","nodeType":"YulLiteral","src":"3033:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3023:6:97","nodeType":"YulIdentifier","src":"3023:6:97"},"nativeSrc":"3023:12:97","nodeType":"YulFunctionCall","src":"3023:12:97"},"nativeSrc":"3023:12:97","nodeType":"YulExpressionStatement","src":"3023:12:97"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2993:6:97","nodeType":"YulIdentifier","src":"2993:6:97"},{"kind":"number","nativeSrc":"3001:18:97","nodeType":"YulLiteral","src":"3001:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2990:2:97","nodeType":"YulIdentifier","src":"2990:2:97"},"nativeSrc":"2990:30:97","nodeType":"YulFunctionCall","src":"2990:30:97"},"nativeSrc":"2987:50:97","nodeType":"YulIf","src":"2987:50:97"},{"nativeSrc":"3046:29:97","nodeType":"YulAssignment","src":"3046:29:97","value":{"arguments":[{"name":"offset","nativeSrc":"3062:6:97","nodeType":"YulIdentifier","src":"3062:6:97"},{"kind":"number","nativeSrc":"3070:4:97","nodeType":"YulLiteral","src":"3070:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3058:3:97","nodeType":"YulIdentifier","src":"3058:3:97"},"nativeSrc":"3058:17:97","nodeType":"YulFunctionCall","src":"3058:17:97"},"variableNames":[{"name":"arrayPos","nativeSrc":"3046:8:97","nodeType":"YulIdentifier","src":"3046:8:97"}]},{"body":{"nativeSrc":"3135:16:97","nodeType":"YulBlock","src":"3135:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3144:1:97","nodeType":"YulLiteral","src":"3144:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"3147:1:97","nodeType":"YulLiteral","src":"3147:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3137:6:97","nodeType":"YulIdentifier","src":"3137:6:97"},"nativeSrc":"3137:12:97","nodeType":"YulFunctionCall","src":"3137:12:97"},"nativeSrc":"3137:12:97","nodeType":"YulExpressionStatement","src":"3137:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3098:6:97","nodeType":"YulIdentifier","src":"3098:6:97"},{"arguments":[{"kind":"number","nativeSrc":"3110:1:97","nodeType":"YulLiteral","src":"3110:1:97","type":"","value":"5"},{"name":"length","nativeSrc":"3113:6:97","nodeType":"YulIdentifier","src":"3113:6:97"}],"functionName":{"name":"shl","nativeSrc":"3106:3:97","nodeType":"YulIdentifier","src":"3106:3:97"},"nativeSrc":"3106:14:97","nodeType":"YulFunctionCall","src":"3106:14:97"}],"functionName":{"name":"add","nativeSrc":"3094:3:97","nodeType":"YulIdentifier","src":"3094:3:97"},"nativeSrc":"3094:27:97","nodeType":"YulFunctionCall","src":"3094:27:97"},{"kind":"number","nativeSrc":"3123:4:97","nodeType":"YulLiteral","src":"3123:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3090:3:97","nodeType":"YulIdentifier","src":"3090:3:97"},"nativeSrc":"3090:38:97","nodeType":"YulFunctionCall","src":"3090:38:97"},{"name":"end","nativeSrc":"3130:3:97","nodeType":"YulIdentifier","src":"3130:3:97"}],"functionName":{"name":"gt","nativeSrc":"3087:2:97","nodeType":"YulIdentifier","src":"3087:2:97"},"nativeSrc":"3087:47:97","nodeType":"YulFunctionCall","src":"3087:47:97"},"nativeSrc":"3084:67:97","nodeType":"YulIf","src":"3084:67:97"}]},"name":"abi_decode_array_string_calldata_dyn_calldata","nativeSrc":"2782:375:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2837:6:97","nodeType":"YulTypedName","src":"2837:6:97","type":""},{"name":"end","nativeSrc":"2845:3:97","nodeType":"YulTypedName","src":"2845:3:97","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"2853:8:97","nodeType":"YulTypedName","src":"2853:8:97","type":""},{"name":"length","nativeSrc":"2863:6:97","nodeType":"YulTypedName","src":"2863:6:97","type":""}],"src":"2782:375:97"},{"body":{"nativeSrc":"3328:632:97","nodeType":"YulBlock","src":"3328:632:97","statements":[{"body":{"nativeSrc":"3374:16:97","nodeType":"YulBlock","src":"3374:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3383:1:97","nodeType":"YulLiteral","src":"3383:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"3386:1:97","nodeType":"YulLiteral","src":"3386:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3376:6:97","nodeType":"YulIdentifier","src":"3376:6:97"},"nativeSrc":"3376:12:97","nodeType":"YulFunctionCall","src":"3376:12:97"},"nativeSrc":"3376:12:97","nodeType":"YulExpressionStatement","src":"3376:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3349:7:97","nodeType":"YulIdentifier","src":"3349:7:97"},{"name":"headStart","nativeSrc":"3358:9:97","nodeType":"YulIdentifier","src":"3358:9:97"}],"functionName":{"name":"sub","nativeSrc":"3345:3:97","nodeType":"YulIdentifier","src":"3345:3:97"},"nativeSrc":"3345:23:97","nodeType":"YulFunctionCall","src":"3345:23:97"},{"kind":"number","nativeSrc":"3370:2:97","nodeType":"YulLiteral","src":"3370:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3341:3:97","nodeType":"YulIdentifier","src":"3341:3:97"},"nativeSrc":"3341:32:97","nodeType":"YulFunctionCall","src":"3341:32:97"},"nativeSrc":"3338:52:97","nodeType":"YulIf","src":"3338:52:97"},{"nativeSrc":"3399:37:97","nodeType":"YulVariableDeclaration","src":"3399:37:97","value":{"arguments":[{"name":"headStart","nativeSrc":"3426:9:97","nodeType":"YulIdentifier","src":"3426:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"3413:12:97","nodeType":"YulIdentifier","src":"3413:12:97"},"nativeSrc":"3413:23:97","nodeType":"YulFunctionCall","src":"3413:23:97"},"variables":[{"name":"offset","nativeSrc":"3403:6:97","nodeType":"YulTypedName","src":"3403:6:97","type":""}]},{"nativeSrc":"3445:28:97","nodeType":"YulVariableDeclaration","src":"3445:28:97","value":{"kind":"number","nativeSrc":"3455:18:97","nodeType":"YulLiteral","src":"3455:18:97","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"3449:2:97","nodeType":"YulTypedName","src":"3449:2:97","type":""}]},{"body":{"nativeSrc":"3500:16:97","nodeType":"YulBlock","src":"3500:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3509:1:97","nodeType":"YulLiteral","src":"3509:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"3512:1:97","nodeType":"YulLiteral","src":"3512:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3502:6:97","nodeType":"YulIdentifier","src":"3502:6:97"},"nativeSrc":"3502:12:97","nodeType":"YulFunctionCall","src":"3502:12:97"},"nativeSrc":"3502:12:97","nodeType":"YulExpressionStatement","src":"3502:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3488:6:97","nodeType":"YulIdentifier","src":"3488:6:97"},{"name":"_1","nativeSrc":"3496:2:97","nodeType":"YulIdentifier","src":"3496:2:97"}],"functionName":{"name":"gt","nativeSrc":"3485:2:97","nodeType":"YulIdentifier","src":"3485:2:97"},"nativeSrc":"3485:14:97","nodeType":"YulFunctionCall","src":"3485:14:97"},"nativeSrc":"3482:34:97","nodeType":"YulIf","src":"3482:34:97"},{"nativeSrc":"3525:104:97","nodeType":"YulVariableDeclaration","src":"3525:104:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3601:9:97","nodeType":"YulIdentifier","src":"3601:9:97"},{"name":"offset","nativeSrc":"3612:6:97","nodeType":"YulIdentifier","src":"3612:6:97"}],"functionName":{"name":"add","nativeSrc":"3597:3:97","nodeType":"YulIdentifier","src":"3597:3:97"},"nativeSrc":"3597:22:97","nodeType":"YulFunctionCall","src":"3597:22:97"},{"name":"dataEnd","nativeSrc":"3621:7:97","nodeType":"YulIdentifier","src":"3621:7:97"}],"functionName":{"name":"abi_decode_array_string_calldata_dyn_calldata","nativeSrc":"3551:45:97","nodeType":"YulIdentifier","src":"3551:45:97"},"nativeSrc":"3551:78:97","nodeType":"YulFunctionCall","src":"3551:78:97"},"variables":[{"name":"value0_1","nativeSrc":"3529:8:97","nodeType":"YulTypedName","src":"3529:8:97","type":""},{"name":"value1_1","nativeSrc":"3539:8:97","nodeType":"YulTypedName","src":"3539:8:97","type":""}]},{"nativeSrc":"3638:18:97","nodeType":"YulAssignment","src":"3638:18:97","value":{"name":"value0_1","nativeSrc":"3648:8:97","nodeType":"YulIdentifier","src":"3648:8:97"},"variableNames":[{"name":"value0","nativeSrc":"3638:6:97","nodeType":"YulIdentifier","src":"3638:6:97"}]},{"nativeSrc":"3665:18:97","nodeType":"YulAssignment","src":"3665:18:97","value":{"name":"value1_1","nativeSrc":"3675:8:97","nodeType":"YulIdentifier","src":"3675:8:97"},"variableNames":[{"name":"value1","nativeSrc":"3665:6:97","nodeType":"YulIdentifier","src":"3665:6:97"}]},{"nativeSrc":"3692:48:97","nodeType":"YulVariableDeclaration","src":"3692:48:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3725:9:97","nodeType":"YulIdentifier","src":"3725:9:97"},{"kind":"number","nativeSrc":"3736:2:97","nodeType":"YulLiteral","src":"3736:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3721:3:97","nodeType":"YulIdentifier","src":"3721:3:97"},"nativeSrc":"3721:18:97","nodeType":"YulFunctionCall","src":"3721:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"3708:12:97","nodeType":"YulIdentifier","src":"3708:12:97"},"nativeSrc":"3708:32:97","nodeType":"YulFunctionCall","src":"3708:32:97"},"variables":[{"name":"offset_1","nativeSrc":"3696:8:97","nodeType":"YulTypedName","src":"3696:8:97","type":""}]},{"body":{"nativeSrc":"3769:16:97","nodeType":"YulBlock","src":"3769:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3778:1:97","nodeType":"YulLiteral","src":"3778:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"3781:1:97","nodeType":"YulLiteral","src":"3781:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3771:6:97","nodeType":"YulIdentifier","src":"3771:6:97"},"nativeSrc":"3771:12:97","nodeType":"YulFunctionCall","src":"3771:12:97"},"nativeSrc":"3771:12:97","nodeType":"YulExpressionStatement","src":"3771:12:97"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"3755:8:97","nodeType":"YulIdentifier","src":"3755:8:97"},{"name":"_1","nativeSrc":"3765:2:97","nodeType":"YulIdentifier","src":"3765:2:97"}],"functionName":{"name":"gt","nativeSrc":"3752:2:97","nodeType":"YulIdentifier","src":"3752:2:97"},"nativeSrc":"3752:16:97","nodeType":"YulFunctionCall","src":"3752:16:97"},"nativeSrc":"3749:36:97","nodeType":"YulIf","src":"3749:36:97"},{"nativeSrc":"3794:106:97","nodeType":"YulVariableDeclaration","src":"3794:106:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3870:9:97","nodeType":"YulIdentifier","src":"3870:9:97"},{"name":"offset_1","nativeSrc":"3881:8:97","nodeType":"YulIdentifier","src":"3881:8:97"}],"functionName":{"name":"add","nativeSrc":"3866:3:97","nodeType":"YulIdentifier","src":"3866:3:97"},"nativeSrc":"3866:24:97","nodeType":"YulFunctionCall","src":"3866:24:97"},{"name":"dataEnd","nativeSrc":"3892:7:97","nodeType":"YulIdentifier","src":"3892:7:97"}],"functionName":{"name":"abi_decode_array_string_calldata_dyn_calldata","nativeSrc":"3820:45:97","nodeType":"YulIdentifier","src":"3820:45:97"},"nativeSrc":"3820:80:97","nodeType":"YulFunctionCall","src":"3820:80:97"},"variables":[{"name":"value2_1","nativeSrc":"3798:8:97","nodeType":"YulTypedName","src":"3798:8:97","type":""},{"name":"value3_1","nativeSrc":"3808:8:97","nodeType":"YulTypedName","src":"3808:8:97","type":""}]},{"nativeSrc":"3909:18:97","nodeType":"YulAssignment","src":"3909:18:97","value":{"name":"value2_1","nativeSrc":"3919:8:97","nodeType":"YulIdentifier","src":"3919:8:97"},"variableNames":[{"name":"value2","nativeSrc":"3909:6:97","nodeType":"YulIdentifier","src":"3909:6:97"}]},{"nativeSrc":"3936:18:97","nodeType":"YulAssignment","src":"3936:18:97","value":{"name":"value3_1","nativeSrc":"3946:8:97","nodeType":"YulIdentifier","src":"3946:8:97"},"variableNames":[{"name":"value3","nativeSrc":"3936:6:97","nodeType":"YulIdentifier","src":"3936:6:97"}]}]},"name":"abi_decode_tuple_t_array$_t_string_calldata_ptr_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"3162:798:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3270:9:97","nodeType":"YulTypedName","src":"3270:9:97","type":""},{"name":"dataEnd","nativeSrc":"3281:7:97","nodeType":"YulTypedName","src":"3281:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3293:6:97","nodeType":"YulTypedName","src":"3293:6:97","type":""},{"name":"value1","nativeSrc":"3301:6:97","nodeType":"YulTypedName","src":"3301:6:97","type":""},{"name":"value2","nativeSrc":"3309:6:97","nodeType":"YulTypedName","src":"3309:6:97","type":""},{"name":"value3","nativeSrc":"3317:6:97","nodeType":"YulTypedName","src":"3317:6:97","type":""}],"src":"3162:798:97"},{"body":{"nativeSrc":"4104:125:97","nodeType":"YulBlock","src":"4104:125:97","statements":[{"nativeSrc":"4114:26:97","nodeType":"YulAssignment","src":"4114:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"4126:9:97","nodeType":"YulIdentifier","src":"4126:9:97"},{"kind":"number","nativeSrc":"4137:2:97","nodeType":"YulLiteral","src":"4137:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4122:3:97","nodeType":"YulIdentifier","src":"4122:3:97"},"nativeSrc":"4122:18:97","nodeType":"YulFunctionCall","src":"4122:18:97"},"variableNames":[{"name":"tail","nativeSrc":"4114:4:97","nodeType":"YulIdentifier","src":"4114:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4156:9:97","nodeType":"YulIdentifier","src":"4156:9:97"},{"arguments":[{"name":"value0","nativeSrc":"4171:6:97","nodeType":"YulIdentifier","src":"4171:6:97"},{"kind":"number","nativeSrc":"4179:42:97","nodeType":"YulLiteral","src":"4179:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"4167:3:97","nodeType":"YulIdentifier","src":"4167:3:97"},"nativeSrc":"4167:55:97","nodeType":"YulFunctionCall","src":"4167:55:97"}],"functionName":{"name":"mstore","nativeSrc":"4149:6:97","nodeType":"YulIdentifier","src":"4149:6:97"},"nativeSrc":"4149:74:97","nodeType":"YulFunctionCall","src":"4149:74:97"},"nativeSrc":"4149:74:97","nodeType":"YulExpressionStatement","src":"4149:74:97"}]},"name":"abi_encode_tuple_t_contract$_IOmnichainGovernanceExecutor_$13445__to_t_address__fromStack_reversed","nativeSrc":"3965:264:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4073:9:97","nodeType":"YulTypedName","src":"4073:9:97","type":""},{"name":"value0","nativeSrc":"4084:6:97","nodeType":"YulTypedName","src":"4084:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4095:4:97","nodeType":"YulTypedName","src":"4095:4:97","type":""}],"src":"3965:264:97"},{"body":{"nativeSrc":"4335:125:97","nodeType":"YulBlock","src":"4335:125:97","statements":[{"nativeSrc":"4345:26:97","nodeType":"YulAssignment","src":"4345:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"4357:9:97","nodeType":"YulIdentifier","src":"4357:9:97"},{"kind":"number","nativeSrc":"4368:2:97","nodeType":"YulLiteral","src":"4368:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4353:3:97","nodeType":"YulIdentifier","src":"4353:3:97"},"nativeSrc":"4353:18:97","nodeType":"YulFunctionCall","src":"4353:18:97"},"variableNames":[{"name":"tail","nativeSrc":"4345:4:97","nodeType":"YulIdentifier","src":"4345:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4387:9:97","nodeType":"YulIdentifier","src":"4387:9:97"},{"arguments":[{"name":"value0","nativeSrc":"4402:6:97","nodeType":"YulIdentifier","src":"4402:6:97"},{"kind":"number","nativeSrc":"4410:42:97","nodeType":"YulLiteral","src":"4410:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"4398:3:97","nodeType":"YulIdentifier","src":"4398:3:97"},"nativeSrc":"4398:55:97","nodeType":"YulFunctionCall","src":"4398:55:97"}],"functionName":{"name":"mstore","nativeSrc":"4380:6:97","nodeType":"YulIdentifier","src":"4380:6:97"},"nativeSrc":"4380:74:97","nodeType":"YulFunctionCall","src":"4380:74:97"},"nativeSrc":"4380:74:97","nodeType":"YulExpressionStatement","src":"4380:74:97"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"4234:226:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4304:9:97","nodeType":"YulTypedName","src":"4304:9:97","type":""},{"name":"value0","nativeSrc":"4315:6:97","nodeType":"YulTypedName","src":"4315:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4326:4:97","nodeType":"YulTypedName","src":"4326:4:97","type":""}],"src":"4234:226:97"},{"body":{"nativeSrc":"4570:646:97","nodeType":"YulBlock","src":"4570:646:97","statements":[{"body":{"nativeSrc":"4616:16:97","nodeType":"YulBlock","src":"4616:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4625:1:97","nodeType":"YulLiteral","src":"4625:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"4628:1:97","nodeType":"YulLiteral","src":"4628:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4618:6:97","nodeType":"YulIdentifier","src":"4618:6:97"},"nativeSrc":"4618:12:97","nodeType":"YulFunctionCall","src":"4618:12:97"},"nativeSrc":"4618:12:97","nodeType":"YulExpressionStatement","src":"4618:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4591:7:97","nodeType":"YulIdentifier","src":"4591:7:97"},{"name":"headStart","nativeSrc":"4600:9:97","nodeType":"YulIdentifier","src":"4600:9:97"}],"functionName":{"name":"sub","nativeSrc":"4587:3:97","nodeType":"YulIdentifier","src":"4587:3:97"},"nativeSrc":"4587:23:97","nodeType":"YulFunctionCall","src":"4587:23:97"},{"kind":"number","nativeSrc":"4612:2:97","nodeType":"YulLiteral","src":"4612:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"4583:3:97","nodeType":"YulIdentifier","src":"4583:3:97"},"nativeSrc":"4583:32:97","nodeType":"YulFunctionCall","src":"4583:32:97"},"nativeSrc":"4580:52:97","nodeType":"YulIf","src":"4580:52:97"},{"nativeSrc":"4641:36:97","nodeType":"YulVariableDeclaration","src":"4641:36:97","value":{"arguments":[{"name":"headStart","nativeSrc":"4667:9:97","nodeType":"YulIdentifier","src":"4667:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"4654:12:97","nodeType":"YulIdentifier","src":"4654:12:97"},"nativeSrc":"4654:23:97","nodeType":"YulFunctionCall","src":"4654:23:97"},"variables":[{"name":"value","nativeSrc":"4645:5:97","nodeType":"YulTypedName","src":"4645:5:97","type":""}]},{"body":{"nativeSrc":"4727:16:97","nodeType":"YulBlock","src":"4727:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4736:1:97","nodeType":"YulLiteral","src":"4736:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"4739:1:97","nodeType":"YulLiteral","src":"4739:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4729:6:97","nodeType":"YulIdentifier","src":"4729:6:97"},"nativeSrc":"4729:12:97","nodeType":"YulFunctionCall","src":"4729:12:97"},"nativeSrc":"4729:12:97","nodeType":"YulExpressionStatement","src":"4729:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4699:5:97","nodeType":"YulIdentifier","src":"4699:5:97"},{"arguments":[{"name":"value","nativeSrc":"4710:5:97","nodeType":"YulIdentifier","src":"4710:5:97"},{"kind":"number","nativeSrc":"4717:6:97","nodeType":"YulLiteral","src":"4717:6:97","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"4706:3:97","nodeType":"YulIdentifier","src":"4706:3:97"},"nativeSrc":"4706:18:97","nodeType":"YulFunctionCall","src":"4706:18:97"}],"functionName":{"name":"eq","nativeSrc":"4696:2:97","nodeType":"YulIdentifier","src":"4696:2:97"},"nativeSrc":"4696:29:97","nodeType":"YulFunctionCall","src":"4696:29:97"}],"functionName":{"name":"iszero","nativeSrc":"4689:6:97","nodeType":"YulIdentifier","src":"4689:6:97"},"nativeSrc":"4689:37:97","nodeType":"YulFunctionCall","src":"4689:37:97"},"nativeSrc":"4686:57:97","nodeType":"YulIf","src":"4686:57:97"},{"nativeSrc":"4752:15:97","nodeType":"YulAssignment","src":"4752:15:97","value":{"name":"value","nativeSrc":"4762:5:97","nodeType":"YulIdentifier","src":"4762:5:97"},"variableNames":[{"name":"value0","nativeSrc":"4752:6:97","nodeType":"YulIdentifier","src":"4752:6:97"}]},{"nativeSrc":"4776:46:97","nodeType":"YulVariableDeclaration","src":"4776:46:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4807:9:97","nodeType":"YulIdentifier","src":"4807:9:97"},{"kind":"number","nativeSrc":"4818:2:97","nodeType":"YulLiteral","src":"4818:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4803:3:97","nodeType":"YulIdentifier","src":"4803:3:97"},"nativeSrc":"4803:18:97","nodeType":"YulFunctionCall","src":"4803:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"4790:12:97","nodeType":"YulIdentifier","src":"4790:12:97"},"nativeSrc":"4790:32:97","nodeType":"YulFunctionCall","src":"4790:32:97"},"variables":[{"name":"offset","nativeSrc":"4780:6:97","nodeType":"YulTypedName","src":"4780:6:97","type":""}]},{"nativeSrc":"4831:28:97","nodeType":"YulVariableDeclaration","src":"4831:28:97","value":{"kind":"number","nativeSrc":"4841:18:97","nodeType":"YulLiteral","src":"4841:18:97","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"4835:2:97","nodeType":"YulTypedName","src":"4835:2:97","type":""}]},{"body":{"nativeSrc":"4886:16:97","nodeType":"YulBlock","src":"4886:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4895:1:97","nodeType":"YulLiteral","src":"4895:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"4898:1:97","nodeType":"YulLiteral","src":"4898:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4888:6:97","nodeType":"YulIdentifier","src":"4888:6:97"},"nativeSrc":"4888:12:97","nodeType":"YulFunctionCall","src":"4888:12:97"},"nativeSrc":"4888:12:97","nodeType":"YulExpressionStatement","src":"4888:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4874:6:97","nodeType":"YulIdentifier","src":"4874:6:97"},{"name":"_1","nativeSrc":"4882:2:97","nodeType":"YulIdentifier","src":"4882:2:97"}],"functionName":{"name":"gt","nativeSrc":"4871:2:97","nodeType":"YulIdentifier","src":"4871:2:97"},"nativeSrc":"4871:14:97","nodeType":"YulFunctionCall","src":"4871:14:97"},"nativeSrc":"4868:34:97","nodeType":"YulIf","src":"4868:34:97"},{"nativeSrc":"4911:32:97","nodeType":"YulVariableDeclaration","src":"4911:32:97","value":{"arguments":[{"name":"headStart","nativeSrc":"4925:9:97","nodeType":"YulIdentifier","src":"4925:9:97"},{"name":"offset","nativeSrc":"4936:6:97","nodeType":"YulIdentifier","src":"4936:6:97"}],"functionName":{"name":"add","nativeSrc":"4921:3:97","nodeType":"YulIdentifier","src":"4921:3:97"},"nativeSrc":"4921:22:97","nodeType":"YulFunctionCall","src":"4921:22:97"},"variables":[{"name":"_2","nativeSrc":"4915:2:97","nodeType":"YulTypedName","src":"4915:2:97","type":""}]},{"body":{"nativeSrc":"4991:16:97","nodeType":"YulBlock","src":"4991:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5000:1:97","nodeType":"YulLiteral","src":"5000:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"5003:1:97","nodeType":"YulLiteral","src":"5003:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4993:6:97","nodeType":"YulIdentifier","src":"4993:6:97"},"nativeSrc":"4993:12:97","nodeType":"YulFunctionCall","src":"4993:12:97"},"nativeSrc":"4993:12:97","nodeType":"YulExpressionStatement","src":"4993:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"4970:2:97","nodeType":"YulIdentifier","src":"4970:2:97"},{"kind":"number","nativeSrc":"4974:4:97","nodeType":"YulLiteral","src":"4974:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"4966:3:97","nodeType":"YulIdentifier","src":"4966:3:97"},"nativeSrc":"4966:13:97","nodeType":"YulFunctionCall","src":"4966:13:97"},{"name":"dataEnd","nativeSrc":"4981:7:97","nodeType":"YulIdentifier","src":"4981:7:97"}],"functionName":{"name":"slt","nativeSrc":"4962:3:97","nodeType":"YulIdentifier","src":"4962:3:97"},"nativeSrc":"4962:27:97","nodeType":"YulFunctionCall","src":"4962:27:97"}],"functionName":{"name":"iszero","nativeSrc":"4955:6:97","nodeType":"YulIdentifier","src":"4955:6:97"},"nativeSrc":"4955:35:97","nodeType":"YulFunctionCall","src":"4955:35:97"},"nativeSrc":"4952:55:97","nodeType":"YulIf","src":"4952:55:97"},{"nativeSrc":"5016:30:97","nodeType":"YulVariableDeclaration","src":"5016:30:97","value":{"arguments":[{"name":"_2","nativeSrc":"5043:2:97","nodeType":"YulIdentifier","src":"5043:2:97"}],"functionName":{"name":"calldataload","nativeSrc":"5030:12:97","nodeType":"YulIdentifier","src":"5030:12:97"},"nativeSrc":"5030:16:97","nodeType":"YulFunctionCall","src":"5030:16:97"},"variables":[{"name":"length","nativeSrc":"5020:6:97","nodeType":"YulTypedName","src":"5020:6:97","type":""}]},{"body":{"nativeSrc":"5073:16:97","nodeType":"YulBlock","src":"5073:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5082:1:97","nodeType":"YulLiteral","src":"5082:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"5085:1:97","nodeType":"YulLiteral","src":"5085:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5075:6:97","nodeType":"YulIdentifier","src":"5075:6:97"},"nativeSrc":"5075:12:97","nodeType":"YulFunctionCall","src":"5075:12:97"},"nativeSrc":"5075:12:97","nodeType":"YulExpressionStatement","src":"5075:12:97"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"5061:6:97","nodeType":"YulIdentifier","src":"5061:6:97"},{"name":"_1","nativeSrc":"5069:2:97","nodeType":"YulIdentifier","src":"5069:2:97"}],"functionName":{"name":"gt","nativeSrc":"5058:2:97","nodeType":"YulIdentifier","src":"5058:2:97"},"nativeSrc":"5058:14:97","nodeType":"YulFunctionCall","src":"5058:14:97"},"nativeSrc":"5055:34:97","nodeType":"YulIf","src":"5055:34:97"},{"body":{"nativeSrc":"5139:16:97","nodeType":"YulBlock","src":"5139:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5148:1:97","nodeType":"YulLiteral","src":"5148:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"5151:1:97","nodeType":"YulLiteral","src":"5151:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5141:6:97","nodeType":"YulIdentifier","src":"5141:6:97"},"nativeSrc":"5141:12:97","nodeType":"YulFunctionCall","src":"5141:12:97"},"nativeSrc":"5141:12:97","nodeType":"YulExpressionStatement","src":"5141:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"5112:2:97","nodeType":"YulIdentifier","src":"5112:2:97"},{"name":"length","nativeSrc":"5116:6:97","nodeType":"YulIdentifier","src":"5116:6:97"}],"functionName":{"name":"add","nativeSrc":"5108:3:97","nodeType":"YulIdentifier","src":"5108:3:97"},"nativeSrc":"5108:15:97","nodeType":"YulFunctionCall","src":"5108:15:97"},{"kind":"number","nativeSrc":"5125:2:97","nodeType":"YulLiteral","src":"5125:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5104:3:97","nodeType":"YulIdentifier","src":"5104:3:97"},"nativeSrc":"5104:24:97","nodeType":"YulFunctionCall","src":"5104:24:97"},{"name":"dataEnd","nativeSrc":"5130:7:97","nodeType":"YulIdentifier","src":"5130:7:97"}],"functionName":{"name":"gt","nativeSrc":"5101:2:97","nodeType":"YulIdentifier","src":"5101:2:97"},"nativeSrc":"5101:37:97","nodeType":"YulFunctionCall","src":"5101:37:97"},"nativeSrc":"5098:57:97","nodeType":"YulIf","src":"5098:57:97"},{"nativeSrc":"5164:21:97","nodeType":"YulAssignment","src":"5164:21:97","value":{"arguments":[{"name":"_2","nativeSrc":"5178:2:97","nodeType":"YulIdentifier","src":"5178:2:97"},{"kind":"number","nativeSrc":"5182:2:97","nodeType":"YulLiteral","src":"5182:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5174:3:97","nodeType":"YulIdentifier","src":"5174:3:97"},"nativeSrc":"5174:11:97","nodeType":"YulFunctionCall","src":"5174:11:97"},"variableNames":[{"name":"value1","nativeSrc":"5164:6:97","nodeType":"YulIdentifier","src":"5164:6:97"}]},{"nativeSrc":"5194:16:97","nodeType":"YulAssignment","src":"5194:16:97","value":{"name":"length","nativeSrc":"5204:6:97","nodeType":"YulIdentifier","src":"5204:6:97"},"variableNames":[{"name":"value2","nativeSrc":"5194:6:97","nodeType":"YulIdentifier","src":"5194:6:97"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptr","nativeSrc":"4465:751:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4520:9:97","nodeType":"YulTypedName","src":"4520:9:97","type":""},{"name":"dataEnd","nativeSrc":"4531:7:97","nodeType":"YulTypedName","src":"4531:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4543:6:97","nodeType":"YulTypedName","src":"4543:6:97","type":""},{"name":"value1","nativeSrc":"4551:6:97","nodeType":"YulTypedName","src":"4551:6:97","type":""},{"name":"value2","nativeSrc":"4559:6:97","nodeType":"YulTypedName","src":"4559:6:97","type":""}],"src":"4465:751:97"},{"body":{"nativeSrc":"5355:125:97","nodeType":"YulBlock","src":"5355:125:97","statements":[{"nativeSrc":"5365:26:97","nodeType":"YulAssignment","src":"5365:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"5377:9:97","nodeType":"YulIdentifier","src":"5377:9:97"},{"kind":"number","nativeSrc":"5388:2:97","nodeType":"YulLiteral","src":"5388:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5373:3:97","nodeType":"YulIdentifier","src":"5373:3:97"},"nativeSrc":"5373:18:97","nodeType":"YulFunctionCall","src":"5373:18:97"},"variableNames":[{"name":"tail","nativeSrc":"5365:4:97","nodeType":"YulIdentifier","src":"5365:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5407:9:97","nodeType":"YulIdentifier","src":"5407:9:97"},{"arguments":[{"name":"value0","nativeSrc":"5422:6:97","nodeType":"YulIdentifier","src":"5422:6:97"},{"kind":"number","nativeSrc":"5430:42:97","nodeType":"YulLiteral","src":"5430:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"5418:3:97","nodeType":"YulIdentifier","src":"5418:3:97"},"nativeSrc":"5418:55:97","nodeType":"YulFunctionCall","src":"5418:55:97"}],"functionName":{"name":"mstore","nativeSrc":"5400:6:97","nodeType":"YulIdentifier","src":"5400:6:97"},"nativeSrc":"5400:74:97","nodeType":"YulFunctionCall","src":"5400:74:97"},"nativeSrc":"5400:74:97","nodeType":"YulExpressionStatement","src":"5400:74:97"}]},"name":"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$13903__to_t_address__fromStack_reversed","nativeSrc":"5221:259:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5324:9:97","nodeType":"YulTypedName","src":"5324:9:97","type":""},{"name":"value0","nativeSrc":"5335:6:97","nodeType":"YulTypedName","src":"5335:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5346:4:97","nodeType":"YulTypedName","src":"5346:4:97","type":""}],"src":"5221:259:97"},{"body":{"nativeSrc":"5634:191:97","nodeType":"YulBlock","src":"5634:191:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5651:9:97","nodeType":"YulIdentifier","src":"5651:9:97"},{"arguments":[{"name":"value0","nativeSrc":"5666:6:97","nodeType":"YulIdentifier","src":"5666:6:97"},{"kind":"number","nativeSrc":"5674:42:97","nodeType":"YulLiteral","src":"5674:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"5662:3:97","nodeType":"YulIdentifier","src":"5662:3:97"},"nativeSrc":"5662:55:97","nodeType":"YulFunctionCall","src":"5662:55:97"}],"functionName":{"name":"mstore","nativeSrc":"5644:6:97","nodeType":"YulIdentifier","src":"5644:6:97"},"nativeSrc":"5644:74:97","nodeType":"YulFunctionCall","src":"5644:74:97"},"nativeSrc":"5644:74:97","nodeType":"YulExpressionStatement","src":"5644:74:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5738:9:97","nodeType":"YulIdentifier","src":"5738:9:97"},{"kind":"number","nativeSrc":"5749:2:97","nodeType":"YulLiteral","src":"5749:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5734:3:97","nodeType":"YulIdentifier","src":"5734:3:97"},"nativeSrc":"5734:18:97","nodeType":"YulFunctionCall","src":"5734:18:97"},{"kind":"number","nativeSrc":"5754:2:97","nodeType":"YulLiteral","src":"5754:2:97","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"5727:6:97","nodeType":"YulIdentifier","src":"5727:6:97"},"nativeSrc":"5727:30:97","nodeType":"YulFunctionCall","src":"5727:30:97"},"nativeSrc":"5727:30:97","nodeType":"YulExpressionStatement","src":"5727:30:97"},{"nativeSrc":"5766:53:97","nodeType":"YulAssignment","src":"5766:53:97","value":{"arguments":[{"name":"value1","nativeSrc":"5792:6:97","nodeType":"YulIdentifier","src":"5792:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"5804:9:97","nodeType":"YulIdentifier","src":"5804:9:97"},{"kind":"number","nativeSrc":"5815:2:97","nodeType":"YulLiteral","src":"5815:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5800:3:97","nodeType":"YulIdentifier","src":"5800:3:97"},"nativeSrc":"5800:18:97","nodeType":"YulFunctionCall","src":"5800:18:97"}],"functionName":{"name":"abi_encode_string","nativeSrc":"5774:17:97","nodeType":"YulIdentifier","src":"5774:17:97"},"nativeSrc":"5774:45:97","nodeType":"YulFunctionCall","src":"5774:45:97"},"variableNames":[{"name":"tail","nativeSrc":"5766:4:97","nodeType":"YulIdentifier","src":"5766:4:97"}]}]},"name":"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5485:340:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5595:9:97","nodeType":"YulTypedName","src":"5595:9:97","type":""},{"name":"value1","nativeSrc":"5606:6:97","nodeType":"YulTypedName","src":"5606:6:97","type":""},{"name":"value0","nativeSrc":"5614:6:97","nodeType":"YulTypedName","src":"5614:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5625:4:97","nodeType":"YulTypedName","src":"5625:4:97","type":""}],"src":"5485:340:97"},{"body":{"nativeSrc":"5872:76:97","nodeType":"YulBlock","src":"5872:76:97","statements":[{"body":{"nativeSrc":"5926:16:97","nodeType":"YulBlock","src":"5926:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5935:1:97","nodeType":"YulLiteral","src":"5935:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"5938:1:97","nodeType":"YulLiteral","src":"5938:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5928:6:97","nodeType":"YulIdentifier","src":"5928:6:97"},"nativeSrc":"5928:12:97","nodeType":"YulFunctionCall","src":"5928:12:97"},"nativeSrc":"5928:12:97","nodeType":"YulExpressionStatement","src":"5928:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5895:5:97","nodeType":"YulIdentifier","src":"5895:5:97"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5916:5:97","nodeType":"YulIdentifier","src":"5916:5:97"}],"functionName":{"name":"iszero","nativeSrc":"5909:6:97","nodeType":"YulIdentifier","src":"5909:6:97"},"nativeSrc":"5909:13:97","nodeType":"YulFunctionCall","src":"5909:13:97"}],"functionName":{"name":"iszero","nativeSrc":"5902:6:97","nodeType":"YulIdentifier","src":"5902:6:97"},"nativeSrc":"5902:21:97","nodeType":"YulFunctionCall","src":"5902:21:97"}],"functionName":{"name":"eq","nativeSrc":"5892:2:97","nodeType":"YulIdentifier","src":"5892:2:97"},"nativeSrc":"5892:32:97","nodeType":"YulFunctionCall","src":"5892:32:97"}],"functionName":{"name":"iszero","nativeSrc":"5885:6:97","nodeType":"YulIdentifier","src":"5885:6:97"},"nativeSrc":"5885:40:97","nodeType":"YulFunctionCall","src":"5885:40:97"},"nativeSrc":"5882:60:97","nodeType":"YulIf","src":"5882:60:97"}]},"name":"validator_revert_bool","nativeSrc":"5830:118:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5861:5:97","nodeType":"YulTypedName","src":"5861:5:97","type":""}],"src":"5830:118:97"},{"body":{"nativeSrc":"6031:167:97","nodeType":"YulBlock","src":"6031:167:97","statements":[{"body":{"nativeSrc":"6077:16:97","nodeType":"YulBlock","src":"6077:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6086:1:97","nodeType":"YulLiteral","src":"6086:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"6089:1:97","nodeType":"YulLiteral","src":"6089:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6079:6:97","nodeType":"YulIdentifier","src":"6079:6:97"},"nativeSrc":"6079:12:97","nodeType":"YulFunctionCall","src":"6079:12:97"},"nativeSrc":"6079:12:97","nodeType":"YulExpressionStatement","src":"6079:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6052:7:97","nodeType":"YulIdentifier","src":"6052:7:97"},{"name":"headStart","nativeSrc":"6061:9:97","nodeType":"YulIdentifier","src":"6061:9:97"}],"functionName":{"name":"sub","nativeSrc":"6048:3:97","nodeType":"YulIdentifier","src":"6048:3:97"},"nativeSrc":"6048:23:97","nodeType":"YulFunctionCall","src":"6048:23:97"},{"kind":"number","nativeSrc":"6073:2:97","nodeType":"YulLiteral","src":"6073:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6044:3:97","nodeType":"YulIdentifier","src":"6044:3:97"},"nativeSrc":"6044:32:97","nodeType":"YulFunctionCall","src":"6044:32:97"},"nativeSrc":"6041:52:97","nodeType":"YulIf","src":"6041:52:97"},{"nativeSrc":"6102:29:97","nodeType":"YulVariableDeclaration","src":"6102:29:97","value":{"arguments":[{"name":"headStart","nativeSrc":"6121:9:97","nodeType":"YulIdentifier","src":"6121:9:97"}],"functionName":{"name":"mload","nativeSrc":"6115:5:97","nodeType":"YulIdentifier","src":"6115:5:97"},"nativeSrc":"6115:16:97","nodeType":"YulFunctionCall","src":"6115:16:97"},"variables":[{"name":"value","nativeSrc":"6106:5:97","nodeType":"YulTypedName","src":"6106:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6162:5:97","nodeType":"YulIdentifier","src":"6162:5:97"}],"functionName":{"name":"validator_revert_bool","nativeSrc":"6140:21:97","nodeType":"YulIdentifier","src":"6140:21:97"},"nativeSrc":"6140:28:97","nodeType":"YulFunctionCall","src":"6140:28:97"},"nativeSrc":"6140:28:97","nodeType":"YulExpressionStatement","src":"6140:28:97"},{"nativeSrc":"6177:15:97","nodeType":"YulAssignment","src":"6177:15:97","value":{"name":"value","nativeSrc":"6187:5:97","nodeType":"YulIdentifier","src":"6187:5:97"},"variableNames":[{"name":"value0","nativeSrc":"6177:6:97","nodeType":"YulIdentifier","src":"6177:6:97"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"5953:245:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5997:9:97","nodeType":"YulTypedName","src":"5997:9:97","type":""},{"name":"dataEnd","nativeSrc":"6008:7:97","nodeType":"YulTypedName","src":"6008:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6020:6:97","nodeType":"YulTypedName","src":"6020:6:97","type":""}],"src":"5953:245:97"},{"body":{"nativeSrc":"6380:264:97","nodeType":"YulBlock","src":"6380:264:97","statements":[{"nativeSrc":"6390:52:97","nodeType":"YulVariableDeclaration","src":"6390:52:97","value":{"kind":"number","nativeSrc":"6400:42:97","nodeType":"YulLiteral","src":"6400:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"6394:2:97","nodeType":"YulTypedName","src":"6394:2:97","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6458:9:97","nodeType":"YulIdentifier","src":"6458:9:97"},{"arguments":[{"name":"value0","nativeSrc":"6473:6:97","nodeType":"YulIdentifier","src":"6473:6:97"},{"name":"_1","nativeSrc":"6481:2:97","nodeType":"YulIdentifier","src":"6481:2:97"}],"functionName":{"name":"and","nativeSrc":"6469:3:97","nodeType":"YulIdentifier","src":"6469:3:97"},"nativeSrc":"6469:15:97","nodeType":"YulFunctionCall","src":"6469:15:97"}],"functionName":{"name":"mstore","nativeSrc":"6451:6:97","nodeType":"YulIdentifier","src":"6451:6:97"},"nativeSrc":"6451:34:97","nodeType":"YulFunctionCall","src":"6451:34:97"},"nativeSrc":"6451:34:97","nodeType":"YulExpressionStatement","src":"6451:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6505:9:97","nodeType":"YulIdentifier","src":"6505:9:97"},{"kind":"number","nativeSrc":"6516:2:97","nodeType":"YulLiteral","src":"6516:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6501:3:97","nodeType":"YulIdentifier","src":"6501:3:97"},"nativeSrc":"6501:18:97","nodeType":"YulFunctionCall","src":"6501:18:97"},{"arguments":[{"name":"value1","nativeSrc":"6525:6:97","nodeType":"YulIdentifier","src":"6525:6:97"},{"name":"_1","nativeSrc":"6533:2:97","nodeType":"YulIdentifier","src":"6533:2:97"}],"functionName":{"name":"and","nativeSrc":"6521:3:97","nodeType":"YulIdentifier","src":"6521:3:97"},"nativeSrc":"6521:15:97","nodeType":"YulFunctionCall","src":"6521:15:97"}],"functionName":{"name":"mstore","nativeSrc":"6494:6:97","nodeType":"YulIdentifier","src":"6494:6:97"},"nativeSrc":"6494:43:97","nodeType":"YulFunctionCall","src":"6494:43:97"},"nativeSrc":"6494:43:97","nodeType":"YulExpressionStatement","src":"6494:43:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6557:9:97","nodeType":"YulIdentifier","src":"6557:9:97"},{"kind":"number","nativeSrc":"6568:2:97","nodeType":"YulLiteral","src":"6568:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6553:3:97","nodeType":"YulIdentifier","src":"6553:3:97"},"nativeSrc":"6553:18:97","nodeType":"YulFunctionCall","src":"6553:18:97"},{"kind":"number","nativeSrc":"6573:2:97","nodeType":"YulLiteral","src":"6573:2:97","type":"","value":"96"}],"functionName":{"name":"mstore","nativeSrc":"6546:6:97","nodeType":"YulIdentifier","src":"6546:6:97"},"nativeSrc":"6546:30:97","nodeType":"YulFunctionCall","src":"6546:30:97"},"nativeSrc":"6546:30:97","nodeType":"YulExpressionStatement","src":"6546:30:97"},{"nativeSrc":"6585:53:97","nodeType":"YulAssignment","src":"6585:53:97","value":{"arguments":[{"name":"value2","nativeSrc":"6611:6:97","nodeType":"YulIdentifier","src":"6611:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"6623:9:97","nodeType":"YulIdentifier","src":"6623:9:97"},{"kind":"number","nativeSrc":"6634:2:97","nodeType":"YulLiteral","src":"6634:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"6619:3:97","nodeType":"YulIdentifier","src":"6619:3:97"},"nativeSrc":"6619:18:97","nodeType":"YulFunctionCall","src":"6619:18:97"}],"functionName":{"name":"abi_encode_string","nativeSrc":"6593:17:97","nodeType":"YulIdentifier","src":"6593:17:97"},"nativeSrc":"6593:45:97","nodeType":"YulFunctionCall","src":"6593:45:97"},"variableNames":[{"name":"tail","nativeSrc":"6585:4:97","nodeType":"YulIdentifier","src":"6585:4:97"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6203:441:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6333:9:97","nodeType":"YulTypedName","src":"6333:9:97","type":""},{"name":"value2","nativeSrc":"6344:6:97","nodeType":"YulTypedName","src":"6344:6:97","type":""},{"name":"value1","nativeSrc":"6352:6:97","nodeType":"YulTypedName","src":"6352:6:97","type":""},{"name":"value0","nativeSrc":"6360:6:97","nodeType":"YulTypedName","src":"6360:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6371:4:97","nodeType":"YulTypedName","src":"6371:4:97","type":""}],"src":"6203:441:97"},{"body":{"nativeSrc":"6823:174:97","nodeType":"YulBlock","src":"6823:174:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6840:9:97","nodeType":"YulIdentifier","src":"6840:9:97"},{"kind":"number","nativeSrc":"6851:2:97","nodeType":"YulLiteral","src":"6851:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"6833:6:97","nodeType":"YulIdentifier","src":"6833:6:97"},"nativeSrc":"6833:21:97","nodeType":"YulFunctionCall","src":"6833:21:97"},"nativeSrc":"6833:21:97","nodeType":"YulExpressionStatement","src":"6833:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6874:9:97","nodeType":"YulIdentifier","src":"6874:9:97"},{"kind":"number","nativeSrc":"6885:2:97","nodeType":"YulLiteral","src":"6885:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6870:3:97","nodeType":"YulIdentifier","src":"6870:3:97"},"nativeSrc":"6870:18:97","nodeType":"YulFunctionCall","src":"6870:18:97"},{"kind":"number","nativeSrc":"6890:2:97","nodeType":"YulLiteral","src":"6890:2:97","type":"","value":"24"}],"functionName":{"name":"mstore","nativeSrc":"6863:6:97","nodeType":"YulIdentifier","src":"6863:6:97"},"nativeSrc":"6863:30:97","nodeType":"YulFunctionCall","src":"6863:30:97"},"nativeSrc":"6863:30:97","nodeType":"YulExpressionStatement","src":"6863:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6913:9:97","nodeType":"YulIdentifier","src":"6913:9:97"},{"kind":"number","nativeSrc":"6924:2:97","nodeType":"YulLiteral","src":"6924:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6909:3:97","nodeType":"YulIdentifier","src":"6909:3:97"},"nativeSrc":"6909:18:97","nodeType":"YulFunctionCall","src":"6909:18:97"},{"hexValue":"41646472657373206d757374206e6f74206265207a65726f","kind":"string","nativeSrc":"6929:26:97","nodeType":"YulLiteral","src":"6929:26:97","type":"","value":"Address must not be zero"}],"functionName":{"name":"mstore","nativeSrc":"6902:6:97","nodeType":"YulIdentifier","src":"6902:6:97"},"nativeSrc":"6902:54:97","nodeType":"YulFunctionCall","src":"6902:54:97"},"nativeSrc":"6902:54:97","nodeType":"YulExpressionStatement","src":"6902:54:97"},{"nativeSrc":"6965:26:97","nodeType":"YulAssignment","src":"6965:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"6977:9:97","nodeType":"YulIdentifier","src":"6977:9:97"},{"kind":"number","nativeSrc":"6988:2:97","nodeType":"YulLiteral","src":"6988:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"6973:3:97","nodeType":"YulIdentifier","src":"6973:3:97"},"nativeSrc":"6973:18:97","nodeType":"YulFunctionCall","src":"6973:18:97"},"variableNames":[{"name":"tail","nativeSrc":"6965:4:97","nodeType":"YulIdentifier","src":"6965:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_c39385493865630bb9b3c804a5f858917cc1a47989c0d222d56c03d1165a81a0__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6649:348:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6800:9:97","nodeType":"YulTypedName","src":"6800:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6814:4:97","nodeType":"YulTypedName","src":"6814:4:97","type":""}],"src":"6649:348:97"},{"body":{"nativeSrc":"7176:228:97","nodeType":"YulBlock","src":"7176:228:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7193:9:97","nodeType":"YulIdentifier","src":"7193:9:97"},{"kind":"number","nativeSrc":"7204:2:97","nodeType":"YulLiteral","src":"7204:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"7186:6:97","nodeType":"YulIdentifier","src":"7186:6:97"},"nativeSrc":"7186:21:97","nodeType":"YulFunctionCall","src":"7186:21:97"},"nativeSrc":"7186:21:97","nodeType":"YulExpressionStatement","src":"7186:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7227:9:97","nodeType":"YulIdentifier","src":"7227:9:97"},{"kind":"number","nativeSrc":"7238:2:97","nodeType":"YulLiteral","src":"7238:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7223:3:97","nodeType":"YulIdentifier","src":"7223:3:97"},"nativeSrc":"7223:18:97","nodeType":"YulFunctionCall","src":"7223:18:97"},{"kind":"number","nativeSrc":"7243:2:97","nodeType":"YulLiteral","src":"7243:2:97","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"7216:6:97","nodeType":"YulIdentifier","src":"7216:6:97"},"nativeSrc":"7216:30:97","nodeType":"YulFunctionCall","src":"7216:30:97"},"nativeSrc":"7216:30:97","nodeType":"YulExpressionStatement","src":"7216:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7266:9:97","nodeType":"YulIdentifier","src":"7266:9:97"},{"kind":"number","nativeSrc":"7277:2:97","nodeType":"YulLiteral","src":"7277:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7262:3:97","nodeType":"YulIdentifier","src":"7262:3:97"},"nativeSrc":"7262:18:97","nodeType":"YulFunctionCall","src":"7262:18:97"},{"hexValue":"496e70757420617272617973206d7573742068617665207468652073616d6520","kind":"string","nativeSrc":"7282:34:97","nodeType":"YulLiteral","src":"7282:34:97","type":"","value":"Input arrays must have the same "}],"functionName":{"name":"mstore","nativeSrc":"7255:6:97","nodeType":"YulIdentifier","src":"7255:6:97"},"nativeSrc":"7255:62:97","nodeType":"YulFunctionCall","src":"7255:62:97"},"nativeSrc":"7255:62:97","nodeType":"YulExpressionStatement","src":"7255:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7337:9:97","nodeType":"YulIdentifier","src":"7337:9:97"},{"kind":"number","nativeSrc":"7348:2:97","nodeType":"YulLiteral","src":"7348:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"7333:3:97","nodeType":"YulIdentifier","src":"7333:3:97"},"nativeSrc":"7333:18:97","nodeType":"YulFunctionCall","src":"7333:18:97"},{"hexValue":"6c656e677468","kind":"string","nativeSrc":"7353:8:97","nodeType":"YulLiteral","src":"7353:8:97","type":"","value":"length"}],"functionName":{"name":"mstore","nativeSrc":"7326:6:97","nodeType":"YulIdentifier","src":"7326:6:97"},"nativeSrc":"7326:36:97","nodeType":"YulFunctionCall","src":"7326:36:97"},"nativeSrc":"7326:36:97","nodeType":"YulExpressionStatement","src":"7326:36:97"},{"nativeSrc":"7371:27:97","nodeType":"YulAssignment","src":"7371:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"7383:9:97","nodeType":"YulIdentifier","src":"7383:9:97"},{"kind":"number","nativeSrc":"7394:3:97","nodeType":"YulLiteral","src":"7394:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"7379:3:97","nodeType":"YulIdentifier","src":"7379:3:97"},"nativeSrc":"7379:19:97","nodeType":"YulFunctionCall","src":"7379:19:97"},"variableNames":[{"name":"tail","nativeSrc":"7371:4:97","nodeType":"YulIdentifier","src":"7371:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_8c7d7f44a93d75a90a1d7078d1656040bea1969f911d1ad279bc9b0194f1b13e__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"7002:402:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7153:9:97","nodeType":"YulTypedName","src":"7153:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7167:4:97","nodeType":"YulTypedName","src":"7167:4:97","type":""}],"src":"7002:402:97"},{"body":{"nativeSrc":"7441:152:97","nodeType":"YulBlock","src":"7441:152:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7458:1:97","nodeType":"YulLiteral","src":"7458:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"7461:77:97","nodeType":"YulLiteral","src":"7461:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"7451:6:97","nodeType":"YulIdentifier","src":"7451:6:97"},"nativeSrc":"7451:88:97","nodeType":"YulFunctionCall","src":"7451:88:97"},"nativeSrc":"7451:88:97","nodeType":"YulExpressionStatement","src":"7451:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7555:1:97","nodeType":"YulLiteral","src":"7555:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"7558:4:97","nodeType":"YulLiteral","src":"7558:4:97","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"7548:6:97","nodeType":"YulIdentifier","src":"7548:6:97"},"nativeSrc":"7548:15:97","nodeType":"YulFunctionCall","src":"7548:15:97"},"nativeSrc":"7548:15:97","nodeType":"YulExpressionStatement","src":"7548:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7579:1:97","nodeType":"YulLiteral","src":"7579:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"7582:4:97","nodeType":"YulLiteral","src":"7582:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"7572:6:97","nodeType":"YulIdentifier","src":"7572:6:97"},"nativeSrc":"7572:15:97","nodeType":"YulFunctionCall","src":"7572:15:97"},"nativeSrc":"7572:15:97","nodeType":"YulExpressionStatement","src":"7572:15:97"}]},"name":"panic_error_0x32","nativeSrc":"7409:184:97","nodeType":"YulFunctionDefinition","src":"7409:184:97"},{"body":{"nativeSrc":"7693:486:97","nodeType":"YulBlock","src":"7693:486:97","statements":[{"nativeSrc":"7703:51:97","nodeType":"YulVariableDeclaration","src":"7703:51:97","value":{"arguments":[{"name":"ptr_to_tail","nativeSrc":"7742:11:97","nodeType":"YulIdentifier","src":"7742:11:97"}],"functionName":{"name":"calldataload","nativeSrc":"7729:12:97","nodeType":"YulIdentifier","src":"7729:12:97"},"nativeSrc":"7729:25:97","nodeType":"YulFunctionCall","src":"7729:25:97"},"variables":[{"name":"rel_offset_of_tail","nativeSrc":"7707:18:97","nodeType":"YulTypedName","src":"7707:18:97","type":""}]},{"body":{"nativeSrc":"7902:16:97","nodeType":"YulBlock","src":"7902:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7911:1:97","nodeType":"YulLiteral","src":"7911:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"7914:1:97","nodeType":"YulLiteral","src":"7914:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7904:6:97","nodeType":"YulIdentifier","src":"7904:6:97"},"nativeSrc":"7904:12:97","nodeType":"YulFunctionCall","src":"7904:12:97"},"nativeSrc":"7904:12:97","nodeType":"YulExpressionStatement","src":"7904:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nativeSrc":"7777:18:97","nodeType":"YulIdentifier","src":"7777:18:97"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"7805:12:97","nodeType":"YulIdentifier","src":"7805:12:97"},"nativeSrc":"7805:14:97","nodeType":"YulFunctionCall","src":"7805:14:97"},{"name":"base_ref","nativeSrc":"7821:8:97","nodeType":"YulIdentifier","src":"7821:8:97"}],"functionName":{"name":"sub","nativeSrc":"7801:3:97","nodeType":"YulIdentifier","src":"7801:3:97"},"nativeSrc":"7801:29:97","nodeType":"YulFunctionCall","src":"7801:29:97"},{"kind":"number","nativeSrc":"7832:66:97","nodeType":"YulLiteral","src":"7832:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1"}],"functionName":{"name":"add","nativeSrc":"7797:3:97","nodeType":"YulIdentifier","src":"7797:3:97"},"nativeSrc":"7797:102:97","nodeType":"YulFunctionCall","src":"7797:102:97"}],"functionName":{"name":"slt","nativeSrc":"7773:3:97","nodeType":"YulIdentifier","src":"7773:3:97"},"nativeSrc":"7773:127:97","nodeType":"YulFunctionCall","src":"7773:127:97"}],"functionName":{"name":"iszero","nativeSrc":"7766:6:97","nodeType":"YulIdentifier","src":"7766:6:97"},"nativeSrc":"7766:135:97","nodeType":"YulFunctionCall","src":"7766:135:97"},"nativeSrc":"7763:155:97","nodeType":"YulIf","src":"7763:155:97"},{"nativeSrc":"7927:47:97","nodeType":"YulVariableDeclaration","src":"7927:47:97","value":{"arguments":[{"name":"base_ref","nativeSrc":"7945:8:97","nodeType":"YulIdentifier","src":"7945:8:97"},{"name":"rel_offset_of_tail","nativeSrc":"7955:18:97","nodeType":"YulIdentifier","src":"7955:18:97"}],"functionName":{"name":"add","nativeSrc":"7941:3:97","nodeType":"YulIdentifier","src":"7941:3:97"},"nativeSrc":"7941:33:97","nodeType":"YulFunctionCall","src":"7941:33:97"},"variables":[{"name":"addr_1","nativeSrc":"7931:6:97","nodeType":"YulTypedName","src":"7931:6:97","type":""}]},{"nativeSrc":"7983:30:97","nodeType":"YulAssignment","src":"7983:30:97","value":{"arguments":[{"name":"addr_1","nativeSrc":"8006:6:97","nodeType":"YulIdentifier","src":"8006:6:97"}],"functionName":{"name":"calldataload","nativeSrc":"7993:12:97","nodeType":"YulIdentifier","src":"7993:12:97"},"nativeSrc":"7993:20:97","nodeType":"YulFunctionCall","src":"7993:20:97"},"variableNames":[{"name":"length","nativeSrc":"7983:6:97","nodeType":"YulIdentifier","src":"7983:6:97"}]},{"body":{"nativeSrc":"8056:16:97","nodeType":"YulBlock","src":"8056:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8065:1:97","nodeType":"YulLiteral","src":"8065:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"8068:1:97","nodeType":"YulLiteral","src":"8068:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8058:6:97","nodeType":"YulIdentifier","src":"8058:6:97"},"nativeSrc":"8058:12:97","nodeType":"YulFunctionCall","src":"8058:12:97"},"nativeSrc":"8058:12:97","nodeType":"YulExpressionStatement","src":"8058:12:97"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"8028:6:97","nodeType":"YulIdentifier","src":"8028:6:97"},{"kind":"number","nativeSrc":"8036:18:97","nodeType":"YulLiteral","src":"8036:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8025:2:97","nodeType":"YulIdentifier","src":"8025:2:97"},"nativeSrc":"8025:30:97","nodeType":"YulFunctionCall","src":"8025:30:97"},"nativeSrc":"8022:50:97","nodeType":"YulIf","src":"8022:50:97"},{"nativeSrc":"8081:25:97","nodeType":"YulAssignment","src":"8081:25:97","value":{"arguments":[{"name":"addr_1","nativeSrc":"8093:6:97","nodeType":"YulIdentifier","src":"8093:6:97"},{"kind":"number","nativeSrc":"8101:4:97","nodeType":"YulLiteral","src":"8101:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8089:3:97","nodeType":"YulIdentifier","src":"8089:3:97"},"nativeSrc":"8089:17:97","nodeType":"YulFunctionCall","src":"8089:17:97"},"variableNames":[{"name":"addr","nativeSrc":"8081:4:97","nodeType":"YulIdentifier","src":"8081:4:97"}]},{"body":{"nativeSrc":"8157:16:97","nodeType":"YulBlock","src":"8157:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8166:1:97","nodeType":"YulLiteral","src":"8166:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"8169:1:97","nodeType":"YulLiteral","src":"8169:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8159:6:97","nodeType":"YulIdentifier","src":"8159:6:97"},"nativeSrc":"8159:12:97","nodeType":"YulFunctionCall","src":"8159:12:97"},"nativeSrc":"8159:12:97","nodeType":"YulExpressionStatement","src":"8159:12:97"}]},"condition":{"arguments":[{"name":"addr","nativeSrc":"8122:4:97","nodeType":"YulIdentifier","src":"8122:4:97"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"8132:12:97","nodeType":"YulIdentifier","src":"8132:12:97"},"nativeSrc":"8132:14:97","nodeType":"YulFunctionCall","src":"8132:14:97"},{"name":"length","nativeSrc":"8148:6:97","nodeType":"YulIdentifier","src":"8148:6:97"}],"functionName":{"name":"sub","nativeSrc":"8128:3:97","nodeType":"YulIdentifier","src":"8128:3:97"},"nativeSrc":"8128:27:97","nodeType":"YulFunctionCall","src":"8128:27:97"}],"functionName":{"name":"sgt","nativeSrc":"8118:3:97","nodeType":"YulIdentifier","src":"8118:3:97"},"nativeSrc":"8118:38:97","nodeType":"YulFunctionCall","src":"8118:38:97"},"nativeSrc":"8115:58:97","nodeType":"YulIf","src":"8115:58:97"}]},"name":"access_calldata_tail_t_string_calldata_ptr","nativeSrc":"7598:581:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nativeSrc":"7650:8:97","nodeType":"YulTypedName","src":"7650:8:97","type":""},{"name":"ptr_to_tail","nativeSrc":"7660:11:97","nodeType":"YulTypedName","src":"7660:11:97","type":""}],"returnVariables":[{"name":"addr","nativeSrc":"7676:4:97","nodeType":"YulTypedName","src":"7676:4:97","type":""},{"name":"length","nativeSrc":"7682:6:97","nodeType":"YulTypedName","src":"7682:6:97","type":""}],"src":"7598:581:97"},{"body":{"nativeSrc":"8251:174:97","nodeType":"YulBlock","src":"8251:174:97","statements":[{"body":{"nativeSrc":"8297:16:97","nodeType":"YulBlock","src":"8297:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8306:1:97","nodeType":"YulLiteral","src":"8306:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"8309:1:97","nodeType":"YulLiteral","src":"8309:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8299:6:97","nodeType":"YulIdentifier","src":"8299:6:97"},"nativeSrc":"8299:12:97","nodeType":"YulFunctionCall","src":"8299:12:97"},"nativeSrc":"8299:12:97","nodeType":"YulExpressionStatement","src":"8299:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8272:7:97","nodeType":"YulIdentifier","src":"8272:7:97"},{"name":"headStart","nativeSrc":"8281:9:97","nodeType":"YulIdentifier","src":"8281:9:97"}],"functionName":{"name":"sub","nativeSrc":"8268:3:97","nodeType":"YulIdentifier","src":"8268:3:97"},"nativeSrc":"8268:23:97","nodeType":"YulFunctionCall","src":"8268:23:97"},{"kind":"number","nativeSrc":"8293:2:97","nodeType":"YulLiteral","src":"8293:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"8264:3:97","nodeType":"YulIdentifier","src":"8264:3:97"},"nativeSrc":"8264:32:97","nodeType":"YulFunctionCall","src":"8264:32:97"},"nativeSrc":"8261:52:97","nodeType":"YulIf","src":"8261:52:97"},{"nativeSrc":"8322:36:97","nodeType":"YulVariableDeclaration","src":"8322:36:97","value":{"arguments":[{"name":"headStart","nativeSrc":"8348:9:97","nodeType":"YulIdentifier","src":"8348:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"8335:12:97","nodeType":"YulIdentifier","src":"8335:12:97"},"nativeSrc":"8335:23:97","nodeType":"YulFunctionCall","src":"8335:23:97"},"variables":[{"name":"value","nativeSrc":"8326:5:97","nodeType":"YulTypedName","src":"8326:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8389:5:97","nodeType":"YulIdentifier","src":"8389:5:97"}],"functionName":{"name":"validator_revert_bool","nativeSrc":"8367:21:97","nodeType":"YulIdentifier","src":"8367:21:97"},"nativeSrc":"8367:28:97","nodeType":"YulFunctionCall","src":"8367:28:97"},"nativeSrc":"8367:28:97","nodeType":"YulExpressionStatement","src":"8367:28:97"},{"nativeSrc":"8404:15:97","nodeType":"YulAssignment","src":"8404:15:97","value":{"name":"value","nativeSrc":"8414:5:97","nodeType":"YulIdentifier","src":"8414:5:97"},"variableNames":[{"name":"value0","nativeSrc":"8404:6:97","nodeType":"YulIdentifier","src":"8404:6:97"}]}]},"name":"abi_decode_tuple_t_bool","nativeSrc":"8184:241:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8217:9:97","nodeType":"YulTypedName","src":"8217:9:97","type":""},{"name":"dataEnd","nativeSrc":"8228:7:97","nodeType":"YulTypedName","src":"8228:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8240:6:97","nodeType":"YulTypedName","src":"8240:6:97","type":""}],"src":"8184:241:97"},{"body":{"nativeSrc":"8462:152:97","nodeType":"YulBlock","src":"8462:152:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8479:1:97","nodeType":"YulLiteral","src":"8479:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"8482:77:97","nodeType":"YulLiteral","src":"8482:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"8472:6:97","nodeType":"YulIdentifier","src":"8472:6:97"},"nativeSrc":"8472:88:97","nodeType":"YulFunctionCall","src":"8472:88:97"},"nativeSrc":"8472:88:97","nodeType":"YulExpressionStatement","src":"8472:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8576:1:97","nodeType":"YulLiteral","src":"8576:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"8579:4:97","nodeType":"YulLiteral","src":"8579:4:97","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"8569:6:97","nodeType":"YulIdentifier","src":"8569:6:97"},"nativeSrc":"8569:15:97","nodeType":"YulFunctionCall","src":"8569:15:97"},"nativeSrc":"8569:15:97","nodeType":"YulExpressionStatement","src":"8569:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8600:1:97","nodeType":"YulLiteral","src":"8600:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"8603:4:97","nodeType":"YulLiteral","src":"8603:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"8593:6:97","nodeType":"YulIdentifier","src":"8593:6:97"},"nativeSrc":"8593:15:97","nodeType":"YulFunctionCall","src":"8593:15:97"},"nativeSrc":"8593:15:97","nodeType":"YulExpressionStatement","src":"8593:15:97"}]},"name":"panic_error_0x41","nativeSrc":"8430:184:97","nodeType":"YulFunctionDefinition","src":"8430:184:97"},{"body":{"nativeSrc":"8675:65:97","nodeType":"YulBlock","src":"8675:65:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8692:1:97","nodeType":"YulLiteral","src":"8692:1:97","type":"","value":"0"},{"name":"ptr","nativeSrc":"8695:3:97","nodeType":"YulIdentifier","src":"8695:3:97"}],"functionName":{"name":"mstore","nativeSrc":"8685:6:97","nodeType":"YulIdentifier","src":"8685:6:97"},"nativeSrc":"8685:14:97","nodeType":"YulFunctionCall","src":"8685:14:97"},"nativeSrc":"8685:14:97","nodeType":"YulExpressionStatement","src":"8685:14:97"},{"nativeSrc":"8708:26:97","nodeType":"YulAssignment","src":"8708:26:97","value":{"arguments":[{"kind":"number","nativeSrc":"8726:1:97","nodeType":"YulLiteral","src":"8726:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"8729:4:97","nodeType":"YulLiteral","src":"8729:4:97","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"8716:9:97","nodeType":"YulIdentifier","src":"8716:9:97"},"nativeSrc":"8716:18:97","nodeType":"YulFunctionCall","src":"8716:18:97"},"variableNames":[{"name":"data","nativeSrc":"8708:4:97","nodeType":"YulIdentifier","src":"8708:4:97"}]}]},"name":"array_dataslot_string_storage","nativeSrc":"8619:121:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"8658:3:97","nodeType":"YulTypedName","src":"8658:3:97","type":""}],"returnVariables":[{"name":"data","nativeSrc":"8666:4:97","nodeType":"YulTypedName","src":"8666:4:97","type":""}],"src":"8619:121:97"},{"body":{"nativeSrc":"8826:462:97","nodeType":"YulBlock","src":"8826:462:97","statements":[{"body":{"nativeSrc":"8859:423:97","nodeType":"YulBlock","src":"8859:423:97","statements":[{"nativeSrc":"8873:11:97","nodeType":"YulVariableDeclaration","src":"8873:11:97","value":{"kind":"number","nativeSrc":"8883:1:97","nodeType":"YulLiteral","src":"8883:1:97","type":"","value":"0"},"variables":[{"name":"_1","nativeSrc":"8877:2:97","nodeType":"YulTypedName","src":"8877:2:97","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8904:1:97","nodeType":"YulLiteral","src":"8904:1:97","type":"","value":"0"},{"name":"array","nativeSrc":"8907:5:97","nodeType":"YulIdentifier","src":"8907:5:97"}],"functionName":{"name":"mstore","nativeSrc":"8897:6:97","nodeType":"YulIdentifier","src":"8897:6:97"},"nativeSrc":"8897:16:97","nodeType":"YulFunctionCall","src":"8897:16:97"},"nativeSrc":"8897:16:97","nodeType":"YulExpressionStatement","src":"8897:16:97"},{"nativeSrc":"8926:30:97","nodeType":"YulVariableDeclaration","src":"8926:30:97","value":{"arguments":[{"kind":"number","nativeSrc":"8948:1:97","nodeType":"YulLiteral","src":"8948:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"8951:4:97","nodeType":"YulLiteral","src":"8951:4:97","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"8938:9:97","nodeType":"YulIdentifier","src":"8938:9:97"},"nativeSrc":"8938:18:97","nodeType":"YulFunctionCall","src":"8938:18:97"},"variables":[{"name":"data","nativeSrc":"8930:4:97","nodeType":"YulTypedName","src":"8930:4:97","type":""}]},{"nativeSrc":"8969:57:97","nodeType":"YulVariableDeclaration","src":"8969:57:97","value":{"arguments":[{"name":"data","nativeSrc":"8992:4:97","nodeType":"YulIdentifier","src":"8992:4:97"},{"arguments":[{"kind":"number","nativeSrc":"9002:1:97","nodeType":"YulLiteral","src":"9002:1:97","type":"","value":"5"},{"arguments":[{"name":"startIndex","nativeSrc":"9009:10:97","nodeType":"YulIdentifier","src":"9009:10:97"},{"kind":"number","nativeSrc":"9021:2:97","nodeType":"YulLiteral","src":"9021:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"9005:3:97","nodeType":"YulIdentifier","src":"9005:3:97"},"nativeSrc":"9005:19:97","nodeType":"YulFunctionCall","src":"9005:19:97"}],"functionName":{"name":"shr","nativeSrc":"8998:3:97","nodeType":"YulIdentifier","src":"8998:3:97"},"nativeSrc":"8998:27:97","nodeType":"YulFunctionCall","src":"8998:27:97"}],"functionName":{"name":"add","nativeSrc":"8988:3:97","nodeType":"YulIdentifier","src":"8988:3:97"},"nativeSrc":"8988:38:97","nodeType":"YulFunctionCall","src":"8988:38:97"},"variables":[{"name":"deleteStart","nativeSrc":"8973:11:97","nodeType":"YulTypedName","src":"8973:11:97","type":""}]},{"body":{"nativeSrc":"9063:23:97","nodeType":"YulBlock","src":"9063:23:97","statements":[{"nativeSrc":"9065:19:97","nodeType":"YulAssignment","src":"9065:19:97","value":{"name":"data","nativeSrc":"9080:4:97","nodeType":"YulIdentifier","src":"9080:4:97"},"variableNames":[{"name":"deleteStart","nativeSrc":"9065:11:97","nodeType":"YulIdentifier","src":"9065:11:97"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"9045:10:97","nodeType":"YulIdentifier","src":"9045:10:97"},{"kind":"number","nativeSrc":"9057:4:97","nodeType":"YulLiteral","src":"9057:4:97","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"9042:2:97","nodeType":"YulIdentifier","src":"9042:2:97"},"nativeSrc":"9042:20:97","nodeType":"YulFunctionCall","src":"9042:20:97"},"nativeSrc":"9039:47:97","nodeType":"YulIf","src":"9039:47:97"},{"nativeSrc":"9099:41:97","nodeType":"YulVariableDeclaration","src":"9099:41:97","value":{"arguments":[{"name":"data","nativeSrc":"9113:4:97","nodeType":"YulIdentifier","src":"9113:4:97"},{"arguments":[{"kind":"number","nativeSrc":"9123:1:97","nodeType":"YulLiteral","src":"9123:1:97","type":"","value":"5"},{"arguments":[{"name":"len","nativeSrc":"9130:3:97","nodeType":"YulIdentifier","src":"9130:3:97"},{"kind":"number","nativeSrc":"9135:2:97","nodeType":"YulLiteral","src":"9135:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"9126:3:97","nodeType":"YulIdentifier","src":"9126:3:97"},"nativeSrc":"9126:12:97","nodeType":"YulFunctionCall","src":"9126:12:97"}],"functionName":{"name":"shr","nativeSrc":"9119:3:97","nodeType":"YulIdentifier","src":"9119:3:97"},"nativeSrc":"9119:20:97","nodeType":"YulFunctionCall","src":"9119:20:97"}],"functionName":{"name":"add","nativeSrc":"9109:3:97","nodeType":"YulIdentifier","src":"9109:3:97"},"nativeSrc":"9109:31:97","nodeType":"YulFunctionCall","src":"9109:31:97"},"variables":[{"name":"_2","nativeSrc":"9103:2:97","nodeType":"YulTypedName","src":"9103:2:97","type":""}]},{"nativeSrc":"9153:24:97","nodeType":"YulVariableDeclaration","src":"9153:24:97","value":{"name":"deleteStart","nativeSrc":"9166:11:97","nodeType":"YulIdentifier","src":"9166:11:97"},"variables":[{"name":"start","nativeSrc":"9157:5:97","nodeType":"YulTypedName","src":"9157:5:97","type":""}]},{"body":{"nativeSrc":"9251:21:97","nodeType":"YulBlock","src":"9251:21:97","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"9260:5:97","nodeType":"YulIdentifier","src":"9260:5:97"},{"name":"_1","nativeSrc":"9267:2:97","nodeType":"YulIdentifier","src":"9267:2:97"}],"functionName":{"name":"sstore","nativeSrc":"9253:6:97","nodeType":"YulIdentifier","src":"9253:6:97"},"nativeSrc":"9253:17:97","nodeType":"YulFunctionCall","src":"9253:17:97"},"nativeSrc":"9253:17:97","nodeType":"YulExpressionStatement","src":"9253:17:97"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"9201:5:97","nodeType":"YulIdentifier","src":"9201:5:97"},{"name":"_2","nativeSrc":"9208:2:97","nodeType":"YulIdentifier","src":"9208:2:97"}],"functionName":{"name":"lt","nativeSrc":"9198:2:97","nodeType":"YulIdentifier","src":"9198:2:97"},"nativeSrc":"9198:13:97","nodeType":"YulFunctionCall","src":"9198:13:97"},"nativeSrc":"9190:82:97","nodeType":"YulForLoop","post":{"nativeSrc":"9212:26:97","nodeType":"YulBlock","src":"9212:26:97","statements":[{"nativeSrc":"9214:22:97","nodeType":"YulAssignment","src":"9214:22:97","value":{"arguments":[{"name":"start","nativeSrc":"9227:5:97","nodeType":"YulIdentifier","src":"9227:5:97"},{"kind":"number","nativeSrc":"9234:1:97","nodeType":"YulLiteral","src":"9234:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"9223:3:97","nodeType":"YulIdentifier","src":"9223:3:97"},"nativeSrc":"9223:13:97","nodeType":"YulFunctionCall","src":"9223:13:97"},"variableNames":[{"name":"start","nativeSrc":"9214:5:97","nodeType":"YulIdentifier","src":"9214:5:97"}]}]},"pre":{"nativeSrc":"9194:3:97","nodeType":"YulBlock","src":"9194:3:97","statements":[]},"src":"9190:82:97"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"8842:3:97","nodeType":"YulIdentifier","src":"8842:3:97"},{"kind":"number","nativeSrc":"8847:2:97","nodeType":"YulLiteral","src":"8847:2:97","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"8839:2:97","nodeType":"YulIdentifier","src":"8839:2:97"},"nativeSrc":"8839:11:97","nodeType":"YulFunctionCall","src":"8839:11:97"},"nativeSrc":"8836:446:97","nodeType":"YulIf","src":"8836:446:97"}]},"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"8745:543:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"8798:5:97","nodeType":"YulTypedName","src":"8798:5:97","type":""},{"name":"len","nativeSrc":"8805:3:97","nodeType":"YulTypedName","src":"8805:3:97","type":""},{"name":"startIndex","nativeSrc":"8810:10:97","nodeType":"YulTypedName","src":"8810:10:97","type":""}],"src":"8745:543:97"},{"body":{"nativeSrc":"9378:141:97","nodeType":"YulBlock","src":"9378:141:97","statements":[{"nativeSrc":"9388:125:97","nodeType":"YulAssignment","src":"9388:125:97","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"9403:4:97","nodeType":"YulIdentifier","src":"9403:4:97"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"9421:1:97","nodeType":"YulLiteral","src":"9421:1:97","type":"","value":"3"},{"name":"len","nativeSrc":"9424:3:97","nodeType":"YulIdentifier","src":"9424:3:97"}],"functionName":{"name":"shl","nativeSrc":"9417:3:97","nodeType":"YulIdentifier","src":"9417:3:97"},"nativeSrc":"9417:11:97","nodeType":"YulFunctionCall","src":"9417:11:97"},{"kind":"number","nativeSrc":"9430:66:97","nodeType":"YulLiteral","src":"9430:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shr","nativeSrc":"9413:3:97","nodeType":"YulIdentifier","src":"9413:3:97"},"nativeSrc":"9413:84:97","nodeType":"YulFunctionCall","src":"9413:84:97"}],"functionName":{"name":"not","nativeSrc":"9409:3:97","nodeType":"YulIdentifier","src":"9409:3:97"},"nativeSrc":"9409:89:97","nodeType":"YulFunctionCall","src":"9409:89:97"}],"functionName":{"name":"and","nativeSrc":"9399:3:97","nodeType":"YulIdentifier","src":"9399:3:97"},"nativeSrc":"9399:100:97","nodeType":"YulFunctionCall","src":"9399:100:97"},{"arguments":[{"kind":"number","nativeSrc":"9505:1:97","nodeType":"YulLiteral","src":"9505:1:97","type":"","value":"1"},{"name":"len","nativeSrc":"9508:3:97","nodeType":"YulIdentifier","src":"9508:3:97"}],"functionName":{"name":"shl","nativeSrc":"9501:3:97","nodeType":"YulIdentifier","src":"9501:3:97"},"nativeSrc":"9501:11:97","nodeType":"YulFunctionCall","src":"9501:11:97"}],"functionName":{"name":"or","nativeSrc":"9396:2:97","nodeType":"YulIdentifier","src":"9396:2:97"},"nativeSrc":"9396:117:97","nodeType":"YulFunctionCall","src":"9396:117:97"},"variableNames":[{"name":"used","nativeSrc":"9388:4:97","nodeType":"YulIdentifier","src":"9388:4:97"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"9293:226:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"9355:4:97","nodeType":"YulTypedName","src":"9355:4:97","type":""},{"name":"len","nativeSrc":"9361:3:97","nodeType":"YulTypedName","src":"9361:3:97","type":""}],"returnVariables":[{"name":"used","nativeSrc":"9369:4:97","nodeType":"YulTypedName","src":"9369:4:97","type":""}],"src":"9293:226:97"},{"body":{"nativeSrc":"9627:1222:97","nodeType":"YulBlock","src":"9627:1222:97","statements":[{"body":{"nativeSrc":"9668:22:97","nodeType":"YulBlock","src":"9668:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"9670:16:97","nodeType":"YulIdentifier","src":"9670:16:97"},"nativeSrc":"9670:18:97","nodeType":"YulFunctionCall","src":"9670:18:97"},"nativeSrc":"9670:18:97","nodeType":"YulExpressionStatement","src":"9670:18:97"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"9643:3:97","nodeType":"YulIdentifier","src":"9643:3:97"},{"kind":"number","nativeSrc":"9648:18:97","nodeType":"YulLiteral","src":"9648:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"9640:2:97","nodeType":"YulIdentifier","src":"9640:2:97"},"nativeSrc":"9640:27:97","nodeType":"YulFunctionCall","src":"9640:27:97"},"nativeSrc":"9637:53:97","nodeType":"YulIf","src":"9637:53:97"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"9743:4:97","nodeType":"YulIdentifier","src":"9743:4:97"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"9781:4:97","nodeType":"YulIdentifier","src":"9781:4:97"}],"functionName":{"name":"sload","nativeSrc":"9775:5:97","nodeType":"YulIdentifier","src":"9775:5:97"},"nativeSrc":"9775:11:97","nodeType":"YulFunctionCall","src":"9775:11:97"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"9749:25:97","nodeType":"YulIdentifier","src":"9749:25:97"},"nativeSrc":"9749:38:97","nodeType":"YulFunctionCall","src":"9749:38:97"},{"name":"len","nativeSrc":"9789:3:97","nodeType":"YulIdentifier","src":"9789:3:97"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"9699:43:97","nodeType":"YulIdentifier","src":"9699:43:97"},"nativeSrc":"9699:94:97","nodeType":"YulFunctionCall","src":"9699:94:97"},"nativeSrc":"9699:94:97","nodeType":"YulExpressionStatement","src":"9699:94:97"},{"nativeSrc":"9802:18:97","nodeType":"YulVariableDeclaration","src":"9802:18:97","value":{"kind":"number","nativeSrc":"9819:1:97","nodeType":"YulLiteral","src":"9819:1:97","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"9806:9:97","nodeType":"YulTypedName","src":"9806:9:97","type":""}]},{"cases":[{"body":{"nativeSrc":"9863:728:97","nodeType":"YulBlock","src":"9863:728:97","statements":[{"nativeSrc":"9877:91:97","nodeType":"YulVariableDeclaration","src":"9877:91:97","value":{"arguments":[{"name":"len","nativeSrc":"9896:3:97","nodeType":"YulIdentifier","src":"9896:3:97"},{"kind":"number","nativeSrc":"9901:66:97","nodeType":"YulLiteral","src":"9901:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"9892:3:97","nodeType":"YulIdentifier","src":"9892:3:97"},"nativeSrc":"9892:76:97","nodeType":"YulFunctionCall","src":"9892:76:97"},"variables":[{"name":"loopEnd","nativeSrc":"9881:7:97","nodeType":"YulTypedName","src":"9881:7:97","type":""}]},{"nativeSrc":"9981:49:97","nodeType":"YulVariableDeclaration","src":"9981:49:97","value":{"arguments":[{"name":"slot","nativeSrc":"10025:4:97","nodeType":"YulIdentifier","src":"10025:4:97"}],"functionName":{"name":"array_dataslot_string_storage","nativeSrc":"9995:29:97","nodeType":"YulIdentifier","src":"9995:29:97"},"nativeSrc":"9995:35:97","nodeType":"YulFunctionCall","src":"9995:35:97"},"variables":[{"name":"dstPtr","nativeSrc":"9985:6:97","nodeType":"YulTypedName","src":"9985:6:97","type":""}]},{"nativeSrc":"10043:18:97","nodeType":"YulVariableDeclaration","src":"10043:18:97","value":{"name":"srcOffset","nativeSrc":"10052:9:97","nodeType":"YulIdentifier","src":"10052:9:97"},"variables":[{"name":"i","nativeSrc":"10047:1:97","nodeType":"YulTypedName","src":"10047:1:97","type":""}]},{"body":{"nativeSrc":"10131:172:97","nodeType":"YulBlock","src":"10131:172:97","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"10156:6:97","nodeType":"YulIdentifier","src":"10156:6:97"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"10181:3:97","nodeType":"YulIdentifier","src":"10181:3:97"},{"name":"srcOffset","nativeSrc":"10186:9:97","nodeType":"YulIdentifier","src":"10186:9:97"}],"functionName":{"name":"add","nativeSrc":"10177:3:97","nodeType":"YulIdentifier","src":"10177:3:97"},"nativeSrc":"10177:19:97","nodeType":"YulFunctionCall","src":"10177:19:97"}],"functionName":{"name":"calldataload","nativeSrc":"10164:12:97","nodeType":"YulIdentifier","src":"10164:12:97"},"nativeSrc":"10164:33:97","nodeType":"YulFunctionCall","src":"10164:33:97"}],"functionName":{"name":"sstore","nativeSrc":"10149:6:97","nodeType":"YulIdentifier","src":"10149:6:97"},"nativeSrc":"10149:49:97","nodeType":"YulFunctionCall","src":"10149:49:97"},"nativeSrc":"10149:49:97","nodeType":"YulExpressionStatement","src":"10149:49:97"},{"nativeSrc":"10215:24:97","nodeType":"YulAssignment","src":"10215:24:97","value":{"arguments":[{"name":"dstPtr","nativeSrc":"10229:6:97","nodeType":"YulIdentifier","src":"10229:6:97"},{"kind":"number","nativeSrc":"10237:1:97","nodeType":"YulLiteral","src":"10237:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"10225:3:97","nodeType":"YulIdentifier","src":"10225:3:97"},"nativeSrc":"10225:14:97","nodeType":"YulFunctionCall","src":"10225:14:97"},"variableNames":[{"name":"dstPtr","nativeSrc":"10215:6:97","nodeType":"YulIdentifier","src":"10215:6:97"}]},{"nativeSrc":"10256:33:97","nodeType":"YulAssignment","src":"10256:33:97","value":{"arguments":[{"name":"srcOffset","nativeSrc":"10273:9:97","nodeType":"YulIdentifier","src":"10273:9:97"},{"kind":"number","nativeSrc":"10284:4:97","nodeType":"YulLiteral","src":"10284:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10269:3:97","nodeType":"YulIdentifier","src":"10269:3:97"},"nativeSrc":"10269:20:97","nodeType":"YulFunctionCall","src":"10269:20:97"},"variableNames":[{"name":"srcOffset","nativeSrc":"10256:9:97","nodeType":"YulIdentifier","src":"10256:9:97"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"10085:1:97","nodeType":"YulIdentifier","src":"10085:1:97"},{"name":"loopEnd","nativeSrc":"10088:7:97","nodeType":"YulIdentifier","src":"10088:7:97"}],"functionName":{"name":"lt","nativeSrc":"10082:2:97","nodeType":"YulIdentifier","src":"10082:2:97"},"nativeSrc":"10082:14:97","nodeType":"YulFunctionCall","src":"10082:14:97"},"nativeSrc":"10074:229:97","nodeType":"YulForLoop","post":{"nativeSrc":"10097:21:97","nodeType":"YulBlock","src":"10097:21:97","statements":[{"nativeSrc":"10099:17:97","nodeType":"YulAssignment","src":"10099:17:97","value":{"arguments":[{"name":"i","nativeSrc":"10108:1:97","nodeType":"YulIdentifier","src":"10108:1:97"},{"kind":"number","nativeSrc":"10111:4:97","nodeType":"YulLiteral","src":"10111:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10104:3:97","nodeType":"YulIdentifier","src":"10104:3:97"},"nativeSrc":"10104:12:97","nodeType":"YulFunctionCall","src":"10104:12:97"},"variableNames":[{"name":"i","nativeSrc":"10099:1:97","nodeType":"YulIdentifier","src":"10099:1:97"}]}]},"pre":{"nativeSrc":"10078:3:97","nodeType":"YulBlock","src":"10078:3:97","statements":[]},"src":"10074:229:97"},{"body":{"nativeSrc":"10348:187:97","nodeType":"YulBlock","src":"10348:187:97","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"10373:6:97","nodeType":"YulIdentifier","src":"10373:6:97"},{"arguments":[{"arguments":[{"arguments":[{"name":"src","nativeSrc":"10402:3:97","nodeType":"YulIdentifier","src":"10402:3:97"},{"name":"srcOffset","nativeSrc":"10407:9:97","nodeType":"YulIdentifier","src":"10407:9:97"}],"functionName":{"name":"add","nativeSrc":"10398:3:97","nodeType":"YulIdentifier","src":"10398:3:97"},"nativeSrc":"10398:19:97","nodeType":"YulFunctionCall","src":"10398:19:97"}],"functionName":{"name":"calldataload","nativeSrc":"10385:12:97","nodeType":"YulIdentifier","src":"10385:12:97"},"nativeSrc":"10385:33:97","nodeType":"YulFunctionCall","src":"10385:33:97"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"10436:1:97","nodeType":"YulLiteral","src":"10436:1:97","type":"","value":"3"},{"name":"len","nativeSrc":"10439:3:97","nodeType":"YulIdentifier","src":"10439:3:97"}],"functionName":{"name":"shl","nativeSrc":"10432:3:97","nodeType":"YulIdentifier","src":"10432:3:97"},"nativeSrc":"10432:11:97","nodeType":"YulFunctionCall","src":"10432:11:97"},{"kind":"number","nativeSrc":"10445:3:97","nodeType":"YulLiteral","src":"10445:3:97","type":"","value":"248"}],"functionName":{"name":"and","nativeSrc":"10428:3:97","nodeType":"YulIdentifier","src":"10428:3:97"},"nativeSrc":"10428:21:97","nodeType":"YulFunctionCall","src":"10428:21:97"},{"kind":"number","nativeSrc":"10451:66:97","nodeType":"YulLiteral","src":"10451:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shr","nativeSrc":"10424:3:97","nodeType":"YulIdentifier","src":"10424:3:97"},"nativeSrc":"10424:94:97","nodeType":"YulFunctionCall","src":"10424:94:97"}],"functionName":{"name":"not","nativeSrc":"10420:3:97","nodeType":"YulIdentifier","src":"10420:3:97"},"nativeSrc":"10420:99:97","nodeType":"YulFunctionCall","src":"10420:99:97"}],"functionName":{"name":"and","nativeSrc":"10381:3:97","nodeType":"YulIdentifier","src":"10381:3:97"},"nativeSrc":"10381:139:97","nodeType":"YulFunctionCall","src":"10381:139:97"}],"functionName":{"name":"sstore","nativeSrc":"10366:6:97","nodeType":"YulIdentifier","src":"10366:6:97"},"nativeSrc":"10366:155:97","nodeType":"YulFunctionCall","src":"10366:155:97"},"nativeSrc":"10366:155:97","nodeType":"YulExpressionStatement","src":"10366:155:97"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"10322:7:97","nodeType":"YulIdentifier","src":"10322:7:97"},{"name":"len","nativeSrc":"10331:3:97","nodeType":"YulIdentifier","src":"10331:3:97"}],"functionName":{"name":"lt","nativeSrc":"10319:2:97","nodeType":"YulIdentifier","src":"10319:2:97"},"nativeSrc":"10319:16:97","nodeType":"YulFunctionCall","src":"10319:16:97"},"nativeSrc":"10316:219:97","nodeType":"YulIf","src":"10316:219:97"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"10555:4:97","nodeType":"YulIdentifier","src":"10555:4:97"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"10569:1:97","nodeType":"YulLiteral","src":"10569:1:97","type":"","value":"1"},{"name":"len","nativeSrc":"10572:3:97","nodeType":"YulIdentifier","src":"10572:3:97"}],"functionName":{"name":"shl","nativeSrc":"10565:3:97","nodeType":"YulIdentifier","src":"10565:3:97"},"nativeSrc":"10565:11:97","nodeType":"YulFunctionCall","src":"10565:11:97"},{"kind":"number","nativeSrc":"10578:1:97","nodeType":"YulLiteral","src":"10578:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"10561:3:97","nodeType":"YulIdentifier","src":"10561:3:97"},"nativeSrc":"10561:19:97","nodeType":"YulFunctionCall","src":"10561:19:97"}],"functionName":{"name":"sstore","nativeSrc":"10548:6:97","nodeType":"YulIdentifier","src":"10548:6:97"},"nativeSrc":"10548:33:97","nodeType":"YulFunctionCall","src":"10548:33:97"},"nativeSrc":"10548:33:97","nodeType":"YulExpressionStatement","src":"10548:33:97"}]},"nativeSrc":"9856:735:97","nodeType":"YulCase","src":"9856:735:97","value":{"kind":"number","nativeSrc":"9861:1:97","nodeType":"YulLiteral","src":"9861:1:97","type":"","value":"1"}},{"body":{"nativeSrc":"10608:235:97","nodeType":"YulBlock","src":"10608:235:97","statements":[{"nativeSrc":"10622:14:97","nodeType":"YulVariableDeclaration","src":"10622:14:97","value":{"kind":"number","nativeSrc":"10635:1:97","nodeType":"YulLiteral","src":"10635:1:97","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"10626:5:97","nodeType":"YulTypedName","src":"10626:5:97","type":""}]},{"body":{"nativeSrc":"10668:74:97","nodeType":"YulBlock","src":"10668:74:97","statements":[{"nativeSrc":"10686:42:97","nodeType":"YulAssignment","src":"10686:42:97","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"10712:3:97","nodeType":"YulIdentifier","src":"10712:3:97"},{"name":"srcOffset","nativeSrc":"10717:9:97","nodeType":"YulIdentifier","src":"10717:9:97"}],"functionName":{"name":"add","nativeSrc":"10708:3:97","nodeType":"YulIdentifier","src":"10708:3:97"},"nativeSrc":"10708:19:97","nodeType":"YulFunctionCall","src":"10708:19:97"}],"functionName":{"name":"calldataload","nativeSrc":"10695:12:97","nodeType":"YulIdentifier","src":"10695:12:97"},"nativeSrc":"10695:33:97","nodeType":"YulFunctionCall","src":"10695:33:97"},"variableNames":[{"name":"value","nativeSrc":"10686:5:97","nodeType":"YulIdentifier","src":"10686:5:97"}]}]},"condition":{"name":"len","nativeSrc":"10652:3:97","nodeType":"YulIdentifier","src":"10652:3:97"},"nativeSrc":"10649:93:97","nodeType":"YulIf","src":"10649:93:97"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"10762:4:97","nodeType":"YulIdentifier","src":"10762:4:97"},{"arguments":[{"name":"value","nativeSrc":"10821:5:97","nodeType":"YulIdentifier","src":"10821:5:97"},{"name":"len","nativeSrc":"10828:3:97","nodeType":"YulIdentifier","src":"10828:3:97"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"10768:52:97","nodeType":"YulIdentifier","src":"10768:52:97"},"nativeSrc":"10768:64:97","nodeType":"YulFunctionCall","src":"10768:64:97"}],"functionName":{"name":"sstore","nativeSrc":"10755:6:97","nodeType":"YulIdentifier","src":"10755:6:97"},"nativeSrc":"10755:78:97","nodeType":"YulFunctionCall","src":"10755:78:97"},"nativeSrc":"10755:78:97","nodeType":"YulExpressionStatement","src":"10755:78:97"}]},"nativeSrc":"10600:243:97","nodeType":"YulCase","src":"10600:243:97","value":"default"}],"expression":{"arguments":[{"name":"len","nativeSrc":"9839:3:97","nodeType":"YulIdentifier","src":"9839:3:97"},{"kind":"number","nativeSrc":"9844:2:97","nodeType":"YulLiteral","src":"9844:2:97","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"9836:2:97","nodeType":"YulIdentifier","src":"9836:2:97"},"nativeSrc":"9836:11:97","nodeType":"YulFunctionCall","src":"9836:11:97"},"nativeSrc":"9829:1014:97","nodeType":"YulSwitch","src":"9829:1014:97"}]},"name":"copy_byte_array_to_storage_from_t_string_calldata_ptr_to_t_string_storage","nativeSrc":"9524:1325:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"9607:4:97","nodeType":"YulTypedName","src":"9607:4:97","type":""},{"name":"src","nativeSrc":"9613:3:97","nodeType":"YulTypedName","src":"9613:3:97","type":""},{"name":"len","nativeSrc":"9618:3:97","nodeType":"YulTypedName","src":"9618:3:97","type":""}],"src":"9524:1325:97"},{"body":{"nativeSrc":"11003:124:97","nodeType":"YulBlock","src":"11003:124:97","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"11026:3:97","nodeType":"YulIdentifier","src":"11026:3:97"},{"name":"value0","nativeSrc":"11031:6:97","nodeType":"YulIdentifier","src":"11031:6:97"},{"name":"value1","nativeSrc":"11039:6:97","nodeType":"YulIdentifier","src":"11039:6:97"}],"functionName":{"name":"calldatacopy","nativeSrc":"11013:12:97","nodeType":"YulIdentifier","src":"11013:12:97"},"nativeSrc":"11013:33:97","nodeType":"YulFunctionCall","src":"11013:33:97"},"nativeSrc":"11013:33:97","nodeType":"YulExpressionStatement","src":"11013:33:97"},{"nativeSrc":"11055:26:97","nodeType":"YulVariableDeclaration","src":"11055:26:97","value":{"arguments":[{"name":"pos","nativeSrc":"11069:3:97","nodeType":"YulIdentifier","src":"11069:3:97"},{"name":"value1","nativeSrc":"11074:6:97","nodeType":"YulIdentifier","src":"11074:6:97"}],"functionName":{"name":"add","nativeSrc":"11065:3:97","nodeType":"YulIdentifier","src":"11065:3:97"},"nativeSrc":"11065:16:97","nodeType":"YulFunctionCall","src":"11065:16:97"},"variables":[{"name":"_1","nativeSrc":"11059:2:97","nodeType":"YulTypedName","src":"11059:2:97","type":""}]},{"expression":{"arguments":[{"name":"_1","nativeSrc":"11097:2:97","nodeType":"YulIdentifier","src":"11097:2:97"},{"kind":"number","nativeSrc":"11101:1:97","nodeType":"YulLiteral","src":"11101:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"11090:6:97","nodeType":"YulIdentifier","src":"11090:6:97"},"nativeSrc":"11090:13:97","nodeType":"YulFunctionCall","src":"11090:13:97"},"nativeSrc":"11090:13:97","nodeType":"YulExpressionStatement","src":"11090:13:97"},{"nativeSrc":"11112:9:97","nodeType":"YulAssignment","src":"11112:9:97","value":{"name":"_1","nativeSrc":"11119:2:97","nodeType":"YulIdentifier","src":"11119:2:97"},"variableNames":[{"name":"end","nativeSrc":"11112:3:97","nodeType":"YulIdentifier","src":"11112:3:97"}]}]},"name":"abi_encode_tuple_packed_t_string_calldata_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"10854:273:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"10971:3:97","nodeType":"YulTypedName","src":"10971:3:97","type":""},{"name":"value1","nativeSrc":"10976:6:97","nodeType":"YulTypedName","src":"10976:6:97","type":""},{"name":"value0","nativeSrc":"10984:6:97","nodeType":"YulTypedName","src":"10984:6:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"10995:3:97","nodeType":"YulTypedName","src":"10995:3:97","type":""}],"src":"10854:273:97"},{"body":{"nativeSrc":"11227:92:97","nodeType":"YulBlock","src":"11227:92:97","statements":[{"nativeSrc":"11237:26:97","nodeType":"YulAssignment","src":"11237:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"11249:9:97","nodeType":"YulIdentifier","src":"11249:9:97"},{"kind":"number","nativeSrc":"11260:2:97","nodeType":"YulLiteral","src":"11260:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11245:3:97","nodeType":"YulIdentifier","src":"11245:3:97"},"nativeSrc":"11245:18:97","nodeType":"YulFunctionCall","src":"11245:18:97"},"variableNames":[{"name":"tail","nativeSrc":"11237:4:97","nodeType":"YulIdentifier","src":"11237:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"11279:9:97","nodeType":"YulIdentifier","src":"11279:9:97"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"11304:6:97","nodeType":"YulIdentifier","src":"11304:6:97"}],"functionName":{"name":"iszero","nativeSrc":"11297:6:97","nodeType":"YulIdentifier","src":"11297:6:97"},"nativeSrc":"11297:14:97","nodeType":"YulFunctionCall","src":"11297:14:97"}],"functionName":{"name":"iszero","nativeSrc":"11290:6:97","nodeType":"YulIdentifier","src":"11290:6:97"},"nativeSrc":"11290:22:97","nodeType":"YulFunctionCall","src":"11290:22:97"}],"functionName":{"name":"mstore","nativeSrc":"11272:6:97","nodeType":"YulIdentifier","src":"11272:6:97"},"nativeSrc":"11272:41:97","nodeType":"YulFunctionCall","src":"11272:41:97"},"nativeSrc":"11272:41:97","nodeType":"YulExpressionStatement","src":"11272:41:97"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"11132:187:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11196:9:97","nodeType":"YulTypedName","src":"11196:9:97","type":""},{"name":"value0","nativeSrc":"11207:6:97","nodeType":"YulTypedName","src":"11207:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11218:4:97","nodeType":"YulTypedName","src":"11218:4:97","type":""}],"src":"11132:187:97"},{"body":{"nativeSrc":"11498:231:97","nodeType":"YulBlock","src":"11498:231:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"11515:9:97","nodeType":"YulIdentifier","src":"11515:9:97"},{"kind":"number","nativeSrc":"11526:2:97","nodeType":"YulLiteral","src":"11526:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"11508:6:97","nodeType":"YulIdentifier","src":"11508:6:97"},"nativeSrc":"11508:21:97","nodeType":"YulFunctionCall","src":"11508:21:97"},"nativeSrc":"11508:21:97","nodeType":"YulExpressionStatement","src":"11508:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11549:9:97","nodeType":"YulIdentifier","src":"11549:9:97"},{"kind":"number","nativeSrc":"11560:2:97","nodeType":"YulLiteral","src":"11560:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11545:3:97","nodeType":"YulIdentifier","src":"11545:3:97"},"nativeSrc":"11545:18:97","nodeType":"YulFunctionCall","src":"11545:18:97"},{"kind":"number","nativeSrc":"11565:2:97","nodeType":"YulLiteral","src":"11565:2:97","type":"","value":"41"}],"functionName":{"name":"mstore","nativeSrc":"11538:6:97","nodeType":"YulIdentifier","src":"11538:6:97"},"nativeSrc":"11538:30:97","nodeType":"YulFunctionCall","src":"11538:30:97"},"nativeSrc":"11538:30:97","nodeType":"YulExpressionStatement","src":"11538:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11588:9:97","nodeType":"YulIdentifier","src":"11588:9:97"},{"kind":"number","nativeSrc":"11599:2:97","nodeType":"YulLiteral","src":"11599:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11584:3:97","nodeType":"YulIdentifier","src":"11584:3:97"},"nativeSrc":"11584:18:97","nodeType":"YulFunctionCall","src":"11584:18:97"},{"hexValue":"4f776e61626c6532537465703a2063616c6c6572206973206e6f742074686520","kind":"string","nativeSrc":"11604:34:97","nodeType":"YulLiteral","src":"11604:34:97","type":"","value":"Ownable2Step: caller is not the "}],"functionName":{"name":"mstore","nativeSrc":"11577:6:97","nodeType":"YulIdentifier","src":"11577:6:97"},"nativeSrc":"11577:62:97","nodeType":"YulFunctionCall","src":"11577:62:97"},"nativeSrc":"11577:62:97","nodeType":"YulExpressionStatement","src":"11577:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11659:9:97","nodeType":"YulIdentifier","src":"11659:9:97"},{"kind":"number","nativeSrc":"11670:2:97","nodeType":"YulLiteral","src":"11670:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11655:3:97","nodeType":"YulIdentifier","src":"11655:3:97"},"nativeSrc":"11655:18:97","nodeType":"YulFunctionCall","src":"11655:18:97"},{"hexValue":"6e6577206f776e6572","kind":"string","nativeSrc":"11675:11:97","nodeType":"YulLiteral","src":"11675:11:97","type":"","value":"new owner"}],"functionName":{"name":"mstore","nativeSrc":"11648:6:97","nodeType":"YulIdentifier","src":"11648:6:97"},"nativeSrc":"11648:39:97","nodeType":"YulFunctionCall","src":"11648:39:97"},"nativeSrc":"11648:39:97","nodeType":"YulExpressionStatement","src":"11648:39:97"},{"nativeSrc":"11696:27:97","nodeType":"YulAssignment","src":"11696:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"11708:9:97","nodeType":"YulIdentifier","src":"11708:9:97"},{"kind":"number","nativeSrc":"11719:3:97","nodeType":"YulLiteral","src":"11719:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"11704:3:97","nodeType":"YulIdentifier","src":"11704:3:97"},"nativeSrc":"11704:19:97","nodeType":"YulFunctionCall","src":"11704:19:97"},"variableNames":[{"name":"tail","nativeSrc":"11696:4:97","nodeType":"YulIdentifier","src":"11696:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11324:405:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11475:9:97","nodeType":"YulTypedName","src":"11475:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11489:4:97","nodeType":"YulTypedName","src":"11489:4:97","type":""}],"src":"11324:405:97"},{"body":{"nativeSrc":"11908:174:97","nodeType":"YulBlock","src":"11908:174:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"11925:9:97","nodeType":"YulIdentifier","src":"11925:9:97"},{"kind":"number","nativeSrc":"11936:2:97","nodeType":"YulLiteral","src":"11936:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"11918:6:97","nodeType":"YulIdentifier","src":"11918:6:97"},"nativeSrc":"11918:21:97","nodeType":"YulFunctionCall","src":"11918:21:97"},"nativeSrc":"11918:21:97","nodeType":"YulExpressionStatement","src":"11918:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11959:9:97","nodeType":"YulIdentifier","src":"11959:9:97"},{"kind":"number","nativeSrc":"11970:2:97","nodeType":"YulLiteral","src":"11970:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11955:3:97","nodeType":"YulIdentifier","src":"11955:3:97"},"nativeSrc":"11955:18:97","nodeType":"YulFunctionCall","src":"11955:18:97"},{"kind":"number","nativeSrc":"11975:2:97","nodeType":"YulLiteral","src":"11975:2:97","type":"","value":"24"}],"functionName":{"name":"mstore","nativeSrc":"11948:6:97","nodeType":"YulIdentifier","src":"11948:6:97"},"nativeSrc":"11948:30:97","nodeType":"YulFunctionCall","src":"11948:30:97"},"nativeSrc":"11948:30:97","nodeType":"YulExpressionStatement","src":"11948:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11998:9:97","nodeType":"YulIdentifier","src":"11998:9:97"},{"kind":"number","nativeSrc":"12009:2:97","nodeType":"YulLiteral","src":"12009:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11994:3:97","nodeType":"YulIdentifier","src":"11994:3:97"},"nativeSrc":"11994:18:97","nodeType":"YulFunctionCall","src":"11994:18:97"},{"hexValue":"436861696e4964206d757374206e6f74206265207a65726f","kind":"string","nativeSrc":"12014:26:97","nodeType":"YulLiteral","src":"12014:26:97","type":"","value":"ChainId must not be zero"}],"functionName":{"name":"mstore","nativeSrc":"11987:6:97","nodeType":"YulIdentifier","src":"11987:6:97"},"nativeSrc":"11987:54:97","nodeType":"YulFunctionCall","src":"11987:54:97"},"nativeSrc":"11987:54:97","nodeType":"YulExpressionStatement","src":"11987:54:97"},{"nativeSrc":"12050:26:97","nodeType":"YulAssignment","src":"12050:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"12062:9:97","nodeType":"YulIdentifier","src":"12062:9:97"},{"kind":"number","nativeSrc":"12073:2:97","nodeType":"YulLiteral","src":"12073:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12058:3:97","nodeType":"YulIdentifier","src":"12058:3:97"},"nativeSrc":"12058:18:97","nodeType":"YulFunctionCall","src":"12058:18:97"},"variableNames":[{"name":"tail","nativeSrc":"12050:4:97","nodeType":"YulIdentifier","src":"12050:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_25330637c37e740ba17926890288a3211f1ce0916deecf251da03c3bc20367a1__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11734:348:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11885:9:97","nodeType":"YulTypedName","src":"11885:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11899:4:97","nodeType":"YulTypedName","src":"11899:4:97","type":""}],"src":"11734:348:97"},{"body":{"nativeSrc":"12188:271:97","nodeType":"YulBlock","src":"12188:271:97","statements":[{"nativeSrc":"12198:29:97","nodeType":"YulVariableDeclaration","src":"12198:29:97","value":{"arguments":[{"name":"array","nativeSrc":"12221:5:97","nodeType":"YulIdentifier","src":"12221:5:97"}],"functionName":{"name":"calldataload","nativeSrc":"12208:12:97","nodeType":"YulIdentifier","src":"12208:12:97"},"nativeSrc":"12208:19:97","nodeType":"YulFunctionCall","src":"12208:19:97"},"variables":[{"name":"_1","nativeSrc":"12202:2:97","nodeType":"YulTypedName","src":"12202:2:97","type":""}]},{"nativeSrc":"12236:76:97","nodeType":"YulVariableDeclaration","src":"12236:76:97","value":{"kind":"number","nativeSrc":"12246:66:97","nodeType":"YulLiteral","src":"12246:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000"},"variables":[{"name":"_2","nativeSrc":"12240:2:97","nodeType":"YulTypedName","src":"12240:2:97","type":""}]},{"nativeSrc":"12321:20:97","nodeType":"YulAssignment","src":"12321:20:97","value":{"arguments":[{"name":"_1","nativeSrc":"12334:2:97","nodeType":"YulIdentifier","src":"12334:2:97"},{"name":"_2","nativeSrc":"12338:2:97","nodeType":"YulIdentifier","src":"12338:2:97"}],"functionName":{"name":"and","nativeSrc":"12330:3:97","nodeType":"YulIdentifier","src":"12330:3:97"},"nativeSrc":"12330:11:97","nodeType":"YulFunctionCall","src":"12330:11:97"},"variableNames":[{"name":"value","nativeSrc":"12321:5:97","nodeType":"YulIdentifier","src":"12321:5:97"}]},{"body":{"nativeSrc":"12373:80:97","nodeType":"YulBlock","src":"12373:80:97","statements":[{"nativeSrc":"12387:56:97","nodeType":"YulAssignment","src":"12387:56:97","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"12404:2:97","nodeType":"YulIdentifier","src":"12404:2:97"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"12416:1:97","nodeType":"YulLiteral","src":"12416:1:97","type":"","value":"3"},{"arguments":[{"kind":"number","nativeSrc":"12423:2:97","nodeType":"YulLiteral","src":"12423:2:97","type":"","value":"20"},{"name":"len","nativeSrc":"12427:3:97","nodeType":"YulIdentifier","src":"12427:3:97"}],"functionName":{"name":"sub","nativeSrc":"12419:3:97","nodeType":"YulIdentifier","src":"12419:3:97"},"nativeSrc":"12419:12:97","nodeType":"YulFunctionCall","src":"12419:12:97"}],"functionName":{"name":"shl","nativeSrc":"12412:3:97","nodeType":"YulIdentifier","src":"12412:3:97"},"nativeSrc":"12412:20:97","nodeType":"YulFunctionCall","src":"12412:20:97"},{"name":"_2","nativeSrc":"12434:2:97","nodeType":"YulIdentifier","src":"12434:2:97"}],"functionName":{"name":"shl","nativeSrc":"12408:3:97","nodeType":"YulIdentifier","src":"12408:3:97"},"nativeSrc":"12408:29:97","nodeType":"YulFunctionCall","src":"12408:29:97"}],"functionName":{"name":"and","nativeSrc":"12400:3:97","nodeType":"YulIdentifier","src":"12400:3:97"},"nativeSrc":"12400:38:97","nodeType":"YulFunctionCall","src":"12400:38:97"},{"name":"_2","nativeSrc":"12440:2:97","nodeType":"YulIdentifier","src":"12440:2:97"}],"functionName":{"name":"and","nativeSrc":"12396:3:97","nodeType":"YulIdentifier","src":"12396:3:97"},"nativeSrc":"12396:47:97","nodeType":"YulFunctionCall","src":"12396:47:97"},"variableNames":[{"name":"value","nativeSrc":"12387:5:97","nodeType":"YulIdentifier","src":"12387:5:97"}]}]},"condition":{"arguments":[{"name":"len","nativeSrc":"12356:3:97","nodeType":"YulIdentifier","src":"12356:3:97"},{"kind":"number","nativeSrc":"12361:2:97","nodeType":"YulLiteral","src":"12361:2:97","type":"","value":"20"}],"functionName":{"name":"lt","nativeSrc":"12353:2:97","nodeType":"YulIdentifier","src":"12353:2:97"},"nativeSrc":"12353:11:97","nodeType":"YulFunctionCall","src":"12353:11:97"},"nativeSrc":"12350:103:97","nodeType":"YulIf","src":"12350:103:97"}]},"name":"convert_bytes_to_fixedbytes_from_t_bytes_calldata_ptr_to_t_bytes20","nativeSrc":"12087:372:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"12163:5:97","nodeType":"YulTypedName","src":"12163:5:97","type":""},{"name":"len","nativeSrc":"12170:3:97","nodeType":"YulTypedName","src":"12170:3:97","type":""}],"returnVariables":[{"name":"value","nativeSrc":"12178:5:97","nodeType":"YulTypedName","src":"12178:5:97","type":""}],"src":"12087:372:97"},{"body":{"nativeSrc":"12638:226:97","nodeType":"YulBlock","src":"12638:226:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"12655:9:97","nodeType":"YulIdentifier","src":"12655:9:97"},{"kind":"number","nativeSrc":"12666:2:97","nodeType":"YulLiteral","src":"12666:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"12648:6:97","nodeType":"YulIdentifier","src":"12648:6:97"},"nativeSrc":"12648:21:97","nodeType":"YulFunctionCall","src":"12648:21:97"},"nativeSrc":"12648:21:97","nodeType":"YulExpressionStatement","src":"12648:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12689:9:97","nodeType":"YulIdentifier","src":"12689:9:97"},{"kind":"number","nativeSrc":"12700:2:97","nodeType":"YulLiteral","src":"12700:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12685:3:97","nodeType":"YulIdentifier","src":"12685:3:97"},"nativeSrc":"12685:18:97","nodeType":"YulFunctionCall","src":"12685:18:97"},{"kind":"number","nativeSrc":"12705:2:97","nodeType":"YulLiteral","src":"12705:2:97","type":"","value":"36"}],"functionName":{"name":"mstore","nativeSrc":"12678:6:97","nodeType":"YulIdentifier","src":"12678:6:97"},"nativeSrc":"12678:30:97","nodeType":"YulFunctionCall","src":"12678:30:97"},"nativeSrc":"12678:30:97","nodeType":"YulExpressionStatement","src":"12678:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12728:9:97","nodeType":"YulIdentifier","src":"12728:9:97"},{"kind":"number","nativeSrc":"12739:2:97","nodeType":"YulLiteral","src":"12739:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12724:3:97","nodeType":"YulIdentifier","src":"12724:3:97"},"nativeSrc":"12724:18:97","nodeType":"YulFunctionCall","src":"12724:18:97"},{"hexValue":"536f757263652061646472657373206d75737420626520323020627974657320","kind":"string","nativeSrc":"12744:34:97","nodeType":"YulLiteral","src":"12744:34:97","type":"","value":"Source address must be 20 bytes "}],"functionName":{"name":"mstore","nativeSrc":"12717:6:97","nodeType":"YulIdentifier","src":"12717:6:97"},"nativeSrc":"12717:62:97","nodeType":"YulFunctionCall","src":"12717:62:97"},"nativeSrc":"12717:62:97","nodeType":"YulExpressionStatement","src":"12717:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12799:9:97","nodeType":"YulIdentifier","src":"12799:9:97"},{"kind":"number","nativeSrc":"12810:2:97","nodeType":"YulLiteral","src":"12810:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12795:3:97","nodeType":"YulIdentifier","src":"12795:3:97"},"nativeSrc":"12795:18:97","nodeType":"YulFunctionCall","src":"12795:18:97"},{"hexValue":"6c6f6e67","kind":"string","nativeSrc":"12815:6:97","nodeType":"YulLiteral","src":"12815:6:97","type":"","value":"long"}],"functionName":{"name":"mstore","nativeSrc":"12788:6:97","nodeType":"YulIdentifier","src":"12788:6:97"},"nativeSrc":"12788:34:97","nodeType":"YulFunctionCall","src":"12788:34:97"},"nativeSrc":"12788:34:97","nodeType":"YulExpressionStatement","src":"12788:34:97"},{"nativeSrc":"12831:27:97","nodeType":"YulAssignment","src":"12831:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"12843:9:97","nodeType":"YulIdentifier","src":"12843:9:97"},{"kind":"number","nativeSrc":"12854:3:97","nodeType":"YulLiteral","src":"12854:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"12839:3:97","nodeType":"YulIdentifier","src":"12839:3:97"},"nativeSrc":"12839:19:97","nodeType":"YulFunctionCall","src":"12839:19:97"},"variableNames":[{"name":"tail","nativeSrc":"12831:4:97","nodeType":"YulIdentifier","src":"12831:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_9a39bc466e8dc485b140962f2bafd9bf984c501b349d0866987f6e3bcf7433c3__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12464:400:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12615:9:97","nodeType":"YulTypedName","src":"12615:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12629:4:97","nodeType":"YulTypedName","src":"12629:4:97","type":""}],"src":"12464:400:97"},{"body":{"nativeSrc":"13024:374:97","nodeType":"YulBlock","src":"13024:374:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13041:9:97","nodeType":"YulIdentifier","src":"13041:9:97"},{"arguments":[{"name":"value0","nativeSrc":"13056:6:97","nodeType":"YulIdentifier","src":"13056:6:97"},{"kind":"number","nativeSrc":"13064:6:97","nodeType":"YulLiteral","src":"13064:6:97","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"13052:3:97","nodeType":"YulIdentifier","src":"13052:3:97"},"nativeSrc":"13052:19:97","nodeType":"YulFunctionCall","src":"13052:19:97"}],"functionName":{"name":"mstore","nativeSrc":"13034:6:97","nodeType":"YulIdentifier","src":"13034:6:97"},"nativeSrc":"13034:38:97","nodeType":"YulFunctionCall","src":"13034:38:97"},"nativeSrc":"13034:38:97","nodeType":"YulExpressionStatement","src":"13034:38:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13092:9:97","nodeType":"YulIdentifier","src":"13092:9:97"},{"kind":"number","nativeSrc":"13103:2:97","nodeType":"YulLiteral","src":"13103:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13088:3:97","nodeType":"YulIdentifier","src":"13088:3:97"},"nativeSrc":"13088:18:97","nodeType":"YulFunctionCall","src":"13088:18:97"},{"kind":"number","nativeSrc":"13108:2:97","nodeType":"YulLiteral","src":"13108:2:97","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"13081:6:97","nodeType":"YulIdentifier","src":"13081:6:97"},"nativeSrc":"13081:30:97","nodeType":"YulFunctionCall","src":"13081:30:97"},"nativeSrc":"13081:30:97","nodeType":"YulExpressionStatement","src":"13081:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13131:9:97","nodeType":"YulIdentifier","src":"13131:9:97"},{"kind":"number","nativeSrc":"13142:2:97","nodeType":"YulLiteral","src":"13142:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13127:3:97","nodeType":"YulIdentifier","src":"13127:3:97"},"nativeSrc":"13127:18:97","nodeType":"YulFunctionCall","src":"13127:18:97"},{"name":"value2","nativeSrc":"13147:6:97","nodeType":"YulIdentifier","src":"13147:6:97"}],"functionName":{"name":"mstore","nativeSrc":"13120:6:97","nodeType":"YulIdentifier","src":"13120:6:97"},"nativeSrc":"13120:34:97","nodeType":"YulFunctionCall","src":"13120:34:97"},"nativeSrc":"13120:34:97","nodeType":"YulExpressionStatement","src":"13120:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13180:9:97","nodeType":"YulIdentifier","src":"13180:9:97"},{"kind":"number","nativeSrc":"13191:2:97","nodeType":"YulLiteral","src":"13191:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"13176:3:97","nodeType":"YulIdentifier","src":"13176:3:97"},"nativeSrc":"13176:18:97","nodeType":"YulFunctionCall","src":"13176:18:97"},{"name":"value1","nativeSrc":"13196:6:97","nodeType":"YulIdentifier","src":"13196:6:97"},{"name":"value2","nativeSrc":"13204:6:97","nodeType":"YulIdentifier","src":"13204:6:97"}],"functionName":{"name":"calldatacopy","nativeSrc":"13163:12:97","nodeType":"YulIdentifier","src":"13163:12:97"},"nativeSrc":"13163:48:97","nodeType":"YulFunctionCall","src":"13163:48:97"},"nativeSrc":"13163:48:97","nodeType":"YulExpressionStatement","src":"13163:48:97"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13235:9:97","nodeType":"YulIdentifier","src":"13235:9:97"},{"name":"value2","nativeSrc":"13246:6:97","nodeType":"YulIdentifier","src":"13246:6:97"}],"functionName":{"name":"add","nativeSrc":"13231:3:97","nodeType":"YulIdentifier","src":"13231:3:97"},"nativeSrc":"13231:22:97","nodeType":"YulFunctionCall","src":"13231:22:97"},{"kind":"number","nativeSrc":"13255:2:97","nodeType":"YulLiteral","src":"13255:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"13227:3:97","nodeType":"YulIdentifier","src":"13227:3:97"},"nativeSrc":"13227:31:97","nodeType":"YulFunctionCall","src":"13227:31:97"},{"kind":"number","nativeSrc":"13260:1:97","nodeType":"YulLiteral","src":"13260:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"13220:6:97","nodeType":"YulIdentifier","src":"13220:6:97"},"nativeSrc":"13220:42:97","nodeType":"YulFunctionCall","src":"13220:42:97"},"nativeSrc":"13220:42:97","nodeType":"YulExpressionStatement","src":"13220:42:97"},{"nativeSrc":"13271:121:97","nodeType":"YulAssignment","src":"13271:121:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13287:9:97","nodeType":"YulIdentifier","src":"13287:9:97"},{"arguments":[{"arguments":[{"name":"value2","nativeSrc":"13306:6:97","nodeType":"YulIdentifier","src":"13306:6:97"},{"kind":"number","nativeSrc":"13314:2:97","nodeType":"YulLiteral","src":"13314:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"13302:3:97","nodeType":"YulIdentifier","src":"13302:3:97"},"nativeSrc":"13302:15:97","nodeType":"YulFunctionCall","src":"13302:15:97"},{"kind":"number","nativeSrc":"13319:66:97","nodeType":"YulLiteral","src":"13319:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"13298:3:97","nodeType":"YulIdentifier","src":"13298:3:97"},"nativeSrc":"13298:88:97","nodeType":"YulFunctionCall","src":"13298:88:97"}],"functionName":{"name":"add","nativeSrc":"13283:3:97","nodeType":"YulIdentifier","src":"13283:3:97"},"nativeSrc":"13283:104:97","nodeType":"YulFunctionCall","src":"13283:104:97"},{"kind":"number","nativeSrc":"13389:2:97","nodeType":"YulLiteral","src":"13389:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"13279:3:97","nodeType":"YulIdentifier","src":"13279:3:97"},"nativeSrc":"13279:113:97","nodeType":"YulFunctionCall","src":"13279:113:97"},"variableNames":[{"name":"tail","nativeSrc":"13271:4:97","nodeType":"YulIdentifier","src":"13271:4:97"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"12869:529:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12977:9:97","nodeType":"YulTypedName","src":"12977:9:97","type":""},{"name":"value2","nativeSrc":"12988:6:97","nodeType":"YulTypedName","src":"12988:6:97","type":""},{"name":"value1","nativeSrc":"12996:6:97","nodeType":"YulTypedName","src":"12996:6:97","type":""},{"name":"value0","nativeSrc":"13004:6:97","nodeType":"YulTypedName","src":"13004:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13015:4:97","nodeType":"YulTypedName","src":"13015:4:97","type":""}],"src":"12869:529:97"},{"body":{"nativeSrc":"13577:236:97","nodeType":"YulBlock","src":"13577:236:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13594:9:97","nodeType":"YulIdentifier","src":"13594:9:97"},{"kind":"number","nativeSrc":"13605:2:97","nodeType":"YulLiteral","src":"13605:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"13587:6:97","nodeType":"YulIdentifier","src":"13587:6:97"},"nativeSrc":"13587:21:97","nodeType":"YulFunctionCall","src":"13587:21:97"},"nativeSrc":"13587:21:97","nodeType":"YulExpressionStatement","src":"13587:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13628:9:97","nodeType":"YulIdentifier","src":"13628:9:97"},{"kind":"number","nativeSrc":"13639:2:97","nodeType":"YulLiteral","src":"13639:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13624:3:97","nodeType":"YulIdentifier","src":"13624:3:97"},"nativeSrc":"13624:18:97","nodeType":"YulFunctionCall","src":"13624:18:97"},{"kind":"number","nativeSrc":"13644:2:97","nodeType":"YulLiteral","src":"13644:2:97","type":"","value":"46"}],"functionName":{"name":"mstore","nativeSrc":"13617:6:97","nodeType":"YulIdentifier","src":"13617:6:97"},"nativeSrc":"13617:30:97","nodeType":"YulFunctionCall","src":"13617:30:97"},"nativeSrc":"13617:30:97","nodeType":"YulExpressionStatement","src":"13617:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13667:9:97","nodeType":"YulIdentifier","src":"13667:9:97"},{"kind":"number","nativeSrc":"13678:2:97","nodeType":"YulLiteral","src":"13678:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13663:3:97","nodeType":"YulIdentifier","src":"13663:3:97"},"nativeSrc":"13663:18:97","nodeType":"YulFunctionCall","src":"13663:18:97"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561","kind":"string","nativeSrc":"13683:34:97","nodeType":"YulLiteral","src":"13683:34:97","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nativeSrc":"13656:6:97","nodeType":"YulIdentifier","src":"13656:6:97"},"nativeSrc":"13656:62:97","nodeType":"YulFunctionCall","src":"13656:62:97"},"nativeSrc":"13656:62:97","nodeType":"YulExpressionStatement","src":"13656:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13738:9:97","nodeType":"YulIdentifier","src":"13738:9:97"},{"kind":"number","nativeSrc":"13749:2:97","nodeType":"YulLiteral","src":"13749:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"13734:3:97","nodeType":"YulIdentifier","src":"13734:3:97"},"nativeSrc":"13734:18:97","nodeType":"YulFunctionCall","src":"13734:18:97"},{"hexValue":"647920696e697469616c697a6564","kind":"string","nativeSrc":"13754:16:97","nodeType":"YulLiteral","src":"13754:16:97","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nativeSrc":"13727:6:97","nodeType":"YulIdentifier","src":"13727:6:97"},"nativeSrc":"13727:44:97","nodeType":"YulFunctionCall","src":"13727:44:97"},"nativeSrc":"13727:44:97","nodeType":"YulExpressionStatement","src":"13727:44:97"},{"nativeSrc":"13780:27:97","nodeType":"YulAssignment","src":"13780:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"13792:9:97","nodeType":"YulIdentifier","src":"13792:9:97"},{"kind":"number","nativeSrc":"13803:3:97","nodeType":"YulLiteral","src":"13803:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"13788:3:97","nodeType":"YulIdentifier","src":"13788:3:97"},"nativeSrc":"13788:19:97","nodeType":"YulFunctionCall","src":"13788:19:97"},"variableNames":[{"name":"tail","nativeSrc":"13780:4:97","nodeType":"YulIdentifier","src":"13780:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"13403:410:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13554:9:97","nodeType":"YulTypedName","src":"13554:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13568:4:97","nodeType":"YulTypedName","src":"13568:4:97","type":""}],"src":"13403:410:97"},{"body":{"nativeSrc":"13925:87:97","nodeType":"YulBlock","src":"13925:87:97","statements":[{"nativeSrc":"13935:26:97","nodeType":"YulAssignment","src":"13935:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"13947:9:97","nodeType":"YulIdentifier","src":"13947:9:97"},{"kind":"number","nativeSrc":"13958:2:97","nodeType":"YulLiteral","src":"13958:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13943:3:97","nodeType":"YulIdentifier","src":"13943:3:97"},"nativeSrc":"13943:18:97","nodeType":"YulFunctionCall","src":"13943:18:97"},"variableNames":[{"name":"tail","nativeSrc":"13935:4:97","nodeType":"YulIdentifier","src":"13935:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13977:9:97","nodeType":"YulIdentifier","src":"13977:9:97"},{"arguments":[{"name":"value0","nativeSrc":"13992:6:97","nodeType":"YulIdentifier","src":"13992:6:97"},{"kind":"number","nativeSrc":"14000:4:97","nodeType":"YulLiteral","src":"14000:4:97","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"13988:3:97","nodeType":"YulIdentifier","src":"13988:3:97"},"nativeSrc":"13988:17:97","nodeType":"YulFunctionCall","src":"13988:17:97"}],"functionName":{"name":"mstore","nativeSrc":"13970:6:97","nodeType":"YulIdentifier","src":"13970:6:97"},"nativeSrc":"13970:36:97","nodeType":"YulFunctionCall","src":"13970:36:97"},"nativeSrc":"13970:36:97","nodeType":"YulExpressionStatement","src":"13970:36:97"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nativeSrc":"13818:194:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13894:9:97","nodeType":"YulTypedName","src":"13894:9:97","type":""},{"name":"value0","nativeSrc":"13905:6:97","nodeType":"YulTypedName","src":"13905:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13916:4:97","nodeType":"YulTypedName","src":"13916:4:97","type":""}],"src":"13818:194:97"},{"body":{"nativeSrc":"14191:182:97","nodeType":"YulBlock","src":"14191:182:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"14208:9:97","nodeType":"YulIdentifier","src":"14208:9:97"},{"kind":"number","nativeSrc":"14219:2:97","nodeType":"YulLiteral","src":"14219:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"14201:6:97","nodeType":"YulIdentifier","src":"14201:6:97"},"nativeSrc":"14201:21:97","nodeType":"YulFunctionCall","src":"14201:21:97"},"nativeSrc":"14201:21:97","nodeType":"YulExpressionStatement","src":"14201:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14242:9:97","nodeType":"YulIdentifier","src":"14242:9:97"},{"kind":"number","nativeSrc":"14253:2:97","nodeType":"YulLiteral","src":"14253:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14238:3:97","nodeType":"YulIdentifier","src":"14238:3:97"},"nativeSrc":"14238:18:97","nodeType":"YulFunctionCall","src":"14238:18:97"},{"kind":"number","nativeSrc":"14258:2:97","nodeType":"YulLiteral","src":"14258:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"14231:6:97","nodeType":"YulIdentifier","src":"14231:6:97"},"nativeSrc":"14231:30:97","nodeType":"YulFunctionCall","src":"14231:30:97"},"nativeSrc":"14231:30:97","nodeType":"YulExpressionStatement","src":"14231:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14281:9:97","nodeType":"YulIdentifier","src":"14281:9:97"},{"kind":"number","nativeSrc":"14292:2:97","nodeType":"YulLiteral","src":"14292:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14277:3:97","nodeType":"YulIdentifier","src":"14277:3:97"},"nativeSrc":"14277:18:97","nodeType":"YulFunctionCall","src":"14277:18:97"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nativeSrc":"14297:34:97","nodeType":"YulLiteral","src":"14297:34:97","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nativeSrc":"14270:6:97","nodeType":"YulIdentifier","src":"14270:6:97"},"nativeSrc":"14270:62:97","nodeType":"YulFunctionCall","src":"14270:62:97"},"nativeSrc":"14270:62:97","nodeType":"YulExpressionStatement","src":"14270:62:97"},{"nativeSrc":"14341:26:97","nodeType":"YulAssignment","src":"14341:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"14353:9:97","nodeType":"YulIdentifier","src":"14353:9:97"},{"kind":"number","nativeSrc":"14364:2:97","nodeType":"YulLiteral","src":"14364:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"14349:3:97","nodeType":"YulIdentifier","src":"14349:3:97"},"nativeSrc":"14349:18:97","nodeType":"YulFunctionCall","src":"14349:18:97"},"variableNames":[{"name":"tail","nativeSrc":"14341:4:97","nodeType":"YulIdentifier","src":"14341:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"14017:356:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14168:9:97","nodeType":"YulTypedName","src":"14168:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14182:4:97","nodeType":"YulTypedName","src":"14182:4:97","type":""}],"src":"14017:356:97"},{"body":{"nativeSrc":"14552:227:97","nodeType":"YulBlock","src":"14552:227:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"14569:9:97","nodeType":"YulIdentifier","src":"14569:9:97"},{"kind":"number","nativeSrc":"14580:2:97","nodeType":"YulLiteral","src":"14580:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"14562:6:97","nodeType":"YulIdentifier","src":"14562:6:97"},"nativeSrc":"14562:21:97","nodeType":"YulFunctionCall","src":"14562:21:97"},"nativeSrc":"14562:21:97","nodeType":"YulExpressionStatement","src":"14562:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14603:9:97","nodeType":"YulIdentifier","src":"14603:9:97"},{"kind":"number","nativeSrc":"14614:2:97","nodeType":"YulLiteral","src":"14614:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14599:3:97","nodeType":"YulIdentifier","src":"14599:3:97"},"nativeSrc":"14599:18:97","nodeType":"YulFunctionCall","src":"14599:18:97"},{"kind":"number","nativeSrc":"14619:2:97","nodeType":"YulLiteral","src":"14619:2:97","type":"","value":"37"}],"functionName":{"name":"mstore","nativeSrc":"14592:6:97","nodeType":"YulIdentifier","src":"14592:6:97"},"nativeSrc":"14592:30:97","nodeType":"YulFunctionCall","src":"14592:30:97"},"nativeSrc":"14592:30:97","nodeType":"YulExpressionStatement","src":"14592:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14642:9:97","nodeType":"YulIdentifier","src":"14642:9:97"},{"kind":"number","nativeSrc":"14653:2:97","nodeType":"YulLiteral","src":"14653:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14638:3:97","nodeType":"YulIdentifier","src":"14638:3:97"},"nativeSrc":"14638:18:97","nodeType":"YulFunctionCall","src":"14638:18:97"},{"hexValue":"696e76616c696420616365737320636f6e74726f6c206d616e61676572206164","kind":"string","nativeSrc":"14658:34:97","nodeType":"YulLiteral","src":"14658:34:97","type":"","value":"invalid acess control manager ad"}],"functionName":{"name":"mstore","nativeSrc":"14631:6:97","nodeType":"YulIdentifier","src":"14631:6:97"},"nativeSrc":"14631:62:97","nodeType":"YulFunctionCall","src":"14631:62:97"},"nativeSrc":"14631:62:97","nodeType":"YulExpressionStatement","src":"14631:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14713:9:97","nodeType":"YulIdentifier","src":"14713:9:97"},{"kind":"number","nativeSrc":"14724:2:97","nodeType":"YulLiteral","src":"14724:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"14709:3:97","nodeType":"YulIdentifier","src":"14709:3:97"},"nativeSrc":"14709:18:97","nodeType":"YulFunctionCall","src":"14709:18:97"},{"hexValue":"6472657373","kind":"string","nativeSrc":"14729:7:97","nodeType":"YulLiteral","src":"14729:7:97","type":"","value":"dress"}],"functionName":{"name":"mstore","nativeSrc":"14702:6:97","nodeType":"YulIdentifier","src":"14702:6:97"},"nativeSrc":"14702:35:97","nodeType":"YulFunctionCall","src":"14702:35:97"},"nativeSrc":"14702:35:97","nodeType":"YulExpressionStatement","src":"14702:35:97"},{"nativeSrc":"14746:27:97","nodeType":"YulAssignment","src":"14746:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"14758:9:97","nodeType":"YulIdentifier","src":"14758:9:97"},{"kind":"number","nativeSrc":"14769:3:97","nodeType":"YulLiteral","src":"14769:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"14754:3:97","nodeType":"YulIdentifier","src":"14754:3:97"},"nativeSrc":"14754:19:97","nodeType":"YulFunctionCall","src":"14754:19:97"},"variableNames":[{"name":"tail","nativeSrc":"14746:4:97","nodeType":"YulIdentifier","src":"14746:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"14378:401:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14529:9:97","nodeType":"YulTypedName","src":"14529:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14543:4:97","nodeType":"YulTypedName","src":"14543:4:97","type":""}],"src":"14378:401:97"},{"body":{"nativeSrc":"14913:198:97","nodeType":"YulBlock","src":"14913:198:97","statements":[{"nativeSrc":"14923:26:97","nodeType":"YulAssignment","src":"14923:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"14935:9:97","nodeType":"YulIdentifier","src":"14935:9:97"},{"kind":"number","nativeSrc":"14946:2:97","nodeType":"YulLiteral","src":"14946:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14931:3:97","nodeType":"YulIdentifier","src":"14931:3:97"},"nativeSrc":"14931:18:97","nodeType":"YulFunctionCall","src":"14931:18:97"},"variableNames":[{"name":"tail","nativeSrc":"14923:4:97","nodeType":"YulIdentifier","src":"14923:4:97"}]},{"nativeSrc":"14958:52:97","nodeType":"YulVariableDeclaration","src":"14958:52:97","value":{"kind":"number","nativeSrc":"14968:42:97","nodeType":"YulLiteral","src":"14968:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"14962:2:97","nodeType":"YulTypedName","src":"14962:2:97","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"15026:9:97","nodeType":"YulIdentifier","src":"15026:9:97"},{"arguments":[{"name":"value0","nativeSrc":"15041:6:97","nodeType":"YulIdentifier","src":"15041:6:97"},{"name":"_1","nativeSrc":"15049:2:97","nodeType":"YulIdentifier","src":"15049:2:97"}],"functionName":{"name":"and","nativeSrc":"15037:3:97","nodeType":"YulIdentifier","src":"15037:3:97"},"nativeSrc":"15037:15:97","nodeType":"YulFunctionCall","src":"15037:15:97"}],"functionName":{"name":"mstore","nativeSrc":"15019:6:97","nodeType":"YulIdentifier","src":"15019:6:97"},"nativeSrc":"15019:34:97","nodeType":"YulFunctionCall","src":"15019:34:97"},"nativeSrc":"15019:34:97","nodeType":"YulExpressionStatement","src":"15019:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15073:9:97","nodeType":"YulIdentifier","src":"15073:9:97"},{"kind":"number","nativeSrc":"15084:2:97","nodeType":"YulLiteral","src":"15084:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15069:3:97","nodeType":"YulIdentifier","src":"15069:3:97"},"nativeSrc":"15069:18:97","nodeType":"YulFunctionCall","src":"15069:18:97"},{"arguments":[{"name":"value1","nativeSrc":"15093:6:97","nodeType":"YulIdentifier","src":"15093:6:97"},{"name":"_1","nativeSrc":"15101:2:97","nodeType":"YulIdentifier","src":"15101:2:97"}],"functionName":{"name":"and","nativeSrc":"15089:3:97","nodeType":"YulIdentifier","src":"15089:3:97"},"nativeSrc":"15089:15:97","nodeType":"YulFunctionCall","src":"15089:15:97"}],"functionName":{"name":"mstore","nativeSrc":"15062:6:97","nodeType":"YulIdentifier","src":"15062:6:97"},"nativeSrc":"15062:43:97","nodeType":"YulFunctionCall","src":"15062:43:97"},"nativeSrc":"15062:43:97","nodeType":"YulExpressionStatement","src":"15062:43:97"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"14784:327:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14874:9:97","nodeType":"YulTypedName","src":"14874:9:97","type":""},{"name":"value1","nativeSrc":"14885:6:97","nodeType":"YulTypedName","src":"14885:6:97","type":""},{"name":"value0","nativeSrc":"14893:6:97","nodeType":"YulTypedName","src":"14893:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14904:4:97","nodeType":"YulTypedName","src":"14904:4:97","type":""}],"src":"14784:327:97"},{"body":{"nativeSrc":"15290:233:97","nodeType":"YulBlock","src":"15290:233:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"15307:9:97","nodeType":"YulIdentifier","src":"15307:9:97"},{"kind":"number","nativeSrc":"15318:2:97","nodeType":"YulLiteral","src":"15318:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"15300:6:97","nodeType":"YulIdentifier","src":"15300:6:97"},"nativeSrc":"15300:21:97","nodeType":"YulFunctionCall","src":"15300:21:97"},"nativeSrc":"15300:21:97","nodeType":"YulExpressionStatement","src":"15300:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15341:9:97","nodeType":"YulIdentifier","src":"15341:9:97"},{"kind":"number","nativeSrc":"15352:2:97","nodeType":"YulLiteral","src":"15352:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15337:3:97","nodeType":"YulIdentifier","src":"15337:3:97"},"nativeSrc":"15337:18:97","nodeType":"YulFunctionCall","src":"15337:18:97"},{"kind":"number","nativeSrc":"15357:2:97","nodeType":"YulLiteral","src":"15357:2:97","type":"","value":"43"}],"functionName":{"name":"mstore","nativeSrc":"15330:6:97","nodeType":"YulIdentifier","src":"15330:6:97"},"nativeSrc":"15330:30:97","nodeType":"YulFunctionCall","src":"15330:30:97"},"nativeSrc":"15330:30:97","nodeType":"YulExpressionStatement","src":"15330:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15380:9:97","nodeType":"YulIdentifier","src":"15380:9:97"},{"kind":"number","nativeSrc":"15391:2:97","nodeType":"YulLiteral","src":"15391:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"15376:3:97","nodeType":"YulIdentifier","src":"15376:3:97"},"nativeSrc":"15376:18:97","nodeType":"YulFunctionCall","src":"15376:18:97"},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069","kind":"string","nativeSrc":"15396:34:97","nodeType":"YulLiteral","src":"15396:34:97","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nativeSrc":"15369:6:97","nodeType":"YulIdentifier","src":"15369:6:97"},"nativeSrc":"15369:62:97","nodeType":"YulFunctionCall","src":"15369:62:97"},"nativeSrc":"15369:62:97","nodeType":"YulExpressionStatement","src":"15369:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15451:9:97","nodeType":"YulIdentifier","src":"15451:9:97"},{"kind":"number","nativeSrc":"15462:2:97","nodeType":"YulLiteral","src":"15462:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"15447:3:97","nodeType":"YulIdentifier","src":"15447:3:97"},"nativeSrc":"15447:18:97","nodeType":"YulFunctionCall","src":"15447:18:97"},{"hexValue":"6e697469616c697a696e67","kind":"string","nativeSrc":"15467:13:97","nodeType":"YulLiteral","src":"15467:13:97","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nativeSrc":"15440:6:97","nodeType":"YulIdentifier","src":"15440:6:97"},"nativeSrc":"15440:41:97","nodeType":"YulFunctionCall","src":"15440:41:97"},"nativeSrc":"15440:41:97","nodeType":"YulExpressionStatement","src":"15440:41:97"},{"nativeSrc":"15490:27:97","nodeType":"YulAssignment","src":"15490:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"15502:9:97","nodeType":"YulIdentifier","src":"15502:9:97"},{"kind":"number","nativeSrc":"15513:3:97","nodeType":"YulLiteral","src":"15513:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"15498:3:97","nodeType":"YulIdentifier","src":"15498:3:97"},"nativeSrc":"15498:19:97","nodeType":"YulFunctionCall","src":"15498:19:97"},"variableNames":[{"name":"tail","nativeSrc":"15490:4:97","nodeType":"YulIdentifier","src":"15490:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"15116:407:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15267:9:97","nodeType":"YulTypedName","src":"15267:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15281:4:97","nodeType":"YulTypedName","src":"15281:4:97","type":""}],"src":"15116:407:97"}]},"contents":"{\n    { }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function abi_encode_tuple_t_stringliteral_b9c7f9fb4d10afcebf26c5daf76290a584c3f270eee838d3acb27fb2fe13b11d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 18)\n        mstore(add(headStart, 64), \"Function not found\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        calldatacopy(pos, value0, value1)\n        let _1 := add(pos, value1)\n        mstore(_1, 0)\n        end := _1\n    }\n    function abi_encode_tuple_t_stringliteral_a04f7977a7361020e07a160885cb05178aa6d9ff17ec37e942914b4316b9352a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 11)\n        mstore(add(headStart, 64), \"call failed\")\n        tail := add(headStart, 96)\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_string(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 0x20) }\n        {\n            let _1 := 0x20\n            mstore(add(add(pos, i), _1), mload(add(add(value, i), _1)))\n        }\n        mstore(add(add(pos, length), 0x20), 0)\n        end := add(add(pos, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 0x20)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_string(value0, add(headStart, 32))\n    }\n    function abi_decode_array_string_calldata_dyn_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, shl(5, length)), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_array$_t_string_calldata_ptr_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_array_string_calldata_dyn_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_array_string_calldata_dyn_calldata(add(headStart, offset_1), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n    }\n    function abi_encode_tuple_t_contract$_IOmnichainGovernanceExecutor_$13445__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_uint16t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, 0xffff))) { revert(0, 0) }\n        value0 := value\n        let offset := calldataload(add(headStart, 32))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n        let length := calldataload(_2)\n        if gt(length, _1) { revert(0, 0) }\n        if gt(add(add(_2, length), 32), dataEnd) { revert(0, 0) }\n        value1 := add(_2, 32)\n        value2 := length\n    }\n    function abi_encode_tuple_t_contract$_IAccessControlManagerV8_$13903__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 32), 64)\n        tail := abi_encode_string(value1, add(headStart, 64))\n    }\n    function validator_revert_bool(value)\n    {\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_bool(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), 96)\n        tail := abi_encode_string(value2, add(headStart, 96))\n    }\n    function abi_encode_tuple_t_stringliteral_c39385493865630bb9b3c804a5f858917cc1a47989c0d222d56c03d1165a81a0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 24)\n        mstore(add(headStart, 64), \"Address must not be zero\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_8c7d7f44a93d75a90a1d7078d1656040bea1969f911d1ad279bc9b0194f1b13e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Input arrays must have the same \")\n        mstore(add(headStart, 96), \"length\")\n        tail := add(headStart, 128)\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function access_calldata_tail_t_string_calldata_ptr(base_ref, ptr_to_tail) -> addr, length\n    {\n        let rel_offset_of_tail := calldataload(ptr_to_tail)\n        if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1))) { revert(0, 0) }\n        let addr_1 := add(base_ref, rel_offset_of_tail)\n        length := calldataload(addr_1)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        addr := add(addr_1, 0x20)\n        if sgt(addr, sub(calldatasize(), length)) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_bool(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_bool(value)\n        value0 := value\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function array_dataslot_string_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            let _1 := 0\n            mstore(0, array)\n            let data := keccak256(0, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _2 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _2) { start := add(start, 1) }\n            { sstore(start, _1) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_calldata_ptr_to_t_string_storage(slot, src, len)\n    {\n        if gt(len, 0xffffffffffffffff) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), len)\n        let srcOffset := 0\n        switch gt(len, 31)\n        case 1 {\n            let loopEnd := and(len, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := srcOffset\n            for { } lt(i, loopEnd) { i := add(i, 0x20) }\n            {\n                sstore(dstPtr, calldataload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 0x20)\n            }\n            if lt(loopEnd, len)\n            {\n                sstore(dstPtr, and(calldataload(add(src, srcOffset)), not(shr(and(shl(3, len), 248), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff))))\n            }\n            sstore(slot, add(shl(1, len), 1))\n        }\n        default {\n            let value := 0\n            if len\n            {\n                value := calldataload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, len))\n        }\n    }\n    function abi_encode_tuple_packed_t_string_calldata_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        calldatacopy(pos, value0, value1)\n        let _1 := add(pos, value1)\n        mstore(_1, 0)\n        end := _1\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 41)\n        mstore(add(headStart, 64), \"Ownable2Step: caller is not the \")\n        mstore(add(headStart, 96), \"new owner\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_25330637c37e740ba17926890288a3211f1ce0916deecf251da03c3bc20367a1__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 24)\n        mstore(add(headStart, 64), \"ChainId must not be zero\")\n        tail := add(headStart, 96)\n    }\n    function convert_bytes_to_fixedbytes_from_t_bytes_calldata_ptr_to_t_bytes20(array, len) -> value\n    {\n        let _1 := calldataload(array)\n        let _2 := 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000\n        value := and(_1, _2)\n        if lt(len, 20)\n        {\n            value := and(and(_1, shl(shl(3, sub(20, len)), _2)), _2)\n        }\n    }\n    function abi_encode_tuple_t_stringliteral_9a39bc466e8dc485b140962f2bafd9bf984c501b349d0866987f6e3bcf7433c3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 36)\n        mstore(add(headStart, 64), \"Source address must be 20 bytes \")\n        mstore(add(headStart, 96), \"long\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xffff))\n        mstore(add(headStart, 32), 64)\n        mstore(add(headStart, 64), value2)\n        calldatacopy(add(headStart, 96), value1, value2)\n        mstore(add(add(headStart, value2), 96), 0)\n        tail := add(add(headStart, and(add(value2, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 96)\n    }\n    function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 46)\n        mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n        mstore(add(headStart, 96), \"dy initialized\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"invalid acess control manager ad\")\n        mstore(add(headStart, 96), \"dress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n    }\n    function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 43)\n        mstore(add(headStart, 64), \"Initializable: contract is not i\")\n        mstore(add(headStart, 96), \"nitializing\")\n        tail := add(headStart, 128)\n    }\n}","id":97,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"11396":[{"length":32,"start":519},{"length":32,"start":855},{"length":32,"start":1706},{"length":32,"start":3172}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100df5760003560e01c806379ba50971161008c578063b4a0bdf311610066578063b4a0bdf3146103d7578063c4d66de8146103f5578063e30c397814610408578063f2fde38b14610426576100df565b806379ba50971461039e5780638da5cb5b146103a6578063a6c3d165146103c4576100df565b80634bb7453e116100bd5780634bb7453e1461033f5780635f21f75e14610352578063715018a614610301576100df565b80630e32cb86146102ee578063180d295c146103035780633f90b5401461032c575b600080357fffffffff0000000000000000000000000000000000000000000000000000000016815260c9602052604081208054369160609184919061012390611429565b80601f016020809104026020016040519081016040528092919081815260200182805461014f90611429565b801561019c5780601f106101715761010080835404028352916020019161019c565b820191906000526020600020905b81548152906001019060200180831161017f57829003601f168201915b5050505050905080516000036101f95760405162461bcd60e51b815260206004820152601260248201527f46756e6374696f6e206e6f7420666f756e64000000000000000000000000000060448201526064015b60405180910390fd5b61020281610439565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16868660405161024c92919061147c565b6000604051808303816000865af19150503d8060008114610289576040519150601f19603f3d011682016040523d82523d6000602084013e61028e565b606091505b5091509150816102e05760405162461bcd60e51b815260206004820152600b60248201527f63616c6c206661696c656400000000000000000000000000000000000000000060448201526064016101f0565b805195506020019350505050f35b6103016102fc36600461148c565b610516565b005b6103166103113660046114c9565b61052a565b604051610323919061156f565b60405180910390f35b61030161033a36600461148c565b6105c4565b61030161034d3660046115ce565b610709565b6103797f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610323565b610301610a90565b60335473ffffffffffffffffffffffffffffffffffffffff16610379565b6103016103d236600461163a565b610b28565b60975473ffffffffffffffffffffffffffffffffffffffff16610379565b61030161040336600461148c565b610cd4565b60655473ffffffffffffffffffffffffffffffffffffffff16610379565b61030161043436600461148c565b610eb1565b6097546040517f18c5e8ab00000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff16906318c5e8ab9061049290339086906004016116c6565b602060405180830381865afa1580156104af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d3919061170b565b905080610512573330836040517f4a3fa2930000000000000000000000000000000000000000000000000000000081526004016101f093929190611728565b5050565b61051e610f61565b61052781610fc8565b50565b60c9602052600090815260409020805461054390611429565b80601f016020809104026020016040519081016040528092919081815260200182805461056f90611429565b80156105bc5780601f10610591576101008083540402835291602001916105bc565b820191906000526020600020905b81548152906001019060200180831161059f57829003601f168201915b505050505081565b6106026040518060400160405280602081526020017f7472616e736665724272696467654f776e657273686970286164647265737329815250610439565b73ffffffffffffffffffffffffffffffffffffffff81166106655760405162461bcd60e51b815260206004820152601860248201527f41646472657373206d757374206e6f74206265207a65726f000000000000000060448201526064016101f0565b6040517ff2fde38b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063f2fde38b90602401600060405180830381600087803b1580156106ee57600080fd5b505af1158015610702573d6000803e3d6000fd5b5050505050565b610711610f61565b828181146107875760405162461bcd60e51b815260206004820152602660248201527f496e70757420617272617973206d7573742068617665207468652073616d652060448201527f6c656e677468000000000000000000000000000000000000000000000000000060648201526084016101f0565b60005b81811015610a865760008686838181106107a6576107a661176a565b90506020028101906107b89190611799565b6040516107c692919061147c565b60408051918290039091207fffffffff000000000000000000000000000000000000000000000000000000008116600090815260c960205291822080549193509061081090611429565b80601f016020809104026020016040519081016040528092919081815260200182805461083c90611429565b80156108895780601f1061085e57610100808354040283529160200191610889565b820191906000526020600020905b81548152906001019060200180831161086c57829003601f168201915b505050505090508585848181106108a2576108a261176a565b90506020020160208101906108b791906117fe565b80156108c257508051155b1561099b578787848181106108d9576108d961176a565b90506020028101906108eb9190611799565b7fffffffff000000000000000000000000000000000000000000000000000000008416600090815260c96020526040902091610928919083611897565b5087878481811061093b5761093b61176a565b905060200281019061094d9190611799565b60405161095b92919061147c565b60405190819003812060018252907f9d424e54f4d851aabd288f6cc4946e5726d6b5c0e66ea4ef159a3c40bcc470fa9060200160405180910390a2610a7c565b8585848181106109ad576109ad61176a565b90506020020160208101906109c291906117fe565b1580156109cf5750805115155b15610a7c577fffffffff000000000000000000000000000000000000000000000000000000008216600090815260c960205260408120610a0e916113db565b878784818110610a2057610a2061176a565b9050602002810190610a329190611799565b604051610a4092919061147c565b60405190819003812060008252907f9d424e54f4d851aabd288f6cc4946e5726d6b5c0e66ea4ef159a3c40bcc470fa9060200160405180910390a25b505060010161078a565b505050505050565b565b606554339073ffffffffffffffffffffffffffffffffffffffff168114610b1f5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e6572000000000000000000000000000000000000000000000060648201526084016101f0565b610527816110d0565b610b49604051806060016040528060258152602001611a5260259139610439565b8261ffff16600003610b9d5760405162461bcd60e51b815260206004820152601860248201527f436861696e4964206d757374206e6f74206265207a65726f000000000000000060448201526064016101f0565b610bb2610baa82846119b1565b60601c611101565b60148114610c275760405162461bcd60e51b8152602060048201526024808201527f536f757263652061646472657373206d7573742062652032302062797465732060448201527f6c6f6e670000000000000000000000000000000000000000000000000000000060648201526084016101f0565b6040517fa6c3d16500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063a6c3d16590610c9d908690869086906004016119f9565b600060405180830381600087803b158015610cb757600080fd5b505af1158015610ccb573d6000803e3d6000fd5b50505050505050565b600054610100900460ff1615808015610cf45750600054600160ff909116105b80610d0e5750303b158015610d0e575060005460ff166001145b610d805760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016101f0565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610dde57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b73ffffffffffffffffffffffffffffffffffffffff8216610e415760405162461bcd60e51b815260206004820152601860248201527f41646472657373206d757374206e6f74206265207a65726f000000000000000060448201526064016101f0565b610e4a8261114e565b801561051257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15050565b610eb9610f61565b6065805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff00000000000000000000000000000000000000009091168117909155610f1c60335473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60335473ffffffffffffffffffffffffffffffffffffffff163314610a8e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016101f0565b73ffffffffffffffffffffffffffffffffffffffff81166110515760405162461bcd60e51b815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e6167657220616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016101f0565b6097805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa09101610ea5565b606580547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055610527816111dc565b73ffffffffffffffffffffffffffffffffffffffff8116610527576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600054610100900460ff166111cb5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016101f0565b6111d3611253565b610527816112d8565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166112d05760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016101f0565b610a8e611355565b600054610100900460ff1661051e5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016101f0565b600054610100900460ff166113d25760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016101f0565b610a8e336110d0565b5080546113e790611429565b6000825580601f106113f7575050565b601f01602090049060005260206000209081019061052791905b808211156114255760008155600101611411565b5090565b600181811c9082168061143d57607f821691505b602082108103611476577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b8183823760009101908152919050565b60006020828403121561149e57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff811681146114c257600080fd5b9392505050565b6000602082840312156114db57600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146114c257600080fd5b6000815180845260005b8181101561153157602081850181015186830182015201611515565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6020815260006114c2602083018461150b565b60008083601f84011261159457600080fd5b50813567ffffffffffffffff8111156115ac57600080fd5b6020830191508360208260051b85010111156115c757600080fd5b9250929050565b600080600080604085870312156115e457600080fd5b843567ffffffffffffffff808211156115fc57600080fd5b61160888838901611582565b9096509450602087013591508082111561162157600080fd5b5061162e87828801611582565b95989497509550505050565b60008060006040848603121561164f57600080fd5b833561ffff8116811461166157600080fd5b9250602084013567ffffffffffffffff8082111561167e57600080fd5b818601915086601f83011261169257600080fd5b8135818111156116a157600080fd5b8760208285010111156116b357600080fd5b6020830194508093505050509250925092565b73ffffffffffffffffffffffffffffffffffffffff831681526040602082015260006116f5604083018461150b565b949350505050565b801515811461052757600080fd5b60006020828403121561171d57600080fd5b81516114c2816116fd565b600073ffffffffffffffffffffffffffffffffffffffff808616835280851660208401525060606040830152611761606083018461150b565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126117ce57600080fd5b83018035915067ffffffffffffffff8211156117e957600080fd5b6020019150368190038213156115c757600080fd5b60006020828403121561181057600080fd5b81356114c2816116fd565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f821115611892576000816000526020600020601f850160051c810160208610156118735750805b601f850160051c820191505b81811015610a865782815560010161187f565b505050565b67ffffffffffffffff8311156118af576118af61181b565b6118c3836118bd8354611429565b8361184a565b6000601f84116001811461191557600085156118df5750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355610702565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b828110156119645786850135825560209485019460019092019101611944565b508682101561199f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000081358181169160148510156119f15780818660140360031b1b83161692505b505092915050565b61ffff8416815260406020820152816040820152818360608301376000818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01601019291505056fe7365745472757374656452656d6f7465416464726573732875696e7431362c627974657329a2646970667358221220734fd31ef7e50b00f1576164573695dc004c9377b45a8d7e111a9e1615d68a4964736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xDF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x79BA5097 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xB4A0BDF3 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xB4A0BDF3 EQ PUSH2 0x3D7 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x3F5 JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x408 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x426 JUMPI PUSH2 0xDF JUMP JUMPDEST DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x39E JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x3A6 JUMPI DUP1 PUSH4 0xA6C3D165 EQ PUSH2 0x3C4 JUMPI PUSH2 0xDF JUMP JUMPDEST DUP1 PUSH4 0x4BB7453E GT PUSH2 0xBD JUMPI DUP1 PUSH4 0x4BB7453E EQ PUSH2 0x33F JUMPI DUP1 PUSH4 0x5F21F75E EQ PUSH2 0x352 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x301 JUMPI PUSH2 0xDF JUMP JUMPDEST DUP1 PUSH4 0xE32CB86 EQ PUSH2 0x2EE JUMPI DUP1 PUSH4 0x180D295C EQ PUSH2 0x303 JUMPI DUP1 PUSH4 0x3F90B540 EQ PUSH2 0x32C JUMPI JUMPDEST PUSH1 0x0 DUP1 CALLDATALOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND DUP2 MSTORE PUSH1 0xC9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD CALLDATASIZE SWAP2 PUSH1 0x60 SWAP2 DUP5 SWAP2 SWAP1 PUSH2 0x123 SWAP1 PUSH2 0x1429 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x14F SWAP1 PUSH2 0x1429 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x19C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x171 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x19C JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x17F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x1F9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E206E6F7420666F756E640000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x202 DUP2 PUSH2 0x439 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x24C SWAP3 SWAP2 SWAP1 PUSH2 0x147C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x289 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x28E JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x2E0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xB PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x63616C6C206661696C6564000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1F0 JUMP JUMPDEST DUP1 MLOAD SWAP6 POP PUSH1 0x20 ADD SWAP4 POP POP POP POP RETURN JUMPDEST PUSH2 0x301 PUSH2 0x2FC CALLDATASIZE PUSH1 0x4 PUSH2 0x148C JUMP JUMPDEST PUSH2 0x516 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x316 PUSH2 0x311 CALLDATASIZE PUSH1 0x4 PUSH2 0x14C9 JUMP JUMPDEST PUSH2 0x52A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x323 SWAP2 SWAP1 PUSH2 0x156F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x301 PUSH2 0x33A CALLDATASIZE PUSH1 0x4 PUSH2 0x148C JUMP JUMPDEST PUSH2 0x5C4 JUMP JUMPDEST PUSH2 0x301 PUSH2 0x34D CALLDATASIZE PUSH1 0x4 PUSH2 0x15CE JUMP JUMPDEST PUSH2 0x709 JUMP JUMPDEST PUSH2 0x379 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x323 JUMP JUMPDEST PUSH2 0x301 PUSH2 0xA90 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x379 JUMP JUMPDEST PUSH2 0x301 PUSH2 0x3D2 CALLDATASIZE PUSH1 0x4 PUSH2 0x163A JUMP JUMPDEST PUSH2 0xB28 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x379 JUMP JUMPDEST PUSH2 0x301 PUSH2 0x403 CALLDATASIZE PUSH1 0x4 PUSH2 0x148C JUMP JUMPDEST PUSH2 0xCD4 JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x379 JUMP JUMPDEST PUSH2 0x301 PUSH2 0x434 CALLDATASIZE PUSH1 0x4 PUSH2 0x148C JUMP JUMPDEST PUSH2 0xEB1 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0x40 MLOAD PUSH32 0x18C5E8AB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x492 SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x16C6 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4AF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4D3 SWAP2 SWAP1 PUSH2 0x170B JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x512 JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH32 0x4A3FA29300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1F0 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1728 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x51E PUSH2 0xF61 JUMP JUMPDEST PUSH2 0x527 DUP2 PUSH2 0xFC8 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0xC9 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x543 SWAP1 PUSH2 0x1429 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x56F SWAP1 PUSH2 0x1429 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x5BC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x591 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x5BC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x59F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0x602 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x7472616E736665724272696467654F776E657273686970286164647265737329 DUP2 MSTORE POP PUSH2 0x439 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x665 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x41646472657373206D757374206E6F74206265207A65726F0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH32 0x0 AND SWAP1 PUSH4 0xF2FDE38B SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x6EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x702 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x711 PUSH2 0xF61 JUMP JUMPDEST DUP3 DUP2 DUP2 EQ PUSH2 0x787 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E70757420617272617973206D7573742068617665207468652073616D6520 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C656E6774680000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xA86 JUMPI PUSH1 0x0 DUP7 DUP7 DUP4 DUP2 DUP2 LT PUSH2 0x7A6 JUMPI PUSH2 0x7A6 PUSH2 0x176A JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x7B8 SWAP2 SWAP1 PUSH2 0x1799 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x7C6 SWAP3 SWAP2 SWAP1 PUSH2 0x147C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC9 PUSH1 0x20 MSTORE SWAP2 DUP3 KECCAK256 DUP1 SLOAD SWAP2 SWAP4 POP SWAP1 PUSH2 0x810 SWAP1 PUSH2 0x1429 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x83C SWAP1 PUSH2 0x1429 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x889 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x85E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x889 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x86C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP6 DUP6 DUP5 DUP2 DUP2 LT PUSH2 0x8A2 JUMPI PUSH2 0x8A2 PUSH2 0x176A JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x8B7 SWAP2 SWAP1 PUSH2 0x17FE JUMP JUMPDEST DUP1 ISZERO PUSH2 0x8C2 JUMPI POP DUP1 MLOAD ISZERO JUMPDEST ISZERO PUSH2 0x99B JUMPI DUP8 DUP8 DUP5 DUP2 DUP2 LT PUSH2 0x8D9 JUMPI PUSH2 0x8D9 PUSH2 0x176A JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x8EB SWAP2 SWAP1 PUSH2 0x1799 JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 PUSH2 0x928 SWAP2 SWAP1 DUP4 PUSH2 0x1897 JUMP JUMPDEST POP DUP8 DUP8 DUP5 DUP2 DUP2 LT PUSH2 0x93B JUMPI PUSH2 0x93B PUSH2 0x176A JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x94D SWAP2 SWAP1 PUSH2 0x1799 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x95B SWAP3 SWAP2 SWAP1 PUSH2 0x147C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 PUSH1 0x1 DUP3 MSTORE SWAP1 PUSH32 0x9D424E54F4D851AABD288F6CC4946E5726D6B5C0E66EA4EF159A3C40BCC470FA SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH2 0xA7C JUMP JUMPDEST DUP6 DUP6 DUP5 DUP2 DUP2 LT PUSH2 0x9AD JUMPI PUSH2 0x9AD PUSH2 0x176A JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x9C2 SWAP2 SWAP1 PUSH2 0x17FE JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0x9CF JUMPI POP DUP1 MLOAD ISZERO ISZERO JUMPDEST ISZERO PUSH2 0xA7C JUMPI PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0xA0E SWAP2 PUSH2 0x13DB JUMP JUMPDEST DUP8 DUP8 DUP5 DUP2 DUP2 LT PUSH2 0xA20 JUMPI PUSH2 0xA20 PUSH2 0x176A JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0xA32 SWAP2 SWAP1 PUSH2 0x1799 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA40 SWAP3 SWAP2 SWAP1 PUSH2 0x147C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 PUSH1 0x0 DUP3 MSTORE SWAP1 PUSH32 0x9D424E54F4D851AABD288F6CC4946E5726D6B5C0E66EA4EF159A3C40BCC470FA SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 JUMPDEST POP POP PUSH1 0x1 ADD PUSH2 0x78A JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x65 SLOAD CALLER SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 EQ PUSH2 0xB1F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C6532537465703A2063616C6C6572206973206E6F742074686520 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E6577206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH2 0x527 DUP2 PUSH2 0x10D0 JUMP JUMPDEST PUSH2 0xB49 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1A52 PUSH1 0x25 SWAP2 CODECOPY PUSH2 0x439 JUMP JUMPDEST DUP3 PUSH2 0xFFFF AND PUSH1 0x0 SUB PUSH2 0xB9D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x436861696E4964206D757374206E6F74206265207A65726F0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH2 0xBB2 PUSH2 0xBAA DUP3 DUP5 PUSH2 0x19B1 JUMP JUMPDEST PUSH1 0x60 SHR PUSH2 0x1101 JUMP JUMPDEST PUSH1 0x14 DUP2 EQ PUSH2 0xC27 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x536F757263652061646472657373206D75737420626520323020627974657320 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C6F6E6700000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xA6C3D16500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 AND SWAP1 PUSH4 0xA6C3D165 SWAP1 PUSH2 0xC9D SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x19F9 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCB7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCCB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0xCF4 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0xD0E JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD0E JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0xD80 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x647920696E697469616C697A6564000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0xDDE JUMPI PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH2 0xE41 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x41646472657373206D757374206E6F74206265207A65726F0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH2 0xE4A DUP3 PUSH2 0x114E JUMP JUMPDEST DUP1 ISZERO PUSH2 0x512 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH2 0xEB9 PUSH2 0xF61 JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP1 SWAP2 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0xF1C PUSH1 0x33 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0xA8E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x1051 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C696420616365737320636F6E74726F6C206D616E61676572206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 SWAP1 SWAP3 AND DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH32 0x66FD58E82F7B31A2A5C30E0888F3093EFE4E111B00CD2B0C31FE014601293AA0 SWAP2 ADD PUSH2 0xEA5 JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND SWAP1 SSTORE PUSH2 0x527 DUP2 PUSH2 0x11DC JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x527 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8579BEFE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x11CB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH2 0x11D3 PUSH2 0x1253 JUMP JUMPDEST PUSH2 0x527 DUP2 PUSH2 0x12D8 JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x12D0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH2 0xA8E PUSH2 0x1355 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x51E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x13D2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH2 0xA8E CALLER PUSH2 0x10D0 JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x13E7 SWAP1 PUSH2 0x1429 JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x13F7 JUMPI POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x527 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x1425 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x1411 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x143D JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1476 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x149E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x14C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND DUP2 EQ PUSH2 0x14C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1531 JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x1515 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x14C2 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x150B JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1594 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x15AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0x15C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x15E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x15FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1608 DUP9 DUP4 DUP10 ADD PUSH2 0x1582 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1621 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x162E DUP8 DUP3 DUP9 ADD PUSH2 0x1582 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x164F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x1661 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x167E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1692 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x16A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x16B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP5 POP DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x16F5 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x150B JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x527 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x171D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x14C2 DUP2 PUSH2 0x16FD JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP7 AND DUP4 MSTORE DUP1 DUP6 AND PUSH1 0x20 DUP5 ADD MSTORE POP PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x1761 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x150B JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x17CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x17E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x15C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1810 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x14C2 DUP2 PUSH2 0x16FD JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1892 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x1873 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xA86 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x187F JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP4 GT ISZERO PUSH2 0x18AF JUMPI PUSH2 0x18AF PUSH2 0x181B JUMP JUMPDEST PUSH2 0x18C3 DUP4 PUSH2 0x18BD DUP4 SLOAD PUSH2 0x1429 JUMP JUMPDEST DUP4 PUSH2 0x184A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP5 GT PUSH1 0x1 DUP2 EQ PUSH2 0x1915 JUMPI PUSH1 0x0 DUP6 ISZERO PUSH2 0x18DF JUMPI POP DUP4 DUP3 ADD CALLDATALOAD JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP8 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP7 SWAP1 SHL OR DUP4 SSTORE PUSH2 0x702 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP7 AND SWAP1 DUP4 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1964 JUMPI DUP7 DUP6 ADD CALLDATALOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x1944 JUMP JUMPDEST POP DUP7 DUP3 LT ISZERO PUSH2 0x199F JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0xF8 DUP9 PUSH1 0x3 SHL AND SHR NOT DUP5 DUP8 ADD CALLDATALOAD AND DUP2 SSTORE JUMPDEST POP POP PUSH1 0x1 DUP6 PUSH1 0x1 SHL ADD DUP4 SSTORE POP POP POP POP POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 DUP2 CALLDATALOAD DUP2 DUP2 AND SWAP2 PUSH1 0x14 DUP6 LT ISZERO PUSH2 0x19F1 JUMPI DUP1 DUP2 DUP7 PUSH1 0x14 SUB PUSH1 0x3 SHL SHL DUP4 AND AND SWAP3 POP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE DUP2 PUSH1 0x40 DUP3 ADD MSTORE DUP2 DUP4 PUSH1 0x60 DUP4 ADD CALLDATACOPY PUSH1 0x0 DUP2 DUP4 ADD PUSH1 0x60 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP3 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND ADD ADD SWAP3 SWAP2 POP POP JUMP INVALID PUSH20 0x65745472757374656452656D6F74654164647265 PUSH20 0x732875696E7431362C627974657329A264697066 PUSH20 0x58221220734FD31EF7E50B00F1576164573695DC STOP 0x4C SWAP4 PUSH24 0xB45A8D7E111A9E1615D68A4964736F6C6343000819003300 ","sourceMap":"734:4458:51:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3146:7;;;;3129:25;;:16;:25;;;;;3109:45;;734:4458;;3085:12;;734:4458;;3129:25;3109:45;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3178:3;3172:17;3193:1;3172:22;3164:53;;;;-1:-1:-1;;;3164:53:51;;658:2:97;3164:53:51;;;640:21:97;697:2;677:18;;;670:30;736:20;716:18;;;709:48;774:18;;3164:53:51;;;;;;;;;3227:24;3247:3;3227:19;:24::i;:::-;3262:7;3271:16;3299:29;3291:43;;3335:5;;3291:50;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3261:80;;;;3359:2;3351:26;;;;-1:-1:-1;;;3351:26:51;;1281:2:97;3351:26:51;;;1263:21:97;1320:2;1300:18;;;1293:30;1359:13;1339:18;;;1332:41;1390:18;;3351:26:51;1079:335:97;3351:26:51;734:4458;;;-1:-1:-1;734:4458:51;;;-1:-1:-1;;;;734:4458:51;2103:147:57;;;;;;:::i;:::-;;:::i;:::-;;1057:49:51;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4757:271;;;;;;:::i;:::-;;:::i;3679:838::-;;;;;;:::i;:::-;;:::i;876:75::-;;;;;;;;4179:42:97;4167:55;;;4149:74;;4137:2;4122:18;876:75:51;3965:264:97;2010:206:25;;;:::i;1441:85:26:-;1513:6;;;;1441:85;;2303:472:51;;;;;;:::i;:::-;;:::i;2346:125:57:-;2443:21;;;;2346:125;;1727:217:51;;;;;;:::i;:::-;;:::i;1123:99:25:-;1202:13;;;;1123:99;;1415:178;;;;;;:::i;:::-;;:::i;3204:282:57:-;3305:21;;:60;;;;;3282:20;;3305:21;;;:37;;:60;;3343:10;;3355:9;;3305:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3282:83;;3381:15;3376:104;;3432:10;3452:4;3459:9;3419:50;;;;;;;;;;;;;:::i;3376:104::-;3272:214;3204:282;:::o;2103:147::-;1334:13:26;:11;:13::i;:::-;2196:47:57::1;2221:21;2196:24;:47::i;:::-;2103:147:::0;:::o;1057:49:51:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4757:271::-;4828:55;;;;;;;;;;;;;;;;;;:19;:55::i;:::-;4901:23;;;4893:60;;;;-1:-1:-1;;;4893:60:51;;6851:2:97;4893:60:51;;;6833:21:97;6890:2;6870:18;;;6863:30;6929:26;6909:18;;;6902:54;6973:18;;4893:60:51;6649:348:97;4893:60:51;4963:58;;;;;:47;4167:55:97;;;4963:58:51;;;4149:74:97;4963:29:51;:47;;;;4122:18:97;;4963:58:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4757:271;:::o;3679:838::-;1334:13:26;:11;:13::i;:::-;3815:11:51;3851:33;;::::1;3843:84;;;::::0;-1:-1:-1;;;3843:84:51;;7204:2:97;3843:84:51::1;::::0;::::1;7186:21:97::0;7243:2;7223:18;;;7216:30;7282:34;7262:18;;;7255:62;7353:8;7333:18;;;7326:36;7379:19;;3843:84:51::1;7002:402:97::0;3843:84:51::1;3942:9;3937:574;3957:15;3953:1;:19;3937:574;;;3993:14;4033:11;;4045:1;4033:14;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;4017:32;;;;;;;:::i;:::-;;::::0;;;;;::::1;::::0;;;4095:25;;::::1;4064:22;4095:25:::0;;;:16:::1;:25;::::0;;;;4064:57;;4017:32;;-1:-1:-1;4095:25:51;4064:57:::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4139:7;;4147:1;4139:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;:35;;;;-1:-1:-1::0;4153:16:51;;:21;4139:35:::1;4135:366;;;4222:11;;4234:1;4222:14;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;4194:25:::0;;::::1;;::::0;;;:16:::1;:25;::::0;;;;;:42:::1;::::0;;:25;:42:::1;:::i;:::-;;4283:11;;4295:1;4283:14;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;4259:45;;;;;;;:::i;:::-;;::::0;;;;::::1;::::0;;4299:4:::1;11272:41:97::0;;4259:45:51;::::1;::::0;11260:2:97;11245:18;4259:45:51::1;;;;;;;4135:366;;;4330:7;;4338:1;4330:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;4329:11;:36;;;;-1:-1:-1::0;4344:16:51;;:21;::::1;4329:36;4325:176;;;4392:25:::0;;::::1;;::::0;;;:16:::1;:25;::::0;;;;4385:32:::1;::::0;::::1;:::i;:::-;4464:11;;4476:1;4464:14;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;4440:46;;;;;;;:::i;:::-;;::::0;;;;::::1;::::0;;4480:5:::1;11272:41:97::0;;4440:46:51;::::1;::::0;11260:2:97;11245:18;4440:46:51::1;;;;;;;4325:176;-1:-1:-1::0;;3974:3:51::1;;3937:574;;;;3779:738;3679:838:::0;;;;:::o;5135:55::-;:::o;2010:206:25:-;1202:13;;929:10:29;;2103:24:25;1202:13;2103:24;;2095:78;;;;-1:-1:-1;;;2095:78:25;;11526:2:97;2095:78:25;;;11508:21:97;11565:2;11545:18;;;11538:30;11604:34;11584:18;;;11577:62;11675:11;11655:18;;;11648:39;11704:19;;2095:78:25;11324:405:97;2095:78:25;2183:26;2202:6;2183:18;:26::i;2303:472:51:-;2403:60;;;;;;;;;;;;;;;;;;:19;:60::i;:::-;2481:11;:16;;2496:1;2481:16;2473:53;;;;-1:-1:-1;;;2473:53:51;;11936:2:97;2473:53:51;;;11918:21:97;11975:2;11955:18;;;11948:30;12014:26;11994:18;;;11987:54;12058:18;;2473:53:51;11734:348:97;2473:53:51;2536:60;2573:20;2581:11;;2573:20;:::i;:::-;2565:29;;2536:20;:60::i;:::-;2636:2;2614:24;;2606:73;;;;-1:-1:-1;;;2606:73:51;;12666:2:97;2606:73:51;;;12648:21:97;12705:2;12685:18;;;12678:30;12744:34;12724:18;;;12717:62;12815:6;12795:18;;;12788:34;12839:19;;2606:73:51;12464:400:97;2606:73:51;2689:79;;;;;:53;:29;:53;;;;:79;;2743:11;;2756;;;;2689:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2303:472;;;:::o;1727:217::-;3268:19:27;3291:13;;;;;;3290:14;;3336:34;;;;-1:-1:-1;3354:12:27;;3369:1;3354:12;;;;:16;3336:34;3335:108;;;-1:-1:-1;3415:4:27;1476:19:28;:23;;;3376:66:27;;-1:-1:-1;3425:12:27;;;;;:17;3376:66;3314:201;;;;-1:-1:-1;;;3314:201:27;;13605:2:97;3314:201:27;;;13587:21:97;13644:2;13624:18;;;13617:30;13683:34;13663:18;;;13656:62;13754:16;13734:18;;;13727:44;13788:19;;3314:201:27;13403:410:97;3314:201:27;3525:12;:16;;;;3540:1;3525:16;;;3551:65;;;;3585:13;:20;;;;;;;;3551:65;1817:35:51::1;::::0;::::1;1809:72;;;::::0;-1:-1:-1;;;1809:72:51;;6851:2:97;1809:72:51::1;::::0;::::1;6833:21:97::0;6890:2;6870:18;;;6863:30;6929:26;6909:18;;;6902:54;6973:18;;1809:72:51::1;6649:348:97::0;1809:72:51::1;1891:46;1915:21;1891:23;:46::i;:::-;3640:14:27::0;3636:99;;;3686:5;3670:21;;;;;;3710:14;;-1:-1:-1;13970:36:97;;3710:14:27;;13958:2:97;13943:18;3710:14:27;;;;;;;;3258:483;1727:217:51;:::o;1415:178:25:-;1334:13:26;:11;:13::i;:::-;1504::25::1;:24:::0;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;1568:7:::1;1513:6:26::0;;;;;1441:85;1568:7:25::1;1543:43;;;;;;;;;;;;1415:178:::0;:::o;1599:130:26:-;1513:6;;1662:23;1513:6;929:10:29;1662:23:26;1654:68;;;;-1:-1:-1;;;1654:68:26;;14219:2:97;1654:68:26;;;14201:21:97;;;14238:18;;;14231:30;14297:34;14277:18;;;14270:62;14349:18;;1654:68:26;14017:356:97;2642:425:57;2734:44;;;2726:94;;;;-1:-1:-1;;;2726:94:57;;14580:2:97;2726:94:57;;;14562:21:97;14619:2;14599:18;;;14592:30;14658:34;14638:18;;;14631:62;14729:7;14709:18;;;14702:35;14754:19;;2726:94:57;14378:401:97;2726:94:57;2872:21;;;;2904:70;;;;;;;;;;;2989:71;;;2872:21;;;;15019:34:97;;;15084:2;15069:18;;15062:43;;;;2989:71:57;;14931:18:97;2989:71:57;14784:327:97;1777:153:25;1866:13;1859:20;;;;;;1889:34;1914:8;1889:24;:34::i;485:136:47:-;548:22;;;544:75;;589:23;;;;;;;;;;;;;;1420:194:57;5363:13:27;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:27;;15318:2:97;5355:69:27;;;15300:21:97;15357:2;15337:18;;;15330:30;15396:34;15376:18;;;15369:62;15467:13;15447:18;;;15440:41;15498:19;;5355:69:27;15116:407:97;5355:69:27;1520:21:57::1;:19;:21::i;:::-;1551:56;1585:21;1551:33;:56::i;2673:187:26:-:0;2765:6;;;;2781:17;;;;;;;;;;;2813:40;;2765:6;;;2781:17;2765:6;;2813:40;;2746:16;;2813:40;2736:124;2673:187;:::o;738:100:25:-;5363:13:27;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:27;;15318:2:97;5355:69:27;;;15300:21:97;15357:2;15337:18;;;15330:30;15396:34;15376:18;;;15369:62;15467:13;15447:18;;;15440:41;15498:19;;5355:69:27;15116:407:97;5355:69:27;805:26:25::1;:24;:26::i;1620:164:57:-:0;5363:13:27;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:27;;15318:2:97;5355:69:27;;;15300:21:97;15357:2;15337:18;;;15330:30;15396:34;15376:18;;;15369:62;15467:13;15447:18;;;15440:41;15498:19;;5355:69:27;15116:407:97;1104:111:26;5363:13:27;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:27;;15318:2:97;5355:69:27;;;15300:21:97;15357:2;15337:18;;;15330:30;15396:34;15376:18;;;15369:62;15467:13;15447:18;;;15440:41;15498:19;;5355:69:27;15116:407:97;5355:69:27;1176:32:26::1;929:10:29::0;1176:18:26::1;:32::i;-1:-1:-1:-:0;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:437:97:-;93:1;89:12;;;;136;;;157:61;;211:4;203:6;199:17;189:27;;157:61;264:2;256:6;253:14;233:18;230:38;227:218;;301:77;298:1;291:88;402:4;399:1;392:15;430:4;427:1;420:15;227:218;;14:437;;;:::o;803:271::-;986:6;978;973:3;960:33;942:3;1012:16;;1037:13;;;1012:16;803:271;-1:-1:-1;803:271:97:o;1419:309::-;1478:6;1531:2;1519:9;1510:7;1506:23;1502:32;1499:52;;;1547:1;1544;1537:12;1499:52;1586:9;1573:23;1636:42;1629:5;1625:54;1618:5;1615:65;1605:93;;1694:1;1691;1684:12;1605:93;1717:5;1419:309;-1:-1:-1;;;1419:309:97:o;1733:332::-;1791:6;1844:2;1832:9;1823:7;1819:23;1815:32;1812:52;;;1860:1;1857;1850:12;1812:52;1899:9;1886:23;1949:66;1942:5;1938:78;1931:5;1928:89;1918:117;;2031:1;2028;2021:12;2070:482;2112:3;2150:5;2144:12;2177:6;2172:3;2165:19;2202:1;2212:162;2226:6;2223:1;2220:13;2212:162;;;2288:4;2344:13;;;2340:22;;2334:29;2316:11;;;2312:20;;2305:59;2241:12;2212:162;;;2216:3;2419:1;2412:4;2403:6;2398:3;2394:16;2390:27;2383:38;2541:4;2471:66;2466:2;2458:6;2454:15;2450:88;2445:3;2441:98;2437:109;2430:116;;;2070:482;;;;:::o;2557:220::-;2706:2;2695:9;2688:21;2669:4;2726:45;2767:2;2756:9;2752:18;2744:6;2726:45;:::i;2782:375::-;2853:8;2863:6;2917:3;2910:4;2902:6;2898:17;2894:27;2884:55;;2935:1;2932;2925:12;2884:55;-1:-1:-1;2958:20:97;;3001:18;2990:30;;2987:50;;;3033:1;3030;3023:12;2987:50;3070:4;3062:6;3058:17;3046:29;;3130:3;3123:4;3113:6;3110:1;3106:14;3098:6;3094:27;3090:38;3087:47;3084:67;;;3147:1;3144;3137:12;3084:67;2782:375;;;;;:::o;3162:798::-;3293:6;3301;3309;3317;3370:2;3358:9;3349:7;3345:23;3341:32;3338:52;;;3386:1;3383;3376:12;3338:52;3426:9;3413:23;3455:18;3496:2;3488:6;3485:14;3482:34;;;3512:1;3509;3502:12;3482:34;3551:78;3621:7;3612:6;3601:9;3597:22;3551:78;:::i;:::-;3648:8;;-1:-1:-1;3525:104:97;-1:-1:-1;3736:2:97;3721:18;;3708:32;;-1:-1:-1;3752:16:97;;;3749:36;;;3781:1;3778;3771:12;3749:36;;3820:80;3892:7;3881:8;3870:9;3866:24;3820:80;:::i;:::-;3162:798;;;;-1:-1:-1;3919:8:97;-1:-1:-1;;;;3162:798:97:o;4465:751::-;4543:6;4551;4559;4612:2;4600:9;4591:7;4587:23;4583:32;4580:52;;;4628:1;4625;4618:12;4580:52;4667:9;4654:23;4717:6;4710:5;4706:18;4699:5;4696:29;4686:57;;4739:1;4736;4729:12;4686:57;4762:5;-1:-1:-1;4818:2:97;4803:18;;4790:32;4841:18;4871:14;;;4868:34;;;4898:1;4895;4888:12;4868:34;4936:6;4925:9;4921:22;4911:32;;4981:7;4974:4;4970:2;4966:13;4962:27;4952:55;;5003:1;5000;4993:12;4952:55;5043:2;5030:16;5069:2;5061:6;5058:14;5055:34;;;5085:1;5082;5075:12;5055:34;5130:7;5125:2;5116:6;5112:2;5108:15;5104:24;5101:37;5098:57;;;5151:1;5148;5141:12;5098:57;5182:2;5178;5174:11;5164:21;;5204:6;5194:16;;;;;4465:751;;;;;:::o;5485:340::-;5674:42;5666:6;5662:55;5651:9;5644:74;5754:2;5749;5738:9;5734:18;5727:30;5625:4;5774:45;5815:2;5804:9;5800:18;5792:6;5774:45;:::i;:::-;5766:53;5485:340;-1:-1:-1;;;;5485:340:97:o;5830:118::-;5916:5;5909:13;5902:21;5895:5;5892:32;5882:60;;5938:1;5935;5928:12;5953:245;6020:6;6073:2;6061:9;6052:7;6048:23;6044:32;6041:52;;;6089:1;6086;6079:12;6041:52;6121:9;6115:16;6140:28;6162:5;6140:28;:::i;6203:441::-;6371:4;6400:42;6481:2;6473:6;6469:15;6458:9;6451:34;6533:2;6525:6;6521:15;6516:2;6505:9;6501:18;6494:43;;6573:2;6568;6557:9;6553:18;6546:30;6593:45;6634:2;6623:9;6619:18;6611:6;6593:45;:::i;:::-;6585:53;6203:441;-1:-1:-1;;;;;6203:441:97:o;7409:184::-;7461:77;7458:1;7451:88;7558:4;7555:1;7548:15;7582:4;7579:1;7572:15;7598:581;7676:4;7682:6;7742:11;7729:25;7832:66;7821:8;7805:14;7801:29;7797:102;7777:18;7773:127;7763:155;;7914:1;7911;7904:12;7763:155;7941:33;;7993:20;;;-1:-1:-1;8036:18:97;8025:30;;8022:50;;;8068:1;8065;8058:12;8022:50;8101:4;8089:17;;-1:-1:-1;8132:14:97;8128:27;;;8118:38;;8115:58;;;8169:1;8166;8159:12;8184:241;8240:6;8293:2;8281:9;8272:7;8268:23;8264:32;8261:52;;;8309:1;8306;8299:12;8261:52;8348:9;8335:23;8367:28;8389:5;8367:28;:::i;8430:184::-;8482:77;8479:1;8472:88;8579:4;8576:1;8569:15;8603:4;8600:1;8593:15;8745:543;8847:2;8842:3;8839:11;8836:446;;;8883:1;8907:5;8904:1;8897:16;8951:4;8948:1;8938:18;9021:2;9009:10;9005:19;9002:1;8998:27;8992:4;8988:38;9057:4;9045:10;9042:20;9039:47;;;-1:-1:-1;9080:4:97;9039:47;9135:2;9130:3;9126:12;9123:1;9119:20;9113:4;9109:31;9099:41;;9190:82;9208:2;9201:5;9198:13;9190:82;;;9253:17;;;9234:1;9223:13;9190:82;;8836:446;8745:543;;;:::o;9524:1325::-;9648:18;9643:3;9640:27;9637:53;;;9670:18;;:::i;:::-;9699:94;9789:3;9749:38;9781:4;9775:11;9749:38;:::i;:::-;9743:4;9699:94;:::i;:::-;9819:1;9844:2;9839:3;9836:11;9861:1;9856:735;;;;10635:1;10652:3;10649:93;;;-1:-1:-1;10708:19:97;;;10695:33;10649:93;9430:66;9421:1;9417:11;;;9413:84;9409:89;9399:100;9505:1;9501:11;;;9396:117;10755:78;;9829:1014;;9856:735;8692:1;8685:14;;;8729:4;8716:18;;9901:66;9892:76;;;10052:9;10074:229;10088:7;10085:1;10082:14;10074:229;;;10177:19;;;10164:33;10149:49;;10284:4;10269:20;;;;10237:1;10225:14;;;;10104:12;10074:229;;;10078:3;10331;10322:7;10319:16;10316:219;;;10451:66;10445:3;10439;10436:1;10432:11;10428:21;10424:94;10420:99;10407:9;10402:3;10398:19;10385:33;10381:139;10373:6;10366:155;10316:219;;;10578:1;10572:3;10569:1;10565:11;10561:19;10555:4;10548:33;9829:1014;;9524:1325;;;:::o;12087:372::-;12246:66;12208:19;;12330:11;;;;12361:2;12353:11;;12350:103;;;12440:2;12434;12427:3;12423:2;12419:12;12416:1;12412:20;12408:29;12404:2;12400:38;12396:47;12387:56;;12350:103;;;12087:372;;;;:::o;12869:529::-;13064:6;13056;13052:19;13041:9;13034:38;13108:2;13103;13092:9;13088:18;13081:30;13147:6;13142:2;13131:9;13127:18;13120:34;13204:6;13196;13191:2;13180:9;13176:18;13163:48;13260:1;13231:22;;;13255:2;13227:31;;;13220:42;;;;13314:2;13302:15;;;13319:66;13298:88;13283:104;13279:113;;12869:529;-1:-1:-1;;12869:529:97:o"},"gasEstimates":{"creation":{"codeDepositCost":"1365600","executionCost":"infinite","totalCost":"infinite"},"external":{"":"infinite","OMNICHAIN_GOVERNANCE_EXECUTOR()":"infinite","acceptOwnership()":"infinite","accessControlManager()":"2329","functionRegistry(bytes4)":"infinite","initialize(address)":"infinite","owner()":"2352","pendingOwner()":"2373","renounceOwnership()":"187","setAccessControlManager(address)":"28087","setTrustedRemoteAddress(uint16,bytes)":"infinite","transferBridgeOwnership(address)":"infinite","transferOwnership(address)":"30393","upsertSignature(string[],bool[])":"infinite"}},"methodIdentifiers":{"OMNICHAIN_GOVERNANCE_EXECUTOR()":"5f21f75e","acceptOwnership()":"79ba5097","accessControlManager()":"b4a0bdf3","functionRegistry(bytes4)":"180d295c","initialize(address)":"c4d66de8","owner()":"8da5cb5b","pendingOwner()":"e30c3978","renounceOwnership()":"715018a6","setAccessControlManager(address)":"0e32cb86","setTrustedRemoteAddress(uint16,bytes)":"a6c3d165","transferBridgeOwnership(address)":"3f90b540","transferOwnership(address)":"f2fde38b","upsertSignature(string[],bool[])":"4bb7453e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"omnichainGovernanceExecutor_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"calledContract\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"methodSignature\",\"type\":\"string\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"}],\"name\":\"FunctionRegistryChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldAccessControlManager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAccessControlManager\",\"type\":\"address\"}],\"name\":\"NewAccessControlManager\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"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\"},{\"stateMutability\":\"nonpayable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"OMNICHAIN_GOVERNANCE_EXECUTOR\",\"outputs\":[{\"internalType\":\"contract IOmnichainGovernanceExecutor\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"accessControlManager\",\"outputs\":[{\"internalType\":\"contract IAccessControlManagerV8\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"name\":\"functionRegistry\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessControlManager_\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessControlManager_\",\"type\":\"address\"}],\"name\":\"setAccessControlManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"srcChainId_\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"srcAddress_\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemoteAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner_\",\"type\":\"address\"}],\"name\":\"transferBridgeOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"signatures_\",\"type\":\"string[]\"},{\"internalType\":\"bool[]\",\"name\":\"active_\",\"type\":\"bool[]\"}],\"name\":\"upsertSignature\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"custom:security-contact\":\"https://github.com/VenusProtocol/governance-contracts#discussion\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"initialize(address)\":{\"params\":{\"accessControlManager_\":\"Address of access control manager\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"setAccessControlManager(address)\":{\"custom:access\":\"Only Governance\",\"custom:event\":\"Emits NewAccessControlManager event\",\"details\":\"Admin function to set address of AccessControlManager\",\"params\":{\"accessControlManager_\":\"The new address of the AccessControlManager\"}},\"setTrustedRemoteAddress(uint16,bytes)\":{\"custom:access\":\"Controlled by AccessControlManager\",\"custom:event\":\"Emits SetTrustedRemoteAddress with source chain Id and source address\",\"params\":{\"srcAddress_\":\"The address of the contract on the source chain\",\"srcChainId_\":\"The LayerZero id of a source chain\"}},\"transferBridgeOwnership(address)\":{\"custom:access\":\"Controlled by AccessControlManager\",\"params\":{\"newOwner_\":\"New owner of the governanceExecutor\"}},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.\"},\"upsertSignature(string[],bool[])\":{\"custom:access\":\"Only owner\",\"params\":{\"active_\":\"bool value, should be true to add function\",\"signatures_\":\"Function signature to be added or removed\"}}},\"stateVariables\":{\"OMNICHAIN_GOVERNANCE_EXECUTOR\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"}},\"title\":\"OmnichainExecutorOwner\",\"version\":1},\"userdoc\":{\"errors\":{\"Unauthorized(address,address,string)\":[{\"notice\":\"Thrown when the action is prohibited by AccessControlManager\"}],\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}]},\"events\":{\"FunctionRegistryChanged(string,bool)\":{\"notice\":\"Event emitted when function registry updated\"},\"NewAccessControlManager(address,address)\":{\"notice\":\"Emitted when access control manager contract address is changed\"}},\"kind\":\"user\",\"methods\":{\"accessControlManager()\":{\"notice\":\"Returns the address of the access control manager contract\"},\"functionRegistry(bytes4)\":{\"notice\":\"Stores function signature corresponding to their 4 bytes hash value\"},\"initialize(address)\":{\"notice\":\"Initialize the contract\"},\"renounceOwnership()\":{\"notice\":\"Empty implementation of renounce ownership to avoid any mishappening\"},\"setAccessControlManager(address)\":{\"notice\":\"Sets the address of AccessControlManager\"},\"setTrustedRemoteAddress(uint16,bytes)\":{\"notice\":\"Sets the source message sender address\"},\"transferBridgeOwnership(address)\":{\"notice\":\"This function transfer the ownership of the executor from this contract to new owner\"},\"upsertSignature(string[],bool[])\":{\"notice\":\"A registry of functions that are allowed to be executed from proposals\"}},\"notice\":\"OmnichainProposalSender contract acts as a governance and access control mechanism, allowing owner to upsert signature of OmnichainGovernanceExecutor contract, also contains function to transfer the ownership of contract as well.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Cross-chain/OmnichainExecutorOwner.sol\":\"OmnichainExecutorOwner\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (access/Ownable2Step.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./OwnableUpgradeable.sol\\\";\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership} and {acceptOwnership}.\\n *\\n * This module is used through inheritance. It will make available all functions\\n * from parent (Ownable).\\n */\\nabstract contract Ownable2StepUpgradeable is Initializable, OwnableUpgradeable {\\n    function __Ownable2Step_init() internal onlyInitializing {\\n        __Ownable_init_unchained();\\n    }\\n\\n    function __Ownable2Step_init_unchained() internal onlyInitializing {\\n    }\\n    address private _pendingOwner;\\n\\n    event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Returns the address of the pending owner.\\n     */\\n    function pendingOwner() public view virtual returns (address) {\\n        return _pendingOwner;\\n    }\\n\\n    /**\\n     * @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual override onlyOwner {\\n        _pendingOwner = newOwner;\\n        emit OwnershipTransferStarted(owner(), newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual override {\\n        delete _pendingOwner;\\n        super._transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev The new owner accepts the ownership transfer.\\n     */\\n    function acceptOwnership() external {\\n        address sender = _msgSender();\\n        require(pendingOwner() == sender, \\\"Ownable2Step: caller is not the new owner\\\");\\n        _transferOwnership(sender);\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0xd712fb45b3ea0ab49679164e3895037adc26ce12879d5184feb040e01c1c07a9\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/ContextUpgradeable.sol\\\";\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract OwnableUpgradeable is Initializable, ContextUpgradeable {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    function __Ownable_init() internal onlyInitializing {\\n        __Ownable_init_unchained();\\n    }\\n\\n    function __Ownable_init_unchained() internal onlyInitializing {\\n        _transferOwnership(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        _checkOwner();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if the sender is not the owner.\\n     */\\n    function _checkOwner() internal view virtual {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions anymore. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby removing any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.1) (proxy/utils/Initializable.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../../utils/AddressUpgradeable.sol\\\";\\n\\n/**\\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\\n *\\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\\n * reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in\\n * case an upgrade adds a module that needs to be initialized.\\n *\\n * For example:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * contract MyToken is ERC20Upgradeable {\\n *     function initialize() initializer public {\\n *         __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\");\\n *     }\\n * }\\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\\n *     function initializeV2() reinitializer(2) public {\\n *         __ERC20Permit_init(\\\"MyToken\\\");\\n *     }\\n * }\\n * ```\\n *\\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\\n *\\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\\n *\\n * [CAUTION]\\n * ====\\n * Avoid leaving a contract uninitialized.\\n *\\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * /// @custom:oz-upgrades-unsafe-allow constructor\\n * constructor() {\\n *     _disableInitializers();\\n * }\\n * ```\\n * ====\\n */\\nabstract contract Initializable {\\n    /**\\n     * @dev Indicates that the contract has been initialized.\\n     * @custom:oz-retyped-from bool\\n     */\\n    uint8 private _initialized;\\n\\n    /**\\n     * @dev Indicates that the contract is in the process of being initialized.\\n     */\\n    bool private _initializing;\\n\\n    /**\\n     * @dev Triggered when the contract has been initialized or reinitialized.\\n     */\\n    event Initialized(uint8 version);\\n\\n    /**\\n     * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\\n     * `onlyInitializing` functions can be used to initialize parent contracts.\\n     *\\n     * Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\\n     * constructor.\\n     *\\n     * Emits an {Initialized} event.\\n     */\\n    modifier initializer() {\\n        bool isTopLevelCall = !_initializing;\\n        require(\\n            (isTopLevelCall && _initialized < 1) || (!AddressUpgradeable.isContract(address(this)) && _initialized == 1),\\n            \\\"Initializable: contract is already initialized\\\"\\n        );\\n        _initialized = 1;\\n        if (isTopLevelCall) {\\n            _initializing = true;\\n        }\\n        _;\\n        if (isTopLevelCall) {\\n            _initializing = false;\\n            emit Initialized(1);\\n        }\\n    }\\n\\n    /**\\n     * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\\n     * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\\n     * used to initialize parent contracts.\\n     *\\n     * A reinitializer may be used after the original initialization step. This is essential to configure modules that\\n     * are added through upgrades and that require initialization.\\n     *\\n     * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\\n     * cannot be nested. If one is invoked in the context of another, execution will revert.\\n     *\\n     * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\\n     * a contract, executing them in the right order is up to the developer or operator.\\n     *\\n     * WARNING: setting the version to 255 will prevent any future reinitialization.\\n     *\\n     * Emits an {Initialized} event.\\n     */\\n    modifier reinitializer(uint8 version) {\\n        require(!_initializing && _initialized < version, \\\"Initializable: contract is already initialized\\\");\\n        _initialized = version;\\n        _initializing = true;\\n        _;\\n        _initializing = false;\\n        emit Initialized(version);\\n    }\\n\\n    /**\\n     * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\\n     * {initializer} and {reinitializer} modifiers, directly or indirectly.\\n     */\\n    modifier onlyInitializing() {\\n        require(_initializing, \\\"Initializable: contract is not initializing\\\");\\n        _;\\n    }\\n\\n    /**\\n     * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\\n     * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\\n     * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\\n     * through proxies.\\n     *\\n     * Emits an {Initialized} event the first time it is successfully executed.\\n     */\\n    function _disableInitializers() internal virtual {\\n        require(!_initializing, \\\"Initializable: contract is initializing\\\");\\n        if (_initialized < type(uint8).max) {\\n            _initialized = type(uint8).max;\\n            emit Initialized(type(uint8).max);\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns the highest version that has been initialized. See {reinitializer}.\\n     */\\n    function _getInitializedVersion() internal view returns (uint8) {\\n        return _initialized;\\n    }\\n\\n    /**\\n     * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.\\n     */\\n    function _isInitializing() internal view returns (bool) {\\n        return _initializing;\\n    }\\n}\\n\",\"keccak256\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary AddressUpgradeable {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\n     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\n     *\\n     * _Available since v4.8._\\n     */\\n    function verifyCallResultFromTarget(\\n        address target,\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        if (success) {\\n            if (returndata.length == 0) {\\n                // only check isContract if the call was successful and the return data is empty\\n                // otherwise we already know that it was a contract\\n                require(isContract(target), \\\"Address: call to non-contract\\\");\\n            }\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason or using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    function _revert(bytes memory returndata, string memory errorMessage) private pure {\\n        // Look for revert reason and bubble it up if present\\n        if (returndata.length > 0) {\\n            // The easiest way to bubble the revert reason is using memory via assembly\\n            /// @solidity memory-safe-assembly\\n            assembly {\\n                let returndata_size := mload(returndata)\\n                revert(add(32, returndata), returndata_size)\\n            }\\n        } else {\\n            revert(errorMessage);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract ContextUpgradeable is Initializable {\\n    function __Context_init() internal onlyInitializing {\\n    }\\n\\n    function __Context_init_unchained() internal onlyInitializing {\\n    }\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[50] private __gap;\\n}\\n\",\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"@venusprotocol/solidity-utilities/contracts/validators.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\n/// @notice Thrown if the supplied address is a zero address where it is not allowed\\nerror ZeroAddressNotAllowed();\\n\\n/// @notice Thrown if the supplied value is 0 where it is not allowed\\nerror ZeroValueNotAllowed();\\n\\n/// @notice Checks if the provided address is nonzero, reverts otherwise\\n/// @param address_ Address to check\\n/// @custom:error ZeroAddressNotAllowed is thrown if the provided address is a zero address\\nfunction ensureNonzeroAddress(address address_) pure {\\n    if (address_ == address(0)) {\\n        revert ZeroAddressNotAllowed();\\n    }\\n}\\n\\n/// @notice Checks if the provided value is nonzero, reverts otherwise\\n/// @param value_ Value to check\\n/// @custom:error ZeroValueNotAllowed is thrown if the provided value is 0\\nfunction ensureNonzeroValue(uint256 value_) pure {\\n    if (value_ == 0) {\\n        revert ZeroValueNotAllowed();\\n    }\\n}\\n\",\"keccak256\":\"0xdb88e14d50dd21889ca3329d755673d022c47e8da005b6a545c7f69c2c4b7b86\",\"license\":\"BSD-3-Clause\"},\"contracts/Cross-chain/OmnichainExecutorOwner.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { AccessControlledV8 } from \\\"../Governance/AccessControlledV8.sol\\\";\\nimport { IOmnichainGovernanceExecutor } from \\\"./interfaces/IOmnichainGovernanceExecutor.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\n\\n/**\\n * @title OmnichainExecutorOwner\\n * @author Venus\\n * @notice OmnichainProposalSender contract acts as a governance and access control mechanism,\\n * allowing owner to upsert signature of OmnichainGovernanceExecutor contract,\\n * also contains function to transfer the ownership of contract as well.\\n * @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion\\n */\\n\\ncontract OmnichainExecutorOwner is AccessControlledV8 {\\n    /**\\n     *  @custom:oz-upgrades-unsafe-allow state-variable-immutable\\n     */\\n    IOmnichainGovernanceExecutor public immutable OMNICHAIN_GOVERNANCE_EXECUTOR;\\n\\n    /**\\n     * @notice Stores function signature corresponding to their 4 bytes hash value\\n     */\\n    mapping(bytes4 => string) public functionRegistry;\\n\\n    /**\\n     * @notice Event emitted when function registry updated\\n     */\\n    event FunctionRegistryChanged(string indexed signature, bool active);\\n\\n    /// @custom:oz-upgrades-unsafe-allow constructor\\n    constructor(address omnichainGovernanceExecutor_) {\\n        require(omnichainGovernanceExecutor_ != address(0), \\\"Address must not be zero\\\");\\n        OMNICHAIN_GOVERNANCE_EXECUTOR = IOmnichainGovernanceExecutor(omnichainGovernanceExecutor_);\\n        _disableInitializers();\\n    }\\n\\n    /**\\n     * @notice Initialize the contract\\n     * @param accessControlManager_  Address of access control manager\\n     */\\n    function initialize(address accessControlManager_) external initializer {\\n        require(accessControlManager_ != address(0), \\\"Address must not be zero\\\");\\n        __AccessControlled_init(accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Sets the source message sender address\\n     * @param srcChainId_ The LayerZero id of a source chain\\n     * @param srcAddress_ The address of the contract on the source chain\\n     * @custom:access Controlled by AccessControlManager\\n     * @custom:event Emits SetTrustedRemoteAddress with source chain Id and source address\\n     */\\n    function setTrustedRemoteAddress(uint16 srcChainId_, bytes calldata srcAddress_) external {\\n        _checkAccessAllowed(\\\"setTrustedRemoteAddress(uint16,bytes)\\\");\\n        require(srcChainId_ != 0, \\\"ChainId must not be zero\\\");\\n        ensureNonzeroAddress(address(uint160(bytes20(srcAddress_))));\\n        require(srcAddress_.length == 20, \\\"Source address must be 20 bytes long\\\");\\n        OMNICHAIN_GOVERNANCE_EXECUTOR.setTrustedRemoteAddress(srcChainId_, srcAddress_);\\n    }\\n\\n    /**\\n     * @notice Invoked when called function does not exist in the contract\\n     * @param data_ Calldata containing the encoded function call\\n     * @return Result of function call\\n     * @custom:access Controlled by Access Control Manager\\n     */\\n    fallback(bytes calldata data_) external returns (bytes memory) {\\n        string memory fun = functionRegistry[msg.sig];\\n        require(bytes(fun).length != 0, \\\"Function not found\\\");\\n        _checkAccessAllowed(fun);\\n        (bool ok, bytes memory res) = address(OMNICHAIN_GOVERNANCE_EXECUTOR).call(data_);\\n        require(ok, \\\"call failed\\\");\\n        return res;\\n    }\\n\\n    /**\\n     * @notice A registry of functions that are allowed to be executed from proposals\\n     * @param signatures_  Function signature to be added or removed\\n     * @param active_ bool value, should be true to add function\\n     * @custom:access Only owner\\n     */\\n    function upsertSignature(string[] calldata signatures_, bool[] calldata active_) external onlyOwner {\\n        uint256 signatureLength = signatures_.length;\\n        require(signatureLength == active_.length, \\\"Input arrays must have the same length\\\");\\n        for (uint256 i; i < signatureLength; ++i) {\\n            bytes4 sigHash = bytes4(keccak256(bytes(signatures_[i])));\\n            bytes memory signature = bytes(functionRegistry[sigHash]);\\n            if (active_[i] && signature.length == 0) {\\n                functionRegistry[sigHash] = signatures_[i];\\n                emit FunctionRegistryChanged(signatures_[i], true);\\n            } else if (!active_[i] && signature.length != 0) {\\n                delete functionRegistry[sigHash];\\n                emit FunctionRegistryChanged(signatures_[i], false);\\n            }\\n        }\\n    }\\n\\n    /**\\n     * @notice This function transfer the ownership of the executor from this contract to new owner\\n     * @param newOwner_ New owner of the governanceExecutor\\n     * @custom:access Controlled by AccessControlManager\\n     */\\n\\n    function transferBridgeOwnership(address newOwner_) external {\\n        _checkAccessAllowed(\\\"transferBridgeOwnership(address)\\\");\\n        require(newOwner_ != address(0), \\\"Address must not be zero\\\");\\n        OMNICHAIN_GOVERNANCE_EXECUTOR.transferOwnership(newOwner_);\\n    }\\n\\n    /**\\n     *  @notice Empty implementation of renounce ownership to avoid any mishappening\\n     */\\n    function renounceOwnership() public virtual override {}\\n}\\n\",\"keccak256\":\"0xc04fcc16654a57743f1b515fc61aeed0bfe67e456c72e5cce7ff613439133109\",\"license\":\"BSD-3-Clause\"},\"contracts/Cross-chain/interfaces/IOmnichainGovernanceExecutor.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.25;\\n\\ninterface IOmnichainGovernanceExecutor {\\n    /**\\n     * @notice Transfers ownership of the contract to the specified address\\n     * @param addr The address to which ownership will be transferred\\n     */\\n    function transferOwnership(address addr) external;\\n\\n    /**\\n     * @notice Sets the source message sender address\\n     * @param srcChainId_ The LayerZero id of a source chain\\n     * @param srcAddress_ The address of the contract on the source chain\\n     */\\n    function setTrustedRemoteAddress(uint16 srcChainId_, bytes calldata srcAddress_) external;\\n}\\n\",\"keccak256\":\"0xae3df89cc760968a190e3d723211a643c2aa49c54c0579a1e17db4fc27bf24cb\",\"license\":\"MIT\"},\"contracts/Governance/AccessControlledV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\\\";\\nimport \\\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\\\";\\n\\nimport \\\"./IAccessControlManagerV8.sol\\\";\\n\\n/**\\n * @title AccessControlledV8\\n * @author Venus\\n * @notice This contract is helper between access control manager and actual contract. This contract further inherited by other contract (using solidity 0.8.13)\\n * to integrate access controlled mechanism. It provides initialise methods and verifying access methods.\\n */\\nabstract contract AccessControlledV8 is Initializable, Ownable2StepUpgradeable {\\n    /// @notice Access control manager contract\\n    IAccessControlManagerV8 internal _accessControlManager;\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n\\n    /// @notice Emitted when access control manager contract address is changed\\n    event NewAccessControlManager(address oldAccessControlManager, address newAccessControlManager);\\n\\n    /// @notice Thrown when the action is prohibited by AccessControlManager\\n    error Unauthorized(address sender, address calledContract, string methodSignature);\\n\\n    function __AccessControlled_init(address accessControlManager_) internal onlyInitializing {\\n        __Ownable2Step_init();\\n        __AccessControlled_init_unchained(accessControlManager_);\\n    }\\n\\n    function __AccessControlled_init_unchained(address accessControlManager_) internal onlyInitializing {\\n        _setAccessControlManager(accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Sets the address of AccessControlManager\\n     * @dev Admin function to set address of AccessControlManager\\n     * @param accessControlManager_ The new address of the AccessControlManager\\n     * @custom:event Emits NewAccessControlManager event\\n     * @custom:access Only Governance\\n     */\\n    function setAccessControlManager(address accessControlManager_) external onlyOwner {\\n        _setAccessControlManager(accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Returns the address of the access control manager contract\\n     */\\n    function accessControlManager() external view returns (IAccessControlManagerV8) {\\n        return _accessControlManager;\\n    }\\n\\n    /**\\n     * @dev Internal function to set address of AccessControlManager\\n     * @param accessControlManager_ The new address of the AccessControlManager\\n     */\\n    function _setAccessControlManager(address accessControlManager_) internal {\\n        require(address(accessControlManager_) != address(0), \\\"invalid acess control manager address\\\");\\n        address oldAccessControlManager = address(_accessControlManager);\\n        _accessControlManager = IAccessControlManagerV8(accessControlManager_);\\n        emit NewAccessControlManager(oldAccessControlManager, accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Reverts if the call is not allowed by AccessControlManager\\n     * @param signature Method signature\\n     */\\n    function _checkAccessAllowed(string memory signature) internal view {\\n        bool isAllowedToCall = _accessControlManager.isAllowedToCall(msg.sender, signature);\\n\\n        if (!isAllowedToCall) {\\n            revert Unauthorized(msg.sender, address(this), signature);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xe7f5f96c70fb32912ecc0032f81f7876607353413fe7f723d41d260ac9c26a06\",\"license\":\"BSD-3-Clause\"},\"contracts/Governance/IAccessControlManagerV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/access/IAccessControl.sol\\\";\\n\\n/**\\n * @title IAccessControlManagerV8\\n * @author Venus\\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\\n */\\ninterface IAccessControlManagerV8 is IAccessControl {\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\\n\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) external;\\n\\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\\n\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xaa29b098440d0b3a131c5ecdf25ce548790c1b5ac7bf9b5c0264b6af6f7a1e0b\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":6086,"contract":"contracts/Cross-chain/OmnichainExecutorOwner.sol:OmnichainExecutorOwner","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":6089,"contract":"contracts/Cross-chain/OmnichainExecutorOwner.sol:OmnichainExecutorOwner","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":6573,"contract":"contracts/Cross-chain/OmnichainExecutorOwner.sol:OmnichainExecutorOwner","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":5958,"contract":"contracts/Cross-chain/OmnichainExecutorOwner.sol:OmnichainExecutorOwner","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":6078,"contract":"contracts/Cross-chain/OmnichainExecutorOwner.sol:OmnichainExecutorOwner","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":5867,"contract":"contracts/Cross-chain/OmnichainExecutorOwner.sol:OmnichainExecutorOwner","label":"_pendingOwner","offset":0,"slot":"101","type":"t_address"},{"astId":5946,"contract":"contracts/Cross-chain/OmnichainExecutorOwner.sol:OmnichainExecutorOwner","label":"__gap","offset":0,"slot":"102","type":"t_array(t_uint256)49_storage"},{"astId":13718,"contract":"contracts/Cross-chain/OmnichainExecutorOwner.sol:OmnichainExecutorOwner","label":"_accessControlManager","offset":0,"slot":"151","type":"t_contract(IAccessControlManagerV8)13903"},{"astId":13723,"contract":"contracts/Cross-chain/OmnichainExecutorOwner.sol:OmnichainExecutorOwner","label":"__gap","offset":0,"slot":"152","type":"t_array(t_uint256)49_storage"},{"astId":11401,"contract":"contracts/Cross-chain/OmnichainExecutorOwner.sol:OmnichainExecutorOwner","label":"functionRegistry","offset":0,"slot":"201","type":"t_mapping(t_bytes4,t_string_storage)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes4":{"encoding":"inplace","label":"bytes4","numberOfBytes":"4"},"t_contract(IAccessControlManagerV8)13903":{"encoding":"inplace","label":"contract IAccessControlManagerV8","numberOfBytes":"20"},"t_mapping(t_bytes4,t_string_storage)":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => string)","numberOfBytes":"32","value":"t_string_storage"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"errors":{"Unauthorized(address,address,string)":[{"notice":"Thrown when the action is prohibited by AccessControlManager"}],"ZeroAddressNotAllowed()":[{"notice":"Thrown if the supplied address is a zero address where it is not allowed"}]},"events":{"FunctionRegistryChanged(string,bool)":{"notice":"Event emitted when function registry updated"},"NewAccessControlManager(address,address)":{"notice":"Emitted when access control manager contract address is changed"}},"kind":"user","methods":{"accessControlManager()":{"notice":"Returns the address of the access control manager contract"},"functionRegistry(bytes4)":{"notice":"Stores function signature corresponding to their 4 bytes hash value"},"initialize(address)":{"notice":"Initialize the contract"},"renounceOwnership()":{"notice":"Empty implementation of renounce ownership to avoid any mishappening"},"setAccessControlManager(address)":{"notice":"Sets the address of AccessControlManager"},"setTrustedRemoteAddress(uint16,bytes)":{"notice":"Sets the source message sender address"},"transferBridgeOwnership(address)":{"notice":"This function transfer the ownership of the executor from this contract to new owner"},"upsertSignature(string[],bool[])":{"notice":"A registry of functions that are allowed to be executed from proposals"}},"notice":"OmnichainProposalSender contract acts as a governance and access control mechanism, allowing owner to upsert signature of OmnichainGovernanceExecutor contract, also contains function to transfer the ownership of contract as well.","version":1}}},"contracts/Cross-chain/OmnichainGovernanceExecutor.sol":{"OmnichainGovernanceExecutor":{"abi":[{"inputs":[{"internalType":"address","name":"endpoint_","type":"address"},{"internalType":"address","name":"guardian_","type":"address"},{"internalType":"uint16","name":"srcChainId_","type":"uint16"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidProposalId","type":"error"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"_nonce","type":"uint64"},{"indexed":false,"internalType":"bytes","name":"_payload","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"_reason","type":"bytes"}],"name":"MessageFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldGuardian","type":"address"},{"indexed":true,"internalType":"address","name":"newGuardian","type":"address"}],"name":"NewGuardian","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":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"ProposalCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"ProposalExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"eta","type":"uint256"}],"name":"ProposalQueued","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"targets","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"},{"indexed":false,"internalType":"string[]","name":"signatures","type":"string[]"},{"indexed":false,"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"indexed":false,"internalType":"uint8","name":"proposalType","type":"uint8"}],"name":"ProposalReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint16","name":"srcChainId","type":"uint16"},{"indexed":true,"internalType":"bytes","name":"srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"nonce","type":"uint64"},{"indexed":false,"internalType":"bytes","name":"reason","type":"bytes"}],"name":"ReceivePayloadFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"_nonce","type":"uint64"},{"indexed":false,"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"name":"RetryMessageSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldMaxLimit","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newMaxLimit","type":"uint256"}],"name":"SetMaxDailyReceiveLimit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"_type","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"_minDstGas","type":"uint256"}],"name":"SetMinDstGas","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"precrime","type":"address"}],"name":"SetPrecrime","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint16","name":"oldSrcChainId","type":"uint16"},{"indexed":true,"internalType":"uint16","name":"newSrcChainId","type":"uint16"}],"name":"SetSrcChainId","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"","type":"address"},{"indexed":false,"internalType":"uint8","name":"","type":"uint8"}],"name":"SetTimelockPendingAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_path","type":"bytes"}],"name":"SetTrustedRemote","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_remoteAddress","type":"bytes"}],"name":"SetTrustedRemoteAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"routeType","type":"uint8"},{"indexed":true,"internalType":"address","name":"oldTimelock","type":"address"},{"indexed":true,"internalType":"address","name":"newTimelock","type":"address"}],"name":"TimelockAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"DEFAULT_PAYLOAD_SIZE_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract ITimelock[]","name":"timelocks_","type":"address[]"}],"name":"addTimelocks","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId_","type":"uint256"}],"name":"cancel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId_","type":"uint256"}],"name":"execute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"uint64","name":"","type":"uint64"}],"name":"failedMessages","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"forceResumeReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"_configType","type":"uint256"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"}],"name":"getTrustedRemoteAddress","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"guardian","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"isTrustedRemote","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"last24HourCommandsReceived","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"last24HourReceiveWindowStart","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastProposalReceived","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lzEndpoint","outputs":[{"internalType":"contract ILayerZeroEndpoint","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"lzReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxDailyReceiveLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"}],"name":"minDstGasLookup","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"nonblockingLzReceive","outputs":[],"stateMutability":"nonpayable","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":"uint16","name":"","type":"uint16"}],"name":"payloadSizeLimitLookup","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"precrime","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"proposalTimelocks","outputs":[{"internalType":"contract ITimelock","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"proposals","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"eta","type":"uint256"},{"internalType":"bool","name":"canceled","type":"bool"},{"internalType":"bool","name":"executed","type":"bool"},{"internalType":"uint8","name":"proposalType","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"queued","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"srcChainId_","type":"uint16"},{"internalType":"bytes","name":"srcAddress_","type":"bytes"},{"internalType":"uint64","name":"nonce_","type":"uint64"},{"internalType":"bytes","name":"payload_","type":"bytes"}],"name":"retryMessage","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"uint256","name":"_configType","type":"uint256"},{"internalType":"bytes","name":"_config","type":"bytes"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newGuardian","type":"address"}],"name":"setGuardian","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"limit_","type":"uint256"}],"name":"setMaxDailyReceiveLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"uint16","name":"_packetType","type":"uint16"},{"internalType":"uint256","name":"_minGas","type":"uint256"}],"name":"setMinDstGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"uint256","name":"_size","type":"uint256"}],"name":"setPayloadSizeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_precrime","type":"address"}],"name":"setPrecrime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setReceiveVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setSendVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"srcChainId_","type":"uint16"}],"name":"setSrcChainId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingAdmin_","type":"address"},{"internalType":"uint8","name":"proposalType_","type":"uint8"}],"name":"setTimelockPendingAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"}],"name":"setTrustedRemote","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"internalType":"bytes","name":"_remoteAddress","type":"bytes"}],"name":"setTrustedRemoteAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"srcChainId","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId_","type":"uint256"}],"name":"state","outputs":[{"internalType":"enum OmnichainGovernanceExecutor.ProposalState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"trustedRemoteLookup","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"custom:security-contact":"https://github.com/VenusProtocol/governance-contracts#discussion","details":"The owner of this contract controls LayerZero configuration. When used in production the owner will be OmnichainExecutor This implementation is non-blocking, meaning the failed messages will not block the future messages from the source. For the blocking behavior, derive the contract from LzApp.","events":{"Paused(address)":{"details":"Emitted when the pause is triggered by `account`."},"Unpaused(address)":{"details":"Emitted when the pause is lifted by `account`."}},"kind":"dev","methods":{"addTimelocks(address[])":{"custom:access":"Only owner","custom:event":"Emits TimelockAdded with old and new timelock and route type","params":{"timelocks_":"Array of addresses of all 3 timelocks"}},"cancel(uint256)":{"custom:access":"Sender must be the guardian","custom:event":"Emits ProposalCanceled with proposal id of the canceled proposal","params":{"proposalId_":"Id of proposal that is to be canceled"}},"execute(uint256)":{"custom:event":"Emits ProposalExecuted with proposal id of executed proposal","params":{"proposalId_":"Id of proposal that is to be executed"}},"owner()":{"details":"Returns the address of the current owner."},"pause()":{"custom:access":"Only owner"},"paused()":{"details":"Returns true if the contract is paused, and false otherwise."},"retryMessage(uint16,bytes,uint64,bytes)":{"custom:access":"Only owner","params":{"nonce_":"Nonce to identify failed message","payload_":"The payload of the message to be retried","srcAddress_":"Source address => local app address + remote app address","srcChainId_":"Source chain Id"}},"setGuardian(address)":{"custom:access":"Must be call by guardian or owner","custom:event":"Emit NewGuardian with old and new guardian address","params":{"newGuardian":"The address of the new guardian"}},"setMaxDailyReceiveLimit(uint256)":{"custom:access":"Only Owner","custom:event":"Emits SetMaxDailyReceiveLimit with old and new limit","params":{"limit_":"Number of commands"}},"setSrcChainId(uint16)":{"custom:access":"Only owner","custom:event":"Emit SetSrcChainId with old and new source id","params":{"srcChainId_":"The new source chain id to be set"}},"setTimelockPendingAdmin(address,uint8)":{"custom:access":"Only owner","custom:event":"Emits SetTimelockPendingAdmin with new pending admin and proposal type","params":{"pendingAdmin_":"Address of new pending admin","proposalType_":"Type of proposal"}},"state(uint256)":{"params":{"proposalId_":"The id of the proposal"},"returns":{"_0":"Proposal state"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"unpause()":{"custom:access":"Only owner"}},"title":"OmnichainGovernanceExecutor","version":1},"evm":{"bytecode":{"functionDebugData":{"@_11036":{"entryPoint":null,"id":11036,"parameterSlots":1,"returnSlots":0},"@_11893":{"entryPoint":null,"id":11893,"parameterSlots":3,"returnSlots":0},"@_3399":{"entryPoint":null,"id":3399,"parameterSlots":1,"returnSlots":0},"@_3885":{"entryPoint":null,"id":3885,"parameterSlots":1,"returnSlots":0},"@_6987":{"entryPoint":null,"id":6987,"parameterSlots":0,"returnSlots":0},"@_7103":{"entryPoint":null,"id":7103,"parameterSlots":0,"returnSlots":0},"@_7203":{"entryPoint":null,"id":7203,"parameterSlots":0,"returnSlots":0},"@_msgSender_8081":{"entryPoint":null,"id":8081,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_7075":{"entryPoint":158,"id":7075,"parameterSlots":1,"returnSlots":0},"@ensureNonzeroAddress_10945":{"entryPoint":240,"id":10945,"parameterSlots":1,"returnSlots":0},"abi_decode_address_fromMemory":{"entryPoint":282,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_uint16_fromMemory":{"entryPoint":310,"id":null,"parameterSlots":2,"returnSlots":3}},"generatedSources":[{"ast":{"nativeSrc":"0:644:97","nodeType":"YulBlock","src":"0:644:97","statements":[{"nativeSrc":"6:3:97","nodeType":"YulBlock","src":"6:3:97","statements":[]},{"body":{"nativeSrc":"74:117:97","nodeType":"YulBlock","src":"74:117:97","statements":[{"nativeSrc":"84:22:97","nodeType":"YulAssignment","src":"84:22:97","value":{"arguments":[{"name":"offset","nativeSrc":"99:6:97","nodeType":"YulIdentifier","src":"99:6:97"}],"functionName":{"name":"mload","nativeSrc":"93:5:97","nodeType":"YulIdentifier","src":"93:5:97"},"nativeSrc":"93:13:97","nodeType":"YulFunctionCall","src":"93:13:97"},"variableNames":[{"name":"value","nativeSrc":"84:5:97","nodeType":"YulIdentifier","src":"84:5:97"}]},{"body":{"nativeSrc":"169:16:97","nodeType":"YulBlock","src":"169:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"178:1:97","nodeType":"YulLiteral","src":"178:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"181:1:97","nodeType":"YulLiteral","src":"181:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"171:6:97","nodeType":"YulIdentifier","src":"171:6:97"},"nativeSrc":"171:12:97","nodeType":"YulFunctionCall","src":"171:12:97"},"nativeSrc":"171:12:97","nodeType":"YulExpressionStatement","src":"171:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"128:5:97","nodeType":"YulIdentifier","src":"128:5:97"},{"arguments":[{"name":"value","nativeSrc":"139:5:97","nodeType":"YulIdentifier","src":"139:5:97"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"154:3:97","nodeType":"YulLiteral","src":"154:3:97","type":"","value":"160"},{"kind":"number","nativeSrc":"159:1:97","nodeType":"YulLiteral","src":"159:1:97","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"150:3:97","nodeType":"YulIdentifier","src":"150:3:97"},"nativeSrc":"150:11:97","nodeType":"YulFunctionCall","src":"150:11:97"},{"kind":"number","nativeSrc":"163:1:97","nodeType":"YulLiteral","src":"163:1:97","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"146:3:97","nodeType":"YulIdentifier","src":"146:3:97"},"nativeSrc":"146:19:97","nodeType":"YulFunctionCall","src":"146:19:97"}],"functionName":{"name":"and","nativeSrc":"135:3:97","nodeType":"YulIdentifier","src":"135:3:97"},"nativeSrc":"135:31:97","nodeType":"YulFunctionCall","src":"135:31:97"}],"functionName":{"name":"eq","nativeSrc":"125:2:97","nodeType":"YulIdentifier","src":"125:2:97"},"nativeSrc":"125:42:97","nodeType":"YulFunctionCall","src":"125:42:97"}],"functionName":{"name":"iszero","nativeSrc":"118:6:97","nodeType":"YulIdentifier","src":"118:6:97"},"nativeSrc":"118:50:97","nodeType":"YulFunctionCall","src":"118:50:97"},"nativeSrc":"115:70:97","nodeType":"YulIf","src":"115:70:97"}]},"name":"abi_decode_address_fromMemory","nativeSrc":"14:177:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"53:6:97","nodeType":"YulTypedName","src":"53:6:97","type":""}],"returnVariables":[{"name":"value","nativeSrc":"64:5:97","nodeType":"YulTypedName","src":"64:5:97","type":""}],"src":"14:177:97"},{"body":{"nativeSrc":"310:332:97","nodeType":"YulBlock","src":"310:332:97","statements":[{"body":{"nativeSrc":"356:16:97","nodeType":"YulBlock","src":"356:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"365:1:97","nodeType":"YulLiteral","src":"365:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"368:1:97","nodeType":"YulLiteral","src":"368:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"358:6:97","nodeType":"YulIdentifier","src":"358:6:97"},"nativeSrc":"358:12:97","nodeType":"YulFunctionCall","src":"358:12:97"},"nativeSrc":"358:12:97","nodeType":"YulExpressionStatement","src":"358:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"331:7:97","nodeType":"YulIdentifier","src":"331:7:97"},{"name":"headStart","nativeSrc":"340:9:97","nodeType":"YulIdentifier","src":"340:9:97"}],"functionName":{"name":"sub","nativeSrc":"327:3:97","nodeType":"YulIdentifier","src":"327:3:97"},"nativeSrc":"327:23:97","nodeType":"YulFunctionCall","src":"327:23:97"},{"kind":"number","nativeSrc":"352:2:97","nodeType":"YulLiteral","src":"352:2:97","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"323:3:97","nodeType":"YulIdentifier","src":"323:3:97"},"nativeSrc":"323:32:97","nodeType":"YulFunctionCall","src":"323:32:97"},"nativeSrc":"320:52:97","nodeType":"YulIf","src":"320:52:97"},{"nativeSrc":"381:50:97","nodeType":"YulAssignment","src":"381:50:97","value":{"arguments":[{"name":"headStart","nativeSrc":"421:9:97","nodeType":"YulIdentifier","src":"421:9:97"}],"functionName":{"name":"abi_decode_address_fromMemory","nativeSrc":"391:29:97","nodeType":"YulIdentifier","src":"391:29:97"},"nativeSrc":"391:40:97","nodeType":"YulFunctionCall","src":"391:40:97"},"variableNames":[{"name":"value0","nativeSrc":"381:6:97","nodeType":"YulIdentifier","src":"381:6:97"}]},{"nativeSrc":"440:59:97","nodeType":"YulAssignment","src":"440:59:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"484:9:97","nodeType":"YulIdentifier","src":"484:9:97"},{"kind":"number","nativeSrc":"495:2:97","nodeType":"YulLiteral","src":"495:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"480:3:97","nodeType":"YulIdentifier","src":"480:3:97"},"nativeSrc":"480:18:97","nodeType":"YulFunctionCall","src":"480:18:97"}],"functionName":{"name":"abi_decode_address_fromMemory","nativeSrc":"450:29:97","nodeType":"YulIdentifier","src":"450:29:97"},"nativeSrc":"450:49:97","nodeType":"YulFunctionCall","src":"450:49:97"},"variableNames":[{"name":"value1","nativeSrc":"440:6:97","nodeType":"YulIdentifier","src":"440:6:97"}]},{"nativeSrc":"508:38:97","nodeType":"YulVariableDeclaration","src":"508:38:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"531:9:97","nodeType":"YulIdentifier","src":"531:9:97"},{"kind":"number","nativeSrc":"542:2:97","nodeType":"YulLiteral","src":"542:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"527:3:97","nodeType":"YulIdentifier","src":"527:3:97"},"nativeSrc":"527:18:97","nodeType":"YulFunctionCall","src":"527:18:97"}],"functionName":{"name":"mload","nativeSrc":"521:5:97","nodeType":"YulIdentifier","src":"521:5:97"},"nativeSrc":"521:25:97","nodeType":"YulFunctionCall","src":"521:25:97"},"variables":[{"name":"value","nativeSrc":"512:5:97","nodeType":"YulTypedName","src":"512:5:97","type":""}]},{"body":{"nativeSrc":"596:16:97","nodeType":"YulBlock","src":"596:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"605:1:97","nodeType":"YulLiteral","src":"605:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"608:1:97","nodeType":"YulLiteral","src":"608:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"598:6:97","nodeType":"YulIdentifier","src":"598:6:97"},"nativeSrc":"598:12:97","nodeType":"YulFunctionCall","src":"598:12:97"},"nativeSrc":"598:12:97","nodeType":"YulExpressionStatement","src":"598:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"568:5:97","nodeType":"YulIdentifier","src":"568:5:97"},{"arguments":[{"name":"value","nativeSrc":"579:5:97","nodeType":"YulIdentifier","src":"579:5:97"},{"kind":"number","nativeSrc":"586:6:97","nodeType":"YulLiteral","src":"586:6:97","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"575:3:97","nodeType":"YulIdentifier","src":"575:3:97"},"nativeSrc":"575:18:97","nodeType":"YulFunctionCall","src":"575:18:97"}],"functionName":{"name":"eq","nativeSrc":"565:2:97","nodeType":"YulIdentifier","src":"565:2:97"},"nativeSrc":"565:29:97","nodeType":"YulFunctionCall","src":"565:29:97"}],"functionName":{"name":"iszero","nativeSrc":"558:6:97","nodeType":"YulIdentifier","src":"558:6:97"},"nativeSrc":"558:37:97","nodeType":"YulFunctionCall","src":"558:37:97"},"nativeSrc":"555:57:97","nodeType":"YulIf","src":"555:57:97"},{"nativeSrc":"621:15:97","nodeType":"YulAssignment","src":"621:15:97","value":{"name":"value","nativeSrc":"631:5:97","nodeType":"YulIdentifier","src":"631:5:97"},"variableNames":[{"name":"value2","nativeSrc":"621:6:97","nodeType":"YulIdentifier","src":"621:6:97"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint16_fromMemory","nativeSrc":"196:446:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"260:9:97","nodeType":"YulTypedName","src":"260:9:97","type":""},{"name":"dataEnd","nativeSrc":"271:7:97","nodeType":"YulTypedName","src":"271:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"283:6:97","nodeType":"YulTypedName","src":"283:6:97","type":""},{"name":"value1","nativeSrc":"291:6:97","nodeType":"YulTypedName","src":"291:6:97","type":""},{"name":"value2","nativeSrc":"299:6:97","nodeType":"YulTypedName","src":"299:6:97","type":""}],"src":"196:446:97"}]},"contents":"{\n    { }\n    function abi_decode_address_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint16_fromMemory(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_address_fromMemory(headStart)\n        value1 := abi_decode_address_fromMemory(add(headStart, 32))\n        let value := mload(add(headStart, 64))\n        if iszero(eq(value, and(value, 0xffff))) { revert(0, 0) }\n        value2 := value\n    }\n}","id":97,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a060405234801561001057600080fd5b50604051614aa5380380614aa583398101604081905261002f91610136565b60016000558280806100403361009e565b6001600160a01b0316608052506007805460ff19169055610060816100f0565b5061006a826100f0565b600b805461ffff909216600160a01b026001600160b01b03199092166001600160a01b039093169290921717905550610184565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038116610117576040516342bcdf7f60e11b815260040160405180910390fd5b50565b80516001600160a01b038116811461013157600080fd5b919050565b60008060006060848603121561014b57600080fd5b6101548461011a565b92506101626020850161011a565b9150604084015161ffff8116811461017957600080fd5b809150509250925092565b6080516148dc6101c960003960008181610804015281816109d501528181610c6101528181610d2f01528181611232015281816118c70152611f7901526148dc6000f3fe6080604052600436106102f15760003560e01c8063876919e81161018f578063c4461834116100e1578063ed66039b1161008a578063f4fcfcca11610064578063f4fcfcca14610972578063f5ecbdbc14610992578063fe0d94c1146109b257600080fd5b8063ed66039b146108ef578063ee9799ee1461090f578063f2fde38b1461095257600080fd5b8063d1deba1f116100bb578063d1deba1f1461089c578063df2a5b3b146108af578063eb8d72b7146108cf57600080fd5b8063c446183414610846578063c8b42e5b1461085c578063cbed8b9c1461087c57600080fd5b8063950c8a7411610143578063a6c3d1651161011d578063a6c3d165146107d2578063b353aaa7146107f2578063baf3292d1461082657600080fd5b8063950c8a74146107555780639f0c3101146107825780639f38369a146107b257600080fd5b80638cfd8f5c116101745780638cfd8f5c146106d25780638da5cb5b1461070a5780639493ffad1461073557600080fd5b8063876919e81461069c5780638a0dac4a146106b257600080fd5b806342d65a8d116102485780635c975abb116101fc578063715018a6116101d6578063715018a61461064e5780637533d7881461065a5780638456cb591461068757600080fd5b80635c975abb1461060057806366ad5c8a1461061857806370f6ad9a1461063857600080fd5b8063452a93201161022d578063452a93201461051957806349d126051461056b5780635b8c41e6146105b157600080fd5b806342d65a8d146104e35780634406baaf1461050357600080fd5b806310ddb137116102aa5780633f1f4fa4116102845780633f1f4fa4146104815780633f4ba83a146104ae57806340e58ee5146104c357600080fd5b806310ddb137146104045780633d8b38f6146104245780633e4f49e61461045457600080fd5b80630435bb56116102db5780630435bb56146103a057806307e0db17146103c45780630df37483146103e457600080fd5b80621d3567146102f6578063013cf08b14610318575b600080fd5b34801561030257600080fd5b506103166103113660046137db565b6109d2565b005b34801561032457600080fd5b5061036a61033336600461386f565b600d6020526000908152604090208054600182015460069092015490919060ff808216916101008104821691620100009091041685565b60408051958652602086019490945291151592840192909252901515606083015260ff16608082015260a0015b60405180910390f35b3480156103ac57600080fd5b506103b660085481565b604051908152602001610397565b3480156103d057600080fd5b506103166103df366004613888565b610c27565b3480156103f057600080fd5b506103166103ff3660046138a3565b610cd6565b34801561041057600080fd5b5061031661041f366004613888565b610cf5565b34801561043057600080fd5b5061044461043f3660046138cd565b610d73565b6040519015158152602001610397565b34801561046057600080fd5b5061047461046f36600461386f565b610e40565b604051610397919061394f565b34801561048d57600080fd5b506103b661049c366004613888565b60046020526000908152604090205481565b3480156104ba57600080fd5b50610316610ed7565b3480156104cf57600080fd5b506103166104de36600461386f565b610ee9565b3480156104ef57600080fd5b506103166104fe3660046138cd565b6111ed565b34801561050f57600080fd5b506103b6600c5481565b34801561052557600080fd5b50600b546105469073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610397565b34801561057757600080fd5b50600b5461059e9074010000000000000000000000000000000000000000900461ffff1681565b60405161ffff9091168152602001610397565b3480156105bd57600080fd5b506103b66105cc366004613a18565b6006602090815260009384526040808520845180860184018051928152908401958401959095209452929052825290205481565b34801561060c57600080fd5b5060075460ff16610444565b34801561062457600080fd5b506103166106333660046137db565b611299565b34801561064457600080fd5b506103b660095481565b34801561031657600080fd5b34801561066657600080fd5b5061067a610675366004613888565b61138c565b6040516103979190613b09565b34801561069357600080fd5b50610316611426565b3480156106a857600080fd5b506103b6600a5481565b3480156106be57600080fd5b506103166106cd366004613b3e565b611436565b3480156106de57600080fd5b506103b66106ed366004613b5b565b600360209081526000928352604080842090915290825290205481565b34801561071657600080fd5b5060015473ffffffffffffffffffffffffffffffffffffffff16610546565b34801561074157600080fd5b5061031661075036600461386f565b61157e565b34801561076157600080fd5b506005546105469073ffffffffffffffffffffffffffffffffffffffff1681565b34801561078e57600080fd5b5061044461079d36600461386f565b600f6020526000908152604090205460ff1681565b3480156107be57600080fd5b5061067a6107cd366004613888565b6115c7565b3480156107de57600080fd5b506103166107ed3660046138cd565b6116d6565b3480156107fe57600080fd5b506105467f000000000000000000000000000000000000000000000000000000000000000081565b34801561083257600080fd5b50610316610841366004613b3e565b61175f565b34801561085257600080fd5b506103b661271081565b34801561086857600080fd5b50610316610877366004613888565b6117e0565b34801561088857600080fd5b50610316610897366004613b8e565b611882565b6103166108aa3660046137db565b61193d565b3480156108bb57600080fd5b506103166108ca366004613bfd565b611a19565b3480156108db57600080fd5b506103166108ea3660046138cd565b611a83565b3480156108fb57600080fd5b5061031661090a366004613c5d565b611add565b34801561091b57600080fd5b5061054661092a36600461386f565b600e6020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b34801561095e57600080fd5b5061031661096d366004613b3e565b611cf4565b34801561097e57600080fd5b5061031661098d366004613d06565b611d91565b34801561099e57600080fd5b5061067a6109ad366004613d3f565b611f2f565b3480156109be57600080fd5b506103166109cd36600461386f565b612006565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610a5c5760405162461bcd60e51b815260206004820152601e60248201527f4c7a4170703a20696e76616c696420656e64706f696e742063616c6c6572000060448201526064015b60405180910390fd5b61ffff861660009081526002602052604081208054610a7a90613d8c565b80601f0160208091040260200160405190810160405280929190818152602001828054610aa690613d8c565b8015610af35780601f10610ac857610100808354040283529160200191610af3565b820191906000526020600020905b815481529060010190602001808311610ad657829003601f168201915b50505050509050805186869050148015610b0e575060008151115b8015610b36575080516020820120604051610b2c9088908890613dd9565b6040518091039020145b610ba85760405162461bcd60e51b815260206004820152602660248201527f4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f60448201527f6e747261637400000000000000000000000000000000000000000000000000006064820152608401610a53565b610c1e8787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8a018190048102820181019092528881528a9350915088908890819084018382808284376000920191909152506122bf92505050565b50505050505050565b610c2f6124b9565b6040517f07e0db1700000000000000000000000000000000000000000000000000000000815261ffff821660048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906307e0db17906024015b600060405180830381600087803b158015610cbb57600080fd5b505af1158015610ccf573d6000803e3d6000fd5b5050505050565b610cde6124b9565b61ffff909116600090815260046020526040902055565b610cfd6124b9565b6040517f10ddb13700000000000000000000000000000000000000000000000000000000815261ffff821660048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906310ddb13790602401610ca1565b61ffff831660009081526002602052604081208054829190610d9490613d8c565b80601f0160208091040260200160405190810160405280929190818152602001828054610dc090613d8c565b8015610e0d5780601f10610de257610100808354040283529160200191610e0d565b820191906000526020600020905b815481529060010190602001808311610df057829003601f168201915b505050505090508383604051610e24929190613dd9565b60405180910390208180519060200120149150505b9392505050565b6000818152600d60205260408120600681015460ff1615610e645750600092915050565b6006810154610100900460ff1615610e7f5750600292915050565b6000838152600f602052604090205460ff1615610e9f5750600192915050565b6040517f0992f7ad00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50919050565b610edf6124b9565b610ee7612520565b565b6001610ef482610e40565b6002811115610f0557610f05613920565b14610f9e5760405162461bcd60e51b815260206004820152604f60248201527f4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a63616e60448201527f63656c3a2070726f706f73616c2073686f756c6420626520717565756564206160648201527f6e64206e6f742065786563757465640000000000000000000000000000000000608482015260a401610a53565b6000818152600d60205260409020600b5473ffffffffffffffffffffffffffffffffffffffff1633146110395760405162461bcd60e51b815260206004820152603c60248201527f4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a63616e60448201527f63656c3a2073656e646572206d75737420626520677561726469616e000000006064820152608401610a53565b60068101805460ff19166001908117918290556201000090910460ff166000908152600e602052604080822054928401546002850154915173ffffffffffffffffffffffffffffffffffffffff90941693909286917f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c9190a260005b818110156111d0578373ffffffffffffffffffffffffffffffffffffffff1663591fcdfe8660020183815481106110ee576110ee613de9565b60009182526020909120015460038801805473ffffffffffffffffffffffffffffffffffffffff909216918590811061112957611129613de9565b906000526020600020015488600401858154811061114957611149613de9565b9060005260206000200189600501868154811061116857611168613de9565b90600052602060002001886040518663ffffffff1660e01b8152600401611193959493929190613e95565b600060405180830381600087803b1580156111ad57600080fd5b505af11580156111c1573d6000803e3d6000fd5b505050508060010190506110b5565b50505060009283525050600f60205260409020805460ff19169055565b6111f56124b9565b6040517f42d65a8d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906342d65a8d9061126b90869086908690600401613f1a565b600060405180830381600087803b15801561128557600080fd5b505af1158015610c1e573d6000803e3d6000fd5b33301461130e5760405162461bcd60e51b815260206004820152602660248201527f4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d75737420626560448201527f204c7a41707000000000000000000000000000000000000000000000000000006064820152608401610a53565b6113848686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f89018190048102820181019092528781528993509150879087908190840183828082843760009201919091525061257f92505050565b505050505050565b600260205260009081526040902080546113a590613d8c565b80601f01602080910402602001604051908101604052809291908181526020018280546113d190613d8c565b801561141e5780601f106113f35761010080835404028352916020019161141e565b820191906000526020600020905b81548152906001019060200180831161140157829003601f168201915b505050505081565b61142e6124b9565b610ee76129b1565b600b5473ffffffffffffffffffffffffffffffffffffffff16331480611473575060015473ffffffffffffffffffffffffffffffffffffffff1633145b6114e7576040805162461bcd60e51b81526020600482015260248101919091527f4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a73657460448201527f477561726469616e3a206f776e6572206f7220677561726469616e206f6e6c796064820152608401610a53565b6114f0816129ee565b600b5460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f08fdaf06427a2010e5958f4329b566993472d14ce81d3f16ce7f2a2660da98e390600090a3600b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6115866124b9565b60085460408051918252602082018390527f0a653bb1a57e62cfd43f0dc557c7223e8b58896238b5f9b300ef646d37b82d1b910160405180910390a1600855565b61ffff81166000908152600260205260408120805460609291906115ea90613d8c565b80601f016020809104026020016040519081016040528092919081815260200182805461161690613d8c565b80156116635780601f1061163857610100808354040283529160200191611663565b820191906000526020600020905b81548152906001019060200180831161164657829003601f168201915b5050505050905080516000036116bb5760405162461bcd60e51b815260206004820152601d60248201527f4c7a4170703a206e6f20747275737465642070617468207265636f72640000006044820152606401610a53565b610e396000601483516116ce9190613f67565b839190612a3b565b6116de6124b9565b8181306040516020016116f393929190613f80565b60408051601f1981840301815291815261ffff851660009081526002602052209061171e9082614001565b507f8c0400cfe2d1199b1a725c78960bcc2a344d869b80590d0f2bd005db15a572ce83838360405161175293929190613f1a565b60405180910390a1505050565b6117676124b9565b600580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527f5db758e995a17ec1ad84bdef7e8c3293a0bd6179bcce400dff5d4c3d87db726b9060200160405180910390a150565b6117e86124b9565b600b5460405161ffff8084169274010000000000000000000000000000000000000000900416907fb17c58d5977290696b6eea77c81c725f3dc83e426252bd9ece6287c1b8d0e96890600090a3600b805461ffff90921674010000000000000000000000000000000000000000027fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff909216919091179055565b61188a6124b9565b6040517fcbed8b9c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063cbed8b9c9061190490889088908890889088906004016140fd565b600060405180830381600087803b15801561191e57600080fd5b505af1158015611932573d6000803e3d6000fd5b505050505050505050565b6119456124b9565b61194d612b63565b848460405161195d929190613dd9565b6040805191829003822061ffff891660009081526002602052919091209091611986919061412b565b604051809103902014611a015760405162461bcd60e51b815260206004820152603f60248201527f4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a72657460448201527f72794d6573736167653a206e6f74206120747275737465642072656d6f7465006064820152608401610a53565b611a0f868686868686612bbc565b6113846001600055565b611a216124b9565b61ffff83811660008181526003602090815260408083209487168084529482529182902085905581519283528201929092529081018290527f9d5c7c0b934da8fefa9c7760c98383778a12dfbfc0c3b3106518f43fb9508ac090606001611752565b611a8b6124b9565b61ffff83166000908152600260205260409020611aa98284836141a1565b507ffa41487ad5d6728f0b19276fa1eddc16558578f5109fc39d2dc33c3230470dab83838360405161175293929190613f1a565b611ae56124b9565b6000611af36002600161429d565b90508060ff16825114611bba5760405162461bcd60e51b815260206004820152606a60248201527f4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a61646460448201527f54696d656c6f636b733a6e756d626572206f662074696d656c6f636b7320736860648201527f6f756c64206d6174636820746865206e756d626572206f6620676f7665726e6160848201527f6e636520726f757465730000000000000000000000000000000000000000000060a482015260c401610a53565b60005b8160ff168160ff161015611cef57611bf0838260ff1681518110611be357611be3613de9565b60200260200101516129ee565b828160ff1681518110611c0557611c05613de9565b60209081029190910181015160ff83166000818152600e845260409081902054905191825273ffffffffffffffffffffffffffffffffffffffff928316939216917ffc45ae51ac4893a3f843d030fbfd4037c0c196109c9e667645b8f144c83c16ea910160405180910390a3828160ff1681518110611c8657611c86613de9565b60209081029190910181015160ff83166000908152600e909252604090912080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055600101611bbd565b505050565b611cfc6124b9565b73ffffffffffffffffffffffffffffffffffffffff8116611d855760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610a53565b611d8e81612e0a565b50565b611d996124b9565b6000611da76002600161429d565b90508060ff168260ff1610611e4a5760405162461bcd60e51b815260206004820152604b60248201527f4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a73657460448201527f54696d656c6f636b50656e64696e6741646d696e3a20696e76616c696420707260648201527f6f706f73616c2074797065000000000000000000000000000000000000000000608482015260a401610a53565b60ff82166000908152600e6020526040908190205490517f4dd18bf500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015290911690634dd18bf590602401600060405180830381600087803b158015611ec857600080fd5b505af1158015611edc573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff8716815260ff861660208201527f6ac0b2c896b49975f12891f83c573bdf05490fe6b707cbaa2ba84c36094cbaec9350019050611752565b6040517ff5ecbdbc00000000000000000000000000000000000000000000000000000000815261ffff808616600483015284166024820152306044820152606481018290526060907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063f5ecbdbc90608401600060405180830381865afa158015611fd5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ffd9190810190614306565b95945050505050565b61200e612b63565b600161201982610e40565b600281111561202a5761202a613920565b146120c35760405162461bcd60e51b815260206004820152605360248201527f4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a65786560448201527f637574653a2070726f706f73616c2063616e206f6e6c7920626520657865637560648201527f7465642069662069742069732071756575656400000000000000000000000000608482015260a401610a53565b6000818152600d602090815260408083206006810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179081905562010000900460ff168452600e90925280832054600183015460028401549251939473ffffffffffffffffffffffffffffffffffffffff9092169390929186917f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f9190a260005b81811015612299578373ffffffffffffffffffffffffffffffffffffffff16630825f38f8660020183815481106121a4576121a4613de9565b60009182526020909120015460038801805473ffffffffffffffffffffffffffffffffffffffff90921691859081106121df576121df613de9565b90600052602060002001548860040185815481106121ff576121ff613de9565b9060005260206000200189600501868154811061221e5761221e613de9565b90600052602060002001886040518663ffffffff1660e01b8152600401612249959493929190613e95565b6000604051808303816000875af1158015612268573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526122909190810190614306565b5060010161216b565b5050506000838152600f60205260409020805460ff1916905550611d8e90506001600055565b600b5461ffff85811674010000000000000000000000000000000000000000909204161461237b5760405162461bcd60e51b815260206004820152604860248201527f4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a5f626c60448201527f6f636b696e674c7a526563656976653a20696e76616c696420736f757263652060648201527f636861696e206964000000000000000000000000000000000000000000000000608482015260a401610a53565b8051602082012060405160009030906366ad5c8a906123a4908990899089908990602401614343565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000806124066175305a6123fc9190613f67565b3090609686612e81565b91509150816124af5761ffff8816600090815260066020526040908190209051859190612434908a90614382565b90815260408051918290036020908101832067ffffffffffffffff8b16600090815291522091909155612468908890614382565b60405180910390208861ffff167f41d73ce7be31a588d59fe9013cdcfe583bc0aab25093d042b64cade0df73065688846040516124a692919061439e565b60405180910390a35b5050505050505050565b60015473ffffffffffffffffffffffffffffffffffffffff163314610ee75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a53565b612528612f0c565b6007805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b612587612f5e565b6000808280602001905181019061259e91906143c1565b915091506000806000806000868060200190518101906125be9190614592565b60008b8152600d602052604090205494995092975090955093509150156126735760405162461bcd60e51b815260206004820152604660248201527f4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a5f6e6f60448201527f6e626c6f636b696e674c7a526563656976653a206475706c696361746520707260648201527f6f706f73616c0000000000000000000000000000000000000000000000000000608482015260a401610a53565b83518551148015612685575082518551145b8015612692575081518551145b61272a5760405162461bcd60e51b815260206004820152606060248201527f4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a5f6e6f60448201527f6e626c6f636b696e674c7a526563656976653a2070726f706f73616c2066756e60648201527f6374696f6e20696e666f726d6174696f6e206172697479206d69736d61746368608482015260a401610a53565b6127366002600161429d565b60ff168160ff16106127d65760405162461bcd60e51b815260206004820152604960248201527f4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a5f6e6f60448201527f6e626c6f636b696e674c7a526563656976653a20696e76616c69642070726f7060648201527f6f73616c20747970650000000000000000000000000000000000000000000000608482015260a401610a53565b6127e08551612fb1565b6040805161012081018252878152600060208083018281528385018a8152606085018a90526080850189905260a0850188905260c0850184905260e0850184905260ff87166101008601528b8452600d835294909220835181559151600183015592518051929384936128599260028501920190613571565b50606082015180516128759160038401916020909101906135fb565b5060808201518051612891916004840191602090910190613636565b5060a082015180516128ad916005840191602090910190613688565b5060c08201516006909101805460e08401516101009485015160ff1662010000027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff9115159095027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff941515949094167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000909216919091179290921791909116919091179055600c87905580516040517fc37d19c9a6a9a568b5071658f9b5082ff8f142df3cf090385c5621ab1193806590612992908990899089908990899061470b565b60405180910390a26129a387613041565b505050505050505050505050565b6129b9612f5e565b6007805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586125553390565b73ffffffffffffffffffffffffffffffffffffffff8116611d8e576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606081612a4981601f6147d5565b1015612a975760405162461bcd60e51b815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401610a53565b612aa182846147d5565b84511015612af15760405162461bcd60e51b815260206004820152601160248201527f736c6963655f6f75744f66426f756e64730000000000000000000000000000006044820152606401610a53565b606082158015612b105760405191506000825260208201604052612b5a565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015612b49578051835260209283019201612b31565b5050858452601f01601f1916604052505b50949350505050565b600260005403612bb55760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610a53565b6002600055565b61ffff86166000908152600660205260408082209051612bdf9088908890613dd9565b908152604080516020928190038301902067ffffffffffffffff871660009081529252902054905080612c7a5760405162461bcd60e51b815260206004820152602360248201527f4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d65737360448201527f61676500000000000000000000000000000000000000000000000000000000006064820152608401610a53565b808383604051612c8b929190613dd9565b604051809103902014612d065760405162461bcd60e51b815260206004820152602160248201527f4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f6160448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610a53565b61ffff87166000908152600660205260408082209051612d299089908990613dd9565b908152604080516020928190038301812067ffffffffffffffff8916600090815290845282902093909355601f88018290048202830182019052868252612dc2918991899089908190840183828082843760009201919091525050604080516020601f8a018190048102820181019092528881528a93509150889088908190840183828082843760009201919091525061257f92505050565b7fc264d91f3adc5588250e1551f547752ca0cfa8f6b530d243b9f9f4cab10ea8e58787878785604051612df99594939291906147e8565b60405180910390a150505050505050565b6001805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000606060008060008661ffff1667ffffffffffffffff811115612ea757612ea7613990565b6040519080825280601f01601f191660200182016040528015612ed1576020820181803683370190505b50905060008087516020890160008d8df191503d925086831115612ef3578692505b828152826000602083013e909890975095505050505050565b60075460ff16610ee75760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610a53565b60075460ff1615610ee75760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610a53565b600954600a544291906201518090612fc99084613f67565b1115612fdb5750600a81905581612fe8565b612fe583826147d5565b90505b60085481111561303a5760405162461bcd60e51b815260206004820181905260248201527f4461696c79205472616e73616374696f6e204c696d69742045786365656465646044820152606401610a53565b6009555050565b6000818152600d60209081526040808320600681015462010000900460ff168452600e83528184205482517f6a42b8f8000000000000000000000000000000000000000000000000000000008152925191949373ffffffffffffffffffffffffffffffffffffffff90911692636a42b8f892600480830193928290030181865afa1580156130d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130f79190614824565b61310190426147d5565b60018084018290556000858152600f602052604090819020805460ff191690921790915560068401546002850154915192935062010000900460ff169185907f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda28929061316f9086815260200190565b60405180910390a260005b818110156113845761333785600201828154811061319a5761319a613de9565b60009182526020909120015460038701805473ffffffffffffffffffffffffffffffffffffffff90921691849081106131d5576131d5613de9565b90600052602060002001548760040184815481106131f5576131f5613de9565b90600052602060002001805461320a90613d8c565b80601f016020809104026020016040519081016040528092919081815260200182805461323690613d8c565b80156132835780601f1061325857610100808354040283529160200191613283565b820191906000526020600020905b81548152906001019060200180831161326657829003601f168201915b505050505088600501858154811061329d5761329d613de9565b9060005260206000200180546132b290613d8c565b80601f01602080910402602001604051908101604052809291908181526020018280546132de90613d8c565b801561332b5780601f106133005761010080835404028352916020019161332b565b820191906000526020600020905b81548152906001019060200180831161330e57829003601f168201915b5050505050888861333f565b60010161317a565b60ff81166000908152600e602090815260409182902054915173ffffffffffffffffffffffffffffffffffffffff9092169163f2b065379161338b918a918a918a918a918a910161483d565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b81526004016133bf91815260200190565b602060405180830381865afa1580156133dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134009190614884565b156134bf5760405162461bcd60e51b815260206004820152606360248201527f4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a71756560448201527f75654f72526576657274496e7465726e616c3a206964656e746963616c20707260648201527f6f706f73616c20616374696f6e20616c7265616479207175657565642061742060848201527f657461000000000000000000000000000000000000000000000000000000000060a482015260c401610a53565b60ff81166000908152600e6020526040908190205490517f3a66f90100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690633a66f9019061352e908990899089908990899060040161483d565b6020604051808303816000875af115801561354d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c1e9190614824565b8280548282559060005260206000209081019282156135eb579160200282015b828111156135eb57825182547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909116178255602090920191600190910190613591565b506135f79291506136da565b5090565b8280548282559060005260206000209081019282156135eb579160200282015b828111156135eb57825182559160200191906001019061361b565b82805482825590600052602060002090810192821561367c579160200282015b8281111561367c578251829061366c9082614001565b5091602001919060010190613656565b506135f79291506136ef565b8280548282559060005260206000209081019282156136ce579160200282015b828111156136ce57825182906136be9082614001565b50916020019190600101906136a8565b506135f792915061370c565b5b808211156135f757600081556001016136db565b808211156135f75760006137038282613729565b506001016136ef565b808211156135f75760006137208282613729565b5060010161370c565b50805461373590613d8c565b6000825580601f10613745575050565b601f016020900490600052602060002090810190611d8e91906136da565b803561ffff8116811461377557600080fd5b919050565b60008083601f84011261378c57600080fd5b50813567ffffffffffffffff8111156137a457600080fd5b6020830191508360208285010111156137bc57600080fd5b9250929050565b803567ffffffffffffffff8116811461377557600080fd5b600080600080600080608087890312156137f457600080fd5b6137fd87613763565b9550602087013567ffffffffffffffff8082111561381a57600080fd5b6138268a838b0161377a565b909750955085915061383a60408a016137c3565b9450606089013591508082111561385057600080fd5b5061385d89828a0161377a565b979a9699509497509295939492505050565b60006020828403121561388157600080fd5b5035919050565b60006020828403121561389a57600080fd5b610e3982613763565b600080604083850312156138b657600080fd5b6138bf83613763565b946020939093013593505050565b6000806000604084860312156138e257600080fd5b6138eb84613763565b9250602084013567ffffffffffffffff81111561390757600080fd5b6139138682870161377a565b9497909650939450505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b602081016003831061398a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156139e8576139e8613990565b604052919050565b600067ffffffffffffffff821115613a0a57613a0a613990565b50601f01601f191660200190565b600080600060608486031215613a2d57600080fd5b613a3684613763565b9250602084013567ffffffffffffffff811115613a5257600080fd5b8401601f81018613613a6357600080fd5b8035613a76613a71826139f0565b6139bf565b818152876020838501011115613a8b57600080fd5b81602084016020830137600060208383010152809450505050613ab0604085016137c3565b90509250925092565b60005b83811015613ad4578181015183820152602001613abc565b50506000910152565b60008151808452613af5816020860160208601613ab9565b601f01601f19169290920160200192915050565b602081526000610e396020830184613add565b73ffffffffffffffffffffffffffffffffffffffff81168114611d8e57600080fd5b600060208284031215613b5057600080fd5b8135610e3981613b1c565b60008060408385031215613b6e57600080fd5b613b7783613763565b9150613b8560208401613763565b90509250929050565b600080600080600060808688031215613ba657600080fd5b613baf86613763565b9450613bbd60208701613763565b935060408601359250606086013567ffffffffffffffff811115613be057600080fd5b613bec8882890161377a565b969995985093965092949392505050565b600080600060608486031215613c1257600080fd5b613c1b84613763565b9250613c2960208501613763565b9150604084013590509250925092565b600067ffffffffffffffff821115613c5357613c53613990565b5060051b60200190565b60006020808385031215613c7057600080fd5b823567ffffffffffffffff811115613c8757600080fd5b8301601f81018513613c9857600080fd5b8035613ca6613a7182613c39565b81815260059190911b82018301908381019087831115613cc557600080fd5b928401925b82841015613cec578335613cdd81613b1c565b82529284019290840190613cca565b979650505050505050565b60ff81168114611d8e57600080fd5b60008060408385031215613d1957600080fd5b8235613d2481613b1c565b91506020830135613d3481613cf7565b809150509250929050565b60008060008060808587031215613d5557600080fd5b613d5e85613763565b9350613d6c60208601613763565b92506040850135613d7c81613b1c565b9396929550929360600135925050565b600181811c90821680613da057607f821691505b602082108103610ed1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b8183823760009101908152919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008154613e2581613d8c565b808552602060018381168015613e425760018114613e5c57613e8a565b60ff198516838901528284151560051b8901019550613e8a565b866000528260002060005b85811015613e825781548a8201860152908301908401613e67565b890184019650505b505050505092915050565b73ffffffffffffffffffffffffffffffffffffffff8616815284602082015260a060408201526000613eca60a0830186613e18565b8281036060840152613edc8186613e18565b9150508260808301529695505050505050565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b61ffff84168152604060208201526000611ffd604083018486613eef565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115613f7a57613f7a613f38565b92915050565b8284823760609190911b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169101908152601401919050565b601f821115611cef576000816000526020600020601f850160051c81016020861015613fe25750805b601f850160051c820191505b8181101561138457828155600101613fee565b815167ffffffffffffffff81111561401b5761401b613990565b61402f816140298454613d8c565b84613fb9565b602080601f831160018114614082576000841561404c5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555611384565b600085815260208120601f198616915b828110156140b157888601518255948401946001909101908401614092565b50858210156140ed57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b600061ffff808816835280871660208401525084604083015260806060830152613cec608083018486613eef565b600080835461413981613d8c565b60018281168015614151576001811461416657614195565b60ff1984168752821515830287019450614195565b8760005260208060002060005b8581101561418c5781548a820152908401908201614173565b50505082870194505b50929695505050505050565b67ffffffffffffffff8311156141b9576141b9613990565b6141cd836141c78354613d8c565b83613fb9565b6000601f84116001811461421f57600085156141e95750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355610ccf565b600083815260209020601f19861690835b828110156142505786850135825560209485019460019092019101614230565b508682101561428b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b60ff8181168382160190811115613f7a57613f7a613f38565b60006142c4613a71846139f0565b90508281528383830111156142d857600080fd5b610e39836020830184613ab9565b600082601f8301126142f757600080fd5b610e39838351602085016142b6565b60006020828403121561431857600080fd5b815167ffffffffffffffff81111561432f57600080fd5b61433b848285016142e6565b949350505050565b61ffff851681526080602082015260006143606080830186613add565b67ffffffffffffffff851660408401528281036060840152613cec8185613add565b60008251614394818460208701613ab9565b9190910192915050565b67ffffffffffffffff8316815260406020820152600061433b6040830184613add565b600080604083850312156143d457600080fd5b825167ffffffffffffffff8111156143eb57600080fd5b6143f7858286016142e6565b925050602083015190509250929050565b600082601f83011261441957600080fd5b81516020614429613a7183613c39565b8083825260208201915060208460051b87010193508684111561444b57600080fd5b602086015b848110156144675780518352918301918301614450565b509695505050505050565b600082601f83011261448357600080fd5b81516020614493613a7183613c39565b82815260059290921b840181019181810190868411156144b257600080fd5b8286015b8481101561446757805167ffffffffffffffff8111156144d65760008081fd5b8701603f810189136144e85760008081fd5b6144f98986830151604084016142b6565b8452509183019183016144b6565b600082601f83011261451857600080fd5b81516020614528613a7183613c39565b82815260059290921b8401810191818101908684111561454757600080fd5b8286015b8481101561446757805167ffffffffffffffff81111561456b5760008081fd5b6145798986838b01016142e6565b84525091830191830161454b565b805161377581613cf7565b600080600080600060a086880312156145aa57600080fd5b855167ffffffffffffffff808211156145c257600080fd5b818801915088601f8301126145d657600080fd5b815160206145e6613a7183613c39565b82815260059290921b8401810191818101908c84111561460557600080fd5b948201945b8386101561462c57855161461d81613b1c565b8252948201949082019061460a565b918b015191995090935050508082111561464557600080fd5b61465189838a01614408565b9550604088015191508082111561466757600080fd5b61467389838a01614472565b9450606088015191508082111561468957600080fd5b5061469688828901614507565b9250506146a560808701614587565b90509295509295909350565b60008282518085526020808601955060208260051b8401016020860160005b848110156146fe57601f198684030189526146ec838351613add565b988401989250908301906001016146d0565b5090979650505050505050565b60a0808252865190820181905260009060209060c0840190828a01845b8281101561475a57815173ffffffffffffffffffffffffffffffffffffffff1684529284019290840190600101614728565b5050508381038285015287518082528883019183019060005b8181101561478f57835183529284019291840191600101614773565b505084810360408601526147a381896146b1565b9250505082810360608401526147b981866146b1565b9150506147cb608083018460ff169052565b9695505050505050565b80820180821115613f7a57613f7a613f38565b61ffff86168152608060208201526000614806608083018688613eef565b67ffffffffffffffff94909416604083015250606001529392505050565b60006020828403121561483657600080fd5b5051919050565b73ffffffffffffffffffffffffffffffffffffffff8616815284602082015260a06040820152600061487260a0830186613add565b8281036060840152613edc8186613add565b60006020828403121561489657600080fd5b81518015158114610e3957600080fdfea264697066735822122022307d7e31580ece44a0e9adf66c14789502c9d5b0f18f4226abaa5e33b1824164736f6c63430008190033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x4AA5 CODESIZE SUB DUP1 PUSH2 0x4AA5 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x136 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SSTORE DUP3 DUP1 DUP1 PUSH2 0x40 CALLER PUSH2 0x9E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x80 MSTORE POP PUSH1 0x7 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH2 0x60 DUP2 PUSH2 0xF0 JUMP JUMPDEST POP PUSH2 0x6A DUP3 PUSH2 0xF0 JUMP JUMPDEST PUSH1 0xB DUP1 SLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR OR SWAP1 SSTORE POP PUSH2 0x184 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x117 JUMPI PUSH1 0x40 MLOAD PUSH4 0x42BCDF7F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x131 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x14B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x154 DUP5 PUSH2 0x11A JUMP JUMPDEST SWAP3 POP PUSH2 0x162 PUSH1 0x20 DUP6 ADD PUSH2 0x11A JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD MLOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x179 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x48DC PUSH2 0x1C9 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x804 ADD MSTORE DUP2 DUP2 PUSH2 0x9D5 ADD MSTORE DUP2 DUP2 PUSH2 0xC61 ADD MSTORE DUP2 DUP2 PUSH2 0xD2F ADD MSTORE DUP2 DUP2 PUSH2 0x1232 ADD MSTORE DUP2 DUP2 PUSH2 0x18C7 ADD MSTORE PUSH2 0x1F79 ADD MSTORE PUSH2 0x48DC PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2F1 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x876919E8 GT PUSH2 0x18F JUMPI DUP1 PUSH4 0xC4461834 GT PUSH2 0xE1 JUMPI DUP1 PUSH4 0xED66039B GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xF4FCFCCA GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xF4FCFCCA EQ PUSH2 0x972 JUMPI DUP1 PUSH4 0xF5ECBDBC EQ PUSH2 0x992 JUMPI DUP1 PUSH4 0xFE0D94C1 EQ PUSH2 0x9B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xED66039B EQ PUSH2 0x8EF JUMPI DUP1 PUSH4 0xEE9799EE EQ PUSH2 0x90F JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x952 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xD1DEBA1F GT PUSH2 0xBB JUMPI DUP1 PUSH4 0xD1DEBA1F EQ PUSH2 0x89C JUMPI DUP1 PUSH4 0xDF2A5B3B EQ PUSH2 0x8AF JUMPI DUP1 PUSH4 0xEB8D72B7 EQ PUSH2 0x8CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xC4461834 EQ PUSH2 0x846 JUMPI DUP1 PUSH4 0xC8B42E5B EQ PUSH2 0x85C JUMPI DUP1 PUSH4 0xCBED8B9C EQ PUSH2 0x87C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x950C8A74 GT PUSH2 0x143 JUMPI DUP1 PUSH4 0xA6C3D165 GT PUSH2 0x11D JUMPI DUP1 PUSH4 0xA6C3D165 EQ PUSH2 0x7D2 JUMPI DUP1 PUSH4 0xB353AAA7 EQ PUSH2 0x7F2 JUMPI DUP1 PUSH4 0xBAF3292D EQ PUSH2 0x826 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x950C8A74 EQ PUSH2 0x755 JUMPI DUP1 PUSH4 0x9F0C3101 EQ PUSH2 0x782 JUMPI DUP1 PUSH4 0x9F38369A EQ PUSH2 0x7B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8CFD8F5C GT PUSH2 0x174 JUMPI DUP1 PUSH4 0x8CFD8F5C EQ PUSH2 0x6D2 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x70A JUMPI DUP1 PUSH4 0x9493FFAD EQ PUSH2 0x735 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x876919E8 EQ PUSH2 0x69C JUMPI DUP1 PUSH4 0x8A0DAC4A EQ PUSH2 0x6B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x42D65A8D GT PUSH2 0x248 JUMPI DUP1 PUSH4 0x5C975ABB GT PUSH2 0x1FC JUMPI DUP1 PUSH4 0x715018A6 GT PUSH2 0x1D6 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x64E JUMPI DUP1 PUSH4 0x7533D788 EQ PUSH2 0x65A JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x687 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x600 JUMPI DUP1 PUSH4 0x66AD5C8A EQ PUSH2 0x618 JUMPI DUP1 PUSH4 0x70F6AD9A EQ PUSH2 0x638 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x452A9320 GT PUSH2 0x22D JUMPI DUP1 PUSH4 0x452A9320 EQ PUSH2 0x519 JUMPI DUP1 PUSH4 0x49D12605 EQ PUSH2 0x56B JUMPI DUP1 PUSH4 0x5B8C41E6 EQ PUSH2 0x5B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x42D65A8D EQ PUSH2 0x4E3 JUMPI DUP1 PUSH4 0x4406BAAF EQ PUSH2 0x503 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x10DDB137 GT PUSH2 0x2AA JUMPI DUP1 PUSH4 0x3F1F4FA4 GT PUSH2 0x284 JUMPI DUP1 PUSH4 0x3F1F4FA4 EQ PUSH2 0x481 JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x4AE JUMPI DUP1 PUSH4 0x40E58EE5 EQ PUSH2 0x4C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x10DDB137 EQ PUSH2 0x404 JUMPI DUP1 PUSH4 0x3D8B38F6 EQ PUSH2 0x424 JUMPI DUP1 PUSH4 0x3E4F49E6 EQ PUSH2 0x454 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x435BB56 GT PUSH2 0x2DB JUMPI DUP1 PUSH4 0x435BB56 EQ PUSH2 0x3A0 JUMPI DUP1 PUSH4 0x7E0DB17 EQ PUSH2 0x3C4 JUMPI DUP1 PUSH4 0xDF37483 EQ PUSH2 0x3E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH3 0x1D3567 EQ PUSH2 0x2F6 JUMPI DUP1 PUSH4 0x13CF08B EQ PUSH2 0x318 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x302 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x311 CALLDATASIZE PUSH1 0x4 PUSH2 0x37DB JUMP JUMPDEST PUSH2 0x9D2 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x324 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x36A PUSH2 0x333 CALLDATASIZE PUSH1 0x4 PUSH2 0x386F JUMP JUMPDEST PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x6 SWAP1 SWAP3 ADD SLOAD SWAP1 SWAP2 SWAP1 PUSH1 0xFF DUP1 DUP3 AND SWAP2 PUSH2 0x100 DUP2 DIV DUP3 AND SWAP2 PUSH3 0x10000 SWAP1 SWAP2 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH1 0x20 DUP7 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP2 ISZERO ISZERO SWAP3 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 ISZERO ISZERO PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0xFF AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B6 PUSH1 0x8 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x397 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x3DF CALLDATASIZE PUSH1 0x4 PUSH2 0x3888 JUMP JUMPDEST PUSH2 0xC27 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x3FF CALLDATASIZE PUSH1 0x4 PUSH2 0x38A3 JUMP JUMPDEST PUSH2 0xCD6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x410 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x41F CALLDATASIZE PUSH1 0x4 PUSH2 0x3888 JUMP JUMPDEST PUSH2 0xCF5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x430 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x444 PUSH2 0x43F CALLDATASIZE PUSH1 0x4 PUSH2 0x38CD JUMP JUMPDEST PUSH2 0xD73 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x397 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x460 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x474 PUSH2 0x46F CALLDATASIZE PUSH1 0x4 PUSH2 0x386F JUMP JUMPDEST PUSH2 0xE40 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x397 SWAP2 SWAP1 PUSH2 0x394F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B6 PUSH2 0x49C CALLDATASIZE PUSH1 0x4 PUSH2 0x3888 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0xED7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x4DE CALLDATASIZE PUSH1 0x4 PUSH2 0x386F JUMP JUMPDEST PUSH2 0xEE9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x4FE CALLDATASIZE PUSH1 0x4 PUSH2 0x38CD JUMP JUMPDEST PUSH2 0x11ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x50F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B6 PUSH1 0xC SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x525 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xB SLOAD PUSH2 0x546 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x397 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x577 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xB SLOAD PUSH2 0x59E SWAP1 PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH2 0xFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x397 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B6 PUSH2 0x5CC CALLDATASIZE PUSH1 0x4 PUSH2 0x3A18 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0x40 DUP1 DUP6 KECCAK256 DUP5 MLOAD DUP1 DUP7 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP6 DUP5 ADD SWAP6 SWAP1 SWAP6 KECCAK256 SWAP5 MSTORE SWAP3 SWAP1 MSTORE DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x60C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x7 SLOAD PUSH1 0xFF AND PUSH2 0x444 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x624 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x633 CALLDATASIZE PUSH1 0x4 PUSH2 0x37DB JUMP JUMPDEST PUSH2 0x1299 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x644 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B6 PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x316 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x666 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x67A PUSH2 0x675 CALLDATASIZE PUSH1 0x4 PUSH2 0x3888 JUMP JUMPDEST PUSH2 0x138C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x397 SWAP2 SWAP1 PUSH2 0x3B09 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x693 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x1426 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B6 PUSH1 0xA SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x6CD CALLDATASIZE PUSH1 0x4 PUSH2 0x3B3E JUMP JUMPDEST PUSH2 0x1436 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B6 PUSH2 0x6ED CALLDATASIZE PUSH1 0x4 PUSH2 0x3B5B JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x716 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x546 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x741 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x750 CALLDATASIZE PUSH1 0x4 PUSH2 0x386F JUMP JUMPDEST PUSH2 0x157E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x761 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5 SLOAD PUSH2 0x546 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x78E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x444 PUSH2 0x79D CALLDATASIZE PUSH1 0x4 PUSH2 0x386F JUMP JUMPDEST PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x67A PUSH2 0x7CD CALLDATASIZE PUSH1 0x4 PUSH2 0x3888 JUMP JUMPDEST PUSH2 0x15C7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x7ED CALLDATASIZE PUSH1 0x4 PUSH2 0x38CD JUMP JUMPDEST PUSH2 0x16D6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x546 PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x832 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x841 CALLDATASIZE PUSH1 0x4 PUSH2 0x3B3E JUMP JUMPDEST PUSH2 0x175F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x852 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B6 PUSH2 0x2710 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x868 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x877 CALLDATASIZE PUSH1 0x4 PUSH2 0x3888 JUMP JUMPDEST PUSH2 0x17E0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x888 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x897 CALLDATASIZE PUSH1 0x4 PUSH2 0x3B8E JUMP JUMPDEST PUSH2 0x1882 JUMP JUMPDEST PUSH2 0x316 PUSH2 0x8AA CALLDATASIZE PUSH1 0x4 PUSH2 0x37DB JUMP JUMPDEST PUSH2 0x193D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x8CA CALLDATASIZE PUSH1 0x4 PUSH2 0x3BFD JUMP JUMPDEST PUSH2 0x1A19 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x8EA CALLDATASIZE PUSH1 0x4 PUSH2 0x38CD JUMP JUMPDEST PUSH2 0x1A83 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x90A CALLDATASIZE PUSH1 0x4 PUSH2 0x3C5D JUMP JUMPDEST PUSH2 0x1ADD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x91B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x546 PUSH2 0x92A CALLDATASIZE PUSH1 0x4 PUSH2 0x386F JUMP JUMPDEST PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x95E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x96D CALLDATASIZE PUSH1 0x4 PUSH2 0x3B3E JUMP JUMPDEST PUSH2 0x1CF4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x97E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x98D CALLDATASIZE PUSH1 0x4 PUSH2 0x3D06 JUMP JUMPDEST PUSH2 0x1D91 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x99E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x67A PUSH2 0x9AD CALLDATASIZE PUSH1 0x4 PUSH2 0x3D3F JUMP JUMPDEST PUSH2 0x1F2F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x9CD CALLDATASIZE PUSH1 0x4 PUSH2 0x386F JUMP JUMPDEST PUSH2 0x2006 JUMP JUMPDEST CALLER PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xA5C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A20696E76616C696420656E64706F696E742063616C6C65720000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0xA7A SWAP1 PUSH2 0x3D8C JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xAA6 SWAP1 PUSH2 0x3D8C JUMP JUMPDEST DUP1 ISZERO PUSH2 0xAF3 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xAC8 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xAF3 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xAD6 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD DUP7 DUP7 SWAP1 POP EQ DUP1 ISZERO PUSH2 0xB0E JUMPI POP PUSH1 0x0 DUP2 MLOAD GT JUMPDEST DUP1 ISZERO PUSH2 0xB36 JUMPI POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH2 0xB2C SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0x3DD9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ JUMPDEST PUSH2 0xBA8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A20696E76616C696420736F757263652073656E64696E6720636F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E74726163740000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH2 0xC1E DUP8 DUP8 DUP8 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP11 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP9 DUP2 MSTORE DUP11 SWAP4 POP SWAP2 POP DUP9 SWAP1 DUP9 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x22BF SWAP3 POP POP POP JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xC2F PUSH2 0x24B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x7E0DB1700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH2 0xFFFF DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0x7E0DB17 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCBB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCCF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0xCDE PUSH2 0x24B9 JUMP JUMPDEST PUSH2 0xFFFF SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST PUSH2 0xCFD PUSH2 0x24B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x10DDB13700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH2 0xFFFF DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0x10DDB137 SWAP1 PUSH1 0x24 ADD PUSH2 0xCA1 JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP3 SWAP2 SWAP1 PUSH2 0xD94 SWAP1 PUSH2 0x3D8C JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xDC0 SWAP1 PUSH2 0x3D8C JUMP JUMPDEST DUP1 ISZERO PUSH2 0xE0D JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xDE2 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xE0D JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xDF0 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xE24 SWAP3 SWAP2 SWAP1 PUSH2 0x3DD9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP2 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 EQ SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x6 DUP2 ADD SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xE64 JUMPI POP PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x6 DUP2 ADD SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xE7F JUMPI POP PUSH1 0x2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xE9F JUMPI POP PUSH1 0x1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x992F7AD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xEDF PUSH2 0x24B9 JUMP JUMPDEST PUSH2 0xEE7 PUSH2 0x2520 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH2 0xEF4 DUP3 PUSH2 0xE40 JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF05 JUMPI PUSH2 0xF05 PUSH2 0x3920 JUMP JUMPDEST EQ PUSH2 0xF9E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x4F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E476F7665726E616E63654578656375746F723A3A63616E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x63656C3A2070726F706F73616C2073686F756C64206265207175657565642061 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6E64206E6F742065786563757465640000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0xB SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x1039 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E476F7665726E616E63654578656375746F723A3A63616E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x63656C3A2073656E646572206D75737420626520677561726469616E00000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH1 0x6 DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 SWAP1 DUP2 OR SWAP2 DUP3 SWAP1 SSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0xFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD SWAP3 DUP5 ADD SLOAD PUSH1 0x2 DUP6 ADD SLOAD SWAP2 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP3 DUP7 SWAP2 PUSH32 0x789CF55BE980739DAD1D0699B93B58E806B51C9D96619BFA8FE0A28ABAA7B30C SWAP2 SWAP1 LOG2 PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x11D0 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x591FCDFE DUP7 PUSH1 0x2 ADD DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x10EE JUMPI PUSH2 0x10EE PUSH2 0x3DE9 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x3 DUP9 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 DUP6 SWAP1 DUP2 LT PUSH2 0x1129 JUMPI PUSH2 0x1129 PUSH2 0x3DE9 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP9 PUSH1 0x4 ADD DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x1149 JUMPI PUSH2 0x1149 PUSH2 0x3DE9 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP10 PUSH1 0x5 ADD DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x1168 JUMPI PUSH2 0x1168 PUSH2 0x3DE9 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP9 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1193 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3E95 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x11C1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x10B5 JUMP JUMPDEST POP POP POP PUSH1 0x0 SWAP3 DUP4 MSTORE POP POP PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x11F5 PUSH2 0x24B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x42D65A8D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 AND SWAP1 PUSH4 0x42D65A8D SWAP1 PUSH2 0x126B SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x3F1A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1285 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC1E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST CALLER ADDRESS EQ PUSH2 0x130E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A2063616C6C6572206D757374206265 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x204C7A4170700000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH2 0x1384 DUP7 DUP7 DUP7 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP10 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP8 DUP2 MSTORE DUP10 SWAP4 POP SWAP2 POP DUP8 SWAP1 DUP8 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x257F SWAP3 POP POP POP JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x13A5 SWAP1 PUSH2 0x3D8C JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x13D1 SWAP1 PUSH2 0x3D8C JUMP JUMPDEST DUP1 ISZERO PUSH2 0x141E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x13F3 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x141E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1401 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0x142E PUSH2 0x24B9 JUMP JUMPDEST PUSH2 0xEE7 PUSH2 0x29B1 JUMP JUMPDEST PUSH1 0xB SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ DUP1 PUSH2 0x1473 JUMPI POP PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ JUMPDEST PUSH2 0x14E7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x4F6D6E69636861696E476F7665726E616E63654578656375746F723A3A736574 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x477561726469616E3A206F776E6572206F7220677561726469616E206F6E6C79 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH2 0x14F0 DUP2 PUSH2 0x29EE JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND SWAP3 AND SWAP1 PUSH32 0x8FDAF06427A2010E5958F4329B566993472D14CE81D3F16CE7F2A2660DA98E3 SWAP1 PUSH1 0x0 SWAP1 LOG3 PUSH1 0xB DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1586 PUSH2 0x24B9 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0xA653BB1A57E62CFD43F0DC557C7223E8B58896238B5F9B300EF646D37B82D1B SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x8 SSTORE JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x60 SWAP3 SWAP2 SWAP1 PUSH2 0x15EA SWAP1 PUSH2 0x3D8C JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1616 SWAP1 PUSH2 0x3D8C JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1663 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1638 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1663 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1646 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x16BB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A206E6F20747275737465642070617468207265636F7264000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH2 0xE39 PUSH1 0x0 PUSH1 0x14 DUP4 MLOAD PUSH2 0x16CE SWAP2 SWAP1 PUSH2 0x3F67 JUMP JUMPDEST DUP4 SWAP2 SWAP1 PUSH2 0x2A3B JUMP JUMPDEST PUSH2 0x16DE PUSH2 0x24B9 JUMP JUMPDEST DUP2 DUP2 ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x16F3 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3F80 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH2 0xFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE KECCAK256 SWAP1 PUSH2 0x171E SWAP1 DUP3 PUSH2 0x4001 JUMP JUMPDEST POP PUSH32 0x8C0400CFE2D1199B1A725C78960BCC2A344D869B80590D0F2BD005DB15A572CE DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1752 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3F1A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0x1767 PUSH2 0x24B9 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x5DB758E995A17EC1AD84BDEF7E8C3293A0BD6179BCCE400DFF5D4C3D87DB726B SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0x17E8 PUSH2 0x24B9 JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH2 0xFFFF DUP1 DUP5 AND SWAP3 PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV AND SWAP1 PUSH32 0xB17C58D5977290696B6EEA77C81C725F3DC83E426252BD9ECE6287C1B8D0E968 SWAP1 PUSH1 0x0 SWAP1 LOG3 PUSH1 0xB DUP1 SLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH32 0xFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x188A PUSH2 0x24B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xCBED8B9C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 AND SWAP1 PUSH4 0xCBED8B9C SWAP1 PUSH2 0x1904 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x40FD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x191E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1932 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1945 PUSH2 0x24B9 JUMP JUMPDEST PUSH2 0x194D PUSH2 0x2B63 JUMP JUMPDEST DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x195D SWAP3 SWAP2 SWAP1 PUSH2 0x3DD9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 PUSH2 0xFFFF DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE SWAP2 SWAP1 SWAP2 KECCAK256 SWAP1 SWAP2 PUSH2 0x1986 SWAP2 SWAP1 PUSH2 0x412B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ PUSH2 0x1A01 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E476F7665726E616E63654578656375746F723A3A726574 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x72794D6573736167653A206E6F74206120747275737465642072656D6F746500 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH2 0x1A0F DUP7 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0x2BBC JUMP JUMPDEST PUSH2 0x1384 PUSH1 0x1 PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH2 0x1A21 PUSH2 0x24B9 JUMP JUMPDEST PUSH2 0xFFFF DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP2 MLOAD SWAP3 DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE PUSH32 0x9D5C7C0B934DA8FEFA9C7760C98383778A12DFBFC0C3B3106518F43FB9508AC0 SWAP1 PUSH1 0x60 ADD PUSH2 0x1752 JUMP JUMPDEST PUSH2 0x1A8B PUSH2 0x24B9 JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x1AA9 DUP3 DUP5 DUP4 PUSH2 0x41A1 JUMP JUMPDEST POP PUSH32 0xFA41487AD5D6728F0B19276FA1EDDC16558578F5109FC39D2DC33C3230470DAB DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1752 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3F1A JUMP JUMPDEST PUSH2 0x1AE5 PUSH2 0x24B9 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1AF3 PUSH1 0x2 PUSH1 0x1 PUSH2 0x429D JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0xFF AND DUP3 MLOAD EQ PUSH2 0x1BBA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x6A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E476F7665726E616E63654578656375746F723A3A616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B733A6E756D626572206F662074696D656C6F636B73207368 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6F756C64206D6174636820746865206E756D626572206F6620676F7665726E61 PUSH1 0x84 DUP3 ADD MSTORE PUSH32 0x6E636520726F7574657300000000000000000000000000000000000000000000 PUSH1 0xA4 DUP3 ADD MSTORE PUSH1 0xC4 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 PUSH1 0xFF AND DUP2 PUSH1 0xFF AND LT ISZERO PUSH2 0x1CEF JUMPI PUSH2 0x1BF0 DUP4 DUP3 PUSH1 0xFF AND DUP2 MLOAD DUP2 LT PUSH2 0x1BE3 JUMPI PUSH2 0x1BE3 PUSH2 0x3DE9 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x29EE JUMP JUMPDEST DUP3 DUP2 PUSH1 0xFF AND DUP2 MLOAD DUP2 LT PUSH2 0x1C05 JUMPI PUSH2 0x1C05 PUSH2 0x3DE9 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0xFF DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xE DUP5 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD SWAP1 MLOAD SWAP2 DUP3 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 DUP4 AND SWAP4 SWAP3 AND SWAP2 PUSH32 0xFC45AE51AC4893A3F843D030FBFD4037C0C196109C9E667645B8F144C83C16EA SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP3 DUP2 PUSH1 0xFF AND DUP2 MLOAD DUP2 LT PUSH2 0x1C86 JUMPI PUSH2 0x1C86 PUSH2 0x3DE9 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0xFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x1 ADD PUSH2 0x1BBD JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x1CFC PUSH2 0x24B9 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x1D85 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH2 0x1D8E DUP2 PUSH2 0x2E0A JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x1D99 PUSH2 0x24B9 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1DA7 PUSH1 0x2 PUSH1 0x1 PUSH2 0x429D JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0xFF AND DUP3 PUSH1 0xFF AND LT PUSH2 0x1E4A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x4B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E476F7665726E616E63654578656375746F723A3A736574 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B50656E64696E6741646D696E3A20696E76616C6964207072 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6F706F73616C2074797065000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH1 0xFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD SWAP1 MLOAD PUSH32 0x4DD18BF500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x4DD18BF5 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1EC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1EDC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND DUP2 MSTORE PUSH1 0xFF DUP7 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x6AC0B2C896B49975F12891F83C573BDF05490FE6B707CBAA2BA84C36094CBAEC SWAP4 POP ADD SWAP1 POP PUSH2 0x1752 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xF5ECBDBC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH2 0xFFFF DUP1 DUP7 AND PUSH1 0x4 DUP4 ADD MSTORE DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE ADDRESS PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 SWAP1 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0xF5ECBDBC SWAP1 PUSH1 0x84 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1FD5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1FFD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x4306 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x200E PUSH2 0x2B63 JUMP JUMPDEST PUSH1 0x1 PUSH2 0x2019 DUP3 PUSH2 0xE40 JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x202A JUMPI PUSH2 0x202A PUSH2 0x3920 JUMP JUMPDEST EQ PUSH2 0x20C3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x53 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E476F7665726E616E63654578656375746F723A3A657865 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x637574653A2070726F706F73616C2063616E206F6E6C79206265206578656375 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x7465642069662069742069732071756575656400000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x6 DUP2 ADD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND PUSH2 0x100 OR SWAP1 DUP2 SWAP1 SSTORE PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND DUP5 MSTORE PUSH1 0xE SWAP1 SWAP3 MSTORE DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x1 DUP4 ADD SLOAD PUSH1 0x2 DUP5 ADD SLOAD SWAP3 MLOAD SWAP4 SWAP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP4 SWAP1 SWAP3 SWAP2 DUP7 SWAP2 PUSH32 0x712AE1383F79AC853F8D882153778E0260EF8F03B504E2866E0593E04D2B291F SWAP2 SWAP1 LOG2 PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2299 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x825F38F DUP7 PUSH1 0x2 ADD DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x21A4 JUMPI PUSH2 0x21A4 PUSH2 0x3DE9 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x3 DUP9 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 DUP6 SWAP1 DUP2 LT PUSH2 0x21DF JUMPI PUSH2 0x21DF PUSH2 0x3DE9 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP9 PUSH1 0x4 ADD DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x21FF JUMPI PUSH2 0x21FF PUSH2 0x3DE9 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP10 PUSH1 0x5 ADD DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x221E JUMPI PUSH2 0x221E PUSH2 0x3DE9 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP9 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2249 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3E95 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2268 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x2290 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x4306 JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x216B JUMP JUMPDEST POP POP POP PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE POP PUSH2 0x1D8E SWAP1 POP PUSH1 0x1 PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH1 0xB SLOAD PUSH2 0xFFFF DUP6 DUP2 AND PUSH21 0x10000000000000000000000000000000000000000 SWAP1 SWAP3 DIV AND EQ PUSH2 0x237B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x48 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E476F7665726E616E63654578656375746F723A3A5F626C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F636B696E674C7A526563656976653A20696E76616C696420736F7572636520 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x636861696E206964000000000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0xA53 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP3 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH1 0x0 SWAP1 ADDRESS SWAP1 PUSH4 0x66AD5C8A SWAP1 PUSH2 0x23A4 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x24 ADD PUSH2 0x4343 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP2 POP PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x2406 PUSH2 0x7530 GAS PUSH2 0x23FC SWAP2 SWAP1 PUSH2 0x3F67 JUMP JUMPDEST ADDRESS SWAP1 PUSH1 0x96 DUP7 PUSH2 0x2E81 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 PUSH2 0x24AF JUMPI PUSH2 0xFFFF DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SWAP1 MLOAD DUP6 SWAP2 SWAP1 PUSH2 0x2434 SWAP1 DUP11 SWAP1 PUSH2 0x4382 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 PUSH8 0xFFFFFFFFFFFFFFFF DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP2 MSTORE KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x2468 SWAP1 DUP9 SWAP1 PUSH2 0x4382 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP9 PUSH2 0xFFFF AND PUSH32 0x41D73CE7BE31A588D59FE9013CDCFE583BC0AAB25093D042B64CADE0DF730656 DUP9 DUP5 PUSH1 0x40 MLOAD PUSH2 0x24A6 SWAP3 SWAP2 SWAP1 PUSH2 0x439E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0xEE7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH2 0x2528 PUSH2 0x2F0C JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH2 0x2587 PUSH2 0x2F5E JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x259E SWAP2 SWAP1 PUSH2 0x43C1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP7 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x25BE SWAP2 SWAP1 PUSH2 0x4592 JUMP JUMPDEST PUSH1 0x0 DUP12 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP5 SWAP10 POP SWAP3 SWAP8 POP SWAP1 SWAP6 POP SWAP4 POP SWAP2 POP ISZERO PUSH2 0x2673 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x46 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E476F7665726E616E63654578656375746F723A3A5F6E6F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E626C6F636B696E674C7A526563656976653A206475706C6963617465207072 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6F706F73616C0000000000000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0xA53 JUMP JUMPDEST DUP4 MLOAD DUP6 MLOAD EQ DUP1 ISZERO PUSH2 0x2685 JUMPI POP DUP3 MLOAD DUP6 MLOAD EQ JUMPDEST DUP1 ISZERO PUSH2 0x2692 JUMPI POP DUP2 MLOAD DUP6 MLOAD EQ JUMPDEST PUSH2 0x272A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E476F7665726E616E63654578656375746F723A3A5F6E6F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E626C6F636B696E674C7A526563656976653A2070726F706F73616C2066756E PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6374696F6E20696E666F726D6174696F6E206172697479206D69736D61746368 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH2 0x2736 PUSH1 0x2 PUSH1 0x1 PUSH2 0x429D JUMP JUMPDEST PUSH1 0xFF AND DUP2 PUSH1 0xFF AND LT PUSH2 0x27D6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x49 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E476F7665726E616E63654578656375746F723A3A5F6E6F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E626C6F636B696E674C7A526563656976653A20696E76616C69642070726F70 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6F73616C20747970650000000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH2 0x27E0 DUP6 MLOAD PUSH2 0x2FB1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x120 DUP2 ADD DUP3 MSTORE DUP8 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 ADD DUP3 DUP2 MSTORE DUP4 DUP6 ADD DUP11 DUP2 MSTORE PUSH1 0x60 DUP6 ADD DUP11 SWAP1 MSTORE PUSH1 0x80 DUP6 ADD DUP10 SWAP1 MSTORE PUSH1 0xA0 DUP6 ADD DUP9 SWAP1 MSTORE PUSH1 0xC0 DUP6 ADD DUP5 SWAP1 MSTORE PUSH1 0xE0 DUP6 ADD DUP5 SWAP1 MSTORE PUSH1 0xFF DUP8 AND PUSH2 0x100 DUP7 ADD MSTORE DUP12 DUP5 MSTORE PUSH1 0xD DUP4 MSTORE SWAP5 SWAP1 SWAP3 KECCAK256 DUP4 MLOAD DUP2 SSTORE SWAP2 MLOAD PUSH1 0x1 DUP4 ADD SSTORE SWAP3 MLOAD DUP1 MLOAD SWAP3 SWAP4 DUP5 SWAP4 PUSH2 0x2859 SWAP3 PUSH1 0x2 DUP6 ADD SWAP3 ADD SWAP1 PUSH2 0x3571 JUMP JUMPDEST POP PUSH1 0x60 DUP3 ADD MLOAD DUP1 MLOAD PUSH2 0x2875 SWAP2 PUSH1 0x3 DUP5 ADD SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x35FB JUMP JUMPDEST POP PUSH1 0x80 DUP3 ADD MLOAD DUP1 MLOAD PUSH2 0x2891 SWAP2 PUSH1 0x4 DUP5 ADD SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3636 JUMP JUMPDEST POP PUSH1 0xA0 DUP3 ADD MLOAD DUP1 MLOAD PUSH2 0x28AD SWAP2 PUSH1 0x5 DUP5 ADD SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3688 JUMP JUMPDEST POP PUSH1 0xC0 DUP3 ADD MLOAD PUSH1 0x6 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH1 0xE0 DUP5 ADD MLOAD PUSH2 0x100 SWAP5 DUP6 ADD MLOAD PUSH1 0xFF AND PUSH3 0x10000 MUL PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF SWAP2 ISZERO ISZERO SWAP1 SWAP6 MUL PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF SWAP5 ISZERO ISZERO SWAP5 SWAP1 SWAP5 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP3 SWAP1 SWAP3 OR SWAP2 SWAP1 SWAP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0xC DUP8 SWAP1 SSTORE DUP1 MLOAD PUSH1 0x40 MLOAD PUSH32 0xC37D19C9A6A9A568B5071658F9B5082FF8F142DF3CF090385C5621AB11938065 SWAP1 PUSH2 0x2992 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH2 0x470B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH2 0x29A3 DUP8 PUSH2 0x3041 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x29B9 PUSH2 0x2F5E JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x2555 CALLER SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x1D8E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8579BEFE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x60 DUP2 PUSH2 0x2A49 DUP2 PUSH1 0x1F PUSH2 0x47D5 JUMP JUMPDEST LT ISZERO PUSH2 0x2A97 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x736C6963655F6F766572666C6F77000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH2 0x2AA1 DUP3 DUP5 PUSH2 0x47D5 JUMP JUMPDEST DUP5 MLOAD LT ISZERO PUSH2 0x2AF1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x736C6963655F6F75744F66426F756E6473000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH1 0x60 DUP3 ISZERO DUP1 ISZERO PUSH2 0x2B10 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x0 DUP3 MSTORE PUSH1 0x20 DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x2B5A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F DUP5 AND DUP1 ISZERO PUSH1 0x20 MUL DUP2 DUP5 ADD ADD DUP6 DUP2 ADD DUP8 DUP4 ISZERO PUSH1 0x20 MUL DUP5 DUP12 ADD ADD ADD JUMPDEST DUP2 DUP4 LT ISZERO PUSH2 0x2B49 JUMPI DUP1 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x2B31 JUMP JUMPDEST POP POP DUP6 DUP5 MSTORE PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x40 MSTORE POP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SLOAD SUB PUSH2 0x2BB5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5265656E7472616E637947756172643A207265656E7472616E742063616C6C00 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x2BDF SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0x3DD9 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD SWAP1 KECCAK256 PUSH8 0xFFFFFFFFFFFFFFFF DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP3 MSTORE SWAP1 KECCAK256 SLOAD SWAP1 POP DUP1 PUSH2 0x2C7A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A206E6F2073746F726564206D657373 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6167650000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA53 JUMP JUMPDEST DUP1 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x2C8B SWAP3 SWAP2 SWAP1 PUSH2 0x3DD9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ PUSH2 0x2D06 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A20696E76616C6964207061796C6F61 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6400000000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x2D29 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH2 0x3DD9 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD DUP2 KECCAK256 PUSH8 0xFFFFFFFFFFFFFFFF DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP1 DUP5 MSTORE DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0x1F DUP9 ADD DUP3 SWAP1 DIV DUP3 MUL DUP4 ADD DUP3 ADD SWAP1 MSTORE DUP7 DUP3 MSTORE PUSH2 0x2DC2 SWAP2 DUP10 SWAP2 DUP10 SWAP1 DUP10 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP11 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP9 DUP2 MSTORE DUP11 SWAP4 POP SWAP2 POP DUP9 SWAP1 DUP9 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x257F SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0xC264D91F3ADC5588250E1551F547752CA0CFA8F6B530D243B9F9F4CAB10EA8E5 DUP8 DUP8 DUP8 DUP8 DUP6 PUSH1 0x40 MLOAD PUSH2 0x2DF9 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x47E8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP7 PUSH2 0xFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2EA7 JUMPI PUSH2 0x2EA7 PUSH2 0x3990 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x2ED1 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP1 DUP8 MLOAD PUSH1 0x20 DUP10 ADD PUSH1 0x0 DUP14 DUP14 CALL SWAP2 POP RETURNDATASIZE SWAP3 POP DUP7 DUP4 GT ISZERO PUSH2 0x2EF3 JUMPI DUP7 SWAP3 POP JUMPDEST DUP3 DUP2 MSTORE DUP3 PUSH1 0x0 PUSH1 0x20 DUP4 ADD RETURNDATACOPY SWAP1 SWAP9 SWAP1 SWAP8 POP SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0xFF AND PUSH2 0xEE7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061757361626C653A206E6F7420706175736564000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xEE7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061757361626C653A2070617573656400000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0xA SLOAD TIMESTAMP SWAP2 SWAP1 PUSH3 0x15180 SWAP1 PUSH2 0x2FC9 SWAP1 DUP5 PUSH2 0x3F67 JUMP JUMPDEST GT ISZERO PUSH2 0x2FDB JUMPI POP PUSH1 0xA DUP2 SWAP1 SSTORE DUP2 PUSH2 0x2FE8 JUMP JUMPDEST PUSH2 0x2FE5 DUP4 DUP3 PUSH2 0x47D5 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x8 SLOAD DUP2 GT ISZERO PUSH2 0x303A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4461696C79205472616E73616374696F6E204C696D6974204578636565646564 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH1 0x9 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x6 DUP2 ADD SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND DUP5 MSTORE PUSH1 0xE DUP4 MSTORE DUP2 DUP5 KECCAK256 SLOAD DUP3 MLOAD PUSH32 0x6A42B8F800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP3 MLOAD SWAP2 SWAP5 SWAP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP3 PUSH4 0x6A42B8F8 SWAP3 PUSH1 0x4 DUP1 DUP4 ADD SWAP4 SWAP3 DUP3 SWAP1 SUB ADD DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x30D3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x30F7 SWAP2 SWAP1 PUSH2 0x4824 JUMP JUMPDEST PUSH2 0x3101 SWAP1 TIMESTAMP PUSH2 0x47D5 JUMP JUMPDEST PUSH1 0x1 DUP1 DUP5 ADD DUP3 SWAP1 SSTORE PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x6 DUP5 ADD SLOAD PUSH1 0x2 DUP6 ADD SLOAD SWAP2 MLOAD SWAP3 SWAP4 POP PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND SWAP2 DUP6 SWAP1 PUSH32 0x9A2E42FD6722813D69113E7D0079D3D940171428DF7373DF9C7F7617CFDA2892 SWAP1 PUSH2 0x316F SWAP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1384 JUMPI PUSH2 0x3337 DUP6 PUSH1 0x2 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x319A JUMPI PUSH2 0x319A PUSH2 0x3DE9 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x3 DUP8 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 DUP5 SWAP1 DUP2 LT PUSH2 0x31D5 JUMPI PUSH2 0x31D5 PUSH2 0x3DE9 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP8 PUSH1 0x4 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x31F5 JUMPI PUSH2 0x31F5 PUSH2 0x3DE9 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP1 SLOAD PUSH2 0x320A SWAP1 PUSH2 0x3D8C JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3236 SWAP1 PUSH2 0x3D8C JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3283 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3258 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3283 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3266 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP9 PUSH1 0x5 ADD DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x329D JUMPI PUSH2 0x329D PUSH2 0x3DE9 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP1 SLOAD PUSH2 0x32B2 SWAP1 PUSH2 0x3D8C JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x32DE SWAP1 PUSH2 0x3D8C JUMP JUMPDEST DUP1 ISZERO PUSH2 0x332B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3300 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x332B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x330E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP9 DUP9 PUSH2 0x333F JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x317A JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SLOAD SWAP2 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 PUSH4 0xF2B06537 SWAP2 PUSH2 0x338B SWAP2 DUP11 SWAP2 DUP11 SWAP2 DUP11 SWAP2 DUP11 SWAP2 DUP11 SWAP2 ADD PUSH2 0x483D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x33BF SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x33DC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3400 SWAP2 SWAP1 PUSH2 0x4884 JUMP JUMPDEST ISZERO PUSH2 0x34BF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x63 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E476F7665726E616E63654578656375746F723A3A717565 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x75654F72526576657274496E7465726E616C3A206964656E746963616C207072 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6F706F73616C20616374696F6E20616C72656164792071756575656420617420 PUSH1 0x84 DUP3 ADD MSTORE PUSH32 0x6574610000000000000000000000000000000000000000000000000000000000 PUSH1 0xA4 DUP3 ADD MSTORE PUSH1 0xC4 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD SWAP1 MLOAD PUSH32 0x3A66F90100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP1 PUSH4 0x3A66F901 SWAP1 PUSH2 0x352E SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x483D JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x354D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC1E SWAP2 SWAP1 PUSH2 0x4824 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x35EB JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x35EB JUMPI DUP3 MLOAD DUP3 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND OR DUP3 SSTORE PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3591 JUMP JUMPDEST POP PUSH2 0x35F7 SWAP3 SWAP2 POP PUSH2 0x36DA JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x35EB JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x35EB JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x361B JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x367C JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x367C JUMPI DUP3 MLOAD DUP3 SWAP1 PUSH2 0x366C SWAP1 DUP3 PUSH2 0x4001 JUMP JUMPDEST POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x3656 JUMP JUMPDEST POP PUSH2 0x35F7 SWAP3 SWAP2 POP PUSH2 0x36EF JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x36CE JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x36CE JUMPI DUP3 MLOAD DUP3 SWAP1 PUSH2 0x36BE SWAP1 DUP3 PUSH2 0x4001 JUMP JUMPDEST POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x36A8 JUMP JUMPDEST POP PUSH2 0x35F7 SWAP3 SWAP2 POP PUSH2 0x370C JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x35F7 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x36DB JUMP JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x35F7 JUMPI PUSH1 0x0 PUSH2 0x3703 DUP3 DUP3 PUSH2 0x3729 JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x36EF JUMP JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x35F7 JUMPI PUSH1 0x0 PUSH2 0x3720 DUP3 DUP3 PUSH2 0x3729 JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x370C JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x3735 SWAP1 PUSH2 0x3D8C JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x3745 JUMPI POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1D8E SWAP2 SWAP1 PUSH2 0x36DA JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x3775 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x378C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x37A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x37BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x3775 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x37F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x37FD DUP8 PUSH2 0x3763 JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x381A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3826 DUP11 DUP4 DUP12 ADD PUSH2 0x377A JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP DUP6 SWAP2 POP PUSH2 0x383A PUSH1 0x40 DUP11 ADD PUSH2 0x37C3 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x3850 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x385D DUP10 DUP3 DUP11 ADD PUSH2 0x377A JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 POP SWAP3 SWAP6 SWAP4 SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3881 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x389A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE39 DUP3 PUSH2 0x3763 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x38B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x38BF DUP4 PUSH2 0x3763 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x38E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x38EB DUP5 PUSH2 0x3763 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3907 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3913 DUP7 DUP3 DUP8 ADD PUSH2 0x377A JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x3 DUP4 LT PUSH2 0x398A JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x39E8 JUMPI PUSH2 0x39E8 PUSH2 0x3990 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x3A0A JUMPI PUSH2 0x3A0A PUSH2 0x3990 JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3A2D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3A36 DUP5 PUSH2 0x3763 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3A52 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 ADD PUSH1 0x1F DUP2 ADD DUP7 SGT PUSH2 0x3A63 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x3A76 PUSH2 0x3A71 DUP3 PUSH2 0x39F0 JUMP JUMPDEST PUSH2 0x39BF JUMP JUMPDEST DUP2 DUP2 MSTORE DUP8 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x3A8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP4 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP PUSH2 0x3AB0 PUSH1 0x40 DUP6 ADD PUSH2 0x37C3 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3AD4 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x3ABC JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x3AF5 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x3AB9 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xE39 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x3ADD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x1D8E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3B50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xE39 DUP2 PUSH2 0x3B1C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3B6E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3B77 DUP4 PUSH2 0x3763 JUMP JUMPDEST SWAP2 POP PUSH2 0x3B85 PUSH1 0x20 DUP5 ADD PUSH2 0x3763 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x3BA6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3BAF DUP7 PUSH2 0x3763 JUMP JUMPDEST SWAP5 POP PUSH2 0x3BBD PUSH1 0x20 DUP8 ADD PUSH2 0x3763 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3BE0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3BEC DUP9 DUP3 DUP10 ADD PUSH2 0x377A JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3C12 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3C1B DUP5 PUSH2 0x3763 JUMP JUMPDEST SWAP3 POP PUSH2 0x3C29 PUSH1 0x20 DUP6 ADD PUSH2 0x3763 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x3C53 JUMPI PUSH2 0x3C53 PUSH2 0x3990 JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3C70 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3C87 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x3C98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x3CA6 PUSH2 0x3A71 DUP3 PUSH2 0x3C39 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x5 SWAP2 SWAP1 SWAP2 SHL DUP3 ADD DUP4 ADD SWAP1 DUP4 DUP2 ADD SWAP1 DUP8 DUP4 GT ISZERO PUSH2 0x3CC5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 DUP5 ADD SWAP3 JUMPDEST DUP3 DUP5 LT ISZERO PUSH2 0x3CEC JUMPI DUP4 CALLDATALOAD PUSH2 0x3CDD DUP2 PUSH2 0x3B1C JUMP JUMPDEST DUP3 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP1 DUP5 ADD SWAP1 PUSH2 0x3CCA JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x1D8E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3D19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x3D24 DUP2 PUSH2 0x3B1C JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x3D34 DUP2 PUSH2 0x3CF7 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x3D55 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3D5E DUP6 PUSH2 0x3763 JUMP JUMPDEST SWAP4 POP PUSH2 0x3D6C PUSH1 0x20 DUP7 ADD PUSH2 0x3763 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x3D7C DUP2 PUSH2 0x3B1C JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x3DA0 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xED1 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH2 0x3E25 DUP2 PUSH2 0x3D8C JUMP JUMPDEST DUP1 DUP6 MSTORE PUSH1 0x20 PUSH1 0x1 DUP4 DUP2 AND DUP1 ISZERO PUSH2 0x3E42 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x3E5C JUMPI PUSH2 0x3E8A JUMP JUMPDEST PUSH1 0xFF NOT DUP6 AND DUP4 DUP10 ADD MSTORE DUP3 DUP5 ISZERO ISZERO PUSH1 0x5 SHL DUP10 ADD ADD SWAP6 POP PUSH2 0x3E8A JUMP JUMPDEST DUP7 PUSH1 0x0 MSTORE DUP3 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x3E82 JUMPI DUP2 SLOAD DUP11 DUP3 ADD DUP7 ADD MSTORE SWAP1 DUP4 ADD SWAP1 DUP5 ADD PUSH2 0x3E67 JUMP JUMPDEST DUP10 ADD DUP5 ADD SWAP7 POP POP JUMPDEST POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 AND DUP2 MSTORE DUP5 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x3ECA PUSH1 0xA0 DUP4 ADD DUP7 PUSH2 0x3E18 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x3EDC DUP2 DUP7 PUSH2 0x3E18 JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x80 DUP4 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 ADD ADD MSTORE PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP5 ADD AND DUP5 ADD ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1FFD PUSH1 0x40 DUP4 ADD DUP5 DUP7 PUSH2 0x3EEF JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x3F7A JUMPI PUSH2 0x3F7A PUSH2 0x3F38 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP5 DUP3 CALLDATACOPY PUSH1 0x60 SWAP2 SWAP1 SWAP2 SHL PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 AND SWAP2 ADD SWAP1 DUP2 MSTORE PUSH1 0x14 ADD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1CEF JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x3FE2 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1384 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x3FEE JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x401B JUMPI PUSH2 0x401B PUSH2 0x3990 JUMP JUMPDEST PUSH2 0x402F DUP2 PUSH2 0x4029 DUP5 SLOAD PUSH2 0x3D8C JUMP JUMPDEST DUP5 PUSH2 0x3FB9 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x4082 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x404C JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x1384 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x40B1 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x4092 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x40ED JUMPI DUP8 DUP6 ADD MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP1 DUP9 AND DUP4 MSTORE DUP1 DUP8 AND PUSH1 0x20 DUP5 ADD MSTORE POP DUP5 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x3CEC PUSH1 0x80 DUP4 ADD DUP5 DUP7 PUSH2 0x3EEF JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 SLOAD PUSH2 0x4139 DUP2 PUSH2 0x3D8C JUMP JUMPDEST PUSH1 0x1 DUP3 DUP2 AND DUP1 ISZERO PUSH2 0x4151 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x4166 JUMPI PUSH2 0x4195 JUMP JUMPDEST PUSH1 0xFF NOT DUP5 AND DUP8 MSTORE DUP3 ISZERO ISZERO DUP4 MUL DUP8 ADD SWAP5 POP PUSH2 0x4195 JUMP JUMPDEST DUP8 PUSH1 0x0 MSTORE PUSH1 0x20 DUP1 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x418C JUMPI DUP2 SLOAD DUP11 DUP3 ADD MSTORE SWAP1 DUP5 ADD SWAP1 DUP3 ADD PUSH2 0x4173 JUMP JUMPDEST POP POP POP DUP3 DUP8 ADD SWAP5 POP JUMPDEST POP SWAP3 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP4 GT ISZERO PUSH2 0x41B9 JUMPI PUSH2 0x41B9 PUSH2 0x3990 JUMP JUMPDEST PUSH2 0x41CD DUP4 PUSH2 0x41C7 DUP4 SLOAD PUSH2 0x3D8C JUMP JUMPDEST DUP4 PUSH2 0x3FB9 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP5 GT PUSH1 0x1 DUP2 EQ PUSH2 0x421F JUMPI PUSH1 0x0 DUP6 ISZERO PUSH2 0x41E9 JUMPI POP DUP4 DUP3 ADD CALLDATALOAD JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP8 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP7 SWAP1 SHL OR DUP4 SSTORE PUSH2 0xCCF JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP1 DUP4 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x4250 JUMPI DUP7 DUP6 ADD CALLDATALOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x4230 JUMP JUMPDEST POP DUP7 DUP3 LT ISZERO PUSH2 0x428B JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0xF8 DUP9 PUSH1 0x3 SHL AND SHR NOT DUP5 DUP8 ADD CALLDATALOAD AND DUP2 SSTORE JUMPDEST POP POP PUSH1 0x1 DUP6 PUSH1 0x1 SHL ADD DUP4 SSTORE POP POP POP POP POP JUMP JUMPDEST PUSH1 0xFF DUP2 DUP2 AND DUP4 DUP3 AND ADD SWAP1 DUP2 GT ISZERO PUSH2 0x3F7A JUMPI PUSH2 0x3F7A PUSH2 0x3F38 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x42C4 PUSH2 0x3A71 DUP5 PUSH2 0x39F0 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE DUP4 DUP4 DUP4 ADD GT ISZERO PUSH2 0x42D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE39 DUP4 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x3AB9 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x42F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE39 DUP4 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH2 0x42B6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4318 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x432F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x433B DUP5 DUP3 DUP6 ADD PUSH2 0x42E6 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP6 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x4360 PUSH1 0x80 DUP4 ADD DUP7 PUSH2 0x3ADD JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x3CEC DUP2 DUP6 PUSH2 0x3ADD JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x4394 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x3AB9 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x433B PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x3ADD JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x43D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x43EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43F7 DUP6 DUP3 DUP7 ADD PUSH2 0x42E6 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4419 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 PUSH2 0x4429 PUSH2 0x3A71 DUP4 PUSH2 0x3C39 JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP5 PUSH1 0x5 SHL DUP8 ADD ADD SWAP4 POP DUP7 DUP5 GT ISZERO PUSH2 0x444B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x4467 JUMPI DUP1 MLOAD DUP4 MSTORE SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x4450 JUMP JUMPDEST POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4483 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 PUSH2 0x4493 PUSH2 0x3A71 DUP4 PUSH2 0x3C39 JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 SWAP1 SWAP3 SHL DUP5 ADD DUP2 ADD SWAP2 DUP2 DUP2 ADD SWAP1 DUP7 DUP5 GT ISZERO PUSH2 0x44B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x4467 JUMPI DUP1 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x44D6 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST DUP8 ADD PUSH1 0x3F DUP2 ADD DUP10 SGT PUSH2 0x44E8 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x44F9 DUP10 DUP7 DUP4 ADD MLOAD PUSH1 0x40 DUP5 ADD PUSH2 0x42B6 JUMP JUMPDEST DUP5 MSTORE POP SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x44B6 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4518 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 PUSH2 0x4528 PUSH2 0x3A71 DUP4 PUSH2 0x3C39 JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 SWAP1 SWAP3 SHL DUP5 ADD DUP2 ADD SWAP2 DUP2 DUP2 ADD SWAP1 DUP7 DUP5 GT ISZERO PUSH2 0x4547 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x4467 JUMPI DUP1 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x456B JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x4579 DUP10 DUP7 DUP4 DUP12 ADD ADD PUSH2 0x42E6 JUMP JUMPDEST DUP5 MSTORE POP SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x454B JUMP JUMPDEST DUP1 MLOAD PUSH2 0x3775 DUP2 PUSH2 0x3CF7 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x45AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x45C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP9 ADD SWAP2 POP DUP9 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x45D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 PUSH2 0x45E6 PUSH2 0x3A71 DUP4 PUSH2 0x3C39 JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 SWAP1 SWAP3 SHL DUP5 ADD DUP2 ADD SWAP2 DUP2 DUP2 ADD SWAP1 DUP13 DUP5 GT ISZERO PUSH2 0x4605 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP5 DUP3 ADD SWAP5 JUMPDEST DUP4 DUP7 LT ISZERO PUSH2 0x462C JUMPI DUP6 MLOAD PUSH2 0x461D DUP2 PUSH2 0x3B1C JUMP JUMPDEST DUP3 MSTORE SWAP5 DUP3 ADD SWAP5 SWAP1 DUP3 ADD SWAP1 PUSH2 0x460A JUMP JUMPDEST SWAP2 DUP12 ADD MLOAD SWAP2 SWAP10 POP SWAP1 SWAP4 POP POP POP DUP1 DUP3 GT ISZERO PUSH2 0x4645 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4651 DUP10 DUP4 DUP11 ADD PUSH2 0x4408 JUMP JUMPDEST SWAP6 POP PUSH1 0x40 DUP9 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x4667 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4673 DUP10 DUP4 DUP11 ADD PUSH2 0x4472 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x4689 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4696 DUP9 DUP3 DUP10 ADD PUSH2 0x4507 JUMP JUMPDEST SWAP3 POP POP PUSH2 0x46A5 PUSH1 0x80 DUP8 ADD PUSH2 0x4587 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MLOAD DUP1 DUP6 MSTORE PUSH1 0x20 DUP1 DUP7 ADD SWAP6 POP PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP5 ADD ADD PUSH1 0x20 DUP7 ADD PUSH1 0x0 JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x46FE JUMPI PUSH1 0x1F NOT DUP7 DUP5 SUB ADD DUP10 MSTORE PUSH2 0x46EC DUP4 DUP4 MLOAD PUSH2 0x3ADD JUMP JUMPDEST SWAP9 DUP5 ADD SWAP9 SWAP3 POP SWAP1 DUP4 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x46D0 JUMP JUMPDEST POP SWAP1 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xA0 DUP1 DUP3 MSTORE DUP7 MLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x20 SWAP1 PUSH1 0xC0 DUP5 ADD SWAP1 DUP3 DUP11 ADD DUP5 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x475A JUMPI DUP2 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x4728 JUMP JUMPDEST POP POP POP DUP4 DUP2 SUB DUP3 DUP6 ADD MSTORE DUP8 MLOAD DUP1 DUP3 MSTORE DUP9 DUP4 ADD SWAP2 DUP4 ADD SWAP1 PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x478F JUMPI DUP4 MLOAD DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x4773 JUMP JUMPDEST POP POP DUP5 DUP2 SUB PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0x47A3 DUP2 DUP10 PUSH2 0x46B1 JUMP JUMPDEST SWAP3 POP POP POP DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x47B9 DUP2 DUP7 PUSH2 0x46B1 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x47CB PUSH1 0x80 DUP4 ADD DUP5 PUSH1 0xFF AND SWAP1 MSTORE JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x3F7A JUMPI PUSH2 0x3F7A PUSH2 0x3F38 JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x4806 PUSH1 0x80 DUP4 ADD DUP7 DUP9 PUSH2 0x3EEF JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF SWAP5 SWAP1 SWAP5 AND PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4836 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 AND DUP2 MSTORE DUP5 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x4872 PUSH1 0xA0 DUP4 ADD DUP7 PUSH2 0x3ADD JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x3EDC DUP2 DUP7 PUSH2 0x3ADD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4896 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xE39 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x22 ADDRESS PUSH30 0x7E31580ECE44A0E9ADF66C14789502C9D5B0F18F4226ABAA5E33B1824164 PUSH20 0x6F6C634300081900330000000000000000000000 ","sourceMap":"1113:15302:52:-:0;;;4618:221;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1716:1:34;1821:7;:22;4716:9:52;;;936:32:32;734:10:39;936:18:32;:32::i;:::-;-1:-1:-1;;;;;1201:42:18;;;-1:-1:-1;996:7:33;:15;;-1:-1:-1;;996:15:33;;;1451:31:49::1;1472:9:::0;1451:20:::1;:31::i;:::-;-1:-1:-1::0;4737:31:52::1;4758:9:::0;4737:20:::1;:31::i;:::-;4778:8;:20:::0;;4808:24:::1;::::0;;::::1;-1:-1:-1::0;;;4808:24:52::1;-1:-1:-1::0;;;;;;4808:24:52;;;-1:-1:-1;;;;;4778:20:52;;::::1;4808:24:::0;;;;::::1;::::0;;-1:-1:-1;1113:15302:52;;2426:187:32;2518:6;;;-1:-1:-1;;;;;2534:17:32;;;-1:-1:-1;;;;;;2534:17:32;;;;;;;2566:40;;2518:6;;;2534:17;2518:6;;2566:40;;2499:16;;2566:40;2489:124;2426:187;:::o;485:136:47:-;-1:-1:-1;;;;;548:22:47;;544:75;;589:23;;-1:-1:-1;;;589:23:47;;;;;;;;;;;544:75;485:136;:::o;14:177:97:-;93:13;;-1:-1:-1;;;;;135:31:97;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:446::-;283:6;291;299;352:2;340:9;331:7;327:23;323:32;320:52;;;368:1;365;358:12;320:52;391:40;421:9;391:40;:::i;:::-;381:50;;450:49;495:2;484:9;480:18;450:49;:::i;:::-;440:59;;542:2;531:9;527:18;521:25;586:6;579:5;575:18;568:5;565:29;555:57;;608:1;605;598:12;555:57;631:5;621:15;;;196:446;;;;;:::o;:::-;1113:15302:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@DEFAULT_PAYLOAD_SIZE_LIMIT_3344":{"entryPoint":null,"id":3344,"parameterSlots":0,"returnSlots":0},"@_blockingLzReceive_12415":{"entryPoint":8895,"id":12415,"parameterSlots":4,"returnSlots":0},"@_checkOwner_7018":{"entryPoint":9401,"id":7018,"parameterSlots":0,"returnSlots":0},"@_isEligibleToReceive_11127":{"entryPoint":12209,"id":11127,"parameterSlots":1,"returnSlots":0},"@_msgSender_8081":{"entryPoint":null,"id":8081,"parameterSlots":0,"returnSlots":1},"@_nonReentrantAfter_7237":{"entryPoint":null,"id":7237,"parameterSlots":0,"returnSlots":0},"@_nonReentrantBefore_7229":{"entryPoint":11107,"id":7229,"parameterSlots":0,"returnSlots":0},"@_nonblockingLzReceive_12571":{"entryPoint":9599,"id":12571,"parameterSlots":4,"returnSlots":0},"@_pause_7167":{"entryPoint":10673,"id":7167,"parameterSlots":0,"returnSlots":0},"@_queueOrRevertInternal_12705":{"entryPoint":13119,"id":12705,"parameterSlots":6,"returnSlots":0},"@_queue_12657":{"entryPoint":12353,"id":12657,"parameterSlots":1,"returnSlots":0},"@_requireNotPaused_7140":{"entryPoint":12126,"id":7140,"parameterSlots":0,"returnSlots":0},"@_requirePaused_7151":{"entryPoint":12044,"id":7151,"parameterSlots":0,"returnSlots":0},"@_transferOwnership_7075":{"entryPoint":11786,"id":7075,"parameterSlots":1,"returnSlots":0},"@_unpause_7183":{"entryPoint":9504,"id":7183,"parameterSlots":0,"returnSlots":0},"@addTimelocks_12020":{"entryPoint":6877,"id":12020,"parameterSlots":1,"returnSlots":0},"@cancel_12212":{"entryPoint":3817,"id":12212,"parameterSlots":1,"returnSlots":0},"@ensureNonzeroAddress_10945":{"entryPoint":10734,"id":10945,"parameterSlots":1,"returnSlots":0},"@excessivelySafeCall_3268":{"entryPoint":11905,"id":3268,"parameterSlots":4,"returnSlots":2},"@execute_12113":{"entryPoint":8198,"id":12113,"parameterSlots":1,"returnSlots":0},"@failedMessages_3893":{"entryPoint":null,"id":3893,"parameterSlots":0,"returnSlots":0},"@forceResumeReceive_3704":{"entryPoint":4589,"id":3704,"parameterSlots":3,"returnSlots":0},"@getConfig_3632":{"entryPoint":7983,"id":3632,"parameterSlots":4,"returnSlots":1},"@getTrustedRemoteAddress_3784":{"entryPoint":5575,"id":3784,"parameterSlots":1,"returnSlots":1},"@guardian_11765":{"entryPoint":null,"id":11765,"parameterSlots":0,"returnSlots":0},"@isTrustedRemote_3866":{"entryPoint":3443,"id":3866,"parameterSlots":3,"returnSlots":1},"@last24HourCommandsReceived_11013":{"entryPoint":null,"id":11013,"parameterSlots":0,"returnSlots":0},"@last24HourReceiveWindowStart_11016":{"entryPoint":null,"id":11016,"parameterSlots":0,"returnSlots":0},"@lastProposalReceived_11771":{"entryPoint":null,"id":11771,"parameterSlots":0,"returnSlots":0},"@lzEndpoint_3347":{"entryPoint":null,"id":3347,"parameterSlots":0,"returnSlots":0},"@lzReceive_3458":{"entryPoint":2514,"id":3458,"parameterSlots":6,"returnSlots":0},"@maxDailyReceiveLimit_11010":{"entryPoint":null,"id":11010,"parameterSlots":0,"returnSlots":0},"@minDstGasLookup_3357":{"entryPoint":null,"id":3357,"parameterSlots":0,"returnSlots":0},"@nonblockingLzReceive_4028":{"entryPoint":4761,"id":4028,"parameterSlots":6,"returnSlots":0},"@owner_7004":{"entryPoint":null,"id":7004,"parameterSlots":0,"returnSlots":1},"@pause_11064":{"entryPoint":5158,"id":11064,"parameterSlots":0,"returnSlots":0},"@paused_7128":{"entryPoint":null,"id":7128,"parameterSlots":0,"returnSlots":1},"@payloadSizeLimitLookup_3361":{"entryPoint":null,"id":3361,"parameterSlots":0,"returnSlots":0},"@precrime_3363":{"entryPoint":null,"id":3363,"parameterSlots":0,"returnSlots":0},"@proposalTimelocks_11783":{"entryPoint":null,"id":11783,"parameterSlots":0,"returnSlots":0},"@proposals_11777":{"entryPoint":null,"id":11777,"parameterSlots":0,"returnSlots":0},"@queued_11788":{"entryPoint":null,"id":11788,"parameterSlots":0,"returnSlots":0},"@renounceOwnership_11080":{"entryPoint":null,"id":11080,"parameterSlots":0,"returnSlots":0},"@retryMessage_12294":{"entryPoint":6461,"id":12294,"parameterSlots":6,"returnSlots":0},"@retryMessage_4107":{"entryPoint":11196,"id":4107,"parameterSlots":6,"returnSlots":0},"@setConfig_3656":{"entryPoint":6274,"id":3656,"parameterSlots":5,"returnSlots":0},"@setGuardian_11945":{"entryPoint":5174,"id":11945,"parameterSlots":1,"returnSlots":0},"@setMaxDailyReceiveLimit_11054":{"entryPoint":5502,"id":11054,"parameterSlots":1,"returnSlots":0},"@setMinDstGas_3826":{"entryPoint":6681,"id":3826,"parameterSlots":3,"returnSlots":0},"@setPayloadSizeLimit_3842":{"entryPoint":3286,"id":3842,"parameterSlots":2,"returnSlots":0},"@setPrecrime_3800":{"entryPoint":5983,"id":3800,"parameterSlots":1,"returnSlots":0},"@setReceiveVersion_3686":{"entryPoint":3317,"id":3686,"parameterSlots":1,"returnSlots":0},"@setSendVersion_3671":{"entryPoint":3111,"id":3671,"parameterSlots":1,"returnSlots":0},"@setSrcChainId_11911":{"entryPoint":6112,"id":11911,"parameterSlots":1,"returnSlots":0},"@setTimelockPendingAdmin_12254":{"entryPoint":7569,"id":12254,"parameterSlots":2,"returnSlots":0},"@setTrustedRemoteAddress_3753":{"entryPoint":5846,"id":3753,"parameterSlots":3,"returnSlots":0},"@setTrustedRemote_3725":{"entryPoint":6787,"id":3725,"parameterSlots":3,"returnSlots":0},"@slice_2959":{"entryPoint":10811,"id":2959,"parameterSlots":3,"returnSlots":1},"@srcChainId_11768":{"entryPoint":null,"id":11768,"parameterSlots":0,"returnSlots":0},"@state_12337":{"entryPoint":3648,"id":12337,"parameterSlots":1,"returnSlots":1},"@transferOwnership_7055":{"entryPoint":7412,"id":7055,"parameterSlots":1,"returnSlots":0},"@trustedRemoteLookup_3351":{"entryPoint":5004,"id":3351,"parameterSlots":0,"returnSlots":0},"@unpause_11074":{"entryPoint":3799,"id":11074,"parameterSlots":0,"returnSlots":0},"abi_decode_array_bytes_dyn_fromMemory":{"entryPoint":17671,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_array_string_dyn_fromMemory":{"entryPoint":17522,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_array_uint256_dyn_fromMemory":{"entryPoint":17416,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_available_length_bytes_fromMemory":{"entryPoint":17078,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_bytes_calldata":{"entryPoint":14202,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_bytes_fromMemory":{"entryPoint":17126,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":15166,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_uint8":{"entryPoint":15622,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_string_memory_ptr_$dyn_memory_ptrt_array$_t_bytes_memory_ptr_$dyn_memory_ptrt_uint8_fromMemory":{"entryPoint":17810,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_array$_t_contract$_ITimelock_$13525_$dyn_memory_ptr":{"entryPoint":15453,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":18564,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_memory_ptr_fromMemory":{"entryPoint":17158,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_memory_ptrt_uint256_fromMemory":{"entryPoint":17345,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint16":{"entryPoint":14472,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint16t_bytes_calldata_ptr":{"entryPoint":14541,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_uint64t_bytes_calldata_ptr":{"entryPoint":14299,"id":null,"parameterSlots":2,"returnSlots":6},"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint64":{"entryPoint":14872,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_uint16":{"entryPoint":15195,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint16t_uint16t_addresst_uint256":{"entryPoint":15679,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint16t_uint16t_uint256":{"entryPoint":15357,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_calldata_ptr":{"entryPoint":15246,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_uint16t_uint256":{"entryPoint":14499,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256":{"entryPoint":14447,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":18468,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_uint16":{"entryPoint":14179,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint64":{"entryPoint":14275,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint8_fromMemory":{"entryPoint":17799,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_array_string_dyn":{"entryPoint":18097,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_bytes":{"entryPoint":15069,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_bytes_calldata":{"entryPoint":16111,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_string_storage":{"entryPoint":15896,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":15833,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_calldata_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed":{"entryPoint":16256,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":17282,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_storage__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":16683,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__to_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed":{"entryPoint":18493,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_string_storage_t_bytes_storage_t_uint256__to_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed":{"entryPoint":16021,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_address_t_uint8__to_t_address_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_uint8__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_uint8__fromStack_reversed":{"entryPoint":18187,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":15113,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_ILayerZeroEndpoint_$4253__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_ITimelock_$13525__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_enum$_ProposalState_$11762__to_t_uint8__fromStack_reversed":{"entryPoint":14671,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_2803d9538cd5469ac5fa2c9532b3ddc0b845796807f5a1c18ddcf2f3ee49776b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_32080da14e7022f3ae138ecc980607030d5549ab2e1d714a8c2cbabbb48261e4__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4258c99d44f362f78e979b44d639851c2c0ef199c76ece73b41f8dc6845abafe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_6f48fffb767fcd1a10142050a1c2f0fa4d3752673ff6e94ff8b534dd8a3a82bb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_73269ca63e07077728e117499df129cf16ffbb7f2e384ee0422cb3a9906cbd6f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7f1ab6dca0c040aececbb4df1c67ab1f13c05f495e8356647158d9e65e565e3b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_8604b21a2334391c4295b76ee13c85fa92759d2c1e0134eda5b5a12de87b6756__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_8864d14fd204ea66650b5ca543c106bdc1f9dca39811219c69678312ec6eb275__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d275682feaebe22ea68148a3f20b1a2d3f04f7bd9d77ea436ebdac94de138df7__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_dcd823307e0cf8e2924ffc4da406ac40a542bd139ef180667b9ac44d3c4e1ed9__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e4bcaaea546383f3f12ee7e8affb6838fe2629172da652fe547c7dfbf4d39f35__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f08e2b8e61b5846c8974e694064edfd99da14433722704c9122062e543c20627__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fb16e4905cd1d461f30a69908479246c84efc58d7cbdb9b1113d7d74e2108621__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":16154,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes32__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes32__fromStack_reversed":{"entryPoint":18408,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":17219,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_uint16_t_uint16_t_address_t_uint256__to_t_uint16_t_uint16_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_uint16_t_uint16_t_uint256__to_t_uint16_t_uint16_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_uint16_t_uint16_t_uint256_t_bytes_calldata_ptr__to_t_uint16_t_uint16_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":16637,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256_t_bool_t_bool_t_uint8__to_t_uint256_t_uint256_t_bool_t_bool_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint64_t_bytes_memory_ptr__to_t_uint64_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":17310,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_uint8":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"allocate_memory":{"entryPoint":14783,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_array_contract_ITimelock_dyn":{"entryPoint":15417,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_bytes":{"entryPoint":14832,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":18389,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint8":{"entryPoint":17053,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":16231,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_bytes_storage":{"entryPoint":16313,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_bytes_calldata_ptr_to_t_bytes_storage":{"entryPoint":16801,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage":{"entryPoint":16385,"id":null,"parameterSlots":2,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":15033,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":15756,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":16184,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":14624,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":15849,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":14736,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":15132,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_uint8":{"entryPoint":15607,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:46076:97","nodeType":"YulBlock","src":"0:46076:97","statements":[{"nativeSrc":"6:3:97","nodeType":"YulBlock","src":"6:3:97","statements":[]},{"body":{"nativeSrc":"62:111:97","nodeType":"YulBlock","src":"62:111:97","statements":[{"nativeSrc":"72:29:97","nodeType":"YulAssignment","src":"72:29:97","value":{"arguments":[{"name":"offset","nativeSrc":"94:6:97","nodeType":"YulIdentifier","src":"94:6:97"}],"functionName":{"name":"calldataload","nativeSrc":"81:12:97","nodeType":"YulIdentifier","src":"81:12:97"},"nativeSrc":"81:20:97","nodeType":"YulFunctionCall","src":"81:20:97"},"variableNames":[{"name":"value","nativeSrc":"72:5:97","nodeType":"YulIdentifier","src":"72:5:97"}]},{"body":{"nativeSrc":"151:16:97","nodeType":"YulBlock","src":"151:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"160:1:97","nodeType":"YulLiteral","src":"160:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"163:1:97","nodeType":"YulLiteral","src":"163:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"153:6:97","nodeType":"YulIdentifier","src":"153:6:97"},"nativeSrc":"153:12:97","nodeType":"YulFunctionCall","src":"153:12:97"},"nativeSrc":"153:12:97","nodeType":"YulExpressionStatement","src":"153:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"123:5:97","nodeType":"YulIdentifier","src":"123:5:97"},{"arguments":[{"name":"value","nativeSrc":"134:5:97","nodeType":"YulIdentifier","src":"134:5:97"},{"kind":"number","nativeSrc":"141:6:97","nodeType":"YulLiteral","src":"141:6:97","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"130:3:97","nodeType":"YulIdentifier","src":"130:3:97"},"nativeSrc":"130:18:97","nodeType":"YulFunctionCall","src":"130:18:97"}],"functionName":{"name":"eq","nativeSrc":"120:2:97","nodeType":"YulIdentifier","src":"120:2:97"},"nativeSrc":"120:29:97","nodeType":"YulFunctionCall","src":"120:29:97"}],"functionName":{"name":"iszero","nativeSrc":"113:6:97","nodeType":"YulIdentifier","src":"113:6:97"},"nativeSrc":"113:37:97","nodeType":"YulFunctionCall","src":"113:37:97"},"nativeSrc":"110:57:97","nodeType":"YulIf","src":"110:57:97"}]},"name":"abi_decode_uint16","nativeSrc":"14:159:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"41:6:97","nodeType":"YulTypedName","src":"41:6:97","type":""}],"returnVariables":[{"name":"value","nativeSrc":"52:5:97","nodeType":"YulTypedName","src":"52:5:97","type":""}],"src":"14:159:97"},{"body":{"nativeSrc":"250:275:97","nodeType":"YulBlock","src":"250:275:97","statements":[{"body":{"nativeSrc":"299:16:97","nodeType":"YulBlock","src":"299:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"308:1:97","nodeType":"YulLiteral","src":"308:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"311:1:97","nodeType":"YulLiteral","src":"311:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"301:6:97","nodeType":"YulIdentifier","src":"301:6:97"},"nativeSrc":"301:12:97","nodeType":"YulFunctionCall","src":"301:12:97"},"nativeSrc":"301:12:97","nodeType":"YulExpressionStatement","src":"301:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"278:6:97","nodeType":"YulIdentifier","src":"278:6:97"},{"kind":"number","nativeSrc":"286:4:97","nodeType":"YulLiteral","src":"286:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"274:3:97","nodeType":"YulIdentifier","src":"274:3:97"},"nativeSrc":"274:17:97","nodeType":"YulFunctionCall","src":"274:17:97"},{"name":"end","nativeSrc":"293:3:97","nodeType":"YulIdentifier","src":"293:3:97"}],"functionName":{"name":"slt","nativeSrc":"270:3:97","nodeType":"YulIdentifier","src":"270:3:97"},"nativeSrc":"270:27:97","nodeType":"YulFunctionCall","src":"270:27:97"}],"functionName":{"name":"iszero","nativeSrc":"263:6:97","nodeType":"YulIdentifier","src":"263:6:97"},"nativeSrc":"263:35:97","nodeType":"YulFunctionCall","src":"263:35:97"},"nativeSrc":"260:55:97","nodeType":"YulIf","src":"260:55:97"},{"nativeSrc":"324:30:97","nodeType":"YulAssignment","src":"324:30:97","value":{"arguments":[{"name":"offset","nativeSrc":"347:6:97","nodeType":"YulIdentifier","src":"347:6:97"}],"functionName":{"name":"calldataload","nativeSrc":"334:12:97","nodeType":"YulIdentifier","src":"334:12:97"},"nativeSrc":"334:20:97","nodeType":"YulFunctionCall","src":"334:20:97"},"variableNames":[{"name":"length","nativeSrc":"324:6:97","nodeType":"YulIdentifier","src":"324:6:97"}]},{"body":{"nativeSrc":"397:16:97","nodeType":"YulBlock","src":"397:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"406:1:97","nodeType":"YulLiteral","src":"406:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"409:1:97","nodeType":"YulLiteral","src":"409:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"399:6:97","nodeType":"YulIdentifier","src":"399:6:97"},"nativeSrc":"399:12:97","nodeType":"YulFunctionCall","src":"399:12:97"},"nativeSrc":"399:12:97","nodeType":"YulExpressionStatement","src":"399:12:97"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"369:6:97","nodeType":"YulIdentifier","src":"369:6:97"},{"kind":"number","nativeSrc":"377:18:97","nodeType":"YulLiteral","src":"377:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"366:2:97","nodeType":"YulIdentifier","src":"366:2:97"},"nativeSrc":"366:30:97","nodeType":"YulFunctionCall","src":"366:30:97"},"nativeSrc":"363:50:97","nodeType":"YulIf","src":"363:50:97"},{"nativeSrc":"422:29:97","nodeType":"YulAssignment","src":"422:29:97","value":{"arguments":[{"name":"offset","nativeSrc":"438:6:97","nodeType":"YulIdentifier","src":"438:6:97"},{"kind":"number","nativeSrc":"446:4:97","nodeType":"YulLiteral","src":"446:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"434:3:97","nodeType":"YulIdentifier","src":"434:3:97"},"nativeSrc":"434:17:97","nodeType":"YulFunctionCall","src":"434:17:97"},"variableNames":[{"name":"arrayPos","nativeSrc":"422:8:97","nodeType":"YulIdentifier","src":"422:8:97"}]},{"body":{"nativeSrc":"503:16:97","nodeType":"YulBlock","src":"503:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"512:1:97","nodeType":"YulLiteral","src":"512:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"515:1:97","nodeType":"YulLiteral","src":"515:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"505:6:97","nodeType":"YulIdentifier","src":"505:6:97"},"nativeSrc":"505:12:97","nodeType":"YulFunctionCall","src":"505:12:97"},"nativeSrc":"505:12:97","nodeType":"YulExpressionStatement","src":"505:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"474:6:97","nodeType":"YulIdentifier","src":"474:6:97"},{"name":"length","nativeSrc":"482:6:97","nodeType":"YulIdentifier","src":"482:6:97"}],"functionName":{"name":"add","nativeSrc":"470:3:97","nodeType":"YulIdentifier","src":"470:3:97"},"nativeSrc":"470:19:97","nodeType":"YulFunctionCall","src":"470:19:97"},{"kind":"number","nativeSrc":"491:4:97","nodeType":"YulLiteral","src":"491:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"466:3:97","nodeType":"YulIdentifier","src":"466:3:97"},"nativeSrc":"466:30:97","nodeType":"YulFunctionCall","src":"466:30:97"},{"name":"end","nativeSrc":"498:3:97","nodeType":"YulIdentifier","src":"498:3:97"}],"functionName":{"name":"gt","nativeSrc":"463:2:97","nodeType":"YulIdentifier","src":"463:2:97"},"nativeSrc":"463:39:97","nodeType":"YulFunctionCall","src":"463:39:97"},"nativeSrc":"460:59:97","nodeType":"YulIf","src":"460:59:97"}]},"name":"abi_decode_bytes_calldata","nativeSrc":"178:347:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"213:6:97","nodeType":"YulTypedName","src":"213:6:97","type":""},{"name":"end","nativeSrc":"221:3:97","nodeType":"YulTypedName","src":"221:3:97","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"229:8:97","nodeType":"YulTypedName","src":"229:8:97","type":""},{"name":"length","nativeSrc":"239:6:97","nodeType":"YulTypedName","src":"239:6:97","type":""}],"src":"178:347:97"},{"body":{"nativeSrc":"578:123:97","nodeType":"YulBlock","src":"578:123:97","statements":[{"nativeSrc":"588:29:97","nodeType":"YulAssignment","src":"588:29:97","value":{"arguments":[{"name":"offset","nativeSrc":"610:6:97","nodeType":"YulIdentifier","src":"610:6:97"}],"functionName":{"name":"calldataload","nativeSrc":"597:12:97","nodeType":"YulIdentifier","src":"597:12:97"},"nativeSrc":"597:20:97","nodeType":"YulFunctionCall","src":"597:20:97"},"variableNames":[{"name":"value","nativeSrc":"588:5:97","nodeType":"YulIdentifier","src":"588:5:97"}]},{"body":{"nativeSrc":"679:16:97","nodeType":"YulBlock","src":"679:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"688:1:97","nodeType":"YulLiteral","src":"688:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"691:1:97","nodeType":"YulLiteral","src":"691:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"681:6:97","nodeType":"YulIdentifier","src":"681:6:97"},"nativeSrc":"681:12:97","nodeType":"YulFunctionCall","src":"681:12:97"},"nativeSrc":"681:12:97","nodeType":"YulExpressionStatement","src":"681:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"639:5:97","nodeType":"YulIdentifier","src":"639:5:97"},{"arguments":[{"name":"value","nativeSrc":"650:5:97","nodeType":"YulIdentifier","src":"650:5:97"},{"kind":"number","nativeSrc":"657:18:97","nodeType":"YulLiteral","src":"657:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"646:3:97","nodeType":"YulIdentifier","src":"646:3:97"},"nativeSrc":"646:30:97","nodeType":"YulFunctionCall","src":"646:30:97"}],"functionName":{"name":"eq","nativeSrc":"636:2:97","nodeType":"YulIdentifier","src":"636:2:97"},"nativeSrc":"636:41:97","nodeType":"YulFunctionCall","src":"636:41:97"}],"functionName":{"name":"iszero","nativeSrc":"629:6:97","nodeType":"YulIdentifier","src":"629:6:97"},"nativeSrc":"629:49:97","nodeType":"YulFunctionCall","src":"629:49:97"},"nativeSrc":"626:69:97","nodeType":"YulIf","src":"626:69:97"}]},"name":"abi_decode_uint64","nativeSrc":"530:171:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"557:6:97","nodeType":"YulTypedName","src":"557:6:97","type":""}],"returnVariables":[{"name":"value","nativeSrc":"568:5:97","nodeType":"YulTypedName","src":"568:5:97","type":""}],"src":"530:171:97"},{"body":{"nativeSrc":"863:705:97","nodeType":"YulBlock","src":"863:705:97","statements":[{"body":{"nativeSrc":"910:16:97","nodeType":"YulBlock","src":"910:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"919:1:97","nodeType":"YulLiteral","src":"919:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"922:1:97","nodeType":"YulLiteral","src":"922:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"912:6:97","nodeType":"YulIdentifier","src":"912:6:97"},"nativeSrc":"912:12:97","nodeType":"YulFunctionCall","src":"912:12:97"},"nativeSrc":"912:12:97","nodeType":"YulExpressionStatement","src":"912:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"884:7:97","nodeType":"YulIdentifier","src":"884:7:97"},{"name":"headStart","nativeSrc":"893:9:97","nodeType":"YulIdentifier","src":"893:9:97"}],"functionName":{"name":"sub","nativeSrc":"880:3:97","nodeType":"YulIdentifier","src":"880:3:97"},"nativeSrc":"880:23:97","nodeType":"YulFunctionCall","src":"880:23:97"},{"kind":"number","nativeSrc":"905:3:97","nodeType":"YulLiteral","src":"905:3:97","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"876:3:97","nodeType":"YulIdentifier","src":"876:3:97"},"nativeSrc":"876:33:97","nodeType":"YulFunctionCall","src":"876:33:97"},"nativeSrc":"873:53:97","nodeType":"YulIf","src":"873:53:97"},{"nativeSrc":"935:38:97","nodeType":"YulAssignment","src":"935:38:97","value":{"arguments":[{"name":"headStart","nativeSrc":"963:9:97","nodeType":"YulIdentifier","src":"963:9:97"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"945:17:97","nodeType":"YulIdentifier","src":"945:17:97"},"nativeSrc":"945:28:97","nodeType":"YulFunctionCall","src":"945:28:97"},"variableNames":[{"name":"value0","nativeSrc":"935:6:97","nodeType":"YulIdentifier","src":"935:6:97"}]},{"nativeSrc":"982:46:97","nodeType":"YulVariableDeclaration","src":"982:46:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1013:9:97","nodeType":"YulIdentifier","src":"1013:9:97"},{"kind":"number","nativeSrc":"1024:2:97","nodeType":"YulLiteral","src":"1024:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1009:3:97","nodeType":"YulIdentifier","src":"1009:3:97"},"nativeSrc":"1009:18:97","nodeType":"YulFunctionCall","src":"1009:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"996:12:97","nodeType":"YulIdentifier","src":"996:12:97"},"nativeSrc":"996:32:97","nodeType":"YulFunctionCall","src":"996:32:97"},"variables":[{"name":"offset","nativeSrc":"986:6:97","nodeType":"YulTypedName","src":"986:6:97","type":""}]},{"nativeSrc":"1037:28:97","nodeType":"YulVariableDeclaration","src":"1037:28:97","value":{"kind":"number","nativeSrc":"1047:18:97","nodeType":"YulLiteral","src":"1047:18:97","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"1041:2:97","nodeType":"YulTypedName","src":"1041:2:97","type":""}]},{"body":{"nativeSrc":"1092:16:97","nodeType":"YulBlock","src":"1092:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1101:1:97","nodeType":"YulLiteral","src":"1101:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1104:1:97","nodeType":"YulLiteral","src":"1104:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1094:6:97","nodeType":"YulIdentifier","src":"1094:6:97"},"nativeSrc":"1094:12:97","nodeType":"YulFunctionCall","src":"1094:12:97"},"nativeSrc":"1094:12:97","nodeType":"YulExpressionStatement","src":"1094:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"1080:6:97","nodeType":"YulIdentifier","src":"1080:6:97"},{"name":"_1","nativeSrc":"1088:2:97","nodeType":"YulIdentifier","src":"1088:2:97"}],"functionName":{"name":"gt","nativeSrc":"1077:2:97","nodeType":"YulIdentifier","src":"1077:2:97"},"nativeSrc":"1077:14:97","nodeType":"YulFunctionCall","src":"1077:14:97"},"nativeSrc":"1074:34:97","nodeType":"YulIf","src":"1074:34:97"},{"nativeSrc":"1117:84:97","nodeType":"YulVariableDeclaration","src":"1117:84:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1173:9:97","nodeType":"YulIdentifier","src":"1173:9:97"},{"name":"offset","nativeSrc":"1184:6:97","nodeType":"YulIdentifier","src":"1184:6:97"}],"functionName":{"name":"add","nativeSrc":"1169:3:97","nodeType":"YulIdentifier","src":"1169:3:97"},"nativeSrc":"1169:22:97","nodeType":"YulFunctionCall","src":"1169:22:97"},{"name":"dataEnd","nativeSrc":"1193:7:97","nodeType":"YulIdentifier","src":"1193:7:97"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"1143:25:97","nodeType":"YulIdentifier","src":"1143:25:97"},"nativeSrc":"1143:58:97","nodeType":"YulFunctionCall","src":"1143:58:97"},"variables":[{"name":"value1_1","nativeSrc":"1121:8:97","nodeType":"YulTypedName","src":"1121:8:97","type":""},{"name":"value2_1","nativeSrc":"1131:8:97","nodeType":"YulTypedName","src":"1131:8:97","type":""}]},{"nativeSrc":"1210:18:97","nodeType":"YulAssignment","src":"1210:18:97","value":{"name":"value1_1","nativeSrc":"1220:8:97","nodeType":"YulIdentifier","src":"1220:8:97"},"variableNames":[{"name":"value1","nativeSrc":"1210:6:97","nodeType":"YulIdentifier","src":"1210:6:97"}]},{"nativeSrc":"1237:18:97","nodeType":"YulAssignment","src":"1237:18:97","value":{"name":"value2_1","nativeSrc":"1247:8:97","nodeType":"YulIdentifier","src":"1247:8:97"},"variableNames":[{"name":"value2","nativeSrc":"1237:6:97","nodeType":"YulIdentifier","src":"1237:6:97"}]},{"nativeSrc":"1264:47:97","nodeType":"YulAssignment","src":"1264:47:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1296:9:97","nodeType":"YulIdentifier","src":"1296:9:97"},{"kind":"number","nativeSrc":"1307:2:97","nodeType":"YulLiteral","src":"1307:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1292:3:97","nodeType":"YulIdentifier","src":"1292:3:97"},"nativeSrc":"1292:18:97","nodeType":"YulFunctionCall","src":"1292:18:97"}],"functionName":{"name":"abi_decode_uint64","nativeSrc":"1274:17:97","nodeType":"YulIdentifier","src":"1274:17:97"},"nativeSrc":"1274:37:97","nodeType":"YulFunctionCall","src":"1274:37:97"},"variableNames":[{"name":"value3","nativeSrc":"1264:6:97","nodeType":"YulIdentifier","src":"1264:6:97"}]},{"nativeSrc":"1320:48:97","nodeType":"YulVariableDeclaration","src":"1320:48:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1353:9:97","nodeType":"YulIdentifier","src":"1353:9:97"},{"kind":"number","nativeSrc":"1364:2:97","nodeType":"YulLiteral","src":"1364:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"1349:3:97","nodeType":"YulIdentifier","src":"1349:3:97"},"nativeSrc":"1349:18:97","nodeType":"YulFunctionCall","src":"1349:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"1336:12:97","nodeType":"YulIdentifier","src":"1336:12:97"},"nativeSrc":"1336:32:97","nodeType":"YulFunctionCall","src":"1336:32:97"},"variables":[{"name":"offset_1","nativeSrc":"1324:8:97","nodeType":"YulTypedName","src":"1324:8:97","type":""}]},{"body":{"nativeSrc":"1397:16:97","nodeType":"YulBlock","src":"1397:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1406:1:97","nodeType":"YulLiteral","src":"1406:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1409:1:97","nodeType":"YulLiteral","src":"1409:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1399:6:97","nodeType":"YulIdentifier","src":"1399:6:97"},"nativeSrc":"1399:12:97","nodeType":"YulFunctionCall","src":"1399:12:97"},"nativeSrc":"1399:12:97","nodeType":"YulExpressionStatement","src":"1399:12:97"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"1383:8:97","nodeType":"YulIdentifier","src":"1383:8:97"},{"name":"_1","nativeSrc":"1393:2:97","nodeType":"YulIdentifier","src":"1393:2:97"}],"functionName":{"name":"gt","nativeSrc":"1380:2:97","nodeType":"YulIdentifier","src":"1380:2:97"},"nativeSrc":"1380:16:97","nodeType":"YulFunctionCall","src":"1380:16:97"},"nativeSrc":"1377:36:97","nodeType":"YulIf","src":"1377:36:97"},{"nativeSrc":"1422:86:97","nodeType":"YulVariableDeclaration","src":"1422:86:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1478:9:97","nodeType":"YulIdentifier","src":"1478:9:97"},{"name":"offset_1","nativeSrc":"1489:8:97","nodeType":"YulIdentifier","src":"1489:8:97"}],"functionName":{"name":"add","nativeSrc":"1474:3:97","nodeType":"YulIdentifier","src":"1474:3:97"},"nativeSrc":"1474:24:97","nodeType":"YulFunctionCall","src":"1474:24:97"},{"name":"dataEnd","nativeSrc":"1500:7:97","nodeType":"YulIdentifier","src":"1500:7:97"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"1448:25:97","nodeType":"YulIdentifier","src":"1448:25:97"},"nativeSrc":"1448:60:97","nodeType":"YulFunctionCall","src":"1448:60:97"},"variables":[{"name":"value4_1","nativeSrc":"1426:8:97","nodeType":"YulTypedName","src":"1426:8:97","type":""},{"name":"value5_1","nativeSrc":"1436:8:97","nodeType":"YulTypedName","src":"1436:8:97","type":""}]},{"nativeSrc":"1517:18:97","nodeType":"YulAssignment","src":"1517:18:97","value":{"name":"value4_1","nativeSrc":"1527:8:97","nodeType":"YulIdentifier","src":"1527:8:97"},"variableNames":[{"name":"value4","nativeSrc":"1517:6:97","nodeType":"YulIdentifier","src":"1517:6:97"}]},{"nativeSrc":"1544:18:97","nodeType":"YulAssignment","src":"1544:18:97","value":{"name":"value5_1","nativeSrc":"1554:8:97","nodeType":"YulIdentifier","src":"1554:8:97"},"variableNames":[{"name":"value5","nativeSrc":"1544:6:97","nodeType":"YulIdentifier","src":"1544:6:97"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_uint64t_bytes_calldata_ptr","nativeSrc":"706:862:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"789:9:97","nodeType":"YulTypedName","src":"789:9:97","type":""},{"name":"dataEnd","nativeSrc":"800:7:97","nodeType":"YulTypedName","src":"800:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"812:6:97","nodeType":"YulTypedName","src":"812:6:97","type":""},{"name":"value1","nativeSrc":"820:6:97","nodeType":"YulTypedName","src":"820:6:97","type":""},{"name":"value2","nativeSrc":"828:6:97","nodeType":"YulTypedName","src":"828:6:97","type":""},{"name":"value3","nativeSrc":"836:6:97","nodeType":"YulTypedName","src":"836:6:97","type":""},{"name":"value4","nativeSrc":"844:6:97","nodeType":"YulTypedName","src":"844:6:97","type":""},{"name":"value5","nativeSrc":"852:6:97","nodeType":"YulTypedName","src":"852:6:97","type":""}],"src":"706:862:97"},{"body":{"nativeSrc":"1643:110:97","nodeType":"YulBlock","src":"1643:110:97","statements":[{"body":{"nativeSrc":"1689:16:97","nodeType":"YulBlock","src":"1689:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1698:1:97","nodeType":"YulLiteral","src":"1698:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1701:1:97","nodeType":"YulLiteral","src":"1701:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1691:6:97","nodeType":"YulIdentifier","src":"1691:6:97"},"nativeSrc":"1691:12:97","nodeType":"YulFunctionCall","src":"1691:12:97"},"nativeSrc":"1691:12:97","nodeType":"YulExpressionStatement","src":"1691:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1664:7:97","nodeType":"YulIdentifier","src":"1664:7:97"},{"name":"headStart","nativeSrc":"1673:9:97","nodeType":"YulIdentifier","src":"1673:9:97"}],"functionName":{"name":"sub","nativeSrc":"1660:3:97","nodeType":"YulIdentifier","src":"1660:3:97"},"nativeSrc":"1660:23:97","nodeType":"YulFunctionCall","src":"1660:23:97"},{"kind":"number","nativeSrc":"1685:2:97","nodeType":"YulLiteral","src":"1685:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1656:3:97","nodeType":"YulIdentifier","src":"1656:3:97"},"nativeSrc":"1656:32:97","nodeType":"YulFunctionCall","src":"1656:32:97"},"nativeSrc":"1653:52:97","nodeType":"YulIf","src":"1653:52:97"},{"nativeSrc":"1714:33:97","nodeType":"YulAssignment","src":"1714:33:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1737:9:97","nodeType":"YulIdentifier","src":"1737:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"1724:12:97","nodeType":"YulIdentifier","src":"1724:12:97"},"nativeSrc":"1724:23:97","nodeType":"YulFunctionCall","src":"1724:23:97"},"variableNames":[{"name":"value0","nativeSrc":"1714:6:97","nodeType":"YulIdentifier","src":"1714:6:97"}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"1573:180:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1609:9:97","nodeType":"YulTypedName","src":"1609:9:97","type":""},{"name":"dataEnd","nativeSrc":"1620:7:97","nodeType":"YulTypedName","src":"1620:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1632:6:97","nodeType":"YulTypedName","src":"1632:6:97","type":""}],"src":"1573:180:97"},{"body":{"nativeSrc":"1800:33:97","nodeType":"YulBlock","src":"1800:33:97","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1809:3:97","nodeType":"YulIdentifier","src":"1809:3:97"},{"arguments":[{"name":"value","nativeSrc":"1818:5:97","nodeType":"YulIdentifier","src":"1818:5:97"},{"kind":"number","nativeSrc":"1825:4:97","nodeType":"YulLiteral","src":"1825:4:97","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"1814:3:97","nodeType":"YulIdentifier","src":"1814:3:97"},"nativeSrc":"1814:16:97","nodeType":"YulFunctionCall","src":"1814:16:97"}],"functionName":{"name":"mstore","nativeSrc":"1802:6:97","nodeType":"YulIdentifier","src":"1802:6:97"},"nativeSrc":"1802:29:97","nodeType":"YulFunctionCall","src":"1802:29:97"},"nativeSrc":"1802:29:97","nodeType":"YulExpressionStatement","src":"1802:29:97"}]},"name":"abi_encode_uint8","nativeSrc":"1758:75:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1784:5:97","nodeType":"YulTypedName","src":"1784:5:97","type":""},{"name":"pos","nativeSrc":"1791:3:97","nodeType":"YulTypedName","src":"1791:3:97","type":""}],"src":"1758:75:97"},{"body":{"nativeSrc":"2035:293:97","nodeType":"YulBlock","src":"2035:293:97","statements":[{"nativeSrc":"2045:27:97","nodeType":"YulAssignment","src":"2045:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2057:9:97","nodeType":"YulIdentifier","src":"2057:9:97"},{"kind":"number","nativeSrc":"2068:3:97","nodeType":"YulLiteral","src":"2068:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"2053:3:97","nodeType":"YulIdentifier","src":"2053:3:97"},"nativeSrc":"2053:19:97","nodeType":"YulFunctionCall","src":"2053:19:97"},"variableNames":[{"name":"tail","nativeSrc":"2045:4:97","nodeType":"YulIdentifier","src":"2045:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2088:9:97","nodeType":"YulIdentifier","src":"2088:9:97"},{"name":"value0","nativeSrc":"2099:6:97","nodeType":"YulIdentifier","src":"2099:6:97"}],"functionName":{"name":"mstore","nativeSrc":"2081:6:97","nodeType":"YulIdentifier","src":"2081:6:97"},"nativeSrc":"2081:25:97","nodeType":"YulFunctionCall","src":"2081:25:97"},"nativeSrc":"2081:25:97","nodeType":"YulExpressionStatement","src":"2081:25:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2126:9:97","nodeType":"YulIdentifier","src":"2126:9:97"},{"kind":"number","nativeSrc":"2137:2:97","nodeType":"YulLiteral","src":"2137:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2122:3:97","nodeType":"YulIdentifier","src":"2122:3:97"},"nativeSrc":"2122:18:97","nodeType":"YulFunctionCall","src":"2122:18:97"},{"name":"value1","nativeSrc":"2142:6:97","nodeType":"YulIdentifier","src":"2142:6:97"}],"functionName":{"name":"mstore","nativeSrc":"2115:6:97","nodeType":"YulIdentifier","src":"2115:6:97"},"nativeSrc":"2115:34:97","nodeType":"YulFunctionCall","src":"2115:34:97"},"nativeSrc":"2115:34:97","nodeType":"YulExpressionStatement","src":"2115:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2169:9:97","nodeType":"YulIdentifier","src":"2169:9:97"},{"kind":"number","nativeSrc":"2180:2:97","nodeType":"YulLiteral","src":"2180:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2165:3:97","nodeType":"YulIdentifier","src":"2165:3:97"},"nativeSrc":"2165:18:97","nodeType":"YulFunctionCall","src":"2165:18:97"},{"arguments":[{"arguments":[{"name":"value2","nativeSrc":"2199:6:97","nodeType":"YulIdentifier","src":"2199:6:97"}],"functionName":{"name":"iszero","nativeSrc":"2192:6:97","nodeType":"YulIdentifier","src":"2192:6:97"},"nativeSrc":"2192:14:97","nodeType":"YulFunctionCall","src":"2192:14:97"}],"functionName":{"name":"iszero","nativeSrc":"2185:6:97","nodeType":"YulIdentifier","src":"2185:6:97"},"nativeSrc":"2185:22:97","nodeType":"YulFunctionCall","src":"2185:22:97"}],"functionName":{"name":"mstore","nativeSrc":"2158:6:97","nodeType":"YulIdentifier","src":"2158:6:97"},"nativeSrc":"2158:50:97","nodeType":"YulFunctionCall","src":"2158:50:97"},"nativeSrc":"2158:50:97","nodeType":"YulExpressionStatement","src":"2158:50:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2228:9:97","nodeType":"YulIdentifier","src":"2228:9:97"},{"kind":"number","nativeSrc":"2239:2:97","nodeType":"YulLiteral","src":"2239:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2224:3:97","nodeType":"YulIdentifier","src":"2224:3:97"},"nativeSrc":"2224:18:97","nodeType":"YulFunctionCall","src":"2224:18:97"},{"arguments":[{"arguments":[{"name":"value3","nativeSrc":"2258:6:97","nodeType":"YulIdentifier","src":"2258:6:97"}],"functionName":{"name":"iszero","nativeSrc":"2251:6:97","nodeType":"YulIdentifier","src":"2251:6:97"},"nativeSrc":"2251:14:97","nodeType":"YulFunctionCall","src":"2251:14:97"}],"functionName":{"name":"iszero","nativeSrc":"2244:6:97","nodeType":"YulIdentifier","src":"2244:6:97"},"nativeSrc":"2244:22:97","nodeType":"YulFunctionCall","src":"2244:22:97"}],"functionName":{"name":"mstore","nativeSrc":"2217:6:97","nodeType":"YulIdentifier","src":"2217:6:97"},"nativeSrc":"2217:50:97","nodeType":"YulFunctionCall","src":"2217:50:97"},"nativeSrc":"2217:50:97","nodeType":"YulExpressionStatement","src":"2217:50:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2287:9:97","nodeType":"YulIdentifier","src":"2287:9:97"},{"kind":"number","nativeSrc":"2298:3:97","nodeType":"YulLiteral","src":"2298:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"2283:3:97","nodeType":"YulIdentifier","src":"2283:3:97"},"nativeSrc":"2283:19:97","nodeType":"YulFunctionCall","src":"2283:19:97"},{"arguments":[{"name":"value4","nativeSrc":"2308:6:97","nodeType":"YulIdentifier","src":"2308:6:97"},{"kind":"number","nativeSrc":"2316:4:97","nodeType":"YulLiteral","src":"2316:4:97","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"2304:3:97","nodeType":"YulIdentifier","src":"2304:3:97"},"nativeSrc":"2304:17:97","nodeType":"YulFunctionCall","src":"2304:17:97"}],"functionName":{"name":"mstore","nativeSrc":"2276:6:97","nodeType":"YulIdentifier","src":"2276:6:97"},"nativeSrc":"2276:46:97","nodeType":"YulFunctionCall","src":"2276:46:97"},"nativeSrc":"2276:46:97","nodeType":"YulExpressionStatement","src":"2276:46:97"}]},"name":"abi_encode_tuple_t_uint256_t_uint256_t_bool_t_bool_t_uint8__to_t_uint256_t_uint256_t_bool_t_bool_t_uint8__fromStack_reversed","nativeSrc":"1838:490:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1972:9:97","nodeType":"YulTypedName","src":"1972:9:97","type":""},{"name":"value4","nativeSrc":"1983:6:97","nodeType":"YulTypedName","src":"1983:6:97","type":""},{"name":"value3","nativeSrc":"1991:6:97","nodeType":"YulTypedName","src":"1991:6:97","type":""},{"name":"value2","nativeSrc":"1999:6:97","nodeType":"YulTypedName","src":"1999:6:97","type":""},{"name":"value1","nativeSrc":"2007:6:97","nodeType":"YulTypedName","src":"2007:6:97","type":""},{"name":"value0","nativeSrc":"2015:6:97","nodeType":"YulTypedName","src":"2015:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2026:4:97","nodeType":"YulTypedName","src":"2026:4:97","type":""}],"src":"1838:490:97"},{"body":{"nativeSrc":"2434:76:97","nodeType":"YulBlock","src":"2434:76:97","statements":[{"nativeSrc":"2444:26:97","nodeType":"YulAssignment","src":"2444:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2456:9:97","nodeType":"YulIdentifier","src":"2456:9:97"},{"kind":"number","nativeSrc":"2467:2:97","nodeType":"YulLiteral","src":"2467:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2452:3:97","nodeType":"YulIdentifier","src":"2452:3:97"},"nativeSrc":"2452:18:97","nodeType":"YulFunctionCall","src":"2452:18:97"},"variableNames":[{"name":"tail","nativeSrc":"2444:4:97","nodeType":"YulIdentifier","src":"2444:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2486:9:97","nodeType":"YulIdentifier","src":"2486:9:97"},{"name":"value0","nativeSrc":"2497:6:97","nodeType":"YulIdentifier","src":"2497:6:97"}],"functionName":{"name":"mstore","nativeSrc":"2479:6:97","nodeType":"YulIdentifier","src":"2479:6:97"},"nativeSrc":"2479:25:97","nodeType":"YulFunctionCall","src":"2479:25:97"},"nativeSrc":"2479:25:97","nodeType":"YulExpressionStatement","src":"2479:25:97"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"2333:177:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2403:9:97","nodeType":"YulTypedName","src":"2403:9:97","type":""},{"name":"value0","nativeSrc":"2414:6:97","nodeType":"YulTypedName","src":"2414:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2425:4:97","nodeType":"YulTypedName","src":"2425:4:97","type":""}],"src":"2333:177:97"},{"body":{"nativeSrc":"2584:115:97","nodeType":"YulBlock","src":"2584:115:97","statements":[{"body":{"nativeSrc":"2630:16:97","nodeType":"YulBlock","src":"2630:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2639:1:97","nodeType":"YulLiteral","src":"2639:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"2642:1:97","nodeType":"YulLiteral","src":"2642:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2632:6:97","nodeType":"YulIdentifier","src":"2632:6:97"},"nativeSrc":"2632:12:97","nodeType":"YulFunctionCall","src":"2632:12:97"},"nativeSrc":"2632:12:97","nodeType":"YulExpressionStatement","src":"2632:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2605:7:97","nodeType":"YulIdentifier","src":"2605:7:97"},{"name":"headStart","nativeSrc":"2614:9:97","nodeType":"YulIdentifier","src":"2614:9:97"}],"functionName":{"name":"sub","nativeSrc":"2601:3:97","nodeType":"YulIdentifier","src":"2601:3:97"},"nativeSrc":"2601:23:97","nodeType":"YulFunctionCall","src":"2601:23:97"},{"kind":"number","nativeSrc":"2626:2:97","nodeType":"YulLiteral","src":"2626:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2597:3:97","nodeType":"YulIdentifier","src":"2597:3:97"},"nativeSrc":"2597:32:97","nodeType":"YulFunctionCall","src":"2597:32:97"},"nativeSrc":"2594:52:97","nodeType":"YulIf","src":"2594:52:97"},{"nativeSrc":"2655:38:97","nodeType":"YulAssignment","src":"2655:38:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2683:9:97","nodeType":"YulIdentifier","src":"2683:9:97"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"2665:17:97","nodeType":"YulIdentifier","src":"2665:17:97"},"nativeSrc":"2665:28:97","nodeType":"YulFunctionCall","src":"2665:28:97"},"variableNames":[{"name":"value0","nativeSrc":"2655:6:97","nodeType":"YulIdentifier","src":"2655:6:97"}]}]},"name":"abi_decode_tuple_t_uint16","nativeSrc":"2515:184:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2550:9:97","nodeType":"YulTypedName","src":"2550:9:97","type":""},{"name":"dataEnd","nativeSrc":"2561:7:97","nodeType":"YulTypedName","src":"2561:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2573:6:97","nodeType":"YulTypedName","src":"2573:6:97","type":""}],"src":"2515:184:97"},{"body":{"nativeSrc":"2790:166:97","nodeType":"YulBlock","src":"2790:166:97","statements":[{"body":{"nativeSrc":"2836:16:97","nodeType":"YulBlock","src":"2836:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2845:1:97","nodeType":"YulLiteral","src":"2845:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"2848:1:97","nodeType":"YulLiteral","src":"2848:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2838:6:97","nodeType":"YulIdentifier","src":"2838:6:97"},"nativeSrc":"2838:12:97","nodeType":"YulFunctionCall","src":"2838:12:97"},"nativeSrc":"2838:12:97","nodeType":"YulExpressionStatement","src":"2838:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2811:7:97","nodeType":"YulIdentifier","src":"2811:7:97"},{"name":"headStart","nativeSrc":"2820:9:97","nodeType":"YulIdentifier","src":"2820:9:97"}],"functionName":{"name":"sub","nativeSrc":"2807:3:97","nodeType":"YulIdentifier","src":"2807:3:97"},"nativeSrc":"2807:23:97","nodeType":"YulFunctionCall","src":"2807:23:97"},{"kind":"number","nativeSrc":"2832:2:97","nodeType":"YulLiteral","src":"2832:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2803:3:97","nodeType":"YulIdentifier","src":"2803:3:97"},"nativeSrc":"2803:32:97","nodeType":"YulFunctionCall","src":"2803:32:97"},"nativeSrc":"2800:52:97","nodeType":"YulIf","src":"2800:52:97"},{"nativeSrc":"2861:38:97","nodeType":"YulAssignment","src":"2861:38:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2889:9:97","nodeType":"YulIdentifier","src":"2889:9:97"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"2871:17:97","nodeType":"YulIdentifier","src":"2871:17:97"},"nativeSrc":"2871:28:97","nodeType":"YulFunctionCall","src":"2871:28:97"},"variableNames":[{"name":"value0","nativeSrc":"2861:6:97","nodeType":"YulIdentifier","src":"2861:6:97"}]},{"nativeSrc":"2908:42:97","nodeType":"YulAssignment","src":"2908:42:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2935:9:97","nodeType":"YulIdentifier","src":"2935:9:97"},{"kind":"number","nativeSrc":"2946:2:97","nodeType":"YulLiteral","src":"2946:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2931:3:97","nodeType":"YulIdentifier","src":"2931:3:97"},"nativeSrc":"2931:18:97","nodeType":"YulFunctionCall","src":"2931:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"2918:12:97","nodeType":"YulIdentifier","src":"2918:12:97"},"nativeSrc":"2918:32:97","nodeType":"YulFunctionCall","src":"2918:32:97"},"variableNames":[{"name":"value1","nativeSrc":"2908:6:97","nodeType":"YulIdentifier","src":"2908:6:97"}]}]},"name":"abi_decode_tuple_t_uint16t_uint256","nativeSrc":"2704:252:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2748:9:97","nodeType":"YulTypedName","src":"2748:9:97","type":""},{"name":"dataEnd","nativeSrc":"2759:7:97","nodeType":"YulTypedName","src":"2759:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2771:6:97","nodeType":"YulTypedName","src":"2771:6:97","type":""},{"name":"value1","nativeSrc":"2779:6:97","nodeType":"YulTypedName","src":"2779:6:97","type":""}],"src":"2704:252:97"},{"body":{"nativeSrc":"3066:376:97","nodeType":"YulBlock","src":"3066:376:97","statements":[{"body":{"nativeSrc":"3112:16:97","nodeType":"YulBlock","src":"3112:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3121:1:97","nodeType":"YulLiteral","src":"3121:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"3124:1:97","nodeType":"YulLiteral","src":"3124:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3114:6:97","nodeType":"YulIdentifier","src":"3114:6:97"},"nativeSrc":"3114:12:97","nodeType":"YulFunctionCall","src":"3114:12:97"},"nativeSrc":"3114:12:97","nodeType":"YulExpressionStatement","src":"3114:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3087:7:97","nodeType":"YulIdentifier","src":"3087:7:97"},{"name":"headStart","nativeSrc":"3096:9:97","nodeType":"YulIdentifier","src":"3096:9:97"}],"functionName":{"name":"sub","nativeSrc":"3083:3:97","nodeType":"YulIdentifier","src":"3083:3:97"},"nativeSrc":"3083:23:97","nodeType":"YulFunctionCall","src":"3083:23:97"},{"kind":"number","nativeSrc":"3108:2:97","nodeType":"YulLiteral","src":"3108:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3079:3:97","nodeType":"YulIdentifier","src":"3079:3:97"},"nativeSrc":"3079:32:97","nodeType":"YulFunctionCall","src":"3079:32:97"},"nativeSrc":"3076:52:97","nodeType":"YulIf","src":"3076:52:97"},{"nativeSrc":"3137:38:97","nodeType":"YulAssignment","src":"3137:38:97","value":{"arguments":[{"name":"headStart","nativeSrc":"3165:9:97","nodeType":"YulIdentifier","src":"3165:9:97"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"3147:17:97","nodeType":"YulIdentifier","src":"3147:17:97"},"nativeSrc":"3147:28:97","nodeType":"YulFunctionCall","src":"3147:28:97"},"variableNames":[{"name":"value0","nativeSrc":"3137:6:97","nodeType":"YulIdentifier","src":"3137:6:97"}]},{"nativeSrc":"3184:46:97","nodeType":"YulVariableDeclaration","src":"3184:46:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3215:9:97","nodeType":"YulIdentifier","src":"3215:9:97"},{"kind":"number","nativeSrc":"3226:2:97","nodeType":"YulLiteral","src":"3226:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3211:3:97","nodeType":"YulIdentifier","src":"3211:3:97"},"nativeSrc":"3211:18:97","nodeType":"YulFunctionCall","src":"3211:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"3198:12:97","nodeType":"YulIdentifier","src":"3198:12:97"},"nativeSrc":"3198:32:97","nodeType":"YulFunctionCall","src":"3198:32:97"},"variables":[{"name":"offset","nativeSrc":"3188:6:97","nodeType":"YulTypedName","src":"3188:6:97","type":""}]},{"body":{"nativeSrc":"3273:16:97","nodeType":"YulBlock","src":"3273:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3282:1:97","nodeType":"YulLiteral","src":"3282:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"3285:1:97","nodeType":"YulLiteral","src":"3285:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3275:6:97","nodeType":"YulIdentifier","src":"3275:6:97"},"nativeSrc":"3275:12:97","nodeType":"YulFunctionCall","src":"3275:12:97"},"nativeSrc":"3275:12:97","nodeType":"YulExpressionStatement","src":"3275:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3245:6:97","nodeType":"YulIdentifier","src":"3245:6:97"},{"kind":"number","nativeSrc":"3253:18:97","nodeType":"YulLiteral","src":"3253:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3242:2:97","nodeType":"YulIdentifier","src":"3242:2:97"},"nativeSrc":"3242:30:97","nodeType":"YulFunctionCall","src":"3242:30:97"},"nativeSrc":"3239:50:97","nodeType":"YulIf","src":"3239:50:97"},{"nativeSrc":"3298:84:97","nodeType":"YulVariableDeclaration","src":"3298:84:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3354:9:97","nodeType":"YulIdentifier","src":"3354:9:97"},{"name":"offset","nativeSrc":"3365:6:97","nodeType":"YulIdentifier","src":"3365:6:97"}],"functionName":{"name":"add","nativeSrc":"3350:3:97","nodeType":"YulIdentifier","src":"3350:3:97"},"nativeSrc":"3350:22:97","nodeType":"YulFunctionCall","src":"3350:22:97"},{"name":"dataEnd","nativeSrc":"3374:7:97","nodeType":"YulIdentifier","src":"3374:7:97"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"3324:25:97","nodeType":"YulIdentifier","src":"3324:25:97"},"nativeSrc":"3324:58:97","nodeType":"YulFunctionCall","src":"3324:58:97"},"variables":[{"name":"value1_1","nativeSrc":"3302:8:97","nodeType":"YulTypedName","src":"3302:8:97","type":""},{"name":"value2_1","nativeSrc":"3312:8:97","nodeType":"YulTypedName","src":"3312:8:97","type":""}]},{"nativeSrc":"3391:18:97","nodeType":"YulAssignment","src":"3391:18:97","value":{"name":"value1_1","nativeSrc":"3401:8:97","nodeType":"YulIdentifier","src":"3401:8:97"},"variableNames":[{"name":"value1","nativeSrc":"3391:6:97","nodeType":"YulIdentifier","src":"3391:6:97"}]},{"nativeSrc":"3418:18:97","nodeType":"YulAssignment","src":"3418:18:97","value":{"name":"value2_1","nativeSrc":"3428:8:97","nodeType":"YulIdentifier","src":"3428:8:97"},"variableNames":[{"name":"value2","nativeSrc":"3418:6:97","nodeType":"YulIdentifier","src":"3418:6:97"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptr","nativeSrc":"2961:481:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3016:9:97","nodeType":"YulTypedName","src":"3016:9:97","type":""},{"name":"dataEnd","nativeSrc":"3027:7:97","nodeType":"YulTypedName","src":"3027:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3039:6:97","nodeType":"YulTypedName","src":"3039:6:97","type":""},{"name":"value1","nativeSrc":"3047:6:97","nodeType":"YulTypedName","src":"3047:6:97","type":""},{"name":"value2","nativeSrc":"3055:6:97","nodeType":"YulTypedName","src":"3055:6:97","type":""}],"src":"2961:481:97"},{"body":{"nativeSrc":"3542:92:97","nodeType":"YulBlock","src":"3542:92:97","statements":[{"nativeSrc":"3552:26:97","nodeType":"YulAssignment","src":"3552:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"3564:9:97","nodeType":"YulIdentifier","src":"3564:9:97"},{"kind":"number","nativeSrc":"3575:2:97","nodeType":"YulLiteral","src":"3575:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3560:3:97","nodeType":"YulIdentifier","src":"3560:3:97"},"nativeSrc":"3560:18:97","nodeType":"YulFunctionCall","src":"3560:18:97"},"variableNames":[{"name":"tail","nativeSrc":"3552:4:97","nodeType":"YulIdentifier","src":"3552:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3594:9:97","nodeType":"YulIdentifier","src":"3594:9:97"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"3619:6:97","nodeType":"YulIdentifier","src":"3619:6:97"}],"functionName":{"name":"iszero","nativeSrc":"3612:6:97","nodeType":"YulIdentifier","src":"3612:6:97"},"nativeSrc":"3612:14:97","nodeType":"YulFunctionCall","src":"3612:14:97"}],"functionName":{"name":"iszero","nativeSrc":"3605:6:97","nodeType":"YulIdentifier","src":"3605:6:97"},"nativeSrc":"3605:22:97","nodeType":"YulFunctionCall","src":"3605:22:97"}],"functionName":{"name":"mstore","nativeSrc":"3587:6:97","nodeType":"YulIdentifier","src":"3587:6:97"},"nativeSrc":"3587:41:97","nodeType":"YulFunctionCall","src":"3587:41:97"},"nativeSrc":"3587:41:97","nodeType":"YulExpressionStatement","src":"3587:41:97"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"3447:187:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3511:9:97","nodeType":"YulTypedName","src":"3511:9:97","type":""},{"name":"value0","nativeSrc":"3522:6:97","nodeType":"YulTypedName","src":"3522:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3533:4:97","nodeType":"YulTypedName","src":"3533:4:97","type":""}],"src":"3447:187:97"},{"body":{"nativeSrc":"3671:152:97","nodeType":"YulBlock","src":"3671:152:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3688:1:97","nodeType":"YulLiteral","src":"3688:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"3691:77:97","nodeType":"YulLiteral","src":"3691:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"3681:6:97","nodeType":"YulIdentifier","src":"3681:6:97"},"nativeSrc":"3681:88:97","nodeType":"YulFunctionCall","src":"3681:88:97"},"nativeSrc":"3681:88:97","nodeType":"YulExpressionStatement","src":"3681:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3785:1:97","nodeType":"YulLiteral","src":"3785:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"3788:4:97","nodeType":"YulLiteral","src":"3788:4:97","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"3778:6:97","nodeType":"YulIdentifier","src":"3778:6:97"},"nativeSrc":"3778:15:97","nodeType":"YulFunctionCall","src":"3778:15:97"},"nativeSrc":"3778:15:97","nodeType":"YulExpressionStatement","src":"3778:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3809:1:97","nodeType":"YulLiteral","src":"3809:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"3812:4:97","nodeType":"YulLiteral","src":"3812:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"3802:6:97","nodeType":"YulIdentifier","src":"3802:6:97"},"nativeSrc":"3802:15:97","nodeType":"YulFunctionCall","src":"3802:15:97"},"nativeSrc":"3802:15:97","nodeType":"YulExpressionStatement","src":"3802:15:97"}]},"name":"panic_error_0x21","nativeSrc":"3639:184:97","nodeType":"YulFunctionDefinition","src":"3639:184:97"},{"body":{"nativeSrc":"3946:286:97","nodeType":"YulBlock","src":"3946:286:97","statements":[{"nativeSrc":"3956:26:97","nodeType":"YulAssignment","src":"3956:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"3968:9:97","nodeType":"YulIdentifier","src":"3968:9:97"},{"kind":"number","nativeSrc":"3979:2:97","nodeType":"YulLiteral","src":"3979:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3964:3:97","nodeType":"YulIdentifier","src":"3964:3:97"},"nativeSrc":"3964:18:97","nodeType":"YulFunctionCall","src":"3964:18:97"},"variableNames":[{"name":"tail","nativeSrc":"3956:4:97","nodeType":"YulIdentifier","src":"3956:4:97"}]},{"body":{"nativeSrc":"4024:168:97","nodeType":"YulBlock","src":"4024:168:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4045:1:97","nodeType":"YulLiteral","src":"4045:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"4048:77:97","nodeType":"YulLiteral","src":"4048:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"4038:6:97","nodeType":"YulIdentifier","src":"4038:6:97"},"nativeSrc":"4038:88:97","nodeType":"YulFunctionCall","src":"4038:88:97"},"nativeSrc":"4038:88:97","nodeType":"YulExpressionStatement","src":"4038:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4146:1:97","nodeType":"YulLiteral","src":"4146:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"4149:4:97","nodeType":"YulLiteral","src":"4149:4:97","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"4139:6:97","nodeType":"YulIdentifier","src":"4139:6:97"},"nativeSrc":"4139:15:97","nodeType":"YulFunctionCall","src":"4139:15:97"},"nativeSrc":"4139:15:97","nodeType":"YulExpressionStatement","src":"4139:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4174:1:97","nodeType":"YulLiteral","src":"4174:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"4177:4:97","nodeType":"YulLiteral","src":"4177:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"4167:6:97","nodeType":"YulIdentifier","src":"4167:6:97"},"nativeSrc":"4167:15:97","nodeType":"YulFunctionCall","src":"4167:15:97"},"nativeSrc":"4167:15:97","nodeType":"YulExpressionStatement","src":"4167:15:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"4004:6:97","nodeType":"YulIdentifier","src":"4004:6:97"},{"kind":"number","nativeSrc":"4012:1:97","nodeType":"YulLiteral","src":"4012:1:97","type":"","value":"3"}],"functionName":{"name":"lt","nativeSrc":"4001:2:97","nodeType":"YulIdentifier","src":"4001:2:97"},"nativeSrc":"4001:13:97","nodeType":"YulFunctionCall","src":"4001:13:97"}],"functionName":{"name":"iszero","nativeSrc":"3994:6:97","nodeType":"YulIdentifier","src":"3994:6:97"},"nativeSrc":"3994:21:97","nodeType":"YulFunctionCall","src":"3994:21:97"},"nativeSrc":"3991:201:97","nodeType":"YulIf","src":"3991:201:97"},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4208:9:97","nodeType":"YulIdentifier","src":"4208:9:97"},{"name":"value0","nativeSrc":"4219:6:97","nodeType":"YulIdentifier","src":"4219:6:97"}],"functionName":{"name":"mstore","nativeSrc":"4201:6:97","nodeType":"YulIdentifier","src":"4201:6:97"},"nativeSrc":"4201:25:97","nodeType":"YulFunctionCall","src":"4201:25:97"},"nativeSrc":"4201:25:97","nodeType":"YulExpressionStatement","src":"4201:25:97"}]},"name":"abi_encode_tuple_t_enum$_ProposalState_$11762__to_t_uint8__fromStack_reversed","nativeSrc":"3828:404:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3915:9:97","nodeType":"YulTypedName","src":"3915:9:97","type":""},{"name":"value0","nativeSrc":"3926:6:97","nodeType":"YulTypedName","src":"3926:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3937:4:97","nodeType":"YulTypedName","src":"3937:4:97","type":""}],"src":"3828:404:97"},{"body":{"nativeSrc":"4338:125:97","nodeType":"YulBlock","src":"4338:125:97","statements":[{"nativeSrc":"4348:26:97","nodeType":"YulAssignment","src":"4348:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"4360:9:97","nodeType":"YulIdentifier","src":"4360:9:97"},{"kind":"number","nativeSrc":"4371:2:97","nodeType":"YulLiteral","src":"4371:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4356:3:97","nodeType":"YulIdentifier","src":"4356:3:97"},"nativeSrc":"4356:18:97","nodeType":"YulFunctionCall","src":"4356:18:97"},"variableNames":[{"name":"tail","nativeSrc":"4348:4:97","nodeType":"YulIdentifier","src":"4348:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4390:9:97","nodeType":"YulIdentifier","src":"4390:9:97"},{"arguments":[{"name":"value0","nativeSrc":"4405:6:97","nodeType":"YulIdentifier","src":"4405:6:97"},{"kind":"number","nativeSrc":"4413:42:97","nodeType":"YulLiteral","src":"4413:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"4401:3:97","nodeType":"YulIdentifier","src":"4401:3:97"},"nativeSrc":"4401:55:97","nodeType":"YulFunctionCall","src":"4401:55:97"}],"functionName":{"name":"mstore","nativeSrc":"4383:6:97","nodeType":"YulIdentifier","src":"4383:6:97"},"nativeSrc":"4383:74:97","nodeType":"YulFunctionCall","src":"4383:74:97"},"nativeSrc":"4383:74:97","nodeType":"YulExpressionStatement","src":"4383:74:97"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"4237:226:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4307:9:97","nodeType":"YulTypedName","src":"4307:9:97","type":""},{"name":"value0","nativeSrc":"4318:6:97","nodeType":"YulTypedName","src":"4318:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4329:4:97","nodeType":"YulTypedName","src":"4329:4:97","type":""}],"src":"4237:226:97"},{"body":{"nativeSrc":"4567:89:97","nodeType":"YulBlock","src":"4567:89:97","statements":[{"nativeSrc":"4577:26:97","nodeType":"YulAssignment","src":"4577:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"4589:9:97","nodeType":"YulIdentifier","src":"4589:9:97"},{"kind":"number","nativeSrc":"4600:2:97","nodeType":"YulLiteral","src":"4600:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4585:3:97","nodeType":"YulIdentifier","src":"4585:3:97"},"nativeSrc":"4585:18:97","nodeType":"YulFunctionCall","src":"4585:18:97"},"variableNames":[{"name":"tail","nativeSrc":"4577:4:97","nodeType":"YulIdentifier","src":"4577:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4619:9:97","nodeType":"YulIdentifier","src":"4619:9:97"},{"arguments":[{"name":"value0","nativeSrc":"4634:6:97","nodeType":"YulIdentifier","src":"4634:6:97"},{"kind":"number","nativeSrc":"4642:6:97","nodeType":"YulLiteral","src":"4642:6:97","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"4630:3:97","nodeType":"YulIdentifier","src":"4630:3:97"},"nativeSrc":"4630:19:97","nodeType":"YulFunctionCall","src":"4630:19:97"}],"functionName":{"name":"mstore","nativeSrc":"4612:6:97","nodeType":"YulIdentifier","src":"4612:6:97"},"nativeSrc":"4612:38:97","nodeType":"YulFunctionCall","src":"4612:38:97"},"nativeSrc":"4612:38:97","nodeType":"YulExpressionStatement","src":"4612:38:97"}]},"name":"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed","nativeSrc":"4468:188:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4536:9:97","nodeType":"YulTypedName","src":"4536:9:97","type":""},{"name":"value0","nativeSrc":"4547:6:97","nodeType":"YulTypedName","src":"4547:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4558:4:97","nodeType":"YulTypedName","src":"4558:4:97","type":""}],"src":"4468:188:97"},{"body":{"nativeSrc":"4693:152:97","nodeType":"YulBlock","src":"4693:152:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4710:1:97","nodeType":"YulLiteral","src":"4710:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"4713:77:97","nodeType":"YulLiteral","src":"4713:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"4703:6:97","nodeType":"YulIdentifier","src":"4703:6:97"},"nativeSrc":"4703:88:97","nodeType":"YulFunctionCall","src":"4703:88:97"},"nativeSrc":"4703:88:97","nodeType":"YulExpressionStatement","src":"4703:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4807:1:97","nodeType":"YulLiteral","src":"4807:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"4810:4:97","nodeType":"YulLiteral","src":"4810:4:97","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"4800:6:97","nodeType":"YulIdentifier","src":"4800:6:97"},"nativeSrc":"4800:15:97","nodeType":"YulFunctionCall","src":"4800:15:97"},"nativeSrc":"4800:15:97","nodeType":"YulExpressionStatement","src":"4800:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4831:1:97","nodeType":"YulLiteral","src":"4831:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"4834:4:97","nodeType":"YulLiteral","src":"4834:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"4824:6:97","nodeType":"YulIdentifier","src":"4824:6:97"},"nativeSrc":"4824:15:97","nodeType":"YulFunctionCall","src":"4824:15:97"},"nativeSrc":"4824:15:97","nodeType":"YulExpressionStatement","src":"4824:15:97"}]},"name":"panic_error_0x41","nativeSrc":"4661:184:97","nodeType":"YulFunctionDefinition","src":"4661:184:97"},{"body":{"nativeSrc":"4895:289:97","nodeType":"YulBlock","src":"4895:289:97","statements":[{"nativeSrc":"4905:19:97","nodeType":"YulAssignment","src":"4905:19:97","value":{"arguments":[{"kind":"number","nativeSrc":"4921:2:97","nodeType":"YulLiteral","src":"4921:2:97","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"4915:5:97","nodeType":"YulIdentifier","src":"4915:5:97"},"nativeSrc":"4915:9:97","nodeType":"YulFunctionCall","src":"4915:9:97"},"variableNames":[{"name":"memPtr","nativeSrc":"4905:6:97","nodeType":"YulIdentifier","src":"4905:6:97"}]},{"nativeSrc":"4933:117:97","nodeType":"YulVariableDeclaration","src":"4933:117:97","value":{"arguments":[{"name":"memPtr","nativeSrc":"4955:6:97","nodeType":"YulIdentifier","src":"4955:6:97"},{"arguments":[{"arguments":[{"name":"size","nativeSrc":"4971:4:97","nodeType":"YulIdentifier","src":"4971:4:97"},{"kind":"number","nativeSrc":"4977:2:97","nodeType":"YulLiteral","src":"4977:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"4967:3:97","nodeType":"YulIdentifier","src":"4967:3:97"},"nativeSrc":"4967:13:97","nodeType":"YulFunctionCall","src":"4967:13:97"},{"kind":"number","nativeSrc":"4982:66:97","nodeType":"YulLiteral","src":"4982:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"4963:3:97","nodeType":"YulIdentifier","src":"4963:3:97"},"nativeSrc":"4963:86:97","nodeType":"YulFunctionCall","src":"4963:86:97"}],"functionName":{"name":"add","nativeSrc":"4951:3:97","nodeType":"YulIdentifier","src":"4951:3:97"},"nativeSrc":"4951:99:97","nodeType":"YulFunctionCall","src":"4951:99:97"},"variables":[{"name":"newFreePtr","nativeSrc":"4937:10:97","nodeType":"YulTypedName","src":"4937:10:97","type":""}]},{"body":{"nativeSrc":"5125:22:97","nodeType":"YulBlock","src":"5125:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"5127:16:97","nodeType":"YulIdentifier","src":"5127:16:97"},"nativeSrc":"5127:18:97","nodeType":"YulFunctionCall","src":"5127:18:97"},"nativeSrc":"5127:18:97","nodeType":"YulExpressionStatement","src":"5127:18:97"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"5068:10:97","nodeType":"YulIdentifier","src":"5068:10:97"},{"kind":"number","nativeSrc":"5080:18:97","nodeType":"YulLiteral","src":"5080:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5065:2:97","nodeType":"YulIdentifier","src":"5065:2:97"},"nativeSrc":"5065:34:97","nodeType":"YulFunctionCall","src":"5065:34:97"},{"arguments":[{"name":"newFreePtr","nativeSrc":"5104:10:97","nodeType":"YulIdentifier","src":"5104:10:97"},{"name":"memPtr","nativeSrc":"5116:6:97","nodeType":"YulIdentifier","src":"5116:6:97"}],"functionName":{"name":"lt","nativeSrc":"5101:2:97","nodeType":"YulIdentifier","src":"5101:2:97"},"nativeSrc":"5101:22:97","nodeType":"YulFunctionCall","src":"5101:22:97"}],"functionName":{"name":"or","nativeSrc":"5062:2:97","nodeType":"YulIdentifier","src":"5062:2:97"},"nativeSrc":"5062:62:97","nodeType":"YulFunctionCall","src":"5062:62:97"},"nativeSrc":"5059:88:97","nodeType":"YulIf","src":"5059:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5163:2:97","nodeType":"YulLiteral","src":"5163:2:97","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"5167:10:97","nodeType":"YulIdentifier","src":"5167:10:97"}],"functionName":{"name":"mstore","nativeSrc":"5156:6:97","nodeType":"YulIdentifier","src":"5156:6:97"},"nativeSrc":"5156:22:97","nodeType":"YulFunctionCall","src":"5156:22:97"},"nativeSrc":"5156:22:97","nodeType":"YulExpressionStatement","src":"5156:22:97"}]},"name":"allocate_memory","nativeSrc":"4850:334:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"4875:4:97","nodeType":"YulTypedName","src":"4875:4:97","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"4884:6:97","nodeType":"YulTypedName","src":"4884:6:97","type":""}],"src":"4850:334:97"},{"body":{"nativeSrc":"5246:188:97","nodeType":"YulBlock","src":"5246:188:97","statements":[{"body":{"nativeSrc":"5290:22:97","nodeType":"YulBlock","src":"5290:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"5292:16:97","nodeType":"YulIdentifier","src":"5292:16:97"},"nativeSrc":"5292:18:97","nodeType":"YulFunctionCall","src":"5292:18:97"},"nativeSrc":"5292:18:97","nodeType":"YulExpressionStatement","src":"5292:18:97"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"5262:6:97","nodeType":"YulIdentifier","src":"5262:6:97"},{"kind":"number","nativeSrc":"5270:18:97","nodeType":"YulLiteral","src":"5270:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5259:2:97","nodeType":"YulIdentifier","src":"5259:2:97"},"nativeSrc":"5259:30:97","nodeType":"YulFunctionCall","src":"5259:30:97"},"nativeSrc":"5256:56:97","nodeType":"YulIf","src":"5256:56:97"},{"nativeSrc":"5321:107:97","nodeType":"YulAssignment","src":"5321:107:97","value":{"arguments":[{"arguments":[{"arguments":[{"name":"length","nativeSrc":"5341:6:97","nodeType":"YulIdentifier","src":"5341:6:97"},{"kind":"number","nativeSrc":"5349:2:97","nodeType":"YulLiteral","src":"5349:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"5337:3:97","nodeType":"YulIdentifier","src":"5337:3:97"},"nativeSrc":"5337:15:97","nodeType":"YulFunctionCall","src":"5337:15:97"},{"kind":"number","nativeSrc":"5354:66:97","nodeType":"YulLiteral","src":"5354:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"5333:3:97","nodeType":"YulIdentifier","src":"5333:3:97"},"nativeSrc":"5333:88:97","nodeType":"YulFunctionCall","src":"5333:88:97"},{"kind":"number","nativeSrc":"5423:4:97","nodeType":"YulLiteral","src":"5423:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5329:3:97","nodeType":"YulIdentifier","src":"5329:3:97"},"nativeSrc":"5329:99:97","nodeType":"YulFunctionCall","src":"5329:99:97"},"variableNames":[{"name":"size","nativeSrc":"5321:4:97","nodeType":"YulIdentifier","src":"5321:4:97"}]}]},"name":"array_allocation_size_bytes","nativeSrc":"5189:245:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"5226:6:97","nodeType":"YulTypedName","src":"5226:6:97","type":""}],"returnVariables":[{"name":"size","nativeSrc":"5237:4:97","nodeType":"YulTypedName","src":"5237:4:97","type":""}],"src":"5189:245:97"},{"body":{"nativeSrc":"5550:704:97","nodeType":"YulBlock","src":"5550:704:97","statements":[{"body":{"nativeSrc":"5596:16:97","nodeType":"YulBlock","src":"5596:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5605:1:97","nodeType":"YulLiteral","src":"5605:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"5608:1:97","nodeType":"YulLiteral","src":"5608:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5598:6:97","nodeType":"YulIdentifier","src":"5598:6:97"},"nativeSrc":"5598:12:97","nodeType":"YulFunctionCall","src":"5598:12:97"},"nativeSrc":"5598:12:97","nodeType":"YulExpressionStatement","src":"5598:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5571:7:97","nodeType":"YulIdentifier","src":"5571:7:97"},{"name":"headStart","nativeSrc":"5580:9:97","nodeType":"YulIdentifier","src":"5580:9:97"}],"functionName":{"name":"sub","nativeSrc":"5567:3:97","nodeType":"YulIdentifier","src":"5567:3:97"},"nativeSrc":"5567:23:97","nodeType":"YulFunctionCall","src":"5567:23:97"},{"kind":"number","nativeSrc":"5592:2:97","nodeType":"YulLiteral","src":"5592:2:97","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"5563:3:97","nodeType":"YulIdentifier","src":"5563:3:97"},"nativeSrc":"5563:32:97","nodeType":"YulFunctionCall","src":"5563:32:97"},"nativeSrc":"5560:52:97","nodeType":"YulIf","src":"5560:52:97"},{"nativeSrc":"5621:38:97","nodeType":"YulAssignment","src":"5621:38:97","value":{"arguments":[{"name":"headStart","nativeSrc":"5649:9:97","nodeType":"YulIdentifier","src":"5649:9:97"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"5631:17:97","nodeType":"YulIdentifier","src":"5631:17:97"},"nativeSrc":"5631:28:97","nodeType":"YulFunctionCall","src":"5631:28:97"},"variableNames":[{"name":"value0","nativeSrc":"5621:6:97","nodeType":"YulIdentifier","src":"5621:6:97"}]},{"nativeSrc":"5668:46:97","nodeType":"YulVariableDeclaration","src":"5668:46:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5699:9:97","nodeType":"YulIdentifier","src":"5699:9:97"},{"kind":"number","nativeSrc":"5710:2:97","nodeType":"YulLiteral","src":"5710:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5695:3:97","nodeType":"YulIdentifier","src":"5695:3:97"},"nativeSrc":"5695:18:97","nodeType":"YulFunctionCall","src":"5695:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"5682:12:97","nodeType":"YulIdentifier","src":"5682:12:97"},"nativeSrc":"5682:32:97","nodeType":"YulFunctionCall","src":"5682:32:97"},"variables":[{"name":"offset","nativeSrc":"5672:6:97","nodeType":"YulTypedName","src":"5672:6:97","type":""}]},{"body":{"nativeSrc":"5757:16:97","nodeType":"YulBlock","src":"5757:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5766:1:97","nodeType":"YulLiteral","src":"5766:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"5769:1:97","nodeType":"YulLiteral","src":"5769:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5759:6:97","nodeType":"YulIdentifier","src":"5759:6:97"},"nativeSrc":"5759:12:97","nodeType":"YulFunctionCall","src":"5759:12:97"},"nativeSrc":"5759:12:97","nodeType":"YulExpressionStatement","src":"5759:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"5729:6:97","nodeType":"YulIdentifier","src":"5729:6:97"},{"kind":"number","nativeSrc":"5737:18:97","nodeType":"YulLiteral","src":"5737:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5726:2:97","nodeType":"YulIdentifier","src":"5726:2:97"},"nativeSrc":"5726:30:97","nodeType":"YulFunctionCall","src":"5726:30:97"},"nativeSrc":"5723:50:97","nodeType":"YulIf","src":"5723:50:97"},{"nativeSrc":"5782:32:97","nodeType":"YulVariableDeclaration","src":"5782:32:97","value":{"arguments":[{"name":"headStart","nativeSrc":"5796:9:97","nodeType":"YulIdentifier","src":"5796:9:97"},{"name":"offset","nativeSrc":"5807:6:97","nodeType":"YulIdentifier","src":"5807:6:97"}],"functionName":{"name":"add","nativeSrc":"5792:3:97","nodeType":"YulIdentifier","src":"5792:3:97"},"nativeSrc":"5792:22:97","nodeType":"YulFunctionCall","src":"5792:22:97"},"variables":[{"name":"_1","nativeSrc":"5786:2:97","nodeType":"YulTypedName","src":"5786:2:97","type":""}]},{"body":{"nativeSrc":"5862:16:97","nodeType":"YulBlock","src":"5862:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5871:1:97","nodeType":"YulLiteral","src":"5871:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"5874:1:97","nodeType":"YulLiteral","src":"5874:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5864:6:97","nodeType":"YulIdentifier","src":"5864:6:97"},"nativeSrc":"5864:12:97","nodeType":"YulFunctionCall","src":"5864:12:97"},"nativeSrc":"5864:12:97","nodeType":"YulExpressionStatement","src":"5864:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"5841:2:97","nodeType":"YulIdentifier","src":"5841:2:97"},{"kind":"number","nativeSrc":"5845:4:97","nodeType":"YulLiteral","src":"5845:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"5837:3:97","nodeType":"YulIdentifier","src":"5837:3:97"},"nativeSrc":"5837:13:97","nodeType":"YulFunctionCall","src":"5837:13:97"},{"name":"dataEnd","nativeSrc":"5852:7:97","nodeType":"YulIdentifier","src":"5852:7:97"}],"functionName":{"name":"slt","nativeSrc":"5833:3:97","nodeType":"YulIdentifier","src":"5833:3:97"},"nativeSrc":"5833:27:97","nodeType":"YulFunctionCall","src":"5833:27:97"}],"functionName":{"name":"iszero","nativeSrc":"5826:6:97","nodeType":"YulIdentifier","src":"5826:6:97"},"nativeSrc":"5826:35:97","nodeType":"YulFunctionCall","src":"5826:35:97"},"nativeSrc":"5823:55:97","nodeType":"YulIf","src":"5823:55:97"},{"nativeSrc":"5887:26:97","nodeType":"YulVariableDeclaration","src":"5887:26:97","value":{"arguments":[{"name":"_1","nativeSrc":"5910:2:97","nodeType":"YulIdentifier","src":"5910:2:97"}],"functionName":{"name":"calldataload","nativeSrc":"5897:12:97","nodeType":"YulIdentifier","src":"5897:12:97"},"nativeSrc":"5897:16:97","nodeType":"YulFunctionCall","src":"5897:16:97"},"variables":[{"name":"_2","nativeSrc":"5891:2:97","nodeType":"YulTypedName","src":"5891:2:97","type":""}]},{"nativeSrc":"5922:61:97","nodeType":"YulVariableDeclaration","src":"5922:61:97","value":{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"5979:2:97","nodeType":"YulIdentifier","src":"5979:2:97"}],"functionName":{"name":"array_allocation_size_bytes","nativeSrc":"5951:27:97","nodeType":"YulIdentifier","src":"5951:27:97"},"nativeSrc":"5951:31:97","nodeType":"YulFunctionCall","src":"5951:31:97"}],"functionName":{"name":"allocate_memory","nativeSrc":"5935:15:97","nodeType":"YulIdentifier","src":"5935:15:97"},"nativeSrc":"5935:48:97","nodeType":"YulFunctionCall","src":"5935:48:97"},"variables":[{"name":"array","nativeSrc":"5926:5:97","nodeType":"YulTypedName","src":"5926:5:97","type":""}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"5999:5:97","nodeType":"YulIdentifier","src":"5999:5:97"},{"name":"_2","nativeSrc":"6006:2:97","nodeType":"YulIdentifier","src":"6006:2:97"}],"functionName":{"name":"mstore","nativeSrc":"5992:6:97","nodeType":"YulIdentifier","src":"5992:6:97"},"nativeSrc":"5992:17:97","nodeType":"YulFunctionCall","src":"5992:17:97"},"nativeSrc":"5992:17:97","nodeType":"YulExpressionStatement","src":"5992:17:97"},{"body":{"nativeSrc":"6055:16:97","nodeType":"YulBlock","src":"6055:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6064:1:97","nodeType":"YulLiteral","src":"6064:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"6067:1:97","nodeType":"YulLiteral","src":"6067:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6057:6:97","nodeType":"YulIdentifier","src":"6057:6:97"},"nativeSrc":"6057:12:97","nodeType":"YulFunctionCall","src":"6057:12:97"},"nativeSrc":"6057:12:97","nodeType":"YulExpressionStatement","src":"6057:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"6032:2:97","nodeType":"YulIdentifier","src":"6032:2:97"},{"name":"_2","nativeSrc":"6036:2:97","nodeType":"YulIdentifier","src":"6036:2:97"}],"functionName":{"name":"add","nativeSrc":"6028:3:97","nodeType":"YulIdentifier","src":"6028:3:97"},"nativeSrc":"6028:11:97","nodeType":"YulFunctionCall","src":"6028:11:97"},{"kind":"number","nativeSrc":"6041:2:97","nodeType":"YulLiteral","src":"6041:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6024:3:97","nodeType":"YulIdentifier","src":"6024:3:97"},"nativeSrc":"6024:20:97","nodeType":"YulFunctionCall","src":"6024:20:97"},{"name":"dataEnd","nativeSrc":"6046:7:97","nodeType":"YulIdentifier","src":"6046:7:97"}],"functionName":{"name":"gt","nativeSrc":"6021:2:97","nodeType":"YulIdentifier","src":"6021:2:97"},"nativeSrc":"6021:33:97","nodeType":"YulFunctionCall","src":"6021:33:97"},"nativeSrc":"6018:53:97","nodeType":"YulIf","src":"6018:53:97"},{"expression":{"arguments":[{"arguments":[{"name":"array","nativeSrc":"6097:5:97","nodeType":"YulIdentifier","src":"6097:5:97"},{"kind":"number","nativeSrc":"6104:2:97","nodeType":"YulLiteral","src":"6104:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6093:3:97","nodeType":"YulIdentifier","src":"6093:3:97"},"nativeSrc":"6093:14:97","nodeType":"YulFunctionCall","src":"6093:14:97"},{"arguments":[{"name":"_1","nativeSrc":"6113:2:97","nodeType":"YulIdentifier","src":"6113:2:97"},{"kind":"number","nativeSrc":"6117:2:97","nodeType":"YulLiteral","src":"6117:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6109:3:97","nodeType":"YulIdentifier","src":"6109:3:97"},"nativeSrc":"6109:11:97","nodeType":"YulFunctionCall","src":"6109:11:97"},{"name":"_2","nativeSrc":"6122:2:97","nodeType":"YulIdentifier","src":"6122:2:97"}],"functionName":{"name":"calldatacopy","nativeSrc":"6080:12:97","nodeType":"YulIdentifier","src":"6080:12:97"},"nativeSrc":"6080:45:97","nodeType":"YulFunctionCall","src":"6080:45:97"},"nativeSrc":"6080:45:97","nodeType":"YulExpressionStatement","src":"6080:45:97"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array","nativeSrc":"6149:5:97","nodeType":"YulIdentifier","src":"6149:5:97"},{"name":"_2","nativeSrc":"6156:2:97","nodeType":"YulIdentifier","src":"6156:2:97"}],"functionName":{"name":"add","nativeSrc":"6145:3:97","nodeType":"YulIdentifier","src":"6145:3:97"},"nativeSrc":"6145:14:97","nodeType":"YulFunctionCall","src":"6145:14:97"},{"kind":"number","nativeSrc":"6161:2:97","nodeType":"YulLiteral","src":"6161:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6141:3:97","nodeType":"YulIdentifier","src":"6141:3:97"},"nativeSrc":"6141:23:97","nodeType":"YulFunctionCall","src":"6141:23:97"},{"kind":"number","nativeSrc":"6166:1:97","nodeType":"YulLiteral","src":"6166:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"6134:6:97","nodeType":"YulIdentifier","src":"6134:6:97"},"nativeSrc":"6134:34:97","nodeType":"YulFunctionCall","src":"6134:34:97"},"nativeSrc":"6134:34:97","nodeType":"YulExpressionStatement","src":"6134:34:97"},{"nativeSrc":"6177:15:97","nodeType":"YulAssignment","src":"6177:15:97","value":{"name":"array","nativeSrc":"6187:5:97","nodeType":"YulIdentifier","src":"6187:5:97"},"variableNames":[{"name":"value1","nativeSrc":"6177:6:97","nodeType":"YulIdentifier","src":"6177:6:97"}]},{"nativeSrc":"6201:47:97","nodeType":"YulAssignment","src":"6201:47:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6233:9:97","nodeType":"YulIdentifier","src":"6233:9:97"},{"kind":"number","nativeSrc":"6244:2:97","nodeType":"YulLiteral","src":"6244:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6229:3:97","nodeType":"YulIdentifier","src":"6229:3:97"},"nativeSrc":"6229:18:97","nodeType":"YulFunctionCall","src":"6229:18:97"}],"functionName":{"name":"abi_decode_uint64","nativeSrc":"6211:17:97","nodeType":"YulIdentifier","src":"6211:17:97"},"nativeSrc":"6211:37:97","nodeType":"YulFunctionCall","src":"6211:37:97"},"variableNames":[{"name":"value2","nativeSrc":"6201:6:97","nodeType":"YulIdentifier","src":"6201:6:97"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint64","nativeSrc":"5439:815:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5500:9:97","nodeType":"YulTypedName","src":"5500:9:97","type":""},{"name":"dataEnd","nativeSrc":"5511:7:97","nodeType":"YulTypedName","src":"5511:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5523:6:97","nodeType":"YulTypedName","src":"5523:6:97","type":""},{"name":"value1","nativeSrc":"5531:6:97","nodeType":"YulTypedName","src":"5531:6:97","type":""},{"name":"value2","nativeSrc":"5539:6:97","nodeType":"YulTypedName","src":"5539:6:97","type":""}],"src":"5439:815:97"},{"body":{"nativeSrc":"6360:76:97","nodeType":"YulBlock","src":"6360:76:97","statements":[{"nativeSrc":"6370:26:97","nodeType":"YulAssignment","src":"6370:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"6382:9:97","nodeType":"YulIdentifier","src":"6382:9:97"},{"kind":"number","nativeSrc":"6393:2:97","nodeType":"YulLiteral","src":"6393:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6378:3:97","nodeType":"YulIdentifier","src":"6378:3:97"},"nativeSrc":"6378:18:97","nodeType":"YulFunctionCall","src":"6378:18:97"},"variableNames":[{"name":"tail","nativeSrc":"6370:4:97","nodeType":"YulIdentifier","src":"6370:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6412:9:97","nodeType":"YulIdentifier","src":"6412:9:97"},{"name":"value0","nativeSrc":"6423:6:97","nodeType":"YulIdentifier","src":"6423:6:97"}],"functionName":{"name":"mstore","nativeSrc":"6405:6:97","nodeType":"YulIdentifier","src":"6405:6:97"},"nativeSrc":"6405:25:97","nodeType":"YulFunctionCall","src":"6405:25:97"},"nativeSrc":"6405:25:97","nodeType":"YulExpressionStatement","src":"6405:25:97"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"6259:177:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6329:9:97","nodeType":"YulTypedName","src":"6329:9:97","type":""},{"name":"value0","nativeSrc":"6340:6:97","nodeType":"YulTypedName","src":"6340:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6351:4:97","nodeType":"YulTypedName","src":"6351:4:97","type":""}],"src":"6259:177:97"},{"body":{"nativeSrc":"6507:184:97","nodeType":"YulBlock","src":"6507:184:97","statements":[{"nativeSrc":"6517:10:97","nodeType":"YulVariableDeclaration","src":"6517:10:97","value":{"kind":"number","nativeSrc":"6526:1:97","nodeType":"YulLiteral","src":"6526:1:97","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"6521:1:97","nodeType":"YulTypedName","src":"6521:1:97","type":""}]},{"body":{"nativeSrc":"6586:63:97","nodeType":"YulBlock","src":"6586:63:97","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"6611:3:97","nodeType":"YulIdentifier","src":"6611:3:97"},{"name":"i","nativeSrc":"6616:1:97","nodeType":"YulIdentifier","src":"6616:1:97"}],"functionName":{"name":"add","nativeSrc":"6607:3:97","nodeType":"YulIdentifier","src":"6607:3:97"},"nativeSrc":"6607:11:97","nodeType":"YulFunctionCall","src":"6607:11:97"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"6630:3:97","nodeType":"YulIdentifier","src":"6630:3:97"},{"name":"i","nativeSrc":"6635:1:97","nodeType":"YulIdentifier","src":"6635:1:97"}],"functionName":{"name":"add","nativeSrc":"6626:3:97","nodeType":"YulIdentifier","src":"6626:3:97"},"nativeSrc":"6626:11:97","nodeType":"YulFunctionCall","src":"6626:11:97"}],"functionName":{"name":"mload","nativeSrc":"6620:5:97","nodeType":"YulIdentifier","src":"6620:5:97"},"nativeSrc":"6620:18:97","nodeType":"YulFunctionCall","src":"6620:18:97"}],"functionName":{"name":"mstore","nativeSrc":"6600:6:97","nodeType":"YulIdentifier","src":"6600:6:97"},"nativeSrc":"6600:39:97","nodeType":"YulFunctionCall","src":"6600:39:97"},"nativeSrc":"6600:39:97","nodeType":"YulExpressionStatement","src":"6600:39:97"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"6547:1:97","nodeType":"YulIdentifier","src":"6547:1:97"},{"name":"length","nativeSrc":"6550:6:97","nodeType":"YulIdentifier","src":"6550:6:97"}],"functionName":{"name":"lt","nativeSrc":"6544:2:97","nodeType":"YulIdentifier","src":"6544:2:97"},"nativeSrc":"6544:13:97","nodeType":"YulFunctionCall","src":"6544:13:97"},"nativeSrc":"6536:113:97","nodeType":"YulForLoop","post":{"nativeSrc":"6558:19:97","nodeType":"YulBlock","src":"6558:19:97","statements":[{"nativeSrc":"6560:15:97","nodeType":"YulAssignment","src":"6560:15:97","value":{"arguments":[{"name":"i","nativeSrc":"6569:1:97","nodeType":"YulIdentifier","src":"6569:1:97"},{"kind":"number","nativeSrc":"6572:2:97","nodeType":"YulLiteral","src":"6572:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6565:3:97","nodeType":"YulIdentifier","src":"6565:3:97"},"nativeSrc":"6565:10:97","nodeType":"YulFunctionCall","src":"6565:10:97"},"variableNames":[{"name":"i","nativeSrc":"6560:1:97","nodeType":"YulIdentifier","src":"6560:1:97"}]}]},"pre":{"nativeSrc":"6540:3:97","nodeType":"YulBlock","src":"6540:3:97","statements":[]},"src":"6536:113:97"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"6669:3:97","nodeType":"YulIdentifier","src":"6669:3:97"},{"name":"length","nativeSrc":"6674:6:97","nodeType":"YulIdentifier","src":"6674:6:97"}],"functionName":{"name":"add","nativeSrc":"6665:3:97","nodeType":"YulIdentifier","src":"6665:3:97"},"nativeSrc":"6665:16:97","nodeType":"YulFunctionCall","src":"6665:16:97"},{"kind":"number","nativeSrc":"6683:1:97","nodeType":"YulLiteral","src":"6683:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"6658:6:97","nodeType":"YulIdentifier","src":"6658:6:97"},"nativeSrc":"6658:27:97","nodeType":"YulFunctionCall","src":"6658:27:97"},"nativeSrc":"6658:27:97","nodeType":"YulExpressionStatement","src":"6658:27:97"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"6441:250:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"6485:3:97","nodeType":"YulTypedName","src":"6485:3:97","type":""},{"name":"dst","nativeSrc":"6490:3:97","nodeType":"YulTypedName","src":"6490:3:97","type":""},{"name":"length","nativeSrc":"6495:6:97","nodeType":"YulTypedName","src":"6495:6:97","type":""}],"src":"6441:250:97"},{"body":{"nativeSrc":"6745:280:97","nodeType":"YulBlock","src":"6745:280:97","statements":[{"nativeSrc":"6755:26:97","nodeType":"YulVariableDeclaration","src":"6755:26:97","value":{"arguments":[{"name":"value","nativeSrc":"6775:5:97","nodeType":"YulIdentifier","src":"6775:5:97"}],"functionName":{"name":"mload","nativeSrc":"6769:5:97","nodeType":"YulIdentifier","src":"6769:5:97"},"nativeSrc":"6769:12:97","nodeType":"YulFunctionCall","src":"6769:12:97"},"variables":[{"name":"length","nativeSrc":"6759:6:97","nodeType":"YulTypedName","src":"6759:6:97","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"6797:3:97","nodeType":"YulIdentifier","src":"6797:3:97"},{"name":"length","nativeSrc":"6802:6:97","nodeType":"YulIdentifier","src":"6802:6:97"}],"functionName":{"name":"mstore","nativeSrc":"6790:6:97","nodeType":"YulIdentifier","src":"6790:6:97"},"nativeSrc":"6790:19:97","nodeType":"YulFunctionCall","src":"6790:19:97"},"nativeSrc":"6790:19:97","nodeType":"YulExpressionStatement","src":"6790:19:97"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6857:5:97","nodeType":"YulIdentifier","src":"6857:5:97"},{"kind":"number","nativeSrc":"6864:4:97","nodeType":"YulLiteral","src":"6864:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6853:3:97","nodeType":"YulIdentifier","src":"6853:3:97"},"nativeSrc":"6853:16:97","nodeType":"YulFunctionCall","src":"6853:16:97"},{"arguments":[{"name":"pos","nativeSrc":"6875:3:97","nodeType":"YulIdentifier","src":"6875:3:97"},{"kind":"number","nativeSrc":"6880:4:97","nodeType":"YulLiteral","src":"6880:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6871:3:97","nodeType":"YulIdentifier","src":"6871:3:97"},"nativeSrc":"6871:14:97","nodeType":"YulFunctionCall","src":"6871:14:97"},{"name":"length","nativeSrc":"6887:6:97","nodeType":"YulIdentifier","src":"6887:6:97"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"6818:34:97","nodeType":"YulIdentifier","src":"6818:34:97"},"nativeSrc":"6818:76:97","nodeType":"YulFunctionCall","src":"6818:76:97"},"nativeSrc":"6818:76:97","nodeType":"YulExpressionStatement","src":"6818:76:97"},{"nativeSrc":"6903:116:97","nodeType":"YulAssignment","src":"6903:116:97","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"6918:3:97","nodeType":"YulIdentifier","src":"6918:3:97"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"6931:6:97","nodeType":"YulIdentifier","src":"6931:6:97"},{"kind":"number","nativeSrc":"6939:2:97","nodeType":"YulLiteral","src":"6939:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"6927:3:97","nodeType":"YulIdentifier","src":"6927:3:97"},"nativeSrc":"6927:15:97","nodeType":"YulFunctionCall","src":"6927:15:97"},{"kind":"number","nativeSrc":"6944:66:97","nodeType":"YulLiteral","src":"6944:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"6923:3:97","nodeType":"YulIdentifier","src":"6923:3:97"},"nativeSrc":"6923:88:97","nodeType":"YulFunctionCall","src":"6923:88:97"}],"functionName":{"name":"add","nativeSrc":"6914:3:97","nodeType":"YulIdentifier","src":"6914:3:97"},"nativeSrc":"6914:98:97","nodeType":"YulFunctionCall","src":"6914:98:97"},{"kind":"number","nativeSrc":"7014:4:97","nodeType":"YulLiteral","src":"7014:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6910:3:97","nodeType":"YulIdentifier","src":"6910:3:97"},"nativeSrc":"6910:109:97","nodeType":"YulFunctionCall","src":"6910:109:97"},"variableNames":[{"name":"end","nativeSrc":"6903:3:97","nodeType":"YulIdentifier","src":"6903:3:97"}]}]},"name":"abi_encode_bytes","nativeSrc":"6696:329:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6722:5:97","nodeType":"YulTypedName","src":"6722:5:97","type":""},{"name":"pos","nativeSrc":"6729:3:97","nodeType":"YulTypedName","src":"6729:3:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"6737:3:97","nodeType":"YulTypedName","src":"6737:3:97","type":""}],"src":"6696:329:97"},{"body":{"nativeSrc":"7149:98:97","nodeType":"YulBlock","src":"7149:98:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7166:9:97","nodeType":"YulIdentifier","src":"7166:9:97"},{"kind":"number","nativeSrc":"7177:2:97","nodeType":"YulLiteral","src":"7177:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"7159:6:97","nodeType":"YulIdentifier","src":"7159:6:97"},"nativeSrc":"7159:21:97","nodeType":"YulFunctionCall","src":"7159:21:97"},"nativeSrc":"7159:21:97","nodeType":"YulExpressionStatement","src":"7159:21:97"},{"nativeSrc":"7189:52:97","nodeType":"YulAssignment","src":"7189:52:97","value":{"arguments":[{"name":"value0","nativeSrc":"7214:6:97","nodeType":"YulIdentifier","src":"7214:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"7226:9:97","nodeType":"YulIdentifier","src":"7226:9:97"},{"kind":"number","nativeSrc":"7237:2:97","nodeType":"YulLiteral","src":"7237:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7222:3:97","nodeType":"YulIdentifier","src":"7222:3:97"},"nativeSrc":"7222:18:97","nodeType":"YulFunctionCall","src":"7222:18:97"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"7197:16:97","nodeType":"YulIdentifier","src":"7197:16:97"},"nativeSrc":"7197:44:97","nodeType":"YulFunctionCall","src":"7197:44:97"},"variableNames":[{"name":"tail","nativeSrc":"7189:4:97","nodeType":"YulIdentifier","src":"7189:4:97"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"7030:217:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7118:9:97","nodeType":"YulTypedName","src":"7118:9:97","type":""},{"name":"value0","nativeSrc":"7129:6:97","nodeType":"YulTypedName","src":"7129:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7140:4:97","nodeType":"YulTypedName","src":"7140:4:97","type":""}],"src":"7030:217:97"},{"body":{"nativeSrc":"7297:109:97","nodeType":"YulBlock","src":"7297:109:97","statements":[{"body":{"nativeSrc":"7384:16:97","nodeType":"YulBlock","src":"7384:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7393:1:97","nodeType":"YulLiteral","src":"7393:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"7396:1:97","nodeType":"YulLiteral","src":"7396:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7386:6:97","nodeType":"YulIdentifier","src":"7386:6:97"},"nativeSrc":"7386:12:97","nodeType":"YulFunctionCall","src":"7386:12:97"},"nativeSrc":"7386:12:97","nodeType":"YulExpressionStatement","src":"7386:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7320:5:97","nodeType":"YulIdentifier","src":"7320:5:97"},{"arguments":[{"name":"value","nativeSrc":"7331:5:97","nodeType":"YulIdentifier","src":"7331:5:97"},{"kind":"number","nativeSrc":"7338:42:97","nodeType":"YulLiteral","src":"7338:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"7327:3:97","nodeType":"YulIdentifier","src":"7327:3:97"},"nativeSrc":"7327:54:97","nodeType":"YulFunctionCall","src":"7327:54:97"}],"functionName":{"name":"eq","nativeSrc":"7317:2:97","nodeType":"YulIdentifier","src":"7317:2:97"},"nativeSrc":"7317:65:97","nodeType":"YulFunctionCall","src":"7317:65:97"}],"functionName":{"name":"iszero","nativeSrc":"7310:6:97","nodeType":"YulIdentifier","src":"7310:6:97"},"nativeSrc":"7310:73:97","nodeType":"YulFunctionCall","src":"7310:73:97"},"nativeSrc":"7307:93:97","nodeType":"YulIf","src":"7307:93:97"}]},"name":"validator_revert_address","nativeSrc":"7252:154:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7286:5:97","nodeType":"YulTypedName","src":"7286:5:97","type":""}],"src":"7252:154:97"},{"body":{"nativeSrc":"7481:177:97","nodeType":"YulBlock","src":"7481:177:97","statements":[{"body":{"nativeSrc":"7527:16:97","nodeType":"YulBlock","src":"7527:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7536:1:97","nodeType":"YulLiteral","src":"7536:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"7539:1:97","nodeType":"YulLiteral","src":"7539:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7529:6:97","nodeType":"YulIdentifier","src":"7529:6:97"},"nativeSrc":"7529:12:97","nodeType":"YulFunctionCall","src":"7529:12:97"},"nativeSrc":"7529:12:97","nodeType":"YulExpressionStatement","src":"7529:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7502:7:97","nodeType":"YulIdentifier","src":"7502:7:97"},{"name":"headStart","nativeSrc":"7511:9:97","nodeType":"YulIdentifier","src":"7511:9:97"}],"functionName":{"name":"sub","nativeSrc":"7498:3:97","nodeType":"YulIdentifier","src":"7498:3:97"},"nativeSrc":"7498:23:97","nodeType":"YulFunctionCall","src":"7498:23:97"},{"kind":"number","nativeSrc":"7523:2:97","nodeType":"YulLiteral","src":"7523:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7494:3:97","nodeType":"YulIdentifier","src":"7494:3:97"},"nativeSrc":"7494:32:97","nodeType":"YulFunctionCall","src":"7494:32:97"},"nativeSrc":"7491:52:97","nodeType":"YulIf","src":"7491:52:97"},{"nativeSrc":"7552:36:97","nodeType":"YulVariableDeclaration","src":"7552:36:97","value":{"arguments":[{"name":"headStart","nativeSrc":"7578:9:97","nodeType":"YulIdentifier","src":"7578:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"7565:12:97","nodeType":"YulIdentifier","src":"7565:12:97"},"nativeSrc":"7565:23:97","nodeType":"YulFunctionCall","src":"7565:23:97"},"variables":[{"name":"value","nativeSrc":"7556:5:97","nodeType":"YulTypedName","src":"7556:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7622:5:97","nodeType":"YulIdentifier","src":"7622:5:97"}],"functionName":{"name":"validator_revert_address","nativeSrc":"7597:24:97","nodeType":"YulIdentifier","src":"7597:24:97"},"nativeSrc":"7597:31:97","nodeType":"YulFunctionCall","src":"7597:31:97"},"nativeSrc":"7597:31:97","nodeType":"YulExpressionStatement","src":"7597:31:97"},{"nativeSrc":"7637:15:97","nodeType":"YulAssignment","src":"7637:15:97","value":{"name":"value","nativeSrc":"7647:5:97","nodeType":"YulIdentifier","src":"7647:5:97"},"variableNames":[{"name":"value0","nativeSrc":"7637:6:97","nodeType":"YulIdentifier","src":"7637:6:97"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"7411:247:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7447:9:97","nodeType":"YulTypedName","src":"7447:9:97","type":""},{"name":"dataEnd","nativeSrc":"7458:7:97","nodeType":"YulTypedName","src":"7458:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7470:6:97","nodeType":"YulTypedName","src":"7470:6:97","type":""}],"src":"7411:247:97"},{"body":{"nativeSrc":"7748:171:97","nodeType":"YulBlock","src":"7748:171:97","statements":[{"body":{"nativeSrc":"7794:16:97","nodeType":"YulBlock","src":"7794:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7803:1:97","nodeType":"YulLiteral","src":"7803:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"7806:1:97","nodeType":"YulLiteral","src":"7806:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7796:6:97","nodeType":"YulIdentifier","src":"7796:6:97"},"nativeSrc":"7796:12:97","nodeType":"YulFunctionCall","src":"7796:12:97"},"nativeSrc":"7796:12:97","nodeType":"YulExpressionStatement","src":"7796:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7769:7:97","nodeType":"YulIdentifier","src":"7769:7:97"},{"name":"headStart","nativeSrc":"7778:9:97","nodeType":"YulIdentifier","src":"7778:9:97"}],"functionName":{"name":"sub","nativeSrc":"7765:3:97","nodeType":"YulIdentifier","src":"7765:3:97"},"nativeSrc":"7765:23:97","nodeType":"YulFunctionCall","src":"7765:23:97"},{"kind":"number","nativeSrc":"7790:2:97","nodeType":"YulLiteral","src":"7790:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"7761:3:97","nodeType":"YulIdentifier","src":"7761:3:97"},"nativeSrc":"7761:32:97","nodeType":"YulFunctionCall","src":"7761:32:97"},"nativeSrc":"7758:52:97","nodeType":"YulIf","src":"7758:52:97"},{"nativeSrc":"7819:38:97","nodeType":"YulAssignment","src":"7819:38:97","value":{"arguments":[{"name":"headStart","nativeSrc":"7847:9:97","nodeType":"YulIdentifier","src":"7847:9:97"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"7829:17:97","nodeType":"YulIdentifier","src":"7829:17:97"},"nativeSrc":"7829:28:97","nodeType":"YulFunctionCall","src":"7829:28:97"},"variableNames":[{"name":"value0","nativeSrc":"7819:6:97","nodeType":"YulIdentifier","src":"7819:6:97"}]},{"nativeSrc":"7866:47:97","nodeType":"YulAssignment","src":"7866:47:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7898:9:97","nodeType":"YulIdentifier","src":"7898:9:97"},{"kind":"number","nativeSrc":"7909:2:97","nodeType":"YulLiteral","src":"7909:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7894:3:97","nodeType":"YulIdentifier","src":"7894:3:97"},"nativeSrc":"7894:18:97","nodeType":"YulFunctionCall","src":"7894:18:97"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"7876:17:97","nodeType":"YulIdentifier","src":"7876:17:97"},"nativeSrc":"7876:37:97","nodeType":"YulFunctionCall","src":"7876:37:97"},"variableNames":[{"name":"value1","nativeSrc":"7866:6:97","nodeType":"YulIdentifier","src":"7866:6:97"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16","nativeSrc":"7663:256:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7706:9:97","nodeType":"YulTypedName","src":"7706:9:97","type":""},{"name":"dataEnd","nativeSrc":"7717:7:97","nodeType":"YulTypedName","src":"7717:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7729:6:97","nodeType":"YulTypedName","src":"7729:6:97","type":""},{"name":"value1","nativeSrc":"7737:6:97","nodeType":"YulTypedName","src":"7737:6:97","type":""}],"src":"7663:256:97"},{"body":{"nativeSrc":"8052:125:97","nodeType":"YulBlock","src":"8052:125:97","statements":[{"nativeSrc":"8062:26:97","nodeType":"YulAssignment","src":"8062:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"8074:9:97","nodeType":"YulIdentifier","src":"8074:9:97"},{"kind":"number","nativeSrc":"8085:2:97","nodeType":"YulLiteral","src":"8085:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8070:3:97","nodeType":"YulIdentifier","src":"8070:3:97"},"nativeSrc":"8070:18:97","nodeType":"YulFunctionCall","src":"8070:18:97"},"variableNames":[{"name":"tail","nativeSrc":"8062:4:97","nodeType":"YulIdentifier","src":"8062:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8104:9:97","nodeType":"YulIdentifier","src":"8104:9:97"},{"arguments":[{"name":"value0","nativeSrc":"8119:6:97","nodeType":"YulIdentifier","src":"8119:6:97"},{"kind":"number","nativeSrc":"8127:42:97","nodeType":"YulLiteral","src":"8127:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"8115:3:97","nodeType":"YulIdentifier","src":"8115:3:97"},"nativeSrc":"8115:55:97","nodeType":"YulFunctionCall","src":"8115:55:97"}],"functionName":{"name":"mstore","nativeSrc":"8097:6:97","nodeType":"YulIdentifier","src":"8097:6:97"},"nativeSrc":"8097:74:97","nodeType":"YulFunctionCall","src":"8097:74:97"},"nativeSrc":"8097:74:97","nodeType":"YulExpressionStatement","src":"8097:74:97"}]},"name":"abi_encode_tuple_t_contract$_ILayerZeroEndpoint_$4253__to_t_address__fromStack_reversed","nativeSrc":"7924:253:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8021:9:97","nodeType":"YulTypedName","src":"8021:9:97","type":""},{"name":"value0","nativeSrc":"8032:6:97","nodeType":"YulTypedName","src":"8032:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8043:4:97","nodeType":"YulTypedName","src":"8043:4:97","type":""}],"src":"7924:253:97"},{"body":{"nativeSrc":"8320:484:97","nodeType":"YulBlock","src":"8320:484:97","statements":[{"body":{"nativeSrc":"8367:16:97","nodeType":"YulBlock","src":"8367:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8376:1:97","nodeType":"YulLiteral","src":"8376:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"8379:1:97","nodeType":"YulLiteral","src":"8379:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8369:6:97","nodeType":"YulIdentifier","src":"8369:6:97"},"nativeSrc":"8369:12:97","nodeType":"YulFunctionCall","src":"8369:12:97"},"nativeSrc":"8369:12:97","nodeType":"YulExpressionStatement","src":"8369:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8341:7:97","nodeType":"YulIdentifier","src":"8341:7:97"},{"name":"headStart","nativeSrc":"8350:9:97","nodeType":"YulIdentifier","src":"8350:9:97"}],"functionName":{"name":"sub","nativeSrc":"8337:3:97","nodeType":"YulIdentifier","src":"8337:3:97"},"nativeSrc":"8337:23:97","nodeType":"YulFunctionCall","src":"8337:23:97"},{"kind":"number","nativeSrc":"8362:3:97","nodeType":"YulLiteral","src":"8362:3:97","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"8333:3:97","nodeType":"YulIdentifier","src":"8333:3:97"},"nativeSrc":"8333:33:97","nodeType":"YulFunctionCall","src":"8333:33:97"},"nativeSrc":"8330:53:97","nodeType":"YulIf","src":"8330:53:97"},{"nativeSrc":"8392:38:97","nodeType":"YulAssignment","src":"8392:38:97","value":{"arguments":[{"name":"headStart","nativeSrc":"8420:9:97","nodeType":"YulIdentifier","src":"8420:9:97"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"8402:17:97","nodeType":"YulIdentifier","src":"8402:17:97"},"nativeSrc":"8402:28:97","nodeType":"YulFunctionCall","src":"8402:28:97"},"variableNames":[{"name":"value0","nativeSrc":"8392:6:97","nodeType":"YulIdentifier","src":"8392:6:97"}]},{"nativeSrc":"8439:47:97","nodeType":"YulAssignment","src":"8439:47:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8471:9:97","nodeType":"YulIdentifier","src":"8471:9:97"},{"kind":"number","nativeSrc":"8482:2:97","nodeType":"YulLiteral","src":"8482:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8467:3:97","nodeType":"YulIdentifier","src":"8467:3:97"},"nativeSrc":"8467:18:97","nodeType":"YulFunctionCall","src":"8467:18:97"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"8449:17:97","nodeType":"YulIdentifier","src":"8449:17:97"},"nativeSrc":"8449:37:97","nodeType":"YulFunctionCall","src":"8449:37:97"},"variableNames":[{"name":"value1","nativeSrc":"8439:6:97","nodeType":"YulIdentifier","src":"8439:6:97"}]},{"nativeSrc":"8495:42:97","nodeType":"YulAssignment","src":"8495:42:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8522:9:97","nodeType":"YulIdentifier","src":"8522:9:97"},{"kind":"number","nativeSrc":"8533:2:97","nodeType":"YulLiteral","src":"8533:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8518:3:97","nodeType":"YulIdentifier","src":"8518:3:97"},"nativeSrc":"8518:18:97","nodeType":"YulFunctionCall","src":"8518:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"8505:12:97","nodeType":"YulIdentifier","src":"8505:12:97"},"nativeSrc":"8505:32:97","nodeType":"YulFunctionCall","src":"8505:32:97"},"variableNames":[{"name":"value2","nativeSrc":"8495:6:97","nodeType":"YulIdentifier","src":"8495:6:97"}]},{"nativeSrc":"8546:46:97","nodeType":"YulVariableDeclaration","src":"8546:46:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8577:9:97","nodeType":"YulIdentifier","src":"8577:9:97"},{"kind":"number","nativeSrc":"8588:2:97","nodeType":"YulLiteral","src":"8588:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"8573:3:97","nodeType":"YulIdentifier","src":"8573:3:97"},"nativeSrc":"8573:18:97","nodeType":"YulFunctionCall","src":"8573:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"8560:12:97","nodeType":"YulIdentifier","src":"8560:12:97"},"nativeSrc":"8560:32:97","nodeType":"YulFunctionCall","src":"8560:32:97"},"variables":[{"name":"offset","nativeSrc":"8550:6:97","nodeType":"YulTypedName","src":"8550:6:97","type":""}]},{"body":{"nativeSrc":"8635:16:97","nodeType":"YulBlock","src":"8635:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8644:1:97","nodeType":"YulLiteral","src":"8644:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"8647:1:97","nodeType":"YulLiteral","src":"8647:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8637:6:97","nodeType":"YulIdentifier","src":"8637:6:97"},"nativeSrc":"8637:12:97","nodeType":"YulFunctionCall","src":"8637:12:97"},"nativeSrc":"8637:12:97","nodeType":"YulExpressionStatement","src":"8637:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"8607:6:97","nodeType":"YulIdentifier","src":"8607:6:97"},{"kind":"number","nativeSrc":"8615:18:97","nodeType":"YulLiteral","src":"8615:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8604:2:97","nodeType":"YulIdentifier","src":"8604:2:97"},"nativeSrc":"8604:30:97","nodeType":"YulFunctionCall","src":"8604:30:97"},"nativeSrc":"8601:50:97","nodeType":"YulIf","src":"8601:50:97"},{"nativeSrc":"8660:84:97","nodeType":"YulVariableDeclaration","src":"8660:84:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8716:9:97","nodeType":"YulIdentifier","src":"8716:9:97"},{"name":"offset","nativeSrc":"8727:6:97","nodeType":"YulIdentifier","src":"8727:6:97"}],"functionName":{"name":"add","nativeSrc":"8712:3:97","nodeType":"YulIdentifier","src":"8712:3:97"},"nativeSrc":"8712:22:97","nodeType":"YulFunctionCall","src":"8712:22:97"},{"name":"dataEnd","nativeSrc":"8736:7:97","nodeType":"YulIdentifier","src":"8736:7:97"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"8686:25:97","nodeType":"YulIdentifier","src":"8686:25:97"},"nativeSrc":"8686:58:97","nodeType":"YulFunctionCall","src":"8686:58:97"},"variables":[{"name":"value3_1","nativeSrc":"8664:8:97","nodeType":"YulTypedName","src":"8664:8:97","type":""},{"name":"value4_1","nativeSrc":"8674:8:97","nodeType":"YulTypedName","src":"8674:8:97","type":""}]},{"nativeSrc":"8753:18:97","nodeType":"YulAssignment","src":"8753:18:97","value":{"name":"value3_1","nativeSrc":"8763:8:97","nodeType":"YulIdentifier","src":"8763:8:97"},"variableNames":[{"name":"value3","nativeSrc":"8753:6:97","nodeType":"YulIdentifier","src":"8753:6:97"}]},{"nativeSrc":"8780:18:97","nodeType":"YulAssignment","src":"8780:18:97","value":{"name":"value4_1","nativeSrc":"8790:8:97","nodeType":"YulIdentifier","src":"8790:8:97"},"variableNames":[{"name":"value4","nativeSrc":"8780:6:97","nodeType":"YulIdentifier","src":"8780:6:97"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_calldata_ptr","nativeSrc":"8182:622:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8254:9:97","nodeType":"YulTypedName","src":"8254:9:97","type":""},{"name":"dataEnd","nativeSrc":"8265:7:97","nodeType":"YulTypedName","src":"8265:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8277:6:97","nodeType":"YulTypedName","src":"8277:6:97","type":""},{"name":"value1","nativeSrc":"8285:6:97","nodeType":"YulTypedName","src":"8285:6:97","type":""},{"name":"value2","nativeSrc":"8293:6:97","nodeType":"YulTypedName","src":"8293:6:97","type":""},{"name":"value3","nativeSrc":"8301:6:97","nodeType":"YulTypedName","src":"8301:6:97","type":""},{"name":"value4","nativeSrc":"8309:6:97","nodeType":"YulTypedName","src":"8309:6:97","type":""}],"src":"8182:622:97"},{"body":{"nativeSrc":"8911:222:97","nodeType":"YulBlock","src":"8911:222:97","statements":[{"body":{"nativeSrc":"8957:16:97","nodeType":"YulBlock","src":"8957:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8966:1:97","nodeType":"YulLiteral","src":"8966:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"8969:1:97","nodeType":"YulLiteral","src":"8969:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8959:6:97","nodeType":"YulIdentifier","src":"8959:6:97"},"nativeSrc":"8959:12:97","nodeType":"YulFunctionCall","src":"8959:12:97"},"nativeSrc":"8959:12:97","nodeType":"YulExpressionStatement","src":"8959:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8932:7:97","nodeType":"YulIdentifier","src":"8932:7:97"},{"name":"headStart","nativeSrc":"8941:9:97","nodeType":"YulIdentifier","src":"8941:9:97"}],"functionName":{"name":"sub","nativeSrc":"8928:3:97","nodeType":"YulIdentifier","src":"8928:3:97"},"nativeSrc":"8928:23:97","nodeType":"YulFunctionCall","src":"8928:23:97"},{"kind":"number","nativeSrc":"8953:2:97","nodeType":"YulLiteral","src":"8953:2:97","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"8924:3:97","nodeType":"YulIdentifier","src":"8924:3:97"},"nativeSrc":"8924:32:97","nodeType":"YulFunctionCall","src":"8924:32:97"},"nativeSrc":"8921:52:97","nodeType":"YulIf","src":"8921:52:97"},{"nativeSrc":"8982:38:97","nodeType":"YulAssignment","src":"8982:38:97","value":{"arguments":[{"name":"headStart","nativeSrc":"9010:9:97","nodeType":"YulIdentifier","src":"9010:9:97"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"8992:17:97","nodeType":"YulIdentifier","src":"8992:17:97"},"nativeSrc":"8992:28:97","nodeType":"YulFunctionCall","src":"8992:28:97"},"variableNames":[{"name":"value0","nativeSrc":"8982:6:97","nodeType":"YulIdentifier","src":"8982:6:97"}]},{"nativeSrc":"9029:47:97","nodeType":"YulAssignment","src":"9029:47:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9061:9:97","nodeType":"YulIdentifier","src":"9061:9:97"},{"kind":"number","nativeSrc":"9072:2:97","nodeType":"YulLiteral","src":"9072:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9057:3:97","nodeType":"YulIdentifier","src":"9057:3:97"},"nativeSrc":"9057:18:97","nodeType":"YulFunctionCall","src":"9057:18:97"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"9039:17:97","nodeType":"YulIdentifier","src":"9039:17:97"},"nativeSrc":"9039:37:97","nodeType":"YulFunctionCall","src":"9039:37:97"},"variableNames":[{"name":"value1","nativeSrc":"9029:6:97","nodeType":"YulIdentifier","src":"9029:6:97"}]},{"nativeSrc":"9085:42:97","nodeType":"YulAssignment","src":"9085:42:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9112:9:97","nodeType":"YulIdentifier","src":"9112:9:97"},{"kind":"number","nativeSrc":"9123:2:97","nodeType":"YulLiteral","src":"9123:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9108:3:97","nodeType":"YulIdentifier","src":"9108:3:97"},"nativeSrc":"9108:18:97","nodeType":"YulFunctionCall","src":"9108:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"9095:12:97","nodeType":"YulIdentifier","src":"9095:12:97"},"nativeSrc":"9095:32:97","nodeType":"YulFunctionCall","src":"9095:32:97"},"variableNames":[{"name":"value2","nativeSrc":"9085:6:97","nodeType":"YulIdentifier","src":"9085:6:97"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_uint256","nativeSrc":"8809:324:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8861:9:97","nodeType":"YulTypedName","src":"8861:9:97","type":""},{"name":"dataEnd","nativeSrc":"8872:7:97","nodeType":"YulTypedName","src":"8872:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8884:6:97","nodeType":"YulTypedName","src":"8884:6:97","type":""},{"name":"value1","nativeSrc":"8892:6:97","nodeType":"YulTypedName","src":"8892:6:97","type":""},{"name":"value2","nativeSrc":"8900:6:97","nodeType":"YulTypedName","src":"8900:6:97","type":""}],"src":"8809:324:97"},{"body":{"nativeSrc":"9218:114:97","nodeType":"YulBlock","src":"9218:114:97","statements":[{"body":{"nativeSrc":"9262:22:97","nodeType":"YulBlock","src":"9262:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"9264:16:97","nodeType":"YulIdentifier","src":"9264:16:97"},"nativeSrc":"9264:18:97","nodeType":"YulFunctionCall","src":"9264:18:97"},"nativeSrc":"9264:18:97","nodeType":"YulExpressionStatement","src":"9264:18:97"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"9234:6:97","nodeType":"YulIdentifier","src":"9234:6:97"},{"kind":"number","nativeSrc":"9242:18:97","nodeType":"YulLiteral","src":"9242:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"9231:2:97","nodeType":"YulIdentifier","src":"9231:2:97"},"nativeSrc":"9231:30:97","nodeType":"YulFunctionCall","src":"9231:30:97"},"nativeSrc":"9228:56:97","nodeType":"YulIf","src":"9228:56:97"},{"nativeSrc":"9293:33:97","nodeType":"YulAssignment","src":"9293:33:97","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"9309:1:97","nodeType":"YulLiteral","src":"9309:1:97","type":"","value":"5"},{"name":"length","nativeSrc":"9312:6:97","nodeType":"YulIdentifier","src":"9312:6:97"}],"functionName":{"name":"shl","nativeSrc":"9305:3:97","nodeType":"YulIdentifier","src":"9305:3:97"},"nativeSrc":"9305:14:97","nodeType":"YulFunctionCall","src":"9305:14:97"},{"kind":"number","nativeSrc":"9321:4:97","nodeType":"YulLiteral","src":"9321:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9301:3:97","nodeType":"YulIdentifier","src":"9301:3:97"},"nativeSrc":"9301:25:97","nodeType":"YulFunctionCall","src":"9301:25:97"},"variableNames":[{"name":"size","nativeSrc":"9293:4:97","nodeType":"YulIdentifier","src":"9293:4:97"}]}]},"name":"array_allocation_size_array_contract_ITimelock_dyn","nativeSrc":"9138:194:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"9198:6:97","nodeType":"YulTypedName","src":"9198:6:97","type":""}],"returnVariables":[{"name":"size","nativeSrc":"9209:4:97","nodeType":"YulTypedName","src":"9209:4:97","type":""}],"src":"9138:194:97"},{"body":{"nativeSrc":"9451:882:97","nodeType":"YulBlock","src":"9451:882:97","statements":[{"nativeSrc":"9461:12:97","nodeType":"YulVariableDeclaration","src":"9461:12:97","value":{"kind":"number","nativeSrc":"9471:2:97","nodeType":"YulLiteral","src":"9471:2:97","type":"","value":"32"},"variables":[{"name":"_1","nativeSrc":"9465:2:97","nodeType":"YulTypedName","src":"9465:2:97","type":""}]},{"body":{"nativeSrc":"9518:16:97","nodeType":"YulBlock","src":"9518:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9527:1:97","nodeType":"YulLiteral","src":"9527:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"9530:1:97","nodeType":"YulLiteral","src":"9530:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9520:6:97","nodeType":"YulIdentifier","src":"9520:6:97"},"nativeSrc":"9520:12:97","nodeType":"YulFunctionCall","src":"9520:12:97"},"nativeSrc":"9520:12:97","nodeType":"YulExpressionStatement","src":"9520:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9493:7:97","nodeType":"YulIdentifier","src":"9493:7:97"},{"name":"headStart","nativeSrc":"9502:9:97","nodeType":"YulIdentifier","src":"9502:9:97"}],"functionName":{"name":"sub","nativeSrc":"9489:3:97","nodeType":"YulIdentifier","src":"9489:3:97"},"nativeSrc":"9489:23:97","nodeType":"YulFunctionCall","src":"9489:23:97"},{"name":"_1","nativeSrc":"9514:2:97","nodeType":"YulIdentifier","src":"9514:2:97"}],"functionName":{"name":"slt","nativeSrc":"9485:3:97","nodeType":"YulIdentifier","src":"9485:3:97"},"nativeSrc":"9485:32:97","nodeType":"YulFunctionCall","src":"9485:32:97"},"nativeSrc":"9482:52:97","nodeType":"YulIf","src":"9482:52:97"},{"nativeSrc":"9543:37:97","nodeType":"YulVariableDeclaration","src":"9543:37:97","value":{"arguments":[{"name":"headStart","nativeSrc":"9570:9:97","nodeType":"YulIdentifier","src":"9570:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"9557:12:97","nodeType":"YulIdentifier","src":"9557:12:97"},"nativeSrc":"9557:23:97","nodeType":"YulFunctionCall","src":"9557:23:97"},"variables":[{"name":"offset","nativeSrc":"9547:6:97","nodeType":"YulTypedName","src":"9547:6:97","type":""}]},{"body":{"nativeSrc":"9623:16:97","nodeType":"YulBlock","src":"9623:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9632:1:97","nodeType":"YulLiteral","src":"9632:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"9635:1:97","nodeType":"YulLiteral","src":"9635:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9625:6:97","nodeType":"YulIdentifier","src":"9625:6:97"},"nativeSrc":"9625:12:97","nodeType":"YulFunctionCall","src":"9625:12:97"},"nativeSrc":"9625:12:97","nodeType":"YulExpressionStatement","src":"9625:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"9595:6:97","nodeType":"YulIdentifier","src":"9595:6:97"},{"kind":"number","nativeSrc":"9603:18:97","nodeType":"YulLiteral","src":"9603:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"9592:2:97","nodeType":"YulIdentifier","src":"9592:2:97"},"nativeSrc":"9592:30:97","nodeType":"YulFunctionCall","src":"9592:30:97"},"nativeSrc":"9589:50:97","nodeType":"YulIf","src":"9589:50:97"},{"nativeSrc":"9648:32:97","nodeType":"YulVariableDeclaration","src":"9648:32:97","value":{"arguments":[{"name":"headStart","nativeSrc":"9662:9:97","nodeType":"YulIdentifier","src":"9662:9:97"},{"name":"offset","nativeSrc":"9673:6:97","nodeType":"YulIdentifier","src":"9673:6:97"}],"functionName":{"name":"add","nativeSrc":"9658:3:97","nodeType":"YulIdentifier","src":"9658:3:97"},"nativeSrc":"9658:22:97","nodeType":"YulFunctionCall","src":"9658:22:97"},"variables":[{"name":"_2","nativeSrc":"9652:2:97","nodeType":"YulTypedName","src":"9652:2:97","type":""}]},{"body":{"nativeSrc":"9728:16:97","nodeType":"YulBlock","src":"9728:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9737:1:97","nodeType":"YulLiteral","src":"9737:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"9740:1:97","nodeType":"YulLiteral","src":"9740:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9730:6:97","nodeType":"YulIdentifier","src":"9730:6:97"},"nativeSrc":"9730:12:97","nodeType":"YulFunctionCall","src":"9730:12:97"},"nativeSrc":"9730:12:97","nodeType":"YulExpressionStatement","src":"9730:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"9707:2:97","nodeType":"YulIdentifier","src":"9707:2:97"},{"kind":"number","nativeSrc":"9711:4:97","nodeType":"YulLiteral","src":"9711:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"9703:3:97","nodeType":"YulIdentifier","src":"9703:3:97"},"nativeSrc":"9703:13:97","nodeType":"YulFunctionCall","src":"9703:13:97"},{"name":"dataEnd","nativeSrc":"9718:7:97","nodeType":"YulIdentifier","src":"9718:7:97"}],"functionName":{"name":"slt","nativeSrc":"9699:3:97","nodeType":"YulIdentifier","src":"9699:3:97"},"nativeSrc":"9699:27:97","nodeType":"YulFunctionCall","src":"9699:27:97"}],"functionName":{"name":"iszero","nativeSrc":"9692:6:97","nodeType":"YulIdentifier","src":"9692:6:97"},"nativeSrc":"9692:35:97","nodeType":"YulFunctionCall","src":"9692:35:97"},"nativeSrc":"9689:55:97","nodeType":"YulIf","src":"9689:55:97"},{"nativeSrc":"9753:26:97","nodeType":"YulVariableDeclaration","src":"9753:26:97","value":{"arguments":[{"name":"_2","nativeSrc":"9776:2:97","nodeType":"YulIdentifier","src":"9776:2:97"}],"functionName":{"name":"calldataload","nativeSrc":"9763:12:97","nodeType":"YulIdentifier","src":"9763:12:97"},"nativeSrc":"9763:16:97","nodeType":"YulFunctionCall","src":"9763:16:97"},"variables":[{"name":"_3","nativeSrc":"9757:2:97","nodeType":"YulTypedName","src":"9757:2:97","type":""}]},{"nativeSrc":"9788:82:97","nodeType":"YulVariableDeclaration","src":"9788:82:97","value":{"arguments":[{"arguments":[{"name":"_3","nativeSrc":"9866:2:97","nodeType":"YulIdentifier","src":"9866:2:97"}],"functionName":{"name":"array_allocation_size_array_contract_ITimelock_dyn","nativeSrc":"9815:50:97","nodeType":"YulIdentifier","src":"9815:50:97"},"nativeSrc":"9815:54:97","nodeType":"YulFunctionCall","src":"9815:54:97"}],"functionName":{"name":"allocate_memory","nativeSrc":"9799:15:97","nodeType":"YulIdentifier","src":"9799:15:97"},"nativeSrc":"9799:71:97","nodeType":"YulFunctionCall","src":"9799:71:97"},"variables":[{"name":"dst","nativeSrc":"9792:3:97","nodeType":"YulTypedName","src":"9792:3:97","type":""}]},{"nativeSrc":"9879:16:97","nodeType":"YulVariableDeclaration","src":"9879:16:97","value":{"name":"dst","nativeSrc":"9892:3:97","nodeType":"YulIdentifier","src":"9892:3:97"},"variables":[{"name":"dst_1","nativeSrc":"9883:5:97","nodeType":"YulTypedName","src":"9883:5:97","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"9911:3:97","nodeType":"YulIdentifier","src":"9911:3:97"},{"name":"_3","nativeSrc":"9916:2:97","nodeType":"YulIdentifier","src":"9916:2:97"}],"functionName":{"name":"mstore","nativeSrc":"9904:6:97","nodeType":"YulIdentifier","src":"9904:6:97"},"nativeSrc":"9904:15:97","nodeType":"YulFunctionCall","src":"9904:15:97"},"nativeSrc":"9904:15:97","nodeType":"YulExpressionStatement","src":"9904:15:97"},{"nativeSrc":"9928:19:97","nodeType":"YulAssignment","src":"9928:19:97","value":{"arguments":[{"name":"dst","nativeSrc":"9939:3:97","nodeType":"YulIdentifier","src":"9939:3:97"},{"name":"_1","nativeSrc":"9944:2:97","nodeType":"YulIdentifier","src":"9944:2:97"}],"functionName":{"name":"add","nativeSrc":"9935:3:97","nodeType":"YulIdentifier","src":"9935:3:97"},"nativeSrc":"9935:12:97","nodeType":"YulFunctionCall","src":"9935:12:97"},"variableNames":[{"name":"dst","nativeSrc":"9928:3:97","nodeType":"YulIdentifier","src":"9928:3:97"}]},{"nativeSrc":"9956:42:97","nodeType":"YulVariableDeclaration","src":"9956:42:97","value":{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"9978:2:97","nodeType":"YulIdentifier","src":"9978:2:97"},{"arguments":[{"kind":"number","nativeSrc":"9986:1:97","nodeType":"YulLiteral","src":"9986:1:97","type":"","value":"5"},{"name":"_3","nativeSrc":"9989:2:97","nodeType":"YulIdentifier","src":"9989:2:97"}],"functionName":{"name":"shl","nativeSrc":"9982:3:97","nodeType":"YulIdentifier","src":"9982:3:97"},"nativeSrc":"9982:10:97","nodeType":"YulFunctionCall","src":"9982:10:97"}],"functionName":{"name":"add","nativeSrc":"9974:3:97","nodeType":"YulIdentifier","src":"9974:3:97"},"nativeSrc":"9974:19:97","nodeType":"YulFunctionCall","src":"9974:19:97"},{"name":"_1","nativeSrc":"9995:2:97","nodeType":"YulIdentifier","src":"9995:2:97"}],"functionName":{"name":"add","nativeSrc":"9970:3:97","nodeType":"YulIdentifier","src":"9970:3:97"},"nativeSrc":"9970:28:97","nodeType":"YulFunctionCall","src":"9970:28:97"},"variables":[{"name":"srcEnd","nativeSrc":"9960:6:97","nodeType":"YulTypedName","src":"9960:6:97","type":""}]},{"body":{"nativeSrc":"10030:16:97","nodeType":"YulBlock","src":"10030:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10039:1:97","nodeType":"YulLiteral","src":"10039:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"10042:1:97","nodeType":"YulLiteral","src":"10042:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10032:6:97","nodeType":"YulIdentifier","src":"10032:6:97"},"nativeSrc":"10032:12:97","nodeType":"YulFunctionCall","src":"10032:12:97"},"nativeSrc":"10032:12:97","nodeType":"YulExpressionStatement","src":"10032:12:97"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"10013:6:97","nodeType":"YulIdentifier","src":"10013:6:97"},{"name":"dataEnd","nativeSrc":"10021:7:97","nodeType":"YulIdentifier","src":"10021:7:97"}],"functionName":{"name":"gt","nativeSrc":"10010:2:97","nodeType":"YulIdentifier","src":"10010:2:97"},"nativeSrc":"10010:19:97","nodeType":"YulFunctionCall","src":"10010:19:97"},"nativeSrc":"10007:39:97","nodeType":"YulIf","src":"10007:39:97"},{"nativeSrc":"10055:22:97","nodeType":"YulVariableDeclaration","src":"10055:22:97","value":{"arguments":[{"name":"_2","nativeSrc":"10070:2:97","nodeType":"YulIdentifier","src":"10070:2:97"},{"name":"_1","nativeSrc":"10074:2:97","nodeType":"YulIdentifier","src":"10074:2:97"}],"functionName":{"name":"add","nativeSrc":"10066:3:97","nodeType":"YulIdentifier","src":"10066:3:97"},"nativeSrc":"10066:11:97","nodeType":"YulFunctionCall","src":"10066:11:97"},"variables":[{"name":"src","nativeSrc":"10059:3:97","nodeType":"YulTypedName","src":"10059:3:97","type":""}]},{"body":{"nativeSrc":"10142:161:97","nodeType":"YulBlock","src":"10142:161:97","statements":[{"nativeSrc":"10156:30:97","nodeType":"YulVariableDeclaration","src":"10156:30:97","value":{"arguments":[{"name":"src","nativeSrc":"10182:3:97","nodeType":"YulIdentifier","src":"10182:3:97"}],"functionName":{"name":"calldataload","nativeSrc":"10169:12:97","nodeType":"YulIdentifier","src":"10169:12:97"},"nativeSrc":"10169:17:97","nodeType":"YulFunctionCall","src":"10169:17:97"},"variables":[{"name":"value","nativeSrc":"10160:5:97","nodeType":"YulTypedName","src":"10160:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"10224:5:97","nodeType":"YulIdentifier","src":"10224:5:97"}],"functionName":{"name":"validator_revert_address","nativeSrc":"10199:24:97","nodeType":"YulIdentifier","src":"10199:24:97"},"nativeSrc":"10199:31:97","nodeType":"YulFunctionCall","src":"10199:31:97"},"nativeSrc":"10199:31:97","nodeType":"YulExpressionStatement","src":"10199:31:97"},{"expression":{"arguments":[{"name":"dst","nativeSrc":"10250:3:97","nodeType":"YulIdentifier","src":"10250:3:97"},{"name":"value","nativeSrc":"10255:5:97","nodeType":"YulIdentifier","src":"10255:5:97"}],"functionName":{"name":"mstore","nativeSrc":"10243:6:97","nodeType":"YulIdentifier","src":"10243:6:97"},"nativeSrc":"10243:18:97","nodeType":"YulFunctionCall","src":"10243:18:97"},"nativeSrc":"10243:18:97","nodeType":"YulExpressionStatement","src":"10243:18:97"},{"nativeSrc":"10274:19:97","nodeType":"YulAssignment","src":"10274:19:97","value":{"arguments":[{"name":"dst","nativeSrc":"10285:3:97","nodeType":"YulIdentifier","src":"10285:3:97"},{"name":"_1","nativeSrc":"10290:2:97","nodeType":"YulIdentifier","src":"10290:2:97"}],"functionName":{"name":"add","nativeSrc":"10281:3:97","nodeType":"YulIdentifier","src":"10281:3:97"},"nativeSrc":"10281:12:97","nodeType":"YulFunctionCall","src":"10281:12:97"},"variableNames":[{"name":"dst","nativeSrc":"10274:3:97","nodeType":"YulIdentifier","src":"10274:3:97"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"10097:3:97","nodeType":"YulIdentifier","src":"10097:3:97"},{"name":"srcEnd","nativeSrc":"10102:6:97","nodeType":"YulIdentifier","src":"10102:6:97"}],"functionName":{"name":"lt","nativeSrc":"10094:2:97","nodeType":"YulIdentifier","src":"10094:2:97"},"nativeSrc":"10094:15:97","nodeType":"YulFunctionCall","src":"10094:15:97"},"nativeSrc":"10086:217:97","nodeType":"YulForLoop","post":{"nativeSrc":"10110:23:97","nodeType":"YulBlock","src":"10110:23:97","statements":[{"nativeSrc":"10112:19:97","nodeType":"YulAssignment","src":"10112:19:97","value":{"arguments":[{"name":"src","nativeSrc":"10123:3:97","nodeType":"YulIdentifier","src":"10123:3:97"},{"name":"_1","nativeSrc":"10128:2:97","nodeType":"YulIdentifier","src":"10128:2:97"}],"functionName":{"name":"add","nativeSrc":"10119:3:97","nodeType":"YulIdentifier","src":"10119:3:97"},"nativeSrc":"10119:12:97","nodeType":"YulFunctionCall","src":"10119:12:97"},"variableNames":[{"name":"src","nativeSrc":"10112:3:97","nodeType":"YulIdentifier","src":"10112:3:97"}]}]},"pre":{"nativeSrc":"10090:3:97","nodeType":"YulBlock","src":"10090:3:97","statements":[]},"src":"10086:217:97"},{"nativeSrc":"10312:15:97","nodeType":"YulAssignment","src":"10312:15:97","value":{"name":"dst_1","nativeSrc":"10322:5:97","nodeType":"YulIdentifier","src":"10322:5:97"},"variableNames":[{"name":"value0","nativeSrc":"10312:6:97","nodeType":"YulIdentifier","src":"10312:6:97"}]}]},"name":"abi_decode_tuple_t_array$_t_contract$_ITimelock_$13525_$dyn_memory_ptr","nativeSrc":"9337:996:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9417:9:97","nodeType":"YulTypedName","src":"9417:9:97","type":""},{"name":"dataEnd","nativeSrc":"9428:7:97","nodeType":"YulTypedName","src":"9428:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9440:6:97","nodeType":"YulTypedName","src":"9440:6:97","type":""}],"src":"9337:996:97"},{"body":{"nativeSrc":"10458:125:97","nodeType":"YulBlock","src":"10458:125:97","statements":[{"nativeSrc":"10468:26:97","nodeType":"YulAssignment","src":"10468:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"10480:9:97","nodeType":"YulIdentifier","src":"10480:9:97"},{"kind":"number","nativeSrc":"10491:2:97","nodeType":"YulLiteral","src":"10491:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10476:3:97","nodeType":"YulIdentifier","src":"10476:3:97"},"nativeSrc":"10476:18:97","nodeType":"YulFunctionCall","src":"10476:18:97"},"variableNames":[{"name":"tail","nativeSrc":"10468:4:97","nodeType":"YulIdentifier","src":"10468:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"10510:9:97","nodeType":"YulIdentifier","src":"10510:9:97"},{"arguments":[{"name":"value0","nativeSrc":"10525:6:97","nodeType":"YulIdentifier","src":"10525:6:97"},{"kind":"number","nativeSrc":"10533:42:97","nodeType":"YulLiteral","src":"10533:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"10521:3:97","nodeType":"YulIdentifier","src":"10521:3:97"},"nativeSrc":"10521:55:97","nodeType":"YulFunctionCall","src":"10521:55:97"}],"functionName":{"name":"mstore","nativeSrc":"10503:6:97","nodeType":"YulIdentifier","src":"10503:6:97"},"nativeSrc":"10503:74:97","nodeType":"YulFunctionCall","src":"10503:74:97"},"nativeSrc":"10503:74:97","nodeType":"YulExpressionStatement","src":"10503:74:97"}]},"name":"abi_encode_tuple_t_contract$_ITimelock_$13525__to_t_address__fromStack_reversed","nativeSrc":"10338:245:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10427:9:97","nodeType":"YulTypedName","src":"10427:9:97","type":""},{"name":"value0","nativeSrc":"10438:6:97","nodeType":"YulTypedName","src":"10438:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10449:4:97","nodeType":"YulTypedName","src":"10449:4:97","type":""}],"src":"10338:245:97"},{"body":{"nativeSrc":"10631:71:97","nodeType":"YulBlock","src":"10631:71:97","statements":[{"body":{"nativeSrc":"10680:16:97","nodeType":"YulBlock","src":"10680:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10689:1:97","nodeType":"YulLiteral","src":"10689:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"10692:1:97","nodeType":"YulLiteral","src":"10692:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10682:6:97","nodeType":"YulIdentifier","src":"10682:6:97"},"nativeSrc":"10682:12:97","nodeType":"YulFunctionCall","src":"10682:12:97"},"nativeSrc":"10682:12:97","nodeType":"YulExpressionStatement","src":"10682:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10654:5:97","nodeType":"YulIdentifier","src":"10654:5:97"},{"arguments":[{"name":"value","nativeSrc":"10665:5:97","nodeType":"YulIdentifier","src":"10665:5:97"},{"kind":"number","nativeSrc":"10672:4:97","nodeType":"YulLiteral","src":"10672:4:97","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"10661:3:97","nodeType":"YulIdentifier","src":"10661:3:97"},"nativeSrc":"10661:16:97","nodeType":"YulFunctionCall","src":"10661:16:97"}],"functionName":{"name":"eq","nativeSrc":"10651:2:97","nodeType":"YulIdentifier","src":"10651:2:97"},"nativeSrc":"10651:27:97","nodeType":"YulFunctionCall","src":"10651:27:97"}],"functionName":{"name":"iszero","nativeSrc":"10644:6:97","nodeType":"YulIdentifier","src":"10644:6:97"},"nativeSrc":"10644:35:97","nodeType":"YulFunctionCall","src":"10644:35:97"},"nativeSrc":"10641:55:97","nodeType":"YulIf","src":"10641:55:97"}]},"name":"validator_revert_uint8","nativeSrc":"10588:114:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10620:5:97","nodeType":"YulTypedName","src":"10620:5:97","type":""}],"src":"10588:114:97"},{"body":{"nativeSrc":"10792:299:97","nodeType":"YulBlock","src":"10792:299:97","statements":[{"body":{"nativeSrc":"10838:16:97","nodeType":"YulBlock","src":"10838:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10847:1:97","nodeType":"YulLiteral","src":"10847:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"10850:1:97","nodeType":"YulLiteral","src":"10850:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10840:6:97","nodeType":"YulIdentifier","src":"10840:6:97"},"nativeSrc":"10840:12:97","nodeType":"YulFunctionCall","src":"10840:12:97"},"nativeSrc":"10840:12:97","nodeType":"YulExpressionStatement","src":"10840:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10813:7:97","nodeType":"YulIdentifier","src":"10813:7:97"},{"name":"headStart","nativeSrc":"10822:9:97","nodeType":"YulIdentifier","src":"10822:9:97"}],"functionName":{"name":"sub","nativeSrc":"10809:3:97","nodeType":"YulIdentifier","src":"10809:3:97"},"nativeSrc":"10809:23:97","nodeType":"YulFunctionCall","src":"10809:23:97"},{"kind":"number","nativeSrc":"10834:2:97","nodeType":"YulLiteral","src":"10834:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"10805:3:97","nodeType":"YulIdentifier","src":"10805:3:97"},"nativeSrc":"10805:32:97","nodeType":"YulFunctionCall","src":"10805:32:97"},"nativeSrc":"10802:52:97","nodeType":"YulIf","src":"10802:52:97"},{"nativeSrc":"10863:36:97","nodeType":"YulVariableDeclaration","src":"10863:36:97","value":{"arguments":[{"name":"headStart","nativeSrc":"10889:9:97","nodeType":"YulIdentifier","src":"10889:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"10876:12:97","nodeType":"YulIdentifier","src":"10876:12:97"},"nativeSrc":"10876:23:97","nodeType":"YulFunctionCall","src":"10876:23:97"},"variables":[{"name":"value","nativeSrc":"10867:5:97","nodeType":"YulTypedName","src":"10867:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"10933:5:97","nodeType":"YulIdentifier","src":"10933:5:97"}],"functionName":{"name":"validator_revert_address","nativeSrc":"10908:24:97","nodeType":"YulIdentifier","src":"10908:24:97"},"nativeSrc":"10908:31:97","nodeType":"YulFunctionCall","src":"10908:31:97"},"nativeSrc":"10908:31:97","nodeType":"YulExpressionStatement","src":"10908:31:97"},{"nativeSrc":"10948:15:97","nodeType":"YulAssignment","src":"10948:15:97","value":{"name":"value","nativeSrc":"10958:5:97","nodeType":"YulIdentifier","src":"10958:5:97"},"variableNames":[{"name":"value0","nativeSrc":"10948:6:97","nodeType":"YulIdentifier","src":"10948:6:97"}]},{"nativeSrc":"10972:47:97","nodeType":"YulVariableDeclaration","src":"10972:47:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11004:9:97","nodeType":"YulIdentifier","src":"11004:9:97"},{"kind":"number","nativeSrc":"11015:2:97","nodeType":"YulLiteral","src":"11015:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11000:3:97","nodeType":"YulIdentifier","src":"11000:3:97"},"nativeSrc":"11000:18:97","nodeType":"YulFunctionCall","src":"11000:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"10987:12:97","nodeType":"YulIdentifier","src":"10987:12:97"},"nativeSrc":"10987:32:97","nodeType":"YulFunctionCall","src":"10987:32:97"},"variables":[{"name":"value_1","nativeSrc":"10976:7:97","nodeType":"YulTypedName","src":"10976:7:97","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"11051:7:97","nodeType":"YulIdentifier","src":"11051:7:97"}],"functionName":{"name":"validator_revert_uint8","nativeSrc":"11028:22:97","nodeType":"YulIdentifier","src":"11028:22:97"},"nativeSrc":"11028:31:97","nodeType":"YulFunctionCall","src":"11028:31:97"},"nativeSrc":"11028:31:97","nodeType":"YulExpressionStatement","src":"11028:31:97"},{"nativeSrc":"11068:17:97","nodeType":"YulAssignment","src":"11068:17:97","value":{"name":"value_1","nativeSrc":"11078:7:97","nodeType":"YulIdentifier","src":"11078:7:97"},"variableNames":[{"name":"value1","nativeSrc":"11068:6:97","nodeType":"YulIdentifier","src":"11068:6:97"}]}]},"name":"abi_decode_tuple_t_addresst_uint8","nativeSrc":"10707:384:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10750:9:97","nodeType":"YulTypedName","src":"10750:9:97","type":""},{"name":"dataEnd","nativeSrc":"10761:7:97","nodeType":"YulTypedName","src":"10761:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10773:6:97","nodeType":"YulTypedName","src":"10773:6:97","type":""},{"name":"value1","nativeSrc":"10781:6:97","nodeType":"YulTypedName","src":"10781:6:97","type":""}],"src":"10707:384:97"},{"body":{"nativeSrc":"11215:341:97","nodeType":"YulBlock","src":"11215:341:97","statements":[{"body":{"nativeSrc":"11262:16:97","nodeType":"YulBlock","src":"11262:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11271:1:97","nodeType":"YulLiteral","src":"11271:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"11274:1:97","nodeType":"YulLiteral","src":"11274:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11264:6:97","nodeType":"YulIdentifier","src":"11264:6:97"},"nativeSrc":"11264:12:97","nodeType":"YulFunctionCall","src":"11264:12:97"},"nativeSrc":"11264:12:97","nodeType":"YulExpressionStatement","src":"11264:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11236:7:97","nodeType":"YulIdentifier","src":"11236:7:97"},{"name":"headStart","nativeSrc":"11245:9:97","nodeType":"YulIdentifier","src":"11245:9:97"}],"functionName":{"name":"sub","nativeSrc":"11232:3:97","nodeType":"YulIdentifier","src":"11232:3:97"},"nativeSrc":"11232:23:97","nodeType":"YulFunctionCall","src":"11232:23:97"},{"kind":"number","nativeSrc":"11257:3:97","nodeType":"YulLiteral","src":"11257:3:97","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"11228:3:97","nodeType":"YulIdentifier","src":"11228:3:97"},"nativeSrc":"11228:33:97","nodeType":"YulFunctionCall","src":"11228:33:97"},"nativeSrc":"11225:53:97","nodeType":"YulIf","src":"11225:53:97"},{"nativeSrc":"11287:38:97","nodeType":"YulAssignment","src":"11287:38:97","value":{"arguments":[{"name":"headStart","nativeSrc":"11315:9:97","nodeType":"YulIdentifier","src":"11315:9:97"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"11297:17:97","nodeType":"YulIdentifier","src":"11297:17:97"},"nativeSrc":"11297:28:97","nodeType":"YulFunctionCall","src":"11297:28:97"},"variableNames":[{"name":"value0","nativeSrc":"11287:6:97","nodeType":"YulIdentifier","src":"11287:6:97"}]},{"nativeSrc":"11334:47:97","nodeType":"YulAssignment","src":"11334:47:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11366:9:97","nodeType":"YulIdentifier","src":"11366:9:97"},{"kind":"number","nativeSrc":"11377:2:97","nodeType":"YulLiteral","src":"11377:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11362:3:97","nodeType":"YulIdentifier","src":"11362:3:97"},"nativeSrc":"11362:18:97","nodeType":"YulFunctionCall","src":"11362:18:97"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"11344:17:97","nodeType":"YulIdentifier","src":"11344:17:97"},"nativeSrc":"11344:37:97","nodeType":"YulFunctionCall","src":"11344:37:97"},"variableNames":[{"name":"value1","nativeSrc":"11334:6:97","nodeType":"YulIdentifier","src":"11334:6:97"}]},{"nativeSrc":"11390:45:97","nodeType":"YulVariableDeclaration","src":"11390:45:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11420:9:97","nodeType":"YulIdentifier","src":"11420:9:97"},{"kind":"number","nativeSrc":"11431:2:97","nodeType":"YulLiteral","src":"11431:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11416:3:97","nodeType":"YulIdentifier","src":"11416:3:97"},"nativeSrc":"11416:18:97","nodeType":"YulFunctionCall","src":"11416:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"11403:12:97","nodeType":"YulIdentifier","src":"11403:12:97"},"nativeSrc":"11403:32:97","nodeType":"YulFunctionCall","src":"11403:32:97"},"variables":[{"name":"value","nativeSrc":"11394:5:97","nodeType":"YulTypedName","src":"11394:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"11469:5:97","nodeType":"YulIdentifier","src":"11469:5:97"}],"functionName":{"name":"validator_revert_address","nativeSrc":"11444:24:97","nodeType":"YulIdentifier","src":"11444:24:97"},"nativeSrc":"11444:31:97","nodeType":"YulFunctionCall","src":"11444:31:97"},"nativeSrc":"11444:31:97","nodeType":"YulExpressionStatement","src":"11444:31:97"},{"nativeSrc":"11484:15:97","nodeType":"YulAssignment","src":"11484:15:97","value":{"name":"value","nativeSrc":"11494:5:97","nodeType":"YulIdentifier","src":"11494:5:97"},"variableNames":[{"name":"value2","nativeSrc":"11484:6:97","nodeType":"YulIdentifier","src":"11484:6:97"}]},{"nativeSrc":"11508:42:97","nodeType":"YulAssignment","src":"11508:42:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11535:9:97","nodeType":"YulIdentifier","src":"11535:9:97"},{"kind":"number","nativeSrc":"11546:2:97","nodeType":"YulLiteral","src":"11546:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11531:3:97","nodeType":"YulIdentifier","src":"11531:3:97"},"nativeSrc":"11531:18:97","nodeType":"YulFunctionCall","src":"11531:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"11518:12:97","nodeType":"YulIdentifier","src":"11518:12:97"},"nativeSrc":"11518:32:97","nodeType":"YulFunctionCall","src":"11518:32:97"},"variableNames":[{"name":"value3","nativeSrc":"11508:6:97","nodeType":"YulIdentifier","src":"11508:6:97"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_addresst_uint256","nativeSrc":"11096:460:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11157:9:97","nodeType":"YulTypedName","src":"11157:9:97","type":""},{"name":"dataEnd","nativeSrc":"11168:7:97","nodeType":"YulTypedName","src":"11168:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11180:6:97","nodeType":"YulTypedName","src":"11180:6:97","type":""},{"name":"value1","nativeSrc":"11188:6:97","nodeType":"YulTypedName","src":"11188:6:97","type":""},{"name":"value2","nativeSrc":"11196:6:97","nodeType":"YulTypedName","src":"11196:6:97","type":""},{"name":"value3","nativeSrc":"11204:6:97","nodeType":"YulTypedName","src":"11204:6:97","type":""}],"src":"11096:460:97"},{"body":{"nativeSrc":"11735:180:97","nodeType":"YulBlock","src":"11735:180:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"11752:9:97","nodeType":"YulIdentifier","src":"11752:9:97"},{"kind":"number","nativeSrc":"11763:2:97","nodeType":"YulLiteral","src":"11763:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"11745:6:97","nodeType":"YulIdentifier","src":"11745:6:97"},"nativeSrc":"11745:21:97","nodeType":"YulFunctionCall","src":"11745:21:97"},"nativeSrc":"11745:21:97","nodeType":"YulExpressionStatement","src":"11745:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11786:9:97","nodeType":"YulIdentifier","src":"11786:9:97"},{"kind":"number","nativeSrc":"11797:2:97","nodeType":"YulLiteral","src":"11797:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11782:3:97","nodeType":"YulIdentifier","src":"11782:3:97"},"nativeSrc":"11782:18:97","nodeType":"YulFunctionCall","src":"11782:18:97"},{"kind":"number","nativeSrc":"11802:2:97","nodeType":"YulLiteral","src":"11802:2:97","type":"","value":"30"}],"functionName":{"name":"mstore","nativeSrc":"11775:6:97","nodeType":"YulIdentifier","src":"11775:6:97"},"nativeSrc":"11775:30:97","nodeType":"YulFunctionCall","src":"11775:30:97"},"nativeSrc":"11775:30:97","nodeType":"YulExpressionStatement","src":"11775:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11825:9:97","nodeType":"YulIdentifier","src":"11825:9:97"},{"kind":"number","nativeSrc":"11836:2:97","nodeType":"YulLiteral","src":"11836:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11821:3:97","nodeType":"YulIdentifier","src":"11821:3:97"},"nativeSrc":"11821:18:97","nodeType":"YulFunctionCall","src":"11821:18:97"},{"hexValue":"4c7a4170703a20696e76616c696420656e64706f696e742063616c6c6572","kind":"string","nativeSrc":"11841:32:97","nodeType":"YulLiteral","src":"11841:32:97","type":"","value":"LzApp: invalid endpoint caller"}],"functionName":{"name":"mstore","nativeSrc":"11814:6:97","nodeType":"YulIdentifier","src":"11814:6:97"},"nativeSrc":"11814:60:97","nodeType":"YulFunctionCall","src":"11814:60:97"},"nativeSrc":"11814:60:97","nodeType":"YulExpressionStatement","src":"11814:60:97"},{"nativeSrc":"11883:26:97","nodeType":"YulAssignment","src":"11883:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"11895:9:97","nodeType":"YulIdentifier","src":"11895:9:97"},{"kind":"number","nativeSrc":"11906:2:97","nodeType":"YulLiteral","src":"11906:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11891:3:97","nodeType":"YulIdentifier","src":"11891:3:97"},"nativeSrc":"11891:18:97","nodeType":"YulFunctionCall","src":"11891:18:97"},"variableNames":[{"name":"tail","nativeSrc":"11883:4:97","nodeType":"YulIdentifier","src":"11883:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11561:354:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11712:9:97","nodeType":"YulTypedName","src":"11712:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11726:4:97","nodeType":"YulTypedName","src":"11726:4:97","type":""}],"src":"11561:354:97"},{"body":{"nativeSrc":"11975:382:97","nodeType":"YulBlock","src":"11975:382:97","statements":[{"nativeSrc":"11985:22:97","nodeType":"YulAssignment","src":"11985:22:97","value":{"arguments":[{"kind":"number","nativeSrc":"11999:1:97","nodeType":"YulLiteral","src":"11999:1:97","type":"","value":"1"},{"name":"data","nativeSrc":"12002:4:97","nodeType":"YulIdentifier","src":"12002:4:97"}],"functionName":{"name":"shr","nativeSrc":"11995:3:97","nodeType":"YulIdentifier","src":"11995:3:97"},"nativeSrc":"11995:12:97","nodeType":"YulFunctionCall","src":"11995:12:97"},"variableNames":[{"name":"length","nativeSrc":"11985:6:97","nodeType":"YulIdentifier","src":"11985:6:97"}]},{"nativeSrc":"12016:38:97","nodeType":"YulVariableDeclaration","src":"12016:38:97","value":{"arguments":[{"name":"data","nativeSrc":"12046:4:97","nodeType":"YulIdentifier","src":"12046:4:97"},{"kind":"number","nativeSrc":"12052:1:97","nodeType":"YulLiteral","src":"12052:1:97","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"12042:3:97","nodeType":"YulIdentifier","src":"12042:3:97"},"nativeSrc":"12042:12:97","nodeType":"YulFunctionCall","src":"12042:12:97"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"12020:18:97","nodeType":"YulTypedName","src":"12020:18:97","type":""}]},{"body":{"nativeSrc":"12093:31:97","nodeType":"YulBlock","src":"12093:31:97","statements":[{"nativeSrc":"12095:27:97","nodeType":"YulAssignment","src":"12095:27:97","value":{"arguments":[{"name":"length","nativeSrc":"12109:6:97","nodeType":"YulIdentifier","src":"12109:6:97"},{"kind":"number","nativeSrc":"12117:4:97","nodeType":"YulLiteral","src":"12117:4:97","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"12105:3:97","nodeType":"YulIdentifier","src":"12105:3:97"},"nativeSrc":"12105:17:97","nodeType":"YulFunctionCall","src":"12105:17:97"},"variableNames":[{"name":"length","nativeSrc":"12095:6:97","nodeType":"YulIdentifier","src":"12095:6:97"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"12073:18:97","nodeType":"YulIdentifier","src":"12073:18:97"}],"functionName":{"name":"iszero","nativeSrc":"12066:6:97","nodeType":"YulIdentifier","src":"12066:6:97"},"nativeSrc":"12066:26:97","nodeType":"YulFunctionCall","src":"12066:26:97"},"nativeSrc":"12063:61:97","nodeType":"YulIf","src":"12063:61:97"},{"body":{"nativeSrc":"12183:168:97","nodeType":"YulBlock","src":"12183:168:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12204:1:97","nodeType":"YulLiteral","src":"12204:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"12207:77:97","nodeType":"YulLiteral","src":"12207:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"12197:6:97","nodeType":"YulIdentifier","src":"12197:6:97"},"nativeSrc":"12197:88:97","nodeType":"YulFunctionCall","src":"12197:88:97"},"nativeSrc":"12197:88:97","nodeType":"YulExpressionStatement","src":"12197:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12305:1:97","nodeType":"YulLiteral","src":"12305:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"12308:4:97","nodeType":"YulLiteral","src":"12308:4:97","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"12298:6:97","nodeType":"YulIdentifier","src":"12298:6:97"},"nativeSrc":"12298:15:97","nodeType":"YulFunctionCall","src":"12298:15:97"},"nativeSrc":"12298:15:97","nodeType":"YulExpressionStatement","src":"12298:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12333:1:97","nodeType":"YulLiteral","src":"12333:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"12336:4:97","nodeType":"YulLiteral","src":"12336:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"12326:6:97","nodeType":"YulIdentifier","src":"12326:6:97"},"nativeSrc":"12326:15:97","nodeType":"YulFunctionCall","src":"12326:15:97"},"nativeSrc":"12326:15:97","nodeType":"YulExpressionStatement","src":"12326:15:97"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"12139:18:97","nodeType":"YulIdentifier","src":"12139:18:97"},{"arguments":[{"name":"length","nativeSrc":"12162:6:97","nodeType":"YulIdentifier","src":"12162:6:97"},{"kind":"number","nativeSrc":"12170:2:97","nodeType":"YulLiteral","src":"12170:2:97","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"12159:2:97","nodeType":"YulIdentifier","src":"12159:2:97"},"nativeSrc":"12159:14:97","nodeType":"YulFunctionCall","src":"12159:14:97"}],"functionName":{"name":"eq","nativeSrc":"12136:2:97","nodeType":"YulIdentifier","src":"12136:2:97"},"nativeSrc":"12136:38:97","nodeType":"YulFunctionCall","src":"12136:38:97"},"nativeSrc":"12133:218:97","nodeType":"YulIf","src":"12133:218:97"}]},"name":"extract_byte_array_length","nativeSrc":"11920:437:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"11955:4:97","nodeType":"YulTypedName","src":"11955:4:97","type":""}],"returnVariables":[{"name":"length","nativeSrc":"11964:6:97","nodeType":"YulTypedName","src":"11964:6:97","type":""}],"src":"11920:437:97"},{"body":{"nativeSrc":"12509:124:97","nodeType":"YulBlock","src":"12509:124:97","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"12532:3:97","nodeType":"YulIdentifier","src":"12532:3:97"},{"name":"value0","nativeSrc":"12537:6:97","nodeType":"YulIdentifier","src":"12537:6:97"},{"name":"value1","nativeSrc":"12545:6:97","nodeType":"YulIdentifier","src":"12545:6:97"}],"functionName":{"name":"calldatacopy","nativeSrc":"12519:12:97","nodeType":"YulIdentifier","src":"12519:12:97"},"nativeSrc":"12519:33:97","nodeType":"YulFunctionCall","src":"12519:33:97"},"nativeSrc":"12519:33:97","nodeType":"YulExpressionStatement","src":"12519:33:97"},{"nativeSrc":"12561:26:97","nodeType":"YulVariableDeclaration","src":"12561:26:97","value":{"arguments":[{"name":"pos","nativeSrc":"12575:3:97","nodeType":"YulIdentifier","src":"12575:3:97"},{"name":"value1","nativeSrc":"12580:6:97","nodeType":"YulIdentifier","src":"12580:6:97"}],"functionName":{"name":"add","nativeSrc":"12571:3:97","nodeType":"YulIdentifier","src":"12571:3:97"},"nativeSrc":"12571:16:97","nodeType":"YulFunctionCall","src":"12571:16:97"},"variables":[{"name":"_1","nativeSrc":"12565:2:97","nodeType":"YulTypedName","src":"12565:2:97","type":""}]},{"expression":{"arguments":[{"name":"_1","nativeSrc":"12603:2:97","nodeType":"YulIdentifier","src":"12603:2:97"},{"kind":"number","nativeSrc":"12607:1:97","nodeType":"YulLiteral","src":"12607:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"12596:6:97","nodeType":"YulIdentifier","src":"12596:6:97"},"nativeSrc":"12596:13:97","nodeType":"YulFunctionCall","src":"12596:13:97"},"nativeSrc":"12596:13:97","nodeType":"YulExpressionStatement","src":"12596:13:97"},{"nativeSrc":"12618:9:97","nodeType":"YulAssignment","src":"12618:9:97","value":{"name":"_1","nativeSrc":"12625:2:97","nodeType":"YulIdentifier","src":"12625:2:97"},"variableNames":[{"name":"end","nativeSrc":"12618:3:97","nodeType":"YulIdentifier","src":"12618:3:97"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"12362:271:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"12477:3:97","nodeType":"YulTypedName","src":"12477:3:97","type":""},{"name":"value1","nativeSrc":"12482:6:97","nodeType":"YulTypedName","src":"12482:6:97","type":""},{"name":"value0","nativeSrc":"12490:6:97","nodeType":"YulTypedName","src":"12490:6:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"12501:3:97","nodeType":"YulTypedName","src":"12501:3:97","type":""}],"src":"12362:271:97"},{"body":{"nativeSrc":"12812:228:97","nodeType":"YulBlock","src":"12812:228:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"12829:9:97","nodeType":"YulIdentifier","src":"12829:9:97"},{"kind":"number","nativeSrc":"12840:2:97","nodeType":"YulLiteral","src":"12840:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"12822:6:97","nodeType":"YulIdentifier","src":"12822:6:97"},"nativeSrc":"12822:21:97","nodeType":"YulFunctionCall","src":"12822:21:97"},"nativeSrc":"12822:21:97","nodeType":"YulExpressionStatement","src":"12822:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12863:9:97","nodeType":"YulIdentifier","src":"12863:9:97"},{"kind":"number","nativeSrc":"12874:2:97","nodeType":"YulLiteral","src":"12874:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12859:3:97","nodeType":"YulIdentifier","src":"12859:3:97"},"nativeSrc":"12859:18:97","nodeType":"YulFunctionCall","src":"12859:18:97"},{"kind":"number","nativeSrc":"12879:2:97","nodeType":"YulLiteral","src":"12879:2:97","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"12852:6:97","nodeType":"YulIdentifier","src":"12852:6:97"},"nativeSrc":"12852:30:97","nodeType":"YulFunctionCall","src":"12852:30:97"},"nativeSrc":"12852:30:97","nodeType":"YulExpressionStatement","src":"12852:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12902:9:97","nodeType":"YulIdentifier","src":"12902:9:97"},{"kind":"number","nativeSrc":"12913:2:97","nodeType":"YulLiteral","src":"12913:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12898:3:97","nodeType":"YulIdentifier","src":"12898:3:97"},"nativeSrc":"12898:18:97","nodeType":"YulFunctionCall","src":"12898:18:97"},{"hexValue":"4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f","kind":"string","nativeSrc":"12918:34:97","nodeType":"YulLiteral","src":"12918:34:97","type":"","value":"LzApp: invalid source sending co"}],"functionName":{"name":"mstore","nativeSrc":"12891:6:97","nodeType":"YulIdentifier","src":"12891:6:97"},"nativeSrc":"12891:62:97","nodeType":"YulFunctionCall","src":"12891:62:97"},"nativeSrc":"12891:62:97","nodeType":"YulExpressionStatement","src":"12891:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12973:9:97","nodeType":"YulIdentifier","src":"12973:9:97"},{"kind":"number","nativeSrc":"12984:2:97","nodeType":"YulLiteral","src":"12984:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12969:3:97","nodeType":"YulIdentifier","src":"12969:3:97"},"nativeSrc":"12969:18:97","nodeType":"YulFunctionCall","src":"12969:18:97"},{"hexValue":"6e7472616374","kind":"string","nativeSrc":"12989:8:97","nodeType":"YulLiteral","src":"12989:8:97","type":"","value":"ntract"}],"functionName":{"name":"mstore","nativeSrc":"12962:6:97","nodeType":"YulIdentifier","src":"12962:6:97"},"nativeSrc":"12962:36:97","nodeType":"YulFunctionCall","src":"12962:36:97"},"nativeSrc":"12962:36:97","nodeType":"YulExpressionStatement","src":"12962:36:97"},{"nativeSrc":"13007:27:97","nodeType":"YulAssignment","src":"13007:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"13019:9:97","nodeType":"YulIdentifier","src":"13019:9:97"},{"kind":"number","nativeSrc":"13030:3:97","nodeType":"YulLiteral","src":"13030:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"13015:3:97","nodeType":"YulIdentifier","src":"13015:3:97"},"nativeSrc":"13015:19:97","nodeType":"YulFunctionCall","src":"13015:19:97"},"variableNames":[{"name":"tail","nativeSrc":"13007:4:97","nodeType":"YulIdentifier","src":"13007:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12638:402:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12789:9:97","nodeType":"YulTypedName","src":"12789:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12803:4:97","nodeType":"YulTypedName","src":"12803:4:97","type":""}],"src":"12638:402:97"},{"body":{"nativeSrc":"13219:309:97","nodeType":"YulBlock","src":"13219:309:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13236:9:97","nodeType":"YulIdentifier","src":"13236:9:97"},{"kind":"number","nativeSrc":"13247:2:97","nodeType":"YulLiteral","src":"13247:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"13229:6:97","nodeType":"YulIdentifier","src":"13229:6:97"},"nativeSrc":"13229:21:97","nodeType":"YulFunctionCall","src":"13229:21:97"},"nativeSrc":"13229:21:97","nodeType":"YulExpressionStatement","src":"13229:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13270:9:97","nodeType":"YulIdentifier","src":"13270:9:97"},{"kind":"number","nativeSrc":"13281:2:97","nodeType":"YulLiteral","src":"13281:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13266:3:97","nodeType":"YulIdentifier","src":"13266:3:97"},"nativeSrc":"13266:18:97","nodeType":"YulFunctionCall","src":"13266:18:97"},{"kind":"number","nativeSrc":"13286:2:97","nodeType":"YulLiteral","src":"13286:2:97","type":"","value":"79"}],"functionName":{"name":"mstore","nativeSrc":"13259:6:97","nodeType":"YulIdentifier","src":"13259:6:97"},"nativeSrc":"13259:30:97","nodeType":"YulFunctionCall","src":"13259:30:97"},"nativeSrc":"13259:30:97","nodeType":"YulExpressionStatement","src":"13259:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13309:9:97","nodeType":"YulIdentifier","src":"13309:9:97"},{"kind":"number","nativeSrc":"13320:2:97","nodeType":"YulLiteral","src":"13320:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13305:3:97","nodeType":"YulIdentifier","src":"13305:3:97"},"nativeSrc":"13305:18:97","nodeType":"YulFunctionCall","src":"13305:18:97"},{"hexValue":"4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a63616e","kind":"string","nativeSrc":"13325:34:97","nodeType":"YulLiteral","src":"13325:34:97","type":"","value":"OmnichainGovernanceExecutor::can"}],"functionName":{"name":"mstore","nativeSrc":"13298:6:97","nodeType":"YulIdentifier","src":"13298:6:97"},"nativeSrc":"13298:62:97","nodeType":"YulFunctionCall","src":"13298:62:97"},"nativeSrc":"13298:62:97","nodeType":"YulExpressionStatement","src":"13298:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13380:9:97","nodeType":"YulIdentifier","src":"13380:9:97"},{"kind":"number","nativeSrc":"13391:2:97","nodeType":"YulLiteral","src":"13391:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"13376:3:97","nodeType":"YulIdentifier","src":"13376:3:97"},"nativeSrc":"13376:18:97","nodeType":"YulFunctionCall","src":"13376:18:97"},{"hexValue":"63656c3a2070726f706f73616c2073686f756c64206265207175657565642061","kind":"string","nativeSrc":"13396:34:97","nodeType":"YulLiteral","src":"13396:34:97","type":"","value":"cel: proposal should be queued a"}],"functionName":{"name":"mstore","nativeSrc":"13369:6:97","nodeType":"YulIdentifier","src":"13369:6:97"},"nativeSrc":"13369:62:97","nodeType":"YulFunctionCall","src":"13369:62:97"},"nativeSrc":"13369:62:97","nodeType":"YulExpressionStatement","src":"13369:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13451:9:97","nodeType":"YulIdentifier","src":"13451:9:97"},{"kind":"number","nativeSrc":"13462:3:97","nodeType":"YulLiteral","src":"13462:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"13447:3:97","nodeType":"YulIdentifier","src":"13447:3:97"},"nativeSrc":"13447:19:97","nodeType":"YulFunctionCall","src":"13447:19:97"},{"hexValue":"6e64206e6f74206578656375746564","kind":"string","nativeSrc":"13468:17:97","nodeType":"YulLiteral","src":"13468:17:97","type":"","value":"nd not executed"}],"functionName":{"name":"mstore","nativeSrc":"13440:6:97","nodeType":"YulIdentifier","src":"13440:6:97"},"nativeSrc":"13440:46:97","nodeType":"YulFunctionCall","src":"13440:46:97"},"nativeSrc":"13440:46:97","nodeType":"YulExpressionStatement","src":"13440:46:97"},{"nativeSrc":"13495:27:97","nodeType":"YulAssignment","src":"13495:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"13507:9:97","nodeType":"YulIdentifier","src":"13507:9:97"},{"kind":"number","nativeSrc":"13518:3:97","nodeType":"YulLiteral","src":"13518:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"13503:3:97","nodeType":"YulIdentifier","src":"13503:3:97"},"nativeSrc":"13503:19:97","nodeType":"YulFunctionCall","src":"13503:19:97"},"variableNames":[{"name":"tail","nativeSrc":"13495:4:97","nodeType":"YulIdentifier","src":"13495:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_4258c99d44f362f78e979b44d639851c2c0ef199c76ece73b41f8dc6845abafe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"13045:483:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13196:9:97","nodeType":"YulTypedName","src":"13196:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13210:4:97","nodeType":"YulTypedName","src":"13210:4:97","type":""}],"src":"13045:483:97"},{"body":{"nativeSrc":"13707:250:97","nodeType":"YulBlock","src":"13707:250:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13724:9:97","nodeType":"YulIdentifier","src":"13724:9:97"},{"kind":"number","nativeSrc":"13735:2:97","nodeType":"YulLiteral","src":"13735:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"13717:6:97","nodeType":"YulIdentifier","src":"13717:6:97"},"nativeSrc":"13717:21:97","nodeType":"YulFunctionCall","src":"13717:21:97"},"nativeSrc":"13717:21:97","nodeType":"YulExpressionStatement","src":"13717:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13758:9:97","nodeType":"YulIdentifier","src":"13758:9:97"},{"kind":"number","nativeSrc":"13769:2:97","nodeType":"YulLiteral","src":"13769:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13754:3:97","nodeType":"YulIdentifier","src":"13754:3:97"},"nativeSrc":"13754:18:97","nodeType":"YulFunctionCall","src":"13754:18:97"},{"kind":"number","nativeSrc":"13774:2:97","nodeType":"YulLiteral","src":"13774:2:97","type":"","value":"60"}],"functionName":{"name":"mstore","nativeSrc":"13747:6:97","nodeType":"YulIdentifier","src":"13747:6:97"},"nativeSrc":"13747:30:97","nodeType":"YulFunctionCall","src":"13747:30:97"},"nativeSrc":"13747:30:97","nodeType":"YulExpressionStatement","src":"13747:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13797:9:97","nodeType":"YulIdentifier","src":"13797:9:97"},{"kind":"number","nativeSrc":"13808:2:97","nodeType":"YulLiteral","src":"13808:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13793:3:97","nodeType":"YulIdentifier","src":"13793:3:97"},"nativeSrc":"13793:18:97","nodeType":"YulFunctionCall","src":"13793:18:97"},{"hexValue":"4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a63616e","kind":"string","nativeSrc":"13813:34:97","nodeType":"YulLiteral","src":"13813:34:97","type":"","value":"OmnichainGovernanceExecutor::can"}],"functionName":{"name":"mstore","nativeSrc":"13786:6:97","nodeType":"YulIdentifier","src":"13786:6:97"},"nativeSrc":"13786:62:97","nodeType":"YulFunctionCall","src":"13786:62:97"},"nativeSrc":"13786:62:97","nodeType":"YulExpressionStatement","src":"13786:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13868:9:97","nodeType":"YulIdentifier","src":"13868:9:97"},{"kind":"number","nativeSrc":"13879:2:97","nodeType":"YulLiteral","src":"13879:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"13864:3:97","nodeType":"YulIdentifier","src":"13864:3:97"},"nativeSrc":"13864:18:97","nodeType":"YulFunctionCall","src":"13864:18:97"},{"hexValue":"63656c3a2073656e646572206d75737420626520677561726469616e","kind":"string","nativeSrc":"13884:30:97","nodeType":"YulLiteral","src":"13884:30:97","type":"","value":"cel: sender must be guardian"}],"functionName":{"name":"mstore","nativeSrc":"13857:6:97","nodeType":"YulIdentifier","src":"13857:6:97"},"nativeSrc":"13857:58:97","nodeType":"YulFunctionCall","src":"13857:58:97"},"nativeSrc":"13857:58:97","nodeType":"YulExpressionStatement","src":"13857:58:97"},{"nativeSrc":"13924:27:97","nodeType":"YulAssignment","src":"13924:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"13936:9:97","nodeType":"YulIdentifier","src":"13936:9:97"},{"kind":"number","nativeSrc":"13947:3:97","nodeType":"YulLiteral","src":"13947:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"13932:3:97","nodeType":"YulIdentifier","src":"13932:3:97"},"nativeSrc":"13932:19:97","nodeType":"YulFunctionCall","src":"13932:19:97"},"variableNames":[{"name":"tail","nativeSrc":"13924:4:97","nodeType":"YulIdentifier","src":"13924:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_fb16e4905cd1d461f30a69908479246c84efc58d7cbdb9b1113d7d74e2108621__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"13533:424:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13684:9:97","nodeType":"YulTypedName","src":"13684:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13698:4:97","nodeType":"YulTypedName","src":"13698:4:97","type":""}],"src":"13533:424:97"},{"body":{"nativeSrc":"13994:152:97","nodeType":"YulBlock","src":"13994:152:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14011:1:97","nodeType":"YulLiteral","src":"14011:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"14014:77:97","nodeType":"YulLiteral","src":"14014:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"14004:6:97","nodeType":"YulIdentifier","src":"14004:6:97"},"nativeSrc":"14004:88:97","nodeType":"YulFunctionCall","src":"14004:88:97"},"nativeSrc":"14004:88:97","nodeType":"YulExpressionStatement","src":"14004:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14108:1:97","nodeType":"YulLiteral","src":"14108:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"14111:4:97","nodeType":"YulLiteral","src":"14111:4:97","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"14101:6:97","nodeType":"YulIdentifier","src":"14101:6:97"},"nativeSrc":"14101:15:97","nodeType":"YulFunctionCall","src":"14101:15:97"},"nativeSrc":"14101:15:97","nodeType":"YulExpressionStatement","src":"14101:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14132:1:97","nodeType":"YulLiteral","src":"14132:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"14135:4:97","nodeType":"YulLiteral","src":"14135:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"14125:6:97","nodeType":"YulIdentifier","src":"14125:6:97"},"nativeSrc":"14125:15:97","nodeType":"YulFunctionCall","src":"14125:15:97"},"nativeSrc":"14125:15:97","nodeType":"YulExpressionStatement","src":"14125:15:97"}]},"name":"panic_error_0x32","nativeSrc":"13962:184:97","nodeType":"YulFunctionDefinition","src":"13962:184:97"},{"body":{"nativeSrc":"14207:65:97","nodeType":"YulBlock","src":"14207:65:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14224:1:97","nodeType":"YulLiteral","src":"14224:1:97","type":"","value":"0"},{"name":"ptr","nativeSrc":"14227:3:97","nodeType":"YulIdentifier","src":"14227:3:97"}],"functionName":{"name":"mstore","nativeSrc":"14217:6:97","nodeType":"YulIdentifier","src":"14217:6:97"},"nativeSrc":"14217:14:97","nodeType":"YulFunctionCall","src":"14217:14:97"},"nativeSrc":"14217:14:97","nodeType":"YulExpressionStatement","src":"14217:14:97"},{"nativeSrc":"14240:26:97","nodeType":"YulAssignment","src":"14240:26:97","value":{"arguments":[{"kind":"number","nativeSrc":"14258:1:97","nodeType":"YulLiteral","src":"14258:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"14261:4:97","nodeType":"YulLiteral","src":"14261:4:97","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"14248:9:97","nodeType":"YulIdentifier","src":"14248:9:97"},"nativeSrc":"14248:18:97","nodeType":"YulFunctionCall","src":"14248:18:97"},"variableNames":[{"name":"data","nativeSrc":"14240:4:97","nodeType":"YulIdentifier","src":"14240:4:97"}]}]},"name":"array_dataslot_string_storage","nativeSrc":"14151:121:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"14190:3:97","nodeType":"YulTypedName","src":"14190:3:97","type":""}],"returnVariables":[{"name":"data","nativeSrc":"14198:4:97","nodeType":"YulTypedName","src":"14198:4:97","type":""}],"src":"14151:121:97"},{"body":{"nativeSrc":"14335:771:97","nodeType":"YulBlock","src":"14335:771:97","statements":[{"nativeSrc":"14345:29:97","nodeType":"YulVariableDeclaration","src":"14345:29:97","value":{"arguments":[{"name":"value","nativeSrc":"14368:5:97","nodeType":"YulIdentifier","src":"14368:5:97"}],"functionName":{"name":"sload","nativeSrc":"14362:5:97","nodeType":"YulIdentifier","src":"14362:5:97"},"nativeSrc":"14362:12:97","nodeType":"YulFunctionCall","src":"14362:12:97"},"variables":[{"name":"slotValue","nativeSrc":"14349:9:97","nodeType":"YulTypedName","src":"14349:9:97","type":""}]},{"nativeSrc":"14383:50:97","nodeType":"YulVariableDeclaration","src":"14383:50:97","value":{"arguments":[{"name":"slotValue","nativeSrc":"14423:9:97","nodeType":"YulIdentifier","src":"14423:9:97"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"14397:25:97","nodeType":"YulIdentifier","src":"14397:25:97"},"nativeSrc":"14397:36:97","nodeType":"YulFunctionCall","src":"14397:36:97"},"variables":[{"name":"length","nativeSrc":"14387:6:97","nodeType":"YulTypedName","src":"14387:6:97","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"14449:3:97","nodeType":"YulIdentifier","src":"14449:3:97"},{"name":"length","nativeSrc":"14454:6:97","nodeType":"YulIdentifier","src":"14454:6:97"}],"functionName":{"name":"mstore","nativeSrc":"14442:6:97","nodeType":"YulIdentifier","src":"14442:6:97"},"nativeSrc":"14442:19:97","nodeType":"YulFunctionCall","src":"14442:19:97"},"nativeSrc":"14442:19:97","nodeType":"YulExpressionStatement","src":"14442:19:97"},{"nativeSrc":"14470:14:97","nodeType":"YulVariableDeclaration","src":"14470:14:97","value":{"kind":"number","nativeSrc":"14480:4:97","nodeType":"YulLiteral","src":"14480:4:97","type":"","value":"0x20"},"variables":[{"name":"_1","nativeSrc":"14474:2:97","nodeType":"YulTypedName","src":"14474:2:97","type":""}]},{"nativeSrc":"14493:11:97","nodeType":"YulVariableDeclaration","src":"14493:11:97","value":{"kind":"number","nativeSrc":"14503:1:97","nodeType":"YulLiteral","src":"14503:1:97","type":"","value":"1"},"variables":[{"name":"_2","nativeSrc":"14497:2:97","nodeType":"YulTypedName","src":"14497:2:97","type":""}]},{"cases":[{"body":{"nativeSrc":"14553:197:97","nodeType":"YulBlock","src":"14553:197:97","statements":[{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"14578:3:97","nodeType":"YulIdentifier","src":"14578:3:97"},{"name":"_1","nativeSrc":"14583:2:97","nodeType":"YulIdentifier","src":"14583:2:97"}],"functionName":{"name":"add","nativeSrc":"14574:3:97","nodeType":"YulIdentifier","src":"14574:3:97"},"nativeSrc":"14574:12:97","nodeType":"YulFunctionCall","src":"14574:12:97"},{"arguments":[{"name":"slotValue","nativeSrc":"14592:9:97","nodeType":"YulIdentifier","src":"14592:9:97"},{"kind":"number","nativeSrc":"14603:66:97","nodeType":"YulLiteral","src":"14603:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00"}],"functionName":{"name":"and","nativeSrc":"14588:3:97","nodeType":"YulIdentifier","src":"14588:3:97"},"nativeSrc":"14588:82:97","nodeType":"YulFunctionCall","src":"14588:82:97"}],"functionName":{"name":"mstore","nativeSrc":"14567:6:97","nodeType":"YulIdentifier","src":"14567:6:97"},"nativeSrc":"14567:104:97","nodeType":"YulFunctionCall","src":"14567:104:97"},"nativeSrc":"14567:104:97","nodeType":"YulExpressionStatement","src":"14567:104:97"},{"nativeSrc":"14684:56:97","nodeType":"YulAssignment","src":"14684:56:97","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"14699:3:97","nodeType":"YulIdentifier","src":"14699:3:97"},{"arguments":[{"kind":"number","nativeSrc":"14708:1:97","nodeType":"YulLiteral","src":"14708:1:97","type":"","value":"5"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"14725:6:97","nodeType":"YulIdentifier","src":"14725:6:97"}],"functionName":{"name":"iszero","nativeSrc":"14718:6:97","nodeType":"YulIdentifier","src":"14718:6:97"},"nativeSrc":"14718:14:97","nodeType":"YulFunctionCall","src":"14718:14:97"}],"functionName":{"name":"iszero","nativeSrc":"14711:6:97","nodeType":"YulIdentifier","src":"14711:6:97"},"nativeSrc":"14711:22:97","nodeType":"YulFunctionCall","src":"14711:22:97"}],"functionName":{"name":"shl","nativeSrc":"14704:3:97","nodeType":"YulIdentifier","src":"14704:3:97"},"nativeSrc":"14704:30:97","nodeType":"YulFunctionCall","src":"14704:30:97"}],"functionName":{"name":"add","nativeSrc":"14695:3:97","nodeType":"YulIdentifier","src":"14695:3:97"},"nativeSrc":"14695:40:97","nodeType":"YulFunctionCall","src":"14695:40:97"},{"name":"_1","nativeSrc":"14737:2:97","nodeType":"YulIdentifier","src":"14737:2:97"}],"functionName":{"name":"add","nativeSrc":"14691:3:97","nodeType":"YulIdentifier","src":"14691:3:97"},"nativeSrc":"14691:49:97","nodeType":"YulFunctionCall","src":"14691:49:97"},"variableNames":[{"name":"ret","nativeSrc":"14684:3:97","nodeType":"YulIdentifier","src":"14684:3:97"}]}]},"nativeSrc":"14546:204:97","nodeType":"YulCase","src":"14546:204:97","value":{"kind":"number","nativeSrc":"14551:1:97","nodeType":"YulLiteral","src":"14551:1:97","type":"","value":"0"}},{"body":{"nativeSrc":"14766:334:97","nodeType":"YulBlock","src":"14766:334:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14787:1:97","nodeType":"YulLiteral","src":"14787:1:97","type":"","value":"0"},{"name":"value","nativeSrc":"14790:5:97","nodeType":"YulIdentifier","src":"14790:5:97"}],"functionName":{"name":"mstore","nativeSrc":"14780:6:97","nodeType":"YulIdentifier","src":"14780:6:97"},"nativeSrc":"14780:16:97","nodeType":"YulFunctionCall","src":"14780:16:97"},"nativeSrc":"14780:16:97","nodeType":"YulExpressionStatement","src":"14780:16:97"},{"nativeSrc":"14809:31:97","nodeType":"YulVariableDeclaration","src":"14809:31:97","value":{"arguments":[{"kind":"number","nativeSrc":"14834:1:97","nodeType":"YulLiteral","src":"14834:1:97","type":"","value":"0"},{"name":"_1","nativeSrc":"14837:2:97","nodeType":"YulIdentifier","src":"14837:2:97"}],"functionName":{"name":"keccak256","nativeSrc":"14824:9:97","nodeType":"YulIdentifier","src":"14824:9:97"},"nativeSrc":"14824:16:97","nodeType":"YulFunctionCall","src":"14824:16:97"},"variables":[{"name":"dataPos","nativeSrc":"14813:7:97","nodeType":"YulTypedName","src":"14813:7:97","type":""}]},{"nativeSrc":"14853:10:97","nodeType":"YulVariableDeclaration","src":"14853:10:97","value":{"kind":"number","nativeSrc":"14862:1:97","nodeType":"YulLiteral","src":"14862:1:97","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"14857:1:97","nodeType":"YulTypedName","src":"14857:1:97","type":""}]},{"body":{"nativeSrc":"14930:120:97","nodeType":"YulBlock","src":"14930:120:97","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"14963:3:97","nodeType":"YulIdentifier","src":"14963:3:97"},{"name":"i","nativeSrc":"14968:1:97","nodeType":"YulIdentifier","src":"14968:1:97"}],"functionName":{"name":"add","nativeSrc":"14959:3:97","nodeType":"YulIdentifier","src":"14959:3:97"},"nativeSrc":"14959:11:97","nodeType":"YulFunctionCall","src":"14959:11:97"},{"name":"_1","nativeSrc":"14972:2:97","nodeType":"YulIdentifier","src":"14972:2:97"}],"functionName":{"name":"add","nativeSrc":"14955:3:97","nodeType":"YulIdentifier","src":"14955:3:97"},"nativeSrc":"14955:20:97","nodeType":"YulFunctionCall","src":"14955:20:97"},{"arguments":[{"name":"dataPos","nativeSrc":"14983:7:97","nodeType":"YulIdentifier","src":"14983:7:97"}],"functionName":{"name":"sload","nativeSrc":"14977:5:97","nodeType":"YulIdentifier","src":"14977:5:97"},"nativeSrc":"14977:14:97","nodeType":"YulFunctionCall","src":"14977:14:97"}],"functionName":{"name":"mstore","nativeSrc":"14948:6:97","nodeType":"YulIdentifier","src":"14948:6:97"},"nativeSrc":"14948:44:97","nodeType":"YulFunctionCall","src":"14948:44:97"},"nativeSrc":"14948:44:97","nodeType":"YulExpressionStatement","src":"14948:44:97"},{"nativeSrc":"15009:27:97","nodeType":"YulAssignment","src":"15009:27:97","value":{"arguments":[{"name":"dataPos","nativeSrc":"15024:7:97","nodeType":"YulIdentifier","src":"15024:7:97"},{"name":"_2","nativeSrc":"15033:2:97","nodeType":"YulIdentifier","src":"15033:2:97"}],"functionName":{"name":"add","nativeSrc":"15020:3:97","nodeType":"YulIdentifier","src":"15020:3:97"},"nativeSrc":"15020:16:97","nodeType":"YulFunctionCall","src":"15020:16:97"},"variableNames":[{"name":"dataPos","nativeSrc":"15009:7:97","nodeType":"YulIdentifier","src":"15009:7:97"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"14887:1:97","nodeType":"YulIdentifier","src":"14887:1:97"},{"name":"length","nativeSrc":"14890:6:97","nodeType":"YulIdentifier","src":"14890:6:97"}],"functionName":{"name":"lt","nativeSrc":"14884:2:97","nodeType":"YulIdentifier","src":"14884:2:97"},"nativeSrc":"14884:13:97","nodeType":"YulFunctionCall","src":"14884:13:97"},"nativeSrc":"14876:174:97","nodeType":"YulForLoop","post":{"nativeSrc":"14898:19:97","nodeType":"YulBlock","src":"14898:19:97","statements":[{"nativeSrc":"14900:15:97","nodeType":"YulAssignment","src":"14900:15:97","value":{"arguments":[{"name":"i","nativeSrc":"14909:1:97","nodeType":"YulIdentifier","src":"14909:1:97"},{"name":"_1","nativeSrc":"14912:2:97","nodeType":"YulIdentifier","src":"14912:2:97"}],"functionName":{"name":"add","nativeSrc":"14905:3:97","nodeType":"YulIdentifier","src":"14905:3:97"},"nativeSrc":"14905:10:97","nodeType":"YulFunctionCall","src":"14905:10:97"},"variableNames":[{"name":"i","nativeSrc":"14900:1:97","nodeType":"YulIdentifier","src":"14900:1:97"}]}]},"pre":{"nativeSrc":"14880:3:97","nodeType":"YulBlock","src":"14880:3:97","statements":[]},"src":"14876:174:97"},{"nativeSrc":"15063:27:97","nodeType":"YulAssignment","src":"15063:27:97","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"15078:3:97","nodeType":"YulIdentifier","src":"15078:3:97"},{"name":"i","nativeSrc":"15083:1:97","nodeType":"YulIdentifier","src":"15083:1:97"}],"functionName":{"name":"add","nativeSrc":"15074:3:97","nodeType":"YulIdentifier","src":"15074:3:97"},"nativeSrc":"15074:11:97","nodeType":"YulFunctionCall","src":"15074:11:97"},{"name":"_1","nativeSrc":"15087:2:97","nodeType":"YulIdentifier","src":"15087:2:97"}],"functionName":{"name":"add","nativeSrc":"15070:3:97","nodeType":"YulIdentifier","src":"15070:3:97"},"nativeSrc":"15070:20:97","nodeType":"YulFunctionCall","src":"15070:20:97"},"variableNames":[{"name":"ret","nativeSrc":"15063:3:97","nodeType":"YulIdentifier","src":"15063:3:97"}]}]},"nativeSrc":"14759:341:97","nodeType":"YulCase","src":"14759:341:97","value":{"kind":"number","nativeSrc":"14764:1:97","nodeType":"YulLiteral","src":"14764:1:97","type":"","value":"1"}}],"expression":{"arguments":[{"name":"slotValue","nativeSrc":"14524:9:97","nodeType":"YulIdentifier","src":"14524:9:97"},{"kind":"number","nativeSrc":"14535:1:97","nodeType":"YulLiteral","src":"14535:1:97","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"14520:3:97","nodeType":"YulIdentifier","src":"14520:3:97"},"nativeSrc":"14520:17:97","nodeType":"YulFunctionCall","src":"14520:17:97"},"nativeSrc":"14513:587:97","nodeType":"YulSwitch","src":"14513:587:97"}]},"name":"abi_encode_string_storage","nativeSrc":"14277:829:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"14312:5:97","nodeType":"YulTypedName","src":"14312:5:97","type":""},{"name":"pos","nativeSrc":"14319:3:97","nodeType":"YulTypedName","src":"14319:3:97","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"14327:3:97","nodeType":"YulTypedName","src":"14327:3:97","type":""}],"src":"14277:829:97"},{"body":{"nativeSrc":"15356:411:97","nodeType":"YulBlock","src":"15356:411:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"15373:9:97","nodeType":"YulIdentifier","src":"15373:9:97"},{"arguments":[{"name":"value0","nativeSrc":"15388:6:97","nodeType":"YulIdentifier","src":"15388:6:97"},{"kind":"number","nativeSrc":"15396:42:97","nodeType":"YulLiteral","src":"15396:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"15384:3:97","nodeType":"YulIdentifier","src":"15384:3:97"},"nativeSrc":"15384:55:97","nodeType":"YulFunctionCall","src":"15384:55:97"}],"functionName":{"name":"mstore","nativeSrc":"15366:6:97","nodeType":"YulIdentifier","src":"15366:6:97"},"nativeSrc":"15366:74:97","nodeType":"YulFunctionCall","src":"15366:74:97"},"nativeSrc":"15366:74:97","nodeType":"YulExpressionStatement","src":"15366:74:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15460:9:97","nodeType":"YulIdentifier","src":"15460:9:97"},{"kind":"number","nativeSrc":"15471:2:97","nodeType":"YulLiteral","src":"15471:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15456:3:97","nodeType":"YulIdentifier","src":"15456:3:97"},"nativeSrc":"15456:18:97","nodeType":"YulFunctionCall","src":"15456:18:97"},{"name":"value1","nativeSrc":"15476:6:97","nodeType":"YulIdentifier","src":"15476:6:97"}],"functionName":{"name":"mstore","nativeSrc":"15449:6:97","nodeType":"YulIdentifier","src":"15449:6:97"},"nativeSrc":"15449:34:97","nodeType":"YulFunctionCall","src":"15449:34:97"},"nativeSrc":"15449:34:97","nodeType":"YulExpressionStatement","src":"15449:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15503:9:97","nodeType":"YulIdentifier","src":"15503:9:97"},{"kind":"number","nativeSrc":"15514:2:97","nodeType":"YulLiteral","src":"15514:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"15499:3:97","nodeType":"YulIdentifier","src":"15499:3:97"},"nativeSrc":"15499:18:97","nodeType":"YulFunctionCall","src":"15499:18:97"},{"kind":"number","nativeSrc":"15519:3:97","nodeType":"YulLiteral","src":"15519:3:97","type":"","value":"160"}],"functionName":{"name":"mstore","nativeSrc":"15492:6:97","nodeType":"YulIdentifier","src":"15492:6:97"},"nativeSrc":"15492:31:97","nodeType":"YulFunctionCall","src":"15492:31:97"},"nativeSrc":"15492:31:97","nodeType":"YulExpressionStatement","src":"15492:31:97"},{"nativeSrc":"15532:68:97","nodeType":"YulVariableDeclaration","src":"15532:68:97","value":{"arguments":[{"name":"value2","nativeSrc":"15572:6:97","nodeType":"YulIdentifier","src":"15572:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"15584:9:97","nodeType":"YulIdentifier","src":"15584:9:97"},{"kind":"number","nativeSrc":"15595:3:97","nodeType":"YulLiteral","src":"15595:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"15580:3:97","nodeType":"YulIdentifier","src":"15580:3:97"},"nativeSrc":"15580:19:97","nodeType":"YulFunctionCall","src":"15580:19:97"}],"functionName":{"name":"abi_encode_string_storage","nativeSrc":"15546:25:97","nodeType":"YulIdentifier","src":"15546:25:97"},"nativeSrc":"15546:54:97","nodeType":"YulFunctionCall","src":"15546:54:97"},"variables":[{"name":"tail_1","nativeSrc":"15536:6:97","nodeType":"YulTypedName","src":"15536:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15620:9:97","nodeType":"YulIdentifier","src":"15620:9:97"},{"kind":"number","nativeSrc":"15631:2:97","nodeType":"YulLiteral","src":"15631:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"15616:3:97","nodeType":"YulIdentifier","src":"15616:3:97"},"nativeSrc":"15616:18:97","nodeType":"YulFunctionCall","src":"15616:18:97"},{"arguments":[{"name":"tail_1","nativeSrc":"15640:6:97","nodeType":"YulIdentifier","src":"15640:6:97"},{"name":"headStart","nativeSrc":"15648:9:97","nodeType":"YulIdentifier","src":"15648:9:97"}],"functionName":{"name":"sub","nativeSrc":"15636:3:97","nodeType":"YulIdentifier","src":"15636:3:97"},"nativeSrc":"15636:22:97","nodeType":"YulFunctionCall","src":"15636:22:97"}],"functionName":{"name":"mstore","nativeSrc":"15609:6:97","nodeType":"YulIdentifier","src":"15609:6:97"},"nativeSrc":"15609:50:97","nodeType":"YulFunctionCall","src":"15609:50:97"},"nativeSrc":"15609:50:97","nodeType":"YulExpressionStatement","src":"15609:50:97"},{"nativeSrc":"15668:49:97","nodeType":"YulAssignment","src":"15668:49:97","value":{"arguments":[{"name":"value3","nativeSrc":"15702:6:97","nodeType":"YulIdentifier","src":"15702:6:97"},{"name":"tail_1","nativeSrc":"15710:6:97","nodeType":"YulIdentifier","src":"15710:6:97"}],"functionName":{"name":"abi_encode_string_storage","nativeSrc":"15676:25:97","nodeType":"YulIdentifier","src":"15676:25:97"},"nativeSrc":"15676:41:97","nodeType":"YulFunctionCall","src":"15676:41:97"},"variableNames":[{"name":"tail","nativeSrc":"15668:4:97","nodeType":"YulIdentifier","src":"15668:4:97"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15737:9:97","nodeType":"YulIdentifier","src":"15737:9:97"},{"kind":"number","nativeSrc":"15748:3:97","nodeType":"YulLiteral","src":"15748:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"15733:3:97","nodeType":"YulIdentifier","src":"15733:3:97"},"nativeSrc":"15733:19:97","nodeType":"YulFunctionCall","src":"15733:19:97"},{"name":"value4","nativeSrc":"15754:6:97","nodeType":"YulIdentifier","src":"15754:6:97"}],"functionName":{"name":"mstore","nativeSrc":"15726:6:97","nodeType":"YulIdentifier","src":"15726:6:97"},"nativeSrc":"15726:35:97","nodeType":"YulFunctionCall","src":"15726:35:97"},"nativeSrc":"15726:35:97","nodeType":"YulExpressionStatement","src":"15726:35:97"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_string_storage_t_bytes_storage_t_uint256__to_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed","nativeSrc":"15111:656:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15293:9:97","nodeType":"YulTypedName","src":"15293:9:97","type":""},{"name":"value4","nativeSrc":"15304:6:97","nodeType":"YulTypedName","src":"15304:6:97","type":""},{"name":"value3","nativeSrc":"15312:6:97","nodeType":"YulTypedName","src":"15312:6:97","type":""},{"name":"value2","nativeSrc":"15320:6:97","nodeType":"YulTypedName","src":"15320:6:97","type":""},{"name":"value1","nativeSrc":"15328:6:97","nodeType":"YulTypedName","src":"15328:6:97","type":""},{"name":"value0","nativeSrc":"15336:6:97","nodeType":"YulTypedName","src":"15336:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15347:4:97","nodeType":"YulTypedName","src":"15347:4:97","type":""}],"src":"15111:656:97"},{"body":{"nativeSrc":"15838:259:97","nodeType":"YulBlock","src":"15838:259:97","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"15855:3:97","nodeType":"YulIdentifier","src":"15855:3:97"},{"name":"length","nativeSrc":"15860:6:97","nodeType":"YulIdentifier","src":"15860:6:97"}],"functionName":{"name":"mstore","nativeSrc":"15848:6:97","nodeType":"YulIdentifier","src":"15848:6:97"},"nativeSrc":"15848:19:97","nodeType":"YulFunctionCall","src":"15848:19:97"},"nativeSrc":"15848:19:97","nodeType":"YulExpressionStatement","src":"15848:19:97"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"15893:3:97","nodeType":"YulIdentifier","src":"15893:3:97"},{"kind":"number","nativeSrc":"15898:4:97","nodeType":"YulLiteral","src":"15898:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15889:3:97","nodeType":"YulIdentifier","src":"15889:3:97"},"nativeSrc":"15889:14:97","nodeType":"YulFunctionCall","src":"15889:14:97"},{"name":"start","nativeSrc":"15905:5:97","nodeType":"YulIdentifier","src":"15905:5:97"},{"name":"length","nativeSrc":"15912:6:97","nodeType":"YulIdentifier","src":"15912:6:97"}],"functionName":{"name":"calldatacopy","nativeSrc":"15876:12:97","nodeType":"YulIdentifier","src":"15876:12:97"},"nativeSrc":"15876:43:97","nodeType":"YulFunctionCall","src":"15876:43:97"},"nativeSrc":"15876:43:97","nodeType":"YulExpressionStatement","src":"15876:43:97"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"15943:3:97","nodeType":"YulIdentifier","src":"15943:3:97"},{"name":"length","nativeSrc":"15948:6:97","nodeType":"YulIdentifier","src":"15948:6:97"}],"functionName":{"name":"add","nativeSrc":"15939:3:97","nodeType":"YulIdentifier","src":"15939:3:97"},"nativeSrc":"15939:16:97","nodeType":"YulFunctionCall","src":"15939:16:97"},{"kind":"number","nativeSrc":"15957:4:97","nodeType":"YulLiteral","src":"15957:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15935:3:97","nodeType":"YulIdentifier","src":"15935:3:97"},"nativeSrc":"15935:27:97","nodeType":"YulFunctionCall","src":"15935:27:97"},{"kind":"number","nativeSrc":"15964:1:97","nodeType":"YulLiteral","src":"15964:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"15928:6:97","nodeType":"YulIdentifier","src":"15928:6:97"},"nativeSrc":"15928:38:97","nodeType":"YulFunctionCall","src":"15928:38:97"},"nativeSrc":"15928:38:97","nodeType":"YulExpressionStatement","src":"15928:38:97"},{"nativeSrc":"15975:116:97","nodeType":"YulAssignment","src":"15975:116:97","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"15990:3:97","nodeType":"YulIdentifier","src":"15990:3:97"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"16003:6:97","nodeType":"YulIdentifier","src":"16003:6:97"},{"kind":"number","nativeSrc":"16011:2:97","nodeType":"YulLiteral","src":"16011:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"15999:3:97","nodeType":"YulIdentifier","src":"15999:3:97"},"nativeSrc":"15999:15:97","nodeType":"YulFunctionCall","src":"15999:15:97"},{"kind":"number","nativeSrc":"16016:66:97","nodeType":"YulLiteral","src":"16016:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"15995:3:97","nodeType":"YulIdentifier","src":"15995:3:97"},"nativeSrc":"15995:88:97","nodeType":"YulFunctionCall","src":"15995:88:97"}],"functionName":{"name":"add","nativeSrc":"15986:3:97","nodeType":"YulIdentifier","src":"15986:3:97"},"nativeSrc":"15986:98:97","nodeType":"YulFunctionCall","src":"15986:98:97"},{"kind":"number","nativeSrc":"16086:4:97","nodeType":"YulLiteral","src":"16086:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15982:3:97","nodeType":"YulIdentifier","src":"15982:3:97"},"nativeSrc":"15982:109:97","nodeType":"YulFunctionCall","src":"15982:109:97"},"variableNames":[{"name":"end","nativeSrc":"15975:3:97","nodeType":"YulIdentifier","src":"15975:3:97"}]}]},"name":"abi_encode_bytes_calldata","nativeSrc":"15772:325:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"15807:5:97","nodeType":"YulTypedName","src":"15807:5:97","type":""},{"name":"length","nativeSrc":"15814:6:97","nodeType":"YulTypedName","src":"15814:6:97","type":""},{"name":"pos","nativeSrc":"15822:3:97","nodeType":"YulTypedName","src":"15822:3:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"15830:3:97","nodeType":"YulTypedName","src":"15830:3:97","type":""}],"src":"15772:325:97"},{"body":{"nativeSrc":"16257:171:97","nodeType":"YulBlock","src":"16257:171:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"16274:9:97","nodeType":"YulIdentifier","src":"16274:9:97"},{"arguments":[{"name":"value0","nativeSrc":"16289:6:97","nodeType":"YulIdentifier","src":"16289:6:97"},{"kind":"number","nativeSrc":"16297:6:97","nodeType":"YulLiteral","src":"16297:6:97","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"16285:3:97","nodeType":"YulIdentifier","src":"16285:3:97"},"nativeSrc":"16285:19:97","nodeType":"YulFunctionCall","src":"16285:19:97"}],"functionName":{"name":"mstore","nativeSrc":"16267:6:97","nodeType":"YulIdentifier","src":"16267:6:97"},"nativeSrc":"16267:38:97","nodeType":"YulFunctionCall","src":"16267:38:97"},"nativeSrc":"16267:38:97","nodeType":"YulExpressionStatement","src":"16267:38:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16325:9:97","nodeType":"YulIdentifier","src":"16325:9:97"},{"kind":"number","nativeSrc":"16336:2:97","nodeType":"YulLiteral","src":"16336:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16321:3:97","nodeType":"YulIdentifier","src":"16321:3:97"},"nativeSrc":"16321:18:97","nodeType":"YulFunctionCall","src":"16321:18:97"},{"kind":"number","nativeSrc":"16341:2:97","nodeType":"YulLiteral","src":"16341:2:97","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"16314:6:97","nodeType":"YulIdentifier","src":"16314:6:97"},"nativeSrc":"16314:30:97","nodeType":"YulFunctionCall","src":"16314:30:97"},"nativeSrc":"16314:30:97","nodeType":"YulExpressionStatement","src":"16314:30:97"},{"nativeSrc":"16353:69:97","nodeType":"YulAssignment","src":"16353:69:97","value":{"arguments":[{"name":"value1","nativeSrc":"16387:6:97","nodeType":"YulIdentifier","src":"16387:6:97"},{"name":"value2","nativeSrc":"16395:6:97","nodeType":"YulIdentifier","src":"16395:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"16407:9:97","nodeType":"YulIdentifier","src":"16407:9:97"},{"kind":"number","nativeSrc":"16418:2:97","nodeType":"YulLiteral","src":"16418:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16403:3:97","nodeType":"YulIdentifier","src":"16403:3:97"},"nativeSrc":"16403:18:97","nodeType":"YulFunctionCall","src":"16403:18:97"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"16361:25:97","nodeType":"YulIdentifier","src":"16361:25:97"},"nativeSrc":"16361:61:97","nodeType":"YulFunctionCall","src":"16361:61:97"},"variableNames":[{"name":"tail","nativeSrc":"16353:4:97","nodeType":"YulIdentifier","src":"16353:4:97"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"16102:326:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16210:9:97","nodeType":"YulTypedName","src":"16210:9:97","type":""},{"name":"value2","nativeSrc":"16221:6:97","nodeType":"YulTypedName","src":"16221:6:97","type":""},{"name":"value1","nativeSrc":"16229:6:97","nodeType":"YulTypedName","src":"16229:6:97","type":""},{"name":"value0","nativeSrc":"16237:6:97","nodeType":"YulTypedName","src":"16237:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16248:4:97","nodeType":"YulTypedName","src":"16248:4:97","type":""}],"src":"16102:326:97"},{"body":{"nativeSrc":"16607:228:97","nodeType":"YulBlock","src":"16607:228:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"16624:9:97","nodeType":"YulIdentifier","src":"16624:9:97"},{"kind":"number","nativeSrc":"16635:2:97","nodeType":"YulLiteral","src":"16635:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"16617:6:97","nodeType":"YulIdentifier","src":"16617:6:97"},"nativeSrc":"16617:21:97","nodeType":"YulFunctionCall","src":"16617:21:97"},"nativeSrc":"16617:21:97","nodeType":"YulExpressionStatement","src":"16617:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16658:9:97","nodeType":"YulIdentifier","src":"16658:9:97"},{"kind":"number","nativeSrc":"16669:2:97","nodeType":"YulLiteral","src":"16669:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16654:3:97","nodeType":"YulIdentifier","src":"16654:3:97"},"nativeSrc":"16654:18:97","nodeType":"YulFunctionCall","src":"16654:18:97"},{"kind":"number","nativeSrc":"16674:2:97","nodeType":"YulLiteral","src":"16674:2:97","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"16647:6:97","nodeType":"YulIdentifier","src":"16647:6:97"},"nativeSrc":"16647:30:97","nodeType":"YulFunctionCall","src":"16647:30:97"},"nativeSrc":"16647:30:97","nodeType":"YulExpressionStatement","src":"16647:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16697:9:97","nodeType":"YulIdentifier","src":"16697:9:97"},{"kind":"number","nativeSrc":"16708:2:97","nodeType":"YulLiteral","src":"16708:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16693:3:97","nodeType":"YulIdentifier","src":"16693:3:97"},"nativeSrc":"16693:18:97","nodeType":"YulFunctionCall","src":"16693:18:97"},{"hexValue":"4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d757374206265","kind":"string","nativeSrc":"16713:34:97","nodeType":"YulLiteral","src":"16713:34:97","type":"","value":"NonblockingLzApp: caller must be"}],"functionName":{"name":"mstore","nativeSrc":"16686:6:97","nodeType":"YulIdentifier","src":"16686:6:97"},"nativeSrc":"16686:62:97","nodeType":"YulFunctionCall","src":"16686:62:97"},"nativeSrc":"16686:62:97","nodeType":"YulExpressionStatement","src":"16686:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16768:9:97","nodeType":"YulIdentifier","src":"16768:9:97"},{"kind":"number","nativeSrc":"16779:2:97","nodeType":"YulLiteral","src":"16779:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"16764:3:97","nodeType":"YulIdentifier","src":"16764:3:97"},"nativeSrc":"16764:18:97","nodeType":"YulFunctionCall","src":"16764:18:97"},{"hexValue":"204c7a417070","kind":"string","nativeSrc":"16784:8:97","nodeType":"YulLiteral","src":"16784:8:97","type":"","value":" LzApp"}],"functionName":{"name":"mstore","nativeSrc":"16757:6:97","nodeType":"YulIdentifier","src":"16757:6:97"},"nativeSrc":"16757:36:97","nodeType":"YulFunctionCall","src":"16757:36:97"},"nativeSrc":"16757:36:97","nodeType":"YulExpressionStatement","src":"16757:36:97"},{"nativeSrc":"16802:27:97","nodeType":"YulAssignment","src":"16802:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"16814:9:97","nodeType":"YulIdentifier","src":"16814:9:97"},{"kind":"number","nativeSrc":"16825:3:97","nodeType":"YulLiteral","src":"16825:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"16810:3:97","nodeType":"YulIdentifier","src":"16810:3:97"},"nativeSrc":"16810:19:97","nodeType":"YulFunctionCall","src":"16810:19:97"},"variableNames":[{"name":"tail","nativeSrc":"16802:4:97","nodeType":"YulIdentifier","src":"16802:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"16433:402:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16584:9:97","nodeType":"YulTypedName","src":"16584:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16598:4:97","nodeType":"YulTypedName","src":"16598:4:97","type":""}],"src":"16433:402:97"},{"body":{"nativeSrc":"17014:254:97","nodeType":"YulBlock","src":"17014:254:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"17031:9:97","nodeType":"YulIdentifier","src":"17031:9:97"},{"kind":"number","nativeSrc":"17042:2:97","nodeType":"YulLiteral","src":"17042:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"17024:6:97","nodeType":"YulIdentifier","src":"17024:6:97"},"nativeSrc":"17024:21:97","nodeType":"YulFunctionCall","src":"17024:21:97"},"nativeSrc":"17024:21:97","nodeType":"YulExpressionStatement","src":"17024:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17065:9:97","nodeType":"YulIdentifier","src":"17065:9:97"},{"kind":"number","nativeSrc":"17076:2:97","nodeType":"YulLiteral","src":"17076:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17061:3:97","nodeType":"YulIdentifier","src":"17061:3:97"},"nativeSrc":"17061:18:97","nodeType":"YulFunctionCall","src":"17061:18:97"},{"kind":"number","nativeSrc":"17081:2:97","nodeType":"YulLiteral","src":"17081:2:97","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"17054:6:97","nodeType":"YulIdentifier","src":"17054:6:97"},"nativeSrc":"17054:30:97","nodeType":"YulFunctionCall","src":"17054:30:97"},"nativeSrc":"17054:30:97","nodeType":"YulExpressionStatement","src":"17054:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17104:9:97","nodeType":"YulIdentifier","src":"17104:9:97"},{"kind":"number","nativeSrc":"17115:2:97","nodeType":"YulLiteral","src":"17115:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17100:3:97","nodeType":"YulIdentifier","src":"17100:3:97"},"nativeSrc":"17100:18:97","nodeType":"YulFunctionCall","src":"17100:18:97"},{"hexValue":"4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a736574","kind":"string","nativeSrc":"17120:34:97","nodeType":"YulLiteral","src":"17120:34:97","type":"","value":"OmnichainGovernanceExecutor::set"}],"functionName":{"name":"mstore","nativeSrc":"17093:6:97","nodeType":"YulIdentifier","src":"17093:6:97"},"nativeSrc":"17093:62:97","nodeType":"YulFunctionCall","src":"17093:62:97"},"nativeSrc":"17093:62:97","nodeType":"YulExpressionStatement","src":"17093:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17175:9:97","nodeType":"YulIdentifier","src":"17175:9:97"},{"kind":"number","nativeSrc":"17186:2:97","nodeType":"YulLiteral","src":"17186:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"17171:3:97","nodeType":"YulIdentifier","src":"17171:3:97"},"nativeSrc":"17171:18:97","nodeType":"YulFunctionCall","src":"17171:18:97"},{"hexValue":"477561726469616e3a206f776e6572206f7220677561726469616e206f6e6c79","kind":"string","nativeSrc":"17191:34:97","nodeType":"YulLiteral","src":"17191:34:97","type":"","value":"Guardian: owner or guardian only"}],"functionName":{"name":"mstore","nativeSrc":"17164:6:97","nodeType":"YulIdentifier","src":"17164:6:97"},"nativeSrc":"17164:62:97","nodeType":"YulFunctionCall","src":"17164:62:97"},"nativeSrc":"17164:62:97","nodeType":"YulExpressionStatement","src":"17164:62:97"},{"nativeSrc":"17235:27:97","nodeType":"YulAssignment","src":"17235:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"17247:9:97","nodeType":"YulIdentifier","src":"17247:9:97"},{"kind":"number","nativeSrc":"17258:3:97","nodeType":"YulLiteral","src":"17258:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"17243:3:97","nodeType":"YulIdentifier","src":"17243:3:97"},"nativeSrc":"17243:19:97","nodeType":"YulFunctionCall","src":"17243:19:97"},"variableNames":[{"name":"tail","nativeSrc":"17235:4:97","nodeType":"YulIdentifier","src":"17235:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_dcd823307e0cf8e2924ffc4da406ac40a542bd139ef180667b9ac44d3c4e1ed9__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"16840:428:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16991:9:97","nodeType":"YulTypedName","src":"16991:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17005:4:97","nodeType":"YulTypedName","src":"17005:4:97","type":""}],"src":"16840:428:97"},{"body":{"nativeSrc":"17402:119:97","nodeType":"YulBlock","src":"17402:119:97","statements":[{"nativeSrc":"17412:26:97","nodeType":"YulAssignment","src":"17412:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"17424:9:97","nodeType":"YulIdentifier","src":"17424:9:97"},{"kind":"number","nativeSrc":"17435:2:97","nodeType":"YulLiteral","src":"17435:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17420:3:97","nodeType":"YulIdentifier","src":"17420:3:97"},"nativeSrc":"17420:18:97","nodeType":"YulFunctionCall","src":"17420:18:97"},"variableNames":[{"name":"tail","nativeSrc":"17412:4:97","nodeType":"YulIdentifier","src":"17412:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"17454:9:97","nodeType":"YulIdentifier","src":"17454:9:97"},{"name":"value0","nativeSrc":"17465:6:97","nodeType":"YulIdentifier","src":"17465:6:97"}],"functionName":{"name":"mstore","nativeSrc":"17447:6:97","nodeType":"YulIdentifier","src":"17447:6:97"},"nativeSrc":"17447:25:97","nodeType":"YulFunctionCall","src":"17447:25:97"},"nativeSrc":"17447:25:97","nodeType":"YulExpressionStatement","src":"17447:25:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17492:9:97","nodeType":"YulIdentifier","src":"17492:9:97"},{"kind":"number","nativeSrc":"17503:2:97","nodeType":"YulLiteral","src":"17503:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17488:3:97","nodeType":"YulIdentifier","src":"17488:3:97"},"nativeSrc":"17488:18:97","nodeType":"YulFunctionCall","src":"17488:18:97"},{"name":"value1","nativeSrc":"17508:6:97","nodeType":"YulIdentifier","src":"17508:6:97"}],"functionName":{"name":"mstore","nativeSrc":"17481:6:97","nodeType":"YulIdentifier","src":"17481:6:97"},"nativeSrc":"17481:34:97","nodeType":"YulFunctionCall","src":"17481:34:97"},"nativeSrc":"17481:34:97","nodeType":"YulExpressionStatement","src":"17481:34:97"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"17273:248:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17363:9:97","nodeType":"YulTypedName","src":"17363:9:97","type":""},{"name":"value1","nativeSrc":"17374:6:97","nodeType":"YulTypedName","src":"17374:6:97","type":""},{"name":"value0","nativeSrc":"17382:6:97","nodeType":"YulTypedName","src":"17382:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17393:4:97","nodeType":"YulTypedName","src":"17393:4:97","type":""}],"src":"17273:248:97"},{"body":{"nativeSrc":"17700:179:97","nodeType":"YulBlock","src":"17700:179:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"17717:9:97","nodeType":"YulIdentifier","src":"17717:9:97"},{"kind":"number","nativeSrc":"17728:2:97","nodeType":"YulLiteral","src":"17728:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"17710:6:97","nodeType":"YulIdentifier","src":"17710:6:97"},"nativeSrc":"17710:21:97","nodeType":"YulFunctionCall","src":"17710:21:97"},"nativeSrc":"17710:21:97","nodeType":"YulExpressionStatement","src":"17710:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17751:9:97","nodeType":"YulIdentifier","src":"17751:9:97"},{"kind":"number","nativeSrc":"17762:2:97","nodeType":"YulLiteral","src":"17762:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17747:3:97","nodeType":"YulIdentifier","src":"17747:3:97"},"nativeSrc":"17747:18:97","nodeType":"YulFunctionCall","src":"17747:18:97"},{"kind":"number","nativeSrc":"17767:2:97","nodeType":"YulLiteral","src":"17767:2:97","type":"","value":"29"}],"functionName":{"name":"mstore","nativeSrc":"17740:6:97","nodeType":"YulIdentifier","src":"17740:6:97"},"nativeSrc":"17740:30:97","nodeType":"YulFunctionCall","src":"17740:30:97"},"nativeSrc":"17740:30:97","nodeType":"YulExpressionStatement","src":"17740:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17790:9:97","nodeType":"YulIdentifier","src":"17790:9:97"},{"kind":"number","nativeSrc":"17801:2:97","nodeType":"YulLiteral","src":"17801:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17786:3:97","nodeType":"YulIdentifier","src":"17786:3:97"},"nativeSrc":"17786:18:97","nodeType":"YulFunctionCall","src":"17786:18:97"},{"hexValue":"4c7a4170703a206e6f20747275737465642070617468207265636f7264","kind":"string","nativeSrc":"17806:31:97","nodeType":"YulLiteral","src":"17806:31:97","type":"","value":"LzApp: no trusted path record"}],"functionName":{"name":"mstore","nativeSrc":"17779:6:97","nodeType":"YulIdentifier","src":"17779:6:97"},"nativeSrc":"17779:59:97","nodeType":"YulFunctionCall","src":"17779:59:97"},"nativeSrc":"17779:59:97","nodeType":"YulExpressionStatement","src":"17779:59:97"},{"nativeSrc":"17847:26:97","nodeType":"YulAssignment","src":"17847:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"17859:9:97","nodeType":"YulIdentifier","src":"17859:9:97"},{"kind":"number","nativeSrc":"17870:2:97","nodeType":"YulLiteral","src":"17870:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"17855:3:97","nodeType":"YulIdentifier","src":"17855:3:97"},"nativeSrc":"17855:18:97","nodeType":"YulFunctionCall","src":"17855:18:97"},"variableNames":[{"name":"tail","nativeSrc":"17847:4:97","nodeType":"YulIdentifier","src":"17847:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"17526:353:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17677:9:97","nodeType":"YulTypedName","src":"17677:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17691:4:97","nodeType":"YulTypedName","src":"17691:4:97","type":""}],"src":"17526:353:97"},{"body":{"nativeSrc":"17916:152:97","nodeType":"YulBlock","src":"17916:152:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17933:1:97","nodeType":"YulLiteral","src":"17933:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"17936:77:97","nodeType":"YulLiteral","src":"17936:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"17926:6:97","nodeType":"YulIdentifier","src":"17926:6:97"},"nativeSrc":"17926:88:97","nodeType":"YulFunctionCall","src":"17926:88:97"},"nativeSrc":"17926:88:97","nodeType":"YulExpressionStatement","src":"17926:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18030:1:97","nodeType":"YulLiteral","src":"18030:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"18033:4:97","nodeType":"YulLiteral","src":"18033:4:97","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"18023:6:97","nodeType":"YulIdentifier","src":"18023:6:97"},"nativeSrc":"18023:15:97","nodeType":"YulFunctionCall","src":"18023:15:97"},"nativeSrc":"18023:15:97","nodeType":"YulExpressionStatement","src":"18023:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18054:1:97","nodeType":"YulLiteral","src":"18054:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"18057:4:97","nodeType":"YulLiteral","src":"18057:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"18047:6:97","nodeType":"YulIdentifier","src":"18047:6:97"},"nativeSrc":"18047:15:97","nodeType":"YulFunctionCall","src":"18047:15:97"},"nativeSrc":"18047:15:97","nodeType":"YulExpressionStatement","src":"18047:15:97"}]},"name":"panic_error_0x11","nativeSrc":"17884:184:97","nodeType":"YulFunctionDefinition","src":"17884:184:97"},{"body":{"nativeSrc":"18122:79:97","nodeType":"YulBlock","src":"18122:79:97","statements":[{"nativeSrc":"18132:17:97","nodeType":"YulAssignment","src":"18132:17:97","value":{"arguments":[{"name":"x","nativeSrc":"18144:1:97","nodeType":"YulIdentifier","src":"18144:1:97"},{"name":"y","nativeSrc":"18147:1:97","nodeType":"YulIdentifier","src":"18147:1:97"}],"functionName":{"name":"sub","nativeSrc":"18140:3:97","nodeType":"YulIdentifier","src":"18140:3:97"},"nativeSrc":"18140:9:97","nodeType":"YulFunctionCall","src":"18140:9:97"},"variableNames":[{"name":"diff","nativeSrc":"18132:4:97","nodeType":"YulIdentifier","src":"18132:4:97"}]},{"body":{"nativeSrc":"18173:22:97","nodeType":"YulBlock","src":"18173:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"18175:16:97","nodeType":"YulIdentifier","src":"18175:16:97"},"nativeSrc":"18175:18:97","nodeType":"YulFunctionCall","src":"18175:18:97"},"nativeSrc":"18175:18:97","nodeType":"YulExpressionStatement","src":"18175:18:97"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"18164:4:97","nodeType":"YulIdentifier","src":"18164:4:97"},{"name":"x","nativeSrc":"18170:1:97","nodeType":"YulIdentifier","src":"18170:1:97"}],"functionName":{"name":"gt","nativeSrc":"18161:2:97","nodeType":"YulIdentifier","src":"18161:2:97"},"nativeSrc":"18161:11:97","nodeType":"YulFunctionCall","src":"18161:11:97"},"nativeSrc":"18158:37:97","nodeType":"YulIf","src":"18158:37:97"}]},"name":"checked_sub_t_uint256","nativeSrc":"18073:128:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"18104:1:97","nodeType":"YulTypedName","src":"18104:1:97","type":""},{"name":"y","nativeSrc":"18107:1:97","nodeType":"YulTypedName","src":"18107:1:97","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"18113:4:97","nodeType":"YulTypedName","src":"18113:4:97","type":""}],"src":"18073:128:97"},{"body":{"nativeSrc":"18381:220:97","nodeType":"YulBlock","src":"18381:220:97","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"18404:3:97","nodeType":"YulIdentifier","src":"18404:3:97"},{"name":"value0","nativeSrc":"18409:6:97","nodeType":"YulIdentifier","src":"18409:6:97"},{"name":"value1","nativeSrc":"18417:6:97","nodeType":"YulIdentifier","src":"18417:6:97"}],"functionName":{"name":"calldatacopy","nativeSrc":"18391:12:97","nodeType":"YulIdentifier","src":"18391:12:97"},"nativeSrc":"18391:33:97","nodeType":"YulFunctionCall","src":"18391:33:97"},"nativeSrc":"18391:33:97","nodeType":"YulExpressionStatement","src":"18391:33:97"},{"nativeSrc":"18433:26:97","nodeType":"YulVariableDeclaration","src":"18433:26:97","value":{"arguments":[{"name":"pos","nativeSrc":"18447:3:97","nodeType":"YulIdentifier","src":"18447:3:97"},{"name":"value1","nativeSrc":"18452:6:97","nodeType":"YulIdentifier","src":"18452:6:97"}],"functionName":{"name":"add","nativeSrc":"18443:3:97","nodeType":"YulIdentifier","src":"18443:3:97"},"nativeSrc":"18443:16:97","nodeType":"YulFunctionCall","src":"18443:16:97"},"variables":[{"name":"_1","nativeSrc":"18437:2:97","nodeType":"YulTypedName","src":"18437:2:97","type":""}]},{"expression":{"arguments":[{"name":"_1","nativeSrc":"18475:2:97","nodeType":"YulIdentifier","src":"18475:2:97"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"18487:2:97","nodeType":"YulLiteral","src":"18487:2:97","type":"","value":"96"},{"name":"value2","nativeSrc":"18491:6:97","nodeType":"YulIdentifier","src":"18491:6:97"}],"functionName":{"name":"shl","nativeSrc":"18483:3:97","nodeType":"YulIdentifier","src":"18483:3:97"},"nativeSrc":"18483:15:97","nodeType":"YulFunctionCall","src":"18483:15:97"},{"kind":"number","nativeSrc":"18500:66:97","nodeType":"YulLiteral","src":"18500:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"18479:3:97","nodeType":"YulIdentifier","src":"18479:3:97"},"nativeSrc":"18479:88:97","nodeType":"YulFunctionCall","src":"18479:88:97"}],"functionName":{"name":"mstore","nativeSrc":"18468:6:97","nodeType":"YulIdentifier","src":"18468:6:97"},"nativeSrc":"18468:100:97","nodeType":"YulFunctionCall","src":"18468:100:97"},"nativeSrc":"18468:100:97","nodeType":"YulExpressionStatement","src":"18468:100:97"},{"nativeSrc":"18577:18:97","nodeType":"YulAssignment","src":"18577:18:97","value":{"arguments":[{"name":"_1","nativeSrc":"18588:2:97","nodeType":"YulIdentifier","src":"18588:2:97"},{"kind":"number","nativeSrc":"18592:2:97","nodeType":"YulLiteral","src":"18592:2:97","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"18584:3:97","nodeType":"YulIdentifier","src":"18584:3:97"},"nativeSrc":"18584:11:97","nodeType":"YulFunctionCall","src":"18584:11:97"},"variableNames":[{"name":"end","nativeSrc":"18577:3:97","nodeType":"YulIdentifier","src":"18577:3:97"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed","nativeSrc":"18206:395:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"18341:3:97","nodeType":"YulTypedName","src":"18341:3:97","type":""},{"name":"value2","nativeSrc":"18346:6:97","nodeType":"YulTypedName","src":"18346:6:97","type":""},{"name":"value1","nativeSrc":"18354:6:97","nodeType":"YulTypedName","src":"18354:6:97","type":""},{"name":"value0","nativeSrc":"18362:6:97","nodeType":"YulTypedName","src":"18362:6:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"18373:3:97","nodeType":"YulTypedName","src":"18373:3:97","type":""}],"src":"18206:395:97"},{"body":{"nativeSrc":"18686:462:97","nodeType":"YulBlock","src":"18686:462:97","statements":[{"body":{"nativeSrc":"18719:423:97","nodeType":"YulBlock","src":"18719:423:97","statements":[{"nativeSrc":"18733:11:97","nodeType":"YulVariableDeclaration","src":"18733:11:97","value":{"kind":"number","nativeSrc":"18743:1:97","nodeType":"YulLiteral","src":"18743:1:97","type":"","value":"0"},"variables":[{"name":"_1","nativeSrc":"18737:2:97","nodeType":"YulTypedName","src":"18737:2:97","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18764:1:97","nodeType":"YulLiteral","src":"18764:1:97","type":"","value":"0"},{"name":"array","nativeSrc":"18767:5:97","nodeType":"YulIdentifier","src":"18767:5:97"}],"functionName":{"name":"mstore","nativeSrc":"18757:6:97","nodeType":"YulIdentifier","src":"18757:6:97"},"nativeSrc":"18757:16:97","nodeType":"YulFunctionCall","src":"18757:16:97"},"nativeSrc":"18757:16:97","nodeType":"YulExpressionStatement","src":"18757:16:97"},{"nativeSrc":"18786:30:97","nodeType":"YulVariableDeclaration","src":"18786:30:97","value":{"arguments":[{"kind":"number","nativeSrc":"18808:1:97","nodeType":"YulLiteral","src":"18808:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"18811:4:97","nodeType":"YulLiteral","src":"18811:4:97","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"18798:9:97","nodeType":"YulIdentifier","src":"18798:9:97"},"nativeSrc":"18798:18:97","nodeType":"YulFunctionCall","src":"18798:18:97"},"variables":[{"name":"data","nativeSrc":"18790:4:97","nodeType":"YulTypedName","src":"18790:4:97","type":""}]},{"nativeSrc":"18829:57:97","nodeType":"YulVariableDeclaration","src":"18829:57:97","value":{"arguments":[{"name":"data","nativeSrc":"18852:4:97","nodeType":"YulIdentifier","src":"18852:4:97"},{"arguments":[{"kind":"number","nativeSrc":"18862:1:97","nodeType":"YulLiteral","src":"18862:1:97","type":"","value":"5"},{"arguments":[{"name":"startIndex","nativeSrc":"18869:10:97","nodeType":"YulIdentifier","src":"18869:10:97"},{"kind":"number","nativeSrc":"18881:2:97","nodeType":"YulLiteral","src":"18881:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"18865:3:97","nodeType":"YulIdentifier","src":"18865:3:97"},"nativeSrc":"18865:19:97","nodeType":"YulFunctionCall","src":"18865:19:97"}],"functionName":{"name":"shr","nativeSrc":"18858:3:97","nodeType":"YulIdentifier","src":"18858:3:97"},"nativeSrc":"18858:27:97","nodeType":"YulFunctionCall","src":"18858:27:97"}],"functionName":{"name":"add","nativeSrc":"18848:3:97","nodeType":"YulIdentifier","src":"18848:3:97"},"nativeSrc":"18848:38:97","nodeType":"YulFunctionCall","src":"18848:38:97"},"variables":[{"name":"deleteStart","nativeSrc":"18833:11:97","nodeType":"YulTypedName","src":"18833:11:97","type":""}]},{"body":{"nativeSrc":"18923:23:97","nodeType":"YulBlock","src":"18923:23:97","statements":[{"nativeSrc":"18925:19:97","nodeType":"YulAssignment","src":"18925:19:97","value":{"name":"data","nativeSrc":"18940:4:97","nodeType":"YulIdentifier","src":"18940:4:97"},"variableNames":[{"name":"deleteStart","nativeSrc":"18925:11:97","nodeType":"YulIdentifier","src":"18925:11:97"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"18905:10:97","nodeType":"YulIdentifier","src":"18905:10:97"},{"kind":"number","nativeSrc":"18917:4:97","nodeType":"YulLiteral","src":"18917:4:97","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"18902:2:97","nodeType":"YulIdentifier","src":"18902:2:97"},"nativeSrc":"18902:20:97","nodeType":"YulFunctionCall","src":"18902:20:97"},"nativeSrc":"18899:47:97","nodeType":"YulIf","src":"18899:47:97"},{"nativeSrc":"18959:41:97","nodeType":"YulVariableDeclaration","src":"18959:41:97","value":{"arguments":[{"name":"data","nativeSrc":"18973:4:97","nodeType":"YulIdentifier","src":"18973:4:97"},{"arguments":[{"kind":"number","nativeSrc":"18983:1:97","nodeType":"YulLiteral","src":"18983:1:97","type":"","value":"5"},{"arguments":[{"name":"len","nativeSrc":"18990:3:97","nodeType":"YulIdentifier","src":"18990:3:97"},{"kind":"number","nativeSrc":"18995:2:97","nodeType":"YulLiteral","src":"18995:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"18986:3:97","nodeType":"YulIdentifier","src":"18986:3:97"},"nativeSrc":"18986:12:97","nodeType":"YulFunctionCall","src":"18986:12:97"}],"functionName":{"name":"shr","nativeSrc":"18979:3:97","nodeType":"YulIdentifier","src":"18979:3:97"},"nativeSrc":"18979:20:97","nodeType":"YulFunctionCall","src":"18979:20:97"}],"functionName":{"name":"add","nativeSrc":"18969:3:97","nodeType":"YulIdentifier","src":"18969:3:97"},"nativeSrc":"18969:31:97","nodeType":"YulFunctionCall","src":"18969:31:97"},"variables":[{"name":"_2","nativeSrc":"18963:2:97","nodeType":"YulTypedName","src":"18963:2:97","type":""}]},{"nativeSrc":"19013:24:97","nodeType":"YulVariableDeclaration","src":"19013:24:97","value":{"name":"deleteStart","nativeSrc":"19026:11:97","nodeType":"YulIdentifier","src":"19026:11:97"},"variables":[{"name":"start","nativeSrc":"19017:5:97","nodeType":"YulTypedName","src":"19017:5:97","type":""}]},{"body":{"nativeSrc":"19111:21:97","nodeType":"YulBlock","src":"19111:21:97","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"19120:5:97","nodeType":"YulIdentifier","src":"19120:5:97"},{"name":"_1","nativeSrc":"19127:2:97","nodeType":"YulIdentifier","src":"19127:2:97"}],"functionName":{"name":"sstore","nativeSrc":"19113:6:97","nodeType":"YulIdentifier","src":"19113:6:97"},"nativeSrc":"19113:17:97","nodeType":"YulFunctionCall","src":"19113:17:97"},"nativeSrc":"19113:17:97","nodeType":"YulExpressionStatement","src":"19113:17:97"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"19061:5:97","nodeType":"YulIdentifier","src":"19061:5:97"},{"name":"_2","nativeSrc":"19068:2:97","nodeType":"YulIdentifier","src":"19068:2:97"}],"functionName":{"name":"lt","nativeSrc":"19058:2:97","nodeType":"YulIdentifier","src":"19058:2:97"},"nativeSrc":"19058:13:97","nodeType":"YulFunctionCall","src":"19058:13:97"},"nativeSrc":"19050:82:97","nodeType":"YulForLoop","post":{"nativeSrc":"19072:26:97","nodeType":"YulBlock","src":"19072:26:97","statements":[{"nativeSrc":"19074:22:97","nodeType":"YulAssignment","src":"19074:22:97","value":{"arguments":[{"name":"start","nativeSrc":"19087:5:97","nodeType":"YulIdentifier","src":"19087:5:97"},{"kind":"number","nativeSrc":"19094:1:97","nodeType":"YulLiteral","src":"19094:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"19083:3:97","nodeType":"YulIdentifier","src":"19083:3:97"},"nativeSrc":"19083:13:97","nodeType":"YulFunctionCall","src":"19083:13:97"},"variableNames":[{"name":"start","nativeSrc":"19074:5:97","nodeType":"YulIdentifier","src":"19074:5:97"}]}]},"pre":{"nativeSrc":"19054:3:97","nodeType":"YulBlock","src":"19054:3:97","statements":[]},"src":"19050:82:97"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"18702:3:97","nodeType":"YulIdentifier","src":"18702:3:97"},{"kind":"number","nativeSrc":"18707:2:97","nodeType":"YulLiteral","src":"18707:2:97","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"18699:2:97","nodeType":"YulIdentifier","src":"18699:2:97"},"nativeSrc":"18699:11:97","nodeType":"YulFunctionCall","src":"18699:11:97"},"nativeSrc":"18696:446:97","nodeType":"YulIf","src":"18696:446:97"}]},"name":"clean_up_bytearray_end_slots_bytes_storage","nativeSrc":"18606:542:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"18658:5:97","nodeType":"YulTypedName","src":"18658:5:97","type":""},{"name":"len","nativeSrc":"18665:3:97","nodeType":"YulTypedName","src":"18665:3:97","type":""},{"name":"startIndex","nativeSrc":"18670:10:97","nodeType":"YulTypedName","src":"18670:10:97","type":""}],"src":"18606:542:97"},{"body":{"nativeSrc":"19238:141:97","nodeType":"YulBlock","src":"19238:141:97","statements":[{"nativeSrc":"19248:125:97","nodeType":"YulAssignment","src":"19248:125:97","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"19263:4:97","nodeType":"YulIdentifier","src":"19263:4:97"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"19281:1:97","nodeType":"YulLiteral","src":"19281:1:97","type":"","value":"3"},{"name":"len","nativeSrc":"19284:3:97","nodeType":"YulIdentifier","src":"19284:3:97"}],"functionName":{"name":"shl","nativeSrc":"19277:3:97","nodeType":"YulIdentifier","src":"19277:3:97"},"nativeSrc":"19277:11:97","nodeType":"YulFunctionCall","src":"19277:11:97"},{"kind":"number","nativeSrc":"19290:66:97","nodeType":"YulLiteral","src":"19290:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shr","nativeSrc":"19273:3:97","nodeType":"YulIdentifier","src":"19273:3:97"},"nativeSrc":"19273:84:97","nodeType":"YulFunctionCall","src":"19273:84:97"}],"functionName":{"name":"not","nativeSrc":"19269:3:97","nodeType":"YulIdentifier","src":"19269:3:97"},"nativeSrc":"19269:89:97","nodeType":"YulFunctionCall","src":"19269:89:97"}],"functionName":{"name":"and","nativeSrc":"19259:3:97","nodeType":"YulIdentifier","src":"19259:3:97"},"nativeSrc":"19259:100:97","nodeType":"YulFunctionCall","src":"19259:100:97"},{"arguments":[{"kind":"number","nativeSrc":"19365:1:97","nodeType":"YulLiteral","src":"19365:1:97","type":"","value":"1"},{"name":"len","nativeSrc":"19368:3:97","nodeType":"YulIdentifier","src":"19368:3:97"}],"functionName":{"name":"shl","nativeSrc":"19361:3:97","nodeType":"YulIdentifier","src":"19361:3:97"},"nativeSrc":"19361:11:97","nodeType":"YulFunctionCall","src":"19361:11:97"}],"functionName":{"name":"or","nativeSrc":"19256:2:97","nodeType":"YulIdentifier","src":"19256:2:97"},"nativeSrc":"19256:117:97","nodeType":"YulFunctionCall","src":"19256:117:97"},"variableNames":[{"name":"used","nativeSrc":"19248:4:97","nodeType":"YulIdentifier","src":"19248:4:97"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"19153:226:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"19215:4:97","nodeType":"YulTypedName","src":"19215:4:97","type":""},{"name":"len","nativeSrc":"19221:3:97","nodeType":"YulTypedName","src":"19221:3:97","type":""}],"returnVariables":[{"name":"used","nativeSrc":"19229:4:97","nodeType":"YulTypedName","src":"19229:4:97","type":""}],"src":"19153:226:97"},{"body":{"nativeSrc":"19478:1367:97","nodeType":"YulBlock","src":"19478:1367:97","statements":[{"nativeSrc":"19488:24:97","nodeType":"YulVariableDeclaration","src":"19488:24:97","value":{"arguments":[{"name":"src","nativeSrc":"19508:3:97","nodeType":"YulIdentifier","src":"19508:3:97"}],"functionName":{"name":"mload","nativeSrc":"19502:5:97","nodeType":"YulIdentifier","src":"19502:5:97"},"nativeSrc":"19502:10:97","nodeType":"YulFunctionCall","src":"19502:10:97"},"variables":[{"name":"newLen","nativeSrc":"19492:6:97","nodeType":"YulTypedName","src":"19492:6:97","type":""}]},{"body":{"nativeSrc":"19555:22:97","nodeType":"YulBlock","src":"19555:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"19557:16:97","nodeType":"YulIdentifier","src":"19557:16:97"},"nativeSrc":"19557:18:97","nodeType":"YulFunctionCall","src":"19557:18:97"},"nativeSrc":"19557:18:97","nodeType":"YulExpressionStatement","src":"19557:18:97"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"19527:6:97","nodeType":"YulIdentifier","src":"19527:6:97"},{"kind":"number","nativeSrc":"19535:18:97","nodeType":"YulLiteral","src":"19535:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"19524:2:97","nodeType":"YulIdentifier","src":"19524:2:97"},"nativeSrc":"19524:30:97","nodeType":"YulFunctionCall","src":"19524:30:97"},"nativeSrc":"19521:56:97","nodeType":"YulIf","src":"19521:56:97"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"19629:4:97","nodeType":"YulIdentifier","src":"19629:4:97"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"19667:4:97","nodeType":"YulIdentifier","src":"19667:4:97"}],"functionName":{"name":"sload","nativeSrc":"19661:5:97","nodeType":"YulIdentifier","src":"19661:5:97"},"nativeSrc":"19661:11:97","nodeType":"YulFunctionCall","src":"19661:11:97"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"19635:25:97","nodeType":"YulIdentifier","src":"19635:25:97"},"nativeSrc":"19635:38:97","nodeType":"YulFunctionCall","src":"19635:38:97"},{"name":"newLen","nativeSrc":"19675:6:97","nodeType":"YulIdentifier","src":"19675:6:97"}],"functionName":{"name":"clean_up_bytearray_end_slots_bytes_storage","nativeSrc":"19586:42:97","nodeType":"YulIdentifier","src":"19586:42:97"},"nativeSrc":"19586:96:97","nodeType":"YulFunctionCall","src":"19586:96:97"},"nativeSrc":"19586:96:97","nodeType":"YulExpressionStatement","src":"19586:96:97"},{"nativeSrc":"19691:18:97","nodeType":"YulVariableDeclaration","src":"19691:18:97","value":{"kind":"number","nativeSrc":"19708:1:97","nodeType":"YulLiteral","src":"19708:1:97","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"19695:9:97","nodeType":"YulTypedName","src":"19695:9:97","type":""}]},{"nativeSrc":"19718:23:97","nodeType":"YulVariableDeclaration","src":"19718:23:97","value":{"kind":"number","nativeSrc":"19737:4:97","nodeType":"YulLiteral","src":"19737:4:97","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nativeSrc":"19722:11:97","nodeType":"YulTypedName","src":"19722:11:97","type":""}]},{"nativeSrc":"19750:17:97","nodeType":"YulAssignment","src":"19750:17:97","value":{"kind":"number","nativeSrc":"19763:4:97","nodeType":"YulLiteral","src":"19763:4:97","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"19750:9:97","nodeType":"YulIdentifier","src":"19750:9:97"}]},{"cases":[{"body":{"nativeSrc":"19813:775:97","nodeType":"YulBlock","src":"19813:775:97","statements":[{"nativeSrc":"19827:94:97","nodeType":"YulVariableDeclaration","src":"19827:94:97","value":{"arguments":[{"name":"newLen","nativeSrc":"19846:6:97","nodeType":"YulIdentifier","src":"19846:6:97"},{"kind":"number","nativeSrc":"19854:66:97","nodeType":"YulLiteral","src":"19854:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"19842:3:97","nodeType":"YulIdentifier","src":"19842:3:97"},"nativeSrc":"19842:79:97","nodeType":"YulFunctionCall","src":"19842:79:97"},"variables":[{"name":"loopEnd","nativeSrc":"19831:7:97","nodeType":"YulTypedName","src":"19831:7:97","type":""}]},{"nativeSrc":"19934:49:97","nodeType":"YulVariableDeclaration","src":"19934:49:97","value":{"arguments":[{"name":"slot","nativeSrc":"19978:4:97","nodeType":"YulIdentifier","src":"19978:4:97"}],"functionName":{"name":"array_dataslot_string_storage","nativeSrc":"19948:29:97","nodeType":"YulIdentifier","src":"19948:29:97"},"nativeSrc":"19948:35:97","nodeType":"YulFunctionCall","src":"19948:35:97"},"variables":[{"name":"dstPtr","nativeSrc":"19938:6:97","nodeType":"YulTypedName","src":"19938:6:97","type":""}]},{"nativeSrc":"19996:10:97","nodeType":"YulVariableDeclaration","src":"19996:10:97","value":{"kind":"number","nativeSrc":"20005:1:97","nodeType":"YulLiteral","src":"20005:1:97","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"20000:1:97","nodeType":"YulTypedName","src":"20000:1:97","type":""}]},{"body":{"nativeSrc":"20083:172:97","nodeType":"YulBlock","src":"20083:172:97","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"20108:6:97","nodeType":"YulIdentifier","src":"20108:6:97"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"20126:3:97","nodeType":"YulIdentifier","src":"20126:3:97"},{"name":"srcOffset","nativeSrc":"20131:9:97","nodeType":"YulIdentifier","src":"20131:9:97"}],"functionName":{"name":"add","nativeSrc":"20122:3:97","nodeType":"YulIdentifier","src":"20122:3:97"},"nativeSrc":"20122:19:97","nodeType":"YulFunctionCall","src":"20122:19:97"}],"functionName":{"name":"mload","nativeSrc":"20116:5:97","nodeType":"YulIdentifier","src":"20116:5:97"},"nativeSrc":"20116:26:97","nodeType":"YulFunctionCall","src":"20116:26:97"}],"functionName":{"name":"sstore","nativeSrc":"20101:6:97","nodeType":"YulIdentifier","src":"20101:6:97"},"nativeSrc":"20101:42:97","nodeType":"YulFunctionCall","src":"20101:42:97"},"nativeSrc":"20101:42:97","nodeType":"YulExpressionStatement","src":"20101:42:97"},{"nativeSrc":"20160:24:97","nodeType":"YulAssignment","src":"20160:24:97","value":{"arguments":[{"name":"dstPtr","nativeSrc":"20174:6:97","nodeType":"YulIdentifier","src":"20174:6:97"},{"kind":"number","nativeSrc":"20182:1:97","nodeType":"YulLiteral","src":"20182:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"20170:3:97","nodeType":"YulIdentifier","src":"20170:3:97"},"nativeSrc":"20170:14:97","nodeType":"YulFunctionCall","src":"20170:14:97"},"variableNames":[{"name":"dstPtr","nativeSrc":"20160:6:97","nodeType":"YulIdentifier","src":"20160:6:97"}]},{"nativeSrc":"20201:40:97","nodeType":"YulAssignment","src":"20201:40:97","value":{"arguments":[{"name":"srcOffset","nativeSrc":"20218:9:97","nodeType":"YulIdentifier","src":"20218:9:97"},{"name":"srcOffset_1","nativeSrc":"20229:11:97","nodeType":"YulIdentifier","src":"20229:11:97"}],"functionName":{"name":"add","nativeSrc":"20214:3:97","nodeType":"YulIdentifier","src":"20214:3:97"},"nativeSrc":"20214:27:97","nodeType":"YulFunctionCall","src":"20214:27:97"},"variableNames":[{"name":"srcOffset","nativeSrc":"20201:9:97","nodeType":"YulIdentifier","src":"20201:9:97"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"20030:1:97","nodeType":"YulIdentifier","src":"20030:1:97"},{"name":"loopEnd","nativeSrc":"20033:7:97","nodeType":"YulIdentifier","src":"20033:7:97"}],"functionName":{"name":"lt","nativeSrc":"20027:2:97","nodeType":"YulIdentifier","src":"20027:2:97"},"nativeSrc":"20027:14:97","nodeType":"YulFunctionCall","src":"20027:14:97"},"nativeSrc":"20019:236:97","nodeType":"YulForLoop","post":{"nativeSrc":"20042:28:97","nodeType":"YulBlock","src":"20042:28:97","statements":[{"nativeSrc":"20044:24:97","nodeType":"YulAssignment","src":"20044:24:97","value":{"arguments":[{"name":"i","nativeSrc":"20053:1:97","nodeType":"YulIdentifier","src":"20053:1:97"},{"name":"srcOffset_1","nativeSrc":"20056:11:97","nodeType":"YulIdentifier","src":"20056:11:97"}],"functionName":{"name":"add","nativeSrc":"20049:3:97","nodeType":"YulIdentifier","src":"20049:3:97"},"nativeSrc":"20049:19:97","nodeType":"YulFunctionCall","src":"20049:19:97"},"variableNames":[{"name":"i","nativeSrc":"20044:1:97","nodeType":"YulIdentifier","src":"20044:1:97"}]}]},"pre":{"nativeSrc":"20023:3:97","nodeType":"YulBlock","src":"20023:3:97","statements":[]},"src":"20019:236:97"},{"body":{"nativeSrc":"20303:226:97","nodeType":"YulBlock","src":"20303:226:97","statements":[{"nativeSrc":"20321:43:97","nodeType":"YulVariableDeclaration","src":"20321:43:97","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"20348:3:97","nodeType":"YulIdentifier","src":"20348:3:97"},{"name":"srcOffset","nativeSrc":"20353:9:97","nodeType":"YulIdentifier","src":"20353:9:97"}],"functionName":{"name":"add","nativeSrc":"20344:3:97","nodeType":"YulIdentifier","src":"20344:3:97"},"nativeSrc":"20344:19:97","nodeType":"YulFunctionCall","src":"20344:19:97"}],"functionName":{"name":"mload","nativeSrc":"20338:5:97","nodeType":"YulIdentifier","src":"20338:5:97"},"nativeSrc":"20338:26:97","nodeType":"YulFunctionCall","src":"20338:26:97"},"variables":[{"name":"lastValue","nativeSrc":"20325:9:97","nodeType":"YulTypedName","src":"20325:9:97","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"20388:6:97","nodeType":"YulIdentifier","src":"20388:6:97"},{"arguments":[{"name":"lastValue","nativeSrc":"20400:9:97","nodeType":"YulIdentifier","src":"20400:9:97"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"20427:1:97","nodeType":"YulLiteral","src":"20427:1:97","type":"","value":"3"},{"name":"newLen","nativeSrc":"20430:6:97","nodeType":"YulIdentifier","src":"20430:6:97"}],"functionName":{"name":"shl","nativeSrc":"20423:3:97","nodeType":"YulIdentifier","src":"20423:3:97"},"nativeSrc":"20423:14:97","nodeType":"YulFunctionCall","src":"20423:14:97"},{"kind":"number","nativeSrc":"20439:3:97","nodeType":"YulLiteral","src":"20439:3:97","type":"","value":"248"}],"functionName":{"name":"and","nativeSrc":"20419:3:97","nodeType":"YulIdentifier","src":"20419:3:97"},"nativeSrc":"20419:24:97","nodeType":"YulFunctionCall","src":"20419:24:97"},{"kind":"number","nativeSrc":"20445:66:97","nodeType":"YulLiteral","src":"20445:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shr","nativeSrc":"20415:3:97","nodeType":"YulIdentifier","src":"20415:3:97"},"nativeSrc":"20415:97:97","nodeType":"YulFunctionCall","src":"20415:97:97"}],"functionName":{"name":"not","nativeSrc":"20411:3:97","nodeType":"YulIdentifier","src":"20411:3:97"},"nativeSrc":"20411:102:97","nodeType":"YulFunctionCall","src":"20411:102:97"}],"functionName":{"name":"and","nativeSrc":"20396:3:97","nodeType":"YulIdentifier","src":"20396:3:97"},"nativeSrc":"20396:118:97","nodeType":"YulFunctionCall","src":"20396:118:97"}],"functionName":{"name":"sstore","nativeSrc":"20381:6:97","nodeType":"YulIdentifier","src":"20381:6:97"},"nativeSrc":"20381:134:97","nodeType":"YulFunctionCall","src":"20381:134:97"},"nativeSrc":"20381:134:97","nodeType":"YulExpressionStatement","src":"20381:134:97"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"20274:7:97","nodeType":"YulIdentifier","src":"20274:7:97"},{"name":"newLen","nativeSrc":"20283:6:97","nodeType":"YulIdentifier","src":"20283:6:97"}],"functionName":{"name":"lt","nativeSrc":"20271:2:97","nodeType":"YulIdentifier","src":"20271:2:97"},"nativeSrc":"20271:19:97","nodeType":"YulFunctionCall","src":"20271:19:97"},"nativeSrc":"20268:261:97","nodeType":"YulIf","src":"20268:261:97"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"20549:4:97","nodeType":"YulIdentifier","src":"20549:4:97"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"20563:1:97","nodeType":"YulLiteral","src":"20563:1:97","type":"","value":"1"},{"name":"newLen","nativeSrc":"20566:6:97","nodeType":"YulIdentifier","src":"20566:6:97"}],"functionName":{"name":"shl","nativeSrc":"20559:3:97","nodeType":"YulIdentifier","src":"20559:3:97"},"nativeSrc":"20559:14:97","nodeType":"YulFunctionCall","src":"20559:14:97"},{"kind":"number","nativeSrc":"20575:1:97","nodeType":"YulLiteral","src":"20575:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"20555:3:97","nodeType":"YulIdentifier","src":"20555:3:97"},"nativeSrc":"20555:22:97","nodeType":"YulFunctionCall","src":"20555:22:97"}],"functionName":{"name":"sstore","nativeSrc":"20542:6:97","nodeType":"YulIdentifier","src":"20542:6:97"},"nativeSrc":"20542:36:97","nodeType":"YulFunctionCall","src":"20542:36:97"},"nativeSrc":"20542:36:97","nodeType":"YulExpressionStatement","src":"20542:36:97"}]},"nativeSrc":"19806:782:97","nodeType":"YulCase","src":"19806:782:97","value":{"kind":"number","nativeSrc":"19811:1:97","nodeType":"YulLiteral","src":"19811:1:97","type":"","value":"1"}},{"body":{"nativeSrc":"20605:234:97","nodeType":"YulBlock","src":"20605:234:97","statements":[{"nativeSrc":"20619:14:97","nodeType":"YulVariableDeclaration","src":"20619:14:97","value":{"kind":"number","nativeSrc":"20632:1:97","nodeType":"YulLiteral","src":"20632:1:97","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"20623:5:97","nodeType":"YulTypedName","src":"20623:5:97","type":""}]},{"body":{"nativeSrc":"20668:67:97","nodeType":"YulBlock","src":"20668:67:97","statements":[{"nativeSrc":"20686:35:97","nodeType":"YulAssignment","src":"20686:35:97","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"20705:3:97","nodeType":"YulIdentifier","src":"20705:3:97"},{"name":"srcOffset","nativeSrc":"20710:9:97","nodeType":"YulIdentifier","src":"20710:9:97"}],"functionName":{"name":"add","nativeSrc":"20701:3:97","nodeType":"YulIdentifier","src":"20701:3:97"},"nativeSrc":"20701:19:97","nodeType":"YulFunctionCall","src":"20701:19:97"}],"functionName":{"name":"mload","nativeSrc":"20695:5:97","nodeType":"YulIdentifier","src":"20695:5:97"},"nativeSrc":"20695:26:97","nodeType":"YulFunctionCall","src":"20695:26:97"},"variableNames":[{"name":"value","nativeSrc":"20686:5:97","nodeType":"YulIdentifier","src":"20686:5:97"}]}]},"condition":{"name":"newLen","nativeSrc":"20649:6:97","nodeType":"YulIdentifier","src":"20649:6:97"},"nativeSrc":"20646:89:97","nodeType":"YulIf","src":"20646:89:97"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"20755:4:97","nodeType":"YulIdentifier","src":"20755:4:97"},{"arguments":[{"name":"value","nativeSrc":"20814:5:97","nodeType":"YulIdentifier","src":"20814:5:97"},{"name":"newLen","nativeSrc":"20821:6:97","nodeType":"YulIdentifier","src":"20821:6:97"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"20761:52:97","nodeType":"YulIdentifier","src":"20761:52:97"},"nativeSrc":"20761:67:97","nodeType":"YulFunctionCall","src":"20761:67:97"}],"functionName":{"name":"sstore","nativeSrc":"20748:6:97","nodeType":"YulIdentifier","src":"20748:6:97"},"nativeSrc":"20748:81:97","nodeType":"YulFunctionCall","src":"20748:81:97"},"nativeSrc":"20748:81:97","nodeType":"YulExpressionStatement","src":"20748:81:97"}]},"nativeSrc":"20597:242:97","nodeType":"YulCase","src":"20597:242:97","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"19786:6:97","nodeType":"YulIdentifier","src":"19786:6:97"},{"kind":"number","nativeSrc":"19794:2:97","nodeType":"YulLiteral","src":"19794:2:97","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"19783:2:97","nodeType":"YulIdentifier","src":"19783:2:97"},"nativeSrc":"19783:14:97","nodeType":"YulFunctionCall","src":"19783:14:97"},"nativeSrc":"19776:1063:97","nodeType":"YulSwitch","src":"19776:1063:97"}]},"name":"copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage","nativeSrc":"19384:1461:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"19463:4:97","nodeType":"YulTypedName","src":"19463:4:97","type":""},{"name":"src","nativeSrc":"19469:3:97","nodeType":"YulTypedName","src":"19469:3:97","type":""}],"src":"19384:1461:97"},{"body":{"nativeSrc":"21059:289:97","nodeType":"YulBlock","src":"21059:289:97","statements":[{"nativeSrc":"21069:16:97","nodeType":"YulVariableDeclaration","src":"21069:16:97","value":{"kind":"number","nativeSrc":"21079:6:97","nodeType":"YulLiteral","src":"21079:6:97","type":"","value":"0xffff"},"variables":[{"name":"_1","nativeSrc":"21073:2:97","nodeType":"YulTypedName","src":"21073:2:97","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"21101:9:97","nodeType":"YulIdentifier","src":"21101:9:97"},{"arguments":[{"name":"value0","nativeSrc":"21116:6:97","nodeType":"YulIdentifier","src":"21116:6:97"},{"name":"_1","nativeSrc":"21124:2:97","nodeType":"YulIdentifier","src":"21124:2:97"}],"functionName":{"name":"and","nativeSrc":"21112:3:97","nodeType":"YulIdentifier","src":"21112:3:97"},"nativeSrc":"21112:15:97","nodeType":"YulFunctionCall","src":"21112:15:97"}],"functionName":{"name":"mstore","nativeSrc":"21094:6:97","nodeType":"YulIdentifier","src":"21094:6:97"},"nativeSrc":"21094:34:97","nodeType":"YulFunctionCall","src":"21094:34:97"},"nativeSrc":"21094:34:97","nodeType":"YulExpressionStatement","src":"21094:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21148:9:97","nodeType":"YulIdentifier","src":"21148:9:97"},{"kind":"number","nativeSrc":"21159:2:97","nodeType":"YulLiteral","src":"21159:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21144:3:97","nodeType":"YulIdentifier","src":"21144:3:97"},"nativeSrc":"21144:18:97","nodeType":"YulFunctionCall","src":"21144:18:97"},{"arguments":[{"name":"value1","nativeSrc":"21168:6:97","nodeType":"YulIdentifier","src":"21168:6:97"},{"name":"_1","nativeSrc":"21176:2:97","nodeType":"YulIdentifier","src":"21176:2:97"}],"functionName":{"name":"and","nativeSrc":"21164:3:97","nodeType":"YulIdentifier","src":"21164:3:97"},"nativeSrc":"21164:15:97","nodeType":"YulFunctionCall","src":"21164:15:97"}],"functionName":{"name":"mstore","nativeSrc":"21137:6:97","nodeType":"YulIdentifier","src":"21137:6:97"},"nativeSrc":"21137:43:97","nodeType":"YulFunctionCall","src":"21137:43:97"},"nativeSrc":"21137:43:97","nodeType":"YulExpressionStatement","src":"21137:43:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21200:9:97","nodeType":"YulIdentifier","src":"21200:9:97"},{"kind":"number","nativeSrc":"21211:2:97","nodeType":"YulLiteral","src":"21211:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"21196:3:97","nodeType":"YulIdentifier","src":"21196:3:97"},"nativeSrc":"21196:18:97","nodeType":"YulFunctionCall","src":"21196:18:97"},{"name":"value2","nativeSrc":"21216:6:97","nodeType":"YulIdentifier","src":"21216:6:97"}],"functionName":{"name":"mstore","nativeSrc":"21189:6:97","nodeType":"YulIdentifier","src":"21189:6:97"},"nativeSrc":"21189:34:97","nodeType":"YulFunctionCall","src":"21189:34:97"},"nativeSrc":"21189:34:97","nodeType":"YulExpressionStatement","src":"21189:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21243:9:97","nodeType":"YulIdentifier","src":"21243:9:97"},{"kind":"number","nativeSrc":"21254:2:97","nodeType":"YulLiteral","src":"21254:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"21239:3:97","nodeType":"YulIdentifier","src":"21239:3:97"},"nativeSrc":"21239:18:97","nodeType":"YulFunctionCall","src":"21239:18:97"},{"kind":"number","nativeSrc":"21259:3:97","nodeType":"YulLiteral","src":"21259:3:97","type":"","value":"128"}],"functionName":{"name":"mstore","nativeSrc":"21232:6:97","nodeType":"YulIdentifier","src":"21232:6:97"},"nativeSrc":"21232:31:97","nodeType":"YulFunctionCall","src":"21232:31:97"},"nativeSrc":"21232:31:97","nodeType":"YulExpressionStatement","src":"21232:31:97"},{"nativeSrc":"21272:70:97","nodeType":"YulAssignment","src":"21272:70:97","value":{"arguments":[{"name":"value3","nativeSrc":"21306:6:97","nodeType":"YulIdentifier","src":"21306:6:97"},{"name":"value4","nativeSrc":"21314:6:97","nodeType":"YulIdentifier","src":"21314:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"21326:9:97","nodeType":"YulIdentifier","src":"21326:9:97"},{"kind":"number","nativeSrc":"21337:3:97","nodeType":"YulLiteral","src":"21337:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"21322:3:97","nodeType":"YulIdentifier","src":"21322:3:97"},"nativeSrc":"21322:19:97","nodeType":"YulFunctionCall","src":"21322:19:97"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"21280:25:97","nodeType":"YulIdentifier","src":"21280:25:97"},"nativeSrc":"21280:62:97","nodeType":"YulFunctionCall","src":"21280:62:97"},"variableNames":[{"name":"tail","nativeSrc":"21272:4:97","nodeType":"YulIdentifier","src":"21272:4:97"}]}]},"name":"abi_encode_tuple_t_uint16_t_uint16_t_uint256_t_bytes_calldata_ptr__to_t_uint16_t_uint16_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"20850:498:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20996:9:97","nodeType":"YulTypedName","src":"20996:9:97","type":""},{"name":"value4","nativeSrc":"21007:6:97","nodeType":"YulTypedName","src":"21007:6:97","type":""},{"name":"value3","nativeSrc":"21015:6:97","nodeType":"YulTypedName","src":"21015:6:97","type":""},{"name":"value2","nativeSrc":"21023:6:97","nodeType":"YulTypedName","src":"21023:6:97","type":""},{"name":"value1","nativeSrc":"21031:6:97","nodeType":"YulTypedName","src":"21031:6:97","type":""},{"name":"value0","nativeSrc":"21039:6:97","nodeType":"YulTypedName","src":"21039:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"21050:4:97","nodeType":"YulTypedName","src":"21050:4:97","type":""}],"src":"20850:498:97"},{"body":{"nativeSrc":"21487:765:97","nodeType":"YulBlock","src":"21487:765:97","statements":[{"nativeSrc":"21497:12:97","nodeType":"YulVariableDeclaration","src":"21497:12:97","value":{"kind":"number","nativeSrc":"21508:1:97","nodeType":"YulLiteral","src":"21508:1:97","type":"","value":"0"},"variables":[{"name":"ret","nativeSrc":"21501:3:97","nodeType":"YulTypedName","src":"21501:3:97","type":""}]},{"nativeSrc":"21518:30:97","nodeType":"YulVariableDeclaration","src":"21518:30:97","value":{"arguments":[{"name":"value0","nativeSrc":"21541:6:97","nodeType":"YulIdentifier","src":"21541:6:97"}],"functionName":{"name":"sload","nativeSrc":"21535:5:97","nodeType":"YulIdentifier","src":"21535:5:97"},"nativeSrc":"21535:13:97","nodeType":"YulFunctionCall","src":"21535:13:97"},"variables":[{"name":"slotValue","nativeSrc":"21522:9:97","nodeType":"YulTypedName","src":"21522:9:97","type":""}]},{"nativeSrc":"21557:50:97","nodeType":"YulVariableDeclaration","src":"21557:50:97","value":{"arguments":[{"name":"slotValue","nativeSrc":"21597:9:97","nodeType":"YulIdentifier","src":"21597:9:97"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"21571:25:97","nodeType":"YulIdentifier","src":"21571:25:97"},"nativeSrc":"21571:36:97","nodeType":"YulFunctionCall","src":"21571:36:97"},"variables":[{"name":"length","nativeSrc":"21561:6:97","nodeType":"YulTypedName","src":"21561:6:97","type":""}]},{"nativeSrc":"21616:11:97","nodeType":"YulVariableDeclaration","src":"21616:11:97","value":{"kind":"number","nativeSrc":"21626:1:97","nodeType":"YulLiteral","src":"21626:1:97","type":"","value":"1"},"variables":[{"name":"_1","nativeSrc":"21620:2:97","nodeType":"YulTypedName","src":"21620:2:97","type":""}]},{"cases":[{"body":{"nativeSrc":"21676:184:97","nodeType":"YulBlock","src":"21676:184:97","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"21697:3:97","nodeType":"YulIdentifier","src":"21697:3:97"},{"arguments":[{"name":"slotValue","nativeSrc":"21706:9:97","nodeType":"YulIdentifier","src":"21706:9:97"},{"kind":"number","nativeSrc":"21717:66:97","nodeType":"YulLiteral","src":"21717:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00"}],"functionName":{"name":"and","nativeSrc":"21702:3:97","nodeType":"YulIdentifier","src":"21702:3:97"},"nativeSrc":"21702:82:97","nodeType":"YulFunctionCall","src":"21702:82:97"}],"functionName":{"name":"mstore","nativeSrc":"21690:6:97","nodeType":"YulIdentifier","src":"21690:6:97"},"nativeSrc":"21690:95:97","nodeType":"YulFunctionCall","src":"21690:95:97"},"nativeSrc":"21690:95:97","nodeType":"YulExpressionStatement","src":"21690:95:97"},{"nativeSrc":"21798:52:97","nodeType":"YulAssignment","src":"21798:52:97","value":{"arguments":[{"name":"pos","nativeSrc":"21809:3:97","nodeType":"YulIdentifier","src":"21809:3:97"},{"arguments":[{"name":"length","nativeSrc":"21818:6:97","nodeType":"YulIdentifier","src":"21818:6:97"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"21840:6:97","nodeType":"YulIdentifier","src":"21840:6:97"}],"functionName":{"name":"iszero","nativeSrc":"21833:6:97","nodeType":"YulIdentifier","src":"21833:6:97"},"nativeSrc":"21833:14:97","nodeType":"YulFunctionCall","src":"21833:14:97"}],"functionName":{"name":"iszero","nativeSrc":"21826:6:97","nodeType":"YulIdentifier","src":"21826:6:97"},"nativeSrc":"21826:22:97","nodeType":"YulFunctionCall","src":"21826:22:97"}],"functionName":{"name":"mul","nativeSrc":"21814:3:97","nodeType":"YulIdentifier","src":"21814:3:97"},"nativeSrc":"21814:35:97","nodeType":"YulFunctionCall","src":"21814:35:97"}],"functionName":{"name":"add","nativeSrc":"21805:3:97","nodeType":"YulIdentifier","src":"21805:3:97"},"nativeSrc":"21805:45:97","nodeType":"YulFunctionCall","src":"21805:45:97"},"variableNames":[{"name":"ret","nativeSrc":"21798:3:97","nodeType":"YulIdentifier","src":"21798:3:97"}]}]},"nativeSrc":"21669:191:97","nodeType":"YulCase","src":"21669:191:97","value":{"kind":"number","nativeSrc":"21674:1:97","nodeType":"YulLiteral","src":"21674:1:97","type":"","value":"0"}},{"body":{"nativeSrc":"21876:351:97","nodeType":"YulBlock","src":"21876:351:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"21897:1:97","nodeType":"YulLiteral","src":"21897:1:97","type":"","value":"0"},{"name":"value0","nativeSrc":"21900:6:97","nodeType":"YulIdentifier","src":"21900:6:97"}],"functionName":{"name":"mstore","nativeSrc":"21890:6:97","nodeType":"YulIdentifier","src":"21890:6:97"},"nativeSrc":"21890:17:97","nodeType":"YulFunctionCall","src":"21890:17:97"},"nativeSrc":"21890:17:97","nodeType":"YulExpressionStatement","src":"21890:17:97"},{"nativeSrc":"21920:14:97","nodeType":"YulVariableDeclaration","src":"21920:14:97","value":{"kind":"number","nativeSrc":"21930:4:97","nodeType":"YulLiteral","src":"21930:4:97","type":"","value":"0x20"},"variables":[{"name":"_2","nativeSrc":"21924:2:97","nodeType":"YulTypedName","src":"21924:2:97","type":""}]},{"nativeSrc":"21947:33:97","nodeType":"YulVariableDeclaration","src":"21947:33:97","value":{"arguments":[{"kind":"number","nativeSrc":"21972:1:97","nodeType":"YulLiteral","src":"21972:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"21975:4:97","nodeType":"YulLiteral","src":"21975:4:97","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"21962:9:97","nodeType":"YulIdentifier","src":"21962:9:97"},"nativeSrc":"21962:18:97","nodeType":"YulFunctionCall","src":"21962:18:97"},"variables":[{"name":"dataPos","nativeSrc":"21951:7:97","nodeType":"YulTypedName","src":"21951:7:97","type":""}]},{"nativeSrc":"21993:10:97","nodeType":"YulVariableDeclaration","src":"21993:10:97","value":{"kind":"number","nativeSrc":"22002:1:97","nodeType":"YulLiteral","src":"22002:1:97","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"21997:1:97","nodeType":"YulTypedName","src":"21997:1:97","type":""}]},{"body":{"nativeSrc":"22070:111:97","nodeType":"YulBlock","src":"22070:111:97","statements":[{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"22099:3:97","nodeType":"YulIdentifier","src":"22099:3:97"},{"name":"i","nativeSrc":"22104:1:97","nodeType":"YulIdentifier","src":"22104:1:97"}],"functionName":{"name":"add","nativeSrc":"22095:3:97","nodeType":"YulIdentifier","src":"22095:3:97"},"nativeSrc":"22095:11:97","nodeType":"YulFunctionCall","src":"22095:11:97"},{"arguments":[{"name":"dataPos","nativeSrc":"22114:7:97","nodeType":"YulIdentifier","src":"22114:7:97"}],"functionName":{"name":"sload","nativeSrc":"22108:5:97","nodeType":"YulIdentifier","src":"22108:5:97"},"nativeSrc":"22108:14:97","nodeType":"YulFunctionCall","src":"22108:14:97"}],"functionName":{"name":"mstore","nativeSrc":"22088:6:97","nodeType":"YulIdentifier","src":"22088:6:97"},"nativeSrc":"22088:35:97","nodeType":"YulFunctionCall","src":"22088:35:97"},"nativeSrc":"22088:35:97","nodeType":"YulExpressionStatement","src":"22088:35:97"},{"nativeSrc":"22140:27:97","nodeType":"YulAssignment","src":"22140:27:97","value":{"arguments":[{"name":"dataPos","nativeSrc":"22155:7:97","nodeType":"YulIdentifier","src":"22155:7:97"},{"name":"_1","nativeSrc":"22164:2:97","nodeType":"YulIdentifier","src":"22164:2:97"}],"functionName":{"name":"add","nativeSrc":"22151:3:97","nodeType":"YulIdentifier","src":"22151:3:97"},"nativeSrc":"22151:16:97","nodeType":"YulFunctionCall","src":"22151:16:97"},"variableNames":[{"name":"dataPos","nativeSrc":"22140:7:97","nodeType":"YulIdentifier","src":"22140:7:97"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"22027:1:97","nodeType":"YulIdentifier","src":"22027:1:97"},{"name":"length","nativeSrc":"22030:6:97","nodeType":"YulIdentifier","src":"22030:6:97"}],"functionName":{"name":"lt","nativeSrc":"22024:2:97","nodeType":"YulIdentifier","src":"22024:2:97"},"nativeSrc":"22024:13:97","nodeType":"YulFunctionCall","src":"22024:13:97"},"nativeSrc":"22016:165:97","nodeType":"YulForLoop","post":{"nativeSrc":"22038:19:97","nodeType":"YulBlock","src":"22038:19:97","statements":[{"nativeSrc":"22040:15:97","nodeType":"YulAssignment","src":"22040:15:97","value":{"arguments":[{"name":"i","nativeSrc":"22049:1:97","nodeType":"YulIdentifier","src":"22049:1:97"},{"name":"_2","nativeSrc":"22052:2:97","nodeType":"YulIdentifier","src":"22052:2:97"}],"functionName":{"name":"add","nativeSrc":"22045:3:97","nodeType":"YulIdentifier","src":"22045:3:97"},"nativeSrc":"22045:10:97","nodeType":"YulFunctionCall","src":"22045:10:97"},"variableNames":[{"name":"i","nativeSrc":"22040:1:97","nodeType":"YulIdentifier","src":"22040:1:97"}]}]},"pre":{"nativeSrc":"22020:3:97","nodeType":"YulBlock","src":"22020:3:97","statements":[]},"src":"22016:165:97"},{"nativeSrc":"22194:23:97","nodeType":"YulAssignment","src":"22194:23:97","value":{"arguments":[{"name":"pos","nativeSrc":"22205:3:97","nodeType":"YulIdentifier","src":"22205:3:97"},{"name":"length","nativeSrc":"22210:6:97","nodeType":"YulIdentifier","src":"22210:6:97"}],"functionName":{"name":"add","nativeSrc":"22201:3:97","nodeType":"YulIdentifier","src":"22201:3:97"},"nativeSrc":"22201:16:97","nodeType":"YulFunctionCall","src":"22201:16:97"},"variableNames":[{"name":"ret","nativeSrc":"22194:3:97","nodeType":"YulIdentifier","src":"22194:3:97"}]}]},"nativeSrc":"21869:358:97","nodeType":"YulCase","src":"21869:358:97","value":{"kind":"number","nativeSrc":"21874:1:97","nodeType":"YulLiteral","src":"21874:1:97","type":"","value":"1"}}],"expression":{"arguments":[{"name":"slotValue","nativeSrc":"21647:9:97","nodeType":"YulIdentifier","src":"21647:9:97"},{"kind":"number","nativeSrc":"21658:1:97","nodeType":"YulLiteral","src":"21658:1:97","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"21643:3:97","nodeType":"YulIdentifier","src":"21643:3:97"},"nativeSrc":"21643:17:97","nodeType":"YulFunctionCall","src":"21643:17:97"},"nativeSrc":"21636:591:97","nodeType":"YulSwitch","src":"21636:591:97"},{"nativeSrc":"22236:10:97","nodeType":"YulAssignment","src":"22236:10:97","value":{"name":"ret","nativeSrc":"22243:3:97","nodeType":"YulIdentifier","src":"22243:3:97"},"variableNames":[{"name":"end","nativeSrc":"22236:3:97","nodeType":"YulIdentifier","src":"22236:3:97"}]}]},"name":"abi_encode_tuple_packed_t_bytes_storage__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"21353:899:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"21463:3:97","nodeType":"YulTypedName","src":"21463:3:97","type":""},{"name":"value0","nativeSrc":"21468:6:97","nodeType":"YulTypedName","src":"21468:6:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"21479:3:97","nodeType":"YulTypedName","src":"21479:3:97","type":""}],"src":"21353:899:97"},{"body":{"nativeSrc":"22431:253:97","nodeType":"YulBlock","src":"22431:253:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"22448:9:97","nodeType":"YulIdentifier","src":"22448:9:97"},{"kind":"number","nativeSrc":"22459:2:97","nodeType":"YulLiteral","src":"22459:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"22441:6:97","nodeType":"YulIdentifier","src":"22441:6:97"},"nativeSrc":"22441:21:97","nodeType":"YulFunctionCall","src":"22441:21:97"},"nativeSrc":"22441:21:97","nodeType":"YulExpressionStatement","src":"22441:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22482:9:97","nodeType":"YulIdentifier","src":"22482:9:97"},{"kind":"number","nativeSrc":"22493:2:97","nodeType":"YulLiteral","src":"22493:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"22478:3:97","nodeType":"YulIdentifier","src":"22478:3:97"},"nativeSrc":"22478:18:97","nodeType":"YulFunctionCall","src":"22478:18:97"},{"kind":"number","nativeSrc":"22498:2:97","nodeType":"YulLiteral","src":"22498:2:97","type":"","value":"63"}],"functionName":{"name":"mstore","nativeSrc":"22471:6:97","nodeType":"YulIdentifier","src":"22471:6:97"},"nativeSrc":"22471:30:97","nodeType":"YulFunctionCall","src":"22471:30:97"},"nativeSrc":"22471:30:97","nodeType":"YulExpressionStatement","src":"22471:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22521:9:97","nodeType":"YulIdentifier","src":"22521:9:97"},{"kind":"number","nativeSrc":"22532:2:97","nodeType":"YulLiteral","src":"22532:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"22517:3:97","nodeType":"YulIdentifier","src":"22517:3:97"},"nativeSrc":"22517:18:97","nodeType":"YulFunctionCall","src":"22517:18:97"},{"hexValue":"4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a726574","kind":"string","nativeSrc":"22537:34:97","nodeType":"YulLiteral","src":"22537:34:97","type":"","value":"OmnichainGovernanceExecutor::ret"}],"functionName":{"name":"mstore","nativeSrc":"22510:6:97","nodeType":"YulIdentifier","src":"22510:6:97"},"nativeSrc":"22510:62:97","nodeType":"YulFunctionCall","src":"22510:62:97"},"nativeSrc":"22510:62:97","nodeType":"YulExpressionStatement","src":"22510:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22592:9:97","nodeType":"YulIdentifier","src":"22592:9:97"},{"kind":"number","nativeSrc":"22603:2:97","nodeType":"YulLiteral","src":"22603:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"22588:3:97","nodeType":"YulIdentifier","src":"22588:3:97"},"nativeSrc":"22588:18:97","nodeType":"YulFunctionCall","src":"22588:18:97"},{"hexValue":"72794d6573736167653a206e6f74206120747275737465642072656d6f7465","kind":"string","nativeSrc":"22608:33:97","nodeType":"YulLiteral","src":"22608:33:97","type":"","value":"ryMessage: not a trusted remote"}],"functionName":{"name":"mstore","nativeSrc":"22581:6:97","nodeType":"YulIdentifier","src":"22581:6:97"},"nativeSrc":"22581:61:97","nodeType":"YulFunctionCall","src":"22581:61:97"},"nativeSrc":"22581:61:97","nodeType":"YulExpressionStatement","src":"22581:61:97"},{"nativeSrc":"22651:27:97","nodeType":"YulAssignment","src":"22651:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"22663:9:97","nodeType":"YulIdentifier","src":"22663:9:97"},{"kind":"number","nativeSrc":"22674:3:97","nodeType":"YulLiteral","src":"22674:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"22659:3:97","nodeType":"YulIdentifier","src":"22659:3:97"},"nativeSrc":"22659:19:97","nodeType":"YulFunctionCall","src":"22659:19:97"},"variableNames":[{"name":"tail","nativeSrc":"22651:4:97","nodeType":"YulIdentifier","src":"22651:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_8604b21a2334391c4295b76ee13c85fa92759d2c1e0134eda5b5a12de87b6756__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"22257:427:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"22408:9:97","nodeType":"YulTypedName","src":"22408:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"22422:4:97","nodeType":"YulTypedName","src":"22422:4:97","type":""}],"src":"22257:427:97"},{"body":{"nativeSrc":"22842:205:97","nodeType":"YulBlock","src":"22842:205:97","statements":[{"nativeSrc":"22852:26:97","nodeType":"YulAssignment","src":"22852:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"22864:9:97","nodeType":"YulIdentifier","src":"22864:9:97"},{"kind":"number","nativeSrc":"22875:2:97","nodeType":"YulLiteral","src":"22875:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"22860:3:97","nodeType":"YulIdentifier","src":"22860:3:97"},"nativeSrc":"22860:18:97","nodeType":"YulFunctionCall","src":"22860:18:97"},"variableNames":[{"name":"tail","nativeSrc":"22852:4:97","nodeType":"YulIdentifier","src":"22852:4:97"}]},{"nativeSrc":"22887:16:97","nodeType":"YulVariableDeclaration","src":"22887:16:97","value":{"kind":"number","nativeSrc":"22897:6:97","nodeType":"YulLiteral","src":"22897:6:97","type":"","value":"0xffff"},"variables":[{"name":"_1","nativeSrc":"22891:2:97","nodeType":"YulTypedName","src":"22891:2:97","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"22919:9:97","nodeType":"YulIdentifier","src":"22919:9:97"},{"arguments":[{"name":"value0","nativeSrc":"22934:6:97","nodeType":"YulIdentifier","src":"22934:6:97"},{"name":"_1","nativeSrc":"22942:2:97","nodeType":"YulIdentifier","src":"22942:2:97"}],"functionName":{"name":"and","nativeSrc":"22930:3:97","nodeType":"YulIdentifier","src":"22930:3:97"},"nativeSrc":"22930:15:97","nodeType":"YulFunctionCall","src":"22930:15:97"}],"functionName":{"name":"mstore","nativeSrc":"22912:6:97","nodeType":"YulIdentifier","src":"22912:6:97"},"nativeSrc":"22912:34:97","nodeType":"YulFunctionCall","src":"22912:34:97"},"nativeSrc":"22912:34:97","nodeType":"YulExpressionStatement","src":"22912:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22966:9:97","nodeType":"YulIdentifier","src":"22966:9:97"},{"kind":"number","nativeSrc":"22977:2:97","nodeType":"YulLiteral","src":"22977:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"22962:3:97","nodeType":"YulIdentifier","src":"22962:3:97"},"nativeSrc":"22962:18:97","nodeType":"YulFunctionCall","src":"22962:18:97"},{"arguments":[{"name":"value1","nativeSrc":"22986:6:97","nodeType":"YulIdentifier","src":"22986:6:97"},{"name":"_1","nativeSrc":"22994:2:97","nodeType":"YulIdentifier","src":"22994:2:97"}],"functionName":{"name":"and","nativeSrc":"22982:3:97","nodeType":"YulIdentifier","src":"22982:3:97"},"nativeSrc":"22982:15:97","nodeType":"YulFunctionCall","src":"22982:15:97"}],"functionName":{"name":"mstore","nativeSrc":"22955:6:97","nodeType":"YulIdentifier","src":"22955:6:97"},"nativeSrc":"22955:43:97","nodeType":"YulFunctionCall","src":"22955:43:97"},"nativeSrc":"22955:43:97","nodeType":"YulExpressionStatement","src":"22955:43:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23018:9:97","nodeType":"YulIdentifier","src":"23018:9:97"},{"kind":"number","nativeSrc":"23029:2:97","nodeType":"YulLiteral","src":"23029:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"23014:3:97","nodeType":"YulIdentifier","src":"23014:3:97"},"nativeSrc":"23014:18:97","nodeType":"YulFunctionCall","src":"23014:18:97"},{"name":"value2","nativeSrc":"23034:6:97","nodeType":"YulIdentifier","src":"23034:6:97"}],"functionName":{"name":"mstore","nativeSrc":"23007:6:97","nodeType":"YulIdentifier","src":"23007:6:97"},"nativeSrc":"23007:34:97","nodeType":"YulFunctionCall","src":"23007:34:97"},"nativeSrc":"23007:34:97","nodeType":"YulExpressionStatement","src":"23007:34:97"}]},"name":"abi_encode_tuple_t_uint16_t_uint16_t_uint256__to_t_uint16_t_uint16_t_uint256__fromStack_reversed","nativeSrc":"22689:358:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"22795:9:97","nodeType":"YulTypedName","src":"22795:9:97","type":""},{"name":"value2","nativeSrc":"22806:6:97","nodeType":"YulTypedName","src":"22806:6:97","type":""},{"name":"value1","nativeSrc":"22814:6:97","nodeType":"YulTypedName","src":"22814:6:97","type":""},{"name":"value0","nativeSrc":"22822:6:97","nodeType":"YulTypedName","src":"22822:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"22833:4:97","nodeType":"YulTypedName","src":"22833:4:97","type":""}],"src":"22689:358:97"},{"body":{"nativeSrc":"23153:1221:97","nodeType":"YulBlock","src":"23153:1221:97","statements":[{"body":{"nativeSrc":"23194:22:97","nodeType":"YulBlock","src":"23194:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"23196:16:97","nodeType":"YulIdentifier","src":"23196:16:97"},"nativeSrc":"23196:18:97","nodeType":"YulFunctionCall","src":"23196:18:97"},"nativeSrc":"23196:18:97","nodeType":"YulExpressionStatement","src":"23196:18:97"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"23169:3:97","nodeType":"YulIdentifier","src":"23169:3:97"},{"kind":"number","nativeSrc":"23174:18:97","nodeType":"YulLiteral","src":"23174:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"23166:2:97","nodeType":"YulIdentifier","src":"23166:2:97"},"nativeSrc":"23166:27:97","nodeType":"YulFunctionCall","src":"23166:27:97"},"nativeSrc":"23163:53:97","nodeType":"YulIf","src":"23163:53:97"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"23268:4:97","nodeType":"YulIdentifier","src":"23268:4:97"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"23306:4:97","nodeType":"YulIdentifier","src":"23306:4:97"}],"functionName":{"name":"sload","nativeSrc":"23300:5:97","nodeType":"YulIdentifier","src":"23300:5:97"},"nativeSrc":"23300:11:97","nodeType":"YulFunctionCall","src":"23300:11:97"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"23274:25:97","nodeType":"YulIdentifier","src":"23274:25:97"},"nativeSrc":"23274:38:97","nodeType":"YulFunctionCall","src":"23274:38:97"},{"name":"len","nativeSrc":"23314:3:97","nodeType":"YulIdentifier","src":"23314:3:97"}],"functionName":{"name":"clean_up_bytearray_end_slots_bytes_storage","nativeSrc":"23225:42:97","nodeType":"YulIdentifier","src":"23225:42:97"},"nativeSrc":"23225:93:97","nodeType":"YulFunctionCall","src":"23225:93:97"},"nativeSrc":"23225:93:97","nodeType":"YulExpressionStatement","src":"23225:93:97"},{"nativeSrc":"23327:18:97","nodeType":"YulVariableDeclaration","src":"23327:18:97","value":{"kind":"number","nativeSrc":"23344:1:97","nodeType":"YulLiteral","src":"23344:1:97","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"23331:9:97","nodeType":"YulTypedName","src":"23331:9:97","type":""}]},{"cases":[{"body":{"nativeSrc":"23388:728:97","nodeType":"YulBlock","src":"23388:728:97","statements":[{"nativeSrc":"23402:91:97","nodeType":"YulVariableDeclaration","src":"23402:91:97","value":{"arguments":[{"name":"len","nativeSrc":"23421:3:97","nodeType":"YulIdentifier","src":"23421:3:97"},{"kind":"number","nativeSrc":"23426:66:97","nodeType":"YulLiteral","src":"23426:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"23417:3:97","nodeType":"YulIdentifier","src":"23417:3:97"},"nativeSrc":"23417:76:97","nodeType":"YulFunctionCall","src":"23417:76:97"},"variables":[{"name":"loopEnd","nativeSrc":"23406:7:97","nodeType":"YulTypedName","src":"23406:7:97","type":""}]},{"nativeSrc":"23506:49:97","nodeType":"YulVariableDeclaration","src":"23506:49:97","value":{"arguments":[{"name":"slot","nativeSrc":"23550:4:97","nodeType":"YulIdentifier","src":"23550:4:97"}],"functionName":{"name":"array_dataslot_string_storage","nativeSrc":"23520:29:97","nodeType":"YulIdentifier","src":"23520:29:97"},"nativeSrc":"23520:35:97","nodeType":"YulFunctionCall","src":"23520:35:97"},"variables":[{"name":"dstPtr","nativeSrc":"23510:6:97","nodeType":"YulTypedName","src":"23510:6:97","type":""}]},{"nativeSrc":"23568:18:97","nodeType":"YulVariableDeclaration","src":"23568:18:97","value":{"name":"srcOffset","nativeSrc":"23577:9:97","nodeType":"YulIdentifier","src":"23577:9:97"},"variables":[{"name":"i","nativeSrc":"23572:1:97","nodeType":"YulTypedName","src":"23572:1:97","type":""}]},{"body":{"nativeSrc":"23656:172:97","nodeType":"YulBlock","src":"23656:172:97","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"23681:6:97","nodeType":"YulIdentifier","src":"23681:6:97"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"23706:3:97","nodeType":"YulIdentifier","src":"23706:3:97"},{"name":"srcOffset","nativeSrc":"23711:9:97","nodeType":"YulIdentifier","src":"23711:9:97"}],"functionName":{"name":"add","nativeSrc":"23702:3:97","nodeType":"YulIdentifier","src":"23702:3:97"},"nativeSrc":"23702:19:97","nodeType":"YulFunctionCall","src":"23702:19:97"}],"functionName":{"name":"calldataload","nativeSrc":"23689:12:97","nodeType":"YulIdentifier","src":"23689:12:97"},"nativeSrc":"23689:33:97","nodeType":"YulFunctionCall","src":"23689:33:97"}],"functionName":{"name":"sstore","nativeSrc":"23674:6:97","nodeType":"YulIdentifier","src":"23674:6:97"},"nativeSrc":"23674:49:97","nodeType":"YulFunctionCall","src":"23674:49:97"},"nativeSrc":"23674:49:97","nodeType":"YulExpressionStatement","src":"23674:49:97"},{"nativeSrc":"23740:24:97","nodeType":"YulAssignment","src":"23740:24:97","value":{"arguments":[{"name":"dstPtr","nativeSrc":"23754:6:97","nodeType":"YulIdentifier","src":"23754:6:97"},{"kind":"number","nativeSrc":"23762:1:97","nodeType":"YulLiteral","src":"23762:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"23750:3:97","nodeType":"YulIdentifier","src":"23750:3:97"},"nativeSrc":"23750:14:97","nodeType":"YulFunctionCall","src":"23750:14:97"},"variableNames":[{"name":"dstPtr","nativeSrc":"23740:6:97","nodeType":"YulIdentifier","src":"23740:6:97"}]},{"nativeSrc":"23781:33:97","nodeType":"YulAssignment","src":"23781:33:97","value":{"arguments":[{"name":"srcOffset","nativeSrc":"23798:9:97","nodeType":"YulIdentifier","src":"23798:9:97"},{"kind":"number","nativeSrc":"23809:4:97","nodeType":"YulLiteral","src":"23809:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"23794:3:97","nodeType":"YulIdentifier","src":"23794:3:97"},"nativeSrc":"23794:20:97","nodeType":"YulFunctionCall","src":"23794:20:97"},"variableNames":[{"name":"srcOffset","nativeSrc":"23781:9:97","nodeType":"YulIdentifier","src":"23781:9:97"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"23610:1:97","nodeType":"YulIdentifier","src":"23610:1:97"},{"name":"loopEnd","nativeSrc":"23613:7:97","nodeType":"YulIdentifier","src":"23613:7:97"}],"functionName":{"name":"lt","nativeSrc":"23607:2:97","nodeType":"YulIdentifier","src":"23607:2:97"},"nativeSrc":"23607:14:97","nodeType":"YulFunctionCall","src":"23607:14:97"},"nativeSrc":"23599:229:97","nodeType":"YulForLoop","post":{"nativeSrc":"23622:21:97","nodeType":"YulBlock","src":"23622:21:97","statements":[{"nativeSrc":"23624:17:97","nodeType":"YulAssignment","src":"23624:17:97","value":{"arguments":[{"name":"i","nativeSrc":"23633:1:97","nodeType":"YulIdentifier","src":"23633:1:97"},{"kind":"number","nativeSrc":"23636:4:97","nodeType":"YulLiteral","src":"23636:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"23629:3:97","nodeType":"YulIdentifier","src":"23629:3:97"},"nativeSrc":"23629:12:97","nodeType":"YulFunctionCall","src":"23629:12:97"},"variableNames":[{"name":"i","nativeSrc":"23624:1:97","nodeType":"YulIdentifier","src":"23624:1:97"}]}]},"pre":{"nativeSrc":"23603:3:97","nodeType":"YulBlock","src":"23603:3:97","statements":[]},"src":"23599:229:97"},{"body":{"nativeSrc":"23873:187:97","nodeType":"YulBlock","src":"23873:187:97","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"23898:6:97","nodeType":"YulIdentifier","src":"23898:6:97"},{"arguments":[{"arguments":[{"arguments":[{"name":"src","nativeSrc":"23927:3:97","nodeType":"YulIdentifier","src":"23927:3:97"},{"name":"srcOffset","nativeSrc":"23932:9:97","nodeType":"YulIdentifier","src":"23932:9:97"}],"functionName":{"name":"add","nativeSrc":"23923:3:97","nodeType":"YulIdentifier","src":"23923:3:97"},"nativeSrc":"23923:19:97","nodeType":"YulFunctionCall","src":"23923:19:97"}],"functionName":{"name":"calldataload","nativeSrc":"23910:12:97","nodeType":"YulIdentifier","src":"23910:12:97"},"nativeSrc":"23910:33:97","nodeType":"YulFunctionCall","src":"23910:33:97"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"23961:1:97","nodeType":"YulLiteral","src":"23961:1:97","type":"","value":"3"},{"name":"len","nativeSrc":"23964:3:97","nodeType":"YulIdentifier","src":"23964:3:97"}],"functionName":{"name":"shl","nativeSrc":"23957:3:97","nodeType":"YulIdentifier","src":"23957:3:97"},"nativeSrc":"23957:11:97","nodeType":"YulFunctionCall","src":"23957:11:97"},{"kind":"number","nativeSrc":"23970:3:97","nodeType":"YulLiteral","src":"23970:3:97","type":"","value":"248"}],"functionName":{"name":"and","nativeSrc":"23953:3:97","nodeType":"YulIdentifier","src":"23953:3:97"},"nativeSrc":"23953:21:97","nodeType":"YulFunctionCall","src":"23953:21:97"},{"kind":"number","nativeSrc":"23976:66:97","nodeType":"YulLiteral","src":"23976:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shr","nativeSrc":"23949:3:97","nodeType":"YulIdentifier","src":"23949:3:97"},"nativeSrc":"23949:94:97","nodeType":"YulFunctionCall","src":"23949:94:97"}],"functionName":{"name":"not","nativeSrc":"23945:3:97","nodeType":"YulIdentifier","src":"23945:3:97"},"nativeSrc":"23945:99:97","nodeType":"YulFunctionCall","src":"23945:99:97"}],"functionName":{"name":"and","nativeSrc":"23906:3:97","nodeType":"YulIdentifier","src":"23906:3:97"},"nativeSrc":"23906:139:97","nodeType":"YulFunctionCall","src":"23906:139:97"}],"functionName":{"name":"sstore","nativeSrc":"23891:6:97","nodeType":"YulIdentifier","src":"23891:6:97"},"nativeSrc":"23891:155:97","nodeType":"YulFunctionCall","src":"23891:155:97"},"nativeSrc":"23891:155:97","nodeType":"YulExpressionStatement","src":"23891:155:97"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"23847:7:97","nodeType":"YulIdentifier","src":"23847:7:97"},{"name":"len","nativeSrc":"23856:3:97","nodeType":"YulIdentifier","src":"23856:3:97"}],"functionName":{"name":"lt","nativeSrc":"23844:2:97","nodeType":"YulIdentifier","src":"23844:2:97"},"nativeSrc":"23844:16:97","nodeType":"YulFunctionCall","src":"23844:16:97"},"nativeSrc":"23841:219:97","nodeType":"YulIf","src":"23841:219:97"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"24080:4:97","nodeType":"YulIdentifier","src":"24080:4:97"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"24094:1:97","nodeType":"YulLiteral","src":"24094:1:97","type":"","value":"1"},{"name":"len","nativeSrc":"24097:3:97","nodeType":"YulIdentifier","src":"24097:3:97"}],"functionName":{"name":"shl","nativeSrc":"24090:3:97","nodeType":"YulIdentifier","src":"24090:3:97"},"nativeSrc":"24090:11:97","nodeType":"YulFunctionCall","src":"24090:11:97"},{"kind":"number","nativeSrc":"24103:1:97","nodeType":"YulLiteral","src":"24103:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"24086:3:97","nodeType":"YulIdentifier","src":"24086:3:97"},"nativeSrc":"24086:19:97","nodeType":"YulFunctionCall","src":"24086:19:97"}],"functionName":{"name":"sstore","nativeSrc":"24073:6:97","nodeType":"YulIdentifier","src":"24073:6:97"},"nativeSrc":"24073:33:97","nodeType":"YulFunctionCall","src":"24073:33:97"},"nativeSrc":"24073:33:97","nodeType":"YulExpressionStatement","src":"24073:33:97"}]},"nativeSrc":"23381:735:97","nodeType":"YulCase","src":"23381:735:97","value":{"kind":"number","nativeSrc":"23386:1:97","nodeType":"YulLiteral","src":"23386:1:97","type":"","value":"1"}},{"body":{"nativeSrc":"24133:235:97","nodeType":"YulBlock","src":"24133:235:97","statements":[{"nativeSrc":"24147:14:97","nodeType":"YulVariableDeclaration","src":"24147:14:97","value":{"kind":"number","nativeSrc":"24160:1:97","nodeType":"YulLiteral","src":"24160:1:97","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"24151:5:97","nodeType":"YulTypedName","src":"24151:5:97","type":""}]},{"body":{"nativeSrc":"24193:74:97","nodeType":"YulBlock","src":"24193:74:97","statements":[{"nativeSrc":"24211:42:97","nodeType":"YulAssignment","src":"24211:42:97","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"24237:3:97","nodeType":"YulIdentifier","src":"24237:3:97"},{"name":"srcOffset","nativeSrc":"24242:9:97","nodeType":"YulIdentifier","src":"24242:9:97"}],"functionName":{"name":"add","nativeSrc":"24233:3:97","nodeType":"YulIdentifier","src":"24233:3:97"},"nativeSrc":"24233:19:97","nodeType":"YulFunctionCall","src":"24233:19:97"}],"functionName":{"name":"calldataload","nativeSrc":"24220:12:97","nodeType":"YulIdentifier","src":"24220:12:97"},"nativeSrc":"24220:33:97","nodeType":"YulFunctionCall","src":"24220:33:97"},"variableNames":[{"name":"value","nativeSrc":"24211:5:97","nodeType":"YulIdentifier","src":"24211:5:97"}]}]},"condition":{"name":"len","nativeSrc":"24177:3:97","nodeType":"YulIdentifier","src":"24177:3:97"},"nativeSrc":"24174:93:97","nodeType":"YulIf","src":"24174:93:97"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"24287:4:97","nodeType":"YulIdentifier","src":"24287:4:97"},{"arguments":[{"name":"value","nativeSrc":"24346:5:97","nodeType":"YulIdentifier","src":"24346:5:97"},{"name":"len","nativeSrc":"24353:3:97","nodeType":"YulIdentifier","src":"24353:3:97"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"24293:52:97","nodeType":"YulIdentifier","src":"24293:52:97"},"nativeSrc":"24293:64:97","nodeType":"YulFunctionCall","src":"24293:64:97"}],"functionName":{"name":"sstore","nativeSrc":"24280:6:97","nodeType":"YulIdentifier","src":"24280:6:97"},"nativeSrc":"24280:78:97","nodeType":"YulFunctionCall","src":"24280:78:97"},"nativeSrc":"24280:78:97","nodeType":"YulExpressionStatement","src":"24280:78:97"}]},"nativeSrc":"24125:243:97","nodeType":"YulCase","src":"24125:243:97","value":"default"}],"expression":{"arguments":[{"name":"len","nativeSrc":"23364:3:97","nodeType":"YulIdentifier","src":"23364:3:97"},{"kind":"number","nativeSrc":"23369:2:97","nodeType":"YulLiteral","src":"23369:2:97","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"23361:2:97","nodeType":"YulIdentifier","src":"23361:2:97"},"nativeSrc":"23361:11:97","nodeType":"YulFunctionCall","src":"23361:11:97"},"nativeSrc":"23354:1014:97","nodeType":"YulSwitch","src":"23354:1014:97"}]},"name":"copy_byte_array_to_storage_from_t_bytes_calldata_ptr_to_t_bytes_storage","nativeSrc":"23052:1322:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"23133:4:97","nodeType":"YulTypedName","src":"23133:4:97","type":""},{"name":"src","nativeSrc":"23139:3:97","nodeType":"YulTypedName","src":"23139:3:97","type":""},{"name":"len","nativeSrc":"23144:3:97","nodeType":"YulTypedName","src":"23144:3:97","type":""}],"src":"23052:1322:97"},{"body":{"nativeSrc":"24425:102:97","nodeType":"YulBlock","src":"24425:102:97","statements":[{"nativeSrc":"24435:38:97","nodeType":"YulAssignment","src":"24435:38:97","value":{"arguments":[{"arguments":[{"name":"x","nativeSrc":"24450:1:97","nodeType":"YulIdentifier","src":"24450:1:97"},{"kind":"number","nativeSrc":"24453:4:97","nodeType":"YulLiteral","src":"24453:4:97","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"24446:3:97","nodeType":"YulIdentifier","src":"24446:3:97"},"nativeSrc":"24446:12:97","nodeType":"YulFunctionCall","src":"24446:12:97"},{"arguments":[{"name":"y","nativeSrc":"24464:1:97","nodeType":"YulIdentifier","src":"24464:1:97"},{"kind":"number","nativeSrc":"24467:4:97","nodeType":"YulLiteral","src":"24467:4:97","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"24460:3:97","nodeType":"YulIdentifier","src":"24460:3:97"},"nativeSrc":"24460:12:97","nodeType":"YulFunctionCall","src":"24460:12:97"}],"functionName":{"name":"add","nativeSrc":"24442:3:97","nodeType":"YulIdentifier","src":"24442:3:97"},"nativeSrc":"24442:31:97","nodeType":"YulFunctionCall","src":"24442:31:97"},"variableNames":[{"name":"sum","nativeSrc":"24435:3:97","nodeType":"YulIdentifier","src":"24435:3:97"}]},{"body":{"nativeSrc":"24499:22:97","nodeType":"YulBlock","src":"24499:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"24501:16:97","nodeType":"YulIdentifier","src":"24501:16:97"},"nativeSrc":"24501:18:97","nodeType":"YulFunctionCall","src":"24501:18:97"},"nativeSrc":"24501:18:97","nodeType":"YulExpressionStatement","src":"24501:18:97"}]},"condition":{"arguments":[{"name":"sum","nativeSrc":"24488:3:97","nodeType":"YulIdentifier","src":"24488:3:97"},{"kind":"number","nativeSrc":"24493:4:97","nodeType":"YulLiteral","src":"24493:4:97","type":"","value":"0xff"}],"functionName":{"name":"gt","nativeSrc":"24485:2:97","nodeType":"YulIdentifier","src":"24485:2:97"},"nativeSrc":"24485:13:97","nodeType":"YulFunctionCall","src":"24485:13:97"},"nativeSrc":"24482:39:97","nodeType":"YulIf","src":"24482:39:97"}]},"name":"checked_add_t_uint8","nativeSrc":"24379:148:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"24408:1:97","nodeType":"YulTypedName","src":"24408:1:97","type":""},{"name":"y","nativeSrc":"24411:1:97","nodeType":"YulTypedName","src":"24411:1:97","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"24417:3:97","nodeType":"YulTypedName","src":"24417:3:97","type":""}],"src":"24379:148:97"},{"body":{"nativeSrc":"24706:377:97","nodeType":"YulBlock","src":"24706:377:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"24723:9:97","nodeType":"YulIdentifier","src":"24723:9:97"},{"kind":"number","nativeSrc":"24734:2:97","nodeType":"YulLiteral","src":"24734:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"24716:6:97","nodeType":"YulIdentifier","src":"24716:6:97"},"nativeSrc":"24716:21:97","nodeType":"YulFunctionCall","src":"24716:21:97"},"nativeSrc":"24716:21:97","nodeType":"YulExpressionStatement","src":"24716:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24757:9:97","nodeType":"YulIdentifier","src":"24757:9:97"},{"kind":"number","nativeSrc":"24768:2:97","nodeType":"YulLiteral","src":"24768:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"24753:3:97","nodeType":"YulIdentifier","src":"24753:3:97"},"nativeSrc":"24753:18:97","nodeType":"YulFunctionCall","src":"24753:18:97"},{"kind":"number","nativeSrc":"24773:3:97","nodeType":"YulLiteral","src":"24773:3:97","type":"","value":"106"}],"functionName":{"name":"mstore","nativeSrc":"24746:6:97","nodeType":"YulIdentifier","src":"24746:6:97"},"nativeSrc":"24746:31:97","nodeType":"YulFunctionCall","src":"24746:31:97"},"nativeSrc":"24746:31:97","nodeType":"YulExpressionStatement","src":"24746:31:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24797:9:97","nodeType":"YulIdentifier","src":"24797:9:97"},{"kind":"number","nativeSrc":"24808:2:97","nodeType":"YulLiteral","src":"24808:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"24793:3:97","nodeType":"YulIdentifier","src":"24793:3:97"},"nativeSrc":"24793:18:97","nodeType":"YulFunctionCall","src":"24793:18:97"},{"hexValue":"4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a616464","kind":"string","nativeSrc":"24813:34:97","nodeType":"YulLiteral","src":"24813:34:97","type":"","value":"OmnichainGovernanceExecutor::add"}],"functionName":{"name":"mstore","nativeSrc":"24786:6:97","nodeType":"YulIdentifier","src":"24786:6:97"},"nativeSrc":"24786:62:97","nodeType":"YulFunctionCall","src":"24786:62:97"},"nativeSrc":"24786:62:97","nodeType":"YulExpressionStatement","src":"24786:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24868:9:97","nodeType":"YulIdentifier","src":"24868:9:97"},{"kind":"number","nativeSrc":"24879:2:97","nodeType":"YulLiteral","src":"24879:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"24864:3:97","nodeType":"YulIdentifier","src":"24864:3:97"},"nativeSrc":"24864:18:97","nodeType":"YulFunctionCall","src":"24864:18:97"},{"hexValue":"54696d656c6f636b733a6e756d626572206f662074696d656c6f636b73207368","kind":"string","nativeSrc":"24884:34:97","nodeType":"YulLiteral","src":"24884:34:97","type":"","value":"Timelocks:number of timelocks sh"}],"functionName":{"name":"mstore","nativeSrc":"24857:6:97","nodeType":"YulIdentifier","src":"24857:6:97"},"nativeSrc":"24857:62:97","nodeType":"YulFunctionCall","src":"24857:62:97"},"nativeSrc":"24857:62:97","nodeType":"YulExpressionStatement","src":"24857:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24939:9:97","nodeType":"YulIdentifier","src":"24939:9:97"},{"kind":"number","nativeSrc":"24950:3:97","nodeType":"YulLiteral","src":"24950:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"24935:3:97","nodeType":"YulIdentifier","src":"24935:3:97"},"nativeSrc":"24935:19:97","nodeType":"YulFunctionCall","src":"24935:19:97"},{"hexValue":"6f756c64206d6174636820746865206e756d626572206f6620676f7665726e61","kind":"string","nativeSrc":"24956:34:97","nodeType":"YulLiteral","src":"24956:34:97","type":"","value":"ould match the number of governa"}],"functionName":{"name":"mstore","nativeSrc":"24928:6:97","nodeType":"YulIdentifier","src":"24928:6:97"},"nativeSrc":"24928:63:97","nodeType":"YulFunctionCall","src":"24928:63:97"},"nativeSrc":"24928:63:97","nodeType":"YulExpressionStatement","src":"24928:63:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25011:9:97","nodeType":"YulIdentifier","src":"25011:9:97"},{"kind":"number","nativeSrc":"25022:3:97","nodeType":"YulLiteral","src":"25022:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"25007:3:97","nodeType":"YulIdentifier","src":"25007:3:97"},"nativeSrc":"25007:19:97","nodeType":"YulFunctionCall","src":"25007:19:97"},{"hexValue":"6e636520726f75746573","kind":"string","nativeSrc":"25028:12:97","nodeType":"YulLiteral","src":"25028:12:97","type":"","value":"nce routes"}],"functionName":{"name":"mstore","nativeSrc":"25000:6:97","nodeType":"YulIdentifier","src":"25000:6:97"},"nativeSrc":"25000:41:97","nodeType":"YulFunctionCall","src":"25000:41:97"},"nativeSrc":"25000:41:97","nodeType":"YulExpressionStatement","src":"25000:41:97"},{"nativeSrc":"25050:27:97","nodeType":"YulAssignment","src":"25050:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"25062:9:97","nodeType":"YulIdentifier","src":"25062:9:97"},{"kind":"number","nativeSrc":"25073:3:97","nodeType":"YulLiteral","src":"25073:3:97","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"25058:3:97","nodeType":"YulIdentifier","src":"25058:3:97"},"nativeSrc":"25058:19:97","nodeType":"YulFunctionCall","src":"25058:19:97"},"variableNames":[{"name":"tail","nativeSrc":"25050:4:97","nodeType":"YulIdentifier","src":"25050:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_32080da14e7022f3ae138ecc980607030d5549ab2e1d714a8c2cbabbb48261e4__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"24532:551:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"24683:9:97","nodeType":"YulTypedName","src":"24683:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"24697:4:97","nodeType":"YulTypedName","src":"24697:4:97","type":""}],"src":"24532:551:97"},{"body":{"nativeSrc":"25185:87:97","nodeType":"YulBlock","src":"25185:87:97","statements":[{"nativeSrc":"25195:26:97","nodeType":"YulAssignment","src":"25195:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"25207:9:97","nodeType":"YulIdentifier","src":"25207:9:97"},{"kind":"number","nativeSrc":"25218:2:97","nodeType":"YulLiteral","src":"25218:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"25203:3:97","nodeType":"YulIdentifier","src":"25203:3:97"},"nativeSrc":"25203:18:97","nodeType":"YulFunctionCall","src":"25203:18:97"},"variableNames":[{"name":"tail","nativeSrc":"25195:4:97","nodeType":"YulIdentifier","src":"25195:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"25237:9:97","nodeType":"YulIdentifier","src":"25237:9:97"},{"arguments":[{"name":"value0","nativeSrc":"25252:6:97","nodeType":"YulIdentifier","src":"25252:6:97"},{"kind":"number","nativeSrc":"25260:4:97","nodeType":"YulLiteral","src":"25260:4:97","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"25248:3:97","nodeType":"YulIdentifier","src":"25248:3:97"},"nativeSrc":"25248:17:97","nodeType":"YulFunctionCall","src":"25248:17:97"}],"functionName":{"name":"mstore","nativeSrc":"25230:6:97","nodeType":"YulIdentifier","src":"25230:6:97"},"nativeSrc":"25230:36:97","nodeType":"YulFunctionCall","src":"25230:36:97"},"nativeSrc":"25230:36:97","nodeType":"YulExpressionStatement","src":"25230:36:97"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"25088:184:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25154:9:97","nodeType":"YulTypedName","src":"25154:9:97","type":""},{"name":"value0","nativeSrc":"25165:6:97","nodeType":"YulTypedName","src":"25165:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"25176:4:97","nodeType":"YulTypedName","src":"25176:4:97","type":""}],"src":"25088:184:97"},{"body":{"nativeSrc":"25451:228:97","nodeType":"YulBlock","src":"25451:228:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"25468:9:97","nodeType":"YulIdentifier","src":"25468:9:97"},{"kind":"number","nativeSrc":"25479:2:97","nodeType":"YulLiteral","src":"25479:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"25461:6:97","nodeType":"YulIdentifier","src":"25461:6:97"},"nativeSrc":"25461:21:97","nodeType":"YulFunctionCall","src":"25461:21:97"},"nativeSrc":"25461:21:97","nodeType":"YulExpressionStatement","src":"25461:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25502:9:97","nodeType":"YulIdentifier","src":"25502:9:97"},{"kind":"number","nativeSrc":"25513:2:97","nodeType":"YulLiteral","src":"25513:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"25498:3:97","nodeType":"YulIdentifier","src":"25498:3:97"},"nativeSrc":"25498:18:97","nodeType":"YulFunctionCall","src":"25498:18:97"},{"kind":"number","nativeSrc":"25518:2:97","nodeType":"YulLiteral","src":"25518:2:97","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"25491:6:97","nodeType":"YulIdentifier","src":"25491:6:97"},"nativeSrc":"25491:30:97","nodeType":"YulFunctionCall","src":"25491:30:97"},"nativeSrc":"25491:30:97","nodeType":"YulExpressionStatement","src":"25491:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25541:9:97","nodeType":"YulIdentifier","src":"25541:9:97"},{"kind":"number","nativeSrc":"25552:2:97","nodeType":"YulLiteral","src":"25552:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"25537:3:97","nodeType":"YulIdentifier","src":"25537:3:97"},"nativeSrc":"25537:18:97","nodeType":"YulFunctionCall","src":"25537:18:97"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nativeSrc":"25557:34:97","nodeType":"YulLiteral","src":"25557:34:97","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nativeSrc":"25530:6:97","nodeType":"YulIdentifier","src":"25530:6:97"},"nativeSrc":"25530:62:97","nodeType":"YulFunctionCall","src":"25530:62:97"},"nativeSrc":"25530:62:97","nodeType":"YulExpressionStatement","src":"25530:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25612:9:97","nodeType":"YulIdentifier","src":"25612:9:97"},{"kind":"number","nativeSrc":"25623:2:97","nodeType":"YulLiteral","src":"25623:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"25608:3:97","nodeType":"YulIdentifier","src":"25608:3:97"},"nativeSrc":"25608:18:97","nodeType":"YulFunctionCall","src":"25608:18:97"},{"hexValue":"646472657373","kind":"string","nativeSrc":"25628:8:97","nodeType":"YulLiteral","src":"25628:8:97","type":"","value":"ddress"}],"functionName":{"name":"mstore","nativeSrc":"25601:6:97","nodeType":"YulIdentifier","src":"25601:6:97"},"nativeSrc":"25601:36:97","nodeType":"YulFunctionCall","src":"25601:36:97"},"nativeSrc":"25601:36:97","nodeType":"YulExpressionStatement","src":"25601:36:97"},{"nativeSrc":"25646:27:97","nodeType":"YulAssignment","src":"25646:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"25658:9:97","nodeType":"YulIdentifier","src":"25658:9:97"},{"kind":"number","nativeSrc":"25669:3:97","nodeType":"YulLiteral","src":"25669:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"25654:3:97","nodeType":"YulIdentifier","src":"25654:3:97"},"nativeSrc":"25654:19:97","nodeType":"YulFunctionCall","src":"25654:19:97"},"variableNames":[{"name":"tail","nativeSrc":"25646:4:97","nodeType":"YulIdentifier","src":"25646:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"25277:402:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25428:9:97","nodeType":"YulTypedName","src":"25428:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"25442:4:97","nodeType":"YulTypedName","src":"25442:4:97","type":""}],"src":"25277:402:97"},{"body":{"nativeSrc":"25858:305:97","nodeType":"YulBlock","src":"25858:305:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"25875:9:97","nodeType":"YulIdentifier","src":"25875:9:97"},{"kind":"number","nativeSrc":"25886:2:97","nodeType":"YulLiteral","src":"25886:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"25868:6:97","nodeType":"YulIdentifier","src":"25868:6:97"},"nativeSrc":"25868:21:97","nodeType":"YulFunctionCall","src":"25868:21:97"},"nativeSrc":"25868:21:97","nodeType":"YulExpressionStatement","src":"25868:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25909:9:97","nodeType":"YulIdentifier","src":"25909:9:97"},{"kind":"number","nativeSrc":"25920:2:97","nodeType":"YulLiteral","src":"25920:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"25905:3:97","nodeType":"YulIdentifier","src":"25905:3:97"},"nativeSrc":"25905:18:97","nodeType":"YulFunctionCall","src":"25905:18:97"},{"kind":"number","nativeSrc":"25925:2:97","nodeType":"YulLiteral","src":"25925:2:97","type":"","value":"75"}],"functionName":{"name":"mstore","nativeSrc":"25898:6:97","nodeType":"YulIdentifier","src":"25898:6:97"},"nativeSrc":"25898:30:97","nodeType":"YulFunctionCall","src":"25898:30:97"},"nativeSrc":"25898:30:97","nodeType":"YulExpressionStatement","src":"25898:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25948:9:97","nodeType":"YulIdentifier","src":"25948:9:97"},{"kind":"number","nativeSrc":"25959:2:97","nodeType":"YulLiteral","src":"25959:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"25944:3:97","nodeType":"YulIdentifier","src":"25944:3:97"},"nativeSrc":"25944:18:97","nodeType":"YulFunctionCall","src":"25944:18:97"},{"hexValue":"4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a736574","kind":"string","nativeSrc":"25964:34:97","nodeType":"YulLiteral","src":"25964:34:97","type":"","value":"OmnichainGovernanceExecutor::set"}],"functionName":{"name":"mstore","nativeSrc":"25937:6:97","nodeType":"YulIdentifier","src":"25937:6:97"},"nativeSrc":"25937:62:97","nodeType":"YulFunctionCall","src":"25937:62:97"},"nativeSrc":"25937:62:97","nodeType":"YulExpressionStatement","src":"25937:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26019:9:97","nodeType":"YulIdentifier","src":"26019:9:97"},{"kind":"number","nativeSrc":"26030:2:97","nodeType":"YulLiteral","src":"26030:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"26015:3:97","nodeType":"YulIdentifier","src":"26015:3:97"},"nativeSrc":"26015:18:97","nodeType":"YulFunctionCall","src":"26015:18:97"},{"hexValue":"54696d656c6f636b50656e64696e6741646d696e3a20696e76616c6964207072","kind":"string","nativeSrc":"26035:34:97","nodeType":"YulLiteral","src":"26035:34:97","type":"","value":"TimelockPendingAdmin: invalid pr"}],"functionName":{"name":"mstore","nativeSrc":"26008:6:97","nodeType":"YulIdentifier","src":"26008:6:97"},"nativeSrc":"26008:62:97","nodeType":"YulFunctionCall","src":"26008:62:97"},"nativeSrc":"26008:62:97","nodeType":"YulExpressionStatement","src":"26008:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26090:9:97","nodeType":"YulIdentifier","src":"26090:9:97"},{"kind":"number","nativeSrc":"26101:3:97","nodeType":"YulLiteral","src":"26101:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"26086:3:97","nodeType":"YulIdentifier","src":"26086:3:97"},"nativeSrc":"26086:19:97","nodeType":"YulFunctionCall","src":"26086:19:97"},{"hexValue":"6f706f73616c2074797065","kind":"string","nativeSrc":"26107:13:97","nodeType":"YulLiteral","src":"26107:13:97","type":"","value":"oposal type"}],"functionName":{"name":"mstore","nativeSrc":"26079:6:97","nodeType":"YulIdentifier","src":"26079:6:97"},"nativeSrc":"26079:42:97","nodeType":"YulFunctionCall","src":"26079:42:97"},"nativeSrc":"26079:42:97","nodeType":"YulExpressionStatement","src":"26079:42:97"},{"nativeSrc":"26130:27:97","nodeType":"YulAssignment","src":"26130:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"26142:9:97","nodeType":"YulIdentifier","src":"26142:9:97"},{"kind":"number","nativeSrc":"26153:3:97","nodeType":"YulLiteral","src":"26153:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"26138:3:97","nodeType":"YulIdentifier","src":"26138:3:97"},"nativeSrc":"26138:19:97","nodeType":"YulFunctionCall","src":"26138:19:97"},"variableNames":[{"name":"tail","nativeSrc":"26130:4:97","nodeType":"YulIdentifier","src":"26130:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_f08e2b8e61b5846c8974e694064edfd99da14433722704c9122062e543c20627__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"25684:479:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25835:9:97","nodeType":"YulTypedName","src":"25835:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"25849:4:97","nodeType":"YulTypedName","src":"25849:4:97","type":""}],"src":"25684:479:97"},{"body":{"nativeSrc":"26293:179:97","nodeType":"YulBlock","src":"26293:179:97","statements":[{"nativeSrc":"26303:26:97","nodeType":"YulAssignment","src":"26303:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"26315:9:97","nodeType":"YulIdentifier","src":"26315:9:97"},{"kind":"number","nativeSrc":"26326:2:97","nodeType":"YulLiteral","src":"26326:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"26311:3:97","nodeType":"YulIdentifier","src":"26311:3:97"},"nativeSrc":"26311:18:97","nodeType":"YulFunctionCall","src":"26311:18:97"},"variableNames":[{"name":"tail","nativeSrc":"26303:4:97","nodeType":"YulIdentifier","src":"26303:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"26345:9:97","nodeType":"YulIdentifier","src":"26345:9:97"},{"arguments":[{"name":"value0","nativeSrc":"26360:6:97","nodeType":"YulIdentifier","src":"26360:6:97"},{"kind":"number","nativeSrc":"26368:42:97","nodeType":"YulLiteral","src":"26368:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"26356:3:97","nodeType":"YulIdentifier","src":"26356:3:97"},"nativeSrc":"26356:55:97","nodeType":"YulFunctionCall","src":"26356:55:97"}],"functionName":{"name":"mstore","nativeSrc":"26338:6:97","nodeType":"YulIdentifier","src":"26338:6:97"},"nativeSrc":"26338:74:97","nodeType":"YulFunctionCall","src":"26338:74:97"},"nativeSrc":"26338:74:97","nodeType":"YulExpressionStatement","src":"26338:74:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26432:9:97","nodeType":"YulIdentifier","src":"26432:9:97"},{"kind":"number","nativeSrc":"26443:2:97","nodeType":"YulLiteral","src":"26443:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"26428:3:97","nodeType":"YulIdentifier","src":"26428:3:97"},"nativeSrc":"26428:18:97","nodeType":"YulFunctionCall","src":"26428:18:97"},{"arguments":[{"name":"value1","nativeSrc":"26452:6:97","nodeType":"YulIdentifier","src":"26452:6:97"},{"kind":"number","nativeSrc":"26460:4:97","nodeType":"YulLiteral","src":"26460:4:97","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"26448:3:97","nodeType":"YulIdentifier","src":"26448:3:97"},"nativeSrc":"26448:17:97","nodeType":"YulFunctionCall","src":"26448:17:97"}],"functionName":{"name":"mstore","nativeSrc":"26421:6:97","nodeType":"YulIdentifier","src":"26421:6:97"},"nativeSrc":"26421:45:97","nodeType":"YulFunctionCall","src":"26421:45:97"},"nativeSrc":"26421:45:97","nodeType":"YulExpressionStatement","src":"26421:45:97"}]},"name":"abi_encode_tuple_t_address_t_uint8__to_t_address_t_uint8__fromStack_reversed","nativeSrc":"26168:304:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"26254:9:97","nodeType":"YulTypedName","src":"26254:9:97","type":""},{"name":"value1","nativeSrc":"26265:6:97","nodeType":"YulTypedName","src":"26265:6:97","type":""},{"name":"value0","nativeSrc":"26273:6:97","nodeType":"YulTypedName","src":"26273:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"26284:4:97","nodeType":"YulTypedName","src":"26284:4:97","type":""}],"src":"26168:304:97"},{"body":{"nativeSrc":"26658:298:97","nodeType":"YulBlock","src":"26658:298:97","statements":[{"nativeSrc":"26668:27:97","nodeType":"YulAssignment","src":"26668:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"26680:9:97","nodeType":"YulIdentifier","src":"26680:9:97"},{"kind":"number","nativeSrc":"26691:3:97","nodeType":"YulLiteral","src":"26691:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"26676:3:97","nodeType":"YulIdentifier","src":"26676:3:97"},"nativeSrc":"26676:19:97","nodeType":"YulFunctionCall","src":"26676:19:97"},"variableNames":[{"name":"tail","nativeSrc":"26668:4:97","nodeType":"YulIdentifier","src":"26668:4:97"}]},{"nativeSrc":"26704:16:97","nodeType":"YulVariableDeclaration","src":"26704:16:97","value":{"kind":"number","nativeSrc":"26714:6:97","nodeType":"YulLiteral","src":"26714:6:97","type":"","value":"0xffff"},"variables":[{"name":"_1","nativeSrc":"26708:2:97","nodeType":"YulTypedName","src":"26708:2:97","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"26736:9:97","nodeType":"YulIdentifier","src":"26736:9:97"},{"arguments":[{"name":"value0","nativeSrc":"26751:6:97","nodeType":"YulIdentifier","src":"26751:6:97"},{"name":"_1","nativeSrc":"26759:2:97","nodeType":"YulIdentifier","src":"26759:2:97"}],"functionName":{"name":"and","nativeSrc":"26747:3:97","nodeType":"YulIdentifier","src":"26747:3:97"},"nativeSrc":"26747:15:97","nodeType":"YulFunctionCall","src":"26747:15:97"}],"functionName":{"name":"mstore","nativeSrc":"26729:6:97","nodeType":"YulIdentifier","src":"26729:6:97"},"nativeSrc":"26729:34:97","nodeType":"YulFunctionCall","src":"26729:34:97"},"nativeSrc":"26729:34:97","nodeType":"YulExpressionStatement","src":"26729:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26783:9:97","nodeType":"YulIdentifier","src":"26783:9:97"},{"kind":"number","nativeSrc":"26794:2:97","nodeType":"YulLiteral","src":"26794:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"26779:3:97","nodeType":"YulIdentifier","src":"26779:3:97"},"nativeSrc":"26779:18:97","nodeType":"YulFunctionCall","src":"26779:18:97"},{"arguments":[{"name":"value1","nativeSrc":"26803:6:97","nodeType":"YulIdentifier","src":"26803:6:97"},{"name":"_1","nativeSrc":"26811:2:97","nodeType":"YulIdentifier","src":"26811:2:97"}],"functionName":{"name":"and","nativeSrc":"26799:3:97","nodeType":"YulIdentifier","src":"26799:3:97"},"nativeSrc":"26799:15:97","nodeType":"YulFunctionCall","src":"26799:15:97"}],"functionName":{"name":"mstore","nativeSrc":"26772:6:97","nodeType":"YulIdentifier","src":"26772:6:97"},"nativeSrc":"26772:43:97","nodeType":"YulFunctionCall","src":"26772:43:97"},"nativeSrc":"26772:43:97","nodeType":"YulExpressionStatement","src":"26772:43:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26835:9:97","nodeType":"YulIdentifier","src":"26835:9:97"},{"kind":"number","nativeSrc":"26846:2:97","nodeType":"YulLiteral","src":"26846:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"26831:3:97","nodeType":"YulIdentifier","src":"26831:3:97"},"nativeSrc":"26831:18:97","nodeType":"YulFunctionCall","src":"26831:18:97"},{"arguments":[{"name":"value2","nativeSrc":"26855:6:97","nodeType":"YulIdentifier","src":"26855:6:97"},{"kind":"number","nativeSrc":"26863:42:97","nodeType":"YulLiteral","src":"26863:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"26851:3:97","nodeType":"YulIdentifier","src":"26851:3:97"},"nativeSrc":"26851:55:97","nodeType":"YulFunctionCall","src":"26851:55:97"}],"functionName":{"name":"mstore","nativeSrc":"26824:6:97","nodeType":"YulIdentifier","src":"26824:6:97"},"nativeSrc":"26824:83:97","nodeType":"YulFunctionCall","src":"26824:83:97"},"nativeSrc":"26824:83:97","nodeType":"YulExpressionStatement","src":"26824:83:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26927:9:97","nodeType":"YulIdentifier","src":"26927:9:97"},{"kind":"number","nativeSrc":"26938:2:97","nodeType":"YulLiteral","src":"26938:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"26923:3:97","nodeType":"YulIdentifier","src":"26923:3:97"},"nativeSrc":"26923:18:97","nodeType":"YulFunctionCall","src":"26923:18:97"},{"name":"value3","nativeSrc":"26943:6:97","nodeType":"YulIdentifier","src":"26943:6:97"}],"functionName":{"name":"mstore","nativeSrc":"26916:6:97","nodeType":"YulIdentifier","src":"26916:6:97"},"nativeSrc":"26916:34:97","nodeType":"YulFunctionCall","src":"26916:34:97"},"nativeSrc":"26916:34:97","nodeType":"YulExpressionStatement","src":"26916:34:97"}]},"name":"abi_encode_tuple_t_uint16_t_uint16_t_address_t_uint256__to_t_uint16_t_uint16_t_address_t_uint256__fromStack_reversed","nativeSrc":"26477:479:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"26603:9:97","nodeType":"YulTypedName","src":"26603:9:97","type":""},{"name":"value3","nativeSrc":"26614:6:97","nodeType":"YulTypedName","src":"26614:6:97","type":""},{"name":"value2","nativeSrc":"26622:6:97","nodeType":"YulTypedName","src":"26622:6:97","type":""},{"name":"value1","nativeSrc":"26630:6:97","nodeType":"YulTypedName","src":"26630:6:97","type":""},{"name":"value0","nativeSrc":"26638:6:97","nodeType":"YulTypedName","src":"26638:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"26649:4:97","nodeType":"YulTypedName","src":"26649:4:97","type":""}],"src":"26477:479:97"},{"body":{"nativeSrc":"27046:235:97","nodeType":"YulBlock","src":"27046:235:97","statements":[{"nativeSrc":"27056:61:97","nodeType":"YulAssignment","src":"27056:61:97","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"27109:6:97","nodeType":"YulIdentifier","src":"27109:6:97"}],"functionName":{"name":"array_allocation_size_bytes","nativeSrc":"27081:27:97","nodeType":"YulIdentifier","src":"27081:27:97"},"nativeSrc":"27081:35:97","nodeType":"YulFunctionCall","src":"27081:35:97"}],"functionName":{"name":"allocate_memory","nativeSrc":"27065:15:97","nodeType":"YulIdentifier","src":"27065:15:97"},"nativeSrc":"27065:52:97","nodeType":"YulFunctionCall","src":"27065:52:97"},"variableNames":[{"name":"array","nativeSrc":"27056:5:97","nodeType":"YulIdentifier","src":"27056:5:97"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"27133:5:97","nodeType":"YulIdentifier","src":"27133:5:97"},{"name":"length","nativeSrc":"27140:6:97","nodeType":"YulIdentifier","src":"27140:6:97"}],"functionName":{"name":"mstore","nativeSrc":"27126:6:97","nodeType":"YulIdentifier","src":"27126:6:97"},"nativeSrc":"27126:21:97","nodeType":"YulFunctionCall","src":"27126:21:97"},"nativeSrc":"27126:21:97","nodeType":"YulExpressionStatement","src":"27126:21:97"},{"body":{"nativeSrc":"27185:16:97","nodeType":"YulBlock","src":"27185:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"27194:1:97","nodeType":"YulLiteral","src":"27194:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"27197:1:97","nodeType":"YulLiteral","src":"27197:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"27187:6:97","nodeType":"YulIdentifier","src":"27187:6:97"},"nativeSrc":"27187:12:97","nodeType":"YulFunctionCall","src":"27187:12:97"},"nativeSrc":"27187:12:97","nodeType":"YulExpressionStatement","src":"27187:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"27166:3:97","nodeType":"YulIdentifier","src":"27166:3:97"},{"name":"length","nativeSrc":"27171:6:97","nodeType":"YulIdentifier","src":"27171:6:97"}],"functionName":{"name":"add","nativeSrc":"27162:3:97","nodeType":"YulIdentifier","src":"27162:3:97"},"nativeSrc":"27162:16:97","nodeType":"YulFunctionCall","src":"27162:16:97"},{"name":"end","nativeSrc":"27180:3:97","nodeType":"YulIdentifier","src":"27180:3:97"}],"functionName":{"name":"gt","nativeSrc":"27159:2:97","nodeType":"YulIdentifier","src":"27159:2:97"},"nativeSrc":"27159:25:97","nodeType":"YulFunctionCall","src":"27159:25:97"},"nativeSrc":"27156:45:97","nodeType":"YulIf","src":"27156:45:97"},{"expression":{"arguments":[{"name":"src","nativeSrc":"27245:3:97","nodeType":"YulIdentifier","src":"27245:3:97"},{"arguments":[{"name":"array","nativeSrc":"27254:5:97","nodeType":"YulIdentifier","src":"27254:5:97"},{"kind":"number","nativeSrc":"27261:4:97","nodeType":"YulLiteral","src":"27261:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"27250:3:97","nodeType":"YulIdentifier","src":"27250:3:97"},"nativeSrc":"27250:16:97","nodeType":"YulFunctionCall","src":"27250:16:97"},{"name":"length","nativeSrc":"27268:6:97","nodeType":"YulIdentifier","src":"27268:6:97"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"27210:34:97","nodeType":"YulIdentifier","src":"27210:34:97"},"nativeSrc":"27210:65:97","nodeType":"YulFunctionCall","src":"27210:65:97"},"nativeSrc":"27210:65:97","nodeType":"YulExpressionStatement","src":"27210:65:97"}]},"name":"abi_decode_available_length_bytes_fromMemory","nativeSrc":"26961:320:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"27015:3:97","nodeType":"YulTypedName","src":"27015:3:97","type":""},{"name":"length","nativeSrc":"27020:6:97","nodeType":"YulTypedName","src":"27020:6:97","type":""},{"name":"end","nativeSrc":"27028:3:97","nodeType":"YulTypedName","src":"27028:3:97","type":""}],"returnVariables":[{"name":"array","nativeSrc":"27036:5:97","nodeType":"YulTypedName","src":"27036:5:97","type":""}],"src":"26961:320:97"},{"body":{"nativeSrc":"27349:172:97","nodeType":"YulBlock","src":"27349:172:97","statements":[{"body":{"nativeSrc":"27398:16:97","nodeType":"YulBlock","src":"27398:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"27407:1:97","nodeType":"YulLiteral","src":"27407:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"27410:1:97","nodeType":"YulLiteral","src":"27410:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"27400:6:97","nodeType":"YulIdentifier","src":"27400:6:97"},"nativeSrc":"27400:12:97","nodeType":"YulFunctionCall","src":"27400:12:97"},"nativeSrc":"27400:12:97","nodeType":"YulExpressionStatement","src":"27400:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"27377:6:97","nodeType":"YulIdentifier","src":"27377:6:97"},{"kind":"number","nativeSrc":"27385:4:97","nodeType":"YulLiteral","src":"27385:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"27373:3:97","nodeType":"YulIdentifier","src":"27373:3:97"},"nativeSrc":"27373:17:97","nodeType":"YulFunctionCall","src":"27373:17:97"},{"name":"end","nativeSrc":"27392:3:97","nodeType":"YulIdentifier","src":"27392:3:97"}],"functionName":{"name":"slt","nativeSrc":"27369:3:97","nodeType":"YulIdentifier","src":"27369:3:97"},"nativeSrc":"27369:27:97","nodeType":"YulFunctionCall","src":"27369:27:97"}],"functionName":{"name":"iszero","nativeSrc":"27362:6:97","nodeType":"YulIdentifier","src":"27362:6:97"},"nativeSrc":"27362:35:97","nodeType":"YulFunctionCall","src":"27362:35:97"},"nativeSrc":"27359:55:97","nodeType":"YulIf","src":"27359:55:97"},{"nativeSrc":"27423:92:97","nodeType":"YulAssignment","src":"27423:92:97","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"27481:6:97","nodeType":"YulIdentifier","src":"27481:6:97"},{"kind":"number","nativeSrc":"27489:4:97","nodeType":"YulLiteral","src":"27489:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"27477:3:97","nodeType":"YulIdentifier","src":"27477:3:97"},"nativeSrc":"27477:17:97","nodeType":"YulFunctionCall","src":"27477:17:97"},{"arguments":[{"name":"offset","nativeSrc":"27502:6:97","nodeType":"YulIdentifier","src":"27502:6:97"}],"functionName":{"name":"mload","nativeSrc":"27496:5:97","nodeType":"YulIdentifier","src":"27496:5:97"},"nativeSrc":"27496:13:97","nodeType":"YulFunctionCall","src":"27496:13:97"},{"name":"end","nativeSrc":"27511:3:97","nodeType":"YulIdentifier","src":"27511:3:97"}],"functionName":{"name":"abi_decode_available_length_bytes_fromMemory","nativeSrc":"27432:44:97","nodeType":"YulIdentifier","src":"27432:44:97"},"nativeSrc":"27432:83:97","nodeType":"YulFunctionCall","src":"27432:83:97"},"variableNames":[{"name":"array","nativeSrc":"27423:5:97","nodeType":"YulIdentifier","src":"27423:5:97"}]}]},"name":"abi_decode_bytes_fromMemory","nativeSrc":"27286:235:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"27323:6:97","nodeType":"YulTypedName","src":"27323:6:97","type":""},{"name":"end","nativeSrc":"27331:3:97","nodeType":"YulTypedName","src":"27331:3:97","type":""}],"returnVariables":[{"name":"array","nativeSrc":"27339:5:97","nodeType":"YulTypedName","src":"27339:5:97","type":""}],"src":"27286:235:97"},{"body":{"nativeSrc":"27616:245:97","nodeType":"YulBlock","src":"27616:245:97","statements":[{"body":{"nativeSrc":"27662:16:97","nodeType":"YulBlock","src":"27662:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"27671:1:97","nodeType":"YulLiteral","src":"27671:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"27674:1:97","nodeType":"YulLiteral","src":"27674:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"27664:6:97","nodeType":"YulIdentifier","src":"27664:6:97"},"nativeSrc":"27664:12:97","nodeType":"YulFunctionCall","src":"27664:12:97"},"nativeSrc":"27664:12:97","nodeType":"YulExpressionStatement","src":"27664:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"27637:7:97","nodeType":"YulIdentifier","src":"27637:7:97"},{"name":"headStart","nativeSrc":"27646:9:97","nodeType":"YulIdentifier","src":"27646:9:97"}],"functionName":{"name":"sub","nativeSrc":"27633:3:97","nodeType":"YulIdentifier","src":"27633:3:97"},"nativeSrc":"27633:23:97","nodeType":"YulFunctionCall","src":"27633:23:97"},{"kind":"number","nativeSrc":"27658:2:97","nodeType":"YulLiteral","src":"27658:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"27629:3:97","nodeType":"YulIdentifier","src":"27629:3:97"},"nativeSrc":"27629:32:97","nodeType":"YulFunctionCall","src":"27629:32:97"},"nativeSrc":"27626:52:97","nodeType":"YulIf","src":"27626:52:97"},{"nativeSrc":"27687:30:97","nodeType":"YulVariableDeclaration","src":"27687:30:97","value":{"arguments":[{"name":"headStart","nativeSrc":"27707:9:97","nodeType":"YulIdentifier","src":"27707:9:97"}],"functionName":{"name":"mload","nativeSrc":"27701:5:97","nodeType":"YulIdentifier","src":"27701:5:97"},"nativeSrc":"27701:16:97","nodeType":"YulFunctionCall","src":"27701:16:97"},"variables":[{"name":"offset","nativeSrc":"27691:6:97","nodeType":"YulTypedName","src":"27691:6:97","type":""}]},{"body":{"nativeSrc":"27760:16:97","nodeType":"YulBlock","src":"27760:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"27769:1:97","nodeType":"YulLiteral","src":"27769:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"27772:1:97","nodeType":"YulLiteral","src":"27772:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"27762:6:97","nodeType":"YulIdentifier","src":"27762:6:97"},"nativeSrc":"27762:12:97","nodeType":"YulFunctionCall","src":"27762:12:97"},"nativeSrc":"27762:12:97","nodeType":"YulExpressionStatement","src":"27762:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"27732:6:97","nodeType":"YulIdentifier","src":"27732:6:97"},{"kind":"number","nativeSrc":"27740:18:97","nodeType":"YulLiteral","src":"27740:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"27729:2:97","nodeType":"YulIdentifier","src":"27729:2:97"},"nativeSrc":"27729:30:97","nodeType":"YulFunctionCall","src":"27729:30:97"},"nativeSrc":"27726:50:97","nodeType":"YulIf","src":"27726:50:97"},{"nativeSrc":"27785:70:97","nodeType":"YulAssignment","src":"27785:70:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27827:9:97","nodeType":"YulIdentifier","src":"27827:9:97"},{"name":"offset","nativeSrc":"27838:6:97","nodeType":"YulIdentifier","src":"27838:6:97"}],"functionName":{"name":"add","nativeSrc":"27823:3:97","nodeType":"YulIdentifier","src":"27823:3:97"},"nativeSrc":"27823:22:97","nodeType":"YulFunctionCall","src":"27823:22:97"},{"name":"dataEnd","nativeSrc":"27847:7:97","nodeType":"YulIdentifier","src":"27847:7:97"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nativeSrc":"27795:27:97","nodeType":"YulIdentifier","src":"27795:27:97"},"nativeSrc":"27795:60:97","nodeType":"YulFunctionCall","src":"27795:60:97"},"variableNames":[{"name":"value0","nativeSrc":"27785:6:97","nodeType":"YulIdentifier","src":"27785:6:97"}]}]},"name":"abi_decode_tuple_t_bytes_memory_ptr_fromMemory","nativeSrc":"27526:335:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"27582:9:97","nodeType":"YulTypedName","src":"27582:9:97","type":""},{"name":"dataEnd","nativeSrc":"27593:7:97","nodeType":"YulTypedName","src":"27593:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"27605:6:97","nodeType":"YulTypedName","src":"27605:6:97","type":""}],"src":"27526:335:97"},{"body":{"nativeSrc":"28040:313:97","nodeType":"YulBlock","src":"28040:313:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"28057:9:97","nodeType":"YulIdentifier","src":"28057:9:97"},{"kind":"number","nativeSrc":"28068:2:97","nodeType":"YulLiteral","src":"28068:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"28050:6:97","nodeType":"YulIdentifier","src":"28050:6:97"},"nativeSrc":"28050:21:97","nodeType":"YulFunctionCall","src":"28050:21:97"},"nativeSrc":"28050:21:97","nodeType":"YulExpressionStatement","src":"28050:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28091:9:97","nodeType":"YulIdentifier","src":"28091:9:97"},{"kind":"number","nativeSrc":"28102:2:97","nodeType":"YulLiteral","src":"28102:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"28087:3:97","nodeType":"YulIdentifier","src":"28087:3:97"},"nativeSrc":"28087:18:97","nodeType":"YulFunctionCall","src":"28087:18:97"},{"kind":"number","nativeSrc":"28107:2:97","nodeType":"YulLiteral","src":"28107:2:97","type":"","value":"83"}],"functionName":{"name":"mstore","nativeSrc":"28080:6:97","nodeType":"YulIdentifier","src":"28080:6:97"},"nativeSrc":"28080:30:97","nodeType":"YulFunctionCall","src":"28080:30:97"},"nativeSrc":"28080:30:97","nodeType":"YulExpressionStatement","src":"28080:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28130:9:97","nodeType":"YulIdentifier","src":"28130:9:97"},{"kind":"number","nativeSrc":"28141:2:97","nodeType":"YulLiteral","src":"28141:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"28126:3:97","nodeType":"YulIdentifier","src":"28126:3:97"},"nativeSrc":"28126:18:97","nodeType":"YulFunctionCall","src":"28126:18:97"},{"hexValue":"4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a657865","kind":"string","nativeSrc":"28146:34:97","nodeType":"YulLiteral","src":"28146:34:97","type":"","value":"OmnichainGovernanceExecutor::exe"}],"functionName":{"name":"mstore","nativeSrc":"28119:6:97","nodeType":"YulIdentifier","src":"28119:6:97"},"nativeSrc":"28119:62:97","nodeType":"YulFunctionCall","src":"28119:62:97"},"nativeSrc":"28119:62:97","nodeType":"YulExpressionStatement","src":"28119:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28201:9:97","nodeType":"YulIdentifier","src":"28201:9:97"},{"kind":"number","nativeSrc":"28212:2:97","nodeType":"YulLiteral","src":"28212:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"28197:3:97","nodeType":"YulIdentifier","src":"28197:3:97"},"nativeSrc":"28197:18:97","nodeType":"YulFunctionCall","src":"28197:18:97"},{"hexValue":"637574653a2070726f706f73616c2063616e206f6e6c79206265206578656375","kind":"string","nativeSrc":"28217:34:97","nodeType":"YulLiteral","src":"28217:34:97","type":"","value":"cute: proposal can only be execu"}],"functionName":{"name":"mstore","nativeSrc":"28190:6:97","nodeType":"YulIdentifier","src":"28190:6:97"},"nativeSrc":"28190:62:97","nodeType":"YulFunctionCall","src":"28190:62:97"},"nativeSrc":"28190:62:97","nodeType":"YulExpressionStatement","src":"28190:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28272:9:97","nodeType":"YulIdentifier","src":"28272:9:97"},{"kind":"number","nativeSrc":"28283:3:97","nodeType":"YulLiteral","src":"28283:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"28268:3:97","nodeType":"YulIdentifier","src":"28268:3:97"},"nativeSrc":"28268:19:97","nodeType":"YulFunctionCall","src":"28268:19:97"},{"hexValue":"74656420696620697420697320717565756564","kind":"string","nativeSrc":"28289:21:97","nodeType":"YulLiteral","src":"28289:21:97","type":"","value":"ted if it is queued"}],"functionName":{"name":"mstore","nativeSrc":"28261:6:97","nodeType":"YulIdentifier","src":"28261:6:97"},"nativeSrc":"28261:50:97","nodeType":"YulFunctionCall","src":"28261:50:97"},"nativeSrc":"28261:50:97","nodeType":"YulExpressionStatement","src":"28261:50:97"},{"nativeSrc":"28320:27:97","nodeType":"YulAssignment","src":"28320:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"28332:9:97","nodeType":"YulIdentifier","src":"28332:9:97"},{"kind":"number","nativeSrc":"28343:3:97","nodeType":"YulLiteral","src":"28343:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"28328:3:97","nodeType":"YulIdentifier","src":"28328:3:97"},"nativeSrc":"28328:19:97","nodeType":"YulFunctionCall","src":"28328:19:97"},"variableNames":[{"name":"tail","nativeSrc":"28320:4:97","nodeType":"YulIdentifier","src":"28320:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_e4bcaaea546383f3f12ee7e8affb6838fe2629172da652fe547c7dfbf4d39f35__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"27866:487:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"28017:9:97","nodeType":"YulTypedName","src":"28017:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"28031:4:97","nodeType":"YulTypedName","src":"28031:4:97","type":""}],"src":"27866:487:97"},{"body":{"nativeSrc":"28532:302:97","nodeType":"YulBlock","src":"28532:302:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"28549:9:97","nodeType":"YulIdentifier","src":"28549:9:97"},{"kind":"number","nativeSrc":"28560:2:97","nodeType":"YulLiteral","src":"28560:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"28542:6:97","nodeType":"YulIdentifier","src":"28542:6:97"},"nativeSrc":"28542:21:97","nodeType":"YulFunctionCall","src":"28542:21:97"},"nativeSrc":"28542:21:97","nodeType":"YulExpressionStatement","src":"28542:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28583:9:97","nodeType":"YulIdentifier","src":"28583:9:97"},{"kind":"number","nativeSrc":"28594:2:97","nodeType":"YulLiteral","src":"28594:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"28579:3:97","nodeType":"YulIdentifier","src":"28579:3:97"},"nativeSrc":"28579:18:97","nodeType":"YulFunctionCall","src":"28579:18:97"},{"kind":"number","nativeSrc":"28599:2:97","nodeType":"YulLiteral","src":"28599:2:97","type":"","value":"72"}],"functionName":{"name":"mstore","nativeSrc":"28572:6:97","nodeType":"YulIdentifier","src":"28572:6:97"},"nativeSrc":"28572:30:97","nodeType":"YulFunctionCall","src":"28572:30:97"},"nativeSrc":"28572:30:97","nodeType":"YulExpressionStatement","src":"28572:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28622:9:97","nodeType":"YulIdentifier","src":"28622:9:97"},{"kind":"number","nativeSrc":"28633:2:97","nodeType":"YulLiteral","src":"28633:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"28618:3:97","nodeType":"YulIdentifier","src":"28618:3:97"},"nativeSrc":"28618:18:97","nodeType":"YulFunctionCall","src":"28618:18:97"},{"hexValue":"4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a5f626c","kind":"string","nativeSrc":"28638:34:97","nodeType":"YulLiteral","src":"28638:34:97","type":"","value":"OmnichainGovernanceExecutor::_bl"}],"functionName":{"name":"mstore","nativeSrc":"28611:6:97","nodeType":"YulIdentifier","src":"28611:6:97"},"nativeSrc":"28611:62:97","nodeType":"YulFunctionCall","src":"28611:62:97"},"nativeSrc":"28611:62:97","nodeType":"YulExpressionStatement","src":"28611:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28693:9:97","nodeType":"YulIdentifier","src":"28693:9:97"},{"kind":"number","nativeSrc":"28704:2:97","nodeType":"YulLiteral","src":"28704:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"28689:3:97","nodeType":"YulIdentifier","src":"28689:3:97"},"nativeSrc":"28689:18:97","nodeType":"YulFunctionCall","src":"28689:18:97"},{"hexValue":"6f636b696e674c7a526563656976653a20696e76616c696420736f7572636520","kind":"string","nativeSrc":"28709:34:97","nodeType":"YulLiteral","src":"28709:34:97","type":"","value":"ockingLzReceive: invalid source "}],"functionName":{"name":"mstore","nativeSrc":"28682:6:97","nodeType":"YulIdentifier","src":"28682:6:97"},"nativeSrc":"28682:62:97","nodeType":"YulFunctionCall","src":"28682:62:97"},"nativeSrc":"28682:62:97","nodeType":"YulExpressionStatement","src":"28682:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28764:9:97","nodeType":"YulIdentifier","src":"28764:9:97"},{"kind":"number","nativeSrc":"28775:3:97","nodeType":"YulLiteral","src":"28775:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"28760:3:97","nodeType":"YulIdentifier","src":"28760:3:97"},"nativeSrc":"28760:19:97","nodeType":"YulFunctionCall","src":"28760:19:97"},{"hexValue":"636861696e206964","kind":"string","nativeSrc":"28781:10:97","nodeType":"YulLiteral","src":"28781:10:97","type":"","value":"chain id"}],"functionName":{"name":"mstore","nativeSrc":"28753:6:97","nodeType":"YulIdentifier","src":"28753:6:97"},"nativeSrc":"28753:39:97","nodeType":"YulFunctionCall","src":"28753:39:97"},"nativeSrc":"28753:39:97","nodeType":"YulExpressionStatement","src":"28753:39:97"},{"nativeSrc":"28801:27:97","nodeType":"YulAssignment","src":"28801:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"28813:9:97","nodeType":"YulIdentifier","src":"28813:9:97"},{"kind":"number","nativeSrc":"28824:3:97","nodeType":"YulLiteral","src":"28824:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"28809:3:97","nodeType":"YulIdentifier","src":"28809:3:97"},"nativeSrc":"28809:19:97","nodeType":"YulFunctionCall","src":"28809:19:97"},"variableNames":[{"name":"tail","nativeSrc":"28801:4:97","nodeType":"YulIdentifier","src":"28801:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_d275682feaebe22ea68148a3f20b1a2d3f04f7bd9d77ea436ebdac94de138df7__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"28358:476:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"28509:9:97","nodeType":"YulTypedName","src":"28509:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"28523:4:97","nodeType":"YulTypedName","src":"28523:4:97","type":""}],"src":"28358:476:97"},{"body":{"nativeSrc":"29056:338:97","nodeType":"YulBlock","src":"29056:338:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"29073:9:97","nodeType":"YulIdentifier","src":"29073:9:97"},{"arguments":[{"name":"value0","nativeSrc":"29088:6:97","nodeType":"YulIdentifier","src":"29088:6:97"},{"kind":"number","nativeSrc":"29096:6:97","nodeType":"YulLiteral","src":"29096:6:97","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"29084:3:97","nodeType":"YulIdentifier","src":"29084:3:97"},"nativeSrc":"29084:19:97","nodeType":"YulFunctionCall","src":"29084:19:97"}],"functionName":{"name":"mstore","nativeSrc":"29066:6:97","nodeType":"YulIdentifier","src":"29066:6:97"},"nativeSrc":"29066:38:97","nodeType":"YulFunctionCall","src":"29066:38:97"},"nativeSrc":"29066:38:97","nodeType":"YulExpressionStatement","src":"29066:38:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29124:9:97","nodeType":"YulIdentifier","src":"29124:9:97"},{"kind":"number","nativeSrc":"29135:2:97","nodeType":"YulLiteral","src":"29135:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29120:3:97","nodeType":"YulIdentifier","src":"29120:3:97"},"nativeSrc":"29120:18:97","nodeType":"YulFunctionCall","src":"29120:18:97"},{"kind":"number","nativeSrc":"29140:3:97","nodeType":"YulLiteral","src":"29140:3:97","type":"","value":"128"}],"functionName":{"name":"mstore","nativeSrc":"29113:6:97","nodeType":"YulIdentifier","src":"29113:6:97"},"nativeSrc":"29113:31:97","nodeType":"YulFunctionCall","src":"29113:31:97"},"nativeSrc":"29113:31:97","nodeType":"YulExpressionStatement","src":"29113:31:97"},{"nativeSrc":"29153:59:97","nodeType":"YulVariableDeclaration","src":"29153:59:97","value":{"arguments":[{"name":"value1","nativeSrc":"29184:6:97","nodeType":"YulIdentifier","src":"29184:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"29196:9:97","nodeType":"YulIdentifier","src":"29196:9:97"},{"kind":"number","nativeSrc":"29207:3:97","nodeType":"YulLiteral","src":"29207:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"29192:3:97","nodeType":"YulIdentifier","src":"29192:3:97"},"nativeSrc":"29192:19:97","nodeType":"YulFunctionCall","src":"29192:19:97"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"29167:16:97","nodeType":"YulIdentifier","src":"29167:16:97"},"nativeSrc":"29167:45:97","nodeType":"YulFunctionCall","src":"29167:45:97"},"variables":[{"name":"tail_1","nativeSrc":"29157:6:97","nodeType":"YulTypedName","src":"29157:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29232:9:97","nodeType":"YulIdentifier","src":"29232:9:97"},{"kind":"number","nativeSrc":"29243:2:97","nodeType":"YulLiteral","src":"29243:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"29228:3:97","nodeType":"YulIdentifier","src":"29228:3:97"},"nativeSrc":"29228:18:97","nodeType":"YulFunctionCall","src":"29228:18:97"},{"arguments":[{"name":"value2","nativeSrc":"29252:6:97","nodeType":"YulIdentifier","src":"29252:6:97"},{"kind":"number","nativeSrc":"29260:18:97","nodeType":"YulLiteral","src":"29260:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"29248:3:97","nodeType":"YulIdentifier","src":"29248:3:97"},"nativeSrc":"29248:31:97","nodeType":"YulFunctionCall","src":"29248:31:97"}],"functionName":{"name":"mstore","nativeSrc":"29221:6:97","nodeType":"YulIdentifier","src":"29221:6:97"},"nativeSrc":"29221:59:97","nodeType":"YulFunctionCall","src":"29221:59:97"},"nativeSrc":"29221:59:97","nodeType":"YulExpressionStatement","src":"29221:59:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29300:9:97","nodeType":"YulIdentifier","src":"29300:9:97"},{"kind":"number","nativeSrc":"29311:2:97","nodeType":"YulLiteral","src":"29311:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"29296:3:97","nodeType":"YulIdentifier","src":"29296:3:97"},"nativeSrc":"29296:18:97","nodeType":"YulFunctionCall","src":"29296:18:97"},{"arguments":[{"name":"tail_1","nativeSrc":"29320:6:97","nodeType":"YulIdentifier","src":"29320:6:97"},{"name":"headStart","nativeSrc":"29328:9:97","nodeType":"YulIdentifier","src":"29328:9:97"}],"functionName":{"name":"sub","nativeSrc":"29316:3:97","nodeType":"YulIdentifier","src":"29316:3:97"},"nativeSrc":"29316:22:97","nodeType":"YulFunctionCall","src":"29316:22:97"}],"functionName":{"name":"mstore","nativeSrc":"29289:6:97","nodeType":"YulIdentifier","src":"29289:6:97"},"nativeSrc":"29289:50:97","nodeType":"YulFunctionCall","src":"29289:50:97"},"nativeSrc":"29289:50:97","nodeType":"YulExpressionStatement","src":"29289:50:97"},{"nativeSrc":"29348:40:97","nodeType":"YulAssignment","src":"29348:40:97","value":{"arguments":[{"name":"value3","nativeSrc":"29373:6:97","nodeType":"YulIdentifier","src":"29373:6:97"},{"name":"tail_1","nativeSrc":"29381:6:97","nodeType":"YulIdentifier","src":"29381:6:97"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"29356:16:97","nodeType":"YulIdentifier","src":"29356:16:97"},"nativeSrc":"29356:32:97","nodeType":"YulFunctionCall","src":"29356:32:97"},"variableNames":[{"name":"tail","nativeSrc":"29348:4:97","nodeType":"YulIdentifier","src":"29348:4:97"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"28839:555:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29001:9:97","nodeType":"YulTypedName","src":"29001:9:97","type":""},{"name":"value3","nativeSrc":"29012:6:97","nodeType":"YulTypedName","src":"29012:6:97","type":""},{"name":"value2","nativeSrc":"29020:6:97","nodeType":"YulTypedName","src":"29020:6:97","type":""},{"name":"value1","nativeSrc":"29028:6:97","nodeType":"YulTypedName","src":"29028:6:97","type":""},{"name":"value0","nativeSrc":"29036:6:97","nodeType":"YulTypedName","src":"29036:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"29047:4:97","nodeType":"YulTypedName","src":"29047:4:97","type":""}],"src":"28839:555:97"},{"body":{"nativeSrc":"29536:150:97","nodeType":"YulBlock","src":"29536:150:97","statements":[{"nativeSrc":"29546:27:97","nodeType":"YulVariableDeclaration","src":"29546:27:97","value":{"arguments":[{"name":"value0","nativeSrc":"29566:6:97","nodeType":"YulIdentifier","src":"29566:6:97"}],"functionName":{"name":"mload","nativeSrc":"29560:5:97","nodeType":"YulIdentifier","src":"29560:5:97"},"nativeSrc":"29560:13:97","nodeType":"YulFunctionCall","src":"29560:13:97"},"variables":[{"name":"length","nativeSrc":"29550:6:97","nodeType":"YulTypedName","src":"29550:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"29621:6:97","nodeType":"YulIdentifier","src":"29621:6:97"},{"kind":"number","nativeSrc":"29629:4:97","nodeType":"YulLiteral","src":"29629:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"29617:3:97","nodeType":"YulIdentifier","src":"29617:3:97"},"nativeSrc":"29617:17:97","nodeType":"YulFunctionCall","src":"29617:17:97"},{"name":"pos","nativeSrc":"29636:3:97","nodeType":"YulIdentifier","src":"29636:3:97"},{"name":"length","nativeSrc":"29641:6:97","nodeType":"YulIdentifier","src":"29641:6:97"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"29582:34:97","nodeType":"YulIdentifier","src":"29582:34:97"},"nativeSrc":"29582:66:97","nodeType":"YulFunctionCall","src":"29582:66:97"},"nativeSrc":"29582:66:97","nodeType":"YulExpressionStatement","src":"29582:66:97"},{"nativeSrc":"29657:23:97","nodeType":"YulAssignment","src":"29657:23:97","value":{"arguments":[{"name":"pos","nativeSrc":"29668:3:97","nodeType":"YulIdentifier","src":"29668:3:97"},{"name":"length","nativeSrc":"29673:6:97","nodeType":"YulIdentifier","src":"29673:6:97"}],"functionName":{"name":"add","nativeSrc":"29664:3:97","nodeType":"YulIdentifier","src":"29664:3:97"},"nativeSrc":"29664:16:97","nodeType":"YulFunctionCall","src":"29664:16:97"},"variableNames":[{"name":"end","nativeSrc":"29657:3:97","nodeType":"YulIdentifier","src":"29657:3:97"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"29399:287:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"29512:3:97","nodeType":"YulTypedName","src":"29512:3:97","type":""},{"name":"value0","nativeSrc":"29517:6:97","nodeType":"YulTypedName","src":"29517:6:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"29528:3:97","nodeType":"YulTypedName","src":"29528:3:97","type":""}],"src":"29399:287:97"},{"body":{"nativeSrc":"29836:166:97","nodeType":"YulBlock","src":"29836:166:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"29853:9:97","nodeType":"YulIdentifier","src":"29853:9:97"},{"arguments":[{"name":"value0","nativeSrc":"29868:6:97","nodeType":"YulIdentifier","src":"29868:6:97"},{"kind":"number","nativeSrc":"29876:18:97","nodeType":"YulLiteral","src":"29876:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"29864:3:97","nodeType":"YulIdentifier","src":"29864:3:97"},"nativeSrc":"29864:31:97","nodeType":"YulFunctionCall","src":"29864:31:97"}],"functionName":{"name":"mstore","nativeSrc":"29846:6:97","nodeType":"YulIdentifier","src":"29846:6:97"},"nativeSrc":"29846:50:97","nodeType":"YulFunctionCall","src":"29846:50:97"},"nativeSrc":"29846:50:97","nodeType":"YulExpressionStatement","src":"29846:50:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29916:9:97","nodeType":"YulIdentifier","src":"29916:9:97"},{"kind":"number","nativeSrc":"29927:2:97","nodeType":"YulLiteral","src":"29927:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29912:3:97","nodeType":"YulIdentifier","src":"29912:3:97"},"nativeSrc":"29912:18:97","nodeType":"YulFunctionCall","src":"29912:18:97"},{"kind":"number","nativeSrc":"29932:2:97","nodeType":"YulLiteral","src":"29932:2:97","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"29905:6:97","nodeType":"YulIdentifier","src":"29905:6:97"},"nativeSrc":"29905:30:97","nodeType":"YulFunctionCall","src":"29905:30:97"},"nativeSrc":"29905:30:97","nodeType":"YulExpressionStatement","src":"29905:30:97"},{"nativeSrc":"29944:52:97","nodeType":"YulAssignment","src":"29944:52:97","value":{"arguments":[{"name":"value1","nativeSrc":"29969:6:97","nodeType":"YulIdentifier","src":"29969:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"29981:9:97","nodeType":"YulIdentifier","src":"29981:9:97"},{"kind":"number","nativeSrc":"29992:2:97","nodeType":"YulLiteral","src":"29992:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"29977:3:97","nodeType":"YulIdentifier","src":"29977:3:97"},"nativeSrc":"29977:18:97","nodeType":"YulFunctionCall","src":"29977:18:97"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"29952:16:97","nodeType":"YulIdentifier","src":"29952:16:97"},"nativeSrc":"29952:44:97","nodeType":"YulFunctionCall","src":"29952:44:97"},"variableNames":[{"name":"tail","nativeSrc":"29944:4:97","nodeType":"YulIdentifier","src":"29944:4:97"}]}]},"name":"abi_encode_tuple_t_uint64_t_bytes_memory_ptr__to_t_uint64_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"29691:311:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29797:9:97","nodeType":"YulTypedName","src":"29797:9:97","type":""},{"name":"value1","nativeSrc":"29808:6:97","nodeType":"YulTypedName","src":"29808:6:97","type":""},{"name":"value0","nativeSrc":"29816:6:97","nodeType":"YulTypedName","src":"29816:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"29827:4:97","nodeType":"YulTypedName","src":"29827:4:97","type":""}],"src":"29691:311:97"},{"body":{"nativeSrc":"30181:182:97","nodeType":"YulBlock","src":"30181:182:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"30198:9:97","nodeType":"YulIdentifier","src":"30198:9:97"},{"kind":"number","nativeSrc":"30209:2:97","nodeType":"YulLiteral","src":"30209:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"30191:6:97","nodeType":"YulIdentifier","src":"30191:6:97"},"nativeSrc":"30191:21:97","nodeType":"YulFunctionCall","src":"30191:21:97"},"nativeSrc":"30191:21:97","nodeType":"YulExpressionStatement","src":"30191:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30232:9:97","nodeType":"YulIdentifier","src":"30232:9:97"},{"kind":"number","nativeSrc":"30243:2:97","nodeType":"YulLiteral","src":"30243:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"30228:3:97","nodeType":"YulIdentifier","src":"30228:3:97"},"nativeSrc":"30228:18:97","nodeType":"YulFunctionCall","src":"30228:18:97"},{"kind":"number","nativeSrc":"30248:2:97","nodeType":"YulLiteral","src":"30248:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"30221:6:97","nodeType":"YulIdentifier","src":"30221:6:97"},"nativeSrc":"30221:30:97","nodeType":"YulFunctionCall","src":"30221:30:97"},"nativeSrc":"30221:30:97","nodeType":"YulExpressionStatement","src":"30221:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30271:9:97","nodeType":"YulIdentifier","src":"30271:9:97"},{"kind":"number","nativeSrc":"30282:2:97","nodeType":"YulLiteral","src":"30282:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"30267:3:97","nodeType":"YulIdentifier","src":"30267:3:97"},"nativeSrc":"30267:18:97","nodeType":"YulFunctionCall","src":"30267:18:97"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nativeSrc":"30287:34:97","nodeType":"YulLiteral","src":"30287:34:97","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nativeSrc":"30260:6:97","nodeType":"YulIdentifier","src":"30260:6:97"},"nativeSrc":"30260:62:97","nodeType":"YulFunctionCall","src":"30260:62:97"},"nativeSrc":"30260:62:97","nodeType":"YulExpressionStatement","src":"30260:62:97"},{"nativeSrc":"30331:26:97","nodeType":"YulAssignment","src":"30331:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"30343:9:97","nodeType":"YulIdentifier","src":"30343:9:97"},{"kind":"number","nativeSrc":"30354:2:97","nodeType":"YulLiteral","src":"30354:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"30339:3:97","nodeType":"YulIdentifier","src":"30339:3:97"},"nativeSrc":"30339:18:97","nodeType":"YulFunctionCall","src":"30339:18:97"},"variableNames":[{"name":"tail","nativeSrc":"30331:4:97","nodeType":"YulIdentifier","src":"30331:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"30007:356:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"30158:9:97","nodeType":"YulTypedName","src":"30158:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"30172:4:97","nodeType":"YulTypedName","src":"30172:4:97","type":""}],"src":"30007:356:97"},{"body":{"nativeSrc":"30475:289:97","nodeType":"YulBlock","src":"30475:289:97","statements":[{"body":{"nativeSrc":"30521:16:97","nodeType":"YulBlock","src":"30521:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"30530:1:97","nodeType":"YulLiteral","src":"30530:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"30533:1:97","nodeType":"YulLiteral","src":"30533:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"30523:6:97","nodeType":"YulIdentifier","src":"30523:6:97"},"nativeSrc":"30523:12:97","nodeType":"YulFunctionCall","src":"30523:12:97"},"nativeSrc":"30523:12:97","nodeType":"YulExpressionStatement","src":"30523:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"30496:7:97","nodeType":"YulIdentifier","src":"30496:7:97"},{"name":"headStart","nativeSrc":"30505:9:97","nodeType":"YulIdentifier","src":"30505:9:97"}],"functionName":{"name":"sub","nativeSrc":"30492:3:97","nodeType":"YulIdentifier","src":"30492:3:97"},"nativeSrc":"30492:23:97","nodeType":"YulFunctionCall","src":"30492:23:97"},{"kind":"number","nativeSrc":"30517:2:97","nodeType":"YulLiteral","src":"30517:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"30488:3:97","nodeType":"YulIdentifier","src":"30488:3:97"},"nativeSrc":"30488:32:97","nodeType":"YulFunctionCall","src":"30488:32:97"},"nativeSrc":"30485:52:97","nodeType":"YulIf","src":"30485:52:97"},{"nativeSrc":"30546:30:97","nodeType":"YulVariableDeclaration","src":"30546:30:97","value":{"arguments":[{"name":"headStart","nativeSrc":"30566:9:97","nodeType":"YulIdentifier","src":"30566:9:97"}],"functionName":{"name":"mload","nativeSrc":"30560:5:97","nodeType":"YulIdentifier","src":"30560:5:97"},"nativeSrc":"30560:16:97","nodeType":"YulFunctionCall","src":"30560:16:97"},"variables":[{"name":"offset","nativeSrc":"30550:6:97","nodeType":"YulTypedName","src":"30550:6:97","type":""}]},{"body":{"nativeSrc":"30619:16:97","nodeType":"YulBlock","src":"30619:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"30628:1:97","nodeType":"YulLiteral","src":"30628:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"30631:1:97","nodeType":"YulLiteral","src":"30631:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"30621:6:97","nodeType":"YulIdentifier","src":"30621:6:97"},"nativeSrc":"30621:12:97","nodeType":"YulFunctionCall","src":"30621:12:97"},"nativeSrc":"30621:12:97","nodeType":"YulExpressionStatement","src":"30621:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"30591:6:97","nodeType":"YulIdentifier","src":"30591:6:97"},{"kind":"number","nativeSrc":"30599:18:97","nodeType":"YulLiteral","src":"30599:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"30588:2:97","nodeType":"YulIdentifier","src":"30588:2:97"},"nativeSrc":"30588:30:97","nodeType":"YulFunctionCall","src":"30588:30:97"},"nativeSrc":"30585:50:97","nodeType":"YulIf","src":"30585:50:97"},{"nativeSrc":"30644:70:97","nodeType":"YulAssignment","src":"30644:70:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30686:9:97","nodeType":"YulIdentifier","src":"30686:9:97"},{"name":"offset","nativeSrc":"30697:6:97","nodeType":"YulIdentifier","src":"30697:6:97"}],"functionName":{"name":"add","nativeSrc":"30682:3:97","nodeType":"YulIdentifier","src":"30682:3:97"},"nativeSrc":"30682:22:97","nodeType":"YulFunctionCall","src":"30682:22:97"},{"name":"dataEnd","nativeSrc":"30706:7:97","nodeType":"YulIdentifier","src":"30706:7:97"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nativeSrc":"30654:27:97","nodeType":"YulIdentifier","src":"30654:27:97"},"nativeSrc":"30654:60:97","nodeType":"YulFunctionCall","src":"30654:60:97"},"variableNames":[{"name":"value0","nativeSrc":"30644:6:97","nodeType":"YulIdentifier","src":"30644:6:97"}]},{"nativeSrc":"30723:35:97","nodeType":"YulAssignment","src":"30723:35:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30743:9:97","nodeType":"YulIdentifier","src":"30743:9:97"},{"kind":"number","nativeSrc":"30754:2:97","nodeType":"YulLiteral","src":"30754:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"30739:3:97","nodeType":"YulIdentifier","src":"30739:3:97"},"nativeSrc":"30739:18:97","nodeType":"YulFunctionCall","src":"30739:18:97"}],"functionName":{"name":"mload","nativeSrc":"30733:5:97","nodeType":"YulIdentifier","src":"30733:5:97"},"nativeSrc":"30733:25:97","nodeType":"YulFunctionCall","src":"30733:25:97"},"variableNames":[{"name":"value1","nativeSrc":"30723:6:97","nodeType":"YulIdentifier","src":"30723:6:97"}]}]},"name":"abi_decode_tuple_t_bytes_memory_ptrt_uint256_fromMemory","nativeSrc":"30368:396:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"30433:9:97","nodeType":"YulTypedName","src":"30433:9:97","type":""},{"name":"dataEnd","nativeSrc":"30444:7:97","nodeType":"YulTypedName","src":"30444:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"30456:6:97","nodeType":"YulTypedName","src":"30456:6:97","type":""},{"name":"value1","nativeSrc":"30464:6:97","nodeType":"YulTypedName","src":"30464:6:97","type":""}],"src":"30368:396:97"},{"body":{"nativeSrc":"30844:601:97","nodeType":"YulBlock","src":"30844:601:97","statements":[{"body":{"nativeSrc":"30893:16:97","nodeType":"YulBlock","src":"30893:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"30902:1:97","nodeType":"YulLiteral","src":"30902:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"30905:1:97","nodeType":"YulLiteral","src":"30905:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"30895:6:97","nodeType":"YulIdentifier","src":"30895:6:97"},"nativeSrc":"30895:12:97","nodeType":"YulFunctionCall","src":"30895:12:97"},"nativeSrc":"30895:12:97","nodeType":"YulExpressionStatement","src":"30895:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"30872:6:97","nodeType":"YulIdentifier","src":"30872:6:97"},{"kind":"number","nativeSrc":"30880:4:97","nodeType":"YulLiteral","src":"30880:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"30868:3:97","nodeType":"YulIdentifier","src":"30868:3:97"},"nativeSrc":"30868:17:97","nodeType":"YulFunctionCall","src":"30868:17:97"},{"name":"end","nativeSrc":"30887:3:97","nodeType":"YulIdentifier","src":"30887:3:97"}],"functionName":{"name":"slt","nativeSrc":"30864:3:97","nodeType":"YulIdentifier","src":"30864:3:97"},"nativeSrc":"30864:27:97","nodeType":"YulFunctionCall","src":"30864:27:97"}],"functionName":{"name":"iszero","nativeSrc":"30857:6:97","nodeType":"YulIdentifier","src":"30857:6:97"},"nativeSrc":"30857:35:97","nodeType":"YulFunctionCall","src":"30857:35:97"},"nativeSrc":"30854:55:97","nodeType":"YulIf","src":"30854:55:97"},{"nativeSrc":"30918:23:97","nodeType":"YulVariableDeclaration","src":"30918:23:97","value":{"arguments":[{"name":"offset","nativeSrc":"30934:6:97","nodeType":"YulIdentifier","src":"30934:6:97"}],"functionName":{"name":"mload","nativeSrc":"30928:5:97","nodeType":"YulIdentifier","src":"30928:5:97"},"nativeSrc":"30928:13:97","nodeType":"YulFunctionCall","src":"30928:13:97"},"variables":[{"name":"_1","nativeSrc":"30922:2:97","nodeType":"YulTypedName","src":"30922:2:97","type":""}]},{"nativeSrc":"30950:14:97","nodeType":"YulVariableDeclaration","src":"30950:14:97","value":{"kind":"number","nativeSrc":"30960:4:97","nodeType":"YulLiteral","src":"30960:4:97","type":"","value":"0x20"},"variables":[{"name":"_2","nativeSrc":"30954:2:97","nodeType":"YulTypedName","src":"30954:2:97","type":""}]},{"nativeSrc":"30973:82:97","nodeType":"YulVariableDeclaration","src":"30973:82:97","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"31051:2:97","nodeType":"YulIdentifier","src":"31051:2:97"}],"functionName":{"name":"array_allocation_size_array_contract_ITimelock_dyn","nativeSrc":"31000:50:97","nodeType":"YulIdentifier","src":"31000:50:97"},"nativeSrc":"31000:54:97","nodeType":"YulFunctionCall","src":"31000:54:97"}],"functionName":{"name":"allocate_memory","nativeSrc":"30984:15:97","nodeType":"YulIdentifier","src":"30984:15:97"},"nativeSrc":"30984:71:97","nodeType":"YulFunctionCall","src":"30984:71:97"},"variables":[{"name":"dst","nativeSrc":"30977:3:97","nodeType":"YulTypedName","src":"30977:3:97","type":""}]},{"nativeSrc":"31064:16:97","nodeType":"YulVariableDeclaration","src":"31064:16:97","value":{"name":"dst","nativeSrc":"31077:3:97","nodeType":"YulIdentifier","src":"31077:3:97"},"variables":[{"name":"dst_1","nativeSrc":"31068:5:97","nodeType":"YulTypedName","src":"31068:5:97","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"31096:3:97","nodeType":"YulIdentifier","src":"31096:3:97"},{"name":"_1","nativeSrc":"31101:2:97","nodeType":"YulIdentifier","src":"31101:2:97"}],"functionName":{"name":"mstore","nativeSrc":"31089:6:97","nodeType":"YulIdentifier","src":"31089:6:97"},"nativeSrc":"31089:15:97","nodeType":"YulFunctionCall","src":"31089:15:97"},"nativeSrc":"31089:15:97","nodeType":"YulExpressionStatement","src":"31089:15:97"},{"nativeSrc":"31113:21:97","nodeType":"YulAssignment","src":"31113:21:97","value":{"arguments":[{"name":"dst","nativeSrc":"31124:3:97","nodeType":"YulIdentifier","src":"31124:3:97"},{"kind":"number","nativeSrc":"31129:4:97","nodeType":"YulLiteral","src":"31129:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"31120:3:97","nodeType":"YulIdentifier","src":"31120:3:97"},"nativeSrc":"31120:14:97","nodeType":"YulFunctionCall","src":"31120:14:97"},"variableNames":[{"name":"dst","nativeSrc":"31113:3:97","nodeType":"YulIdentifier","src":"31113:3:97"}]},{"nativeSrc":"31143:48:97","nodeType":"YulVariableDeclaration","src":"31143:48:97","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"31165:6:97","nodeType":"YulIdentifier","src":"31165:6:97"},{"arguments":[{"kind":"number","nativeSrc":"31177:1:97","nodeType":"YulLiteral","src":"31177:1:97","type":"","value":"5"},{"name":"_1","nativeSrc":"31180:2:97","nodeType":"YulIdentifier","src":"31180:2:97"}],"functionName":{"name":"shl","nativeSrc":"31173:3:97","nodeType":"YulIdentifier","src":"31173:3:97"},"nativeSrc":"31173:10:97","nodeType":"YulFunctionCall","src":"31173:10:97"}],"functionName":{"name":"add","nativeSrc":"31161:3:97","nodeType":"YulIdentifier","src":"31161:3:97"},"nativeSrc":"31161:23:97","nodeType":"YulFunctionCall","src":"31161:23:97"},{"kind":"number","nativeSrc":"31186:4:97","nodeType":"YulLiteral","src":"31186:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"31157:3:97","nodeType":"YulIdentifier","src":"31157:3:97"},"nativeSrc":"31157:34:97","nodeType":"YulFunctionCall","src":"31157:34:97"},"variables":[{"name":"srcEnd","nativeSrc":"31147:6:97","nodeType":"YulTypedName","src":"31147:6:97","type":""}]},{"body":{"nativeSrc":"31219:16:97","nodeType":"YulBlock","src":"31219:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"31228:1:97","nodeType":"YulLiteral","src":"31228:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"31231:1:97","nodeType":"YulLiteral","src":"31231:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"31221:6:97","nodeType":"YulIdentifier","src":"31221:6:97"},"nativeSrc":"31221:12:97","nodeType":"YulFunctionCall","src":"31221:12:97"},"nativeSrc":"31221:12:97","nodeType":"YulExpressionStatement","src":"31221:12:97"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"31206:6:97","nodeType":"YulIdentifier","src":"31206:6:97"},{"name":"end","nativeSrc":"31214:3:97","nodeType":"YulIdentifier","src":"31214:3:97"}],"functionName":{"name":"gt","nativeSrc":"31203:2:97","nodeType":"YulIdentifier","src":"31203:2:97"},"nativeSrc":"31203:15:97","nodeType":"YulFunctionCall","src":"31203:15:97"},"nativeSrc":"31200:35:97","nodeType":"YulIf","src":"31200:35:97"},{"nativeSrc":"31244:28:97","nodeType":"YulVariableDeclaration","src":"31244:28:97","value":{"arguments":[{"name":"offset","nativeSrc":"31259:6:97","nodeType":"YulIdentifier","src":"31259:6:97"},{"kind":"number","nativeSrc":"31267:4:97","nodeType":"YulLiteral","src":"31267:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"31255:3:97","nodeType":"YulIdentifier","src":"31255:3:97"},"nativeSrc":"31255:17:97","nodeType":"YulFunctionCall","src":"31255:17:97"},"variables":[{"name":"src","nativeSrc":"31248:3:97","nodeType":"YulTypedName","src":"31248:3:97","type":""}]},{"body":{"nativeSrc":"31337:79:97","nodeType":"YulBlock","src":"31337:79:97","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"31358:3:97","nodeType":"YulIdentifier","src":"31358:3:97"},{"arguments":[{"name":"src","nativeSrc":"31369:3:97","nodeType":"YulIdentifier","src":"31369:3:97"}],"functionName":{"name":"mload","nativeSrc":"31363:5:97","nodeType":"YulIdentifier","src":"31363:5:97"},"nativeSrc":"31363:10:97","nodeType":"YulFunctionCall","src":"31363:10:97"}],"functionName":{"name":"mstore","nativeSrc":"31351:6:97","nodeType":"YulIdentifier","src":"31351:6:97"},"nativeSrc":"31351:23:97","nodeType":"YulFunctionCall","src":"31351:23:97"},"nativeSrc":"31351:23:97","nodeType":"YulExpressionStatement","src":"31351:23:97"},{"nativeSrc":"31387:19:97","nodeType":"YulAssignment","src":"31387:19:97","value":{"arguments":[{"name":"dst","nativeSrc":"31398:3:97","nodeType":"YulIdentifier","src":"31398:3:97"},{"name":"_2","nativeSrc":"31403:2:97","nodeType":"YulIdentifier","src":"31403:2:97"}],"functionName":{"name":"add","nativeSrc":"31394:3:97","nodeType":"YulIdentifier","src":"31394:3:97"},"nativeSrc":"31394:12:97","nodeType":"YulFunctionCall","src":"31394:12:97"},"variableNames":[{"name":"dst","nativeSrc":"31387:3:97","nodeType":"YulIdentifier","src":"31387:3:97"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"31292:3:97","nodeType":"YulIdentifier","src":"31292:3:97"},{"name":"srcEnd","nativeSrc":"31297:6:97","nodeType":"YulIdentifier","src":"31297:6:97"}],"functionName":{"name":"lt","nativeSrc":"31289:2:97","nodeType":"YulIdentifier","src":"31289:2:97"},"nativeSrc":"31289:15:97","nodeType":"YulFunctionCall","src":"31289:15:97"},"nativeSrc":"31281:135:97","nodeType":"YulForLoop","post":{"nativeSrc":"31305:23:97","nodeType":"YulBlock","src":"31305:23:97","statements":[{"nativeSrc":"31307:19:97","nodeType":"YulAssignment","src":"31307:19:97","value":{"arguments":[{"name":"src","nativeSrc":"31318:3:97","nodeType":"YulIdentifier","src":"31318:3:97"},{"name":"_2","nativeSrc":"31323:2:97","nodeType":"YulIdentifier","src":"31323:2:97"}],"functionName":{"name":"add","nativeSrc":"31314:3:97","nodeType":"YulIdentifier","src":"31314:3:97"},"nativeSrc":"31314:12:97","nodeType":"YulFunctionCall","src":"31314:12:97"},"variableNames":[{"name":"src","nativeSrc":"31307:3:97","nodeType":"YulIdentifier","src":"31307:3:97"}]}]},"pre":{"nativeSrc":"31285:3:97","nodeType":"YulBlock","src":"31285:3:97","statements":[]},"src":"31281:135:97"},{"nativeSrc":"31425:14:97","nodeType":"YulAssignment","src":"31425:14:97","value":{"name":"dst_1","nativeSrc":"31434:5:97","nodeType":"YulIdentifier","src":"31434:5:97"},"variableNames":[{"name":"array","nativeSrc":"31425:5:97","nodeType":"YulIdentifier","src":"31425:5:97"}]}]},"name":"abi_decode_array_uint256_dyn_fromMemory","nativeSrc":"30769:676:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"30818:6:97","nodeType":"YulTypedName","src":"30818:6:97","type":""},{"name":"end","nativeSrc":"30826:3:97","nodeType":"YulTypedName","src":"30826:3:97","type":""}],"returnVariables":[{"name":"array","nativeSrc":"30834:5:97","nodeType":"YulTypedName","src":"30834:5:97","type":""}],"src":"30769:676:97"},{"body":{"nativeSrc":"31524:1026:97","nodeType":"YulBlock","src":"31524:1026:97","statements":[{"body":{"nativeSrc":"31573:16:97","nodeType":"YulBlock","src":"31573:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"31582:1:97","nodeType":"YulLiteral","src":"31582:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"31585:1:97","nodeType":"YulLiteral","src":"31585:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"31575:6:97","nodeType":"YulIdentifier","src":"31575:6:97"},"nativeSrc":"31575:12:97","nodeType":"YulFunctionCall","src":"31575:12:97"},"nativeSrc":"31575:12:97","nodeType":"YulExpressionStatement","src":"31575:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"31552:6:97","nodeType":"YulIdentifier","src":"31552:6:97"},{"kind":"number","nativeSrc":"31560:4:97","nodeType":"YulLiteral","src":"31560:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"31548:3:97","nodeType":"YulIdentifier","src":"31548:3:97"},"nativeSrc":"31548:17:97","nodeType":"YulFunctionCall","src":"31548:17:97"},{"name":"end","nativeSrc":"31567:3:97","nodeType":"YulIdentifier","src":"31567:3:97"}],"functionName":{"name":"slt","nativeSrc":"31544:3:97","nodeType":"YulIdentifier","src":"31544:3:97"},"nativeSrc":"31544:27:97","nodeType":"YulFunctionCall","src":"31544:27:97"}],"functionName":{"name":"iszero","nativeSrc":"31537:6:97","nodeType":"YulIdentifier","src":"31537:6:97"},"nativeSrc":"31537:35:97","nodeType":"YulFunctionCall","src":"31537:35:97"},"nativeSrc":"31534:55:97","nodeType":"YulIf","src":"31534:55:97"},{"nativeSrc":"31598:23:97","nodeType":"YulVariableDeclaration","src":"31598:23:97","value":{"arguments":[{"name":"offset","nativeSrc":"31614:6:97","nodeType":"YulIdentifier","src":"31614:6:97"}],"functionName":{"name":"mload","nativeSrc":"31608:5:97","nodeType":"YulIdentifier","src":"31608:5:97"},"nativeSrc":"31608:13:97","nodeType":"YulFunctionCall","src":"31608:13:97"},"variables":[{"name":"_1","nativeSrc":"31602:2:97","nodeType":"YulTypedName","src":"31602:2:97","type":""}]},{"nativeSrc":"31630:14:97","nodeType":"YulVariableDeclaration","src":"31630:14:97","value":{"kind":"number","nativeSrc":"31640:4:97","nodeType":"YulLiteral","src":"31640:4:97","type":"","value":"0x20"},"variables":[{"name":"_2","nativeSrc":"31634:2:97","nodeType":"YulTypedName","src":"31634:2:97","type":""}]},{"nativeSrc":"31653:82:97","nodeType":"YulVariableDeclaration","src":"31653:82:97","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"31731:2:97","nodeType":"YulIdentifier","src":"31731:2:97"}],"functionName":{"name":"array_allocation_size_array_contract_ITimelock_dyn","nativeSrc":"31680:50:97","nodeType":"YulIdentifier","src":"31680:50:97"},"nativeSrc":"31680:54:97","nodeType":"YulFunctionCall","src":"31680:54:97"}],"functionName":{"name":"allocate_memory","nativeSrc":"31664:15:97","nodeType":"YulIdentifier","src":"31664:15:97"},"nativeSrc":"31664:71:97","nodeType":"YulFunctionCall","src":"31664:71:97"},"variables":[{"name":"dst","nativeSrc":"31657:3:97","nodeType":"YulTypedName","src":"31657:3:97","type":""}]},{"nativeSrc":"31744:16:97","nodeType":"YulVariableDeclaration","src":"31744:16:97","value":{"name":"dst","nativeSrc":"31757:3:97","nodeType":"YulIdentifier","src":"31757:3:97"},"variables":[{"name":"dst_1","nativeSrc":"31748:5:97","nodeType":"YulTypedName","src":"31748:5:97","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"31776:3:97","nodeType":"YulIdentifier","src":"31776:3:97"},{"name":"_1","nativeSrc":"31781:2:97","nodeType":"YulIdentifier","src":"31781:2:97"}],"functionName":{"name":"mstore","nativeSrc":"31769:6:97","nodeType":"YulIdentifier","src":"31769:6:97"},"nativeSrc":"31769:15:97","nodeType":"YulFunctionCall","src":"31769:15:97"},"nativeSrc":"31769:15:97","nodeType":"YulExpressionStatement","src":"31769:15:97"},{"nativeSrc":"31793:19:97","nodeType":"YulAssignment","src":"31793:19:97","value":{"arguments":[{"name":"dst","nativeSrc":"31804:3:97","nodeType":"YulIdentifier","src":"31804:3:97"},{"name":"_2","nativeSrc":"31809:2:97","nodeType":"YulIdentifier","src":"31809:2:97"}],"functionName":{"name":"add","nativeSrc":"31800:3:97","nodeType":"YulIdentifier","src":"31800:3:97"},"nativeSrc":"31800:12:97","nodeType":"YulFunctionCall","src":"31800:12:97"},"variableNames":[{"name":"dst","nativeSrc":"31793:3:97","nodeType":"YulIdentifier","src":"31793:3:97"}]},{"nativeSrc":"31821:46:97","nodeType":"YulVariableDeclaration","src":"31821:46:97","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"31843:6:97","nodeType":"YulIdentifier","src":"31843:6:97"},{"arguments":[{"kind":"number","nativeSrc":"31855:1:97","nodeType":"YulLiteral","src":"31855:1:97","type":"","value":"5"},{"name":"_1","nativeSrc":"31858:2:97","nodeType":"YulIdentifier","src":"31858:2:97"}],"functionName":{"name":"shl","nativeSrc":"31851:3:97","nodeType":"YulIdentifier","src":"31851:3:97"},"nativeSrc":"31851:10:97","nodeType":"YulFunctionCall","src":"31851:10:97"}],"functionName":{"name":"add","nativeSrc":"31839:3:97","nodeType":"YulIdentifier","src":"31839:3:97"},"nativeSrc":"31839:23:97","nodeType":"YulFunctionCall","src":"31839:23:97"},{"name":"_2","nativeSrc":"31864:2:97","nodeType":"YulIdentifier","src":"31864:2:97"}],"functionName":{"name":"add","nativeSrc":"31835:3:97","nodeType":"YulIdentifier","src":"31835:3:97"},"nativeSrc":"31835:32:97","nodeType":"YulFunctionCall","src":"31835:32:97"},"variables":[{"name":"srcEnd","nativeSrc":"31825:6:97","nodeType":"YulTypedName","src":"31825:6:97","type":""}]},{"body":{"nativeSrc":"31895:16:97","nodeType":"YulBlock","src":"31895:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"31904:1:97","nodeType":"YulLiteral","src":"31904:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"31907:1:97","nodeType":"YulLiteral","src":"31907:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"31897:6:97","nodeType":"YulIdentifier","src":"31897:6:97"},"nativeSrc":"31897:12:97","nodeType":"YulFunctionCall","src":"31897:12:97"},"nativeSrc":"31897:12:97","nodeType":"YulExpressionStatement","src":"31897:12:97"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"31882:6:97","nodeType":"YulIdentifier","src":"31882:6:97"},{"name":"end","nativeSrc":"31890:3:97","nodeType":"YulIdentifier","src":"31890:3:97"}],"functionName":{"name":"gt","nativeSrc":"31879:2:97","nodeType":"YulIdentifier","src":"31879:2:97"},"nativeSrc":"31879:15:97","nodeType":"YulFunctionCall","src":"31879:15:97"},"nativeSrc":"31876:35:97","nodeType":"YulIf","src":"31876:35:97"},{"nativeSrc":"31920:26:97","nodeType":"YulVariableDeclaration","src":"31920:26:97","value":{"arguments":[{"name":"offset","nativeSrc":"31935:6:97","nodeType":"YulIdentifier","src":"31935:6:97"},{"name":"_2","nativeSrc":"31943:2:97","nodeType":"YulIdentifier","src":"31943:2:97"}],"functionName":{"name":"add","nativeSrc":"31931:3:97","nodeType":"YulIdentifier","src":"31931:3:97"},"nativeSrc":"31931:15:97","nodeType":"YulFunctionCall","src":"31931:15:97"},"variables":[{"name":"src","nativeSrc":"31924:3:97","nodeType":"YulTypedName","src":"31924:3:97","type":""}]},{"body":{"nativeSrc":"32011:510:97","nodeType":"YulBlock","src":"32011:510:97","statements":[{"nativeSrc":"32025:29:97","nodeType":"YulVariableDeclaration","src":"32025:29:97","value":{"arguments":[{"name":"src","nativeSrc":"32050:3:97","nodeType":"YulIdentifier","src":"32050:3:97"}],"functionName":{"name":"mload","nativeSrc":"32044:5:97","nodeType":"YulIdentifier","src":"32044:5:97"},"nativeSrc":"32044:10:97","nodeType":"YulFunctionCall","src":"32044:10:97"},"variables":[{"name":"innerOffset","nativeSrc":"32029:11:97","nodeType":"YulTypedName","src":"32029:11:97","type":""}]},{"body":{"nativeSrc":"32118:74:97","nodeType":"YulBlock","src":"32118:74:97","statements":[{"nativeSrc":"32136:11:97","nodeType":"YulVariableDeclaration","src":"32136:11:97","value":{"kind":"number","nativeSrc":"32146:1:97","nodeType":"YulLiteral","src":"32146:1:97","type":"","value":"0"},"variables":[{"name":"_3","nativeSrc":"32140:2:97","nodeType":"YulTypedName","src":"32140:2:97","type":""}]},{"expression":{"arguments":[{"name":"_3","nativeSrc":"32171:2:97","nodeType":"YulIdentifier","src":"32171:2:97"},{"name":"_3","nativeSrc":"32175:2:97","nodeType":"YulIdentifier","src":"32175:2:97"}],"functionName":{"name":"revert","nativeSrc":"32164:6:97","nodeType":"YulIdentifier","src":"32164:6:97"},"nativeSrc":"32164:14:97","nodeType":"YulFunctionCall","src":"32164:14:97"},"nativeSrc":"32164:14:97","nodeType":"YulExpressionStatement","src":"32164:14:97"}]},"condition":{"arguments":[{"name":"innerOffset","nativeSrc":"32073:11:97","nodeType":"YulIdentifier","src":"32073:11:97"},{"kind":"number","nativeSrc":"32086:18:97","nodeType":"YulLiteral","src":"32086:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"32070:2:97","nodeType":"YulIdentifier","src":"32070:2:97"},"nativeSrc":"32070:35:97","nodeType":"YulFunctionCall","src":"32070:35:97"},"nativeSrc":"32067:125:97","nodeType":"YulIf","src":"32067:125:97"},{"nativeSrc":"32205:34:97","nodeType":"YulVariableDeclaration","src":"32205:34:97","value":{"arguments":[{"name":"offset","nativeSrc":"32219:6:97","nodeType":"YulIdentifier","src":"32219:6:97"},{"name":"innerOffset","nativeSrc":"32227:11:97","nodeType":"YulIdentifier","src":"32227:11:97"}],"functionName":{"name":"add","nativeSrc":"32215:3:97","nodeType":"YulIdentifier","src":"32215:3:97"},"nativeSrc":"32215:24:97","nodeType":"YulFunctionCall","src":"32215:24:97"},"variables":[{"name":"_4","nativeSrc":"32209:2:97","nodeType":"YulTypedName","src":"32209:2:97","type":""}]},{"body":{"nativeSrc":"32297:74:97","nodeType":"YulBlock","src":"32297:74:97","statements":[{"nativeSrc":"32315:11:97","nodeType":"YulVariableDeclaration","src":"32315:11:97","value":{"kind":"number","nativeSrc":"32325:1:97","nodeType":"YulLiteral","src":"32325:1:97","type":"","value":"0"},"variables":[{"name":"_5","nativeSrc":"32319:2:97","nodeType":"YulTypedName","src":"32319:2:97","type":""}]},{"expression":{"arguments":[{"name":"_5","nativeSrc":"32350:2:97","nodeType":"YulIdentifier","src":"32350:2:97"},{"name":"_5","nativeSrc":"32354:2:97","nodeType":"YulIdentifier","src":"32354:2:97"}],"functionName":{"name":"revert","nativeSrc":"32343:6:97","nodeType":"YulIdentifier","src":"32343:6:97"},"nativeSrc":"32343:14:97","nodeType":"YulFunctionCall","src":"32343:14:97"},"nativeSrc":"32343:14:97","nodeType":"YulExpressionStatement","src":"32343:14:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_4","nativeSrc":"32270:2:97","nodeType":"YulIdentifier","src":"32270:2:97"},{"kind":"number","nativeSrc":"32274:2:97","nodeType":"YulLiteral","src":"32274:2:97","type":"","value":"63"}],"functionName":{"name":"add","nativeSrc":"32266:3:97","nodeType":"YulIdentifier","src":"32266:3:97"},"nativeSrc":"32266:11:97","nodeType":"YulFunctionCall","src":"32266:11:97"},{"name":"end","nativeSrc":"32279:3:97","nodeType":"YulIdentifier","src":"32279:3:97"}],"functionName":{"name":"slt","nativeSrc":"32262:3:97","nodeType":"YulIdentifier","src":"32262:3:97"},"nativeSrc":"32262:21:97","nodeType":"YulFunctionCall","src":"32262:21:97"}],"functionName":{"name":"iszero","nativeSrc":"32255:6:97","nodeType":"YulIdentifier","src":"32255:6:97"},"nativeSrc":"32255:29:97","nodeType":"YulFunctionCall","src":"32255:29:97"},"nativeSrc":"32252:119:97","nodeType":"YulIf","src":"32252:119:97"},{"expression":{"arguments":[{"name":"dst","nativeSrc":"32391:3:97","nodeType":"YulIdentifier","src":"32391:3:97"},{"arguments":[{"arguments":[{"name":"_4","nativeSrc":"32445:2:97","nodeType":"YulIdentifier","src":"32445:2:97"},{"kind":"number","nativeSrc":"32449:2:97","nodeType":"YulLiteral","src":"32449:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"32441:3:97","nodeType":"YulIdentifier","src":"32441:3:97"},"nativeSrc":"32441:11:97","nodeType":"YulFunctionCall","src":"32441:11:97"},{"arguments":[{"arguments":[{"name":"_4","nativeSrc":"32464:2:97","nodeType":"YulIdentifier","src":"32464:2:97"},{"name":"_2","nativeSrc":"32468:2:97","nodeType":"YulIdentifier","src":"32468:2:97"}],"functionName":{"name":"add","nativeSrc":"32460:3:97","nodeType":"YulIdentifier","src":"32460:3:97"},"nativeSrc":"32460:11:97","nodeType":"YulFunctionCall","src":"32460:11:97"}],"functionName":{"name":"mload","nativeSrc":"32454:5:97","nodeType":"YulIdentifier","src":"32454:5:97"},"nativeSrc":"32454:18:97","nodeType":"YulFunctionCall","src":"32454:18:97"},{"name":"end","nativeSrc":"32474:3:97","nodeType":"YulIdentifier","src":"32474:3:97"}],"functionName":{"name":"abi_decode_available_length_bytes_fromMemory","nativeSrc":"32396:44:97","nodeType":"YulIdentifier","src":"32396:44:97"},"nativeSrc":"32396:82:97","nodeType":"YulFunctionCall","src":"32396:82:97"}],"functionName":{"name":"mstore","nativeSrc":"32384:6:97","nodeType":"YulIdentifier","src":"32384:6:97"},"nativeSrc":"32384:95:97","nodeType":"YulFunctionCall","src":"32384:95:97"},"nativeSrc":"32384:95:97","nodeType":"YulExpressionStatement","src":"32384:95:97"},{"nativeSrc":"32492:19:97","nodeType":"YulAssignment","src":"32492:19:97","value":{"arguments":[{"name":"dst","nativeSrc":"32503:3:97","nodeType":"YulIdentifier","src":"32503:3:97"},{"name":"_2","nativeSrc":"32508:2:97","nodeType":"YulIdentifier","src":"32508:2:97"}],"functionName":{"name":"add","nativeSrc":"32499:3:97","nodeType":"YulIdentifier","src":"32499:3:97"},"nativeSrc":"32499:12:97","nodeType":"YulFunctionCall","src":"32499:12:97"},"variableNames":[{"name":"dst","nativeSrc":"32492:3:97","nodeType":"YulIdentifier","src":"32492:3:97"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"31966:3:97","nodeType":"YulIdentifier","src":"31966:3:97"},{"name":"srcEnd","nativeSrc":"31971:6:97","nodeType":"YulIdentifier","src":"31971:6:97"}],"functionName":{"name":"lt","nativeSrc":"31963:2:97","nodeType":"YulIdentifier","src":"31963:2:97"},"nativeSrc":"31963:15:97","nodeType":"YulFunctionCall","src":"31963:15:97"},"nativeSrc":"31955:566:97","nodeType":"YulForLoop","post":{"nativeSrc":"31979:23:97","nodeType":"YulBlock","src":"31979:23:97","statements":[{"nativeSrc":"31981:19:97","nodeType":"YulAssignment","src":"31981:19:97","value":{"arguments":[{"name":"src","nativeSrc":"31992:3:97","nodeType":"YulIdentifier","src":"31992:3:97"},{"name":"_2","nativeSrc":"31997:2:97","nodeType":"YulIdentifier","src":"31997:2:97"}],"functionName":{"name":"add","nativeSrc":"31988:3:97","nodeType":"YulIdentifier","src":"31988:3:97"},"nativeSrc":"31988:12:97","nodeType":"YulFunctionCall","src":"31988:12:97"},"variableNames":[{"name":"src","nativeSrc":"31981:3:97","nodeType":"YulIdentifier","src":"31981:3:97"}]}]},"pre":{"nativeSrc":"31959:3:97","nodeType":"YulBlock","src":"31959:3:97","statements":[]},"src":"31955:566:97"},{"nativeSrc":"32530:14:97","nodeType":"YulAssignment","src":"32530:14:97","value":{"name":"dst_1","nativeSrc":"32539:5:97","nodeType":"YulIdentifier","src":"32539:5:97"},"variableNames":[{"name":"array","nativeSrc":"32530:5:97","nodeType":"YulIdentifier","src":"32530:5:97"}]}]},"name":"abi_decode_array_string_dyn_fromMemory","nativeSrc":"31450:1100:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"31498:6:97","nodeType":"YulTypedName","src":"31498:6:97","type":""},{"name":"end","nativeSrc":"31506:3:97","nodeType":"YulTypedName","src":"31506:3:97","type":""}],"returnVariables":[{"name":"array","nativeSrc":"31514:5:97","nodeType":"YulTypedName","src":"31514:5:97","type":""}],"src":"31450:1100:97"},{"body":{"nativeSrc":"32628:832:97","nodeType":"YulBlock","src":"32628:832:97","statements":[{"body":{"nativeSrc":"32677:16:97","nodeType":"YulBlock","src":"32677:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"32686:1:97","nodeType":"YulLiteral","src":"32686:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"32689:1:97","nodeType":"YulLiteral","src":"32689:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"32679:6:97","nodeType":"YulIdentifier","src":"32679:6:97"},"nativeSrc":"32679:12:97","nodeType":"YulFunctionCall","src":"32679:12:97"},"nativeSrc":"32679:12:97","nodeType":"YulExpressionStatement","src":"32679:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"32656:6:97","nodeType":"YulIdentifier","src":"32656:6:97"},{"kind":"number","nativeSrc":"32664:4:97","nodeType":"YulLiteral","src":"32664:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"32652:3:97","nodeType":"YulIdentifier","src":"32652:3:97"},"nativeSrc":"32652:17:97","nodeType":"YulFunctionCall","src":"32652:17:97"},{"name":"end","nativeSrc":"32671:3:97","nodeType":"YulIdentifier","src":"32671:3:97"}],"functionName":{"name":"slt","nativeSrc":"32648:3:97","nodeType":"YulIdentifier","src":"32648:3:97"},"nativeSrc":"32648:27:97","nodeType":"YulFunctionCall","src":"32648:27:97"}],"functionName":{"name":"iszero","nativeSrc":"32641:6:97","nodeType":"YulIdentifier","src":"32641:6:97"},"nativeSrc":"32641:35:97","nodeType":"YulFunctionCall","src":"32641:35:97"},"nativeSrc":"32638:55:97","nodeType":"YulIf","src":"32638:55:97"},{"nativeSrc":"32702:23:97","nodeType":"YulVariableDeclaration","src":"32702:23:97","value":{"arguments":[{"name":"offset","nativeSrc":"32718:6:97","nodeType":"YulIdentifier","src":"32718:6:97"}],"functionName":{"name":"mload","nativeSrc":"32712:5:97","nodeType":"YulIdentifier","src":"32712:5:97"},"nativeSrc":"32712:13:97","nodeType":"YulFunctionCall","src":"32712:13:97"},"variables":[{"name":"_1","nativeSrc":"32706:2:97","nodeType":"YulTypedName","src":"32706:2:97","type":""}]},{"nativeSrc":"32734:14:97","nodeType":"YulVariableDeclaration","src":"32734:14:97","value":{"kind":"number","nativeSrc":"32744:4:97","nodeType":"YulLiteral","src":"32744:4:97","type":"","value":"0x20"},"variables":[{"name":"_2","nativeSrc":"32738:2:97","nodeType":"YulTypedName","src":"32738:2:97","type":""}]},{"nativeSrc":"32757:82:97","nodeType":"YulVariableDeclaration","src":"32757:82:97","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"32835:2:97","nodeType":"YulIdentifier","src":"32835:2:97"}],"functionName":{"name":"array_allocation_size_array_contract_ITimelock_dyn","nativeSrc":"32784:50:97","nodeType":"YulIdentifier","src":"32784:50:97"},"nativeSrc":"32784:54:97","nodeType":"YulFunctionCall","src":"32784:54:97"}],"functionName":{"name":"allocate_memory","nativeSrc":"32768:15:97","nodeType":"YulIdentifier","src":"32768:15:97"},"nativeSrc":"32768:71:97","nodeType":"YulFunctionCall","src":"32768:71:97"},"variables":[{"name":"dst","nativeSrc":"32761:3:97","nodeType":"YulTypedName","src":"32761:3:97","type":""}]},{"nativeSrc":"32848:16:97","nodeType":"YulVariableDeclaration","src":"32848:16:97","value":{"name":"dst","nativeSrc":"32861:3:97","nodeType":"YulIdentifier","src":"32861:3:97"},"variables":[{"name":"dst_1","nativeSrc":"32852:5:97","nodeType":"YulTypedName","src":"32852:5:97","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"32880:3:97","nodeType":"YulIdentifier","src":"32880:3:97"},{"name":"_1","nativeSrc":"32885:2:97","nodeType":"YulIdentifier","src":"32885:2:97"}],"functionName":{"name":"mstore","nativeSrc":"32873:6:97","nodeType":"YulIdentifier","src":"32873:6:97"},"nativeSrc":"32873:15:97","nodeType":"YulFunctionCall","src":"32873:15:97"},"nativeSrc":"32873:15:97","nodeType":"YulExpressionStatement","src":"32873:15:97"},{"nativeSrc":"32897:19:97","nodeType":"YulAssignment","src":"32897:19:97","value":{"arguments":[{"name":"dst","nativeSrc":"32908:3:97","nodeType":"YulIdentifier","src":"32908:3:97"},{"name":"_2","nativeSrc":"32913:2:97","nodeType":"YulIdentifier","src":"32913:2:97"}],"functionName":{"name":"add","nativeSrc":"32904:3:97","nodeType":"YulIdentifier","src":"32904:3:97"},"nativeSrc":"32904:12:97","nodeType":"YulFunctionCall","src":"32904:12:97"},"variableNames":[{"name":"dst","nativeSrc":"32897:3:97","nodeType":"YulIdentifier","src":"32897:3:97"}]},{"nativeSrc":"32925:46:97","nodeType":"YulVariableDeclaration","src":"32925:46:97","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"32947:6:97","nodeType":"YulIdentifier","src":"32947:6:97"},{"arguments":[{"kind":"number","nativeSrc":"32959:1:97","nodeType":"YulLiteral","src":"32959:1:97","type":"","value":"5"},{"name":"_1","nativeSrc":"32962:2:97","nodeType":"YulIdentifier","src":"32962:2:97"}],"functionName":{"name":"shl","nativeSrc":"32955:3:97","nodeType":"YulIdentifier","src":"32955:3:97"},"nativeSrc":"32955:10:97","nodeType":"YulFunctionCall","src":"32955:10:97"}],"functionName":{"name":"add","nativeSrc":"32943:3:97","nodeType":"YulIdentifier","src":"32943:3:97"},"nativeSrc":"32943:23:97","nodeType":"YulFunctionCall","src":"32943:23:97"},{"name":"_2","nativeSrc":"32968:2:97","nodeType":"YulIdentifier","src":"32968:2:97"}],"functionName":{"name":"add","nativeSrc":"32939:3:97","nodeType":"YulIdentifier","src":"32939:3:97"},"nativeSrc":"32939:32:97","nodeType":"YulFunctionCall","src":"32939:32:97"},"variables":[{"name":"srcEnd","nativeSrc":"32929:6:97","nodeType":"YulTypedName","src":"32929:6:97","type":""}]},{"body":{"nativeSrc":"32999:16:97","nodeType":"YulBlock","src":"32999:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"33008:1:97","nodeType":"YulLiteral","src":"33008:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"33011:1:97","nodeType":"YulLiteral","src":"33011:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"33001:6:97","nodeType":"YulIdentifier","src":"33001:6:97"},"nativeSrc":"33001:12:97","nodeType":"YulFunctionCall","src":"33001:12:97"},"nativeSrc":"33001:12:97","nodeType":"YulExpressionStatement","src":"33001:12:97"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"32986:6:97","nodeType":"YulIdentifier","src":"32986:6:97"},{"name":"end","nativeSrc":"32994:3:97","nodeType":"YulIdentifier","src":"32994:3:97"}],"functionName":{"name":"gt","nativeSrc":"32983:2:97","nodeType":"YulIdentifier","src":"32983:2:97"},"nativeSrc":"32983:15:97","nodeType":"YulFunctionCall","src":"32983:15:97"},"nativeSrc":"32980:35:97","nodeType":"YulIf","src":"32980:35:97"},{"nativeSrc":"33024:26:97","nodeType":"YulVariableDeclaration","src":"33024:26:97","value":{"arguments":[{"name":"offset","nativeSrc":"33039:6:97","nodeType":"YulIdentifier","src":"33039:6:97"},{"name":"_2","nativeSrc":"33047:2:97","nodeType":"YulIdentifier","src":"33047:2:97"}],"functionName":{"name":"add","nativeSrc":"33035:3:97","nodeType":"YulIdentifier","src":"33035:3:97"},"nativeSrc":"33035:15:97","nodeType":"YulFunctionCall","src":"33035:15:97"},"variables":[{"name":"src","nativeSrc":"33028:3:97","nodeType":"YulTypedName","src":"33028:3:97","type":""}]},{"body":{"nativeSrc":"33115:316:97","nodeType":"YulBlock","src":"33115:316:97","statements":[{"nativeSrc":"33129:29:97","nodeType":"YulVariableDeclaration","src":"33129:29:97","value":{"arguments":[{"name":"src","nativeSrc":"33154:3:97","nodeType":"YulIdentifier","src":"33154:3:97"}],"functionName":{"name":"mload","nativeSrc":"33148:5:97","nodeType":"YulIdentifier","src":"33148:5:97"},"nativeSrc":"33148:10:97","nodeType":"YulFunctionCall","src":"33148:10:97"},"variables":[{"name":"innerOffset","nativeSrc":"33133:11:97","nodeType":"YulTypedName","src":"33133:11:97","type":""}]},{"body":{"nativeSrc":"33222:74:97","nodeType":"YulBlock","src":"33222:74:97","statements":[{"nativeSrc":"33240:11:97","nodeType":"YulVariableDeclaration","src":"33240:11:97","value":{"kind":"number","nativeSrc":"33250:1:97","nodeType":"YulLiteral","src":"33250:1:97","type":"","value":"0"},"variables":[{"name":"_3","nativeSrc":"33244:2:97","nodeType":"YulTypedName","src":"33244:2:97","type":""}]},{"expression":{"arguments":[{"name":"_3","nativeSrc":"33275:2:97","nodeType":"YulIdentifier","src":"33275:2:97"},{"name":"_3","nativeSrc":"33279:2:97","nodeType":"YulIdentifier","src":"33279:2:97"}],"functionName":{"name":"revert","nativeSrc":"33268:6:97","nodeType":"YulIdentifier","src":"33268:6:97"},"nativeSrc":"33268:14:97","nodeType":"YulFunctionCall","src":"33268:14:97"},"nativeSrc":"33268:14:97","nodeType":"YulExpressionStatement","src":"33268:14:97"}]},"condition":{"arguments":[{"name":"innerOffset","nativeSrc":"33177:11:97","nodeType":"YulIdentifier","src":"33177:11:97"},{"kind":"number","nativeSrc":"33190:18:97","nodeType":"YulLiteral","src":"33190:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"33174:2:97","nodeType":"YulIdentifier","src":"33174:2:97"},"nativeSrc":"33174:35:97","nodeType":"YulFunctionCall","src":"33174:35:97"},"nativeSrc":"33171:125:97","nodeType":"YulIf","src":"33171:125:97"},{"expression":{"arguments":[{"name":"dst","nativeSrc":"33316:3:97","nodeType":"YulIdentifier","src":"33316:3:97"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"33357:6:97","nodeType":"YulIdentifier","src":"33357:6:97"},{"name":"innerOffset","nativeSrc":"33365:11:97","nodeType":"YulIdentifier","src":"33365:11:97"}],"functionName":{"name":"add","nativeSrc":"33353:3:97","nodeType":"YulIdentifier","src":"33353:3:97"},"nativeSrc":"33353:24:97","nodeType":"YulFunctionCall","src":"33353:24:97"},{"name":"_2","nativeSrc":"33379:2:97","nodeType":"YulIdentifier","src":"33379:2:97"}],"functionName":{"name":"add","nativeSrc":"33349:3:97","nodeType":"YulIdentifier","src":"33349:3:97"},"nativeSrc":"33349:33:97","nodeType":"YulFunctionCall","src":"33349:33:97"},{"name":"end","nativeSrc":"33384:3:97","nodeType":"YulIdentifier","src":"33384:3:97"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nativeSrc":"33321:27:97","nodeType":"YulIdentifier","src":"33321:27:97"},"nativeSrc":"33321:67:97","nodeType":"YulFunctionCall","src":"33321:67:97"}],"functionName":{"name":"mstore","nativeSrc":"33309:6:97","nodeType":"YulIdentifier","src":"33309:6:97"},"nativeSrc":"33309:80:97","nodeType":"YulFunctionCall","src":"33309:80:97"},"nativeSrc":"33309:80:97","nodeType":"YulExpressionStatement","src":"33309:80:97"},{"nativeSrc":"33402:19:97","nodeType":"YulAssignment","src":"33402:19:97","value":{"arguments":[{"name":"dst","nativeSrc":"33413:3:97","nodeType":"YulIdentifier","src":"33413:3:97"},{"name":"_2","nativeSrc":"33418:2:97","nodeType":"YulIdentifier","src":"33418:2:97"}],"functionName":{"name":"add","nativeSrc":"33409:3:97","nodeType":"YulIdentifier","src":"33409:3:97"},"nativeSrc":"33409:12:97","nodeType":"YulFunctionCall","src":"33409:12:97"},"variableNames":[{"name":"dst","nativeSrc":"33402:3:97","nodeType":"YulIdentifier","src":"33402:3:97"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"33070:3:97","nodeType":"YulIdentifier","src":"33070:3:97"},{"name":"srcEnd","nativeSrc":"33075:6:97","nodeType":"YulIdentifier","src":"33075:6:97"}],"functionName":{"name":"lt","nativeSrc":"33067:2:97","nodeType":"YulIdentifier","src":"33067:2:97"},"nativeSrc":"33067:15:97","nodeType":"YulFunctionCall","src":"33067:15:97"},"nativeSrc":"33059:372:97","nodeType":"YulForLoop","post":{"nativeSrc":"33083:23:97","nodeType":"YulBlock","src":"33083:23:97","statements":[{"nativeSrc":"33085:19:97","nodeType":"YulAssignment","src":"33085:19:97","value":{"arguments":[{"name":"src","nativeSrc":"33096:3:97","nodeType":"YulIdentifier","src":"33096:3:97"},{"name":"_2","nativeSrc":"33101:2:97","nodeType":"YulIdentifier","src":"33101:2:97"}],"functionName":{"name":"add","nativeSrc":"33092:3:97","nodeType":"YulIdentifier","src":"33092:3:97"},"nativeSrc":"33092:12:97","nodeType":"YulFunctionCall","src":"33092:12:97"},"variableNames":[{"name":"src","nativeSrc":"33085:3:97","nodeType":"YulIdentifier","src":"33085:3:97"}]}]},"pre":{"nativeSrc":"33063:3:97","nodeType":"YulBlock","src":"33063:3:97","statements":[]},"src":"33059:372:97"},{"nativeSrc":"33440:14:97","nodeType":"YulAssignment","src":"33440:14:97","value":{"name":"dst_1","nativeSrc":"33449:5:97","nodeType":"YulIdentifier","src":"33449:5:97"},"variableNames":[{"name":"array","nativeSrc":"33440:5:97","nodeType":"YulIdentifier","src":"33440:5:97"}]}]},"name":"abi_decode_array_bytes_dyn_fromMemory","nativeSrc":"32555:905:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"32602:6:97","nodeType":"YulTypedName","src":"32602:6:97","type":""},{"name":"end","nativeSrc":"32610:3:97","nodeType":"YulTypedName","src":"32610:3:97","type":""}],"returnVariables":[{"name":"array","nativeSrc":"32618:5:97","nodeType":"YulTypedName","src":"32618:5:97","type":""}],"src":"32555:905:97"},{"body":{"nativeSrc":"33523:76:97","nodeType":"YulBlock","src":"33523:76:97","statements":[{"nativeSrc":"33533:22:97","nodeType":"YulAssignment","src":"33533:22:97","value":{"arguments":[{"name":"offset","nativeSrc":"33548:6:97","nodeType":"YulIdentifier","src":"33548:6:97"}],"functionName":{"name":"mload","nativeSrc":"33542:5:97","nodeType":"YulIdentifier","src":"33542:5:97"},"nativeSrc":"33542:13:97","nodeType":"YulFunctionCall","src":"33542:13:97"},"variableNames":[{"name":"value","nativeSrc":"33533:5:97","nodeType":"YulIdentifier","src":"33533:5:97"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"33587:5:97","nodeType":"YulIdentifier","src":"33587:5:97"}],"functionName":{"name":"validator_revert_uint8","nativeSrc":"33564:22:97","nodeType":"YulIdentifier","src":"33564:22:97"},"nativeSrc":"33564:29:97","nodeType":"YulFunctionCall","src":"33564:29:97"},"nativeSrc":"33564:29:97","nodeType":"YulExpressionStatement","src":"33564:29:97"}]},"name":"abi_decode_uint8_fromMemory","nativeSrc":"33465:134:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"33502:6:97","nodeType":"YulTypedName","src":"33502:6:97","type":""}],"returnVariables":[{"name":"value","nativeSrc":"33513:5:97","nodeType":"YulTypedName","src":"33513:5:97","type":""}],"src":"33465:134:97"},{"body":{"nativeSrc":"33870:1513:97","nodeType":"YulBlock","src":"33870:1513:97","statements":[{"body":{"nativeSrc":"33917:16:97","nodeType":"YulBlock","src":"33917:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"33926:1:97","nodeType":"YulLiteral","src":"33926:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"33929:1:97","nodeType":"YulLiteral","src":"33929:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"33919:6:97","nodeType":"YulIdentifier","src":"33919:6:97"},"nativeSrc":"33919:12:97","nodeType":"YulFunctionCall","src":"33919:12:97"},"nativeSrc":"33919:12:97","nodeType":"YulExpressionStatement","src":"33919:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"33891:7:97","nodeType":"YulIdentifier","src":"33891:7:97"},{"name":"headStart","nativeSrc":"33900:9:97","nodeType":"YulIdentifier","src":"33900:9:97"}],"functionName":{"name":"sub","nativeSrc":"33887:3:97","nodeType":"YulIdentifier","src":"33887:3:97"},"nativeSrc":"33887:23:97","nodeType":"YulFunctionCall","src":"33887:23:97"},{"kind":"number","nativeSrc":"33912:3:97","nodeType":"YulLiteral","src":"33912:3:97","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"33883:3:97","nodeType":"YulIdentifier","src":"33883:3:97"},"nativeSrc":"33883:33:97","nodeType":"YulFunctionCall","src":"33883:33:97"},"nativeSrc":"33880:53:97","nodeType":"YulIf","src":"33880:53:97"},{"nativeSrc":"33942:30:97","nodeType":"YulVariableDeclaration","src":"33942:30:97","value":{"arguments":[{"name":"headStart","nativeSrc":"33962:9:97","nodeType":"YulIdentifier","src":"33962:9:97"}],"functionName":{"name":"mload","nativeSrc":"33956:5:97","nodeType":"YulIdentifier","src":"33956:5:97"},"nativeSrc":"33956:16:97","nodeType":"YulFunctionCall","src":"33956:16:97"},"variables":[{"name":"offset","nativeSrc":"33946:6:97","nodeType":"YulTypedName","src":"33946:6:97","type":""}]},{"nativeSrc":"33981:28:97","nodeType":"YulVariableDeclaration","src":"33981:28:97","value":{"kind":"number","nativeSrc":"33991:18:97","nodeType":"YulLiteral","src":"33991:18:97","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"33985:2:97","nodeType":"YulTypedName","src":"33985:2:97","type":""}]},{"body":{"nativeSrc":"34036:16:97","nodeType":"YulBlock","src":"34036:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"34045:1:97","nodeType":"YulLiteral","src":"34045:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"34048:1:97","nodeType":"YulLiteral","src":"34048:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"34038:6:97","nodeType":"YulIdentifier","src":"34038:6:97"},"nativeSrc":"34038:12:97","nodeType":"YulFunctionCall","src":"34038:12:97"},"nativeSrc":"34038:12:97","nodeType":"YulExpressionStatement","src":"34038:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"34024:6:97","nodeType":"YulIdentifier","src":"34024:6:97"},{"name":"_1","nativeSrc":"34032:2:97","nodeType":"YulIdentifier","src":"34032:2:97"}],"functionName":{"name":"gt","nativeSrc":"34021:2:97","nodeType":"YulIdentifier","src":"34021:2:97"},"nativeSrc":"34021:14:97","nodeType":"YulFunctionCall","src":"34021:14:97"},"nativeSrc":"34018:34:97","nodeType":"YulIf","src":"34018:34:97"},{"nativeSrc":"34061:32:97","nodeType":"YulVariableDeclaration","src":"34061:32:97","value":{"arguments":[{"name":"headStart","nativeSrc":"34075:9:97","nodeType":"YulIdentifier","src":"34075:9:97"},{"name":"offset","nativeSrc":"34086:6:97","nodeType":"YulIdentifier","src":"34086:6:97"}],"functionName":{"name":"add","nativeSrc":"34071:3:97","nodeType":"YulIdentifier","src":"34071:3:97"},"nativeSrc":"34071:22:97","nodeType":"YulFunctionCall","src":"34071:22:97"},"variables":[{"name":"_2","nativeSrc":"34065:2:97","nodeType":"YulTypedName","src":"34065:2:97","type":""}]},{"body":{"nativeSrc":"34141:16:97","nodeType":"YulBlock","src":"34141:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"34150:1:97","nodeType":"YulLiteral","src":"34150:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"34153:1:97","nodeType":"YulLiteral","src":"34153:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"34143:6:97","nodeType":"YulIdentifier","src":"34143:6:97"},"nativeSrc":"34143:12:97","nodeType":"YulFunctionCall","src":"34143:12:97"},"nativeSrc":"34143:12:97","nodeType":"YulExpressionStatement","src":"34143:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"34120:2:97","nodeType":"YulIdentifier","src":"34120:2:97"},{"kind":"number","nativeSrc":"34124:4:97","nodeType":"YulLiteral","src":"34124:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"34116:3:97","nodeType":"YulIdentifier","src":"34116:3:97"},"nativeSrc":"34116:13:97","nodeType":"YulFunctionCall","src":"34116:13:97"},{"name":"dataEnd","nativeSrc":"34131:7:97","nodeType":"YulIdentifier","src":"34131:7:97"}],"functionName":{"name":"slt","nativeSrc":"34112:3:97","nodeType":"YulIdentifier","src":"34112:3:97"},"nativeSrc":"34112:27:97","nodeType":"YulFunctionCall","src":"34112:27:97"}],"functionName":{"name":"iszero","nativeSrc":"34105:6:97","nodeType":"YulIdentifier","src":"34105:6:97"},"nativeSrc":"34105:35:97","nodeType":"YulFunctionCall","src":"34105:35:97"},"nativeSrc":"34102:55:97","nodeType":"YulIf","src":"34102:55:97"},{"nativeSrc":"34166:19:97","nodeType":"YulVariableDeclaration","src":"34166:19:97","value":{"arguments":[{"name":"_2","nativeSrc":"34182:2:97","nodeType":"YulIdentifier","src":"34182:2:97"}],"functionName":{"name":"mload","nativeSrc":"34176:5:97","nodeType":"YulIdentifier","src":"34176:5:97"},"nativeSrc":"34176:9:97","nodeType":"YulFunctionCall","src":"34176:9:97"},"variables":[{"name":"_3","nativeSrc":"34170:2:97","nodeType":"YulTypedName","src":"34170:2:97","type":""}]},{"nativeSrc":"34194:14:97","nodeType":"YulVariableDeclaration","src":"34194:14:97","value":{"kind":"number","nativeSrc":"34204:4:97","nodeType":"YulLiteral","src":"34204:4:97","type":"","value":"0x20"},"variables":[{"name":"_4","nativeSrc":"34198:2:97","nodeType":"YulTypedName","src":"34198:2:97","type":""}]},{"nativeSrc":"34217:82:97","nodeType":"YulVariableDeclaration","src":"34217:82:97","value":{"arguments":[{"arguments":[{"name":"_3","nativeSrc":"34295:2:97","nodeType":"YulIdentifier","src":"34295:2:97"}],"functionName":{"name":"array_allocation_size_array_contract_ITimelock_dyn","nativeSrc":"34244:50:97","nodeType":"YulIdentifier","src":"34244:50:97"},"nativeSrc":"34244:54:97","nodeType":"YulFunctionCall","src":"34244:54:97"}],"functionName":{"name":"allocate_memory","nativeSrc":"34228:15:97","nodeType":"YulIdentifier","src":"34228:15:97"},"nativeSrc":"34228:71:97","nodeType":"YulFunctionCall","src":"34228:71:97"},"variables":[{"name":"dst","nativeSrc":"34221:3:97","nodeType":"YulTypedName","src":"34221:3:97","type":""}]},{"nativeSrc":"34308:16:97","nodeType":"YulVariableDeclaration","src":"34308:16:97","value":{"name":"dst","nativeSrc":"34321:3:97","nodeType":"YulIdentifier","src":"34321:3:97"},"variables":[{"name":"dst_1","nativeSrc":"34312:5:97","nodeType":"YulTypedName","src":"34312:5:97","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"34340:3:97","nodeType":"YulIdentifier","src":"34340:3:97"},{"name":"_3","nativeSrc":"34345:2:97","nodeType":"YulIdentifier","src":"34345:2:97"}],"functionName":{"name":"mstore","nativeSrc":"34333:6:97","nodeType":"YulIdentifier","src":"34333:6:97"},"nativeSrc":"34333:15:97","nodeType":"YulFunctionCall","src":"34333:15:97"},"nativeSrc":"34333:15:97","nodeType":"YulExpressionStatement","src":"34333:15:97"},{"nativeSrc":"34357:19:97","nodeType":"YulAssignment","src":"34357:19:97","value":{"arguments":[{"name":"dst","nativeSrc":"34368:3:97","nodeType":"YulIdentifier","src":"34368:3:97"},{"name":"_4","nativeSrc":"34373:2:97","nodeType":"YulIdentifier","src":"34373:2:97"}],"functionName":{"name":"add","nativeSrc":"34364:3:97","nodeType":"YulIdentifier","src":"34364:3:97"},"nativeSrc":"34364:12:97","nodeType":"YulFunctionCall","src":"34364:12:97"},"variableNames":[{"name":"dst","nativeSrc":"34357:3:97","nodeType":"YulIdentifier","src":"34357:3:97"}]},{"nativeSrc":"34385:42:97","nodeType":"YulVariableDeclaration","src":"34385:42:97","value":{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"34407:2:97","nodeType":"YulIdentifier","src":"34407:2:97"},{"arguments":[{"kind":"number","nativeSrc":"34415:1:97","nodeType":"YulLiteral","src":"34415:1:97","type":"","value":"5"},{"name":"_3","nativeSrc":"34418:2:97","nodeType":"YulIdentifier","src":"34418:2:97"}],"functionName":{"name":"shl","nativeSrc":"34411:3:97","nodeType":"YulIdentifier","src":"34411:3:97"},"nativeSrc":"34411:10:97","nodeType":"YulFunctionCall","src":"34411:10:97"}],"functionName":{"name":"add","nativeSrc":"34403:3:97","nodeType":"YulIdentifier","src":"34403:3:97"},"nativeSrc":"34403:19:97","nodeType":"YulFunctionCall","src":"34403:19:97"},{"name":"_4","nativeSrc":"34424:2:97","nodeType":"YulIdentifier","src":"34424:2:97"}],"functionName":{"name":"add","nativeSrc":"34399:3:97","nodeType":"YulIdentifier","src":"34399:3:97"},"nativeSrc":"34399:28:97","nodeType":"YulFunctionCall","src":"34399:28:97"},"variables":[{"name":"srcEnd","nativeSrc":"34389:6:97","nodeType":"YulTypedName","src":"34389:6:97","type":""}]},{"body":{"nativeSrc":"34459:16:97","nodeType":"YulBlock","src":"34459:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"34468:1:97","nodeType":"YulLiteral","src":"34468:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"34471:1:97","nodeType":"YulLiteral","src":"34471:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"34461:6:97","nodeType":"YulIdentifier","src":"34461:6:97"},"nativeSrc":"34461:12:97","nodeType":"YulFunctionCall","src":"34461:12:97"},"nativeSrc":"34461:12:97","nodeType":"YulExpressionStatement","src":"34461:12:97"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"34442:6:97","nodeType":"YulIdentifier","src":"34442:6:97"},{"name":"dataEnd","nativeSrc":"34450:7:97","nodeType":"YulIdentifier","src":"34450:7:97"}],"functionName":{"name":"gt","nativeSrc":"34439:2:97","nodeType":"YulIdentifier","src":"34439:2:97"},"nativeSrc":"34439:19:97","nodeType":"YulFunctionCall","src":"34439:19:97"},"nativeSrc":"34436:39:97","nodeType":"YulIf","src":"34436:39:97"},{"nativeSrc":"34484:22:97","nodeType":"YulVariableDeclaration","src":"34484:22:97","value":{"arguments":[{"name":"_2","nativeSrc":"34499:2:97","nodeType":"YulIdentifier","src":"34499:2:97"},{"name":"_4","nativeSrc":"34503:2:97","nodeType":"YulIdentifier","src":"34503:2:97"}],"functionName":{"name":"add","nativeSrc":"34495:3:97","nodeType":"YulIdentifier","src":"34495:3:97"},"nativeSrc":"34495:11:97","nodeType":"YulFunctionCall","src":"34495:11:97"},"variables":[{"name":"src","nativeSrc":"34488:3:97","nodeType":"YulTypedName","src":"34488:3:97","type":""}]},{"body":{"nativeSrc":"34571:154:97","nodeType":"YulBlock","src":"34571:154:97","statements":[{"nativeSrc":"34585:23:97","nodeType":"YulVariableDeclaration","src":"34585:23:97","value":{"arguments":[{"name":"src","nativeSrc":"34604:3:97","nodeType":"YulIdentifier","src":"34604:3:97"}],"functionName":{"name":"mload","nativeSrc":"34598:5:97","nodeType":"YulIdentifier","src":"34598:5:97"},"nativeSrc":"34598:10:97","nodeType":"YulFunctionCall","src":"34598:10:97"},"variables":[{"name":"value","nativeSrc":"34589:5:97","nodeType":"YulTypedName","src":"34589:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"34646:5:97","nodeType":"YulIdentifier","src":"34646:5:97"}],"functionName":{"name":"validator_revert_address","nativeSrc":"34621:24:97","nodeType":"YulIdentifier","src":"34621:24:97"},"nativeSrc":"34621:31:97","nodeType":"YulFunctionCall","src":"34621:31:97"},"nativeSrc":"34621:31:97","nodeType":"YulExpressionStatement","src":"34621:31:97"},{"expression":{"arguments":[{"name":"dst","nativeSrc":"34672:3:97","nodeType":"YulIdentifier","src":"34672:3:97"},{"name":"value","nativeSrc":"34677:5:97","nodeType":"YulIdentifier","src":"34677:5:97"}],"functionName":{"name":"mstore","nativeSrc":"34665:6:97","nodeType":"YulIdentifier","src":"34665:6:97"},"nativeSrc":"34665:18:97","nodeType":"YulFunctionCall","src":"34665:18:97"},"nativeSrc":"34665:18:97","nodeType":"YulExpressionStatement","src":"34665:18:97"},{"nativeSrc":"34696:19:97","nodeType":"YulAssignment","src":"34696:19:97","value":{"arguments":[{"name":"dst","nativeSrc":"34707:3:97","nodeType":"YulIdentifier","src":"34707:3:97"},{"name":"_4","nativeSrc":"34712:2:97","nodeType":"YulIdentifier","src":"34712:2:97"}],"functionName":{"name":"add","nativeSrc":"34703:3:97","nodeType":"YulIdentifier","src":"34703:3:97"},"nativeSrc":"34703:12:97","nodeType":"YulFunctionCall","src":"34703:12:97"},"variableNames":[{"name":"dst","nativeSrc":"34696:3:97","nodeType":"YulIdentifier","src":"34696:3:97"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"34526:3:97","nodeType":"YulIdentifier","src":"34526:3:97"},{"name":"srcEnd","nativeSrc":"34531:6:97","nodeType":"YulIdentifier","src":"34531:6:97"}],"functionName":{"name":"lt","nativeSrc":"34523:2:97","nodeType":"YulIdentifier","src":"34523:2:97"},"nativeSrc":"34523:15:97","nodeType":"YulFunctionCall","src":"34523:15:97"},"nativeSrc":"34515:210:97","nodeType":"YulForLoop","post":{"nativeSrc":"34539:23:97","nodeType":"YulBlock","src":"34539:23:97","statements":[{"nativeSrc":"34541:19:97","nodeType":"YulAssignment","src":"34541:19:97","value":{"arguments":[{"name":"src","nativeSrc":"34552:3:97","nodeType":"YulIdentifier","src":"34552:3:97"},{"name":"_4","nativeSrc":"34557:2:97","nodeType":"YulIdentifier","src":"34557:2:97"}],"functionName":{"name":"add","nativeSrc":"34548:3:97","nodeType":"YulIdentifier","src":"34548:3:97"},"nativeSrc":"34548:12:97","nodeType":"YulFunctionCall","src":"34548:12:97"},"variableNames":[{"name":"src","nativeSrc":"34541:3:97","nodeType":"YulIdentifier","src":"34541:3:97"}]}]},"pre":{"nativeSrc":"34519:3:97","nodeType":"YulBlock","src":"34519:3:97","statements":[]},"src":"34515:210:97"},{"nativeSrc":"34734:15:97","nodeType":"YulAssignment","src":"34734:15:97","value":{"name":"dst_1","nativeSrc":"34744:5:97","nodeType":"YulIdentifier","src":"34744:5:97"},"variableNames":[{"name":"value0","nativeSrc":"34734:6:97","nodeType":"YulIdentifier","src":"34734:6:97"}]},{"nativeSrc":"34758:41:97","nodeType":"YulVariableDeclaration","src":"34758:41:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34784:9:97","nodeType":"YulIdentifier","src":"34784:9:97"},{"name":"_4","nativeSrc":"34795:2:97","nodeType":"YulIdentifier","src":"34795:2:97"}],"functionName":{"name":"add","nativeSrc":"34780:3:97","nodeType":"YulIdentifier","src":"34780:3:97"},"nativeSrc":"34780:18:97","nodeType":"YulFunctionCall","src":"34780:18:97"}],"functionName":{"name":"mload","nativeSrc":"34774:5:97","nodeType":"YulIdentifier","src":"34774:5:97"},"nativeSrc":"34774:25:97","nodeType":"YulFunctionCall","src":"34774:25:97"},"variables":[{"name":"offset_1","nativeSrc":"34762:8:97","nodeType":"YulTypedName","src":"34762:8:97","type":""}]},{"body":{"nativeSrc":"34828:16:97","nodeType":"YulBlock","src":"34828:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"34837:1:97","nodeType":"YulLiteral","src":"34837:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"34840:1:97","nodeType":"YulLiteral","src":"34840:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"34830:6:97","nodeType":"YulIdentifier","src":"34830:6:97"},"nativeSrc":"34830:12:97","nodeType":"YulFunctionCall","src":"34830:12:97"},"nativeSrc":"34830:12:97","nodeType":"YulExpressionStatement","src":"34830:12:97"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"34814:8:97","nodeType":"YulIdentifier","src":"34814:8:97"},{"name":"_1","nativeSrc":"34824:2:97","nodeType":"YulIdentifier","src":"34824:2:97"}],"functionName":{"name":"gt","nativeSrc":"34811:2:97","nodeType":"YulIdentifier","src":"34811:2:97"},"nativeSrc":"34811:16:97","nodeType":"YulFunctionCall","src":"34811:16:97"},"nativeSrc":"34808:36:97","nodeType":"YulIf","src":"34808:36:97"},{"nativeSrc":"34853:84:97","nodeType":"YulAssignment","src":"34853:84:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34907:9:97","nodeType":"YulIdentifier","src":"34907:9:97"},{"name":"offset_1","nativeSrc":"34918:8:97","nodeType":"YulIdentifier","src":"34918:8:97"}],"functionName":{"name":"add","nativeSrc":"34903:3:97","nodeType":"YulIdentifier","src":"34903:3:97"},"nativeSrc":"34903:24:97","nodeType":"YulFunctionCall","src":"34903:24:97"},{"name":"dataEnd","nativeSrc":"34929:7:97","nodeType":"YulIdentifier","src":"34929:7:97"}],"functionName":{"name":"abi_decode_array_uint256_dyn_fromMemory","nativeSrc":"34863:39:97","nodeType":"YulIdentifier","src":"34863:39:97"},"nativeSrc":"34863:74:97","nodeType":"YulFunctionCall","src":"34863:74:97"},"variableNames":[{"name":"value1","nativeSrc":"34853:6:97","nodeType":"YulIdentifier","src":"34853:6:97"}]},{"nativeSrc":"34946:41:97","nodeType":"YulVariableDeclaration","src":"34946:41:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34972:9:97","nodeType":"YulIdentifier","src":"34972:9:97"},{"kind":"number","nativeSrc":"34983:2:97","nodeType":"YulLiteral","src":"34983:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"34968:3:97","nodeType":"YulIdentifier","src":"34968:3:97"},"nativeSrc":"34968:18:97","nodeType":"YulFunctionCall","src":"34968:18:97"}],"functionName":{"name":"mload","nativeSrc":"34962:5:97","nodeType":"YulIdentifier","src":"34962:5:97"},"nativeSrc":"34962:25:97","nodeType":"YulFunctionCall","src":"34962:25:97"},"variables":[{"name":"offset_2","nativeSrc":"34950:8:97","nodeType":"YulTypedName","src":"34950:8:97","type":""}]},{"body":{"nativeSrc":"35016:16:97","nodeType":"YulBlock","src":"35016:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"35025:1:97","nodeType":"YulLiteral","src":"35025:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"35028:1:97","nodeType":"YulLiteral","src":"35028:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"35018:6:97","nodeType":"YulIdentifier","src":"35018:6:97"},"nativeSrc":"35018:12:97","nodeType":"YulFunctionCall","src":"35018:12:97"},"nativeSrc":"35018:12:97","nodeType":"YulExpressionStatement","src":"35018:12:97"}]},"condition":{"arguments":[{"name":"offset_2","nativeSrc":"35002:8:97","nodeType":"YulIdentifier","src":"35002:8:97"},{"name":"_1","nativeSrc":"35012:2:97","nodeType":"YulIdentifier","src":"35012:2:97"}],"functionName":{"name":"gt","nativeSrc":"34999:2:97","nodeType":"YulIdentifier","src":"34999:2:97"},"nativeSrc":"34999:16:97","nodeType":"YulFunctionCall","src":"34999:16:97"},"nativeSrc":"34996:36:97","nodeType":"YulIf","src":"34996:36:97"},{"nativeSrc":"35041:83:97","nodeType":"YulAssignment","src":"35041:83:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35094:9:97","nodeType":"YulIdentifier","src":"35094:9:97"},{"name":"offset_2","nativeSrc":"35105:8:97","nodeType":"YulIdentifier","src":"35105:8:97"}],"functionName":{"name":"add","nativeSrc":"35090:3:97","nodeType":"YulIdentifier","src":"35090:3:97"},"nativeSrc":"35090:24:97","nodeType":"YulFunctionCall","src":"35090:24:97"},{"name":"dataEnd","nativeSrc":"35116:7:97","nodeType":"YulIdentifier","src":"35116:7:97"}],"functionName":{"name":"abi_decode_array_string_dyn_fromMemory","nativeSrc":"35051:38:97","nodeType":"YulIdentifier","src":"35051:38:97"},"nativeSrc":"35051:73:97","nodeType":"YulFunctionCall","src":"35051:73:97"},"variableNames":[{"name":"value2","nativeSrc":"35041:6:97","nodeType":"YulIdentifier","src":"35041:6:97"}]},{"nativeSrc":"35133:41:97","nodeType":"YulVariableDeclaration","src":"35133:41:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35159:9:97","nodeType":"YulIdentifier","src":"35159:9:97"},{"kind":"number","nativeSrc":"35170:2:97","nodeType":"YulLiteral","src":"35170:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"35155:3:97","nodeType":"YulIdentifier","src":"35155:3:97"},"nativeSrc":"35155:18:97","nodeType":"YulFunctionCall","src":"35155:18:97"}],"functionName":{"name":"mload","nativeSrc":"35149:5:97","nodeType":"YulIdentifier","src":"35149:5:97"},"nativeSrc":"35149:25:97","nodeType":"YulFunctionCall","src":"35149:25:97"},"variables":[{"name":"offset_3","nativeSrc":"35137:8:97","nodeType":"YulTypedName","src":"35137:8:97","type":""}]},{"body":{"nativeSrc":"35203:16:97","nodeType":"YulBlock","src":"35203:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"35212:1:97","nodeType":"YulLiteral","src":"35212:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"35215:1:97","nodeType":"YulLiteral","src":"35215:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"35205:6:97","nodeType":"YulIdentifier","src":"35205:6:97"},"nativeSrc":"35205:12:97","nodeType":"YulFunctionCall","src":"35205:12:97"},"nativeSrc":"35205:12:97","nodeType":"YulExpressionStatement","src":"35205:12:97"}]},"condition":{"arguments":[{"name":"offset_3","nativeSrc":"35189:8:97","nodeType":"YulIdentifier","src":"35189:8:97"},{"name":"_1","nativeSrc":"35199:2:97","nodeType":"YulIdentifier","src":"35199:2:97"}],"functionName":{"name":"gt","nativeSrc":"35186:2:97","nodeType":"YulIdentifier","src":"35186:2:97"},"nativeSrc":"35186:16:97","nodeType":"YulFunctionCall","src":"35186:16:97"},"nativeSrc":"35183:36:97","nodeType":"YulIf","src":"35183:36:97"},{"nativeSrc":"35228:82:97","nodeType":"YulAssignment","src":"35228:82:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35280:9:97","nodeType":"YulIdentifier","src":"35280:9:97"},{"name":"offset_3","nativeSrc":"35291:8:97","nodeType":"YulIdentifier","src":"35291:8:97"}],"functionName":{"name":"add","nativeSrc":"35276:3:97","nodeType":"YulIdentifier","src":"35276:3:97"},"nativeSrc":"35276:24:97","nodeType":"YulFunctionCall","src":"35276:24:97"},{"name":"dataEnd","nativeSrc":"35302:7:97","nodeType":"YulIdentifier","src":"35302:7:97"}],"functionName":{"name":"abi_decode_array_bytes_dyn_fromMemory","nativeSrc":"35238:37:97","nodeType":"YulIdentifier","src":"35238:37:97"},"nativeSrc":"35238:72:97","nodeType":"YulFunctionCall","src":"35238:72:97"},"variableNames":[{"name":"value3","nativeSrc":"35228:6:97","nodeType":"YulIdentifier","src":"35228:6:97"}]},{"nativeSrc":"35319:58:97","nodeType":"YulAssignment","src":"35319:58:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35361:9:97","nodeType":"YulIdentifier","src":"35361:9:97"},{"kind":"number","nativeSrc":"35372:3:97","nodeType":"YulLiteral","src":"35372:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"35357:3:97","nodeType":"YulIdentifier","src":"35357:3:97"},"nativeSrc":"35357:19:97","nodeType":"YulFunctionCall","src":"35357:19:97"}],"functionName":{"name":"abi_decode_uint8_fromMemory","nativeSrc":"35329:27:97","nodeType":"YulIdentifier","src":"35329:27:97"},"nativeSrc":"35329:48:97","nodeType":"YulFunctionCall","src":"35329:48:97"},"variableNames":[{"name":"value4","nativeSrc":"35319:6:97","nodeType":"YulIdentifier","src":"35319:6:97"}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_string_memory_ptr_$dyn_memory_ptrt_array$_t_bytes_memory_ptr_$dyn_memory_ptrt_uint8_fromMemory","nativeSrc":"33604:1779:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"33804:9:97","nodeType":"YulTypedName","src":"33804:9:97","type":""},{"name":"dataEnd","nativeSrc":"33815:7:97","nodeType":"YulTypedName","src":"33815:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"33827:6:97","nodeType":"YulTypedName","src":"33827:6:97","type":""},{"name":"value1","nativeSrc":"33835:6:97","nodeType":"YulTypedName","src":"33835:6:97","type":""},{"name":"value2","nativeSrc":"33843:6:97","nodeType":"YulTypedName","src":"33843:6:97","type":""},{"name":"value3","nativeSrc":"33851:6:97","nodeType":"YulTypedName","src":"33851:6:97","type":""},{"name":"value4","nativeSrc":"33859:6:97","nodeType":"YulTypedName","src":"33859:6:97","type":""}],"src":"33604:1779:97"},{"body":{"nativeSrc":"35562:300:97","nodeType":"YulBlock","src":"35562:300:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"35579:9:97","nodeType":"YulIdentifier","src":"35579:9:97"},{"kind":"number","nativeSrc":"35590:2:97","nodeType":"YulLiteral","src":"35590:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"35572:6:97","nodeType":"YulIdentifier","src":"35572:6:97"},"nativeSrc":"35572:21:97","nodeType":"YulFunctionCall","src":"35572:21:97"},"nativeSrc":"35572:21:97","nodeType":"YulExpressionStatement","src":"35572:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35613:9:97","nodeType":"YulIdentifier","src":"35613:9:97"},{"kind":"number","nativeSrc":"35624:2:97","nodeType":"YulLiteral","src":"35624:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"35609:3:97","nodeType":"YulIdentifier","src":"35609:3:97"},"nativeSrc":"35609:18:97","nodeType":"YulFunctionCall","src":"35609:18:97"},{"kind":"number","nativeSrc":"35629:2:97","nodeType":"YulLiteral","src":"35629:2:97","type":"","value":"70"}],"functionName":{"name":"mstore","nativeSrc":"35602:6:97","nodeType":"YulIdentifier","src":"35602:6:97"},"nativeSrc":"35602:30:97","nodeType":"YulFunctionCall","src":"35602:30:97"},"nativeSrc":"35602:30:97","nodeType":"YulExpressionStatement","src":"35602:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35652:9:97","nodeType":"YulIdentifier","src":"35652:9:97"},{"kind":"number","nativeSrc":"35663:2:97","nodeType":"YulLiteral","src":"35663:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"35648:3:97","nodeType":"YulIdentifier","src":"35648:3:97"},"nativeSrc":"35648:18:97","nodeType":"YulFunctionCall","src":"35648:18:97"},{"hexValue":"4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a5f6e6f","kind":"string","nativeSrc":"35668:34:97","nodeType":"YulLiteral","src":"35668:34:97","type":"","value":"OmnichainGovernanceExecutor::_no"}],"functionName":{"name":"mstore","nativeSrc":"35641:6:97","nodeType":"YulIdentifier","src":"35641:6:97"},"nativeSrc":"35641:62:97","nodeType":"YulFunctionCall","src":"35641:62:97"},"nativeSrc":"35641:62:97","nodeType":"YulExpressionStatement","src":"35641:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35723:9:97","nodeType":"YulIdentifier","src":"35723:9:97"},{"kind":"number","nativeSrc":"35734:2:97","nodeType":"YulLiteral","src":"35734:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"35719:3:97","nodeType":"YulIdentifier","src":"35719:3:97"},"nativeSrc":"35719:18:97","nodeType":"YulFunctionCall","src":"35719:18:97"},{"hexValue":"6e626c6f636b696e674c7a526563656976653a206475706c6963617465207072","kind":"string","nativeSrc":"35739:34:97","nodeType":"YulLiteral","src":"35739:34:97","type":"","value":"nblockingLzReceive: duplicate pr"}],"functionName":{"name":"mstore","nativeSrc":"35712:6:97","nodeType":"YulIdentifier","src":"35712:6:97"},"nativeSrc":"35712:62:97","nodeType":"YulFunctionCall","src":"35712:62:97"},"nativeSrc":"35712:62:97","nodeType":"YulExpressionStatement","src":"35712:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35794:9:97","nodeType":"YulIdentifier","src":"35794:9:97"},{"kind":"number","nativeSrc":"35805:3:97","nodeType":"YulLiteral","src":"35805:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"35790:3:97","nodeType":"YulIdentifier","src":"35790:3:97"},"nativeSrc":"35790:19:97","nodeType":"YulFunctionCall","src":"35790:19:97"},{"hexValue":"6f706f73616c","kind":"string","nativeSrc":"35811:8:97","nodeType":"YulLiteral","src":"35811:8:97","type":"","value":"oposal"}],"functionName":{"name":"mstore","nativeSrc":"35783:6:97","nodeType":"YulIdentifier","src":"35783:6:97"},"nativeSrc":"35783:37:97","nodeType":"YulFunctionCall","src":"35783:37:97"},"nativeSrc":"35783:37:97","nodeType":"YulExpressionStatement","src":"35783:37:97"},{"nativeSrc":"35829:27:97","nodeType":"YulAssignment","src":"35829:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"35841:9:97","nodeType":"YulIdentifier","src":"35841:9:97"},{"kind":"number","nativeSrc":"35852:3:97","nodeType":"YulLiteral","src":"35852:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"35837:3:97","nodeType":"YulIdentifier","src":"35837:3:97"},"nativeSrc":"35837:19:97","nodeType":"YulFunctionCall","src":"35837:19:97"},"variableNames":[{"name":"tail","nativeSrc":"35829:4:97","nodeType":"YulIdentifier","src":"35829:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_2803d9538cd5469ac5fa2c9532b3ddc0b845796807f5a1c18ddcf2f3ee49776b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"35388:474:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"35539:9:97","nodeType":"YulTypedName","src":"35539:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"35553:4:97","nodeType":"YulTypedName","src":"35553:4:97","type":""}],"src":"35388:474:97"},{"body":{"nativeSrc":"36041:326:97","nodeType":"YulBlock","src":"36041:326:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"36058:9:97","nodeType":"YulIdentifier","src":"36058:9:97"},{"kind":"number","nativeSrc":"36069:2:97","nodeType":"YulLiteral","src":"36069:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"36051:6:97","nodeType":"YulIdentifier","src":"36051:6:97"},"nativeSrc":"36051:21:97","nodeType":"YulFunctionCall","src":"36051:21:97"},"nativeSrc":"36051:21:97","nodeType":"YulExpressionStatement","src":"36051:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36092:9:97","nodeType":"YulIdentifier","src":"36092:9:97"},{"kind":"number","nativeSrc":"36103:2:97","nodeType":"YulLiteral","src":"36103:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"36088:3:97","nodeType":"YulIdentifier","src":"36088:3:97"},"nativeSrc":"36088:18:97","nodeType":"YulFunctionCall","src":"36088:18:97"},{"kind":"number","nativeSrc":"36108:2:97","nodeType":"YulLiteral","src":"36108:2:97","type":"","value":"96"}],"functionName":{"name":"mstore","nativeSrc":"36081:6:97","nodeType":"YulIdentifier","src":"36081:6:97"},"nativeSrc":"36081:30:97","nodeType":"YulFunctionCall","src":"36081:30:97"},"nativeSrc":"36081:30:97","nodeType":"YulExpressionStatement","src":"36081:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36131:9:97","nodeType":"YulIdentifier","src":"36131:9:97"},{"kind":"number","nativeSrc":"36142:2:97","nodeType":"YulLiteral","src":"36142:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"36127:3:97","nodeType":"YulIdentifier","src":"36127:3:97"},"nativeSrc":"36127:18:97","nodeType":"YulFunctionCall","src":"36127:18:97"},{"hexValue":"4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a5f6e6f","kind":"string","nativeSrc":"36147:34:97","nodeType":"YulLiteral","src":"36147:34:97","type":"","value":"OmnichainGovernanceExecutor::_no"}],"functionName":{"name":"mstore","nativeSrc":"36120:6:97","nodeType":"YulIdentifier","src":"36120:6:97"},"nativeSrc":"36120:62:97","nodeType":"YulFunctionCall","src":"36120:62:97"},"nativeSrc":"36120:62:97","nodeType":"YulExpressionStatement","src":"36120:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36202:9:97","nodeType":"YulIdentifier","src":"36202:9:97"},{"kind":"number","nativeSrc":"36213:2:97","nodeType":"YulLiteral","src":"36213:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"36198:3:97","nodeType":"YulIdentifier","src":"36198:3:97"},"nativeSrc":"36198:18:97","nodeType":"YulFunctionCall","src":"36198:18:97"},{"hexValue":"6e626c6f636b696e674c7a526563656976653a2070726f706f73616c2066756e","kind":"string","nativeSrc":"36218:34:97","nodeType":"YulLiteral","src":"36218:34:97","type":"","value":"nblockingLzReceive: proposal fun"}],"functionName":{"name":"mstore","nativeSrc":"36191:6:97","nodeType":"YulIdentifier","src":"36191:6:97"},"nativeSrc":"36191:62:97","nodeType":"YulFunctionCall","src":"36191:62:97"},"nativeSrc":"36191:62:97","nodeType":"YulExpressionStatement","src":"36191:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36273:9:97","nodeType":"YulIdentifier","src":"36273:9:97"},{"kind":"number","nativeSrc":"36284:3:97","nodeType":"YulLiteral","src":"36284:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"36269:3:97","nodeType":"YulIdentifier","src":"36269:3:97"},"nativeSrc":"36269:19:97","nodeType":"YulFunctionCall","src":"36269:19:97"},{"hexValue":"6374696f6e20696e666f726d6174696f6e206172697479206d69736d61746368","kind":"string","nativeSrc":"36290:34:97","nodeType":"YulLiteral","src":"36290:34:97","type":"","value":"ction information arity mismatch"}],"functionName":{"name":"mstore","nativeSrc":"36262:6:97","nodeType":"YulIdentifier","src":"36262:6:97"},"nativeSrc":"36262:63:97","nodeType":"YulFunctionCall","src":"36262:63:97"},"nativeSrc":"36262:63:97","nodeType":"YulExpressionStatement","src":"36262:63:97"},{"nativeSrc":"36334:27:97","nodeType":"YulAssignment","src":"36334:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"36346:9:97","nodeType":"YulIdentifier","src":"36346:9:97"},{"kind":"number","nativeSrc":"36357:3:97","nodeType":"YulLiteral","src":"36357:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"36342:3:97","nodeType":"YulIdentifier","src":"36342:3:97"},"nativeSrc":"36342:19:97","nodeType":"YulFunctionCall","src":"36342:19:97"},"variableNames":[{"name":"tail","nativeSrc":"36334:4:97","nodeType":"YulIdentifier","src":"36334:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_73269ca63e07077728e117499df129cf16ffbb7f2e384ee0422cb3a9906cbd6f__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"35867:500:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"36018:9:97","nodeType":"YulTypedName","src":"36018:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"36032:4:97","nodeType":"YulTypedName","src":"36032:4:97","type":""}],"src":"35867:500:97"},{"body":{"nativeSrc":"36546:303:97","nodeType":"YulBlock","src":"36546:303:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"36563:9:97","nodeType":"YulIdentifier","src":"36563:9:97"},{"kind":"number","nativeSrc":"36574:2:97","nodeType":"YulLiteral","src":"36574:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"36556:6:97","nodeType":"YulIdentifier","src":"36556:6:97"},"nativeSrc":"36556:21:97","nodeType":"YulFunctionCall","src":"36556:21:97"},"nativeSrc":"36556:21:97","nodeType":"YulExpressionStatement","src":"36556:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36597:9:97","nodeType":"YulIdentifier","src":"36597:9:97"},{"kind":"number","nativeSrc":"36608:2:97","nodeType":"YulLiteral","src":"36608:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"36593:3:97","nodeType":"YulIdentifier","src":"36593:3:97"},"nativeSrc":"36593:18:97","nodeType":"YulFunctionCall","src":"36593:18:97"},{"kind":"number","nativeSrc":"36613:2:97","nodeType":"YulLiteral","src":"36613:2:97","type":"","value":"73"}],"functionName":{"name":"mstore","nativeSrc":"36586:6:97","nodeType":"YulIdentifier","src":"36586:6:97"},"nativeSrc":"36586:30:97","nodeType":"YulFunctionCall","src":"36586:30:97"},"nativeSrc":"36586:30:97","nodeType":"YulExpressionStatement","src":"36586:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36636:9:97","nodeType":"YulIdentifier","src":"36636:9:97"},{"kind":"number","nativeSrc":"36647:2:97","nodeType":"YulLiteral","src":"36647:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"36632:3:97","nodeType":"YulIdentifier","src":"36632:3:97"},"nativeSrc":"36632:18:97","nodeType":"YulFunctionCall","src":"36632:18:97"},{"hexValue":"4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a5f6e6f","kind":"string","nativeSrc":"36652:34:97","nodeType":"YulLiteral","src":"36652:34:97","type":"","value":"OmnichainGovernanceExecutor::_no"}],"functionName":{"name":"mstore","nativeSrc":"36625:6:97","nodeType":"YulIdentifier","src":"36625:6:97"},"nativeSrc":"36625:62:97","nodeType":"YulFunctionCall","src":"36625:62:97"},"nativeSrc":"36625:62:97","nodeType":"YulExpressionStatement","src":"36625:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36707:9:97","nodeType":"YulIdentifier","src":"36707:9:97"},{"kind":"number","nativeSrc":"36718:2:97","nodeType":"YulLiteral","src":"36718:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"36703:3:97","nodeType":"YulIdentifier","src":"36703:3:97"},"nativeSrc":"36703:18:97","nodeType":"YulFunctionCall","src":"36703:18:97"},{"hexValue":"6e626c6f636b696e674c7a526563656976653a20696e76616c69642070726f70","kind":"string","nativeSrc":"36723:34:97","nodeType":"YulLiteral","src":"36723:34:97","type":"","value":"nblockingLzReceive: invalid prop"}],"functionName":{"name":"mstore","nativeSrc":"36696:6:97","nodeType":"YulIdentifier","src":"36696:6:97"},"nativeSrc":"36696:62:97","nodeType":"YulFunctionCall","src":"36696:62:97"},"nativeSrc":"36696:62:97","nodeType":"YulExpressionStatement","src":"36696:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36778:9:97","nodeType":"YulIdentifier","src":"36778:9:97"},{"kind":"number","nativeSrc":"36789:3:97","nodeType":"YulLiteral","src":"36789:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"36774:3:97","nodeType":"YulIdentifier","src":"36774:3:97"},"nativeSrc":"36774:19:97","nodeType":"YulFunctionCall","src":"36774:19:97"},{"hexValue":"6f73616c2074797065","kind":"string","nativeSrc":"36795:11:97","nodeType":"YulLiteral","src":"36795:11:97","type":"","value":"osal type"}],"functionName":{"name":"mstore","nativeSrc":"36767:6:97","nodeType":"YulIdentifier","src":"36767:6:97"},"nativeSrc":"36767:40:97","nodeType":"YulFunctionCall","src":"36767:40:97"},"nativeSrc":"36767:40:97","nodeType":"YulExpressionStatement","src":"36767:40:97"},{"nativeSrc":"36816:27:97","nodeType":"YulAssignment","src":"36816:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"36828:9:97","nodeType":"YulIdentifier","src":"36828:9:97"},{"kind":"number","nativeSrc":"36839:3:97","nodeType":"YulLiteral","src":"36839:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"36824:3:97","nodeType":"YulIdentifier","src":"36824:3:97"},"nativeSrc":"36824:19:97","nodeType":"YulFunctionCall","src":"36824:19:97"},"variableNames":[{"name":"tail","nativeSrc":"36816:4:97","nodeType":"YulIdentifier","src":"36816:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_6f48fffb767fcd1a10142050a1c2f0fa4d3752673ff6e94ff8b534dd8a3a82bb__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"36372:477:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"36523:9:97","nodeType":"YulTypedName","src":"36523:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"36537:4:97","nodeType":"YulTypedName","src":"36537:4:97","type":""}],"src":"36372:477:97"},{"body":{"nativeSrc":"36914:596:97","nodeType":"YulBlock","src":"36914:596:97","statements":[{"nativeSrc":"36924:16:97","nodeType":"YulVariableDeclaration","src":"36924:16:97","value":{"name":"pos","nativeSrc":"36937:3:97","nodeType":"YulIdentifier","src":"36937:3:97"},"variables":[{"name":"pos_1","nativeSrc":"36928:5:97","nodeType":"YulTypedName","src":"36928:5:97","type":""}]},{"nativeSrc":"36949:26:97","nodeType":"YulVariableDeclaration","src":"36949:26:97","value":{"arguments":[{"name":"value","nativeSrc":"36969:5:97","nodeType":"YulIdentifier","src":"36969:5:97"}],"functionName":{"name":"mload","nativeSrc":"36963:5:97","nodeType":"YulIdentifier","src":"36963:5:97"},"nativeSrc":"36963:12:97","nodeType":"YulFunctionCall","src":"36963:12:97"},"variables":[{"name":"length","nativeSrc":"36953:6:97","nodeType":"YulTypedName","src":"36953:6:97","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"36991:3:97","nodeType":"YulIdentifier","src":"36991:3:97"},{"name":"length","nativeSrc":"36996:6:97","nodeType":"YulIdentifier","src":"36996:6:97"}],"functionName":{"name":"mstore","nativeSrc":"36984:6:97","nodeType":"YulIdentifier","src":"36984:6:97"},"nativeSrc":"36984:19:97","nodeType":"YulFunctionCall","src":"36984:19:97"},"nativeSrc":"36984:19:97","nodeType":"YulExpressionStatement","src":"36984:19:97"},{"nativeSrc":"37012:14:97","nodeType":"YulVariableDeclaration","src":"37012:14:97","value":{"kind":"number","nativeSrc":"37022:4:97","nodeType":"YulLiteral","src":"37022:4:97","type":"","value":"0x20"},"variables":[{"name":"_1","nativeSrc":"37016:2:97","nodeType":"YulTypedName","src":"37016:2:97","type":""}]},{"nativeSrc":"37035:21:97","nodeType":"YulAssignment","src":"37035:21:97","value":{"arguments":[{"name":"pos","nativeSrc":"37046:3:97","nodeType":"YulIdentifier","src":"37046:3:97"},{"kind":"number","nativeSrc":"37051:4:97","nodeType":"YulLiteral","src":"37051:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"37042:3:97","nodeType":"YulIdentifier","src":"37042:3:97"},"nativeSrc":"37042:14:97","nodeType":"YulFunctionCall","src":"37042:14:97"},"variableNames":[{"name":"pos","nativeSrc":"37035:3:97","nodeType":"YulIdentifier","src":"37035:3:97"}]},{"nativeSrc":"37065:49:97","nodeType":"YulVariableDeclaration","src":"37065:49:97","value":{"arguments":[{"arguments":[{"name":"pos_1","nativeSrc":"37085:5:97","nodeType":"YulIdentifier","src":"37085:5:97"},{"arguments":[{"kind":"number","nativeSrc":"37096:1:97","nodeType":"YulLiteral","src":"37096:1:97","type":"","value":"5"},{"name":"length","nativeSrc":"37099:6:97","nodeType":"YulIdentifier","src":"37099:6:97"}],"functionName":{"name":"shl","nativeSrc":"37092:3:97","nodeType":"YulIdentifier","src":"37092:3:97"},"nativeSrc":"37092:14:97","nodeType":"YulFunctionCall","src":"37092:14:97"}],"functionName":{"name":"add","nativeSrc":"37081:3:97","nodeType":"YulIdentifier","src":"37081:3:97"},"nativeSrc":"37081:26:97","nodeType":"YulFunctionCall","src":"37081:26:97"},{"kind":"number","nativeSrc":"37109:4:97","nodeType":"YulLiteral","src":"37109:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"37077:3:97","nodeType":"YulIdentifier","src":"37077:3:97"},"nativeSrc":"37077:37:97","nodeType":"YulFunctionCall","src":"37077:37:97"},"variables":[{"name":"tail","nativeSrc":"37069:4:97","nodeType":"YulTypedName","src":"37069:4:97","type":""}]},{"nativeSrc":"37123:30:97","nodeType":"YulVariableDeclaration","src":"37123:30:97","value":{"arguments":[{"name":"value","nativeSrc":"37141:5:97","nodeType":"YulIdentifier","src":"37141:5:97"},{"kind":"number","nativeSrc":"37148:4:97","nodeType":"YulLiteral","src":"37148:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"37137:3:97","nodeType":"YulIdentifier","src":"37137:3:97"},"nativeSrc":"37137:16:97","nodeType":"YulFunctionCall","src":"37137:16:97"},"variables":[{"name":"srcPtr","nativeSrc":"37127:6:97","nodeType":"YulTypedName","src":"37127:6:97","type":""}]},{"nativeSrc":"37162:10:97","nodeType":"YulVariableDeclaration","src":"37162:10:97","value":{"kind":"number","nativeSrc":"37171:1:97","nodeType":"YulLiteral","src":"37171:1:97","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"37166:1:97","nodeType":"YulTypedName","src":"37166:1:97","type":""}]},{"body":{"nativeSrc":"37230:254:97","nodeType":"YulBlock","src":"37230:254:97","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"37251:3:97","nodeType":"YulIdentifier","src":"37251:3:97"},{"arguments":[{"arguments":[{"name":"tail","nativeSrc":"37264:4:97","nodeType":"YulIdentifier","src":"37264:4:97"},{"name":"pos_1","nativeSrc":"37270:5:97","nodeType":"YulIdentifier","src":"37270:5:97"}],"functionName":{"name":"sub","nativeSrc":"37260:3:97","nodeType":"YulIdentifier","src":"37260:3:97"},"nativeSrc":"37260:16:97","nodeType":"YulFunctionCall","src":"37260:16:97"},{"kind":"number","nativeSrc":"37278:66:97","nodeType":"YulLiteral","src":"37278:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"add","nativeSrc":"37256:3:97","nodeType":"YulIdentifier","src":"37256:3:97"},"nativeSrc":"37256:89:97","nodeType":"YulFunctionCall","src":"37256:89:97"}],"functionName":{"name":"mstore","nativeSrc":"37244:6:97","nodeType":"YulIdentifier","src":"37244:6:97"},"nativeSrc":"37244:102:97","nodeType":"YulFunctionCall","src":"37244:102:97"},"nativeSrc":"37244:102:97","nodeType":"YulExpressionStatement","src":"37244:102:97"},{"nativeSrc":"37359:45:97","nodeType":"YulAssignment","src":"37359:45:97","value":{"arguments":[{"arguments":[{"name":"srcPtr","nativeSrc":"37390:6:97","nodeType":"YulIdentifier","src":"37390:6:97"}],"functionName":{"name":"mload","nativeSrc":"37384:5:97","nodeType":"YulIdentifier","src":"37384:5:97"},"nativeSrc":"37384:13:97","nodeType":"YulFunctionCall","src":"37384:13:97"},{"name":"tail","nativeSrc":"37399:4:97","nodeType":"YulIdentifier","src":"37399:4:97"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"37367:16:97","nodeType":"YulIdentifier","src":"37367:16:97"},"nativeSrc":"37367:37:97","nodeType":"YulFunctionCall","src":"37367:37:97"},"variableNames":[{"name":"tail","nativeSrc":"37359:4:97","nodeType":"YulIdentifier","src":"37359:4:97"}]},{"nativeSrc":"37417:25:97","nodeType":"YulAssignment","src":"37417:25:97","value":{"arguments":[{"name":"srcPtr","nativeSrc":"37431:6:97","nodeType":"YulIdentifier","src":"37431:6:97"},{"name":"_1","nativeSrc":"37439:2:97","nodeType":"YulIdentifier","src":"37439:2:97"}],"functionName":{"name":"add","nativeSrc":"37427:3:97","nodeType":"YulIdentifier","src":"37427:3:97"},"nativeSrc":"37427:15:97","nodeType":"YulFunctionCall","src":"37427:15:97"},"variableNames":[{"name":"srcPtr","nativeSrc":"37417:6:97","nodeType":"YulIdentifier","src":"37417:6:97"}]},{"nativeSrc":"37455:19:97","nodeType":"YulAssignment","src":"37455:19:97","value":{"arguments":[{"name":"pos","nativeSrc":"37466:3:97","nodeType":"YulIdentifier","src":"37466:3:97"},{"name":"_1","nativeSrc":"37471:2:97","nodeType":"YulIdentifier","src":"37471:2:97"}],"functionName":{"name":"add","nativeSrc":"37462:3:97","nodeType":"YulIdentifier","src":"37462:3:97"},"nativeSrc":"37462:12:97","nodeType":"YulFunctionCall","src":"37462:12:97"},"variableNames":[{"name":"pos","nativeSrc":"37455:3:97","nodeType":"YulIdentifier","src":"37455:3:97"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"37192:1:97","nodeType":"YulIdentifier","src":"37192:1:97"},{"name":"length","nativeSrc":"37195:6:97","nodeType":"YulIdentifier","src":"37195:6:97"}],"functionName":{"name":"lt","nativeSrc":"37189:2:97","nodeType":"YulIdentifier","src":"37189:2:97"},"nativeSrc":"37189:13:97","nodeType":"YulFunctionCall","src":"37189:13:97"},"nativeSrc":"37181:303:97","nodeType":"YulForLoop","post":{"nativeSrc":"37203:18:97","nodeType":"YulBlock","src":"37203:18:97","statements":[{"nativeSrc":"37205:14:97","nodeType":"YulAssignment","src":"37205:14:97","value":{"arguments":[{"name":"i","nativeSrc":"37214:1:97","nodeType":"YulIdentifier","src":"37214:1:97"},{"kind":"number","nativeSrc":"37217:1:97","nodeType":"YulLiteral","src":"37217:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"37210:3:97","nodeType":"YulIdentifier","src":"37210:3:97"},"nativeSrc":"37210:9:97","nodeType":"YulFunctionCall","src":"37210:9:97"},"variableNames":[{"name":"i","nativeSrc":"37205:1:97","nodeType":"YulIdentifier","src":"37205:1:97"}]}]},"pre":{"nativeSrc":"37185:3:97","nodeType":"YulBlock","src":"37185:3:97","statements":[]},"src":"37181:303:97"},{"nativeSrc":"37493:11:97","nodeType":"YulAssignment","src":"37493:11:97","value":{"name":"tail","nativeSrc":"37500:4:97","nodeType":"YulIdentifier","src":"37500:4:97"},"variableNames":[{"name":"end","nativeSrc":"37493:3:97","nodeType":"YulIdentifier","src":"37493:3:97"}]}]},"name":"abi_encode_array_string_dyn","nativeSrc":"36854:656:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"36891:5:97","nodeType":"YulTypedName","src":"36891:5:97","type":""},{"name":"pos","nativeSrc":"36898:3:97","nodeType":"YulTypedName","src":"36898:3:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"36906:3:97","nodeType":"YulTypedName","src":"36906:3:97","type":""}],"src":"36854:656:97"},{"body":{"nativeSrc":"37962:1249:97","nodeType":"YulBlock","src":"37962:1249:97","statements":[{"nativeSrc":"37972:33:97","nodeType":"YulVariableDeclaration","src":"37972:33:97","value":{"arguments":[{"name":"headStart","nativeSrc":"37990:9:97","nodeType":"YulIdentifier","src":"37990:9:97"},{"kind":"number","nativeSrc":"38001:3:97","nodeType":"YulLiteral","src":"38001:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"37986:3:97","nodeType":"YulIdentifier","src":"37986:3:97"},"nativeSrc":"37986:19:97","nodeType":"YulFunctionCall","src":"37986:19:97"},"variables":[{"name":"tail_1","nativeSrc":"37976:6:97","nodeType":"YulTypedName","src":"37976:6:97","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"38021:9:97","nodeType":"YulIdentifier","src":"38021:9:97"},{"kind":"number","nativeSrc":"38032:3:97","nodeType":"YulLiteral","src":"38032:3:97","type":"","value":"160"}],"functionName":{"name":"mstore","nativeSrc":"38014:6:97","nodeType":"YulIdentifier","src":"38014:6:97"},"nativeSrc":"38014:22:97","nodeType":"YulFunctionCall","src":"38014:22:97"},"nativeSrc":"38014:22:97","nodeType":"YulExpressionStatement","src":"38014:22:97"},{"nativeSrc":"38045:17:97","nodeType":"YulVariableDeclaration","src":"38045:17:97","value":{"name":"tail_1","nativeSrc":"38056:6:97","nodeType":"YulIdentifier","src":"38056:6:97"},"variables":[{"name":"pos","nativeSrc":"38049:3:97","nodeType":"YulTypedName","src":"38049:3:97","type":""}]},{"nativeSrc":"38071:27:97","nodeType":"YulVariableDeclaration","src":"38071:27:97","value":{"arguments":[{"name":"value0","nativeSrc":"38091:6:97","nodeType":"YulIdentifier","src":"38091:6:97"}],"functionName":{"name":"mload","nativeSrc":"38085:5:97","nodeType":"YulIdentifier","src":"38085:5:97"},"nativeSrc":"38085:13:97","nodeType":"YulFunctionCall","src":"38085:13:97"},"variables":[{"name":"length","nativeSrc":"38075:6:97","nodeType":"YulTypedName","src":"38075:6:97","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nativeSrc":"38114:6:97","nodeType":"YulIdentifier","src":"38114:6:97"},{"name":"length","nativeSrc":"38122:6:97","nodeType":"YulIdentifier","src":"38122:6:97"}],"functionName":{"name":"mstore","nativeSrc":"38107:6:97","nodeType":"YulIdentifier","src":"38107:6:97"},"nativeSrc":"38107:22:97","nodeType":"YulFunctionCall","src":"38107:22:97"},"nativeSrc":"38107:22:97","nodeType":"YulExpressionStatement","src":"38107:22:97"},{"nativeSrc":"38138:26:97","nodeType":"YulAssignment","src":"38138:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"38149:9:97","nodeType":"YulIdentifier","src":"38149:9:97"},{"kind":"number","nativeSrc":"38160:3:97","nodeType":"YulLiteral","src":"38160:3:97","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"38145:3:97","nodeType":"YulIdentifier","src":"38145:3:97"},"nativeSrc":"38145:19:97","nodeType":"YulFunctionCall","src":"38145:19:97"},"variableNames":[{"name":"pos","nativeSrc":"38138:3:97","nodeType":"YulIdentifier","src":"38138:3:97"}]},{"nativeSrc":"38173:14:97","nodeType":"YulVariableDeclaration","src":"38173:14:97","value":{"kind":"number","nativeSrc":"38183:4:97","nodeType":"YulLiteral","src":"38183:4:97","type":"","value":"0x20"},"variables":[{"name":"_1","nativeSrc":"38177:2:97","nodeType":"YulTypedName","src":"38177:2:97","type":""}]},{"nativeSrc":"38196:29:97","nodeType":"YulVariableDeclaration","src":"38196:29:97","value":{"arguments":[{"name":"value0","nativeSrc":"38214:6:97","nodeType":"YulIdentifier","src":"38214:6:97"},{"name":"_1","nativeSrc":"38222:2:97","nodeType":"YulIdentifier","src":"38222:2:97"}],"functionName":{"name":"add","nativeSrc":"38210:3:97","nodeType":"YulIdentifier","src":"38210:3:97"},"nativeSrc":"38210:15:97","nodeType":"YulFunctionCall","src":"38210:15:97"},"variables":[{"name":"srcPtr","nativeSrc":"38200:6:97","nodeType":"YulTypedName","src":"38200:6:97","type":""}]},{"nativeSrc":"38234:10:97","nodeType":"YulVariableDeclaration","src":"38234:10:97","value":{"kind":"number","nativeSrc":"38243:1:97","nodeType":"YulLiteral","src":"38243:1:97","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"38238:1:97","nodeType":"YulTypedName","src":"38238:1:97","type":""}]},{"body":{"nativeSrc":"38302:169:97","nodeType":"YulBlock","src":"38302:169:97","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"38323:3:97","nodeType":"YulIdentifier","src":"38323:3:97"},{"arguments":[{"arguments":[{"name":"srcPtr","nativeSrc":"38338:6:97","nodeType":"YulIdentifier","src":"38338:6:97"}],"functionName":{"name":"mload","nativeSrc":"38332:5:97","nodeType":"YulIdentifier","src":"38332:5:97"},"nativeSrc":"38332:13:97","nodeType":"YulFunctionCall","src":"38332:13:97"},{"kind":"number","nativeSrc":"38347:42:97","nodeType":"YulLiteral","src":"38347:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"38328:3:97","nodeType":"YulIdentifier","src":"38328:3:97"},"nativeSrc":"38328:62:97","nodeType":"YulFunctionCall","src":"38328:62:97"}],"functionName":{"name":"mstore","nativeSrc":"38316:6:97","nodeType":"YulIdentifier","src":"38316:6:97"},"nativeSrc":"38316:75:97","nodeType":"YulFunctionCall","src":"38316:75:97"},"nativeSrc":"38316:75:97","nodeType":"YulExpressionStatement","src":"38316:75:97"},{"nativeSrc":"38404:19:97","nodeType":"YulAssignment","src":"38404:19:97","value":{"arguments":[{"name":"pos","nativeSrc":"38415:3:97","nodeType":"YulIdentifier","src":"38415:3:97"},{"name":"_1","nativeSrc":"38420:2:97","nodeType":"YulIdentifier","src":"38420:2:97"}],"functionName":{"name":"add","nativeSrc":"38411:3:97","nodeType":"YulIdentifier","src":"38411:3:97"},"nativeSrc":"38411:12:97","nodeType":"YulFunctionCall","src":"38411:12:97"},"variableNames":[{"name":"pos","nativeSrc":"38404:3:97","nodeType":"YulIdentifier","src":"38404:3:97"}]},{"nativeSrc":"38436:25:97","nodeType":"YulAssignment","src":"38436:25:97","value":{"arguments":[{"name":"srcPtr","nativeSrc":"38450:6:97","nodeType":"YulIdentifier","src":"38450:6:97"},{"name":"_1","nativeSrc":"38458:2:97","nodeType":"YulIdentifier","src":"38458:2:97"}],"functionName":{"name":"add","nativeSrc":"38446:3:97","nodeType":"YulIdentifier","src":"38446:3:97"},"nativeSrc":"38446:15:97","nodeType":"YulFunctionCall","src":"38446:15:97"},"variableNames":[{"name":"srcPtr","nativeSrc":"38436:6:97","nodeType":"YulIdentifier","src":"38436:6:97"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"38264:1:97","nodeType":"YulIdentifier","src":"38264:1:97"},{"name":"length","nativeSrc":"38267:6:97","nodeType":"YulIdentifier","src":"38267:6:97"}],"functionName":{"name":"lt","nativeSrc":"38261:2:97","nodeType":"YulIdentifier","src":"38261:2:97"},"nativeSrc":"38261:13:97","nodeType":"YulFunctionCall","src":"38261:13:97"},"nativeSrc":"38253:218:97","nodeType":"YulForLoop","post":{"nativeSrc":"38275:18:97","nodeType":"YulBlock","src":"38275:18:97","statements":[{"nativeSrc":"38277:14:97","nodeType":"YulAssignment","src":"38277:14:97","value":{"arguments":[{"name":"i","nativeSrc":"38286:1:97","nodeType":"YulIdentifier","src":"38286:1:97"},{"kind":"number","nativeSrc":"38289:1:97","nodeType":"YulLiteral","src":"38289:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"38282:3:97","nodeType":"YulIdentifier","src":"38282:3:97"},"nativeSrc":"38282:9:97","nodeType":"YulFunctionCall","src":"38282:9:97"},"variableNames":[{"name":"i","nativeSrc":"38277:1:97","nodeType":"YulIdentifier","src":"38277:1:97"}]}]},"pre":{"nativeSrc":"38257:3:97","nodeType":"YulBlock","src":"38257:3:97","statements":[]},"src":"38253:218:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38491:9:97","nodeType":"YulIdentifier","src":"38491:9:97"},{"name":"_1","nativeSrc":"38502:2:97","nodeType":"YulIdentifier","src":"38502:2:97"}],"functionName":{"name":"add","nativeSrc":"38487:3:97","nodeType":"YulIdentifier","src":"38487:3:97"},"nativeSrc":"38487:18:97","nodeType":"YulFunctionCall","src":"38487:18:97"},{"arguments":[{"name":"pos","nativeSrc":"38511:3:97","nodeType":"YulIdentifier","src":"38511:3:97"},{"name":"headStart","nativeSrc":"38516:9:97","nodeType":"YulIdentifier","src":"38516:9:97"}],"functionName":{"name":"sub","nativeSrc":"38507:3:97","nodeType":"YulIdentifier","src":"38507:3:97"},"nativeSrc":"38507:19:97","nodeType":"YulFunctionCall","src":"38507:19:97"}],"functionName":{"name":"mstore","nativeSrc":"38480:6:97","nodeType":"YulIdentifier","src":"38480:6:97"},"nativeSrc":"38480:47:97","nodeType":"YulFunctionCall","src":"38480:47:97"},"nativeSrc":"38480:47:97","nodeType":"YulExpressionStatement","src":"38480:47:97"},{"nativeSrc":"38536:16:97","nodeType":"YulVariableDeclaration","src":"38536:16:97","value":{"name":"pos","nativeSrc":"38549:3:97","nodeType":"YulIdentifier","src":"38549:3:97"},"variables":[{"name":"pos_1","nativeSrc":"38540:5:97","nodeType":"YulTypedName","src":"38540:5:97","type":""}]},{"nativeSrc":"38561:29:97","nodeType":"YulVariableDeclaration","src":"38561:29:97","value":{"arguments":[{"name":"value1","nativeSrc":"38583:6:97","nodeType":"YulIdentifier","src":"38583:6:97"}],"functionName":{"name":"mload","nativeSrc":"38577:5:97","nodeType":"YulIdentifier","src":"38577:5:97"},"nativeSrc":"38577:13:97","nodeType":"YulFunctionCall","src":"38577:13:97"},"variables":[{"name":"length_1","nativeSrc":"38565:8:97","nodeType":"YulTypedName","src":"38565:8:97","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"38606:3:97","nodeType":"YulIdentifier","src":"38606:3:97"},{"name":"length_1","nativeSrc":"38611:8:97","nodeType":"YulIdentifier","src":"38611:8:97"}],"functionName":{"name":"mstore","nativeSrc":"38599:6:97","nodeType":"YulIdentifier","src":"38599:6:97"},"nativeSrc":"38599:21:97","nodeType":"YulFunctionCall","src":"38599:21:97"},"nativeSrc":"38599:21:97","nodeType":"YulExpressionStatement","src":"38599:21:97"},{"nativeSrc":"38629:21:97","nodeType":"YulAssignment","src":"38629:21:97","value":{"arguments":[{"name":"pos","nativeSrc":"38642:3:97","nodeType":"YulIdentifier","src":"38642:3:97"},{"name":"_1","nativeSrc":"38647:2:97","nodeType":"YulIdentifier","src":"38647:2:97"}],"functionName":{"name":"add","nativeSrc":"38638:3:97","nodeType":"YulIdentifier","src":"38638:3:97"},"nativeSrc":"38638:12:97","nodeType":"YulFunctionCall","src":"38638:12:97"},"variableNames":[{"name":"pos_1","nativeSrc":"38629:5:97","nodeType":"YulIdentifier","src":"38629:5:97"}]},{"nativeSrc":"38659:31:97","nodeType":"YulVariableDeclaration","src":"38659:31:97","value":{"arguments":[{"name":"value1","nativeSrc":"38679:6:97","nodeType":"YulIdentifier","src":"38679:6:97"},{"name":"_1","nativeSrc":"38687:2:97","nodeType":"YulIdentifier","src":"38687:2:97"}],"functionName":{"name":"add","nativeSrc":"38675:3:97","nodeType":"YulIdentifier","src":"38675:3:97"},"nativeSrc":"38675:15:97","nodeType":"YulFunctionCall","src":"38675:15:97"},"variables":[{"name":"srcPtr_1","nativeSrc":"38663:8:97","nodeType":"YulTypedName","src":"38663:8:97","type":""}]},{"nativeSrc":"38699:12:97","nodeType":"YulVariableDeclaration","src":"38699:12:97","value":{"kind":"number","nativeSrc":"38710:1:97","nodeType":"YulLiteral","src":"38710:1:97","type":"","value":"0"},"variables":[{"name":"i_1","nativeSrc":"38703:3:97","nodeType":"YulTypedName","src":"38703:3:97","type":""}]},{"body":{"nativeSrc":"38777:132:97","nodeType":"YulBlock","src":"38777:132:97","statements":[{"expression":{"arguments":[{"name":"pos_1","nativeSrc":"38798:5:97","nodeType":"YulIdentifier","src":"38798:5:97"},{"arguments":[{"name":"srcPtr_1","nativeSrc":"38811:8:97","nodeType":"YulIdentifier","src":"38811:8:97"}],"functionName":{"name":"mload","nativeSrc":"38805:5:97","nodeType":"YulIdentifier","src":"38805:5:97"},"nativeSrc":"38805:15:97","nodeType":"YulFunctionCall","src":"38805:15:97"}],"functionName":{"name":"mstore","nativeSrc":"38791:6:97","nodeType":"YulIdentifier","src":"38791:6:97"},"nativeSrc":"38791:30:97","nodeType":"YulFunctionCall","src":"38791:30:97"},"nativeSrc":"38791:30:97","nodeType":"YulExpressionStatement","src":"38791:30:97"},{"nativeSrc":"38834:23:97","nodeType":"YulAssignment","src":"38834:23:97","value":{"arguments":[{"name":"pos_1","nativeSrc":"38847:5:97","nodeType":"YulIdentifier","src":"38847:5:97"},{"name":"_1","nativeSrc":"38854:2:97","nodeType":"YulIdentifier","src":"38854:2:97"}],"functionName":{"name":"add","nativeSrc":"38843:3:97","nodeType":"YulIdentifier","src":"38843:3:97"},"nativeSrc":"38843:14:97","nodeType":"YulFunctionCall","src":"38843:14:97"},"variableNames":[{"name":"pos_1","nativeSrc":"38834:5:97","nodeType":"YulIdentifier","src":"38834:5:97"}]},{"nativeSrc":"38870:29:97","nodeType":"YulAssignment","src":"38870:29:97","value":{"arguments":[{"name":"srcPtr_1","nativeSrc":"38886:8:97","nodeType":"YulIdentifier","src":"38886:8:97"},{"name":"_1","nativeSrc":"38896:2:97","nodeType":"YulIdentifier","src":"38896:2:97"}],"functionName":{"name":"add","nativeSrc":"38882:3:97","nodeType":"YulIdentifier","src":"38882:3:97"},"nativeSrc":"38882:17:97","nodeType":"YulFunctionCall","src":"38882:17:97"},"variableNames":[{"name":"srcPtr_1","nativeSrc":"38870:8:97","nodeType":"YulIdentifier","src":"38870:8:97"}]}]},"condition":{"arguments":[{"name":"i_1","nativeSrc":"38731:3:97","nodeType":"YulIdentifier","src":"38731:3:97"},{"name":"length_1","nativeSrc":"38736:8:97","nodeType":"YulIdentifier","src":"38736:8:97"}],"functionName":{"name":"lt","nativeSrc":"38728:2:97","nodeType":"YulIdentifier","src":"38728:2:97"},"nativeSrc":"38728:17:97","nodeType":"YulFunctionCall","src":"38728:17:97"},"nativeSrc":"38720:189:97","nodeType":"YulForLoop","post":{"nativeSrc":"38746:22:97","nodeType":"YulBlock","src":"38746:22:97","statements":[{"nativeSrc":"38748:18:97","nodeType":"YulAssignment","src":"38748:18:97","value":{"arguments":[{"name":"i_1","nativeSrc":"38759:3:97","nodeType":"YulIdentifier","src":"38759:3:97"},{"kind":"number","nativeSrc":"38764:1:97","nodeType":"YulLiteral","src":"38764:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"38755:3:97","nodeType":"YulIdentifier","src":"38755:3:97"},"nativeSrc":"38755:11:97","nodeType":"YulFunctionCall","src":"38755:11:97"},"variableNames":[{"name":"i_1","nativeSrc":"38748:3:97","nodeType":"YulIdentifier","src":"38748:3:97"}]}]},"pre":{"nativeSrc":"38724:3:97","nodeType":"YulBlock","src":"38724:3:97","statements":[]},"src":"38720:189:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38929:9:97","nodeType":"YulIdentifier","src":"38929:9:97"},{"kind":"number","nativeSrc":"38940:2:97","nodeType":"YulLiteral","src":"38940:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"38925:3:97","nodeType":"YulIdentifier","src":"38925:3:97"},"nativeSrc":"38925:18:97","nodeType":"YulFunctionCall","src":"38925:18:97"},{"arguments":[{"name":"pos_1","nativeSrc":"38949:5:97","nodeType":"YulIdentifier","src":"38949:5:97"},{"name":"headStart","nativeSrc":"38956:9:97","nodeType":"YulIdentifier","src":"38956:9:97"}],"functionName":{"name":"sub","nativeSrc":"38945:3:97","nodeType":"YulIdentifier","src":"38945:3:97"},"nativeSrc":"38945:21:97","nodeType":"YulFunctionCall","src":"38945:21:97"}],"functionName":{"name":"mstore","nativeSrc":"38918:6:97","nodeType":"YulIdentifier","src":"38918:6:97"},"nativeSrc":"38918:49:97","nodeType":"YulFunctionCall","src":"38918:49:97"},"nativeSrc":"38918:49:97","nodeType":"YulExpressionStatement","src":"38918:49:97"},{"nativeSrc":"38976:56:97","nodeType":"YulVariableDeclaration","src":"38976:56:97","value":{"arguments":[{"name":"value2","nativeSrc":"39018:6:97","nodeType":"YulIdentifier","src":"39018:6:97"},{"name":"pos_1","nativeSrc":"39026:5:97","nodeType":"YulIdentifier","src":"39026:5:97"}],"functionName":{"name":"abi_encode_array_string_dyn","nativeSrc":"38990:27:97","nodeType":"YulIdentifier","src":"38990:27:97"},"nativeSrc":"38990:42:97","nodeType":"YulFunctionCall","src":"38990:42:97"},"variables":[{"name":"tail_2","nativeSrc":"38980:6:97","nodeType":"YulTypedName","src":"38980:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39052:9:97","nodeType":"YulIdentifier","src":"39052:9:97"},{"kind":"number","nativeSrc":"39063:2:97","nodeType":"YulLiteral","src":"39063:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"39048:3:97","nodeType":"YulIdentifier","src":"39048:3:97"},"nativeSrc":"39048:18:97","nodeType":"YulFunctionCall","src":"39048:18:97"},{"arguments":[{"name":"tail_2","nativeSrc":"39072:6:97","nodeType":"YulIdentifier","src":"39072:6:97"},{"name":"headStart","nativeSrc":"39080:9:97","nodeType":"YulIdentifier","src":"39080:9:97"}],"functionName":{"name":"sub","nativeSrc":"39068:3:97","nodeType":"YulIdentifier","src":"39068:3:97"},"nativeSrc":"39068:22:97","nodeType":"YulFunctionCall","src":"39068:22:97"}],"functionName":{"name":"mstore","nativeSrc":"39041:6:97","nodeType":"YulIdentifier","src":"39041:6:97"},"nativeSrc":"39041:50:97","nodeType":"YulFunctionCall","src":"39041:50:97"},"nativeSrc":"39041:50:97","nodeType":"YulExpressionStatement","src":"39041:50:97"},{"nativeSrc":"39100:51:97","nodeType":"YulAssignment","src":"39100:51:97","value":{"arguments":[{"name":"value3","nativeSrc":"39136:6:97","nodeType":"YulIdentifier","src":"39136:6:97"},{"name":"tail_2","nativeSrc":"39144:6:97","nodeType":"YulIdentifier","src":"39144:6:97"}],"functionName":{"name":"abi_encode_array_string_dyn","nativeSrc":"39108:27:97","nodeType":"YulIdentifier","src":"39108:27:97"},"nativeSrc":"39108:43:97","nodeType":"YulFunctionCall","src":"39108:43:97"},"variableNames":[{"name":"tail","nativeSrc":"39100:4:97","nodeType":"YulIdentifier","src":"39100:4:97"}]},{"expression":{"arguments":[{"name":"value4","nativeSrc":"39177:6:97","nodeType":"YulIdentifier","src":"39177:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"39189:9:97","nodeType":"YulIdentifier","src":"39189:9:97"},{"kind":"number","nativeSrc":"39200:3:97","nodeType":"YulLiteral","src":"39200:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"39185:3:97","nodeType":"YulIdentifier","src":"39185:3:97"},"nativeSrc":"39185:19:97","nodeType":"YulFunctionCall","src":"39185:19:97"}],"functionName":{"name":"abi_encode_uint8","nativeSrc":"39160:16:97","nodeType":"YulIdentifier","src":"39160:16:97"},"nativeSrc":"39160:45:97","nodeType":"YulFunctionCall","src":"39160:45:97"},"nativeSrc":"39160:45:97","nodeType":"YulExpressionStatement","src":"39160:45:97"}]},"name":"abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_uint8__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_uint8__fromStack_reversed","nativeSrc":"37515:1696:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"37899:9:97","nodeType":"YulTypedName","src":"37899:9:97","type":""},{"name":"value4","nativeSrc":"37910:6:97","nodeType":"YulTypedName","src":"37910:6:97","type":""},{"name":"value3","nativeSrc":"37918:6:97","nodeType":"YulTypedName","src":"37918:6:97","type":""},{"name":"value2","nativeSrc":"37926:6:97","nodeType":"YulTypedName","src":"37926:6:97","type":""},{"name":"value1","nativeSrc":"37934:6:97","nodeType":"YulTypedName","src":"37934:6:97","type":""},{"name":"value0","nativeSrc":"37942:6:97","nodeType":"YulTypedName","src":"37942:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"37953:4:97","nodeType":"YulTypedName","src":"37953:4:97","type":""}],"src":"37515:1696:97"},{"body":{"nativeSrc":"39264:77:97","nodeType":"YulBlock","src":"39264:77:97","statements":[{"nativeSrc":"39274:16:97","nodeType":"YulAssignment","src":"39274:16:97","value":{"arguments":[{"name":"x","nativeSrc":"39285:1:97","nodeType":"YulIdentifier","src":"39285:1:97"},{"name":"y","nativeSrc":"39288:1:97","nodeType":"YulIdentifier","src":"39288:1:97"}],"functionName":{"name":"add","nativeSrc":"39281:3:97","nodeType":"YulIdentifier","src":"39281:3:97"},"nativeSrc":"39281:9:97","nodeType":"YulFunctionCall","src":"39281:9:97"},"variableNames":[{"name":"sum","nativeSrc":"39274:3:97","nodeType":"YulIdentifier","src":"39274:3:97"}]},{"body":{"nativeSrc":"39313:22:97","nodeType":"YulBlock","src":"39313:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"39315:16:97","nodeType":"YulIdentifier","src":"39315:16:97"},"nativeSrc":"39315:18:97","nodeType":"YulFunctionCall","src":"39315:18:97"},"nativeSrc":"39315:18:97","nodeType":"YulExpressionStatement","src":"39315:18:97"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"39305:1:97","nodeType":"YulIdentifier","src":"39305:1:97"},{"name":"sum","nativeSrc":"39308:3:97","nodeType":"YulIdentifier","src":"39308:3:97"}],"functionName":{"name":"gt","nativeSrc":"39302:2:97","nodeType":"YulIdentifier","src":"39302:2:97"},"nativeSrc":"39302:10:97","nodeType":"YulFunctionCall","src":"39302:10:97"},"nativeSrc":"39299:36:97","nodeType":"YulIf","src":"39299:36:97"}]},"name":"checked_add_t_uint256","nativeSrc":"39216:125:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"39247:1:97","nodeType":"YulTypedName","src":"39247:1:97","type":""},{"name":"y","nativeSrc":"39250:1:97","nodeType":"YulTypedName","src":"39250:1:97","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"39256:3:97","nodeType":"YulTypedName","src":"39256:3:97","type":""}],"src":"39216:125:97"},{"body":{"nativeSrc":"39520:164:97","nodeType":"YulBlock","src":"39520:164:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"39537:9:97","nodeType":"YulIdentifier","src":"39537:9:97"},{"kind":"number","nativeSrc":"39548:2:97","nodeType":"YulLiteral","src":"39548:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"39530:6:97","nodeType":"YulIdentifier","src":"39530:6:97"},"nativeSrc":"39530:21:97","nodeType":"YulFunctionCall","src":"39530:21:97"},"nativeSrc":"39530:21:97","nodeType":"YulExpressionStatement","src":"39530:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39571:9:97","nodeType":"YulIdentifier","src":"39571:9:97"},{"kind":"number","nativeSrc":"39582:2:97","nodeType":"YulLiteral","src":"39582:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"39567:3:97","nodeType":"YulIdentifier","src":"39567:3:97"},"nativeSrc":"39567:18:97","nodeType":"YulFunctionCall","src":"39567:18:97"},{"kind":"number","nativeSrc":"39587:2:97","nodeType":"YulLiteral","src":"39587:2:97","type":"","value":"14"}],"functionName":{"name":"mstore","nativeSrc":"39560:6:97","nodeType":"YulIdentifier","src":"39560:6:97"},"nativeSrc":"39560:30:97","nodeType":"YulFunctionCall","src":"39560:30:97"},"nativeSrc":"39560:30:97","nodeType":"YulExpressionStatement","src":"39560:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39610:9:97","nodeType":"YulIdentifier","src":"39610:9:97"},{"kind":"number","nativeSrc":"39621:2:97","nodeType":"YulLiteral","src":"39621:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"39606:3:97","nodeType":"YulIdentifier","src":"39606:3:97"},"nativeSrc":"39606:18:97","nodeType":"YulFunctionCall","src":"39606:18:97"},{"hexValue":"736c6963655f6f766572666c6f77","kind":"string","nativeSrc":"39626:16:97","nodeType":"YulLiteral","src":"39626:16:97","type":"","value":"slice_overflow"}],"functionName":{"name":"mstore","nativeSrc":"39599:6:97","nodeType":"YulIdentifier","src":"39599:6:97"},"nativeSrc":"39599:44:97","nodeType":"YulFunctionCall","src":"39599:44:97"},"nativeSrc":"39599:44:97","nodeType":"YulExpressionStatement","src":"39599:44:97"},{"nativeSrc":"39652:26:97","nodeType":"YulAssignment","src":"39652:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"39664:9:97","nodeType":"YulIdentifier","src":"39664:9:97"},{"kind":"number","nativeSrc":"39675:2:97","nodeType":"YulLiteral","src":"39675:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"39660:3:97","nodeType":"YulIdentifier","src":"39660:3:97"},"nativeSrc":"39660:18:97","nodeType":"YulFunctionCall","src":"39660:18:97"},"variableNames":[{"name":"tail","nativeSrc":"39652:4:97","nodeType":"YulIdentifier","src":"39652:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"39346:338:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"39497:9:97","nodeType":"YulTypedName","src":"39497:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"39511:4:97","nodeType":"YulTypedName","src":"39511:4:97","type":""}],"src":"39346:338:97"},{"body":{"nativeSrc":"39863:167:97","nodeType":"YulBlock","src":"39863:167:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"39880:9:97","nodeType":"YulIdentifier","src":"39880:9:97"},{"kind":"number","nativeSrc":"39891:2:97","nodeType":"YulLiteral","src":"39891:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"39873:6:97","nodeType":"YulIdentifier","src":"39873:6:97"},"nativeSrc":"39873:21:97","nodeType":"YulFunctionCall","src":"39873:21:97"},"nativeSrc":"39873:21:97","nodeType":"YulExpressionStatement","src":"39873:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39914:9:97","nodeType":"YulIdentifier","src":"39914:9:97"},{"kind":"number","nativeSrc":"39925:2:97","nodeType":"YulLiteral","src":"39925:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"39910:3:97","nodeType":"YulIdentifier","src":"39910:3:97"},"nativeSrc":"39910:18:97","nodeType":"YulFunctionCall","src":"39910:18:97"},{"kind":"number","nativeSrc":"39930:2:97","nodeType":"YulLiteral","src":"39930:2:97","type":"","value":"17"}],"functionName":{"name":"mstore","nativeSrc":"39903:6:97","nodeType":"YulIdentifier","src":"39903:6:97"},"nativeSrc":"39903:30:97","nodeType":"YulFunctionCall","src":"39903:30:97"},"nativeSrc":"39903:30:97","nodeType":"YulExpressionStatement","src":"39903:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39953:9:97","nodeType":"YulIdentifier","src":"39953:9:97"},{"kind":"number","nativeSrc":"39964:2:97","nodeType":"YulLiteral","src":"39964:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"39949:3:97","nodeType":"YulIdentifier","src":"39949:3:97"},"nativeSrc":"39949:18:97","nodeType":"YulFunctionCall","src":"39949:18:97"},{"hexValue":"736c6963655f6f75744f66426f756e6473","kind":"string","nativeSrc":"39969:19:97","nodeType":"YulLiteral","src":"39969:19:97","type":"","value":"slice_outOfBounds"}],"functionName":{"name":"mstore","nativeSrc":"39942:6:97","nodeType":"YulIdentifier","src":"39942:6:97"},"nativeSrc":"39942:47:97","nodeType":"YulFunctionCall","src":"39942:47:97"},"nativeSrc":"39942:47:97","nodeType":"YulExpressionStatement","src":"39942:47:97"},{"nativeSrc":"39998:26:97","nodeType":"YulAssignment","src":"39998:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"40010:9:97","nodeType":"YulIdentifier","src":"40010:9:97"},{"kind":"number","nativeSrc":"40021:2:97","nodeType":"YulLiteral","src":"40021:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"40006:3:97","nodeType":"YulIdentifier","src":"40006:3:97"},"nativeSrc":"40006:18:97","nodeType":"YulFunctionCall","src":"40006:18:97"},"variableNames":[{"name":"tail","nativeSrc":"39998:4:97","nodeType":"YulIdentifier","src":"39998:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"39689:341:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"39840:9:97","nodeType":"YulTypedName","src":"39840:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"39854:4:97","nodeType":"YulTypedName","src":"39854:4:97","type":""}],"src":"39689:341:97"},{"body":{"nativeSrc":"40209:181:97","nodeType":"YulBlock","src":"40209:181:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"40226:9:97","nodeType":"YulIdentifier","src":"40226:9:97"},{"kind":"number","nativeSrc":"40237:2:97","nodeType":"YulLiteral","src":"40237:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"40219:6:97","nodeType":"YulIdentifier","src":"40219:6:97"},"nativeSrc":"40219:21:97","nodeType":"YulFunctionCall","src":"40219:21:97"},"nativeSrc":"40219:21:97","nodeType":"YulExpressionStatement","src":"40219:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"40260:9:97","nodeType":"YulIdentifier","src":"40260:9:97"},{"kind":"number","nativeSrc":"40271:2:97","nodeType":"YulLiteral","src":"40271:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"40256:3:97","nodeType":"YulIdentifier","src":"40256:3:97"},"nativeSrc":"40256:18:97","nodeType":"YulFunctionCall","src":"40256:18:97"},{"kind":"number","nativeSrc":"40276:2:97","nodeType":"YulLiteral","src":"40276:2:97","type":"","value":"31"}],"functionName":{"name":"mstore","nativeSrc":"40249:6:97","nodeType":"YulIdentifier","src":"40249:6:97"},"nativeSrc":"40249:30:97","nodeType":"YulFunctionCall","src":"40249:30:97"},"nativeSrc":"40249:30:97","nodeType":"YulExpressionStatement","src":"40249:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"40299:9:97","nodeType":"YulIdentifier","src":"40299:9:97"},{"kind":"number","nativeSrc":"40310:2:97","nodeType":"YulLiteral","src":"40310:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"40295:3:97","nodeType":"YulIdentifier","src":"40295:3:97"},"nativeSrc":"40295:18:97","nodeType":"YulFunctionCall","src":"40295:18:97"},{"hexValue":"5265656e7472616e637947756172643a207265656e7472616e742063616c6c","kind":"string","nativeSrc":"40315:33:97","nodeType":"YulLiteral","src":"40315:33:97","type":"","value":"ReentrancyGuard: reentrant call"}],"functionName":{"name":"mstore","nativeSrc":"40288:6:97","nodeType":"YulIdentifier","src":"40288:6:97"},"nativeSrc":"40288:61:97","nodeType":"YulFunctionCall","src":"40288:61:97"},"nativeSrc":"40288:61:97","nodeType":"YulExpressionStatement","src":"40288:61:97"},{"nativeSrc":"40358:26:97","nodeType":"YulAssignment","src":"40358:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"40370:9:97","nodeType":"YulIdentifier","src":"40370:9:97"},{"kind":"number","nativeSrc":"40381:2:97","nodeType":"YulLiteral","src":"40381:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"40366:3:97","nodeType":"YulIdentifier","src":"40366:3:97"},"nativeSrc":"40366:18:97","nodeType":"YulFunctionCall","src":"40366:18:97"},"variableNames":[{"name":"tail","nativeSrc":"40358:4:97","nodeType":"YulIdentifier","src":"40358:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"40035:355:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"40186:9:97","nodeType":"YulTypedName","src":"40186:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"40200:4:97","nodeType":"YulTypedName","src":"40200:4:97","type":""}],"src":"40035:355:97"},{"body":{"nativeSrc":"40569:225:97","nodeType":"YulBlock","src":"40569:225:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"40586:9:97","nodeType":"YulIdentifier","src":"40586:9:97"},{"kind":"number","nativeSrc":"40597:2:97","nodeType":"YulLiteral","src":"40597:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"40579:6:97","nodeType":"YulIdentifier","src":"40579:6:97"},"nativeSrc":"40579:21:97","nodeType":"YulFunctionCall","src":"40579:21:97"},"nativeSrc":"40579:21:97","nodeType":"YulExpressionStatement","src":"40579:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"40620:9:97","nodeType":"YulIdentifier","src":"40620:9:97"},{"kind":"number","nativeSrc":"40631:2:97","nodeType":"YulLiteral","src":"40631:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"40616:3:97","nodeType":"YulIdentifier","src":"40616:3:97"},"nativeSrc":"40616:18:97","nodeType":"YulFunctionCall","src":"40616:18:97"},{"kind":"number","nativeSrc":"40636:2:97","nodeType":"YulLiteral","src":"40636:2:97","type":"","value":"35"}],"functionName":{"name":"mstore","nativeSrc":"40609:6:97","nodeType":"YulIdentifier","src":"40609:6:97"},"nativeSrc":"40609:30:97","nodeType":"YulFunctionCall","src":"40609:30:97"},"nativeSrc":"40609:30:97","nodeType":"YulExpressionStatement","src":"40609:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"40659:9:97","nodeType":"YulIdentifier","src":"40659:9:97"},{"kind":"number","nativeSrc":"40670:2:97","nodeType":"YulLiteral","src":"40670:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"40655:3:97","nodeType":"YulIdentifier","src":"40655:3:97"},"nativeSrc":"40655:18:97","nodeType":"YulFunctionCall","src":"40655:18:97"},{"hexValue":"4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d657373","kind":"string","nativeSrc":"40675:34:97","nodeType":"YulLiteral","src":"40675:34:97","type":"","value":"NonblockingLzApp: no stored mess"}],"functionName":{"name":"mstore","nativeSrc":"40648:6:97","nodeType":"YulIdentifier","src":"40648:6:97"},"nativeSrc":"40648:62:97","nodeType":"YulFunctionCall","src":"40648:62:97"},"nativeSrc":"40648:62:97","nodeType":"YulExpressionStatement","src":"40648:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"40730:9:97","nodeType":"YulIdentifier","src":"40730:9:97"},{"kind":"number","nativeSrc":"40741:2:97","nodeType":"YulLiteral","src":"40741:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"40726:3:97","nodeType":"YulIdentifier","src":"40726:3:97"},"nativeSrc":"40726:18:97","nodeType":"YulFunctionCall","src":"40726:18:97"},{"hexValue":"616765","kind":"string","nativeSrc":"40746:5:97","nodeType":"YulLiteral","src":"40746:5:97","type":"","value":"age"}],"functionName":{"name":"mstore","nativeSrc":"40719:6:97","nodeType":"YulIdentifier","src":"40719:6:97"},"nativeSrc":"40719:33:97","nodeType":"YulFunctionCall","src":"40719:33:97"},"nativeSrc":"40719:33:97","nodeType":"YulExpressionStatement","src":"40719:33:97"},{"nativeSrc":"40761:27:97","nodeType":"YulAssignment","src":"40761:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"40773:9:97","nodeType":"YulIdentifier","src":"40773:9:97"},{"kind":"number","nativeSrc":"40784:3:97","nodeType":"YulLiteral","src":"40784:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"40769:3:97","nodeType":"YulIdentifier","src":"40769:3:97"},"nativeSrc":"40769:19:97","nodeType":"YulFunctionCall","src":"40769:19:97"},"variableNames":[{"name":"tail","nativeSrc":"40761:4:97","nodeType":"YulIdentifier","src":"40761:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"40395:399:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"40546:9:97","nodeType":"YulTypedName","src":"40546:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"40560:4:97","nodeType":"YulTypedName","src":"40560:4:97","type":""}],"src":"40395:399:97"},{"body":{"nativeSrc":"40973:223:97","nodeType":"YulBlock","src":"40973:223:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"40990:9:97","nodeType":"YulIdentifier","src":"40990:9:97"},{"kind":"number","nativeSrc":"41001:2:97","nodeType":"YulLiteral","src":"41001:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"40983:6:97","nodeType":"YulIdentifier","src":"40983:6:97"},"nativeSrc":"40983:21:97","nodeType":"YulFunctionCall","src":"40983:21:97"},"nativeSrc":"40983:21:97","nodeType":"YulExpressionStatement","src":"40983:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"41024:9:97","nodeType":"YulIdentifier","src":"41024:9:97"},{"kind":"number","nativeSrc":"41035:2:97","nodeType":"YulLiteral","src":"41035:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"41020:3:97","nodeType":"YulIdentifier","src":"41020:3:97"},"nativeSrc":"41020:18:97","nodeType":"YulFunctionCall","src":"41020:18:97"},{"kind":"number","nativeSrc":"41040:2:97","nodeType":"YulLiteral","src":"41040:2:97","type":"","value":"33"}],"functionName":{"name":"mstore","nativeSrc":"41013:6:97","nodeType":"YulIdentifier","src":"41013:6:97"},"nativeSrc":"41013:30:97","nodeType":"YulFunctionCall","src":"41013:30:97"},"nativeSrc":"41013:30:97","nodeType":"YulExpressionStatement","src":"41013:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"41063:9:97","nodeType":"YulIdentifier","src":"41063:9:97"},{"kind":"number","nativeSrc":"41074:2:97","nodeType":"YulLiteral","src":"41074:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"41059:3:97","nodeType":"YulIdentifier","src":"41059:3:97"},"nativeSrc":"41059:18:97","nodeType":"YulFunctionCall","src":"41059:18:97"},{"hexValue":"4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f61","kind":"string","nativeSrc":"41079:34:97","nodeType":"YulLiteral","src":"41079:34:97","type":"","value":"NonblockingLzApp: invalid payloa"}],"functionName":{"name":"mstore","nativeSrc":"41052:6:97","nodeType":"YulIdentifier","src":"41052:6:97"},"nativeSrc":"41052:62:97","nodeType":"YulFunctionCall","src":"41052:62:97"},"nativeSrc":"41052:62:97","nodeType":"YulExpressionStatement","src":"41052:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"41134:9:97","nodeType":"YulIdentifier","src":"41134:9:97"},{"kind":"number","nativeSrc":"41145:2:97","nodeType":"YulLiteral","src":"41145:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"41130:3:97","nodeType":"YulIdentifier","src":"41130:3:97"},"nativeSrc":"41130:18:97","nodeType":"YulFunctionCall","src":"41130:18:97"},{"hexValue":"64","kind":"string","nativeSrc":"41150:3:97","nodeType":"YulLiteral","src":"41150:3:97","type":"","value":"d"}],"functionName":{"name":"mstore","nativeSrc":"41123:6:97","nodeType":"YulIdentifier","src":"41123:6:97"},"nativeSrc":"41123:31:97","nodeType":"YulFunctionCall","src":"41123:31:97"},"nativeSrc":"41123:31:97","nodeType":"YulExpressionStatement","src":"41123:31:97"},{"nativeSrc":"41163:27:97","nodeType":"YulAssignment","src":"41163:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"41175:9:97","nodeType":"YulIdentifier","src":"41175:9:97"},{"kind":"number","nativeSrc":"41186:3:97","nodeType":"YulLiteral","src":"41186:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"41171:3:97","nodeType":"YulIdentifier","src":"41171:3:97"},"nativeSrc":"41171:19:97","nodeType":"YulFunctionCall","src":"41171:19:97"},"variableNames":[{"name":"tail","nativeSrc":"41163:4:97","nodeType":"YulIdentifier","src":"41163:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"40799:397:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"40950:9:97","nodeType":"YulTypedName","src":"40950:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"40964:4:97","nodeType":"YulTypedName","src":"40964:4:97","type":""}],"src":"40799:397:97"},{"body":{"nativeSrc":"41410:284:97","nodeType":"YulBlock","src":"41410:284:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"41427:9:97","nodeType":"YulIdentifier","src":"41427:9:97"},{"arguments":[{"name":"value0","nativeSrc":"41442:6:97","nodeType":"YulIdentifier","src":"41442:6:97"},{"kind":"number","nativeSrc":"41450:6:97","nodeType":"YulLiteral","src":"41450:6:97","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"41438:3:97","nodeType":"YulIdentifier","src":"41438:3:97"},"nativeSrc":"41438:19:97","nodeType":"YulFunctionCall","src":"41438:19:97"}],"functionName":{"name":"mstore","nativeSrc":"41420:6:97","nodeType":"YulIdentifier","src":"41420:6:97"},"nativeSrc":"41420:38:97","nodeType":"YulFunctionCall","src":"41420:38:97"},"nativeSrc":"41420:38:97","nodeType":"YulExpressionStatement","src":"41420:38:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"41478:9:97","nodeType":"YulIdentifier","src":"41478:9:97"},{"kind":"number","nativeSrc":"41489:2:97","nodeType":"YulLiteral","src":"41489:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"41474:3:97","nodeType":"YulIdentifier","src":"41474:3:97"},"nativeSrc":"41474:18:97","nodeType":"YulFunctionCall","src":"41474:18:97"},{"kind":"number","nativeSrc":"41494:3:97","nodeType":"YulLiteral","src":"41494:3:97","type":"","value":"128"}],"functionName":{"name":"mstore","nativeSrc":"41467:6:97","nodeType":"YulIdentifier","src":"41467:6:97"},"nativeSrc":"41467:31:97","nodeType":"YulFunctionCall","src":"41467:31:97"},"nativeSrc":"41467:31:97","nodeType":"YulExpressionStatement","src":"41467:31:97"},{"nativeSrc":"41507:70:97","nodeType":"YulAssignment","src":"41507:70:97","value":{"arguments":[{"name":"value1","nativeSrc":"41541:6:97","nodeType":"YulIdentifier","src":"41541:6:97"},{"name":"value2","nativeSrc":"41549:6:97","nodeType":"YulIdentifier","src":"41549:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"41561:9:97","nodeType":"YulIdentifier","src":"41561:9:97"},{"kind":"number","nativeSrc":"41572:3:97","nodeType":"YulLiteral","src":"41572:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"41557:3:97","nodeType":"YulIdentifier","src":"41557:3:97"},"nativeSrc":"41557:19:97","nodeType":"YulFunctionCall","src":"41557:19:97"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"41515:25:97","nodeType":"YulIdentifier","src":"41515:25:97"},"nativeSrc":"41515:62:97","nodeType":"YulFunctionCall","src":"41515:62:97"},"variableNames":[{"name":"tail","nativeSrc":"41507:4:97","nodeType":"YulIdentifier","src":"41507:4:97"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"41597:9:97","nodeType":"YulIdentifier","src":"41597:9:97"},{"kind":"number","nativeSrc":"41608:2:97","nodeType":"YulLiteral","src":"41608:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"41593:3:97","nodeType":"YulIdentifier","src":"41593:3:97"},"nativeSrc":"41593:18:97","nodeType":"YulFunctionCall","src":"41593:18:97"},{"arguments":[{"name":"value3","nativeSrc":"41617:6:97","nodeType":"YulIdentifier","src":"41617:6:97"},{"kind":"number","nativeSrc":"41625:18:97","nodeType":"YulLiteral","src":"41625:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"41613:3:97","nodeType":"YulIdentifier","src":"41613:3:97"},"nativeSrc":"41613:31:97","nodeType":"YulFunctionCall","src":"41613:31:97"}],"functionName":{"name":"mstore","nativeSrc":"41586:6:97","nodeType":"YulIdentifier","src":"41586:6:97"},"nativeSrc":"41586:59:97","nodeType":"YulFunctionCall","src":"41586:59:97"},"nativeSrc":"41586:59:97","nodeType":"YulExpressionStatement","src":"41586:59:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"41665:9:97","nodeType":"YulIdentifier","src":"41665:9:97"},{"kind":"number","nativeSrc":"41676:2:97","nodeType":"YulLiteral","src":"41676:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"41661:3:97","nodeType":"YulIdentifier","src":"41661:3:97"},"nativeSrc":"41661:18:97","nodeType":"YulFunctionCall","src":"41661:18:97"},{"name":"value4","nativeSrc":"41681:6:97","nodeType":"YulIdentifier","src":"41681:6:97"}],"functionName":{"name":"mstore","nativeSrc":"41654:6:97","nodeType":"YulIdentifier","src":"41654:6:97"},"nativeSrc":"41654:34:97","nodeType":"YulFunctionCall","src":"41654:34:97"},"nativeSrc":"41654:34:97","nodeType":"YulExpressionStatement","src":"41654:34:97"}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes32__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes32__fromStack_reversed","nativeSrc":"41201:493:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"41347:9:97","nodeType":"YulTypedName","src":"41347:9:97","type":""},{"name":"value4","nativeSrc":"41358:6:97","nodeType":"YulTypedName","src":"41358:6:97","type":""},{"name":"value3","nativeSrc":"41366:6:97","nodeType":"YulTypedName","src":"41366:6:97","type":""},{"name":"value2","nativeSrc":"41374:6:97","nodeType":"YulTypedName","src":"41374:6:97","type":""},{"name":"value1","nativeSrc":"41382:6:97","nodeType":"YulTypedName","src":"41382:6:97","type":""},{"name":"value0","nativeSrc":"41390:6:97","nodeType":"YulTypedName","src":"41390:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"41401:4:97","nodeType":"YulTypedName","src":"41401:4:97","type":""}],"src":"41201:493:97"},{"body":{"nativeSrc":"41873:170:97","nodeType":"YulBlock","src":"41873:170:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"41890:9:97","nodeType":"YulIdentifier","src":"41890:9:97"},{"kind":"number","nativeSrc":"41901:2:97","nodeType":"YulLiteral","src":"41901:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"41883:6:97","nodeType":"YulIdentifier","src":"41883:6:97"},"nativeSrc":"41883:21:97","nodeType":"YulFunctionCall","src":"41883:21:97"},"nativeSrc":"41883:21:97","nodeType":"YulExpressionStatement","src":"41883:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"41924:9:97","nodeType":"YulIdentifier","src":"41924:9:97"},{"kind":"number","nativeSrc":"41935:2:97","nodeType":"YulLiteral","src":"41935:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"41920:3:97","nodeType":"YulIdentifier","src":"41920:3:97"},"nativeSrc":"41920:18:97","nodeType":"YulFunctionCall","src":"41920:18:97"},{"kind":"number","nativeSrc":"41940:2:97","nodeType":"YulLiteral","src":"41940:2:97","type":"","value":"20"}],"functionName":{"name":"mstore","nativeSrc":"41913:6:97","nodeType":"YulIdentifier","src":"41913:6:97"},"nativeSrc":"41913:30:97","nodeType":"YulFunctionCall","src":"41913:30:97"},"nativeSrc":"41913:30:97","nodeType":"YulExpressionStatement","src":"41913:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"41963:9:97","nodeType":"YulIdentifier","src":"41963:9:97"},{"kind":"number","nativeSrc":"41974:2:97","nodeType":"YulLiteral","src":"41974:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"41959:3:97","nodeType":"YulIdentifier","src":"41959:3:97"},"nativeSrc":"41959:18:97","nodeType":"YulFunctionCall","src":"41959:18:97"},{"hexValue":"5061757361626c653a206e6f7420706175736564","kind":"string","nativeSrc":"41979:22:97","nodeType":"YulLiteral","src":"41979:22:97","type":"","value":"Pausable: not paused"}],"functionName":{"name":"mstore","nativeSrc":"41952:6:97","nodeType":"YulIdentifier","src":"41952:6:97"},"nativeSrc":"41952:50:97","nodeType":"YulFunctionCall","src":"41952:50:97"},"nativeSrc":"41952:50:97","nodeType":"YulExpressionStatement","src":"41952:50:97"},{"nativeSrc":"42011:26:97","nodeType":"YulAssignment","src":"42011:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"42023:9:97","nodeType":"YulIdentifier","src":"42023:9:97"},{"kind":"number","nativeSrc":"42034:2:97","nodeType":"YulLiteral","src":"42034:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"42019:3:97","nodeType":"YulIdentifier","src":"42019:3:97"},"nativeSrc":"42019:18:97","nodeType":"YulFunctionCall","src":"42019:18:97"},"variableNames":[{"name":"tail","nativeSrc":"42011:4:97","nodeType":"YulIdentifier","src":"42011:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"41699:344:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"41850:9:97","nodeType":"YulTypedName","src":"41850:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"41864:4:97","nodeType":"YulTypedName","src":"41864:4:97","type":""}],"src":"41699:344:97"},{"body":{"nativeSrc":"42222:166:97","nodeType":"YulBlock","src":"42222:166:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"42239:9:97","nodeType":"YulIdentifier","src":"42239:9:97"},{"kind":"number","nativeSrc":"42250:2:97","nodeType":"YulLiteral","src":"42250:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"42232:6:97","nodeType":"YulIdentifier","src":"42232:6:97"},"nativeSrc":"42232:21:97","nodeType":"YulFunctionCall","src":"42232:21:97"},"nativeSrc":"42232:21:97","nodeType":"YulExpressionStatement","src":"42232:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"42273:9:97","nodeType":"YulIdentifier","src":"42273:9:97"},{"kind":"number","nativeSrc":"42284:2:97","nodeType":"YulLiteral","src":"42284:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"42269:3:97","nodeType":"YulIdentifier","src":"42269:3:97"},"nativeSrc":"42269:18:97","nodeType":"YulFunctionCall","src":"42269:18:97"},{"kind":"number","nativeSrc":"42289:2:97","nodeType":"YulLiteral","src":"42289:2:97","type":"","value":"16"}],"functionName":{"name":"mstore","nativeSrc":"42262:6:97","nodeType":"YulIdentifier","src":"42262:6:97"},"nativeSrc":"42262:30:97","nodeType":"YulFunctionCall","src":"42262:30:97"},"nativeSrc":"42262:30:97","nodeType":"YulExpressionStatement","src":"42262:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"42312:9:97","nodeType":"YulIdentifier","src":"42312:9:97"},{"kind":"number","nativeSrc":"42323:2:97","nodeType":"YulLiteral","src":"42323:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"42308:3:97","nodeType":"YulIdentifier","src":"42308:3:97"},"nativeSrc":"42308:18:97","nodeType":"YulFunctionCall","src":"42308:18:97"},{"hexValue":"5061757361626c653a20706175736564","kind":"string","nativeSrc":"42328:18:97","nodeType":"YulLiteral","src":"42328:18:97","type":"","value":"Pausable: paused"}],"functionName":{"name":"mstore","nativeSrc":"42301:6:97","nodeType":"YulIdentifier","src":"42301:6:97"},"nativeSrc":"42301:46:97","nodeType":"YulFunctionCall","src":"42301:46:97"},"nativeSrc":"42301:46:97","nodeType":"YulExpressionStatement","src":"42301:46:97"},{"nativeSrc":"42356:26:97","nodeType":"YulAssignment","src":"42356:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"42368:9:97","nodeType":"YulIdentifier","src":"42368:9:97"},{"kind":"number","nativeSrc":"42379:2:97","nodeType":"YulLiteral","src":"42379:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"42364:3:97","nodeType":"YulIdentifier","src":"42364:3:97"},"nativeSrc":"42364:18:97","nodeType":"YulFunctionCall","src":"42364:18:97"},"variableNames":[{"name":"tail","nativeSrc":"42356:4:97","nodeType":"YulIdentifier","src":"42356:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"42048:340:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"42199:9:97","nodeType":"YulTypedName","src":"42199:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"42213:4:97","nodeType":"YulTypedName","src":"42213:4:97","type":""}],"src":"42048:340:97"},{"body":{"nativeSrc":"42567:182:97","nodeType":"YulBlock","src":"42567:182:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"42584:9:97","nodeType":"YulIdentifier","src":"42584:9:97"},{"kind":"number","nativeSrc":"42595:2:97","nodeType":"YulLiteral","src":"42595:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"42577:6:97","nodeType":"YulIdentifier","src":"42577:6:97"},"nativeSrc":"42577:21:97","nodeType":"YulFunctionCall","src":"42577:21:97"},"nativeSrc":"42577:21:97","nodeType":"YulExpressionStatement","src":"42577:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"42618:9:97","nodeType":"YulIdentifier","src":"42618:9:97"},{"kind":"number","nativeSrc":"42629:2:97","nodeType":"YulLiteral","src":"42629:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"42614:3:97","nodeType":"YulIdentifier","src":"42614:3:97"},"nativeSrc":"42614:18:97","nodeType":"YulFunctionCall","src":"42614:18:97"},{"kind":"number","nativeSrc":"42634:2:97","nodeType":"YulLiteral","src":"42634:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"42607:6:97","nodeType":"YulIdentifier","src":"42607:6:97"},"nativeSrc":"42607:30:97","nodeType":"YulFunctionCall","src":"42607:30:97"},"nativeSrc":"42607:30:97","nodeType":"YulExpressionStatement","src":"42607:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"42657:9:97","nodeType":"YulIdentifier","src":"42657:9:97"},{"kind":"number","nativeSrc":"42668:2:97","nodeType":"YulLiteral","src":"42668:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"42653:3:97","nodeType":"YulIdentifier","src":"42653:3:97"},"nativeSrc":"42653:18:97","nodeType":"YulFunctionCall","src":"42653:18:97"},{"hexValue":"4461696c79205472616e73616374696f6e204c696d6974204578636565646564","kind":"string","nativeSrc":"42673:34:97","nodeType":"YulLiteral","src":"42673:34:97","type":"","value":"Daily Transaction Limit Exceeded"}],"functionName":{"name":"mstore","nativeSrc":"42646:6:97","nodeType":"YulIdentifier","src":"42646:6:97"},"nativeSrc":"42646:62:97","nodeType":"YulFunctionCall","src":"42646:62:97"},"nativeSrc":"42646:62:97","nodeType":"YulExpressionStatement","src":"42646:62:97"},{"nativeSrc":"42717:26:97","nodeType":"YulAssignment","src":"42717:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"42729:9:97","nodeType":"YulIdentifier","src":"42729:9:97"},{"kind":"number","nativeSrc":"42740:2:97","nodeType":"YulLiteral","src":"42740:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"42725:3:97","nodeType":"YulIdentifier","src":"42725:3:97"},"nativeSrc":"42725:18:97","nodeType":"YulFunctionCall","src":"42725:18:97"},"variableNames":[{"name":"tail","nativeSrc":"42717:4:97","nodeType":"YulIdentifier","src":"42717:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_7f1ab6dca0c040aececbb4df1c67ab1f13c05f495e8356647158d9e65e565e3b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"42393:356:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"42544:9:97","nodeType":"YulTypedName","src":"42544:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"42558:4:97","nodeType":"YulTypedName","src":"42558:4:97","type":""}],"src":"42393:356:97"},{"body":{"nativeSrc":"42835:103:97","nodeType":"YulBlock","src":"42835:103:97","statements":[{"body":{"nativeSrc":"42881:16:97","nodeType":"YulBlock","src":"42881:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"42890:1:97","nodeType":"YulLiteral","src":"42890:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"42893:1:97","nodeType":"YulLiteral","src":"42893:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"42883:6:97","nodeType":"YulIdentifier","src":"42883:6:97"},"nativeSrc":"42883:12:97","nodeType":"YulFunctionCall","src":"42883:12:97"},"nativeSrc":"42883:12:97","nodeType":"YulExpressionStatement","src":"42883:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"42856:7:97","nodeType":"YulIdentifier","src":"42856:7:97"},{"name":"headStart","nativeSrc":"42865:9:97","nodeType":"YulIdentifier","src":"42865:9:97"}],"functionName":{"name":"sub","nativeSrc":"42852:3:97","nodeType":"YulIdentifier","src":"42852:3:97"},"nativeSrc":"42852:23:97","nodeType":"YulFunctionCall","src":"42852:23:97"},{"kind":"number","nativeSrc":"42877:2:97","nodeType":"YulLiteral","src":"42877:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"42848:3:97","nodeType":"YulIdentifier","src":"42848:3:97"},"nativeSrc":"42848:32:97","nodeType":"YulFunctionCall","src":"42848:32:97"},"nativeSrc":"42845:52:97","nodeType":"YulIf","src":"42845:52:97"},{"nativeSrc":"42906:26:97","nodeType":"YulAssignment","src":"42906:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"42922:9:97","nodeType":"YulIdentifier","src":"42922:9:97"}],"functionName":{"name":"mload","nativeSrc":"42916:5:97","nodeType":"YulIdentifier","src":"42916:5:97"},"nativeSrc":"42916:16:97","nodeType":"YulFunctionCall","src":"42916:16:97"},"variableNames":[{"name":"value0","nativeSrc":"42906:6:97","nodeType":"YulIdentifier","src":"42906:6:97"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"42754:184:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"42801:9:97","nodeType":"YulTypedName","src":"42801:9:97","type":""},{"name":"dataEnd","nativeSrc":"42812:7:97","nodeType":"YulTypedName","src":"42812:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"42824:6:97","nodeType":"YulTypedName","src":"42824:6:97","type":""}],"src":"42754:184:97"},{"body":{"nativeSrc":"43194:393:97","nodeType":"YulBlock","src":"43194:393:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"43211:9:97","nodeType":"YulIdentifier","src":"43211:9:97"},{"arguments":[{"name":"value0","nativeSrc":"43226:6:97","nodeType":"YulIdentifier","src":"43226:6:97"},{"kind":"number","nativeSrc":"43234:42:97","nodeType":"YulLiteral","src":"43234:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"43222:3:97","nodeType":"YulIdentifier","src":"43222:3:97"},"nativeSrc":"43222:55:97","nodeType":"YulFunctionCall","src":"43222:55:97"}],"functionName":{"name":"mstore","nativeSrc":"43204:6:97","nodeType":"YulIdentifier","src":"43204:6:97"},"nativeSrc":"43204:74:97","nodeType":"YulFunctionCall","src":"43204:74:97"},"nativeSrc":"43204:74:97","nodeType":"YulExpressionStatement","src":"43204:74:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"43298:9:97","nodeType":"YulIdentifier","src":"43298:9:97"},{"kind":"number","nativeSrc":"43309:2:97","nodeType":"YulLiteral","src":"43309:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"43294:3:97","nodeType":"YulIdentifier","src":"43294:3:97"},"nativeSrc":"43294:18:97","nodeType":"YulFunctionCall","src":"43294:18:97"},{"name":"value1","nativeSrc":"43314:6:97","nodeType":"YulIdentifier","src":"43314:6:97"}],"functionName":{"name":"mstore","nativeSrc":"43287:6:97","nodeType":"YulIdentifier","src":"43287:6:97"},"nativeSrc":"43287:34:97","nodeType":"YulFunctionCall","src":"43287:34:97"},"nativeSrc":"43287:34:97","nodeType":"YulExpressionStatement","src":"43287:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"43341:9:97","nodeType":"YulIdentifier","src":"43341:9:97"},{"kind":"number","nativeSrc":"43352:2:97","nodeType":"YulLiteral","src":"43352:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"43337:3:97","nodeType":"YulIdentifier","src":"43337:3:97"},"nativeSrc":"43337:18:97","nodeType":"YulFunctionCall","src":"43337:18:97"},{"kind":"number","nativeSrc":"43357:3:97","nodeType":"YulLiteral","src":"43357:3:97","type":"","value":"160"}],"functionName":{"name":"mstore","nativeSrc":"43330:6:97","nodeType":"YulIdentifier","src":"43330:6:97"},"nativeSrc":"43330:31:97","nodeType":"YulFunctionCall","src":"43330:31:97"},"nativeSrc":"43330:31:97","nodeType":"YulExpressionStatement","src":"43330:31:97"},{"nativeSrc":"43370:59:97","nodeType":"YulVariableDeclaration","src":"43370:59:97","value":{"arguments":[{"name":"value2","nativeSrc":"43401:6:97","nodeType":"YulIdentifier","src":"43401:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"43413:9:97","nodeType":"YulIdentifier","src":"43413:9:97"},{"kind":"number","nativeSrc":"43424:3:97","nodeType":"YulLiteral","src":"43424:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"43409:3:97","nodeType":"YulIdentifier","src":"43409:3:97"},"nativeSrc":"43409:19:97","nodeType":"YulFunctionCall","src":"43409:19:97"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"43384:16:97","nodeType":"YulIdentifier","src":"43384:16:97"},"nativeSrc":"43384:45:97","nodeType":"YulFunctionCall","src":"43384:45:97"},"variables":[{"name":"tail_1","nativeSrc":"43374:6:97","nodeType":"YulTypedName","src":"43374:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"43449:9:97","nodeType":"YulIdentifier","src":"43449:9:97"},{"kind":"number","nativeSrc":"43460:2:97","nodeType":"YulLiteral","src":"43460:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"43445:3:97","nodeType":"YulIdentifier","src":"43445:3:97"},"nativeSrc":"43445:18:97","nodeType":"YulFunctionCall","src":"43445:18:97"},{"arguments":[{"name":"tail_1","nativeSrc":"43469:6:97","nodeType":"YulIdentifier","src":"43469:6:97"},{"name":"headStart","nativeSrc":"43477:9:97","nodeType":"YulIdentifier","src":"43477:9:97"}],"functionName":{"name":"sub","nativeSrc":"43465:3:97","nodeType":"YulIdentifier","src":"43465:3:97"},"nativeSrc":"43465:22:97","nodeType":"YulFunctionCall","src":"43465:22:97"}],"functionName":{"name":"mstore","nativeSrc":"43438:6:97","nodeType":"YulIdentifier","src":"43438:6:97"},"nativeSrc":"43438:50:97","nodeType":"YulFunctionCall","src":"43438:50:97"},"nativeSrc":"43438:50:97","nodeType":"YulExpressionStatement","src":"43438:50:97"},{"nativeSrc":"43497:40:97","nodeType":"YulAssignment","src":"43497:40:97","value":{"arguments":[{"name":"value3","nativeSrc":"43522:6:97","nodeType":"YulIdentifier","src":"43522:6:97"},{"name":"tail_1","nativeSrc":"43530:6:97","nodeType":"YulIdentifier","src":"43530:6:97"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"43505:16:97","nodeType":"YulIdentifier","src":"43505:16:97"},"nativeSrc":"43505:32:97","nodeType":"YulFunctionCall","src":"43505:32:97"},"variableNames":[{"name":"tail","nativeSrc":"43497:4:97","nodeType":"YulIdentifier","src":"43497:4:97"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"43557:9:97","nodeType":"YulIdentifier","src":"43557:9:97"},{"kind":"number","nativeSrc":"43568:3:97","nodeType":"YulLiteral","src":"43568:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"43553:3:97","nodeType":"YulIdentifier","src":"43553:3:97"},"nativeSrc":"43553:19:97","nodeType":"YulFunctionCall","src":"43553:19:97"},{"name":"value4","nativeSrc":"43574:6:97","nodeType":"YulIdentifier","src":"43574:6:97"}],"functionName":{"name":"mstore","nativeSrc":"43546:6:97","nodeType":"YulIdentifier","src":"43546:6:97"},"nativeSrc":"43546:35:97","nodeType":"YulFunctionCall","src":"43546:35:97"},"nativeSrc":"43546:35:97","nodeType":"YulExpressionStatement","src":"43546:35:97"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__to_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed","nativeSrc":"42943:644:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"43131:9:97","nodeType":"YulTypedName","src":"43131:9:97","type":""},{"name":"value4","nativeSrc":"43142:6:97","nodeType":"YulTypedName","src":"43142:6:97","type":""},{"name":"value3","nativeSrc":"43150:6:97","nodeType":"YulTypedName","src":"43150:6:97","type":""},{"name":"value2","nativeSrc":"43158:6:97","nodeType":"YulTypedName","src":"43158:6:97","type":""},{"name":"value1","nativeSrc":"43166:6:97","nodeType":"YulTypedName","src":"43166:6:97","type":""},{"name":"value0","nativeSrc":"43174:6:97","nodeType":"YulTypedName","src":"43174:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"43185:4:97","nodeType":"YulTypedName","src":"43185:4:97","type":""}],"src":"42943:644:97"},{"body":{"nativeSrc":"43670:199:97","nodeType":"YulBlock","src":"43670:199:97","statements":[{"body":{"nativeSrc":"43716:16:97","nodeType":"YulBlock","src":"43716:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"43725:1:97","nodeType":"YulLiteral","src":"43725:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"43728:1:97","nodeType":"YulLiteral","src":"43728:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"43718:6:97","nodeType":"YulIdentifier","src":"43718:6:97"},"nativeSrc":"43718:12:97","nodeType":"YulFunctionCall","src":"43718:12:97"},"nativeSrc":"43718:12:97","nodeType":"YulExpressionStatement","src":"43718:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"43691:7:97","nodeType":"YulIdentifier","src":"43691:7:97"},{"name":"headStart","nativeSrc":"43700:9:97","nodeType":"YulIdentifier","src":"43700:9:97"}],"functionName":{"name":"sub","nativeSrc":"43687:3:97","nodeType":"YulIdentifier","src":"43687:3:97"},"nativeSrc":"43687:23:97","nodeType":"YulFunctionCall","src":"43687:23:97"},{"kind":"number","nativeSrc":"43712:2:97","nodeType":"YulLiteral","src":"43712:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"43683:3:97","nodeType":"YulIdentifier","src":"43683:3:97"},"nativeSrc":"43683:32:97","nodeType":"YulFunctionCall","src":"43683:32:97"},"nativeSrc":"43680:52:97","nodeType":"YulIf","src":"43680:52:97"},{"nativeSrc":"43741:29:97","nodeType":"YulVariableDeclaration","src":"43741:29:97","value":{"arguments":[{"name":"headStart","nativeSrc":"43760:9:97","nodeType":"YulIdentifier","src":"43760:9:97"}],"functionName":{"name":"mload","nativeSrc":"43754:5:97","nodeType":"YulIdentifier","src":"43754:5:97"},"nativeSrc":"43754:16:97","nodeType":"YulFunctionCall","src":"43754:16:97"},"variables":[{"name":"value","nativeSrc":"43745:5:97","nodeType":"YulTypedName","src":"43745:5:97","type":""}]},{"body":{"nativeSrc":"43823:16:97","nodeType":"YulBlock","src":"43823:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"43832:1:97","nodeType":"YulLiteral","src":"43832:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"43835:1:97","nodeType":"YulLiteral","src":"43835:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"43825:6:97","nodeType":"YulIdentifier","src":"43825:6:97"},"nativeSrc":"43825:12:97","nodeType":"YulFunctionCall","src":"43825:12:97"},"nativeSrc":"43825:12:97","nodeType":"YulExpressionStatement","src":"43825:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"43792:5:97","nodeType":"YulIdentifier","src":"43792:5:97"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"43813:5:97","nodeType":"YulIdentifier","src":"43813:5:97"}],"functionName":{"name":"iszero","nativeSrc":"43806:6:97","nodeType":"YulIdentifier","src":"43806:6:97"},"nativeSrc":"43806:13:97","nodeType":"YulFunctionCall","src":"43806:13:97"}],"functionName":{"name":"iszero","nativeSrc":"43799:6:97","nodeType":"YulIdentifier","src":"43799:6:97"},"nativeSrc":"43799:21:97","nodeType":"YulFunctionCall","src":"43799:21:97"}],"functionName":{"name":"eq","nativeSrc":"43789:2:97","nodeType":"YulIdentifier","src":"43789:2:97"},"nativeSrc":"43789:32:97","nodeType":"YulFunctionCall","src":"43789:32:97"}],"functionName":{"name":"iszero","nativeSrc":"43782:6:97","nodeType":"YulIdentifier","src":"43782:6:97"},"nativeSrc":"43782:40:97","nodeType":"YulFunctionCall","src":"43782:40:97"},"nativeSrc":"43779:60:97","nodeType":"YulIf","src":"43779:60:97"},{"nativeSrc":"43848:15:97","nodeType":"YulAssignment","src":"43848:15:97","value":{"name":"value","nativeSrc":"43858:5:97","nodeType":"YulIdentifier","src":"43858:5:97"},"variableNames":[{"name":"value0","nativeSrc":"43848:6:97","nodeType":"YulIdentifier","src":"43848:6:97"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"43592:277:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"43636:9:97","nodeType":"YulTypedName","src":"43636:9:97","type":""},{"name":"dataEnd","nativeSrc":"43647:7:97","nodeType":"YulTypedName","src":"43647:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"43659:6:97","nodeType":"YulTypedName","src":"43659:6:97","type":""}],"src":"43592:277:97"},{"body":{"nativeSrc":"44048:369:97","nodeType":"YulBlock","src":"44048:369:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"44065:9:97","nodeType":"YulIdentifier","src":"44065:9:97"},{"kind":"number","nativeSrc":"44076:2:97","nodeType":"YulLiteral","src":"44076:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"44058:6:97","nodeType":"YulIdentifier","src":"44058:6:97"},"nativeSrc":"44058:21:97","nodeType":"YulFunctionCall","src":"44058:21:97"},"nativeSrc":"44058:21:97","nodeType":"YulExpressionStatement","src":"44058:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"44099:9:97","nodeType":"YulIdentifier","src":"44099:9:97"},{"kind":"number","nativeSrc":"44110:2:97","nodeType":"YulLiteral","src":"44110:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"44095:3:97","nodeType":"YulIdentifier","src":"44095:3:97"},"nativeSrc":"44095:18:97","nodeType":"YulFunctionCall","src":"44095:18:97"},{"kind":"number","nativeSrc":"44115:2:97","nodeType":"YulLiteral","src":"44115:2:97","type":"","value":"99"}],"functionName":{"name":"mstore","nativeSrc":"44088:6:97","nodeType":"YulIdentifier","src":"44088:6:97"},"nativeSrc":"44088:30:97","nodeType":"YulFunctionCall","src":"44088:30:97"},"nativeSrc":"44088:30:97","nodeType":"YulExpressionStatement","src":"44088:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"44138:9:97","nodeType":"YulIdentifier","src":"44138:9:97"},{"kind":"number","nativeSrc":"44149:2:97","nodeType":"YulLiteral","src":"44149:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"44134:3:97","nodeType":"YulIdentifier","src":"44134:3:97"},"nativeSrc":"44134:18:97","nodeType":"YulFunctionCall","src":"44134:18:97"},{"hexValue":"4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a717565","kind":"string","nativeSrc":"44154:34:97","nodeType":"YulLiteral","src":"44154:34:97","type":"","value":"OmnichainGovernanceExecutor::que"}],"functionName":{"name":"mstore","nativeSrc":"44127:6:97","nodeType":"YulIdentifier","src":"44127:6:97"},"nativeSrc":"44127:62:97","nodeType":"YulFunctionCall","src":"44127:62:97"},"nativeSrc":"44127:62:97","nodeType":"YulExpressionStatement","src":"44127:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"44209:9:97","nodeType":"YulIdentifier","src":"44209:9:97"},{"kind":"number","nativeSrc":"44220:2:97","nodeType":"YulLiteral","src":"44220:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"44205:3:97","nodeType":"YulIdentifier","src":"44205:3:97"},"nativeSrc":"44205:18:97","nodeType":"YulFunctionCall","src":"44205:18:97"},{"hexValue":"75654f72526576657274496e7465726e616c3a206964656e746963616c207072","kind":"string","nativeSrc":"44225:34:97","nodeType":"YulLiteral","src":"44225:34:97","type":"","value":"ueOrRevertInternal: identical pr"}],"functionName":{"name":"mstore","nativeSrc":"44198:6:97","nodeType":"YulIdentifier","src":"44198:6:97"},"nativeSrc":"44198:62:97","nodeType":"YulFunctionCall","src":"44198:62:97"},"nativeSrc":"44198:62:97","nodeType":"YulExpressionStatement","src":"44198:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"44280:9:97","nodeType":"YulIdentifier","src":"44280:9:97"},{"kind":"number","nativeSrc":"44291:3:97","nodeType":"YulLiteral","src":"44291:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"44276:3:97","nodeType":"YulIdentifier","src":"44276:3:97"},"nativeSrc":"44276:19:97","nodeType":"YulFunctionCall","src":"44276:19:97"},{"hexValue":"6f706f73616c20616374696f6e20616c72656164792071756575656420617420","kind":"string","nativeSrc":"44297:34:97","nodeType":"YulLiteral","src":"44297:34:97","type":"","value":"oposal action already queued at "}],"functionName":{"name":"mstore","nativeSrc":"44269:6:97","nodeType":"YulIdentifier","src":"44269:6:97"},"nativeSrc":"44269:63:97","nodeType":"YulFunctionCall","src":"44269:63:97"},"nativeSrc":"44269:63:97","nodeType":"YulExpressionStatement","src":"44269:63:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"44352:9:97","nodeType":"YulIdentifier","src":"44352:9:97"},{"kind":"number","nativeSrc":"44363:3:97","nodeType":"YulLiteral","src":"44363:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"44348:3:97","nodeType":"YulIdentifier","src":"44348:3:97"},"nativeSrc":"44348:19:97","nodeType":"YulFunctionCall","src":"44348:19:97"},{"hexValue":"657461","kind":"string","nativeSrc":"44369:5:97","nodeType":"YulLiteral","src":"44369:5:97","type":"","value":"eta"}],"functionName":{"name":"mstore","nativeSrc":"44341:6:97","nodeType":"YulIdentifier","src":"44341:6:97"},"nativeSrc":"44341:34:97","nodeType":"YulFunctionCall","src":"44341:34:97"},"nativeSrc":"44341:34:97","nodeType":"YulExpressionStatement","src":"44341:34:97"},{"nativeSrc":"44384:27:97","nodeType":"YulAssignment","src":"44384:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"44396:9:97","nodeType":"YulIdentifier","src":"44396:9:97"},{"kind":"number","nativeSrc":"44407:3:97","nodeType":"YulLiteral","src":"44407:3:97","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"44392:3:97","nodeType":"YulIdentifier","src":"44392:3:97"},"nativeSrc":"44392:19:97","nodeType":"YulFunctionCall","src":"44392:19:97"},"variableNames":[{"name":"tail","nativeSrc":"44384:4:97","nodeType":"YulIdentifier","src":"44384:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_8864d14fd204ea66650b5ca543c106bdc1f9dca39811219c69678312ec6eb275__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"43874:543:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"44025:9:97","nodeType":"YulTypedName","src":"44025:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"44039:4:97","nodeType":"YulTypedName","src":"44039:4:97","type":""}],"src":"43874:543:97"},{"body":{"nativeSrc":"44503:103:97","nodeType":"YulBlock","src":"44503:103:97","statements":[{"body":{"nativeSrc":"44549:16:97","nodeType":"YulBlock","src":"44549:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"44558:1:97","nodeType":"YulLiteral","src":"44558:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"44561:1:97","nodeType":"YulLiteral","src":"44561:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"44551:6:97","nodeType":"YulIdentifier","src":"44551:6:97"},"nativeSrc":"44551:12:97","nodeType":"YulFunctionCall","src":"44551:12:97"},"nativeSrc":"44551:12:97","nodeType":"YulExpressionStatement","src":"44551:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"44524:7:97","nodeType":"YulIdentifier","src":"44524:7:97"},{"name":"headStart","nativeSrc":"44533:9:97","nodeType":"YulIdentifier","src":"44533:9:97"}],"functionName":{"name":"sub","nativeSrc":"44520:3:97","nodeType":"YulIdentifier","src":"44520:3:97"},"nativeSrc":"44520:23:97","nodeType":"YulFunctionCall","src":"44520:23:97"},{"kind":"number","nativeSrc":"44545:2:97","nodeType":"YulLiteral","src":"44545:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"44516:3:97","nodeType":"YulIdentifier","src":"44516:3:97"},"nativeSrc":"44516:32:97","nodeType":"YulFunctionCall","src":"44516:32:97"},"nativeSrc":"44513:52:97","nodeType":"YulIf","src":"44513:52:97"},{"nativeSrc":"44574:26:97","nodeType":"YulAssignment","src":"44574:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"44590:9:97","nodeType":"YulIdentifier","src":"44590:9:97"}],"functionName":{"name":"mload","nativeSrc":"44584:5:97","nodeType":"YulIdentifier","src":"44584:5:97"},"nativeSrc":"44584:16:97","nodeType":"YulFunctionCall","src":"44584:16:97"},"variableNames":[{"name":"value0","nativeSrc":"44574:6:97","nodeType":"YulIdentifier","src":"44574:6:97"}]}]},"name":"abi_decode_tuple_t_bytes32_fromMemory","nativeSrc":"44422:184:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"44469:9:97","nodeType":"YulTypedName","src":"44469:9:97","type":""},{"name":"dataEnd","nativeSrc":"44480:7:97","nodeType":"YulTypedName","src":"44480:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"44492:6:97","nodeType":"YulTypedName","src":"44492:6:97","type":""}],"src":"44422:184:97"},{"body":{"nativeSrc":"44707:1367:97","nodeType":"YulBlock","src":"44707:1367:97","statements":[{"nativeSrc":"44717:24:97","nodeType":"YulVariableDeclaration","src":"44717:24:97","value":{"arguments":[{"name":"src","nativeSrc":"44737:3:97","nodeType":"YulIdentifier","src":"44737:3:97"}],"functionName":{"name":"mload","nativeSrc":"44731:5:97","nodeType":"YulIdentifier","src":"44731:5:97"},"nativeSrc":"44731:10:97","nodeType":"YulFunctionCall","src":"44731:10:97"},"variables":[{"name":"newLen","nativeSrc":"44721:6:97","nodeType":"YulTypedName","src":"44721:6:97","type":""}]},{"body":{"nativeSrc":"44784:22:97","nodeType":"YulBlock","src":"44784:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"44786:16:97","nodeType":"YulIdentifier","src":"44786:16:97"},"nativeSrc":"44786:18:97","nodeType":"YulFunctionCall","src":"44786:18:97"},"nativeSrc":"44786:18:97","nodeType":"YulExpressionStatement","src":"44786:18:97"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"44756:6:97","nodeType":"YulIdentifier","src":"44756:6:97"},{"kind":"number","nativeSrc":"44764:18:97","nodeType":"YulLiteral","src":"44764:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"44753:2:97","nodeType":"YulIdentifier","src":"44753:2:97"},"nativeSrc":"44753:30:97","nodeType":"YulFunctionCall","src":"44753:30:97"},"nativeSrc":"44750:56:97","nodeType":"YulIf","src":"44750:56:97"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"44858:4:97","nodeType":"YulIdentifier","src":"44858:4:97"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"44896:4:97","nodeType":"YulIdentifier","src":"44896:4:97"}],"functionName":{"name":"sload","nativeSrc":"44890:5:97","nodeType":"YulIdentifier","src":"44890:5:97"},"nativeSrc":"44890:11:97","nodeType":"YulFunctionCall","src":"44890:11:97"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"44864:25:97","nodeType":"YulIdentifier","src":"44864:25:97"},"nativeSrc":"44864:38:97","nodeType":"YulFunctionCall","src":"44864:38:97"},{"name":"newLen","nativeSrc":"44904:6:97","nodeType":"YulIdentifier","src":"44904:6:97"}],"functionName":{"name":"clean_up_bytearray_end_slots_bytes_storage","nativeSrc":"44815:42:97","nodeType":"YulIdentifier","src":"44815:42:97"},"nativeSrc":"44815:96:97","nodeType":"YulFunctionCall","src":"44815:96:97"},"nativeSrc":"44815:96:97","nodeType":"YulExpressionStatement","src":"44815:96:97"},{"nativeSrc":"44920:18:97","nodeType":"YulVariableDeclaration","src":"44920:18:97","value":{"kind":"number","nativeSrc":"44937:1:97","nodeType":"YulLiteral","src":"44937:1:97","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"44924:9:97","nodeType":"YulTypedName","src":"44924:9:97","type":""}]},{"nativeSrc":"44947:23:97","nodeType":"YulVariableDeclaration","src":"44947:23:97","value":{"kind":"number","nativeSrc":"44966:4:97","nodeType":"YulLiteral","src":"44966:4:97","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nativeSrc":"44951:11:97","nodeType":"YulTypedName","src":"44951:11:97","type":""}]},{"nativeSrc":"44979:17:97","nodeType":"YulAssignment","src":"44979:17:97","value":{"kind":"number","nativeSrc":"44992:4:97","nodeType":"YulLiteral","src":"44992:4:97","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"44979:9:97","nodeType":"YulIdentifier","src":"44979:9:97"}]},{"cases":[{"body":{"nativeSrc":"45042:775:97","nodeType":"YulBlock","src":"45042:775:97","statements":[{"nativeSrc":"45056:94:97","nodeType":"YulVariableDeclaration","src":"45056:94:97","value":{"arguments":[{"name":"newLen","nativeSrc":"45075:6:97","nodeType":"YulIdentifier","src":"45075:6:97"},{"kind":"number","nativeSrc":"45083:66:97","nodeType":"YulLiteral","src":"45083:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"45071:3:97","nodeType":"YulIdentifier","src":"45071:3:97"},"nativeSrc":"45071:79:97","nodeType":"YulFunctionCall","src":"45071:79:97"},"variables":[{"name":"loopEnd","nativeSrc":"45060:7:97","nodeType":"YulTypedName","src":"45060:7:97","type":""}]},{"nativeSrc":"45163:49:97","nodeType":"YulVariableDeclaration","src":"45163:49:97","value":{"arguments":[{"name":"slot","nativeSrc":"45207:4:97","nodeType":"YulIdentifier","src":"45207:4:97"}],"functionName":{"name":"array_dataslot_string_storage","nativeSrc":"45177:29:97","nodeType":"YulIdentifier","src":"45177:29:97"},"nativeSrc":"45177:35:97","nodeType":"YulFunctionCall","src":"45177:35:97"},"variables":[{"name":"dstPtr","nativeSrc":"45167:6:97","nodeType":"YulTypedName","src":"45167:6:97","type":""}]},{"nativeSrc":"45225:10:97","nodeType":"YulVariableDeclaration","src":"45225:10:97","value":{"kind":"number","nativeSrc":"45234:1:97","nodeType":"YulLiteral","src":"45234:1:97","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"45229:1:97","nodeType":"YulTypedName","src":"45229:1:97","type":""}]},{"body":{"nativeSrc":"45312:172:97","nodeType":"YulBlock","src":"45312:172:97","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"45337:6:97","nodeType":"YulIdentifier","src":"45337:6:97"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"45355:3:97","nodeType":"YulIdentifier","src":"45355:3:97"},{"name":"srcOffset","nativeSrc":"45360:9:97","nodeType":"YulIdentifier","src":"45360:9:97"}],"functionName":{"name":"add","nativeSrc":"45351:3:97","nodeType":"YulIdentifier","src":"45351:3:97"},"nativeSrc":"45351:19:97","nodeType":"YulFunctionCall","src":"45351:19:97"}],"functionName":{"name":"mload","nativeSrc":"45345:5:97","nodeType":"YulIdentifier","src":"45345:5:97"},"nativeSrc":"45345:26:97","nodeType":"YulFunctionCall","src":"45345:26:97"}],"functionName":{"name":"sstore","nativeSrc":"45330:6:97","nodeType":"YulIdentifier","src":"45330:6:97"},"nativeSrc":"45330:42:97","nodeType":"YulFunctionCall","src":"45330:42:97"},"nativeSrc":"45330:42:97","nodeType":"YulExpressionStatement","src":"45330:42:97"},{"nativeSrc":"45389:24:97","nodeType":"YulAssignment","src":"45389:24:97","value":{"arguments":[{"name":"dstPtr","nativeSrc":"45403:6:97","nodeType":"YulIdentifier","src":"45403:6:97"},{"kind":"number","nativeSrc":"45411:1:97","nodeType":"YulLiteral","src":"45411:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"45399:3:97","nodeType":"YulIdentifier","src":"45399:3:97"},"nativeSrc":"45399:14:97","nodeType":"YulFunctionCall","src":"45399:14:97"},"variableNames":[{"name":"dstPtr","nativeSrc":"45389:6:97","nodeType":"YulIdentifier","src":"45389:6:97"}]},{"nativeSrc":"45430:40:97","nodeType":"YulAssignment","src":"45430:40:97","value":{"arguments":[{"name":"srcOffset","nativeSrc":"45447:9:97","nodeType":"YulIdentifier","src":"45447:9:97"},{"name":"srcOffset_1","nativeSrc":"45458:11:97","nodeType":"YulIdentifier","src":"45458:11:97"}],"functionName":{"name":"add","nativeSrc":"45443:3:97","nodeType":"YulIdentifier","src":"45443:3:97"},"nativeSrc":"45443:27:97","nodeType":"YulFunctionCall","src":"45443:27:97"},"variableNames":[{"name":"srcOffset","nativeSrc":"45430:9:97","nodeType":"YulIdentifier","src":"45430:9:97"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"45259:1:97","nodeType":"YulIdentifier","src":"45259:1:97"},{"name":"loopEnd","nativeSrc":"45262:7:97","nodeType":"YulIdentifier","src":"45262:7:97"}],"functionName":{"name":"lt","nativeSrc":"45256:2:97","nodeType":"YulIdentifier","src":"45256:2:97"},"nativeSrc":"45256:14:97","nodeType":"YulFunctionCall","src":"45256:14:97"},"nativeSrc":"45248:236:97","nodeType":"YulForLoop","post":{"nativeSrc":"45271:28:97","nodeType":"YulBlock","src":"45271:28:97","statements":[{"nativeSrc":"45273:24:97","nodeType":"YulAssignment","src":"45273:24:97","value":{"arguments":[{"name":"i","nativeSrc":"45282:1:97","nodeType":"YulIdentifier","src":"45282:1:97"},{"name":"srcOffset_1","nativeSrc":"45285:11:97","nodeType":"YulIdentifier","src":"45285:11:97"}],"functionName":{"name":"add","nativeSrc":"45278:3:97","nodeType":"YulIdentifier","src":"45278:3:97"},"nativeSrc":"45278:19:97","nodeType":"YulFunctionCall","src":"45278:19:97"},"variableNames":[{"name":"i","nativeSrc":"45273:1:97","nodeType":"YulIdentifier","src":"45273:1:97"}]}]},"pre":{"nativeSrc":"45252:3:97","nodeType":"YulBlock","src":"45252:3:97","statements":[]},"src":"45248:236:97"},{"body":{"nativeSrc":"45532:226:97","nodeType":"YulBlock","src":"45532:226:97","statements":[{"nativeSrc":"45550:43:97","nodeType":"YulVariableDeclaration","src":"45550:43:97","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"45577:3:97","nodeType":"YulIdentifier","src":"45577:3:97"},{"name":"srcOffset","nativeSrc":"45582:9:97","nodeType":"YulIdentifier","src":"45582:9:97"}],"functionName":{"name":"add","nativeSrc":"45573:3:97","nodeType":"YulIdentifier","src":"45573:3:97"},"nativeSrc":"45573:19:97","nodeType":"YulFunctionCall","src":"45573:19:97"}],"functionName":{"name":"mload","nativeSrc":"45567:5:97","nodeType":"YulIdentifier","src":"45567:5:97"},"nativeSrc":"45567:26:97","nodeType":"YulFunctionCall","src":"45567:26:97"},"variables":[{"name":"lastValue","nativeSrc":"45554:9:97","nodeType":"YulTypedName","src":"45554:9:97","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"45617:6:97","nodeType":"YulIdentifier","src":"45617:6:97"},{"arguments":[{"name":"lastValue","nativeSrc":"45629:9:97","nodeType":"YulIdentifier","src":"45629:9:97"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"45656:1:97","nodeType":"YulLiteral","src":"45656:1:97","type":"","value":"3"},{"name":"newLen","nativeSrc":"45659:6:97","nodeType":"YulIdentifier","src":"45659:6:97"}],"functionName":{"name":"shl","nativeSrc":"45652:3:97","nodeType":"YulIdentifier","src":"45652:3:97"},"nativeSrc":"45652:14:97","nodeType":"YulFunctionCall","src":"45652:14:97"},{"kind":"number","nativeSrc":"45668:3:97","nodeType":"YulLiteral","src":"45668:3:97","type":"","value":"248"}],"functionName":{"name":"and","nativeSrc":"45648:3:97","nodeType":"YulIdentifier","src":"45648:3:97"},"nativeSrc":"45648:24:97","nodeType":"YulFunctionCall","src":"45648:24:97"},{"kind":"number","nativeSrc":"45674:66:97","nodeType":"YulLiteral","src":"45674:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shr","nativeSrc":"45644:3:97","nodeType":"YulIdentifier","src":"45644:3:97"},"nativeSrc":"45644:97:97","nodeType":"YulFunctionCall","src":"45644:97:97"}],"functionName":{"name":"not","nativeSrc":"45640:3:97","nodeType":"YulIdentifier","src":"45640:3:97"},"nativeSrc":"45640:102:97","nodeType":"YulFunctionCall","src":"45640:102:97"}],"functionName":{"name":"and","nativeSrc":"45625:3:97","nodeType":"YulIdentifier","src":"45625:3:97"},"nativeSrc":"45625:118:97","nodeType":"YulFunctionCall","src":"45625:118:97"}],"functionName":{"name":"sstore","nativeSrc":"45610:6:97","nodeType":"YulIdentifier","src":"45610:6:97"},"nativeSrc":"45610:134:97","nodeType":"YulFunctionCall","src":"45610:134:97"},"nativeSrc":"45610:134:97","nodeType":"YulExpressionStatement","src":"45610:134:97"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"45503:7:97","nodeType":"YulIdentifier","src":"45503:7:97"},{"name":"newLen","nativeSrc":"45512:6:97","nodeType":"YulIdentifier","src":"45512:6:97"}],"functionName":{"name":"lt","nativeSrc":"45500:2:97","nodeType":"YulIdentifier","src":"45500:2:97"},"nativeSrc":"45500:19:97","nodeType":"YulFunctionCall","src":"45500:19:97"},"nativeSrc":"45497:261:97","nodeType":"YulIf","src":"45497:261:97"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"45778:4:97","nodeType":"YulIdentifier","src":"45778:4:97"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"45792:1:97","nodeType":"YulLiteral","src":"45792:1:97","type":"","value":"1"},{"name":"newLen","nativeSrc":"45795:6:97","nodeType":"YulIdentifier","src":"45795:6:97"}],"functionName":{"name":"shl","nativeSrc":"45788:3:97","nodeType":"YulIdentifier","src":"45788:3:97"},"nativeSrc":"45788:14:97","nodeType":"YulFunctionCall","src":"45788:14:97"},{"kind":"number","nativeSrc":"45804:1:97","nodeType":"YulLiteral","src":"45804:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"45784:3:97","nodeType":"YulIdentifier","src":"45784:3:97"},"nativeSrc":"45784:22:97","nodeType":"YulFunctionCall","src":"45784:22:97"}],"functionName":{"name":"sstore","nativeSrc":"45771:6:97","nodeType":"YulIdentifier","src":"45771:6:97"},"nativeSrc":"45771:36:97","nodeType":"YulFunctionCall","src":"45771:36:97"},"nativeSrc":"45771:36:97","nodeType":"YulExpressionStatement","src":"45771:36:97"}]},"nativeSrc":"45035:782:97","nodeType":"YulCase","src":"45035:782:97","value":{"kind":"number","nativeSrc":"45040:1:97","nodeType":"YulLiteral","src":"45040:1:97","type":"","value":"1"}},{"body":{"nativeSrc":"45834:234:97","nodeType":"YulBlock","src":"45834:234:97","statements":[{"nativeSrc":"45848:14:97","nodeType":"YulVariableDeclaration","src":"45848:14:97","value":{"kind":"number","nativeSrc":"45861:1:97","nodeType":"YulLiteral","src":"45861:1:97","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"45852:5:97","nodeType":"YulTypedName","src":"45852:5:97","type":""}]},{"body":{"nativeSrc":"45897:67:97","nodeType":"YulBlock","src":"45897:67:97","statements":[{"nativeSrc":"45915:35:97","nodeType":"YulAssignment","src":"45915:35:97","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"45934:3:97","nodeType":"YulIdentifier","src":"45934:3:97"},{"name":"srcOffset","nativeSrc":"45939:9:97","nodeType":"YulIdentifier","src":"45939:9:97"}],"functionName":{"name":"add","nativeSrc":"45930:3:97","nodeType":"YulIdentifier","src":"45930:3:97"},"nativeSrc":"45930:19:97","nodeType":"YulFunctionCall","src":"45930:19:97"}],"functionName":{"name":"mload","nativeSrc":"45924:5:97","nodeType":"YulIdentifier","src":"45924:5:97"},"nativeSrc":"45924:26:97","nodeType":"YulFunctionCall","src":"45924:26:97"},"variableNames":[{"name":"value","nativeSrc":"45915:5:97","nodeType":"YulIdentifier","src":"45915:5:97"}]}]},"condition":{"name":"newLen","nativeSrc":"45878:6:97","nodeType":"YulIdentifier","src":"45878:6:97"},"nativeSrc":"45875:89:97","nodeType":"YulIf","src":"45875:89:97"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"45984:4:97","nodeType":"YulIdentifier","src":"45984:4:97"},{"arguments":[{"name":"value","nativeSrc":"46043:5:97","nodeType":"YulIdentifier","src":"46043:5:97"},{"name":"newLen","nativeSrc":"46050:6:97","nodeType":"YulIdentifier","src":"46050:6:97"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"45990:52:97","nodeType":"YulIdentifier","src":"45990:52:97"},"nativeSrc":"45990:67:97","nodeType":"YulFunctionCall","src":"45990:67:97"}],"functionName":{"name":"sstore","nativeSrc":"45977:6:97","nodeType":"YulIdentifier","src":"45977:6:97"},"nativeSrc":"45977:81:97","nodeType":"YulFunctionCall","src":"45977:81:97"},"nativeSrc":"45977:81:97","nodeType":"YulExpressionStatement","src":"45977:81:97"}]},"nativeSrc":"45826:242:97","nodeType":"YulCase","src":"45826:242:97","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"45015:6:97","nodeType":"YulIdentifier","src":"45015:6:97"},{"kind":"number","nativeSrc":"45023:2:97","nodeType":"YulLiteral","src":"45023:2:97","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"45012:2:97","nodeType":"YulIdentifier","src":"45012:2:97"},"nativeSrc":"45012:14:97","nodeType":"YulFunctionCall","src":"45012:14:97"},"nativeSrc":"45005:1063:97","nodeType":"YulSwitch","src":"45005:1063:97"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"44611:1463:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"44692:4:97","nodeType":"YulTypedName","src":"44692:4:97","type":""},{"name":"src","nativeSrc":"44698:3:97","nodeType":"YulTypedName","src":"44698:3:97","type":""}],"src":"44611:1463:97"}]},"contents":"{\n    { }\n    function abi_decode_uint16(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffff))) { revert(0, 0) }\n    }\n    function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_uint64(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_uint64t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        let offset := calldataload(add(headStart, 32))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n        value3 := abi_decode_uint64(add(headStart, 64))\n        let offset_1 := calldataload(add(headStart, 96))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value4_1, value5_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n        value4 := value4_1\n        value5 := value5_1\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_encode_uint8(value, pos)\n    { mstore(pos, and(value, 0xff)) }\n    function abi_encode_tuple_t_uint256_t_uint256_t_bool_t_bool_t_uint8__to_t_uint256_t_uint256_t_bool_t_bool_t_uint8__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 160)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), iszero(iszero(value2)))\n        mstore(add(headStart, 96), iszero(iszero(value3)))\n        mstore(add(headStart, 128), and(value4, 0xff))\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_uint16(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n    }\n    function abi_decode_tuple_t_uint16t_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_uint16t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function panic_error_0x21()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x21)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_enum$_ProposalState_$11762__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        if iszero(lt(value0, 3))\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x21)\n            revert(0, 0x24)\n        }\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffff))\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function allocate_memory(size) -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(size, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function array_allocation_size_bytes(length) -> size\n    {\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        size := add(and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0), 0x20)\n    }\n    function abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint64(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        let _2 := calldataload(_1)\n        let array := allocate_memory(array_allocation_size_bytes(_2))\n        mstore(array, _2)\n        if gt(add(add(_1, _2), 32), dataEnd) { revert(0, 0) }\n        calldatacopy(add(array, 32), add(_1, 32), _2)\n        mstore(add(add(array, _2), 32), 0)\n        value1 := array\n        value2 := abi_decode_uint64(add(headStart, 64))\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function copy_memory_to_memory_with_cleanup(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n    }\n    function abi_encode_bytes(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n        end := add(add(pos, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 0x20)\n    }\n    function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_bytes(value0, add(headStart, 32))\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_uint16t_uint16(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        value1 := abi_decode_uint16(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_contract$_ILayerZeroEndpoint_$4253__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        value1 := abi_decode_uint16(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n        let offset := calldataload(add(headStart, 96))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value3 := value3_1\n        value4 := value4_1\n    }\n    function abi_decode_tuple_t_uint16t_uint16t_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        value1 := abi_decode_uint16(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n    }\n    function array_allocation_size_array_contract_ITimelock_dyn(length) -> size\n    {\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        size := add(shl(5, length), 0x20)\n    }\n    function abi_decode_tuple_t_array$_t_contract$_ITimelock_$13525_$dyn_memory_ptr(headStart, dataEnd) -> value0\n    {\n        let _1 := 32\n        if slt(sub(dataEnd, headStart), _1) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n        let _3 := calldataload(_2)\n        let dst := allocate_memory(array_allocation_size_array_contract_ITimelock_dyn(_3))\n        let dst_1 := dst\n        mstore(dst, _3)\n        dst := add(dst, _1)\n        let srcEnd := add(add(_2, shl(5, _3)), _1)\n        if gt(srcEnd, dataEnd) { revert(0, 0) }\n        let src := add(_2, _1)\n        for { } lt(src, srcEnd) { src := add(src, _1) }\n        {\n            let value := calldataload(src)\n            validator_revert_address(value)\n            mstore(dst, value)\n            dst := add(dst, _1)\n        }\n        value0 := dst_1\n    }\n    function abi_encode_tuple_t_contract$_ITimelock_$13525__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function validator_revert_uint8(value)\n    {\n        if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_uint8(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_uint8(value_1)\n        value1 := value_1\n    }\n    function abi_decode_tuple_t_uint16t_uint16t_addresst_uint256(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        value1 := abi_decode_uint16(add(headStart, 32))\n        let value := calldataload(add(headStart, 64))\n        validator_revert_address(value)\n        value2 := value\n        value3 := calldataload(add(headStart, 96))\n    }\n    function abi_encode_tuple_t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 30)\n        mstore(add(headStart, 64), \"LzApp: invalid endpoint caller\")\n        tail := add(headStart, 96)\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        calldatacopy(pos, value0, value1)\n        let _1 := add(pos, value1)\n        mstore(_1, 0)\n        end := _1\n    }\n    function abi_encode_tuple_t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"LzApp: invalid source sending co\")\n        mstore(add(headStart, 96), \"ntract\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_4258c99d44f362f78e979b44d639851c2c0ef199c76ece73b41f8dc6845abafe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 79)\n        mstore(add(headStart, 64), \"OmnichainGovernanceExecutor::can\")\n        mstore(add(headStart, 96), \"cel: proposal should be queued a\")\n        mstore(add(headStart, 128), \"nd not executed\")\n        tail := add(headStart, 160)\n    }\n    function abi_encode_tuple_t_stringliteral_fb16e4905cd1d461f30a69908479246c84efc58d7cbdb9b1113d7d74e2108621__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 60)\n        mstore(add(headStart, 64), \"OmnichainGovernanceExecutor::can\")\n        mstore(add(headStart, 96), \"cel: sender must be guardian\")\n        tail := add(headStart, 128)\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function array_dataslot_string_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function abi_encode_string_storage(value, pos) -> ret\n    {\n        let slotValue := sload(value)\n        let length := extract_byte_array_length(slotValue)\n        mstore(pos, length)\n        let _1 := 0x20\n        let _2 := 1\n        switch and(slotValue, 1)\n        case 0 {\n            mstore(add(pos, _1), and(slotValue, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00))\n            ret := add(add(pos, shl(5, iszero(iszero(length)))), _1)\n        }\n        case 1 {\n            mstore(0, value)\n            let dataPos := keccak256(0, _1)\n            let i := 0\n            for { } lt(i, length) { i := add(i, _1) }\n            {\n                mstore(add(add(pos, i), _1), sload(dataPos))\n                dataPos := add(dataPos, _2)\n            }\n            ret := add(add(pos, i), _1)\n        }\n    }\n    function abi_encode_tuple_t_address_t_uint256_t_string_storage_t_bytes_storage_t_uint256__to_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), 160)\n        let tail_1 := abi_encode_string_storage(value2, add(headStart, 160))\n        mstore(add(headStart, 96), sub(tail_1, headStart))\n        tail := abi_encode_string_storage(value3, tail_1)\n        mstore(add(headStart, 128), value4)\n    }\n    function abi_encode_bytes_calldata(start, length, pos) -> end\n    {\n        mstore(pos, length)\n        calldatacopy(add(pos, 0x20), start, length)\n        mstore(add(add(pos, length), 0x20), 0)\n        end := add(add(pos, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 0x20)\n    }\n    function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xffff))\n        mstore(add(headStart, 32), 64)\n        tail := abi_encode_bytes_calldata(value1, value2, add(headStart, 64))\n    }\n    function abi_encode_tuple_t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"NonblockingLzApp: caller must be\")\n        mstore(add(headStart, 96), \" LzApp\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_dcd823307e0cf8e2924ffc4da406ac40a542bd139ef180667b9ac44d3c4e1ed9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 64)\n        mstore(add(headStart, 64), \"OmnichainGovernanceExecutor::set\")\n        mstore(add(headStart, 96), \"Guardian: owner or guardian only\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"LzApp: no trusted path record\")\n        tail := add(headStart, 96)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        if gt(diff, x) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_packed_t_bytes_calldata_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed(pos, value2, value1, value0) -> end\n    {\n        calldatacopy(pos, value0, value1)\n        let _1 := add(pos, value1)\n        mstore(_1, and(shl(96, value2), 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000))\n        end := add(_1, 20)\n    }\n    function clean_up_bytearray_end_slots_bytes_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            let _1 := 0\n            mstore(0, array)\n            let data := keccak256(0, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _2 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _2) { start := add(start, 1) }\n            { sstore(start, _1) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage(slot, src)\n    {\n        let newLen := mload(src)\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_bytes_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        let srcOffset_1 := 0x20\n        srcOffset := 0x20\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n            {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, srcOffset_1)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n    function abi_encode_tuple_t_uint16_t_uint16_t_uint256_t_bytes_calldata_ptr__to_t_uint16_t_uint16_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        let _1 := 0xffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), 128)\n        tail := abi_encode_bytes_calldata(value3, value4, add(headStart, 128))\n    }\n    function abi_encode_tuple_packed_t_bytes_storage__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let ret := 0\n        let slotValue := sload(value0)\n        let length := extract_byte_array_length(slotValue)\n        let _1 := 1\n        switch and(slotValue, 1)\n        case 0 {\n            mstore(pos, and(slotValue, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00))\n            ret := add(pos, mul(length, iszero(iszero(length))))\n        }\n        case 1 {\n            mstore(0, value0)\n            let _2 := 0x20\n            let dataPos := keccak256(0, 0x20)\n            let i := 0\n            for { } lt(i, length) { i := add(i, _2) }\n            {\n                mstore(add(pos, i), sload(dataPos))\n                dataPos := add(dataPos, _1)\n            }\n            ret := add(pos, length)\n        }\n        end := ret\n    }\n    function abi_encode_tuple_t_stringliteral_8604b21a2334391c4295b76ee13c85fa92759d2c1e0134eda5b5a12de87b6756__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 63)\n        mstore(add(headStart, 64), \"OmnichainGovernanceExecutor::ret\")\n        mstore(add(headStart, 96), \"ryMessage: not a trusted remote\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_uint16_t_uint16_t_uint256__to_t_uint16_t_uint16_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        let _1 := 0xffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), value2)\n    }\n    function copy_byte_array_to_storage_from_t_bytes_calldata_ptr_to_t_bytes_storage(slot, src, len)\n    {\n        if gt(len, 0xffffffffffffffff) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_bytes_storage(slot, extract_byte_array_length(sload(slot)), len)\n        let srcOffset := 0\n        switch gt(len, 31)\n        case 1 {\n            let loopEnd := and(len, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := srcOffset\n            for { } lt(i, loopEnd) { i := add(i, 0x20) }\n            {\n                sstore(dstPtr, calldataload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 0x20)\n            }\n            if lt(loopEnd, len)\n            {\n                sstore(dstPtr, and(calldataload(add(src, srcOffset)), not(shr(and(shl(3, len), 248), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff))))\n            }\n            sstore(slot, add(shl(1, len), 1))\n        }\n        default {\n            let value := 0\n            if len\n            {\n                value := calldataload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, len))\n        }\n    }\n    function checked_add_t_uint8(x, y) -> sum\n    {\n        sum := add(and(x, 0xff), and(y, 0xff))\n        if gt(sum, 0xff) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_t_stringliteral_32080da14e7022f3ae138ecc980607030d5549ab2e1d714a8c2cbabbb48261e4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 106)\n        mstore(add(headStart, 64), \"OmnichainGovernanceExecutor::add\")\n        mstore(add(headStart, 96), \"Timelocks:number of timelocks sh\")\n        mstore(add(headStart, 128), \"ould match the number of governa\")\n        mstore(add(headStart, 160), \"nce routes\")\n        tail := add(headStart, 192)\n    }\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n        mstore(add(headStart, 96), \"ddress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_f08e2b8e61b5846c8974e694064edfd99da14433722704c9122062e543c20627__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 75)\n        mstore(add(headStart, 64), \"OmnichainGovernanceExecutor::set\")\n        mstore(add(headStart, 96), \"TimelockPendingAdmin: invalid pr\")\n        mstore(add(headStart, 128), \"oposal type\")\n        tail := add(headStart, 160)\n    }\n    function abi_encode_tuple_t_address_t_uint8__to_t_address_t_uint8__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 32), and(value1, 0xff))\n    }\n    function abi_encode_tuple_t_uint16_t_uint16_t_address_t_uint256__to_t_uint16_t_uint16_t_address_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 128)\n        let _1 := 0xffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), and(value2, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 96), value3)\n    }\n    function abi_decode_available_length_bytes_fromMemory(src, length, end) -> array\n    {\n        array := allocate_memory(array_allocation_size_bytes(length))\n        mstore(array, length)\n        if gt(add(src, length), end) { revert(0, 0) }\n        copy_memory_to_memory_with_cleanup(src, add(array, 0x20), length)\n    }\n    function abi_decode_bytes_fromMemory(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        array := abi_decode_available_length_bytes_fromMemory(add(offset, 0x20), mload(offset), end)\n    }\n    function abi_decode_tuple_t_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := mload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value0 := abi_decode_bytes_fromMemory(add(headStart, offset), dataEnd)\n    }\n    function abi_encode_tuple_t_stringliteral_e4bcaaea546383f3f12ee7e8affb6838fe2629172da652fe547c7dfbf4d39f35__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 83)\n        mstore(add(headStart, 64), \"OmnichainGovernanceExecutor::exe\")\n        mstore(add(headStart, 96), \"cute: proposal can only be execu\")\n        mstore(add(headStart, 128), \"ted if it is queued\")\n        tail := add(headStart, 160)\n    }\n    function abi_encode_tuple_t_stringliteral_d275682feaebe22ea68148a3f20b1a2d3f04f7bd9d77ea436ebdac94de138df7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 72)\n        mstore(add(headStart, 64), \"OmnichainGovernanceExecutor::_bl\")\n        mstore(add(headStart, 96), \"ockingLzReceive: invalid source \")\n        mstore(add(headStart, 128), \"chain id\")\n        tail := add(headStart, 160)\n    }\n    function abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xffff))\n        mstore(add(headStart, 32), 128)\n        let tail_1 := abi_encode_bytes(value1, add(headStart, 128))\n        mstore(add(headStart, 64), and(value2, 0xffffffffffffffff))\n        mstore(add(headStart, 96), sub(tail_1, headStart))\n        tail := abi_encode_bytes(value3, tail_1)\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n        end := add(pos, length)\n    }\n    function abi_encode_tuple_t_uint64_t_bytes_memory_ptr__to_t_uint64_t_bytes_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xffffffffffffffff))\n        mstore(add(headStart, 32), 64)\n        tail := abi_encode_bytes(value1, add(headStart, 64))\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_decode_tuple_t_bytes_memory_ptrt_uint256_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let offset := mload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value0 := abi_decode_bytes_fromMemory(add(headStart, offset), dataEnd)\n        value1 := mload(add(headStart, 32))\n    }\n    function abi_decode_array_uint256_dyn_fromMemory(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let _1 := mload(offset)\n        let _2 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_contract_ITimelock_dyn(_1))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, 0x20)\n        let srcEnd := add(add(offset, shl(5, _1)), 0x20)\n        if gt(srcEnd, end) { revert(0, 0) }\n        let src := add(offset, 0x20)\n        for { } lt(src, srcEnd) { src := add(src, _2) }\n        {\n            mstore(dst, mload(src))\n            dst := add(dst, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_array_string_dyn_fromMemory(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let _1 := mload(offset)\n        let _2 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_contract_ITimelock_dyn(_1))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, _2)\n        let srcEnd := add(add(offset, shl(5, _1)), _2)\n        if gt(srcEnd, end) { revert(0, 0) }\n        let src := add(offset, _2)\n        for { } lt(src, srcEnd) { src := add(src, _2) }\n        {\n            let innerOffset := mload(src)\n            if gt(innerOffset, 0xffffffffffffffff)\n            {\n                let _3 := 0\n                revert(_3, _3)\n            }\n            let _4 := add(offset, innerOffset)\n            if iszero(slt(add(_4, 63), end))\n            {\n                let _5 := 0\n                revert(_5, _5)\n            }\n            mstore(dst, abi_decode_available_length_bytes_fromMemory(add(_4, 64), mload(add(_4, _2)), end))\n            dst := add(dst, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_array_bytes_dyn_fromMemory(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let _1 := mload(offset)\n        let _2 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_contract_ITimelock_dyn(_1))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, _2)\n        let srcEnd := add(add(offset, shl(5, _1)), _2)\n        if gt(srcEnd, end) { revert(0, 0) }\n        let src := add(offset, _2)\n        for { } lt(src, srcEnd) { src := add(src, _2) }\n        {\n            let innerOffset := mload(src)\n            if gt(innerOffset, 0xffffffffffffffff)\n            {\n                let _3 := 0\n                revert(_3, _3)\n            }\n            mstore(dst, abi_decode_bytes_fromMemory(add(add(offset, innerOffset), _2), end))\n            dst := add(dst, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_uint8_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        validator_revert_uint8(value)\n    }\n    function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_string_memory_ptr_$dyn_memory_ptrt_array$_t_bytes_memory_ptr_$dyn_memory_ptrt_uint8_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n        let offset := mload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n        let _3 := mload(_2)\n        let _4 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_contract_ITimelock_dyn(_3))\n        let dst_1 := dst\n        mstore(dst, _3)\n        dst := add(dst, _4)\n        let srcEnd := add(add(_2, shl(5, _3)), _4)\n        if gt(srcEnd, dataEnd) { revert(0, 0) }\n        let src := add(_2, _4)\n        for { } lt(src, srcEnd) { src := add(src, _4) }\n        {\n            let value := mload(src)\n            validator_revert_address(value)\n            mstore(dst, value)\n            dst := add(dst, _4)\n        }\n        value0 := dst_1\n        let offset_1 := mload(add(headStart, _4))\n        if gt(offset_1, _1) { revert(0, 0) }\n        value1 := abi_decode_array_uint256_dyn_fromMemory(add(headStart, offset_1), dataEnd)\n        let offset_2 := mload(add(headStart, 64))\n        if gt(offset_2, _1) { revert(0, 0) }\n        value2 := abi_decode_array_string_dyn_fromMemory(add(headStart, offset_2), dataEnd)\n        let offset_3 := mload(add(headStart, 96))\n        if gt(offset_3, _1) { revert(0, 0) }\n        value3 := abi_decode_array_bytes_dyn_fromMemory(add(headStart, offset_3), dataEnd)\n        value4 := abi_decode_uint8_fromMemory(add(headStart, 128))\n    }\n    function abi_encode_tuple_t_stringliteral_2803d9538cd5469ac5fa2c9532b3ddc0b845796807f5a1c18ddcf2f3ee49776b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 70)\n        mstore(add(headStart, 64), \"OmnichainGovernanceExecutor::_no\")\n        mstore(add(headStart, 96), \"nblockingLzReceive: duplicate pr\")\n        mstore(add(headStart, 128), \"oposal\")\n        tail := add(headStart, 160)\n    }\n    function abi_encode_tuple_t_stringliteral_73269ca63e07077728e117499df129cf16ffbb7f2e384ee0422cb3a9906cbd6f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 96)\n        mstore(add(headStart, 64), \"OmnichainGovernanceExecutor::_no\")\n        mstore(add(headStart, 96), \"nblockingLzReceive: proposal fun\")\n        mstore(add(headStart, 128), \"ction information arity mismatch\")\n        tail := add(headStart, 160)\n    }\n    function abi_encode_tuple_t_stringliteral_6f48fffb767fcd1a10142050a1c2f0fa4d3752673ff6e94ff8b534dd8a3a82bb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 73)\n        mstore(add(headStart, 64), \"OmnichainGovernanceExecutor::_no\")\n        mstore(add(headStart, 96), \"nblockingLzReceive: invalid prop\")\n        mstore(add(headStart, 128), \"osal type\")\n        tail := add(headStart, 160)\n    }\n    function abi_encode_array_string_dyn(value, pos) -> end\n    {\n        let pos_1 := pos\n        let length := mload(value)\n        mstore(pos, length)\n        let _1 := 0x20\n        pos := add(pos, 0x20)\n        let tail := add(add(pos_1, shl(5, length)), 0x20)\n        let srcPtr := add(value, 0x20)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, add(sub(tail, pos_1), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))\n            tail := abi_encode_bytes(mload(srcPtr), tail)\n            srcPtr := add(srcPtr, _1)\n            pos := add(pos, _1)\n        }\n        end := tail\n    }\n    function abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_uint8__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_uint8__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        let tail_1 := add(headStart, 160)\n        mstore(headStart, 160)\n        let pos := tail_1\n        let length := mload(value0)\n        mstore(tail_1, length)\n        pos := add(headStart, 192)\n        let _1 := 0x20\n        let srcPtr := add(value0, _1)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, and(mload(srcPtr), 0xffffffffffffffffffffffffffffffffffffffff))\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        mstore(add(headStart, _1), sub(pos, headStart))\n        let pos_1 := pos\n        let length_1 := mload(value1)\n        mstore(pos, length_1)\n        pos_1 := add(pos, _1)\n        let srcPtr_1 := add(value1, _1)\n        let i_1 := 0\n        for { } lt(i_1, length_1) { i_1 := add(i_1, 1) }\n        {\n            mstore(pos_1, mload(srcPtr_1))\n            pos_1 := add(pos_1, _1)\n            srcPtr_1 := add(srcPtr_1, _1)\n        }\n        mstore(add(headStart, 64), sub(pos_1, headStart))\n        let tail_2 := abi_encode_array_string_dyn(value2, pos_1)\n        mstore(add(headStart, 96), sub(tail_2, headStart))\n        tail := abi_encode_array_string_dyn(value3, tail_2)\n        abi_encode_uint8(value4, add(headStart, 128))\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 14)\n        mstore(add(headStart, 64), \"slice_overflow\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 17)\n        mstore(add(headStart, 64), \"slice_outOfBounds\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 31)\n        mstore(add(headStart, 64), \"ReentrancyGuard: reentrant call\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 35)\n        mstore(add(headStart, 64), \"NonblockingLzApp: no stored mess\")\n        mstore(add(headStart, 96), \"age\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 33)\n        mstore(add(headStart, 64), \"NonblockingLzApp: invalid payloa\")\n        mstore(add(headStart, 96), \"d\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes32__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes32__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xffff))\n        mstore(add(headStart, 32), 128)\n        tail := abi_encode_bytes_calldata(value1, value2, add(headStart, 128))\n        mstore(add(headStart, 64), and(value3, 0xffffffffffffffff))\n        mstore(add(headStart, 96), value4)\n    }\n    function abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 20)\n        mstore(add(headStart, 64), \"Pausable: not paused\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 16)\n        mstore(add(headStart, 64), \"Pausable: paused\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_7f1ab6dca0c040aececbb4df1c67ab1f13c05f495e8356647158d9e65e565e3b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Daily Transaction Limit Exceeded\")\n        tail := add(headStart, 96)\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function abi_encode_tuple_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__to_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), 160)\n        let tail_1 := abi_encode_bytes(value2, add(headStart, 160))\n        mstore(add(headStart, 96), sub(tail_1, headStart))\n        tail := abi_encode_bytes(value3, tail_1)\n        mstore(add(headStart, 128), value4)\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_8864d14fd204ea66650b5ca543c106bdc1f9dca39811219c69678312ec6eb275__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 99)\n        mstore(add(headStart, 64), \"OmnichainGovernanceExecutor::que\")\n        mstore(add(headStart, 96), \"ueOrRevertInternal: identical pr\")\n        mstore(add(headStart, 128), \"oposal action already queued at \")\n        mstore(add(headStart, 160), \"eta\")\n        tail := add(headStart, 192)\n    }\n    function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n    {\n        let newLen := mload(src)\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_bytes_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        let srcOffset_1 := 0x20\n        srcOffset := 0x20\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n            {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, srcOffset_1)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n}","id":97,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"3347":[{"length":32,"start":2052},{"length":32,"start":2517},{"length":32,"start":3169},{"length":32,"start":3375},{"length":32,"start":4658},{"length":32,"start":6343},{"length":32,"start":8057}]},"linkReferences":{},"object":"6080604052600436106102f15760003560e01c8063876919e81161018f578063c4461834116100e1578063ed66039b1161008a578063f4fcfcca11610064578063f4fcfcca14610972578063f5ecbdbc14610992578063fe0d94c1146109b257600080fd5b8063ed66039b146108ef578063ee9799ee1461090f578063f2fde38b1461095257600080fd5b8063d1deba1f116100bb578063d1deba1f1461089c578063df2a5b3b146108af578063eb8d72b7146108cf57600080fd5b8063c446183414610846578063c8b42e5b1461085c578063cbed8b9c1461087c57600080fd5b8063950c8a7411610143578063a6c3d1651161011d578063a6c3d165146107d2578063b353aaa7146107f2578063baf3292d1461082657600080fd5b8063950c8a74146107555780639f0c3101146107825780639f38369a146107b257600080fd5b80638cfd8f5c116101745780638cfd8f5c146106d25780638da5cb5b1461070a5780639493ffad1461073557600080fd5b8063876919e81461069c5780638a0dac4a146106b257600080fd5b806342d65a8d116102485780635c975abb116101fc578063715018a6116101d6578063715018a61461064e5780637533d7881461065a5780638456cb591461068757600080fd5b80635c975abb1461060057806366ad5c8a1461061857806370f6ad9a1461063857600080fd5b8063452a93201161022d578063452a93201461051957806349d126051461056b5780635b8c41e6146105b157600080fd5b806342d65a8d146104e35780634406baaf1461050357600080fd5b806310ddb137116102aa5780633f1f4fa4116102845780633f1f4fa4146104815780633f4ba83a146104ae57806340e58ee5146104c357600080fd5b806310ddb137146104045780633d8b38f6146104245780633e4f49e61461045457600080fd5b80630435bb56116102db5780630435bb56146103a057806307e0db17146103c45780630df37483146103e457600080fd5b80621d3567146102f6578063013cf08b14610318575b600080fd5b34801561030257600080fd5b506103166103113660046137db565b6109d2565b005b34801561032457600080fd5b5061036a61033336600461386f565b600d6020526000908152604090208054600182015460069092015490919060ff808216916101008104821691620100009091041685565b60408051958652602086019490945291151592840192909252901515606083015260ff16608082015260a0015b60405180910390f35b3480156103ac57600080fd5b506103b660085481565b604051908152602001610397565b3480156103d057600080fd5b506103166103df366004613888565b610c27565b3480156103f057600080fd5b506103166103ff3660046138a3565b610cd6565b34801561041057600080fd5b5061031661041f366004613888565b610cf5565b34801561043057600080fd5b5061044461043f3660046138cd565b610d73565b6040519015158152602001610397565b34801561046057600080fd5b5061047461046f36600461386f565b610e40565b604051610397919061394f565b34801561048d57600080fd5b506103b661049c366004613888565b60046020526000908152604090205481565b3480156104ba57600080fd5b50610316610ed7565b3480156104cf57600080fd5b506103166104de36600461386f565b610ee9565b3480156104ef57600080fd5b506103166104fe3660046138cd565b6111ed565b34801561050f57600080fd5b506103b6600c5481565b34801561052557600080fd5b50600b546105469073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610397565b34801561057757600080fd5b50600b5461059e9074010000000000000000000000000000000000000000900461ffff1681565b60405161ffff9091168152602001610397565b3480156105bd57600080fd5b506103b66105cc366004613a18565b6006602090815260009384526040808520845180860184018051928152908401958401959095209452929052825290205481565b34801561060c57600080fd5b5060075460ff16610444565b34801561062457600080fd5b506103166106333660046137db565b611299565b34801561064457600080fd5b506103b660095481565b34801561031657600080fd5b34801561066657600080fd5b5061067a610675366004613888565b61138c565b6040516103979190613b09565b34801561069357600080fd5b50610316611426565b3480156106a857600080fd5b506103b6600a5481565b3480156106be57600080fd5b506103166106cd366004613b3e565b611436565b3480156106de57600080fd5b506103b66106ed366004613b5b565b600360209081526000928352604080842090915290825290205481565b34801561071657600080fd5b5060015473ffffffffffffffffffffffffffffffffffffffff16610546565b34801561074157600080fd5b5061031661075036600461386f565b61157e565b34801561076157600080fd5b506005546105469073ffffffffffffffffffffffffffffffffffffffff1681565b34801561078e57600080fd5b5061044461079d36600461386f565b600f6020526000908152604090205460ff1681565b3480156107be57600080fd5b5061067a6107cd366004613888565b6115c7565b3480156107de57600080fd5b506103166107ed3660046138cd565b6116d6565b3480156107fe57600080fd5b506105467f000000000000000000000000000000000000000000000000000000000000000081565b34801561083257600080fd5b50610316610841366004613b3e565b61175f565b34801561085257600080fd5b506103b661271081565b34801561086857600080fd5b50610316610877366004613888565b6117e0565b34801561088857600080fd5b50610316610897366004613b8e565b611882565b6103166108aa3660046137db565b61193d565b3480156108bb57600080fd5b506103166108ca366004613bfd565b611a19565b3480156108db57600080fd5b506103166108ea3660046138cd565b611a83565b3480156108fb57600080fd5b5061031661090a366004613c5d565b611add565b34801561091b57600080fd5b5061054661092a36600461386f565b600e6020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b34801561095e57600080fd5b5061031661096d366004613b3e565b611cf4565b34801561097e57600080fd5b5061031661098d366004613d06565b611d91565b34801561099e57600080fd5b5061067a6109ad366004613d3f565b611f2f565b3480156109be57600080fd5b506103166109cd36600461386f565b612006565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610a5c5760405162461bcd60e51b815260206004820152601e60248201527f4c7a4170703a20696e76616c696420656e64706f696e742063616c6c6572000060448201526064015b60405180910390fd5b61ffff861660009081526002602052604081208054610a7a90613d8c565b80601f0160208091040260200160405190810160405280929190818152602001828054610aa690613d8c565b8015610af35780601f10610ac857610100808354040283529160200191610af3565b820191906000526020600020905b815481529060010190602001808311610ad657829003601f168201915b50505050509050805186869050148015610b0e575060008151115b8015610b36575080516020820120604051610b2c9088908890613dd9565b6040518091039020145b610ba85760405162461bcd60e51b815260206004820152602660248201527f4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f60448201527f6e747261637400000000000000000000000000000000000000000000000000006064820152608401610a53565b610c1e8787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8a018190048102820181019092528881528a9350915088908890819084018382808284376000920191909152506122bf92505050565b50505050505050565b610c2f6124b9565b6040517f07e0db1700000000000000000000000000000000000000000000000000000000815261ffff821660048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906307e0db17906024015b600060405180830381600087803b158015610cbb57600080fd5b505af1158015610ccf573d6000803e3d6000fd5b5050505050565b610cde6124b9565b61ffff909116600090815260046020526040902055565b610cfd6124b9565b6040517f10ddb13700000000000000000000000000000000000000000000000000000000815261ffff821660048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906310ddb13790602401610ca1565b61ffff831660009081526002602052604081208054829190610d9490613d8c565b80601f0160208091040260200160405190810160405280929190818152602001828054610dc090613d8c565b8015610e0d5780601f10610de257610100808354040283529160200191610e0d565b820191906000526020600020905b815481529060010190602001808311610df057829003601f168201915b505050505090508383604051610e24929190613dd9565b60405180910390208180519060200120149150505b9392505050565b6000818152600d60205260408120600681015460ff1615610e645750600092915050565b6006810154610100900460ff1615610e7f5750600292915050565b6000838152600f602052604090205460ff1615610e9f5750600192915050565b6040517f0992f7ad00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50919050565b610edf6124b9565b610ee7612520565b565b6001610ef482610e40565b6002811115610f0557610f05613920565b14610f9e5760405162461bcd60e51b815260206004820152604f60248201527f4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a63616e60448201527f63656c3a2070726f706f73616c2073686f756c6420626520717565756564206160648201527f6e64206e6f742065786563757465640000000000000000000000000000000000608482015260a401610a53565b6000818152600d60205260409020600b5473ffffffffffffffffffffffffffffffffffffffff1633146110395760405162461bcd60e51b815260206004820152603c60248201527f4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a63616e60448201527f63656c3a2073656e646572206d75737420626520677561726469616e000000006064820152608401610a53565b60068101805460ff19166001908117918290556201000090910460ff166000908152600e602052604080822054928401546002850154915173ffffffffffffffffffffffffffffffffffffffff90941693909286917f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c9190a260005b818110156111d0578373ffffffffffffffffffffffffffffffffffffffff1663591fcdfe8660020183815481106110ee576110ee613de9565b60009182526020909120015460038801805473ffffffffffffffffffffffffffffffffffffffff909216918590811061112957611129613de9565b906000526020600020015488600401858154811061114957611149613de9565b9060005260206000200189600501868154811061116857611168613de9565b90600052602060002001886040518663ffffffff1660e01b8152600401611193959493929190613e95565b600060405180830381600087803b1580156111ad57600080fd5b505af11580156111c1573d6000803e3d6000fd5b505050508060010190506110b5565b50505060009283525050600f60205260409020805460ff19169055565b6111f56124b9565b6040517f42d65a8d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906342d65a8d9061126b90869086908690600401613f1a565b600060405180830381600087803b15801561128557600080fd5b505af1158015610c1e573d6000803e3d6000fd5b33301461130e5760405162461bcd60e51b815260206004820152602660248201527f4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d75737420626560448201527f204c7a41707000000000000000000000000000000000000000000000000000006064820152608401610a53565b6113848686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f89018190048102820181019092528781528993509150879087908190840183828082843760009201919091525061257f92505050565b505050505050565b600260205260009081526040902080546113a590613d8c565b80601f01602080910402602001604051908101604052809291908181526020018280546113d190613d8c565b801561141e5780601f106113f35761010080835404028352916020019161141e565b820191906000526020600020905b81548152906001019060200180831161140157829003601f168201915b505050505081565b61142e6124b9565b610ee76129b1565b600b5473ffffffffffffffffffffffffffffffffffffffff16331480611473575060015473ffffffffffffffffffffffffffffffffffffffff1633145b6114e7576040805162461bcd60e51b81526020600482015260248101919091527f4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a73657460448201527f477561726469616e3a206f776e6572206f7220677561726469616e206f6e6c796064820152608401610a53565b6114f0816129ee565b600b5460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f08fdaf06427a2010e5958f4329b566993472d14ce81d3f16ce7f2a2660da98e390600090a3600b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6115866124b9565b60085460408051918252602082018390527f0a653bb1a57e62cfd43f0dc557c7223e8b58896238b5f9b300ef646d37b82d1b910160405180910390a1600855565b61ffff81166000908152600260205260408120805460609291906115ea90613d8c565b80601f016020809104026020016040519081016040528092919081815260200182805461161690613d8c565b80156116635780601f1061163857610100808354040283529160200191611663565b820191906000526020600020905b81548152906001019060200180831161164657829003601f168201915b5050505050905080516000036116bb5760405162461bcd60e51b815260206004820152601d60248201527f4c7a4170703a206e6f20747275737465642070617468207265636f72640000006044820152606401610a53565b610e396000601483516116ce9190613f67565b839190612a3b565b6116de6124b9565b8181306040516020016116f393929190613f80565b60408051601f1981840301815291815261ffff851660009081526002602052209061171e9082614001565b507f8c0400cfe2d1199b1a725c78960bcc2a344d869b80590d0f2bd005db15a572ce83838360405161175293929190613f1a565b60405180910390a1505050565b6117676124b9565b600580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527f5db758e995a17ec1ad84bdef7e8c3293a0bd6179bcce400dff5d4c3d87db726b9060200160405180910390a150565b6117e86124b9565b600b5460405161ffff8084169274010000000000000000000000000000000000000000900416907fb17c58d5977290696b6eea77c81c725f3dc83e426252bd9ece6287c1b8d0e96890600090a3600b805461ffff90921674010000000000000000000000000000000000000000027fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff909216919091179055565b61188a6124b9565b6040517fcbed8b9c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063cbed8b9c9061190490889088908890889088906004016140fd565b600060405180830381600087803b15801561191e57600080fd5b505af1158015611932573d6000803e3d6000fd5b505050505050505050565b6119456124b9565b61194d612b63565b848460405161195d929190613dd9565b6040805191829003822061ffff891660009081526002602052919091209091611986919061412b565b604051809103902014611a015760405162461bcd60e51b815260206004820152603f60248201527f4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a72657460448201527f72794d6573736167653a206e6f74206120747275737465642072656d6f7465006064820152608401610a53565b611a0f868686868686612bbc565b6113846001600055565b611a216124b9565b61ffff83811660008181526003602090815260408083209487168084529482529182902085905581519283528201929092529081018290527f9d5c7c0b934da8fefa9c7760c98383778a12dfbfc0c3b3106518f43fb9508ac090606001611752565b611a8b6124b9565b61ffff83166000908152600260205260409020611aa98284836141a1565b507ffa41487ad5d6728f0b19276fa1eddc16558578f5109fc39d2dc33c3230470dab83838360405161175293929190613f1a565b611ae56124b9565b6000611af36002600161429d565b90508060ff16825114611bba5760405162461bcd60e51b815260206004820152606a60248201527f4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a61646460448201527f54696d656c6f636b733a6e756d626572206f662074696d656c6f636b7320736860648201527f6f756c64206d6174636820746865206e756d626572206f6620676f7665726e6160848201527f6e636520726f757465730000000000000000000000000000000000000000000060a482015260c401610a53565b60005b8160ff168160ff161015611cef57611bf0838260ff1681518110611be357611be3613de9565b60200260200101516129ee565b828160ff1681518110611c0557611c05613de9565b60209081029190910181015160ff83166000818152600e845260409081902054905191825273ffffffffffffffffffffffffffffffffffffffff928316939216917ffc45ae51ac4893a3f843d030fbfd4037c0c196109c9e667645b8f144c83c16ea910160405180910390a3828160ff1681518110611c8657611c86613de9565b60209081029190910181015160ff83166000908152600e909252604090912080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055600101611bbd565b505050565b611cfc6124b9565b73ffffffffffffffffffffffffffffffffffffffff8116611d855760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610a53565b611d8e81612e0a565b50565b611d996124b9565b6000611da76002600161429d565b90508060ff168260ff1610611e4a5760405162461bcd60e51b815260206004820152604b60248201527f4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a73657460448201527f54696d656c6f636b50656e64696e6741646d696e3a20696e76616c696420707260648201527f6f706f73616c2074797065000000000000000000000000000000000000000000608482015260a401610a53565b60ff82166000908152600e6020526040908190205490517f4dd18bf500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015290911690634dd18bf590602401600060405180830381600087803b158015611ec857600080fd5b505af1158015611edc573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff8716815260ff861660208201527f6ac0b2c896b49975f12891f83c573bdf05490fe6b707cbaa2ba84c36094cbaec9350019050611752565b6040517ff5ecbdbc00000000000000000000000000000000000000000000000000000000815261ffff808616600483015284166024820152306044820152606481018290526060907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063f5ecbdbc90608401600060405180830381865afa158015611fd5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ffd9190810190614306565b95945050505050565b61200e612b63565b600161201982610e40565b600281111561202a5761202a613920565b146120c35760405162461bcd60e51b815260206004820152605360248201527f4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a65786560448201527f637574653a2070726f706f73616c2063616e206f6e6c7920626520657865637560648201527f7465642069662069742069732071756575656400000000000000000000000000608482015260a401610a53565b6000818152600d602090815260408083206006810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179081905562010000900460ff168452600e90925280832054600183015460028401549251939473ffffffffffffffffffffffffffffffffffffffff9092169390929186917f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f9190a260005b81811015612299578373ffffffffffffffffffffffffffffffffffffffff16630825f38f8660020183815481106121a4576121a4613de9565b60009182526020909120015460038801805473ffffffffffffffffffffffffffffffffffffffff90921691859081106121df576121df613de9565b90600052602060002001548860040185815481106121ff576121ff613de9565b9060005260206000200189600501868154811061221e5761221e613de9565b90600052602060002001886040518663ffffffff1660e01b8152600401612249959493929190613e95565b6000604051808303816000875af1158015612268573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526122909190810190614306565b5060010161216b565b5050506000838152600f60205260409020805460ff1916905550611d8e90506001600055565b600b5461ffff85811674010000000000000000000000000000000000000000909204161461237b5760405162461bcd60e51b815260206004820152604860248201527f4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a5f626c60448201527f6f636b696e674c7a526563656976653a20696e76616c696420736f757263652060648201527f636861696e206964000000000000000000000000000000000000000000000000608482015260a401610a53565b8051602082012060405160009030906366ad5c8a906123a4908990899089908990602401614343565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000806124066175305a6123fc9190613f67565b3090609686612e81565b91509150816124af5761ffff8816600090815260066020526040908190209051859190612434908a90614382565b90815260408051918290036020908101832067ffffffffffffffff8b16600090815291522091909155612468908890614382565b60405180910390208861ffff167f41d73ce7be31a588d59fe9013cdcfe583bc0aab25093d042b64cade0df73065688846040516124a692919061439e565b60405180910390a35b5050505050505050565b60015473ffffffffffffffffffffffffffffffffffffffff163314610ee75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a53565b612528612f0c565b6007805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b612587612f5e565b6000808280602001905181019061259e91906143c1565b915091506000806000806000868060200190518101906125be9190614592565b60008b8152600d602052604090205494995092975090955093509150156126735760405162461bcd60e51b815260206004820152604660248201527f4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a5f6e6f60448201527f6e626c6f636b696e674c7a526563656976653a206475706c696361746520707260648201527f6f706f73616c0000000000000000000000000000000000000000000000000000608482015260a401610a53565b83518551148015612685575082518551145b8015612692575081518551145b61272a5760405162461bcd60e51b815260206004820152606060248201527f4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a5f6e6f60448201527f6e626c6f636b696e674c7a526563656976653a2070726f706f73616c2066756e60648201527f6374696f6e20696e666f726d6174696f6e206172697479206d69736d61746368608482015260a401610a53565b6127366002600161429d565b60ff168160ff16106127d65760405162461bcd60e51b815260206004820152604960248201527f4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a5f6e6f60448201527f6e626c6f636b696e674c7a526563656976653a20696e76616c69642070726f7060648201527f6f73616c20747970650000000000000000000000000000000000000000000000608482015260a401610a53565b6127e08551612fb1565b6040805161012081018252878152600060208083018281528385018a8152606085018a90526080850189905260a0850188905260c0850184905260e0850184905260ff87166101008601528b8452600d835294909220835181559151600183015592518051929384936128599260028501920190613571565b50606082015180516128759160038401916020909101906135fb565b5060808201518051612891916004840191602090910190613636565b5060a082015180516128ad916005840191602090910190613688565b5060c08201516006909101805460e08401516101009485015160ff1662010000027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff9115159095027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff941515949094167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000909216919091179290921791909116919091179055600c87905580516040517fc37d19c9a6a9a568b5071658f9b5082ff8f142df3cf090385c5621ab1193806590612992908990899089908990899061470b565b60405180910390a26129a387613041565b505050505050505050505050565b6129b9612f5e565b6007805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586125553390565b73ffffffffffffffffffffffffffffffffffffffff8116611d8e576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606081612a4981601f6147d5565b1015612a975760405162461bcd60e51b815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401610a53565b612aa182846147d5565b84511015612af15760405162461bcd60e51b815260206004820152601160248201527f736c6963655f6f75744f66426f756e64730000000000000000000000000000006044820152606401610a53565b606082158015612b105760405191506000825260208201604052612b5a565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015612b49578051835260209283019201612b31565b5050858452601f01601f1916604052505b50949350505050565b600260005403612bb55760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610a53565b6002600055565b61ffff86166000908152600660205260408082209051612bdf9088908890613dd9565b908152604080516020928190038301902067ffffffffffffffff871660009081529252902054905080612c7a5760405162461bcd60e51b815260206004820152602360248201527f4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d65737360448201527f61676500000000000000000000000000000000000000000000000000000000006064820152608401610a53565b808383604051612c8b929190613dd9565b604051809103902014612d065760405162461bcd60e51b815260206004820152602160248201527f4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f6160448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610a53565b61ffff87166000908152600660205260408082209051612d299089908990613dd9565b908152604080516020928190038301812067ffffffffffffffff8916600090815290845282902093909355601f88018290048202830182019052868252612dc2918991899089908190840183828082843760009201919091525050604080516020601f8a018190048102820181019092528881528a93509150889088908190840183828082843760009201919091525061257f92505050565b7fc264d91f3adc5588250e1551f547752ca0cfa8f6b530d243b9f9f4cab10ea8e58787878785604051612df99594939291906147e8565b60405180910390a150505050505050565b6001805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000606060008060008661ffff1667ffffffffffffffff811115612ea757612ea7613990565b6040519080825280601f01601f191660200182016040528015612ed1576020820181803683370190505b50905060008087516020890160008d8df191503d925086831115612ef3578692505b828152826000602083013e909890975095505050505050565b60075460ff16610ee75760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610a53565b60075460ff1615610ee75760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610a53565b600954600a544291906201518090612fc99084613f67565b1115612fdb5750600a81905581612fe8565b612fe583826147d5565b90505b60085481111561303a5760405162461bcd60e51b815260206004820181905260248201527f4461696c79205472616e73616374696f6e204c696d69742045786365656465646044820152606401610a53565b6009555050565b6000818152600d60209081526040808320600681015462010000900460ff168452600e83528184205482517f6a42b8f8000000000000000000000000000000000000000000000000000000008152925191949373ffffffffffffffffffffffffffffffffffffffff90911692636a42b8f892600480830193928290030181865afa1580156130d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130f79190614824565b61310190426147d5565b60018084018290556000858152600f602052604090819020805460ff191690921790915560068401546002850154915192935062010000900460ff169185907f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda28929061316f9086815260200190565b60405180910390a260005b818110156113845761333785600201828154811061319a5761319a613de9565b60009182526020909120015460038701805473ffffffffffffffffffffffffffffffffffffffff90921691849081106131d5576131d5613de9565b90600052602060002001548760040184815481106131f5576131f5613de9565b90600052602060002001805461320a90613d8c565b80601f016020809104026020016040519081016040528092919081815260200182805461323690613d8c565b80156132835780601f1061325857610100808354040283529160200191613283565b820191906000526020600020905b81548152906001019060200180831161326657829003601f168201915b505050505088600501858154811061329d5761329d613de9565b9060005260206000200180546132b290613d8c565b80601f01602080910402602001604051908101604052809291908181526020018280546132de90613d8c565b801561332b5780601f106133005761010080835404028352916020019161332b565b820191906000526020600020905b81548152906001019060200180831161330e57829003601f168201915b5050505050888861333f565b60010161317a565b60ff81166000908152600e602090815260409182902054915173ffffffffffffffffffffffffffffffffffffffff9092169163f2b065379161338b918a918a918a918a918a910161483d565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b81526004016133bf91815260200190565b602060405180830381865afa1580156133dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134009190614884565b156134bf5760405162461bcd60e51b815260206004820152606360248201527f4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a71756560448201527f75654f72526576657274496e7465726e616c3a206964656e746963616c20707260648201527f6f706f73616c20616374696f6e20616c7265616479207175657565642061742060848201527f657461000000000000000000000000000000000000000000000000000000000060a482015260c401610a53565b60ff81166000908152600e6020526040908190205490517f3a66f90100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690633a66f9019061352e908990899089908990899060040161483d565b6020604051808303816000875af115801561354d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c1e9190614824565b8280548282559060005260206000209081019282156135eb579160200282015b828111156135eb57825182547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909116178255602090920191600190910190613591565b506135f79291506136da565b5090565b8280548282559060005260206000209081019282156135eb579160200282015b828111156135eb57825182559160200191906001019061361b565b82805482825590600052602060002090810192821561367c579160200282015b8281111561367c578251829061366c9082614001565b5091602001919060010190613656565b506135f79291506136ef565b8280548282559060005260206000209081019282156136ce579160200282015b828111156136ce57825182906136be9082614001565b50916020019190600101906136a8565b506135f792915061370c565b5b808211156135f757600081556001016136db565b808211156135f75760006137038282613729565b506001016136ef565b808211156135f75760006137208282613729565b5060010161370c565b50805461373590613d8c565b6000825580601f10613745575050565b601f016020900490600052602060002090810190611d8e91906136da565b803561ffff8116811461377557600080fd5b919050565b60008083601f84011261378c57600080fd5b50813567ffffffffffffffff8111156137a457600080fd5b6020830191508360208285010111156137bc57600080fd5b9250929050565b803567ffffffffffffffff8116811461377557600080fd5b600080600080600080608087890312156137f457600080fd5b6137fd87613763565b9550602087013567ffffffffffffffff8082111561381a57600080fd5b6138268a838b0161377a565b909750955085915061383a60408a016137c3565b9450606089013591508082111561385057600080fd5b5061385d89828a0161377a565b979a9699509497509295939492505050565b60006020828403121561388157600080fd5b5035919050565b60006020828403121561389a57600080fd5b610e3982613763565b600080604083850312156138b657600080fd5b6138bf83613763565b946020939093013593505050565b6000806000604084860312156138e257600080fd5b6138eb84613763565b9250602084013567ffffffffffffffff81111561390757600080fd5b6139138682870161377a565b9497909650939450505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b602081016003831061398a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156139e8576139e8613990565b604052919050565b600067ffffffffffffffff821115613a0a57613a0a613990565b50601f01601f191660200190565b600080600060608486031215613a2d57600080fd5b613a3684613763565b9250602084013567ffffffffffffffff811115613a5257600080fd5b8401601f81018613613a6357600080fd5b8035613a76613a71826139f0565b6139bf565b818152876020838501011115613a8b57600080fd5b81602084016020830137600060208383010152809450505050613ab0604085016137c3565b90509250925092565b60005b83811015613ad4578181015183820152602001613abc565b50506000910152565b60008151808452613af5816020860160208601613ab9565b601f01601f19169290920160200192915050565b602081526000610e396020830184613add565b73ffffffffffffffffffffffffffffffffffffffff81168114611d8e57600080fd5b600060208284031215613b5057600080fd5b8135610e3981613b1c565b60008060408385031215613b6e57600080fd5b613b7783613763565b9150613b8560208401613763565b90509250929050565b600080600080600060808688031215613ba657600080fd5b613baf86613763565b9450613bbd60208701613763565b935060408601359250606086013567ffffffffffffffff811115613be057600080fd5b613bec8882890161377a565b969995985093965092949392505050565b600080600060608486031215613c1257600080fd5b613c1b84613763565b9250613c2960208501613763565b9150604084013590509250925092565b600067ffffffffffffffff821115613c5357613c53613990565b5060051b60200190565b60006020808385031215613c7057600080fd5b823567ffffffffffffffff811115613c8757600080fd5b8301601f81018513613c9857600080fd5b8035613ca6613a7182613c39565b81815260059190911b82018301908381019087831115613cc557600080fd5b928401925b82841015613cec578335613cdd81613b1c565b82529284019290840190613cca565b979650505050505050565b60ff81168114611d8e57600080fd5b60008060408385031215613d1957600080fd5b8235613d2481613b1c565b91506020830135613d3481613cf7565b809150509250929050565b60008060008060808587031215613d5557600080fd5b613d5e85613763565b9350613d6c60208601613763565b92506040850135613d7c81613b1c565b9396929550929360600135925050565b600181811c90821680613da057607f821691505b602082108103610ed1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b8183823760009101908152919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008154613e2581613d8c565b808552602060018381168015613e425760018114613e5c57613e8a565b60ff198516838901528284151560051b8901019550613e8a565b866000528260002060005b85811015613e825781548a8201860152908301908401613e67565b890184019650505b505050505092915050565b73ffffffffffffffffffffffffffffffffffffffff8616815284602082015260a060408201526000613eca60a0830186613e18565b8281036060840152613edc8186613e18565b9150508260808301529695505050505050565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b61ffff84168152604060208201526000611ffd604083018486613eef565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115613f7a57613f7a613f38565b92915050565b8284823760609190911b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169101908152601401919050565b601f821115611cef576000816000526020600020601f850160051c81016020861015613fe25750805b601f850160051c820191505b8181101561138457828155600101613fee565b815167ffffffffffffffff81111561401b5761401b613990565b61402f816140298454613d8c565b84613fb9565b602080601f831160018114614082576000841561404c5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555611384565b600085815260208120601f198616915b828110156140b157888601518255948401946001909101908401614092565b50858210156140ed57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b600061ffff808816835280871660208401525084604083015260806060830152613cec608083018486613eef565b600080835461413981613d8c565b60018281168015614151576001811461416657614195565b60ff1984168752821515830287019450614195565b8760005260208060002060005b8581101561418c5781548a820152908401908201614173565b50505082870194505b50929695505050505050565b67ffffffffffffffff8311156141b9576141b9613990565b6141cd836141c78354613d8c565b83613fb9565b6000601f84116001811461421f57600085156141e95750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355610ccf565b600083815260209020601f19861690835b828110156142505786850135825560209485019460019092019101614230565b508682101561428b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b60ff8181168382160190811115613f7a57613f7a613f38565b60006142c4613a71846139f0565b90508281528383830111156142d857600080fd5b610e39836020830184613ab9565b600082601f8301126142f757600080fd5b610e39838351602085016142b6565b60006020828403121561431857600080fd5b815167ffffffffffffffff81111561432f57600080fd5b61433b848285016142e6565b949350505050565b61ffff851681526080602082015260006143606080830186613add565b67ffffffffffffffff851660408401528281036060840152613cec8185613add565b60008251614394818460208701613ab9565b9190910192915050565b67ffffffffffffffff8316815260406020820152600061433b6040830184613add565b600080604083850312156143d457600080fd5b825167ffffffffffffffff8111156143eb57600080fd5b6143f7858286016142e6565b925050602083015190509250929050565b600082601f83011261441957600080fd5b81516020614429613a7183613c39565b8083825260208201915060208460051b87010193508684111561444b57600080fd5b602086015b848110156144675780518352918301918301614450565b509695505050505050565b600082601f83011261448357600080fd5b81516020614493613a7183613c39565b82815260059290921b840181019181810190868411156144b257600080fd5b8286015b8481101561446757805167ffffffffffffffff8111156144d65760008081fd5b8701603f810189136144e85760008081fd5b6144f98986830151604084016142b6565b8452509183019183016144b6565b600082601f83011261451857600080fd5b81516020614528613a7183613c39565b82815260059290921b8401810191818101908684111561454757600080fd5b8286015b8481101561446757805167ffffffffffffffff81111561456b5760008081fd5b6145798986838b01016142e6565b84525091830191830161454b565b805161377581613cf7565b600080600080600060a086880312156145aa57600080fd5b855167ffffffffffffffff808211156145c257600080fd5b818801915088601f8301126145d657600080fd5b815160206145e6613a7183613c39565b82815260059290921b8401810191818101908c84111561460557600080fd5b948201945b8386101561462c57855161461d81613b1c565b8252948201949082019061460a565b918b015191995090935050508082111561464557600080fd5b61465189838a01614408565b9550604088015191508082111561466757600080fd5b61467389838a01614472565b9450606088015191508082111561468957600080fd5b5061469688828901614507565b9250506146a560808701614587565b90509295509295909350565b60008282518085526020808601955060208260051b8401016020860160005b848110156146fe57601f198684030189526146ec838351613add565b988401989250908301906001016146d0565b5090979650505050505050565b60a0808252865190820181905260009060209060c0840190828a01845b8281101561475a57815173ffffffffffffffffffffffffffffffffffffffff1684529284019290840190600101614728565b5050508381038285015287518082528883019183019060005b8181101561478f57835183529284019291840191600101614773565b505084810360408601526147a381896146b1565b9250505082810360608401526147b981866146b1565b9150506147cb608083018460ff169052565b9695505050505050565b80820180821115613f7a57613f7a613f38565b61ffff86168152608060208201526000614806608083018688613eef565b67ffffffffffffffff94909416604083015250606001529392505050565b60006020828403121561483657600080fd5b5051919050565b73ffffffffffffffffffffffffffffffffffffffff8616815284602082015260a06040820152600061487260a0830186613add565b8281036060840152613edc8186613add565b60006020828403121561489657600080fd5b81518015158114610e3957600080fdfea264697066735822122022307d7e31580ece44a0e9adf66c14789502c9d5b0f18f4226abaa5e33b1824164736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2F1 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x876919E8 GT PUSH2 0x18F JUMPI DUP1 PUSH4 0xC4461834 GT PUSH2 0xE1 JUMPI DUP1 PUSH4 0xED66039B GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xF4FCFCCA GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xF4FCFCCA EQ PUSH2 0x972 JUMPI DUP1 PUSH4 0xF5ECBDBC EQ PUSH2 0x992 JUMPI DUP1 PUSH4 0xFE0D94C1 EQ PUSH2 0x9B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xED66039B EQ PUSH2 0x8EF JUMPI DUP1 PUSH4 0xEE9799EE EQ PUSH2 0x90F JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x952 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xD1DEBA1F GT PUSH2 0xBB JUMPI DUP1 PUSH4 0xD1DEBA1F EQ PUSH2 0x89C JUMPI DUP1 PUSH4 0xDF2A5B3B EQ PUSH2 0x8AF JUMPI DUP1 PUSH4 0xEB8D72B7 EQ PUSH2 0x8CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xC4461834 EQ PUSH2 0x846 JUMPI DUP1 PUSH4 0xC8B42E5B EQ PUSH2 0x85C JUMPI DUP1 PUSH4 0xCBED8B9C EQ PUSH2 0x87C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x950C8A74 GT PUSH2 0x143 JUMPI DUP1 PUSH4 0xA6C3D165 GT PUSH2 0x11D JUMPI DUP1 PUSH4 0xA6C3D165 EQ PUSH2 0x7D2 JUMPI DUP1 PUSH4 0xB353AAA7 EQ PUSH2 0x7F2 JUMPI DUP1 PUSH4 0xBAF3292D EQ PUSH2 0x826 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x950C8A74 EQ PUSH2 0x755 JUMPI DUP1 PUSH4 0x9F0C3101 EQ PUSH2 0x782 JUMPI DUP1 PUSH4 0x9F38369A EQ PUSH2 0x7B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8CFD8F5C GT PUSH2 0x174 JUMPI DUP1 PUSH4 0x8CFD8F5C EQ PUSH2 0x6D2 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x70A JUMPI DUP1 PUSH4 0x9493FFAD EQ PUSH2 0x735 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x876919E8 EQ PUSH2 0x69C JUMPI DUP1 PUSH4 0x8A0DAC4A EQ PUSH2 0x6B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x42D65A8D GT PUSH2 0x248 JUMPI DUP1 PUSH4 0x5C975ABB GT PUSH2 0x1FC JUMPI DUP1 PUSH4 0x715018A6 GT PUSH2 0x1D6 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x64E JUMPI DUP1 PUSH4 0x7533D788 EQ PUSH2 0x65A JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x687 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x600 JUMPI DUP1 PUSH4 0x66AD5C8A EQ PUSH2 0x618 JUMPI DUP1 PUSH4 0x70F6AD9A EQ PUSH2 0x638 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x452A9320 GT PUSH2 0x22D JUMPI DUP1 PUSH4 0x452A9320 EQ PUSH2 0x519 JUMPI DUP1 PUSH4 0x49D12605 EQ PUSH2 0x56B JUMPI DUP1 PUSH4 0x5B8C41E6 EQ PUSH2 0x5B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x42D65A8D EQ PUSH2 0x4E3 JUMPI DUP1 PUSH4 0x4406BAAF EQ PUSH2 0x503 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x10DDB137 GT PUSH2 0x2AA JUMPI DUP1 PUSH4 0x3F1F4FA4 GT PUSH2 0x284 JUMPI DUP1 PUSH4 0x3F1F4FA4 EQ PUSH2 0x481 JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x4AE JUMPI DUP1 PUSH4 0x40E58EE5 EQ PUSH2 0x4C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x10DDB137 EQ PUSH2 0x404 JUMPI DUP1 PUSH4 0x3D8B38F6 EQ PUSH2 0x424 JUMPI DUP1 PUSH4 0x3E4F49E6 EQ PUSH2 0x454 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x435BB56 GT PUSH2 0x2DB JUMPI DUP1 PUSH4 0x435BB56 EQ PUSH2 0x3A0 JUMPI DUP1 PUSH4 0x7E0DB17 EQ PUSH2 0x3C4 JUMPI DUP1 PUSH4 0xDF37483 EQ PUSH2 0x3E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH3 0x1D3567 EQ PUSH2 0x2F6 JUMPI DUP1 PUSH4 0x13CF08B EQ PUSH2 0x318 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x302 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x311 CALLDATASIZE PUSH1 0x4 PUSH2 0x37DB JUMP JUMPDEST PUSH2 0x9D2 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x324 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x36A PUSH2 0x333 CALLDATASIZE PUSH1 0x4 PUSH2 0x386F JUMP JUMPDEST PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x6 SWAP1 SWAP3 ADD SLOAD SWAP1 SWAP2 SWAP1 PUSH1 0xFF DUP1 DUP3 AND SWAP2 PUSH2 0x100 DUP2 DIV DUP3 AND SWAP2 PUSH3 0x10000 SWAP1 SWAP2 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH1 0x20 DUP7 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP2 ISZERO ISZERO SWAP3 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 ISZERO ISZERO PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0xFF AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B6 PUSH1 0x8 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x397 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x3DF CALLDATASIZE PUSH1 0x4 PUSH2 0x3888 JUMP JUMPDEST PUSH2 0xC27 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x3FF CALLDATASIZE PUSH1 0x4 PUSH2 0x38A3 JUMP JUMPDEST PUSH2 0xCD6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x410 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x41F CALLDATASIZE PUSH1 0x4 PUSH2 0x3888 JUMP JUMPDEST PUSH2 0xCF5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x430 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x444 PUSH2 0x43F CALLDATASIZE PUSH1 0x4 PUSH2 0x38CD JUMP JUMPDEST PUSH2 0xD73 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x397 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x460 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x474 PUSH2 0x46F CALLDATASIZE PUSH1 0x4 PUSH2 0x386F JUMP JUMPDEST PUSH2 0xE40 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x397 SWAP2 SWAP1 PUSH2 0x394F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B6 PUSH2 0x49C CALLDATASIZE PUSH1 0x4 PUSH2 0x3888 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0xED7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x4DE CALLDATASIZE PUSH1 0x4 PUSH2 0x386F JUMP JUMPDEST PUSH2 0xEE9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x4FE CALLDATASIZE PUSH1 0x4 PUSH2 0x38CD JUMP JUMPDEST PUSH2 0x11ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x50F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B6 PUSH1 0xC SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x525 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xB SLOAD PUSH2 0x546 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x397 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x577 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xB SLOAD PUSH2 0x59E SWAP1 PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH2 0xFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x397 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B6 PUSH2 0x5CC CALLDATASIZE PUSH1 0x4 PUSH2 0x3A18 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0x40 DUP1 DUP6 KECCAK256 DUP5 MLOAD DUP1 DUP7 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP6 DUP5 ADD SWAP6 SWAP1 SWAP6 KECCAK256 SWAP5 MSTORE SWAP3 SWAP1 MSTORE DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x60C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x7 SLOAD PUSH1 0xFF AND PUSH2 0x444 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x624 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x633 CALLDATASIZE PUSH1 0x4 PUSH2 0x37DB JUMP JUMPDEST PUSH2 0x1299 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x644 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B6 PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x316 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x666 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x67A PUSH2 0x675 CALLDATASIZE PUSH1 0x4 PUSH2 0x3888 JUMP JUMPDEST PUSH2 0x138C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x397 SWAP2 SWAP1 PUSH2 0x3B09 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x693 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x1426 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B6 PUSH1 0xA SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x6CD CALLDATASIZE PUSH1 0x4 PUSH2 0x3B3E JUMP JUMPDEST PUSH2 0x1436 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B6 PUSH2 0x6ED CALLDATASIZE PUSH1 0x4 PUSH2 0x3B5B JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x716 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x546 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x741 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x750 CALLDATASIZE PUSH1 0x4 PUSH2 0x386F JUMP JUMPDEST PUSH2 0x157E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x761 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5 SLOAD PUSH2 0x546 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x78E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x444 PUSH2 0x79D CALLDATASIZE PUSH1 0x4 PUSH2 0x386F JUMP JUMPDEST PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x67A PUSH2 0x7CD CALLDATASIZE PUSH1 0x4 PUSH2 0x3888 JUMP JUMPDEST PUSH2 0x15C7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x7ED CALLDATASIZE PUSH1 0x4 PUSH2 0x38CD JUMP JUMPDEST PUSH2 0x16D6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x546 PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x832 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x841 CALLDATASIZE PUSH1 0x4 PUSH2 0x3B3E JUMP JUMPDEST PUSH2 0x175F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x852 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B6 PUSH2 0x2710 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x868 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x877 CALLDATASIZE PUSH1 0x4 PUSH2 0x3888 JUMP JUMPDEST PUSH2 0x17E0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x888 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x897 CALLDATASIZE PUSH1 0x4 PUSH2 0x3B8E JUMP JUMPDEST PUSH2 0x1882 JUMP JUMPDEST PUSH2 0x316 PUSH2 0x8AA CALLDATASIZE PUSH1 0x4 PUSH2 0x37DB JUMP JUMPDEST PUSH2 0x193D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x8CA CALLDATASIZE PUSH1 0x4 PUSH2 0x3BFD JUMP JUMPDEST PUSH2 0x1A19 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x8EA CALLDATASIZE PUSH1 0x4 PUSH2 0x38CD JUMP JUMPDEST PUSH2 0x1A83 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x90A CALLDATASIZE PUSH1 0x4 PUSH2 0x3C5D JUMP JUMPDEST PUSH2 0x1ADD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x91B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x546 PUSH2 0x92A CALLDATASIZE PUSH1 0x4 PUSH2 0x386F JUMP JUMPDEST PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x95E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x96D CALLDATASIZE PUSH1 0x4 PUSH2 0x3B3E JUMP JUMPDEST PUSH2 0x1CF4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x97E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x98D CALLDATASIZE PUSH1 0x4 PUSH2 0x3D06 JUMP JUMPDEST PUSH2 0x1D91 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x99E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x67A PUSH2 0x9AD CALLDATASIZE PUSH1 0x4 PUSH2 0x3D3F JUMP JUMPDEST PUSH2 0x1F2F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x9CD CALLDATASIZE PUSH1 0x4 PUSH2 0x386F JUMP JUMPDEST PUSH2 0x2006 JUMP JUMPDEST CALLER PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xA5C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A20696E76616C696420656E64706F696E742063616C6C65720000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0xA7A SWAP1 PUSH2 0x3D8C JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xAA6 SWAP1 PUSH2 0x3D8C JUMP JUMPDEST DUP1 ISZERO PUSH2 0xAF3 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xAC8 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xAF3 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xAD6 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD DUP7 DUP7 SWAP1 POP EQ DUP1 ISZERO PUSH2 0xB0E JUMPI POP PUSH1 0x0 DUP2 MLOAD GT JUMPDEST DUP1 ISZERO PUSH2 0xB36 JUMPI POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH2 0xB2C SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0x3DD9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ JUMPDEST PUSH2 0xBA8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A20696E76616C696420736F757263652073656E64696E6720636F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E74726163740000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH2 0xC1E DUP8 DUP8 DUP8 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP11 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP9 DUP2 MSTORE DUP11 SWAP4 POP SWAP2 POP DUP9 SWAP1 DUP9 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x22BF SWAP3 POP POP POP JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xC2F PUSH2 0x24B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x7E0DB1700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH2 0xFFFF DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0x7E0DB17 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCBB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCCF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0xCDE PUSH2 0x24B9 JUMP JUMPDEST PUSH2 0xFFFF SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST PUSH2 0xCFD PUSH2 0x24B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x10DDB13700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH2 0xFFFF DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0x10DDB137 SWAP1 PUSH1 0x24 ADD PUSH2 0xCA1 JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP3 SWAP2 SWAP1 PUSH2 0xD94 SWAP1 PUSH2 0x3D8C JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xDC0 SWAP1 PUSH2 0x3D8C JUMP JUMPDEST DUP1 ISZERO PUSH2 0xE0D JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xDE2 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xE0D JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xDF0 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xE24 SWAP3 SWAP2 SWAP1 PUSH2 0x3DD9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP2 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 EQ SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x6 DUP2 ADD SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xE64 JUMPI POP PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x6 DUP2 ADD SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xE7F JUMPI POP PUSH1 0x2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xE9F JUMPI POP PUSH1 0x1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x992F7AD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xEDF PUSH2 0x24B9 JUMP JUMPDEST PUSH2 0xEE7 PUSH2 0x2520 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH2 0xEF4 DUP3 PUSH2 0xE40 JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF05 JUMPI PUSH2 0xF05 PUSH2 0x3920 JUMP JUMPDEST EQ PUSH2 0xF9E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x4F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E476F7665726E616E63654578656375746F723A3A63616E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x63656C3A2070726F706F73616C2073686F756C64206265207175657565642061 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6E64206E6F742065786563757465640000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0xB SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x1039 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E476F7665726E616E63654578656375746F723A3A63616E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x63656C3A2073656E646572206D75737420626520677561726469616E00000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH1 0x6 DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 SWAP1 DUP2 OR SWAP2 DUP3 SWAP1 SSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0xFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD SWAP3 DUP5 ADD SLOAD PUSH1 0x2 DUP6 ADD SLOAD SWAP2 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP3 DUP7 SWAP2 PUSH32 0x789CF55BE980739DAD1D0699B93B58E806B51C9D96619BFA8FE0A28ABAA7B30C SWAP2 SWAP1 LOG2 PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x11D0 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x591FCDFE DUP7 PUSH1 0x2 ADD DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x10EE JUMPI PUSH2 0x10EE PUSH2 0x3DE9 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x3 DUP9 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 DUP6 SWAP1 DUP2 LT PUSH2 0x1129 JUMPI PUSH2 0x1129 PUSH2 0x3DE9 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP9 PUSH1 0x4 ADD DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x1149 JUMPI PUSH2 0x1149 PUSH2 0x3DE9 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP10 PUSH1 0x5 ADD DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x1168 JUMPI PUSH2 0x1168 PUSH2 0x3DE9 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP9 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1193 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3E95 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x11C1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x10B5 JUMP JUMPDEST POP POP POP PUSH1 0x0 SWAP3 DUP4 MSTORE POP POP PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x11F5 PUSH2 0x24B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x42D65A8D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 AND SWAP1 PUSH4 0x42D65A8D SWAP1 PUSH2 0x126B SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x3F1A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1285 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC1E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST CALLER ADDRESS EQ PUSH2 0x130E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A2063616C6C6572206D757374206265 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x204C7A4170700000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH2 0x1384 DUP7 DUP7 DUP7 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP10 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP8 DUP2 MSTORE DUP10 SWAP4 POP SWAP2 POP DUP8 SWAP1 DUP8 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x257F SWAP3 POP POP POP JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x13A5 SWAP1 PUSH2 0x3D8C JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x13D1 SWAP1 PUSH2 0x3D8C JUMP JUMPDEST DUP1 ISZERO PUSH2 0x141E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x13F3 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x141E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1401 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0x142E PUSH2 0x24B9 JUMP JUMPDEST PUSH2 0xEE7 PUSH2 0x29B1 JUMP JUMPDEST PUSH1 0xB SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ DUP1 PUSH2 0x1473 JUMPI POP PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ JUMPDEST PUSH2 0x14E7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x4F6D6E69636861696E476F7665726E616E63654578656375746F723A3A736574 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x477561726469616E3A206F776E6572206F7220677561726469616E206F6E6C79 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH2 0x14F0 DUP2 PUSH2 0x29EE JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND SWAP3 AND SWAP1 PUSH32 0x8FDAF06427A2010E5958F4329B566993472D14CE81D3F16CE7F2A2660DA98E3 SWAP1 PUSH1 0x0 SWAP1 LOG3 PUSH1 0xB DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1586 PUSH2 0x24B9 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0xA653BB1A57E62CFD43F0DC557C7223E8B58896238B5F9B300EF646D37B82D1B SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x8 SSTORE JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x60 SWAP3 SWAP2 SWAP1 PUSH2 0x15EA SWAP1 PUSH2 0x3D8C JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1616 SWAP1 PUSH2 0x3D8C JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1663 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1638 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1663 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1646 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x16BB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A206E6F20747275737465642070617468207265636F7264000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH2 0xE39 PUSH1 0x0 PUSH1 0x14 DUP4 MLOAD PUSH2 0x16CE SWAP2 SWAP1 PUSH2 0x3F67 JUMP JUMPDEST DUP4 SWAP2 SWAP1 PUSH2 0x2A3B JUMP JUMPDEST PUSH2 0x16DE PUSH2 0x24B9 JUMP JUMPDEST DUP2 DUP2 ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x16F3 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3F80 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH2 0xFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE KECCAK256 SWAP1 PUSH2 0x171E SWAP1 DUP3 PUSH2 0x4001 JUMP JUMPDEST POP PUSH32 0x8C0400CFE2D1199B1A725C78960BCC2A344D869B80590D0F2BD005DB15A572CE DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1752 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3F1A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0x1767 PUSH2 0x24B9 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x5DB758E995A17EC1AD84BDEF7E8C3293A0BD6179BCCE400DFF5D4C3D87DB726B SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0x17E8 PUSH2 0x24B9 JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH2 0xFFFF DUP1 DUP5 AND SWAP3 PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV AND SWAP1 PUSH32 0xB17C58D5977290696B6EEA77C81C725F3DC83E426252BD9ECE6287C1B8D0E968 SWAP1 PUSH1 0x0 SWAP1 LOG3 PUSH1 0xB DUP1 SLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH32 0xFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x188A PUSH2 0x24B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xCBED8B9C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 AND SWAP1 PUSH4 0xCBED8B9C SWAP1 PUSH2 0x1904 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x40FD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x191E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1932 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1945 PUSH2 0x24B9 JUMP JUMPDEST PUSH2 0x194D PUSH2 0x2B63 JUMP JUMPDEST DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x195D SWAP3 SWAP2 SWAP1 PUSH2 0x3DD9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 PUSH2 0xFFFF DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE SWAP2 SWAP1 SWAP2 KECCAK256 SWAP1 SWAP2 PUSH2 0x1986 SWAP2 SWAP1 PUSH2 0x412B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ PUSH2 0x1A01 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E476F7665726E616E63654578656375746F723A3A726574 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x72794D6573736167653A206E6F74206120747275737465642072656D6F746500 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH2 0x1A0F DUP7 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0x2BBC JUMP JUMPDEST PUSH2 0x1384 PUSH1 0x1 PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH2 0x1A21 PUSH2 0x24B9 JUMP JUMPDEST PUSH2 0xFFFF DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP2 MLOAD SWAP3 DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE PUSH32 0x9D5C7C0B934DA8FEFA9C7760C98383778A12DFBFC0C3B3106518F43FB9508AC0 SWAP1 PUSH1 0x60 ADD PUSH2 0x1752 JUMP JUMPDEST PUSH2 0x1A8B PUSH2 0x24B9 JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x1AA9 DUP3 DUP5 DUP4 PUSH2 0x41A1 JUMP JUMPDEST POP PUSH32 0xFA41487AD5D6728F0B19276FA1EDDC16558578F5109FC39D2DC33C3230470DAB DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1752 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3F1A JUMP JUMPDEST PUSH2 0x1AE5 PUSH2 0x24B9 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1AF3 PUSH1 0x2 PUSH1 0x1 PUSH2 0x429D JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0xFF AND DUP3 MLOAD EQ PUSH2 0x1BBA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x6A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E476F7665726E616E63654578656375746F723A3A616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B733A6E756D626572206F662074696D656C6F636B73207368 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6F756C64206D6174636820746865206E756D626572206F6620676F7665726E61 PUSH1 0x84 DUP3 ADD MSTORE PUSH32 0x6E636520726F7574657300000000000000000000000000000000000000000000 PUSH1 0xA4 DUP3 ADD MSTORE PUSH1 0xC4 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 PUSH1 0xFF AND DUP2 PUSH1 0xFF AND LT ISZERO PUSH2 0x1CEF JUMPI PUSH2 0x1BF0 DUP4 DUP3 PUSH1 0xFF AND DUP2 MLOAD DUP2 LT PUSH2 0x1BE3 JUMPI PUSH2 0x1BE3 PUSH2 0x3DE9 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x29EE JUMP JUMPDEST DUP3 DUP2 PUSH1 0xFF AND DUP2 MLOAD DUP2 LT PUSH2 0x1C05 JUMPI PUSH2 0x1C05 PUSH2 0x3DE9 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0xFF DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xE DUP5 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD SWAP1 MLOAD SWAP2 DUP3 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 DUP4 AND SWAP4 SWAP3 AND SWAP2 PUSH32 0xFC45AE51AC4893A3F843D030FBFD4037C0C196109C9E667645B8F144C83C16EA SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP3 DUP2 PUSH1 0xFF AND DUP2 MLOAD DUP2 LT PUSH2 0x1C86 JUMPI PUSH2 0x1C86 PUSH2 0x3DE9 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0xFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x1 ADD PUSH2 0x1BBD JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x1CFC PUSH2 0x24B9 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x1D85 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH2 0x1D8E DUP2 PUSH2 0x2E0A JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x1D99 PUSH2 0x24B9 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1DA7 PUSH1 0x2 PUSH1 0x1 PUSH2 0x429D JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0xFF AND DUP3 PUSH1 0xFF AND LT PUSH2 0x1E4A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x4B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E476F7665726E616E63654578656375746F723A3A736574 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B50656E64696E6741646D696E3A20696E76616C6964207072 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6F706F73616C2074797065000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH1 0xFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD SWAP1 MLOAD PUSH32 0x4DD18BF500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x4DD18BF5 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1EC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1EDC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND DUP2 MSTORE PUSH1 0xFF DUP7 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x6AC0B2C896B49975F12891F83C573BDF05490FE6B707CBAA2BA84C36094CBAEC SWAP4 POP ADD SWAP1 POP PUSH2 0x1752 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xF5ECBDBC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH2 0xFFFF DUP1 DUP7 AND PUSH1 0x4 DUP4 ADD MSTORE DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE ADDRESS PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 SWAP1 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0xF5ECBDBC SWAP1 PUSH1 0x84 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1FD5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1FFD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x4306 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x200E PUSH2 0x2B63 JUMP JUMPDEST PUSH1 0x1 PUSH2 0x2019 DUP3 PUSH2 0xE40 JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x202A JUMPI PUSH2 0x202A PUSH2 0x3920 JUMP JUMPDEST EQ PUSH2 0x20C3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x53 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E476F7665726E616E63654578656375746F723A3A657865 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x637574653A2070726F706F73616C2063616E206F6E6C79206265206578656375 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x7465642069662069742069732071756575656400000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x6 DUP2 ADD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND PUSH2 0x100 OR SWAP1 DUP2 SWAP1 SSTORE PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND DUP5 MSTORE PUSH1 0xE SWAP1 SWAP3 MSTORE DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x1 DUP4 ADD SLOAD PUSH1 0x2 DUP5 ADD SLOAD SWAP3 MLOAD SWAP4 SWAP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP4 SWAP1 SWAP3 SWAP2 DUP7 SWAP2 PUSH32 0x712AE1383F79AC853F8D882153778E0260EF8F03B504E2866E0593E04D2B291F SWAP2 SWAP1 LOG2 PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2299 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x825F38F DUP7 PUSH1 0x2 ADD DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x21A4 JUMPI PUSH2 0x21A4 PUSH2 0x3DE9 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x3 DUP9 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 DUP6 SWAP1 DUP2 LT PUSH2 0x21DF JUMPI PUSH2 0x21DF PUSH2 0x3DE9 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP9 PUSH1 0x4 ADD DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x21FF JUMPI PUSH2 0x21FF PUSH2 0x3DE9 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP10 PUSH1 0x5 ADD DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x221E JUMPI PUSH2 0x221E PUSH2 0x3DE9 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP9 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2249 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3E95 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2268 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x2290 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x4306 JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x216B JUMP JUMPDEST POP POP POP PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE POP PUSH2 0x1D8E SWAP1 POP PUSH1 0x1 PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH1 0xB SLOAD PUSH2 0xFFFF DUP6 DUP2 AND PUSH21 0x10000000000000000000000000000000000000000 SWAP1 SWAP3 DIV AND EQ PUSH2 0x237B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x48 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E476F7665726E616E63654578656375746F723A3A5F626C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F636B696E674C7A526563656976653A20696E76616C696420736F7572636520 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x636861696E206964000000000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0xA53 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP3 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH1 0x0 SWAP1 ADDRESS SWAP1 PUSH4 0x66AD5C8A SWAP1 PUSH2 0x23A4 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x24 ADD PUSH2 0x4343 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP2 POP PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x2406 PUSH2 0x7530 GAS PUSH2 0x23FC SWAP2 SWAP1 PUSH2 0x3F67 JUMP JUMPDEST ADDRESS SWAP1 PUSH1 0x96 DUP7 PUSH2 0x2E81 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 PUSH2 0x24AF JUMPI PUSH2 0xFFFF DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SWAP1 MLOAD DUP6 SWAP2 SWAP1 PUSH2 0x2434 SWAP1 DUP11 SWAP1 PUSH2 0x4382 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 PUSH8 0xFFFFFFFFFFFFFFFF DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP2 MSTORE KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x2468 SWAP1 DUP9 SWAP1 PUSH2 0x4382 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP9 PUSH2 0xFFFF AND PUSH32 0x41D73CE7BE31A588D59FE9013CDCFE583BC0AAB25093D042B64CADE0DF730656 DUP9 DUP5 PUSH1 0x40 MLOAD PUSH2 0x24A6 SWAP3 SWAP2 SWAP1 PUSH2 0x439E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0xEE7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH2 0x2528 PUSH2 0x2F0C JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH2 0x2587 PUSH2 0x2F5E JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x259E SWAP2 SWAP1 PUSH2 0x43C1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP7 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x25BE SWAP2 SWAP1 PUSH2 0x4592 JUMP JUMPDEST PUSH1 0x0 DUP12 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP5 SWAP10 POP SWAP3 SWAP8 POP SWAP1 SWAP6 POP SWAP4 POP SWAP2 POP ISZERO PUSH2 0x2673 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x46 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E476F7665726E616E63654578656375746F723A3A5F6E6F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E626C6F636B696E674C7A526563656976653A206475706C6963617465207072 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6F706F73616C0000000000000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0xA53 JUMP JUMPDEST DUP4 MLOAD DUP6 MLOAD EQ DUP1 ISZERO PUSH2 0x2685 JUMPI POP DUP3 MLOAD DUP6 MLOAD EQ JUMPDEST DUP1 ISZERO PUSH2 0x2692 JUMPI POP DUP2 MLOAD DUP6 MLOAD EQ JUMPDEST PUSH2 0x272A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E476F7665726E616E63654578656375746F723A3A5F6E6F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E626C6F636B696E674C7A526563656976653A2070726F706F73616C2066756E PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6374696F6E20696E666F726D6174696F6E206172697479206D69736D61746368 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH2 0x2736 PUSH1 0x2 PUSH1 0x1 PUSH2 0x429D JUMP JUMPDEST PUSH1 0xFF AND DUP2 PUSH1 0xFF AND LT PUSH2 0x27D6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x49 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E476F7665726E616E63654578656375746F723A3A5F6E6F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E626C6F636B696E674C7A526563656976653A20696E76616C69642070726F70 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6F73616C20747970650000000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH2 0x27E0 DUP6 MLOAD PUSH2 0x2FB1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x120 DUP2 ADD DUP3 MSTORE DUP8 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 ADD DUP3 DUP2 MSTORE DUP4 DUP6 ADD DUP11 DUP2 MSTORE PUSH1 0x60 DUP6 ADD DUP11 SWAP1 MSTORE PUSH1 0x80 DUP6 ADD DUP10 SWAP1 MSTORE PUSH1 0xA0 DUP6 ADD DUP9 SWAP1 MSTORE PUSH1 0xC0 DUP6 ADD DUP5 SWAP1 MSTORE PUSH1 0xE0 DUP6 ADD DUP5 SWAP1 MSTORE PUSH1 0xFF DUP8 AND PUSH2 0x100 DUP7 ADD MSTORE DUP12 DUP5 MSTORE PUSH1 0xD DUP4 MSTORE SWAP5 SWAP1 SWAP3 KECCAK256 DUP4 MLOAD DUP2 SSTORE SWAP2 MLOAD PUSH1 0x1 DUP4 ADD SSTORE SWAP3 MLOAD DUP1 MLOAD SWAP3 SWAP4 DUP5 SWAP4 PUSH2 0x2859 SWAP3 PUSH1 0x2 DUP6 ADD SWAP3 ADD SWAP1 PUSH2 0x3571 JUMP JUMPDEST POP PUSH1 0x60 DUP3 ADD MLOAD DUP1 MLOAD PUSH2 0x2875 SWAP2 PUSH1 0x3 DUP5 ADD SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x35FB JUMP JUMPDEST POP PUSH1 0x80 DUP3 ADD MLOAD DUP1 MLOAD PUSH2 0x2891 SWAP2 PUSH1 0x4 DUP5 ADD SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3636 JUMP JUMPDEST POP PUSH1 0xA0 DUP3 ADD MLOAD DUP1 MLOAD PUSH2 0x28AD SWAP2 PUSH1 0x5 DUP5 ADD SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3688 JUMP JUMPDEST POP PUSH1 0xC0 DUP3 ADD MLOAD PUSH1 0x6 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH1 0xE0 DUP5 ADD MLOAD PUSH2 0x100 SWAP5 DUP6 ADD MLOAD PUSH1 0xFF AND PUSH3 0x10000 MUL PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF SWAP2 ISZERO ISZERO SWAP1 SWAP6 MUL PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF SWAP5 ISZERO ISZERO SWAP5 SWAP1 SWAP5 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP3 SWAP1 SWAP3 OR SWAP2 SWAP1 SWAP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0xC DUP8 SWAP1 SSTORE DUP1 MLOAD PUSH1 0x40 MLOAD PUSH32 0xC37D19C9A6A9A568B5071658F9B5082FF8F142DF3CF090385C5621AB11938065 SWAP1 PUSH2 0x2992 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH2 0x470B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH2 0x29A3 DUP8 PUSH2 0x3041 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x29B9 PUSH2 0x2F5E JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x2555 CALLER SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x1D8E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8579BEFE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x60 DUP2 PUSH2 0x2A49 DUP2 PUSH1 0x1F PUSH2 0x47D5 JUMP JUMPDEST LT ISZERO PUSH2 0x2A97 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x736C6963655F6F766572666C6F77000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH2 0x2AA1 DUP3 DUP5 PUSH2 0x47D5 JUMP JUMPDEST DUP5 MLOAD LT ISZERO PUSH2 0x2AF1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x736C6963655F6F75744F66426F756E6473000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH1 0x60 DUP3 ISZERO DUP1 ISZERO PUSH2 0x2B10 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x0 DUP3 MSTORE PUSH1 0x20 DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x2B5A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F DUP5 AND DUP1 ISZERO PUSH1 0x20 MUL DUP2 DUP5 ADD ADD DUP6 DUP2 ADD DUP8 DUP4 ISZERO PUSH1 0x20 MUL DUP5 DUP12 ADD ADD ADD JUMPDEST DUP2 DUP4 LT ISZERO PUSH2 0x2B49 JUMPI DUP1 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x2B31 JUMP JUMPDEST POP POP DUP6 DUP5 MSTORE PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x40 MSTORE POP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SLOAD SUB PUSH2 0x2BB5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5265656E7472616E637947756172643A207265656E7472616E742063616C6C00 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x2BDF SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0x3DD9 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD SWAP1 KECCAK256 PUSH8 0xFFFFFFFFFFFFFFFF DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP3 MSTORE SWAP1 KECCAK256 SLOAD SWAP1 POP DUP1 PUSH2 0x2C7A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A206E6F2073746F726564206D657373 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6167650000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA53 JUMP JUMPDEST DUP1 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x2C8B SWAP3 SWAP2 SWAP1 PUSH2 0x3DD9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ PUSH2 0x2D06 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A20696E76616C6964207061796C6F61 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6400000000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x2D29 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH2 0x3DD9 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD DUP2 KECCAK256 PUSH8 0xFFFFFFFFFFFFFFFF DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP1 DUP5 MSTORE DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0x1F DUP9 ADD DUP3 SWAP1 DIV DUP3 MUL DUP4 ADD DUP3 ADD SWAP1 MSTORE DUP7 DUP3 MSTORE PUSH2 0x2DC2 SWAP2 DUP10 SWAP2 DUP10 SWAP1 DUP10 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP11 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP9 DUP2 MSTORE DUP11 SWAP4 POP SWAP2 POP DUP9 SWAP1 DUP9 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x257F SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0xC264D91F3ADC5588250E1551F547752CA0CFA8F6B530D243B9F9F4CAB10EA8E5 DUP8 DUP8 DUP8 DUP8 DUP6 PUSH1 0x40 MLOAD PUSH2 0x2DF9 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x47E8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP7 PUSH2 0xFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2EA7 JUMPI PUSH2 0x2EA7 PUSH2 0x3990 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x2ED1 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP1 DUP8 MLOAD PUSH1 0x20 DUP10 ADD PUSH1 0x0 DUP14 DUP14 CALL SWAP2 POP RETURNDATASIZE SWAP3 POP DUP7 DUP4 GT ISZERO PUSH2 0x2EF3 JUMPI DUP7 SWAP3 POP JUMPDEST DUP3 DUP2 MSTORE DUP3 PUSH1 0x0 PUSH1 0x20 DUP4 ADD RETURNDATACOPY SWAP1 SWAP9 SWAP1 SWAP8 POP SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0xFF AND PUSH2 0xEE7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061757361626C653A206E6F7420706175736564000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xEE7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061757361626C653A2070617573656400000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0xA SLOAD TIMESTAMP SWAP2 SWAP1 PUSH3 0x15180 SWAP1 PUSH2 0x2FC9 SWAP1 DUP5 PUSH2 0x3F67 JUMP JUMPDEST GT ISZERO PUSH2 0x2FDB JUMPI POP PUSH1 0xA DUP2 SWAP1 SSTORE DUP2 PUSH2 0x2FE8 JUMP JUMPDEST PUSH2 0x2FE5 DUP4 DUP3 PUSH2 0x47D5 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x8 SLOAD DUP2 GT ISZERO PUSH2 0x303A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4461696C79205472616E73616374696F6E204C696D6974204578636565646564 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH1 0x9 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x6 DUP2 ADD SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND DUP5 MSTORE PUSH1 0xE DUP4 MSTORE DUP2 DUP5 KECCAK256 SLOAD DUP3 MLOAD PUSH32 0x6A42B8F800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP3 MLOAD SWAP2 SWAP5 SWAP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP3 PUSH4 0x6A42B8F8 SWAP3 PUSH1 0x4 DUP1 DUP4 ADD SWAP4 SWAP3 DUP3 SWAP1 SUB ADD DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x30D3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x30F7 SWAP2 SWAP1 PUSH2 0x4824 JUMP JUMPDEST PUSH2 0x3101 SWAP1 TIMESTAMP PUSH2 0x47D5 JUMP JUMPDEST PUSH1 0x1 DUP1 DUP5 ADD DUP3 SWAP1 SSTORE PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x6 DUP5 ADD SLOAD PUSH1 0x2 DUP6 ADD SLOAD SWAP2 MLOAD SWAP3 SWAP4 POP PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND SWAP2 DUP6 SWAP1 PUSH32 0x9A2E42FD6722813D69113E7D0079D3D940171428DF7373DF9C7F7617CFDA2892 SWAP1 PUSH2 0x316F SWAP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1384 JUMPI PUSH2 0x3337 DUP6 PUSH1 0x2 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x319A JUMPI PUSH2 0x319A PUSH2 0x3DE9 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x3 DUP8 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 DUP5 SWAP1 DUP2 LT PUSH2 0x31D5 JUMPI PUSH2 0x31D5 PUSH2 0x3DE9 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP8 PUSH1 0x4 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x31F5 JUMPI PUSH2 0x31F5 PUSH2 0x3DE9 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP1 SLOAD PUSH2 0x320A SWAP1 PUSH2 0x3D8C JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3236 SWAP1 PUSH2 0x3D8C JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3283 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3258 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3283 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3266 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP9 PUSH1 0x5 ADD DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x329D JUMPI PUSH2 0x329D PUSH2 0x3DE9 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP1 SLOAD PUSH2 0x32B2 SWAP1 PUSH2 0x3D8C JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x32DE SWAP1 PUSH2 0x3D8C JUMP JUMPDEST DUP1 ISZERO PUSH2 0x332B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3300 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x332B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x330E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP9 DUP9 PUSH2 0x333F JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x317A JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SLOAD SWAP2 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 PUSH4 0xF2B06537 SWAP2 PUSH2 0x338B SWAP2 DUP11 SWAP2 DUP11 SWAP2 DUP11 SWAP2 DUP11 SWAP2 DUP11 SWAP2 ADD PUSH2 0x483D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x33BF SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x33DC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3400 SWAP2 SWAP1 PUSH2 0x4884 JUMP JUMPDEST ISZERO PUSH2 0x34BF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x63 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E476F7665726E616E63654578656375746F723A3A717565 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x75654F72526576657274496E7465726E616C3A206964656E746963616C207072 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6F706F73616C20616374696F6E20616C72656164792071756575656420617420 PUSH1 0x84 DUP3 ADD MSTORE PUSH32 0x6574610000000000000000000000000000000000000000000000000000000000 PUSH1 0xA4 DUP3 ADD MSTORE PUSH1 0xC4 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD SWAP1 MLOAD PUSH32 0x3A66F90100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP1 PUSH4 0x3A66F901 SWAP1 PUSH2 0x352E SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x483D JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x354D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC1E SWAP2 SWAP1 PUSH2 0x4824 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x35EB JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x35EB JUMPI DUP3 MLOAD DUP3 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND OR DUP3 SSTORE PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3591 JUMP JUMPDEST POP PUSH2 0x35F7 SWAP3 SWAP2 POP PUSH2 0x36DA JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x35EB JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x35EB JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x361B JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x367C JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x367C JUMPI DUP3 MLOAD DUP3 SWAP1 PUSH2 0x366C SWAP1 DUP3 PUSH2 0x4001 JUMP JUMPDEST POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x3656 JUMP JUMPDEST POP PUSH2 0x35F7 SWAP3 SWAP2 POP PUSH2 0x36EF JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x36CE JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x36CE JUMPI DUP3 MLOAD DUP3 SWAP1 PUSH2 0x36BE SWAP1 DUP3 PUSH2 0x4001 JUMP JUMPDEST POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x36A8 JUMP JUMPDEST POP PUSH2 0x35F7 SWAP3 SWAP2 POP PUSH2 0x370C JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x35F7 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x36DB JUMP JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x35F7 JUMPI PUSH1 0x0 PUSH2 0x3703 DUP3 DUP3 PUSH2 0x3729 JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x36EF JUMP JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x35F7 JUMPI PUSH1 0x0 PUSH2 0x3720 DUP3 DUP3 PUSH2 0x3729 JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x370C JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x3735 SWAP1 PUSH2 0x3D8C JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x3745 JUMPI POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1D8E SWAP2 SWAP1 PUSH2 0x36DA JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x3775 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x378C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x37A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x37BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x3775 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x37F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x37FD DUP8 PUSH2 0x3763 JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x381A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3826 DUP11 DUP4 DUP12 ADD PUSH2 0x377A JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP DUP6 SWAP2 POP PUSH2 0x383A PUSH1 0x40 DUP11 ADD PUSH2 0x37C3 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x3850 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x385D DUP10 DUP3 DUP11 ADD PUSH2 0x377A JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 POP SWAP3 SWAP6 SWAP4 SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3881 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x389A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE39 DUP3 PUSH2 0x3763 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x38B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x38BF DUP4 PUSH2 0x3763 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x38E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x38EB DUP5 PUSH2 0x3763 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3907 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3913 DUP7 DUP3 DUP8 ADD PUSH2 0x377A JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x3 DUP4 LT PUSH2 0x398A JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x39E8 JUMPI PUSH2 0x39E8 PUSH2 0x3990 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x3A0A JUMPI PUSH2 0x3A0A PUSH2 0x3990 JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3A2D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3A36 DUP5 PUSH2 0x3763 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3A52 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 ADD PUSH1 0x1F DUP2 ADD DUP7 SGT PUSH2 0x3A63 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x3A76 PUSH2 0x3A71 DUP3 PUSH2 0x39F0 JUMP JUMPDEST PUSH2 0x39BF JUMP JUMPDEST DUP2 DUP2 MSTORE DUP8 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x3A8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP4 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP PUSH2 0x3AB0 PUSH1 0x40 DUP6 ADD PUSH2 0x37C3 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3AD4 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x3ABC JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x3AF5 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x3AB9 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xE39 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x3ADD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x1D8E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3B50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xE39 DUP2 PUSH2 0x3B1C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3B6E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3B77 DUP4 PUSH2 0x3763 JUMP JUMPDEST SWAP2 POP PUSH2 0x3B85 PUSH1 0x20 DUP5 ADD PUSH2 0x3763 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x3BA6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3BAF DUP7 PUSH2 0x3763 JUMP JUMPDEST SWAP5 POP PUSH2 0x3BBD PUSH1 0x20 DUP8 ADD PUSH2 0x3763 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3BE0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3BEC DUP9 DUP3 DUP10 ADD PUSH2 0x377A JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3C12 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3C1B DUP5 PUSH2 0x3763 JUMP JUMPDEST SWAP3 POP PUSH2 0x3C29 PUSH1 0x20 DUP6 ADD PUSH2 0x3763 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x3C53 JUMPI PUSH2 0x3C53 PUSH2 0x3990 JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3C70 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3C87 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x3C98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x3CA6 PUSH2 0x3A71 DUP3 PUSH2 0x3C39 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x5 SWAP2 SWAP1 SWAP2 SHL DUP3 ADD DUP4 ADD SWAP1 DUP4 DUP2 ADD SWAP1 DUP8 DUP4 GT ISZERO PUSH2 0x3CC5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 DUP5 ADD SWAP3 JUMPDEST DUP3 DUP5 LT ISZERO PUSH2 0x3CEC JUMPI DUP4 CALLDATALOAD PUSH2 0x3CDD DUP2 PUSH2 0x3B1C JUMP JUMPDEST DUP3 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP1 DUP5 ADD SWAP1 PUSH2 0x3CCA JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x1D8E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3D19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x3D24 DUP2 PUSH2 0x3B1C JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x3D34 DUP2 PUSH2 0x3CF7 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x3D55 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3D5E DUP6 PUSH2 0x3763 JUMP JUMPDEST SWAP4 POP PUSH2 0x3D6C PUSH1 0x20 DUP7 ADD PUSH2 0x3763 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x3D7C DUP2 PUSH2 0x3B1C JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x3DA0 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xED1 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH2 0x3E25 DUP2 PUSH2 0x3D8C JUMP JUMPDEST DUP1 DUP6 MSTORE PUSH1 0x20 PUSH1 0x1 DUP4 DUP2 AND DUP1 ISZERO PUSH2 0x3E42 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x3E5C JUMPI PUSH2 0x3E8A JUMP JUMPDEST PUSH1 0xFF NOT DUP6 AND DUP4 DUP10 ADD MSTORE DUP3 DUP5 ISZERO ISZERO PUSH1 0x5 SHL DUP10 ADD ADD SWAP6 POP PUSH2 0x3E8A JUMP JUMPDEST DUP7 PUSH1 0x0 MSTORE DUP3 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x3E82 JUMPI DUP2 SLOAD DUP11 DUP3 ADD DUP7 ADD MSTORE SWAP1 DUP4 ADD SWAP1 DUP5 ADD PUSH2 0x3E67 JUMP JUMPDEST DUP10 ADD DUP5 ADD SWAP7 POP POP JUMPDEST POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 AND DUP2 MSTORE DUP5 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x3ECA PUSH1 0xA0 DUP4 ADD DUP7 PUSH2 0x3E18 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x3EDC DUP2 DUP7 PUSH2 0x3E18 JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x80 DUP4 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 ADD ADD MSTORE PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP5 ADD AND DUP5 ADD ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1FFD PUSH1 0x40 DUP4 ADD DUP5 DUP7 PUSH2 0x3EEF JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x3F7A JUMPI PUSH2 0x3F7A PUSH2 0x3F38 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP5 DUP3 CALLDATACOPY PUSH1 0x60 SWAP2 SWAP1 SWAP2 SHL PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 AND SWAP2 ADD SWAP1 DUP2 MSTORE PUSH1 0x14 ADD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1CEF JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x3FE2 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1384 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x3FEE JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x401B JUMPI PUSH2 0x401B PUSH2 0x3990 JUMP JUMPDEST PUSH2 0x402F DUP2 PUSH2 0x4029 DUP5 SLOAD PUSH2 0x3D8C JUMP JUMPDEST DUP5 PUSH2 0x3FB9 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x4082 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x404C JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x1384 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x40B1 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x4092 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x40ED JUMPI DUP8 DUP6 ADD MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP1 DUP9 AND DUP4 MSTORE DUP1 DUP8 AND PUSH1 0x20 DUP5 ADD MSTORE POP DUP5 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x3CEC PUSH1 0x80 DUP4 ADD DUP5 DUP7 PUSH2 0x3EEF JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 SLOAD PUSH2 0x4139 DUP2 PUSH2 0x3D8C JUMP JUMPDEST PUSH1 0x1 DUP3 DUP2 AND DUP1 ISZERO PUSH2 0x4151 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x4166 JUMPI PUSH2 0x4195 JUMP JUMPDEST PUSH1 0xFF NOT DUP5 AND DUP8 MSTORE DUP3 ISZERO ISZERO DUP4 MUL DUP8 ADD SWAP5 POP PUSH2 0x4195 JUMP JUMPDEST DUP8 PUSH1 0x0 MSTORE PUSH1 0x20 DUP1 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x418C JUMPI DUP2 SLOAD DUP11 DUP3 ADD MSTORE SWAP1 DUP5 ADD SWAP1 DUP3 ADD PUSH2 0x4173 JUMP JUMPDEST POP POP POP DUP3 DUP8 ADD SWAP5 POP JUMPDEST POP SWAP3 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP4 GT ISZERO PUSH2 0x41B9 JUMPI PUSH2 0x41B9 PUSH2 0x3990 JUMP JUMPDEST PUSH2 0x41CD DUP4 PUSH2 0x41C7 DUP4 SLOAD PUSH2 0x3D8C JUMP JUMPDEST DUP4 PUSH2 0x3FB9 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP5 GT PUSH1 0x1 DUP2 EQ PUSH2 0x421F JUMPI PUSH1 0x0 DUP6 ISZERO PUSH2 0x41E9 JUMPI POP DUP4 DUP3 ADD CALLDATALOAD JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP8 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP7 SWAP1 SHL OR DUP4 SSTORE PUSH2 0xCCF JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP1 DUP4 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x4250 JUMPI DUP7 DUP6 ADD CALLDATALOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x4230 JUMP JUMPDEST POP DUP7 DUP3 LT ISZERO PUSH2 0x428B JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0xF8 DUP9 PUSH1 0x3 SHL AND SHR NOT DUP5 DUP8 ADD CALLDATALOAD AND DUP2 SSTORE JUMPDEST POP POP PUSH1 0x1 DUP6 PUSH1 0x1 SHL ADD DUP4 SSTORE POP POP POP POP POP JUMP JUMPDEST PUSH1 0xFF DUP2 DUP2 AND DUP4 DUP3 AND ADD SWAP1 DUP2 GT ISZERO PUSH2 0x3F7A JUMPI PUSH2 0x3F7A PUSH2 0x3F38 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x42C4 PUSH2 0x3A71 DUP5 PUSH2 0x39F0 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE DUP4 DUP4 DUP4 ADD GT ISZERO PUSH2 0x42D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE39 DUP4 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x3AB9 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x42F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE39 DUP4 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH2 0x42B6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4318 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x432F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x433B DUP5 DUP3 DUP6 ADD PUSH2 0x42E6 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP6 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x4360 PUSH1 0x80 DUP4 ADD DUP7 PUSH2 0x3ADD JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x3CEC DUP2 DUP6 PUSH2 0x3ADD JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x4394 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x3AB9 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x433B PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x3ADD JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x43D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x43EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43F7 DUP6 DUP3 DUP7 ADD PUSH2 0x42E6 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4419 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 PUSH2 0x4429 PUSH2 0x3A71 DUP4 PUSH2 0x3C39 JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP5 PUSH1 0x5 SHL DUP8 ADD ADD SWAP4 POP DUP7 DUP5 GT ISZERO PUSH2 0x444B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x4467 JUMPI DUP1 MLOAD DUP4 MSTORE SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x4450 JUMP JUMPDEST POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4483 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 PUSH2 0x4493 PUSH2 0x3A71 DUP4 PUSH2 0x3C39 JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 SWAP1 SWAP3 SHL DUP5 ADD DUP2 ADD SWAP2 DUP2 DUP2 ADD SWAP1 DUP7 DUP5 GT ISZERO PUSH2 0x44B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x4467 JUMPI DUP1 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x44D6 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST DUP8 ADD PUSH1 0x3F DUP2 ADD DUP10 SGT PUSH2 0x44E8 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x44F9 DUP10 DUP7 DUP4 ADD MLOAD PUSH1 0x40 DUP5 ADD PUSH2 0x42B6 JUMP JUMPDEST DUP5 MSTORE POP SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x44B6 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4518 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 PUSH2 0x4528 PUSH2 0x3A71 DUP4 PUSH2 0x3C39 JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 SWAP1 SWAP3 SHL DUP5 ADD DUP2 ADD SWAP2 DUP2 DUP2 ADD SWAP1 DUP7 DUP5 GT ISZERO PUSH2 0x4547 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x4467 JUMPI DUP1 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x456B JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x4579 DUP10 DUP7 DUP4 DUP12 ADD ADD PUSH2 0x42E6 JUMP JUMPDEST DUP5 MSTORE POP SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x454B JUMP JUMPDEST DUP1 MLOAD PUSH2 0x3775 DUP2 PUSH2 0x3CF7 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x45AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x45C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP9 ADD SWAP2 POP DUP9 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x45D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 PUSH2 0x45E6 PUSH2 0x3A71 DUP4 PUSH2 0x3C39 JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 SWAP1 SWAP3 SHL DUP5 ADD DUP2 ADD SWAP2 DUP2 DUP2 ADD SWAP1 DUP13 DUP5 GT ISZERO PUSH2 0x4605 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP5 DUP3 ADD SWAP5 JUMPDEST DUP4 DUP7 LT ISZERO PUSH2 0x462C JUMPI DUP6 MLOAD PUSH2 0x461D DUP2 PUSH2 0x3B1C JUMP JUMPDEST DUP3 MSTORE SWAP5 DUP3 ADD SWAP5 SWAP1 DUP3 ADD SWAP1 PUSH2 0x460A JUMP JUMPDEST SWAP2 DUP12 ADD MLOAD SWAP2 SWAP10 POP SWAP1 SWAP4 POP POP POP DUP1 DUP3 GT ISZERO PUSH2 0x4645 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4651 DUP10 DUP4 DUP11 ADD PUSH2 0x4408 JUMP JUMPDEST SWAP6 POP PUSH1 0x40 DUP9 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x4667 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4673 DUP10 DUP4 DUP11 ADD PUSH2 0x4472 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x4689 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4696 DUP9 DUP3 DUP10 ADD PUSH2 0x4507 JUMP JUMPDEST SWAP3 POP POP PUSH2 0x46A5 PUSH1 0x80 DUP8 ADD PUSH2 0x4587 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MLOAD DUP1 DUP6 MSTORE PUSH1 0x20 DUP1 DUP7 ADD SWAP6 POP PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP5 ADD ADD PUSH1 0x20 DUP7 ADD PUSH1 0x0 JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x46FE JUMPI PUSH1 0x1F NOT DUP7 DUP5 SUB ADD DUP10 MSTORE PUSH2 0x46EC DUP4 DUP4 MLOAD PUSH2 0x3ADD JUMP JUMPDEST SWAP9 DUP5 ADD SWAP9 SWAP3 POP SWAP1 DUP4 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x46D0 JUMP JUMPDEST POP SWAP1 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xA0 DUP1 DUP3 MSTORE DUP7 MLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x20 SWAP1 PUSH1 0xC0 DUP5 ADD SWAP1 DUP3 DUP11 ADD DUP5 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x475A JUMPI DUP2 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x4728 JUMP JUMPDEST POP POP POP DUP4 DUP2 SUB DUP3 DUP6 ADD MSTORE DUP8 MLOAD DUP1 DUP3 MSTORE DUP9 DUP4 ADD SWAP2 DUP4 ADD SWAP1 PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x478F JUMPI DUP4 MLOAD DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x4773 JUMP JUMPDEST POP POP DUP5 DUP2 SUB PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0x47A3 DUP2 DUP10 PUSH2 0x46B1 JUMP JUMPDEST SWAP3 POP POP POP DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x47B9 DUP2 DUP7 PUSH2 0x46B1 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x47CB PUSH1 0x80 DUP4 ADD DUP5 PUSH1 0xFF AND SWAP1 MSTORE JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x3F7A JUMPI PUSH2 0x3F7A PUSH2 0x3F38 JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x4806 PUSH1 0x80 DUP4 ADD DUP7 DUP9 PUSH2 0x3EEF JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF SWAP5 SWAP1 SWAP5 AND PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4836 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 AND DUP2 MSTORE DUP5 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x4872 PUSH1 0xA0 DUP4 ADD DUP7 PUSH2 0x3ADD JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x3EDC DUP2 DUP7 PUSH2 0x3ADD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4896 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xE39 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x22 ADDRESS PUSH30 0x7E31580ECE44A0E9ADF66C14789502C9D5B0F18F4226ABAA5E33B1824164 PUSH20 0x6F6C634300081900330000000000000000000000 ","sourceMap":"1113:15302:52:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1256:825:18;;;;;;;;;;-1:-1:-1;1256:825:18;;;;;:::i;:::-;;:::i;:::-;;2800:45:52;;;;;;;;;;-1:-1:-1;2800:45:52;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2081:25:97;;;2137:2;2122:18;;2115:34;;;;2192:14;;2185:22;2165:18;;;2158:50;;;;2251:14;;2244:22;2239:2;2224:18;;2217:50;2316:4;2304:17;2298:3;2283:19;;2276:46;2068:3;2053:19;2800:45:52;;;;;;;;841:35:49;;;;;;;;;;;;;;;;;;;2479:25:97;;;2467:2;2452:18;841:35:49;2333:177:97;4791:121:18;;;;;;;;;;-1:-1:-1;4791:121:18;;;;;:::i;:::-;;:::i;6649:140::-;;;;;;;;;;-1:-1:-1;6649:140:18;;;;;:::i;:::-;;:::i;4918:127::-;;;;;;;;;;-1:-1:-1;4918:127:18;;;;;:::i;:::-;;:::i;6884:247::-;;;;;;;;;;-1:-1:-1;6884:247:18;;;;;:::i;:::-;;:::i;:::-;;;3612:14:97;;3605:22;3587:41;;3575:2;3560:18;6884:247:18;3447:187:97;10773:501:52;;;;;;;;;;-1:-1:-1;10773:501:52;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;810:53:18:-;;;;;;;;;;-1:-1:-1;810:53:18;;;;;:::i;:::-;;;;;;;;;;;;;;2196:65:49;;;;;;;;;;;;;:::i;8078:950:52:-;;;;;;;;;;-1:-1:-1;8078:950:52;;;;;:::i;:::-;;:::i;5051:176:18:-;;;;;;;;;;-1:-1:-1;5051:176:18;;;;;:::i;:::-;;:::i;2676:35:52:-;;;;;;;;;;;;;;;;2485:23;;;;;;;;;;-1:-1:-1;2485:23:52;;;;;;;;;;;4413:42:97;4401:55;;;4383:74;;4371:2;4356:18;2485:23:52;4237:226:97;2585:24:52;;;;;;;;;;-1:-1:-1;2585:24:52;;;;;;;;;;;;;;4642:6:97;4630:19;;;4612:38;;4600:2;4585:18;2585:24:52;4468:188:97;622:85:19;;;;;;;;;;-1:-1:-1;622:85:19;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1615:84:33;;;;;;;;;;-1:-1:-1;1685:7:33;;;;1615:84;;1912:380:19;;;;;;;;;;-1:-1:-1;1912:380:19;;;;;:::i;:::-;;:::i;988:41:49:-;;;;;;;;;;;;;;;;2367:47;;;;;;;;;682:51:18;;;;;;;;;;-1:-1:-1;682:51:18;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2021:61:49:-;;;;;;;;;;;;;:::i;1133:43::-;;;;;;;;;;;;;;;;5482:350:52;;;;;;;;;;-1:-1:-1;5482:350:52;;;;;:::i;:::-;;:::i;739:65:18:-;;;;;;;;;;-1:-1:-1;739:65:18;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;1201:85:32;;;;;;;;;;-1:-1:-1;1273:6:32;;;;1201:85;;1725:182:49;;;;;;;;;;-1:-1:-1;1725:182:49;;;;;:::i;:::-;;:::i;869:23:18:-;;;;;;;;;;-1:-1:-1;869:23:18;;;;;;;;3071:38:52;;;;;;;;;;-1:-1:-1;3071:38:52;;;;;:::i;:::-;;;;;;;;;;;;;;;;5864:326:18;;;;;;;;;;-1:-1:-1;5864:326:18;;;;;:::i;:::-;;:::i;5580:278::-;;;;;;;;;;-1:-1:-1;5580:278:18;;;;;:::i;:::-;;:::i;630:46::-;;;;;;;;;;;;;;;6196:133;;;;;;;;;;-1:-1:-1;6196:133:18;;;;;:::i;:::-;;:::i;568:55::-;;;;;;;;;;;;618:5;568:55;;5072:156:52;;;;;;;;;;-1:-1:-1;5072:156:52;;;;;:::i;:::-;;:::i;4545:240:18:-;;;;;;;;;;-1:-1:-1;4545:240:18;;;;;:::i;:::-;;:::i;10165:463:52:-;;;;;;:::i;:::-;;:::i;6335:255:18:-;;;;;;;;;;-1:-1:-1;6335:255:18;;;;;:::i;:::-;;:::i;5370:204::-;;;;;;;;;;-1:-1:-1;5370:204:18;;;;;:::i;:::-;;:::i;6094:576:52:-;;;;;;;;;;-1:-1:-1;6094:576:52;;;;;:::i;:::-;;:::i;2944:54::-;;;;;;;;;;-1:-1:-1;2944:54:52;;;;;:::i;:::-;;;;;;;;;;;;;;;;2074:198:32;;;;;;;;;;-1:-1:-1;2074:198:32;;;;;:::i;:::-;;:::i;9335:481:52:-;;;;;;;;;;-1:-1:-1;9335:481:52;;;;;:::i;:::-;;:::i;4239:247:18:-;;;;;;;;;;-1:-1:-1;4239:247:18;;;;;:::i;:::-;;:::i;6898:864:52:-;;;;;;;;;;-1:-1:-1;6898:864:52;;;;;:::i;:::-;;:::i;1256:825:18:-;734:10:39;1532::18;1508:35;;;1500:78;;;;-1:-1:-1;;;1500:78:18;;11763:2:97;1500:78:18;;;11745:21:97;11802:2;11782:18;;;11775:30;11841:32;11821:18;;;11814:60;11891:18;;1500:78:18;;;;;;;;;1618:32;;;1589:26;1618:32;;;:19;:32;;;;;1589:61;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1835:13;:20;1813:11;;:18;;:42;:70;;;;;1882:1;1859:13;:20;:24;1813:70;:124;;;;-1:-1:-1;1913:24:18;;;;;;1887:22;;;;1897:11;;;;1887:22;:::i;:::-;;;;;;;;:50;1813:124;1792:209;;;;-1:-1:-1;;;1792:209:18;;12840:2:97;1792:209:18;;;12822:21:97;12879:2;12859:18;;;12852:30;12918:34;12898:18;;;12891:62;12989:8;12969:18;;;12962:36;13015:19;;1792:209:18;12638:402:97;1792:209:18;2012:62;2031:11;2044;;2012:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2012:62:18;;;;;;;;;;;;;;;;;;;;;;2057:6;;-1:-1:-1;2012:62:18;-1:-1:-1;2065:8:18;;;;;;2012:62;;2065:8;;;;2012:62;;;;;;;;;-1:-1:-1;2012:18:18;;-1:-1:-1;;;2012:62:18:i;:::-;1425:656;1256:825;;;;;;:::o;4791:121::-;1094:13:32;:11;:13::i;:::-;4870:35:18::1;::::0;;;;4642:6:97;4630:19;;4870:35:18::1;::::0;::::1;4612:38:97::0;4870:10:18::1;:25;;::::0;::::1;::::0;4585:18:97;;4870:35:18::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4791:121:::0;:::o;6649:140::-;1094:13:32;:11;:13::i;:::-;6739:35:18::1;::::0;;::::1;;::::0;;;:22:::1;:35;::::0;;;;:43;6649:140::o;4918:127::-;1094:13:32;:11;:13::i;:::-;5000:38:18::1;::::0;;;;4642:6:97;4630:19;;5000:38:18::1;::::0;::::1;4612::97::0;5000:10:18::1;:28;;::::0;::::1;::::0;4585:18:97;;5000:38:18::1;4468:188:97::0;6884:247:18;7025:32;;;6980:4;7025:32;;;:19;:32;;;;;6996:61;;6980:4;;7025:32;6996:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7112:11;;7102:22;;;;;;;:::i;:::-;;;;;;;;7084:13;7074:24;;;;;;:50;7067:57;;;6884:247;;;;;;:::o;10773:501:52:-;10830:13;10883:22;;;:9;:22;;;;;10919:17;;;;;;10915:353;;;-1:-1:-1;10959:22:52;;10773:501;-1:-1:-1;;10773:501:52:o;10915:353::-;11002:17;;;;;;;;;10998:270;;;-1:-1:-1;11042:22:52;;10773:501;-1:-1:-1;;10773:501:52:o;10998:270::-;11085:19;;;;:6;:19;;;;;;;;11081:187;;;-1:-1:-1;11180:20:52;;10773:501;-1:-1:-1;;10773:501:52:o;11081:187::-;11238:19;;;;;;;;;;;;;;11081:187;10845:429;10773:501;;;:::o;2196:65:49:-;1094:13:32;:11;:13::i;:::-;2244:10:49::1;:8;:10::i;:::-;2196:65::o:0;8078:950:52:-;8177:20;8155:18;8161:11;8155:5;:18::i;:::-;:42;;;;;;;;:::i;:::-;;8134:168;;;;-1:-1:-1;;;8134:168:52;;13247:2:97;8134:168:52;;;13229:21:97;13286:2;13266:18;;;13259:30;13325:34;13305:18;;;13298:62;13396:34;13376:18;;;13369:62;13468:17;13447:19;;;13440:46;13503:19;;8134:168:52;13045:483:97;8134:168:52;8312:25;8340:22;;;:9;:22;;;;;8394:8;;;;8380:10;:22;8372:95;;;;-1:-1:-1;;;8372:95:52;;13735:2:97;8372:95:52;;;13717:21:97;13774:2;13754:18;;;13747:30;13813:34;13793:18;;;13786:62;13884:30;13864:18;;;13857:58;13932:19;;8372:95:52;13533:424:97;8372:95:52;8478:17;;;:24;;-1:-1:-1;;8478:24:52;8498:4;8478:24;;;;;;;8551:21;;;;8478:24;8551:21;8478:17;8533:40;;;:17;:40;;;;;;;8597:12;;;;8551:21;8636:16;;:23;8675:29;;8533:40;;;;;8597:12;;8692:11;;8675:29;;8478:17;8675:29;8720:9;8715:271;8735:6;8731:1;:10;8715:271;;;8762:8;:26;;;8806:8;:16;;8823:1;8806:19;;;;;;;;:::i;:::-;;;;;;;;;;;8843:15;;;:18;;8806:19;;;;;8859:1;;8843:18;;;;;;:::i;:::-;;;;;;;;;8879:8;:19;;8899:1;8879:22;;;;;;;;:::i;:::-;;;;;;;;8919:8;:18;;8938:1;8919:21;;;;;;;;:::i;:::-;;;;;;;;8958:3;8762:213;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8743:3;;;;;8715:271;;;-1:-1:-1;;;9002:19:52;;;;-1:-1:-1;;9002:6:52;:19;;;;;8995:26;;-1:-1:-1;;8995:26:52;;;8078:950::o;5051:176:18:-;1094:13:32;:11;:13::i;:::-;5165:55:18::1;::::0;;;;:29:::1;:10;:29;::::0;::::1;::::0;:55:::1;::::0;5195:11;;5208;;;;5165:55:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;1912:380:19::0;734:10:39;2162:4:19;2138:29;2130:80;;;;-1:-1:-1;;;2130:80:19;;16635:2:97;2130:80:19;;;16617:21:97;16674:2;16654:18;;;16647:30;16713:34;16693:18;;;16686:62;16784:8;16764:18;;;16757:36;16810:19;;2130:80:19;16433:402:97;2130:80:19;2220:65;2242:11;2255;;2220:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2220:65:19;;;;;;;;;;;;;;;;;;;;;;2268:6;;-1:-1:-1;2220:65:19;-1:-1:-1;2276:8:19;;;;;;2220:65;;2276:8;;;;2220:65;;;;;;;;;-1:-1:-1;2220:21:19;;-1:-1:-1;;;2220:65:19:i;:::-;1912:380;;;;;;:::o;682:51:18:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2021:61:49:-;1094:13:32;:11;:13::i;:::-;2067:8:49::1;:6;:8::i;5482:350:52:-:0;5578:8;;;;5564:10;:22;;:47;;-1:-1:-1;1273:6:32;;;;5590:10:52;:21;5564:47;5543:158;;;;;-1:-1:-1;;;5543:158:52;;17042:2:97;5543:158:52;;;17024:21:97;17061:18;;;17054:30;;;;17120:34;17100:18;;;17093:62;17191:34;17171:18;;;17164:62;17243:19;;5543:158:52;16840:428:97;5543:158:52;5711:33;5732:11;5711:20;:33::i;:::-;5771:8;;5759:34;;;;;;;5771:8;;5759:34;;5771:8;;5759:34;5803:8;:22;;;;;;;;;;;;;;;5482:350::o;1725:182:49:-;1094:13:32;:11;:13::i;:::-;1832:20:49::1;::::0;1808:53:::1;::::0;;17447:25:97;;;17503:2;17488:18;;17481:34;;;1808:53:49::1;::::0;17420:18:97;1808:53:49::1;;;;;;;1871:20;:29:::0;1725:182::o;5864:326:18:-;5987:35;;;5967:17;5987:35;;;:19;:35;;;;;5967:55;;5943:12;;5967:17;5987:35;5967:55;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6040:4;:11;6055:1;6040:16;6032:58;;;;-1:-1:-1;;;6032:58:18;;17728:2:97;6032:58:18;;;17710:21:97;17767:2;17747:18;;;17740:30;17806:31;17786:18;;;17779:59;17855:18;;6032:58:18;17526:353:97;6032:58:18;6107:31;6118:1;6135:2;6121:4;:11;:16;;;;:::i;:::-;6107:4;;:31;:10;:31::i;5580:278::-;1094:13:32;:11;:13::i;:::-;5751:14:18::1;;5775:4;5734:47;;;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;5734:47:18;;::::1;::::0;;;;;;5696:35:::1;::::0;::::1;;::::0;;;:19:::1;5734:47;5696:35:::0;;;:85:::1;::::0;:35;:85:::1;:::i;:::-;;5796:55;5820:14;5836;;5796:55;;;;;;;;:::i;:::-;;;;;;;;5580:278:::0;;;:::o;6196:133::-;1094:13:32;:11;:13::i;:::-;6265:8:18::1;:20:::0;;;::::1;;::::0;::::1;::::0;;::::1;::::0;;;6300:22:::1;::::0;4383:74:97;;;6300:22:18::1;::::0;4371:2:97;4356:18;6300:22:18::1;;;;;;;6196:133:::0;:::o;5072:156:52:-;1094:13:32;:11;:13::i;:::-;5163:10:52::1;::::0;5149:38:::1;::::0;::::1;::::0;;::::1;::::0;5163:10;;::::1;;::::0;5149:38:::1;::::0;;;::::1;5197:10;:24:::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;5072:156::o;4545:240:18:-;1094:13:32;:11;:13::i;:::-;4716:62:18::1;::::0;;;;:20:::1;:10;:20;::::0;::::1;::::0;:62:::1;::::0;4737:8;;4747;;4757:11;;4770:7;;;;4716:62:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4545:240:::0;;;;;:::o;10165:463:52:-;1094:13:32;:11;:13::i;:::-;2261:21:34::1;:19;:21::i;:::-;10448:11:52::2;;10438:22;;;;;;;:::i;:::-;;::::0;;;;;::::2;::::0;;10401:32:::2;::::0;::::2;;::::0;;;:19:::2;:32;::::0;;;;;10438:22;;10391:43:::2;::::0;10401:32;10391:43:::2;:::i;:::-;;;;;;;;:69;10370:179;;;::::0;-1:-1:-1;;;10370:179:52;;22459:2:97;10370:179:52::2;::::0;::::2;22441:21:97::0;22498:2;22478:18;;;22471:30;22537:34;22517:18;;;22510:62;22608:33;22588:18;;;22581:61;22659:19;;10370:179:52::2;22257:427:97::0;10370:179:52::2;10559:62;10578:11;10591;;10604:6;10612:8;;10559:18;:62::i;:::-;2303:20:34::1;1716:1:::0;2809:7;:22;2629:209;6335:255:18;1094:13:32;:11;:13::i;:::-;6470:28:18::1;::::0;;::::1;;::::0;;;:15:::1;:28;::::0;;;;;;;:41;;::::1;::::0;;;;;;;;;;:51;;;6536:47;;22912:34:97;;;22962:18;;22955:43;;;;23014:18;;;23007:34;;;6536:47:18::1;::::0;22875:2:97;22860:18;6536:47:18::1;22689:358:97::0;5370:204:18;1094:13:32;:11;:13::i;:::-;5470:35:18::1;::::0;::::1;;::::0;;;:19:::1;:35;::::0;;;;:43:::1;5508:5:::0;;5470:35;:43:::1;:::i;:::-;;5528:39;5545:14;5561:5;;5528:39;;;;;;;;:::i;6094:576:52:-:0;1094:13:32;:11;:13::i;:::-;6176:12:52::1;6191:33;6197:22;6223:1;6191:33;:::i;:::-;6176:48;;6276:6;6255:27;;:10;:17;:27;6234:180;;;::::0;-1:-1:-1;;;6234:180:52;;24734:2:97;6234:180:52::1;::::0;::::1;24716:21:97::0;24773:3;24753:18;;;24746:31;24813:34;24793:18;;;24786:62;24884:34;24864:18;;;24857:62;24956:34;24935:19;;;24928:63;25028:12;25007:19;;;25000:41;25058:19;;6234:180:52::1;24532:551:97::0;6234:180:52::1;6429:7;6424:240;6442:6;6438:10;;:1;:10;;;6424:240;;;6469:44;6498:10;6509:1;6498:13;;;;;;;;;;:::i;:::-;;;;;;;6469:20;:44::i;:::-;6588:10;6599:1;6588:13;;;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;6557:20:::1;::::0;::::1;;::::0;;;:17:::1;:20:::0;;;;;;;;6532:71;;25230:36:97;;;6532:71:52::1;::::0;;::::1;::::0;6557:20;::::1;::::0;6532:71:::1;::::0;25203:18:97;6532:71:52::1;;;;;;;6640:10;6651:1;6640:13;;;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;6617:20:::1;::::0;::::1;;::::0;;;:17:::1;:20:::0;;;;;;;:36;;;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;6450:3:52::1;6424:240;;;;6166:504;6094:576:::0;:::o;2074:198:32:-;1094:13;:11;:13::i;:::-;2162:22:::1;::::0;::::1;2154:73;;;::::0;-1:-1:-1;;;2154:73:32;;25479:2:97;2154:73:32::1;::::0;::::1;25461:21:97::0;25518:2;25498:18;;;25491:30;25557:34;25537:18;;;25530:62;25628:8;25608:18;;;25601:36;25654:19;;2154:73:32::1;25277:402:97::0;2154:73:32::1;2237:28;2256:8;2237:18;:28::i;:::-;2074:198:::0;:::o;9335:481:52:-;1094:13:32;:11;:13::i;:::-;9441:24:52::1;9468:33;9474:22;9500:1;9468:33;:::i;:::-;9441:60;;9548:18;9532:34;;:13;:34;;;9511:156;;;::::0;-1:-1:-1;;;9511:156:52;;25886:2:97;9511:156:52::1;::::0;::::1;25868:21:97::0;25925:2;25905:18;;;25898:30;25964:34;25944:18;;;25937:62;26035:34;26015:18;;;26008:62;26107:13;26086:19;;;26079:42;26138:19;;9511:156:52::1;25684:479:97::0;9511:156:52::1;9678:32;::::0;::::1;;::::0;;;:17:::1;:32;::::0;;;;;;;:63;;;;;:32:::1;4401:55:97::0;;;9678:63:52::1;::::0;::::1;4383:74:97::0;9678:32:52;;::::1;::::0;:48:::1;::::0;4356:18:97;;9678:63:52::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;9756:53:52::1;::::0;;26368:42:97;26356:55;;26338:74;;26460:4;26448:17;;26443:2;26428:18;;26421:45;9756:53:52::1;::::0;-1:-1:-1;26311:18:97;;-1:-1:-1;9756:53:52::1;26168:304:97::0;4239:247:18;4411:68;;;;;26714:6:97;26747:15;;;4411:68:18;;;26729:34:97;26799:15;;26779:18;;;26772:43;4460:4:18;26831:18:97;;;26824:83;26923:18;;;26916:34;;;4380:12:18;;4411:10;:20;;;;;26676:19:97;;4411:68:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4411:68:18;;;;;;;;;;;;:::i;:::-;4404:75;4239:247;-1:-1:-1;;;;;4239:247:18:o;6898:864:52:-;2261:21:34;:19;:21::i;:::-;7011:20:52::1;6989:18;6995:11;6989:5;:18::i;:::-;:42;;;;;;;;:::i;:::-;;6968:172;;;::::0;-1:-1:-1;;;6968:172:52;;28068:2:97;6968:172:52::1;::::0;::::1;28050:21:97::0;28107:2;28087:18;;;28080:30;28146:34;28126:18;;;28119:62;28217:34;28197:18;;;28190:62;28289:21;28268:19;;;28261:50;28328:19;;6968:172:52::1;27866:487:97::0;6968:172:52::1;7151:25;7179:22:::0;;;:9:::1;:22;::::0;;;;;;;7211:17:::1;::::0;::::1;:24:::0;;;::::1;;;::::0;;;;7284:21;;::::1;7211:24;7284:21;7266:40:::0;;:17:::1;:40:::0;;;;;;;7231:4:::1;7330:12:::0;::::1;::::0;7284:21:::1;7369:16:::0;::::1;:23:::0;7408:29;;7179:22;;7266:40:::1;::::0;;::::1;::::0;7330:12;;7369:23;7189:11;;7408:29:::1;::::0;7151:25;7408:29:::1;7453:9;7448:272;7468:6;7464:1;:10;7448:272;;;7495:8;:27;;;7540:8;:16;;7557:1;7540:19;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;7577:15:::1;::::0;::::1;:18:::0;;7540:19:::1;::::0;;::::1;::::0;7593:1;;7577:18;::::1;;;;;:::i;:::-;;;;;;;;;7613:8;:19;;7633:1;7613:22;;;;;;;;:::i;:::-;;;;;;;;7653:8;:18;;7672:1;7653:21;;;;;;;;:::i;:::-;;;;;;;;7692:3;7495:214;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;7495:214:52::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;7476:3:52::1;;7448:272;;;-1:-1:-1::0;;;7736:19:52::1;::::0;;;:6:::1;:19;::::0;;;;7729:26;;-1:-1:-1;;7729:26:52::1;::::0;;-1:-1:-1;2303:20:34;;-1:-1:-1;1716:1:34;2809:7;:22;2629:209;11681:889:52;11890:10;;;11875:25;;;11890:10;;;;;11875:25;11867:110;;;;-1:-1:-1;;;11867:110:52;;28560:2:97;11867:110:52;;;28542:21:97;28599:2;28579:18;;;28572:30;28638:34;28618:18;;;28611:62;28709:34;28689:18;;;28682:62;28781:10;28760:19;;;28753:39;28809:19;;11867:110:52;28358:476:97;11867:110:52;12011:19;;;;;;12064:87;;11987:21;;12079:4;;:25;;12064:87;;12107:11;;12120;;12133:6;;12021:8;;12064:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12040:111;;12163:12;12177:19;12200:67;12246:5;12234:9;:17;;;;:::i;:::-;12208:4;;12253:3;12258:8;12200:33;:67::i;:::-;12162:105;;;;12325:7;12320:244;;12348:27;;;;;;;:14;:27;;;;;;;:40;;12399:13;;12348:27;:40;;12376:11;;12348:40;:::i;:::-;;;;;;;;;;;;;;;;;:48;;;;;;;;;;:64;;;;12431:62;;12465:11;;12431:62;:::i;:::-;;;;;;;;12452:11;12431:62;;;12478:6;12486;12431:62;;;;;;;:::i;:::-;;;;;;;;12320:244;11857:713;;;;11681:889;;;;:::o;1359:130:32:-;1273:6;;1422:23;1273:6;734:10:39;1422:23:32;1414:68;;;;-1:-1:-1;;;1414:68:32;;30209:2:97;1414:68:32;;;30191:21:97;;;30228:18;;;30221:30;30287:34;30267:18;;;30260:62;30339:18;;1414:68:32;30007:356:97;2433:117:33;1486:16;:14;:16::i;:::-;2491:7:::1;:15:::0;;-1:-1:-1;;2491:15:33::1;::::0;;2521:22:::1;734:10:39::0;2530:12:33::1;2521:22;::::0;4413:42:97;4401:55;;;4383:74;;4371:2;4356:18;2521:22:33::1;;;;;;;2433:117::o:0;12768:1662:52:-;1239:19:33;:17;:19::i;:::-;12941:20:52::1;12963:11:::0;12989:8:::1;12978:38;;;;;;;;;;;;:::i;:::-;12940:76;;;;13040:24;13078:23:::0;13115:26:::1;13155:24:::0;13193:11:::1;13228:7;13217:69;;;;;;;;;;;;:::i;:::-;13304:14;::::0;;;:9:::1;:14;::::0;;;;:17;13026:260;;-1:-1:-1;13026:260:52;;-1:-1:-1;13026:260:52;;-1:-1:-1;13026:260:52;-1:-1:-1;13026:260:52;-1:-1:-1;13304:22:52;13296:105:::1;;;::::0;-1:-1:-1;;;13296:105:52;;35590:2:97;13296:105:52::1;::::0;::::1;35572:21:97::0;35629:2;35609:18;;;35602:30;35668:34;35648:18;;;35641:62;35739:34;35719:18;;;35712:62;35811:8;35790:19;;;35783:37;35837:19;;13296:105:52::1;35388:474:97::0;13296:105:52::1;13450:6;:13;13432:7;:14;:31;:86;;;;;13501:10;:17;13483:7;:14;:35;13432:86;:140;;;;;13556:9;:16;13538:7;:14;:34;13432:140;13411:283;;;::::0;-1:-1:-1;;;13411:283:52;;36069:2:97;13411:283:52::1;::::0;::::1;36051:21:97::0;36108:2;36088:18;;;36081:30;36147:34;36127:18;;;36120:62;36218:34;36198:18;;;36191:62;36290:34;36269:19;;;36262:63;36342:19;;13411:283:52::1;35867:500:97::0;13411:283:52::1;13733:33;13739:22;13765:1;13733:33;:::i;:::-;13725:41;;:5;:41;;;13704:161;;;::::0;-1:-1:-1;;;13704:161:52;;36574:2:97;13704:161:52::1;::::0;::::1;36556:21:97::0;36613:2;36593:18;;;36586:30;36652:34;36632:18;;;36625:62;36723:34;36703:18;;;36696:62;36795:11;36774:19;;;36767:40;36824:19;;13704:161:52::1;36372:477:97::0;13704:161:52::1;13875:36;13896:7;:14;13875:20;:36::i;:::-;13952:280;::::0;;::::1;::::0;::::1;::::0;;;;;13922:27:::1;13952:280;::::0;;::::1;::::0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::1;::::0;::::1;::::0;;;;14243:14;;;:9:::1;:14:::0;;;;;;:28;;;;;;13952:280;14243:28;::::1;::::0;;;;;13952:280;;;;14243:28:::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;14243:28:52::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;14243:28:52::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;14243:28:52::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;14243:28:52::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;::::1;::::0;;::::1;;::::0;;::::1;::::0;;::::1;;::::0;;;;;;;;;;;;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;14281:20:::1;:26:::0;;;14340:14;;14323:79:::1;::::0;::::1;::::0;::::1;::::0;14356:7;;14365:6;;14373:10;;14385:9;;14396:5;;14323:79:::1;:::i;:::-;;;;;;;;14412:11;14419:3;14412:6;:11::i;:::-;12930:1500;;;;;;;;12768:1662:::0;;;;:::o;2186:115:33:-;1239:19;:17;:19::i;:::-;2245:7:::1;:14:::0;;-1:-1:-1;;2245:14:33::1;2255:4;2245:14;::::0;;2274:20:::1;2281:12;734:10:39::0;;655:96;485:136:47;548:22;;;544:75;;589:23;;;;;;;;;;;;;;9258:2770:16;9374:12;9422:7;9406:12;9422:7;9416:2;9406:12;:::i;:::-;:23;;9398:50;;;;-1:-1:-1;;;9398:50:16;;39548:2:97;9398:50:16;;;39530:21:97;39587:2;39567:18;;;39560:30;39626:16;39606:18;;;39599:44;39660:18;;9398:50:16;39346:338:97;9398:50:16;9483:16;9492:7;9483:6;:16;:::i;:::-;9466:6;:13;:33;;9458:63;;;;-1:-1:-1;;;9458:63:16;;39891:2:97;9458:63:16;;;39873:21:97;39930:2;39910:18;;;39903:30;39969:19;39949:18;;;39942:47;40006:18;;9458:63:16;39689:341:97;9458:63:16;9532:22;9595:15;;9623:1967;;;;11731:4;11725:11;11712:24;;11917:1;11906:9;11899:20;11965:4;11954:9;11950:20;11944:4;11937:34;9588:2397;;9623:1967;9805:4;9799:11;9786:24;;10464:2;10455:7;10451:16;10846:9;10839:17;10833:4;10829:28;10817:9;10806;10802:25;10798:60;10894:7;10890:2;10886:16;11146:6;11132:9;11125:17;11119:4;11115:28;11103:9;11095:6;11091:22;11087:57;11083:70;10920:425;11179:3;11175:2;11172:11;10920:425;;;11317:9;;11306:21;;11220:4;11212:13;;;;11252;10920:425;;;-1:-1:-1;;11363:26:16;;;11571:2;11554:11;-1:-1:-1;;11550:25:16;11544:4;11537:39;-1:-1:-1;9588:2397:16;-1:-1:-1;12012:9:16;9258:2770;-1:-1:-1;;;;9258:2770:16:o;2336:287:34:-;1759:1;2468:7;;:19;2460:63;;;;-1:-1:-1;;;2460:63:34;;40237:2:97;2460:63:34;;;40219:21:97;40276:2;40256:18;;;40249:30;40315:33;40295:18;;;40288:61;40366:18;;2460:63:34;40035:355:97;2460:63:34;1759:1;2598:7;:18;2336:287::o;2511:795:19:-;2758:27;;;2736:19;2758:27;;;:14;:27;;;;;;:40;;;;2786:11;;;;2758:40;:::i;:::-;;;;;;;;;;;;;;;;:48;;;;;;;;;;;;;-1:-1:-1;2758:48:19;2816:73;;;;-1:-1:-1;;;2816:73:19;;40597:2:97;2816:73:19;;;40579:21:97;40636:2;40616:18;;;40609:30;40675:34;40655:18;;;40648:62;40746:5;40726:18;;;40719:33;40769:19;;2816:73:19;40395:399:97;2816:73:19;2930:11;2917:8;;2907:19;;;;;;;:::i;:::-;;;;;;;;:34;2899:80;;;;-1:-1:-1;;;2899:80:19;;41001:2:97;2899:80:19;;;40983:21:97;41040:2;41020:18;;;41013:30;41079:34;41059:18;;;41052:62;41150:3;41130:18;;;41123:31;41171:19;;2899:80:19;40799:397:97;2899:80:19;3025:27;;;3084:1;3025:27;;;:14;:27;;;;;;:40;;;;3053:11;;;;3025:40;:::i;:::-;;;;;;;;;;;;;;;;:48;;;;;;;;;;;;;:61;;;;3153:65;;;;;;;;;;;;;;;;;;;3175:11;;3188;;3153:65;;;;;;3188:11;3153:65;;3188:11;3153:65;;;;;;;;;-1:-1:-1;;3153:65:19;;;;;;;;;;;;;;;;;;;;;;3201:6;;-1:-1:-1;3153:65:19;-1:-1:-1;3209:8:19;;;;;;3153:65;;3209:8;;;;3153:65;;;;;;;;;-1:-1:-1;3153:21:19;;-1:-1:-1;;;3153:65:19:i;:::-;3233:66;3253:11;3266;;3279:6;3287:11;3233:66;;;;;;;;;;:::i;:::-;;;;;;;;2682:624;2511:795;;;;;;:::o;2426:187:32:-;2518:6;;;;2534:17;;;;;;;;;;;2566:40;;2518:6;;;2534:17;2518:6;;2566:40;;2499:16;;2566:40;2489:124;2426:187;:::o;1111:1274:17:-;1265:4;1271:12;1331;1353:13;1376:24;1413:8;1403:19;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1403:19:17;;1376:46;;1919:1;1890;1853:9;1847:16;1815:4;1804:9;1800:20;1766:1;1728:7;1699:4;1677:267;1665:279;;2011:16;2000:27;;2055:8;2046:7;2043:21;2040:76;;;2094:8;2083:19;;2040:76;2201:7;2188:11;2181:28;2321:7;2318:1;2311:4;2298:11;2294:22;2279:50;2356:8;;;;-1:-1:-1;1111:1274:17;-1:-1:-1;;;;;;1111:1274:17:o;1945:106:33:-;1685:7;;;;2003:41;;;;-1:-1:-1;;;2003:41:33;;41901:2:97;2003:41:33;;;41883:21:97;41940:2;41920:18;;;41913:30;41979:22;41959:18;;;41952:50;42019:18;;2003:41:33;41699:344:97;1767:106:33;1685:7;;;;1836:9;1828:38;;;;-1:-1:-1;;;1828:38:33;;42250:2:97;1828:38:33;;;42232:21:97;42289:2;42269:18;;;42262:30;42328:18;42308;;;42301:46;42364:18;;1828:38:33;42048:340:97;2551:880:49;2775:26;;2921:28;;2655:15;;2775:26;2952:6;;2897:52;;2655:15;2897:52;:::i;:::-;:61;2893:254;;;-1:-1:-1;3020:28:49;:52;;;2993:13;2893:254;;;3103:33;3123:13;3103:33;;:::i;:::-;;;2893:254;3250:20;;3230:16;:40;;3222:85;;;;-1:-1:-1;;;3222:85:49;;42595:2:97;3222:85:49;;;42577:21:97;;;42614:18;;;42607:30;42673:34;42653:18;;;42646:62;42725:18;;3222:85:49;42393:356:97;3222:85:49;3379:26;:45;-1:-1:-1;;2551:880:49:o;14610:724:52:-;14666:25;14694:22;;;:9;:22;;;;;;;;14776:21;;;;;;;;;14758:40;;:17;:40;;;;;;:48;;;;;;;14694:22;;14666:25;14758:40;;;;;:46;;:48;;;;;14694:22;14758:48;;;;;:40;:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14740:66;;:15;:66;:::i;:::-;14817:12;;;;:18;;;14845:19;;;;:6;:19;;;;;;;:26;;-1:-1:-1;;14845:26:52;;;;;;;14902:21;;;;;14950:16;;:23;14988:32;;14726:80;;-1:-1:-1;14902:21:52;;;14845:26;14902:21;;14852:11;;14988:32;;;;14726:80;2479:25:97;;2467:2;2452:18;;2333:177;14988:32:52;;;;;;;;15036:9;15031:297;15051:6;15047:1;:10;15031:297;;;15078:239;15118:8;:16;;15135:1;15118:19;;;;;;;;:::i;:::-;;;;;;;;;;;15155:15;;;:18;;15118:19;;;;;15171:1;;15155:18;;;;;;:::i;:::-;;;;;;;;;15191:8;:19;;15211:1;15191:22;;;;;;;;:::i;:::-;;;;;;;;15078:239;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15231:8;:18;;15250:1;15231:21;;;;;;;;:::i;:::-;;;;;;;;15078:239;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15270:3;15291:12;15078:22;:239::i;:::-;15059:3;;15031:297;;15792:621;16033:32;;;;;;;:17;:32;;;;;;;;;;16112:52;;16033:32;;;;;:51;;16112:52;;16123:7;;16132:6;;16140:10;;16152:5;;16159:4;;16112:52;;:::i;:::-;;;;;;;;;;;;;16102:63;;;;;;16033:146;;;;;;;;;;;;;2479:25:97;;2467:2;2452:18;;2333:177;16033:146:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16032:147;16011:293;;;;-1:-1:-1;;;16011:293:52;;44076:2:97;16011:293:52;;;44058:21:97;44115:2;44095:18;;;44088:30;44154:34;44134:18;;;44127:62;44225:34;44205:18;;;44198:62;44297:34;44276:19;;;44269:63;44369:5;44348:19;;;44341:34;44392:19;;16011:293:52;43874:543:97;16011:293:52;16315:32;;;;;;;:17;:32;;;;;;;;:91;;;;;:32;;;;;:49;;:91;;16365:7;;16374:6;;16382:10;;16394:5;;16401:4;;16315:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;14:159:97:-;81:20;;141:6;130:18;;120:29;;110:57;;163:1;160;153:12;110:57;14:159;;;:::o;178:347::-;229:8;239:6;293:3;286:4;278:6;274:17;270:27;260:55;;311:1;308;301:12;260:55;-1:-1:-1;334:20:97;;377:18;366:30;;363:50;;;409:1;406;399:12;363:50;446:4;438:6;434:17;422:29;;498:3;491:4;482:6;474;470:19;466:30;463:39;460:59;;;515:1;512;505:12;460:59;178:347;;;;;:::o;530:171::-;597:20;;657:18;646:30;;636:41;;626:69;;691:1;688;681:12;706:862;812:6;820;828;836;844;852;905:3;893:9;884:7;880:23;876:33;873:53;;;922:1;919;912:12;873:53;945:28;963:9;945:28;:::i;:::-;935:38;;1024:2;1013:9;1009:18;996:32;1047:18;1088:2;1080:6;1077:14;1074:34;;;1104:1;1101;1094:12;1074:34;1143:58;1193:7;1184:6;1173:9;1169:22;1143:58;:::i;:::-;1220:8;;-1:-1:-1;1117:84:97;-1:-1:-1;1117:84:97;;-1:-1:-1;1274:37:97;1307:2;1292:18;;1274:37;:::i;:::-;1264:47;;1364:2;1353:9;1349:18;1336:32;1320:48;;1393:2;1383:8;1380:16;1377:36;;;1409:1;1406;1399:12;1377:36;;1448:60;1500:7;1489:8;1478:9;1474:24;1448:60;:::i;:::-;706:862;;;;-1:-1:-1;706:862:97;;-1:-1:-1;706:862:97;;1527:8;;706:862;-1:-1:-1;;;706:862:97:o;1573:180::-;1632:6;1685:2;1673:9;1664:7;1660:23;1656:32;1653:52;;;1701:1;1698;1691:12;1653:52;-1:-1:-1;1724:23:97;;1573:180;-1:-1:-1;1573:180:97:o;2515:184::-;2573:6;2626:2;2614:9;2605:7;2601:23;2597:32;2594:52;;;2642:1;2639;2632:12;2594:52;2665:28;2683:9;2665:28;:::i;2704:252::-;2771:6;2779;2832:2;2820:9;2811:7;2807:23;2803:32;2800:52;;;2848:1;2845;2838:12;2800:52;2871:28;2889:9;2871:28;:::i;:::-;2861:38;2946:2;2931:18;;;;2918:32;;-1:-1:-1;;;2704:252:97:o;2961:481::-;3039:6;3047;3055;3108:2;3096:9;3087:7;3083:23;3079:32;3076:52;;;3124:1;3121;3114:12;3076:52;3147:28;3165:9;3147:28;:::i;:::-;3137:38;;3226:2;3215:9;3211:18;3198:32;3253:18;3245:6;3242:30;3239:50;;;3285:1;3282;3275:12;3239:50;3324:58;3374:7;3365:6;3354:9;3350:22;3324:58;:::i;:::-;2961:481;;3401:8;;-1:-1:-1;3298:84:97;;-1:-1:-1;;;;2961:481:97:o;3639:184::-;3691:77;3688:1;3681:88;3788:4;3785:1;3778:15;3812:4;3809:1;3802:15;3828:404;3979:2;3964:18;;4012:1;4001:13;;3991:201;;4048:77;4045:1;4038:88;4149:4;4146:1;4139:15;4177:4;4174:1;4167:15;3991:201;4201:25;;;3828:404;:::o;4661:184::-;4713:77;4710:1;4703:88;4810:4;4807:1;4800:15;4834:4;4831:1;4824:15;4850:334;4921:2;4915:9;4977:2;4967:13;;-1:-1:-1;;4963:86:97;4951:99;;5080:18;5065:34;;5101:22;;;5062:62;5059:88;;;5127:18;;:::i;:::-;5163:2;5156:22;4850:334;;-1:-1:-1;4850:334:97:o;5189:245::-;5237:4;5270:18;5262:6;5259:30;5256:56;;;5292:18;;:::i;:::-;-1:-1:-1;5349:2:97;5337:15;-1:-1:-1;;5333:88:97;5423:4;5329:99;;5189:245::o;5439:815::-;5523:6;5531;5539;5592:2;5580:9;5571:7;5567:23;5563:32;5560:52;;;5608:1;5605;5598:12;5560:52;5631:28;5649:9;5631:28;:::i;:::-;5621:38;;5710:2;5699:9;5695:18;5682:32;5737:18;5729:6;5726:30;5723:50;;;5769:1;5766;5759:12;5723:50;5792:22;;5845:4;5837:13;;5833:27;-1:-1:-1;5823:55:97;;5874:1;5871;5864:12;5823:55;5910:2;5897:16;5935:48;5951:31;5979:2;5951:31;:::i;:::-;5935:48;:::i;:::-;6006:2;5999:5;5992:17;6046:7;6041:2;6036;6032;6028:11;6024:20;6021:33;6018:53;;;6067:1;6064;6057:12;6018:53;6122:2;6117;6113;6109:11;6104:2;6097:5;6093:14;6080:45;6166:1;6161:2;6156;6149:5;6145:14;6141:23;6134:34;6187:5;6177:15;;;;;6211:37;6244:2;6233:9;6229:18;6211:37;:::i;:::-;6201:47;;5439:815;;;;;:::o;6441:250::-;6526:1;6536:113;6550:6;6547:1;6544:13;6536:113;;;6626:11;;;6620:18;6607:11;;;6600:39;6572:2;6565:10;6536:113;;;-1:-1:-1;;6683:1:97;6665:16;;6658:27;6441:250::o;6696:329::-;6737:3;6775:5;6769:12;6802:6;6797:3;6790:19;6818:76;6887:6;6880:4;6875:3;6871:14;6864:4;6857:5;6853:16;6818:76;:::i;:::-;6939:2;6927:15;-1:-1:-1;;6923:88:97;6914:98;;;;7014:4;6910:109;;6696:329;-1:-1:-1;;6696:329:97:o;7030:217::-;7177:2;7166:9;7159:21;7140:4;7197:44;7237:2;7226:9;7222:18;7214:6;7197:44;:::i;7252:154::-;7338:42;7331:5;7327:54;7320:5;7317:65;7307:93;;7396:1;7393;7386:12;7411:247;7470:6;7523:2;7511:9;7502:7;7498:23;7494:32;7491:52;;;7539:1;7536;7529:12;7491:52;7578:9;7565:23;7597:31;7622:5;7597:31;:::i;7663:256::-;7729:6;7737;7790:2;7778:9;7769:7;7765:23;7761:32;7758:52;;;7806:1;7803;7796:12;7758:52;7829:28;7847:9;7829:28;:::i;:::-;7819:38;;7876:37;7909:2;7898:9;7894:18;7876:37;:::i;:::-;7866:47;;7663:256;;;;;:::o;8182:622::-;8277:6;8285;8293;8301;8309;8362:3;8350:9;8341:7;8337:23;8333:33;8330:53;;;8379:1;8376;8369:12;8330:53;8402:28;8420:9;8402:28;:::i;:::-;8392:38;;8449:37;8482:2;8471:9;8467:18;8449:37;:::i;:::-;8439:47;;8533:2;8522:9;8518:18;8505:32;8495:42;;8588:2;8577:9;8573:18;8560:32;8615:18;8607:6;8604:30;8601:50;;;8647:1;8644;8637:12;8601:50;8686:58;8736:7;8727:6;8716:9;8712:22;8686:58;:::i;:::-;8182:622;;;;-1:-1:-1;8182:622:97;;-1:-1:-1;8763:8:97;;8660:84;8182:622;-1:-1:-1;;;8182:622:97:o;8809:324::-;8884:6;8892;8900;8953:2;8941:9;8932:7;8928:23;8924:32;8921:52;;;8969:1;8966;8959:12;8921:52;8992:28;9010:9;8992:28;:::i;:::-;8982:38;;9039:37;9072:2;9061:9;9057:18;9039:37;:::i;:::-;9029:47;;9123:2;9112:9;9108:18;9095:32;9085:42;;8809:324;;;;;:::o;9138:194::-;9209:4;9242:18;9234:6;9231:30;9228:56;;;9264:18;;:::i;:::-;-1:-1:-1;9309:1:97;9305:14;9321:4;9301:25;;9138:194::o;9337:996::-;9440:6;9471:2;9514;9502:9;9493:7;9489:23;9485:32;9482:52;;;9530:1;9527;9520:12;9482:52;9570:9;9557:23;9603:18;9595:6;9592:30;9589:50;;;9635:1;9632;9625:12;9589:50;9658:22;;9711:4;9703:13;;9699:27;-1:-1:-1;9689:55:97;;9740:1;9737;9730:12;9689:55;9776:2;9763:16;9799:71;9815:54;9866:2;9815:54;:::i;9799:71::-;9904:15;;;9986:1;9982:10;;;;9974:19;;9970:28;;;9935:12;;;;10010:19;;;10007:39;;;10042:1;10039;10032:12;10007:39;10066:11;;;;10086:217;10102:6;10097:3;10094:15;10086:217;;;10182:3;10169:17;10199:31;10224:5;10199:31;:::i;:::-;10243:18;;10119:12;;;;10281;;;;10086:217;;;10322:5;9337:996;-1:-1:-1;;;;;;;9337:996:97:o;10588:114::-;10672:4;10665:5;10661:16;10654:5;10651:27;10641:55;;10692:1;10689;10682:12;10707:384;10773:6;10781;10834:2;10822:9;10813:7;10809:23;10805:32;10802:52;;;10850:1;10847;10840:12;10802:52;10889:9;10876:23;10908:31;10933:5;10908:31;:::i;:::-;10958:5;-1:-1:-1;11015:2:97;11000:18;;10987:32;11028:31;10987:32;11028:31;:::i;:::-;11078:7;11068:17;;;10707:384;;;;;:::o;11096:460::-;11180:6;11188;11196;11204;11257:3;11245:9;11236:7;11232:23;11228:33;11225:53;;;11274:1;11271;11264:12;11225:53;11297:28;11315:9;11297:28;:::i;:::-;11287:38;;11344:37;11377:2;11366:9;11362:18;11344:37;:::i;:::-;11334:47;;11431:2;11420:9;11416:18;11403:32;11444:31;11469:5;11444:31;:::i;:::-;11096:460;;;;-1:-1:-1;11494:5:97;;11546:2;11531:18;11518:32;;-1:-1:-1;;11096:460:97:o;11920:437::-;11999:1;11995:12;;;;12042;;;12063:61;;12117:4;12109:6;12105:17;12095:27;;12063:61;12170:2;12162:6;12159:14;12139:18;12136:38;12133:218;;12207:77;12204:1;12197:88;12308:4;12305:1;12298:15;12336:4;12333:1;12326:15;12362:271;12545:6;12537;12532:3;12519:33;12501:3;12571:16;;12596:13;;;12571:16;12362:271;-1:-1:-1;12362:271:97:o;13962:184::-;14014:77;14011:1;14004:88;14111:4;14108:1;14101:15;14135:4;14132:1;14125:15;14277:829;14327:3;14368:5;14362:12;14397:36;14423:9;14397:36;:::i;:::-;14442:19;;;14480:4;14503:1;14520:17;;;14546:204;;;;14764:1;14759:341;;;;14513:587;;14546:204;-1:-1:-1;;14592:9:97;14588:82;14583:2;14578:3;14574:12;14567:104;14737:2;14725:6;14718:14;14711:22;14708:1;14704:30;14699:3;14695:40;14691:49;14684:56;;14546:204;;14759:341;14790:5;14787:1;14780:16;14837:2;14834:1;14824:16;14862:1;14876:174;14890:6;14887:1;14884:13;14876:174;;;14977:14;;14959:11;;;14955:20;;14948:44;15020:16;;;;14905:10;;14876:174;;;15074:11;;15070:20;;;-1:-1:-1;;14513:587:97;;;;;;14277:829;;;;:::o;15111:656::-;15396:42;15388:6;15384:55;15373:9;15366:74;15476:6;15471:2;15460:9;15456:18;15449:34;15519:3;15514:2;15503:9;15499:18;15492:31;15347:4;15546:54;15595:3;15584:9;15580:19;15572:6;15546:54;:::i;:::-;15648:9;15640:6;15636:22;15631:2;15620:9;15616:18;15609:50;15676:41;15710:6;15702;15676:41;:::i;:::-;15668:49;;;15754:6;15748:3;15737:9;15733:19;15726:35;15111:656;;;;;;;;:::o;15772:325::-;15860:6;15855:3;15848:19;15912:6;15905:5;15898:4;15893:3;15889:14;15876:43;;15964:1;15957:4;15948:6;15943:3;15939:16;15935:27;15928:38;15830:3;16086:4;-1:-1:-1;;16011:2:97;16003:6;15999:15;15995:88;15990:3;15986:98;15982:109;15975:116;;15772:325;;;;:::o;16102:326::-;16297:6;16289;16285:19;16274:9;16267:38;16341:2;16336;16325:9;16321:18;16314:30;16248:4;16361:61;16418:2;16407:9;16403:18;16395:6;16387;16361:61;:::i;17884:184::-;17936:77;17933:1;17926:88;18033:4;18030:1;18023:15;18057:4;18054:1;18047:15;18073:128;18140:9;;;18161:11;;;18158:37;;;18175:18;;:::i;:::-;18073:128;;;;:::o;18206:395::-;18417:6;18409;18404:3;18391:33;18487:2;18483:15;;;;18500:66;18479:88;18443:16;;18468:100;;;18592:2;18584:11;;18206:395;-1:-1:-1;18206:395:97:o;18606:542::-;18707:2;18702:3;18699:11;18696:446;;;18743:1;18767:5;18764:1;18757:16;18811:4;18808:1;18798:18;18881:2;18869:10;18865:19;18862:1;18858:27;18852:4;18848:38;18917:4;18905:10;18902:20;18899:47;;;-1:-1:-1;18940:4:97;18899:47;18995:2;18990:3;18986:12;18983:1;18979:20;18973:4;18969:31;18959:41;;19050:82;19068:2;19061:5;19058:13;19050:82;;;19113:17;;;19094:1;19083:13;19050:82;;19384:1461;19508:3;19502:10;19535:18;19527:6;19524:30;19521:56;;;19557:18;;:::i;:::-;19586:96;19675:6;19635:38;19667:4;19661:11;19635:38;:::i;:::-;19629:4;19586:96;:::i;:::-;19737:4;;19794:2;19783:14;;19811:1;19806:782;;;;20632:1;20649:6;20646:89;;;-1:-1:-1;20701:19:97;;;20695:26;20646:89;19290:66;19281:1;19277:11;;;19273:84;19269:89;19259:100;19365:1;19361:11;;;19256:117;20748:81;;19776:1063;;19806:782;14224:1;14217:14;;;14261:4;14248:18;;-1:-1:-1;;19842:79:97;;;20019:236;20033:7;20030:1;20027:14;20019:236;;;20122:19;;;20116:26;20101:42;;20214:27;;;;20182:1;20170:14;;;;20049:19;;20019:236;;;20023:3;20283:6;20274:7;20271:19;20268:261;;;20344:19;;;20338:26;20445:66;20427:1;20423:14;;;20439:3;20419:24;20415:97;20411:102;20396:118;20381:134;;20268:261;-1:-1:-1;;;;;20575:1:97;20559:14;;;20555:22;20542:36;;-1:-1:-1;19384:1461:97:o;20850:498::-;21050:4;21079:6;21124:2;21116:6;21112:15;21101:9;21094:34;21176:2;21168:6;21164:15;21159:2;21148:9;21144:18;21137:43;;21216:6;21211:2;21200:9;21196:18;21189:34;21259:3;21254:2;21243:9;21239:18;21232:31;21280:62;21337:3;21326:9;21322:19;21314:6;21306;21280:62;:::i;21353:899::-;21479:3;21508:1;21541:6;21535:13;21571:36;21597:9;21571:36;:::i;:::-;21626:1;21643:17;;;21669:191;;;;21874:1;21869:358;;;;21636:591;;21669:191;-1:-1:-1;;21706:9:97;21702:82;21697:3;21690:95;21840:6;21833:14;21826:22;21818:6;21814:35;21809:3;21805:45;21798:52;;21669:191;;21869:358;21900:6;21897:1;21890:17;21930:4;21975;21972:1;21962:18;22002:1;22016:165;22030:6;22027:1;22024:13;22016:165;;;22108:14;;22095:11;;;22088:35;22151:16;;;;22045:10;;22016:165;;;22020:3;;;22210:6;22205:3;22201:16;22194:23;;21636:591;-1:-1:-1;22243:3:97;;21353:899;-1:-1:-1;;;;;;21353:899:97:o;23052:1322::-;23174:18;23169:3;23166:27;23163:53;;;23196:18;;:::i;:::-;23225:93;23314:3;23274:38;23306:4;23300:11;23274:38;:::i;:::-;23268:4;23225:93;:::i;:::-;23344:1;23369:2;23364:3;23361:11;23386:1;23381:735;;;;24160:1;24177:3;24174:93;;;-1:-1:-1;24233:19:97;;;24220:33;24174:93;19290:66;19281:1;19277:11;;;19273:84;19269:89;19259:100;19365:1;19361:11;;;19256:117;24280:78;;23354:1014;;23381:735;14224:1;14217:14;;;14261:4;14248:18;;-1:-1:-1;;23417:76:97;;;23577:9;23599:229;23613:7;23610:1;23607:14;23599:229;;;23702:19;;;23689:33;23674:49;;23809:4;23794:20;;;;23762:1;23750:14;;;;23629:12;23599:229;;;23603:3;23856;23847:7;23844:16;23841:219;;;23976:66;23970:3;23964;23961:1;23957:11;23953:21;23949:94;23945:99;23932:9;23927:3;23923:19;23910:33;23906:139;23898:6;23891:155;23841:219;;;24103:1;24097:3;24094:1;24090:11;24086:19;24080:4;24073:33;23354:1014;;23052:1322;;;:::o;24379:148::-;24467:4;24446:12;;;24460;;;24442:31;;24485:13;;24482:39;;;24501:18;;:::i;26961:320::-;27036:5;27065:52;27081:35;27109:6;27081:35;:::i;27065:52::-;27056:61;;27140:6;27133:5;27126:21;27180:3;27171:6;27166:3;27162:16;27159:25;27156:45;;;27197:1;27194;27187:12;27156:45;27210:65;27268:6;27261:4;27254:5;27250:16;27245:3;27210:65;:::i;27286:235::-;27339:5;27392:3;27385:4;27377:6;27373:17;27369:27;27359:55;;27410:1;27407;27400:12;27359:55;27432:83;27511:3;27502:6;27496:13;27489:4;27481:6;27477:17;27432:83;:::i;27526:335::-;27605:6;27658:2;27646:9;27637:7;27633:23;27629:32;27626:52;;;27674:1;27671;27664:12;27626:52;27707:9;27701:16;27740:18;27732:6;27729:30;27726:50;;;27772:1;27769;27762:12;27726:50;27795:60;27847:7;27838:6;27827:9;27823:22;27795:60;:::i;:::-;27785:70;27526:335;-1:-1:-1;;;;27526:335:97:o;28839:555::-;29096:6;29088;29084:19;29073:9;29066:38;29140:3;29135:2;29124:9;29120:18;29113:31;29047:4;29167:45;29207:3;29196:9;29192:19;29184:6;29167:45;:::i;:::-;29260:18;29252:6;29248:31;29243:2;29232:9;29228:18;29221:59;29328:9;29320:6;29316:22;29311:2;29300:9;29296:18;29289:50;29356:32;29381:6;29373;29356:32;:::i;29399:287::-;29528:3;29566:6;29560:13;29582:66;29641:6;29636:3;29629:4;29621:6;29617:17;29582:66;:::i;:::-;29664:16;;;;;29399:287;-1:-1:-1;;29399:287:97:o;29691:311::-;29876:18;29868:6;29864:31;29853:9;29846:50;29932:2;29927;29916:9;29912:18;29905:30;29827:4;29952:44;29992:2;29981:9;29977:18;29969:6;29952:44;:::i;30368:396::-;30456:6;30464;30517:2;30505:9;30496:7;30492:23;30488:32;30485:52;;;30533:1;30530;30523:12;30485:52;30566:9;30560:16;30599:18;30591:6;30588:30;30585:50;;;30631:1;30628;30621:12;30585:50;30654:60;30706:7;30697:6;30686:9;30682:22;30654:60;:::i;:::-;30644:70;;;30754:2;30743:9;30739:18;30733:25;30723:35;;30368:396;;;;;:::o;30769:676::-;30834:5;30887:3;30880:4;30872:6;30868:17;30864:27;30854:55;;30905:1;30902;30895:12;30854:55;30934:6;30928:13;30960:4;30984:71;31000:54;31051:2;31000:54;:::i;30984:71::-;31077:3;31101:2;31096:3;31089:15;31129:4;31124:3;31120:14;31113:21;;31186:4;31180:2;31177:1;31173:10;31165:6;31161:23;31157:34;31143:48;;31214:3;31206:6;31203:15;31200:35;;;31231:1;31228;31221:12;31200:35;31267:4;31259:6;31255:17;31281:135;31297:6;31292:3;31289:15;31281:135;;;31363:10;;31351:23;;31394:12;;;;31314;;31281:135;;;-1:-1:-1;31434:5:97;30769:676;-1:-1:-1;;;;;;30769:676:97:o;31450:1100::-;31514:5;31567:3;31560:4;31552:6;31548:17;31544:27;31534:55;;31585:1;31582;31575:12;31534:55;31614:6;31608:13;31640:4;31664:71;31680:54;31731:2;31680:54;:::i;31664:71::-;31769:15;;;31855:1;31851:10;;;;31839:23;;31835:32;;;31800:12;;;;31879:15;;;31876:35;;;31907:1;31904;31897:12;31876:35;31943:2;31935:6;31931:15;31955:566;31971:6;31966:3;31963:15;31955:566;;;32050:3;32044:10;32086:18;32073:11;32070:35;32067:125;;;32146:1;32175:2;32171;32164:14;32067:125;32215:24;;32274:2;32266:11;;32262:21;-1:-1:-1;32252:119:97;;32325:1;32354:2;32350;32343:14;32252:119;32396:82;32474:3;32468:2;32464;32460:11;32454:18;32449:2;32445;32441:11;32396:82;:::i;:::-;32384:95;;-1:-1:-1;32499:12:97;;;;31988;;31955:566;;32555:905;32618:5;32671:3;32664:4;32656:6;32652:17;32648:27;32638:55;;32689:1;32686;32679:12;32638:55;32718:6;32712:13;32744:4;32768:71;32784:54;32835:2;32784:54;:::i;32768:71::-;32873:15;;;32959:1;32955:10;;;;32943:23;;32939:32;;;32904:12;;;;32983:15;;;32980:35;;;33011:1;33008;33001:12;32980:35;33047:2;33039:6;33035:15;33059:372;33075:6;33070:3;33067:15;33059:372;;;33154:3;33148:10;33190:18;33177:11;33174:35;33171:125;;;33250:1;33279:2;33275;33268:14;33171:125;33321:67;33384:3;33379:2;33365:11;33357:6;33353:24;33349:33;33321:67;:::i;:::-;33309:80;;-1:-1:-1;33409:12:97;;;;33092;;33059:372;;33465:134;33542:13;;33564:29;33542:13;33564:29;:::i;33604:1779::-;33827:6;33835;33843;33851;33859;33912:3;33900:9;33891:7;33887:23;33883:33;33880:53;;;33929:1;33926;33919:12;33880:53;33962:9;33956:16;33991:18;34032:2;34024:6;34021:14;34018:34;;;34048:1;34045;34038:12;34018:34;34086:6;34075:9;34071:22;34061:32;;34131:7;34124:4;34120:2;34116:13;34112:27;34102:55;;34153:1;34150;34143:12;34102:55;34182:2;34176:9;34204:4;34228:71;34244:54;34295:2;34244:54;:::i;34228:71::-;34333:15;;;34415:1;34411:10;;;;34403:19;;34399:28;;;34364:12;;;;34439:19;;;34436:39;;;34471:1;34468;34461:12;34436:39;34495:11;;;;34515:210;34531:6;34526:3;34523:15;34515:210;;;34604:3;34598:10;34621:31;34646:5;34621:31;:::i;:::-;34665:18;;34548:12;;;;34703;;;;34515:210;;;34780:18;;;34774:25;34744:5;;-1:-1:-1;34774:25:97;;-1:-1:-1;;;34811:16:97;;;34808:36;;;34840:1;34837;34830:12;34808:36;34863:74;34929:7;34918:8;34907:9;34903:24;34863:74;:::i;:::-;34853:84;;34983:2;34972:9;34968:18;34962:25;34946:41;;35012:2;35002:8;34999:16;34996:36;;;35028:1;35025;35018:12;34996:36;35051:73;35116:7;35105:8;35094:9;35090:24;35051:73;:::i;:::-;35041:83;;35170:2;35159:9;35155:18;35149:25;35133:41;;35199:2;35189:8;35186:16;35183:36;;;35215:1;35212;35205:12;35183:36;;35238:72;35302:7;35291:8;35280:9;35276:24;35238:72;:::i;:::-;35228:82;;;35329:48;35372:3;35361:9;35357:19;35329:48;:::i;:::-;35319:58;;33604:1779;;;;;;;;:::o;36854:656::-;36906:3;36937;36969:5;36963:12;36996:6;36991:3;36984:19;37022:4;37051;37046:3;37042:14;37035:21;;37109:4;37099:6;37096:1;37092:14;37085:5;37081:26;37077:37;37148:4;37141:5;37137:16;37171:1;37181:303;37195:6;37192:1;37189:13;37181:303;;;-1:-1:-1;;37270:5:97;37264:4;37260:16;37256:89;37251:3;37244:102;37367:37;37399:4;37390:6;37384:13;37367:37;:::i;:::-;37462:12;;;;37359:45;-1:-1:-1;37427:15:97;;;;37217:1;37210:9;37181:303;;;-1:-1:-1;37500:4:97;;36854:656;-1:-1:-1;;;;;;;36854:656:97:o;37515:1696::-;38001:3;38014:22;;;38085:13;;37986:19;;;38107:22;;;37953:4;;38183;;38160:3;38145:19;;;38210:15;;;37953:4;38253:218;38267:6;38264:1;38261:13;38253:218;;;38332:13;;38347:42;38328:62;38316:75;;38411:12;;;;38446:15;;;;38289:1;38282:9;38253:218;;;-1:-1:-1;;;38507:19:97;;;38487:18;;;38480:47;38577:13;;38599:21;;;38675:15;;;;38638:12;;;38710:1;38720:189;38736:8;38731:3;38728:17;38720:189;;;38805:15;;38791:30;;38882:17;;;;38843:14;;;;38764:1;38755:11;38720:189;;;38724:3;;38956:9;38949:5;38945:21;38940:2;38929:9;38925:18;38918:49;38990:42;39026:5;39018:6;38990:42;:::i;:::-;38976:56;;;;39080:9;39072:6;39068:22;39063:2;39052:9;39048:18;39041:50;39108:43;39144:6;39136;39108:43;:::i;:::-;39100:51;;;39160:45;39200:3;39189:9;39185:19;39177:6;1825:4;1814:16;1802:29;;1758:75;39160:45;37515:1696;;;;;;;;:::o;39216:125::-;39281:9;;;39302:10;;;39299:36;;;39315:18;;:::i;41201:493::-;41450:6;41442;41438:19;41427:9;41420:38;41494:3;41489:2;41478:9;41474:18;41467:31;41401:4;41515:62;41572:3;41561:9;41557:19;41549:6;41541;41515:62;:::i;:::-;41625:18;41613:31;;;;41608:2;41593:18;;41586:59;-1:-1:-1;41676:2:97;41661:18;41654:34;41507:70;41201:493;-1:-1:-1;;;41201:493:97:o;42754:184::-;42824:6;42877:2;42865:9;42856:7;42852:23;42848:32;42845:52;;;42893:1;42890;42883:12;42845:52;-1:-1:-1;42916:16:97;;42754:184;-1:-1:-1;42754:184:97:o;42943:644::-;43234:42;43226:6;43222:55;43211:9;43204:74;43314:6;43309:2;43298:9;43294:18;43287:34;43357:3;43352:2;43341:9;43337:18;43330:31;43185:4;43384:45;43424:3;43413:9;43409:19;43401:6;43384:45;:::i;:::-;43477:9;43469:6;43465:22;43460:2;43449:9;43445:18;43438:50;43505:32;43530:6;43522;43505:32;:::i;43592:277::-;43659:6;43712:2;43700:9;43691:7;43687:23;43683:32;43680:52;;;43728:1;43725;43718:12;43680:52;43760:9;43754:16;43813:5;43806:13;43799:21;43792:5;43789:32;43779:60;;43835:1;43832;43825:12"},"gasEstimates":{"creation":{"codeDepositCost":"3730400","executionCost":"infinite","totalCost":"infinite"},"external":{"DEFAULT_PAYLOAD_SIZE_LIMIT()":"263","addTimelocks(address[])":"infinite","cancel(uint256)":"infinite","execute(uint256)":"infinite","failedMessages(uint16,bytes,uint64)":"infinite","forceResumeReceive(uint16,bytes)":"infinite","getConfig(uint16,uint16,address,uint256)":"infinite","getTrustedRemoteAddress(uint16)":"infinite","guardian()":"2381","isTrustedRemote(uint16,bytes)":"infinite","last24HourCommandsReceived()":"2407","last24HourReceiveWindowStart()":"2364","lastProposalReceived()":"2386","lzEndpoint()":"infinite","lzReceive(uint16,bytes,uint64,bytes)":"infinite","maxDailyReceiveLimit()":"2364","minDstGasLookup(uint16,uint16)":"infinite","nonblockingLzReceive(uint16,bytes,uint64,bytes)":"infinite","owner()":"2397","pause()":"infinite","paused()":"2372","payloadSizeLimitLookup(uint16)":"2575","precrime()":"2381","proposalTimelocks(uint256)":"2542","proposals(uint256)":"6909","queued(uint256)":"2540","renounceOwnership()":"190","retryMessage(uint16,bytes,uint64,bytes)":"infinite","setConfig(uint16,uint16,uint256,bytes)":"infinite","setGuardian(address)":"infinite","setMaxDailyReceiveLimit(uint256)":"28025","setMinDstGas(uint16,uint16,uint256)":"infinite","setPayloadSizeLimit(uint16,uint256)":"24757","setPrecrime(address)":"27842","setReceiveVersion(uint16)":"infinite","setSendVersion(uint16)":"infinite","setSrcChainId(uint16)":"30438","setTimelockPendingAdmin(address,uint8)":"infinite","setTrustedRemote(uint16,bytes)":"infinite","setTrustedRemoteAddress(uint16,bytes)":"infinite","srcChainId()":"2414","state(uint256)":"6988","transferOwnership(address)":"infinite","trustedRemoteLookup(uint16)":"infinite","unpause()":"infinite"},"internal":{"_blockingLzReceive(uint16,bytes memory,uint64,bytes memory)":"infinite","_nonblockingLzReceive(uint16,bytes memory,uint64,bytes memory)":"infinite","_queue(uint256)":"infinite","_queueOrRevertInternal(address,uint256,string memory,bytes memory,uint256,uint8)":"infinite"}},"methodIdentifiers":{"DEFAULT_PAYLOAD_SIZE_LIMIT()":"c4461834","addTimelocks(address[])":"ed66039b","cancel(uint256)":"40e58ee5","execute(uint256)":"fe0d94c1","failedMessages(uint16,bytes,uint64)":"5b8c41e6","forceResumeReceive(uint16,bytes)":"42d65a8d","getConfig(uint16,uint16,address,uint256)":"f5ecbdbc","getTrustedRemoteAddress(uint16)":"9f38369a","guardian()":"452a9320","isTrustedRemote(uint16,bytes)":"3d8b38f6","last24HourCommandsReceived()":"70f6ad9a","last24HourReceiveWindowStart()":"876919e8","lastProposalReceived()":"4406baaf","lzEndpoint()":"b353aaa7","lzReceive(uint16,bytes,uint64,bytes)":"001d3567","maxDailyReceiveLimit()":"0435bb56","minDstGasLookup(uint16,uint16)":"8cfd8f5c","nonblockingLzReceive(uint16,bytes,uint64,bytes)":"66ad5c8a","owner()":"8da5cb5b","pause()":"8456cb59","paused()":"5c975abb","payloadSizeLimitLookup(uint16)":"3f1f4fa4","precrime()":"950c8a74","proposalTimelocks(uint256)":"ee9799ee","proposals(uint256)":"013cf08b","queued(uint256)":"9f0c3101","renounceOwnership()":"715018a6","retryMessage(uint16,bytes,uint64,bytes)":"d1deba1f","setConfig(uint16,uint16,uint256,bytes)":"cbed8b9c","setGuardian(address)":"8a0dac4a","setMaxDailyReceiveLimit(uint256)":"9493ffad","setMinDstGas(uint16,uint16,uint256)":"df2a5b3b","setPayloadSizeLimit(uint16,uint256)":"0df37483","setPrecrime(address)":"baf3292d","setReceiveVersion(uint16)":"10ddb137","setSendVersion(uint16)":"07e0db17","setSrcChainId(uint16)":"c8b42e5b","setTimelockPendingAdmin(address,uint8)":"f4fcfcca","setTrustedRemote(uint16,bytes)":"eb8d72b7","setTrustedRemoteAddress(uint16,bytes)":"a6c3d165","srcChainId()":"49d12605","state(uint256)":"3e4f49e6","transferOwnership(address)":"f2fde38b","trustedRemoteLookup(uint16)":"7533d788","unpause()":"3f4ba83a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"endpoint_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"guardian_\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"srcChainId_\",\"type\":\"uint16\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidProposalId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_reason\",\"type\":\"bytes\"}],\"name\":\"MessageFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldGuardian\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newGuardian\",\"type\":\"address\"}],\"name\":\"NewGuardian\",\"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\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"ProposalCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"ProposalExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"ProposalQueued\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"string[]\",\"name\":\"signatures\",\"type\":\"string[]\"},{\"indexed\":false,\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"proposalType\",\"type\":\"uint8\"}],\"name\":\"ProposalReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"srcChainId\",\"type\":\"uint16\"},{\"indexed\":true,\"internalType\":\"bytes\",\"name\":\"srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"ReceivePayloadFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"RetryMessageSuccess\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldMaxLimit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newMaxLimit\",\"type\":\"uint256\"}],\"name\":\"SetMaxDailyReceiveLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_type\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_minDstGas\",\"type\":\"uint256\"}],\"name\":\"SetMinDstGas\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"precrime\",\"type\":\"address\"}],\"name\":\"SetPrecrime\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"oldSrcChainId\",\"type\":\"uint16\"},{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"newSrcChainId\",\"type\":\"uint16\"}],\"name\":\"SetSrcChainId\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"name\":\"SetTimelockPendingAdmin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemote\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_remoteAddress\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemoteAddress\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"routeType\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldTimelock\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newTimelock\",\"type\":\"address\"}],\"name\":\"TimelockAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_PAYLOAD_SIZE_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ITimelock[]\",\"name\":\"timelocks_\",\"type\":\"address[]\"}],\"name\":\"addTimelocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId_\",\"type\":\"uint256\"}],\"name\":\"cancel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId_\",\"type\":\"uint256\"}],\"name\":\"execute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"failedMessages\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"forceResumeReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"}],\"name\":\"getTrustedRemoteAddress\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"guardian\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"isTrustedRemote\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"last24HourCommandsReceived\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"last24HourReceiveWindowStart\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastProposalReceived\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lzEndpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpoint\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxDailyReceiveLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"minDstGasLookup\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"nonblockingLzReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"payloadSizeLimitLookup\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"precrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposalTimelocks\",\"outputs\":[{\"internalType\":\"contract ITimelock\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"canceled\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"executed\",\"type\":\"bool\"},{\"internalType\":\"uint8\",\"name\":\"proposalType\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"queued\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"srcChainId_\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"srcAddress_\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"nonce_\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"payload_\",\"type\":\"bytes\"}],\"name\":\"retryMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_config\",\"type\":\"bytes\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newGuardian\",\"type\":\"address\"}],\"name\":\"setGuardian\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"setMaxDailyReceiveLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_packetType\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_minGas\",\"type\":\"uint256\"}],\"name\":\"setMinDstGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_size\",\"type\":\"uint256\"}],\"name\":\"setPayloadSizeLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_precrime\",\"type\":\"address\"}],\"name\":\"setPrecrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setReceiveVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setSendVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"srcChainId_\",\"type\":\"uint16\"}],\"name\":\"setSrcChainId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingAdmin_\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"proposalType_\",\"type\":\"uint8\"}],\"name\":\"setTimelockPendingAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_remoteAddress\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemoteAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"srcChainId\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId_\",\"type\":\"uint256\"}],\"name\":\"state\",\"outputs\":[{\"internalType\":\"enum OmnichainGovernanceExecutor.ProposalState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"trustedRemoteLookup\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"custom:security-contact\":\"https://github.com/VenusProtocol/governance-contracts#discussion\",\"details\":\"The owner of this contract controls LayerZero configuration. When used in production the owner will be OmnichainExecutor This implementation is non-blocking, meaning the failed messages will not block the future messages from the source. For the blocking behavior, derive the contract from LzApp.\",\"events\":{\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"addTimelocks(address[])\":{\"custom:access\":\"Only owner\",\"custom:event\":\"Emits TimelockAdded with old and new timelock and route type\",\"params\":{\"timelocks_\":\"Array of addresses of all 3 timelocks\"}},\"cancel(uint256)\":{\"custom:access\":\"Sender must be the guardian\",\"custom:event\":\"Emits ProposalCanceled with proposal id of the canceled proposal\",\"params\":{\"proposalId_\":\"Id of proposal that is to be canceled\"}},\"execute(uint256)\":{\"custom:event\":\"Emits ProposalExecuted with proposal id of executed proposal\",\"params\":{\"proposalId_\":\"Id of proposal that is to be executed\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pause()\":{\"custom:access\":\"Only owner\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"retryMessage(uint16,bytes,uint64,bytes)\":{\"custom:access\":\"Only owner\",\"params\":{\"nonce_\":\"Nonce to identify failed message\",\"payload_\":\"The payload of the message to be retried\",\"srcAddress_\":\"Source address => local app address + remote app address\",\"srcChainId_\":\"Source chain Id\"}},\"setGuardian(address)\":{\"custom:access\":\"Must be call by guardian or owner\",\"custom:event\":\"Emit NewGuardian with old and new guardian address\",\"params\":{\"newGuardian\":\"The address of the new guardian\"}},\"setMaxDailyReceiveLimit(uint256)\":{\"custom:access\":\"Only Owner\",\"custom:event\":\"Emits SetMaxDailyReceiveLimit with old and new limit\",\"params\":{\"limit_\":\"Number of commands\"}},\"setSrcChainId(uint16)\":{\"custom:access\":\"Only owner\",\"custom:event\":\"Emit SetSrcChainId with old and new source id\",\"params\":{\"srcChainId_\":\"The new source chain id to be set\"}},\"setTimelockPendingAdmin(address,uint8)\":{\"custom:access\":\"Only owner\",\"custom:event\":\"Emits SetTimelockPendingAdmin with new pending admin and proposal type\",\"params\":{\"pendingAdmin_\":\"Address of new pending admin\",\"proposalType_\":\"Type of proposal\"}},\"state(uint256)\":{\"params\":{\"proposalId_\":\"The id of the proposal\"},\"returns\":{\"_0\":\"Proposal state\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"unpause()\":{\"custom:access\":\"Only owner\"}},\"title\":\"OmnichainGovernanceExecutor\",\"version\":1},\"userdoc\":{\"errors\":{\"InvalidProposalId()\":[{\"notice\":\"Thrown when proposal ID is invalid\"}],\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}]},\"events\":{\"NewGuardian(address,address)\":{\"notice\":\"Emitted when new guardian address is set\"},\"ProposalCanceled(uint256)\":{\"notice\":\"Emitted when proposal is canceled\"},\"ProposalExecuted(uint256)\":{\"notice\":\"Emitted when proposal executed\"},\"ProposalQueued(uint256,uint256)\":{\"notice\":\"Emitted when proposal is queued\"},\"ProposalReceived(uint256,address[],uint256[],string[],bytes[],uint8)\":{\"notice\":\"Emitted when proposal is received\"},\"ReceivePayloadFailed(uint16,bytes,uint64,bytes)\":{\"notice\":\"Emitted when proposal failed\"},\"SetMaxDailyReceiveLimit(uint256,uint256)\":{\"notice\":\"Emitted when the maximum daily limit for receiving command from Binance chain is modified\"},\"SetSrcChainId(uint16,uint16)\":{\"notice\":\"Emitted when source layerzero endpoint id is updated\"},\"SetTimelockPendingAdmin(address,uint8)\":{\"notice\":\"Emitted when pending admin of Timelock is updated\"},\"TimelockAdded(uint8,address,address)\":{\"notice\":\"Emitted when timelock added\"}},\"kind\":\"user\",\"methods\":{\"addTimelocks(address[])\":{\"notice\":\"Add timelocks to the ProposalTimelocks mapping\"},\"cancel(uint256)\":{\"notice\":\"Cancels a proposal only if sender is the guardian and proposal is not executed\"},\"execute(uint256)\":{\"notice\":\"Executes a queued proposal if eta has passed\"},\"guardian()\":{\"notice\":\"A privileged role that can cancel any proposal\"},\"last24HourCommandsReceived()\":{\"notice\":\"Total received commands within the last 24-hour window from Binance chain\"},\"last24HourReceiveWindowStart()\":{\"notice\":\"Timestamp when the last 24-hour window started from Binance chain\"},\"lastProposalReceived()\":{\"notice\":\"Last proposal count received\"},\"maxDailyReceiveLimit()\":{\"notice\":\"Maximum daily limit for receiving commands from Binance chain\"},\"pause()\":{\"notice\":\"Triggers the paused state of the controller\"},\"proposalTimelocks(uint256)\":{\"notice\":\"Mapping containing Timelock addresses for each proposal type\"},\"proposals(uint256)\":{\"notice\":\"The official record of all proposals ever proposed\"},\"queued(uint256)\":{\"notice\":\"Represents queue state of proposal\"},\"renounceOwnership()\":{\"notice\":\"Empty implementation of renounce ownership to avoid any mishappening\"},\"retryMessage(uint16,bytes,uint64,bytes)\":{\"notice\":\"Resends a previously failed message\"},\"setGuardian(address)\":{\"notice\":\"Sets the new executor guardian\"},\"setMaxDailyReceiveLimit(uint256)\":{\"notice\":\"Sets the maximum daily limit for receiving commands\"},\"setSrcChainId(uint16)\":{\"notice\":\"Update source layerzero endpoint id\"},\"setTimelockPendingAdmin(address,uint8)\":{\"notice\":\"Sets the new pending admin of the Timelock\"},\"srcChainId()\":{\"notice\":\"Stores BNB chain layerzero endpoint id\"},\"state(uint256)\":{\"notice\":\"Gets the state of a proposal\"},\"unpause()\":{\"notice\":\"Triggers the resume state of the controller\"}},\"notice\":\"Executes the proposal transactions sent from the main chain\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Cross-chain/OmnichainGovernanceExecutor.sol\":\"OmnichainGovernanceExecutor\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/libraries/BytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: Unlicense\\n/*\\n * @title Solidity Bytes Arrays Utils\\n * @author Gon\\u00e7alo S\\u00e1 <goncalo.sa@consensys.net>\\n *\\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\\n *      The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\\n */\\npragma solidity >=0.8.0 <0.9.0;\\n\\nlibrary BytesLib {\\n    function concat(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bytes memory) {\\n        bytes memory tempBytes;\\n\\n        assembly {\\n            // Get a location of some free memory and store it in tempBytes as\\n            // Solidity does for memory variables.\\n            tempBytes := mload(0x40)\\n\\n            // Store the length of the first bytes array at the beginning of\\n            // the memory for tempBytes.\\n            let length := mload(_preBytes)\\n            mstore(tempBytes, length)\\n\\n            // Maintain a memory counter for the current write location in the\\n            // temp bytes array by adding the 32 bytes for the array length to\\n            // the starting location.\\n            let mc := add(tempBytes, 0x20)\\n            // Stop copying when the memory counter reaches the length of the\\n            // first bytes array.\\n            let end := add(mc, length)\\n\\n            for {\\n                // Initialize a copy counter to the start of the _preBytes data,\\n                // 32 bytes into its memory.\\n                let cc := add(_preBytes, 0x20)\\n            } lt(mc, end) {\\n                // Increase both counters by 32 bytes each iteration.\\n                mc := add(mc, 0x20)\\n                cc := add(cc, 0x20)\\n            } {\\n                // Write the _preBytes data into the tempBytes memory 32 bytes\\n                // at a time.\\n                mstore(mc, mload(cc))\\n            }\\n\\n            // Add the length of _postBytes to the current length of tempBytes\\n            // and store it as the new length in the first 32 bytes of the\\n            // tempBytes memory.\\n            length := mload(_postBytes)\\n            mstore(tempBytes, add(length, mload(tempBytes)))\\n\\n            // Move the memory counter back from a multiple of 0x20 to the\\n            // actual end of the _preBytes data.\\n            mc := end\\n            // Stop copying when the memory counter reaches the new combined\\n            // length of the arrays.\\n            end := add(mc, length)\\n\\n            for {\\n                let cc := add(_postBytes, 0x20)\\n            } lt(mc, end) {\\n                mc := add(mc, 0x20)\\n                cc := add(cc, 0x20)\\n            } {\\n                mstore(mc, mload(cc))\\n            }\\n\\n            // Update the free-memory pointer by padding our last write location\\n            // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\\n            // next 32 byte block, then round down to the nearest multiple of\\n            // 32. If the sum of the length of the two arrays is zero then add\\n            // one before rounding down to leave a blank 32 bytes (the length block with 0).\\n            mstore(\\n                0x40,\\n                and(\\n                    add(add(end, iszero(add(length, mload(_preBytes)))), 31),\\n                    not(31) // Round down to the nearest 32 bytes.\\n                )\\n            )\\n        }\\n\\n        return tempBytes;\\n    }\\n\\n    function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\\n        assembly {\\n            // Read the first 32 bytes of _preBytes storage, which is the length\\n            // of the array. (We don't need to use the offset into the slot\\n            // because arrays use the entire slot.)\\n            let fslot := sload(_preBytes.slot)\\n            // Arrays of 31 bytes or less have an even value in their slot,\\n            // while longer arrays have an odd value. The actual length is\\n            // the slot divided by two for odd values, and the lowest order\\n            // byte divided by two for even values.\\n            // If the slot is even, bitwise and the slot with 255 and divide by\\n            // two to get the length. If the slot is odd, bitwise and the slot\\n            // with -1 and divide by two.\\n            let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n            let mlength := mload(_postBytes)\\n            let newlength := add(slength, mlength)\\n            // slength can contain both the length and contents of the array\\n            // if length < 32 bytes so let's prepare for that\\n            // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n            switch add(lt(slength, 32), lt(newlength, 32))\\n            case 2 {\\n                // Since the new array still fits in the slot, we just need to\\n                // update the contents of the slot.\\n                // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\\n                sstore(\\n                    _preBytes.slot,\\n                    // all the modifications to the slot are inside this\\n                    // next block\\n                    add(\\n                        // we can just add to the slot contents because the\\n                        // bytes we want to change are the LSBs\\n                        fslot,\\n                        add(\\n                            mul(\\n                                div(\\n                                    // load the bytes from memory\\n                                    mload(add(_postBytes, 0x20)),\\n                                    // zero all bytes to the right\\n                                    exp(0x100, sub(32, mlength))\\n                                ),\\n                                // and now shift left the number of bytes to\\n                                // leave space for the length in the slot\\n                                exp(0x100, sub(32, newlength))\\n                            ),\\n                            // increase length by the double of the memory\\n                            // bytes length\\n                            mul(mlength, 2)\\n                        )\\n                    )\\n                )\\n            }\\n            case 1 {\\n                // The stored value fits in the slot, but the combined value\\n                // will exceed it.\\n                // get the keccak hash to get the contents of the array\\n                mstore(0x0, _preBytes.slot)\\n                let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n                // save new length\\n                sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n                // The contents of the _postBytes array start 32 bytes into\\n                // the structure. Our first read should obtain the `submod`\\n                // bytes that can fit into the unused space in the last word\\n                // of the stored array. To get this, we read 32 bytes starting\\n                // from `submod`, so the data we read overlaps with the array\\n                // contents by `submod` bytes. Masking the lowest-order\\n                // `submod` bytes allows us to add that value directly to the\\n                // stored value.\\n\\n                let submod := sub(32, slength)\\n                let mc := add(_postBytes, submod)\\n                let end := add(_postBytes, mlength)\\n                let mask := sub(exp(0x100, submod), 1)\\n\\n                sstore(sc, add(and(fslot, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00), and(mload(mc), mask)))\\n\\n                for {\\n                    mc := add(mc, 0x20)\\n                    sc := add(sc, 1)\\n                } lt(mc, end) {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } {\\n                    sstore(sc, mload(mc))\\n                }\\n\\n                mask := exp(0x100, sub(mc, end))\\n\\n                sstore(sc, mul(div(mload(mc), mask), mask))\\n            }\\n            default {\\n                // get the keccak hash to get the contents of the array\\n                mstore(0x0, _preBytes.slot)\\n                // Start copying to the last used word of the stored array.\\n                let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n                // save new length\\n                sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n                // Copy over the first `submod` bytes of the new data as in\\n                // case 1 above.\\n                let slengthmod := mod(slength, 32)\\n                let mlengthmod := mod(mlength, 32)\\n                let submod := sub(32, slengthmod)\\n                let mc := add(_postBytes, submod)\\n                let end := add(_postBytes, mlength)\\n                let mask := sub(exp(0x100, submod), 1)\\n\\n                sstore(sc, add(sload(sc), and(mload(mc), mask)))\\n\\n                for {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } lt(mc, end) {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } {\\n                    sstore(sc, mload(mc))\\n                }\\n\\n                mask := exp(0x100, sub(mc, end))\\n\\n                sstore(sc, mul(div(mload(mc), mask), mask))\\n            }\\n        }\\n    }\\n\\n    function slice(\\n        bytes memory _bytes,\\n        uint _start,\\n        uint _length\\n    ) internal pure returns (bytes memory) {\\n        require(_length + 31 >= _length, \\\"slice_overflow\\\");\\n        require(_bytes.length >= _start + _length, \\\"slice_outOfBounds\\\");\\n\\n        bytes memory tempBytes;\\n\\n        assembly {\\n            switch iszero(_length)\\n            case 0 {\\n                // Get a location of some free memory and store it in tempBytes as\\n                // Solidity does for memory variables.\\n                tempBytes := mload(0x40)\\n\\n                // The first word of the slice result is potentially a partial\\n                // word read from the original array. To read it, we calculate\\n                // the length of that partial word and start copying that many\\n                // bytes into the array. The first word we copy will start with\\n                // data we don't care about, but the last `lengthmod` bytes will\\n                // land at the beginning of the contents of the new array. When\\n                // we're done copying, we overwrite the full first word with\\n                // the actual length of the slice.\\n                let lengthmod := and(_length, 31)\\n\\n                // The multiplication in the next line is necessary\\n                // because when slicing multiples of 32 bytes (lengthmod == 0)\\n                // the following copy loop was copying the origin's length\\n                // and then ending prematurely not copying everything it should.\\n                let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\\n                let end := add(mc, _length)\\n\\n                for {\\n                    // The multiplication in the next line has the same exact purpose\\n                    // as the one above.\\n                    let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\\n                } lt(mc, end) {\\n                    mc := add(mc, 0x20)\\n                    cc := add(cc, 0x20)\\n                } {\\n                    mstore(mc, mload(cc))\\n                }\\n\\n                mstore(tempBytes, _length)\\n\\n                //update free-memory pointer\\n                //allocating the array padded to 32 bytes like the compiler does now\\n                mstore(0x40, and(add(mc, 31), not(31)))\\n            }\\n            //if we want a zero-length slice let's just return a zero-length array\\n            default {\\n                tempBytes := mload(0x40)\\n                //zero out the 32 bytes slice we are about to return\\n                //we need to do it because Solidity does not garbage collect\\n                mstore(tempBytes, 0)\\n\\n                mstore(0x40, add(tempBytes, 0x20))\\n            }\\n        }\\n\\n        return tempBytes;\\n    }\\n\\n    function toAddress(bytes memory _bytes, uint _start) internal pure returns (address) {\\n        require(_bytes.length >= _start + 20, \\\"toAddress_outOfBounds\\\");\\n        address tempAddress;\\n\\n        assembly {\\n            tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\\n        }\\n\\n        return tempAddress;\\n    }\\n\\n    function toUint8(bytes memory _bytes, uint _start) internal pure returns (uint8) {\\n        require(_bytes.length >= _start + 1, \\\"toUint8_outOfBounds\\\");\\n        uint8 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x1), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint16(bytes memory _bytes, uint _start) internal pure returns (uint16) {\\n        require(_bytes.length >= _start + 2, \\\"toUint16_outOfBounds\\\");\\n        uint16 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x2), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint32(bytes memory _bytes, uint _start) internal pure returns (uint32) {\\n        require(_bytes.length >= _start + 4, \\\"toUint32_outOfBounds\\\");\\n        uint32 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x4), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint64(bytes memory _bytes, uint _start) internal pure returns (uint64) {\\n        require(_bytes.length >= _start + 8, \\\"toUint64_outOfBounds\\\");\\n        uint64 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x8), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint96(bytes memory _bytes, uint _start) internal pure returns (uint96) {\\n        require(_bytes.length >= _start + 12, \\\"toUint96_outOfBounds\\\");\\n        uint96 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0xc), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint128(bytes memory _bytes, uint _start) internal pure returns (uint128) {\\n        require(_bytes.length >= _start + 16, \\\"toUint128_outOfBounds\\\");\\n        uint128 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x10), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint256(bytes memory _bytes, uint _start) internal pure returns (uint) {\\n        require(_bytes.length >= _start + 32, \\\"toUint256_outOfBounds\\\");\\n        uint tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x20), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toBytes32(bytes memory _bytes, uint _start) internal pure returns (bytes32) {\\n        require(_bytes.length >= _start + 32, \\\"toBytes32_outOfBounds\\\");\\n        bytes32 tempBytes32;\\n\\n        assembly {\\n            tempBytes32 := mload(add(add(_bytes, 0x20), _start))\\n        }\\n\\n        return tempBytes32;\\n    }\\n\\n    function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\\n        bool success = true;\\n\\n        assembly {\\n            let length := mload(_preBytes)\\n\\n            // if lengths don't match the arrays are not equal\\n            switch eq(length, mload(_postBytes))\\n            case 1 {\\n                // cb is a circuit breaker in the for loop since there's\\n                //  no said feature for inline assembly loops\\n                // cb = 1 - don't breaker\\n                // cb = 0 - break\\n                let cb := 1\\n\\n                let mc := add(_preBytes, 0x20)\\n                let end := add(mc, length)\\n\\n                for {\\n                    let cc := add(_postBytes, 0x20)\\n                    // the next line is the loop condition:\\n                    // while(uint256(mc < end) + cb == 2)\\n                } eq(add(lt(mc, end), cb), 2) {\\n                    mc := add(mc, 0x20)\\n                    cc := add(cc, 0x20)\\n                } {\\n                    // if any of these checks fails then arrays are not equal\\n                    if iszero(eq(mload(mc), mload(cc))) {\\n                        // unsuccess:\\n                        success := 0\\n                        cb := 0\\n                    }\\n                }\\n            }\\n            default {\\n                // unsuccess:\\n                success := 0\\n            }\\n        }\\n\\n        return success;\\n    }\\n\\n    function equalStorage(bytes storage _preBytes, bytes memory _postBytes) internal view returns (bool) {\\n        bool success = true;\\n\\n        assembly {\\n            // we know _preBytes_offset is 0\\n            let fslot := sload(_preBytes.slot)\\n            // Decode the length of the stored array like in concatStorage().\\n            let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n            let mlength := mload(_postBytes)\\n\\n            // if lengths don't match the arrays are not equal\\n            switch eq(slength, mlength)\\n            case 1 {\\n                // slength can contain both the length and contents of the array\\n                // if length < 32 bytes so let's prepare for that\\n                // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n                if iszero(iszero(slength)) {\\n                    switch lt(slength, 32)\\n                    case 1 {\\n                        // blank the last byte which is the length\\n                        fslot := mul(div(fslot, 0x100), 0x100)\\n\\n                        if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\\n                            // unsuccess:\\n                            success := 0\\n                        }\\n                    }\\n                    default {\\n                        // cb is a circuit breaker in the for loop since there's\\n                        //  no said feature for inline assembly loops\\n                        // cb = 1 - don't breaker\\n                        // cb = 0 - break\\n                        let cb := 1\\n\\n                        // get the keccak hash to get the contents of the array\\n                        mstore(0x0, _preBytes.slot)\\n                        let sc := keccak256(0x0, 0x20)\\n\\n                        let mc := add(_postBytes, 0x20)\\n                        let end := add(mc, mlength)\\n\\n                        // the next line is the loop condition:\\n                        // while(uint256(mc < end) + cb == 2)\\n                        for {\\n\\n                        } eq(add(lt(mc, end), cb), 2) {\\n                            sc := add(sc, 1)\\n                            mc := add(mc, 0x20)\\n                        } {\\n                            if iszero(eq(sload(sc), mload(mc))) {\\n                                // unsuccess:\\n                                success := 0\\n                                cb := 0\\n                            }\\n                        }\\n                    }\\n                }\\n            }\\n            default {\\n                // unsuccess:\\n                success := 0\\n            }\\n        }\\n\\n        return success;\\n    }\\n}\\n\",\"keccak256\":\"0x7e64cccdf22a03f513d94960f2145dd801fb5ec88d971de079b5186a9f5e93c4\",\"license\":\"Unlicense\"},\"@layerzerolabs/solidity-examples/contracts/libraries/ExcessivelySafeCall.sol\":{\"content\":\"// SPDX-License-Identifier: MIT OR Apache-2.0\\npragma solidity >=0.7.6;\\n\\nlibrary ExcessivelySafeCall {\\n    uint constant LOW_28_MASK = 0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff;\\n\\n    /// @notice Use when you _really_ really _really_ don't trust the called\\n    /// contract. This prevents the called contract from causing reversion of\\n    /// the caller in as many ways as we can.\\n    /// @dev The main difference between this and a solidity low-level call is\\n    /// that we limit the number of bytes that the callee can cause to be\\n    /// copied to caller memory. This prevents stupid things like malicious\\n    /// contracts returning 10,000,000 bytes causing a local OOG when copying\\n    /// to memory.\\n    /// @param _target The address to call\\n    /// @param _gas The amount of gas to forward to the remote contract\\n    /// @param _maxCopy The maximum number of bytes of returndata to copy\\n    /// to memory.\\n    /// @param _calldata The data to send to the remote contract\\n    /// @return success and returndata, as `.call()`. Returndata is capped to\\n    /// `_maxCopy` bytes.\\n    function excessivelySafeCall(\\n        address _target,\\n        uint _gas,\\n        uint16 _maxCopy,\\n        bytes memory _calldata\\n    ) internal returns (bool, bytes memory) {\\n        // set up for assembly call\\n        uint _toCopy;\\n        bool _success;\\n        bytes memory _returnData = new bytes(_maxCopy);\\n        // dispatch message to recipient\\n        // by assembly calling \\\"handle\\\" function\\n        // we call via assembly to avoid memcopying a very large returndata\\n        // returned by a malicious contract\\n        assembly {\\n            _success := call(\\n                _gas, // gas\\n                _target, // recipient\\n                0, // ether value\\n                add(_calldata, 0x20), // inloc\\n                mload(_calldata), // inlen\\n                0, // outloc\\n                0 // outlen\\n            )\\n            // limit our copy to 256 bytes\\n            _toCopy := returndatasize()\\n            if gt(_toCopy, _maxCopy) {\\n                _toCopy := _maxCopy\\n            }\\n            // Store the length of the copied bytes\\n            mstore(_returnData, _toCopy)\\n            // copy the bytes from returndata[0:_toCopy]\\n            returndatacopy(add(_returnData, 0x20), 0, _toCopy)\\n        }\\n        return (_success, _returnData);\\n    }\\n\\n    /// @notice Use when you _really_ really _really_ don't trust the called\\n    /// contract. This prevents the called contract from causing reversion of\\n    /// the caller in as many ways as we can.\\n    /// @dev The main difference between this and a solidity low-level call is\\n    /// that we limit the number of bytes that the callee can cause to be\\n    /// copied to caller memory. This prevents stupid things like malicious\\n    /// contracts returning 10,000,000 bytes causing a local OOG when copying\\n    /// to memory.\\n    /// @param _target The address to call\\n    /// @param _gas The amount of gas to forward to the remote contract\\n    /// @param _maxCopy The maximum number of bytes of returndata to copy\\n    /// to memory.\\n    /// @param _calldata The data to send to the remote contract\\n    /// @return success and returndata, as `.call()`. Returndata is capped to\\n    /// `_maxCopy` bytes.\\n    function excessivelySafeStaticCall(\\n        address _target,\\n        uint _gas,\\n        uint16 _maxCopy,\\n        bytes memory _calldata\\n    ) internal view returns (bool, bytes memory) {\\n        // set up for assembly call\\n        uint _toCopy;\\n        bool _success;\\n        bytes memory _returnData = new bytes(_maxCopy);\\n        // dispatch message to recipient\\n        // by assembly calling \\\"handle\\\" function\\n        // we call via assembly to avoid memcopying a very large returndata\\n        // returned by a malicious contract\\n        assembly {\\n            _success := staticcall(\\n                _gas, // gas\\n                _target, // recipient\\n                add(_calldata, 0x20), // inloc\\n                mload(_calldata), // inlen\\n                0, // outloc\\n                0 // outlen\\n            )\\n            // limit our copy to 256 bytes\\n            _toCopy := returndatasize()\\n            if gt(_toCopy, _maxCopy) {\\n                _toCopy := _maxCopy\\n            }\\n            // Store the length of the copied bytes\\n            mstore(_returnData, _toCopy)\\n            // copy the bytes from returndata[0:_toCopy]\\n            returndatacopy(add(_returnData, 0x20), 0, _toCopy)\\n        }\\n        return (_success, _returnData);\\n    }\\n\\n    /**\\n     * @notice Swaps function selectors in encoded contract calls\\n     * @dev Allows reuse of encoded calldata for functions with identical\\n     * argument types but different names. It simply swaps out the first 4 bytes\\n     * for the new selector. This function modifies memory in place, and should\\n     * only be used with caution.\\n     * @param _newSelector The new 4-byte selector\\n     * @param _buf The encoded contract args\\n     */\\n    function swapSelector(bytes4 _newSelector, bytes memory _buf) internal pure {\\n        require(_buf.length >= 4);\\n        uint _mask = LOW_28_MASK;\\n        assembly {\\n            // load the first word of\\n            let _word := mload(add(_buf, 0x20))\\n            // mask out the top 4 bytes\\n            // /x\\n            _word := and(_word, _mask)\\n            _word := or(_newSelector, _word)\\n            mstore(add(_buf, 0x20), _word)\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xd4e52af409b5ec80432292d86fb01906785eb78ac31da3bab4565aabcd6e3e56\",\"license\":\"MIT OR Apache-2.0\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport \\\"./interfaces/ILayerZeroReceiver.sol\\\";\\nimport \\\"./interfaces/ILayerZeroUserApplicationConfig.sol\\\";\\nimport \\\"./interfaces/ILayerZeroEndpoint.sol\\\";\\nimport \\\"../libraries/BytesLib.sol\\\";\\n\\n/*\\n * a generic LzReceiver implementation\\n */\\nabstract contract LzApp is Ownable, ILayerZeroReceiver, ILayerZeroUserApplicationConfig {\\n    using BytesLib for bytes;\\n\\n    // ua can not send payload larger than this by default, but it can be changed by the ua owner\\n    uint public constant DEFAULT_PAYLOAD_SIZE_LIMIT = 10000;\\n\\n    ILayerZeroEndpoint public immutable lzEndpoint;\\n    mapping(uint16 => bytes) public trustedRemoteLookup;\\n    mapping(uint16 => mapping(uint16 => uint)) public minDstGasLookup;\\n    mapping(uint16 => uint) public payloadSizeLimitLookup;\\n    address public precrime;\\n\\n    event SetPrecrime(address precrime);\\n    event SetTrustedRemote(uint16 _remoteChainId, bytes _path);\\n    event SetTrustedRemoteAddress(uint16 _remoteChainId, bytes _remoteAddress);\\n    event SetMinDstGas(uint16 _dstChainId, uint16 _type, uint _minDstGas);\\n\\n    constructor(address _endpoint) {\\n        lzEndpoint = ILayerZeroEndpoint(_endpoint);\\n    }\\n\\n    function lzReceive(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) public virtual override {\\n        // lzReceive must be called by the endpoint for security\\n        require(_msgSender() == address(lzEndpoint), \\\"LzApp: invalid endpoint caller\\\");\\n\\n        bytes memory trustedRemote = trustedRemoteLookup[_srcChainId];\\n        // if will still block the message pathway from (srcChainId, srcAddress). should not receive message from untrusted remote.\\n        require(\\n            _srcAddress.length == trustedRemote.length && trustedRemote.length > 0 && keccak256(_srcAddress) == keccak256(trustedRemote),\\n            \\\"LzApp: invalid source sending contract\\\"\\n        );\\n\\n        _blockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n    }\\n\\n    // abstract function - the default behaviour of LayerZero is blocking. See: NonblockingLzApp if you dont need to enforce ordered messaging\\n    function _blockingLzReceive(\\n        uint16 _srcChainId,\\n        bytes memory _srcAddress,\\n        uint64 _nonce,\\n        bytes memory _payload\\n    ) internal virtual;\\n\\n    function _lzSend(\\n        uint16 _dstChainId,\\n        bytes memory _payload,\\n        address payable _refundAddress,\\n        address _zroPaymentAddress,\\n        bytes memory _adapterParams,\\n        uint _nativeFee\\n    ) internal virtual {\\n        bytes memory trustedRemote = trustedRemoteLookup[_dstChainId];\\n        require(trustedRemote.length != 0, \\\"LzApp: destination chain is not a trusted source\\\");\\n        _checkPayloadSize(_dstChainId, _payload.length);\\n        lzEndpoint.send{value: _nativeFee}(_dstChainId, trustedRemote, _payload, _refundAddress, _zroPaymentAddress, _adapterParams);\\n    }\\n\\n    function _checkGasLimit(\\n        uint16 _dstChainId,\\n        uint16 _type,\\n        bytes memory _adapterParams,\\n        uint _extraGas\\n    ) internal view virtual {\\n        uint providedGasLimit = _getGasLimit(_adapterParams);\\n        uint minGasLimit = minDstGasLookup[_dstChainId][_type];\\n        require(minGasLimit > 0, \\\"LzApp: minGasLimit not set\\\");\\n        require(providedGasLimit >= minGasLimit + _extraGas, \\\"LzApp: gas limit is too low\\\");\\n    }\\n\\n    function _getGasLimit(bytes memory _adapterParams) internal pure virtual returns (uint gasLimit) {\\n        require(_adapterParams.length >= 34, \\\"LzApp: invalid adapterParams\\\");\\n        assembly {\\n            gasLimit := mload(add(_adapterParams, 34))\\n        }\\n    }\\n\\n    function _checkPayloadSize(uint16 _dstChainId, uint _payloadSize) internal view virtual {\\n        uint payloadSizeLimit = payloadSizeLimitLookup[_dstChainId];\\n        if (payloadSizeLimit == 0) {\\n            // use default if not set\\n            payloadSizeLimit = DEFAULT_PAYLOAD_SIZE_LIMIT;\\n        }\\n        require(_payloadSize <= payloadSizeLimit, \\\"LzApp: payload size is too large\\\");\\n    }\\n\\n    //---------------------------UserApplication config----------------------------------------\\n    function getConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        address,\\n        uint _configType\\n    ) external view returns (bytes memory) {\\n        return lzEndpoint.getConfig(_version, _chainId, address(this), _configType);\\n    }\\n\\n    // generic config for LayerZero user Application\\n    function setConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        uint _configType,\\n        bytes calldata _config\\n    ) external override onlyOwner {\\n        lzEndpoint.setConfig(_version, _chainId, _configType, _config);\\n    }\\n\\n    function setSendVersion(uint16 _version) external override onlyOwner {\\n        lzEndpoint.setSendVersion(_version);\\n    }\\n\\n    function setReceiveVersion(uint16 _version) external override onlyOwner {\\n        lzEndpoint.setReceiveVersion(_version);\\n    }\\n\\n    function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external override onlyOwner {\\n        lzEndpoint.forceResumeReceive(_srcChainId, _srcAddress);\\n    }\\n\\n    // _path = abi.encodePacked(remoteAddress, localAddress)\\n    // this function set the trusted path for the cross-chain communication\\n    function setTrustedRemote(uint16 _remoteChainId, bytes calldata _path) external onlyOwner {\\n        trustedRemoteLookup[_remoteChainId] = _path;\\n        emit SetTrustedRemote(_remoteChainId, _path);\\n    }\\n\\n    function setTrustedRemoteAddress(uint16 _remoteChainId, bytes calldata _remoteAddress) external onlyOwner {\\n        trustedRemoteLookup[_remoteChainId] = abi.encodePacked(_remoteAddress, address(this));\\n        emit SetTrustedRemoteAddress(_remoteChainId, _remoteAddress);\\n    }\\n\\n    function getTrustedRemoteAddress(uint16 _remoteChainId) external view returns (bytes memory) {\\n        bytes memory path = trustedRemoteLookup[_remoteChainId];\\n        require(path.length != 0, \\\"LzApp: no trusted path record\\\");\\n        return path.slice(0, path.length - 20); // the last 20 bytes should be address(this)\\n    }\\n\\n    function setPrecrime(address _precrime) external onlyOwner {\\n        precrime = _precrime;\\n        emit SetPrecrime(_precrime);\\n    }\\n\\n    function setMinDstGas(\\n        uint16 _dstChainId,\\n        uint16 _packetType,\\n        uint _minGas\\n    ) external onlyOwner {\\n        minDstGasLookup[_dstChainId][_packetType] = _minGas;\\n        emit SetMinDstGas(_dstChainId, _packetType, _minGas);\\n    }\\n\\n    // if the size is 0, it means default size limit\\n    function setPayloadSizeLimit(uint16 _dstChainId, uint _size) external onlyOwner {\\n        payloadSizeLimitLookup[_dstChainId] = _size;\\n    }\\n\\n    //--------------------------- VIEW FUNCTION ----------------------------------------\\n    function isTrustedRemote(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool) {\\n        bytes memory trustedSource = trustedRemoteLookup[_srcChainId];\\n        return keccak256(trustedSource) == keccak256(_srcAddress);\\n    }\\n}\\n\",\"keccak256\":\"0x309c994bdcf69ad63c6789694a28eb72a773e2d9db58fe572ab2b34a475972ce\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./LzApp.sol\\\";\\nimport \\\"../libraries/ExcessivelySafeCall.sol\\\";\\n\\n/*\\n * the default LayerZero messaging behaviour is blocking, i.e. any failed message will block the channel\\n * this abstract class try-catch all fail messages and store locally for future retry. hence, non-blocking\\n * NOTE: if the srcAddress is not configured properly, it will still block the message pathway from (srcChainId, srcAddress)\\n */\\nabstract contract NonblockingLzApp is LzApp {\\n    using ExcessivelySafeCall for address;\\n\\n    constructor(address _endpoint) LzApp(_endpoint) {}\\n\\n    mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32))) public failedMessages;\\n\\n    event MessageFailed(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes _payload, bytes _reason);\\n    event RetryMessageSuccess(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes32 _payloadHash);\\n\\n    // overriding the virtual function in LzReceiver\\n    function _blockingLzReceive(\\n        uint16 _srcChainId,\\n        bytes memory _srcAddress,\\n        uint64 _nonce,\\n        bytes memory _payload\\n    ) internal virtual override {\\n        (bool success, bytes memory reason) = address(this).excessivelySafeCall(\\n            gasleft(),\\n            150,\\n            abi.encodeWithSelector(this.nonblockingLzReceive.selector, _srcChainId, _srcAddress, _nonce, _payload)\\n        );\\n        if (!success) {\\n            _storeFailedMessage(_srcChainId, _srcAddress, _nonce, _payload, reason);\\n        }\\n    }\\n\\n    function _storeFailedMessage(\\n        uint16 _srcChainId,\\n        bytes memory _srcAddress,\\n        uint64 _nonce,\\n        bytes memory _payload,\\n        bytes memory _reason\\n    ) internal virtual {\\n        failedMessages[_srcChainId][_srcAddress][_nonce] = keccak256(_payload);\\n        emit MessageFailed(_srcChainId, _srcAddress, _nonce, _payload, _reason);\\n    }\\n\\n    function nonblockingLzReceive(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) public virtual {\\n        // only internal transaction\\n        require(_msgSender() == address(this), \\\"NonblockingLzApp: caller must be LzApp\\\");\\n        _nonblockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n    }\\n\\n    //@notice override this function\\n    function _nonblockingLzReceive(\\n        uint16 _srcChainId,\\n        bytes memory _srcAddress,\\n        uint64 _nonce,\\n        bytes memory _payload\\n    ) internal virtual;\\n\\n    function retryMessage(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) public payable virtual {\\n        // assert there is message to retry\\n        bytes32 payloadHash = failedMessages[_srcChainId][_srcAddress][_nonce];\\n        require(payloadHash != bytes32(0), \\\"NonblockingLzApp: no stored message\\\");\\n        require(keccak256(_payload) == payloadHash, \\\"NonblockingLzApp: invalid payload\\\");\\n        // clear the stored message\\n        failedMessages[_srcChainId][_srcAddress][_nonce] = bytes32(0);\\n        // execute the message. revert if it fails again\\n        _nonblockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n        emit RetryMessageSuccess(_srcChainId, _srcAddress, _nonce, payloadHash);\\n    }\\n}\\n\",\"keccak256\":\"0xf4bd9e0ecfa4eb18e7305eb66da44c8a4610c3d5afeaf6a3b44c4bf4b7169b40\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroEndpoint.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"./ILayerZeroUserApplicationConfig.sol\\\";\\n\\ninterface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig {\\n    // @notice send a LayerZero message to the specified address at a LayerZero endpoint.\\n    // @param _dstChainId - the destination chain identifier\\n    // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains\\n    // @param _payload - a custom bytes payload to send to the destination contract\\n    // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address\\n    // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction\\n    // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination\\n    function send(\\n        uint16 _dstChainId,\\n        bytes calldata _destination,\\n        bytes calldata _payload,\\n        address payable _refundAddress,\\n        address _zroPaymentAddress,\\n        bytes calldata _adapterParams\\n    ) external payable;\\n\\n    // @notice used by the messaging library to publish verified payload\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source contract (as bytes) at the source chain\\n    // @param _dstAddress - the address on destination chain\\n    // @param _nonce - the unbound message ordering nonce\\n    // @param _gasLimit - the gas limit for external contract execution\\n    // @param _payload - verified payload to send to the destination contract\\n    function receivePayload(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        address _dstAddress,\\n        uint64 _nonce,\\n        uint _gasLimit,\\n        bytes calldata _payload\\n    ) external;\\n\\n    // @notice get the inboundNonce of a lzApp from a source chain which could be EVM or non-EVM chain\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint64);\\n\\n    // @notice get the outboundNonce from this source chain which, consequently, is always an EVM\\n    // @param _srcAddress - the source chain contract address\\n    function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view returns (uint64);\\n\\n    // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery\\n    // @param _dstChainId - the destination chain identifier\\n    // @param _userApplication - the user app address on this EVM chain\\n    // @param _payload - the custom message to send over LayerZero\\n    // @param _payInZRO - if false, user app pays the protocol fee in native token\\n    // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain\\n    function estimateFees(\\n        uint16 _dstChainId,\\n        address _userApplication,\\n        bytes calldata _payload,\\n        bool _payInZRO,\\n        bytes calldata _adapterParam\\n    ) external view returns (uint nativeFee, uint zroFee);\\n\\n    // @notice get this Endpoint's immutable source identifier\\n    function getChainId() external view returns (uint16);\\n\\n    // @notice the interface to retry failed message on this Endpoint destination\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    // @param _payload - the payload to be retried\\n    function retryPayload(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        bytes calldata _payload\\n    ) external;\\n\\n    // @notice query if any STORED payload (message blocking) at the endpoint.\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool);\\n\\n    // @notice query if the _libraryAddress is valid for sending msgs.\\n    // @param _userApplication - the user app address on this EVM chain\\n    function getSendLibraryAddress(address _userApplication) external view returns (address);\\n\\n    // @notice query if the _libraryAddress is valid for receiving msgs.\\n    // @param _userApplication - the user app address on this EVM chain\\n    function getReceiveLibraryAddress(address _userApplication) external view returns (address);\\n\\n    // @notice query if the non-reentrancy guard for send() is on\\n    // @return true if the guard is on. false otherwise\\n    function isSendingPayload() external view returns (bool);\\n\\n    // @notice query if the non-reentrancy guard for receive() is on\\n    // @return true if the guard is on. false otherwise\\n    function isReceivingPayload() external view returns (bool);\\n\\n    // @notice get the configuration of the LayerZero messaging library of the specified version\\n    // @param _version - messaging library version\\n    // @param _chainId - the chainId for the pending config change\\n    // @param _userApplication - the contract address of the user application\\n    // @param _configType - type of configuration. every messaging library has its own convention.\\n    function getConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        address _userApplication,\\n        uint _configType\\n    ) external view returns (bytes memory);\\n\\n    // @notice get the send() LayerZero messaging library version\\n    // @param _userApplication - the contract address of the user application\\n    function getSendVersion(address _userApplication) external view returns (uint16);\\n\\n    // @notice get the lzReceive() LayerZero messaging library version\\n    // @param _userApplication - the contract address of the user application\\n    function getReceiveVersion(address _userApplication) external view returns (uint16);\\n}\\n\",\"keccak256\":\"0xab7fcacc672251c850f00c0abd4100df9afcc4ad70b8d331a2fd4cb07acab9f4\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroReceiver {\\n    // @notice LayerZero endpoint will invoke this function to deliver the message on the destination\\n    // @param _srcChainId - the source endpoint identifier\\n    // @param _srcAddress - the source sending contract address from the source chain\\n    // @param _nonce - the ordered message nonce\\n    // @param _payload - the signed payload is the UA bytes has encoded to be sent\\n    function lzReceive(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) external;\\n}\\n\",\"keccak256\":\"0xac1966c1229bd4dc36b6c69eeb94a537bd9aa2198d7623b9ba7f8f7dbe79bb4c\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroUserApplicationConfig.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroUserApplicationConfig {\\n    // @notice set the configuration of the LayerZero messaging library of the specified version\\n    // @param _version - messaging library version\\n    // @param _chainId - the chainId for the pending config change\\n    // @param _configType - type of configuration. every messaging library has its own convention.\\n    // @param _config - configuration in the bytes. can encode arbitrary content.\\n    function setConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        uint _configType,\\n        bytes calldata _config\\n    ) external;\\n\\n    // @notice set the send() LayerZero messaging library version to _version\\n    // @param _version - new messaging library version\\n    function setSendVersion(uint16 _version) external;\\n\\n    // @notice set the lzReceive() LayerZero messaging library version to _version\\n    // @param _version - new messaging library version\\n    function setReceiveVersion(uint16 _version) external;\\n\\n    // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\\n    // @param _srcChainId - the chainId of the source chain\\n    // @param _srcAddress - the contract address of the source contract at the source chain\\n    function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\\n}\\n\",\"keccak256\":\"0xb4df93aeb0fb46373a4fb728ad2603edc8b9a1577eee8d801768dc115bf96498\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    constructor() {\\n        _transferOwnership(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        _checkOwner();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if the sender is not the owner.\\n     */\\n    function _checkOwner() internal view virtual {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby disabling any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n}\\n\",\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\"},\"@openzeppelin/contracts/security/Pausable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (security/Pausable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which allows children to implement an emergency stop\\n * mechanism that can be triggered by an authorized account.\\n *\\n * This module is used through inheritance. It will make available the\\n * modifiers `whenNotPaused` and `whenPaused`, which can be applied to\\n * the functions of your contract. Note that they will not be pausable by\\n * simply including this module, only once the modifiers are put in place.\\n */\\nabstract contract Pausable is Context {\\n    /**\\n     * @dev Emitted when the pause is triggered by `account`.\\n     */\\n    event Paused(address account);\\n\\n    /**\\n     * @dev Emitted when the pause is lifted by `account`.\\n     */\\n    event Unpaused(address account);\\n\\n    bool private _paused;\\n\\n    /**\\n     * @dev Initializes the contract in unpaused state.\\n     */\\n    constructor() {\\n        _paused = false;\\n    }\\n\\n    /**\\n     * @dev Modifier to make a function callable only when the contract is not paused.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must not be paused.\\n     */\\n    modifier whenNotPaused() {\\n        _requireNotPaused();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Modifier to make a function callable only when the contract is paused.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must be paused.\\n     */\\n    modifier whenPaused() {\\n        _requirePaused();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns true if the contract is paused, and false otherwise.\\n     */\\n    function paused() public view virtual returns (bool) {\\n        return _paused;\\n    }\\n\\n    /**\\n     * @dev Throws if the contract is paused.\\n     */\\n    function _requireNotPaused() internal view virtual {\\n        require(!paused(), \\\"Pausable: paused\\\");\\n    }\\n\\n    /**\\n     * @dev Throws if the contract is not paused.\\n     */\\n    function _requirePaused() internal view virtual {\\n        require(paused(), \\\"Pausable: not paused\\\");\\n    }\\n\\n    /**\\n     * @dev Triggers stopped state.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must not be paused.\\n     */\\n    function _pause() internal virtual whenNotPaused {\\n        _paused = true;\\n        emit Paused(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Returns to normal state.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must be paused.\\n     */\\n    function _unpause() internal virtual whenPaused {\\n        _paused = false;\\n        emit Unpaused(_msgSender());\\n    }\\n}\\n\",\"keccak256\":\"0x0849d93b16c9940beb286a7864ed02724b248b93e0d80ef6355af5ef15c64773\",\"license\":\"MIT\"},\"@openzeppelin/contracts/security/ReentrancyGuard.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (security/ReentrancyGuard.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Contract module that helps prevent reentrant calls to a function.\\n *\\n * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier\\n * available, which can be applied to functions to make sure there are no nested\\n * (reentrant) calls to them.\\n *\\n * Note that because there is a single `nonReentrant` guard, functions marked as\\n * `nonReentrant` may not call one another. This can be worked around by making\\n * those functions `private`, and then adding `external` `nonReentrant` entry\\n * points to them.\\n *\\n * TIP: If you would like to learn more about reentrancy and alternative ways\\n * to protect against it, check out our blog post\\n * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].\\n */\\nabstract contract ReentrancyGuard {\\n    // Booleans are more expensive than uint256 or any type that takes up a full\\n    // word because each write operation emits an extra SLOAD to first read the\\n    // slot's contents, replace the bits taken up by the boolean, and then write\\n    // back. This is the compiler's defense against contract upgrades and\\n    // pointer aliasing, and it cannot be disabled.\\n\\n    // The values being non-zero value makes deployment a bit more expensive,\\n    // but in exchange the refund on every call to nonReentrant will be lower in\\n    // amount. Since refunds are capped to a percentage of the total\\n    // transaction's gas, it is best to keep them low in cases like this one, to\\n    // increase the likelihood of the full refund coming into effect.\\n    uint256 private constant _NOT_ENTERED = 1;\\n    uint256 private constant _ENTERED = 2;\\n\\n    uint256 private _status;\\n\\n    constructor() {\\n        _status = _NOT_ENTERED;\\n    }\\n\\n    /**\\n     * @dev Prevents a contract from calling itself, directly or indirectly.\\n     * Calling a `nonReentrant` function from another `nonReentrant`\\n     * function is not supported. It is possible to prevent this from happening\\n     * by making the `nonReentrant` function external, and making it call a\\n     * `private` function that does the actual work.\\n     */\\n    modifier nonReentrant() {\\n        _nonReentrantBefore();\\n        _;\\n        _nonReentrantAfter();\\n    }\\n\\n    function _nonReentrantBefore() private {\\n        // On the first call to nonReentrant, _status will be _NOT_ENTERED\\n        require(_status != _ENTERED, \\\"ReentrancyGuard: reentrant call\\\");\\n\\n        // Any calls to nonReentrant after this point will fail\\n        _status = _ENTERED;\\n    }\\n\\n    function _nonReentrantAfter() private {\\n        // By storing the original value once again, a refund is triggered (see\\n        // https://eips.ethereum.org/EIPS/eip-2200)\\n        _status = _NOT_ENTERED;\\n    }\\n\\n    /**\\n     * @dev Returns true if the reentrancy guard is currently set to \\\"entered\\\", which indicates there is a\\n     * `nonReentrant` function in the call stack.\\n     */\\n    function _reentrancyGuardEntered() internal view returns (bool) {\\n        return _status == _ENTERED;\\n    }\\n}\\n\",\"keccak256\":\"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n\\n    function _contextSuffixLength() internal view virtual returns (uint256) {\\n        return 0;\\n    }\\n}\\n\",\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\"},\"@venusprotocol/solidity-utilities/contracts/validators.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\n/// @notice Thrown if the supplied address is a zero address where it is not allowed\\nerror ZeroAddressNotAllowed();\\n\\n/// @notice Thrown if the supplied value is 0 where it is not allowed\\nerror ZeroValueNotAllowed();\\n\\n/// @notice Checks if the provided address is nonzero, reverts otherwise\\n/// @param address_ Address to check\\n/// @custom:error ZeroAddressNotAllowed is thrown if the provided address is a zero address\\nfunction ensureNonzeroAddress(address address_) pure {\\n    if (address_ == address(0)) {\\n        revert ZeroAddressNotAllowed();\\n    }\\n}\\n\\n/// @notice Checks if the provided value is nonzero, reverts otherwise\\n/// @param value_ Value to check\\n/// @custom:error ZeroValueNotAllowed is thrown if the provided value is 0\\nfunction ensureNonzeroValue(uint256 value_) pure {\\n    if (value_ == 0) {\\n        revert ZeroValueNotAllowed();\\n    }\\n}\\n\",\"keccak256\":\"0xdb88e14d50dd21889ca3329d755673d022c47e8da005b6a545c7f69c2c4b7b86\",\"license\":\"BSD-3-Clause\"},\"contracts/Cross-chain/BaseOmnichainControllerDest.sol\":{\"content\":\"//  SPDX-License-Identifier: BSD-3-Clause\\n\\npragma solidity 0.8.25;\\n\\nimport { NonblockingLzApp } from \\\"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol\\\";\\nimport { Pausable } from \\\"@openzeppelin/contracts/security/Pausable.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\n\\n/**\\n * @title BaseOmnichainControllerDest\\n * @author Venus\\n * @dev This contract is the base for the Omnichain controller destination contract\\n * It provides functionality related to daily command limits and pausability\\n * @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion\\n */\\n\\nabstract contract BaseOmnichainControllerDest is NonblockingLzApp, Pausable {\\n    /**\\n     * @notice Maximum daily limit for receiving commands from Binance chain\\n     */\\n    uint256 public maxDailyReceiveLimit;\\n\\n    /**\\n     * @notice Total received commands within the last 24-hour window from Binance chain\\n     */\\n    uint256 public last24HourCommandsReceived;\\n\\n    /**\\n     * @notice Timestamp when the last 24-hour window started from Binance chain\\n     */\\n    uint256 public last24HourReceiveWindowStart;\\n\\n    /**\\n     * @notice Emitted when the maximum daily limit for receiving command from Binance chain is modified\\n     */\\n    event SetMaxDailyReceiveLimit(uint256 oldMaxLimit, uint256 newMaxLimit);\\n\\n    constructor(address endpoint_) NonblockingLzApp(endpoint_) {\\n        ensureNonzeroAddress(endpoint_);\\n    }\\n\\n    /**\\n     * @notice Sets the maximum daily limit for receiving commands\\n     * @param limit_ Number of commands\\n     * @custom:access Only Owner\\n     * @custom:event Emits SetMaxDailyReceiveLimit with old and new limit\\n     */\\n    function setMaxDailyReceiveLimit(uint256 limit_) external onlyOwner {\\n        emit SetMaxDailyReceiveLimit(maxDailyReceiveLimit, limit_);\\n        maxDailyReceiveLimit = limit_;\\n    }\\n\\n    /**\\n     * @notice Triggers the paused state of the controller\\n     * @custom:access Only owner\\n     */\\n    function pause() external onlyOwner {\\n        _pause();\\n    }\\n\\n    /**\\n     * @notice Triggers the resume state of the controller\\n     * @custom:access Only owner\\n     */\\n    function unpause() external onlyOwner {\\n        _unpause();\\n    }\\n\\n    /**\\n     * @notice Empty implementation of renounce ownership to avoid any mishappening\\n     */\\n    function renounceOwnership() public override {}\\n\\n    /**\\n     * @notice Check eligibility to receive commands\\n     * @param noOfCommands_ Number of commands to be received\\n     */\\n    function _isEligibleToReceive(uint256 noOfCommands_) internal {\\n        uint256 currentBlockTimestamp = block.timestamp;\\n\\n        // Load values for the 24-hour window checks for receiving\\n        uint256 receivedInWindow = last24HourCommandsReceived;\\n\\n        // Check if the time window has changed (more than 24 hours have passed)\\n        if (currentBlockTimestamp - last24HourReceiveWindowStart > 1 days) {\\n            receivedInWindow = noOfCommands_;\\n            last24HourReceiveWindowStart = currentBlockTimestamp;\\n        } else {\\n            receivedInWindow += noOfCommands_;\\n        }\\n\\n        // Revert if the received amount exceeds the daily limit\\n        require(receivedInWindow <= maxDailyReceiveLimit, \\\"Daily Transaction Limit Exceeded\\\");\\n\\n        // Update the received amount for the 24-hour window\\n        last24HourCommandsReceived = receivedInWindow;\\n    }\\n}\\n\",\"keccak256\":\"0x5ccc63f55acd7c37e6e3ce36d034f82173bc8daf257cb859e08238b860cf3723\",\"license\":\"BSD-3-Clause\"},\"contracts/Cross-chain/OmnichainGovernanceExecutor.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity 0.8.25;\\n\\nimport { ReentrancyGuard } from \\\"@openzeppelin/contracts/security/ReentrancyGuard.sol\\\";\\nimport { BytesLib } from \\\"@layerzerolabs/solidity-examples/contracts/libraries/BytesLib.sol\\\";\\nimport { ExcessivelySafeCall } from \\\"@layerzerolabs/solidity-examples/contracts/libraries/ExcessivelySafeCall.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\nimport { BaseOmnichainControllerDest } from \\\"./BaseOmnichainControllerDest.sol\\\";\\nimport { ITimelock } from \\\"./interfaces/ITimelock.sol\\\";\\n\\n/**\\n * @title OmnichainGovernanceExecutor\\n * @notice Executes the proposal transactions sent from the main chain\\n * @dev The owner of this contract controls LayerZero configuration. When used in production the owner will be OmnichainExecutor\\n * This implementation is non-blocking, meaning the failed messages will not block the future messages from the source.\\n * For the blocking behavior, derive the contract from LzApp.\\n * @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion\\n */\\ncontract OmnichainGovernanceExecutor is ReentrancyGuard, BaseOmnichainControllerDest {\\n    using BytesLib for bytes;\\n    using ExcessivelySafeCall for address;\\n\\n    enum ProposalType {\\n        NORMAL,\\n        FASTTRACK,\\n        CRITICAL\\n    }\\n\\n    struct Proposal {\\n        /** Unique id for looking up a proposal */\\n        uint256 id;\\n        /** The timestamp that the proposal will be available for execution, set once the vote succeeds */\\n        uint256 eta;\\n        /** The ordered list of target addresses for calls to be made */\\n        address[] targets;\\n        /** The ordered list of values (i.e. msg.value) to be passed to the calls to be made */\\n        uint256[] values;\\n        /** The ordered list of function signatures to be called */\\n        string[] signatures;\\n        /** The ordered list of calldata to be passed to each call */\\n        bytes[] calldatas;\\n        /** Flag marking whether the proposal has been canceled */\\n        bool canceled;\\n        /** Flag marking whether the proposal has been executed */\\n        bool executed;\\n        /** The type of the proposal */\\n        uint8 proposalType;\\n    }\\n    /*\\n     * @notice Possible states that a proposal may be in\\n     */\\n    enum ProposalState {\\n        Canceled,\\n        Queued,\\n        Executed\\n    }\\n\\n    /**\\n     * @notice A privileged role that can cancel any proposal\\n     */\\n    address public guardian;\\n\\n    /**\\n     * @notice Stores BNB chain layerzero endpoint id\\n     */\\n    uint16 public srcChainId;\\n\\n    /**\\n     * @notice Last proposal count received\\n     */\\n    uint256 public lastProposalReceived;\\n\\n    /**\\n     * @notice The official record of all proposals ever proposed\\n     */\\n    mapping(uint256 => Proposal) public proposals;\\n\\n    /**\\n     * @notice Mapping containing Timelock addresses for each proposal type\\n     */\\n    mapping(uint256 => ITimelock) public proposalTimelocks;\\n\\n    /**\\n     * @notice Represents queue state of proposal\\n     */\\n    mapping(uint256 => bool) public queued;\\n\\n    /**\\n     * @notice Emitted when proposal is received\\n     */\\n    event ProposalReceived(\\n        uint256 indexed proposalId,\\n        address[] targets,\\n        uint256[] values,\\n        string[] signatures,\\n        bytes[] calldatas,\\n        uint8 proposalType\\n    );\\n\\n    /**\\n     * @notice Emitted when proposal is queued\\n     */\\n    event ProposalQueued(uint256 indexed id, uint256 eta);\\n\\n    /**\\n     * Emitted when proposal executed\\n     */\\n    event ProposalExecuted(uint256 indexed id);\\n\\n    /**\\n     * @notice Emitted when proposal failed\\n     */\\n    event ReceivePayloadFailed(uint16 indexed srcChainId, bytes indexed srcAddress, uint64 nonce, bytes reason);\\n\\n    /**\\n     * @notice Emitted when proposal is canceled\\n     */\\n    event ProposalCanceled(uint256 indexed id);\\n\\n    /**\\n     * @notice Emitted when timelock added\\n     */\\n    event TimelockAdded(uint8 routeType, address indexed oldTimelock, address indexed newTimelock);\\n\\n    /**\\n     * @notice Emitted when source layerzero endpoint id is updated\\n     */\\n    event SetSrcChainId(uint16 indexed oldSrcChainId, uint16 indexed newSrcChainId);\\n\\n    /**\\n     * @notice Emitted when new guardian address is set\\n     */\\n    event NewGuardian(address indexed oldGuardian, address indexed newGuardian);\\n\\n    /**\\n     * @notice Emitted when pending admin of Timelock is updated\\n     */\\n    event SetTimelockPendingAdmin(address, uint8);\\n\\n    /**\\n     * @notice Thrown when proposal ID is invalid\\n     */\\n    error InvalidProposalId();\\n\\n    constructor(address endpoint_, address guardian_, uint16 srcChainId_) BaseOmnichainControllerDest(endpoint_) {\\n        ensureNonzeroAddress(guardian_);\\n        guardian = guardian_;\\n        srcChainId = srcChainId_;\\n    }\\n\\n    /**\\n     * @notice Update source layerzero endpoint id\\n     * @param srcChainId_ The new source chain id to be set\\n     * @custom:event Emit SetSrcChainId with old and new source id\\n     * @custom:access Only owner\\n     */\\n    function setSrcChainId(uint16 srcChainId_) external onlyOwner {\\n        emit SetSrcChainId(srcChainId, srcChainId_);\\n        srcChainId = srcChainId_;\\n    }\\n\\n    /**\\n     * @notice Sets the new executor guardian\\n     * @param newGuardian The address of the new guardian\\n     * @custom:access Must be call by guardian or owner\\n     * @custom:event Emit NewGuardian with old and new guardian address\\n     */\\n    function setGuardian(address newGuardian) external {\\n        require(\\n            msg.sender == guardian || msg.sender == owner(),\\n            \\\"OmnichainGovernanceExecutor::setGuardian: owner or guardian only\\\"\\n        );\\n        ensureNonzeroAddress(newGuardian);\\n        emit NewGuardian(guardian, newGuardian);\\n        guardian = newGuardian;\\n    }\\n\\n    /**\\n     * @notice Add timelocks to the ProposalTimelocks mapping\\n     * @param timelocks_ Array of addresses of all 3 timelocks\\n     * @custom:access Only owner\\n     * @custom:event Emits TimelockAdded with old and new timelock and route type\\n     */\\n    function addTimelocks(ITimelock[] memory timelocks_) external onlyOwner {\\n        uint8 length = uint8(type(ProposalType).max) + 1;\\n        require(\\n            timelocks_.length == length,\\n            \\\"OmnichainGovernanceExecutor::addTimelocks:number of timelocks should match the number of governance routes\\\"\\n        );\\n        for (uint8 i; i < length; ++i) {\\n            ensureNonzeroAddress(address(timelocks_[i]));\\n            emit TimelockAdded(i, address(proposalTimelocks[i]), address(timelocks_[i]));\\n            proposalTimelocks[i] = timelocks_[i];\\n        }\\n    }\\n\\n    /**\\n     * @notice Executes a queued proposal if eta has passed\\n     * @param proposalId_ Id of proposal that is to be executed\\n     * @custom:event Emits ProposalExecuted with proposal id of executed proposal\\n     */\\n    function execute(uint256 proposalId_) external nonReentrant {\\n        require(\\n            state(proposalId_) == ProposalState.Queued,\\n            \\\"OmnichainGovernanceExecutor::execute: proposal can only be executed if it is queued\\\"\\n        );\\n\\n        Proposal storage proposal = proposals[proposalId_];\\n        proposal.executed = true;\\n        ITimelock timelock = proposalTimelocks[proposal.proposalType];\\n        uint256 eta = proposal.eta;\\n        uint256 length = proposal.targets.length;\\n\\n        emit ProposalExecuted(proposalId_);\\n\\n        for (uint256 i; i < length; ++i) {\\n            timelock.executeTransaction(\\n                proposal.targets[i],\\n                proposal.values[i],\\n                proposal.signatures[i],\\n                proposal.calldatas[i],\\n                eta\\n            );\\n        }\\n        delete queued[proposalId_];\\n    }\\n\\n    /**\\n     * @notice Cancels a proposal only if sender is the guardian and proposal is not executed\\n     * @param proposalId_ Id of proposal that is to be canceled\\n     * @custom:access Sender must be the guardian\\n     * @custom:event Emits ProposalCanceled with proposal id of the canceled proposal\\n     */\\n    function cancel(uint256 proposalId_) external {\\n        require(\\n            state(proposalId_) == ProposalState.Queued,\\n            \\\"OmnichainGovernanceExecutor::cancel: proposal should be queued and not executed\\\"\\n        );\\n        Proposal storage proposal = proposals[proposalId_];\\n        require(msg.sender == guardian, \\\"OmnichainGovernanceExecutor::cancel: sender must be guardian\\\");\\n\\n        proposal.canceled = true;\\n        ITimelock timelock = proposalTimelocks[proposal.proposalType];\\n        uint256 eta = proposal.eta;\\n        uint256 length = proposal.targets.length;\\n\\n        emit ProposalCanceled(proposalId_);\\n\\n        for (uint256 i; i < length; ++i) {\\n            timelock.cancelTransaction(\\n                proposal.targets[i],\\n                proposal.values[i],\\n                proposal.signatures[i],\\n                proposal.calldatas[i],\\n                eta\\n            );\\n        }\\n        delete queued[proposalId_];\\n    }\\n\\n    /**\\n     * @notice Sets the new pending admin of the Timelock\\n     * @param pendingAdmin_ Address of new pending admin\\n     * @param proposalType_ Type of proposal\\n     * @custom:access Only owner\\n     * @custom:event Emits SetTimelockPendingAdmin with new pending admin and proposal type\\n     */\\n    function setTimelockPendingAdmin(address pendingAdmin_, uint8 proposalType_) external onlyOwner {\\n        uint8 proposalTypeLength = uint8(type(ProposalType).max) + 1;\\n        require(\\n            proposalType_ < proposalTypeLength,\\n            \\\"OmnichainGovernanceExecutor::setTimelockPendingAdmin: invalid proposal type\\\"\\n        );\\n\\n        proposalTimelocks[proposalType_].setPendingAdmin(pendingAdmin_);\\n        emit SetTimelockPendingAdmin(pendingAdmin_, proposalType_);\\n    }\\n\\n    /**\\n     * @notice Resends a previously failed message\\n     * @param srcChainId_ Source chain Id\\n     * @param srcAddress_ Source address => local app address + remote app address\\n     * @param nonce_ Nonce to identify failed message\\n     * @param payload_ The payload of the message to be retried\\n     * @custom:access Only owner\\n     */\\n    function retryMessage(\\n        uint16 srcChainId_,\\n        bytes calldata srcAddress_,\\n        uint64 nonce_,\\n        bytes calldata payload_\\n    ) public payable override onlyOwner nonReentrant {\\n        require(\\n            keccak256(trustedRemoteLookup[srcChainId_]) == keccak256(srcAddress_),\\n            \\\"OmnichainGovernanceExecutor::retryMessage: not a trusted remote\\\"\\n        );\\n        super.retryMessage(srcChainId_, srcAddress_, nonce_, payload_);\\n    }\\n\\n    /**\\n     * @notice Gets the state of a proposal\\n     * @param proposalId_ The id of the proposal\\n     * @return Proposal state\\n     */\\n    function state(uint256 proposalId_) public view returns (ProposalState) {\\n        Proposal storage proposal = proposals[proposalId_];\\n        if (proposal.canceled) {\\n            return ProposalState.Canceled;\\n        } else if (proposal.executed) {\\n            return ProposalState.Executed;\\n        } else if (queued[proposalId_]) {\\n            // queued only when proposal is received\\n            return ProposalState.Queued;\\n        } else {\\n            revert InvalidProposalId();\\n        }\\n    }\\n\\n    /**\\n     * @notice Process blocking LayerZero receive request\\n     * @param srcChainId_ Source chain Id\\n     * @param srcAddress_ Source address from which payload is received\\n     * @param nonce_ Nonce associated with the payload to prevent replay attacks\\n     * @param payload_ Encoded payload containing proposal information\\n     * @custom:event Emit ReceivePayloadFailed if call fails\\n     */\\n    function _blockingLzReceive(\\n        uint16 srcChainId_,\\n        bytes memory srcAddress_,\\n        uint64 nonce_,\\n        bytes memory payload_\\n    ) internal virtual override {\\n        require(srcChainId_ == srcChainId, \\\"OmnichainGovernanceExecutor::_blockingLzReceive: invalid source chain id\\\");\\n        bytes32 hashedPayload = keccak256(payload_);\\n        bytes memory callData = abi.encodeCall(this.nonblockingLzReceive, (srcChainId_, srcAddress_, nonce_, payload_));\\n\\n        (bool success, bytes memory reason) = address(this).excessivelySafeCall(gasleft() - 30000, 150, callData);\\n        // try-catch all errors/exceptions\\n        if (!success) {\\n            failedMessages[srcChainId_][srcAddress_][nonce_] = hashedPayload;\\n            emit ReceivePayloadFailed(srcChainId_, srcAddress_, nonce_, reason); // Retrieve payload from the src side tx if needed to clear\\n        }\\n    }\\n\\n    /**\\n     * @notice Process non blocking LayerZero receive request\\n     * @param payload_ Encoded payload containing proposal information\\n     * @custom:event Emit ProposalReceived\\n     */\\n    function _nonblockingLzReceive(\\n        uint16,\\n        bytes memory,\\n        uint64,\\n        bytes memory payload_\\n    ) internal virtual override whenNotPaused {\\n        (bytes memory payload, uint256 pId) = abi.decode(payload_, (bytes, uint256));\\n        (\\n            address[] memory targets,\\n            uint256[] memory values,\\n            string[] memory signatures,\\n            bytes[] memory calldatas,\\n            uint8 pType\\n        ) = abi.decode(payload, (address[], uint256[], string[], bytes[], uint8));\\n        require(proposals[pId].id == 0, \\\"OmnichainGovernanceExecutor::_nonblockingLzReceive: duplicate proposal\\\");\\n        require(\\n            targets.length == values.length &&\\n                targets.length == signatures.length &&\\n                targets.length == calldatas.length,\\n            \\\"OmnichainGovernanceExecutor::_nonblockingLzReceive: proposal function information arity mismatch\\\"\\n        );\\n        require(\\n            pType < uint8(type(ProposalType).max) + 1,\\n            \\\"OmnichainGovernanceExecutor::_nonblockingLzReceive: invalid proposal type\\\"\\n        );\\n        _isEligibleToReceive(targets.length);\\n\\n        Proposal memory newProposal = Proposal({\\n            id: pId,\\n            eta: 0,\\n            targets: targets,\\n            values: values,\\n            signatures: signatures,\\n            calldatas: calldatas,\\n            canceled: false,\\n            executed: false,\\n            proposalType: pType\\n        });\\n\\n        proposals[pId] = newProposal;\\n        lastProposalReceived = pId;\\n\\n        emit ProposalReceived(newProposal.id, targets, values, signatures, calldatas, pType);\\n        _queue(pId);\\n    }\\n\\n    /**\\n     * @notice Queue proposal for execution\\n     * @param proposalId_ Proposal to be queued\\n     * @custom:event Emit ProposalQueued with proposal id and eta\\n     */\\n    function _queue(uint256 proposalId_) internal {\\n        Proposal storage proposal = proposals[proposalId_];\\n        uint256 eta = block.timestamp + proposalTimelocks[proposal.proposalType].delay();\\n\\n        proposal.eta = eta;\\n        queued[proposalId_] = true;\\n        uint8 proposalType = proposal.proposalType;\\n        uint256 length = proposal.targets.length;\\n        emit ProposalQueued(proposalId_, eta);\\n\\n        for (uint256 i; i < length; ++i) {\\n            _queueOrRevertInternal(\\n                proposal.targets[i],\\n                proposal.values[i],\\n                proposal.signatures[i],\\n                proposal.calldatas[i],\\n                eta,\\n                proposalType\\n            );\\n        }\\n    }\\n\\n    /**\\n     * @notice Check for unique proposal\\n     * @param target_ Address of the contract with the method to be called\\n     * @param value_ Native token amount sent with the transaction\\n     * @param signature_ Signature of the function to be called\\n     * @param data_ Arguments to be passed to the function when called\\n     * @param eta_ Timestamp after which the transaction can be executed\\n     * @param proposalType_ Type of proposal\\n     */\\n    function _queueOrRevertInternal(\\n        address target_,\\n        uint256 value_,\\n        string memory signature_,\\n        bytes memory data_,\\n        uint256 eta_,\\n        uint8 proposalType_\\n    ) internal {\\n        require(\\n            !proposalTimelocks[proposalType_].queuedTransactions(\\n                keccak256(abi.encode(target_, value_, signature_, data_, eta_))\\n            ),\\n            \\\"OmnichainGovernanceExecutor::queueOrRevertInternal: identical proposal action already queued at eta\\\"\\n        );\\n\\n        proposalTimelocks[proposalType_].queueTransaction(target_, value_, signature_, data_, eta_);\\n    }\\n}\\n\",\"keccak256\":\"0x6b3858ea6ac8248a7189910ed6f8af22cfa2299bcec8d015940ddae3406b3adb\",\"license\":\"MIT\"},\"contracts/Cross-chain/interfaces/ITimelock.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\n/**\\n * @title ITimelock\\n * @author Venus\\n * @dev Interface for Timelock contract\\n * @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion\\n */\\ninterface ITimelock {\\n    /**\\n     * @notice Delay period for the transaction queue\\n     */\\n    function delay() external view returns (uint256);\\n\\n    /**\\n     * @notice Required period to execute a proposal transaction\\n     */\\n    function GRACE_PERIOD() external view returns (uint256);\\n\\n    /**\\n     * @notice Method for accepting a proposed admin\\n     */\\n    function acceptAdmin() external;\\n\\n    /**\\n     * @notice Method to propose a new admin authorized to call timelock functions. This should be the Governor Contract.\\n     */\\n    function setPendingAdmin(address pendingAdmin) external;\\n\\n    /**\\n     * @notice Show mapping of queued transactions\\n     * @param hash Transaction hash\\n     */\\n    function queuedTransactions(bytes32 hash) external view returns (bool);\\n\\n    /**\\n     * @notice Called for each action when queuing a proposal\\n     * @param target Address of the contract with the method to be called\\n     * @param value Native token amount sent with the transaction\\n     * @param signature signature of the function to be called\\n     * @param data Arguments to be passed to the function when called\\n     * @param eta Timestamp after which the transaction can be executed\\n     * @return Hash of the queued transaction\\n     */\\n    function queueTransaction(\\n        address target,\\n        uint256 value,\\n        string calldata signature,\\n        bytes calldata data,\\n        uint256 eta\\n    ) external returns (bytes32);\\n\\n    /**\\n     * @notice Called to cancel a queued transaction\\n     * @param target Address of the contract with the method to be called\\n     * @param value Native token amount sent with the transaction\\n     * @param signature signature of the function to be called\\n     * @param data Arguments to be passed to the function when called\\n     * @param eta Timestamp after which the transaction can be executed\\n     */\\n    function cancelTransaction(\\n        address target,\\n        uint256 value,\\n        string calldata signature,\\n        bytes calldata data,\\n        uint256 eta\\n    ) external;\\n\\n    /**\\n     * @notice Called to execute a queued transaction\\n     * @param target Address of the contract with the method to be called\\n     * @param value Native token amount sent with the transaction\\n     * @param signature signature of the function to be called\\n     * @param data Arguments to be passed to the function when called\\n     * @param eta Timestamp after which the transaction can be executed\\n     * @return Result of function call\\n     */\\n    function executeTransaction(\\n        address target,\\n        uint256 value,\\n        string calldata signature,\\n        bytes calldata data,\\n        uint256 eta\\n    ) external payable returns (bytes memory);\\n}\\n\",\"keccak256\":\"0x7e05998e5b36a78e6b7933e446c0e0a634ba7fdaae1eb8ba6d4affe12f3a2712\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":7195,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"_status","offset":0,"slot":"0","type":"t_uint256"},{"astId":6971,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"_owner","offset":0,"slot":"1","type":"t_address"},{"astId":3351,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"trustedRemoteLookup","offset":0,"slot":"2","type":"t_mapping(t_uint16,t_bytes_storage)"},{"astId":3357,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"minDstGasLookup","offset":0,"slot":"3","type":"t_mapping(t_uint16,t_mapping(t_uint16,t_uint256))"},{"astId":3361,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"payloadSizeLimitLookup","offset":0,"slot":"4","type":"t_mapping(t_uint16,t_uint256)"},{"astId":3363,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"precrime","offset":0,"slot":"5","type":"t_address"},{"astId":3893,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"failedMessages","offset":0,"slot":"6","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32)))"},{"astId":7094,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"_paused","offset":0,"slot":"7","type":"t_bool"},{"astId":11010,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"maxDailyReceiveLimit","offset":0,"slot":"8","type":"t_uint256"},{"astId":11013,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"last24HourCommandsReceived","offset":0,"slot":"9","type":"t_uint256"},{"astId":11016,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"last24HourReceiveWindowStart","offset":0,"slot":"10","type":"t_uint256"},{"astId":11765,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"guardian","offset":0,"slot":"11","type":"t_address"},{"astId":11768,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"srcChainId","offset":20,"slot":"11","type":"t_uint16"},{"astId":11771,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"lastProposalReceived","offset":0,"slot":"12","type":"t_uint256"},{"astId":11777,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"proposals","offset":0,"slot":"13","type":"t_mapping(t_uint256,t_struct(Proposal)11758_storage)"},{"astId":11783,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"proposalTimelocks","offset":0,"slot":"14","type":"t_mapping(t_uint256,t_contract(ITimelock)13525)"},{"astId":11788,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"queued","offset":0,"slot":"15","type":"t_mapping(t_uint256,t_bool)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_address)dyn_storage":{"base":"t_address","encoding":"dynamic_array","label":"address[]","numberOfBytes":"32"},"t_array(t_bytes_storage)dyn_storage":{"base":"t_bytes_storage","encoding":"dynamic_array","label":"bytes[]","numberOfBytes":"32"},"t_array(t_string_storage)dyn_storage":{"base":"t_string_storage","encoding":"dynamic_array","label":"string[]","numberOfBytes":"32"},"t_array(t_uint256)dyn_storage":{"base":"t_uint256","encoding":"dynamic_array","label":"uint256[]","numberOfBytes":"32"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes_memory_ptr":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_contract(ITimelock)13525":{"encoding":"inplace","label":"contract ITimelock","numberOfBytes":"20"},"t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32))":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => mapping(uint64 => bytes32))","numberOfBytes":"32","value":"t_mapping(t_uint64,t_bytes32)"},"t_mapping(t_uint16,t_bytes_storage)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => bytes)","numberOfBytes":"32","value":"t_bytes_storage"},"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32)))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32)))","numberOfBytes":"32","value":"t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32))"},"t_mapping(t_uint16,t_mapping(t_uint16,t_uint256))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(uint16 => uint256))","numberOfBytes":"32","value":"t_mapping(t_uint16,t_uint256)"},"t_mapping(t_uint16,t_uint256)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint256,t_bool)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_uint256,t_contract(ITimelock)13525)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => contract ITimelock)","numberOfBytes":"32","value":"t_contract(ITimelock)13525"},"t_mapping(t_uint256,t_struct(Proposal)11758_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => struct OmnichainGovernanceExecutor.Proposal)","numberOfBytes":"32","value":"t_struct(Proposal)11758_storage"},"t_mapping(t_uint64,t_bytes32)":{"encoding":"mapping","key":"t_uint64","label":"mapping(uint64 => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Proposal)11758_storage":{"encoding":"inplace","label":"struct OmnichainGovernanceExecutor.Proposal","members":[{"astId":11729,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"id","offset":0,"slot":"0","type":"t_uint256"},{"astId":11732,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"eta","offset":0,"slot":"1","type":"t_uint256"},{"astId":11736,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"targets","offset":0,"slot":"2","type":"t_array(t_address)dyn_storage"},{"astId":11740,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"values","offset":0,"slot":"3","type":"t_array(t_uint256)dyn_storage"},{"astId":11744,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"signatures","offset":0,"slot":"4","type":"t_array(t_string_storage)dyn_storage"},{"astId":11748,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"calldatas","offset":0,"slot":"5","type":"t_array(t_bytes_storage)dyn_storage"},{"astId":11751,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"canceled","offset":0,"slot":"6","type":"t_bool"},{"astId":11754,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"executed","offset":1,"slot":"6","type":"t_bool"},{"astId":11757,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"proposalType","offset":2,"slot":"6","type":"t_uint8"}],"numberOfBytes":"224"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"errors":{"InvalidProposalId()":[{"notice":"Thrown when proposal ID is invalid"}],"ZeroAddressNotAllowed()":[{"notice":"Thrown if the supplied address is a zero address where it is not allowed"}]},"events":{"NewGuardian(address,address)":{"notice":"Emitted when new guardian address is set"},"ProposalCanceled(uint256)":{"notice":"Emitted when proposal is canceled"},"ProposalExecuted(uint256)":{"notice":"Emitted when proposal executed"},"ProposalQueued(uint256,uint256)":{"notice":"Emitted when proposal is queued"},"ProposalReceived(uint256,address[],uint256[],string[],bytes[],uint8)":{"notice":"Emitted when proposal is received"},"ReceivePayloadFailed(uint16,bytes,uint64,bytes)":{"notice":"Emitted when proposal failed"},"SetMaxDailyReceiveLimit(uint256,uint256)":{"notice":"Emitted when the maximum daily limit for receiving command from Binance chain is modified"},"SetSrcChainId(uint16,uint16)":{"notice":"Emitted when source layerzero endpoint id is updated"},"SetTimelockPendingAdmin(address,uint8)":{"notice":"Emitted when pending admin of Timelock is updated"},"TimelockAdded(uint8,address,address)":{"notice":"Emitted when timelock added"}},"kind":"user","methods":{"addTimelocks(address[])":{"notice":"Add timelocks to the ProposalTimelocks mapping"},"cancel(uint256)":{"notice":"Cancels a proposal only if sender is the guardian and proposal is not executed"},"execute(uint256)":{"notice":"Executes a queued proposal if eta has passed"},"guardian()":{"notice":"A privileged role that can cancel any proposal"},"last24HourCommandsReceived()":{"notice":"Total received commands within the last 24-hour window from Binance chain"},"last24HourReceiveWindowStart()":{"notice":"Timestamp when the last 24-hour window started from Binance chain"},"lastProposalReceived()":{"notice":"Last proposal count received"},"maxDailyReceiveLimit()":{"notice":"Maximum daily limit for receiving commands from Binance chain"},"pause()":{"notice":"Triggers the paused state of the controller"},"proposalTimelocks(uint256)":{"notice":"Mapping containing Timelock addresses for each proposal type"},"proposals(uint256)":{"notice":"The official record of all proposals ever proposed"},"queued(uint256)":{"notice":"Represents queue state of proposal"},"renounceOwnership()":{"notice":"Empty implementation of renounce ownership to avoid any mishappening"},"retryMessage(uint16,bytes,uint64,bytes)":{"notice":"Resends a previously failed message"},"setGuardian(address)":{"notice":"Sets the new executor guardian"},"setMaxDailyReceiveLimit(uint256)":{"notice":"Sets the maximum daily limit for receiving commands"},"setSrcChainId(uint16)":{"notice":"Update source layerzero endpoint id"},"setTimelockPendingAdmin(address,uint8)":{"notice":"Sets the new pending admin of the Timelock"},"srcChainId()":{"notice":"Stores BNB chain layerzero endpoint id"},"state(uint256)":{"notice":"Gets the state of a proposal"},"unpause()":{"notice":"Triggers the resume state of the controller"}},"notice":"Executes the proposal transactions sent from the main chain","version":1}}},"contracts/Cross-chain/OmnichainProposalSender.sol":{"OmnichainProposalSender":{"abi":[{"inputs":[{"internalType":"contract ILayerZeroEndpoint","name":"lzEndpoint_","type":"address"},{"internalType":"address","name":"accessControlManager_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"executionHash","type":"bytes32"}],"name":"ClearPayload","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint16","name":"remoteChainId","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"payload","type":"bytes"}],"name":"ExecuteRemoteProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"FallbackWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldAccessControlManager","type":"address"},{"indexed":true,"internalType":"address","name":"newAccessControlManager","type":"address"}],"name":"NewAccessControlManager","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":true,"internalType":"uint16","name":"chainId","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"oldMaxLimit","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newMaxLimit","type":"uint256"}],"name":"SetMaxDailyLimit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint16","name":"remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"oldRemoteAddress","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"newRemoteAddress","type":"bytes"}],"name":"SetTrustedRemoteAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":true,"internalType":"uint16","name":"remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"payload","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"adapterParams","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"reason","type":"bytes"}],"name":"StorePayload","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint16","name":"chainId","type":"uint16"}],"name":"TrustedRemoteRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"LZ_ENDPOINT","outputs":[{"internalType":"contract ILayerZeroEndpoint","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"accessControlManager","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"chainIdToLast24HourCommandsSent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"chainIdToLast24HourWindowStart","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"chainIdToLastProposalSentTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"chainIdToMaxDailyLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"remoteChainId_","type":"uint16"},{"internalType":"bytes","name":"payload_","type":"bytes"},{"internalType":"bool","name":"useZro_","type":"bool"},{"internalType":"bytes","name":"adapterParams_","type":"bytes"}],"name":"estimateFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"remoteChainId_","type":"uint16"},{"internalType":"bytes","name":"payload_","type":"bytes"},{"internalType":"bytes","name":"adapterParams_","type":"bytes"},{"internalType":"address","name":"zroPaymentAddress_","type":"address"}],"name":"execute","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"to_","type":"address"},{"internalType":"uint256","name":"pId_","type":"uint256"},{"internalType":"uint16","name":"remoteChainId_","type":"uint16"},{"internalType":"bytes","name":"payload_","type":"bytes"},{"internalType":"bytes","name":"adapterParams_","type":"bytes"},{"internalType":"uint256","name":"originalValue_","type":"uint256"}],"name":"fallbackWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"version_","type":"uint16"},{"internalType":"uint16","name":"chainId_","type":"uint16"},{"internalType":"uint256","name":"configType_","type":"uint256"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"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":[],"name":"proposalCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"remoteChainId_","type":"uint16"}],"name":"removeTrustedRemote","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"pId_","type":"uint256"},{"internalType":"uint16","name":"remoteChainId_","type":"uint16"},{"internalType":"bytes","name":"payload_","type":"bytes"},{"internalType":"bytes","name":"adapterParams_","type":"bytes"},{"internalType":"address","name":"zroPaymentAddress_","type":"address"},{"internalType":"uint256","name":"originalValue_","type":"uint256"}],"name":"retryExecute","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"accessControlManager_","type":"address"}],"name":"setAccessControlManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"version_","type":"uint16"},{"internalType":"uint16","name":"chainId_","type":"uint16"},{"internalType":"uint256","name":"configType_","type":"uint256"},{"internalType":"bytes","name":"config_","type":"bytes"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"chainId_","type":"uint16"},{"internalType":"uint256","name":"limit_","type":"uint256"}],"name":"setMaxDailyLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"version_","type":"uint16"}],"name":"setSendVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"remoteChainId_","type":"uint16"},{"internalType":"bytes","name":"newRemoteAddress_","type":"bytes"}],"name":"setTrustedRemoteAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"storedExecutionHashes","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"trustedRemoteLookup","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Venus","custom:security-contact":"https://github.com/VenusProtocol/governance-contracts#discussion","events":{"Paused(address)":{"details":"Emitted when the pause is triggered by `account`."},"Unpaused(address)":{"details":"Emitted when the pause is lifted by `account`."}},"kind":"dev","methods":{"estimateFees(uint16,bytes,bool,bytes)":{"details":"The estimated fees are the minimum required; it's recommended to increase the fees amount when sending a message. The unused amount will be refunded","params":{"adapterParams_":"The params used to specify the custom amount of gas required for the execution on the destination","payload_":"The payload to be sent to the remote chain. It's computed as follows: payload = abi.encode(abi.encode(targets, values, signatures, calldatas, proposalType), pId)","remoteChainId_":"The LayerZero id of a remote chain","useZro_":"Bool that indicates whether to pay in ZRO tokens or not"},"returns":{"_0":"nativeFee The amount of fee in the native gas token (e.g. ETH)","_1":"zroFee The amount of fee in ZRO token"}},"execute(uint16,bytes,bytes,address)":{"custom:access":"Controlled by Access Control Manager","custom:event":"Emits ExecuteRemoteProposal with remote chain id, proposal ID and payload on successEmits StorePayload with last stored payload proposal ID ,remote chain id , payload, adapter params , values and reason for failure","details":"Stores the hash of the execution parameters if sending fails (e.g., due to insufficient fees)","params":{"adapterParams_":"The params used to specify the custom amount of gas required for the execution on the destination","payload_":"The payload to be sent to the remote chain It's computed as follows: payload = abi.encode(targets, values, signatures, calldatas, proposalType)","remoteChainId_":"The LayerZero id of the remote chain","zroPaymentAddress_":"The address of the ZRO token holder who would pay for the transaction. This must be either address(this) or tx.origin"}},"fallbackWithdraw(address,uint256,uint16,bytes,bytes,uint256)":{"custom:access":"Only owner","custom:event":"Emits ClearPayload with proposal ID and hashEmits FallbackWithdraw with receiver and amount","params":{"adapterParams_":"The params used to specify the custom amount of gas required for the execution on the destination","originalValue_":"The msg.value passed when execute() function was called","pId_":"The proposal ID to identify a failed message","payload_":"The payload to be sent to the remote chain It's computed as follows: payload = abi.encode(abi.encode(targets, values, signatures, calldatas, proposalType), pId)","remoteChainId_":"The LayerZero id of the remote chain","to_":"Address of the receiver"}},"getConfig(uint16,uint16,uint256)":{"params":{"chainId_":"The LayerZero chainId","configType_":"Type of configuration. Every messaging library has its own convention","version_":"Messaging library version"}},"owner()":{"details":"Returns the address of the current owner."},"pause()":{"custom:access":"Controlled by AccessControlManager"},"paused()":{"details":"Returns true if the contract is paused, and false otherwise."},"removeTrustedRemote(uint16)":{"custom:access":"Controlled by Access Control Manager","custom:event":"Emit TrustedRemoteRemoved with remote chain id","params":{"remoteChainId_":"The chain's id corresponds to setting the trusted remote to empty"}},"retryExecute(uint256,uint16,bytes,bytes,address,uint256)":{"custom:access":"Controlled by Access Control Manager","custom:event":"Emits ClearPayload with proposal ID and hash","details":"Allows providing more fees if needed. The extra fees will be refunded to the caller","params":{"adapterParams_":"The params used to specify the custom amount of gas required for the execution on the destination","originalValue_":"The msg.value passed when execute() function was called","pId_":"The proposal ID to identify a failed message","payload_":"The payload to be sent to the remote chain It's computed as follows: payload = abi.encode(abi.encode(targets, values, signatures, calldatas, proposalType), pId)","remoteChainId_":"The LayerZero id of the remote chain","zroPaymentAddress_":"The address of the ZRO token holder who would pay for the transaction."}},"setAccessControlManager(address)":{"custom:access":"Only owner","custom:event":"Emits NewAccessControlManager with old and new access control manager addresses","params":{"accessControlManager_":"The new address of the Access Control Manager"}},"setConfig(uint16,uint16,uint256,bytes)":{"custom:access":"Controlled by AccessControlManager","params":{"chainId_":"The LayerZero chainId for the pending config change","configType_":"The type of configuration. Every messaging library has its own convention","config_":"The configuration in bytes. It can encode arbitrary content","version_":"Messaging library version"}},"setMaxDailyLimit(uint16,uint256)":{"custom:access":"Controlled by AccessControlManager","custom:event":"Emits SetMaxDailyLimit with old and new limit and its corresponding chain id","params":{"chainId_":"Destination chain id","limit_":"Number of commands"}},"setSendVersion(uint16)":{"custom:access":"Controlled by AccessControlManager","params":{"version_":"New messaging library version"}},"setTrustedRemoteAddress(uint16,bytes)":{"custom:access":"Controlled by AccessControlManager","custom:event":"Emits SetTrustedRemoteAddress with remote chain Id and remote address","params":{"newRemoteAddress_":"The address of the contract on the remote chain to receive messages sent by this contract","remoteChainId_":"The LayerZero id of a remote chain"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"unpause()":{"custom:access":"Controlled by AccessControlManager"}},"stateVariables":{"storedExecutionHashes":{"details":"[proposalId] -> [executionHash]"}},"title":"OmnichainProposalSender","version":1},"evm":{"bytecode":{"functionDebugData":{"@_11196":{"entryPoint":null,"id":11196,"parameterSlots":1,"returnSlots":0},"@_12813":{"entryPoint":null,"id":12813,"parameterSlots":2,"returnSlots":0},"@_6987":{"entryPoint":null,"id":6987,"parameterSlots":0,"returnSlots":0},"@_7103":{"entryPoint":null,"id":7103,"parameterSlots":0,"returnSlots":0},"@_7203":{"entryPoint":null,"id":7203,"parameterSlots":0,"returnSlots":0},"@_msgSender_8081":{"entryPoint":null,"id":8081,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_7075":{"entryPoint":143,"id":7075,"parameterSlots":1,"returnSlots":0},"@ensureNonzeroAddress_10945":{"entryPoint":225,"id":10945,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_contract$_ILayerZeroEndpoint_$4253t_address_fromMemory":{"entryPoint":288,"id":null,"parameterSlots":2,"returnSlots":2},"validator_revert_contract_ILayerZeroEndpoint":{"entryPoint":267,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:624:97","nodeType":"YulBlock","src":"0:624:97","statements":[{"nativeSrc":"6:3:97","nodeType":"YulBlock","src":"6:3:97","statements":[]},{"body":{"nativeSrc":"79:86:97","nodeType":"YulBlock","src":"79:86:97","statements":[{"body":{"nativeSrc":"143:16:97","nodeType":"YulBlock","src":"143:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"152:1:97","nodeType":"YulLiteral","src":"152:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"155:1:97","nodeType":"YulLiteral","src":"155:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"145:6:97","nodeType":"YulIdentifier","src":"145:6:97"},"nativeSrc":"145:12:97","nodeType":"YulFunctionCall","src":"145:12:97"},"nativeSrc":"145:12:97","nodeType":"YulExpressionStatement","src":"145:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"102:5:97","nodeType":"YulIdentifier","src":"102:5:97"},{"arguments":[{"name":"value","nativeSrc":"113:5:97","nodeType":"YulIdentifier","src":"113:5:97"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"128:3:97","nodeType":"YulLiteral","src":"128:3:97","type":"","value":"160"},{"kind":"number","nativeSrc":"133:1:97","nodeType":"YulLiteral","src":"133:1:97","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"124:3:97","nodeType":"YulIdentifier","src":"124:3:97"},"nativeSrc":"124:11:97","nodeType":"YulFunctionCall","src":"124:11:97"},{"kind":"number","nativeSrc":"137:1:97","nodeType":"YulLiteral","src":"137:1:97","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"120:3:97","nodeType":"YulIdentifier","src":"120:3:97"},"nativeSrc":"120:19:97","nodeType":"YulFunctionCall","src":"120:19:97"}],"functionName":{"name":"and","nativeSrc":"109:3:97","nodeType":"YulIdentifier","src":"109:3:97"},"nativeSrc":"109:31:97","nodeType":"YulFunctionCall","src":"109:31:97"}],"functionName":{"name":"eq","nativeSrc":"99:2:97","nodeType":"YulIdentifier","src":"99:2:97"},"nativeSrc":"99:42:97","nodeType":"YulFunctionCall","src":"99:42:97"}],"functionName":{"name":"iszero","nativeSrc":"92:6:97","nodeType":"YulIdentifier","src":"92:6:97"},"nativeSrc":"92:50:97","nodeType":"YulFunctionCall","src":"92:50:97"},"nativeSrc":"89:70:97","nodeType":"YulIf","src":"89:70:97"}]},"name":"validator_revert_contract_ILayerZeroEndpoint","nativeSrc":"14:151:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"68:5:97","nodeType":"YulTypedName","src":"68:5:97","type":""}],"src":"14:151:97"},{"body":{"nativeSrc":"295:327:97","nodeType":"YulBlock","src":"295:327:97","statements":[{"body":{"nativeSrc":"341:16:97","nodeType":"YulBlock","src":"341:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"350:1:97","nodeType":"YulLiteral","src":"350:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"353:1:97","nodeType":"YulLiteral","src":"353:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"343:6:97","nodeType":"YulIdentifier","src":"343:6:97"},"nativeSrc":"343:12:97","nodeType":"YulFunctionCall","src":"343:12:97"},"nativeSrc":"343:12:97","nodeType":"YulExpressionStatement","src":"343:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"316:7:97","nodeType":"YulIdentifier","src":"316:7:97"},{"name":"headStart","nativeSrc":"325:9:97","nodeType":"YulIdentifier","src":"325:9:97"}],"functionName":{"name":"sub","nativeSrc":"312:3:97","nodeType":"YulIdentifier","src":"312:3:97"},"nativeSrc":"312:23:97","nodeType":"YulFunctionCall","src":"312:23:97"},{"kind":"number","nativeSrc":"337:2:97","nodeType":"YulLiteral","src":"337:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"308:3:97","nodeType":"YulIdentifier","src":"308:3:97"},"nativeSrc":"308:32:97","nodeType":"YulFunctionCall","src":"308:32:97"},"nativeSrc":"305:52:97","nodeType":"YulIf","src":"305:52:97"},{"nativeSrc":"366:29:97","nodeType":"YulVariableDeclaration","src":"366:29:97","value":{"arguments":[{"name":"headStart","nativeSrc":"385:9:97","nodeType":"YulIdentifier","src":"385:9:97"}],"functionName":{"name":"mload","nativeSrc":"379:5:97","nodeType":"YulIdentifier","src":"379:5:97"},"nativeSrc":"379:16:97","nodeType":"YulFunctionCall","src":"379:16:97"},"variables":[{"name":"value","nativeSrc":"370:5:97","nodeType":"YulTypedName","src":"370:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"449:5:97","nodeType":"YulIdentifier","src":"449:5:97"}],"functionName":{"name":"validator_revert_contract_ILayerZeroEndpoint","nativeSrc":"404:44:97","nodeType":"YulIdentifier","src":"404:44:97"},"nativeSrc":"404:51:97","nodeType":"YulFunctionCall","src":"404:51:97"},"nativeSrc":"404:51:97","nodeType":"YulExpressionStatement","src":"404:51:97"},{"nativeSrc":"464:15:97","nodeType":"YulAssignment","src":"464:15:97","value":{"name":"value","nativeSrc":"474:5:97","nodeType":"YulIdentifier","src":"474:5:97"},"variableNames":[{"name":"value0","nativeSrc":"464:6:97","nodeType":"YulIdentifier","src":"464:6:97"}]},{"nativeSrc":"488:40:97","nodeType":"YulVariableDeclaration","src":"488:40:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"513:9:97","nodeType":"YulIdentifier","src":"513:9:97"},{"kind":"number","nativeSrc":"524:2:97","nodeType":"YulLiteral","src":"524:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"509:3:97","nodeType":"YulIdentifier","src":"509:3:97"},"nativeSrc":"509:18:97","nodeType":"YulFunctionCall","src":"509:18:97"}],"functionName":{"name":"mload","nativeSrc":"503:5:97","nodeType":"YulIdentifier","src":"503:5:97"},"nativeSrc":"503:25:97","nodeType":"YulFunctionCall","src":"503:25:97"},"variables":[{"name":"value_1","nativeSrc":"492:7:97","nodeType":"YulTypedName","src":"492:7:97","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"582:7:97","nodeType":"YulIdentifier","src":"582:7:97"}],"functionName":{"name":"validator_revert_contract_ILayerZeroEndpoint","nativeSrc":"537:44:97","nodeType":"YulIdentifier","src":"537:44:97"},"nativeSrc":"537:53:97","nodeType":"YulFunctionCall","src":"537:53:97"},"nativeSrc":"537:53:97","nodeType":"YulExpressionStatement","src":"537:53:97"},{"nativeSrc":"599:17:97","nodeType":"YulAssignment","src":"599:17:97","value":{"name":"value_1","nativeSrc":"609:7:97","nodeType":"YulIdentifier","src":"609:7:97"},"variableNames":[{"name":"value1","nativeSrc":"599:6:97","nodeType":"YulIdentifier","src":"599:6:97"}]}]},"name":"abi_decode_tuple_t_contract$_ILayerZeroEndpoint_$4253t_address_fromMemory","nativeSrc":"170:452:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"253:9:97","nodeType":"YulTypedName","src":"253:9:97","type":""},{"name":"dataEnd","nativeSrc":"264:7:97","nodeType":"YulTypedName","src":"264:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"276:6:97","nodeType":"YulTypedName","src":"276:6:97","type":""},{"name":"value1","nativeSrc":"284:6:97","nodeType":"YulTypedName","src":"284:6:97","type":""}],"src":"170:452:97"}]},"contents":"{\n    { }\n    function validator_revert_contract_ILayerZeroEndpoint(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_contract$_ILayerZeroEndpoint_$4253t_address_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_contract_ILayerZeroEndpoint(value)\n        value0 := value\n        let value_1 := mload(add(headStart, 32))\n        validator_revert_contract_ILayerZeroEndpoint(value_1)\n        value1 := value_1\n    }\n}","id":97,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a060405234801561001057600080fd5b5060405161346c38038061346c83398101604081905261002f91610120565b60016000558061003e3361008f565b6001805460ff60a01b19169055610054816100e1565b600280546001600160a01b0319166001600160a01b039290921691909117905561007d826100e1565b506001600160a01b031660805261015a565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038116610108576040516342bcdf7f60e11b815260040160405180910390fd5b50565b6001600160a01b038116811461010857600080fd5b6000806040838503121561013357600080fd5b825161013e8161010b565b602084015190925061014f8161010b565b809150509250929050565b6080516132cd61019f600039600081816104e0015281816105e80152818161070001528181611067015281816112270152818161164b0152611a3f01526132cd6000f3fe6080604052600436106101a15760003560e01c80637533d788116100e1578063b4a0bdf31161008a578063da35c66411610064578063da35c66414610502578063e0354d7f14610518578063e2222b0e14610545578063f2fde38b1461055857600080fd5b8063b4a0bdf314610481578063cbed8b9c146104ae578063cd4d1c64146104ce57600080fd5b80638da5cb5b116100bb5780638da5cb5b146103e857806393a61d6c14610434578063a6c3d1651461046157600080fd5b80637533d788146103865780637dbb533c146103a65780638456cb59146103d357600080fd5b806330fd54a01161014e5780634f4ba0f4116101285780634f4ba0f4146102e55780635c975abb146103125780635f6716f71461034d578063715018a61461037a57600080fd5b806330fd54a01461029d5780633f4ba83a146102bd5780633fd9d7ef146102d257600080fd5b806321b4eaa11161017f57806321b4eaa1146102285780632488eec81461025d5780632dbbec081461027d57600080fd5b806307e0db17146101a65780630e32cb86146101c85780631183a3b2146101e8575b600080fd5b3480156101b257600080fd5b506101c66101c136600461222e565b610578565b005b3480156101d457600080fd5b506101c66101e336600461226b565b61065c565b3480156101f457600080fd5b5061021561020336600461222e565b60046020526000908152604090205481565b6040519081526020015b60405180910390f35b34801561023457600080fd5b506102486102433660046122df565b6106fb565b6040805192835260208301919091520161021f565b34801561026957600080fd5b506101c6610278366004612374565b6107b2565b34801561028957600080fd5b506101c661029836600461222e565b610855565b3480156102a957600080fd5b506101c66102b836600461239e565b61097b565b3480156102c957600080fd5b506101c6610d11565b6101c66102e0366004612442565b610d59565b3480156102f157600080fd5b5061021561030036600461222e565b60036020526000908152604090205481565b34801561031e57600080fd5b5060015474010000000000000000000000000000000000000000900460ff16604051901515815260200161021f565b34801561035957600080fd5b5061036d6103683660046124d5565b6111dd565b60405161021f9190612561565b3480156101c657600080fd5b34801561039257600080fd5b5061036d6103a136600461222e565b6112b5565b3480156103b257600080fd5b506102156103c1366004612574565b60086020526000908152604090205481565b3480156103df57600080fd5b506101c661134f565b3480156103f457600080fd5b5060015473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161021f565b34801561044057600080fd5b5061021561044f36600461222e565b60056020526000908152604090205481565b34801561046d57600080fd5b506101c661047c36600461258d565b611395565b34801561048d57600080fd5b5060025461040f9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156104ba57600080fd5b506101c66104c93660046125e0565b6115ed565b3480156104da57600080fd5b5061040f7f000000000000000000000000000000000000000000000000000000000000000081565b34801561050e57600080fd5b5061021560075481565b34801561052457600080fd5b5061021561053336600461222e565b60066020526000908152604090205481565b6101c661055336600461264f565b6116b6565b34801561056457600080fd5b506101c661057336600461226b565b611ad8565b6105b66040518060400160405280601681526020017f73657453656e6456657273696f6e2875696e7431362900000000000000000000815250611b75565b6040517f07e0db1700000000000000000000000000000000000000000000000000000000815261ffff821660048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906307e0db1790602401600060405180830381600087803b15801561064157600080fd5b505af1158015610655573d6000803e3d6000fd5b5050505050565b610664611c5a565b61066d81611cc1565b60025460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa090600090a3600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166340a7bb1089308a8a8a8a8a6040518863ffffffff1660e01b81526004016107639796959493929190612721565b6040805180830381865afa15801561077f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a39190612784565b91509150965096945050505050565b6107f06040518060400160405280602081526020017f7365744d61784461696c794c696d69742875696e7431362c75696e7432353629815250611b75565b61ffff82166000818152600360209081526040918290205482519081529081018490527f4dd31065e259d5284e44d1f9265710da72eafcf78dc925e3881189fc3b71f693910160405180910390a261ffff909116600090815260036020526040902055565b6108936040518060400160405280601b81526020017f72656d6f76655472757374656452656d6f74652875696e743136290000000000815250611b75565b61ffff8116600090815260096020526040902080546108b1906127a8565b905060000361092d5760405162461bcd60e51b815260206004820152603160248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a207472757374656460448201527f2072656d6f7465206e6f7420666f756e6400000000000000000000000000000060648201526084015b60405180910390fd5b61ffff81166000908152600960205260408120610949916121c9565b60405161ffff8216907f6d5075c81d4d9e75bec6052f4e44f58f8a8cf1327544addbbf015fb06f83bd3790600090a250565b610983611c5a565b61098b611d0e565b61099488611cc1565b60008111610a0a5760405162461bcd60e51b815260206004820152602e60248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a20696e76616c696460448201527f206e617469766520616d6f756e740000000000000000000000000000000000006064820152608401610924565b6000849003610a815760405162461bcd60e51b815260206004820152602660248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a20656d707479207060448201527f61796c6f616400000000000000000000000000000000000000000000000000006064820152608401610924565b60008781526008602052604090205480610b035760405162461bcd60e51b815260206004820152602a60248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a206e6f2073746f7260448201527f6564207061796c6f6164000000000000000000000000000000000000000000006064820152608401610924565b6000878787878787604051602001610b20969594939291906127fb565b604051602081830303815290604052905081818051906020012014610bad5760405162461bcd60e51b815260206004820152603160248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a20696e76616c696460448201527f20657865637574696f6e20706172616d730000000000000000000000000000006064820152608401610924565b600089815260086020526040808220919091555173ffffffffffffffffffffffffffffffffffffffff8b16907f22fe8e8ead80ad0961d77107e806ba9bcf9ca3b175a9d446145646d39c36ab9690610c089086815260200190565b60405180910390a2887f2dc7ac5d08fd553243fc66b5f15262e3f3013e27abf660d7bb3fccf133322f6e83604051610c4291815260200190565b60405180910390a260008a73ffffffffffffffffffffffffffffffffffffffff168460405160006040518083038185875af1925050503d8060008114610ca4576040519150601f19603f3d011682016040523d82523d6000602084013e610ca9565b606091505b5050905080610cfa5760405162461bcd60e51b815260206004820152600b60248201527f43616c6c206661696c65640000000000000000000000000000000000000000006044820152606401610924565b505050610d076001600055565b5050505050505050565b610d4f6040518060400160405280600981526020017f756e706175736528290000000000000000000000000000000000000000000000815250611b75565b610d57611d67565b565b610d61611de4565b610d826040518060600160405280602381526020016131f260239139611b75565b60003411610df85760405162461bcd60e51b815260206004820152602d60248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a2076616c7565206360448201527f616e6e6f74206265207a65726f000000000000000000000000000000000000006064820152608401610924565b6000849003610e6f5760405162461bcd60e51b815260206004820152602660248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a20656d707479207060448201527f61796c6f616400000000000000000000000000000000000000000000000000006064820152608401610924565b61ffff861660009081526009602052604081208054610e8d906127a8565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb9906127a8565b8015610f065780601f10610edb57610100808354040283529160200191610f06565b820191906000526020600020905b815481529060010190602001808311610ee957829003601f168201915b505050505090508051600003610faa5760405162461bcd60e51b815260206004820152604260248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a2064657374696e6160448201527f74696f6e20636861696e206973206e6f742061207472757374656420736f757260648201527f6365000000000000000000000000000000000000000000000000000000000000608482015260a401610924565b610fea8787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611e4f92505050565b6000600760008154610ffb9061286f565b9190508190559050600087878360405160200161101a939291906128a7565b60408051601f19818403018152908290527fc5803100000000000000000000000000000000000000000000000000000000008252915073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c58031009034906110aa908d908890879033908c908f908f906004016128cb565b6000604051808303818588803b1580156110c357600080fd5b505af1935050505080156110d5575060015b611193573d808015611103576040519150601f19603f3d011682016040523d82523d6000602084013e611108565b606091505b508982888834604051602001611122959493929190612933565b60408051601f198184030181528282528051602091820120600087815260089092529190205561ffff8b169084907f6d16111647e03d7f1cb2b71c02eafe3355b97dfc17af3de1b94ef39c8a9ee4d9906111859086908c908c9034908990612976565b60405180910390a3506111d2565b8861ffff167f95a4fcf4eb9be6f5cf2eb6830782870f8907bccc513f765388a9cb2dae2f325983836040516111c99291906129c2565b60405180910390a25b505050505050505050565b6040517ff5ecbdbc00000000000000000000000000000000000000000000000000000000815261ffff808516600483015283166024820152306044820152606481018290526060907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063f5ecbdbc90608401600060405180830381865afa158015611283573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112ab9190810190612ab8565b90505b9392505050565b600960205260009081526040902080546112ce906127a8565b80601f01602080910402602001604051908101604052809291908181526020018280546112fa906127a8565b80156113475780601f1061131c57610100808354040283529160200191611347565b820191906000526020600020905b81548152906001019060200180831161132a57829003601f168201915b505050505081565b61138d6040518060400160405280600781526020017f7061757365282900000000000000000000000000000000000000000000000000815250611b75565b610d57611f3c565b6113b660405180606001604052806025815260200161321560259139611b75565b8261ffff166000036114305760405162461bcd60e51b815260206004820152603160248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a20636861696e496460448201527f206d757374206e6f74206265207a65726f0000000000000000000000000000006064820152608401610924565b61144561143d8284612af5565b60601c611cc1565b601481146114bb5760405162461bcd60e51b815260206004820152603d60248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a2072656d6f74652060448201527f61646472657373206d757374206265203230206279746573206c6f6e670000006064820152608401610924565b61ffff8316600090815260096020526040812080546114d9906127a8565b80601f0160208091040260200160405190810160405280929190818152602001828054611505906127a8565b80156115525780601f1061152757610100808354040283529160200191611552565b820191906000526020600020905b81548152906001019060200180831161153557829003601f168201915b5050505050905082823060405160200161156e93929190612b3d565b60408051601f1981840301815291815261ffff86166000908152600960205220906115999082612bc3565b5061ffff84166000818152600960205260409081902090517fe84e609c32d71c678382f7c65cc051810a41dcaf660e55c9f8fcffeba4621a32916115df91859190612cbf565b60405180910390a250505050565b61160e60405180606001604052806026815260200161323a60269139611b75565b6040517fcbed8b9c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063cbed8b9c906116889088908890889088908890600401612d78565b600060405180830381600087803b1580156116a257600080fd5b505af11580156111d2573d6000803e3d6000fd5b6116be611de4565b6116c6611d0e565b6116e760405180606001604052806038815260200161326060389139611b75565b61ffff871660009081526009602052604081208054611705906127a8565b80601f0160208091040260200160405190810160405280929190818152602001828054611731906127a8565b801561177e5780601f106117535761010080835404028352916020019161177e565b820191906000526020600020905b81548152906001019060200180831161176157829003601f168201915b5050505050905080516000036118225760405162461bcd60e51b815260206004820152604260248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a2064657374696e6160448201527f74696f6e20636861696e206973206e6f742061207472757374656420736f757260648201527f6365000000000000000000000000000000000000000000000000000000000000608482015260a401610924565b600089815260086020526040902054806118a45760405162461bcd60e51b815260206004820152602a60248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a206e6f2073746f7260448201527f6564207061796c6f6164000000000000000000000000000000000000000000006064820152608401610924565b600087900361191b5760405162461bcd60e51b815260206004820152602660248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a20656d707479207060448201527f61796c6f616400000000000000000000000000000000000000000000000000006064820152608401610924565b6000611929888a018a612db1565b5090506119368a82611e4f565b818a8a8a8a8a89604051602001611952969594939291906127fb565b60405160208183030381529060405280519060200120146119db5760405162461bcd60e51b815260206004820152603160248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a20696e76616c696460448201527f20657865637574696f6e20706172616d730000000000000000000000000000006064820152608401610924565b60008b81526008602052604080822091909155518b907f2dc7ac5d08fd553243fc66b5f15262e3f3013e27abf660d7bb3fccf133322f6e90611a209085815260200190565b60405180910390a273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001663c5803100611a6e3487612e2e565b8c868d8d338c8f8f6040518a63ffffffff1660e01b8152600401611a99989796959493929190612e47565b6000604051808303818588803b158015611ab257600080fd5b505af1158015611ac6573d6000803e3d6000fd5b5050505050505050610d076001600055565b611ae0611c5a565b73ffffffffffffffffffffffffffffffffffffffff8116611b695760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610924565b611b7281611fab565b50565b6002546040517f18c5e8ab00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116906318c5e8ab90611bcd9033908590600401612ebf565b602060405180830381865afa158015611bea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c0e9190612eee565b611b725760405162461bcd60e51b815260206004820152600d60248201527f6163636573732064656e696564000000000000000000000000000000000000006044820152606401610924565b60015473ffffffffffffffffffffffffffffffffffffffff163314610d575760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610924565b73ffffffffffffffffffffffffffffffffffffffff8116611b72576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260005403611d605760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610924565b6002600055565b611d6f612022565b600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b60015474010000000000000000000000000000000000000000900460ff1615610d575760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610924565b60008060008084806020019051810190611e6991906130bf565b50935093509350935082518451148015611e84575081518451145b8015611e91575080518451145b611f295760405162461bcd60e51b815260206004820152604560248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a2070726f706f736160448201527f6c2066756e6374696f6e20696e666f726d6174696f6e206172697479206d697360648201527f6d61746368000000000000000000000000000000000000000000000000000000608482015260a401610924565b611f3486855161208c565b505050505050565b611f44611de4565b600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611dba3390565b6001805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60015474010000000000000000000000000000000000000000900460ff16610d575760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610924565b61ffff8216600090815260056020908152604080832054600483528184205460038452828520546006909452919093205442939290620151806120cf85876131de565b11156120f35761ffff87166000908152600560205260409020859055859250612100565b6120fd8684612e2e565b92505b818311156121505760405162461bcd60e51b815260206004820181905260248201527f4461696c79205472616e73616374696f6e204c696d69742045786365656465646044820152606401610924565b84810361219f5760405162461bcd60e51b815260206004820152601f60248201527f4d756c7469706c65206272696467696e6720696e20612070726f706f73616c006044820152606401610924565b505061ffff9094166000908152600460209081526040808320969096556006905293909320555050565b5080546121d5906127a8565b6000825580601f106121e5575050565b601f016020900490600052602060002090810190611b7291905b8082111561221357600081556001016121ff565b5090565b803561ffff8116811461222957600080fd5b919050565b60006020828403121561224057600080fd5b6112ae82612217565b73ffffffffffffffffffffffffffffffffffffffff81168114611b7257600080fd5b60006020828403121561227d57600080fd5b81356112ae81612249565b60008083601f84011261229a57600080fd5b50813567ffffffffffffffff8111156122b257600080fd5b6020830191508360208285010111156122ca57600080fd5b9250929050565b8015158114611b7257600080fd5b600080600080600080608087890312156122f857600080fd5b61230187612217565b9550602087013567ffffffffffffffff8082111561231e57600080fd5b61232a8a838b01612288565b90975095506040890135915061233f826122d1565b9093506060880135908082111561235557600080fd5b5061236289828a01612288565b979a9699509497509295939492505050565b6000806040838503121561238757600080fd5b61239083612217565b946020939093013593505050565b60008060008060008060008060c0898b0312156123ba57600080fd5b88356123c581612249565b9750602089013596506123da60408a01612217565b9550606089013567ffffffffffffffff808211156123f757600080fd5b6124038c838d01612288565b909750955060808b013591508082111561241c57600080fd5b506124298b828c01612288565b999c989b50969995989497949560a00135949350505050565b6000806000806000806080878903121561245b57600080fd5b61246487612217565b9550602087013567ffffffffffffffff8082111561248157600080fd5b61248d8a838b01612288565b909750955060408901359150808211156124a657600080fd5b506124b389828a01612288565b90945092505060608701356124c781612249565b809150509295509295509295565b6000806000606084860312156124ea57600080fd5b6124f384612217565b925061250160208501612217565b9150604084013590509250925092565b60005b8381101561252c578181015183820152602001612514565b50506000910152565b6000815180845261254d816020860160208601612511565b601f01601f19169290920160200192915050565b6020815260006112ae6020830184612535565b60006020828403121561258657600080fd5b5035919050565b6000806000604084860312156125a257600080fd5b6125ab84612217565b9250602084013567ffffffffffffffff8111156125c757600080fd5b6125d386828701612288565b9497909650939450505050565b6000806000806000608086880312156125f857600080fd5b61260186612217565b945061260f60208701612217565b935060408601359250606086013567ffffffffffffffff81111561263257600080fd5b61263e88828901612288565b969995985093965092949392505050565b60008060008060008060008060c0898b03121561266b57600080fd5b8835975061267b60208a01612217565b9650604089013567ffffffffffffffff8082111561269857600080fd5b6126a48c838d01612288565b909850965060608b01359150808211156126bd57600080fd5b506126ca8b828c01612288565b90955093505060808901356126de81612249565b8092505060a089013590509295985092959890939650565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b61ffff8816815273ffffffffffffffffffffffffffffffffffffffff8716602082015260a06040820152600061275b60a0830187896126f6565b851515606084015282810360808401526127768185876126f6565b9a9950505050505050505050565b6000806040838503121561279757600080fd5b505080516020909101519092909150565b600181811c908216806127bc57607f821691505b6020821081036127f5577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b61ffff871681526080602082015260006128196080830187896126f6565b828103604084015261282c8186886126f6565b915050826060830152979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036128a0576128a0612840565b5060010190565b6040815260006128bb6040830185876126f6565b9050826020830152949350505050565b61ffff8816815260c0602082015260006128e860c0830189612535565b82810360408401526128fa8189612535565b73ffffffffffffffffffffffffffffffffffffffff88811660608601528716608085015283810360a085015290506127768185876126f6565b61ffff861681526080602082015260006129506080830187612535565b82810360408401526129638186886126f6565b9150508260608301529695505050505050565b6080815260006129896080830188612535565b828103602084015261299c8187896126f6565b905084604084015282810360608401526129b68185612535565b98975050505050505050565b8281526040602082015260006112ab6040830184612535565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612a3357612a336129db565b604052919050565b600067ffffffffffffffff821115612a5557612a556129db565b50601f01601f191660200190565b6000612a76612a7184612a3b565b612a0a565b9050828152838383011115612a8a57600080fd5b6112ae836020830184612511565b600082601f830112612aa957600080fd5b6112ae83835160208501612a63565b600060208284031215612aca57600080fd5b815167ffffffffffffffff811115612ae157600080fd5b612aed84828501612a98565b949350505050565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008135818116916014851015612b355780818660140360031b1b83161692505b505092915050565b8284823760609190911b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169101908152601401919050565b601f821115612bbe576000816000526020600020601f850160051c81016020861015612b9f5750805b601f850160051c820191505b81811015611f3457828155600101612bab565b505050565b815167ffffffffffffffff811115612bdd57612bdd6129db565b612bf181612beb84546127a8565b84612b76565b602080601f831160018114612c445760008415612c0e5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555611f34565b600085815260208120601f198616915b82811015612c7357888601518255948401946001909101908401612c54565b5085821015612caf57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b604081526000612cd26040830185612535565b60208382038185015260008554612ce8816127a8565b80855260018281168015612d035760018114612d3b57612d69565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008416868801528583151560051b8801019450612d69565b896000528560002060005b84811015612d61578154898201890152908301908701612d46565b880187019550505b50929998505050505050505050565b600061ffff808816835280871660208401525084604083015260806060830152612da66080830184866126f6565b979650505050505050565b60008060408385031215612dc457600080fd5b823567ffffffffffffffff811115612ddb57600080fd5b8301601f81018513612dec57600080fd5b8035612dfa612a7182612a3b565b818152866020838501011115612e0f57600080fd5b8160208401602083013760006020928201830152969401359450505050565b80820180821115612e4157612e41612840565b92915050565b61ffff8916815260c060208201526000612e6460c083018a612535565b8281036040840152612e7781898b6126f6565b73ffffffffffffffffffffffffffffffffffffffff88811660608601528716608085015283810360a08501529050612eb08185876126f6565b9b9a5050505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff831681526040602082015260006112ab6040830184612535565b600060208284031215612f0057600080fd5b81516112ae816122d1565b600067ffffffffffffffff821115612f2557612f256129db565b5060051b60200190565b600082601f830112612f4057600080fd5b81516020612f50612a7183612f0b565b8083825260208201915060208460051b870101935086841115612f7257600080fd5b602086015b84811015612f8e5780518352918301918301612f77565b509695505050505050565b600082601f830112612faa57600080fd5b81516020612fba612a7183612f0b565b82815260059290921b84018101918181019086841115612fd957600080fd5b8286015b84811015612f8e57805167ffffffffffffffff811115612ffd5760008081fd5b8701603f8101891361300f5760008081fd5b613020898683015160408401612a63565b845250918301918301612fdd565b600082601f83011261303f57600080fd5b8151602061304f612a7183612f0b565b82815260059290921b8401810191818101908684111561306e57600080fd5b8286015b84811015612f8e57805167ffffffffffffffff8111156130925760008081fd5b6130a08986838b0101612a98565b845250918301918301613072565b805160ff8116811461222957600080fd5b600080600080600060a086880312156130d757600080fd5b855167ffffffffffffffff808211156130ef57600080fd5b818801915088601f83011261310357600080fd5b81516020613113612a7183612f0b565b82815260059290921b8401810191818101908c84111561313257600080fd5b948201945b8386101561315957855161314a81612249565b82529482019490820190613137565b918b015191995090935050508082111561317257600080fd5b61317e89838a01612f2f565b9550604088015191508082111561319457600080fd5b6131a089838a01612f99565b945060608801519150808211156131b657600080fd5b506131c38882890161302e565b9250506131d2608087016130ae565b90509295509295909350565b81810381811115612e4157612e4161284056fe657865637574652875696e7431362c62797465732c62797465732c61646472657373297365745472757374656452656d6f7465416464726573732875696e7431362c627974657329736574436f6e6669672875696e7431362c75696e7431362c75696e743235362c6279746573297265747279457865637574652875696e743235362c75696e7431362c62797465732c62797465732c616464726573732c75696e7432353629a2646970667358221220cddfa01f72bf4df6426198a3ec82d6b0d9ee572a9e61f22b34c5ba9bb489f86564736f6c63430008190033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x346C CODESIZE SUB DUP1 PUSH2 0x346C DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x120 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SSTORE DUP1 PUSH2 0x3E CALLER PUSH2 0x8F JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND SWAP1 SSTORE PUSH2 0x54 DUP2 PUSH2 0xE1 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x7D DUP3 PUSH2 0xE1 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x80 MSTORE PUSH2 0x15A JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x108 JUMPI PUSH1 0x40 MLOAD PUSH4 0x42BCDF7F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x108 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x133 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH2 0x13E DUP2 PUSH2 0x10B JUMP JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SWAP3 POP PUSH2 0x14F DUP2 PUSH2 0x10B JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x32CD PUSH2 0x19F PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x4E0 ADD MSTORE DUP2 DUP2 PUSH2 0x5E8 ADD MSTORE DUP2 DUP2 PUSH2 0x700 ADD MSTORE DUP2 DUP2 PUSH2 0x1067 ADD MSTORE DUP2 DUP2 PUSH2 0x1227 ADD MSTORE DUP2 DUP2 PUSH2 0x164B ADD MSTORE PUSH2 0x1A3F ADD MSTORE PUSH2 0x32CD PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1A1 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7533D788 GT PUSH2 0xE1 JUMPI DUP1 PUSH4 0xB4A0BDF3 GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xDA35C664 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xDA35C664 EQ PUSH2 0x502 JUMPI DUP1 PUSH4 0xE0354D7F EQ PUSH2 0x518 JUMPI DUP1 PUSH4 0xE2222B0E EQ PUSH2 0x545 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x558 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB4A0BDF3 EQ PUSH2 0x481 JUMPI DUP1 PUSH4 0xCBED8B9C EQ PUSH2 0x4AE JUMPI DUP1 PUSH4 0xCD4D1C64 EQ PUSH2 0x4CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0xBB JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x3E8 JUMPI DUP1 PUSH4 0x93A61D6C EQ PUSH2 0x434 JUMPI DUP1 PUSH4 0xA6C3D165 EQ PUSH2 0x461 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7533D788 EQ PUSH2 0x386 JUMPI DUP1 PUSH4 0x7DBB533C EQ PUSH2 0x3A6 JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x3D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x30FD54A0 GT PUSH2 0x14E JUMPI DUP1 PUSH4 0x4F4BA0F4 GT PUSH2 0x128 JUMPI DUP1 PUSH4 0x4F4BA0F4 EQ PUSH2 0x2E5 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x312 JUMPI DUP1 PUSH4 0x5F6716F7 EQ PUSH2 0x34D JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x37A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x30FD54A0 EQ PUSH2 0x29D JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x2BD JUMPI DUP1 PUSH4 0x3FD9D7EF EQ PUSH2 0x2D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x21B4EAA1 GT PUSH2 0x17F JUMPI DUP1 PUSH4 0x21B4EAA1 EQ PUSH2 0x228 JUMPI DUP1 PUSH4 0x2488EEC8 EQ PUSH2 0x25D JUMPI DUP1 PUSH4 0x2DBBEC08 EQ PUSH2 0x27D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7E0DB17 EQ PUSH2 0x1A6 JUMPI DUP1 PUSH4 0xE32CB86 EQ PUSH2 0x1C8 JUMPI DUP1 PUSH4 0x1183A3B2 EQ PUSH2 0x1E8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6 PUSH2 0x1C1 CALLDATASIZE PUSH1 0x4 PUSH2 0x222E JUMP JUMPDEST PUSH2 0x578 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6 PUSH2 0x1E3 CALLDATASIZE PUSH1 0x4 PUSH2 0x226B JUMP JUMPDEST PUSH2 0x65C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0x203 CALLDATASIZE PUSH1 0x4 PUSH2 0x222E JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x234 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x248 PUSH2 0x243 CALLDATASIZE PUSH1 0x4 PUSH2 0x22DF JUMP JUMPDEST PUSH2 0x6FB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD PUSH2 0x21F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x269 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6 PUSH2 0x278 CALLDATASIZE PUSH1 0x4 PUSH2 0x2374 JUMP JUMPDEST PUSH2 0x7B2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x289 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6 PUSH2 0x298 CALLDATASIZE PUSH1 0x4 PUSH2 0x222E JUMP JUMPDEST PUSH2 0x855 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6 PUSH2 0x2B8 CALLDATASIZE PUSH1 0x4 PUSH2 0x239E JUMP JUMPDEST PUSH2 0x97B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6 PUSH2 0xD11 JUMP JUMPDEST PUSH2 0x1C6 PUSH2 0x2E0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2442 JUMP JUMPDEST PUSH2 0xD59 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0x300 CALLDATASIZE PUSH1 0x4 PUSH2 0x222E JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x21F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x359 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x36D PUSH2 0x368 CALLDATASIZE PUSH1 0x4 PUSH2 0x24D5 JUMP JUMPDEST PUSH2 0x11DD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21F SWAP2 SWAP1 PUSH2 0x2561 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x392 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x36D PUSH2 0x3A1 CALLDATASIZE PUSH1 0x4 PUSH2 0x222E JUMP JUMPDEST PUSH2 0x12B5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0x3C1 CALLDATASIZE PUSH1 0x4 PUSH2 0x2574 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3DF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6 PUSH2 0x134F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x21F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x440 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0x44F CALLDATASIZE PUSH1 0x4 PUSH2 0x222E JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6 PUSH2 0x47C CALLDATASIZE PUSH1 0x4 PUSH2 0x258D JUMP JUMPDEST PUSH2 0x1395 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH2 0x40F SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6 PUSH2 0x4C9 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E0 JUMP JUMPDEST PUSH2 0x15ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x40F PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x50E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x524 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0x533 CALLDATASIZE PUSH1 0x4 PUSH2 0x222E JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1C6 PUSH2 0x553 CALLDATASIZE PUSH1 0x4 PUSH2 0x264F JUMP JUMPDEST PUSH2 0x16B6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x564 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6 PUSH2 0x573 CALLDATASIZE PUSH1 0x4 PUSH2 0x226B JUMP JUMPDEST PUSH2 0x1AD8 JUMP JUMPDEST PUSH2 0x5B6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x16 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x73657453656E6456657273696F6E2875696E7431362900000000000000000000 DUP2 MSTORE POP PUSH2 0x1B75 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x7E0DB1700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH2 0xFFFF DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0x7E0DB17 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x641 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x655 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x664 PUSH2 0x1C5A JUMP JUMPDEST PUSH2 0x66D DUP2 PUSH2 0x1CC1 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND SWAP3 AND SWAP1 PUSH32 0x66FD58E82F7B31A2A5C30E0888F3093EFE4E111B00CD2B0C31FE014601293AA0 SWAP1 PUSH1 0x0 SWAP1 LOG3 PUSH1 0x2 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x40A7BB10 DUP10 ADDRESS DUP11 DUP11 DUP11 DUP11 DUP11 PUSH1 0x40 MLOAD DUP9 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x763 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2721 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x77F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x7A3 SWAP2 SWAP1 PUSH2 0x2784 JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP7 POP SWAP7 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x7F0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x7365744D61784461696C794C696D69742875696E7431362C75696E7432353629 DUP2 MSTORE POP PUSH2 0x1B75 JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SLOAD DUP3 MLOAD SWAP1 DUP2 MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0x4DD31065E259D5284E44D1F9265710DA72EAFCF78DC925E3881189FC3B71F693 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH2 0xFFFF SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST PUSH2 0x893 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1B DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x72656D6F76655472757374656452656D6F74652875696E743136290000000000 DUP2 MSTORE POP PUSH2 0x1B75 JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x8B1 SWAP1 PUSH2 0x27A8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 SUB PUSH2 0x92D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A2074727573746564 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x2072656D6F7465206E6F7420666F756E64000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x949 SWAP2 PUSH2 0x21C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFFFF DUP3 AND SWAP1 PUSH32 0x6D5075C81D4D9E75BEC6052F4E44F58F8A8CF1327544ADDBBF015FB06F83BD37 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH2 0x983 PUSH2 0x1C5A JUMP JUMPDEST PUSH2 0x98B PUSH2 0x1D0E JUMP JUMPDEST PUSH2 0x994 DUP9 PUSH2 0x1CC1 JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0xA0A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A20696E76616C6964 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x206E617469766520616D6F756E74000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x924 JUMP JUMPDEST PUSH1 0x0 DUP5 SWAP1 SUB PUSH2 0xA81 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A20656D7074792070 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x61796C6F61640000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x924 JUMP JUMPDEST PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 PUSH2 0xB03 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A206E6F2073746F72 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6564207061796C6F616400000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x924 JUMP JUMPDEST PUSH1 0x0 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xB20 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x27FB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP DUP2 DUP2 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 EQ PUSH2 0xBAD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A20696E76616C6964 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x20657865637574696F6E20706172616D73000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x924 JUMP JUMPDEST PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP12 AND SWAP1 PUSH32 0x22FE8E8EAD80AD0961D77107E806BA9BCF9CA3B175A9D446145646D39C36AB96 SWAP1 PUSH2 0xC08 SWAP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 DUP9 PUSH32 0x2DC7AC5D08FD553243FC66B5F15262E3F3013E27ABF660D7BB3FCCF133322F6E DUP4 PUSH1 0x40 MLOAD PUSH2 0xC42 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xCA4 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xCA9 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0xCFA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xB PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616C6C206661696C6564000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x924 JUMP JUMPDEST POP POP POP PUSH2 0xD07 PUSH1 0x1 PUSH1 0x0 SSTORE JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xD4F PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x756E706175736528290000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x1B75 JUMP JUMPDEST PUSH2 0xD57 PUSH2 0x1D67 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xD61 PUSH2 0x1DE4 JUMP JUMPDEST PUSH2 0xD82 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x31F2 PUSH1 0x23 SWAP2 CODECOPY PUSH2 0x1B75 JUMP JUMPDEST PUSH1 0x0 CALLVALUE GT PUSH2 0xDF8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A2076616C75652063 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616E6E6F74206265207A65726F00000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x924 JUMP JUMPDEST PUSH1 0x0 DUP5 SWAP1 SUB PUSH2 0xE6F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A20656D7074792070 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x61796C6F61640000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x924 JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0xE8D SWAP1 PUSH2 0x27A8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xEB9 SWAP1 PUSH2 0x27A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xF06 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xEDB JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xF06 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xEE9 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0xFAA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x42 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A2064657374696E61 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x74696F6E20636861696E206973206E6F742061207472757374656420736F7572 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6365000000000000000000000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0x924 JUMP JUMPDEST PUSH2 0xFEA DUP8 DUP8 DUP8 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1E4F SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD PUSH2 0xFFB SWAP1 PUSH2 0x286F JUMP JUMPDEST SWAP2 SWAP1 POP DUP2 SWAP1 SSTORE SWAP1 POP PUSH1 0x0 DUP8 DUP8 DUP4 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x101A SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x28A7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH32 0xC580310000000000000000000000000000000000000000000000000000000000 DUP3 MSTORE SWAP2 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 AND SWAP1 PUSH4 0xC5803100 SWAP1 CALLVALUE SWAP1 PUSH2 0x10AA SWAP1 DUP14 SWAP1 DUP9 SWAP1 DUP8 SWAP1 CALLER SWAP1 DUP13 SWAP1 DUP16 SWAP1 DUP16 SWAP1 PUSH1 0x4 ADD PUSH2 0x28CB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL SWAP4 POP POP POP POP DUP1 ISZERO PUSH2 0x10D5 JUMPI POP PUSH1 0x1 JUMPDEST PUSH2 0x1193 JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x1103 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1108 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP10 DUP3 DUP9 DUP9 CALLVALUE PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1122 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2933 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE DUP3 DUP3 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x8 SWAP1 SWAP3 MSTORE SWAP2 SWAP1 KECCAK256 SSTORE PUSH2 0xFFFF DUP12 AND SWAP1 DUP5 SWAP1 PUSH32 0x6D16111647E03D7F1CB2B71C02EAFE3355B97DFC17AF3DE1B94EF39C8A9EE4D9 SWAP1 PUSH2 0x1185 SWAP1 DUP7 SWAP1 DUP13 SWAP1 DUP13 SWAP1 CALLVALUE SWAP1 DUP10 SWAP1 PUSH2 0x2976 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP PUSH2 0x11D2 JUMP JUMPDEST DUP9 PUSH2 0xFFFF AND PUSH32 0x95A4FCF4EB9BE6F5CF2EB6830782870F8907BCCC513F765388A9CB2DAE2F3259 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x11C9 SWAP3 SWAP2 SWAP1 PUSH2 0x29C2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xF5ECBDBC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH2 0xFFFF DUP1 DUP6 AND PUSH1 0x4 DUP4 ADD MSTORE DUP4 AND PUSH1 0x24 DUP3 ADD MSTORE ADDRESS PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 SWAP1 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0xF5ECBDBC SWAP1 PUSH1 0x84 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1283 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x12AB SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2AB8 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x12CE SWAP1 PUSH2 0x27A8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x12FA SWAP1 PUSH2 0x27A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1347 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x131C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1347 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x132A JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0x138D PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x7 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x7061757365282900000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x1B75 JUMP JUMPDEST PUSH2 0xD57 PUSH2 0x1F3C JUMP JUMPDEST PUSH2 0x13B6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3215 PUSH1 0x25 SWAP2 CODECOPY PUSH2 0x1B75 JUMP JUMPDEST DUP3 PUSH2 0xFFFF AND PUSH1 0x0 SUB PUSH2 0x1430 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A20636861696E4964 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x206D757374206E6F74206265207A65726F000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x924 JUMP JUMPDEST PUSH2 0x1445 PUSH2 0x143D DUP3 DUP5 PUSH2 0x2AF5 JUMP JUMPDEST PUSH1 0x60 SHR PUSH2 0x1CC1 JUMP JUMPDEST PUSH1 0x14 DUP2 EQ PUSH2 0x14BB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A2072656D6F746520 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x61646472657373206D757374206265203230206279746573206C6F6E67000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x924 JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0x14D9 SWAP1 PUSH2 0x27A8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1505 SWAP1 PUSH2 0x27A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1552 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1527 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1552 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1535 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP3 DUP3 ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x156E SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2B3D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE KECCAK256 SWAP1 PUSH2 0x1599 SWAP1 DUP3 PUSH2 0x2BC3 JUMP JUMPDEST POP PUSH2 0xFFFF DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SWAP1 MLOAD PUSH32 0xE84E609C32D71C678382F7C65CC051810A41DCAF660E55C9F8FCFFEBA4621A32 SWAP2 PUSH2 0x15DF SWAP2 DUP6 SWAP2 SWAP1 PUSH2 0x2CBF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH2 0x160E PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x323A PUSH1 0x26 SWAP2 CODECOPY PUSH2 0x1B75 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xCBED8B9C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 AND SWAP1 PUSH4 0xCBED8B9C SWAP1 PUSH2 0x1688 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x2D78 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x11D2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH2 0x16BE PUSH2 0x1DE4 JUMP JUMPDEST PUSH2 0x16C6 PUSH2 0x1D0E JUMP JUMPDEST PUSH2 0x16E7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x38 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3260 PUSH1 0x38 SWAP2 CODECOPY PUSH2 0x1B75 JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0x1705 SWAP1 PUSH2 0x27A8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1731 SWAP1 PUSH2 0x27A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x177E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1753 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x177E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1761 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x1822 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x42 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A2064657374696E61 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x74696F6E20636861696E206973206E6F742061207472757374656420736F7572 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6365000000000000000000000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0x924 JUMP JUMPDEST PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 PUSH2 0x18A4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A206E6F2073746F72 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6564207061796C6F616400000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x924 JUMP JUMPDEST PUSH1 0x0 DUP8 SWAP1 SUB PUSH2 0x191B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A20656D7074792070 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x61796C6F61640000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x924 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1929 DUP9 DUP11 ADD DUP11 PUSH2 0x2DB1 JUMP JUMPDEST POP SWAP1 POP PUSH2 0x1936 DUP11 DUP3 PUSH2 0x1E4F JUMP JUMPDEST DUP2 DUP11 DUP11 DUP11 DUP11 DUP11 DUP10 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1952 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x27FB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 EQ PUSH2 0x19DB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A20696E76616C6964 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x20657865637574696F6E20706172616D73000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x924 JUMP JUMPDEST PUSH1 0x0 DUP12 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE MLOAD DUP12 SWAP1 PUSH32 0x2DC7AC5D08FD553243FC66B5F15262E3F3013E27ABF660D7BB3FCCF133322F6E SWAP1 PUSH2 0x1A20 SWAP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 AND PUSH4 0xC5803100 PUSH2 0x1A6E CALLVALUE DUP8 PUSH2 0x2E2E JUMP JUMPDEST DUP13 DUP7 DUP14 DUP14 CALLER DUP13 DUP16 DUP16 PUSH1 0x40 MLOAD DUP11 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A99 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2E47 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1AB2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1AC6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP PUSH2 0xD07 PUSH1 0x1 PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH2 0x1AE0 PUSH2 0x1C5A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x1B69 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x924 JUMP JUMPDEST PUSH2 0x1B72 DUP2 PUSH2 0x1FAB JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH32 0x18C5E8AB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x1BCD SWAP1 CALLER SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0x2EBF JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1BEA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1C0E SWAP2 SWAP1 PUSH2 0x2EEE JUMP JUMPDEST PUSH2 0x1B72 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6163636573732064656E69656400000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x924 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0xD57 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x924 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x1B72 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8579BEFE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH1 0x0 SLOAD SUB PUSH2 0x1D60 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5265656E7472616E637947756172643A207265656E7472616E742063616C6C00 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x924 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH2 0x1D6F PUSH2 0x2022 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xD57 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061757361626C653A2070617573656400000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x924 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x1E69 SWAP2 SWAP1 PUSH2 0x30BF JUMP JUMPDEST POP SWAP4 POP SWAP4 POP SWAP4 POP SWAP4 POP DUP3 MLOAD DUP5 MLOAD EQ DUP1 ISZERO PUSH2 0x1E84 JUMPI POP DUP2 MLOAD DUP5 MLOAD EQ JUMPDEST DUP1 ISZERO PUSH2 0x1E91 JUMPI POP DUP1 MLOAD DUP5 MLOAD EQ JUMPDEST PUSH2 0x1F29 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A2070726F706F7361 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C2066756E6374696F6E20696E666F726D6174696F6E206172697479206D6973 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6D61746368000000000000000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0x924 JUMP JUMPDEST PUSH2 0x1F34 DUP7 DUP6 MLOAD PUSH2 0x208C JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1F44 PUSH2 0x1DE4 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH21 0x10000000000000000000000000000000000000000 OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x1DBA CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND PUSH2 0xD57 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061757361626C653A206E6F7420706175736564000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x924 JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x4 DUP4 MSTORE DUP2 DUP5 KECCAK256 SLOAD PUSH1 0x3 DUP5 MSTORE DUP3 DUP6 KECCAK256 SLOAD PUSH1 0x6 SWAP1 SWAP5 MSTORE SWAP2 SWAP1 SWAP4 KECCAK256 SLOAD TIMESTAMP SWAP4 SWAP3 SWAP1 PUSH3 0x15180 PUSH2 0x20CF DUP6 DUP8 PUSH2 0x31DE JUMP JUMPDEST GT ISZERO PUSH2 0x20F3 JUMPI PUSH2 0xFFFF DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP6 SWAP3 POP PUSH2 0x2100 JUMP JUMPDEST PUSH2 0x20FD DUP7 DUP5 PUSH2 0x2E2E JUMP JUMPDEST SWAP3 POP JUMPDEST DUP2 DUP4 GT ISZERO PUSH2 0x2150 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4461696C79205472616E73616374696F6E204C696D6974204578636565646564 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x924 JUMP JUMPDEST DUP5 DUP2 SUB PUSH2 0x219F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4D756C7469706C65206272696467696E6720696E20612070726F706F73616C00 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x924 JUMP JUMPDEST POP POP PUSH2 0xFFFF SWAP1 SWAP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP7 SWAP1 SWAP7 SSTORE PUSH1 0x6 SWAP1 MSTORE SWAP4 SWAP1 SWAP4 KECCAK256 SSTORE POP POP JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x21D5 SWAP1 PUSH2 0x27A8 JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x21E5 JUMPI POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1B72 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2213 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x21FF JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x2229 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2240 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x12AE DUP3 PUSH2 0x2217 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x1B72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x227D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x12AE DUP2 PUSH2 0x2249 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x229A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x22B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x22CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1B72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x22F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2301 DUP8 PUSH2 0x2217 JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x231E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x232A DUP11 DUP4 DUP12 ADD PUSH2 0x2288 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP PUSH1 0x40 DUP10 ADD CALLDATALOAD SWAP2 POP PUSH2 0x233F DUP3 PUSH2 0x22D1 JUMP JUMPDEST SWAP1 SWAP4 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0x2355 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2362 DUP10 DUP3 DUP11 ADD PUSH2 0x2288 JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 POP SWAP3 SWAP6 SWAP4 SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2387 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2390 DUP4 PUSH2 0x2217 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x23BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP9 CALLDATALOAD PUSH2 0x23C5 DUP2 PUSH2 0x2249 JUMP JUMPDEST SWAP8 POP PUSH1 0x20 DUP10 ADD CALLDATALOAD SWAP7 POP PUSH2 0x23DA PUSH1 0x40 DUP11 ADD PUSH2 0x2217 JUMP JUMPDEST SWAP6 POP PUSH1 0x60 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x23F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2403 DUP13 DUP4 DUP14 ADD PUSH2 0x2288 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP PUSH1 0x80 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x241C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2429 DUP12 DUP3 DUP13 ADD PUSH2 0x2288 JUMP JUMPDEST SWAP10 SWAP13 SWAP9 SWAP12 POP SWAP7 SWAP10 SWAP6 SWAP9 SWAP5 SWAP8 SWAP5 SWAP6 PUSH1 0xA0 ADD CALLDATALOAD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x245B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2464 DUP8 PUSH2 0x2217 JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2481 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x248D DUP11 DUP4 DUP12 ADD PUSH2 0x2288 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP PUSH1 0x40 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x24A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24B3 DUP10 DUP3 DUP11 ADD PUSH2 0x2288 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP POP PUSH1 0x60 DUP8 ADD CALLDATALOAD PUSH2 0x24C7 DUP2 PUSH2 0x2249 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x24EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24F3 DUP5 PUSH2 0x2217 JUMP JUMPDEST SWAP3 POP PUSH2 0x2501 PUSH1 0x20 DUP6 ADD PUSH2 0x2217 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x252C JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2514 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x254D DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x2511 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x12AE PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2535 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2586 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x25A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x25AB DUP5 PUSH2 0x2217 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x25C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x25D3 DUP7 DUP3 DUP8 ADD PUSH2 0x2288 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x25F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2601 DUP7 PUSH2 0x2217 JUMP JUMPDEST SWAP5 POP PUSH2 0x260F PUSH1 0x20 DUP8 ADD PUSH2 0x2217 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2632 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x263E DUP9 DUP3 DUP10 ADD PUSH2 0x2288 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x266B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP9 CALLDATALOAD SWAP8 POP PUSH2 0x267B PUSH1 0x20 DUP11 ADD PUSH2 0x2217 JUMP JUMPDEST SWAP7 POP PUSH1 0x40 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2698 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x26A4 DUP13 DUP4 DUP14 ADD PUSH2 0x2288 JUMP JUMPDEST SWAP1 SWAP9 POP SWAP7 POP PUSH1 0x60 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x26BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26CA DUP12 DUP3 DUP13 ADD PUSH2 0x2288 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP POP PUSH1 0x80 DUP10 ADD CALLDATALOAD PUSH2 0x26DE DUP2 PUSH2 0x2249 JUMP JUMPDEST DUP1 SWAP3 POP POP PUSH1 0xA0 DUP10 ADD CALLDATALOAD SWAP1 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 SWAP1 SWAP4 SWAP7 POP JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 ADD ADD MSTORE PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP5 ADD AND DUP5 ADD ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP9 AND DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x275B PUSH1 0xA0 DUP4 ADD DUP8 DUP10 PUSH2 0x26F6 JUMP JUMPDEST DUP6 ISZERO ISZERO PUSH1 0x60 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x2776 DUP2 DUP6 DUP8 PUSH2 0x26F6 JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2797 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 SWAP1 SWAP2 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x27BC JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x27F5 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2819 PUSH1 0x80 DUP4 ADD DUP8 DUP10 PUSH2 0x26F6 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x282C DUP2 DUP7 DUP9 PUSH2 0x26F6 JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x60 DUP4 ADD MSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x28A0 JUMPI PUSH2 0x28A0 PUSH2 0x2840 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0x0 PUSH2 0x28BB PUSH1 0x40 DUP4 ADD DUP6 DUP8 PUSH2 0x26F6 JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x20 DUP4 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP9 AND DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x28E8 PUSH1 0xC0 DUP4 ADD DUP10 PUSH2 0x2535 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x28FA DUP2 DUP10 PUSH2 0x2535 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP9 DUP2 AND PUSH1 0x60 DUP7 ADD MSTORE DUP8 AND PUSH1 0x80 DUP6 ADD MSTORE DUP4 DUP2 SUB PUSH1 0xA0 DUP6 ADD MSTORE SWAP1 POP PUSH2 0x2776 DUP2 DUP6 DUP8 PUSH2 0x26F6 JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2950 PUSH1 0x80 DUP4 ADD DUP8 PUSH2 0x2535 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x2963 DUP2 DUP7 DUP9 PUSH2 0x26F6 JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x60 DUP4 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP2 MSTORE PUSH1 0x0 PUSH2 0x2989 PUSH1 0x80 DUP4 ADD DUP9 PUSH2 0x2535 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x299C DUP2 DUP8 DUP10 PUSH2 0x26F6 JUMP JUMPDEST SWAP1 POP DUP5 PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x29B6 DUP2 DUP6 PUSH2 0x2535 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x12AB PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x2535 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2A33 JUMPI PUSH2 0x2A33 PUSH2 0x29DB JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2A55 JUMPI PUSH2 0x2A55 PUSH2 0x29DB JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A76 PUSH2 0x2A71 DUP5 PUSH2 0x2A3B JUMP JUMPDEST PUSH2 0x2A0A JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE DUP4 DUP4 DUP4 ADD GT ISZERO PUSH2 0x2A8A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x12AE DUP4 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2511 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2AA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x12AE DUP4 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH2 0x2A63 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2ACA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2AE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2AED DUP5 DUP3 DUP6 ADD PUSH2 0x2A98 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 DUP2 CALLDATALOAD DUP2 DUP2 AND SWAP2 PUSH1 0x14 DUP6 LT ISZERO PUSH2 0x2B35 JUMPI DUP1 DUP2 DUP7 PUSH1 0x14 SUB PUSH1 0x3 SHL SHL DUP4 AND AND SWAP3 POP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP5 DUP3 CALLDATACOPY PUSH1 0x60 SWAP2 SWAP1 SWAP2 SHL PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 AND SWAP2 ADD SWAP1 DUP2 MSTORE PUSH1 0x14 ADD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x2BBE JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x2B9F JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1F34 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x2BAB JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2BDD JUMPI PUSH2 0x2BDD PUSH2 0x29DB JUMP JUMPDEST PUSH2 0x2BF1 DUP2 PUSH2 0x2BEB DUP5 SLOAD PUSH2 0x27A8 JUMP JUMPDEST DUP5 PUSH2 0x2B76 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x2C44 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x2C0E JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x1F34 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x2C73 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x2C54 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x2CAF JUMPI DUP8 DUP6 ADD MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0x0 PUSH2 0x2CD2 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x2535 JUMP JUMPDEST PUSH1 0x20 DUP4 DUP3 SUB DUP2 DUP6 ADD MSTORE PUSH1 0x0 DUP6 SLOAD PUSH2 0x2CE8 DUP2 PUSH2 0x27A8 JUMP JUMPDEST DUP1 DUP6 MSTORE PUSH1 0x1 DUP3 DUP2 AND DUP1 ISZERO PUSH2 0x2D03 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x2D3B JUMPI PUSH2 0x2D69 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 DUP5 AND DUP7 DUP9 ADD MSTORE DUP6 DUP4 ISZERO ISZERO PUSH1 0x5 SHL DUP9 ADD ADD SWAP5 POP PUSH2 0x2D69 JUMP JUMPDEST DUP10 PUSH1 0x0 MSTORE DUP6 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x2D61 JUMPI DUP2 SLOAD DUP10 DUP3 ADD DUP10 ADD MSTORE SWAP1 DUP4 ADD SWAP1 DUP8 ADD PUSH2 0x2D46 JUMP JUMPDEST DUP9 ADD DUP8 ADD SWAP6 POP POP JUMPDEST POP SWAP3 SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP1 DUP9 AND DUP4 MSTORE DUP1 DUP8 AND PUSH1 0x20 DUP5 ADD MSTORE POP DUP5 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x2DA6 PUSH1 0x80 DUP4 ADD DUP5 DUP7 PUSH2 0x26F6 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2DC4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2DDB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x2DEC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x2DFA PUSH2 0x2A71 DUP3 PUSH2 0x2A3B JUMP JUMPDEST DUP2 DUP2 MSTORE DUP7 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x2E0F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 SWAP3 DUP3 ADD DUP4 ADD MSTORE SWAP7 SWAP5 ADD CALLDATALOAD SWAP5 POP POP POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x2E41 JUMPI PUSH2 0x2E41 PUSH2 0x2840 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP10 AND DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2E64 PUSH1 0xC0 DUP4 ADD DUP11 PUSH2 0x2535 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x2E77 DUP2 DUP10 DUP12 PUSH2 0x26F6 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP9 DUP2 AND PUSH1 0x60 DUP7 ADD MSTORE DUP8 AND PUSH1 0x80 DUP6 ADD MSTORE DUP4 DUP2 SUB PUSH1 0xA0 DUP6 ADD MSTORE SWAP1 POP PUSH2 0x2EB0 DUP2 DUP6 DUP8 PUSH2 0x26F6 JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x12AB PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x2535 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2F00 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x12AE DUP2 PUSH2 0x22D1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2F25 JUMPI PUSH2 0x2F25 PUSH2 0x29DB JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2F40 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 PUSH2 0x2F50 PUSH2 0x2A71 DUP4 PUSH2 0x2F0B JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP5 PUSH1 0x5 SHL DUP8 ADD ADD SWAP4 POP DUP7 DUP5 GT ISZERO PUSH2 0x2F72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x2F8E JUMPI DUP1 MLOAD DUP4 MSTORE SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x2F77 JUMP JUMPDEST POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2FAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 PUSH2 0x2FBA PUSH2 0x2A71 DUP4 PUSH2 0x2F0B JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 SWAP1 SWAP3 SHL DUP5 ADD DUP2 ADD SWAP2 DUP2 DUP2 ADD SWAP1 DUP7 DUP5 GT ISZERO PUSH2 0x2FD9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x2F8E JUMPI DUP1 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2FFD JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST DUP8 ADD PUSH1 0x3F DUP2 ADD DUP10 SGT PUSH2 0x300F JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x3020 DUP10 DUP7 DUP4 ADD MLOAD PUSH1 0x40 DUP5 ADD PUSH2 0x2A63 JUMP JUMPDEST DUP5 MSTORE POP SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x2FDD JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x303F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 PUSH2 0x304F PUSH2 0x2A71 DUP4 PUSH2 0x2F0B JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 SWAP1 SWAP3 SHL DUP5 ADD DUP2 ADD SWAP2 DUP2 DUP2 ADD SWAP1 DUP7 DUP5 GT ISZERO PUSH2 0x306E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x2F8E JUMPI DUP1 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3092 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x30A0 DUP10 DUP7 DUP4 DUP12 ADD ADD PUSH2 0x2A98 JUMP JUMPDEST DUP5 MSTORE POP SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x3072 JUMP JUMPDEST DUP1 MLOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x2229 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x30D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x30EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP9 ADD SWAP2 POP DUP9 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3103 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 PUSH2 0x3113 PUSH2 0x2A71 DUP4 PUSH2 0x2F0B JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 SWAP1 SWAP3 SHL DUP5 ADD DUP2 ADD SWAP2 DUP2 DUP2 ADD SWAP1 DUP13 DUP5 GT ISZERO PUSH2 0x3132 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP5 DUP3 ADD SWAP5 JUMPDEST DUP4 DUP7 LT ISZERO PUSH2 0x3159 JUMPI DUP6 MLOAD PUSH2 0x314A DUP2 PUSH2 0x2249 JUMP JUMPDEST DUP3 MSTORE SWAP5 DUP3 ADD SWAP5 SWAP1 DUP3 ADD SWAP1 PUSH2 0x3137 JUMP JUMPDEST SWAP2 DUP12 ADD MLOAD SWAP2 SWAP10 POP SWAP1 SWAP4 POP POP POP DUP1 DUP3 GT ISZERO PUSH2 0x3172 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x317E DUP10 DUP4 DUP11 ADD PUSH2 0x2F2F JUMP JUMPDEST SWAP6 POP PUSH1 0x40 DUP9 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x3194 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x31A0 DUP10 DUP4 DUP11 ADD PUSH2 0x2F99 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x31B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31C3 DUP9 DUP3 DUP10 ADD PUSH2 0x302E JUMP JUMPDEST SWAP3 POP POP PUSH2 0x31D2 PUSH1 0x80 DUP8 ADD PUSH2 0x30AE JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x2E41 JUMPI PUSH2 0x2E41 PUSH2 0x2840 JUMP INVALID PUSH6 0x786563757465 0x28 PUSH22 0x696E7431362C62797465732C62797465732C61646472 PUSH6 0x737329736574 SLOAD PUSH19 0x757374656452656D6F74654164647265737328 PUSH22 0x696E7431362C627974657329736574436F6E66696728 PUSH22 0x696E7431362C75696E7431362C75696E743235362C62 PUSH26 0x746573297265747279457865637574652875696E743235362C75 PUSH10 0x6E7431362C6279746573 0x2C PUSH3 0x797465 PUSH20 0x2C616464726573732C75696E7432353629A26469 PUSH17 0x667358221220CDDFA01F72BF4DF6426198 LOG3 0xEC DUP3 0xD6 0xB0 0xD9 0xEE JUMPI 0x2A SWAP15 PUSH2 0xF22B CALLVALUE 0xC5 0xBA SWAP12 0xB4 DUP10 0xF8 PUSH6 0x64736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"927:14147:53:-:0;;;2797:241;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1716:1:34;1821:7;:22;2921:21:53;936:32:32;734:10:39;936:18:32;:32::i;:::-;996:7:33;:15;;-1:-1:-1;;;;996:15:33;;;2009:43:50;2030:21;2009:20;:43::i;:::-;2062:20;:44;;-1:-1:-1;;;;;;2062:44:50;-1:-1:-1;;;;;2062:44:50;;;;;;;;;;2954:42:53::1;2983:11:::0;2954:20:::1;:42::i;:::-;-1:-1:-1::0;;;;;;3006:25:53::1;;::::0;927:14147;;2426:187:32;2518:6;;;-1:-1:-1;;;;;2534:17:32;;;-1:-1:-1;;;;;;2534:17:32;;;;;;;2566:40;;2518:6;;;2534:17;2518:6;;2566:40;;2499:16;;2566:40;2489:124;2426:187;:::o;485:136:47:-;-1:-1:-1;;;;;548:22:47;;544:75;;589:23;;-1:-1:-1;;;589:23:47;;;;;;;;;;;544:75;485:136;:::o;14:151:97:-;-1:-1:-1;;;;;109:31:97;;99:42;;89:70;;155:1;152;145:12;170:452;276:6;284;337:2;325:9;316:7;312:23;308:32;305:52;;;353:1;350;343:12;305:52;385:9;379:16;404:51;449:5;404:51;:::i;:::-;524:2;509:18;;503:25;474:5;;-1:-1:-1;537:53:97;503:25;537:53;:::i;:::-;609:7;599:17;;;170:452;;;;;:::o;:::-;927:14147:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@LZ_ENDPOINT_12733":{"entryPoint":null,"id":12733,"parameterSlots":0,"returnSlots":0},"@_checkOwner_7018":{"entryPoint":7258,"id":7018,"parameterSlots":0,"returnSlots":0},"@_ensureAllowed_11380":{"entryPoint":7029,"id":11380,"parameterSlots":1,"returnSlots":0},"@_isEligibleToSend_11361":{"entryPoint":8332,"id":11361,"parameterSlots":2,"returnSlots":0},"@_msgSender_8081":{"entryPoint":null,"id":8081,"parameterSlots":0,"returnSlots":1},"@_nonReentrantAfter_7237":{"entryPoint":null,"id":7237,"parameterSlots":0,"returnSlots":0},"@_nonReentrantBefore_7229":{"entryPoint":7438,"id":7229,"parameterSlots":0,"returnSlots":0},"@_pause_7167":{"entryPoint":7996,"id":7167,"parameterSlots":0,"returnSlots":0},"@_requireNotPaused_7140":{"entryPoint":7652,"id":7140,"parameterSlots":0,"returnSlots":0},"@_requirePaused_7151":{"entryPoint":8226,"id":7151,"parameterSlots":0,"returnSlots":0},"@_transferOwnership_7075":{"entryPoint":8107,"id":7075,"parameterSlots":1,"returnSlots":0},"@_unpause_7183":{"entryPoint":7527,"id":7183,"parameterSlots":0,"returnSlots":0},"@_validateProposal_13427":{"entryPoint":7759,"id":13427,"parameterSlots":2,"returnSlots":0},"@accessControlManager_11146":{"entryPoint":null,"id":11146,"parameterSlots":0,"returnSlots":0},"@chainIdToLast24HourCommandsSent_11156":{"entryPoint":null,"id":11156,"parameterSlots":0,"returnSlots":0},"@chainIdToLast24HourWindowStart_11161":{"entryPoint":null,"id":11161,"parameterSlots":0,"returnSlots":0},"@chainIdToLastProposalSentTimestamp_11166":{"entryPoint":null,"id":11166,"parameterSlots":0,"returnSlots":0},"@chainIdToMaxDailyLimit_11151":{"entryPoint":null,"id":11151,"parameterSlots":0,"returnSlots":0},"@ensureNonzeroAddress_10945":{"entryPoint":7361,"id":10945,"parameterSlots":1,"returnSlots":0},"@estimateFees_12842":{"entryPoint":1787,"id":12842,"parameterSlots":6,"returnSlots":2},"@execute_12994":{"entryPoint":3417,"id":12994,"parameterSlots":6,"returnSlots":0},"@fallbackWithdraw_13223":{"entryPoint":2427,"id":13223,"parameterSlots":8,"returnSlots":0},"@getConfig_13358":{"entryPoint":4573,"id":13358,"parameterSlots":3,"returnSlots":1},"@owner_7004":{"entryPoint":null,"id":7004,"parameterSlots":0,"returnSlots":1},"@pause_11235":{"entryPoint":4943,"id":11235,"parameterSlots":0,"returnSlots":0},"@paused_7128":{"entryPoint":null,"id":7128,"parameterSlots":0,"returnSlots":1},"@proposalCount_12724":{"entryPoint":null,"id":12724,"parameterSlots":0,"returnSlots":0},"@removeTrustedRemote_12872":{"entryPoint":2133,"id":12872,"parameterSlots":1,"returnSlots":0},"@renounceOwnership_11275":{"entryPoint":null,"id":11275,"parameterSlots":0,"returnSlots":0},"@retryExecute_13119":{"entryPoint":5814,"id":13119,"parameterSlots":8,"returnSlots":0},"@setAccessControlManager_11269":{"entryPoint":1628,"id":11269,"parameterSlots":1,"returnSlots":0},"@setConfig_13317":{"entryPoint":5613,"id":13317,"parameterSlots":5,"returnSlots":0},"@setMaxDailyLimit_11223":{"entryPoint":1970,"id":11223,"parameterSlots":2,"returnSlots":0},"@setSendVersion_13334":{"entryPoint":1400,"id":13334,"parameterSlots":1,"returnSlots":0},"@setTrustedRemoteAddress_13291":{"entryPoint":5013,"id":13291,"parameterSlots":3,"returnSlots":0},"@storedExecutionHashes_12729":{"entryPoint":null,"id":12729,"parameterSlots":0,"returnSlots":0},"@transferOwnership_7055":{"entryPoint":6872,"id":7055,"parameterSlots":1,"returnSlots":0},"@trustedRemoteLookup_12738":{"entryPoint":4789,"id":12738,"parameterSlots":0,"returnSlots":0},"@unpause_11247":{"entryPoint":3345,"id":11247,"parameterSlots":0,"returnSlots":0},"abi_decode_array_bytes_dyn_fromMemory":{"entryPoint":12334,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_array_string_dyn_fromMemory":{"entryPoint":12185,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_array_uint256_dyn_fromMemory":{"entryPoint":12079,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_available_length_bytes_fromMemory":{"entryPoint":10851,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_bytes_calldata":{"entryPoint":8840,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_bytes_fromMemory":{"entryPoint":10904,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":8811,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_uint256t_uint16t_bytes_calldata_ptrt_bytes_calldata_ptrt_uint256":{"entryPoint":9118,"id":null,"parameterSlots":2,"returnSlots":8},"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_string_memory_ptr_$dyn_memory_ptrt_array$_t_bytes_memory_ptr_$dyn_memory_ptrt_uint8_fromMemory":{"entryPoint":12479,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":12014,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_memory_ptr_fromMemory":{"entryPoint":10936,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_memory_ptrt_uint256":{"entryPoint":11697,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint16":{"entryPoint":8750,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint16t_bytes_calldata_ptr":{"entryPoint":9613,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_boolt_bytes_calldata_ptr":{"entryPoint":8927,"id":null,"parameterSlots":2,"returnSlots":6},"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_bytes_calldata_ptrt_address":{"entryPoint":9282,"id":null,"parameterSlots":2,"returnSlots":6},"abi_decode_tuple_t_uint16t_uint16t_uint256":{"entryPoint":9429,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_calldata_ptr":{"entryPoint":9696,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_uint16t_uint256":{"entryPoint":9076,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256":{"entryPoint":9588,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint16t_bytes_calldata_ptrt_bytes_calldata_ptrt_addresst_uint256":{"entryPoint":9807,"id":null,"parameterSlots":2,"returnSlots":8},"abi_decode_tuple_t_uint256t_uint256_fromMemory":{"entryPoint":10116,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_uint16":{"entryPoint":8727,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint8_fromMemory":{"entryPoint":12462,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_bytes":{"entryPoint":9525,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_bytes_calldata":{"entryPoint":9974,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_calldata_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed":{"entryPoint":11069,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":11967,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_calldata_ptr_t_uint256__to_t_bytes_memory_ptr_t_uint256__fromStack_reversed":{"entryPoint":10407,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":9569,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr_t_bytes_calldata_ptr_t_uint256_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":10614,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr_t_bytes_storage__to_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11455,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_contract$_ILayerZeroEndpoint_$4253__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_066ad49a0ed9e5d6a9f3c20fca13a038f0a5d629f0aaf09d634ae2a7c232ac2b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_232124683b132441e662395a64e30551728c0a15d01f6ff2dd9080f88729b51d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4867e9bc1f5aceefa1d5492b8babd12820787c1937becbd7fd5e31e7ecb2fecc__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_61468fbafd753a44eba72b43458a5a571ff9821e3893131cc67b0876c2e26370__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7f1ab6dca0c040aececbb4df1c67ab1f13c05f495e8356647158d9e65e565e3b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_8358903084c88ef15210bf333ef998ba2611eed32c9f09d8b5a82883806d1286__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_8fc786e18c67f9a2aae9af1908b470ce7b6a77c7cd6fd1e9dbdafb6499657565__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b4b52b7d4888c17cd61b7d072c8bae52af7ec4fe5cc936af361e359d49845e55__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c21731293dc1db8cf9168ecb51cce73dc982950e761a15c276e0761cd2ea3210__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cba8a57ccb1594d7138ca5e2a9216c55d23151b53a95734bafda4b812e3786ff__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e46b78c27334ff7d48b2f5b14d5600e9479f0d3eae7a51dbf6a0c69d730dd8be__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f2dee99a91d995c8e88710507d1b85f55e19c65efb5b25670813dd22d63ba09d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f5eefd0c62457e6ddad4d12b314f91d912b3ccd761af75b4b7cf73ff444e1b62__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fb6f40981fe5a22463da4d402f5b2d8f9dbbf83560ebbdd44591d6544b346e53__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint16_t_address_t_bytes_calldata_ptr_t_bool_t_bytes_calldata_ptr__to_t_uint16_t_address_t_bytes_memory_ptr_t_bool_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":10017,"id":null,"parameterSlots":8,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_bytes_calldata_ptr_t_uint256__to_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed":{"entryPoint":10235,"id":null,"parameterSlots":7,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_bytes_calldata_ptr_t_address_payable_t_address_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_address_payable_t_address_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11847,"id":null,"parameterSlots":9,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_bytes_calldata_ptr_t_uint256__to_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed":{"entryPoint":10547,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_address_payable_t_address_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_address_payable_t_address_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":10443,"id":null,"parameterSlots":8,"returnSlots":1},"abi_encode_tuple_t_uint16_t_uint16_t_address_t_uint256__to_t_uint16_t_uint16_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_uint16_t_uint16_t_uint256_t_bytes_calldata_ptr__to_t_uint16_t_uint16_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11640,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_bytes_memory_ptr__to_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":10690,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"allocate_memory":{"entryPoint":10762,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_array_address_dyn":{"entryPoint":12043,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_bytes":{"entryPoint":10811,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_bytes_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":11822,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":12766,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_bytes_storage":{"entryPoint":11126,"id":null,"parameterSlots":3,"returnSlots":0},"convert_bytes_to_fixedbytes_from_t_bytes_calldata_ptr_to_t_bytes20":{"entryPoint":10997,"id":null,"parameterSlots":2,"returnSlots":1},"copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage":{"entryPoint":11203,"id":null,"parameterSlots":2,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":9489,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":10152,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"increment_t_uint256":{"entryPoint":10351,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":10304,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":10715,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":8777,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_bool":{"entryPoint":8913,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:36864:97","nodeType":"YulBlock","src":"0:36864:97","statements":[{"nativeSrc":"6:3:97","nodeType":"YulBlock","src":"6:3:97","statements":[]},{"body":{"nativeSrc":"62:111:97","nodeType":"YulBlock","src":"62:111:97","statements":[{"nativeSrc":"72:29:97","nodeType":"YulAssignment","src":"72:29:97","value":{"arguments":[{"name":"offset","nativeSrc":"94:6:97","nodeType":"YulIdentifier","src":"94:6:97"}],"functionName":{"name":"calldataload","nativeSrc":"81:12:97","nodeType":"YulIdentifier","src":"81:12:97"},"nativeSrc":"81:20:97","nodeType":"YulFunctionCall","src":"81:20:97"},"variableNames":[{"name":"value","nativeSrc":"72:5:97","nodeType":"YulIdentifier","src":"72:5:97"}]},{"body":{"nativeSrc":"151:16:97","nodeType":"YulBlock","src":"151:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"160:1:97","nodeType":"YulLiteral","src":"160:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"163:1:97","nodeType":"YulLiteral","src":"163:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"153:6:97","nodeType":"YulIdentifier","src":"153:6:97"},"nativeSrc":"153:12:97","nodeType":"YulFunctionCall","src":"153:12:97"},"nativeSrc":"153:12:97","nodeType":"YulExpressionStatement","src":"153:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"123:5:97","nodeType":"YulIdentifier","src":"123:5:97"},{"arguments":[{"name":"value","nativeSrc":"134:5:97","nodeType":"YulIdentifier","src":"134:5:97"},{"kind":"number","nativeSrc":"141:6:97","nodeType":"YulLiteral","src":"141:6:97","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"130:3:97","nodeType":"YulIdentifier","src":"130:3:97"},"nativeSrc":"130:18:97","nodeType":"YulFunctionCall","src":"130:18:97"}],"functionName":{"name":"eq","nativeSrc":"120:2:97","nodeType":"YulIdentifier","src":"120:2:97"},"nativeSrc":"120:29:97","nodeType":"YulFunctionCall","src":"120:29:97"}],"functionName":{"name":"iszero","nativeSrc":"113:6:97","nodeType":"YulIdentifier","src":"113:6:97"},"nativeSrc":"113:37:97","nodeType":"YulFunctionCall","src":"113:37:97"},"nativeSrc":"110:57:97","nodeType":"YulIf","src":"110:57:97"}]},"name":"abi_decode_uint16","nativeSrc":"14:159:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"41:6:97","nodeType":"YulTypedName","src":"41:6:97","type":""}],"returnVariables":[{"name":"value","nativeSrc":"52:5:97","nodeType":"YulTypedName","src":"52:5:97","type":""}],"src":"14:159:97"},{"body":{"nativeSrc":"247:115:97","nodeType":"YulBlock","src":"247:115:97","statements":[{"body":{"nativeSrc":"293:16:97","nodeType":"YulBlock","src":"293:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"302:1:97","nodeType":"YulLiteral","src":"302:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"305:1:97","nodeType":"YulLiteral","src":"305:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"295:6:97","nodeType":"YulIdentifier","src":"295:6:97"},"nativeSrc":"295:12:97","nodeType":"YulFunctionCall","src":"295:12:97"},"nativeSrc":"295:12:97","nodeType":"YulExpressionStatement","src":"295:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"268:7:97","nodeType":"YulIdentifier","src":"268:7:97"},{"name":"headStart","nativeSrc":"277:9:97","nodeType":"YulIdentifier","src":"277:9:97"}],"functionName":{"name":"sub","nativeSrc":"264:3:97","nodeType":"YulIdentifier","src":"264:3:97"},"nativeSrc":"264:23:97","nodeType":"YulFunctionCall","src":"264:23:97"},{"kind":"number","nativeSrc":"289:2:97","nodeType":"YulLiteral","src":"289:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"260:3:97","nodeType":"YulIdentifier","src":"260:3:97"},"nativeSrc":"260:32:97","nodeType":"YulFunctionCall","src":"260:32:97"},"nativeSrc":"257:52:97","nodeType":"YulIf","src":"257:52:97"},{"nativeSrc":"318:38:97","nodeType":"YulAssignment","src":"318:38:97","value":{"arguments":[{"name":"headStart","nativeSrc":"346:9:97","nodeType":"YulIdentifier","src":"346:9:97"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"328:17:97","nodeType":"YulIdentifier","src":"328:17:97"},"nativeSrc":"328:28:97","nodeType":"YulFunctionCall","src":"328:28:97"},"variableNames":[{"name":"value0","nativeSrc":"318:6:97","nodeType":"YulIdentifier","src":"318:6:97"}]}]},"name":"abi_decode_tuple_t_uint16","nativeSrc":"178:184:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"213:9:97","nodeType":"YulTypedName","src":"213:9:97","type":""},{"name":"dataEnd","nativeSrc":"224:7:97","nodeType":"YulTypedName","src":"224:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"236:6:97","nodeType":"YulTypedName","src":"236:6:97","type":""}],"src":"178:184:97"},{"body":{"nativeSrc":"412:109:97","nodeType":"YulBlock","src":"412:109:97","statements":[{"body":{"nativeSrc":"499:16:97","nodeType":"YulBlock","src":"499:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"508:1:97","nodeType":"YulLiteral","src":"508:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"511:1:97","nodeType":"YulLiteral","src":"511:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"501:6:97","nodeType":"YulIdentifier","src":"501:6:97"},"nativeSrc":"501:12:97","nodeType":"YulFunctionCall","src":"501:12:97"},"nativeSrc":"501:12:97","nodeType":"YulExpressionStatement","src":"501:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"435:5:97","nodeType":"YulIdentifier","src":"435:5:97"},{"arguments":[{"name":"value","nativeSrc":"446:5:97","nodeType":"YulIdentifier","src":"446:5:97"},{"kind":"number","nativeSrc":"453:42:97","nodeType":"YulLiteral","src":"453:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"442:3:97","nodeType":"YulIdentifier","src":"442:3:97"},"nativeSrc":"442:54:97","nodeType":"YulFunctionCall","src":"442:54:97"}],"functionName":{"name":"eq","nativeSrc":"432:2:97","nodeType":"YulIdentifier","src":"432:2:97"},"nativeSrc":"432:65:97","nodeType":"YulFunctionCall","src":"432:65:97"}],"functionName":{"name":"iszero","nativeSrc":"425:6:97","nodeType":"YulIdentifier","src":"425:6:97"},"nativeSrc":"425:73:97","nodeType":"YulFunctionCall","src":"425:73:97"},"nativeSrc":"422:93:97","nodeType":"YulIf","src":"422:93:97"}]},"name":"validator_revert_address","nativeSrc":"367:154:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"401:5:97","nodeType":"YulTypedName","src":"401:5:97","type":""}],"src":"367:154:97"},{"body":{"nativeSrc":"596:177:97","nodeType":"YulBlock","src":"596:177:97","statements":[{"body":{"nativeSrc":"642:16:97","nodeType":"YulBlock","src":"642:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"651:1:97","nodeType":"YulLiteral","src":"651:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"654:1:97","nodeType":"YulLiteral","src":"654:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"644:6:97","nodeType":"YulIdentifier","src":"644:6:97"},"nativeSrc":"644:12:97","nodeType":"YulFunctionCall","src":"644:12:97"},"nativeSrc":"644:12:97","nodeType":"YulExpressionStatement","src":"644:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"617:7:97","nodeType":"YulIdentifier","src":"617:7:97"},{"name":"headStart","nativeSrc":"626:9:97","nodeType":"YulIdentifier","src":"626:9:97"}],"functionName":{"name":"sub","nativeSrc":"613:3:97","nodeType":"YulIdentifier","src":"613:3:97"},"nativeSrc":"613:23:97","nodeType":"YulFunctionCall","src":"613:23:97"},{"kind":"number","nativeSrc":"638:2:97","nodeType":"YulLiteral","src":"638:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"609:3:97","nodeType":"YulIdentifier","src":"609:3:97"},"nativeSrc":"609:32:97","nodeType":"YulFunctionCall","src":"609:32:97"},"nativeSrc":"606:52:97","nodeType":"YulIf","src":"606:52:97"},{"nativeSrc":"667:36:97","nodeType":"YulVariableDeclaration","src":"667:36:97","value":{"arguments":[{"name":"headStart","nativeSrc":"693:9:97","nodeType":"YulIdentifier","src":"693:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"680:12:97","nodeType":"YulIdentifier","src":"680:12:97"},"nativeSrc":"680:23:97","nodeType":"YulFunctionCall","src":"680:23:97"},"variables":[{"name":"value","nativeSrc":"671:5:97","nodeType":"YulTypedName","src":"671:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"737:5:97","nodeType":"YulIdentifier","src":"737:5:97"}],"functionName":{"name":"validator_revert_address","nativeSrc":"712:24:97","nodeType":"YulIdentifier","src":"712:24:97"},"nativeSrc":"712:31:97","nodeType":"YulFunctionCall","src":"712:31:97"},"nativeSrc":"712:31:97","nodeType":"YulExpressionStatement","src":"712:31:97"},{"nativeSrc":"752:15:97","nodeType":"YulAssignment","src":"752:15:97","value":{"name":"value","nativeSrc":"762:5:97","nodeType":"YulIdentifier","src":"762:5:97"},"variableNames":[{"name":"value0","nativeSrc":"752:6:97","nodeType":"YulIdentifier","src":"752:6:97"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"526:247:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"562:9:97","nodeType":"YulTypedName","src":"562:9:97","type":""},{"name":"dataEnd","nativeSrc":"573:7:97","nodeType":"YulTypedName","src":"573:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"585:6:97","nodeType":"YulTypedName","src":"585:6:97","type":""}],"src":"526:247:97"},{"body":{"nativeSrc":"879:76:97","nodeType":"YulBlock","src":"879:76:97","statements":[{"nativeSrc":"889:26:97","nodeType":"YulAssignment","src":"889:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"901:9:97","nodeType":"YulIdentifier","src":"901:9:97"},{"kind":"number","nativeSrc":"912:2:97","nodeType":"YulLiteral","src":"912:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"897:3:97","nodeType":"YulIdentifier","src":"897:3:97"},"nativeSrc":"897:18:97","nodeType":"YulFunctionCall","src":"897:18:97"},"variableNames":[{"name":"tail","nativeSrc":"889:4:97","nodeType":"YulIdentifier","src":"889:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"931:9:97","nodeType":"YulIdentifier","src":"931:9:97"},{"name":"value0","nativeSrc":"942:6:97","nodeType":"YulIdentifier","src":"942:6:97"}],"functionName":{"name":"mstore","nativeSrc":"924:6:97","nodeType":"YulIdentifier","src":"924:6:97"},"nativeSrc":"924:25:97","nodeType":"YulFunctionCall","src":"924:25:97"},"nativeSrc":"924:25:97","nodeType":"YulExpressionStatement","src":"924:25:97"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"778:177:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"848:9:97","nodeType":"YulTypedName","src":"848:9:97","type":""},{"name":"value0","nativeSrc":"859:6:97","nodeType":"YulTypedName","src":"859:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"870:4:97","nodeType":"YulTypedName","src":"870:4:97","type":""}],"src":"778:177:97"},{"body":{"nativeSrc":"1032:275:97","nodeType":"YulBlock","src":"1032:275:97","statements":[{"body":{"nativeSrc":"1081:16:97","nodeType":"YulBlock","src":"1081:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1090:1:97","nodeType":"YulLiteral","src":"1090:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1093:1:97","nodeType":"YulLiteral","src":"1093:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1083:6:97","nodeType":"YulIdentifier","src":"1083:6:97"},"nativeSrc":"1083:12:97","nodeType":"YulFunctionCall","src":"1083:12:97"},"nativeSrc":"1083:12:97","nodeType":"YulExpressionStatement","src":"1083:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"1060:6:97","nodeType":"YulIdentifier","src":"1060:6:97"},{"kind":"number","nativeSrc":"1068:4:97","nodeType":"YulLiteral","src":"1068:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"1056:3:97","nodeType":"YulIdentifier","src":"1056:3:97"},"nativeSrc":"1056:17:97","nodeType":"YulFunctionCall","src":"1056:17:97"},{"name":"end","nativeSrc":"1075:3:97","nodeType":"YulIdentifier","src":"1075:3:97"}],"functionName":{"name":"slt","nativeSrc":"1052:3:97","nodeType":"YulIdentifier","src":"1052:3:97"},"nativeSrc":"1052:27:97","nodeType":"YulFunctionCall","src":"1052:27:97"}],"functionName":{"name":"iszero","nativeSrc":"1045:6:97","nodeType":"YulIdentifier","src":"1045:6:97"},"nativeSrc":"1045:35:97","nodeType":"YulFunctionCall","src":"1045:35:97"},"nativeSrc":"1042:55:97","nodeType":"YulIf","src":"1042:55:97"},{"nativeSrc":"1106:30:97","nodeType":"YulAssignment","src":"1106:30:97","value":{"arguments":[{"name":"offset","nativeSrc":"1129:6:97","nodeType":"YulIdentifier","src":"1129:6:97"}],"functionName":{"name":"calldataload","nativeSrc":"1116:12:97","nodeType":"YulIdentifier","src":"1116:12:97"},"nativeSrc":"1116:20:97","nodeType":"YulFunctionCall","src":"1116:20:97"},"variableNames":[{"name":"length","nativeSrc":"1106:6:97","nodeType":"YulIdentifier","src":"1106:6:97"}]},{"body":{"nativeSrc":"1179:16:97","nodeType":"YulBlock","src":"1179:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1188:1:97","nodeType":"YulLiteral","src":"1188:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1191:1:97","nodeType":"YulLiteral","src":"1191:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1181:6:97","nodeType":"YulIdentifier","src":"1181:6:97"},"nativeSrc":"1181:12:97","nodeType":"YulFunctionCall","src":"1181:12:97"},"nativeSrc":"1181:12:97","nodeType":"YulExpressionStatement","src":"1181:12:97"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1151:6:97","nodeType":"YulIdentifier","src":"1151:6:97"},{"kind":"number","nativeSrc":"1159:18:97","nodeType":"YulLiteral","src":"1159:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1148:2:97","nodeType":"YulIdentifier","src":"1148:2:97"},"nativeSrc":"1148:30:97","nodeType":"YulFunctionCall","src":"1148:30:97"},"nativeSrc":"1145:50:97","nodeType":"YulIf","src":"1145:50:97"},{"nativeSrc":"1204:29:97","nodeType":"YulAssignment","src":"1204:29:97","value":{"arguments":[{"name":"offset","nativeSrc":"1220:6:97","nodeType":"YulIdentifier","src":"1220:6:97"},{"kind":"number","nativeSrc":"1228:4:97","nodeType":"YulLiteral","src":"1228:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1216:3:97","nodeType":"YulIdentifier","src":"1216:3:97"},"nativeSrc":"1216:17:97","nodeType":"YulFunctionCall","src":"1216:17:97"},"variableNames":[{"name":"arrayPos","nativeSrc":"1204:8:97","nodeType":"YulIdentifier","src":"1204:8:97"}]},{"body":{"nativeSrc":"1285:16:97","nodeType":"YulBlock","src":"1285:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1294:1:97","nodeType":"YulLiteral","src":"1294:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1297:1:97","nodeType":"YulLiteral","src":"1297:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1287:6:97","nodeType":"YulIdentifier","src":"1287:6:97"},"nativeSrc":"1287:12:97","nodeType":"YulFunctionCall","src":"1287:12:97"},"nativeSrc":"1287:12:97","nodeType":"YulExpressionStatement","src":"1287:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"1256:6:97","nodeType":"YulIdentifier","src":"1256:6:97"},{"name":"length","nativeSrc":"1264:6:97","nodeType":"YulIdentifier","src":"1264:6:97"}],"functionName":{"name":"add","nativeSrc":"1252:3:97","nodeType":"YulIdentifier","src":"1252:3:97"},"nativeSrc":"1252:19:97","nodeType":"YulFunctionCall","src":"1252:19:97"},{"kind":"number","nativeSrc":"1273:4:97","nodeType":"YulLiteral","src":"1273:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1248:3:97","nodeType":"YulIdentifier","src":"1248:3:97"},"nativeSrc":"1248:30:97","nodeType":"YulFunctionCall","src":"1248:30:97"},{"name":"end","nativeSrc":"1280:3:97","nodeType":"YulIdentifier","src":"1280:3:97"}],"functionName":{"name":"gt","nativeSrc":"1245:2:97","nodeType":"YulIdentifier","src":"1245:2:97"},"nativeSrc":"1245:39:97","nodeType":"YulFunctionCall","src":"1245:39:97"},"nativeSrc":"1242:59:97","nodeType":"YulIf","src":"1242:59:97"}]},"name":"abi_decode_bytes_calldata","nativeSrc":"960:347:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"995:6:97","nodeType":"YulTypedName","src":"995:6:97","type":""},{"name":"end","nativeSrc":"1003:3:97","nodeType":"YulTypedName","src":"1003:3:97","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"1011:8:97","nodeType":"YulTypedName","src":"1011:8:97","type":""},{"name":"length","nativeSrc":"1021:6:97","nodeType":"YulTypedName","src":"1021:6:97","type":""}],"src":"960:347:97"},{"body":{"nativeSrc":"1354:76:97","nodeType":"YulBlock","src":"1354:76:97","statements":[{"body":{"nativeSrc":"1408:16:97","nodeType":"YulBlock","src":"1408:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1417:1:97","nodeType":"YulLiteral","src":"1417:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1420:1:97","nodeType":"YulLiteral","src":"1420:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1410:6:97","nodeType":"YulIdentifier","src":"1410:6:97"},"nativeSrc":"1410:12:97","nodeType":"YulFunctionCall","src":"1410:12:97"},"nativeSrc":"1410:12:97","nodeType":"YulExpressionStatement","src":"1410:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1377:5:97","nodeType":"YulIdentifier","src":"1377:5:97"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1398:5:97","nodeType":"YulIdentifier","src":"1398:5:97"}],"functionName":{"name":"iszero","nativeSrc":"1391:6:97","nodeType":"YulIdentifier","src":"1391:6:97"},"nativeSrc":"1391:13:97","nodeType":"YulFunctionCall","src":"1391:13:97"}],"functionName":{"name":"iszero","nativeSrc":"1384:6:97","nodeType":"YulIdentifier","src":"1384:6:97"},"nativeSrc":"1384:21:97","nodeType":"YulFunctionCall","src":"1384:21:97"}],"functionName":{"name":"eq","nativeSrc":"1374:2:97","nodeType":"YulIdentifier","src":"1374:2:97"},"nativeSrc":"1374:32:97","nodeType":"YulFunctionCall","src":"1374:32:97"}],"functionName":{"name":"iszero","nativeSrc":"1367:6:97","nodeType":"YulIdentifier","src":"1367:6:97"},"nativeSrc":"1367:40:97","nodeType":"YulFunctionCall","src":"1367:40:97"},"nativeSrc":"1364:60:97","nodeType":"YulIf","src":"1364:60:97"}]},"name":"validator_revert_bool","nativeSrc":"1312:118:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1343:5:97","nodeType":"YulTypedName","src":"1343:5:97","type":""}],"src":"1312:118:97"},{"body":{"nativeSrc":"1590:764:97","nodeType":"YulBlock","src":"1590:764:97","statements":[{"body":{"nativeSrc":"1637:16:97","nodeType":"YulBlock","src":"1637:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1646:1:97","nodeType":"YulLiteral","src":"1646:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1649:1:97","nodeType":"YulLiteral","src":"1649:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1639:6:97","nodeType":"YulIdentifier","src":"1639:6:97"},"nativeSrc":"1639:12:97","nodeType":"YulFunctionCall","src":"1639:12:97"},"nativeSrc":"1639:12:97","nodeType":"YulExpressionStatement","src":"1639:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1611:7:97","nodeType":"YulIdentifier","src":"1611:7:97"},{"name":"headStart","nativeSrc":"1620:9:97","nodeType":"YulIdentifier","src":"1620:9:97"}],"functionName":{"name":"sub","nativeSrc":"1607:3:97","nodeType":"YulIdentifier","src":"1607:3:97"},"nativeSrc":"1607:23:97","nodeType":"YulFunctionCall","src":"1607:23:97"},{"kind":"number","nativeSrc":"1632:3:97","nodeType":"YulLiteral","src":"1632:3:97","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"1603:3:97","nodeType":"YulIdentifier","src":"1603:3:97"},"nativeSrc":"1603:33:97","nodeType":"YulFunctionCall","src":"1603:33:97"},"nativeSrc":"1600:53:97","nodeType":"YulIf","src":"1600:53:97"},{"nativeSrc":"1662:38:97","nodeType":"YulAssignment","src":"1662:38:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1690:9:97","nodeType":"YulIdentifier","src":"1690:9:97"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"1672:17:97","nodeType":"YulIdentifier","src":"1672:17:97"},"nativeSrc":"1672:28:97","nodeType":"YulFunctionCall","src":"1672:28:97"},"variableNames":[{"name":"value0","nativeSrc":"1662:6:97","nodeType":"YulIdentifier","src":"1662:6:97"}]},{"nativeSrc":"1709:46:97","nodeType":"YulVariableDeclaration","src":"1709:46:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1740:9:97","nodeType":"YulIdentifier","src":"1740:9:97"},{"kind":"number","nativeSrc":"1751:2:97","nodeType":"YulLiteral","src":"1751:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1736:3:97","nodeType":"YulIdentifier","src":"1736:3:97"},"nativeSrc":"1736:18:97","nodeType":"YulFunctionCall","src":"1736:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"1723:12:97","nodeType":"YulIdentifier","src":"1723:12:97"},"nativeSrc":"1723:32:97","nodeType":"YulFunctionCall","src":"1723:32:97"},"variables":[{"name":"offset","nativeSrc":"1713:6:97","nodeType":"YulTypedName","src":"1713:6:97","type":""}]},{"nativeSrc":"1764:28:97","nodeType":"YulVariableDeclaration","src":"1764:28:97","value":{"kind":"number","nativeSrc":"1774:18:97","nodeType":"YulLiteral","src":"1774:18:97","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"1768:2:97","nodeType":"YulTypedName","src":"1768:2:97","type":""}]},{"body":{"nativeSrc":"1819:16:97","nodeType":"YulBlock","src":"1819:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1828:1:97","nodeType":"YulLiteral","src":"1828:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1831:1:97","nodeType":"YulLiteral","src":"1831:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1821:6:97","nodeType":"YulIdentifier","src":"1821:6:97"},"nativeSrc":"1821:12:97","nodeType":"YulFunctionCall","src":"1821:12:97"},"nativeSrc":"1821:12:97","nodeType":"YulExpressionStatement","src":"1821:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"1807:6:97","nodeType":"YulIdentifier","src":"1807:6:97"},{"name":"_1","nativeSrc":"1815:2:97","nodeType":"YulIdentifier","src":"1815:2:97"}],"functionName":{"name":"gt","nativeSrc":"1804:2:97","nodeType":"YulIdentifier","src":"1804:2:97"},"nativeSrc":"1804:14:97","nodeType":"YulFunctionCall","src":"1804:14:97"},"nativeSrc":"1801:34:97","nodeType":"YulIf","src":"1801:34:97"},{"nativeSrc":"1844:84:97","nodeType":"YulVariableDeclaration","src":"1844:84:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1900:9:97","nodeType":"YulIdentifier","src":"1900:9:97"},{"name":"offset","nativeSrc":"1911:6:97","nodeType":"YulIdentifier","src":"1911:6:97"}],"functionName":{"name":"add","nativeSrc":"1896:3:97","nodeType":"YulIdentifier","src":"1896:3:97"},"nativeSrc":"1896:22:97","nodeType":"YulFunctionCall","src":"1896:22:97"},{"name":"dataEnd","nativeSrc":"1920:7:97","nodeType":"YulIdentifier","src":"1920:7:97"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"1870:25:97","nodeType":"YulIdentifier","src":"1870:25:97"},"nativeSrc":"1870:58:97","nodeType":"YulFunctionCall","src":"1870:58:97"},"variables":[{"name":"value1_1","nativeSrc":"1848:8:97","nodeType":"YulTypedName","src":"1848:8:97","type":""},{"name":"value2_1","nativeSrc":"1858:8:97","nodeType":"YulTypedName","src":"1858:8:97","type":""}]},{"nativeSrc":"1937:18:97","nodeType":"YulAssignment","src":"1937:18:97","value":{"name":"value1_1","nativeSrc":"1947:8:97","nodeType":"YulIdentifier","src":"1947:8:97"},"variableNames":[{"name":"value1","nativeSrc":"1937:6:97","nodeType":"YulIdentifier","src":"1937:6:97"}]},{"nativeSrc":"1964:18:97","nodeType":"YulAssignment","src":"1964:18:97","value":{"name":"value2_1","nativeSrc":"1974:8:97","nodeType":"YulIdentifier","src":"1974:8:97"},"variableNames":[{"name":"value2","nativeSrc":"1964:6:97","nodeType":"YulIdentifier","src":"1964:6:97"}]},{"nativeSrc":"1991:45:97","nodeType":"YulVariableDeclaration","src":"1991:45:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2021:9:97","nodeType":"YulIdentifier","src":"2021:9:97"},{"kind":"number","nativeSrc":"2032:2:97","nodeType":"YulLiteral","src":"2032:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2017:3:97","nodeType":"YulIdentifier","src":"2017:3:97"},"nativeSrc":"2017:18:97","nodeType":"YulFunctionCall","src":"2017:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"2004:12:97","nodeType":"YulIdentifier","src":"2004:12:97"},"nativeSrc":"2004:32:97","nodeType":"YulFunctionCall","src":"2004:32:97"},"variables":[{"name":"value","nativeSrc":"1995:5:97","nodeType":"YulTypedName","src":"1995:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2067:5:97","nodeType":"YulIdentifier","src":"2067:5:97"}],"functionName":{"name":"validator_revert_bool","nativeSrc":"2045:21:97","nodeType":"YulIdentifier","src":"2045:21:97"},"nativeSrc":"2045:28:97","nodeType":"YulFunctionCall","src":"2045:28:97"},"nativeSrc":"2045:28:97","nodeType":"YulExpressionStatement","src":"2045:28:97"},{"nativeSrc":"2082:15:97","nodeType":"YulAssignment","src":"2082:15:97","value":{"name":"value","nativeSrc":"2092:5:97","nodeType":"YulIdentifier","src":"2092:5:97"},"variableNames":[{"name":"value3","nativeSrc":"2082:6:97","nodeType":"YulIdentifier","src":"2082:6:97"}]},{"nativeSrc":"2106:48:97","nodeType":"YulVariableDeclaration","src":"2106:48:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2139:9:97","nodeType":"YulIdentifier","src":"2139:9:97"},{"kind":"number","nativeSrc":"2150:2:97","nodeType":"YulLiteral","src":"2150:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2135:3:97","nodeType":"YulIdentifier","src":"2135:3:97"},"nativeSrc":"2135:18:97","nodeType":"YulFunctionCall","src":"2135:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"2122:12:97","nodeType":"YulIdentifier","src":"2122:12:97"},"nativeSrc":"2122:32:97","nodeType":"YulFunctionCall","src":"2122:32:97"},"variables":[{"name":"offset_1","nativeSrc":"2110:8:97","nodeType":"YulTypedName","src":"2110:8:97","type":""}]},{"body":{"nativeSrc":"2183:16:97","nodeType":"YulBlock","src":"2183:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2192:1:97","nodeType":"YulLiteral","src":"2192:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"2195:1:97","nodeType":"YulLiteral","src":"2195:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2185:6:97","nodeType":"YulIdentifier","src":"2185:6:97"},"nativeSrc":"2185:12:97","nodeType":"YulFunctionCall","src":"2185:12:97"},"nativeSrc":"2185:12:97","nodeType":"YulExpressionStatement","src":"2185:12:97"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"2169:8:97","nodeType":"YulIdentifier","src":"2169:8:97"},{"name":"_1","nativeSrc":"2179:2:97","nodeType":"YulIdentifier","src":"2179:2:97"}],"functionName":{"name":"gt","nativeSrc":"2166:2:97","nodeType":"YulIdentifier","src":"2166:2:97"},"nativeSrc":"2166:16:97","nodeType":"YulFunctionCall","src":"2166:16:97"},"nativeSrc":"2163:36:97","nodeType":"YulIf","src":"2163:36:97"},{"nativeSrc":"2208:86:97","nodeType":"YulVariableDeclaration","src":"2208:86:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2264:9:97","nodeType":"YulIdentifier","src":"2264:9:97"},{"name":"offset_1","nativeSrc":"2275:8:97","nodeType":"YulIdentifier","src":"2275:8:97"}],"functionName":{"name":"add","nativeSrc":"2260:3:97","nodeType":"YulIdentifier","src":"2260:3:97"},"nativeSrc":"2260:24:97","nodeType":"YulFunctionCall","src":"2260:24:97"},{"name":"dataEnd","nativeSrc":"2286:7:97","nodeType":"YulIdentifier","src":"2286:7:97"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"2234:25:97","nodeType":"YulIdentifier","src":"2234:25:97"},"nativeSrc":"2234:60:97","nodeType":"YulFunctionCall","src":"2234:60:97"},"variables":[{"name":"value4_1","nativeSrc":"2212:8:97","nodeType":"YulTypedName","src":"2212:8:97","type":""},{"name":"value5_1","nativeSrc":"2222:8:97","nodeType":"YulTypedName","src":"2222:8:97","type":""}]},{"nativeSrc":"2303:18:97","nodeType":"YulAssignment","src":"2303:18:97","value":{"name":"value4_1","nativeSrc":"2313:8:97","nodeType":"YulIdentifier","src":"2313:8:97"},"variableNames":[{"name":"value4","nativeSrc":"2303:6:97","nodeType":"YulIdentifier","src":"2303:6:97"}]},{"nativeSrc":"2330:18:97","nodeType":"YulAssignment","src":"2330:18:97","value":{"name":"value5_1","nativeSrc":"2340:8:97","nodeType":"YulIdentifier","src":"2340:8:97"},"variableNames":[{"name":"value5","nativeSrc":"2330:6:97","nodeType":"YulIdentifier","src":"2330:6:97"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_boolt_bytes_calldata_ptr","nativeSrc":"1435:919:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1516:9:97","nodeType":"YulTypedName","src":"1516:9:97","type":""},{"name":"dataEnd","nativeSrc":"1527:7:97","nodeType":"YulTypedName","src":"1527:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1539:6:97","nodeType":"YulTypedName","src":"1539:6:97","type":""},{"name":"value1","nativeSrc":"1547:6:97","nodeType":"YulTypedName","src":"1547:6:97","type":""},{"name":"value2","nativeSrc":"1555:6:97","nodeType":"YulTypedName","src":"1555:6:97","type":""},{"name":"value3","nativeSrc":"1563:6:97","nodeType":"YulTypedName","src":"1563:6:97","type":""},{"name":"value4","nativeSrc":"1571:6:97","nodeType":"YulTypedName","src":"1571:6:97","type":""},{"name":"value5","nativeSrc":"1579:6:97","nodeType":"YulTypedName","src":"1579:6:97","type":""}],"src":"1435:919:97"},{"body":{"nativeSrc":"2488:119:97","nodeType":"YulBlock","src":"2488:119:97","statements":[{"nativeSrc":"2498:26:97","nodeType":"YulAssignment","src":"2498:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2510:9:97","nodeType":"YulIdentifier","src":"2510:9:97"},{"kind":"number","nativeSrc":"2521:2:97","nodeType":"YulLiteral","src":"2521:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2506:3:97","nodeType":"YulIdentifier","src":"2506:3:97"},"nativeSrc":"2506:18:97","nodeType":"YulFunctionCall","src":"2506:18:97"},"variableNames":[{"name":"tail","nativeSrc":"2498:4:97","nodeType":"YulIdentifier","src":"2498:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2540:9:97","nodeType":"YulIdentifier","src":"2540:9:97"},{"name":"value0","nativeSrc":"2551:6:97","nodeType":"YulIdentifier","src":"2551:6:97"}],"functionName":{"name":"mstore","nativeSrc":"2533:6:97","nodeType":"YulIdentifier","src":"2533:6:97"},"nativeSrc":"2533:25:97","nodeType":"YulFunctionCall","src":"2533:25:97"},"nativeSrc":"2533:25:97","nodeType":"YulExpressionStatement","src":"2533:25:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2578:9:97","nodeType":"YulIdentifier","src":"2578:9:97"},{"kind":"number","nativeSrc":"2589:2:97","nodeType":"YulLiteral","src":"2589:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2574:3:97","nodeType":"YulIdentifier","src":"2574:3:97"},"nativeSrc":"2574:18:97","nodeType":"YulFunctionCall","src":"2574:18:97"},{"name":"value1","nativeSrc":"2594:6:97","nodeType":"YulIdentifier","src":"2594:6:97"}],"functionName":{"name":"mstore","nativeSrc":"2567:6:97","nodeType":"YulIdentifier","src":"2567:6:97"},"nativeSrc":"2567:34:97","nodeType":"YulFunctionCall","src":"2567:34:97"},"nativeSrc":"2567:34:97","nodeType":"YulExpressionStatement","src":"2567:34:97"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"2359:248:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2449:9:97","nodeType":"YulTypedName","src":"2449:9:97","type":""},{"name":"value1","nativeSrc":"2460:6:97","nodeType":"YulTypedName","src":"2460:6:97","type":""},{"name":"value0","nativeSrc":"2468:6:97","nodeType":"YulTypedName","src":"2468:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2479:4:97","nodeType":"YulTypedName","src":"2479:4:97","type":""}],"src":"2359:248:97"},{"body":{"nativeSrc":"2698:166:97","nodeType":"YulBlock","src":"2698:166:97","statements":[{"body":{"nativeSrc":"2744:16:97","nodeType":"YulBlock","src":"2744:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2753:1:97","nodeType":"YulLiteral","src":"2753:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"2756:1:97","nodeType":"YulLiteral","src":"2756:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2746:6:97","nodeType":"YulIdentifier","src":"2746:6:97"},"nativeSrc":"2746:12:97","nodeType":"YulFunctionCall","src":"2746:12:97"},"nativeSrc":"2746:12:97","nodeType":"YulExpressionStatement","src":"2746:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2719:7:97","nodeType":"YulIdentifier","src":"2719:7:97"},{"name":"headStart","nativeSrc":"2728:9:97","nodeType":"YulIdentifier","src":"2728:9:97"}],"functionName":{"name":"sub","nativeSrc":"2715:3:97","nodeType":"YulIdentifier","src":"2715:3:97"},"nativeSrc":"2715:23:97","nodeType":"YulFunctionCall","src":"2715:23:97"},{"kind":"number","nativeSrc":"2740:2:97","nodeType":"YulLiteral","src":"2740:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2711:3:97","nodeType":"YulIdentifier","src":"2711:3:97"},"nativeSrc":"2711:32:97","nodeType":"YulFunctionCall","src":"2711:32:97"},"nativeSrc":"2708:52:97","nodeType":"YulIf","src":"2708:52:97"},{"nativeSrc":"2769:38:97","nodeType":"YulAssignment","src":"2769:38:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2797:9:97","nodeType":"YulIdentifier","src":"2797:9:97"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"2779:17:97","nodeType":"YulIdentifier","src":"2779:17:97"},"nativeSrc":"2779:28:97","nodeType":"YulFunctionCall","src":"2779:28:97"},"variableNames":[{"name":"value0","nativeSrc":"2769:6:97","nodeType":"YulIdentifier","src":"2769:6:97"}]},{"nativeSrc":"2816:42:97","nodeType":"YulAssignment","src":"2816:42:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2843:9:97","nodeType":"YulIdentifier","src":"2843:9:97"},{"kind":"number","nativeSrc":"2854:2:97","nodeType":"YulLiteral","src":"2854:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2839:3:97","nodeType":"YulIdentifier","src":"2839:3:97"},"nativeSrc":"2839:18:97","nodeType":"YulFunctionCall","src":"2839:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"2826:12:97","nodeType":"YulIdentifier","src":"2826:12:97"},"nativeSrc":"2826:32:97","nodeType":"YulFunctionCall","src":"2826:32:97"},"variableNames":[{"name":"value1","nativeSrc":"2816:6:97","nodeType":"YulIdentifier","src":"2816:6:97"}]}]},"name":"abi_decode_tuple_t_uint16t_uint256","nativeSrc":"2612:252:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2656:9:97","nodeType":"YulTypedName","src":"2656:9:97","type":""},{"name":"dataEnd","nativeSrc":"2667:7:97","nodeType":"YulTypedName","src":"2667:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2679:6:97","nodeType":"YulTypedName","src":"2679:6:97","type":""},{"name":"value1","nativeSrc":"2687:6:97","nodeType":"YulTypedName","src":"2687:6:97","type":""}],"src":"2612:252:97"},{"body":{"nativeSrc":"3061:871:97","nodeType":"YulBlock","src":"3061:871:97","statements":[{"body":{"nativeSrc":"3108:16:97","nodeType":"YulBlock","src":"3108:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3117:1:97","nodeType":"YulLiteral","src":"3117:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"3120:1:97","nodeType":"YulLiteral","src":"3120:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3110:6:97","nodeType":"YulIdentifier","src":"3110:6:97"},"nativeSrc":"3110:12:97","nodeType":"YulFunctionCall","src":"3110:12:97"},"nativeSrc":"3110:12:97","nodeType":"YulExpressionStatement","src":"3110:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3082:7:97","nodeType":"YulIdentifier","src":"3082:7:97"},{"name":"headStart","nativeSrc":"3091:9:97","nodeType":"YulIdentifier","src":"3091:9:97"}],"functionName":{"name":"sub","nativeSrc":"3078:3:97","nodeType":"YulIdentifier","src":"3078:3:97"},"nativeSrc":"3078:23:97","nodeType":"YulFunctionCall","src":"3078:23:97"},{"kind":"number","nativeSrc":"3103:3:97","nodeType":"YulLiteral","src":"3103:3:97","type":"","value":"192"}],"functionName":{"name":"slt","nativeSrc":"3074:3:97","nodeType":"YulIdentifier","src":"3074:3:97"},"nativeSrc":"3074:33:97","nodeType":"YulFunctionCall","src":"3074:33:97"},"nativeSrc":"3071:53:97","nodeType":"YulIf","src":"3071:53:97"},{"nativeSrc":"3133:36:97","nodeType":"YulVariableDeclaration","src":"3133:36:97","value":{"arguments":[{"name":"headStart","nativeSrc":"3159:9:97","nodeType":"YulIdentifier","src":"3159:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"3146:12:97","nodeType":"YulIdentifier","src":"3146:12:97"},"nativeSrc":"3146:23:97","nodeType":"YulFunctionCall","src":"3146:23:97"},"variables":[{"name":"value","nativeSrc":"3137:5:97","nodeType":"YulTypedName","src":"3137:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3203:5:97","nodeType":"YulIdentifier","src":"3203:5:97"}],"functionName":{"name":"validator_revert_address","nativeSrc":"3178:24:97","nodeType":"YulIdentifier","src":"3178:24:97"},"nativeSrc":"3178:31:97","nodeType":"YulFunctionCall","src":"3178:31:97"},"nativeSrc":"3178:31:97","nodeType":"YulExpressionStatement","src":"3178:31:97"},{"nativeSrc":"3218:15:97","nodeType":"YulAssignment","src":"3218:15:97","value":{"name":"value","nativeSrc":"3228:5:97","nodeType":"YulIdentifier","src":"3228:5:97"},"variableNames":[{"name":"value0","nativeSrc":"3218:6:97","nodeType":"YulIdentifier","src":"3218:6:97"}]},{"nativeSrc":"3242:42:97","nodeType":"YulAssignment","src":"3242:42:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3269:9:97","nodeType":"YulIdentifier","src":"3269:9:97"},{"kind":"number","nativeSrc":"3280:2:97","nodeType":"YulLiteral","src":"3280:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3265:3:97","nodeType":"YulIdentifier","src":"3265:3:97"},"nativeSrc":"3265:18:97","nodeType":"YulFunctionCall","src":"3265:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"3252:12:97","nodeType":"YulIdentifier","src":"3252:12:97"},"nativeSrc":"3252:32:97","nodeType":"YulFunctionCall","src":"3252:32:97"},"variableNames":[{"name":"value1","nativeSrc":"3242:6:97","nodeType":"YulIdentifier","src":"3242:6:97"}]},{"nativeSrc":"3293:47:97","nodeType":"YulAssignment","src":"3293:47:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3325:9:97","nodeType":"YulIdentifier","src":"3325:9:97"},{"kind":"number","nativeSrc":"3336:2:97","nodeType":"YulLiteral","src":"3336:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3321:3:97","nodeType":"YulIdentifier","src":"3321:3:97"},"nativeSrc":"3321:18:97","nodeType":"YulFunctionCall","src":"3321:18:97"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"3303:17:97","nodeType":"YulIdentifier","src":"3303:17:97"},"nativeSrc":"3303:37:97","nodeType":"YulFunctionCall","src":"3303:37:97"},"variableNames":[{"name":"value2","nativeSrc":"3293:6:97","nodeType":"YulIdentifier","src":"3293:6:97"}]},{"nativeSrc":"3349:46:97","nodeType":"YulVariableDeclaration","src":"3349:46:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3380:9:97","nodeType":"YulIdentifier","src":"3380:9:97"},{"kind":"number","nativeSrc":"3391:2:97","nodeType":"YulLiteral","src":"3391:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3376:3:97","nodeType":"YulIdentifier","src":"3376:3:97"},"nativeSrc":"3376:18:97","nodeType":"YulFunctionCall","src":"3376:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"3363:12:97","nodeType":"YulIdentifier","src":"3363:12:97"},"nativeSrc":"3363:32:97","nodeType":"YulFunctionCall","src":"3363:32:97"},"variables":[{"name":"offset","nativeSrc":"3353:6:97","nodeType":"YulTypedName","src":"3353:6:97","type":""}]},{"nativeSrc":"3404:28:97","nodeType":"YulVariableDeclaration","src":"3404:28:97","value":{"kind":"number","nativeSrc":"3414:18:97","nodeType":"YulLiteral","src":"3414:18:97","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"3408:2:97","nodeType":"YulTypedName","src":"3408:2:97","type":""}]},{"body":{"nativeSrc":"3459:16:97","nodeType":"YulBlock","src":"3459:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3468:1:97","nodeType":"YulLiteral","src":"3468:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"3471:1:97","nodeType":"YulLiteral","src":"3471:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3461:6:97","nodeType":"YulIdentifier","src":"3461:6:97"},"nativeSrc":"3461:12:97","nodeType":"YulFunctionCall","src":"3461:12:97"},"nativeSrc":"3461:12:97","nodeType":"YulExpressionStatement","src":"3461:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3447:6:97","nodeType":"YulIdentifier","src":"3447:6:97"},{"name":"_1","nativeSrc":"3455:2:97","nodeType":"YulIdentifier","src":"3455:2:97"}],"functionName":{"name":"gt","nativeSrc":"3444:2:97","nodeType":"YulIdentifier","src":"3444:2:97"},"nativeSrc":"3444:14:97","nodeType":"YulFunctionCall","src":"3444:14:97"},"nativeSrc":"3441:34:97","nodeType":"YulIf","src":"3441:34:97"},{"nativeSrc":"3484:84:97","nodeType":"YulVariableDeclaration","src":"3484:84:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3540:9:97","nodeType":"YulIdentifier","src":"3540:9:97"},{"name":"offset","nativeSrc":"3551:6:97","nodeType":"YulIdentifier","src":"3551:6:97"}],"functionName":{"name":"add","nativeSrc":"3536:3:97","nodeType":"YulIdentifier","src":"3536:3:97"},"nativeSrc":"3536:22:97","nodeType":"YulFunctionCall","src":"3536:22:97"},{"name":"dataEnd","nativeSrc":"3560:7:97","nodeType":"YulIdentifier","src":"3560:7:97"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"3510:25:97","nodeType":"YulIdentifier","src":"3510:25:97"},"nativeSrc":"3510:58:97","nodeType":"YulFunctionCall","src":"3510:58:97"},"variables":[{"name":"value3_1","nativeSrc":"3488:8:97","nodeType":"YulTypedName","src":"3488:8:97","type":""},{"name":"value4_1","nativeSrc":"3498:8:97","nodeType":"YulTypedName","src":"3498:8:97","type":""}]},{"nativeSrc":"3577:18:97","nodeType":"YulAssignment","src":"3577:18:97","value":{"name":"value3_1","nativeSrc":"3587:8:97","nodeType":"YulIdentifier","src":"3587:8:97"},"variableNames":[{"name":"value3","nativeSrc":"3577:6:97","nodeType":"YulIdentifier","src":"3577:6:97"}]},{"nativeSrc":"3604:18:97","nodeType":"YulAssignment","src":"3604:18:97","value":{"name":"value4_1","nativeSrc":"3614:8:97","nodeType":"YulIdentifier","src":"3614:8:97"},"variableNames":[{"name":"value4","nativeSrc":"3604:6:97","nodeType":"YulIdentifier","src":"3604:6:97"}]},{"nativeSrc":"3631:49:97","nodeType":"YulVariableDeclaration","src":"3631:49:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3664:9:97","nodeType":"YulIdentifier","src":"3664:9:97"},{"kind":"number","nativeSrc":"3675:3:97","nodeType":"YulLiteral","src":"3675:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"3660:3:97","nodeType":"YulIdentifier","src":"3660:3:97"},"nativeSrc":"3660:19:97","nodeType":"YulFunctionCall","src":"3660:19:97"}],"functionName":{"name":"calldataload","nativeSrc":"3647:12:97","nodeType":"YulIdentifier","src":"3647:12:97"},"nativeSrc":"3647:33:97","nodeType":"YulFunctionCall","src":"3647:33:97"},"variables":[{"name":"offset_1","nativeSrc":"3635:8:97","nodeType":"YulTypedName","src":"3635:8:97","type":""}]},{"body":{"nativeSrc":"3709:16:97","nodeType":"YulBlock","src":"3709:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3718:1:97","nodeType":"YulLiteral","src":"3718:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"3721:1:97","nodeType":"YulLiteral","src":"3721:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3711:6:97","nodeType":"YulIdentifier","src":"3711:6:97"},"nativeSrc":"3711:12:97","nodeType":"YulFunctionCall","src":"3711:12:97"},"nativeSrc":"3711:12:97","nodeType":"YulExpressionStatement","src":"3711:12:97"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"3695:8:97","nodeType":"YulIdentifier","src":"3695:8:97"},{"name":"_1","nativeSrc":"3705:2:97","nodeType":"YulIdentifier","src":"3705:2:97"}],"functionName":{"name":"gt","nativeSrc":"3692:2:97","nodeType":"YulIdentifier","src":"3692:2:97"},"nativeSrc":"3692:16:97","nodeType":"YulFunctionCall","src":"3692:16:97"},"nativeSrc":"3689:36:97","nodeType":"YulIf","src":"3689:36:97"},{"nativeSrc":"3734:86:97","nodeType":"YulVariableDeclaration","src":"3734:86:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3790:9:97","nodeType":"YulIdentifier","src":"3790:9:97"},{"name":"offset_1","nativeSrc":"3801:8:97","nodeType":"YulIdentifier","src":"3801:8:97"}],"functionName":{"name":"add","nativeSrc":"3786:3:97","nodeType":"YulIdentifier","src":"3786:3:97"},"nativeSrc":"3786:24:97","nodeType":"YulFunctionCall","src":"3786:24:97"},{"name":"dataEnd","nativeSrc":"3812:7:97","nodeType":"YulIdentifier","src":"3812:7:97"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"3760:25:97","nodeType":"YulIdentifier","src":"3760:25:97"},"nativeSrc":"3760:60:97","nodeType":"YulFunctionCall","src":"3760:60:97"},"variables":[{"name":"value5_1","nativeSrc":"3738:8:97","nodeType":"YulTypedName","src":"3738:8:97","type":""},{"name":"value6_1","nativeSrc":"3748:8:97","nodeType":"YulTypedName","src":"3748:8:97","type":""}]},{"nativeSrc":"3829:18:97","nodeType":"YulAssignment","src":"3829:18:97","value":{"name":"value5_1","nativeSrc":"3839:8:97","nodeType":"YulIdentifier","src":"3839:8:97"},"variableNames":[{"name":"value5","nativeSrc":"3829:6:97","nodeType":"YulIdentifier","src":"3829:6:97"}]},{"nativeSrc":"3856:18:97","nodeType":"YulAssignment","src":"3856:18:97","value":{"name":"value6_1","nativeSrc":"3866:8:97","nodeType":"YulIdentifier","src":"3866:8:97"},"variableNames":[{"name":"value6","nativeSrc":"3856:6:97","nodeType":"YulIdentifier","src":"3856:6:97"}]},{"nativeSrc":"3883:43:97","nodeType":"YulAssignment","src":"3883:43:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3910:9:97","nodeType":"YulIdentifier","src":"3910:9:97"},{"kind":"number","nativeSrc":"3921:3:97","nodeType":"YulLiteral","src":"3921:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"3906:3:97","nodeType":"YulIdentifier","src":"3906:3:97"},"nativeSrc":"3906:19:97","nodeType":"YulFunctionCall","src":"3906:19:97"}],"functionName":{"name":"calldataload","nativeSrc":"3893:12:97","nodeType":"YulIdentifier","src":"3893:12:97"},"nativeSrc":"3893:33:97","nodeType":"YulFunctionCall","src":"3893:33:97"},"variableNames":[{"name":"value7","nativeSrc":"3883:6:97","nodeType":"YulIdentifier","src":"3883:6:97"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_uint16t_bytes_calldata_ptrt_bytes_calldata_ptrt_uint256","nativeSrc":"2869:1063:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2971:9:97","nodeType":"YulTypedName","src":"2971:9:97","type":""},{"name":"dataEnd","nativeSrc":"2982:7:97","nodeType":"YulTypedName","src":"2982:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2994:6:97","nodeType":"YulTypedName","src":"2994:6:97","type":""},{"name":"value1","nativeSrc":"3002:6:97","nodeType":"YulTypedName","src":"3002:6:97","type":""},{"name":"value2","nativeSrc":"3010:6:97","nodeType":"YulTypedName","src":"3010:6:97","type":""},{"name":"value3","nativeSrc":"3018:6:97","nodeType":"YulTypedName","src":"3018:6:97","type":""},{"name":"value4","nativeSrc":"3026:6:97","nodeType":"YulTypedName","src":"3026:6:97","type":""},{"name":"value5","nativeSrc":"3034:6:97","nodeType":"YulTypedName","src":"3034:6:97","type":""},{"name":"value6","nativeSrc":"3042:6:97","nodeType":"YulTypedName","src":"3042:6:97","type":""},{"name":"value7","nativeSrc":"3050:6:97","nodeType":"YulTypedName","src":"3050:6:97","type":""}],"src":"2869:1063:97"},{"body":{"nativeSrc":"4095:767:97","nodeType":"YulBlock","src":"4095:767:97","statements":[{"body":{"nativeSrc":"4142:16:97","nodeType":"YulBlock","src":"4142:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4151:1:97","nodeType":"YulLiteral","src":"4151:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"4154:1:97","nodeType":"YulLiteral","src":"4154:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4144:6:97","nodeType":"YulIdentifier","src":"4144:6:97"},"nativeSrc":"4144:12:97","nodeType":"YulFunctionCall","src":"4144:12:97"},"nativeSrc":"4144:12:97","nodeType":"YulExpressionStatement","src":"4144:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4116:7:97","nodeType":"YulIdentifier","src":"4116:7:97"},{"name":"headStart","nativeSrc":"4125:9:97","nodeType":"YulIdentifier","src":"4125:9:97"}],"functionName":{"name":"sub","nativeSrc":"4112:3:97","nodeType":"YulIdentifier","src":"4112:3:97"},"nativeSrc":"4112:23:97","nodeType":"YulFunctionCall","src":"4112:23:97"},{"kind":"number","nativeSrc":"4137:3:97","nodeType":"YulLiteral","src":"4137:3:97","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"4108:3:97","nodeType":"YulIdentifier","src":"4108:3:97"},"nativeSrc":"4108:33:97","nodeType":"YulFunctionCall","src":"4108:33:97"},"nativeSrc":"4105:53:97","nodeType":"YulIf","src":"4105:53:97"},{"nativeSrc":"4167:38:97","nodeType":"YulAssignment","src":"4167:38:97","value":{"arguments":[{"name":"headStart","nativeSrc":"4195:9:97","nodeType":"YulIdentifier","src":"4195:9:97"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"4177:17:97","nodeType":"YulIdentifier","src":"4177:17:97"},"nativeSrc":"4177:28:97","nodeType":"YulFunctionCall","src":"4177:28:97"},"variableNames":[{"name":"value0","nativeSrc":"4167:6:97","nodeType":"YulIdentifier","src":"4167:6:97"}]},{"nativeSrc":"4214:46:97","nodeType":"YulVariableDeclaration","src":"4214:46:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4245:9:97","nodeType":"YulIdentifier","src":"4245:9:97"},{"kind":"number","nativeSrc":"4256:2:97","nodeType":"YulLiteral","src":"4256:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4241:3:97","nodeType":"YulIdentifier","src":"4241:3:97"},"nativeSrc":"4241:18:97","nodeType":"YulFunctionCall","src":"4241:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"4228:12:97","nodeType":"YulIdentifier","src":"4228:12:97"},"nativeSrc":"4228:32:97","nodeType":"YulFunctionCall","src":"4228:32:97"},"variables":[{"name":"offset","nativeSrc":"4218:6:97","nodeType":"YulTypedName","src":"4218:6:97","type":""}]},{"nativeSrc":"4269:28:97","nodeType":"YulVariableDeclaration","src":"4269:28:97","value":{"kind":"number","nativeSrc":"4279:18:97","nodeType":"YulLiteral","src":"4279:18:97","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"4273:2:97","nodeType":"YulTypedName","src":"4273:2:97","type":""}]},{"body":{"nativeSrc":"4324:16:97","nodeType":"YulBlock","src":"4324:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4333:1:97","nodeType":"YulLiteral","src":"4333:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"4336:1:97","nodeType":"YulLiteral","src":"4336:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4326:6:97","nodeType":"YulIdentifier","src":"4326:6:97"},"nativeSrc":"4326:12:97","nodeType":"YulFunctionCall","src":"4326:12:97"},"nativeSrc":"4326:12:97","nodeType":"YulExpressionStatement","src":"4326:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4312:6:97","nodeType":"YulIdentifier","src":"4312:6:97"},{"name":"_1","nativeSrc":"4320:2:97","nodeType":"YulIdentifier","src":"4320:2:97"}],"functionName":{"name":"gt","nativeSrc":"4309:2:97","nodeType":"YulIdentifier","src":"4309:2:97"},"nativeSrc":"4309:14:97","nodeType":"YulFunctionCall","src":"4309:14:97"},"nativeSrc":"4306:34:97","nodeType":"YulIf","src":"4306:34:97"},{"nativeSrc":"4349:84:97","nodeType":"YulVariableDeclaration","src":"4349:84:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4405:9:97","nodeType":"YulIdentifier","src":"4405:9:97"},{"name":"offset","nativeSrc":"4416:6:97","nodeType":"YulIdentifier","src":"4416:6:97"}],"functionName":{"name":"add","nativeSrc":"4401:3:97","nodeType":"YulIdentifier","src":"4401:3:97"},"nativeSrc":"4401:22:97","nodeType":"YulFunctionCall","src":"4401:22:97"},{"name":"dataEnd","nativeSrc":"4425:7:97","nodeType":"YulIdentifier","src":"4425:7:97"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"4375:25:97","nodeType":"YulIdentifier","src":"4375:25:97"},"nativeSrc":"4375:58:97","nodeType":"YulFunctionCall","src":"4375:58:97"},"variables":[{"name":"value1_1","nativeSrc":"4353:8:97","nodeType":"YulTypedName","src":"4353:8:97","type":""},{"name":"value2_1","nativeSrc":"4363:8:97","nodeType":"YulTypedName","src":"4363:8:97","type":""}]},{"nativeSrc":"4442:18:97","nodeType":"YulAssignment","src":"4442:18:97","value":{"name":"value1_1","nativeSrc":"4452:8:97","nodeType":"YulIdentifier","src":"4452:8:97"},"variableNames":[{"name":"value1","nativeSrc":"4442:6:97","nodeType":"YulIdentifier","src":"4442:6:97"}]},{"nativeSrc":"4469:18:97","nodeType":"YulAssignment","src":"4469:18:97","value":{"name":"value2_1","nativeSrc":"4479:8:97","nodeType":"YulIdentifier","src":"4479:8:97"},"variableNames":[{"name":"value2","nativeSrc":"4469:6:97","nodeType":"YulIdentifier","src":"4469:6:97"}]},{"nativeSrc":"4496:48:97","nodeType":"YulVariableDeclaration","src":"4496:48:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4529:9:97","nodeType":"YulIdentifier","src":"4529:9:97"},{"kind":"number","nativeSrc":"4540:2:97","nodeType":"YulLiteral","src":"4540:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4525:3:97","nodeType":"YulIdentifier","src":"4525:3:97"},"nativeSrc":"4525:18:97","nodeType":"YulFunctionCall","src":"4525:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"4512:12:97","nodeType":"YulIdentifier","src":"4512:12:97"},"nativeSrc":"4512:32:97","nodeType":"YulFunctionCall","src":"4512:32:97"},"variables":[{"name":"offset_1","nativeSrc":"4500:8:97","nodeType":"YulTypedName","src":"4500:8:97","type":""}]},{"body":{"nativeSrc":"4573:16:97","nodeType":"YulBlock","src":"4573:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4582:1:97","nodeType":"YulLiteral","src":"4582:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"4585:1:97","nodeType":"YulLiteral","src":"4585:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4575:6:97","nodeType":"YulIdentifier","src":"4575:6:97"},"nativeSrc":"4575:12:97","nodeType":"YulFunctionCall","src":"4575:12:97"},"nativeSrc":"4575:12:97","nodeType":"YulExpressionStatement","src":"4575:12:97"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"4559:8:97","nodeType":"YulIdentifier","src":"4559:8:97"},{"name":"_1","nativeSrc":"4569:2:97","nodeType":"YulIdentifier","src":"4569:2:97"}],"functionName":{"name":"gt","nativeSrc":"4556:2:97","nodeType":"YulIdentifier","src":"4556:2:97"},"nativeSrc":"4556:16:97","nodeType":"YulFunctionCall","src":"4556:16:97"},"nativeSrc":"4553:36:97","nodeType":"YulIf","src":"4553:36:97"},{"nativeSrc":"4598:86:97","nodeType":"YulVariableDeclaration","src":"4598:86:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4654:9:97","nodeType":"YulIdentifier","src":"4654:9:97"},{"name":"offset_1","nativeSrc":"4665:8:97","nodeType":"YulIdentifier","src":"4665:8:97"}],"functionName":{"name":"add","nativeSrc":"4650:3:97","nodeType":"YulIdentifier","src":"4650:3:97"},"nativeSrc":"4650:24:97","nodeType":"YulFunctionCall","src":"4650:24:97"},{"name":"dataEnd","nativeSrc":"4676:7:97","nodeType":"YulIdentifier","src":"4676:7:97"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"4624:25:97","nodeType":"YulIdentifier","src":"4624:25:97"},"nativeSrc":"4624:60:97","nodeType":"YulFunctionCall","src":"4624:60:97"},"variables":[{"name":"value3_1","nativeSrc":"4602:8:97","nodeType":"YulTypedName","src":"4602:8:97","type":""},{"name":"value4_1","nativeSrc":"4612:8:97","nodeType":"YulTypedName","src":"4612:8:97","type":""}]},{"nativeSrc":"4693:18:97","nodeType":"YulAssignment","src":"4693:18:97","value":{"name":"value3_1","nativeSrc":"4703:8:97","nodeType":"YulIdentifier","src":"4703:8:97"},"variableNames":[{"name":"value3","nativeSrc":"4693:6:97","nodeType":"YulIdentifier","src":"4693:6:97"}]},{"nativeSrc":"4720:18:97","nodeType":"YulAssignment","src":"4720:18:97","value":{"name":"value4_1","nativeSrc":"4730:8:97","nodeType":"YulIdentifier","src":"4730:8:97"},"variableNames":[{"name":"value4","nativeSrc":"4720:6:97","nodeType":"YulIdentifier","src":"4720:6:97"}]},{"nativeSrc":"4747:45:97","nodeType":"YulVariableDeclaration","src":"4747:45:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4777:9:97","nodeType":"YulIdentifier","src":"4777:9:97"},{"kind":"number","nativeSrc":"4788:2:97","nodeType":"YulLiteral","src":"4788:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4773:3:97","nodeType":"YulIdentifier","src":"4773:3:97"},"nativeSrc":"4773:18:97","nodeType":"YulFunctionCall","src":"4773:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"4760:12:97","nodeType":"YulIdentifier","src":"4760:12:97"},"nativeSrc":"4760:32:97","nodeType":"YulFunctionCall","src":"4760:32:97"},"variables":[{"name":"value","nativeSrc":"4751:5:97","nodeType":"YulTypedName","src":"4751:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"4826:5:97","nodeType":"YulIdentifier","src":"4826:5:97"}],"functionName":{"name":"validator_revert_address","nativeSrc":"4801:24:97","nodeType":"YulIdentifier","src":"4801:24:97"},"nativeSrc":"4801:31:97","nodeType":"YulFunctionCall","src":"4801:31:97"},"nativeSrc":"4801:31:97","nodeType":"YulExpressionStatement","src":"4801:31:97"},{"nativeSrc":"4841:15:97","nodeType":"YulAssignment","src":"4841:15:97","value":{"name":"value","nativeSrc":"4851:5:97","nodeType":"YulIdentifier","src":"4851:5:97"},"variableNames":[{"name":"value5","nativeSrc":"4841:6:97","nodeType":"YulIdentifier","src":"4841:6:97"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_bytes_calldata_ptrt_address","nativeSrc":"3937:925:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4021:9:97","nodeType":"YulTypedName","src":"4021:9:97","type":""},{"name":"dataEnd","nativeSrc":"4032:7:97","nodeType":"YulTypedName","src":"4032:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4044:6:97","nodeType":"YulTypedName","src":"4044:6:97","type":""},{"name":"value1","nativeSrc":"4052:6:97","nodeType":"YulTypedName","src":"4052:6:97","type":""},{"name":"value2","nativeSrc":"4060:6:97","nodeType":"YulTypedName","src":"4060:6:97","type":""},{"name":"value3","nativeSrc":"4068:6:97","nodeType":"YulTypedName","src":"4068:6:97","type":""},{"name":"value4","nativeSrc":"4076:6:97","nodeType":"YulTypedName","src":"4076:6:97","type":""},{"name":"value5","nativeSrc":"4084:6:97","nodeType":"YulTypedName","src":"4084:6:97","type":""}],"src":"3937:925:97"},{"body":{"nativeSrc":"4962:92:97","nodeType":"YulBlock","src":"4962:92:97","statements":[{"nativeSrc":"4972:26:97","nodeType":"YulAssignment","src":"4972:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"4984:9:97","nodeType":"YulIdentifier","src":"4984:9:97"},{"kind":"number","nativeSrc":"4995:2:97","nodeType":"YulLiteral","src":"4995:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4980:3:97","nodeType":"YulIdentifier","src":"4980:3:97"},"nativeSrc":"4980:18:97","nodeType":"YulFunctionCall","src":"4980:18:97"},"variableNames":[{"name":"tail","nativeSrc":"4972:4:97","nodeType":"YulIdentifier","src":"4972:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5014:9:97","nodeType":"YulIdentifier","src":"5014:9:97"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"5039:6:97","nodeType":"YulIdentifier","src":"5039:6:97"}],"functionName":{"name":"iszero","nativeSrc":"5032:6:97","nodeType":"YulIdentifier","src":"5032:6:97"},"nativeSrc":"5032:14:97","nodeType":"YulFunctionCall","src":"5032:14:97"}],"functionName":{"name":"iszero","nativeSrc":"5025:6:97","nodeType":"YulIdentifier","src":"5025:6:97"},"nativeSrc":"5025:22:97","nodeType":"YulFunctionCall","src":"5025:22:97"}],"functionName":{"name":"mstore","nativeSrc":"5007:6:97","nodeType":"YulIdentifier","src":"5007:6:97"},"nativeSrc":"5007:41:97","nodeType":"YulFunctionCall","src":"5007:41:97"},"nativeSrc":"5007:41:97","nodeType":"YulExpressionStatement","src":"5007:41:97"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"4867:187:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4931:9:97","nodeType":"YulTypedName","src":"4931:9:97","type":""},{"name":"value0","nativeSrc":"4942:6:97","nodeType":"YulTypedName","src":"4942:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4953:4:97","nodeType":"YulTypedName","src":"4953:4:97","type":""}],"src":"4867:187:97"},{"body":{"nativeSrc":"5161:222:97","nodeType":"YulBlock","src":"5161:222:97","statements":[{"body":{"nativeSrc":"5207:16:97","nodeType":"YulBlock","src":"5207:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5216:1:97","nodeType":"YulLiteral","src":"5216:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"5219:1:97","nodeType":"YulLiteral","src":"5219:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5209:6:97","nodeType":"YulIdentifier","src":"5209:6:97"},"nativeSrc":"5209:12:97","nodeType":"YulFunctionCall","src":"5209:12:97"},"nativeSrc":"5209:12:97","nodeType":"YulExpressionStatement","src":"5209:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5182:7:97","nodeType":"YulIdentifier","src":"5182:7:97"},{"name":"headStart","nativeSrc":"5191:9:97","nodeType":"YulIdentifier","src":"5191:9:97"}],"functionName":{"name":"sub","nativeSrc":"5178:3:97","nodeType":"YulIdentifier","src":"5178:3:97"},"nativeSrc":"5178:23:97","nodeType":"YulFunctionCall","src":"5178:23:97"},{"kind":"number","nativeSrc":"5203:2:97","nodeType":"YulLiteral","src":"5203:2:97","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"5174:3:97","nodeType":"YulIdentifier","src":"5174:3:97"},"nativeSrc":"5174:32:97","nodeType":"YulFunctionCall","src":"5174:32:97"},"nativeSrc":"5171:52:97","nodeType":"YulIf","src":"5171:52:97"},{"nativeSrc":"5232:38:97","nodeType":"YulAssignment","src":"5232:38:97","value":{"arguments":[{"name":"headStart","nativeSrc":"5260:9:97","nodeType":"YulIdentifier","src":"5260:9:97"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"5242:17:97","nodeType":"YulIdentifier","src":"5242:17:97"},"nativeSrc":"5242:28:97","nodeType":"YulFunctionCall","src":"5242:28:97"},"variableNames":[{"name":"value0","nativeSrc":"5232:6:97","nodeType":"YulIdentifier","src":"5232:6:97"}]},{"nativeSrc":"5279:47:97","nodeType":"YulAssignment","src":"5279:47:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5311:9:97","nodeType":"YulIdentifier","src":"5311:9:97"},{"kind":"number","nativeSrc":"5322:2:97","nodeType":"YulLiteral","src":"5322:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5307:3:97","nodeType":"YulIdentifier","src":"5307:3:97"},"nativeSrc":"5307:18:97","nodeType":"YulFunctionCall","src":"5307:18:97"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"5289:17:97","nodeType":"YulIdentifier","src":"5289:17:97"},"nativeSrc":"5289:37:97","nodeType":"YulFunctionCall","src":"5289:37:97"},"variableNames":[{"name":"value1","nativeSrc":"5279:6:97","nodeType":"YulIdentifier","src":"5279:6:97"}]},{"nativeSrc":"5335:42:97","nodeType":"YulAssignment","src":"5335:42:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5362:9:97","nodeType":"YulIdentifier","src":"5362:9:97"},{"kind":"number","nativeSrc":"5373:2:97","nodeType":"YulLiteral","src":"5373:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5358:3:97","nodeType":"YulIdentifier","src":"5358:3:97"},"nativeSrc":"5358:18:97","nodeType":"YulFunctionCall","src":"5358:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"5345:12:97","nodeType":"YulIdentifier","src":"5345:12:97"},"nativeSrc":"5345:32:97","nodeType":"YulFunctionCall","src":"5345:32:97"},"variableNames":[{"name":"value2","nativeSrc":"5335:6:97","nodeType":"YulIdentifier","src":"5335:6:97"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_uint256","nativeSrc":"5059:324:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5111:9:97","nodeType":"YulTypedName","src":"5111:9:97","type":""},{"name":"dataEnd","nativeSrc":"5122:7:97","nodeType":"YulTypedName","src":"5122:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5134:6:97","nodeType":"YulTypedName","src":"5134:6:97","type":""},{"name":"value1","nativeSrc":"5142:6:97","nodeType":"YulTypedName","src":"5142:6:97","type":""},{"name":"value2","nativeSrc":"5150:6:97","nodeType":"YulTypedName","src":"5150:6:97","type":""}],"src":"5059:324:97"},{"body":{"nativeSrc":"5454:184:97","nodeType":"YulBlock","src":"5454:184:97","statements":[{"nativeSrc":"5464:10:97","nodeType":"YulVariableDeclaration","src":"5464:10:97","value":{"kind":"number","nativeSrc":"5473:1:97","nodeType":"YulLiteral","src":"5473:1:97","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"5468:1:97","nodeType":"YulTypedName","src":"5468:1:97","type":""}]},{"body":{"nativeSrc":"5533:63:97","nodeType":"YulBlock","src":"5533:63:97","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"5558:3:97","nodeType":"YulIdentifier","src":"5558:3:97"},{"name":"i","nativeSrc":"5563:1:97","nodeType":"YulIdentifier","src":"5563:1:97"}],"functionName":{"name":"add","nativeSrc":"5554:3:97","nodeType":"YulIdentifier","src":"5554:3:97"},"nativeSrc":"5554:11:97","nodeType":"YulFunctionCall","src":"5554:11:97"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"5577:3:97","nodeType":"YulIdentifier","src":"5577:3:97"},{"name":"i","nativeSrc":"5582:1:97","nodeType":"YulIdentifier","src":"5582:1:97"}],"functionName":{"name":"add","nativeSrc":"5573:3:97","nodeType":"YulIdentifier","src":"5573:3:97"},"nativeSrc":"5573:11:97","nodeType":"YulFunctionCall","src":"5573:11:97"}],"functionName":{"name":"mload","nativeSrc":"5567:5:97","nodeType":"YulIdentifier","src":"5567:5:97"},"nativeSrc":"5567:18:97","nodeType":"YulFunctionCall","src":"5567:18:97"}],"functionName":{"name":"mstore","nativeSrc":"5547:6:97","nodeType":"YulIdentifier","src":"5547:6:97"},"nativeSrc":"5547:39:97","nodeType":"YulFunctionCall","src":"5547:39:97"},"nativeSrc":"5547:39:97","nodeType":"YulExpressionStatement","src":"5547:39:97"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"5494:1:97","nodeType":"YulIdentifier","src":"5494:1:97"},{"name":"length","nativeSrc":"5497:6:97","nodeType":"YulIdentifier","src":"5497:6:97"}],"functionName":{"name":"lt","nativeSrc":"5491:2:97","nodeType":"YulIdentifier","src":"5491:2:97"},"nativeSrc":"5491:13:97","nodeType":"YulFunctionCall","src":"5491:13:97"},"nativeSrc":"5483:113:97","nodeType":"YulForLoop","post":{"nativeSrc":"5505:19:97","nodeType":"YulBlock","src":"5505:19:97","statements":[{"nativeSrc":"5507:15:97","nodeType":"YulAssignment","src":"5507:15:97","value":{"arguments":[{"name":"i","nativeSrc":"5516:1:97","nodeType":"YulIdentifier","src":"5516:1:97"},{"kind":"number","nativeSrc":"5519:2:97","nodeType":"YulLiteral","src":"5519:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5512:3:97","nodeType":"YulIdentifier","src":"5512:3:97"},"nativeSrc":"5512:10:97","nodeType":"YulFunctionCall","src":"5512:10:97"},"variableNames":[{"name":"i","nativeSrc":"5507:1:97","nodeType":"YulIdentifier","src":"5507:1:97"}]}]},"pre":{"nativeSrc":"5487:3:97","nodeType":"YulBlock","src":"5487:3:97","statements":[]},"src":"5483:113:97"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"5616:3:97","nodeType":"YulIdentifier","src":"5616:3:97"},{"name":"length","nativeSrc":"5621:6:97","nodeType":"YulIdentifier","src":"5621:6:97"}],"functionName":{"name":"add","nativeSrc":"5612:3:97","nodeType":"YulIdentifier","src":"5612:3:97"},"nativeSrc":"5612:16:97","nodeType":"YulFunctionCall","src":"5612:16:97"},{"kind":"number","nativeSrc":"5630:1:97","nodeType":"YulLiteral","src":"5630:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"5605:6:97","nodeType":"YulIdentifier","src":"5605:6:97"},"nativeSrc":"5605:27:97","nodeType":"YulFunctionCall","src":"5605:27:97"},"nativeSrc":"5605:27:97","nodeType":"YulExpressionStatement","src":"5605:27:97"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"5388:250:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"5432:3:97","nodeType":"YulTypedName","src":"5432:3:97","type":""},{"name":"dst","nativeSrc":"5437:3:97","nodeType":"YulTypedName","src":"5437:3:97","type":""},{"name":"length","nativeSrc":"5442:6:97","nodeType":"YulTypedName","src":"5442:6:97","type":""}],"src":"5388:250:97"},{"body":{"nativeSrc":"5692:280:97","nodeType":"YulBlock","src":"5692:280:97","statements":[{"nativeSrc":"5702:26:97","nodeType":"YulVariableDeclaration","src":"5702:26:97","value":{"arguments":[{"name":"value","nativeSrc":"5722:5:97","nodeType":"YulIdentifier","src":"5722:5:97"}],"functionName":{"name":"mload","nativeSrc":"5716:5:97","nodeType":"YulIdentifier","src":"5716:5:97"},"nativeSrc":"5716:12:97","nodeType":"YulFunctionCall","src":"5716:12:97"},"variables":[{"name":"length","nativeSrc":"5706:6:97","nodeType":"YulTypedName","src":"5706:6:97","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"5744:3:97","nodeType":"YulIdentifier","src":"5744:3:97"},{"name":"length","nativeSrc":"5749:6:97","nodeType":"YulIdentifier","src":"5749:6:97"}],"functionName":{"name":"mstore","nativeSrc":"5737:6:97","nodeType":"YulIdentifier","src":"5737:6:97"},"nativeSrc":"5737:19:97","nodeType":"YulFunctionCall","src":"5737:19:97"},"nativeSrc":"5737:19:97","nodeType":"YulExpressionStatement","src":"5737:19:97"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5804:5:97","nodeType":"YulIdentifier","src":"5804:5:97"},{"kind":"number","nativeSrc":"5811:4:97","nodeType":"YulLiteral","src":"5811:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5800:3:97","nodeType":"YulIdentifier","src":"5800:3:97"},"nativeSrc":"5800:16:97","nodeType":"YulFunctionCall","src":"5800:16:97"},{"arguments":[{"name":"pos","nativeSrc":"5822:3:97","nodeType":"YulIdentifier","src":"5822:3:97"},{"kind":"number","nativeSrc":"5827:4:97","nodeType":"YulLiteral","src":"5827:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5818:3:97","nodeType":"YulIdentifier","src":"5818:3:97"},"nativeSrc":"5818:14:97","nodeType":"YulFunctionCall","src":"5818:14:97"},{"name":"length","nativeSrc":"5834:6:97","nodeType":"YulIdentifier","src":"5834:6:97"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"5765:34:97","nodeType":"YulIdentifier","src":"5765:34:97"},"nativeSrc":"5765:76:97","nodeType":"YulFunctionCall","src":"5765:76:97"},"nativeSrc":"5765:76:97","nodeType":"YulExpressionStatement","src":"5765:76:97"},{"nativeSrc":"5850:116:97","nodeType":"YulAssignment","src":"5850:116:97","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"5865:3:97","nodeType":"YulIdentifier","src":"5865:3:97"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"5878:6:97","nodeType":"YulIdentifier","src":"5878:6:97"},{"kind":"number","nativeSrc":"5886:2:97","nodeType":"YulLiteral","src":"5886:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"5874:3:97","nodeType":"YulIdentifier","src":"5874:3:97"},"nativeSrc":"5874:15:97","nodeType":"YulFunctionCall","src":"5874:15:97"},{"kind":"number","nativeSrc":"5891:66:97","nodeType":"YulLiteral","src":"5891:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"5870:3:97","nodeType":"YulIdentifier","src":"5870:3:97"},"nativeSrc":"5870:88:97","nodeType":"YulFunctionCall","src":"5870:88:97"}],"functionName":{"name":"add","nativeSrc":"5861:3:97","nodeType":"YulIdentifier","src":"5861:3:97"},"nativeSrc":"5861:98:97","nodeType":"YulFunctionCall","src":"5861:98:97"},{"kind":"number","nativeSrc":"5961:4:97","nodeType":"YulLiteral","src":"5961:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5857:3:97","nodeType":"YulIdentifier","src":"5857:3:97"},"nativeSrc":"5857:109:97","nodeType":"YulFunctionCall","src":"5857:109:97"},"variableNames":[{"name":"end","nativeSrc":"5850:3:97","nodeType":"YulIdentifier","src":"5850:3:97"}]}]},"name":"abi_encode_bytes","nativeSrc":"5643:329:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5669:5:97","nodeType":"YulTypedName","src":"5669:5:97","type":""},{"name":"pos","nativeSrc":"5676:3:97","nodeType":"YulTypedName","src":"5676:3:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5684:3:97","nodeType":"YulTypedName","src":"5684:3:97","type":""}],"src":"5643:329:97"},{"body":{"nativeSrc":"6096:98:97","nodeType":"YulBlock","src":"6096:98:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6113:9:97","nodeType":"YulIdentifier","src":"6113:9:97"},{"kind":"number","nativeSrc":"6124:2:97","nodeType":"YulLiteral","src":"6124:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"6106:6:97","nodeType":"YulIdentifier","src":"6106:6:97"},"nativeSrc":"6106:21:97","nodeType":"YulFunctionCall","src":"6106:21:97"},"nativeSrc":"6106:21:97","nodeType":"YulExpressionStatement","src":"6106:21:97"},{"nativeSrc":"6136:52:97","nodeType":"YulAssignment","src":"6136:52:97","value":{"arguments":[{"name":"value0","nativeSrc":"6161:6:97","nodeType":"YulIdentifier","src":"6161:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"6173:9:97","nodeType":"YulIdentifier","src":"6173:9:97"},{"kind":"number","nativeSrc":"6184:2:97","nodeType":"YulLiteral","src":"6184:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6169:3:97","nodeType":"YulIdentifier","src":"6169:3:97"},"nativeSrc":"6169:18:97","nodeType":"YulFunctionCall","src":"6169:18:97"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"6144:16:97","nodeType":"YulIdentifier","src":"6144:16:97"},"nativeSrc":"6144:44:97","nodeType":"YulFunctionCall","src":"6144:44:97"},"variableNames":[{"name":"tail","nativeSrc":"6136:4:97","nodeType":"YulIdentifier","src":"6136:4:97"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"5977:217:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6065:9:97","nodeType":"YulTypedName","src":"6065:9:97","type":""},{"name":"value0","nativeSrc":"6076:6:97","nodeType":"YulTypedName","src":"6076:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6087:4:97","nodeType":"YulTypedName","src":"6087:4:97","type":""}],"src":"5977:217:97"},{"body":{"nativeSrc":"6269:110:97","nodeType":"YulBlock","src":"6269:110:97","statements":[{"body":{"nativeSrc":"6315:16:97","nodeType":"YulBlock","src":"6315:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6324:1:97","nodeType":"YulLiteral","src":"6324:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"6327:1:97","nodeType":"YulLiteral","src":"6327:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6317:6:97","nodeType":"YulIdentifier","src":"6317:6:97"},"nativeSrc":"6317:12:97","nodeType":"YulFunctionCall","src":"6317:12:97"},"nativeSrc":"6317:12:97","nodeType":"YulExpressionStatement","src":"6317:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6290:7:97","nodeType":"YulIdentifier","src":"6290:7:97"},{"name":"headStart","nativeSrc":"6299:9:97","nodeType":"YulIdentifier","src":"6299:9:97"}],"functionName":{"name":"sub","nativeSrc":"6286:3:97","nodeType":"YulIdentifier","src":"6286:3:97"},"nativeSrc":"6286:23:97","nodeType":"YulFunctionCall","src":"6286:23:97"},{"kind":"number","nativeSrc":"6311:2:97","nodeType":"YulLiteral","src":"6311:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6282:3:97","nodeType":"YulIdentifier","src":"6282:3:97"},"nativeSrc":"6282:32:97","nodeType":"YulFunctionCall","src":"6282:32:97"},"nativeSrc":"6279:52:97","nodeType":"YulIf","src":"6279:52:97"},{"nativeSrc":"6340:33:97","nodeType":"YulAssignment","src":"6340:33:97","value":{"arguments":[{"name":"headStart","nativeSrc":"6363:9:97","nodeType":"YulIdentifier","src":"6363:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"6350:12:97","nodeType":"YulIdentifier","src":"6350:12:97"},"nativeSrc":"6350:23:97","nodeType":"YulFunctionCall","src":"6350:23:97"},"variableNames":[{"name":"value0","nativeSrc":"6340:6:97","nodeType":"YulIdentifier","src":"6340:6:97"}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"6199:180:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6235:9:97","nodeType":"YulTypedName","src":"6235:9:97","type":""},{"name":"dataEnd","nativeSrc":"6246:7:97","nodeType":"YulTypedName","src":"6246:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6258:6:97","nodeType":"YulTypedName","src":"6258:6:97","type":""}],"src":"6199:180:97"},{"body":{"nativeSrc":"6485:76:97","nodeType":"YulBlock","src":"6485:76:97","statements":[{"nativeSrc":"6495:26:97","nodeType":"YulAssignment","src":"6495:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"6507:9:97","nodeType":"YulIdentifier","src":"6507:9:97"},{"kind":"number","nativeSrc":"6518:2:97","nodeType":"YulLiteral","src":"6518:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6503:3:97","nodeType":"YulIdentifier","src":"6503:3:97"},"nativeSrc":"6503:18:97","nodeType":"YulFunctionCall","src":"6503:18:97"},"variableNames":[{"name":"tail","nativeSrc":"6495:4:97","nodeType":"YulIdentifier","src":"6495:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6537:9:97","nodeType":"YulIdentifier","src":"6537:9:97"},{"name":"value0","nativeSrc":"6548:6:97","nodeType":"YulIdentifier","src":"6548:6:97"}],"functionName":{"name":"mstore","nativeSrc":"6530:6:97","nodeType":"YulIdentifier","src":"6530:6:97"},"nativeSrc":"6530:25:97","nodeType":"YulFunctionCall","src":"6530:25:97"},"nativeSrc":"6530:25:97","nodeType":"YulExpressionStatement","src":"6530:25:97"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"6384:177:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6454:9:97","nodeType":"YulTypedName","src":"6454:9:97","type":""},{"name":"value0","nativeSrc":"6465:6:97","nodeType":"YulTypedName","src":"6465:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6476:4:97","nodeType":"YulTypedName","src":"6476:4:97","type":""}],"src":"6384:177:97"},{"body":{"nativeSrc":"6667:125:97","nodeType":"YulBlock","src":"6667:125:97","statements":[{"nativeSrc":"6677:26:97","nodeType":"YulAssignment","src":"6677:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"6689:9:97","nodeType":"YulIdentifier","src":"6689:9:97"},{"kind":"number","nativeSrc":"6700:2:97","nodeType":"YulLiteral","src":"6700:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6685:3:97","nodeType":"YulIdentifier","src":"6685:3:97"},"nativeSrc":"6685:18:97","nodeType":"YulFunctionCall","src":"6685:18:97"},"variableNames":[{"name":"tail","nativeSrc":"6677:4:97","nodeType":"YulIdentifier","src":"6677:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6719:9:97","nodeType":"YulIdentifier","src":"6719:9:97"},{"arguments":[{"name":"value0","nativeSrc":"6734:6:97","nodeType":"YulIdentifier","src":"6734:6:97"},{"kind":"number","nativeSrc":"6742:42:97","nodeType":"YulLiteral","src":"6742:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"6730:3:97","nodeType":"YulIdentifier","src":"6730:3:97"},"nativeSrc":"6730:55:97","nodeType":"YulFunctionCall","src":"6730:55:97"}],"functionName":{"name":"mstore","nativeSrc":"6712:6:97","nodeType":"YulIdentifier","src":"6712:6:97"},"nativeSrc":"6712:74:97","nodeType":"YulFunctionCall","src":"6712:74:97"},"nativeSrc":"6712:74:97","nodeType":"YulExpressionStatement","src":"6712:74:97"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"6566:226:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6636:9:97","nodeType":"YulTypedName","src":"6636:9:97","type":""},{"name":"value0","nativeSrc":"6647:6:97","nodeType":"YulTypedName","src":"6647:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6658:4:97","nodeType":"YulTypedName","src":"6658:4:97","type":""}],"src":"6566:226:97"},{"body":{"nativeSrc":"6902:376:97","nodeType":"YulBlock","src":"6902:376:97","statements":[{"body":{"nativeSrc":"6948:16:97","nodeType":"YulBlock","src":"6948:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6957:1:97","nodeType":"YulLiteral","src":"6957:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"6960:1:97","nodeType":"YulLiteral","src":"6960:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6950:6:97","nodeType":"YulIdentifier","src":"6950:6:97"},"nativeSrc":"6950:12:97","nodeType":"YulFunctionCall","src":"6950:12:97"},"nativeSrc":"6950:12:97","nodeType":"YulExpressionStatement","src":"6950:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6923:7:97","nodeType":"YulIdentifier","src":"6923:7:97"},{"name":"headStart","nativeSrc":"6932:9:97","nodeType":"YulIdentifier","src":"6932:9:97"}],"functionName":{"name":"sub","nativeSrc":"6919:3:97","nodeType":"YulIdentifier","src":"6919:3:97"},"nativeSrc":"6919:23:97","nodeType":"YulFunctionCall","src":"6919:23:97"},{"kind":"number","nativeSrc":"6944:2:97","nodeType":"YulLiteral","src":"6944:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"6915:3:97","nodeType":"YulIdentifier","src":"6915:3:97"},"nativeSrc":"6915:32:97","nodeType":"YulFunctionCall","src":"6915:32:97"},"nativeSrc":"6912:52:97","nodeType":"YulIf","src":"6912:52:97"},{"nativeSrc":"6973:38:97","nodeType":"YulAssignment","src":"6973:38:97","value":{"arguments":[{"name":"headStart","nativeSrc":"7001:9:97","nodeType":"YulIdentifier","src":"7001:9:97"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"6983:17:97","nodeType":"YulIdentifier","src":"6983:17:97"},"nativeSrc":"6983:28:97","nodeType":"YulFunctionCall","src":"6983:28:97"},"variableNames":[{"name":"value0","nativeSrc":"6973:6:97","nodeType":"YulIdentifier","src":"6973:6:97"}]},{"nativeSrc":"7020:46:97","nodeType":"YulVariableDeclaration","src":"7020:46:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7051:9:97","nodeType":"YulIdentifier","src":"7051:9:97"},{"kind":"number","nativeSrc":"7062:2:97","nodeType":"YulLiteral","src":"7062:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7047:3:97","nodeType":"YulIdentifier","src":"7047:3:97"},"nativeSrc":"7047:18:97","nodeType":"YulFunctionCall","src":"7047:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"7034:12:97","nodeType":"YulIdentifier","src":"7034:12:97"},"nativeSrc":"7034:32:97","nodeType":"YulFunctionCall","src":"7034:32:97"},"variables":[{"name":"offset","nativeSrc":"7024:6:97","nodeType":"YulTypedName","src":"7024:6:97","type":""}]},{"body":{"nativeSrc":"7109:16:97","nodeType":"YulBlock","src":"7109:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7118:1:97","nodeType":"YulLiteral","src":"7118:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"7121:1:97","nodeType":"YulLiteral","src":"7121:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7111:6:97","nodeType":"YulIdentifier","src":"7111:6:97"},"nativeSrc":"7111:12:97","nodeType":"YulFunctionCall","src":"7111:12:97"},"nativeSrc":"7111:12:97","nodeType":"YulExpressionStatement","src":"7111:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"7081:6:97","nodeType":"YulIdentifier","src":"7081:6:97"},{"kind":"number","nativeSrc":"7089:18:97","nodeType":"YulLiteral","src":"7089:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7078:2:97","nodeType":"YulIdentifier","src":"7078:2:97"},"nativeSrc":"7078:30:97","nodeType":"YulFunctionCall","src":"7078:30:97"},"nativeSrc":"7075:50:97","nodeType":"YulIf","src":"7075:50:97"},{"nativeSrc":"7134:84:97","nodeType":"YulVariableDeclaration","src":"7134:84:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7190:9:97","nodeType":"YulIdentifier","src":"7190:9:97"},{"name":"offset","nativeSrc":"7201:6:97","nodeType":"YulIdentifier","src":"7201:6:97"}],"functionName":{"name":"add","nativeSrc":"7186:3:97","nodeType":"YulIdentifier","src":"7186:3:97"},"nativeSrc":"7186:22:97","nodeType":"YulFunctionCall","src":"7186:22:97"},{"name":"dataEnd","nativeSrc":"7210:7:97","nodeType":"YulIdentifier","src":"7210:7:97"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"7160:25:97","nodeType":"YulIdentifier","src":"7160:25:97"},"nativeSrc":"7160:58:97","nodeType":"YulFunctionCall","src":"7160:58:97"},"variables":[{"name":"value1_1","nativeSrc":"7138:8:97","nodeType":"YulTypedName","src":"7138:8:97","type":""},{"name":"value2_1","nativeSrc":"7148:8:97","nodeType":"YulTypedName","src":"7148:8:97","type":""}]},{"nativeSrc":"7227:18:97","nodeType":"YulAssignment","src":"7227:18:97","value":{"name":"value1_1","nativeSrc":"7237:8:97","nodeType":"YulIdentifier","src":"7237:8:97"},"variableNames":[{"name":"value1","nativeSrc":"7227:6:97","nodeType":"YulIdentifier","src":"7227:6:97"}]},{"nativeSrc":"7254:18:97","nodeType":"YulAssignment","src":"7254:18:97","value":{"name":"value2_1","nativeSrc":"7264:8:97","nodeType":"YulIdentifier","src":"7264:8:97"},"variableNames":[{"name":"value2","nativeSrc":"7254:6:97","nodeType":"YulIdentifier","src":"7254:6:97"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptr","nativeSrc":"6797:481:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6852:9:97","nodeType":"YulTypedName","src":"6852:9:97","type":""},{"name":"dataEnd","nativeSrc":"6863:7:97","nodeType":"YulTypedName","src":"6863:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6875:6:97","nodeType":"YulTypedName","src":"6875:6:97","type":""},{"name":"value1","nativeSrc":"6883:6:97","nodeType":"YulTypedName","src":"6883:6:97","type":""},{"name":"value2","nativeSrc":"6891:6:97","nodeType":"YulTypedName","src":"6891:6:97","type":""}],"src":"6797:481:97"},{"body":{"nativeSrc":"7421:484:97","nodeType":"YulBlock","src":"7421:484:97","statements":[{"body":{"nativeSrc":"7468:16:97","nodeType":"YulBlock","src":"7468:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7477:1:97","nodeType":"YulLiteral","src":"7477:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"7480:1:97","nodeType":"YulLiteral","src":"7480:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7470:6:97","nodeType":"YulIdentifier","src":"7470:6:97"},"nativeSrc":"7470:12:97","nodeType":"YulFunctionCall","src":"7470:12:97"},"nativeSrc":"7470:12:97","nodeType":"YulExpressionStatement","src":"7470:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7442:7:97","nodeType":"YulIdentifier","src":"7442:7:97"},{"name":"headStart","nativeSrc":"7451:9:97","nodeType":"YulIdentifier","src":"7451:9:97"}],"functionName":{"name":"sub","nativeSrc":"7438:3:97","nodeType":"YulIdentifier","src":"7438:3:97"},"nativeSrc":"7438:23:97","nodeType":"YulFunctionCall","src":"7438:23:97"},{"kind":"number","nativeSrc":"7463:3:97","nodeType":"YulLiteral","src":"7463:3:97","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"7434:3:97","nodeType":"YulIdentifier","src":"7434:3:97"},"nativeSrc":"7434:33:97","nodeType":"YulFunctionCall","src":"7434:33:97"},"nativeSrc":"7431:53:97","nodeType":"YulIf","src":"7431:53:97"},{"nativeSrc":"7493:38:97","nodeType":"YulAssignment","src":"7493:38:97","value":{"arguments":[{"name":"headStart","nativeSrc":"7521:9:97","nodeType":"YulIdentifier","src":"7521:9:97"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"7503:17:97","nodeType":"YulIdentifier","src":"7503:17:97"},"nativeSrc":"7503:28:97","nodeType":"YulFunctionCall","src":"7503:28:97"},"variableNames":[{"name":"value0","nativeSrc":"7493:6:97","nodeType":"YulIdentifier","src":"7493:6:97"}]},{"nativeSrc":"7540:47:97","nodeType":"YulAssignment","src":"7540:47:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7572:9:97","nodeType":"YulIdentifier","src":"7572:9:97"},{"kind":"number","nativeSrc":"7583:2:97","nodeType":"YulLiteral","src":"7583:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7568:3:97","nodeType":"YulIdentifier","src":"7568:3:97"},"nativeSrc":"7568:18:97","nodeType":"YulFunctionCall","src":"7568:18:97"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"7550:17:97","nodeType":"YulIdentifier","src":"7550:17:97"},"nativeSrc":"7550:37:97","nodeType":"YulFunctionCall","src":"7550:37:97"},"variableNames":[{"name":"value1","nativeSrc":"7540:6:97","nodeType":"YulIdentifier","src":"7540:6:97"}]},{"nativeSrc":"7596:42:97","nodeType":"YulAssignment","src":"7596:42:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7623:9:97","nodeType":"YulIdentifier","src":"7623:9:97"},{"kind":"number","nativeSrc":"7634:2:97","nodeType":"YulLiteral","src":"7634:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7619:3:97","nodeType":"YulIdentifier","src":"7619:3:97"},"nativeSrc":"7619:18:97","nodeType":"YulFunctionCall","src":"7619:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"7606:12:97","nodeType":"YulIdentifier","src":"7606:12:97"},"nativeSrc":"7606:32:97","nodeType":"YulFunctionCall","src":"7606:32:97"},"variableNames":[{"name":"value2","nativeSrc":"7596:6:97","nodeType":"YulIdentifier","src":"7596:6:97"}]},{"nativeSrc":"7647:46:97","nodeType":"YulVariableDeclaration","src":"7647:46:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7678:9:97","nodeType":"YulIdentifier","src":"7678:9:97"},{"kind":"number","nativeSrc":"7689:2:97","nodeType":"YulLiteral","src":"7689:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"7674:3:97","nodeType":"YulIdentifier","src":"7674:3:97"},"nativeSrc":"7674:18:97","nodeType":"YulFunctionCall","src":"7674:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"7661:12:97","nodeType":"YulIdentifier","src":"7661:12:97"},"nativeSrc":"7661:32:97","nodeType":"YulFunctionCall","src":"7661:32:97"},"variables":[{"name":"offset","nativeSrc":"7651:6:97","nodeType":"YulTypedName","src":"7651:6:97","type":""}]},{"body":{"nativeSrc":"7736:16:97","nodeType":"YulBlock","src":"7736:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7745:1:97","nodeType":"YulLiteral","src":"7745:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"7748:1:97","nodeType":"YulLiteral","src":"7748:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7738:6:97","nodeType":"YulIdentifier","src":"7738:6:97"},"nativeSrc":"7738:12:97","nodeType":"YulFunctionCall","src":"7738:12:97"},"nativeSrc":"7738:12:97","nodeType":"YulExpressionStatement","src":"7738:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"7708:6:97","nodeType":"YulIdentifier","src":"7708:6:97"},{"kind":"number","nativeSrc":"7716:18:97","nodeType":"YulLiteral","src":"7716:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7705:2:97","nodeType":"YulIdentifier","src":"7705:2:97"},"nativeSrc":"7705:30:97","nodeType":"YulFunctionCall","src":"7705:30:97"},"nativeSrc":"7702:50:97","nodeType":"YulIf","src":"7702:50:97"},{"nativeSrc":"7761:84:97","nodeType":"YulVariableDeclaration","src":"7761:84:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7817:9:97","nodeType":"YulIdentifier","src":"7817:9:97"},{"name":"offset","nativeSrc":"7828:6:97","nodeType":"YulIdentifier","src":"7828:6:97"}],"functionName":{"name":"add","nativeSrc":"7813:3:97","nodeType":"YulIdentifier","src":"7813:3:97"},"nativeSrc":"7813:22:97","nodeType":"YulFunctionCall","src":"7813:22:97"},{"name":"dataEnd","nativeSrc":"7837:7:97","nodeType":"YulIdentifier","src":"7837:7:97"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"7787:25:97","nodeType":"YulIdentifier","src":"7787:25:97"},"nativeSrc":"7787:58:97","nodeType":"YulFunctionCall","src":"7787:58:97"},"variables":[{"name":"value3_1","nativeSrc":"7765:8:97","nodeType":"YulTypedName","src":"7765:8:97","type":""},{"name":"value4_1","nativeSrc":"7775:8:97","nodeType":"YulTypedName","src":"7775:8:97","type":""}]},{"nativeSrc":"7854:18:97","nodeType":"YulAssignment","src":"7854:18:97","value":{"name":"value3_1","nativeSrc":"7864:8:97","nodeType":"YulIdentifier","src":"7864:8:97"},"variableNames":[{"name":"value3","nativeSrc":"7854:6:97","nodeType":"YulIdentifier","src":"7854:6:97"}]},{"nativeSrc":"7881:18:97","nodeType":"YulAssignment","src":"7881:18:97","value":{"name":"value4_1","nativeSrc":"7891:8:97","nodeType":"YulIdentifier","src":"7891:8:97"},"variableNames":[{"name":"value4","nativeSrc":"7881:6:97","nodeType":"YulIdentifier","src":"7881:6:97"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_calldata_ptr","nativeSrc":"7283:622:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7355:9:97","nodeType":"YulTypedName","src":"7355:9:97","type":""},{"name":"dataEnd","nativeSrc":"7366:7:97","nodeType":"YulTypedName","src":"7366:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7378:6:97","nodeType":"YulTypedName","src":"7378:6:97","type":""},{"name":"value1","nativeSrc":"7386:6:97","nodeType":"YulTypedName","src":"7386:6:97","type":""},{"name":"value2","nativeSrc":"7394:6:97","nodeType":"YulTypedName","src":"7394:6:97","type":""},{"name":"value3","nativeSrc":"7402:6:97","nodeType":"YulTypedName","src":"7402:6:97","type":""},{"name":"value4","nativeSrc":"7410:6:97","nodeType":"YulTypedName","src":"7410:6:97","type":""}],"src":"7283:622:97"},{"body":{"nativeSrc":"8038:125:97","nodeType":"YulBlock","src":"8038:125:97","statements":[{"nativeSrc":"8048:26:97","nodeType":"YulAssignment","src":"8048:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"8060:9:97","nodeType":"YulIdentifier","src":"8060:9:97"},{"kind":"number","nativeSrc":"8071:2:97","nodeType":"YulLiteral","src":"8071:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8056:3:97","nodeType":"YulIdentifier","src":"8056:3:97"},"nativeSrc":"8056:18:97","nodeType":"YulFunctionCall","src":"8056:18:97"},"variableNames":[{"name":"tail","nativeSrc":"8048:4:97","nodeType":"YulIdentifier","src":"8048:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8090:9:97","nodeType":"YulIdentifier","src":"8090:9:97"},{"arguments":[{"name":"value0","nativeSrc":"8105:6:97","nodeType":"YulIdentifier","src":"8105:6:97"},{"kind":"number","nativeSrc":"8113:42:97","nodeType":"YulLiteral","src":"8113:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"8101:3:97","nodeType":"YulIdentifier","src":"8101:3:97"},"nativeSrc":"8101:55:97","nodeType":"YulFunctionCall","src":"8101:55:97"}],"functionName":{"name":"mstore","nativeSrc":"8083:6:97","nodeType":"YulIdentifier","src":"8083:6:97"},"nativeSrc":"8083:74:97","nodeType":"YulFunctionCall","src":"8083:74:97"},"nativeSrc":"8083:74:97","nodeType":"YulExpressionStatement","src":"8083:74:97"}]},"name":"abi_encode_tuple_t_contract$_ILayerZeroEndpoint_$4253__to_t_address__fromStack_reversed","nativeSrc":"7910:253:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8007:9:97","nodeType":"YulTypedName","src":"8007:9:97","type":""},{"name":"value0","nativeSrc":"8018:6:97","nodeType":"YulTypedName","src":"8018:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8029:4:97","nodeType":"YulTypedName","src":"8029:4:97","type":""}],"src":"7910:253:97"},{"body":{"nativeSrc":"8360:871:97","nodeType":"YulBlock","src":"8360:871:97","statements":[{"body":{"nativeSrc":"8407:16:97","nodeType":"YulBlock","src":"8407:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8416:1:97","nodeType":"YulLiteral","src":"8416:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"8419:1:97","nodeType":"YulLiteral","src":"8419:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8409:6:97","nodeType":"YulIdentifier","src":"8409:6:97"},"nativeSrc":"8409:12:97","nodeType":"YulFunctionCall","src":"8409:12:97"},"nativeSrc":"8409:12:97","nodeType":"YulExpressionStatement","src":"8409:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8381:7:97","nodeType":"YulIdentifier","src":"8381:7:97"},{"name":"headStart","nativeSrc":"8390:9:97","nodeType":"YulIdentifier","src":"8390:9:97"}],"functionName":{"name":"sub","nativeSrc":"8377:3:97","nodeType":"YulIdentifier","src":"8377:3:97"},"nativeSrc":"8377:23:97","nodeType":"YulFunctionCall","src":"8377:23:97"},{"kind":"number","nativeSrc":"8402:3:97","nodeType":"YulLiteral","src":"8402:3:97","type":"","value":"192"}],"functionName":{"name":"slt","nativeSrc":"8373:3:97","nodeType":"YulIdentifier","src":"8373:3:97"},"nativeSrc":"8373:33:97","nodeType":"YulFunctionCall","src":"8373:33:97"},"nativeSrc":"8370:53:97","nodeType":"YulIf","src":"8370:53:97"},{"nativeSrc":"8432:33:97","nodeType":"YulAssignment","src":"8432:33:97","value":{"arguments":[{"name":"headStart","nativeSrc":"8455:9:97","nodeType":"YulIdentifier","src":"8455:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"8442:12:97","nodeType":"YulIdentifier","src":"8442:12:97"},"nativeSrc":"8442:23:97","nodeType":"YulFunctionCall","src":"8442:23:97"},"variableNames":[{"name":"value0","nativeSrc":"8432:6:97","nodeType":"YulIdentifier","src":"8432:6:97"}]},{"nativeSrc":"8474:47:97","nodeType":"YulAssignment","src":"8474:47:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8506:9:97","nodeType":"YulIdentifier","src":"8506:9:97"},{"kind":"number","nativeSrc":"8517:2:97","nodeType":"YulLiteral","src":"8517:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8502:3:97","nodeType":"YulIdentifier","src":"8502:3:97"},"nativeSrc":"8502:18:97","nodeType":"YulFunctionCall","src":"8502:18:97"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"8484:17:97","nodeType":"YulIdentifier","src":"8484:17:97"},"nativeSrc":"8484:37:97","nodeType":"YulFunctionCall","src":"8484:37:97"},"variableNames":[{"name":"value1","nativeSrc":"8474:6:97","nodeType":"YulIdentifier","src":"8474:6:97"}]},{"nativeSrc":"8530:46:97","nodeType":"YulVariableDeclaration","src":"8530:46:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8561:9:97","nodeType":"YulIdentifier","src":"8561:9:97"},{"kind":"number","nativeSrc":"8572:2:97","nodeType":"YulLiteral","src":"8572:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8557:3:97","nodeType":"YulIdentifier","src":"8557:3:97"},"nativeSrc":"8557:18:97","nodeType":"YulFunctionCall","src":"8557:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"8544:12:97","nodeType":"YulIdentifier","src":"8544:12:97"},"nativeSrc":"8544:32:97","nodeType":"YulFunctionCall","src":"8544:32:97"},"variables":[{"name":"offset","nativeSrc":"8534:6:97","nodeType":"YulTypedName","src":"8534:6:97","type":""}]},{"nativeSrc":"8585:28:97","nodeType":"YulVariableDeclaration","src":"8585:28:97","value":{"kind":"number","nativeSrc":"8595:18:97","nodeType":"YulLiteral","src":"8595:18:97","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"8589:2:97","nodeType":"YulTypedName","src":"8589:2:97","type":""}]},{"body":{"nativeSrc":"8640:16:97","nodeType":"YulBlock","src":"8640:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8649:1:97","nodeType":"YulLiteral","src":"8649:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"8652:1:97","nodeType":"YulLiteral","src":"8652:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8642:6:97","nodeType":"YulIdentifier","src":"8642:6:97"},"nativeSrc":"8642:12:97","nodeType":"YulFunctionCall","src":"8642:12:97"},"nativeSrc":"8642:12:97","nodeType":"YulExpressionStatement","src":"8642:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"8628:6:97","nodeType":"YulIdentifier","src":"8628:6:97"},{"name":"_1","nativeSrc":"8636:2:97","nodeType":"YulIdentifier","src":"8636:2:97"}],"functionName":{"name":"gt","nativeSrc":"8625:2:97","nodeType":"YulIdentifier","src":"8625:2:97"},"nativeSrc":"8625:14:97","nodeType":"YulFunctionCall","src":"8625:14:97"},"nativeSrc":"8622:34:97","nodeType":"YulIf","src":"8622:34:97"},{"nativeSrc":"8665:84:97","nodeType":"YulVariableDeclaration","src":"8665:84:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8721:9:97","nodeType":"YulIdentifier","src":"8721:9:97"},{"name":"offset","nativeSrc":"8732:6:97","nodeType":"YulIdentifier","src":"8732:6:97"}],"functionName":{"name":"add","nativeSrc":"8717:3:97","nodeType":"YulIdentifier","src":"8717:3:97"},"nativeSrc":"8717:22:97","nodeType":"YulFunctionCall","src":"8717:22:97"},{"name":"dataEnd","nativeSrc":"8741:7:97","nodeType":"YulIdentifier","src":"8741:7:97"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"8691:25:97","nodeType":"YulIdentifier","src":"8691:25:97"},"nativeSrc":"8691:58:97","nodeType":"YulFunctionCall","src":"8691:58:97"},"variables":[{"name":"value2_1","nativeSrc":"8669:8:97","nodeType":"YulTypedName","src":"8669:8:97","type":""},{"name":"value3_1","nativeSrc":"8679:8:97","nodeType":"YulTypedName","src":"8679:8:97","type":""}]},{"nativeSrc":"8758:18:97","nodeType":"YulAssignment","src":"8758:18:97","value":{"name":"value2_1","nativeSrc":"8768:8:97","nodeType":"YulIdentifier","src":"8768:8:97"},"variableNames":[{"name":"value2","nativeSrc":"8758:6:97","nodeType":"YulIdentifier","src":"8758:6:97"}]},{"nativeSrc":"8785:18:97","nodeType":"YulAssignment","src":"8785:18:97","value":{"name":"value3_1","nativeSrc":"8795:8:97","nodeType":"YulIdentifier","src":"8795:8:97"},"variableNames":[{"name":"value3","nativeSrc":"8785:6:97","nodeType":"YulIdentifier","src":"8785:6:97"}]},{"nativeSrc":"8812:48:97","nodeType":"YulVariableDeclaration","src":"8812:48:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8845:9:97","nodeType":"YulIdentifier","src":"8845:9:97"},{"kind":"number","nativeSrc":"8856:2:97","nodeType":"YulLiteral","src":"8856:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"8841:3:97","nodeType":"YulIdentifier","src":"8841:3:97"},"nativeSrc":"8841:18:97","nodeType":"YulFunctionCall","src":"8841:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"8828:12:97","nodeType":"YulIdentifier","src":"8828:12:97"},"nativeSrc":"8828:32:97","nodeType":"YulFunctionCall","src":"8828:32:97"},"variables":[{"name":"offset_1","nativeSrc":"8816:8:97","nodeType":"YulTypedName","src":"8816:8:97","type":""}]},{"body":{"nativeSrc":"8889:16:97","nodeType":"YulBlock","src":"8889:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8898:1:97","nodeType":"YulLiteral","src":"8898:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"8901:1:97","nodeType":"YulLiteral","src":"8901:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8891:6:97","nodeType":"YulIdentifier","src":"8891:6:97"},"nativeSrc":"8891:12:97","nodeType":"YulFunctionCall","src":"8891:12:97"},"nativeSrc":"8891:12:97","nodeType":"YulExpressionStatement","src":"8891:12:97"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"8875:8:97","nodeType":"YulIdentifier","src":"8875:8:97"},{"name":"_1","nativeSrc":"8885:2:97","nodeType":"YulIdentifier","src":"8885:2:97"}],"functionName":{"name":"gt","nativeSrc":"8872:2:97","nodeType":"YulIdentifier","src":"8872:2:97"},"nativeSrc":"8872:16:97","nodeType":"YulFunctionCall","src":"8872:16:97"},"nativeSrc":"8869:36:97","nodeType":"YulIf","src":"8869:36:97"},{"nativeSrc":"8914:86:97","nodeType":"YulVariableDeclaration","src":"8914:86:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8970:9:97","nodeType":"YulIdentifier","src":"8970:9:97"},{"name":"offset_1","nativeSrc":"8981:8:97","nodeType":"YulIdentifier","src":"8981:8:97"}],"functionName":{"name":"add","nativeSrc":"8966:3:97","nodeType":"YulIdentifier","src":"8966:3:97"},"nativeSrc":"8966:24:97","nodeType":"YulFunctionCall","src":"8966:24:97"},{"name":"dataEnd","nativeSrc":"8992:7:97","nodeType":"YulIdentifier","src":"8992:7:97"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"8940:25:97","nodeType":"YulIdentifier","src":"8940:25:97"},"nativeSrc":"8940:60:97","nodeType":"YulFunctionCall","src":"8940:60:97"},"variables":[{"name":"value4_1","nativeSrc":"8918:8:97","nodeType":"YulTypedName","src":"8918:8:97","type":""},{"name":"value5_1","nativeSrc":"8928:8:97","nodeType":"YulTypedName","src":"8928:8:97","type":""}]},{"nativeSrc":"9009:18:97","nodeType":"YulAssignment","src":"9009:18:97","value":{"name":"value4_1","nativeSrc":"9019:8:97","nodeType":"YulIdentifier","src":"9019:8:97"},"variableNames":[{"name":"value4","nativeSrc":"9009:6:97","nodeType":"YulIdentifier","src":"9009:6:97"}]},{"nativeSrc":"9036:18:97","nodeType":"YulAssignment","src":"9036:18:97","value":{"name":"value5_1","nativeSrc":"9046:8:97","nodeType":"YulIdentifier","src":"9046:8:97"},"variableNames":[{"name":"value5","nativeSrc":"9036:6:97","nodeType":"YulIdentifier","src":"9036:6:97"}]},{"nativeSrc":"9063:46:97","nodeType":"YulVariableDeclaration","src":"9063:46:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9093:9:97","nodeType":"YulIdentifier","src":"9093:9:97"},{"kind":"number","nativeSrc":"9104:3:97","nodeType":"YulLiteral","src":"9104:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"9089:3:97","nodeType":"YulIdentifier","src":"9089:3:97"},"nativeSrc":"9089:19:97","nodeType":"YulFunctionCall","src":"9089:19:97"}],"functionName":{"name":"calldataload","nativeSrc":"9076:12:97","nodeType":"YulIdentifier","src":"9076:12:97"},"nativeSrc":"9076:33:97","nodeType":"YulFunctionCall","src":"9076:33:97"},"variables":[{"name":"value","nativeSrc":"9067:5:97","nodeType":"YulTypedName","src":"9067:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"9143:5:97","nodeType":"YulIdentifier","src":"9143:5:97"}],"functionName":{"name":"validator_revert_address","nativeSrc":"9118:24:97","nodeType":"YulIdentifier","src":"9118:24:97"},"nativeSrc":"9118:31:97","nodeType":"YulFunctionCall","src":"9118:31:97"},"nativeSrc":"9118:31:97","nodeType":"YulExpressionStatement","src":"9118:31:97"},{"nativeSrc":"9158:15:97","nodeType":"YulAssignment","src":"9158:15:97","value":{"name":"value","nativeSrc":"9168:5:97","nodeType":"YulIdentifier","src":"9168:5:97"},"variableNames":[{"name":"value6","nativeSrc":"9158:6:97","nodeType":"YulIdentifier","src":"9158:6:97"}]},{"nativeSrc":"9182:43:97","nodeType":"YulAssignment","src":"9182:43:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9209:9:97","nodeType":"YulIdentifier","src":"9209:9:97"},{"kind":"number","nativeSrc":"9220:3:97","nodeType":"YulLiteral","src":"9220:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"9205:3:97","nodeType":"YulIdentifier","src":"9205:3:97"},"nativeSrc":"9205:19:97","nodeType":"YulFunctionCall","src":"9205:19:97"}],"functionName":{"name":"calldataload","nativeSrc":"9192:12:97","nodeType":"YulIdentifier","src":"9192:12:97"},"nativeSrc":"9192:33:97","nodeType":"YulFunctionCall","src":"9192:33:97"},"variableNames":[{"name":"value7","nativeSrc":"9182:6:97","nodeType":"YulIdentifier","src":"9182:6:97"}]}]},"name":"abi_decode_tuple_t_uint256t_uint16t_bytes_calldata_ptrt_bytes_calldata_ptrt_addresst_uint256","nativeSrc":"8168:1063:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8270:9:97","nodeType":"YulTypedName","src":"8270:9:97","type":""},{"name":"dataEnd","nativeSrc":"8281:7:97","nodeType":"YulTypedName","src":"8281:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8293:6:97","nodeType":"YulTypedName","src":"8293:6:97","type":""},{"name":"value1","nativeSrc":"8301:6:97","nodeType":"YulTypedName","src":"8301:6:97","type":""},{"name":"value2","nativeSrc":"8309:6:97","nodeType":"YulTypedName","src":"8309:6:97","type":""},{"name":"value3","nativeSrc":"8317:6:97","nodeType":"YulTypedName","src":"8317:6:97","type":""},{"name":"value4","nativeSrc":"8325:6:97","nodeType":"YulTypedName","src":"8325:6:97","type":""},{"name":"value5","nativeSrc":"8333:6:97","nodeType":"YulTypedName","src":"8333:6:97","type":""},{"name":"value6","nativeSrc":"8341:6:97","nodeType":"YulTypedName","src":"8341:6:97","type":""},{"name":"value7","nativeSrc":"8349:6:97","nodeType":"YulTypedName","src":"8349:6:97","type":""}],"src":"8168:1063:97"},{"body":{"nativeSrc":"9335:89:97","nodeType":"YulBlock","src":"9335:89:97","statements":[{"nativeSrc":"9345:26:97","nodeType":"YulAssignment","src":"9345:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"9357:9:97","nodeType":"YulIdentifier","src":"9357:9:97"},{"kind":"number","nativeSrc":"9368:2:97","nodeType":"YulLiteral","src":"9368:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9353:3:97","nodeType":"YulIdentifier","src":"9353:3:97"},"nativeSrc":"9353:18:97","nodeType":"YulFunctionCall","src":"9353:18:97"},"variableNames":[{"name":"tail","nativeSrc":"9345:4:97","nodeType":"YulIdentifier","src":"9345:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"9387:9:97","nodeType":"YulIdentifier","src":"9387:9:97"},{"arguments":[{"name":"value0","nativeSrc":"9402:6:97","nodeType":"YulIdentifier","src":"9402:6:97"},{"kind":"number","nativeSrc":"9410:6:97","nodeType":"YulLiteral","src":"9410:6:97","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"9398:3:97","nodeType":"YulIdentifier","src":"9398:3:97"},"nativeSrc":"9398:19:97","nodeType":"YulFunctionCall","src":"9398:19:97"}],"functionName":{"name":"mstore","nativeSrc":"9380:6:97","nodeType":"YulIdentifier","src":"9380:6:97"},"nativeSrc":"9380:38:97","nodeType":"YulFunctionCall","src":"9380:38:97"},"nativeSrc":"9380:38:97","nodeType":"YulExpressionStatement","src":"9380:38:97"}]},"name":"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed","nativeSrc":"9236:188:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9304:9:97","nodeType":"YulTypedName","src":"9304:9:97","type":""},{"name":"value0","nativeSrc":"9315:6:97","nodeType":"YulTypedName","src":"9315:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9326:4:97","nodeType":"YulTypedName","src":"9326:4:97","type":""}],"src":"9236:188:97"},{"body":{"nativeSrc":"9495:259:97","nodeType":"YulBlock","src":"9495:259:97","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"9512:3:97","nodeType":"YulIdentifier","src":"9512:3:97"},{"name":"length","nativeSrc":"9517:6:97","nodeType":"YulIdentifier","src":"9517:6:97"}],"functionName":{"name":"mstore","nativeSrc":"9505:6:97","nodeType":"YulIdentifier","src":"9505:6:97"},"nativeSrc":"9505:19:97","nodeType":"YulFunctionCall","src":"9505:19:97"},"nativeSrc":"9505:19:97","nodeType":"YulExpressionStatement","src":"9505:19:97"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"9550:3:97","nodeType":"YulIdentifier","src":"9550:3:97"},{"kind":"number","nativeSrc":"9555:4:97","nodeType":"YulLiteral","src":"9555:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9546:3:97","nodeType":"YulIdentifier","src":"9546:3:97"},"nativeSrc":"9546:14:97","nodeType":"YulFunctionCall","src":"9546:14:97"},{"name":"start","nativeSrc":"9562:5:97","nodeType":"YulIdentifier","src":"9562:5:97"},{"name":"length","nativeSrc":"9569:6:97","nodeType":"YulIdentifier","src":"9569:6:97"}],"functionName":{"name":"calldatacopy","nativeSrc":"9533:12:97","nodeType":"YulIdentifier","src":"9533:12:97"},"nativeSrc":"9533:43:97","nodeType":"YulFunctionCall","src":"9533:43:97"},"nativeSrc":"9533:43:97","nodeType":"YulExpressionStatement","src":"9533:43:97"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"9600:3:97","nodeType":"YulIdentifier","src":"9600:3:97"},{"name":"length","nativeSrc":"9605:6:97","nodeType":"YulIdentifier","src":"9605:6:97"}],"functionName":{"name":"add","nativeSrc":"9596:3:97","nodeType":"YulIdentifier","src":"9596:3:97"},"nativeSrc":"9596:16:97","nodeType":"YulFunctionCall","src":"9596:16:97"},{"kind":"number","nativeSrc":"9614:4:97","nodeType":"YulLiteral","src":"9614:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9592:3:97","nodeType":"YulIdentifier","src":"9592:3:97"},"nativeSrc":"9592:27:97","nodeType":"YulFunctionCall","src":"9592:27:97"},{"kind":"number","nativeSrc":"9621:1:97","nodeType":"YulLiteral","src":"9621:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"9585:6:97","nodeType":"YulIdentifier","src":"9585:6:97"},"nativeSrc":"9585:38:97","nodeType":"YulFunctionCall","src":"9585:38:97"},"nativeSrc":"9585:38:97","nodeType":"YulExpressionStatement","src":"9585:38:97"},{"nativeSrc":"9632:116:97","nodeType":"YulAssignment","src":"9632:116:97","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"9647:3:97","nodeType":"YulIdentifier","src":"9647:3:97"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"9660:6:97","nodeType":"YulIdentifier","src":"9660:6:97"},{"kind":"number","nativeSrc":"9668:2:97","nodeType":"YulLiteral","src":"9668:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"9656:3:97","nodeType":"YulIdentifier","src":"9656:3:97"},"nativeSrc":"9656:15:97","nodeType":"YulFunctionCall","src":"9656:15:97"},{"kind":"number","nativeSrc":"9673:66:97","nodeType":"YulLiteral","src":"9673:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"9652:3:97","nodeType":"YulIdentifier","src":"9652:3:97"},"nativeSrc":"9652:88:97","nodeType":"YulFunctionCall","src":"9652:88:97"}],"functionName":{"name":"add","nativeSrc":"9643:3:97","nodeType":"YulIdentifier","src":"9643:3:97"},"nativeSrc":"9643:98:97","nodeType":"YulFunctionCall","src":"9643:98:97"},{"kind":"number","nativeSrc":"9743:4:97","nodeType":"YulLiteral","src":"9743:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9639:3:97","nodeType":"YulIdentifier","src":"9639:3:97"},"nativeSrc":"9639:109:97","nodeType":"YulFunctionCall","src":"9639:109:97"},"variableNames":[{"name":"end","nativeSrc":"9632:3:97","nodeType":"YulIdentifier","src":"9632:3:97"}]}]},"name":"abi_encode_bytes_calldata","nativeSrc":"9429:325:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"9464:5:97","nodeType":"YulTypedName","src":"9464:5:97","type":""},{"name":"length","nativeSrc":"9471:6:97","nodeType":"YulTypedName","src":"9471:6:97","type":""},{"name":"pos","nativeSrc":"9479:3:97","nodeType":"YulTypedName","src":"9479:3:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"9487:3:97","nodeType":"YulTypedName","src":"9487:3:97","type":""}],"src":"9429:325:97"},{"body":{"nativeSrc":"10020:456:97","nodeType":"YulBlock","src":"10020:456:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"10037:9:97","nodeType":"YulIdentifier","src":"10037:9:97"},{"arguments":[{"name":"value0","nativeSrc":"10052:6:97","nodeType":"YulIdentifier","src":"10052:6:97"},{"kind":"number","nativeSrc":"10060:6:97","nodeType":"YulLiteral","src":"10060:6:97","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"10048:3:97","nodeType":"YulIdentifier","src":"10048:3:97"},"nativeSrc":"10048:19:97","nodeType":"YulFunctionCall","src":"10048:19:97"}],"functionName":{"name":"mstore","nativeSrc":"10030:6:97","nodeType":"YulIdentifier","src":"10030:6:97"},"nativeSrc":"10030:38:97","nodeType":"YulFunctionCall","src":"10030:38:97"},"nativeSrc":"10030:38:97","nodeType":"YulExpressionStatement","src":"10030:38:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10088:9:97","nodeType":"YulIdentifier","src":"10088:9:97"},{"kind":"number","nativeSrc":"10099:2:97","nodeType":"YulLiteral","src":"10099:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10084:3:97","nodeType":"YulIdentifier","src":"10084:3:97"},"nativeSrc":"10084:18:97","nodeType":"YulFunctionCall","src":"10084:18:97"},{"arguments":[{"name":"value1","nativeSrc":"10108:6:97","nodeType":"YulIdentifier","src":"10108:6:97"},{"kind":"number","nativeSrc":"10116:42:97","nodeType":"YulLiteral","src":"10116:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"10104:3:97","nodeType":"YulIdentifier","src":"10104:3:97"},"nativeSrc":"10104:55:97","nodeType":"YulFunctionCall","src":"10104:55:97"}],"functionName":{"name":"mstore","nativeSrc":"10077:6:97","nodeType":"YulIdentifier","src":"10077:6:97"},"nativeSrc":"10077:83:97","nodeType":"YulFunctionCall","src":"10077:83:97"},"nativeSrc":"10077:83:97","nodeType":"YulExpressionStatement","src":"10077:83:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10180:9:97","nodeType":"YulIdentifier","src":"10180:9:97"},{"kind":"number","nativeSrc":"10191:2:97","nodeType":"YulLiteral","src":"10191:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10176:3:97","nodeType":"YulIdentifier","src":"10176:3:97"},"nativeSrc":"10176:18:97","nodeType":"YulFunctionCall","src":"10176:18:97"},{"kind":"number","nativeSrc":"10196:3:97","nodeType":"YulLiteral","src":"10196:3:97","type":"","value":"160"}],"functionName":{"name":"mstore","nativeSrc":"10169:6:97","nodeType":"YulIdentifier","src":"10169:6:97"},"nativeSrc":"10169:31:97","nodeType":"YulFunctionCall","src":"10169:31:97"},"nativeSrc":"10169:31:97","nodeType":"YulExpressionStatement","src":"10169:31:97"},{"nativeSrc":"10209:76:97","nodeType":"YulVariableDeclaration","src":"10209:76:97","value":{"arguments":[{"name":"value2","nativeSrc":"10249:6:97","nodeType":"YulIdentifier","src":"10249:6:97"},{"name":"value3","nativeSrc":"10257:6:97","nodeType":"YulIdentifier","src":"10257:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"10269:9:97","nodeType":"YulIdentifier","src":"10269:9:97"},{"kind":"number","nativeSrc":"10280:3:97","nodeType":"YulLiteral","src":"10280:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"10265:3:97","nodeType":"YulIdentifier","src":"10265:3:97"},"nativeSrc":"10265:19:97","nodeType":"YulFunctionCall","src":"10265:19:97"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"10223:25:97","nodeType":"YulIdentifier","src":"10223:25:97"},"nativeSrc":"10223:62:97","nodeType":"YulFunctionCall","src":"10223:62:97"},"variables":[{"name":"tail_1","nativeSrc":"10213:6:97","nodeType":"YulTypedName","src":"10213:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10305:9:97","nodeType":"YulIdentifier","src":"10305:9:97"},{"kind":"number","nativeSrc":"10316:2:97","nodeType":"YulLiteral","src":"10316:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"10301:3:97","nodeType":"YulIdentifier","src":"10301:3:97"},"nativeSrc":"10301:18:97","nodeType":"YulFunctionCall","src":"10301:18:97"},{"arguments":[{"arguments":[{"name":"value4","nativeSrc":"10335:6:97","nodeType":"YulIdentifier","src":"10335:6:97"}],"functionName":{"name":"iszero","nativeSrc":"10328:6:97","nodeType":"YulIdentifier","src":"10328:6:97"},"nativeSrc":"10328:14:97","nodeType":"YulFunctionCall","src":"10328:14:97"}],"functionName":{"name":"iszero","nativeSrc":"10321:6:97","nodeType":"YulIdentifier","src":"10321:6:97"},"nativeSrc":"10321:22:97","nodeType":"YulFunctionCall","src":"10321:22:97"}],"functionName":{"name":"mstore","nativeSrc":"10294:6:97","nodeType":"YulIdentifier","src":"10294:6:97"},"nativeSrc":"10294:50:97","nodeType":"YulFunctionCall","src":"10294:50:97"},"nativeSrc":"10294:50:97","nodeType":"YulExpressionStatement","src":"10294:50:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10364:9:97","nodeType":"YulIdentifier","src":"10364:9:97"},{"kind":"number","nativeSrc":"10375:3:97","nodeType":"YulLiteral","src":"10375:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"10360:3:97","nodeType":"YulIdentifier","src":"10360:3:97"},"nativeSrc":"10360:19:97","nodeType":"YulFunctionCall","src":"10360:19:97"},{"arguments":[{"name":"tail_1","nativeSrc":"10385:6:97","nodeType":"YulIdentifier","src":"10385:6:97"},{"name":"headStart","nativeSrc":"10393:9:97","nodeType":"YulIdentifier","src":"10393:9:97"}],"functionName":{"name":"sub","nativeSrc":"10381:3:97","nodeType":"YulIdentifier","src":"10381:3:97"},"nativeSrc":"10381:22:97","nodeType":"YulFunctionCall","src":"10381:22:97"}],"functionName":{"name":"mstore","nativeSrc":"10353:6:97","nodeType":"YulIdentifier","src":"10353:6:97"},"nativeSrc":"10353:51:97","nodeType":"YulFunctionCall","src":"10353:51:97"},"nativeSrc":"10353:51:97","nodeType":"YulExpressionStatement","src":"10353:51:97"},{"nativeSrc":"10413:57:97","nodeType":"YulAssignment","src":"10413:57:97","value":{"arguments":[{"name":"value5","nativeSrc":"10447:6:97","nodeType":"YulIdentifier","src":"10447:6:97"},{"name":"value6","nativeSrc":"10455:6:97","nodeType":"YulIdentifier","src":"10455:6:97"},{"name":"tail_1","nativeSrc":"10463:6:97","nodeType":"YulIdentifier","src":"10463:6:97"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"10421:25:97","nodeType":"YulIdentifier","src":"10421:25:97"},"nativeSrc":"10421:49:97","nodeType":"YulFunctionCall","src":"10421:49:97"},"variableNames":[{"name":"tail","nativeSrc":"10413:4:97","nodeType":"YulIdentifier","src":"10413:4:97"}]}]},"name":"abi_encode_tuple_t_uint16_t_address_t_bytes_calldata_ptr_t_bool_t_bytes_calldata_ptr__to_t_uint16_t_address_t_bytes_memory_ptr_t_bool_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"9759:717:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9941:9:97","nodeType":"YulTypedName","src":"9941:9:97","type":""},{"name":"value6","nativeSrc":"9952:6:97","nodeType":"YulTypedName","src":"9952:6:97","type":""},{"name":"value5","nativeSrc":"9960:6:97","nodeType":"YulTypedName","src":"9960:6:97","type":""},{"name":"value4","nativeSrc":"9968:6:97","nodeType":"YulTypedName","src":"9968:6:97","type":""},{"name":"value3","nativeSrc":"9976:6:97","nodeType":"YulTypedName","src":"9976:6:97","type":""},{"name":"value2","nativeSrc":"9984:6:97","nodeType":"YulTypedName","src":"9984:6:97","type":""},{"name":"value1","nativeSrc":"9992:6:97","nodeType":"YulTypedName","src":"9992:6:97","type":""},{"name":"value0","nativeSrc":"10000:6:97","nodeType":"YulTypedName","src":"10000:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10011:4:97","nodeType":"YulTypedName","src":"10011:4:97","type":""}],"src":"9759:717:97"},{"body":{"nativeSrc":"10579:147:97","nodeType":"YulBlock","src":"10579:147:97","statements":[{"body":{"nativeSrc":"10625:16:97","nodeType":"YulBlock","src":"10625:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10634:1:97","nodeType":"YulLiteral","src":"10634:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"10637:1:97","nodeType":"YulLiteral","src":"10637:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10627:6:97","nodeType":"YulIdentifier","src":"10627:6:97"},"nativeSrc":"10627:12:97","nodeType":"YulFunctionCall","src":"10627:12:97"},"nativeSrc":"10627:12:97","nodeType":"YulExpressionStatement","src":"10627:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10600:7:97","nodeType":"YulIdentifier","src":"10600:7:97"},{"name":"headStart","nativeSrc":"10609:9:97","nodeType":"YulIdentifier","src":"10609:9:97"}],"functionName":{"name":"sub","nativeSrc":"10596:3:97","nodeType":"YulIdentifier","src":"10596:3:97"},"nativeSrc":"10596:23:97","nodeType":"YulFunctionCall","src":"10596:23:97"},{"kind":"number","nativeSrc":"10621:2:97","nodeType":"YulLiteral","src":"10621:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"10592:3:97","nodeType":"YulIdentifier","src":"10592:3:97"},"nativeSrc":"10592:32:97","nodeType":"YulFunctionCall","src":"10592:32:97"},"nativeSrc":"10589:52:97","nodeType":"YulIf","src":"10589:52:97"},{"nativeSrc":"10650:26:97","nodeType":"YulAssignment","src":"10650:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"10666:9:97","nodeType":"YulIdentifier","src":"10666:9:97"}],"functionName":{"name":"mload","nativeSrc":"10660:5:97","nodeType":"YulIdentifier","src":"10660:5:97"},"nativeSrc":"10660:16:97","nodeType":"YulFunctionCall","src":"10660:16:97"},"variableNames":[{"name":"value0","nativeSrc":"10650:6:97","nodeType":"YulIdentifier","src":"10650:6:97"}]},{"nativeSrc":"10685:35:97","nodeType":"YulAssignment","src":"10685:35:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10705:9:97","nodeType":"YulIdentifier","src":"10705:9:97"},{"kind":"number","nativeSrc":"10716:2:97","nodeType":"YulLiteral","src":"10716:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10701:3:97","nodeType":"YulIdentifier","src":"10701:3:97"},"nativeSrc":"10701:18:97","nodeType":"YulFunctionCall","src":"10701:18:97"}],"functionName":{"name":"mload","nativeSrc":"10695:5:97","nodeType":"YulIdentifier","src":"10695:5:97"},"nativeSrc":"10695:25:97","nodeType":"YulFunctionCall","src":"10695:25:97"},"variableNames":[{"name":"value1","nativeSrc":"10685:6:97","nodeType":"YulIdentifier","src":"10685:6:97"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256_fromMemory","nativeSrc":"10481:245:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10537:9:97","nodeType":"YulTypedName","src":"10537:9:97","type":""},{"name":"dataEnd","nativeSrc":"10548:7:97","nodeType":"YulTypedName","src":"10548:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10560:6:97","nodeType":"YulTypedName","src":"10560:6:97","type":""},{"name":"value1","nativeSrc":"10568:6:97","nodeType":"YulTypedName","src":"10568:6:97","type":""}],"src":"10481:245:97"},{"body":{"nativeSrc":"10786:382:97","nodeType":"YulBlock","src":"10786:382:97","statements":[{"nativeSrc":"10796:22:97","nodeType":"YulAssignment","src":"10796:22:97","value":{"arguments":[{"kind":"number","nativeSrc":"10810:1:97","nodeType":"YulLiteral","src":"10810:1:97","type":"","value":"1"},{"name":"data","nativeSrc":"10813:4:97","nodeType":"YulIdentifier","src":"10813:4:97"}],"functionName":{"name":"shr","nativeSrc":"10806:3:97","nodeType":"YulIdentifier","src":"10806:3:97"},"nativeSrc":"10806:12:97","nodeType":"YulFunctionCall","src":"10806:12:97"},"variableNames":[{"name":"length","nativeSrc":"10796:6:97","nodeType":"YulIdentifier","src":"10796:6:97"}]},{"nativeSrc":"10827:38:97","nodeType":"YulVariableDeclaration","src":"10827:38:97","value":{"arguments":[{"name":"data","nativeSrc":"10857:4:97","nodeType":"YulIdentifier","src":"10857:4:97"},{"kind":"number","nativeSrc":"10863:1:97","nodeType":"YulLiteral","src":"10863:1:97","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"10853:3:97","nodeType":"YulIdentifier","src":"10853:3:97"},"nativeSrc":"10853:12:97","nodeType":"YulFunctionCall","src":"10853:12:97"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"10831:18:97","nodeType":"YulTypedName","src":"10831:18:97","type":""}]},{"body":{"nativeSrc":"10904:31:97","nodeType":"YulBlock","src":"10904:31:97","statements":[{"nativeSrc":"10906:27:97","nodeType":"YulAssignment","src":"10906:27:97","value":{"arguments":[{"name":"length","nativeSrc":"10920:6:97","nodeType":"YulIdentifier","src":"10920:6:97"},{"kind":"number","nativeSrc":"10928:4:97","nodeType":"YulLiteral","src":"10928:4:97","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"10916:3:97","nodeType":"YulIdentifier","src":"10916:3:97"},"nativeSrc":"10916:17:97","nodeType":"YulFunctionCall","src":"10916:17:97"},"variableNames":[{"name":"length","nativeSrc":"10906:6:97","nodeType":"YulIdentifier","src":"10906:6:97"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"10884:18:97","nodeType":"YulIdentifier","src":"10884:18:97"}],"functionName":{"name":"iszero","nativeSrc":"10877:6:97","nodeType":"YulIdentifier","src":"10877:6:97"},"nativeSrc":"10877:26:97","nodeType":"YulFunctionCall","src":"10877:26:97"},"nativeSrc":"10874:61:97","nodeType":"YulIf","src":"10874:61:97"},{"body":{"nativeSrc":"10994:168:97","nodeType":"YulBlock","src":"10994:168:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11015:1:97","nodeType":"YulLiteral","src":"11015:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"11018:77:97","nodeType":"YulLiteral","src":"11018:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"11008:6:97","nodeType":"YulIdentifier","src":"11008:6:97"},"nativeSrc":"11008:88:97","nodeType":"YulFunctionCall","src":"11008:88:97"},"nativeSrc":"11008:88:97","nodeType":"YulExpressionStatement","src":"11008:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11116:1:97","nodeType":"YulLiteral","src":"11116:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"11119:4:97","nodeType":"YulLiteral","src":"11119:4:97","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"11109:6:97","nodeType":"YulIdentifier","src":"11109:6:97"},"nativeSrc":"11109:15:97","nodeType":"YulFunctionCall","src":"11109:15:97"},"nativeSrc":"11109:15:97","nodeType":"YulExpressionStatement","src":"11109:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11144:1:97","nodeType":"YulLiteral","src":"11144:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"11147:4:97","nodeType":"YulLiteral","src":"11147:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"11137:6:97","nodeType":"YulIdentifier","src":"11137:6:97"},"nativeSrc":"11137:15:97","nodeType":"YulFunctionCall","src":"11137:15:97"},"nativeSrc":"11137:15:97","nodeType":"YulExpressionStatement","src":"11137:15:97"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"10950:18:97","nodeType":"YulIdentifier","src":"10950:18:97"},{"arguments":[{"name":"length","nativeSrc":"10973:6:97","nodeType":"YulIdentifier","src":"10973:6:97"},{"kind":"number","nativeSrc":"10981:2:97","nodeType":"YulLiteral","src":"10981:2:97","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"10970:2:97","nodeType":"YulIdentifier","src":"10970:2:97"},"nativeSrc":"10970:14:97","nodeType":"YulFunctionCall","src":"10970:14:97"}],"functionName":{"name":"eq","nativeSrc":"10947:2:97","nodeType":"YulIdentifier","src":"10947:2:97"},"nativeSrc":"10947:38:97","nodeType":"YulFunctionCall","src":"10947:38:97"},"nativeSrc":"10944:218:97","nodeType":"YulIf","src":"10944:218:97"}]},"name":"extract_byte_array_length","nativeSrc":"10731:437:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"10766:4:97","nodeType":"YulTypedName","src":"10766:4:97","type":""}],"returnVariables":[{"name":"length","nativeSrc":"10775:6:97","nodeType":"YulTypedName","src":"10775:6:97","type":""}],"src":"10731:437:97"},{"body":{"nativeSrc":"11347:239:97","nodeType":"YulBlock","src":"11347:239:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"11364:9:97","nodeType":"YulIdentifier","src":"11364:9:97"},{"kind":"number","nativeSrc":"11375:2:97","nodeType":"YulLiteral","src":"11375:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"11357:6:97","nodeType":"YulIdentifier","src":"11357:6:97"},"nativeSrc":"11357:21:97","nodeType":"YulFunctionCall","src":"11357:21:97"},"nativeSrc":"11357:21:97","nodeType":"YulExpressionStatement","src":"11357:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11398:9:97","nodeType":"YulIdentifier","src":"11398:9:97"},{"kind":"number","nativeSrc":"11409:2:97","nodeType":"YulLiteral","src":"11409:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11394:3:97","nodeType":"YulIdentifier","src":"11394:3:97"},"nativeSrc":"11394:18:97","nodeType":"YulFunctionCall","src":"11394:18:97"},{"kind":"number","nativeSrc":"11414:2:97","nodeType":"YulLiteral","src":"11414:2:97","type":"","value":"49"}],"functionName":{"name":"mstore","nativeSrc":"11387:6:97","nodeType":"YulIdentifier","src":"11387:6:97"},"nativeSrc":"11387:30:97","nodeType":"YulFunctionCall","src":"11387:30:97"},"nativeSrc":"11387:30:97","nodeType":"YulExpressionStatement","src":"11387:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11437:9:97","nodeType":"YulIdentifier","src":"11437:9:97"},{"kind":"number","nativeSrc":"11448:2:97","nodeType":"YulLiteral","src":"11448:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11433:3:97","nodeType":"YulIdentifier","src":"11433:3:97"},"nativeSrc":"11433:18:97","nodeType":"YulFunctionCall","src":"11433:18:97"},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a2074727573746564","kind":"string","nativeSrc":"11453:34:97","nodeType":"YulLiteral","src":"11453:34:97","type":"","value":"OmnichainProposalSender: trusted"}],"functionName":{"name":"mstore","nativeSrc":"11426:6:97","nodeType":"YulIdentifier","src":"11426:6:97"},"nativeSrc":"11426:62:97","nodeType":"YulFunctionCall","src":"11426:62:97"},"nativeSrc":"11426:62:97","nodeType":"YulExpressionStatement","src":"11426:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11508:9:97","nodeType":"YulIdentifier","src":"11508:9:97"},{"kind":"number","nativeSrc":"11519:2:97","nodeType":"YulLiteral","src":"11519:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11504:3:97","nodeType":"YulIdentifier","src":"11504:3:97"},"nativeSrc":"11504:18:97","nodeType":"YulFunctionCall","src":"11504:18:97"},{"hexValue":"2072656d6f7465206e6f7420666f756e64","kind":"string","nativeSrc":"11524:19:97","nodeType":"YulLiteral","src":"11524:19:97","type":"","value":" remote not found"}],"functionName":{"name":"mstore","nativeSrc":"11497:6:97","nodeType":"YulIdentifier","src":"11497:6:97"},"nativeSrc":"11497:47:97","nodeType":"YulFunctionCall","src":"11497:47:97"},"nativeSrc":"11497:47:97","nodeType":"YulExpressionStatement","src":"11497:47:97"},{"nativeSrc":"11553:27:97","nodeType":"YulAssignment","src":"11553:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"11565:9:97","nodeType":"YulIdentifier","src":"11565:9:97"},{"kind":"number","nativeSrc":"11576:3:97","nodeType":"YulLiteral","src":"11576:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"11561:3:97","nodeType":"YulIdentifier","src":"11561:3:97"},"nativeSrc":"11561:19:97","nodeType":"YulFunctionCall","src":"11561:19:97"},"variableNames":[{"name":"tail","nativeSrc":"11553:4:97","nodeType":"YulIdentifier","src":"11553:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_fb6f40981fe5a22463da4d402f5b2d8f9dbbf83560ebbdd44591d6544b346e53__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11173:413:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11324:9:97","nodeType":"YulTypedName","src":"11324:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11338:4:97","nodeType":"YulTypedName","src":"11338:4:97","type":""}],"src":"11173:413:97"},{"body":{"nativeSrc":"11765:236:97","nodeType":"YulBlock","src":"11765:236:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"11782:9:97","nodeType":"YulIdentifier","src":"11782:9:97"},{"kind":"number","nativeSrc":"11793:2:97","nodeType":"YulLiteral","src":"11793:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"11775:6:97","nodeType":"YulIdentifier","src":"11775:6:97"},"nativeSrc":"11775:21:97","nodeType":"YulFunctionCall","src":"11775:21:97"},"nativeSrc":"11775:21:97","nodeType":"YulExpressionStatement","src":"11775:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11816:9:97","nodeType":"YulIdentifier","src":"11816:9:97"},{"kind":"number","nativeSrc":"11827:2:97","nodeType":"YulLiteral","src":"11827:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11812:3:97","nodeType":"YulIdentifier","src":"11812:3:97"},"nativeSrc":"11812:18:97","nodeType":"YulFunctionCall","src":"11812:18:97"},{"kind":"number","nativeSrc":"11832:2:97","nodeType":"YulLiteral","src":"11832:2:97","type":"","value":"46"}],"functionName":{"name":"mstore","nativeSrc":"11805:6:97","nodeType":"YulIdentifier","src":"11805:6:97"},"nativeSrc":"11805:30:97","nodeType":"YulFunctionCall","src":"11805:30:97"},"nativeSrc":"11805:30:97","nodeType":"YulExpressionStatement","src":"11805:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11855:9:97","nodeType":"YulIdentifier","src":"11855:9:97"},{"kind":"number","nativeSrc":"11866:2:97","nodeType":"YulLiteral","src":"11866:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11851:3:97","nodeType":"YulIdentifier","src":"11851:3:97"},"nativeSrc":"11851:18:97","nodeType":"YulFunctionCall","src":"11851:18:97"},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a20696e76616c6964","kind":"string","nativeSrc":"11871:34:97","nodeType":"YulLiteral","src":"11871:34:97","type":"","value":"OmnichainProposalSender: invalid"}],"functionName":{"name":"mstore","nativeSrc":"11844:6:97","nodeType":"YulIdentifier","src":"11844:6:97"},"nativeSrc":"11844:62:97","nodeType":"YulFunctionCall","src":"11844:62:97"},"nativeSrc":"11844:62:97","nodeType":"YulExpressionStatement","src":"11844:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11926:9:97","nodeType":"YulIdentifier","src":"11926:9:97"},{"kind":"number","nativeSrc":"11937:2:97","nodeType":"YulLiteral","src":"11937:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11922:3:97","nodeType":"YulIdentifier","src":"11922:3:97"},"nativeSrc":"11922:18:97","nodeType":"YulFunctionCall","src":"11922:18:97"},{"hexValue":"206e617469766520616d6f756e74","kind":"string","nativeSrc":"11942:16:97","nodeType":"YulLiteral","src":"11942:16:97","type":"","value":" native amount"}],"functionName":{"name":"mstore","nativeSrc":"11915:6:97","nodeType":"YulIdentifier","src":"11915:6:97"},"nativeSrc":"11915:44:97","nodeType":"YulFunctionCall","src":"11915:44:97"},"nativeSrc":"11915:44:97","nodeType":"YulExpressionStatement","src":"11915:44:97"},{"nativeSrc":"11968:27:97","nodeType":"YulAssignment","src":"11968:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"11980:9:97","nodeType":"YulIdentifier","src":"11980:9:97"},{"kind":"number","nativeSrc":"11991:3:97","nodeType":"YulLiteral","src":"11991:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"11976:3:97","nodeType":"YulIdentifier","src":"11976:3:97"},"nativeSrc":"11976:19:97","nodeType":"YulFunctionCall","src":"11976:19:97"},"variableNames":[{"name":"tail","nativeSrc":"11968:4:97","nodeType":"YulIdentifier","src":"11968:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_232124683b132441e662395a64e30551728c0a15d01f6ff2dd9080f88729b51d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11591:410:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11742:9:97","nodeType":"YulTypedName","src":"11742:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11756:4:97","nodeType":"YulTypedName","src":"11756:4:97","type":""}],"src":"11591:410:97"},{"body":{"nativeSrc":"12180:228:97","nodeType":"YulBlock","src":"12180:228:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"12197:9:97","nodeType":"YulIdentifier","src":"12197:9:97"},{"kind":"number","nativeSrc":"12208:2:97","nodeType":"YulLiteral","src":"12208:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"12190:6:97","nodeType":"YulIdentifier","src":"12190:6:97"},"nativeSrc":"12190:21:97","nodeType":"YulFunctionCall","src":"12190:21:97"},"nativeSrc":"12190:21:97","nodeType":"YulExpressionStatement","src":"12190:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12231:9:97","nodeType":"YulIdentifier","src":"12231:9:97"},{"kind":"number","nativeSrc":"12242:2:97","nodeType":"YulLiteral","src":"12242:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12227:3:97","nodeType":"YulIdentifier","src":"12227:3:97"},"nativeSrc":"12227:18:97","nodeType":"YulFunctionCall","src":"12227:18:97"},{"kind":"number","nativeSrc":"12247:2:97","nodeType":"YulLiteral","src":"12247:2:97","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"12220:6:97","nodeType":"YulIdentifier","src":"12220:6:97"},"nativeSrc":"12220:30:97","nodeType":"YulFunctionCall","src":"12220:30:97"},"nativeSrc":"12220:30:97","nodeType":"YulExpressionStatement","src":"12220:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12270:9:97","nodeType":"YulIdentifier","src":"12270:9:97"},{"kind":"number","nativeSrc":"12281:2:97","nodeType":"YulLiteral","src":"12281:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12266:3:97","nodeType":"YulIdentifier","src":"12266:3:97"},"nativeSrc":"12266:18:97","nodeType":"YulFunctionCall","src":"12266:18:97"},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a20656d7074792070","kind":"string","nativeSrc":"12286:34:97","nodeType":"YulLiteral","src":"12286:34:97","type":"","value":"OmnichainProposalSender: empty p"}],"functionName":{"name":"mstore","nativeSrc":"12259:6:97","nodeType":"YulIdentifier","src":"12259:6:97"},"nativeSrc":"12259:62:97","nodeType":"YulFunctionCall","src":"12259:62:97"},"nativeSrc":"12259:62:97","nodeType":"YulExpressionStatement","src":"12259:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12341:9:97","nodeType":"YulIdentifier","src":"12341:9:97"},{"kind":"number","nativeSrc":"12352:2:97","nodeType":"YulLiteral","src":"12352:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12337:3:97","nodeType":"YulIdentifier","src":"12337:3:97"},"nativeSrc":"12337:18:97","nodeType":"YulFunctionCall","src":"12337:18:97"},{"hexValue":"61796c6f6164","kind":"string","nativeSrc":"12357:8:97","nodeType":"YulLiteral","src":"12357:8:97","type":"","value":"ayload"}],"functionName":{"name":"mstore","nativeSrc":"12330:6:97","nodeType":"YulIdentifier","src":"12330:6:97"},"nativeSrc":"12330:36:97","nodeType":"YulFunctionCall","src":"12330:36:97"},"nativeSrc":"12330:36:97","nodeType":"YulExpressionStatement","src":"12330:36:97"},{"nativeSrc":"12375:27:97","nodeType":"YulAssignment","src":"12375:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"12387:9:97","nodeType":"YulIdentifier","src":"12387:9:97"},{"kind":"number","nativeSrc":"12398:3:97","nodeType":"YulLiteral","src":"12398:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"12383:3:97","nodeType":"YulIdentifier","src":"12383:3:97"},"nativeSrc":"12383:19:97","nodeType":"YulFunctionCall","src":"12383:19:97"},"variableNames":[{"name":"tail","nativeSrc":"12375:4:97","nodeType":"YulIdentifier","src":"12375:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_b4b52b7d4888c17cd61b7d072c8bae52af7ec4fe5cc936af361e359d49845e55__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12006:402:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12157:9:97","nodeType":"YulTypedName","src":"12157:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12171:4:97","nodeType":"YulTypedName","src":"12171:4:97","type":""}],"src":"12006:402:97"},{"body":{"nativeSrc":"12587:232:97","nodeType":"YulBlock","src":"12587:232:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"12604:9:97","nodeType":"YulIdentifier","src":"12604:9:97"},{"kind":"number","nativeSrc":"12615:2:97","nodeType":"YulLiteral","src":"12615:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"12597:6:97","nodeType":"YulIdentifier","src":"12597:6:97"},"nativeSrc":"12597:21:97","nodeType":"YulFunctionCall","src":"12597:21:97"},"nativeSrc":"12597:21:97","nodeType":"YulExpressionStatement","src":"12597:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12638:9:97","nodeType":"YulIdentifier","src":"12638:9:97"},{"kind":"number","nativeSrc":"12649:2:97","nodeType":"YulLiteral","src":"12649:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12634:3:97","nodeType":"YulIdentifier","src":"12634:3:97"},"nativeSrc":"12634:18:97","nodeType":"YulFunctionCall","src":"12634:18:97"},{"kind":"number","nativeSrc":"12654:2:97","nodeType":"YulLiteral","src":"12654:2:97","type":"","value":"42"}],"functionName":{"name":"mstore","nativeSrc":"12627:6:97","nodeType":"YulIdentifier","src":"12627:6:97"},"nativeSrc":"12627:30:97","nodeType":"YulFunctionCall","src":"12627:30:97"},"nativeSrc":"12627:30:97","nodeType":"YulExpressionStatement","src":"12627:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12677:9:97","nodeType":"YulIdentifier","src":"12677:9:97"},{"kind":"number","nativeSrc":"12688:2:97","nodeType":"YulLiteral","src":"12688:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12673:3:97","nodeType":"YulIdentifier","src":"12673:3:97"},"nativeSrc":"12673:18:97","nodeType":"YulFunctionCall","src":"12673:18:97"},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a206e6f2073746f72","kind":"string","nativeSrc":"12693:34:97","nodeType":"YulLiteral","src":"12693:34:97","type":"","value":"OmnichainProposalSender: no stor"}],"functionName":{"name":"mstore","nativeSrc":"12666:6:97","nodeType":"YulIdentifier","src":"12666:6:97"},"nativeSrc":"12666:62:97","nodeType":"YulFunctionCall","src":"12666:62:97"},"nativeSrc":"12666:62:97","nodeType":"YulExpressionStatement","src":"12666:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12748:9:97","nodeType":"YulIdentifier","src":"12748:9:97"},{"kind":"number","nativeSrc":"12759:2:97","nodeType":"YulLiteral","src":"12759:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12744:3:97","nodeType":"YulIdentifier","src":"12744:3:97"},"nativeSrc":"12744:18:97","nodeType":"YulFunctionCall","src":"12744:18:97"},{"hexValue":"6564207061796c6f6164","kind":"string","nativeSrc":"12764:12:97","nodeType":"YulLiteral","src":"12764:12:97","type":"","value":"ed payload"}],"functionName":{"name":"mstore","nativeSrc":"12737:6:97","nodeType":"YulIdentifier","src":"12737:6:97"},"nativeSrc":"12737:40:97","nodeType":"YulFunctionCall","src":"12737:40:97"},"nativeSrc":"12737:40:97","nodeType":"YulExpressionStatement","src":"12737:40:97"},{"nativeSrc":"12786:27:97","nodeType":"YulAssignment","src":"12786:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"12798:9:97","nodeType":"YulIdentifier","src":"12798:9:97"},{"kind":"number","nativeSrc":"12809:3:97","nodeType":"YulLiteral","src":"12809:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"12794:3:97","nodeType":"YulIdentifier","src":"12794:3:97"},"nativeSrc":"12794:19:97","nodeType":"YulFunctionCall","src":"12794:19:97"},"variableNames":[{"name":"tail","nativeSrc":"12786:4:97","nodeType":"YulIdentifier","src":"12786:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_f2dee99a91d995c8e88710507d1b85f55e19c65efb5b25670813dd22d63ba09d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12413:406:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12564:9:97","nodeType":"YulTypedName","src":"12564:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12578:4:97","nodeType":"YulTypedName","src":"12578:4:97","type":""}],"src":"12413:406:97"},{"body":{"nativeSrc":"13063:347:97","nodeType":"YulBlock","src":"13063:347:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13080:9:97","nodeType":"YulIdentifier","src":"13080:9:97"},{"arguments":[{"name":"value0","nativeSrc":"13095:6:97","nodeType":"YulIdentifier","src":"13095:6:97"},{"kind":"number","nativeSrc":"13103:6:97","nodeType":"YulLiteral","src":"13103:6:97","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"13091:3:97","nodeType":"YulIdentifier","src":"13091:3:97"},"nativeSrc":"13091:19:97","nodeType":"YulFunctionCall","src":"13091:19:97"}],"functionName":{"name":"mstore","nativeSrc":"13073:6:97","nodeType":"YulIdentifier","src":"13073:6:97"},"nativeSrc":"13073:38:97","nodeType":"YulFunctionCall","src":"13073:38:97"},"nativeSrc":"13073:38:97","nodeType":"YulExpressionStatement","src":"13073:38:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13131:9:97","nodeType":"YulIdentifier","src":"13131:9:97"},{"kind":"number","nativeSrc":"13142:2:97","nodeType":"YulLiteral","src":"13142:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13127:3:97","nodeType":"YulIdentifier","src":"13127:3:97"},"nativeSrc":"13127:18:97","nodeType":"YulFunctionCall","src":"13127:18:97"},{"kind":"number","nativeSrc":"13147:3:97","nodeType":"YulLiteral","src":"13147:3:97","type":"","value":"128"}],"functionName":{"name":"mstore","nativeSrc":"13120:6:97","nodeType":"YulIdentifier","src":"13120:6:97"},"nativeSrc":"13120:31:97","nodeType":"YulFunctionCall","src":"13120:31:97"},"nativeSrc":"13120:31:97","nodeType":"YulExpressionStatement","src":"13120:31:97"},{"nativeSrc":"13160:76:97","nodeType":"YulVariableDeclaration","src":"13160:76:97","value":{"arguments":[{"name":"value1","nativeSrc":"13200:6:97","nodeType":"YulIdentifier","src":"13200:6:97"},{"name":"value2","nativeSrc":"13208:6:97","nodeType":"YulIdentifier","src":"13208:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"13220:9:97","nodeType":"YulIdentifier","src":"13220:9:97"},{"kind":"number","nativeSrc":"13231:3:97","nodeType":"YulLiteral","src":"13231:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"13216:3:97","nodeType":"YulIdentifier","src":"13216:3:97"},"nativeSrc":"13216:19:97","nodeType":"YulFunctionCall","src":"13216:19:97"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"13174:25:97","nodeType":"YulIdentifier","src":"13174:25:97"},"nativeSrc":"13174:62:97","nodeType":"YulFunctionCall","src":"13174:62:97"},"variables":[{"name":"tail_1","nativeSrc":"13164:6:97","nodeType":"YulTypedName","src":"13164:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13256:9:97","nodeType":"YulIdentifier","src":"13256:9:97"},{"kind":"number","nativeSrc":"13267:2:97","nodeType":"YulLiteral","src":"13267:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13252:3:97","nodeType":"YulIdentifier","src":"13252:3:97"},"nativeSrc":"13252:18:97","nodeType":"YulFunctionCall","src":"13252:18:97"},{"arguments":[{"name":"tail_1","nativeSrc":"13276:6:97","nodeType":"YulIdentifier","src":"13276:6:97"},{"name":"headStart","nativeSrc":"13284:9:97","nodeType":"YulIdentifier","src":"13284:9:97"}],"functionName":{"name":"sub","nativeSrc":"13272:3:97","nodeType":"YulIdentifier","src":"13272:3:97"},"nativeSrc":"13272:22:97","nodeType":"YulFunctionCall","src":"13272:22:97"}],"functionName":{"name":"mstore","nativeSrc":"13245:6:97","nodeType":"YulIdentifier","src":"13245:6:97"},"nativeSrc":"13245:50:97","nodeType":"YulFunctionCall","src":"13245:50:97"},"nativeSrc":"13245:50:97","nodeType":"YulExpressionStatement","src":"13245:50:97"},{"nativeSrc":"13304:57:97","nodeType":"YulAssignment","src":"13304:57:97","value":{"arguments":[{"name":"value3","nativeSrc":"13338:6:97","nodeType":"YulIdentifier","src":"13338:6:97"},{"name":"value4","nativeSrc":"13346:6:97","nodeType":"YulIdentifier","src":"13346:6:97"},{"name":"tail_1","nativeSrc":"13354:6:97","nodeType":"YulIdentifier","src":"13354:6:97"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"13312:25:97","nodeType":"YulIdentifier","src":"13312:25:97"},"nativeSrc":"13312:49:97","nodeType":"YulFunctionCall","src":"13312:49:97"},"variableNames":[{"name":"tail","nativeSrc":"13304:4:97","nodeType":"YulIdentifier","src":"13304:4:97"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13381:9:97","nodeType":"YulIdentifier","src":"13381:9:97"},{"kind":"number","nativeSrc":"13392:2:97","nodeType":"YulLiteral","src":"13392:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"13377:3:97","nodeType":"YulIdentifier","src":"13377:3:97"},"nativeSrc":"13377:18:97","nodeType":"YulFunctionCall","src":"13377:18:97"},{"name":"value5","nativeSrc":"13397:6:97","nodeType":"YulIdentifier","src":"13397:6:97"}],"functionName":{"name":"mstore","nativeSrc":"13370:6:97","nodeType":"YulIdentifier","src":"13370:6:97"},"nativeSrc":"13370:34:97","nodeType":"YulFunctionCall","src":"13370:34:97"},"nativeSrc":"13370:34:97","nodeType":"YulExpressionStatement","src":"13370:34:97"}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_bytes_calldata_ptr_t_uint256__to_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed","nativeSrc":"12824:586:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12992:9:97","nodeType":"YulTypedName","src":"12992:9:97","type":""},{"name":"value5","nativeSrc":"13003:6:97","nodeType":"YulTypedName","src":"13003:6:97","type":""},{"name":"value4","nativeSrc":"13011:6:97","nodeType":"YulTypedName","src":"13011:6:97","type":""},{"name":"value3","nativeSrc":"13019:6:97","nodeType":"YulTypedName","src":"13019:6:97","type":""},{"name":"value2","nativeSrc":"13027:6:97","nodeType":"YulTypedName","src":"13027:6:97","type":""},{"name":"value1","nativeSrc":"13035:6:97","nodeType":"YulTypedName","src":"13035:6:97","type":""},{"name":"value0","nativeSrc":"13043:6:97","nodeType":"YulTypedName","src":"13043:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13054:4:97","nodeType":"YulTypedName","src":"13054:4:97","type":""}],"src":"12824:586:97"},{"body":{"nativeSrc":"13589:239:97","nodeType":"YulBlock","src":"13589:239:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13606:9:97","nodeType":"YulIdentifier","src":"13606:9:97"},{"kind":"number","nativeSrc":"13617:2:97","nodeType":"YulLiteral","src":"13617:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"13599:6:97","nodeType":"YulIdentifier","src":"13599:6:97"},"nativeSrc":"13599:21:97","nodeType":"YulFunctionCall","src":"13599:21:97"},"nativeSrc":"13599:21:97","nodeType":"YulExpressionStatement","src":"13599:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13640:9:97","nodeType":"YulIdentifier","src":"13640:9:97"},{"kind":"number","nativeSrc":"13651:2:97","nodeType":"YulLiteral","src":"13651:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13636:3:97","nodeType":"YulIdentifier","src":"13636:3:97"},"nativeSrc":"13636:18:97","nodeType":"YulFunctionCall","src":"13636:18:97"},{"kind":"number","nativeSrc":"13656:2:97","nodeType":"YulLiteral","src":"13656:2:97","type":"","value":"49"}],"functionName":{"name":"mstore","nativeSrc":"13629:6:97","nodeType":"YulIdentifier","src":"13629:6:97"},"nativeSrc":"13629:30:97","nodeType":"YulFunctionCall","src":"13629:30:97"},"nativeSrc":"13629:30:97","nodeType":"YulExpressionStatement","src":"13629:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13679:9:97","nodeType":"YulIdentifier","src":"13679:9:97"},{"kind":"number","nativeSrc":"13690:2:97","nodeType":"YulLiteral","src":"13690:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13675:3:97","nodeType":"YulIdentifier","src":"13675:3:97"},"nativeSrc":"13675:18:97","nodeType":"YulFunctionCall","src":"13675:18:97"},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a20696e76616c6964","kind":"string","nativeSrc":"13695:34:97","nodeType":"YulLiteral","src":"13695:34:97","type":"","value":"OmnichainProposalSender: invalid"}],"functionName":{"name":"mstore","nativeSrc":"13668:6:97","nodeType":"YulIdentifier","src":"13668:6:97"},"nativeSrc":"13668:62:97","nodeType":"YulFunctionCall","src":"13668:62:97"},"nativeSrc":"13668:62:97","nodeType":"YulExpressionStatement","src":"13668:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13750:9:97","nodeType":"YulIdentifier","src":"13750:9:97"},{"kind":"number","nativeSrc":"13761:2:97","nodeType":"YulLiteral","src":"13761:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"13746:3:97","nodeType":"YulIdentifier","src":"13746:3:97"},"nativeSrc":"13746:18:97","nodeType":"YulFunctionCall","src":"13746:18:97"},{"hexValue":"20657865637574696f6e20706172616d73","kind":"string","nativeSrc":"13766:19:97","nodeType":"YulLiteral","src":"13766:19:97","type":"","value":" execution params"}],"functionName":{"name":"mstore","nativeSrc":"13739:6:97","nodeType":"YulIdentifier","src":"13739:6:97"},"nativeSrc":"13739:47:97","nodeType":"YulFunctionCall","src":"13739:47:97"},"nativeSrc":"13739:47:97","nodeType":"YulExpressionStatement","src":"13739:47:97"},{"nativeSrc":"13795:27:97","nodeType":"YulAssignment","src":"13795:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"13807:9:97","nodeType":"YulIdentifier","src":"13807:9:97"},{"kind":"number","nativeSrc":"13818:3:97","nodeType":"YulLiteral","src":"13818:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"13803:3:97","nodeType":"YulIdentifier","src":"13803:3:97"},"nativeSrc":"13803:19:97","nodeType":"YulFunctionCall","src":"13803:19:97"},"variableNames":[{"name":"tail","nativeSrc":"13795:4:97","nodeType":"YulIdentifier","src":"13795:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_8358903084c88ef15210bf333ef998ba2611eed32c9f09d8b5a82883806d1286__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"13415:413:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13566:9:97","nodeType":"YulTypedName","src":"13566:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13580:4:97","nodeType":"YulTypedName","src":"13580:4:97","type":""}],"src":"13415:413:97"},{"body":{"nativeSrc":"14024:14:97","nodeType":"YulBlock","src":"14024:14:97","statements":[{"nativeSrc":"14026:10:97","nodeType":"YulAssignment","src":"14026:10:97","value":{"name":"pos","nativeSrc":"14033:3:97","nodeType":"YulIdentifier","src":"14033:3:97"},"variableNames":[{"name":"end","nativeSrc":"14026:3:97","nodeType":"YulIdentifier","src":"14026:3:97"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"13833:205:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"14008:3:97","nodeType":"YulTypedName","src":"14008:3:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"14016:3:97","nodeType":"YulTypedName","src":"14016:3:97","type":""}],"src":"13833:205:97"},{"body":{"nativeSrc":"14217:161:97","nodeType":"YulBlock","src":"14217:161:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"14234:9:97","nodeType":"YulIdentifier","src":"14234:9:97"},{"kind":"number","nativeSrc":"14245:2:97","nodeType":"YulLiteral","src":"14245:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"14227:6:97","nodeType":"YulIdentifier","src":"14227:6:97"},"nativeSrc":"14227:21:97","nodeType":"YulFunctionCall","src":"14227:21:97"},"nativeSrc":"14227:21:97","nodeType":"YulExpressionStatement","src":"14227:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14268:9:97","nodeType":"YulIdentifier","src":"14268:9:97"},{"kind":"number","nativeSrc":"14279:2:97","nodeType":"YulLiteral","src":"14279:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14264:3:97","nodeType":"YulIdentifier","src":"14264:3:97"},"nativeSrc":"14264:18:97","nodeType":"YulFunctionCall","src":"14264:18:97"},{"kind":"number","nativeSrc":"14284:2:97","nodeType":"YulLiteral","src":"14284:2:97","type":"","value":"11"}],"functionName":{"name":"mstore","nativeSrc":"14257:6:97","nodeType":"YulIdentifier","src":"14257:6:97"},"nativeSrc":"14257:30:97","nodeType":"YulFunctionCall","src":"14257:30:97"},"nativeSrc":"14257:30:97","nodeType":"YulExpressionStatement","src":"14257:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14307:9:97","nodeType":"YulIdentifier","src":"14307:9:97"},{"kind":"number","nativeSrc":"14318:2:97","nodeType":"YulLiteral","src":"14318:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14303:3:97","nodeType":"YulIdentifier","src":"14303:3:97"},"nativeSrc":"14303:18:97","nodeType":"YulFunctionCall","src":"14303:18:97"},{"hexValue":"43616c6c206661696c6564","kind":"string","nativeSrc":"14323:13:97","nodeType":"YulLiteral","src":"14323:13:97","type":"","value":"Call failed"}],"functionName":{"name":"mstore","nativeSrc":"14296:6:97","nodeType":"YulIdentifier","src":"14296:6:97"},"nativeSrc":"14296:41:97","nodeType":"YulFunctionCall","src":"14296:41:97"},"nativeSrc":"14296:41:97","nodeType":"YulExpressionStatement","src":"14296:41:97"},{"nativeSrc":"14346:26:97","nodeType":"YulAssignment","src":"14346:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"14358:9:97","nodeType":"YulIdentifier","src":"14358:9:97"},{"kind":"number","nativeSrc":"14369:2:97","nodeType":"YulLiteral","src":"14369:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"14354:3:97","nodeType":"YulIdentifier","src":"14354:3:97"},"nativeSrc":"14354:18:97","nodeType":"YulFunctionCall","src":"14354:18:97"},"variableNames":[{"name":"tail","nativeSrc":"14346:4:97","nodeType":"YulIdentifier","src":"14346:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_066ad49a0ed9e5d6a9f3c20fca13a038f0a5d629f0aaf09d634ae2a7c232ac2b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"14043:335:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14194:9:97","nodeType":"YulTypedName","src":"14194:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14208:4:97","nodeType":"YulTypedName","src":"14208:4:97","type":""}],"src":"14043:335:97"},{"body":{"nativeSrc":"14557:235:97","nodeType":"YulBlock","src":"14557:235:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"14574:9:97","nodeType":"YulIdentifier","src":"14574:9:97"},{"kind":"number","nativeSrc":"14585:2:97","nodeType":"YulLiteral","src":"14585:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"14567:6:97","nodeType":"YulIdentifier","src":"14567:6:97"},"nativeSrc":"14567:21:97","nodeType":"YulFunctionCall","src":"14567:21:97"},"nativeSrc":"14567:21:97","nodeType":"YulExpressionStatement","src":"14567:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14608:9:97","nodeType":"YulIdentifier","src":"14608:9:97"},{"kind":"number","nativeSrc":"14619:2:97","nodeType":"YulLiteral","src":"14619:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14604:3:97","nodeType":"YulIdentifier","src":"14604:3:97"},"nativeSrc":"14604:18:97","nodeType":"YulFunctionCall","src":"14604:18:97"},{"kind":"number","nativeSrc":"14624:2:97","nodeType":"YulLiteral","src":"14624:2:97","type":"","value":"45"}],"functionName":{"name":"mstore","nativeSrc":"14597:6:97","nodeType":"YulIdentifier","src":"14597:6:97"},"nativeSrc":"14597:30:97","nodeType":"YulFunctionCall","src":"14597:30:97"},"nativeSrc":"14597:30:97","nodeType":"YulExpressionStatement","src":"14597:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14647:9:97","nodeType":"YulIdentifier","src":"14647:9:97"},{"kind":"number","nativeSrc":"14658:2:97","nodeType":"YulLiteral","src":"14658:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14643:3:97","nodeType":"YulIdentifier","src":"14643:3:97"},"nativeSrc":"14643:18:97","nodeType":"YulFunctionCall","src":"14643:18:97"},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a2076616c75652063","kind":"string","nativeSrc":"14663:34:97","nodeType":"YulLiteral","src":"14663:34:97","type":"","value":"OmnichainProposalSender: value c"}],"functionName":{"name":"mstore","nativeSrc":"14636:6:97","nodeType":"YulIdentifier","src":"14636:6:97"},"nativeSrc":"14636:62:97","nodeType":"YulFunctionCall","src":"14636:62:97"},"nativeSrc":"14636:62:97","nodeType":"YulExpressionStatement","src":"14636:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14718:9:97","nodeType":"YulIdentifier","src":"14718:9:97"},{"kind":"number","nativeSrc":"14729:2:97","nodeType":"YulLiteral","src":"14729:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"14714:3:97","nodeType":"YulIdentifier","src":"14714:3:97"},"nativeSrc":"14714:18:97","nodeType":"YulFunctionCall","src":"14714:18:97"},{"hexValue":"616e6e6f74206265207a65726f","kind":"string","nativeSrc":"14734:15:97","nodeType":"YulLiteral","src":"14734:15:97","type":"","value":"annot be zero"}],"functionName":{"name":"mstore","nativeSrc":"14707:6:97","nodeType":"YulIdentifier","src":"14707:6:97"},"nativeSrc":"14707:43:97","nodeType":"YulFunctionCall","src":"14707:43:97"},"nativeSrc":"14707:43:97","nodeType":"YulExpressionStatement","src":"14707:43:97"},{"nativeSrc":"14759:27:97","nodeType":"YulAssignment","src":"14759:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"14771:9:97","nodeType":"YulIdentifier","src":"14771:9:97"},{"kind":"number","nativeSrc":"14782:3:97","nodeType":"YulLiteral","src":"14782:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"14767:3:97","nodeType":"YulIdentifier","src":"14767:3:97"},"nativeSrc":"14767:19:97","nodeType":"YulFunctionCall","src":"14767:19:97"},"variableNames":[{"name":"tail","nativeSrc":"14759:4:97","nodeType":"YulIdentifier","src":"14759:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_8fc786e18c67f9a2aae9af1908b470ce7b6a77c7cd6fd1e9dbdafb6499657565__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"14383:409:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14534:9:97","nodeType":"YulTypedName","src":"14534:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14548:4:97","nodeType":"YulTypedName","src":"14548:4:97","type":""}],"src":"14383:409:97"},{"body":{"nativeSrc":"14971:296:97","nodeType":"YulBlock","src":"14971:296:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"14988:9:97","nodeType":"YulIdentifier","src":"14988:9:97"},{"kind":"number","nativeSrc":"14999:2:97","nodeType":"YulLiteral","src":"14999:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"14981:6:97","nodeType":"YulIdentifier","src":"14981:6:97"},"nativeSrc":"14981:21:97","nodeType":"YulFunctionCall","src":"14981:21:97"},"nativeSrc":"14981:21:97","nodeType":"YulExpressionStatement","src":"14981:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15022:9:97","nodeType":"YulIdentifier","src":"15022:9:97"},{"kind":"number","nativeSrc":"15033:2:97","nodeType":"YulLiteral","src":"15033:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15018:3:97","nodeType":"YulIdentifier","src":"15018:3:97"},"nativeSrc":"15018:18:97","nodeType":"YulFunctionCall","src":"15018:18:97"},{"kind":"number","nativeSrc":"15038:2:97","nodeType":"YulLiteral","src":"15038:2:97","type":"","value":"66"}],"functionName":{"name":"mstore","nativeSrc":"15011:6:97","nodeType":"YulIdentifier","src":"15011:6:97"},"nativeSrc":"15011:30:97","nodeType":"YulFunctionCall","src":"15011:30:97"},"nativeSrc":"15011:30:97","nodeType":"YulExpressionStatement","src":"15011:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15061:9:97","nodeType":"YulIdentifier","src":"15061:9:97"},{"kind":"number","nativeSrc":"15072:2:97","nodeType":"YulLiteral","src":"15072:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"15057:3:97","nodeType":"YulIdentifier","src":"15057:3:97"},"nativeSrc":"15057:18:97","nodeType":"YulFunctionCall","src":"15057:18:97"},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a2064657374696e61","kind":"string","nativeSrc":"15077:34:97","nodeType":"YulLiteral","src":"15077:34:97","type":"","value":"OmnichainProposalSender: destina"}],"functionName":{"name":"mstore","nativeSrc":"15050:6:97","nodeType":"YulIdentifier","src":"15050:6:97"},"nativeSrc":"15050:62:97","nodeType":"YulFunctionCall","src":"15050:62:97"},"nativeSrc":"15050:62:97","nodeType":"YulExpressionStatement","src":"15050:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15132:9:97","nodeType":"YulIdentifier","src":"15132:9:97"},{"kind":"number","nativeSrc":"15143:2:97","nodeType":"YulLiteral","src":"15143:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"15128:3:97","nodeType":"YulIdentifier","src":"15128:3:97"},"nativeSrc":"15128:18:97","nodeType":"YulFunctionCall","src":"15128:18:97"},{"hexValue":"74696f6e20636861696e206973206e6f742061207472757374656420736f7572","kind":"string","nativeSrc":"15148:34:97","nodeType":"YulLiteral","src":"15148:34:97","type":"","value":"tion chain is not a trusted sour"}],"functionName":{"name":"mstore","nativeSrc":"15121:6:97","nodeType":"YulIdentifier","src":"15121:6:97"},"nativeSrc":"15121:62:97","nodeType":"YulFunctionCall","src":"15121:62:97"},"nativeSrc":"15121:62:97","nodeType":"YulExpressionStatement","src":"15121:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15203:9:97","nodeType":"YulIdentifier","src":"15203:9:97"},{"kind":"number","nativeSrc":"15214:3:97","nodeType":"YulLiteral","src":"15214:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"15199:3:97","nodeType":"YulIdentifier","src":"15199:3:97"},"nativeSrc":"15199:19:97","nodeType":"YulFunctionCall","src":"15199:19:97"},{"hexValue":"6365","kind":"string","nativeSrc":"15220:4:97","nodeType":"YulLiteral","src":"15220:4:97","type":"","value":"ce"}],"functionName":{"name":"mstore","nativeSrc":"15192:6:97","nodeType":"YulIdentifier","src":"15192:6:97"},"nativeSrc":"15192:33:97","nodeType":"YulFunctionCall","src":"15192:33:97"},"nativeSrc":"15192:33:97","nodeType":"YulExpressionStatement","src":"15192:33:97"},{"nativeSrc":"15234:27:97","nodeType":"YulAssignment","src":"15234:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"15246:9:97","nodeType":"YulIdentifier","src":"15246:9:97"},{"kind":"number","nativeSrc":"15257:3:97","nodeType":"YulLiteral","src":"15257:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"15242:3:97","nodeType":"YulIdentifier","src":"15242:3:97"},"nativeSrc":"15242:19:97","nodeType":"YulFunctionCall","src":"15242:19:97"},"variableNames":[{"name":"tail","nativeSrc":"15234:4:97","nodeType":"YulIdentifier","src":"15234:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_61468fbafd753a44eba72b43458a5a571ff9821e3893131cc67b0876c2e26370__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"14797:470:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14948:9:97","nodeType":"YulTypedName","src":"14948:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14962:4:97","nodeType":"YulTypedName","src":"14962:4:97","type":""}],"src":"14797:470:97"},{"body":{"nativeSrc":"15304:152:97","nodeType":"YulBlock","src":"15304:152:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15321:1:97","nodeType":"YulLiteral","src":"15321:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"15324:77:97","nodeType":"YulLiteral","src":"15324:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"15314:6:97","nodeType":"YulIdentifier","src":"15314:6:97"},"nativeSrc":"15314:88:97","nodeType":"YulFunctionCall","src":"15314:88:97"},"nativeSrc":"15314:88:97","nodeType":"YulExpressionStatement","src":"15314:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15418:1:97","nodeType":"YulLiteral","src":"15418:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"15421:4:97","nodeType":"YulLiteral","src":"15421:4:97","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"15411:6:97","nodeType":"YulIdentifier","src":"15411:6:97"},"nativeSrc":"15411:15:97","nodeType":"YulFunctionCall","src":"15411:15:97"},"nativeSrc":"15411:15:97","nodeType":"YulExpressionStatement","src":"15411:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15442:1:97","nodeType":"YulLiteral","src":"15442:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"15445:4:97","nodeType":"YulLiteral","src":"15445:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"15435:6:97","nodeType":"YulIdentifier","src":"15435:6:97"},"nativeSrc":"15435:15:97","nodeType":"YulFunctionCall","src":"15435:15:97"},"nativeSrc":"15435:15:97","nodeType":"YulExpressionStatement","src":"15435:15:97"}]},"name":"panic_error_0x11","nativeSrc":"15272:184:97","nodeType":"YulFunctionDefinition","src":"15272:184:97"},{"body":{"nativeSrc":"15508:148:97","nodeType":"YulBlock","src":"15508:148:97","statements":[{"body":{"nativeSrc":"15599:22:97","nodeType":"YulBlock","src":"15599:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"15601:16:97","nodeType":"YulIdentifier","src":"15601:16:97"},"nativeSrc":"15601:18:97","nodeType":"YulFunctionCall","src":"15601:18:97"},"nativeSrc":"15601:18:97","nodeType":"YulExpressionStatement","src":"15601:18:97"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"15524:5:97","nodeType":"YulIdentifier","src":"15524:5:97"},{"kind":"number","nativeSrc":"15531:66:97","nodeType":"YulLiteral","src":"15531:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"eq","nativeSrc":"15521:2:97","nodeType":"YulIdentifier","src":"15521:2:97"},"nativeSrc":"15521:77:97","nodeType":"YulFunctionCall","src":"15521:77:97"},"nativeSrc":"15518:103:97","nodeType":"YulIf","src":"15518:103:97"},{"nativeSrc":"15630:20:97","nodeType":"YulAssignment","src":"15630:20:97","value":{"arguments":[{"name":"value","nativeSrc":"15641:5:97","nodeType":"YulIdentifier","src":"15641:5:97"},{"kind":"number","nativeSrc":"15648:1:97","nodeType":"YulLiteral","src":"15648:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"15637:3:97","nodeType":"YulIdentifier","src":"15637:3:97"},"nativeSrc":"15637:13:97","nodeType":"YulFunctionCall","src":"15637:13:97"},"variableNames":[{"name":"ret","nativeSrc":"15630:3:97","nodeType":"YulIdentifier","src":"15630:3:97"}]}]},"name":"increment_t_uint256","nativeSrc":"15461:195:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"15490:5:97","nodeType":"YulTypedName","src":"15490:5:97","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"15500:3:97","nodeType":"YulTypedName","src":"15500:3:97","type":""}],"src":"15461:195:97"},{"body":{"nativeSrc":"15818:158:97","nodeType":"YulBlock","src":"15818:158:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"15835:9:97","nodeType":"YulIdentifier","src":"15835:9:97"},{"kind":"number","nativeSrc":"15846:2:97","nodeType":"YulLiteral","src":"15846:2:97","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"15828:6:97","nodeType":"YulIdentifier","src":"15828:6:97"},"nativeSrc":"15828:21:97","nodeType":"YulFunctionCall","src":"15828:21:97"},"nativeSrc":"15828:21:97","nodeType":"YulExpressionStatement","src":"15828:21:97"},{"nativeSrc":"15858:69:97","nodeType":"YulAssignment","src":"15858:69:97","value":{"arguments":[{"name":"value0","nativeSrc":"15892:6:97","nodeType":"YulIdentifier","src":"15892:6:97"},{"name":"value1","nativeSrc":"15900:6:97","nodeType":"YulIdentifier","src":"15900:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"15912:9:97","nodeType":"YulIdentifier","src":"15912:9:97"},{"kind":"number","nativeSrc":"15923:2:97","nodeType":"YulLiteral","src":"15923:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"15908:3:97","nodeType":"YulIdentifier","src":"15908:3:97"},"nativeSrc":"15908:18:97","nodeType":"YulFunctionCall","src":"15908:18:97"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"15866:25:97","nodeType":"YulIdentifier","src":"15866:25:97"},"nativeSrc":"15866:61:97","nodeType":"YulFunctionCall","src":"15866:61:97"},"variableNames":[{"name":"tail","nativeSrc":"15858:4:97","nodeType":"YulIdentifier","src":"15858:4:97"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15947:9:97","nodeType":"YulIdentifier","src":"15947:9:97"},{"kind":"number","nativeSrc":"15958:2:97","nodeType":"YulLiteral","src":"15958:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15943:3:97","nodeType":"YulIdentifier","src":"15943:3:97"},"nativeSrc":"15943:18:97","nodeType":"YulFunctionCall","src":"15943:18:97"},{"name":"value2","nativeSrc":"15963:6:97","nodeType":"YulIdentifier","src":"15963:6:97"}],"functionName":{"name":"mstore","nativeSrc":"15936:6:97","nodeType":"YulIdentifier","src":"15936:6:97"},"nativeSrc":"15936:34:97","nodeType":"YulFunctionCall","src":"15936:34:97"},"nativeSrc":"15936:34:97","nodeType":"YulExpressionStatement","src":"15936:34:97"}]},"name":"abi_encode_tuple_t_bytes_calldata_ptr_t_uint256__to_t_bytes_memory_ptr_t_uint256__fromStack_reversed","nativeSrc":"15661:315:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15771:9:97","nodeType":"YulTypedName","src":"15771:9:97","type":""},{"name":"value2","nativeSrc":"15782:6:97","nodeType":"YulTypedName","src":"15782:6:97","type":""},{"name":"value1","nativeSrc":"15790:6:97","nodeType":"YulTypedName","src":"15790:6:97","type":""},{"name":"value0","nativeSrc":"15798:6:97","nodeType":"YulTypedName","src":"15798:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15809:4:97","nodeType":"YulTypedName","src":"15809:4:97","type":""}],"src":"15661:315:97"},{"body":{"nativeSrc":"16300:568:97","nodeType":"YulBlock","src":"16300:568:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"16317:9:97","nodeType":"YulIdentifier","src":"16317:9:97"},{"arguments":[{"name":"value0","nativeSrc":"16332:6:97","nodeType":"YulIdentifier","src":"16332:6:97"},{"kind":"number","nativeSrc":"16340:6:97","nodeType":"YulLiteral","src":"16340:6:97","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"16328:3:97","nodeType":"YulIdentifier","src":"16328:3:97"},"nativeSrc":"16328:19:97","nodeType":"YulFunctionCall","src":"16328:19:97"}],"functionName":{"name":"mstore","nativeSrc":"16310:6:97","nodeType":"YulIdentifier","src":"16310:6:97"},"nativeSrc":"16310:38:97","nodeType":"YulFunctionCall","src":"16310:38:97"},"nativeSrc":"16310:38:97","nodeType":"YulExpressionStatement","src":"16310:38:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16368:9:97","nodeType":"YulIdentifier","src":"16368:9:97"},{"kind":"number","nativeSrc":"16379:2:97","nodeType":"YulLiteral","src":"16379:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16364:3:97","nodeType":"YulIdentifier","src":"16364:3:97"},"nativeSrc":"16364:18:97","nodeType":"YulFunctionCall","src":"16364:18:97"},{"kind":"number","nativeSrc":"16384:3:97","nodeType":"YulLiteral","src":"16384:3:97","type":"","value":"192"}],"functionName":{"name":"mstore","nativeSrc":"16357:6:97","nodeType":"YulIdentifier","src":"16357:6:97"},"nativeSrc":"16357:31:97","nodeType":"YulFunctionCall","src":"16357:31:97"},"nativeSrc":"16357:31:97","nodeType":"YulExpressionStatement","src":"16357:31:97"},{"nativeSrc":"16397:59:97","nodeType":"YulVariableDeclaration","src":"16397:59:97","value":{"arguments":[{"name":"value1","nativeSrc":"16428:6:97","nodeType":"YulIdentifier","src":"16428:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"16440:9:97","nodeType":"YulIdentifier","src":"16440:9:97"},{"kind":"number","nativeSrc":"16451:3:97","nodeType":"YulLiteral","src":"16451:3:97","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"16436:3:97","nodeType":"YulIdentifier","src":"16436:3:97"},"nativeSrc":"16436:19:97","nodeType":"YulFunctionCall","src":"16436:19:97"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"16411:16:97","nodeType":"YulIdentifier","src":"16411:16:97"},"nativeSrc":"16411:45:97","nodeType":"YulFunctionCall","src":"16411:45:97"},"variables":[{"name":"tail_1","nativeSrc":"16401:6:97","nodeType":"YulTypedName","src":"16401:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16476:9:97","nodeType":"YulIdentifier","src":"16476:9:97"},{"kind":"number","nativeSrc":"16487:2:97","nodeType":"YulLiteral","src":"16487:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16472:3:97","nodeType":"YulIdentifier","src":"16472:3:97"},"nativeSrc":"16472:18:97","nodeType":"YulFunctionCall","src":"16472:18:97"},{"arguments":[{"name":"tail_1","nativeSrc":"16496:6:97","nodeType":"YulIdentifier","src":"16496:6:97"},{"name":"headStart","nativeSrc":"16504:9:97","nodeType":"YulIdentifier","src":"16504:9:97"}],"functionName":{"name":"sub","nativeSrc":"16492:3:97","nodeType":"YulIdentifier","src":"16492:3:97"},"nativeSrc":"16492:22:97","nodeType":"YulFunctionCall","src":"16492:22:97"}],"functionName":{"name":"mstore","nativeSrc":"16465:6:97","nodeType":"YulIdentifier","src":"16465:6:97"},"nativeSrc":"16465:50:97","nodeType":"YulFunctionCall","src":"16465:50:97"},"nativeSrc":"16465:50:97","nodeType":"YulExpressionStatement","src":"16465:50:97"},{"nativeSrc":"16524:46:97","nodeType":"YulVariableDeclaration","src":"16524:46:97","value":{"arguments":[{"name":"value2","nativeSrc":"16555:6:97","nodeType":"YulIdentifier","src":"16555:6:97"},{"name":"tail_1","nativeSrc":"16563:6:97","nodeType":"YulIdentifier","src":"16563:6:97"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"16538:16:97","nodeType":"YulIdentifier","src":"16538:16:97"},"nativeSrc":"16538:32:97","nodeType":"YulFunctionCall","src":"16538:32:97"},"variables":[{"name":"tail_2","nativeSrc":"16528:6:97","nodeType":"YulTypedName","src":"16528:6:97","type":""}]},{"nativeSrc":"16579:52:97","nodeType":"YulVariableDeclaration","src":"16579:52:97","value":{"kind":"number","nativeSrc":"16589:42:97","nodeType":"YulLiteral","src":"16589:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"16583:2:97","nodeType":"YulTypedName","src":"16583:2:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16651:9:97","nodeType":"YulIdentifier","src":"16651:9:97"},{"kind":"number","nativeSrc":"16662:2:97","nodeType":"YulLiteral","src":"16662:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"16647:3:97","nodeType":"YulIdentifier","src":"16647:3:97"},"nativeSrc":"16647:18:97","nodeType":"YulFunctionCall","src":"16647:18:97"},{"arguments":[{"name":"value3","nativeSrc":"16671:6:97","nodeType":"YulIdentifier","src":"16671:6:97"},{"name":"_1","nativeSrc":"16679:2:97","nodeType":"YulIdentifier","src":"16679:2:97"}],"functionName":{"name":"and","nativeSrc":"16667:3:97","nodeType":"YulIdentifier","src":"16667:3:97"},"nativeSrc":"16667:15:97","nodeType":"YulFunctionCall","src":"16667:15:97"}],"functionName":{"name":"mstore","nativeSrc":"16640:6:97","nodeType":"YulIdentifier","src":"16640:6:97"},"nativeSrc":"16640:43:97","nodeType":"YulFunctionCall","src":"16640:43:97"},"nativeSrc":"16640:43:97","nodeType":"YulExpressionStatement","src":"16640:43:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16703:9:97","nodeType":"YulIdentifier","src":"16703:9:97"},{"kind":"number","nativeSrc":"16714:3:97","nodeType":"YulLiteral","src":"16714:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"16699:3:97","nodeType":"YulIdentifier","src":"16699:3:97"},"nativeSrc":"16699:19:97","nodeType":"YulFunctionCall","src":"16699:19:97"},{"arguments":[{"name":"value4","nativeSrc":"16724:6:97","nodeType":"YulIdentifier","src":"16724:6:97"},{"name":"_1","nativeSrc":"16732:2:97","nodeType":"YulIdentifier","src":"16732:2:97"}],"functionName":{"name":"and","nativeSrc":"16720:3:97","nodeType":"YulIdentifier","src":"16720:3:97"},"nativeSrc":"16720:15:97","nodeType":"YulFunctionCall","src":"16720:15:97"}],"functionName":{"name":"mstore","nativeSrc":"16692:6:97","nodeType":"YulIdentifier","src":"16692:6:97"},"nativeSrc":"16692:44:97","nodeType":"YulFunctionCall","src":"16692:44:97"},"nativeSrc":"16692:44:97","nodeType":"YulExpressionStatement","src":"16692:44:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16756:9:97","nodeType":"YulIdentifier","src":"16756:9:97"},{"kind":"number","nativeSrc":"16767:3:97","nodeType":"YulLiteral","src":"16767:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"16752:3:97","nodeType":"YulIdentifier","src":"16752:3:97"},"nativeSrc":"16752:19:97","nodeType":"YulFunctionCall","src":"16752:19:97"},{"arguments":[{"name":"tail_2","nativeSrc":"16777:6:97","nodeType":"YulIdentifier","src":"16777:6:97"},{"name":"headStart","nativeSrc":"16785:9:97","nodeType":"YulIdentifier","src":"16785:9:97"}],"functionName":{"name":"sub","nativeSrc":"16773:3:97","nodeType":"YulIdentifier","src":"16773:3:97"},"nativeSrc":"16773:22:97","nodeType":"YulFunctionCall","src":"16773:22:97"}],"functionName":{"name":"mstore","nativeSrc":"16745:6:97","nodeType":"YulIdentifier","src":"16745:6:97"},"nativeSrc":"16745:51:97","nodeType":"YulFunctionCall","src":"16745:51:97"},"nativeSrc":"16745:51:97","nodeType":"YulExpressionStatement","src":"16745:51:97"},{"nativeSrc":"16805:57:97","nodeType":"YulAssignment","src":"16805:57:97","value":{"arguments":[{"name":"value5","nativeSrc":"16839:6:97","nodeType":"YulIdentifier","src":"16839:6:97"},{"name":"value6","nativeSrc":"16847:6:97","nodeType":"YulIdentifier","src":"16847:6:97"},{"name":"tail_2","nativeSrc":"16855:6:97","nodeType":"YulIdentifier","src":"16855:6:97"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"16813:25:97","nodeType":"YulIdentifier","src":"16813:25:97"},"nativeSrc":"16813:49:97","nodeType":"YulFunctionCall","src":"16813:49:97"},"variableNames":[{"name":"tail","nativeSrc":"16805:4:97","nodeType":"YulIdentifier","src":"16805:4:97"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_address_payable_t_address_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_address_payable_t_address_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"15981:887:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16221:9:97","nodeType":"YulTypedName","src":"16221:9:97","type":""},{"name":"value6","nativeSrc":"16232:6:97","nodeType":"YulTypedName","src":"16232:6:97","type":""},{"name":"value5","nativeSrc":"16240:6:97","nodeType":"YulTypedName","src":"16240:6:97","type":""},{"name":"value4","nativeSrc":"16248:6:97","nodeType":"YulTypedName","src":"16248:6:97","type":""},{"name":"value3","nativeSrc":"16256:6:97","nodeType":"YulTypedName","src":"16256:6:97","type":""},{"name":"value2","nativeSrc":"16264:6:97","nodeType":"YulTypedName","src":"16264:6:97","type":""},{"name":"value1","nativeSrc":"16272:6:97","nodeType":"YulTypedName","src":"16272:6:97","type":""},{"name":"value0","nativeSrc":"16280:6:97","nodeType":"YulTypedName","src":"16280:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16291:4:97","nodeType":"YulTypedName","src":"16291:4:97","type":""}],"src":"15981:887:97"},{"body":{"nativeSrc":"17102:330:97","nodeType":"YulBlock","src":"17102:330:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"17119:9:97","nodeType":"YulIdentifier","src":"17119:9:97"},{"arguments":[{"name":"value0","nativeSrc":"17134:6:97","nodeType":"YulIdentifier","src":"17134:6:97"},{"kind":"number","nativeSrc":"17142:6:97","nodeType":"YulLiteral","src":"17142:6:97","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"17130:3:97","nodeType":"YulIdentifier","src":"17130:3:97"},"nativeSrc":"17130:19:97","nodeType":"YulFunctionCall","src":"17130:19:97"}],"functionName":{"name":"mstore","nativeSrc":"17112:6:97","nodeType":"YulIdentifier","src":"17112:6:97"},"nativeSrc":"17112:38:97","nodeType":"YulFunctionCall","src":"17112:38:97"},"nativeSrc":"17112:38:97","nodeType":"YulExpressionStatement","src":"17112:38:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17170:9:97","nodeType":"YulIdentifier","src":"17170:9:97"},{"kind":"number","nativeSrc":"17181:2:97","nodeType":"YulLiteral","src":"17181:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17166:3:97","nodeType":"YulIdentifier","src":"17166:3:97"},"nativeSrc":"17166:18:97","nodeType":"YulFunctionCall","src":"17166:18:97"},{"kind":"number","nativeSrc":"17186:3:97","nodeType":"YulLiteral","src":"17186:3:97","type":"","value":"128"}],"functionName":{"name":"mstore","nativeSrc":"17159:6:97","nodeType":"YulIdentifier","src":"17159:6:97"},"nativeSrc":"17159:31:97","nodeType":"YulFunctionCall","src":"17159:31:97"},"nativeSrc":"17159:31:97","nodeType":"YulExpressionStatement","src":"17159:31:97"},{"nativeSrc":"17199:59:97","nodeType":"YulVariableDeclaration","src":"17199:59:97","value":{"arguments":[{"name":"value1","nativeSrc":"17230:6:97","nodeType":"YulIdentifier","src":"17230:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"17242:9:97","nodeType":"YulIdentifier","src":"17242:9:97"},{"kind":"number","nativeSrc":"17253:3:97","nodeType":"YulLiteral","src":"17253:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"17238:3:97","nodeType":"YulIdentifier","src":"17238:3:97"},"nativeSrc":"17238:19:97","nodeType":"YulFunctionCall","src":"17238:19:97"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"17213:16:97","nodeType":"YulIdentifier","src":"17213:16:97"},"nativeSrc":"17213:45:97","nodeType":"YulFunctionCall","src":"17213:45:97"},"variables":[{"name":"tail_1","nativeSrc":"17203:6:97","nodeType":"YulTypedName","src":"17203:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17278:9:97","nodeType":"YulIdentifier","src":"17278:9:97"},{"kind":"number","nativeSrc":"17289:2:97","nodeType":"YulLiteral","src":"17289:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17274:3:97","nodeType":"YulIdentifier","src":"17274:3:97"},"nativeSrc":"17274:18:97","nodeType":"YulFunctionCall","src":"17274:18:97"},{"arguments":[{"name":"tail_1","nativeSrc":"17298:6:97","nodeType":"YulIdentifier","src":"17298:6:97"},{"name":"headStart","nativeSrc":"17306:9:97","nodeType":"YulIdentifier","src":"17306:9:97"}],"functionName":{"name":"sub","nativeSrc":"17294:3:97","nodeType":"YulIdentifier","src":"17294:3:97"},"nativeSrc":"17294:22:97","nodeType":"YulFunctionCall","src":"17294:22:97"}],"functionName":{"name":"mstore","nativeSrc":"17267:6:97","nodeType":"YulIdentifier","src":"17267:6:97"},"nativeSrc":"17267:50:97","nodeType":"YulFunctionCall","src":"17267:50:97"},"nativeSrc":"17267:50:97","nodeType":"YulExpressionStatement","src":"17267:50:97"},{"nativeSrc":"17326:57:97","nodeType":"YulAssignment","src":"17326:57:97","value":{"arguments":[{"name":"value2","nativeSrc":"17360:6:97","nodeType":"YulIdentifier","src":"17360:6:97"},{"name":"value3","nativeSrc":"17368:6:97","nodeType":"YulIdentifier","src":"17368:6:97"},{"name":"tail_1","nativeSrc":"17376:6:97","nodeType":"YulIdentifier","src":"17376:6:97"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"17334:25:97","nodeType":"YulIdentifier","src":"17334:25:97"},"nativeSrc":"17334:49:97","nodeType":"YulFunctionCall","src":"17334:49:97"},"variableNames":[{"name":"tail","nativeSrc":"17326:4:97","nodeType":"YulIdentifier","src":"17326:4:97"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17403:9:97","nodeType":"YulIdentifier","src":"17403:9:97"},{"kind":"number","nativeSrc":"17414:2:97","nodeType":"YulLiteral","src":"17414:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"17399:3:97","nodeType":"YulIdentifier","src":"17399:3:97"},"nativeSrc":"17399:18:97","nodeType":"YulFunctionCall","src":"17399:18:97"},{"name":"value4","nativeSrc":"17419:6:97","nodeType":"YulIdentifier","src":"17419:6:97"}],"functionName":{"name":"mstore","nativeSrc":"17392:6:97","nodeType":"YulIdentifier","src":"17392:6:97"},"nativeSrc":"17392:34:97","nodeType":"YulFunctionCall","src":"17392:34:97"},"nativeSrc":"17392:34:97","nodeType":"YulExpressionStatement","src":"17392:34:97"}]},"name":"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_bytes_calldata_ptr_t_uint256__to_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed","nativeSrc":"16873:559:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17039:9:97","nodeType":"YulTypedName","src":"17039:9:97","type":""},{"name":"value4","nativeSrc":"17050:6:97","nodeType":"YulTypedName","src":"17050:6:97","type":""},{"name":"value3","nativeSrc":"17058:6:97","nodeType":"YulTypedName","src":"17058:6:97","type":""},{"name":"value2","nativeSrc":"17066:6:97","nodeType":"YulTypedName","src":"17066:6:97","type":""},{"name":"value1","nativeSrc":"17074:6:97","nodeType":"YulTypedName","src":"17074:6:97","type":""},{"name":"value0","nativeSrc":"17082:6:97","nodeType":"YulTypedName","src":"17082:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17093:4:97","nodeType":"YulTypedName","src":"17093:4:97","type":""}],"src":"16873:559:97"},{"body":{"nativeSrc":"17686:388:97","nodeType":"YulBlock","src":"17686:388:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"17703:9:97","nodeType":"YulIdentifier","src":"17703:9:97"},{"kind":"number","nativeSrc":"17714:3:97","nodeType":"YulLiteral","src":"17714:3:97","type":"","value":"128"}],"functionName":{"name":"mstore","nativeSrc":"17696:6:97","nodeType":"YulIdentifier","src":"17696:6:97"},"nativeSrc":"17696:22:97","nodeType":"YulFunctionCall","src":"17696:22:97"},"nativeSrc":"17696:22:97","nodeType":"YulExpressionStatement","src":"17696:22:97"},{"nativeSrc":"17727:59:97","nodeType":"YulVariableDeclaration","src":"17727:59:97","value":{"arguments":[{"name":"value0","nativeSrc":"17758:6:97","nodeType":"YulIdentifier","src":"17758:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"17770:9:97","nodeType":"YulIdentifier","src":"17770:9:97"},{"kind":"number","nativeSrc":"17781:3:97","nodeType":"YulLiteral","src":"17781:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"17766:3:97","nodeType":"YulIdentifier","src":"17766:3:97"},"nativeSrc":"17766:19:97","nodeType":"YulFunctionCall","src":"17766:19:97"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"17741:16:97","nodeType":"YulIdentifier","src":"17741:16:97"},"nativeSrc":"17741:45:97","nodeType":"YulFunctionCall","src":"17741:45:97"},"variables":[{"name":"tail_1","nativeSrc":"17731:6:97","nodeType":"YulTypedName","src":"17731:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17806:9:97","nodeType":"YulIdentifier","src":"17806:9:97"},{"kind":"number","nativeSrc":"17817:2:97","nodeType":"YulLiteral","src":"17817:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17802:3:97","nodeType":"YulIdentifier","src":"17802:3:97"},"nativeSrc":"17802:18:97","nodeType":"YulFunctionCall","src":"17802:18:97"},{"arguments":[{"name":"tail_1","nativeSrc":"17826:6:97","nodeType":"YulIdentifier","src":"17826:6:97"},{"name":"headStart","nativeSrc":"17834:9:97","nodeType":"YulIdentifier","src":"17834:9:97"}],"functionName":{"name":"sub","nativeSrc":"17822:3:97","nodeType":"YulIdentifier","src":"17822:3:97"},"nativeSrc":"17822:22:97","nodeType":"YulFunctionCall","src":"17822:22:97"}],"functionName":{"name":"mstore","nativeSrc":"17795:6:97","nodeType":"YulIdentifier","src":"17795:6:97"},"nativeSrc":"17795:50:97","nodeType":"YulFunctionCall","src":"17795:50:97"},"nativeSrc":"17795:50:97","nodeType":"YulExpressionStatement","src":"17795:50:97"},{"nativeSrc":"17854:63:97","nodeType":"YulVariableDeclaration","src":"17854:63:97","value":{"arguments":[{"name":"value1","nativeSrc":"17894:6:97","nodeType":"YulIdentifier","src":"17894:6:97"},{"name":"value2","nativeSrc":"17902:6:97","nodeType":"YulIdentifier","src":"17902:6:97"},{"name":"tail_1","nativeSrc":"17910:6:97","nodeType":"YulIdentifier","src":"17910:6:97"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"17868:25:97","nodeType":"YulIdentifier","src":"17868:25:97"},"nativeSrc":"17868:49:97","nodeType":"YulFunctionCall","src":"17868:49:97"},"variables":[{"name":"tail_2","nativeSrc":"17858:6:97","nodeType":"YulTypedName","src":"17858:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17937:9:97","nodeType":"YulIdentifier","src":"17937:9:97"},{"kind":"number","nativeSrc":"17948:2:97","nodeType":"YulLiteral","src":"17948:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17933:3:97","nodeType":"YulIdentifier","src":"17933:3:97"},"nativeSrc":"17933:18:97","nodeType":"YulFunctionCall","src":"17933:18:97"},{"name":"value3","nativeSrc":"17953:6:97","nodeType":"YulIdentifier","src":"17953:6:97"}],"functionName":{"name":"mstore","nativeSrc":"17926:6:97","nodeType":"YulIdentifier","src":"17926:6:97"},"nativeSrc":"17926:34:97","nodeType":"YulFunctionCall","src":"17926:34:97"},"nativeSrc":"17926:34:97","nodeType":"YulExpressionStatement","src":"17926:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17980:9:97","nodeType":"YulIdentifier","src":"17980:9:97"},{"kind":"number","nativeSrc":"17991:2:97","nodeType":"YulLiteral","src":"17991:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"17976:3:97","nodeType":"YulIdentifier","src":"17976:3:97"},"nativeSrc":"17976:18:97","nodeType":"YulFunctionCall","src":"17976:18:97"},{"arguments":[{"name":"tail_2","nativeSrc":"18000:6:97","nodeType":"YulIdentifier","src":"18000:6:97"},{"name":"headStart","nativeSrc":"18008:9:97","nodeType":"YulIdentifier","src":"18008:9:97"}],"functionName":{"name":"sub","nativeSrc":"17996:3:97","nodeType":"YulIdentifier","src":"17996:3:97"},"nativeSrc":"17996:22:97","nodeType":"YulFunctionCall","src":"17996:22:97"}],"functionName":{"name":"mstore","nativeSrc":"17969:6:97","nodeType":"YulIdentifier","src":"17969:6:97"},"nativeSrc":"17969:50:97","nodeType":"YulFunctionCall","src":"17969:50:97"},"nativeSrc":"17969:50:97","nodeType":"YulExpressionStatement","src":"17969:50:97"},{"nativeSrc":"18028:40:97","nodeType":"YulAssignment","src":"18028:40:97","value":{"arguments":[{"name":"value4","nativeSrc":"18053:6:97","nodeType":"YulIdentifier","src":"18053:6:97"},{"name":"tail_2","nativeSrc":"18061:6:97","nodeType":"YulIdentifier","src":"18061:6:97"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"18036:16:97","nodeType":"YulIdentifier","src":"18036:16:97"},"nativeSrc":"18036:32:97","nodeType":"YulFunctionCall","src":"18036:32:97"},"variableNames":[{"name":"tail","nativeSrc":"18028:4:97","nodeType":"YulIdentifier","src":"18028:4:97"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr_t_bytes_calldata_ptr_t_uint256_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"17437:637:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17623:9:97","nodeType":"YulTypedName","src":"17623:9:97","type":""},{"name":"value4","nativeSrc":"17634:6:97","nodeType":"YulTypedName","src":"17634:6:97","type":""},{"name":"value3","nativeSrc":"17642:6:97","nodeType":"YulTypedName","src":"17642:6:97","type":""},{"name":"value2","nativeSrc":"17650:6:97","nodeType":"YulTypedName","src":"17650:6:97","type":""},{"name":"value1","nativeSrc":"17658:6:97","nodeType":"YulTypedName","src":"17658:6:97","type":""},{"name":"value0","nativeSrc":"17666:6:97","nodeType":"YulTypedName","src":"17666:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17677:4:97","nodeType":"YulTypedName","src":"17677:4:97","type":""}],"src":"17437:637:97"},{"body":{"nativeSrc":"18226:141:97","nodeType":"YulBlock","src":"18226:141:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"18243:9:97","nodeType":"YulIdentifier","src":"18243:9:97"},{"name":"value0","nativeSrc":"18254:6:97","nodeType":"YulIdentifier","src":"18254:6:97"}],"functionName":{"name":"mstore","nativeSrc":"18236:6:97","nodeType":"YulIdentifier","src":"18236:6:97"},"nativeSrc":"18236:25:97","nodeType":"YulFunctionCall","src":"18236:25:97"},"nativeSrc":"18236:25:97","nodeType":"YulExpressionStatement","src":"18236:25:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18281:9:97","nodeType":"YulIdentifier","src":"18281:9:97"},{"kind":"number","nativeSrc":"18292:2:97","nodeType":"YulLiteral","src":"18292:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18277:3:97","nodeType":"YulIdentifier","src":"18277:3:97"},"nativeSrc":"18277:18:97","nodeType":"YulFunctionCall","src":"18277:18:97"},{"kind":"number","nativeSrc":"18297:2:97","nodeType":"YulLiteral","src":"18297:2:97","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"18270:6:97","nodeType":"YulIdentifier","src":"18270:6:97"},"nativeSrc":"18270:30:97","nodeType":"YulFunctionCall","src":"18270:30:97"},"nativeSrc":"18270:30:97","nodeType":"YulExpressionStatement","src":"18270:30:97"},{"nativeSrc":"18309:52:97","nodeType":"YulAssignment","src":"18309:52:97","value":{"arguments":[{"name":"value1","nativeSrc":"18334:6:97","nodeType":"YulIdentifier","src":"18334:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"18346:9:97","nodeType":"YulIdentifier","src":"18346:9:97"},{"kind":"number","nativeSrc":"18357:2:97","nodeType":"YulLiteral","src":"18357:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"18342:3:97","nodeType":"YulIdentifier","src":"18342:3:97"},"nativeSrc":"18342:18:97","nodeType":"YulFunctionCall","src":"18342:18:97"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"18317:16:97","nodeType":"YulIdentifier","src":"18317:16:97"},"nativeSrc":"18317:44:97","nodeType":"YulFunctionCall","src":"18317:44:97"},"variableNames":[{"name":"tail","nativeSrc":"18309:4:97","nodeType":"YulIdentifier","src":"18309:4:97"}]}]},"name":"abi_encode_tuple_t_uint256_t_bytes_memory_ptr__to_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"18079:288:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18187:9:97","nodeType":"YulTypedName","src":"18187:9:97","type":""},{"name":"value1","nativeSrc":"18198:6:97","nodeType":"YulTypedName","src":"18198:6:97","type":""},{"name":"value0","nativeSrc":"18206:6:97","nodeType":"YulTypedName","src":"18206:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18217:4:97","nodeType":"YulTypedName","src":"18217:4:97","type":""}],"src":"18079:288:97"},{"body":{"nativeSrc":"18553:298:97","nodeType":"YulBlock","src":"18553:298:97","statements":[{"nativeSrc":"18563:27:97","nodeType":"YulAssignment","src":"18563:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"18575:9:97","nodeType":"YulIdentifier","src":"18575:9:97"},{"kind":"number","nativeSrc":"18586:3:97","nodeType":"YulLiteral","src":"18586:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"18571:3:97","nodeType":"YulIdentifier","src":"18571:3:97"},"nativeSrc":"18571:19:97","nodeType":"YulFunctionCall","src":"18571:19:97"},"variableNames":[{"name":"tail","nativeSrc":"18563:4:97","nodeType":"YulIdentifier","src":"18563:4:97"}]},{"nativeSrc":"18599:16:97","nodeType":"YulVariableDeclaration","src":"18599:16:97","value":{"kind":"number","nativeSrc":"18609:6:97","nodeType":"YulLiteral","src":"18609:6:97","type":"","value":"0xffff"},"variables":[{"name":"_1","nativeSrc":"18603:2:97","nodeType":"YulTypedName","src":"18603:2:97","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"18631:9:97","nodeType":"YulIdentifier","src":"18631:9:97"},{"arguments":[{"name":"value0","nativeSrc":"18646:6:97","nodeType":"YulIdentifier","src":"18646:6:97"},{"name":"_1","nativeSrc":"18654:2:97","nodeType":"YulIdentifier","src":"18654:2:97"}],"functionName":{"name":"and","nativeSrc":"18642:3:97","nodeType":"YulIdentifier","src":"18642:3:97"},"nativeSrc":"18642:15:97","nodeType":"YulFunctionCall","src":"18642:15:97"}],"functionName":{"name":"mstore","nativeSrc":"18624:6:97","nodeType":"YulIdentifier","src":"18624:6:97"},"nativeSrc":"18624:34:97","nodeType":"YulFunctionCall","src":"18624:34:97"},"nativeSrc":"18624:34:97","nodeType":"YulExpressionStatement","src":"18624:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18678:9:97","nodeType":"YulIdentifier","src":"18678:9:97"},{"kind":"number","nativeSrc":"18689:2:97","nodeType":"YulLiteral","src":"18689:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18674:3:97","nodeType":"YulIdentifier","src":"18674:3:97"},"nativeSrc":"18674:18:97","nodeType":"YulFunctionCall","src":"18674:18:97"},{"arguments":[{"name":"value1","nativeSrc":"18698:6:97","nodeType":"YulIdentifier","src":"18698:6:97"},{"name":"_1","nativeSrc":"18706:2:97","nodeType":"YulIdentifier","src":"18706:2:97"}],"functionName":{"name":"and","nativeSrc":"18694:3:97","nodeType":"YulIdentifier","src":"18694:3:97"},"nativeSrc":"18694:15:97","nodeType":"YulFunctionCall","src":"18694:15:97"}],"functionName":{"name":"mstore","nativeSrc":"18667:6:97","nodeType":"YulIdentifier","src":"18667:6:97"},"nativeSrc":"18667:43:97","nodeType":"YulFunctionCall","src":"18667:43:97"},"nativeSrc":"18667:43:97","nodeType":"YulExpressionStatement","src":"18667:43:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18730:9:97","nodeType":"YulIdentifier","src":"18730:9:97"},{"kind":"number","nativeSrc":"18741:2:97","nodeType":"YulLiteral","src":"18741:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"18726:3:97","nodeType":"YulIdentifier","src":"18726:3:97"},"nativeSrc":"18726:18:97","nodeType":"YulFunctionCall","src":"18726:18:97"},{"arguments":[{"name":"value2","nativeSrc":"18750:6:97","nodeType":"YulIdentifier","src":"18750:6:97"},{"kind":"number","nativeSrc":"18758:42:97","nodeType":"YulLiteral","src":"18758:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"18746:3:97","nodeType":"YulIdentifier","src":"18746:3:97"},"nativeSrc":"18746:55:97","nodeType":"YulFunctionCall","src":"18746:55:97"}],"functionName":{"name":"mstore","nativeSrc":"18719:6:97","nodeType":"YulIdentifier","src":"18719:6:97"},"nativeSrc":"18719:83:97","nodeType":"YulFunctionCall","src":"18719:83:97"},"nativeSrc":"18719:83:97","nodeType":"YulExpressionStatement","src":"18719:83:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18822:9:97","nodeType":"YulIdentifier","src":"18822:9:97"},{"kind":"number","nativeSrc":"18833:2:97","nodeType":"YulLiteral","src":"18833:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"18818:3:97","nodeType":"YulIdentifier","src":"18818:3:97"},"nativeSrc":"18818:18:97","nodeType":"YulFunctionCall","src":"18818:18:97"},{"name":"value3","nativeSrc":"18838:6:97","nodeType":"YulIdentifier","src":"18838:6:97"}],"functionName":{"name":"mstore","nativeSrc":"18811:6:97","nodeType":"YulIdentifier","src":"18811:6:97"},"nativeSrc":"18811:34:97","nodeType":"YulFunctionCall","src":"18811:34:97"},"nativeSrc":"18811:34:97","nodeType":"YulExpressionStatement","src":"18811:34:97"}]},"name":"abi_encode_tuple_t_uint16_t_uint16_t_address_t_uint256__to_t_uint16_t_uint16_t_address_t_uint256__fromStack_reversed","nativeSrc":"18372:479:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18498:9:97","nodeType":"YulTypedName","src":"18498:9:97","type":""},{"name":"value3","nativeSrc":"18509:6:97","nodeType":"YulTypedName","src":"18509:6:97","type":""},{"name":"value2","nativeSrc":"18517:6:97","nodeType":"YulTypedName","src":"18517:6:97","type":""},{"name":"value1","nativeSrc":"18525:6:97","nodeType":"YulTypedName","src":"18525:6:97","type":""},{"name":"value0","nativeSrc":"18533:6:97","nodeType":"YulTypedName","src":"18533:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18544:4:97","nodeType":"YulTypedName","src":"18544:4:97","type":""}],"src":"18372:479:97"},{"body":{"nativeSrc":"18888:152:97","nodeType":"YulBlock","src":"18888:152:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18905:1:97","nodeType":"YulLiteral","src":"18905:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"18908:77:97","nodeType":"YulLiteral","src":"18908:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"18898:6:97","nodeType":"YulIdentifier","src":"18898:6:97"},"nativeSrc":"18898:88:97","nodeType":"YulFunctionCall","src":"18898:88:97"},"nativeSrc":"18898:88:97","nodeType":"YulExpressionStatement","src":"18898:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19002:1:97","nodeType":"YulLiteral","src":"19002:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"19005:4:97","nodeType":"YulLiteral","src":"19005:4:97","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"18995:6:97","nodeType":"YulIdentifier","src":"18995:6:97"},"nativeSrc":"18995:15:97","nodeType":"YulFunctionCall","src":"18995:15:97"},"nativeSrc":"18995:15:97","nodeType":"YulExpressionStatement","src":"18995:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19026:1:97","nodeType":"YulLiteral","src":"19026:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"19029:4:97","nodeType":"YulLiteral","src":"19029:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"19019:6:97","nodeType":"YulIdentifier","src":"19019:6:97"},"nativeSrc":"19019:15:97","nodeType":"YulFunctionCall","src":"19019:15:97"},"nativeSrc":"19019:15:97","nodeType":"YulExpressionStatement","src":"19019:15:97"}]},"name":"panic_error_0x41","nativeSrc":"18856:184:97","nodeType":"YulFunctionDefinition","src":"18856:184:97"},{"body":{"nativeSrc":"19090:289:97","nodeType":"YulBlock","src":"19090:289:97","statements":[{"nativeSrc":"19100:19:97","nodeType":"YulAssignment","src":"19100:19:97","value":{"arguments":[{"kind":"number","nativeSrc":"19116:2:97","nodeType":"YulLiteral","src":"19116:2:97","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"19110:5:97","nodeType":"YulIdentifier","src":"19110:5:97"},"nativeSrc":"19110:9:97","nodeType":"YulFunctionCall","src":"19110:9:97"},"variableNames":[{"name":"memPtr","nativeSrc":"19100:6:97","nodeType":"YulIdentifier","src":"19100:6:97"}]},{"nativeSrc":"19128:117:97","nodeType":"YulVariableDeclaration","src":"19128:117:97","value":{"arguments":[{"name":"memPtr","nativeSrc":"19150:6:97","nodeType":"YulIdentifier","src":"19150:6:97"},{"arguments":[{"arguments":[{"name":"size","nativeSrc":"19166:4:97","nodeType":"YulIdentifier","src":"19166:4:97"},{"kind":"number","nativeSrc":"19172:2:97","nodeType":"YulLiteral","src":"19172:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"19162:3:97","nodeType":"YulIdentifier","src":"19162:3:97"},"nativeSrc":"19162:13:97","nodeType":"YulFunctionCall","src":"19162:13:97"},{"kind":"number","nativeSrc":"19177:66:97","nodeType":"YulLiteral","src":"19177:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"19158:3:97","nodeType":"YulIdentifier","src":"19158:3:97"},"nativeSrc":"19158:86:97","nodeType":"YulFunctionCall","src":"19158:86:97"}],"functionName":{"name":"add","nativeSrc":"19146:3:97","nodeType":"YulIdentifier","src":"19146:3:97"},"nativeSrc":"19146:99:97","nodeType":"YulFunctionCall","src":"19146:99:97"},"variables":[{"name":"newFreePtr","nativeSrc":"19132:10:97","nodeType":"YulTypedName","src":"19132:10:97","type":""}]},{"body":{"nativeSrc":"19320:22:97","nodeType":"YulBlock","src":"19320:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"19322:16:97","nodeType":"YulIdentifier","src":"19322:16:97"},"nativeSrc":"19322:18:97","nodeType":"YulFunctionCall","src":"19322:18:97"},"nativeSrc":"19322:18:97","nodeType":"YulExpressionStatement","src":"19322:18:97"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"19263:10:97","nodeType":"YulIdentifier","src":"19263:10:97"},{"kind":"number","nativeSrc":"19275:18:97","nodeType":"YulLiteral","src":"19275:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"19260:2:97","nodeType":"YulIdentifier","src":"19260:2:97"},"nativeSrc":"19260:34:97","nodeType":"YulFunctionCall","src":"19260:34:97"},{"arguments":[{"name":"newFreePtr","nativeSrc":"19299:10:97","nodeType":"YulIdentifier","src":"19299:10:97"},{"name":"memPtr","nativeSrc":"19311:6:97","nodeType":"YulIdentifier","src":"19311:6:97"}],"functionName":{"name":"lt","nativeSrc":"19296:2:97","nodeType":"YulIdentifier","src":"19296:2:97"},"nativeSrc":"19296:22:97","nodeType":"YulFunctionCall","src":"19296:22:97"}],"functionName":{"name":"or","nativeSrc":"19257:2:97","nodeType":"YulIdentifier","src":"19257:2:97"},"nativeSrc":"19257:62:97","nodeType":"YulFunctionCall","src":"19257:62:97"},"nativeSrc":"19254:88:97","nodeType":"YulIf","src":"19254:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19358:2:97","nodeType":"YulLiteral","src":"19358:2:97","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"19362:10:97","nodeType":"YulIdentifier","src":"19362:10:97"}],"functionName":{"name":"mstore","nativeSrc":"19351:6:97","nodeType":"YulIdentifier","src":"19351:6:97"},"nativeSrc":"19351:22:97","nodeType":"YulFunctionCall","src":"19351:22:97"},"nativeSrc":"19351:22:97","nodeType":"YulExpressionStatement","src":"19351:22:97"}]},"name":"allocate_memory","nativeSrc":"19045:334:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"19070:4:97","nodeType":"YulTypedName","src":"19070:4:97","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"19079:6:97","nodeType":"YulTypedName","src":"19079:6:97","type":""}],"src":"19045:334:97"},{"body":{"nativeSrc":"19441:188:97","nodeType":"YulBlock","src":"19441:188:97","statements":[{"body":{"nativeSrc":"19485:22:97","nodeType":"YulBlock","src":"19485:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"19487:16:97","nodeType":"YulIdentifier","src":"19487:16:97"},"nativeSrc":"19487:18:97","nodeType":"YulFunctionCall","src":"19487:18:97"},"nativeSrc":"19487:18:97","nodeType":"YulExpressionStatement","src":"19487:18:97"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"19457:6:97","nodeType":"YulIdentifier","src":"19457:6:97"},{"kind":"number","nativeSrc":"19465:18:97","nodeType":"YulLiteral","src":"19465:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"19454:2:97","nodeType":"YulIdentifier","src":"19454:2:97"},"nativeSrc":"19454:30:97","nodeType":"YulFunctionCall","src":"19454:30:97"},"nativeSrc":"19451:56:97","nodeType":"YulIf","src":"19451:56:97"},{"nativeSrc":"19516:107:97","nodeType":"YulAssignment","src":"19516:107:97","value":{"arguments":[{"arguments":[{"arguments":[{"name":"length","nativeSrc":"19536:6:97","nodeType":"YulIdentifier","src":"19536:6:97"},{"kind":"number","nativeSrc":"19544:2:97","nodeType":"YulLiteral","src":"19544:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"19532:3:97","nodeType":"YulIdentifier","src":"19532:3:97"},"nativeSrc":"19532:15:97","nodeType":"YulFunctionCall","src":"19532:15:97"},{"kind":"number","nativeSrc":"19549:66:97","nodeType":"YulLiteral","src":"19549:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"19528:3:97","nodeType":"YulIdentifier","src":"19528:3:97"},"nativeSrc":"19528:88:97","nodeType":"YulFunctionCall","src":"19528:88:97"},{"kind":"number","nativeSrc":"19618:4:97","nodeType":"YulLiteral","src":"19618:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19524:3:97","nodeType":"YulIdentifier","src":"19524:3:97"},"nativeSrc":"19524:99:97","nodeType":"YulFunctionCall","src":"19524:99:97"},"variableNames":[{"name":"size","nativeSrc":"19516:4:97","nodeType":"YulIdentifier","src":"19516:4:97"}]}]},"name":"array_allocation_size_bytes","nativeSrc":"19384:245:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"19421:6:97","nodeType":"YulTypedName","src":"19421:6:97","type":""}],"returnVariables":[{"name":"size","nativeSrc":"19432:4:97","nodeType":"YulTypedName","src":"19432:4:97","type":""}],"src":"19384:245:97"},{"body":{"nativeSrc":"19719:235:97","nodeType":"YulBlock","src":"19719:235:97","statements":[{"nativeSrc":"19729:61:97","nodeType":"YulAssignment","src":"19729:61:97","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"19782:6:97","nodeType":"YulIdentifier","src":"19782:6:97"}],"functionName":{"name":"array_allocation_size_bytes","nativeSrc":"19754:27:97","nodeType":"YulIdentifier","src":"19754:27:97"},"nativeSrc":"19754:35:97","nodeType":"YulFunctionCall","src":"19754:35:97"}],"functionName":{"name":"allocate_memory","nativeSrc":"19738:15:97","nodeType":"YulIdentifier","src":"19738:15:97"},"nativeSrc":"19738:52:97","nodeType":"YulFunctionCall","src":"19738:52:97"},"variableNames":[{"name":"array","nativeSrc":"19729:5:97","nodeType":"YulIdentifier","src":"19729:5:97"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"19806:5:97","nodeType":"YulIdentifier","src":"19806:5:97"},{"name":"length","nativeSrc":"19813:6:97","nodeType":"YulIdentifier","src":"19813:6:97"}],"functionName":{"name":"mstore","nativeSrc":"19799:6:97","nodeType":"YulIdentifier","src":"19799:6:97"},"nativeSrc":"19799:21:97","nodeType":"YulFunctionCall","src":"19799:21:97"},"nativeSrc":"19799:21:97","nodeType":"YulExpressionStatement","src":"19799:21:97"},{"body":{"nativeSrc":"19858:16:97","nodeType":"YulBlock","src":"19858:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19867:1:97","nodeType":"YulLiteral","src":"19867:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"19870:1:97","nodeType":"YulLiteral","src":"19870:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"19860:6:97","nodeType":"YulIdentifier","src":"19860:6:97"},"nativeSrc":"19860:12:97","nodeType":"YulFunctionCall","src":"19860:12:97"},"nativeSrc":"19860:12:97","nodeType":"YulExpressionStatement","src":"19860:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"19839:3:97","nodeType":"YulIdentifier","src":"19839:3:97"},{"name":"length","nativeSrc":"19844:6:97","nodeType":"YulIdentifier","src":"19844:6:97"}],"functionName":{"name":"add","nativeSrc":"19835:3:97","nodeType":"YulIdentifier","src":"19835:3:97"},"nativeSrc":"19835:16:97","nodeType":"YulFunctionCall","src":"19835:16:97"},{"name":"end","nativeSrc":"19853:3:97","nodeType":"YulIdentifier","src":"19853:3:97"}],"functionName":{"name":"gt","nativeSrc":"19832:2:97","nodeType":"YulIdentifier","src":"19832:2:97"},"nativeSrc":"19832:25:97","nodeType":"YulFunctionCall","src":"19832:25:97"},"nativeSrc":"19829:45:97","nodeType":"YulIf","src":"19829:45:97"},{"expression":{"arguments":[{"name":"src","nativeSrc":"19918:3:97","nodeType":"YulIdentifier","src":"19918:3:97"},{"arguments":[{"name":"array","nativeSrc":"19927:5:97","nodeType":"YulIdentifier","src":"19927:5:97"},{"kind":"number","nativeSrc":"19934:4:97","nodeType":"YulLiteral","src":"19934:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19923:3:97","nodeType":"YulIdentifier","src":"19923:3:97"},"nativeSrc":"19923:16:97","nodeType":"YulFunctionCall","src":"19923:16:97"},{"name":"length","nativeSrc":"19941:6:97","nodeType":"YulIdentifier","src":"19941:6:97"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"19883:34:97","nodeType":"YulIdentifier","src":"19883:34:97"},"nativeSrc":"19883:65:97","nodeType":"YulFunctionCall","src":"19883:65:97"},"nativeSrc":"19883:65:97","nodeType":"YulExpressionStatement","src":"19883:65:97"}]},"name":"abi_decode_available_length_bytes_fromMemory","nativeSrc":"19634:320:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"19688:3:97","nodeType":"YulTypedName","src":"19688:3:97","type":""},{"name":"length","nativeSrc":"19693:6:97","nodeType":"YulTypedName","src":"19693:6:97","type":""},{"name":"end","nativeSrc":"19701:3:97","nodeType":"YulTypedName","src":"19701:3:97","type":""}],"returnVariables":[{"name":"array","nativeSrc":"19709:5:97","nodeType":"YulTypedName","src":"19709:5:97","type":""}],"src":"19634:320:97"},{"body":{"nativeSrc":"20022:172:97","nodeType":"YulBlock","src":"20022:172:97","statements":[{"body":{"nativeSrc":"20071:16:97","nodeType":"YulBlock","src":"20071:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"20080:1:97","nodeType":"YulLiteral","src":"20080:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"20083:1:97","nodeType":"YulLiteral","src":"20083:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"20073:6:97","nodeType":"YulIdentifier","src":"20073:6:97"},"nativeSrc":"20073:12:97","nodeType":"YulFunctionCall","src":"20073:12:97"},"nativeSrc":"20073:12:97","nodeType":"YulExpressionStatement","src":"20073:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"20050:6:97","nodeType":"YulIdentifier","src":"20050:6:97"},{"kind":"number","nativeSrc":"20058:4:97","nodeType":"YulLiteral","src":"20058:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"20046:3:97","nodeType":"YulIdentifier","src":"20046:3:97"},"nativeSrc":"20046:17:97","nodeType":"YulFunctionCall","src":"20046:17:97"},{"name":"end","nativeSrc":"20065:3:97","nodeType":"YulIdentifier","src":"20065:3:97"}],"functionName":{"name":"slt","nativeSrc":"20042:3:97","nodeType":"YulIdentifier","src":"20042:3:97"},"nativeSrc":"20042:27:97","nodeType":"YulFunctionCall","src":"20042:27:97"}],"functionName":{"name":"iszero","nativeSrc":"20035:6:97","nodeType":"YulIdentifier","src":"20035:6:97"},"nativeSrc":"20035:35:97","nodeType":"YulFunctionCall","src":"20035:35:97"},"nativeSrc":"20032:55:97","nodeType":"YulIf","src":"20032:55:97"},{"nativeSrc":"20096:92:97","nodeType":"YulAssignment","src":"20096:92:97","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"20154:6:97","nodeType":"YulIdentifier","src":"20154:6:97"},{"kind":"number","nativeSrc":"20162:4:97","nodeType":"YulLiteral","src":"20162:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"20150:3:97","nodeType":"YulIdentifier","src":"20150:3:97"},"nativeSrc":"20150:17:97","nodeType":"YulFunctionCall","src":"20150:17:97"},{"arguments":[{"name":"offset","nativeSrc":"20175:6:97","nodeType":"YulIdentifier","src":"20175:6:97"}],"functionName":{"name":"mload","nativeSrc":"20169:5:97","nodeType":"YulIdentifier","src":"20169:5:97"},"nativeSrc":"20169:13:97","nodeType":"YulFunctionCall","src":"20169:13:97"},{"name":"end","nativeSrc":"20184:3:97","nodeType":"YulIdentifier","src":"20184:3:97"}],"functionName":{"name":"abi_decode_available_length_bytes_fromMemory","nativeSrc":"20105:44:97","nodeType":"YulIdentifier","src":"20105:44:97"},"nativeSrc":"20105:83:97","nodeType":"YulFunctionCall","src":"20105:83:97"},"variableNames":[{"name":"array","nativeSrc":"20096:5:97","nodeType":"YulIdentifier","src":"20096:5:97"}]}]},"name":"abi_decode_bytes_fromMemory","nativeSrc":"19959:235:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"19996:6:97","nodeType":"YulTypedName","src":"19996:6:97","type":""},{"name":"end","nativeSrc":"20004:3:97","nodeType":"YulTypedName","src":"20004:3:97","type":""}],"returnVariables":[{"name":"array","nativeSrc":"20012:5:97","nodeType":"YulTypedName","src":"20012:5:97","type":""}],"src":"19959:235:97"},{"body":{"nativeSrc":"20289:245:97","nodeType":"YulBlock","src":"20289:245:97","statements":[{"body":{"nativeSrc":"20335:16:97","nodeType":"YulBlock","src":"20335:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"20344:1:97","nodeType":"YulLiteral","src":"20344:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"20347:1:97","nodeType":"YulLiteral","src":"20347:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"20337:6:97","nodeType":"YulIdentifier","src":"20337:6:97"},"nativeSrc":"20337:12:97","nodeType":"YulFunctionCall","src":"20337:12:97"},"nativeSrc":"20337:12:97","nodeType":"YulExpressionStatement","src":"20337:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"20310:7:97","nodeType":"YulIdentifier","src":"20310:7:97"},{"name":"headStart","nativeSrc":"20319:9:97","nodeType":"YulIdentifier","src":"20319:9:97"}],"functionName":{"name":"sub","nativeSrc":"20306:3:97","nodeType":"YulIdentifier","src":"20306:3:97"},"nativeSrc":"20306:23:97","nodeType":"YulFunctionCall","src":"20306:23:97"},{"kind":"number","nativeSrc":"20331:2:97","nodeType":"YulLiteral","src":"20331:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"20302:3:97","nodeType":"YulIdentifier","src":"20302:3:97"},"nativeSrc":"20302:32:97","nodeType":"YulFunctionCall","src":"20302:32:97"},"nativeSrc":"20299:52:97","nodeType":"YulIf","src":"20299:52:97"},{"nativeSrc":"20360:30:97","nodeType":"YulVariableDeclaration","src":"20360:30:97","value":{"arguments":[{"name":"headStart","nativeSrc":"20380:9:97","nodeType":"YulIdentifier","src":"20380:9:97"}],"functionName":{"name":"mload","nativeSrc":"20374:5:97","nodeType":"YulIdentifier","src":"20374:5:97"},"nativeSrc":"20374:16:97","nodeType":"YulFunctionCall","src":"20374:16:97"},"variables":[{"name":"offset","nativeSrc":"20364:6:97","nodeType":"YulTypedName","src":"20364:6:97","type":""}]},{"body":{"nativeSrc":"20433:16:97","nodeType":"YulBlock","src":"20433:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"20442:1:97","nodeType":"YulLiteral","src":"20442:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"20445:1:97","nodeType":"YulLiteral","src":"20445:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"20435:6:97","nodeType":"YulIdentifier","src":"20435:6:97"},"nativeSrc":"20435:12:97","nodeType":"YulFunctionCall","src":"20435:12:97"},"nativeSrc":"20435:12:97","nodeType":"YulExpressionStatement","src":"20435:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"20405:6:97","nodeType":"YulIdentifier","src":"20405:6:97"},{"kind":"number","nativeSrc":"20413:18:97","nodeType":"YulLiteral","src":"20413:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"20402:2:97","nodeType":"YulIdentifier","src":"20402:2:97"},"nativeSrc":"20402:30:97","nodeType":"YulFunctionCall","src":"20402:30:97"},"nativeSrc":"20399:50:97","nodeType":"YulIf","src":"20399:50:97"},{"nativeSrc":"20458:70:97","nodeType":"YulAssignment","src":"20458:70:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20500:9:97","nodeType":"YulIdentifier","src":"20500:9:97"},{"name":"offset","nativeSrc":"20511:6:97","nodeType":"YulIdentifier","src":"20511:6:97"}],"functionName":{"name":"add","nativeSrc":"20496:3:97","nodeType":"YulIdentifier","src":"20496:3:97"},"nativeSrc":"20496:22:97","nodeType":"YulFunctionCall","src":"20496:22:97"},{"name":"dataEnd","nativeSrc":"20520:7:97","nodeType":"YulIdentifier","src":"20520:7:97"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nativeSrc":"20468:27:97","nodeType":"YulIdentifier","src":"20468:27:97"},"nativeSrc":"20468:60:97","nodeType":"YulFunctionCall","src":"20468:60:97"},"variableNames":[{"name":"value0","nativeSrc":"20458:6:97","nodeType":"YulIdentifier","src":"20458:6:97"}]}]},"name":"abi_decode_tuple_t_bytes_memory_ptr_fromMemory","nativeSrc":"20199:335:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20255:9:97","nodeType":"YulTypedName","src":"20255:9:97","type":""},{"name":"dataEnd","nativeSrc":"20266:7:97","nodeType":"YulTypedName","src":"20266:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"20278:6:97","nodeType":"YulTypedName","src":"20278:6:97","type":""}],"src":"20199:335:97"},{"body":{"nativeSrc":"20713:239:97","nodeType":"YulBlock","src":"20713:239:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"20730:9:97","nodeType":"YulIdentifier","src":"20730:9:97"},{"kind":"number","nativeSrc":"20741:2:97","nodeType":"YulLiteral","src":"20741:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"20723:6:97","nodeType":"YulIdentifier","src":"20723:6:97"},"nativeSrc":"20723:21:97","nodeType":"YulFunctionCall","src":"20723:21:97"},"nativeSrc":"20723:21:97","nodeType":"YulExpressionStatement","src":"20723:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20764:9:97","nodeType":"YulIdentifier","src":"20764:9:97"},{"kind":"number","nativeSrc":"20775:2:97","nodeType":"YulLiteral","src":"20775:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"20760:3:97","nodeType":"YulIdentifier","src":"20760:3:97"},"nativeSrc":"20760:18:97","nodeType":"YulFunctionCall","src":"20760:18:97"},{"kind":"number","nativeSrc":"20780:2:97","nodeType":"YulLiteral","src":"20780:2:97","type":"","value":"49"}],"functionName":{"name":"mstore","nativeSrc":"20753:6:97","nodeType":"YulIdentifier","src":"20753:6:97"},"nativeSrc":"20753:30:97","nodeType":"YulFunctionCall","src":"20753:30:97"},"nativeSrc":"20753:30:97","nodeType":"YulExpressionStatement","src":"20753:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20803:9:97","nodeType":"YulIdentifier","src":"20803:9:97"},{"kind":"number","nativeSrc":"20814:2:97","nodeType":"YulLiteral","src":"20814:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"20799:3:97","nodeType":"YulIdentifier","src":"20799:3:97"},"nativeSrc":"20799:18:97","nodeType":"YulFunctionCall","src":"20799:18:97"},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a20636861696e4964","kind":"string","nativeSrc":"20819:34:97","nodeType":"YulLiteral","src":"20819:34:97","type":"","value":"OmnichainProposalSender: chainId"}],"functionName":{"name":"mstore","nativeSrc":"20792:6:97","nodeType":"YulIdentifier","src":"20792:6:97"},"nativeSrc":"20792:62:97","nodeType":"YulFunctionCall","src":"20792:62:97"},"nativeSrc":"20792:62:97","nodeType":"YulExpressionStatement","src":"20792:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20874:9:97","nodeType":"YulIdentifier","src":"20874:9:97"},{"kind":"number","nativeSrc":"20885:2:97","nodeType":"YulLiteral","src":"20885:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"20870:3:97","nodeType":"YulIdentifier","src":"20870:3:97"},"nativeSrc":"20870:18:97","nodeType":"YulFunctionCall","src":"20870:18:97"},{"hexValue":"206d757374206e6f74206265207a65726f","kind":"string","nativeSrc":"20890:19:97","nodeType":"YulLiteral","src":"20890:19:97","type":"","value":" must not be zero"}],"functionName":{"name":"mstore","nativeSrc":"20863:6:97","nodeType":"YulIdentifier","src":"20863:6:97"},"nativeSrc":"20863:47:97","nodeType":"YulFunctionCall","src":"20863:47:97"},"nativeSrc":"20863:47:97","nodeType":"YulExpressionStatement","src":"20863:47:97"},{"nativeSrc":"20919:27:97","nodeType":"YulAssignment","src":"20919:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"20931:9:97","nodeType":"YulIdentifier","src":"20931:9:97"},{"kind":"number","nativeSrc":"20942:3:97","nodeType":"YulLiteral","src":"20942:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"20927:3:97","nodeType":"YulIdentifier","src":"20927:3:97"},"nativeSrc":"20927:19:97","nodeType":"YulFunctionCall","src":"20927:19:97"},"variableNames":[{"name":"tail","nativeSrc":"20919:4:97","nodeType":"YulIdentifier","src":"20919:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_4867e9bc1f5aceefa1d5492b8babd12820787c1937becbd7fd5e31e7ecb2fecc__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"20539:413:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20690:9:97","nodeType":"YulTypedName","src":"20690:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"20704:4:97","nodeType":"YulTypedName","src":"20704:4:97","type":""}],"src":"20539:413:97"},{"body":{"nativeSrc":"21058:271:97","nodeType":"YulBlock","src":"21058:271:97","statements":[{"nativeSrc":"21068:29:97","nodeType":"YulVariableDeclaration","src":"21068:29:97","value":{"arguments":[{"name":"array","nativeSrc":"21091:5:97","nodeType":"YulIdentifier","src":"21091:5:97"}],"functionName":{"name":"calldataload","nativeSrc":"21078:12:97","nodeType":"YulIdentifier","src":"21078:12:97"},"nativeSrc":"21078:19:97","nodeType":"YulFunctionCall","src":"21078:19:97"},"variables":[{"name":"_1","nativeSrc":"21072:2:97","nodeType":"YulTypedName","src":"21072:2:97","type":""}]},{"nativeSrc":"21106:76:97","nodeType":"YulVariableDeclaration","src":"21106:76:97","value":{"kind":"number","nativeSrc":"21116:66:97","nodeType":"YulLiteral","src":"21116:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000"},"variables":[{"name":"_2","nativeSrc":"21110:2:97","nodeType":"YulTypedName","src":"21110:2:97","type":""}]},{"nativeSrc":"21191:20:97","nodeType":"YulAssignment","src":"21191:20:97","value":{"arguments":[{"name":"_1","nativeSrc":"21204:2:97","nodeType":"YulIdentifier","src":"21204:2:97"},{"name":"_2","nativeSrc":"21208:2:97","nodeType":"YulIdentifier","src":"21208:2:97"}],"functionName":{"name":"and","nativeSrc":"21200:3:97","nodeType":"YulIdentifier","src":"21200:3:97"},"nativeSrc":"21200:11:97","nodeType":"YulFunctionCall","src":"21200:11:97"},"variableNames":[{"name":"value","nativeSrc":"21191:5:97","nodeType":"YulIdentifier","src":"21191:5:97"}]},{"body":{"nativeSrc":"21243:80:97","nodeType":"YulBlock","src":"21243:80:97","statements":[{"nativeSrc":"21257:56:97","nodeType":"YulAssignment","src":"21257:56:97","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"21274:2:97","nodeType":"YulIdentifier","src":"21274:2:97"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"21286:1:97","nodeType":"YulLiteral","src":"21286:1:97","type":"","value":"3"},{"arguments":[{"kind":"number","nativeSrc":"21293:2:97","nodeType":"YulLiteral","src":"21293:2:97","type":"","value":"20"},{"name":"len","nativeSrc":"21297:3:97","nodeType":"YulIdentifier","src":"21297:3:97"}],"functionName":{"name":"sub","nativeSrc":"21289:3:97","nodeType":"YulIdentifier","src":"21289:3:97"},"nativeSrc":"21289:12:97","nodeType":"YulFunctionCall","src":"21289:12:97"}],"functionName":{"name":"shl","nativeSrc":"21282:3:97","nodeType":"YulIdentifier","src":"21282:3:97"},"nativeSrc":"21282:20:97","nodeType":"YulFunctionCall","src":"21282:20:97"},{"name":"_2","nativeSrc":"21304:2:97","nodeType":"YulIdentifier","src":"21304:2:97"}],"functionName":{"name":"shl","nativeSrc":"21278:3:97","nodeType":"YulIdentifier","src":"21278:3:97"},"nativeSrc":"21278:29:97","nodeType":"YulFunctionCall","src":"21278:29:97"}],"functionName":{"name":"and","nativeSrc":"21270:3:97","nodeType":"YulIdentifier","src":"21270:3:97"},"nativeSrc":"21270:38:97","nodeType":"YulFunctionCall","src":"21270:38:97"},{"name":"_2","nativeSrc":"21310:2:97","nodeType":"YulIdentifier","src":"21310:2:97"}],"functionName":{"name":"and","nativeSrc":"21266:3:97","nodeType":"YulIdentifier","src":"21266:3:97"},"nativeSrc":"21266:47:97","nodeType":"YulFunctionCall","src":"21266:47:97"},"variableNames":[{"name":"value","nativeSrc":"21257:5:97","nodeType":"YulIdentifier","src":"21257:5:97"}]}]},"condition":{"arguments":[{"name":"len","nativeSrc":"21226:3:97","nodeType":"YulIdentifier","src":"21226:3:97"},{"kind":"number","nativeSrc":"21231:2:97","nodeType":"YulLiteral","src":"21231:2:97","type":"","value":"20"}],"functionName":{"name":"lt","nativeSrc":"21223:2:97","nodeType":"YulIdentifier","src":"21223:2:97"},"nativeSrc":"21223:11:97","nodeType":"YulFunctionCall","src":"21223:11:97"},"nativeSrc":"21220:103:97","nodeType":"YulIf","src":"21220:103:97"}]},"name":"convert_bytes_to_fixedbytes_from_t_bytes_calldata_ptr_to_t_bytes20","nativeSrc":"20957:372:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"21033:5:97","nodeType":"YulTypedName","src":"21033:5:97","type":""},{"name":"len","nativeSrc":"21040:3:97","nodeType":"YulTypedName","src":"21040:3:97","type":""}],"returnVariables":[{"name":"value","nativeSrc":"21048:5:97","nodeType":"YulTypedName","src":"21048:5:97","type":""}],"src":"20957:372:97"},{"body":{"nativeSrc":"21508:251:97","nodeType":"YulBlock","src":"21508:251:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"21525:9:97","nodeType":"YulIdentifier","src":"21525:9:97"},{"kind":"number","nativeSrc":"21536:2:97","nodeType":"YulLiteral","src":"21536:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"21518:6:97","nodeType":"YulIdentifier","src":"21518:6:97"},"nativeSrc":"21518:21:97","nodeType":"YulFunctionCall","src":"21518:21:97"},"nativeSrc":"21518:21:97","nodeType":"YulExpressionStatement","src":"21518:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21559:9:97","nodeType":"YulIdentifier","src":"21559:9:97"},{"kind":"number","nativeSrc":"21570:2:97","nodeType":"YulLiteral","src":"21570:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21555:3:97","nodeType":"YulIdentifier","src":"21555:3:97"},"nativeSrc":"21555:18:97","nodeType":"YulFunctionCall","src":"21555:18:97"},{"kind":"number","nativeSrc":"21575:2:97","nodeType":"YulLiteral","src":"21575:2:97","type":"","value":"61"}],"functionName":{"name":"mstore","nativeSrc":"21548:6:97","nodeType":"YulIdentifier","src":"21548:6:97"},"nativeSrc":"21548:30:97","nodeType":"YulFunctionCall","src":"21548:30:97"},"nativeSrc":"21548:30:97","nodeType":"YulExpressionStatement","src":"21548:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21598:9:97","nodeType":"YulIdentifier","src":"21598:9:97"},{"kind":"number","nativeSrc":"21609:2:97","nodeType":"YulLiteral","src":"21609:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"21594:3:97","nodeType":"YulIdentifier","src":"21594:3:97"},"nativeSrc":"21594:18:97","nodeType":"YulFunctionCall","src":"21594:18:97"},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a2072656d6f746520","kind":"string","nativeSrc":"21614:34:97","nodeType":"YulLiteral","src":"21614:34:97","type":"","value":"OmnichainProposalSender: remote "}],"functionName":{"name":"mstore","nativeSrc":"21587:6:97","nodeType":"YulIdentifier","src":"21587:6:97"},"nativeSrc":"21587:62:97","nodeType":"YulFunctionCall","src":"21587:62:97"},"nativeSrc":"21587:62:97","nodeType":"YulExpressionStatement","src":"21587:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21669:9:97","nodeType":"YulIdentifier","src":"21669:9:97"},{"kind":"number","nativeSrc":"21680:2:97","nodeType":"YulLiteral","src":"21680:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"21665:3:97","nodeType":"YulIdentifier","src":"21665:3:97"},"nativeSrc":"21665:18:97","nodeType":"YulFunctionCall","src":"21665:18:97"},{"hexValue":"61646472657373206d757374206265203230206279746573206c6f6e67","kind":"string","nativeSrc":"21685:31:97","nodeType":"YulLiteral","src":"21685:31:97","type":"","value":"address must be 20 bytes long"}],"functionName":{"name":"mstore","nativeSrc":"21658:6:97","nodeType":"YulIdentifier","src":"21658:6:97"},"nativeSrc":"21658:59:97","nodeType":"YulFunctionCall","src":"21658:59:97"},"nativeSrc":"21658:59:97","nodeType":"YulExpressionStatement","src":"21658:59:97"},{"nativeSrc":"21726:27:97","nodeType":"YulAssignment","src":"21726:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"21738:9:97","nodeType":"YulIdentifier","src":"21738:9:97"},{"kind":"number","nativeSrc":"21749:3:97","nodeType":"YulLiteral","src":"21749:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"21734:3:97","nodeType":"YulIdentifier","src":"21734:3:97"},"nativeSrc":"21734:19:97","nodeType":"YulFunctionCall","src":"21734:19:97"},"variableNames":[{"name":"tail","nativeSrc":"21726:4:97","nodeType":"YulIdentifier","src":"21726:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_f5eefd0c62457e6ddad4d12b314f91d912b3ccd761af75b4b7cf73ff444e1b62__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"21334:425:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21485:9:97","nodeType":"YulTypedName","src":"21485:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"21499:4:97","nodeType":"YulTypedName","src":"21499:4:97","type":""}],"src":"21334:425:97"},{"body":{"nativeSrc":"21939:220:97","nodeType":"YulBlock","src":"21939:220:97","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"21962:3:97","nodeType":"YulIdentifier","src":"21962:3:97"},{"name":"value0","nativeSrc":"21967:6:97","nodeType":"YulIdentifier","src":"21967:6:97"},{"name":"value1","nativeSrc":"21975:6:97","nodeType":"YulIdentifier","src":"21975:6:97"}],"functionName":{"name":"calldatacopy","nativeSrc":"21949:12:97","nodeType":"YulIdentifier","src":"21949:12:97"},"nativeSrc":"21949:33:97","nodeType":"YulFunctionCall","src":"21949:33:97"},"nativeSrc":"21949:33:97","nodeType":"YulExpressionStatement","src":"21949:33:97"},{"nativeSrc":"21991:26:97","nodeType":"YulVariableDeclaration","src":"21991:26:97","value":{"arguments":[{"name":"pos","nativeSrc":"22005:3:97","nodeType":"YulIdentifier","src":"22005:3:97"},{"name":"value1","nativeSrc":"22010:6:97","nodeType":"YulIdentifier","src":"22010:6:97"}],"functionName":{"name":"add","nativeSrc":"22001:3:97","nodeType":"YulIdentifier","src":"22001:3:97"},"nativeSrc":"22001:16:97","nodeType":"YulFunctionCall","src":"22001:16:97"},"variables":[{"name":"_1","nativeSrc":"21995:2:97","nodeType":"YulTypedName","src":"21995:2:97","type":""}]},{"expression":{"arguments":[{"name":"_1","nativeSrc":"22033:2:97","nodeType":"YulIdentifier","src":"22033:2:97"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"22045:2:97","nodeType":"YulLiteral","src":"22045:2:97","type":"","value":"96"},{"name":"value2","nativeSrc":"22049:6:97","nodeType":"YulIdentifier","src":"22049:6:97"}],"functionName":{"name":"shl","nativeSrc":"22041:3:97","nodeType":"YulIdentifier","src":"22041:3:97"},"nativeSrc":"22041:15:97","nodeType":"YulFunctionCall","src":"22041:15:97"},{"kind":"number","nativeSrc":"22058:66:97","nodeType":"YulLiteral","src":"22058:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"22037:3:97","nodeType":"YulIdentifier","src":"22037:3:97"},"nativeSrc":"22037:88:97","nodeType":"YulFunctionCall","src":"22037:88:97"}],"functionName":{"name":"mstore","nativeSrc":"22026:6:97","nodeType":"YulIdentifier","src":"22026:6:97"},"nativeSrc":"22026:100:97","nodeType":"YulFunctionCall","src":"22026:100:97"},"nativeSrc":"22026:100:97","nodeType":"YulExpressionStatement","src":"22026:100:97"},{"nativeSrc":"22135:18:97","nodeType":"YulAssignment","src":"22135:18:97","value":{"arguments":[{"name":"_1","nativeSrc":"22146:2:97","nodeType":"YulIdentifier","src":"22146:2:97"},{"kind":"number","nativeSrc":"22150:2:97","nodeType":"YulLiteral","src":"22150:2:97","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"22142:3:97","nodeType":"YulIdentifier","src":"22142:3:97"},"nativeSrc":"22142:11:97","nodeType":"YulFunctionCall","src":"22142:11:97"},"variableNames":[{"name":"end","nativeSrc":"22135:3:97","nodeType":"YulIdentifier","src":"22135:3:97"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed","nativeSrc":"21764:395:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"21899:3:97","nodeType":"YulTypedName","src":"21899:3:97","type":""},{"name":"value2","nativeSrc":"21904:6:97","nodeType":"YulTypedName","src":"21904:6:97","type":""},{"name":"value1","nativeSrc":"21912:6:97","nodeType":"YulTypedName","src":"21912:6:97","type":""},{"name":"value0","nativeSrc":"21920:6:97","nodeType":"YulTypedName","src":"21920:6:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"21931:3:97","nodeType":"YulTypedName","src":"21931:3:97","type":""}],"src":"21764:395:97"},{"body":{"nativeSrc":"22219:65:97","nodeType":"YulBlock","src":"22219:65:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"22236:1:97","nodeType":"YulLiteral","src":"22236:1:97","type":"","value":"0"},{"name":"ptr","nativeSrc":"22239:3:97","nodeType":"YulIdentifier","src":"22239:3:97"}],"functionName":{"name":"mstore","nativeSrc":"22229:6:97","nodeType":"YulIdentifier","src":"22229:6:97"},"nativeSrc":"22229:14:97","nodeType":"YulFunctionCall","src":"22229:14:97"},"nativeSrc":"22229:14:97","nodeType":"YulExpressionStatement","src":"22229:14:97"},{"nativeSrc":"22252:26:97","nodeType":"YulAssignment","src":"22252:26:97","value":{"arguments":[{"kind":"number","nativeSrc":"22270:1:97","nodeType":"YulLiteral","src":"22270:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"22273:4:97","nodeType":"YulLiteral","src":"22273:4:97","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"22260:9:97","nodeType":"YulIdentifier","src":"22260:9:97"},"nativeSrc":"22260:18:97","nodeType":"YulFunctionCall","src":"22260:18:97"},"variableNames":[{"name":"data","nativeSrc":"22252:4:97","nodeType":"YulIdentifier","src":"22252:4:97"}]}]},"name":"array_dataslot_bytes_storage","nativeSrc":"22164:120:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"22202:3:97","nodeType":"YulTypedName","src":"22202:3:97","type":""}],"returnVariables":[{"name":"data","nativeSrc":"22210:4:97","nodeType":"YulTypedName","src":"22210:4:97","type":""}],"src":"22164:120:97"},{"body":{"nativeSrc":"22369:462:97","nodeType":"YulBlock","src":"22369:462:97","statements":[{"body":{"nativeSrc":"22402:423:97","nodeType":"YulBlock","src":"22402:423:97","statements":[{"nativeSrc":"22416:11:97","nodeType":"YulVariableDeclaration","src":"22416:11:97","value":{"kind":"number","nativeSrc":"22426:1:97","nodeType":"YulLiteral","src":"22426:1:97","type":"","value":"0"},"variables":[{"name":"_1","nativeSrc":"22420:2:97","nodeType":"YulTypedName","src":"22420:2:97","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"22447:1:97","nodeType":"YulLiteral","src":"22447:1:97","type":"","value":"0"},{"name":"array","nativeSrc":"22450:5:97","nodeType":"YulIdentifier","src":"22450:5:97"}],"functionName":{"name":"mstore","nativeSrc":"22440:6:97","nodeType":"YulIdentifier","src":"22440:6:97"},"nativeSrc":"22440:16:97","nodeType":"YulFunctionCall","src":"22440:16:97"},"nativeSrc":"22440:16:97","nodeType":"YulExpressionStatement","src":"22440:16:97"},{"nativeSrc":"22469:30:97","nodeType":"YulVariableDeclaration","src":"22469:30:97","value":{"arguments":[{"kind":"number","nativeSrc":"22491:1:97","nodeType":"YulLiteral","src":"22491:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"22494:4:97","nodeType":"YulLiteral","src":"22494:4:97","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"22481:9:97","nodeType":"YulIdentifier","src":"22481:9:97"},"nativeSrc":"22481:18:97","nodeType":"YulFunctionCall","src":"22481:18:97"},"variables":[{"name":"data","nativeSrc":"22473:4:97","nodeType":"YulTypedName","src":"22473:4:97","type":""}]},{"nativeSrc":"22512:57:97","nodeType":"YulVariableDeclaration","src":"22512:57:97","value":{"arguments":[{"name":"data","nativeSrc":"22535:4:97","nodeType":"YulIdentifier","src":"22535:4:97"},{"arguments":[{"kind":"number","nativeSrc":"22545:1:97","nodeType":"YulLiteral","src":"22545:1:97","type":"","value":"5"},{"arguments":[{"name":"startIndex","nativeSrc":"22552:10:97","nodeType":"YulIdentifier","src":"22552:10:97"},{"kind":"number","nativeSrc":"22564:2:97","nodeType":"YulLiteral","src":"22564:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"22548:3:97","nodeType":"YulIdentifier","src":"22548:3:97"},"nativeSrc":"22548:19:97","nodeType":"YulFunctionCall","src":"22548:19:97"}],"functionName":{"name":"shr","nativeSrc":"22541:3:97","nodeType":"YulIdentifier","src":"22541:3:97"},"nativeSrc":"22541:27:97","nodeType":"YulFunctionCall","src":"22541:27:97"}],"functionName":{"name":"add","nativeSrc":"22531:3:97","nodeType":"YulIdentifier","src":"22531:3:97"},"nativeSrc":"22531:38:97","nodeType":"YulFunctionCall","src":"22531:38:97"},"variables":[{"name":"deleteStart","nativeSrc":"22516:11:97","nodeType":"YulTypedName","src":"22516:11:97","type":""}]},{"body":{"nativeSrc":"22606:23:97","nodeType":"YulBlock","src":"22606:23:97","statements":[{"nativeSrc":"22608:19:97","nodeType":"YulAssignment","src":"22608:19:97","value":{"name":"data","nativeSrc":"22623:4:97","nodeType":"YulIdentifier","src":"22623:4:97"},"variableNames":[{"name":"deleteStart","nativeSrc":"22608:11:97","nodeType":"YulIdentifier","src":"22608:11:97"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"22588:10:97","nodeType":"YulIdentifier","src":"22588:10:97"},{"kind":"number","nativeSrc":"22600:4:97","nodeType":"YulLiteral","src":"22600:4:97","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"22585:2:97","nodeType":"YulIdentifier","src":"22585:2:97"},"nativeSrc":"22585:20:97","nodeType":"YulFunctionCall","src":"22585:20:97"},"nativeSrc":"22582:47:97","nodeType":"YulIf","src":"22582:47:97"},{"nativeSrc":"22642:41:97","nodeType":"YulVariableDeclaration","src":"22642:41:97","value":{"arguments":[{"name":"data","nativeSrc":"22656:4:97","nodeType":"YulIdentifier","src":"22656:4:97"},{"arguments":[{"kind":"number","nativeSrc":"22666:1:97","nodeType":"YulLiteral","src":"22666:1:97","type":"","value":"5"},{"arguments":[{"name":"len","nativeSrc":"22673:3:97","nodeType":"YulIdentifier","src":"22673:3:97"},{"kind":"number","nativeSrc":"22678:2:97","nodeType":"YulLiteral","src":"22678:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"22669:3:97","nodeType":"YulIdentifier","src":"22669:3:97"},"nativeSrc":"22669:12:97","nodeType":"YulFunctionCall","src":"22669:12:97"}],"functionName":{"name":"shr","nativeSrc":"22662:3:97","nodeType":"YulIdentifier","src":"22662:3:97"},"nativeSrc":"22662:20:97","nodeType":"YulFunctionCall","src":"22662:20:97"}],"functionName":{"name":"add","nativeSrc":"22652:3:97","nodeType":"YulIdentifier","src":"22652:3:97"},"nativeSrc":"22652:31:97","nodeType":"YulFunctionCall","src":"22652:31:97"},"variables":[{"name":"_2","nativeSrc":"22646:2:97","nodeType":"YulTypedName","src":"22646:2:97","type":""}]},{"nativeSrc":"22696:24:97","nodeType":"YulVariableDeclaration","src":"22696:24:97","value":{"name":"deleteStart","nativeSrc":"22709:11:97","nodeType":"YulIdentifier","src":"22709:11:97"},"variables":[{"name":"start","nativeSrc":"22700:5:97","nodeType":"YulTypedName","src":"22700:5:97","type":""}]},{"body":{"nativeSrc":"22794:21:97","nodeType":"YulBlock","src":"22794:21:97","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"22803:5:97","nodeType":"YulIdentifier","src":"22803:5:97"},{"name":"_1","nativeSrc":"22810:2:97","nodeType":"YulIdentifier","src":"22810:2:97"}],"functionName":{"name":"sstore","nativeSrc":"22796:6:97","nodeType":"YulIdentifier","src":"22796:6:97"},"nativeSrc":"22796:17:97","nodeType":"YulFunctionCall","src":"22796:17:97"},"nativeSrc":"22796:17:97","nodeType":"YulExpressionStatement","src":"22796:17:97"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"22744:5:97","nodeType":"YulIdentifier","src":"22744:5:97"},{"name":"_2","nativeSrc":"22751:2:97","nodeType":"YulIdentifier","src":"22751:2:97"}],"functionName":{"name":"lt","nativeSrc":"22741:2:97","nodeType":"YulIdentifier","src":"22741:2:97"},"nativeSrc":"22741:13:97","nodeType":"YulFunctionCall","src":"22741:13:97"},"nativeSrc":"22733:82:97","nodeType":"YulForLoop","post":{"nativeSrc":"22755:26:97","nodeType":"YulBlock","src":"22755:26:97","statements":[{"nativeSrc":"22757:22:97","nodeType":"YulAssignment","src":"22757:22:97","value":{"arguments":[{"name":"start","nativeSrc":"22770:5:97","nodeType":"YulIdentifier","src":"22770:5:97"},{"kind":"number","nativeSrc":"22777:1:97","nodeType":"YulLiteral","src":"22777:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"22766:3:97","nodeType":"YulIdentifier","src":"22766:3:97"},"nativeSrc":"22766:13:97","nodeType":"YulFunctionCall","src":"22766:13:97"},"variableNames":[{"name":"start","nativeSrc":"22757:5:97","nodeType":"YulIdentifier","src":"22757:5:97"}]}]},"pre":{"nativeSrc":"22737:3:97","nodeType":"YulBlock","src":"22737:3:97","statements":[]},"src":"22733:82:97"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"22385:3:97","nodeType":"YulIdentifier","src":"22385:3:97"},{"kind":"number","nativeSrc":"22390:2:97","nodeType":"YulLiteral","src":"22390:2:97","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"22382:2:97","nodeType":"YulIdentifier","src":"22382:2:97"},"nativeSrc":"22382:11:97","nodeType":"YulFunctionCall","src":"22382:11:97"},"nativeSrc":"22379:446:97","nodeType":"YulIf","src":"22379:446:97"}]},"name":"clean_up_bytearray_end_slots_bytes_storage","nativeSrc":"22289:542:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"22341:5:97","nodeType":"YulTypedName","src":"22341:5:97","type":""},{"name":"len","nativeSrc":"22348:3:97","nodeType":"YulTypedName","src":"22348:3:97","type":""},{"name":"startIndex","nativeSrc":"22353:10:97","nodeType":"YulTypedName","src":"22353:10:97","type":""}],"src":"22289:542:97"},{"body":{"nativeSrc":"22921:141:97","nodeType":"YulBlock","src":"22921:141:97","statements":[{"nativeSrc":"22931:125:97","nodeType":"YulAssignment","src":"22931:125:97","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"22946:4:97","nodeType":"YulIdentifier","src":"22946:4:97"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"22964:1:97","nodeType":"YulLiteral","src":"22964:1:97","type":"","value":"3"},{"name":"len","nativeSrc":"22967:3:97","nodeType":"YulIdentifier","src":"22967:3:97"}],"functionName":{"name":"shl","nativeSrc":"22960:3:97","nodeType":"YulIdentifier","src":"22960:3:97"},"nativeSrc":"22960:11:97","nodeType":"YulFunctionCall","src":"22960:11:97"},{"kind":"number","nativeSrc":"22973:66:97","nodeType":"YulLiteral","src":"22973:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shr","nativeSrc":"22956:3:97","nodeType":"YulIdentifier","src":"22956:3:97"},"nativeSrc":"22956:84:97","nodeType":"YulFunctionCall","src":"22956:84:97"}],"functionName":{"name":"not","nativeSrc":"22952:3:97","nodeType":"YulIdentifier","src":"22952:3:97"},"nativeSrc":"22952:89:97","nodeType":"YulFunctionCall","src":"22952:89:97"}],"functionName":{"name":"and","nativeSrc":"22942:3:97","nodeType":"YulIdentifier","src":"22942:3:97"},"nativeSrc":"22942:100:97","nodeType":"YulFunctionCall","src":"22942:100:97"},{"arguments":[{"kind":"number","nativeSrc":"23048:1:97","nodeType":"YulLiteral","src":"23048:1:97","type":"","value":"1"},{"name":"len","nativeSrc":"23051:3:97","nodeType":"YulIdentifier","src":"23051:3:97"}],"functionName":{"name":"shl","nativeSrc":"23044:3:97","nodeType":"YulIdentifier","src":"23044:3:97"},"nativeSrc":"23044:11:97","nodeType":"YulFunctionCall","src":"23044:11:97"}],"functionName":{"name":"or","nativeSrc":"22939:2:97","nodeType":"YulIdentifier","src":"22939:2:97"},"nativeSrc":"22939:117:97","nodeType":"YulFunctionCall","src":"22939:117:97"},"variableNames":[{"name":"used","nativeSrc":"22931:4:97","nodeType":"YulIdentifier","src":"22931:4:97"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"22836:226:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"22898:4:97","nodeType":"YulTypedName","src":"22898:4:97","type":""},{"name":"len","nativeSrc":"22904:3:97","nodeType":"YulTypedName","src":"22904:3:97","type":""}],"returnVariables":[{"name":"used","nativeSrc":"22912:4:97","nodeType":"YulTypedName","src":"22912:4:97","type":""}],"src":"22836:226:97"},{"body":{"nativeSrc":"23161:1366:97","nodeType":"YulBlock","src":"23161:1366:97","statements":[{"nativeSrc":"23171:24:97","nodeType":"YulVariableDeclaration","src":"23171:24:97","value":{"arguments":[{"name":"src","nativeSrc":"23191:3:97","nodeType":"YulIdentifier","src":"23191:3:97"}],"functionName":{"name":"mload","nativeSrc":"23185:5:97","nodeType":"YulIdentifier","src":"23185:5:97"},"nativeSrc":"23185:10:97","nodeType":"YulFunctionCall","src":"23185:10:97"},"variables":[{"name":"newLen","nativeSrc":"23175:6:97","nodeType":"YulTypedName","src":"23175:6:97","type":""}]},{"body":{"nativeSrc":"23238:22:97","nodeType":"YulBlock","src":"23238:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"23240:16:97","nodeType":"YulIdentifier","src":"23240:16:97"},"nativeSrc":"23240:18:97","nodeType":"YulFunctionCall","src":"23240:18:97"},"nativeSrc":"23240:18:97","nodeType":"YulExpressionStatement","src":"23240:18:97"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"23210:6:97","nodeType":"YulIdentifier","src":"23210:6:97"},{"kind":"number","nativeSrc":"23218:18:97","nodeType":"YulLiteral","src":"23218:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"23207:2:97","nodeType":"YulIdentifier","src":"23207:2:97"},"nativeSrc":"23207:30:97","nodeType":"YulFunctionCall","src":"23207:30:97"},"nativeSrc":"23204:56:97","nodeType":"YulIf","src":"23204:56:97"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"23312:4:97","nodeType":"YulIdentifier","src":"23312:4:97"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"23350:4:97","nodeType":"YulIdentifier","src":"23350:4:97"}],"functionName":{"name":"sload","nativeSrc":"23344:5:97","nodeType":"YulIdentifier","src":"23344:5:97"},"nativeSrc":"23344:11:97","nodeType":"YulFunctionCall","src":"23344:11:97"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"23318:25:97","nodeType":"YulIdentifier","src":"23318:25:97"},"nativeSrc":"23318:38:97","nodeType":"YulFunctionCall","src":"23318:38:97"},{"name":"newLen","nativeSrc":"23358:6:97","nodeType":"YulIdentifier","src":"23358:6:97"}],"functionName":{"name":"clean_up_bytearray_end_slots_bytes_storage","nativeSrc":"23269:42:97","nodeType":"YulIdentifier","src":"23269:42:97"},"nativeSrc":"23269:96:97","nodeType":"YulFunctionCall","src":"23269:96:97"},"nativeSrc":"23269:96:97","nodeType":"YulExpressionStatement","src":"23269:96:97"},{"nativeSrc":"23374:18:97","nodeType":"YulVariableDeclaration","src":"23374:18:97","value":{"kind":"number","nativeSrc":"23391:1:97","nodeType":"YulLiteral","src":"23391:1:97","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"23378:9:97","nodeType":"YulTypedName","src":"23378:9:97","type":""}]},{"nativeSrc":"23401:23:97","nodeType":"YulVariableDeclaration","src":"23401:23:97","value":{"kind":"number","nativeSrc":"23420:4:97","nodeType":"YulLiteral","src":"23420:4:97","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nativeSrc":"23405:11:97","nodeType":"YulTypedName","src":"23405:11:97","type":""}]},{"nativeSrc":"23433:17:97","nodeType":"YulAssignment","src":"23433:17:97","value":{"kind":"number","nativeSrc":"23446:4:97","nodeType":"YulLiteral","src":"23446:4:97","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"23433:9:97","nodeType":"YulIdentifier","src":"23433:9:97"}]},{"cases":[{"body":{"nativeSrc":"23496:774:97","nodeType":"YulBlock","src":"23496:774:97","statements":[{"nativeSrc":"23510:94:97","nodeType":"YulVariableDeclaration","src":"23510:94:97","value":{"arguments":[{"name":"newLen","nativeSrc":"23529:6:97","nodeType":"YulIdentifier","src":"23529:6:97"},{"kind":"number","nativeSrc":"23537:66:97","nodeType":"YulLiteral","src":"23537:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"23525:3:97","nodeType":"YulIdentifier","src":"23525:3:97"},"nativeSrc":"23525:79:97","nodeType":"YulFunctionCall","src":"23525:79:97"},"variables":[{"name":"loopEnd","nativeSrc":"23514:7:97","nodeType":"YulTypedName","src":"23514:7:97","type":""}]},{"nativeSrc":"23617:48:97","nodeType":"YulVariableDeclaration","src":"23617:48:97","value":{"arguments":[{"name":"slot","nativeSrc":"23660:4:97","nodeType":"YulIdentifier","src":"23660:4:97"}],"functionName":{"name":"array_dataslot_bytes_storage","nativeSrc":"23631:28:97","nodeType":"YulIdentifier","src":"23631:28:97"},"nativeSrc":"23631:34:97","nodeType":"YulFunctionCall","src":"23631:34:97"},"variables":[{"name":"dstPtr","nativeSrc":"23621:6:97","nodeType":"YulTypedName","src":"23621:6:97","type":""}]},{"nativeSrc":"23678:10:97","nodeType":"YulVariableDeclaration","src":"23678:10:97","value":{"kind":"number","nativeSrc":"23687:1:97","nodeType":"YulLiteral","src":"23687:1:97","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"23682:1:97","nodeType":"YulTypedName","src":"23682:1:97","type":""}]},{"body":{"nativeSrc":"23765:172:97","nodeType":"YulBlock","src":"23765:172:97","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"23790:6:97","nodeType":"YulIdentifier","src":"23790:6:97"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"23808:3:97","nodeType":"YulIdentifier","src":"23808:3:97"},{"name":"srcOffset","nativeSrc":"23813:9:97","nodeType":"YulIdentifier","src":"23813:9:97"}],"functionName":{"name":"add","nativeSrc":"23804:3:97","nodeType":"YulIdentifier","src":"23804:3:97"},"nativeSrc":"23804:19:97","nodeType":"YulFunctionCall","src":"23804:19:97"}],"functionName":{"name":"mload","nativeSrc":"23798:5:97","nodeType":"YulIdentifier","src":"23798:5:97"},"nativeSrc":"23798:26:97","nodeType":"YulFunctionCall","src":"23798:26:97"}],"functionName":{"name":"sstore","nativeSrc":"23783:6:97","nodeType":"YulIdentifier","src":"23783:6:97"},"nativeSrc":"23783:42:97","nodeType":"YulFunctionCall","src":"23783:42:97"},"nativeSrc":"23783:42:97","nodeType":"YulExpressionStatement","src":"23783:42:97"},{"nativeSrc":"23842:24:97","nodeType":"YulAssignment","src":"23842:24:97","value":{"arguments":[{"name":"dstPtr","nativeSrc":"23856:6:97","nodeType":"YulIdentifier","src":"23856:6:97"},{"kind":"number","nativeSrc":"23864:1:97","nodeType":"YulLiteral","src":"23864:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"23852:3:97","nodeType":"YulIdentifier","src":"23852:3:97"},"nativeSrc":"23852:14:97","nodeType":"YulFunctionCall","src":"23852:14:97"},"variableNames":[{"name":"dstPtr","nativeSrc":"23842:6:97","nodeType":"YulIdentifier","src":"23842:6:97"}]},{"nativeSrc":"23883:40:97","nodeType":"YulAssignment","src":"23883:40:97","value":{"arguments":[{"name":"srcOffset","nativeSrc":"23900:9:97","nodeType":"YulIdentifier","src":"23900:9:97"},{"name":"srcOffset_1","nativeSrc":"23911:11:97","nodeType":"YulIdentifier","src":"23911:11:97"}],"functionName":{"name":"add","nativeSrc":"23896:3:97","nodeType":"YulIdentifier","src":"23896:3:97"},"nativeSrc":"23896:27:97","nodeType":"YulFunctionCall","src":"23896:27:97"},"variableNames":[{"name":"srcOffset","nativeSrc":"23883:9:97","nodeType":"YulIdentifier","src":"23883:9:97"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"23712:1:97","nodeType":"YulIdentifier","src":"23712:1:97"},{"name":"loopEnd","nativeSrc":"23715:7:97","nodeType":"YulIdentifier","src":"23715:7:97"}],"functionName":{"name":"lt","nativeSrc":"23709:2:97","nodeType":"YulIdentifier","src":"23709:2:97"},"nativeSrc":"23709:14:97","nodeType":"YulFunctionCall","src":"23709:14:97"},"nativeSrc":"23701:236:97","nodeType":"YulForLoop","post":{"nativeSrc":"23724:28:97","nodeType":"YulBlock","src":"23724:28:97","statements":[{"nativeSrc":"23726:24:97","nodeType":"YulAssignment","src":"23726:24:97","value":{"arguments":[{"name":"i","nativeSrc":"23735:1:97","nodeType":"YulIdentifier","src":"23735:1:97"},{"name":"srcOffset_1","nativeSrc":"23738:11:97","nodeType":"YulIdentifier","src":"23738:11:97"}],"functionName":{"name":"add","nativeSrc":"23731:3:97","nodeType":"YulIdentifier","src":"23731:3:97"},"nativeSrc":"23731:19:97","nodeType":"YulFunctionCall","src":"23731:19:97"},"variableNames":[{"name":"i","nativeSrc":"23726:1:97","nodeType":"YulIdentifier","src":"23726:1:97"}]}]},"pre":{"nativeSrc":"23705:3:97","nodeType":"YulBlock","src":"23705:3:97","statements":[]},"src":"23701:236:97"},{"body":{"nativeSrc":"23985:226:97","nodeType":"YulBlock","src":"23985:226:97","statements":[{"nativeSrc":"24003:43:97","nodeType":"YulVariableDeclaration","src":"24003:43:97","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"24030:3:97","nodeType":"YulIdentifier","src":"24030:3:97"},{"name":"srcOffset","nativeSrc":"24035:9:97","nodeType":"YulIdentifier","src":"24035:9:97"}],"functionName":{"name":"add","nativeSrc":"24026:3:97","nodeType":"YulIdentifier","src":"24026:3:97"},"nativeSrc":"24026:19:97","nodeType":"YulFunctionCall","src":"24026:19:97"}],"functionName":{"name":"mload","nativeSrc":"24020:5:97","nodeType":"YulIdentifier","src":"24020:5:97"},"nativeSrc":"24020:26:97","nodeType":"YulFunctionCall","src":"24020:26:97"},"variables":[{"name":"lastValue","nativeSrc":"24007:9:97","nodeType":"YulTypedName","src":"24007:9:97","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"24070:6:97","nodeType":"YulIdentifier","src":"24070:6:97"},{"arguments":[{"name":"lastValue","nativeSrc":"24082:9:97","nodeType":"YulIdentifier","src":"24082:9:97"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"24109:1:97","nodeType":"YulLiteral","src":"24109:1:97","type":"","value":"3"},{"name":"newLen","nativeSrc":"24112:6:97","nodeType":"YulIdentifier","src":"24112:6:97"}],"functionName":{"name":"shl","nativeSrc":"24105:3:97","nodeType":"YulIdentifier","src":"24105:3:97"},"nativeSrc":"24105:14:97","nodeType":"YulFunctionCall","src":"24105:14:97"},{"kind":"number","nativeSrc":"24121:3:97","nodeType":"YulLiteral","src":"24121:3:97","type":"","value":"248"}],"functionName":{"name":"and","nativeSrc":"24101:3:97","nodeType":"YulIdentifier","src":"24101:3:97"},"nativeSrc":"24101:24:97","nodeType":"YulFunctionCall","src":"24101:24:97"},{"kind":"number","nativeSrc":"24127:66:97","nodeType":"YulLiteral","src":"24127:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shr","nativeSrc":"24097:3:97","nodeType":"YulIdentifier","src":"24097:3:97"},"nativeSrc":"24097:97:97","nodeType":"YulFunctionCall","src":"24097:97:97"}],"functionName":{"name":"not","nativeSrc":"24093:3:97","nodeType":"YulIdentifier","src":"24093:3:97"},"nativeSrc":"24093:102:97","nodeType":"YulFunctionCall","src":"24093:102:97"}],"functionName":{"name":"and","nativeSrc":"24078:3:97","nodeType":"YulIdentifier","src":"24078:3:97"},"nativeSrc":"24078:118:97","nodeType":"YulFunctionCall","src":"24078:118:97"}],"functionName":{"name":"sstore","nativeSrc":"24063:6:97","nodeType":"YulIdentifier","src":"24063:6:97"},"nativeSrc":"24063:134:97","nodeType":"YulFunctionCall","src":"24063:134:97"},"nativeSrc":"24063:134:97","nodeType":"YulExpressionStatement","src":"24063:134:97"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"23956:7:97","nodeType":"YulIdentifier","src":"23956:7:97"},{"name":"newLen","nativeSrc":"23965:6:97","nodeType":"YulIdentifier","src":"23965:6:97"}],"functionName":{"name":"lt","nativeSrc":"23953:2:97","nodeType":"YulIdentifier","src":"23953:2:97"},"nativeSrc":"23953:19:97","nodeType":"YulFunctionCall","src":"23953:19:97"},"nativeSrc":"23950:261:97","nodeType":"YulIf","src":"23950:261:97"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"24231:4:97","nodeType":"YulIdentifier","src":"24231:4:97"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"24245:1:97","nodeType":"YulLiteral","src":"24245:1:97","type":"","value":"1"},{"name":"newLen","nativeSrc":"24248:6:97","nodeType":"YulIdentifier","src":"24248:6:97"}],"functionName":{"name":"shl","nativeSrc":"24241:3:97","nodeType":"YulIdentifier","src":"24241:3:97"},"nativeSrc":"24241:14:97","nodeType":"YulFunctionCall","src":"24241:14:97"},{"kind":"number","nativeSrc":"24257:1:97","nodeType":"YulLiteral","src":"24257:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"24237:3:97","nodeType":"YulIdentifier","src":"24237:3:97"},"nativeSrc":"24237:22:97","nodeType":"YulFunctionCall","src":"24237:22:97"}],"functionName":{"name":"sstore","nativeSrc":"24224:6:97","nodeType":"YulIdentifier","src":"24224:6:97"},"nativeSrc":"24224:36:97","nodeType":"YulFunctionCall","src":"24224:36:97"},"nativeSrc":"24224:36:97","nodeType":"YulExpressionStatement","src":"24224:36:97"}]},"nativeSrc":"23489:781:97","nodeType":"YulCase","src":"23489:781:97","value":{"kind":"number","nativeSrc":"23494:1:97","nodeType":"YulLiteral","src":"23494:1:97","type":"","value":"1"}},{"body":{"nativeSrc":"24287:234:97","nodeType":"YulBlock","src":"24287:234:97","statements":[{"nativeSrc":"24301:14:97","nodeType":"YulVariableDeclaration","src":"24301:14:97","value":{"kind":"number","nativeSrc":"24314:1:97","nodeType":"YulLiteral","src":"24314:1:97","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"24305:5:97","nodeType":"YulTypedName","src":"24305:5:97","type":""}]},{"body":{"nativeSrc":"24350:67:97","nodeType":"YulBlock","src":"24350:67:97","statements":[{"nativeSrc":"24368:35:97","nodeType":"YulAssignment","src":"24368:35:97","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"24387:3:97","nodeType":"YulIdentifier","src":"24387:3:97"},{"name":"srcOffset","nativeSrc":"24392:9:97","nodeType":"YulIdentifier","src":"24392:9:97"}],"functionName":{"name":"add","nativeSrc":"24383:3:97","nodeType":"YulIdentifier","src":"24383:3:97"},"nativeSrc":"24383:19:97","nodeType":"YulFunctionCall","src":"24383:19:97"}],"functionName":{"name":"mload","nativeSrc":"24377:5:97","nodeType":"YulIdentifier","src":"24377:5:97"},"nativeSrc":"24377:26:97","nodeType":"YulFunctionCall","src":"24377:26:97"},"variableNames":[{"name":"value","nativeSrc":"24368:5:97","nodeType":"YulIdentifier","src":"24368:5:97"}]}]},"condition":{"name":"newLen","nativeSrc":"24331:6:97","nodeType":"YulIdentifier","src":"24331:6:97"},"nativeSrc":"24328:89:97","nodeType":"YulIf","src":"24328:89:97"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"24437:4:97","nodeType":"YulIdentifier","src":"24437:4:97"},{"arguments":[{"name":"value","nativeSrc":"24496:5:97","nodeType":"YulIdentifier","src":"24496:5:97"},{"name":"newLen","nativeSrc":"24503:6:97","nodeType":"YulIdentifier","src":"24503:6:97"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"24443:52:97","nodeType":"YulIdentifier","src":"24443:52:97"},"nativeSrc":"24443:67:97","nodeType":"YulFunctionCall","src":"24443:67:97"}],"functionName":{"name":"sstore","nativeSrc":"24430:6:97","nodeType":"YulIdentifier","src":"24430:6:97"},"nativeSrc":"24430:81:97","nodeType":"YulFunctionCall","src":"24430:81:97"},"nativeSrc":"24430:81:97","nodeType":"YulExpressionStatement","src":"24430:81:97"}]},"nativeSrc":"24279:242:97","nodeType":"YulCase","src":"24279:242:97","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"23469:6:97","nodeType":"YulIdentifier","src":"23469:6:97"},{"kind":"number","nativeSrc":"23477:2:97","nodeType":"YulLiteral","src":"23477:2:97","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"23466:2:97","nodeType":"YulIdentifier","src":"23466:2:97"},"nativeSrc":"23466:14:97","nodeType":"YulFunctionCall","src":"23466:14:97"},"nativeSrc":"23459:1062:97","nodeType":"YulSwitch","src":"23459:1062:97"}]},"name":"copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage","nativeSrc":"23067:1460:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"23146:4:97","nodeType":"YulTypedName","src":"23146:4:97","type":""},{"name":"src","nativeSrc":"23152:3:97","nodeType":"YulTypedName","src":"23152:3:97","type":""}],"src":"23067:1460:97"},{"body":{"nativeSrc":"24694:983:97","nodeType":"YulBlock","src":"24694:983:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"24711:9:97","nodeType":"YulIdentifier","src":"24711:9:97"},{"kind":"number","nativeSrc":"24722:2:97","nodeType":"YulLiteral","src":"24722:2:97","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"24704:6:97","nodeType":"YulIdentifier","src":"24704:6:97"},"nativeSrc":"24704:21:97","nodeType":"YulFunctionCall","src":"24704:21:97"},"nativeSrc":"24704:21:97","nodeType":"YulExpressionStatement","src":"24704:21:97"},{"nativeSrc":"24734:58:97","nodeType":"YulVariableDeclaration","src":"24734:58:97","value":{"arguments":[{"name":"value0","nativeSrc":"24765:6:97","nodeType":"YulIdentifier","src":"24765:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"24777:9:97","nodeType":"YulIdentifier","src":"24777:9:97"},{"kind":"number","nativeSrc":"24788:2:97","nodeType":"YulLiteral","src":"24788:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"24773:3:97","nodeType":"YulIdentifier","src":"24773:3:97"},"nativeSrc":"24773:18:97","nodeType":"YulFunctionCall","src":"24773:18:97"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"24748:16:97","nodeType":"YulIdentifier","src":"24748:16:97"},"nativeSrc":"24748:44:97","nodeType":"YulFunctionCall","src":"24748:44:97"},"variables":[{"name":"tail_1","nativeSrc":"24738:6:97","nodeType":"YulTypedName","src":"24738:6:97","type":""}]},{"nativeSrc":"24801:12:97","nodeType":"YulVariableDeclaration","src":"24801:12:97","value":{"kind":"number","nativeSrc":"24811:2:97","nodeType":"YulLiteral","src":"24811:2:97","type":"","value":"32"},"variables":[{"name":"_1","nativeSrc":"24805:2:97","nodeType":"YulTypedName","src":"24805:2:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24833:9:97","nodeType":"YulIdentifier","src":"24833:9:97"},{"name":"_1","nativeSrc":"24844:2:97","nodeType":"YulIdentifier","src":"24844:2:97"}],"functionName":{"name":"add","nativeSrc":"24829:3:97","nodeType":"YulIdentifier","src":"24829:3:97"},"nativeSrc":"24829:18:97","nodeType":"YulFunctionCall","src":"24829:18:97"},{"arguments":[{"name":"tail_1","nativeSrc":"24853:6:97","nodeType":"YulIdentifier","src":"24853:6:97"},{"name":"headStart","nativeSrc":"24861:9:97","nodeType":"YulIdentifier","src":"24861:9:97"}],"functionName":{"name":"sub","nativeSrc":"24849:3:97","nodeType":"YulIdentifier","src":"24849:3:97"},"nativeSrc":"24849:22:97","nodeType":"YulFunctionCall","src":"24849:22:97"}],"functionName":{"name":"mstore","nativeSrc":"24822:6:97","nodeType":"YulIdentifier","src":"24822:6:97"},"nativeSrc":"24822:50:97","nodeType":"YulFunctionCall","src":"24822:50:97"},"nativeSrc":"24822:50:97","nodeType":"YulExpressionStatement","src":"24822:50:97"},{"nativeSrc":"24881:12:97","nodeType":"YulVariableDeclaration","src":"24881:12:97","value":{"kind":"number","nativeSrc":"24892:1:97","nodeType":"YulLiteral","src":"24892:1:97","type":"","value":"0"},"variables":[{"name":"ret","nativeSrc":"24885:3:97","nodeType":"YulTypedName","src":"24885:3:97","type":""}]},{"nativeSrc":"24902:30:97","nodeType":"YulVariableDeclaration","src":"24902:30:97","value":{"arguments":[{"name":"value1","nativeSrc":"24925:6:97","nodeType":"YulIdentifier","src":"24925:6:97"}],"functionName":{"name":"sload","nativeSrc":"24919:5:97","nodeType":"YulIdentifier","src":"24919:5:97"},"nativeSrc":"24919:13:97","nodeType":"YulFunctionCall","src":"24919:13:97"},"variables":[{"name":"slotValue","nativeSrc":"24906:9:97","nodeType":"YulTypedName","src":"24906:9:97","type":""}]},{"nativeSrc":"24941:50:97","nodeType":"YulVariableDeclaration","src":"24941:50:97","value":{"arguments":[{"name":"slotValue","nativeSrc":"24981:9:97","nodeType":"YulIdentifier","src":"24981:9:97"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"24955:25:97","nodeType":"YulIdentifier","src":"24955:25:97"},"nativeSrc":"24955:36:97","nodeType":"YulFunctionCall","src":"24955:36:97"},"variables":[{"name":"length","nativeSrc":"24945:6:97","nodeType":"YulTypedName","src":"24945:6:97","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nativeSrc":"25007:6:97","nodeType":"YulIdentifier","src":"25007:6:97"},{"name":"length","nativeSrc":"25015:6:97","nodeType":"YulIdentifier","src":"25015:6:97"}],"functionName":{"name":"mstore","nativeSrc":"25000:6:97","nodeType":"YulIdentifier","src":"25000:6:97"},"nativeSrc":"25000:22:97","nodeType":"YulFunctionCall","src":"25000:22:97"},"nativeSrc":"25000:22:97","nodeType":"YulExpressionStatement","src":"25000:22:97"},{"nativeSrc":"25031:11:97","nodeType":"YulVariableDeclaration","src":"25031:11:97","value":{"kind":"number","nativeSrc":"25041:1:97","nodeType":"YulLiteral","src":"25041:1:97","type":"","value":"1"},"variables":[{"name":"_2","nativeSrc":"25035:2:97","nodeType":"YulTypedName","src":"25035:2:97","type":""}]},{"cases":[{"body":{"nativeSrc":"25091:203:97","nodeType":"YulBlock","src":"25091:203:97","statements":[{"expression":{"arguments":[{"arguments":[{"name":"tail_1","nativeSrc":"25116:6:97","nodeType":"YulIdentifier","src":"25116:6:97"},{"name":"_1","nativeSrc":"25124:2:97","nodeType":"YulIdentifier","src":"25124:2:97"}],"functionName":{"name":"add","nativeSrc":"25112:3:97","nodeType":"YulIdentifier","src":"25112:3:97"},"nativeSrc":"25112:15:97","nodeType":"YulFunctionCall","src":"25112:15:97"},{"arguments":[{"name":"slotValue","nativeSrc":"25133:9:97","nodeType":"YulIdentifier","src":"25133:9:97"},{"kind":"number","nativeSrc":"25144:66:97","nodeType":"YulLiteral","src":"25144:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00"}],"functionName":{"name":"and","nativeSrc":"25129:3:97","nodeType":"YulIdentifier","src":"25129:3:97"},"nativeSrc":"25129:82:97","nodeType":"YulFunctionCall","src":"25129:82:97"}],"functionName":{"name":"mstore","nativeSrc":"25105:6:97","nodeType":"YulIdentifier","src":"25105:6:97"},"nativeSrc":"25105:107:97","nodeType":"YulFunctionCall","src":"25105:107:97"},"nativeSrc":"25105:107:97","nodeType":"YulExpressionStatement","src":"25105:107:97"},{"nativeSrc":"25225:59:97","nodeType":"YulAssignment","src":"25225:59:97","value":{"arguments":[{"arguments":[{"name":"tail_1","nativeSrc":"25240:6:97","nodeType":"YulIdentifier","src":"25240:6:97"},{"arguments":[{"kind":"number","nativeSrc":"25252:1:97","nodeType":"YulLiteral","src":"25252:1:97","type":"","value":"5"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"25269:6:97","nodeType":"YulIdentifier","src":"25269:6:97"}],"functionName":{"name":"iszero","nativeSrc":"25262:6:97","nodeType":"YulIdentifier","src":"25262:6:97"},"nativeSrc":"25262:14:97","nodeType":"YulFunctionCall","src":"25262:14:97"}],"functionName":{"name":"iszero","nativeSrc":"25255:6:97","nodeType":"YulIdentifier","src":"25255:6:97"},"nativeSrc":"25255:22:97","nodeType":"YulFunctionCall","src":"25255:22:97"}],"functionName":{"name":"shl","nativeSrc":"25248:3:97","nodeType":"YulIdentifier","src":"25248:3:97"},"nativeSrc":"25248:30:97","nodeType":"YulFunctionCall","src":"25248:30:97"}],"functionName":{"name":"add","nativeSrc":"25236:3:97","nodeType":"YulIdentifier","src":"25236:3:97"},"nativeSrc":"25236:43:97","nodeType":"YulFunctionCall","src":"25236:43:97"},{"name":"_1","nativeSrc":"25281:2:97","nodeType":"YulIdentifier","src":"25281:2:97"}],"functionName":{"name":"add","nativeSrc":"25232:3:97","nodeType":"YulIdentifier","src":"25232:3:97"},"nativeSrc":"25232:52:97","nodeType":"YulFunctionCall","src":"25232:52:97"},"variableNames":[{"name":"ret","nativeSrc":"25225:3:97","nodeType":"YulIdentifier","src":"25225:3:97"}]}]},"nativeSrc":"25084:210:97","nodeType":"YulCase","src":"25084:210:97","value":{"kind":"number","nativeSrc":"25089:1:97","nodeType":"YulLiteral","src":"25089:1:97","type":"","value":"0"}},{"body":{"nativeSrc":"25310:341:97","nodeType":"YulBlock","src":"25310:341:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"25331:1:97","nodeType":"YulLiteral","src":"25331:1:97","type":"","value":"0"},{"name":"value1","nativeSrc":"25334:6:97","nodeType":"YulIdentifier","src":"25334:6:97"}],"functionName":{"name":"mstore","nativeSrc":"25324:6:97","nodeType":"YulIdentifier","src":"25324:6:97"},"nativeSrc":"25324:17:97","nodeType":"YulFunctionCall","src":"25324:17:97"},"nativeSrc":"25324:17:97","nodeType":"YulExpressionStatement","src":"25324:17:97"},{"nativeSrc":"25354:31:97","nodeType":"YulVariableDeclaration","src":"25354:31:97","value":{"arguments":[{"kind":"number","nativeSrc":"25379:1:97","nodeType":"YulLiteral","src":"25379:1:97","type":"","value":"0"},{"name":"_1","nativeSrc":"25382:2:97","nodeType":"YulIdentifier","src":"25382:2:97"}],"functionName":{"name":"keccak256","nativeSrc":"25369:9:97","nodeType":"YulIdentifier","src":"25369:9:97"},"nativeSrc":"25369:16:97","nodeType":"YulFunctionCall","src":"25369:16:97"},"variables":[{"name":"dataPos","nativeSrc":"25358:7:97","nodeType":"YulTypedName","src":"25358:7:97","type":""}]},{"nativeSrc":"25398:10:97","nodeType":"YulVariableDeclaration","src":"25398:10:97","value":{"kind":"number","nativeSrc":"25407:1:97","nodeType":"YulLiteral","src":"25407:1:97","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"25402:1:97","nodeType":"YulTypedName","src":"25402:1:97","type":""}]},{"body":{"nativeSrc":"25475:123:97","nodeType":"YulBlock","src":"25475:123:97","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"tail_1","nativeSrc":"25508:6:97","nodeType":"YulIdentifier","src":"25508:6:97"},{"name":"i","nativeSrc":"25516:1:97","nodeType":"YulIdentifier","src":"25516:1:97"}],"functionName":{"name":"add","nativeSrc":"25504:3:97","nodeType":"YulIdentifier","src":"25504:3:97"},"nativeSrc":"25504:14:97","nodeType":"YulFunctionCall","src":"25504:14:97"},{"name":"_1","nativeSrc":"25520:2:97","nodeType":"YulIdentifier","src":"25520:2:97"}],"functionName":{"name":"add","nativeSrc":"25500:3:97","nodeType":"YulIdentifier","src":"25500:3:97"},"nativeSrc":"25500:23:97","nodeType":"YulFunctionCall","src":"25500:23:97"},{"arguments":[{"name":"dataPos","nativeSrc":"25531:7:97","nodeType":"YulIdentifier","src":"25531:7:97"}],"functionName":{"name":"sload","nativeSrc":"25525:5:97","nodeType":"YulIdentifier","src":"25525:5:97"},"nativeSrc":"25525:14:97","nodeType":"YulFunctionCall","src":"25525:14:97"}],"functionName":{"name":"mstore","nativeSrc":"25493:6:97","nodeType":"YulIdentifier","src":"25493:6:97"},"nativeSrc":"25493:47:97","nodeType":"YulFunctionCall","src":"25493:47:97"},"nativeSrc":"25493:47:97","nodeType":"YulExpressionStatement","src":"25493:47:97"},{"nativeSrc":"25557:27:97","nodeType":"YulAssignment","src":"25557:27:97","value":{"arguments":[{"name":"dataPos","nativeSrc":"25572:7:97","nodeType":"YulIdentifier","src":"25572:7:97"},{"name":"_2","nativeSrc":"25581:2:97","nodeType":"YulIdentifier","src":"25581:2:97"}],"functionName":{"name":"add","nativeSrc":"25568:3:97","nodeType":"YulIdentifier","src":"25568:3:97"},"nativeSrc":"25568:16:97","nodeType":"YulFunctionCall","src":"25568:16:97"},"variableNames":[{"name":"dataPos","nativeSrc":"25557:7:97","nodeType":"YulIdentifier","src":"25557:7:97"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"25432:1:97","nodeType":"YulIdentifier","src":"25432:1:97"},{"name":"length","nativeSrc":"25435:6:97","nodeType":"YulIdentifier","src":"25435:6:97"}],"functionName":{"name":"lt","nativeSrc":"25429:2:97","nodeType":"YulIdentifier","src":"25429:2:97"},"nativeSrc":"25429:13:97","nodeType":"YulFunctionCall","src":"25429:13:97"},"nativeSrc":"25421:177:97","nodeType":"YulForLoop","post":{"nativeSrc":"25443:19:97","nodeType":"YulBlock","src":"25443:19:97","statements":[{"nativeSrc":"25445:15:97","nodeType":"YulAssignment","src":"25445:15:97","value":{"arguments":[{"name":"i","nativeSrc":"25454:1:97","nodeType":"YulIdentifier","src":"25454:1:97"},{"name":"_1","nativeSrc":"25457:2:97","nodeType":"YulIdentifier","src":"25457:2:97"}],"functionName":{"name":"add","nativeSrc":"25450:3:97","nodeType":"YulIdentifier","src":"25450:3:97"},"nativeSrc":"25450:10:97","nodeType":"YulFunctionCall","src":"25450:10:97"},"variableNames":[{"name":"i","nativeSrc":"25445:1:97","nodeType":"YulIdentifier","src":"25445:1:97"}]}]},"pre":{"nativeSrc":"25425:3:97","nodeType":"YulBlock","src":"25425:3:97","statements":[]},"src":"25421:177:97"},{"nativeSrc":"25611:30:97","nodeType":"YulAssignment","src":"25611:30:97","value":{"arguments":[{"arguments":[{"name":"tail_1","nativeSrc":"25626:6:97","nodeType":"YulIdentifier","src":"25626:6:97"},{"name":"i","nativeSrc":"25634:1:97","nodeType":"YulIdentifier","src":"25634:1:97"}],"functionName":{"name":"add","nativeSrc":"25622:3:97","nodeType":"YulIdentifier","src":"25622:3:97"},"nativeSrc":"25622:14:97","nodeType":"YulFunctionCall","src":"25622:14:97"},{"name":"_1","nativeSrc":"25638:2:97","nodeType":"YulIdentifier","src":"25638:2:97"}],"functionName":{"name":"add","nativeSrc":"25618:3:97","nodeType":"YulIdentifier","src":"25618:3:97"},"nativeSrc":"25618:23:97","nodeType":"YulFunctionCall","src":"25618:23:97"},"variableNames":[{"name":"ret","nativeSrc":"25611:3:97","nodeType":"YulIdentifier","src":"25611:3:97"}]}]},"nativeSrc":"25303:348:97","nodeType":"YulCase","src":"25303:348:97","value":{"kind":"number","nativeSrc":"25308:1:97","nodeType":"YulLiteral","src":"25308:1:97","type":"","value":"1"}}],"expression":{"arguments":[{"name":"slotValue","nativeSrc":"25062:9:97","nodeType":"YulIdentifier","src":"25062:9:97"},{"kind":"number","nativeSrc":"25073:1:97","nodeType":"YulLiteral","src":"25073:1:97","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"25058:3:97","nodeType":"YulIdentifier","src":"25058:3:97"},"nativeSrc":"25058:17:97","nodeType":"YulFunctionCall","src":"25058:17:97"},"nativeSrc":"25051:600:97","nodeType":"YulSwitch","src":"25051:600:97"},{"nativeSrc":"25660:11:97","nodeType":"YulAssignment","src":"25660:11:97","value":{"name":"ret","nativeSrc":"25668:3:97","nodeType":"YulIdentifier","src":"25668:3:97"},"variableNames":[{"name":"tail","nativeSrc":"25660:4:97","nodeType":"YulIdentifier","src":"25660:4:97"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr_t_bytes_storage__to_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"24532:1145:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"24655:9:97","nodeType":"YulTypedName","src":"24655:9:97","type":""},{"name":"value1","nativeSrc":"24666:6:97","nodeType":"YulTypedName","src":"24666:6:97","type":""},{"name":"value0","nativeSrc":"24674:6:97","nodeType":"YulTypedName","src":"24674:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"24685:4:97","nodeType":"YulTypedName","src":"24685:4:97","type":""}],"src":"24532:1145:97"},{"body":{"nativeSrc":"25891:289:97","nodeType":"YulBlock","src":"25891:289:97","statements":[{"nativeSrc":"25901:16:97","nodeType":"YulVariableDeclaration","src":"25901:16:97","value":{"kind":"number","nativeSrc":"25911:6:97","nodeType":"YulLiteral","src":"25911:6:97","type":"","value":"0xffff"},"variables":[{"name":"_1","nativeSrc":"25905:2:97","nodeType":"YulTypedName","src":"25905:2:97","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"25933:9:97","nodeType":"YulIdentifier","src":"25933:9:97"},{"arguments":[{"name":"value0","nativeSrc":"25948:6:97","nodeType":"YulIdentifier","src":"25948:6:97"},{"name":"_1","nativeSrc":"25956:2:97","nodeType":"YulIdentifier","src":"25956:2:97"}],"functionName":{"name":"and","nativeSrc":"25944:3:97","nodeType":"YulIdentifier","src":"25944:3:97"},"nativeSrc":"25944:15:97","nodeType":"YulFunctionCall","src":"25944:15:97"}],"functionName":{"name":"mstore","nativeSrc":"25926:6:97","nodeType":"YulIdentifier","src":"25926:6:97"},"nativeSrc":"25926:34:97","nodeType":"YulFunctionCall","src":"25926:34:97"},"nativeSrc":"25926:34:97","nodeType":"YulExpressionStatement","src":"25926:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25980:9:97","nodeType":"YulIdentifier","src":"25980:9:97"},{"kind":"number","nativeSrc":"25991:2:97","nodeType":"YulLiteral","src":"25991:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"25976:3:97","nodeType":"YulIdentifier","src":"25976:3:97"},"nativeSrc":"25976:18:97","nodeType":"YulFunctionCall","src":"25976:18:97"},{"arguments":[{"name":"value1","nativeSrc":"26000:6:97","nodeType":"YulIdentifier","src":"26000:6:97"},{"name":"_1","nativeSrc":"26008:2:97","nodeType":"YulIdentifier","src":"26008:2:97"}],"functionName":{"name":"and","nativeSrc":"25996:3:97","nodeType":"YulIdentifier","src":"25996:3:97"},"nativeSrc":"25996:15:97","nodeType":"YulFunctionCall","src":"25996:15:97"}],"functionName":{"name":"mstore","nativeSrc":"25969:6:97","nodeType":"YulIdentifier","src":"25969:6:97"},"nativeSrc":"25969:43:97","nodeType":"YulFunctionCall","src":"25969:43:97"},"nativeSrc":"25969:43:97","nodeType":"YulExpressionStatement","src":"25969:43:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26032:9:97","nodeType":"YulIdentifier","src":"26032:9:97"},{"kind":"number","nativeSrc":"26043:2:97","nodeType":"YulLiteral","src":"26043:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"26028:3:97","nodeType":"YulIdentifier","src":"26028:3:97"},"nativeSrc":"26028:18:97","nodeType":"YulFunctionCall","src":"26028:18:97"},{"name":"value2","nativeSrc":"26048:6:97","nodeType":"YulIdentifier","src":"26048:6:97"}],"functionName":{"name":"mstore","nativeSrc":"26021:6:97","nodeType":"YulIdentifier","src":"26021:6:97"},"nativeSrc":"26021:34:97","nodeType":"YulFunctionCall","src":"26021:34:97"},"nativeSrc":"26021:34:97","nodeType":"YulExpressionStatement","src":"26021:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26075:9:97","nodeType":"YulIdentifier","src":"26075:9:97"},{"kind":"number","nativeSrc":"26086:2:97","nodeType":"YulLiteral","src":"26086:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"26071:3:97","nodeType":"YulIdentifier","src":"26071:3:97"},"nativeSrc":"26071:18:97","nodeType":"YulFunctionCall","src":"26071:18:97"},{"kind":"number","nativeSrc":"26091:3:97","nodeType":"YulLiteral","src":"26091:3:97","type":"","value":"128"}],"functionName":{"name":"mstore","nativeSrc":"26064:6:97","nodeType":"YulIdentifier","src":"26064:6:97"},"nativeSrc":"26064:31:97","nodeType":"YulFunctionCall","src":"26064:31:97"},"nativeSrc":"26064:31:97","nodeType":"YulExpressionStatement","src":"26064:31:97"},{"nativeSrc":"26104:70:97","nodeType":"YulAssignment","src":"26104:70:97","value":{"arguments":[{"name":"value3","nativeSrc":"26138:6:97","nodeType":"YulIdentifier","src":"26138:6:97"},{"name":"value4","nativeSrc":"26146:6:97","nodeType":"YulIdentifier","src":"26146:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"26158:9:97","nodeType":"YulIdentifier","src":"26158:9:97"},{"kind":"number","nativeSrc":"26169:3:97","nodeType":"YulLiteral","src":"26169:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"26154:3:97","nodeType":"YulIdentifier","src":"26154:3:97"},"nativeSrc":"26154:19:97","nodeType":"YulFunctionCall","src":"26154:19:97"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"26112:25:97","nodeType":"YulIdentifier","src":"26112:25:97"},"nativeSrc":"26112:62:97","nodeType":"YulFunctionCall","src":"26112:62:97"},"variableNames":[{"name":"tail","nativeSrc":"26104:4:97","nodeType":"YulIdentifier","src":"26104:4:97"}]}]},"name":"abi_encode_tuple_t_uint16_t_uint16_t_uint256_t_bytes_calldata_ptr__to_t_uint16_t_uint16_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"25682:498:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25828:9:97","nodeType":"YulTypedName","src":"25828:9:97","type":""},{"name":"value4","nativeSrc":"25839:6:97","nodeType":"YulTypedName","src":"25839:6:97","type":""},{"name":"value3","nativeSrc":"25847:6:97","nodeType":"YulTypedName","src":"25847:6:97","type":""},{"name":"value2","nativeSrc":"25855:6:97","nodeType":"YulTypedName","src":"25855:6:97","type":""},{"name":"value1","nativeSrc":"25863:6:97","nodeType":"YulTypedName","src":"25863:6:97","type":""},{"name":"value0","nativeSrc":"25871:6:97","nodeType":"YulTypedName","src":"25871:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"25882:4:97","nodeType":"YulTypedName","src":"25882:4:97","type":""}],"src":"25682:498:97"},{"body":{"nativeSrc":"26281:653:97","nodeType":"YulBlock","src":"26281:653:97","statements":[{"body":{"nativeSrc":"26327:16:97","nodeType":"YulBlock","src":"26327:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"26336:1:97","nodeType":"YulLiteral","src":"26336:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"26339:1:97","nodeType":"YulLiteral","src":"26339:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"26329:6:97","nodeType":"YulIdentifier","src":"26329:6:97"},"nativeSrc":"26329:12:97","nodeType":"YulFunctionCall","src":"26329:12:97"},"nativeSrc":"26329:12:97","nodeType":"YulExpressionStatement","src":"26329:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"26302:7:97","nodeType":"YulIdentifier","src":"26302:7:97"},{"name":"headStart","nativeSrc":"26311:9:97","nodeType":"YulIdentifier","src":"26311:9:97"}],"functionName":{"name":"sub","nativeSrc":"26298:3:97","nodeType":"YulIdentifier","src":"26298:3:97"},"nativeSrc":"26298:23:97","nodeType":"YulFunctionCall","src":"26298:23:97"},{"kind":"number","nativeSrc":"26323:2:97","nodeType":"YulLiteral","src":"26323:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"26294:3:97","nodeType":"YulIdentifier","src":"26294:3:97"},"nativeSrc":"26294:32:97","nodeType":"YulFunctionCall","src":"26294:32:97"},"nativeSrc":"26291:52:97","nodeType":"YulIf","src":"26291:52:97"},{"nativeSrc":"26352:37:97","nodeType":"YulVariableDeclaration","src":"26352:37:97","value":{"arguments":[{"name":"headStart","nativeSrc":"26379:9:97","nodeType":"YulIdentifier","src":"26379:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"26366:12:97","nodeType":"YulIdentifier","src":"26366:12:97"},"nativeSrc":"26366:23:97","nodeType":"YulFunctionCall","src":"26366:23:97"},"variables":[{"name":"offset","nativeSrc":"26356:6:97","nodeType":"YulTypedName","src":"26356:6:97","type":""}]},{"body":{"nativeSrc":"26432:16:97","nodeType":"YulBlock","src":"26432:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"26441:1:97","nodeType":"YulLiteral","src":"26441:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"26444:1:97","nodeType":"YulLiteral","src":"26444:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"26434:6:97","nodeType":"YulIdentifier","src":"26434:6:97"},"nativeSrc":"26434:12:97","nodeType":"YulFunctionCall","src":"26434:12:97"},"nativeSrc":"26434:12:97","nodeType":"YulExpressionStatement","src":"26434:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"26404:6:97","nodeType":"YulIdentifier","src":"26404:6:97"},{"kind":"number","nativeSrc":"26412:18:97","nodeType":"YulLiteral","src":"26412:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"26401:2:97","nodeType":"YulIdentifier","src":"26401:2:97"},"nativeSrc":"26401:30:97","nodeType":"YulFunctionCall","src":"26401:30:97"},"nativeSrc":"26398:50:97","nodeType":"YulIf","src":"26398:50:97"},{"nativeSrc":"26457:32:97","nodeType":"YulVariableDeclaration","src":"26457:32:97","value":{"arguments":[{"name":"headStart","nativeSrc":"26471:9:97","nodeType":"YulIdentifier","src":"26471:9:97"},{"name":"offset","nativeSrc":"26482:6:97","nodeType":"YulIdentifier","src":"26482:6:97"}],"functionName":{"name":"add","nativeSrc":"26467:3:97","nodeType":"YulIdentifier","src":"26467:3:97"},"nativeSrc":"26467:22:97","nodeType":"YulFunctionCall","src":"26467:22:97"},"variables":[{"name":"_1","nativeSrc":"26461:2:97","nodeType":"YulTypedName","src":"26461:2:97","type":""}]},{"body":{"nativeSrc":"26537:16:97","nodeType":"YulBlock","src":"26537:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"26546:1:97","nodeType":"YulLiteral","src":"26546:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"26549:1:97","nodeType":"YulLiteral","src":"26549:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"26539:6:97","nodeType":"YulIdentifier","src":"26539:6:97"},"nativeSrc":"26539:12:97","nodeType":"YulFunctionCall","src":"26539:12:97"},"nativeSrc":"26539:12:97","nodeType":"YulExpressionStatement","src":"26539:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"26516:2:97","nodeType":"YulIdentifier","src":"26516:2:97"},{"kind":"number","nativeSrc":"26520:4:97","nodeType":"YulLiteral","src":"26520:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"26512:3:97","nodeType":"YulIdentifier","src":"26512:3:97"},"nativeSrc":"26512:13:97","nodeType":"YulFunctionCall","src":"26512:13:97"},{"name":"dataEnd","nativeSrc":"26527:7:97","nodeType":"YulIdentifier","src":"26527:7:97"}],"functionName":{"name":"slt","nativeSrc":"26508:3:97","nodeType":"YulIdentifier","src":"26508:3:97"},"nativeSrc":"26508:27:97","nodeType":"YulFunctionCall","src":"26508:27:97"}],"functionName":{"name":"iszero","nativeSrc":"26501:6:97","nodeType":"YulIdentifier","src":"26501:6:97"},"nativeSrc":"26501:35:97","nodeType":"YulFunctionCall","src":"26501:35:97"},"nativeSrc":"26498:55:97","nodeType":"YulIf","src":"26498:55:97"},{"nativeSrc":"26562:26:97","nodeType":"YulVariableDeclaration","src":"26562:26:97","value":{"arguments":[{"name":"_1","nativeSrc":"26585:2:97","nodeType":"YulIdentifier","src":"26585:2:97"}],"functionName":{"name":"calldataload","nativeSrc":"26572:12:97","nodeType":"YulIdentifier","src":"26572:12:97"},"nativeSrc":"26572:16:97","nodeType":"YulFunctionCall","src":"26572:16:97"},"variables":[{"name":"_2","nativeSrc":"26566:2:97","nodeType":"YulTypedName","src":"26566:2:97","type":""}]},{"nativeSrc":"26597:61:97","nodeType":"YulVariableDeclaration","src":"26597:61:97","value":{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"26654:2:97","nodeType":"YulIdentifier","src":"26654:2:97"}],"functionName":{"name":"array_allocation_size_bytes","nativeSrc":"26626:27:97","nodeType":"YulIdentifier","src":"26626:27:97"},"nativeSrc":"26626:31:97","nodeType":"YulFunctionCall","src":"26626:31:97"}],"functionName":{"name":"allocate_memory","nativeSrc":"26610:15:97","nodeType":"YulIdentifier","src":"26610:15:97"},"nativeSrc":"26610:48:97","nodeType":"YulFunctionCall","src":"26610:48:97"},"variables":[{"name":"array","nativeSrc":"26601:5:97","nodeType":"YulTypedName","src":"26601:5:97","type":""}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"26674:5:97","nodeType":"YulIdentifier","src":"26674:5:97"},{"name":"_2","nativeSrc":"26681:2:97","nodeType":"YulIdentifier","src":"26681:2:97"}],"functionName":{"name":"mstore","nativeSrc":"26667:6:97","nodeType":"YulIdentifier","src":"26667:6:97"},"nativeSrc":"26667:17:97","nodeType":"YulFunctionCall","src":"26667:17:97"},"nativeSrc":"26667:17:97","nodeType":"YulExpressionStatement","src":"26667:17:97"},{"body":{"nativeSrc":"26732:16:97","nodeType":"YulBlock","src":"26732:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"26741:1:97","nodeType":"YulLiteral","src":"26741:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"26744:1:97","nodeType":"YulLiteral","src":"26744:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"26734:6:97","nodeType":"YulIdentifier","src":"26734:6:97"},"nativeSrc":"26734:12:97","nodeType":"YulFunctionCall","src":"26734:12:97"},"nativeSrc":"26734:12:97","nodeType":"YulExpressionStatement","src":"26734:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"26707:2:97","nodeType":"YulIdentifier","src":"26707:2:97"},{"name":"_2","nativeSrc":"26711:2:97","nodeType":"YulIdentifier","src":"26711:2:97"}],"functionName":{"name":"add","nativeSrc":"26703:3:97","nodeType":"YulIdentifier","src":"26703:3:97"},"nativeSrc":"26703:11:97","nodeType":"YulFunctionCall","src":"26703:11:97"},{"kind":"number","nativeSrc":"26716:4:97","nodeType":"YulLiteral","src":"26716:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"26699:3:97","nodeType":"YulIdentifier","src":"26699:3:97"},"nativeSrc":"26699:22:97","nodeType":"YulFunctionCall","src":"26699:22:97"},{"name":"dataEnd","nativeSrc":"26723:7:97","nodeType":"YulIdentifier","src":"26723:7:97"}],"functionName":{"name":"gt","nativeSrc":"26696:2:97","nodeType":"YulIdentifier","src":"26696:2:97"},"nativeSrc":"26696:35:97","nodeType":"YulFunctionCall","src":"26696:35:97"},"nativeSrc":"26693:55:97","nodeType":"YulIf","src":"26693:55:97"},{"expression":{"arguments":[{"arguments":[{"name":"array","nativeSrc":"26774:5:97","nodeType":"YulIdentifier","src":"26774:5:97"},{"kind":"number","nativeSrc":"26781:4:97","nodeType":"YulLiteral","src":"26781:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"26770:3:97","nodeType":"YulIdentifier","src":"26770:3:97"},"nativeSrc":"26770:16:97","nodeType":"YulFunctionCall","src":"26770:16:97"},{"arguments":[{"name":"_1","nativeSrc":"26792:2:97","nodeType":"YulIdentifier","src":"26792:2:97"},{"kind":"number","nativeSrc":"26796:4:97","nodeType":"YulLiteral","src":"26796:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"26788:3:97","nodeType":"YulIdentifier","src":"26788:3:97"},"nativeSrc":"26788:13:97","nodeType":"YulFunctionCall","src":"26788:13:97"},{"name":"_2","nativeSrc":"26803:2:97","nodeType":"YulIdentifier","src":"26803:2:97"}],"functionName":{"name":"calldatacopy","nativeSrc":"26757:12:97","nodeType":"YulIdentifier","src":"26757:12:97"},"nativeSrc":"26757:49:97","nodeType":"YulFunctionCall","src":"26757:49:97"},"nativeSrc":"26757:49:97","nodeType":"YulExpressionStatement","src":"26757:49:97"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array","nativeSrc":"26830:5:97","nodeType":"YulIdentifier","src":"26830:5:97"},{"name":"_2","nativeSrc":"26837:2:97","nodeType":"YulIdentifier","src":"26837:2:97"}],"functionName":{"name":"add","nativeSrc":"26826:3:97","nodeType":"YulIdentifier","src":"26826:3:97"},"nativeSrc":"26826:14:97","nodeType":"YulFunctionCall","src":"26826:14:97"},{"kind":"number","nativeSrc":"26842:4:97","nodeType":"YulLiteral","src":"26842:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"26822:3:97","nodeType":"YulIdentifier","src":"26822:3:97"},"nativeSrc":"26822:25:97","nodeType":"YulFunctionCall","src":"26822:25:97"},{"kind":"number","nativeSrc":"26849:1:97","nodeType":"YulLiteral","src":"26849:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"26815:6:97","nodeType":"YulIdentifier","src":"26815:6:97"},"nativeSrc":"26815:36:97","nodeType":"YulFunctionCall","src":"26815:36:97"},"nativeSrc":"26815:36:97","nodeType":"YulExpressionStatement","src":"26815:36:97"},{"nativeSrc":"26860:15:97","nodeType":"YulAssignment","src":"26860:15:97","value":{"name":"array","nativeSrc":"26870:5:97","nodeType":"YulIdentifier","src":"26870:5:97"},"variableNames":[{"name":"value0","nativeSrc":"26860:6:97","nodeType":"YulIdentifier","src":"26860:6:97"}]},{"nativeSrc":"26884:44:97","nodeType":"YulAssignment","src":"26884:44:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26911:9:97","nodeType":"YulIdentifier","src":"26911:9:97"},{"kind":"number","nativeSrc":"26922:4:97","nodeType":"YulLiteral","src":"26922:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"26907:3:97","nodeType":"YulIdentifier","src":"26907:3:97"},"nativeSrc":"26907:20:97","nodeType":"YulFunctionCall","src":"26907:20:97"}],"functionName":{"name":"calldataload","nativeSrc":"26894:12:97","nodeType":"YulIdentifier","src":"26894:12:97"},"nativeSrc":"26894:34:97","nodeType":"YulFunctionCall","src":"26894:34:97"},"variableNames":[{"name":"value1","nativeSrc":"26884:6:97","nodeType":"YulIdentifier","src":"26884:6:97"}]}]},"name":"abi_decode_tuple_t_bytes_memory_ptrt_uint256","nativeSrc":"26185:749:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"26239:9:97","nodeType":"YulTypedName","src":"26239:9:97","type":""},{"name":"dataEnd","nativeSrc":"26250:7:97","nodeType":"YulTypedName","src":"26250:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"26262:6:97","nodeType":"YulTypedName","src":"26262:6:97","type":""},{"name":"value1","nativeSrc":"26270:6:97","nodeType":"YulTypedName","src":"26270:6:97","type":""}],"src":"26185:749:97"},{"body":{"nativeSrc":"26987:77:97","nodeType":"YulBlock","src":"26987:77:97","statements":[{"nativeSrc":"26997:16:97","nodeType":"YulAssignment","src":"26997:16:97","value":{"arguments":[{"name":"x","nativeSrc":"27008:1:97","nodeType":"YulIdentifier","src":"27008:1:97"},{"name":"y","nativeSrc":"27011:1:97","nodeType":"YulIdentifier","src":"27011:1:97"}],"functionName":{"name":"add","nativeSrc":"27004:3:97","nodeType":"YulIdentifier","src":"27004:3:97"},"nativeSrc":"27004:9:97","nodeType":"YulFunctionCall","src":"27004:9:97"},"variableNames":[{"name":"sum","nativeSrc":"26997:3:97","nodeType":"YulIdentifier","src":"26997:3:97"}]},{"body":{"nativeSrc":"27036:22:97","nodeType":"YulBlock","src":"27036:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"27038:16:97","nodeType":"YulIdentifier","src":"27038:16:97"},"nativeSrc":"27038:18:97","nodeType":"YulFunctionCall","src":"27038:18:97"},"nativeSrc":"27038:18:97","nodeType":"YulExpressionStatement","src":"27038:18:97"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"27028:1:97","nodeType":"YulIdentifier","src":"27028:1:97"},{"name":"sum","nativeSrc":"27031:3:97","nodeType":"YulIdentifier","src":"27031:3:97"}],"functionName":{"name":"gt","nativeSrc":"27025:2:97","nodeType":"YulIdentifier","src":"27025:2:97"},"nativeSrc":"27025:10:97","nodeType":"YulFunctionCall","src":"27025:10:97"},"nativeSrc":"27022:36:97","nodeType":"YulIf","src":"27022:36:97"}]},"name":"checked_add_t_uint256","nativeSrc":"26939:125:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"26970:1:97","nodeType":"YulTypedName","src":"26970:1:97","type":""},{"name":"y","nativeSrc":"26973:1:97","nodeType":"YulTypedName","src":"26973:1:97","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"26979:3:97","nodeType":"YulTypedName","src":"26979:3:97","type":""}],"src":"26939:125:97"},{"body":{"nativeSrc":"27398:585:97","nodeType":"YulBlock","src":"27398:585:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"27415:9:97","nodeType":"YulIdentifier","src":"27415:9:97"},{"arguments":[{"name":"value0","nativeSrc":"27430:6:97","nodeType":"YulIdentifier","src":"27430:6:97"},{"kind":"number","nativeSrc":"27438:6:97","nodeType":"YulLiteral","src":"27438:6:97","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"27426:3:97","nodeType":"YulIdentifier","src":"27426:3:97"},"nativeSrc":"27426:19:97","nodeType":"YulFunctionCall","src":"27426:19:97"}],"functionName":{"name":"mstore","nativeSrc":"27408:6:97","nodeType":"YulIdentifier","src":"27408:6:97"},"nativeSrc":"27408:38:97","nodeType":"YulFunctionCall","src":"27408:38:97"},"nativeSrc":"27408:38:97","nodeType":"YulExpressionStatement","src":"27408:38:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27466:9:97","nodeType":"YulIdentifier","src":"27466:9:97"},{"kind":"number","nativeSrc":"27477:2:97","nodeType":"YulLiteral","src":"27477:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"27462:3:97","nodeType":"YulIdentifier","src":"27462:3:97"},"nativeSrc":"27462:18:97","nodeType":"YulFunctionCall","src":"27462:18:97"},{"kind":"number","nativeSrc":"27482:3:97","nodeType":"YulLiteral","src":"27482:3:97","type":"","value":"192"}],"functionName":{"name":"mstore","nativeSrc":"27455:6:97","nodeType":"YulIdentifier","src":"27455:6:97"},"nativeSrc":"27455:31:97","nodeType":"YulFunctionCall","src":"27455:31:97"},"nativeSrc":"27455:31:97","nodeType":"YulExpressionStatement","src":"27455:31:97"},{"nativeSrc":"27495:59:97","nodeType":"YulVariableDeclaration","src":"27495:59:97","value":{"arguments":[{"name":"value1","nativeSrc":"27526:6:97","nodeType":"YulIdentifier","src":"27526:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"27538:9:97","nodeType":"YulIdentifier","src":"27538:9:97"},{"kind":"number","nativeSrc":"27549:3:97","nodeType":"YulLiteral","src":"27549:3:97","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"27534:3:97","nodeType":"YulIdentifier","src":"27534:3:97"},"nativeSrc":"27534:19:97","nodeType":"YulFunctionCall","src":"27534:19:97"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"27509:16:97","nodeType":"YulIdentifier","src":"27509:16:97"},"nativeSrc":"27509:45:97","nodeType":"YulFunctionCall","src":"27509:45:97"},"variables":[{"name":"tail_1","nativeSrc":"27499:6:97","nodeType":"YulTypedName","src":"27499:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27574:9:97","nodeType":"YulIdentifier","src":"27574:9:97"},{"kind":"number","nativeSrc":"27585:2:97","nodeType":"YulLiteral","src":"27585:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"27570:3:97","nodeType":"YulIdentifier","src":"27570:3:97"},"nativeSrc":"27570:18:97","nodeType":"YulFunctionCall","src":"27570:18:97"},{"arguments":[{"name":"tail_1","nativeSrc":"27594:6:97","nodeType":"YulIdentifier","src":"27594:6:97"},{"name":"headStart","nativeSrc":"27602:9:97","nodeType":"YulIdentifier","src":"27602:9:97"}],"functionName":{"name":"sub","nativeSrc":"27590:3:97","nodeType":"YulIdentifier","src":"27590:3:97"},"nativeSrc":"27590:22:97","nodeType":"YulFunctionCall","src":"27590:22:97"}],"functionName":{"name":"mstore","nativeSrc":"27563:6:97","nodeType":"YulIdentifier","src":"27563:6:97"},"nativeSrc":"27563:50:97","nodeType":"YulFunctionCall","src":"27563:50:97"},"nativeSrc":"27563:50:97","nodeType":"YulExpressionStatement","src":"27563:50:97"},{"nativeSrc":"27622:63:97","nodeType":"YulVariableDeclaration","src":"27622:63:97","value":{"arguments":[{"name":"value2","nativeSrc":"27662:6:97","nodeType":"YulIdentifier","src":"27662:6:97"},{"name":"value3","nativeSrc":"27670:6:97","nodeType":"YulIdentifier","src":"27670:6:97"},{"name":"tail_1","nativeSrc":"27678:6:97","nodeType":"YulIdentifier","src":"27678:6:97"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"27636:25:97","nodeType":"YulIdentifier","src":"27636:25:97"},"nativeSrc":"27636:49:97","nodeType":"YulFunctionCall","src":"27636:49:97"},"variables":[{"name":"tail_2","nativeSrc":"27626:6:97","nodeType":"YulTypedName","src":"27626:6:97","type":""}]},{"nativeSrc":"27694:52:97","nodeType":"YulVariableDeclaration","src":"27694:52:97","value":{"kind":"number","nativeSrc":"27704:42:97","nodeType":"YulLiteral","src":"27704:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"27698:2:97","nodeType":"YulTypedName","src":"27698:2:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27766:9:97","nodeType":"YulIdentifier","src":"27766:9:97"},{"kind":"number","nativeSrc":"27777:2:97","nodeType":"YulLiteral","src":"27777:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"27762:3:97","nodeType":"YulIdentifier","src":"27762:3:97"},"nativeSrc":"27762:18:97","nodeType":"YulFunctionCall","src":"27762:18:97"},{"arguments":[{"name":"value4","nativeSrc":"27786:6:97","nodeType":"YulIdentifier","src":"27786:6:97"},{"name":"_1","nativeSrc":"27794:2:97","nodeType":"YulIdentifier","src":"27794:2:97"}],"functionName":{"name":"and","nativeSrc":"27782:3:97","nodeType":"YulIdentifier","src":"27782:3:97"},"nativeSrc":"27782:15:97","nodeType":"YulFunctionCall","src":"27782:15:97"}],"functionName":{"name":"mstore","nativeSrc":"27755:6:97","nodeType":"YulIdentifier","src":"27755:6:97"},"nativeSrc":"27755:43:97","nodeType":"YulFunctionCall","src":"27755:43:97"},"nativeSrc":"27755:43:97","nodeType":"YulExpressionStatement","src":"27755:43:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27818:9:97","nodeType":"YulIdentifier","src":"27818:9:97"},{"kind":"number","nativeSrc":"27829:3:97","nodeType":"YulLiteral","src":"27829:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"27814:3:97","nodeType":"YulIdentifier","src":"27814:3:97"},"nativeSrc":"27814:19:97","nodeType":"YulFunctionCall","src":"27814:19:97"},{"arguments":[{"name":"value5","nativeSrc":"27839:6:97","nodeType":"YulIdentifier","src":"27839:6:97"},{"name":"_1","nativeSrc":"27847:2:97","nodeType":"YulIdentifier","src":"27847:2:97"}],"functionName":{"name":"and","nativeSrc":"27835:3:97","nodeType":"YulIdentifier","src":"27835:3:97"},"nativeSrc":"27835:15:97","nodeType":"YulFunctionCall","src":"27835:15:97"}],"functionName":{"name":"mstore","nativeSrc":"27807:6:97","nodeType":"YulIdentifier","src":"27807:6:97"},"nativeSrc":"27807:44:97","nodeType":"YulFunctionCall","src":"27807:44:97"},"nativeSrc":"27807:44:97","nodeType":"YulExpressionStatement","src":"27807:44:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27871:9:97","nodeType":"YulIdentifier","src":"27871:9:97"},{"kind":"number","nativeSrc":"27882:3:97","nodeType":"YulLiteral","src":"27882:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"27867:3:97","nodeType":"YulIdentifier","src":"27867:3:97"},"nativeSrc":"27867:19:97","nodeType":"YulFunctionCall","src":"27867:19:97"},{"arguments":[{"name":"tail_2","nativeSrc":"27892:6:97","nodeType":"YulIdentifier","src":"27892:6:97"},{"name":"headStart","nativeSrc":"27900:9:97","nodeType":"YulIdentifier","src":"27900:9:97"}],"functionName":{"name":"sub","nativeSrc":"27888:3:97","nodeType":"YulIdentifier","src":"27888:3:97"},"nativeSrc":"27888:22:97","nodeType":"YulFunctionCall","src":"27888:22:97"}],"functionName":{"name":"mstore","nativeSrc":"27860:6:97","nodeType":"YulIdentifier","src":"27860:6:97"},"nativeSrc":"27860:51:97","nodeType":"YulFunctionCall","src":"27860:51:97"},"nativeSrc":"27860:51:97","nodeType":"YulExpressionStatement","src":"27860:51:97"},{"nativeSrc":"27920:57:97","nodeType":"YulAssignment","src":"27920:57:97","value":{"arguments":[{"name":"value6","nativeSrc":"27954:6:97","nodeType":"YulIdentifier","src":"27954:6:97"},{"name":"value7","nativeSrc":"27962:6:97","nodeType":"YulIdentifier","src":"27962:6:97"},{"name":"tail_2","nativeSrc":"27970:6:97","nodeType":"YulIdentifier","src":"27970:6:97"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"27928:25:97","nodeType":"YulIdentifier","src":"27928:25:97"},"nativeSrc":"27928:49:97","nodeType":"YulFunctionCall","src":"27928:49:97"},"variableNames":[{"name":"tail","nativeSrc":"27920:4:97","nodeType":"YulIdentifier","src":"27920:4:97"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_bytes_calldata_ptr_t_address_payable_t_address_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_address_payable_t_address_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"27069:914:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"27311:9:97","nodeType":"YulTypedName","src":"27311:9:97","type":""},{"name":"value7","nativeSrc":"27322:6:97","nodeType":"YulTypedName","src":"27322:6:97","type":""},{"name":"value6","nativeSrc":"27330:6:97","nodeType":"YulTypedName","src":"27330:6:97","type":""},{"name":"value5","nativeSrc":"27338:6:97","nodeType":"YulTypedName","src":"27338:6:97","type":""},{"name":"value4","nativeSrc":"27346:6:97","nodeType":"YulTypedName","src":"27346:6:97","type":""},{"name":"value3","nativeSrc":"27354:6:97","nodeType":"YulTypedName","src":"27354:6:97","type":""},{"name":"value2","nativeSrc":"27362:6:97","nodeType":"YulTypedName","src":"27362:6:97","type":""},{"name":"value1","nativeSrc":"27370:6:97","nodeType":"YulTypedName","src":"27370:6:97","type":""},{"name":"value0","nativeSrc":"27378:6:97","nodeType":"YulTypedName","src":"27378:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"27389:4:97","nodeType":"YulTypedName","src":"27389:4:97","type":""}],"src":"27069:914:97"},{"body":{"nativeSrc":"28162:228:97","nodeType":"YulBlock","src":"28162:228:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"28179:9:97","nodeType":"YulIdentifier","src":"28179:9:97"},{"kind":"number","nativeSrc":"28190:2:97","nodeType":"YulLiteral","src":"28190:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"28172:6:97","nodeType":"YulIdentifier","src":"28172:6:97"},"nativeSrc":"28172:21:97","nodeType":"YulFunctionCall","src":"28172:21:97"},"nativeSrc":"28172:21:97","nodeType":"YulExpressionStatement","src":"28172:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28213:9:97","nodeType":"YulIdentifier","src":"28213:9:97"},{"kind":"number","nativeSrc":"28224:2:97","nodeType":"YulLiteral","src":"28224:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"28209:3:97","nodeType":"YulIdentifier","src":"28209:3:97"},"nativeSrc":"28209:18:97","nodeType":"YulFunctionCall","src":"28209:18:97"},{"kind":"number","nativeSrc":"28229:2:97","nodeType":"YulLiteral","src":"28229:2:97","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"28202:6:97","nodeType":"YulIdentifier","src":"28202:6:97"},"nativeSrc":"28202:30:97","nodeType":"YulFunctionCall","src":"28202:30:97"},"nativeSrc":"28202:30:97","nodeType":"YulExpressionStatement","src":"28202:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28252:9:97","nodeType":"YulIdentifier","src":"28252:9:97"},{"kind":"number","nativeSrc":"28263:2:97","nodeType":"YulLiteral","src":"28263:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"28248:3:97","nodeType":"YulIdentifier","src":"28248:3:97"},"nativeSrc":"28248:18:97","nodeType":"YulFunctionCall","src":"28248:18:97"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nativeSrc":"28268:34:97","nodeType":"YulLiteral","src":"28268:34:97","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nativeSrc":"28241:6:97","nodeType":"YulIdentifier","src":"28241:6:97"},"nativeSrc":"28241:62:97","nodeType":"YulFunctionCall","src":"28241:62:97"},"nativeSrc":"28241:62:97","nodeType":"YulExpressionStatement","src":"28241:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28323:9:97","nodeType":"YulIdentifier","src":"28323:9:97"},{"kind":"number","nativeSrc":"28334:2:97","nodeType":"YulLiteral","src":"28334:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"28319:3:97","nodeType":"YulIdentifier","src":"28319:3:97"},"nativeSrc":"28319:18:97","nodeType":"YulFunctionCall","src":"28319:18:97"},{"hexValue":"646472657373","kind":"string","nativeSrc":"28339:8:97","nodeType":"YulLiteral","src":"28339:8:97","type":"","value":"ddress"}],"functionName":{"name":"mstore","nativeSrc":"28312:6:97","nodeType":"YulIdentifier","src":"28312:6:97"},"nativeSrc":"28312:36:97","nodeType":"YulFunctionCall","src":"28312:36:97"},"nativeSrc":"28312:36:97","nodeType":"YulExpressionStatement","src":"28312:36:97"},{"nativeSrc":"28357:27:97","nodeType":"YulAssignment","src":"28357:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"28369:9:97","nodeType":"YulIdentifier","src":"28369:9:97"},{"kind":"number","nativeSrc":"28380:3:97","nodeType":"YulLiteral","src":"28380:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"28365:3:97","nodeType":"YulIdentifier","src":"28365:3:97"},"nativeSrc":"28365:19:97","nodeType":"YulFunctionCall","src":"28365:19:97"},"variableNames":[{"name":"tail","nativeSrc":"28357:4:97","nodeType":"YulIdentifier","src":"28357:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"27988:402:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"28139:9:97","nodeType":"YulTypedName","src":"28139:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"28153:4:97","nodeType":"YulTypedName","src":"28153:4:97","type":""}],"src":"27988:402:97"},{"body":{"nativeSrc":"28544:190:97","nodeType":"YulBlock","src":"28544:190:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"28561:9:97","nodeType":"YulIdentifier","src":"28561:9:97"},{"arguments":[{"name":"value0","nativeSrc":"28576:6:97","nodeType":"YulIdentifier","src":"28576:6:97"},{"kind":"number","nativeSrc":"28584:42:97","nodeType":"YulLiteral","src":"28584:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"28572:3:97","nodeType":"YulIdentifier","src":"28572:3:97"},"nativeSrc":"28572:55:97","nodeType":"YulFunctionCall","src":"28572:55:97"}],"functionName":{"name":"mstore","nativeSrc":"28554:6:97","nodeType":"YulIdentifier","src":"28554:6:97"},"nativeSrc":"28554:74:97","nodeType":"YulFunctionCall","src":"28554:74:97"},"nativeSrc":"28554:74:97","nodeType":"YulExpressionStatement","src":"28554:74:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28648:9:97","nodeType":"YulIdentifier","src":"28648:9:97"},{"kind":"number","nativeSrc":"28659:2:97","nodeType":"YulLiteral","src":"28659:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"28644:3:97","nodeType":"YulIdentifier","src":"28644:3:97"},"nativeSrc":"28644:18:97","nodeType":"YulFunctionCall","src":"28644:18:97"},{"kind":"number","nativeSrc":"28664:2:97","nodeType":"YulLiteral","src":"28664:2:97","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"28637:6:97","nodeType":"YulIdentifier","src":"28637:6:97"},"nativeSrc":"28637:30:97","nodeType":"YulFunctionCall","src":"28637:30:97"},"nativeSrc":"28637:30:97","nodeType":"YulExpressionStatement","src":"28637:30:97"},{"nativeSrc":"28676:52:97","nodeType":"YulAssignment","src":"28676:52:97","value":{"arguments":[{"name":"value1","nativeSrc":"28701:6:97","nodeType":"YulIdentifier","src":"28701:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"28713:9:97","nodeType":"YulIdentifier","src":"28713:9:97"},{"kind":"number","nativeSrc":"28724:2:97","nodeType":"YulLiteral","src":"28724:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"28709:3:97","nodeType":"YulIdentifier","src":"28709:3:97"},"nativeSrc":"28709:18:97","nodeType":"YulFunctionCall","src":"28709:18:97"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"28684:16:97","nodeType":"YulIdentifier","src":"28684:16:97"},"nativeSrc":"28684:44:97","nodeType":"YulFunctionCall","src":"28684:44:97"},"variableNames":[{"name":"tail","nativeSrc":"28676:4:97","nodeType":"YulIdentifier","src":"28676:4:97"}]}]},"name":"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"28395:339:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"28505:9:97","nodeType":"YulTypedName","src":"28505:9:97","type":""},{"name":"value1","nativeSrc":"28516:6:97","nodeType":"YulTypedName","src":"28516:6:97","type":""},{"name":"value0","nativeSrc":"28524:6:97","nodeType":"YulTypedName","src":"28524:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"28535:4:97","nodeType":"YulTypedName","src":"28535:4:97","type":""}],"src":"28395:339:97"},{"body":{"nativeSrc":"28817:167:97","nodeType":"YulBlock","src":"28817:167:97","statements":[{"body":{"nativeSrc":"28863:16:97","nodeType":"YulBlock","src":"28863:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"28872:1:97","nodeType":"YulLiteral","src":"28872:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"28875:1:97","nodeType":"YulLiteral","src":"28875:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"28865:6:97","nodeType":"YulIdentifier","src":"28865:6:97"},"nativeSrc":"28865:12:97","nodeType":"YulFunctionCall","src":"28865:12:97"},"nativeSrc":"28865:12:97","nodeType":"YulExpressionStatement","src":"28865:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"28838:7:97","nodeType":"YulIdentifier","src":"28838:7:97"},{"name":"headStart","nativeSrc":"28847:9:97","nodeType":"YulIdentifier","src":"28847:9:97"}],"functionName":{"name":"sub","nativeSrc":"28834:3:97","nodeType":"YulIdentifier","src":"28834:3:97"},"nativeSrc":"28834:23:97","nodeType":"YulFunctionCall","src":"28834:23:97"},{"kind":"number","nativeSrc":"28859:2:97","nodeType":"YulLiteral","src":"28859:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"28830:3:97","nodeType":"YulIdentifier","src":"28830:3:97"},"nativeSrc":"28830:32:97","nodeType":"YulFunctionCall","src":"28830:32:97"},"nativeSrc":"28827:52:97","nodeType":"YulIf","src":"28827:52:97"},{"nativeSrc":"28888:29:97","nodeType":"YulVariableDeclaration","src":"28888:29:97","value":{"arguments":[{"name":"headStart","nativeSrc":"28907:9:97","nodeType":"YulIdentifier","src":"28907:9:97"}],"functionName":{"name":"mload","nativeSrc":"28901:5:97","nodeType":"YulIdentifier","src":"28901:5:97"},"nativeSrc":"28901:16:97","nodeType":"YulFunctionCall","src":"28901:16:97"},"variables":[{"name":"value","nativeSrc":"28892:5:97","nodeType":"YulTypedName","src":"28892:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"28948:5:97","nodeType":"YulIdentifier","src":"28948:5:97"}],"functionName":{"name":"validator_revert_bool","nativeSrc":"28926:21:97","nodeType":"YulIdentifier","src":"28926:21:97"},"nativeSrc":"28926:28:97","nodeType":"YulFunctionCall","src":"28926:28:97"},"nativeSrc":"28926:28:97","nodeType":"YulExpressionStatement","src":"28926:28:97"},{"nativeSrc":"28963:15:97","nodeType":"YulAssignment","src":"28963:15:97","value":{"name":"value","nativeSrc":"28973:5:97","nodeType":"YulIdentifier","src":"28973:5:97"},"variableNames":[{"name":"value0","nativeSrc":"28963:6:97","nodeType":"YulIdentifier","src":"28963:6:97"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"28739:245:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"28783:9:97","nodeType":"YulTypedName","src":"28783:9:97","type":""},{"name":"dataEnd","nativeSrc":"28794:7:97","nodeType":"YulTypedName","src":"28794:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"28806:6:97","nodeType":"YulTypedName","src":"28806:6:97","type":""}],"src":"28739:245:97"},{"body":{"nativeSrc":"29163:163:97","nodeType":"YulBlock","src":"29163:163:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"29180:9:97","nodeType":"YulIdentifier","src":"29180:9:97"},{"kind":"number","nativeSrc":"29191:2:97","nodeType":"YulLiteral","src":"29191:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"29173:6:97","nodeType":"YulIdentifier","src":"29173:6:97"},"nativeSrc":"29173:21:97","nodeType":"YulFunctionCall","src":"29173:21:97"},"nativeSrc":"29173:21:97","nodeType":"YulExpressionStatement","src":"29173:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29214:9:97","nodeType":"YulIdentifier","src":"29214:9:97"},{"kind":"number","nativeSrc":"29225:2:97","nodeType":"YulLiteral","src":"29225:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29210:3:97","nodeType":"YulIdentifier","src":"29210:3:97"},"nativeSrc":"29210:18:97","nodeType":"YulFunctionCall","src":"29210:18:97"},{"kind":"number","nativeSrc":"29230:2:97","nodeType":"YulLiteral","src":"29230:2:97","type":"","value":"13"}],"functionName":{"name":"mstore","nativeSrc":"29203:6:97","nodeType":"YulIdentifier","src":"29203:6:97"},"nativeSrc":"29203:30:97","nodeType":"YulFunctionCall","src":"29203:30:97"},"nativeSrc":"29203:30:97","nodeType":"YulExpressionStatement","src":"29203:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29253:9:97","nodeType":"YulIdentifier","src":"29253:9:97"},{"kind":"number","nativeSrc":"29264:2:97","nodeType":"YulLiteral","src":"29264:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"29249:3:97","nodeType":"YulIdentifier","src":"29249:3:97"},"nativeSrc":"29249:18:97","nodeType":"YulFunctionCall","src":"29249:18:97"},{"hexValue":"6163636573732064656e696564","kind":"string","nativeSrc":"29269:15:97","nodeType":"YulLiteral","src":"29269:15:97","type":"","value":"access denied"}],"functionName":{"name":"mstore","nativeSrc":"29242:6:97","nodeType":"YulIdentifier","src":"29242:6:97"},"nativeSrc":"29242:43:97","nodeType":"YulFunctionCall","src":"29242:43:97"},"nativeSrc":"29242:43:97","nodeType":"YulExpressionStatement","src":"29242:43:97"},{"nativeSrc":"29294:26:97","nodeType":"YulAssignment","src":"29294:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"29306:9:97","nodeType":"YulIdentifier","src":"29306:9:97"},{"kind":"number","nativeSrc":"29317:2:97","nodeType":"YulLiteral","src":"29317:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"29302:3:97","nodeType":"YulIdentifier","src":"29302:3:97"},"nativeSrc":"29302:18:97","nodeType":"YulFunctionCall","src":"29302:18:97"},"variableNames":[{"name":"tail","nativeSrc":"29294:4:97","nodeType":"YulIdentifier","src":"29294:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_cba8a57ccb1594d7138ca5e2a9216c55d23151b53a95734bafda4b812e3786ff__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"28989:337:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29140:9:97","nodeType":"YulTypedName","src":"29140:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"29154:4:97","nodeType":"YulTypedName","src":"29154:4:97","type":""}],"src":"28989:337:97"},{"body":{"nativeSrc":"29505:182:97","nodeType":"YulBlock","src":"29505:182:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"29522:9:97","nodeType":"YulIdentifier","src":"29522:9:97"},{"kind":"number","nativeSrc":"29533:2:97","nodeType":"YulLiteral","src":"29533:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"29515:6:97","nodeType":"YulIdentifier","src":"29515:6:97"},"nativeSrc":"29515:21:97","nodeType":"YulFunctionCall","src":"29515:21:97"},"nativeSrc":"29515:21:97","nodeType":"YulExpressionStatement","src":"29515:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29556:9:97","nodeType":"YulIdentifier","src":"29556:9:97"},{"kind":"number","nativeSrc":"29567:2:97","nodeType":"YulLiteral","src":"29567:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29552:3:97","nodeType":"YulIdentifier","src":"29552:3:97"},"nativeSrc":"29552:18:97","nodeType":"YulFunctionCall","src":"29552:18:97"},{"kind":"number","nativeSrc":"29572:2:97","nodeType":"YulLiteral","src":"29572:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"29545:6:97","nodeType":"YulIdentifier","src":"29545:6:97"},"nativeSrc":"29545:30:97","nodeType":"YulFunctionCall","src":"29545:30:97"},"nativeSrc":"29545:30:97","nodeType":"YulExpressionStatement","src":"29545:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29595:9:97","nodeType":"YulIdentifier","src":"29595:9:97"},{"kind":"number","nativeSrc":"29606:2:97","nodeType":"YulLiteral","src":"29606:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"29591:3:97","nodeType":"YulIdentifier","src":"29591:3:97"},"nativeSrc":"29591:18:97","nodeType":"YulFunctionCall","src":"29591:18:97"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nativeSrc":"29611:34:97","nodeType":"YulLiteral","src":"29611:34:97","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nativeSrc":"29584:6:97","nodeType":"YulIdentifier","src":"29584:6:97"},"nativeSrc":"29584:62:97","nodeType":"YulFunctionCall","src":"29584:62:97"},"nativeSrc":"29584:62:97","nodeType":"YulExpressionStatement","src":"29584:62:97"},{"nativeSrc":"29655:26:97","nodeType":"YulAssignment","src":"29655:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"29667:9:97","nodeType":"YulIdentifier","src":"29667:9:97"},{"kind":"number","nativeSrc":"29678:2:97","nodeType":"YulLiteral","src":"29678:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"29663:3:97","nodeType":"YulIdentifier","src":"29663:3:97"},"nativeSrc":"29663:18:97","nodeType":"YulFunctionCall","src":"29663:18:97"},"variableNames":[{"name":"tail","nativeSrc":"29655:4:97","nodeType":"YulIdentifier","src":"29655:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"29331:356:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29482:9:97","nodeType":"YulTypedName","src":"29482:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"29496:4:97","nodeType":"YulTypedName","src":"29496:4:97","type":""}],"src":"29331:356:97"},{"body":{"nativeSrc":"29866:181:97","nodeType":"YulBlock","src":"29866:181:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"29883:9:97","nodeType":"YulIdentifier","src":"29883:9:97"},{"kind":"number","nativeSrc":"29894:2:97","nodeType":"YulLiteral","src":"29894:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"29876:6:97","nodeType":"YulIdentifier","src":"29876:6:97"},"nativeSrc":"29876:21:97","nodeType":"YulFunctionCall","src":"29876:21:97"},"nativeSrc":"29876:21:97","nodeType":"YulExpressionStatement","src":"29876:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29917:9:97","nodeType":"YulIdentifier","src":"29917:9:97"},{"kind":"number","nativeSrc":"29928:2:97","nodeType":"YulLiteral","src":"29928:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29913:3:97","nodeType":"YulIdentifier","src":"29913:3:97"},"nativeSrc":"29913:18:97","nodeType":"YulFunctionCall","src":"29913:18:97"},{"kind":"number","nativeSrc":"29933:2:97","nodeType":"YulLiteral","src":"29933:2:97","type":"","value":"31"}],"functionName":{"name":"mstore","nativeSrc":"29906:6:97","nodeType":"YulIdentifier","src":"29906:6:97"},"nativeSrc":"29906:30:97","nodeType":"YulFunctionCall","src":"29906:30:97"},"nativeSrc":"29906:30:97","nodeType":"YulExpressionStatement","src":"29906:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29956:9:97","nodeType":"YulIdentifier","src":"29956:9:97"},{"kind":"number","nativeSrc":"29967:2:97","nodeType":"YulLiteral","src":"29967:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"29952:3:97","nodeType":"YulIdentifier","src":"29952:3:97"},"nativeSrc":"29952:18:97","nodeType":"YulFunctionCall","src":"29952:18:97"},{"hexValue":"5265656e7472616e637947756172643a207265656e7472616e742063616c6c","kind":"string","nativeSrc":"29972:33:97","nodeType":"YulLiteral","src":"29972:33:97","type":"","value":"ReentrancyGuard: reentrant call"}],"functionName":{"name":"mstore","nativeSrc":"29945:6:97","nodeType":"YulIdentifier","src":"29945:6:97"},"nativeSrc":"29945:61:97","nodeType":"YulFunctionCall","src":"29945:61:97"},"nativeSrc":"29945:61:97","nodeType":"YulExpressionStatement","src":"29945:61:97"},{"nativeSrc":"30015:26:97","nodeType":"YulAssignment","src":"30015:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"30027:9:97","nodeType":"YulIdentifier","src":"30027:9:97"},{"kind":"number","nativeSrc":"30038:2:97","nodeType":"YulLiteral","src":"30038:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"30023:3:97","nodeType":"YulIdentifier","src":"30023:3:97"},"nativeSrc":"30023:18:97","nodeType":"YulFunctionCall","src":"30023:18:97"},"variableNames":[{"name":"tail","nativeSrc":"30015:4:97","nodeType":"YulIdentifier","src":"30015:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"29692:355:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29843:9:97","nodeType":"YulTypedName","src":"29843:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"29857:4:97","nodeType":"YulTypedName","src":"29857:4:97","type":""}],"src":"29692:355:97"},{"body":{"nativeSrc":"30226:166:97","nodeType":"YulBlock","src":"30226:166:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"30243:9:97","nodeType":"YulIdentifier","src":"30243:9:97"},{"kind":"number","nativeSrc":"30254:2:97","nodeType":"YulLiteral","src":"30254:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"30236:6:97","nodeType":"YulIdentifier","src":"30236:6:97"},"nativeSrc":"30236:21:97","nodeType":"YulFunctionCall","src":"30236:21:97"},"nativeSrc":"30236:21:97","nodeType":"YulExpressionStatement","src":"30236:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30277:9:97","nodeType":"YulIdentifier","src":"30277:9:97"},{"kind":"number","nativeSrc":"30288:2:97","nodeType":"YulLiteral","src":"30288:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"30273:3:97","nodeType":"YulIdentifier","src":"30273:3:97"},"nativeSrc":"30273:18:97","nodeType":"YulFunctionCall","src":"30273:18:97"},{"kind":"number","nativeSrc":"30293:2:97","nodeType":"YulLiteral","src":"30293:2:97","type":"","value":"16"}],"functionName":{"name":"mstore","nativeSrc":"30266:6:97","nodeType":"YulIdentifier","src":"30266:6:97"},"nativeSrc":"30266:30:97","nodeType":"YulFunctionCall","src":"30266:30:97"},"nativeSrc":"30266:30:97","nodeType":"YulExpressionStatement","src":"30266:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30316:9:97","nodeType":"YulIdentifier","src":"30316:9:97"},{"kind":"number","nativeSrc":"30327:2:97","nodeType":"YulLiteral","src":"30327:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"30312:3:97","nodeType":"YulIdentifier","src":"30312:3:97"},"nativeSrc":"30312:18:97","nodeType":"YulFunctionCall","src":"30312:18:97"},{"hexValue":"5061757361626c653a20706175736564","kind":"string","nativeSrc":"30332:18:97","nodeType":"YulLiteral","src":"30332:18:97","type":"","value":"Pausable: paused"}],"functionName":{"name":"mstore","nativeSrc":"30305:6:97","nodeType":"YulIdentifier","src":"30305:6:97"},"nativeSrc":"30305:46:97","nodeType":"YulFunctionCall","src":"30305:46:97"},"nativeSrc":"30305:46:97","nodeType":"YulExpressionStatement","src":"30305:46:97"},{"nativeSrc":"30360:26:97","nodeType":"YulAssignment","src":"30360:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"30372:9:97","nodeType":"YulIdentifier","src":"30372:9:97"},{"kind":"number","nativeSrc":"30383:2:97","nodeType":"YulLiteral","src":"30383:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"30368:3:97","nodeType":"YulIdentifier","src":"30368:3:97"},"nativeSrc":"30368:18:97","nodeType":"YulFunctionCall","src":"30368:18:97"},"variableNames":[{"name":"tail","nativeSrc":"30360:4:97","nodeType":"YulIdentifier","src":"30360:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"30052:340:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"30203:9:97","nodeType":"YulTypedName","src":"30203:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"30217:4:97","nodeType":"YulTypedName","src":"30217:4:97","type":""}],"src":"30052:340:97"},{"body":{"nativeSrc":"30466:114:97","nodeType":"YulBlock","src":"30466:114:97","statements":[{"body":{"nativeSrc":"30510:22:97","nodeType":"YulBlock","src":"30510:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"30512:16:97","nodeType":"YulIdentifier","src":"30512:16:97"},"nativeSrc":"30512:18:97","nodeType":"YulFunctionCall","src":"30512:18:97"},"nativeSrc":"30512:18:97","nodeType":"YulExpressionStatement","src":"30512:18:97"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"30482:6:97","nodeType":"YulIdentifier","src":"30482:6:97"},{"kind":"number","nativeSrc":"30490:18:97","nodeType":"YulLiteral","src":"30490:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"30479:2:97","nodeType":"YulIdentifier","src":"30479:2:97"},"nativeSrc":"30479:30:97","nodeType":"YulFunctionCall","src":"30479:30:97"},"nativeSrc":"30476:56:97","nodeType":"YulIf","src":"30476:56:97"},{"nativeSrc":"30541:33:97","nodeType":"YulAssignment","src":"30541:33:97","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"30557:1:97","nodeType":"YulLiteral","src":"30557:1:97","type":"","value":"5"},{"name":"length","nativeSrc":"30560:6:97","nodeType":"YulIdentifier","src":"30560:6:97"}],"functionName":{"name":"shl","nativeSrc":"30553:3:97","nodeType":"YulIdentifier","src":"30553:3:97"},"nativeSrc":"30553:14:97","nodeType":"YulFunctionCall","src":"30553:14:97"},{"kind":"number","nativeSrc":"30569:4:97","nodeType":"YulLiteral","src":"30569:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"30549:3:97","nodeType":"YulIdentifier","src":"30549:3:97"},"nativeSrc":"30549:25:97","nodeType":"YulFunctionCall","src":"30549:25:97"},"variableNames":[{"name":"size","nativeSrc":"30541:4:97","nodeType":"YulIdentifier","src":"30541:4:97"}]}]},"name":"array_allocation_size_array_address_dyn","nativeSrc":"30397:183:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"30446:6:97","nodeType":"YulTypedName","src":"30446:6:97","type":""}],"returnVariables":[{"name":"size","nativeSrc":"30457:4:97","nodeType":"YulTypedName","src":"30457:4:97","type":""}],"src":"30397:183:97"},{"body":{"nativeSrc":"30660:590:97","nodeType":"YulBlock","src":"30660:590:97","statements":[{"body":{"nativeSrc":"30709:16:97","nodeType":"YulBlock","src":"30709:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"30718:1:97","nodeType":"YulLiteral","src":"30718:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"30721:1:97","nodeType":"YulLiteral","src":"30721:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"30711:6:97","nodeType":"YulIdentifier","src":"30711:6:97"},"nativeSrc":"30711:12:97","nodeType":"YulFunctionCall","src":"30711:12:97"},"nativeSrc":"30711:12:97","nodeType":"YulExpressionStatement","src":"30711:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"30688:6:97","nodeType":"YulIdentifier","src":"30688:6:97"},{"kind":"number","nativeSrc":"30696:4:97","nodeType":"YulLiteral","src":"30696:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"30684:3:97","nodeType":"YulIdentifier","src":"30684:3:97"},"nativeSrc":"30684:17:97","nodeType":"YulFunctionCall","src":"30684:17:97"},{"name":"end","nativeSrc":"30703:3:97","nodeType":"YulIdentifier","src":"30703:3:97"}],"functionName":{"name":"slt","nativeSrc":"30680:3:97","nodeType":"YulIdentifier","src":"30680:3:97"},"nativeSrc":"30680:27:97","nodeType":"YulFunctionCall","src":"30680:27:97"}],"functionName":{"name":"iszero","nativeSrc":"30673:6:97","nodeType":"YulIdentifier","src":"30673:6:97"},"nativeSrc":"30673:35:97","nodeType":"YulFunctionCall","src":"30673:35:97"},"nativeSrc":"30670:55:97","nodeType":"YulIf","src":"30670:55:97"},{"nativeSrc":"30734:23:97","nodeType":"YulVariableDeclaration","src":"30734:23:97","value":{"arguments":[{"name":"offset","nativeSrc":"30750:6:97","nodeType":"YulIdentifier","src":"30750:6:97"}],"functionName":{"name":"mload","nativeSrc":"30744:5:97","nodeType":"YulIdentifier","src":"30744:5:97"},"nativeSrc":"30744:13:97","nodeType":"YulFunctionCall","src":"30744:13:97"},"variables":[{"name":"_1","nativeSrc":"30738:2:97","nodeType":"YulTypedName","src":"30738:2:97","type":""}]},{"nativeSrc":"30766:14:97","nodeType":"YulVariableDeclaration","src":"30766:14:97","value":{"kind":"number","nativeSrc":"30776:4:97","nodeType":"YulLiteral","src":"30776:4:97","type":"","value":"0x20"},"variables":[{"name":"_2","nativeSrc":"30770:2:97","nodeType":"YulTypedName","src":"30770:2:97","type":""}]},{"nativeSrc":"30789:71:97","nodeType":"YulVariableDeclaration","src":"30789:71:97","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"30856:2:97","nodeType":"YulIdentifier","src":"30856:2:97"}],"functionName":{"name":"array_allocation_size_array_address_dyn","nativeSrc":"30816:39:97","nodeType":"YulIdentifier","src":"30816:39:97"},"nativeSrc":"30816:43:97","nodeType":"YulFunctionCall","src":"30816:43:97"}],"functionName":{"name":"allocate_memory","nativeSrc":"30800:15:97","nodeType":"YulIdentifier","src":"30800:15:97"},"nativeSrc":"30800:60:97","nodeType":"YulFunctionCall","src":"30800:60:97"},"variables":[{"name":"dst","nativeSrc":"30793:3:97","nodeType":"YulTypedName","src":"30793:3:97","type":""}]},{"nativeSrc":"30869:16:97","nodeType":"YulVariableDeclaration","src":"30869:16:97","value":{"name":"dst","nativeSrc":"30882:3:97","nodeType":"YulIdentifier","src":"30882:3:97"},"variables":[{"name":"dst_1","nativeSrc":"30873:5:97","nodeType":"YulTypedName","src":"30873:5:97","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"30901:3:97","nodeType":"YulIdentifier","src":"30901:3:97"},{"name":"_1","nativeSrc":"30906:2:97","nodeType":"YulIdentifier","src":"30906:2:97"}],"functionName":{"name":"mstore","nativeSrc":"30894:6:97","nodeType":"YulIdentifier","src":"30894:6:97"},"nativeSrc":"30894:15:97","nodeType":"YulFunctionCall","src":"30894:15:97"},"nativeSrc":"30894:15:97","nodeType":"YulExpressionStatement","src":"30894:15:97"},{"nativeSrc":"30918:21:97","nodeType":"YulAssignment","src":"30918:21:97","value":{"arguments":[{"name":"dst","nativeSrc":"30929:3:97","nodeType":"YulIdentifier","src":"30929:3:97"},{"kind":"number","nativeSrc":"30934:4:97","nodeType":"YulLiteral","src":"30934:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"30925:3:97","nodeType":"YulIdentifier","src":"30925:3:97"},"nativeSrc":"30925:14:97","nodeType":"YulFunctionCall","src":"30925:14:97"},"variableNames":[{"name":"dst","nativeSrc":"30918:3:97","nodeType":"YulIdentifier","src":"30918:3:97"}]},{"nativeSrc":"30948:48:97","nodeType":"YulVariableDeclaration","src":"30948:48:97","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"30970:6:97","nodeType":"YulIdentifier","src":"30970:6:97"},{"arguments":[{"kind":"number","nativeSrc":"30982:1:97","nodeType":"YulLiteral","src":"30982:1:97","type":"","value":"5"},{"name":"_1","nativeSrc":"30985:2:97","nodeType":"YulIdentifier","src":"30985:2:97"}],"functionName":{"name":"shl","nativeSrc":"30978:3:97","nodeType":"YulIdentifier","src":"30978:3:97"},"nativeSrc":"30978:10:97","nodeType":"YulFunctionCall","src":"30978:10:97"}],"functionName":{"name":"add","nativeSrc":"30966:3:97","nodeType":"YulIdentifier","src":"30966:3:97"},"nativeSrc":"30966:23:97","nodeType":"YulFunctionCall","src":"30966:23:97"},{"kind":"number","nativeSrc":"30991:4:97","nodeType":"YulLiteral","src":"30991:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"30962:3:97","nodeType":"YulIdentifier","src":"30962:3:97"},"nativeSrc":"30962:34:97","nodeType":"YulFunctionCall","src":"30962:34:97"},"variables":[{"name":"srcEnd","nativeSrc":"30952:6:97","nodeType":"YulTypedName","src":"30952:6:97","type":""}]},{"body":{"nativeSrc":"31024:16:97","nodeType":"YulBlock","src":"31024:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"31033:1:97","nodeType":"YulLiteral","src":"31033:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"31036:1:97","nodeType":"YulLiteral","src":"31036:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"31026:6:97","nodeType":"YulIdentifier","src":"31026:6:97"},"nativeSrc":"31026:12:97","nodeType":"YulFunctionCall","src":"31026:12:97"},"nativeSrc":"31026:12:97","nodeType":"YulExpressionStatement","src":"31026:12:97"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"31011:6:97","nodeType":"YulIdentifier","src":"31011:6:97"},{"name":"end","nativeSrc":"31019:3:97","nodeType":"YulIdentifier","src":"31019:3:97"}],"functionName":{"name":"gt","nativeSrc":"31008:2:97","nodeType":"YulIdentifier","src":"31008:2:97"},"nativeSrc":"31008:15:97","nodeType":"YulFunctionCall","src":"31008:15:97"},"nativeSrc":"31005:35:97","nodeType":"YulIf","src":"31005:35:97"},{"nativeSrc":"31049:28:97","nodeType":"YulVariableDeclaration","src":"31049:28:97","value":{"arguments":[{"name":"offset","nativeSrc":"31064:6:97","nodeType":"YulIdentifier","src":"31064:6:97"},{"kind":"number","nativeSrc":"31072:4:97","nodeType":"YulLiteral","src":"31072:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"31060:3:97","nodeType":"YulIdentifier","src":"31060:3:97"},"nativeSrc":"31060:17:97","nodeType":"YulFunctionCall","src":"31060:17:97"},"variables":[{"name":"src","nativeSrc":"31053:3:97","nodeType":"YulTypedName","src":"31053:3:97","type":""}]},{"body":{"nativeSrc":"31142:79:97","nodeType":"YulBlock","src":"31142:79:97","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"31163:3:97","nodeType":"YulIdentifier","src":"31163:3:97"},{"arguments":[{"name":"src","nativeSrc":"31174:3:97","nodeType":"YulIdentifier","src":"31174:3:97"}],"functionName":{"name":"mload","nativeSrc":"31168:5:97","nodeType":"YulIdentifier","src":"31168:5:97"},"nativeSrc":"31168:10:97","nodeType":"YulFunctionCall","src":"31168:10:97"}],"functionName":{"name":"mstore","nativeSrc":"31156:6:97","nodeType":"YulIdentifier","src":"31156:6:97"},"nativeSrc":"31156:23:97","nodeType":"YulFunctionCall","src":"31156:23:97"},"nativeSrc":"31156:23:97","nodeType":"YulExpressionStatement","src":"31156:23:97"},{"nativeSrc":"31192:19:97","nodeType":"YulAssignment","src":"31192:19:97","value":{"arguments":[{"name":"dst","nativeSrc":"31203:3:97","nodeType":"YulIdentifier","src":"31203:3:97"},{"name":"_2","nativeSrc":"31208:2:97","nodeType":"YulIdentifier","src":"31208:2:97"}],"functionName":{"name":"add","nativeSrc":"31199:3:97","nodeType":"YulIdentifier","src":"31199:3:97"},"nativeSrc":"31199:12:97","nodeType":"YulFunctionCall","src":"31199:12:97"},"variableNames":[{"name":"dst","nativeSrc":"31192:3:97","nodeType":"YulIdentifier","src":"31192:3:97"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"31097:3:97","nodeType":"YulIdentifier","src":"31097:3:97"},{"name":"srcEnd","nativeSrc":"31102:6:97","nodeType":"YulIdentifier","src":"31102:6:97"}],"functionName":{"name":"lt","nativeSrc":"31094:2:97","nodeType":"YulIdentifier","src":"31094:2:97"},"nativeSrc":"31094:15:97","nodeType":"YulFunctionCall","src":"31094:15:97"},"nativeSrc":"31086:135:97","nodeType":"YulForLoop","post":{"nativeSrc":"31110:23:97","nodeType":"YulBlock","src":"31110:23:97","statements":[{"nativeSrc":"31112:19:97","nodeType":"YulAssignment","src":"31112:19:97","value":{"arguments":[{"name":"src","nativeSrc":"31123:3:97","nodeType":"YulIdentifier","src":"31123:3:97"},{"name":"_2","nativeSrc":"31128:2:97","nodeType":"YulIdentifier","src":"31128:2:97"}],"functionName":{"name":"add","nativeSrc":"31119:3:97","nodeType":"YulIdentifier","src":"31119:3:97"},"nativeSrc":"31119:12:97","nodeType":"YulFunctionCall","src":"31119:12:97"},"variableNames":[{"name":"src","nativeSrc":"31112:3:97","nodeType":"YulIdentifier","src":"31112:3:97"}]}]},"pre":{"nativeSrc":"31090:3:97","nodeType":"YulBlock","src":"31090:3:97","statements":[]},"src":"31086:135:97"},{"nativeSrc":"31230:14:97","nodeType":"YulAssignment","src":"31230:14:97","value":{"name":"dst_1","nativeSrc":"31239:5:97","nodeType":"YulIdentifier","src":"31239:5:97"},"variableNames":[{"name":"array","nativeSrc":"31230:5:97","nodeType":"YulIdentifier","src":"31230:5:97"}]}]},"name":"abi_decode_array_uint256_dyn_fromMemory","nativeSrc":"30585:665:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"30634:6:97","nodeType":"YulTypedName","src":"30634:6:97","type":""},{"name":"end","nativeSrc":"30642:3:97","nodeType":"YulTypedName","src":"30642:3:97","type":""}],"returnVariables":[{"name":"array","nativeSrc":"30650:5:97","nodeType":"YulTypedName","src":"30650:5:97","type":""}],"src":"30585:665:97"},{"body":{"nativeSrc":"31329:1015:97","nodeType":"YulBlock","src":"31329:1015:97","statements":[{"body":{"nativeSrc":"31378:16:97","nodeType":"YulBlock","src":"31378:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"31387:1:97","nodeType":"YulLiteral","src":"31387:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"31390:1:97","nodeType":"YulLiteral","src":"31390:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"31380:6:97","nodeType":"YulIdentifier","src":"31380:6:97"},"nativeSrc":"31380:12:97","nodeType":"YulFunctionCall","src":"31380:12:97"},"nativeSrc":"31380:12:97","nodeType":"YulExpressionStatement","src":"31380:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"31357:6:97","nodeType":"YulIdentifier","src":"31357:6:97"},{"kind":"number","nativeSrc":"31365:4:97","nodeType":"YulLiteral","src":"31365:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"31353:3:97","nodeType":"YulIdentifier","src":"31353:3:97"},"nativeSrc":"31353:17:97","nodeType":"YulFunctionCall","src":"31353:17:97"},{"name":"end","nativeSrc":"31372:3:97","nodeType":"YulIdentifier","src":"31372:3:97"}],"functionName":{"name":"slt","nativeSrc":"31349:3:97","nodeType":"YulIdentifier","src":"31349:3:97"},"nativeSrc":"31349:27:97","nodeType":"YulFunctionCall","src":"31349:27:97"}],"functionName":{"name":"iszero","nativeSrc":"31342:6:97","nodeType":"YulIdentifier","src":"31342:6:97"},"nativeSrc":"31342:35:97","nodeType":"YulFunctionCall","src":"31342:35:97"},"nativeSrc":"31339:55:97","nodeType":"YulIf","src":"31339:55:97"},{"nativeSrc":"31403:23:97","nodeType":"YulVariableDeclaration","src":"31403:23:97","value":{"arguments":[{"name":"offset","nativeSrc":"31419:6:97","nodeType":"YulIdentifier","src":"31419:6:97"}],"functionName":{"name":"mload","nativeSrc":"31413:5:97","nodeType":"YulIdentifier","src":"31413:5:97"},"nativeSrc":"31413:13:97","nodeType":"YulFunctionCall","src":"31413:13:97"},"variables":[{"name":"_1","nativeSrc":"31407:2:97","nodeType":"YulTypedName","src":"31407:2:97","type":""}]},{"nativeSrc":"31435:14:97","nodeType":"YulVariableDeclaration","src":"31435:14:97","value":{"kind":"number","nativeSrc":"31445:4:97","nodeType":"YulLiteral","src":"31445:4:97","type":"","value":"0x20"},"variables":[{"name":"_2","nativeSrc":"31439:2:97","nodeType":"YulTypedName","src":"31439:2:97","type":""}]},{"nativeSrc":"31458:71:97","nodeType":"YulVariableDeclaration","src":"31458:71:97","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"31525:2:97","nodeType":"YulIdentifier","src":"31525:2:97"}],"functionName":{"name":"array_allocation_size_array_address_dyn","nativeSrc":"31485:39:97","nodeType":"YulIdentifier","src":"31485:39:97"},"nativeSrc":"31485:43:97","nodeType":"YulFunctionCall","src":"31485:43:97"}],"functionName":{"name":"allocate_memory","nativeSrc":"31469:15:97","nodeType":"YulIdentifier","src":"31469:15:97"},"nativeSrc":"31469:60:97","nodeType":"YulFunctionCall","src":"31469:60:97"},"variables":[{"name":"dst","nativeSrc":"31462:3:97","nodeType":"YulTypedName","src":"31462:3:97","type":""}]},{"nativeSrc":"31538:16:97","nodeType":"YulVariableDeclaration","src":"31538:16:97","value":{"name":"dst","nativeSrc":"31551:3:97","nodeType":"YulIdentifier","src":"31551:3:97"},"variables":[{"name":"dst_1","nativeSrc":"31542:5:97","nodeType":"YulTypedName","src":"31542:5:97","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"31570:3:97","nodeType":"YulIdentifier","src":"31570:3:97"},{"name":"_1","nativeSrc":"31575:2:97","nodeType":"YulIdentifier","src":"31575:2:97"}],"functionName":{"name":"mstore","nativeSrc":"31563:6:97","nodeType":"YulIdentifier","src":"31563:6:97"},"nativeSrc":"31563:15:97","nodeType":"YulFunctionCall","src":"31563:15:97"},"nativeSrc":"31563:15:97","nodeType":"YulExpressionStatement","src":"31563:15:97"},{"nativeSrc":"31587:19:97","nodeType":"YulAssignment","src":"31587:19:97","value":{"arguments":[{"name":"dst","nativeSrc":"31598:3:97","nodeType":"YulIdentifier","src":"31598:3:97"},{"name":"_2","nativeSrc":"31603:2:97","nodeType":"YulIdentifier","src":"31603:2:97"}],"functionName":{"name":"add","nativeSrc":"31594:3:97","nodeType":"YulIdentifier","src":"31594:3:97"},"nativeSrc":"31594:12:97","nodeType":"YulFunctionCall","src":"31594:12:97"},"variableNames":[{"name":"dst","nativeSrc":"31587:3:97","nodeType":"YulIdentifier","src":"31587:3:97"}]},{"nativeSrc":"31615:46:97","nodeType":"YulVariableDeclaration","src":"31615:46:97","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"31637:6:97","nodeType":"YulIdentifier","src":"31637:6:97"},{"arguments":[{"kind":"number","nativeSrc":"31649:1:97","nodeType":"YulLiteral","src":"31649:1:97","type":"","value":"5"},{"name":"_1","nativeSrc":"31652:2:97","nodeType":"YulIdentifier","src":"31652:2:97"}],"functionName":{"name":"shl","nativeSrc":"31645:3:97","nodeType":"YulIdentifier","src":"31645:3:97"},"nativeSrc":"31645:10:97","nodeType":"YulFunctionCall","src":"31645:10:97"}],"functionName":{"name":"add","nativeSrc":"31633:3:97","nodeType":"YulIdentifier","src":"31633:3:97"},"nativeSrc":"31633:23:97","nodeType":"YulFunctionCall","src":"31633:23:97"},{"name":"_2","nativeSrc":"31658:2:97","nodeType":"YulIdentifier","src":"31658:2:97"}],"functionName":{"name":"add","nativeSrc":"31629:3:97","nodeType":"YulIdentifier","src":"31629:3:97"},"nativeSrc":"31629:32:97","nodeType":"YulFunctionCall","src":"31629:32:97"},"variables":[{"name":"srcEnd","nativeSrc":"31619:6:97","nodeType":"YulTypedName","src":"31619:6:97","type":""}]},{"body":{"nativeSrc":"31689:16:97","nodeType":"YulBlock","src":"31689:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"31698:1:97","nodeType":"YulLiteral","src":"31698:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"31701:1:97","nodeType":"YulLiteral","src":"31701:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"31691:6:97","nodeType":"YulIdentifier","src":"31691:6:97"},"nativeSrc":"31691:12:97","nodeType":"YulFunctionCall","src":"31691:12:97"},"nativeSrc":"31691:12:97","nodeType":"YulExpressionStatement","src":"31691:12:97"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"31676:6:97","nodeType":"YulIdentifier","src":"31676:6:97"},{"name":"end","nativeSrc":"31684:3:97","nodeType":"YulIdentifier","src":"31684:3:97"}],"functionName":{"name":"gt","nativeSrc":"31673:2:97","nodeType":"YulIdentifier","src":"31673:2:97"},"nativeSrc":"31673:15:97","nodeType":"YulFunctionCall","src":"31673:15:97"},"nativeSrc":"31670:35:97","nodeType":"YulIf","src":"31670:35:97"},{"nativeSrc":"31714:26:97","nodeType":"YulVariableDeclaration","src":"31714:26:97","value":{"arguments":[{"name":"offset","nativeSrc":"31729:6:97","nodeType":"YulIdentifier","src":"31729:6:97"},{"name":"_2","nativeSrc":"31737:2:97","nodeType":"YulIdentifier","src":"31737:2:97"}],"functionName":{"name":"add","nativeSrc":"31725:3:97","nodeType":"YulIdentifier","src":"31725:3:97"},"nativeSrc":"31725:15:97","nodeType":"YulFunctionCall","src":"31725:15:97"},"variables":[{"name":"src","nativeSrc":"31718:3:97","nodeType":"YulTypedName","src":"31718:3:97","type":""}]},{"body":{"nativeSrc":"31805:510:97","nodeType":"YulBlock","src":"31805:510:97","statements":[{"nativeSrc":"31819:29:97","nodeType":"YulVariableDeclaration","src":"31819:29:97","value":{"arguments":[{"name":"src","nativeSrc":"31844:3:97","nodeType":"YulIdentifier","src":"31844:3:97"}],"functionName":{"name":"mload","nativeSrc":"31838:5:97","nodeType":"YulIdentifier","src":"31838:5:97"},"nativeSrc":"31838:10:97","nodeType":"YulFunctionCall","src":"31838:10:97"},"variables":[{"name":"innerOffset","nativeSrc":"31823:11:97","nodeType":"YulTypedName","src":"31823:11:97","type":""}]},{"body":{"nativeSrc":"31912:74:97","nodeType":"YulBlock","src":"31912:74:97","statements":[{"nativeSrc":"31930:11:97","nodeType":"YulVariableDeclaration","src":"31930:11:97","value":{"kind":"number","nativeSrc":"31940:1:97","nodeType":"YulLiteral","src":"31940:1:97","type":"","value":"0"},"variables":[{"name":"_3","nativeSrc":"31934:2:97","nodeType":"YulTypedName","src":"31934:2:97","type":""}]},{"expression":{"arguments":[{"name":"_3","nativeSrc":"31965:2:97","nodeType":"YulIdentifier","src":"31965:2:97"},{"name":"_3","nativeSrc":"31969:2:97","nodeType":"YulIdentifier","src":"31969:2:97"}],"functionName":{"name":"revert","nativeSrc":"31958:6:97","nodeType":"YulIdentifier","src":"31958:6:97"},"nativeSrc":"31958:14:97","nodeType":"YulFunctionCall","src":"31958:14:97"},"nativeSrc":"31958:14:97","nodeType":"YulExpressionStatement","src":"31958:14:97"}]},"condition":{"arguments":[{"name":"innerOffset","nativeSrc":"31867:11:97","nodeType":"YulIdentifier","src":"31867:11:97"},{"kind":"number","nativeSrc":"31880:18:97","nodeType":"YulLiteral","src":"31880:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"31864:2:97","nodeType":"YulIdentifier","src":"31864:2:97"},"nativeSrc":"31864:35:97","nodeType":"YulFunctionCall","src":"31864:35:97"},"nativeSrc":"31861:125:97","nodeType":"YulIf","src":"31861:125:97"},{"nativeSrc":"31999:34:97","nodeType":"YulVariableDeclaration","src":"31999:34:97","value":{"arguments":[{"name":"offset","nativeSrc":"32013:6:97","nodeType":"YulIdentifier","src":"32013:6:97"},{"name":"innerOffset","nativeSrc":"32021:11:97","nodeType":"YulIdentifier","src":"32021:11:97"}],"functionName":{"name":"add","nativeSrc":"32009:3:97","nodeType":"YulIdentifier","src":"32009:3:97"},"nativeSrc":"32009:24:97","nodeType":"YulFunctionCall","src":"32009:24:97"},"variables":[{"name":"_4","nativeSrc":"32003:2:97","nodeType":"YulTypedName","src":"32003:2:97","type":""}]},{"body":{"nativeSrc":"32091:74:97","nodeType":"YulBlock","src":"32091:74:97","statements":[{"nativeSrc":"32109:11:97","nodeType":"YulVariableDeclaration","src":"32109:11:97","value":{"kind":"number","nativeSrc":"32119:1:97","nodeType":"YulLiteral","src":"32119:1:97","type":"","value":"0"},"variables":[{"name":"_5","nativeSrc":"32113:2:97","nodeType":"YulTypedName","src":"32113:2:97","type":""}]},{"expression":{"arguments":[{"name":"_5","nativeSrc":"32144:2:97","nodeType":"YulIdentifier","src":"32144:2:97"},{"name":"_5","nativeSrc":"32148:2:97","nodeType":"YulIdentifier","src":"32148:2:97"}],"functionName":{"name":"revert","nativeSrc":"32137:6:97","nodeType":"YulIdentifier","src":"32137:6:97"},"nativeSrc":"32137:14:97","nodeType":"YulFunctionCall","src":"32137:14:97"},"nativeSrc":"32137:14:97","nodeType":"YulExpressionStatement","src":"32137:14:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_4","nativeSrc":"32064:2:97","nodeType":"YulIdentifier","src":"32064:2:97"},{"kind":"number","nativeSrc":"32068:2:97","nodeType":"YulLiteral","src":"32068:2:97","type":"","value":"63"}],"functionName":{"name":"add","nativeSrc":"32060:3:97","nodeType":"YulIdentifier","src":"32060:3:97"},"nativeSrc":"32060:11:97","nodeType":"YulFunctionCall","src":"32060:11:97"},{"name":"end","nativeSrc":"32073:3:97","nodeType":"YulIdentifier","src":"32073:3:97"}],"functionName":{"name":"slt","nativeSrc":"32056:3:97","nodeType":"YulIdentifier","src":"32056:3:97"},"nativeSrc":"32056:21:97","nodeType":"YulFunctionCall","src":"32056:21:97"}],"functionName":{"name":"iszero","nativeSrc":"32049:6:97","nodeType":"YulIdentifier","src":"32049:6:97"},"nativeSrc":"32049:29:97","nodeType":"YulFunctionCall","src":"32049:29:97"},"nativeSrc":"32046:119:97","nodeType":"YulIf","src":"32046:119:97"},{"expression":{"arguments":[{"name":"dst","nativeSrc":"32185:3:97","nodeType":"YulIdentifier","src":"32185:3:97"},{"arguments":[{"arguments":[{"name":"_4","nativeSrc":"32239:2:97","nodeType":"YulIdentifier","src":"32239:2:97"},{"kind":"number","nativeSrc":"32243:2:97","nodeType":"YulLiteral","src":"32243:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"32235:3:97","nodeType":"YulIdentifier","src":"32235:3:97"},"nativeSrc":"32235:11:97","nodeType":"YulFunctionCall","src":"32235:11:97"},{"arguments":[{"arguments":[{"name":"_4","nativeSrc":"32258:2:97","nodeType":"YulIdentifier","src":"32258:2:97"},{"name":"_2","nativeSrc":"32262:2:97","nodeType":"YulIdentifier","src":"32262:2:97"}],"functionName":{"name":"add","nativeSrc":"32254:3:97","nodeType":"YulIdentifier","src":"32254:3:97"},"nativeSrc":"32254:11:97","nodeType":"YulFunctionCall","src":"32254:11:97"}],"functionName":{"name":"mload","nativeSrc":"32248:5:97","nodeType":"YulIdentifier","src":"32248:5:97"},"nativeSrc":"32248:18:97","nodeType":"YulFunctionCall","src":"32248:18:97"},{"name":"end","nativeSrc":"32268:3:97","nodeType":"YulIdentifier","src":"32268:3:97"}],"functionName":{"name":"abi_decode_available_length_bytes_fromMemory","nativeSrc":"32190:44:97","nodeType":"YulIdentifier","src":"32190:44:97"},"nativeSrc":"32190:82:97","nodeType":"YulFunctionCall","src":"32190:82:97"}],"functionName":{"name":"mstore","nativeSrc":"32178:6:97","nodeType":"YulIdentifier","src":"32178:6:97"},"nativeSrc":"32178:95:97","nodeType":"YulFunctionCall","src":"32178:95:97"},"nativeSrc":"32178:95:97","nodeType":"YulExpressionStatement","src":"32178:95:97"},{"nativeSrc":"32286:19:97","nodeType":"YulAssignment","src":"32286:19:97","value":{"arguments":[{"name":"dst","nativeSrc":"32297:3:97","nodeType":"YulIdentifier","src":"32297:3:97"},{"name":"_2","nativeSrc":"32302:2:97","nodeType":"YulIdentifier","src":"32302:2:97"}],"functionName":{"name":"add","nativeSrc":"32293:3:97","nodeType":"YulIdentifier","src":"32293:3:97"},"nativeSrc":"32293:12:97","nodeType":"YulFunctionCall","src":"32293:12:97"},"variableNames":[{"name":"dst","nativeSrc":"32286:3:97","nodeType":"YulIdentifier","src":"32286:3:97"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"31760:3:97","nodeType":"YulIdentifier","src":"31760:3:97"},{"name":"srcEnd","nativeSrc":"31765:6:97","nodeType":"YulIdentifier","src":"31765:6:97"}],"functionName":{"name":"lt","nativeSrc":"31757:2:97","nodeType":"YulIdentifier","src":"31757:2:97"},"nativeSrc":"31757:15:97","nodeType":"YulFunctionCall","src":"31757:15:97"},"nativeSrc":"31749:566:97","nodeType":"YulForLoop","post":{"nativeSrc":"31773:23:97","nodeType":"YulBlock","src":"31773:23:97","statements":[{"nativeSrc":"31775:19:97","nodeType":"YulAssignment","src":"31775:19:97","value":{"arguments":[{"name":"src","nativeSrc":"31786:3:97","nodeType":"YulIdentifier","src":"31786:3:97"},{"name":"_2","nativeSrc":"31791:2:97","nodeType":"YulIdentifier","src":"31791:2:97"}],"functionName":{"name":"add","nativeSrc":"31782:3:97","nodeType":"YulIdentifier","src":"31782:3:97"},"nativeSrc":"31782:12:97","nodeType":"YulFunctionCall","src":"31782:12:97"},"variableNames":[{"name":"src","nativeSrc":"31775:3:97","nodeType":"YulIdentifier","src":"31775:3:97"}]}]},"pre":{"nativeSrc":"31753:3:97","nodeType":"YulBlock","src":"31753:3:97","statements":[]},"src":"31749:566:97"},{"nativeSrc":"32324:14:97","nodeType":"YulAssignment","src":"32324:14:97","value":{"name":"dst_1","nativeSrc":"32333:5:97","nodeType":"YulIdentifier","src":"32333:5:97"},"variableNames":[{"name":"array","nativeSrc":"32324:5:97","nodeType":"YulIdentifier","src":"32324:5:97"}]}]},"name":"abi_decode_array_string_dyn_fromMemory","nativeSrc":"31255:1089:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"31303:6:97","nodeType":"YulTypedName","src":"31303:6:97","type":""},{"name":"end","nativeSrc":"31311:3:97","nodeType":"YulTypedName","src":"31311:3:97","type":""}],"returnVariables":[{"name":"array","nativeSrc":"31319:5:97","nodeType":"YulTypedName","src":"31319:5:97","type":""}],"src":"31255:1089:97"},{"body":{"nativeSrc":"32422:821:97","nodeType":"YulBlock","src":"32422:821:97","statements":[{"body":{"nativeSrc":"32471:16:97","nodeType":"YulBlock","src":"32471:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"32480:1:97","nodeType":"YulLiteral","src":"32480:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"32483:1:97","nodeType":"YulLiteral","src":"32483:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"32473:6:97","nodeType":"YulIdentifier","src":"32473:6:97"},"nativeSrc":"32473:12:97","nodeType":"YulFunctionCall","src":"32473:12:97"},"nativeSrc":"32473:12:97","nodeType":"YulExpressionStatement","src":"32473:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"32450:6:97","nodeType":"YulIdentifier","src":"32450:6:97"},{"kind":"number","nativeSrc":"32458:4:97","nodeType":"YulLiteral","src":"32458:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"32446:3:97","nodeType":"YulIdentifier","src":"32446:3:97"},"nativeSrc":"32446:17:97","nodeType":"YulFunctionCall","src":"32446:17:97"},{"name":"end","nativeSrc":"32465:3:97","nodeType":"YulIdentifier","src":"32465:3:97"}],"functionName":{"name":"slt","nativeSrc":"32442:3:97","nodeType":"YulIdentifier","src":"32442:3:97"},"nativeSrc":"32442:27:97","nodeType":"YulFunctionCall","src":"32442:27:97"}],"functionName":{"name":"iszero","nativeSrc":"32435:6:97","nodeType":"YulIdentifier","src":"32435:6:97"},"nativeSrc":"32435:35:97","nodeType":"YulFunctionCall","src":"32435:35:97"},"nativeSrc":"32432:55:97","nodeType":"YulIf","src":"32432:55:97"},{"nativeSrc":"32496:23:97","nodeType":"YulVariableDeclaration","src":"32496:23:97","value":{"arguments":[{"name":"offset","nativeSrc":"32512:6:97","nodeType":"YulIdentifier","src":"32512:6:97"}],"functionName":{"name":"mload","nativeSrc":"32506:5:97","nodeType":"YulIdentifier","src":"32506:5:97"},"nativeSrc":"32506:13:97","nodeType":"YulFunctionCall","src":"32506:13:97"},"variables":[{"name":"_1","nativeSrc":"32500:2:97","nodeType":"YulTypedName","src":"32500:2:97","type":""}]},{"nativeSrc":"32528:14:97","nodeType":"YulVariableDeclaration","src":"32528:14:97","value":{"kind":"number","nativeSrc":"32538:4:97","nodeType":"YulLiteral","src":"32538:4:97","type":"","value":"0x20"},"variables":[{"name":"_2","nativeSrc":"32532:2:97","nodeType":"YulTypedName","src":"32532:2:97","type":""}]},{"nativeSrc":"32551:71:97","nodeType":"YulVariableDeclaration","src":"32551:71:97","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"32618:2:97","nodeType":"YulIdentifier","src":"32618:2:97"}],"functionName":{"name":"array_allocation_size_array_address_dyn","nativeSrc":"32578:39:97","nodeType":"YulIdentifier","src":"32578:39:97"},"nativeSrc":"32578:43:97","nodeType":"YulFunctionCall","src":"32578:43:97"}],"functionName":{"name":"allocate_memory","nativeSrc":"32562:15:97","nodeType":"YulIdentifier","src":"32562:15:97"},"nativeSrc":"32562:60:97","nodeType":"YulFunctionCall","src":"32562:60:97"},"variables":[{"name":"dst","nativeSrc":"32555:3:97","nodeType":"YulTypedName","src":"32555:3:97","type":""}]},{"nativeSrc":"32631:16:97","nodeType":"YulVariableDeclaration","src":"32631:16:97","value":{"name":"dst","nativeSrc":"32644:3:97","nodeType":"YulIdentifier","src":"32644:3:97"},"variables":[{"name":"dst_1","nativeSrc":"32635:5:97","nodeType":"YulTypedName","src":"32635:5:97","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"32663:3:97","nodeType":"YulIdentifier","src":"32663:3:97"},{"name":"_1","nativeSrc":"32668:2:97","nodeType":"YulIdentifier","src":"32668:2:97"}],"functionName":{"name":"mstore","nativeSrc":"32656:6:97","nodeType":"YulIdentifier","src":"32656:6:97"},"nativeSrc":"32656:15:97","nodeType":"YulFunctionCall","src":"32656:15:97"},"nativeSrc":"32656:15:97","nodeType":"YulExpressionStatement","src":"32656:15:97"},{"nativeSrc":"32680:19:97","nodeType":"YulAssignment","src":"32680:19:97","value":{"arguments":[{"name":"dst","nativeSrc":"32691:3:97","nodeType":"YulIdentifier","src":"32691:3:97"},{"name":"_2","nativeSrc":"32696:2:97","nodeType":"YulIdentifier","src":"32696:2:97"}],"functionName":{"name":"add","nativeSrc":"32687:3:97","nodeType":"YulIdentifier","src":"32687:3:97"},"nativeSrc":"32687:12:97","nodeType":"YulFunctionCall","src":"32687:12:97"},"variableNames":[{"name":"dst","nativeSrc":"32680:3:97","nodeType":"YulIdentifier","src":"32680:3:97"}]},{"nativeSrc":"32708:46:97","nodeType":"YulVariableDeclaration","src":"32708:46:97","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"32730:6:97","nodeType":"YulIdentifier","src":"32730:6:97"},{"arguments":[{"kind":"number","nativeSrc":"32742:1:97","nodeType":"YulLiteral","src":"32742:1:97","type":"","value":"5"},{"name":"_1","nativeSrc":"32745:2:97","nodeType":"YulIdentifier","src":"32745:2:97"}],"functionName":{"name":"shl","nativeSrc":"32738:3:97","nodeType":"YulIdentifier","src":"32738:3:97"},"nativeSrc":"32738:10:97","nodeType":"YulFunctionCall","src":"32738:10:97"}],"functionName":{"name":"add","nativeSrc":"32726:3:97","nodeType":"YulIdentifier","src":"32726:3:97"},"nativeSrc":"32726:23:97","nodeType":"YulFunctionCall","src":"32726:23:97"},{"name":"_2","nativeSrc":"32751:2:97","nodeType":"YulIdentifier","src":"32751:2:97"}],"functionName":{"name":"add","nativeSrc":"32722:3:97","nodeType":"YulIdentifier","src":"32722:3:97"},"nativeSrc":"32722:32:97","nodeType":"YulFunctionCall","src":"32722:32:97"},"variables":[{"name":"srcEnd","nativeSrc":"32712:6:97","nodeType":"YulTypedName","src":"32712:6:97","type":""}]},{"body":{"nativeSrc":"32782:16:97","nodeType":"YulBlock","src":"32782:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"32791:1:97","nodeType":"YulLiteral","src":"32791:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"32794:1:97","nodeType":"YulLiteral","src":"32794:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"32784:6:97","nodeType":"YulIdentifier","src":"32784:6:97"},"nativeSrc":"32784:12:97","nodeType":"YulFunctionCall","src":"32784:12:97"},"nativeSrc":"32784:12:97","nodeType":"YulExpressionStatement","src":"32784:12:97"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"32769:6:97","nodeType":"YulIdentifier","src":"32769:6:97"},{"name":"end","nativeSrc":"32777:3:97","nodeType":"YulIdentifier","src":"32777:3:97"}],"functionName":{"name":"gt","nativeSrc":"32766:2:97","nodeType":"YulIdentifier","src":"32766:2:97"},"nativeSrc":"32766:15:97","nodeType":"YulFunctionCall","src":"32766:15:97"},"nativeSrc":"32763:35:97","nodeType":"YulIf","src":"32763:35:97"},{"nativeSrc":"32807:26:97","nodeType":"YulVariableDeclaration","src":"32807:26:97","value":{"arguments":[{"name":"offset","nativeSrc":"32822:6:97","nodeType":"YulIdentifier","src":"32822:6:97"},{"name":"_2","nativeSrc":"32830:2:97","nodeType":"YulIdentifier","src":"32830:2:97"}],"functionName":{"name":"add","nativeSrc":"32818:3:97","nodeType":"YulIdentifier","src":"32818:3:97"},"nativeSrc":"32818:15:97","nodeType":"YulFunctionCall","src":"32818:15:97"},"variables":[{"name":"src","nativeSrc":"32811:3:97","nodeType":"YulTypedName","src":"32811:3:97","type":""}]},{"body":{"nativeSrc":"32898:316:97","nodeType":"YulBlock","src":"32898:316:97","statements":[{"nativeSrc":"32912:29:97","nodeType":"YulVariableDeclaration","src":"32912:29:97","value":{"arguments":[{"name":"src","nativeSrc":"32937:3:97","nodeType":"YulIdentifier","src":"32937:3:97"}],"functionName":{"name":"mload","nativeSrc":"32931:5:97","nodeType":"YulIdentifier","src":"32931:5:97"},"nativeSrc":"32931:10:97","nodeType":"YulFunctionCall","src":"32931:10:97"},"variables":[{"name":"innerOffset","nativeSrc":"32916:11:97","nodeType":"YulTypedName","src":"32916:11:97","type":""}]},{"body":{"nativeSrc":"33005:74:97","nodeType":"YulBlock","src":"33005:74:97","statements":[{"nativeSrc":"33023:11:97","nodeType":"YulVariableDeclaration","src":"33023:11:97","value":{"kind":"number","nativeSrc":"33033:1:97","nodeType":"YulLiteral","src":"33033:1:97","type":"","value":"0"},"variables":[{"name":"_3","nativeSrc":"33027:2:97","nodeType":"YulTypedName","src":"33027:2:97","type":""}]},{"expression":{"arguments":[{"name":"_3","nativeSrc":"33058:2:97","nodeType":"YulIdentifier","src":"33058:2:97"},{"name":"_3","nativeSrc":"33062:2:97","nodeType":"YulIdentifier","src":"33062:2:97"}],"functionName":{"name":"revert","nativeSrc":"33051:6:97","nodeType":"YulIdentifier","src":"33051:6:97"},"nativeSrc":"33051:14:97","nodeType":"YulFunctionCall","src":"33051:14:97"},"nativeSrc":"33051:14:97","nodeType":"YulExpressionStatement","src":"33051:14:97"}]},"condition":{"arguments":[{"name":"innerOffset","nativeSrc":"32960:11:97","nodeType":"YulIdentifier","src":"32960:11:97"},{"kind":"number","nativeSrc":"32973:18:97","nodeType":"YulLiteral","src":"32973:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"32957:2:97","nodeType":"YulIdentifier","src":"32957:2:97"},"nativeSrc":"32957:35:97","nodeType":"YulFunctionCall","src":"32957:35:97"},"nativeSrc":"32954:125:97","nodeType":"YulIf","src":"32954:125:97"},{"expression":{"arguments":[{"name":"dst","nativeSrc":"33099:3:97","nodeType":"YulIdentifier","src":"33099:3:97"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"33140:6:97","nodeType":"YulIdentifier","src":"33140:6:97"},{"name":"innerOffset","nativeSrc":"33148:11:97","nodeType":"YulIdentifier","src":"33148:11:97"}],"functionName":{"name":"add","nativeSrc":"33136:3:97","nodeType":"YulIdentifier","src":"33136:3:97"},"nativeSrc":"33136:24:97","nodeType":"YulFunctionCall","src":"33136:24:97"},{"name":"_2","nativeSrc":"33162:2:97","nodeType":"YulIdentifier","src":"33162:2:97"}],"functionName":{"name":"add","nativeSrc":"33132:3:97","nodeType":"YulIdentifier","src":"33132:3:97"},"nativeSrc":"33132:33:97","nodeType":"YulFunctionCall","src":"33132:33:97"},{"name":"end","nativeSrc":"33167:3:97","nodeType":"YulIdentifier","src":"33167:3:97"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nativeSrc":"33104:27:97","nodeType":"YulIdentifier","src":"33104:27:97"},"nativeSrc":"33104:67:97","nodeType":"YulFunctionCall","src":"33104:67:97"}],"functionName":{"name":"mstore","nativeSrc":"33092:6:97","nodeType":"YulIdentifier","src":"33092:6:97"},"nativeSrc":"33092:80:97","nodeType":"YulFunctionCall","src":"33092:80:97"},"nativeSrc":"33092:80:97","nodeType":"YulExpressionStatement","src":"33092:80:97"},{"nativeSrc":"33185:19:97","nodeType":"YulAssignment","src":"33185:19:97","value":{"arguments":[{"name":"dst","nativeSrc":"33196:3:97","nodeType":"YulIdentifier","src":"33196:3:97"},{"name":"_2","nativeSrc":"33201:2:97","nodeType":"YulIdentifier","src":"33201:2:97"}],"functionName":{"name":"add","nativeSrc":"33192:3:97","nodeType":"YulIdentifier","src":"33192:3:97"},"nativeSrc":"33192:12:97","nodeType":"YulFunctionCall","src":"33192:12:97"},"variableNames":[{"name":"dst","nativeSrc":"33185:3:97","nodeType":"YulIdentifier","src":"33185:3:97"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"32853:3:97","nodeType":"YulIdentifier","src":"32853:3:97"},{"name":"srcEnd","nativeSrc":"32858:6:97","nodeType":"YulIdentifier","src":"32858:6:97"}],"functionName":{"name":"lt","nativeSrc":"32850:2:97","nodeType":"YulIdentifier","src":"32850:2:97"},"nativeSrc":"32850:15:97","nodeType":"YulFunctionCall","src":"32850:15:97"},"nativeSrc":"32842:372:97","nodeType":"YulForLoop","post":{"nativeSrc":"32866:23:97","nodeType":"YulBlock","src":"32866:23:97","statements":[{"nativeSrc":"32868:19:97","nodeType":"YulAssignment","src":"32868:19:97","value":{"arguments":[{"name":"src","nativeSrc":"32879:3:97","nodeType":"YulIdentifier","src":"32879:3:97"},{"name":"_2","nativeSrc":"32884:2:97","nodeType":"YulIdentifier","src":"32884:2:97"}],"functionName":{"name":"add","nativeSrc":"32875:3:97","nodeType":"YulIdentifier","src":"32875:3:97"},"nativeSrc":"32875:12:97","nodeType":"YulFunctionCall","src":"32875:12:97"},"variableNames":[{"name":"src","nativeSrc":"32868:3:97","nodeType":"YulIdentifier","src":"32868:3:97"}]}]},"pre":{"nativeSrc":"32846:3:97","nodeType":"YulBlock","src":"32846:3:97","statements":[]},"src":"32842:372:97"},{"nativeSrc":"33223:14:97","nodeType":"YulAssignment","src":"33223:14:97","value":{"name":"dst_1","nativeSrc":"33232:5:97","nodeType":"YulIdentifier","src":"33232:5:97"},"variableNames":[{"name":"array","nativeSrc":"33223:5:97","nodeType":"YulIdentifier","src":"33223:5:97"}]}]},"name":"abi_decode_array_bytes_dyn_fromMemory","nativeSrc":"32349:894:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"32396:6:97","nodeType":"YulTypedName","src":"32396:6:97","type":""},{"name":"end","nativeSrc":"32404:3:97","nodeType":"YulTypedName","src":"32404:3:97","type":""}],"returnVariables":[{"name":"array","nativeSrc":"32412:5:97","nodeType":"YulTypedName","src":"32412:5:97","type":""}],"src":"32349:894:97"},{"body":{"nativeSrc":"33306:102:97","nodeType":"YulBlock","src":"33306:102:97","statements":[{"nativeSrc":"33316:22:97","nodeType":"YulAssignment","src":"33316:22:97","value":{"arguments":[{"name":"offset","nativeSrc":"33331:6:97","nodeType":"YulIdentifier","src":"33331:6:97"}],"functionName":{"name":"mload","nativeSrc":"33325:5:97","nodeType":"YulIdentifier","src":"33325:5:97"},"nativeSrc":"33325:13:97","nodeType":"YulFunctionCall","src":"33325:13:97"},"variableNames":[{"name":"value","nativeSrc":"33316:5:97","nodeType":"YulIdentifier","src":"33316:5:97"}]},{"body":{"nativeSrc":"33386:16:97","nodeType":"YulBlock","src":"33386:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"33395:1:97","nodeType":"YulLiteral","src":"33395:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"33398:1:97","nodeType":"YulLiteral","src":"33398:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"33388:6:97","nodeType":"YulIdentifier","src":"33388:6:97"},"nativeSrc":"33388:12:97","nodeType":"YulFunctionCall","src":"33388:12:97"},"nativeSrc":"33388:12:97","nodeType":"YulExpressionStatement","src":"33388:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"33360:5:97","nodeType":"YulIdentifier","src":"33360:5:97"},{"arguments":[{"name":"value","nativeSrc":"33371:5:97","nodeType":"YulIdentifier","src":"33371:5:97"},{"kind":"number","nativeSrc":"33378:4:97","nodeType":"YulLiteral","src":"33378:4:97","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"33367:3:97","nodeType":"YulIdentifier","src":"33367:3:97"},"nativeSrc":"33367:16:97","nodeType":"YulFunctionCall","src":"33367:16:97"}],"functionName":{"name":"eq","nativeSrc":"33357:2:97","nodeType":"YulIdentifier","src":"33357:2:97"},"nativeSrc":"33357:27:97","nodeType":"YulFunctionCall","src":"33357:27:97"}],"functionName":{"name":"iszero","nativeSrc":"33350:6:97","nodeType":"YulIdentifier","src":"33350:6:97"},"nativeSrc":"33350:35:97","nodeType":"YulFunctionCall","src":"33350:35:97"},"nativeSrc":"33347:55:97","nodeType":"YulIf","src":"33347:55:97"}]},"name":"abi_decode_uint8_fromMemory","nativeSrc":"33248:160:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"33285:6:97","nodeType":"YulTypedName","src":"33285:6:97","type":""}],"returnVariables":[{"name":"value","nativeSrc":"33296:5:97","nodeType":"YulTypedName","src":"33296:5:97","type":""}],"src":"33248:160:97"},{"body":{"nativeSrc":"33679:1502:97","nodeType":"YulBlock","src":"33679:1502:97","statements":[{"body":{"nativeSrc":"33726:16:97","nodeType":"YulBlock","src":"33726:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"33735:1:97","nodeType":"YulLiteral","src":"33735:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"33738:1:97","nodeType":"YulLiteral","src":"33738:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"33728:6:97","nodeType":"YulIdentifier","src":"33728:6:97"},"nativeSrc":"33728:12:97","nodeType":"YulFunctionCall","src":"33728:12:97"},"nativeSrc":"33728:12:97","nodeType":"YulExpressionStatement","src":"33728:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"33700:7:97","nodeType":"YulIdentifier","src":"33700:7:97"},{"name":"headStart","nativeSrc":"33709:9:97","nodeType":"YulIdentifier","src":"33709:9:97"}],"functionName":{"name":"sub","nativeSrc":"33696:3:97","nodeType":"YulIdentifier","src":"33696:3:97"},"nativeSrc":"33696:23:97","nodeType":"YulFunctionCall","src":"33696:23:97"},{"kind":"number","nativeSrc":"33721:3:97","nodeType":"YulLiteral","src":"33721:3:97","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"33692:3:97","nodeType":"YulIdentifier","src":"33692:3:97"},"nativeSrc":"33692:33:97","nodeType":"YulFunctionCall","src":"33692:33:97"},"nativeSrc":"33689:53:97","nodeType":"YulIf","src":"33689:53:97"},{"nativeSrc":"33751:30:97","nodeType":"YulVariableDeclaration","src":"33751:30:97","value":{"arguments":[{"name":"headStart","nativeSrc":"33771:9:97","nodeType":"YulIdentifier","src":"33771:9:97"}],"functionName":{"name":"mload","nativeSrc":"33765:5:97","nodeType":"YulIdentifier","src":"33765:5:97"},"nativeSrc":"33765:16:97","nodeType":"YulFunctionCall","src":"33765:16:97"},"variables":[{"name":"offset","nativeSrc":"33755:6:97","nodeType":"YulTypedName","src":"33755:6:97","type":""}]},{"nativeSrc":"33790:28:97","nodeType":"YulVariableDeclaration","src":"33790:28:97","value":{"kind":"number","nativeSrc":"33800:18:97","nodeType":"YulLiteral","src":"33800:18:97","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"33794:2:97","nodeType":"YulTypedName","src":"33794:2:97","type":""}]},{"body":{"nativeSrc":"33845:16:97","nodeType":"YulBlock","src":"33845:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"33854:1:97","nodeType":"YulLiteral","src":"33854:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"33857:1:97","nodeType":"YulLiteral","src":"33857:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"33847:6:97","nodeType":"YulIdentifier","src":"33847:6:97"},"nativeSrc":"33847:12:97","nodeType":"YulFunctionCall","src":"33847:12:97"},"nativeSrc":"33847:12:97","nodeType":"YulExpressionStatement","src":"33847:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"33833:6:97","nodeType":"YulIdentifier","src":"33833:6:97"},{"name":"_1","nativeSrc":"33841:2:97","nodeType":"YulIdentifier","src":"33841:2:97"}],"functionName":{"name":"gt","nativeSrc":"33830:2:97","nodeType":"YulIdentifier","src":"33830:2:97"},"nativeSrc":"33830:14:97","nodeType":"YulFunctionCall","src":"33830:14:97"},"nativeSrc":"33827:34:97","nodeType":"YulIf","src":"33827:34:97"},{"nativeSrc":"33870:32:97","nodeType":"YulVariableDeclaration","src":"33870:32:97","value":{"arguments":[{"name":"headStart","nativeSrc":"33884:9:97","nodeType":"YulIdentifier","src":"33884:9:97"},{"name":"offset","nativeSrc":"33895:6:97","nodeType":"YulIdentifier","src":"33895:6:97"}],"functionName":{"name":"add","nativeSrc":"33880:3:97","nodeType":"YulIdentifier","src":"33880:3:97"},"nativeSrc":"33880:22:97","nodeType":"YulFunctionCall","src":"33880:22:97"},"variables":[{"name":"_2","nativeSrc":"33874:2:97","nodeType":"YulTypedName","src":"33874:2:97","type":""}]},{"body":{"nativeSrc":"33950:16:97","nodeType":"YulBlock","src":"33950:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"33959:1:97","nodeType":"YulLiteral","src":"33959:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"33962:1:97","nodeType":"YulLiteral","src":"33962:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"33952:6:97","nodeType":"YulIdentifier","src":"33952:6:97"},"nativeSrc":"33952:12:97","nodeType":"YulFunctionCall","src":"33952:12:97"},"nativeSrc":"33952:12:97","nodeType":"YulExpressionStatement","src":"33952:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"33929:2:97","nodeType":"YulIdentifier","src":"33929:2:97"},{"kind":"number","nativeSrc":"33933:4:97","nodeType":"YulLiteral","src":"33933:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"33925:3:97","nodeType":"YulIdentifier","src":"33925:3:97"},"nativeSrc":"33925:13:97","nodeType":"YulFunctionCall","src":"33925:13:97"},{"name":"dataEnd","nativeSrc":"33940:7:97","nodeType":"YulIdentifier","src":"33940:7:97"}],"functionName":{"name":"slt","nativeSrc":"33921:3:97","nodeType":"YulIdentifier","src":"33921:3:97"},"nativeSrc":"33921:27:97","nodeType":"YulFunctionCall","src":"33921:27:97"}],"functionName":{"name":"iszero","nativeSrc":"33914:6:97","nodeType":"YulIdentifier","src":"33914:6:97"},"nativeSrc":"33914:35:97","nodeType":"YulFunctionCall","src":"33914:35:97"},"nativeSrc":"33911:55:97","nodeType":"YulIf","src":"33911:55:97"},{"nativeSrc":"33975:19:97","nodeType":"YulVariableDeclaration","src":"33975:19:97","value":{"arguments":[{"name":"_2","nativeSrc":"33991:2:97","nodeType":"YulIdentifier","src":"33991:2:97"}],"functionName":{"name":"mload","nativeSrc":"33985:5:97","nodeType":"YulIdentifier","src":"33985:5:97"},"nativeSrc":"33985:9:97","nodeType":"YulFunctionCall","src":"33985:9:97"},"variables":[{"name":"_3","nativeSrc":"33979:2:97","nodeType":"YulTypedName","src":"33979:2:97","type":""}]},{"nativeSrc":"34003:14:97","nodeType":"YulVariableDeclaration","src":"34003:14:97","value":{"kind":"number","nativeSrc":"34013:4:97","nodeType":"YulLiteral","src":"34013:4:97","type":"","value":"0x20"},"variables":[{"name":"_4","nativeSrc":"34007:2:97","nodeType":"YulTypedName","src":"34007:2:97","type":""}]},{"nativeSrc":"34026:71:97","nodeType":"YulVariableDeclaration","src":"34026:71:97","value":{"arguments":[{"arguments":[{"name":"_3","nativeSrc":"34093:2:97","nodeType":"YulIdentifier","src":"34093:2:97"}],"functionName":{"name":"array_allocation_size_array_address_dyn","nativeSrc":"34053:39:97","nodeType":"YulIdentifier","src":"34053:39:97"},"nativeSrc":"34053:43:97","nodeType":"YulFunctionCall","src":"34053:43:97"}],"functionName":{"name":"allocate_memory","nativeSrc":"34037:15:97","nodeType":"YulIdentifier","src":"34037:15:97"},"nativeSrc":"34037:60:97","nodeType":"YulFunctionCall","src":"34037:60:97"},"variables":[{"name":"dst","nativeSrc":"34030:3:97","nodeType":"YulTypedName","src":"34030:3:97","type":""}]},{"nativeSrc":"34106:16:97","nodeType":"YulVariableDeclaration","src":"34106:16:97","value":{"name":"dst","nativeSrc":"34119:3:97","nodeType":"YulIdentifier","src":"34119:3:97"},"variables":[{"name":"dst_1","nativeSrc":"34110:5:97","nodeType":"YulTypedName","src":"34110:5:97","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"34138:3:97","nodeType":"YulIdentifier","src":"34138:3:97"},{"name":"_3","nativeSrc":"34143:2:97","nodeType":"YulIdentifier","src":"34143:2:97"}],"functionName":{"name":"mstore","nativeSrc":"34131:6:97","nodeType":"YulIdentifier","src":"34131:6:97"},"nativeSrc":"34131:15:97","nodeType":"YulFunctionCall","src":"34131:15:97"},"nativeSrc":"34131:15:97","nodeType":"YulExpressionStatement","src":"34131:15:97"},{"nativeSrc":"34155:19:97","nodeType":"YulAssignment","src":"34155:19:97","value":{"arguments":[{"name":"dst","nativeSrc":"34166:3:97","nodeType":"YulIdentifier","src":"34166:3:97"},{"name":"_4","nativeSrc":"34171:2:97","nodeType":"YulIdentifier","src":"34171:2:97"}],"functionName":{"name":"add","nativeSrc":"34162:3:97","nodeType":"YulIdentifier","src":"34162:3:97"},"nativeSrc":"34162:12:97","nodeType":"YulFunctionCall","src":"34162:12:97"},"variableNames":[{"name":"dst","nativeSrc":"34155:3:97","nodeType":"YulIdentifier","src":"34155:3:97"}]},{"nativeSrc":"34183:42:97","nodeType":"YulVariableDeclaration","src":"34183:42:97","value":{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"34205:2:97","nodeType":"YulIdentifier","src":"34205:2:97"},{"arguments":[{"kind":"number","nativeSrc":"34213:1:97","nodeType":"YulLiteral","src":"34213:1:97","type":"","value":"5"},{"name":"_3","nativeSrc":"34216:2:97","nodeType":"YulIdentifier","src":"34216:2:97"}],"functionName":{"name":"shl","nativeSrc":"34209:3:97","nodeType":"YulIdentifier","src":"34209:3:97"},"nativeSrc":"34209:10:97","nodeType":"YulFunctionCall","src":"34209:10:97"}],"functionName":{"name":"add","nativeSrc":"34201:3:97","nodeType":"YulIdentifier","src":"34201:3:97"},"nativeSrc":"34201:19:97","nodeType":"YulFunctionCall","src":"34201:19:97"},{"name":"_4","nativeSrc":"34222:2:97","nodeType":"YulIdentifier","src":"34222:2:97"}],"functionName":{"name":"add","nativeSrc":"34197:3:97","nodeType":"YulIdentifier","src":"34197:3:97"},"nativeSrc":"34197:28:97","nodeType":"YulFunctionCall","src":"34197:28:97"},"variables":[{"name":"srcEnd","nativeSrc":"34187:6:97","nodeType":"YulTypedName","src":"34187:6:97","type":""}]},{"body":{"nativeSrc":"34257:16:97","nodeType":"YulBlock","src":"34257:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"34266:1:97","nodeType":"YulLiteral","src":"34266:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"34269:1:97","nodeType":"YulLiteral","src":"34269:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"34259:6:97","nodeType":"YulIdentifier","src":"34259:6:97"},"nativeSrc":"34259:12:97","nodeType":"YulFunctionCall","src":"34259:12:97"},"nativeSrc":"34259:12:97","nodeType":"YulExpressionStatement","src":"34259:12:97"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"34240:6:97","nodeType":"YulIdentifier","src":"34240:6:97"},{"name":"dataEnd","nativeSrc":"34248:7:97","nodeType":"YulIdentifier","src":"34248:7:97"}],"functionName":{"name":"gt","nativeSrc":"34237:2:97","nodeType":"YulIdentifier","src":"34237:2:97"},"nativeSrc":"34237:19:97","nodeType":"YulFunctionCall","src":"34237:19:97"},"nativeSrc":"34234:39:97","nodeType":"YulIf","src":"34234:39:97"},{"nativeSrc":"34282:22:97","nodeType":"YulVariableDeclaration","src":"34282:22:97","value":{"arguments":[{"name":"_2","nativeSrc":"34297:2:97","nodeType":"YulIdentifier","src":"34297:2:97"},{"name":"_4","nativeSrc":"34301:2:97","nodeType":"YulIdentifier","src":"34301:2:97"}],"functionName":{"name":"add","nativeSrc":"34293:3:97","nodeType":"YulIdentifier","src":"34293:3:97"},"nativeSrc":"34293:11:97","nodeType":"YulFunctionCall","src":"34293:11:97"},"variables":[{"name":"src","nativeSrc":"34286:3:97","nodeType":"YulTypedName","src":"34286:3:97","type":""}]},{"body":{"nativeSrc":"34369:154:97","nodeType":"YulBlock","src":"34369:154:97","statements":[{"nativeSrc":"34383:23:97","nodeType":"YulVariableDeclaration","src":"34383:23:97","value":{"arguments":[{"name":"src","nativeSrc":"34402:3:97","nodeType":"YulIdentifier","src":"34402:3:97"}],"functionName":{"name":"mload","nativeSrc":"34396:5:97","nodeType":"YulIdentifier","src":"34396:5:97"},"nativeSrc":"34396:10:97","nodeType":"YulFunctionCall","src":"34396:10:97"},"variables":[{"name":"value","nativeSrc":"34387:5:97","nodeType":"YulTypedName","src":"34387:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"34444:5:97","nodeType":"YulIdentifier","src":"34444:5:97"}],"functionName":{"name":"validator_revert_address","nativeSrc":"34419:24:97","nodeType":"YulIdentifier","src":"34419:24:97"},"nativeSrc":"34419:31:97","nodeType":"YulFunctionCall","src":"34419:31:97"},"nativeSrc":"34419:31:97","nodeType":"YulExpressionStatement","src":"34419:31:97"},{"expression":{"arguments":[{"name":"dst","nativeSrc":"34470:3:97","nodeType":"YulIdentifier","src":"34470:3:97"},{"name":"value","nativeSrc":"34475:5:97","nodeType":"YulIdentifier","src":"34475:5:97"}],"functionName":{"name":"mstore","nativeSrc":"34463:6:97","nodeType":"YulIdentifier","src":"34463:6:97"},"nativeSrc":"34463:18:97","nodeType":"YulFunctionCall","src":"34463:18:97"},"nativeSrc":"34463:18:97","nodeType":"YulExpressionStatement","src":"34463:18:97"},{"nativeSrc":"34494:19:97","nodeType":"YulAssignment","src":"34494:19:97","value":{"arguments":[{"name":"dst","nativeSrc":"34505:3:97","nodeType":"YulIdentifier","src":"34505:3:97"},{"name":"_4","nativeSrc":"34510:2:97","nodeType":"YulIdentifier","src":"34510:2:97"}],"functionName":{"name":"add","nativeSrc":"34501:3:97","nodeType":"YulIdentifier","src":"34501:3:97"},"nativeSrc":"34501:12:97","nodeType":"YulFunctionCall","src":"34501:12:97"},"variableNames":[{"name":"dst","nativeSrc":"34494:3:97","nodeType":"YulIdentifier","src":"34494:3:97"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"34324:3:97","nodeType":"YulIdentifier","src":"34324:3:97"},{"name":"srcEnd","nativeSrc":"34329:6:97","nodeType":"YulIdentifier","src":"34329:6:97"}],"functionName":{"name":"lt","nativeSrc":"34321:2:97","nodeType":"YulIdentifier","src":"34321:2:97"},"nativeSrc":"34321:15:97","nodeType":"YulFunctionCall","src":"34321:15:97"},"nativeSrc":"34313:210:97","nodeType":"YulForLoop","post":{"nativeSrc":"34337:23:97","nodeType":"YulBlock","src":"34337:23:97","statements":[{"nativeSrc":"34339:19:97","nodeType":"YulAssignment","src":"34339:19:97","value":{"arguments":[{"name":"src","nativeSrc":"34350:3:97","nodeType":"YulIdentifier","src":"34350:3:97"},{"name":"_4","nativeSrc":"34355:2:97","nodeType":"YulIdentifier","src":"34355:2:97"}],"functionName":{"name":"add","nativeSrc":"34346:3:97","nodeType":"YulIdentifier","src":"34346:3:97"},"nativeSrc":"34346:12:97","nodeType":"YulFunctionCall","src":"34346:12:97"},"variableNames":[{"name":"src","nativeSrc":"34339:3:97","nodeType":"YulIdentifier","src":"34339:3:97"}]}]},"pre":{"nativeSrc":"34317:3:97","nodeType":"YulBlock","src":"34317:3:97","statements":[]},"src":"34313:210:97"},{"nativeSrc":"34532:15:97","nodeType":"YulAssignment","src":"34532:15:97","value":{"name":"dst_1","nativeSrc":"34542:5:97","nodeType":"YulIdentifier","src":"34542:5:97"},"variableNames":[{"name":"value0","nativeSrc":"34532:6:97","nodeType":"YulIdentifier","src":"34532:6:97"}]},{"nativeSrc":"34556:41:97","nodeType":"YulVariableDeclaration","src":"34556:41:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34582:9:97","nodeType":"YulIdentifier","src":"34582:9:97"},{"name":"_4","nativeSrc":"34593:2:97","nodeType":"YulIdentifier","src":"34593:2:97"}],"functionName":{"name":"add","nativeSrc":"34578:3:97","nodeType":"YulIdentifier","src":"34578:3:97"},"nativeSrc":"34578:18:97","nodeType":"YulFunctionCall","src":"34578:18:97"}],"functionName":{"name":"mload","nativeSrc":"34572:5:97","nodeType":"YulIdentifier","src":"34572:5:97"},"nativeSrc":"34572:25:97","nodeType":"YulFunctionCall","src":"34572:25:97"},"variables":[{"name":"offset_1","nativeSrc":"34560:8:97","nodeType":"YulTypedName","src":"34560:8:97","type":""}]},{"body":{"nativeSrc":"34626:16:97","nodeType":"YulBlock","src":"34626:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"34635:1:97","nodeType":"YulLiteral","src":"34635:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"34638:1:97","nodeType":"YulLiteral","src":"34638:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"34628:6:97","nodeType":"YulIdentifier","src":"34628:6:97"},"nativeSrc":"34628:12:97","nodeType":"YulFunctionCall","src":"34628:12:97"},"nativeSrc":"34628:12:97","nodeType":"YulExpressionStatement","src":"34628:12:97"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"34612:8:97","nodeType":"YulIdentifier","src":"34612:8:97"},{"name":"_1","nativeSrc":"34622:2:97","nodeType":"YulIdentifier","src":"34622:2:97"}],"functionName":{"name":"gt","nativeSrc":"34609:2:97","nodeType":"YulIdentifier","src":"34609:2:97"},"nativeSrc":"34609:16:97","nodeType":"YulFunctionCall","src":"34609:16:97"},"nativeSrc":"34606:36:97","nodeType":"YulIf","src":"34606:36:97"},{"nativeSrc":"34651:84:97","nodeType":"YulAssignment","src":"34651:84:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34705:9:97","nodeType":"YulIdentifier","src":"34705:9:97"},{"name":"offset_1","nativeSrc":"34716:8:97","nodeType":"YulIdentifier","src":"34716:8:97"}],"functionName":{"name":"add","nativeSrc":"34701:3:97","nodeType":"YulIdentifier","src":"34701:3:97"},"nativeSrc":"34701:24:97","nodeType":"YulFunctionCall","src":"34701:24:97"},{"name":"dataEnd","nativeSrc":"34727:7:97","nodeType":"YulIdentifier","src":"34727:7:97"}],"functionName":{"name":"abi_decode_array_uint256_dyn_fromMemory","nativeSrc":"34661:39:97","nodeType":"YulIdentifier","src":"34661:39:97"},"nativeSrc":"34661:74:97","nodeType":"YulFunctionCall","src":"34661:74:97"},"variableNames":[{"name":"value1","nativeSrc":"34651:6:97","nodeType":"YulIdentifier","src":"34651:6:97"}]},{"nativeSrc":"34744:41:97","nodeType":"YulVariableDeclaration","src":"34744:41:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34770:9:97","nodeType":"YulIdentifier","src":"34770:9:97"},{"kind":"number","nativeSrc":"34781:2:97","nodeType":"YulLiteral","src":"34781:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"34766:3:97","nodeType":"YulIdentifier","src":"34766:3:97"},"nativeSrc":"34766:18:97","nodeType":"YulFunctionCall","src":"34766:18:97"}],"functionName":{"name":"mload","nativeSrc":"34760:5:97","nodeType":"YulIdentifier","src":"34760:5:97"},"nativeSrc":"34760:25:97","nodeType":"YulFunctionCall","src":"34760:25:97"},"variables":[{"name":"offset_2","nativeSrc":"34748:8:97","nodeType":"YulTypedName","src":"34748:8:97","type":""}]},{"body":{"nativeSrc":"34814:16:97","nodeType":"YulBlock","src":"34814:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"34823:1:97","nodeType":"YulLiteral","src":"34823:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"34826:1:97","nodeType":"YulLiteral","src":"34826:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"34816:6:97","nodeType":"YulIdentifier","src":"34816:6:97"},"nativeSrc":"34816:12:97","nodeType":"YulFunctionCall","src":"34816:12:97"},"nativeSrc":"34816:12:97","nodeType":"YulExpressionStatement","src":"34816:12:97"}]},"condition":{"arguments":[{"name":"offset_2","nativeSrc":"34800:8:97","nodeType":"YulIdentifier","src":"34800:8:97"},{"name":"_1","nativeSrc":"34810:2:97","nodeType":"YulIdentifier","src":"34810:2:97"}],"functionName":{"name":"gt","nativeSrc":"34797:2:97","nodeType":"YulIdentifier","src":"34797:2:97"},"nativeSrc":"34797:16:97","nodeType":"YulFunctionCall","src":"34797:16:97"},"nativeSrc":"34794:36:97","nodeType":"YulIf","src":"34794:36:97"},{"nativeSrc":"34839:83:97","nodeType":"YulAssignment","src":"34839:83:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34892:9:97","nodeType":"YulIdentifier","src":"34892:9:97"},{"name":"offset_2","nativeSrc":"34903:8:97","nodeType":"YulIdentifier","src":"34903:8:97"}],"functionName":{"name":"add","nativeSrc":"34888:3:97","nodeType":"YulIdentifier","src":"34888:3:97"},"nativeSrc":"34888:24:97","nodeType":"YulFunctionCall","src":"34888:24:97"},{"name":"dataEnd","nativeSrc":"34914:7:97","nodeType":"YulIdentifier","src":"34914:7:97"}],"functionName":{"name":"abi_decode_array_string_dyn_fromMemory","nativeSrc":"34849:38:97","nodeType":"YulIdentifier","src":"34849:38:97"},"nativeSrc":"34849:73:97","nodeType":"YulFunctionCall","src":"34849:73:97"},"variableNames":[{"name":"value2","nativeSrc":"34839:6:97","nodeType":"YulIdentifier","src":"34839:6:97"}]},{"nativeSrc":"34931:41:97","nodeType":"YulVariableDeclaration","src":"34931:41:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34957:9:97","nodeType":"YulIdentifier","src":"34957:9:97"},{"kind":"number","nativeSrc":"34968:2:97","nodeType":"YulLiteral","src":"34968:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"34953:3:97","nodeType":"YulIdentifier","src":"34953:3:97"},"nativeSrc":"34953:18:97","nodeType":"YulFunctionCall","src":"34953:18:97"}],"functionName":{"name":"mload","nativeSrc":"34947:5:97","nodeType":"YulIdentifier","src":"34947:5:97"},"nativeSrc":"34947:25:97","nodeType":"YulFunctionCall","src":"34947:25:97"},"variables":[{"name":"offset_3","nativeSrc":"34935:8:97","nodeType":"YulTypedName","src":"34935:8:97","type":""}]},{"body":{"nativeSrc":"35001:16:97","nodeType":"YulBlock","src":"35001:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"35010:1:97","nodeType":"YulLiteral","src":"35010:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"35013:1:97","nodeType":"YulLiteral","src":"35013:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"35003:6:97","nodeType":"YulIdentifier","src":"35003:6:97"},"nativeSrc":"35003:12:97","nodeType":"YulFunctionCall","src":"35003:12:97"},"nativeSrc":"35003:12:97","nodeType":"YulExpressionStatement","src":"35003:12:97"}]},"condition":{"arguments":[{"name":"offset_3","nativeSrc":"34987:8:97","nodeType":"YulIdentifier","src":"34987:8:97"},{"name":"_1","nativeSrc":"34997:2:97","nodeType":"YulIdentifier","src":"34997:2:97"}],"functionName":{"name":"gt","nativeSrc":"34984:2:97","nodeType":"YulIdentifier","src":"34984:2:97"},"nativeSrc":"34984:16:97","nodeType":"YulFunctionCall","src":"34984:16:97"},"nativeSrc":"34981:36:97","nodeType":"YulIf","src":"34981:36:97"},{"nativeSrc":"35026:82:97","nodeType":"YulAssignment","src":"35026:82:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35078:9:97","nodeType":"YulIdentifier","src":"35078:9:97"},{"name":"offset_3","nativeSrc":"35089:8:97","nodeType":"YulIdentifier","src":"35089:8:97"}],"functionName":{"name":"add","nativeSrc":"35074:3:97","nodeType":"YulIdentifier","src":"35074:3:97"},"nativeSrc":"35074:24:97","nodeType":"YulFunctionCall","src":"35074:24:97"},{"name":"dataEnd","nativeSrc":"35100:7:97","nodeType":"YulIdentifier","src":"35100:7:97"}],"functionName":{"name":"abi_decode_array_bytes_dyn_fromMemory","nativeSrc":"35036:37:97","nodeType":"YulIdentifier","src":"35036:37:97"},"nativeSrc":"35036:72:97","nodeType":"YulFunctionCall","src":"35036:72:97"},"variableNames":[{"name":"value3","nativeSrc":"35026:6:97","nodeType":"YulIdentifier","src":"35026:6:97"}]},{"nativeSrc":"35117:58:97","nodeType":"YulAssignment","src":"35117:58:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35159:9:97","nodeType":"YulIdentifier","src":"35159:9:97"},{"kind":"number","nativeSrc":"35170:3:97","nodeType":"YulLiteral","src":"35170:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"35155:3:97","nodeType":"YulIdentifier","src":"35155:3:97"},"nativeSrc":"35155:19:97","nodeType":"YulFunctionCall","src":"35155:19:97"}],"functionName":{"name":"abi_decode_uint8_fromMemory","nativeSrc":"35127:27:97","nodeType":"YulIdentifier","src":"35127:27:97"},"nativeSrc":"35127:48:97","nodeType":"YulFunctionCall","src":"35127:48:97"},"variableNames":[{"name":"value4","nativeSrc":"35117:6:97","nodeType":"YulIdentifier","src":"35117:6:97"}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_string_memory_ptr_$dyn_memory_ptrt_array$_t_bytes_memory_ptr_$dyn_memory_ptrt_uint8_fromMemory","nativeSrc":"33413:1768:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"33613:9:97","nodeType":"YulTypedName","src":"33613:9:97","type":""},{"name":"dataEnd","nativeSrc":"33624:7:97","nodeType":"YulTypedName","src":"33624:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"33636:6:97","nodeType":"YulTypedName","src":"33636:6:97","type":""},{"name":"value1","nativeSrc":"33644:6:97","nodeType":"YulTypedName","src":"33644:6:97","type":""},{"name":"value2","nativeSrc":"33652:6:97","nodeType":"YulTypedName","src":"33652:6:97","type":""},{"name":"value3","nativeSrc":"33660:6:97","nodeType":"YulTypedName","src":"33660:6:97","type":""},{"name":"value4","nativeSrc":"33668:6:97","nodeType":"YulTypedName","src":"33668:6:97","type":""}],"src":"33413:1768:97"},{"body":{"nativeSrc":"35360:299:97","nodeType":"YulBlock","src":"35360:299:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"35377:9:97","nodeType":"YulIdentifier","src":"35377:9:97"},{"kind":"number","nativeSrc":"35388:2:97","nodeType":"YulLiteral","src":"35388:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"35370:6:97","nodeType":"YulIdentifier","src":"35370:6:97"},"nativeSrc":"35370:21:97","nodeType":"YulFunctionCall","src":"35370:21:97"},"nativeSrc":"35370:21:97","nodeType":"YulExpressionStatement","src":"35370:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35411:9:97","nodeType":"YulIdentifier","src":"35411:9:97"},{"kind":"number","nativeSrc":"35422:2:97","nodeType":"YulLiteral","src":"35422:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"35407:3:97","nodeType":"YulIdentifier","src":"35407:3:97"},"nativeSrc":"35407:18:97","nodeType":"YulFunctionCall","src":"35407:18:97"},{"kind":"number","nativeSrc":"35427:2:97","nodeType":"YulLiteral","src":"35427:2:97","type":"","value":"69"}],"functionName":{"name":"mstore","nativeSrc":"35400:6:97","nodeType":"YulIdentifier","src":"35400:6:97"},"nativeSrc":"35400:30:97","nodeType":"YulFunctionCall","src":"35400:30:97"},"nativeSrc":"35400:30:97","nodeType":"YulExpressionStatement","src":"35400:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35450:9:97","nodeType":"YulIdentifier","src":"35450:9:97"},{"kind":"number","nativeSrc":"35461:2:97","nodeType":"YulLiteral","src":"35461:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"35446:3:97","nodeType":"YulIdentifier","src":"35446:3:97"},"nativeSrc":"35446:18:97","nodeType":"YulFunctionCall","src":"35446:18:97"},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a2070726f706f7361","kind":"string","nativeSrc":"35466:34:97","nodeType":"YulLiteral","src":"35466:34:97","type":"","value":"OmnichainProposalSender: proposa"}],"functionName":{"name":"mstore","nativeSrc":"35439:6:97","nodeType":"YulIdentifier","src":"35439:6:97"},"nativeSrc":"35439:62:97","nodeType":"YulFunctionCall","src":"35439:62:97"},"nativeSrc":"35439:62:97","nodeType":"YulExpressionStatement","src":"35439:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35521:9:97","nodeType":"YulIdentifier","src":"35521:9:97"},{"kind":"number","nativeSrc":"35532:2:97","nodeType":"YulLiteral","src":"35532:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"35517:3:97","nodeType":"YulIdentifier","src":"35517:3:97"},"nativeSrc":"35517:18:97","nodeType":"YulFunctionCall","src":"35517:18:97"},{"hexValue":"6c2066756e6374696f6e20696e666f726d6174696f6e206172697479206d6973","kind":"string","nativeSrc":"35537:34:97","nodeType":"YulLiteral","src":"35537:34:97","type":"","value":"l function information arity mis"}],"functionName":{"name":"mstore","nativeSrc":"35510:6:97","nodeType":"YulIdentifier","src":"35510:6:97"},"nativeSrc":"35510:62:97","nodeType":"YulFunctionCall","src":"35510:62:97"},"nativeSrc":"35510:62:97","nodeType":"YulExpressionStatement","src":"35510:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35592:9:97","nodeType":"YulIdentifier","src":"35592:9:97"},{"kind":"number","nativeSrc":"35603:3:97","nodeType":"YulLiteral","src":"35603:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"35588:3:97","nodeType":"YulIdentifier","src":"35588:3:97"},"nativeSrc":"35588:19:97","nodeType":"YulFunctionCall","src":"35588:19:97"},{"hexValue":"6d61746368","kind":"string","nativeSrc":"35609:7:97","nodeType":"YulLiteral","src":"35609:7:97","type":"","value":"match"}],"functionName":{"name":"mstore","nativeSrc":"35581:6:97","nodeType":"YulIdentifier","src":"35581:6:97"},"nativeSrc":"35581:36:97","nodeType":"YulFunctionCall","src":"35581:36:97"},"nativeSrc":"35581:36:97","nodeType":"YulExpressionStatement","src":"35581:36:97"},{"nativeSrc":"35626:27:97","nodeType":"YulAssignment","src":"35626:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"35638:9:97","nodeType":"YulIdentifier","src":"35638:9:97"},{"kind":"number","nativeSrc":"35649:3:97","nodeType":"YulLiteral","src":"35649:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"35634:3:97","nodeType":"YulIdentifier","src":"35634:3:97"},"nativeSrc":"35634:19:97","nodeType":"YulFunctionCall","src":"35634:19:97"},"variableNames":[{"name":"tail","nativeSrc":"35626:4:97","nodeType":"YulIdentifier","src":"35626:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_c21731293dc1db8cf9168ecb51cce73dc982950e761a15c276e0761cd2ea3210__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"35186:473:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"35337:9:97","nodeType":"YulTypedName","src":"35337:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"35351:4:97","nodeType":"YulTypedName","src":"35351:4:97","type":""}],"src":"35186:473:97"},{"body":{"nativeSrc":"35838:170:97","nodeType":"YulBlock","src":"35838:170:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"35855:9:97","nodeType":"YulIdentifier","src":"35855:9:97"},{"kind":"number","nativeSrc":"35866:2:97","nodeType":"YulLiteral","src":"35866:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"35848:6:97","nodeType":"YulIdentifier","src":"35848:6:97"},"nativeSrc":"35848:21:97","nodeType":"YulFunctionCall","src":"35848:21:97"},"nativeSrc":"35848:21:97","nodeType":"YulExpressionStatement","src":"35848:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35889:9:97","nodeType":"YulIdentifier","src":"35889:9:97"},{"kind":"number","nativeSrc":"35900:2:97","nodeType":"YulLiteral","src":"35900:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"35885:3:97","nodeType":"YulIdentifier","src":"35885:3:97"},"nativeSrc":"35885:18:97","nodeType":"YulFunctionCall","src":"35885:18:97"},{"kind":"number","nativeSrc":"35905:2:97","nodeType":"YulLiteral","src":"35905:2:97","type":"","value":"20"}],"functionName":{"name":"mstore","nativeSrc":"35878:6:97","nodeType":"YulIdentifier","src":"35878:6:97"},"nativeSrc":"35878:30:97","nodeType":"YulFunctionCall","src":"35878:30:97"},"nativeSrc":"35878:30:97","nodeType":"YulExpressionStatement","src":"35878:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35928:9:97","nodeType":"YulIdentifier","src":"35928:9:97"},{"kind":"number","nativeSrc":"35939:2:97","nodeType":"YulLiteral","src":"35939:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"35924:3:97","nodeType":"YulIdentifier","src":"35924:3:97"},"nativeSrc":"35924:18:97","nodeType":"YulFunctionCall","src":"35924:18:97"},{"hexValue":"5061757361626c653a206e6f7420706175736564","kind":"string","nativeSrc":"35944:22:97","nodeType":"YulLiteral","src":"35944:22:97","type":"","value":"Pausable: not paused"}],"functionName":{"name":"mstore","nativeSrc":"35917:6:97","nodeType":"YulIdentifier","src":"35917:6:97"},"nativeSrc":"35917:50:97","nodeType":"YulFunctionCall","src":"35917:50:97"},"nativeSrc":"35917:50:97","nodeType":"YulExpressionStatement","src":"35917:50:97"},{"nativeSrc":"35976:26:97","nodeType":"YulAssignment","src":"35976:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"35988:9:97","nodeType":"YulIdentifier","src":"35988:9:97"},{"kind":"number","nativeSrc":"35999:2:97","nodeType":"YulLiteral","src":"35999:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"35984:3:97","nodeType":"YulIdentifier","src":"35984:3:97"},"nativeSrc":"35984:18:97","nodeType":"YulFunctionCall","src":"35984:18:97"},"variableNames":[{"name":"tail","nativeSrc":"35976:4:97","nodeType":"YulIdentifier","src":"35976:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"35664:344:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"35815:9:97","nodeType":"YulTypedName","src":"35815:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"35829:4:97","nodeType":"YulTypedName","src":"35829:4:97","type":""}],"src":"35664:344:97"},{"body":{"nativeSrc":"36062:79:97","nodeType":"YulBlock","src":"36062:79:97","statements":[{"nativeSrc":"36072:17:97","nodeType":"YulAssignment","src":"36072:17:97","value":{"arguments":[{"name":"x","nativeSrc":"36084:1:97","nodeType":"YulIdentifier","src":"36084:1:97"},{"name":"y","nativeSrc":"36087:1:97","nodeType":"YulIdentifier","src":"36087:1:97"}],"functionName":{"name":"sub","nativeSrc":"36080:3:97","nodeType":"YulIdentifier","src":"36080:3:97"},"nativeSrc":"36080:9:97","nodeType":"YulFunctionCall","src":"36080:9:97"},"variableNames":[{"name":"diff","nativeSrc":"36072:4:97","nodeType":"YulIdentifier","src":"36072:4:97"}]},{"body":{"nativeSrc":"36113:22:97","nodeType":"YulBlock","src":"36113:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"36115:16:97","nodeType":"YulIdentifier","src":"36115:16:97"},"nativeSrc":"36115:18:97","nodeType":"YulFunctionCall","src":"36115:18:97"},"nativeSrc":"36115:18:97","nodeType":"YulExpressionStatement","src":"36115:18:97"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"36104:4:97","nodeType":"YulIdentifier","src":"36104:4:97"},{"name":"x","nativeSrc":"36110:1:97","nodeType":"YulIdentifier","src":"36110:1:97"}],"functionName":{"name":"gt","nativeSrc":"36101:2:97","nodeType":"YulIdentifier","src":"36101:2:97"},"nativeSrc":"36101:11:97","nodeType":"YulFunctionCall","src":"36101:11:97"},"nativeSrc":"36098:37:97","nodeType":"YulIf","src":"36098:37:97"}]},"name":"checked_sub_t_uint256","nativeSrc":"36013:128:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"36044:1:97","nodeType":"YulTypedName","src":"36044:1:97","type":""},{"name":"y","nativeSrc":"36047:1:97","nodeType":"YulTypedName","src":"36047:1:97","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"36053:4:97","nodeType":"YulTypedName","src":"36053:4:97","type":""}],"src":"36013:128:97"},{"body":{"nativeSrc":"36320:182:97","nodeType":"YulBlock","src":"36320:182:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"36337:9:97","nodeType":"YulIdentifier","src":"36337:9:97"},{"kind":"number","nativeSrc":"36348:2:97","nodeType":"YulLiteral","src":"36348:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"36330:6:97","nodeType":"YulIdentifier","src":"36330:6:97"},"nativeSrc":"36330:21:97","nodeType":"YulFunctionCall","src":"36330:21:97"},"nativeSrc":"36330:21:97","nodeType":"YulExpressionStatement","src":"36330:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36371:9:97","nodeType":"YulIdentifier","src":"36371:9:97"},{"kind":"number","nativeSrc":"36382:2:97","nodeType":"YulLiteral","src":"36382:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"36367:3:97","nodeType":"YulIdentifier","src":"36367:3:97"},"nativeSrc":"36367:18:97","nodeType":"YulFunctionCall","src":"36367:18:97"},{"kind":"number","nativeSrc":"36387:2:97","nodeType":"YulLiteral","src":"36387:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"36360:6:97","nodeType":"YulIdentifier","src":"36360:6:97"},"nativeSrc":"36360:30:97","nodeType":"YulFunctionCall","src":"36360:30:97"},"nativeSrc":"36360:30:97","nodeType":"YulExpressionStatement","src":"36360:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36410:9:97","nodeType":"YulIdentifier","src":"36410:9:97"},{"kind":"number","nativeSrc":"36421:2:97","nodeType":"YulLiteral","src":"36421:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"36406:3:97","nodeType":"YulIdentifier","src":"36406:3:97"},"nativeSrc":"36406:18:97","nodeType":"YulFunctionCall","src":"36406:18:97"},{"hexValue":"4461696c79205472616e73616374696f6e204c696d6974204578636565646564","kind":"string","nativeSrc":"36426:34:97","nodeType":"YulLiteral","src":"36426:34:97","type":"","value":"Daily Transaction Limit Exceeded"}],"functionName":{"name":"mstore","nativeSrc":"36399:6:97","nodeType":"YulIdentifier","src":"36399:6:97"},"nativeSrc":"36399:62:97","nodeType":"YulFunctionCall","src":"36399:62:97"},"nativeSrc":"36399:62:97","nodeType":"YulExpressionStatement","src":"36399:62:97"},{"nativeSrc":"36470:26:97","nodeType":"YulAssignment","src":"36470:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"36482:9:97","nodeType":"YulIdentifier","src":"36482:9:97"},{"kind":"number","nativeSrc":"36493:2:97","nodeType":"YulLiteral","src":"36493:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"36478:3:97","nodeType":"YulIdentifier","src":"36478:3:97"},"nativeSrc":"36478:18:97","nodeType":"YulFunctionCall","src":"36478:18:97"},"variableNames":[{"name":"tail","nativeSrc":"36470:4:97","nodeType":"YulIdentifier","src":"36470:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_7f1ab6dca0c040aececbb4df1c67ab1f13c05f495e8356647158d9e65e565e3b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"36146:356:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"36297:9:97","nodeType":"YulTypedName","src":"36297:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"36311:4:97","nodeType":"YulTypedName","src":"36311:4:97","type":""}],"src":"36146:356:97"},{"body":{"nativeSrc":"36681:181:97","nodeType":"YulBlock","src":"36681:181:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"36698:9:97","nodeType":"YulIdentifier","src":"36698:9:97"},{"kind":"number","nativeSrc":"36709:2:97","nodeType":"YulLiteral","src":"36709:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"36691:6:97","nodeType":"YulIdentifier","src":"36691:6:97"},"nativeSrc":"36691:21:97","nodeType":"YulFunctionCall","src":"36691:21:97"},"nativeSrc":"36691:21:97","nodeType":"YulExpressionStatement","src":"36691:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36732:9:97","nodeType":"YulIdentifier","src":"36732:9:97"},{"kind":"number","nativeSrc":"36743:2:97","nodeType":"YulLiteral","src":"36743:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"36728:3:97","nodeType":"YulIdentifier","src":"36728:3:97"},"nativeSrc":"36728:18:97","nodeType":"YulFunctionCall","src":"36728:18:97"},{"kind":"number","nativeSrc":"36748:2:97","nodeType":"YulLiteral","src":"36748:2:97","type":"","value":"31"}],"functionName":{"name":"mstore","nativeSrc":"36721:6:97","nodeType":"YulIdentifier","src":"36721:6:97"},"nativeSrc":"36721:30:97","nodeType":"YulFunctionCall","src":"36721:30:97"},"nativeSrc":"36721:30:97","nodeType":"YulExpressionStatement","src":"36721:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36771:9:97","nodeType":"YulIdentifier","src":"36771:9:97"},{"kind":"number","nativeSrc":"36782:2:97","nodeType":"YulLiteral","src":"36782:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"36767:3:97","nodeType":"YulIdentifier","src":"36767:3:97"},"nativeSrc":"36767:18:97","nodeType":"YulFunctionCall","src":"36767:18:97"},{"hexValue":"4d756c7469706c65206272696467696e6720696e20612070726f706f73616c","kind":"string","nativeSrc":"36787:33:97","nodeType":"YulLiteral","src":"36787:33:97","type":"","value":"Multiple bridging in a proposal"}],"functionName":{"name":"mstore","nativeSrc":"36760:6:97","nodeType":"YulIdentifier","src":"36760:6:97"},"nativeSrc":"36760:61:97","nodeType":"YulFunctionCall","src":"36760:61:97"},"nativeSrc":"36760:61:97","nodeType":"YulExpressionStatement","src":"36760:61:97"},{"nativeSrc":"36830:26:97","nodeType":"YulAssignment","src":"36830:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"36842:9:97","nodeType":"YulIdentifier","src":"36842:9:97"},{"kind":"number","nativeSrc":"36853:2:97","nodeType":"YulLiteral","src":"36853:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"36838:3:97","nodeType":"YulIdentifier","src":"36838:3:97"},"nativeSrc":"36838:18:97","nodeType":"YulFunctionCall","src":"36838:18:97"},"variableNames":[{"name":"tail","nativeSrc":"36830:4:97","nodeType":"YulIdentifier","src":"36830:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_e46b78c27334ff7d48b2f5b14d5600e9479f0d3eae7a51dbf6a0c69d730dd8be__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"36507:355:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"36658:9:97","nodeType":"YulTypedName","src":"36658:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"36672:4:97","nodeType":"YulTypedName","src":"36672:4:97","type":""}],"src":"36507:355:97"}]},"contents":"{\n    { }\n    function abi_decode_uint16(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_uint16(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n    }\n    function validator_revert_bool(value)\n    {\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_boolt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        let offset := calldataload(add(headStart, 32))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n        let value := calldataload(add(headStart, 64))\n        validator_revert_bool(value)\n        value3 := value\n        let offset_1 := calldataload(add(headStart, 96))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value4_1, value5_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n        value4 := value4_1\n        value5 := value5_1\n    }\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_decode_tuple_t_uint16t_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_addresst_uint256t_uint16t_bytes_calldata_ptrt_bytes_calldata_ptrt_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7\n    {\n        if slt(sub(dataEnd, headStart), 192) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        value1 := calldataload(add(headStart, 32))\n        value2 := abi_decode_uint16(add(headStart, 64))\n        let offset := calldataload(add(headStart, 96))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value3 := value3_1\n        value4 := value4_1\n        let offset_1 := calldataload(add(headStart, 128))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value5_1, value6_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n        value5 := value5_1\n        value6 := value6_1\n        value7 := calldataload(add(headStart, 160))\n    }\n    function abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_bytes_calldata_ptrt_address(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        let offset := calldataload(add(headStart, 32))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n        let offset_1 := calldataload(add(headStart, 64))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n        value3 := value3_1\n        value4 := value4_1\n        let value := calldataload(add(headStart, 96))\n        validator_revert_address(value)\n        value5 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_decode_tuple_t_uint16t_uint16t_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        value1 := abi_decode_uint16(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n    }\n    function copy_memory_to_memory_with_cleanup(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n    }\n    function abi_encode_bytes(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n        end := add(add(pos, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 0x20)\n    }\n    function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_bytes(value0, add(headStart, 32))\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_uint16t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n    }\n    function abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        value1 := abi_decode_uint16(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n        let offset := calldataload(add(headStart, 96))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value3 := value3_1\n        value4 := value4_1\n    }\n    function abi_encode_tuple_t_contract$_ILayerZeroEndpoint_$4253__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_uint256t_uint16t_bytes_calldata_ptrt_bytes_calldata_ptrt_addresst_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7\n    {\n        if slt(sub(dataEnd, headStart), 192) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        value1 := abi_decode_uint16(add(headStart, 32))\n        let offset := calldataload(add(headStart, 64))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n        let offset_1 := calldataload(add(headStart, 96))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value4_1, value5_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n        value4 := value4_1\n        value5 := value5_1\n        let value := calldataload(add(headStart, 128))\n        validator_revert_address(value)\n        value6 := value\n        value7 := calldataload(add(headStart, 160))\n    }\n    function abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffff))\n    }\n    function abi_encode_bytes_calldata(start, length, pos) -> end\n    {\n        mstore(pos, length)\n        calldatacopy(add(pos, 0x20), start, length)\n        mstore(add(add(pos, length), 0x20), 0)\n        end := add(add(pos, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 0x20)\n    }\n    function abi_encode_tuple_t_uint16_t_address_t_bytes_calldata_ptr_t_bool_t_bytes_calldata_ptr__to_t_uint16_t_address_t_bytes_memory_ptr_t_bool_t_bytes_memory_ptr__fromStack_reversed(headStart, value6, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xffff))\n        mstore(add(headStart, 32), and(value1, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 64), 160)\n        let tail_1 := abi_encode_bytes_calldata(value2, value3, add(headStart, 160))\n        mstore(add(headStart, 96), iszero(iszero(value4)))\n        mstore(add(headStart, 128), sub(tail_1, headStart))\n        tail := abi_encode_bytes_calldata(value5, value6, tail_1)\n    }\n    function abi_decode_tuple_t_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := mload(headStart)\n        value1 := mload(add(headStart, 32))\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function abi_encode_tuple_t_stringliteral_fb6f40981fe5a22463da4d402f5b2d8f9dbbf83560ebbdd44591d6544b346e53__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 49)\n        mstore(add(headStart, 64), \"OmnichainProposalSender: trusted\")\n        mstore(add(headStart, 96), \" remote not found\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_232124683b132441e662395a64e30551728c0a15d01f6ff2dd9080f88729b51d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 46)\n        mstore(add(headStart, 64), \"OmnichainProposalSender: invalid\")\n        mstore(add(headStart, 96), \" native amount\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_b4b52b7d4888c17cd61b7d072c8bae52af7ec4fe5cc936af361e359d49845e55__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"OmnichainProposalSender: empty p\")\n        mstore(add(headStart, 96), \"ayload\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_f2dee99a91d995c8e88710507d1b85f55e19c65efb5b25670813dd22d63ba09d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 42)\n        mstore(add(headStart, 64), \"OmnichainProposalSender: no stor\")\n        mstore(add(headStart, 96), \"ed payload\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_bytes_calldata_ptr_t_uint256__to_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xffff))\n        mstore(add(headStart, 32), 128)\n        let tail_1 := abi_encode_bytes_calldata(value1, value2, add(headStart, 128))\n        mstore(add(headStart, 64), sub(tail_1, headStart))\n        tail := abi_encode_bytes_calldata(value3, value4, tail_1)\n        mstore(add(headStart, 96), value5)\n    }\n    function abi_encode_tuple_t_stringliteral_8358903084c88ef15210bf333ef998ba2611eed32c9f09d8b5a82883806d1286__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 49)\n        mstore(add(headStart, 64), \"OmnichainProposalSender: invalid\")\n        mstore(add(headStart, 96), \" execution params\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos) -> end\n    { end := pos }\n    function abi_encode_tuple_t_stringliteral_066ad49a0ed9e5d6a9f3c20fca13a038f0a5d629f0aaf09d634ae2a7c232ac2b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 11)\n        mstore(add(headStart, 64), \"Call failed\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_8fc786e18c67f9a2aae9af1908b470ce7b6a77c7cd6fd1e9dbdafb6499657565__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 45)\n        mstore(add(headStart, 64), \"OmnichainProposalSender: value c\")\n        mstore(add(headStart, 96), \"annot be zero\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_61468fbafd753a44eba72b43458a5a571ff9821e3893131cc67b0876c2e26370__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 66)\n        mstore(add(headStart, 64), \"OmnichainProposalSender: destina\")\n        mstore(add(headStart, 96), \"tion chain is not a trusted sour\")\n        mstore(add(headStart, 128), \"ce\")\n        tail := add(headStart, 160)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n    function abi_encode_tuple_t_bytes_calldata_ptr_t_uint256__to_t_bytes_memory_ptr_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        mstore(headStart, 64)\n        tail := abi_encode_bytes_calldata(value0, value1, add(headStart, 64))\n        mstore(add(headStart, 32), value2)\n    }\n    function abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_address_payable_t_address_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_address_payable_t_address_t_bytes_memory_ptr__fromStack_reversed(headStart, value6, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xffff))\n        mstore(add(headStart, 32), 192)\n        let tail_1 := abi_encode_bytes(value1, add(headStart, 192))\n        mstore(add(headStart, 64), sub(tail_1, headStart))\n        let tail_2 := abi_encode_bytes(value2, tail_1)\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(add(headStart, 96), and(value3, _1))\n        mstore(add(headStart, 128), and(value4, _1))\n        mstore(add(headStart, 160), sub(tail_2, headStart))\n        tail := abi_encode_bytes_calldata(value5, value6, tail_2)\n    }\n    function abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_bytes_calldata_ptr_t_uint256__to_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xffff))\n        mstore(add(headStart, 32), 128)\n        let tail_1 := abi_encode_bytes(value1, add(headStart, 128))\n        mstore(add(headStart, 64), sub(tail_1, headStart))\n        tail := abi_encode_bytes_calldata(value2, value3, tail_1)\n        mstore(add(headStart, 96), value4)\n    }\n    function abi_encode_tuple_t_bytes_memory_ptr_t_bytes_calldata_ptr_t_uint256_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, 128)\n        let tail_1 := abi_encode_bytes(value0, add(headStart, 128))\n        mstore(add(headStart, 32), sub(tail_1, headStart))\n        let tail_2 := abi_encode_bytes_calldata(value1, value2, tail_1)\n        mstore(add(headStart, 64), value3)\n        mstore(add(headStart, 96), sub(tail_2, headStart))\n        tail := abi_encode_bytes(value4, tail_2)\n    }\n    function abi_encode_tuple_t_uint256_t_bytes_memory_ptr__to_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), 64)\n        tail := abi_encode_bytes(value1, add(headStart, 64))\n    }\n    function abi_encode_tuple_t_uint16_t_uint16_t_address_t_uint256__to_t_uint16_t_uint16_t_address_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 128)\n        let _1 := 0xffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), and(value2, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 96), value3)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function allocate_memory(size) -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(size, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function array_allocation_size_bytes(length) -> size\n    {\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        size := add(and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0), 0x20)\n    }\n    function abi_decode_available_length_bytes_fromMemory(src, length, end) -> array\n    {\n        array := allocate_memory(array_allocation_size_bytes(length))\n        mstore(array, length)\n        if gt(add(src, length), end) { revert(0, 0) }\n        copy_memory_to_memory_with_cleanup(src, add(array, 0x20), length)\n    }\n    function abi_decode_bytes_fromMemory(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        array := abi_decode_available_length_bytes_fromMemory(add(offset, 0x20), mload(offset), end)\n    }\n    function abi_decode_tuple_t_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := mload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value0 := abi_decode_bytes_fromMemory(add(headStart, offset), dataEnd)\n    }\n    function abi_encode_tuple_t_stringliteral_4867e9bc1f5aceefa1d5492b8babd12820787c1937becbd7fd5e31e7ecb2fecc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 49)\n        mstore(add(headStart, 64), \"OmnichainProposalSender: chainId\")\n        mstore(add(headStart, 96), \" must not be zero\")\n        tail := add(headStart, 128)\n    }\n    function convert_bytes_to_fixedbytes_from_t_bytes_calldata_ptr_to_t_bytes20(array, len) -> value\n    {\n        let _1 := calldataload(array)\n        let _2 := 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000\n        value := and(_1, _2)\n        if lt(len, 20)\n        {\n            value := and(and(_1, shl(shl(3, sub(20, len)), _2)), _2)\n        }\n    }\n    function abi_encode_tuple_t_stringliteral_f5eefd0c62457e6ddad4d12b314f91d912b3ccd761af75b4b7cf73ff444e1b62__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 61)\n        mstore(add(headStart, 64), \"OmnichainProposalSender: remote \")\n        mstore(add(headStart, 96), \"address must be 20 bytes long\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_packed_t_bytes_calldata_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed(pos, value2, value1, value0) -> end\n    {\n        calldatacopy(pos, value0, value1)\n        let _1 := add(pos, value1)\n        mstore(_1, and(shl(96, value2), 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000))\n        end := add(_1, 20)\n    }\n    function array_dataslot_bytes_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function clean_up_bytearray_end_slots_bytes_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            let _1 := 0\n            mstore(0, array)\n            let data := keccak256(0, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _2 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _2) { start := add(start, 1) }\n            { sstore(start, _1) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage(slot, src)\n    {\n        let newLen := mload(src)\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_bytes_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        let srcOffset_1 := 0x20\n        srcOffset := 0x20\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)\n            let dstPtr := array_dataslot_bytes_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n            {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, srcOffset_1)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n    function abi_encode_tuple_t_bytes_memory_ptr_t_bytes_storage__to_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        mstore(headStart, 64)\n        let tail_1 := abi_encode_bytes(value0, add(headStart, 64))\n        let _1 := 32\n        mstore(add(headStart, _1), sub(tail_1, headStart))\n        let ret := 0\n        let slotValue := sload(value1)\n        let length := extract_byte_array_length(slotValue)\n        mstore(tail_1, length)\n        let _2 := 1\n        switch and(slotValue, 1)\n        case 0 {\n            mstore(add(tail_1, _1), and(slotValue, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00))\n            ret := add(add(tail_1, shl(5, iszero(iszero(length)))), _1)\n        }\n        case 1 {\n            mstore(0, value1)\n            let dataPos := keccak256(0, _1)\n            let i := 0\n            for { } lt(i, length) { i := add(i, _1) }\n            {\n                mstore(add(add(tail_1, i), _1), sload(dataPos))\n                dataPos := add(dataPos, _2)\n            }\n            ret := add(add(tail_1, i), _1)\n        }\n        tail := ret\n    }\n    function abi_encode_tuple_t_uint16_t_uint16_t_uint256_t_bytes_calldata_ptr__to_t_uint16_t_uint16_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        let _1 := 0xffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), 128)\n        tail := abi_encode_bytes_calldata(value3, value4, add(headStart, 128))\n    }\n    function abi_decode_tuple_t_bytes_memory_ptrt_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        let _2 := calldataload(_1)\n        let array := allocate_memory(array_allocation_size_bytes(_2))\n        mstore(array, _2)\n        if gt(add(add(_1, _2), 0x20), dataEnd) { revert(0, 0) }\n        calldatacopy(add(array, 0x20), add(_1, 0x20), _2)\n        mstore(add(add(array, _2), 0x20), 0)\n        value0 := array\n        value1 := calldataload(add(headStart, 0x20))\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_bytes_calldata_ptr_t_address_payable_t_address_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_address_payable_t_address_t_bytes_memory_ptr__fromStack_reversed(headStart, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xffff))\n        mstore(add(headStart, 32), 192)\n        let tail_1 := abi_encode_bytes(value1, add(headStart, 192))\n        mstore(add(headStart, 64), sub(tail_1, headStart))\n        let tail_2 := abi_encode_bytes_calldata(value2, value3, tail_1)\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(add(headStart, 96), and(value4, _1))\n        mstore(add(headStart, 128), and(value5, _1))\n        mstore(add(headStart, 160), sub(tail_2, headStart))\n        tail := abi_encode_bytes_calldata(value6, value7, tail_2)\n    }\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n        mstore(add(headStart, 96), \"ddress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 32), 64)\n        tail := abi_encode_bytes(value1, add(headStart, 64))\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_bool(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_cba8a57ccb1594d7138ca5e2a9216c55d23151b53a95734bafda4b812e3786ff__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 13)\n        mstore(add(headStart, 64), \"access denied\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 31)\n        mstore(add(headStart, 64), \"ReentrancyGuard: reentrant call\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 16)\n        mstore(add(headStart, 64), \"Pausable: paused\")\n        tail := add(headStart, 96)\n    }\n    function array_allocation_size_array_address_dyn(length) -> size\n    {\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        size := add(shl(5, length), 0x20)\n    }\n    function abi_decode_array_uint256_dyn_fromMemory(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let _1 := mload(offset)\n        let _2 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_address_dyn(_1))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, 0x20)\n        let srcEnd := add(add(offset, shl(5, _1)), 0x20)\n        if gt(srcEnd, end) { revert(0, 0) }\n        let src := add(offset, 0x20)\n        for { } lt(src, srcEnd) { src := add(src, _2) }\n        {\n            mstore(dst, mload(src))\n            dst := add(dst, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_array_string_dyn_fromMemory(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let _1 := mload(offset)\n        let _2 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_address_dyn(_1))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, _2)\n        let srcEnd := add(add(offset, shl(5, _1)), _2)\n        if gt(srcEnd, end) { revert(0, 0) }\n        let src := add(offset, _2)\n        for { } lt(src, srcEnd) { src := add(src, _2) }\n        {\n            let innerOffset := mload(src)\n            if gt(innerOffset, 0xffffffffffffffff)\n            {\n                let _3 := 0\n                revert(_3, _3)\n            }\n            let _4 := add(offset, innerOffset)\n            if iszero(slt(add(_4, 63), end))\n            {\n                let _5 := 0\n                revert(_5, _5)\n            }\n            mstore(dst, abi_decode_available_length_bytes_fromMemory(add(_4, 64), mload(add(_4, _2)), end))\n            dst := add(dst, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_array_bytes_dyn_fromMemory(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let _1 := mload(offset)\n        let _2 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_address_dyn(_1))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, _2)\n        let srcEnd := add(add(offset, shl(5, _1)), _2)\n        if gt(srcEnd, end) { revert(0, 0) }\n        let src := add(offset, _2)\n        for { } lt(src, srcEnd) { src := add(src, _2) }\n        {\n            let innerOffset := mload(src)\n            if gt(innerOffset, 0xffffffffffffffff)\n            {\n                let _3 := 0\n                revert(_3, _3)\n            }\n            mstore(dst, abi_decode_bytes_fromMemory(add(add(offset, innerOffset), _2), end))\n            dst := add(dst, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_uint8_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_string_memory_ptr_$dyn_memory_ptrt_array$_t_bytes_memory_ptr_$dyn_memory_ptrt_uint8_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n        let offset := mload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n        let _3 := mload(_2)\n        let _4 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_address_dyn(_3))\n        let dst_1 := dst\n        mstore(dst, _3)\n        dst := add(dst, _4)\n        let srcEnd := add(add(_2, shl(5, _3)), _4)\n        if gt(srcEnd, dataEnd) { revert(0, 0) }\n        let src := add(_2, _4)\n        for { } lt(src, srcEnd) { src := add(src, _4) }\n        {\n            let value := mload(src)\n            validator_revert_address(value)\n            mstore(dst, value)\n            dst := add(dst, _4)\n        }\n        value0 := dst_1\n        let offset_1 := mload(add(headStart, _4))\n        if gt(offset_1, _1) { revert(0, 0) }\n        value1 := abi_decode_array_uint256_dyn_fromMemory(add(headStart, offset_1), dataEnd)\n        let offset_2 := mload(add(headStart, 64))\n        if gt(offset_2, _1) { revert(0, 0) }\n        value2 := abi_decode_array_string_dyn_fromMemory(add(headStart, offset_2), dataEnd)\n        let offset_3 := mload(add(headStart, 96))\n        if gt(offset_3, _1) { revert(0, 0) }\n        value3 := abi_decode_array_bytes_dyn_fromMemory(add(headStart, offset_3), dataEnd)\n        value4 := abi_decode_uint8_fromMemory(add(headStart, 128))\n    }\n    function abi_encode_tuple_t_stringliteral_c21731293dc1db8cf9168ecb51cce73dc982950e761a15c276e0761cd2ea3210__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 69)\n        mstore(add(headStart, 64), \"OmnichainProposalSender: proposa\")\n        mstore(add(headStart, 96), \"l function information arity mis\")\n        mstore(add(headStart, 128), \"match\")\n        tail := add(headStart, 160)\n    }\n    function abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 20)\n        mstore(add(headStart, 64), \"Pausable: not paused\")\n        tail := add(headStart, 96)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        if gt(diff, x) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_t_stringliteral_7f1ab6dca0c040aececbb4df1c67ab1f13c05f495e8356647158d9e65e565e3b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Daily Transaction Limit Exceeded\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_e46b78c27334ff7d48b2f5b14d5600e9479f0d3eae7a51dbf6a0c69d730dd8be__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 31)\n        mstore(add(headStart, 64), \"Multiple bridging in a proposal\")\n        tail := add(headStart, 96)\n    }\n}","id":97,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"12733":[{"length":32,"start":1248},{"length":32,"start":1512},{"length":32,"start":1792},{"length":32,"start":4199},{"length":32,"start":4647},{"length":32,"start":5707},{"length":32,"start":6719}]},"linkReferences":{},"object":"6080604052600436106101a15760003560e01c80637533d788116100e1578063b4a0bdf31161008a578063da35c66411610064578063da35c66414610502578063e0354d7f14610518578063e2222b0e14610545578063f2fde38b1461055857600080fd5b8063b4a0bdf314610481578063cbed8b9c146104ae578063cd4d1c64146104ce57600080fd5b80638da5cb5b116100bb5780638da5cb5b146103e857806393a61d6c14610434578063a6c3d1651461046157600080fd5b80637533d788146103865780637dbb533c146103a65780638456cb59146103d357600080fd5b806330fd54a01161014e5780634f4ba0f4116101285780634f4ba0f4146102e55780635c975abb146103125780635f6716f71461034d578063715018a61461037a57600080fd5b806330fd54a01461029d5780633f4ba83a146102bd5780633fd9d7ef146102d257600080fd5b806321b4eaa11161017f57806321b4eaa1146102285780632488eec81461025d5780632dbbec081461027d57600080fd5b806307e0db17146101a65780630e32cb86146101c85780631183a3b2146101e8575b600080fd5b3480156101b257600080fd5b506101c66101c136600461222e565b610578565b005b3480156101d457600080fd5b506101c66101e336600461226b565b61065c565b3480156101f457600080fd5b5061021561020336600461222e565b60046020526000908152604090205481565b6040519081526020015b60405180910390f35b34801561023457600080fd5b506102486102433660046122df565b6106fb565b6040805192835260208301919091520161021f565b34801561026957600080fd5b506101c6610278366004612374565b6107b2565b34801561028957600080fd5b506101c661029836600461222e565b610855565b3480156102a957600080fd5b506101c66102b836600461239e565b61097b565b3480156102c957600080fd5b506101c6610d11565b6101c66102e0366004612442565b610d59565b3480156102f157600080fd5b5061021561030036600461222e565b60036020526000908152604090205481565b34801561031e57600080fd5b5060015474010000000000000000000000000000000000000000900460ff16604051901515815260200161021f565b34801561035957600080fd5b5061036d6103683660046124d5565b6111dd565b60405161021f9190612561565b3480156101c657600080fd5b34801561039257600080fd5b5061036d6103a136600461222e565b6112b5565b3480156103b257600080fd5b506102156103c1366004612574565b60086020526000908152604090205481565b3480156103df57600080fd5b506101c661134f565b3480156103f457600080fd5b5060015473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161021f565b34801561044057600080fd5b5061021561044f36600461222e565b60056020526000908152604090205481565b34801561046d57600080fd5b506101c661047c36600461258d565b611395565b34801561048d57600080fd5b5060025461040f9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156104ba57600080fd5b506101c66104c93660046125e0565b6115ed565b3480156104da57600080fd5b5061040f7f000000000000000000000000000000000000000000000000000000000000000081565b34801561050e57600080fd5b5061021560075481565b34801561052457600080fd5b5061021561053336600461222e565b60066020526000908152604090205481565b6101c661055336600461264f565b6116b6565b34801561056457600080fd5b506101c661057336600461226b565b611ad8565b6105b66040518060400160405280601681526020017f73657453656e6456657273696f6e2875696e7431362900000000000000000000815250611b75565b6040517f07e0db1700000000000000000000000000000000000000000000000000000000815261ffff821660048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906307e0db1790602401600060405180830381600087803b15801561064157600080fd5b505af1158015610655573d6000803e3d6000fd5b5050505050565b610664611c5a565b61066d81611cc1565b60025460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa090600090a3600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166340a7bb1089308a8a8a8a8a6040518863ffffffff1660e01b81526004016107639796959493929190612721565b6040805180830381865afa15801561077f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a39190612784565b91509150965096945050505050565b6107f06040518060400160405280602081526020017f7365744d61784461696c794c696d69742875696e7431362c75696e7432353629815250611b75565b61ffff82166000818152600360209081526040918290205482519081529081018490527f4dd31065e259d5284e44d1f9265710da72eafcf78dc925e3881189fc3b71f693910160405180910390a261ffff909116600090815260036020526040902055565b6108936040518060400160405280601b81526020017f72656d6f76655472757374656452656d6f74652875696e743136290000000000815250611b75565b61ffff8116600090815260096020526040902080546108b1906127a8565b905060000361092d5760405162461bcd60e51b815260206004820152603160248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a207472757374656460448201527f2072656d6f7465206e6f7420666f756e6400000000000000000000000000000060648201526084015b60405180910390fd5b61ffff81166000908152600960205260408120610949916121c9565b60405161ffff8216907f6d5075c81d4d9e75bec6052f4e44f58f8a8cf1327544addbbf015fb06f83bd3790600090a250565b610983611c5a565b61098b611d0e565b61099488611cc1565b60008111610a0a5760405162461bcd60e51b815260206004820152602e60248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a20696e76616c696460448201527f206e617469766520616d6f756e740000000000000000000000000000000000006064820152608401610924565b6000849003610a815760405162461bcd60e51b815260206004820152602660248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a20656d707479207060448201527f61796c6f616400000000000000000000000000000000000000000000000000006064820152608401610924565b60008781526008602052604090205480610b035760405162461bcd60e51b815260206004820152602a60248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a206e6f2073746f7260448201527f6564207061796c6f6164000000000000000000000000000000000000000000006064820152608401610924565b6000878787878787604051602001610b20969594939291906127fb565b604051602081830303815290604052905081818051906020012014610bad5760405162461bcd60e51b815260206004820152603160248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a20696e76616c696460448201527f20657865637574696f6e20706172616d730000000000000000000000000000006064820152608401610924565b600089815260086020526040808220919091555173ffffffffffffffffffffffffffffffffffffffff8b16907f22fe8e8ead80ad0961d77107e806ba9bcf9ca3b175a9d446145646d39c36ab9690610c089086815260200190565b60405180910390a2887f2dc7ac5d08fd553243fc66b5f15262e3f3013e27abf660d7bb3fccf133322f6e83604051610c4291815260200190565b60405180910390a260008a73ffffffffffffffffffffffffffffffffffffffff168460405160006040518083038185875af1925050503d8060008114610ca4576040519150601f19603f3d011682016040523d82523d6000602084013e610ca9565b606091505b5050905080610cfa5760405162461bcd60e51b815260206004820152600b60248201527f43616c6c206661696c65640000000000000000000000000000000000000000006044820152606401610924565b505050610d076001600055565b5050505050505050565b610d4f6040518060400160405280600981526020017f756e706175736528290000000000000000000000000000000000000000000000815250611b75565b610d57611d67565b565b610d61611de4565b610d826040518060600160405280602381526020016131f260239139611b75565b60003411610df85760405162461bcd60e51b815260206004820152602d60248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a2076616c7565206360448201527f616e6e6f74206265207a65726f000000000000000000000000000000000000006064820152608401610924565b6000849003610e6f5760405162461bcd60e51b815260206004820152602660248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a20656d707479207060448201527f61796c6f616400000000000000000000000000000000000000000000000000006064820152608401610924565b61ffff861660009081526009602052604081208054610e8d906127a8565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb9906127a8565b8015610f065780601f10610edb57610100808354040283529160200191610f06565b820191906000526020600020905b815481529060010190602001808311610ee957829003601f168201915b505050505090508051600003610faa5760405162461bcd60e51b815260206004820152604260248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a2064657374696e6160448201527f74696f6e20636861696e206973206e6f742061207472757374656420736f757260648201527f6365000000000000000000000000000000000000000000000000000000000000608482015260a401610924565b610fea8787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611e4f92505050565b6000600760008154610ffb9061286f565b9190508190559050600087878360405160200161101a939291906128a7565b60408051601f19818403018152908290527fc5803100000000000000000000000000000000000000000000000000000000008252915073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c58031009034906110aa908d908890879033908c908f908f906004016128cb565b6000604051808303818588803b1580156110c357600080fd5b505af1935050505080156110d5575060015b611193573d808015611103576040519150601f19603f3d011682016040523d82523d6000602084013e611108565b606091505b508982888834604051602001611122959493929190612933565b60408051601f198184030181528282528051602091820120600087815260089092529190205561ffff8b169084907f6d16111647e03d7f1cb2b71c02eafe3355b97dfc17af3de1b94ef39c8a9ee4d9906111859086908c908c9034908990612976565b60405180910390a3506111d2565b8861ffff167f95a4fcf4eb9be6f5cf2eb6830782870f8907bccc513f765388a9cb2dae2f325983836040516111c99291906129c2565b60405180910390a25b505050505050505050565b6040517ff5ecbdbc00000000000000000000000000000000000000000000000000000000815261ffff808516600483015283166024820152306044820152606481018290526060907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063f5ecbdbc90608401600060405180830381865afa158015611283573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112ab9190810190612ab8565b90505b9392505050565b600960205260009081526040902080546112ce906127a8565b80601f01602080910402602001604051908101604052809291908181526020018280546112fa906127a8565b80156113475780601f1061131c57610100808354040283529160200191611347565b820191906000526020600020905b81548152906001019060200180831161132a57829003601f168201915b505050505081565b61138d6040518060400160405280600781526020017f7061757365282900000000000000000000000000000000000000000000000000815250611b75565b610d57611f3c565b6113b660405180606001604052806025815260200161321560259139611b75565b8261ffff166000036114305760405162461bcd60e51b815260206004820152603160248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a20636861696e496460448201527f206d757374206e6f74206265207a65726f0000000000000000000000000000006064820152608401610924565b61144561143d8284612af5565b60601c611cc1565b601481146114bb5760405162461bcd60e51b815260206004820152603d60248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a2072656d6f74652060448201527f61646472657373206d757374206265203230206279746573206c6f6e670000006064820152608401610924565b61ffff8316600090815260096020526040812080546114d9906127a8565b80601f0160208091040260200160405190810160405280929190818152602001828054611505906127a8565b80156115525780601f1061152757610100808354040283529160200191611552565b820191906000526020600020905b81548152906001019060200180831161153557829003601f168201915b5050505050905082823060405160200161156e93929190612b3d565b60408051601f1981840301815291815261ffff86166000908152600960205220906115999082612bc3565b5061ffff84166000818152600960205260409081902090517fe84e609c32d71c678382f7c65cc051810a41dcaf660e55c9f8fcffeba4621a32916115df91859190612cbf565b60405180910390a250505050565b61160e60405180606001604052806026815260200161323a60269139611b75565b6040517fcbed8b9c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063cbed8b9c906116889088908890889088908890600401612d78565b600060405180830381600087803b1580156116a257600080fd5b505af11580156111d2573d6000803e3d6000fd5b6116be611de4565b6116c6611d0e565b6116e760405180606001604052806038815260200161326060389139611b75565b61ffff871660009081526009602052604081208054611705906127a8565b80601f0160208091040260200160405190810160405280929190818152602001828054611731906127a8565b801561177e5780601f106117535761010080835404028352916020019161177e565b820191906000526020600020905b81548152906001019060200180831161176157829003601f168201915b5050505050905080516000036118225760405162461bcd60e51b815260206004820152604260248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a2064657374696e6160448201527f74696f6e20636861696e206973206e6f742061207472757374656420736f757260648201527f6365000000000000000000000000000000000000000000000000000000000000608482015260a401610924565b600089815260086020526040902054806118a45760405162461bcd60e51b815260206004820152602a60248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a206e6f2073746f7260448201527f6564207061796c6f6164000000000000000000000000000000000000000000006064820152608401610924565b600087900361191b5760405162461bcd60e51b815260206004820152602660248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a20656d707479207060448201527f61796c6f616400000000000000000000000000000000000000000000000000006064820152608401610924565b6000611929888a018a612db1565b5090506119368a82611e4f565b818a8a8a8a8a89604051602001611952969594939291906127fb565b60405160208183030381529060405280519060200120146119db5760405162461bcd60e51b815260206004820152603160248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a20696e76616c696460448201527f20657865637574696f6e20706172616d730000000000000000000000000000006064820152608401610924565b60008b81526008602052604080822091909155518b907f2dc7ac5d08fd553243fc66b5f15262e3f3013e27abf660d7bb3fccf133322f6e90611a209085815260200190565b60405180910390a273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001663c5803100611a6e3487612e2e565b8c868d8d338c8f8f6040518a63ffffffff1660e01b8152600401611a99989796959493929190612e47565b6000604051808303818588803b158015611ab257600080fd5b505af1158015611ac6573d6000803e3d6000fd5b5050505050505050610d076001600055565b611ae0611c5a565b73ffffffffffffffffffffffffffffffffffffffff8116611b695760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610924565b611b7281611fab565b50565b6002546040517f18c5e8ab00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116906318c5e8ab90611bcd9033908590600401612ebf565b602060405180830381865afa158015611bea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c0e9190612eee565b611b725760405162461bcd60e51b815260206004820152600d60248201527f6163636573732064656e696564000000000000000000000000000000000000006044820152606401610924565b60015473ffffffffffffffffffffffffffffffffffffffff163314610d575760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610924565b73ffffffffffffffffffffffffffffffffffffffff8116611b72576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260005403611d605760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610924565b6002600055565b611d6f612022565b600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b60015474010000000000000000000000000000000000000000900460ff1615610d575760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610924565b60008060008084806020019051810190611e6991906130bf565b50935093509350935082518451148015611e84575081518451145b8015611e91575080518451145b611f295760405162461bcd60e51b815260206004820152604560248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a2070726f706f736160448201527f6c2066756e6374696f6e20696e666f726d6174696f6e206172697479206d697360648201527f6d61746368000000000000000000000000000000000000000000000000000000608482015260a401610924565b611f3486855161208c565b505050505050565b611f44611de4565b600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611dba3390565b6001805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60015474010000000000000000000000000000000000000000900460ff16610d575760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610924565b61ffff8216600090815260056020908152604080832054600483528184205460038452828520546006909452919093205442939290620151806120cf85876131de565b11156120f35761ffff87166000908152600560205260409020859055859250612100565b6120fd8684612e2e565b92505b818311156121505760405162461bcd60e51b815260206004820181905260248201527f4461696c79205472616e73616374696f6e204c696d69742045786365656465646044820152606401610924565b84810361219f5760405162461bcd60e51b815260206004820152601f60248201527f4d756c7469706c65206272696467696e6720696e20612070726f706f73616c006044820152606401610924565b505061ffff9094166000908152600460209081526040808320969096556006905293909320555050565b5080546121d5906127a8565b6000825580601f106121e5575050565b601f016020900490600052602060002090810190611b7291905b8082111561221357600081556001016121ff565b5090565b803561ffff8116811461222957600080fd5b919050565b60006020828403121561224057600080fd5b6112ae82612217565b73ffffffffffffffffffffffffffffffffffffffff81168114611b7257600080fd5b60006020828403121561227d57600080fd5b81356112ae81612249565b60008083601f84011261229a57600080fd5b50813567ffffffffffffffff8111156122b257600080fd5b6020830191508360208285010111156122ca57600080fd5b9250929050565b8015158114611b7257600080fd5b600080600080600080608087890312156122f857600080fd5b61230187612217565b9550602087013567ffffffffffffffff8082111561231e57600080fd5b61232a8a838b01612288565b90975095506040890135915061233f826122d1565b9093506060880135908082111561235557600080fd5b5061236289828a01612288565b979a9699509497509295939492505050565b6000806040838503121561238757600080fd5b61239083612217565b946020939093013593505050565b60008060008060008060008060c0898b0312156123ba57600080fd5b88356123c581612249565b9750602089013596506123da60408a01612217565b9550606089013567ffffffffffffffff808211156123f757600080fd5b6124038c838d01612288565b909750955060808b013591508082111561241c57600080fd5b506124298b828c01612288565b999c989b50969995989497949560a00135949350505050565b6000806000806000806080878903121561245b57600080fd5b61246487612217565b9550602087013567ffffffffffffffff8082111561248157600080fd5b61248d8a838b01612288565b909750955060408901359150808211156124a657600080fd5b506124b389828a01612288565b90945092505060608701356124c781612249565b809150509295509295509295565b6000806000606084860312156124ea57600080fd5b6124f384612217565b925061250160208501612217565b9150604084013590509250925092565b60005b8381101561252c578181015183820152602001612514565b50506000910152565b6000815180845261254d816020860160208601612511565b601f01601f19169290920160200192915050565b6020815260006112ae6020830184612535565b60006020828403121561258657600080fd5b5035919050565b6000806000604084860312156125a257600080fd5b6125ab84612217565b9250602084013567ffffffffffffffff8111156125c757600080fd5b6125d386828701612288565b9497909650939450505050565b6000806000806000608086880312156125f857600080fd5b61260186612217565b945061260f60208701612217565b935060408601359250606086013567ffffffffffffffff81111561263257600080fd5b61263e88828901612288565b969995985093965092949392505050565b60008060008060008060008060c0898b03121561266b57600080fd5b8835975061267b60208a01612217565b9650604089013567ffffffffffffffff8082111561269857600080fd5b6126a48c838d01612288565b909850965060608b01359150808211156126bd57600080fd5b506126ca8b828c01612288565b90955093505060808901356126de81612249565b8092505060a089013590509295985092959890939650565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b61ffff8816815273ffffffffffffffffffffffffffffffffffffffff8716602082015260a06040820152600061275b60a0830187896126f6565b851515606084015282810360808401526127768185876126f6565b9a9950505050505050505050565b6000806040838503121561279757600080fd5b505080516020909101519092909150565b600181811c908216806127bc57607f821691505b6020821081036127f5577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b61ffff871681526080602082015260006128196080830187896126f6565b828103604084015261282c8186886126f6565b915050826060830152979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036128a0576128a0612840565b5060010190565b6040815260006128bb6040830185876126f6565b9050826020830152949350505050565b61ffff8816815260c0602082015260006128e860c0830189612535565b82810360408401526128fa8189612535565b73ffffffffffffffffffffffffffffffffffffffff88811660608601528716608085015283810360a085015290506127768185876126f6565b61ffff861681526080602082015260006129506080830187612535565b82810360408401526129638186886126f6565b9150508260608301529695505050505050565b6080815260006129896080830188612535565b828103602084015261299c8187896126f6565b905084604084015282810360608401526129b68185612535565b98975050505050505050565b8281526040602082015260006112ab6040830184612535565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612a3357612a336129db565b604052919050565b600067ffffffffffffffff821115612a5557612a556129db565b50601f01601f191660200190565b6000612a76612a7184612a3b565b612a0a565b9050828152838383011115612a8a57600080fd5b6112ae836020830184612511565b600082601f830112612aa957600080fd5b6112ae83835160208501612a63565b600060208284031215612aca57600080fd5b815167ffffffffffffffff811115612ae157600080fd5b612aed84828501612a98565b949350505050565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008135818116916014851015612b355780818660140360031b1b83161692505b505092915050565b8284823760609190911b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169101908152601401919050565b601f821115612bbe576000816000526020600020601f850160051c81016020861015612b9f5750805b601f850160051c820191505b81811015611f3457828155600101612bab565b505050565b815167ffffffffffffffff811115612bdd57612bdd6129db565b612bf181612beb84546127a8565b84612b76565b602080601f831160018114612c445760008415612c0e5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555611f34565b600085815260208120601f198616915b82811015612c7357888601518255948401946001909101908401612c54565b5085821015612caf57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b604081526000612cd26040830185612535565b60208382038185015260008554612ce8816127a8565b80855260018281168015612d035760018114612d3b57612d69565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008416868801528583151560051b8801019450612d69565b896000528560002060005b84811015612d61578154898201890152908301908701612d46565b880187019550505b50929998505050505050505050565b600061ffff808816835280871660208401525084604083015260806060830152612da66080830184866126f6565b979650505050505050565b60008060408385031215612dc457600080fd5b823567ffffffffffffffff811115612ddb57600080fd5b8301601f81018513612dec57600080fd5b8035612dfa612a7182612a3b565b818152866020838501011115612e0f57600080fd5b8160208401602083013760006020928201830152969401359450505050565b80820180821115612e4157612e41612840565b92915050565b61ffff8916815260c060208201526000612e6460c083018a612535565b8281036040840152612e7781898b6126f6565b73ffffffffffffffffffffffffffffffffffffffff88811660608601528716608085015283810360a08501529050612eb08185876126f6565b9b9a5050505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff831681526040602082015260006112ab6040830184612535565b600060208284031215612f0057600080fd5b81516112ae816122d1565b600067ffffffffffffffff821115612f2557612f256129db565b5060051b60200190565b600082601f830112612f4057600080fd5b81516020612f50612a7183612f0b565b8083825260208201915060208460051b870101935086841115612f7257600080fd5b602086015b84811015612f8e5780518352918301918301612f77565b509695505050505050565b600082601f830112612faa57600080fd5b81516020612fba612a7183612f0b565b82815260059290921b84018101918181019086841115612fd957600080fd5b8286015b84811015612f8e57805167ffffffffffffffff811115612ffd5760008081fd5b8701603f8101891361300f5760008081fd5b613020898683015160408401612a63565b845250918301918301612fdd565b600082601f83011261303f57600080fd5b8151602061304f612a7183612f0b565b82815260059290921b8401810191818101908684111561306e57600080fd5b8286015b84811015612f8e57805167ffffffffffffffff8111156130925760008081fd5b6130a08986838b0101612a98565b845250918301918301613072565b805160ff8116811461222957600080fd5b600080600080600060a086880312156130d757600080fd5b855167ffffffffffffffff808211156130ef57600080fd5b818801915088601f83011261310357600080fd5b81516020613113612a7183612f0b565b82815260059290921b8401810191818101908c84111561313257600080fd5b948201945b8386101561315957855161314a81612249565b82529482019490820190613137565b918b015191995090935050508082111561317257600080fd5b61317e89838a01612f2f565b9550604088015191508082111561319457600080fd5b6131a089838a01612f99565b945060608801519150808211156131b657600080fd5b506131c38882890161302e565b9250506131d2608087016130ae565b90509295509295909350565b81810381811115612e4157612e4161284056fe657865637574652875696e7431362c62797465732c62797465732c61646472657373297365745472757374656452656d6f7465416464726573732875696e7431362c627974657329736574436f6e6669672875696e7431362c75696e7431362c75696e743235362c6279746573297265747279457865637574652875696e743235362c75696e7431362c62797465732c62797465732c616464726573732c75696e7432353629a2646970667358221220cddfa01f72bf4df6426198a3ec82d6b0d9ee572a9e61f22b34c5ba9bb489f86564736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1A1 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7533D788 GT PUSH2 0xE1 JUMPI DUP1 PUSH4 0xB4A0BDF3 GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xDA35C664 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xDA35C664 EQ PUSH2 0x502 JUMPI DUP1 PUSH4 0xE0354D7F EQ PUSH2 0x518 JUMPI DUP1 PUSH4 0xE2222B0E EQ PUSH2 0x545 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x558 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB4A0BDF3 EQ PUSH2 0x481 JUMPI DUP1 PUSH4 0xCBED8B9C EQ PUSH2 0x4AE JUMPI DUP1 PUSH4 0xCD4D1C64 EQ PUSH2 0x4CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0xBB JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x3E8 JUMPI DUP1 PUSH4 0x93A61D6C EQ PUSH2 0x434 JUMPI DUP1 PUSH4 0xA6C3D165 EQ PUSH2 0x461 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7533D788 EQ PUSH2 0x386 JUMPI DUP1 PUSH4 0x7DBB533C EQ PUSH2 0x3A6 JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x3D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x30FD54A0 GT PUSH2 0x14E JUMPI DUP1 PUSH4 0x4F4BA0F4 GT PUSH2 0x128 JUMPI DUP1 PUSH4 0x4F4BA0F4 EQ PUSH2 0x2E5 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x312 JUMPI DUP1 PUSH4 0x5F6716F7 EQ PUSH2 0x34D JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x37A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x30FD54A0 EQ PUSH2 0x29D JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x2BD JUMPI DUP1 PUSH4 0x3FD9D7EF EQ PUSH2 0x2D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x21B4EAA1 GT PUSH2 0x17F JUMPI DUP1 PUSH4 0x21B4EAA1 EQ PUSH2 0x228 JUMPI DUP1 PUSH4 0x2488EEC8 EQ PUSH2 0x25D JUMPI DUP1 PUSH4 0x2DBBEC08 EQ PUSH2 0x27D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7E0DB17 EQ PUSH2 0x1A6 JUMPI DUP1 PUSH4 0xE32CB86 EQ PUSH2 0x1C8 JUMPI DUP1 PUSH4 0x1183A3B2 EQ PUSH2 0x1E8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6 PUSH2 0x1C1 CALLDATASIZE PUSH1 0x4 PUSH2 0x222E JUMP JUMPDEST PUSH2 0x578 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6 PUSH2 0x1E3 CALLDATASIZE PUSH1 0x4 PUSH2 0x226B JUMP JUMPDEST PUSH2 0x65C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0x203 CALLDATASIZE PUSH1 0x4 PUSH2 0x222E JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x234 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x248 PUSH2 0x243 CALLDATASIZE PUSH1 0x4 PUSH2 0x22DF JUMP JUMPDEST PUSH2 0x6FB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD PUSH2 0x21F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x269 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6 PUSH2 0x278 CALLDATASIZE PUSH1 0x4 PUSH2 0x2374 JUMP JUMPDEST PUSH2 0x7B2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x289 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6 PUSH2 0x298 CALLDATASIZE PUSH1 0x4 PUSH2 0x222E JUMP JUMPDEST PUSH2 0x855 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6 PUSH2 0x2B8 CALLDATASIZE PUSH1 0x4 PUSH2 0x239E JUMP JUMPDEST PUSH2 0x97B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6 PUSH2 0xD11 JUMP JUMPDEST PUSH2 0x1C6 PUSH2 0x2E0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2442 JUMP JUMPDEST PUSH2 0xD59 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0x300 CALLDATASIZE PUSH1 0x4 PUSH2 0x222E JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x21F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x359 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x36D PUSH2 0x368 CALLDATASIZE PUSH1 0x4 PUSH2 0x24D5 JUMP JUMPDEST PUSH2 0x11DD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21F SWAP2 SWAP1 PUSH2 0x2561 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x392 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x36D PUSH2 0x3A1 CALLDATASIZE PUSH1 0x4 PUSH2 0x222E JUMP JUMPDEST PUSH2 0x12B5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0x3C1 CALLDATASIZE PUSH1 0x4 PUSH2 0x2574 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3DF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6 PUSH2 0x134F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x21F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x440 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0x44F CALLDATASIZE PUSH1 0x4 PUSH2 0x222E JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6 PUSH2 0x47C CALLDATASIZE PUSH1 0x4 PUSH2 0x258D JUMP JUMPDEST PUSH2 0x1395 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH2 0x40F SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6 PUSH2 0x4C9 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E0 JUMP JUMPDEST PUSH2 0x15ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x40F PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x50E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x524 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0x533 CALLDATASIZE PUSH1 0x4 PUSH2 0x222E JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1C6 PUSH2 0x553 CALLDATASIZE PUSH1 0x4 PUSH2 0x264F JUMP JUMPDEST PUSH2 0x16B6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x564 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6 PUSH2 0x573 CALLDATASIZE PUSH1 0x4 PUSH2 0x226B JUMP JUMPDEST PUSH2 0x1AD8 JUMP JUMPDEST PUSH2 0x5B6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x16 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x73657453656E6456657273696F6E2875696E7431362900000000000000000000 DUP2 MSTORE POP PUSH2 0x1B75 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x7E0DB1700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH2 0xFFFF DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0x7E0DB17 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x641 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x655 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x664 PUSH2 0x1C5A JUMP JUMPDEST PUSH2 0x66D DUP2 PUSH2 0x1CC1 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND SWAP3 AND SWAP1 PUSH32 0x66FD58E82F7B31A2A5C30E0888F3093EFE4E111B00CD2B0C31FE014601293AA0 SWAP1 PUSH1 0x0 SWAP1 LOG3 PUSH1 0x2 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x40A7BB10 DUP10 ADDRESS DUP11 DUP11 DUP11 DUP11 DUP11 PUSH1 0x40 MLOAD DUP9 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x763 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2721 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x77F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x7A3 SWAP2 SWAP1 PUSH2 0x2784 JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP7 POP SWAP7 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x7F0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x7365744D61784461696C794C696D69742875696E7431362C75696E7432353629 DUP2 MSTORE POP PUSH2 0x1B75 JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SLOAD DUP3 MLOAD SWAP1 DUP2 MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0x4DD31065E259D5284E44D1F9265710DA72EAFCF78DC925E3881189FC3B71F693 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH2 0xFFFF SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST PUSH2 0x893 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1B DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x72656D6F76655472757374656452656D6F74652875696E743136290000000000 DUP2 MSTORE POP PUSH2 0x1B75 JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x8B1 SWAP1 PUSH2 0x27A8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 SUB PUSH2 0x92D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A2074727573746564 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x2072656D6F7465206E6F7420666F756E64000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x949 SWAP2 PUSH2 0x21C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFFFF DUP3 AND SWAP1 PUSH32 0x6D5075C81D4D9E75BEC6052F4E44F58F8A8CF1327544ADDBBF015FB06F83BD37 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH2 0x983 PUSH2 0x1C5A JUMP JUMPDEST PUSH2 0x98B PUSH2 0x1D0E JUMP JUMPDEST PUSH2 0x994 DUP9 PUSH2 0x1CC1 JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0xA0A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A20696E76616C6964 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x206E617469766520616D6F756E74000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x924 JUMP JUMPDEST PUSH1 0x0 DUP5 SWAP1 SUB PUSH2 0xA81 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A20656D7074792070 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x61796C6F61640000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x924 JUMP JUMPDEST PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 PUSH2 0xB03 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A206E6F2073746F72 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6564207061796C6F616400000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x924 JUMP JUMPDEST PUSH1 0x0 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xB20 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x27FB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP DUP2 DUP2 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 EQ PUSH2 0xBAD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A20696E76616C6964 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x20657865637574696F6E20706172616D73000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x924 JUMP JUMPDEST PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP12 AND SWAP1 PUSH32 0x22FE8E8EAD80AD0961D77107E806BA9BCF9CA3B175A9D446145646D39C36AB96 SWAP1 PUSH2 0xC08 SWAP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 DUP9 PUSH32 0x2DC7AC5D08FD553243FC66B5F15262E3F3013E27ABF660D7BB3FCCF133322F6E DUP4 PUSH1 0x40 MLOAD PUSH2 0xC42 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xCA4 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xCA9 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0xCFA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xB PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616C6C206661696C6564000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x924 JUMP JUMPDEST POP POP POP PUSH2 0xD07 PUSH1 0x1 PUSH1 0x0 SSTORE JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xD4F PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x756E706175736528290000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x1B75 JUMP JUMPDEST PUSH2 0xD57 PUSH2 0x1D67 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xD61 PUSH2 0x1DE4 JUMP JUMPDEST PUSH2 0xD82 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x31F2 PUSH1 0x23 SWAP2 CODECOPY PUSH2 0x1B75 JUMP JUMPDEST PUSH1 0x0 CALLVALUE GT PUSH2 0xDF8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A2076616C75652063 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616E6E6F74206265207A65726F00000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x924 JUMP JUMPDEST PUSH1 0x0 DUP5 SWAP1 SUB PUSH2 0xE6F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A20656D7074792070 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x61796C6F61640000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x924 JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0xE8D SWAP1 PUSH2 0x27A8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xEB9 SWAP1 PUSH2 0x27A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xF06 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xEDB JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xF06 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xEE9 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0xFAA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x42 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A2064657374696E61 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x74696F6E20636861696E206973206E6F742061207472757374656420736F7572 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6365000000000000000000000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0x924 JUMP JUMPDEST PUSH2 0xFEA DUP8 DUP8 DUP8 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1E4F SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD PUSH2 0xFFB SWAP1 PUSH2 0x286F JUMP JUMPDEST SWAP2 SWAP1 POP DUP2 SWAP1 SSTORE SWAP1 POP PUSH1 0x0 DUP8 DUP8 DUP4 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x101A SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x28A7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH32 0xC580310000000000000000000000000000000000000000000000000000000000 DUP3 MSTORE SWAP2 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 AND SWAP1 PUSH4 0xC5803100 SWAP1 CALLVALUE SWAP1 PUSH2 0x10AA SWAP1 DUP14 SWAP1 DUP9 SWAP1 DUP8 SWAP1 CALLER SWAP1 DUP13 SWAP1 DUP16 SWAP1 DUP16 SWAP1 PUSH1 0x4 ADD PUSH2 0x28CB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL SWAP4 POP POP POP POP DUP1 ISZERO PUSH2 0x10D5 JUMPI POP PUSH1 0x1 JUMPDEST PUSH2 0x1193 JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x1103 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1108 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP10 DUP3 DUP9 DUP9 CALLVALUE PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1122 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2933 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE DUP3 DUP3 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x8 SWAP1 SWAP3 MSTORE SWAP2 SWAP1 KECCAK256 SSTORE PUSH2 0xFFFF DUP12 AND SWAP1 DUP5 SWAP1 PUSH32 0x6D16111647E03D7F1CB2B71C02EAFE3355B97DFC17AF3DE1B94EF39C8A9EE4D9 SWAP1 PUSH2 0x1185 SWAP1 DUP7 SWAP1 DUP13 SWAP1 DUP13 SWAP1 CALLVALUE SWAP1 DUP10 SWAP1 PUSH2 0x2976 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP PUSH2 0x11D2 JUMP JUMPDEST DUP9 PUSH2 0xFFFF AND PUSH32 0x95A4FCF4EB9BE6F5CF2EB6830782870F8907BCCC513F765388A9CB2DAE2F3259 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x11C9 SWAP3 SWAP2 SWAP1 PUSH2 0x29C2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xF5ECBDBC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH2 0xFFFF DUP1 DUP6 AND PUSH1 0x4 DUP4 ADD MSTORE DUP4 AND PUSH1 0x24 DUP3 ADD MSTORE ADDRESS PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 SWAP1 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0xF5ECBDBC SWAP1 PUSH1 0x84 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1283 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x12AB SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2AB8 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x12CE SWAP1 PUSH2 0x27A8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x12FA SWAP1 PUSH2 0x27A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1347 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x131C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1347 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x132A JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0x138D PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x7 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x7061757365282900000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x1B75 JUMP JUMPDEST PUSH2 0xD57 PUSH2 0x1F3C JUMP JUMPDEST PUSH2 0x13B6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3215 PUSH1 0x25 SWAP2 CODECOPY PUSH2 0x1B75 JUMP JUMPDEST DUP3 PUSH2 0xFFFF AND PUSH1 0x0 SUB PUSH2 0x1430 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A20636861696E4964 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x206D757374206E6F74206265207A65726F000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x924 JUMP JUMPDEST PUSH2 0x1445 PUSH2 0x143D DUP3 DUP5 PUSH2 0x2AF5 JUMP JUMPDEST PUSH1 0x60 SHR PUSH2 0x1CC1 JUMP JUMPDEST PUSH1 0x14 DUP2 EQ PUSH2 0x14BB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A2072656D6F746520 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x61646472657373206D757374206265203230206279746573206C6F6E67000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x924 JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0x14D9 SWAP1 PUSH2 0x27A8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1505 SWAP1 PUSH2 0x27A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1552 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1527 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1552 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1535 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP3 DUP3 ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x156E SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2B3D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE KECCAK256 SWAP1 PUSH2 0x1599 SWAP1 DUP3 PUSH2 0x2BC3 JUMP JUMPDEST POP PUSH2 0xFFFF DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SWAP1 MLOAD PUSH32 0xE84E609C32D71C678382F7C65CC051810A41DCAF660E55C9F8FCFFEBA4621A32 SWAP2 PUSH2 0x15DF SWAP2 DUP6 SWAP2 SWAP1 PUSH2 0x2CBF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH2 0x160E PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x323A PUSH1 0x26 SWAP2 CODECOPY PUSH2 0x1B75 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xCBED8B9C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 AND SWAP1 PUSH4 0xCBED8B9C SWAP1 PUSH2 0x1688 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x2D78 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x11D2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH2 0x16BE PUSH2 0x1DE4 JUMP JUMPDEST PUSH2 0x16C6 PUSH2 0x1D0E JUMP JUMPDEST PUSH2 0x16E7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x38 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3260 PUSH1 0x38 SWAP2 CODECOPY PUSH2 0x1B75 JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0x1705 SWAP1 PUSH2 0x27A8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1731 SWAP1 PUSH2 0x27A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x177E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1753 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x177E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1761 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x1822 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x42 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A2064657374696E61 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x74696F6E20636861696E206973206E6F742061207472757374656420736F7572 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6365000000000000000000000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0x924 JUMP JUMPDEST PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 PUSH2 0x18A4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A206E6F2073746F72 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6564207061796C6F616400000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x924 JUMP JUMPDEST PUSH1 0x0 DUP8 SWAP1 SUB PUSH2 0x191B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A20656D7074792070 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x61796C6F61640000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x924 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1929 DUP9 DUP11 ADD DUP11 PUSH2 0x2DB1 JUMP JUMPDEST POP SWAP1 POP PUSH2 0x1936 DUP11 DUP3 PUSH2 0x1E4F JUMP JUMPDEST DUP2 DUP11 DUP11 DUP11 DUP11 DUP11 DUP10 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1952 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x27FB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 EQ PUSH2 0x19DB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A20696E76616C6964 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x20657865637574696F6E20706172616D73000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x924 JUMP JUMPDEST PUSH1 0x0 DUP12 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE MLOAD DUP12 SWAP1 PUSH32 0x2DC7AC5D08FD553243FC66B5F15262E3F3013E27ABF660D7BB3FCCF133322F6E SWAP1 PUSH2 0x1A20 SWAP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 AND PUSH4 0xC5803100 PUSH2 0x1A6E CALLVALUE DUP8 PUSH2 0x2E2E JUMP JUMPDEST DUP13 DUP7 DUP14 DUP14 CALLER DUP13 DUP16 DUP16 PUSH1 0x40 MLOAD DUP11 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A99 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2E47 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1AB2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1AC6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP PUSH2 0xD07 PUSH1 0x1 PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH2 0x1AE0 PUSH2 0x1C5A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x1B69 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x924 JUMP JUMPDEST PUSH2 0x1B72 DUP2 PUSH2 0x1FAB JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH32 0x18C5E8AB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x1BCD SWAP1 CALLER SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0x2EBF JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1BEA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1C0E SWAP2 SWAP1 PUSH2 0x2EEE JUMP JUMPDEST PUSH2 0x1B72 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6163636573732064656E69656400000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x924 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0xD57 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x924 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x1B72 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8579BEFE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH1 0x0 SLOAD SUB PUSH2 0x1D60 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5265656E7472616E637947756172643A207265656E7472616E742063616C6C00 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x924 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH2 0x1D6F PUSH2 0x2022 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xD57 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061757361626C653A2070617573656400000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x924 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x1E69 SWAP2 SWAP1 PUSH2 0x30BF JUMP JUMPDEST POP SWAP4 POP SWAP4 POP SWAP4 POP SWAP4 POP DUP3 MLOAD DUP5 MLOAD EQ DUP1 ISZERO PUSH2 0x1E84 JUMPI POP DUP2 MLOAD DUP5 MLOAD EQ JUMPDEST DUP1 ISZERO PUSH2 0x1E91 JUMPI POP DUP1 MLOAD DUP5 MLOAD EQ JUMPDEST PUSH2 0x1F29 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A2070726F706F7361 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C2066756E6374696F6E20696E666F726D6174696F6E206172697479206D6973 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6D61746368000000000000000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0x924 JUMP JUMPDEST PUSH2 0x1F34 DUP7 DUP6 MLOAD PUSH2 0x208C JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1F44 PUSH2 0x1DE4 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH21 0x10000000000000000000000000000000000000000 OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x1DBA CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND PUSH2 0xD57 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061757361626C653A206E6F7420706175736564000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x924 JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x4 DUP4 MSTORE DUP2 DUP5 KECCAK256 SLOAD PUSH1 0x3 DUP5 MSTORE DUP3 DUP6 KECCAK256 SLOAD PUSH1 0x6 SWAP1 SWAP5 MSTORE SWAP2 SWAP1 SWAP4 KECCAK256 SLOAD TIMESTAMP SWAP4 SWAP3 SWAP1 PUSH3 0x15180 PUSH2 0x20CF DUP6 DUP8 PUSH2 0x31DE JUMP JUMPDEST GT ISZERO PUSH2 0x20F3 JUMPI PUSH2 0xFFFF DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP6 SWAP3 POP PUSH2 0x2100 JUMP JUMPDEST PUSH2 0x20FD DUP7 DUP5 PUSH2 0x2E2E JUMP JUMPDEST SWAP3 POP JUMPDEST DUP2 DUP4 GT ISZERO PUSH2 0x2150 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4461696C79205472616E73616374696F6E204C696D6974204578636565646564 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x924 JUMP JUMPDEST DUP5 DUP2 SUB PUSH2 0x219F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4D756C7469706C65206272696467696E6720696E20612070726F706F73616C00 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x924 JUMP JUMPDEST POP POP PUSH2 0xFFFF SWAP1 SWAP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP7 SWAP1 SWAP7 SSTORE PUSH1 0x6 SWAP1 MSTORE SWAP4 SWAP1 SWAP4 KECCAK256 SSTORE POP POP JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x21D5 SWAP1 PUSH2 0x27A8 JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x21E5 JUMPI POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1B72 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2213 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x21FF JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x2229 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2240 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x12AE DUP3 PUSH2 0x2217 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x1B72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x227D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x12AE DUP2 PUSH2 0x2249 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x229A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x22B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x22CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1B72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x22F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2301 DUP8 PUSH2 0x2217 JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x231E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x232A DUP11 DUP4 DUP12 ADD PUSH2 0x2288 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP PUSH1 0x40 DUP10 ADD CALLDATALOAD SWAP2 POP PUSH2 0x233F DUP3 PUSH2 0x22D1 JUMP JUMPDEST SWAP1 SWAP4 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0x2355 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2362 DUP10 DUP3 DUP11 ADD PUSH2 0x2288 JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 POP SWAP3 SWAP6 SWAP4 SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2387 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2390 DUP4 PUSH2 0x2217 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x23BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP9 CALLDATALOAD PUSH2 0x23C5 DUP2 PUSH2 0x2249 JUMP JUMPDEST SWAP8 POP PUSH1 0x20 DUP10 ADD CALLDATALOAD SWAP7 POP PUSH2 0x23DA PUSH1 0x40 DUP11 ADD PUSH2 0x2217 JUMP JUMPDEST SWAP6 POP PUSH1 0x60 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x23F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2403 DUP13 DUP4 DUP14 ADD PUSH2 0x2288 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP PUSH1 0x80 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x241C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2429 DUP12 DUP3 DUP13 ADD PUSH2 0x2288 JUMP JUMPDEST SWAP10 SWAP13 SWAP9 SWAP12 POP SWAP7 SWAP10 SWAP6 SWAP9 SWAP5 SWAP8 SWAP5 SWAP6 PUSH1 0xA0 ADD CALLDATALOAD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x245B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2464 DUP8 PUSH2 0x2217 JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2481 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x248D DUP11 DUP4 DUP12 ADD PUSH2 0x2288 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP PUSH1 0x40 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x24A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24B3 DUP10 DUP3 DUP11 ADD PUSH2 0x2288 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP POP PUSH1 0x60 DUP8 ADD CALLDATALOAD PUSH2 0x24C7 DUP2 PUSH2 0x2249 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x24EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24F3 DUP5 PUSH2 0x2217 JUMP JUMPDEST SWAP3 POP PUSH2 0x2501 PUSH1 0x20 DUP6 ADD PUSH2 0x2217 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x252C JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2514 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x254D DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x2511 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x12AE PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2535 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2586 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x25A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x25AB DUP5 PUSH2 0x2217 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x25C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x25D3 DUP7 DUP3 DUP8 ADD PUSH2 0x2288 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x25F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2601 DUP7 PUSH2 0x2217 JUMP JUMPDEST SWAP5 POP PUSH2 0x260F PUSH1 0x20 DUP8 ADD PUSH2 0x2217 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2632 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x263E DUP9 DUP3 DUP10 ADD PUSH2 0x2288 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x266B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP9 CALLDATALOAD SWAP8 POP PUSH2 0x267B PUSH1 0x20 DUP11 ADD PUSH2 0x2217 JUMP JUMPDEST SWAP7 POP PUSH1 0x40 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2698 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x26A4 DUP13 DUP4 DUP14 ADD PUSH2 0x2288 JUMP JUMPDEST SWAP1 SWAP9 POP SWAP7 POP PUSH1 0x60 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x26BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26CA DUP12 DUP3 DUP13 ADD PUSH2 0x2288 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP POP PUSH1 0x80 DUP10 ADD CALLDATALOAD PUSH2 0x26DE DUP2 PUSH2 0x2249 JUMP JUMPDEST DUP1 SWAP3 POP POP PUSH1 0xA0 DUP10 ADD CALLDATALOAD SWAP1 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 SWAP1 SWAP4 SWAP7 POP JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 ADD ADD MSTORE PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP5 ADD AND DUP5 ADD ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP9 AND DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x275B PUSH1 0xA0 DUP4 ADD DUP8 DUP10 PUSH2 0x26F6 JUMP JUMPDEST DUP6 ISZERO ISZERO PUSH1 0x60 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x2776 DUP2 DUP6 DUP8 PUSH2 0x26F6 JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2797 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 SWAP1 SWAP2 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x27BC JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x27F5 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2819 PUSH1 0x80 DUP4 ADD DUP8 DUP10 PUSH2 0x26F6 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x282C DUP2 DUP7 DUP9 PUSH2 0x26F6 JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x60 DUP4 ADD MSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x28A0 JUMPI PUSH2 0x28A0 PUSH2 0x2840 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0x0 PUSH2 0x28BB PUSH1 0x40 DUP4 ADD DUP6 DUP8 PUSH2 0x26F6 JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x20 DUP4 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP9 AND DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x28E8 PUSH1 0xC0 DUP4 ADD DUP10 PUSH2 0x2535 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x28FA DUP2 DUP10 PUSH2 0x2535 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP9 DUP2 AND PUSH1 0x60 DUP7 ADD MSTORE DUP8 AND PUSH1 0x80 DUP6 ADD MSTORE DUP4 DUP2 SUB PUSH1 0xA0 DUP6 ADD MSTORE SWAP1 POP PUSH2 0x2776 DUP2 DUP6 DUP8 PUSH2 0x26F6 JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2950 PUSH1 0x80 DUP4 ADD DUP8 PUSH2 0x2535 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x2963 DUP2 DUP7 DUP9 PUSH2 0x26F6 JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x60 DUP4 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP2 MSTORE PUSH1 0x0 PUSH2 0x2989 PUSH1 0x80 DUP4 ADD DUP9 PUSH2 0x2535 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x299C DUP2 DUP8 DUP10 PUSH2 0x26F6 JUMP JUMPDEST SWAP1 POP DUP5 PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x29B6 DUP2 DUP6 PUSH2 0x2535 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x12AB PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x2535 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2A33 JUMPI PUSH2 0x2A33 PUSH2 0x29DB JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2A55 JUMPI PUSH2 0x2A55 PUSH2 0x29DB JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A76 PUSH2 0x2A71 DUP5 PUSH2 0x2A3B JUMP JUMPDEST PUSH2 0x2A0A JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE DUP4 DUP4 DUP4 ADD GT ISZERO PUSH2 0x2A8A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x12AE DUP4 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2511 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2AA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x12AE DUP4 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH2 0x2A63 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2ACA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2AE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2AED DUP5 DUP3 DUP6 ADD PUSH2 0x2A98 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 DUP2 CALLDATALOAD DUP2 DUP2 AND SWAP2 PUSH1 0x14 DUP6 LT ISZERO PUSH2 0x2B35 JUMPI DUP1 DUP2 DUP7 PUSH1 0x14 SUB PUSH1 0x3 SHL SHL DUP4 AND AND SWAP3 POP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP5 DUP3 CALLDATACOPY PUSH1 0x60 SWAP2 SWAP1 SWAP2 SHL PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 AND SWAP2 ADD SWAP1 DUP2 MSTORE PUSH1 0x14 ADD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x2BBE JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x2B9F JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1F34 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x2BAB JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2BDD JUMPI PUSH2 0x2BDD PUSH2 0x29DB JUMP JUMPDEST PUSH2 0x2BF1 DUP2 PUSH2 0x2BEB DUP5 SLOAD PUSH2 0x27A8 JUMP JUMPDEST DUP5 PUSH2 0x2B76 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x2C44 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x2C0E JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x1F34 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x2C73 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x2C54 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x2CAF JUMPI DUP8 DUP6 ADD MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0x0 PUSH2 0x2CD2 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x2535 JUMP JUMPDEST PUSH1 0x20 DUP4 DUP3 SUB DUP2 DUP6 ADD MSTORE PUSH1 0x0 DUP6 SLOAD PUSH2 0x2CE8 DUP2 PUSH2 0x27A8 JUMP JUMPDEST DUP1 DUP6 MSTORE PUSH1 0x1 DUP3 DUP2 AND DUP1 ISZERO PUSH2 0x2D03 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x2D3B JUMPI PUSH2 0x2D69 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 DUP5 AND DUP7 DUP9 ADD MSTORE DUP6 DUP4 ISZERO ISZERO PUSH1 0x5 SHL DUP9 ADD ADD SWAP5 POP PUSH2 0x2D69 JUMP JUMPDEST DUP10 PUSH1 0x0 MSTORE DUP6 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x2D61 JUMPI DUP2 SLOAD DUP10 DUP3 ADD DUP10 ADD MSTORE SWAP1 DUP4 ADD SWAP1 DUP8 ADD PUSH2 0x2D46 JUMP JUMPDEST DUP9 ADD DUP8 ADD SWAP6 POP POP JUMPDEST POP SWAP3 SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP1 DUP9 AND DUP4 MSTORE DUP1 DUP8 AND PUSH1 0x20 DUP5 ADD MSTORE POP DUP5 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x2DA6 PUSH1 0x80 DUP4 ADD DUP5 DUP7 PUSH2 0x26F6 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2DC4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2DDB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x2DEC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x2DFA PUSH2 0x2A71 DUP3 PUSH2 0x2A3B JUMP JUMPDEST DUP2 DUP2 MSTORE DUP7 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x2E0F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 SWAP3 DUP3 ADD DUP4 ADD MSTORE SWAP7 SWAP5 ADD CALLDATALOAD SWAP5 POP POP POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x2E41 JUMPI PUSH2 0x2E41 PUSH2 0x2840 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP10 AND DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2E64 PUSH1 0xC0 DUP4 ADD DUP11 PUSH2 0x2535 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x2E77 DUP2 DUP10 DUP12 PUSH2 0x26F6 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP9 DUP2 AND PUSH1 0x60 DUP7 ADD MSTORE DUP8 AND PUSH1 0x80 DUP6 ADD MSTORE DUP4 DUP2 SUB PUSH1 0xA0 DUP6 ADD MSTORE SWAP1 POP PUSH2 0x2EB0 DUP2 DUP6 DUP8 PUSH2 0x26F6 JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x12AB PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x2535 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2F00 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x12AE DUP2 PUSH2 0x22D1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2F25 JUMPI PUSH2 0x2F25 PUSH2 0x29DB JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2F40 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 PUSH2 0x2F50 PUSH2 0x2A71 DUP4 PUSH2 0x2F0B JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP5 PUSH1 0x5 SHL DUP8 ADD ADD SWAP4 POP DUP7 DUP5 GT ISZERO PUSH2 0x2F72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x2F8E JUMPI DUP1 MLOAD DUP4 MSTORE SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x2F77 JUMP JUMPDEST POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2FAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 PUSH2 0x2FBA PUSH2 0x2A71 DUP4 PUSH2 0x2F0B JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 SWAP1 SWAP3 SHL DUP5 ADD DUP2 ADD SWAP2 DUP2 DUP2 ADD SWAP1 DUP7 DUP5 GT ISZERO PUSH2 0x2FD9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x2F8E JUMPI DUP1 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2FFD JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST DUP8 ADD PUSH1 0x3F DUP2 ADD DUP10 SGT PUSH2 0x300F JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x3020 DUP10 DUP7 DUP4 ADD MLOAD PUSH1 0x40 DUP5 ADD PUSH2 0x2A63 JUMP JUMPDEST DUP5 MSTORE POP SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x2FDD JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x303F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 PUSH2 0x304F PUSH2 0x2A71 DUP4 PUSH2 0x2F0B JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 SWAP1 SWAP3 SHL DUP5 ADD DUP2 ADD SWAP2 DUP2 DUP2 ADD SWAP1 DUP7 DUP5 GT ISZERO PUSH2 0x306E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x2F8E JUMPI DUP1 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3092 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x30A0 DUP10 DUP7 DUP4 DUP12 ADD ADD PUSH2 0x2A98 JUMP JUMPDEST DUP5 MSTORE POP SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x3072 JUMP JUMPDEST DUP1 MLOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x2229 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x30D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x30EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP9 ADD SWAP2 POP DUP9 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3103 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 PUSH2 0x3113 PUSH2 0x2A71 DUP4 PUSH2 0x2F0B JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 SWAP1 SWAP3 SHL DUP5 ADD DUP2 ADD SWAP2 DUP2 DUP2 ADD SWAP1 DUP13 DUP5 GT ISZERO PUSH2 0x3132 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP5 DUP3 ADD SWAP5 JUMPDEST DUP4 DUP7 LT ISZERO PUSH2 0x3159 JUMPI DUP6 MLOAD PUSH2 0x314A DUP2 PUSH2 0x2249 JUMP JUMPDEST DUP3 MSTORE SWAP5 DUP3 ADD SWAP5 SWAP1 DUP3 ADD SWAP1 PUSH2 0x3137 JUMP JUMPDEST SWAP2 DUP12 ADD MLOAD SWAP2 SWAP10 POP SWAP1 SWAP4 POP POP POP DUP1 DUP3 GT ISZERO PUSH2 0x3172 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x317E DUP10 DUP4 DUP11 ADD PUSH2 0x2F2F JUMP JUMPDEST SWAP6 POP PUSH1 0x40 DUP9 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x3194 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x31A0 DUP10 DUP4 DUP11 ADD PUSH2 0x2F99 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x31B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31C3 DUP9 DUP3 DUP10 ADD PUSH2 0x302E JUMP JUMPDEST SWAP3 POP POP PUSH2 0x31D2 PUSH1 0x80 DUP8 ADD PUSH2 0x30AE JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x2E41 JUMPI PUSH2 0x2E41 PUSH2 0x2840 JUMP INVALID PUSH6 0x786563757465 0x28 PUSH22 0x696E7431362C62797465732C62797465732C61646472 PUSH6 0x737329736574 SLOAD PUSH19 0x757374656452656D6F74654164647265737328 PUSH22 0x696E7431362C627974657329736574436F6E66696728 PUSH22 0x696E7431362C75696E7431362C75696E743235362C62 PUSH26 0x746573297265747279457865637574652875696E743235362C75 PUSH10 0x6E7431362C6279746573 0x2C PUSH3 0x797465 PUSH20 0x2C616464726573732C75696E7432353629A26469 PUSH17 0x667358221220CDDFA01F72BF4DF6426198 LOG3 0xEC DUP3 0xD6 0xB0 0xD9 0xEE JUMPI 0x2A SWAP15 PUSH2 0xF22B CALLVALUE 0xC5 0xBA SWAP12 0xB4 DUP10 0xF8 PUSH6 0x64736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"927:14147:53:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13740:153;;;;;;;;;;-1:-1:-1;13740:153:53;;;;;:::i;:::-;;:::i;:::-;;3463:280:50;;;;;;;;;;-1:-1:-1;3463:280:50;;;;;:::i;:::-;;:::i;1136:65::-;;;;;;;;;;-1:-1:-1;1136:65:50;;;;;:::i;:::-;;;;;;;;;;;;;;;;;924:25:97;;;912:2;897:18;1136:65:50;;;;;;;;3906:308:53;;;;;;;;;;-1:-1:-1;3906:308:53;;;;;:::i;:::-;;:::i;:::-;;;;2533:25:97;;;2589:2;2574:18;;2567:34;;;;2506:18;3906:308:53;2359:248:97;2438:269:50;;;;;;;;;;-1:-1:-1;2438:269:50;;;;;:::i;:::-;;:::i;4508:345:53:-;;;;;;;;;;-1:-1:-1;4508:345:53;;;;;:::i;:::-;;:::i;10543:1083::-;;;;;;;;;;-1:-1:-1;10543:1083:53;;;;;:::i;:::-;;:::i;3069:92:50:-;;;;;;;;;;;;;:::i;5876:1514:53:-;;;;;;:::i;:::-;;:::i;963:56:50:-;;;;;;;;;;-1:-1:-1;963:56:50;;;;;:::i;:::-;;;;;;;;;;;;;;1615:84:33;;;;;;;;;;-1:-1:-1;1685:7:33;;;;;;;1615:84;;5032:14:97;;5025:22;5007:41;;4995:2;4980:18;1615:84:33;4867:187:97;14203:204:53;;;;;;;;;;-1:-1:-1;14203:204:53;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;3843:47:50:-;;;;;;;;;1577:51:53;;;;;;;;;;-1:-1:-1;1577:51:53;;;;;:::i;:::-;;:::i;1234:56::-;;;;;;;;;;-1:-1:-1;1234:56:53;;;;;:::i;:::-;;;;;;;;;;;;;;2845:86:50;;;;;;;;;;;;;:::i;1201:85:32:-;;;;;;;;;;-1:-1:-1;1273:6:32;;;;1201:85;;;6742:42:97;6730:55;;;6712:74;;6700:2;6685:18;1201:85:32;6566:226:97;1307:64:50;;;;;;;;;;-1:-1:-1;1307:64:50;;;;;:::i;:::-;;;;;;;;;;;;;;12038:736:53;;;;;;;;;;-1:-1:-1;12038:736:53;;;;;:::i;:::-;;:::i;836:35:50:-;;;;;;;;;;-1:-1:-1;836:35:50;;;;;;;;13257:253:53;;;;;;;;;;-1:-1:-1;13257:253:53;;;;;:::i;:::-;;:::i;1385:47::-;;;;;;;;;;;;;;;1088:28;;;;;;;;;;;;;;;;1481:68:50;;;;;;;;;;-1:-1:-1;1481:68:50;;;;;:::i;:::-;;;;;;;;;;;;;;8321:1410:53;;;;;;:::i;:::-;;:::i;2074:198:32:-;;;;;;;;;;-1:-1:-1;2074:198:32;;;;;:::i;:::-;;:::i;13740:153:53:-;13800:40;;;;;;;;;;;;;;;;;;:14;:40::i;:::-;13850:36;;;;;9410:6:97;9398:19;;13850:36:53;;;9380:38:97;13850:11:53;:26;;;;;9353:18:97;;13850:36:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13740:153;:::o;3463:280:50:-;1094:13:32;:11;:13::i;:::-;3556:43:50::1;3577:21;3556:20;:43::i;:::-;3638:20;::::0;3614:68:::1;::::0;::::1;::::0;;::::1;::::0;3638:20:::1;::::0;3614:68:::1;::::0;3638:20:::1;::::0;3614:68:::1;3692:20;:44:::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;3463:280::o;3906:308:53:-;4082:7;4091;4117:11;:24;;;4142:14;4166:4;4173:8;;4183:7;4192:14;;4117:90;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4110:97;;;;3906:308;;;;;;;;;:::o;2438:269:50:-;2516:50;;;;;;;;;;;;;;;;;;:14;:50::i;:::-;2581:68;;;2608:32;;;;:22;:32;;;;;;;;;;2581:68;;2533:25:97;;;2574:18;;;2567:34;;;2581:68:50;;2506:18:97;2581:68:50;;;;;;;2659:32;;;;;;;;:22;:32;;;;;:41;2438:269::o;4508:345:53:-;4579:45;;;;;;;;;;;;;;;;;;:14;:45::i;:::-;4642:35;;;;;;;:19;:35;;;;;:42;;;;;:::i;:::-;;;4688:1;4642:47;4634:109;;;;-1:-1:-1;;;4634:109:53;;11375:2:97;4634:109:53;;;11357:21:97;11414:2;11394:18;;;11387:30;11453:34;11433:18;;;11426:62;11524:19;11504:18;;;11497:47;11561:19;;4634:109:53;;;;;;;;;4760:35;;;;;;;:19;:35;;;;;4753:42;;;:::i;:::-;4810:36;;;;;;;;;;;4508:345;:::o;10543:1083::-;1094:13:32;:11;:13::i;:::-;2261:21:34::1;:19;:21::i;:::-;10795:25:53::2;10816:3;10795:20;:25::i;:::-;10855:1;10838:14;:18;10830:77;;;::::0;-1:-1:-1;;;10830:77:53;;11793:2:97;10830:77:53::2;::::0;::::2;11775:21:97::0;11832:2;11812:18;;;11805:30;11871:34;11851:18;;;11844:62;11942:16;11922:18;;;11915:44;11976:19;;10830:77:53::2;11591:410:97::0;10830:77:53::2;10944:1;10925:20:::0;;;10917:71:::2;;;::::0;-1:-1:-1;;;10917:71:53;;12208:2:97;10917:71:53::2;::::0;::::2;12190:21:97::0;12247:2;12227:18;;;12220:30;12286:34;12266:18;;;12259:62;12357:8;12337:18;;;12330:36;12383:19;;10917:71:53::2;12006:402:97::0;10917:71:53::2;10999:12;11014:27:::0;;;:21:::2;:27;::::0;;;;;;11051:73:::2;;;::::0;-1:-1:-1;;;11051:73:53;;12615:2:97;11051:73:53::2;::::0;::::2;12597:21:97::0;12654:2;12634:18;;;12627:30;12693:34;12673:18;;;12666:62;12764:12;12744:18;;;12737:40;12794:19;;11051:73:53::2;12413:406:97::0;11051:73:53::2;11135:22;11171:14;11187:8;;11197:14;;11213;11160:68;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;11135:93;;11270:4;11256:9;11246:20;;;;;;:28;11238:90;;;::::0;-1:-1:-1;;;11238:90:53;;13617:2:97;11238:90:53::2;::::0;::::2;13599:21:97::0;13656:2;13636:18;;;13629:30;13695:34;13675:18;;;13668:62;13766:19;13746:18;;;13739:47;13803:19;;11238:90:53::2;13415:413:97::0;11238:90:53::2;11346:27;::::0;;;:21:::2;:27;::::0;;;;;11339:34;;;;11389:37;::::2;::::0;::::2;::::0;::::2;::::0;::::2;::::0;11411:14;924:25:97;;912:2;897:18;;778:177;11389:37:53::2;;;;;;;;11454:4;11441:24;11460:4;11441:24;;;;924:25:97::0;;912:2;897:18;;778:177;11441:24:53::2;;;;;;;;11529:9;11544:3;:8;;11561:14;11544:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11528:53;;;11599:4;11591:28;;;::::0;-1:-1:-1;;;11591:28:53;;14245:2:97;11591:28:53::2;::::0;::::2;14227:21:97::0;14284:2;14264:18;;;14257:30;14323:13;14303:18;;;14296:41;14354:18;;11591:28:53::2;14043:335:97::0;11591:28:53::2;10785:841;;;2303:20:34::1;1716:1:::0;2809:7;:22;2629:209;2303:20:::1;10543:1083:53::0;;;;;;;;:::o;3069:92:50:-;3107:27;;;;;;;;;;;;;;;;;;:14;:27::i;:::-;3144:10;:8;:10::i;:::-;3069:92::o;5876:1514:53:-;1239:19:33;:17;:19::i;:::-;6079:53:53::1;;;;;;;;;;;;;;;;;;:14;:53::i;:::-;6296:1;6284:9;:13;6276:71;;;::::0;-1:-1:-1;;;6276:71:53;;14585:2:97;6276:71:53::1;::::0;::::1;14567:21:97::0;14624:2;14604:18;;;14597:30;14663:34;14643:18;;;14636:62;14734:15;14714:18;;;14707:43;14767:19;;6276:71:53::1;14383:409:97::0;6276:71:53::1;6384:1;6365:20:::0;;;6357:71:::1;;;::::0;-1:-1:-1;;;6357:71:53;;12208:2:97;6357:71:53::1;::::0;::::1;12190:21:97::0;12247:2;12227:18;;;12220:30;12286:34;12266:18;;;12259:62;12357:8;12337:18;;;12330:36;12383:19;;6357:71:53::1;12006:402:97::0;6357:71:53::1;6468:35;::::0;::::1;6439:26;6468:35:::0;;;:19:::1;:35;::::0;;;;6439:64;;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6521:13;:20;6545:1;6521:25:::0;6513:104:::1;;;::::0;-1:-1:-1;;;6513:104:53;;14999:2:97;6513:104:53::1;::::0;::::1;14981:21:97::0;15038:2;15018:18;;;15011:30;15077:34;15057:18;;;15050:62;15148:34;15128:18;;;15121:62;15220:4;15199:19;;;15192:33;15242:19;;6513:104:53::1;14797:470:97::0;6513:104:53::1;6627:43;6645:14;6661:8;;6627:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;6627:17:53::1;::::0;-1:-1:-1;;;6627:43:53:i:1;:::-;6680:12;6697:13;;6695:15;;;;;:::i;:::-;;;;;;;6680:30;;6720:20;6754:8;;6764:4;6743:26;;;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;6743:26:53;;::::1;::::0;;;;;;;6796:243;;;6743:26;-1:-1:-1;6796:16:53::1;:11;:16;::::0;::::1;::::0;6821:9:::1;::::0;6796:243:::1;::::0;6850:14;;6882:13;;6743:26;;6946:10:::1;::::0;6975:18;;7011:14;;;;6796:243:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;6780:604;;;::::0;;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7224:14;7240:7;7249:14;;7265:9;7213:62;;;;;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;7213:62:53;;::::1;::::0;;;;;;7203:73;;7213:62:::1;7203:73:::0;;::::1;::::0;7173:27:::1;::::0;;;:21:::1;:27:::0;;;;;;:103;7295:78:::1;::::0;::::1;::::0;7195:4;;7295:78:::1;::::0;::::1;::::0;7330:7;;7339:14;;;;7355:9:::1;::::0;7366:6;;7295:78:::1;:::i;:::-;;;;;;;;7131:253;6780:604;;;7089:14;7067:52;;;7105:4;7111:7;7067:52;;;;;;;:::i;:::-;;;;;;;;6780:604;6069:1321;;;5876:1514:::0;;;;;;:::o;14203:204::-;14331:69;;;;;18609:6:97;18642:15;;;14331:69:53;;;18624:34:97;18694:15;;18674:18;;;18667:43;14381:4:53;18726:18:97;;;18719:83;18818:18;;;18811:34;;;14300:12:53;;14331:11;:21;;;;;18571:19:97;;14331:69:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14331:69:53;;;;;;;;;;;;:::i;:::-;14324:76;;14203:204;;;;;;:::o;1577:51::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2845:86:50:-;2881:25;;;;;;;;;;;;;;;;;;:14;:25::i;:::-;2916:8;:6;:8::i;12038:736:53:-;12147:55;;;;;;;;;;;;;;;;;;:14;:55::i;:::-;12220:14;:19;;12238:1;12220:19;12212:81;;;;-1:-1:-1;;;12212:81:53;;20741:2:97;12212:81:53;;;20723:21:97;20780:2;20760:18;;;20753:30;20819:34;20799:18;;;20792:62;20890:19;20870:18;;;20863:47;20927:19;;12212:81:53;20539:413:97;12212:81:53;12303:66;12340:26;12348:17;;12340:26;:::i;:::-;12332:35;;12303:20;:66::i;:::-;12415:2;12387:30;;12379:104;;;;-1:-1:-1;;;12379:104:53;;21536:2:97;12379:104:53;;;21518:21:97;21575:2;21555:18;;;21548:30;21614:34;21594:18;;;21587:62;21685:31;21665:18;;;21658:59;21734:19;;12379:104:53;21334:425:97;12379:104:53;12525:35;;;12493:29;12525:35;;;:19;:35;;;;;12493:67;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12625:17;;12652:4;12608:50;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;12608:50:53;;;;;;;;;12570:35;;;;;;;:19;12608:50;12570:35;;;:88;;:35;:88;:::i;:::-;-1:-1:-1;12673:94:53;;;12731:35;;;;:19;:35;;;;;;;12673:94;;;;;;12713:16;;12731:35;12673:94;:::i;:::-;;;;;;;;12137:637;12038:736;;;:::o;13257:253::-;13374:56;;;;;;;;;;;;;;;;;;:14;:56::i;:::-;13440:63;;;;;:21;:11;:21;;;;:63;;13462:8;;13472;;13482:11;;13495:7;;;;13440:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8321:1410;1239:19:33;:17;:19::i;:::-;2261:21:34::1;:19;:21::i;:::-;8596:74:53::2;;;;;;;;;;;;;;;;;;:14;:74::i;:::-;8709:35;::::0;::::2;8680:26;8709:35:::0;;;:19:::2;:35;::::0;;;;8680:64;;::::2;::::0;::::2;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8762:13;:20;8786:1;8762:25:::0;8754:104:::2;;;::::0;-1:-1:-1;;;8754:104:53;;14999:2:97;8754:104:53::2;::::0;::::2;14981:21:97::0;15038:2;15018:18;;;15011:30;15077:34;15057:18;;;15050:62;15148:34;15128:18;;;15121:62;15220:4;15199:19;;;15192:33;15242:19;;8754:104:53::2;14797:470:97::0;8754:104:53::2;8868:12;8883:27:::0;;;:21:::2;:27;::::0;;;;;;8920:73:::2;;;::::0;-1:-1:-1;;;8920:73:53;;12615:2:97;8920:73:53::2;::::0;::::2;12597:21:97::0;12654:2;12634:18;;;12627:30;12693:34;12673:18;;;12666:62;12764:12;12744:18;;;12737:40;12794:19;;8920:73:53::2;12413:406:97::0;8920:73:53::2;9030:1;9011:20:::0;;;9003:71:::2;;;::::0;-1:-1:-1;;;9003:71:53;;12208:2:97;9003:71:53::2;::::0;::::2;12190:21:97::0;12247:2;12227:18;;;12220:30;12286:34;12266:18;;;12259:62;12357:8;12337:18;;;12330:36;12383:19;;9003:71:53::2;12006:402:97::0;9003:71:53::2;9085:20;9111:38;::::0;;::::2;9122:8:::0;9111:38:::2;:::i;:::-;9084:65;;;9159:42;9177:14;9193:7;9159:17;:42::i;:::-;9316:4;9254:14;9270:8;;9280:14;;9296;9243:68;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;9233:79;;;;;;:87;9212:183;;;::::0;-1:-1:-1;;;9212:183:53;;13617:2:97;9212:183:53::2;::::0;::::2;13599:21:97::0;13656:2;13636:18;;;13629:30;13695:34;13675:18;;;13668:62;13766:19;13746:18;;;13739:47;13803:19;;9212:183:53::2;13415:413:97::0;9212:183:53::2;9413:27;::::0;;;:21:::2;:27;::::0;;;;;9406:34;;;;9456:24;9435:4;;9456:24:::2;::::0;::::2;::::0;9475:4;924:25:97;;912:2;897:18;;778:177;9456:24:53::2;;;;;;;;9491:16;:11;:16;;9516:26;9533:9;9516:14:::0;:26:::2;:::i;:::-;9558:14;9586:13;9613:8;;9643:10;9668:18;9700:14;;9491:233;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;8586:1145;;;2303:20:34::1;1716:1:::0;2809:7;:22;2629:209;2074:198:32;1094:13;:11;:13::i;:::-;2162:22:::1;::::0;::::1;2154:73;;;::::0;-1:-1:-1;;;2154:73:32;;28190:2:97;2154:73:32::1;::::0;::::1;28172:21:97::0;28229:2;28209:18;;;28202:30;28268:34;28248:18;;;28241:62;28339:8;28319:18;;;28312:36;28365:19;;2154:73:32::1;27988:402:97::0;2154:73:32::1;2237:28;2256:8;2237:18;:28::i;:::-;2074:198:::0;:::o;5785:230:50:-;5906:20;;5882:87;;;;;5906:20;;;;;5882:61;;:87;;5944:10;;5956:12;;5882:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5861:147;;;;-1:-1:-1;;;5861:147:50;;29191:2:97;5861:147:50;;;29173:21:97;29230:2;29210:18;;;29203:30;29269:15;29249:18;;;29242:43;29302:18;;5861:147:50;28989:337:97;1359:130:32;1273:6;;1422:23;1273:6;734:10:39;1422:23:32;1414:68;;;;-1:-1:-1;;;1414:68:32;;29533:2:97;1414:68:32;;;29515:21:97;;;29552:18;;;29545:30;29611:34;29591:18;;;29584:62;29663:18;;1414:68:32;29331:356:97;485:136:47;548:22;;;544:75;;589:23;;;;;;;;;;;;;;2336:287:34;1759:1;2468:7;;:19;2460:63;;;;-1:-1:-1;;;2460:63:34;;29894:2:97;2460:63:34;;;29876:21:97;29933:2;29913:18;;;29906:30;29972:33;29952:18;;;29945:61;30023:18;;2460:63:34;29692:355:97;2460:63:34;1759:1;2598:7;:18;2336:287::o;2433:117:33:-;1486:16;:14;:16::i;:::-;2491:7:::1;:15:::0;;;::::1;::::0;;2521:22:::1;734:10:39::0;2530:12:33::1;2521:22;::::0;6742:42:97;6730:55;;;6712:74;;6700:2;6685:18;2521:22:33::1;;;;;;;2433:117::o:0;1767:106::-;1685:7;;;;;;;1836:9;1828:38;;;;-1:-1:-1;;;1828:38:33;;30254:2:97;1828:38:33;;;30236:21:97;30293:2;30273:18;;;30266:30;30332:18;30312;;;30305:46;30368:18;;1828:38:33;30052:340:97;14413:659:53;14519:24;14557:23;14594:26;14634:24;14684:8;14673:67;;;;;;;;;;;;:::i;:::-;14505:235;;;;;;;;;14789:6;:13;14771:7;:14;:31;:86;;;;;14840:10;:17;14822:7;:14;:35;14771:86;:140;;;;;14895:9;:16;14877:7;:14;:34;14771:140;14750:256;;;;-1:-1:-1;;;14750:256:53;;35388:2:97;14750:256:53;;;35370:21:97;35427:2;35407:18;;;35400:30;35466:34;35446:18;;;35439:62;35537:34;35517:18;;;35510:62;35609:7;35588:19;;;35581:36;35634:19;;14750:256:53;35186:473:97;14750:256:53;15016:49;15034:14;15050:7;:14;15016:17;:49::i;:::-;14495:577;;;;14413:659;;:::o;2186:115:33:-;1239:19;:17;:19::i;:::-;2255:4:::1;2245:14:::0;;;::::1;::::0;::::1;::::0;;2274:20:::1;2281:12;734:10:39::0;;655:96;2426:187:32;2518:6;;;;2534:17;;;;;;;;;;;2566:40;;2518:6;;;2534:17;2518:6;;2566:40;;2499:16;;2566:40;2489:124;2426:187;:::o;1945:106:33:-;1685:7;;;;;;;2003:41;;;;-1:-1:-1;;;2003:41:33;;35866:2:97;2003:41:33;;;35848:21:97;35905:2;35885:18;;;35878:30;35944:22;35924:18;;;35917:50;35984:18;;2003:41:33;35664:344:97;4064:1540:50;4292:43;;;4206:29;4292:43;;;:30;:43;;;;;;;;;4376:31;:44;;;;;;4454:22;:35;;;;;;4535:34;:47;;;;;;;;4238:15;;4292:43;4454:35;4723:6;4678:42;4292:43;4238:15;4678:42;:::i;:::-;:51;4674:267;;;4795:43;;;;;;;:30;:43;;;;;:67;;;4768:13;;-1:-1:-1;4674:267:50;;;4893:37;4917:13;4893:37;;:::i;:::-;;;4674:267;5039:13;5015:20;:37;;5007:82;;;;-1:-1:-1;;;5007:82:50;;36348:2:97;5007:82:50;;;36330:21:97;;;36367:18;;;36360:30;36426:34;36406:18;;;36399:62;36478:18;;5007:82:50;36146:356:97;5007:82:50;5278:21;5249:25;:50;5241:94;;;;-1:-1:-1;;;5241:94:50;;36709:2:97;5241:94:50;;;36691:21:97;36748:2;36728:18;;;36721:30;36787:33;36767:18;;;36760:61;36838:18;;5241:94:50;36507:355:97;5241:94:50;-1:-1:-1;;5398:44:50;;;;;;;;:31;:44;;;;;;;;:67;;;;5526:34;:47;;;;;;:71;-1:-1:-1;;4064:1540:50:o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:159:97:-;81:20;;141:6;130:18;;120:29;;110:57;;163:1;160;153:12;110:57;14:159;;;:::o;178:184::-;236:6;289:2;277:9;268:7;264:23;260:32;257:52;;;305:1;302;295:12;257:52;328:28;346:9;328:28;:::i;367:154::-;453:42;446:5;442:54;435:5;432:65;422:93;;511:1;508;501:12;526:247;585:6;638:2;626:9;617:7;613:23;609:32;606:52;;;654:1;651;644:12;606:52;693:9;680:23;712:31;737:5;712:31;:::i;960:347::-;1011:8;1021:6;1075:3;1068:4;1060:6;1056:17;1052:27;1042:55;;1093:1;1090;1083:12;1042:55;-1:-1:-1;1116:20:97;;1159:18;1148:30;;1145:50;;;1191:1;1188;1181:12;1145:50;1228:4;1220:6;1216:17;1204:29;;1280:3;1273:4;1264:6;1256;1252:19;1248:30;1245:39;1242:59;;;1297:1;1294;1287:12;1242:59;960:347;;;;;:::o;1312:118::-;1398:5;1391:13;1384:21;1377:5;1374:32;1364:60;;1420:1;1417;1410:12;1435:919;1539:6;1547;1555;1563;1571;1579;1632:3;1620:9;1611:7;1607:23;1603:33;1600:53;;;1649:1;1646;1639:12;1600:53;1672:28;1690:9;1672:28;:::i;:::-;1662:38;;1751:2;1740:9;1736:18;1723:32;1774:18;1815:2;1807:6;1804:14;1801:34;;;1831:1;1828;1821:12;1801:34;1870:58;1920:7;1911:6;1900:9;1896:22;1870:58;:::i;:::-;1947:8;;-1:-1:-1;1844:84:97;-1:-1:-1;2032:2:97;2017:18;;2004:32;;-1:-1:-1;2045:28:97;2004:32;2045:28;:::i;:::-;2092:5;;-1:-1:-1;2150:2:97;2135:18;;2122:32;;2166:16;;;2163:36;;;2195:1;2192;2185:12;2163:36;;2234:60;2286:7;2275:8;2264:9;2260:24;2234:60;:::i;:::-;1435:919;;;;-1:-1:-1;1435:919:97;;-1:-1:-1;1435:919:97;;2313:8;;1435:919;-1:-1:-1;;;1435:919:97:o;2612:252::-;2679:6;2687;2740:2;2728:9;2719:7;2715:23;2711:32;2708:52;;;2756:1;2753;2746:12;2708:52;2779:28;2797:9;2779:28;:::i;:::-;2769:38;2854:2;2839:18;;;;2826:32;;-1:-1:-1;;;2612:252:97:o;2869:1063::-;2994:6;3002;3010;3018;3026;3034;3042;3050;3103:3;3091:9;3082:7;3078:23;3074:33;3071:53;;;3120:1;3117;3110:12;3071:53;3159:9;3146:23;3178:31;3203:5;3178:31;:::i;:::-;3228:5;-1:-1:-1;3280:2:97;3265:18;;3252:32;;-1:-1:-1;3303:37:97;3336:2;3321:18;;3303:37;:::i;:::-;3293:47;;3391:2;3380:9;3376:18;3363:32;3414:18;3455:2;3447:6;3444:14;3441:34;;;3471:1;3468;3461:12;3441:34;3510:58;3560:7;3551:6;3540:9;3536:22;3510:58;:::i;:::-;3587:8;;-1:-1:-1;3484:84:97;-1:-1:-1;3675:3:97;3660:19;;3647:33;;-1:-1:-1;3692:16:97;;;3689:36;;;3721:1;3718;3711:12;3689:36;;3760:60;3812:7;3801:8;3790:9;3786:24;3760:60;:::i;:::-;2869:1063;;;;-1:-1:-1;2869:1063:97;;;;;;3734:86;;3921:3;3906:19;3893:33;;2869:1063;-1:-1:-1;;;;2869:1063:97:o;3937:925::-;4044:6;4052;4060;4068;4076;4084;4137:3;4125:9;4116:7;4112:23;4108:33;4105:53;;;4154:1;4151;4144:12;4105:53;4177:28;4195:9;4177:28;:::i;:::-;4167:38;;4256:2;4245:9;4241:18;4228:32;4279:18;4320:2;4312:6;4309:14;4306:34;;;4336:1;4333;4326:12;4306:34;4375:58;4425:7;4416:6;4405:9;4401:22;4375:58;:::i;:::-;4452:8;;-1:-1:-1;4349:84:97;-1:-1:-1;4540:2:97;4525:18;;4512:32;;-1:-1:-1;4556:16:97;;;4553:36;;;4585:1;4582;4575:12;4553:36;;4624:60;4676:7;4665:8;4654:9;4650:24;4624:60;:::i;:::-;4703:8;;-1:-1:-1;4598:86:97;-1:-1:-1;;4788:2:97;4773:18;;4760:32;4801:31;4760:32;4801:31;:::i;:::-;4851:5;4841:15;;;3937:925;;;;;;;;:::o;5059:324::-;5134:6;5142;5150;5203:2;5191:9;5182:7;5178:23;5174:32;5171:52;;;5219:1;5216;5209:12;5171:52;5242:28;5260:9;5242:28;:::i;:::-;5232:38;;5289:37;5322:2;5311:9;5307:18;5289:37;:::i;:::-;5279:47;;5373:2;5362:9;5358:18;5345:32;5335:42;;5059:324;;;;;:::o;5388:250::-;5473:1;5483:113;5497:6;5494:1;5491:13;5483:113;;;5573:11;;;5567:18;5554:11;;;5547:39;5519:2;5512:10;5483:113;;;-1:-1:-1;;5630:1:97;5612:16;;5605:27;5388:250::o;5643:329::-;5684:3;5722:5;5716:12;5749:6;5744:3;5737:19;5765:76;5834:6;5827:4;5822:3;5818:14;5811:4;5804:5;5800:16;5765:76;:::i;:::-;5886:2;5874:15;-1:-1:-1;;5870:88:97;5861:98;;;;5961:4;5857:109;;5643:329;-1:-1:-1;;5643:329:97:o;5977:217::-;6124:2;6113:9;6106:21;6087:4;6144:44;6184:2;6173:9;6169:18;6161:6;6144:44;:::i;6199:180::-;6258:6;6311:2;6299:9;6290:7;6286:23;6282:32;6279:52;;;6327:1;6324;6317:12;6279:52;-1:-1:-1;6350:23:97;;6199:180;-1:-1:-1;6199:180:97:o;6797:481::-;6875:6;6883;6891;6944:2;6932:9;6923:7;6919:23;6915:32;6912:52;;;6960:1;6957;6950:12;6912:52;6983:28;7001:9;6983:28;:::i;:::-;6973:38;;7062:2;7051:9;7047:18;7034:32;7089:18;7081:6;7078:30;7075:50;;;7121:1;7118;7111:12;7075:50;7160:58;7210:7;7201:6;7190:9;7186:22;7160:58;:::i;:::-;6797:481;;7237:8;;-1:-1:-1;7134:84:97;;-1:-1:-1;;;;6797:481:97:o;7283:622::-;7378:6;7386;7394;7402;7410;7463:3;7451:9;7442:7;7438:23;7434:33;7431:53;;;7480:1;7477;7470:12;7431:53;7503:28;7521:9;7503:28;:::i;:::-;7493:38;;7550:37;7583:2;7572:9;7568:18;7550:37;:::i;:::-;7540:47;;7634:2;7623:9;7619:18;7606:32;7596:42;;7689:2;7678:9;7674:18;7661:32;7716:18;7708:6;7705:30;7702:50;;;7748:1;7745;7738:12;7702:50;7787:58;7837:7;7828:6;7817:9;7813:22;7787:58;:::i;:::-;7283:622;;;;-1:-1:-1;7283:622:97;;-1:-1:-1;7864:8:97;;7761:84;7283:622;-1:-1:-1;;;7283:622:97:o;8168:1063::-;8293:6;8301;8309;8317;8325;8333;8341;8349;8402:3;8390:9;8381:7;8377:23;8373:33;8370:53;;;8419:1;8416;8409:12;8370:53;8455:9;8442:23;8432:33;;8484:37;8517:2;8506:9;8502:18;8484:37;:::i;:::-;8474:47;;8572:2;8561:9;8557:18;8544:32;8595:18;8636:2;8628:6;8625:14;8622:34;;;8652:1;8649;8642:12;8622:34;8691:58;8741:7;8732:6;8721:9;8717:22;8691:58;:::i;:::-;8768:8;;-1:-1:-1;8665:84:97;-1:-1:-1;8856:2:97;8841:18;;8828:32;;-1:-1:-1;8872:16:97;;;8869:36;;;8901:1;8898;8891:12;8869:36;;8940:60;8992:7;8981:8;8970:9;8966:24;8940:60;:::i;:::-;9019:8;;-1:-1:-1;8914:86:97;-1:-1:-1;;9104:3:97;9089:19;;9076:33;9118:31;9076:33;9118:31;:::i;:::-;9168:5;9158:15;;;9220:3;9209:9;9205:19;9192:33;9182:43;;8168:1063;;;;;;;;;;;:::o;9429:325::-;9517:6;9512:3;9505:19;9569:6;9562:5;9555:4;9550:3;9546:14;9533:43;;9621:1;9614:4;9605:6;9600:3;9596:16;9592:27;9585:38;9487:3;9743:4;-1:-1:-1;;9668:2:97;9660:6;9656:15;9652:88;9647:3;9643:98;9639:109;9632:116;;9429:325;;;;:::o;9759:717::-;10060:6;10052;10048:19;10037:9;10030:38;10116:42;10108:6;10104:55;10099:2;10088:9;10084:18;10077:83;10196:3;10191:2;10180:9;10176:18;10169:31;10011:4;10223:62;10280:3;10269:9;10265:19;10257:6;10249;10223:62;:::i;:::-;10335:6;10328:14;10321:22;10316:2;10305:9;10301:18;10294:50;10393:9;10385:6;10381:22;10375:3;10364:9;10360:19;10353:51;10421:49;10463:6;10455;10447;10421:49;:::i;:::-;10413:57;9759:717;-1:-1:-1;;;;;;;;;;9759:717:97:o;10481:245::-;10560:6;10568;10621:2;10609:9;10600:7;10596:23;10592:32;10589:52;;;10637:1;10634;10627:12;10589:52;-1:-1:-1;;10660:16:97;;10716:2;10701:18;;;10695:25;10660:16;;10695:25;;-1:-1:-1;10481:245:97:o;10731:437::-;10810:1;10806:12;;;;10853;;;10874:61;;10928:4;10920:6;10916:17;10906:27;;10874:61;10981:2;10973:6;10970:14;10950:18;10947:38;10944:218;;11018:77;11015:1;11008:88;11119:4;11116:1;11109:15;11147:4;11144:1;11137:15;10944:218;;10731:437;;;:::o;12824:586::-;13103:6;13095;13091:19;13080:9;13073:38;13147:3;13142:2;13131:9;13127:18;13120:31;13054:4;13174:62;13231:3;13220:9;13216:19;13208:6;13200;13174:62;:::i;:::-;13284:9;13276:6;13272:22;13267:2;13256:9;13252:18;13245:50;13312:49;13354:6;13346;13338;13312:49;:::i;:::-;13304:57;;;13397:6;13392:2;13381:9;13377:18;13370:34;12824:586;;;;;;;;;:::o;15272:184::-;15324:77;15321:1;15314:88;15421:4;15418:1;15411:15;15445:4;15442:1;15435:15;15461:195;15500:3;15531:66;15524:5;15521:77;15518:103;;15601:18;;:::i;:::-;-1:-1:-1;15648:1:97;15637:13;;15461:195::o;15661:315::-;15846:2;15835:9;15828:21;15809:4;15866:61;15923:2;15912:9;15908:18;15900:6;15892;15866:61;:::i;:::-;15858:69;;15963:6;15958:2;15947:9;15943:18;15936:34;15661:315;;;;;;:::o;15981:887::-;16340:6;16332;16328:19;16317:9;16310:38;16384:3;16379:2;16368:9;16364:18;16357:31;16291:4;16411:45;16451:3;16440:9;16436:19;16428:6;16411:45;:::i;:::-;16504:9;16496:6;16492:22;16487:2;16476:9;16472:18;16465:50;16538:32;16563:6;16555;16538:32;:::i;:::-;16589:42;16667:15;;;16662:2;16647:18;;16640:43;16720:15;;16714:3;16699:19;;16692:44;16773:22;;;16767:3;16752:19;;16745:51;16524:46;-1:-1:-1;16813:49:97;16524:46;16847:6;16839;16813:49;:::i;16873:559::-;17142:6;17134;17130:19;17119:9;17112:38;17186:3;17181:2;17170:9;17166:18;17159:31;17093:4;17213:45;17253:3;17242:9;17238:19;17230:6;17213:45;:::i;:::-;17306:9;17298:6;17294:22;17289:2;17278:9;17274:18;17267:50;17334:49;17376:6;17368;17360;17334:49;:::i;:::-;17326:57;;;17419:6;17414:2;17403:9;17399:18;17392:34;16873:559;;;;;;;;:::o;17437:637::-;17714:3;17703:9;17696:22;17677:4;17741:45;17781:3;17770:9;17766:19;17758:6;17741:45;:::i;:::-;17834:9;17826:6;17822:22;17817:2;17806:9;17802:18;17795:50;17868:49;17910:6;17902;17894;17868:49;:::i;:::-;17854:63;;17953:6;17948:2;17937:9;17933:18;17926:34;18008:9;18000:6;17996:22;17991:2;17980:9;17976:18;17969:50;18036:32;18061:6;18053;18036:32;:::i;:::-;18028:40;17437:637;-1:-1:-1;;;;;;;;17437:637:97:o;18079:288::-;18254:6;18243:9;18236:25;18297:2;18292;18281:9;18277:18;18270:30;18217:4;18317:44;18357:2;18346:9;18342:18;18334:6;18317:44;:::i;18856:184::-;18908:77;18905:1;18898:88;19005:4;19002:1;18995:15;19029:4;19026:1;19019:15;19045:334;19116:2;19110:9;19172:2;19162:13;;-1:-1:-1;;19158:86:97;19146:99;;19275:18;19260:34;;19296:22;;;19257:62;19254:88;;;19322:18;;:::i;:::-;19358:2;19351:22;19045:334;;-1:-1:-1;19045:334:97:o;19384:245::-;19432:4;19465:18;19457:6;19454:30;19451:56;;;19487:18;;:::i;:::-;-1:-1:-1;19544:2:97;19532:15;-1:-1:-1;;19528:88:97;19618:4;19524:99;;19384:245::o;19634:320::-;19709:5;19738:52;19754:35;19782:6;19754:35;:::i;:::-;19738:52;:::i;:::-;19729:61;;19813:6;19806:5;19799:21;19853:3;19844:6;19839:3;19835:16;19832:25;19829:45;;;19870:1;19867;19860:12;19829:45;19883:65;19941:6;19934:4;19927:5;19923:16;19918:3;19883:65;:::i;19959:235::-;20012:5;20065:3;20058:4;20050:6;20046:17;20042:27;20032:55;;20083:1;20080;20073:12;20032:55;20105:83;20184:3;20175:6;20169:13;20162:4;20154:6;20150:17;20105:83;:::i;20199:335::-;20278:6;20331:2;20319:9;20310:7;20306:23;20302:32;20299:52;;;20347:1;20344;20337:12;20299:52;20380:9;20374:16;20413:18;20405:6;20402:30;20399:50;;;20445:1;20442;20435:12;20399:50;20468:60;20520:7;20511:6;20500:9;20496:22;20468:60;:::i;:::-;20458:70;20199:335;-1:-1:-1;;;;20199:335:97:o;20957:372::-;21116:66;21078:19;;21200:11;;;;21231:2;21223:11;;21220:103;;;21310:2;21304;21297:3;21293:2;21289:12;21286:1;21282:20;21278:29;21274:2;21270:38;21266:47;21257:56;;21220:103;;;20957:372;;;;:::o;21764:395::-;21975:6;21967;21962:3;21949:33;22045:2;22041:15;;;;22058:66;22037:88;22001:16;;22026:100;;;22150:2;22142:11;;21764:395;-1:-1:-1;21764:395:97:o;22289:542::-;22390:2;22385:3;22382:11;22379:446;;;22426:1;22450:5;22447:1;22440:16;22494:4;22491:1;22481:18;22564:2;22552:10;22548:19;22545:1;22541:27;22535:4;22531:38;22600:4;22588:10;22585:20;22582:47;;;-1:-1:-1;22623:4:97;22582:47;22678:2;22673:3;22669:12;22666:1;22662:20;22656:4;22652:31;22642:41;;22733:82;22751:2;22744:5;22741:13;22733:82;;;22796:17;;;22777:1;22766:13;22733:82;;22379:446;22289:542;;;:::o;23067:1460::-;23191:3;23185:10;23218:18;23210:6;23207:30;23204:56;;;23240:18;;:::i;:::-;23269:96;23358:6;23318:38;23350:4;23344:11;23318:38;:::i;:::-;23312:4;23269:96;:::i;:::-;23420:4;;23477:2;23466:14;;23494:1;23489:781;;;;24314:1;24331:6;24328:89;;;-1:-1:-1;24383:19:97;;;24377:26;24328:89;22973:66;22964:1;22960:11;;;22956:84;22952:89;22942:100;23048:1;23044:11;;;22939:117;24430:81;;23459:1062;;23489:781;22236:1;22229:14;;;22273:4;22260:18;;-1:-1:-1;;23525:79:97;;;23701:236;23715:7;23712:1;23709:14;23701:236;;;23804:19;;;23798:26;23783:42;;23896:27;;;;23864:1;23852:14;;;;23731:19;;23701:236;;;23705:3;23965:6;23956:7;23953:19;23950:261;;;24026:19;;;24020:26;24127:66;24109:1;24105:14;;;24121:3;24101:24;24097:97;24093:102;24078:118;24063:134;;23950:261;-1:-1:-1;;;;;24257:1:97;24241:14;;;24237:22;24224:36;;-1:-1:-1;23067:1460:97:o;24532:1145::-;24722:2;24711:9;24704:21;24685:4;24748:44;24788:2;24777:9;24773:18;24765:6;24748:44;:::i;:::-;24811:2;24861:9;24853:6;24849:22;24844:2;24833:9;24829:18;24822:50;24892:1;24925:6;24919:13;24955:36;24981:9;24955:36;:::i;:::-;25000:22;;;25041:1;25058:17;;;25084:210;;;;25308:1;25303:348;;;;25051:600;;25084:210;25144:66;25133:9;25129:82;25124:2;25116:6;25112:15;25105:107;25281:2;25269:6;25262:14;25255:22;25252:1;25248:30;25240:6;25236:43;25232:52;25225:59;;25084:210;;25303:348;25334:6;25331:1;25324:17;25382:2;25379:1;25369:16;25407:1;25421:177;25435:6;25432:1;25429:13;25421:177;;;25525:14;;25504;;;25500:23;;25493:47;25568:16;;;;25450:10;;25421:177;;;25622:14;;25618:23;;;-1:-1:-1;;25051:600:97;-1:-1:-1;25668:3:97;;24532:1145;-1:-1:-1;;;;;;;;;24532:1145:97:o;25682:498::-;25882:4;25911:6;25956:2;25948:6;25944:15;25933:9;25926:34;26008:2;26000:6;25996:15;25991:2;25980:9;25976:18;25969:43;;26048:6;26043:2;26032:9;26028:18;26021:34;26091:3;26086:2;26075:9;26071:18;26064:31;26112:62;26169:3;26158:9;26154:19;26146:6;26138;26112:62;:::i;:::-;26104:70;25682:498;-1:-1:-1;;;;;;;25682:498:97:o;26185:749::-;26262:6;26270;26323:2;26311:9;26302:7;26298:23;26294:32;26291:52;;;26339:1;26336;26329:12;26291:52;26379:9;26366:23;26412:18;26404:6;26401:30;26398:50;;;26444:1;26441;26434:12;26398:50;26467:22;;26520:4;26512:13;;26508:27;-1:-1:-1;26498:55:97;;26549:1;26546;26539:12;26498:55;26585:2;26572:16;26610:48;26626:31;26654:2;26626:31;:::i;26610:48::-;26681:2;26674:5;26667:17;26723:7;26716:4;26711:2;26707;26703:11;26699:22;26696:35;26693:55;;;26744:1;26741;26734:12;26693:55;26803:2;26796:4;26792:2;26788:13;26781:4;26774:5;26770:16;26757:49;26849:1;26842:4;26826:14;;;26822:25;;26815:36;26826:14;26907:20;;26894:34;;-1:-1:-1;;;;26185:749:97:o;26939:125::-;27004:9;;;27025:10;;;27022:36;;;27038:18;;:::i;:::-;26939:125;;;;:::o;27069:914::-;27438:6;27430;27426:19;27415:9;27408:38;27482:3;27477:2;27466:9;27462:18;27455:31;27389:4;27509:45;27549:3;27538:9;27534:19;27526:6;27509:45;:::i;:::-;27602:9;27594:6;27590:22;27585:2;27574:9;27570:18;27563:50;27636:49;27678:6;27670;27662;27636:49;:::i;:::-;27704:42;27782:15;;;27777:2;27762:18;;27755:43;27835:15;;27829:3;27814:19;;27807:44;27888:22;;;27882:3;27867:19;;27860:51;27622:63;-1:-1:-1;27928:49:97;27622:63;27962:6;27954;27928:49;:::i;:::-;27920:57;27069:914;-1:-1:-1;;;;;;;;;;;27069:914:97:o;28395:339::-;28584:42;28576:6;28572:55;28561:9;28554:74;28664:2;28659;28648:9;28644:18;28637:30;28535:4;28684:44;28724:2;28713:9;28709:18;28701:6;28684:44;:::i;28739:245::-;28806:6;28859:2;28847:9;28838:7;28834:23;28830:32;28827:52;;;28875:1;28872;28865:12;28827:52;28907:9;28901:16;28926:28;28948:5;28926:28;:::i;30397:183::-;30457:4;30490:18;30482:6;30479:30;30476:56;;;30512:18;;:::i;:::-;-1:-1:-1;30557:1:97;30553:14;30569:4;30549:25;;30397:183::o;30585:665::-;30650:5;30703:3;30696:4;30688:6;30684:17;30680:27;30670:55;;30721:1;30718;30711:12;30670:55;30750:6;30744:13;30776:4;30800:60;30816:43;30856:2;30816:43;:::i;30800:60::-;30882:3;30906:2;30901:3;30894:15;30934:4;30929:3;30925:14;30918:21;;30991:4;30985:2;30982:1;30978:10;30970:6;30966:23;30962:34;30948:48;;31019:3;31011:6;31008:15;31005:35;;;31036:1;31033;31026:12;31005:35;31072:4;31064:6;31060:17;31086:135;31102:6;31097:3;31094:15;31086:135;;;31168:10;;31156:23;;31199:12;;;;31119;;31086:135;;;-1:-1:-1;31239:5:97;30585:665;-1:-1:-1;;;;;;30585:665:97:o;31255:1089::-;31319:5;31372:3;31365:4;31357:6;31353:17;31349:27;31339:55;;31390:1;31387;31380:12;31339:55;31419:6;31413:13;31445:4;31469:60;31485:43;31525:2;31485:43;:::i;31469:60::-;31563:15;;;31649:1;31645:10;;;;31633:23;;31629:32;;;31594:12;;;;31673:15;;;31670:35;;;31701:1;31698;31691:12;31670:35;31737:2;31729:6;31725:15;31749:566;31765:6;31760:3;31757:15;31749:566;;;31844:3;31838:10;31880:18;31867:11;31864:35;31861:125;;;31940:1;31969:2;31965;31958:14;31861:125;32009:24;;32068:2;32060:11;;32056:21;-1:-1:-1;32046:119:97;;32119:1;32148:2;32144;32137:14;32046:119;32190:82;32268:3;32262:2;32258;32254:11;32248:18;32243:2;32239;32235:11;32190:82;:::i;:::-;32178:95;;-1:-1:-1;32293:12:97;;;;31782;;31749:566;;32349:894;32412:5;32465:3;32458:4;32450:6;32446:17;32442:27;32432:55;;32483:1;32480;32473:12;32432:55;32512:6;32506:13;32538:4;32562:60;32578:43;32618:2;32578:43;:::i;32562:60::-;32656:15;;;32742:1;32738:10;;;;32726:23;;32722:32;;;32687:12;;;;32766:15;;;32763:35;;;32794:1;32791;32784:12;32763:35;32830:2;32822:6;32818:15;32842:372;32858:6;32853:3;32850:15;32842:372;;;32937:3;32931:10;32973:18;32960:11;32957:35;32954:125;;;33033:1;33062:2;33058;33051:14;32954:125;33104:67;33167:3;33162:2;33148:11;33140:6;33136:24;33132:33;33104:67;:::i;:::-;33092:80;;-1:-1:-1;33192:12:97;;;;32875;;32842:372;;33248:160;33325:13;;33378:4;33367:16;;33357:27;;33347:55;;33398:1;33395;33388:12;33413:1768;33636:6;33644;33652;33660;33668;33721:3;33709:9;33700:7;33696:23;33692:33;33689:53;;;33738:1;33735;33728:12;33689:53;33771:9;33765:16;33800:18;33841:2;33833:6;33830:14;33827:34;;;33857:1;33854;33847:12;33827:34;33895:6;33884:9;33880:22;33870:32;;33940:7;33933:4;33929:2;33925:13;33921:27;33911:55;;33962:1;33959;33952:12;33911:55;33991:2;33985:9;34013:4;34037:60;34053:43;34093:2;34053:43;:::i;34037:60::-;34131:15;;;34213:1;34209:10;;;;34201:19;;34197:28;;;34162:12;;;;34237:19;;;34234:39;;;34269:1;34266;34259:12;34234:39;34293:11;;;;34313:210;34329:6;34324:3;34321:15;34313:210;;;34402:3;34396:10;34419:31;34444:5;34419:31;:::i;:::-;34463:18;;34346:12;;;;34501;;;;34313:210;;;34578:18;;;34572:25;34542:5;;-1:-1:-1;34572:25:97;;-1:-1:-1;;;34609:16:97;;;34606:36;;;34638:1;34635;34628:12;34606:36;34661:74;34727:7;34716:8;34705:9;34701:24;34661:74;:::i;:::-;34651:84;;34781:2;34770:9;34766:18;34760:25;34744:41;;34810:2;34800:8;34797:16;34794:36;;;34826:1;34823;34816:12;34794:36;34849:73;34914:7;34903:8;34892:9;34888:24;34849:73;:::i;:::-;34839:83;;34968:2;34957:9;34953:18;34947:25;34931:41;;34997:2;34987:8;34984:16;34981:36;;;35013:1;35010;35003:12;34981:36;;35036:72;35100:7;35089:8;35078:9;35074:24;35036:72;:::i;:::-;35026:82;;;35127:48;35170:3;35159:9;35155:19;35127:48;:::i;:::-;35117:58;;33413:1768;;;;;;;;:::o;36013:128::-;36080:9;;;36101:11;;;36098:37;;;36115:18;;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"2601000","executionCost":"infinite","totalCost":"infinite"},"external":{"LZ_ENDPOINT()":"infinite","accessControlManager()":"2358","chainIdToLast24HourCommandsSent(uint16)":"2587","chainIdToLast24HourWindowStart(uint16)":"2563","chainIdToLastProposalSentTimestamp(uint16)":"2562","chainIdToMaxDailyLimit(uint16)":"2541","estimateFees(uint16,bytes,bool,bytes)":"infinite","execute(uint16,bytes,bytes,address)":"infinite","fallbackWithdraw(address,uint256,uint16,bytes,bytes,uint256)":"infinite","getConfig(uint16,uint16,uint256)":"infinite","owner()":"2341","pause()":"infinite","paused()":"2370","proposalCount()":"2328","removeTrustedRemote(uint16)":"infinite","renounceOwnership()":"234","retryExecute(uint256,uint16,bytes,bytes,address,uint256)":"infinite","setAccessControlManager(address)":"infinite","setConfig(uint16,uint16,uint256,bytes)":"infinite","setMaxDailyLimit(uint16,uint256)":"infinite","setSendVersion(uint16)":"infinite","setTrustedRemoteAddress(uint16,bytes)":"infinite","storedExecutionHashes(uint256)":"2495","transferOwnership(address)":"infinite","trustedRemoteLookup(uint16)":"infinite","unpause()":"infinite"},"internal":{"_validateProposal(uint16,bytes memory)":"infinite"}},"methodIdentifiers":{"LZ_ENDPOINT()":"cd4d1c64","accessControlManager()":"b4a0bdf3","chainIdToLast24HourCommandsSent(uint16)":"1183a3b2","chainIdToLast24HourWindowStart(uint16)":"93a61d6c","chainIdToLastProposalSentTimestamp(uint16)":"e0354d7f","chainIdToMaxDailyLimit(uint16)":"4f4ba0f4","estimateFees(uint16,bytes,bool,bytes)":"21b4eaa1","execute(uint16,bytes,bytes,address)":"3fd9d7ef","fallbackWithdraw(address,uint256,uint16,bytes,bytes,uint256)":"30fd54a0","getConfig(uint16,uint16,uint256)":"5f6716f7","owner()":"8da5cb5b","pause()":"8456cb59","paused()":"5c975abb","proposalCount()":"da35c664","removeTrustedRemote(uint16)":"2dbbec08","renounceOwnership()":"715018a6","retryExecute(uint256,uint16,bytes,bytes,address,uint256)":"e2222b0e","setAccessControlManager(address)":"0e32cb86","setConfig(uint16,uint16,uint256,bytes)":"cbed8b9c","setMaxDailyLimit(uint16,uint256)":"2488eec8","setSendVersion(uint16)":"07e0db17","setTrustedRemoteAddress(uint16,bytes)":"a6c3d165","storedExecutionHashes(uint256)":"7dbb533c","transferOwnership(address)":"f2fde38b","trustedRemoteLookup(uint16)":"7533d788","unpause()":"3f4ba83a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract ILayerZeroEndpoint\",\"name\":\"lzEndpoint_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"accessControlManager_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"executionHash\",\"type\":\"bytes32\"}],\"name\":\"ClearPayload\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"name\":\"ExecuteRemoteProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"FallbackWithdraw\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldAccessControlManager\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAccessControlManager\",\"type\":\"address\"}],\"name\":\"NewAccessControlManager\",\"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\":true,\"internalType\":\"uint16\",\"name\":\"chainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldMaxLimit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newMaxLimit\",\"type\":\"uint256\"}],\"name\":\"SetMaxDailyLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"oldRemoteAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"newRemoteAddress\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemoteAddress\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"adapterParams\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"StorePayload\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"chainId\",\"type\":\"uint16\"}],\"name\":\"TrustedRemoteRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"LZ_ENDPOINT\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpoint\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"accessControlManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"chainIdToLast24HourCommandsSent\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"chainIdToLast24HourWindowStart\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"chainIdToLastProposalSentTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"chainIdToMaxDailyLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"remoteChainId_\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"payload_\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"useZro_\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"adapterParams_\",\"type\":\"bytes\"}],\"name\":\"estimateFees\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"remoteChainId_\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"payload_\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"adapterParams_\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"zroPaymentAddress_\",\"type\":\"address\"}],\"name\":\"execute\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"pId_\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"remoteChainId_\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"payload_\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"adapterParams_\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"originalValue_\",\"type\":\"uint256\"}],\"name\":\"fallbackWithdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"version_\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"chainId_\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"configType_\",\"type\":\"uint256\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"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\":[],\"name\":\"proposalCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"remoteChainId_\",\"type\":\"uint16\"}],\"name\":\"removeTrustedRemote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"pId_\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"remoteChainId_\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"payload_\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"adapterParams_\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"zroPaymentAddress_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"originalValue_\",\"type\":\"uint256\"}],\"name\":\"retryExecute\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessControlManager_\",\"type\":\"address\"}],\"name\":\"setAccessControlManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"version_\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"chainId_\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"configType_\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"config_\",\"type\":\"bytes\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"chainId_\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"setMaxDailyLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"version_\",\"type\":\"uint16\"}],\"name\":\"setSendVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"remoteChainId_\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"newRemoteAddress_\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemoteAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"storedExecutionHashes\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"trustedRemoteLookup\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"custom:security-contact\":\"https://github.com/VenusProtocol/governance-contracts#discussion\",\"events\":{\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"estimateFees(uint16,bytes,bool,bytes)\":{\"details\":\"The estimated fees are the minimum required; it's recommended to increase the fees amount when sending a message. The unused amount will be refunded\",\"params\":{\"adapterParams_\":\"The params used to specify the custom amount of gas required for the execution on the destination\",\"payload_\":\"The payload to be sent to the remote chain. It's computed as follows: payload = abi.encode(abi.encode(targets, values, signatures, calldatas, proposalType), pId)\",\"remoteChainId_\":\"The LayerZero id of a remote chain\",\"useZro_\":\"Bool that indicates whether to pay in ZRO tokens or not\"},\"returns\":{\"_0\":\"nativeFee The amount of fee in the native gas token (e.g. ETH)\",\"_1\":\"zroFee The amount of fee in ZRO token\"}},\"execute(uint16,bytes,bytes,address)\":{\"custom:access\":\"Controlled by Access Control Manager\",\"custom:event\":\"Emits ExecuteRemoteProposal with remote chain id, proposal ID and payload on successEmits StorePayload with last stored payload proposal ID ,remote chain id , payload, adapter params , values and reason for failure\",\"details\":\"Stores the hash of the execution parameters if sending fails (e.g., due to insufficient fees)\",\"params\":{\"adapterParams_\":\"The params used to specify the custom amount of gas required for the execution on the destination\",\"payload_\":\"The payload to be sent to the remote chain It's computed as follows: payload = abi.encode(targets, values, signatures, calldatas, proposalType)\",\"remoteChainId_\":\"The LayerZero id of the remote chain\",\"zroPaymentAddress_\":\"The address of the ZRO token holder who would pay for the transaction. This must be either address(this) or tx.origin\"}},\"fallbackWithdraw(address,uint256,uint16,bytes,bytes,uint256)\":{\"custom:access\":\"Only owner\",\"custom:event\":\"Emits ClearPayload with proposal ID and hashEmits FallbackWithdraw with receiver and amount\",\"params\":{\"adapterParams_\":\"The params used to specify the custom amount of gas required for the execution on the destination\",\"originalValue_\":\"The msg.value passed when execute() function was called\",\"pId_\":\"The proposal ID to identify a failed message\",\"payload_\":\"The payload to be sent to the remote chain It's computed as follows: payload = abi.encode(abi.encode(targets, values, signatures, calldatas, proposalType), pId)\",\"remoteChainId_\":\"The LayerZero id of the remote chain\",\"to_\":\"Address of the receiver\"}},\"getConfig(uint16,uint16,uint256)\":{\"params\":{\"chainId_\":\"The LayerZero chainId\",\"configType_\":\"Type of configuration. Every messaging library has its own convention\",\"version_\":\"Messaging library version\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pause()\":{\"custom:access\":\"Controlled by AccessControlManager\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"removeTrustedRemote(uint16)\":{\"custom:access\":\"Controlled by Access Control Manager\",\"custom:event\":\"Emit TrustedRemoteRemoved with remote chain id\",\"params\":{\"remoteChainId_\":\"The chain's id corresponds to setting the trusted remote to empty\"}},\"retryExecute(uint256,uint16,bytes,bytes,address,uint256)\":{\"custom:access\":\"Controlled by Access Control Manager\",\"custom:event\":\"Emits ClearPayload with proposal ID and hash\",\"details\":\"Allows providing more fees if needed. The extra fees will be refunded to the caller\",\"params\":{\"adapterParams_\":\"The params used to specify the custom amount of gas required for the execution on the destination\",\"originalValue_\":\"The msg.value passed when execute() function was called\",\"pId_\":\"The proposal ID to identify a failed message\",\"payload_\":\"The payload to be sent to the remote chain It's computed as follows: payload = abi.encode(abi.encode(targets, values, signatures, calldatas, proposalType), pId)\",\"remoteChainId_\":\"The LayerZero id of the remote chain\",\"zroPaymentAddress_\":\"The address of the ZRO token holder who would pay for the transaction.\"}},\"setAccessControlManager(address)\":{\"custom:access\":\"Only owner\",\"custom:event\":\"Emits NewAccessControlManager with old and new access control manager addresses\",\"params\":{\"accessControlManager_\":\"The new address of the Access Control Manager\"}},\"setConfig(uint16,uint16,uint256,bytes)\":{\"custom:access\":\"Controlled by AccessControlManager\",\"params\":{\"chainId_\":\"The LayerZero chainId for the pending config change\",\"configType_\":\"The type of configuration. Every messaging library has its own convention\",\"config_\":\"The configuration in bytes. It can encode arbitrary content\",\"version_\":\"Messaging library version\"}},\"setMaxDailyLimit(uint16,uint256)\":{\"custom:access\":\"Controlled by AccessControlManager\",\"custom:event\":\"Emits SetMaxDailyLimit with old and new limit and its corresponding chain id\",\"params\":{\"chainId_\":\"Destination chain id\",\"limit_\":\"Number of commands\"}},\"setSendVersion(uint16)\":{\"custom:access\":\"Controlled by AccessControlManager\",\"params\":{\"version_\":\"New messaging library version\"}},\"setTrustedRemoteAddress(uint16,bytes)\":{\"custom:access\":\"Controlled by AccessControlManager\",\"custom:event\":\"Emits SetTrustedRemoteAddress with remote chain Id and remote address\",\"params\":{\"newRemoteAddress_\":\"The address of the contract on the remote chain to receive messages sent by this contract\",\"remoteChainId_\":\"The LayerZero id of a remote chain\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"unpause()\":{\"custom:access\":\"Controlled by AccessControlManager\"}},\"stateVariables\":{\"storedExecutionHashes\":{\"details\":\"[proposalId] -> [executionHash]\"}},\"title\":\"OmnichainProposalSender\",\"version\":1},\"userdoc\":{\"errors\":{\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}]},\"events\":{\"ClearPayload(uint256,bytes32)\":{\"notice\":\"Emitted when a previously failed message is successfully sent to the remote chain\"},\"ExecuteRemoteProposal(uint16,uint256,bytes)\":{\"notice\":\"Emitted when a proposal execution request is sent to the remote chain\"},\"FallbackWithdraw(address,uint256)\":{\"notice\":\"Emitted while fallback withdraw\"},\"NewAccessControlManager(address,address)\":{\"notice\":\"Emitted when the address of ACM is updated\"},\"SetMaxDailyLimit(uint16,uint256,uint256)\":{\"notice\":\"Emitted when the maximum daily limit of commands from the local chain is modified\"},\"SetTrustedRemoteAddress(uint16,bytes,bytes)\":{\"notice\":\"Emitted when a remote message receiver is set for the remote chain\"},\"StorePayload(uint256,uint16,bytes,bytes,uint256,bytes)\":{\"notice\":\"Emitted when an execution hash of a failed message is saved\"},\"TrustedRemoteRemoved(uint16)\":{\"notice\":\"Event emitted when trusted remote sets to empty\"}},\"kind\":\"user\",\"methods\":{\"LZ_ENDPOINT()\":{\"notice\":\"LayerZero endpoint for sending messages to remote chains\"},\"accessControlManager()\":{\"notice\":\"ACM (Access Control Manager) contract address\"},\"chainIdToLast24HourCommandsSent(uint16)\":{\"notice\":\"Total commands transferred within the last 24-hour window from the local chain\"},\"chainIdToLast24HourWindowStart(uint16)\":{\"notice\":\"Timestamp when the last 24-hour window started from the local chain\"},\"chainIdToLastProposalSentTimestamp(uint16)\":{\"notice\":\"Timestamp when the last proposal sent from the local chain to dest chain\"},\"chainIdToMaxDailyLimit(uint16)\":{\"notice\":\"Maximum daily limit for commands from the local chain\"},\"estimateFees(uint16,bytes,bool,bytes)\":{\"notice\":\"Estimates LayerZero fees for cross-chain message delivery to the remote chain\"},\"execute(uint16,bytes,bytes,address)\":{\"notice\":\"Sends a message to execute a remote proposal\"},\"fallbackWithdraw(address,uint256,uint16,bytes,bytes,uint256)\":{\"notice\":\"Clear previously failed message\"},\"getConfig(uint16,uint16,uint256)\":{\"notice\":\"Gets the configuration of the LayerZero messaging library of the specified version\"},\"pause()\":{\"notice\":\"Triggers the paused state of the controller\"},\"proposalCount()\":{\"notice\":\"Stores the total number of remote proposals\"},\"removeTrustedRemote(uint16)\":{\"notice\":\"Remove trusted remote from storage\"},\"renounceOwnership()\":{\"notice\":\"Empty implementation of renounce ownership to avoid any mishap\"},\"retryExecute(uint256,uint16,bytes,bytes,address,uint256)\":{\"notice\":\"Resends a previously failed message\"},\"setAccessControlManager(address)\":{\"notice\":\"Sets the address of Access Control Manager (ACM)\"},\"setConfig(uint16,uint16,uint256,bytes)\":{\"notice\":\"Sets the configuration of the LayerZero messaging library of the specified version\"},\"setMaxDailyLimit(uint16,uint256)\":{\"notice\":\"Sets the limit of daily (24 Hour) command amount\"},\"setSendVersion(uint16)\":{\"notice\":\"Sets the configuration of the LayerZero messaging library of the specified version\"},\"setTrustedRemoteAddress(uint16,bytes)\":{\"notice\":\"Sets the remote message receiver address\"},\"storedExecutionHashes(uint256)\":{\"notice\":\"Execution hashes of failed messages\"},\"trustedRemoteLookup(uint16)\":{\"notice\":\"Specifies the allowed path for sending messages (remote chainId => remote app address + local app address)\"},\"unpause()\":{\"notice\":\"Triggers the resume state of the controller\"}},\"notice\":\"OmnichainProposalSender contract builds upon the functionality of its parent contract , BaseOmnichainControllerSrc It sends a proposal's data to remote chains for execution after the proposal passes on the main chain when used with GovernorBravo, the owner of this contract must be set to the Timelock contract\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Cross-chain/OmnichainProposalSender.sol\":\"OmnichainProposalSender\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroEndpoint.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"./ILayerZeroUserApplicationConfig.sol\\\";\\n\\ninterface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig {\\n    // @notice send a LayerZero message to the specified address at a LayerZero endpoint.\\n    // @param _dstChainId - the destination chain identifier\\n    // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains\\n    // @param _payload - a custom bytes payload to send to the destination contract\\n    // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address\\n    // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction\\n    // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination\\n    function send(\\n        uint16 _dstChainId,\\n        bytes calldata _destination,\\n        bytes calldata _payload,\\n        address payable _refundAddress,\\n        address _zroPaymentAddress,\\n        bytes calldata _adapterParams\\n    ) external payable;\\n\\n    // @notice used by the messaging library to publish verified payload\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source contract (as bytes) at the source chain\\n    // @param _dstAddress - the address on destination chain\\n    // @param _nonce - the unbound message ordering nonce\\n    // @param _gasLimit - the gas limit for external contract execution\\n    // @param _payload - verified payload to send to the destination contract\\n    function receivePayload(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        address _dstAddress,\\n        uint64 _nonce,\\n        uint _gasLimit,\\n        bytes calldata _payload\\n    ) external;\\n\\n    // @notice get the inboundNonce of a lzApp from a source chain which could be EVM or non-EVM chain\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint64);\\n\\n    // @notice get the outboundNonce from this source chain which, consequently, is always an EVM\\n    // @param _srcAddress - the source chain contract address\\n    function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view returns (uint64);\\n\\n    // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery\\n    // @param _dstChainId - the destination chain identifier\\n    // @param _userApplication - the user app address on this EVM chain\\n    // @param _payload - the custom message to send over LayerZero\\n    // @param _payInZRO - if false, user app pays the protocol fee in native token\\n    // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain\\n    function estimateFees(\\n        uint16 _dstChainId,\\n        address _userApplication,\\n        bytes calldata _payload,\\n        bool _payInZRO,\\n        bytes calldata _adapterParam\\n    ) external view returns (uint nativeFee, uint zroFee);\\n\\n    // @notice get this Endpoint's immutable source identifier\\n    function getChainId() external view returns (uint16);\\n\\n    // @notice the interface to retry failed message on this Endpoint destination\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    // @param _payload - the payload to be retried\\n    function retryPayload(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        bytes calldata _payload\\n    ) external;\\n\\n    // @notice query if any STORED payload (message blocking) at the endpoint.\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool);\\n\\n    // @notice query if the _libraryAddress is valid for sending msgs.\\n    // @param _userApplication - the user app address on this EVM chain\\n    function getSendLibraryAddress(address _userApplication) external view returns (address);\\n\\n    // @notice query if the _libraryAddress is valid for receiving msgs.\\n    // @param _userApplication - the user app address on this EVM chain\\n    function getReceiveLibraryAddress(address _userApplication) external view returns (address);\\n\\n    // @notice query if the non-reentrancy guard for send() is on\\n    // @return true if the guard is on. false otherwise\\n    function isSendingPayload() external view returns (bool);\\n\\n    // @notice query if the non-reentrancy guard for receive() is on\\n    // @return true if the guard is on. false otherwise\\n    function isReceivingPayload() external view returns (bool);\\n\\n    // @notice get the configuration of the LayerZero messaging library of the specified version\\n    // @param _version - messaging library version\\n    // @param _chainId - the chainId for the pending config change\\n    // @param _userApplication - the contract address of the user application\\n    // @param _configType - type of configuration. every messaging library has its own convention.\\n    function getConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        address _userApplication,\\n        uint _configType\\n    ) external view returns (bytes memory);\\n\\n    // @notice get the send() LayerZero messaging library version\\n    // @param _userApplication - the contract address of the user application\\n    function getSendVersion(address _userApplication) external view returns (uint16);\\n\\n    // @notice get the lzReceive() LayerZero messaging library version\\n    // @param _userApplication - the contract address of the user application\\n    function getReceiveVersion(address _userApplication) external view returns (uint16);\\n}\\n\",\"keccak256\":\"0xab7fcacc672251c850f00c0abd4100df9afcc4ad70b8d331a2fd4cb07acab9f4\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroUserApplicationConfig.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroUserApplicationConfig {\\n    // @notice set the configuration of the LayerZero messaging library of the specified version\\n    // @param _version - messaging library version\\n    // @param _chainId - the chainId for the pending config change\\n    // @param _configType - type of configuration. every messaging library has its own convention.\\n    // @param _config - configuration in the bytes. can encode arbitrary content.\\n    function setConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        uint _configType,\\n        bytes calldata _config\\n    ) external;\\n\\n    // @notice set the send() LayerZero messaging library version to _version\\n    // @param _version - new messaging library version\\n    function setSendVersion(uint16 _version) external;\\n\\n    // @notice set the lzReceive() LayerZero messaging library version to _version\\n    // @param _version - new messaging library version\\n    function setReceiveVersion(uint16 _version) external;\\n\\n    // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\\n    // @param _srcChainId - the chainId of the source chain\\n    // @param _srcAddress - the contract address of the source contract at the source chain\\n    function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\\n}\\n\",\"keccak256\":\"0xb4df93aeb0fb46373a4fb728ad2603edc8b9a1577eee8d801768dc115bf96498\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    constructor() {\\n        _transferOwnership(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        _checkOwner();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if the sender is not the owner.\\n     */\\n    function _checkOwner() internal view virtual {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby disabling any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n}\\n\",\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\"},\"@openzeppelin/contracts/security/Pausable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (security/Pausable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which allows children to implement an emergency stop\\n * mechanism that can be triggered by an authorized account.\\n *\\n * This module is used through inheritance. It will make available the\\n * modifiers `whenNotPaused` and `whenPaused`, which can be applied to\\n * the functions of your contract. Note that they will not be pausable by\\n * simply including this module, only once the modifiers are put in place.\\n */\\nabstract contract Pausable is Context {\\n    /**\\n     * @dev Emitted when the pause is triggered by `account`.\\n     */\\n    event Paused(address account);\\n\\n    /**\\n     * @dev Emitted when the pause is lifted by `account`.\\n     */\\n    event Unpaused(address account);\\n\\n    bool private _paused;\\n\\n    /**\\n     * @dev Initializes the contract in unpaused state.\\n     */\\n    constructor() {\\n        _paused = false;\\n    }\\n\\n    /**\\n     * @dev Modifier to make a function callable only when the contract is not paused.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must not be paused.\\n     */\\n    modifier whenNotPaused() {\\n        _requireNotPaused();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Modifier to make a function callable only when the contract is paused.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must be paused.\\n     */\\n    modifier whenPaused() {\\n        _requirePaused();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns true if the contract is paused, and false otherwise.\\n     */\\n    function paused() public view virtual returns (bool) {\\n        return _paused;\\n    }\\n\\n    /**\\n     * @dev Throws if the contract is paused.\\n     */\\n    function _requireNotPaused() internal view virtual {\\n        require(!paused(), \\\"Pausable: paused\\\");\\n    }\\n\\n    /**\\n     * @dev Throws if the contract is not paused.\\n     */\\n    function _requirePaused() internal view virtual {\\n        require(paused(), \\\"Pausable: not paused\\\");\\n    }\\n\\n    /**\\n     * @dev Triggers stopped state.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must not be paused.\\n     */\\n    function _pause() internal virtual whenNotPaused {\\n        _paused = true;\\n        emit Paused(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Returns to normal state.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must be paused.\\n     */\\n    function _unpause() internal virtual whenPaused {\\n        _paused = false;\\n        emit Unpaused(_msgSender());\\n    }\\n}\\n\",\"keccak256\":\"0x0849d93b16c9940beb286a7864ed02724b248b93e0d80ef6355af5ef15c64773\",\"license\":\"MIT\"},\"@openzeppelin/contracts/security/ReentrancyGuard.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (security/ReentrancyGuard.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Contract module that helps prevent reentrant calls to a function.\\n *\\n * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier\\n * available, which can be applied to functions to make sure there are no nested\\n * (reentrant) calls to them.\\n *\\n * Note that because there is a single `nonReentrant` guard, functions marked as\\n * `nonReentrant` may not call one another. This can be worked around by making\\n * those functions `private`, and then adding `external` `nonReentrant` entry\\n * points to them.\\n *\\n * TIP: If you would like to learn more about reentrancy and alternative ways\\n * to protect against it, check out our blog post\\n * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].\\n */\\nabstract contract ReentrancyGuard {\\n    // Booleans are more expensive than uint256 or any type that takes up a full\\n    // word because each write operation emits an extra SLOAD to first read the\\n    // slot's contents, replace the bits taken up by the boolean, and then write\\n    // back. This is the compiler's defense against contract upgrades and\\n    // pointer aliasing, and it cannot be disabled.\\n\\n    // The values being non-zero value makes deployment a bit more expensive,\\n    // but in exchange the refund on every call to nonReentrant will be lower in\\n    // amount. Since refunds are capped to a percentage of the total\\n    // transaction's gas, it is best to keep them low in cases like this one, to\\n    // increase the likelihood of the full refund coming into effect.\\n    uint256 private constant _NOT_ENTERED = 1;\\n    uint256 private constant _ENTERED = 2;\\n\\n    uint256 private _status;\\n\\n    constructor() {\\n        _status = _NOT_ENTERED;\\n    }\\n\\n    /**\\n     * @dev Prevents a contract from calling itself, directly or indirectly.\\n     * Calling a `nonReentrant` function from another `nonReentrant`\\n     * function is not supported. It is possible to prevent this from happening\\n     * by making the `nonReentrant` function external, and making it call a\\n     * `private` function that does the actual work.\\n     */\\n    modifier nonReentrant() {\\n        _nonReentrantBefore();\\n        _;\\n        _nonReentrantAfter();\\n    }\\n\\n    function _nonReentrantBefore() private {\\n        // On the first call to nonReentrant, _status will be _NOT_ENTERED\\n        require(_status != _ENTERED, \\\"ReentrancyGuard: reentrant call\\\");\\n\\n        // Any calls to nonReentrant after this point will fail\\n        _status = _ENTERED;\\n    }\\n\\n    function _nonReentrantAfter() private {\\n        // By storing the original value once again, a refund is triggered (see\\n        // https://eips.ethereum.org/EIPS/eip-2200)\\n        _status = _NOT_ENTERED;\\n    }\\n\\n    /**\\n     * @dev Returns true if the reentrancy guard is currently set to \\\"entered\\\", which indicates there is a\\n     * `nonReentrant` function in the call stack.\\n     */\\n    function _reentrancyGuardEntered() internal view returns (bool) {\\n        return _status == _ENTERED;\\n    }\\n}\\n\",\"keccak256\":\"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n\\n    function _contextSuffixLength() internal view virtual returns (uint256) {\\n        return 0;\\n    }\\n}\\n\",\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\"},\"@venusprotocol/solidity-utilities/contracts/validators.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\n/// @notice Thrown if the supplied address is a zero address where it is not allowed\\nerror ZeroAddressNotAllowed();\\n\\n/// @notice Thrown if the supplied value is 0 where it is not allowed\\nerror ZeroValueNotAllowed();\\n\\n/// @notice Checks if the provided address is nonzero, reverts otherwise\\n/// @param address_ Address to check\\n/// @custom:error ZeroAddressNotAllowed is thrown if the provided address is a zero address\\nfunction ensureNonzeroAddress(address address_) pure {\\n    if (address_ == address(0)) {\\n        revert ZeroAddressNotAllowed();\\n    }\\n}\\n\\n/// @notice Checks if the provided value is nonzero, reverts otherwise\\n/// @param value_ Value to check\\n/// @custom:error ZeroValueNotAllowed is thrown if the provided value is 0\\nfunction ensureNonzeroValue(uint256 value_) pure {\\n    if (value_ == 0) {\\n        revert ZeroValueNotAllowed();\\n    }\\n}\\n\",\"keccak256\":\"0xdb88e14d50dd21889ca3329d755673d022c47e8da005b6a545c7f69c2c4b7b86\",\"license\":\"BSD-3-Clause\"},\"contracts/Cross-chain/BaseOmnichainControllerSrc.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\n\\npragma solidity 0.8.25;\\n\\nimport { Pausable } from \\\"@openzeppelin/contracts/security/Pausable.sol\\\";\\nimport { Ownable } from \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\nimport { IAccessControlManagerV8 } from \\\"./../Governance/IAccessControlManagerV8.sol\\\";\\n\\n/**\\n * @title BaseOmnichainControllerSrc\\n * @dev This contract is the base for the Omnichain controller source contracts.\\n * It provides functionality related to daily command limits and pausability.\\n * @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion\\n */\\n\\ncontract BaseOmnichainControllerSrc is Ownable, Pausable {\\n    /**\\n     * @notice ACM (Access Control Manager) contract address\\n     */\\n    address public accessControlManager;\\n\\n    /**\\n     * @notice Maximum daily limit for commands from the local chain\\n     */\\n    mapping(uint16 => uint256) public chainIdToMaxDailyLimit;\\n\\n    /**\\n     * @notice Total commands transferred within the last 24-hour window from the local chain\\n     */\\n    mapping(uint16 => uint256) public chainIdToLast24HourCommandsSent;\\n\\n    /**\\n     * @notice Timestamp when the last 24-hour window started from the local chain\\n     */\\n    mapping(uint16 => uint256) public chainIdToLast24HourWindowStart;\\n    /**\\n     * @notice Timestamp when the last proposal sent from the local chain to dest chain\\n     */\\n    mapping(uint16 => uint256) public chainIdToLastProposalSentTimestamp;\\n\\n    /**\\n     * @notice Emitted when the maximum daily limit of commands from the local chain is modified\\n     */\\n    event SetMaxDailyLimit(uint16 indexed chainId, uint256 oldMaxLimit, uint256 newMaxLimit);\\n\\n    /**\\n     * @notice Emitted when the address of ACM is updated\\n     */\\n    event NewAccessControlManager(address indexed oldAccessControlManager, address indexed newAccessControlManager);\\n\\n    constructor(address accessControlManager_) {\\n        ensureNonzeroAddress(accessControlManager_);\\n        accessControlManager = accessControlManager_;\\n    }\\n\\n    /**\\n     * @notice Sets the limit of daily (24 Hour) command amount\\n     * @param chainId_ Destination chain id\\n     * @param limit_ Number of commands\\n     * @custom:access Controlled by AccessControlManager\\n     * @custom:event Emits SetMaxDailyLimit with old and new limit and its corresponding chain id\\n     */\\n    function setMaxDailyLimit(uint16 chainId_, uint256 limit_) external {\\n        _ensureAllowed(\\\"setMaxDailyLimit(uint16,uint256)\\\");\\n        emit SetMaxDailyLimit(chainId_, chainIdToMaxDailyLimit[chainId_], limit_);\\n        chainIdToMaxDailyLimit[chainId_] = limit_;\\n    }\\n\\n    /**\\n     * @notice Triggers the paused state of the controller\\n     * @custom:access Controlled by AccessControlManager\\n     */\\n    function pause() external {\\n        _ensureAllowed(\\\"pause()\\\");\\n        _pause();\\n    }\\n\\n    /**\\n     * @notice Triggers the resume state of the controller\\n     * @custom:access Controlled by AccessControlManager\\n     */\\n    function unpause() external {\\n        _ensureAllowed(\\\"unpause()\\\");\\n        _unpause();\\n    }\\n\\n    /**\\n     * @notice Sets the address of Access Control Manager (ACM)\\n     * @param accessControlManager_ The new address of the Access Control Manager\\n     * @custom:access Only owner\\n     * @custom:event Emits NewAccessControlManager with old and new access control manager addresses\\n     */\\n    function setAccessControlManager(address accessControlManager_) external onlyOwner {\\n        ensureNonzeroAddress(accessControlManager_);\\n        emit NewAccessControlManager(accessControlManager, accessControlManager_);\\n        accessControlManager = accessControlManager_;\\n    }\\n\\n    /**\\n     * @notice Empty implementation of renounce ownership to avoid any mishap\\n     */\\n    function renounceOwnership() public override {}\\n\\n    /**\\n     * @notice Check eligibility to send commands\\n     * @param dstChainId_ Destination chain id\\n     * @param noOfCommands_ Number of commands to send\\n     */\\n    function _isEligibleToSend(uint16 dstChainId_, uint256 noOfCommands_) internal {\\n        // Load values for the 24-hour window checks\\n        uint256 currentBlockTimestamp = block.timestamp;\\n        uint256 lastDayWindowStart = chainIdToLast24HourWindowStart[dstChainId_];\\n        uint256 commandsSentInWindow = chainIdToLast24HourCommandsSent[dstChainId_];\\n        uint256 maxDailyLimit = chainIdToMaxDailyLimit[dstChainId_];\\n        uint256 lastProposalSentTimestamp = chainIdToLastProposalSentTimestamp[dstChainId_];\\n\\n        // Check if the time window has changed (more than 24 hours have passed)\\n        if (currentBlockTimestamp - lastDayWindowStart > 1 days) {\\n            commandsSentInWindow = noOfCommands_;\\n            chainIdToLast24HourWindowStart[dstChainId_] = currentBlockTimestamp;\\n        } else {\\n            commandsSentInWindow += noOfCommands_;\\n        }\\n\\n        // Revert if the amount exceeds the daily limit\\n        require(commandsSentInWindow <= maxDailyLimit, \\\"Daily Transaction Limit Exceeded\\\");\\n        // Revert if the last proposal is already sent in current block i.e multiple proposals cannot be sent within the same block.timestamp\\n        require(lastProposalSentTimestamp != currentBlockTimestamp, \\\"Multiple bridging in a proposal\\\");\\n\\n        // Update the amount for the 24-hour window\\n        chainIdToLast24HourCommandsSent[dstChainId_] = commandsSentInWindow;\\n        // Update the last sent proposal timestamp\\n        chainIdToLastProposalSentTimestamp[dstChainId_] = currentBlockTimestamp;\\n    }\\n\\n    /**\\n     * @notice Ensure that the caller has permission to execute a specific function\\n     * @param functionSig_ Function signature to be checked for permission\\n     */\\n    function _ensureAllowed(string memory functionSig_) internal view {\\n        require(\\n            IAccessControlManagerV8(accessControlManager).isAllowedToCall(msg.sender, functionSig_),\\n            \\\"access denied\\\"\\n        );\\n    }\\n}\\n\",\"keccak256\":\"0x9c00249496928d7ae7aa0c24543acd2cdd48670749b620c7256498d094fb036a\",\"license\":\"BSD-3-Clause\"},\"contracts/Cross-chain/OmnichainProposalSender.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity 0.8.25;\\n\\nimport { ReentrancyGuard } from \\\"@openzeppelin/contracts/security/ReentrancyGuard.sol\\\";\\nimport { ILayerZeroEndpoint } from \\\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroEndpoint.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\nimport { BaseOmnichainControllerSrc } from \\\"./BaseOmnichainControllerSrc.sol\\\";\\n\\n/**\\n * @title OmnichainProposalSender\\n * @author Venus\\n * @notice OmnichainProposalSender contract builds upon the functionality of its parent contract , BaseOmnichainControllerSrc\\n * It sends a proposal's data to remote chains for execution after the proposal passes on the main chain\\n * when used with GovernorBravo, the owner of this contract must be set to the Timelock contract\\n * @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion\\n */\\n\\ncontract OmnichainProposalSender is ReentrancyGuard, BaseOmnichainControllerSrc {\\n    /**\\n     * @notice Stores the total number of remote proposals\\n     */\\n    uint256 public proposalCount;\\n\\n    /**\\n     * @notice Execution hashes of failed messages\\n     * @dev [proposalId] -> [executionHash]\\n     */\\n    mapping(uint256 => bytes32) public storedExecutionHashes;\\n\\n    /**\\n     * @notice LayerZero endpoint for sending messages to remote chains\\n     */\\n    ILayerZeroEndpoint public immutable LZ_ENDPOINT;\\n\\n    /**\\n     * @notice Specifies the allowed path for sending messages (remote chainId => remote app address + local app address)\\n     */\\n    mapping(uint16 => bytes) public trustedRemoteLookup;\\n\\n    /**\\n     * @notice Emitted when a remote message receiver is set for the remote chain\\n     */\\n    event SetTrustedRemoteAddress(uint16 indexed remoteChainId, bytes oldRemoteAddress, bytes newRemoteAddress);\\n\\n    /**\\n     * @notice Event emitted when trusted remote sets to empty\\n     */\\n    event TrustedRemoteRemoved(uint16 indexed chainId);\\n\\n    /**\\n     * @notice Emitted when a proposal execution request is sent to the remote chain\\n     */\\n    event ExecuteRemoteProposal(uint16 indexed remoteChainId, uint256 proposalId, bytes payload);\\n\\n    /**\\n     * @notice Emitted when a previously failed message is successfully sent to the remote chain\\n     */\\n    event ClearPayload(uint256 indexed proposalId, bytes32 executionHash);\\n\\n    /**\\n     * @notice Emitted when an execution hash of a failed message is saved\\n     */\\n    event StorePayload(\\n        uint256 indexed proposalId,\\n        uint16 indexed remoteChainId,\\n        bytes payload,\\n        bytes adapterParams,\\n        uint256 value,\\n        bytes reason\\n    );\\n    /**\\n     * @notice Emitted while fallback withdraw\\n     */\\n    event FallbackWithdraw(address indexed receiver, uint256 value);\\n\\n    constructor(\\n        ILayerZeroEndpoint lzEndpoint_,\\n        address accessControlManager_\\n    ) BaseOmnichainControllerSrc(accessControlManager_) {\\n        ensureNonzeroAddress(address(lzEndpoint_));\\n        LZ_ENDPOINT = lzEndpoint_;\\n    }\\n\\n    /**\\n     * @notice Estimates LayerZero fees for cross-chain message delivery to the remote chain\\n     * @dev The estimated fees are the minimum required; it's recommended to increase the fees amount when sending a message. The unused amount will be refunded\\n     * @param remoteChainId_ The LayerZero id of a remote chain\\n     * @param payload_ The payload to be sent to the remote chain. It's computed as follows:\\n     * payload = abi.encode(abi.encode(targets, values, signatures, calldatas, proposalType), pId)\\n     * @param useZro_ Bool that indicates whether to pay in ZRO tokens or not\\n     * @param adapterParams_ The params used to specify the custom amount of gas required for the execution on the destination\\n     * @return nativeFee The amount of fee in the native gas token (e.g. ETH)\\n     * @return zroFee The amount of fee in ZRO token\\n     */\\n    function estimateFees(\\n        uint16 remoteChainId_,\\n        bytes calldata payload_,\\n        bool useZro_,\\n        bytes calldata adapterParams_\\n    ) external view returns (uint256, uint256) {\\n        return LZ_ENDPOINT.estimateFees(remoteChainId_, address(this), payload_, useZro_, adapterParams_);\\n    }\\n\\n    /**\\n     * @notice Remove trusted remote from storage\\n     * @param remoteChainId_ The chain's id corresponds to setting the trusted remote to empty\\n     * @custom:access Controlled by Access Control Manager\\n     * @custom:event Emit TrustedRemoteRemoved with remote chain id\\n     */\\n    function removeTrustedRemote(uint16 remoteChainId_) external {\\n        _ensureAllowed(\\\"removeTrustedRemote(uint16)\\\");\\n        require(trustedRemoteLookup[remoteChainId_].length != 0, \\\"OmnichainProposalSender: trusted remote not found\\\");\\n        delete trustedRemoteLookup[remoteChainId_];\\n        emit TrustedRemoteRemoved(remoteChainId_);\\n    }\\n\\n    /**\\n     * @notice Sends a message to execute a remote proposal\\n     * @dev Stores the hash of the execution parameters if sending fails (e.g., due to insufficient fees)\\n     * @param remoteChainId_ The LayerZero id of the remote chain\\n     * @param payload_ The payload to be sent to the remote chain\\n     * It's computed as follows: payload = abi.encode(targets, values, signatures, calldatas, proposalType)\\n     * @param adapterParams_ The params used to specify the custom amount of gas required for the execution on the destination\\n     * @param zroPaymentAddress_ The address of the ZRO token holder who would pay for the transaction. This must be either address(this) or tx.origin\\n     * @custom:event Emits ExecuteRemoteProposal with remote chain id, proposal ID and payload on success\\n     * @custom:event Emits StorePayload with last stored payload proposal ID ,remote chain id , payload, adapter params , values and reason for failure\\n     * @custom:access Controlled by Access Control Manager\\n     */\\n    function execute(\\n        uint16 remoteChainId_,\\n        bytes calldata payload_,\\n        bytes calldata adapterParams_,\\n        address zroPaymentAddress_\\n    ) external payable whenNotPaused {\\n        _ensureAllowed(\\\"execute(uint16,bytes,bytes,address)\\\");\\n\\n        // A zero value will result in a failed message; therefore, a positive value is required to send a message across the chain.\\n        require(msg.value > 0, \\\"OmnichainProposalSender: value cannot be zero\\\");\\n        require(payload_.length != 0, \\\"OmnichainProposalSender: empty payload\\\");\\n\\n        bytes memory trustedRemote = trustedRemoteLookup[remoteChainId_];\\n        require(trustedRemote.length != 0, \\\"OmnichainProposalSender: destination chain is not a trusted source\\\");\\n        _validateProposal(remoteChainId_, payload_);\\n        uint256 _pId = ++proposalCount;\\n        bytes memory payload = abi.encode(payload_, _pId);\\n\\n        try\\n            LZ_ENDPOINT.send{ value: msg.value }(\\n                remoteChainId_,\\n                trustedRemote,\\n                payload,\\n                payable(msg.sender),\\n                zroPaymentAddress_,\\n                adapterParams_\\n            )\\n        {\\n            emit ExecuteRemoteProposal(remoteChainId_, _pId, payload);\\n        } catch (bytes memory reason) {\\n            storedExecutionHashes[_pId] = keccak256(abi.encode(remoteChainId_, payload, adapterParams_, msg.value));\\n            emit StorePayload(_pId, remoteChainId_, payload, adapterParams_, msg.value, reason);\\n        }\\n    }\\n\\n    /**\\n     * @notice Resends a previously failed message\\n     * @dev Allows providing more fees if needed. The extra fees will be refunded to the caller\\n     * @param pId_ The proposal ID to identify a failed message\\n     * @param remoteChainId_ The LayerZero id of the remote chain\\n     * @param payload_ The payload to be sent to the remote chain\\n     * It's computed as follows: payload = abi.encode(abi.encode(targets, values, signatures, calldatas, proposalType), pId)\\n     * @param adapterParams_ The params used to specify the custom amount of gas required for the execution on the destination\\n     * @param zroPaymentAddress_ The address of the ZRO token holder who would pay for the transaction.\\n     * @param originalValue_ The msg.value passed when execute() function was called\\n     * @custom:event Emits ClearPayload with proposal ID and hash\\n     * @custom:access Controlled by Access Control Manager\\n     */\\n    function retryExecute(\\n        uint256 pId_,\\n        uint16 remoteChainId_,\\n        bytes calldata payload_,\\n        bytes calldata adapterParams_,\\n        address zroPaymentAddress_,\\n        uint256 originalValue_\\n    ) external payable whenNotPaused nonReentrant {\\n        _ensureAllowed(\\\"retryExecute(uint256,uint16,bytes,bytes,address,uint256)\\\");\\n        bytes memory trustedRemote = trustedRemoteLookup[remoteChainId_];\\n        require(trustedRemote.length != 0, \\\"OmnichainProposalSender: destination chain is not a trusted source\\\");\\n        bytes32 hash = storedExecutionHashes[pId_];\\n        require(hash != bytes32(0), \\\"OmnichainProposalSender: no stored payload\\\");\\n        require(payload_.length != 0, \\\"OmnichainProposalSender: empty payload\\\");\\n        (bytes memory payload, ) = abi.decode(payload_, (bytes, uint256));\\n        _validateProposal(remoteChainId_, payload);\\n\\n        require(\\n            keccak256(abi.encode(remoteChainId_, payload_, adapterParams_, originalValue_)) == hash,\\n            \\\"OmnichainProposalSender: invalid execution params\\\"\\n        );\\n\\n        delete storedExecutionHashes[pId_];\\n\\n        emit ClearPayload(pId_, hash);\\n\\n        LZ_ENDPOINT.send{ value: originalValue_ + msg.value }(\\n            remoteChainId_,\\n            trustedRemote,\\n            payload_,\\n            payable(msg.sender),\\n            zroPaymentAddress_,\\n            adapterParams_\\n        );\\n    }\\n\\n    /**\\n     * @notice Clear previously failed message\\n     * @param to_ Address of the receiver\\n     * @param pId_ The proposal ID to identify a failed message\\n     * @param remoteChainId_ The LayerZero id of the remote chain\\n     * @param payload_ The payload to be sent to the remote chain\\n     * It's computed as follows: payload = abi.encode(abi.encode(targets, values, signatures, calldatas, proposalType), pId)\\n     * @param adapterParams_ The params used to specify the custom amount of gas required for the execution on the destination\\n     * @param originalValue_ The msg.value passed when execute() function was called\\n     * @custom:access Only owner\\n     * @custom:event Emits ClearPayload with proposal ID and hash\\n     * @custom:event Emits FallbackWithdraw with receiver and amount\\n     */\\n    function fallbackWithdraw(\\n        address to_,\\n        uint256 pId_,\\n        uint16 remoteChainId_,\\n        bytes calldata payload_,\\n        bytes calldata adapterParams_,\\n        uint256 originalValue_\\n    ) external onlyOwner nonReentrant {\\n        ensureNonzeroAddress(to_);\\n        require(originalValue_ > 0, \\\"OmnichainProposalSender: invalid native amount\\\");\\n        require(payload_.length != 0, \\\"OmnichainProposalSender: empty payload\\\");\\n\\n        bytes32 hash = storedExecutionHashes[pId_];\\n        require(hash != bytes32(0), \\\"OmnichainProposalSender: no stored payload\\\");\\n\\n        bytes memory execution = abi.encode(remoteChainId_, payload_, adapterParams_, originalValue_);\\n        require(keccak256(execution) == hash, \\\"OmnichainProposalSender: invalid execution params\\\");\\n\\n        delete storedExecutionHashes[pId_];\\n\\n        emit FallbackWithdraw(to_, originalValue_);\\n        emit ClearPayload(pId_, hash);\\n\\n        // Transfer the native to the `to_` address\\n        (bool sent, ) = to_.call{ value: originalValue_ }(\\\"\\\");\\n        require(sent, \\\"Call failed\\\");\\n    }\\n\\n    /**\\n     * @notice Sets the remote message receiver address\\n     * @param remoteChainId_ The LayerZero id of a remote chain\\n     * @param newRemoteAddress_ The address of the contract on the remote chain to receive messages sent by this contract\\n     * @custom:access Controlled by AccessControlManager\\n     * @custom:event Emits SetTrustedRemoteAddress with remote chain Id and remote address\\n     */\\n    function setTrustedRemoteAddress(uint16 remoteChainId_, bytes calldata newRemoteAddress_) external {\\n        _ensureAllowed(\\\"setTrustedRemoteAddress(uint16,bytes)\\\");\\n        require(remoteChainId_ != 0, \\\"OmnichainProposalSender: chainId must not be zero\\\");\\n        ensureNonzeroAddress(address(uint160(bytes20(newRemoteAddress_))));\\n        require(newRemoteAddress_.length == 20, \\\"OmnichainProposalSender: remote address must be 20 bytes long\\\");\\n        bytes memory oldRemoteAddress = trustedRemoteLookup[remoteChainId_];\\n        trustedRemoteLookup[remoteChainId_] = abi.encodePacked(newRemoteAddress_, address(this));\\n        emit SetTrustedRemoteAddress(remoteChainId_, oldRemoteAddress, trustedRemoteLookup[remoteChainId_]);\\n    }\\n\\n    /**\\n     * @notice Sets the configuration of the LayerZero messaging library of the specified version\\n     * @param version_ Messaging library version\\n     * @param chainId_ The LayerZero chainId for the pending config change\\n     * @param configType_ The type of configuration. Every messaging library has its own convention\\n     * @param config_ The configuration in bytes. It can encode arbitrary content\\n     * @custom:access Controlled by AccessControlManager\\n     */\\n    function setConfig(uint16 version_, uint16 chainId_, uint256 configType_, bytes calldata config_) external {\\n        _ensureAllowed(\\\"setConfig(uint16,uint16,uint256,bytes)\\\");\\n        LZ_ENDPOINT.setConfig(version_, chainId_, configType_, config_);\\n    }\\n\\n    /**\\n     * @notice Sets the configuration of the LayerZero messaging library of the specified version\\n     * @param version_ New messaging library version\\n     * @custom:access Controlled by AccessControlManager\\n     */\\n    function setSendVersion(uint16 version_) external {\\n        _ensureAllowed(\\\"setSendVersion(uint16)\\\");\\n        LZ_ENDPOINT.setSendVersion(version_);\\n    }\\n\\n    /**\\n     * @notice Gets the configuration of the LayerZero messaging library of the specified version\\n     * @param version_ Messaging library version\\n     * @param chainId_ The LayerZero chainId\\n     * @param configType_ Type of configuration. Every messaging library has its own convention\\n     */\\n    function getConfig(uint16 version_, uint16 chainId_, uint256 configType_) external view returns (bytes memory) {\\n        return LZ_ENDPOINT.getConfig(version_, chainId_, address(this), configType_);\\n    }\\n\\n    function _validateProposal(uint16 remoteChainId_, bytes memory payload_) internal {\\n        (\\n            address[] memory targets,\\n            uint256[] memory values,\\n            string[] memory signatures,\\n            bytes[] memory calldatas,\\n\\n        ) = abi.decode(payload_, (address[], uint[], string[], bytes[], uint8));\\n        require(\\n            targets.length == values.length &&\\n                targets.length == signatures.length &&\\n                targets.length == calldatas.length,\\n            \\\"OmnichainProposalSender: proposal function information arity mismatch\\\"\\n        );\\n        _isEligibleToSend(remoteChainId_, targets.length);\\n    }\\n}\\n\",\"keccak256\":\"0x23948e6cc55e49f5ebff6f5811c2073274eb34da87a9c62399bb602fcf8792da\",\"license\":\"MIT\"},\"contracts/Governance/IAccessControlManagerV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/access/IAccessControl.sol\\\";\\n\\n/**\\n * @title IAccessControlManagerV8\\n * @author Venus\\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\\n */\\ninterface IAccessControlManagerV8 is IAccessControl {\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\\n\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) external;\\n\\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\\n\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xaa29b098440d0b3a131c5ecdf25ce548790c1b5ac7bf9b5c0264b6af6f7a1e0b\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":7195,"contract":"contracts/Cross-chain/OmnichainProposalSender.sol:OmnichainProposalSender","label":"_status","offset":0,"slot":"0","type":"t_uint256"},{"astId":6971,"contract":"contracts/Cross-chain/OmnichainProposalSender.sol:OmnichainProposalSender","label":"_owner","offset":0,"slot":"1","type":"t_address"},{"astId":7094,"contract":"contracts/Cross-chain/OmnichainProposalSender.sol:OmnichainProposalSender","label":"_paused","offset":20,"slot":"1","type":"t_bool"},{"astId":11146,"contract":"contracts/Cross-chain/OmnichainProposalSender.sol:OmnichainProposalSender","label":"accessControlManager","offset":0,"slot":"2","type":"t_address"},{"astId":11151,"contract":"contracts/Cross-chain/OmnichainProposalSender.sol:OmnichainProposalSender","label":"chainIdToMaxDailyLimit","offset":0,"slot":"3","type":"t_mapping(t_uint16,t_uint256)"},{"astId":11156,"contract":"contracts/Cross-chain/OmnichainProposalSender.sol:OmnichainProposalSender","label":"chainIdToLast24HourCommandsSent","offset":0,"slot":"4","type":"t_mapping(t_uint16,t_uint256)"},{"astId":11161,"contract":"contracts/Cross-chain/OmnichainProposalSender.sol:OmnichainProposalSender","label":"chainIdToLast24HourWindowStart","offset":0,"slot":"5","type":"t_mapping(t_uint16,t_uint256)"},{"astId":11166,"contract":"contracts/Cross-chain/OmnichainProposalSender.sol:OmnichainProposalSender","label":"chainIdToLastProposalSentTimestamp","offset":0,"slot":"6","type":"t_mapping(t_uint16,t_uint256)"},{"astId":12724,"contract":"contracts/Cross-chain/OmnichainProposalSender.sol:OmnichainProposalSender","label":"proposalCount","offset":0,"slot":"7","type":"t_uint256"},{"astId":12729,"contract":"contracts/Cross-chain/OmnichainProposalSender.sol:OmnichainProposalSender","label":"storedExecutionHashes","offset":0,"slot":"8","type":"t_mapping(t_uint256,t_bytes32)"},{"astId":12738,"contract":"contracts/Cross-chain/OmnichainProposalSender.sol:OmnichainProposalSender","label":"trustedRemoteLookup","offset":0,"slot":"9","type":"t_mapping(t_uint16,t_bytes_storage)"}],"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_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_uint16,t_bytes_storage)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => bytes)","numberOfBytes":"32","value":"t_bytes_storage"},"t_mapping(t_uint16,t_uint256)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint256,t_bytes32)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"errors":{"ZeroAddressNotAllowed()":[{"notice":"Thrown if the supplied address is a zero address where it is not allowed"}]},"events":{"ClearPayload(uint256,bytes32)":{"notice":"Emitted when a previously failed message is successfully sent to the remote chain"},"ExecuteRemoteProposal(uint16,uint256,bytes)":{"notice":"Emitted when a proposal execution request is sent to the remote chain"},"FallbackWithdraw(address,uint256)":{"notice":"Emitted while fallback withdraw"},"NewAccessControlManager(address,address)":{"notice":"Emitted when the address of ACM is updated"},"SetMaxDailyLimit(uint16,uint256,uint256)":{"notice":"Emitted when the maximum daily limit of commands from the local chain is modified"},"SetTrustedRemoteAddress(uint16,bytes,bytes)":{"notice":"Emitted when a remote message receiver is set for the remote chain"},"StorePayload(uint256,uint16,bytes,bytes,uint256,bytes)":{"notice":"Emitted when an execution hash of a failed message is saved"},"TrustedRemoteRemoved(uint16)":{"notice":"Event emitted when trusted remote sets to empty"}},"kind":"user","methods":{"LZ_ENDPOINT()":{"notice":"LayerZero endpoint for sending messages to remote chains"},"accessControlManager()":{"notice":"ACM (Access Control Manager) contract address"},"chainIdToLast24HourCommandsSent(uint16)":{"notice":"Total commands transferred within the last 24-hour window from the local chain"},"chainIdToLast24HourWindowStart(uint16)":{"notice":"Timestamp when the last 24-hour window started from the local chain"},"chainIdToLastProposalSentTimestamp(uint16)":{"notice":"Timestamp when the last proposal sent from the local chain to dest chain"},"chainIdToMaxDailyLimit(uint16)":{"notice":"Maximum daily limit for commands from the local chain"},"estimateFees(uint16,bytes,bool,bytes)":{"notice":"Estimates LayerZero fees for cross-chain message delivery to the remote chain"},"execute(uint16,bytes,bytes,address)":{"notice":"Sends a message to execute a remote proposal"},"fallbackWithdraw(address,uint256,uint16,bytes,bytes,uint256)":{"notice":"Clear previously failed message"},"getConfig(uint16,uint16,uint256)":{"notice":"Gets the configuration of the LayerZero messaging library of the specified version"},"pause()":{"notice":"Triggers the paused state of the controller"},"proposalCount()":{"notice":"Stores the total number of remote proposals"},"removeTrustedRemote(uint16)":{"notice":"Remove trusted remote from storage"},"renounceOwnership()":{"notice":"Empty implementation of renounce ownership to avoid any mishap"},"retryExecute(uint256,uint16,bytes,bytes,address,uint256)":{"notice":"Resends a previously failed message"},"setAccessControlManager(address)":{"notice":"Sets the address of Access Control Manager (ACM)"},"setConfig(uint16,uint16,uint256,bytes)":{"notice":"Sets the configuration of the LayerZero messaging library of the specified version"},"setMaxDailyLimit(uint16,uint256)":{"notice":"Sets the limit of daily (24 Hour) command amount"},"setSendVersion(uint16)":{"notice":"Sets the configuration of the LayerZero messaging library of the specified version"},"setTrustedRemoteAddress(uint16,bytes)":{"notice":"Sets the remote message receiver address"},"storedExecutionHashes(uint256)":{"notice":"Execution hashes of failed messages"},"trustedRemoteLookup(uint16)":{"notice":"Specifies the allowed path for sending messages (remote chainId => remote app address + local app address)"},"unpause()":{"notice":"Triggers the resume state of the controller"}},"notice":"OmnichainProposalSender contract builds upon the functionality of its parent contract , BaseOmnichainControllerSrc It sends a proposal's data to remote chains for execution after the proposal passes on the main chain when used with GovernorBravo, the owner of this contract must be set to the Timelock contract","version":1}}},"contracts/Cross-chain/interfaces/IOmnichainGovernanceExecutor.sol":{"IOmnichainGovernanceExecutor":{"abi":[{"inputs":[{"internalType":"uint16","name":"srcChainId_","type":"uint16"},{"internalType":"bytes","name":"srcAddress_","type":"bytes"}],"name":"setTrustedRemoteAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{"setTrustedRemoteAddress(uint16,bytes)":{"params":{"srcAddress_":"The address of the contract on the source chain","srcChainId_":"The LayerZero id of a source chain"}},"transferOwnership(address)":{"params":{"addr":"The address to which ownership will be transferred"}}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"setTrustedRemoteAddress(uint16,bytes)":"a6c3d165","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"srcChainId_\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"srcAddress_\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemoteAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"setTrustedRemoteAddress(uint16,bytes)\":{\"params\":{\"srcAddress_\":\"The address of the contract on the source chain\",\"srcChainId_\":\"The LayerZero id of a source chain\"}},\"transferOwnership(address)\":{\"params\":{\"addr\":\"The address to which ownership will be transferred\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"setTrustedRemoteAddress(uint16,bytes)\":{\"notice\":\"Sets the source message sender address\"},\"transferOwnership(address)\":{\"notice\":\"Transfers ownership of the contract to the specified address\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Cross-chain/interfaces/IOmnichainGovernanceExecutor.sol\":\"IOmnichainGovernanceExecutor\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"contracts/Cross-chain/interfaces/IOmnichainGovernanceExecutor.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.25;\\n\\ninterface IOmnichainGovernanceExecutor {\\n    /**\\n     * @notice Transfers ownership of the contract to the specified address\\n     * @param addr The address to which ownership will be transferred\\n     */\\n    function transferOwnership(address addr) external;\\n\\n    /**\\n     * @notice Sets the source message sender address\\n     * @param srcChainId_ The LayerZero id of a source chain\\n     * @param srcAddress_ The address of the contract on the source chain\\n     */\\n    function setTrustedRemoteAddress(uint16 srcChainId_, bytes calldata srcAddress_) external;\\n}\\n\",\"keccak256\":\"0xae3df89cc760968a190e3d723211a643c2aa49c54c0579a1e17db4fc27bf24cb\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{"setTrustedRemoteAddress(uint16,bytes)":{"notice":"Sets the source message sender address"},"transferOwnership(address)":{"notice":"Transfers ownership of the contract to the specified address"}},"version":1}}},"contracts/Cross-chain/interfaces/ITimelock.sol":{"ITimelock":{"abi":[{"inputs":[],"name":"GRACE_PERIOD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"signature","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"eta","type":"uint256"}],"name":"cancelTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"delay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"signature","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"eta","type":"uint256"}],"name":"executeTransaction","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"signature","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"eta","type":"uint256"}],"name":"queueTransaction","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"}],"name":"queuedTransactions","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingAdmin","type":"address"}],"name":"setPendingAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Venus","custom:security-contact":"https://github.com/VenusProtocol/governance-contracts#discussion","details":"Interface for Timelock contract","kind":"dev","methods":{"cancelTransaction(address,uint256,string,bytes,uint256)":{"params":{"data":"Arguments to be passed to the function when called","eta":"Timestamp after which the transaction can be executed","signature":"signature of the function to be called","target":"Address of the contract with the method to be called","value":"Native token amount sent with the transaction"}},"executeTransaction(address,uint256,string,bytes,uint256)":{"params":{"data":"Arguments to be passed to the function when called","eta":"Timestamp after which the transaction can be executed","signature":"signature of the function to be called","target":"Address of the contract with the method to be called","value":"Native token amount sent with the transaction"},"returns":{"_0":"Result of function call"}},"queueTransaction(address,uint256,string,bytes,uint256)":{"params":{"data":"Arguments to be passed to the function when called","eta":"Timestamp after which the transaction can be executed","signature":"signature of the function to be called","target":"Address of the contract with the method to be called","value":"Native token amount sent with the transaction"},"returns":{"_0":"Hash of the queued transaction"}},"queuedTransactions(bytes32)":{"params":{"hash":"Transaction hash"}}},"title":"ITimelock","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"GRACE_PERIOD()":"c1a287e2","acceptAdmin()":"0e18b681","cancelTransaction(address,uint256,string,bytes,uint256)":"591fcdfe","delay()":"6a42b8f8","executeTransaction(address,uint256,string,bytes,uint256)":"0825f38f","queueTransaction(address,uint256,string,bytes,uint256)":"3a66f901","queuedTransactions(bytes32)":"f2b06537","setPendingAdmin(address)":"4dd18bf5"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"GRACE_PERIOD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"cancelTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"executeTransaction\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"queueTransaction\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"name\":\"queuedTransactions\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingAdmin\",\"type\":\"address\"}],\"name\":\"setPendingAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"custom:security-contact\":\"https://github.com/VenusProtocol/governance-contracts#discussion\",\"details\":\"Interface for Timelock contract\",\"kind\":\"dev\",\"methods\":{\"cancelTransaction(address,uint256,string,bytes,uint256)\":{\"params\":{\"data\":\"Arguments to be passed to the function when called\",\"eta\":\"Timestamp after which the transaction can be executed\",\"signature\":\"signature of the function to be called\",\"target\":\"Address of the contract with the method to be called\",\"value\":\"Native token amount sent with the transaction\"}},\"executeTransaction(address,uint256,string,bytes,uint256)\":{\"params\":{\"data\":\"Arguments to be passed to the function when called\",\"eta\":\"Timestamp after which the transaction can be executed\",\"signature\":\"signature of the function to be called\",\"target\":\"Address of the contract with the method to be called\",\"value\":\"Native token amount sent with the transaction\"},\"returns\":{\"_0\":\"Result of function call\"}},\"queueTransaction(address,uint256,string,bytes,uint256)\":{\"params\":{\"data\":\"Arguments to be passed to the function when called\",\"eta\":\"Timestamp after which the transaction can be executed\",\"signature\":\"signature of the function to be called\",\"target\":\"Address of the contract with the method to be called\",\"value\":\"Native token amount sent with the transaction\"},\"returns\":{\"_0\":\"Hash of the queued transaction\"}},\"queuedTransactions(bytes32)\":{\"params\":{\"hash\":\"Transaction hash\"}}},\"title\":\"ITimelock\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"GRACE_PERIOD()\":{\"notice\":\"Required period to execute a proposal transaction\"},\"acceptAdmin()\":{\"notice\":\"Method for accepting a proposed admin\"},\"cancelTransaction(address,uint256,string,bytes,uint256)\":{\"notice\":\"Called to cancel a queued transaction\"},\"delay()\":{\"notice\":\"Delay period for the transaction queue\"},\"executeTransaction(address,uint256,string,bytes,uint256)\":{\"notice\":\"Called to execute a queued transaction\"},\"queueTransaction(address,uint256,string,bytes,uint256)\":{\"notice\":\"Called for each action when queuing a proposal\"},\"queuedTransactions(bytes32)\":{\"notice\":\"Show mapping of queued transactions\"},\"setPendingAdmin(address)\":{\"notice\":\"Method to propose a new admin authorized to call timelock functions. This should be the Governor Contract.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Cross-chain/interfaces/ITimelock.sol\":\"ITimelock\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"contracts/Cross-chain/interfaces/ITimelock.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\n/**\\n * @title ITimelock\\n * @author Venus\\n * @dev Interface for Timelock contract\\n * @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion\\n */\\ninterface ITimelock {\\n    /**\\n     * @notice Delay period for the transaction queue\\n     */\\n    function delay() external view returns (uint256);\\n\\n    /**\\n     * @notice Required period to execute a proposal transaction\\n     */\\n    function GRACE_PERIOD() external view returns (uint256);\\n\\n    /**\\n     * @notice Method for accepting a proposed admin\\n     */\\n    function acceptAdmin() external;\\n\\n    /**\\n     * @notice Method to propose a new admin authorized to call timelock functions. This should be the Governor Contract.\\n     */\\n    function setPendingAdmin(address pendingAdmin) external;\\n\\n    /**\\n     * @notice Show mapping of queued transactions\\n     * @param hash Transaction hash\\n     */\\n    function queuedTransactions(bytes32 hash) external view returns (bool);\\n\\n    /**\\n     * @notice Called for each action when queuing a proposal\\n     * @param target Address of the contract with the method to be called\\n     * @param value Native token amount sent with the transaction\\n     * @param signature signature of the function to be called\\n     * @param data Arguments to be passed to the function when called\\n     * @param eta Timestamp after which the transaction can be executed\\n     * @return Hash of the queued transaction\\n     */\\n    function queueTransaction(\\n        address target,\\n        uint256 value,\\n        string calldata signature,\\n        bytes calldata data,\\n        uint256 eta\\n    ) external returns (bytes32);\\n\\n    /**\\n     * @notice Called to cancel a queued transaction\\n     * @param target Address of the contract with the method to be called\\n     * @param value Native token amount sent with the transaction\\n     * @param signature signature of the function to be called\\n     * @param data Arguments to be passed to the function when called\\n     * @param eta Timestamp after which the transaction can be executed\\n     */\\n    function cancelTransaction(\\n        address target,\\n        uint256 value,\\n        string calldata signature,\\n        bytes calldata data,\\n        uint256 eta\\n    ) external;\\n\\n    /**\\n     * @notice Called to execute a queued transaction\\n     * @param target Address of the contract with the method to be called\\n     * @param value Native token amount sent with the transaction\\n     * @param signature signature of the function to be called\\n     * @param data Arguments to be passed to the function when called\\n     * @param eta Timestamp after which the transaction can be executed\\n     * @return Result of function call\\n     */\\n    function executeTransaction(\\n        address target,\\n        uint256 value,\\n        string calldata signature,\\n        bytes calldata data,\\n        uint256 eta\\n    ) external payable returns (bytes memory);\\n}\\n\",\"keccak256\":\"0x7e05998e5b36a78e6b7933e446c0e0a634ba7fdaae1eb8ba6d4affe12f3a2712\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{"GRACE_PERIOD()":{"notice":"Required period to execute a proposal transaction"},"acceptAdmin()":{"notice":"Method for accepting a proposed admin"},"cancelTransaction(address,uint256,string,bytes,uint256)":{"notice":"Called to cancel a queued transaction"},"delay()":{"notice":"Delay period for the transaction queue"},"executeTransaction(address,uint256,string,bytes,uint256)":{"notice":"Called to execute a queued transaction"},"queueTransaction(address,uint256,string,bytes,uint256)":{"notice":"Called for each action when queuing a proposal"},"queuedTransactions(bytes32)":{"notice":"Show mapping of queued transactions"},"setPendingAdmin(address)":{"notice":"Method to propose a new admin authorized to call timelock functions. This should be the Governor Contract."}},"version":1}}},"contracts/Governance/AccessControlManager.sol":{"AccessControlManager":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"address","name":"contractAddress","type":"address"},{"indexed":false,"internalType":"string","name":"functionSig","type":"string"}],"name":"PermissionGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"address","name":"contractAddress","type":"address"},{"indexed":false,"internalType":"string","name":"functionSig","type":"string"}],"name":"PermissionRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"string","name":"functionSig","type":"string"},{"internalType":"address","name":"accountToPermit","type":"address"}],"name":"giveCallPermission","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"string","name":"functionSig","type":"string"}],"name":"hasPermission","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"string","name":"functionSig","type":"string"}],"name":"isAllowedToCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"string","name":"functionSig","type":"string"},{"internalType":"address","name":"accountToRevoke","type":"address"}],"name":"revokeCallPermission","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"devdoc":{"author":"Venus","details":"This contract is a wrapper of OpenZeppelin AccessControl extending it in a way to standartize access control within Venus Smart Contract Ecosystem.","events":{"PermissionGranted(address,address,string)":{"details":"If contract address is 0x000..0 this means that the account is a default admin of this function and can call any contract function with this signature"},"RoleAdminChanged(bytes32,bytes32,bytes32)":{"details":"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._"},"RoleGranted(bytes32,address,address)":{"details":"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}."},"RoleRevoked(bytes32,address,address)":{"details":"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)"}},"kind":"dev","methods":{"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"giveCallPermission(address,string,address)":{"custom:event":"Emits a {RoleGranted} and {PermissionGranted} events.","details":"this function can be called only from Role Admin or DEFAULT_ADMIN_ROLEif contractAddress is zero address, the account can access the specified function      on **any** contract managed by this ACL","params":{"accountToPermit":"account that will be given access to the contract function","contractAddress":"address of contract for which call permissions will be granted","functionSig":"signature e.g. \"functionName(uint256,bool)\""}},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasPermission(address,address,string)":{"details":"This function is used as a view function to check permissions rather than contract hook for access restriction check.","params":{"account":"for which call permissions will be checked against","contractAddress":"address of the restricted contract","functionSig":"signature of the restricted function e.g. \"functionName(uint256,bool)\""},"returns":{"_0":"false if the user account cannot call the particular contract function"}},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"isAllowedToCall(address,string)":{"details":"Since restricted contracts using this function as a permission hook, we can get contracts address with msg.sender","params":{"account":"for which call permissions will be checked","functionSig":"restricted function signature e.g. \"functionName(uint256,bool)\""},"returns":{"_0":"false if the user account cannot call the particular contract function"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event."},"revokeCallPermission(address,string,address)":{"custom:event":"Emits {RoleRevoked} and {PermissionRevoked} events.","details":"this function can be called only from Role Admin or DEFAULT_ADMIN_ROLE \t\tMay emit a {RoleRevoked} event.","params":{"contractAddress":"address of contract for which call permissions will be revoked","functionSig":"signature e.g. \"functionName(uint256,bool)\""}},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"title":"AccessControlManager","version":1},"evm":{"bytecode":{"functionDebugData":{"@_13562":{"entryPoint":null,"id":13562,"parameterSlots":0,"returnSlots":0},"@_grantRole_6858":{"entryPoint":41,"id":6858,"parameterSlots":2,"returnSlots":0},"@_msgSender_8081":{"entryPoint":null,"id":8081,"parameterSlots":0,"returnSlots":1},"@_setupRole_6798":{"entryPoint":29,"id":6798,"parameterSlots":2,"returnSlots":0},"@hasRole_6654":{"entryPoint":null,"id":6654,"parameterSlots":2,"returnSlots":1}},"generatedSources":[],"linkReferences":{},"object":"6080604052348015600f57600080fd5b506019600033601d565b60c5565b602582826029565b5050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166025576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905560813390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b610f19806100d46000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c8063545f7a321161008157806391d148541161005b57806391d148541461019b578063a217fddf146101df578063d547741f146101e757600080fd5b8063545f7a3214610162578063584f6b601461017557806382bfd0f01461018857600080fd5b8063248a9ca3116100b2578063248a9ca3146101095780632f2ff15d1461013a57806336568abe1461014f57600080fd5b806301ffc9a7146100ce57806318c5e8ab146100f6575b600080fd5b6100e16100dc366004610a74565b6101fa565b60405190151581526020015b60405180910390f35b6100e1610104366004610b28565b610293565b61012c610117366004610b7b565b60009081526020819052604090206001015490565b6040519081526020016100ed565b61014d610148366004610b94565b610368565b005b61014d61015d366004610b94565b610392565b61014d610170366004610bc0565b61044a565b61014d610183366004610bc0565b6104c7565b6100e1610196366004610c25565b610535565b6100e16101a9366004610b94565b60009182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b61012c600081565b61014d6101f5366004610b94565b61059f565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061028d57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6000803384846040516020016102ab93929190610c86565b60408051601f198184030181529181528151602092830120600081815280845282812073ffffffffffffffffffffffffffffffffffffffff8a16825290935291205490915060ff1615610302576001915050610361565b6000848460405160200161031893929190610c86565b60408051808303601f190181529181528151602092830120600090815280835281812073ffffffffffffffffffffffffffffffffffffffff8916825290925290205460ff169150505b9392505050565b600082815260208190526040902060010154610383816105c4565b61038d83836105d1565b505050565b73ffffffffffffffffffffffffffffffffffffffff8116331461043c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b61044682826106c1565b5050565b600084848460405160200161046193929190610c86565b604051602081830303815290604052805190602001209050610483818361059f565b7f55426a61e90ac7d7d1fc886b67b420ade8c8b535e68d655394bc271e3a12b8e2828686866040516104b89493929190610cc5565b60405180910390a15050505050565b60008484846040516020016104de93929190610c86565b6040516020818303038152906040528051906020012090506105008183610368565b7f69c5ce2d658fea352a2464f87ffbe1f09746c918a91da0994044c3767d641b3f828686866040516104b89493929190610cc5565b60008084848460405160200161054d93929190610c86565b60408051601f198184030181529181528151602092830120600081815280845282812073ffffffffffffffffffffffffffffffffffffffff8b16825290935291205490915060ff169695505050505050565b6000828152602081905260409020600101546105ba816105c4565b61038d83836106c1565b6105ce8133610778565b50565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff166104465760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff85168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556106633390565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16156104465760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610446576107b681610812565b6107c1836020610831565b6040516020016107d2929190610d43565b60408051601f19818403018152908290527f08c379a000000000000000000000000000000000000000000000000000000000825261043391600401610dc4565b606061028d73ffffffffffffffffffffffffffffffffffffffff831660145b60606000610840836002610e26565b61084b906002610e3d565b67ffffffffffffffff81111561086357610863610e50565b6040519080825280601f01601f19166020018201604052801561088d576020820181803683370190505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106108c4576108c4610e7f565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061092757610927610e7f565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000610963846002610e26565b61096e906001610e3d565b90505b6001811115610a0b577f303132333435363738396162636465660000000000000000000000000000000085600f16601081106109af576109af610e7f565b1a60f81b8282815181106109c5576109c5610e7f565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c93610a0481610eae565b9050610971565b508315610361576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610433565b600060208284031215610a8657600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461036157600080fd5b803573ffffffffffffffffffffffffffffffffffffffff81168114610ada57600080fd5b919050565b60008083601f840112610af157600080fd5b50813567ffffffffffffffff811115610b0957600080fd5b602083019150836020828501011115610b2157600080fd5b9250929050565b600080600060408486031215610b3d57600080fd5b610b4684610ab6565b9250602084013567ffffffffffffffff811115610b6257600080fd5b610b6e86828701610adf565b9497909650939450505050565b600060208284031215610b8d57600080fd5b5035919050565b60008060408385031215610ba757600080fd5b82359150610bb760208401610ab6565b90509250929050565b60008060008060608587031215610bd657600080fd5b610bdf85610ab6565b9350602085013567ffffffffffffffff811115610bfb57600080fd5b610c0787828801610adf565b9094509250610c1a905060408601610ab6565b905092959194509250565b60008060008060608587031215610c3b57600080fd5b610c4485610ab6565b9350610c5260208601610ab6565b9250604085013567ffffffffffffffff811115610c6e57600080fd5b610c7a87828801610adf565b95989497509550505050565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008460601b168152818360148301376000910160140190815292915050565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525060606040830152826060830152828460808401376000608084840101526080601f19601f850116830101905095945050505050565b60005b83811015610d3a578181015183820152602001610d22565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351610d7b816017850160208801610d1f565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351610db8816028840160208801610d1f565b01602801949350505050565b6020815260008251806020840152610de3816040850160208701610d1f565b601f01601f19169190910160400192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808202811582820484141761028d5761028d610df7565b8082018082111561028d5761028d610df7565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081610ebd57610ebd610df7565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019056fea2646970667358221220d40d5608d5608f2ebc5235597cf9a09948480e2e82090b11870b99962eaf9ac864736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x19 PUSH1 0x0 CALLER PUSH1 0x1D JUMP JUMPDEST PUSH1 0xC5 JUMP JUMPDEST PUSH1 0x25 DUP3 DUP3 PUSH1 0x29 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH1 0x25 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH1 0x81 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH2 0xF19 DUP1 PUSH2 0xD4 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xC9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x545F7A32 GT PUSH2 0x81 JUMPI DUP1 PUSH4 0x91D14854 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x19B JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x1DF JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x1E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x545F7A32 EQ PUSH2 0x162 JUMPI DUP1 PUSH4 0x584F6B60 EQ PUSH2 0x175 JUMPI DUP1 PUSH4 0x82BFD0F0 EQ PUSH2 0x188 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x248A9CA3 GT PUSH2 0xB2 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x109 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x13A JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x14F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xCE JUMPI DUP1 PUSH4 0x18C5E8AB EQ PUSH2 0xF6 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE1 PUSH2 0xDC CALLDATASIZE PUSH1 0x4 PUSH2 0xA74 JUMP JUMPDEST PUSH2 0x1FA JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE1 PUSH2 0x104 CALLDATASIZE PUSH1 0x4 PUSH2 0xB28 JUMP JUMPDEST PUSH2 0x293 JUMP JUMPDEST PUSH2 0x12C PUSH2 0x117 CALLDATASIZE PUSH1 0x4 PUSH2 0xB7B JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xED JUMP JUMPDEST PUSH2 0x14D PUSH2 0x148 CALLDATASIZE PUSH1 0x4 PUSH2 0xB94 JUMP JUMPDEST PUSH2 0x368 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x14D PUSH2 0x15D CALLDATASIZE PUSH1 0x4 PUSH2 0xB94 JUMP JUMPDEST PUSH2 0x392 JUMP JUMPDEST PUSH2 0x14D PUSH2 0x170 CALLDATASIZE PUSH1 0x4 PUSH2 0xBC0 JUMP JUMPDEST PUSH2 0x44A JUMP JUMPDEST PUSH2 0x14D PUSH2 0x183 CALLDATASIZE PUSH1 0x4 PUSH2 0xBC0 JUMP JUMPDEST PUSH2 0x4C7 JUMP JUMPDEST PUSH2 0xE1 PUSH2 0x196 CALLDATASIZE PUSH1 0x4 PUSH2 0xC25 JUMP JUMPDEST PUSH2 0x535 JUMP JUMPDEST PUSH2 0xE1 PUSH2 0x1A9 CALLDATASIZE PUSH1 0x4 PUSH2 0xB94 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x12C PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH2 0x14D PUSH2 0x1F5 CALLDATASIZE PUSH1 0x4 PUSH2 0xB94 JUMP JUMPDEST PUSH2 0x59F JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0x28D JUMPI POP PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2AB SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xC86 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE DUP1 DUP5 MSTORE DUP3 DUP2 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP11 AND DUP3 MSTORE SWAP1 SWAP4 MSTORE SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND ISZERO PUSH2 0x302 JUMPI PUSH1 0x1 SWAP2 POP POP PUSH2 0x361 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x318 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xC86 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB PUSH1 0x1F NOT ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x0 SWAP1 DUP2 MSTORE DUP1 DUP4 MSTORE DUP2 DUP2 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP10 AND DUP3 MSTORE SWAP1 SWAP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x383 DUP2 PUSH2 0x5C4 JUMP JUMPDEST PUSH2 0x38D DUP4 DUP4 PUSH2 0x5D1 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND CALLER EQ PUSH2 0x43C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x20726F6C657320666F722073656C660000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x446 DUP3 DUP3 PUSH2 0x6C1 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x461 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xC86 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH2 0x483 DUP2 DUP4 PUSH2 0x59F JUMP JUMPDEST PUSH32 0x55426A61E90AC7D7D1FC886B67B420ADE8C8B535E68D655394BC271E3A12B8E2 DUP3 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x4B8 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xCC5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x4DE SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xC86 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH2 0x500 DUP2 DUP4 PUSH2 0x368 JUMP JUMPDEST PUSH32 0x69C5CE2D658FEA352A2464F87FFBE1F09746C918A91DA0994044C3767D641B3F DUP3 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x4B8 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xCC5 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x54D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xC86 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE DUP1 DUP5 MSTORE DUP3 DUP2 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP12 AND DUP3 MSTORE SWAP1 SWAP4 MSTORE SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x5BA DUP2 PUSH2 0x5C4 JUMP JUMPDEST PUSH2 0x38D DUP4 DUP4 PUSH2 0x6C1 JUMP JUMPDEST PUSH2 0x5CE DUP2 CALLER PUSH2 0x778 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x446 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0x663 CALLER SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x446 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x446 JUMPI PUSH2 0x7B6 DUP2 PUSH2 0x812 JUMP JUMPDEST PUSH2 0x7C1 DUP4 PUSH1 0x20 PUSH2 0x831 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x7D2 SWAP3 SWAP2 SWAP1 PUSH2 0xD43 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP3 MSTORE PUSH2 0x433 SWAP2 PUSH1 0x4 ADD PUSH2 0xDC4 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x28D PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x14 JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x840 DUP4 PUSH1 0x2 PUSH2 0xE26 JUMP JUMPDEST PUSH2 0x84B SWAP1 PUSH1 0x2 PUSH2 0xE3D JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x863 JUMPI PUSH2 0x863 PUSH2 0xE50 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x88D JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH32 0x3000000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x8C4 JUMPI PUSH2 0x8C4 PUSH2 0xE7F JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH32 0x7800000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x927 JUMPI PUSH2 0x927 PUSH2 0xE7F JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH2 0x963 DUP5 PUSH1 0x2 PUSH2 0xE26 JUMP JUMPDEST PUSH2 0x96E SWAP1 PUSH1 0x1 PUSH2 0xE3D JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0xA0B JUMPI PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x9AF JUMPI PUSH2 0x9AF PUSH2 0xE7F JUMP JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x9C5 JUMPI PUSH2 0x9C5 PUSH2 0xE7F JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH2 0xA04 DUP2 PUSH2 0xEAE JUMP JUMPDEST SWAP1 POP PUSH2 0x971 JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x361 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x433 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA86 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND DUP2 EQ PUSH2 0x361 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0xADA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xAF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xB09 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0xB21 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xB3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB46 DUP5 PUSH2 0xAB6 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xB62 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6E DUP7 DUP3 DUP8 ADD PUSH2 0xADF JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB8D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xBA7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0xBB7 PUSH1 0x20 DUP5 ADD PUSH2 0xAB6 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xBD6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xBDF DUP6 PUSH2 0xAB6 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xBFB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC07 DUP8 DUP3 DUP9 ADD PUSH2 0xADF JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH2 0xC1A SWAP1 POP PUSH1 0x40 DUP7 ADD PUSH2 0xAB6 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xC3B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC44 DUP6 PUSH2 0xAB6 JUMP JUMPDEST SWAP4 POP PUSH2 0xC52 PUSH1 0x20 DUP7 ADD PUSH2 0xAB6 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xC6E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC7A DUP8 DUP3 DUP9 ADD PUSH2 0xADF JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 DUP5 PUSH1 0x60 SHL AND DUP2 MSTORE DUP2 DUP4 PUSH1 0x14 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 ADD PUSH1 0x14 ADD SWAP1 DUP2 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP8 AND DUP4 MSTORE DUP1 DUP7 AND PUSH1 0x20 DUP5 ADD MSTORE POP PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE DUP3 PUSH1 0x60 DUP4 ADD MSTORE DUP3 DUP5 PUSH1 0x80 DUP5 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x80 DUP5 DUP5 ADD ADD MSTORE PUSH1 0x80 PUSH1 0x1F NOT PUSH1 0x1F DUP6 ADD AND DUP4 ADD ADD SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xD3A JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xD22 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH32 0x416363657373436F6E74726F6C3A206163636F756E7420000000000000000000 DUP2 MSTORE PUSH1 0x0 DUP4 MLOAD PUSH2 0xD7B DUP2 PUSH1 0x17 DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0xD1F JUMP JUMPDEST PUSH32 0x206973206D697373696E6720726F6C6520000000000000000000000000000000 PUSH1 0x17 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0xDB8 DUP2 PUSH1 0x28 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0xD1F JUMP JUMPDEST ADD PUSH1 0x28 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0xDE3 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0xD1F JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x28D JUMPI PUSH2 0x28D PUSH2 0xDF7 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x28D JUMPI PUSH2 0x28D PUSH2 0xDF7 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xEBD JUMPI PUSH2 0xEBD PUSH2 0xDF7 JUMP JUMPDEST POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD4 0xD JUMP ADDMOD 0xD5 PUSH1 0x8F 0x2E 0xBC MSTORE CALLDATALOAD MSIZE PUSH29 0xF9A09948480E2E82090B11870B99962EAF9AC864736F6C634300081900 CALLER ","sourceMap":"2815:4310:56:-:0;;;3437:193;;;;;;;;;-1:-1:-1;3581:42:56;2198:4:30;3612:10:56;3581;:42::i;:::-;2815:4310;;6937:110:30;7015:25;7026:4;7032:7;7015:10;:25::i;:::-;6937:110;;:::o;7587:233::-;3107:4;3130:12;;;;;;;;;;;-1:-1:-1;;;;;3130:29:30;;;;;;;;;;;;7665:149;;7708:6;:12;;;;;;;;;;;-1:-1:-1;;;;;7708:29:30;;;;;;;;;:36;;-1:-1:-1;;7708:36:30;7740:4;7708:36;;;7790:12;734:10:39;;655:96;7790:12:30;-1:-1:-1;;;;;7763:40:30;7781:7;-1:-1:-1;;;;;7763:40:30;7775:4;7763:40;;;;;;;;;;7587:233;;:::o;2815:4310:56:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@DEFAULT_ADMIN_ROLE_6602":{"entryPoint":null,"id":6602,"parameterSlots":0,"returnSlots":0},"@_checkRole_6667":{"entryPoint":1476,"id":6667,"parameterSlots":1,"returnSlots":0},"@_checkRole_6706":{"entryPoint":1912,"id":6706,"parameterSlots":2,"returnSlots":0},"@_grantRole_6858":{"entryPoint":1489,"id":6858,"parameterSlots":2,"returnSlots":0},"@_msgSender_8081":{"entryPoint":null,"id":8081,"parameterSlots":0,"returnSlots":1},"@_revokeRole_6889":{"entryPoint":1729,"id":6889,"parameterSlots":2,"returnSlots":0},"@getRoleAdmin_6721":{"entryPoint":null,"id":6721,"parameterSlots":1,"returnSlots":1},"@giveCallPermission_13594":{"entryPoint":1223,"id":13594,"parameterSlots":4,"returnSlots":0},"@grantRole_6741":{"entryPoint":872,"id":6741,"parameterSlots":2,"returnSlots":0},"@hasPermission_13703":{"entryPoint":1333,"id":13703,"parameterSlots":4,"returnSlots":1},"@hasRole_6654":{"entryPoint":null,"id":6654,"parameterSlots":2,"returnSlots":1},"@isAllowedToCall_13675":{"entryPoint":659,"id":13675,"parameterSlots":3,"returnSlots":1},"@renounceRole_6784":{"entryPoint":914,"id":6784,"parameterSlots":2,"returnSlots":0},"@revokeCallPermission_13626":{"entryPoint":1098,"id":13626,"parameterSlots":4,"returnSlots":0},"@revokeRole_6761":{"entryPoint":1439,"id":6761,"parameterSlots":2,"returnSlots":0},"@supportsInterface_6635":{"entryPoint":506,"id":6635,"parameterSlots":1,"returnSlots":1},"@supportsInterface_8351":{"entryPoint":null,"id":8351,"parameterSlots":1,"returnSlots":1},"@toHexString_8282":{"entryPoint":2097,"id":8282,"parameterSlots":2,"returnSlots":1},"@toHexString_8302":{"entryPoint":2066,"id":8302,"parameterSlots":1,"returnSlots":1},"abi_decode_address":{"entryPoint":2742,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_string_calldata":{"entryPoint":2783,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_string_calldata_ptr":{"entryPoint":3109,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_addresst_string_calldata_ptr":{"entryPoint":2856,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_string_calldata_ptrt_address":{"entryPoint":3008,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_bytes32":{"entryPoint":2939,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_address":{"entryPoint":2964,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes4":{"entryPoint":2676,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_address_t_string_calldata_ptr__to_t_address_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":3206,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":3395,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_string_calldata_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3269,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3524,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":3645,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":3622,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":3359,"id":null,"parameterSlots":3,"returnSlots":0},"decrement_t_uint256":{"entryPoint":3758,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":3575,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":3711,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":3664,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:7830:97","nodeType":"YulBlock","src":"0:7830:97","statements":[{"nativeSrc":"6:3:97","nodeType":"YulBlock","src":"6:3:97","statements":[]},{"body":{"nativeSrc":"83:263:97","nodeType":"YulBlock","src":"83:263:97","statements":[{"body":{"nativeSrc":"129:16:97","nodeType":"YulBlock","src":"129:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"138:1:97","nodeType":"YulLiteral","src":"138:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"141:1:97","nodeType":"YulLiteral","src":"141:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"131:6:97","nodeType":"YulIdentifier","src":"131:6:97"},"nativeSrc":"131:12:97","nodeType":"YulFunctionCall","src":"131:12:97"},"nativeSrc":"131:12:97","nodeType":"YulExpressionStatement","src":"131:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"104:7:97","nodeType":"YulIdentifier","src":"104:7:97"},{"name":"headStart","nativeSrc":"113:9:97","nodeType":"YulIdentifier","src":"113:9:97"}],"functionName":{"name":"sub","nativeSrc":"100:3:97","nodeType":"YulIdentifier","src":"100:3:97"},"nativeSrc":"100:23:97","nodeType":"YulFunctionCall","src":"100:23:97"},{"kind":"number","nativeSrc":"125:2:97","nodeType":"YulLiteral","src":"125:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"96:3:97","nodeType":"YulIdentifier","src":"96:3:97"},"nativeSrc":"96:32:97","nodeType":"YulFunctionCall","src":"96:32:97"},"nativeSrc":"93:52:97","nodeType":"YulIf","src":"93:52:97"},{"nativeSrc":"154:36:97","nodeType":"YulVariableDeclaration","src":"154:36:97","value":{"arguments":[{"name":"headStart","nativeSrc":"180:9:97","nodeType":"YulIdentifier","src":"180:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"167:12:97","nodeType":"YulIdentifier","src":"167:12:97"},"nativeSrc":"167:23:97","nodeType":"YulFunctionCall","src":"167:23:97"},"variables":[{"name":"value","nativeSrc":"158:5:97","nodeType":"YulTypedName","src":"158:5:97","type":""}]},{"body":{"nativeSrc":"300:16:97","nodeType":"YulBlock","src":"300:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"309:1:97","nodeType":"YulLiteral","src":"309:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"312:1:97","nodeType":"YulLiteral","src":"312:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"302:6:97","nodeType":"YulIdentifier","src":"302:6:97"},"nativeSrc":"302:12:97","nodeType":"YulFunctionCall","src":"302:12:97"},"nativeSrc":"302:12:97","nodeType":"YulExpressionStatement","src":"302:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"212:5:97","nodeType":"YulIdentifier","src":"212:5:97"},{"arguments":[{"name":"value","nativeSrc":"223:5:97","nodeType":"YulIdentifier","src":"223:5:97"},{"kind":"number","nativeSrc":"230:66:97","nodeType":"YulLiteral","src":"230:66:97","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"219:3:97","nodeType":"YulIdentifier","src":"219:3:97"},"nativeSrc":"219:78:97","nodeType":"YulFunctionCall","src":"219:78:97"}],"functionName":{"name":"eq","nativeSrc":"209:2:97","nodeType":"YulIdentifier","src":"209:2:97"},"nativeSrc":"209:89:97","nodeType":"YulFunctionCall","src":"209:89:97"}],"functionName":{"name":"iszero","nativeSrc":"202:6:97","nodeType":"YulIdentifier","src":"202:6:97"},"nativeSrc":"202:97:97","nodeType":"YulFunctionCall","src":"202:97:97"},"nativeSrc":"199:117:97","nodeType":"YulIf","src":"199:117:97"},{"nativeSrc":"325:15:97","nodeType":"YulAssignment","src":"325:15:97","value":{"name":"value","nativeSrc":"335:5:97","nodeType":"YulIdentifier","src":"335:5:97"},"variableNames":[{"name":"value0","nativeSrc":"325:6:97","nodeType":"YulIdentifier","src":"325:6:97"}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"14:332:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"49:9:97","nodeType":"YulTypedName","src":"49:9:97","type":""},{"name":"dataEnd","nativeSrc":"60:7:97","nodeType":"YulTypedName","src":"60:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"72:6:97","nodeType":"YulTypedName","src":"72:6:97","type":""}],"src":"14:332:97"},{"body":{"nativeSrc":"446:92:97","nodeType":"YulBlock","src":"446:92:97","statements":[{"nativeSrc":"456:26:97","nodeType":"YulAssignment","src":"456:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"468:9:97","nodeType":"YulIdentifier","src":"468:9:97"},{"kind":"number","nativeSrc":"479:2:97","nodeType":"YulLiteral","src":"479:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"464:3:97","nodeType":"YulIdentifier","src":"464:3:97"},"nativeSrc":"464:18:97","nodeType":"YulFunctionCall","src":"464:18:97"},"variableNames":[{"name":"tail","nativeSrc":"456:4:97","nodeType":"YulIdentifier","src":"456:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"498:9:97","nodeType":"YulIdentifier","src":"498:9:97"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"523:6:97","nodeType":"YulIdentifier","src":"523:6:97"}],"functionName":{"name":"iszero","nativeSrc":"516:6:97","nodeType":"YulIdentifier","src":"516:6:97"},"nativeSrc":"516:14:97","nodeType":"YulFunctionCall","src":"516:14:97"}],"functionName":{"name":"iszero","nativeSrc":"509:6:97","nodeType":"YulIdentifier","src":"509:6:97"},"nativeSrc":"509:22:97","nodeType":"YulFunctionCall","src":"509:22:97"}],"functionName":{"name":"mstore","nativeSrc":"491:6:97","nodeType":"YulIdentifier","src":"491:6:97"},"nativeSrc":"491:41:97","nodeType":"YulFunctionCall","src":"491:41:97"},"nativeSrc":"491:41:97","nodeType":"YulExpressionStatement","src":"491:41:97"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"351:187:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"415:9:97","nodeType":"YulTypedName","src":"415:9:97","type":""},{"name":"value0","nativeSrc":"426:6:97","nodeType":"YulTypedName","src":"426:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"437:4:97","nodeType":"YulTypedName","src":"437:4:97","type":""}],"src":"351:187:97"},{"body":{"nativeSrc":"592:147:97","nodeType":"YulBlock","src":"592:147:97","statements":[{"nativeSrc":"602:29:97","nodeType":"YulAssignment","src":"602:29:97","value":{"arguments":[{"name":"offset","nativeSrc":"624:6:97","nodeType":"YulIdentifier","src":"624:6:97"}],"functionName":{"name":"calldataload","nativeSrc":"611:12:97","nodeType":"YulIdentifier","src":"611:12:97"},"nativeSrc":"611:20:97","nodeType":"YulFunctionCall","src":"611:20:97"},"variableNames":[{"name":"value","nativeSrc":"602:5:97","nodeType":"YulIdentifier","src":"602:5:97"}]},{"body":{"nativeSrc":"717:16:97","nodeType":"YulBlock","src":"717:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"726:1:97","nodeType":"YulLiteral","src":"726:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"729:1:97","nodeType":"YulLiteral","src":"729:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"719:6:97","nodeType":"YulIdentifier","src":"719:6:97"},"nativeSrc":"719:12:97","nodeType":"YulFunctionCall","src":"719:12:97"},"nativeSrc":"719:12:97","nodeType":"YulExpressionStatement","src":"719:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"653:5:97","nodeType":"YulIdentifier","src":"653:5:97"},{"arguments":[{"name":"value","nativeSrc":"664:5:97","nodeType":"YulIdentifier","src":"664:5:97"},{"kind":"number","nativeSrc":"671:42:97","nodeType":"YulLiteral","src":"671:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"660:3:97","nodeType":"YulIdentifier","src":"660:3:97"},"nativeSrc":"660:54:97","nodeType":"YulFunctionCall","src":"660:54:97"}],"functionName":{"name":"eq","nativeSrc":"650:2:97","nodeType":"YulIdentifier","src":"650:2:97"},"nativeSrc":"650:65:97","nodeType":"YulFunctionCall","src":"650:65:97"}],"functionName":{"name":"iszero","nativeSrc":"643:6:97","nodeType":"YulIdentifier","src":"643:6:97"},"nativeSrc":"643:73:97","nodeType":"YulFunctionCall","src":"643:73:97"},"nativeSrc":"640:93:97","nodeType":"YulIf","src":"640:93:97"}]},"name":"abi_decode_address","nativeSrc":"543:196:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"571:6:97","nodeType":"YulTypedName","src":"571:6:97","type":""}],"returnVariables":[{"name":"value","nativeSrc":"582:5:97","nodeType":"YulTypedName","src":"582:5:97","type":""}],"src":"543:196:97"},{"body":{"nativeSrc":"817:275:97","nodeType":"YulBlock","src":"817:275:97","statements":[{"body":{"nativeSrc":"866:16:97","nodeType":"YulBlock","src":"866:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"875:1:97","nodeType":"YulLiteral","src":"875:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"878:1:97","nodeType":"YulLiteral","src":"878:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"868:6:97","nodeType":"YulIdentifier","src":"868:6:97"},"nativeSrc":"868:12:97","nodeType":"YulFunctionCall","src":"868:12:97"},"nativeSrc":"868:12:97","nodeType":"YulExpressionStatement","src":"868:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"845:6:97","nodeType":"YulIdentifier","src":"845:6:97"},{"kind":"number","nativeSrc":"853:4:97","nodeType":"YulLiteral","src":"853:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"841:3:97","nodeType":"YulIdentifier","src":"841:3:97"},"nativeSrc":"841:17:97","nodeType":"YulFunctionCall","src":"841:17:97"},{"name":"end","nativeSrc":"860:3:97","nodeType":"YulIdentifier","src":"860:3:97"}],"functionName":{"name":"slt","nativeSrc":"837:3:97","nodeType":"YulIdentifier","src":"837:3:97"},"nativeSrc":"837:27:97","nodeType":"YulFunctionCall","src":"837:27:97"}],"functionName":{"name":"iszero","nativeSrc":"830:6:97","nodeType":"YulIdentifier","src":"830:6:97"},"nativeSrc":"830:35:97","nodeType":"YulFunctionCall","src":"830:35:97"},"nativeSrc":"827:55:97","nodeType":"YulIf","src":"827:55:97"},{"nativeSrc":"891:30:97","nodeType":"YulAssignment","src":"891:30:97","value":{"arguments":[{"name":"offset","nativeSrc":"914:6:97","nodeType":"YulIdentifier","src":"914:6:97"}],"functionName":{"name":"calldataload","nativeSrc":"901:12:97","nodeType":"YulIdentifier","src":"901:12:97"},"nativeSrc":"901:20:97","nodeType":"YulFunctionCall","src":"901:20:97"},"variableNames":[{"name":"length","nativeSrc":"891:6:97","nodeType":"YulIdentifier","src":"891:6:97"}]},{"body":{"nativeSrc":"964:16:97","nodeType":"YulBlock","src":"964:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"973:1:97","nodeType":"YulLiteral","src":"973:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"976:1:97","nodeType":"YulLiteral","src":"976:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"966:6:97","nodeType":"YulIdentifier","src":"966:6:97"},"nativeSrc":"966:12:97","nodeType":"YulFunctionCall","src":"966:12:97"},"nativeSrc":"966:12:97","nodeType":"YulExpressionStatement","src":"966:12:97"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"936:6:97","nodeType":"YulIdentifier","src":"936:6:97"},{"kind":"number","nativeSrc":"944:18:97","nodeType":"YulLiteral","src":"944:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"933:2:97","nodeType":"YulIdentifier","src":"933:2:97"},"nativeSrc":"933:30:97","nodeType":"YulFunctionCall","src":"933:30:97"},"nativeSrc":"930:50:97","nodeType":"YulIf","src":"930:50:97"},{"nativeSrc":"989:29:97","nodeType":"YulAssignment","src":"989:29:97","value":{"arguments":[{"name":"offset","nativeSrc":"1005:6:97","nodeType":"YulIdentifier","src":"1005:6:97"},{"kind":"number","nativeSrc":"1013:4:97","nodeType":"YulLiteral","src":"1013:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1001:3:97","nodeType":"YulIdentifier","src":"1001:3:97"},"nativeSrc":"1001:17:97","nodeType":"YulFunctionCall","src":"1001:17:97"},"variableNames":[{"name":"arrayPos","nativeSrc":"989:8:97","nodeType":"YulIdentifier","src":"989:8:97"}]},{"body":{"nativeSrc":"1070:16:97","nodeType":"YulBlock","src":"1070:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1079:1:97","nodeType":"YulLiteral","src":"1079:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1082:1:97","nodeType":"YulLiteral","src":"1082:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1072:6:97","nodeType":"YulIdentifier","src":"1072:6:97"},"nativeSrc":"1072:12:97","nodeType":"YulFunctionCall","src":"1072:12:97"},"nativeSrc":"1072:12:97","nodeType":"YulExpressionStatement","src":"1072:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"1041:6:97","nodeType":"YulIdentifier","src":"1041:6:97"},{"name":"length","nativeSrc":"1049:6:97","nodeType":"YulIdentifier","src":"1049:6:97"}],"functionName":{"name":"add","nativeSrc":"1037:3:97","nodeType":"YulIdentifier","src":"1037:3:97"},"nativeSrc":"1037:19:97","nodeType":"YulFunctionCall","src":"1037:19:97"},{"kind":"number","nativeSrc":"1058:4:97","nodeType":"YulLiteral","src":"1058:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1033:3:97","nodeType":"YulIdentifier","src":"1033:3:97"},"nativeSrc":"1033:30:97","nodeType":"YulFunctionCall","src":"1033:30:97"},{"name":"end","nativeSrc":"1065:3:97","nodeType":"YulIdentifier","src":"1065:3:97"}],"functionName":{"name":"gt","nativeSrc":"1030:2:97","nodeType":"YulIdentifier","src":"1030:2:97"},"nativeSrc":"1030:39:97","nodeType":"YulFunctionCall","src":"1030:39:97"},"nativeSrc":"1027:59:97","nodeType":"YulIf","src":"1027:59:97"}]},"name":"abi_decode_string_calldata","nativeSrc":"744:348:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"780:6:97","nodeType":"YulTypedName","src":"780:6:97","type":""},{"name":"end","nativeSrc":"788:3:97","nodeType":"YulTypedName","src":"788:3:97","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"796:8:97","nodeType":"YulTypedName","src":"796:8:97","type":""},{"name":"length","nativeSrc":"806:6:97","nodeType":"YulTypedName","src":"806:6:97","type":""}],"src":"744:348:97"},{"body":{"nativeSrc":"1204:378:97","nodeType":"YulBlock","src":"1204:378:97","statements":[{"body":{"nativeSrc":"1250:16:97","nodeType":"YulBlock","src":"1250:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1259:1:97","nodeType":"YulLiteral","src":"1259:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1262:1:97","nodeType":"YulLiteral","src":"1262:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1252:6:97","nodeType":"YulIdentifier","src":"1252:6:97"},"nativeSrc":"1252:12:97","nodeType":"YulFunctionCall","src":"1252:12:97"},"nativeSrc":"1252:12:97","nodeType":"YulExpressionStatement","src":"1252:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1225:7:97","nodeType":"YulIdentifier","src":"1225:7:97"},{"name":"headStart","nativeSrc":"1234:9:97","nodeType":"YulIdentifier","src":"1234:9:97"}],"functionName":{"name":"sub","nativeSrc":"1221:3:97","nodeType":"YulIdentifier","src":"1221:3:97"},"nativeSrc":"1221:23:97","nodeType":"YulFunctionCall","src":"1221:23:97"},{"kind":"number","nativeSrc":"1246:2:97","nodeType":"YulLiteral","src":"1246:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"1217:3:97","nodeType":"YulIdentifier","src":"1217:3:97"},"nativeSrc":"1217:32:97","nodeType":"YulFunctionCall","src":"1217:32:97"},"nativeSrc":"1214:52:97","nodeType":"YulIf","src":"1214:52:97"},{"nativeSrc":"1275:39:97","nodeType":"YulAssignment","src":"1275:39:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1304:9:97","nodeType":"YulIdentifier","src":"1304:9:97"}],"functionName":{"name":"abi_decode_address","nativeSrc":"1285:18:97","nodeType":"YulIdentifier","src":"1285:18:97"},"nativeSrc":"1285:29:97","nodeType":"YulFunctionCall","src":"1285:29:97"},"variableNames":[{"name":"value0","nativeSrc":"1275:6:97","nodeType":"YulIdentifier","src":"1275:6:97"}]},{"nativeSrc":"1323:46:97","nodeType":"YulVariableDeclaration","src":"1323:46:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1354:9:97","nodeType":"YulIdentifier","src":"1354:9:97"},{"kind":"number","nativeSrc":"1365:2:97","nodeType":"YulLiteral","src":"1365:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1350:3:97","nodeType":"YulIdentifier","src":"1350:3:97"},"nativeSrc":"1350:18:97","nodeType":"YulFunctionCall","src":"1350:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"1337:12:97","nodeType":"YulIdentifier","src":"1337:12:97"},"nativeSrc":"1337:32:97","nodeType":"YulFunctionCall","src":"1337:32:97"},"variables":[{"name":"offset","nativeSrc":"1327:6:97","nodeType":"YulTypedName","src":"1327:6:97","type":""}]},{"body":{"nativeSrc":"1412:16:97","nodeType":"YulBlock","src":"1412:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1421:1:97","nodeType":"YulLiteral","src":"1421:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1424:1:97","nodeType":"YulLiteral","src":"1424:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1414:6:97","nodeType":"YulIdentifier","src":"1414:6:97"},"nativeSrc":"1414:12:97","nodeType":"YulFunctionCall","src":"1414:12:97"},"nativeSrc":"1414:12:97","nodeType":"YulExpressionStatement","src":"1414:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"1384:6:97","nodeType":"YulIdentifier","src":"1384:6:97"},{"kind":"number","nativeSrc":"1392:18:97","nodeType":"YulLiteral","src":"1392:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1381:2:97","nodeType":"YulIdentifier","src":"1381:2:97"},"nativeSrc":"1381:30:97","nodeType":"YulFunctionCall","src":"1381:30:97"},"nativeSrc":"1378:50:97","nodeType":"YulIf","src":"1378:50:97"},{"nativeSrc":"1437:85:97","nodeType":"YulVariableDeclaration","src":"1437:85:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1494:9:97","nodeType":"YulIdentifier","src":"1494:9:97"},{"name":"offset","nativeSrc":"1505:6:97","nodeType":"YulIdentifier","src":"1505:6:97"}],"functionName":{"name":"add","nativeSrc":"1490:3:97","nodeType":"YulIdentifier","src":"1490:3:97"},"nativeSrc":"1490:22:97","nodeType":"YulFunctionCall","src":"1490:22:97"},{"name":"dataEnd","nativeSrc":"1514:7:97","nodeType":"YulIdentifier","src":"1514:7:97"}],"functionName":{"name":"abi_decode_string_calldata","nativeSrc":"1463:26:97","nodeType":"YulIdentifier","src":"1463:26:97"},"nativeSrc":"1463:59:97","nodeType":"YulFunctionCall","src":"1463:59:97"},"variables":[{"name":"value1_1","nativeSrc":"1441:8:97","nodeType":"YulTypedName","src":"1441:8:97","type":""},{"name":"value2_1","nativeSrc":"1451:8:97","nodeType":"YulTypedName","src":"1451:8:97","type":""}]},{"nativeSrc":"1531:18:97","nodeType":"YulAssignment","src":"1531:18:97","value":{"name":"value1_1","nativeSrc":"1541:8:97","nodeType":"YulIdentifier","src":"1541:8:97"},"variableNames":[{"name":"value1","nativeSrc":"1531:6:97","nodeType":"YulIdentifier","src":"1531:6:97"}]},{"nativeSrc":"1558:18:97","nodeType":"YulAssignment","src":"1558:18:97","value":{"name":"value2_1","nativeSrc":"1568:8:97","nodeType":"YulIdentifier","src":"1568:8:97"},"variableNames":[{"name":"value2","nativeSrc":"1558:6:97","nodeType":"YulIdentifier","src":"1558:6:97"}]}]},"name":"abi_decode_tuple_t_addresst_string_calldata_ptr","nativeSrc":"1097:485:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1154:9:97","nodeType":"YulTypedName","src":"1154:9:97","type":""},{"name":"dataEnd","nativeSrc":"1165:7:97","nodeType":"YulTypedName","src":"1165:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1177:6:97","nodeType":"YulTypedName","src":"1177:6:97","type":""},{"name":"value1","nativeSrc":"1185:6:97","nodeType":"YulTypedName","src":"1185:6:97","type":""},{"name":"value2","nativeSrc":"1193:6:97","nodeType":"YulTypedName","src":"1193:6:97","type":""}],"src":"1097:485:97"},{"body":{"nativeSrc":"1657:110:97","nodeType":"YulBlock","src":"1657:110:97","statements":[{"body":{"nativeSrc":"1703:16:97","nodeType":"YulBlock","src":"1703:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1712:1:97","nodeType":"YulLiteral","src":"1712:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1715:1:97","nodeType":"YulLiteral","src":"1715:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1705:6:97","nodeType":"YulIdentifier","src":"1705:6:97"},"nativeSrc":"1705:12:97","nodeType":"YulFunctionCall","src":"1705:12:97"},"nativeSrc":"1705:12:97","nodeType":"YulExpressionStatement","src":"1705:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1678:7:97","nodeType":"YulIdentifier","src":"1678:7:97"},{"name":"headStart","nativeSrc":"1687:9:97","nodeType":"YulIdentifier","src":"1687:9:97"}],"functionName":{"name":"sub","nativeSrc":"1674:3:97","nodeType":"YulIdentifier","src":"1674:3:97"},"nativeSrc":"1674:23:97","nodeType":"YulFunctionCall","src":"1674:23:97"},{"kind":"number","nativeSrc":"1699:2:97","nodeType":"YulLiteral","src":"1699:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1670:3:97","nodeType":"YulIdentifier","src":"1670:3:97"},"nativeSrc":"1670:32:97","nodeType":"YulFunctionCall","src":"1670:32:97"},"nativeSrc":"1667:52:97","nodeType":"YulIf","src":"1667:52:97"},{"nativeSrc":"1728:33:97","nodeType":"YulAssignment","src":"1728:33:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1751:9:97","nodeType":"YulIdentifier","src":"1751:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"1738:12:97","nodeType":"YulIdentifier","src":"1738:12:97"},"nativeSrc":"1738:23:97","nodeType":"YulFunctionCall","src":"1738:23:97"},"variableNames":[{"name":"value0","nativeSrc":"1728:6:97","nodeType":"YulIdentifier","src":"1728:6:97"}]}]},"name":"abi_decode_tuple_t_bytes32","nativeSrc":"1587:180:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1623:9:97","nodeType":"YulTypedName","src":"1623:9:97","type":""},{"name":"dataEnd","nativeSrc":"1634:7:97","nodeType":"YulTypedName","src":"1634:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1646:6:97","nodeType":"YulTypedName","src":"1646:6:97","type":""}],"src":"1587:180:97"},{"body":{"nativeSrc":"1873:76:97","nodeType":"YulBlock","src":"1873:76:97","statements":[{"nativeSrc":"1883:26:97","nodeType":"YulAssignment","src":"1883:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1895:9:97","nodeType":"YulIdentifier","src":"1895:9:97"},{"kind":"number","nativeSrc":"1906:2:97","nodeType":"YulLiteral","src":"1906:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1891:3:97","nodeType":"YulIdentifier","src":"1891:3:97"},"nativeSrc":"1891:18:97","nodeType":"YulFunctionCall","src":"1891:18:97"},"variableNames":[{"name":"tail","nativeSrc":"1883:4:97","nodeType":"YulIdentifier","src":"1883:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1925:9:97","nodeType":"YulIdentifier","src":"1925:9:97"},{"name":"value0","nativeSrc":"1936:6:97","nodeType":"YulIdentifier","src":"1936:6:97"}],"functionName":{"name":"mstore","nativeSrc":"1918:6:97","nodeType":"YulIdentifier","src":"1918:6:97"},"nativeSrc":"1918:25:97","nodeType":"YulFunctionCall","src":"1918:25:97"},"nativeSrc":"1918:25:97","nodeType":"YulExpressionStatement","src":"1918:25:97"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"1772:177:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1842:9:97","nodeType":"YulTypedName","src":"1842:9:97","type":""},{"name":"value0","nativeSrc":"1853:6:97","nodeType":"YulTypedName","src":"1853:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1864:4:97","nodeType":"YulTypedName","src":"1864:4:97","type":""}],"src":"1772:177:97"},{"body":{"nativeSrc":"2041:167:97","nodeType":"YulBlock","src":"2041:167:97","statements":[{"body":{"nativeSrc":"2087:16:97","nodeType":"YulBlock","src":"2087:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2096:1:97","nodeType":"YulLiteral","src":"2096:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"2099:1:97","nodeType":"YulLiteral","src":"2099:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2089:6:97","nodeType":"YulIdentifier","src":"2089:6:97"},"nativeSrc":"2089:12:97","nodeType":"YulFunctionCall","src":"2089:12:97"},"nativeSrc":"2089:12:97","nodeType":"YulExpressionStatement","src":"2089:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2062:7:97","nodeType":"YulIdentifier","src":"2062:7:97"},{"name":"headStart","nativeSrc":"2071:9:97","nodeType":"YulIdentifier","src":"2071:9:97"}],"functionName":{"name":"sub","nativeSrc":"2058:3:97","nodeType":"YulIdentifier","src":"2058:3:97"},"nativeSrc":"2058:23:97","nodeType":"YulFunctionCall","src":"2058:23:97"},{"kind":"number","nativeSrc":"2083:2:97","nodeType":"YulLiteral","src":"2083:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2054:3:97","nodeType":"YulIdentifier","src":"2054:3:97"},"nativeSrc":"2054:32:97","nodeType":"YulFunctionCall","src":"2054:32:97"},"nativeSrc":"2051:52:97","nodeType":"YulIf","src":"2051:52:97"},{"nativeSrc":"2112:33:97","nodeType":"YulAssignment","src":"2112:33:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2135:9:97","nodeType":"YulIdentifier","src":"2135:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"2122:12:97","nodeType":"YulIdentifier","src":"2122:12:97"},"nativeSrc":"2122:23:97","nodeType":"YulFunctionCall","src":"2122:23:97"},"variableNames":[{"name":"value0","nativeSrc":"2112:6:97","nodeType":"YulIdentifier","src":"2112:6:97"}]},{"nativeSrc":"2154:48:97","nodeType":"YulAssignment","src":"2154:48:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2187:9:97","nodeType":"YulIdentifier","src":"2187:9:97"},{"kind":"number","nativeSrc":"2198:2:97","nodeType":"YulLiteral","src":"2198:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2183:3:97","nodeType":"YulIdentifier","src":"2183:3:97"},"nativeSrc":"2183:18:97","nodeType":"YulFunctionCall","src":"2183:18:97"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2164:18:97","nodeType":"YulIdentifier","src":"2164:18:97"},"nativeSrc":"2164:38:97","nodeType":"YulFunctionCall","src":"2164:38:97"},"variableNames":[{"name":"value1","nativeSrc":"2154:6:97","nodeType":"YulIdentifier","src":"2154:6:97"}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nativeSrc":"1954:254:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1999:9:97","nodeType":"YulTypedName","src":"1999:9:97","type":""},{"name":"dataEnd","nativeSrc":"2010:7:97","nodeType":"YulTypedName","src":"2010:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2022:6:97","nodeType":"YulTypedName","src":"2022:6:97","type":""},{"name":"value1","nativeSrc":"2030:6:97","nodeType":"YulTypedName","src":"2030:6:97","type":""}],"src":"1954:254:97"},{"body":{"nativeSrc":"2337:435:97","nodeType":"YulBlock","src":"2337:435:97","statements":[{"body":{"nativeSrc":"2383:16:97","nodeType":"YulBlock","src":"2383:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2392:1:97","nodeType":"YulLiteral","src":"2392:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"2395:1:97","nodeType":"YulLiteral","src":"2395:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2385:6:97","nodeType":"YulIdentifier","src":"2385:6:97"},"nativeSrc":"2385:12:97","nodeType":"YulFunctionCall","src":"2385:12:97"},"nativeSrc":"2385:12:97","nodeType":"YulExpressionStatement","src":"2385:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2358:7:97","nodeType":"YulIdentifier","src":"2358:7:97"},{"name":"headStart","nativeSrc":"2367:9:97","nodeType":"YulIdentifier","src":"2367:9:97"}],"functionName":{"name":"sub","nativeSrc":"2354:3:97","nodeType":"YulIdentifier","src":"2354:3:97"},"nativeSrc":"2354:23:97","nodeType":"YulFunctionCall","src":"2354:23:97"},{"kind":"number","nativeSrc":"2379:2:97","nodeType":"YulLiteral","src":"2379:2:97","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"2350:3:97","nodeType":"YulIdentifier","src":"2350:3:97"},"nativeSrc":"2350:32:97","nodeType":"YulFunctionCall","src":"2350:32:97"},"nativeSrc":"2347:52:97","nodeType":"YulIf","src":"2347:52:97"},{"nativeSrc":"2408:39:97","nodeType":"YulAssignment","src":"2408:39:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2437:9:97","nodeType":"YulIdentifier","src":"2437:9:97"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2418:18:97","nodeType":"YulIdentifier","src":"2418:18:97"},"nativeSrc":"2418:29:97","nodeType":"YulFunctionCall","src":"2418:29:97"},"variableNames":[{"name":"value0","nativeSrc":"2408:6:97","nodeType":"YulIdentifier","src":"2408:6:97"}]},{"nativeSrc":"2456:46:97","nodeType":"YulVariableDeclaration","src":"2456:46:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2487:9:97","nodeType":"YulIdentifier","src":"2487:9:97"},{"kind":"number","nativeSrc":"2498:2:97","nodeType":"YulLiteral","src":"2498:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2483:3:97","nodeType":"YulIdentifier","src":"2483:3:97"},"nativeSrc":"2483:18:97","nodeType":"YulFunctionCall","src":"2483:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"2470:12:97","nodeType":"YulIdentifier","src":"2470:12:97"},"nativeSrc":"2470:32:97","nodeType":"YulFunctionCall","src":"2470:32:97"},"variables":[{"name":"offset","nativeSrc":"2460:6:97","nodeType":"YulTypedName","src":"2460:6:97","type":""}]},{"body":{"nativeSrc":"2545:16:97","nodeType":"YulBlock","src":"2545:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2554:1:97","nodeType":"YulLiteral","src":"2554:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"2557:1:97","nodeType":"YulLiteral","src":"2557:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2547:6:97","nodeType":"YulIdentifier","src":"2547:6:97"},"nativeSrc":"2547:12:97","nodeType":"YulFunctionCall","src":"2547:12:97"},"nativeSrc":"2547:12:97","nodeType":"YulExpressionStatement","src":"2547:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"2517:6:97","nodeType":"YulIdentifier","src":"2517:6:97"},{"kind":"number","nativeSrc":"2525:18:97","nodeType":"YulLiteral","src":"2525:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2514:2:97","nodeType":"YulIdentifier","src":"2514:2:97"},"nativeSrc":"2514:30:97","nodeType":"YulFunctionCall","src":"2514:30:97"},"nativeSrc":"2511:50:97","nodeType":"YulIf","src":"2511:50:97"},{"nativeSrc":"2570:85:97","nodeType":"YulVariableDeclaration","src":"2570:85:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2627:9:97","nodeType":"YulIdentifier","src":"2627:9:97"},{"name":"offset","nativeSrc":"2638:6:97","nodeType":"YulIdentifier","src":"2638:6:97"}],"functionName":{"name":"add","nativeSrc":"2623:3:97","nodeType":"YulIdentifier","src":"2623:3:97"},"nativeSrc":"2623:22:97","nodeType":"YulFunctionCall","src":"2623:22:97"},{"name":"dataEnd","nativeSrc":"2647:7:97","nodeType":"YulIdentifier","src":"2647:7:97"}],"functionName":{"name":"abi_decode_string_calldata","nativeSrc":"2596:26:97","nodeType":"YulIdentifier","src":"2596:26:97"},"nativeSrc":"2596:59:97","nodeType":"YulFunctionCall","src":"2596:59:97"},"variables":[{"name":"value1_1","nativeSrc":"2574:8:97","nodeType":"YulTypedName","src":"2574:8:97","type":""},{"name":"value2_1","nativeSrc":"2584:8:97","nodeType":"YulTypedName","src":"2584:8:97","type":""}]},{"nativeSrc":"2664:18:97","nodeType":"YulAssignment","src":"2664:18:97","value":{"name":"value1_1","nativeSrc":"2674:8:97","nodeType":"YulIdentifier","src":"2674:8:97"},"variableNames":[{"name":"value1","nativeSrc":"2664:6:97","nodeType":"YulIdentifier","src":"2664:6:97"}]},{"nativeSrc":"2691:18:97","nodeType":"YulAssignment","src":"2691:18:97","value":{"name":"value2_1","nativeSrc":"2701:8:97","nodeType":"YulIdentifier","src":"2701:8:97"},"variableNames":[{"name":"value2","nativeSrc":"2691:6:97","nodeType":"YulIdentifier","src":"2691:6:97"}]},{"nativeSrc":"2718:48:97","nodeType":"YulAssignment","src":"2718:48:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2751:9:97","nodeType":"YulIdentifier","src":"2751:9:97"},{"kind":"number","nativeSrc":"2762:2:97","nodeType":"YulLiteral","src":"2762:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2747:3:97","nodeType":"YulIdentifier","src":"2747:3:97"},"nativeSrc":"2747:18:97","nodeType":"YulFunctionCall","src":"2747:18:97"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2728:18:97","nodeType":"YulIdentifier","src":"2728:18:97"},"nativeSrc":"2728:38:97","nodeType":"YulFunctionCall","src":"2728:38:97"},"variableNames":[{"name":"value3","nativeSrc":"2718:6:97","nodeType":"YulIdentifier","src":"2718:6:97"}]}]},"name":"abi_decode_tuple_t_addresst_string_calldata_ptrt_address","nativeSrc":"2213:559:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2279:9:97","nodeType":"YulTypedName","src":"2279:9:97","type":""},{"name":"dataEnd","nativeSrc":"2290:7:97","nodeType":"YulTypedName","src":"2290:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2302:6:97","nodeType":"YulTypedName","src":"2302:6:97","type":""},{"name":"value1","nativeSrc":"2310:6:97","nodeType":"YulTypedName","src":"2310:6:97","type":""},{"name":"value2","nativeSrc":"2318:6:97","nodeType":"YulTypedName","src":"2318:6:97","type":""},{"name":"value3","nativeSrc":"2326:6:97","nodeType":"YulTypedName","src":"2326:6:97","type":""}],"src":"2213:559:97"},{"body":{"nativeSrc":"2901:435:97","nodeType":"YulBlock","src":"2901:435:97","statements":[{"body":{"nativeSrc":"2947:16:97","nodeType":"YulBlock","src":"2947:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2956:1:97","nodeType":"YulLiteral","src":"2956:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"2959:1:97","nodeType":"YulLiteral","src":"2959:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2949:6:97","nodeType":"YulIdentifier","src":"2949:6:97"},"nativeSrc":"2949:12:97","nodeType":"YulFunctionCall","src":"2949:12:97"},"nativeSrc":"2949:12:97","nodeType":"YulExpressionStatement","src":"2949:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2922:7:97","nodeType":"YulIdentifier","src":"2922:7:97"},{"name":"headStart","nativeSrc":"2931:9:97","nodeType":"YulIdentifier","src":"2931:9:97"}],"functionName":{"name":"sub","nativeSrc":"2918:3:97","nodeType":"YulIdentifier","src":"2918:3:97"},"nativeSrc":"2918:23:97","nodeType":"YulFunctionCall","src":"2918:23:97"},{"kind":"number","nativeSrc":"2943:2:97","nodeType":"YulLiteral","src":"2943:2:97","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"2914:3:97","nodeType":"YulIdentifier","src":"2914:3:97"},"nativeSrc":"2914:32:97","nodeType":"YulFunctionCall","src":"2914:32:97"},"nativeSrc":"2911:52:97","nodeType":"YulIf","src":"2911:52:97"},{"nativeSrc":"2972:39:97","nodeType":"YulAssignment","src":"2972:39:97","value":{"arguments":[{"name":"headStart","nativeSrc":"3001:9:97","nodeType":"YulIdentifier","src":"3001:9:97"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2982:18:97","nodeType":"YulIdentifier","src":"2982:18:97"},"nativeSrc":"2982:29:97","nodeType":"YulFunctionCall","src":"2982:29:97"},"variableNames":[{"name":"value0","nativeSrc":"2972:6:97","nodeType":"YulIdentifier","src":"2972:6:97"}]},{"nativeSrc":"3020:48:97","nodeType":"YulAssignment","src":"3020:48:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3053:9:97","nodeType":"YulIdentifier","src":"3053:9:97"},{"kind":"number","nativeSrc":"3064:2:97","nodeType":"YulLiteral","src":"3064:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3049:3:97","nodeType":"YulIdentifier","src":"3049:3:97"},"nativeSrc":"3049:18:97","nodeType":"YulFunctionCall","src":"3049:18:97"}],"functionName":{"name":"abi_decode_address","nativeSrc":"3030:18:97","nodeType":"YulIdentifier","src":"3030:18:97"},"nativeSrc":"3030:38:97","nodeType":"YulFunctionCall","src":"3030:38:97"},"variableNames":[{"name":"value1","nativeSrc":"3020:6:97","nodeType":"YulIdentifier","src":"3020:6:97"}]},{"nativeSrc":"3077:46:97","nodeType":"YulVariableDeclaration","src":"3077:46:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3108:9:97","nodeType":"YulIdentifier","src":"3108:9:97"},{"kind":"number","nativeSrc":"3119:2:97","nodeType":"YulLiteral","src":"3119:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3104:3:97","nodeType":"YulIdentifier","src":"3104:3:97"},"nativeSrc":"3104:18:97","nodeType":"YulFunctionCall","src":"3104:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"3091:12:97","nodeType":"YulIdentifier","src":"3091:12:97"},"nativeSrc":"3091:32:97","nodeType":"YulFunctionCall","src":"3091:32:97"},"variables":[{"name":"offset","nativeSrc":"3081:6:97","nodeType":"YulTypedName","src":"3081:6:97","type":""}]},{"body":{"nativeSrc":"3166:16:97","nodeType":"YulBlock","src":"3166:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3175:1:97","nodeType":"YulLiteral","src":"3175:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"3178:1:97","nodeType":"YulLiteral","src":"3178:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3168:6:97","nodeType":"YulIdentifier","src":"3168:6:97"},"nativeSrc":"3168:12:97","nodeType":"YulFunctionCall","src":"3168:12:97"},"nativeSrc":"3168:12:97","nodeType":"YulExpressionStatement","src":"3168:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3138:6:97","nodeType":"YulIdentifier","src":"3138:6:97"},{"kind":"number","nativeSrc":"3146:18:97","nodeType":"YulLiteral","src":"3146:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3135:2:97","nodeType":"YulIdentifier","src":"3135:2:97"},"nativeSrc":"3135:30:97","nodeType":"YulFunctionCall","src":"3135:30:97"},"nativeSrc":"3132:50:97","nodeType":"YulIf","src":"3132:50:97"},{"nativeSrc":"3191:85:97","nodeType":"YulVariableDeclaration","src":"3191:85:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3248:9:97","nodeType":"YulIdentifier","src":"3248:9:97"},{"name":"offset","nativeSrc":"3259:6:97","nodeType":"YulIdentifier","src":"3259:6:97"}],"functionName":{"name":"add","nativeSrc":"3244:3:97","nodeType":"YulIdentifier","src":"3244:3:97"},"nativeSrc":"3244:22:97","nodeType":"YulFunctionCall","src":"3244:22:97"},{"name":"dataEnd","nativeSrc":"3268:7:97","nodeType":"YulIdentifier","src":"3268:7:97"}],"functionName":{"name":"abi_decode_string_calldata","nativeSrc":"3217:26:97","nodeType":"YulIdentifier","src":"3217:26:97"},"nativeSrc":"3217:59:97","nodeType":"YulFunctionCall","src":"3217:59:97"},"variables":[{"name":"value2_1","nativeSrc":"3195:8:97","nodeType":"YulTypedName","src":"3195:8:97","type":""},{"name":"value3_1","nativeSrc":"3205:8:97","nodeType":"YulTypedName","src":"3205:8:97","type":""}]},{"nativeSrc":"3285:18:97","nodeType":"YulAssignment","src":"3285:18:97","value":{"name":"value2_1","nativeSrc":"3295:8:97","nodeType":"YulIdentifier","src":"3295:8:97"},"variableNames":[{"name":"value2","nativeSrc":"3285:6:97","nodeType":"YulIdentifier","src":"3285:6:97"}]},{"nativeSrc":"3312:18:97","nodeType":"YulAssignment","src":"3312:18:97","value":{"name":"value3_1","nativeSrc":"3322:8:97","nodeType":"YulIdentifier","src":"3322:8:97"},"variableNames":[{"name":"value3","nativeSrc":"3312:6:97","nodeType":"YulIdentifier","src":"3312:6:97"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_string_calldata_ptr","nativeSrc":"2777:559:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2843:9:97","nodeType":"YulTypedName","src":"2843:9:97","type":""},{"name":"dataEnd","nativeSrc":"2854:7:97","nodeType":"YulTypedName","src":"2854:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2866:6:97","nodeType":"YulTypedName","src":"2866:6:97","type":""},{"name":"value1","nativeSrc":"2874:6:97","nodeType":"YulTypedName","src":"2874:6:97","type":""},{"name":"value2","nativeSrc":"2882:6:97","nodeType":"YulTypedName","src":"2882:6:97","type":""},{"name":"value3","nativeSrc":"2890:6:97","nodeType":"YulTypedName","src":"2890:6:97","type":""}],"src":"2777:559:97"},{"body":{"nativeSrc":"3518:252:97","nodeType":"YulBlock","src":"3518:252:97","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3535:3:97","nodeType":"YulIdentifier","src":"3535:3:97"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3548:2:97","nodeType":"YulLiteral","src":"3548:2:97","type":"","value":"96"},{"name":"value0","nativeSrc":"3552:6:97","nodeType":"YulIdentifier","src":"3552:6:97"}],"functionName":{"name":"shl","nativeSrc":"3544:3:97","nodeType":"YulIdentifier","src":"3544:3:97"},"nativeSrc":"3544:15:97","nodeType":"YulFunctionCall","src":"3544:15:97"},{"kind":"number","nativeSrc":"3561:66:97","nodeType":"YulLiteral","src":"3561:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"3540:3:97","nodeType":"YulIdentifier","src":"3540:3:97"},"nativeSrc":"3540:88:97","nodeType":"YulFunctionCall","src":"3540:88:97"}],"functionName":{"name":"mstore","nativeSrc":"3528:6:97","nodeType":"YulIdentifier","src":"3528:6:97"},"nativeSrc":"3528:101:97","nodeType":"YulFunctionCall","src":"3528:101:97"},"nativeSrc":"3528:101:97","nodeType":"YulExpressionStatement","src":"3528:101:97"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"3655:3:97","nodeType":"YulIdentifier","src":"3655:3:97"},{"kind":"number","nativeSrc":"3660:2:97","nodeType":"YulLiteral","src":"3660:2:97","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"3651:3:97","nodeType":"YulIdentifier","src":"3651:3:97"},"nativeSrc":"3651:12:97","nodeType":"YulFunctionCall","src":"3651:12:97"},{"name":"value1","nativeSrc":"3665:6:97","nodeType":"YulIdentifier","src":"3665:6:97"},{"name":"value2","nativeSrc":"3673:6:97","nodeType":"YulIdentifier","src":"3673:6:97"}],"functionName":{"name":"calldatacopy","nativeSrc":"3638:12:97","nodeType":"YulIdentifier","src":"3638:12:97"},"nativeSrc":"3638:42:97","nodeType":"YulFunctionCall","src":"3638:42:97"},"nativeSrc":"3638:42:97","nodeType":"YulExpressionStatement","src":"3638:42:97"},{"nativeSrc":"3689:35:97","nodeType":"YulVariableDeclaration","src":"3689:35:97","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"3707:3:97","nodeType":"YulIdentifier","src":"3707:3:97"},{"name":"value2","nativeSrc":"3712:6:97","nodeType":"YulIdentifier","src":"3712:6:97"}],"functionName":{"name":"add","nativeSrc":"3703:3:97","nodeType":"YulIdentifier","src":"3703:3:97"},"nativeSrc":"3703:16:97","nodeType":"YulFunctionCall","src":"3703:16:97"},{"kind":"number","nativeSrc":"3721:2:97","nodeType":"YulLiteral","src":"3721:2:97","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"3699:3:97","nodeType":"YulIdentifier","src":"3699:3:97"},"nativeSrc":"3699:25:97","nodeType":"YulFunctionCall","src":"3699:25:97"},"variables":[{"name":"_1","nativeSrc":"3693:2:97","nodeType":"YulTypedName","src":"3693:2:97","type":""}]},{"expression":{"arguments":[{"name":"_1","nativeSrc":"3740:2:97","nodeType":"YulIdentifier","src":"3740:2:97"},{"kind":"number","nativeSrc":"3744:1:97","nodeType":"YulLiteral","src":"3744:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"3733:6:97","nodeType":"YulIdentifier","src":"3733:6:97"},"nativeSrc":"3733:13:97","nodeType":"YulFunctionCall","src":"3733:13:97"},"nativeSrc":"3733:13:97","nodeType":"YulExpressionStatement","src":"3733:13:97"},{"nativeSrc":"3755:9:97","nodeType":"YulAssignment","src":"3755:9:97","value":{"name":"_1","nativeSrc":"3762:2:97","nodeType":"YulIdentifier","src":"3762:2:97"},"variableNames":[{"name":"end","nativeSrc":"3755:3:97","nodeType":"YulIdentifier","src":"3755:3:97"}]}]},"name":"abi_encode_tuple_packed_t_address_t_string_calldata_ptr__to_t_address_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"3341:429:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3478:3:97","nodeType":"YulTypedName","src":"3478:3:97","type":""},{"name":"value2","nativeSrc":"3483:6:97","nodeType":"YulTypedName","src":"3483:6:97","type":""},{"name":"value1","nativeSrc":"3491:6:97","nodeType":"YulTypedName","src":"3491:6:97","type":""},{"name":"value0","nativeSrc":"3499:6:97","nodeType":"YulTypedName","src":"3499:6:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"3510:3:97","nodeType":"YulTypedName","src":"3510:3:97","type":""}],"src":"3341:429:97"},{"body":{"nativeSrc":"3949:237:97","nodeType":"YulBlock","src":"3949:237:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3966:9:97","nodeType":"YulIdentifier","src":"3966:9:97"},{"kind":"number","nativeSrc":"3977:2:97","nodeType":"YulLiteral","src":"3977:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"3959:6:97","nodeType":"YulIdentifier","src":"3959:6:97"},"nativeSrc":"3959:21:97","nodeType":"YulFunctionCall","src":"3959:21:97"},"nativeSrc":"3959:21:97","nodeType":"YulExpressionStatement","src":"3959:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4000:9:97","nodeType":"YulIdentifier","src":"4000:9:97"},{"kind":"number","nativeSrc":"4011:2:97","nodeType":"YulLiteral","src":"4011:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3996:3:97","nodeType":"YulIdentifier","src":"3996:3:97"},"nativeSrc":"3996:18:97","nodeType":"YulFunctionCall","src":"3996:18:97"},{"kind":"number","nativeSrc":"4016:2:97","nodeType":"YulLiteral","src":"4016:2:97","type":"","value":"47"}],"functionName":{"name":"mstore","nativeSrc":"3989:6:97","nodeType":"YulIdentifier","src":"3989:6:97"},"nativeSrc":"3989:30:97","nodeType":"YulFunctionCall","src":"3989:30:97"},"nativeSrc":"3989:30:97","nodeType":"YulExpressionStatement","src":"3989:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4039:9:97","nodeType":"YulIdentifier","src":"4039:9:97"},{"kind":"number","nativeSrc":"4050:2:97","nodeType":"YulLiteral","src":"4050:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4035:3:97","nodeType":"YulIdentifier","src":"4035:3:97"},"nativeSrc":"4035:18:97","nodeType":"YulFunctionCall","src":"4035:18:97"},{"hexValue":"416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e6365","kind":"string","nativeSrc":"4055:34:97","nodeType":"YulLiteral","src":"4055:34:97","type":"","value":"AccessControl: can only renounce"}],"functionName":{"name":"mstore","nativeSrc":"4028:6:97","nodeType":"YulIdentifier","src":"4028:6:97"},"nativeSrc":"4028:62:97","nodeType":"YulFunctionCall","src":"4028:62:97"},"nativeSrc":"4028:62:97","nodeType":"YulExpressionStatement","src":"4028:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4110:9:97","nodeType":"YulIdentifier","src":"4110:9:97"},{"kind":"number","nativeSrc":"4121:2:97","nodeType":"YulLiteral","src":"4121:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4106:3:97","nodeType":"YulIdentifier","src":"4106:3:97"},"nativeSrc":"4106:18:97","nodeType":"YulFunctionCall","src":"4106:18:97"},{"hexValue":"20726f6c657320666f722073656c66","kind":"string","nativeSrc":"4126:17:97","nodeType":"YulLiteral","src":"4126:17:97","type":"","value":" roles for self"}],"functionName":{"name":"mstore","nativeSrc":"4099:6:97","nodeType":"YulIdentifier","src":"4099:6:97"},"nativeSrc":"4099:45:97","nodeType":"YulFunctionCall","src":"4099:45:97"},"nativeSrc":"4099:45:97","nodeType":"YulExpressionStatement","src":"4099:45:97"},{"nativeSrc":"4153:27:97","nodeType":"YulAssignment","src":"4153:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"4165:9:97","nodeType":"YulIdentifier","src":"4165:9:97"},{"kind":"number","nativeSrc":"4176:3:97","nodeType":"YulLiteral","src":"4176:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"4161:3:97","nodeType":"YulIdentifier","src":"4161:3:97"},"nativeSrc":"4161:19:97","nodeType":"YulFunctionCall","src":"4161:19:97"},"variableNames":[{"name":"tail","nativeSrc":"4153:4:97","nodeType":"YulIdentifier","src":"4153:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3775:411:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3926:9:97","nodeType":"YulTypedName","src":"3926:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3940:4:97","nodeType":"YulTypedName","src":"3940:4:97","type":""}],"src":"3775:411:97"},{"body":{"nativeSrc":"4378:486:97","nodeType":"YulBlock","src":"4378:486:97","statements":[{"nativeSrc":"4388:52:97","nodeType":"YulVariableDeclaration","src":"4388:52:97","value":{"kind":"number","nativeSrc":"4398:42:97","nodeType":"YulLiteral","src":"4398:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"4392:2:97","nodeType":"YulTypedName","src":"4392:2:97","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4456:9:97","nodeType":"YulIdentifier","src":"4456:9:97"},{"arguments":[{"name":"value0","nativeSrc":"4471:6:97","nodeType":"YulIdentifier","src":"4471:6:97"},{"name":"_1","nativeSrc":"4479:2:97","nodeType":"YulIdentifier","src":"4479:2:97"}],"functionName":{"name":"and","nativeSrc":"4467:3:97","nodeType":"YulIdentifier","src":"4467:3:97"},"nativeSrc":"4467:15:97","nodeType":"YulFunctionCall","src":"4467:15:97"}],"functionName":{"name":"mstore","nativeSrc":"4449:6:97","nodeType":"YulIdentifier","src":"4449:6:97"},"nativeSrc":"4449:34:97","nodeType":"YulFunctionCall","src":"4449:34:97"},"nativeSrc":"4449:34:97","nodeType":"YulExpressionStatement","src":"4449:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4503:9:97","nodeType":"YulIdentifier","src":"4503:9:97"},{"kind":"number","nativeSrc":"4514:2:97","nodeType":"YulLiteral","src":"4514:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4499:3:97","nodeType":"YulIdentifier","src":"4499:3:97"},"nativeSrc":"4499:18:97","nodeType":"YulFunctionCall","src":"4499:18:97"},{"arguments":[{"name":"value1","nativeSrc":"4523:6:97","nodeType":"YulIdentifier","src":"4523:6:97"},{"name":"_1","nativeSrc":"4531:2:97","nodeType":"YulIdentifier","src":"4531:2:97"}],"functionName":{"name":"and","nativeSrc":"4519:3:97","nodeType":"YulIdentifier","src":"4519:3:97"},"nativeSrc":"4519:15:97","nodeType":"YulFunctionCall","src":"4519:15:97"}],"functionName":{"name":"mstore","nativeSrc":"4492:6:97","nodeType":"YulIdentifier","src":"4492:6:97"},"nativeSrc":"4492:43:97","nodeType":"YulFunctionCall","src":"4492:43:97"},"nativeSrc":"4492:43:97","nodeType":"YulExpressionStatement","src":"4492:43:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4555:9:97","nodeType":"YulIdentifier","src":"4555:9:97"},{"kind":"number","nativeSrc":"4566:2:97","nodeType":"YulLiteral","src":"4566:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4551:3:97","nodeType":"YulIdentifier","src":"4551:3:97"},"nativeSrc":"4551:18:97","nodeType":"YulFunctionCall","src":"4551:18:97"},{"kind":"number","nativeSrc":"4571:2:97","nodeType":"YulLiteral","src":"4571:2:97","type":"","value":"96"}],"functionName":{"name":"mstore","nativeSrc":"4544:6:97","nodeType":"YulIdentifier","src":"4544:6:97"},"nativeSrc":"4544:30:97","nodeType":"YulFunctionCall","src":"4544:30:97"},"nativeSrc":"4544:30:97","nodeType":"YulExpressionStatement","src":"4544:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4594:9:97","nodeType":"YulIdentifier","src":"4594:9:97"},{"kind":"number","nativeSrc":"4605:2:97","nodeType":"YulLiteral","src":"4605:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4590:3:97","nodeType":"YulIdentifier","src":"4590:3:97"},"nativeSrc":"4590:18:97","nodeType":"YulFunctionCall","src":"4590:18:97"},{"name":"value3","nativeSrc":"4610:6:97","nodeType":"YulIdentifier","src":"4610:6:97"}],"functionName":{"name":"mstore","nativeSrc":"4583:6:97","nodeType":"YulIdentifier","src":"4583:6:97"},"nativeSrc":"4583:34:97","nodeType":"YulFunctionCall","src":"4583:34:97"},"nativeSrc":"4583:34:97","nodeType":"YulExpressionStatement","src":"4583:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4643:9:97","nodeType":"YulIdentifier","src":"4643:9:97"},{"kind":"number","nativeSrc":"4654:3:97","nodeType":"YulLiteral","src":"4654:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"4639:3:97","nodeType":"YulIdentifier","src":"4639:3:97"},"nativeSrc":"4639:19:97","nodeType":"YulFunctionCall","src":"4639:19:97"},{"name":"value2","nativeSrc":"4660:6:97","nodeType":"YulIdentifier","src":"4660:6:97"},{"name":"value3","nativeSrc":"4668:6:97","nodeType":"YulIdentifier","src":"4668:6:97"}],"functionName":{"name":"calldatacopy","nativeSrc":"4626:12:97","nodeType":"YulIdentifier","src":"4626:12:97"},"nativeSrc":"4626:49:97","nodeType":"YulFunctionCall","src":"4626:49:97"},"nativeSrc":"4626:49:97","nodeType":"YulExpressionStatement","src":"4626:49:97"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4699:9:97","nodeType":"YulIdentifier","src":"4699:9:97"},{"name":"value3","nativeSrc":"4710:6:97","nodeType":"YulIdentifier","src":"4710:6:97"}],"functionName":{"name":"add","nativeSrc":"4695:3:97","nodeType":"YulIdentifier","src":"4695:3:97"},"nativeSrc":"4695:22:97","nodeType":"YulFunctionCall","src":"4695:22:97"},{"kind":"number","nativeSrc":"4719:3:97","nodeType":"YulLiteral","src":"4719:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"4691:3:97","nodeType":"YulIdentifier","src":"4691:3:97"},"nativeSrc":"4691:32:97","nodeType":"YulFunctionCall","src":"4691:32:97"},{"kind":"number","nativeSrc":"4725:1:97","nodeType":"YulLiteral","src":"4725:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4684:6:97","nodeType":"YulIdentifier","src":"4684:6:97"},"nativeSrc":"4684:43:97","nodeType":"YulFunctionCall","src":"4684:43:97"},"nativeSrc":"4684:43:97","nodeType":"YulExpressionStatement","src":"4684:43:97"},{"nativeSrc":"4736:122:97","nodeType":"YulAssignment","src":"4736:122:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4752:9:97","nodeType":"YulIdentifier","src":"4752:9:97"},{"arguments":[{"arguments":[{"name":"value3","nativeSrc":"4771:6:97","nodeType":"YulIdentifier","src":"4771:6:97"},{"kind":"number","nativeSrc":"4779:2:97","nodeType":"YulLiteral","src":"4779:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"4767:3:97","nodeType":"YulIdentifier","src":"4767:3:97"},"nativeSrc":"4767:15:97","nodeType":"YulFunctionCall","src":"4767:15:97"},{"kind":"number","nativeSrc":"4784:66:97","nodeType":"YulLiteral","src":"4784:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"4763:3:97","nodeType":"YulIdentifier","src":"4763:3:97"},"nativeSrc":"4763:88:97","nodeType":"YulFunctionCall","src":"4763:88:97"}],"functionName":{"name":"add","nativeSrc":"4748:3:97","nodeType":"YulIdentifier","src":"4748:3:97"},"nativeSrc":"4748:104:97","nodeType":"YulFunctionCall","src":"4748:104:97"},{"kind":"number","nativeSrc":"4854:3:97","nodeType":"YulLiteral","src":"4854:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"4744:3:97","nodeType":"YulIdentifier","src":"4744:3:97"},"nativeSrc":"4744:114:97","nodeType":"YulFunctionCall","src":"4744:114:97"},"variableNames":[{"name":"tail","nativeSrc":"4736:4:97","nodeType":"YulIdentifier","src":"4736:4:97"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_string_calldata_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"4191:673:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4323:9:97","nodeType":"YulTypedName","src":"4323:9:97","type":""},{"name":"value3","nativeSrc":"4334:6:97","nodeType":"YulTypedName","src":"4334:6:97","type":""},{"name":"value2","nativeSrc":"4342:6:97","nodeType":"YulTypedName","src":"4342:6:97","type":""},{"name":"value1","nativeSrc":"4350:6:97","nodeType":"YulTypedName","src":"4350:6:97","type":""},{"name":"value0","nativeSrc":"4358:6:97","nodeType":"YulTypedName","src":"4358:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4369:4:97","nodeType":"YulTypedName","src":"4369:4:97","type":""}],"src":"4191:673:97"},{"body":{"nativeSrc":"4935:184:97","nodeType":"YulBlock","src":"4935:184:97","statements":[{"nativeSrc":"4945:10:97","nodeType":"YulVariableDeclaration","src":"4945:10:97","value":{"kind":"number","nativeSrc":"4954:1:97","nodeType":"YulLiteral","src":"4954:1:97","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"4949:1:97","nodeType":"YulTypedName","src":"4949:1:97","type":""}]},{"body":{"nativeSrc":"5014:63:97","nodeType":"YulBlock","src":"5014:63:97","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"5039:3:97","nodeType":"YulIdentifier","src":"5039:3:97"},{"name":"i","nativeSrc":"5044:1:97","nodeType":"YulIdentifier","src":"5044:1:97"}],"functionName":{"name":"add","nativeSrc":"5035:3:97","nodeType":"YulIdentifier","src":"5035:3:97"},"nativeSrc":"5035:11:97","nodeType":"YulFunctionCall","src":"5035:11:97"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"5058:3:97","nodeType":"YulIdentifier","src":"5058:3:97"},{"name":"i","nativeSrc":"5063:1:97","nodeType":"YulIdentifier","src":"5063:1:97"}],"functionName":{"name":"add","nativeSrc":"5054:3:97","nodeType":"YulIdentifier","src":"5054:3:97"},"nativeSrc":"5054:11:97","nodeType":"YulFunctionCall","src":"5054:11:97"}],"functionName":{"name":"mload","nativeSrc":"5048:5:97","nodeType":"YulIdentifier","src":"5048:5:97"},"nativeSrc":"5048:18:97","nodeType":"YulFunctionCall","src":"5048:18:97"}],"functionName":{"name":"mstore","nativeSrc":"5028:6:97","nodeType":"YulIdentifier","src":"5028:6:97"},"nativeSrc":"5028:39:97","nodeType":"YulFunctionCall","src":"5028:39:97"},"nativeSrc":"5028:39:97","nodeType":"YulExpressionStatement","src":"5028:39:97"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"4975:1:97","nodeType":"YulIdentifier","src":"4975:1:97"},{"name":"length","nativeSrc":"4978:6:97","nodeType":"YulIdentifier","src":"4978:6:97"}],"functionName":{"name":"lt","nativeSrc":"4972:2:97","nodeType":"YulIdentifier","src":"4972:2:97"},"nativeSrc":"4972:13:97","nodeType":"YulFunctionCall","src":"4972:13:97"},"nativeSrc":"4964:113:97","nodeType":"YulForLoop","post":{"nativeSrc":"4986:19:97","nodeType":"YulBlock","src":"4986:19:97","statements":[{"nativeSrc":"4988:15:97","nodeType":"YulAssignment","src":"4988:15:97","value":{"arguments":[{"name":"i","nativeSrc":"4997:1:97","nodeType":"YulIdentifier","src":"4997:1:97"},{"kind":"number","nativeSrc":"5000:2:97","nodeType":"YulLiteral","src":"5000:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4993:3:97","nodeType":"YulIdentifier","src":"4993:3:97"},"nativeSrc":"4993:10:97","nodeType":"YulFunctionCall","src":"4993:10:97"},"variableNames":[{"name":"i","nativeSrc":"4988:1:97","nodeType":"YulIdentifier","src":"4988:1:97"}]}]},"pre":{"nativeSrc":"4968:3:97","nodeType":"YulBlock","src":"4968:3:97","statements":[]},"src":"4964:113:97"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"5097:3:97","nodeType":"YulIdentifier","src":"5097:3:97"},{"name":"length","nativeSrc":"5102:6:97","nodeType":"YulIdentifier","src":"5102:6:97"}],"functionName":{"name":"add","nativeSrc":"5093:3:97","nodeType":"YulIdentifier","src":"5093:3:97"},"nativeSrc":"5093:16:97","nodeType":"YulFunctionCall","src":"5093:16:97"},{"kind":"number","nativeSrc":"5111:1:97","nodeType":"YulLiteral","src":"5111:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"5086:6:97","nodeType":"YulIdentifier","src":"5086:6:97"},"nativeSrc":"5086:27:97","nodeType":"YulFunctionCall","src":"5086:27:97"},"nativeSrc":"5086:27:97","nodeType":"YulExpressionStatement","src":"5086:27:97"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4869:250:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"4913:3:97","nodeType":"YulTypedName","src":"4913:3:97","type":""},{"name":"dst","nativeSrc":"4918:3:97","nodeType":"YulTypedName","src":"4918:3:97","type":""},{"name":"length","nativeSrc":"4923:6:97","nodeType":"YulTypedName","src":"4923:6:97","type":""}],"src":"4869:250:97"},{"body":{"nativeSrc":"5513:423:97","nodeType":"YulBlock","src":"5513:423:97","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5530:3:97","nodeType":"YulIdentifier","src":"5530:3:97"},{"hexValue":"416363657373436f6e74726f6c3a206163636f756e7420","kind":"string","nativeSrc":"5535:25:97","nodeType":"YulLiteral","src":"5535:25:97","type":"","value":"AccessControl: account "}],"functionName":{"name":"mstore","nativeSrc":"5523:6:97","nodeType":"YulIdentifier","src":"5523:6:97"},"nativeSrc":"5523:38:97","nodeType":"YulFunctionCall","src":"5523:38:97"},"nativeSrc":"5523:38:97","nodeType":"YulExpressionStatement","src":"5523:38:97"},{"nativeSrc":"5570:27:97","nodeType":"YulVariableDeclaration","src":"5570:27:97","value":{"arguments":[{"name":"value0","nativeSrc":"5590:6:97","nodeType":"YulIdentifier","src":"5590:6:97"}],"functionName":{"name":"mload","nativeSrc":"5584:5:97","nodeType":"YulIdentifier","src":"5584:5:97"},"nativeSrc":"5584:13:97","nodeType":"YulFunctionCall","src":"5584:13:97"},"variables":[{"name":"length","nativeSrc":"5574:6:97","nodeType":"YulTypedName","src":"5574:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"5645:6:97","nodeType":"YulIdentifier","src":"5645:6:97"},{"kind":"number","nativeSrc":"5653:4:97","nodeType":"YulLiteral","src":"5653:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5641:3:97","nodeType":"YulIdentifier","src":"5641:3:97"},"nativeSrc":"5641:17:97","nodeType":"YulFunctionCall","src":"5641:17:97"},{"arguments":[{"name":"pos","nativeSrc":"5664:3:97","nodeType":"YulIdentifier","src":"5664:3:97"},{"kind":"number","nativeSrc":"5669:2:97","nodeType":"YulLiteral","src":"5669:2:97","type":"","value":"23"}],"functionName":{"name":"add","nativeSrc":"5660:3:97","nodeType":"YulIdentifier","src":"5660:3:97"},"nativeSrc":"5660:12:97","nodeType":"YulFunctionCall","src":"5660:12:97"},{"name":"length","nativeSrc":"5674:6:97","nodeType":"YulIdentifier","src":"5674:6:97"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"5606:34:97","nodeType":"YulIdentifier","src":"5606:34:97"},"nativeSrc":"5606:75:97","nodeType":"YulFunctionCall","src":"5606:75:97"},"nativeSrc":"5606:75:97","nodeType":"YulExpressionStatement","src":"5606:75:97"},{"nativeSrc":"5690:26:97","nodeType":"YulVariableDeclaration","src":"5690:26:97","value":{"arguments":[{"name":"pos","nativeSrc":"5704:3:97","nodeType":"YulIdentifier","src":"5704:3:97"},{"name":"length","nativeSrc":"5709:6:97","nodeType":"YulIdentifier","src":"5709:6:97"}],"functionName":{"name":"add","nativeSrc":"5700:3:97","nodeType":"YulIdentifier","src":"5700:3:97"},"nativeSrc":"5700:16:97","nodeType":"YulFunctionCall","src":"5700:16:97"},"variables":[{"name":"_1","nativeSrc":"5694:2:97","nodeType":"YulTypedName","src":"5694:2:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"5736:2:97","nodeType":"YulIdentifier","src":"5736:2:97"},{"kind":"number","nativeSrc":"5740:2:97","nodeType":"YulLiteral","src":"5740:2:97","type":"","value":"23"}],"functionName":{"name":"add","nativeSrc":"5732:3:97","nodeType":"YulIdentifier","src":"5732:3:97"},"nativeSrc":"5732:11:97","nodeType":"YulFunctionCall","src":"5732:11:97"},{"hexValue":"206973206d697373696e6720726f6c6520","kind":"string","nativeSrc":"5745:19:97","nodeType":"YulLiteral","src":"5745:19:97","type":"","value":" is missing role "}],"functionName":{"name":"mstore","nativeSrc":"5725:6:97","nodeType":"YulIdentifier","src":"5725:6:97"},"nativeSrc":"5725:40:97","nodeType":"YulFunctionCall","src":"5725:40:97"},"nativeSrc":"5725:40:97","nodeType":"YulExpressionStatement","src":"5725:40:97"},{"nativeSrc":"5774:29:97","nodeType":"YulVariableDeclaration","src":"5774:29:97","value":{"arguments":[{"name":"value1","nativeSrc":"5796:6:97","nodeType":"YulIdentifier","src":"5796:6:97"}],"functionName":{"name":"mload","nativeSrc":"5790:5:97","nodeType":"YulIdentifier","src":"5790:5:97"},"nativeSrc":"5790:13:97","nodeType":"YulFunctionCall","src":"5790:13:97"},"variables":[{"name":"length_1","nativeSrc":"5778:8:97","nodeType":"YulTypedName","src":"5778:8:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nativeSrc":"5851:6:97","nodeType":"YulIdentifier","src":"5851:6:97"},{"kind":"number","nativeSrc":"5859:4:97","nodeType":"YulLiteral","src":"5859:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5847:3:97","nodeType":"YulIdentifier","src":"5847:3:97"},"nativeSrc":"5847:17:97","nodeType":"YulFunctionCall","src":"5847:17:97"},{"arguments":[{"name":"_1","nativeSrc":"5870:2:97","nodeType":"YulIdentifier","src":"5870:2:97"},{"kind":"number","nativeSrc":"5874:2:97","nodeType":"YulLiteral","src":"5874:2:97","type":"","value":"40"}],"functionName":{"name":"add","nativeSrc":"5866:3:97","nodeType":"YulIdentifier","src":"5866:3:97"},"nativeSrc":"5866:11:97","nodeType":"YulFunctionCall","src":"5866:11:97"},{"name":"length_1","nativeSrc":"5879:8:97","nodeType":"YulIdentifier","src":"5879:8:97"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"5812:34:97","nodeType":"YulIdentifier","src":"5812:34:97"},"nativeSrc":"5812:76:97","nodeType":"YulFunctionCall","src":"5812:76:97"},"nativeSrc":"5812:76:97","nodeType":"YulExpressionStatement","src":"5812:76:97"},{"nativeSrc":"5897:33:97","nodeType":"YulAssignment","src":"5897:33:97","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"5912:2:97","nodeType":"YulIdentifier","src":"5912:2:97"},{"name":"length_1","nativeSrc":"5916:8:97","nodeType":"YulIdentifier","src":"5916:8:97"}],"functionName":{"name":"add","nativeSrc":"5908:3:97","nodeType":"YulIdentifier","src":"5908:3:97"},"nativeSrc":"5908:17:97","nodeType":"YulFunctionCall","src":"5908:17:97"},{"kind":"number","nativeSrc":"5927:2:97","nodeType":"YulLiteral","src":"5927:2:97","type":"","value":"40"}],"functionName":{"name":"add","nativeSrc":"5904:3:97","nodeType":"YulIdentifier","src":"5904:3:97"},"nativeSrc":"5904:26:97","nodeType":"YulFunctionCall","src":"5904:26:97"},"variableNames":[{"name":"end","nativeSrc":"5897:3:97","nodeType":"YulIdentifier","src":"5897:3:97"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"5124:812:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5481:3:97","nodeType":"YulTypedName","src":"5481:3:97","type":""},{"name":"value1","nativeSrc":"5486:6:97","nodeType":"YulTypedName","src":"5486:6:97","type":""},{"name":"value0","nativeSrc":"5494:6:97","nodeType":"YulTypedName","src":"5494:6:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5505:3:97","nodeType":"YulTypedName","src":"5505:3:97","type":""}],"src":"5124:812:97"},{"body":{"nativeSrc":"6062:334:97","nodeType":"YulBlock","src":"6062:334:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6079:9:97","nodeType":"YulIdentifier","src":"6079:9:97"},{"kind":"number","nativeSrc":"6090:2:97","nodeType":"YulLiteral","src":"6090:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"6072:6:97","nodeType":"YulIdentifier","src":"6072:6:97"},"nativeSrc":"6072:21:97","nodeType":"YulFunctionCall","src":"6072:21:97"},"nativeSrc":"6072:21:97","nodeType":"YulExpressionStatement","src":"6072:21:97"},{"nativeSrc":"6102:27:97","nodeType":"YulVariableDeclaration","src":"6102:27:97","value":{"arguments":[{"name":"value0","nativeSrc":"6122:6:97","nodeType":"YulIdentifier","src":"6122:6:97"}],"functionName":{"name":"mload","nativeSrc":"6116:5:97","nodeType":"YulIdentifier","src":"6116:5:97"},"nativeSrc":"6116:13:97","nodeType":"YulFunctionCall","src":"6116:13:97"},"variables":[{"name":"length","nativeSrc":"6106:6:97","nodeType":"YulTypedName","src":"6106:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6149:9:97","nodeType":"YulIdentifier","src":"6149:9:97"},{"kind":"number","nativeSrc":"6160:2:97","nodeType":"YulLiteral","src":"6160:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6145:3:97","nodeType":"YulIdentifier","src":"6145:3:97"},"nativeSrc":"6145:18:97","nodeType":"YulFunctionCall","src":"6145:18:97"},{"name":"length","nativeSrc":"6165:6:97","nodeType":"YulIdentifier","src":"6165:6:97"}],"functionName":{"name":"mstore","nativeSrc":"6138:6:97","nodeType":"YulIdentifier","src":"6138:6:97"},"nativeSrc":"6138:34:97","nodeType":"YulFunctionCall","src":"6138:34:97"},"nativeSrc":"6138:34:97","nodeType":"YulExpressionStatement","src":"6138:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"6220:6:97","nodeType":"YulIdentifier","src":"6220:6:97"},{"kind":"number","nativeSrc":"6228:2:97","nodeType":"YulLiteral","src":"6228:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6216:3:97","nodeType":"YulIdentifier","src":"6216:3:97"},"nativeSrc":"6216:15:97","nodeType":"YulFunctionCall","src":"6216:15:97"},{"arguments":[{"name":"headStart","nativeSrc":"6237:9:97","nodeType":"YulIdentifier","src":"6237:9:97"},{"kind":"number","nativeSrc":"6248:2:97","nodeType":"YulLiteral","src":"6248:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6233:3:97","nodeType":"YulIdentifier","src":"6233:3:97"},"nativeSrc":"6233:18:97","nodeType":"YulFunctionCall","src":"6233:18:97"},{"name":"length","nativeSrc":"6253:6:97","nodeType":"YulIdentifier","src":"6253:6:97"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"6181:34:97","nodeType":"YulIdentifier","src":"6181:34:97"},"nativeSrc":"6181:79:97","nodeType":"YulFunctionCall","src":"6181:79:97"},"nativeSrc":"6181:79:97","nodeType":"YulExpressionStatement","src":"6181:79:97"},{"nativeSrc":"6269:121:97","nodeType":"YulAssignment","src":"6269:121:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6285:9:97","nodeType":"YulIdentifier","src":"6285:9:97"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"6304:6:97","nodeType":"YulIdentifier","src":"6304:6:97"},{"kind":"number","nativeSrc":"6312:2:97","nodeType":"YulLiteral","src":"6312:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"6300:3:97","nodeType":"YulIdentifier","src":"6300:3:97"},"nativeSrc":"6300:15:97","nodeType":"YulFunctionCall","src":"6300:15:97"},{"kind":"number","nativeSrc":"6317:66:97","nodeType":"YulLiteral","src":"6317:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"6296:3:97","nodeType":"YulIdentifier","src":"6296:3:97"},"nativeSrc":"6296:88:97","nodeType":"YulFunctionCall","src":"6296:88:97"}],"functionName":{"name":"add","nativeSrc":"6281:3:97","nodeType":"YulIdentifier","src":"6281:3:97"},"nativeSrc":"6281:104:97","nodeType":"YulFunctionCall","src":"6281:104:97"},{"kind":"number","nativeSrc":"6387:2:97","nodeType":"YulLiteral","src":"6387:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6277:3:97","nodeType":"YulIdentifier","src":"6277:3:97"},"nativeSrc":"6277:113:97","nodeType":"YulFunctionCall","src":"6277:113:97"},"variableNames":[{"name":"tail","nativeSrc":"6269:4:97","nodeType":"YulIdentifier","src":"6269:4:97"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5941:455:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6031:9:97","nodeType":"YulTypedName","src":"6031:9:97","type":""},{"name":"value0","nativeSrc":"6042:6:97","nodeType":"YulTypedName","src":"6042:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6053:4:97","nodeType":"YulTypedName","src":"6053:4:97","type":""}],"src":"5941:455:97"},{"body":{"nativeSrc":"6433:152:97","nodeType":"YulBlock","src":"6433:152:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6450:1:97","nodeType":"YulLiteral","src":"6450:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"6453:77:97","nodeType":"YulLiteral","src":"6453:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6443:6:97","nodeType":"YulIdentifier","src":"6443:6:97"},"nativeSrc":"6443:88:97","nodeType":"YulFunctionCall","src":"6443:88:97"},"nativeSrc":"6443:88:97","nodeType":"YulExpressionStatement","src":"6443:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6547:1:97","nodeType":"YulLiteral","src":"6547:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"6550:4:97","nodeType":"YulLiteral","src":"6550:4:97","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"6540:6:97","nodeType":"YulIdentifier","src":"6540:6:97"},"nativeSrc":"6540:15:97","nodeType":"YulFunctionCall","src":"6540:15:97"},"nativeSrc":"6540:15:97","nodeType":"YulExpressionStatement","src":"6540:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6571:1:97","nodeType":"YulLiteral","src":"6571:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"6574:4:97","nodeType":"YulLiteral","src":"6574:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6564:6:97","nodeType":"YulIdentifier","src":"6564:6:97"},"nativeSrc":"6564:15:97","nodeType":"YulFunctionCall","src":"6564:15:97"},"nativeSrc":"6564:15:97","nodeType":"YulExpressionStatement","src":"6564:15:97"}]},"name":"panic_error_0x11","nativeSrc":"6401:184:97","nodeType":"YulFunctionDefinition","src":"6401:184:97"},{"body":{"nativeSrc":"6642:116:97","nodeType":"YulBlock","src":"6642:116:97","statements":[{"nativeSrc":"6652:20:97","nodeType":"YulAssignment","src":"6652:20:97","value":{"arguments":[{"name":"x","nativeSrc":"6667:1:97","nodeType":"YulIdentifier","src":"6667:1:97"},{"name":"y","nativeSrc":"6670:1:97","nodeType":"YulIdentifier","src":"6670:1:97"}],"functionName":{"name":"mul","nativeSrc":"6663:3:97","nodeType":"YulIdentifier","src":"6663:3:97"},"nativeSrc":"6663:9:97","nodeType":"YulFunctionCall","src":"6663:9:97"},"variableNames":[{"name":"product","nativeSrc":"6652:7:97","nodeType":"YulIdentifier","src":"6652:7:97"}]},{"body":{"nativeSrc":"6730:22:97","nodeType":"YulBlock","src":"6730:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"6732:16:97","nodeType":"YulIdentifier","src":"6732:16:97"},"nativeSrc":"6732:18:97","nodeType":"YulFunctionCall","src":"6732:18:97"},"nativeSrc":"6732:18:97","nodeType":"YulExpressionStatement","src":"6732:18:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"6701:1:97","nodeType":"YulIdentifier","src":"6701:1:97"}],"functionName":{"name":"iszero","nativeSrc":"6694:6:97","nodeType":"YulIdentifier","src":"6694:6:97"},"nativeSrc":"6694:9:97","nodeType":"YulFunctionCall","src":"6694:9:97"},{"arguments":[{"name":"y","nativeSrc":"6708:1:97","nodeType":"YulIdentifier","src":"6708:1:97"},{"arguments":[{"name":"product","nativeSrc":"6715:7:97","nodeType":"YulIdentifier","src":"6715:7:97"},{"name":"x","nativeSrc":"6724:1:97","nodeType":"YulIdentifier","src":"6724:1:97"}],"functionName":{"name":"div","nativeSrc":"6711:3:97","nodeType":"YulIdentifier","src":"6711:3:97"},"nativeSrc":"6711:15:97","nodeType":"YulFunctionCall","src":"6711:15:97"}],"functionName":{"name":"eq","nativeSrc":"6705:2:97","nodeType":"YulIdentifier","src":"6705:2:97"},"nativeSrc":"6705:22:97","nodeType":"YulFunctionCall","src":"6705:22:97"}],"functionName":{"name":"or","nativeSrc":"6691:2:97","nodeType":"YulIdentifier","src":"6691:2:97"},"nativeSrc":"6691:37:97","nodeType":"YulFunctionCall","src":"6691:37:97"}],"functionName":{"name":"iszero","nativeSrc":"6684:6:97","nodeType":"YulIdentifier","src":"6684:6:97"},"nativeSrc":"6684:45:97","nodeType":"YulFunctionCall","src":"6684:45:97"},"nativeSrc":"6681:71:97","nodeType":"YulIf","src":"6681:71:97"}]},"name":"checked_mul_t_uint256","nativeSrc":"6590:168:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6621:1:97","nodeType":"YulTypedName","src":"6621:1:97","type":""},{"name":"y","nativeSrc":"6624:1:97","nodeType":"YulTypedName","src":"6624:1:97","type":""}],"returnVariables":[{"name":"product","nativeSrc":"6630:7:97","nodeType":"YulTypedName","src":"6630:7:97","type":""}],"src":"6590:168:97"},{"body":{"nativeSrc":"6811:77:97","nodeType":"YulBlock","src":"6811:77:97","statements":[{"nativeSrc":"6821:16:97","nodeType":"YulAssignment","src":"6821:16:97","value":{"arguments":[{"name":"x","nativeSrc":"6832:1:97","nodeType":"YulIdentifier","src":"6832:1:97"},{"name":"y","nativeSrc":"6835:1:97","nodeType":"YulIdentifier","src":"6835:1:97"}],"functionName":{"name":"add","nativeSrc":"6828:3:97","nodeType":"YulIdentifier","src":"6828:3:97"},"nativeSrc":"6828:9:97","nodeType":"YulFunctionCall","src":"6828:9:97"},"variableNames":[{"name":"sum","nativeSrc":"6821:3:97","nodeType":"YulIdentifier","src":"6821:3:97"}]},{"body":{"nativeSrc":"6860:22:97","nodeType":"YulBlock","src":"6860:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"6862:16:97","nodeType":"YulIdentifier","src":"6862:16:97"},"nativeSrc":"6862:18:97","nodeType":"YulFunctionCall","src":"6862:18:97"},"nativeSrc":"6862:18:97","nodeType":"YulExpressionStatement","src":"6862:18:97"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"6852:1:97","nodeType":"YulIdentifier","src":"6852:1:97"},{"name":"sum","nativeSrc":"6855:3:97","nodeType":"YulIdentifier","src":"6855:3:97"}],"functionName":{"name":"gt","nativeSrc":"6849:2:97","nodeType":"YulIdentifier","src":"6849:2:97"},"nativeSrc":"6849:10:97","nodeType":"YulFunctionCall","src":"6849:10:97"},"nativeSrc":"6846:36:97","nodeType":"YulIf","src":"6846:36:97"}]},"name":"checked_add_t_uint256","nativeSrc":"6763:125:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6794:1:97","nodeType":"YulTypedName","src":"6794:1:97","type":""},{"name":"y","nativeSrc":"6797:1:97","nodeType":"YulTypedName","src":"6797:1:97","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"6803:3:97","nodeType":"YulTypedName","src":"6803:3:97","type":""}],"src":"6763:125:97"},{"body":{"nativeSrc":"6925:152:97","nodeType":"YulBlock","src":"6925:152:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6942:1:97","nodeType":"YulLiteral","src":"6942:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"6945:77:97","nodeType":"YulLiteral","src":"6945:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6935:6:97","nodeType":"YulIdentifier","src":"6935:6:97"},"nativeSrc":"6935:88:97","nodeType":"YulFunctionCall","src":"6935:88:97"},"nativeSrc":"6935:88:97","nodeType":"YulExpressionStatement","src":"6935:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7039:1:97","nodeType":"YulLiteral","src":"7039:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"7042:4:97","nodeType":"YulLiteral","src":"7042:4:97","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"7032:6:97","nodeType":"YulIdentifier","src":"7032:6:97"},"nativeSrc":"7032:15:97","nodeType":"YulFunctionCall","src":"7032:15:97"},"nativeSrc":"7032:15:97","nodeType":"YulExpressionStatement","src":"7032:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7063:1:97","nodeType":"YulLiteral","src":"7063:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"7066:4:97","nodeType":"YulLiteral","src":"7066:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"7056:6:97","nodeType":"YulIdentifier","src":"7056:6:97"},"nativeSrc":"7056:15:97","nodeType":"YulFunctionCall","src":"7056:15:97"},"nativeSrc":"7056:15:97","nodeType":"YulExpressionStatement","src":"7056:15:97"}]},"name":"panic_error_0x41","nativeSrc":"6893:184:97","nodeType":"YulFunctionDefinition","src":"6893:184:97"},{"body":{"nativeSrc":"7114:152:97","nodeType":"YulBlock","src":"7114:152:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7131:1:97","nodeType":"YulLiteral","src":"7131:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"7134:77:97","nodeType":"YulLiteral","src":"7134:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"7124:6:97","nodeType":"YulIdentifier","src":"7124:6:97"},"nativeSrc":"7124:88:97","nodeType":"YulFunctionCall","src":"7124:88:97"},"nativeSrc":"7124:88:97","nodeType":"YulExpressionStatement","src":"7124:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7228:1:97","nodeType":"YulLiteral","src":"7228:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"7231:4:97","nodeType":"YulLiteral","src":"7231:4:97","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"7221:6:97","nodeType":"YulIdentifier","src":"7221:6:97"},"nativeSrc":"7221:15:97","nodeType":"YulFunctionCall","src":"7221:15:97"},"nativeSrc":"7221:15:97","nodeType":"YulExpressionStatement","src":"7221:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7252:1:97","nodeType":"YulLiteral","src":"7252:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"7255:4:97","nodeType":"YulLiteral","src":"7255:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"7245:6:97","nodeType":"YulIdentifier","src":"7245:6:97"},"nativeSrc":"7245:15:97","nodeType":"YulFunctionCall","src":"7245:15:97"},"nativeSrc":"7245:15:97","nodeType":"YulExpressionStatement","src":"7245:15:97"}]},"name":"panic_error_0x32","nativeSrc":"7082:184:97","nodeType":"YulFunctionDefinition","src":"7082:184:97"},{"body":{"nativeSrc":"7318:149:97","nodeType":"YulBlock","src":"7318:149:97","statements":[{"body":{"nativeSrc":"7345:22:97","nodeType":"YulBlock","src":"7345:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"7347:16:97","nodeType":"YulIdentifier","src":"7347:16:97"},"nativeSrc":"7347:18:97","nodeType":"YulFunctionCall","src":"7347:18:97"},"nativeSrc":"7347:18:97","nodeType":"YulExpressionStatement","src":"7347:18:97"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"7338:5:97","nodeType":"YulIdentifier","src":"7338:5:97"}],"functionName":{"name":"iszero","nativeSrc":"7331:6:97","nodeType":"YulIdentifier","src":"7331:6:97"},"nativeSrc":"7331:13:97","nodeType":"YulFunctionCall","src":"7331:13:97"},"nativeSrc":"7328:39:97","nodeType":"YulIf","src":"7328:39:97"},{"nativeSrc":"7376:85:97","nodeType":"YulAssignment","src":"7376:85:97","value":{"arguments":[{"name":"value","nativeSrc":"7387:5:97","nodeType":"YulIdentifier","src":"7387:5:97"},{"kind":"number","nativeSrc":"7394:66:97","nodeType":"YulLiteral","src":"7394:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"add","nativeSrc":"7383:3:97","nodeType":"YulIdentifier","src":"7383:3:97"},"nativeSrc":"7383:78:97","nodeType":"YulFunctionCall","src":"7383:78:97"},"variableNames":[{"name":"ret","nativeSrc":"7376:3:97","nodeType":"YulIdentifier","src":"7376:3:97"}]}]},"name":"decrement_t_uint256","nativeSrc":"7271:196:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7300:5:97","nodeType":"YulTypedName","src":"7300:5:97","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"7310:3:97","nodeType":"YulTypedName","src":"7310:3:97","type":""}],"src":"7271:196:97"},{"body":{"nativeSrc":"7646:182:97","nodeType":"YulBlock","src":"7646:182:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7663:9:97","nodeType":"YulIdentifier","src":"7663:9:97"},{"kind":"number","nativeSrc":"7674:2:97","nodeType":"YulLiteral","src":"7674:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"7656:6:97","nodeType":"YulIdentifier","src":"7656:6:97"},"nativeSrc":"7656:21:97","nodeType":"YulFunctionCall","src":"7656:21:97"},"nativeSrc":"7656:21:97","nodeType":"YulExpressionStatement","src":"7656:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7697:9:97","nodeType":"YulIdentifier","src":"7697:9:97"},{"kind":"number","nativeSrc":"7708:2:97","nodeType":"YulLiteral","src":"7708:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7693:3:97","nodeType":"YulIdentifier","src":"7693:3:97"},"nativeSrc":"7693:18:97","nodeType":"YulFunctionCall","src":"7693:18:97"},{"kind":"number","nativeSrc":"7713:2:97","nodeType":"YulLiteral","src":"7713:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"7686:6:97","nodeType":"YulIdentifier","src":"7686:6:97"},"nativeSrc":"7686:30:97","nodeType":"YulFunctionCall","src":"7686:30:97"},"nativeSrc":"7686:30:97","nodeType":"YulExpressionStatement","src":"7686:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7736:9:97","nodeType":"YulIdentifier","src":"7736:9:97"},{"kind":"number","nativeSrc":"7747:2:97","nodeType":"YulLiteral","src":"7747:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7732:3:97","nodeType":"YulIdentifier","src":"7732:3:97"},"nativeSrc":"7732:18:97","nodeType":"YulFunctionCall","src":"7732:18:97"},{"hexValue":"537472696e67733a20686578206c656e67746820696e73756666696369656e74","kind":"string","nativeSrc":"7752:34:97","nodeType":"YulLiteral","src":"7752:34:97","type":"","value":"Strings: hex length insufficient"}],"functionName":{"name":"mstore","nativeSrc":"7725:6:97","nodeType":"YulIdentifier","src":"7725:6:97"},"nativeSrc":"7725:62:97","nodeType":"YulFunctionCall","src":"7725:62:97"},"nativeSrc":"7725:62:97","nodeType":"YulExpressionStatement","src":"7725:62:97"},{"nativeSrc":"7796:26:97","nodeType":"YulAssignment","src":"7796:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"7808:9:97","nodeType":"YulIdentifier","src":"7808:9:97"},{"kind":"number","nativeSrc":"7819:2:97","nodeType":"YulLiteral","src":"7819:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"7804:3:97","nodeType":"YulIdentifier","src":"7804:3:97"},"nativeSrc":"7804:18:97","nodeType":"YulFunctionCall","src":"7804:18:97"},"variableNames":[{"name":"tail","nativeSrc":"7796:4:97","nodeType":"YulIdentifier","src":"7796:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"7472:356:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7623:9:97","nodeType":"YulTypedName","src":"7623:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7637:4:97","nodeType":"YulTypedName","src":"7637:4:97","type":""}],"src":"7472:356:97"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_string_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_string_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n    }\n    function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_addresst_string_calldata_ptrt_address(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n        value3 := abi_decode_address(add(headStart, 64))\n    }\n    function abi_decode_tuple_t_addresst_addresst_string_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        let offset := calldataload(add(headStart, 64))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n    }\n    function abi_encode_tuple_packed_t_address_t_string_calldata_ptr__to_t_address_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value2, value1, value0) -> end\n    {\n        mstore(pos, and(shl(96, value0), 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000))\n        calldatacopy(add(pos, 20), value1, value2)\n        let _1 := add(add(pos, value2), 20)\n        mstore(_1, 0)\n        end := _1\n    }\n    function abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 47)\n        mstore(add(headStart, 64), \"AccessControl: can only renounce\")\n        mstore(add(headStart, 96), \" roles for self\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_address_t_address_t_string_calldata_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), 96)\n        mstore(add(headStart, 96), value3)\n        calldatacopy(add(headStart, 128), value2, value3)\n        mstore(add(add(headStart, value3), 128), 0)\n        tail := add(add(headStart, and(add(value3, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 128)\n    }\n    function copy_memory_to_memory_with_cleanup(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n    }\n    function abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        mstore(pos, \"AccessControl: account \")\n        let length := mload(value0)\n        copy_memory_to_memory_with_cleanup(add(value0, 0x20), add(pos, 23), length)\n        let _1 := add(pos, length)\n        mstore(add(_1, 23), \" is missing role \")\n        let length_1 := mload(value1)\n        copy_memory_to_memory_with_cleanup(add(value1, 0x20), add(_1, 40), length_1)\n        end := add(add(_1, length_1), 40)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        copy_memory_to_memory_with_cleanup(add(value0, 32), add(headStart, 64), length)\n        tail := add(add(headStart, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 64)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        product := mul(x, y)\n        if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum) { panic_error_0x11() }\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function decrement_t_uint256(value) -> ret\n    {\n        if iszero(value) { panic_error_0x11() }\n        ret := add(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n    }\n    function abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Strings: hex length insufficient\")\n        tail := add(headStart, 96)\n    }\n}","id":97,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100c95760003560e01c8063545f7a321161008157806391d148541161005b57806391d148541461019b578063a217fddf146101df578063d547741f146101e757600080fd5b8063545f7a3214610162578063584f6b601461017557806382bfd0f01461018857600080fd5b8063248a9ca3116100b2578063248a9ca3146101095780632f2ff15d1461013a57806336568abe1461014f57600080fd5b806301ffc9a7146100ce57806318c5e8ab146100f6575b600080fd5b6100e16100dc366004610a74565b6101fa565b60405190151581526020015b60405180910390f35b6100e1610104366004610b28565b610293565b61012c610117366004610b7b565b60009081526020819052604090206001015490565b6040519081526020016100ed565b61014d610148366004610b94565b610368565b005b61014d61015d366004610b94565b610392565b61014d610170366004610bc0565b61044a565b61014d610183366004610bc0565b6104c7565b6100e1610196366004610c25565b610535565b6100e16101a9366004610b94565b60009182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b61012c600081565b61014d6101f5366004610b94565b61059f565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061028d57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6000803384846040516020016102ab93929190610c86565b60408051601f198184030181529181528151602092830120600081815280845282812073ffffffffffffffffffffffffffffffffffffffff8a16825290935291205490915060ff1615610302576001915050610361565b6000848460405160200161031893929190610c86565b60408051808303601f190181529181528151602092830120600090815280835281812073ffffffffffffffffffffffffffffffffffffffff8916825290925290205460ff169150505b9392505050565b600082815260208190526040902060010154610383816105c4565b61038d83836105d1565b505050565b73ffffffffffffffffffffffffffffffffffffffff8116331461043c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b61044682826106c1565b5050565b600084848460405160200161046193929190610c86565b604051602081830303815290604052805190602001209050610483818361059f565b7f55426a61e90ac7d7d1fc886b67b420ade8c8b535e68d655394bc271e3a12b8e2828686866040516104b89493929190610cc5565b60405180910390a15050505050565b60008484846040516020016104de93929190610c86565b6040516020818303038152906040528051906020012090506105008183610368565b7f69c5ce2d658fea352a2464f87ffbe1f09746c918a91da0994044c3767d641b3f828686866040516104b89493929190610cc5565b60008084848460405160200161054d93929190610c86565b60408051601f198184030181529181528151602092830120600081815280845282812073ffffffffffffffffffffffffffffffffffffffff8b16825290935291205490915060ff169695505050505050565b6000828152602081905260409020600101546105ba816105c4565b61038d83836106c1565b6105ce8133610778565b50565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff166104465760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff85168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556106633390565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16156104465760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610446576107b681610812565b6107c1836020610831565b6040516020016107d2929190610d43565b60408051601f19818403018152908290527f08c379a000000000000000000000000000000000000000000000000000000000825261043391600401610dc4565b606061028d73ffffffffffffffffffffffffffffffffffffffff831660145b60606000610840836002610e26565b61084b906002610e3d565b67ffffffffffffffff81111561086357610863610e50565b6040519080825280601f01601f19166020018201604052801561088d576020820181803683370190505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106108c4576108c4610e7f565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061092757610927610e7f565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000610963846002610e26565b61096e906001610e3d565b90505b6001811115610a0b577f303132333435363738396162636465660000000000000000000000000000000085600f16601081106109af576109af610e7f565b1a60f81b8282815181106109c5576109c5610e7f565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c93610a0481610eae565b9050610971565b508315610361576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610433565b600060208284031215610a8657600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461036157600080fd5b803573ffffffffffffffffffffffffffffffffffffffff81168114610ada57600080fd5b919050565b60008083601f840112610af157600080fd5b50813567ffffffffffffffff811115610b0957600080fd5b602083019150836020828501011115610b2157600080fd5b9250929050565b600080600060408486031215610b3d57600080fd5b610b4684610ab6565b9250602084013567ffffffffffffffff811115610b6257600080fd5b610b6e86828701610adf565b9497909650939450505050565b600060208284031215610b8d57600080fd5b5035919050565b60008060408385031215610ba757600080fd5b82359150610bb760208401610ab6565b90509250929050565b60008060008060608587031215610bd657600080fd5b610bdf85610ab6565b9350602085013567ffffffffffffffff811115610bfb57600080fd5b610c0787828801610adf565b9094509250610c1a905060408601610ab6565b905092959194509250565b60008060008060608587031215610c3b57600080fd5b610c4485610ab6565b9350610c5260208601610ab6565b9250604085013567ffffffffffffffff811115610c6e57600080fd5b610c7a87828801610adf565b95989497509550505050565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008460601b168152818360148301376000910160140190815292915050565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525060606040830152826060830152828460808401376000608084840101526080601f19601f850116830101905095945050505050565b60005b83811015610d3a578181015183820152602001610d22565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351610d7b816017850160208801610d1f565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351610db8816028840160208801610d1f565b01602801949350505050565b6020815260008251806020840152610de3816040850160208701610d1f565b601f01601f19169190910160400192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808202811582820484141761028d5761028d610df7565b8082018082111561028d5761028d610df7565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081610ebd57610ebd610df7565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019056fea2646970667358221220d40d5608d5608f2ebc5235597cf9a09948480e2e82090b11870b99962eaf9ac864736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xC9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x545F7A32 GT PUSH2 0x81 JUMPI DUP1 PUSH4 0x91D14854 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x19B JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x1DF JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x1E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x545F7A32 EQ PUSH2 0x162 JUMPI DUP1 PUSH4 0x584F6B60 EQ PUSH2 0x175 JUMPI DUP1 PUSH4 0x82BFD0F0 EQ PUSH2 0x188 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x248A9CA3 GT PUSH2 0xB2 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x109 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x13A JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x14F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xCE JUMPI DUP1 PUSH4 0x18C5E8AB EQ PUSH2 0xF6 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE1 PUSH2 0xDC CALLDATASIZE PUSH1 0x4 PUSH2 0xA74 JUMP JUMPDEST PUSH2 0x1FA JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE1 PUSH2 0x104 CALLDATASIZE PUSH1 0x4 PUSH2 0xB28 JUMP JUMPDEST PUSH2 0x293 JUMP JUMPDEST PUSH2 0x12C PUSH2 0x117 CALLDATASIZE PUSH1 0x4 PUSH2 0xB7B JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xED JUMP JUMPDEST PUSH2 0x14D PUSH2 0x148 CALLDATASIZE PUSH1 0x4 PUSH2 0xB94 JUMP JUMPDEST PUSH2 0x368 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x14D PUSH2 0x15D CALLDATASIZE PUSH1 0x4 PUSH2 0xB94 JUMP JUMPDEST PUSH2 0x392 JUMP JUMPDEST PUSH2 0x14D PUSH2 0x170 CALLDATASIZE PUSH1 0x4 PUSH2 0xBC0 JUMP JUMPDEST PUSH2 0x44A JUMP JUMPDEST PUSH2 0x14D PUSH2 0x183 CALLDATASIZE PUSH1 0x4 PUSH2 0xBC0 JUMP JUMPDEST PUSH2 0x4C7 JUMP JUMPDEST PUSH2 0xE1 PUSH2 0x196 CALLDATASIZE PUSH1 0x4 PUSH2 0xC25 JUMP JUMPDEST PUSH2 0x535 JUMP JUMPDEST PUSH2 0xE1 PUSH2 0x1A9 CALLDATASIZE PUSH1 0x4 PUSH2 0xB94 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x12C PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH2 0x14D PUSH2 0x1F5 CALLDATASIZE PUSH1 0x4 PUSH2 0xB94 JUMP JUMPDEST PUSH2 0x59F JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0x28D JUMPI POP PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2AB SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xC86 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE DUP1 DUP5 MSTORE DUP3 DUP2 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP11 AND DUP3 MSTORE SWAP1 SWAP4 MSTORE SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND ISZERO PUSH2 0x302 JUMPI PUSH1 0x1 SWAP2 POP POP PUSH2 0x361 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x318 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xC86 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB PUSH1 0x1F NOT ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x0 SWAP1 DUP2 MSTORE DUP1 DUP4 MSTORE DUP2 DUP2 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP10 AND DUP3 MSTORE SWAP1 SWAP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x383 DUP2 PUSH2 0x5C4 JUMP JUMPDEST PUSH2 0x38D DUP4 DUP4 PUSH2 0x5D1 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND CALLER EQ PUSH2 0x43C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x20726F6C657320666F722073656C660000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x446 DUP3 DUP3 PUSH2 0x6C1 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x461 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xC86 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH2 0x483 DUP2 DUP4 PUSH2 0x59F JUMP JUMPDEST PUSH32 0x55426A61E90AC7D7D1FC886B67B420ADE8C8B535E68D655394BC271E3A12B8E2 DUP3 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x4B8 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xCC5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x4DE SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xC86 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH2 0x500 DUP2 DUP4 PUSH2 0x368 JUMP JUMPDEST PUSH32 0x69C5CE2D658FEA352A2464F87FFBE1F09746C918A91DA0994044C3767D641B3F DUP3 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x4B8 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xCC5 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x54D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xC86 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE DUP1 DUP5 MSTORE DUP3 DUP2 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP12 AND DUP3 MSTORE SWAP1 SWAP4 MSTORE SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x5BA DUP2 PUSH2 0x5C4 JUMP JUMPDEST PUSH2 0x38D DUP4 DUP4 PUSH2 0x6C1 JUMP JUMPDEST PUSH2 0x5CE DUP2 CALLER PUSH2 0x778 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x446 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0x663 CALLER SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x446 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x446 JUMPI PUSH2 0x7B6 DUP2 PUSH2 0x812 JUMP JUMPDEST PUSH2 0x7C1 DUP4 PUSH1 0x20 PUSH2 0x831 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x7D2 SWAP3 SWAP2 SWAP1 PUSH2 0xD43 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP3 MSTORE PUSH2 0x433 SWAP2 PUSH1 0x4 ADD PUSH2 0xDC4 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x28D PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x14 JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x840 DUP4 PUSH1 0x2 PUSH2 0xE26 JUMP JUMPDEST PUSH2 0x84B SWAP1 PUSH1 0x2 PUSH2 0xE3D JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x863 JUMPI PUSH2 0x863 PUSH2 0xE50 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x88D JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH32 0x3000000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x8C4 JUMPI PUSH2 0x8C4 PUSH2 0xE7F JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH32 0x7800000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x927 JUMPI PUSH2 0x927 PUSH2 0xE7F JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH2 0x963 DUP5 PUSH1 0x2 PUSH2 0xE26 JUMP JUMPDEST PUSH2 0x96E SWAP1 PUSH1 0x1 PUSH2 0xE3D JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0xA0B JUMPI PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x9AF JUMPI PUSH2 0x9AF PUSH2 0xE7F JUMP JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x9C5 JUMPI PUSH2 0x9C5 PUSH2 0xE7F JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH2 0xA04 DUP2 PUSH2 0xEAE JUMP JUMPDEST SWAP1 POP PUSH2 0x971 JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x361 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x433 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA86 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND DUP2 EQ PUSH2 0x361 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0xADA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xAF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xB09 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0xB21 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xB3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB46 DUP5 PUSH2 0xAB6 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xB62 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6E DUP7 DUP3 DUP8 ADD PUSH2 0xADF JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB8D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xBA7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0xBB7 PUSH1 0x20 DUP5 ADD PUSH2 0xAB6 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xBD6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xBDF DUP6 PUSH2 0xAB6 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xBFB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC07 DUP8 DUP3 DUP9 ADD PUSH2 0xADF JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH2 0xC1A SWAP1 POP PUSH1 0x40 DUP7 ADD PUSH2 0xAB6 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xC3B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC44 DUP6 PUSH2 0xAB6 JUMP JUMPDEST SWAP4 POP PUSH2 0xC52 PUSH1 0x20 DUP7 ADD PUSH2 0xAB6 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xC6E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC7A DUP8 DUP3 DUP9 ADD PUSH2 0xADF JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 DUP5 PUSH1 0x60 SHL AND DUP2 MSTORE DUP2 DUP4 PUSH1 0x14 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 ADD PUSH1 0x14 ADD SWAP1 DUP2 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP8 AND DUP4 MSTORE DUP1 DUP7 AND PUSH1 0x20 DUP5 ADD MSTORE POP PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE DUP3 PUSH1 0x60 DUP4 ADD MSTORE DUP3 DUP5 PUSH1 0x80 DUP5 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x80 DUP5 DUP5 ADD ADD MSTORE PUSH1 0x80 PUSH1 0x1F NOT PUSH1 0x1F DUP6 ADD AND DUP4 ADD ADD SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xD3A JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xD22 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH32 0x416363657373436F6E74726F6C3A206163636F756E7420000000000000000000 DUP2 MSTORE PUSH1 0x0 DUP4 MLOAD PUSH2 0xD7B DUP2 PUSH1 0x17 DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0xD1F JUMP JUMPDEST PUSH32 0x206973206D697373696E6720726F6C6520000000000000000000000000000000 PUSH1 0x17 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0xDB8 DUP2 PUSH1 0x28 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0xD1F JUMP JUMPDEST ADD PUSH1 0x28 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0xDE3 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0xD1F JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x28D JUMPI PUSH2 0x28D PUSH2 0xDF7 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x28D JUMPI PUSH2 0x28D PUSH2 0xDF7 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xEBD JUMPI PUSH2 0xEBD PUSH2 0xDF7 JUMP JUMPDEST POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD4 0xD JUMP ADDMOD 0xD5 PUSH1 0x8F 0x2E 0xBC MSTORE CALLDATALOAD MSIZE PUSH29 0xF9A09948480E2E82090B11870B99962EAF9AC864736F6C634300081900 CALLER ","sourceMap":"2815:4310:56:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2732:202:30;;;;;;:::i;:::-;;:::i;:::-;;;516:14:97;;509:22;491:41;;479:2;464:18;2732:202:30;;;;;;;;5898:389:56;;;;;;:::i;:::-;;:::i;4504:129:30:-;;;;;;:::i;:::-;4578:7;4604:12;;;;;;;;;;:22;;;;4504:129;;;;1918:25:97;;;1906:2;1891:18;4504:129:30;1772:177:97;4929:145:30;;;;;;:::i;:::-;;:::i;:::-;;6038:214;;;;;;:::i;:::-;;:::i;5061:357:56:-;;;;;;:::i;:::-;;:::i;4278:324::-;;;;;;:::i;:::-;;:::i;6844:279::-;;;;;;:::i;:::-;;:::i;3021:145:30:-;;;;;;:::i;:::-;3107:4;3130:12;;;;;;;;;;;:29;;;;;;;;;;;;;;;;3021:145;2153:49;;2198:4;2153:49;;5354:147;;;;;;:::i;:::-;;:::i;2732:202::-;2817:4;2840:47;;;2855:32;2840:47;;:87;;-1:-1:-1;952:25:41;937:40;;;;2891:36:30;2833:94;2732:202;-1:-1:-1;;2732:202:30:o;5898:389:56:-;5990:4;6006:12;6048:10;6060:11;;6031:41;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;6031:41:56;;;;;;;;;6021:52;;6031:41;6021:52;;;;3107:4:30;3130:12;;;;;;;;;:29;;;;;;;;;;;6021:52:56;;-1:-1:-1;3130:29:30;;6084:197:56;;;6133:4;6126:11;;;;;6084:197;6210:1;6214:11;;6185:41;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;6185:41:56;;;;;;6175:52;;6185:41;6175:52;;;;3107:4:30;3130:12;;;;;;;;;:29;;;;;;;;;;;;;;-1:-1:-1;;5898:389:56;;;;;;:::o;4929:145:30:-;4578:7;4604:12;;;;;;;;;;:22;;;2631:16;2642:4;2631:10;:16::i;:::-;5042:25:::1;5053:4;5059:7;5042:10;:25::i;:::-;4929:145:::0;;;:::o;6038:214::-;6133:23;;;734:10:39;6133:23:30;6125:83;;;;;;;3977:2:97;6125:83:30;;;3959:21:97;4016:2;3996:18;;;3989:30;4055:34;4035:18;;;4028:62;4126:17;4106:18;;;4099:45;4161:19;;6125:83:30;;;;;;;;;6219:26;6231:4;6237:7;6219:11;:26::i;:::-;6038:214;;:::o;5061:357:56:-;5217:12;5259:15;5276:11;;5242:46;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5232:57;;;;;;5217:72;;5299:33;5310:4;5316:15;5299:10;:33::i;:::-;5347:64;5365:15;5382;5399:11;;5347:64;;;;;;;;;:::i;:::-;;;;;;;;5207:211;5061:357;;;;:::o;4278:324::-;4402:12;4444:15;4461:11;;4427:46;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4417:57;;;;;;4402:72;;4484:32;4494:4;4500:15;4484:9;:32::i;:::-;4531:64;4549:15;4566;4583:11;;4531:64;;;;;;;;;:::i;6844:279::-;6989:4;7005:12;7047:15;7064:11;;7030:46;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;7030:46:56;;;;;;;;;7020:57;;7030:46;7020:57;;;;3107:4:30;3130:12;;;;;;;;;:29;;;;;;;;;;;7020:57:56;;-1:-1:-1;3130:29:30;;7087::56;6844:279;-1:-1:-1;;;;;;6844:279:56:o;5354:147:30:-;4578:7;4604:12;;;;;;;;;;:22;;;2631:16;2642:4;2631:10;:16::i;:::-;5468:26:::1;5480:4;5486:7;5468:11;:26::i;3460:103::-:0;3526:30;3537:4;734:10:39;3526::30;:30::i;:::-;3460:103;:::o;7587:233::-;3107:4;3130:12;;;;;;;;;;;:29;;;;;;;;;;;;;7665:149;;7708:6;:12;;;;;;;;;;;:29;;;;;;;;;;:36;;;;7740:4;7708:36;;;7790:12;734:10:39;;655:96;7790:12:30;7763:40;;7781:7;7763:40;;7775:4;7763:40;;;;;;;;;;7587:233;;:::o;7991:234::-;3107:4;3130:12;;;;;;;;;;;:29;;;;;;;;;;;;;8070:149;;;8144:5;8112:12;;;;;;;;;;;:29;;;;;;;;;;;:37;;;;;;8168:40;734:10:39;;8112:12:30;;8168:40;;8144:5;8168:40;7991:234;;:::o;3844:479::-;3107:4;3130:12;;;;;;;;;;;:29;;;;;;;;;;;;;3927:390;;4115:28;4135:7;4115:19;:28::i;:::-;4214:38;4242:4;4249:2;4214:19;:38::i;:::-;4022:252;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;4022:252:30;;;;;;;;;;3970:336;;;;;;;;:::i;2407:149:40:-;2465:13;2497:52;2509:22;;;343:2;1818:437;1893:13;1918:19;1950:10;1954:6;1950:1;:10;:::i;:::-;:14;;1963:1;1950:14;:::i;:::-;1940:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1940:25:40;;1918:47;;1975:15;:6;1982:1;1975:9;;;;;;;;:::i;:::-;;;;:15;;;;;;;;;;;2000;:6;2007:1;2000:9;;;;;;;;:::i;:::-;;;;:15;;;;;;;;;;-1:-1:-1;2030:9:40;2042:10;2046:6;2042:1;:10;:::i;:::-;:14;;2055:1;2042:14;:::i;:::-;2030:26;;2025:128;2062:1;2058;:5;2025:128;;;2096:8;2105:5;2113:3;2105:11;2096:21;;;;;;;:::i;:::-;;;;2084:6;2091:1;2084:9;;;;;;;;:::i;:::-;;;;:33;;;;;;;;;;-1:-1:-1;2141:1:40;2131:11;;;;;2065:3;;;:::i;:::-;;;2025:128;;;-1:-1:-1;2170:10:40;;2162:55;;;;;;;7674:2:97;2162:55:40;;;7656:21:97;;;7693:18;;;7686:30;7752:34;7732:18;;;7725:62;7804:18;;2162:55:40;7472:356:97;14:332;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;543:196;611:20;;671:42;660:54;;650:65;;640:93;;729:1;726;719:12;640:93;543:196;;;:::o;744:348::-;796:8;806:6;860:3;853:4;845:6;841:17;837:27;827:55;;878:1;875;868:12;827:55;-1:-1:-1;901:20:97;;944:18;933:30;;930:50;;;976:1;973;966:12;930:50;1013:4;1005:6;1001:17;989:29;;1065:3;1058:4;1049:6;1041;1037:19;1033:30;1030:39;1027:59;;;1082:1;1079;1072:12;1027:59;744:348;;;;;:::o;1097:485::-;1177:6;1185;1193;1246:2;1234:9;1225:7;1221:23;1217:32;1214:52;;;1262:1;1259;1252:12;1214:52;1285:29;1304:9;1285:29;:::i;:::-;1275:39;;1365:2;1354:9;1350:18;1337:32;1392:18;1384:6;1381:30;1378:50;;;1424:1;1421;1414:12;1378:50;1463:59;1514:7;1505:6;1494:9;1490:22;1463:59;:::i;:::-;1097:485;;1541:8;;-1:-1:-1;1437:85:97;;-1:-1:-1;;;;1097:485:97:o;1587:180::-;1646:6;1699:2;1687:9;1678:7;1674:23;1670:32;1667:52;;;1715:1;1712;1705:12;1667:52;-1:-1:-1;1738:23:97;;1587:180;-1:-1:-1;1587:180:97:o;1954:254::-;2022:6;2030;2083:2;2071:9;2062:7;2058:23;2054:32;2051:52;;;2099:1;2096;2089:12;2051:52;2135:9;2122:23;2112:33;;2164:38;2198:2;2187:9;2183:18;2164:38;:::i;:::-;2154:48;;1954:254;;;;;:::o;2213:559::-;2302:6;2310;2318;2326;2379:2;2367:9;2358:7;2354:23;2350:32;2347:52;;;2395:1;2392;2385:12;2347:52;2418:29;2437:9;2418:29;:::i;:::-;2408:39;;2498:2;2487:9;2483:18;2470:32;2525:18;2517:6;2514:30;2511:50;;;2557:1;2554;2547:12;2511:50;2596:59;2647:7;2638:6;2627:9;2623:22;2596:59;:::i;:::-;2674:8;;-1:-1:-1;2570:85:97;-1:-1:-1;2728:38:97;;-1:-1:-1;2762:2:97;2747:18;;2728:38;:::i;:::-;2718:48;;2213:559;;;;;;;:::o;2777:::-;2866:6;2874;2882;2890;2943:2;2931:9;2922:7;2918:23;2914:32;2911:52;;;2959:1;2956;2949:12;2911:52;2982:29;3001:9;2982:29;:::i;:::-;2972:39;;3030:38;3064:2;3053:9;3049:18;3030:38;:::i;:::-;3020:48;;3119:2;3108:9;3104:18;3091:32;3146:18;3138:6;3135:30;3132:50;;;3178:1;3175;3168:12;3132:50;3217:59;3268:7;3259:6;3248:9;3244:22;3217:59;:::i;:::-;2777:559;;;;-1:-1:-1;3295:8:97;-1:-1:-1;;;;2777:559:97:o;3341:429::-;3561:66;3552:6;3548:2;3544:15;3540:88;3535:3;3528:101;3673:6;3665;3660:2;3655:3;3651:12;3638:42;3510:3;3703:16;;3721:2;3699:25;3733:13;;;3699:25;3341:429;-1:-1:-1;;3341:429:97:o;4191:673::-;4369:4;4398:42;4479:2;4471:6;4467:15;4456:9;4449:34;4531:2;4523:6;4519:15;4514:2;4503:9;4499:18;4492:43;;4571:2;4566;4555:9;4551:18;4544:30;4610:6;4605:2;4594:9;4590:18;4583:34;4668:6;4660;4654:3;4643:9;4639:19;4626:49;4725:1;4719:3;4710:6;4699:9;4695:22;4691:32;4684:43;4854:3;-1:-1:-1;;4779:2:97;4771:6;4767:15;4763:88;4752:9;4748:104;4744:114;4736:122;;4191:673;;;;;;;:::o;4869:250::-;4954:1;4964:113;4978:6;4975:1;4972:13;4964:113;;;5054:11;;;5048:18;5035:11;;;5028:39;5000:2;4993:10;4964:113;;;-1:-1:-1;;5111:1:97;5093:16;;5086:27;4869:250::o;5124:812::-;5535:25;5530:3;5523:38;5505:3;5590:6;5584:13;5606:75;5674:6;5669:2;5664:3;5660:12;5653:4;5645:6;5641:17;5606:75;:::i;:::-;5745:19;5740:2;5700:16;;;5732:11;;;5725:40;5790:13;;5812:76;5790:13;5874:2;5866:11;;5859:4;5847:17;;5812:76;:::i;:::-;5908:17;5927:2;5904:26;;5124:812;-1:-1:-1;;;;5124:812:97:o;5941:455::-;6090:2;6079:9;6072:21;6053:4;6122:6;6116:13;6165:6;6160:2;6149:9;6145:18;6138:34;6181:79;6253:6;6248:2;6237:9;6233:18;6228:2;6220:6;6216:15;6181:79;:::i;:::-;6312:2;6300:15;-1:-1:-1;;6296:88:97;6281:104;;;;6387:2;6277:113;;5941:455;-1:-1:-1;;5941:455:97:o;6401:184::-;6453:77;6450:1;6443:88;6550:4;6547:1;6540:15;6574:4;6571:1;6564:15;6590:168;6663:9;;;6694;;6711:15;;;6705:22;;6691:37;6681:71;;6732:18;;:::i;6763:125::-;6828:9;;;6849:10;;;6846:36;;;6862:18;;:::i;6893:184::-;6945:77;6942:1;6935:88;7042:4;7039:1;7032:15;7066:4;7063:1;7056:15;7082:184;7134:77;7131:1;7124:88;7231:4;7228:1;7221:15;7255:4;7252:1;7245:15;7271:196;7310:3;7338:5;7328:39;;7347:18;;:::i;:::-;-1:-1:-1;7394:66:97;7383:78;;7271:196::o"},"gasEstimates":{"creation":{"codeDepositCost":"773000","executionCost":"29497","totalCost":"802497"},"external":{"DEFAULT_ADMIN_ROLE()":"239","getRoleAdmin(bytes32)":"2470","giveCallPermission(address,string,address)":"infinite","grantRole(bytes32,address)":"infinite","hasPermission(address,address,string)":"infinite","hasRole(bytes32,address)":"2637","isAllowedToCall(address,string)":"infinite","renounceRole(bytes32,address)":"28972","revokeCallPermission(address,string,address)":"infinite","revokeRole(bytes32,address)":"infinite","supportsInterface(bytes4)":"393"}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","getRoleAdmin(bytes32)":"248a9ca3","giveCallPermission(address,string,address)":"584f6b60","grantRole(bytes32,address)":"2f2ff15d","hasPermission(address,address,string)":"82bfd0f0","hasRole(bytes32,address)":"91d14854","isAllowedToCall(address,string)":"18c5e8ab","renounceRole(bytes32,address)":"36568abe","revokeCallPermission(address,string,address)":"545f7a32","revokeRole(bytes32,address)":"d547741f","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"functionSig\",\"type\":\"string\"}],\"name\":\"PermissionGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"functionSig\",\"type\":\"string\"}],\"name\":\"PermissionRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"functionSig\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"accountToPermit\",\"type\":\"address\"}],\"name\":\"giveCallPermission\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"functionSig\",\"type\":\"string\"}],\"name\":\"hasPermission\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"functionSig\",\"type\":\"string\"}],\"name\":\"isAllowedToCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"functionSig\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"accountToRevoke\",\"type\":\"address\"}],\"name\":\"revokeCallPermission\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"details\":\"This contract is a wrapper of OpenZeppelin AccessControl extending it in a way to standartize access control within Venus Smart Contract Ecosystem.\",\"events\":{\"PermissionGranted(address,address,string)\":{\"details\":\"If contract address is 0x000..0 this means that the account is a default admin of this function and can call any contract function with this signature\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"giveCallPermission(address,string,address)\":{\"custom:event\":\"Emits a {RoleGranted} and {PermissionGranted} events.\",\"details\":\"this function can be called only from Role Admin or DEFAULT_ADMIN_ROLEif contractAddress is zero address, the account can access the specified function      on **any** contract managed by this ACL\",\"params\":{\"accountToPermit\":\"account that will be given access to the contract function\",\"contractAddress\":\"address of contract for which call permissions will be granted\",\"functionSig\":\"signature e.g. \\\"functionName(uint256,bool)\\\"\"}},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasPermission(address,address,string)\":{\"details\":\"This function is used as a view function to check permissions rather than contract hook for access restriction check.\",\"params\":{\"account\":\"for which call permissions will be checked against\",\"contractAddress\":\"address of the restricted contract\",\"functionSig\":\"signature of the restricted function e.g. \\\"functionName(uint256,bool)\\\"\"},\"returns\":{\"_0\":\"false if the user account cannot call the particular contract function\"}},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"isAllowedToCall(address,string)\":{\"details\":\"Since restricted contracts using this function as a permission hook, we can get contracts address with msg.sender\",\"params\":{\"account\":\"for which call permissions will be checked\",\"functionSig\":\"restricted function signature e.g. \\\"functionName(uint256,bool)\\\"\"},\"returns\":{\"_0\":\"false if the user account cannot call the particular contract function\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"revokeCallPermission(address,string,address)\":{\"custom:event\":\"Emits {RoleRevoked} and {PermissionRevoked} events.\",\"details\":\"this function can be called only from Role Admin or DEFAULT_ADMIN_ROLE \\t\\tMay emit a {RoleRevoked} event.\",\"params\":{\"contractAddress\":\"address of contract for which call permissions will be revoked\",\"functionSig\":\"signature e.g. \\\"functionName(uint256,bool)\\\"\"}},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"title\":\"AccessControlManager\",\"version\":1},\"userdoc\":{\"events\":{\"PermissionGranted(address,address,string)\":{\"notice\":\"Emitted when an account is given a permission to a certain contract function\"},\"PermissionRevoked(address,address,string)\":{\"notice\":\"Emitted when an account is revoked a permission to a certain contract function\"}},\"kind\":\"user\",\"methods\":{\"giveCallPermission(address,string,address)\":{\"notice\":\"Gives a function call permission to one single account\"},\"hasPermission(address,address,string)\":{\"notice\":\"Verifies if the given account can call a contract's guarded function\"},\"isAllowedToCall(address,string)\":{\"notice\":\"Verifies if the given account can call a contract's guarded function\"},\"revokeCallPermission(address,string,address)\":{\"notice\":\"Revokes an account's permission to a particular function call\"}},\"notice\":\"Access control plays a crucial role in the Venus governance model. It is used to restrict functions so that they can only be called from one account or list of accounts (EOA or Contract Accounts). The implementation of `AccessControlManager`(https://github.com/VenusProtocol/governance-contracts/blob/main/contracts/Governance/AccessControlManager.sol) inherits the [Open Zeppelin AccessControl](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/AccessControl.sol) contract as a base for role management logic. There are two role types: admin and granular permissions.  ## Granular Roles  Granular roles are built by hashing the contract address and its function signature. For example, given contract `Foo` with function `Foo.bar()` which is guarded by ACM, calling `giveRolePermission` for account B do the following:  1. Compute `keccak256(contractFooAddress,functionSignatureBar)` 1. Add the computed role to the roles of account B 1. Account B now can call `ContractFoo.bar()`  ## Admin Roles  Admin roles allow for an address to call a function signature on any contract guarded by the `AccessControlManager`. This is particularly useful for contracts created by factories.  For Admin roles a null address is hashed in place of the contract address (`keccak256(0x0000000000000000000000000000000000000000,functionSignatureBar)`.  In the previous example, giving account B the admin role, account B will have permissions to call the `bar()` function on any contract that is guarded by ACM, not only contract A.  ## Protocol Integration  All restricted functions in Venus Protocol use a hook to ACM in order to check if the caller has the right permission to call the guarded function. `AccessControlledV5` and `AccessControlledV8` abstract contract makes this integration easier. They call ACM's external method `isAllowedToCall(address caller, string functionSig)`. Here is an example of how `setCollateralFactor` function in `Comptroller` is integrated with ACM: ``` contract Comptroller is [...] AccessControlledV8 { [...] function setCollateralFactor(VToken vToken, uint256 newCollateralFactorMantissa, uint256 newLiquidationThresholdMantissa) external { _checkAccessAllowed(\\\"setCollateralFactor(address,uint256,uint256)\\\"); [...] } } ```\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Governance/AccessControlManager.sol\":\"AccessControlManager\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/AccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IAccessControl.sol\\\";\\nimport \\\"../utils/Context.sol\\\";\\nimport \\\"../utils/Strings.sol\\\";\\nimport \\\"../utils/introspection/ERC165.sol\\\";\\n\\n/**\\n * @dev Contract module that allows children to implement role-based access\\n * control mechanisms. This is a lightweight version that doesn't allow enumerating role\\n * members except through off-chain means by accessing the contract event logs. Some\\n * applications may benefit from on-chain enumerability, for those cases see\\n * {AccessControlEnumerable}.\\n *\\n * Roles are referred to by their `bytes32` identifier. These should be exposed\\n * in the external API and be unique. The best way to achieve this is by\\n * using `public constant` hash digests:\\n *\\n * ```solidity\\n * bytes32 public constant MY_ROLE = keccak256(\\\"MY_ROLE\\\");\\n * ```\\n *\\n * Roles can be used to represent a set of permissions. To restrict access to a\\n * function call, use {hasRole}:\\n *\\n * ```solidity\\n * function foo() public {\\n *     require(hasRole(MY_ROLE, msg.sender));\\n *     ...\\n * }\\n * ```\\n *\\n * Roles can be granted and revoked dynamically via the {grantRole} and\\n * {revokeRole} functions. Each role has an associated admin role, and only\\n * accounts that have a role's admin role can call {grantRole} and {revokeRole}.\\n *\\n * By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\\n * that only accounts with this role will be able to grant or revoke other\\n * roles. More complex role relationships can be created by using\\n * {_setRoleAdmin}.\\n *\\n * WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\\n * grant and revoke this role. Extra precautions should be taken to secure\\n * accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules}\\n * to enforce additional security measures for this role.\\n */\\nabstract contract AccessControl is Context, IAccessControl, ERC165 {\\n    struct RoleData {\\n        mapping(address => bool) members;\\n        bytes32 adminRole;\\n    }\\n\\n    mapping(bytes32 => RoleData) private _roles;\\n\\n    bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00;\\n\\n    /**\\n     * @dev Modifier that checks that an account has a specific role. Reverts\\n     * with a standardized message including the required role.\\n     *\\n     * The format of the revert reason is given by the following regular expression:\\n     *\\n     *  /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\\n     *\\n     * _Available since v4.1._\\n     */\\n    modifier onlyRole(bytes32 role) {\\n        _checkRole(role);\\n        _;\\n    }\\n\\n    /**\\n     * @dev See {IERC165-supportsInterface}.\\n     */\\n    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\n        return interfaceId == type(IAccessControl).interfaceId || super.supportsInterface(interfaceId);\\n    }\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) public view virtual override returns (bool) {\\n        return _roles[role].members[account];\\n    }\\n\\n    /**\\n     * @dev Revert with a standard message if `_msgSender()` is missing `role`.\\n     * Overriding this function changes the behavior of the {onlyRole} modifier.\\n     *\\n     * Format of the revert message is described in {_checkRole}.\\n     *\\n     * _Available since v4.6._\\n     */\\n    function _checkRole(bytes32 role) internal view virtual {\\n        _checkRole(role, _msgSender());\\n    }\\n\\n    /**\\n     * @dev Revert with a standard message if `account` is missing `role`.\\n     *\\n     * The format of the revert reason is given by the following regular expression:\\n     *\\n     *  /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\\n     */\\n    function _checkRole(bytes32 role, address account) internal view virtual {\\n        if (!hasRole(role, account)) {\\n            revert(\\n                string(\\n                    abi.encodePacked(\\n                        \\\"AccessControl: account \\\",\\n                        Strings.toHexString(account),\\n                        \\\" is missing role \\\",\\n                        Strings.toHexString(uint256(role), 32)\\n                    )\\n                )\\n            );\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) public view virtual override returns (bytes32) {\\n        return _roles[role].adminRole;\\n    }\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     *\\n     * May emit a {RoleGranted} event.\\n     */\\n    function grantRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {\\n        _grantRole(role, account);\\n    }\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     *\\n     * May emit a {RoleRevoked} event.\\n     */\\n    function revokeRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {\\n        _revokeRole(role, account);\\n    }\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been revoked `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     *\\n     * May emit a {RoleRevoked} event.\\n     */\\n    function renounceRole(bytes32 role, address account) public virtual override {\\n        require(account == _msgSender(), \\\"AccessControl: can only renounce roles for self\\\");\\n\\n        _revokeRole(role, account);\\n    }\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event. Note that unlike {grantRole}, this function doesn't perform any\\n     * checks on the calling account.\\n     *\\n     * May emit a {RoleGranted} event.\\n     *\\n     * [WARNING]\\n     * ====\\n     * This function should only be called from the constructor when setting\\n     * up the initial roles for the system.\\n     *\\n     * Using this function in any other way is effectively circumventing the admin\\n     * system imposed by {AccessControl}.\\n     * ====\\n     *\\n     * NOTE: This function is deprecated in favor of {_grantRole}.\\n     */\\n    function _setupRole(bytes32 role, address account) internal virtual {\\n        _grantRole(role, account);\\n    }\\n\\n    /**\\n     * @dev Sets `adminRole` as ``role``'s admin role.\\n     *\\n     * Emits a {RoleAdminChanged} event.\\n     */\\n    function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {\\n        bytes32 previousAdminRole = getRoleAdmin(role);\\n        _roles[role].adminRole = adminRole;\\n        emit RoleAdminChanged(role, previousAdminRole, adminRole);\\n    }\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * Internal function without access restriction.\\n     *\\n     * May emit a {RoleGranted} event.\\n     */\\n    function _grantRole(bytes32 role, address account) internal virtual {\\n        if (!hasRole(role, account)) {\\n            _roles[role].members[account] = true;\\n            emit RoleGranted(role, account, _msgSender());\\n        }\\n    }\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * Internal function without access restriction.\\n     *\\n     * May emit a {RoleRevoked} event.\\n     */\\n    function _revokeRole(bytes32 role, address account) internal virtual {\\n        if (hasRole(role, account)) {\\n            _roles[role].members[account] = false;\\n            emit RoleRevoked(role, account, _msgSender());\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n\\n    function _contextSuffixLength() internal view virtual returns (uint256) {\\n        return 0;\\n    }\\n}\\n\",\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Strings.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Strings.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./math/Math.sol\\\";\\nimport \\\"./math/SignedMath.sol\\\";\\n\\n/**\\n * @dev String operations.\\n */\\nlibrary Strings {\\n    bytes16 private constant _SYMBOLS = \\\"0123456789abcdef\\\";\\n    uint8 private constant _ADDRESS_LENGTH = 20;\\n\\n    /**\\n     * @dev Converts a `uint256` to its ASCII `string` decimal representation.\\n     */\\n    function toString(uint256 value) internal pure returns (string memory) {\\n        unchecked {\\n            uint256 length = Math.log10(value) + 1;\\n            string memory buffer = new string(length);\\n            uint256 ptr;\\n            /// @solidity memory-safe-assembly\\n            assembly {\\n                ptr := add(buffer, add(32, length))\\n            }\\n            while (true) {\\n                ptr--;\\n                /// @solidity memory-safe-assembly\\n                assembly {\\n                    mstore8(ptr, byte(mod(value, 10), _SYMBOLS))\\n                }\\n                value /= 10;\\n                if (value == 0) break;\\n            }\\n            return buffer;\\n        }\\n    }\\n\\n    /**\\n     * @dev Converts a `int256` to its ASCII `string` decimal representation.\\n     */\\n    function toString(int256 value) internal pure returns (string memory) {\\n        return string(abi.encodePacked(value < 0 ? \\\"-\\\" : \\\"\\\", toString(SignedMath.abs(value))));\\n    }\\n\\n    /**\\n     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.\\n     */\\n    function toHexString(uint256 value) internal pure returns (string memory) {\\n        unchecked {\\n            return toHexString(value, Math.log256(value) + 1);\\n        }\\n    }\\n\\n    /**\\n     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\\n     */\\n    function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\\n        bytes memory buffer = new bytes(2 * length + 2);\\n        buffer[0] = \\\"0\\\";\\n        buffer[1] = \\\"x\\\";\\n        for (uint256 i = 2 * length + 1; i > 1; --i) {\\n            buffer[i] = _SYMBOLS[value & 0xf];\\n            value >>= 4;\\n        }\\n        require(value == 0, \\\"Strings: hex length insufficient\\\");\\n        return string(buffer);\\n    }\\n\\n    /**\\n     * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation.\\n     */\\n    function toHexString(address addr) internal pure returns (string memory) {\\n        return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH);\\n    }\\n\\n    /**\\n     * @dev Returns true if the two strings are equal.\\n     */\\n    function equal(string memory a, string memory b) internal pure returns (bool) {\\n        return keccak256(bytes(a)) == keccak256(bytes(b));\\n    }\\n}\\n\",\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IERC165.sol\\\";\\n\\n/**\\n * @dev Implementation of the {IERC165} interface.\\n *\\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\\n * for the additional interface id that will be supported. For example:\\n *\\n * ```solidity\\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\n *     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\\n * }\\n * ```\\n *\\n * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\\n */\\nabstract contract ERC165 is IERC165 {\\n    /**\\n     * @dev See {IERC165-supportsInterface}.\\n     */\\n    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\n        return interfaceId == type(IERC165).interfaceId;\\n    }\\n}\\n\",\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC165 standard, as defined in the\\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\\n *\\n * Implementers can declare support of contract interfaces, which can then be\\n * queried by others ({ERC165Checker}).\\n *\\n * For an implementation, see {ERC165}.\\n */\\ninterface IERC165 {\\n    /**\\n     * @dev Returns true if this contract implements the interface defined by\\n     * `interfaceId`. See the corresponding\\n     * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\\n     * to learn more about how these ids are created.\\n     *\\n     * This function call must use less than 30 000 gas.\\n     */\\n    function supportsInterface(bytes4 interfaceId) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/math/Math.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Standard math utilities missing in the Solidity language.\\n */\\nlibrary Math {\\n    enum Rounding {\\n        Down, // Toward negative infinity\\n        Up, // Toward infinity\\n        Zero // Toward zero\\n    }\\n\\n    /**\\n     * @dev Returns the largest of two numbers.\\n     */\\n    function max(uint256 a, uint256 b) internal pure returns (uint256) {\\n        return a > b ? a : b;\\n    }\\n\\n    /**\\n     * @dev Returns the smallest of two numbers.\\n     */\\n    function min(uint256 a, uint256 b) internal pure returns (uint256) {\\n        return a < b ? a : b;\\n    }\\n\\n    /**\\n     * @dev Returns the average of two numbers. The result is rounded towards\\n     * zero.\\n     */\\n    function average(uint256 a, uint256 b) internal pure returns (uint256) {\\n        // (a + b) / 2 can overflow.\\n        return (a & b) + (a ^ b) / 2;\\n    }\\n\\n    /**\\n     * @dev Returns the ceiling of the division of two numbers.\\n     *\\n     * This differs from standard division with `/` in that it rounds up instead\\n     * of rounding down.\\n     */\\n    function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\\n        // (a + b - 1) / b can overflow on addition, so we distribute.\\n        return a == 0 ? 0 : (a - 1) / b + 1;\\n    }\\n\\n    /**\\n     * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\\n     * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)\\n     * with further edits by Uniswap Labs also under MIT license.\\n     */\\n    function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {\\n        unchecked {\\n            // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use\\n            // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\\n            // variables such that product = prod1 * 2^256 + prod0.\\n            uint256 prod0; // Least significant 256 bits of the product\\n            uint256 prod1; // Most significant 256 bits of the product\\n            assembly {\\n                let mm := mulmod(x, y, not(0))\\n                prod0 := mul(x, y)\\n                prod1 := sub(sub(mm, prod0), lt(mm, prod0))\\n            }\\n\\n            // Handle non-overflow cases, 256 by 256 division.\\n            if (prod1 == 0) {\\n                // Solidity will revert if denominator == 0, unlike the div opcode on its own.\\n                // The surrounding unchecked block does not change this fact.\\n                // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.\\n                return prod0 / denominator;\\n            }\\n\\n            // Make sure the result is less than 2^256. Also prevents denominator == 0.\\n            require(denominator > prod1, \\\"Math: mulDiv overflow\\\");\\n\\n            ///////////////////////////////////////////////\\n            // 512 by 256 division.\\n            ///////////////////////////////////////////////\\n\\n            // Make division exact by subtracting the remainder from [prod1 prod0].\\n            uint256 remainder;\\n            assembly {\\n                // Compute remainder using mulmod.\\n                remainder := mulmod(x, y, denominator)\\n\\n                // Subtract 256 bit number from 512 bit number.\\n                prod1 := sub(prod1, gt(remainder, prod0))\\n                prod0 := sub(prod0, remainder)\\n            }\\n\\n            // Factor powers of two out of denominator and compute largest power of two divisor of denominator. Always >= 1.\\n            // See https://cs.stackexchange.com/q/138556/92363.\\n\\n            // Does not overflow because the denominator cannot be zero at this stage in the function.\\n            uint256 twos = denominator & (~denominator + 1);\\n            assembly {\\n                // Divide denominator by twos.\\n                denominator := div(denominator, twos)\\n\\n                // Divide [prod1 prod0] by twos.\\n                prod0 := div(prod0, twos)\\n\\n                // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.\\n                twos := add(div(sub(0, twos), twos), 1)\\n            }\\n\\n            // Shift in bits from prod1 into prod0.\\n            prod0 |= prod1 * twos;\\n\\n            // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\\n            // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\\n            // four bits. That is, denominator * inv = 1 mod 2^4.\\n            uint256 inverse = (3 * denominator) ^ 2;\\n\\n            // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also works\\n            // in modular arithmetic, doubling the correct bits in each step.\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^8\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^16\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^32\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^64\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^128\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^256\\n\\n            // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\\n            // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\\n            // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\\n            // is no longer required.\\n            result = prod0 * inverse;\\n            return result;\\n        }\\n    }\\n\\n    /**\\n     * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\\n     */\\n    function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\\n        uint256 result = mulDiv(x, y, denominator);\\n        if (rounding == Rounding.Up && mulmod(x, y, denominator) > 0) {\\n            result += 1;\\n        }\\n        return result;\\n    }\\n\\n    /**\\n     * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down.\\n     *\\n     * Inspired by Henry S. Warren, Jr.'s \\\"Hacker's Delight\\\" (Chapter 11).\\n     */\\n    function sqrt(uint256 a) internal pure returns (uint256) {\\n        if (a == 0) {\\n            return 0;\\n        }\\n\\n        // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\\n        //\\n        // We know that the \\\"msb\\\" (most significant bit) of our target number `a` is a power of 2 such that we have\\n        // `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`.\\n        //\\n        // This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)`\\n        // \\u2192 `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`\\n        // \\u2192 `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)`\\n        //\\n        // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit.\\n        uint256 result = 1 << (log2(a) >> 1);\\n\\n        // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128,\\n        // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\\n        // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\\n        // into the expected uint128 result.\\n        unchecked {\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            return min(result, a / result);\\n        }\\n    }\\n\\n    /**\\n     * @notice Calculates sqrt(a), following the selected rounding direction.\\n     */\\n    function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\\n        unchecked {\\n            uint256 result = sqrt(a);\\n            return result + (rounding == Rounding.Up && result * result < a ? 1 : 0);\\n        }\\n    }\\n\\n    /**\\n     * @dev Return the log in base 2, rounded down, of a positive value.\\n     * Returns 0 if given 0.\\n     */\\n    function log2(uint256 value) internal pure returns (uint256) {\\n        uint256 result = 0;\\n        unchecked {\\n            if (value >> 128 > 0) {\\n                value >>= 128;\\n                result += 128;\\n            }\\n            if (value >> 64 > 0) {\\n                value >>= 64;\\n                result += 64;\\n            }\\n            if (value >> 32 > 0) {\\n                value >>= 32;\\n                result += 32;\\n            }\\n            if (value >> 16 > 0) {\\n                value >>= 16;\\n                result += 16;\\n            }\\n            if (value >> 8 > 0) {\\n                value >>= 8;\\n                result += 8;\\n            }\\n            if (value >> 4 > 0) {\\n                value >>= 4;\\n                result += 4;\\n            }\\n            if (value >> 2 > 0) {\\n                value >>= 2;\\n                result += 2;\\n            }\\n            if (value >> 1 > 0) {\\n                result += 1;\\n            }\\n        }\\n        return result;\\n    }\\n\\n    /**\\n     * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\\n     * Returns 0 if given 0.\\n     */\\n    function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n        unchecked {\\n            uint256 result = log2(value);\\n            return result + (rounding == Rounding.Up && 1 << result < value ? 1 : 0);\\n        }\\n    }\\n\\n    /**\\n     * @dev Return the log in base 10, rounded down, of a positive value.\\n     * Returns 0 if given 0.\\n     */\\n    function log10(uint256 value) internal pure returns (uint256) {\\n        uint256 result = 0;\\n        unchecked {\\n            if (value >= 10 ** 64) {\\n                value /= 10 ** 64;\\n                result += 64;\\n            }\\n            if (value >= 10 ** 32) {\\n                value /= 10 ** 32;\\n                result += 32;\\n            }\\n            if (value >= 10 ** 16) {\\n                value /= 10 ** 16;\\n                result += 16;\\n            }\\n            if (value >= 10 ** 8) {\\n                value /= 10 ** 8;\\n                result += 8;\\n            }\\n            if (value >= 10 ** 4) {\\n                value /= 10 ** 4;\\n                result += 4;\\n            }\\n            if (value >= 10 ** 2) {\\n                value /= 10 ** 2;\\n                result += 2;\\n            }\\n            if (value >= 10 ** 1) {\\n                result += 1;\\n            }\\n        }\\n        return result;\\n    }\\n\\n    /**\\n     * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\\n     * Returns 0 if given 0.\\n     */\\n    function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n        unchecked {\\n            uint256 result = log10(value);\\n            return result + (rounding == Rounding.Up && 10 ** result < value ? 1 : 0);\\n        }\\n    }\\n\\n    /**\\n     * @dev Return the log in base 256, rounded down, of a positive value.\\n     * Returns 0 if given 0.\\n     *\\n     * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string.\\n     */\\n    function log256(uint256 value) internal pure returns (uint256) {\\n        uint256 result = 0;\\n        unchecked {\\n            if (value >> 128 > 0) {\\n                value >>= 128;\\n                result += 16;\\n            }\\n            if (value >> 64 > 0) {\\n                value >>= 64;\\n                result += 8;\\n            }\\n            if (value >> 32 > 0) {\\n                value >>= 32;\\n                result += 4;\\n            }\\n            if (value >> 16 > 0) {\\n                value >>= 16;\\n                result += 2;\\n            }\\n            if (value >> 8 > 0) {\\n                result += 1;\\n            }\\n        }\\n        return result;\\n    }\\n\\n    /**\\n     * @dev Return the log in base 256, following the selected rounding direction, of a positive value.\\n     * Returns 0 if given 0.\\n     */\\n    function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n        unchecked {\\n            uint256 result = log256(value);\\n            return result + (rounding == Rounding.Up && 1 << (result << 3) < value ? 1 : 0);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/SignedMath.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Standard signed math utilities missing in the Solidity language.\\n */\\nlibrary SignedMath {\\n    /**\\n     * @dev Returns the largest of two signed numbers.\\n     */\\n    function max(int256 a, int256 b) internal pure returns (int256) {\\n        return a > b ? a : b;\\n    }\\n\\n    /**\\n     * @dev Returns the smallest of two signed numbers.\\n     */\\n    function min(int256 a, int256 b) internal pure returns (int256) {\\n        return a < b ? a : b;\\n    }\\n\\n    /**\\n     * @dev Returns the average of two signed numbers without overflow.\\n     * The result is rounded towards zero.\\n     */\\n    function average(int256 a, int256 b) internal pure returns (int256) {\\n        // Formula from the book \\\"Hacker's Delight\\\"\\n        int256 x = (a & b) + ((a ^ b) >> 1);\\n        return x + (int256(uint256(x) >> 255) & (a ^ b));\\n    }\\n\\n    /**\\n     * @dev Returns the absolute unsigned value of a signed value.\\n     */\\n    function abs(int256 n) internal pure returns (uint256) {\\n        unchecked {\\n            // must be unchecked in order to support `n = type(int256).min`\\n            return uint256(n >= 0 ? n : -n);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\"},\"contracts/Governance/AccessControlManager.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\nimport \\\"@openzeppelin/contracts/access/AccessControl.sol\\\";\\nimport \\\"./IAccessControlManagerV8.sol\\\";\\n\\n/**\\n * @title AccessControlManager\\n * @author Venus\\n * @dev This contract is a wrapper of OpenZeppelin AccessControl extending it in a way to standartize access control within Venus Smart Contract Ecosystem.\\n * @notice Access control plays a crucial role in the Venus governance model. It is used to restrict functions so that they can only be called from one\\n * account or list of accounts (EOA or Contract Accounts).\\n *\\n * The implementation of `AccessControlManager`(https://github.com/VenusProtocol/governance-contracts/blob/main/contracts/Governance/AccessControlManager.sol)\\n * inherits the [Open Zeppelin AccessControl](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/AccessControl.sol)\\n * contract as a base for role management logic. There are two role types: admin and granular permissions.\\n * \\n * ## Granular Roles\\n * \\n * Granular roles are built by hashing the contract address and its function signature. For example, given contract `Foo` with function `Foo.bar()` which\\n * is guarded by ACM, calling `giveRolePermission` for account B do the following:\\n * \\n * 1. Compute `keccak256(contractFooAddress,functionSignatureBar)`\\n * 1. Add the computed role to the roles of account B\\n * 1. Account B now can call `ContractFoo.bar()`\\n * \\n * ## Admin Roles\\n * \\n * Admin roles allow for an address to call a function signature on any contract guarded by the `AccessControlManager`. This is particularly useful for\\n * contracts created by factories.\\n * \\n * For Admin roles a null address is hashed in place of the contract address (`keccak256(0x0000000000000000000000000000000000000000,functionSignatureBar)`.\\n * \\n * In the previous example, giving account B the admin role, account B will have permissions to call the `bar()` function on any contract that is guarded by\\n * ACM, not only contract A.\\n * \\n * ## Protocol Integration\\n * \\n * All restricted functions in Venus Protocol use a hook to ACM in order to check if the caller has the right permission to call the guarded function.\\n * `AccessControlledV5` and `AccessControlledV8` abstract contract makes this integration easier. They call ACM's external method\\n * `isAllowedToCall(address caller, string functionSig)`. Here is an example of how `setCollateralFactor` function in `Comptroller` is integrated with ACM:\\n\\n```\\n    contract Comptroller is [...] AccessControlledV8 {\\n        [...]\\n        function setCollateralFactor(VToken vToken, uint256 newCollateralFactorMantissa, uint256 newLiquidationThresholdMantissa) external {\\n            _checkAccessAllowed(\\\"setCollateralFactor(address,uint256,uint256)\\\");\\n            [...]\\n        }\\n    }\\n```\\n */\\ncontract AccessControlManager is AccessControl, IAccessControlManagerV8 {\\n    /// @notice Emitted when an account is given a permission to a certain contract function\\n    /// @dev If contract address is 0x000..0 this means that the account is a default admin of this function and\\n    /// can call any contract function with this signature\\n    event PermissionGranted(address account, address contractAddress, string functionSig);\\n\\n    /// @notice Emitted when an account is revoked a permission to a certain contract function\\n    event PermissionRevoked(address account, address contractAddress, string functionSig);\\n\\n    constructor() {\\n        // Grant the contract deployer the default admin role: it will be able\\n        // to grant and revoke any roles\\n        _setupRole(DEFAULT_ADMIN_ROLE, msg.sender);\\n    }\\n\\n    /**\\n     * @notice Gives a function call permission to one single account\\n     * @dev this function can be called only from Role Admin or DEFAULT_ADMIN_ROLE\\n     * @param contractAddress address of contract for which call permissions will be granted\\n     * @dev if contractAddress is zero address, the account can access the specified function\\n     *      on **any** contract managed by this ACL\\n     * @param functionSig signature e.g. \\\"functionName(uint256,bool)\\\"\\n     * @param accountToPermit account that will be given access to the contract function\\n     * @custom:event Emits a {RoleGranted} and {PermissionGranted} events.\\n     */\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) public {\\n        bytes32 role = keccak256(abi.encodePacked(contractAddress, functionSig));\\n        grantRole(role, accountToPermit);\\n        emit PermissionGranted(accountToPermit, contractAddress, functionSig);\\n    }\\n\\n    /**\\n     * @notice Revokes an account's permission to a particular function call\\n     * @dev this function can be called only from Role Admin or DEFAULT_ADMIN_ROLE\\n     * \\t\\tMay emit a {RoleRevoked} event.\\n     * @param contractAddress address of contract for which call permissions will be revoked\\n     * @param functionSig signature e.g. \\\"functionName(uint256,bool)\\\"\\n     * @custom:event Emits {RoleRevoked} and {PermissionRevoked} events.\\n     */\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) public {\\n        bytes32 role = keccak256(abi.encodePacked(contractAddress, functionSig));\\n        revokeRole(role, accountToRevoke);\\n        emit PermissionRevoked(accountToRevoke, contractAddress, functionSig);\\n    }\\n\\n    /**\\n     * @notice Verifies if the given account can call a contract's guarded function\\n     * @dev Since restricted contracts using this function as a permission hook, we can get contracts address with msg.sender\\n     * @param account for which call permissions will be checked\\n     * @param functionSig restricted function signature e.g. \\\"functionName(uint256,bool)\\\"\\n     * @return false if the user account cannot call the particular contract function\\n     *\\n     */\\n    function isAllowedToCall(address account, string calldata functionSig) public view returns (bool) {\\n        bytes32 role = keccak256(abi.encodePacked(msg.sender, functionSig));\\n\\n        if (hasRole(role, account)) {\\n            return true;\\n        } else {\\n            role = keccak256(abi.encodePacked(address(0), functionSig));\\n            return hasRole(role, account);\\n        }\\n    }\\n\\n    /**\\n     * @notice Verifies if the given account can call a contract's guarded function\\n     * @dev This function is used as a view function to check permissions rather than contract hook for access restriction check.\\n     * @param account for which call permissions will be checked against\\n     * @param contractAddress address of the restricted contract\\n     * @param functionSig signature of the restricted function e.g. \\\"functionName(uint256,bool)\\\"\\n     * @return false if the user account cannot call the particular contract function\\n     */\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) public view returns (bool) {\\n        bytes32 role = keccak256(abi.encodePacked(contractAddress, functionSig));\\n        return hasRole(role, account);\\n    }\\n}\\n\",\"keccak256\":\"0x9cf1fe49aecbf49434d4a04c3bd25c1a103356c999d335774216da17a3a152a8\",\"license\":\"BSD-3-Clause\"},\"contracts/Governance/IAccessControlManagerV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/access/IAccessControl.sol\\\";\\n\\n/**\\n * @title IAccessControlManagerV8\\n * @author Venus\\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\\n */\\ninterface IAccessControlManagerV8 is IAccessControl {\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\\n\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) external;\\n\\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\\n\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xaa29b098440d0b3a131c5ecdf25ce548790c1b5ac7bf9b5c0264b6af6f7a1e0b\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":6599,"contract":"contracts/Governance/AccessControlManager.sol:AccessControlManager","label":"_roles","offset":0,"slot":"0","type":"t_mapping(t_bytes32,t_struct(RoleData)6594_storage)"}],"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_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_bytes32,t_struct(RoleData)6594_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct AccessControl.RoleData)","numberOfBytes":"32","value":"t_struct(RoleData)6594_storage"},"t_struct(RoleData)6594_storage":{"encoding":"inplace","label":"struct AccessControl.RoleData","members":[{"astId":6591,"contract":"contracts/Governance/AccessControlManager.sol:AccessControlManager","label":"members","offset":0,"slot":"0","type":"t_mapping(t_address,t_bool)"},{"astId":6593,"contract":"contracts/Governance/AccessControlManager.sol:AccessControlManager","label":"adminRole","offset":0,"slot":"1","type":"t_bytes32"}],"numberOfBytes":"64"}}},"userdoc":{"events":{"PermissionGranted(address,address,string)":{"notice":"Emitted when an account is given a permission to a certain contract function"},"PermissionRevoked(address,address,string)":{"notice":"Emitted when an account is revoked a permission to a certain contract function"}},"kind":"user","methods":{"giveCallPermission(address,string,address)":{"notice":"Gives a function call permission to one single account"},"hasPermission(address,address,string)":{"notice":"Verifies if the given account can call a contract's guarded function"},"isAllowedToCall(address,string)":{"notice":"Verifies if the given account can call a contract's guarded function"},"revokeCallPermission(address,string,address)":{"notice":"Revokes an account's permission to a particular function call"}},"notice":"Access control plays a crucial role in the Venus governance model. It is used to restrict functions so that they can only be called from one account or list of accounts (EOA or Contract Accounts). The implementation of `AccessControlManager`(https://github.com/VenusProtocol/governance-contracts/blob/main/contracts/Governance/AccessControlManager.sol) inherits the [Open Zeppelin AccessControl](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/AccessControl.sol) contract as a base for role management logic. There are two role types: admin and granular permissions.  ## Granular Roles  Granular roles are built by hashing the contract address and its function signature. For example, given contract `Foo` with function `Foo.bar()` which is guarded by ACM, calling `giveRolePermission` for account B do the following:  1. Compute `keccak256(contractFooAddress,functionSignatureBar)` 1. Add the computed role to the roles of account B 1. Account B now can call `ContractFoo.bar()`  ## Admin Roles  Admin roles allow for an address to call a function signature on any contract guarded by the `AccessControlManager`. This is particularly useful for contracts created by factories.  For Admin roles a null address is hashed in place of the contract address (`keccak256(0x0000000000000000000000000000000000000000,functionSignatureBar)`.  In the previous example, giving account B the admin role, account B will have permissions to call the `bar()` function on any contract that is guarded by ACM, not only contract A.  ## Protocol Integration  All restricted functions in Venus Protocol use a hook to ACM in order to check if the caller has the right permission to call the guarded function. `AccessControlledV5` and `AccessControlledV8` abstract contract makes this integration easier. They call ACM's external method `isAllowedToCall(address caller, string functionSig)`. Here is an example of how `setCollateralFactor` function in `Comptroller` is integrated with ACM: ``` contract Comptroller is [...] AccessControlledV8 { [...] function setCollateralFactor(VToken vToken, uint256 newCollateralFactorMantissa, uint256 newLiquidationThresholdMantissa) external { _checkAccessAllowed(\"setCollateralFactor(address,uint256,uint256)\"); [...] } } ```","version":1}}},"contracts/Governance/AccessControlledV8.sol":{"AccessControlledV8":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"calledContract","type":"address"},{"internalType":"string","name":"methodSignature","type":"string"}],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldAccessControlManager","type":"address"},{"indexed":false,"internalType":"address","name":"newAccessControlManager","type":"address"}],"name":"NewAccessControlManager","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"accessControlManager","outputs":[{"internalType":"contract IAccessControlManagerV8","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"accessControlManager_","type":"address"}],"name":"setAccessControlManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Venus","events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."}},"kind":"dev","methods":{"acceptOwnership()":{"details":"The new owner accepts the ownership transfer."},"owner()":{"details":"Returns the address of the current owner."},"pendingOwner()":{"details":"Returns the address of the pending owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"setAccessControlManager(address)":{"custom:access":"Only Governance","custom:event":"Emits NewAccessControlManager event","details":"Admin function to set address of AccessControlManager","params":{"accessControlManager_":"The new address of the AccessControlManager"}},"transferOwnership(address)":{"details":"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner."}},"stateVariables":{"__gap":{"details":"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"}},"title":"AccessControlledV8","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"acceptOwnership()":"79ba5097","accessControlManager()":"b4a0bdf3","owner()":"8da5cb5b","pendingOwner()":"e30c3978","renounceOwnership()":"715018a6","setAccessControlManager(address)":"0e32cb86","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"calledContract\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"methodSignature\",\"type\":\"string\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldAccessControlManager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAccessControlManager\",\"type\":\"address\"}],\"name\":\"NewAccessControlManager\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"accessControlManager\",\"outputs\":[{\"internalType\":\"contract IAccessControlManagerV8\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessControlManager_\",\"type\":\"address\"}],\"name\":\"setAccessControlManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"setAccessControlManager(address)\":{\"custom:access\":\"Only Governance\",\"custom:event\":\"Emits NewAccessControlManager event\",\"details\":\"Admin function to set address of AccessControlManager\",\"params\":{\"accessControlManager_\":\"The new address of the AccessControlManager\"}},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"title\":\"AccessControlledV8\",\"version\":1},\"userdoc\":{\"errors\":{\"Unauthorized(address,address,string)\":[{\"notice\":\"Thrown when the action is prohibited by AccessControlManager\"}]},\"events\":{\"NewAccessControlManager(address,address)\":{\"notice\":\"Emitted when access control manager contract address is changed\"}},\"kind\":\"user\",\"methods\":{\"accessControlManager()\":{\"notice\":\"Returns the address of the access control manager contract\"},\"setAccessControlManager(address)\":{\"notice\":\"Sets the address of AccessControlManager\"}},\"notice\":\"This contract is helper between access control manager and actual contract. This contract further inherited by other contract (using solidity 0.8.13) to integrate access controlled mechanism. It provides initialise methods and verifying access methods.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Governance/AccessControlledV8.sol\":\"AccessControlledV8\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (access/Ownable2Step.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./OwnableUpgradeable.sol\\\";\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership} and {acceptOwnership}.\\n *\\n * This module is used through inheritance. It will make available all functions\\n * from parent (Ownable).\\n */\\nabstract contract Ownable2StepUpgradeable is Initializable, OwnableUpgradeable {\\n    function __Ownable2Step_init() internal onlyInitializing {\\n        __Ownable_init_unchained();\\n    }\\n\\n    function __Ownable2Step_init_unchained() internal onlyInitializing {\\n    }\\n    address private _pendingOwner;\\n\\n    event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Returns the address of the pending owner.\\n     */\\n    function pendingOwner() public view virtual returns (address) {\\n        return _pendingOwner;\\n    }\\n\\n    /**\\n     * @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual override onlyOwner {\\n        _pendingOwner = newOwner;\\n        emit OwnershipTransferStarted(owner(), newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual override {\\n        delete _pendingOwner;\\n        super._transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev The new owner accepts the ownership transfer.\\n     */\\n    function acceptOwnership() external {\\n        address sender = _msgSender();\\n        require(pendingOwner() == sender, \\\"Ownable2Step: caller is not the new owner\\\");\\n        _transferOwnership(sender);\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0xd712fb45b3ea0ab49679164e3895037adc26ce12879d5184feb040e01c1c07a9\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/ContextUpgradeable.sol\\\";\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract OwnableUpgradeable is Initializable, ContextUpgradeable {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    function __Ownable_init() internal onlyInitializing {\\n        __Ownable_init_unchained();\\n    }\\n\\n    function __Ownable_init_unchained() internal onlyInitializing {\\n        _transferOwnership(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        _checkOwner();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if the sender is not the owner.\\n     */\\n    function _checkOwner() internal view virtual {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions anymore. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby removing any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.1) (proxy/utils/Initializable.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../../utils/AddressUpgradeable.sol\\\";\\n\\n/**\\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\\n *\\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\\n * reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in\\n * case an upgrade adds a module that needs to be initialized.\\n *\\n * For example:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * contract MyToken is ERC20Upgradeable {\\n *     function initialize() initializer public {\\n *         __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\");\\n *     }\\n * }\\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\\n *     function initializeV2() reinitializer(2) public {\\n *         __ERC20Permit_init(\\\"MyToken\\\");\\n *     }\\n * }\\n * ```\\n *\\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\\n *\\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\\n *\\n * [CAUTION]\\n * ====\\n * Avoid leaving a contract uninitialized.\\n *\\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * /// @custom:oz-upgrades-unsafe-allow constructor\\n * constructor() {\\n *     _disableInitializers();\\n * }\\n * ```\\n * ====\\n */\\nabstract contract Initializable {\\n    /**\\n     * @dev Indicates that the contract has been initialized.\\n     * @custom:oz-retyped-from bool\\n     */\\n    uint8 private _initialized;\\n\\n    /**\\n     * @dev Indicates that the contract is in the process of being initialized.\\n     */\\n    bool private _initializing;\\n\\n    /**\\n     * @dev Triggered when the contract has been initialized or reinitialized.\\n     */\\n    event Initialized(uint8 version);\\n\\n    /**\\n     * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\\n     * `onlyInitializing` functions can be used to initialize parent contracts.\\n     *\\n     * Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\\n     * constructor.\\n     *\\n     * Emits an {Initialized} event.\\n     */\\n    modifier initializer() {\\n        bool isTopLevelCall = !_initializing;\\n        require(\\n            (isTopLevelCall && _initialized < 1) || (!AddressUpgradeable.isContract(address(this)) && _initialized == 1),\\n            \\\"Initializable: contract is already initialized\\\"\\n        );\\n        _initialized = 1;\\n        if (isTopLevelCall) {\\n            _initializing = true;\\n        }\\n        _;\\n        if (isTopLevelCall) {\\n            _initializing = false;\\n            emit Initialized(1);\\n        }\\n    }\\n\\n    /**\\n     * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\\n     * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\\n     * used to initialize parent contracts.\\n     *\\n     * A reinitializer may be used after the original initialization step. This is essential to configure modules that\\n     * are added through upgrades and that require initialization.\\n     *\\n     * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\\n     * cannot be nested. If one is invoked in the context of another, execution will revert.\\n     *\\n     * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\\n     * a contract, executing them in the right order is up to the developer or operator.\\n     *\\n     * WARNING: setting the version to 255 will prevent any future reinitialization.\\n     *\\n     * Emits an {Initialized} event.\\n     */\\n    modifier reinitializer(uint8 version) {\\n        require(!_initializing && _initialized < version, \\\"Initializable: contract is already initialized\\\");\\n        _initialized = version;\\n        _initializing = true;\\n        _;\\n        _initializing = false;\\n        emit Initialized(version);\\n    }\\n\\n    /**\\n     * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\\n     * {initializer} and {reinitializer} modifiers, directly or indirectly.\\n     */\\n    modifier onlyInitializing() {\\n        require(_initializing, \\\"Initializable: contract is not initializing\\\");\\n        _;\\n    }\\n\\n    /**\\n     * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\\n     * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\\n     * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\\n     * through proxies.\\n     *\\n     * Emits an {Initialized} event the first time it is successfully executed.\\n     */\\n    function _disableInitializers() internal virtual {\\n        require(!_initializing, \\\"Initializable: contract is initializing\\\");\\n        if (_initialized < type(uint8).max) {\\n            _initialized = type(uint8).max;\\n            emit Initialized(type(uint8).max);\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns the highest version that has been initialized. See {reinitializer}.\\n     */\\n    function _getInitializedVersion() internal view returns (uint8) {\\n        return _initialized;\\n    }\\n\\n    /**\\n     * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.\\n     */\\n    function _isInitializing() internal view returns (bool) {\\n        return _initializing;\\n    }\\n}\\n\",\"keccak256\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary AddressUpgradeable {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\n     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\n     *\\n     * _Available since v4.8._\\n     */\\n    function verifyCallResultFromTarget(\\n        address target,\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        if (success) {\\n            if (returndata.length == 0) {\\n                // only check isContract if the call was successful and the return data is empty\\n                // otherwise we already know that it was a contract\\n                require(isContract(target), \\\"Address: call to non-contract\\\");\\n            }\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason or using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    function _revert(bytes memory returndata, string memory errorMessage) private pure {\\n        // Look for revert reason and bubble it up if present\\n        if (returndata.length > 0) {\\n            // The easiest way to bubble the revert reason is using memory via assembly\\n            /// @solidity memory-safe-assembly\\n            assembly {\\n                let returndata_size := mload(returndata)\\n                revert(add(32, returndata), returndata_size)\\n            }\\n        } else {\\n            revert(errorMessage);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract ContextUpgradeable is Initializable {\\n    function __Context_init() internal onlyInitializing {\\n    }\\n\\n    function __Context_init_unchained() internal onlyInitializing {\\n    }\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[50] private __gap;\\n}\\n\",\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"contracts/Governance/AccessControlledV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\\\";\\nimport \\\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\\\";\\n\\nimport \\\"./IAccessControlManagerV8.sol\\\";\\n\\n/**\\n * @title AccessControlledV8\\n * @author Venus\\n * @notice This contract is helper between access control manager and actual contract. This contract further inherited by other contract (using solidity 0.8.13)\\n * to integrate access controlled mechanism. It provides initialise methods and verifying access methods.\\n */\\nabstract contract AccessControlledV8 is Initializable, Ownable2StepUpgradeable {\\n    /// @notice Access control manager contract\\n    IAccessControlManagerV8 internal _accessControlManager;\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n\\n    /// @notice Emitted when access control manager contract address is changed\\n    event NewAccessControlManager(address oldAccessControlManager, address newAccessControlManager);\\n\\n    /// @notice Thrown when the action is prohibited by AccessControlManager\\n    error Unauthorized(address sender, address calledContract, string methodSignature);\\n\\n    function __AccessControlled_init(address accessControlManager_) internal onlyInitializing {\\n        __Ownable2Step_init();\\n        __AccessControlled_init_unchained(accessControlManager_);\\n    }\\n\\n    function __AccessControlled_init_unchained(address accessControlManager_) internal onlyInitializing {\\n        _setAccessControlManager(accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Sets the address of AccessControlManager\\n     * @dev Admin function to set address of AccessControlManager\\n     * @param accessControlManager_ The new address of the AccessControlManager\\n     * @custom:event Emits NewAccessControlManager event\\n     * @custom:access Only Governance\\n     */\\n    function setAccessControlManager(address accessControlManager_) external onlyOwner {\\n        _setAccessControlManager(accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Returns the address of the access control manager contract\\n     */\\n    function accessControlManager() external view returns (IAccessControlManagerV8) {\\n        return _accessControlManager;\\n    }\\n\\n    /**\\n     * @dev Internal function to set address of AccessControlManager\\n     * @param accessControlManager_ The new address of the AccessControlManager\\n     */\\n    function _setAccessControlManager(address accessControlManager_) internal {\\n        require(address(accessControlManager_) != address(0), \\\"invalid acess control manager address\\\");\\n        address oldAccessControlManager = address(_accessControlManager);\\n        _accessControlManager = IAccessControlManagerV8(accessControlManager_);\\n        emit NewAccessControlManager(oldAccessControlManager, accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Reverts if the call is not allowed by AccessControlManager\\n     * @param signature Method signature\\n     */\\n    function _checkAccessAllowed(string memory signature) internal view {\\n        bool isAllowedToCall = _accessControlManager.isAllowedToCall(msg.sender, signature);\\n\\n        if (!isAllowedToCall) {\\n            revert Unauthorized(msg.sender, address(this), signature);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xe7f5f96c70fb32912ecc0032f81f7876607353413fe7f723d41d260ac9c26a06\",\"license\":\"BSD-3-Clause\"},\"contracts/Governance/IAccessControlManagerV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/access/IAccessControl.sol\\\";\\n\\n/**\\n * @title IAccessControlManagerV8\\n * @author Venus\\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\\n */\\ninterface IAccessControlManagerV8 is IAccessControl {\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\\n\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) external;\\n\\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\\n\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xaa29b098440d0b3a131c5ecdf25ce548790c1b5ac7bf9b5c0264b6af6f7a1e0b\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":6086,"contract":"contracts/Governance/AccessControlledV8.sol:AccessControlledV8","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":6089,"contract":"contracts/Governance/AccessControlledV8.sol:AccessControlledV8","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":6573,"contract":"contracts/Governance/AccessControlledV8.sol:AccessControlledV8","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":5958,"contract":"contracts/Governance/AccessControlledV8.sol:AccessControlledV8","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":6078,"contract":"contracts/Governance/AccessControlledV8.sol:AccessControlledV8","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":5867,"contract":"contracts/Governance/AccessControlledV8.sol:AccessControlledV8","label":"_pendingOwner","offset":0,"slot":"101","type":"t_address"},{"astId":5946,"contract":"contracts/Governance/AccessControlledV8.sol:AccessControlledV8","label":"__gap","offset":0,"slot":"102","type":"t_array(t_uint256)49_storage"},{"astId":13718,"contract":"contracts/Governance/AccessControlledV8.sol:AccessControlledV8","label":"_accessControlManager","offset":0,"slot":"151","type":"t_contract(IAccessControlManagerV8)13903"},{"astId":13723,"contract":"contracts/Governance/AccessControlledV8.sol:AccessControlledV8","label":"__gap","offset":0,"slot":"152","type":"t_array(t_uint256)49_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_contract(IAccessControlManagerV8)13903":{"encoding":"inplace","label":"contract IAccessControlManagerV8","numberOfBytes":"20"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"errors":{"Unauthorized(address,address,string)":[{"notice":"Thrown when the action is prohibited by AccessControlManager"}]},"events":{"NewAccessControlManager(address,address)":{"notice":"Emitted when access control manager contract address is changed"}},"kind":"user","methods":{"accessControlManager()":{"notice":"Returns the address of the access control manager contract"},"setAccessControlManager(address)":{"notice":"Sets the address of AccessControlManager"}},"notice":"This contract is helper between access control manager and actual contract. This contract further inherited by other contract (using solidity 0.8.13) to integrate access controlled mechanism. It provides initialise methods and verifying access methods.","version":1}}},"contracts/Governance/IAccessControlManagerV8.sol":{"IAccessControlManagerV8":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"string","name":"functionSig","type":"string"},{"internalType":"address","name":"accountToPermit","type":"address"}],"name":"giveCallPermission","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"string","name":"functionSig","type":"string"}],"name":"hasPermission","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"string","name":"functionSig","type":"string"}],"name":"isAllowedToCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"string","name":"functionSig","type":"string"},{"internalType":"address","name":"accountToRevoke","type":"address"}],"name":"revokeCallPermission","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Venus","events":{"RoleAdminChanged(bytes32,bytes32,bytes32)":{"details":"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._"},"RoleGranted(bytes32,address,address)":{"details":"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}."},"RoleRevoked(bytes32,address,address)":{"details":"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)"}},"kind":"dev","methods":{"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role."}},"title":"IAccessControlManagerV8","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"getRoleAdmin(bytes32)":"248a9ca3","giveCallPermission(address,string,address)":"584f6b60","grantRole(bytes32,address)":"2f2ff15d","hasPermission(address,address,string)":"82bfd0f0","hasRole(bytes32,address)":"91d14854","isAllowedToCall(address,string)":"18c5e8ab","renounceRole(bytes32,address)":"36568abe","revokeCallPermission(address,string,address)":"545f7a32","revokeRole(bytes32,address)":"d547741f"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"functionSig\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"accountToPermit\",\"type\":\"address\"}],\"name\":\"giveCallPermission\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"functionSig\",\"type\":\"string\"}],\"name\":\"hasPermission\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"functionSig\",\"type\":\"string\"}],\"name\":\"isAllowedToCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"functionSig\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"accountToRevoke\",\"type\":\"address\"}],\"name\":\"revokeCallPermission\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"}},\"title\":\"IAccessControlManagerV8\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Interface implemented by the `AccessControlManagerV8` contract.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Governance/IAccessControlManagerV8.sol\":\"IAccessControlManagerV8\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"contracts/Governance/IAccessControlManagerV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/access/IAccessControl.sol\\\";\\n\\n/**\\n * @title IAccessControlManagerV8\\n * @author Venus\\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\\n */\\ninterface IAccessControlManagerV8 is IAccessControl {\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\\n\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) external;\\n\\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\\n\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xaa29b098440d0b3a131c5ecdf25ce548790c1b5ac7bf9b5c0264b6af6f7a1e0b\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"notice":"Interface implemented by the `AccessControlManagerV8` contract.","version":1}}},"contracts/Governance/TimelockV8.sol":{"TimelockV8":{"abi":[{"inputs":[{"internalType":"address","name":"admin_","type":"address"},{"internalType":"uint256","name":"delay_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"txHash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"string","name":"signature","type":"string"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"eta","type":"uint256"}],"name":"CancelTransaction","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"txHash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"string","name":"signature","type":"string"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"eta","type":"uint256"}],"name":"ExecuteTransaction","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldAdmin","type":"address"},{"indexed":true,"internalType":"address","name":"newAdmin","type":"address"}],"name":"NewAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"oldDelay","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"newDelay","type":"uint256"}],"name":"NewDelay","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newPendingAdmin","type":"address"}],"name":"NewPendingAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"txHash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"string","name":"signature","type":"string"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"eta","type":"uint256"}],"name":"QueueTransaction","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"GRACE_PERIOD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAXIMUM_DELAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MINIMUM_DELAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"signature","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"eta","type":"uint256"}],"name":"cancelTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"delay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"signature","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"eta","type":"uint256"}],"name":"executeTransaction","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pendingAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"signature","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"eta","type":"uint256"}],"name":"queueTransaction","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"queuedTransactions","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"delay_","type":"uint256"}],"name":"setDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingAdmin_","type":"address"}],"name":"setPendingAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Venus","kind":"dev","methods":{"GRACE_PERIOD()":{"returns":{"_0":"The duration of the grace period, specified as a uint256 value."}},"MAXIMUM_DELAY()":{"returns":{"_0":"Maximum delay"}},"MINIMUM_DELAY()":{"returns":{"_0":"Minimum delay"}},"acceptAdmin()":{"custom:access":"Sender must be pending admin","custom:event":"Emit NewAdmin with old and new admin"},"cancelTransaction(address,uint256,string,bytes,uint256)":{"custom:access":"Sender must be admin","custom:event":"Emit CancelTransaction","params":{"data":"Arguments to be passed to the function when called","eta":"Timestamp after which the transaction can be executed","signature":"Signature of the function to be called","target":"Address of the contract with the method to be called","value":"Native token amount sent with the transaction"}},"executeTransaction(address,uint256,string,bytes,uint256)":{"custom:access":"Sender must be admin","custom:event":"Emit ExecuteTransaction","params":{"data":"Arguments to be passed to the function when called","eta":"Timestamp after which the transaction can be executed","signature":"Signature of the function to be called","target":"Address of the contract with the method to be called","value":"Native token amount sent with the transaction"},"returns":{"_0":"Result of function call"}},"queueTransaction(address,uint256,string,bytes,uint256)":{"custom:access":"Sender must be admin","custom:event":"Emit QueueTransaction","params":{"data":"Arguments to be passed to the function when called","eta":"Timestamp after which the transaction can be executed","signature":"Signature of the function to be called","target":"Address of the contract with the method to be called","value":"Native token amount sent with the transaction"},"returns":{"_0":"Hash of the queued transaction"}},"setDelay(uint256)":{"custom:access":"Sender must be Timelock itself","custom:event":"Emit NewDelay with old and new delay","params":{"delay_":"The new delay period for the transaction queue"}},"setPendingAdmin(address)":{"custom:access":"Sender must be Timelock contract itself or admin","custom:event":"Emit NewPendingAdmin with new pending admin","params":{"pendingAdmin_":"Address of the proposed admin"}}},"title":"TimelockV8","version":1},"evm":{"bytecode":{"functionDebugData":{"@MAXIMUM_DELAY_14108":{"entryPoint":null,"id":14108,"parameterSlots":0,"returnSlots":1},"@MINIMUM_DELAY_14099":{"entryPoint":null,"id":14099,"parameterSlots":0,"returnSlots":1},"@_14034":{"entryPoint":null,"id":14034,"parameterSlots":2,"returnSlots":0},"@ensureNonzeroAddress_10945":{"entryPoint":343,"id":10945,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_addresst_uint256_fromMemory":{"entryPoint":385,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_stringliteral_22e01fcea901594c01d464b6c5f076874d475b75affb5ba136b9bcf9c2e8cf2f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_762218313af08cfa6c9b8eda00385502eefaa529f9945044fd2dee54ff5cefe0__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:1216:97","nodeType":"YulBlock","src":"0:1216:97","statements":[{"nativeSrc":"6:3:97","nodeType":"YulBlock","src":"6:3:97","statements":[]},{"body":{"nativeSrc":"112:253:97","nodeType":"YulBlock","src":"112:253:97","statements":[{"body":{"nativeSrc":"158:16:97","nodeType":"YulBlock","src":"158:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"167:1:97","nodeType":"YulLiteral","src":"167:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"170:1:97","nodeType":"YulLiteral","src":"170:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"160:6:97","nodeType":"YulIdentifier","src":"160:6:97"},"nativeSrc":"160:12:97","nodeType":"YulFunctionCall","src":"160:12:97"},"nativeSrc":"160:12:97","nodeType":"YulExpressionStatement","src":"160:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"133:7:97","nodeType":"YulIdentifier","src":"133:7:97"},{"name":"headStart","nativeSrc":"142:9:97","nodeType":"YulIdentifier","src":"142:9:97"}],"functionName":{"name":"sub","nativeSrc":"129:3:97","nodeType":"YulIdentifier","src":"129:3:97"},"nativeSrc":"129:23:97","nodeType":"YulFunctionCall","src":"129:23:97"},{"kind":"number","nativeSrc":"154:2:97","nodeType":"YulLiteral","src":"154:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"125:3:97","nodeType":"YulIdentifier","src":"125:3:97"},"nativeSrc":"125:32:97","nodeType":"YulFunctionCall","src":"125:32:97"},"nativeSrc":"122:52:97","nodeType":"YulIf","src":"122:52:97"},{"nativeSrc":"183:29:97","nodeType":"YulVariableDeclaration","src":"183:29:97","value":{"arguments":[{"name":"headStart","nativeSrc":"202:9:97","nodeType":"YulIdentifier","src":"202:9:97"}],"functionName":{"name":"mload","nativeSrc":"196:5:97","nodeType":"YulIdentifier","src":"196:5:97"},"nativeSrc":"196:16:97","nodeType":"YulFunctionCall","src":"196:16:97"},"variables":[{"name":"value","nativeSrc":"187:5:97","nodeType":"YulTypedName","src":"187:5:97","type":""}]},{"body":{"nativeSrc":"275:16:97","nodeType":"YulBlock","src":"275:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"284:1:97","nodeType":"YulLiteral","src":"284:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"287:1:97","nodeType":"YulLiteral","src":"287:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"277:6:97","nodeType":"YulIdentifier","src":"277:6:97"},"nativeSrc":"277:12:97","nodeType":"YulFunctionCall","src":"277:12:97"},"nativeSrc":"277:12:97","nodeType":"YulExpressionStatement","src":"277:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"234:5:97","nodeType":"YulIdentifier","src":"234:5:97"},{"arguments":[{"name":"value","nativeSrc":"245:5:97","nodeType":"YulIdentifier","src":"245:5:97"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"260:3:97","nodeType":"YulLiteral","src":"260:3:97","type":"","value":"160"},{"kind":"number","nativeSrc":"265:1:97","nodeType":"YulLiteral","src":"265:1:97","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"256:3:97","nodeType":"YulIdentifier","src":"256:3:97"},"nativeSrc":"256:11:97","nodeType":"YulFunctionCall","src":"256:11:97"},{"kind":"number","nativeSrc":"269:1:97","nodeType":"YulLiteral","src":"269:1:97","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"252:3:97","nodeType":"YulIdentifier","src":"252:3:97"},"nativeSrc":"252:19:97","nodeType":"YulFunctionCall","src":"252:19:97"}],"functionName":{"name":"and","nativeSrc":"241:3:97","nodeType":"YulIdentifier","src":"241:3:97"},"nativeSrc":"241:31:97","nodeType":"YulFunctionCall","src":"241:31:97"}],"functionName":{"name":"eq","nativeSrc":"231:2:97","nodeType":"YulIdentifier","src":"231:2:97"},"nativeSrc":"231:42:97","nodeType":"YulFunctionCall","src":"231:42:97"}],"functionName":{"name":"iszero","nativeSrc":"224:6:97","nodeType":"YulIdentifier","src":"224:6:97"},"nativeSrc":"224:50:97","nodeType":"YulFunctionCall","src":"224:50:97"},"nativeSrc":"221:70:97","nodeType":"YulIf","src":"221:70:97"},{"nativeSrc":"300:15:97","nodeType":"YulAssignment","src":"300:15:97","value":{"name":"value","nativeSrc":"310:5:97","nodeType":"YulIdentifier","src":"310:5:97"},"variableNames":[{"name":"value0","nativeSrc":"300:6:97","nodeType":"YulIdentifier","src":"300:6:97"}]},{"nativeSrc":"324:35:97","nodeType":"YulAssignment","src":"324:35:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"344:9:97","nodeType":"YulIdentifier","src":"344:9:97"},{"kind":"number","nativeSrc":"355:2:97","nodeType":"YulLiteral","src":"355:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"340:3:97","nodeType":"YulIdentifier","src":"340:3:97"},"nativeSrc":"340:18:97","nodeType":"YulFunctionCall","src":"340:18:97"}],"functionName":{"name":"mload","nativeSrc":"334:5:97","nodeType":"YulIdentifier","src":"334:5:97"},"nativeSrc":"334:25:97","nodeType":"YulFunctionCall","src":"334:25:97"},"variableNames":[{"name":"value1","nativeSrc":"324:6:97","nodeType":"YulIdentifier","src":"324:6:97"}]}]},"name":"abi_decode_tuple_t_addresst_uint256_fromMemory","nativeSrc":"14:351:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"70:9:97","nodeType":"YulTypedName","src":"70:9:97","type":""},{"name":"dataEnd","nativeSrc":"81:7:97","nodeType":"YulTypedName","src":"81:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"93:6:97","nodeType":"YulTypedName","src":"93:6:97","type":""},{"name":"value1","nativeSrc":"101:6:97","nodeType":"YulTypedName","src":"101:6:97","type":""}],"src":"14:351:97"},{"body":{"nativeSrc":"544:245:97","nodeType":"YulBlock","src":"544:245:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"561:9:97","nodeType":"YulIdentifier","src":"561:9:97"},{"kind":"number","nativeSrc":"572:2:97","nodeType":"YulLiteral","src":"572:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"554:6:97","nodeType":"YulIdentifier","src":"554:6:97"},"nativeSrc":"554:21:97","nodeType":"YulFunctionCall","src":"554:21:97"},"nativeSrc":"554:21:97","nodeType":"YulExpressionStatement","src":"554:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"595:9:97","nodeType":"YulIdentifier","src":"595:9:97"},{"kind":"number","nativeSrc":"606:2:97","nodeType":"YulLiteral","src":"606:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"591:3:97","nodeType":"YulIdentifier","src":"591:3:97"},"nativeSrc":"591:18:97","nodeType":"YulFunctionCall","src":"591:18:97"},{"kind":"number","nativeSrc":"611:2:97","nodeType":"YulLiteral","src":"611:2:97","type":"","value":"55"}],"functionName":{"name":"mstore","nativeSrc":"584:6:97","nodeType":"YulIdentifier","src":"584:6:97"},"nativeSrc":"584:30:97","nodeType":"YulFunctionCall","src":"584:30:97"},"nativeSrc":"584:30:97","nodeType":"YulExpressionStatement","src":"584:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"634:9:97","nodeType":"YulIdentifier","src":"634:9:97"},{"kind":"number","nativeSrc":"645:2:97","nodeType":"YulLiteral","src":"645:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"630:3:97","nodeType":"YulIdentifier","src":"630:3:97"},"nativeSrc":"630:18:97","nodeType":"YulFunctionCall","src":"630:18:97"},{"hexValue":"54696d656c6f636b3a3a636f6e7374727563746f723a2044656c6179206d7573","kind":"string","nativeSrc":"650:34:97","nodeType":"YulLiteral","src":"650:34:97","type":"","value":"Timelock::constructor: Delay mus"}],"functionName":{"name":"mstore","nativeSrc":"623:6:97","nodeType":"YulIdentifier","src":"623:6:97"},"nativeSrc":"623:62:97","nodeType":"YulFunctionCall","src":"623:62:97"},"nativeSrc":"623:62:97","nodeType":"YulExpressionStatement","src":"623:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"705:9:97","nodeType":"YulIdentifier","src":"705:9:97"},{"kind":"number","nativeSrc":"716:2:97","nodeType":"YulLiteral","src":"716:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"701:3:97","nodeType":"YulIdentifier","src":"701:3:97"},"nativeSrc":"701:18:97","nodeType":"YulFunctionCall","src":"701:18:97"},{"hexValue":"7420657863656564206d696e696d756d2064656c61792e","kind":"string","nativeSrc":"721:25:97","nodeType":"YulLiteral","src":"721:25:97","type":"","value":"t exceed minimum delay."}],"functionName":{"name":"mstore","nativeSrc":"694:6:97","nodeType":"YulIdentifier","src":"694:6:97"},"nativeSrc":"694:53:97","nodeType":"YulFunctionCall","src":"694:53:97"},"nativeSrc":"694:53:97","nodeType":"YulExpressionStatement","src":"694:53:97"},{"nativeSrc":"756:27:97","nodeType":"YulAssignment","src":"756:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"768:9:97","nodeType":"YulIdentifier","src":"768:9:97"},{"kind":"number","nativeSrc":"779:3:97","nodeType":"YulLiteral","src":"779:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"764:3:97","nodeType":"YulIdentifier","src":"764:3:97"},"nativeSrc":"764:19:97","nodeType":"YulFunctionCall","src":"764:19:97"},"variableNames":[{"name":"tail","nativeSrc":"756:4:97","nodeType":"YulIdentifier","src":"756:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_22e01fcea901594c01d464b6c5f076874d475b75affb5ba136b9bcf9c2e8cf2f__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"370:419:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"521:9:97","nodeType":"YulTypedName","src":"521:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"535:4:97","nodeType":"YulTypedName","src":"535:4:97","type":""}],"src":"370:419:97"},{"body":{"nativeSrc":"968:246:97","nodeType":"YulBlock","src":"968:246:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"985:9:97","nodeType":"YulIdentifier","src":"985:9:97"},{"kind":"number","nativeSrc":"996:2:97","nodeType":"YulLiteral","src":"996:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"978:6:97","nodeType":"YulIdentifier","src":"978:6:97"},"nativeSrc":"978:21:97","nodeType":"YulFunctionCall","src":"978:21:97"},"nativeSrc":"978:21:97","nodeType":"YulExpressionStatement","src":"978:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1019:9:97","nodeType":"YulIdentifier","src":"1019:9:97"},{"kind":"number","nativeSrc":"1030:2:97","nodeType":"YulLiteral","src":"1030:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1015:3:97","nodeType":"YulIdentifier","src":"1015:3:97"},"nativeSrc":"1015:18:97","nodeType":"YulFunctionCall","src":"1015:18:97"},{"kind":"number","nativeSrc":"1035:2:97","nodeType":"YulLiteral","src":"1035:2:97","type":"","value":"56"}],"functionName":{"name":"mstore","nativeSrc":"1008:6:97","nodeType":"YulIdentifier","src":"1008:6:97"},"nativeSrc":"1008:30:97","nodeType":"YulFunctionCall","src":"1008:30:97"},"nativeSrc":"1008:30:97","nodeType":"YulExpressionStatement","src":"1008:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1058:9:97","nodeType":"YulIdentifier","src":"1058:9:97"},{"kind":"number","nativeSrc":"1069:2:97","nodeType":"YulLiteral","src":"1069:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1054:3:97","nodeType":"YulIdentifier","src":"1054:3:97"},"nativeSrc":"1054:18:97","nodeType":"YulFunctionCall","src":"1054:18:97"},{"hexValue":"54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e","kind":"string","nativeSrc":"1074:34:97","nodeType":"YulLiteral","src":"1074:34:97","type":"","value":"Timelock::setDelay: Delay must n"}],"functionName":{"name":"mstore","nativeSrc":"1047:6:97","nodeType":"YulIdentifier","src":"1047:6:97"},"nativeSrc":"1047:62:97","nodeType":"YulFunctionCall","src":"1047:62:97"},"nativeSrc":"1047:62:97","nodeType":"YulExpressionStatement","src":"1047:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1129:9:97","nodeType":"YulIdentifier","src":"1129:9:97"},{"kind":"number","nativeSrc":"1140:2:97","nodeType":"YulLiteral","src":"1140:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"1125:3:97","nodeType":"YulIdentifier","src":"1125:3:97"},"nativeSrc":"1125:18:97","nodeType":"YulFunctionCall","src":"1125:18:97"},{"hexValue":"6f7420657863656564206d6178696d756d2064656c61792e","kind":"string","nativeSrc":"1145:26:97","nodeType":"YulLiteral","src":"1145:26:97","type":"","value":"ot exceed maximum delay."}],"functionName":{"name":"mstore","nativeSrc":"1118:6:97","nodeType":"YulIdentifier","src":"1118:6:97"},"nativeSrc":"1118:54:97","nodeType":"YulFunctionCall","src":"1118:54:97"},"nativeSrc":"1118:54:97","nodeType":"YulExpressionStatement","src":"1118:54:97"},{"nativeSrc":"1181:27:97","nodeType":"YulAssignment","src":"1181:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1193:9:97","nodeType":"YulIdentifier","src":"1193:9:97"},{"kind":"number","nativeSrc":"1204:3:97","nodeType":"YulLiteral","src":"1204:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"1189:3:97","nodeType":"YulIdentifier","src":"1189:3:97"},"nativeSrc":"1189:19:97","nodeType":"YulFunctionCall","src":"1189:19:97"},"variableNames":[{"name":"tail","nativeSrc":"1181:4:97","nodeType":"YulIdentifier","src":"1181:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_762218313af08cfa6c9b8eda00385502eefaa529f9945044fd2dee54ff5cefe0__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"794:420:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"945:9:97","nodeType":"YulTypedName","src":"945:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"959:4:97","nodeType":"YulTypedName","src":"959:4:97","type":""}],"src":"794:420:97"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_addresst_uint256_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n        value0 := value\n        value1 := mload(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_stringliteral_22e01fcea901594c01d464b6c5f076874d475b75affb5ba136b9bcf9c2e8cf2f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 55)\n        mstore(add(headStart, 64), \"Timelock::constructor: Delay mus\")\n        mstore(add(headStart, 96), \"t exceed minimum delay.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_762218313af08cfa6c9b8eda00385502eefaa529f9945044fd2dee54ff5cefe0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 56)\n        mstore(add(headStart, 64), \"Timelock::setDelay: Delay must n\")\n        mstore(add(headStart, 96), \"ot exceed maximum delay.\")\n        tail := add(headStart, 128)\n    }\n}","id":97,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b5060405161154338038061154383398101604081905261002f91610181565b610e108110156100ac5760405162461bcd60e51b815260206004820152603760248201527f54696d656c6f636b3a3a636f6e7374727563746f723a2044656c6179206d757360448201527f7420657863656564206d696e696d756d2064656c61792e00000000000000000060648201526084015b60405180910390fd5b62278d008111156101255760405162461bcd60e51b815260206004820152603860248201527f54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e60448201527f6f7420657863656564206d6178696d756d2064656c61792e000000000000000060648201526084016100a3565b61012e82610157565b600080546001600160a01b0319166001600160a01b0393909316929092179091556002556101bb565b6001600160a01b03811661017e576040516342bcdf7f60e11b815260040160405180910390fd5b50565b6000806040838503121561019457600080fd5b82516001600160a01b03811681146101ab57600080fd5b6020939093015192949293505050565b611379806101ca6000396000f3fe6080604052600436106100c95760003560e01c80636a42b8f811610079578063c1a287e211610056578063c1a287e214610217578063e177246e1461022d578063f2b065371461024d578063f851a4401461028d57005b80636a42b8f8146101d65780637d645fab146101ec578063b1b43ae51461020257005b80633a66f901116100a75780633a66f901146101685780634dd18bf514610196578063591fcdfe146101b657005b80630825f38f146100cb5780630e18b681146101015780632678224714610116575b005b3480156100d757600080fd5b506100eb6100e6366004611070565b6102ba565b6040516100f89190611127565b60405180910390f35b34801561010d57600080fd5b506100c961074a565b34801561012257600080fd5b506001546101439073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100f8565b34801561017457600080fd5b50610188610183366004611070565b610854565b6040519081526020016100f8565b3480156101a257600080fd5b506100c96101b1366004611178565b610b04565b3480156101c257600080fd5b506100c96101d1366004611070565b610c13565b3480156101e257600080fd5b5061018860025481565b3480156101f857600080fd5b5062278d00610188565b34801561020e57600080fd5b50610e10610188565b34801561022357600080fd5b5062127500610188565b34801561023957600080fd5b506100c961024836600461119a565b610e14565b34801561025957600080fd5b5061027d61026836600461119a565b60036020526000908152604090205460ff1681565b60405190151581526020016100f8565b34801561029957600080fd5b506000546101439073ffffffffffffffffffffffffffffffffffffffff1681565b60005460609073ffffffffffffffffffffffffffffffffffffffff16331461034f5760405162461bcd60e51b815260206004820152603860248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20436160448201527f6c6c206d75737420636f6d652066726f6d2061646d696e2e000000000000000060648201526084015b60405180910390fd5b60008888888888888860405160200161036e97969594939291906111fc565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291815281516020928301206000818152600390935291205490915060ff166104295760405162461bcd60e51b815260206004820152603d60248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20547260448201527f616e73616374696f6e206861736e2774206265656e207175657565642e0000006064820152608401610346565b824210156104c55760405162461bcd60e51b815260206004820152604560248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20547260448201527f616e73616374696f6e206861736e2774207375727061737365642074696d652060648201527f6c6f636b2e000000000000000000000000000000000000000000000000000000608482015260a401610346565b6104d2621275008461125a565b4211156105475760405162461bcd60e51b815260206004820152603360248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20547260448201527f616e73616374696f6e206973207374616c652e000000000000000000000000006064820152608401610346565b600081815260036020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556060908790036105c45785858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293506105ff92505050565b87876040516105d492919061129a565b6040519081900381206105ed91889088906020016112aa565b60405160208183030381529060405290505b6000808b73ffffffffffffffffffffffffffffffffffffffff168b8460405161062891906112e6565b60006040518083038185875af1925050503d8060008114610665576040519150601f19603f3d011682016040523d82523d6000602084013e61066a565b606091505b5091509150816106e25760405162461bcd60e51b815260206004820152603d60248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20547260448201527f616e73616374696f6e20657865637574696f6e2072657665727465642e0000006064820152608401610346565b8b73ffffffffffffffffffffffffffffffffffffffff16847fa560e3198060a2f10670c1ec5b403077ea6ae93ca8de1c32b451dc1a943cd6e78d8d8d8d8d8d60405161073396959493929190611302565b60405180910390a39b9a5050505050505050505050565b60015473ffffffffffffffffffffffffffffffffffffffff1633146107d75760405162461bcd60e51b815260206004820152603860248201527f54696d656c6f636b3a3a61636365707441646d696e3a2043616c6c206d75737460448201527f20636f6d652066726f6d2070656e64696e6741646d696e2e00000000000000006064820152608401610346565b60008054604051339273ffffffffffffffffffffffffffffffffffffffff909216917ff9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc91a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081163317909155600180549091169055565b6000805473ffffffffffffffffffffffffffffffffffffffff1633146108e25760405162461bcd60e51b815260206004820152603660248201527f54696d656c6f636b3a3a71756575655472616e73616374696f6e3a2043616c6c60448201527f206d75737420636f6d652066726f6d2061646d696e2e000000000000000000006064820152608401610346565b6002546108ef904261125a565b82101561098a5760405162461bcd60e51b815260206004820152604960248201527f54696d656c6f636b3a3a71756575655472616e73616374696f6e3a204573746960448201527f6d6174656420657865637574696f6e20626c6f636b206d75737420736174697360648201527f66792064656c61792e0000000000000000000000000000000000000000000000608482015260a401610346565b6000888888888888886040516020016109a997969594939291906111fc565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291815281516020928301206000818152600390935291205490915060ff1615610a655760405162461bcd60e51b815260206004820152603760248201527f54696d656c6f636b3a3a71756575655472616e73616374696f6e3a207472616e60448201527f73616374696f6e20616c7265616479207175657565642e0000000000000000006064820152608401610346565b6000818152600360205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555173ffffffffffffffffffffffffffffffffffffffff8a169082907f76e2796dc3a81d57b0e8504b647febcbeeb5f4af818e164f11eef8131a6a763f90610af0908c908c908c908c908c908c90611302565b60405180910390a398975050505050505050565b33301480610b29575060005473ffffffffffffffffffffffffffffffffffffffff1633145b610b9b5760405162461bcd60e51b815260206004820152603860248201527f54696d656c6f636b3a3a73657450656e64696e6741646d696e3a2043616c6c2060448201527f6d75737420636f6d652066726f6d2054696d656c6f636b2e00000000000000006064820152608401610346565b610ba481610fae565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f69d78e38a01985fbb1462961809b4b2d65531bc93b2b94037f3334b82ca4a75690600090a250565b60005473ffffffffffffffffffffffffffffffffffffffff163314610ca05760405162461bcd60e51b815260206004820152603760248201527f54696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a2043616c60448201527f6c206d75737420636f6d652066726f6d2061646d696e2e0000000000000000006064820152608401610346565b600087878787878787604051602001610cbf97969594939291906111fc565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291815281516020928301206000818152600390935291205490915060ff16610d7a5760405162461bcd60e51b815260206004820152603b60248201527f54696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a2074726160448201527f6e73616374696f6e206973206e6f7420717565756564207965742e00000000006064820152608401610346565b6000818152600360205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555173ffffffffffffffffffffffffffffffffffffffff89169082907f2fffc091a501fd91bfbff27141450d3acb40fb8e6d8382b243ec7a812a3aaf8790610e02908b908b908b908b908b908b90611302565b60405180910390a35050505050505050565b333014610e895760405162461bcd60e51b815260206004820152603160248201527f54696d656c6f636b3a3a73657444656c61793a2043616c6c206d75737420636f60448201527f6d652066726f6d2054696d656c6f636b2e0000000000000000000000000000006064820152608401610346565b610e10811015610f015760405162461bcd60e51b815260206004820152603460248201527f54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206560448201527f7863656564206d696e696d756d2064656c61792e0000000000000000000000006064820152608401610346565b62278d00811115610f7a5760405162461bcd60e51b815260206004820152603860248201527f54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e60448201527f6f7420657863656564206d6178696d756d2064656c61792e00000000000000006064820152608401610346565b6002546040518291907fed0229422af39d4d7d33f7a27d31d6f5cb20ec628293da58dd6e8a528ed466be90600090a3600255565b73ffffffffffffffffffffffffffffffffffffffff8116610ffb576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b803573ffffffffffffffffffffffffffffffffffffffff8116811461102257600080fd5b919050565b60008083601f84011261103957600080fd5b50813567ffffffffffffffff81111561105157600080fd5b60208301915083602082850101111561106957600080fd5b9250929050565b600080600080600080600060a0888a03121561108b57600080fd5b61109488610ffe565b965060208801359550604088013567ffffffffffffffff808211156110b857600080fd5b6110c48b838c01611027565b909750955060608a01359150808211156110dd57600080fd5b506110ea8a828b01611027565b989b979a50959894979596608090950135949350505050565b60005b8381101561111e578181015183820152602001611106565b50506000910152565b6020815260008251806020840152611146816040850160208701611103565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60006020828403121561118a57600080fd5b61119382610ffe565b9392505050565b6000602082840312156111ac57600080fd5b5035919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8816815286602082015260a06040820152600061123260a0830187896111b3565b82810360608401526112458186886111b3565b91505082608083015298975050505050505050565b80820180821115611294577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b92915050565b8183823760009101908152919050565b7fffffffff0000000000000000000000000000000000000000000000000000000084168152818360048301376000910160040190815292915050565b600082516112f8818460208701611103565b9190910192915050565b86815260806020820152600061131c6080830187896111b3565b828103604084015261132f8186886111b3565b91505082606083015297965050505050505056fea2646970667358221220c07d87e3cfbbfd2d102119c1681bbf90ee223afc956a756bab7d170887b6fcbd64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x1543 CODESIZE SUB DUP1 PUSH2 0x1543 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x181 JUMP JUMPDEST PUSH2 0xE10 DUP2 LT ISZERO PUSH2 0xAC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x37 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A636F6E7374727563746F723A2044656C6179206D7573 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7420657863656564206D696E696D756D2064656C61792E000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x278D00 DUP2 GT ISZERO PUSH2 0x125 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A73657444656C61793A2044656C6179206D757374206E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F7420657863656564206D6178696D756D2064656C61792E0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA3 JUMP JUMPDEST PUSH2 0x12E DUP3 PUSH2 0x157 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x2 SSTORE PUSH2 0x1BB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x17E JUMPI PUSH1 0x40 MLOAD PUSH4 0x42BCDF7F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x194 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD MLOAD SWAP3 SWAP5 SWAP3 SWAP4 POP POP POP JUMP JUMPDEST PUSH2 0x1379 DUP1 PUSH2 0x1CA PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xC9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6A42B8F8 GT PUSH2 0x79 JUMPI DUP1 PUSH4 0xC1A287E2 GT PUSH2 0x56 JUMPI DUP1 PUSH4 0xC1A287E2 EQ PUSH2 0x217 JUMPI DUP1 PUSH4 0xE177246E EQ PUSH2 0x22D JUMPI DUP1 PUSH4 0xF2B06537 EQ PUSH2 0x24D JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x28D JUMPI STOP JUMPDEST DUP1 PUSH4 0x6A42B8F8 EQ PUSH2 0x1D6 JUMPI DUP1 PUSH4 0x7D645FAB EQ PUSH2 0x1EC JUMPI DUP1 PUSH4 0xB1B43AE5 EQ PUSH2 0x202 JUMPI STOP JUMPDEST DUP1 PUSH4 0x3A66F901 GT PUSH2 0xA7 JUMPI DUP1 PUSH4 0x3A66F901 EQ PUSH2 0x168 JUMPI DUP1 PUSH4 0x4DD18BF5 EQ PUSH2 0x196 JUMPI DUP1 PUSH4 0x591FCDFE EQ PUSH2 0x1B6 JUMPI STOP JUMPDEST DUP1 PUSH4 0x825F38F EQ PUSH2 0xCB JUMPI DUP1 PUSH4 0xE18B681 EQ PUSH2 0x101 JUMPI DUP1 PUSH4 0x26782247 EQ PUSH2 0x116 JUMPI JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xEB PUSH2 0xE6 CALLDATASIZE PUSH1 0x4 PUSH2 0x1070 JUMP JUMPDEST PUSH2 0x2BA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF8 SWAP2 SWAP1 PUSH2 0x1127 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x10D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC9 PUSH2 0x74A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x122 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x143 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x174 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x188 PUSH2 0x183 CALLDATASIZE PUSH1 0x4 PUSH2 0x1070 JUMP JUMPDEST PUSH2 0x854 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC9 PUSH2 0x1B1 CALLDATASIZE PUSH1 0x4 PUSH2 0x1178 JUMP JUMPDEST PUSH2 0xB04 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC9 PUSH2 0x1D1 CALLDATASIZE PUSH1 0x4 PUSH2 0x1070 JUMP JUMPDEST PUSH2 0xC13 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x188 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x278D00 PUSH2 0x188 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE10 PUSH2 0x188 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x223 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x127500 PUSH2 0x188 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x239 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC9 PUSH2 0x248 CALLDATASIZE PUSH1 0x4 PUSH2 0x119A JUMP JUMPDEST PUSH2 0xE14 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x259 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27D PUSH2 0x268 CALLDATASIZE PUSH1 0x4 PUSH2 0x119A JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x299 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x143 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x60 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x34F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A657865637574655472616E73616374696F6E3A204361 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C6C206D75737420636F6D652066726F6D2061646D696E2E0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x36E SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x11FC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 SWAP1 SWAP4 MSTORE SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND PUSH2 0x429 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A657865637574655472616E73616374696F6E3A205472 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616E73616374696F6E206861736E2774206265656E207175657565642E000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x346 JUMP JUMPDEST DUP3 TIMESTAMP LT ISZERO PUSH2 0x4C5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A657865637574655472616E73616374696F6E3A205472 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616E73616374696F6E206861736E2774207375727061737365642074696D6520 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6C6F636B2E000000000000000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0x346 JUMP JUMPDEST PUSH2 0x4D2 PUSH3 0x127500 DUP5 PUSH2 0x125A JUMP JUMPDEST TIMESTAMP GT ISZERO PUSH2 0x547 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x33 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A657865637574655472616E73616374696F6E3A205472 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616E73616374696F6E206973207374616C652E00000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x346 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND SWAP1 SSTORE PUSH1 0x60 SWAP1 DUP8 SWAP1 SUB PUSH2 0x5C4 JUMPI DUP6 DUP6 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP3 SWAP4 POP PUSH2 0x5FF SWAP3 POP POP POP JUMP JUMPDEST DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0x5D4 SWAP3 SWAP2 SWAP1 PUSH2 0x129A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 PUSH2 0x5ED SWAP2 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x20 ADD PUSH2 0x12AA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP JUMPDEST PUSH1 0x0 DUP1 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP12 DUP5 PUSH1 0x40 MLOAD PUSH2 0x628 SWAP2 SWAP1 PUSH2 0x12E6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x665 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x66A JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x6E2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A657865637574655472616E73616374696F6E3A205472 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616E73616374696F6E20657865637574696F6E2072657665727465642E000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x346 JUMP JUMPDEST DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0xA560E3198060A2F10670C1EC5B403077EA6AE93CA8DE1C32B451DC1A943CD6E7 DUP14 DUP14 DUP14 DUP14 DUP14 DUP14 PUSH1 0x40 MLOAD PUSH2 0x733 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x7D7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A61636365707441646D696E3A2043616C6C206D757374 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x20636F6D652066726F6D2070656E64696E6741646D696E2E0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x346 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD CALLER SWAP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 PUSH32 0xF9FFABCA9C8276E99321725BCB43FB076A6C66A54B7F21C4E8146D8519B417DC SWAP2 LOG3 PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP1 DUP2 AND CALLER OR SWAP1 SWAP2 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x8E2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x36 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A71756575655472616E73616374696F6E3A2043616C6C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x206D75737420636F6D652066726F6D2061646D696E2E00000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x346 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x8EF SWAP1 TIMESTAMP PUSH2 0x125A JUMP JUMPDEST DUP3 LT ISZERO PUSH2 0x98A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x49 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A71756575655472616E73616374696F6E3A2045737469 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6D6174656420657865637574696F6E20626C6F636B206D757374207361746973 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x66792064656C61792E0000000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0x346 JUMP JUMPDEST PUSH1 0x0 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x9A9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x11FC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 SWAP1 SWAP4 MSTORE SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND ISZERO PUSH2 0xA65 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x37 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A71756575655472616E73616374696F6E3A207472616E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x73616374696F6E20616C7265616479207175657565642E000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x346 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND PUSH1 0x1 OR SWAP1 SSTORE MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP11 AND SWAP1 DUP3 SWAP1 PUSH32 0x76E2796DC3A81D57B0E8504B647FEBCBEEB5F4AF818E164F11EEF8131A6A763F SWAP1 PUSH2 0xAF0 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST CALLER ADDRESS EQ DUP1 PUSH2 0xB29 JUMPI POP PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ JUMPDEST PUSH2 0xB9B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A73657450656E64696E6741646D696E3A2043616C6C20 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6D75737420636F6D652066726F6D2054696D656C6F636B2E0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x346 JUMP JUMPDEST PUSH2 0xBA4 DUP2 PUSH2 0xFAE JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x69D78E38A01985FBB1462961809B4B2D65531BC93B2B94037F3334B82CA4A756 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0xCA0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x37 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A63616E63656C5472616E73616374696F6E3A2043616C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C206D75737420636F6D652066726F6D2061646D696E2E000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x346 JUMP JUMPDEST PUSH1 0x0 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xCBF SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x11FC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 SWAP1 SWAP4 MSTORE SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND PUSH2 0xD7A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A63616E63656C5472616E73616374696F6E3A20747261 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E73616374696F6E206973206E6F7420717565756564207965742E0000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x346 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND SWAP1 SSTORE MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP10 AND SWAP1 DUP3 SWAP1 PUSH32 0x2FFFC091A501FD91BFBFF27141450D3ACB40FB8E6D8382B243EC7A812A3AAF87 SWAP1 PUSH2 0xE02 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP POP JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0xE89 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A73657444656C61793A2043616C6C206D75737420636F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6D652066726F6D2054696D656C6F636B2E000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x346 JUMP JUMPDEST PUSH2 0xE10 DUP2 LT ISZERO PUSH2 0xF01 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x34 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A73657444656C61793A2044656C6179206D7573742065 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7863656564206D696E696D756D2064656C61792E000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x346 JUMP JUMPDEST PUSH3 0x278D00 DUP2 GT ISZERO PUSH2 0xF7A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A73657444656C61793A2044656C6179206D757374206E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F7420657863656564206D6178696D756D2064656C61792E0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x346 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD DUP3 SWAP2 SWAP1 PUSH32 0xED0229422AF39D4D7D33F7A27D31D6F5CB20EC628293DA58DD6E8A528ED466BE SWAP1 PUSH1 0x0 SWAP1 LOG3 PUSH1 0x2 SSTORE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0xFFB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8579BEFE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x1022 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1039 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1051 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x1069 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x108B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1094 DUP9 PUSH2 0xFFE JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x10B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10C4 DUP12 DUP4 DUP13 ADD PUSH2 0x1027 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP PUSH1 0x60 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x10DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10EA DUP11 DUP3 DUP12 ADD PUSH2 0x1027 JUMP JUMPDEST SWAP9 SWAP12 SWAP8 SWAP11 POP SWAP6 SWAP9 SWAP5 SWAP8 SWAP6 SWAP7 PUSH1 0x80 SWAP1 SWAP6 ADD CALLDATALOAD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x111E JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1106 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x1146 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x1103 JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x118A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1193 DUP3 PUSH2 0xFFE JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x11AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 ADD ADD MSTORE PUSH1 0x0 PUSH1 0x20 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 PUSH1 0x1F DUP5 ADD AND DUP5 ADD ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP9 AND DUP2 MSTORE DUP7 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1232 PUSH1 0xA0 DUP4 ADD DUP8 DUP10 PUSH2 0x11B3 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x1245 DUP2 DUP7 DUP9 PUSH2 0x11B3 JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x80 DUP4 ADD MSTORE SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x1294 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP5 AND DUP2 MSTORE DUP2 DUP4 PUSH1 0x4 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 ADD PUSH1 0x4 ADD SWAP1 DUP2 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x12F8 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x1103 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP7 DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x131C PUSH1 0x80 DUP4 ADD DUP8 DUP10 PUSH2 0x11B3 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x132F DUP2 DUP7 DUP9 PUSH2 0x11B3 JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x60 DUP4 ADD MSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC0 PUSH30 0x87E3CFBBFD2D102119C1681BBF90EE223AFC956A756BAB7D170887B6FCBD PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"429:9438:59:-:0;;;2426:345;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;709:7;2488:6;:25;;2480:93;;;;-1:-1:-1;;;2480:93:59;;572:2:97;2480:93:59;;;554:21:97;611:2;591:18;;;584:30;650:34;630:18;;;623:62;721:25;701:18;;;694:53;764:19;;2480:93:59;;;;;;;;;849:7;2591:6;:25;;2583:94;;;;-1:-1:-1;;;2583:94:59;;996:2:97;2583:94:59;;;978:21:97;1035:2;1015:18;;;1008:30;1074:34;1054:18;;;1047:62;1145:26;1125:18;;;1118:54;1189:19;;2583:94:59;794:420:97;2583:94:59;2687:28;2708:6;2687:20;:28::i;:::-;2726:5;:14;;-1:-1:-1;;;;;;2726:14:59;-1:-1:-1;;;;;2726:14:59;;;;;;;;;;;2750:5;:14;429:9438;;485:136:47;-1:-1:-1;;;;;548:22:47;;544:75;;589:23;;-1:-1:-1;;;589:23:47;;;;;;;;;;;544:75;485:136;:::o;14:351:97:-;93:6;101;154:2;142:9;133:7;129:23;125:32;122:52;;;170:1;167;160:12;122:52;196:16;;-1:-1:-1;;;;;241:31:97;;231:42;;221:70;;287:1;284;277:12;221:70;355:2;340:18;;;;334:25;310:5;;334:25;;-1:-1:-1;;;14:351:97:o;794:420::-;429:9438:59;;;;;;"},"deployedBytecode":{"functionDebugData":{"@GRACE_PERIOD_14090":{"entryPoint":null,"id":14090,"parameterSlots":0,"returnSlots":1},"@MAXIMUM_DELAY_14108":{"entryPoint":null,"id":14108,"parameterSlots":0,"returnSlots":1},"@MINIMUM_DELAY_14099":{"entryPoint":null,"id":14099,"parameterSlots":0,"returnSlots":1},"@_14038":{"entryPoint":null,"id":14038,"parameterSlots":0,"returnSlots":0},"@acceptAdmin_14139":{"entryPoint":1866,"id":14139,"parameterSlots":0,"returnSlots":0},"@admin_13923":{"entryPoint":null,"id":13923,"parameterSlots":0,"returnSlots":0},"@cancelTransaction_14305":{"entryPoint":3091,"id":14305,"parameterSlots":7,"returnSlots":0},"@delay_13929":{"entryPoint":null,"id":13929,"parameterSlots":0,"returnSlots":0},"@ensureNonzeroAddress_10945":{"entryPoint":4014,"id":10945,"parameterSlots":1,"returnSlots":0},"@executeTransaction_14435":{"entryPoint":698,"id":14435,"parameterSlots":7,"returnSlots":1},"@getBlockTimestamp_14445":{"entryPoint":null,"id":14445,"parameterSlots":0,"returnSlots":1},"@pendingAdmin_13926":{"entryPoint":null,"id":13926,"parameterSlots":0,"returnSlots":0},"@queueTransaction_14247":{"entryPoint":2132,"id":14247,"parameterSlots":7,"returnSlots":1},"@queuedTransactions_13934":{"entryPoint":null,"id":13934,"parameterSlots":0,"returnSlots":0},"@setDelay_14081":{"entryPoint":3604,"id":14081,"parameterSlots":1,"returnSlots":0},"@setPendingAdmin_14174":{"entryPoint":2820,"id":14174,"parameterSlots":1,"returnSlots":0},"abi_decode_address":{"entryPoint":4094,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_string_calldata":{"entryPoint":4135,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address":{"entryPoint":4472,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_uint256t_string_calldata_ptrt_bytes_calldata_ptrt_uint256":{"entryPoint":4208,"id":null,"parameterSlots":2,"returnSlots":7},"abi_decode_tuple_t_bytes32":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":4506,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_string_calldata":{"entryPoint":4531,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_bytes4_t_bytes_calldata_ptr__to_t_bytes4_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":4778,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":4762,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":4838,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_string_calldata_ptr_t_bytes_calldata_ptr_t_uint256__to_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed":{"entryPoint":4604,"id":null,"parameterSlots":8,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":4391,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0cbc65ac44dc8b90b8bc4c38c9c6ad704bfeb2c8170538058496c0e805dfa947__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_135e413b08c779b9b925daaaf6178471ba60ebd33d413d809c76a0d4e8beaf3d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_2c4a83afbdcff2c4ba869dacfa7dabb27b12f774a0707feae827e36773b8166c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_381d72a875dbcf282eb0ce43951c66b6c4d7dadc6fdeb9294add773d09cd1687__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4198c63548ffd3e47f06dc876a374eb662a4ea6ff5509a211e07dd2b49998b1d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5dff9a8bd683a1f8a197320db69edd3e2d2988378442d324202dc24789d949f5__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_762218313af08cfa6c9b8eda00385502eefaa529f9945044fd2dee54ff5cefe0__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7e3bf24eec453753018af1214443c72d8abb3050b249b2b3b9bb2adb04310650__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_a6d22532620e2c2df8ce400b3f4754629da5ed6321258d3add10ae5aba9450b3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b7a0aaea4203d5a5318b76c13dcb2afd3f7e9e71cd6f5f022040411bd080d815__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b9bd2ade56c0bd4d6738b7a39a90e136f8901e8e7945a3d237050075ad6fd749__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c3dc77f6ede7b6195dca0ab15e49736c813ce698624fe501da985707f241d9c7__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c8cfef133518ef6ab39ac5f19562a74f4f875e9130c8117d51f88a557b6e72c9__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d8f8e6fa46b62e55e6ef89f0d71d2a706a902748f37198aeb3e192bf7bca348c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e810dcfb9ec7662fa74f0c58d14b8ca36ebffcb4d6cdf3e54d58e4096597d95d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_string_calldata_ptr_t_bytes_calldata_ptr_t_uint256__to_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed":{"entryPoint":4866,"id":null,"parameterSlots":7,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":4698,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":4355,"id":null,"parameterSlots":3,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:12932:97","nodeType":"YulBlock","src":"0:12932:97","statements":[{"nativeSrc":"6:3:97","nodeType":"YulBlock","src":"6:3:97","statements":[]},{"body":{"nativeSrc":"63:147:97","nodeType":"YulBlock","src":"63:147:97","statements":[{"nativeSrc":"73:29:97","nodeType":"YulAssignment","src":"73:29:97","value":{"arguments":[{"name":"offset","nativeSrc":"95:6:97","nodeType":"YulIdentifier","src":"95:6:97"}],"functionName":{"name":"calldataload","nativeSrc":"82:12:97","nodeType":"YulIdentifier","src":"82:12:97"},"nativeSrc":"82:20:97","nodeType":"YulFunctionCall","src":"82:20:97"},"variableNames":[{"name":"value","nativeSrc":"73:5:97","nodeType":"YulIdentifier","src":"73:5:97"}]},{"body":{"nativeSrc":"188:16:97","nodeType":"YulBlock","src":"188:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"197:1:97","nodeType":"YulLiteral","src":"197:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"200:1:97","nodeType":"YulLiteral","src":"200:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"190:6:97","nodeType":"YulIdentifier","src":"190:6:97"},"nativeSrc":"190:12:97","nodeType":"YulFunctionCall","src":"190:12:97"},"nativeSrc":"190:12:97","nodeType":"YulExpressionStatement","src":"190:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"124:5:97","nodeType":"YulIdentifier","src":"124:5:97"},{"arguments":[{"name":"value","nativeSrc":"135:5:97","nodeType":"YulIdentifier","src":"135:5:97"},{"kind":"number","nativeSrc":"142:42:97","nodeType":"YulLiteral","src":"142:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"131:3:97","nodeType":"YulIdentifier","src":"131:3:97"},"nativeSrc":"131:54:97","nodeType":"YulFunctionCall","src":"131:54:97"}],"functionName":{"name":"eq","nativeSrc":"121:2:97","nodeType":"YulIdentifier","src":"121:2:97"},"nativeSrc":"121:65:97","nodeType":"YulFunctionCall","src":"121:65:97"}],"functionName":{"name":"iszero","nativeSrc":"114:6:97","nodeType":"YulIdentifier","src":"114:6:97"},"nativeSrc":"114:73:97","nodeType":"YulFunctionCall","src":"114:73:97"},"nativeSrc":"111:93:97","nodeType":"YulIf","src":"111:93:97"}]},"name":"abi_decode_address","nativeSrc":"14:196:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"42:6:97","nodeType":"YulTypedName","src":"42:6:97","type":""}],"returnVariables":[{"name":"value","nativeSrc":"53:5:97","nodeType":"YulTypedName","src":"53:5:97","type":""}],"src":"14:196:97"},{"body":{"nativeSrc":"288:275:97","nodeType":"YulBlock","src":"288:275:97","statements":[{"body":{"nativeSrc":"337:16:97","nodeType":"YulBlock","src":"337:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"346:1:97","nodeType":"YulLiteral","src":"346:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"349:1:97","nodeType":"YulLiteral","src":"349:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"339:6:97","nodeType":"YulIdentifier","src":"339:6:97"},"nativeSrc":"339:12:97","nodeType":"YulFunctionCall","src":"339:12:97"},"nativeSrc":"339:12:97","nodeType":"YulExpressionStatement","src":"339:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"316:6:97","nodeType":"YulIdentifier","src":"316:6:97"},{"kind":"number","nativeSrc":"324:4:97","nodeType":"YulLiteral","src":"324:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"312:3:97","nodeType":"YulIdentifier","src":"312:3:97"},"nativeSrc":"312:17:97","nodeType":"YulFunctionCall","src":"312:17:97"},{"name":"end","nativeSrc":"331:3:97","nodeType":"YulIdentifier","src":"331:3:97"}],"functionName":{"name":"slt","nativeSrc":"308:3:97","nodeType":"YulIdentifier","src":"308:3:97"},"nativeSrc":"308:27:97","nodeType":"YulFunctionCall","src":"308:27:97"}],"functionName":{"name":"iszero","nativeSrc":"301:6:97","nodeType":"YulIdentifier","src":"301:6:97"},"nativeSrc":"301:35:97","nodeType":"YulFunctionCall","src":"301:35:97"},"nativeSrc":"298:55:97","nodeType":"YulIf","src":"298:55:97"},{"nativeSrc":"362:30:97","nodeType":"YulAssignment","src":"362:30:97","value":{"arguments":[{"name":"offset","nativeSrc":"385:6:97","nodeType":"YulIdentifier","src":"385:6:97"}],"functionName":{"name":"calldataload","nativeSrc":"372:12:97","nodeType":"YulIdentifier","src":"372:12:97"},"nativeSrc":"372:20:97","nodeType":"YulFunctionCall","src":"372:20:97"},"variableNames":[{"name":"length","nativeSrc":"362:6:97","nodeType":"YulIdentifier","src":"362:6:97"}]},{"body":{"nativeSrc":"435:16:97","nodeType":"YulBlock","src":"435:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"444:1:97","nodeType":"YulLiteral","src":"444:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"447:1:97","nodeType":"YulLiteral","src":"447:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"437:6:97","nodeType":"YulIdentifier","src":"437:6:97"},"nativeSrc":"437:12:97","nodeType":"YulFunctionCall","src":"437:12:97"},"nativeSrc":"437:12:97","nodeType":"YulExpressionStatement","src":"437:12:97"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"407:6:97","nodeType":"YulIdentifier","src":"407:6:97"},{"kind":"number","nativeSrc":"415:18:97","nodeType":"YulLiteral","src":"415:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"404:2:97","nodeType":"YulIdentifier","src":"404:2:97"},"nativeSrc":"404:30:97","nodeType":"YulFunctionCall","src":"404:30:97"},"nativeSrc":"401:50:97","nodeType":"YulIf","src":"401:50:97"},{"nativeSrc":"460:29:97","nodeType":"YulAssignment","src":"460:29:97","value":{"arguments":[{"name":"offset","nativeSrc":"476:6:97","nodeType":"YulIdentifier","src":"476:6:97"},{"kind":"number","nativeSrc":"484:4:97","nodeType":"YulLiteral","src":"484:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"472:3:97","nodeType":"YulIdentifier","src":"472:3:97"},"nativeSrc":"472:17:97","nodeType":"YulFunctionCall","src":"472:17:97"},"variableNames":[{"name":"arrayPos","nativeSrc":"460:8:97","nodeType":"YulIdentifier","src":"460:8:97"}]},{"body":{"nativeSrc":"541:16:97","nodeType":"YulBlock","src":"541:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"550:1:97","nodeType":"YulLiteral","src":"550:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"553:1:97","nodeType":"YulLiteral","src":"553:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"543:6:97","nodeType":"YulIdentifier","src":"543:6:97"},"nativeSrc":"543:12:97","nodeType":"YulFunctionCall","src":"543:12:97"},"nativeSrc":"543:12:97","nodeType":"YulExpressionStatement","src":"543:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"512:6:97","nodeType":"YulIdentifier","src":"512:6:97"},{"name":"length","nativeSrc":"520:6:97","nodeType":"YulIdentifier","src":"520:6:97"}],"functionName":{"name":"add","nativeSrc":"508:3:97","nodeType":"YulIdentifier","src":"508:3:97"},"nativeSrc":"508:19:97","nodeType":"YulFunctionCall","src":"508:19:97"},{"kind":"number","nativeSrc":"529:4:97","nodeType":"YulLiteral","src":"529:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"504:3:97","nodeType":"YulIdentifier","src":"504:3:97"},"nativeSrc":"504:30:97","nodeType":"YulFunctionCall","src":"504:30:97"},{"name":"end","nativeSrc":"536:3:97","nodeType":"YulIdentifier","src":"536:3:97"}],"functionName":{"name":"gt","nativeSrc":"501:2:97","nodeType":"YulIdentifier","src":"501:2:97"},"nativeSrc":"501:39:97","nodeType":"YulFunctionCall","src":"501:39:97"},"nativeSrc":"498:59:97","nodeType":"YulIf","src":"498:59:97"}]},"name":"abi_decode_string_calldata","nativeSrc":"215:348:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"251:6:97","nodeType":"YulTypedName","src":"251:6:97","type":""},{"name":"end","nativeSrc":"259:3:97","nodeType":"YulTypedName","src":"259:3:97","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"267:8:97","nodeType":"YulTypedName","src":"267:8:97","type":""},{"name":"length","nativeSrc":"277:6:97","nodeType":"YulTypedName","src":"277:6:97","type":""}],"src":"215:348:97"},{"body":{"nativeSrc":"745:755:97","nodeType":"YulBlock","src":"745:755:97","statements":[{"body":{"nativeSrc":"792:16:97","nodeType":"YulBlock","src":"792:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"801:1:97","nodeType":"YulLiteral","src":"801:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"804:1:97","nodeType":"YulLiteral","src":"804:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"794:6:97","nodeType":"YulIdentifier","src":"794:6:97"},"nativeSrc":"794:12:97","nodeType":"YulFunctionCall","src":"794:12:97"},"nativeSrc":"794:12:97","nodeType":"YulExpressionStatement","src":"794:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"766:7:97","nodeType":"YulIdentifier","src":"766:7:97"},{"name":"headStart","nativeSrc":"775:9:97","nodeType":"YulIdentifier","src":"775:9:97"}],"functionName":{"name":"sub","nativeSrc":"762:3:97","nodeType":"YulIdentifier","src":"762:3:97"},"nativeSrc":"762:23:97","nodeType":"YulFunctionCall","src":"762:23:97"},{"kind":"number","nativeSrc":"787:3:97","nodeType":"YulLiteral","src":"787:3:97","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"758:3:97","nodeType":"YulIdentifier","src":"758:3:97"},"nativeSrc":"758:33:97","nodeType":"YulFunctionCall","src":"758:33:97"},"nativeSrc":"755:53:97","nodeType":"YulIf","src":"755:53:97"},{"nativeSrc":"817:39:97","nodeType":"YulAssignment","src":"817:39:97","value":{"arguments":[{"name":"headStart","nativeSrc":"846:9:97","nodeType":"YulIdentifier","src":"846:9:97"}],"functionName":{"name":"abi_decode_address","nativeSrc":"827:18:97","nodeType":"YulIdentifier","src":"827:18:97"},"nativeSrc":"827:29:97","nodeType":"YulFunctionCall","src":"827:29:97"},"variableNames":[{"name":"value0","nativeSrc":"817:6:97","nodeType":"YulIdentifier","src":"817:6:97"}]},{"nativeSrc":"865:42:97","nodeType":"YulAssignment","src":"865:42:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"892:9:97","nodeType":"YulIdentifier","src":"892:9:97"},{"kind":"number","nativeSrc":"903:2:97","nodeType":"YulLiteral","src":"903:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"888:3:97","nodeType":"YulIdentifier","src":"888:3:97"},"nativeSrc":"888:18:97","nodeType":"YulFunctionCall","src":"888:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"875:12:97","nodeType":"YulIdentifier","src":"875:12:97"},"nativeSrc":"875:32:97","nodeType":"YulFunctionCall","src":"875:32:97"},"variableNames":[{"name":"value1","nativeSrc":"865:6:97","nodeType":"YulIdentifier","src":"865:6:97"}]},{"nativeSrc":"916:46:97","nodeType":"YulVariableDeclaration","src":"916:46:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"947:9:97","nodeType":"YulIdentifier","src":"947:9:97"},{"kind":"number","nativeSrc":"958:2:97","nodeType":"YulLiteral","src":"958:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"943:3:97","nodeType":"YulIdentifier","src":"943:3:97"},"nativeSrc":"943:18:97","nodeType":"YulFunctionCall","src":"943:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"930:12:97","nodeType":"YulIdentifier","src":"930:12:97"},"nativeSrc":"930:32:97","nodeType":"YulFunctionCall","src":"930:32:97"},"variables":[{"name":"offset","nativeSrc":"920:6:97","nodeType":"YulTypedName","src":"920:6:97","type":""}]},{"nativeSrc":"971:28:97","nodeType":"YulVariableDeclaration","src":"971:28:97","value":{"kind":"number","nativeSrc":"981:18:97","nodeType":"YulLiteral","src":"981:18:97","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"975:2:97","nodeType":"YulTypedName","src":"975:2:97","type":""}]},{"body":{"nativeSrc":"1026:16:97","nodeType":"YulBlock","src":"1026:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1035:1:97","nodeType":"YulLiteral","src":"1035:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1038:1:97","nodeType":"YulLiteral","src":"1038:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1028:6:97","nodeType":"YulIdentifier","src":"1028:6:97"},"nativeSrc":"1028:12:97","nodeType":"YulFunctionCall","src":"1028:12:97"},"nativeSrc":"1028:12:97","nodeType":"YulExpressionStatement","src":"1028:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"1014:6:97","nodeType":"YulIdentifier","src":"1014:6:97"},{"name":"_1","nativeSrc":"1022:2:97","nodeType":"YulIdentifier","src":"1022:2:97"}],"functionName":{"name":"gt","nativeSrc":"1011:2:97","nodeType":"YulIdentifier","src":"1011:2:97"},"nativeSrc":"1011:14:97","nodeType":"YulFunctionCall","src":"1011:14:97"},"nativeSrc":"1008:34:97","nodeType":"YulIf","src":"1008:34:97"},{"nativeSrc":"1051:85:97","nodeType":"YulVariableDeclaration","src":"1051:85:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1108:9:97","nodeType":"YulIdentifier","src":"1108:9:97"},{"name":"offset","nativeSrc":"1119:6:97","nodeType":"YulIdentifier","src":"1119:6:97"}],"functionName":{"name":"add","nativeSrc":"1104:3:97","nodeType":"YulIdentifier","src":"1104:3:97"},"nativeSrc":"1104:22:97","nodeType":"YulFunctionCall","src":"1104:22:97"},{"name":"dataEnd","nativeSrc":"1128:7:97","nodeType":"YulIdentifier","src":"1128:7:97"}],"functionName":{"name":"abi_decode_string_calldata","nativeSrc":"1077:26:97","nodeType":"YulIdentifier","src":"1077:26:97"},"nativeSrc":"1077:59:97","nodeType":"YulFunctionCall","src":"1077:59:97"},"variables":[{"name":"value2_1","nativeSrc":"1055:8:97","nodeType":"YulTypedName","src":"1055:8:97","type":""},{"name":"value3_1","nativeSrc":"1065:8:97","nodeType":"YulTypedName","src":"1065:8:97","type":""}]},{"nativeSrc":"1145:18:97","nodeType":"YulAssignment","src":"1145:18:97","value":{"name":"value2_1","nativeSrc":"1155:8:97","nodeType":"YulIdentifier","src":"1155:8:97"},"variableNames":[{"name":"value2","nativeSrc":"1145:6:97","nodeType":"YulIdentifier","src":"1145:6:97"}]},{"nativeSrc":"1172:18:97","nodeType":"YulAssignment","src":"1172:18:97","value":{"name":"value3_1","nativeSrc":"1182:8:97","nodeType":"YulIdentifier","src":"1182:8:97"},"variableNames":[{"name":"value3","nativeSrc":"1172:6:97","nodeType":"YulIdentifier","src":"1172:6:97"}]},{"nativeSrc":"1199:48:97","nodeType":"YulVariableDeclaration","src":"1199:48:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1232:9:97","nodeType":"YulIdentifier","src":"1232:9:97"},{"kind":"number","nativeSrc":"1243:2:97","nodeType":"YulLiteral","src":"1243:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"1228:3:97","nodeType":"YulIdentifier","src":"1228:3:97"},"nativeSrc":"1228:18:97","nodeType":"YulFunctionCall","src":"1228:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"1215:12:97","nodeType":"YulIdentifier","src":"1215:12:97"},"nativeSrc":"1215:32:97","nodeType":"YulFunctionCall","src":"1215:32:97"},"variables":[{"name":"offset_1","nativeSrc":"1203:8:97","nodeType":"YulTypedName","src":"1203:8:97","type":""}]},{"body":{"nativeSrc":"1276:16:97","nodeType":"YulBlock","src":"1276:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1285:1:97","nodeType":"YulLiteral","src":"1285:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1288:1:97","nodeType":"YulLiteral","src":"1288:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1278:6:97","nodeType":"YulIdentifier","src":"1278:6:97"},"nativeSrc":"1278:12:97","nodeType":"YulFunctionCall","src":"1278:12:97"},"nativeSrc":"1278:12:97","nodeType":"YulExpressionStatement","src":"1278:12:97"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"1262:8:97","nodeType":"YulIdentifier","src":"1262:8:97"},{"name":"_1","nativeSrc":"1272:2:97","nodeType":"YulIdentifier","src":"1272:2:97"}],"functionName":{"name":"gt","nativeSrc":"1259:2:97","nodeType":"YulIdentifier","src":"1259:2:97"},"nativeSrc":"1259:16:97","nodeType":"YulFunctionCall","src":"1259:16:97"},"nativeSrc":"1256:36:97","nodeType":"YulIf","src":"1256:36:97"},{"nativeSrc":"1301:87:97","nodeType":"YulVariableDeclaration","src":"1301:87:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1358:9:97","nodeType":"YulIdentifier","src":"1358:9:97"},{"name":"offset_1","nativeSrc":"1369:8:97","nodeType":"YulIdentifier","src":"1369:8:97"}],"functionName":{"name":"add","nativeSrc":"1354:3:97","nodeType":"YulIdentifier","src":"1354:3:97"},"nativeSrc":"1354:24:97","nodeType":"YulFunctionCall","src":"1354:24:97"},{"name":"dataEnd","nativeSrc":"1380:7:97","nodeType":"YulIdentifier","src":"1380:7:97"}],"functionName":{"name":"abi_decode_string_calldata","nativeSrc":"1327:26:97","nodeType":"YulIdentifier","src":"1327:26:97"},"nativeSrc":"1327:61:97","nodeType":"YulFunctionCall","src":"1327:61:97"},"variables":[{"name":"value4_1","nativeSrc":"1305:8:97","nodeType":"YulTypedName","src":"1305:8:97","type":""},{"name":"value5_1","nativeSrc":"1315:8:97","nodeType":"YulTypedName","src":"1315:8:97","type":""}]},{"nativeSrc":"1397:18:97","nodeType":"YulAssignment","src":"1397:18:97","value":{"name":"value4_1","nativeSrc":"1407:8:97","nodeType":"YulIdentifier","src":"1407:8:97"},"variableNames":[{"name":"value4","nativeSrc":"1397:6:97","nodeType":"YulIdentifier","src":"1397:6:97"}]},{"nativeSrc":"1424:18:97","nodeType":"YulAssignment","src":"1424:18:97","value":{"name":"value5_1","nativeSrc":"1434:8:97","nodeType":"YulIdentifier","src":"1434:8:97"},"variableNames":[{"name":"value5","nativeSrc":"1424:6:97","nodeType":"YulIdentifier","src":"1424:6:97"}]},{"nativeSrc":"1451:43:97","nodeType":"YulAssignment","src":"1451:43:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1478:9:97","nodeType":"YulIdentifier","src":"1478:9:97"},{"kind":"number","nativeSrc":"1489:3:97","nodeType":"YulLiteral","src":"1489:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"1474:3:97","nodeType":"YulIdentifier","src":"1474:3:97"},"nativeSrc":"1474:19:97","nodeType":"YulFunctionCall","src":"1474:19:97"}],"functionName":{"name":"calldataload","nativeSrc":"1461:12:97","nodeType":"YulIdentifier","src":"1461:12:97"},"nativeSrc":"1461:33:97","nodeType":"YulFunctionCall","src":"1461:33:97"},"variableNames":[{"name":"value6","nativeSrc":"1451:6:97","nodeType":"YulIdentifier","src":"1451:6:97"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_string_calldata_ptrt_bytes_calldata_ptrt_uint256","nativeSrc":"568:932:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"663:9:97","nodeType":"YulTypedName","src":"663:9:97","type":""},{"name":"dataEnd","nativeSrc":"674:7:97","nodeType":"YulTypedName","src":"674:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"686:6:97","nodeType":"YulTypedName","src":"686:6:97","type":""},{"name":"value1","nativeSrc":"694:6:97","nodeType":"YulTypedName","src":"694:6:97","type":""},{"name":"value2","nativeSrc":"702:6:97","nodeType":"YulTypedName","src":"702:6:97","type":""},{"name":"value3","nativeSrc":"710:6:97","nodeType":"YulTypedName","src":"710:6:97","type":""},{"name":"value4","nativeSrc":"718:6:97","nodeType":"YulTypedName","src":"718:6:97","type":""},{"name":"value5","nativeSrc":"726:6:97","nodeType":"YulTypedName","src":"726:6:97","type":""},{"name":"value6","nativeSrc":"734:6:97","nodeType":"YulTypedName","src":"734:6:97","type":""}],"src":"568:932:97"},{"body":{"nativeSrc":"1571:184:97","nodeType":"YulBlock","src":"1571:184:97","statements":[{"nativeSrc":"1581:10:97","nodeType":"YulVariableDeclaration","src":"1581:10:97","value":{"kind":"number","nativeSrc":"1590:1:97","nodeType":"YulLiteral","src":"1590:1:97","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"1585:1:97","nodeType":"YulTypedName","src":"1585:1:97","type":""}]},{"body":{"nativeSrc":"1650:63:97","nodeType":"YulBlock","src":"1650:63:97","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"1675:3:97","nodeType":"YulIdentifier","src":"1675:3:97"},{"name":"i","nativeSrc":"1680:1:97","nodeType":"YulIdentifier","src":"1680:1:97"}],"functionName":{"name":"add","nativeSrc":"1671:3:97","nodeType":"YulIdentifier","src":"1671:3:97"},"nativeSrc":"1671:11:97","nodeType":"YulFunctionCall","src":"1671:11:97"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"1694:3:97","nodeType":"YulIdentifier","src":"1694:3:97"},{"name":"i","nativeSrc":"1699:1:97","nodeType":"YulIdentifier","src":"1699:1:97"}],"functionName":{"name":"add","nativeSrc":"1690:3:97","nodeType":"YulIdentifier","src":"1690:3:97"},"nativeSrc":"1690:11:97","nodeType":"YulFunctionCall","src":"1690:11:97"}],"functionName":{"name":"mload","nativeSrc":"1684:5:97","nodeType":"YulIdentifier","src":"1684:5:97"},"nativeSrc":"1684:18:97","nodeType":"YulFunctionCall","src":"1684:18:97"}],"functionName":{"name":"mstore","nativeSrc":"1664:6:97","nodeType":"YulIdentifier","src":"1664:6:97"},"nativeSrc":"1664:39:97","nodeType":"YulFunctionCall","src":"1664:39:97"},"nativeSrc":"1664:39:97","nodeType":"YulExpressionStatement","src":"1664:39:97"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"1611:1:97","nodeType":"YulIdentifier","src":"1611:1:97"},{"name":"length","nativeSrc":"1614:6:97","nodeType":"YulIdentifier","src":"1614:6:97"}],"functionName":{"name":"lt","nativeSrc":"1608:2:97","nodeType":"YulIdentifier","src":"1608:2:97"},"nativeSrc":"1608:13:97","nodeType":"YulFunctionCall","src":"1608:13:97"},"nativeSrc":"1600:113:97","nodeType":"YulForLoop","post":{"nativeSrc":"1622:19:97","nodeType":"YulBlock","src":"1622:19:97","statements":[{"nativeSrc":"1624:15:97","nodeType":"YulAssignment","src":"1624:15:97","value":{"arguments":[{"name":"i","nativeSrc":"1633:1:97","nodeType":"YulIdentifier","src":"1633:1:97"},{"kind":"number","nativeSrc":"1636:2:97","nodeType":"YulLiteral","src":"1636:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1629:3:97","nodeType":"YulIdentifier","src":"1629:3:97"},"nativeSrc":"1629:10:97","nodeType":"YulFunctionCall","src":"1629:10:97"},"variableNames":[{"name":"i","nativeSrc":"1624:1:97","nodeType":"YulIdentifier","src":"1624:1:97"}]}]},"pre":{"nativeSrc":"1604:3:97","nodeType":"YulBlock","src":"1604:3:97","statements":[]},"src":"1600:113:97"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"1733:3:97","nodeType":"YulIdentifier","src":"1733:3:97"},{"name":"length","nativeSrc":"1738:6:97","nodeType":"YulIdentifier","src":"1738:6:97"}],"functionName":{"name":"add","nativeSrc":"1729:3:97","nodeType":"YulIdentifier","src":"1729:3:97"},"nativeSrc":"1729:16:97","nodeType":"YulFunctionCall","src":"1729:16:97"},{"kind":"number","nativeSrc":"1747:1:97","nodeType":"YulLiteral","src":"1747:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"1722:6:97","nodeType":"YulIdentifier","src":"1722:6:97"},"nativeSrc":"1722:27:97","nodeType":"YulFunctionCall","src":"1722:27:97"},"nativeSrc":"1722:27:97","nodeType":"YulExpressionStatement","src":"1722:27:97"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"1505:250:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"1549:3:97","nodeType":"YulTypedName","src":"1549:3:97","type":""},{"name":"dst","nativeSrc":"1554:3:97","nodeType":"YulTypedName","src":"1554:3:97","type":""},{"name":"length","nativeSrc":"1559:6:97","nodeType":"YulTypedName","src":"1559:6:97","type":""}],"src":"1505:250:97"},{"body":{"nativeSrc":"1879:334:97","nodeType":"YulBlock","src":"1879:334:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1896:9:97","nodeType":"YulIdentifier","src":"1896:9:97"},{"kind":"number","nativeSrc":"1907:2:97","nodeType":"YulLiteral","src":"1907:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"1889:6:97","nodeType":"YulIdentifier","src":"1889:6:97"},"nativeSrc":"1889:21:97","nodeType":"YulFunctionCall","src":"1889:21:97"},"nativeSrc":"1889:21:97","nodeType":"YulExpressionStatement","src":"1889:21:97"},{"nativeSrc":"1919:27:97","nodeType":"YulVariableDeclaration","src":"1919:27:97","value":{"arguments":[{"name":"value0","nativeSrc":"1939:6:97","nodeType":"YulIdentifier","src":"1939:6:97"}],"functionName":{"name":"mload","nativeSrc":"1933:5:97","nodeType":"YulIdentifier","src":"1933:5:97"},"nativeSrc":"1933:13:97","nodeType":"YulFunctionCall","src":"1933:13:97"},"variables":[{"name":"length","nativeSrc":"1923:6:97","nodeType":"YulTypedName","src":"1923:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1966:9:97","nodeType":"YulIdentifier","src":"1966:9:97"},{"kind":"number","nativeSrc":"1977:2:97","nodeType":"YulLiteral","src":"1977:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1962:3:97","nodeType":"YulIdentifier","src":"1962:3:97"},"nativeSrc":"1962:18:97","nodeType":"YulFunctionCall","src":"1962:18:97"},{"name":"length","nativeSrc":"1982:6:97","nodeType":"YulIdentifier","src":"1982:6:97"}],"functionName":{"name":"mstore","nativeSrc":"1955:6:97","nodeType":"YulIdentifier","src":"1955:6:97"},"nativeSrc":"1955:34:97","nodeType":"YulFunctionCall","src":"1955:34:97"},"nativeSrc":"1955:34:97","nodeType":"YulExpressionStatement","src":"1955:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"2037:6:97","nodeType":"YulIdentifier","src":"2037:6:97"},{"kind":"number","nativeSrc":"2045:2:97","nodeType":"YulLiteral","src":"2045:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2033:3:97","nodeType":"YulIdentifier","src":"2033:3:97"},"nativeSrc":"2033:15:97","nodeType":"YulFunctionCall","src":"2033:15:97"},{"arguments":[{"name":"headStart","nativeSrc":"2054:9:97","nodeType":"YulIdentifier","src":"2054:9:97"},{"kind":"number","nativeSrc":"2065:2:97","nodeType":"YulLiteral","src":"2065:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2050:3:97","nodeType":"YulIdentifier","src":"2050:3:97"},"nativeSrc":"2050:18:97","nodeType":"YulFunctionCall","src":"2050:18:97"},{"name":"length","nativeSrc":"2070:6:97","nodeType":"YulIdentifier","src":"2070:6:97"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"1998:34:97","nodeType":"YulIdentifier","src":"1998:34:97"},"nativeSrc":"1998:79:97","nodeType":"YulFunctionCall","src":"1998:79:97"},"nativeSrc":"1998:79:97","nodeType":"YulExpressionStatement","src":"1998:79:97"},{"nativeSrc":"2086:121:97","nodeType":"YulAssignment","src":"2086:121:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2102:9:97","nodeType":"YulIdentifier","src":"2102:9:97"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"2121:6:97","nodeType":"YulIdentifier","src":"2121:6:97"},{"kind":"number","nativeSrc":"2129:2:97","nodeType":"YulLiteral","src":"2129:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"2117:3:97","nodeType":"YulIdentifier","src":"2117:3:97"},"nativeSrc":"2117:15:97","nodeType":"YulFunctionCall","src":"2117:15:97"},{"kind":"number","nativeSrc":"2134:66:97","nodeType":"YulLiteral","src":"2134:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"2113:3:97","nodeType":"YulIdentifier","src":"2113:3:97"},"nativeSrc":"2113:88:97","nodeType":"YulFunctionCall","src":"2113:88:97"}],"functionName":{"name":"add","nativeSrc":"2098:3:97","nodeType":"YulIdentifier","src":"2098:3:97"},"nativeSrc":"2098:104:97","nodeType":"YulFunctionCall","src":"2098:104:97"},{"kind":"number","nativeSrc":"2204:2:97","nodeType":"YulLiteral","src":"2204:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2094:3:97","nodeType":"YulIdentifier","src":"2094:3:97"},"nativeSrc":"2094:113:97","nodeType":"YulFunctionCall","src":"2094:113:97"},"variableNames":[{"name":"tail","nativeSrc":"2086:4:97","nodeType":"YulIdentifier","src":"2086:4:97"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"1760:453:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1848:9:97","nodeType":"YulTypedName","src":"1848:9:97","type":""},{"name":"value0","nativeSrc":"1859:6:97","nodeType":"YulTypedName","src":"1859:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1870:4:97","nodeType":"YulTypedName","src":"1870:4:97","type":""}],"src":"1760:453:97"},{"body":{"nativeSrc":"2319:125:97","nodeType":"YulBlock","src":"2319:125:97","statements":[{"nativeSrc":"2329:26:97","nodeType":"YulAssignment","src":"2329:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2341:9:97","nodeType":"YulIdentifier","src":"2341:9:97"},{"kind":"number","nativeSrc":"2352:2:97","nodeType":"YulLiteral","src":"2352:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2337:3:97","nodeType":"YulIdentifier","src":"2337:3:97"},"nativeSrc":"2337:18:97","nodeType":"YulFunctionCall","src":"2337:18:97"},"variableNames":[{"name":"tail","nativeSrc":"2329:4:97","nodeType":"YulIdentifier","src":"2329:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2371:9:97","nodeType":"YulIdentifier","src":"2371:9:97"},{"arguments":[{"name":"value0","nativeSrc":"2386:6:97","nodeType":"YulIdentifier","src":"2386:6:97"},{"kind":"number","nativeSrc":"2394:42:97","nodeType":"YulLiteral","src":"2394:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"2382:3:97","nodeType":"YulIdentifier","src":"2382:3:97"},"nativeSrc":"2382:55:97","nodeType":"YulFunctionCall","src":"2382:55:97"}],"functionName":{"name":"mstore","nativeSrc":"2364:6:97","nodeType":"YulIdentifier","src":"2364:6:97"},"nativeSrc":"2364:74:97","nodeType":"YulFunctionCall","src":"2364:74:97"},"nativeSrc":"2364:74:97","nodeType":"YulExpressionStatement","src":"2364:74:97"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"2218:226:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2288:9:97","nodeType":"YulTypedName","src":"2288:9:97","type":""},{"name":"value0","nativeSrc":"2299:6:97","nodeType":"YulTypedName","src":"2299:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2310:4:97","nodeType":"YulTypedName","src":"2310:4:97","type":""}],"src":"2218:226:97"},{"body":{"nativeSrc":"2550:76:97","nodeType":"YulBlock","src":"2550:76:97","statements":[{"nativeSrc":"2560:26:97","nodeType":"YulAssignment","src":"2560:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2572:9:97","nodeType":"YulIdentifier","src":"2572:9:97"},{"kind":"number","nativeSrc":"2583:2:97","nodeType":"YulLiteral","src":"2583:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2568:3:97","nodeType":"YulIdentifier","src":"2568:3:97"},"nativeSrc":"2568:18:97","nodeType":"YulFunctionCall","src":"2568:18:97"},"variableNames":[{"name":"tail","nativeSrc":"2560:4:97","nodeType":"YulIdentifier","src":"2560:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2602:9:97","nodeType":"YulIdentifier","src":"2602:9:97"},{"name":"value0","nativeSrc":"2613:6:97","nodeType":"YulIdentifier","src":"2613:6:97"}],"functionName":{"name":"mstore","nativeSrc":"2595:6:97","nodeType":"YulIdentifier","src":"2595:6:97"},"nativeSrc":"2595:25:97","nodeType":"YulFunctionCall","src":"2595:25:97"},"nativeSrc":"2595:25:97","nodeType":"YulExpressionStatement","src":"2595:25:97"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"2449:177:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2519:9:97","nodeType":"YulTypedName","src":"2519:9:97","type":""},{"name":"value0","nativeSrc":"2530:6:97","nodeType":"YulTypedName","src":"2530:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2541:4:97","nodeType":"YulTypedName","src":"2541:4:97","type":""}],"src":"2449:177:97"},{"body":{"nativeSrc":"2701:116:97","nodeType":"YulBlock","src":"2701:116:97","statements":[{"body":{"nativeSrc":"2747:16:97","nodeType":"YulBlock","src":"2747:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2756:1:97","nodeType":"YulLiteral","src":"2756:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"2759:1:97","nodeType":"YulLiteral","src":"2759:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2749:6:97","nodeType":"YulIdentifier","src":"2749:6:97"},"nativeSrc":"2749:12:97","nodeType":"YulFunctionCall","src":"2749:12:97"},"nativeSrc":"2749:12:97","nodeType":"YulExpressionStatement","src":"2749:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2722:7:97","nodeType":"YulIdentifier","src":"2722:7:97"},{"name":"headStart","nativeSrc":"2731:9:97","nodeType":"YulIdentifier","src":"2731:9:97"}],"functionName":{"name":"sub","nativeSrc":"2718:3:97","nodeType":"YulIdentifier","src":"2718:3:97"},"nativeSrc":"2718:23:97","nodeType":"YulFunctionCall","src":"2718:23:97"},{"kind":"number","nativeSrc":"2743:2:97","nodeType":"YulLiteral","src":"2743:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2714:3:97","nodeType":"YulIdentifier","src":"2714:3:97"},"nativeSrc":"2714:32:97","nodeType":"YulFunctionCall","src":"2714:32:97"},"nativeSrc":"2711:52:97","nodeType":"YulIf","src":"2711:52:97"},{"nativeSrc":"2772:39:97","nodeType":"YulAssignment","src":"2772:39:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2801:9:97","nodeType":"YulIdentifier","src":"2801:9:97"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2782:18:97","nodeType":"YulIdentifier","src":"2782:18:97"},"nativeSrc":"2782:29:97","nodeType":"YulFunctionCall","src":"2782:29:97"},"variableNames":[{"name":"value0","nativeSrc":"2772:6:97","nodeType":"YulIdentifier","src":"2772:6:97"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"2631:186:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2667:9:97","nodeType":"YulTypedName","src":"2667:9:97","type":""},{"name":"dataEnd","nativeSrc":"2678:7:97","nodeType":"YulTypedName","src":"2678:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2690:6:97","nodeType":"YulTypedName","src":"2690:6:97","type":""}],"src":"2631:186:97"},{"body":{"nativeSrc":"2923:76:97","nodeType":"YulBlock","src":"2923:76:97","statements":[{"nativeSrc":"2933:26:97","nodeType":"YulAssignment","src":"2933:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2945:9:97","nodeType":"YulIdentifier","src":"2945:9:97"},{"kind":"number","nativeSrc":"2956:2:97","nodeType":"YulLiteral","src":"2956:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2941:3:97","nodeType":"YulIdentifier","src":"2941:3:97"},"nativeSrc":"2941:18:97","nodeType":"YulFunctionCall","src":"2941:18:97"},"variableNames":[{"name":"tail","nativeSrc":"2933:4:97","nodeType":"YulIdentifier","src":"2933:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2975:9:97","nodeType":"YulIdentifier","src":"2975:9:97"},{"name":"value0","nativeSrc":"2986:6:97","nodeType":"YulIdentifier","src":"2986:6:97"}],"functionName":{"name":"mstore","nativeSrc":"2968:6:97","nodeType":"YulIdentifier","src":"2968:6:97"},"nativeSrc":"2968:25:97","nodeType":"YulFunctionCall","src":"2968:25:97"},"nativeSrc":"2968:25:97","nodeType":"YulExpressionStatement","src":"2968:25:97"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"2822:177:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2892:9:97","nodeType":"YulTypedName","src":"2892:9:97","type":""},{"name":"value0","nativeSrc":"2903:6:97","nodeType":"YulTypedName","src":"2903:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2914:4:97","nodeType":"YulTypedName","src":"2914:4:97","type":""}],"src":"2822:177:97"},{"body":{"nativeSrc":"3074:110:97","nodeType":"YulBlock","src":"3074:110:97","statements":[{"body":{"nativeSrc":"3120:16:97","nodeType":"YulBlock","src":"3120:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3129:1:97","nodeType":"YulLiteral","src":"3129:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"3132:1:97","nodeType":"YulLiteral","src":"3132:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3122:6:97","nodeType":"YulIdentifier","src":"3122:6:97"},"nativeSrc":"3122:12:97","nodeType":"YulFunctionCall","src":"3122:12:97"},"nativeSrc":"3122:12:97","nodeType":"YulExpressionStatement","src":"3122:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3095:7:97","nodeType":"YulIdentifier","src":"3095:7:97"},{"name":"headStart","nativeSrc":"3104:9:97","nodeType":"YulIdentifier","src":"3104:9:97"}],"functionName":{"name":"sub","nativeSrc":"3091:3:97","nodeType":"YulIdentifier","src":"3091:3:97"},"nativeSrc":"3091:23:97","nodeType":"YulFunctionCall","src":"3091:23:97"},{"kind":"number","nativeSrc":"3116:2:97","nodeType":"YulLiteral","src":"3116:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3087:3:97","nodeType":"YulIdentifier","src":"3087:3:97"},"nativeSrc":"3087:32:97","nodeType":"YulFunctionCall","src":"3087:32:97"},"nativeSrc":"3084:52:97","nodeType":"YulIf","src":"3084:52:97"},{"nativeSrc":"3145:33:97","nodeType":"YulAssignment","src":"3145:33:97","value":{"arguments":[{"name":"headStart","nativeSrc":"3168:9:97","nodeType":"YulIdentifier","src":"3168:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"3155:12:97","nodeType":"YulIdentifier","src":"3155:12:97"},"nativeSrc":"3155:23:97","nodeType":"YulFunctionCall","src":"3155:23:97"},"variableNames":[{"name":"value0","nativeSrc":"3145:6:97","nodeType":"YulIdentifier","src":"3145:6:97"}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"3004:180:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3040:9:97","nodeType":"YulTypedName","src":"3040:9:97","type":""},{"name":"dataEnd","nativeSrc":"3051:7:97","nodeType":"YulTypedName","src":"3051:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3063:6:97","nodeType":"YulTypedName","src":"3063:6:97","type":""}],"src":"3004:180:97"},{"body":{"nativeSrc":"3259:110:97","nodeType":"YulBlock","src":"3259:110:97","statements":[{"body":{"nativeSrc":"3305:16:97","nodeType":"YulBlock","src":"3305:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3314:1:97","nodeType":"YulLiteral","src":"3314:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"3317:1:97","nodeType":"YulLiteral","src":"3317:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3307:6:97","nodeType":"YulIdentifier","src":"3307:6:97"},"nativeSrc":"3307:12:97","nodeType":"YulFunctionCall","src":"3307:12:97"},"nativeSrc":"3307:12:97","nodeType":"YulExpressionStatement","src":"3307:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3280:7:97","nodeType":"YulIdentifier","src":"3280:7:97"},{"name":"headStart","nativeSrc":"3289:9:97","nodeType":"YulIdentifier","src":"3289:9:97"}],"functionName":{"name":"sub","nativeSrc":"3276:3:97","nodeType":"YulIdentifier","src":"3276:3:97"},"nativeSrc":"3276:23:97","nodeType":"YulFunctionCall","src":"3276:23:97"},{"kind":"number","nativeSrc":"3301:2:97","nodeType":"YulLiteral","src":"3301:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3272:3:97","nodeType":"YulIdentifier","src":"3272:3:97"},"nativeSrc":"3272:32:97","nodeType":"YulFunctionCall","src":"3272:32:97"},"nativeSrc":"3269:52:97","nodeType":"YulIf","src":"3269:52:97"},{"nativeSrc":"3330:33:97","nodeType":"YulAssignment","src":"3330:33:97","value":{"arguments":[{"name":"headStart","nativeSrc":"3353:9:97","nodeType":"YulIdentifier","src":"3353:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"3340:12:97","nodeType":"YulIdentifier","src":"3340:12:97"},"nativeSrc":"3340:23:97","nodeType":"YulFunctionCall","src":"3340:23:97"},"variableNames":[{"name":"value0","nativeSrc":"3330:6:97","nodeType":"YulIdentifier","src":"3330:6:97"}]}]},"name":"abi_decode_tuple_t_bytes32","nativeSrc":"3189:180:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3225:9:97","nodeType":"YulTypedName","src":"3225:9:97","type":""},{"name":"dataEnd","nativeSrc":"3236:7:97","nodeType":"YulTypedName","src":"3236:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3248:6:97","nodeType":"YulTypedName","src":"3248:6:97","type":""}],"src":"3189:180:97"},{"body":{"nativeSrc":"3469:92:97","nodeType":"YulBlock","src":"3469:92:97","statements":[{"nativeSrc":"3479:26:97","nodeType":"YulAssignment","src":"3479:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"3491:9:97","nodeType":"YulIdentifier","src":"3491:9:97"},{"kind":"number","nativeSrc":"3502:2:97","nodeType":"YulLiteral","src":"3502:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3487:3:97","nodeType":"YulIdentifier","src":"3487:3:97"},"nativeSrc":"3487:18:97","nodeType":"YulFunctionCall","src":"3487:18:97"},"variableNames":[{"name":"tail","nativeSrc":"3479:4:97","nodeType":"YulIdentifier","src":"3479:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3521:9:97","nodeType":"YulIdentifier","src":"3521:9:97"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"3546:6:97","nodeType":"YulIdentifier","src":"3546:6:97"}],"functionName":{"name":"iszero","nativeSrc":"3539:6:97","nodeType":"YulIdentifier","src":"3539:6:97"},"nativeSrc":"3539:14:97","nodeType":"YulFunctionCall","src":"3539:14:97"}],"functionName":{"name":"iszero","nativeSrc":"3532:6:97","nodeType":"YulIdentifier","src":"3532:6:97"},"nativeSrc":"3532:22:97","nodeType":"YulFunctionCall","src":"3532:22:97"}],"functionName":{"name":"mstore","nativeSrc":"3514:6:97","nodeType":"YulIdentifier","src":"3514:6:97"},"nativeSrc":"3514:41:97","nodeType":"YulFunctionCall","src":"3514:41:97"},"nativeSrc":"3514:41:97","nodeType":"YulExpressionStatement","src":"3514:41:97"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"3374:187:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3438:9:97","nodeType":"YulTypedName","src":"3438:9:97","type":""},{"name":"value0","nativeSrc":"3449:6:97","nodeType":"YulTypedName","src":"3449:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3460:4:97","nodeType":"YulTypedName","src":"3460:4:97","type":""}],"src":"3374:187:97"},{"body":{"nativeSrc":"3740:246:97","nodeType":"YulBlock","src":"3740:246:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3757:9:97","nodeType":"YulIdentifier","src":"3757:9:97"},{"kind":"number","nativeSrc":"3768:2:97","nodeType":"YulLiteral","src":"3768:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"3750:6:97","nodeType":"YulIdentifier","src":"3750:6:97"},"nativeSrc":"3750:21:97","nodeType":"YulFunctionCall","src":"3750:21:97"},"nativeSrc":"3750:21:97","nodeType":"YulExpressionStatement","src":"3750:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3791:9:97","nodeType":"YulIdentifier","src":"3791:9:97"},{"kind":"number","nativeSrc":"3802:2:97","nodeType":"YulLiteral","src":"3802:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3787:3:97","nodeType":"YulIdentifier","src":"3787:3:97"},"nativeSrc":"3787:18:97","nodeType":"YulFunctionCall","src":"3787:18:97"},{"kind":"number","nativeSrc":"3807:2:97","nodeType":"YulLiteral","src":"3807:2:97","type":"","value":"56"}],"functionName":{"name":"mstore","nativeSrc":"3780:6:97","nodeType":"YulIdentifier","src":"3780:6:97"},"nativeSrc":"3780:30:97","nodeType":"YulFunctionCall","src":"3780:30:97"},"nativeSrc":"3780:30:97","nodeType":"YulExpressionStatement","src":"3780:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3830:9:97","nodeType":"YulIdentifier","src":"3830:9:97"},{"kind":"number","nativeSrc":"3841:2:97","nodeType":"YulLiteral","src":"3841:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3826:3:97","nodeType":"YulIdentifier","src":"3826:3:97"},"nativeSrc":"3826:18:97","nodeType":"YulFunctionCall","src":"3826:18:97"},{"hexValue":"54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a204361","kind":"string","nativeSrc":"3846:34:97","nodeType":"YulLiteral","src":"3846:34:97","type":"","value":"Timelock::executeTransaction: Ca"}],"functionName":{"name":"mstore","nativeSrc":"3819:6:97","nodeType":"YulIdentifier","src":"3819:6:97"},"nativeSrc":"3819:62:97","nodeType":"YulFunctionCall","src":"3819:62:97"},"nativeSrc":"3819:62:97","nodeType":"YulExpressionStatement","src":"3819:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3901:9:97","nodeType":"YulIdentifier","src":"3901:9:97"},{"kind":"number","nativeSrc":"3912:2:97","nodeType":"YulLiteral","src":"3912:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3897:3:97","nodeType":"YulIdentifier","src":"3897:3:97"},"nativeSrc":"3897:18:97","nodeType":"YulFunctionCall","src":"3897:18:97"},{"hexValue":"6c6c206d75737420636f6d652066726f6d2061646d696e2e","kind":"string","nativeSrc":"3917:26:97","nodeType":"YulLiteral","src":"3917:26:97","type":"","value":"ll must come from admin."}],"functionName":{"name":"mstore","nativeSrc":"3890:6:97","nodeType":"YulIdentifier","src":"3890:6:97"},"nativeSrc":"3890:54:97","nodeType":"YulFunctionCall","src":"3890:54:97"},"nativeSrc":"3890:54:97","nodeType":"YulExpressionStatement","src":"3890:54:97"},{"nativeSrc":"3953:27:97","nodeType":"YulAssignment","src":"3953:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"3965:9:97","nodeType":"YulIdentifier","src":"3965:9:97"},{"kind":"number","nativeSrc":"3976:3:97","nodeType":"YulLiteral","src":"3976:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"3961:3:97","nodeType":"YulIdentifier","src":"3961:3:97"},"nativeSrc":"3961:19:97","nodeType":"YulFunctionCall","src":"3961:19:97"},"variableNames":[{"name":"tail","nativeSrc":"3953:4:97","nodeType":"YulIdentifier","src":"3953:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_0cbc65ac44dc8b90b8bc4c38c9c6ad704bfeb2c8170538058496c0e805dfa947__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3566:420:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3717:9:97","nodeType":"YulTypedName","src":"3717:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3731:4:97","nodeType":"YulTypedName","src":"3731:4:97","type":""}],"src":"3566:420:97"},{"body":{"nativeSrc":"4058:259:97","nodeType":"YulBlock","src":"4058:259:97","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4075:3:97","nodeType":"YulIdentifier","src":"4075:3:97"},{"name":"length","nativeSrc":"4080:6:97","nodeType":"YulIdentifier","src":"4080:6:97"}],"functionName":{"name":"mstore","nativeSrc":"4068:6:97","nodeType":"YulIdentifier","src":"4068:6:97"},"nativeSrc":"4068:19:97","nodeType":"YulFunctionCall","src":"4068:19:97"},"nativeSrc":"4068:19:97","nodeType":"YulExpressionStatement","src":"4068:19:97"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"4113:3:97","nodeType":"YulIdentifier","src":"4113:3:97"},{"kind":"number","nativeSrc":"4118:4:97","nodeType":"YulLiteral","src":"4118:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4109:3:97","nodeType":"YulIdentifier","src":"4109:3:97"},"nativeSrc":"4109:14:97","nodeType":"YulFunctionCall","src":"4109:14:97"},{"name":"start","nativeSrc":"4125:5:97","nodeType":"YulIdentifier","src":"4125:5:97"},{"name":"length","nativeSrc":"4132:6:97","nodeType":"YulIdentifier","src":"4132:6:97"}],"functionName":{"name":"calldatacopy","nativeSrc":"4096:12:97","nodeType":"YulIdentifier","src":"4096:12:97"},"nativeSrc":"4096:43:97","nodeType":"YulFunctionCall","src":"4096:43:97"},"nativeSrc":"4096:43:97","nodeType":"YulExpressionStatement","src":"4096:43:97"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"4163:3:97","nodeType":"YulIdentifier","src":"4163:3:97"},{"name":"length","nativeSrc":"4168:6:97","nodeType":"YulIdentifier","src":"4168:6:97"}],"functionName":{"name":"add","nativeSrc":"4159:3:97","nodeType":"YulIdentifier","src":"4159:3:97"},"nativeSrc":"4159:16:97","nodeType":"YulFunctionCall","src":"4159:16:97"},{"kind":"number","nativeSrc":"4177:4:97","nodeType":"YulLiteral","src":"4177:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4155:3:97","nodeType":"YulIdentifier","src":"4155:3:97"},"nativeSrc":"4155:27:97","nodeType":"YulFunctionCall","src":"4155:27:97"},{"kind":"number","nativeSrc":"4184:1:97","nodeType":"YulLiteral","src":"4184:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4148:6:97","nodeType":"YulIdentifier","src":"4148:6:97"},"nativeSrc":"4148:38:97","nodeType":"YulFunctionCall","src":"4148:38:97"},"nativeSrc":"4148:38:97","nodeType":"YulExpressionStatement","src":"4148:38:97"},{"nativeSrc":"4195:116:97","nodeType":"YulAssignment","src":"4195:116:97","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"4210:3:97","nodeType":"YulIdentifier","src":"4210:3:97"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"4223:6:97","nodeType":"YulIdentifier","src":"4223:6:97"},{"kind":"number","nativeSrc":"4231:2:97","nodeType":"YulLiteral","src":"4231:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"4219:3:97","nodeType":"YulIdentifier","src":"4219:3:97"},"nativeSrc":"4219:15:97","nodeType":"YulFunctionCall","src":"4219:15:97"},{"kind":"number","nativeSrc":"4236:66:97","nodeType":"YulLiteral","src":"4236:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"4215:3:97","nodeType":"YulIdentifier","src":"4215:3:97"},"nativeSrc":"4215:88:97","nodeType":"YulFunctionCall","src":"4215:88:97"}],"functionName":{"name":"add","nativeSrc":"4206:3:97","nodeType":"YulIdentifier","src":"4206:3:97"},"nativeSrc":"4206:98:97","nodeType":"YulFunctionCall","src":"4206:98:97"},{"kind":"number","nativeSrc":"4306:4:97","nodeType":"YulLiteral","src":"4306:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4202:3:97","nodeType":"YulIdentifier","src":"4202:3:97"},"nativeSrc":"4202:109:97","nodeType":"YulFunctionCall","src":"4202:109:97"},"variableNames":[{"name":"end","nativeSrc":"4195:3:97","nodeType":"YulIdentifier","src":"4195:3:97"}]}]},"name":"abi_encode_string_calldata","nativeSrc":"3991:326:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"4027:5:97","nodeType":"YulTypedName","src":"4027:5:97","type":""},{"name":"length","nativeSrc":"4034:6:97","nodeType":"YulTypedName","src":"4034:6:97","type":""},{"name":"pos","nativeSrc":"4042:3:97","nodeType":"YulTypedName","src":"4042:3:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"4050:3:97","nodeType":"YulTypedName","src":"4050:3:97","type":""}],"src":"3991:326:97"},{"body":{"nativeSrc":"4593:429:97","nodeType":"YulBlock","src":"4593:429:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4610:9:97","nodeType":"YulIdentifier","src":"4610:9:97"},{"arguments":[{"name":"value0","nativeSrc":"4625:6:97","nodeType":"YulIdentifier","src":"4625:6:97"},{"kind":"number","nativeSrc":"4633:42:97","nodeType":"YulLiteral","src":"4633:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"4621:3:97","nodeType":"YulIdentifier","src":"4621:3:97"},"nativeSrc":"4621:55:97","nodeType":"YulFunctionCall","src":"4621:55:97"}],"functionName":{"name":"mstore","nativeSrc":"4603:6:97","nodeType":"YulIdentifier","src":"4603:6:97"},"nativeSrc":"4603:74:97","nodeType":"YulFunctionCall","src":"4603:74:97"},"nativeSrc":"4603:74:97","nodeType":"YulExpressionStatement","src":"4603:74:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4697:9:97","nodeType":"YulIdentifier","src":"4697:9:97"},{"kind":"number","nativeSrc":"4708:2:97","nodeType":"YulLiteral","src":"4708:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4693:3:97","nodeType":"YulIdentifier","src":"4693:3:97"},"nativeSrc":"4693:18:97","nodeType":"YulFunctionCall","src":"4693:18:97"},{"name":"value1","nativeSrc":"4713:6:97","nodeType":"YulIdentifier","src":"4713:6:97"}],"functionName":{"name":"mstore","nativeSrc":"4686:6:97","nodeType":"YulIdentifier","src":"4686:6:97"},"nativeSrc":"4686:34:97","nodeType":"YulFunctionCall","src":"4686:34:97"},"nativeSrc":"4686:34:97","nodeType":"YulExpressionStatement","src":"4686:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4740:9:97","nodeType":"YulIdentifier","src":"4740:9:97"},{"kind":"number","nativeSrc":"4751:2:97","nodeType":"YulLiteral","src":"4751:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4736:3:97","nodeType":"YulIdentifier","src":"4736:3:97"},"nativeSrc":"4736:18:97","nodeType":"YulFunctionCall","src":"4736:18:97"},{"kind":"number","nativeSrc":"4756:3:97","nodeType":"YulLiteral","src":"4756:3:97","type":"","value":"160"}],"functionName":{"name":"mstore","nativeSrc":"4729:6:97","nodeType":"YulIdentifier","src":"4729:6:97"},"nativeSrc":"4729:31:97","nodeType":"YulFunctionCall","src":"4729:31:97"},"nativeSrc":"4729:31:97","nodeType":"YulExpressionStatement","src":"4729:31:97"},{"nativeSrc":"4769:77:97","nodeType":"YulVariableDeclaration","src":"4769:77:97","value":{"arguments":[{"name":"value2","nativeSrc":"4810:6:97","nodeType":"YulIdentifier","src":"4810:6:97"},{"name":"value3","nativeSrc":"4818:6:97","nodeType":"YulIdentifier","src":"4818:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"4830:9:97","nodeType":"YulIdentifier","src":"4830:9:97"},{"kind":"number","nativeSrc":"4841:3:97","nodeType":"YulLiteral","src":"4841:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"4826:3:97","nodeType":"YulIdentifier","src":"4826:3:97"},"nativeSrc":"4826:19:97","nodeType":"YulFunctionCall","src":"4826:19:97"}],"functionName":{"name":"abi_encode_string_calldata","nativeSrc":"4783:26:97","nodeType":"YulIdentifier","src":"4783:26:97"},"nativeSrc":"4783:63:97","nodeType":"YulFunctionCall","src":"4783:63:97"},"variables":[{"name":"tail_1","nativeSrc":"4773:6:97","nodeType":"YulTypedName","src":"4773:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4866:9:97","nodeType":"YulIdentifier","src":"4866:9:97"},{"kind":"number","nativeSrc":"4877:2:97","nodeType":"YulLiteral","src":"4877:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4862:3:97","nodeType":"YulIdentifier","src":"4862:3:97"},"nativeSrc":"4862:18:97","nodeType":"YulFunctionCall","src":"4862:18:97"},{"arguments":[{"name":"tail_1","nativeSrc":"4886:6:97","nodeType":"YulIdentifier","src":"4886:6:97"},{"name":"headStart","nativeSrc":"4894:9:97","nodeType":"YulIdentifier","src":"4894:9:97"}],"functionName":{"name":"sub","nativeSrc":"4882:3:97","nodeType":"YulIdentifier","src":"4882:3:97"},"nativeSrc":"4882:22:97","nodeType":"YulFunctionCall","src":"4882:22:97"}],"functionName":{"name":"mstore","nativeSrc":"4855:6:97","nodeType":"YulIdentifier","src":"4855:6:97"},"nativeSrc":"4855:50:97","nodeType":"YulFunctionCall","src":"4855:50:97"},"nativeSrc":"4855:50:97","nodeType":"YulExpressionStatement","src":"4855:50:97"},{"nativeSrc":"4914:58:97","nodeType":"YulAssignment","src":"4914:58:97","value":{"arguments":[{"name":"value4","nativeSrc":"4949:6:97","nodeType":"YulIdentifier","src":"4949:6:97"},{"name":"value5","nativeSrc":"4957:6:97","nodeType":"YulIdentifier","src":"4957:6:97"},{"name":"tail_1","nativeSrc":"4965:6:97","nodeType":"YulIdentifier","src":"4965:6:97"}],"functionName":{"name":"abi_encode_string_calldata","nativeSrc":"4922:26:97","nodeType":"YulIdentifier","src":"4922:26:97"},"nativeSrc":"4922:50:97","nodeType":"YulFunctionCall","src":"4922:50:97"},"variableNames":[{"name":"tail","nativeSrc":"4914:4:97","nodeType":"YulIdentifier","src":"4914:4:97"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4992:9:97","nodeType":"YulIdentifier","src":"4992:9:97"},{"kind":"number","nativeSrc":"5003:3:97","nodeType":"YulLiteral","src":"5003:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"4988:3:97","nodeType":"YulIdentifier","src":"4988:3:97"},"nativeSrc":"4988:19:97","nodeType":"YulFunctionCall","src":"4988:19:97"},{"name":"value6","nativeSrc":"5009:6:97","nodeType":"YulIdentifier","src":"5009:6:97"}],"functionName":{"name":"mstore","nativeSrc":"4981:6:97","nodeType":"YulIdentifier","src":"4981:6:97"},"nativeSrc":"4981:35:97","nodeType":"YulFunctionCall","src":"4981:35:97"},"nativeSrc":"4981:35:97","nodeType":"YulExpressionStatement","src":"4981:35:97"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_string_calldata_ptr_t_bytes_calldata_ptr_t_uint256__to_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed","nativeSrc":"4322:700:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4514:9:97","nodeType":"YulTypedName","src":"4514:9:97","type":""},{"name":"value6","nativeSrc":"4525:6:97","nodeType":"YulTypedName","src":"4525:6:97","type":""},{"name":"value5","nativeSrc":"4533:6:97","nodeType":"YulTypedName","src":"4533:6:97","type":""},{"name":"value4","nativeSrc":"4541:6:97","nodeType":"YulTypedName","src":"4541:6:97","type":""},{"name":"value3","nativeSrc":"4549:6:97","nodeType":"YulTypedName","src":"4549:6:97","type":""},{"name":"value2","nativeSrc":"4557:6:97","nodeType":"YulTypedName","src":"4557:6:97","type":""},{"name":"value1","nativeSrc":"4565:6:97","nodeType":"YulTypedName","src":"4565:6:97","type":""},{"name":"value0","nativeSrc":"4573:6:97","nodeType":"YulTypedName","src":"4573:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4584:4:97","nodeType":"YulTypedName","src":"4584:4:97","type":""}],"src":"4322:700:97"},{"body":{"nativeSrc":"5201:251:97","nodeType":"YulBlock","src":"5201:251:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5218:9:97","nodeType":"YulIdentifier","src":"5218:9:97"},{"kind":"number","nativeSrc":"5229:2:97","nodeType":"YulLiteral","src":"5229:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"5211:6:97","nodeType":"YulIdentifier","src":"5211:6:97"},"nativeSrc":"5211:21:97","nodeType":"YulFunctionCall","src":"5211:21:97"},"nativeSrc":"5211:21:97","nodeType":"YulExpressionStatement","src":"5211:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5252:9:97","nodeType":"YulIdentifier","src":"5252:9:97"},{"kind":"number","nativeSrc":"5263:2:97","nodeType":"YulLiteral","src":"5263:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5248:3:97","nodeType":"YulIdentifier","src":"5248:3:97"},"nativeSrc":"5248:18:97","nodeType":"YulFunctionCall","src":"5248:18:97"},{"kind":"number","nativeSrc":"5268:2:97","nodeType":"YulLiteral","src":"5268:2:97","type":"","value":"61"}],"functionName":{"name":"mstore","nativeSrc":"5241:6:97","nodeType":"YulIdentifier","src":"5241:6:97"},"nativeSrc":"5241:30:97","nodeType":"YulFunctionCall","src":"5241:30:97"},"nativeSrc":"5241:30:97","nodeType":"YulExpressionStatement","src":"5241:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5291:9:97","nodeType":"YulIdentifier","src":"5291:9:97"},{"kind":"number","nativeSrc":"5302:2:97","nodeType":"YulLiteral","src":"5302:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5287:3:97","nodeType":"YulIdentifier","src":"5287:3:97"},"nativeSrc":"5287:18:97","nodeType":"YulFunctionCall","src":"5287:18:97"},{"hexValue":"54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472","kind":"string","nativeSrc":"5307:34:97","nodeType":"YulLiteral","src":"5307:34:97","type":"","value":"Timelock::executeTransaction: Tr"}],"functionName":{"name":"mstore","nativeSrc":"5280:6:97","nodeType":"YulIdentifier","src":"5280:6:97"},"nativeSrc":"5280:62:97","nodeType":"YulFunctionCall","src":"5280:62:97"},"nativeSrc":"5280:62:97","nodeType":"YulExpressionStatement","src":"5280:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5362:9:97","nodeType":"YulIdentifier","src":"5362:9:97"},{"kind":"number","nativeSrc":"5373:2:97","nodeType":"YulLiteral","src":"5373:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5358:3:97","nodeType":"YulIdentifier","src":"5358:3:97"},"nativeSrc":"5358:18:97","nodeType":"YulFunctionCall","src":"5358:18:97"},{"hexValue":"616e73616374696f6e206861736e2774206265656e207175657565642e","kind":"string","nativeSrc":"5378:31:97","nodeType":"YulLiteral","src":"5378:31:97","type":"","value":"ansaction hasn't been queued."}],"functionName":{"name":"mstore","nativeSrc":"5351:6:97","nodeType":"YulIdentifier","src":"5351:6:97"},"nativeSrc":"5351:59:97","nodeType":"YulFunctionCall","src":"5351:59:97"},"nativeSrc":"5351:59:97","nodeType":"YulExpressionStatement","src":"5351:59:97"},{"nativeSrc":"5419:27:97","nodeType":"YulAssignment","src":"5419:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"5431:9:97","nodeType":"YulIdentifier","src":"5431:9:97"},{"kind":"number","nativeSrc":"5442:3:97","nodeType":"YulLiteral","src":"5442:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"5427:3:97","nodeType":"YulIdentifier","src":"5427:3:97"},"nativeSrc":"5427:19:97","nodeType":"YulFunctionCall","src":"5427:19:97"},"variableNames":[{"name":"tail","nativeSrc":"5419:4:97","nodeType":"YulIdentifier","src":"5419:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_7e3bf24eec453753018af1214443c72d8abb3050b249b2b3b9bb2adb04310650__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5027:425:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5178:9:97","nodeType":"YulTypedName","src":"5178:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5192:4:97","nodeType":"YulTypedName","src":"5192:4:97","type":""}],"src":"5027:425:97"},{"body":{"nativeSrc":"5631:299:97","nodeType":"YulBlock","src":"5631:299:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5648:9:97","nodeType":"YulIdentifier","src":"5648:9:97"},{"kind":"number","nativeSrc":"5659:2:97","nodeType":"YulLiteral","src":"5659:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"5641:6:97","nodeType":"YulIdentifier","src":"5641:6:97"},"nativeSrc":"5641:21:97","nodeType":"YulFunctionCall","src":"5641:21:97"},"nativeSrc":"5641:21:97","nodeType":"YulExpressionStatement","src":"5641:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5682:9:97","nodeType":"YulIdentifier","src":"5682:9:97"},{"kind":"number","nativeSrc":"5693:2:97","nodeType":"YulLiteral","src":"5693:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5678:3:97","nodeType":"YulIdentifier","src":"5678:3:97"},"nativeSrc":"5678:18:97","nodeType":"YulFunctionCall","src":"5678:18:97"},{"kind":"number","nativeSrc":"5698:2:97","nodeType":"YulLiteral","src":"5698:2:97","type":"","value":"69"}],"functionName":{"name":"mstore","nativeSrc":"5671:6:97","nodeType":"YulIdentifier","src":"5671:6:97"},"nativeSrc":"5671:30:97","nodeType":"YulFunctionCall","src":"5671:30:97"},"nativeSrc":"5671:30:97","nodeType":"YulExpressionStatement","src":"5671:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5721:9:97","nodeType":"YulIdentifier","src":"5721:9:97"},{"kind":"number","nativeSrc":"5732:2:97","nodeType":"YulLiteral","src":"5732:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5717:3:97","nodeType":"YulIdentifier","src":"5717:3:97"},"nativeSrc":"5717:18:97","nodeType":"YulFunctionCall","src":"5717:18:97"},{"hexValue":"54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472","kind":"string","nativeSrc":"5737:34:97","nodeType":"YulLiteral","src":"5737:34:97","type":"","value":"Timelock::executeTransaction: Tr"}],"functionName":{"name":"mstore","nativeSrc":"5710:6:97","nodeType":"YulIdentifier","src":"5710:6:97"},"nativeSrc":"5710:62:97","nodeType":"YulFunctionCall","src":"5710:62:97"},"nativeSrc":"5710:62:97","nodeType":"YulExpressionStatement","src":"5710:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5792:9:97","nodeType":"YulIdentifier","src":"5792:9:97"},{"kind":"number","nativeSrc":"5803:2:97","nodeType":"YulLiteral","src":"5803:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5788:3:97","nodeType":"YulIdentifier","src":"5788:3:97"},"nativeSrc":"5788:18:97","nodeType":"YulFunctionCall","src":"5788:18:97"},{"hexValue":"616e73616374696f6e206861736e2774207375727061737365642074696d6520","kind":"string","nativeSrc":"5808:34:97","nodeType":"YulLiteral","src":"5808:34:97","type":"","value":"ansaction hasn't surpassed time "}],"functionName":{"name":"mstore","nativeSrc":"5781:6:97","nodeType":"YulIdentifier","src":"5781:6:97"},"nativeSrc":"5781:62:97","nodeType":"YulFunctionCall","src":"5781:62:97"},"nativeSrc":"5781:62:97","nodeType":"YulExpressionStatement","src":"5781:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5863:9:97","nodeType":"YulIdentifier","src":"5863:9:97"},{"kind":"number","nativeSrc":"5874:3:97","nodeType":"YulLiteral","src":"5874:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"5859:3:97","nodeType":"YulIdentifier","src":"5859:3:97"},"nativeSrc":"5859:19:97","nodeType":"YulFunctionCall","src":"5859:19:97"},{"hexValue":"6c6f636b2e","kind":"string","nativeSrc":"5880:7:97","nodeType":"YulLiteral","src":"5880:7:97","type":"","value":"lock."}],"functionName":{"name":"mstore","nativeSrc":"5852:6:97","nodeType":"YulIdentifier","src":"5852:6:97"},"nativeSrc":"5852:36:97","nodeType":"YulFunctionCall","src":"5852:36:97"},"nativeSrc":"5852:36:97","nodeType":"YulExpressionStatement","src":"5852:36:97"},{"nativeSrc":"5897:27:97","nodeType":"YulAssignment","src":"5897:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"5909:9:97","nodeType":"YulIdentifier","src":"5909:9:97"},{"kind":"number","nativeSrc":"5920:3:97","nodeType":"YulLiteral","src":"5920:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"5905:3:97","nodeType":"YulIdentifier","src":"5905:3:97"},"nativeSrc":"5905:19:97","nodeType":"YulFunctionCall","src":"5905:19:97"},"variableNames":[{"name":"tail","nativeSrc":"5897:4:97","nodeType":"YulIdentifier","src":"5897:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_381d72a875dbcf282eb0ce43951c66b6c4d7dadc6fdeb9294add773d09cd1687__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5457:473:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5608:9:97","nodeType":"YulTypedName","src":"5608:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5622:4:97","nodeType":"YulTypedName","src":"5622:4:97","type":""}],"src":"5457:473:97"},{"body":{"nativeSrc":"5983:231:97","nodeType":"YulBlock","src":"5983:231:97","statements":[{"nativeSrc":"5993:16:97","nodeType":"YulAssignment","src":"5993:16:97","value":{"arguments":[{"name":"x","nativeSrc":"6004:1:97","nodeType":"YulIdentifier","src":"6004:1:97"},{"name":"y","nativeSrc":"6007:1:97","nodeType":"YulIdentifier","src":"6007:1:97"}],"functionName":{"name":"add","nativeSrc":"6000:3:97","nodeType":"YulIdentifier","src":"6000:3:97"},"nativeSrc":"6000:9:97","nodeType":"YulFunctionCall","src":"6000:9:97"},"variableNames":[{"name":"sum","nativeSrc":"5993:3:97","nodeType":"YulIdentifier","src":"5993:3:97"}]},{"body":{"nativeSrc":"6040:168:97","nodeType":"YulBlock","src":"6040:168:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6061:1:97","nodeType":"YulLiteral","src":"6061:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"6064:77:97","nodeType":"YulLiteral","src":"6064:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6054:6:97","nodeType":"YulIdentifier","src":"6054:6:97"},"nativeSrc":"6054:88:97","nodeType":"YulFunctionCall","src":"6054:88:97"},"nativeSrc":"6054:88:97","nodeType":"YulExpressionStatement","src":"6054:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6162:1:97","nodeType":"YulLiteral","src":"6162:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"6165:4:97","nodeType":"YulLiteral","src":"6165:4:97","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"6155:6:97","nodeType":"YulIdentifier","src":"6155:6:97"},"nativeSrc":"6155:15:97","nodeType":"YulFunctionCall","src":"6155:15:97"},"nativeSrc":"6155:15:97","nodeType":"YulExpressionStatement","src":"6155:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6190:1:97","nodeType":"YulLiteral","src":"6190:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"6193:4:97","nodeType":"YulLiteral","src":"6193:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6183:6:97","nodeType":"YulIdentifier","src":"6183:6:97"},"nativeSrc":"6183:15:97","nodeType":"YulFunctionCall","src":"6183:15:97"},"nativeSrc":"6183:15:97","nodeType":"YulExpressionStatement","src":"6183:15:97"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"6024:1:97","nodeType":"YulIdentifier","src":"6024:1:97"},{"name":"sum","nativeSrc":"6027:3:97","nodeType":"YulIdentifier","src":"6027:3:97"}],"functionName":{"name":"gt","nativeSrc":"6021:2:97","nodeType":"YulIdentifier","src":"6021:2:97"},"nativeSrc":"6021:10:97","nodeType":"YulFunctionCall","src":"6021:10:97"},"nativeSrc":"6018:190:97","nodeType":"YulIf","src":"6018:190:97"}]},"name":"checked_add_t_uint256","nativeSrc":"5935:279:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"5966:1:97","nodeType":"YulTypedName","src":"5966:1:97","type":""},{"name":"y","nativeSrc":"5969:1:97","nodeType":"YulTypedName","src":"5969:1:97","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"5975:3:97","nodeType":"YulTypedName","src":"5975:3:97","type":""}],"src":"5935:279:97"},{"body":{"nativeSrc":"6393:241:97","nodeType":"YulBlock","src":"6393:241:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6410:9:97","nodeType":"YulIdentifier","src":"6410:9:97"},{"kind":"number","nativeSrc":"6421:2:97","nodeType":"YulLiteral","src":"6421:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"6403:6:97","nodeType":"YulIdentifier","src":"6403:6:97"},"nativeSrc":"6403:21:97","nodeType":"YulFunctionCall","src":"6403:21:97"},"nativeSrc":"6403:21:97","nodeType":"YulExpressionStatement","src":"6403:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6444:9:97","nodeType":"YulIdentifier","src":"6444:9:97"},{"kind":"number","nativeSrc":"6455:2:97","nodeType":"YulLiteral","src":"6455:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6440:3:97","nodeType":"YulIdentifier","src":"6440:3:97"},"nativeSrc":"6440:18:97","nodeType":"YulFunctionCall","src":"6440:18:97"},{"kind":"number","nativeSrc":"6460:2:97","nodeType":"YulLiteral","src":"6460:2:97","type":"","value":"51"}],"functionName":{"name":"mstore","nativeSrc":"6433:6:97","nodeType":"YulIdentifier","src":"6433:6:97"},"nativeSrc":"6433:30:97","nodeType":"YulFunctionCall","src":"6433:30:97"},"nativeSrc":"6433:30:97","nodeType":"YulExpressionStatement","src":"6433:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6483:9:97","nodeType":"YulIdentifier","src":"6483:9:97"},{"kind":"number","nativeSrc":"6494:2:97","nodeType":"YulLiteral","src":"6494:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6479:3:97","nodeType":"YulIdentifier","src":"6479:3:97"},"nativeSrc":"6479:18:97","nodeType":"YulFunctionCall","src":"6479:18:97"},{"hexValue":"54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472","kind":"string","nativeSrc":"6499:34:97","nodeType":"YulLiteral","src":"6499:34:97","type":"","value":"Timelock::executeTransaction: Tr"}],"functionName":{"name":"mstore","nativeSrc":"6472:6:97","nodeType":"YulIdentifier","src":"6472:6:97"},"nativeSrc":"6472:62:97","nodeType":"YulFunctionCall","src":"6472:62:97"},"nativeSrc":"6472:62:97","nodeType":"YulExpressionStatement","src":"6472:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6554:9:97","nodeType":"YulIdentifier","src":"6554:9:97"},{"kind":"number","nativeSrc":"6565:2:97","nodeType":"YulLiteral","src":"6565:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"6550:3:97","nodeType":"YulIdentifier","src":"6550:3:97"},"nativeSrc":"6550:18:97","nodeType":"YulFunctionCall","src":"6550:18:97"},{"hexValue":"616e73616374696f6e206973207374616c652e","kind":"string","nativeSrc":"6570:21:97","nodeType":"YulLiteral","src":"6570:21:97","type":"","value":"ansaction is stale."}],"functionName":{"name":"mstore","nativeSrc":"6543:6:97","nodeType":"YulIdentifier","src":"6543:6:97"},"nativeSrc":"6543:49:97","nodeType":"YulFunctionCall","src":"6543:49:97"},"nativeSrc":"6543:49:97","nodeType":"YulExpressionStatement","src":"6543:49:97"},{"nativeSrc":"6601:27:97","nodeType":"YulAssignment","src":"6601:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"6613:9:97","nodeType":"YulIdentifier","src":"6613:9:97"},{"kind":"number","nativeSrc":"6624:3:97","nodeType":"YulLiteral","src":"6624:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"6609:3:97","nodeType":"YulIdentifier","src":"6609:3:97"},"nativeSrc":"6609:19:97","nodeType":"YulFunctionCall","src":"6609:19:97"},"variableNames":[{"name":"tail","nativeSrc":"6601:4:97","nodeType":"YulIdentifier","src":"6601:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_2c4a83afbdcff2c4ba869dacfa7dabb27b12f774a0707feae827e36773b8166c__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6219:415:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6370:9:97","nodeType":"YulTypedName","src":"6370:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6384:4:97","nodeType":"YulTypedName","src":"6384:4:97","type":""}],"src":"6219:415:97"},{"body":{"nativeSrc":"6786:124:97","nodeType":"YulBlock","src":"6786:124:97","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6809:3:97","nodeType":"YulIdentifier","src":"6809:3:97"},{"name":"value0","nativeSrc":"6814:6:97","nodeType":"YulIdentifier","src":"6814:6:97"},{"name":"value1","nativeSrc":"6822:6:97","nodeType":"YulIdentifier","src":"6822:6:97"}],"functionName":{"name":"calldatacopy","nativeSrc":"6796:12:97","nodeType":"YulIdentifier","src":"6796:12:97"},"nativeSrc":"6796:33:97","nodeType":"YulFunctionCall","src":"6796:33:97"},"nativeSrc":"6796:33:97","nodeType":"YulExpressionStatement","src":"6796:33:97"},{"nativeSrc":"6838:26:97","nodeType":"YulVariableDeclaration","src":"6838:26:97","value":{"arguments":[{"name":"pos","nativeSrc":"6852:3:97","nodeType":"YulIdentifier","src":"6852:3:97"},{"name":"value1","nativeSrc":"6857:6:97","nodeType":"YulIdentifier","src":"6857:6:97"}],"functionName":{"name":"add","nativeSrc":"6848:3:97","nodeType":"YulIdentifier","src":"6848:3:97"},"nativeSrc":"6848:16:97","nodeType":"YulFunctionCall","src":"6848:16:97"},"variables":[{"name":"_1","nativeSrc":"6842:2:97","nodeType":"YulTypedName","src":"6842:2:97","type":""}]},{"expression":{"arguments":[{"name":"_1","nativeSrc":"6880:2:97","nodeType":"YulIdentifier","src":"6880:2:97"},{"kind":"number","nativeSrc":"6884:1:97","nodeType":"YulLiteral","src":"6884:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"6873:6:97","nodeType":"YulIdentifier","src":"6873:6:97"},"nativeSrc":"6873:13:97","nodeType":"YulFunctionCall","src":"6873:13:97"},"nativeSrc":"6873:13:97","nodeType":"YulExpressionStatement","src":"6873:13:97"},{"nativeSrc":"6895:9:97","nodeType":"YulAssignment","src":"6895:9:97","value":{"name":"_1","nativeSrc":"6902:2:97","nodeType":"YulIdentifier","src":"6902:2:97"},"variableNames":[{"name":"end","nativeSrc":"6895:3:97","nodeType":"YulIdentifier","src":"6895:3:97"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"6639:271:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"6754:3:97","nodeType":"YulTypedName","src":"6754:3:97","type":""},{"name":"value1","nativeSrc":"6759:6:97","nodeType":"YulTypedName","src":"6759:6:97","type":""},{"name":"value0","nativeSrc":"6767:6:97","nodeType":"YulTypedName","src":"6767:6:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"6778:3:97","nodeType":"YulTypedName","src":"6778:3:97","type":""}],"src":"6639:271:97"},{"body":{"nativeSrc":"7088:241:97","nodeType":"YulBlock","src":"7088:241:97","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"7105:3:97","nodeType":"YulIdentifier","src":"7105:3:97"},{"arguments":[{"name":"value0","nativeSrc":"7114:6:97","nodeType":"YulIdentifier","src":"7114:6:97"},{"kind":"number","nativeSrc":"7122:66:97","nodeType":"YulLiteral","src":"7122:66:97","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"7110:3:97","nodeType":"YulIdentifier","src":"7110:3:97"},"nativeSrc":"7110:79:97","nodeType":"YulFunctionCall","src":"7110:79:97"}],"functionName":{"name":"mstore","nativeSrc":"7098:6:97","nodeType":"YulIdentifier","src":"7098:6:97"},"nativeSrc":"7098:92:97","nodeType":"YulFunctionCall","src":"7098:92:97"},"nativeSrc":"7098:92:97","nodeType":"YulExpressionStatement","src":"7098:92:97"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"7216:3:97","nodeType":"YulIdentifier","src":"7216:3:97"},{"kind":"number","nativeSrc":"7221:1:97","nodeType":"YulLiteral","src":"7221:1:97","type":"","value":"4"}],"functionName":{"name":"add","nativeSrc":"7212:3:97","nodeType":"YulIdentifier","src":"7212:3:97"},"nativeSrc":"7212:11:97","nodeType":"YulFunctionCall","src":"7212:11:97"},{"name":"value1","nativeSrc":"7225:6:97","nodeType":"YulIdentifier","src":"7225:6:97"},{"name":"value2","nativeSrc":"7233:6:97","nodeType":"YulIdentifier","src":"7233:6:97"}],"functionName":{"name":"calldatacopy","nativeSrc":"7199:12:97","nodeType":"YulIdentifier","src":"7199:12:97"},"nativeSrc":"7199:41:97","nodeType":"YulFunctionCall","src":"7199:41:97"},"nativeSrc":"7199:41:97","nodeType":"YulExpressionStatement","src":"7199:41:97"},{"nativeSrc":"7249:34:97","nodeType":"YulVariableDeclaration","src":"7249:34:97","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"7267:3:97","nodeType":"YulIdentifier","src":"7267:3:97"},{"name":"value2","nativeSrc":"7272:6:97","nodeType":"YulIdentifier","src":"7272:6:97"}],"functionName":{"name":"add","nativeSrc":"7263:3:97","nodeType":"YulIdentifier","src":"7263:3:97"},"nativeSrc":"7263:16:97","nodeType":"YulFunctionCall","src":"7263:16:97"},{"kind":"number","nativeSrc":"7281:1:97","nodeType":"YulLiteral","src":"7281:1:97","type":"","value":"4"}],"functionName":{"name":"add","nativeSrc":"7259:3:97","nodeType":"YulIdentifier","src":"7259:3:97"},"nativeSrc":"7259:24:97","nodeType":"YulFunctionCall","src":"7259:24:97"},"variables":[{"name":"_1","nativeSrc":"7253:2:97","nodeType":"YulTypedName","src":"7253:2:97","type":""}]},{"expression":{"arguments":[{"name":"_1","nativeSrc":"7299:2:97","nodeType":"YulIdentifier","src":"7299:2:97"},{"kind":"number","nativeSrc":"7303:1:97","nodeType":"YulLiteral","src":"7303:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"7292:6:97","nodeType":"YulIdentifier","src":"7292:6:97"},"nativeSrc":"7292:13:97","nodeType":"YulFunctionCall","src":"7292:13:97"},"nativeSrc":"7292:13:97","nodeType":"YulExpressionStatement","src":"7292:13:97"},{"nativeSrc":"7314:9:97","nodeType":"YulAssignment","src":"7314:9:97","value":{"name":"_1","nativeSrc":"7321:2:97","nodeType":"YulIdentifier","src":"7321:2:97"},"variableNames":[{"name":"end","nativeSrc":"7314:3:97","nodeType":"YulIdentifier","src":"7314:3:97"}]}]},"name":"abi_encode_tuple_packed_t_bytes4_t_bytes_calldata_ptr__to_t_bytes4_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"6915:414:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7048:3:97","nodeType":"YulTypedName","src":"7048:3:97","type":""},{"name":"value2","nativeSrc":"7053:6:97","nodeType":"YulTypedName","src":"7053:6:97","type":""},{"name":"value1","nativeSrc":"7061:6:97","nodeType":"YulTypedName","src":"7061:6:97","type":""},{"name":"value0","nativeSrc":"7069:6:97","nodeType":"YulTypedName","src":"7069:6:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7080:3:97","nodeType":"YulTypedName","src":"7080:3:97","type":""}],"src":"6915:414:97"},{"body":{"nativeSrc":"7471:150:97","nodeType":"YulBlock","src":"7471:150:97","statements":[{"nativeSrc":"7481:27:97","nodeType":"YulVariableDeclaration","src":"7481:27:97","value":{"arguments":[{"name":"value0","nativeSrc":"7501:6:97","nodeType":"YulIdentifier","src":"7501:6:97"}],"functionName":{"name":"mload","nativeSrc":"7495:5:97","nodeType":"YulIdentifier","src":"7495:5:97"},"nativeSrc":"7495:13:97","nodeType":"YulFunctionCall","src":"7495:13:97"},"variables":[{"name":"length","nativeSrc":"7485:6:97","nodeType":"YulTypedName","src":"7485:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"7556:6:97","nodeType":"YulIdentifier","src":"7556:6:97"},{"kind":"number","nativeSrc":"7564:4:97","nodeType":"YulLiteral","src":"7564:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7552:3:97","nodeType":"YulIdentifier","src":"7552:3:97"},"nativeSrc":"7552:17:97","nodeType":"YulFunctionCall","src":"7552:17:97"},{"name":"pos","nativeSrc":"7571:3:97","nodeType":"YulIdentifier","src":"7571:3:97"},{"name":"length","nativeSrc":"7576:6:97","nodeType":"YulIdentifier","src":"7576:6:97"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"7517:34:97","nodeType":"YulIdentifier","src":"7517:34:97"},"nativeSrc":"7517:66:97","nodeType":"YulFunctionCall","src":"7517:66:97"},"nativeSrc":"7517:66:97","nodeType":"YulExpressionStatement","src":"7517:66:97"},{"nativeSrc":"7592:23:97","nodeType":"YulAssignment","src":"7592:23:97","value":{"arguments":[{"name":"pos","nativeSrc":"7603:3:97","nodeType":"YulIdentifier","src":"7603:3:97"},{"name":"length","nativeSrc":"7608:6:97","nodeType":"YulIdentifier","src":"7608:6:97"}],"functionName":{"name":"add","nativeSrc":"7599:3:97","nodeType":"YulIdentifier","src":"7599:3:97"},"nativeSrc":"7599:16:97","nodeType":"YulFunctionCall","src":"7599:16:97"},"variableNames":[{"name":"end","nativeSrc":"7592:3:97","nodeType":"YulIdentifier","src":"7592:3:97"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"7334:287:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7447:3:97","nodeType":"YulTypedName","src":"7447:3:97","type":""},{"name":"value0","nativeSrc":"7452:6:97","nodeType":"YulTypedName","src":"7452:6:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7463:3:97","nodeType":"YulTypedName","src":"7463:3:97","type":""}],"src":"7334:287:97"},{"body":{"nativeSrc":"7800:251:97","nodeType":"YulBlock","src":"7800:251:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7817:9:97","nodeType":"YulIdentifier","src":"7817:9:97"},{"kind":"number","nativeSrc":"7828:2:97","nodeType":"YulLiteral","src":"7828:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"7810:6:97","nodeType":"YulIdentifier","src":"7810:6:97"},"nativeSrc":"7810:21:97","nodeType":"YulFunctionCall","src":"7810:21:97"},"nativeSrc":"7810:21:97","nodeType":"YulExpressionStatement","src":"7810:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7851:9:97","nodeType":"YulIdentifier","src":"7851:9:97"},{"kind":"number","nativeSrc":"7862:2:97","nodeType":"YulLiteral","src":"7862:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7847:3:97","nodeType":"YulIdentifier","src":"7847:3:97"},"nativeSrc":"7847:18:97","nodeType":"YulFunctionCall","src":"7847:18:97"},{"kind":"number","nativeSrc":"7867:2:97","nodeType":"YulLiteral","src":"7867:2:97","type":"","value":"61"}],"functionName":{"name":"mstore","nativeSrc":"7840:6:97","nodeType":"YulIdentifier","src":"7840:6:97"},"nativeSrc":"7840:30:97","nodeType":"YulFunctionCall","src":"7840:30:97"},"nativeSrc":"7840:30:97","nodeType":"YulExpressionStatement","src":"7840:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7890:9:97","nodeType":"YulIdentifier","src":"7890:9:97"},{"kind":"number","nativeSrc":"7901:2:97","nodeType":"YulLiteral","src":"7901:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7886:3:97","nodeType":"YulIdentifier","src":"7886:3:97"},"nativeSrc":"7886:18:97","nodeType":"YulFunctionCall","src":"7886:18:97"},{"hexValue":"54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472","kind":"string","nativeSrc":"7906:34:97","nodeType":"YulLiteral","src":"7906:34:97","type":"","value":"Timelock::executeTransaction: Tr"}],"functionName":{"name":"mstore","nativeSrc":"7879:6:97","nodeType":"YulIdentifier","src":"7879:6:97"},"nativeSrc":"7879:62:97","nodeType":"YulFunctionCall","src":"7879:62:97"},"nativeSrc":"7879:62:97","nodeType":"YulExpressionStatement","src":"7879:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7961:9:97","nodeType":"YulIdentifier","src":"7961:9:97"},{"kind":"number","nativeSrc":"7972:2:97","nodeType":"YulLiteral","src":"7972:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"7957:3:97","nodeType":"YulIdentifier","src":"7957:3:97"},"nativeSrc":"7957:18:97","nodeType":"YulFunctionCall","src":"7957:18:97"},{"hexValue":"616e73616374696f6e20657865637574696f6e2072657665727465642e","kind":"string","nativeSrc":"7977:31:97","nodeType":"YulLiteral","src":"7977:31:97","type":"","value":"ansaction execution reverted."}],"functionName":{"name":"mstore","nativeSrc":"7950:6:97","nodeType":"YulIdentifier","src":"7950:6:97"},"nativeSrc":"7950:59:97","nodeType":"YulFunctionCall","src":"7950:59:97"},"nativeSrc":"7950:59:97","nodeType":"YulExpressionStatement","src":"7950:59:97"},{"nativeSrc":"8018:27:97","nodeType":"YulAssignment","src":"8018:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"8030:9:97","nodeType":"YulIdentifier","src":"8030:9:97"},{"kind":"number","nativeSrc":"8041:3:97","nodeType":"YulLiteral","src":"8041:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"8026:3:97","nodeType":"YulIdentifier","src":"8026:3:97"},"nativeSrc":"8026:19:97","nodeType":"YulFunctionCall","src":"8026:19:97"},"variableNames":[{"name":"tail","nativeSrc":"8018:4:97","nodeType":"YulIdentifier","src":"8018:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_c8cfef133518ef6ab39ac5f19562a74f4f875e9130c8117d51f88a557b6e72c9__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"7626:425:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7777:9:97","nodeType":"YulTypedName","src":"7777:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7791:4:97","nodeType":"YulTypedName","src":"7791:4:97","type":""}],"src":"7626:425:97"},{"body":{"nativeSrc":"8299:336:97","nodeType":"YulBlock","src":"8299:336:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8316:9:97","nodeType":"YulIdentifier","src":"8316:9:97"},{"name":"value0","nativeSrc":"8327:6:97","nodeType":"YulIdentifier","src":"8327:6:97"}],"functionName":{"name":"mstore","nativeSrc":"8309:6:97","nodeType":"YulIdentifier","src":"8309:6:97"},"nativeSrc":"8309:25:97","nodeType":"YulFunctionCall","src":"8309:25:97"},"nativeSrc":"8309:25:97","nodeType":"YulExpressionStatement","src":"8309:25:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8354:9:97","nodeType":"YulIdentifier","src":"8354:9:97"},{"kind":"number","nativeSrc":"8365:2:97","nodeType":"YulLiteral","src":"8365:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8350:3:97","nodeType":"YulIdentifier","src":"8350:3:97"},"nativeSrc":"8350:18:97","nodeType":"YulFunctionCall","src":"8350:18:97"},{"kind":"number","nativeSrc":"8370:3:97","nodeType":"YulLiteral","src":"8370:3:97","type":"","value":"128"}],"functionName":{"name":"mstore","nativeSrc":"8343:6:97","nodeType":"YulIdentifier","src":"8343:6:97"},"nativeSrc":"8343:31:97","nodeType":"YulFunctionCall","src":"8343:31:97"},"nativeSrc":"8343:31:97","nodeType":"YulExpressionStatement","src":"8343:31:97"},{"nativeSrc":"8383:77:97","nodeType":"YulVariableDeclaration","src":"8383:77:97","value":{"arguments":[{"name":"value1","nativeSrc":"8424:6:97","nodeType":"YulIdentifier","src":"8424:6:97"},{"name":"value2","nativeSrc":"8432:6:97","nodeType":"YulIdentifier","src":"8432:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"8444:9:97","nodeType":"YulIdentifier","src":"8444:9:97"},{"kind":"number","nativeSrc":"8455:3:97","nodeType":"YulLiteral","src":"8455:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"8440:3:97","nodeType":"YulIdentifier","src":"8440:3:97"},"nativeSrc":"8440:19:97","nodeType":"YulFunctionCall","src":"8440:19:97"}],"functionName":{"name":"abi_encode_string_calldata","nativeSrc":"8397:26:97","nodeType":"YulIdentifier","src":"8397:26:97"},"nativeSrc":"8397:63:97","nodeType":"YulFunctionCall","src":"8397:63:97"},"variables":[{"name":"tail_1","nativeSrc":"8387:6:97","nodeType":"YulTypedName","src":"8387:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8480:9:97","nodeType":"YulIdentifier","src":"8480:9:97"},{"kind":"number","nativeSrc":"8491:2:97","nodeType":"YulLiteral","src":"8491:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8476:3:97","nodeType":"YulIdentifier","src":"8476:3:97"},"nativeSrc":"8476:18:97","nodeType":"YulFunctionCall","src":"8476:18:97"},{"arguments":[{"name":"tail_1","nativeSrc":"8500:6:97","nodeType":"YulIdentifier","src":"8500:6:97"},{"name":"headStart","nativeSrc":"8508:9:97","nodeType":"YulIdentifier","src":"8508:9:97"}],"functionName":{"name":"sub","nativeSrc":"8496:3:97","nodeType":"YulIdentifier","src":"8496:3:97"},"nativeSrc":"8496:22:97","nodeType":"YulFunctionCall","src":"8496:22:97"}],"functionName":{"name":"mstore","nativeSrc":"8469:6:97","nodeType":"YulIdentifier","src":"8469:6:97"},"nativeSrc":"8469:50:97","nodeType":"YulFunctionCall","src":"8469:50:97"},"nativeSrc":"8469:50:97","nodeType":"YulExpressionStatement","src":"8469:50:97"},{"nativeSrc":"8528:58:97","nodeType":"YulAssignment","src":"8528:58:97","value":{"arguments":[{"name":"value3","nativeSrc":"8563:6:97","nodeType":"YulIdentifier","src":"8563:6:97"},{"name":"value4","nativeSrc":"8571:6:97","nodeType":"YulIdentifier","src":"8571:6:97"},{"name":"tail_1","nativeSrc":"8579:6:97","nodeType":"YulIdentifier","src":"8579:6:97"}],"functionName":{"name":"abi_encode_string_calldata","nativeSrc":"8536:26:97","nodeType":"YulIdentifier","src":"8536:26:97"},"nativeSrc":"8536:50:97","nodeType":"YulFunctionCall","src":"8536:50:97"},"variableNames":[{"name":"tail","nativeSrc":"8528:4:97","nodeType":"YulIdentifier","src":"8528:4:97"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8606:9:97","nodeType":"YulIdentifier","src":"8606:9:97"},{"kind":"number","nativeSrc":"8617:2:97","nodeType":"YulLiteral","src":"8617:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"8602:3:97","nodeType":"YulIdentifier","src":"8602:3:97"},"nativeSrc":"8602:18:97","nodeType":"YulFunctionCall","src":"8602:18:97"},{"name":"value5","nativeSrc":"8622:6:97","nodeType":"YulIdentifier","src":"8622:6:97"}],"functionName":{"name":"mstore","nativeSrc":"8595:6:97","nodeType":"YulIdentifier","src":"8595:6:97"},"nativeSrc":"8595:34:97","nodeType":"YulFunctionCall","src":"8595:34:97"},"nativeSrc":"8595:34:97","nodeType":"YulExpressionStatement","src":"8595:34:97"}]},"name":"abi_encode_tuple_t_uint256_t_string_calldata_ptr_t_bytes_calldata_ptr_t_uint256__to_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed","nativeSrc":"8056:579:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8228:9:97","nodeType":"YulTypedName","src":"8228:9:97","type":""},{"name":"value5","nativeSrc":"8239:6:97","nodeType":"YulTypedName","src":"8239:6:97","type":""},{"name":"value4","nativeSrc":"8247:6:97","nodeType":"YulTypedName","src":"8247:6:97","type":""},{"name":"value3","nativeSrc":"8255:6:97","nodeType":"YulTypedName","src":"8255:6:97","type":""},{"name":"value2","nativeSrc":"8263:6:97","nodeType":"YulTypedName","src":"8263:6:97","type":""},{"name":"value1","nativeSrc":"8271:6:97","nodeType":"YulTypedName","src":"8271:6:97","type":""},{"name":"value0","nativeSrc":"8279:6:97","nodeType":"YulTypedName","src":"8279:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8290:4:97","nodeType":"YulTypedName","src":"8290:4:97","type":""}],"src":"8056:579:97"},{"body":{"nativeSrc":"8814:246:97","nodeType":"YulBlock","src":"8814:246:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8831:9:97","nodeType":"YulIdentifier","src":"8831:9:97"},{"kind":"number","nativeSrc":"8842:2:97","nodeType":"YulLiteral","src":"8842:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"8824:6:97","nodeType":"YulIdentifier","src":"8824:6:97"},"nativeSrc":"8824:21:97","nodeType":"YulFunctionCall","src":"8824:21:97"},"nativeSrc":"8824:21:97","nodeType":"YulExpressionStatement","src":"8824:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8865:9:97","nodeType":"YulIdentifier","src":"8865:9:97"},{"kind":"number","nativeSrc":"8876:2:97","nodeType":"YulLiteral","src":"8876:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8861:3:97","nodeType":"YulIdentifier","src":"8861:3:97"},"nativeSrc":"8861:18:97","nodeType":"YulFunctionCall","src":"8861:18:97"},{"kind":"number","nativeSrc":"8881:2:97","nodeType":"YulLiteral","src":"8881:2:97","type":"","value":"56"}],"functionName":{"name":"mstore","nativeSrc":"8854:6:97","nodeType":"YulIdentifier","src":"8854:6:97"},"nativeSrc":"8854:30:97","nodeType":"YulFunctionCall","src":"8854:30:97"},"nativeSrc":"8854:30:97","nodeType":"YulExpressionStatement","src":"8854:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8904:9:97","nodeType":"YulIdentifier","src":"8904:9:97"},{"kind":"number","nativeSrc":"8915:2:97","nodeType":"YulLiteral","src":"8915:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8900:3:97","nodeType":"YulIdentifier","src":"8900:3:97"},"nativeSrc":"8900:18:97","nodeType":"YulFunctionCall","src":"8900:18:97"},{"hexValue":"54696d656c6f636b3a3a61636365707441646d696e3a2043616c6c206d757374","kind":"string","nativeSrc":"8920:34:97","nodeType":"YulLiteral","src":"8920:34:97","type":"","value":"Timelock::acceptAdmin: Call must"}],"functionName":{"name":"mstore","nativeSrc":"8893:6:97","nodeType":"YulIdentifier","src":"8893:6:97"},"nativeSrc":"8893:62:97","nodeType":"YulFunctionCall","src":"8893:62:97"},"nativeSrc":"8893:62:97","nodeType":"YulExpressionStatement","src":"8893:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8975:9:97","nodeType":"YulIdentifier","src":"8975:9:97"},{"kind":"number","nativeSrc":"8986:2:97","nodeType":"YulLiteral","src":"8986:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"8971:3:97","nodeType":"YulIdentifier","src":"8971:3:97"},"nativeSrc":"8971:18:97","nodeType":"YulFunctionCall","src":"8971:18:97"},{"hexValue":"20636f6d652066726f6d2070656e64696e6741646d696e2e","kind":"string","nativeSrc":"8991:26:97","nodeType":"YulLiteral","src":"8991:26:97","type":"","value":" come from pendingAdmin."}],"functionName":{"name":"mstore","nativeSrc":"8964:6:97","nodeType":"YulIdentifier","src":"8964:6:97"},"nativeSrc":"8964:54:97","nodeType":"YulFunctionCall","src":"8964:54:97"},"nativeSrc":"8964:54:97","nodeType":"YulExpressionStatement","src":"8964:54:97"},{"nativeSrc":"9027:27:97","nodeType":"YulAssignment","src":"9027:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"9039:9:97","nodeType":"YulIdentifier","src":"9039:9:97"},{"kind":"number","nativeSrc":"9050:3:97","nodeType":"YulLiteral","src":"9050:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"9035:3:97","nodeType":"YulIdentifier","src":"9035:3:97"},"nativeSrc":"9035:19:97","nodeType":"YulFunctionCall","src":"9035:19:97"},"variableNames":[{"name":"tail","nativeSrc":"9027:4:97","nodeType":"YulIdentifier","src":"9027:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_a6d22532620e2c2df8ce400b3f4754629da5ed6321258d3add10ae5aba9450b3__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"8640:420:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8791:9:97","nodeType":"YulTypedName","src":"8791:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8805:4:97","nodeType":"YulTypedName","src":"8805:4:97","type":""}],"src":"8640:420:97"},{"body":{"nativeSrc":"9239:244:97","nodeType":"YulBlock","src":"9239:244:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"9256:9:97","nodeType":"YulIdentifier","src":"9256:9:97"},{"kind":"number","nativeSrc":"9267:2:97","nodeType":"YulLiteral","src":"9267:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"9249:6:97","nodeType":"YulIdentifier","src":"9249:6:97"},"nativeSrc":"9249:21:97","nodeType":"YulFunctionCall","src":"9249:21:97"},"nativeSrc":"9249:21:97","nodeType":"YulExpressionStatement","src":"9249:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9290:9:97","nodeType":"YulIdentifier","src":"9290:9:97"},{"kind":"number","nativeSrc":"9301:2:97","nodeType":"YulLiteral","src":"9301:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9286:3:97","nodeType":"YulIdentifier","src":"9286:3:97"},"nativeSrc":"9286:18:97","nodeType":"YulFunctionCall","src":"9286:18:97"},{"kind":"number","nativeSrc":"9306:2:97","nodeType":"YulLiteral","src":"9306:2:97","type":"","value":"54"}],"functionName":{"name":"mstore","nativeSrc":"9279:6:97","nodeType":"YulIdentifier","src":"9279:6:97"},"nativeSrc":"9279:30:97","nodeType":"YulFunctionCall","src":"9279:30:97"},"nativeSrc":"9279:30:97","nodeType":"YulExpressionStatement","src":"9279:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9329:9:97","nodeType":"YulIdentifier","src":"9329:9:97"},{"kind":"number","nativeSrc":"9340:2:97","nodeType":"YulLiteral","src":"9340:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9325:3:97","nodeType":"YulIdentifier","src":"9325:3:97"},"nativeSrc":"9325:18:97","nodeType":"YulFunctionCall","src":"9325:18:97"},{"hexValue":"54696d656c6f636b3a3a71756575655472616e73616374696f6e3a2043616c6c","kind":"string","nativeSrc":"9345:34:97","nodeType":"YulLiteral","src":"9345:34:97","type":"","value":"Timelock::queueTransaction: Call"}],"functionName":{"name":"mstore","nativeSrc":"9318:6:97","nodeType":"YulIdentifier","src":"9318:6:97"},"nativeSrc":"9318:62:97","nodeType":"YulFunctionCall","src":"9318:62:97"},"nativeSrc":"9318:62:97","nodeType":"YulExpressionStatement","src":"9318:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9400:9:97","nodeType":"YulIdentifier","src":"9400:9:97"},{"kind":"number","nativeSrc":"9411:2:97","nodeType":"YulLiteral","src":"9411:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"9396:3:97","nodeType":"YulIdentifier","src":"9396:3:97"},"nativeSrc":"9396:18:97","nodeType":"YulFunctionCall","src":"9396:18:97"},{"hexValue":"206d75737420636f6d652066726f6d2061646d696e2e","kind":"string","nativeSrc":"9416:24:97","nodeType":"YulLiteral","src":"9416:24:97","type":"","value":" must come from admin."}],"functionName":{"name":"mstore","nativeSrc":"9389:6:97","nodeType":"YulIdentifier","src":"9389:6:97"},"nativeSrc":"9389:52:97","nodeType":"YulFunctionCall","src":"9389:52:97"},"nativeSrc":"9389:52:97","nodeType":"YulExpressionStatement","src":"9389:52:97"},{"nativeSrc":"9450:27:97","nodeType":"YulAssignment","src":"9450:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"9462:9:97","nodeType":"YulIdentifier","src":"9462:9:97"},{"kind":"number","nativeSrc":"9473:3:97","nodeType":"YulLiteral","src":"9473:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"9458:3:97","nodeType":"YulIdentifier","src":"9458:3:97"},"nativeSrc":"9458:19:97","nodeType":"YulFunctionCall","src":"9458:19:97"},"variableNames":[{"name":"tail","nativeSrc":"9450:4:97","nodeType":"YulIdentifier","src":"9450:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_b9bd2ade56c0bd4d6738b7a39a90e136f8901e8e7945a3d237050075ad6fd749__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"9065:418:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9216:9:97","nodeType":"YulTypedName","src":"9216:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9230:4:97","nodeType":"YulTypedName","src":"9230:4:97","type":""}],"src":"9065:418:97"},{"body":{"nativeSrc":"9662:303:97","nodeType":"YulBlock","src":"9662:303:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"9679:9:97","nodeType":"YulIdentifier","src":"9679:9:97"},{"kind":"number","nativeSrc":"9690:2:97","nodeType":"YulLiteral","src":"9690:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"9672:6:97","nodeType":"YulIdentifier","src":"9672:6:97"},"nativeSrc":"9672:21:97","nodeType":"YulFunctionCall","src":"9672:21:97"},"nativeSrc":"9672:21:97","nodeType":"YulExpressionStatement","src":"9672:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9713:9:97","nodeType":"YulIdentifier","src":"9713:9:97"},{"kind":"number","nativeSrc":"9724:2:97","nodeType":"YulLiteral","src":"9724:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9709:3:97","nodeType":"YulIdentifier","src":"9709:3:97"},"nativeSrc":"9709:18:97","nodeType":"YulFunctionCall","src":"9709:18:97"},{"kind":"number","nativeSrc":"9729:2:97","nodeType":"YulLiteral","src":"9729:2:97","type":"","value":"73"}],"functionName":{"name":"mstore","nativeSrc":"9702:6:97","nodeType":"YulIdentifier","src":"9702:6:97"},"nativeSrc":"9702:30:97","nodeType":"YulFunctionCall","src":"9702:30:97"},"nativeSrc":"9702:30:97","nodeType":"YulExpressionStatement","src":"9702:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9752:9:97","nodeType":"YulIdentifier","src":"9752:9:97"},{"kind":"number","nativeSrc":"9763:2:97","nodeType":"YulLiteral","src":"9763:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9748:3:97","nodeType":"YulIdentifier","src":"9748:3:97"},"nativeSrc":"9748:18:97","nodeType":"YulFunctionCall","src":"9748:18:97"},{"hexValue":"54696d656c6f636b3a3a71756575655472616e73616374696f6e3a2045737469","kind":"string","nativeSrc":"9768:34:97","nodeType":"YulLiteral","src":"9768:34:97","type":"","value":"Timelock::queueTransaction: Esti"}],"functionName":{"name":"mstore","nativeSrc":"9741:6:97","nodeType":"YulIdentifier","src":"9741:6:97"},"nativeSrc":"9741:62:97","nodeType":"YulFunctionCall","src":"9741:62:97"},"nativeSrc":"9741:62:97","nodeType":"YulExpressionStatement","src":"9741:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9823:9:97","nodeType":"YulIdentifier","src":"9823:9:97"},{"kind":"number","nativeSrc":"9834:2:97","nodeType":"YulLiteral","src":"9834:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"9819:3:97","nodeType":"YulIdentifier","src":"9819:3:97"},"nativeSrc":"9819:18:97","nodeType":"YulFunctionCall","src":"9819:18:97"},{"hexValue":"6d6174656420657865637574696f6e20626c6f636b206d757374207361746973","kind":"string","nativeSrc":"9839:34:97","nodeType":"YulLiteral","src":"9839:34:97","type":"","value":"mated execution block must satis"}],"functionName":{"name":"mstore","nativeSrc":"9812:6:97","nodeType":"YulIdentifier","src":"9812:6:97"},"nativeSrc":"9812:62:97","nodeType":"YulFunctionCall","src":"9812:62:97"},"nativeSrc":"9812:62:97","nodeType":"YulExpressionStatement","src":"9812:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9894:9:97","nodeType":"YulIdentifier","src":"9894:9:97"},{"kind":"number","nativeSrc":"9905:3:97","nodeType":"YulLiteral","src":"9905:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"9890:3:97","nodeType":"YulIdentifier","src":"9890:3:97"},"nativeSrc":"9890:19:97","nodeType":"YulFunctionCall","src":"9890:19:97"},{"hexValue":"66792064656c61792e","kind":"string","nativeSrc":"9911:11:97","nodeType":"YulLiteral","src":"9911:11:97","type":"","value":"fy delay."}],"functionName":{"name":"mstore","nativeSrc":"9883:6:97","nodeType":"YulIdentifier","src":"9883:6:97"},"nativeSrc":"9883:40:97","nodeType":"YulFunctionCall","src":"9883:40:97"},"nativeSrc":"9883:40:97","nodeType":"YulExpressionStatement","src":"9883:40:97"},{"nativeSrc":"9932:27:97","nodeType":"YulAssignment","src":"9932:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"9944:9:97","nodeType":"YulIdentifier","src":"9944:9:97"},{"kind":"number","nativeSrc":"9955:3:97","nodeType":"YulLiteral","src":"9955:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"9940:3:97","nodeType":"YulIdentifier","src":"9940:3:97"},"nativeSrc":"9940:19:97","nodeType":"YulFunctionCall","src":"9940:19:97"},"variableNames":[{"name":"tail","nativeSrc":"9932:4:97","nodeType":"YulIdentifier","src":"9932:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_d8f8e6fa46b62e55e6ef89f0d71d2a706a902748f37198aeb3e192bf7bca348c__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"9488:477:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9639:9:97","nodeType":"YulTypedName","src":"9639:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9653:4:97","nodeType":"YulTypedName","src":"9653:4:97","type":""}],"src":"9488:477:97"},{"body":{"nativeSrc":"10144:245:97","nodeType":"YulBlock","src":"10144:245:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"10161:9:97","nodeType":"YulIdentifier","src":"10161:9:97"},{"kind":"number","nativeSrc":"10172:2:97","nodeType":"YulLiteral","src":"10172:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"10154:6:97","nodeType":"YulIdentifier","src":"10154:6:97"},"nativeSrc":"10154:21:97","nodeType":"YulFunctionCall","src":"10154:21:97"},"nativeSrc":"10154:21:97","nodeType":"YulExpressionStatement","src":"10154:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10195:9:97","nodeType":"YulIdentifier","src":"10195:9:97"},{"kind":"number","nativeSrc":"10206:2:97","nodeType":"YulLiteral","src":"10206:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10191:3:97","nodeType":"YulIdentifier","src":"10191:3:97"},"nativeSrc":"10191:18:97","nodeType":"YulFunctionCall","src":"10191:18:97"},{"kind":"number","nativeSrc":"10211:2:97","nodeType":"YulLiteral","src":"10211:2:97","type":"","value":"55"}],"functionName":{"name":"mstore","nativeSrc":"10184:6:97","nodeType":"YulIdentifier","src":"10184:6:97"},"nativeSrc":"10184:30:97","nodeType":"YulFunctionCall","src":"10184:30:97"},"nativeSrc":"10184:30:97","nodeType":"YulExpressionStatement","src":"10184:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10234:9:97","nodeType":"YulIdentifier","src":"10234:9:97"},{"kind":"number","nativeSrc":"10245:2:97","nodeType":"YulLiteral","src":"10245:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10230:3:97","nodeType":"YulIdentifier","src":"10230:3:97"},"nativeSrc":"10230:18:97","nodeType":"YulFunctionCall","src":"10230:18:97"},{"hexValue":"54696d656c6f636b3a3a71756575655472616e73616374696f6e3a207472616e","kind":"string","nativeSrc":"10250:34:97","nodeType":"YulLiteral","src":"10250:34:97","type":"","value":"Timelock::queueTransaction: tran"}],"functionName":{"name":"mstore","nativeSrc":"10223:6:97","nodeType":"YulIdentifier","src":"10223:6:97"},"nativeSrc":"10223:62:97","nodeType":"YulFunctionCall","src":"10223:62:97"},"nativeSrc":"10223:62:97","nodeType":"YulExpressionStatement","src":"10223:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10305:9:97","nodeType":"YulIdentifier","src":"10305:9:97"},{"kind":"number","nativeSrc":"10316:2:97","nodeType":"YulLiteral","src":"10316:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"10301:3:97","nodeType":"YulIdentifier","src":"10301:3:97"},"nativeSrc":"10301:18:97","nodeType":"YulFunctionCall","src":"10301:18:97"},{"hexValue":"73616374696f6e20616c7265616479207175657565642e","kind":"string","nativeSrc":"10321:25:97","nodeType":"YulLiteral","src":"10321:25:97","type":"","value":"saction already queued."}],"functionName":{"name":"mstore","nativeSrc":"10294:6:97","nodeType":"YulIdentifier","src":"10294:6:97"},"nativeSrc":"10294:53:97","nodeType":"YulFunctionCall","src":"10294:53:97"},"nativeSrc":"10294:53:97","nodeType":"YulExpressionStatement","src":"10294:53:97"},{"nativeSrc":"10356:27:97","nodeType":"YulAssignment","src":"10356:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"10368:9:97","nodeType":"YulIdentifier","src":"10368:9:97"},{"kind":"number","nativeSrc":"10379:3:97","nodeType":"YulLiteral","src":"10379:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"10364:3:97","nodeType":"YulIdentifier","src":"10364:3:97"},"nativeSrc":"10364:19:97","nodeType":"YulFunctionCall","src":"10364:19:97"},"variableNames":[{"name":"tail","nativeSrc":"10356:4:97","nodeType":"YulIdentifier","src":"10356:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_c3dc77f6ede7b6195dca0ab15e49736c813ce698624fe501da985707f241d9c7__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"9970:419:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10121:9:97","nodeType":"YulTypedName","src":"10121:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10135:4:97","nodeType":"YulTypedName","src":"10135:4:97","type":""}],"src":"9970:419:97"},{"body":{"nativeSrc":"10568:246:97","nodeType":"YulBlock","src":"10568:246:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"10585:9:97","nodeType":"YulIdentifier","src":"10585:9:97"},{"kind":"number","nativeSrc":"10596:2:97","nodeType":"YulLiteral","src":"10596:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"10578:6:97","nodeType":"YulIdentifier","src":"10578:6:97"},"nativeSrc":"10578:21:97","nodeType":"YulFunctionCall","src":"10578:21:97"},"nativeSrc":"10578:21:97","nodeType":"YulExpressionStatement","src":"10578:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10619:9:97","nodeType":"YulIdentifier","src":"10619:9:97"},{"kind":"number","nativeSrc":"10630:2:97","nodeType":"YulLiteral","src":"10630:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10615:3:97","nodeType":"YulIdentifier","src":"10615:3:97"},"nativeSrc":"10615:18:97","nodeType":"YulFunctionCall","src":"10615:18:97"},{"kind":"number","nativeSrc":"10635:2:97","nodeType":"YulLiteral","src":"10635:2:97","type":"","value":"56"}],"functionName":{"name":"mstore","nativeSrc":"10608:6:97","nodeType":"YulIdentifier","src":"10608:6:97"},"nativeSrc":"10608:30:97","nodeType":"YulFunctionCall","src":"10608:30:97"},"nativeSrc":"10608:30:97","nodeType":"YulExpressionStatement","src":"10608:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10658:9:97","nodeType":"YulIdentifier","src":"10658:9:97"},{"kind":"number","nativeSrc":"10669:2:97","nodeType":"YulLiteral","src":"10669:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10654:3:97","nodeType":"YulIdentifier","src":"10654:3:97"},"nativeSrc":"10654:18:97","nodeType":"YulFunctionCall","src":"10654:18:97"},{"hexValue":"54696d656c6f636b3a3a73657450656e64696e6741646d696e3a2043616c6c20","kind":"string","nativeSrc":"10674:34:97","nodeType":"YulLiteral","src":"10674:34:97","type":"","value":"Timelock::setPendingAdmin: Call "}],"functionName":{"name":"mstore","nativeSrc":"10647:6:97","nodeType":"YulIdentifier","src":"10647:6:97"},"nativeSrc":"10647:62:97","nodeType":"YulFunctionCall","src":"10647:62:97"},"nativeSrc":"10647:62:97","nodeType":"YulExpressionStatement","src":"10647:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10729:9:97","nodeType":"YulIdentifier","src":"10729:9:97"},{"kind":"number","nativeSrc":"10740:2:97","nodeType":"YulLiteral","src":"10740:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"10725:3:97","nodeType":"YulIdentifier","src":"10725:3:97"},"nativeSrc":"10725:18:97","nodeType":"YulFunctionCall","src":"10725:18:97"},{"hexValue":"6d75737420636f6d652066726f6d2054696d656c6f636b2e","kind":"string","nativeSrc":"10745:26:97","nodeType":"YulLiteral","src":"10745:26:97","type":"","value":"must come from Timelock."}],"functionName":{"name":"mstore","nativeSrc":"10718:6:97","nodeType":"YulIdentifier","src":"10718:6:97"},"nativeSrc":"10718:54:97","nodeType":"YulFunctionCall","src":"10718:54:97"},"nativeSrc":"10718:54:97","nodeType":"YulExpressionStatement","src":"10718:54:97"},{"nativeSrc":"10781:27:97","nodeType":"YulAssignment","src":"10781:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"10793:9:97","nodeType":"YulIdentifier","src":"10793:9:97"},{"kind":"number","nativeSrc":"10804:3:97","nodeType":"YulLiteral","src":"10804:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"10789:3:97","nodeType":"YulIdentifier","src":"10789:3:97"},"nativeSrc":"10789:19:97","nodeType":"YulFunctionCall","src":"10789:19:97"},"variableNames":[{"name":"tail","nativeSrc":"10781:4:97","nodeType":"YulIdentifier","src":"10781:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_b7a0aaea4203d5a5318b76c13dcb2afd3f7e9e71cd6f5f022040411bd080d815__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"10394:420:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10545:9:97","nodeType":"YulTypedName","src":"10545:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10559:4:97","nodeType":"YulTypedName","src":"10559:4:97","type":""}],"src":"10394:420:97"},{"body":{"nativeSrc":"10993:245:97","nodeType":"YulBlock","src":"10993:245:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"11010:9:97","nodeType":"YulIdentifier","src":"11010:9:97"},{"kind":"number","nativeSrc":"11021:2:97","nodeType":"YulLiteral","src":"11021:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"11003:6:97","nodeType":"YulIdentifier","src":"11003:6:97"},"nativeSrc":"11003:21:97","nodeType":"YulFunctionCall","src":"11003:21:97"},"nativeSrc":"11003:21:97","nodeType":"YulExpressionStatement","src":"11003:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11044:9:97","nodeType":"YulIdentifier","src":"11044:9:97"},{"kind":"number","nativeSrc":"11055:2:97","nodeType":"YulLiteral","src":"11055:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11040:3:97","nodeType":"YulIdentifier","src":"11040:3:97"},"nativeSrc":"11040:18:97","nodeType":"YulFunctionCall","src":"11040:18:97"},{"kind":"number","nativeSrc":"11060:2:97","nodeType":"YulLiteral","src":"11060:2:97","type":"","value":"55"}],"functionName":{"name":"mstore","nativeSrc":"11033:6:97","nodeType":"YulIdentifier","src":"11033:6:97"},"nativeSrc":"11033:30:97","nodeType":"YulFunctionCall","src":"11033:30:97"},"nativeSrc":"11033:30:97","nodeType":"YulExpressionStatement","src":"11033:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11083:9:97","nodeType":"YulIdentifier","src":"11083:9:97"},{"kind":"number","nativeSrc":"11094:2:97","nodeType":"YulLiteral","src":"11094:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11079:3:97","nodeType":"YulIdentifier","src":"11079:3:97"},"nativeSrc":"11079:18:97","nodeType":"YulFunctionCall","src":"11079:18:97"},{"hexValue":"54696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a2043616c","kind":"string","nativeSrc":"11099:34:97","nodeType":"YulLiteral","src":"11099:34:97","type":"","value":"Timelock::cancelTransaction: Cal"}],"functionName":{"name":"mstore","nativeSrc":"11072:6:97","nodeType":"YulIdentifier","src":"11072:6:97"},"nativeSrc":"11072:62:97","nodeType":"YulFunctionCall","src":"11072:62:97"},"nativeSrc":"11072:62:97","nodeType":"YulExpressionStatement","src":"11072:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11154:9:97","nodeType":"YulIdentifier","src":"11154:9:97"},{"kind":"number","nativeSrc":"11165:2:97","nodeType":"YulLiteral","src":"11165:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11150:3:97","nodeType":"YulIdentifier","src":"11150:3:97"},"nativeSrc":"11150:18:97","nodeType":"YulFunctionCall","src":"11150:18:97"},{"hexValue":"6c206d75737420636f6d652066726f6d2061646d696e2e","kind":"string","nativeSrc":"11170:25:97","nodeType":"YulLiteral","src":"11170:25:97","type":"","value":"l must come from admin."}],"functionName":{"name":"mstore","nativeSrc":"11143:6:97","nodeType":"YulIdentifier","src":"11143:6:97"},"nativeSrc":"11143:53:97","nodeType":"YulFunctionCall","src":"11143:53:97"},"nativeSrc":"11143:53:97","nodeType":"YulExpressionStatement","src":"11143:53:97"},{"nativeSrc":"11205:27:97","nodeType":"YulAssignment","src":"11205:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"11217:9:97","nodeType":"YulIdentifier","src":"11217:9:97"},{"kind":"number","nativeSrc":"11228:3:97","nodeType":"YulLiteral","src":"11228:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"11213:3:97","nodeType":"YulIdentifier","src":"11213:3:97"},"nativeSrc":"11213:19:97","nodeType":"YulFunctionCall","src":"11213:19:97"},"variableNames":[{"name":"tail","nativeSrc":"11205:4:97","nodeType":"YulIdentifier","src":"11205:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_135e413b08c779b9b925daaaf6178471ba60ebd33d413d809c76a0d4e8beaf3d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"10819:419:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10970:9:97","nodeType":"YulTypedName","src":"10970:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10984:4:97","nodeType":"YulTypedName","src":"10984:4:97","type":""}],"src":"10819:419:97"},{"body":{"nativeSrc":"11417:249:97","nodeType":"YulBlock","src":"11417:249:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"11434:9:97","nodeType":"YulIdentifier","src":"11434:9:97"},{"kind":"number","nativeSrc":"11445:2:97","nodeType":"YulLiteral","src":"11445:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"11427:6:97","nodeType":"YulIdentifier","src":"11427:6:97"},"nativeSrc":"11427:21:97","nodeType":"YulFunctionCall","src":"11427:21:97"},"nativeSrc":"11427:21:97","nodeType":"YulExpressionStatement","src":"11427:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11468:9:97","nodeType":"YulIdentifier","src":"11468:9:97"},{"kind":"number","nativeSrc":"11479:2:97","nodeType":"YulLiteral","src":"11479:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11464:3:97","nodeType":"YulIdentifier","src":"11464:3:97"},"nativeSrc":"11464:18:97","nodeType":"YulFunctionCall","src":"11464:18:97"},{"kind":"number","nativeSrc":"11484:2:97","nodeType":"YulLiteral","src":"11484:2:97","type":"","value":"59"}],"functionName":{"name":"mstore","nativeSrc":"11457:6:97","nodeType":"YulIdentifier","src":"11457:6:97"},"nativeSrc":"11457:30:97","nodeType":"YulFunctionCall","src":"11457:30:97"},"nativeSrc":"11457:30:97","nodeType":"YulExpressionStatement","src":"11457:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11507:9:97","nodeType":"YulIdentifier","src":"11507:9:97"},{"kind":"number","nativeSrc":"11518:2:97","nodeType":"YulLiteral","src":"11518:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11503:3:97","nodeType":"YulIdentifier","src":"11503:3:97"},"nativeSrc":"11503:18:97","nodeType":"YulFunctionCall","src":"11503:18:97"},{"hexValue":"54696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a20747261","kind":"string","nativeSrc":"11523:34:97","nodeType":"YulLiteral","src":"11523:34:97","type":"","value":"Timelock::cancelTransaction: tra"}],"functionName":{"name":"mstore","nativeSrc":"11496:6:97","nodeType":"YulIdentifier","src":"11496:6:97"},"nativeSrc":"11496:62:97","nodeType":"YulFunctionCall","src":"11496:62:97"},"nativeSrc":"11496:62:97","nodeType":"YulExpressionStatement","src":"11496:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11578:9:97","nodeType":"YulIdentifier","src":"11578:9:97"},{"kind":"number","nativeSrc":"11589:2:97","nodeType":"YulLiteral","src":"11589:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11574:3:97","nodeType":"YulIdentifier","src":"11574:3:97"},"nativeSrc":"11574:18:97","nodeType":"YulFunctionCall","src":"11574:18:97"},{"hexValue":"6e73616374696f6e206973206e6f7420717565756564207965742e","kind":"string","nativeSrc":"11594:29:97","nodeType":"YulLiteral","src":"11594:29:97","type":"","value":"nsaction is not queued yet."}],"functionName":{"name":"mstore","nativeSrc":"11567:6:97","nodeType":"YulIdentifier","src":"11567:6:97"},"nativeSrc":"11567:57:97","nodeType":"YulFunctionCall","src":"11567:57:97"},"nativeSrc":"11567:57:97","nodeType":"YulExpressionStatement","src":"11567:57:97"},{"nativeSrc":"11633:27:97","nodeType":"YulAssignment","src":"11633:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"11645:9:97","nodeType":"YulIdentifier","src":"11645:9:97"},{"kind":"number","nativeSrc":"11656:3:97","nodeType":"YulLiteral","src":"11656:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"11641:3:97","nodeType":"YulIdentifier","src":"11641:3:97"},"nativeSrc":"11641:19:97","nodeType":"YulFunctionCall","src":"11641:19:97"},"variableNames":[{"name":"tail","nativeSrc":"11633:4:97","nodeType":"YulIdentifier","src":"11633:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_5dff9a8bd683a1f8a197320db69edd3e2d2988378442d324202dc24789d949f5__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11243:423:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11394:9:97","nodeType":"YulTypedName","src":"11394:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11408:4:97","nodeType":"YulTypedName","src":"11408:4:97","type":""}],"src":"11243:423:97"},{"body":{"nativeSrc":"11845:239:97","nodeType":"YulBlock","src":"11845:239:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"11862:9:97","nodeType":"YulIdentifier","src":"11862:9:97"},{"kind":"number","nativeSrc":"11873:2:97","nodeType":"YulLiteral","src":"11873:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"11855:6:97","nodeType":"YulIdentifier","src":"11855:6:97"},"nativeSrc":"11855:21:97","nodeType":"YulFunctionCall","src":"11855:21:97"},"nativeSrc":"11855:21:97","nodeType":"YulExpressionStatement","src":"11855:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11896:9:97","nodeType":"YulIdentifier","src":"11896:9:97"},{"kind":"number","nativeSrc":"11907:2:97","nodeType":"YulLiteral","src":"11907:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11892:3:97","nodeType":"YulIdentifier","src":"11892:3:97"},"nativeSrc":"11892:18:97","nodeType":"YulFunctionCall","src":"11892:18:97"},{"kind":"number","nativeSrc":"11912:2:97","nodeType":"YulLiteral","src":"11912:2:97","type":"","value":"49"}],"functionName":{"name":"mstore","nativeSrc":"11885:6:97","nodeType":"YulIdentifier","src":"11885:6:97"},"nativeSrc":"11885:30:97","nodeType":"YulFunctionCall","src":"11885:30:97"},"nativeSrc":"11885:30:97","nodeType":"YulExpressionStatement","src":"11885:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11935:9:97","nodeType":"YulIdentifier","src":"11935:9:97"},{"kind":"number","nativeSrc":"11946:2:97","nodeType":"YulLiteral","src":"11946:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11931:3:97","nodeType":"YulIdentifier","src":"11931:3:97"},"nativeSrc":"11931:18:97","nodeType":"YulFunctionCall","src":"11931:18:97"},{"hexValue":"54696d656c6f636b3a3a73657444656c61793a2043616c6c206d75737420636f","kind":"string","nativeSrc":"11951:34:97","nodeType":"YulLiteral","src":"11951:34:97","type":"","value":"Timelock::setDelay: Call must co"}],"functionName":{"name":"mstore","nativeSrc":"11924:6:97","nodeType":"YulIdentifier","src":"11924:6:97"},"nativeSrc":"11924:62:97","nodeType":"YulFunctionCall","src":"11924:62:97"},"nativeSrc":"11924:62:97","nodeType":"YulExpressionStatement","src":"11924:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12006:9:97","nodeType":"YulIdentifier","src":"12006:9:97"},{"kind":"number","nativeSrc":"12017:2:97","nodeType":"YulLiteral","src":"12017:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12002:3:97","nodeType":"YulIdentifier","src":"12002:3:97"},"nativeSrc":"12002:18:97","nodeType":"YulFunctionCall","src":"12002:18:97"},{"hexValue":"6d652066726f6d2054696d656c6f636b2e","kind":"string","nativeSrc":"12022:19:97","nodeType":"YulLiteral","src":"12022:19:97","type":"","value":"me from Timelock."}],"functionName":{"name":"mstore","nativeSrc":"11995:6:97","nodeType":"YulIdentifier","src":"11995:6:97"},"nativeSrc":"11995:47:97","nodeType":"YulFunctionCall","src":"11995:47:97"},"nativeSrc":"11995:47:97","nodeType":"YulExpressionStatement","src":"11995:47:97"},{"nativeSrc":"12051:27:97","nodeType":"YulAssignment","src":"12051:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"12063:9:97","nodeType":"YulIdentifier","src":"12063:9:97"},{"kind":"number","nativeSrc":"12074:3:97","nodeType":"YulLiteral","src":"12074:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"12059:3:97","nodeType":"YulIdentifier","src":"12059:3:97"},"nativeSrc":"12059:19:97","nodeType":"YulFunctionCall","src":"12059:19:97"},"variableNames":[{"name":"tail","nativeSrc":"12051:4:97","nodeType":"YulIdentifier","src":"12051:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_e810dcfb9ec7662fa74f0c58d14b8ca36ebffcb4d6cdf3e54d58e4096597d95d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11671:413:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11822:9:97","nodeType":"YulTypedName","src":"11822:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11836:4:97","nodeType":"YulTypedName","src":"11836:4:97","type":""}],"src":"11671:413:97"},{"body":{"nativeSrc":"12263:242:97","nodeType":"YulBlock","src":"12263:242:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"12280:9:97","nodeType":"YulIdentifier","src":"12280:9:97"},{"kind":"number","nativeSrc":"12291:2:97","nodeType":"YulLiteral","src":"12291:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"12273:6:97","nodeType":"YulIdentifier","src":"12273:6:97"},"nativeSrc":"12273:21:97","nodeType":"YulFunctionCall","src":"12273:21:97"},"nativeSrc":"12273:21:97","nodeType":"YulExpressionStatement","src":"12273:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12314:9:97","nodeType":"YulIdentifier","src":"12314:9:97"},{"kind":"number","nativeSrc":"12325:2:97","nodeType":"YulLiteral","src":"12325:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12310:3:97","nodeType":"YulIdentifier","src":"12310:3:97"},"nativeSrc":"12310:18:97","nodeType":"YulFunctionCall","src":"12310:18:97"},{"kind":"number","nativeSrc":"12330:2:97","nodeType":"YulLiteral","src":"12330:2:97","type":"","value":"52"}],"functionName":{"name":"mstore","nativeSrc":"12303:6:97","nodeType":"YulIdentifier","src":"12303:6:97"},"nativeSrc":"12303:30:97","nodeType":"YulFunctionCall","src":"12303:30:97"},"nativeSrc":"12303:30:97","nodeType":"YulExpressionStatement","src":"12303:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12353:9:97","nodeType":"YulIdentifier","src":"12353:9:97"},{"kind":"number","nativeSrc":"12364:2:97","nodeType":"YulLiteral","src":"12364:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12349:3:97","nodeType":"YulIdentifier","src":"12349:3:97"},"nativeSrc":"12349:18:97","nodeType":"YulFunctionCall","src":"12349:18:97"},{"hexValue":"54696d656c6f636b3a3a73657444656c61793a2044656c6179206d7573742065","kind":"string","nativeSrc":"12369:34:97","nodeType":"YulLiteral","src":"12369:34:97","type":"","value":"Timelock::setDelay: Delay must e"}],"functionName":{"name":"mstore","nativeSrc":"12342:6:97","nodeType":"YulIdentifier","src":"12342:6:97"},"nativeSrc":"12342:62:97","nodeType":"YulFunctionCall","src":"12342:62:97"},"nativeSrc":"12342:62:97","nodeType":"YulExpressionStatement","src":"12342:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12424:9:97","nodeType":"YulIdentifier","src":"12424:9:97"},{"kind":"number","nativeSrc":"12435:2:97","nodeType":"YulLiteral","src":"12435:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12420:3:97","nodeType":"YulIdentifier","src":"12420:3:97"},"nativeSrc":"12420:18:97","nodeType":"YulFunctionCall","src":"12420:18:97"},{"hexValue":"7863656564206d696e696d756d2064656c61792e","kind":"string","nativeSrc":"12440:22:97","nodeType":"YulLiteral","src":"12440:22:97","type":"","value":"xceed minimum delay."}],"functionName":{"name":"mstore","nativeSrc":"12413:6:97","nodeType":"YulIdentifier","src":"12413:6:97"},"nativeSrc":"12413:50:97","nodeType":"YulFunctionCall","src":"12413:50:97"},"nativeSrc":"12413:50:97","nodeType":"YulExpressionStatement","src":"12413:50:97"},{"nativeSrc":"12472:27:97","nodeType":"YulAssignment","src":"12472:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"12484:9:97","nodeType":"YulIdentifier","src":"12484:9:97"},{"kind":"number","nativeSrc":"12495:3:97","nodeType":"YulLiteral","src":"12495:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"12480:3:97","nodeType":"YulIdentifier","src":"12480:3:97"},"nativeSrc":"12480:19:97","nodeType":"YulFunctionCall","src":"12480:19:97"},"variableNames":[{"name":"tail","nativeSrc":"12472:4:97","nodeType":"YulIdentifier","src":"12472:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_4198c63548ffd3e47f06dc876a374eb662a4ea6ff5509a211e07dd2b49998b1d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12089:416:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12240:9:97","nodeType":"YulTypedName","src":"12240:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12254:4:97","nodeType":"YulTypedName","src":"12254:4:97","type":""}],"src":"12089:416:97"},{"body":{"nativeSrc":"12684:246:97","nodeType":"YulBlock","src":"12684:246:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"12701:9:97","nodeType":"YulIdentifier","src":"12701:9:97"},{"kind":"number","nativeSrc":"12712:2:97","nodeType":"YulLiteral","src":"12712:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"12694:6:97","nodeType":"YulIdentifier","src":"12694:6:97"},"nativeSrc":"12694:21:97","nodeType":"YulFunctionCall","src":"12694:21:97"},"nativeSrc":"12694:21:97","nodeType":"YulExpressionStatement","src":"12694:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12735:9:97","nodeType":"YulIdentifier","src":"12735:9:97"},{"kind":"number","nativeSrc":"12746:2:97","nodeType":"YulLiteral","src":"12746:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12731:3:97","nodeType":"YulIdentifier","src":"12731:3:97"},"nativeSrc":"12731:18:97","nodeType":"YulFunctionCall","src":"12731:18:97"},{"kind":"number","nativeSrc":"12751:2:97","nodeType":"YulLiteral","src":"12751:2:97","type":"","value":"56"}],"functionName":{"name":"mstore","nativeSrc":"12724:6:97","nodeType":"YulIdentifier","src":"12724:6:97"},"nativeSrc":"12724:30:97","nodeType":"YulFunctionCall","src":"12724:30:97"},"nativeSrc":"12724:30:97","nodeType":"YulExpressionStatement","src":"12724:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12774:9:97","nodeType":"YulIdentifier","src":"12774:9:97"},{"kind":"number","nativeSrc":"12785:2:97","nodeType":"YulLiteral","src":"12785:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12770:3:97","nodeType":"YulIdentifier","src":"12770:3:97"},"nativeSrc":"12770:18:97","nodeType":"YulFunctionCall","src":"12770:18:97"},{"hexValue":"54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e","kind":"string","nativeSrc":"12790:34:97","nodeType":"YulLiteral","src":"12790:34:97","type":"","value":"Timelock::setDelay: Delay must n"}],"functionName":{"name":"mstore","nativeSrc":"12763:6:97","nodeType":"YulIdentifier","src":"12763:6:97"},"nativeSrc":"12763:62:97","nodeType":"YulFunctionCall","src":"12763:62:97"},"nativeSrc":"12763:62:97","nodeType":"YulExpressionStatement","src":"12763:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12845:9:97","nodeType":"YulIdentifier","src":"12845:9:97"},{"kind":"number","nativeSrc":"12856:2:97","nodeType":"YulLiteral","src":"12856:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12841:3:97","nodeType":"YulIdentifier","src":"12841:3:97"},"nativeSrc":"12841:18:97","nodeType":"YulFunctionCall","src":"12841:18:97"},{"hexValue":"6f7420657863656564206d6178696d756d2064656c61792e","kind":"string","nativeSrc":"12861:26:97","nodeType":"YulLiteral","src":"12861:26:97","type":"","value":"ot exceed maximum delay."}],"functionName":{"name":"mstore","nativeSrc":"12834:6:97","nodeType":"YulIdentifier","src":"12834:6:97"},"nativeSrc":"12834:54:97","nodeType":"YulFunctionCall","src":"12834:54:97"},"nativeSrc":"12834:54:97","nodeType":"YulExpressionStatement","src":"12834:54:97"},{"nativeSrc":"12897:27:97","nodeType":"YulAssignment","src":"12897:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"12909:9:97","nodeType":"YulIdentifier","src":"12909:9:97"},{"kind":"number","nativeSrc":"12920:3:97","nodeType":"YulLiteral","src":"12920:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"12905:3:97","nodeType":"YulIdentifier","src":"12905:3:97"},"nativeSrc":"12905:19:97","nodeType":"YulFunctionCall","src":"12905:19:97"},"variableNames":[{"name":"tail","nativeSrc":"12897:4:97","nodeType":"YulIdentifier","src":"12897:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_762218313af08cfa6c9b8eda00385502eefaa529f9945044fd2dee54ff5cefe0__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12510:420:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12661:9:97","nodeType":"YulTypedName","src":"12661:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12675:4:97","nodeType":"YulTypedName","src":"12675:4:97","type":""}],"src":"12510:420:97"}]},"contents":"{\n    { }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_string_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_uint256t_string_calldata_ptrt_bytes_calldata_ptrt_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := calldataload(add(headStart, 32))\n        let offset := calldataload(add(headStart, 64))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n        let offset_1 := calldataload(add(headStart, 96))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value4_1, value5_1 := abi_decode_string_calldata(add(headStart, offset_1), dataEnd)\n        value4 := value4_1\n        value5 := value5_1\n        value6 := calldataload(add(headStart, 128))\n    }\n    function copy_memory_to_memory_with_cleanup(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n    }\n    function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        copy_memory_to_memory_with_cleanup(add(value0, 32), add(headStart, 64), length)\n        tail := add(add(headStart, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 64)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_stringliteral_0cbc65ac44dc8b90b8bc4c38c9c6ad704bfeb2c8170538058496c0e805dfa947__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 56)\n        mstore(add(headStart, 64), \"Timelock::executeTransaction: Ca\")\n        mstore(add(headStart, 96), \"ll must come from admin.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_string_calldata(start, length, pos) -> end\n    {\n        mstore(pos, length)\n        calldatacopy(add(pos, 0x20), start, length)\n        mstore(add(add(pos, length), 0x20), 0)\n        end := add(add(pos, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 0x20)\n    }\n    function abi_encode_tuple_t_address_t_uint256_t_string_calldata_ptr_t_bytes_calldata_ptr_t_uint256__to_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed(headStart, value6, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), 160)\n        let tail_1 := abi_encode_string_calldata(value2, value3, add(headStart, 160))\n        mstore(add(headStart, 96), sub(tail_1, headStart))\n        tail := abi_encode_string_calldata(value4, value5, tail_1)\n        mstore(add(headStart, 128), value6)\n    }\n    function abi_encode_tuple_t_stringliteral_7e3bf24eec453753018af1214443c72d8abb3050b249b2b3b9bb2adb04310650__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 61)\n        mstore(add(headStart, 64), \"Timelock::executeTransaction: Tr\")\n        mstore(add(headStart, 96), \"ansaction hasn't been queued.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_381d72a875dbcf282eb0ce43951c66b6c4d7dadc6fdeb9294add773d09cd1687__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 69)\n        mstore(add(headStart, 64), \"Timelock::executeTransaction: Tr\")\n        mstore(add(headStart, 96), \"ansaction hasn't surpassed time \")\n        mstore(add(headStart, 128), \"lock.\")\n        tail := add(headStart, 160)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum)\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x11)\n            revert(0, 0x24)\n        }\n    }\n    function abi_encode_tuple_t_stringliteral_2c4a83afbdcff2c4ba869dacfa7dabb27b12f774a0707feae827e36773b8166c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 51)\n        mstore(add(headStart, 64), \"Timelock::executeTransaction: Tr\")\n        mstore(add(headStart, 96), \"ansaction is stale.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        calldatacopy(pos, value0, value1)\n        let _1 := add(pos, value1)\n        mstore(_1, 0)\n        end := _1\n    }\n    function abi_encode_tuple_packed_t_bytes4_t_bytes_calldata_ptr__to_t_bytes4_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value2, value1, value0) -> end\n    {\n        mstore(pos, and(value0, 0xffffffff00000000000000000000000000000000000000000000000000000000))\n        calldatacopy(add(pos, 4), value1, value2)\n        let _1 := add(add(pos, value2), 4)\n        mstore(_1, 0)\n        end := _1\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n        end := add(pos, length)\n    }\n    function abi_encode_tuple_t_stringliteral_c8cfef133518ef6ab39ac5f19562a74f4f875e9130c8117d51f88a557b6e72c9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 61)\n        mstore(add(headStart, 64), \"Timelock::executeTransaction: Tr\")\n        mstore(add(headStart, 96), \"ansaction execution reverted.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_uint256_t_string_calldata_ptr_t_bytes_calldata_ptr_t_uint256__to_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), 128)\n        let tail_1 := abi_encode_string_calldata(value1, value2, add(headStart, 128))\n        mstore(add(headStart, 64), sub(tail_1, headStart))\n        tail := abi_encode_string_calldata(value3, value4, tail_1)\n        mstore(add(headStart, 96), value5)\n    }\n    function abi_encode_tuple_t_stringliteral_a6d22532620e2c2df8ce400b3f4754629da5ed6321258d3add10ae5aba9450b3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 56)\n        mstore(add(headStart, 64), \"Timelock::acceptAdmin: Call must\")\n        mstore(add(headStart, 96), \" come from pendingAdmin.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_b9bd2ade56c0bd4d6738b7a39a90e136f8901e8e7945a3d237050075ad6fd749__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 54)\n        mstore(add(headStart, 64), \"Timelock::queueTransaction: Call\")\n        mstore(add(headStart, 96), \" must come from admin.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_d8f8e6fa46b62e55e6ef89f0d71d2a706a902748f37198aeb3e192bf7bca348c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 73)\n        mstore(add(headStart, 64), \"Timelock::queueTransaction: Esti\")\n        mstore(add(headStart, 96), \"mated execution block must satis\")\n        mstore(add(headStart, 128), \"fy delay.\")\n        tail := add(headStart, 160)\n    }\n    function abi_encode_tuple_t_stringliteral_c3dc77f6ede7b6195dca0ab15e49736c813ce698624fe501da985707f241d9c7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 55)\n        mstore(add(headStart, 64), \"Timelock::queueTransaction: tran\")\n        mstore(add(headStart, 96), \"saction already queued.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_b7a0aaea4203d5a5318b76c13dcb2afd3f7e9e71cd6f5f022040411bd080d815__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 56)\n        mstore(add(headStart, 64), \"Timelock::setPendingAdmin: Call \")\n        mstore(add(headStart, 96), \"must come from Timelock.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_135e413b08c779b9b925daaaf6178471ba60ebd33d413d809c76a0d4e8beaf3d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 55)\n        mstore(add(headStart, 64), \"Timelock::cancelTransaction: Cal\")\n        mstore(add(headStart, 96), \"l must come from admin.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_5dff9a8bd683a1f8a197320db69edd3e2d2988378442d324202dc24789d949f5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 59)\n        mstore(add(headStart, 64), \"Timelock::cancelTransaction: tra\")\n        mstore(add(headStart, 96), \"nsaction is not queued yet.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_e810dcfb9ec7662fa74f0c58d14b8ca36ebffcb4d6cdf3e54d58e4096597d95d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 49)\n        mstore(add(headStart, 64), \"Timelock::setDelay: Call must co\")\n        mstore(add(headStart, 96), \"me from Timelock.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_4198c63548ffd3e47f06dc876a374eb662a4ea6ff5509a211e07dd2b49998b1d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 52)\n        mstore(add(headStart, 64), \"Timelock::setDelay: Delay must e\")\n        mstore(add(headStart, 96), \"xceed minimum delay.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_762218313af08cfa6c9b8eda00385502eefaa529f9945044fd2dee54ff5cefe0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 56)\n        mstore(add(headStart, 64), \"Timelock::setDelay: Delay must n\")\n        mstore(add(headStart, 96), \"ot exceed maximum delay.\")\n        tail := add(headStart, 128)\n    }\n}","id":97,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"6080604052600436106100c95760003560e01c80636a42b8f811610079578063c1a287e211610056578063c1a287e214610217578063e177246e1461022d578063f2b065371461024d578063f851a4401461028d57005b80636a42b8f8146101d65780637d645fab146101ec578063b1b43ae51461020257005b80633a66f901116100a75780633a66f901146101685780634dd18bf514610196578063591fcdfe146101b657005b80630825f38f146100cb5780630e18b681146101015780632678224714610116575b005b3480156100d757600080fd5b506100eb6100e6366004611070565b6102ba565b6040516100f89190611127565b60405180910390f35b34801561010d57600080fd5b506100c961074a565b34801561012257600080fd5b506001546101439073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100f8565b34801561017457600080fd5b50610188610183366004611070565b610854565b6040519081526020016100f8565b3480156101a257600080fd5b506100c96101b1366004611178565b610b04565b3480156101c257600080fd5b506100c96101d1366004611070565b610c13565b3480156101e257600080fd5b5061018860025481565b3480156101f857600080fd5b5062278d00610188565b34801561020e57600080fd5b50610e10610188565b34801561022357600080fd5b5062127500610188565b34801561023957600080fd5b506100c961024836600461119a565b610e14565b34801561025957600080fd5b5061027d61026836600461119a565b60036020526000908152604090205460ff1681565b60405190151581526020016100f8565b34801561029957600080fd5b506000546101439073ffffffffffffffffffffffffffffffffffffffff1681565b60005460609073ffffffffffffffffffffffffffffffffffffffff16331461034f5760405162461bcd60e51b815260206004820152603860248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20436160448201527f6c6c206d75737420636f6d652066726f6d2061646d696e2e000000000000000060648201526084015b60405180910390fd5b60008888888888888860405160200161036e97969594939291906111fc565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291815281516020928301206000818152600390935291205490915060ff166104295760405162461bcd60e51b815260206004820152603d60248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20547260448201527f616e73616374696f6e206861736e2774206265656e207175657565642e0000006064820152608401610346565b824210156104c55760405162461bcd60e51b815260206004820152604560248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20547260448201527f616e73616374696f6e206861736e2774207375727061737365642074696d652060648201527f6c6f636b2e000000000000000000000000000000000000000000000000000000608482015260a401610346565b6104d2621275008461125a565b4211156105475760405162461bcd60e51b815260206004820152603360248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20547260448201527f616e73616374696f6e206973207374616c652e000000000000000000000000006064820152608401610346565b600081815260036020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556060908790036105c45785858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293506105ff92505050565b87876040516105d492919061129a565b6040519081900381206105ed91889088906020016112aa565b60405160208183030381529060405290505b6000808b73ffffffffffffffffffffffffffffffffffffffff168b8460405161062891906112e6565b60006040518083038185875af1925050503d8060008114610665576040519150601f19603f3d011682016040523d82523d6000602084013e61066a565b606091505b5091509150816106e25760405162461bcd60e51b815260206004820152603d60248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20547260448201527f616e73616374696f6e20657865637574696f6e2072657665727465642e0000006064820152608401610346565b8b73ffffffffffffffffffffffffffffffffffffffff16847fa560e3198060a2f10670c1ec5b403077ea6ae93ca8de1c32b451dc1a943cd6e78d8d8d8d8d8d60405161073396959493929190611302565b60405180910390a39b9a5050505050505050505050565b60015473ffffffffffffffffffffffffffffffffffffffff1633146107d75760405162461bcd60e51b815260206004820152603860248201527f54696d656c6f636b3a3a61636365707441646d696e3a2043616c6c206d75737460448201527f20636f6d652066726f6d2070656e64696e6741646d696e2e00000000000000006064820152608401610346565b60008054604051339273ffffffffffffffffffffffffffffffffffffffff909216917ff9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc91a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081163317909155600180549091169055565b6000805473ffffffffffffffffffffffffffffffffffffffff1633146108e25760405162461bcd60e51b815260206004820152603660248201527f54696d656c6f636b3a3a71756575655472616e73616374696f6e3a2043616c6c60448201527f206d75737420636f6d652066726f6d2061646d696e2e000000000000000000006064820152608401610346565b6002546108ef904261125a565b82101561098a5760405162461bcd60e51b815260206004820152604960248201527f54696d656c6f636b3a3a71756575655472616e73616374696f6e3a204573746960448201527f6d6174656420657865637574696f6e20626c6f636b206d75737420736174697360648201527f66792064656c61792e0000000000000000000000000000000000000000000000608482015260a401610346565b6000888888888888886040516020016109a997969594939291906111fc565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291815281516020928301206000818152600390935291205490915060ff1615610a655760405162461bcd60e51b815260206004820152603760248201527f54696d656c6f636b3a3a71756575655472616e73616374696f6e3a207472616e60448201527f73616374696f6e20616c7265616479207175657565642e0000000000000000006064820152608401610346565b6000818152600360205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555173ffffffffffffffffffffffffffffffffffffffff8a169082907f76e2796dc3a81d57b0e8504b647febcbeeb5f4af818e164f11eef8131a6a763f90610af0908c908c908c908c908c908c90611302565b60405180910390a398975050505050505050565b33301480610b29575060005473ffffffffffffffffffffffffffffffffffffffff1633145b610b9b5760405162461bcd60e51b815260206004820152603860248201527f54696d656c6f636b3a3a73657450656e64696e6741646d696e3a2043616c6c2060448201527f6d75737420636f6d652066726f6d2054696d656c6f636b2e00000000000000006064820152608401610346565b610ba481610fae565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f69d78e38a01985fbb1462961809b4b2d65531bc93b2b94037f3334b82ca4a75690600090a250565b60005473ffffffffffffffffffffffffffffffffffffffff163314610ca05760405162461bcd60e51b815260206004820152603760248201527f54696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a2043616c60448201527f6c206d75737420636f6d652066726f6d2061646d696e2e0000000000000000006064820152608401610346565b600087878787878787604051602001610cbf97969594939291906111fc565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291815281516020928301206000818152600390935291205490915060ff16610d7a5760405162461bcd60e51b815260206004820152603b60248201527f54696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a2074726160448201527f6e73616374696f6e206973206e6f7420717565756564207965742e00000000006064820152608401610346565b6000818152600360205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555173ffffffffffffffffffffffffffffffffffffffff89169082907f2fffc091a501fd91bfbff27141450d3acb40fb8e6d8382b243ec7a812a3aaf8790610e02908b908b908b908b908b908b90611302565b60405180910390a35050505050505050565b333014610e895760405162461bcd60e51b815260206004820152603160248201527f54696d656c6f636b3a3a73657444656c61793a2043616c6c206d75737420636f60448201527f6d652066726f6d2054696d656c6f636b2e0000000000000000000000000000006064820152608401610346565b610e10811015610f015760405162461bcd60e51b815260206004820152603460248201527f54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206560448201527f7863656564206d696e696d756d2064656c61792e0000000000000000000000006064820152608401610346565b62278d00811115610f7a5760405162461bcd60e51b815260206004820152603860248201527f54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e60448201527f6f7420657863656564206d6178696d756d2064656c61792e00000000000000006064820152608401610346565b6002546040518291907fed0229422af39d4d7d33f7a27d31d6f5cb20ec628293da58dd6e8a528ed466be90600090a3600255565b73ffffffffffffffffffffffffffffffffffffffff8116610ffb576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b803573ffffffffffffffffffffffffffffffffffffffff8116811461102257600080fd5b919050565b60008083601f84011261103957600080fd5b50813567ffffffffffffffff81111561105157600080fd5b60208301915083602082850101111561106957600080fd5b9250929050565b600080600080600080600060a0888a03121561108b57600080fd5b61109488610ffe565b965060208801359550604088013567ffffffffffffffff808211156110b857600080fd5b6110c48b838c01611027565b909750955060608a01359150808211156110dd57600080fd5b506110ea8a828b01611027565b989b979a50959894979596608090950135949350505050565b60005b8381101561111e578181015183820152602001611106565b50506000910152565b6020815260008251806020840152611146816040850160208701611103565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60006020828403121561118a57600080fd5b61119382610ffe565b9392505050565b6000602082840312156111ac57600080fd5b5035919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8816815286602082015260a06040820152600061123260a0830187896111b3565b82810360608401526112458186886111b3565b91505082608083015298975050505050505050565b80820180821115611294577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b92915050565b8183823760009101908152919050565b7fffffffff0000000000000000000000000000000000000000000000000000000084168152818360048301376000910160040190815292915050565b600082516112f8818460208701611103565b9190910192915050565b86815260806020820152600061131c6080830187896111b3565b828103604084015261132f8186886111b3565b91505082606083015297965050505050505056fea2646970667358221220c07d87e3cfbbfd2d102119c1681bbf90ee223afc956a756bab7d170887b6fcbd64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xC9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6A42B8F8 GT PUSH2 0x79 JUMPI DUP1 PUSH4 0xC1A287E2 GT PUSH2 0x56 JUMPI DUP1 PUSH4 0xC1A287E2 EQ PUSH2 0x217 JUMPI DUP1 PUSH4 0xE177246E EQ PUSH2 0x22D JUMPI DUP1 PUSH4 0xF2B06537 EQ PUSH2 0x24D JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x28D JUMPI STOP JUMPDEST DUP1 PUSH4 0x6A42B8F8 EQ PUSH2 0x1D6 JUMPI DUP1 PUSH4 0x7D645FAB EQ PUSH2 0x1EC JUMPI DUP1 PUSH4 0xB1B43AE5 EQ PUSH2 0x202 JUMPI STOP JUMPDEST DUP1 PUSH4 0x3A66F901 GT PUSH2 0xA7 JUMPI DUP1 PUSH4 0x3A66F901 EQ PUSH2 0x168 JUMPI DUP1 PUSH4 0x4DD18BF5 EQ PUSH2 0x196 JUMPI DUP1 PUSH4 0x591FCDFE EQ PUSH2 0x1B6 JUMPI STOP JUMPDEST DUP1 PUSH4 0x825F38F EQ PUSH2 0xCB JUMPI DUP1 PUSH4 0xE18B681 EQ PUSH2 0x101 JUMPI DUP1 PUSH4 0x26782247 EQ PUSH2 0x116 JUMPI JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xEB PUSH2 0xE6 CALLDATASIZE PUSH1 0x4 PUSH2 0x1070 JUMP JUMPDEST PUSH2 0x2BA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF8 SWAP2 SWAP1 PUSH2 0x1127 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x10D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC9 PUSH2 0x74A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x122 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x143 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x174 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x188 PUSH2 0x183 CALLDATASIZE PUSH1 0x4 PUSH2 0x1070 JUMP JUMPDEST PUSH2 0x854 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC9 PUSH2 0x1B1 CALLDATASIZE PUSH1 0x4 PUSH2 0x1178 JUMP JUMPDEST PUSH2 0xB04 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC9 PUSH2 0x1D1 CALLDATASIZE PUSH1 0x4 PUSH2 0x1070 JUMP JUMPDEST PUSH2 0xC13 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x188 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x278D00 PUSH2 0x188 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE10 PUSH2 0x188 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x223 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x127500 PUSH2 0x188 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x239 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC9 PUSH2 0x248 CALLDATASIZE PUSH1 0x4 PUSH2 0x119A JUMP JUMPDEST PUSH2 0xE14 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x259 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27D PUSH2 0x268 CALLDATASIZE PUSH1 0x4 PUSH2 0x119A JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x299 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x143 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x60 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x34F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A657865637574655472616E73616374696F6E3A204361 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C6C206D75737420636F6D652066726F6D2061646D696E2E0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x36E SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x11FC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 SWAP1 SWAP4 MSTORE SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND PUSH2 0x429 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A657865637574655472616E73616374696F6E3A205472 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616E73616374696F6E206861736E2774206265656E207175657565642E000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x346 JUMP JUMPDEST DUP3 TIMESTAMP LT ISZERO PUSH2 0x4C5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A657865637574655472616E73616374696F6E3A205472 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616E73616374696F6E206861736E2774207375727061737365642074696D6520 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6C6F636B2E000000000000000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0x346 JUMP JUMPDEST PUSH2 0x4D2 PUSH3 0x127500 DUP5 PUSH2 0x125A JUMP JUMPDEST TIMESTAMP GT ISZERO PUSH2 0x547 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x33 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A657865637574655472616E73616374696F6E3A205472 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616E73616374696F6E206973207374616C652E00000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x346 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND SWAP1 SSTORE PUSH1 0x60 SWAP1 DUP8 SWAP1 SUB PUSH2 0x5C4 JUMPI DUP6 DUP6 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP3 SWAP4 POP PUSH2 0x5FF SWAP3 POP POP POP JUMP JUMPDEST DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0x5D4 SWAP3 SWAP2 SWAP1 PUSH2 0x129A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 PUSH2 0x5ED SWAP2 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x20 ADD PUSH2 0x12AA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP JUMPDEST PUSH1 0x0 DUP1 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP12 DUP5 PUSH1 0x40 MLOAD PUSH2 0x628 SWAP2 SWAP1 PUSH2 0x12E6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x665 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x66A JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x6E2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A657865637574655472616E73616374696F6E3A205472 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616E73616374696F6E20657865637574696F6E2072657665727465642E000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x346 JUMP JUMPDEST DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0xA560E3198060A2F10670C1EC5B403077EA6AE93CA8DE1C32B451DC1A943CD6E7 DUP14 DUP14 DUP14 DUP14 DUP14 DUP14 PUSH1 0x40 MLOAD PUSH2 0x733 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x7D7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A61636365707441646D696E3A2043616C6C206D757374 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x20636F6D652066726F6D2070656E64696E6741646D696E2E0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x346 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD CALLER SWAP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 PUSH32 0xF9FFABCA9C8276E99321725BCB43FB076A6C66A54B7F21C4E8146D8519B417DC SWAP2 LOG3 PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP1 DUP2 AND CALLER OR SWAP1 SWAP2 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x8E2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x36 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A71756575655472616E73616374696F6E3A2043616C6C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x206D75737420636F6D652066726F6D2061646D696E2E00000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x346 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x8EF SWAP1 TIMESTAMP PUSH2 0x125A JUMP JUMPDEST DUP3 LT ISZERO PUSH2 0x98A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x49 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A71756575655472616E73616374696F6E3A2045737469 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6D6174656420657865637574696F6E20626C6F636B206D757374207361746973 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x66792064656C61792E0000000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0x346 JUMP JUMPDEST PUSH1 0x0 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x9A9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x11FC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 SWAP1 SWAP4 MSTORE SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND ISZERO PUSH2 0xA65 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x37 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A71756575655472616E73616374696F6E3A207472616E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x73616374696F6E20616C7265616479207175657565642E000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x346 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND PUSH1 0x1 OR SWAP1 SSTORE MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP11 AND SWAP1 DUP3 SWAP1 PUSH32 0x76E2796DC3A81D57B0E8504B647FEBCBEEB5F4AF818E164F11EEF8131A6A763F SWAP1 PUSH2 0xAF0 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST CALLER ADDRESS EQ DUP1 PUSH2 0xB29 JUMPI POP PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ JUMPDEST PUSH2 0xB9B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A73657450656E64696E6741646D696E3A2043616C6C20 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6D75737420636F6D652066726F6D2054696D656C6F636B2E0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x346 JUMP JUMPDEST PUSH2 0xBA4 DUP2 PUSH2 0xFAE JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x69D78E38A01985FBB1462961809B4B2D65531BC93B2B94037F3334B82CA4A756 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0xCA0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x37 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A63616E63656C5472616E73616374696F6E3A2043616C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C206D75737420636F6D652066726F6D2061646D696E2E000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x346 JUMP JUMPDEST PUSH1 0x0 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xCBF SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x11FC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 SWAP1 SWAP4 MSTORE SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND PUSH2 0xD7A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A63616E63656C5472616E73616374696F6E3A20747261 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E73616374696F6E206973206E6F7420717565756564207965742E0000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x346 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND SWAP1 SSTORE MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP10 AND SWAP1 DUP3 SWAP1 PUSH32 0x2FFFC091A501FD91BFBFF27141450D3ACB40FB8E6D8382B243EC7A812A3AAF87 SWAP1 PUSH2 0xE02 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP POP JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0xE89 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A73657444656C61793A2043616C6C206D75737420636F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6D652066726F6D2054696D656C6F636B2E000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x346 JUMP JUMPDEST PUSH2 0xE10 DUP2 LT ISZERO PUSH2 0xF01 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x34 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A73657444656C61793A2044656C6179206D7573742065 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7863656564206D696E696D756D2064656C61792E000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x346 JUMP JUMPDEST PUSH3 0x278D00 DUP2 GT ISZERO PUSH2 0xF7A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A73657444656C61793A2044656C6179206D757374206E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F7420657863656564206D6178696D756D2064656C61792E0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x346 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD DUP3 SWAP2 SWAP1 PUSH32 0xED0229422AF39D4D7D33F7A27D31D6F5CB20EC628293DA58DD6E8A528ED466BE SWAP1 PUSH1 0x0 SWAP1 LOG3 PUSH1 0x2 SSTORE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0xFFB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8579BEFE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x1022 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1039 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1051 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x1069 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x108B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1094 DUP9 PUSH2 0xFFE JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x10B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10C4 DUP12 DUP4 DUP13 ADD PUSH2 0x1027 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP PUSH1 0x60 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x10DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10EA DUP11 DUP3 DUP12 ADD PUSH2 0x1027 JUMP JUMPDEST SWAP9 SWAP12 SWAP8 SWAP11 POP SWAP6 SWAP9 SWAP5 SWAP8 SWAP6 SWAP7 PUSH1 0x80 SWAP1 SWAP6 ADD CALLDATALOAD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x111E JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1106 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x1146 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x1103 JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x118A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1193 DUP3 PUSH2 0xFFE JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x11AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 ADD ADD MSTORE PUSH1 0x0 PUSH1 0x20 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 PUSH1 0x1F DUP5 ADD AND DUP5 ADD ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP9 AND DUP2 MSTORE DUP7 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1232 PUSH1 0xA0 DUP4 ADD DUP8 DUP10 PUSH2 0x11B3 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x1245 DUP2 DUP7 DUP9 PUSH2 0x11B3 JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x80 DUP4 ADD MSTORE SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x1294 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP5 AND DUP2 MSTORE DUP2 DUP4 PUSH1 0x4 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 ADD PUSH1 0x4 ADD SWAP1 DUP2 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x12F8 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x1103 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP7 DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x131C PUSH1 0x80 DUP4 ADD DUP8 DUP10 PUSH2 0x11B3 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x132F DUP2 DUP7 DUP9 PUSH2 0x11B3 JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x60 DUP4 ADD MSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC0 PUSH30 0x87E3CFBBFD2D102119C1681BBF90EE223AFC956A756BAB7D170887B6FCBD PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"429:9438:59:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8245:1342;;;;;;;;;;-1:-1:-1;8245:1342:59;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4309:247;;;;;;;;;;;;;:::i;1017:27::-;;;;;;;;;;-1:-1:-1;1017:27:59;;;;;;;;;;;2394:42:97;2382:55;;;2364:74;;2352:2;2337:18;1017:27:59;2218:226:97;5807:790:59;;;;;;;;;;-1:-1:-1;5807:790:59;;;;;:::i;:::-;;:::i;:::-;;;2595:25:97;;;2583:2;2568:18;5807:790:59;2449:177:97;4893:353:59;;;;;;;;;;-1:-1:-1;4893:353:59;;;;;:::i;:::-;;:::i;7104:593::-;;;;;;;;;;-1:-1:-1;7104:593:59;;;;;:::i;:::-;;:::i;1114:20::-;;;;;;;;;;;;;;;;4017:108;;;;;;;;;;-1:-1:-1;849:7:59;4017:108;;3813;;;;;;;;;;-1:-1:-1;709:7:59;3813:108;;3611:106;;;;;;;;;;-1:-1:-1;569:7:59;3611:106;;3062:413;;;;;;;;;;-1:-1:-1;3062:413:59;;;;;:::i;:::-;;:::i;1188:50::-;;;;;;;;;;-1:-1:-1;1188:50:59;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3539:14:97;;3532:22;3514:41;;3502:2;3487:18;1188:50:59;3374:187:97;939:20:59;;;;;;;;;;-1:-1:-1;939:20:59;;;;;;;;8245:1342;8473:5;;8427:12;;8473:5;;8459:10;:19;8451:88;;;;-1:-1:-1;;;8451:88:59;;3768:2:97;8451:88:59;;;3750:21:97;3807:2;3787:18;;;3780:30;3846:34;3826:18;;;3819:62;3917:26;3897:18;;;3890:54;3961:19;;8451:88:59;;;;;;;;;8550:14;8588:6;8596:5;8603:9;;8614:4;;8620:3;8577:47;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;8567:58;;8577:47;8567:58;;;;8643:26;;;;:18;:26;;;;;;8567:58;;-1:-1:-1;8643:26:59;;8635:100;;;;-1:-1:-1;;;8635:100:59;;5229:2:97;8635:100:59;;;5211:21:97;5268:2;5248:18;;;5241:30;5307:34;5287:18;;;5280:62;5378:31;5358:18;;;5351:59;5427:19;;8635:100:59;5027:425:97;8635:100:59;8776:3;9843:15;8753:26;;8745:108;;;;-1:-1:-1;;;8745:108:59;;5659:2:97;8745:108:59;;;5641:21:97;5698:2;5678:18;;;5671:30;5737:34;5717:18;;;5710:62;5808:34;5788:18;;;5781:62;5880:7;5859:19;;;5852:36;5905:19;;8745:108:59;5457:473:97;8745:108:59;8894:20;569:7;8894:3;:20;:::i;:::-;9843:15;8871:43;;8863:107;;;;-1:-1:-1;;;8863:107:59;;6421:2:97;8863:107:59;;;6403:21:97;6460:2;6440:18;;;6433:30;6499:34;6479:18;;;6472:62;6570:21;6550:18;;;6543:49;6609:19;;8863:107:59;6219:415:97;8863:107:59;8989:26;;;;:18;:26;;;;;8981:35;;;;;;9027:21;;9063:28;;;9059:175;;9118:4;;9107:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9107:15:59;;-1:-1:-1;9059:175:59;;-1:-1:-1;;;9059:175:59;;9204:9;;9188:27;;;;;;;:::i;:::-;;;;;;;;;9164:59;;9218:4;;;;9164:59;;;:::i;:::-;;;;;;;;;;;;;9153:70;;9059:175;9304:12;9318:23;9345:6;:11;;9365:5;9373:8;9345:37;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9303:79;;;;9400:7;9392:81;;;;-1:-1:-1;;;9392:81:59;;7828:2:97;9392:81:59;;;7810:21:97;7867:2;7847:18;;;7840:30;7906:34;7886:18;;;7879:62;7977:31;7957:18;;;7950:59;8026:19;;9392:81:59;7626:425:97;9392:81:59;9516:6;9489:63;;9508:6;9489:63;9524:5;9531:9;;9542:4;;9548:3;9489:63;;;;;;;;;;;:::i;:::-;;;;;;;;9570:10;8245:1342;-1:-1:-1;;;;;;;;;;;8245:1342:59:o;4309:247::-;4371:12;;;;4357:10;:26;4349:95;;;;-1:-1:-1;;;4349:95:59;;8842:2:97;4349:95:59;;;8824:21:97;8881:2;8861:18;;;8854:30;8920:34;8900:18;;;8893:62;8991:26;8971:18;;;8964:54;9035:19;;4349:95:59;8640:420:97;4349:95:59;4468:5;;;4459:27;;4475:10;;4459:27;4468:5;;;;4459:27;;;4496:5;:18;;;;;;4504:10;4496:18;;;;;4524:25;;;;;;;4309:247::o;5807:790::-;5987:7;6028:5;;;;6014:10;:19;6006:86;;;;-1:-1:-1;;;6006:86:59;;9267:2:97;6006:86:59;;;9249:21:97;9306:2;9286:18;;;9279:30;9345:34;9325:18;;;9318:62;9416:24;9396:18;;;9389:52;9458:19;;6006:86:59;9065:418:97;6006:86:59;6152:5;;6130:27;;9843:15;6130:27;:::i;:::-;6123:3;:34;;6102:154;;;;-1:-1:-1;;;6102:154:59;;9690:2:97;6102:154:59;;;9672:21:97;9729:2;9709:18;;;9702:30;9768:34;9748:18;;;9741:62;9839:34;9819:18;;;9812:62;9911:11;9890:19;;;9883:40;9940:19;;6102:154:59;9488:477:97;6102:154:59;6267:14;6305:6;6313:5;6320:9;;6331:4;;6337:3;6294:47;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;6284:58;;6294:47;6284:58;;;;6361:26;;;;:18;:26;;;;;;6284:58;;-1:-1:-1;6361:26:59;;6360:27;6352:95;;;;-1:-1:-1;;;6352:95:59;;10172:2:97;6352:95:59;;;10154:21:97;10211:2;10191:18;;;10184:30;10250:34;10230:18;;;10223:62;10321:25;10301:18;;;10294:53;10364:19;;6352:95:59;9970:419:97;6352:95:59;6457:26;;;;:18;:26;;;;;;;:33;;;;6486:4;6457:33;;;6506:61;;;;;6476:6;;6506:61;;;;6539:5;;6546:9;;;;6557:4;;;;6563:3;;6506:61;:::i;:::-;;;;;;;;6584:6;5807:790;-1:-1:-1;;;;;;;;5807:790:59:o;4893:353::-;4979:10;5001:4;4979:27;;:50;;-1:-1:-1;5024:5:59;;;;5010:10;:19;4979:50;4958:153;;;;-1:-1:-1;;;4958:153:59;;10596:2:97;4958:153:59;;;10578:21:97;10635:2;10615:18;;;10608:30;10674:34;10654:18;;;10647:62;10745:26;10725:18;;;10718:54;10789:19;;4958:153:59;10394:420:97;4958:153:59;5121:35;5142:13;5121:20;:35::i;:::-;5166:12;:28;;;;;;;;;;;;;5210:29;;;;-1:-1:-1;;5210:29:59;4893:353;:::o;7104:593::-;7308:5;;;;7294:10;:19;7286:87;;;;-1:-1:-1;;;7286:87:59;;11021:2:97;7286:87:59;;;11003:21:97;11060:2;11040:18;;;11033:30;11099:34;11079:18;;;11072:62;11170:25;11150:18;;;11143:53;11213:19;;7286:87:59;10819:419:97;7286:87:59;7384:14;7422:6;7430:5;7437:9;;7448:4;;7454:3;7411:47;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;7401:58;;7411:47;7401:58;;;;7477:26;;;;:18;:26;;;;;;7401:58;;-1:-1:-1;7477:26:59;;7469:98;;;;-1:-1:-1;;;7469:98:59;;11445:2:97;7469:98:59;;;11427:21:97;11484:2;11464:18;;;11457:30;11523:34;11503:18;;;11496:62;11594:29;11574:18;;;11567:57;11641:19;;7469:98:59;11243:423:97;7469:98:59;7585:26;;;;:18;:26;;;;;;;7577:35;;;;;;7628:62;;;;;7604:6;;7628:62;;;;7662:5;;7669:9;;;;7680:4;;;;7686:3;;7628:62;:::i;:::-;;;;;;;;7276:421;7104:593;;;;;;;:::o;3062:413::-;3121:10;3143:4;3121:27;3113:89;;;;-1:-1:-1;;;3113:89:59;;11873:2:97;3113:89:59;;;11855:21:97;11912:2;11892:18;;;11885:30;11951:34;11931:18;;;11924:62;12022:19;12002:18;;;11995:47;12059:19;;3113:89:59;11671:413:97;3113:89:59;709:7;3220:6;:25;;3212:90;;;;-1:-1:-1;;;3212:90:59;;12291:2:97;3212:90:59;;;12273:21:97;12330:2;12310:18;;;12303:30;12369:34;12349:18;;;12342:62;12440:22;12420:18;;;12413:50;12480:19;;3212:90:59;12089:416:97;3212:90:59;849:7;3320:6;:25;;3312:94;;;;-1:-1:-1;;;3312:94:59;;12712:2:97;3312:94:59;;;12694:21:97;12751:2;12731:18;;;12724:30;12790:34;12770:18;;;12763:62;12861:26;12841:18;;;12834:54;12905:19;;3312:94:59;12510:420:97;3312:94:59;3430:5;;3421:23;;3437:6;;3430:5;3421:23;;;;;3454:5;:14;3062:413::o;485:136:47:-;548:22;;;544:75;;589:23;;;;;;;;;;;;;;544:75;485:136;:::o;14:196:97:-;82:20;;142:42;131:54;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:348::-;267:8;277:6;331:3;324:4;316:6;312:17;308:27;298:55;;349:1;346;339:12;298:55;-1:-1:-1;372:20:97;;415:18;404:30;;401:50;;;447:1;444;437:12;401:50;484:4;476:6;472:17;460:29;;536:3;529:4;520:6;512;508:19;504:30;501:39;498:59;;;553:1;550;543:12;498:59;215:348;;;;;:::o;568:932::-;686:6;694;702;710;718;726;734;787:3;775:9;766:7;762:23;758:33;755:53;;;804:1;801;794:12;755:53;827:29;846:9;827:29;:::i;:::-;817:39;;903:2;892:9;888:18;875:32;865:42;;958:2;947:9;943:18;930:32;981:18;1022:2;1014:6;1011:14;1008:34;;;1038:1;1035;1028:12;1008:34;1077:59;1128:7;1119:6;1108:9;1104:22;1077:59;:::i;:::-;1155:8;;-1:-1:-1;1051:85:97;-1:-1:-1;1243:2:97;1228:18;;1215:32;;-1:-1:-1;1259:16:97;;;1256:36;;;1288:1;1285;1278:12;1256:36;;1327:61;1380:7;1369:8;1358:9;1354:24;1327:61;:::i;:::-;568:932;;;;-1:-1:-1;568:932:97;;;;;;1489:3;1474:19;;;1461:33;;568:932;-1:-1:-1;;;;568:932:97:o;1505:250::-;1590:1;1600:113;1614:6;1611:1;1608:13;1600:113;;;1690:11;;;1684:18;1671:11;;;1664:39;1636:2;1629:10;1600:113;;;-1:-1:-1;;1747:1:97;1729:16;;1722:27;1505:250::o;1760:453::-;1907:2;1896:9;1889:21;1870:4;1939:6;1933:13;1982:6;1977:2;1966:9;1962:18;1955:34;1998:79;2070:6;2065:2;2054:9;2050:18;2045:2;2037:6;2033:15;1998:79;:::i;:::-;2129:2;2117:15;2134:66;2113:88;2098:104;;;;2204:2;2094:113;;1760:453;-1:-1:-1;;1760:453:97:o;2631:186::-;2690:6;2743:2;2731:9;2722:7;2718:23;2714:32;2711:52;;;2759:1;2756;2749:12;2711:52;2782:29;2801:9;2782:29;:::i;:::-;2772:39;2631:186;-1:-1:-1;;;2631:186:97:o;3004:180::-;3063:6;3116:2;3104:9;3095:7;3091:23;3087:32;3084:52;;;3132:1;3129;3122:12;3084:52;-1:-1:-1;3155:23:97;;3004:180;-1:-1:-1;3004:180:97:o;3991:326::-;4080:6;4075:3;4068:19;4132:6;4125:5;4118:4;4113:3;4109:14;4096:43;;4184:1;4177:4;4168:6;4163:3;4159:16;4155:27;4148:38;4050:3;4306:4;4236:66;4231:2;4223:6;4219:15;4215:88;4210:3;4206:98;4202:109;4195:116;;3991:326;;;;:::o;4322:700::-;4633:42;4625:6;4621:55;4610:9;4603:74;4713:6;4708:2;4697:9;4693:18;4686:34;4756:3;4751:2;4740:9;4736:18;4729:31;4584:4;4783:63;4841:3;4830:9;4826:19;4818:6;4810;4783:63;:::i;:::-;4894:9;4886:6;4882:22;4877:2;4866:9;4862:18;4855:50;4922;4965:6;4957;4949;4922:50;:::i;:::-;4914:58;;;5009:6;5003:3;4992:9;4988:19;4981:35;4322:700;;;;;;;;;;:::o;5935:279::-;6000:9;;;6021:10;;;6018:190;;;6064:77;6061:1;6054:88;6165:4;6162:1;6155:15;6193:4;6190:1;6183:15;6018:190;5935:279;;;;:::o;6639:271::-;6822:6;6814;6809:3;6796:33;6778:3;6848:16;;6873:13;;;6848:16;6639:271;-1:-1:-1;6639:271:97:o;6915:414::-;7122:66;7114:6;7110:79;7105:3;7098:92;7233:6;7225;7221:1;7216:3;7212:11;7199:41;7080:3;7263:16;;7281:1;7259:24;7292:13;;;7259:24;6915:414;-1:-1:-1;;6915:414:97:o;7334:287::-;7463:3;7501:6;7495:13;7517:66;7576:6;7571:3;7564:4;7556:6;7552:17;7517:66;:::i;:::-;7599:16;;;;;7334:287;-1:-1:-1;;7334:287:97:o;8056:579::-;8327:6;8316:9;8309:25;8370:3;8365:2;8354:9;8350:18;8343:31;8290:4;8397:63;8455:3;8444:9;8440:19;8432:6;8424;8397:63;:::i;:::-;8508:9;8500:6;8496:22;8491:2;8480:9;8476:18;8469:50;8536;8579:6;8571;8563;8536:50;:::i;:::-;8528:58;;;8622:6;8617:2;8606:9;8602:18;8595:34;8056:579;;;;;;;;;:::o"},"gasEstimates":{"creation":{"codeDepositCost":"997000","executionCost":"infinite","totalCost":"infinite"},"external":{"":"164","GRACE_PERIOD()":"214","MAXIMUM_DELAY()":"237","MINIMUM_DELAY()":"259","acceptAdmin()":"54403","admin()":"2401","cancelTransaction(address,uint256,string,bytes,uint256)":"infinite","delay()":"2318","executeTransaction(address,uint256,string,bytes,uint256)":"infinite","pendingAdmin()":"2381","queueTransaction(address,uint256,string,bytes,uint256)":"infinite","queuedTransactions(bytes32)":"2516","setDelay(uint256)":"26071","setPendingAdmin(address)":"27922"},"internal":{"getBlockTimestamp()":"infinite"}},"methodIdentifiers":{"GRACE_PERIOD()":"c1a287e2","MAXIMUM_DELAY()":"7d645fab","MINIMUM_DELAY()":"b1b43ae5","acceptAdmin()":"0e18b681","admin()":"f851a440","cancelTransaction(address,uint256,string,bytes,uint256)":"591fcdfe","delay()":"6a42b8f8","executeTransaction(address,uint256,string,bytes,uint256)":"0825f38f","pendingAdmin()":"26782247","queueTransaction(address,uint256,string,bytes,uint256)":"3a66f901","queuedTransactions(bytes32)":"f2b06537","setDelay(uint256)":"e177246e","setPendingAdmin(address)":"4dd18bf5"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"delay_\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"CancelTransaction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"ExecuteTransaction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldAdmin\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"NewAdmin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldDelay\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newDelay\",\"type\":\"uint256\"}],\"name\":\"NewDelay\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newPendingAdmin\",\"type\":\"address\"}],\"name\":\"NewPendingAdmin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"QueueTransaction\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"GRACE_PERIOD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAXIMUM_DELAY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MINIMUM_DELAY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"cancelTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"executeTransaction\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"queueTransaction\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"queuedTransactions\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"delay_\",\"type\":\"uint256\"}],\"name\":\"setDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingAdmin_\",\"type\":\"address\"}],\"name\":\"setPendingAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"kind\":\"dev\",\"methods\":{\"GRACE_PERIOD()\":{\"returns\":{\"_0\":\"The duration of the grace period, specified as a uint256 value.\"}},\"MAXIMUM_DELAY()\":{\"returns\":{\"_0\":\"Maximum delay\"}},\"MINIMUM_DELAY()\":{\"returns\":{\"_0\":\"Minimum delay\"}},\"acceptAdmin()\":{\"custom:access\":\"Sender must be pending admin\",\"custom:event\":\"Emit NewAdmin with old and new admin\"},\"cancelTransaction(address,uint256,string,bytes,uint256)\":{\"custom:access\":\"Sender must be admin\",\"custom:event\":\"Emit CancelTransaction\",\"params\":{\"data\":\"Arguments to be passed to the function when called\",\"eta\":\"Timestamp after which the transaction can be executed\",\"signature\":\"Signature of the function to be called\",\"target\":\"Address of the contract with the method to be called\",\"value\":\"Native token amount sent with the transaction\"}},\"executeTransaction(address,uint256,string,bytes,uint256)\":{\"custom:access\":\"Sender must be admin\",\"custom:event\":\"Emit ExecuteTransaction\",\"params\":{\"data\":\"Arguments to be passed to the function when called\",\"eta\":\"Timestamp after which the transaction can be executed\",\"signature\":\"Signature of the function to be called\",\"target\":\"Address of the contract with the method to be called\",\"value\":\"Native token amount sent with the transaction\"},\"returns\":{\"_0\":\"Result of function call\"}},\"queueTransaction(address,uint256,string,bytes,uint256)\":{\"custom:access\":\"Sender must be admin\",\"custom:event\":\"Emit QueueTransaction\",\"params\":{\"data\":\"Arguments to be passed to the function when called\",\"eta\":\"Timestamp after which the transaction can be executed\",\"signature\":\"Signature of the function to be called\",\"target\":\"Address of the contract with the method to be called\",\"value\":\"Native token amount sent with the transaction\"},\"returns\":{\"_0\":\"Hash of the queued transaction\"}},\"setDelay(uint256)\":{\"custom:access\":\"Sender must be Timelock itself\",\"custom:event\":\"Emit NewDelay with old and new delay\",\"params\":{\"delay_\":\"The new delay period for the transaction queue\"}},\"setPendingAdmin(address)\":{\"custom:access\":\"Sender must be Timelock contract itself or admin\",\"custom:event\":\"Emit NewPendingAdmin with new pending admin\",\"params\":{\"pendingAdmin_\":\"Address of the proposed admin\"}}},\"title\":\"TimelockV8\",\"version\":1},\"userdoc\":{\"errors\":{\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}]},\"events\":{\"CancelTransaction(bytes32,address,uint256,string,bytes,uint256)\":{\"notice\":\"Event emitted when a proposal transaction has been cancelled\"},\"ExecuteTransaction(bytes32,address,uint256,string,bytes,uint256)\":{\"notice\":\"Event emitted when a proposal transaction has been executed\"},\"NewAdmin(address,address)\":{\"notice\":\"Event emitted when a new admin is accepted\"},\"NewDelay(uint256,uint256)\":{\"notice\":\"Event emitted when a new delay is proposed\"},\"NewPendingAdmin(address)\":{\"notice\":\"Event emitted when a new admin is proposed\"},\"QueueTransaction(bytes32,address,uint256,string,bytes,uint256)\":{\"notice\":\"Event emitted when a proposal transaction has been queued\"}},\"kind\":\"user\",\"methods\":{\"GRACE_PERIOD()\":{\"notice\":\"Return grace period\"},\"MAXIMUM_DELAY()\":{\"notice\":\"Return required maximum delay\"},\"MINIMUM_DELAY()\":{\"notice\":\"Return required minimum delay\"},\"acceptAdmin()\":{\"notice\":\"Method for accepting a proposed admin\"},\"admin()\":{\"notice\":\"Timelock admin authorized to queue and execute transactions\"},\"cancelTransaction(address,uint256,string,bytes,uint256)\":{\"notice\":\"Called to cancel a queued transaction\"},\"delay()\":{\"notice\":\"Period for a proposal transaction to be queued\"},\"executeTransaction(address,uint256,string,bytes,uint256)\":{\"notice\":\"Called to execute a queued transaction\"},\"pendingAdmin()\":{\"notice\":\"Account proposed as the next admin\"},\"queueTransaction(address,uint256,string,bytes,uint256)\":{\"notice\":\"Called for each action when queuing a proposal\"},\"queuedTransactions(bytes32)\":{\"notice\":\"Mapping of queued transactions\"},\"setDelay(uint256)\":{\"notice\":\"Setter for the transaction queue delay\"},\"setPendingAdmin(address)\":{\"notice\":\"Method to propose a new admin authorized to call timelock functions. This should be the Governor Contract\"}},\"notice\":\"The Timelock contract using solidity V8. This contract also differs from the original timelock because it has a virtual function to get minimum delays and allow test deployments to override the value.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Governance/TimelockV8.sol\":\"TimelockV8\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@venusprotocol/solidity-utilities/contracts/validators.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\n/// @notice Thrown if the supplied address is a zero address where it is not allowed\\nerror ZeroAddressNotAllowed();\\n\\n/// @notice Thrown if the supplied value is 0 where it is not allowed\\nerror ZeroValueNotAllowed();\\n\\n/// @notice Checks if the provided address is nonzero, reverts otherwise\\n/// @param address_ Address to check\\n/// @custom:error ZeroAddressNotAllowed is thrown if the provided address is a zero address\\nfunction ensureNonzeroAddress(address address_) pure {\\n    if (address_ == address(0)) {\\n        revert ZeroAddressNotAllowed();\\n    }\\n}\\n\\n/// @notice Checks if the provided value is nonzero, reverts otherwise\\n/// @param value_ Value to check\\n/// @custom:error ZeroValueNotAllowed is thrown if the provided value is 0\\nfunction ensureNonzeroValue(uint256 value_) pure {\\n    if (value_ == 0) {\\n        revert ZeroValueNotAllowed();\\n    }\\n}\\n\",\"keccak256\":\"0xdb88e14d50dd21889ca3329d755673d022c47e8da005b6a545c7f69c2c4b7b86\",\"license\":\"BSD-3-Clause\"},\"contracts/Governance/TimelockV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\n\\n/**\\n * @title TimelockV8\\n * @author Venus\\n * @notice The Timelock contract using solidity V8.\\n * This contract also differs from the original timelock because it has a virtual function to get minimum delays\\n * and allow test deployments to override the value.\\n */\\ncontract TimelockV8 {\\n    /// @notice Required period to execute a proposal transaction\\n    uint256 private constant DEFAULT_GRACE_PERIOD = 14 days;\\n\\n    /// @notice Minimum amount of time a proposal transaction must be queued\\n    uint256 private constant DEFAULT_MINIMUM_DELAY = 1 hours;\\n\\n    /// @notice Maximum amount of time a proposal transaction must be queued\\n    uint256 private constant DEFAULT_MAXIMUM_DELAY = 30 days;\\n\\n    /// @notice Timelock admin authorized to queue and execute transactions\\n    address public admin;\\n\\n    /// @notice Account proposed as the next admin\\n    address public pendingAdmin;\\n\\n    /// @notice Period for a proposal transaction to be queued\\n    uint256 public delay;\\n\\n    /// @notice Mapping of queued transactions\\n    mapping(bytes32 => bool) public queuedTransactions;\\n\\n    /// @notice Event emitted when a new admin is accepted\\n    event NewAdmin(address indexed oldAdmin, address indexed newAdmin);\\n\\n    /// @notice Event emitted when a new admin is proposed\\n    event NewPendingAdmin(address indexed newPendingAdmin);\\n\\n    /// @notice Event emitted when a new delay is proposed\\n    event NewDelay(uint256 indexed oldDelay, uint256 indexed newDelay);\\n\\n    /// @notice Event emitted when a proposal transaction has been cancelled\\n    event CancelTransaction(\\n        bytes32 indexed txHash,\\n        address indexed target,\\n        uint256 value,\\n        string signature,\\n        bytes data,\\n        uint256 eta\\n    );\\n\\n    /// @notice Event emitted when a proposal transaction has been executed\\n    event ExecuteTransaction(\\n        bytes32 indexed txHash,\\n        address indexed target,\\n        uint256 value,\\n        string signature,\\n        bytes data,\\n        uint256 eta\\n    );\\n\\n    /// @notice Event emitted when a proposal transaction has been queued\\n    event QueueTransaction(\\n        bytes32 indexed txHash,\\n        address indexed target,\\n        uint256 value,\\n        string signature,\\n        bytes data,\\n        uint256 eta\\n    );\\n\\n    constructor(address admin_, uint256 delay_) {\\n        require(delay_ >= MINIMUM_DELAY(), \\\"Timelock::constructor: Delay must exceed minimum delay.\\\");\\n        require(delay_ <= MAXIMUM_DELAY(), \\\"Timelock::setDelay: Delay must not exceed maximum delay.\\\");\\n        ensureNonzeroAddress(admin_);\\n\\n        admin = admin_;\\n        delay = delay_;\\n    }\\n\\n    fallback() external payable {}\\n\\n    /**\\n     * @notice Setter for the transaction queue delay\\n     * @param delay_ The new delay period for the transaction queue\\n     * @custom:access Sender must be Timelock itself\\n     * @custom:event Emit NewDelay with old and new delay\\n     */\\n    function setDelay(uint256 delay_) public {\\n        require(msg.sender == address(this), \\\"Timelock::setDelay: Call must come from Timelock.\\\");\\n        require(delay_ >= MINIMUM_DELAY(), \\\"Timelock::setDelay: Delay must exceed minimum delay.\\\");\\n        require(delay_ <= MAXIMUM_DELAY(), \\\"Timelock::setDelay: Delay must not exceed maximum delay.\\\");\\n        emit NewDelay(delay, delay_);\\n        delay = delay_;\\n    }\\n\\n    /**\\n     * @notice Return grace period\\n     * @return The duration of the grace period, specified as a uint256 value.\\n     */\\n    function GRACE_PERIOD() public view virtual returns (uint256) {\\n        return DEFAULT_GRACE_PERIOD;\\n    }\\n\\n    /**\\n     * @notice Return required minimum delay\\n     * @return Minimum delay\\n     */\\n    function MINIMUM_DELAY() public view virtual returns (uint256) {\\n        return DEFAULT_MINIMUM_DELAY;\\n    }\\n\\n    /**\\n     * @notice Return required maximum delay\\n     * @return Maximum delay\\n     */\\n    function MAXIMUM_DELAY() public view virtual returns (uint256) {\\n        return DEFAULT_MAXIMUM_DELAY;\\n    }\\n\\n    /**\\n     * @notice Method for accepting a proposed admin\\n     * @custom:access Sender must be pending admin\\n     * @custom:event Emit NewAdmin with old and new admin\\n     */\\n    function acceptAdmin() public {\\n        require(msg.sender == pendingAdmin, \\\"Timelock::acceptAdmin: Call must come from pendingAdmin.\\\");\\n        emit NewAdmin(admin, msg.sender);\\n        admin = msg.sender;\\n        pendingAdmin = address(0);\\n    }\\n\\n    /**\\n     * @notice Method to propose a new admin authorized to call timelock functions. This should be the Governor Contract\\n     * @param pendingAdmin_ Address of the proposed admin\\n     * @custom:access Sender must be Timelock contract itself or admin\\n     * @custom:event Emit NewPendingAdmin with new pending admin\\n     */\\n    function setPendingAdmin(address pendingAdmin_) public {\\n        require(\\n            msg.sender == address(this) || msg.sender == admin,\\n            \\\"Timelock::setPendingAdmin: Call must come from Timelock.\\\"\\n        );\\n        ensureNonzeroAddress(pendingAdmin_);\\n        pendingAdmin = pendingAdmin_;\\n\\n        emit NewPendingAdmin(pendingAdmin);\\n    }\\n\\n    /**\\n     * @notice Called for each action when queuing a proposal\\n     * @param target Address of the contract with the method to be called\\n     * @param value Native token amount sent with the transaction\\n     * @param signature Signature of the function to be called\\n     * @param data Arguments to be passed to the function when called\\n     * @param eta Timestamp after which the transaction can be executed\\n     * @return Hash of the queued transaction\\n     * @custom:access Sender must be admin\\n     * @custom:event Emit QueueTransaction\\n     */\\n    function queueTransaction(\\n        address target,\\n        uint256 value,\\n        string calldata signature,\\n        bytes calldata data,\\n        uint256 eta\\n    ) public returns (bytes32) {\\n        require(msg.sender == admin, \\\"Timelock::queueTransaction: Call must come from admin.\\\");\\n        require(\\n            eta >= getBlockTimestamp() + delay,\\n            \\\"Timelock::queueTransaction: Estimated execution block must satisfy delay.\\\"\\n        );\\n\\n        bytes32 txHash = keccak256(abi.encode(target, value, signature, data, eta));\\n        require(!queuedTransactions[txHash], \\\"Timelock::queueTransaction: transaction already queued.\\\");\\n        queuedTransactions[txHash] = true;\\n\\n        emit QueueTransaction(txHash, target, value, signature, data, eta);\\n        return txHash;\\n    }\\n\\n    /**\\n     * @notice Called to cancel a queued transaction\\n     * @param target Address of the contract with the method to be called\\n     * @param value Native token amount sent with the transaction\\n     * @param signature Signature of the function to be called\\n     * @param data Arguments to be passed to the function when called\\n     * @param eta Timestamp after which the transaction can be executed\\n     * @custom:access Sender must be admin\\n     * @custom:event Emit CancelTransaction\\n     */\\n    function cancelTransaction(\\n        address target,\\n        uint256 value,\\n        string calldata signature,\\n        bytes calldata data,\\n        uint256 eta\\n    ) public {\\n        require(msg.sender == admin, \\\"Timelock::cancelTransaction: Call must come from admin.\\\");\\n\\n        bytes32 txHash = keccak256(abi.encode(target, value, signature, data, eta));\\n        require(queuedTransactions[txHash], \\\"Timelock::cancelTransaction: transaction is not queued yet.\\\");\\n        delete (queuedTransactions[txHash]);\\n\\n        emit CancelTransaction(txHash, target, value, signature, data, eta);\\n    }\\n\\n    /**\\n     * @notice Called to execute a queued transaction\\n     * @param target Address of the contract with the method to be called\\n     * @param value Native token amount sent with the transaction\\n     * @param signature Signature of the function to be called\\n     * @param data Arguments to be passed to the function when called\\n     * @param eta Timestamp after which the transaction can be executed\\n     * @return Result of function call\\n     * @custom:access Sender must be admin\\n     * @custom:event Emit ExecuteTransaction\\n     */\\n    function executeTransaction(\\n        address target,\\n        uint256 value,\\n        string calldata signature,\\n        bytes calldata data,\\n        uint256 eta\\n    ) public returns (bytes memory) {\\n        require(msg.sender == admin, \\\"Timelock::executeTransaction: Call must come from admin.\\\");\\n\\n        bytes32 txHash = keccak256(abi.encode(target, value, signature, data, eta));\\n        require(queuedTransactions[txHash], \\\"Timelock::executeTransaction: Transaction hasn't been queued.\\\");\\n        require(getBlockTimestamp() >= eta, \\\"Timelock::executeTransaction: Transaction hasn't surpassed time lock.\\\");\\n        require(getBlockTimestamp() <= eta + GRACE_PERIOD(), \\\"Timelock::executeTransaction: Transaction is stale.\\\");\\n\\n        delete (queuedTransactions[txHash]);\\n\\n        bytes memory callData;\\n\\n        if (bytes(signature).length == 0) {\\n            callData = data;\\n        } else {\\n            callData = abi.encodePacked(bytes4(keccak256(bytes(signature))), data);\\n        }\\n\\n        // solium-disable-next-line security/no-call-value\\n        (bool success, bytes memory returnData) = target.call{ value: value }(callData);\\n        require(success, \\\"Timelock::executeTransaction: Transaction execution reverted.\\\");\\n\\n        emit ExecuteTransaction(txHash, target, value, signature, data, eta);\\n\\n        return returnData;\\n    }\\n\\n    /**\\n     * @notice Returns the current block timestamp\\n     * @return The current block timestamp\\n     */\\n    function getBlockTimestamp() internal view returns (uint256) {\\n        // solium-disable-next-line security/no-block-members\\n        return block.timestamp;\\n    }\\n}\\n\",\"keccak256\":\"0x14dc68819f1d7e496cf07d688818fdc6f2dcb15e4fcc9e622732325d1727d613\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":13923,"contract":"contracts/Governance/TimelockV8.sol:TimelockV8","label":"admin","offset":0,"slot":"0","type":"t_address"},{"astId":13926,"contract":"contracts/Governance/TimelockV8.sol:TimelockV8","label":"pendingAdmin","offset":0,"slot":"1","type":"t_address"},{"astId":13929,"contract":"contracts/Governance/TimelockV8.sol:TimelockV8","label":"delay","offset":0,"slot":"2","type":"t_uint256"},{"astId":13934,"contract":"contracts/Governance/TimelockV8.sol:TimelockV8","label":"queuedTransactions","offset":0,"slot":"3","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_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"errors":{"ZeroAddressNotAllowed()":[{"notice":"Thrown if the supplied address is a zero address where it is not allowed"}]},"events":{"CancelTransaction(bytes32,address,uint256,string,bytes,uint256)":{"notice":"Event emitted when a proposal transaction has been cancelled"},"ExecuteTransaction(bytes32,address,uint256,string,bytes,uint256)":{"notice":"Event emitted when a proposal transaction has been executed"},"NewAdmin(address,address)":{"notice":"Event emitted when a new admin is accepted"},"NewDelay(uint256,uint256)":{"notice":"Event emitted when a new delay is proposed"},"NewPendingAdmin(address)":{"notice":"Event emitted when a new admin is proposed"},"QueueTransaction(bytes32,address,uint256,string,bytes,uint256)":{"notice":"Event emitted when a proposal transaction has been queued"}},"kind":"user","methods":{"GRACE_PERIOD()":{"notice":"Return grace period"},"MAXIMUM_DELAY()":{"notice":"Return required maximum delay"},"MINIMUM_DELAY()":{"notice":"Return required minimum delay"},"acceptAdmin()":{"notice":"Method for accepting a proposed admin"},"admin()":{"notice":"Timelock admin authorized to queue and execute transactions"},"cancelTransaction(address,uint256,string,bytes,uint256)":{"notice":"Called to cancel a queued transaction"},"delay()":{"notice":"Period for a proposal transaction to be queued"},"executeTransaction(address,uint256,string,bytes,uint256)":{"notice":"Called to execute a queued transaction"},"pendingAdmin()":{"notice":"Account proposed as the next admin"},"queueTransaction(address,uint256,string,bytes,uint256)":{"notice":"Called for each action when queuing a proposal"},"queuedTransactions(bytes32)":{"notice":"Mapping of queued transactions"},"setDelay(uint256)":{"notice":"Setter for the transaction queue delay"},"setPendingAdmin(address)":{"notice":"Method to propose a new admin authorized to call timelock functions. This should be the Governor Contract"}},"notice":"The Timelock contract using solidity V8. This contract also differs from the original timelock because it has a virtual function to get minimum delays and allow test deployments to override the value.","version":1}}},"contracts/RiskSteward/BaseRiskSteward.sol":{"BaseRiskSteward":{"abi":[{"inputs":[],"name":"RenounceOwnershipNotAllowed","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"calledContract","type":"address"},{"internalType":"string","name":"methodSignature","type":"string"}],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldAccessControlManager","type":"address"},{"indexed":false,"internalType":"address","name":"newAccessControlManager","type":"address"}],"name":"NewAccessControlManager","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"RISK_STEWARD_RECEIVER","outputs":[{"internalType":"contract IRiskStewardReceiver","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"accessControlManager","outputs":[{"internalType":"contract IAccessControlManagerV8","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"referenceId","type":"string"},{"internalType":"uint256","name":"updateId","type":"uint256"},{"internalType":"address","name":"market","type":"address"},{"internalType":"string","name":"updateType","type":"string"},{"internalType":"bytes32","name":"updateTypeKey","type":"bytes32"},{"internalType":"bytes","name":"newValue","type":"bytes"},{"internalType":"bytes","name":"previousValue","type":"bytes"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"address","name":"publisher","type":"address"},{"internalType":"uint96","name":"poolId","type":"uint96"},{"internalType":"uint32","name":"destLzEid","type":"uint32"},{"internalType":"bytes","name":"additionalData","type":"bytes"}],"internalType":"struct RiskParameterUpdate","name":"update","type":"tuple"}],"name":"applyUpdate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"referenceId","type":"string"},{"internalType":"uint256","name":"updateId","type":"uint256"},{"internalType":"address","name":"market","type":"address"},{"internalType":"string","name":"updateType","type":"string"},{"internalType":"bytes32","name":"updateTypeKey","type":"bytes32"},{"internalType":"bytes","name":"newValue","type":"bytes"},{"internalType":"bytes","name":"previousValue","type":"bytes"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"address","name":"publisher","type":"address"},{"internalType":"uint96","name":"poolId","type":"uint96"},{"internalType":"uint32","name":"destLzEid","type":"uint32"},{"internalType":"bytes","name":"additionalData","type":"bytes"}],"internalType":"struct RiskParameterUpdate","name":"update","type":"tuple"}],"name":"isSafeForDirectExecution","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"safeDeltaBps","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"accessControlManager_","type":"address"}],"name":"setAccessControlManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Venus","custom:security-contact":"https://github.com/VenusProtocol/governance-contracts#discussion","events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."}},"kind":"dev","methods":{"RISK_STEWARD_RECEIVER()":{"returns":{"_0":"The risk steward receiver contract"}},"acceptOwnership()":{"details":"The new owner accepts the ownership transfer."},"applyUpdate((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))":{"params":{"update":"The risk parameter update to apply"}},"isSafeForDirectExecution((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))":{"params":{"update":"The risk parameter update to evaluate"},"returns":{"_0":"True if update is safe for direct execution, false if timelock is required"}},"owner()":{"details":"Returns the address of the current owner."},"pendingOwner()":{"details":"Returns the address of the pending owner."},"renounceOwnership()":{"custom:error":"Throws RenounceOwnershipNotAllowed"},"setAccessControlManager(address)":{"custom:access":"Only Governance","custom:event":"Emits NewAccessControlManager event","details":"Admin function to set address of AccessControlManager","params":{"accessControlManager_":"The new address of the AccessControlManager"}},"transferOwnership(address)":{"details":"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner."}},"stateVariables":{"MAX_BPS":{"details":"Max basis points i.e., 100%"},"safeDeltaBps":{"details":"This is only used by contracts that implement safe delta checks (e.g., MarketCapsRiskSteward, CollateralFactorsRiskSteward)"}},"title":"BaseRiskSteward","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"RISK_STEWARD_RECEIVER()":"b296e6cb","acceptOwnership()":"79ba5097","accessControlManager()":"b4a0bdf3","applyUpdate((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))":"bf637839","isSafeForDirectExecution((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))":"42b7cfbd","owner()":"8da5cb5b","pendingOwner()":"e30c3978","renounceOwnership()":"715018a6","safeDeltaBps()":"ee97f265","setAccessControlManager(address)":"0e32cb86","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"RenounceOwnershipNotAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"calledContract\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"methodSignature\",\"type\":\"string\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldAccessControlManager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAccessControlManager\",\"type\":\"address\"}],\"name\":\"NewAccessControlManager\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"RISK_STEWARD_RECEIVER\",\"outputs\":[{\"internalType\":\"contract IRiskStewardReceiver\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"accessControlManager\",\"outputs\":[{\"internalType\":\"contract IAccessControlManagerV8\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"referenceId\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"updateTypeKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"newValue\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"previousValue\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"poolId\",\"type\":\"uint96\"},{\"internalType\":\"uint32\",\"name\":\"destLzEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"additionalData\",\"type\":\"bytes\"}],\"internalType\":\"struct RiskParameterUpdate\",\"name\":\"update\",\"type\":\"tuple\"}],\"name\":\"applyUpdate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"referenceId\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"updateTypeKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"newValue\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"previousValue\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"poolId\",\"type\":\"uint96\"},{\"internalType\":\"uint32\",\"name\":\"destLzEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"additionalData\",\"type\":\"bytes\"}],\"internalType\":\"struct RiskParameterUpdate\",\"name\":\"update\",\"type\":\"tuple\"}],\"name\":\"isSafeForDirectExecution\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"safeDeltaBps\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessControlManager_\",\"type\":\"address\"}],\"name\":\"setAccessControlManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"custom:security-contact\":\"https://github.com/VenusProtocol/governance-contracts#discussion\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"RISK_STEWARD_RECEIVER()\":{\"returns\":{\"_0\":\"The risk steward receiver contract\"}},\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"applyUpdate((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))\":{\"params\":{\"update\":\"The risk parameter update to apply\"}},\"isSafeForDirectExecution((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))\":{\"params\":{\"update\":\"The risk parameter update to evaluate\"},\"returns\":{\"_0\":\"True if update is safe for direct execution, false if timelock is required\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"renounceOwnership()\":{\"custom:error\":\"Throws RenounceOwnershipNotAllowed\"},\"setAccessControlManager(address)\":{\"custom:access\":\"Only Governance\",\"custom:event\":\"Emits NewAccessControlManager event\",\"details\":\"Admin function to set address of AccessControlManager\",\"params\":{\"accessControlManager_\":\"The new address of the AccessControlManager\"}},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.\"}},\"stateVariables\":{\"MAX_BPS\":{\"details\":\"Max basis points i.e., 100%\"},\"safeDeltaBps\":{\"details\":\"This is only used by contracts that implement safe delta checks (e.g., MarketCapsRiskSteward, CollateralFactorsRiskSteward)\"}},\"title\":\"BaseRiskSteward\",\"version\":1},\"userdoc\":{\"errors\":{\"RenounceOwnershipNotAllowed()\":[{\"notice\":\"Thrown when trying to renounce ownership\"}],\"Unauthorized(address,address,string)\":[{\"notice\":\"Thrown when the action is prohibited by AccessControlManager\"}]},\"events\":{\"NewAccessControlManager(address,address)\":{\"notice\":\"Emitted when access control manager contract address is changed\"}},\"kind\":\"user\",\"methods\":{\"RISK_STEWARD_RECEIVER()\":{\"notice\":\"Returns the `IRiskStewardReceiver` associated with this steward.\"},\"accessControlManager()\":{\"notice\":\"Returns the address of the access control manager contract\"},\"applyUpdate((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))\":{\"notice\":\"Applies a validated risk parameter update.\"},\"isSafeForDirectExecution((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))\":{\"notice\":\"Checks whether an update is safe for direct execution (no timelock required).\"},\"renounceOwnership()\":{\"notice\":\"Disables renounceOwnership function\"},\"safeDeltaBps()\":{\"notice\":\"The safe delta threshold in basis points.Updates within this delta are considered safe and require no timelock. Updates exceeding this delta require timelock.\"},\"setAccessControlManager(address)\":{\"notice\":\"Sets the address of AccessControlManager\"}},\"notice\":\"Abstract base contract for Risk Steward contracts providing common functionality\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/RiskSteward/BaseRiskSteward.sol\":\"BaseRiskSteward\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (access/Ownable2Step.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./OwnableUpgradeable.sol\\\";\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership} and {acceptOwnership}.\\n *\\n * This module is used through inheritance. It will make available all functions\\n * from parent (Ownable).\\n */\\nabstract contract Ownable2StepUpgradeable is Initializable, OwnableUpgradeable {\\n    function __Ownable2Step_init() internal onlyInitializing {\\n        __Ownable_init_unchained();\\n    }\\n\\n    function __Ownable2Step_init_unchained() internal onlyInitializing {\\n    }\\n    address private _pendingOwner;\\n\\n    event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Returns the address of the pending owner.\\n     */\\n    function pendingOwner() public view virtual returns (address) {\\n        return _pendingOwner;\\n    }\\n\\n    /**\\n     * @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual override onlyOwner {\\n        _pendingOwner = newOwner;\\n        emit OwnershipTransferStarted(owner(), newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual override {\\n        delete _pendingOwner;\\n        super._transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev The new owner accepts the ownership transfer.\\n     */\\n    function acceptOwnership() external {\\n        address sender = _msgSender();\\n        require(pendingOwner() == sender, \\\"Ownable2Step: caller is not the new owner\\\");\\n        _transferOwnership(sender);\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0xd712fb45b3ea0ab49679164e3895037adc26ce12879d5184feb040e01c1c07a9\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/ContextUpgradeable.sol\\\";\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract OwnableUpgradeable is Initializable, ContextUpgradeable {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    function __Ownable_init() internal onlyInitializing {\\n        __Ownable_init_unchained();\\n    }\\n\\n    function __Ownable_init_unchained() internal onlyInitializing {\\n        _transferOwnership(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        _checkOwner();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if the sender is not the owner.\\n     */\\n    function _checkOwner() internal view virtual {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions anymore. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby removing any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.1) (proxy/utils/Initializable.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../../utils/AddressUpgradeable.sol\\\";\\n\\n/**\\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\\n *\\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\\n * reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in\\n * case an upgrade adds a module that needs to be initialized.\\n *\\n * For example:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * contract MyToken is ERC20Upgradeable {\\n *     function initialize() initializer public {\\n *         __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\");\\n *     }\\n * }\\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\\n *     function initializeV2() reinitializer(2) public {\\n *         __ERC20Permit_init(\\\"MyToken\\\");\\n *     }\\n * }\\n * ```\\n *\\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\\n *\\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\\n *\\n * [CAUTION]\\n * ====\\n * Avoid leaving a contract uninitialized.\\n *\\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * /// @custom:oz-upgrades-unsafe-allow constructor\\n * constructor() {\\n *     _disableInitializers();\\n * }\\n * ```\\n * ====\\n */\\nabstract contract Initializable {\\n    /**\\n     * @dev Indicates that the contract has been initialized.\\n     * @custom:oz-retyped-from bool\\n     */\\n    uint8 private _initialized;\\n\\n    /**\\n     * @dev Indicates that the contract is in the process of being initialized.\\n     */\\n    bool private _initializing;\\n\\n    /**\\n     * @dev Triggered when the contract has been initialized or reinitialized.\\n     */\\n    event Initialized(uint8 version);\\n\\n    /**\\n     * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\\n     * `onlyInitializing` functions can be used to initialize parent contracts.\\n     *\\n     * Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\\n     * constructor.\\n     *\\n     * Emits an {Initialized} event.\\n     */\\n    modifier initializer() {\\n        bool isTopLevelCall = !_initializing;\\n        require(\\n            (isTopLevelCall && _initialized < 1) || (!AddressUpgradeable.isContract(address(this)) && _initialized == 1),\\n            \\\"Initializable: contract is already initialized\\\"\\n        );\\n        _initialized = 1;\\n        if (isTopLevelCall) {\\n            _initializing = true;\\n        }\\n        _;\\n        if (isTopLevelCall) {\\n            _initializing = false;\\n            emit Initialized(1);\\n        }\\n    }\\n\\n    /**\\n     * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\\n     * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\\n     * used to initialize parent contracts.\\n     *\\n     * A reinitializer may be used after the original initialization step. This is essential to configure modules that\\n     * are added through upgrades and that require initialization.\\n     *\\n     * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\\n     * cannot be nested. If one is invoked in the context of another, execution will revert.\\n     *\\n     * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\\n     * a contract, executing them in the right order is up to the developer or operator.\\n     *\\n     * WARNING: setting the version to 255 will prevent any future reinitialization.\\n     *\\n     * Emits an {Initialized} event.\\n     */\\n    modifier reinitializer(uint8 version) {\\n        require(!_initializing && _initialized < version, \\\"Initializable: contract is already initialized\\\");\\n        _initialized = version;\\n        _initializing = true;\\n        _;\\n        _initializing = false;\\n        emit Initialized(version);\\n    }\\n\\n    /**\\n     * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\\n     * {initializer} and {reinitializer} modifiers, directly or indirectly.\\n     */\\n    modifier onlyInitializing() {\\n        require(_initializing, \\\"Initializable: contract is not initializing\\\");\\n        _;\\n    }\\n\\n    /**\\n     * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\\n     * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\\n     * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\\n     * through proxies.\\n     *\\n     * Emits an {Initialized} event the first time it is successfully executed.\\n     */\\n    function _disableInitializers() internal virtual {\\n        require(!_initializing, \\\"Initializable: contract is initializing\\\");\\n        if (_initialized < type(uint8).max) {\\n            _initialized = type(uint8).max;\\n            emit Initialized(type(uint8).max);\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns the highest version that has been initialized. See {reinitializer}.\\n     */\\n    function _getInitializedVersion() internal view returns (uint8) {\\n        return _initialized;\\n    }\\n\\n    /**\\n     * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.\\n     */\\n    function _isInitializing() internal view returns (bool) {\\n        return _initializing;\\n    }\\n}\\n\",\"keccak256\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary AddressUpgradeable {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\n     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\n     *\\n     * _Available since v4.8._\\n     */\\n    function verifyCallResultFromTarget(\\n        address target,\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        if (success) {\\n            if (returndata.length == 0) {\\n                // only check isContract if the call was successful and the return data is empty\\n                // otherwise we already know that it was a contract\\n                require(isContract(target), \\\"Address: call to non-contract\\\");\\n            }\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason or using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    function _revert(bytes memory returndata, string memory errorMessage) private pure {\\n        // Look for revert reason and bubble it up if present\\n        if (returndata.length > 0) {\\n            // The easiest way to bubble the revert reason is using memory via assembly\\n            /// @solidity memory-safe-assembly\\n            assembly {\\n                let returndata_size := mload(returndata)\\n                revert(add(32, returndata), returndata_size)\\n            }\\n        } else {\\n            revert(errorMessage);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract ContextUpgradeable is Initializable {\\n    function __Context_init() internal onlyInitializing {\\n    }\\n\\n    function __Context_init_unchained() internal onlyInitializing {\\n    }\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[50] private __gap;\\n}\\n\",\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"contracts/Governance/AccessControlledV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\\\";\\nimport \\\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\\\";\\n\\nimport \\\"./IAccessControlManagerV8.sol\\\";\\n\\n/**\\n * @title AccessControlledV8\\n * @author Venus\\n * @notice This contract is helper between access control manager and actual contract. This contract further inherited by other contract (using solidity 0.8.13)\\n * to integrate access controlled mechanism. It provides initialise methods and verifying access methods.\\n */\\nabstract contract AccessControlledV8 is Initializable, Ownable2StepUpgradeable {\\n    /// @notice Access control manager contract\\n    IAccessControlManagerV8 internal _accessControlManager;\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n\\n    /// @notice Emitted when access control manager contract address is changed\\n    event NewAccessControlManager(address oldAccessControlManager, address newAccessControlManager);\\n\\n    /// @notice Thrown when the action is prohibited by AccessControlManager\\n    error Unauthorized(address sender, address calledContract, string methodSignature);\\n\\n    function __AccessControlled_init(address accessControlManager_) internal onlyInitializing {\\n        __Ownable2Step_init();\\n        __AccessControlled_init_unchained(accessControlManager_);\\n    }\\n\\n    function __AccessControlled_init_unchained(address accessControlManager_) internal onlyInitializing {\\n        _setAccessControlManager(accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Sets the address of AccessControlManager\\n     * @dev Admin function to set address of AccessControlManager\\n     * @param accessControlManager_ The new address of the AccessControlManager\\n     * @custom:event Emits NewAccessControlManager event\\n     * @custom:access Only Governance\\n     */\\n    function setAccessControlManager(address accessControlManager_) external onlyOwner {\\n        _setAccessControlManager(accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Returns the address of the access control manager contract\\n     */\\n    function accessControlManager() external view returns (IAccessControlManagerV8) {\\n        return _accessControlManager;\\n    }\\n\\n    /**\\n     * @dev Internal function to set address of AccessControlManager\\n     * @param accessControlManager_ The new address of the AccessControlManager\\n     */\\n    function _setAccessControlManager(address accessControlManager_) internal {\\n        require(address(accessControlManager_) != address(0), \\\"invalid acess control manager address\\\");\\n        address oldAccessControlManager = address(_accessControlManager);\\n        _accessControlManager = IAccessControlManagerV8(accessControlManager_);\\n        emit NewAccessControlManager(oldAccessControlManager, accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Reverts if the call is not allowed by AccessControlManager\\n     * @param signature Method signature\\n     */\\n    function _checkAccessAllowed(string memory signature) internal view {\\n        bool isAllowedToCall = _accessControlManager.isAllowedToCall(msg.sender, signature);\\n\\n        if (!isAllowedToCall) {\\n            revert Unauthorized(msg.sender, address(this), signature);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xe7f5f96c70fb32912ecc0032f81f7876607353413fe7f723d41d260ac9c26a06\",\"license\":\"BSD-3-Clause\"},\"contracts/Governance/IAccessControlManagerV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/access/IAccessControl.sol\\\";\\n\\n/**\\n * @title IAccessControlManagerV8\\n * @author Venus\\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\\n */\\ninterface IAccessControlManagerV8 is IAccessControl {\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\\n\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) external;\\n\\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\\n\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xaa29b098440d0b3a131c5ecdf25ce548790c1b5ac7bf9b5c0264b6af6f7a1e0b\",\"license\":\"BSD-3-Clause\"},\"contracts/RiskSteward/BaseRiskSteward.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { AccessControlledV8 } from \\\"../Governance/AccessControlledV8.sol\\\";\\nimport { IRiskSteward } from \\\"./Interfaces/IRiskSteward.sol\\\";\\n\\n/**\\n * @title BaseRiskSteward\\n * @author Venus\\n * @notice Abstract base contract for Risk Steward contracts providing common functionality\\n * @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion\\n */\\nabstract contract BaseRiskSteward is IRiskSteward, AccessControlledV8 {\\n    /// @dev Max basis points i.e., 100%\\n    uint256 internal constant MAX_BPS = 10000;\\n\\n    /**\\n     * @notice The safe delta threshold in basis points.\\n     * @notice Updates within this delta are considered safe and require no timelock. Updates exceeding this delta require timelock.\\n     * @dev This is only used by contracts that implement safe delta checks (e.g., MarketCapsRiskSteward, CollateralFactorsRiskSteward)\\n     */\\n    uint256 public safeDeltaBps;\\n\\n    /**\\n     * @notice Thrown when trying to renounce ownership\\n     */\\n    error RenounceOwnershipNotAllowed();\\n\\n    /**\\n     * @notice Disables renounceOwnership function\\n     * @custom:error Throws RenounceOwnershipNotAllowed\\n     */\\n    function renounceOwnership() public pure override {\\n        revert RenounceOwnershipNotAllowed();\\n    }\\n\\n    /**\\n     * @notice Checks if the difference between new and current values is within the safe delta threshold.\\n     * @param newValue The new value to check\\n     * @param currentValue The current value to compare against\\n     * @return True if the difference is within the safe delta, false otherwise\\n     */\\n    function _isWithinSafeDelta(uint256 newValue, uint256 currentValue) internal view returns (bool) {\\n        uint256 diff = newValue > currentValue ? newValue - currentValue : currentValue - newValue;\\n        uint256 maxDiff = (safeDeltaBps * currentValue) / MAX_BPS;\\n        return diff <= maxDiff;\\n    }\\n}\\n\",\"keccak256\":\"0xc479bcfa55626860065c2ac8707b40e3c48d419bd8b23dbb35d1fab79584fcf2\",\"license\":\"BSD-3-Clause\"},\"contracts/RiskSteward/Interfaces/IRiskOracle.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity 0.8.25;\\n\\n/**\\n * @notice Struct representing a risk parameter update published by the Risk Oracle\\n * @param referenceId External reference ID, potentially linking to a document or off-chain data\\n * @param updateId Unique identifier for this specific update\\n * @param market Address of the market for which the parameter update applies\\n * @param updateType Classification of the update type for validation purposes (human-readable)\\n * @param updateTypeKey Keccak256 hash of updateType for efficient comparisons\\n * @param newValue Encoded new value of the risk parameter, flexible for various data types\\n * @param previousValue Previous value of the parameter for historical comparison\\n * @param timestamp Block timestamp when the update was published\\n * @param publisher Address of the account that published this update\\n * @param poolId Pool identifier for eMode-style collateral configuration (0 for regular markets)\\n * @param destLzEid LayerZero endpoint ID of the destination chain (0 for local execution)\\n * @param additionalData Additional metadata or data associated with the update\\n */\\nstruct RiskParameterUpdate {\\n    string referenceId;\\n    uint256 updateId;\\n    address market;\\n    string updateType;\\n    bytes32 updateTypeKey;\\n    bytes newValue;\\n    bytes previousValue;\\n    uint256 timestamp;\\n    address publisher;\\n    uint96 poolId;\\n    uint32 destLzEid;\\n    bytes additionalData;\\n}\\n\\n/**\\n * @title IRiskOracle\\n * @author Venus\\n * @notice Interface for Risk Oracle contract that manages and publishes risk parameter updates\\n */\\ninterface IRiskOracle {\\n    /// @notice Event emitted when a risk parameter update is published\\n    event UpdatePublished(\\n        string referenceId,\\n        uint256 indexed updateId,\\n        address indexed market,\\n        string indexed updateType,\\n        bytes newValue,\\n        bytes previousValue,\\n        uint256 timestamp,\\n        address publisher,\\n        bytes additionalData\\n    );\\n\\n    /// @notice Event emitted when a new authorized sender is added\\n    event AuthorizedSenderAdded(address indexed sender);\\n\\n    /// @notice Event emitted when an authorized sender is removed\\n    event AuthorizedSenderRemoved(address indexed sender);\\n\\n    /// @notice Event emitted when a new update type is added\\n    event UpdateTypeAdded(string indexed updateType);\\n\\n    /// @notice Event emitted when an update type's active status is changed\\n    event UpdateTypeActiveStatusChanged(string indexed updateType, bool previousActive, bool active);\\n\\n    /// @notice Thrown when sender is not authorized\\n    error SenderNotAuthorized();\\n\\n    /// @notice Thrown when sender is already authorized\\n    error SenderAlreadyAuthorized();\\n\\n    /// @notice Thrown when update type string is invalid\\n    error InvalidUpdateTypeString();\\n\\n    /// @notice Thrown when update type already exists\\n    error UpdateTypeAlreadyExists();\\n\\n    /// @notice Thrown when update type doesn't exist\\n    error UpdateTypeNotFound();\\n\\n    /// @notice Thrown when update type active status is already set to the desired value\\n    error UpdateTypeStatusUnchanged();\\n\\n    /// @notice Thrown when update type is not active\\n    error UpdateTypeNotActive();\\n\\n    /// @notice Thrown when no update is found\\n    error NoUpdateFound();\\n\\n    /// @notice Thrown when update ID is invalid\\n    error InvalidUpdateId();\\n\\n    /// @notice Thrown when array lengths don't match in bulk operations\\n    error ArrayLengthMismatch();\\n\\n    /// @notice Thrown when trying to renounce ownership\\n    error RenounceOwnershipNotAllowed();\\n\\n    /**\\n     * @notice Returns the update type string at the given index in the allUpdateTypes array\\n     * @param index The index in the allUpdateTypes array\\n     * @return The update type string at the specified index\\n     */\\n    function allUpdateTypes(uint256 index) external view returns (string memory);\\n\\n    /**\\n     * @notice Returns the total number of update types in the allUpdateTypes array\\n     * @return The length of the allUpdateTypes array\\n     */\\n    function allUpdateTypesLength() external view returns (uint256);\\n\\n    /**\\n     * @notice Returns all update types in the allUpdateTypes array\\n     * @return An array of all update type strings\\n     */\\n    function getAllUpdateTypes() external view returns (string[] memory);\\n\\n    /**\\n     * @notice Checks if a given update type is currently active\\n     * @param updateType The update type string to check\\n     * @return True if the update type is active, false otherwise\\n     */\\n    function getActiveUpdateTypes(string memory updateType) external view returns (bool);\\n\\n    /**\\n     * @notice Checks if a given update type is currently active\\n     * @param updateTypeKey The keccak256 hash of the update type string\\n     * @return True if the update type key is active, false otherwise\\n     */\\n    function activeUpdateTypes(bytes32 updateTypeKey) external view returns (bool);\\n\\n    /**\\n     * @notice Checks if an address is authorized to publish updates\\n     * @param sender The address to check for authorization\\n     * @return True if the address is authorized, false otherwise\\n     */\\n    function authorizedSenders(address sender) external view returns (bool);\\n\\n    /**\\n     * @notice Gets the latest update ID for a specific market and update type combination\\n     * @param updateTypeKey The keccak256 hash of the update type string\\n     * @param market The market address\\n     * @return The latest update ID for the given market and update type key, or 0 if none exists\\n     */\\n    function latestUpdateIdByMarketAndType(bytes32 updateTypeKey, address market) external view returns (uint256);\\n\\n    /**\\n     * @notice Returns the total number of updates that have been published\\n     * @return The current update counter value\\n     */\\n    function updateCounter() external view returns (uint256);\\n\\n    /**\\n     * @notice Fetches the most recent update for a specific parameter type in a specific market\\n     * @param updateType The update type identifier\\n     * @param market The market address\\n     * @return The most recent RiskParameterUpdate for the specified parameter and market\\n     * @custom:error NoUpdateFound Thrown if no update exists for the specified parameter and market\\n     */\\n    function getLatestUpdateByTypeAndMarket(\\n        string memory updateType,\\n        address market\\n    ) external view returns (RiskParameterUpdate memory);\\n\\n    /**\\n     * @notice Gets the latest update ID for a specific market and update type (string) combination\\n     * @param updateType The update type identifier\\n     * @param market The market address\\n     * @return The latest update ID for the given market and update type, or 0 if none exists\\n     */\\n    function getLatestUpdateIdByTypeAndMarket(string memory updateType, address market) external view returns (uint256);\\n\\n    /**\\n     * @notice Fetches the update for a provided update ID\\n     * @param updateId The unique update ID\\n     * @return The RiskParameterUpdate struct for the specified update ID\\n     * @custom:error InvalidUpdateId Thrown if updateId is 0 or greater than updateCounter\\n     */\\n    function getUpdateById(uint256 updateId) external view returns (RiskParameterUpdate memory);\\n\\n    /**\\n     * @notice Adds a new address to the list of authorized senders who can publish updates\\n     * @param sender Address to be authorized\\n     * @custom:error ZeroAddressNotAllowed Thrown if sender is the zero address\\n     * @custom:error SenderAlreadyAuthorized Thrown if sender is already authorized\\n     * @custom:error Unauthorized Thrown if caller is not allowed by AccessControlManager\\n     * @custom:event AuthorizedSenderAdded Emitted when sender is successfully added\\n     */\\n    function addAuthorizedSender(address sender) external;\\n\\n    /**\\n     * @notice Removes an address from the list of authorized senders\\n     * @param sender Address to be removed from authorization\\n     * @custom:error SenderNotAuthorized Thrown if sender is not currently authorized\\n     * @custom:error Unauthorized Thrown if caller is not allowed by AccessControlManager\\n     * @custom:event AuthorizedSenderRemoved Emitted when sender is successfully removed\\n     */\\n    function removeAuthorizedSender(address sender) external;\\n\\n    /**\\n     * @notice Adds a new update type to the list of authorized update types\\n     * @param newUpdateType New update type string to allow (must be non-empty and <= 64 characters)\\n     * @custom:error InvalidUpdateTypeString Thrown if update type string is empty or exceeds 64 characters\\n     * @custom:error UpdateTypeAlreadyExists Thrown if update type already exists\\n     * @custom:error Unauthorized Thrown if caller is not allowed by AccessControlManager\\n     * @custom:event UpdateTypeAdded Emitted when update type is successfully added\\n     */\\n    function addUpdateType(string memory newUpdateType) external;\\n\\n    /**\\n     * @notice Sets the active status of an existing update type\\n     * @param updateType The update type to set active status for\\n     * @param active True to activate the update type, false to deactivate it\\n     * @custom:error UpdateTypeNotFound Thrown if update type doesn't exist\\n     * @custom:error UpdateTypeStatusUnchanged Thrown if status is already set to the desired value\\n     * @custom:error Unauthorized Thrown if caller is not allowed by AccessControlManager\\n     * @custom:event UpdateTypeActiveStatusChanged Emitted when status is successfully changed\\n     */\\n    function setUpdateTypeActive(string memory updateType, bool active) external;\\n\\n    /**\\n     * @notice Publishes a new risk parameter update.\\n     * @param referenceId An external reference ID associated with the update\\n     * @param newValue The new value of the risk parameter being updated (encoded as bytes)\\n     * @param updateType Type of update performed, must be an active update type\\n     * @param market Address of the market for which the parameter update applies\\n     * @param poolId Pool identifier for eMode-style collateral configuration (0 for regular markets)\\n     * @param dstEid Destination endpoint ID for cross-chain routing\\n     * @param additionalData Additional data or metadata for the update\\n     * @custom:error SenderNotAuthorized Thrown if caller is not an authorized sender\\n     * @custom:error UpdateTypeNotActive Thrown if update type is not active\\n     * @custom:error ZeroAddressNotAllowed Thrown if market is the zero address\\n     * @custom:event UpdatePublished Emitted when the update is successfully published\\n     */\\n    function publishRiskParameterUpdate(\\n        string memory referenceId,\\n        bytes memory newValue,\\n        string memory updateType,\\n        address market,\\n        uint96 poolId,\\n        uint32 dstEid,\\n        bytes memory additionalData\\n    ) external;\\n\\n    /**\\n     * @notice Publishes multiple risk parameter updates in a single transaction.\\n     * @param referenceIds Array of external reference IDs, one for each update\\n     * @param newValues Array of new values for each update (encoded as bytes)\\n     * @param updateTypes Array of update types, all must be active update types\\n     * @param markets Array of market addresses for each update\\n     * @param poolIds Array of pool identifiers for eMode-style collateral configuration (0 for regular markets)\\n     * @param dstEid Array of destination endpoint IDs for cross-chain routing\\n     * @param additionalData Array of additional data for each update\\n     * @custom:error SenderNotAuthorized Thrown if caller is not an authorized sender\\n     * @custom:error ArrayLengthMismatch Thrown if all arrays don't have the same length\\n     * @custom:error UpdateTypeNotActive Thrown if any update type is not active\\n     * @custom:error ZeroAddressNotAllowed Thrown if any market is the zero address\\n     * @custom:event UpdatePublished Emitted for each successfully published update\\n     */\\n    function publishBulkRiskParameterUpdates(\\n        string[] memory referenceIds,\\n        bytes[] memory newValues,\\n        string[] memory updateTypes,\\n        address[] memory markets,\\n        uint96[] memory poolIds,\\n        uint32[] memory dstEid,\\n        bytes[] memory additionalData\\n    ) external;\\n}\\n\",\"keccak256\":\"0x8a30b030d5be3cefabf55d889d0a06447613a9ada5a917730b7ec833bda167cd\",\"license\":\"MIT\"},\"contracts/RiskSteward/Interfaces/IRiskSteward.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { RiskParameterUpdate } from \\\"./IRiskOracle.sol\\\";\\nimport { IRiskStewardReceiver } from \\\"./IRiskStewardReceiver.sol\\\";\\n\\n/**\\n * @title IRiskSteward\\n * @author Venus\\n * @notice Interface for risk stewards that validate and apply risk parameter updates\\n */\\ninterface IRiskSteward {\\n    /**\\n     * @notice Returns the `IRiskStewardReceiver` associated with this steward.\\n     * @return The risk steward receiver contract\\n     */\\n    function RISK_STEWARD_RECEIVER() external view returns (IRiskStewardReceiver);\\n\\n    /**\\n     * @notice Checks whether an update is safe for direct execution (no timelock required).\\n     * @param update The risk parameter update to evaluate\\n     * @return True if update is safe for direct execution, false if timelock is required\\n     */\\n    function isSafeForDirectExecution(RiskParameterUpdate calldata update) external view returns (bool);\\n\\n    /**\\n     * @notice Applies a validated risk parameter update.\\n     * @param update The risk parameter update to apply\\n     */\\n    function applyUpdate(RiskParameterUpdate calldata update) external;\\n}\\n\",\"keccak256\":\"0x6438497d6fd62f5e8c224a01e626a92ae2ebbe736852749862ff2f040a25b069\",\"license\":\"BSD-3-Clause\"},\"contracts/RiskSteward/Interfaces/IRiskStewardReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface IRiskStewardReceiver {\\n    /**\\n     * @notice Status of an update\\n     */\\n    enum UpdateStatus {\\n        None,\\n        Pending,\\n        Executed,\\n        Rejected,\\n        Expired,\\n        SENT_TO_DESTINATION\\n    }\\n\\n    /**\\n     * @notice Configuration for a risk parameter update type\\n     * @param active Whether this update type configuration is currently active\\n     * @param debounce Minimum delay between consecutive update executions for the same (updateType, market) pair\\n     * @param timelock Period that must pass after registration before an update can be executed\\n     * @param riskSteward Address of the risk steward contract responsible for processing this update type\\n     */\\n    struct RiskParamConfig {\\n        bool active;\\n        uint256 debounce;\\n        uint256 timelock;\\n        address riskSteward;\\n    }\\n\\n    /**\\n     * @notice Registered update structure with timelock and execution information\\n     * @param updateId Update ID from the Risk Oracle\\n     * @param unlockTime Timestamp when this update can be executed (calculated as registration time + timelock)\\n     * @param status Current status of the update (Pending, Executed, Rejected, Expired, etc.)\\n     * @param executor Address of the executor who executed this update (address(0) if not executed yet)\\n     * @param executedAt Timestamp when this update was executed (0 if not executed yet)\\n     */\\n    struct RegisteredUpdate {\\n        uint256 updateId;\\n        uint256 unlockTime;\\n        UpdateStatus status;\\n        address executor;\\n        uint256 executedAt;\\n    }\\n\\n    /**\\n     * @notice Event emitted when a risk parameter config is set\\n     */\\n    event RiskParameterConfigUpdated(\\n        bytes32 indexed updateTypeHash,\\n        string updateType,\\n        address indexed previousRiskSteward,\\n        address indexed riskSteward,\\n        uint256 previousDebounce,\\n        uint256 debounce,\\n        uint256 previousTimelock,\\n        uint256 timelock,\\n        bool previousActive,\\n        bool active\\n    );\\n\\n    /**\\n     * @notice Event emitted when a risk parameter config active status is set\\n     */\\n    event ConfigActiveUpdated(bytes32 indexed updateTypeHash, string updateType, bool previousActive, bool active);\\n\\n    /**\\n     * @notice Event emitted when an update is successfully executed\\n     */\\n    event UpdateExecuted(uint256 indexed updateId);\\n\\n    /**\\n     * @notice Event emitted when an update is rejected\\n     */\\n    event UpdateRejected(uint256 indexed updateId);\\n\\n    /**\\n     * @notice Event emitted when an update is marked as expired\\n     */\\n    event UpdateExpired(uint256 indexed updateId);\\n\\n    /**\\n     * @notice Event emitted when an executor status is set\\n     */\\n    event ExecutorStatusUpdated(address indexed executor, bool previousApproved, bool approved);\\n\\n    /**\\n     * @notice Event emitted when an update is registered\\n     */\\n    event UpdateRegistered(uint256 indexed updateId, uint256 unlockTime, string updateType, address indexed market);\\n\\n    /**\\n     * @notice Event emitted when an update is sent to a destination chain\\n     */\\n    event UpdateSentToDestination(\\n        uint256 updateId,\\n        uint32 indexed destLzEid,\\n        string indexed updateType,\\n        address indexed market\\n    );\\n\\n    /**\\n     * @notice Event emitted when an update is resent to a destination chain\\n     */\\n    event UpdateResentToDestination(\\n        uint256 updateId,\\n        uint32 indexed destLzEid,\\n        string indexed updateType,\\n        address indexed market\\n    );\\n\\n    /**\\n     * @notice Emitted when leftover native tokens are swept by owner\\n     */\\n    event SweepNative(address indexed receiver, uint256 amount);\\n\\n    /**\\n     * @notice Event emitted when the pause status changes\\n     * @param previousPaused Previous pause state\\n     * @param paused Current pause state\\n     */\\n    event PauseStatusUpdated(bool previousPaused, bool paused);\\n\\n    /**\\n     * @custom:error TransferFailed\\n     */\\n    error TransferFailed();\\n\\n    /**\\n     * @notice Thrown if a submitted update is not active and therefore cannot be processed\\n     */\\n    error ConfigNotActive();\\n\\n    /**\\n     * @notice Thrown when an update was not applied within the required time frame\\n     */\\n    error UpdateIsExpired();\\n\\n    /**\\n     * @notice Thrown when an update has already been processed\\n     */\\n    error UpdateAlreadyResolved();\\n\\n    /**\\n     * @notice Thrown when the debounce period hasn't passed for applying an update to a specific market / update type\\n     */\\n    error UpdateTooFrequent();\\n\\n    /**\\n     * @notice Thrown when an update type that is not supported is operated on\\n     */\\n    error UnsupportedUpdateType();\\n\\n    /**\\n     * @notice Thrown when an empty update type string is provided\\n     */\\n    error InvalidUpdateType();\\n\\n    /**\\n     * @notice Thrown when a debounce value of 0 is set\\n     */\\n    error InvalidDebounce();\\n\\n    /**\\n     * @notice Thrown when a timelock value is greater than or equal to the expiration time\\n     */\\n    error InvalidTimelock();\\n\\n    /**\\n     * @notice Thrown when update unlock time has not been reached\\n     */\\n    error UpdateNotUnlocked();\\n\\n    /**\\n     * @notice Thrown when trying to resolve an update that doesn't exist\\n     */\\n    error UpdateNotFound();\\n\\n    /**\\n     * @notice Thrown when an address is not an executor\\n     */\\n    error NotAnExecutor();\\n\\n    /**\\n     * @notice Thrown when there is a non-expired pending update of the same type for the market\\n     */\\n    error RegisteredUpdateTypeExist(uint256);\\n\\n    /**\\n     * @notice Thrown when trying to resend an update that is not in SENT_TO_DESTINATION status\\n     */\\n    error InvalidUpdateToResend();\\n\\n    /**\\n     * @notice Thrown when trying to execute an update that was never registered\\n     */\\n    error InvalidRegisteredUpdate();\\n\\n    /**\\n     * @notice Thrown when attempting to call lzSend from an address other than this contract\\n     */\\n    error InvalidLzSendCaller();\\n\\n    /**\\n     * @notice Thrown when trying to renounce ownership\\n     */\\n    error RenounceOwnershipNotAllowed();\\n\\n    /**\\n     * @notice Thrown when processUpdate is called while the contract is paused\\n     */\\n    error PausedError();\\n\\n    /**\\n     * @notice Thrown when an invalid LayerZero endpoint ID is provided\\n     */\\n    error InvalidLayerZeroEid();\\n\\n    /**\\n     * @notice Thrown when trying to set the same pause status\\n     */\\n    error PauseStatusUnchanged();\\n\\n    /**\\n     * @notice Thrown when trying to set the same config active status\\n     */\\n    error ConfigStatusUnchanged();\\n\\n    /**\\n     * @notice Thrown when trying to set the same executor whitelist status\\n     */\\n    error ExecutorStatusUnchanged();\\n\\n    /**\\n     * @notice Thrown when an update will expire before its timelock unlocks\\n     */\\n    error UpdateWillExpireBeforeUnlock();\\n\\n    function getRiskParameterConfig(string calldata updateType) external view returns (RiskParamConfig memory);\\n\\n    function getLastProcessedUpdate(string calldata updateType, address market) external view returns (uint256);\\n\\n    function getLastRegisteredUpdate(string calldata updateType, address market) external view returns (uint256);\\n\\n    function setRiskParameterConfig(\\n        string calldata updateType,\\n        address riskSteward,\\n        uint256 debounce,\\n        uint256 timelock\\n    ) external;\\n\\n    function setConfigActive(string calldata updateType, bool active) external;\\n\\n    function setWhitelistedExecutor(address executor, bool approved) external;\\n\\n    function processUpdate(uint256 updateId) external;\\n\\n    function executeRegisteredUpdate(uint256 updateId) external;\\n\\n    function rejectUpdate(uint256 updateId) external;\\n\\n    function resendRemoteUpdate(uint256 updateId, bytes calldata options) external payable;\\n\\n    function getExecutableUpdates(\\n        string calldata updateType,\\n        address comptroller\\n    ) external view returns (uint256[] memory executableUpdates);\\n\\n    function isUpdateExecutable(uint256 updateId) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x206b4763cfe62155718edb4b53ee48d6e5204b81cbfac705808d2ffd3225bb12\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":6086,"contract":"contracts/RiskSteward/BaseRiskSteward.sol:BaseRiskSteward","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":6089,"contract":"contracts/RiskSteward/BaseRiskSteward.sol:BaseRiskSteward","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":6573,"contract":"contracts/RiskSteward/BaseRiskSteward.sol:BaseRiskSteward","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":5958,"contract":"contracts/RiskSteward/BaseRiskSteward.sol:BaseRiskSteward","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":6078,"contract":"contracts/RiskSteward/BaseRiskSteward.sol:BaseRiskSteward","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":5867,"contract":"contracts/RiskSteward/BaseRiskSteward.sol:BaseRiskSteward","label":"_pendingOwner","offset":0,"slot":"101","type":"t_address"},{"astId":5946,"contract":"contracts/RiskSteward/BaseRiskSteward.sol:BaseRiskSteward","label":"__gap","offset":0,"slot":"102","type":"t_array(t_uint256)49_storage"},{"astId":13718,"contract":"contracts/RiskSteward/BaseRiskSteward.sol:BaseRiskSteward","label":"_accessControlManager","offset":0,"slot":"151","type":"t_contract(IAccessControlManagerV8)13903"},{"astId":13723,"contract":"contracts/RiskSteward/BaseRiskSteward.sol:BaseRiskSteward","label":"__gap","offset":0,"slot":"152","type":"t_array(t_uint256)49_storage"},{"astId":14464,"contract":"contracts/RiskSteward/BaseRiskSteward.sol:BaseRiskSteward","label":"safeDeltaBps","offset":0,"slot":"201","type":"t_uint256"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_contract(IAccessControlManagerV8)13903":{"encoding":"inplace","label":"contract IAccessControlManagerV8","numberOfBytes":"20"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"errors":{"RenounceOwnershipNotAllowed()":[{"notice":"Thrown when trying to renounce ownership"}],"Unauthorized(address,address,string)":[{"notice":"Thrown when the action is prohibited by AccessControlManager"}]},"events":{"NewAccessControlManager(address,address)":{"notice":"Emitted when access control manager contract address is changed"}},"kind":"user","methods":{"RISK_STEWARD_RECEIVER()":{"notice":"Returns the `IRiskStewardReceiver` associated with this steward."},"accessControlManager()":{"notice":"Returns the address of the access control manager contract"},"applyUpdate((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))":{"notice":"Applies a validated risk parameter update."},"isSafeForDirectExecution((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))":{"notice":"Checks whether an update is safe for direct execution (no timelock required)."},"renounceOwnership()":{"notice":"Disables renounceOwnership function"},"safeDeltaBps()":{"notice":"The safe delta threshold in basis points.Updates within this delta are considered safe and require no timelock. Updates exceeding this delta require timelock."},"setAccessControlManager(address)":{"notice":"Sets the address of AccessControlManager"}},"notice":"Abstract base contract for Risk Steward contracts providing common functionality","version":1}}},"contracts/RiskSteward/CollateralFactorsRiskSteward.sol":{"CollateralFactorsRiskSteward":{"abi":[{"inputs":[{"internalType":"address","name":"corePoolComptroller_","type":"address"},{"internalType":"address","name":"riskStewardReceiver_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidPool","type":"error"},{"inputs":[],"name":"InvalidSafeDeltaBps","type":"error"},{"inputs":[],"name":"InvalidTwoUintLength","type":"error"},{"inputs":[],"name":"OnlyRiskStewardReceiver","type":"error"},{"inputs":[],"name":"RedundantValue","type":"error"},{"inputs":[],"name":"RenounceOwnershipNotAllowed","type":"error"},{"inputs":[{"internalType":"uint256","name":"errorCode","type":"uint256"}],"name":"SetCollateralFactorFailed","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"calledContract","type":"address"},{"internalType":"string","name":"methodSignature","type":"string"}],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"UnsupportedUpdateType","type":"error"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"updateId","type":"uint256"},{"indexed":true,"internalType":"address","name":"market","type":"address"},{"indexed":false,"internalType":"uint256","name":"newCollateralFactor","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newLiquidationThreshold","type":"uint256"}],"name":"CollateralFactorsUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldAccessControlManager","type":"address"},{"indexed":false,"internalType":"address","name":"newAccessControlManager","type":"address"}],"name":"NewAccessControlManager","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","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":"uint256","name":"oldSafeDeltaBps","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newSafeDeltaBps","type":"uint256"}],"name":"SafeDeltaBpsUpdated","type":"event"},{"inputs":[],"name":"COLLATERAL_FACTORS","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"COLLATERAL_FACTORS_KEY","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CORE_POOL_COMPTROLLER","outputs":[{"internalType":"contract ICorePoolComptroller","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RISK_STEWARD_RECEIVER","outputs":[{"internalType":"contract IRiskStewardReceiver","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"accessControlManager","outputs":[{"internalType":"contract IAccessControlManagerV8","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"referenceId","type":"string"},{"internalType":"uint256","name":"updateId","type":"uint256"},{"internalType":"address","name":"market","type":"address"},{"internalType":"string","name":"updateType","type":"string"},{"internalType":"bytes32","name":"updateTypeKey","type":"bytes32"},{"internalType":"bytes","name":"newValue","type":"bytes"},{"internalType":"bytes","name":"previousValue","type":"bytes"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"address","name":"publisher","type":"address"},{"internalType":"uint96","name":"poolId","type":"uint96"},{"internalType":"uint32","name":"destLzEid","type":"uint32"},{"internalType":"bytes","name":"additionalData","type":"bytes"}],"internalType":"struct RiskParameterUpdate","name":"update","type":"tuple"}],"name":"applyUpdate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"accessControlManager_","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"referenceId","type":"string"},{"internalType":"uint256","name":"updateId","type":"uint256"},{"internalType":"address","name":"market","type":"address"},{"internalType":"string","name":"updateType","type":"string"},{"internalType":"bytes32","name":"updateTypeKey","type":"bytes32"},{"internalType":"bytes","name":"newValue","type":"bytes"},{"internalType":"bytes","name":"previousValue","type":"bytes"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"address","name":"publisher","type":"address"},{"internalType":"uint96","name":"poolId","type":"uint96"},{"internalType":"uint32","name":"destLzEid","type":"uint32"},{"internalType":"bytes","name":"additionalData","type":"bytes"}],"internalType":"struct RiskParameterUpdate","name":"update","type":"tuple"}],"name":"isSafeForDirectExecution","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"safeDeltaBps","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"accessControlManager_","type":"address"}],"name":"setAccessControlManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"safeDeltaBps_","type":"uint256"}],"name":"setSafeDeltaBps","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Venus","custom:security-contact":"https://github.com/VenusProtocol/governance-contracts#discussion","events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."}},"kind":"dev","methods":{"acceptOwnership()":{"details":"The new owner accepts the ownership transfer."},"applyUpdate((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))":{"custom:access":"Only callable by the `RiskStewardReceiver`","custom:error":"Throws OnlyRiskStewardReceiver if the sender is not the `RiskStewardReceiver`Throws UnsupportedUpdateType if the update type is not supported","custom:event":"Emits CollateralFactorsUpdated with updateId","params":{"update":"RiskParameterUpdate update to apply"}},"constructor":{"custom:error":"Throws ZeroAddressNotAllowed if any of the addresses are zero","custom:oz-upgrades-unsafe-allow":"constructor","params":{"corePoolComptroller_":"The address of the Core Pool Comptroller","riskStewardReceiver_":"The address of the `RiskStewardReceiver`"}},"initialize(address)":{"params":{"accessControlManager_":"The address of the access control manager"}},"isSafeForDirectExecution((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))":{"custom:error":"Throws UnsupportedUpdateType if the update type is not supportedThrows RedundantValue if the new collateral factor and liquidation threshold are unchanged","params":{"update":"The update to check."},"returns":{"_0":"True if update is safe for direct execution, false if timelock is required"}},"owner()":{"details":"Returns the address of the current owner."},"pendingOwner()":{"details":"Returns the address of the pending owner."},"renounceOwnership()":{"custom:error":"Throws RenounceOwnershipNotAllowed"},"setAccessControlManager(address)":{"custom:access":"Only Governance","custom:event":"Emits NewAccessControlManager event","details":"Admin function to set address of AccessControlManager","params":{"accessControlManager_":"The new address of the AccessControlManager"}},"setSafeDeltaBps(uint256)":{"custom:access":"Controlled by AccessControlManager","custom:error":"Throws InvalidSafeDeltaBps if the safe delta bps is greater than MAX_BPSThrows RedundantValue if the new safe delta bps is equal to the current value","custom:event":"Emits SafeDeltaBpsUpdated with the old and new safe delta bps","params":{"safeDeltaBps_":"The new safe delta bps"}},"transferOwnership(address)":{"details":"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner."}},"stateVariables":{"CORE_POOL_COMPTROLLER":{"details":"This comptroller is specific to the BNB Core Pool, which uses a different ABI      than isolated pools. It is used solely to detect and handle BNB Core Pool      markets, and would not be used for remote-chain (isolated pool) deployments."},"__gap":{"details":"Storage gap for upgradeability."}},"title":"CollateralFactorsRiskSteward","version":1},"evm":{"bytecode":{"functionDebugData":{"@_14628":{"entryPoint":null,"id":14628,"parameterSlots":2,"returnSlots":0},"@_disableInitializers_6229":{"entryPoint":132,"id":6229,"parameterSlots":0,"returnSlots":0},"@ensureNonzeroAddress_10945":{"entryPoint":90,"id":10945,"parameterSlots":1,"returnSlots":0},"abi_decode_address_fromMemory":{"entryPoint":324,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_addresst_address_fromMemory":{"entryPoint":352,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:1088:97","nodeType":"YulBlock","src":"0:1088:97","statements":[{"nativeSrc":"6:3:97","nodeType":"YulBlock","src":"6:3:97","statements":[]},{"body":{"nativeSrc":"74:117:97","nodeType":"YulBlock","src":"74:117:97","statements":[{"nativeSrc":"84:22:97","nodeType":"YulAssignment","src":"84:22:97","value":{"arguments":[{"name":"offset","nativeSrc":"99:6:97","nodeType":"YulIdentifier","src":"99:6:97"}],"functionName":{"name":"mload","nativeSrc":"93:5:97","nodeType":"YulIdentifier","src":"93:5:97"},"nativeSrc":"93:13:97","nodeType":"YulFunctionCall","src":"93:13:97"},"variableNames":[{"name":"value","nativeSrc":"84:5:97","nodeType":"YulIdentifier","src":"84:5:97"}]},{"body":{"nativeSrc":"169:16:97","nodeType":"YulBlock","src":"169:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"178:1:97","nodeType":"YulLiteral","src":"178:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"181:1:97","nodeType":"YulLiteral","src":"181:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"171:6:97","nodeType":"YulIdentifier","src":"171:6:97"},"nativeSrc":"171:12:97","nodeType":"YulFunctionCall","src":"171:12:97"},"nativeSrc":"171:12:97","nodeType":"YulExpressionStatement","src":"171:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"128:5:97","nodeType":"YulIdentifier","src":"128:5:97"},{"arguments":[{"name":"value","nativeSrc":"139:5:97","nodeType":"YulIdentifier","src":"139:5:97"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"154:3:97","nodeType":"YulLiteral","src":"154:3:97","type":"","value":"160"},{"kind":"number","nativeSrc":"159:1:97","nodeType":"YulLiteral","src":"159:1:97","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"150:3:97","nodeType":"YulIdentifier","src":"150:3:97"},"nativeSrc":"150:11:97","nodeType":"YulFunctionCall","src":"150:11:97"},{"kind":"number","nativeSrc":"163:1:97","nodeType":"YulLiteral","src":"163:1:97","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"146:3:97","nodeType":"YulIdentifier","src":"146:3:97"},"nativeSrc":"146:19:97","nodeType":"YulFunctionCall","src":"146:19:97"}],"functionName":{"name":"and","nativeSrc":"135:3:97","nodeType":"YulIdentifier","src":"135:3:97"},"nativeSrc":"135:31:97","nodeType":"YulFunctionCall","src":"135:31:97"}],"functionName":{"name":"eq","nativeSrc":"125:2:97","nodeType":"YulIdentifier","src":"125:2:97"},"nativeSrc":"125:42:97","nodeType":"YulFunctionCall","src":"125:42:97"}],"functionName":{"name":"iszero","nativeSrc":"118:6:97","nodeType":"YulIdentifier","src":"118:6:97"},"nativeSrc":"118:50:97","nodeType":"YulFunctionCall","src":"118:50:97"},"nativeSrc":"115:70:97","nodeType":"YulIf","src":"115:70:97"}]},"name":"abi_decode_address_fromMemory","nativeSrc":"14:177:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"53:6:97","nodeType":"YulTypedName","src":"53:6:97","type":""}],"returnVariables":[{"name":"value","nativeSrc":"64:5:97","nodeType":"YulTypedName","src":"64:5:97","type":""}],"src":"14:177:97"},{"body":{"nativeSrc":"294:195:97","nodeType":"YulBlock","src":"294:195:97","statements":[{"body":{"nativeSrc":"340:16:97","nodeType":"YulBlock","src":"340:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"349:1:97","nodeType":"YulLiteral","src":"349:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"352:1:97","nodeType":"YulLiteral","src":"352:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"342:6:97","nodeType":"YulIdentifier","src":"342:6:97"},"nativeSrc":"342:12:97","nodeType":"YulFunctionCall","src":"342:12:97"},"nativeSrc":"342:12:97","nodeType":"YulExpressionStatement","src":"342:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"315:7:97","nodeType":"YulIdentifier","src":"315:7:97"},{"name":"headStart","nativeSrc":"324:9:97","nodeType":"YulIdentifier","src":"324:9:97"}],"functionName":{"name":"sub","nativeSrc":"311:3:97","nodeType":"YulIdentifier","src":"311:3:97"},"nativeSrc":"311:23:97","nodeType":"YulFunctionCall","src":"311:23:97"},{"kind":"number","nativeSrc":"336:2:97","nodeType":"YulLiteral","src":"336:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"307:3:97","nodeType":"YulIdentifier","src":"307:3:97"},"nativeSrc":"307:32:97","nodeType":"YulFunctionCall","src":"307:32:97"},"nativeSrc":"304:52:97","nodeType":"YulIf","src":"304:52:97"},{"nativeSrc":"365:50:97","nodeType":"YulAssignment","src":"365:50:97","value":{"arguments":[{"name":"headStart","nativeSrc":"405:9:97","nodeType":"YulIdentifier","src":"405:9:97"}],"functionName":{"name":"abi_decode_address_fromMemory","nativeSrc":"375:29:97","nodeType":"YulIdentifier","src":"375:29:97"},"nativeSrc":"375:40:97","nodeType":"YulFunctionCall","src":"375:40:97"},"variableNames":[{"name":"value0","nativeSrc":"365:6:97","nodeType":"YulIdentifier","src":"365:6:97"}]},{"nativeSrc":"424:59:97","nodeType":"YulAssignment","src":"424:59:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"468:9:97","nodeType":"YulIdentifier","src":"468:9:97"},{"kind":"number","nativeSrc":"479:2:97","nodeType":"YulLiteral","src":"479:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"464:3:97","nodeType":"YulIdentifier","src":"464:3:97"},"nativeSrc":"464:18:97","nodeType":"YulFunctionCall","src":"464:18:97"}],"functionName":{"name":"abi_decode_address_fromMemory","nativeSrc":"434:29:97","nodeType":"YulIdentifier","src":"434:29:97"},"nativeSrc":"434:49:97","nodeType":"YulFunctionCall","src":"434:49:97"},"variableNames":[{"name":"value1","nativeSrc":"424:6:97","nodeType":"YulIdentifier","src":"424:6:97"}]}]},"name":"abi_decode_tuple_t_addresst_address_fromMemory","nativeSrc":"196:293:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"252:9:97","nodeType":"YulTypedName","src":"252:9:97","type":""},{"name":"dataEnd","nativeSrc":"263:7:97","nodeType":"YulTypedName","src":"263:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"275:6:97","nodeType":"YulTypedName","src":"275:6:97","type":""},{"name":"value1","nativeSrc":"283:6:97","nodeType":"YulTypedName","src":"283:6:97","type":""}],"src":"196:293:97"},{"body":{"nativeSrc":"668:229:97","nodeType":"YulBlock","src":"668:229:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"685:9:97","nodeType":"YulIdentifier","src":"685:9:97"},{"kind":"number","nativeSrc":"696:2:97","nodeType":"YulLiteral","src":"696:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"678:6:97","nodeType":"YulIdentifier","src":"678:6:97"},"nativeSrc":"678:21:97","nodeType":"YulFunctionCall","src":"678:21:97"},"nativeSrc":"678:21:97","nodeType":"YulExpressionStatement","src":"678:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"719:9:97","nodeType":"YulIdentifier","src":"719:9:97"},{"kind":"number","nativeSrc":"730:2:97","nodeType":"YulLiteral","src":"730:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"715:3:97","nodeType":"YulIdentifier","src":"715:3:97"},"nativeSrc":"715:18:97","nodeType":"YulFunctionCall","src":"715:18:97"},{"kind":"number","nativeSrc":"735:2:97","nodeType":"YulLiteral","src":"735:2:97","type":"","value":"39"}],"functionName":{"name":"mstore","nativeSrc":"708:6:97","nodeType":"YulIdentifier","src":"708:6:97"},"nativeSrc":"708:30:97","nodeType":"YulFunctionCall","src":"708:30:97"},"nativeSrc":"708:30:97","nodeType":"YulExpressionStatement","src":"708:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"758:9:97","nodeType":"YulIdentifier","src":"758:9:97"},{"kind":"number","nativeSrc":"769:2:97","nodeType":"YulLiteral","src":"769:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"754:3:97","nodeType":"YulIdentifier","src":"754:3:97"},"nativeSrc":"754:18:97","nodeType":"YulFunctionCall","src":"754:18:97"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320696e697469","kind":"string","nativeSrc":"774:34:97","nodeType":"YulLiteral","src":"774:34:97","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nativeSrc":"747:6:97","nodeType":"YulIdentifier","src":"747:6:97"},"nativeSrc":"747:62:97","nodeType":"YulFunctionCall","src":"747:62:97"},"nativeSrc":"747:62:97","nodeType":"YulExpressionStatement","src":"747:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"829:9:97","nodeType":"YulIdentifier","src":"829:9:97"},{"kind":"number","nativeSrc":"840:2:97","nodeType":"YulLiteral","src":"840:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"825:3:97","nodeType":"YulIdentifier","src":"825:3:97"},"nativeSrc":"825:18:97","nodeType":"YulFunctionCall","src":"825:18:97"},{"hexValue":"616c697a696e67","kind":"string","nativeSrc":"845:9:97","nodeType":"YulLiteral","src":"845:9:97","type":"","value":"alizing"}],"functionName":{"name":"mstore","nativeSrc":"818:6:97","nodeType":"YulIdentifier","src":"818:6:97"},"nativeSrc":"818:37:97","nodeType":"YulFunctionCall","src":"818:37:97"},"nativeSrc":"818:37:97","nodeType":"YulExpressionStatement","src":"818:37:97"},{"nativeSrc":"864:27:97","nodeType":"YulAssignment","src":"864:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"876:9:97","nodeType":"YulIdentifier","src":"876:9:97"},{"kind":"number","nativeSrc":"887:3:97","nodeType":"YulLiteral","src":"887:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"872:3:97","nodeType":"YulIdentifier","src":"872:3:97"},"nativeSrc":"872:19:97","nodeType":"YulFunctionCall","src":"872:19:97"},"variableNames":[{"name":"tail","nativeSrc":"864:4:97","nodeType":"YulIdentifier","src":"864:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"494:403:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"645:9:97","nodeType":"YulTypedName","src":"645:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"659:4:97","nodeType":"YulTypedName","src":"659:4:97","type":""}],"src":"494:403:97"},{"body":{"nativeSrc":"999:87:97","nodeType":"YulBlock","src":"999:87:97","statements":[{"nativeSrc":"1009:26:97","nodeType":"YulAssignment","src":"1009:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1021:9:97","nodeType":"YulIdentifier","src":"1021:9:97"},{"kind":"number","nativeSrc":"1032:2:97","nodeType":"YulLiteral","src":"1032:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1017:3:97","nodeType":"YulIdentifier","src":"1017:3:97"},"nativeSrc":"1017:18:97","nodeType":"YulFunctionCall","src":"1017:18:97"},"variableNames":[{"name":"tail","nativeSrc":"1009:4:97","nodeType":"YulIdentifier","src":"1009:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1051:9:97","nodeType":"YulIdentifier","src":"1051:9:97"},{"arguments":[{"name":"value0","nativeSrc":"1066:6:97","nodeType":"YulIdentifier","src":"1066:6:97"},{"kind":"number","nativeSrc":"1074:4:97","nodeType":"YulLiteral","src":"1074:4:97","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"1062:3:97","nodeType":"YulIdentifier","src":"1062:3:97"},"nativeSrc":"1062:17:97","nodeType":"YulFunctionCall","src":"1062:17:97"}],"functionName":{"name":"mstore","nativeSrc":"1044:6:97","nodeType":"YulIdentifier","src":"1044:6:97"},"nativeSrc":"1044:36:97","nodeType":"YulFunctionCall","src":"1044:36:97"},"nativeSrc":"1044:36:97","nodeType":"YulExpressionStatement","src":"1044:36:97"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"902:184:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"968:9:97","nodeType":"YulTypedName","src":"968:9:97","type":""},{"name":"value0","nativeSrc":"979:6:97","nodeType":"YulTypedName","src":"979:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"990:4:97","nodeType":"YulTypedName","src":"990:4:97","type":""}],"src":"902:184:97"}]},"contents":"{\n    { }\n    function abi_decode_address_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address_fromMemory(headStart)\n        value1 := abi_decode_address_fromMemory(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 39)\n        mstore(add(headStart, 64), \"Initializable: contract is initi\")\n        mstore(add(headStart, 96), \"alizing\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n}","id":97,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60c060405234801561001057600080fd5b50604051611bcc380380611bcc83398101604081905261002f91610160565b6100388161005a565b6001600160a01b03808316608052811660a052610053610084565b5050610193565b6001600160a01b038116610081576040516342bcdf7f60e11b815260040160405180910390fd5b50565b600054610100900460ff16156100f05760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015610142576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b80516001600160a01b038116811461015b57600080fd5b919050565b6000806040838503121561017357600080fd5b61017c83610144565b915061018a60208401610144565b90509250929050565b60805160a0516119ff6101cd600039600081816101f6015261077201526000818161030501528181610e46015261106901526119ff6000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c8063b4a0bdf311610097578063e62569be11610066578063e62569be1461027a578063ee97f265146102e4578063f2fde38b146102ed578063fa7b81a01461030057600080fd5b8063b4a0bdf314610218578063bf63783914610236578063c4d66de814610249578063e30c39781461025c57600080fd5b8063715018a6116100d3578063715018a6146101a257806379ba5097146101aa5780638da5cb5b146101b2578063b296e6cb146101f157600080fd5b80630e32cb861461010557806312cc26471461011a5780632c47d86f1461016c57806342b7cfbd1461017f575b600080fd5b6101186101133660046115fe565b610327565b005b6101566040518060400160405280601181526020017f636f6c6c61746572616c466163746f727300000000000000000000000000000081525081565b6040516101639190611686565b60405180910390f35b61011861017a366004611699565b61033b565b61019261018d3660046116b2565b610434565b6040519015158152602001610163565b610118610671565b6101186106a3565b60335473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610163565b6101cc7f000000000000000000000000000000000000000000000000000000000000000081565b60975473ffffffffffffffffffffffffffffffffffffffff166101cc565b6101186102443660046116b2565b61075a565b6101186102573660046115fe565b610927565b60655473ffffffffffffffffffffffffffffffffffffffff166101cc565b60408051808201909152601181527f636f6c6c61746572616c466163746f72730000000000000000000000000000006020909101526102d67f8370b9108dc54d549f7f967730058d7047833aa4750d10ac92879dc48e94db6881565b604051908152602001610163565b6102d660c95481565b6101186102fb3660046115fe565b610ab7565b6101cc7f000000000000000000000000000000000000000000000000000000000000000081565b61032f610b67565b61033881610bea565b50565b6103796040518060400160405280601881526020017f7365745361666544656c74614270732875696e74323536290000000000000000815250610d0c565b6127108111156103b5576040517fc514758500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60c9548082036103f1576040517f925cd79500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60c982905560408051828152602081018490527fa05c0cb0e77decc6503407c6ca159106b8b001d9feb7927d08fad60094a934ab91015b60405180910390a15050565b60408051808201909152601181527f636f6c6c61746572616c466163746f727300000000000000000000000000000060209091015260007f7c8f46ef723ab2ab60806988cffa728fb87cc55b8af2ef536d78623b716b249860808301350161063f576104a861014083016101208401611708565b6bffffffffffffffffffffffff16156104c357506000919050565b60006104d560608401604085016115fe565b73ffffffffffffffffffffffffffffffffffffffff16635fe3b5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561051f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105439190611725565b905060008061059261055860a0870187611742565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610de592505050565b90925090506000806105b3856105ae60608a0160408b016115fe565b610e41565b9150915081841480156105c557508083145b156105fc576040517f925cd79500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b811580610607575080155b15610619575060009695505050505050565b6106238483610fd6565b801561063457506106348382610fd6565b979650505050505050565b6040517f80919d7b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f96c553eb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606554339073ffffffffffffffffffffffffffffffffffffffff168114610751576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e6572000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61033881611026565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146107c9576040517f3a739dd700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006107db60608301604084016115fe565b73ffffffffffffffffffffffffffffffffffffffff16635fe3b5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610825573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108499190611725565b9050600061085f61014084016101208501611708565b60408051808201909152601181527f636f6c6c61746572616c466163746f727300000000000000000000000000000060209091015290507f7c8f46ef723ab2ab60806988cffa728fb87cc55b8af2ef536d78623b716b249860808401350161063f576109226020840135836108da60608701604088016115fe565b846108e860a0890189611742565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061105792505050565b505050565b600054610100900460ff16158080156109475750600054600160ff909116105b806109615750303b158015610961575060005460ff166001145b6109ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610748565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610a4b57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610a54826112e7565b8015610ab357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610428565b5050565b610abf610b67565b6065805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff00000000000000000000000000000000000000009091168117909155610b2260335473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60335473ffffffffffffffffffffffffffffffffffffffff163314610be8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610748565b565b73ffffffffffffffffffffffffffffffffffffffff8116610c8d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e6167657220616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610748565b6097805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa09101610428565b6097546040517f18c5e8ab00000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff16906318c5e8ab90610d6590339086906004016117a7565b602060405180830381865afa158015610d82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da691906117f3565b905080610ab3573330836040517f4a3fa2930000000000000000000000000000000000000000000000000000000081526004016107489392919061180e565b6000808251604014610e23576040517f3bead5a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82806020019051810190610e379190611850565b9094909350915050565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610f38576040517f8e8f294b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152851690638e8f294b9060240160e060405180830381865afa158015610f03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f279190611874565b50939650909450610fcf9350505050565b6040517f8e8f294b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152851690638e8f294b90602401606060405180830381865afa158015610fa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc891906118e7565b9093509150505b9250929050565b600080828411610fef57610fea848461194b565b610ff9565b610ff9838561194b565b905060006127108460c95461100e919061195e565b6110189190611975565b909111159150505b92915050565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556103388161138f565b60008061106383610de5565b915091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036111b5576040517f9159b1770000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff8516600482015273ffffffffffffffffffffffffffffffffffffffff8681166024830152604482018490526064820183905260009190881690639159b177906084016020604051808303816000875af115801561114e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117291906119b0565b905080156111af576040517ff69d209900000000000000000000000000000000000000000000000000000000815260048101829052602401610748565b5061128b565b6bffffffffffffffffffffffff8416156111fb576040517f2083cd4000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f5cc4fdeb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86811660048301526024820184905260448201839052871690635cc4fdeb90606401600060405180830381600087803b15801561127257600080fd5b505af1158015611286573d6000803e3d6000fd5b505050505b604080518381526020810183905273ffffffffffffffffffffffffffffffffffffffff87169189917f345175133778c4fdb297de94ca161a1248998f240be2ae89b35225d0167e0648910160405180910390a350505050505050565b600054610100900460ff1661137e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610748565b611386611406565b610338816114a5565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff1661149d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610748565b610be861153c565b600054610100900460ff1661032f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610748565b600054610100900460ff166115d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610748565b610be833611026565b73ffffffffffffffffffffffffffffffffffffffff8116811461033857600080fd5b60006020828403121561161057600080fd5b813561161b816115dc565b9392505050565b6000815180845260005b818110156116485760208185018101518683018201520161162c565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b60208152600061161b6020830184611622565b6000602082840312156116ab57600080fd5b5035919050565b6000602082840312156116c457600080fd5b813567ffffffffffffffff8111156116db57600080fd5b8201610180818503121561161b57600080fd5b6bffffffffffffffffffffffff8116811461033857600080fd5b60006020828403121561171a57600080fd5b813561161b816116ee565b60006020828403121561173757600080fd5b815161161b816115dc565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261177757600080fd5b83018035915067ffffffffffffffff82111561179257600080fd5b602001915036819003821315610fcf57600080fd5b73ffffffffffffffffffffffffffffffffffffffff831681526040602082015260006117d66040830184611622565b949350505050565b805180151581146117ee57600080fd5b919050565b60006020828403121561180557600080fd5b61161b826117de565b600073ffffffffffffffffffffffffffffffffffffffff8086168352808516602084015250606060408301526118476060830184611622565b95945050505050565b6000806040838503121561186357600080fd5b505080516020909101519092909150565b600080600080600080600060e0888a03121561188f57600080fd5b611898886117de565b9650602088015195506118ad604089016117de565b9450606088015193506080880151925060a08801516118cb816116ee565b91506118d960c089016117de565b905092959891949750929550565b6000806000606084860312156118fc57600080fd5b611905846117de565b925060208401519150604084015190509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818103818111156110205761102061191c565b80820281158282048414176110205761102061191c565b6000826119ab577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000602082840312156119c257600080fd5b505191905056fea264697066735822122084b3e9480a69f40c7501f05acd488455a6cbdb0445afd1f687116b636361c5c264736f6c63430008190033","opcodes":"PUSH1 0xC0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x1BCC CODESIZE SUB DUP1 PUSH2 0x1BCC DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x160 JUMP JUMPDEST PUSH2 0x38 DUP2 PUSH2 0x5A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP4 AND PUSH1 0x80 MSTORE DUP2 AND PUSH1 0xA0 MSTORE PUSH2 0x53 PUSH2 0x84 JUMP JUMPDEST POP POP PUSH2 0x193 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x81 JUMPI PUSH1 0x40 MLOAD PUSH4 0x42BCDF7F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xF0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND LT ISZERO PUSH2 0x142 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x15B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x173 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x17C DUP4 PUSH2 0x144 JUMP JUMPDEST SWAP2 POP PUSH2 0x18A PUSH1 0x20 DUP5 ADD PUSH2 0x144 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH2 0x19FF PUSH2 0x1CD PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x1F6 ADD MSTORE PUSH2 0x772 ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x305 ADD MSTORE DUP2 DUP2 PUSH2 0xE46 ADD MSTORE PUSH2 0x1069 ADD MSTORE PUSH2 0x19FF PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x100 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xB4A0BDF3 GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xE62569BE GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xE62569BE EQ PUSH2 0x27A JUMPI DUP1 PUSH4 0xEE97F265 EQ PUSH2 0x2E4 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x2ED JUMPI DUP1 PUSH4 0xFA7B81A0 EQ PUSH2 0x300 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB4A0BDF3 EQ PUSH2 0x218 JUMPI DUP1 PUSH4 0xBF637839 EQ PUSH2 0x236 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x249 JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x25C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x715018A6 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x1A2 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x1AA JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x1B2 JUMPI DUP1 PUSH4 0xB296E6CB EQ PUSH2 0x1F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xE32CB86 EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x12CC2647 EQ PUSH2 0x11A JUMPI DUP1 PUSH4 0x2C47D86F EQ PUSH2 0x16C JUMPI DUP1 PUSH4 0x42B7CFBD EQ PUSH2 0x17F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x118 PUSH2 0x113 CALLDATASIZE PUSH1 0x4 PUSH2 0x15FE JUMP JUMPDEST PUSH2 0x327 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x156 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x11 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x636F6C6C61746572616C466163746F7273000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x163 SWAP2 SWAP1 PUSH2 0x1686 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x118 PUSH2 0x17A CALLDATASIZE PUSH1 0x4 PUSH2 0x1699 JUMP JUMPDEST PUSH2 0x33B JUMP JUMPDEST PUSH2 0x192 PUSH2 0x18D CALLDATASIZE PUSH1 0x4 PUSH2 0x16B2 JUMP JUMPDEST PUSH2 0x434 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x163 JUMP JUMPDEST PUSH2 0x118 PUSH2 0x671 JUMP JUMPDEST PUSH2 0x118 PUSH2 0x6A3 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x163 JUMP JUMPDEST PUSH2 0x1CC PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1CC JUMP JUMPDEST PUSH2 0x118 PUSH2 0x244 CALLDATASIZE PUSH1 0x4 PUSH2 0x16B2 JUMP JUMPDEST PUSH2 0x75A JUMP JUMPDEST PUSH2 0x118 PUSH2 0x257 CALLDATASIZE PUSH1 0x4 PUSH2 0x15FE JUMP JUMPDEST PUSH2 0x927 JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1CC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x11 DUP2 MSTORE PUSH32 0x636F6C6C61746572616C466163746F7273000000000000000000000000000000 PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE PUSH2 0x2D6 PUSH32 0x8370B9108DC54D549F7F967730058D7047833AA4750D10AC92879DC48E94DB68 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x163 JUMP JUMPDEST PUSH2 0x2D6 PUSH1 0xC9 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x118 PUSH2 0x2FB CALLDATASIZE PUSH1 0x4 PUSH2 0x15FE JUMP JUMPDEST PUSH2 0xAB7 JUMP JUMPDEST PUSH2 0x1CC PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x32F PUSH2 0xB67 JUMP JUMPDEST PUSH2 0x338 DUP2 PUSH2 0xBEA JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x379 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x18 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x7365745361666544656C74614270732875696E74323536290000000000000000 DUP2 MSTORE POP PUSH2 0xD0C JUMP JUMPDEST PUSH2 0x2710 DUP2 GT ISZERO PUSH2 0x3B5 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC514758500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xC9 SLOAD DUP1 DUP3 SUB PUSH2 0x3F1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x925CD79500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xC9 DUP3 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0xA05C0CB0E77DECC6503407C6CA159106B8B001D9FEB7927D08FAD60094A934AB SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x11 DUP2 MSTORE PUSH32 0x636F6C6C61746572616C466163746F7273000000000000000000000000000000 PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE PUSH1 0x0 PUSH32 0x7C8F46EF723AB2AB60806988CFFA728FB87CC55B8AF2EF536D78623B716B2498 PUSH1 0x80 DUP4 ADD CALLDATALOAD ADD PUSH2 0x63F JUMPI PUSH2 0x4A8 PUSH2 0x140 DUP4 ADD PUSH2 0x120 DUP5 ADD PUSH2 0x1708 JUMP JUMPDEST PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND ISZERO PUSH2 0x4C3 JUMPI POP PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D5 PUSH1 0x60 DUP5 ADD PUSH1 0x40 DUP6 ADD PUSH2 0x15FE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x5FE3B567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x51F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x543 SWAP2 SWAP1 PUSH2 0x1725 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x592 PUSH2 0x558 PUSH1 0xA0 DUP8 ADD DUP8 PUSH2 0x1742 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0xDE5 SWAP3 POP POP POP JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x5B3 DUP6 PUSH2 0x5AE PUSH1 0x60 DUP11 ADD PUSH1 0x40 DUP12 ADD PUSH2 0x15FE JUMP JUMPDEST PUSH2 0xE41 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 DUP5 EQ DUP1 ISZERO PUSH2 0x5C5 JUMPI POP DUP1 DUP4 EQ JUMPDEST ISZERO PUSH2 0x5FC JUMPI PUSH1 0x40 MLOAD PUSH32 0x925CD79500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 ISZERO DUP1 PUSH2 0x607 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x619 JUMPI POP PUSH1 0x0 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x623 DUP5 DUP4 PUSH2 0xFD6 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x634 JUMPI POP PUSH2 0x634 DUP4 DUP3 PUSH2 0xFD6 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x80919D7B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x96C553EB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x65 SLOAD CALLER SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 EQ PUSH2 0x751 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C6532537465703A2063616C6C6572206973206E6F742074686520 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E6577206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x338 DUP2 PUSH2 0x1026 JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 AND EQ PUSH2 0x7C9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x3A739DD700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x7DB PUSH1 0x60 DUP4 ADD PUSH1 0x40 DUP5 ADD PUSH2 0x15FE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x5FE3B567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x825 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x849 SWAP2 SWAP1 PUSH2 0x1725 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x85F PUSH2 0x140 DUP5 ADD PUSH2 0x120 DUP6 ADD PUSH2 0x1708 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x11 DUP2 MSTORE PUSH32 0x636F6C6C61746572616C466163746F7273000000000000000000000000000000 PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE SWAP1 POP PUSH32 0x7C8F46EF723AB2AB60806988CFFA728FB87CC55B8AF2EF536D78623B716B2498 PUSH1 0x80 DUP5 ADD CALLDATALOAD ADD PUSH2 0x63F JUMPI PUSH2 0x922 PUSH1 0x20 DUP5 ADD CALLDATALOAD DUP4 PUSH2 0x8DA PUSH1 0x60 DUP8 ADD PUSH1 0x40 DUP9 ADD PUSH2 0x15FE JUMP JUMPDEST DUP5 PUSH2 0x8E8 PUSH1 0xA0 DUP10 ADD DUP10 PUSH2 0x1742 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1057 SWAP3 POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x947 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x961 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x961 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x9ED JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x647920696E697469616C697A6564000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x748 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0xA4B JUMPI PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0xA54 DUP3 PUSH2 0x12E7 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xAB3 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH2 0x428 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xABF PUSH2 0xB67 JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP1 SWAP2 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0xB22 PUSH1 0x33 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0xBE8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x748 JUMP JUMPDEST JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0xC8D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C696420616365737320636F6E74726F6C206D616E61676572206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x748 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 SWAP1 SWAP3 AND DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH32 0x66FD58E82F7B31A2A5C30E0888F3093EFE4E111B00CD2B0C31FE014601293AA0 SWAP2 ADD PUSH2 0x428 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0x40 MLOAD PUSH32 0x18C5E8AB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0xD65 SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x17A7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD82 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xDA6 SWAP2 SWAP1 PUSH2 0x17F3 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0xAB3 JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH32 0x4A3FA29300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x748 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x180E JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD PUSH1 0x40 EQ PUSH2 0xE23 JUMPI PUSH1 0x40 MLOAD PUSH32 0x3BEAD5A900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xE37 SWAP2 SWAP1 PUSH2 0x1850 JUMP JUMPDEST SWAP1 SWAP5 SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xF38 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8E8F294B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 AND SWAP1 PUSH4 0x8E8F294B SWAP1 PUSH1 0x24 ADD PUSH1 0xE0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF03 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF27 SWAP2 SWAP1 PUSH2 0x1874 JUMP JUMPDEST POP SWAP4 SWAP7 POP SWAP1 SWAP5 POP PUSH2 0xFCF SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8E8F294B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 AND SWAP1 PUSH4 0x8E8F294B SWAP1 PUSH1 0x24 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xFA4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xFC8 SWAP2 SWAP1 PUSH2 0x18E7 JUMP JUMPDEST SWAP1 SWAP4 POP SWAP2 POP POP JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP5 GT PUSH2 0xFEF JUMPI PUSH2 0xFEA DUP5 DUP5 PUSH2 0x194B JUMP JUMPDEST PUSH2 0xFF9 JUMP JUMPDEST PUSH2 0xFF9 DUP4 DUP6 PUSH2 0x194B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2710 DUP5 PUSH1 0xC9 SLOAD PUSH2 0x100E SWAP2 SWAP1 PUSH2 0x195E JUMP JUMPDEST PUSH2 0x1018 SWAP2 SWAP1 PUSH2 0x1975 JUMP JUMPDEST SWAP1 SWAP2 GT ISZERO SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND SWAP1 SSTORE PUSH2 0x338 DUP2 PUSH2 0x138F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1063 DUP4 PUSH2 0xDE5 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x11B5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x9159B17700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP5 SWAP1 MSTORE PUSH1 0x64 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP9 AND SWAP1 PUSH4 0x9159B177 SWAP1 PUSH1 0x84 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x114E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1172 SWAP2 SWAP1 PUSH2 0x19B0 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x11AF JUMPI PUSH1 0x40 MLOAD PUSH32 0xF69D209900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x748 JUMP JUMPDEST POP PUSH2 0x128B JUMP JUMPDEST PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND ISZERO PUSH2 0x11FB JUMPI PUSH1 0x40 MLOAD PUSH32 0x2083CD4000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x5CC4FDEB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 DUP3 ADD DUP4 SWAP1 MSTORE DUP8 AND SWAP1 PUSH4 0x5CC4FDEB SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1272 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1286 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND SWAP2 DUP10 SWAP2 PUSH32 0x345175133778C4FDB297DE94CA161A1248998F240BE2AE89B35225D0167E0648 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x137E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x748 JUMP JUMPDEST PUSH2 0x1386 PUSH2 0x1406 JUMP JUMPDEST PUSH2 0x338 DUP2 PUSH2 0x14A5 JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x149D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x748 JUMP JUMPDEST PUSH2 0xBE8 PUSH2 0x153C JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x32F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x748 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x15D3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x748 JUMP JUMPDEST PUSH2 0xBE8 CALLER PUSH2 0x1026 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x338 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1610 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x161B DUP2 PUSH2 0x15DC JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1648 JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x162C JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x161B PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1622 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x16DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH2 0x180 DUP2 DUP6 SUB SLT ISZERO PUSH2 0x161B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x338 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x171A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x161B DUP2 PUSH2 0x16EE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1737 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x161B DUP2 PUSH2 0x15DC JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x1777 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1792 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0xFCF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x17D6 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1622 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x17EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1805 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x161B DUP3 PUSH2 0x17DE JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP7 AND DUP4 MSTORE DUP1 DUP6 AND PUSH1 0x20 DUP5 ADD MSTORE POP PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x1847 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x1622 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1863 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 SWAP1 SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x188F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1898 DUP9 PUSH2 0x17DE JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP9 ADD MLOAD SWAP6 POP PUSH2 0x18AD PUSH1 0x40 DUP10 ADD PUSH2 0x17DE JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD MLOAD SWAP4 POP PUSH1 0x80 DUP9 ADD MLOAD SWAP3 POP PUSH1 0xA0 DUP9 ADD MLOAD PUSH2 0x18CB DUP2 PUSH2 0x16EE JUMP JUMPDEST SWAP2 POP PUSH2 0x18D9 PUSH1 0xC0 DUP10 ADD PUSH2 0x17DE JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x18FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1905 DUP5 PUSH2 0x17DE JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD MLOAD SWAP2 POP PUSH1 0x40 DUP5 ADD MLOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x1020 JUMPI PUSH2 0x1020 PUSH2 0x191C JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x1020 JUMPI PUSH2 0x1020 PUSH2 0x191C JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x19AB JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x19C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP5 0xB3 0xE9 BASEFEE EXP PUSH10 0xF40C7501F05ACD488455 0xA6 0xCB 0xDB DIV GASLIMIT 0xAF 0xD1 0xF6 DUP8 GT PUSH12 0x636361C5C264736F6C634300 ADDMOD NOT STOP CALLER ","sourceMap":"882:10712:61:-:0;;;3781:315;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3863:42;3884:20;3863;:42::i;:::-;-1:-1:-1;;;;;3915:66:61;;;;;3991;;;;4067:22;:20;:22::i;:::-;3781:315;;882:10712;;485:136:47;-1:-1:-1;;;;;548:22:47;;544:75;;589:23;;-1:-1:-1;;;589:23:47;;;;;;;;;;;544:75;485:136;:::o;5928:279:27:-;5996:13;;;;;;;5995:14;5987:66;;;;-1:-1:-1;;;5987:66:27;;696:2:97;5987:66:27;;;678:21:97;735:2;715:18;;;708:30;774:34;754:18;;;747:62;-1:-1:-1;;;825:18:97;;;818:37;872:19;;5987:66:27;;;;;;;;6067:12;;6082:15;6067:12;;;:30;6063:138;;;6113:12;:30;;-1:-1:-1;;6113:30:27;6128:15;6113:30;;;;;;6162:28;;1044:36:97;;;6162:28:27;;1032:2:97;1017:18;6162:28:27;;;;;;;6063:138;5928:279::o;14:177:97:-;93:13;;-1:-1:-1;;;;;135:31:97;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:293::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:52;;;352:1;349;342:12;304:52;375:40;405:9;375:40;:::i;:::-;365:50;;434:49;479:2;468:9;464:18;434:49;:::i;:::-;424:59;;196:293;;;;;:::o;902:184::-;882:10712:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@COLLATERAL_FACTORS_14537":{"entryPoint":null,"id":14537,"parameterSlots":0,"returnSlots":0},"@COLLATERAL_FACTORS_KEY_14546":{"entryPoint":null,"id":14546,"parameterSlots":0,"returnSlots":0},"@CORE_POOL_COMPTROLLER_14550":{"entryPoint":null,"id":14550,"parameterSlots":0,"returnSlots":0},"@RISK_STEWARD_RECEIVER_14554":{"entryPoint":null,"id":14554,"parameterSlots":0,"returnSlots":0},"@__AccessControlled_init_13754":{"entryPoint":4839,"id":13754,"parameterSlots":1,"returnSlots":0},"@__AccessControlled_init_unchained_13766":{"entryPoint":5285,"id":13766,"parameterSlots":1,"returnSlots":0},"@__Ownable2Step_init_5859":{"entryPoint":5126,"id":5859,"parameterSlots":0,"returnSlots":0},"@__Ownable_init_unchained_5985":{"entryPoint":5436,"id":5985,"parameterSlots":0,"returnSlots":0},"@_checkAccessAllowed_13857":{"entryPoint":3340,"id":13857,"parameterSlots":1,"returnSlots":0},"@_checkOwner_6016":{"entryPoint":2919,"id":6016,"parameterSlots":0,"returnSlots":0},"@_decodeAbiEncodedTwoUint256_14975":{"entryPoint":3557,"id":14975,"parameterSlots":1,"returnSlots":2},"@_getCurrentCollateralFactors_14941":{"entryPoint":3649,"id":14941,"parameterSlots":2,"returnSlots":2},"@_isWithinSafeDelta_14513":{"entryPoint":4054,"id":14513,"parameterSlots":2,"returnSlots":1},"@_msgSender_6559":{"entryPoint":null,"id":6559,"parameterSlots":0,"returnSlots":1},"@_setAccessControlManager_13827":{"entryPoint":3050,"id":13827,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_5919":{"entryPoint":4134,"id":5919,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_6073":{"entryPoint":5007,"id":6073,"parameterSlots":1,"returnSlots":0},"@_updateCollateralFactors_14897":{"entryPoint":4183,"id":14897,"parameterSlots":5,"returnSlots":0},"@acceptOwnership_5941":{"entryPoint":1699,"id":5941,"parameterSlots":0,"returnSlots":0},"@accessControlManager_13789":{"entryPoint":null,"id":13789,"parameterSlots":0,"returnSlots":1},"@applyUpdate_14822":{"entryPoint":1882,"id":14822,"parameterSlots":1,"returnSlots":0},"@initialize_14641":{"entryPoint":2343,"id":14641,"parameterSlots":1,"returnSlots":0},"@isContract_6266":{"entryPoint":null,"id":6266,"parameterSlots":1,"returnSlots":1},"@isSafeForDirectExecution_14767":{"entryPoint":1076,"id":14767,"parameterSlots":1,"returnSlots":1},"@owner_6002":{"entryPoint":null,"id":6002,"parameterSlots":0,"returnSlots":1},"@pendingOwner_5882":{"entryPoint":null,"id":5882,"parameterSlots":0,"returnSlots":1},"@renounceOwnership_14476":{"entryPoint":1649,"id":14476,"parameterSlots":0,"returnSlots":0},"@safeDeltaBps_14464":{"entryPoint":null,"id":14464,"parameterSlots":0,"returnSlots":0},"@setAccessControlManager_13779":{"entryPoint":807,"id":13779,"parameterSlots":1,"returnSlots":0},"@setSafeDeltaBps_14681":{"entryPoint":827,"id":14681,"parameterSlots":1,"returnSlots":0},"@transferOwnership_5902":{"entryPoint":2743,"id":5902,"parameterSlots":1,"returnSlots":0},"abi_decode_bool_fromMemory":{"entryPoint":6110,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":5630,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":5925,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":6131,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_boolt_uint256t_boolt_uint256t_uint256t_uint96t_bool_fromMemory":{"entryPoint":6260,"id":null,"parameterSlots":2,"returnSlots":7},"abi_decode_tuple_t_boolt_uint256t_uint256_fromMemory":{"entryPoint":6375,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_struct$_RiskParameterUpdate_$16568_calldata_ptr":{"entryPoint":5810,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":5785,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":6576,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256_fromMemory":{"entryPoint":6224,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint96":{"entryPoint":5896,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_string":{"entryPoint":5666,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":6158,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":6055,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$13903__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_ICorePoolComptroller_$20347__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IRiskStewardReceiver_$17139__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5766,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint96_t_address_t_uint256_t_uint256__to_t_uint96_t_address_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"access_calldata_tail_t_bytes_calldata_ptr":{"entryPoint":5954,"id":null,"parameterSlots":2,"returnSlots":2},"checked_div_t_uint256":{"entryPoint":6517,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":6494,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":6475,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":6428,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":5596,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_uint96":{"entryPoint":5870,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:11554:97","nodeType":"YulBlock","src":"0:11554:97","statements":[{"nativeSrc":"6:3:97","nodeType":"YulBlock","src":"6:3:97","statements":[]},{"body":{"nativeSrc":"59:109:97","nodeType":"YulBlock","src":"59:109:97","statements":[{"body":{"nativeSrc":"146:16:97","nodeType":"YulBlock","src":"146:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"155:1:97","nodeType":"YulLiteral","src":"155:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"158:1:97","nodeType":"YulLiteral","src":"158:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"148:6:97","nodeType":"YulIdentifier","src":"148:6:97"},"nativeSrc":"148:12:97","nodeType":"YulFunctionCall","src":"148:12:97"},"nativeSrc":"148:12:97","nodeType":"YulExpressionStatement","src":"148:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"82:5:97","nodeType":"YulIdentifier","src":"82:5:97"},{"arguments":[{"name":"value","nativeSrc":"93:5:97","nodeType":"YulIdentifier","src":"93:5:97"},{"kind":"number","nativeSrc":"100:42:97","nodeType":"YulLiteral","src":"100:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"89:3:97","nodeType":"YulIdentifier","src":"89:3:97"},"nativeSrc":"89:54:97","nodeType":"YulFunctionCall","src":"89:54:97"}],"functionName":{"name":"eq","nativeSrc":"79:2:97","nodeType":"YulIdentifier","src":"79:2:97"},"nativeSrc":"79:65:97","nodeType":"YulFunctionCall","src":"79:65:97"}],"functionName":{"name":"iszero","nativeSrc":"72:6:97","nodeType":"YulIdentifier","src":"72:6:97"},"nativeSrc":"72:73:97","nodeType":"YulFunctionCall","src":"72:73:97"},"nativeSrc":"69:93:97","nodeType":"YulIf","src":"69:93:97"}]},"name":"validator_revert_address","nativeSrc":"14:154:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"48:5:97","nodeType":"YulTypedName","src":"48:5:97","type":""}],"src":"14:154:97"},{"body":{"nativeSrc":"243:177:97","nodeType":"YulBlock","src":"243:177:97","statements":[{"body":{"nativeSrc":"289:16:97","nodeType":"YulBlock","src":"289:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"298:1:97","nodeType":"YulLiteral","src":"298:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"301:1:97","nodeType":"YulLiteral","src":"301:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"291:6:97","nodeType":"YulIdentifier","src":"291:6:97"},"nativeSrc":"291:12:97","nodeType":"YulFunctionCall","src":"291:12:97"},"nativeSrc":"291:12:97","nodeType":"YulExpressionStatement","src":"291:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"264:7:97","nodeType":"YulIdentifier","src":"264:7:97"},{"name":"headStart","nativeSrc":"273:9:97","nodeType":"YulIdentifier","src":"273:9:97"}],"functionName":{"name":"sub","nativeSrc":"260:3:97","nodeType":"YulIdentifier","src":"260:3:97"},"nativeSrc":"260:23:97","nodeType":"YulFunctionCall","src":"260:23:97"},{"kind":"number","nativeSrc":"285:2:97","nodeType":"YulLiteral","src":"285:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"256:3:97","nodeType":"YulIdentifier","src":"256:3:97"},"nativeSrc":"256:32:97","nodeType":"YulFunctionCall","src":"256:32:97"},"nativeSrc":"253:52:97","nodeType":"YulIf","src":"253:52:97"},{"nativeSrc":"314:36:97","nodeType":"YulVariableDeclaration","src":"314:36:97","value":{"arguments":[{"name":"headStart","nativeSrc":"340:9:97","nodeType":"YulIdentifier","src":"340:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"327:12:97","nodeType":"YulIdentifier","src":"327:12:97"},"nativeSrc":"327:23:97","nodeType":"YulFunctionCall","src":"327:23:97"},"variables":[{"name":"value","nativeSrc":"318:5:97","nodeType":"YulTypedName","src":"318:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"384:5:97","nodeType":"YulIdentifier","src":"384:5:97"}],"functionName":{"name":"validator_revert_address","nativeSrc":"359:24:97","nodeType":"YulIdentifier","src":"359:24:97"},"nativeSrc":"359:31:97","nodeType":"YulFunctionCall","src":"359:31:97"},"nativeSrc":"359:31:97","nodeType":"YulExpressionStatement","src":"359:31:97"},{"nativeSrc":"399:15:97","nodeType":"YulAssignment","src":"399:15:97","value":{"name":"value","nativeSrc":"409:5:97","nodeType":"YulIdentifier","src":"409:5:97"},"variableNames":[{"name":"value0","nativeSrc":"399:6:97","nodeType":"YulIdentifier","src":"399:6:97"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"173:247:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"209:9:97","nodeType":"YulTypedName","src":"209:9:97","type":""},{"name":"dataEnd","nativeSrc":"220:7:97","nodeType":"YulTypedName","src":"220:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"232:6:97","nodeType":"YulTypedName","src":"232:6:97","type":""}],"src":"173:247:97"},{"body":{"nativeSrc":"475:432:97","nodeType":"YulBlock","src":"475:432:97","statements":[{"nativeSrc":"485:26:97","nodeType":"YulVariableDeclaration","src":"485:26:97","value":{"arguments":[{"name":"value","nativeSrc":"505:5:97","nodeType":"YulIdentifier","src":"505:5:97"}],"functionName":{"name":"mload","nativeSrc":"499:5:97","nodeType":"YulIdentifier","src":"499:5:97"},"nativeSrc":"499:12:97","nodeType":"YulFunctionCall","src":"499:12:97"},"variables":[{"name":"length","nativeSrc":"489:6:97","nodeType":"YulTypedName","src":"489:6:97","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"527:3:97","nodeType":"YulIdentifier","src":"527:3:97"},{"name":"length","nativeSrc":"532:6:97","nodeType":"YulIdentifier","src":"532:6:97"}],"functionName":{"name":"mstore","nativeSrc":"520:6:97","nodeType":"YulIdentifier","src":"520:6:97"},"nativeSrc":"520:19:97","nodeType":"YulFunctionCall","src":"520:19:97"},"nativeSrc":"520:19:97","nodeType":"YulExpressionStatement","src":"520:19:97"},{"nativeSrc":"548:10:97","nodeType":"YulVariableDeclaration","src":"548:10:97","value":{"kind":"number","nativeSrc":"557:1:97","nodeType":"YulLiteral","src":"557:1:97","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"552:1:97","nodeType":"YulTypedName","src":"552:1:97","type":""}]},{"body":{"nativeSrc":"619:110:97","nodeType":"YulBlock","src":"619:110:97","statements":[{"nativeSrc":"633:14:97","nodeType":"YulVariableDeclaration","src":"633:14:97","value":{"kind":"number","nativeSrc":"643:4:97","nodeType":"YulLiteral","src":"643:4:97","type":"","value":"0x20"},"variables":[{"name":"_1","nativeSrc":"637:2:97","nodeType":"YulTypedName","src":"637:2:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"675:3:97","nodeType":"YulIdentifier","src":"675:3:97"},{"name":"i","nativeSrc":"680:1:97","nodeType":"YulIdentifier","src":"680:1:97"}],"functionName":{"name":"add","nativeSrc":"671:3:97","nodeType":"YulIdentifier","src":"671:3:97"},"nativeSrc":"671:11:97","nodeType":"YulFunctionCall","src":"671:11:97"},{"name":"_1","nativeSrc":"684:2:97","nodeType":"YulIdentifier","src":"684:2:97"}],"functionName":{"name":"add","nativeSrc":"667:3:97","nodeType":"YulIdentifier","src":"667:3:97"},"nativeSrc":"667:20:97","nodeType":"YulFunctionCall","src":"667:20:97"},{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"703:5:97","nodeType":"YulIdentifier","src":"703:5:97"},{"name":"i","nativeSrc":"710:1:97","nodeType":"YulIdentifier","src":"710:1:97"}],"functionName":{"name":"add","nativeSrc":"699:3:97","nodeType":"YulIdentifier","src":"699:3:97"},"nativeSrc":"699:13:97","nodeType":"YulFunctionCall","src":"699:13:97"},{"name":"_1","nativeSrc":"714:2:97","nodeType":"YulIdentifier","src":"714:2:97"}],"functionName":{"name":"add","nativeSrc":"695:3:97","nodeType":"YulIdentifier","src":"695:3:97"},"nativeSrc":"695:22:97","nodeType":"YulFunctionCall","src":"695:22:97"}],"functionName":{"name":"mload","nativeSrc":"689:5:97","nodeType":"YulIdentifier","src":"689:5:97"},"nativeSrc":"689:29:97","nodeType":"YulFunctionCall","src":"689:29:97"}],"functionName":{"name":"mstore","nativeSrc":"660:6:97","nodeType":"YulIdentifier","src":"660:6:97"},"nativeSrc":"660:59:97","nodeType":"YulFunctionCall","src":"660:59:97"},"nativeSrc":"660:59:97","nodeType":"YulExpressionStatement","src":"660:59:97"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"578:1:97","nodeType":"YulIdentifier","src":"578:1:97"},{"name":"length","nativeSrc":"581:6:97","nodeType":"YulIdentifier","src":"581:6:97"}],"functionName":{"name":"lt","nativeSrc":"575:2:97","nodeType":"YulIdentifier","src":"575:2:97"},"nativeSrc":"575:13:97","nodeType":"YulFunctionCall","src":"575:13:97"},"nativeSrc":"567:162:97","nodeType":"YulForLoop","post":{"nativeSrc":"589:21:97","nodeType":"YulBlock","src":"589:21:97","statements":[{"nativeSrc":"591:17:97","nodeType":"YulAssignment","src":"591:17:97","value":{"arguments":[{"name":"i","nativeSrc":"600:1:97","nodeType":"YulIdentifier","src":"600:1:97"},{"kind":"number","nativeSrc":"603:4:97","nodeType":"YulLiteral","src":"603:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"596:3:97","nodeType":"YulIdentifier","src":"596:3:97"},"nativeSrc":"596:12:97","nodeType":"YulFunctionCall","src":"596:12:97"},"variableNames":[{"name":"i","nativeSrc":"591:1:97","nodeType":"YulIdentifier","src":"591:1:97"}]}]},"pre":{"nativeSrc":"571:3:97","nodeType":"YulBlock","src":"571:3:97","statements":[]},"src":"567:162:97"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"753:3:97","nodeType":"YulIdentifier","src":"753:3:97"},{"name":"length","nativeSrc":"758:6:97","nodeType":"YulIdentifier","src":"758:6:97"}],"functionName":{"name":"add","nativeSrc":"749:3:97","nodeType":"YulIdentifier","src":"749:3:97"},"nativeSrc":"749:16:97","nodeType":"YulFunctionCall","src":"749:16:97"},{"kind":"number","nativeSrc":"767:4:97","nodeType":"YulLiteral","src":"767:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"745:3:97","nodeType":"YulIdentifier","src":"745:3:97"},"nativeSrc":"745:27:97","nodeType":"YulFunctionCall","src":"745:27:97"},{"kind":"number","nativeSrc":"774:1:97","nodeType":"YulLiteral","src":"774:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"738:6:97","nodeType":"YulIdentifier","src":"738:6:97"},"nativeSrc":"738:38:97","nodeType":"YulFunctionCall","src":"738:38:97"},"nativeSrc":"738:38:97","nodeType":"YulExpressionStatement","src":"738:38:97"},{"nativeSrc":"785:116:97","nodeType":"YulAssignment","src":"785:116:97","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"800:3:97","nodeType":"YulIdentifier","src":"800:3:97"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"813:6:97","nodeType":"YulIdentifier","src":"813:6:97"},{"kind":"number","nativeSrc":"821:2:97","nodeType":"YulLiteral","src":"821:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"809:3:97","nodeType":"YulIdentifier","src":"809:3:97"},"nativeSrc":"809:15:97","nodeType":"YulFunctionCall","src":"809:15:97"},{"kind":"number","nativeSrc":"826:66:97","nodeType":"YulLiteral","src":"826:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"805:3:97","nodeType":"YulIdentifier","src":"805:3:97"},"nativeSrc":"805:88:97","nodeType":"YulFunctionCall","src":"805:88:97"}],"functionName":{"name":"add","nativeSrc":"796:3:97","nodeType":"YulIdentifier","src":"796:3:97"},"nativeSrc":"796:98:97","nodeType":"YulFunctionCall","src":"796:98:97"},{"kind":"number","nativeSrc":"896:4:97","nodeType":"YulLiteral","src":"896:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"792:3:97","nodeType":"YulIdentifier","src":"792:3:97"},"nativeSrc":"792:109:97","nodeType":"YulFunctionCall","src":"792:109:97"},"variableNames":[{"name":"end","nativeSrc":"785:3:97","nodeType":"YulIdentifier","src":"785:3:97"}]}]},"name":"abi_encode_string","nativeSrc":"425:482:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"452:5:97","nodeType":"YulTypedName","src":"452:5:97","type":""},{"name":"pos","nativeSrc":"459:3:97","nodeType":"YulTypedName","src":"459:3:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"467:3:97","nodeType":"YulTypedName","src":"467:3:97","type":""}],"src":"425:482:97"},{"body":{"nativeSrc":"1033:99:97","nodeType":"YulBlock","src":"1033:99:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1050:9:97","nodeType":"YulIdentifier","src":"1050:9:97"},{"kind":"number","nativeSrc":"1061:2:97","nodeType":"YulLiteral","src":"1061:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"1043:6:97","nodeType":"YulIdentifier","src":"1043:6:97"},"nativeSrc":"1043:21:97","nodeType":"YulFunctionCall","src":"1043:21:97"},"nativeSrc":"1043:21:97","nodeType":"YulExpressionStatement","src":"1043:21:97"},{"nativeSrc":"1073:53:97","nodeType":"YulAssignment","src":"1073:53:97","value":{"arguments":[{"name":"value0","nativeSrc":"1099:6:97","nodeType":"YulIdentifier","src":"1099:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"1111:9:97","nodeType":"YulIdentifier","src":"1111:9:97"},{"kind":"number","nativeSrc":"1122:2:97","nodeType":"YulLiteral","src":"1122:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1107:3:97","nodeType":"YulIdentifier","src":"1107:3:97"},"nativeSrc":"1107:18:97","nodeType":"YulFunctionCall","src":"1107:18:97"}],"functionName":{"name":"abi_encode_string","nativeSrc":"1081:17:97","nodeType":"YulIdentifier","src":"1081:17:97"},"nativeSrc":"1081:45:97","nodeType":"YulFunctionCall","src":"1081:45:97"},"variableNames":[{"name":"tail","nativeSrc":"1073:4:97","nodeType":"YulIdentifier","src":"1073:4:97"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"912:220:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1002:9:97","nodeType":"YulTypedName","src":"1002:9:97","type":""},{"name":"value0","nativeSrc":"1013:6:97","nodeType":"YulTypedName","src":"1013:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1024:4:97","nodeType":"YulTypedName","src":"1024:4:97","type":""}],"src":"912:220:97"},{"body":{"nativeSrc":"1207:110:97","nodeType":"YulBlock","src":"1207:110:97","statements":[{"body":{"nativeSrc":"1253:16:97","nodeType":"YulBlock","src":"1253:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1262:1:97","nodeType":"YulLiteral","src":"1262:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1265:1:97","nodeType":"YulLiteral","src":"1265:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1255:6:97","nodeType":"YulIdentifier","src":"1255:6:97"},"nativeSrc":"1255:12:97","nodeType":"YulFunctionCall","src":"1255:12:97"},"nativeSrc":"1255:12:97","nodeType":"YulExpressionStatement","src":"1255:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1228:7:97","nodeType":"YulIdentifier","src":"1228:7:97"},{"name":"headStart","nativeSrc":"1237:9:97","nodeType":"YulIdentifier","src":"1237:9:97"}],"functionName":{"name":"sub","nativeSrc":"1224:3:97","nodeType":"YulIdentifier","src":"1224:3:97"},"nativeSrc":"1224:23:97","nodeType":"YulFunctionCall","src":"1224:23:97"},{"kind":"number","nativeSrc":"1249:2:97","nodeType":"YulLiteral","src":"1249:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1220:3:97","nodeType":"YulIdentifier","src":"1220:3:97"},"nativeSrc":"1220:32:97","nodeType":"YulFunctionCall","src":"1220:32:97"},"nativeSrc":"1217:52:97","nodeType":"YulIf","src":"1217:52:97"},{"nativeSrc":"1278:33:97","nodeType":"YulAssignment","src":"1278:33:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1301:9:97","nodeType":"YulIdentifier","src":"1301:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"1288:12:97","nodeType":"YulIdentifier","src":"1288:12:97"},"nativeSrc":"1288:23:97","nodeType":"YulFunctionCall","src":"1288:23:97"},"variableNames":[{"name":"value0","nativeSrc":"1278:6:97","nodeType":"YulIdentifier","src":"1278:6:97"}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"1137:180:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1173:9:97","nodeType":"YulTypedName","src":"1173:9:97","type":""},{"name":"dataEnd","nativeSrc":"1184:7:97","nodeType":"YulTypedName","src":"1184:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1196:6:97","nodeType":"YulTypedName","src":"1196:6:97","type":""}],"src":"1137:180:97"},{"body":{"nativeSrc":"1432:290:97","nodeType":"YulBlock","src":"1432:290:97","statements":[{"body":{"nativeSrc":"1478:16:97","nodeType":"YulBlock","src":"1478:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1487:1:97","nodeType":"YulLiteral","src":"1487:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1490:1:97","nodeType":"YulLiteral","src":"1490:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1480:6:97","nodeType":"YulIdentifier","src":"1480:6:97"},"nativeSrc":"1480:12:97","nodeType":"YulFunctionCall","src":"1480:12:97"},"nativeSrc":"1480:12:97","nodeType":"YulExpressionStatement","src":"1480:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1453:7:97","nodeType":"YulIdentifier","src":"1453:7:97"},{"name":"headStart","nativeSrc":"1462:9:97","nodeType":"YulIdentifier","src":"1462:9:97"}],"functionName":{"name":"sub","nativeSrc":"1449:3:97","nodeType":"YulIdentifier","src":"1449:3:97"},"nativeSrc":"1449:23:97","nodeType":"YulFunctionCall","src":"1449:23:97"},{"kind":"number","nativeSrc":"1474:2:97","nodeType":"YulLiteral","src":"1474:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1445:3:97","nodeType":"YulIdentifier","src":"1445:3:97"},"nativeSrc":"1445:32:97","nodeType":"YulFunctionCall","src":"1445:32:97"},"nativeSrc":"1442:52:97","nodeType":"YulIf","src":"1442:52:97"},{"nativeSrc":"1503:37:97","nodeType":"YulVariableDeclaration","src":"1503:37:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1530:9:97","nodeType":"YulIdentifier","src":"1530:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"1517:12:97","nodeType":"YulIdentifier","src":"1517:12:97"},"nativeSrc":"1517:23:97","nodeType":"YulFunctionCall","src":"1517:23:97"},"variables":[{"name":"offset","nativeSrc":"1507:6:97","nodeType":"YulTypedName","src":"1507:6:97","type":""}]},{"body":{"nativeSrc":"1583:16:97","nodeType":"YulBlock","src":"1583:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1592:1:97","nodeType":"YulLiteral","src":"1592:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1595:1:97","nodeType":"YulLiteral","src":"1595:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1585:6:97","nodeType":"YulIdentifier","src":"1585:6:97"},"nativeSrc":"1585:12:97","nodeType":"YulFunctionCall","src":"1585:12:97"},"nativeSrc":"1585:12:97","nodeType":"YulExpressionStatement","src":"1585:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"1555:6:97","nodeType":"YulIdentifier","src":"1555:6:97"},{"kind":"number","nativeSrc":"1563:18:97","nodeType":"YulLiteral","src":"1563:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1552:2:97","nodeType":"YulIdentifier","src":"1552:2:97"},"nativeSrc":"1552:30:97","nodeType":"YulFunctionCall","src":"1552:30:97"},"nativeSrc":"1549:50:97","nodeType":"YulIf","src":"1549:50:97"},{"nativeSrc":"1608:32:97","nodeType":"YulVariableDeclaration","src":"1608:32:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1622:9:97","nodeType":"YulIdentifier","src":"1622:9:97"},{"name":"offset","nativeSrc":"1633:6:97","nodeType":"YulIdentifier","src":"1633:6:97"}],"functionName":{"name":"add","nativeSrc":"1618:3:97","nodeType":"YulIdentifier","src":"1618:3:97"},"nativeSrc":"1618:22:97","nodeType":"YulFunctionCall","src":"1618:22:97"},"variables":[{"name":"_1","nativeSrc":"1612:2:97","nodeType":"YulTypedName","src":"1612:2:97","type":""}]},{"body":{"nativeSrc":"1679:16:97","nodeType":"YulBlock","src":"1679:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1688:1:97","nodeType":"YulLiteral","src":"1688:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1691:1:97","nodeType":"YulLiteral","src":"1691:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1681:6:97","nodeType":"YulIdentifier","src":"1681:6:97"},"nativeSrc":"1681:12:97","nodeType":"YulFunctionCall","src":"1681:12:97"},"nativeSrc":"1681:12:97","nodeType":"YulExpressionStatement","src":"1681:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1660:7:97","nodeType":"YulIdentifier","src":"1660:7:97"},{"name":"_1","nativeSrc":"1669:2:97","nodeType":"YulIdentifier","src":"1669:2:97"}],"functionName":{"name":"sub","nativeSrc":"1656:3:97","nodeType":"YulIdentifier","src":"1656:3:97"},"nativeSrc":"1656:16:97","nodeType":"YulFunctionCall","src":"1656:16:97"},{"kind":"number","nativeSrc":"1674:3:97","nodeType":"YulLiteral","src":"1674:3:97","type":"","value":"384"}],"functionName":{"name":"slt","nativeSrc":"1652:3:97","nodeType":"YulIdentifier","src":"1652:3:97"},"nativeSrc":"1652:26:97","nodeType":"YulFunctionCall","src":"1652:26:97"},"nativeSrc":"1649:46:97","nodeType":"YulIf","src":"1649:46:97"},{"nativeSrc":"1704:12:97","nodeType":"YulAssignment","src":"1704:12:97","value":{"name":"_1","nativeSrc":"1714:2:97","nodeType":"YulIdentifier","src":"1714:2:97"},"variableNames":[{"name":"value0","nativeSrc":"1704:6:97","nodeType":"YulIdentifier","src":"1704:6:97"}]}]},"name":"abi_decode_tuple_t_struct$_RiskParameterUpdate_$16568_calldata_ptr","nativeSrc":"1322:400:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1398:9:97","nodeType":"YulTypedName","src":"1398:9:97","type":""},{"name":"dataEnd","nativeSrc":"1409:7:97","nodeType":"YulTypedName","src":"1409:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1421:6:97","nodeType":"YulTypedName","src":"1421:6:97","type":""}],"src":"1322:400:97"},{"body":{"nativeSrc":"1822:92:97","nodeType":"YulBlock","src":"1822:92:97","statements":[{"nativeSrc":"1832:26:97","nodeType":"YulAssignment","src":"1832:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1844:9:97","nodeType":"YulIdentifier","src":"1844:9:97"},{"kind":"number","nativeSrc":"1855:2:97","nodeType":"YulLiteral","src":"1855:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1840:3:97","nodeType":"YulIdentifier","src":"1840:3:97"},"nativeSrc":"1840:18:97","nodeType":"YulFunctionCall","src":"1840:18:97"},"variableNames":[{"name":"tail","nativeSrc":"1832:4:97","nodeType":"YulIdentifier","src":"1832:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1874:9:97","nodeType":"YulIdentifier","src":"1874:9:97"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"1899:6:97","nodeType":"YulIdentifier","src":"1899:6:97"}],"functionName":{"name":"iszero","nativeSrc":"1892:6:97","nodeType":"YulIdentifier","src":"1892:6:97"},"nativeSrc":"1892:14:97","nodeType":"YulFunctionCall","src":"1892:14:97"}],"functionName":{"name":"iszero","nativeSrc":"1885:6:97","nodeType":"YulIdentifier","src":"1885:6:97"},"nativeSrc":"1885:22:97","nodeType":"YulFunctionCall","src":"1885:22:97"}],"functionName":{"name":"mstore","nativeSrc":"1867:6:97","nodeType":"YulIdentifier","src":"1867:6:97"},"nativeSrc":"1867:41:97","nodeType":"YulFunctionCall","src":"1867:41:97"},"nativeSrc":"1867:41:97","nodeType":"YulExpressionStatement","src":"1867:41:97"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1727:187:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1791:9:97","nodeType":"YulTypedName","src":"1791:9:97","type":""},{"name":"value0","nativeSrc":"1802:6:97","nodeType":"YulTypedName","src":"1802:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1813:4:97","nodeType":"YulTypedName","src":"1813:4:97","type":""}],"src":"1727:187:97"},{"body":{"nativeSrc":"2020:125:97","nodeType":"YulBlock","src":"2020:125:97","statements":[{"nativeSrc":"2030:26:97","nodeType":"YulAssignment","src":"2030:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2042:9:97","nodeType":"YulIdentifier","src":"2042:9:97"},{"kind":"number","nativeSrc":"2053:2:97","nodeType":"YulLiteral","src":"2053:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2038:3:97","nodeType":"YulIdentifier","src":"2038:3:97"},"nativeSrc":"2038:18:97","nodeType":"YulFunctionCall","src":"2038:18:97"},"variableNames":[{"name":"tail","nativeSrc":"2030:4:97","nodeType":"YulIdentifier","src":"2030:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2072:9:97","nodeType":"YulIdentifier","src":"2072:9:97"},{"arguments":[{"name":"value0","nativeSrc":"2087:6:97","nodeType":"YulIdentifier","src":"2087:6:97"},{"kind":"number","nativeSrc":"2095:42:97","nodeType":"YulLiteral","src":"2095:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"2083:3:97","nodeType":"YulIdentifier","src":"2083:3:97"},"nativeSrc":"2083:55:97","nodeType":"YulFunctionCall","src":"2083:55:97"}],"functionName":{"name":"mstore","nativeSrc":"2065:6:97","nodeType":"YulIdentifier","src":"2065:6:97"},"nativeSrc":"2065:74:97","nodeType":"YulFunctionCall","src":"2065:74:97"},"nativeSrc":"2065:74:97","nodeType":"YulExpressionStatement","src":"2065:74:97"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"1919:226:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1989:9:97","nodeType":"YulTypedName","src":"1989:9:97","type":""},{"name":"value0","nativeSrc":"2000:6:97","nodeType":"YulTypedName","src":"2000:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2011:4:97","nodeType":"YulTypedName","src":"2011:4:97","type":""}],"src":"1919:226:97"},{"body":{"nativeSrc":"2281:125:97","nodeType":"YulBlock","src":"2281:125:97","statements":[{"nativeSrc":"2291:26:97","nodeType":"YulAssignment","src":"2291:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2303:9:97","nodeType":"YulIdentifier","src":"2303:9:97"},{"kind":"number","nativeSrc":"2314:2:97","nodeType":"YulLiteral","src":"2314:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2299:3:97","nodeType":"YulIdentifier","src":"2299:3:97"},"nativeSrc":"2299:18:97","nodeType":"YulFunctionCall","src":"2299:18:97"},"variableNames":[{"name":"tail","nativeSrc":"2291:4:97","nodeType":"YulIdentifier","src":"2291:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2333:9:97","nodeType":"YulIdentifier","src":"2333:9:97"},{"arguments":[{"name":"value0","nativeSrc":"2348:6:97","nodeType":"YulIdentifier","src":"2348:6:97"},{"kind":"number","nativeSrc":"2356:42:97","nodeType":"YulLiteral","src":"2356:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"2344:3:97","nodeType":"YulIdentifier","src":"2344:3:97"},"nativeSrc":"2344:55:97","nodeType":"YulFunctionCall","src":"2344:55:97"}],"functionName":{"name":"mstore","nativeSrc":"2326:6:97","nodeType":"YulIdentifier","src":"2326:6:97"},"nativeSrc":"2326:74:97","nodeType":"YulFunctionCall","src":"2326:74:97"},"nativeSrc":"2326:74:97","nodeType":"YulExpressionStatement","src":"2326:74:97"}]},"name":"abi_encode_tuple_t_contract$_IRiskStewardReceiver_$17139__to_t_address__fromStack_reversed","nativeSrc":"2150:256:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2250:9:97","nodeType":"YulTypedName","src":"2250:9:97","type":""},{"name":"value0","nativeSrc":"2261:6:97","nodeType":"YulTypedName","src":"2261:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2272:4:97","nodeType":"YulTypedName","src":"2272:4:97","type":""}],"src":"2150:256:97"},{"body":{"nativeSrc":"2545:125:97","nodeType":"YulBlock","src":"2545:125:97","statements":[{"nativeSrc":"2555:26:97","nodeType":"YulAssignment","src":"2555:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2567:9:97","nodeType":"YulIdentifier","src":"2567:9:97"},{"kind":"number","nativeSrc":"2578:2:97","nodeType":"YulLiteral","src":"2578:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2563:3:97","nodeType":"YulIdentifier","src":"2563:3:97"},"nativeSrc":"2563:18:97","nodeType":"YulFunctionCall","src":"2563:18:97"},"variableNames":[{"name":"tail","nativeSrc":"2555:4:97","nodeType":"YulIdentifier","src":"2555:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2597:9:97","nodeType":"YulIdentifier","src":"2597:9:97"},{"arguments":[{"name":"value0","nativeSrc":"2612:6:97","nodeType":"YulIdentifier","src":"2612:6:97"},{"kind":"number","nativeSrc":"2620:42:97","nodeType":"YulLiteral","src":"2620:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"2608:3:97","nodeType":"YulIdentifier","src":"2608:3:97"},"nativeSrc":"2608:55:97","nodeType":"YulFunctionCall","src":"2608:55:97"}],"functionName":{"name":"mstore","nativeSrc":"2590:6:97","nodeType":"YulIdentifier","src":"2590:6:97"},"nativeSrc":"2590:74:97","nodeType":"YulFunctionCall","src":"2590:74:97"},"nativeSrc":"2590:74:97","nodeType":"YulExpressionStatement","src":"2590:74:97"}]},"name":"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$13903__to_t_address__fromStack_reversed","nativeSrc":"2411:259:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2514:9:97","nodeType":"YulTypedName","src":"2514:9:97","type":""},{"name":"value0","nativeSrc":"2525:6:97","nodeType":"YulTypedName","src":"2525:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2536:4:97","nodeType":"YulTypedName","src":"2536:4:97","type":""}],"src":"2411:259:97"},{"body":{"nativeSrc":"2776:76:97","nodeType":"YulBlock","src":"2776:76:97","statements":[{"nativeSrc":"2786:26:97","nodeType":"YulAssignment","src":"2786:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2798:9:97","nodeType":"YulIdentifier","src":"2798:9:97"},{"kind":"number","nativeSrc":"2809:2:97","nodeType":"YulLiteral","src":"2809:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2794:3:97","nodeType":"YulIdentifier","src":"2794:3:97"},"nativeSrc":"2794:18:97","nodeType":"YulFunctionCall","src":"2794:18:97"},"variableNames":[{"name":"tail","nativeSrc":"2786:4:97","nodeType":"YulIdentifier","src":"2786:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2828:9:97","nodeType":"YulIdentifier","src":"2828:9:97"},{"name":"value0","nativeSrc":"2839:6:97","nodeType":"YulIdentifier","src":"2839:6:97"}],"functionName":{"name":"mstore","nativeSrc":"2821:6:97","nodeType":"YulIdentifier","src":"2821:6:97"},"nativeSrc":"2821:25:97","nodeType":"YulFunctionCall","src":"2821:25:97"},"nativeSrc":"2821:25:97","nodeType":"YulExpressionStatement","src":"2821:25:97"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"2675:177:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2745:9:97","nodeType":"YulTypedName","src":"2745:9:97","type":""},{"name":"value0","nativeSrc":"2756:6:97","nodeType":"YulTypedName","src":"2756:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2767:4:97","nodeType":"YulTypedName","src":"2767:4:97","type":""}],"src":"2675:177:97"},{"body":{"nativeSrc":"2958:76:97","nodeType":"YulBlock","src":"2958:76:97","statements":[{"nativeSrc":"2968:26:97","nodeType":"YulAssignment","src":"2968:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2980:9:97","nodeType":"YulIdentifier","src":"2980:9:97"},{"kind":"number","nativeSrc":"2991:2:97","nodeType":"YulLiteral","src":"2991:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2976:3:97","nodeType":"YulIdentifier","src":"2976:3:97"},"nativeSrc":"2976:18:97","nodeType":"YulFunctionCall","src":"2976:18:97"},"variableNames":[{"name":"tail","nativeSrc":"2968:4:97","nodeType":"YulIdentifier","src":"2968:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3010:9:97","nodeType":"YulIdentifier","src":"3010:9:97"},{"name":"value0","nativeSrc":"3021:6:97","nodeType":"YulIdentifier","src":"3021:6:97"}],"functionName":{"name":"mstore","nativeSrc":"3003:6:97","nodeType":"YulIdentifier","src":"3003:6:97"},"nativeSrc":"3003:25:97","nodeType":"YulFunctionCall","src":"3003:25:97"},"nativeSrc":"3003:25:97","nodeType":"YulExpressionStatement","src":"3003:25:97"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"2857:177:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2927:9:97","nodeType":"YulTypedName","src":"2927:9:97","type":""},{"name":"value0","nativeSrc":"2938:6:97","nodeType":"YulTypedName","src":"2938:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2949:4:97","nodeType":"YulTypedName","src":"2949:4:97","type":""}],"src":"2857:177:97"},{"body":{"nativeSrc":"3170:125:97","nodeType":"YulBlock","src":"3170:125:97","statements":[{"nativeSrc":"3180:26:97","nodeType":"YulAssignment","src":"3180:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"3192:9:97","nodeType":"YulIdentifier","src":"3192:9:97"},{"kind":"number","nativeSrc":"3203:2:97","nodeType":"YulLiteral","src":"3203:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3188:3:97","nodeType":"YulIdentifier","src":"3188:3:97"},"nativeSrc":"3188:18:97","nodeType":"YulFunctionCall","src":"3188:18:97"},"variableNames":[{"name":"tail","nativeSrc":"3180:4:97","nodeType":"YulIdentifier","src":"3180:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3222:9:97","nodeType":"YulIdentifier","src":"3222:9:97"},{"arguments":[{"name":"value0","nativeSrc":"3237:6:97","nodeType":"YulIdentifier","src":"3237:6:97"},{"kind":"number","nativeSrc":"3245:42:97","nodeType":"YulLiteral","src":"3245:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"3233:3:97","nodeType":"YulIdentifier","src":"3233:3:97"},"nativeSrc":"3233:55:97","nodeType":"YulFunctionCall","src":"3233:55:97"}],"functionName":{"name":"mstore","nativeSrc":"3215:6:97","nodeType":"YulIdentifier","src":"3215:6:97"},"nativeSrc":"3215:74:97","nodeType":"YulFunctionCall","src":"3215:74:97"},"nativeSrc":"3215:74:97","nodeType":"YulExpressionStatement","src":"3215:74:97"}]},"name":"abi_encode_tuple_t_contract$_ICorePoolComptroller_$20347__to_t_address__fromStack_reversed","nativeSrc":"3039:256:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3139:9:97","nodeType":"YulTypedName","src":"3139:9:97","type":""},{"name":"value0","nativeSrc":"3150:6:97","nodeType":"YulTypedName","src":"3150:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3161:4:97","nodeType":"YulTypedName","src":"3161:4:97","type":""}],"src":"3039:256:97"},{"body":{"nativeSrc":"3429:119:97","nodeType":"YulBlock","src":"3429:119:97","statements":[{"nativeSrc":"3439:26:97","nodeType":"YulAssignment","src":"3439:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"3451:9:97","nodeType":"YulIdentifier","src":"3451:9:97"},{"kind":"number","nativeSrc":"3462:2:97","nodeType":"YulLiteral","src":"3462:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3447:3:97","nodeType":"YulIdentifier","src":"3447:3:97"},"nativeSrc":"3447:18:97","nodeType":"YulFunctionCall","src":"3447:18:97"},"variableNames":[{"name":"tail","nativeSrc":"3439:4:97","nodeType":"YulIdentifier","src":"3439:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3481:9:97","nodeType":"YulIdentifier","src":"3481:9:97"},{"name":"value0","nativeSrc":"3492:6:97","nodeType":"YulIdentifier","src":"3492:6:97"}],"functionName":{"name":"mstore","nativeSrc":"3474:6:97","nodeType":"YulIdentifier","src":"3474:6:97"},"nativeSrc":"3474:25:97","nodeType":"YulFunctionCall","src":"3474:25:97"},"nativeSrc":"3474:25:97","nodeType":"YulExpressionStatement","src":"3474:25:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3519:9:97","nodeType":"YulIdentifier","src":"3519:9:97"},{"kind":"number","nativeSrc":"3530:2:97","nodeType":"YulLiteral","src":"3530:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3515:3:97","nodeType":"YulIdentifier","src":"3515:3:97"},"nativeSrc":"3515:18:97","nodeType":"YulFunctionCall","src":"3515:18:97"},{"name":"value1","nativeSrc":"3535:6:97","nodeType":"YulIdentifier","src":"3535:6:97"}],"functionName":{"name":"mstore","nativeSrc":"3508:6:97","nodeType":"YulIdentifier","src":"3508:6:97"},"nativeSrc":"3508:34:97","nodeType":"YulFunctionCall","src":"3508:34:97"},"nativeSrc":"3508:34:97","nodeType":"YulExpressionStatement","src":"3508:34:97"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"3300:248:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3390:9:97","nodeType":"YulTypedName","src":"3390:9:97","type":""},{"name":"value1","nativeSrc":"3401:6:97","nodeType":"YulTypedName","src":"3401:6:97","type":""},{"name":"value0","nativeSrc":"3409:6:97","nodeType":"YulTypedName","src":"3409:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3420:4:97","nodeType":"YulTypedName","src":"3420:4:97","type":""}],"src":"3300:248:97"},{"body":{"nativeSrc":"3597:93:97","nodeType":"YulBlock","src":"3597:93:97","statements":[{"body":{"nativeSrc":"3668:16:97","nodeType":"YulBlock","src":"3668:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3677:1:97","nodeType":"YulLiteral","src":"3677:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"3680:1:97","nodeType":"YulLiteral","src":"3680:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3670:6:97","nodeType":"YulIdentifier","src":"3670:6:97"},"nativeSrc":"3670:12:97","nodeType":"YulFunctionCall","src":"3670:12:97"},"nativeSrc":"3670:12:97","nodeType":"YulExpressionStatement","src":"3670:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3620:5:97","nodeType":"YulIdentifier","src":"3620:5:97"},{"arguments":[{"name":"value","nativeSrc":"3631:5:97","nodeType":"YulIdentifier","src":"3631:5:97"},{"kind":"number","nativeSrc":"3638:26:97","nodeType":"YulLiteral","src":"3638:26:97","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"3627:3:97","nodeType":"YulIdentifier","src":"3627:3:97"},"nativeSrc":"3627:38:97","nodeType":"YulFunctionCall","src":"3627:38:97"}],"functionName":{"name":"eq","nativeSrc":"3617:2:97","nodeType":"YulIdentifier","src":"3617:2:97"},"nativeSrc":"3617:49:97","nodeType":"YulFunctionCall","src":"3617:49:97"}],"functionName":{"name":"iszero","nativeSrc":"3610:6:97","nodeType":"YulIdentifier","src":"3610:6:97"},"nativeSrc":"3610:57:97","nodeType":"YulFunctionCall","src":"3610:57:97"},"nativeSrc":"3607:77:97","nodeType":"YulIf","src":"3607:77:97"}]},"name":"validator_revert_uint96","nativeSrc":"3553:137:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3586:5:97","nodeType":"YulTypedName","src":"3586:5:97","type":""}],"src":"3553:137:97"},{"body":{"nativeSrc":"3764:176:97","nodeType":"YulBlock","src":"3764:176:97","statements":[{"body":{"nativeSrc":"3810:16:97","nodeType":"YulBlock","src":"3810:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3819:1:97","nodeType":"YulLiteral","src":"3819:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"3822:1:97","nodeType":"YulLiteral","src":"3822:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3812:6:97","nodeType":"YulIdentifier","src":"3812:6:97"},"nativeSrc":"3812:12:97","nodeType":"YulFunctionCall","src":"3812:12:97"},"nativeSrc":"3812:12:97","nodeType":"YulExpressionStatement","src":"3812:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3785:7:97","nodeType":"YulIdentifier","src":"3785:7:97"},{"name":"headStart","nativeSrc":"3794:9:97","nodeType":"YulIdentifier","src":"3794:9:97"}],"functionName":{"name":"sub","nativeSrc":"3781:3:97","nodeType":"YulIdentifier","src":"3781:3:97"},"nativeSrc":"3781:23:97","nodeType":"YulFunctionCall","src":"3781:23:97"},{"kind":"number","nativeSrc":"3806:2:97","nodeType":"YulLiteral","src":"3806:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3777:3:97","nodeType":"YulIdentifier","src":"3777:3:97"},"nativeSrc":"3777:32:97","nodeType":"YulFunctionCall","src":"3777:32:97"},"nativeSrc":"3774:52:97","nodeType":"YulIf","src":"3774:52:97"},{"nativeSrc":"3835:36:97","nodeType":"YulVariableDeclaration","src":"3835:36:97","value":{"arguments":[{"name":"headStart","nativeSrc":"3861:9:97","nodeType":"YulIdentifier","src":"3861:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"3848:12:97","nodeType":"YulIdentifier","src":"3848:12:97"},"nativeSrc":"3848:23:97","nodeType":"YulFunctionCall","src":"3848:23:97"},"variables":[{"name":"value","nativeSrc":"3839:5:97","nodeType":"YulTypedName","src":"3839:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3904:5:97","nodeType":"YulIdentifier","src":"3904:5:97"}],"functionName":{"name":"validator_revert_uint96","nativeSrc":"3880:23:97","nodeType":"YulIdentifier","src":"3880:23:97"},"nativeSrc":"3880:30:97","nodeType":"YulFunctionCall","src":"3880:30:97"},"nativeSrc":"3880:30:97","nodeType":"YulExpressionStatement","src":"3880:30:97"},{"nativeSrc":"3919:15:97","nodeType":"YulAssignment","src":"3919:15:97","value":{"name":"value","nativeSrc":"3929:5:97","nodeType":"YulIdentifier","src":"3929:5:97"},"variableNames":[{"name":"value0","nativeSrc":"3919:6:97","nodeType":"YulIdentifier","src":"3919:6:97"}]}]},"name":"abi_decode_tuple_t_uint96","nativeSrc":"3695:245:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3730:9:97","nodeType":"YulTypedName","src":"3730:9:97","type":""},{"name":"dataEnd","nativeSrc":"3741:7:97","nodeType":"YulTypedName","src":"3741:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3753:6:97","nodeType":"YulTypedName","src":"3753:6:97","type":""}],"src":"3695:245:97"},{"body":{"nativeSrc":"4026:170:97","nodeType":"YulBlock","src":"4026:170:97","statements":[{"body":{"nativeSrc":"4072:16:97","nodeType":"YulBlock","src":"4072:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4081:1:97","nodeType":"YulLiteral","src":"4081:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"4084:1:97","nodeType":"YulLiteral","src":"4084:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4074:6:97","nodeType":"YulIdentifier","src":"4074:6:97"},"nativeSrc":"4074:12:97","nodeType":"YulFunctionCall","src":"4074:12:97"},"nativeSrc":"4074:12:97","nodeType":"YulExpressionStatement","src":"4074:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4047:7:97","nodeType":"YulIdentifier","src":"4047:7:97"},{"name":"headStart","nativeSrc":"4056:9:97","nodeType":"YulIdentifier","src":"4056:9:97"}],"functionName":{"name":"sub","nativeSrc":"4043:3:97","nodeType":"YulIdentifier","src":"4043:3:97"},"nativeSrc":"4043:23:97","nodeType":"YulFunctionCall","src":"4043:23:97"},{"kind":"number","nativeSrc":"4068:2:97","nodeType":"YulLiteral","src":"4068:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"4039:3:97","nodeType":"YulIdentifier","src":"4039:3:97"},"nativeSrc":"4039:32:97","nodeType":"YulFunctionCall","src":"4039:32:97"},"nativeSrc":"4036:52:97","nodeType":"YulIf","src":"4036:52:97"},{"nativeSrc":"4097:29:97","nodeType":"YulVariableDeclaration","src":"4097:29:97","value":{"arguments":[{"name":"headStart","nativeSrc":"4116:9:97","nodeType":"YulIdentifier","src":"4116:9:97"}],"functionName":{"name":"mload","nativeSrc":"4110:5:97","nodeType":"YulIdentifier","src":"4110:5:97"},"nativeSrc":"4110:16:97","nodeType":"YulFunctionCall","src":"4110:16:97"},"variables":[{"name":"value","nativeSrc":"4101:5:97","nodeType":"YulTypedName","src":"4101:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"4160:5:97","nodeType":"YulIdentifier","src":"4160:5:97"}],"functionName":{"name":"validator_revert_address","nativeSrc":"4135:24:97","nodeType":"YulIdentifier","src":"4135:24:97"},"nativeSrc":"4135:31:97","nodeType":"YulFunctionCall","src":"4135:31:97"},"nativeSrc":"4135:31:97","nodeType":"YulExpressionStatement","src":"4135:31:97"},{"nativeSrc":"4175:15:97","nodeType":"YulAssignment","src":"4175:15:97","value":{"name":"value","nativeSrc":"4185:5:97","nodeType":"YulIdentifier","src":"4185:5:97"},"variableNames":[{"name":"value0","nativeSrc":"4175:6:97","nodeType":"YulIdentifier","src":"4175:6:97"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nativeSrc":"3945:251:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3992:9:97","nodeType":"YulTypedName","src":"3992:9:97","type":""},{"name":"dataEnd","nativeSrc":"4003:7:97","nodeType":"YulTypedName","src":"4003:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4015:6:97","nodeType":"YulTypedName","src":"4015:6:97","type":""}],"src":"3945:251:97"},{"body":{"nativeSrc":"4295:486:97","nodeType":"YulBlock","src":"4295:486:97","statements":[{"nativeSrc":"4305:51:97","nodeType":"YulVariableDeclaration","src":"4305:51:97","value":{"arguments":[{"name":"ptr_to_tail","nativeSrc":"4344:11:97","nodeType":"YulIdentifier","src":"4344:11:97"}],"functionName":{"name":"calldataload","nativeSrc":"4331:12:97","nodeType":"YulIdentifier","src":"4331:12:97"},"nativeSrc":"4331:25:97","nodeType":"YulFunctionCall","src":"4331:25:97"},"variables":[{"name":"rel_offset_of_tail","nativeSrc":"4309:18:97","nodeType":"YulTypedName","src":"4309:18:97","type":""}]},{"body":{"nativeSrc":"4504:16:97","nodeType":"YulBlock","src":"4504:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4513:1:97","nodeType":"YulLiteral","src":"4513:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"4516:1:97","nodeType":"YulLiteral","src":"4516:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4506:6:97","nodeType":"YulIdentifier","src":"4506:6:97"},"nativeSrc":"4506:12:97","nodeType":"YulFunctionCall","src":"4506:12:97"},"nativeSrc":"4506:12:97","nodeType":"YulExpressionStatement","src":"4506:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nativeSrc":"4379:18:97","nodeType":"YulIdentifier","src":"4379:18:97"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"4407:12:97","nodeType":"YulIdentifier","src":"4407:12:97"},"nativeSrc":"4407:14:97","nodeType":"YulFunctionCall","src":"4407:14:97"},{"name":"base_ref","nativeSrc":"4423:8:97","nodeType":"YulIdentifier","src":"4423:8:97"}],"functionName":{"name":"sub","nativeSrc":"4403:3:97","nodeType":"YulIdentifier","src":"4403:3:97"},"nativeSrc":"4403:29:97","nodeType":"YulFunctionCall","src":"4403:29:97"},{"kind":"number","nativeSrc":"4434:66:97","nodeType":"YulLiteral","src":"4434:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1"}],"functionName":{"name":"add","nativeSrc":"4399:3:97","nodeType":"YulIdentifier","src":"4399:3:97"},"nativeSrc":"4399:102:97","nodeType":"YulFunctionCall","src":"4399:102:97"}],"functionName":{"name":"slt","nativeSrc":"4375:3:97","nodeType":"YulIdentifier","src":"4375:3:97"},"nativeSrc":"4375:127:97","nodeType":"YulFunctionCall","src":"4375:127:97"}],"functionName":{"name":"iszero","nativeSrc":"4368:6:97","nodeType":"YulIdentifier","src":"4368:6:97"},"nativeSrc":"4368:135:97","nodeType":"YulFunctionCall","src":"4368:135:97"},"nativeSrc":"4365:155:97","nodeType":"YulIf","src":"4365:155:97"},{"nativeSrc":"4529:47:97","nodeType":"YulVariableDeclaration","src":"4529:47:97","value":{"arguments":[{"name":"base_ref","nativeSrc":"4547:8:97","nodeType":"YulIdentifier","src":"4547:8:97"},{"name":"rel_offset_of_tail","nativeSrc":"4557:18:97","nodeType":"YulIdentifier","src":"4557:18:97"}],"functionName":{"name":"add","nativeSrc":"4543:3:97","nodeType":"YulIdentifier","src":"4543:3:97"},"nativeSrc":"4543:33:97","nodeType":"YulFunctionCall","src":"4543:33:97"},"variables":[{"name":"addr_1","nativeSrc":"4533:6:97","nodeType":"YulTypedName","src":"4533:6:97","type":""}]},{"nativeSrc":"4585:30:97","nodeType":"YulAssignment","src":"4585:30:97","value":{"arguments":[{"name":"addr_1","nativeSrc":"4608:6:97","nodeType":"YulIdentifier","src":"4608:6:97"}],"functionName":{"name":"calldataload","nativeSrc":"4595:12:97","nodeType":"YulIdentifier","src":"4595:12:97"},"nativeSrc":"4595:20:97","nodeType":"YulFunctionCall","src":"4595:20:97"},"variableNames":[{"name":"length","nativeSrc":"4585:6:97","nodeType":"YulIdentifier","src":"4585:6:97"}]},{"body":{"nativeSrc":"4658:16:97","nodeType":"YulBlock","src":"4658:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4667:1:97","nodeType":"YulLiteral","src":"4667:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"4670:1:97","nodeType":"YulLiteral","src":"4670:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4660:6:97","nodeType":"YulIdentifier","src":"4660:6:97"},"nativeSrc":"4660:12:97","nodeType":"YulFunctionCall","src":"4660:12:97"},"nativeSrc":"4660:12:97","nodeType":"YulExpressionStatement","src":"4660:12:97"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"4630:6:97","nodeType":"YulIdentifier","src":"4630:6:97"},{"kind":"number","nativeSrc":"4638:18:97","nodeType":"YulLiteral","src":"4638:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4627:2:97","nodeType":"YulIdentifier","src":"4627:2:97"},"nativeSrc":"4627:30:97","nodeType":"YulFunctionCall","src":"4627:30:97"},"nativeSrc":"4624:50:97","nodeType":"YulIf","src":"4624:50:97"},{"nativeSrc":"4683:25:97","nodeType":"YulAssignment","src":"4683:25:97","value":{"arguments":[{"name":"addr_1","nativeSrc":"4695:6:97","nodeType":"YulIdentifier","src":"4695:6:97"},{"kind":"number","nativeSrc":"4703:4:97","nodeType":"YulLiteral","src":"4703:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4691:3:97","nodeType":"YulIdentifier","src":"4691:3:97"},"nativeSrc":"4691:17:97","nodeType":"YulFunctionCall","src":"4691:17:97"},"variableNames":[{"name":"addr","nativeSrc":"4683:4:97","nodeType":"YulIdentifier","src":"4683:4:97"}]},{"body":{"nativeSrc":"4759:16:97","nodeType":"YulBlock","src":"4759:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4768:1:97","nodeType":"YulLiteral","src":"4768:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"4771:1:97","nodeType":"YulLiteral","src":"4771:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4761:6:97","nodeType":"YulIdentifier","src":"4761:6:97"},"nativeSrc":"4761:12:97","nodeType":"YulFunctionCall","src":"4761:12:97"},"nativeSrc":"4761:12:97","nodeType":"YulExpressionStatement","src":"4761:12:97"}]},"condition":{"arguments":[{"name":"addr","nativeSrc":"4724:4:97","nodeType":"YulIdentifier","src":"4724:4:97"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"4734:12:97","nodeType":"YulIdentifier","src":"4734:12:97"},"nativeSrc":"4734:14:97","nodeType":"YulFunctionCall","src":"4734:14:97"},{"name":"length","nativeSrc":"4750:6:97","nodeType":"YulIdentifier","src":"4750:6:97"}],"functionName":{"name":"sub","nativeSrc":"4730:3:97","nodeType":"YulIdentifier","src":"4730:3:97"},"nativeSrc":"4730:27:97","nodeType":"YulFunctionCall","src":"4730:27:97"}],"functionName":{"name":"sgt","nativeSrc":"4720:3:97","nodeType":"YulIdentifier","src":"4720:3:97"},"nativeSrc":"4720:38:97","nodeType":"YulFunctionCall","src":"4720:38:97"},"nativeSrc":"4717:58:97","nodeType":"YulIf","src":"4717:58:97"}]},"name":"access_calldata_tail_t_bytes_calldata_ptr","nativeSrc":"4201:580:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nativeSrc":"4252:8:97","nodeType":"YulTypedName","src":"4252:8:97","type":""},{"name":"ptr_to_tail","nativeSrc":"4262:11:97","nodeType":"YulTypedName","src":"4262:11:97","type":""}],"returnVariables":[{"name":"addr","nativeSrc":"4278:4:97","nodeType":"YulTypedName","src":"4278:4:97","type":""},{"name":"length","nativeSrc":"4284:6:97","nodeType":"YulTypedName","src":"4284:6:97","type":""}],"src":"4201:580:97"},{"body":{"nativeSrc":"4960:231:97","nodeType":"YulBlock","src":"4960:231:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4977:9:97","nodeType":"YulIdentifier","src":"4977:9:97"},{"kind":"number","nativeSrc":"4988:2:97","nodeType":"YulLiteral","src":"4988:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"4970:6:97","nodeType":"YulIdentifier","src":"4970:6:97"},"nativeSrc":"4970:21:97","nodeType":"YulFunctionCall","src":"4970:21:97"},"nativeSrc":"4970:21:97","nodeType":"YulExpressionStatement","src":"4970:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5011:9:97","nodeType":"YulIdentifier","src":"5011:9:97"},{"kind":"number","nativeSrc":"5022:2:97","nodeType":"YulLiteral","src":"5022:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5007:3:97","nodeType":"YulIdentifier","src":"5007:3:97"},"nativeSrc":"5007:18:97","nodeType":"YulFunctionCall","src":"5007:18:97"},{"kind":"number","nativeSrc":"5027:2:97","nodeType":"YulLiteral","src":"5027:2:97","type":"","value":"41"}],"functionName":{"name":"mstore","nativeSrc":"5000:6:97","nodeType":"YulIdentifier","src":"5000:6:97"},"nativeSrc":"5000:30:97","nodeType":"YulFunctionCall","src":"5000:30:97"},"nativeSrc":"5000:30:97","nodeType":"YulExpressionStatement","src":"5000:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5050:9:97","nodeType":"YulIdentifier","src":"5050:9:97"},{"kind":"number","nativeSrc":"5061:2:97","nodeType":"YulLiteral","src":"5061:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5046:3:97","nodeType":"YulIdentifier","src":"5046:3:97"},"nativeSrc":"5046:18:97","nodeType":"YulFunctionCall","src":"5046:18:97"},{"hexValue":"4f776e61626c6532537465703a2063616c6c6572206973206e6f742074686520","kind":"string","nativeSrc":"5066:34:97","nodeType":"YulLiteral","src":"5066:34:97","type":"","value":"Ownable2Step: caller is not the "}],"functionName":{"name":"mstore","nativeSrc":"5039:6:97","nodeType":"YulIdentifier","src":"5039:6:97"},"nativeSrc":"5039:62:97","nodeType":"YulFunctionCall","src":"5039:62:97"},"nativeSrc":"5039:62:97","nodeType":"YulExpressionStatement","src":"5039:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5121:9:97","nodeType":"YulIdentifier","src":"5121:9:97"},{"kind":"number","nativeSrc":"5132:2:97","nodeType":"YulLiteral","src":"5132:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5117:3:97","nodeType":"YulIdentifier","src":"5117:3:97"},"nativeSrc":"5117:18:97","nodeType":"YulFunctionCall","src":"5117:18:97"},{"hexValue":"6e6577206f776e6572","kind":"string","nativeSrc":"5137:11:97","nodeType":"YulLiteral","src":"5137:11:97","type":"","value":"new owner"}],"functionName":{"name":"mstore","nativeSrc":"5110:6:97","nodeType":"YulIdentifier","src":"5110:6:97"},"nativeSrc":"5110:39:97","nodeType":"YulFunctionCall","src":"5110:39:97"},"nativeSrc":"5110:39:97","nodeType":"YulExpressionStatement","src":"5110:39:97"},{"nativeSrc":"5158:27:97","nodeType":"YulAssignment","src":"5158:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"5170:9:97","nodeType":"YulIdentifier","src":"5170:9:97"},{"kind":"number","nativeSrc":"5181:3:97","nodeType":"YulLiteral","src":"5181:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"5166:3:97","nodeType":"YulIdentifier","src":"5166:3:97"},"nativeSrc":"5166:19:97","nodeType":"YulFunctionCall","src":"5166:19:97"},"variableNames":[{"name":"tail","nativeSrc":"5158:4:97","nodeType":"YulIdentifier","src":"5158:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"4786:405:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4937:9:97","nodeType":"YulTypedName","src":"4937:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4951:4:97","nodeType":"YulTypedName","src":"4951:4:97","type":""}],"src":"4786:405:97"},{"body":{"nativeSrc":"5370:236:97","nodeType":"YulBlock","src":"5370:236:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5387:9:97","nodeType":"YulIdentifier","src":"5387:9:97"},{"kind":"number","nativeSrc":"5398:2:97","nodeType":"YulLiteral","src":"5398:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"5380:6:97","nodeType":"YulIdentifier","src":"5380:6:97"},"nativeSrc":"5380:21:97","nodeType":"YulFunctionCall","src":"5380:21:97"},"nativeSrc":"5380:21:97","nodeType":"YulExpressionStatement","src":"5380:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5421:9:97","nodeType":"YulIdentifier","src":"5421:9:97"},{"kind":"number","nativeSrc":"5432:2:97","nodeType":"YulLiteral","src":"5432:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5417:3:97","nodeType":"YulIdentifier","src":"5417:3:97"},"nativeSrc":"5417:18:97","nodeType":"YulFunctionCall","src":"5417:18:97"},{"kind":"number","nativeSrc":"5437:2:97","nodeType":"YulLiteral","src":"5437:2:97","type":"","value":"46"}],"functionName":{"name":"mstore","nativeSrc":"5410:6:97","nodeType":"YulIdentifier","src":"5410:6:97"},"nativeSrc":"5410:30:97","nodeType":"YulFunctionCall","src":"5410:30:97"},"nativeSrc":"5410:30:97","nodeType":"YulExpressionStatement","src":"5410:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5460:9:97","nodeType":"YulIdentifier","src":"5460:9:97"},{"kind":"number","nativeSrc":"5471:2:97","nodeType":"YulLiteral","src":"5471:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5456:3:97","nodeType":"YulIdentifier","src":"5456:3:97"},"nativeSrc":"5456:18:97","nodeType":"YulFunctionCall","src":"5456:18:97"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561","kind":"string","nativeSrc":"5476:34:97","nodeType":"YulLiteral","src":"5476:34:97","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nativeSrc":"5449:6:97","nodeType":"YulIdentifier","src":"5449:6:97"},"nativeSrc":"5449:62:97","nodeType":"YulFunctionCall","src":"5449:62:97"},"nativeSrc":"5449:62:97","nodeType":"YulExpressionStatement","src":"5449:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5531:9:97","nodeType":"YulIdentifier","src":"5531:9:97"},{"kind":"number","nativeSrc":"5542:2:97","nodeType":"YulLiteral","src":"5542:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5527:3:97","nodeType":"YulIdentifier","src":"5527:3:97"},"nativeSrc":"5527:18:97","nodeType":"YulFunctionCall","src":"5527:18:97"},{"hexValue":"647920696e697469616c697a6564","kind":"string","nativeSrc":"5547:16:97","nodeType":"YulLiteral","src":"5547:16:97","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nativeSrc":"5520:6:97","nodeType":"YulIdentifier","src":"5520:6:97"},"nativeSrc":"5520:44:97","nodeType":"YulFunctionCall","src":"5520:44:97"},"nativeSrc":"5520:44:97","nodeType":"YulExpressionStatement","src":"5520:44:97"},{"nativeSrc":"5573:27:97","nodeType":"YulAssignment","src":"5573:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"5585:9:97","nodeType":"YulIdentifier","src":"5585:9:97"},{"kind":"number","nativeSrc":"5596:3:97","nodeType":"YulLiteral","src":"5596:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"5581:3:97","nodeType":"YulIdentifier","src":"5581:3:97"},"nativeSrc":"5581:19:97","nodeType":"YulFunctionCall","src":"5581:19:97"},"variableNames":[{"name":"tail","nativeSrc":"5573:4:97","nodeType":"YulIdentifier","src":"5573:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5196:410:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5347:9:97","nodeType":"YulTypedName","src":"5347:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5361:4:97","nodeType":"YulTypedName","src":"5361:4:97","type":""}],"src":"5196:410:97"},{"body":{"nativeSrc":"5718:87:97","nodeType":"YulBlock","src":"5718:87:97","statements":[{"nativeSrc":"5728:26:97","nodeType":"YulAssignment","src":"5728:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"5740:9:97","nodeType":"YulIdentifier","src":"5740:9:97"},{"kind":"number","nativeSrc":"5751:2:97","nodeType":"YulLiteral","src":"5751:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5736:3:97","nodeType":"YulIdentifier","src":"5736:3:97"},"nativeSrc":"5736:18:97","nodeType":"YulFunctionCall","src":"5736:18:97"},"variableNames":[{"name":"tail","nativeSrc":"5728:4:97","nodeType":"YulIdentifier","src":"5728:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5770:9:97","nodeType":"YulIdentifier","src":"5770:9:97"},{"arguments":[{"name":"value0","nativeSrc":"5785:6:97","nodeType":"YulIdentifier","src":"5785:6:97"},{"kind":"number","nativeSrc":"5793:4:97","nodeType":"YulLiteral","src":"5793:4:97","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"5781:3:97","nodeType":"YulIdentifier","src":"5781:3:97"},"nativeSrc":"5781:17:97","nodeType":"YulFunctionCall","src":"5781:17:97"}],"functionName":{"name":"mstore","nativeSrc":"5763:6:97","nodeType":"YulIdentifier","src":"5763:6:97"},"nativeSrc":"5763:36:97","nodeType":"YulFunctionCall","src":"5763:36:97"},"nativeSrc":"5763:36:97","nodeType":"YulExpressionStatement","src":"5763:36:97"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nativeSrc":"5611:194:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5687:9:97","nodeType":"YulTypedName","src":"5687:9:97","type":""},{"name":"value0","nativeSrc":"5698:6:97","nodeType":"YulTypedName","src":"5698:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5709:4:97","nodeType":"YulTypedName","src":"5709:4:97","type":""}],"src":"5611:194:97"},{"body":{"nativeSrc":"5984:182:97","nodeType":"YulBlock","src":"5984:182:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6001:9:97","nodeType":"YulIdentifier","src":"6001:9:97"},{"kind":"number","nativeSrc":"6012:2:97","nodeType":"YulLiteral","src":"6012:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"5994:6:97","nodeType":"YulIdentifier","src":"5994:6:97"},"nativeSrc":"5994:21:97","nodeType":"YulFunctionCall","src":"5994:21:97"},"nativeSrc":"5994:21:97","nodeType":"YulExpressionStatement","src":"5994:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6035:9:97","nodeType":"YulIdentifier","src":"6035:9:97"},{"kind":"number","nativeSrc":"6046:2:97","nodeType":"YulLiteral","src":"6046:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6031:3:97","nodeType":"YulIdentifier","src":"6031:3:97"},"nativeSrc":"6031:18:97","nodeType":"YulFunctionCall","src":"6031:18:97"},{"kind":"number","nativeSrc":"6051:2:97","nodeType":"YulLiteral","src":"6051:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"6024:6:97","nodeType":"YulIdentifier","src":"6024:6:97"},"nativeSrc":"6024:30:97","nodeType":"YulFunctionCall","src":"6024:30:97"},"nativeSrc":"6024:30:97","nodeType":"YulExpressionStatement","src":"6024:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6074:9:97","nodeType":"YulIdentifier","src":"6074:9:97"},{"kind":"number","nativeSrc":"6085:2:97","nodeType":"YulLiteral","src":"6085:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6070:3:97","nodeType":"YulIdentifier","src":"6070:3:97"},"nativeSrc":"6070:18:97","nodeType":"YulFunctionCall","src":"6070:18:97"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nativeSrc":"6090:34:97","nodeType":"YulLiteral","src":"6090:34:97","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nativeSrc":"6063:6:97","nodeType":"YulIdentifier","src":"6063:6:97"},"nativeSrc":"6063:62:97","nodeType":"YulFunctionCall","src":"6063:62:97"},"nativeSrc":"6063:62:97","nodeType":"YulExpressionStatement","src":"6063:62:97"},{"nativeSrc":"6134:26:97","nodeType":"YulAssignment","src":"6134:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"6146:9:97","nodeType":"YulIdentifier","src":"6146:9:97"},{"kind":"number","nativeSrc":"6157:2:97","nodeType":"YulLiteral","src":"6157:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"6142:3:97","nodeType":"YulIdentifier","src":"6142:3:97"},"nativeSrc":"6142:18:97","nodeType":"YulFunctionCall","src":"6142:18:97"},"variableNames":[{"name":"tail","nativeSrc":"6134:4:97","nodeType":"YulIdentifier","src":"6134:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5810:356:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5961:9:97","nodeType":"YulTypedName","src":"5961:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5975:4:97","nodeType":"YulTypedName","src":"5975:4:97","type":""}],"src":"5810:356:97"},{"body":{"nativeSrc":"6345:227:97","nodeType":"YulBlock","src":"6345:227:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6362:9:97","nodeType":"YulIdentifier","src":"6362:9:97"},{"kind":"number","nativeSrc":"6373:2:97","nodeType":"YulLiteral","src":"6373:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"6355:6:97","nodeType":"YulIdentifier","src":"6355:6:97"},"nativeSrc":"6355:21:97","nodeType":"YulFunctionCall","src":"6355:21:97"},"nativeSrc":"6355:21:97","nodeType":"YulExpressionStatement","src":"6355:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6396:9:97","nodeType":"YulIdentifier","src":"6396:9:97"},{"kind":"number","nativeSrc":"6407:2:97","nodeType":"YulLiteral","src":"6407:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6392:3:97","nodeType":"YulIdentifier","src":"6392:3:97"},"nativeSrc":"6392:18:97","nodeType":"YulFunctionCall","src":"6392:18:97"},{"kind":"number","nativeSrc":"6412:2:97","nodeType":"YulLiteral","src":"6412:2:97","type":"","value":"37"}],"functionName":{"name":"mstore","nativeSrc":"6385:6:97","nodeType":"YulIdentifier","src":"6385:6:97"},"nativeSrc":"6385:30:97","nodeType":"YulFunctionCall","src":"6385:30:97"},"nativeSrc":"6385:30:97","nodeType":"YulExpressionStatement","src":"6385:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6435:9:97","nodeType":"YulIdentifier","src":"6435:9:97"},{"kind":"number","nativeSrc":"6446:2:97","nodeType":"YulLiteral","src":"6446:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6431:3:97","nodeType":"YulIdentifier","src":"6431:3:97"},"nativeSrc":"6431:18:97","nodeType":"YulFunctionCall","src":"6431:18:97"},{"hexValue":"696e76616c696420616365737320636f6e74726f6c206d616e61676572206164","kind":"string","nativeSrc":"6451:34:97","nodeType":"YulLiteral","src":"6451:34:97","type":"","value":"invalid acess control manager ad"}],"functionName":{"name":"mstore","nativeSrc":"6424:6:97","nodeType":"YulIdentifier","src":"6424:6:97"},"nativeSrc":"6424:62:97","nodeType":"YulFunctionCall","src":"6424:62:97"},"nativeSrc":"6424:62:97","nodeType":"YulExpressionStatement","src":"6424:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6506:9:97","nodeType":"YulIdentifier","src":"6506:9:97"},{"kind":"number","nativeSrc":"6517:2:97","nodeType":"YulLiteral","src":"6517:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"6502:3:97","nodeType":"YulIdentifier","src":"6502:3:97"},"nativeSrc":"6502:18:97","nodeType":"YulFunctionCall","src":"6502:18:97"},{"hexValue":"6472657373","kind":"string","nativeSrc":"6522:7:97","nodeType":"YulLiteral","src":"6522:7:97","type":"","value":"dress"}],"functionName":{"name":"mstore","nativeSrc":"6495:6:97","nodeType":"YulIdentifier","src":"6495:6:97"},"nativeSrc":"6495:35:97","nodeType":"YulFunctionCall","src":"6495:35:97"},"nativeSrc":"6495:35:97","nodeType":"YulExpressionStatement","src":"6495:35:97"},{"nativeSrc":"6539:27:97","nodeType":"YulAssignment","src":"6539:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"6551:9:97","nodeType":"YulIdentifier","src":"6551:9:97"},{"kind":"number","nativeSrc":"6562:3:97","nodeType":"YulLiteral","src":"6562:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"6547:3:97","nodeType":"YulIdentifier","src":"6547:3:97"},"nativeSrc":"6547:19:97","nodeType":"YulFunctionCall","src":"6547:19:97"},"variableNames":[{"name":"tail","nativeSrc":"6539:4:97","nodeType":"YulIdentifier","src":"6539:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6171:401:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6322:9:97","nodeType":"YulTypedName","src":"6322:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6336:4:97","nodeType":"YulTypedName","src":"6336:4:97","type":""}],"src":"6171:401:97"},{"body":{"nativeSrc":"6706:198:97","nodeType":"YulBlock","src":"6706:198:97","statements":[{"nativeSrc":"6716:26:97","nodeType":"YulAssignment","src":"6716:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"6728:9:97","nodeType":"YulIdentifier","src":"6728:9:97"},{"kind":"number","nativeSrc":"6739:2:97","nodeType":"YulLiteral","src":"6739:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6724:3:97","nodeType":"YulIdentifier","src":"6724:3:97"},"nativeSrc":"6724:18:97","nodeType":"YulFunctionCall","src":"6724:18:97"},"variableNames":[{"name":"tail","nativeSrc":"6716:4:97","nodeType":"YulIdentifier","src":"6716:4:97"}]},{"nativeSrc":"6751:52:97","nodeType":"YulVariableDeclaration","src":"6751:52:97","value":{"kind":"number","nativeSrc":"6761:42:97","nodeType":"YulLiteral","src":"6761:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"6755:2:97","nodeType":"YulTypedName","src":"6755:2:97","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6819:9:97","nodeType":"YulIdentifier","src":"6819:9:97"},{"arguments":[{"name":"value0","nativeSrc":"6834:6:97","nodeType":"YulIdentifier","src":"6834:6:97"},{"name":"_1","nativeSrc":"6842:2:97","nodeType":"YulIdentifier","src":"6842:2:97"}],"functionName":{"name":"and","nativeSrc":"6830:3:97","nodeType":"YulIdentifier","src":"6830:3:97"},"nativeSrc":"6830:15:97","nodeType":"YulFunctionCall","src":"6830:15:97"}],"functionName":{"name":"mstore","nativeSrc":"6812:6:97","nodeType":"YulIdentifier","src":"6812:6:97"},"nativeSrc":"6812:34:97","nodeType":"YulFunctionCall","src":"6812:34:97"},"nativeSrc":"6812:34:97","nodeType":"YulExpressionStatement","src":"6812:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6866:9:97","nodeType":"YulIdentifier","src":"6866:9:97"},{"kind":"number","nativeSrc":"6877:2:97","nodeType":"YulLiteral","src":"6877:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6862:3:97","nodeType":"YulIdentifier","src":"6862:3:97"},"nativeSrc":"6862:18:97","nodeType":"YulFunctionCall","src":"6862:18:97"},{"arguments":[{"name":"value1","nativeSrc":"6886:6:97","nodeType":"YulIdentifier","src":"6886:6:97"},{"name":"_1","nativeSrc":"6894:2:97","nodeType":"YulIdentifier","src":"6894:2:97"}],"functionName":{"name":"and","nativeSrc":"6882:3:97","nodeType":"YulIdentifier","src":"6882:3:97"},"nativeSrc":"6882:15:97","nodeType":"YulFunctionCall","src":"6882:15:97"}],"functionName":{"name":"mstore","nativeSrc":"6855:6:97","nodeType":"YulIdentifier","src":"6855:6:97"},"nativeSrc":"6855:43:97","nodeType":"YulFunctionCall","src":"6855:43:97"},"nativeSrc":"6855:43:97","nodeType":"YulExpressionStatement","src":"6855:43:97"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"6577:327:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6667:9:97","nodeType":"YulTypedName","src":"6667:9:97","type":""},{"name":"value1","nativeSrc":"6678:6:97","nodeType":"YulTypedName","src":"6678:6:97","type":""},{"name":"value0","nativeSrc":"6686:6:97","nodeType":"YulTypedName","src":"6686:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6697:4:97","nodeType":"YulTypedName","src":"6697:4:97","type":""}],"src":"6577:327:97"},{"body":{"nativeSrc":"7058:191:97","nodeType":"YulBlock","src":"7058:191:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7075:9:97","nodeType":"YulIdentifier","src":"7075:9:97"},{"arguments":[{"name":"value0","nativeSrc":"7090:6:97","nodeType":"YulIdentifier","src":"7090:6:97"},{"kind":"number","nativeSrc":"7098:42:97","nodeType":"YulLiteral","src":"7098:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"7086:3:97","nodeType":"YulIdentifier","src":"7086:3:97"},"nativeSrc":"7086:55:97","nodeType":"YulFunctionCall","src":"7086:55:97"}],"functionName":{"name":"mstore","nativeSrc":"7068:6:97","nodeType":"YulIdentifier","src":"7068:6:97"},"nativeSrc":"7068:74:97","nodeType":"YulFunctionCall","src":"7068:74:97"},"nativeSrc":"7068:74:97","nodeType":"YulExpressionStatement","src":"7068:74:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7162:9:97","nodeType":"YulIdentifier","src":"7162:9:97"},{"kind":"number","nativeSrc":"7173:2:97","nodeType":"YulLiteral","src":"7173:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7158:3:97","nodeType":"YulIdentifier","src":"7158:3:97"},"nativeSrc":"7158:18:97","nodeType":"YulFunctionCall","src":"7158:18:97"},{"kind":"number","nativeSrc":"7178:2:97","nodeType":"YulLiteral","src":"7178:2:97","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"7151:6:97","nodeType":"YulIdentifier","src":"7151:6:97"},"nativeSrc":"7151:30:97","nodeType":"YulFunctionCall","src":"7151:30:97"},"nativeSrc":"7151:30:97","nodeType":"YulExpressionStatement","src":"7151:30:97"},{"nativeSrc":"7190:53:97","nodeType":"YulAssignment","src":"7190:53:97","value":{"arguments":[{"name":"value1","nativeSrc":"7216:6:97","nodeType":"YulIdentifier","src":"7216:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"7228:9:97","nodeType":"YulIdentifier","src":"7228:9:97"},{"kind":"number","nativeSrc":"7239:2:97","nodeType":"YulLiteral","src":"7239:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7224:3:97","nodeType":"YulIdentifier","src":"7224:3:97"},"nativeSrc":"7224:18:97","nodeType":"YulFunctionCall","src":"7224:18:97"}],"functionName":{"name":"abi_encode_string","nativeSrc":"7198:17:97","nodeType":"YulIdentifier","src":"7198:17:97"},"nativeSrc":"7198:45:97","nodeType":"YulFunctionCall","src":"7198:45:97"},"variableNames":[{"name":"tail","nativeSrc":"7190:4:97","nodeType":"YulIdentifier","src":"7190:4:97"}]}]},"name":"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6909:340:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7019:9:97","nodeType":"YulTypedName","src":"7019:9:97","type":""},{"name":"value1","nativeSrc":"7030:6:97","nodeType":"YulTypedName","src":"7030:6:97","type":""},{"name":"value0","nativeSrc":"7038:6:97","nodeType":"YulTypedName","src":"7038:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7049:4:97","nodeType":"YulTypedName","src":"7049:4:97","type":""}],"src":"6909:340:97"},{"body":{"nativeSrc":"7311:107:97","nodeType":"YulBlock","src":"7311:107:97","statements":[{"nativeSrc":"7321:22:97","nodeType":"YulAssignment","src":"7321:22:97","value":{"arguments":[{"name":"offset","nativeSrc":"7336:6:97","nodeType":"YulIdentifier","src":"7336:6:97"}],"functionName":{"name":"mload","nativeSrc":"7330:5:97","nodeType":"YulIdentifier","src":"7330:5:97"},"nativeSrc":"7330:13:97","nodeType":"YulFunctionCall","src":"7330:13:97"},"variableNames":[{"name":"value","nativeSrc":"7321:5:97","nodeType":"YulIdentifier","src":"7321:5:97"}]},{"body":{"nativeSrc":"7396:16:97","nodeType":"YulBlock","src":"7396:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7405:1:97","nodeType":"YulLiteral","src":"7405:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"7408:1:97","nodeType":"YulLiteral","src":"7408:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7398:6:97","nodeType":"YulIdentifier","src":"7398:6:97"},"nativeSrc":"7398:12:97","nodeType":"YulFunctionCall","src":"7398:12:97"},"nativeSrc":"7398:12:97","nodeType":"YulExpressionStatement","src":"7398:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7365:5:97","nodeType":"YulIdentifier","src":"7365:5:97"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7386:5:97","nodeType":"YulIdentifier","src":"7386:5:97"}],"functionName":{"name":"iszero","nativeSrc":"7379:6:97","nodeType":"YulIdentifier","src":"7379:6:97"},"nativeSrc":"7379:13:97","nodeType":"YulFunctionCall","src":"7379:13:97"}],"functionName":{"name":"iszero","nativeSrc":"7372:6:97","nodeType":"YulIdentifier","src":"7372:6:97"},"nativeSrc":"7372:21:97","nodeType":"YulFunctionCall","src":"7372:21:97"}],"functionName":{"name":"eq","nativeSrc":"7362:2:97","nodeType":"YulIdentifier","src":"7362:2:97"},"nativeSrc":"7362:32:97","nodeType":"YulFunctionCall","src":"7362:32:97"}],"functionName":{"name":"iszero","nativeSrc":"7355:6:97","nodeType":"YulIdentifier","src":"7355:6:97"},"nativeSrc":"7355:40:97","nodeType":"YulFunctionCall","src":"7355:40:97"},"nativeSrc":"7352:60:97","nodeType":"YulIf","src":"7352:60:97"}]},"name":"abi_decode_bool_fromMemory","nativeSrc":"7254:164:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7290:6:97","nodeType":"YulTypedName","src":"7290:6:97","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7301:5:97","nodeType":"YulTypedName","src":"7301:5:97","type":""}],"src":"7254:164:97"},{"body":{"nativeSrc":"7501:124:97","nodeType":"YulBlock","src":"7501:124:97","statements":[{"body":{"nativeSrc":"7547:16:97","nodeType":"YulBlock","src":"7547:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7556:1:97","nodeType":"YulLiteral","src":"7556:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"7559:1:97","nodeType":"YulLiteral","src":"7559:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7549:6:97","nodeType":"YulIdentifier","src":"7549:6:97"},"nativeSrc":"7549:12:97","nodeType":"YulFunctionCall","src":"7549:12:97"},"nativeSrc":"7549:12:97","nodeType":"YulExpressionStatement","src":"7549:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7522:7:97","nodeType":"YulIdentifier","src":"7522:7:97"},{"name":"headStart","nativeSrc":"7531:9:97","nodeType":"YulIdentifier","src":"7531:9:97"}],"functionName":{"name":"sub","nativeSrc":"7518:3:97","nodeType":"YulIdentifier","src":"7518:3:97"},"nativeSrc":"7518:23:97","nodeType":"YulFunctionCall","src":"7518:23:97"},{"kind":"number","nativeSrc":"7543:2:97","nodeType":"YulLiteral","src":"7543:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7514:3:97","nodeType":"YulIdentifier","src":"7514:3:97"},"nativeSrc":"7514:32:97","nodeType":"YulFunctionCall","src":"7514:32:97"},"nativeSrc":"7511:52:97","nodeType":"YulIf","src":"7511:52:97"},{"nativeSrc":"7572:47:97","nodeType":"YulAssignment","src":"7572:47:97","value":{"arguments":[{"name":"headStart","nativeSrc":"7609:9:97","nodeType":"YulIdentifier","src":"7609:9:97"}],"functionName":{"name":"abi_decode_bool_fromMemory","nativeSrc":"7582:26:97","nodeType":"YulIdentifier","src":"7582:26:97"},"nativeSrc":"7582:37:97","nodeType":"YulFunctionCall","src":"7582:37:97"},"variableNames":[{"name":"value0","nativeSrc":"7572:6:97","nodeType":"YulIdentifier","src":"7572:6:97"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"7423:202:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7467:9:97","nodeType":"YulTypedName","src":"7467:9:97","type":""},{"name":"dataEnd","nativeSrc":"7478:7:97","nodeType":"YulTypedName","src":"7478:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7490:6:97","nodeType":"YulTypedName","src":"7490:6:97","type":""}],"src":"7423:202:97"},{"body":{"nativeSrc":"7807:264:97","nodeType":"YulBlock","src":"7807:264:97","statements":[{"nativeSrc":"7817:52:97","nodeType":"YulVariableDeclaration","src":"7817:52:97","value":{"kind":"number","nativeSrc":"7827:42:97","nodeType":"YulLiteral","src":"7827:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"7821:2:97","nodeType":"YulTypedName","src":"7821:2:97","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7885:9:97","nodeType":"YulIdentifier","src":"7885:9:97"},{"arguments":[{"name":"value0","nativeSrc":"7900:6:97","nodeType":"YulIdentifier","src":"7900:6:97"},{"name":"_1","nativeSrc":"7908:2:97","nodeType":"YulIdentifier","src":"7908:2:97"}],"functionName":{"name":"and","nativeSrc":"7896:3:97","nodeType":"YulIdentifier","src":"7896:3:97"},"nativeSrc":"7896:15:97","nodeType":"YulFunctionCall","src":"7896:15:97"}],"functionName":{"name":"mstore","nativeSrc":"7878:6:97","nodeType":"YulIdentifier","src":"7878:6:97"},"nativeSrc":"7878:34:97","nodeType":"YulFunctionCall","src":"7878:34:97"},"nativeSrc":"7878:34:97","nodeType":"YulExpressionStatement","src":"7878:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7932:9:97","nodeType":"YulIdentifier","src":"7932:9:97"},{"kind":"number","nativeSrc":"7943:2:97","nodeType":"YulLiteral","src":"7943:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7928:3:97","nodeType":"YulIdentifier","src":"7928:3:97"},"nativeSrc":"7928:18:97","nodeType":"YulFunctionCall","src":"7928:18:97"},{"arguments":[{"name":"value1","nativeSrc":"7952:6:97","nodeType":"YulIdentifier","src":"7952:6:97"},{"name":"_1","nativeSrc":"7960:2:97","nodeType":"YulIdentifier","src":"7960:2:97"}],"functionName":{"name":"and","nativeSrc":"7948:3:97","nodeType":"YulIdentifier","src":"7948:3:97"},"nativeSrc":"7948:15:97","nodeType":"YulFunctionCall","src":"7948:15:97"}],"functionName":{"name":"mstore","nativeSrc":"7921:6:97","nodeType":"YulIdentifier","src":"7921:6:97"},"nativeSrc":"7921:43:97","nodeType":"YulFunctionCall","src":"7921:43:97"},"nativeSrc":"7921:43:97","nodeType":"YulExpressionStatement","src":"7921:43:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7984:9:97","nodeType":"YulIdentifier","src":"7984:9:97"},{"kind":"number","nativeSrc":"7995:2:97","nodeType":"YulLiteral","src":"7995:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7980:3:97","nodeType":"YulIdentifier","src":"7980:3:97"},"nativeSrc":"7980:18:97","nodeType":"YulFunctionCall","src":"7980:18:97"},{"kind":"number","nativeSrc":"8000:2:97","nodeType":"YulLiteral","src":"8000:2:97","type":"","value":"96"}],"functionName":{"name":"mstore","nativeSrc":"7973:6:97","nodeType":"YulIdentifier","src":"7973:6:97"},"nativeSrc":"7973:30:97","nodeType":"YulFunctionCall","src":"7973:30:97"},"nativeSrc":"7973:30:97","nodeType":"YulExpressionStatement","src":"7973:30:97"},{"nativeSrc":"8012:53:97","nodeType":"YulAssignment","src":"8012:53:97","value":{"arguments":[{"name":"value2","nativeSrc":"8038:6:97","nodeType":"YulIdentifier","src":"8038:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"8050:9:97","nodeType":"YulIdentifier","src":"8050:9:97"},{"kind":"number","nativeSrc":"8061:2:97","nodeType":"YulLiteral","src":"8061:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"8046:3:97","nodeType":"YulIdentifier","src":"8046:3:97"},"nativeSrc":"8046:18:97","nodeType":"YulFunctionCall","src":"8046:18:97"}],"functionName":{"name":"abi_encode_string","nativeSrc":"8020:17:97","nodeType":"YulIdentifier","src":"8020:17:97"},"nativeSrc":"8020:45:97","nodeType":"YulFunctionCall","src":"8020:45:97"},"variableNames":[{"name":"tail","nativeSrc":"8012:4:97","nodeType":"YulIdentifier","src":"8012:4:97"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"7630:441:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7760:9:97","nodeType":"YulTypedName","src":"7760:9:97","type":""},{"name":"value2","nativeSrc":"7771:6:97","nodeType":"YulTypedName","src":"7771:6:97","type":""},{"name":"value1","nativeSrc":"7779:6:97","nodeType":"YulTypedName","src":"7779:6:97","type":""},{"name":"value0","nativeSrc":"7787:6:97","nodeType":"YulTypedName","src":"7787:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7798:4:97","nodeType":"YulTypedName","src":"7798:4:97","type":""}],"src":"7630:441:97"},{"body":{"nativeSrc":"8174:147:97","nodeType":"YulBlock","src":"8174:147:97","statements":[{"body":{"nativeSrc":"8220:16:97","nodeType":"YulBlock","src":"8220:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8229:1:97","nodeType":"YulLiteral","src":"8229:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"8232:1:97","nodeType":"YulLiteral","src":"8232:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8222:6:97","nodeType":"YulIdentifier","src":"8222:6:97"},"nativeSrc":"8222:12:97","nodeType":"YulFunctionCall","src":"8222:12:97"},"nativeSrc":"8222:12:97","nodeType":"YulExpressionStatement","src":"8222:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8195:7:97","nodeType":"YulIdentifier","src":"8195:7:97"},{"name":"headStart","nativeSrc":"8204:9:97","nodeType":"YulIdentifier","src":"8204:9:97"}],"functionName":{"name":"sub","nativeSrc":"8191:3:97","nodeType":"YulIdentifier","src":"8191:3:97"},"nativeSrc":"8191:23:97","nodeType":"YulFunctionCall","src":"8191:23:97"},{"kind":"number","nativeSrc":"8216:2:97","nodeType":"YulLiteral","src":"8216:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"8187:3:97","nodeType":"YulIdentifier","src":"8187:3:97"},"nativeSrc":"8187:32:97","nodeType":"YulFunctionCall","src":"8187:32:97"},"nativeSrc":"8184:52:97","nodeType":"YulIf","src":"8184:52:97"},{"nativeSrc":"8245:26:97","nodeType":"YulAssignment","src":"8245:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"8261:9:97","nodeType":"YulIdentifier","src":"8261:9:97"}],"functionName":{"name":"mload","nativeSrc":"8255:5:97","nodeType":"YulIdentifier","src":"8255:5:97"},"nativeSrc":"8255:16:97","nodeType":"YulFunctionCall","src":"8255:16:97"},"variableNames":[{"name":"value0","nativeSrc":"8245:6:97","nodeType":"YulIdentifier","src":"8245:6:97"}]},{"nativeSrc":"8280:35:97","nodeType":"YulAssignment","src":"8280:35:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8300:9:97","nodeType":"YulIdentifier","src":"8300:9:97"},{"kind":"number","nativeSrc":"8311:2:97","nodeType":"YulLiteral","src":"8311:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8296:3:97","nodeType":"YulIdentifier","src":"8296:3:97"},"nativeSrc":"8296:18:97","nodeType":"YulFunctionCall","src":"8296:18:97"}],"functionName":{"name":"mload","nativeSrc":"8290:5:97","nodeType":"YulIdentifier","src":"8290:5:97"},"nativeSrc":"8290:25:97","nodeType":"YulFunctionCall","src":"8290:25:97"},"variableNames":[{"name":"value1","nativeSrc":"8280:6:97","nodeType":"YulIdentifier","src":"8280:6:97"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256_fromMemory","nativeSrc":"8076:245:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8132:9:97","nodeType":"YulTypedName","src":"8132:9:97","type":""},{"name":"dataEnd","nativeSrc":"8143:7:97","nodeType":"YulTypedName","src":"8143:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8155:6:97","nodeType":"YulTypedName","src":"8155:6:97","type":""},{"name":"value1","nativeSrc":"8163:6:97","nodeType":"YulTypedName","src":"8163:6:97","type":""}],"src":"8076:245:97"},{"body":{"nativeSrc":"8499:500:97","nodeType":"YulBlock","src":"8499:500:97","statements":[{"body":{"nativeSrc":"8546:16:97","nodeType":"YulBlock","src":"8546:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8555:1:97","nodeType":"YulLiteral","src":"8555:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"8558:1:97","nodeType":"YulLiteral","src":"8558:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8548:6:97","nodeType":"YulIdentifier","src":"8548:6:97"},"nativeSrc":"8548:12:97","nodeType":"YulFunctionCall","src":"8548:12:97"},"nativeSrc":"8548:12:97","nodeType":"YulExpressionStatement","src":"8548:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8520:7:97","nodeType":"YulIdentifier","src":"8520:7:97"},{"name":"headStart","nativeSrc":"8529:9:97","nodeType":"YulIdentifier","src":"8529:9:97"}],"functionName":{"name":"sub","nativeSrc":"8516:3:97","nodeType":"YulIdentifier","src":"8516:3:97"},"nativeSrc":"8516:23:97","nodeType":"YulFunctionCall","src":"8516:23:97"},{"kind":"number","nativeSrc":"8541:3:97","nodeType":"YulLiteral","src":"8541:3:97","type":"","value":"224"}],"functionName":{"name":"slt","nativeSrc":"8512:3:97","nodeType":"YulIdentifier","src":"8512:3:97"},"nativeSrc":"8512:33:97","nodeType":"YulFunctionCall","src":"8512:33:97"},"nativeSrc":"8509:53:97","nodeType":"YulIf","src":"8509:53:97"},{"nativeSrc":"8571:47:97","nodeType":"YulAssignment","src":"8571:47:97","value":{"arguments":[{"name":"headStart","nativeSrc":"8608:9:97","nodeType":"YulIdentifier","src":"8608:9:97"}],"functionName":{"name":"abi_decode_bool_fromMemory","nativeSrc":"8581:26:97","nodeType":"YulIdentifier","src":"8581:26:97"},"nativeSrc":"8581:37:97","nodeType":"YulFunctionCall","src":"8581:37:97"},"variableNames":[{"name":"value0","nativeSrc":"8571:6:97","nodeType":"YulIdentifier","src":"8571:6:97"}]},{"nativeSrc":"8627:35:97","nodeType":"YulAssignment","src":"8627:35:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8647:9:97","nodeType":"YulIdentifier","src":"8647:9:97"},{"kind":"number","nativeSrc":"8658:2:97","nodeType":"YulLiteral","src":"8658:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8643:3:97","nodeType":"YulIdentifier","src":"8643:3:97"},"nativeSrc":"8643:18:97","nodeType":"YulFunctionCall","src":"8643:18:97"}],"functionName":{"name":"mload","nativeSrc":"8637:5:97","nodeType":"YulIdentifier","src":"8637:5:97"},"nativeSrc":"8637:25:97","nodeType":"YulFunctionCall","src":"8637:25:97"},"variableNames":[{"name":"value1","nativeSrc":"8627:6:97","nodeType":"YulIdentifier","src":"8627:6:97"}]},{"nativeSrc":"8671:56:97","nodeType":"YulAssignment","src":"8671:56:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8712:9:97","nodeType":"YulIdentifier","src":"8712:9:97"},{"kind":"number","nativeSrc":"8723:2:97","nodeType":"YulLiteral","src":"8723:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8708:3:97","nodeType":"YulIdentifier","src":"8708:3:97"},"nativeSrc":"8708:18:97","nodeType":"YulFunctionCall","src":"8708:18:97"}],"functionName":{"name":"abi_decode_bool_fromMemory","nativeSrc":"8681:26:97","nodeType":"YulIdentifier","src":"8681:26:97"},"nativeSrc":"8681:46:97","nodeType":"YulFunctionCall","src":"8681:46:97"},"variableNames":[{"name":"value2","nativeSrc":"8671:6:97","nodeType":"YulIdentifier","src":"8671:6:97"}]},{"nativeSrc":"8736:35:97","nodeType":"YulAssignment","src":"8736:35:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8756:9:97","nodeType":"YulIdentifier","src":"8756:9:97"},{"kind":"number","nativeSrc":"8767:2:97","nodeType":"YulLiteral","src":"8767:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"8752:3:97","nodeType":"YulIdentifier","src":"8752:3:97"},"nativeSrc":"8752:18:97","nodeType":"YulFunctionCall","src":"8752:18:97"}],"functionName":{"name":"mload","nativeSrc":"8746:5:97","nodeType":"YulIdentifier","src":"8746:5:97"},"nativeSrc":"8746:25:97","nodeType":"YulFunctionCall","src":"8746:25:97"},"variableNames":[{"name":"value3","nativeSrc":"8736:6:97","nodeType":"YulIdentifier","src":"8736:6:97"}]},{"nativeSrc":"8780:36:97","nodeType":"YulAssignment","src":"8780:36:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8800:9:97","nodeType":"YulIdentifier","src":"8800:9:97"},{"kind":"number","nativeSrc":"8811:3:97","nodeType":"YulLiteral","src":"8811:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"8796:3:97","nodeType":"YulIdentifier","src":"8796:3:97"},"nativeSrc":"8796:19:97","nodeType":"YulFunctionCall","src":"8796:19:97"}],"functionName":{"name":"mload","nativeSrc":"8790:5:97","nodeType":"YulIdentifier","src":"8790:5:97"},"nativeSrc":"8790:26:97","nodeType":"YulFunctionCall","src":"8790:26:97"},"variableNames":[{"name":"value4","nativeSrc":"8780:6:97","nodeType":"YulIdentifier","src":"8780:6:97"}]},{"nativeSrc":"8825:39:97","nodeType":"YulVariableDeclaration","src":"8825:39:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8848:9:97","nodeType":"YulIdentifier","src":"8848:9:97"},{"kind":"number","nativeSrc":"8859:3:97","nodeType":"YulLiteral","src":"8859:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"8844:3:97","nodeType":"YulIdentifier","src":"8844:3:97"},"nativeSrc":"8844:19:97","nodeType":"YulFunctionCall","src":"8844:19:97"}],"functionName":{"name":"mload","nativeSrc":"8838:5:97","nodeType":"YulIdentifier","src":"8838:5:97"},"nativeSrc":"8838:26:97","nodeType":"YulFunctionCall","src":"8838:26:97"},"variables":[{"name":"value","nativeSrc":"8829:5:97","nodeType":"YulTypedName","src":"8829:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8897:5:97","nodeType":"YulIdentifier","src":"8897:5:97"}],"functionName":{"name":"validator_revert_uint96","nativeSrc":"8873:23:97","nodeType":"YulIdentifier","src":"8873:23:97"},"nativeSrc":"8873:30:97","nodeType":"YulFunctionCall","src":"8873:30:97"},"nativeSrc":"8873:30:97","nodeType":"YulExpressionStatement","src":"8873:30:97"},{"nativeSrc":"8912:15:97","nodeType":"YulAssignment","src":"8912:15:97","value":{"name":"value","nativeSrc":"8922:5:97","nodeType":"YulIdentifier","src":"8922:5:97"},"variableNames":[{"name":"value5","nativeSrc":"8912:6:97","nodeType":"YulIdentifier","src":"8912:6:97"}]},{"nativeSrc":"8936:57:97","nodeType":"YulAssignment","src":"8936:57:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8977:9:97","nodeType":"YulIdentifier","src":"8977:9:97"},{"kind":"number","nativeSrc":"8988:3:97","nodeType":"YulLiteral","src":"8988:3:97","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"8973:3:97","nodeType":"YulIdentifier","src":"8973:3:97"},"nativeSrc":"8973:19:97","nodeType":"YulFunctionCall","src":"8973:19:97"}],"functionName":{"name":"abi_decode_bool_fromMemory","nativeSrc":"8946:26:97","nodeType":"YulIdentifier","src":"8946:26:97"},"nativeSrc":"8946:47:97","nodeType":"YulFunctionCall","src":"8946:47:97"},"variableNames":[{"name":"value6","nativeSrc":"8936:6:97","nodeType":"YulIdentifier","src":"8936:6:97"}]}]},"name":"abi_decode_tuple_t_boolt_uint256t_boolt_uint256t_uint256t_uint96t_bool_fromMemory","nativeSrc":"8326:673:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8417:9:97","nodeType":"YulTypedName","src":"8417:9:97","type":""},{"name":"dataEnd","nativeSrc":"8428:7:97","nodeType":"YulTypedName","src":"8428:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8440:6:97","nodeType":"YulTypedName","src":"8440:6:97","type":""},{"name":"value1","nativeSrc":"8448:6:97","nodeType":"YulTypedName","src":"8448:6:97","type":""},{"name":"value2","nativeSrc":"8456:6:97","nodeType":"YulTypedName","src":"8456:6:97","type":""},{"name":"value3","nativeSrc":"8464:6:97","nodeType":"YulTypedName","src":"8464:6:97","type":""},{"name":"value4","nativeSrc":"8472:6:97","nodeType":"YulTypedName","src":"8472:6:97","type":""},{"name":"value5","nativeSrc":"8480:6:97","nodeType":"YulTypedName","src":"8480:6:97","type":""},{"name":"value6","nativeSrc":"8488:6:97","nodeType":"YulTypedName","src":"8488:6:97","type":""}],"src":"8326:673:97"},{"body":{"nativeSrc":"9116:212:97","nodeType":"YulBlock","src":"9116:212:97","statements":[{"body":{"nativeSrc":"9162:16:97","nodeType":"YulBlock","src":"9162:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9171:1:97","nodeType":"YulLiteral","src":"9171:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"9174:1:97","nodeType":"YulLiteral","src":"9174:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9164:6:97","nodeType":"YulIdentifier","src":"9164:6:97"},"nativeSrc":"9164:12:97","nodeType":"YulFunctionCall","src":"9164:12:97"},"nativeSrc":"9164:12:97","nodeType":"YulExpressionStatement","src":"9164:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9137:7:97","nodeType":"YulIdentifier","src":"9137:7:97"},{"name":"headStart","nativeSrc":"9146:9:97","nodeType":"YulIdentifier","src":"9146:9:97"}],"functionName":{"name":"sub","nativeSrc":"9133:3:97","nodeType":"YulIdentifier","src":"9133:3:97"},"nativeSrc":"9133:23:97","nodeType":"YulFunctionCall","src":"9133:23:97"},{"kind":"number","nativeSrc":"9158:2:97","nodeType":"YulLiteral","src":"9158:2:97","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"9129:3:97","nodeType":"YulIdentifier","src":"9129:3:97"},"nativeSrc":"9129:32:97","nodeType":"YulFunctionCall","src":"9129:32:97"},"nativeSrc":"9126:52:97","nodeType":"YulIf","src":"9126:52:97"},{"nativeSrc":"9187:47:97","nodeType":"YulAssignment","src":"9187:47:97","value":{"arguments":[{"name":"headStart","nativeSrc":"9224:9:97","nodeType":"YulIdentifier","src":"9224:9:97"}],"functionName":{"name":"abi_decode_bool_fromMemory","nativeSrc":"9197:26:97","nodeType":"YulIdentifier","src":"9197:26:97"},"nativeSrc":"9197:37:97","nodeType":"YulFunctionCall","src":"9197:37:97"},"variableNames":[{"name":"value0","nativeSrc":"9187:6:97","nodeType":"YulIdentifier","src":"9187:6:97"}]},{"nativeSrc":"9243:35:97","nodeType":"YulAssignment","src":"9243:35:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9263:9:97","nodeType":"YulIdentifier","src":"9263:9:97"},{"kind":"number","nativeSrc":"9274:2:97","nodeType":"YulLiteral","src":"9274:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9259:3:97","nodeType":"YulIdentifier","src":"9259:3:97"},"nativeSrc":"9259:18:97","nodeType":"YulFunctionCall","src":"9259:18:97"}],"functionName":{"name":"mload","nativeSrc":"9253:5:97","nodeType":"YulIdentifier","src":"9253:5:97"},"nativeSrc":"9253:25:97","nodeType":"YulFunctionCall","src":"9253:25:97"},"variableNames":[{"name":"value1","nativeSrc":"9243:6:97","nodeType":"YulIdentifier","src":"9243:6:97"}]},{"nativeSrc":"9287:35:97","nodeType":"YulAssignment","src":"9287:35:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9307:9:97","nodeType":"YulIdentifier","src":"9307:9:97"},{"kind":"number","nativeSrc":"9318:2:97","nodeType":"YulLiteral","src":"9318:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9303:3:97","nodeType":"YulIdentifier","src":"9303:3:97"},"nativeSrc":"9303:18:97","nodeType":"YulFunctionCall","src":"9303:18:97"}],"functionName":{"name":"mload","nativeSrc":"9297:5:97","nodeType":"YulIdentifier","src":"9297:5:97"},"nativeSrc":"9297:25:97","nodeType":"YulFunctionCall","src":"9297:25:97"},"variableNames":[{"name":"value2","nativeSrc":"9287:6:97","nodeType":"YulIdentifier","src":"9287:6:97"}]}]},"name":"abi_decode_tuple_t_boolt_uint256t_uint256_fromMemory","nativeSrc":"9004:324:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9066:9:97","nodeType":"YulTypedName","src":"9066:9:97","type":""},{"name":"dataEnd","nativeSrc":"9077:7:97","nodeType":"YulTypedName","src":"9077:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9089:6:97","nodeType":"YulTypedName","src":"9089:6:97","type":""},{"name":"value1","nativeSrc":"9097:6:97","nodeType":"YulTypedName","src":"9097:6:97","type":""},{"name":"value2","nativeSrc":"9105:6:97","nodeType":"YulTypedName","src":"9105:6:97","type":""}],"src":"9004:324:97"},{"body":{"nativeSrc":"9365:152:97","nodeType":"YulBlock","src":"9365:152:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9382:1:97","nodeType":"YulLiteral","src":"9382:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"9385:77:97","nodeType":"YulLiteral","src":"9385:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"9375:6:97","nodeType":"YulIdentifier","src":"9375:6:97"},"nativeSrc":"9375:88:97","nodeType":"YulFunctionCall","src":"9375:88:97"},"nativeSrc":"9375:88:97","nodeType":"YulExpressionStatement","src":"9375:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9479:1:97","nodeType":"YulLiteral","src":"9479:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"9482:4:97","nodeType":"YulLiteral","src":"9482:4:97","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"9472:6:97","nodeType":"YulIdentifier","src":"9472:6:97"},"nativeSrc":"9472:15:97","nodeType":"YulFunctionCall","src":"9472:15:97"},"nativeSrc":"9472:15:97","nodeType":"YulExpressionStatement","src":"9472:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9503:1:97","nodeType":"YulLiteral","src":"9503:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"9506:4:97","nodeType":"YulLiteral","src":"9506:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"9496:6:97","nodeType":"YulIdentifier","src":"9496:6:97"},"nativeSrc":"9496:15:97","nodeType":"YulFunctionCall","src":"9496:15:97"},"nativeSrc":"9496:15:97","nodeType":"YulExpressionStatement","src":"9496:15:97"}]},"name":"panic_error_0x11","nativeSrc":"9333:184:97","nodeType":"YulFunctionDefinition","src":"9333:184:97"},{"body":{"nativeSrc":"9571:79:97","nodeType":"YulBlock","src":"9571:79:97","statements":[{"nativeSrc":"9581:17:97","nodeType":"YulAssignment","src":"9581:17:97","value":{"arguments":[{"name":"x","nativeSrc":"9593:1:97","nodeType":"YulIdentifier","src":"9593:1:97"},{"name":"y","nativeSrc":"9596:1:97","nodeType":"YulIdentifier","src":"9596:1:97"}],"functionName":{"name":"sub","nativeSrc":"9589:3:97","nodeType":"YulIdentifier","src":"9589:3:97"},"nativeSrc":"9589:9:97","nodeType":"YulFunctionCall","src":"9589:9:97"},"variableNames":[{"name":"diff","nativeSrc":"9581:4:97","nodeType":"YulIdentifier","src":"9581:4:97"}]},{"body":{"nativeSrc":"9622:22:97","nodeType":"YulBlock","src":"9622:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9624:16:97","nodeType":"YulIdentifier","src":"9624:16:97"},"nativeSrc":"9624:18:97","nodeType":"YulFunctionCall","src":"9624:18:97"},"nativeSrc":"9624:18:97","nodeType":"YulExpressionStatement","src":"9624:18:97"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"9613:4:97","nodeType":"YulIdentifier","src":"9613:4:97"},{"name":"x","nativeSrc":"9619:1:97","nodeType":"YulIdentifier","src":"9619:1:97"}],"functionName":{"name":"gt","nativeSrc":"9610:2:97","nodeType":"YulIdentifier","src":"9610:2:97"},"nativeSrc":"9610:11:97","nodeType":"YulFunctionCall","src":"9610:11:97"},"nativeSrc":"9607:37:97","nodeType":"YulIf","src":"9607:37:97"}]},"name":"checked_sub_t_uint256","nativeSrc":"9522:128:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"9553:1:97","nodeType":"YulTypedName","src":"9553:1:97","type":""},{"name":"y","nativeSrc":"9556:1:97","nodeType":"YulTypedName","src":"9556:1:97","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"9562:4:97","nodeType":"YulTypedName","src":"9562:4:97","type":""}],"src":"9522:128:97"},{"body":{"nativeSrc":"9707:116:97","nodeType":"YulBlock","src":"9707:116:97","statements":[{"nativeSrc":"9717:20:97","nodeType":"YulAssignment","src":"9717:20:97","value":{"arguments":[{"name":"x","nativeSrc":"9732:1:97","nodeType":"YulIdentifier","src":"9732:1:97"},{"name":"y","nativeSrc":"9735:1:97","nodeType":"YulIdentifier","src":"9735:1:97"}],"functionName":{"name":"mul","nativeSrc":"9728:3:97","nodeType":"YulIdentifier","src":"9728:3:97"},"nativeSrc":"9728:9:97","nodeType":"YulFunctionCall","src":"9728:9:97"},"variableNames":[{"name":"product","nativeSrc":"9717:7:97","nodeType":"YulIdentifier","src":"9717:7:97"}]},{"body":{"nativeSrc":"9795:22:97","nodeType":"YulBlock","src":"9795:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9797:16:97","nodeType":"YulIdentifier","src":"9797:16:97"},"nativeSrc":"9797:18:97","nodeType":"YulFunctionCall","src":"9797:18:97"},"nativeSrc":"9797:18:97","nodeType":"YulExpressionStatement","src":"9797:18:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"9766:1:97","nodeType":"YulIdentifier","src":"9766:1:97"}],"functionName":{"name":"iszero","nativeSrc":"9759:6:97","nodeType":"YulIdentifier","src":"9759:6:97"},"nativeSrc":"9759:9:97","nodeType":"YulFunctionCall","src":"9759:9:97"},{"arguments":[{"name":"y","nativeSrc":"9773:1:97","nodeType":"YulIdentifier","src":"9773:1:97"},{"arguments":[{"name":"product","nativeSrc":"9780:7:97","nodeType":"YulIdentifier","src":"9780:7:97"},{"name":"x","nativeSrc":"9789:1:97","nodeType":"YulIdentifier","src":"9789:1:97"}],"functionName":{"name":"div","nativeSrc":"9776:3:97","nodeType":"YulIdentifier","src":"9776:3:97"},"nativeSrc":"9776:15:97","nodeType":"YulFunctionCall","src":"9776:15:97"}],"functionName":{"name":"eq","nativeSrc":"9770:2:97","nodeType":"YulIdentifier","src":"9770:2:97"},"nativeSrc":"9770:22:97","nodeType":"YulFunctionCall","src":"9770:22:97"}],"functionName":{"name":"or","nativeSrc":"9756:2:97","nodeType":"YulIdentifier","src":"9756:2:97"},"nativeSrc":"9756:37:97","nodeType":"YulFunctionCall","src":"9756:37:97"}],"functionName":{"name":"iszero","nativeSrc":"9749:6:97","nodeType":"YulIdentifier","src":"9749:6:97"},"nativeSrc":"9749:45:97","nodeType":"YulFunctionCall","src":"9749:45:97"},"nativeSrc":"9746:71:97","nodeType":"YulIf","src":"9746:71:97"}]},"name":"checked_mul_t_uint256","nativeSrc":"9655:168:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"9686:1:97","nodeType":"YulTypedName","src":"9686:1:97","type":""},{"name":"y","nativeSrc":"9689:1:97","nodeType":"YulTypedName","src":"9689:1:97","type":""}],"returnVariables":[{"name":"product","nativeSrc":"9695:7:97","nodeType":"YulTypedName","src":"9695:7:97","type":""}],"src":"9655:168:97"},{"body":{"nativeSrc":"9874:228:97","nodeType":"YulBlock","src":"9874:228:97","statements":[{"body":{"nativeSrc":"9905:168:97","nodeType":"YulBlock","src":"9905:168:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9926:1:97","nodeType":"YulLiteral","src":"9926:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"9929:77:97","nodeType":"YulLiteral","src":"9929:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"9919:6:97","nodeType":"YulIdentifier","src":"9919:6:97"},"nativeSrc":"9919:88:97","nodeType":"YulFunctionCall","src":"9919:88:97"},"nativeSrc":"9919:88:97","nodeType":"YulExpressionStatement","src":"9919:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10027:1:97","nodeType":"YulLiteral","src":"10027:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"10030:4:97","nodeType":"YulLiteral","src":"10030:4:97","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"10020:6:97","nodeType":"YulIdentifier","src":"10020:6:97"},"nativeSrc":"10020:15:97","nodeType":"YulFunctionCall","src":"10020:15:97"},"nativeSrc":"10020:15:97","nodeType":"YulExpressionStatement","src":"10020:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10055:1:97","nodeType":"YulLiteral","src":"10055:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"10058:4:97","nodeType":"YulLiteral","src":"10058:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"10048:6:97","nodeType":"YulIdentifier","src":"10048:6:97"},"nativeSrc":"10048:15:97","nodeType":"YulFunctionCall","src":"10048:15:97"},"nativeSrc":"10048:15:97","nodeType":"YulExpressionStatement","src":"10048:15:97"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"9894:1:97","nodeType":"YulIdentifier","src":"9894:1:97"}],"functionName":{"name":"iszero","nativeSrc":"9887:6:97","nodeType":"YulIdentifier","src":"9887:6:97"},"nativeSrc":"9887:9:97","nodeType":"YulFunctionCall","src":"9887:9:97"},"nativeSrc":"9884:189:97","nodeType":"YulIf","src":"9884:189:97"},{"nativeSrc":"10082:14:97","nodeType":"YulAssignment","src":"10082:14:97","value":{"arguments":[{"name":"x","nativeSrc":"10091:1:97","nodeType":"YulIdentifier","src":"10091:1:97"},{"name":"y","nativeSrc":"10094:1:97","nodeType":"YulIdentifier","src":"10094:1:97"}],"functionName":{"name":"div","nativeSrc":"10087:3:97","nodeType":"YulIdentifier","src":"10087:3:97"},"nativeSrc":"10087:9:97","nodeType":"YulFunctionCall","src":"10087:9:97"},"variableNames":[{"name":"r","nativeSrc":"10082:1:97","nodeType":"YulIdentifier","src":"10082:1:97"}]}]},"name":"checked_div_t_uint256","nativeSrc":"9828:274:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"9859:1:97","nodeType":"YulTypedName","src":"9859:1:97","type":""},{"name":"y","nativeSrc":"9862:1:97","nodeType":"YulTypedName","src":"9862:1:97","type":""}],"returnVariables":[{"name":"r","nativeSrc":"9868:1:97","nodeType":"YulTypedName","src":"9868:1:97","type":""}],"src":"9828:274:97"},{"body":{"nativeSrc":"10290:288:97","nodeType":"YulBlock","src":"10290:288:97","statements":[{"nativeSrc":"10300:27:97","nodeType":"YulAssignment","src":"10300:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"10312:9:97","nodeType":"YulIdentifier","src":"10312:9:97"},{"kind":"number","nativeSrc":"10323:3:97","nodeType":"YulLiteral","src":"10323:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"10308:3:97","nodeType":"YulIdentifier","src":"10308:3:97"},"nativeSrc":"10308:19:97","nodeType":"YulFunctionCall","src":"10308:19:97"},"variableNames":[{"name":"tail","nativeSrc":"10300:4:97","nodeType":"YulIdentifier","src":"10300:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"10343:9:97","nodeType":"YulIdentifier","src":"10343:9:97"},{"arguments":[{"name":"value0","nativeSrc":"10358:6:97","nodeType":"YulIdentifier","src":"10358:6:97"},{"kind":"number","nativeSrc":"10366:26:97","nodeType":"YulLiteral","src":"10366:26:97","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"10354:3:97","nodeType":"YulIdentifier","src":"10354:3:97"},"nativeSrc":"10354:39:97","nodeType":"YulFunctionCall","src":"10354:39:97"}],"functionName":{"name":"mstore","nativeSrc":"10336:6:97","nodeType":"YulIdentifier","src":"10336:6:97"},"nativeSrc":"10336:58:97","nodeType":"YulFunctionCall","src":"10336:58:97"},"nativeSrc":"10336:58:97","nodeType":"YulExpressionStatement","src":"10336:58:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10414:9:97","nodeType":"YulIdentifier","src":"10414:9:97"},{"kind":"number","nativeSrc":"10425:2:97","nodeType":"YulLiteral","src":"10425:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10410:3:97","nodeType":"YulIdentifier","src":"10410:3:97"},"nativeSrc":"10410:18:97","nodeType":"YulFunctionCall","src":"10410:18:97"},{"arguments":[{"name":"value1","nativeSrc":"10434:6:97","nodeType":"YulIdentifier","src":"10434:6:97"},{"kind":"number","nativeSrc":"10442:42:97","nodeType":"YulLiteral","src":"10442:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"10430:3:97","nodeType":"YulIdentifier","src":"10430:3:97"},"nativeSrc":"10430:55:97","nodeType":"YulFunctionCall","src":"10430:55:97"}],"functionName":{"name":"mstore","nativeSrc":"10403:6:97","nodeType":"YulIdentifier","src":"10403:6:97"},"nativeSrc":"10403:83:97","nodeType":"YulFunctionCall","src":"10403:83:97"},"nativeSrc":"10403:83:97","nodeType":"YulExpressionStatement","src":"10403:83:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10506:9:97","nodeType":"YulIdentifier","src":"10506:9:97"},{"kind":"number","nativeSrc":"10517:2:97","nodeType":"YulLiteral","src":"10517:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10502:3:97","nodeType":"YulIdentifier","src":"10502:3:97"},"nativeSrc":"10502:18:97","nodeType":"YulFunctionCall","src":"10502:18:97"},{"name":"value2","nativeSrc":"10522:6:97","nodeType":"YulIdentifier","src":"10522:6:97"}],"functionName":{"name":"mstore","nativeSrc":"10495:6:97","nodeType":"YulIdentifier","src":"10495:6:97"},"nativeSrc":"10495:34:97","nodeType":"YulFunctionCall","src":"10495:34:97"},"nativeSrc":"10495:34:97","nodeType":"YulExpressionStatement","src":"10495:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10549:9:97","nodeType":"YulIdentifier","src":"10549:9:97"},{"kind":"number","nativeSrc":"10560:2:97","nodeType":"YulLiteral","src":"10560:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"10545:3:97","nodeType":"YulIdentifier","src":"10545:3:97"},"nativeSrc":"10545:18:97","nodeType":"YulFunctionCall","src":"10545:18:97"},{"name":"value3","nativeSrc":"10565:6:97","nodeType":"YulIdentifier","src":"10565:6:97"}],"functionName":{"name":"mstore","nativeSrc":"10538:6:97","nodeType":"YulIdentifier","src":"10538:6:97"},"nativeSrc":"10538:34:97","nodeType":"YulFunctionCall","src":"10538:34:97"},"nativeSrc":"10538:34:97","nodeType":"YulExpressionStatement","src":"10538:34:97"}]},"name":"abi_encode_tuple_t_uint96_t_address_t_uint256_t_uint256__to_t_uint96_t_address_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"10107:471:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10235:9:97","nodeType":"YulTypedName","src":"10235:9:97","type":""},{"name":"value3","nativeSrc":"10246:6:97","nodeType":"YulTypedName","src":"10246:6:97","type":""},{"name":"value2","nativeSrc":"10254:6:97","nodeType":"YulTypedName","src":"10254:6:97","type":""},{"name":"value1","nativeSrc":"10262:6:97","nodeType":"YulTypedName","src":"10262:6:97","type":""},{"name":"value0","nativeSrc":"10270:6:97","nodeType":"YulTypedName","src":"10270:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10281:4:97","nodeType":"YulTypedName","src":"10281:4:97","type":""}],"src":"10107:471:97"},{"body":{"nativeSrc":"10664:103:97","nodeType":"YulBlock","src":"10664:103:97","statements":[{"body":{"nativeSrc":"10710:16:97","nodeType":"YulBlock","src":"10710:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10719:1:97","nodeType":"YulLiteral","src":"10719:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"10722:1:97","nodeType":"YulLiteral","src":"10722:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10712:6:97","nodeType":"YulIdentifier","src":"10712:6:97"},"nativeSrc":"10712:12:97","nodeType":"YulFunctionCall","src":"10712:12:97"},"nativeSrc":"10712:12:97","nodeType":"YulExpressionStatement","src":"10712:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10685:7:97","nodeType":"YulIdentifier","src":"10685:7:97"},{"name":"headStart","nativeSrc":"10694:9:97","nodeType":"YulIdentifier","src":"10694:9:97"}],"functionName":{"name":"sub","nativeSrc":"10681:3:97","nodeType":"YulIdentifier","src":"10681:3:97"},"nativeSrc":"10681:23:97","nodeType":"YulFunctionCall","src":"10681:23:97"},{"kind":"number","nativeSrc":"10706:2:97","nodeType":"YulLiteral","src":"10706:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"10677:3:97","nodeType":"YulIdentifier","src":"10677:3:97"},"nativeSrc":"10677:32:97","nodeType":"YulFunctionCall","src":"10677:32:97"},"nativeSrc":"10674:52:97","nodeType":"YulIf","src":"10674:52:97"},{"nativeSrc":"10735:26:97","nodeType":"YulAssignment","src":"10735:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"10751:9:97","nodeType":"YulIdentifier","src":"10751:9:97"}],"functionName":{"name":"mload","nativeSrc":"10745:5:97","nodeType":"YulIdentifier","src":"10745:5:97"},"nativeSrc":"10745:16:97","nodeType":"YulFunctionCall","src":"10745:16:97"},"variableNames":[{"name":"value0","nativeSrc":"10735:6:97","nodeType":"YulIdentifier","src":"10735:6:97"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"10583:184:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10630:9:97","nodeType":"YulTypedName","src":"10630:9:97","type":""},{"name":"dataEnd","nativeSrc":"10641:7:97","nodeType":"YulTypedName","src":"10641:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10653:6:97","nodeType":"YulTypedName","src":"10653:6:97","type":""}],"src":"10583:184:97"},{"body":{"nativeSrc":"10929:211:97","nodeType":"YulBlock","src":"10929:211:97","statements":[{"nativeSrc":"10939:26:97","nodeType":"YulAssignment","src":"10939:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"10951:9:97","nodeType":"YulIdentifier","src":"10951:9:97"},{"kind":"number","nativeSrc":"10962:2:97","nodeType":"YulLiteral","src":"10962:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"10947:3:97","nodeType":"YulIdentifier","src":"10947:3:97"},"nativeSrc":"10947:18:97","nodeType":"YulFunctionCall","src":"10947:18:97"},"variableNames":[{"name":"tail","nativeSrc":"10939:4:97","nodeType":"YulIdentifier","src":"10939:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"10981:9:97","nodeType":"YulIdentifier","src":"10981:9:97"},{"arguments":[{"name":"value0","nativeSrc":"10996:6:97","nodeType":"YulIdentifier","src":"10996:6:97"},{"kind":"number","nativeSrc":"11004:42:97","nodeType":"YulLiteral","src":"11004:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"10992:3:97","nodeType":"YulIdentifier","src":"10992:3:97"},"nativeSrc":"10992:55:97","nodeType":"YulFunctionCall","src":"10992:55:97"}],"functionName":{"name":"mstore","nativeSrc":"10974:6:97","nodeType":"YulIdentifier","src":"10974:6:97"},"nativeSrc":"10974:74:97","nodeType":"YulFunctionCall","src":"10974:74:97"},"nativeSrc":"10974:74:97","nodeType":"YulExpressionStatement","src":"10974:74:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11068:9:97","nodeType":"YulIdentifier","src":"11068:9:97"},{"kind":"number","nativeSrc":"11079:2:97","nodeType":"YulLiteral","src":"11079:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11064:3:97","nodeType":"YulIdentifier","src":"11064:3:97"},"nativeSrc":"11064:18:97","nodeType":"YulFunctionCall","src":"11064:18:97"},{"name":"value1","nativeSrc":"11084:6:97","nodeType":"YulIdentifier","src":"11084:6:97"}],"functionName":{"name":"mstore","nativeSrc":"11057:6:97","nodeType":"YulIdentifier","src":"11057:6:97"},"nativeSrc":"11057:34:97","nodeType":"YulFunctionCall","src":"11057:34:97"},"nativeSrc":"11057:34:97","nodeType":"YulExpressionStatement","src":"11057:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11111:9:97","nodeType":"YulIdentifier","src":"11111:9:97"},{"kind":"number","nativeSrc":"11122:2:97","nodeType":"YulLiteral","src":"11122:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11107:3:97","nodeType":"YulIdentifier","src":"11107:3:97"},"nativeSrc":"11107:18:97","nodeType":"YulFunctionCall","src":"11107:18:97"},{"name":"value2","nativeSrc":"11127:6:97","nodeType":"YulIdentifier","src":"11127:6:97"}],"functionName":{"name":"mstore","nativeSrc":"11100:6:97","nodeType":"YulIdentifier","src":"11100:6:97"},"nativeSrc":"11100:34:97","nodeType":"YulFunctionCall","src":"11100:34:97"},"nativeSrc":"11100:34:97","nodeType":"YulExpressionStatement","src":"11100:34:97"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"10772:368:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10882:9:97","nodeType":"YulTypedName","src":"10882:9:97","type":""},{"name":"value2","nativeSrc":"10893:6:97","nodeType":"YulTypedName","src":"10893:6:97","type":""},{"name":"value1","nativeSrc":"10901:6:97","nodeType":"YulTypedName","src":"10901:6:97","type":""},{"name":"value0","nativeSrc":"10909:6:97","nodeType":"YulTypedName","src":"10909:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10920:4:97","nodeType":"YulTypedName","src":"10920:4:97","type":""}],"src":"10772:368:97"},{"body":{"nativeSrc":"11319:233:97","nodeType":"YulBlock","src":"11319:233:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"11336:9:97","nodeType":"YulIdentifier","src":"11336:9:97"},{"kind":"number","nativeSrc":"11347:2:97","nodeType":"YulLiteral","src":"11347:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"11329:6:97","nodeType":"YulIdentifier","src":"11329:6:97"},"nativeSrc":"11329:21:97","nodeType":"YulFunctionCall","src":"11329:21:97"},"nativeSrc":"11329:21:97","nodeType":"YulExpressionStatement","src":"11329:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11370:9:97","nodeType":"YulIdentifier","src":"11370:9:97"},{"kind":"number","nativeSrc":"11381:2:97","nodeType":"YulLiteral","src":"11381:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11366:3:97","nodeType":"YulIdentifier","src":"11366:3:97"},"nativeSrc":"11366:18:97","nodeType":"YulFunctionCall","src":"11366:18:97"},{"kind":"number","nativeSrc":"11386:2:97","nodeType":"YulLiteral","src":"11386:2:97","type":"","value":"43"}],"functionName":{"name":"mstore","nativeSrc":"11359:6:97","nodeType":"YulIdentifier","src":"11359:6:97"},"nativeSrc":"11359:30:97","nodeType":"YulFunctionCall","src":"11359:30:97"},"nativeSrc":"11359:30:97","nodeType":"YulExpressionStatement","src":"11359:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11409:9:97","nodeType":"YulIdentifier","src":"11409:9:97"},{"kind":"number","nativeSrc":"11420:2:97","nodeType":"YulLiteral","src":"11420:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11405:3:97","nodeType":"YulIdentifier","src":"11405:3:97"},"nativeSrc":"11405:18:97","nodeType":"YulFunctionCall","src":"11405:18:97"},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069","kind":"string","nativeSrc":"11425:34:97","nodeType":"YulLiteral","src":"11425:34:97","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nativeSrc":"11398:6:97","nodeType":"YulIdentifier","src":"11398:6:97"},"nativeSrc":"11398:62:97","nodeType":"YulFunctionCall","src":"11398:62:97"},"nativeSrc":"11398:62:97","nodeType":"YulExpressionStatement","src":"11398:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11480:9:97","nodeType":"YulIdentifier","src":"11480:9:97"},{"kind":"number","nativeSrc":"11491:2:97","nodeType":"YulLiteral","src":"11491:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11476:3:97","nodeType":"YulIdentifier","src":"11476:3:97"},"nativeSrc":"11476:18:97","nodeType":"YulFunctionCall","src":"11476:18:97"},{"hexValue":"6e697469616c697a696e67","kind":"string","nativeSrc":"11496:13:97","nodeType":"YulLiteral","src":"11496:13:97","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nativeSrc":"11469:6:97","nodeType":"YulIdentifier","src":"11469:6:97"},"nativeSrc":"11469:41:97","nodeType":"YulFunctionCall","src":"11469:41:97"},"nativeSrc":"11469:41:97","nodeType":"YulExpressionStatement","src":"11469:41:97"},{"nativeSrc":"11519:27:97","nodeType":"YulAssignment","src":"11519:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"11531:9:97","nodeType":"YulIdentifier","src":"11531:9:97"},{"kind":"number","nativeSrc":"11542:3:97","nodeType":"YulLiteral","src":"11542:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"11527:3:97","nodeType":"YulIdentifier","src":"11527:3:97"},"nativeSrc":"11527:19:97","nodeType":"YulFunctionCall","src":"11527:19:97"},"variableNames":[{"name":"tail","nativeSrc":"11519:4:97","nodeType":"YulIdentifier","src":"11519:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11145:407:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11296:9:97","nodeType":"YulTypedName","src":"11296:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11310:4:97","nodeType":"YulTypedName","src":"11310:4:97","type":""}],"src":"11145:407:97"}]},"contents":"{\n    { }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_string(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 0x20) }\n        {\n            let _1 := 0x20\n            mstore(add(add(pos, i), _1), mload(add(add(value, i), _1)))\n        }\n        mstore(add(add(pos, length), 0x20), 0)\n        end := add(add(pos, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 0x20)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_string(value0, add(headStart, 32))\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_decode_tuple_t_struct$_RiskParameterUpdate_$16568_calldata_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if slt(sub(dataEnd, _1), 384) { revert(0, 0) }\n        value0 := _1\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_contract$_IRiskStewardReceiver_$17139__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_contract$_IAccessControlManagerV8_$13903__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_contract$_ICorePoolComptroller_$20347__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function validator_revert_uint96(value)\n    {\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_uint96(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_uint96(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function access_calldata_tail_t_bytes_calldata_ptr(base_ref, ptr_to_tail) -> addr, length\n    {\n        let rel_offset_of_tail := calldataload(ptr_to_tail)\n        if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1))) { revert(0, 0) }\n        let addr_1 := add(base_ref, rel_offset_of_tail)\n        length := calldataload(addr_1)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        addr := add(addr_1, 0x20)\n        if sgt(addr, sub(calldatasize(), length)) { revert(0, 0) }\n    }\n    function abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 41)\n        mstore(add(headStart, 64), \"Ownable2Step: caller is not the \")\n        mstore(add(headStart, 96), \"new owner\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 46)\n        mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n        mstore(add(headStart, 96), \"dy initialized\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"invalid acess control manager ad\")\n        mstore(add(headStart, 96), \"dress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n    }\n    function abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 32), 64)\n        tail := abi_encode_string(value1, add(headStart, 64))\n    }\n    function abi_decode_bool_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_bool_fromMemory(headStart)\n    }\n    function abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), 96)\n        tail := abi_encode_string(value2, add(headStart, 96))\n    }\n    function abi_decode_tuple_t_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := mload(headStart)\n        value1 := mload(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_boolt_uint256t_boolt_uint256t_uint256t_uint96t_bool_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n    {\n        if slt(sub(dataEnd, headStart), 224) { revert(0, 0) }\n        value0 := abi_decode_bool_fromMemory(headStart)\n        value1 := mload(add(headStart, 32))\n        value2 := abi_decode_bool_fromMemory(add(headStart, 64))\n        value3 := mload(add(headStart, 96))\n        value4 := mload(add(headStart, 128))\n        let value := mload(add(headStart, 160))\n        validator_revert_uint96(value)\n        value5 := value\n        value6 := abi_decode_bool_fromMemory(add(headStart, 192))\n    }\n    function abi_decode_tuple_t_boolt_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_bool_fromMemory(headStart)\n        value1 := mload(add(headStart, 32))\n        value2 := mload(add(headStart, 64))\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        if gt(diff, x) { panic_error_0x11() }\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        product := mul(x, y)\n        if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y)\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x12)\n            revert(0, 0x24)\n        }\n        r := div(x, y)\n    }\n    function abi_encode_tuple_t_uint96_t_address_t_uint256_t_uint256__to_t_uint96_t_address_t_uint256_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 128)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffff))\n        mstore(add(headStart, 32), and(value1, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), value3)\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n    }\n    function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 43)\n        mstore(add(headStart, 64), \"Initializable: contract is not i\")\n        mstore(add(headStart, 96), \"nitializing\")\n        tail := add(headStart, 128)\n    }\n}","id":97,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"14550":[{"length":32,"start":773},{"length":32,"start":3654},{"length":32,"start":4201}],"14554":[{"length":32,"start":502},{"length":32,"start":1906}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106101005760003560e01c8063b4a0bdf311610097578063e62569be11610066578063e62569be1461027a578063ee97f265146102e4578063f2fde38b146102ed578063fa7b81a01461030057600080fd5b8063b4a0bdf314610218578063bf63783914610236578063c4d66de814610249578063e30c39781461025c57600080fd5b8063715018a6116100d3578063715018a6146101a257806379ba5097146101aa5780638da5cb5b146101b2578063b296e6cb146101f157600080fd5b80630e32cb861461010557806312cc26471461011a5780632c47d86f1461016c57806342b7cfbd1461017f575b600080fd5b6101186101133660046115fe565b610327565b005b6101566040518060400160405280601181526020017f636f6c6c61746572616c466163746f727300000000000000000000000000000081525081565b6040516101639190611686565b60405180910390f35b61011861017a366004611699565b61033b565b61019261018d3660046116b2565b610434565b6040519015158152602001610163565b610118610671565b6101186106a3565b60335473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610163565b6101cc7f000000000000000000000000000000000000000000000000000000000000000081565b60975473ffffffffffffffffffffffffffffffffffffffff166101cc565b6101186102443660046116b2565b61075a565b6101186102573660046115fe565b610927565b60655473ffffffffffffffffffffffffffffffffffffffff166101cc565b60408051808201909152601181527f636f6c6c61746572616c466163746f72730000000000000000000000000000006020909101526102d67f8370b9108dc54d549f7f967730058d7047833aa4750d10ac92879dc48e94db6881565b604051908152602001610163565b6102d660c95481565b6101186102fb3660046115fe565b610ab7565b6101cc7f000000000000000000000000000000000000000000000000000000000000000081565b61032f610b67565b61033881610bea565b50565b6103796040518060400160405280601881526020017f7365745361666544656c74614270732875696e74323536290000000000000000815250610d0c565b6127108111156103b5576040517fc514758500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60c9548082036103f1576040517f925cd79500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60c982905560408051828152602081018490527fa05c0cb0e77decc6503407c6ca159106b8b001d9feb7927d08fad60094a934ab91015b60405180910390a15050565b60408051808201909152601181527f636f6c6c61746572616c466163746f727300000000000000000000000000000060209091015260007f7c8f46ef723ab2ab60806988cffa728fb87cc55b8af2ef536d78623b716b249860808301350161063f576104a861014083016101208401611708565b6bffffffffffffffffffffffff16156104c357506000919050565b60006104d560608401604085016115fe565b73ffffffffffffffffffffffffffffffffffffffff16635fe3b5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561051f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105439190611725565b905060008061059261055860a0870187611742565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610de592505050565b90925090506000806105b3856105ae60608a0160408b016115fe565b610e41565b9150915081841480156105c557508083145b156105fc576040517f925cd79500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b811580610607575080155b15610619575060009695505050505050565b6106238483610fd6565b801561063457506106348382610fd6565b979650505050505050565b6040517f80919d7b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f96c553eb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606554339073ffffffffffffffffffffffffffffffffffffffff168114610751576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e6572000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61033881611026565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146107c9576040517f3a739dd700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006107db60608301604084016115fe565b73ffffffffffffffffffffffffffffffffffffffff16635fe3b5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610825573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108499190611725565b9050600061085f61014084016101208501611708565b60408051808201909152601181527f636f6c6c61746572616c466163746f727300000000000000000000000000000060209091015290507f7c8f46ef723ab2ab60806988cffa728fb87cc55b8af2ef536d78623b716b249860808401350161063f576109226020840135836108da60608701604088016115fe565b846108e860a0890189611742565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061105792505050565b505050565b600054610100900460ff16158080156109475750600054600160ff909116105b806109615750303b158015610961575060005460ff166001145b6109ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610748565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610a4b57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610a54826112e7565b8015610ab357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610428565b5050565b610abf610b67565b6065805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff00000000000000000000000000000000000000009091168117909155610b2260335473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60335473ffffffffffffffffffffffffffffffffffffffff163314610be8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610748565b565b73ffffffffffffffffffffffffffffffffffffffff8116610c8d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e6167657220616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610748565b6097805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa09101610428565b6097546040517f18c5e8ab00000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff16906318c5e8ab90610d6590339086906004016117a7565b602060405180830381865afa158015610d82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da691906117f3565b905080610ab3573330836040517f4a3fa2930000000000000000000000000000000000000000000000000000000081526004016107489392919061180e565b6000808251604014610e23576040517f3bead5a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82806020019051810190610e379190611850565b9094909350915050565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610f38576040517f8e8f294b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152851690638e8f294b9060240160e060405180830381865afa158015610f03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f279190611874565b50939650909450610fcf9350505050565b6040517f8e8f294b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152851690638e8f294b90602401606060405180830381865afa158015610fa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc891906118e7565b9093509150505b9250929050565b600080828411610fef57610fea848461194b565b610ff9565b610ff9838561194b565b905060006127108460c95461100e919061195e565b6110189190611975565b909111159150505b92915050565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556103388161138f565b60008061106383610de5565b915091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036111b5576040517f9159b1770000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff8516600482015273ffffffffffffffffffffffffffffffffffffffff8681166024830152604482018490526064820183905260009190881690639159b177906084016020604051808303816000875af115801561114e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117291906119b0565b905080156111af576040517ff69d209900000000000000000000000000000000000000000000000000000000815260048101829052602401610748565b5061128b565b6bffffffffffffffffffffffff8416156111fb576040517f2083cd4000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f5cc4fdeb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86811660048301526024820184905260448201839052871690635cc4fdeb90606401600060405180830381600087803b15801561127257600080fd5b505af1158015611286573d6000803e3d6000fd5b505050505b604080518381526020810183905273ffffffffffffffffffffffffffffffffffffffff87169189917f345175133778c4fdb297de94ca161a1248998f240be2ae89b35225d0167e0648910160405180910390a350505050505050565b600054610100900460ff1661137e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610748565b611386611406565b610338816114a5565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff1661149d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610748565b610be861153c565b600054610100900460ff1661032f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610748565b600054610100900460ff166115d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610748565b610be833611026565b73ffffffffffffffffffffffffffffffffffffffff8116811461033857600080fd5b60006020828403121561161057600080fd5b813561161b816115dc565b9392505050565b6000815180845260005b818110156116485760208185018101518683018201520161162c565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b60208152600061161b6020830184611622565b6000602082840312156116ab57600080fd5b5035919050565b6000602082840312156116c457600080fd5b813567ffffffffffffffff8111156116db57600080fd5b8201610180818503121561161b57600080fd5b6bffffffffffffffffffffffff8116811461033857600080fd5b60006020828403121561171a57600080fd5b813561161b816116ee565b60006020828403121561173757600080fd5b815161161b816115dc565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261177757600080fd5b83018035915067ffffffffffffffff82111561179257600080fd5b602001915036819003821315610fcf57600080fd5b73ffffffffffffffffffffffffffffffffffffffff831681526040602082015260006117d66040830184611622565b949350505050565b805180151581146117ee57600080fd5b919050565b60006020828403121561180557600080fd5b61161b826117de565b600073ffffffffffffffffffffffffffffffffffffffff8086168352808516602084015250606060408301526118476060830184611622565b95945050505050565b6000806040838503121561186357600080fd5b505080516020909101519092909150565b600080600080600080600060e0888a03121561188f57600080fd5b611898886117de565b9650602088015195506118ad604089016117de565b9450606088015193506080880151925060a08801516118cb816116ee565b91506118d960c089016117de565b905092959891949750929550565b6000806000606084860312156118fc57600080fd5b611905846117de565b925060208401519150604084015190509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818103818111156110205761102061191c565b80820281158282048414176110205761102061191c565b6000826119ab577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000602082840312156119c257600080fd5b505191905056fea264697066735822122084b3e9480a69f40c7501f05acd488455a6cbdb0445afd1f687116b636361c5c264736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x100 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xB4A0BDF3 GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xE62569BE GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xE62569BE EQ PUSH2 0x27A JUMPI DUP1 PUSH4 0xEE97F265 EQ PUSH2 0x2E4 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x2ED JUMPI DUP1 PUSH4 0xFA7B81A0 EQ PUSH2 0x300 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB4A0BDF3 EQ PUSH2 0x218 JUMPI DUP1 PUSH4 0xBF637839 EQ PUSH2 0x236 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x249 JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x25C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x715018A6 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x1A2 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x1AA JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x1B2 JUMPI DUP1 PUSH4 0xB296E6CB EQ PUSH2 0x1F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xE32CB86 EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x12CC2647 EQ PUSH2 0x11A JUMPI DUP1 PUSH4 0x2C47D86F EQ PUSH2 0x16C JUMPI DUP1 PUSH4 0x42B7CFBD EQ PUSH2 0x17F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x118 PUSH2 0x113 CALLDATASIZE PUSH1 0x4 PUSH2 0x15FE JUMP JUMPDEST PUSH2 0x327 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x156 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x11 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x636F6C6C61746572616C466163746F7273000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x163 SWAP2 SWAP1 PUSH2 0x1686 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x118 PUSH2 0x17A CALLDATASIZE PUSH1 0x4 PUSH2 0x1699 JUMP JUMPDEST PUSH2 0x33B JUMP JUMPDEST PUSH2 0x192 PUSH2 0x18D CALLDATASIZE PUSH1 0x4 PUSH2 0x16B2 JUMP JUMPDEST PUSH2 0x434 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x163 JUMP JUMPDEST PUSH2 0x118 PUSH2 0x671 JUMP JUMPDEST PUSH2 0x118 PUSH2 0x6A3 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x163 JUMP JUMPDEST PUSH2 0x1CC PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1CC JUMP JUMPDEST PUSH2 0x118 PUSH2 0x244 CALLDATASIZE PUSH1 0x4 PUSH2 0x16B2 JUMP JUMPDEST PUSH2 0x75A JUMP JUMPDEST PUSH2 0x118 PUSH2 0x257 CALLDATASIZE PUSH1 0x4 PUSH2 0x15FE JUMP JUMPDEST PUSH2 0x927 JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1CC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x11 DUP2 MSTORE PUSH32 0x636F6C6C61746572616C466163746F7273000000000000000000000000000000 PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE PUSH2 0x2D6 PUSH32 0x8370B9108DC54D549F7F967730058D7047833AA4750D10AC92879DC48E94DB68 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x163 JUMP JUMPDEST PUSH2 0x2D6 PUSH1 0xC9 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x118 PUSH2 0x2FB CALLDATASIZE PUSH1 0x4 PUSH2 0x15FE JUMP JUMPDEST PUSH2 0xAB7 JUMP JUMPDEST PUSH2 0x1CC PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x32F PUSH2 0xB67 JUMP JUMPDEST PUSH2 0x338 DUP2 PUSH2 0xBEA JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x379 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x18 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x7365745361666544656C74614270732875696E74323536290000000000000000 DUP2 MSTORE POP PUSH2 0xD0C JUMP JUMPDEST PUSH2 0x2710 DUP2 GT ISZERO PUSH2 0x3B5 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC514758500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xC9 SLOAD DUP1 DUP3 SUB PUSH2 0x3F1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x925CD79500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xC9 DUP3 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0xA05C0CB0E77DECC6503407C6CA159106B8B001D9FEB7927D08FAD60094A934AB SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x11 DUP2 MSTORE PUSH32 0x636F6C6C61746572616C466163746F7273000000000000000000000000000000 PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE PUSH1 0x0 PUSH32 0x7C8F46EF723AB2AB60806988CFFA728FB87CC55B8AF2EF536D78623B716B2498 PUSH1 0x80 DUP4 ADD CALLDATALOAD ADD PUSH2 0x63F JUMPI PUSH2 0x4A8 PUSH2 0x140 DUP4 ADD PUSH2 0x120 DUP5 ADD PUSH2 0x1708 JUMP JUMPDEST PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND ISZERO PUSH2 0x4C3 JUMPI POP PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D5 PUSH1 0x60 DUP5 ADD PUSH1 0x40 DUP6 ADD PUSH2 0x15FE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x5FE3B567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x51F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x543 SWAP2 SWAP1 PUSH2 0x1725 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x592 PUSH2 0x558 PUSH1 0xA0 DUP8 ADD DUP8 PUSH2 0x1742 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0xDE5 SWAP3 POP POP POP JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x5B3 DUP6 PUSH2 0x5AE PUSH1 0x60 DUP11 ADD PUSH1 0x40 DUP12 ADD PUSH2 0x15FE JUMP JUMPDEST PUSH2 0xE41 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 DUP5 EQ DUP1 ISZERO PUSH2 0x5C5 JUMPI POP DUP1 DUP4 EQ JUMPDEST ISZERO PUSH2 0x5FC JUMPI PUSH1 0x40 MLOAD PUSH32 0x925CD79500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 ISZERO DUP1 PUSH2 0x607 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x619 JUMPI POP PUSH1 0x0 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x623 DUP5 DUP4 PUSH2 0xFD6 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x634 JUMPI POP PUSH2 0x634 DUP4 DUP3 PUSH2 0xFD6 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x80919D7B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x96C553EB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x65 SLOAD CALLER SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 EQ PUSH2 0x751 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C6532537465703A2063616C6C6572206973206E6F742074686520 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E6577206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x338 DUP2 PUSH2 0x1026 JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 AND EQ PUSH2 0x7C9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x3A739DD700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x7DB PUSH1 0x60 DUP4 ADD PUSH1 0x40 DUP5 ADD PUSH2 0x15FE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x5FE3B567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x825 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x849 SWAP2 SWAP1 PUSH2 0x1725 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x85F PUSH2 0x140 DUP5 ADD PUSH2 0x120 DUP6 ADD PUSH2 0x1708 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x11 DUP2 MSTORE PUSH32 0x636F6C6C61746572616C466163746F7273000000000000000000000000000000 PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE SWAP1 POP PUSH32 0x7C8F46EF723AB2AB60806988CFFA728FB87CC55B8AF2EF536D78623B716B2498 PUSH1 0x80 DUP5 ADD CALLDATALOAD ADD PUSH2 0x63F JUMPI PUSH2 0x922 PUSH1 0x20 DUP5 ADD CALLDATALOAD DUP4 PUSH2 0x8DA PUSH1 0x60 DUP8 ADD PUSH1 0x40 DUP9 ADD PUSH2 0x15FE JUMP JUMPDEST DUP5 PUSH2 0x8E8 PUSH1 0xA0 DUP10 ADD DUP10 PUSH2 0x1742 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1057 SWAP3 POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x947 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x961 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x961 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x9ED JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x647920696E697469616C697A6564000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x748 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0xA4B JUMPI PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0xA54 DUP3 PUSH2 0x12E7 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xAB3 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH2 0x428 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xABF PUSH2 0xB67 JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP1 SWAP2 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0xB22 PUSH1 0x33 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0xBE8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x748 JUMP JUMPDEST JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0xC8D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C696420616365737320636F6E74726F6C206D616E61676572206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x748 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 SWAP1 SWAP3 AND DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH32 0x66FD58E82F7B31A2A5C30E0888F3093EFE4E111B00CD2B0C31FE014601293AA0 SWAP2 ADD PUSH2 0x428 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0x40 MLOAD PUSH32 0x18C5E8AB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0xD65 SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x17A7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD82 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xDA6 SWAP2 SWAP1 PUSH2 0x17F3 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0xAB3 JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH32 0x4A3FA29300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x748 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x180E JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD PUSH1 0x40 EQ PUSH2 0xE23 JUMPI PUSH1 0x40 MLOAD PUSH32 0x3BEAD5A900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xE37 SWAP2 SWAP1 PUSH2 0x1850 JUMP JUMPDEST SWAP1 SWAP5 SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xF38 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8E8F294B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 AND SWAP1 PUSH4 0x8E8F294B SWAP1 PUSH1 0x24 ADD PUSH1 0xE0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF03 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF27 SWAP2 SWAP1 PUSH2 0x1874 JUMP JUMPDEST POP SWAP4 SWAP7 POP SWAP1 SWAP5 POP PUSH2 0xFCF SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8E8F294B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 AND SWAP1 PUSH4 0x8E8F294B SWAP1 PUSH1 0x24 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xFA4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xFC8 SWAP2 SWAP1 PUSH2 0x18E7 JUMP JUMPDEST SWAP1 SWAP4 POP SWAP2 POP POP JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP5 GT PUSH2 0xFEF JUMPI PUSH2 0xFEA DUP5 DUP5 PUSH2 0x194B JUMP JUMPDEST PUSH2 0xFF9 JUMP JUMPDEST PUSH2 0xFF9 DUP4 DUP6 PUSH2 0x194B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2710 DUP5 PUSH1 0xC9 SLOAD PUSH2 0x100E SWAP2 SWAP1 PUSH2 0x195E JUMP JUMPDEST PUSH2 0x1018 SWAP2 SWAP1 PUSH2 0x1975 JUMP JUMPDEST SWAP1 SWAP2 GT ISZERO SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND SWAP1 SSTORE PUSH2 0x338 DUP2 PUSH2 0x138F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1063 DUP4 PUSH2 0xDE5 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x11B5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x9159B17700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP5 SWAP1 MSTORE PUSH1 0x64 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP9 AND SWAP1 PUSH4 0x9159B177 SWAP1 PUSH1 0x84 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x114E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1172 SWAP2 SWAP1 PUSH2 0x19B0 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x11AF JUMPI PUSH1 0x40 MLOAD PUSH32 0xF69D209900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x748 JUMP JUMPDEST POP PUSH2 0x128B JUMP JUMPDEST PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND ISZERO PUSH2 0x11FB JUMPI PUSH1 0x40 MLOAD PUSH32 0x2083CD4000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x5CC4FDEB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 DUP3 ADD DUP4 SWAP1 MSTORE DUP8 AND SWAP1 PUSH4 0x5CC4FDEB SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1272 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1286 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND SWAP2 DUP10 SWAP2 PUSH32 0x345175133778C4FDB297DE94CA161A1248998F240BE2AE89B35225D0167E0648 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x137E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x748 JUMP JUMPDEST PUSH2 0x1386 PUSH2 0x1406 JUMP JUMPDEST PUSH2 0x338 DUP2 PUSH2 0x14A5 JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x149D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x748 JUMP JUMPDEST PUSH2 0xBE8 PUSH2 0x153C JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x32F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x748 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x15D3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x748 JUMP JUMPDEST PUSH2 0xBE8 CALLER PUSH2 0x1026 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x338 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1610 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x161B DUP2 PUSH2 0x15DC JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1648 JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x162C JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x161B PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1622 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x16DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH2 0x180 DUP2 DUP6 SUB SLT ISZERO PUSH2 0x161B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x338 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x171A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x161B DUP2 PUSH2 0x16EE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1737 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x161B DUP2 PUSH2 0x15DC JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x1777 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1792 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0xFCF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x17D6 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1622 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x17EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1805 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x161B DUP3 PUSH2 0x17DE JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP7 AND DUP4 MSTORE DUP1 DUP6 AND PUSH1 0x20 DUP5 ADD MSTORE POP PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x1847 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x1622 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1863 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 SWAP1 SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x188F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1898 DUP9 PUSH2 0x17DE JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP9 ADD MLOAD SWAP6 POP PUSH2 0x18AD PUSH1 0x40 DUP10 ADD PUSH2 0x17DE JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD MLOAD SWAP4 POP PUSH1 0x80 DUP9 ADD MLOAD SWAP3 POP PUSH1 0xA0 DUP9 ADD MLOAD PUSH2 0x18CB DUP2 PUSH2 0x16EE JUMP JUMPDEST SWAP2 POP PUSH2 0x18D9 PUSH1 0xC0 DUP10 ADD PUSH2 0x17DE JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x18FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1905 DUP5 PUSH2 0x17DE JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD MLOAD SWAP2 POP PUSH1 0x40 DUP5 ADD MLOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x1020 JUMPI PUSH2 0x1020 PUSH2 0x191C JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x1020 JUMPI PUSH2 0x1020 PUSH2 0x191C JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x19AB JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x19C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP5 0xB3 0xE9 BASEFEE EXP PUSH10 0xF40C7501F05ACD488455 0xA6 0xCB 0xDB DIV GASLIMIT 0xAF 0xD1 0xF6 DUP8 GT PUSH12 0x636361C5C264736F6C634300 ADDMOD NOT STOP CALLER ","sourceMap":"882:10712:61:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2103:147:57;;;;;;:::i;:::-;;:::i;:::-;;1041:63:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;4851:460;;;;;;:::i;:::-;;:::i;5751:1058::-;;;;;;:::i;:::-;;:::i;:::-;;;1892:14:97;;1885:22;1867:41;;1855:2;1840:18;5751:1058:61;1727:187:97;1218:103:60;;;:::i;2010:206:25:-;;;:::i;1441:85:26:-;1513:6;;;;1441:85;;;2095:42:97;2083:55;;;2065:74;;2053:2;2038:18;1441:85:26;1919:226:97;1836:59:61;;;;;2346:125:57;2443:21;;;;2346:125;;7406:548:61;;;;;;:::i;:::-;;:::i;4270:135::-;;;;;;:::i;:::-;;:::i;1123:99:25:-;1202:13;;;;1123:99;;1224:85:61;1289:18;;;;;;;;;;;;;;;;;;1224:85;1273:36;1224:85;;;;;2821:25:97;;;2809:2;2794:18;1224:85:61;2675:177:97;947:27:60;;;;;;1415:178:25;;;;;;:::i;:::-;;:::i;1654:59:61:-;;;;;2103:147:57;1334:13:26;:11;:13::i;:::-;2196:47:57::1;2221:21;2196:24;:47::i;:::-;2103:147:::0;:::o;4851:460:61:-;4918:47;;;;;;;;;;;;;;;;;;:19;:47::i;:::-;593:5:60;4979:13:61;:23;4975:82;;;5025:21;;;;;;;;;;;;;;4975:82;5092:12;;5119:32;;;5115:86;;5174:16;;;;;;;;;;;;;;5115:86;5210:12;:28;;;5253:51;;;3474:25:97;;;3530:2;3515:18;;3508:34;;;5253:51:61;;3447:18:97;5253:51:61;;;;;;;;4908:403;4851:460;:::o;5751:1058::-;1289:18;;;;;;;;;;;;;;;;;;5845:4;5865:46;:20;;;;:46;5861:901;;6022:13;;;;;;;;:::i;:::-;:18;;;6018:36;;-1:-1:-1;6049:5:61;;5751:1058;-1:-1:-1;5751:1058:61:o;6018:36::-;6069:19;6107:13;;;;;;;;:::i;:::-;6091:42;;;:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6069:66;-1:-1:-1;6151:13:61;;6183:44;6211:15;;;;:6;:15;:::i;:::-;6183:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6183:27:61;;-1:-1:-1;;;6183:44:61:i;:::-;6150:77;;-1:-1:-1;6150:77:61;-1:-1:-1;6242:14:61;;6276:56;6305:11;6318:13;;;;;;;;:::i;:::-;6276:28;:56::i;:::-;6241:91;;;;6443:6;6434:5;:15;:34;;;;;6462:6;6453:5;:15;6434:34;6430:96;;;6495:16;;;;;;;;;;;;;;6430:96;6619:11;;;:26;;-1:-1:-1;6634:11:61;;6619:26;6615:44;;;-1:-1:-1;6654:5:61;;5751:1058;-1:-1:-1;;;;;;5751:1058:61:o;6615:44::-;6681:33;6700:5;6707:6;6681:18;:33::i;:::-;:70;;;;;6718:33;6737:5;6744:6;6718:18;:33::i;:::-;6674:77;5751:1058;-1:-1:-1;;;;;;;5751:1058:61:o;5861:901::-;6779:23;;;;;;;;;;;;;;1218:103:60;1285:29;;;;;;;;;;;;;;2010:206:25;1202:13;;929:10:29;;2103:24:25;1202:13;2103:24;;2095:78;;;;;;;4988:2:97;2095:78:25;;;4970:21:97;5027:2;5007:18;;;5000:30;5066:34;5046:18;;;5039:62;5137:11;5117:18;;;5110:39;5166:19;;2095:78:25;;;;;;;;;2183:26;2202:6;2183:18;:26::i;7406:548:61:-;7487:10;:44;7509:21;7487:44;;7483:107;;7554:25;;;;;;;;;;;;;;7483:107;7600:19;7638:13;;;;;;;;:::i;:::-;7622:42;;;:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7600:66;-1:-1:-1;7676:13:61;7692;;;;;;;;:::i;:::-;1289:18;;;;;;;;;;;;;;;;;;7676:29;-1:-1:-1;7720:46:61;:20;;;;:46;7716:232;;7782:94;7807:15;;;;7824:11;7837:13;;;;;;;;:::i;:::-;7852:6;7860:15;;;;:6;:15;:::i;:::-;7782:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7782:24:61;;-1:-1:-1;;;7782:94:61:i;:::-;7473:481;;7406:548;:::o;4270:135::-;3268:19:27;3291:13;;;;;;3290:14;;3336:34;;;;-1:-1:-1;3354:12:27;;3369:1;3354:12;;;;:16;3336:34;3335:108;;;-1:-1:-1;3415:4:27;1476:19:28;:23;;;3376:66:27;;-1:-1:-1;3425:12:27;;;;;:17;3376:66;3314:201;;;;;;;5398:2:97;3314:201:27;;;5380:21:97;5437:2;5417:18;;;5410:30;5476:34;5456:18;;;5449:62;5547:16;5527:18;;;5520:44;5581:19;;3314:201:27;5196:410:97;3314:201:27;3525:12;:16;;;;3540:1;3525:16;;;3551:65;;;;3585:13;:20;;;;;;;;3551:65;4352:46:61::1;4376:21;4352:23;:46::i;:::-;3640:14:27::0;3636:99;;;3686:5;3670:21;;;;;;3710:14;;-1:-1:-1;5763:36:97;;3710:14:27;;5751:2:97;5736:18;3710:14:27;5611:194:97;3636:99:27;3258:483;4270:135:61;:::o;1415:178:25:-;1334:13:26;:11;:13::i;:::-;1504::25::1;:24:::0;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;1568:7:::1;1513:6:26::0;;;;;1441:85;1568:7:25::1;1543:43;;;;;;;;;;;;1415:178:::0;:::o;1599:130:26:-;1513:6;;1662:23;1513:6;929:10:29;1662:23:26;1654:68;;;;;;;6012:2:97;1654:68:26;;;5994:21:97;;;6031:18;;;6024:30;6090:34;6070:18;;;6063:62;6142:18;;1654:68:26;5810:356:97;1654:68:26;1599:130::o;2642:425:57:-;2734:44;;;2726:94;;;;;;;6373:2:97;2726:94:57;;;6355:21:97;6412:2;6392:18;;;6385:30;6451:34;6431:18;;;6424:62;6522:7;6502:18;;;6495:35;6547:19;;2726:94:57;6171:401:97;2726:94:57;2872:21;;;;2904:70;;;;;;;;;;;2989:71;;;2872:21;;;;6812:34:97;;;6877:2;6862:18;;6855:43;;;;2989:71:57;;6724:18:97;2989:71:57;6577:327:97;3204:282:57;3305:21;;:60;;;;;3282:20;;3305:21;;;:37;;:60;;3343:10;;3355:9;;3305:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3282:83;;3381:15;3376:104;;3432:10;3452:4;3459:9;3419:50;;;;;;;;;;;;;:::i;11343:249:61:-;11422:9;11433;11458:4;:11;11473:2;11458:17;11454:77;;11498:22;;;;;;;;;;;;;;11454:77;11560:4;11549:36;;;;;;;;;;;;:::i;:::-;11540:45;;;;-1:-1:-1;11343:249:61;-1:-1:-1;;11343:249:61:o;10384:589::-;10504:31;10537:35;10611:21;10588:45;;:11;:45;;;10584:383;;10716:66;;;;;:58;2083:55:97;;;10716:66:61;;;2065:74:97;10716:58:61;;;;;2038:18:97;;10716:66:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;10649:133:61;;-1:-1:-1;10649:133:61;;-1:-1:-1;10584:383:61;;-1:-1:-1;;;;10584:383:61;;10872:84;;;;;:46;2083:55:97;;;10872:84:61;;;2065:74:97;10872:46:61;;;;;2038:18:97;;10872:84:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10813:143;;-1:-1:-1;10813:143:61;-1:-1:-1;;10584:383:61;10384:589;;;;;:::o;1640:303:60:-;1731:4;1747:12;1773;1762:8;:23;:75;;1814:23;1829:8;1814:12;:23;:::i;:::-;1762:75;;;1788:23;1799:12;1788:8;:23;:::i;:::-;1747:90;;1847:15;593:5;1881:12;1866;;:27;;;;:::i;:::-;1865:39;;;;:::i;:::-;1921:15;;;;;-1:-1:-1;;1640:303:60;;;;;:::o;1777:153:25:-;1866:13;1859:20;;;;;;1889:34;1914:8;1889:24;:34::i;8853:1038:61:-;9046:27;9075:31;9110:37;9138:8;9110:27;:37::i;:::-;9045:102;;;;9185:21;9162:45;;:11;:45;;;9158:623;;9243:193;;;;;10366:26:97;10354:39;;9243:193:61;;;10336:58:97;9243:53:61;10430:55:97;;;10410:18;;;10403:83;10502:18;;;10495:34;;;10545:18;;;10538:34;;;9223:17:61;;9243:53;;;;;;10308:19:97;;9243:193:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9223:213;-1:-1:-1;9454:14:61;;9450:63;;9477:36;;;;;;;;2821:25:97;;;2794:18;;9477:36:61;2675:177:97;9450:63:61;9209:315;9158:623;;;9548:11;;;;9544:37;;9568:13;;;;;;;;;;;;;;9544:37;9596:174;;;;;:58;10992:55:97;;;9596:174:61;;;10974:74:97;11064:18;;;11057:34;;;11107:18;;;11100:34;;;9596:58:61;;;;;10947:18:97;;9596:174:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9158:623;9796:88;;;3474:25:97;;;3530:2;3515:18;;3508:34;;;9796:88:61;;;;9821:8;;9796:88;;3447:18:97;9796:88:61;;;;;;;9035:856;;8853:1038;;;;;:::o;1420:194:57:-;5363:13:27;;;;;;;5355:69;;;;;;;11347:2:97;5355:69:27;;;11329:21:97;11386:2;11366:18;;;11359:30;11425:34;11405:18;;;11398:62;11496:13;11476:18;;;11469:41;11527:19;;5355:69:27;11145:407:97;5355:69:27;1520:21:57::1;:19;:21::i;:::-;1551:56;1585:21;1551:33;:56::i;2673:187:26:-:0;2765:6;;;;2781:17;;;;;;;;;;;2813:40;;2765:6;;;2781:17;2765:6;;2813:40;;2746:16;;2813:40;2736:124;2673:187;:::o;738:100:25:-;5363:13:27;;;;;;;5355:69;;;;;;;11347:2:97;5355:69:27;;;11329:21:97;11386:2;11366:18;;;11359:30;11425:34;11405:18;;;11398:62;11496:13;11476:18;;;11469:41;11527:19;;5355:69:27;11145:407:97;5355:69:27;805:26:25::1;:24;:26::i;1620:164:57:-:0;5363:13:27;;;;;;;5355:69;;;;;;;11347:2:97;5355:69:27;;;11329:21:97;11386:2;11366:18;;;11359:30;11425:34;11405:18;;;11398:62;11496:13;11476:18;;;11469:41;11527:19;;5355:69:27;11145:407:97;1104:111:26;5363:13:27;;;;;;;5355:69;;;;;;;11347:2:97;5355:69:27;;;11329:21:97;11386:2;11366:18;;;11359:30;11425:34;11405:18;;;11398:62;11496:13;11476:18;;;11469:41;11527:19;;5355:69:27;11145:407:97;5355:69:27;1176:32:26::1;929:10:29::0;1176:18:26::1;:32::i;14:154:97:-:0;100:42;93:5;89:54;82:5;79:65;69:93;;158:1;155;148:12;173:247;232:6;285:2;273:9;264:7;260:23;256:32;253:52;;;301:1;298;291:12;253:52;340:9;327:23;359:31;384:5;359:31;:::i;:::-;409:5;173:247;-1:-1:-1;;;173:247:97:o;425:482::-;467:3;505:5;499:12;532:6;527:3;520:19;557:1;567:162;581:6;578:1;575:13;567:162;;;643:4;699:13;;;695:22;;689:29;671:11;;;667:20;;660:59;596:12;567:162;;;571:3;774:1;767:4;758:6;753:3;749:16;745:27;738:38;896:4;826:66;821:2;813:6;809:15;805:88;800:3;796:98;792:109;785:116;;;425:482;;;;:::o;912:220::-;1061:2;1050:9;1043:21;1024:4;1081:45;1122:2;1111:9;1107:18;1099:6;1081:45;:::i;1137:180::-;1196:6;1249:2;1237:9;1228:7;1224:23;1220:32;1217:52;;;1265:1;1262;1255:12;1217:52;-1:-1:-1;1288:23:97;;1137:180;-1:-1:-1;1137:180:97:o;1322:400::-;1421:6;1474:2;1462:9;1453:7;1449:23;1445:32;1442:52;;;1490:1;1487;1480:12;1442:52;1530:9;1517:23;1563:18;1555:6;1552:30;1549:50;;;1595:1;1592;1585:12;1549:50;1618:22;;1674:3;1656:16;;;1652:26;1649:46;;;1691:1;1688;1681:12;3553:137;3638:26;3631:5;3627:38;3620:5;3617:49;3607:77;;3680:1;3677;3670:12;3695:245;3753:6;3806:2;3794:9;3785:7;3781:23;3777:32;3774:52;;;3822:1;3819;3812:12;3774:52;3861:9;3848:23;3880:30;3904:5;3880:30;:::i;3945:251::-;4015:6;4068:2;4056:9;4047:7;4043:23;4039:32;4036:52;;;4084:1;4081;4074:12;4036:52;4116:9;4110:16;4135:31;4160:5;4135:31;:::i;4201:580::-;4278:4;4284:6;4344:11;4331:25;4434:66;4423:8;4407:14;4403:29;4399:102;4379:18;4375:127;4365:155;;4516:1;4513;4506:12;4365:155;4543:33;;4595:20;;;-1:-1:-1;4638:18:97;4627:30;;4624:50;;;4670:1;4667;4660:12;4624:50;4703:4;4691:17;;-1:-1:-1;4734:14:97;4730:27;;;4720:38;;4717:58;;;4771:1;4768;4761:12;6909:340;7098:42;7090:6;7086:55;7075:9;7068:74;7178:2;7173;7162:9;7158:18;7151:30;7049:4;7198:45;7239:2;7228:9;7224:18;7216:6;7198:45;:::i;:::-;7190:53;6909:340;-1:-1:-1;;;;6909:340:97:o;7254:164::-;7330:13;;7379;;7372:21;7362:32;;7352:60;;7408:1;7405;7398:12;7352:60;7254:164;;;:::o;7423:202::-;7490:6;7543:2;7531:9;7522:7;7518:23;7514:32;7511:52;;;7559:1;7556;7549:12;7511:52;7582:37;7609:9;7582:37;:::i;7630:441::-;7798:4;7827:42;7908:2;7900:6;7896:15;7885:9;7878:34;7960:2;7952:6;7948:15;7943:2;7932:9;7928:18;7921:43;;8000:2;7995;7984:9;7980:18;7973:30;8020:45;8061:2;8050:9;8046:18;8038:6;8020:45;:::i;:::-;8012:53;7630:441;-1:-1:-1;;;;;7630:441:97:o;8076:245::-;8155:6;8163;8216:2;8204:9;8195:7;8191:23;8187:32;8184:52;;;8232:1;8229;8222:12;8184:52;-1:-1:-1;;8255:16:97;;8311:2;8296:18;;;8290:25;8255:16;;8290:25;;-1:-1:-1;8076:245:97:o;8326:673::-;8440:6;8448;8456;8464;8472;8480;8488;8541:3;8529:9;8520:7;8516:23;8512:33;8509:53;;;8558:1;8555;8548:12;8509:53;8581:37;8608:9;8581:37;:::i;:::-;8571:47;;8658:2;8647:9;8643:18;8637:25;8627:35;;8681:46;8723:2;8712:9;8708:18;8681:46;:::i;:::-;8671:56;;8767:2;8756:9;8752:18;8746:25;8736:35;;8811:3;8800:9;8796:19;8790:26;8780:36;;8859:3;8848:9;8844:19;8838:26;8873:30;8897:5;8873:30;:::i;:::-;8922:5;-1:-1:-1;8946:47:97;8988:3;8973:19;;8946:47;:::i;:::-;8936:57;;8326:673;;;;;;;;;;:::o;9004:324::-;9089:6;9097;9105;9158:2;9146:9;9137:7;9133:23;9129:32;9126:52;;;9174:1;9171;9164:12;9126:52;9197:37;9224:9;9197:37;:::i;:::-;9187:47;;9274:2;9263:9;9259:18;9253:25;9243:35;;9318:2;9307:9;9303:18;9297:25;9287:35;;9004:324;;;;;:::o;9333:184::-;9385:77;9382:1;9375:88;9482:4;9479:1;9472:15;9506:4;9503:1;9496:15;9522:128;9589:9;;;9610:11;;;9607:37;;;9624:18;;:::i;9655:168::-;9728:9;;;9759;;9776:15;;;9770:22;;9756:37;9746:71;;9797:18;;:::i;9828:274::-;9868:1;9894;9884:189;;9929:77;9926:1;9919:88;10030:4;10027:1;10020:15;10058:4;10055:1;10048:15;9884:189;-1:-1:-1;10087:9:97;;9828:274::o;10583:184::-;10653:6;10706:2;10694:9;10685:7;10681:23;10677:32;10674:52;;;10722:1;10719;10712:12;10674:52;-1:-1:-1;10745:16:97;;10583:184;-1:-1:-1;10583:184:97:o"},"gasEstimates":{"creation":{"codeDepositCost":"1331000","executionCost":"infinite","totalCost":"infinite"},"external":{"COLLATERAL_FACTORS()":"infinite","COLLATERAL_FACTORS_KEY()":"277","CORE_POOL_COMPTROLLER()":"infinite","RISK_STEWARD_RECEIVER()":"infinite","acceptOwnership()":"infinite","accessControlManager()":"2330","applyUpdate((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))":"infinite","initialize(address)":"infinite","isSafeForDirectExecution((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))":"infinite","owner()":"2363","pendingOwner()":"2396","renounceOwnership()":"203","safeDeltaBps()":"2339","setAccessControlManager(address)":"infinite","setSafeDeltaBps(uint256)":"infinite","transferOwnership(address)":"30400"},"internal":{"_decodeAbiEncodedTwoUint256(bytes memory)":"infinite","_getCurrentCollateralFactors(address,address)":"infinite","_updateCollateralFactors(uint256,address,address,uint96,bytes memory)":"infinite"}},"methodIdentifiers":{"COLLATERAL_FACTORS()":"12cc2647","COLLATERAL_FACTORS_KEY()":"e62569be","CORE_POOL_COMPTROLLER()":"fa7b81a0","RISK_STEWARD_RECEIVER()":"b296e6cb","acceptOwnership()":"79ba5097","accessControlManager()":"b4a0bdf3","applyUpdate((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))":"bf637839","initialize(address)":"c4d66de8","isSafeForDirectExecution((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))":"42b7cfbd","owner()":"8da5cb5b","pendingOwner()":"e30c3978","renounceOwnership()":"715018a6","safeDeltaBps()":"ee97f265","setAccessControlManager(address)":"0e32cb86","setSafeDeltaBps(uint256)":"2c47d86f","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"corePoolComptroller_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"riskStewardReceiver_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidPool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSafeDeltaBps\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTwoUintLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyRiskStewardReceiver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RedundantValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RenounceOwnershipNotAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"errorCode\",\"type\":\"uint256\"}],\"name\":\"SetCollateralFactorFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"calledContract\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"methodSignature\",\"type\":\"string\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsupportedUpdateType\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newCollateralFactor\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newLiquidationThreshold\",\"type\":\"uint256\"}],\"name\":\"CollateralFactorsUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldAccessControlManager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAccessControlManager\",\"type\":\"address\"}],\"name\":\"NewAccessControlManager\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"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\":\"uint256\",\"name\":\"oldSafeDeltaBps\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newSafeDeltaBps\",\"type\":\"uint256\"}],\"name\":\"SafeDeltaBpsUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"COLLATERAL_FACTORS\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COLLATERAL_FACTORS_KEY\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CORE_POOL_COMPTROLLER\",\"outputs\":[{\"internalType\":\"contract ICorePoolComptroller\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RISK_STEWARD_RECEIVER\",\"outputs\":[{\"internalType\":\"contract IRiskStewardReceiver\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"accessControlManager\",\"outputs\":[{\"internalType\":\"contract IAccessControlManagerV8\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"referenceId\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"updateTypeKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"newValue\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"previousValue\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"poolId\",\"type\":\"uint96\"},{\"internalType\":\"uint32\",\"name\":\"destLzEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"additionalData\",\"type\":\"bytes\"}],\"internalType\":\"struct RiskParameterUpdate\",\"name\":\"update\",\"type\":\"tuple\"}],\"name\":\"applyUpdate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessControlManager_\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"referenceId\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"updateTypeKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"newValue\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"previousValue\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"poolId\",\"type\":\"uint96\"},{\"internalType\":\"uint32\",\"name\":\"destLzEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"additionalData\",\"type\":\"bytes\"}],\"internalType\":\"struct RiskParameterUpdate\",\"name\":\"update\",\"type\":\"tuple\"}],\"name\":\"isSafeForDirectExecution\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"safeDeltaBps\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessControlManager_\",\"type\":\"address\"}],\"name\":\"setAccessControlManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"safeDeltaBps_\",\"type\":\"uint256\"}],\"name\":\"setSafeDeltaBps\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"custom:security-contact\":\"https://github.com/VenusProtocol/governance-contracts#discussion\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"applyUpdate((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))\":{\"custom:access\":\"Only callable by the `RiskStewardReceiver`\",\"custom:error\":\"Throws OnlyRiskStewardReceiver if the sender is not the `RiskStewardReceiver`Throws UnsupportedUpdateType if the update type is not supported\",\"custom:event\":\"Emits CollateralFactorsUpdated with updateId\",\"params\":{\"update\":\"RiskParameterUpdate update to apply\"}},\"constructor\":{\"custom:error\":\"Throws ZeroAddressNotAllowed if any of the addresses are zero\",\"custom:oz-upgrades-unsafe-allow\":\"constructor\",\"params\":{\"corePoolComptroller_\":\"The address of the Core Pool Comptroller\",\"riskStewardReceiver_\":\"The address of the `RiskStewardReceiver`\"}},\"initialize(address)\":{\"params\":{\"accessControlManager_\":\"The address of the access control manager\"}},\"isSafeForDirectExecution((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))\":{\"custom:error\":\"Throws UnsupportedUpdateType if the update type is not supportedThrows RedundantValue if the new collateral factor and liquidation threshold are unchanged\",\"params\":{\"update\":\"The update to check.\"},\"returns\":{\"_0\":\"True if update is safe for direct execution, false if timelock is required\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"renounceOwnership()\":{\"custom:error\":\"Throws RenounceOwnershipNotAllowed\"},\"setAccessControlManager(address)\":{\"custom:access\":\"Only Governance\",\"custom:event\":\"Emits NewAccessControlManager event\",\"details\":\"Admin function to set address of AccessControlManager\",\"params\":{\"accessControlManager_\":\"The new address of the AccessControlManager\"}},\"setSafeDeltaBps(uint256)\":{\"custom:access\":\"Controlled by AccessControlManager\",\"custom:error\":\"Throws InvalidSafeDeltaBps if the safe delta bps is greater than MAX_BPSThrows RedundantValue if the new safe delta bps is equal to the current value\",\"custom:event\":\"Emits SafeDeltaBpsUpdated with the old and new safe delta bps\",\"params\":{\"safeDeltaBps_\":\"The new safe delta bps\"}},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.\"}},\"stateVariables\":{\"CORE_POOL_COMPTROLLER\":{\"details\":\"This comptroller is specific to the BNB Core Pool, which uses a different ABI      than isolated pools. It is used solely to detect and handle BNB Core Pool      markets, and would not be used for remote-chain (isolated pool) deployments.\"},\"__gap\":{\"details\":\"Storage gap for upgradeability.\"}},\"title\":\"CollateralFactorsRiskSteward\",\"version\":1},\"userdoc\":{\"errors\":{\"InvalidPool()\":[{\"notice\":\"Thrown when an invalid pool configuration is used (non-core comptroller with non-zero poolId).\"}],\"InvalidSafeDeltaBps()\":[{\"notice\":\"Thrown when a `safeDeltaBps` value is greater than `MAX_BPS`.\"}],\"InvalidTwoUintLength()\":[{\"notice\":\"Thrown when the two uint256 data length is invalid\"}],\"OnlyRiskStewardReceiver()\":[{\"notice\":\"Thrown when the update is not coming from the `RiskStewardReceiver`.\"}],\"RedundantValue()\":[{\"notice\":\"Thrown when attempting to apply a redundant value (no-op change).\"}],\"RenounceOwnershipNotAllowed()\":[{\"notice\":\"Thrown when trying to renounce ownership\"}],\"SetCollateralFactorFailed(uint256)\":[{\"notice\":\"Thrown when Core Pool Comptroller.setCollateralFactor fails.\"}],\"Unauthorized(address,address,string)\":[{\"notice\":\"Thrown when the action is prohibited by AccessControlManager\"}],\"UnsupportedUpdateType()\":[{\"notice\":\"Thrown when an update type that is not supported is operated on.\"}],\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}]},\"events\":{\"CollateralFactorsUpdated(uint256,address,uint256,uint256)\":{\"notice\":\"Emitted when collateral factors are updated.\"},\"NewAccessControlManager(address,address)\":{\"notice\":\"Emitted when access control manager contract address is changed\"},\"SafeDeltaBpsUpdated(uint256,uint256)\":{\"notice\":\"Emitted when the safe delta bps is updated.\"}},\"kind\":\"user\",\"methods\":{\"COLLATERAL_FACTORS()\":{\"notice\":\"The update type for collateral factor and liquidation threshold.\"},\"COLLATERAL_FACTORS_KEY()\":{\"notice\":\"The update type key for collateral factors (keccak256 hash of COLLATERAL_FACTORS)\"},\"CORE_POOL_COMPTROLLER()\":{\"notice\":\"Address of the BNB Core Pool Comptroller.\"},\"RISK_STEWARD_RECEIVER()\":{\"notice\":\"Address of the `RiskStewardReceiver` used to validate and dispatch incoming updates.\"},\"accessControlManager()\":{\"notice\":\"Returns the address of the access control manager contract\"},\"applyUpdate((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))\":{\"notice\":\"Applies a collateral parameter update from the `RiskStewardReceiver`.         Delta validation and timelock checks are already performed by `RiskStewardReceiver` before execution.\"},\"constructor\":{\"notice\":\"Sets the immutable `CORE_POOL_COMPTROLLER` and `RISK_STEWARD_RECEIVER` addresses and disables initializers.\"},\"initialize(address)\":{\"notice\":\"Initializes the contract as ownable and access controlled.\"},\"isSafeForDirectExecution((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))\":{\"notice\":\"Checks if an update is safe for direct execution (no timelock required).\"},\"renounceOwnership()\":{\"notice\":\"Disables renounceOwnership function\"},\"safeDeltaBps()\":{\"notice\":\"The safe delta threshold in basis points.Updates within this delta are considered safe and require no timelock. Updates exceeding this delta require timelock.\"},\"setAccessControlManager(address)\":{\"notice\":\"Sets the address of AccessControlManager\"},\"setSafeDeltaBps(uint256)\":{\"notice\":\"Sets the safe delta bps.\"}},\"notice\":\"Contract that can update collateral factors and liquidation thresholds received from `RiskStewardReceiver`.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/RiskSteward/CollateralFactorsRiskSteward.sol\":\"CollateralFactorsRiskSteward\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (access/Ownable2Step.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./OwnableUpgradeable.sol\\\";\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership} and {acceptOwnership}.\\n *\\n * This module is used through inheritance. It will make available all functions\\n * from parent (Ownable).\\n */\\nabstract contract Ownable2StepUpgradeable is Initializable, OwnableUpgradeable {\\n    function __Ownable2Step_init() internal onlyInitializing {\\n        __Ownable_init_unchained();\\n    }\\n\\n    function __Ownable2Step_init_unchained() internal onlyInitializing {\\n    }\\n    address private _pendingOwner;\\n\\n    event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Returns the address of the pending owner.\\n     */\\n    function pendingOwner() public view virtual returns (address) {\\n        return _pendingOwner;\\n    }\\n\\n    /**\\n     * @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual override onlyOwner {\\n        _pendingOwner = newOwner;\\n        emit OwnershipTransferStarted(owner(), newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual override {\\n        delete _pendingOwner;\\n        super._transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev The new owner accepts the ownership transfer.\\n     */\\n    function acceptOwnership() external {\\n        address sender = _msgSender();\\n        require(pendingOwner() == sender, \\\"Ownable2Step: caller is not the new owner\\\");\\n        _transferOwnership(sender);\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0xd712fb45b3ea0ab49679164e3895037adc26ce12879d5184feb040e01c1c07a9\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/ContextUpgradeable.sol\\\";\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract OwnableUpgradeable is Initializable, ContextUpgradeable {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    function __Ownable_init() internal onlyInitializing {\\n        __Ownable_init_unchained();\\n    }\\n\\n    function __Ownable_init_unchained() internal onlyInitializing {\\n        _transferOwnership(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        _checkOwner();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if the sender is not the owner.\\n     */\\n    function _checkOwner() internal view virtual {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions anymore. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby removing any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.1) (proxy/utils/Initializable.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../../utils/AddressUpgradeable.sol\\\";\\n\\n/**\\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\\n *\\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\\n * reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in\\n * case an upgrade adds a module that needs to be initialized.\\n *\\n * For example:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * contract MyToken is ERC20Upgradeable {\\n *     function initialize() initializer public {\\n *         __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\");\\n *     }\\n * }\\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\\n *     function initializeV2() reinitializer(2) public {\\n *         __ERC20Permit_init(\\\"MyToken\\\");\\n *     }\\n * }\\n * ```\\n *\\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\\n *\\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\\n *\\n * [CAUTION]\\n * ====\\n * Avoid leaving a contract uninitialized.\\n *\\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * /// @custom:oz-upgrades-unsafe-allow constructor\\n * constructor() {\\n *     _disableInitializers();\\n * }\\n * ```\\n * ====\\n */\\nabstract contract Initializable {\\n    /**\\n     * @dev Indicates that the contract has been initialized.\\n     * @custom:oz-retyped-from bool\\n     */\\n    uint8 private _initialized;\\n\\n    /**\\n     * @dev Indicates that the contract is in the process of being initialized.\\n     */\\n    bool private _initializing;\\n\\n    /**\\n     * @dev Triggered when the contract has been initialized or reinitialized.\\n     */\\n    event Initialized(uint8 version);\\n\\n    /**\\n     * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\\n     * `onlyInitializing` functions can be used to initialize parent contracts.\\n     *\\n     * Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\\n     * constructor.\\n     *\\n     * Emits an {Initialized} event.\\n     */\\n    modifier initializer() {\\n        bool isTopLevelCall = !_initializing;\\n        require(\\n            (isTopLevelCall && _initialized < 1) || (!AddressUpgradeable.isContract(address(this)) && _initialized == 1),\\n            \\\"Initializable: contract is already initialized\\\"\\n        );\\n        _initialized = 1;\\n        if (isTopLevelCall) {\\n            _initializing = true;\\n        }\\n        _;\\n        if (isTopLevelCall) {\\n            _initializing = false;\\n            emit Initialized(1);\\n        }\\n    }\\n\\n    /**\\n     * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\\n     * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\\n     * used to initialize parent contracts.\\n     *\\n     * A reinitializer may be used after the original initialization step. This is essential to configure modules that\\n     * are added through upgrades and that require initialization.\\n     *\\n     * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\\n     * cannot be nested. If one is invoked in the context of another, execution will revert.\\n     *\\n     * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\\n     * a contract, executing them in the right order is up to the developer or operator.\\n     *\\n     * WARNING: setting the version to 255 will prevent any future reinitialization.\\n     *\\n     * Emits an {Initialized} event.\\n     */\\n    modifier reinitializer(uint8 version) {\\n        require(!_initializing && _initialized < version, \\\"Initializable: contract is already initialized\\\");\\n        _initialized = version;\\n        _initializing = true;\\n        _;\\n        _initializing = false;\\n        emit Initialized(version);\\n    }\\n\\n    /**\\n     * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\\n     * {initializer} and {reinitializer} modifiers, directly or indirectly.\\n     */\\n    modifier onlyInitializing() {\\n        require(_initializing, \\\"Initializable: contract is not initializing\\\");\\n        _;\\n    }\\n\\n    /**\\n     * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\\n     * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\\n     * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\\n     * through proxies.\\n     *\\n     * Emits an {Initialized} event the first time it is successfully executed.\\n     */\\n    function _disableInitializers() internal virtual {\\n        require(!_initializing, \\\"Initializable: contract is initializing\\\");\\n        if (_initialized < type(uint8).max) {\\n            _initialized = type(uint8).max;\\n            emit Initialized(type(uint8).max);\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns the highest version that has been initialized. See {reinitializer}.\\n     */\\n    function _getInitializedVersion() internal view returns (uint8) {\\n        return _initialized;\\n    }\\n\\n    /**\\n     * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.\\n     */\\n    function _isInitializing() internal view returns (bool) {\\n        return _initializing;\\n    }\\n}\\n\",\"keccak256\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary AddressUpgradeable {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\n     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\n     *\\n     * _Available since v4.8._\\n     */\\n    function verifyCallResultFromTarget(\\n        address target,\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        if (success) {\\n            if (returndata.length == 0) {\\n                // only check isContract if the call was successful and the return data is empty\\n                // otherwise we already know that it was a contract\\n                require(isContract(target), \\\"Address: call to non-contract\\\");\\n            }\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason or using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    function _revert(bytes memory returndata, string memory errorMessage) private pure {\\n        // Look for revert reason and bubble it up if present\\n        if (returndata.length > 0) {\\n            // The easiest way to bubble the revert reason is using memory via assembly\\n            /// @solidity memory-safe-assembly\\n            assembly {\\n                let returndata_size := mload(returndata)\\n                revert(add(32, returndata), returndata_size)\\n            }\\n        } else {\\n            revert(errorMessage);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract ContextUpgradeable is Initializable {\\n    function __Context_init() internal onlyInitializing {\\n    }\\n\\n    function __Context_init_unchained() internal onlyInitializing {\\n    }\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[50] private __gap;\\n}\\n\",\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"@venusprotocol/solidity-utilities/contracts/validators.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\n/// @notice Thrown if the supplied address is a zero address where it is not allowed\\nerror ZeroAddressNotAllowed();\\n\\n/// @notice Thrown if the supplied value is 0 where it is not allowed\\nerror ZeroValueNotAllowed();\\n\\n/// @notice Checks if the provided address is nonzero, reverts otherwise\\n/// @param address_ Address to check\\n/// @custom:error ZeroAddressNotAllowed is thrown if the provided address is a zero address\\nfunction ensureNonzeroAddress(address address_) pure {\\n    if (address_ == address(0)) {\\n        revert ZeroAddressNotAllowed();\\n    }\\n}\\n\\n/// @notice Checks if the provided value is nonzero, reverts otherwise\\n/// @param value_ Value to check\\n/// @custom:error ZeroValueNotAllowed is thrown if the provided value is 0\\nfunction ensureNonzeroValue(uint256 value_) pure {\\n    if (value_ == 0) {\\n        revert ZeroValueNotAllowed();\\n    }\\n}\\n\",\"keccak256\":\"0xdb88e14d50dd21889ca3329d755673d022c47e8da005b6a545c7f69c2c4b7b86\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/venus-protocol/contracts/InterestRateModels/InterestRateModelV8.sol\":{\"content\":\"pragma solidity 0.8.25;\\n\\n/**\\n * @title Venus's InterestRateModelV8 Interface\\n * @author Venus\\n */\\nabstract contract InterestRateModelV8 {\\n    /// @notice Indicator that this is an InterestRateModel contract (for inspection)\\n    bool public constant isInterestRateModel = true;\\n\\n    /**\\n     * @notice Calculates the current borrow interest rate per block\\n     * @param cash The total amount of cash the market has\\n     * @param borrows The total amount of borrows the market has outstanding\\n     * @param reserves The total amnount of reserves the market has\\n     * @return The borrow rate per block (as a percentage, and scaled by 1e18)\\n     */\\n    function getBorrowRate(uint256 cash, uint256 borrows, uint256 reserves) external view virtual returns (uint256);\\n\\n    /**\\n     * @notice Calculates the current supply interest rate per block\\n     * @param cash The total amount of cash the market has\\n     * @param borrows The total amount of borrows the market has outstanding\\n     * @param reserves The total amnount of reserves the market has\\n     * @param reserveFactorMantissa The current reserve factor the market has\\n     * @return The supply rate per block (as a percentage, and scaled by 1e18)\\n     */\\n    function getSupplyRate(\\n        uint256 cash,\\n        uint256 borrows,\\n        uint256 reserves,\\n        uint256 reserveFactorMantissa\\n    ) external view virtual returns (uint256);\\n}\\n\",\"keccak256\":\"0x9b71896f66909fb3fe829c413594121f0e165d8508e8a6fa29a6938ddcfbb61f\"},\"contracts/Governance/AccessControlledV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\\\";\\nimport \\\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\\\";\\n\\nimport \\\"./IAccessControlManagerV8.sol\\\";\\n\\n/**\\n * @title AccessControlledV8\\n * @author Venus\\n * @notice This contract is helper between access control manager and actual contract. This contract further inherited by other contract (using solidity 0.8.13)\\n * to integrate access controlled mechanism. It provides initialise methods and verifying access methods.\\n */\\nabstract contract AccessControlledV8 is Initializable, Ownable2StepUpgradeable {\\n    /// @notice Access control manager contract\\n    IAccessControlManagerV8 internal _accessControlManager;\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n\\n    /// @notice Emitted when access control manager contract address is changed\\n    event NewAccessControlManager(address oldAccessControlManager, address newAccessControlManager);\\n\\n    /// @notice Thrown when the action is prohibited by AccessControlManager\\n    error Unauthorized(address sender, address calledContract, string methodSignature);\\n\\n    function __AccessControlled_init(address accessControlManager_) internal onlyInitializing {\\n        __Ownable2Step_init();\\n        __AccessControlled_init_unchained(accessControlManager_);\\n    }\\n\\n    function __AccessControlled_init_unchained(address accessControlManager_) internal onlyInitializing {\\n        _setAccessControlManager(accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Sets the address of AccessControlManager\\n     * @dev Admin function to set address of AccessControlManager\\n     * @param accessControlManager_ The new address of the AccessControlManager\\n     * @custom:event Emits NewAccessControlManager event\\n     * @custom:access Only Governance\\n     */\\n    function setAccessControlManager(address accessControlManager_) external onlyOwner {\\n        _setAccessControlManager(accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Returns the address of the access control manager contract\\n     */\\n    function accessControlManager() external view returns (IAccessControlManagerV8) {\\n        return _accessControlManager;\\n    }\\n\\n    /**\\n     * @dev Internal function to set address of AccessControlManager\\n     * @param accessControlManager_ The new address of the AccessControlManager\\n     */\\n    function _setAccessControlManager(address accessControlManager_) internal {\\n        require(address(accessControlManager_) != address(0), \\\"invalid acess control manager address\\\");\\n        address oldAccessControlManager = address(_accessControlManager);\\n        _accessControlManager = IAccessControlManagerV8(accessControlManager_);\\n        emit NewAccessControlManager(oldAccessControlManager, accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Reverts if the call is not allowed by AccessControlManager\\n     * @param signature Method signature\\n     */\\n    function _checkAccessAllowed(string memory signature) internal view {\\n        bool isAllowedToCall = _accessControlManager.isAllowedToCall(msg.sender, signature);\\n\\n        if (!isAllowedToCall) {\\n            revert Unauthorized(msg.sender, address(this), signature);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xe7f5f96c70fb32912ecc0032f81f7876607353413fe7f723d41d260ac9c26a06\",\"license\":\"BSD-3-Clause\"},\"contracts/Governance/IAccessControlManagerV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/access/IAccessControl.sol\\\";\\n\\n/**\\n * @title IAccessControlManagerV8\\n * @author Venus\\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\\n */\\ninterface IAccessControlManagerV8 is IAccessControl {\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\\n\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) external;\\n\\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\\n\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xaa29b098440d0b3a131c5ecdf25ce548790c1b5ac7bf9b5c0264b6af6f7a1e0b\",\"license\":\"BSD-3-Clause\"},\"contracts/RiskSteward/BaseRiskSteward.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { AccessControlledV8 } from \\\"../Governance/AccessControlledV8.sol\\\";\\nimport { IRiskSteward } from \\\"./Interfaces/IRiskSteward.sol\\\";\\n\\n/**\\n * @title BaseRiskSteward\\n * @author Venus\\n * @notice Abstract base contract for Risk Steward contracts providing common functionality\\n * @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion\\n */\\nabstract contract BaseRiskSteward is IRiskSteward, AccessControlledV8 {\\n    /// @dev Max basis points i.e., 100%\\n    uint256 internal constant MAX_BPS = 10000;\\n\\n    /**\\n     * @notice The safe delta threshold in basis points.\\n     * @notice Updates within this delta are considered safe and require no timelock. Updates exceeding this delta require timelock.\\n     * @dev This is only used by contracts that implement safe delta checks (e.g., MarketCapsRiskSteward, CollateralFactorsRiskSteward)\\n     */\\n    uint256 public safeDeltaBps;\\n\\n    /**\\n     * @notice Thrown when trying to renounce ownership\\n     */\\n    error RenounceOwnershipNotAllowed();\\n\\n    /**\\n     * @notice Disables renounceOwnership function\\n     * @custom:error Throws RenounceOwnershipNotAllowed\\n     */\\n    function renounceOwnership() public pure override {\\n        revert RenounceOwnershipNotAllowed();\\n    }\\n\\n    /**\\n     * @notice Checks if the difference between new and current values is within the safe delta threshold.\\n     * @param newValue The new value to check\\n     * @param currentValue The current value to compare against\\n     * @return True if the difference is within the safe delta, false otherwise\\n     */\\n    function _isWithinSafeDelta(uint256 newValue, uint256 currentValue) internal view returns (bool) {\\n        uint256 diff = newValue > currentValue ? newValue - currentValue : currentValue - newValue;\\n        uint256 maxDiff = (safeDeltaBps * currentValue) / MAX_BPS;\\n        return diff <= maxDiff;\\n    }\\n}\\n\",\"keccak256\":\"0xc479bcfa55626860065c2ac8707b40e3c48d419bd8b23dbb35d1fab79584fcf2\",\"license\":\"BSD-3-Clause\"},\"contracts/RiskSteward/CollateralFactorsRiskSteward.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { RiskParameterUpdate } from \\\"./Interfaces/IRiskOracle.sol\\\";\\nimport { ICorePoolVToken } from \\\"../interfaces/ICorePoolVToken.sol\\\";\\nimport { ICorePoolComptroller } from \\\"../interfaces/ICorePoolComptroller.sol\\\";\\nimport { IIsolatedPoolsComptroller } from \\\"../interfaces/IIsolatedPoolsComptroller.sol\\\";\\nimport { IRiskStewardReceiver } from \\\"./Interfaces/IRiskStewardReceiver.sol\\\";\\nimport { BaseRiskSteward } from \\\"./BaseRiskSteward.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\n\\n/**\\n * @title CollateralFactorsRiskSteward\\n * @author Venus\\n * @notice Contract that can update collateral factors and liquidation thresholds received from `RiskStewardReceiver`.\\n * @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion\\n */\\ncontract CollateralFactorsRiskSteward is BaseRiskSteward {\\n    /**\\n     * @notice The update type for collateral factor and liquidation threshold.\\n     */\\n    string public constant COLLATERAL_FACTORS = \\\"collateralFactors\\\";\\n\\n    /**\\n     * @notice The update type key for collateral factors (keccak256 hash of COLLATERAL_FACTORS)\\n     */\\n    bytes32 public constant COLLATERAL_FACTORS_KEY = keccak256(bytes(COLLATERAL_FACTORS));\\n\\n    /**\\n     * @notice Address of the BNB Core Pool Comptroller.\\n     * @dev This comptroller is specific to the BNB Core Pool, which uses a different ABI\\n     *      than isolated pools. It is used solely to detect and handle BNB Core Pool\\n     *      markets, and would not be used for remote-chain (isolated pool) deployments.\\n     */\\n    ICorePoolComptroller public immutable CORE_POOL_COMPTROLLER;\\n\\n    /**\\n     * @notice Address of the `RiskStewardReceiver` used to validate and dispatch incoming updates.\\n     */\\n    IRiskStewardReceiver public immutable RISK_STEWARD_RECEIVER;\\n\\n    /**\\n     * @dev Storage gap for upgradeability.\\n     */\\n    uint256[49] private __gap;\\n\\n    /**\\n     * @notice Emitted when collateral factors are updated.\\n     */\\n    event CollateralFactorsUpdated(\\n        uint256 indexed updateId,\\n        address indexed market,\\n        uint256 newCollateralFactor,\\n        uint256 newLiquidationThreshold\\n    );\\n\\n    /**\\n     * @notice Emitted when the safe delta bps is updated.\\n     */\\n    event SafeDeltaBpsUpdated(uint256 oldSafeDeltaBps, uint256 newSafeDeltaBps);\\n\\n    /**\\n     * @notice Thrown when a `safeDeltaBps` value is greater than `MAX_BPS`.\\n     */\\n    error InvalidSafeDeltaBps();\\n\\n    /**\\n     * @notice Thrown when Core Pool Comptroller.setCollateralFactor fails.\\n     */\\n    error SetCollateralFactorFailed(uint256 errorCode);\\n\\n    /**\\n     * @notice Thrown when an invalid pool configuration is used (non-core comptroller with non-zero poolId).\\n     */\\n    error InvalidPool();\\n\\n    /**\\n     * @notice Thrown when an update type that is not supported is operated on.\\n     */\\n    error UnsupportedUpdateType();\\n\\n    /**\\n     * @notice Thrown when the update is not coming from the `RiskStewardReceiver`.\\n     */\\n    error OnlyRiskStewardReceiver();\\n\\n    /**\\n     * @notice Thrown when the two uint256 data length is invalid\\n     */\\n    error InvalidTwoUintLength();\\n\\n    /**\\n     * @notice Thrown when attempting to apply a redundant value (no-op change).\\n     */\\n    error RedundantValue();\\n\\n    /**\\n     * @notice Sets the immutable `CORE_POOL_COMPTROLLER` and `RISK_STEWARD_RECEIVER` addresses and disables initializers.\\n     * @param corePoolComptroller_ The address of the Core Pool Comptroller\\n     * @param riskStewardReceiver_ The address of the `RiskStewardReceiver`\\n     * @custom:error Throws ZeroAddressNotAllowed if any of the addresses are zero\\n     * @custom:oz-upgrades-unsafe-allow constructor\\n     */\\n    constructor(address corePoolComptroller_, address riskStewardReceiver_) {\\n        ensureNonzeroAddress(riskStewardReceiver_);\\n        CORE_POOL_COMPTROLLER = ICorePoolComptroller(corePoolComptroller_);\\n        RISK_STEWARD_RECEIVER = IRiskStewardReceiver(riskStewardReceiver_);\\n        _disableInitializers();\\n    }\\n\\n    /**\\n     * @notice Initializes the contract as ownable and access controlled.\\n     * @param accessControlManager_ The address of the access control manager\\n     */\\n    function initialize(address accessControlManager_) external initializer {\\n        __AccessControlled_init(accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Sets the safe delta bps.\\n     * @param safeDeltaBps_ The new safe delta bps\\n     * @custom:access Controlled by AccessControlManager\\n     * @custom:event Emits SafeDeltaBpsUpdated with the old and new safe delta bps\\n     * @custom:error Throws InvalidSafeDeltaBps if the safe delta bps is greater than MAX_BPS\\n     * @custom:error Throws RedundantValue if the new safe delta bps is equal to the current value\\n     */\\n    function setSafeDeltaBps(uint256 safeDeltaBps_) external {\\n        _checkAccessAllowed(\\\"setSafeDeltaBps(uint256)\\\");\\n        if (safeDeltaBps_ > MAX_BPS) {\\n            revert InvalidSafeDeltaBps();\\n        }\\n        uint256 oldSafeDeltaBps = safeDeltaBps;\\n\\n        if (safeDeltaBps_ == oldSafeDeltaBps) {\\n            revert RedundantValue();\\n        }\\n        safeDeltaBps = safeDeltaBps_;\\n        emit SafeDeltaBpsUpdated(oldSafeDeltaBps, safeDeltaBps_);\\n    }\\n\\n    /**\\n     * @notice Checks if an update is safe for direct execution (no timelock required).\\n     * @param update The update to check.\\n     * @return True if update is safe for direct execution, false if timelock is required\\n     * @custom:error Throws UnsupportedUpdateType if the update type is not supported\\n     * @custom:error Throws RedundantValue if the new collateral factor and liquidation threshold are unchanged\\n     */\\n    function isSafeForDirectExecution(RiskParameterUpdate calldata update) external view returns (bool) {\\n        if (update.updateTypeKey == COLLATERAL_FACTORS_KEY) {\\n            // eMode-style updates always require timelock (not safe for direct execution)\\n            if (update.poolId != 0) return false;\\n\\n            address comptroller = ICorePoolVToken(update.market).comptroller();\\n\\n            (uint256 newCF, uint256 newLT) = _decodeAbiEncodedTwoUint256(update.newValue);\\n            (uint256 currCF, uint256 currLT) = _getCurrentCollateralFactors(comptroller, update.market);\\n\\n            // Revert on redundant updates only when both CF and LT are unchanged.\\n            if (newCF == currCF && newLT == currLT) {\\n                revert RedundantValue();\\n            }\\n\\n            // If current values are zero, update always requires timelock\\n            if (currCF == 0 || currLT == 0) return false;\\n\\n            return _isWithinSafeDelta(newCF, currCF) && _isWithinSafeDelta(newLT, currLT);\\n        }\\n\\n        revert UnsupportedUpdateType();\\n    }\\n\\n    /**\\n     * @notice Applies a collateral parameter update from the `RiskStewardReceiver`.\\n     *         Delta validation and timelock checks are already performed by `RiskStewardReceiver` before execution.\\n     * @param update RiskParameterUpdate update to apply\\n     * @custom:access Only callable by the `RiskStewardReceiver`\\n     * @custom:event Emits CollateralFactorsUpdated with updateId\\n     * @custom:error Throws OnlyRiskStewardReceiver if the sender is not the `RiskStewardReceiver`\\n     * @custom:error Throws UnsupportedUpdateType if the update type is not supported\\n     */\\n    function applyUpdate(RiskParameterUpdate calldata update) external {\\n        if (msg.sender != address(RISK_STEWARD_RECEIVER)) {\\n            revert OnlyRiskStewardReceiver();\\n        }\\n\\n        address comptroller = ICorePoolVToken(update.market).comptroller();\\n        uint96 poolId = update.poolId;\\n\\n        if (update.updateTypeKey == COLLATERAL_FACTORS_KEY) {\\n            _updateCollateralFactors(update.updateId, comptroller, update.market, poolId, update.newValue);\\n        } else {\\n            revert UnsupportedUpdateType();\\n        }\\n    }\\n\\n    /**\\n     * @notice Updates the collateral factors for the given market.\\n     * @dev Updates both collateral factor and liquidation threshold together (same setter).\\n     * @param updateId The update ID from the Risk Oracle\\n     * @param comptroller The comptroller address\\n     * @param market The market to update the collateral factors for\\n     * @param poolId The pool identifier for eMode updates (0 for regular market updates)\\n     * @param newValue Encoded new collateral factors: `abi.encode(uint256 newCollateralFactor, uint256 newLiquidationThreshold)`\\n     * @custom:error Throws SetCollateralFactorFailed if the core pool comptroller call to setCollateralFactor returns a non\\u2011zero error code\\n     * @custom:error Throws InvalidPool if a non\\u2011core comptroller is used together with a non\\u2011zero poolId\\n     * @custom:event Emits CollateralFactorsUpdated with updateId\\n     */\\n    function _updateCollateralFactors(\\n        uint256 updateId,\\n        address comptroller,\\n        address market,\\n        uint96 poolId,\\n        bytes memory newValue\\n    ) internal {\\n        (uint256 newCollateralFactor, uint256 newLiquidationThreshold) = _decodeAbiEncodedTwoUint256(newValue);\\n\\n        if (comptroller == address(CORE_POOL_COMPTROLLER)) {\\n            uint256 errorCode = ICorePoolComptroller(comptroller).setCollateralFactor(\\n                poolId,\\n                market,\\n                newCollateralFactor,\\n                newLiquidationThreshold\\n            );\\n            if (errorCode != 0) revert SetCollateralFactorFailed(errorCode);\\n        } else {\\n            if (poolId != 0) revert InvalidPool();\\n\\n            IIsolatedPoolsComptroller(comptroller).setCollateralFactor(\\n                market,\\n                newCollateralFactor,\\n                newLiquidationThreshold\\n            );\\n        }\\n\\n        emit CollateralFactorsUpdated(updateId, market, newCollateralFactor, newLiquidationThreshold);\\n    }\\n\\n    /**\\n     * @notice Returns the current collateral factors for a market on a given comptroller.\\n     * @dev Returns both collateral factor and liquidation threshold (updated together via the same setter).\\n     * @param comptroller The comptroller address\\n     * @param market The market whose collateral factors are being queried\\n     * @return currentCollateralFactor The current collateral factor\\n     * @return currentLiquidationThreshold The current liquidation threshold\\n     */\\n    function _getCurrentCollateralFactors(\\n        address comptroller,\\n        address market\\n    ) internal view returns (uint256 currentCollateralFactor, uint256 currentLiquidationThreshold) {\\n        if (comptroller == address(CORE_POOL_COMPTROLLER)) {\\n            (, currentCollateralFactor, , currentLiquidationThreshold, , , ) = ICorePoolComptroller(comptroller)\\n                .markets(market);\\n        } else {\\n            (, currentCollateralFactor, currentLiquidationThreshold) = IIsolatedPoolsComptroller(comptroller).markets(\\n                market\\n            );\\n        }\\n    }\\n\\n    /**\\n     * @notice Decodes ABI-encoded bytes into two uint256 values.\\n     * @dev Expects exactly 64 bytes as produced by abi.encode(uint256,uint256).\\n     * @param data ABI-encoded (uint256, uint256) payload\\n     * @return a First uint256\\n     * @return b Second uint256\\n     * @custom:error Throws InvalidTwoUintLength if data length is not 64 bytes\\n     */\\n    function _decodeAbiEncodedTwoUint256(bytes memory data) internal pure returns (uint256 a, uint256 b) {\\n        if (data.length != 64) {\\n            revert InvalidTwoUintLength();\\n        }\\n        (a, b) = abi.decode(data, (uint256, uint256));\\n    }\\n}\\n\",\"keccak256\":\"0x941a2f4709341cd506929c0661a205b880584d18b199c112a95d5fd3e7945065\",\"license\":\"BSD-3-Clause\"},\"contracts/RiskSteward/Interfaces/IRiskOracle.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity 0.8.25;\\n\\n/**\\n * @notice Struct representing a risk parameter update published by the Risk Oracle\\n * @param referenceId External reference ID, potentially linking to a document or off-chain data\\n * @param updateId Unique identifier for this specific update\\n * @param market Address of the market for which the parameter update applies\\n * @param updateType Classification of the update type for validation purposes (human-readable)\\n * @param updateTypeKey Keccak256 hash of updateType for efficient comparisons\\n * @param newValue Encoded new value of the risk parameter, flexible for various data types\\n * @param previousValue Previous value of the parameter for historical comparison\\n * @param timestamp Block timestamp when the update was published\\n * @param publisher Address of the account that published this update\\n * @param poolId Pool identifier for eMode-style collateral configuration (0 for regular markets)\\n * @param destLzEid LayerZero endpoint ID of the destination chain (0 for local execution)\\n * @param additionalData Additional metadata or data associated with the update\\n */\\nstruct RiskParameterUpdate {\\n    string referenceId;\\n    uint256 updateId;\\n    address market;\\n    string updateType;\\n    bytes32 updateTypeKey;\\n    bytes newValue;\\n    bytes previousValue;\\n    uint256 timestamp;\\n    address publisher;\\n    uint96 poolId;\\n    uint32 destLzEid;\\n    bytes additionalData;\\n}\\n\\n/**\\n * @title IRiskOracle\\n * @author Venus\\n * @notice Interface for Risk Oracle contract that manages and publishes risk parameter updates\\n */\\ninterface IRiskOracle {\\n    /// @notice Event emitted when a risk parameter update is published\\n    event UpdatePublished(\\n        string referenceId,\\n        uint256 indexed updateId,\\n        address indexed market,\\n        string indexed updateType,\\n        bytes newValue,\\n        bytes previousValue,\\n        uint256 timestamp,\\n        address publisher,\\n        bytes additionalData\\n    );\\n\\n    /// @notice Event emitted when a new authorized sender is added\\n    event AuthorizedSenderAdded(address indexed sender);\\n\\n    /// @notice Event emitted when an authorized sender is removed\\n    event AuthorizedSenderRemoved(address indexed sender);\\n\\n    /// @notice Event emitted when a new update type is added\\n    event UpdateTypeAdded(string indexed updateType);\\n\\n    /// @notice Event emitted when an update type's active status is changed\\n    event UpdateTypeActiveStatusChanged(string indexed updateType, bool previousActive, bool active);\\n\\n    /// @notice Thrown when sender is not authorized\\n    error SenderNotAuthorized();\\n\\n    /// @notice Thrown when sender is already authorized\\n    error SenderAlreadyAuthorized();\\n\\n    /// @notice Thrown when update type string is invalid\\n    error InvalidUpdateTypeString();\\n\\n    /// @notice Thrown when update type already exists\\n    error UpdateTypeAlreadyExists();\\n\\n    /// @notice Thrown when update type doesn't exist\\n    error UpdateTypeNotFound();\\n\\n    /// @notice Thrown when update type active status is already set to the desired value\\n    error UpdateTypeStatusUnchanged();\\n\\n    /// @notice Thrown when update type is not active\\n    error UpdateTypeNotActive();\\n\\n    /// @notice Thrown when no update is found\\n    error NoUpdateFound();\\n\\n    /// @notice Thrown when update ID is invalid\\n    error InvalidUpdateId();\\n\\n    /// @notice Thrown when array lengths don't match in bulk operations\\n    error ArrayLengthMismatch();\\n\\n    /// @notice Thrown when trying to renounce ownership\\n    error RenounceOwnershipNotAllowed();\\n\\n    /**\\n     * @notice Returns the update type string at the given index in the allUpdateTypes array\\n     * @param index The index in the allUpdateTypes array\\n     * @return The update type string at the specified index\\n     */\\n    function allUpdateTypes(uint256 index) external view returns (string memory);\\n\\n    /**\\n     * @notice Returns the total number of update types in the allUpdateTypes array\\n     * @return The length of the allUpdateTypes array\\n     */\\n    function allUpdateTypesLength() external view returns (uint256);\\n\\n    /**\\n     * @notice Returns all update types in the allUpdateTypes array\\n     * @return An array of all update type strings\\n     */\\n    function getAllUpdateTypes() external view returns (string[] memory);\\n\\n    /**\\n     * @notice Checks if a given update type is currently active\\n     * @param updateType The update type string to check\\n     * @return True if the update type is active, false otherwise\\n     */\\n    function getActiveUpdateTypes(string memory updateType) external view returns (bool);\\n\\n    /**\\n     * @notice Checks if a given update type is currently active\\n     * @param updateTypeKey The keccak256 hash of the update type string\\n     * @return True if the update type key is active, false otherwise\\n     */\\n    function activeUpdateTypes(bytes32 updateTypeKey) external view returns (bool);\\n\\n    /**\\n     * @notice Checks if an address is authorized to publish updates\\n     * @param sender The address to check for authorization\\n     * @return True if the address is authorized, false otherwise\\n     */\\n    function authorizedSenders(address sender) external view returns (bool);\\n\\n    /**\\n     * @notice Gets the latest update ID for a specific market and update type combination\\n     * @param updateTypeKey The keccak256 hash of the update type string\\n     * @param market The market address\\n     * @return The latest update ID for the given market and update type key, or 0 if none exists\\n     */\\n    function latestUpdateIdByMarketAndType(bytes32 updateTypeKey, address market) external view returns (uint256);\\n\\n    /**\\n     * @notice Returns the total number of updates that have been published\\n     * @return The current update counter value\\n     */\\n    function updateCounter() external view returns (uint256);\\n\\n    /**\\n     * @notice Fetches the most recent update for a specific parameter type in a specific market\\n     * @param updateType The update type identifier\\n     * @param market The market address\\n     * @return The most recent RiskParameterUpdate for the specified parameter and market\\n     * @custom:error NoUpdateFound Thrown if no update exists for the specified parameter and market\\n     */\\n    function getLatestUpdateByTypeAndMarket(\\n        string memory updateType,\\n        address market\\n    ) external view returns (RiskParameterUpdate memory);\\n\\n    /**\\n     * @notice Gets the latest update ID for a specific market and update type (string) combination\\n     * @param updateType The update type identifier\\n     * @param market The market address\\n     * @return The latest update ID for the given market and update type, or 0 if none exists\\n     */\\n    function getLatestUpdateIdByTypeAndMarket(string memory updateType, address market) external view returns (uint256);\\n\\n    /**\\n     * @notice Fetches the update for a provided update ID\\n     * @param updateId The unique update ID\\n     * @return The RiskParameterUpdate struct for the specified update ID\\n     * @custom:error InvalidUpdateId Thrown if updateId is 0 or greater than updateCounter\\n     */\\n    function getUpdateById(uint256 updateId) external view returns (RiskParameterUpdate memory);\\n\\n    /**\\n     * @notice Adds a new address to the list of authorized senders who can publish updates\\n     * @param sender Address to be authorized\\n     * @custom:error ZeroAddressNotAllowed Thrown if sender is the zero address\\n     * @custom:error SenderAlreadyAuthorized Thrown if sender is already authorized\\n     * @custom:error Unauthorized Thrown if caller is not allowed by AccessControlManager\\n     * @custom:event AuthorizedSenderAdded Emitted when sender is successfully added\\n     */\\n    function addAuthorizedSender(address sender) external;\\n\\n    /**\\n     * @notice Removes an address from the list of authorized senders\\n     * @param sender Address to be removed from authorization\\n     * @custom:error SenderNotAuthorized Thrown if sender is not currently authorized\\n     * @custom:error Unauthorized Thrown if caller is not allowed by AccessControlManager\\n     * @custom:event AuthorizedSenderRemoved Emitted when sender is successfully removed\\n     */\\n    function removeAuthorizedSender(address sender) external;\\n\\n    /**\\n     * @notice Adds a new update type to the list of authorized update types\\n     * @param newUpdateType New update type string to allow (must be non-empty and <= 64 characters)\\n     * @custom:error InvalidUpdateTypeString Thrown if update type string is empty or exceeds 64 characters\\n     * @custom:error UpdateTypeAlreadyExists Thrown if update type already exists\\n     * @custom:error Unauthorized Thrown if caller is not allowed by AccessControlManager\\n     * @custom:event UpdateTypeAdded Emitted when update type is successfully added\\n     */\\n    function addUpdateType(string memory newUpdateType) external;\\n\\n    /**\\n     * @notice Sets the active status of an existing update type\\n     * @param updateType The update type to set active status for\\n     * @param active True to activate the update type, false to deactivate it\\n     * @custom:error UpdateTypeNotFound Thrown if update type doesn't exist\\n     * @custom:error UpdateTypeStatusUnchanged Thrown if status is already set to the desired value\\n     * @custom:error Unauthorized Thrown if caller is not allowed by AccessControlManager\\n     * @custom:event UpdateTypeActiveStatusChanged Emitted when status is successfully changed\\n     */\\n    function setUpdateTypeActive(string memory updateType, bool active) external;\\n\\n    /**\\n     * @notice Publishes a new risk parameter update.\\n     * @param referenceId An external reference ID associated with the update\\n     * @param newValue The new value of the risk parameter being updated (encoded as bytes)\\n     * @param updateType Type of update performed, must be an active update type\\n     * @param market Address of the market for which the parameter update applies\\n     * @param poolId Pool identifier for eMode-style collateral configuration (0 for regular markets)\\n     * @param dstEid Destination endpoint ID for cross-chain routing\\n     * @param additionalData Additional data or metadata for the update\\n     * @custom:error SenderNotAuthorized Thrown if caller is not an authorized sender\\n     * @custom:error UpdateTypeNotActive Thrown if update type is not active\\n     * @custom:error ZeroAddressNotAllowed Thrown if market is the zero address\\n     * @custom:event UpdatePublished Emitted when the update is successfully published\\n     */\\n    function publishRiskParameterUpdate(\\n        string memory referenceId,\\n        bytes memory newValue,\\n        string memory updateType,\\n        address market,\\n        uint96 poolId,\\n        uint32 dstEid,\\n        bytes memory additionalData\\n    ) external;\\n\\n    /**\\n     * @notice Publishes multiple risk parameter updates in a single transaction.\\n     * @param referenceIds Array of external reference IDs, one for each update\\n     * @param newValues Array of new values for each update (encoded as bytes)\\n     * @param updateTypes Array of update types, all must be active update types\\n     * @param markets Array of market addresses for each update\\n     * @param poolIds Array of pool identifiers for eMode-style collateral configuration (0 for regular markets)\\n     * @param dstEid Array of destination endpoint IDs for cross-chain routing\\n     * @param additionalData Array of additional data for each update\\n     * @custom:error SenderNotAuthorized Thrown if caller is not an authorized sender\\n     * @custom:error ArrayLengthMismatch Thrown if all arrays don't have the same length\\n     * @custom:error UpdateTypeNotActive Thrown if any update type is not active\\n     * @custom:error ZeroAddressNotAllowed Thrown if any market is the zero address\\n     * @custom:event UpdatePublished Emitted for each successfully published update\\n     */\\n    function publishBulkRiskParameterUpdates(\\n        string[] memory referenceIds,\\n        bytes[] memory newValues,\\n        string[] memory updateTypes,\\n        address[] memory markets,\\n        uint96[] memory poolIds,\\n        uint32[] memory dstEid,\\n        bytes[] memory additionalData\\n    ) external;\\n}\\n\",\"keccak256\":\"0x8a30b030d5be3cefabf55d889d0a06447613a9ada5a917730b7ec833bda167cd\",\"license\":\"MIT\"},\"contracts/RiskSteward/Interfaces/IRiskSteward.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { RiskParameterUpdate } from \\\"./IRiskOracle.sol\\\";\\nimport { IRiskStewardReceiver } from \\\"./IRiskStewardReceiver.sol\\\";\\n\\n/**\\n * @title IRiskSteward\\n * @author Venus\\n * @notice Interface for risk stewards that validate and apply risk parameter updates\\n */\\ninterface IRiskSteward {\\n    /**\\n     * @notice Returns the `IRiskStewardReceiver` associated with this steward.\\n     * @return The risk steward receiver contract\\n     */\\n    function RISK_STEWARD_RECEIVER() external view returns (IRiskStewardReceiver);\\n\\n    /**\\n     * @notice Checks whether an update is safe for direct execution (no timelock required).\\n     * @param update The risk parameter update to evaluate\\n     * @return True if update is safe for direct execution, false if timelock is required\\n     */\\n    function isSafeForDirectExecution(RiskParameterUpdate calldata update) external view returns (bool);\\n\\n    /**\\n     * @notice Applies a validated risk parameter update.\\n     * @param update The risk parameter update to apply\\n     */\\n    function applyUpdate(RiskParameterUpdate calldata update) external;\\n}\\n\",\"keccak256\":\"0x6438497d6fd62f5e8c224a01e626a92ae2ebbe736852749862ff2f040a25b069\",\"license\":\"BSD-3-Clause\"},\"contracts/RiskSteward/Interfaces/IRiskStewardReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface IRiskStewardReceiver {\\n    /**\\n     * @notice Status of an update\\n     */\\n    enum UpdateStatus {\\n        None,\\n        Pending,\\n        Executed,\\n        Rejected,\\n        Expired,\\n        SENT_TO_DESTINATION\\n    }\\n\\n    /**\\n     * @notice Configuration for a risk parameter update type\\n     * @param active Whether this update type configuration is currently active\\n     * @param debounce Minimum delay between consecutive update executions for the same (updateType, market) pair\\n     * @param timelock Period that must pass after registration before an update can be executed\\n     * @param riskSteward Address of the risk steward contract responsible for processing this update type\\n     */\\n    struct RiskParamConfig {\\n        bool active;\\n        uint256 debounce;\\n        uint256 timelock;\\n        address riskSteward;\\n    }\\n\\n    /**\\n     * @notice Registered update structure with timelock and execution information\\n     * @param updateId Update ID from the Risk Oracle\\n     * @param unlockTime Timestamp when this update can be executed (calculated as registration time + timelock)\\n     * @param status Current status of the update (Pending, Executed, Rejected, Expired, etc.)\\n     * @param executor Address of the executor who executed this update (address(0) if not executed yet)\\n     * @param executedAt Timestamp when this update was executed (0 if not executed yet)\\n     */\\n    struct RegisteredUpdate {\\n        uint256 updateId;\\n        uint256 unlockTime;\\n        UpdateStatus status;\\n        address executor;\\n        uint256 executedAt;\\n    }\\n\\n    /**\\n     * @notice Event emitted when a risk parameter config is set\\n     */\\n    event RiskParameterConfigUpdated(\\n        bytes32 indexed updateTypeHash,\\n        string updateType,\\n        address indexed previousRiskSteward,\\n        address indexed riskSteward,\\n        uint256 previousDebounce,\\n        uint256 debounce,\\n        uint256 previousTimelock,\\n        uint256 timelock,\\n        bool previousActive,\\n        bool active\\n    );\\n\\n    /**\\n     * @notice Event emitted when a risk parameter config active status is set\\n     */\\n    event ConfigActiveUpdated(bytes32 indexed updateTypeHash, string updateType, bool previousActive, bool active);\\n\\n    /**\\n     * @notice Event emitted when an update is successfully executed\\n     */\\n    event UpdateExecuted(uint256 indexed updateId);\\n\\n    /**\\n     * @notice Event emitted when an update is rejected\\n     */\\n    event UpdateRejected(uint256 indexed updateId);\\n\\n    /**\\n     * @notice Event emitted when an update is marked as expired\\n     */\\n    event UpdateExpired(uint256 indexed updateId);\\n\\n    /**\\n     * @notice Event emitted when an executor status is set\\n     */\\n    event ExecutorStatusUpdated(address indexed executor, bool previousApproved, bool approved);\\n\\n    /**\\n     * @notice Event emitted when an update is registered\\n     */\\n    event UpdateRegistered(uint256 indexed updateId, uint256 unlockTime, string updateType, address indexed market);\\n\\n    /**\\n     * @notice Event emitted when an update is sent to a destination chain\\n     */\\n    event UpdateSentToDestination(\\n        uint256 updateId,\\n        uint32 indexed destLzEid,\\n        string indexed updateType,\\n        address indexed market\\n    );\\n\\n    /**\\n     * @notice Event emitted when an update is resent to a destination chain\\n     */\\n    event UpdateResentToDestination(\\n        uint256 updateId,\\n        uint32 indexed destLzEid,\\n        string indexed updateType,\\n        address indexed market\\n    );\\n\\n    /**\\n     * @notice Emitted when leftover native tokens are swept by owner\\n     */\\n    event SweepNative(address indexed receiver, uint256 amount);\\n\\n    /**\\n     * @notice Event emitted when the pause status changes\\n     * @param previousPaused Previous pause state\\n     * @param paused Current pause state\\n     */\\n    event PauseStatusUpdated(bool previousPaused, bool paused);\\n\\n    /**\\n     * @custom:error TransferFailed\\n     */\\n    error TransferFailed();\\n\\n    /**\\n     * @notice Thrown if a submitted update is not active and therefore cannot be processed\\n     */\\n    error ConfigNotActive();\\n\\n    /**\\n     * @notice Thrown when an update was not applied within the required time frame\\n     */\\n    error UpdateIsExpired();\\n\\n    /**\\n     * @notice Thrown when an update has already been processed\\n     */\\n    error UpdateAlreadyResolved();\\n\\n    /**\\n     * @notice Thrown when the debounce period hasn't passed for applying an update to a specific market / update type\\n     */\\n    error UpdateTooFrequent();\\n\\n    /**\\n     * @notice Thrown when an update type that is not supported is operated on\\n     */\\n    error UnsupportedUpdateType();\\n\\n    /**\\n     * @notice Thrown when an empty update type string is provided\\n     */\\n    error InvalidUpdateType();\\n\\n    /**\\n     * @notice Thrown when a debounce value of 0 is set\\n     */\\n    error InvalidDebounce();\\n\\n    /**\\n     * @notice Thrown when a timelock value is greater than or equal to the expiration time\\n     */\\n    error InvalidTimelock();\\n\\n    /**\\n     * @notice Thrown when update unlock time has not been reached\\n     */\\n    error UpdateNotUnlocked();\\n\\n    /**\\n     * @notice Thrown when trying to resolve an update that doesn't exist\\n     */\\n    error UpdateNotFound();\\n\\n    /**\\n     * @notice Thrown when an address is not an executor\\n     */\\n    error NotAnExecutor();\\n\\n    /**\\n     * @notice Thrown when there is a non-expired pending update of the same type for the market\\n     */\\n    error RegisteredUpdateTypeExist(uint256);\\n\\n    /**\\n     * @notice Thrown when trying to resend an update that is not in SENT_TO_DESTINATION status\\n     */\\n    error InvalidUpdateToResend();\\n\\n    /**\\n     * @notice Thrown when trying to execute an update that was never registered\\n     */\\n    error InvalidRegisteredUpdate();\\n\\n    /**\\n     * @notice Thrown when attempting to call lzSend from an address other than this contract\\n     */\\n    error InvalidLzSendCaller();\\n\\n    /**\\n     * @notice Thrown when trying to renounce ownership\\n     */\\n    error RenounceOwnershipNotAllowed();\\n\\n    /**\\n     * @notice Thrown when processUpdate is called while the contract is paused\\n     */\\n    error PausedError();\\n\\n    /**\\n     * @notice Thrown when an invalid LayerZero endpoint ID is provided\\n     */\\n    error InvalidLayerZeroEid();\\n\\n    /**\\n     * @notice Thrown when trying to set the same pause status\\n     */\\n    error PauseStatusUnchanged();\\n\\n    /**\\n     * @notice Thrown when trying to set the same config active status\\n     */\\n    error ConfigStatusUnchanged();\\n\\n    /**\\n     * @notice Thrown when trying to set the same executor whitelist status\\n     */\\n    error ExecutorStatusUnchanged();\\n\\n    /**\\n     * @notice Thrown when an update will expire before its timelock unlocks\\n     */\\n    error UpdateWillExpireBeforeUnlock();\\n\\n    function getRiskParameterConfig(string calldata updateType) external view returns (RiskParamConfig memory);\\n\\n    function getLastProcessedUpdate(string calldata updateType, address market) external view returns (uint256);\\n\\n    function getLastRegisteredUpdate(string calldata updateType, address market) external view returns (uint256);\\n\\n    function setRiskParameterConfig(\\n        string calldata updateType,\\n        address riskSteward,\\n        uint256 debounce,\\n        uint256 timelock\\n    ) external;\\n\\n    function setConfigActive(string calldata updateType, bool active) external;\\n\\n    function setWhitelistedExecutor(address executor, bool approved) external;\\n\\n    function processUpdate(uint256 updateId) external;\\n\\n    function executeRegisteredUpdate(uint256 updateId) external;\\n\\n    function rejectUpdate(uint256 updateId) external;\\n\\n    function resendRemoteUpdate(uint256 updateId, bytes calldata options) external payable;\\n\\n    function getExecutableUpdates(\\n        string calldata updateType,\\n        address comptroller\\n    ) external view returns (uint256[] memory executableUpdates);\\n\\n    function isUpdateExecutable(uint256 updateId) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x206b4763cfe62155718edb4b53ee48d6e5204b81cbfac705808d2ffd3225bb12\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/ICorePoolComptroller.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface ICorePoolComptroller {\\n    function borrowCaps(address) external view returns (uint256);\\n\\n    function supplyCaps(address) external view returns (uint256);\\n\\n    function _setMarketSupplyCaps(address[] calldata, uint256[] calldata) external;\\n\\n    function _setMarketBorrowCaps(address[] calldata, uint256[] calldata) external;\\n\\n    function setMarketSupplyCaps(address[] calldata, uint256[] calldata) external;\\n\\n    function setMarketBorrowCaps(address[] calldata, uint256[] calldata) external;\\n\\n    function getAllMarkets() external view returns (address[] memory);\\n\\n    function setCollateralFactor(\\n        uint96 poolId,\\n        address vToken,\\n        uint256 newCollateralFactorMantissa,\\n        uint256 newLiquidizationThresholdMantissa\\n    ) external returns (uint256);\\n\\n    function setCollateralFactor(\\n        address vToken,\\n        uint256 newCollateralFactorMantissa,\\n        uint256 newLiquidationThresholdMantissa\\n    ) external returns (uint256);\\n\\n    function markets(\\n        address\\n    )\\n        external\\n        view\\n        returns (\\n            bool isListed,\\n            uint256 collateralFactorMantissa,\\n            bool isVenus,\\n            uint256 liquidationThresholdMantissa,\\n            uint256 liquidationIncentiveMantissa,\\n            uint96 marketPoolId,\\n            bool isBorrowAllowed\\n        );\\n\\n    function poolMarkets(\\n        uint96 poolId,\\n        address vToken\\n    )\\n        external\\n        view\\n        returns (\\n            bool isListed,\\n            uint256 collateralFactorMantissa,\\n            bool isVenus,\\n            uint256 liquidationThresholdMantissa,\\n            uint256 liquidationIncentiveMantissa,\\n            uint96 marketPoolId,\\n            bool isBorrowAllowed\\n        );\\n}\\n\",\"keccak256\":\"0xf1d900d58474417ee7de59cbb72df84fe1cd4512f3b265bb66ffabddbcca53b6\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/ICorePoolVToken.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { InterestRateModelV8 } from \\\"@venusprotocol/venus-protocol/contracts/InterestRateModels/InterestRateModelV8.sol\\\";\\n\\ninterface ICorePoolVToken {\\n    function comptroller() external view returns (address);\\n\\n    function interestRateModel() external view returns (address);\\n\\n    function _setInterestRateModel(InterestRateModelV8 newInterestRateModel) external returns (uint256);\\n}\\n\",\"keccak256\":\"0xb952df2bdfc73cc669c52776b4cf9dd663084dfafd74131f4f59ac9c820edd7b\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/IIsolatedPoolsComptroller.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface IIsolatedPoolsComptroller {\\n    function borrowCaps(address) external view returns (uint256);\\n\\n    function supplyCaps(address) external view returns (uint256);\\n\\n    function setMarketSupplyCaps(address[] calldata, uint256[] calldata) external;\\n\\n    function setMarketBorrowCaps(address[] calldata, uint256[] calldata) external;\\n\\n    function getAllMarkets() external view returns (address[] memory);\\n\\n    function setCollateralFactor(\\n        address vToken,\\n        uint256 newCollateralFactorMantissa,\\n        uint256 newLiquidationThresholdMantissa\\n    ) external;\\n\\n    function markets(\\n        address vToken\\n    ) external view returns (bool isListed, uint256 collateralFactorMantissa, uint256 liquidationThresholdMantissa);\\n}\\n\",\"keccak256\":\"0x6cd545ea18e7b5fbd1d3b0a4162584eb0c1b466db46c62d96015091c47374930\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":6086,"contract":"contracts/RiskSteward/CollateralFactorsRiskSteward.sol:CollateralFactorsRiskSteward","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":6089,"contract":"contracts/RiskSteward/CollateralFactorsRiskSteward.sol:CollateralFactorsRiskSteward","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":6573,"contract":"contracts/RiskSteward/CollateralFactorsRiskSteward.sol:CollateralFactorsRiskSteward","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":5958,"contract":"contracts/RiskSteward/CollateralFactorsRiskSteward.sol:CollateralFactorsRiskSteward","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":6078,"contract":"contracts/RiskSteward/CollateralFactorsRiskSteward.sol:CollateralFactorsRiskSteward","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":5867,"contract":"contracts/RiskSteward/CollateralFactorsRiskSteward.sol:CollateralFactorsRiskSteward","label":"_pendingOwner","offset":0,"slot":"101","type":"t_address"},{"astId":5946,"contract":"contracts/RiskSteward/CollateralFactorsRiskSteward.sol:CollateralFactorsRiskSteward","label":"__gap","offset":0,"slot":"102","type":"t_array(t_uint256)49_storage"},{"astId":13718,"contract":"contracts/RiskSteward/CollateralFactorsRiskSteward.sol:CollateralFactorsRiskSteward","label":"_accessControlManager","offset":0,"slot":"151","type":"t_contract(IAccessControlManagerV8)13903"},{"astId":13723,"contract":"contracts/RiskSteward/CollateralFactorsRiskSteward.sol:CollateralFactorsRiskSteward","label":"__gap","offset":0,"slot":"152","type":"t_array(t_uint256)49_storage"},{"astId":14464,"contract":"contracts/RiskSteward/CollateralFactorsRiskSteward.sol:CollateralFactorsRiskSteward","label":"safeDeltaBps","offset":0,"slot":"201","type":"t_uint256"},{"astId":14559,"contract":"contracts/RiskSteward/CollateralFactorsRiskSteward.sol:CollateralFactorsRiskSteward","label":"__gap","offset":0,"slot":"202","type":"t_array(t_uint256)49_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_contract(IAccessControlManagerV8)13903":{"encoding":"inplace","label":"contract IAccessControlManagerV8","numberOfBytes":"20"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"errors":{"InvalidPool()":[{"notice":"Thrown when an invalid pool configuration is used (non-core comptroller with non-zero poolId)."}],"InvalidSafeDeltaBps()":[{"notice":"Thrown when a `safeDeltaBps` value is greater than `MAX_BPS`."}],"InvalidTwoUintLength()":[{"notice":"Thrown when the two uint256 data length is invalid"}],"OnlyRiskStewardReceiver()":[{"notice":"Thrown when the update is not coming from the `RiskStewardReceiver`."}],"RedundantValue()":[{"notice":"Thrown when attempting to apply a redundant value (no-op change)."}],"RenounceOwnershipNotAllowed()":[{"notice":"Thrown when trying to renounce ownership"}],"SetCollateralFactorFailed(uint256)":[{"notice":"Thrown when Core Pool Comptroller.setCollateralFactor fails."}],"Unauthorized(address,address,string)":[{"notice":"Thrown when the action is prohibited by AccessControlManager"}],"UnsupportedUpdateType()":[{"notice":"Thrown when an update type that is not supported is operated on."}],"ZeroAddressNotAllowed()":[{"notice":"Thrown if the supplied address is a zero address where it is not allowed"}]},"events":{"CollateralFactorsUpdated(uint256,address,uint256,uint256)":{"notice":"Emitted when collateral factors are updated."},"NewAccessControlManager(address,address)":{"notice":"Emitted when access control manager contract address is changed"},"SafeDeltaBpsUpdated(uint256,uint256)":{"notice":"Emitted when the safe delta bps is updated."}},"kind":"user","methods":{"COLLATERAL_FACTORS()":{"notice":"The update type for collateral factor and liquidation threshold."},"COLLATERAL_FACTORS_KEY()":{"notice":"The update type key for collateral factors (keccak256 hash of COLLATERAL_FACTORS)"},"CORE_POOL_COMPTROLLER()":{"notice":"Address of the BNB Core Pool Comptroller."},"RISK_STEWARD_RECEIVER()":{"notice":"Address of the `RiskStewardReceiver` used to validate and dispatch incoming updates."},"accessControlManager()":{"notice":"Returns the address of the access control manager contract"},"applyUpdate((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))":{"notice":"Applies a collateral parameter update from the `RiskStewardReceiver`.         Delta validation and timelock checks are already performed by `RiskStewardReceiver` before execution."},"constructor":{"notice":"Sets the immutable `CORE_POOL_COMPTROLLER` and `RISK_STEWARD_RECEIVER` addresses and disables initializers."},"initialize(address)":{"notice":"Initializes the contract as ownable and access controlled."},"isSafeForDirectExecution((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))":{"notice":"Checks if an update is safe for direct execution (no timelock required)."},"renounceOwnership()":{"notice":"Disables renounceOwnership function"},"safeDeltaBps()":{"notice":"The safe delta threshold in basis points.Updates within this delta are considered safe and require no timelock. Updates exceeding this delta require timelock."},"setAccessControlManager(address)":{"notice":"Sets the address of AccessControlManager"},"setSafeDeltaBps(uint256)":{"notice":"Sets the safe delta bps."}},"notice":"Contract that can update collateral factors and liquidation thresholds received from `RiskStewardReceiver`.","version":1}}},"contracts/RiskSteward/DestinationStewardReceiver.sol":{"DestinationStewardReceiver":{"abi":[{"inputs":[{"internalType":"address","name":"endpoint_","type":"address"},{"internalType":"uint32","name":"layerZeroEid_","type":"uint32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ConfigNotActive","type":"error"},{"inputs":[],"name":"ConfigStatusUnchanged","type":"error"},{"inputs":[],"name":"ExecutorStatusUnchanged","type":"error"},{"inputs":[],"name":"InvalidDebounce","type":"error"},{"inputs":[],"name":"InvalidDelegate","type":"error"},{"inputs":[],"name":"InvalidEndpointCall","type":"error"},{"inputs":[],"name":"InvalidLayerZeroEid","type":"error"},{"inputs":[],"name":"InvalidRemoteDelay","type":"error"},{"inputs":[],"name":"InvalidUpdateType","type":"error"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"name":"NoPeer","type":"error"},{"inputs":[],"name":"NotAnExecutor","type":"error"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"OnlyEndpoint","type":"error"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"}],"name":"OnlyPeer","type":"error"},{"inputs":[],"name":"RemoteDelayUnchanged","type":"error"},{"inputs":[],"name":"RenounceOwnershipNotAllowed","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"calledContract","type":"address"},{"internalType":"string","name":"methodSignature","type":"string"}],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"UnsupportedUpdateType","type":"error"},{"inputs":[],"name":"UpdateIsExpired","type":"error"},{"inputs":[],"name":"UpdateNotFound","type":"error"},{"inputs":[],"name":"UpdateNotUnlocked","type":"error"},{"inputs":[],"name":"UpdateTooFrequent","type":"error"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"updateTypeHash","type":"bytes32"},{"indexed":false,"internalType":"string","name":"updateType","type":"string"},{"indexed":false,"internalType":"bool","name":"previousActive","type":"bool"},{"indexed":true,"internalType":"bool","name":"active","type":"bool"}],"name":"ConfigActiveUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"updateId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"arrivalTime","type":"uint256"},{"indexed":true,"internalType":"string","name":"updateType","type":"string"},{"indexed":true,"internalType":"address","name":"market","type":"address"}],"name":"DuplicateUpdateReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"executor","type":"address"},{"indexed":false,"internalType":"bool","name":"previousApproved","type":"bool"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ExecutorStatusUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldAccessControlManager","type":"address"},{"indexed":false,"internalType":"address","name":"newAccessControlManager","type":"address"}],"name":"NewAccessControlManager","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","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":"uint32","name":"eid","type":"uint32"},{"indexed":false,"internalType":"bytes32","name":"peer","type":"bytes32"}],"name":"PeerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"updateId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"arrivalTime","type":"uint256"},{"indexed":true,"internalType":"string","name":"updateType","type":"string"},{"indexed":true,"internalType":"address","name":"market","type":"address"}],"name":"RegisteredPendingUpdateExist","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"remoteDelay","type":"uint256"}],"name":"RemoteDelaySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"updateId","type":"uint256"}],"name":"RemoteUpdateExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"updateId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"arrivalTime","type":"uint256"},{"indexed":true,"internalType":"string","name":"updateType","type":"string"},{"indexed":true,"internalType":"address","name":"market","type":"address"}],"name":"RemoteUpdateRegistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"updateTypeHash","type":"bytes32"},{"indexed":false,"internalType":"string","name":"updateType","type":"string"},{"indexed":true,"internalType":"address","name":"previousRiskSteward","type":"address"},{"indexed":true,"internalType":"address","name":"riskSteward","type":"address"},{"indexed":false,"internalType":"uint256","name":"previousDebounce","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"debounce","type":"uint256"},{"indexed":false,"internalType":"bool","name":"previousActive","type":"bool"},{"indexed":false,"internalType":"bool","name":"active","type":"bool"}],"name":"RiskParameterConfigUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"updateId","type":"uint256"}],"name":"UpdateRejected","type":"event"},{"inputs":[],"name":"LAYER_ZERO_EID","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"REMOTE_UPDATE_EXPIRATION_TIME","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"accessControlManager","outputs":[{"internalType":"contract IAccessControlManagerV8","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"origin","type":"tuple"}],"name":"allowInitializePath","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"endpoint","outputs":[{"internalType":"contract ILayerZeroEndpointV2","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"updateId","type":"uint256"}],"name":"executeUpdate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"updateType","type":"string"},{"internalType":"address","name":"comptroller","type":"address"}],"name":"getExecutableUpdates","outputs":[{"internalType":"uint256[]","name":"executableUpdates","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"updateType","type":"string"},{"internalType":"address","name":"market","type":"address"}],"name":"getLastExecutedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"updateType","type":"string"},{"internalType":"address","name":"market","type":"address"}],"name":"getRegisteredUpdate","outputs":[{"components":[{"components":[{"internalType":"string","name":"referenceId","type":"string"},{"internalType":"uint256","name":"updateId","type":"uint256"},{"internalType":"address","name":"market","type":"address"},{"internalType":"string","name":"updateType","type":"string"},{"internalType":"bytes32","name":"updateTypeKey","type":"bytes32"},{"internalType":"bytes","name":"newValue","type":"bytes"},{"internalType":"bytes","name":"previousValue","type":"bytes"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"address","name":"publisher","type":"address"},{"internalType":"uint96","name":"poolId","type":"uint96"},{"internalType":"uint32","name":"destLzEid","type":"uint32"},{"internalType":"bytes","name":"additionalData","type":"bytes"}],"internalType":"struct RiskParameterUpdate","name":"update","type":"tuple"},{"internalType":"enum IDestinationStewardReceiver.UpdateStatus","name":"status","type":"uint8"},{"internalType":"uint256","name":"arrivalTime","type":"uint256"},{"internalType":"address","name":"executor","type":"address"}],"internalType":"struct IDestinationStewardReceiver.DestinationUpdate","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"updateType","type":"string"}],"name":"getRiskParameterConfig","outputs":[{"components":[{"internalType":"bool","name":"active","type":"bool"},{"internalType":"uint256","name":"debounce","type":"uint256"},{"internalType":"address","name":"riskSteward","type":"address"}],"internalType":"struct IDestinationStewardReceiver.RiskParamConfig","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"accessControlManager_","type":"address"},{"internalType":"address","name":"delegate_","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"","type":"tuple"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"address","name":"_sender","type":"address"}],"name":"isComposeMsgSender","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"market","type":"address"}],"name":"lastExecutedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"market","type":"address"}],"name":"lastRegisteredUpdateId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"_origin","type":"tuple"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"name":"lzReceive","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"nextNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oAppVersion","outputs":[{"internalType":"uint64","name":"senderVersion","type":"uint64"},{"internalType":"uint64","name":"receiverVersion","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"name":"peers","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"updateId","type":"uint256"}],"name":"rejectUpdate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"remoteDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"riskParameterConfigs","outputs":[{"internalType":"bool","name":"active","type":"bool"},{"internalType":"uint256","name":"debounce","type":"uint256"},{"internalType":"address","name":"riskSteward","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"accessControlManager_","type":"address"}],"name":"setAccessControlManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"updateType","type":"string"},{"internalType":"bool","name":"active","type":"bool"}],"name":"setConfigActive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"name":"setDelegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"name":"setPeer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newRemoteDelay","type":"uint256"}],"name":"setRemoteDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"updateType","type":"string"},{"internalType":"address","name":"riskSteward","type":"address"},{"internalType":"uint256","name":"debounce","type":"uint256"}],"name":"setRiskParameterConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"executor","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setWhitelistedExecutor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"updateId","type":"uint256"}],"name":"updates","outputs":[{"components":[{"internalType":"string","name":"referenceId","type":"string"},{"internalType":"uint256","name":"updateId","type":"uint256"},{"internalType":"address","name":"market","type":"address"},{"internalType":"string","name":"updateType","type":"string"},{"internalType":"bytes32","name":"updateTypeKey","type":"bytes32"},{"internalType":"bytes","name":"newValue","type":"bytes"},{"internalType":"bytes","name":"previousValue","type":"bytes"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"address","name":"publisher","type":"address"},{"internalType":"uint96","name":"poolId","type":"uint96"},{"internalType":"uint32","name":"destLzEid","type":"uint32"},{"internalType":"bytes","name":"additionalData","type":"bytes"}],"internalType":"struct RiskParameterUpdate","name":"update","type":"tuple"},{"internalType":"enum IDestinationStewardReceiver.UpdateStatus","name":"status","type":"uint8"},{"internalType":"uint256","name":"arrivalTime","type":"uint256"},{"internalType":"address","name":"executor","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelistedExecutors","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"devdoc":{"author":"Venus","custom:security-contact":"https://github.com/VenusProtocol/governance-contracts#discussion","events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."}},"kind":"dev","methods":{"acceptOwnership()":{"details":"The new owner accepts the ownership transfer."},"allowInitializePath((uint32,bytes32,uint64))":{"details":"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.","params":{"origin":"The origin information containing the source endpoint and sender address."},"returns":{"_0":"Whether the path has been initialized."}},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor","params":{"endpoint_":"Local LayerZero endpoint on this chain","layerZeroEid_":"LayerZero endpoint ID for this destination chain"}},"executeUpdate(uint256)":{"custom:access":"Only whitelisted executors can execute updates","custom:error":"NotAnExecutor if the caller is not a whitelisted executorConfigNotActive if the configuration for the update type is not activeUpdateNotFound if the update is not pending for the given (updateType, market)UpdateNotUnlocked if the remote delay has not elapsedUpdateIsExpired if the bridged update has expired on the destinationUpdateTooFrequent if the debounce period has not passed since the last execution","custom:event":"Emits RemoteUpdateExecuted with the executed update ID","params":{"updateId":"The bridged update ID to execute"}},"getExecutableUpdates(string,address)":{"params":{"comptroller":"The address of the Isolated Pools Comptroller that manages the markets","updateType":"The human‑readable identifier of the update type to filter by"},"returns":{"executableUpdates":"Array of update IDs that are ready to be executed"}},"getLastExecutedAt(string,address)":{"params":{"market":"The address of the market","updateType":"The human-readable identifier of the update type"},"returns":{"_0":"The last executed timestamp"}},"getRegisteredUpdate(string,address)":{"params":{"market":"The address of the market","updateType":"The human-readable identifier of the update type"},"returns":{"_0":"The registered update"}},"getRiskParameterConfig(string)":{"params":{"updateType":"The human-readable identifier of the update type"},"returns":{"_0":"The risk parameter configuration"}},"initialize(address,address)":{"params":{"accessControlManager_":"The address of the access control manager","delegate_":"The owner (and LayerZero delegate) of this contract"}},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"details":"_origin The origin information containing the source endpoint and sender address.  - srcEid: The source chain endpoint ID.  - sender: The sender address on the src chain.  - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.","params":{"_sender":"The sender address."},"returns":{"_0":"isSender Is a valid sender."}},"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.","params":{"_executor":"The address of the executor for the received message.","_extraData":"Additional arbitrary data provided by the corresponding executor.","_guid":"The unique identifier for the received LayerZero message.","_message":"The payload of the received message.","_origin":"The origin information containing the source endpoint and sender address.  - srcEid: The source chain endpoint ID.  - sender: The sender address on the src chain.  - nonce: The nonce of the message."}},"nextNonce(uint32,bytes32)":{"details":"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.","returns":{"nonce":"The next nonce."}},"oAppVersion()":{"details":"Providing 0 as the default for OAppSender version. Indicates that the OAppSender is not implemented. ie. this is a RECEIVE only OApp.If the OApp uses both OAppSender and OAppReceiver, then this needs to be override returning the correct versions.","returns":{"receiverVersion":"The version of the OAppReceiver.sol contract.","senderVersion":"The version of the OAppSender.sol contract."}},"owner()":{"details":"Returns the address of the current owner."},"peers(uint32)":{"params":{"_eid":"The endpoint ID."},"returns":{"_0":"peer The address of the peer associated with the specified endpoint."}},"pendingOwner()":{"details":"Returns the address of the pending owner."},"rejectUpdate(uint256)":{"custom:access":"Only whitelisted executors can reject updates","custom:error":"NotAnExecutor if the caller is not a whitelisted executorUpdateNotFound if there is no pending update with the given ID","custom:event":"Emits UpdateRejected with the rejected update ID","params":{"updateId":"The oracle update ID of the update to reject"}},"renounceOwnership()":{"custom:error":"Throws RenounceOwnershipNotAllowed"},"setAccessControlManager(address)":{"custom:access":"Only Governance","custom:event":"Emits NewAccessControlManager event","details":"Admin function to set address of AccessControlManager","params":{"accessControlManager_":"The new address of the AccessControlManager"}},"setConfigActive(string,bool)":{"custom:access":"Controlled by AccessControlManager","custom:error":"Throws UnsupportedUpdateType if the update type is not supportedThrows ConfigStatusUnchanged if the active status is already set to the desired value","custom:event":"Emits ConfigActiveUpdated with the update type hash, update type, previous active status, and the active status","params":{"active":"The active status to set","updateType":"The type of update to configure"}},"setDelegate(address)":{"details":"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.","params":{"_delegate":"The address of the delegate to be set."}},"setPeer(uint32,bytes32)":{"details":"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.","params":{"_eid":"The endpoint ID.","_peer":"The address of the peer to be associated with the corresponding endpoint."}},"setRemoteDelay(uint256)":{"custom:access":"Controlled by AccessControlManager","custom:error":"InvalidRemoteDelay if the delay is 0 or greater than or equal to the remote update expiration timeRemoteDelayUnchanged if the new delay is equal to the current delay","custom:event":"Emits RemoteDelaySet with the new remote delay value","params":{"newRemoteDelay":"The new remote delay in seconds"}},"setRiskParameterConfig(string,address,uint256)":{"custom:access":"Controlled by AccessControlManager","custom:error":"InvalidUpdateType if the update type string is emptyInvalidDebounce if the debounce is 0","custom:event":"Emits RiskParameterConfigUpdated","params":{"debounce":"The debounce period for updates of this type on the destination (anti‑DoS)","riskSteward":"The address for the risk steward contract responsible for processing the update","updateType":"The type of update to configure (e.g., \"supplyCap\", \"borrowCap\")"}},"setWhitelistedExecutor(address,bool)":{"custom:access":"Controlled by AccessControlManager","custom:error":"Throws ZeroAddressNotAllowed if the executor address is zeroThrows ExecutorStatusUnchanged if the executor whitelist status is already set to the desired value","custom:event":"Emits ExecutorStatusUpdated with the executor address, previous approval status, and new approval status","params":{"approved":"The whitelist status to set (true to whitelist, false to remove)","executor":"The address of the executor"}},"transferOwnership(address)":{"details":"Overrides OwnableUpgradeable and Ownable2StepUpgradeable to resolve      the multiple inheritance ownership transfer conflict."}},"stateVariables":{"__gap":{"details":"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"}},"title":"DestinationStewardReceiver","version":1},"evm":{"bytecode":{"functionDebugData":{"@_15097":{"entryPoint":null,"id":15097,"parameterSlots":2,"returnSlots":0},"@_1888":{"entryPoint":null,"id":1888,"parameterSlots":1,"returnSlots":0},"@_disableInitializers_6229":{"entryPoint":131,"id":6229,"parameterSlots":0,"returnSlots":0},"@ensureNonzeroAddress_10945":{"entryPoint":323,"id":10945,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_addresst_uint32_fromMemory":{"entryPoint":365,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:1068:97","nodeType":"YulBlock","src":"0:1068:97","statements":[{"nativeSrc":"6:3:97","nodeType":"YulBlock","src":"6:3:97","statements":[]},{"body":{"nativeSrc":"111:358:97","nodeType":"YulBlock","src":"111:358:97","statements":[{"body":{"nativeSrc":"157:16:97","nodeType":"YulBlock","src":"157:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"166:1:97","nodeType":"YulLiteral","src":"166:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"169:1:97","nodeType":"YulLiteral","src":"169:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"159:6:97","nodeType":"YulIdentifier","src":"159:6:97"},"nativeSrc":"159:12:97","nodeType":"YulFunctionCall","src":"159:12:97"},"nativeSrc":"159:12:97","nodeType":"YulExpressionStatement","src":"159:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"132:7:97","nodeType":"YulIdentifier","src":"132:7:97"},{"name":"headStart","nativeSrc":"141:9:97","nodeType":"YulIdentifier","src":"141:9:97"}],"functionName":{"name":"sub","nativeSrc":"128:3:97","nodeType":"YulIdentifier","src":"128:3:97"},"nativeSrc":"128:23:97","nodeType":"YulFunctionCall","src":"128:23:97"},{"kind":"number","nativeSrc":"153:2:97","nodeType":"YulLiteral","src":"153:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"124:3:97","nodeType":"YulIdentifier","src":"124:3:97"},"nativeSrc":"124:32:97","nodeType":"YulFunctionCall","src":"124:32:97"},"nativeSrc":"121:52:97","nodeType":"YulIf","src":"121:52:97"},{"nativeSrc":"182:29:97","nodeType":"YulVariableDeclaration","src":"182:29:97","value":{"arguments":[{"name":"headStart","nativeSrc":"201:9:97","nodeType":"YulIdentifier","src":"201:9:97"}],"functionName":{"name":"mload","nativeSrc":"195:5:97","nodeType":"YulIdentifier","src":"195:5:97"},"nativeSrc":"195:16:97","nodeType":"YulFunctionCall","src":"195:16:97"},"variables":[{"name":"value","nativeSrc":"186:5:97","nodeType":"YulTypedName","src":"186:5:97","type":""}]},{"body":{"nativeSrc":"274:16:97","nodeType":"YulBlock","src":"274:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"283:1:97","nodeType":"YulLiteral","src":"283:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"286:1:97","nodeType":"YulLiteral","src":"286:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"276:6:97","nodeType":"YulIdentifier","src":"276:6:97"},"nativeSrc":"276:12:97","nodeType":"YulFunctionCall","src":"276:12:97"},"nativeSrc":"276:12:97","nodeType":"YulExpressionStatement","src":"276:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"233:5:97","nodeType":"YulIdentifier","src":"233:5:97"},{"arguments":[{"name":"value","nativeSrc":"244:5:97","nodeType":"YulIdentifier","src":"244:5:97"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"259:3:97","nodeType":"YulLiteral","src":"259:3:97","type":"","value":"160"},{"kind":"number","nativeSrc":"264:1:97","nodeType":"YulLiteral","src":"264:1:97","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"255:3:97","nodeType":"YulIdentifier","src":"255:3:97"},"nativeSrc":"255:11:97","nodeType":"YulFunctionCall","src":"255:11:97"},{"kind":"number","nativeSrc":"268:1:97","nodeType":"YulLiteral","src":"268:1:97","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"251:3:97","nodeType":"YulIdentifier","src":"251:3:97"},"nativeSrc":"251:19:97","nodeType":"YulFunctionCall","src":"251:19:97"}],"functionName":{"name":"and","nativeSrc":"240:3:97","nodeType":"YulIdentifier","src":"240:3:97"},"nativeSrc":"240:31:97","nodeType":"YulFunctionCall","src":"240:31:97"}],"functionName":{"name":"eq","nativeSrc":"230:2:97","nodeType":"YulIdentifier","src":"230:2:97"},"nativeSrc":"230:42:97","nodeType":"YulFunctionCall","src":"230:42:97"}],"functionName":{"name":"iszero","nativeSrc":"223:6:97","nodeType":"YulIdentifier","src":"223:6:97"},"nativeSrc":"223:50:97","nodeType":"YulFunctionCall","src":"223:50:97"},"nativeSrc":"220:70:97","nodeType":"YulIf","src":"220:70:97"},{"nativeSrc":"299:15:97","nodeType":"YulAssignment","src":"299:15:97","value":{"name":"value","nativeSrc":"309:5:97","nodeType":"YulIdentifier","src":"309:5:97"},"variableNames":[{"name":"value0","nativeSrc":"299:6:97","nodeType":"YulIdentifier","src":"299:6:97"}]},{"nativeSrc":"323:40:97","nodeType":"YulVariableDeclaration","src":"323:40:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"348:9:97","nodeType":"YulIdentifier","src":"348:9:97"},{"kind":"number","nativeSrc":"359:2:97","nodeType":"YulLiteral","src":"359:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"344:3:97","nodeType":"YulIdentifier","src":"344:3:97"},"nativeSrc":"344:18:97","nodeType":"YulFunctionCall","src":"344:18:97"}],"functionName":{"name":"mload","nativeSrc":"338:5:97","nodeType":"YulIdentifier","src":"338:5:97"},"nativeSrc":"338:25:97","nodeType":"YulFunctionCall","src":"338:25:97"},"variables":[{"name":"value_1","nativeSrc":"327:7:97","nodeType":"YulTypedName","src":"327:7:97","type":""}]},{"body":{"nativeSrc":"421:16:97","nodeType":"YulBlock","src":"421:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"430:1:97","nodeType":"YulLiteral","src":"430:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"433:1:97","nodeType":"YulLiteral","src":"433:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"423:6:97","nodeType":"YulIdentifier","src":"423:6:97"},"nativeSrc":"423:12:97","nodeType":"YulFunctionCall","src":"423:12:97"},"nativeSrc":"423:12:97","nodeType":"YulExpressionStatement","src":"423:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value_1","nativeSrc":"385:7:97","nodeType":"YulIdentifier","src":"385:7:97"},{"arguments":[{"name":"value_1","nativeSrc":"398:7:97","nodeType":"YulIdentifier","src":"398:7:97"},{"kind":"number","nativeSrc":"407:10:97","nodeType":"YulLiteral","src":"407:10:97","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nativeSrc":"394:3:97","nodeType":"YulIdentifier","src":"394:3:97"},"nativeSrc":"394:24:97","nodeType":"YulFunctionCall","src":"394:24:97"}],"functionName":{"name":"eq","nativeSrc":"382:2:97","nodeType":"YulIdentifier","src":"382:2:97"},"nativeSrc":"382:37:97","nodeType":"YulFunctionCall","src":"382:37:97"}],"functionName":{"name":"iszero","nativeSrc":"375:6:97","nodeType":"YulIdentifier","src":"375:6:97"},"nativeSrc":"375:45:97","nodeType":"YulFunctionCall","src":"375:45:97"},"nativeSrc":"372:65:97","nodeType":"YulIf","src":"372:65:97"},{"nativeSrc":"446:17:97","nodeType":"YulAssignment","src":"446:17:97","value":{"name":"value_1","nativeSrc":"456:7:97","nodeType":"YulIdentifier","src":"456:7:97"},"variableNames":[{"name":"value1","nativeSrc":"446:6:97","nodeType":"YulIdentifier","src":"446:6:97"}]}]},"name":"abi_decode_tuple_t_addresst_uint32_fromMemory","nativeSrc":"14:455:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"69:9:97","nodeType":"YulTypedName","src":"69:9:97","type":""},{"name":"dataEnd","nativeSrc":"80:7:97","nodeType":"YulTypedName","src":"80:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"92:6:97","nodeType":"YulTypedName","src":"92:6:97","type":""},{"name":"value1","nativeSrc":"100:6:97","nodeType":"YulTypedName","src":"100:6:97","type":""}],"src":"14:455:97"},{"body":{"nativeSrc":"648:229:97","nodeType":"YulBlock","src":"648:229:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"665:9:97","nodeType":"YulIdentifier","src":"665:9:97"},{"kind":"number","nativeSrc":"676:2:97","nodeType":"YulLiteral","src":"676:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"658:6:97","nodeType":"YulIdentifier","src":"658:6:97"},"nativeSrc":"658:21:97","nodeType":"YulFunctionCall","src":"658:21:97"},"nativeSrc":"658:21:97","nodeType":"YulExpressionStatement","src":"658:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"699:9:97","nodeType":"YulIdentifier","src":"699:9:97"},{"kind":"number","nativeSrc":"710:2:97","nodeType":"YulLiteral","src":"710:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"695:3:97","nodeType":"YulIdentifier","src":"695:3:97"},"nativeSrc":"695:18:97","nodeType":"YulFunctionCall","src":"695:18:97"},{"kind":"number","nativeSrc":"715:2:97","nodeType":"YulLiteral","src":"715:2:97","type":"","value":"39"}],"functionName":{"name":"mstore","nativeSrc":"688:6:97","nodeType":"YulIdentifier","src":"688:6:97"},"nativeSrc":"688:30:97","nodeType":"YulFunctionCall","src":"688:30:97"},"nativeSrc":"688:30:97","nodeType":"YulExpressionStatement","src":"688:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"738:9:97","nodeType":"YulIdentifier","src":"738:9:97"},{"kind":"number","nativeSrc":"749:2:97","nodeType":"YulLiteral","src":"749:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"734:3:97","nodeType":"YulIdentifier","src":"734:3:97"},"nativeSrc":"734:18:97","nodeType":"YulFunctionCall","src":"734:18:97"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320696e697469","kind":"string","nativeSrc":"754:34:97","nodeType":"YulLiteral","src":"754:34:97","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nativeSrc":"727:6:97","nodeType":"YulIdentifier","src":"727:6:97"},"nativeSrc":"727:62:97","nodeType":"YulFunctionCall","src":"727:62:97"},"nativeSrc":"727:62:97","nodeType":"YulExpressionStatement","src":"727:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"809:9:97","nodeType":"YulIdentifier","src":"809:9:97"},{"kind":"number","nativeSrc":"820:2:97","nodeType":"YulLiteral","src":"820:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"805:3:97","nodeType":"YulIdentifier","src":"805:3:97"},"nativeSrc":"805:18:97","nodeType":"YulFunctionCall","src":"805:18:97"},{"hexValue":"616c697a696e67","kind":"string","nativeSrc":"825:9:97","nodeType":"YulLiteral","src":"825:9:97","type":"","value":"alizing"}],"functionName":{"name":"mstore","nativeSrc":"798:6:97","nodeType":"YulIdentifier","src":"798:6:97"},"nativeSrc":"798:37:97","nodeType":"YulFunctionCall","src":"798:37:97"},"nativeSrc":"798:37:97","nodeType":"YulExpressionStatement","src":"798:37:97"},{"nativeSrc":"844:27:97","nodeType":"YulAssignment","src":"844:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"856:9:97","nodeType":"YulIdentifier","src":"856:9:97"},{"kind":"number","nativeSrc":"867:3:97","nodeType":"YulLiteral","src":"867:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"852:3:97","nodeType":"YulIdentifier","src":"852:3:97"},"nativeSrc":"852:19:97","nodeType":"YulFunctionCall","src":"852:19:97"},"variableNames":[{"name":"tail","nativeSrc":"844:4:97","nodeType":"YulIdentifier","src":"844:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"474:403:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"625:9:97","nodeType":"YulTypedName","src":"625:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"639:4:97","nodeType":"YulTypedName","src":"639:4:97","type":""}],"src":"474:403:97"},{"body":{"nativeSrc":"979:87:97","nodeType":"YulBlock","src":"979:87:97","statements":[{"nativeSrc":"989:26:97","nodeType":"YulAssignment","src":"989:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1001:9:97","nodeType":"YulIdentifier","src":"1001:9:97"},{"kind":"number","nativeSrc":"1012:2:97","nodeType":"YulLiteral","src":"1012:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"997:3:97","nodeType":"YulIdentifier","src":"997:3:97"},"nativeSrc":"997:18:97","nodeType":"YulFunctionCall","src":"997:18:97"},"variableNames":[{"name":"tail","nativeSrc":"989:4:97","nodeType":"YulIdentifier","src":"989:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1031:9:97","nodeType":"YulIdentifier","src":"1031:9:97"},{"arguments":[{"name":"value0","nativeSrc":"1046:6:97","nodeType":"YulIdentifier","src":"1046:6:97"},{"kind":"number","nativeSrc":"1054:4:97","nodeType":"YulLiteral","src":"1054:4:97","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"1042:3:97","nodeType":"YulIdentifier","src":"1042:3:97"},"nativeSrc":"1042:17:97","nodeType":"YulFunctionCall","src":"1042:17:97"}],"functionName":{"name":"mstore","nativeSrc":"1024:6:97","nodeType":"YulIdentifier","src":"1024:6:97"},"nativeSrc":"1024:36:97","nodeType":"YulFunctionCall","src":"1024:36:97"},"nativeSrc":"1024:36:97","nodeType":"YulExpressionStatement","src":"1024:36:97"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"882:184:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"948:9:97","nodeType":"YulTypedName","src":"948:9:97","type":""},{"name":"value0","nativeSrc":"959:6:97","nodeType":"YulTypedName","src":"959:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"970:4:97","nodeType":"YulTypedName","src":"970:4:97","type":""}],"src":"882:184:97"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_addresst_uint32_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n        value0 := value\n        let value_1 := mload(add(headStart, 32))\n        if iszero(eq(value_1, and(value_1, 0xffffffff))) { revert(0, 0) }\n        value1 := value_1\n    }\n    function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 39)\n        mstore(add(headStart, 64), \"Initializable: contract is initi\")\n        mstore(add(headStart, 96), \"alizing\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n}","id":97,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60c060405234801561001057600080fd5b5060405161418938038061418983398101604081905261002f9161016d565b6001600160a01b038216608052610044610083565b61004d82610143565b8063ffffffff16600003610074576040516349961c7360e11b815260040160405180910390fd5b63ffffffff1660a052506101bc565b600054610100900460ff16156100ef5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015610141576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811661016a576040516342bcdf7f60e11b815260040160405180910390fd5b50565b6000806040838503121561018057600080fd5b82516001600160a01b038116811461019757600080fd5b602084015190925063ffffffff811681146101b157600080fd5b809150509250929050565b60805160a051613f9a6101ef60003960006103d101526000818161041a015281816108320152611d3d0152613f9a6000f3fe6080604052600436106102345760003560e01c80638da5cb5b11610138578063ca136b99116100b0578063f2fde38b1161007f578063f63106e411610064578063f63106e41461079f578063fe2b3502146107cc578063ff7bd03d146107fc57600080fd5b8063f2fde38b14610752578063f5d3b7b31461077257600080fd5b8063ca136b99146106de578063ca5eb5e1146106fe578063e2509c761461071e578063e30c39781461073457600080fd5b8063b4a0bdf311610107578063bb0b6a53116100ec578063bb0b6a531461064c578063be3881b41461069e578063c3e10deb146106be57600080fd5b8063b4a0bdf3146105fe578063b4c2f7271461061c57600080fd5b80638da5cb5b14610519578063a49e9ea114610537578063af9e0fd31461056f578063b080d71d146105de57600080fd5b8063438653fe116101cb578063715018a61161019a57806379edd1001161017f57806379edd1001461047e5780637d25a05e1461049e57806382413eac146104da57600080fd5b8063715018a61461045457806379ba50971461046957600080fd5b8063438653fe1461037f578063485cc9551461039f5780634c213449146103bf5780635e280f111461040857600080fd5b806317442b701161020757806317442b70146102d057806328207141146102f25780633400288b1461033f5780633aed7f311461035f57600080fd5b8063050d8986146102395780630e32cb861461026357806313137d6514610285578063170338c814610298575b600080fd5b34801561024557600080fd5b506102506202a30081565b6040519081526020015b60405180910390f35b34801561026f57600080fd5b5061028361027e3660046131cc565b61081c565b005b61028361029336600461324a565b610830565b3480156102a457600080fd5b506102506102b33660046132ea565b60cd60209081526000928352604080842090915290825290205481565b3480156102dc57600080fd5b506040805160008152600260208201520161025a565b3480156102fe57600080fd5b5061031261030d36600461331a565b610922565b6040805182511515815260208084015190820152918101516001600160a01b03169082015260600161025a565b34801561034b57600080fd5b5061028361035a366004613370565b6109a1565b34801561036b57600080fd5b5061028361037a3660046133a8565b610a20565b34801561038b57600080fd5b5061028361039a3660046133d6565b610b09565b3480156103ab57600080fd5b506102836103ba36600461342d565b610c6a565b3480156103cb57600080fd5b506103f37f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff909116815260200161025a565b34801561041457600080fd5b5061043c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161025a565b34801561046057600080fd5b50610283610e21565b34801561047557600080fd5b50610283610e53565b34801561048a57600080fd5b5061028361049936600461345b565b610ef8565b3480156104aa57600080fd5b506104c16104b9366004613370565b600092915050565b60405167ffffffffffffffff909116815260200161025a565b3480156104e657600080fd5b506105096104f5366004613474565b6001600160a01b0381163014949350505050565b604051901515815260200161025a565b34801561052557600080fd5b506033546001600160a01b031661043c565b34801561054357600080fd5b506102506105523660046132ea565b60cc60209081526000928352604080842090915290825290205481565b34801561057b57600080fd5b506105b861058a36600461345b565b60ca6020526000908152604090208054600182015460029092015460ff90911691906001600160a01b031683565b60408051931515845260208401929092526001600160a01b03169082015260600161025a565b3480156105ea57600080fd5b506102836105f93660046134db565b611589565b34801561060a57600080fd5b506097546001600160a01b031661043c565b34801561062857600080fd5b5061063c61063736600461345b565b611725565b60405161025a94939291906136fb565b34801561065857600080fd5b5061025061066736600461373b565b63ffffffff1660009081527f72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f900602052604090205490565b3480156106aa57600080fd5b506102506106b9366004613756565b611ad0565b3480156106ca57600080fd5b506102836106d936600461345b565b611b18565b3480156106ea57600080fd5b506102836106f936600461345b565b611bff565b34801561070a57600080fd5b506102836107193660046131cc565b611cfd565b34801561072a57600080fd5b5061025060c95481565b34801561074057600080fd5b506065546001600160a01b031661043c565b34801561075e57600080fd5b5061028361076d3660046131cc565b611d9c565b34801561077e57600080fd5b5061079261078d366004613756565b611dad565b60405161025a91906137a2565b3480156107ab57600080fd5b506107bf6107ba366004613756565b61224d565b60405161025a91906137fa565b3480156107d857600080fd5b506105096107e73660046131cc565b60ce6020526000908152604090205460ff1681565b34801561080857600080fd5b5061050961081736600461383e565b612508565b610824612526565b61082d8161259c565b50565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610899576040517f91ac5e4f0000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b602087018035906108b3906108ae908a61373b565b6126a4565b1461090a576108c5602088018861373b565b6040517fc26bebcc00000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015260208801356024820152604401610890565b6109198787878787878761271a565b50505050505050565b60408051606081018252600080825260208201819052918101919091526000838360405161095192919061385a565b60408051918290038220600090815260ca602090815290829020606084018352805460ff1615158452600181015491840191909152600201546001600160a01b0316908201529150505b92915050565b6109a9612526565b63ffffffff821660008181527f72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f900602081815260409283902085905582519384528301849052917f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b91015b60405180910390a1505050565b610a41604051806060016040528060248152602001613f1360249139612a6e565b610a4a82612b3e565b6001600160a01b038216600090815260ce602052604090205460ff1681151581151503610aa3576040517f8eee990d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038316600081815260ce6020908152604091829020805460ff191686151590811790915582518515158152918201527f10c0e7519c24c8e42dbd4d2405e9976e893c51df86614145b2758289f197ec3b910160405180910390a2505050565b610b476040518060400160405280601c81526020017f736574436f6e66696741637469766528737472696e672c626f6f6c2900000000815250612a6e565b60008383604051610b5992919061385a565b6040805191829003909120600081815260ca60205291909120600201549091506001600160a01b0316610bb8576040517f80919d7b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081815260ca602052604090205460ff1682151581151503610c07576040517f01e852dc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082815260ca602052604090819020805460ff1916851515908117909155905183907fcba816b2fc5cd49700523a79b6e6c7dda19292fbb932cca77f7bccb1e500479290610c5b90899089908790613895565b60405180910390a35050505050565b600054610100900460ff1615808015610c8a5750600054600160ff909116105b80610ca45750303b158015610ca4575060005460ff166001145b610d30576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610890565b6000805460ff191660011790558015610d7057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610d7983612b7e565b610d8282612c26565b61546060c98190556040519081527fa1c2964049f672e1cba842d393f777ed468b9846eb7de186d7e73665a326b3019060200160405180910390a18015610e1c57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610a13565b505050565b6040517f96c553eb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60655433906001600160a01b03168114610eef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e657200000000000000000000000000000000000000000000006064820152608401610890565b61082d81612cc6565b33600090815260ce602052604090205460ff16610f41576040517f341f61ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081815260cb602052604080822081516101808101909252805490929190839082908290610f6f906138bb565b80601f0160208091040260200160405190810160405280929190818152602001828054610f9b906138bb565b8015610fe85780601f10610fbd57610100808354040283529160200191610fe8565b820191906000526020600020905b815481529060010190602001808311610fcb57829003601f168201915b50505091835250506001820154602082015260028201546001600160a01b03166040820152600382018054606090920191611022906138bb565b80601f016020809104026020016040519081016040528092919081815260200182805461104e906138bb565b801561109b5780601f106110705761010080835404028352916020019161109b565b820191906000526020600020905b81548152906001019060200180831161107e57829003601f168201915b50505050508152602001600482015481526020016005820180546110be906138bb565b80601f01602080910402602001604051908101604052809291908181526020018280546110ea906138bb565b80156111375780601f1061110c57610100808354040283529160200191611137565b820191906000526020600020905b81548152906001019060200180831161111a57829003601f168201915b50505050508152602001600682018054611150906138bb565b80601f016020809104026020016040519081016040528092919081815260200182805461117c906138bb565b80156111c95780601f1061119e576101008083540402835291602001916111c9565b820191906000526020600020905b8154815290600101906020018083116111ac57829003601f168201915b50505091835250506007820154602082015260088201546001600160a01b03811660408301527401000000000000000000000000000000000000000090046bffffffffffffffffffffffff166060820152600982015463ffffffff166080820152600a8201805460a09092019161123f906138bb565b80601f016020809104026020016040519081016040528092919081815260200182805461126b906138bb565b80156112b85780601f1061128d576101008083540402835291602001916112b8565b820191906000526020600020905b81548152906001019060200180831161129b57829003601f168201915b505050919092525050506080810151600081815260ca6020526040902080549293509091429060ff16611317576040517fdea2a21200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600b86015460ff16600381111561133257611332613691565b14611369576040517f6196e5a300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60c95485600c015461137b9190613937565b8110156113b4576040517f05f5f49800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806202a3008560e001516113c89190613937565b1015611400576040517fc2a16f1400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600083815260cd60209081526040808320878201516001600160a01b0316845290915290205480158015906114435750818360010154826114419190613937565b115b1561147a576040517f53f7a6ee00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600084815260cd60209081526040808320888201516001600160a01b039081168552925291829020849055600b88018054600260ff199091168117909155600d890180547fffffffffffffffffffffffff0000000000000000000000000000000000000000163317905585015491517fbf63783900000000000000000000000000000000000000000000000000000000815291169063bf6378399061152390889060040161394a565b600060405180830381600087803b15801561153d57600080fd5b505af1158015611551573d6000803e3d6000fd5b50506040518992507f27f52b13359f1687e1c3c6179b59fd5f217e9f580e76053c074a51d65de2dac79150600090a250505050505050565b6115aa6040518060600160405280602e8152602001613f37602e9139612a6e565b6115b382612b3e565b8215806115c05750604083115b156115f6576040517e64280000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600003611630576040517ff6ea4e0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000848460405161164292919061385a565b60408051918290038220600081815260ca602081815284832060608701865260018088528288018a81526001600160a01b038c81168a8a0181815297899052959094529751825460ff19169015159081178355975181830181905594516002830180547fffffffffffffffffffffffff000000000000000000000000000000000000000016919094169081179093559551949750959194909387937f2cbea64d1a2ece216f5461b535881b82196130c6a988a9d3b323bd6d5cfe608e93611715938e938e93928d9260ff9091169161395d565b60405180910390a4505050505050565b60cb6020528060005260406000206000915090508060000160405180610180016040529081600082018054611759906138bb565b80601f0160208091040260200160405190810160405280929190818152602001828054611785906138bb565b80156117d25780601f106117a7576101008083540402835291602001916117d2565b820191906000526020600020905b8154815290600101906020018083116117b557829003601f168201915b50505091835250506001820154602082015260028201546001600160a01b0316604082015260038201805460609092019161180c906138bb565b80601f0160208091040260200160405190810160405280929190818152602001828054611838906138bb565b80156118855780601f1061185a57610100808354040283529160200191611885565b820191906000526020600020905b81548152906001019060200180831161186857829003601f168201915b50505050508152602001600482015481526020016005820180546118a8906138bb565b80601f01602080910402602001604051908101604052809291908181526020018280546118d4906138bb565b80156119215780601f106118f657610100808354040283529160200191611921565b820191906000526020600020905b81548152906001019060200180831161190457829003601f168201915b5050505050815260200160068201805461193a906138bb565b80601f0160208091040260200160405190810160405280929190818152602001828054611966906138bb565b80156119b35780601f10611988576101008083540402835291602001916119b3565b820191906000526020600020905b81548152906001019060200180831161199657829003601f168201915b50505091835250506007820154602082015260088201546001600160a01b03811660408301527401000000000000000000000000000000000000000090046bffffffffffffffffffffffff166060820152600982015463ffffffff166080820152600a8201805460a090920191611a29906138bb565b80601f0160208091040260200160405190810160405280929190818152602001828054611a55906138bb565b8015611aa25780601f10611a7757610100808354040283529160200191611aa2565b820191906000526020600020905b815481529060010190602001808311611a8557829003601f168201915b50505091909252505050600b820154600c830154600d90930154919260ff909116916001600160a01b031684565b6000808484604051611ae392919061385a565b6040805191829003909120600090815260cd60209081528282206001600160a01b0387168352905220549150505b9392505050565b33600090815260ce602052604090205460ff16611b61576040517f341f61ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081815260cb602052604090206001600b82015460ff166003811115611b8a57611b8a613691565b14611bc1576040517f6196e5a300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600b8101805460ff1916600317905560405182907f0a4273908b9362e571cacd5610879e3dfd7ddc7c9b3ce1d7ea7ea8b41869116490600090a25050565b611c3d6040518060400160405280601781526020017f73657452656d6f746544656c61792875696e7432353629000000000000000000815250612a6e565b801580611c4d57506202a3008110155b15611c84576040517f545f991300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60c954818103611cc0576040517fbb45c33d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60c98290556040518281527fa1c2964049f672e1cba842d393f777ed468b9846eb7de186d7e73665a326b301906020015b60405180910390a15050565b611d05612526565b6040517fca5eb5e10000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b158015611d8157600080fd5b505af1158015611d95573d6000803e3d6000fd5b5050505050565b611da4612526565b61082d81612ccf565b6040805161020081018252606060808201818152600060a0840181905260c0840181905260e08401839052610100840181905261012084018390526101408401839052610160840181905261018084018190526101a084018190526101c084018190526101e084018390529083526020830181905292820183905281019190915260008484604051611e4092919061385a565b60408051918290038220600081815260cc60209081528382206001600160a01b038916835281528382205480835260cb909152908390206102008501909352825491945092919082906080820190839082908290611e9d906138bb565b80601f0160208091040260200160405190810160405280929190818152602001828054611ec9906138bb565b8015611f165780601f10611eeb57610100808354040283529160200191611f16565b820191906000526020600020905b815481529060010190602001808311611ef957829003601f168201915b50505091835250506001820154602082015260028201546001600160a01b03166040820152600382018054606090920191611f50906138bb565b80601f0160208091040260200160405190810160405280929190818152602001828054611f7c906138bb565b8015611fc95780601f10611f9e57610100808354040283529160200191611fc9565b820191906000526020600020905b815481529060010190602001808311611fac57829003601f168201915b5050505050815260200160048201548152602001600582018054611fec906138bb565b80601f0160208091040260200160405190810160405280929190818152602001828054612018906138bb565b80156120655780601f1061203a57610100808354040283529160200191612065565b820191906000526020600020905b81548152906001019060200180831161204857829003601f168201915b5050505050815260200160068201805461207e906138bb565b80601f01602080910402602001604051908101604052809291908181526020018280546120aa906138bb565b80156120f75780601f106120cc576101008083540402835291602001916120f7565b820191906000526020600020905b8154815290600101906020018083116120da57829003601f168201915b50505091835250506007820154602082015260088201546001600160a01b03811660408301527401000000000000000000000000000000000000000090046bffffffffffffffffffffffff166060820152600982015463ffffffff166080820152600a8201805460a09092019161216d906138bb565b80601f0160208091040260200160405190810160405280929190818152602001828054612199906138bb565b80156121e65780601f106121bb576101008083540402835291602001916121e6565b820191906000526020600020905b8154815290600101906020018083116121c957829003601f168201915b505050919092525050508152600b82015460209091019060ff16600381111561221157612211613691565b600381111561222257612222613691565b8152600c8201546020820152600d909101546001600160a01b03166040909101529695505050505050565b60606000848460405161226192919061385a565b604051809103902090506000836001600160a01b031663b0772d0b6040518163ffffffff1660e01b8152600401600060405180830381865afa1580156122ab573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526122d39190810190613a22565b805190915060008167ffffffffffffffff8111156122f3576122f3613998565b60405190808252806020026020018201604052801561231c578160200160208202803683370190505b50600085815260ca602052604081208054929350909160ff166123565750506040805160008152602081019091529450611b119350505050565b60005b8481101561246a57600086828151811061237557612375613ad4565b60209081029190910181015160008a815260cc835260408082206001600160a01b038416835284528082205480835260cb90945290209092506123b782612d58565b6123c357505050612462565b60c95481600c01546123d59190613937565b4210156123e457505050612462565b60008a815260cd602090815260408083206001600160a01b038716845290915290205480158015906124245750428660010154826124229190613937565b115b156124325750505050612462565b8288888151811061244557612445613ad4565b60209081029190910101528661245a81613b03565b975050505050505b600101612359565b508167ffffffffffffffff81111561248457612484613998565b6040519080825280602002602001820160405280156124ad578160200160208202803683370190505b50965060005b828110156124fa578381815181106124cd576124cd613ad4565b60200260200101518882815181106124e7576124e7613ad4565b60209081029190910101526001016124b3565b505050505050509392505050565b60006020820180359061251f90610667908561373b565b1492915050565b6033546001600160a01b0316331461259a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610890565b565b6001600160a01b038116612632576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e6167657220616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610890565b609780546001600160a01b038381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa09101611cf1565b63ffffffff811660009081527f72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f9006020819052604082205480611b11576040517ff6ff4fb700000000000000000000000000000000000000000000000000000000815263ffffffff85166004820152602401610890565b600061272885870187613bc7565b60208101519091504260008083815260cb60205260409020600b015460ff16600381111561275857612758613691565b146127c75782604001516001600160a01b0316836060015160405161277d9190613d2e565b6040518091039020837f6f2b8853cd821aee89a0dc78a586658bcbd9c930d3d25be1de720fa0346bd73b846040516127b791815260200190565b60405180910390a4505050610919565b6080830151600090815260cc60209081526040808320818701516001600160a01b031684529091529020546127fb81612d58565b1561286b5783604001516001600160a01b031684606001516040516128209190613d2e565b6040518091039020827fa5cf028a8d57c7fae7982ac3692bb4bdf11ddcca7c93493242a00f4957a5ebb78560405161285a91815260200190565b60405180910390a450505050610919565b600083815260cb60205260409020845185908290819061288b9082613d9a565b506020820151600182015560408201516002820180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03909216919091179055606082015160038201906128e89082613d9a565b506080820151600482015560a082015160058201906129079082613d9a565b5060c0820151600682019061291c9082613d9a565b5060e082015160078201556101008201516101208301516bffffffffffffffffffffffff1674010000000000000000000000000000000000000000026001600160a01b0390911617600882015561014082015160098201805463ffffffff9092167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000909216919091179055610160820151600a8201906129bc9082613d9a565b505050600b8101805460ff19166001179055600c81018390556080850151600090815260cc6020908152604080832081890180516001600160a01b0390811686529190935292819020879055905160608801519151921691612a1e9190613d2e565b6040518091039020857fd5a7f72731c4bc3d3a2da54b4c53b429270f8d7f8c5b053d9ee98e072f87584086604051612a5891815260200190565b60405180910390a4505050505050505050505050565b6097546040517f18c5e8ab0000000000000000000000000000000000000000000000000000000081526000916001600160a01b0316906318c5e8ab90612aba9033908690600401613e96565b602060405180830381865afa158015612ad7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612afb9190613ec0565b905080612b3a573330836040517f4a3fa29300000000000000000000000000000000000000000000000000000000815260040161089093929190613edd565b5050565b6001600160a01b03811661082d576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600054610100900460ff16612c15576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610890565b612c1d612dbf565b61082d81612e5e565b600054610100900460ff16612cbd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610890565b61082d81612ef5565b61082d81612f95565b612cd7612526565b606580546001600160a01b0383167fffffffffffffffffffffffff00000000000000000000000000000000000000009091168117909155612d206033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b600081600003612d6a57506000919050565b600082815260cb602052604090206001600b82015460ff166003811115612d9357612d93613691565b14612da15750600092915050565b60078101544290612db6906202a30090613937565b10159392505050565b600054610100900460ff16612e56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610890565b61259a612fc6565b600054610100900460ff16610824576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610890565b600054610100900460ff16612f8c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610890565b61082d81613066565b606580547fffffffffffffffffffffffff000000000000000000000000000000000000000016905561082d8161313d565b600054610100900460ff1661305d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610890565b61259a33612cc6565b600054610100900460ff166130fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610890565b6001600160a01b038116611d05576040517fb586360400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038116811461082d57600080fd5b80356131c7816131a7565b919050565b6000602082840312156131de57600080fd5b8135611b11816131a7565b6000606082840312156131fb57600080fd5b50919050565b60008083601f84011261321357600080fd5b50813567ffffffffffffffff81111561322b57600080fd5b60208301915083602082850101111561324357600080fd5b9250929050565b600080600080600080600060e0888a03121561326557600080fd5b61326f89896131e9565b965060608801359550608088013567ffffffffffffffff8082111561329357600080fd5b61329f8b838c01613201565b909750955060a08a013591506132b4826131a7565b90935060c089013590808211156132ca57600080fd5b506132d78a828b01613201565b989b979a50959850939692959293505050565b600080604083850312156132fd57600080fd5b82359150602083013561330f816131a7565b809150509250929050565b6000806020838503121561332d57600080fd5b823567ffffffffffffffff81111561334457600080fd5b61335085828601613201565b90969095509350505050565b803563ffffffff811681146131c757600080fd5b6000806040838503121561338357600080fd5b61338c8361335c565b946020939093013593505050565b801515811461082d57600080fd5b600080604083850312156133bb57600080fd5b82356133c6816131a7565b9150602083013561330f8161339a565b6000806000604084860312156133eb57600080fd5b833567ffffffffffffffff81111561340257600080fd5b61340e86828701613201565b90945092505060208401356134228161339a565b809150509250925092565b6000806040838503121561344057600080fd5b823561344b816131a7565b9150602083013561330f816131a7565b60006020828403121561346d57600080fd5b5035919050565b60008060008060a0858703121561348a57600080fd5b61349486866131e9565b9350606085013567ffffffffffffffff8111156134b057600080fd5b6134bc87828801613201565b90945092505060808501356134d0816131a7565b939692955090935050565b600080600080606085870312156134f157600080fd5b843567ffffffffffffffff81111561350857600080fd5b61351487828801613201565b9095509350506020850135613528816131a7565b9396929550929360400135925050565b60005b8381101561355357818101518382015260200161353b565b50506000910152565b60008151808452613574816020860160208601613538565b601f01601f19169290920160200192915050565b6000610180825181855261359e8286018261355c565b9150506020830151602085015260408301516135c560408601826001600160a01b03169052565b50606083015184820360608601526135dd828261355c565b9150506080830151608085015260a083015184820360a0860152613601828261355c565b91505060c083015184820360c086015261361b828261355c565b91505060e083015160e085015261010080840151613643828701826001600160a01b03169052565b5050610120838101516bffffffffffffffffffffffff16908501526101408084015163ffffffff16908501526101608084015185830382870152613687838261355c565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600481106136f7577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b60808152600061370e6080830187613588565b905061371d60208301866136c0565b8360408301526001600160a01b038316606083015295945050505050565b60006020828403121561374d57600080fd5b611b118261335c565b60008060006040848603121561376b57600080fd5b833567ffffffffffffffff81111561378257600080fd5b61378e86828701613201565b9094509250506020840135613422816131a7565b6020815260008251608060208401526137be60a0840182613588565b905060208401516137d260408501826136c0565b50604084015160608401526001600160a01b0360608501511660808401528091505092915050565b6020808252825182820181905260009190848201906040850190845b8181101561383257835183529284019291840191600101613816565b50909695505050505050565b60006060828403121561385057600080fd5b611b1183836131e9565b8183823760009101908152919050565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b6040815260006138a960408301858761386a565b90508215156020830152949350505050565b600181811c908216806138cf57607f821691505b6020821081036131fb577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561099b5761099b613908565b602081526000611b116020830184613588565b60a08152600061397160a08301888a61386a565b60208301969096525060408101939093529015156060830152151560809091015292915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610180810167ffffffffffffffff811182821017156139eb576139eb613998565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715613a1a57613a1a613998565b604052919050565b60006020808385031215613a3557600080fd5b825167ffffffffffffffff80821115613a4d57600080fd5b818501915085601f830112613a6157600080fd5b815181811115613a7357613a73613998565b8060051b9150613a848483016139f1565b8181529183018401918481019088841115613a9e57600080fd5b938501935b83851015613ac85784519250613ab8836131a7565b8282529385019390850190613aa3565b98975050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613b3457613b34613908565b5060010190565b600082601f830112613b4c57600080fd5b813567ffffffffffffffff811115613b6657613b66613998565b613b796020601f19601f840116016139f1565b818152846020838601011115613b8e57600080fd5b816020850160208301376000918101602001919091529392505050565b80356bffffffffffffffffffffffff811681146131c757600080fd5b600060208284031215613bd957600080fd5b813567ffffffffffffffff80821115613bf157600080fd5b908301906101808286031215613c0657600080fd5b613c0e6139c7565b823582811115613c1d57600080fd5b613c2987828601613b3b565b82525060208301356020820152613c42604084016131bc565b6040820152606083013582811115613c5957600080fd5b613c6587828601613b3b565b6060830152506080830135608082015260a083013582811115613c8757600080fd5b613c9387828601613b3b565b60a08301525060c083013582811115613cab57600080fd5b613cb787828601613b3b565b60c08301525060e083013560e0820152610100613cd58185016131bc565b90820152610120613ce7848201613bab565b90820152610140613cf984820161335c565b908201526101608381013583811115613d1157600080fd5b613d1d88828701613b3b565b918301919091525095945050505050565b60008251613d40818460208701613538565b9190910192915050565b601f821115610e1c576000816000526020600020601f850160051c81016020861015613d735750805b601f850160051c820191505b81811015613d9257828155600101613d7f565b505050505050565b815167ffffffffffffffff811115613db457613db4613998565b613dc881613dc284546138bb565b84613d4a565b602080601f831160018114613e1b5760008415613de55750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555613d92565b600085815260208120601f198616915b82811015613e4a57888601518255948401946001909101908401613e2b565b5085821015613e8657878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b0383168152604060208201526000613eb8604083018461355c565b949350505050565b600060208284031215613ed257600080fd5b8151611b118161339a565b60006001600160a01b03808616835280851660208401525060606040830152613f09606083018461355c565b9594505050505056fe73657457686974656c69737465644578656375746f7228616464726573732c626f6f6c297365745269736b506172616d65746572436f6e66696728737472696e672c616464726573732c75696e7432353629a26469706673582212204322ae777aba80dfdeaae44eff85fe29944224176b66bc6bacaffa0ef429dfb364736f6c63430008190033","opcodes":"PUSH1 0xC0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x4189 CODESIZE SUB DUP1 PUSH2 0x4189 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x16D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x80 MSTORE PUSH2 0x44 PUSH2 0x83 JUMP JUMPDEST PUSH2 0x4D DUP3 PUSH2 0x143 JUMP JUMPDEST DUP1 PUSH4 0xFFFFFFFF AND PUSH1 0x0 SUB PUSH2 0x74 JUMPI PUSH1 0x40 MLOAD PUSH4 0x49961C73 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH4 0xFFFFFFFF AND PUSH1 0xA0 MSTORE POP PUSH2 0x1BC JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xEF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND LT ISZERO PUSH2 0x141 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x16A JUMPI PUSH1 0x40 MLOAD PUSH4 0x42BCDF7F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x180 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x197 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SWAP3 POP PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x1B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH2 0x3F9A PUSH2 0x1EF PUSH1 0x0 CODECOPY PUSH1 0x0 PUSH2 0x3D1 ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x41A ADD MSTORE DUP2 DUP2 PUSH2 0x832 ADD MSTORE PUSH2 0x1D3D ADD MSTORE PUSH2 0x3F9A PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x234 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x138 JUMPI DUP1 PUSH4 0xCA136B99 GT PUSH2 0xB0 JUMPI DUP1 PUSH4 0xF2FDE38B GT PUSH2 0x7F JUMPI DUP1 PUSH4 0xF63106E4 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xF63106E4 EQ PUSH2 0x79F JUMPI DUP1 PUSH4 0xFE2B3502 EQ PUSH2 0x7CC JUMPI DUP1 PUSH4 0xFF7BD03D EQ PUSH2 0x7FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x752 JUMPI DUP1 PUSH4 0xF5D3B7B3 EQ PUSH2 0x772 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCA136B99 EQ PUSH2 0x6DE JUMPI DUP1 PUSH4 0xCA5EB5E1 EQ PUSH2 0x6FE JUMPI DUP1 PUSH4 0xE2509C76 EQ PUSH2 0x71E JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x734 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB4A0BDF3 GT PUSH2 0x107 JUMPI DUP1 PUSH4 0xBB0B6A53 GT PUSH2 0xEC JUMPI DUP1 PUSH4 0xBB0B6A53 EQ PUSH2 0x64C JUMPI DUP1 PUSH4 0xBE3881B4 EQ PUSH2 0x69E JUMPI DUP1 PUSH4 0xC3E10DEB EQ PUSH2 0x6BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB4A0BDF3 EQ PUSH2 0x5FE JUMPI DUP1 PUSH4 0xB4C2F727 EQ PUSH2 0x61C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x519 JUMPI DUP1 PUSH4 0xA49E9EA1 EQ PUSH2 0x537 JUMPI DUP1 PUSH4 0xAF9E0FD3 EQ PUSH2 0x56F JUMPI DUP1 PUSH4 0xB080D71D EQ PUSH2 0x5DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x438653FE GT PUSH2 0x1CB JUMPI DUP1 PUSH4 0x715018A6 GT PUSH2 0x19A JUMPI DUP1 PUSH4 0x79EDD100 GT PUSH2 0x17F JUMPI DUP1 PUSH4 0x79EDD100 EQ PUSH2 0x47E JUMPI DUP1 PUSH4 0x7D25A05E EQ PUSH2 0x49E JUMPI DUP1 PUSH4 0x82413EAC EQ PUSH2 0x4DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x715018A6 EQ PUSH2 0x454 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x469 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x438653FE EQ PUSH2 0x37F JUMPI DUP1 PUSH4 0x485CC955 EQ PUSH2 0x39F JUMPI DUP1 PUSH4 0x4C213449 EQ PUSH2 0x3BF JUMPI DUP1 PUSH4 0x5E280F11 EQ PUSH2 0x408 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x17442B70 GT PUSH2 0x207 JUMPI DUP1 PUSH4 0x17442B70 EQ PUSH2 0x2D0 JUMPI DUP1 PUSH4 0x28207141 EQ PUSH2 0x2F2 JUMPI DUP1 PUSH4 0x3400288B EQ PUSH2 0x33F JUMPI DUP1 PUSH4 0x3AED7F31 EQ PUSH2 0x35F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x50D8986 EQ PUSH2 0x239 JUMPI DUP1 PUSH4 0xE32CB86 EQ PUSH2 0x263 JUMPI DUP1 PUSH4 0x13137D65 EQ PUSH2 0x285 JUMPI DUP1 PUSH4 0x170338C8 EQ PUSH2 0x298 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x245 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x250 PUSH3 0x2A300 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x283 PUSH2 0x27E CALLDATASIZE PUSH1 0x4 PUSH2 0x31CC JUMP JUMPDEST PUSH2 0x81C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x283 PUSH2 0x293 CALLDATASIZE PUSH1 0x4 PUSH2 0x324A JUMP JUMPDEST PUSH2 0x830 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x250 PUSH2 0x2B3 CALLDATASIZE PUSH1 0x4 PUSH2 0x32EA JUMP JUMPDEST PUSH1 0xCD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 DUP3 ADD MSTORE ADD PUSH2 0x25A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x312 PUSH2 0x30D CALLDATASIZE PUSH1 0x4 PUSH2 0x331A JUMP JUMPDEST PUSH2 0x922 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP3 MLOAD ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE SWAP2 DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x25A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x34B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x283 PUSH2 0x35A CALLDATASIZE PUSH1 0x4 PUSH2 0x3370 JUMP JUMPDEST PUSH2 0x9A1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x36B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x283 PUSH2 0x37A CALLDATASIZE PUSH1 0x4 PUSH2 0x33A8 JUMP JUMPDEST PUSH2 0xA20 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x283 PUSH2 0x39A CALLDATASIZE PUSH1 0x4 PUSH2 0x33D6 JUMP JUMPDEST PUSH2 0xB09 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x283 PUSH2 0x3BA CALLDATASIZE PUSH1 0x4 PUSH2 0x342D JUMP JUMPDEST PUSH2 0xC6A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F3 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x25A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x414 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x43C PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x25A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x460 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x283 PUSH2 0xE21 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x475 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x283 PUSH2 0xE53 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x283 PUSH2 0x499 CALLDATASIZE PUSH1 0x4 PUSH2 0x345B JUMP JUMPDEST PUSH2 0xEF8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4C1 PUSH2 0x4B9 CALLDATASIZE PUSH1 0x4 PUSH2 0x3370 JUMP JUMPDEST PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x25A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x509 PUSH2 0x4F5 CALLDATASIZE PUSH1 0x4 PUSH2 0x3474 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ADDRESS EQ SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x25A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x525 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x43C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x543 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x250 PUSH2 0x552 CALLDATASIZE PUSH1 0x4 PUSH2 0x32EA JUMP JUMPDEST PUSH1 0xCC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x57B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5B8 PUSH2 0x58A CALLDATASIZE PUSH1 0x4 PUSH2 0x345B JUMP JUMPDEST PUSH1 0xCA PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 SWAP1 SWAP3 ADD SLOAD PUSH1 0xFF SWAP1 SWAP2 AND SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 ISZERO ISZERO DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x25A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x283 PUSH2 0x5F9 CALLDATASIZE PUSH1 0x4 PUSH2 0x34DB JUMP JUMPDEST PUSH2 0x1589 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x60A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x97 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x43C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x628 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x63C PUSH2 0x637 CALLDATASIZE PUSH1 0x4 PUSH2 0x345B JUMP JUMPDEST PUSH2 0x1725 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x25A SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x36FB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x658 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x250 PUSH2 0x667 CALLDATASIZE PUSH1 0x4 PUSH2 0x373B JUMP JUMPDEST PUSH4 0xFFFFFFFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH32 0x72AB1BC1039B79DC4724FFCA13DE82C96834302D3C7E0D4252232D4B2DD8F900 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x250 PUSH2 0x6B9 CALLDATASIZE PUSH1 0x4 PUSH2 0x3756 JUMP JUMPDEST PUSH2 0x1AD0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x283 PUSH2 0x6D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x345B JUMP JUMPDEST PUSH2 0x1B18 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x283 PUSH2 0x6F9 CALLDATASIZE PUSH1 0x4 PUSH2 0x345B JUMP JUMPDEST PUSH2 0x1BFF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x70A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x283 PUSH2 0x719 CALLDATASIZE PUSH1 0x4 PUSH2 0x31CC JUMP JUMPDEST PUSH2 0x1CFD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x250 PUSH1 0xC9 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x740 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x65 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x43C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x75E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x283 PUSH2 0x76D CALLDATASIZE PUSH1 0x4 PUSH2 0x31CC JUMP JUMPDEST PUSH2 0x1D9C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x77E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x792 PUSH2 0x78D CALLDATASIZE PUSH1 0x4 PUSH2 0x3756 JUMP JUMPDEST PUSH2 0x1DAD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x25A SWAP2 SWAP1 PUSH2 0x37A2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7BF PUSH2 0x7BA CALLDATASIZE PUSH1 0x4 PUSH2 0x3756 JUMP JUMPDEST PUSH2 0x224D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x25A SWAP2 SWAP1 PUSH2 0x37FA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x509 PUSH2 0x7E7 CALLDATASIZE PUSH1 0x4 PUSH2 0x31CC JUMP JUMPDEST PUSH1 0xCE PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x808 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x509 PUSH2 0x817 CALLDATASIZE PUSH1 0x4 PUSH2 0x383E JUMP JUMPDEST PUSH2 0x2508 JUMP JUMPDEST PUSH2 0x824 PUSH2 0x2526 JUMP JUMPDEST PUSH2 0x82D DUP2 PUSH2 0x259C JUMP JUMPDEST POP JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x899 JUMPI PUSH1 0x40 MLOAD PUSH32 0x91AC5E4F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x20 DUP8 ADD DUP1 CALLDATALOAD SWAP1 PUSH2 0x8B3 SWAP1 PUSH2 0x8AE SWAP1 DUP11 PUSH2 0x373B JUMP JUMPDEST PUSH2 0x26A4 JUMP JUMPDEST EQ PUSH2 0x90A JUMPI PUSH2 0x8C5 PUSH1 0x20 DUP9 ADD DUP9 PUSH2 0x373B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xC26BEBCC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x20 DUP9 ADD CALLDATALOAD PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x890 JUMP JUMPDEST PUSH2 0x919 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x271A JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x951 SWAP3 SWAP2 SWAP1 PUSH2 0x385A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCA PUSH1 0x20 SWAP1 DUP2 MSTORE SWAP1 DUP3 SWAP1 KECCAK256 PUSH1 0x60 DUP5 ADD DUP4 MSTORE DUP1 SLOAD PUSH1 0xFF AND ISZERO ISZERO DUP5 MSTORE PUSH1 0x1 DUP2 ADD SLOAD SWAP2 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP3 ADD MSTORE SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x9A9 PUSH2 0x2526 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH32 0x72AB1BC1039B79DC4724FFCA13DE82C96834302D3C7E0D4252232D4B2DD8F900 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP3 DUP4 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP3 MLOAD SWAP4 DUP5 MSTORE DUP4 ADD DUP5 SWAP1 MSTORE SWAP2 PUSH32 0x238399D427B947898EDB290F5FF0F9109849B1C3BA196A42E35F00C50A54B98B SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0xA41 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3F13 PUSH1 0x24 SWAP2 CODECOPY PUSH2 0x2A6E JUMP JUMPDEST PUSH2 0xA4A DUP3 PUSH2 0x2B3E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 ISZERO ISZERO DUP2 ISZERO ISZERO SUB PUSH2 0xAA3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8EEE990D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xCE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP7 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP3 MLOAD DUP6 ISZERO ISZERO DUP2 MSTORE SWAP2 DUP3 ADD MSTORE PUSH32 0x10C0E7519C24C8E42DBD4D2405E9976E893C51DF86614145B2758289F197EC3B SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH2 0xB47 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1C DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574436F6E66696741637469766528737472696E672C626F6F6C2900000000 DUP2 MSTORE POP PUSH2 0x2A6E JUMP JUMPDEST PUSH1 0x0 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xB59 SWAP3 SWAP2 SWAP1 PUSH2 0x385A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xCA PUSH1 0x20 MSTORE SWAP2 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 ADD SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xBB8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x80919D7B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xCA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP3 ISZERO ISZERO DUP2 ISZERO ISZERO SUB PUSH2 0xC07 JUMPI PUSH1 0x40 MLOAD PUSH32 0x1E852DC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xCA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP6 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD DUP4 SWAP1 PUSH32 0xCBA816B2FC5CD49700523A79B6E6C7DDA19292FBB932CCA77F7BCCB1E5004792 SWAP1 PUSH2 0xC5B SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP8 SWAP1 PUSH2 0x3895 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0xC8A JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0xCA4 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCA4 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0xD30 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x647920696E697469616C697A6564000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x890 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0xD70 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0xD79 DUP4 PUSH2 0x2B7E JUMP JUMPDEST PUSH2 0xD82 DUP3 PUSH2 0x2C26 JUMP JUMPDEST PUSH2 0x5460 PUSH1 0xC9 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0xA1C2964049F672E1CBA842D393F777ED468B9846EB7DE186D7E73665A326B301 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP1 ISZERO PUSH2 0xE1C JUMPI PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH2 0xA13 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x96C553EB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x65 SLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0xEEF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C6532537465703A2063616C6C6572206973206E6F742074686520 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E6577206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x890 JUMP JUMPDEST PUSH2 0x82D DUP2 PUSH2 0x2CC6 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xF41 JUMPI PUSH1 0x40 MLOAD PUSH32 0x341F61EC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP2 MLOAD PUSH2 0x180 DUP2 ADD SWAP1 SWAP3 MSTORE DUP1 SLOAD SWAP1 SWAP3 SWAP2 SWAP1 DUP4 SWAP1 DUP3 SWAP1 DUP3 SWAP1 PUSH2 0xF6F SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xF9B SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 ISZERO PUSH2 0xFE8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xFBD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xFE8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xFCB JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH1 0x60 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x1022 SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x104E SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 ISZERO PUSH2 0x109B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1070 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x109B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x107E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD DUP1 SLOAD PUSH2 0x10BE SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x10EA SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1137 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x110C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1137 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x111A JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD DUP1 SLOAD PUSH2 0x1150 SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x117C SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 ISZERO PUSH2 0x11C9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x119E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x11C9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x11AC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x7 DUP3 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x8 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x40 DUP4 ADD MSTORE PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x9 DUP3 ADD SLOAD PUSH4 0xFFFFFFFF AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA DUP3 ADD DUP1 SLOAD PUSH1 0xA0 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x123F SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x126B SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 ISZERO PUSH2 0x12B8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x128D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x12B8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x129B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 SWAP1 SWAP3 MSTORE POP POP POP PUSH1 0x80 DUP2 ADD MLOAD PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xCA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD SWAP3 SWAP4 POP SWAP1 SWAP2 TIMESTAMP SWAP1 PUSH1 0xFF AND PUSH2 0x1317 JUMPI PUSH1 0x40 MLOAD PUSH32 0xDEA2A21200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xB DUP7 ADD SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1332 JUMPI PUSH2 0x1332 PUSH2 0x3691 JUMP JUMPDEST EQ PUSH2 0x1369 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6196E5A300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xC9 SLOAD DUP6 PUSH1 0xC ADD SLOAD PUSH2 0x137B SWAP2 SWAP1 PUSH2 0x3937 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x13B4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x5F5F49800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH3 0x2A300 DUP6 PUSH1 0xE0 ADD MLOAD PUSH2 0x13C8 SWAP2 SWAP1 PUSH2 0x3937 JUMP JUMPDEST LT ISZERO PUSH2 0x1400 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC2A16F1400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xCD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP3 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x1443 JUMPI POP DUP2 DUP4 PUSH1 0x1 ADD SLOAD DUP3 PUSH2 0x1441 SWAP2 SWAP1 PUSH2 0x3937 JUMP JUMPDEST GT JUMPDEST ISZERO PUSH2 0x147A JUMPI PUSH1 0x40 MLOAD PUSH32 0x53F7A6EE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xCD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP9 DUP3 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP6 MSTORE SWAP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP5 SWAP1 SSTORE PUSH1 0xB DUP9 ADD DUP1 SLOAD PUSH1 0x2 PUSH1 0xFF NOT SWAP1 SWAP2 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0xD DUP10 ADD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND CALLER OR SWAP1 SSTORE DUP6 ADD SLOAD SWAP2 MLOAD PUSH32 0xBF63783900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP2 AND SWAP1 PUSH4 0xBF637839 SWAP1 PUSH2 0x1523 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x394A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x153D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1551 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD DUP10 SWAP3 POP PUSH32 0x27F52B13359F1687E1C3C6179B59FD5F217E9F580E76053C074A51D65DE2DAC7 SWAP2 POP PUSH1 0x0 SWAP1 LOG2 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x15AA PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2E DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3F37 PUSH1 0x2E SWAP2 CODECOPY PUSH2 0x2A6E JUMP JUMPDEST PUSH2 0x15B3 DUP3 PUSH2 0x2B3E JUMP JUMPDEST DUP3 ISZERO DUP1 PUSH2 0x15C0 JUMPI POP PUSH1 0x40 DUP4 GT JUMPDEST ISZERO PUSH2 0x15F6 JUMPI PUSH1 0x40 MLOAD PUSH31 0x64280000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x0 SUB PUSH2 0x1630 JUMPI PUSH1 0x40 MLOAD PUSH32 0xF6EA4E0600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x1642 SWAP3 SWAP2 SWAP1 PUSH2 0x385A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xCA PUSH1 0x20 DUP2 DUP2 MSTORE DUP5 DUP4 KECCAK256 PUSH1 0x60 DUP8 ADD DUP7 MSTORE PUSH1 0x1 DUP1 DUP9 MSTORE DUP3 DUP9 ADD DUP11 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP13 DUP2 AND DUP11 DUP11 ADD DUP2 DUP2 MSTORE SWAP8 DUP10 SWAP1 MSTORE SWAP6 SWAP1 SWAP5 MSTORE SWAP8 MLOAD DUP3 SLOAD PUSH1 0xFF NOT AND SWAP1 ISZERO ISZERO SWAP1 DUP2 OR DUP4 SSTORE SWAP8 MLOAD DUP2 DUP4 ADD DUP2 SWAP1 SSTORE SWAP5 MLOAD PUSH1 0x2 DUP4 ADD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND SWAP2 SWAP1 SWAP5 AND SWAP1 DUP2 OR SWAP1 SWAP4 SSTORE SWAP6 MLOAD SWAP5 SWAP8 POP SWAP6 SWAP2 SWAP5 SWAP1 SWAP4 DUP8 SWAP4 PUSH32 0x2CBEA64D1A2ECE216F5461B535881B82196130C6A988A9D3B323BD6D5CFE608E SWAP4 PUSH2 0x1715 SWAP4 DUP15 SWAP4 DUP15 SWAP4 SWAP3 DUP14 SWAP3 PUSH1 0xFF SWAP1 SWAP2 AND SWAP2 PUSH2 0x395D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xCB PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD PUSH1 0x40 MLOAD DUP1 PUSH2 0x180 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD DUP1 SLOAD PUSH2 0x1759 SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1785 SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 ISZERO PUSH2 0x17D2 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x17A7 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x17D2 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x17B5 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH1 0x60 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x180C SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1838 SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1885 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x185A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1885 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1868 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD DUP1 SLOAD PUSH2 0x18A8 SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x18D4 SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1921 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x18F6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1921 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1904 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD DUP1 SLOAD PUSH2 0x193A SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1966 SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 ISZERO PUSH2 0x19B3 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1988 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x19B3 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1996 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x7 DUP3 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x8 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x40 DUP4 ADD MSTORE PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x9 DUP3 ADD SLOAD PUSH4 0xFFFFFFFF AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA DUP3 ADD DUP1 SLOAD PUSH1 0xA0 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x1A29 SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1A55 SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1AA2 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1A77 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1AA2 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1A85 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 SWAP1 SWAP3 MSTORE POP POP POP PUSH1 0xB DUP3 ADD SLOAD PUSH1 0xC DUP4 ADD SLOAD PUSH1 0xD SWAP1 SWAP4 ADD SLOAD SWAP2 SWAP3 PUSH1 0xFF SWAP1 SWAP2 AND SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x1AE3 SWAP3 SWAP2 SWAP1 PUSH2 0x385A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCD PUSH1 0x20 SWAP1 DUP2 MSTORE DUP3 DUP3 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP4 MSTORE SWAP1 MSTORE KECCAK256 SLOAD SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1B61 JUMPI PUSH1 0x40 MLOAD PUSH32 0x341F61EC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 PUSH1 0xB DUP3 ADD SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1B8A JUMPI PUSH2 0x1B8A PUSH2 0x3691 JUMP JUMPDEST EQ PUSH2 0x1BC1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6196E5A300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xB DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x3 OR SWAP1 SSTORE PUSH1 0x40 MLOAD DUP3 SWAP1 PUSH32 0xA4273908B9362E571CACD5610879E3DFD7DDC7C9B3CE1D7EA7EA8B418691164 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH2 0x1C3D PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x17 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x73657452656D6F746544656C61792875696E7432353629000000000000000000 DUP2 MSTORE POP PUSH2 0x2A6E JUMP JUMPDEST DUP1 ISZERO DUP1 PUSH2 0x1C4D JUMPI POP PUSH3 0x2A300 DUP2 LT ISZERO JUMPDEST ISZERO PUSH2 0x1C84 JUMPI PUSH1 0x40 MLOAD PUSH32 0x545F991300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xC9 SLOAD DUP2 DUP2 SUB PUSH2 0x1CC0 JUMPI PUSH1 0x40 MLOAD PUSH32 0xBB45C33D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xC9 DUP3 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH32 0xA1C2964049F672E1CBA842D393F777ED468B9846EB7DE186D7E73665A326B301 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH2 0x1D05 PUSH2 0x2526 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xCA5EB5E100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH32 0x0 AND SWAP1 PUSH4 0xCA5EB5E1 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D81 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D95 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1DA4 PUSH2 0x2526 JUMP JUMPDEST PUSH2 0x82D DUP2 PUSH2 0x2CCF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x200 DUP2 ADD DUP3 MSTORE PUSH1 0x60 PUSH1 0x80 DUP3 ADD DUP2 DUP2 MSTORE PUSH1 0x0 PUSH1 0xA0 DUP5 ADD DUP2 SWAP1 MSTORE PUSH1 0xC0 DUP5 ADD DUP2 SWAP1 MSTORE PUSH1 0xE0 DUP5 ADD DUP4 SWAP1 MSTORE PUSH2 0x100 DUP5 ADD DUP2 SWAP1 MSTORE PUSH2 0x120 DUP5 ADD DUP4 SWAP1 MSTORE PUSH2 0x140 DUP5 ADD DUP4 SWAP1 MSTORE PUSH2 0x160 DUP5 ADD DUP2 SWAP1 MSTORE PUSH2 0x180 DUP5 ADD DUP2 SWAP1 MSTORE PUSH2 0x1A0 DUP5 ADD DUP2 SWAP1 MSTORE PUSH2 0x1C0 DUP5 ADD DUP2 SWAP1 MSTORE PUSH2 0x1E0 DUP5 ADD DUP4 SWAP1 MSTORE SWAP1 DUP4 MSTORE PUSH1 0x20 DUP4 ADD DUP2 SWAP1 MSTORE SWAP3 DUP3 ADD DUP4 SWAP1 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x1E40 SWAP3 SWAP2 SWAP1 PUSH2 0x385A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xCC PUSH1 0x20 SWAP1 DUP2 MSTORE DUP4 DUP3 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND DUP4 MSTORE DUP2 MSTORE DUP4 DUP3 KECCAK256 SLOAD DUP1 DUP4 MSTORE PUSH1 0xCB SWAP1 SWAP2 MSTORE SWAP1 DUP4 SWAP1 KECCAK256 PUSH2 0x200 DUP6 ADD SWAP1 SWAP4 MSTORE DUP3 SLOAD SWAP2 SWAP5 POP SWAP3 SWAP2 SWAP1 DUP3 SWAP1 PUSH1 0x80 DUP3 ADD SWAP1 DUP4 SWAP1 DUP3 SWAP1 DUP3 SWAP1 PUSH2 0x1E9D SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1EC9 SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1F16 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1EEB JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1F16 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1EF9 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH1 0x60 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x1F50 SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1F7C SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1FC9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1F9E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1FC9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1FAC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD DUP1 SLOAD PUSH2 0x1FEC SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2018 SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2065 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x203A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2065 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2048 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD DUP1 SLOAD PUSH2 0x207E SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x20AA SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 ISZERO PUSH2 0x20F7 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x20CC JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x20F7 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x20DA JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x7 DUP3 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x8 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x40 DUP4 ADD MSTORE PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x9 DUP3 ADD SLOAD PUSH4 0xFFFFFFFF AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA DUP3 ADD DUP1 SLOAD PUSH1 0xA0 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x216D SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2199 SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 ISZERO PUSH2 0x21E6 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x21BB JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x21E6 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x21C9 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 SWAP1 SWAP3 MSTORE POP POP POP DUP2 MSTORE PUSH1 0xB DUP3 ADD SLOAD PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2211 JUMPI PUSH2 0x2211 PUSH2 0x3691 JUMP JUMPDEST PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2222 JUMPI PUSH2 0x2222 PUSH2 0x3691 JUMP JUMPDEST DUP2 MSTORE PUSH1 0xC DUP3 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xD SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 SWAP1 SWAP2 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x2261 SWAP3 SWAP2 SWAP1 PUSH2 0x385A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xB0772D0B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x22AB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x22D3 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3A22 JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP2 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x22F3 JUMPI PUSH2 0x22F3 PUSH2 0x3998 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x231C JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0xCA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP3 SWAP4 POP SWAP1 SWAP2 PUSH1 0xFF AND PUSH2 0x2356 JUMPI POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE SWAP5 POP PUSH2 0x1B11 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x246A JUMPI PUSH1 0x0 DUP7 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x2375 JUMPI PUSH2 0x2375 PUSH2 0x3AD4 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x0 DUP11 DUP2 MSTORE PUSH1 0xCC DUP4 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP4 MSTORE DUP5 MSTORE DUP1 DUP3 KECCAK256 SLOAD DUP1 DUP4 MSTORE PUSH1 0xCB SWAP1 SWAP5 MSTORE SWAP1 KECCAK256 SWAP1 SWAP3 POP PUSH2 0x23B7 DUP3 PUSH2 0x2D58 JUMP JUMPDEST PUSH2 0x23C3 JUMPI POP POP POP PUSH2 0x2462 JUMP JUMPDEST PUSH1 0xC9 SLOAD DUP2 PUSH1 0xC ADD SLOAD PUSH2 0x23D5 SWAP2 SWAP1 PUSH2 0x3937 JUMP JUMPDEST TIMESTAMP LT ISZERO PUSH2 0x23E4 JUMPI POP POP POP PUSH2 0x2462 JUMP JUMPDEST PUSH1 0x0 DUP11 DUP2 MSTORE PUSH1 0xCD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x2424 JUMPI POP TIMESTAMP DUP7 PUSH1 0x1 ADD SLOAD DUP3 PUSH2 0x2422 SWAP2 SWAP1 PUSH2 0x3937 JUMP JUMPDEST GT JUMPDEST ISZERO PUSH2 0x2432 JUMPI POP POP POP POP PUSH2 0x2462 JUMP JUMPDEST DUP3 DUP9 DUP9 DUP2 MLOAD DUP2 LT PUSH2 0x2445 JUMPI PUSH2 0x2445 PUSH2 0x3AD4 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE DUP7 PUSH2 0x245A DUP2 PUSH2 0x3B03 JUMP JUMPDEST SWAP8 POP POP POP POP POP POP JUMPDEST PUSH1 0x1 ADD PUSH2 0x2359 JUMP JUMPDEST POP DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2484 JUMPI PUSH2 0x2484 PUSH2 0x3998 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x24AD JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP7 POP PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x24FA JUMPI DUP4 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x24CD JUMPI PUSH2 0x24CD PUSH2 0x3AD4 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP9 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x24E7 JUMPI PUSH2 0x24E7 PUSH2 0x3AD4 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x1 ADD PUSH2 0x24B3 JUMP JUMPDEST POP POP POP POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD DUP1 CALLDATALOAD SWAP1 PUSH2 0x251F SWAP1 PUSH2 0x667 SWAP1 DUP6 PUSH2 0x373B JUMP JUMPDEST EQ SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x259A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x890 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2632 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C696420616365737320636F6E74726F6C206D616E61676572206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x890 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 SWAP1 SWAP3 AND DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH32 0x66FD58E82F7B31A2A5C30E0888F3093EFE4E111B00CD2B0C31FE014601293AA0 SWAP2 ADD PUSH2 0x1CF1 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH32 0x72AB1BC1039B79DC4724FFCA13DE82C96834302D3C7E0D4252232D4B2DD8F900 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 KECCAK256 SLOAD DUP1 PUSH2 0x1B11 JUMPI PUSH1 0x40 MLOAD PUSH32 0xF6FF4FB700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH4 0xFFFFFFFF DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x890 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2728 DUP6 DUP8 ADD DUP8 PUSH2 0x3BC7 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD MLOAD SWAP1 SWAP2 POP TIMESTAMP PUSH1 0x0 DUP1 DUP4 DUP2 MSTORE PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0xB ADD SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2758 JUMPI PUSH2 0x2758 PUSH2 0x3691 JUMP JUMPDEST EQ PUSH2 0x27C7 JUMPI DUP3 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x60 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x277D SWAP2 SWAP1 PUSH2 0x3D2E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP4 PUSH32 0x6F2B8853CD821AEE89A0DC78A586658BCBD9C930D3D25BE1DE720FA0346BD73B DUP5 PUSH1 0x40 MLOAD PUSH2 0x27B7 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP PUSH2 0x919 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 DUP8 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x27FB DUP2 PUSH2 0x2D58 JUMP JUMPDEST ISZERO PUSH2 0x286B JUMPI DUP4 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x60 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x2820 SWAP2 SWAP1 PUSH2 0x3D2E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP3 PUSH32 0xA5CF028A8D57C7FAE7982AC3692BB4BDF11DDCCA7C93493242A00F4957A5EBB7 DUP6 PUSH1 0x40 MLOAD PUSH2 0x285A SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP PUSH2 0x919 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP5 MLOAD DUP6 SWAP1 DUP3 SWAP1 DUP2 SWAP1 PUSH2 0x288B SWAP1 DUP3 PUSH2 0x3D9A JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x1 DUP3 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x2 DUP3 ADD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x60 DUP3 ADD MLOAD PUSH1 0x3 DUP3 ADD SWAP1 PUSH2 0x28E8 SWAP1 DUP3 PUSH2 0x3D9A JUMP JUMPDEST POP PUSH1 0x80 DUP3 ADD MLOAD PUSH1 0x4 DUP3 ADD SSTORE PUSH1 0xA0 DUP3 ADD MLOAD PUSH1 0x5 DUP3 ADD SWAP1 PUSH2 0x2907 SWAP1 DUP3 PUSH2 0x3D9A JUMP JUMPDEST POP PUSH1 0xC0 DUP3 ADD MLOAD PUSH1 0x6 DUP3 ADD SWAP1 PUSH2 0x291C SWAP1 DUP3 PUSH2 0x3D9A JUMP JUMPDEST POP PUSH1 0xE0 DUP3 ADD MLOAD PUSH1 0x7 DUP3 ADD SSTORE PUSH2 0x100 DUP3 ADD MLOAD PUSH2 0x120 DUP4 ADD MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND OR PUSH1 0x8 DUP3 ADD SSTORE PUSH2 0x140 DUP3 ADD MLOAD PUSH1 0x9 DUP3 ADD DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x160 DUP3 ADD MLOAD PUSH1 0xA DUP3 ADD SWAP1 PUSH2 0x29BC SWAP1 DUP3 PUSH2 0x3D9A JUMP JUMPDEST POP POP POP PUSH1 0xB DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH1 0xC DUP2 ADD DUP4 SWAP1 SSTORE PUSH1 0x80 DUP6 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 DUP10 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP7 MSTORE SWAP2 SWAP1 SWAP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP8 SWAP1 SSTORE SWAP1 MLOAD PUSH1 0x60 DUP9 ADD MLOAD SWAP2 MLOAD SWAP3 AND SWAP2 PUSH2 0x2A1E SWAP2 SWAP1 PUSH2 0x3D2E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP6 PUSH32 0xD5A7F72731C4BC3D3A2DA54B4C53B429270F8D7F8C5B053D9EE98E072F875840 DUP7 PUSH1 0x40 MLOAD PUSH2 0x2A58 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0x40 MLOAD PUSH32 0x18C5E8AB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x2ABA SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x3E96 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2AD7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2AFB SWAP2 SWAP1 PUSH2 0x3EC0 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x2B3A JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH32 0x4A3FA29300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x890 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3EDD JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x82D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8579BEFE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2C15 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x890 JUMP JUMPDEST PUSH2 0x2C1D PUSH2 0x2DBF JUMP JUMPDEST PUSH2 0x82D DUP2 PUSH2 0x2E5E JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2CBD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x890 JUMP JUMPDEST PUSH2 0x82D DUP2 PUSH2 0x2EF5 JUMP JUMPDEST PUSH2 0x82D DUP2 PUSH2 0x2F95 JUMP JUMPDEST PUSH2 0x2CD7 PUSH2 0x2526 JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP1 SWAP2 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0x2D20 PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 SUB PUSH2 0x2D6A JUMPI POP PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 PUSH1 0xB DUP3 ADD SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2D93 JUMPI PUSH2 0x2D93 PUSH2 0x3691 JUMP JUMPDEST EQ PUSH2 0x2DA1 JUMPI POP PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x7 DUP2 ADD SLOAD TIMESTAMP SWAP1 PUSH2 0x2DB6 SWAP1 PUSH3 0x2A300 SWAP1 PUSH2 0x3937 JUMP JUMPDEST LT ISZERO SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2E56 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x890 JUMP JUMPDEST PUSH2 0x259A PUSH2 0x2FC6 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x824 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x890 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2F8C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x890 JUMP JUMPDEST PUSH2 0x82D DUP2 PUSH2 0x3066 JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND SWAP1 SSTORE PUSH2 0x82D DUP2 PUSH2 0x313D JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x305D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x890 JUMP JUMPDEST PUSH2 0x259A CALLER PUSH2 0x2CC6 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x30FD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x890 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1D05 JUMPI PUSH1 0x40 MLOAD PUSH32 0xB586360400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x82D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x31C7 DUP2 PUSH2 0x31A7 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x31DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1B11 DUP2 PUSH2 0x31A7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x31FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x3213 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x322B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x3243 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x3265 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x326F DUP10 DUP10 PUSH2 0x31E9 JUMP JUMPDEST SWAP7 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3293 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x329F DUP12 DUP4 DUP13 ADD PUSH2 0x3201 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP PUSH1 0xA0 DUP11 ADD CALLDATALOAD SWAP2 POP PUSH2 0x32B4 DUP3 PUSH2 0x31A7 JUMP JUMPDEST SWAP1 SWAP4 POP PUSH1 0xC0 DUP10 ADD CALLDATALOAD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0x32CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32D7 DUP11 DUP3 DUP12 ADD PUSH2 0x3201 JUMP JUMPDEST SWAP9 SWAP12 SWAP8 SWAP11 POP SWAP6 SWAP9 POP SWAP4 SWAP7 SWAP3 SWAP6 SWAP3 SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x32FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x330F DUP2 PUSH2 0x31A7 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x332D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3344 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3350 DUP6 DUP3 DUP7 ADD PUSH2 0x3201 JUMP JUMPDEST SWAP1 SWAP7 SWAP1 SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x31C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3383 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x338C DUP4 PUSH2 0x335C JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x82D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x33BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x33C6 DUP2 PUSH2 0x31A7 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x330F DUP2 PUSH2 0x339A JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x33EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3402 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x340E DUP7 DUP3 DUP8 ADD PUSH2 0x3201 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x3422 DUP2 PUSH2 0x339A JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3440 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x344B DUP2 PUSH2 0x31A7 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x330F DUP2 PUSH2 0x31A7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x346D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xA0 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x348A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3494 DUP7 DUP7 PUSH2 0x31E9 JUMP JUMPDEST SWAP4 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x34B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x34BC DUP8 DUP3 DUP9 ADD PUSH2 0x3201 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP POP PUSH1 0x80 DUP6 ADD CALLDATALOAD PUSH2 0x34D0 DUP2 PUSH2 0x31A7 JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP1 SWAP4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x34F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3508 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3514 DUP8 DUP3 DUP9 ADD PUSH2 0x3201 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x3528 DUP2 PUSH2 0x31A7 JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x40 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3553 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x353B JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x3574 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x3538 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 MLOAD DUP2 DUP6 MSTORE PUSH2 0x359E DUP3 DUP7 ADD DUP3 PUSH2 0x355C JUMP JUMPDEST SWAP2 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP6 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x35C5 PUSH1 0x40 DUP7 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0x35DD DUP3 DUP3 PUSH2 0x355C JUMP JUMPDEST SWAP2 POP POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP6 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0xA0 DUP7 ADD MSTORE PUSH2 0x3601 DUP3 DUP3 PUSH2 0x355C JUMP JUMPDEST SWAP2 POP POP PUSH1 0xC0 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0xC0 DUP7 ADD MSTORE PUSH2 0x361B DUP3 DUP3 PUSH2 0x355C JUMP JUMPDEST SWAP2 POP POP PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP6 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD PUSH2 0x3643 DUP3 DUP8 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP POP PUSH2 0x120 DUP4 DUP2 ADD MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP6 ADD MSTORE PUSH2 0x140 DUP1 DUP5 ADD MLOAD PUSH4 0xFFFFFFFF AND SWAP1 DUP6 ADD MSTORE PUSH2 0x160 DUP1 DUP5 ADD MLOAD DUP6 DUP4 SUB DUP3 DUP8 ADD MSTORE PUSH2 0x3687 DUP4 DUP3 PUSH2 0x355C JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x36F7 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x80 DUP2 MSTORE PUSH1 0x0 PUSH2 0x370E PUSH1 0x80 DUP4 ADD DUP8 PUSH2 0x3588 JUMP JUMPDEST SWAP1 POP PUSH2 0x371D PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x36C0 JUMP JUMPDEST DUP4 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x60 DUP4 ADD MSTORE SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x374D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B11 DUP3 PUSH2 0x335C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x376B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3782 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x378E DUP7 DUP3 DUP8 ADD PUSH2 0x3201 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x3422 DUP2 PUSH2 0x31A7 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD PUSH1 0x80 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x37BE PUSH1 0xA0 DUP5 ADD DUP3 PUSH2 0x3588 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP5 ADD MLOAD PUSH2 0x37D2 PUSH1 0x40 DUP6 ADD DUP3 PUSH2 0x36C0 JUMP JUMPDEST POP PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH1 0x60 DUP6 ADD MLOAD AND PUSH1 0x80 DUP5 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x3832 JUMPI DUP4 MLOAD DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x3816 JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3850 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B11 DUP4 DUP4 PUSH2 0x31E9 JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 ADD ADD MSTORE PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP5 ADD AND DUP5 ADD ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0x0 PUSH2 0x38A9 PUSH1 0x40 DUP4 ADD DUP6 DUP8 PUSH2 0x386A JUMP JUMPDEST SWAP1 POP DUP3 ISZERO ISZERO PUSH1 0x20 DUP4 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x38CF JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x31FB JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x99B JUMPI PUSH2 0x99B PUSH2 0x3908 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x1B11 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x3588 JUMP JUMPDEST PUSH1 0xA0 DUP2 MSTORE PUSH1 0x0 PUSH2 0x3971 PUSH1 0xA0 DUP4 ADD DUP9 DUP11 PUSH2 0x386A JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP7 SWAP1 SWAP7 MSTORE POP PUSH1 0x40 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE SWAP1 ISZERO ISZERO PUSH1 0x60 DUP4 ADD MSTORE ISZERO ISZERO PUSH1 0x80 SWAP1 SWAP2 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x180 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x39EB JUMPI PUSH2 0x39EB PUSH2 0x3998 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3A1A JUMPI PUSH2 0x3A1A PUSH2 0x3998 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3A35 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3A4D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3A61 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP2 DUP2 GT ISZERO PUSH2 0x3A73 JUMPI PUSH2 0x3A73 PUSH2 0x3998 JUMP JUMPDEST DUP1 PUSH1 0x5 SHL SWAP2 POP PUSH2 0x3A84 DUP5 DUP4 ADD PUSH2 0x39F1 JUMP JUMPDEST DUP2 DUP2 MSTORE SWAP2 DUP4 ADD DUP5 ADD SWAP2 DUP5 DUP2 ADD SWAP1 DUP9 DUP5 GT ISZERO PUSH2 0x3A9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 DUP6 ADD SWAP4 JUMPDEST DUP4 DUP6 LT ISZERO PUSH2 0x3AC8 JUMPI DUP5 MLOAD SWAP3 POP PUSH2 0x3AB8 DUP4 PUSH2 0x31A7 JUMP JUMPDEST DUP3 DUP3 MSTORE SWAP4 DUP6 ADD SWAP4 SWAP1 DUP6 ADD SWAP1 PUSH2 0x3AA3 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x3B34 JUMPI PUSH2 0x3B34 PUSH2 0x3908 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3B4C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3B66 JUMPI PUSH2 0x3B66 PUSH2 0x3998 JUMP JUMPDEST PUSH2 0x3B79 PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP5 ADD AND ADD PUSH2 0x39F1 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x3B8E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x31C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3BD9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3BF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH2 0x180 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x3C06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3C0E PUSH2 0x39C7 JUMP JUMPDEST DUP3 CALLDATALOAD DUP3 DUP2 GT ISZERO PUSH2 0x3C1D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3C29 DUP8 DUP3 DUP7 ADD PUSH2 0x3B3B JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x3C42 PUSH1 0x40 DUP5 ADD PUSH2 0x31BC JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD CALLDATALOAD DUP3 DUP2 GT ISZERO PUSH2 0x3C59 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3C65 DUP8 DUP3 DUP7 ADD PUSH2 0x3B3B JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD CALLDATALOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD CALLDATALOAD DUP3 DUP2 GT ISZERO PUSH2 0x3C87 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3C93 DUP8 DUP3 DUP7 ADD PUSH2 0x3B3B JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 DUP4 ADD CALLDATALOAD DUP3 DUP2 GT ISZERO PUSH2 0x3CAB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3CB7 DUP8 DUP3 DUP7 ADD PUSH2 0x3B3B JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 DUP4 ADD CALLDATALOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 PUSH2 0x3CD5 DUP2 DUP6 ADD PUSH2 0x31BC JUMP JUMPDEST SWAP1 DUP3 ADD MSTORE PUSH2 0x120 PUSH2 0x3CE7 DUP5 DUP3 ADD PUSH2 0x3BAB JUMP JUMPDEST SWAP1 DUP3 ADD MSTORE PUSH2 0x140 PUSH2 0x3CF9 DUP5 DUP3 ADD PUSH2 0x335C JUMP JUMPDEST SWAP1 DUP3 ADD MSTORE PUSH2 0x160 DUP4 DUP2 ADD CALLDATALOAD DUP4 DUP2 GT ISZERO PUSH2 0x3D11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3D1D DUP9 DUP3 DUP8 ADD PUSH2 0x3B3B JUMP JUMPDEST SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x3D40 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x3538 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0xE1C JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x3D73 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x3D92 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x3D7F JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3DB4 JUMPI PUSH2 0x3DB4 PUSH2 0x3998 JUMP JUMPDEST PUSH2 0x3DC8 DUP2 PUSH2 0x3DC2 DUP5 SLOAD PUSH2 0x38BB JUMP JUMPDEST DUP5 PUSH2 0x3D4A JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x3E1B JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x3DE5 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x3D92 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x3E4A JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x3E2B JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x3E86 JUMPI DUP8 DUP6 ADD MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x3EB8 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x355C JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3ED2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1B11 DUP2 PUSH2 0x339A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND DUP4 MSTORE DUP1 DUP6 AND PUSH1 0x20 DUP5 ADD MSTORE POP PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x3F09 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x355C JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP INVALID PUSH20 0x657457686974656C69737465644578656375746F PUSH19 0x28616464726573732C626F6F6C297365745269 PUSH20 0x6B506172616D65746572436F6E66696728737472 PUSH10 0x6E672C61646472657373 0x2C PUSH22 0x696E7432353629A26469706673582212204322AE777A 0xBA DUP1 0xDF 0xDE 0xAA 0xE4 0x4E SELFDESTRUCT DUP6 INVALID 0x29 SWAP5 TIMESTAMP 0x24 OR PUSH12 0x66BC6BACAFFA0EF429DFB364 PUSH20 0x6F6C634300081900330000000000000000000000 ","sourceMap":"1397:17976:62:-:0;;;3687:267;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1307:42:10;;;;3781:22:62::1;:20;:22::i;:::-;3813:31;3834:9:::0;3813:20:::1;:31::i;:::-;3858:13;:18;;3875:1;3858:18:::0;3854:52:::1;;3885:21;;-1:-1:-1::0;;;3885:21:62::1;;;;;;;;;;;3854:52;3917:30;;;::::0;-1:-1:-1;1397:17976:62;;5928:279:27;5996:13;;;;;;;5995:14;5987:66;;;;-1:-1:-1;;;5987:66:27;;676:2:97;5987:66:27;;;658:21:97;715:2;695:18;;;688:30;754:34;734:18;;;727:62;-1:-1:-1;;;805:18:97;;;798:37;852:19;;5987:66:27;;;;;;;;6067:12;;6082:15;6067:12;;;:30;6063:138;;;6113:12;:30;;-1:-1:-1;;6113:30:27;6128:15;6113:30;;;;;;6162:28;;1024:36:97;;;6162:28:27;;1012:2:97;997:18;6162:28:27;;;;;;;6063:138;5928:279::o;485:136:47:-;-1:-1:-1;;;;;548:22:47;;544:75;;589:23;;-1:-1:-1;;;589:23:47;;;;;;;;;;;544:75;485:136;:::o;14:455:97:-;92:6;100;153:2;141:9;132:7;128:23;124:32;121:52;;;169:1;166;159:12;121:52;195:16;;-1:-1:-1;;;;;240:31:97;;230:42;;220:70;;286:1;283;276:12;220:70;359:2;344:18;;338:25;309:5;;-1:-1:-1;407:10:97;394:24;;382:37;;372:65;;433:1;430;423:12;372:65;456:7;446:17;;;14:455;;;;;:::o;882:184::-;1397:17976:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@LAYER_ZERO_EID_15013":{"entryPoint":null,"id":15013,"parameterSlots":0,"returnSlots":0},"@REMOTE_UPDATE_EXPIRATION_TIME_15010":{"entryPoint":null,"id":15010,"parameterSlots":0,"returnSlots":0},"@__AccessControlled_init_13754":{"entryPoint":11134,"id":13754,"parameterSlots":1,"returnSlots":0},"@__AccessControlled_init_unchained_13766":{"entryPoint":11870,"id":13766,"parameterSlots":1,"returnSlots":0},"@__OAppCore_init_1901":{"entryPoint":12021,"id":1901,"parameterSlots":1,"returnSlots":0},"@__OAppCore_init_unchained_1925":{"entryPoint":12390,"id":1925,"parameterSlots":1,"returnSlots":0},"@__OAppReceiver_init_2059":{"entryPoint":11302,"id":2059,"parameterSlots":1,"returnSlots":0},"@__Ownable2Step_init_5859":{"entryPoint":11711,"id":5859,"parameterSlots":0,"returnSlots":0},"@__Ownable_init_unchained_5985":{"entryPoint":12230,"id":5985,"parameterSlots":0,"returnSlots":0},"@_checkAccessAllowed_13857":{"entryPoint":10862,"id":13857,"parameterSlots":1,"returnSlots":0},"@_checkOwner_6016":{"entryPoint":9510,"id":6016,"parameterSlots":0,"returnSlots":0},"@_checkPendingUpdate_15995":{"entryPoint":11608,"id":15995,"parameterSlots":1,"returnSlots":1},"@_getOAppCoreStorage_1872":{"entryPoint":null,"id":1872,"parameterSlots":0,"returnSlots":1},"@_getPeerOrRevert_2011":{"entryPoint":9892,"id":2011,"parameterSlots":1,"returnSlots":1},"@_lzReceive_15956":{"entryPoint":10010,"id":15956,"parameterSlots":7,"returnSlots":0},"@_msgSender_6559":{"entryPoint":null,"id":6559,"parameterSlots":0,"returnSlots":1},"@_setAccessControlManager_13827":{"entryPoint":9628,"id":13827,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_15830":{"entryPoint":11462,"id":15830,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_5919":{"entryPoint":12181,"id":5919,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_6073":{"entryPoint":12605,"id":6073,"parameterSlots":1,"returnSlots":0},"@acceptOwnership_5941":{"entryPoint":3667,"id":5941,"parameterSlots":0,"returnSlots":0},"@accessControlManager_13789":{"entryPoint":null,"id":13789,"parameterSlots":0,"returnSlots":1},"@allowInitializePath_2117":{"entryPoint":9480,"id":2117,"parameterSlots":1,"returnSlots":1},"@endpoint_1875":{"entryPoint":null,"id":1875,"parameterSlots":0,"returnSlots":0},"@ensureNonzeroAddress_10945":{"entryPoint":11070,"id":10945,"parameterSlots":1,"returnSlots":0},"@executeUpdate_15501":{"entryPoint":3832,"id":15501,"parameterSlots":1,"returnSlots":0},"@getExecutableUpdates_15714":{"entryPoint":8781,"id":15714,"parameterSlots":3,"returnSlots":1},"@getLastExecutedAt_15796":{"entryPoint":6864,"id":15796,"parameterSlots":3,"returnSlots":1},"@getRegisteredUpdate_15770":{"entryPoint":7597,"id":15770,"parameterSlots":3,"returnSlots":1},"@getRiskParameterConfig_15737":{"entryPoint":2338,"id":15737,"parameterSlots":2,"returnSlots":1},"@initialize_15124":{"entryPoint":3178,"id":15124,"parameterSlots":2,"returnSlots":0},"@isComposeMsgSender_2099":{"entryPoint":null,"id":2099,"parameterSlots":4,"returnSlots":1},"@isContract_6266":{"entryPoint":null,"id":6266,"parameterSlots":1,"returnSlots":1},"@lastExecutedAt_15042":{"entryPoint":null,"id":15042,"parameterSlots":0,"returnSlots":0},"@lastRegisteredUpdateId_15035":{"entryPoint":null,"id":15035,"parameterSlots":0,"returnSlots":0},"@lzReceive_2182":{"entryPoint":2096,"id":2182,"parameterSlots":7,"returnSlots":0},"@nextNonce_2130":{"entryPoint":null,"id":2130,"parameterSlots":2,"returnSlots":1},"@oAppVersion_2078":{"entryPoint":null,"id":2078,"parameterSlots":0,"returnSlots":2},"@owner_6002":{"entryPoint":null,"id":6002,"parameterSlots":0,"returnSlots":1},"@peers_1946":{"entryPoint":null,"id":1946,"parameterSlots":1,"returnSlots":1},"@pendingOwner_5882":{"entryPoint":null,"id":5882,"parameterSlots":0,"returnSlots":1},"@rejectUpdate_15538":{"entryPoint":6936,"id":15538,"parameterSlots":1,"returnSlots":0},"@remoteDelay_15016":{"entryPoint":null,"id":15016,"parameterSlots":0,"returnSlots":0},"@renounceOwnership_16004":{"entryPoint":3617,"id":16004,"parameterSlots":0,"returnSlots":0},"@riskParameterConfigs_15022":{"entryPoint":null,"id":15022,"parameterSlots":0,"returnSlots":0},"@setAccessControlManager_13779":{"entryPoint":2076,"id":13779,"parameterSlots":1,"returnSlots":0},"@setConfigActive_15276":{"entryPoint":2825,"id":15276,"parameterSlots":3,"returnSlots":0},"@setDelegate_2026":{"entryPoint":7421,"id":2026,"parameterSlots":1,"returnSlots":0},"@setPeer_1976":{"entryPoint":2465,"id":1976,"parameterSlots":2,"returnSlots":0},"@setRemoteDelay_15319":{"entryPoint":7167,"id":15319,"parameterSlots":1,"returnSlots":0},"@setRiskParameterConfig_15211":{"entryPoint":5513,"id":15211,"parameterSlots":4,"returnSlots":0},"@setWhitelistedExecutor_15362":{"entryPoint":2592,"id":15362,"parameterSlots":2,"returnSlots":0},"@transferOwnership_15814":{"entryPoint":7580,"id":15814,"parameterSlots":1,"returnSlots":0},"@transferOwnership_5902":{"entryPoint":11471,"id":5902,"parameterSlots":1,"returnSlots":0},"@updates_15028":{"entryPoint":5925,"id":15028,"parameterSlots":0,"returnSlots":0},"@whitelistedExecutors_15047":{"entryPoint":null,"id":15047,"parameterSlots":0,"returnSlots":0},"abi_decode_address":{"entryPoint":12732,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_bytes_calldata":{"entryPoint":12801,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_string":{"entryPoint":15163,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_struct_Origin_calldata":{"entryPoint":12777,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":12748,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":13357,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_bool":{"entryPoint":13224,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptr_fromMemory":{"entryPoint":14882,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":16064,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_address":{"entryPoint":13034,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_string_calldata_ptr":{"entryPoint":13082,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_string_calldata_ptrt_address":{"entryPoint":14166,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_string_calldata_ptrt_addresst_uint256":{"entryPoint":13531,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_string_calldata_ptrt_bool":{"entryPoint":13270,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_struct$_Origin_$886_calldata_ptr":{"entryPoint":14398,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_Origin_$886_calldata_ptrt_bytes32t_bytes_calldata_ptrt_addresst_bytes_calldata_ptr":{"entryPoint":12874,"id":null,"parameterSlots":2,"returnSlots":7},"abi_decode_tuple_t_struct$_Origin_$886_calldata_ptrt_bytes_calldata_ptrt_address":{"entryPoint":13428,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_struct$_RiskParameterUpdate_$16568_memory_ptr":{"entryPoint":15303,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":13403,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint32":{"entryPoint":14139,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint32t_bytes32":{"entryPoint":13168,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_uint32":{"entryPoint":13148,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint96":{"entryPoint":15275,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_address":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_enum_UpdateStatus":{"entryPoint":14016,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_string":{"entryPoint":13660,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_string_calldata":{"entryPoint":14442,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_struct_RiskParameterUpdate":{"entryPoint":13704,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":14426,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":15662,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":16093,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":16022,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":14330,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool_t_bool__to_t_bool_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool_t_uint256_t_address__to_t_bool_t_uint256_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$13903__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_ILayerZeroEndpointV2_$1048__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_calldata_ptr_t_bool__to_t_string_memory_ptr_t_bool__fromStack_reversed":{"entryPoint":14485,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_string_calldata_ptr_t_uint256_t_uint256_t_bool_t_bool__to_t_string_memory_ptr_t_uint256_t_uint256_t_bool_t_bool__fromStack_reversed":{"entryPoint":14685,"id":null,"parameterSlots":7,"returnSlots":1},"abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_struct$_DestinationUpdate_$16332_memory_ptr__to_t_struct$_DestinationUpdate_$16332_memory_ptr__fromStack_reversed":{"entryPoint":14242,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_RiskParamConfig_$16320_memory_ptr__to_t_struct$_RiskParamConfig_$16320_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_RiskParameterUpdate_$16568_memory_ptr__to_t_struct$_RiskParameterUpdate_$16568_memory_ptr__fromStack_reversed":{"entryPoint":14666,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_RiskParameterUpdate_$16568_memory_ptr_t_enum$_UpdateStatus_$16312_t_uint256_t_address__to_t_struct$_RiskParameterUpdate_$16568_memory_ptr_t_uint8_t_uint256_t_address__fromStack_reversed":{"entryPoint":14075,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint32_t_bytes32__to_t_uint32_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint64_t_uint64__to_t_uint64_t_uint64__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_uint32":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_uint96":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"allocate_memory":{"entryPoint":14833,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_memory_3487":{"entryPoint":14791,"id":null,"parameterSlots":0,"returnSlots":1},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":14647,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":15690,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":15770,"id":null,"parameterSlots":2,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":13624,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":14523,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"increment_t_uint256":{"entryPoint":15107,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":14600,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":13969,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":15060,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":14744,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":12711,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_bool":{"entryPoint":13210,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:30825:97","nodeType":"YulBlock","src":"0:30825:97","statements":[{"nativeSrc":"6:3:97","nodeType":"YulBlock","src":"6:3:97","statements":[]},{"body":{"nativeSrc":"115:76:97","nodeType":"YulBlock","src":"115:76:97","statements":[{"nativeSrc":"125:26:97","nodeType":"YulAssignment","src":"125:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"137:9:97","nodeType":"YulIdentifier","src":"137:9:97"},{"kind":"number","nativeSrc":"148:2:97","nodeType":"YulLiteral","src":"148:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"133:3:97","nodeType":"YulIdentifier","src":"133:3:97"},"nativeSrc":"133:18:97","nodeType":"YulFunctionCall","src":"133:18:97"},"variableNames":[{"name":"tail","nativeSrc":"125:4:97","nodeType":"YulIdentifier","src":"125:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"167:9:97","nodeType":"YulIdentifier","src":"167:9:97"},{"name":"value0","nativeSrc":"178:6:97","nodeType":"YulIdentifier","src":"178:6:97"}],"functionName":{"name":"mstore","nativeSrc":"160:6:97","nodeType":"YulIdentifier","src":"160:6:97"},"nativeSrc":"160:25:97","nodeType":"YulFunctionCall","src":"160:25:97"},"nativeSrc":"160:25:97","nodeType":"YulExpressionStatement","src":"160:25:97"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"14:177:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"84:9:97","nodeType":"YulTypedName","src":"84:9:97","type":""},{"name":"value0","nativeSrc":"95:6:97","nodeType":"YulTypedName","src":"95:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"106:4:97","nodeType":"YulTypedName","src":"106:4:97","type":""}],"src":"14:177:97"},{"body":{"nativeSrc":"241:109:97","nodeType":"YulBlock","src":"241:109:97","statements":[{"body":{"nativeSrc":"328:16:97","nodeType":"YulBlock","src":"328:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"337:1:97","nodeType":"YulLiteral","src":"337:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"340:1:97","nodeType":"YulLiteral","src":"340:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"330:6:97","nodeType":"YulIdentifier","src":"330:6:97"},"nativeSrc":"330:12:97","nodeType":"YulFunctionCall","src":"330:12:97"},"nativeSrc":"330:12:97","nodeType":"YulExpressionStatement","src":"330:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"264:5:97","nodeType":"YulIdentifier","src":"264:5:97"},{"arguments":[{"name":"value","nativeSrc":"275:5:97","nodeType":"YulIdentifier","src":"275:5:97"},{"kind":"number","nativeSrc":"282:42:97","nodeType":"YulLiteral","src":"282:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"271:3:97","nodeType":"YulIdentifier","src":"271:3:97"},"nativeSrc":"271:54:97","nodeType":"YulFunctionCall","src":"271:54:97"}],"functionName":{"name":"eq","nativeSrc":"261:2:97","nodeType":"YulIdentifier","src":"261:2:97"},"nativeSrc":"261:65:97","nodeType":"YulFunctionCall","src":"261:65:97"}],"functionName":{"name":"iszero","nativeSrc":"254:6:97","nodeType":"YulIdentifier","src":"254:6:97"},"nativeSrc":"254:73:97","nodeType":"YulFunctionCall","src":"254:73:97"},"nativeSrc":"251:93:97","nodeType":"YulIf","src":"251:93:97"}]},"name":"validator_revert_address","nativeSrc":"196:154:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"230:5:97","nodeType":"YulTypedName","src":"230:5:97","type":""}],"src":"196:154:97"},{"body":{"nativeSrc":"404:85:97","nodeType":"YulBlock","src":"404:85:97","statements":[{"nativeSrc":"414:29:97","nodeType":"YulAssignment","src":"414:29:97","value":{"arguments":[{"name":"offset","nativeSrc":"436:6:97","nodeType":"YulIdentifier","src":"436:6:97"}],"functionName":{"name":"calldataload","nativeSrc":"423:12:97","nodeType":"YulIdentifier","src":"423:12:97"},"nativeSrc":"423:20:97","nodeType":"YulFunctionCall","src":"423:20:97"},"variableNames":[{"name":"value","nativeSrc":"414:5:97","nodeType":"YulIdentifier","src":"414:5:97"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"477:5:97","nodeType":"YulIdentifier","src":"477:5:97"}],"functionName":{"name":"validator_revert_address","nativeSrc":"452:24:97","nodeType":"YulIdentifier","src":"452:24:97"},"nativeSrc":"452:31:97","nodeType":"YulFunctionCall","src":"452:31:97"},"nativeSrc":"452:31:97","nodeType":"YulExpressionStatement","src":"452:31:97"}]},"name":"abi_decode_address","nativeSrc":"355:134:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"383:6:97","nodeType":"YulTypedName","src":"383:6:97","type":""}],"returnVariables":[{"name":"value","nativeSrc":"394:5:97","nodeType":"YulTypedName","src":"394:5:97","type":""}],"src":"355:134:97"},{"body":{"nativeSrc":"564:177:97","nodeType":"YulBlock","src":"564:177:97","statements":[{"body":{"nativeSrc":"610:16:97","nodeType":"YulBlock","src":"610:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"619:1:97","nodeType":"YulLiteral","src":"619:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"622:1:97","nodeType":"YulLiteral","src":"622:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"612:6:97","nodeType":"YulIdentifier","src":"612:6:97"},"nativeSrc":"612:12:97","nodeType":"YulFunctionCall","src":"612:12:97"},"nativeSrc":"612:12:97","nodeType":"YulExpressionStatement","src":"612:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"585:7:97","nodeType":"YulIdentifier","src":"585:7:97"},{"name":"headStart","nativeSrc":"594:9:97","nodeType":"YulIdentifier","src":"594:9:97"}],"functionName":{"name":"sub","nativeSrc":"581:3:97","nodeType":"YulIdentifier","src":"581:3:97"},"nativeSrc":"581:23:97","nodeType":"YulFunctionCall","src":"581:23:97"},{"kind":"number","nativeSrc":"606:2:97","nodeType":"YulLiteral","src":"606:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"577:3:97","nodeType":"YulIdentifier","src":"577:3:97"},"nativeSrc":"577:32:97","nodeType":"YulFunctionCall","src":"577:32:97"},"nativeSrc":"574:52:97","nodeType":"YulIf","src":"574:52:97"},{"nativeSrc":"635:36:97","nodeType":"YulVariableDeclaration","src":"635:36:97","value":{"arguments":[{"name":"headStart","nativeSrc":"661:9:97","nodeType":"YulIdentifier","src":"661:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"648:12:97","nodeType":"YulIdentifier","src":"648:12:97"},"nativeSrc":"648:23:97","nodeType":"YulFunctionCall","src":"648:23:97"},"variables":[{"name":"value","nativeSrc":"639:5:97","nodeType":"YulTypedName","src":"639:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"705:5:97","nodeType":"YulIdentifier","src":"705:5:97"}],"functionName":{"name":"validator_revert_address","nativeSrc":"680:24:97","nodeType":"YulIdentifier","src":"680:24:97"},"nativeSrc":"680:31:97","nodeType":"YulFunctionCall","src":"680:31:97"},"nativeSrc":"680:31:97","nodeType":"YulExpressionStatement","src":"680:31:97"},{"nativeSrc":"720:15:97","nodeType":"YulAssignment","src":"720:15:97","value":{"name":"value","nativeSrc":"730:5:97","nodeType":"YulIdentifier","src":"730:5:97"},"variableNames":[{"name":"value0","nativeSrc":"720:6:97","nodeType":"YulIdentifier","src":"720:6:97"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"494:247:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"530:9:97","nodeType":"YulTypedName","src":"530:9:97","type":""},{"name":"dataEnd","nativeSrc":"541:7:97","nodeType":"YulTypedName","src":"541:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"553:6:97","nodeType":"YulTypedName","src":"553:6:97","type":""}],"src":"494:247:97"},{"body":{"nativeSrc":"815:85:97","nodeType":"YulBlock","src":"815:85:97","statements":[{"body":{"nativeSrc":"854:16:97","nodeType":"YulBlock","src":"854:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"863:1:97","nodeType":"YulLiteral","src":"863:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"866:1:97","nodeType":"YulLiteral","src":"866:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"856:6:97","nodeType":"YulIdentifier","src":"856:6:97"},"nativeSrc":"856:12:97","nodeType":"YulFunctionCall","src":"856:12:97"},"nativeSrc":"856:12:97","nodeType":"YulExpressionStatement","src":"856:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"836:3:97","nodeType":"YulIdentifier","src":"836:3:97"},{"name":"offset","nativeSrc":"841:6:97","nodeType":"YulIdentifier","src":"841:6:97"}],"functionName":{"name":"sub","nativeSrc":"832:3:97","nodeType":"YulIdentifier","src":"832:3:97"},"nativeSrc":"832:16:97","nodeType":"YulFunctionCall","src":"832:16:97"},{"kind":"number","nativeSrc":"850:2:97","nodeType":"YulLiteral","src":"850:2:97","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"828:3:97","nodeType":"YulIdentifier","src":"828:3:97"},"nativeSrc":"828:25:97","nodeType":"YulFunctionCall","src":"828:25:97"},"nativeSrc":"825:45:97","nodeType":"YulIf","src":"825:45:97"},{"nativeSrc":"879:15:97","nodeType":"YulAssignment","src":"879:15:97","value":{"name":"offset","nativeSrc":"888:6:97","nodeType":"YulIdentifier","src":"888:6:97"},"variableNames":[{"name":"value","nativeSrc":"879:5:97","nodeType":"YulIdentifier","src":"879:5:97"}]}]},"name":"abi_decode_struct_Origin_calldata","nativeSrc":"746:154:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"789:6:97","nodeType":"YulTypedName","src":"789:6:97","type":""},{"name":"end","nativeSrc":"797:3:97","nodeType":"YulTypedName","src":"797:3:97","type":""}],"returnVariables":[{"name":"value","nativeSrc":"805:5:97","nodeType":"YulTypedName","src":"805:5:97","type":""}],"src":"746:154:97"},{"body":{"nativeSrc":"977:275:97","nodeType":"YulBlock","src":"977:275:97","statements":[{"body":{"nativeSrc":"1026:16:97","nodeType":"YulBlock","src":"1026:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1035:1:97","nodeType":"YulLiteral","src":"1035:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1038:1:97","nodeType":"YulLiteral","src":"1038:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1028:6:97","nodeType":"YulIdentifier","src":"1028:6:97"},"nativeSrc":"1028:12:97","nodeType":"YulFunctionCall","src":"1028:12:97"},"nativeSrc":"1028:12:97","nodeType":"YulExpressionStatement","src":"1028:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"1005:6:97","nodeType":"YulIdentifier","src":"1005:6:97"},{"kind":"number","nativeSrc":"1013:4:97","nodeType":"YulLiteral","src":"1013:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"1001:3:97","nodeType":"YulIdentifier","src":"1001:3:97"},"nativeSrc":"1001:17:97","nodeType":"YulFunctionCall","src":"1001:17:97"},{"name":"end","nativeSrc":"1020:3:97","nodeType":"YulIdentifier","src":"1020:3:97"}],"functionName":{"name":"slt","nativeSrc":"997:3:97","nodeType":"YulIdentifier","src":"997:3:97"},"nativeSrc":"997:27:97","nodeType":"YulFunctionCall","src":"997:27:97"}],"functionName":{"name":"iszero","nativeSrc":"990:6:97","nodeType":"YulIdentifier","src":"990:6:97"},"nativeSrc":"990:35:97","nodeType":"YulFunctionCall","src":"990:35:97"},"nativeSrc":"987:55:97","nodeType":"YulIf","src":"987:55:97"},{"nativeSrc":"1051:30:97","nodeType":"YulAssignment","src":"1051:30:97","value":{"arguments":[{"name":"offset","nativeSrc":"1074:6:97","nodeType":"YulIdentifier","src":"1074:6:97"}],"functionName":{"name":"calldataload","nativeSrc":"1061:12:97","nodeType":"YulIdentifier","src":"1061:12:97"},"nativeSrc":"1061:20:97","nodeType":"YulFunctionCall","src":"1061:20:97"},"variableNames":[{"name":"length","nativeSrc":"1051:6:97","nodeType":"YulIdentifier","src":"1051:6:97"}]},{"body":{"nativeSrc":"1124:16:97","nodeType":"YulBlock","src":"1124:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1133:1:97","nodeType":"YulLiteral","src":"1133:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1136:1:97","nodeType":"YulLiteral","src":"1136:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1126:6:97","nodeType":"YulIdentifier","src":"1126:6:97"},"nativeSrc":"1126:12:97","nodeType":"YulFunctionCall","src":"1126:12:97"},"nativeSrc":"1126:12:97","nodeType":"YulExpressionStatement","src":"1126:12:97"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1096:6:97","nodeType":"YulIdentifier","src":"1096:6:97"},{"kind":"number","nativeSrc":"1104:18:97","nodeType":"YulLiteral","src":"1104:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1093:2:97","nodeType":"YulIdentifier","src":"1093:2:97"},"nativeSrc":"1093:30:97","nodeType":"YulFunctionCall","src":"1093:30:97"},"nativeSrc":"1090:50:97","nodeType":"YulIf","src":"1090:50:97"},{"nativeSrc":"1149:29:97","nodeType":"YulAssignment","src":"1149:29:97","value":{"arguments":[{"name":"offset","nativeSrc":"1165:6:97","nodeType":"YulIdentifier","src":"1165:6:97"},{"kind":"number","nativeSrc":"1173:4:97","nodeType":"YulLiteral","src":"1173:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1161:3:97","nodeType":"YulIdentifier","src":"1161:3:97"},"nativeSrc":"1161:17:97","nodeType":"YulFunctionCall","src":"1161:17:97"},"variableNames":[{"name":"arrayPos","nativeSrc":"1149:8:97","nodeType":"YulIdentifier","src":"1149:8:97"}]},{"body":{"nativeSrc":"1230:16:97","nodeType":"YulBlock","src":"1230:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1239:1:97","nodeType":"YulLiteral","src":"1239:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1242:1:97","nodeType":"YulLiteral","src":"1242:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1232:6:97","nodeType":"YulIdentifier","src":"1232:6:97"},"nativeSrc":"1232:12:97","nodeType":"YulFunctionCall","src":"1232:12:97"},"nativeSrc":"1232:12:97","nodeType":"YulExpressionStatement","src":"1232:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"1201:6:97","nodeType":"YulIdentifier","src":"1201:6:97"},{"name":"length","nativeSrc":"1209:6:97","nodeType":"YulIdentifier","src":"1209:6:97"}],"functionName":{"name":"add","nativeSrc":"1197:3:97","nodeType":"YulIdentifier","src":"1197:3:97"},"nativeSrc":"1197:19:97","nodeType":"YulFunctionCall","src":"1197:19:97"},{"kind":"number","nativeSrc":"1218:4:97","nodeType":"YulLiteral","src":"1218:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1193:3:97","nodeType":"YulIdentifier","src":"1193:3:97"},"nativeSrc":"1193:30:97","nodeType":"YulFunctionCall","src":"1193:30:97"},{"name":"end","nativeSrc":"1225:3:97","nodeType":"YulIdentifier","src":"1225:3:97"}],"functionName":{"name":"gt","nativeSrc":"1190:2:97","nodeType":"YulIdentifier","src":"1190:2:97"},"nativeSrc":"1190:39:97","nodeType":"YulFunctionCall","src":"1190:39:97"},"nativeSrc":"1187:59:97","nodeType":"YulIf","src":"1187:59:97"}]},"name":"abi_decode_bytes_calldata","nativeSrc":"905:347:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"940:6:97","nodeType":"YulTypedName","src":"940:6:97","type":""},{"name":"end","nativeSrc":"948:3:97","nodeType":"YulTypedName","src":"948:3:97","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"956:8:97","nodeType":"YulTypedName","src":"956:8:97","type":""},{"name":"length","nativeSrc":"966:6:97","nodeType":"YulTypedName","src":"966:6:97","type":""}],"src":"905:347:97"},{"body":{"nativeSrc":"1458:846:97","nodeType":"YulBlock","src":"1458:846:97","statements":[{"body":{"nativeSrc":"1505:16:97","nodeType":"YulBlock","src":"1505:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1514:1:97","nodeType":"YulLiteral","src":"1514:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1517:1:97","nodeType":"YulLiteral","src":"1517:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1507:6:97","nodeType":"YulIdentifier","src":"1507:6:97"},"nativeSrc":"1507:12:97","nodeType":"YulFunctionCall","src":"1507:12:97"},"nativeSrc":"1507:12:97","nodeType":"YulExpressionStatement","src":"1507:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1479:7:97","nodeType":"YulIdentifier","src":"1479:7:97"},{"name":"headStart","nativeSrc":"1488:9:97","nodeType":"YulIdentifier","src":"1488:9:97"}],"functionName":{"name":"sub","nativeSrc":"1475:3:97","nodeType":"YulIdentifier","src":"1475:3:97"},"nativeSrc":"1475:23:97","nodeType":"YulFunctionCall","src":"1475:23:97"},{"kind":"number","nativeSrc":"1500:3:97","nodeType":"YulLiteral","src":"1500:3:97","type":"","value":"224"}],"functionName":{"name":"slt","nativeSrc":"1471:3:97","nodeType":"YulIdentifier","src":"1471:3:97"},"nativeSrc":"1471:33:97","nodeType":"YulFunctionCall","src":"1471:33:97"},"nativeSrc":"1468:53:97","nodeType":"YulIf","src":"1468:53:97"},{"nativeSrc":"1530:63:97","nodeType":"YulAssignment","src":"1530:63:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1574:9:97","nodeType":"YulIdentifier","src":"1574:9:97"},{"name":"dataEnd","nativeSrc":"1585:7:97","nodeType":"YulIdentifier","src":"1585:7:97"}],"functionName":{"name":"abi_decode_struct_Origin_calldata","nativeSrc":"1540:33:97","nodeType":"YulIdentifier","src":"1540:33:97"},"nativeSrc":"1540:53:97","nodeType":"YulFunctionCall","src":"1540:53:97"},"variableNames":[{"name":"value0","nativeSrc":"1530:6:97","nodeType":"YulIdentifier","src":"1530:6:97"}]},{"nativeSrc":"1602:42:97","nodeType":"YulAssignment","src":"1602:42:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1629:9:97","nodeType":"YulIdentifier","src":"1629:9:97"},{"kind":"number","nativeSrc":"1640:2:97","nodeType":"YulLiteral","src":"1640:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"1625:3:97","nodeType":"YulIdentifier","src":"1625:3:97"},"nativeSrc":"1625:18:97","nodeType":"YulFunctionCall","src":"1625:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"1612:12:97","nodeType":"YulIdentifier","src":"1612:12:97"},"nativeSrc":"1612:32:97","nodeType":"YulFunctionCall","src":"1612:32:97"},"variableNames":[{"name":"value1","nativeSrc":"1602:6:97","nodeType":"YulIdentifier","src":"1602:6:97"}]},{"nativeSrc":"1653:47:97","nodeType":"YulVariableDeclaration","src":"1653:47:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1684:9:97","nodeType":"YulIdentifier","src":"1684:9:97"},{"kind":"number","nativeSrc":"1695:3:97","nodeType":"YulLiteral","src":"1695:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"1680:3:97","nodeType":"YulIdentifier","src":"1680:3:97"},"nativeSrc":"1680:19:97","nodeType":"YulFunctionCall","src":"1680:19:97"}],"functionName":{"name":"calldataload","nativeSrc":"1667:12:97","nodeType":"YulIdentifier","src":"1667:12:97"},"nativeSrc":"1667:33:97","nodeType":"YulFunctionCall","src":"1667:33:97"},"variables":[{"name":"offset","nativeSrc":"1657:6:97","nodeType":"YulTypedName","src":"1657:6:97","type":""}]},{"nativeSrc":"1709:28:97","nodeType":"YulVariableDeclaration","src":"1709:28:97","value":{"kind":"number","nativeSrc":"1719:18:97","nodeType":"YulLiteral","src":"1719:18:97","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"1713:2:97","nodeType":"YulTypedName","src":"1713:2:97","type":""}]},{"body":{"nativeSrc":"1764:16:97","nodeType":"YulBlock","src":"1764:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1773:1:97","nodeType":"YulLiteral","src":"1773:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1776:1:97","nodeType":"YulLiteral","src":"1776:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1766:6:97","nodeType":"YulIdentifier","src":"1766:6:97"},"nativeSrc":"1766:12:97","nodeType":"YulFunctionCall","src":"1766:12:97"},"nativeSrc":"1766:12:97","nodeType":"YulExpressionStatement","src":"1766:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"1752:6:97","nodeType":"YulIdentifier","src":"1752:6:97"},{"name":"_1","nativeSrc":"1760:2:97","nodeType":"YulIdentifier","src":"1760:2:97"}],"functionName":{"name":"gt","nativeSrc":"1749:2:97","nodeType":"YulIdentifier","src":"1749:2:97"},"nativeSrc":"1749:14:97","nodeType":"YulFunctionCall","src":"1749:14:97"},"nativeSrc":"1746:34:97","nodeType":"YulIf","src":"1746:34:97"},{"nativeSrc":"1789:84:97","nodeType":"YulVariableDeclaration","src":"1789:84:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1845:9:97","nodeType":"YulIdentifier","src":"1845:9:97"},{"name":"offset","nativeSrc":"1856:6:97","nodeType":"YulIdentifier","src":"1856:6:97"}],"functionName":{"name":"add","nativeSrc":"1841:3:97","nodeType":"YulIdentifier","src":"1841:3:97"},"nativeSrc":"1841:22:97","nodeType":"YulFunctionCall","src":"1841:22:97"},{"name":"dataEnd","nativeSrc":"1865:7:97","nodeType":"YulIdentifier","src":"1865:7:97"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"1815:25:97","nodeType":"YulIdentifier","src":"1815:25:97"},"nativeSrc":"1815:58:97","nodeType":"YulFunctionCall","src":"1815:58:97"},"variables":[{"name":"value2_1","nativeSrc":"1793:8:97","nodeType":"YulTypedName","src":"1793:8:97","type":""},{"name":"value3_1","nativeSrc":"1803:8:97","nodeType":"YulTypedName","src":"1803:8:97","type":""}]},{"nativeSrc":"1882:18:97","nodeType":"YulAssignment","src":"1882:18:97","value":{"name":"value2_1","nativeSrc":"1892:8:97","nodeType":"YulIdentifier","src":"1892:8:97"},"variableNames":[{"name":"value2","nativeSrc":"1882:6:97","nodeType":"YulIdentifier","src":"1882:6:97"}]},{"nativeSrc":"1909:18:97","nodeType":"YulAssignment","src":"1909:18:97","value":{"name":"value3_1","nativeSrc":"1919:8:97","nodeType":"YulIdentifier","src":"1919:8:97"},"variableNames":[{"name":"value3","nativeSrc":"1909:6:97","nodeType":"YulIdentifier","src":"1909:6:97"}]},{"nativeSrc":"1936:46:97","nodeType":"YulVariableDeclaration","src":"1936:46:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1966:9:97","nodeType":"YulIdentifier","src":"1966:9:97"},{"kind":"number","nativeSrc":"1977:3:97","nodeType":"YulLiteral","src":"1977:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"1962:3:97","nodeType":"YulIdentifier","src":"1962:3:97"},"nativeSrc":"1962:19:97","nodeType":"YulFunctionCall","src":"1962:19:97"}],"functionName":{"name":"calldataload","nativeSrc":"1949:12:97","nodeType":"YulIdentifier","src":"1949:12:97"},"nativeSrc":"1949:33:97","nodeType":"YulFunctionCall","src":"1949:33:97"},"variables":[{"name":"value","nativeSrc":"1940:5:97","nodeType":"YulTypedName","src":"1940:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2016:5:97","nodeType":"YulIdentifier","src":"2016:5:97"}],"functionName":{"name":"validator_revert_address","nativeSrc":"1991:24:97","nodeType":"YulIdentifier","src":"1991:24:97"},"nativeSrc":"1991:31:97","nodeType":"YulFunctionCall","src":"1991:31:97"},"nativeSrc":"1991:31:97","nodeType":"YulExpressionStatement","src":"1991:31:97"},{"nativeSrc":"2031:15:97","nodeType":"YulAssignment","src":"2031:15:97","value":{"name":"value","nativeSrc":"2041:5:97","nodeType":"YulIdentifier","src":"2041:5:97"},"variableNames":[{"name":"value4","nativeSrc":"2031:6:97","nodeType":"YulIdentifier","src":"2031:6:97"}]},{"nativeSrc":"2055:49:97","nodeType":"YulVariableDeclaration","src":"2055:49:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2088:9:97","nodeType":"YulIdentifier","src":"2088:9:97"},{"kind":"number","nativeSrc":"2099:3:97","nodeType":"YulLiteral","src":"2099:3:97","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"2084:3:97","nodeType":"YulIdentifier","src":"2084:3:97"},"nativeSrc":"2084:19:97","nodeType":"YulFunctionCall","src":"2084:19:97"}],"functionName":{"name":"calldataload","nativeSrc":"2071:12:97","nodeType":"YulIdentifier","src":"2071:12:97"},"nativeSrc":"2071:33:97","nodeType":"YulFunctionCall","src":"2071:33:97"},"variables":[{"name":"offset_1","nativeSrc":"2059:8:97","nodeType":"YulTypedName","src":"2059:8:97","type":""}]},{"body":{"nativeSrc":"2133:16:97","nodeType":"YulBlock","src":"2133:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2142:1:97","nodeType":"YulLiteral","src":"2142:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"2145:1:97","nodeType":"YulLiteral","src":"2145:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2135:6:97","nodeType":"YulIdentifier","src":"2135:6:97"},"nativeSrc":"2135:12:97","nodeType":"YulFunctionCall","src":"2135:12:97"},"nativeSrc":"2135:12:97","nodeType":"YulExpressionStatement","src":"2135:12:97"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"2119:8:97","nodeType":"YulIdentifier","src":"2119:8:97"},{"name":"_1","nativeSrc":"2129:2:97","nodeType":"YulIdentifier","src":"2129:2:97"}],"functionName":{"name":"gt","nativeSrc":"2116:2:97","nodeType":"YulIdentifier","src":"2116:2:97"},"nativeSrc":"2116:16:97","nodeType":"YulFunctionCall","src":"2116:16:97"},"nativeSrc":"2113:36:97","nodeType":"YulIf","src":"2113:36:97"},{"nativeSrc":"2158:86:97","nodeType":"YulVariableDeclaration","src":"2158:86:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2214:9:97","nodeType":"YulIdentifier","src":"2214:9:97"},{"name":"offset_1","nativeSrc":"2225:8:97","nodeType":"YulIdentifier","src":"2225:8:97"}],"functionName":{"name":"add","nativeSrc":"2210:3:97","nodeType":"YulIdentifier","src":"2210:3:97"},"nativeSrc":"2210:24:97","nodeType":"YulFunctionCall","src":"2210:24:97"},{"name":"dataEnd","nativeSrc":"2236:7:97","nodeType":"YulIdentifier","src":"2236:7:97"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"2184:25:97","nodeType":"YulIdentifier","src":"2184:25:97"},"nativeSrc":"2184:60:97","nodeType":"YulFunctionCall","src":"2184:60:97"},"variables":[{"name":"value5_1","nativeSrc":"2162:8:97","nodeType":"YulTypedName","src":"2162:8:97","type":""},{"name":"value6_1","nativeSrc":"2172:8:97","nodeType":"YulTypedName","src":"2172:8:97","type":""}]},{"nativeSrc":"2253:18:97","nodeType":"YulAssignment","src":"2253:18:97","value":{"name":"value5_1","nativeSrc":"2263:8:97","nodeType":"YulIdentifier","src":"2263:8:97"},"variableNames":[{"name":"value5","nativeSrc":"2253:6:97","nodeType":"YulIdentifier","src":"2253:6:97"}]},{"nativeSrc":"2280:18:97","nodeType":"YulAssignment","src":"2280:18:97","value":{"name":"value6_1","nativeSrc":"2290:8:97","nodeType":"YulIdentifier","src":"2290:8:97"},"variableNames":[{"name":"value6","nativeSrc":"2280:6:97","nodeType":"YulIdentifier","src":"2280:6:97"}]}]},"name":"abi_decode_tuple_t_struct$_Origin_$886_calldata_ptrt_bytes32t_bytes_calldata_ptrt_addresst_bytes_calldata_ptr","nativeSrc":"1257:1047:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1376:9:97","nodeType":"YulTypedName","src":"1376:9:97","type":""},{"name":"dataEnd","nativeSrc":"1387:7:97","nodeType":"YulTypedName","src":"1387:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1399:6:97","nodeType":"YulTypedName","src":"1399:6:97","type":""},{"name":"value1","nativeSrc":"1407:6:97","nodeType":"YulTypedName","src":"1407:6:97","type":""},{"name":"value2","nativeSrc":"1415:6:97","nodeType":"YulTypedName","src":"1415:6:97","type":""},{"name":"value3","nativeSrc":"1423:6:97","nodeType":"YulTypedName","src":"1423:6:97","type":""},{"name":"value4","nativeSrc":"1431:6:97","nodeType":"YulTypedName","src":"1431:6:97","type":""},{"name":"value5","nativeSrc":"1439:6:97","nodeType":"YulTypedName","src":"1439:6:97","type":""},{"name":"value6","nativeSrc":"1447:6:97","nodeType":"YulTypedName","src":"1447:6:97","type":""}],"src":"1257:1047:97"},{"body":{"nativeSrc":"2396:228:97","nodeType":"YulBlock","src":"2396:228:97","statements":[{"body":{"nativeSrc":"2442:16:97","nodeType":"YulBlock","src":"2442:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2451:1:97","nodeType":"YulLiteral","src":"2451:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"2454:1:97","nodeType":"YulLiteral","src":"2454:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2444:6:97","nodeType":"YulIdentifier","src":"2444:6:97"},"nativeSrc":"2444:12:97","nodeType":"YulFunctionCall","src":"2444:12:97"},"nativeSrc":"2444:12:97","nodeType":"YulExpressionStatement","src":"2444:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2417:7:97","nodeType":"YulIdentifier","src":"2417:7:97"},{"name":"headStart","nativeSrc":"2426:9:97","nodeType":"YulIdentifier","src":"2426:9:97"}],"functionName":{"name":"sub","nativeSrc":"2413:3:97","nodeType":"YulIdentifier","src":"2413:3:97"},"nativeSrc":"2413:23:97","nodeType":"YulFunctionCall","src":"2413:23:97"},{"kind":"number","nativeSrc":"2438:2:97","nodeType":"YulLiteral","src":"2438:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2409:3:97","nodeType":"YulIdentifier","src":"2409:3:97"},"nativeSrc":"2409:32:97","nodeType":"YulFunctionCall","src":"2409:32:97"},"nativeSrc":"2406:52:97","nodeType":"YulIf","src":"2406:52:97"},{"nativeSrc":"2467:33:97","nodeType":"YulAssignment","src":"2467:33:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2490:9:97","nodeType":"YulIdentifier","src":"2490:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"2477:12:97","nodeType":"YulIdentifier","src":"2477:12:97"},"nativeSrc":"2477:23:97","nodeType":"YulFunctionCall","src":"2477:23:97"},"variableNames":[{"name":"value0","nativeSrc":"2467:6:97","nodeType":"YulIdentifier","src":"2467:6:97"}]},{"nativeSrc":"2509:45:97","nodeType":"YulVariableDeclaration","src":"2509:45:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2539:9:97","nodeType":"YulIdentifier","src":"2539:9:97"},{"kind":"number","nativeSrc":"2550:2:97","nodeType":"YulLiteral","src":"2550:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2535:3:97","nodeType":"YulIdentifier","src":"2535:3:97"},"nativeSrc":"2535:18:97","nodeType":"YulFunctionCall","src":"2535:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"2522:12:97","nodeType":"YulIdentifier","src":"2522:12:97"},"nativeSrc":"2522:32:97","nodeType":"YulFunctionCall","src":"2522:32:97"},"variables":[{"name":"value","nativeSrc":"2513:5:97","nodeType":"YulTypedName","src":"2513:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2588:5:97","nodeType":"YulIdentifier","src":"2588:5:97"}],"functionName":{"name":"validator_revert_address","nativeSrc":"2563:24:97","nodeType":"YulIdentifier","src":"2563:24:97"},"nativeSrc":"2563:31:97","nodeType":"YulFunctionCall","src":"2563:31:97"},"nativeSrc":"2563:31:97","nodeType":"YulExpressionStatement","src":"2563:31:97"},{"nativeSrc":"2603:15:97","nodeType":"YulAssignment","src":"2603:15:97","value":{"name":"value","nativeSrc":"2613:5:97","nodeType":"YulIdentifier","src":"2613:5:97"},"variableNames":[{"name":"value1","nativeSrc":"2603:6:97","nodeType":"YulIdentifier","src":"2603:6:97"}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nativeSrc":"2309:315:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2354:9:97","nodeType":"YulTypedName","src":"2354:9:97","type":""},{"name":"dataEnd","nativeSrc":"2365:7:97","nodeType":"YulTypedName","src":"2365:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2377:6:97","nodeType":"YulTypedName","src":"2377:6:97","type":""},{"name":"value1","nativeSrc":"2385:6:97","nodeType":"YulTypedName","src":"2385:6:97","type":""}],"src":"2309:315:97"},{"body":{"nativeSrc":"2754:174:97","nodeType":"YulBlock","src":"2754:174:97","statements":[{"nativeSrc":"2764:26:97","nodeType":"YulAssignment","src":"2764:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2776:9:97","nodeType":"YulIdentifier","src":"2776:9:97"},{"kind":"number","nativeSrc":"2787:2:97","nodeType":"YulLiteral","src":"2787:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2772:3:97","nodeType":"YulIdentifier","src":"2772:3:97"},"nativeSrc":"2772:18:97","nodeType":"YulFunctionCall","src":"2772:18:97"},"variableNames":[{"name":"tail","nativeSrc":"2764:4:97","nodeType":"YulIdentifier","src":"2764:4:97"}]},{"nativeSrc":"2799:28:97","nodeType":"YulVariableDeclaration","src":"2799:28:97","value":{"kind":"number","nativeSrc":"2809:18:97","nodeType":"YulLiteral","src":"2809:18:97","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"2803:2:97","nodeType":"YulTypedName","src":"2803:2:97","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2843:9:97","nodeType":"YulIdentifier","src":"2843:9:97"},{"arguments":[{"name":"value0","nativeSrc":"2858:6:97","nodeType":"YulIdentifier","src":"2858:6:97"},{"name":"_1","nativeSrc":"2866:2:97","nodeType":"YulIdentifier","src":"2866:2:97"}],"functionName":{"name":"and","nativeSrc":"2854:3:97","nodeType":"YulIdentifier","src":"2854:3:97"},"nativeSrc":"2854:15:97","nodeType":"YulFunctionCall","src":"2854:15:97"}],"functionName":{"name":"mstore","nativeSrc":"2836:6:97","nodeType":"YulIdentifier","src":"2836:6:97"},"nativeSrc":"2836:34:97","nodeType":"YulFunctionCall","src":"2836:34:97"},"nativeSrc":"2836:34:97","nodeType":"YulExpressionStatement","src":"2836:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2890:9:97","nodeType":"YulIdentifier","src":"2890:9:97"},{"kind":"number","nativeSrc":"2901:2:97","nodeType":"YulLiteral","src":"2901:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2886:3:97","nodeType":"YulIdentifier","src":"2886:3:97"},"nativeSrc":"2886:18:97","nodeType":"YulFunctionCall","src":"2886:18:97"},{"arguments":[{"name":"value1","nativeSrc":"2910:6:97","nodeType":"YulIdentifier","src":"2910:6:97"},{"name":"_1","nativeSrc":"2918:2:97","nodeType":"YulIdentifier","src":"2918:2:97"}],"functionName":{"name":"and","nativeSrc":"2906:3:97","nodeType":"YulIdentifier","src":"2906:3:97"},"nativeSrc":"2906:15:97","nodeType":"YulFunctionCall","src":"2906:15:97"}],"functionName":{"name":"mstore","nativeSrc":"2879:6:97","nodeType":"YulIdentifier","src":"2879:6:97"},"nativeSrc":"2879:43:97","nodeType":"YulFunctionCall","src":"2879:43:97"},"nativeSrc":"2879:43:97","nodeType":"YulExpressionStatement","src":"2879:43:97"}]},"name":"abi_encode_tuple_t_uint64_t_uint64__to_t_uint64_t_uint64__fromStack_reversed","nativeSrc":"2629:299:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2715:9:97","nodeType":"YulTypedName","src":"2715:9:97","type":""},{"name":"value1","nativeSrc":"2726:6:97","nodeType":"YulTypedName","src":"2726:6:97","type":""},{"name":"value0","nativeSrc":"2734:6:97","nodeType":"YulTypedName","src":"2734:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2745:4:97","nodeType":"YulTypedName","src":"2745:4:97","type":""}],"src":"2629:299:97"},{"body":{"nativeSrc":"3023:320:97","nodeType":"YulBlock","src":"3023:320:97","statements":[{"body":{"nativeSrc":"3069:16:97","nodeType":"YulBlock","src":"3069:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3078:1:97","nodeType":"YulLiteral","src":"3078:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"3081:1:97","nodeType":"YulLiteral","src":"3081:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3071:6:97","nodeType":"YulIdentifier","src":"3071:6:97"},"nativeSrc":"3071:12:97","nodeType":"YulFunctionCall","src":"3071:12:97"},"nativeSrc":"3071:12:97","nodeType":"YulExpressionStatement","src":"3071:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3044:7:97","nodeType":"YulIdentifier","src":"3044:7:97"},{"name":"headStart","nativeSrc":"3053:9:97","nodeType":"YulIdentifier","src":"3053:9:97"}],"functionName":{"name":"sub","nativeSrc":"3040:3:97","nodeType":"YulIdentifier","src":"3040:3:97"},"nativeSrc":"3040:23:97","nodeType":"YulFunctionCall","src":"3040:23:97"},{"kind":"number","nativeSrc":"3065:2:97","nodeType":"YulLiteral","src":"3065:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3036:3:97","nodeType":"YulIdentifier","src":"3036:3:97"},"nativeSrc":"3036:32:97","nodeType":"YulFunctionCall","src":"3036:32:97"},"nativeSrc":"3033:52:97","nodeType":"YulIf","src":"3033:52:97"},{"nativeSrc":"3094:37:97","nodeType":"YulVariableDeclaration","src":"3094:37:97","value":{"arguments":[{"name":"headStart","nativeSrc":"3121:9:97","nodeType":"YulIdentifier","src":"3121:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"3108:12:97","nodeType":"YulIdentifier","src":"3108:12:97"},"nativeSrc":"3108:23:97","nodeType":"YulFunctionCall","src":"3108:23:97"},"variables":[{"name":"offset","nativeSrc":"3098:6:97","nodeType":"YulTypedName","src":"3098:6:97","type":""}]},{"body":{"nativeSrc":"3174:16:97","nodeType":"YulBlock","src":"3174:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3183:1:97","nodeType":"YulLiteral","src":"3183:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"3186:1:97","nodeType":"YulLiteral","src":"3186:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3176:6:97","nodeType":"YulIdentifier","src":"3176:6:97"},"nativeSrc":"3176:12:97","nodeType":"YulFunctionCall","src":"3176:12:97"},"nativeSrc":"3176:12:97","nodeType":"YulExpressionStatement","src":"3176:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3146:6:97","nodeType":"YulIdentifier","src":"3146:6:97"},{"kind":"number","nativeSrc":"3154:18:97","nodeType":"YulLiteral","src":"3154:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3143:2:97","nodeType":"YulIdentifier","src":"3143:2:97"},"nativeSrc":"3143:30:97","nodeType":"YulFunctionCall","src":"3143:30:97"},"nativeSrc":"3140:50:97","nodeType":"YulIf","src":"3140:50:97"},{"nativeSrc":"3199:84:97","nodeType":"YulVariableDeclaration","src":"3199:84:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3255:9:97","nodeType":"YulIdentifier","src":"3255:9:97"},{"name":"offset","nativeSrc":"3266:6:97","nodeType":"YulIdentifier","src":"3266:6:97"}],"functionName":{"name":"add","nativeSrc":"3251:3:97","nodeType":"YulIdentifier","src":"3251:3:97"},"nativeSrc":"3251:22:97","nodeType":"YulFunctionCall","src":"3251:22:97"},{"name":"dataEnd","nativeSrc":"3275:7:97","nodeType":"YulIdentifier","src":"3275:7:97"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"3225:25:97","nodeType":"YulIdentifier","src":"3225:25:97"},"nativeSrc":"3225:58:97","nodeType":"YulFunctionCall","src":"3225:58:97"},"variables":[{"name":"value0_1","nativeSrc":"3203:8:97","nodeType":"YulTypedName","src":"3203:8:97","type":""},{"name":"value1_1","nativeSrc":"3213:8:97","nodeType":"YulTypedName","src":"3213:8:97","type":""}]},{"nativeSrc":"3292:18:97","nodeType":"YulAssignment","src":"3292:18:97","value":{"name":"value0_1","nativeSrc":"3302:8:97","nodeType":"YulIdentifier","src":"3302:8:97"},"variableNames":[{"name":"value0","nativeSrc":"3292:6:97","nodeType":"YulIdentifier","src":"3292:6:97"}]},{"nativeSrc":"3319:18:97","nodeType":"YulAssignment","src":"3319:18:97","value":{"name":"value1_1","nativeSrc":"3329:8:97","nodeType":"YulIdentifier","src":"3329:8:97"},"variableNames":[{"name":"value1","nativeSrc":"3319:6:97","nodeType":"YulIdentifier","src":"3319:6:97"}]}]},"name":"abi_decode_tuple_t_string_calldata_ptr","nativeSrc":"2933:410:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2981:9:97","nodeType":"YulTypedName","src":"2981:9:97","type":""},{"name":"dataEnd","nativeSrc":"2992:7:97","nodeType":"YulTypedName","src":"2992:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3004:6:97","nodeType":"YulTypedName","src":"3004:6:97","type":""},{"name":"value1","nativeSrc":"3012:6:97","nodeType":"YulTypedName","src":"3012:6:97","type":""}],"src":"2933:410:97"},{"body":{"nativeSrc":"3392:83:97","nodeType":"YulBlock","src":"3392:83:97","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3409:3:97","nodeType":"YulIdentifier","src":"3409:3:97"},{"arguments":[{"name":"value","nativeSrc":"3418:5:97","nodeType":"YulIdentifier","src":"3418:5:97"},{"kind":"number","nativeSrc":"3425:42:97","nodeType":"YulLiteral","src":"3425:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"3414:3:97","nodeType":"YulIdentifier","src":"3414:3:97"},"nativeSrc":"3414:54:97","nodeType":"YulFunctionCall","src":"3414:54:97"}],"functionName":{"name":"mstore","nativeSrc":"3402:6:97","nodeType":"YulIdentifier","src":"3402:6:97"},"nativeSrc":"3402:67:97","nodeType":"YulFunctionCall","src":"3402:67:97"},"nativeSrc":"3402:67:97","nodeType":"YulExpressionStatement","src":"3402:67:97"}]},"name":"abi_encode_address","nativeSrc":"3348:127:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3376:5:97","nodeType":"YulTypedName","src":"3376:5:97","type":""},{"name":"pos","nativeSrc":"3383:3:97","nodeType":"YulTypedName","src":"3383:3:97","type":""}],"src":"3348:127:97"},{"body":{"nativeSrc":"3649:274:97","nodeType":"YulBlock","src":"3649:274:97","statements":[{"nativeSrc":"3659:26:97","nodeType":"YulAssignment","src":"3659:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"3671:9:97","nodeType":"YulIdentifier","src":"3671:9:97"},{"kind":"number","nativeSrc":"3682:2:97","nodeType":"YulLiteral","src":"3682:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3667:3:97","nodeType":"YulIdentifier","src":"3667:3:97"},"nativeSrc":"3667:18:97","nodeType":"YulFunctionCall","src":"3667:18:97"},"variableNames":[{"name":"tail","nativeSrc":"3659:4:97","nodeType":"YulIdentifier","src":"3659:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3701:9:97","nodeType":"YulIdentifier","src":"3701:9:97"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"3732:6:97","nodeType":"YulIdentifier","src":"3732:6:97"}],"functionName":{"name":"mload","nativeSrc":"3726:5:97","nodeType":"YulIdentifier","src":"3726:5:97"},"nativeSrc":"3726:13:97","nodeType":"YulFunctionCall","src":"3726:13:97"}],"functionName":{"name":"iszero","nativeSrc":"3719:6:97","nodeType":"YulIdentifier","src":"3719:6:97"},"nativeSrc":"3719:21:97","nodeType":"YulFunctionCall","src":"3719:21:97"}],"functionName":{"name":"iszero","nativeSrc":"3712:6:97","nodeType":"YulIdentifier","src":"3712:6:97"},"nativeSrc":"3712:29:97","nodeType":"YulFunctionCall","src":"3712:29:97"}],"functionName":{"name":"mstore","nativeSrc":"3694:6:97","nodeType":"YulIdentifier","src":"3694:6:97"},"nativeSrc":"3694:48:97","nodeType":"YulFunctionCall","src":"3694:48:97"},"nativeSrc":"3694:48:97","nodeType":"YulExpressionStatement","src":"3694:48:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3762:9:97","nodeType":"YulIdentifier","src":"3762:9:97"},{"kind":"number","nativeSrc":"3773:4:97","nodeType":"YulLiteral","src":"3773:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3758:3:97","nodeType":"YulIdentifier","src":"3758:3:97"},"nativeSrc":"3758:20:97","nodeType":"YulFunctionCall","src":"3758:20:97"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"3790:6:97","nodeType":"YulIdentifier","src":"3790:6:97"},{"kind":"number","nativeSrc":"3798:4:97","nodeType":"YulLiteral","src":"3798:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3786:3:97","nodeType":"YulIdentifier","src":"3786:3:97"},"nativeSrc":"3786:17:97","nodeType":"YulFunctionCall","src":"3786:17:97"}],"functionName":{"name":"mload","nativeSrc":"3780:5:97","nodeType":"YulIdentifier","src":"3780:5:97"},"nativeSrc":"3780:24:97","nodeType":"YulFunctionCall","src":"3780:24:97"}],"functionName":{"name":"mstore","nativeSrc":"3751:6:97","nodeType":"YulIdentifier","src":"3751:6:97"},"nativeSrc":"3751:54:97","nodeType":"YulFunctionCall","src":"3751:54:97"},"nativeSrc":"3751:54:97","nodeType":"YulExpressionStatement","src":"3751:54:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3825:9:97","nodeType":"YulIdentifier","src":"3825:9:97"},{"kind":"number","nativeSrc":"3836:4:97","nodeType":"YulLiteral","src":"3836:4:97","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"3821:3:97","nodeType":"YulIdentifier","src":"3821:3:97"},"nativeSrc":"3821:20:97","nodeType":"YulFunctionCall","src":"3821:20:97"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"3857:6:97","nodeType":"YulIdentifier","src":"3857:6:97"},{"kind":"number","nativeSrc":"3865:4:97","nodeType":"YulLiteral","src":"3865:4:97","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"3853:3:97","nodeType":"YulIdentifier","src":"3853:3:97"},"nativeSrc":"3853:17:97","nodeType":"YulFunctionCall","src":"3853:17:97"}],"functionName":{"name":"mload","nativeSrc":"3847:5:97","nodeType":"YulIdentifier","src":"3847:5:97"},"nativeSrc":"3847:24:97","nodeType":"YulFunctionCall","src":"3847:24:97"},{"kind":"number","nativeSrc":"3873:42:97","nodeType":"YulLiteral","src":"3873:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"3843:3:97","nodeType":"YulIdentifier","src":"3843:3:97"},"nativeSrc":"3843:73:97","nodeType":"YulFunctionCall","src":"3843:73:97"}],"functionName":{"name":"mstore","nativeSrc":"3814:6:97","nodeType":"YulIdentifier","src":"3814:6:97"},"nativeSrc":"3814:103:97","nodeType":"YulFunctionCall","src":"3814:103:97"},"nativeSrc":"3814:103:97","nodeType":"YulExpressionStatement","src":"3814:103:97"}]},"name":"abi_encode_tuple_t_struct$_RiskParamConfig_$16320_memory_ptr__to_t_struct$_RiskParamConfig_$16320_memory_ptr__fromStack_reversed","nativeSrc":"3480:443:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3618:9:97","nodeType":"YulTypedName","src":"3618:9:97","type":""},{"name":"value0","nativeSrc":"3629:6:97","nodeType":"YulTypedName","src":"3629:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3640:4:97","nodeType":"YulTypedName","src":"3640:4:97","type":""}],"src":"3480:443:97"},{"body":{"nativeSrc":"3976:115:97","nodeType":"YulBlock","src":"3976:115:97","statements":[{"nativeSrc":"3986:29:97","nodeType":"YulAssignment","src":"3986:29:97","value":{"arguments":[{"name":"offset","nativeSrc":"4008:6:97","nodeType":"YulIdentifier","src":"4008:6:97"}],"functionName":{"name":"calldataload","nativeSrc":"3995:12:97","nodeType":"YulIdentifier","src":"3995:12:97"},"nativeSrc":"3995:20:97","nodeType":"YulFunctionCall","src":"3995:20:97"},"variableNames":[{"name":"value","nativeSrc":"3986:5:97","nodeType":"YulIdentifier","src":"3986:5:97"}]},{"body":{"nativeSrc":"4069:16:97","nodeType":"YulBlock","src":"4069:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4078:1:97","nodeType":"YulLiteral","src":"4078:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"4081:1:97","nodeType":"YulLiteral","src":"4081:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4071:6:97","nodeType":"YulIdentifier","src":"4071:6:97"},"nativeSrc":"4071:12:97","nodeType":"YulFunctionCall","src":"4071:12:97"},"nativeSrc":"4071:12:97","nodeType":"YulExpressionStatement","src":"4071:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4037:5:97","nodeType":"YulIdentifier","src":"4037:5:97"},{"arguments":[{"name":"value","nativeSrc":"4048:5:97","nodeType":"YulIdentifier","src":"4048:5:97"},{"kind":"number","nativeSrc":"4055:10:97","nodeType":"YulLiteral","src":"4055:10:97","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nativeSrc":"4044:3:97","nodeType":"YulIdentifier","src":"4044:3:97"},"nativeSrc":"4044:22:97","nodeType":"YulFunctionCall","src":"4044:22:97"}],"functionName":{"name":"eq","nativeSrc":"4034:2:97","nodeType":"YulIdentifier","src":"4034:2:97"},"nativeSrc":"4034:33:97","nodeType":"YulFunctionCall","src":"4034:33:97"}],"functionName":{"name":"iszero","nativeSrc":"4027:6:97","nodeType":"YulIdentifier","src":"4027:6:97"},"nativeSrc":"4027:41:97","nodeType":"YulFunctionCall","src":"4027:41:97"},"nativeSrc":"4024:61:97","nodeType":"YulIf","src":"4024:61:97"}]},"name":"abi_decode_uint32","nativeSrc":"3928:163:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3955:6:97","nodeType":"YulTypedName","src":"3955:6:97","type":""}],"returnVariables":[{"name":"value","nativeSrc":"3966:5:97","nodeType":"YulTypedName","src":"3966:5:97","type":""}],"src":"3928:163:97"},{"body":{"nativeSrc":"4182:166:97","nodeType":"YulBlock","src":"4182:166:97","statements":[{"body":{"nativeSrc":"4228:16:97","nodeType":"YulBlock","src":"4228:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4237:1:97","nodeType":"YulLiteral","src":"4237:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"4240:1:97","nodeType":"YulLiteral","src":"4240:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4230:6:97","nodeType":"YulIdentifier","src":"4230:6:97"},"nativeSrc":"4230:12:97","nodeType":"YulFunctionCall","src":"4230:12:97"},"nativeSrc":"4230:12:97","nodeType":"YulExpressionStatement","src":"4230:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4203:7:97","nodeType":"YulIdentifier","src":"4203:7:97"},{"name":"headStart","nativeSrc":"4212:9:97","nodeType":"YulIdentifier","src":"4212:9:97"}],"functionName":{"name":"sub","nativeSrc":"4199:3:97","nodeType":"YulIdentifier","src":"4199:3:97"},"nativeSrc":"4199:23:97","nodeType":"YulFunctionCall","src":"4199:23:97"},{"kind":"number","nativeSrc":"4224:2:97","nodeType":"YulLiteral","src":"4224:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"4195:3:97","nodeType":"YulIdentifier","src":"4195:3:97"},"nativeSrc":"4195:32:97","nodeType":"YulFunctionCall","src":"4195:32:97"},"nativeSrc":"4192:52:97","nodeType":"YulIf","src":"4192:52:97"},{"nativeSrc":"4253:38:97","nodeType":"YulAssignment","src":"4253:38:97","value":{"arguments":[{"name":"headStart","nativeSrc":"4281:9:97","nodeType":"YulIdentifier","src":"4281:9:97"}],"functionName":{"name":"abi_decode_uint32","nativeSrc":"4263:17:97","nodeType":"YulIdentifier","src":"4263:17:97"},"nativeSrc":"4263:28:97","nodeType":"YulFunctionCall","src":"4263:28:97"},"variableNames":[{"name":"value0","nativeSrc":"4253:6:97","nodeType":"YulIdentifier","src":"4253:6:97"}]},{"nativeSrc":"4300:42:97","nodeType":"YulAssignment","src":"4300:42:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4327:9:97","nodeType":"YulIdentifier","src":"4327:9:97"},{"kind":"number","nativeSrc":"4338:2:97","nodeType":"YulLiteral","src":"4338:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4323:3:97","nodeType":"YulIdentifier","src":"4323:3:97"},"nativeSrc":"4323:18:97","nodeType":"YulFunctionCall","src":"4323:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"4310:12:97","nodeType":"YulIdentifier","src":"4310:12:97"},"nativeSrc":"4310:32:97","nodeType":"YulFunctionCall","src":"4310:32:97"},"variableNames":[{"name":"value1","nativeSrc":"4300:6:97","nodeType":"YulIdentifier","src":"4300:6:97"}]}]},"name":"abi_decode_tuple_t_uint32t_bytes32","nativeSrc":"4096:252:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4140:9:97","nodeType":"YulTypedName","src":"4140:9:97","type":""},{"name":"dataEnd","nativeSrc":"4151:7:97","nodeType":"YulTypedName","src":"4151:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4163:6:97","nodeType":"YulTypedName","src":"4163:6:97","type":""},{"name":"value1","nativeSrc":"4171:6:97","nodeType":"YulTypedName","src":"4171:6:97","type":""}],"src":"4096:252:97"},{"body":{"nativeSrc":"4395:76:97","nodeType":"YulBlock","src":"4395:76:97","statements":[{"body":{"nativeSrc":"4449:16:97","nodeType":"YulBlock","src":"4449:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4458:1:97","nodeType":"YulLiteral","src":"4458:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"4461:1:97","nodeType":"YulLiteral","src":"4461:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4451:6:97","nodeType":"YulIdentifier","src":"4451:6:97"},"nativeSrc":"4451:12:97","nodeType":"YulFunctionCall","src":"4451:12:97"},"nativeSrc":"4451:12:97","nodeType":"YulExpressionStatement","src":"4451:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4418:5:97","nodeType":"YulIdentifier","src":"4418:5:97"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4439:5:97","nodeType":"YulIdentifier","src":"4439:5:97"}],"functionName":{"name":"iszero","nativeSrc":"4432:6:97","nodeType":"YulIdentifier","src":"4432:6:97"},"nativeSrc":"4432:13:97","nodeType":"YulFunctionCall","src":"4432:13:97"}],"functionName":{"name":"iszero","nativeSrc":"4425:6:97","nodeType":"YulIdentifier","src":"4425:6:97"},"nativeSrc":"4425:21:97","nodeType":"YulFunctionCall","src":"4425:21:97"}],"functionName":{"name":"eq","nativeSrc":"4415:2:97","nodeType":"YulIdentifier","src":"4415:2:97"},"nativeSrc":"4415:32:97","nodeType":"YulFunctionCall","src":"4415:32:97"}],"functionName":{"name":"iszero","nativeSrc":"4408:6:97","nodeType":"YulIdentifier","src":"4408:6:97"},"nativeSrc":"4408:40:97","nodeType":"YulFunctionCall","src":"4408:40:97"},"nativeSrc":"4405:60:97","nodeType":"YulIf","src":"4405:60:97"}]},"name":"validator_revert_bool","nativeSrc":"4353:118:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4384:5:97","nodeType":"YulTypedName","src":"4384:5:97","type":""}],"src":"4353:118:97"},{"body":{"nativeSrc":"4560:298:97","nodeType":"YulBlock","src":"4560:298:97","statements":[{"body":{"nativeSrc":"4606:16:97","nodeType":"YulBlock","src":"4606:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4615:1:97","nodeType":"YulLiteral","src":"4615:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"4618:1:97","nodeType":"YulLiteral","src":"4618:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4608:6:97","nodeType":"YulIdentifier","src":"4608:6:97"},"nativeSrc":"4608:12:97","nodeType":"YulFunctionCall","src":"4608:12:97"},"nativeSrc":"4608:12:97","nodeType":"YulExpressionStatement","src":"4608:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4581:7:97","nodeType":"YulIdentifier","src":"4581:7:97"},{"name":"headStart","nativeSrc":"4590:9:97","nodeType":"YulIdentifier","src":"4590:9:97"}],"functionName":{"name":"sub","nativeSrc":"4577:3:97","nodeType":"YulIdentifier","src":"4577:3:97"},"nativeSrc":"4577:23:97","nodeType":"YulFunctionCall","src":"4577:23:97"},{"kind":"number","nativeSrc":"4602:2:97","nodeType":"YulLiteral","src":"4602:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"4573:3:97","nodeType":"YulIdentifier","src":"4573:3:97"},"nativeSrc":"4573:32:97","nodeType":"YulFunctionCall","src":"4573:32:97"},"nativeSrc":"4570:52:97","nodeType":"YulIf","src":"4570:52:97"},{"nativeSrc":"4631:36:97","nodeType":"YulVariableDeclaration","src":"4631:36:97","value":{"arguments":[{"name":"headStart","nativeSrc":"4657:9:97","nodeType":"YulIdentifier","src":"4657:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"4644:12:97","nodeType":"YulIdentifier","src":"4644:12:97"},"nativeSrc":"4644:23:97","nodeType":"YulFunctionCall","src":"4644:23:97"},"variables":[{"name":"value","nativeSrc":"4635:5:97","nodeType":"YulTypedName","src":"4635:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"4701:5:97","nodeType":"YulIdentifier","src":"4701:5:97"}],"functionName":{"name":"validator_revert_address","nativeSrc":"4676:24:97","nodeType":"YulIdentifier","src":"4676:24:97"},"nativeSrc":"4676:31:97","nodeType":"YulFunctionCall","src":"4676:31:97"},"nativeSrc":"4676:31:97","nodeType":"YulExpressionStatement","src":"4676:31:97"},{"nativeSrc":"4716:15:97","nodeType":"YulAssignment","src":"4716:15:97","value":{"name":"value","nativeSrc":"4726:5:97","nodeType":"YulIdentifier","src":"4726:5:97"},"variableNames":[{"name":"value0","nativeSrc":"4716:6:97","nodeType":"YulIdentifier","src":"4716:6:97"}]},{"nativeSrc":"4740:47:97","nodeType":"YulVariableDeclaration","src":"4740:47:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4772:9:97","nodeType":"YulIdentifier","src":"4772:9:97"},{"kind":"number","nativeSrc":"4783:2:97","nodeType":"YulLiteral","src":"4783:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4768:3:97","nodeType":"YulIdentifier","src":"4768:3:97"},"nativeSrc":"4768:18:97","nodeType":"YulFunctionCall","src":"4768:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"4755:12:97","nodeType":"YulIdentifier","src":"4755:12:97"},"nativeSrc":"4755:32:97","nodeType":"YulFunctionCall","src":"4755:32:97"},"variables":[{"name":"value_1","nativeSrc":"4744:7:97","nodeType":"YulTypedName","src":"4744:7:97","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"4818:7:97","nodeType":"YulIdentifier","src":"4818:7:97"}],"functionName":{"name":"validator_revert_bool","nativeSrc":"4796:21:97","nodeType":"YulIdentifier","src":"4796:21:97"},"nativeSrc":"4796:30:97","nodeType":"YulFunctionCall","src":"4796:30:97"},"nativeSrc":"4796:30:97","nodeType":"YulExpressionStatement","src":"4796:30:97"},{"nativeSrc":"4835:17:97","nodeType":"YulAssignment","src":"4835:17:97","value":{"name":"value_1","nativeSrc":"4845:7:97","nodeType":"YulIdentifier","src":"4845:7:97"},"variableNames":[{"name":"value1","nativeSrc":"4835:6:97","nodeType":"YulIdentifier","src":"4835:6:97"}]}]},"name":"abi_decode_tuple_t_addresst_bool","nativeSrc":"4476:382:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4518:9:97","nodeType":"YulTypedName","src":"4518:9:97","type":""},{"name":"dataEnd","nativeSrc":"4529:7:97","nodeType":"YulTypedName","src":"4529:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4541:6:97","nodeType":"YulTypedName","src":"4541:6:97","type":""},{"name":"value1","nativeSrc":"4549:6:97","nodeType":"YulTypedName","src":"4549:6:97","type":""}],"src":"4476:382:97"},{"body":{"nativeSrc":"4967:435:97","nodeType":"YulBlock","src":"4967:435:97","statements":[{"body":{"nativeSrc":"5013:16:97","nodeType":"YulBlock","src":"5013:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5022:1:97","nodeType":"YulLiteral","src":"5022:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"5025:1:97","nodeType":"YulLiteral","src":"5025:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5015:6:97","nodeType":"YulIdentifier","src":"5015:6:97"},"nativeSrc":"5015:12:97","nodeType":"YulFunctionCall","src":"5015:12:97"},"nativeSrc":"5015:12:97","nodeType":"YulExpressionStatement","src":"5015:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4988:7:97","nodeType":"YulIdentifier","src":"4988:7:97"},{"name":"headStart","nativeSrc":"4997:9:97","nodeType":"YulIdentifier","src":"4997:9:97"}],"functionName":{"name":"sub","nativeSrc":"4984:3:97","nodeType":"YulIdentifier","src":"4984:3:97"},"nativeSrc":"4984:23:97","nodeType":"YulFunctionCall","src":"4984:23:97"},{"kind":"number","nativeSrc":"5009:2:97","nodeType":"YulLiteral","src":"5009:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"4980:3:97","nodeType":"YulIdentifier","src":"4980:3:97"},"nativeSrc":"4980:32:97","nodeType":"YulFunctionCall","src":"4980:32:97"},"nativeSrc":"4977:52:97","nodeType":"YulIf","src":"4977:52:97"},{"nativeSrc":"5038:37:97","nodeType":"YulVariableDeclaration","src":"5038:37:97","value":{"arguments":[{"name":"headStart","nativeSrc":"5065:9:97","nodeType":"YulIdentifier","src":"5065:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"5052:12:97","nodeType":"YulIdentifier","src":"5052:12:97"},"nativeSrc":"5052:23:97","nodeType":"YulFunctionCall","src":"5052:23:97"},"variables":[{"name":"offset","nativeSrc":"5042:6:97","nodeType":"YulTypedName","src":"5042:6:97","type":""}]},{"body":{"nativeSrc":"5118:16:97","nodeType":"YulBlock","src":"5118:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5127:1:97","nodeType":"YulLiteral","src":"5127:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"5130:1:97","nodeType":"YulLiteral","src":"5130:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5120:6:97","nodeType":"YulIdentifier","src":"5120:6:97"},"nativeSrc":"5120:12:97","nodeType":"YulFunctionCall","src":"5120:12:97"},"nativeSrc":"5120:12:97","nodeType":"YulExpressionStatement","src":"5120:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"5090:6:97","nodeType":"YulIdentifier","src":"5090:6:97"},{"kind":"number","nativeSrc":"5098:18:97","nodeType":"YulLiteral","src":"5098:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5087:2:97","nodeType":"YulIdentifier","src":"5087:2:97"},"nativeSrc":"5087:30:97","nodeType":"YulFunctionCall","src":"5087:30:97"},"nativeSrc":"5084:50:97","nodeType":"YulIf","src":"5084:50:97"},{"nativeSrc":"5143:84:97","nodeType":"YulVariableDeclaration","src":"5143:84:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5199:9:97","nodeType":"YulIdentifier","src":"5199:9:97"},{"name":"offset","nativeSrc":"5210:6:97","nodeType":"YulIdentifier","src":"5210:6:97"}],"functionName":{"name":"add","nativeSrc":"5195:3:97","nodeType":"YulIdentifier","src":"5195:3:97"},"nativeSrc":"5195:22:97","nodeType":"YulFunctionCall","src":"5195:22:97"},{"name":"dataEnd","nativeSrc":"5219:7:97","nodeType":"YulIdentifier","src":"5219:7:97"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"5169:25:97","nodeType":"YulIdentifier","src":"5169:25:97"},"nativeSrc":"5169:58:97","nodeType":"YulFunctionCall","src":"5169:58:97"},"variables":[{"name":"value0_1","nativeSrc":"5147:8:97","nodeType":"YulTypedName","src":"5147:8:97","type":""},{"name":"value1_1","nativeSrc":"5157:8:97","nodeType":"YulTypedName","src":"5157:8:97","type":""}]},{"nativeSrc":"5236:18:97","nodeType":"YulAssignment","src":"5236:18:97","value":{"name":"value0_1","nativeSrc":"5246:8:97","nodeType":"YulIdentifier","src":"5246:8:97"},"variableNames":[{"name":"value0","nativeSrc":"5236:6:97","nodeType":"YulIdentifier","src":"5236:6:97"}]},{"nativeSrc":"5263:18:97","nodeType":"YulAssignment","src":"5263:18:97","value":{"name":"value1_1","nativeSrc":"5273:8:97","nodeType":"YulIdentifier","src":"5273:8:97"},"variableNames":[{"name":"value1","nativeSrc":"5263:6:97","nodeType":"YulIdentifier","src":"5263:6:97"}]},{"nativeSrc":"5290:45:97","nodeType":"YulVariableDeclaration","src":"5290:45:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5320:9:97","nodeType":"YulIdentifier","src":"5320:9:97"},{"kind":"number","nativeSrc":"5331:2:97","nodeType":"YulLiteral","src":"5331:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5316:3:97","nodeType":"YulIdentifier","src":"5316:3:97"},"nativeSrc":"5316:18:97","nodeType":"YulFunctionCall","src":"5316:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"5303:12:97","nodeType":"YulIdentifier","src":"5303:12:97"},"nativeSrc":"5303:32:97","nodeType":"YulFunctionCall","src":"5303:32:97"},"variables":[{"name":"value","nativeSrc":"5294:5:97","nodeType":"YulTypedName","src":"5294:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"5366:5:97","nodeType":"YulIdentifier","src":"5366:5:97"}],"functionName":{"name":"validator_revert_bool","nativeSrc":"5344:21:97","nodeType":"YulIdentifier","src":"5344:21:97"},"nativeSrc":"5344:28:97","nodeType":"YulFunctionCall","src":"5344:28:97"},"nativeSrc":"5344:28:97","nodeType":"YulExpressionStatement","src":"5344:28:97"},{"nativeSrc":"5381:15:97","nodeType":"YulAssignment","src":"5381:15:97","value":{"name":"value","nativeSrc":"5391:5:97","nodeType":"YulIdentifier","src":"5391:5:97"},"variableNames":[{"name":"value2","nativeSrc":"5381:6:97","nodeType":"YulIdentifier","src":"5381:6:97"}]}]},"name":"abi_decode_tuple_t_string_calldata_ptrt_bool","nativeSrc":"4863:539:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4917:9:97","nodeType":"YulTypedName","src":"4917:9:97","type":""},{"name":"dataEnd","nativeSrc":"4928:7:97","nodeType":"YulTypedName","src":"4928:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4940:6:97","nodeType":"YulTypedName","src":"4940:6:97","type":""},{"name":"value1","nativeSrc":"4948:6:97","nodeType":"YulTypedName","src":"4948:6:97","type":""},{"name":"value2","nativeSrc":"4956:6:97","nodeType":"YulTypedName","src":"4956:6:97","type":""}],"src":"4863:539:97"},{"body":{"nativeSrc":"5494:301:97","nodeType":"YulBlock","src":"5494:301:97","statements":[{"body":{"nativeSrc":"5540:16:97","nodeType":"YulBlock","src":"5540:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5549:1:97","nodeType":"YulLiteral","src":"5549:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"5552:1:97","nodeType":"YulLiteral","src":"5552:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5542:6:97","nodeType":"YulIdentifier","src":"5542:6:97"},"nativeSrc":"5542:12:97","nodeType":"YulFunctionCall","src":"5542:12:97"},"nativeSrc":"5542:12:97","nodeType":"YulExpressionStatement","src":"5542:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5515:7:97","nodeType":"YulIdentifier","src":"5515:7:97"},{"name":"headStart","nativeSrc":"5524:9:97","nodeType":"YulIdentifier","src":"5524:9:97"}],"functionName":{"name":"sub","nativeSrc":"5511:3:97","nodeType":"YulIdentifier","src":"5511:3:97"},"nativeSrc":"5511:23:97","nodeType":"YulFunctionCall","src":"5511:23:97"},{"kind":"number","nativeSrc":"5536:2:97","nodeType":"YulLiteral","src":"5536:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"5507:3:97","nodeType":"YulIdentifier","src":"5507:3:97"},"nativeSrc":"5507:32:97","nodeType":"YulFunctionCall","src":"5507:32:97"},"nativeSrc":"5504:52:97","nodeType":"YulIf","src":"5504:52:97"},{"nativeSrc":"5565:36:97","nodeType":"YulVariableDeclaration","src":"5565:36:97","value":{"arguments":[{"name":"headStart","nativeSrc":"5591:9:97","nodeType":"YulIdentifier","src":"5591:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"5578:12:97","nodeType":"YulIdentifier","src":"5578:12:97"},"nativeSrc":"5578:23:97","nodeType":"YulFunctionCall","src":"5578:23:97"},"variables":[{"name":"value","nativeSrc":"5569:5:97","nodeType":"YulTypedName","src":"5569:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"5635:5:97","nodeType":"YulIdentifier","src":"5635:5:97"}],"functionName":{"name":"validator_revert_address","nativeSrc":"5610:24:97","nodeType":"YulIdentifier","src":"5610:24:97"},"nativeSrc":"5610:31:97","nodeType":"YulFunctionCall","src":"5610:31:97"},"nativeSrc":"5610:31:97","nodeType":"YulExpressionStatement","src":"5610:31:97"},{"nativeSrc":"5650:15:97","nodeType":"YulAssignment","src":"5650:15:97","value":{"name":"value","nativeSrc":"5660:5:97","nodeType":"YulIdentifier","src":"5660:5:97"},"variableNames":[{"name":"value0","nativeSrc":"5650:6:97","nodeType":"YulIdentifier","src":"5650:6:97"}]},{"nativeSrc":"5674:47:97","nodeType":"YulVariableDeclaration","src":"5674:47:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5706:9:97","nodeType":"YulIdentifier","src":"5706:9:97"},{"kind":"number","nativeSrc":"5717:2:97","nodeType":"YulLiteral","src":"5717:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5702:3:97","nodeType":"YulIdentifier","src":"5702:3:97"},"nativeSrc":"5702:18:97","nodeType":"YulFunctionCall","src":"5702:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"5689:12:97","nodeType":"YulIdentifier","src":"5689:12:97"},"nativeSrc":"5689:32:97","nodeType":"YulFunctionCall","src":"5689:32:97"},"variables":[{"name":"value_1","nativeSrc":"5678:7:97","nodeType":"YulTypedName","src":"5678:7:97","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"5755:7:97","nodeType":"YulIdentifier","src":"5755:7:97"}],"functionName":{"name":"validator_revert_address","nativeSrc":"5730:24:97","nodeType":"YulIdentifier","src":"5730:24:97"},"nativeSrc":"5730:33:97","nodeType":"YulFunctionCall","src":"5730:33:97"},"nativeSrc":"5730:33:97","nodeType":"YulExpressionStatement","src":"5730:33:97"},{"nativeSrc":"5772:17:97","nodeType":"YulAssignment","src":"5772:17:97","value":{"name":"value_1","nativeSrc":"5782:7:97","nodeType":"YulIdentifier","src":"5782:7:97"},"variableNames":[{"name":"value1","nativeSrc":"5772:6:97","nodeType":"YulIdentifier","src":"5772:6:97"}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"5407:388:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5452:9:97","nodeType":"YulTypedName","src":"5452:9:97","type":""},{"name":"dataEnd","nativeSrc":"5463:7:97","nodeType":"YulTypedName","src":"5463:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5475:6:97","nodeType":"YulTypedName","src":"5475:6:97","type":""},{"name":"value1","nativeSrc":"5483:6:97","nodeType":"YulTypedName","src":"5483:6:97","type":""}],"src":"5407:388:97"},{"body":{"nativeSrc":"5843:51:97","nodeType":"YulBlock","src":"5843:51:97","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5860:3:97","nodeType":"YulIdentifier","src":"5860:3:97"},{"arguments":[{"name":"value","nativeSrc":"5869:5:97","nodeType":"YulIdentifier","src":"5869:5:97"},{"kind":"number","nativeSrc":"5876:10:97","nodeType":"YulLiteral","src":"5876:10:97","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nativeSrc":"5865:3:97","nodeType":"YulIdentifier","src":"5865:3:97"},"nativeSrc":"5865:22:97","nodeType":"YulFunctionCall","src":"5865:22:97"}],"functionName":{"name":"mstore","nativeSrc":"5853:6:97","nodeType":"YulIdentifier","src":"5853:6:97"},"nativeSrc":"5853:35:97","nodeType":"YulFunctionCall","src":"5853:35:97"},"nativeSrc":"5853:35:97","nodeType":"YulExpressionStatement","src":"5853:35:97"}]},"name":"abi_encode_uint32","nativeSrc":"5800:94:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5827:5:97","nodeType":"YulTypedName","src":"5827:5:97","type":""},{"name":"pos","nativeSrc":"5834:3:97","nodeType":"YulTypedName","src":"5834:3:97","type":""}],"src":"5800:94:97"},{"body":{"nativeSrc":"5998:93:97","nodeType":"YulBlock","src":"5998:93:97","statements":[{"nativeSrc":"6008:26:97","nodeType":"YulAssignment","src":"6008:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"6020:9:97","nodeType":"YulIdentifier","src":"6020:9:97"},{"kind":"number","nativeSrc":"6031:2:97","nodeType":"YulLiteral","src":"6031:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6016:3:97","nodeType":"YulIdentifier","src":"6016:3:97"},"nativeSrc":"6016:18:97","nodeType":"YulFunctionCall","src":"6016:18:97"},"variableNames":[{"name":"tail","nativeSrc":"6008:4:97","nodeType":"YulIdentifier","src":"6008:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6050:9:97","nodeType":"YulIdentifier","src":"6050:9:97"},{"arguments":[{"name":"value0","nativeSrc":"6065:6:97","nodeType":"YulIdentifier","src":"6065:6:97"},{"kind":"number","nativeSrc":"6073:10:97","nodeType":"YulLiteral","src":"6073:10:97","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nativeSrc":"6061:3:97","nodeType":"YulIdentifier","src":"6061:3:97"},"nativeSrc":"6061:23:97","nodeType":"YulFunctionCall","src":"6061:23:97"}],"functionName":{"name":"mstore","nativeSrc":"6043:6:97","nodeType":"YulIdentifier","src":"6043:6:97"},"nativeSrc":"6043:42:97","nodeType":"YulFunctionCall","src":"6043:42:97"},"nativeSrc":"6043:42:97","nodeType":"YulExpressionStatement","src":"6043:42:97"}]},"name":"abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed","nativeSrc":"5899:192:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5967:9:97","nodeType":"YulTypedName","src":"5967:9:97","type":""},{"name":"value0","nativeSrc":"5978:6:97","nodeType":"YulTypedName","src":"5978:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5989:4:97","nodeType":"YulTypedName","src":"5989:4:97","type":""}],"src":"5899:192:97"},{"body":{"nativeSrc":"6226:125:97","nodeType":"YulBlock","src":"6226:125:97","statements":[{"nativeSrc":"6236:26:97","nodeType":"YulAssignment","src":"6236:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"6248:9:97","nodeType":"YulIdentifier","src":"6248:9:97"},{"kind":"number","nativeSrc":"6259:2:97","nodeType":"YulLiteral","src":"6259:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6244:3:97","nodeType":"YulIdentifier","src":"6244:3:97"},"nativeSrc":"6244:18:97","nodeType":"YulFunctionCall","src":"6244:18:97"},"variableNames":[{"name":"tail","nativeSrc":"6236:4:97","nodeType":"YulIdentifier","src":"6236:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6278:9:97","nodeType":"YulIdentifier","src":"6278:9:97"},{"arguments":[{"name":"value0","nativeSrc":"6293:6:97","nodeType":"YulIdentifier","src":"6293:6:97"},{"kind":"number","nativeSrc":"6301:42:97","nodeType":"YulLiteral","src":"6301:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"6289:3:97","nodeType":"YulIdentifier","src":"6289:3:97"},"nativeSrc":"6289:55:97","nodeType":"YulFunctionCall","src":"6289:55:97"}],"functionName":{"name":"mstore","nativeSrc":"6271:6:97","nodeType":"YulIdentifier","src":"6271:6:97"},"nativeSrc":"6271:74:97","nodeType":"YulFunctionCall","src":"6271:74:97"},"nativeSrc":"6271:74:97","nodeType":"YulExpressionStatement","src":"6271:74:97"}]},"name":"abi_encode_tuple_t_contract$_ILayerZeroEndpointV2_$1048__to_t_address__fromStack_reversed","nativeSrc":"6096:255:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6195:9:97","nodeType":"YulTypedName","src":"6195:9:97","type":""},{"name":"value0","nativeSrc":"6206:6:97","nodeType":"YulTypedName","src":"6206:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6217:4:97","nodeType":"YulTypedName","src":"6217:4:97","type":""}],"src":"6096:255:97"},{"body":{"nativeSrc":"6426:110:97","nodeType":"YulBlock","src":"6426:110:97","statements":[{"body":{"nativeSrc":"6472:16:97","nodeType":"YulBlock","src":"6472:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6481:1:97","nodeType":"YulLiteral","src":"6481:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"6484:1:97","nodeType":"YulLiteral","src":"6484:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6474:6:97","nodeType":"YulIdentifier","src":"6474:6:97"},"nativeSrc":"6474:12:97","nodeType":"YulFunctionCall","src":"6474:12:97"},"nativeSrc":"6474:12:97","nodeType":"YulExpressionStatement","src":"6474:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6447:7:97","nodeType":"YulIdentifier","src":"6447:7:97"},{"name":"headStart","nativeSrc":"6456:9:97","nodeType":"YulIdentifier","src":"6456:9:97"}],"functionName":{"name":"sub","nativeSrc":"6443:3:97","nodeType":"YulIdentifier","src":"6443:3:97"},"nativeSrc":"6443:23:97","nodeType":"YulFunctionCall","src":"6443:23:97"},{"kind":"number","nativeSrc":"6468:2:97","nodeType":"YulLiteral","src":"6468:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6439:3:97","nodeType":"YulIdentifier","src":"6439:3:97"},"nativeSrc":"6439:32:97","nodeType":"YulFunctionCall","src":"6439:32:97"},"nativeSrc":"6436:52:97","nodeType":"YulIf","src":"6436:52:97"},{"nativeSrc":"6497:33:97","nodeType":"YulAssignment","src":"6497:33:97","value":{"arguments":[{"name":"headStart","nativeSrc":"6520:9:97","nodeType":"YulIdentifier","src":"6520:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"6507:12:97","nodeType":"YulIdentifier","src":"6507:12:97"},"nativeSrc":"6507:23:97","nodeType":"YulFunctionCall","src":"6507:23:97"},"variableNames":[{"name":"value0","nativeSrc":"6497:6:97","nodeType":"YulIdentifier","src":"6497:6:97"}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"6356:180:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6392:9:97","nodeType":"YulTypedName","src":"6392:9:97","type":""},{"name":"dataEnd","nativeSrc":"6403:7:97","nodeType":"YulTypedName","src":"6403:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6415:6:97","nodeType":"YulTypedName","src":"6415:6:97","type":""}],"src":"6356:180:97"},{"body":{"nativeSrc":"6640:101:97","nodeType":"YulBlock","src":"6640:101:97","statements":[{"nativeSrc":"6650:26:97","nodeType":"YulAssignment","src":"6650:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"6662:9:97","nodeType":"YulIdentifier","src":"6662:9:97"},{"kind":"number","nativeSrc":"6673:2:97","nodeType":"YulLiteral","src":"6673:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6658:3:97","nodeType":"YulIdentifier","src":"6658:3:97"},"nativeSrc":"6658:18:97","nodeType":"YulFunctionCall","src":"6658:18:97"},"variableNames":[{"name":"tail","nativeSrc":"6650:4:97","nodeType":"YulIdentifier","src":"6650:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6692:9:97","nodeType":"YulIdentifier","src":"6692:9:97"},{"arguments":[{"name":"value0","nativeSrc":"6707:6:97","nodeType":"YulIdentifier","src":"6707:6:97"},{"kind":"number","nativeSrc":"6715:18:97","nodeType":"YulLiteral","src":"6715:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"6703:3:97","nodeType":"YulIdentifier","src":"6703:3:97"},"nativeSrc":"6703:31:97","nodeType":"YulFunctionCall","src":"6703:31:97"}],"functionName":{"name":"mstore","nativeSrc":"6685:6:97","nodeType":"YulIdentifier","src":"6685:6:97"},"nativeSrc":"6685:50:97","nodeType":"YulFunctionCall","src":"6685:50:97"},"nativeSrc":"6685:50:97","nodeType":"YulExpressionStatement","src":"6685:50:97"}]},"name":"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed","nativeSrc":"6541:200:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6609:9:97","nodeType":"YulTypedName","src":"6609:9:97","type":""},{"name":"value0","nativeSrc":"6620:6:97","nodeType":"YulTypedName","src":"6620:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6631:4:97","nodeType":"YulTypedName","src":"6631:4:97","type":""}],"src":"6541:200:97"},{"body":{"nativeSrc":"6894:521:97","nodeType":"YulBlock","src":"6894:521:97","statements":[{"body":{"nativeSrc":"6941:16:97","nodeType":"YulBlock","src":"6941:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6950:1:97","nodeType":"YulLiteral","src":"6950:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"6953:1:97","nodeType":"YulLiteral","src":"6953:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6943:6:97","nodeType":"YulIdentifier","src":"6943:6:97"},"nativeSrc":"6943:12:97","nodeType":"YulFunctionCall","src":"6943:12:97"},"nativeSrc":"6943:12:97","nodeType":"YulExpressionStatement","src":"6943:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6915:7:97","nodeType":"YulIdentifier","src":"6915:7:97"},{"name":"headStart","nativeSrc":"6924:9:97","nodeType":"YulIdentifier","src":"6924:9:97"}],"functionName":{"name":"sub","nativeSrc":"6911:3:97","nodeType":"YulIdentifier","src":"6911:3:97"},"nativeSrc":"6911:23:97","nodeType":"YulFunctionCall","src":"6911:23:97"},{"kind":"number","nativeSrc":"6936:3:97","nodeType":"YulLiteral","src":"6936:3:97","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"6907:3:97","nodeType":"YulIdentifier","src":"6907:3:97"},"nativeSrc":"6907:33:97","nodeType":"YulFunctionCall","src":"6907:33:97"},"nativeSrc":"6904:53:97","nodeType":"YulIf","src":"6904:53:97"},{"nativeSrc":"6966:63:97","nodeType":"YulAssignment","src":"6966:63:97","value":{"arguments":[{"name":"headStart","nativeSrc":"7010:9:97","nodeType":"YulIdentifier","src":"7010:9:97"},{"name":"dataEnd","nativeSrc":"7021:7:97","nodeType":"YulIdentifier","src":"7021:7:97"}],"functionName":{"name":"abi_decode_struct_Origin_calldata","nativeSrc":"6976:33:97","nodeType":"YulIdentifier","src":"6976:33:97"},"nativeSrc":"6976:53:97","nodeType":"YulFunctionCall","src":"6976:53:97"},"variableNames":[{"name":"value0","nativeSrc":"6966:6:97","nodeType":"YulIdentifier","src":"6966:6:97"}]},{"nativeSrc":"7038:46:97","nodeType":"YulVariableDeclaration","src":"7038:46:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7069:9:97","nodeType":"YulIdentifier","src":"7069:9:97"},{"kind":"number","nativeSrc":"7080:2:97","nodeType":"YulLiteral","src":"7080:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"7065:3:97","nodeType":"YulIdentifier","src":"7065:3:97"},"nativeSrc":"7065:18:97","nodeType":"YulFunctionCall","src":"7065:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"7052:12:97","nodeType":"YulIdentifier","src":"7052:12:97"},"nativeSrc":"7052:32:97","nodeType":"YulFunctionCall","src":"7052:32:97"},"variables":[{"name":"offset","nativeSrc":"7042:6:97","nodeType":"YulTypedName","src":"7042:6:97","type":""}]},{"body":{"nativeSrc":"7127:16:97","nodeType":"YulBlock","src":"7127:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7136:1:97","nodeType":"YulLiteral","src":"7136:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"7139:1:97","nodeType":"YulLiteral","src":"7139:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7129:6:97","nodeType":"YulIdentifier","src":"7129:6:97"},"nativeSrc":"7129:12:97","nodeType":"YulFunctionCall","src":"7129:12:97"},"nativeSrc":"7129:12:97","nodeType":"YulExpressionStatement","src":"7129:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"7099:6:97","nodeType":"YulIdentifier","src":"7099:6:97"},{"kind":"number","nativeSrc":"7107:18:97","nodeType":"YulLiteral","src":"7107:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7096:2:97","nodeType":"YulIdentifier","src":"7096:2:97"},"nativeSrc":"7096:30:97","nodeType":"YulFunctionCall","src":"7096:30:97"},"nativeSrc":"7093:50:97","nodeType":"YulIf","src":"7093:50:97"},{"nativeSrc":"7152:84:97","nodeType":"YulVariableDeclaration","src":"7152:84:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7208:9:97","nodeType":"YulIdentifier","src":"7208:9:97"},{"name":"offset","nativeSrc":"7219:6:97","nodeType":"YulIdentifier","src":"7219:6:97"}],"functionName":{"name":"add","nativeSrc":"7204:3:97","nodeType":"YulIdentifier","src":"7204:3:97"},"nativeSrc":"7204:22:97","nodeType":"YulFunctionCall","src":"7204:22:97"},{"name":"dataEnd","nativeSrc":"7228:7:97","nodeType":"YulIdentifier","src":"7228:7:97"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"7178:25:97","nodeType":"YulIdentifier","src":"7178:25:97"},"nativeSrc":"7178:58:97","nodeType":"YulFunctionCall","src":"7178:58:97"},"variables":[{"name":"value1_1","nativeSrc":"7156:8:97","nodeType":"YulTypedName","src":"7156:8:97","type":""},{"name":"value2_1","nativeSrc":"7166:8:97","nodeType":"YulTypedName","src":"7166:8:97","type":""}]},{"nativeSrc":"7245:18:97","nodeType":"YulAssignment","src":"7245:18:97","value":{"name":"value1_1","nativeSrc":"7255:8:97","nodeType":"YulIdentifier","src":"7255:8:97"},"variableNames":[{"name":"value1","nativeSrc":"7245:6:97","nodeType":"YulIdentifier","src":"7245:6:97"}]},{"nativeSrc":"7272:18:97","nodeType":"YulAssignment","src":"7272:18:97","value":{"name":"value2_1","nativeSrc":"7282:8:97","nodeType":"YulIdentifier","src":"7282:8:97"},"variableNames":[{"name":"value2","nativeSrc":"7272:6:97","nodeType":"YulIdentifier","src":"7272:6:97"}]},{"nativeSrc":"7299:46:97","nodeType":"YulVariableDeclaration","src":"7299:46:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7329:9:97","nodeType":"YulIdentifier","src":"7329:9:97"},{"kind":"number","nativeSrc":"7340:3:97","nodeType":"YulLiteral","src":"7340:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"7325:3:97","nodeType":"YulIdentifier","src":"7325:3:97"},"nativeSrc":"7325:19:97","nodeType":"YulFunctionCall","src":"7325:19:97"}],"functionName":{"name":"calldataload","nativeSrc":"7312:12:97","nodeType":"YulIdentifier","src":"7312:12:97"},"nativeSrc":"7312:33:97","nodeType":"YulFunctionCall","src":"7312:33:97"},"variables":[{"name":"value","nativeSrc":"7303:5:97","nodeType":"YulTypedName","src":"7303:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7379:5:97","nodeType":"YulIdentifier","src":"7379:5:97"}],"functionName":{"name":"validator_revert_address","nativeSrc":"7354:24:97","nodeType":"YulIdentifier","src":"7354:24:97"},"nativeSrc":"7354:31:97","nodeType":"YulFunctionCall","src":"7354:31:97"},"nativeSrc":"7354:31:97","nodeType":"YulExpressionStatement","src":"7354:31:97"},{"nativeSrc":"7394:15:97","nodeType":"YulAssignment","src":"7394:15:97","value":{"name":"value","nativeSrc":"7404:5:97","nodeType":"YulIdentifier","src":"7404:5:97"},"variableNames":[{"name":"value3","nativeSrc":"7394:6:97","nodeType":"YulIdentifier","src":"7394:6:97"}]}]},"name":"abi_decode_tuple_t_struct$_Origin_$886_calldata_ptrt_bytes_calldata_ptrt_address","nativeSrc":"6746:669:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6836:9:97","nodeType":"YulTypedName","src":"6836:9:97","type":""},{"name":"dataEnd","nativeSrc":"6847:7:97","nodeType":"YulTypedName","src":"6847:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6859:6:97","nodeType":"YulTypedName","src":"6859:6:97","type":""},{"name":"value1","nativeSrc":"6867:6:97","nodeType":"YulTypedName","src":"6867:6:97","type":""},{"name":"value2","nativeSrc":"6875:6:97","nodeType":"YulTypedName","src":"6875:6:97","type":""},{"name":"value3","nativeSrc":"6883:6:97","nodeType":"YulTypedName","src":"6883:6:97","type":""}],"src":"6746:669:97"},{"body":{"nativeSrc":"7515:92:97","nodeType":"YulBlock","src":"7515:92:97","statements":[{"nativeSrc":"7525:26:97","nodeType":"YulAssignment","src":"7525:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"7537:9:97","nodeType":"YulIdentifier","src":"7537:9:97"},{"kind":"number","nativeSrc":"7548:2:97","nodeType":"YulLiteral","src":"7548:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7533:3:97","nodeType":"YulIdentifier","src":"7533:3:97"},"nativeSrc":"7533:18:97","nodeType":"YulFunctionCall","src":"7533:18:97"},"variableNames":[{"name":"tail","nativeSrc":"7525:4:97","nodeType":"YulIdentifier","src":"7525:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7567:9:97","nodeType":"YulIdentifier","src":"7567:9:97"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"7592:6:97","nodeType":"YulIdentifier","src":"7592:6:97"}],"functionName":{"name":"iszero","nativeSrc":"7585:6:97","nodeType":"YulIdentifier","src":"7585:6:97"},"nativeSrc":"7585:14:97","nodeType":"YulFunctionCall","src":"7585:14:97"}],"functionName":{"name":"iszero","nativeSrc":"7578:6:97","nodeType":"YulIdentifier","src":"7578:6:97"},"nativeSrc":"7578:22:97","nodeType":"YulFunctionCall","src":"7578:22:97"}],"functionName":{"name":"mstore","nativeSrc":"7560:6:97","nodeType":"YulIdentifier","src":"7560:6:97"},"nativeSrc":"7560:41:97","nodeType":"YulFunctionCall","src":"7560:41:97"},"nativeSrc":"7560:41:97","nodeType":"YulExpressionStatement","src":"7560:41:97"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"7420:187:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7484:9:97","nodeType":"YulTypedName","src":"7484:9:97","type":""},{"name":"value0","nativeSrc":"7495:6:97","nodeType":"YulTypedName","src":"7495:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7506:4:97","nodeType":"YulTypedName","src":"7506:4:97","type":""}],"src":"7420:187:97"},{"body":{"nativeSrc":"7713:125:97","nodeType":"YulBlock","src":"7713:125:97","statements":[{"nativeSrc":"7723:26:97","nodeType":"YulAssignment","src":"7723:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"7735:9:97","nodeType":"YulIdentifier","src":"7735:9:97"},{"kind":"number","nativeSrc":"7746:2:97","nodeType":"YulLiteral","src":"7746:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7731:3:97","nodeType":"YulIdentifier","src":"7731:3:97"},"nativeSrc":"7731:18:97","nodeType":"YulFunctionCall","src":"7731:18:97"},"variableNames":[{"name":"tail","nativeSrc":"7723:4:97","nodeType":"YulIdentifier","src":"7723:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7765:9:97","nodeType":"YulIdentifier","src":"7765:9:97"},{"arguments":[{"name":"value0","nativeSrc":"7780:6:97","nodeType":"YulIdentifier","src":"7780:6:97"},{"kind":"number","nativeSrc":"7788:42:97","nodeType":"YulLiteral","src":"7788:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"7776:3:97","nodeType":"YulIdentifier","src":"7776:3:97"},"nativeSrc":"7776:55:97","nodeType":"YulFunctionCall","src":"7776:55:97"}],"functionName":{"name":"mstore","nativeSrc":"7758:6:97","nodeType":"YulIdentifier","src":"7758:6:97"},"nativeSrc":"7758:74:97","nodeType":"YulFunctionCall","src":"7758:74:97"},"nativeSrc":"7758:74:97","nodeType":"YulExpressionStatement","src":"7758:74:97"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"7612:226:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7682:9:97","nodeType":"YulTypedName","src":"7682:9:97","type":""},{"name":"value0","nativeSrc":"7693:6:97","nodeType":"YulTypedName","src":"7693:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7704:4:97","nodeType":"YulTypedName","src":"7704:4:97","type":""}],"src":"7612:226:97"},{"body":{"nativeSrc":"7913:110:97","nodeType":"YulBlock","src":"7913:110:97","statements":[{"body":{"nativeSrc":"7959:16:97","nodeType":"YulBlock","src":"7959:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7968:1:97","nodeType":"YulLiteral","src":"7968:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"7971:1:97","nodeType":"YulLiteral","src":"7971:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7961:6:97","nodeType":"YulIdentifier","src":"7961:6:97"},"nativeSrc":"7961:12:97","nodeType":"YulFunctionCall","src":"7961:12:97"},"nativeSrc":"7961:12:97","nodeType":"YulExpressionStatement","src":"7961:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7934:7:97","nodeType":"YulIdentifier","src":"7934:7:97"},{"name":"headStart","nativeSrc":"7943:9:97","nodeType":"YulIdentifier","src":"7943:9:97"}],"functionName":{"name":"sub","nativeSrc":"7930:3:97","nodeType":"YulIdentifier","src":"7930:3:97"},"nativeSrc":"7930:23:97","nodeType":"YulFunctionCall","src":"7930:23:97"},{"kind":"number","nativeSrc":"7955:2:97","nodeType":"YulLiteral","src":"7955:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7926:3:97","nodeType":"YulIdentifier","src":"7926:3:97"},"nativeSrc":"7926:32:97","nodeType":"YulFunctionCall","src":"7926:32:97"},"nativeSrc":"7923:52:97","nodeType":"YulIf","src":"7923:52:97"},{"nativeSrc":"7984:33:97","nodeType":"YulAssignment","src":"7984:33:97","value":{"arguments":[{"name":"headStart","nativeSrc":"8007:9:97","nodeType":"YulIdentifier","src":"8007:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"7994:12:97","nodeType":"YulIdentifier","src":"7994:12:97"},"nativeSrc":"7994:23:97","nodeType":"YulFunctionCall","src":"7994:23:97"},"variableNames":[{"name":"value0","nativeSrc":"7984:6:97","nodeType":"YulIdentifier","src":"7984:6:97"}]}]},"name":"abi_decode_tuple_t_bytes32","nativeSrc":"7843:180:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7879:9:97","nodeType":"YulTypedName","src":"7879:9:97","type":""},{"name":"dataEnd","nativeSrc":"7890:7:97","nodeType":"YulTypedName","src":"7890:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7902:6:97","nodeType":"YulTypedName","src":"7902:6:97","type":""}],"src":"7843:180:97"},{"body":{"nativeSrc":"8179:227:97","nodeType":"YulBlock","src":"8179:227:97","statements":[{"nativeSrc":"8189:26:97","nodeType":"YulAssignment","src":"8189:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"8201:9:97","nodeType":"YulIdentifier","src":"8201:9:97"},{"kind":"number","nativeSrc":"8212:2:97","nodeType":"YulLiteral","src":"8212:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"8197:3:97","nodeType":"YulIdentifier","src":"8197:3:97"},"nativeSrc":"8197:18:97","nodeType":"YulFunctionCall","src":"8197:18:97"},"variableNames":[{"name":"tail","nativeSrc":"8189:4:97","nodeType":"YulIdentifier","src":"8189:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8231:9:97","nodeType":"YulIdentifier","src":"8231:9:97"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"8256:6:97","nodeType":"YulIdentifier","src":"8256:6:97"}],"functionName":{"name":"iszero","nativeSrc":"8249:6:97","nodeType":"YulIdentifier","src":"8249:6:97"},"nativeSrc":"8249:14:97","nodeType":"YulFunctionCall","src":"8249:14:97"}],"functionName":{"name":"iszero","nativeSrc":"8242:6:97","nodeType":"YulIdentifier","src":"8242:6:97"},"nativeSrc":"8242:22:97","nodeType":"YulFunctionCall","src":"8242:22:97"}],"functionName":{"name":"mstore","nativeSrc":"8224:6:97","nodeType":"YulIdentifier","src":"8224:6:97"},"nativeSrc":"8224:41:97","nodeType":"YulFunctionCall","src":"8224:41:97"},"nativeSrc":"8224:41:97","nodeType":"YulExpressionStatement","src":"8224:41:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8285:9:97","nodeType":"YulIdentifier","src":"8285:9:97"},{"kind":"number","nativeSrc":"8296:2:97","nodeType":"YulLiteral","src":"8296:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8281:3:97","nodeType":"YulIdentifier","src":"8281:3:97"},"nativeSrc":"8281:18:97","nodeType":"YulFunctionCall","src":"8281:18:97"},{"name":"value1","nativeSrc":"8301:6:97","nodeType":"YulIdentifier","src":"8301:6:97"}],"functionName":{"name":"mstore","nativeSrc":"8274:6:97","nodeType":"YulIdentifier","src":"8274:6:97"},"nativeSrc":"8274:34:97","nodeType":"YulFunctionCall","src":"8274:34:97"},"nativeSrc":"8274:34:97","nodeType":"YulExpressionStatement","src":"8274:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8328:9:97","nodeType":"YulIdentifier","src":"8328:9:97"},{"kind":"number","nativeSrc":"8339:2:97","nodeType":"YulLiteral","src":"8339:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8324:3:97","nodeType":"YulIdentifier","src":"8324:3:97"},"nativeSrc":"8324:18:97","nodeType":"YulFunctionCall","src":"8324:18:97"},{"arguments":[{"name":"value2","nativeSrc":"8348:6:97","nodeType":"YulIdentifier","src":"8348:6:97"},{"kind":"number","nativeSrc":"8356:42:97","nodeType":"YulLiteral","src":"8356:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"8344:3:97","nodeType":"YulIdentifier","src":"8344:3:97"},"nativeSrc":"8344:55:97","nodeType":"YulFunctionCall","src":"8344:55:97"}],"functionName":{"name":"mstore","nativeSrc":"8317:6:97","nodeType":"YulIdentifier","src":"8317:6:97"},"nativeSrc":"8317:83:97","nodeType":"YulFunctionCall","src":"8317:83:97"},"nativeSrc":"8317:83:97","nodeType":"YulExpressionStatement","src":"8317:83:97"}]},"name":"abi_encode_tuple_t_bool_t_uint256_t_address__to_t_bool_t_uint256_t_address__fromStack_reversed","nativeSrc":"8028:378:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8132:9:97","nodeType":"YulTypedName","src":"8132:9:97","type":""},{"name":"value2","nativeSrc":"8143:6:97","nodeType":"YulTypedName","src":"8143:6:97","type":""},{"name":"value1","nativeSrc":"8151:6:97","nodeType":"YulTypedName","src":"8151:6:97","type":""},{"name":"value0","nativeSrc":"8159:6:97","nodeType":"YulTypedName","src":"8159:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8170:4:97","nodeType":"YulTypedName","src":"8170:4:97","type":""}],"src":"8028:378:97"},{"body":{"nativeSrc":"8535:489:97","nodeType":"YulBlock","src":"8535:489:97","statements":[{"body":{"nativeSrc":"8581:16:97","nodeType":"YulBlock","src":"8581:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8590:1:97","nodeType":"YulLiteral","src":"8590:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"8593:1:97","nodeType":"YulLiteral","src":"8593:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8583:6:97","nodeType":"YulIdentifier","src":"8583:6:97"},"nativeSrc":"8583:12:97","nodeType":"YulFunctionCall","src":"8583:12:97"},"nativeSrc":"8583:12:97","nodeType":"YulExpressionStatement","src":"8583:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8556:7:97","nodeType":"YulIdentifier","src":"8556:7:97"},{"name":"headStart","nativeSrc":"8565:9:97","nodeType":"YulIdentifier","src":"8565:9:97"}],"functionName":{"name":"sub","nativeSrc":"8552:3:97","nodeType":"YulIdentifier","src":"8552:3:97"},"nativeSrc":"8552:23:97","nodeType":"YulFunctionCall","src":"8552:23:97"},{"kind":"number","nativeSrc":"8577:2:97","nodeType":"YulLiteral","src":"8577:2:97","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"8548:3:97","nodeType":"YulIdentifier","src":"8548:3:97"},"nativeSrc":"8548:32:97","nodeType":"YulFunctionCall","src":"8548:32:97"},"nativeSrc":"8545:52:97","nodeType":"YulIf","src":"8545:52:97"},{"nativeSrc":"8606:37:97","nodeType":"YulVariableDeclaration","src":"8606:37:97","value":{"arguments":[{"name":"headStart","nativeSrc":"8633:9:97","nodeType":"YulIdentifier","src":"8633:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"8620:12:97","nodeType":"YulIdentifier","src":"8620:12:97"},"nativeSrc":"8620:23:97","nodeType":"YulFunctionCall","src":"8620:23:97"},"variables":[{"name":"offset","nativeSrc":"8610:6:97","nodeType":"YulTypedName","src":"8610:6:97","type":""}]},{"body":{"nativeSrc":"8686:16:97","nodeType":"YulBlock","src":"8686:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8695:1:97","nodeType":"YulLiteral","src":"8695:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"8698:1:97","nodeType":"YulLiteral","src":"8698:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8688:6:97","nodeType":"YulIdentifier","src":"8688:6:97"},"nativeSrc":"8688:12:97","nodeType":"YulFunctionCall","src":"8688:12:97"},"nativeSrc":"8688:12:97","nodeType":"YulExpressionStatement","src":"8688:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"8658:6:97","nodeType":"YulIdentifier","src":"8658:6:97"},{"kind":"number","nativeSrc":"8666:18:97","nodeType":"YulLiteral","src":"8666:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8655:2:97","nodeType":"YulIdentifier","src":"8655:2:97"},"nativeSrc":"8655:30:97","nodeType":"YulFunctionCall","src":"8655:30:97"},"nativeSrc":"8652:50:97","nodeType":"YulIf","src":"8652:50:97"},{"nativeSrc":"8711:84:97","nodeType":"YulVariableDeclaration","src":"8711:84:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8767:9:97","nodeType":"YulIdentifier","src":"8767:9:97"},{"name":"offset","nativeSrc":"8778:6:97","nodeType":"YulIdentifier","src":"8778:6:97"}],"functionName":{"name":"add","nativeSrc":"8763:3:97","nodeType":"YulIdentifier","src":"8763:3:97"},"nativeSrc":"8763:22:97","nodeType":"YulFunctionCall","src":"8763:22:97"},{"name":"dataEnd","nativeSrc":"8787:7:97","nodeType":"YulIdentifier","src":"8787:7:97"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"8737:25:97","nodeType":"YulIdentifier","src":"8737:25:97"},"nativeSrc":"8737:58:97","nodeType":"YulFunctionCall","src":"8737:58:97"},"variables":[{"name":"value0_1","nativeSrc":"8715:8:97","nodeType":"YulTypedName","src":"8715:8:97","type":""},{"name":"value1_1","nativeSrc":"8725:8:97","nodeType":"YulTypedName","src":"8725:8:97","type":""}]},{"nativeSrc":"8804:18:97","nodeType":"YulAssignment","src":"8804:18:97","value":{"name":"value0_1","nativeSrc":"8814:8:97","nodeType":"YulIdentifier","src":"8814:8:97"},"variableNames":[{"name":"value0","nativeSrc":"8804:6:97","nodeType":"YulIdentifier","src":"8804:6:97"}]},{"nativeSrc":"8831:18:97","nodeType":"YulAssignment","src":"8831:18:97","value":{"name":"value1_1","nativeSrc":"8841:8:97","nodeType":"YulIdentifier","src":"8841:8:97"},"variableNames":[{"name":"value1","nativeSrc":"8831:6:97","nodeType":"YulIdentifier","src":"8831:6:97"}]},{"nativeSrc":"8858:45:97","nodeType":"YulVariableDeclaration","src":"8858:45:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8888:9:97","nodeType":"YulIdentifier","src":"8888:9:97"},{"kind":"number","nativeSrc":"8899:2:97","nodeType":"YulLiteral","src":"8899:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8884:3:97","nodeType":"YulIdentifier","src":"8884:3:97"},"nativeSrc":"8884:18:97","nodeType":"YulFunctionCall","src":"8884:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"8871:12:97","nodeType":"YulIdentifier","src":"8871:12:97"},"nativeSrc":"8871:32:97","nodeType":"YulFunctionCall","src":"8871:32:97"},"variables":[{"name":"value","nativeSrc":"8862:5:97","nodeType":"YulTypedName","src":"8862:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8937:5:97","nodeType":"YulIdentifier","src":"8937:5:97"}],"functionName":{"name":"validator_revert_address","nativeSrc":"8912:24:97","nodeType":"YulIdentifier","src":"8912:24:97"},"nativeSrc":"8912:31:97","nodeType":"YulFunctionCall","src":"8912:31:97"},"nativeSrc":"8912:31:97","nodeType":"YulExpressionStatement","src":"8912:31:97"},{"nativeSrc":"8952:15:97","nodeType":"YulAssignment","src":"8952:15:97","value":{"name":"value","nativeSrc":"8962:5:97","nodeType":"YulIdentifier","src":"8962:5:97"},"variableNames":[{"name":"value2","nativeSrc":"8952:6:97","nodeType":"YulIdentifier","src":"8952:6:97"}]},{"nativeSrc":"8976:42:97","nodeType":"YulAssignment","src":"8976:42:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9003:9:97","nodeType":"YulIdentifier","src":"9003:9:97"},{"kind":"number","nativeSrc":"9014:2:97","nodeType":"YulLiteral","src":"9014:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8999:3:97","nodeType":"YulIdentifier","src":"8999:3:97"},"nativeSrc":"8999:18:97","nodeType":"YulFunctionCall","src":"8999:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"8986:12:97","nodeType":"YulIdentifier","src":"8986:12:97"},"nativeSrc":"8986:32:97","nodeType":"YulFunctionCall","src":"8986:32:97"},"variableNames":[{"name":"value3","nativeSrc":"8976:6:97","nodeType":"YulIdentifier","src":"8976:6:97"}]}]},"name":"abi_decode_tuple_t_string_calldata_ptrt_addresst_uint256","nativeSrc":"8411:613:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8477:9:97","nodeType":"YulTypedName","src":"8477:9:97","type":""},{"name":"dataEnd","nativeSrc":"8488:7:97","nodeType":"YulTypedName","src":"8488:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8500:6:97","nodeType":"YulTypedName","src":"8500:6:97","type":""},{"name":"value1","nativeSrc":"8508:6:97","nodeType":"YulTypedName","src":"8508:6:97","type":""},{"name":"value2","nativeSrc":"8516:6:97","nodeType":"YulTypedName","src":"8516:6:97","type":""},{"name":"value3","nativeSrc":"8524:6:97","nodeType":"YulTypedName","src":"8524:6:97","type":""}],"src":"8411:613:97"},{"body":{"nativeSrc":"9163:125:97","nodeType":"YulBlock","src":"9163:125:97","statements":[{"nativeSrc":"9173:26:97","nodeType":"YulAssignment","src":"9173:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"9185:9:97","nodeType":"YulIdentifier","src":"9185:9:97"},{"kind":"number","nativeSrc":"9196:2:97","nodeType":"YulLiteral","src":"9196:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9181:3:97","nodeType":"YulIdentifier","src":"9181:3:97"},"nativeSrc":"9181:18:97","nodeType":"YulFunctionCall","src":"9181:18:97"},"variableNames":[{"name":"tail","nativeSrc":"9173:4:97","nodeType":"YulIdentifier","src":"9173:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"9215:9:97","nodeType":"YulIdentifier","src":"9215:9:97"},{"arguments":[{"name":"value0","nativeSrc":"9230:6:97","nodeType":"YulIdentifier","src":"9230:6:97"},{"kind":"number","nativeSrc":"9238:42:97","nodeType":"YulLiteral","src":"9238:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"9226:3:97","nodeType":"YulIdentifier","src":"9226:3:97"},"nativeSrc":"9226:55:97","nodeType":"YulFunctionCall","src":"9226:55:97"}],"functionName":{"name":"mstore","nativeSrc":"9208:6:97","nodeType":"YulIdentifier","src":"9208:6:97"},"nativeSrc":"9208:74:97","nodeType":"YulFunctionCall","src":"9208:74:97"},"nativeSrc":"9208:74:97","nodeType":"YulExpressionStatement","src":"9208:74:97"}]},"name":"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$13903__to_t_address__fromStack_reversed","nativeSrc":"9029:259:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9132:9:97","nodeType":"YulTypedName","src":"9132:9:97","type":""},{"name":"value0","nativeSrc":"9143:6:97","nodeType":"YulTypedName","src":"9143:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9154:4:97","nodeType":"YulTypedName","src":"9154:4:97","type":""}],"src":"9029:259:97"},{"body":{"nativeSrc":"9359:184:97","nodeType":"YulBlock","src":"9359:184:97","statements":[{"nativeSrc":"9369:10:97","nodeType":"YulVariableDeclaration","src":"9369:10:97","value":{"kind":"number","nativeSrc":"9378:1:97","nodeType":"YulLiteral","src":"9378:1:97","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"9373:1:97","nodeType":"YulTypedName","src":"9373:1:97","type":""}]},{"body":{"nativeSrc":"9438:63:97","nodeType":"YulBlock","src":"9438:63:97","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"9463:3:97","nodeType":"YulIdentifier","src":"9463:3:97"},{"name":"i","nativeSrc":"9468:1:97","nodeType":"YulIdentifier","src":"9468:1:97"}],"functionName":{"name":"add","nativeSrc":"9459:3:97","nodeType":"YulIdentifier","src":"9459:3:97"},"nativeSrc":"9459:11:97","nodeType":"YulFunctionCall","src":"9459:11:97"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"9482:3:97","nodeType":"YulIdentifier","src":"9482:3:97"},{"name":"i","nativeSrc":"9487:1:97","nodeType":"YulIdentifier","src":"9487:1:97"}],"functionName":{"name":"add","nativeSrc":"9478:3:97","nodeType":"YulIdentifier","src":"9478:3:97"},"nativeSrc":"9478:11:97","nodeType":"YulFunctionCall","src":"9478:11:97"}],"functionName":{"name":"mload","nativeSrc":"9472:5:97","nodeType":"YulIdentifier","src":"9472:5:97"},"nativeSrc":"9472:18:97","nodeType":"YulFunctionCall","src":"9472:18:97"}],"functionName":{"name":"mstore","nativeSrc":"9452:6:97","nodeType":"YulIdentifier","src":"9452:6:97"},"nativeSrc":"9452:39:97","nodeType":"YulFunctionCall","src":"9452:39:97"},"nativeSrc":"9452:39:97","nodeType":"YulExpressionStatement","src":"9452:39:97"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"9399:1:97","nodeType":"YulIdentifier","src":"9399:1:97"},{"name":"length","nativeSrc":"9402:6:97","nodeType":"YulIdentifier","src":"9402:6:97"}],"functionName":{"name":"lt","nativeSrc":"9396:2:97","nodeType":"YulIdentifier","src":"9396:2:97"},"nativeSrc":"9396:13:97","nodeType":"YulFunctionCall","src":"9396:13:97"},"nativeSrc":"9388:113:97","nodeType":"YulForLoop","post":{"nativeSrc":"9410:19:97","nodeType":"YulBlock","src":"9410:19:97","statements":[{"nativeSrc":"9412:15:97","nodeType":"YulAssignment","src":"9412:15:97","value":{"arguments":[{"name":"i","nativeSrc":"9421:1:97","nodeType":"YulIdentifier","src":"9421:1:97"},{"kind":"number","nativeSrc":"9424:2:97","nodeType":"YulLiteral","src":"9424:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9417:3:97","nodeType":"YulIdentifier","src":"9417:3:97"},"nativeSrc":"9417:10:97","nodeType":"YulFunctionCall","src":"9417:10:97"},"variableNames":[{"name":"i","nativeSrc":"9412:1:97","nodeType":"YulIdentifier","src":"9412:1:97"}]}]},"pre":{"nativeSrc":"9392:3:97","nodeType":"YulBlock","src":"9392:3:97","statements":[]},"src":"9388:113:97"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"9521:3:97","nodeType":"YulIdentifier","src":"9521:3:97"},{"name":"length","nativeSrc":"9526:6:97","nodeType":"YulIdentifier","src":"9526:6:97"}],"functionName":{"name":"add","nativeSrc":"9517:3:97","nodeType":"YulIdentifier","src":"9517:3:97"},"nativeSrc":"9517:16:97","nodeType":"YulFunctionCall","src":"9517:16:97"},{"kind":"number","nativeSrc":"9535:1:97","nodeType":"YulLiteral","src":"9535:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"9510:6:97","nodeType":"YulIdentifier","src":"9510:6:97"},"nativeSrc":"9510:27:97","nodeType":"YulFunctionCall","src":"9510:27:97"},"nativeSrc":"9510:27:97","nodeType":"YulExpressionStatement","src":"9510:27:97"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"9293:250:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"9337:3:97","nodeType":"YulTypedName","src":"9337:3:97","type":""},{"name":"dst","nativeSrc":"9342:3:97","nodeType":"YulTypedName","src":"9342:3:97","type":""},{"name":"length","nativeSrc":"9347:6:97","nodeType":"YulTypedName","src":"9347:6:97","type":""}],"src":"9293:250:97"},{"body":{"nativeSrc":"9598:280:97","nodeType":"YulBlock","src":"9598:280:97","statements":[{"nativeSrc":"9608:26:97","nodeType":"YulVariableDeclaration","src":"9608:26:97","value":{"arguments":[{"name":"value","nativeSrc":"9628:5:97","nodeType":"YulIdentifier","src":"9628:5:97"}],"functionName":{"name":"mload","nativeSrc":"9622:5:97","nodeType":"YulIdentifier","src":"9622:5:97"},"nativeSrc":"9622:12:97","nodeType":"YulFunctionCall","src":"9622:12:97"},"variables":[{"name":"length","nativeSrc":"9612:6:97","nodeType":"YulTypedName","src":"9612:6:97","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"9650:3:97","nodeType":"YulIdentifier","src":"9650:3:97"},{"name":"length","nativeSrc":"9655:6:97","nodeType":"YulIdentifier","src":"9655:6:97"}],"functionName":{"name":"mstore","nativeSrc":"9643:6:97","nodeType":"YulIdentifier","src":"9643:6:97"},"nativeSrc":"9643:19:97","nodeType":"YulFunctionCall","src":"9643:19:97"},"nativeSrc":"9643:19:97","nodeType":"YulExpressionStatement","src":"9643:19:97"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9710:5:97","nodeType":"YulIdentifier","src":"9710:5:97"},{"kind":"number","nativeSrc":"9717:4:97","nodeType":"YulLiteral","src":"9717:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9706:3:97","nodeType":"YulIdentifier","src":"9706:3:97"},"nativeSrc":"9706:16:97","nodeType":"YulFunctionCall","src":"9706:16:97"},{"arguments":[{"name":"pos","nativeSrc":"9728:3:97","nodeType":"YulIdentifier","src":"9728:3:97"},{"kind":"number","nativeSrc":"9733:4:97","nodeType":"YulLiteral","src":"9733:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9724:3:97","nodeType":"YulIdentifier","src":"9724:3:97"},"nativeSrc":"9724:14:97","nodeType":"YulFunctionCall","src":"9724:14:97"},{"name":"length","nativeSrc":"9740:6:97","nodeType":"YulIdentifier","src":"9740:6:97"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"9671:34:97","nodeType":"YulIdentifier","src":"9671:34:97"},"nativeSrc":"9671:76:97","nodeType":"YulFunctionCall","src":"9671:76:97"},"nativeSrc":"9671:76:97","nodeType":"YulExpressionStatement","src":"9671:76:97"},{"nativeSrc":"9756:116:97","nodeType":"YulAssignment","src":"9756:116:97","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"9771:3:97","nodeType":"YulIdentifier","src":"9771:3:97"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"9784:6:97","nodeType":"YulIdentifier","src":"9784:6:97"},{"kind":"number","nativeSrc":"9792:2:97","nodeType":"YulLiteral","src":"9792:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"9780:3:97","nodeType":"YulIdentifier","src":"9780:3:97"},"nativeSrc":"9780:15:97","nodeType":"YulFunctionCall","src":"9780:15:97"},{"kind":"number","nativeSrc":"9797:66:97","nodeType":"YulLiteral","src":"9797:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"9776:3:97","nodeType":"YulIdentifier","src":"9776:3:97"},"nativeSrc":"9776:88:97","nodeType":"YulFunctionCall","src":"9776:88:97"}],"functionName":{"name":"add","nativeSrc":"9767:3:97","nodeType":"YulIdentifier","src":"9767:3:97"},"nativeSrc":"9767:98:97","nodeType":"YulFunctionCall","src":"9767:98:97"},{"kind":"number","nativeSrc":"9867:4:97","nodeType":"YulLiteral","src":"9867:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9763:3:97","nodeType":"YulIdentifier","src":"9763:3:97"},"nativeSrc":"9763:109:97","nodeType":"YulFunctionCall","src":"9763:109:97"},"variableNames":[{"name":"end","nativeSrc":"9756:3:97","nodeType":"YulIdentifier","src":"9756:3:97"}]}]},"name":"abi_encode_string","nativeSrc":"9548:330:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9575:5:97","nodeType":"YulTypedName","src":"9575:5:97","type":""},{"name":"pos","nativeSrc":"9582:3:97","nodeType":"YulTypedName","src":"9582:3:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"9590:3:97","nodeType":"YulTypedName","src":"9590:3:97","type":""}],"src":"9548:330:97"},{"body":{"nativeSrc":"9926:67:97","nodeType":"YulBlock","src":"9926:67:97","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"9943:3:97","nodeType":"YulIdentifier","src":"9943:3:97"},{"arguments":[{"name":"value","nativeSrc":"9952:5:97","nodeType":"YulIdentifier","src":"9952:5:97"},{"kind":"number","nativeSrc":"9959:26:97","nodeType":"YulLiteral","src":"9959:26:97","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"9948:3:97","nodeType":"YulIdentifier","src":"9948:3:97"},"nativeSrc":"9948:38:97","nodeType":"YulFunctionCall","src":"9948:38:97"}],"functionName":{"name":"mstore","nativeSrc":"9936:6:97","nodeType":"YulIdentifier","src":"9936:6:97"},"nativeSrc":"9936:51:97","nodeType":"YulFunctionCall","src":"9936:51:97"},"nativeSrc":"9936:51:97","nodeType":"YulExpressionStatement","src":"9936:51:97"}]},"name":"abi_encode_uint96","nativeSrc":"9883:110:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9910:5:97","nodeType":"YulTypedName","src":"9910:5:97","type":""},{"name":"pos","nativeSrc":"9917:3:97","nodeType":"YulTypedName","src":"9917:3:97","type":""}],"src":"9883:110:97"},{"body":{"nativeSrc":"10068:1522:97","nodeType":"YulBlock","src":"10068:1522:97","statements":[{"nativeSrc":"10078:16:97","nodeType":"YulVariableDeclaration","src":"10078:16:97","value":{"kind":"number","nativeSrc":"10088:6:97","nodeType":"YulLiteral","src":"10088:6:97","type":"","value":"0x0180"},"variables":[{"name":"_1","nativeSrc":"10082:2:97","nodeType":"YulTypedName","src":"10082:2:97","type":""}]},{"nativeSrc":"10103:32:97","nodeType":"YulVariableDeclaration","src":"10103:32:97","value":{"arguments":[{"name":"value","nativeSrc":"10129:5:97","nodeType":"YulIdentifier","src":"10129:5:97"}],"functionName":{"name":"mload","nativeSrc":"10123:5:97","nodeType":"YulIdentifier","src":"10123:5:97"},"nativeSrc":"10123:12:97","nodeType":"YulFunctionCall","src":"10123:12:97"},"variables":[{"name":"memberValue0","nativeSrc":"10107:12:97","nodeType":"YulTypedName","src":"10107:12:97","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"10151:3:97","nodeType":"YulIdentifier","src":"10151:3:97"},{"name":"_1","nativeSrc":"10156:2:97","nodeType":"YulIdentifier","src":"10156:2:97"}],"functionName":{"name":"mstore","nativeSrc":"10144:6:97","nodeType":"YulIdentifier","src":"10144:6:97"},"nativeSrc":"10144:15:97","nodeType":"YulFunctionCall","src":"10144:15:97"},"nativeSrc":"10144:15:97","nodeType":"YulExpressionStatement","src":"10144:15:97"},{"nativeSrc":"10168:57:97","nodeType":"YulVariableDeclaration","src":"10168:57:97","value":{"arguments":[{"name":"memberValue0","nativeSrc":"10198:12:97","nodeType":"YulIdentifier","src":"10198:12:97"},{"arguments":[{"name":"pos","nativeSrc":"10216:3:97","nodeType":"YulIdentifier","src":"10216:3:97"},{"name":"_1","nativeSrc":"10221:2:97","nodeType":"YulIdentifier","src":"10221:2:97"}],"functionName":{"name":"add","nativeSrc":"10212:3:97","nodeType":"YulIdentifier","src":"10212:3:97"},"nativeSrc":"10212:12:97","nodeType":"YulFunctionCall","src":"10212:12:97"}],"functionName":{"name":"abi_encode_string","nativeSrc":"10180:17:97","nodeType":"YulIdentifier","src":"10180:17:97"},"nativeSrc":"10180:45:97","nodeType":"YulFunctionCall","src":"10180:45:97"},"variables":[{"name":"tail","nativeSrc":"10172:4:97","nodeType":"YulTypedName","src":"10172:4:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"10245:3:97","nodeType":"YulIdentifier","src":"10245:3:97"},{"kind":"number","nativeSrc":"10250:4:97","nodeType":"YulLiteral","src":"10250:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10241:3:97","nodeType":"YulIdentifier","src":"10241:3:97"},"nativeSrc":"10241:14:97","nodeType":"YulFunctionCall","src":"10241:14:97"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10267:5:97","nodeType":"YulIdentifier","src":"10267:5:97"},{"kind":"number","nativeSrc":"10274:4:97","nodeType":"YulLiteral","src":"10274:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10263:3:97","nodeType":"YulIdentifier","src":"10263:3:97"},"nativeSrc":"10263:16:97","nodeType":"YulFunctionCall","src":"10263:16:97"}],"functionName":{"name":"mload","nativeSrc":"10257:5:97","nodeType":"YulIdentifier","src":"10257:5:97"},"nativeSrc":"10257:23:97","nodeType":"YulFunctionCall","src":"10257:23:97"}],"functionName":{"name":"mstore","nativeSrc":"10234:6:97","nodeType":"YulIdentifier","src":"10234:6:97"},"nativeSrc":"10234:47:97","nodeType":"YulFunctionCall","src":"10234:47:97"},"nativeSrc":"10234:47:97","nodeType":"YulExpressionStatement","src":"10234:47:97"},{"nativeSrc":"10290:45:97","nodeType":"YulVariableDeclaration","src":"10290:45:97","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10322:5:97","nodeType":"YulIdentifier","src":"10322:5:97"},{"kind":"number","nativeSrc":"10329:4:97","nodeType":"YulLiteral","src":"10329:4:97","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"10318:3:97","nodeType":"YulIdentifier","src":"10318:3:97"},"nativeSrc":"10318:16:97","nodeType":"YulFunctionCall","src":"10318:16:97"}],"functionName":{"name":"mload","nativeSrc":"10312:5:97","nodeType":"YulIdentifier","src":"10312:5:97"},"nativeSrc":"10312:23:97","nodeType":"YulFunctionCall","src":"10312:23:97"},"variables":[{"name":"memberValue0_1","nativeSrc":"10294:14:97","nodeType":"YulTypedName","src":"10294:14:97","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_1","nativeSrc":"10363:14:97","nodeType":"YulIdentifier","src":"10363:14:97"},{"arguments":[{"name":"pos","nativeSrc":"10383:3:97","nodeType":"YulIdentifier","src":"10383:3:97"},{"kind":"number","nativeSrc":"10388:4:97","nodeType":"YulLiteral","src":"10388:4:97","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"10379:3:97","nodeType":"YulIdentifier","src":"10379:3:97"},"nativeSrc":"10379:14:97","nodeType":"YulFunctionCall","src":"10379:14:97"}],"functionName":{"name":"abi_encode_address","nativeSrc":"10344:18:97","nodeType":"YulIdentifier","src":"10344:18:97"},"nativeSrc":"10344:50:97","nodeType":"YulFunctionCall","src":"10344:50:97"},"nativeSrc":"10344:50:97","nodeType":"YulExpressionStatement","src":"10344:50:97"},{"nativeSrc":"10403:45:97","nodeType":"YulVariableDeclaration","src":"10403:45:97","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10435:5:97","nodeType":"YulIdentifier","src":"10435:5:97"},{"kind":"number","nativeSrc":"10442:4:97","nodeType":"YulLiteral","src":"10442:4:97","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"10431:3:97","nodeType":"YulIdentifier","src":"10431:3:97"},"nativeSrc":"10431:16:97","nodeType":"YulFunctionCall","src":"10431:16:97"}],"functionName":{"name":"mload","nativeSrc":"10425:5:97","nodeType":"YulIdentifier","src":"10425:5:97"},"nativeSrc":"10425:23:97","nodeType":"YulFunctionCall","src":"10425:23:97"},"variables":[{"name":"memberValue0_2","nativeSrc":"10407:14:97","nodeType":"YulTypedName","src":"10407:14:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"10468:3:97","nodeType":"YulIdentifier","src":"10468:3:97"},{"kind":"number","nativeSrc":"10473:4:97","nodeType":"YulLiteral","src":"10473:4:97","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"10464:3:97","nodeType":"YulIdentifier","src":"10464:3:97"},"nativeSrc":"10464:14:97","nodeType":"YulFunctionCall","src":"10464:14:97"},{"arguments":[{"name":"tail","nativeSrc":"10484:4:97","nodeType":"YulIdentifier","src":"10484:4:97"},{"name":"pos","nativeSrc":"10490:3:97","nodeType":"YulIdentifier","src":"10490:3:97"}],"functionName":{"name":"sub","nativeSrc":"10480:3:97","nodeType":"YulIdentifier","src":"10480:3:97"},"nativeSrc":"10480:14:97","nodeType":"YulFunctionCall","src":"10480:14:97"}],"functionName":{"name":"mstore","nativeSrc":"10457:6:97","nodeType":"YulIdentifier","src":"10457:6:97"},"nativeSrc":"10457:38:97","nodeType":"YulFunctionCall","src":"10457:38:97"},"nativeSrc":"10457:38:97","nodeType":"YulExpressionStatement","src":"10457:38:97"},{"nativeSrc":"10504:53:97","nodeType":"YulVariableDeclaration","src":"10504:53:97","value":{"arguments":[{"name":"memberValue0_2","nativeSrc":"10536:14:97","nodeType":"YulIdentifier","src":"10536:14:97"},{"name":"tail","nativeSrc":"10552:4:97","nodeType":"YulIdentifier","src":"10552:4:97"}],"functionName":{"name":"abi_encode_string","nativeSrc":"10518:17:97","nodeType":"YulIdentifier","src":"10518:17:97"},"nativeSrc":"10518:39:97","nodeType":"YulFunctionCall","src":"10518:39:97"},"variables":[{"name":"tail_1","nativeSrc":"10508:6:97","nodeType":"YulTypedName","src":"10508:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"10577:3:97","nodeType":"YulIdentifier","src":"10577:3:97"},{"kind":"number","nativeSrc":"10582:4:97","nodeType":"YulLiteral","src":"10582:4:97","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"10573:3:97","nodeType":"YulIdentifier","src":"10573:3:97"},"nativeSrc":"10573:14:97","nodeType":"YulFunctionCall","src":"10573:14:97"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10599:5:97","nodeType":"YulIdentifier","src":"10599:5:97"},{"kind":"number","nativeSrc":"10606:4:97","nodeType":"YulLiteral","src":"10606:4:97","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"10595:3:97","nodeType":"YulIdentifier","src":"10595:3:97"},"nativeSrc":"10595:16:97","nodeType":"YulFunctionCall","src":"10595:16:97"}],"functionName":{"name":"mload","nativeSrc":"10589:5:97","nodeType":"YulIdentifier","src":"10589:5:97"},"nativeSrc":"10589:23:97","nodeType":"YulFunctionCall","src":"10589:23:97"}],"functionName":{"name":"mstore","nativeSrc":"10566:6:97","nodeType":"YulIdentifier","src":"10566:6:97"},"nativeSrc":"10566:47:97","nodeType":"YulFunctionCall","src":"10566:47:97"},"nativeSrc":"10566:47:97","nodeType":"YulExpressionStatement","src":"10566:47:97"},{"nativeSrc":"10622:45:97","nodeType":"YulVariableDeclaration","src":"10622:45:97","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10654:5:97","nodeType":"YulIdentifier","src":"10654:5:97"},{"kind":"number","nativeSrc":"10661:4:97","nodeType":"YulLiteral","src":"10661:4:97","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"10650:3:97","nodeType":"YulIdentifier","src":"10650:3:97"},"nativeSrc":"10650:16:97","nodeType":"YulFunctionCall","src":"10650:16:97"}],"functionName":{"name":"mload","nativeSrc":"10644:5:97","nodeType":"YulIdentifier","src":"10644:5:97"},"nativeSrc":"10644:23:97","nodeType":"YulFunctionCall","src":"10644:23:97"},"variables":[{"name":"memberValue0_3","nativeSrc":"10626:14:97","nodeType":"YulTypedName","src":"10626:14:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"10687:3:97","nodeType":"YulIdentifier","src":"10687:3:97"},{"kind":"number","nativeSrc":"10692:4:97","nodeType":"YulLiteral","src":"10692:4:97","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"10683:3:97","nodeType":"YulIdentifier","src":"10683:3:97"},"nativeSrc":"10683:14:97","nodeType":"YulFunctionCall","src":"10683:14:97"},{"arguments":[{"name":"tail_1","nativeSrc":"10703:6:97","nodeType":"YulIdentifier","src":"10703:6:97"},{"name":"pos","nativeSrc":"10711:3:97","nodeType":"YulIdentifier","src":"10711:3:97"}],"functionName":{"name":"sub","nativeSrc":"10699:3:97","nodeType":"YulIdentifier","src":"10699:3:97"},"nativeSrc":"10699:16:97","nodeType":"YulFunctionCall","src":"10699:16:97"}],"functionName":{"name":"mstore","nativeSrc":"10676:6:97","nodeType":"YulIdentifier","src":"10676:6:97"},"nativeSrc":"10676:40:97","nodeType":"YulFunctionCall","src":"10676:40:97"},"nativeSrc":"10676:40:97","nodeType":"YulExpressionStatement","src":"10676:40:97"},{"nativeSrc":"10725:55:97","nodeType":"YulVariableDeclaration","src":"10725:55:97","value":{"arguments":[{"name":"memberValue0_3","nativeSrc":"10757:14:97","nodeType":"YulIdentifier","src":"10757:14:97"},{"name":"tail_1","nativeSrc":"10773:6:97","nodeType":"YulIdentifier","src":"10773:6:97"}],"functionName":{"name":"abi_encode_string","nativeSrc":"10739:17:97","nodeType":"YulIdentifier","src":"10739:17:97"},"nativeSrc":"10739:41:97","nodeType":"YulFunctionCall","src":"10739:41:97"},"variables":[{"name":"tail_2","nativeSrc":"10729:6:97","nodeType":"YulTypedName","src":"10729:6:97","type":""}]},{"nativeSrc":"10789:45:97","nodeType":"YulVariableDeclaration","src":"10789:45:97","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10821:5:97","nodeType":"YulIdentifier","src":"10821:5:97"},{"kind":"number","nativeSrc":"10828:4:97","nodeType":"YulLiteral","src":"10828:4:97","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"10817:3:97","nodeType":"YulIdentifier","src":"10817:3:97"},"nativeSrc":"10817:16:97","nodeType":"YulFunctionCall","src":"10817:16:97"}],"functionName":{"name":"mload","nativeSrc":"10811:5:97","nodeType":"YulIdentifier","src":"10811:5:97"},"nativeSrc":"10811:23:97","nodeType":"YulFunctionCall","src":"10811:23:97"},"variables":[{"name":"memberValue0_4","nativeSrc":"10793:14:97","nodeType":"YulTypedName","src":"10793:14:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"10854:3:97","nodeType":"YulIdentifier","src":"10854:3:97"},{"kind":"number","nativeSrc":"10859:4:97","nodeType":"YulLiteral","src":"10859:4:97","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"10850:3:97","nodeType":"YulIdentifier","src":"10850:3:97"},"nativeSrc":"10850:14:97","nodeType":"YulFunctionCall","src":"10850:14:97"},{"arguments":[{"name":"tail_2","nativeSrc":"10870:6:97","nodeType":"YulIdentifier","src":"10870:6:97"},{"name":"pos","nativeSrc":"10878:3:97","nodeType":"YulIdentifier","src":"10878:3:97"}],"functionName":{"name":"sub","nativeSrc":"10866:3:97","nodeType":"YulIdentifier","src":"10866:3:97"},"nativeSrc":"10866:16:97","nodeType":"YulFunctionCall","src":"10866:16:97"}],"functionName":{"name":"mstore","nativeSrc":"10843:6:97","nodeType":"YulIdentifier","src":"10843:6:97"},"nativeSrc":"10843:40:97","nodeType":"YulFunctionCall","src":"10843:40:97"},"nativeSrc":"10843:40:97","nodeType":"YulExpressionStatement","src":"10843:40:97"},{"nativeSrc":"10892:55:97","nodeType":"YulVariableDeclaration","src":"10892:55:97","value":{"arguments":[{"name":"memberValue0_4","nativeSrc":"10924:14:97","nodeType":"YulIdentifier","src":"10924:14:97"},{"name":"tail_2","nativeSrc":"10940:6:97","nodeType":"YulIdentifier","src":"10940:6:97"}],"functionName":{"name":"abi_encode_string","nativeSrc":"10906:17:97","nodeType":"YulIdentifier","src":"10906:17:97"},"nativeSrc":"10906:41:97","nodeType":"YulFunctionCall","src":"10906:41:97"},"variables":[{"name":"tail_3","nativeSrc":"10896:6:97","nodeType":"YulTypedName","src":"10896:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"10967:3:97","nodeType":"YulIdentifier","src":"10967:3:97"},{"kind":"number","nativeSrc":"10972:4:97","nodeType":"YulLiteral","src":"10972:4:97","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"10963:3:97","nodeType":"YulIdentifier","src":"10963:3:97"},"nativeSrc":"10963:14:97","nodeType":"YulFunctionCall","src":"10963:14:97"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10989:5:97","nodeType":"YulIdentifier","src":"10989:5:97"},{"kind":"number","nativeSrc":"10996:4:97","nodeType":"YulLiteral","src":"10996:4:97","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"10985:3:97","nodeType":"YulIdentifier","src":"10985:3:97"},"nativeSrc":"10985:16:97","nodeType":"YulFunctionCall","src":"10985:16:97"}],"functionName":{"name":"mload","nativeSrc":"10979:5:97","nodeType":"YulIdentifier","src":"10979:5:97"},"nativeSrc":"10979:23:97","nodeType":"YulFunctionCall","src":"10979:23:97"}],"functionName":{"name":"mstore","nativeSrc":"10956:6:97","nodeType":"YulIdentifier","src":"10956:6:97"},"nativeSrc":"10956:47:97","nodeType":"YulFunctionCall","src":"10956:47:97"},"nativeSrc":"10956:47:97","nodeType":"YulExpressionStatement","src":"10956:47:97"},{"nativeSrc":"11012:16:97","nodeType":"YulVariableDeclaration","src":"11012:16:97","value":{"kind":"number","nativeSrc":"11022:6:97","nodeType":"YulLiteral","src":"11022:6:97","type":"","value":"0x0100"},"variables":[{"name":"_2","nativeSrc":"11016:2:97","nodeType":"YulTypedName","src":"11016:2:97","type":""}]},{"nativeSrc":"11037:43:97","nodeType":"YulVariableDeclaration","src":"11037:43:97","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11069:5:97","nodeType":"YulIdentifier","src":"11069:5:97"},{"name":"_2","nativeSrc":"11076:2:97","nodeType":"YulIdentifier","src":"11076:2:97"}],"functionName":{"name":"add","nativeSrc":"11065:3:97","nodeType":"YulIdentifier","src":"11065:3:97"},"nativeSrc":"11065:14:97","nodeType":"YulFunctionCall","src":"11065:14:97"}],"functionName":{"name":"mload","nativeSrc":"11059:5:97","nodeType":"YulIdentifier","src":"11059:5:97"},"nativeSrc":"11059:21:97","nodeType":"YulFunctionCall","src":"11059:21:97"},"variables":[{"name":"memberValue0_5","nativeSrc":"11041:14:97","nodeType":"YulTypedName","src":"11041:14:97","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_5","nativeSrc":"11108:14:97","nodeType":"YulIdentifier","src":"11108:14:97"},{"arguments":[{"name":"pos","nativeSrc":"11128:3:97","nodeType":"YulIdentifier","src":"11128:3:97"},{"name":"_2","nativeSrc":"11133:2:97","nodeType":"YulIdentifier","src":"11133:2:97"}],"functionName":{"name":"add","nativeSrc":"11124:3:97","nodeType":"YulIdentifier","src":"11124:3:97"},"nativeSrc":"11124:12:97","nodeType":"YulFunctionCall","src":"11124:12:97"}],"functionName":{"name":"abi_encode_address","nativeSrc":"11089:18:97","nodeType":"YulIdentifier","src":"11089:18:97"},"nativeSrc":"11089:48:97","nodeType":"YulFunctionCall","src":"11089:48:97"},"nativeSrc":"11089:48:97","nodeType":"YulExpressionStatement","src":"11089:48:97"},{"nativeSrc":"11146:16:97","nodeType":"YulVariableDeclaration","src":"11146:16:97","value":{"kind":"number","nativeSrc":"11156:6:97","nodeType":"YulLiteral","src":"11156:6:97","type":"","value":"0x0120"},"variables":[{"name":"_3","nativeSrc":"11150:2:97","nodeType":"YulTypedName","src":"11150:2:97","type":""}]},{"nativeSrc":"11171:43:97","nodeType":"YulVariableDeclaration","src":"11171:43:97","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11203:5:97","nodeType":"YulIdentifier","src":"11203:5:97"},{"name":"_3","nativeSrc":"11210:2:97","nodeType":"YulIdentifier","src":"11210:2:97"}],"functionName":{"name":"add","nativeSrc":"11199:3:97","nodeType":"YulIdentifier","src":"11199:3:97"},"nativeSrc":"11199:14:97","nodeType":"YulFunctionCall","src":"11199:14:97"}],"functionName":{"name":"mload","nativeSrc":"11193:5:97","nodeType":"YulIdentifier","src":"11193:5:97"},"nativeSrc":"11193:21:97","nodeType":"YulFunctionCall","src":"11193:21:97"},"variables":[{"name":"memberValue0_6","nativeSrc":"11175:14:97","nodeType":"YulTypedName","src":"11175:14:97","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_6","nativeSrc":"11241:14:97","nodeType":"YulIdentifier","src":"11241:14:97"},{"arguments":[{"name":"pos","nativeSrc":"11261:3:97","nodeType":"YulIdentifier","src":"11261:3:97"},{"name":"_3","nativeSrc":"11266:2:97","nodeType":"YulIdentifier","src":"11266:2:97"}],"functionName":{"name":"add","nativeSrc":"11257:3:97","nodeType":"YulIdentifier","src":"11257:3:97"},"nativeSrc":"11257:12:97","nodeType":"YulFunctionCall","src":"11257:12:97"}],"functionName":{"name":"abi_encode_uint96","nativeSrc":"11223:17:97","nodeType":"YulIdentifier","src":"11223:17:97"},"nativeSrc":"11223:47:97","nodeType":"YulFunctionCall","src":"11223:47:97"},"nativeSrc":"11223:47:97","nodeType":"YulExpressionStatement","src":"11223:47:97"},{"nativeSrc":"11279:16:97","nodeType":"YulVariableDeclaration","src":"11279:16:97","value":{"kind":"number","nativeSrc":"11289:6:97","nodeType":"YulLiteral","src":"11289:6:97","type":"","value":"0x0140"},"variables":[{"name":"_4","nativeSrc":"11283:2:97","nodeType":"YulTypedName","src":"11283:2:97","type":""}]},{"nativeSrc":"11304:43:97","nodeType":"YulVariableDeclaration","src":"11304:43:97","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11336:5:97","nodeType":"YulIdentifier","src":"11336:5:97"},{"name":"_4","nativeSrc":"11343:2:97","nodeType":"YulIdentifier","src":"11343:2:97"}],"functionName":{"name":"add","nativeSrc":"11332:3:97","nodeType":"YulIdentifier","src":"11332:3:97"},"nativeSrc":"11332:14:97","nodeType":"YulFunctionCall","src":"11332:14:97"}],"functionName":{"name":"mload","nativeSrc":"11326:5:97","nodeType":"YulIdentifier","src":"11326:5:97"},"nativeSrc":"11326:21:97","nodeType":"YulFunctionCall","src":"11326:21:97"},"variables":[{"name":"memberValue0_7","nativeSrc":"11308:14:97","nodeType":"YulTypedName","src":"11308:14:97","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_7","nativeSrc":"11374:14:97","nodeType":"YulIdentifier","src":"11374:14:97"},{"arguments":[{"name":"pos","nativeSrc":"11394:3:97","nodeType":"YulIdentifier","src":"11394:3:97"},{"name":"_4","nativeSrc":"11399:2:97","nodeType":"YulIdentifier","src":"11399:2:97"}],"functionName":{"name":"add","nativeSrc":"11390:3:97","nodeType":"YulIdentifier","src":"11390:3:97"},"nativeSrc":"11390:12:97","nodeType":"YulFunctionCall","src":"11390:12:97"}],"functionName":{"name":"abi_encode_uint32","nativeSrc":"11356:17:97","nodeType":"YulIdentifier","src":"11356:17:97"},"nativeSrc":"11356:47:97","nodeType":"YulFunctionCall","src":"11356:47:97"},"nativeSrc":"11356:47:97","nodeType":"YulExpressionStatement","src":"11356:47:97"},{"nativeSrc":"11412:16:97","nodeType":"YulVariableDeclaration","src":"11412:16:97","value":{"kind":"number","nativeSrc":"11422:6:97","nodeType":"YulLiteral","src":"11422:6:97","type":"","value":"0x0160"},"variables":[{"name":"_5","nativeSrc":"11416:2:97","nodeType":"YulTypedName","src":"11416:2:97","type":""}]},{"nativeSrc":"11437:43:97","nodeType":"YulVariableDeclaration","src":"11437:43:97","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11469:5:97","nodeType":"YulIdentifier","src":"11469:5:97"},{"name":"_5","nativeSrc":"11476:2:97","nodeType":"YulIdentifier","src":"11476:2:97"}],"functionName":{"name":"add","nativeSrc":"11465:3:97","nodeType":"YulIdentifier","src":"11465:3:97"},"nativeSrc":"11465:14:97","nodeType":"YulFunctionCall","src":"11465:14:97"}],"functionName":{"name":"mload","nativeSrc":"11459:5:97","nodeType":"YulIdentifier","src":"11459:5:97"},"nativeSrc":"11459:21:97","nodeType":"YulFunctionCall","src":"11459:21:97"},"variables":[{"name":"memberValue0_8","nativeSrc":"11441:14:97","nodeType":"YulTypedName","src":"11441:14:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"11500:3:97","nodeType":"YulIdentifier","src":"11500:3:97"},{"name":"_5","nativeSrc":"11505:2:97","nodeType":"YulIdentifier","src":"11505:2:97"}],"functionName":{"name":"add","nativeSrc":"11496:3:97","nodeType":"YulIdentifier","src":"11496:3:97"},"nativeSrc":"11496:12:97","nodeType":"YulFunctionCall","src":"11496:12:97"},{"arguments":[{"name":"tail_3","nativeSrc":"11514:6:97","nodeType":"YulIdentifier","src":"11514:6:97"},{"name":"pos","nativeSrc":"11522:3:97","nodeType":"YulIdentifier","src":"11522:3:97"}],"functionName":{"name":"sub","nativeSrc":"11510:3:97","nodeType":"YulIdentifier","src":"11510:3:97"},"nativeSrc":"11510:16:97","nodeType":"YulFunctionCall","src":"11510:16:97"}],"functionName":{"name":"mstore","nativeSrc":"11489:6:97","nodeType":"YulIdentifier","src":"11489:6:97"},"nativeSrc":"11489:38:97","nodeType":"YulFunctionCall","src":"11489:38:97"},"nativeSrc":"11489:38:97","nodeType":"YulExpressionStatement","src":"11489:38:97"},{"nativeSrc":"11536:48:97","nodeType":"YulAssignment","src":"11536:48:97","value":{"arguments":[{"name":"memberValue0_8","nativeSrc":"11561:14:97","nodeType":"YulIdentifier","src":"11561:14:97"},{"name":"tail_3","nativeSrc":"11577:6:97","nodeType":"YulIdentifier","src":"11577:6:97"}],"functionName":{"name":"abi_encode_string","nativeSrc":"11543:17:97","nodeType":"YulIdentifier","src":"11543:17:97"},"nativeSrc":"11543:41:97","nodeType":"YulFunctionCall","src":"11543:41:97"},"variableNames":[{"name":"end","nativeSrc":"11536:3:97","nodeType":"YulIdentifier","src":"11536:3:97"}]}]},"name":"abi_encode_struct_RiskParameterUpdate","nativeSrc":"9998:1592:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10045:5:97","nodeType":"YulTypedName","src":"10045:5:97","type":""},{"name":"pos","nativeSrc":"10052:3:97","nodeType":"YulTypedName","src":"10052:3:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"10060:3:97","nodeType":"YulTypedName","src":"10060:3:97","type":""}],"src":"9998:1592:97"},{"body":{"nativeSrc":"11627:152:97","nodeType":"YulBlock","src":"11627:152:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11644:1:97","nodeType":"YulLiteral","src":"11644:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"11647:77:97","nodeType":"YulLiteral","src":"11647:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"11637:6:97","nodeType":"YulIdentifier","src":"11637:6:97"},"nativeSrc":"11637:88:97","nodeType":"YulFunctionCall","src":"11637:88:97"},"nativeSrc":"11637:88:97","nodeType":"YulExpressionStatement","src":"11637:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11741:1:97","nodeType":"YulLiteral","src":"11741:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"11744:4:97","nodeType":"YulLiteral","src":"11744:4:97","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"11734:6:97","nodeType":"YulIdentifier","src":"11734:6:97"},"nativeSrc":"11734:15:97","nodeType":"YulFunctionCall","src":"11734:15:97"},"nativeSrc":"11734:15:97","nodeType":"YulExpressionStatement","src":"11734:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11765:1:97","nodeType":"YulLiteral","src":"11765:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"11768:4:97","nodeType":"YulLiteral","src":"11768:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"11758:6:97","nodeType":"YulIdentifier","src":"11758:6:97"},"nativeSrc":"11758:15:97","nodeType":"YulFunctionCall","src":"11758:15:97"},"nativeSrc":"11758:15:97","nodeType":"YulExpressionStatement","src":"11758:15:97"}]},"name":"panic_error_0x21","nativeSrc":"11595:184:97","nodeType":"YulFunctionDefinition","src":"11595:184:97"},{"body":{"nativeSrc":"11838:243:97","nodeType":"YulBlock","src":"11838:243:97","statements":[{"body":{"nativeSrc":"11880:168:97","nodeType":"YulBlock","src":"11880:168:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11901:1:97","nodeType":"YulLiteral","src":"11901:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"11904:77:97","nodeType":"YulLiteral","src":"11904:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"11894:6:97","nodeType":"YulIdentifier","src":"11894:6:97"},"nativeSrc":"11894:88:97","nodeType":"YulFunctionCall","src":"11894:88:97"},"nativeSrc":"11894:88:97","nodeType":"YulExpressionStatement","src":"11894:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12002:1:97","nodeType":"YulLiteral","src":"12002:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"12005:4:97","nodeType":"YulLiteral","src":"12005:4:97","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"11995:6:97","nodeType":"YulIdentifier","src":"11995:6:97"},"nativeSrc":"11995:15:97","nodeType":"YulFunctionCall","src":"11995:15:97"},"nativeSrc":"11995:15:97","nodeType":"YulExpressionStatement","src":"11995:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12030:1:97","nodeType":"YulLiteral","src":"12030:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"12033:4:97","nodeType":"YulLiteral","src":"12033:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"12023:6:97","nodeType":"YulIdentifier","src":"12023:6:97"},"nativeSrc":"12023:15:97","nodeType":"YulFunctionCall","src":"12023:15:97"},"nativeSrc":"12023:15:97","nodeType":"YulExpressionStatement","src":"12023:15:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11861:5:97","nodeType":"YulIdentifier","src":"11861:5:97"},{"kind":"number","nativeSrc":"11868:1:97","nodeType":"YulLiteral","src":"11868:1:97","type":"","value":"4"}],"functionName":{"name":"lt","nativeSrc":"11858:2:97","nodeType":"YulIdentifier","src":"11858:2:97"},"nativeSrc":"11858:12:97","nodeType":"YulFunctionCall","src":"11858:12:97"}],"functionName":{"name":"iszero","nativeSrc":"11851:6:97","nodeType":"YulIdentifier","src":"11851:6:97"},"nativeSrc":"11851:20:97","nodeType":"YulFunctionCall","src":"11851:20:97"},"nativeSrc":"11848:200:97","nodeType":"YulIf","src":"11848:200:97"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"12064:3:97","nodeType":"YulIdentifier","src":"12064:3:97"},{"name":"value","nativeSrc":"12069:5:97","nodeType":"YulIdentifier","src":"12069:5:97"}],"functionName":{"name":"mstore","nativeSrc":"12057:6:97","nodeType":"YulIdentifier","src":"12057:6:97"},"nativeSrc":"12057:18:97","nodeType":"YulFunctionCall","src":"12057:18:97"},"nativeSrc":"12057:18:97","nodeType":"YulExpressionStatement","src":"12057:18:97"}]},"name":"abi_encode_enum_UpdateStatus","nativeSrc":"11784:297:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11822:5:97","nodeType":"YulTypedName","src":"11822:5:97","type":""},{"name":"pos","nativeSrc":"11829:3:97","nodeType":"YulTypedName","src":"11829:3:97","type":""}],"src":"11784:297:97"},{"body":{"nativeSrc":"12363:321:97","nodeType":"YulBlock","src":"12363:321:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"12380:9:97","nodeType":"YulIdentifier","src":"12380:9:97"},{"kind":"number","nativeSrc":"12391:3:97","nodeType":"YulLiteral","src":"12391:3:97","type":"","value":"128"}],"functionName":{"name":"mstore","nativeSrc":"12373:6:97","nodeType":"YulIdentifier","src":"12373:6:97"},"nativeSrc":"12373:22:97","nodeType":"YulFunctionCall","src":"12373:22:97"},"nativeSrc":"12373:22:97","nodeType":"YulExpressionStatement","src":"12373:22:97"},{"nativeSrc":"12404:74:97","nodeType":"YulAssignment","src":"12404:74:97","value":{"arguments":[{"name":"value0","nativeSrc":"12450:6:97","nodeType":"YulIdentifier","src":"12450:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"12462:9:97","nodeType":"YulIdentifier","src":"12462:9:97"},{"kind":"number","nativeSrc":"12473:3:97","nodeType":"YulLiteral","src":"12473:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"12458:3:97","nodeType":"YulIdentifier","src":"12458:3:97"},"nativeSrc":"12458:19:97","nodeType":"YulFunctionCall","src":"12458:19:97"}],"functionName":{"name":"abi_encode_struct_RiskParameterUpdate","nativeSrc":"12412:37:97","nodeType":"YulIdentifier","src":"12412:37:97"},"nativeSrc":"12412:66:97","nodeType":"YulFunctionCall","src":"12412:66:97"},"variableNames":[{"name":"tail","nativeSrc":"12404:4:97","nodeType":"YulIdentifier","src":"12404:4:97"}]},{"expression":{"arguments":[{"name":"value1","nativeSrc":"12516:6:97","nodeType":"YulIdentifier","src":"12516:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"12528:9:97","nodeType":"YulIdentifier","src":"12528:9:97"},{"kind":"number","nativeSrc":"12539:2:97","nodeType":"YulLiteral","src":"12539:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12524:3:97","nodeType":"YulIdentifier","src":"12524:3:97"},"nativeSrc":"12524:18:97","nodeType":"YulFunctionCall","src":"12524:18:97"}],"functionName":{"name":"abi_encode_enum_UpdateStatus","nativeSrc":"12487:28:97","nodeType":"YulIdentifier","src":"12487:28:97"},"nativeSrc":"12487:56:97","nodeType":"YulFunctionCall","src":"12487:56:97"},"nativeSrc":"12487:56:97","nodeType":"YulExpressionStatement","src":"12487:56:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12563:9:97","nodeType":"YulIdentifier","src":"12563:9:97"},{"kind":"number","nativeSrc":"12574:2:97","nodeType":"YulLiteral","src":"12574:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12559:3:97","nodeType":"YulIdentifier","src":"12559:3:97"},"nativeSrc":"12559:18:97","nodeType":"YulFunctionCall","src":"12559:18:97"},{"name":"value2","nativeSrc":"12579:6:97","nodeType":"YulIdentifier","src":"12579:6:97"}],"functionName":{"name":"mstore","nativeSrc":"12552:6:97","nodeType":"YulIdentifier","src":"12552:6:97"},"nativeSrc":"12552:34:97","nodeType":"YulFunctionCall","src":"12552:34:97"},"nativeSrc":"12552:34:97","nodeType":"YulExpressionStatement","src":"12552:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12606:9:97","nodeType":"YulIdentifier","src":"12606:9:97"},{"kind":"number","nativeSrc":"12617:2:97","nodeType":"YulLiteral","src":"12617:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12602:3:97","nodeType":"YulIdentifier","src":"12602:3:97"},"nativeSrc":"12602:18:97","nodeType":"YulFunctionCall","src":"12602:18:97"},{"arguments":[{"name":"value3","nativeSrc":"12626:6:97","nodeType":"YulIdentifier","src":"12626:6:97"},{"kind":"number","nativeSrc":"12634:42:97","nodeType":"YulLiteral","src":"12634:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"12622:3:97","nodeType":"YulIdentifier","src":"12622:3:97"},"nativeSrc":"12622:55:97","nodeType":"YulFunctionCall","src":"12622:55:97"}],"functionName":{"name":"mstore","nativeSrc":"12595:6:97","nodeType":"YulIdentifier","src":"12595:6:97"},"nativeSrc":"12595:83:97","nodeType":"YulFunctionCall","src":"12595:83:97"},"nativeSrc":"12595:83:97","nodeType":"YulExpressionStatement","src":"12595:83:97"}]},"name":"abi_encode_tuple_t_struct$_RiskParameterUpdate_$16568_memory_ptr_t_enum$_UpdateStatus_$16312_t_uint256_t_address__to_t_struct$_RiskParameterUpdate_$16568_memory_ptr_t_uint8_t_uint256_t_address__fromStack_reversed","nativeSrc":"12086:598:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12308:9:97","nodeType":"YulTypedName","src":"12308:9:97","type":""},{"name":"value3","nativeSrc":"12319:6:97","nodeType":"YulTypedName","src":"12319:6:97","type":""},{"name":"value2","nativeSrc":"12327:6:97","nodeType":"YulTypedName","src":"12327:6:97","type":""},{"name":"value1","nativeSrc":"12335:6:97","nodeType":"YulTypedName","src":"12335:6:97","type":""},{"name":"value0","nativeSrc":"12343:6:97","nodeType":"YulTypedName","src":"12343:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12354:4:97","nodeType":"YulTypedName","src":"12354:4:97","type":""}],"src":"12086:598:97"},{"body":{"nativeSrc":"12758:115:97","nodeType":"YulBlock","src":"12758:115:97","statements":[{"body":{"nativeSrc":"12804:16:97","nodeType":"YulBlock","src":"12804:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12813:1:97","nodeType":"YulLiteral","src":"12813:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"12816:1:97","nodeType":"YulLiteral","src":"12816:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12806:6:97","nodeType":"YulIdentifier","src":"12806:6:97"},"nativeSrc":"12806:12:97","nodeType":"YulFunctionCall","src":"12806:12:97"},"nativeSrc":"12806:12:97","nodeType":"YulExpressionStatement","src":"12806:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12779:7:97","nodeType":"YulIdentifier","src":"12779:7:97"},{"name":"headStart","nativeSrc":"12788:9:97","nodeType":"YulIdentifier","src":"12788:9:97"}],"functionName":{"name":"sub","nativeSrc":"12775:3:97","nodeType":"YulIdentifier","src":"12775:3:97"},"nativeSrc":"12775:23:97","nodeType":"YulFunctionCall","src":"12775:23:97"},{"kind":"number","nativeSrc":"12800:2:97","nodeType":"YulLiteral","src":"12800:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"12771:3:97","nodeType":"YulIdentifier","src":"12771:3:97"},"nativeSrc":"12771:32:97","nodeType":"YulFunctionCall","src":"12771:32:97"},"nativeSrc":"12768:52:97","nodeType":"YulIf","src":"12768:52:97"},{"nativeSrc":"12829:38:97","nodeType":"YulAssignment","src":"12829:38:97","value":{"arguments":[{"name":"headStart","nativeSrc":"12857:9:97","nodeType":"YulIdentifier","src":"12857:9:97"}],"functionName":{"name":"abi_decode_uint32","nativeSrc":"12839:17:97","nodeType":"YulIdentifier","src":"12839:17:97"},"nativeSrc":"12839:28:97","nodeType":"YulFunctionCall","src":"12839:28:97"},"variableNames":[{"name":"value0","nativeSrc":"12829:6:97","nodeType":"YulIdentifier","src":"12829:6:97"}]}]},"name":"abi_decode_tuple_t_uint32","nativeSrc":"12689:184:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12724:9:97","nodeType":"YulTypedName","src":"12724:9:97","type":""},{"name":"dataEnd","nativeSrc":"12735:7:97","nodeType":"YulTypedName","src":"12735:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12747:6:97","nodeType":"YulTypedName","src":"12747:6:97","type":""}],"src":"12689:184:97"},{"body":{"nativeSrc":"12979:76:97","nodeType":"YulBlock","src":"12979:76:97","statements":[{"nativeSrc":"12989:26:97","nodeType":"YulAssignment","src":"12989:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"13001:9:97","nodeType":"YulIdentifier","src":"13001:9:97"},{"kind":"number","nativeSrc":"13012:2:97","nodeType":"YulLiteral","src":"13012:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12997:3:97","nodeType":"YulIdentifier","src":"12997:3:97"},"nativeSrc":"12997:18:97","nodeType":"YulFunctionCall","src":"12997:18:97"},"variableNames":[{"name":"tail","nativeSrc":"12989:4:97","nodeType":"YulIdentifier","src":"12989:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13031:9:97","nodeType":"YulIdentifier","src":"13031:9:97"},{"name":"value0","nativeSrc":"13042:6:97","nodeType":"YulIdentifier","src":"13042:6:97"}],"functionName":{"name":"mstore","nativeSrc":"13024:6:97","nodeType":"YulIdentifier","src":"13024:6:97"},"nativeSrc":"13024:25:97","nodeType":"YulFunctionCall","src":"13024:25:97"},"nativeSrc":"13024:25:97","nodeType":"YulExpressionStatement","src":"13024:25:97"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"12878:177:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12948:9:97","nodeType":"YulTypedName","src":"12948:9:97","type":""},{"name":"value0","nativeSrc":"12959:6:97","nodeType":"YulTypedName","src":"12959:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12970:4:97","nodeType":"YulTypedName","src":"12970:4:97","type":""}],"src":"12878:177:97"},{"body":{"nativeSrc":"13167:438:97","nodeType":"YulBlock","src":"13167:438:97","statements":[{"body":{"nativeSrc":"13213:16:97","nodeType":"YulBlock","src":"13213:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13222:1:97","nodeType":"YulLiteral","src":"13222:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"13225:1:97","nodeType":"YulLiteral","src":"13225:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13215:6:97","nodeType":"YulIdentifier","src":"13215:6:97"},"nativeSrc":"13215:12:97","nodeType":"YulFunctionCall","src":"13215:12:97"},"nativeSrc":"13215:12:97","nodeType":"YulExpressionStatement","src":"13215:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"13188:7:97","nodeType":"YulIdentifier","src":"13188:7:97"},{"name":"headStart","nativeSrc":"13197:9:97","nodeType":"YulIdentifier","src":"13197:9:97"}],"functionName":{"name":"sub","nativeSrc":"13184:3:97","nodeType":"YulIdentifier","src":"13184:3:97"},"nativeSrc":"13184:23:97","nodeType":"YulFunctionCall","src":"13184:23:97"},{"kind":"number","nativeSrc":"13209:2:97","nodeType":"YulLiteral","src":"13209:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"13180:3:97","nodeType":"YulIdentifier","src":"13180:3:97"},"nativeSrc":"13180:32:97","nodeType":"YulFunctionCall","src":"13180:32:97"},"nativeSrc":"13177:52:97","nodeType":"YulIf","src":"13177:52:97"},{"nativeSrc":"13238:37:97","nodeType":"YulVariableDeclaration","src":"13238:37:97","value":{"arguments":[{"name":"headStart","nativeSrc":"13265:9:97","nodeType":"YulIdentifier","src":"13265:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"13252:12:97","nodeType":"YulIdentifier","src":"13252:12:97"},"nativeSrc":"13252:23:97","nodeType":"YulFunctionCall","src":"13252:23:97"},"variables":[{"name":"offset","nativeSrc":"13242:6:97","nodeType":"YulTypedName","src":"13242:6:97","type":""}]},{"body":{"nativeSrc":"13318:16:97","nodeType":"YulBlock","src":"13318:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13327:1:97","nodeType":"YulLiteral","src":"13327:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"13330:1:97","nodeType":"YulLiteral","src":"13330:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13320:6:97","nodeType":"YulIdentifier","src":"13320:6:97"},"nativeSrc":"13320:12:97","nodeType":"YulFunctionCall","src":"13320:12:97"},"nativeSrc":"13320:12:97","nodeType":"YulExpressionStatement","src":"13320:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"13290:6:97","nodeType":"YulIdentifier","src":"13290:6:97"},{"kind":"number","nativeSrc":"13298:18:97","nodeType":"YulLiteral","src":"13298:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"13287:2:97","nodeType":"YulIdentifier","src":"13287:2:97"},"nativeSrc":"13287:30:97","nodeType":"YulFunctionCall","src":"13287:30:97"},"nativeSrc":"13284:50:97","nodeType":"YulIf","src":"13284:50:97"},{"nativeSrc":"13343:84:97","nodeType":"YulVariableDeclaration","src":"13343:84:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13399:9:97","nodeType":"YulIdentifier","src":"13399:9:97"},{"name":"offset","nativeSrc":"13410:6:97","nodeType":"YulIdentifier","src":"13410:6:97"}],"functionName":{"name":"add","nativeSrc":"13395:3:97","nodeType":"YulIdentifier","src":"13395:3:97"},"nativeSrc":"13395:22:97","nodeType":"YulFunctionCall","src":"13395:22:97"},{"name":"dataEnd","nativeSrc":"13419:7:97","nodeType":"YulIdentifier","src":"13419:7:97"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"13369:25:97","nodeType":"YulIdentifier","src":"13369:25:97"},"nativeSrc":"13369:58:97","nodeType":"YulFunctionCall","src":"13369:58:97"},"variables":[{"name":"value0_1","nativeSrc":"13347:8:97","nodeType":"YulTypedName","src":"13347:8:97","type":""},{"name":"value1_1","nativeSrc":"13357:8:97","nodeType":"YulTypedName","src":"13357:8:97","type":""}]},{"nativeSrc":"13436:18:97","nodeType":"YulAssignment","src":"13436:18:97","value":{"name":"value0_1","nativeSrc":"13446:8:97","nodeType":"YulIdentifier","src":"13446:8:97"},"variableNames":[{"name":"value0","nativeSrc":"13436:6:97","nodeType":"YulIdentifier","src":"13436:6:97"}]},{"nativeSrc":"13463:18:97","nodeType":"YulAssignment","src":"13463:18:97","value":{"name":"value1_1","nativeSrc":"13473:8:97","nodeType":"YulIdentifier","src":"13473:8:97"},"variableNames":[{"name":"value1","nativeSrc":"13463:6:97","nodeType":"YulIdentifier","src":"13463:6:97"}]},{"nativeSrc":"13490:45:97","nodeType":"YulVariableDeclaration","src":"13490:45:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13520:9:97","nodeType":"YulIdentifier","src":"13520:9:97"},{"kind":"number","nativeSrc":"13531:2:97","nodeType":"YulLiteral","src":"13531:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13516:3:97","nodeType":"YulIdentifier","src":"13516:3:97"},"nativeSrc":"13516:18:97","nodeType":"YulFunctionCall","src":"13516:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"13503:12:97","nodeType":"YulIdentifier","src":"13503:12:97"},"nativeSrc":"13503:32:97","nodeType":"YulFunctionCall","src":"13503:32:97"},"variables":[{"name":"value","nativeSrc":"13494:5:97","nodeType":"YulTypedName","src":"13494:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"13569:5:97","nodeType":"YulIdentifier","src":"13569:5:97"}],"functionName":{"name":"validator_revert_address","nativeSrc":"13544:24:97","nodeType":"YulIdentifier","src":"13544:24:97"},"nativeSrc":"13544:31:97","nodeType":"YulFunctionCall","src":"13544:31:97"},"nativeSrc":"13544:31:97","nodeType":"YulExpressionStatement","src":"13544:31:97"},{"nativeSrc":"13584:15:97","nodeType":"YulAssignment","src":"13584:15:97","value":{"name":"value","nativeSrc":"13594:5:97","nodeType":"YulIdentifier","src":"13594:5:97"},"variableNames":[{"name":"value2","nativeSrc":"13584:6:97","nodeType":"YulIdentifier","src":"13584:6:97"}]}]},"name":"abi_decode_tuple_t_string_calldata_ptrt_address","nativeSrc":"13060:545:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13117:9:97","nodeType":"YulTypedName","src":"13117:9:97","type":""},{"name":"dataEnd","nativeSrc":"13128:7:97","nodeType":"YulTypedName","src":"13128:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"13140:6:97","nodeType":"YulTypedName","src":"13140:6:97","type":""},{"name":"value1","nativeSrc":"13148:6:97","nodeType":"YulTypedName","src":"13148:6:97","type":""},{"name":"value2","nativeSrc":"13156:6:97","nodeType":"YulTypedName","src":"13156:6:97","type":""}],"src":"13060:545:97"},{"body":{"nativeSrc":"13783:533:97","nodeType":"YulBlock","src":"13783:533:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13800:9:97","nodeType":"YulIdentifier","src":"13800:9:97"},{"kind":"number","nativeSrc":"13811:2:97","nodeType":"YulLiteral","src":"13811:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"13793:6:97","nodeType":"YulIdentifier","src":"13793:6:97"},"nativeSrc":"13793:21:97","nodeType":"YulFunctionCall","src":"13793:21:97"},"nativeSrc":"13793:21:97","nodeType":"YulExpressionStatement","src":"13793:21:97"},{"nativeSrc":"13823:33:97","nodeType":"YulVariableDeclaration","src":"13823:33:97","value":{"arguments":[{"name":"value0","nativeSrc":"13849:6:97","nodeType":"YulIdentifier","src":"13849:6:97"}],"functionName":{"name":"mload","nativeSrc":"13843:5:97","nodeType":"YulIdentifier","src":"13843:5:97"},"nativeSrc":"13843:13:97","nodeType":"YulFunctionCall","src":"13843:13:97"},"variables":[{"name":"memberValue0","nativeSrc":"13827:12:97","nodeType":"YulTypedName","src":"13827:12:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13876:9:97","nodeType":"YulIdentifier","src":"13876:9:97"},{"kind":"number","nativeSrc":"13887:2:97","nodeType":"YulLiteral","src":"13887:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13872:3:97","nodeType":"YulIdentifier","src":"13872:3:97"},"nativeSrc":"13872:18:97","nodeType":"YulFunctionCall","src":"13872:18:97"},{"kind":"number","nativeSrc":"13892:4:97","nodeType":"YulLiteral","src":"13892:4:97","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"13865:6:97","nodeType":"YulIdentifier","src":"13865:6:97"},"nativeSrc":"13865:32:97","nodeType":"YulFunctionCall","src":"13865:32:97"},"nativeSrc":"13865:32:97","nodeType":"YulExpressionStatement","src":"13865:32:97"},{"nativeSrc":"13906:86:97","nodeType":"YulVariableDeclaration","src":"13906:86:97","value":{"arguments":[{"name":"memberValue0","nativeSrc":"13958:12:97","nodeType":"YulIdentifier","src":"13958:12:97"},{"arguments":[{"name":"headStart","nativeSrc":"13976:9:97","nodeType":"YulIdentifier","src":"13976:9:97"},{"kind":"number","nativeSrc":"13987:3:97","nodeType":"YulLiteral","src":"13987:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"13972:3:97","nodeType":"YulIdentifier","src":"13972:3:97"},"nativeSrc":"13972:19:97","nodeType":"YulFunctionCall","src":"13972:19:97"}],"functionName":{"name":"abi_encode_struct_RiskParameterUpdate","nativeSrc":"13920:37:97","nodeType":"YulIdentifier","src":"13920:37:97"},"nativeSrc":"13920:72:97","nodeType":"YulFunctionCall","src":"13920:72:97"},"variables":[{"name":"tail_1","nativeSrc":"13910:6:97","nodeType":"YulTypedName","src":"13910:6:97","type":""}]},{"nativeSrc":"14001:44:97","nodeType":"YulVariableDeclaration","src":"14001:44:97","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"14033:6:97","nodeType":"YulIdentifier","src":"14033:6:97"},{"kind":"number","nativeSrc":"14041:2:97","nodeType":"YulLiteral","src":"14041:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14029:3:97","nodeType":"YulIdentifier","src":"14029:3:97"},"nativeSrc":"14029:15:97","nodeType":"YulFunctionCall","src":"14029:15:97"}],"functionName":{"name":"mload","nativeSrc":"14023:5:97","nodeType":"YulIdentifier","src":"14023:5:97"},"nativeSrc":"14023:22:97","nodeType":"YulFunctionCall","src":"14023:22:97"},"variables":[{"name":"memberValue0_1","nativeSrc":"14005:14:97","nodeType":"YulTypedName","src":"14005:14:97","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_1","nativeSrc":"14083:14:97","nodeType":"YulIdentifier","src":"14083:14:97"},{"arguments":[{"name":"headStart","nativeSrc":"14103:9:97","nodeType":"YulIdentifier","src":"14103:9:97"},{"kind":"number","nativeSrc":"14114:2:97","nodeType":"YulLiteral","src":"14114:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14099:3:97","nodeType":"YulIdentifier","src":"14099:3:97"},"nativeSrc":"14099:18:97","nodeType":"YulFunctionCall","src":"14099:18:97"}],"functionName":{"name":"abi_encode_enum_UpdateStatus","nativeSrc":"14054:28:97","nodeType":"YulIdentifier","src":"14054:28:97"},"nativeSrc":"14054:64:97","nodeType":"YulFunctionCall","src":"14054:64:97"},"nativeSrc":"14054:64:97","nodeType":"YulExpressionStatement","src":"14054:64:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14138:9:97","nodeType":"YulIdentifier","src":"14138:9:97"},{"kind":"number","nativeSrc":"14149:2:97","nodeType":"YulLiteral","src":"14149:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"14134:3:97","nodeType":"YulIdentifier","src":"14134:3:97"},"nativeSrc":"14134:18:97","nodeType":"YulFunctionCall","src":"14134:18:97"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"14164:6:97","nodeType":"YulIdentifier","src":"14164:6:97"},{"kind":"number","nativeSrc":"14172:2:97","nodeType":"YulLiteral","src":"14172:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14160:3:97","nodeType":"YulIdentifier","src":"14160:3:97"},"nativeSrc":"14160:15:97","nodeType":"YulFunctionCall","src":"14160:15:97"}],"functionName":{"name":"mload","nativeSrc":"14154:5:97","nodeType":"YulIdentifier","src":"14154:5:97"},"nativeSrc":"14154:22:97","nodeType":"YulFunctionCall","src":"14154:22:97"}],"functionName":{"name":"mstore","nativeSrc":"14127:6:97","nodeType":"YulIdentifier","src":"14127:6:97"},"nativeSrc":"14127:50:97","nodeType":"YulFunctionCall","src":"14127:50:97"},"nativeSrc":"14127:50:97","nodeType":"YulExpressionStatement","src":"14127:50:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14197:9:97","nodeType":"YulIdentifier","src":"14197:9:97"},{"kind":"number","nativeSrc":"14208:4:97","nodeType":"YulLiteral","src":"14208:4:97","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"14193:3:97","nodeType":"YulIdentifier","src":"14193:3:97"},"nativeSrc":"14193:20:97","nodeType":"YulFunctionCall","src":"14193:20:97"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"14229:6:97","nodeType":"YulIdentifier","src":"14229:6:97"},{"kind":"number","nativeSrc":"14237:2:97","nodeType":"YulLiteral","src":"14237:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"14225:3:97","nodeType":"YulIdentifier","src":"14225:3:97"},"nativeSrc":"14225:15:97","nodeType":"YulFunctionCall","src":"14225:15:97"}],"functionName":{"name":"mload","nativeSrc":"14219:5:97","nodeType":"YulIdentifier","src":"14219:5:97"},"nativeSrc":"14219:22:97","nodeType":"YulFunctionCall","src":"14219:22:97"},{"kind":"number","nativeSrc":"14243:42:97","nodeType":"YulLiteral","src":"14243:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"14215:3:97","nodeType":"YulIdentifier","src":"14215:3:97"},"nativeSrc":"14215:71:97","nodeType":"YulFunctionCall","src":"14215:71:97"}],"functionName":{"name":"mstore","nativeSrc":"14186:6:97","nodeType":"YulIdentifier","src":"14186:6:97"},"nativeSrc":"14186:101:97","nodeType":"YulFunctionCall","src":"14186:101:97"},"nativeSrc":"14186:101:97","nodeType":"YulExpressionStatement","src":"14186:101:97"},{"nativeSrc":"14296:14:97","nodeType":"YulAssignment","src":"14296:14:97","value":{"name":"tail_1","nativeSrc":"14304:6:97","nodeType":"YulIdentifier","src":"14304:6:97"},"variableNames":[{"name":"tail","nativeSrc":"14296:4:97","nodeType":"YulIdentifier","src":"14296:4:97"}]}]},"name":"abi_encode_tuple_t_struct$_DestinationUpdate_$16332_memory_ptr__to_t_struct$_DestinationUpdate_$16332_memory_ptr__fromStack_reversed","nativeSrc":"13610:706:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13752:9:97","nodeType":"YulTypedName","src":"13752:9:97","type":""},{"name":"value0","nativeSrc":"13763:6:97","nodeType":"YulTypedName","src":"13763:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13774:4:97","nodeType":"YulTypedName","src":"13774:4:97","type":""}],"src":"13610:706:97"},{"body":{"nativeSrc":"14472:481:97","nodeType":"YulBlock","src":"14472:481:97","statements":[{"nativeSrc":"14482:12:97","nodeType":"YulVariableDeclaration","src":"14482:12:97","value":{"kind":"number","nativeSrc":"14492:2:97","nodeType":"YulLiteral","src":"14492:2:97","type":"","value":"32"},"variables":[{"name":"_1","nativeSrc":"14486:2:97","nodeType":"YulTypedName","src":"14486:2:97","type":""}]},{"nativeSrc":"14503:32:97","nodeType":"YulVariableDeclaration","src":"14503:32:97","value":{"arguments":[{"name":"headStart","nativeSrc":"14521:9:97","nodeType":"YulIdentifier","src":"14521:9:97"},{"kind":"number","nativeSrc":"14532:2:97","nodeType":"YulLiteral","src":"14532:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14517:3:97","nodeType":"YulIdentifier","src":"14517:3:97"},"nativeSrc":"14517:18:97","nodeType":"YulFunctionCall","src":"14517:18:97"},"variables":[{"name":"tail_1","nativeSrc":"14507:6:97","nodeType":"YulTypedName","src":"14507:6:97","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"14551:9:97","nodeType":"YulIdentifier","src":"14551:9:97"},{"kind":"number","nativeSrc":"14562:2:97","nodeType":"YulLiteral","src":"14562:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"14544:6:97","nodeType":"YulIdentifier","src":"14544:6:97"},"nativeSrc":"14544:21:97","nodeType":"YulFunctionCall","src":"14544:21:97"},"nativeSrc":"14544:21:97","nodeType":"YulExpressionStatement","src":"14544:21:97"},{"nativeSrc":"14574:17:97","nodeType":"YulVariableDeclaration","src":"14574:17:97","value":{"name":"tail_1","nativeSrc":"14585:6:97","nodeType":"YulIdentifier","src":"14585:6:97"},"variables":[{"name":"pos","nativeSrc":"14578:3:97","nodeType":"YulTypedName","src":"14578:3:97","type":""}]},{"nativeSrc":"14600:27:97","nodeType":"YulVariableDeclaration","src":"14600:27:97","value":{"arguments":[{"name":"value0","nativeSrc":"14620:6:97","nodeType":"YulIdentifier","src":"14620:6:97"}],"functionName":{"name":"mload","nativeSrc":"14614:5:97","nodeType":"YulIdentifier","src":"14614:5:97"},"nativeSrc":"14614:13:97","nodeType":"YulFunctionCall","src":"14614:13:97"},"variables":[{"name":"length","nativeSrc":"14604:6:97","nodeType":"YulTypedName","src":"14604:6:97","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nativeSrc":"14643:6:97","nodeType":"YulIdentifier","src":"14643:6:97"},{"name":"length","nativeSrc":"14651:6:97","nodeType":"YulIdentifier","src":"14651:6:97"}],"functionName":{"name":"mstore","nativeSrc":"14636:6:97","nodeType":"YulIdentifier","src":"14636:6:97"},"nativeSrc":"14636:22:97","nodeType":"YulFunctionCall","src":"14636:22:97"},"nativeSrc":"14636:22:97","nodeType":"YulExpressionStatement","src":"14636:22:97"},{"nativeSrc":"14667:25:97","nodeType":"YulAssignment","src":"14667:25:97","value":{"arguments":[{"name":"headStart","nativeSrc":"14678:9:97","nodeType":"YulIdentifier","src":"14678:9:97"},{"kind":"number","nativeSrc":"14689:2:97","nodeType":"YulLiteral","src":"14689:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14674:3:97","nodeType":"YulIdentifier","src":"14674:3:97"},"nativeSrc":"14674:18:97","nodeType":"YulFunctionCall","src":"14674:18:97"},"variableNames":[{"name":"pos","nativeSrc":"14667:3:97","nodeType":"YulIdentifier","src":"14667:3:97"}]},{"nativeSrc":"14701:29:97","nodeType":"YulVariableDeclaration","src":"14701:29:97","value":{"arguments":[{"name":"value0","nativeSrc":"14719:6:97","nodeType":"YulIdentifier","src":"14719:6:97"},{"kind":"number","nativeSrc":"14727:2:97","nodeType":"YulLiteral","src":"14727:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14715:3:97","nodeType":"YulIdentifier","src":"14715:3:97"},"nativeSrc":"14715:15:97","nodeType":"YulFunctionCall","src":"14715:15:97"},"variables":[{"name":"srcPtr","nativeSrc":"14705:6:97","nodeType":"YulTypedName","src":"14705:6:97","type":""}]},{"nativeSrc":"14739:10:97","nodeType":"YulVariableDeclaration","src":"14739:10:97","value":{"kind":"number","nativeSrc":"14748:1:97","nodeType":"YulLiteral","src":"14748:1:97","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"14743:1:97","nodeType":"YulTypedName","src":"14743:1:97","type":""}]},{"body":{"nativeSrc":"14807:120:97","nodeType":"YulBlock","src":"14807:120:97","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"14828:3:97","nodeType":"YulIdentifier","src":"14828:3:97"},{"arguments":[{"name":"srcPtr","nativeSrc":"14839:6:97","nodeType":"YulIdentifier","src":"14839:6:97"}],"functionName":{"name":"mload","nativeSrc":"14833:5:97","nodeType":"YulIdentifier","src":"14833:5:97"},"nativeSrc":"14833:13:97","nodeType":"YulFunctionCall","src":"14833:13:97"}],"functionName":{"name":"mstore","nativeSrc":"14821:6:97","nodeType":"YulIdentifier","src":"14821:6:97"},"nativeSrc":"14821:26:97","nodeType":"YulFunctionCall","src":"14821:26:97"},"nativeSrc":"14821:26:97","nodeType":"YulExpressionStatement","src":"14821:26:97"},{"nativeSrc":"14860:19:97","nodeType":"YulAssignment","src":"14860:19:97","value":{"arguments":[{"name":"pos","nativeSrc":"14871:3:97","nodeType":"YulIdentifier","src":"14871:3:97"},{"name":"_1","nativeSrc":"14876:2:97","nodeType":"YulIdentifier","src":"14876:2:97"}],"functionName":{"name":"add","nativeSrc":"14867:3:97","nodeType":"YulIdentifier","src":"14867:3:97"},"nativeSrc":"14867:12:97","nodeType":"YulFunctionCall","src":"14867:12:97"},"variableNames":[{"name":"pos","nativeSrc":"14860:3:97","nodeType":"YulIdentifier","src":"14860:3:97"}]},{"nativeSrc":"14892:25:97","nodeType":"YulAssignment","src":"14892:25:97","value":{"arguments":[{"name":"srcPtr","nativeSrc":"14906:6:97","nodeType":"YulIdentifier","src":"14906:6:97"},{"name":"_1","nativeSrc":"14914:2:97","nodeType":"YulIdentifier","src":"14914:2:97"}],"functionName":{"name":"add","nativeSrc":"14902:3:97","nodeType":"YulIdentifier","src":"14902:3:97"},"nativeSrc":"14902:15:97","nodeType":"YulFunctionCall","src":"14902:15:97"},"variableNames":[{"name":"srcPtr","nativeSrc":"14892:6:97","nodeType":"YulIdentifier","src":"14892:6:97"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"14769:1:97","nodeType":"YulIdentifier","src":"14769:1:97"},{"name":"length","nativeSrc":"14772:6:97","nodeType":"YulIdentifier","src":"14772:6:97"}],"functionName":{"name":"lt","nativeSrc":"14766:2:97","nodeType":"YulIdentifier","src":"14766:2:97"},"nativeSrc":"14766:13:97","nodeType":"YulFunctionCall","src":"14766:13:97"},"nativeSrc":"14758:169:97","nodeType":"YulForLoop","post":{"nativeSrc":"14780:18:97","nodeType":"YulBlock","src":"14780:18:97","statements":[{"nativeSrc":"14782:14:97","nodeType":"YulAssignment","src":"14782:14:97","value":{"arguments":[{"name":"i","nativeSrc":"14791:1:97","nodeType":"YulIdentifier","src":"14791:1:97"},{"kind":"number","nativeSrc":"14794:1:97","nodeType":"YulLiteral","src":"14794:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"14787:3:97","nodeType":"YulIdentifier","src":"14787:3:97"},"nativeSrc":"14787:9:97","nodeType":"YulFunctionCall","src":"14787:9:97"},"variableNames":[{"name":"i","nativeSrc":"14782:1:97","nodeType":"YulIdentifier","src":"14782:1:97"}]}]},"pre":{"nativeSrc":"14762:3:97","nodeType":"YulBlock","src":"14762:3:97","statements":[]},"src":"14758:169:97"},{"nativeSrc":"14936:11:97","nodeType":"YulAssignment","src":"14936:11:97","value":{"name":"pos","nativeSrc":"14944:3:97","nodeType":"YulIdentifier","src":"14944:3:97"},"variableNames":[{"name":"tail","nativeSrc":"14936:4:97","nodeType":"YulIdentifier","src":"14936:4:97"}]}]},"name":"abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed","nativeSrc":"14321:632:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14441:9:97","nodeType":"YulTypedName","src":"14441:9:97","type":""},{"name":"value0","nativeSrc":"14452:6:97","nodeType":"YulTypedName","src":"14452:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14463:4:97","nodeType":"YulTypedName","src":"14463:4:97","type":""}],"src":"14321:632:97"},{"body":{"nativeSrc":"15053:140:97","nodeType":"YulBlock","src":"15053:140:97","statements":[{"body":{"nativeSrc":"15099:16:97","nodeType":"YulBlock","src":"15099:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15108:1:97","nodeType":"YulLiteral","src":"15108:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"15111:1:97","nodeType":"YulLiteral","src":"15111:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"15101:6:97","nodeType":"YulIdentifier","src":"15101:6:97"},"nativeSrc":"15101:12:97","nodeType":"YulFunctionCall","src":"15101:12:97"},"nativeSrc":"15101:12:97","nodeType":"YulExpressionStatement","src":"15101:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"15074:7:97","nodeType":"YulIdentifier","src":"15074:7:97"},{"name":"headStart","nativeSrc":"15083:9:97","nodeType":"YulIdentifier","src":"15083:9:97"}],"functionName":{"name":"sub","nativeSrc":"15070:3:97","nodeType":"YulIdentifier","src":"15070:3:97"},"nativeSrc":"15070:23:97","nodeType":"YulFunctionCall","src":"15070:23:97"},{"kind":"number","nativeSrc":"15095:2:97","nodeType":"YulLiteral","src":"15095:2:97","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"15066:3:97","nodeType":"YulIdentifier","src":"15066:3:97"},"nativeSrc":"15066:32:97","nodeType":"YulFunctionCall","src":"15066:32:97"},"nativeSrc":"15063:52:97","nodeType":"YulIf","src":"15063:52:97"},{"nativeSrc":"15124:63:97","nodeType":"YulAssignment","src":"15124:63:97","value":{"arguments":[{"name":"headStart","nativeSrc":"15168:9:97","nodeType":"YulIdentifier","src":"15168:9:97"},{"name":"dataEnd","nativeSrc":"15179:7:97","nodeType":"YulIdentifier","src":"15179:7:97"}],"functionName":{"name":"abi_decode_struct_Origin_calldata","nativeSrc":"15134:33:97","nodeType":"YulIdentifier","src":"15134:33:97"},"nativeSrc":"15134:53:97","nodeType":"YulFunctionCall","src":"15134:53:97"},"variableNames":[{"name":"value0","nativeSrc":"15124:6:97","nodeType":"YulIdentifier","src":"15124:6:97"}]}]},"name":"abi_decode_tuple_t_struct$_Origin_$886_calldata_ptr","nativeSrc":"14958:235:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15019:9:97","nodeType":"YulTypedName","src":"15019:9:97","type":""},{"name":"dataEnd","nativeSrc":"15030:7:97","nodeType":"YulTypedName","src":"15030:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"15042:6:97","nodeType":"YulTypedName","src":"15042:6:97","type":""}],"src":"14958:235:97"},{"body":{"nativeSrc":"15325:136:97","nodeType":"YulBlock","src":"15325:136:97","statements":[{"nativeSrc":"15335:26:97","nodeType":"YulAssignment","src":"15335:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"15347:9:97","nodeType":"YulIdentifier","src":"15347:9:97"},{"kind":"number","nativeSrc":"15358:2:97","nodeType":"YulLiteral","src":"15358:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"15343:3:97","nodeType":"YulIdentifier","src":"15343:3:97"},"nativeSrc":"15343:18:97","nodeType":"YulFunctionCall","src":"15343:18:97"},"variableNames":[{"name":"tail","nativeSrc":"15335:4:97","nodeType":"YulIdentifier","src":"15335:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"15377:9:97","nodeType":"YulIdentifier","src":"15377:9:97"},{"arguments":[{"name":"value0","nativeSrc":"15392:6:97","nodeType":"YulIdentifier","src":"15392:6:97"},{"kind":"number","nativeSrc":"15400:10:97","nodeType":"YulLiteral","src":"15400:10:97","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nativeSrc":"15388:3:97","nodeType":"YulIdentifier","src":"15388:3:97"},"nativeSrc":"15388:23:97","nodeType":"YulFunctionCall","src":"15388:23:97"}],"functionName":{"name":"mstore","nativeSrc":"15370:6:97","nodeType":"YulIdentifier","src":"15370:6:97"},"nativeSrc":"15370:42:97","nodeType":"YulFunctionCall","src":"15370:42:97"},"nativeSrc":"15370:42:97","nodeType":"YulExpressionStatement","src":"15370:42:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15432:9:97","nodeType":"YulIdentifier","src":"15432:9:97"},{"kind":"number","nativeSrc":"15443:2:97","nodeType":"YulLiteral","src":"15443:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15428:3:97","nodeType":"YulIdentifier","src":"15428:3:97"},"nativeSrc":"15428:18:97","nodeType":"YulFunctionCall","src":"15428:18:97"},{"name":"value1","nativeSrc":"15448:6:97","nodeType":"YulIdentifier","src":"15448:6:97"}],"functionName":{"name":"mstore","nativeSrc":"15421:6:97","nodeType":"YulIdentifier","src":"15421:6:97"},"nativeSrc":"15421:34:97","nodeType":"YulFunctionCall","src":"15421:34:97"},"nativeSrc":"15421:34:97","nodeType":"YulExpressionStatement","src":"15421:34:97"}]},"name":"abi_encode_tuple_t_uint32_t_bytes32__to_t_uint32_t_bytes32__fromStack_reversed","nativeSrc":"15198:263:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15286:9:97","nodeType":"YulTypedName","src":"15286:9:97","type":""},{"name":"value1","nativeSrc":"15297:6:97","nodeType":"YulTypedName","src":"15297:6:97","type":""},{"name":"value0","nativeSrc":"15305:6:97","nodeType":"YulTypedName","src":"15305:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15316:4:97","nodeType":"YulTypedName","src":"15316:4:97","type":""}],"src":"15198:263:97"},{"body":{"nativeSrc":"15613:124:97","nodeType":"YulBlock","src":"15613:124:97","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"15636:3:97","nodeType":"YulIdentifier","src":"15636:3:97"},{"name":"value0","nativeSrc":"15641:6:97","nodeType":"YulIdentifier","src":"15641:6:97"},{"name":"value1","nativeSrc":"15649:6:97","nodeType":"YulIdentifier","src":"15649:6:97"}],"functionName":{"name":"calldatacopy","nativeSrc":"15623:12:97","nodeType":"YulIdentifier","src":"15623:12:97"},"nativeSrc":"15623:33:97","nodeType":"YulFunctionCall","src":"15623:33:97"},"nativeSrc":"15623:33:97","nodeType":"YulExpressionStatement","src":"15623:33:97"},{"nativeSrc":"15665:26:97","nodeType":"YulVariableDeclaration","src":"15665:26:97","value":{"arguments":[{"name":"pos","nativeSrc":"15679:3:97","nodeType":"YulIdentifier","src":"15679:3:97"},{"name":"value1","nativeSrc":"15684:6:97","nodeType":"YulIdentifier","src":"15684:6:97"}],"functionName":{"name":"add","nativeSrc":"15675:3:97","nodeType":"YulIdentifier","src":"15675:3:97"},"nativeSrc":"15675:16:97","nodeType":"YulFunctionCall","src":"15675:16:97"},"variables":[{"name":"_1","nativeSrc":"15669:2:97","nodeType":"YulTypedName","src":"15669:2:97","type":""}]},{"expression":{"arguments":[{"name":"_1","nativeSrc":"15707:2:97","nodeType":"YulIdentifier","src":"15707:2:97"},{"kind":"number","nativeSrc":"15711:1:97","nodeType":"YulLiteral","src":"15711:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"15700:6:97","nodeType":"YulIdentifier","src":"15700:6:97"},"nativeSrc":"15700:13:97","nodeType":"YulFunctionCall","src":"15700:13:97"},"nativeSrc":"15700:13:97","nodeType":"YulExpressionStatement","src":"15700:13:97"},{"nativeSrc":"15722:9:97","nodeType":"YulAssignment","src":"15722:9:97","value":{"name":"_1","nativeSrc":"15729:2:97","nodeType":"YulIdentifier","src":"15729:2:97"},"variableNames":[{"name":"end","nativeSrc":"15722:3:97","nodeType":"YulIdentifier","src":"15722:3:97"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"15466:271:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"15581:3:97","nodeType":"YulTypedName","src":"15581:3:97","type":""},{"name":"value1","nativeSrc":"15586:6:97","nodeType":"YulTypedName","src":"15586:6:97","type":""},{"name":"value0","nativeSrc":"15594:6:97","nodeType":"YulTypedName","src":"15594:6:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"15605:3:97","nodeType":"YulTypedName","src":"15605:3:97","type":""}],"src":"15466:271:97"},{"body":{"nativeSrc":"15859:151:97","nodeType":"YulBlock","src":"15859:151:97","statements":[{"nativeSrc":"15869:26:97","nodeType":"YulAssignment","src":"15869:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"15881:9:97","nodeType":"YulIdentifier","src":"15881:9:97"},{"kind":"number","nativeSrc":"15892:2:97","nodeType":"YulLiteral","src":"15892:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"15877:3:97","nodeType":"YulIdentifier","src":"15877:3:97"},"nativeSrc":"15877:18:97","nodeType":"YulFunctionCall","src":"15877:18:97"},"variableNames":[{"name":"tail","nativeSrc":"15869:4:97","nodeType":"YulIdentifier","src":"15869:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"15911:9:97","nodeType":"YulIdentifier","src":"15911:9:97"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"15936:6:97","nodeType":"YulIdentifier","src":"15936:6:97"}],"functionName":{"name":"iszero","nativeSrc":"15929:6:97","nodeType":"YulIdentifier","src":"15929:6:97"},"nativeSrc":"15929:14:97","nodeType":"YulFunctionCall","src":"15929:14:97"}],"functionName":{"name":"iszero","nativeSrc":"15922:6:97","nodeType":"YulIdentifier","src":"15922:6:97"},"nativeSrc":"15922:22:97","nodeType":"YulFunctionCall","src":"15922:22:97"}],"functionName":{"name":"mstore","nativeSrc":"15904:6:97","nodeType":"YulIdentifier","src":"15904:6:97"},"nativeSrc":"15904:41:97","nodeType":"YulFunctionCall","src":"15904:41:97"},"nativeSrc":"15904:41:97","nodeType":"YulExpressionStatement","src":"15904:41:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15965:9:97","nodeType":"YulIdentifier","src":"15965:9:97"},{"kind":"number","nativeSrc":"15976:2:97","nodeType":"YulLiteral","src":"15976:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15961:3:97","nodeType":"YulIdentifier","src":"15961:3:97"},"nativeSrc":"15961:18:97","nodeType":"YulFunctionCall","src":"15961:18:97"},{"arguments":[{"arguments":[{"name":"value1","nativeSrc":"15995:6:97","nodeType":"YulIdentifier","src":"15995:6:97"}],"functionName":{"name":"iszero","nativeSrc":"15988:6:97","nodeType":"YulIdentifier","src":"15988:6:97"},"nativeSrc":"15988:14:97","nodeType":"YulFunctionCall","src":"15988:14:97"}],"functionName":{"name":"iszero","nativeSrc":"15981:6:97","nodeType":"YulIdentifier","src":"15981:6:97"},"nativeSrc":"15981:22:97","nodeType":"YulFunctionCall","src":"15981:22:97"}],"functionName":{"name":"mstore","nativeSrc":"15954:6:97","nodeType":"YulIdentifier","src":"15954:6:97"},"nativeSrc":"15954:50:97","nodeType":"YulFunctionCall","src":"15954:50:97"},"nativeSrc":"15954:50:97","nodeType":"YulExpressionStatement","src":"15954:50:97"}]},"name":"abi_encode_tuple_t_bool_t_bool__to_t_bool_t_bool__fromStack_reversed","nativeSrc":"15742:268:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15820:9:97","nodeType":"YulTypedName","src":"15820:9:97","type":""},{"name":"value1","nativeSrc":"15831:6:97","nodeType":"YulTypedName","src":"15831:6:97","type":""},{"name":"value0","nativeSrc":"15839:6:97","nodeType":"YulTypedName","src":"15839:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15850:4:97","nodeType":"YulTypedName","src":"15850:4:97","type":""}],"src":"15742:268:97"},{"body":{"nativeSrc":"16082:259:97","nodeType":"YulBlock","src":"16082:259:97","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"16099:3:97","nodeType":"YulIdentifier","src":"16099:3:97"},{"name":"length","nativeSrc":"16104:6:97","nodeType":"YulIdentifier","src":"16104:6:97"}],"functionName":{"name":"mstore","nativeSrc":"16092:6:97","nodeType":"YulIdentifier","src":"16092:6:97"},"nativeSrc":"16092:19:97","nodeType":"YulFunctionCall","src":"16092:19:97"},"nativeSrc":"16092:19:97","nodeType":"YulExpressionStatement","src":"16092:19:97"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"16137:3:97","nodeType":"YulIdentifier","src":"16137:3:97"},{"kind":"number","nativeSrc":"16142:4:97","nodeType":"YulLiteral","src":"16142:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16133:3:97","nodeType":"YulIdentifier","src":"16133:3:97"},"nativeSrc":"16133:14:97","nodeType":"YulFunctionCall","src":"16133:14:97"},{"name":"start","nativeSrc":"16149:5:97","nodeType":"YulIdentifier","src":"16149:5:97"},{"name":"length","nativeSrc":"16156:6:97","nodeType":"YulIdentifier","src":"16156:6:97"}],"functionName":{"name":"calldatacopy","nativeSrc":"16120:12:97","nodeType":"YulIdentifier","src":"16120:12:97"},"nativeSrc":"16120:43:97","nodeType":"YulFunctionCall","src":"16120:43:97"},"nativeSrc":"16120:43:97","nodeType":"YulExpressionStatement","src":"16120:43:97"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"16187:3:97","nodeType":"YulIdentifier","src":"16187:3:97"},{"name":"length","nativeSrc":"16192:6:97","nodeType":"YulIdentifier","src":"16192:6:97"}],"functionName":{"name":"add","nativeSrc":"16183:3:97","nodeType":"YulIdentifier","src":"16183:3:97"},"nativeSrc":"16183:16:97","nodeType":"YulFunctionCall","src":"16183:16:97"},{"kind":"number","nativeSrc":"16201:4:97","nodeType":"YulLiteral","src":"16201:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16179:3:97","nodeType":"YulIdentifier","src":"16179:3:97"},"nativeSrc":"16179:27:97","nodeType":"YulFunctionCall","src":"16179:27:97"},{"kind":"number","nativeSrc":"16208:1:97","nodeType":"YulLiteral","src":"16208:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"16172:6:97","nodeType":"YulIdentifier","src":"16172:6:97"},"nativeSrc":"16172:38:97","nodeType":"YulFunctionCall","src":"16172:38:97"},"nativeSrc":"16172:38:97","nodeType":"YulExpressionStatement","src":"16172:38:97"},{"nativeSrc":"16219:116:97","nodeType":"YulAssignment","src":"16219:116:97","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"16234:3:97","nodeType":"YulIdentifier","src":"16234:3:97"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"16247:6:97","nodeType":"YulIdentifier","src":"16247:6:97"},{"kind":"number","nativeSrc":"16255:2:97","nodeType":"YulLiteral","src":"16255:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"16243:3:97","nodeType":"YulIdentifier","src":"16243:3:97"},"nativeSrc":"16243:15:97","nodeType":"YulFunctionCall","src":"16243:15:97"},{"kind":"number","nativeSrc":"16260:66:97","nodeType":"YulLiteral","src":"16260:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"16239:3:97","nodeType":"YulIdentifier","src":"16239:3:97"},"nativeSrc":"16239:88:97","nodeType":"YulFunctionCall","src":"16239:88:97"}],"functionName":{"name":"add","nativeSrc":"16230:3:97","nodeType":"YulIdentifier","src":"16230:3:97"},"nativeSrc":"16230:98:97","nodeType":"YulFunctionCall","src":"16230:98:97"},{"kind":"number","nativeSrc":"16330:4:97","nodeType":"YulLiteral","src":"16330:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16226:3:97","nodeType":"YulIdentifier","src":"16226:3:97"},"nativeSrc":"16226:109:97","nodeType":"YulFunctionCall","src":"16226:109:97"},"variableNames":[{"name":"end","nativeSrc":"16219:3:97","nodeType":"YulIdentifier","src":"16219:3:97"}]}]},"name":"abi_encode_string_calldata","nativeSrc":"16015:326:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"16051:5:97","nodeType":"YulTypedName","src":"16051:5:97","type":""},{"name":"length","nativeSrc":"16058:6:97","nodeType":"YulTypedName","src":"16058:6:97","type":""},{"name":"pos","nativeSrc":"16066:3:97","nodeType":"YulTypedName","src":"16066:3:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"16074:3:97","nodeType":"YulTypedName","src":"16074:3:97","type":""}],"src":"16015:326:97"},{"body":{"nativeSrc":"16499:175:97","nodeType":"YulBlock","src":"16499:175:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"16516:9:97","nodeType":"YulIdentifier","src":"16516:9:97"},{"kind":"number","nativeSrc":"16527:2:97","nodeType":"YulLiteral","src":"16527:2:97","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"16509:6:97","nodeType":"YulIdentifier","src":"16509:6:97"},"nativeSrc":"16509:21:97","nodeType":"YulFunctionCall","src":"16509:21:97"},"nativeSrc":"16509:21:97","nodeType":"YulExpressionStatement","src":"16509:21:97"},{"nativeSrc":"16539:70:97","nodeType":"YulAssignment","src":"16539:70:97","value":{"arguments":[{"name":"value0","nativeSrc":"16574:6:97","nodeType":"YulIdentifier","src":"16574:6:97"},{"name":"value1","nativeSrc":"16582:6:97","nodeType":"YulIdentifier","src":"16582:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"16594:9:97","nodeType":"YulIdentifier","src":"16594:9:97"},{"kind":"number","nativeSrc":"16605:2:97","nodeType":"YulLiteral","src":"16605:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16590:3:97","nodeType":"YulIdentifier","src":"16590:3:97"},"nativeSrc":"16590:18:97","nodeType":"YulFunctionCall","src":"16590:18:97"}],"functionName":{"name":"abi_encode_string_calldata","nativeSrc":"16547:26:97","nodeType":"YulIdentifier","src":"16547:26:97"},"nativeSrc":"16547:62:97","nodeType":"YulFunctionCall","src":"16547:62:97"},"variableNames":[{"name":"tail","nativeSrc":"16539:4:97","nodeType":"YulIdentifier","src":"16539:4:97"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16629:9:97","nodeType":"YulIdentifier","src":"16629:9:97"},{"kind":"number","nativeSrc":"16640:2:97","nodeType":"YulLiteral","src":"16640:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16625:3:97","nodeType":"YulIdentifier","src":"16625:3:97"},"nativeSrc":"16625:18:97","nodeType":"YulFunctionCall","src":"16625:18:97"},{"arguments":[{"arguments":[{"name":"value2","nativeSrc":"16659:6:97","nodeType":"YulIdentifier","src":"16659:6:97"}],"functionName":{"name":"iszero","nativeSrc":"16652:6:97","nodeType":"YulIdentifier","src":"16652:6:97"},"nativeSrc":"16652:14:97","nodeType":"YulFunctionCall","src":"16652:14:97"}],"functionName":{"name":"iszero","nativeSrc":"16645:6:97","nodeType":"YulIdentifier","src":"16645:6:97"},"nativeSrc":"16645:22:97","nodeType":"YulFunctionCall","src":"16645:22:97"}],"functionName":{"name":"mstore","nativeSrc":"16618:6:97","nodeType":"YulIdentifier","src":"16618:6:97"},"nativeSrc":"16618:50:97","nodeType":"YulFunctionCall","src":"16618:50:97"},"nativeSrc":"16618:50:97","nodeType":"YulExpressionStatement","src":"16618:50:97"}]},"name":"abi_encode_tuple_t_string_calldata_ptr_t_bool__to_t_string_memory_ptr_t_bool__fromStack_reversed","nativeSrc":"16346:328:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16452:9:97","nodeType":"YulTypedName","src":"16452:9:97","type":""},{"name":"value2","nativeSrc":"16463:6:97","nodeType":"YulTypedName","src":"16463:6:97","type":""},{"name":"value1","nativeSrc":"16471:6:97","nodeType":"YulTypedName","src":"16471:6:97","type":""},{"name":"value0","nativeSrc":"16479:6:97","nodeType":"YulTypedName","src":"16479:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16490:4:97","nodeType":"YulTypedName","src":"16490:4:97","type":""}],"src":"16346:328:97"},{"body":{"nativeSrc":"16853:236:97","nodeType":"YulBlock","src":"16853:236:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"16870:9:97","nodeType":"YulIdentifier","src":"16870:9:97"},{"kind":"number","nativeSrc":"16881:2:97","nodeType":"YulLiteral","src":"16881:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"16863:6:97","nodeType":"YulIdentifier","src":"16863:6:97"},"nativeSrc":"16863:21:97","nodeType":"YulFunctionCall","src":"16863:21:97"},"nativeSrc":"16863:21:97","nodeType":"YulExpressionStatement","src":"16863:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16904:9:97","nodeType":"YulIdentifier","src":"16904:9:97"},{"kind":"number","nativeSrc":"16915:2:97","nodeType":"YulLiteral","src":"16915:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16900:3:97","nodeType":"YulIdentifier","src":"16900:3:97"},"nativeSrc":"16900:18:97","nodeType":"YulFunctionCall","src":"16900:18:97"},{"kind":"number","nativeSrc":"16920:2:97","nodeType":"YulLiteral","src":"16920:2:97","type":"","value":"46"}],"functionName":{"name":"mstore","nativeSrc":"16893:6:97","nodeType":"YulIdentifier","src":"16893:6:97"},"nativeSrc":"16893:30:97","nodeType":"YulFunctionCall","src":"16893:30:97"},"nativeSrc":"16893:30:97","nodeType":"YulExpressionStatement","src":"16893:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16943:9:97","nodeType":"YulIdentifier","src":"16943:9:97"},{"kind":"number","nativeSrc":"16954:2:97","nodeType":"YulLiteral","src":"16954:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16939:3:97","nodeType":"YulIdentifier","src":"16939:3:97"},"nativeSrc":"16939:18:97","nodeType":"YulFunctionCall","src":"16939:18:97"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561","kind":"string","nativeSrc":"16959:34:97","nodeType":"YulLiteral","src":"16959:34:97","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nativeSrc":"16932:6:97","nodeType":"YulIdentifier","src":"16932:6:97"},"nativeSrc":"16932:62:97","nodeType":"YulFunctionCall","src":"16932:62:97"},"nativeSrc":"16932:62:97","nodeType":"YulExpressionStatement","src":"16932:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17014:9:97","nodeType":"YulIdentifier","src":"17014:9:97"},{"kind":"number","nativeSrc":"17025:2:97","nodeType":"YulLiteral","src":"17025:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"17010:3:97","nodeType":"YulIdentifier","src":"17010:3:97"},"nativeSrc":"17010:18:97","nodeType":"YulFunctionCall","src":"17010:18:97"},{"hexValue":"647920696e697469616c697a6564","kind":"string","nativeSrc":"17030:16:97","nodeType":"YulLiteral","src":"17030:16:97","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nativeSrc":"17003:6:97","nodeType":"YulIdentifier","src":"17003:6:97"},"nativeSrc":"17003:44:97","nodeType":"YulFunctionCall","src":"17003:44:97"},"nativeSrc":"17003:44:97","nodeType":"YulExpressionStatement","src":"17003:44:97"},{"nativeSrc":"17056:27:97","nodeType":"YulAssignment","src":"17056:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"17068:9:97","nodeType":"YulIdentifier","src":"17068:9:97"},{"kind":"number","nativeSrc":"17079:3:97","nodeType":"YulLiteral","src":"17079:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"17064:3:97","nodeType":"YulIdentifier","src":"17064:3:97"},"nativeSrc":"17064:19:97","nodeType":"YulFunctionCall","src":"17064:19:97"},"variableNames":[{"name":"tail","nativeSrc":"17056:4:97","nodeType":"YulIdentifier","src":"17056:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"16679:410:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16830:9:97","nodeType":"YulTypedName","src":"16830:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16844:4:97","nodeType":"YulTypedName","src":"16844:4:97","type":""}],"src":"16679:410:97"},{"body":{"nativeSrc":"17201:87:97","nodeType":"YulBlock","src":"17201:87:97","statements":[{"nativeSrc":"17211:26:97","nodeType":"YulAssignment","src":"17211:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"17223:9:97","nodeType":"YulIdentifier","src":"17223:9:97"},{"kind":"number","nativeSrc":"17234:2:97","nodeType":"YulLiteral","src":"17234:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17219:3:97","nodeType":"YulIdentifier","src":"17219:3:97"},"nativeSrc":"17219:18:97","nodeType":"YulFunctionCall","src":"17219:18:97"},"variableNames":[{"name":"tail","nativeSrc":"17211:4:97","nodeType":"YulIdentifier","src":"17211:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"17253:9:97","nodeType":"YulIdentifier","src":"17253:9:97"},{"arguments":[{"name":"value0","nativeSrc":"17268:6:97","nodeType":"YulIdentifier","src":"17268:6:97"},{"kind":"number","nativeSrc":"17276:4:97","nodeType":"YulLiteral","src":"17276:4:97","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"17264:3:97","nodeType":"YulIdentifier","src":"17264:3:97"},"nativeSrc":"17264:17:97","nodeType":"YulFunctionCall","src":"17264:17:97"}],"functionName":{"name":"mstore","nativeSrc":"17246:6:97","nodeType":"YulIdentifier","src":"17246:6:97"},"nativeSrc":"17246:36:97","nodeType":"YulFunctionCall","src":"17246:36:97"},"nativeSrc":"17246:36:97","nodeType":"YulExpressionStatement","src":"17246:36:97"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nativeSrc":"17094:194:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17170:9:97","nodeType":"YulTypedName","src":"17170:9:97","type":""},{"name":"value0","nativeSrc":"17181:6:97","nodeType":"YulTypedName","src":"17181:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17192:4:97","nodeType":"YulTypedName","src":"17192:4:97","type":""}],"src":"17094:194:97"},{"body":{"nativeSrc":"17467:231:97","nodeType":"YulBlock","src":"17467:231:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"17484:9:97","nodeType":"YulIdentifier","src":"17484:9:97"},{"kind":"number","nativeSrc":"17495:2:97","nodeType":"YulLiteral","src":"17495:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"17477:6:97","nodeType":"YulIdentifier","src":"17477:6:97"},"nativeSrc":"17477:21:97","nodeType":"YulFunctionCall","src":"17477:21:97"},"nativeSrc":"17477:21:97","nodeType":"YulExpressionStatement","src":"17477:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17518:9:97","nodeType":"YulIdentifier","src":"17518:9:97"},{"kind":"number","nativeSrc":"17529:2:97","nodeType":"YulLiteral","src":"17529:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17514:3:97","nodeType":"YulIdentifier","src":"17514:3:97"},"nativeSrc":"17514:18:97","nodeType":"YulFunctionCall","src":"17514:18:97"},{"kind":"number","nativeSrc":"17534:2:97","nodeType":"YulLiteral","src":"17534:2:97","type":"","value":"41"}],"functionName":{"name":"mstore","nativeSrc":"17507:6:97","nodeType":"YulIdentifier","src":"17507:6:97"},"nativeSrc":"17507:30:97","nodeType":"YulFunctionCall","src":"17507:30:97"},"nativeSrc":"17507:30:97","nodeType":"YulExpressionStatement","src":"17507:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17557:9:97","nodeType":"YulIdentifier","src":"17557:9:97"},{"kind":"number","nativeSrc":"17568:2:97","nodeType":"YulLiteral","src":"17568:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17553:3:97","nodeType":"YulIdentifier","src":"17553:3:97"},"nativeSrc":"17553:18:97","nodeType":"YulFunctionCall","src":"17553:18:97"},{"hexValue":"4f776e61626c6532537465703a2063616c6c6572206973206e6f742074686520","kind":"string","nativeSrc":"17573:34:97","nodeType":"YulLiteral","src":"17573:34:97","type":"","value":"Ownable2Step: caller is not the "}],"functionName":{"name":"mstore","nativeSrc":"17546:6:97","nodeType":"YulIdentifier","src":"17546:6:97"},"nativeSrc":"17546:62:97","nodeType":"YulFunctionCall","src":"17546:62:97"},"nativeSrc":"17546:62:97","nodeType":"YulExpressionStatement","src":"17546:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17628:9:97","nodeType":"YulIdentifier","src":"17628:9:97"},{"kind":"number","nativeSrc":"17639:2:97","nodeType":"YulLiteral","src":"17639:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"17624:3:97","nodeType":"YulIdentifier","src":"17624:3:97"},"nativeSrc":"17624:18:97","nodeType":"YulFunctionCall","src":"17624:18:97"},{"hexValue":"6e6577206f776e6572","kind":"string","nativeSrc":"17644:11:97","nodeType":"YulLiteral","src":"17644:11:97","type":"","value":"new owner"}],"functionName":{"name":"mstore","nativeSrc":"17617:6:97","nodeType":"YulIdentifier","src":"17617:6:97"},"nativeSrc":"17617:39:97","nodeType":"YulFunctionCall","src":"17617:39:97"},"nativeSrc":"17617:39:97","nodeType":"YulExpressionStatement","src":"17617:39:97"},{"nativeSrc":"17665:27:97","nodeType":"YulAssignment","src":"17665:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"17677:9:97","nodeType":"YulIdentifier","src":"17677:9:97"},{"kind":"number","nativeSrc":"17688:3:97","nodeType":"YulLiteral","src":"17688:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"17673:3:97","nodeType":"YulIdentifier","src":"17673:3:97"},"nativeSrc":"17673:19:97","nodeType":"YulFunctionCall","src":"17673:19:97"},"variableNames":[{"name":"tail","nativeSrc":"17665:4:97","nodeType":"YulIdentifier","src":"17665:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"17293:405:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17444:9:97","nodeType":"YulTypedName","src":"17444:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17458:4:97","nodeType":"YulTypedName","src":"17458:4:97","type":""}],"src":"17293:405:97"},{"body":{"nativeSrc":"17758:382:97","nodeType":"YulBlock","src":"17758:382:97","statements":[{"nativeSrc":"17768:22:97","nodeType":"YulAssignment","src":"17768:22:97","value":{"arguments":[{"kind":"number","nativeSrc":"17782:1:97","nodeType":"YulLiteral","src":"17782:1:97","type":"","value":"1"},{"name":"data","nativeSrc":"17785:4:97","nodeType":"YulIdentifier","src":"17785:4:97"}],"functionName":{"name":"shr","nativeSrc":"17778:3:97","nodeType":"YulIdentifier","src":"17778:3:97"},"nativeSrc":"17778:12:97","nodeType":"YulFunctionCall","src":"17778:12:97"},"variableNames":[{"name":"length","nativeSrc":"17768:6:97","nodeType":"YulIdentifier","src":"17768:6:97"}]},{"nativeSrc":"17799:38:97","nodeType":"YulVariableDeclaration","src":"17799:38:97","value":{"arguments":[{"name":"data","nativeSrc":"17829:4:97","nodeType":"YulIdentifier","src":"17829:4:97"},{"kind":"number","nativeSrc":"17835:1:97","nodeType":"YulLiteral","src":"17835:1:97","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"17825:3:97","nodeType":"YulIdentifier","src":"17825:3:97"},"nativeSrc":"17825:12:97","nodeType":"YulFunctionCall","src":"17825:12:97"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"17803:18:97","nodeType":"YulTypedName","src":"17803:18:97","type":""}]},{"body":{"nativeSrc":"17876:31:97","nodeType":"YulBlock","src":"17876:31:97","statements":[{"nativeSrc":"17878:27:97","nodeType":"YulAssignment","src":"17878:27:97","value":{"arguments":[{"name":"length","nativeSrc":"17892:6:97","nodeType":"YulIdentifier","src":"17892:6:97"},{"kind":"number","nativeSrc":"17900:4:97","nodeType":"YulLiteral","src":"17900:4:97","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"17888:3:97","nodeType":"YulIdentifier","src":"17888:3:97"},"nativeSrc":"17888:17:97","nodeType":"YulFunctionCall","src":"17888:17:97"},"variableNames":[{"name":"length","nativeSrc":"17878:6:97","nodeType":"YulIdentifier","src":"17878:6:97"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"17856:18:97","nodeType":"YulIdentifier","src":"17856:18:97"}],"functionName":{"name":"iszero","nativeSrc":"17849:6:97","nodeType":"YulIdentifier","src":"17849:6:97"},"nativeSrc":"17849:26:97","nodeType":"YulFunctionCall","src":"17849:26:97"},"nativeSrc":"17846:61:97","nodeType":"YulIf","src":"17846:61:97"},{"body":{"nativeSrc":"17966:168:97","nodeType":"YulBlock","src":"17966:168:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17987:1:97","nodeType":"YulLiteral","src":"17987:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"17990:77:97","nodeType":"YulLiteral","src":"17990:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"17980:6:97","nodeType":"YulIdentifier","src":"17980:6:97"},"nativeSrc":"17980:88:97","nodeType":"YulFunctionCall","src":"17980:88:97"},"nativeSrc":"17980:88:97","nodeType":"YulExpressionStatement","src":"17980:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18088:1:97","nodeType":"YulLiteral","src":"18088:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"18091:4:97","nodeType":"YulLiteral","src":"18091:4:97","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"18081:6:97","nodeType":"YulIdentifier","src":"18081:6:97"},"nativeSrc":"18081:15:97","nodeType":"YulFunctionCall","src":"18081:15:97"},"nativeSrc":"18081:15:97","nodeType":"YulExpressionStatement","src":"18081:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18116:1:97","nodeType":"YulLiteral","src":"18116:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"18119:4:97","nodeType":"YulLiteral","src":"18119:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"18109:6:97","nodeType":"YulIdentifier","src":"18109:6:97"},"nativeSrc":"18109:15:97","nodeType":"YulFunctionCall","src":"18109:15:97"},"nativeSrc":"18109:15:97","nodeType":"YulExpressionStatement","src":"18109:15:97"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"17922:18:97","nodeType":"YulIdentifier","src":"17922:18:97"},{"arguments":[{"name":"length","nativeSrc":"17945:6:97","nodeType":"YulIdentifier","src":"17945:6:97"},{"kind":"number","nativeSrc":"17953:2:97","nodeType":"YulLiteral","src":"17953:2:97","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"17942:2:97","nodeType":"YulIdentifier","src":"17942:2:97"},"nativeSrc":"17942:14:97","nodeType":"YulFunctionCall","src":"17942:14:97"}],"functionName":{"name":"eq","nativeSrc":"17919:2:97","nodeType":"YulIdentifier","src":"17919:2:97"},"nativeSrc":"17919:38:97","nodeType":"YulFunctionCall","src":"17919:38:97"},"nativeSrc":"17916:218:97","nodeType":"YulIf","src":"17916:218:97"}]},"name":"extract_byte_array_length","nativeSrc":"17703:437:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"17738:4:97","nodeType":"YulTypedName","src":"17738:4:97","type":""}],"returnVariables":[{"name":"length","nativeSrc":"17747:6:97","nodeType":"YulTypedName","src":"17747:6:97","type":""}],"src":"17703:437:97"},{"body":{"nativeSrc":"18177:152:97","nodeType":"YulBlock","src":"18177:152:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18194:1:97","nodeType":"YulLiteral","src":"18194:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"18197:77:97","nodeType":"YulLiteral","src":"18197:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"18187:6:97","nodeType":"YulIdentifier","src":"18187:6:97"},"nativeSrc":"18187:88:97","nodeType":"YulFunctionCall","src":"18187:88:97"},"nativeSrc":"18187:88:97","nodeType":"YulExpressionStatement","src":"18187:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18291:1:97","nodeType":"YulLiteral","src":"18291:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"18294:4:97","nodeType":"YulLiteral","src":"18294:4:97","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"18284:6:97","nodeType":"YulIdentifier","src":"18284:6:97"},"nativeSrc":"18284:15:97","nodeType":"YulFunctionCall","src":"18284:15:97"},"nativeSrc":"18284:15:97","nodeType":"YulExpressionStatement","src":"18284:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18315:1:97","nodeType":"YulLiteral","src":"18315:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"18318:4:97","nodeType":"YulLiteral","src":"18318:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"18308:6:97","nodeType":"YulIdentifier","src":"18308:6:97"},"nativeSrc":"18308:15:97","nodeType":"YulFunctionCall","src":"18308:15:97"},"nativeSrc":"18308:15:97","nodeType":"YulExpressionStatement","src":"18308:15:97"}]},"name":"panic_error_0x11","nativeSrc":"18145:184:97","nodeType":"YulFunctionDefinition","src":"18145:184:97"},{"body":{"nativeSrc":"18382:77:97","nodeType":"YulBlock","src":"18382:77:97","statements":[{"nativeSrc":"18392:16:97","nodeType":"YulAssignment","src":"18392:16:97","value":{"arguments":[{"name":"x","nativeSrc":"18403:1:97","nodeType":"YulIdentifier","src":"18403:1:97"},{"name":"y","nativeSrc":"18406:1:97","nodeType":"YulIdentifier","src":"18406:1:97"}],"functionName":{"name":"add","nativeSrc":"18399:3:97","nodeType":"YulIdentifier","src":"18399:3:97"},"nativeSrc":"18399:9:97","nodeType":"YulFunctionCall","src":"18399:9:97"},"variableNames":[{"name":"sum","nativeSrc":"18392:3:97","nodeType":"YulIdentifier","src":"18392:3:97"}]},{"body":{"nativeSrc":"18431:22:97","nodeType":"YulBlock","src":"18431:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"18433:16:97","nodeType":"YulIdentifier","src":"18433:16:97"},"nativeSrc":"18433:18:97","nodeType":"YulFunctionCall","src":"18433:18:97"},"nativeSrc":"18433:18:97","nodeType":"YulExpressionStatement","src":"18433:18:97"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"18423:1:97","nodeType":"YulIdentifier","src":"18423:1:97"},{"name":"sum","nativeSrc":"18426:3:97","nodeType":"YulIdentifier","src":"18426:3:97"}],"functionName":{"name":"gt","nativeSrc":"18420:2:97","nodeType":"YulIdentifier","src":"18420:2:97"},"nativeSrc":"18420:10:97","nodeType":"YulFunctionCall","src":"18420:10:97"},"nativeSrc":"18417:36:97","nodeType":"YulIf","src":"18417:36:97"}]},"name":"checked_add_t_uint256","nativeSrc":"18334:125:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"18365:1:97","nodeType":"YulTypedName","src":"18365:1:97","type":""},{"name":"y","nativeSrc":"18368:1:97","nodeType":"YulTypedName","src":"18368:1:97","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"18374:3:97","nodeType":"YulTypedName","src":"18374:3:97","type":""}],"src":"18334:125:97"},{"body":{"nativeSrc":"18641:119:97","nodeType":"YulBlock","src":"18641:119:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"18658:9:97","nodeType":"YulIdentifier","src":"18658:9:97"},{"kind":"number","nativeSrc":"18669:2:97","nodeType":"YulLiteral","src":"18669:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"18651:6:97","nodeType":"YulIdentifier","src":"18651:6:97"},"nativeSrc":"18651:21:97","nodeType":"YulFunctionCall","src":"18651:21:97"},"nativeSrc":"18651:21:97","nodeType":"YulExpressionStatement","src":"18651:21:97"},{"nativeSrc":"18681:73:97","nodeType":"YulAssignment","src":"18681:73:97","value":{"arguments":[{"name":"value0","nativeSrc":"18727:6:97","nodeType":"YulIdentifier","src":"18727:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"18739:9:97","nodeType":"YulIdentifier","src":"18739:9:97"},{"kind":"number","nativeSrc":"18750:2:97","nodeType":"YulLiteral","src":"18750:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18735:3:97","nodeType":"YulIdentifier","src":"18735:3:97"},"nativeSrc":"18735:18:97","nodeType":"YulFunctionCall","src":"18735:18:97"}],"functionName":{"name":"abi_encode_struct_RiskParameterUpdate","nativeSrc":"18689:37:97","nodeType":"YulIdentifier","src":"18689:37:97"},"nativeSrc":"18689:65:97","nodeType":"YulFunctionCall","src":"18689:65:97"},"variableNames":[{"name":"tail","nativeSrc":"18681:4:97","nodeType":"YulIdentifier","src":"18681:4:97"}]}]},"name":"abi_encode_tuple_t_struct$_RiskParameterUpdate_$16568_memory_ptr__to_t_struct$_RiskParameterUpdate_$16568_memory_ptr__fromStack_reversed","nativeSrc":"18464:296:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18610:9:97","nodeType":"YulTypedName","src":"18610:9:97","type":""},{"name":"value0","nativeSrc":"18621:6:97","nodeType":"YulTypedName","src":"18621:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18632:4:97","nodeType":"YulTypedName","src":"18632:4:97","type":""}],"src":"18464:296:97"},{"body":{"nativeSrc":"18996:323:97","nodeType":"YulBlock","src":"18996:323:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"19013:9:97","nodeType":"YulIdentifier","src":"19013:9:97"},{"kind":"number","nativeSrc":"19024:3:97","nodeType":"YulLiteral","src":"19024:3:97","type":"","value":"160"}],"functionName":{"name":"mstore","nativeSrc":"19006:6:97","nodeType":"YulIdentifier","src":"19006:6:97"},"nativeSrc":"19006:22:97","nodeType":"YulFunctionCall","src":"19006:22:97"},"nativeSrc":"19006:22:97","nodeType":"YulExpressionStatement","src":"19006:22:97"},{"nativeSrc":"19037:71:97","nodeType":"YulAssignment","src":"19037:71:97","value":{"arguments":[{"name":"value0","nativeSrc":"19072:6:97","nodeType":"YulIdentifier","src":"19072:6:97"},{"name":"value1","nativeSrc":"19080:6:97","nodeType":"YulIdentifier","src":"19080:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"19092:9:97","nodeType":"YulIdentifier","src":"19092:9:97"},{"kind":"number","nativeSrc":"19103:3:97","nodeType":"YulLiteral","src":"19103:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"19088:3:97","nodeType":"YulIdentifier","src":"19088:3:97"},"nativeSrc":"19088:19:97","nodeType":"YulFunctionCall","src":"19088:19:97"}],"functionName":{"name":"abi_encode_string_calldata","nativeSrc":"19045:26:97","nodeType":"YulIdentifier","src":"19045:26:97"},"nativeSrc":"19045:63:97","nodeType":"YulFunctionCall","src":"19045:63:97"},"variableNames":[{"name":"tail","nativeSrc":"19037:4:97","nodeType":"YulIdentifier","src":"19037:4:97"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19128:9:97","nodeType":"YulIdentifier","src":"19128:9:97"},{"kind":"number","nativeSrc":"19139:2:97","nodeType":"YulLiteral","src":"19139:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19124:3:97","nodeType":"YulIdentifier","src":"19124:3:97"},"nativeSrc":"19124:18:97","nodeType":"YulFunctionCall","src":"19124:18:97"},{"name":"value2","nativeSrc":"19144:6:97","nodeType":"YulIdentifier","src":"19144:6:97"}],"functionName":{"name":"mstore","nativeSrc":"19117:6:97","nodeType":"YulIdentifier","src":"19117:6:97"},"nativeSrc":"19117:34:97","nodeType":"YulFunctionCall","src":"19117:34:97"},"nativeSrc":"19117:34:97","nodeType":"YulExpressionStatement","src":"19117:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19171:9:97","nodeType":"YulIdentifier","src":"19171:9:97"},{"kind":"number","nativeSrc":"19182:2:97","nodeType":"YulLiteral","src":"19182:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"19167:3:97","nodeType":"YulIdentifier","src":"19167:3:97"},"nativeSrc":"19167:18:97","nodeType":"YulFunctionCall","src":"19167:18:97"},{"name":"value3","nativeSrc":"19187:6:97","nodeType":"YulIdentifier","src":"19187:6:97"}],"functionName":{"name":"mstore","nativeSrc":"19160:6:97","nodeType":"YulIdentifier","src":"19160:6:97"},"nativeSrc":"19160:34:97","nodeType":"YulFunctionCall","src":"19160:34:97"},"nativeSrc":"19160:34:97","nodeType":"YulExpressionStatement","src":"19160:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19214:9:97","nodeType":"YulIdentifier","src":"19214:9:97"},{"kind":"number","nativeSrc":"19225:2:97","nodeType":"YulLiteral","src":"19225:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"19210:3:97","nodeType":"YulIdentifier","src":"19210:3:97"},"nativeSrc":"19210:18:97","nodeType":"YulFunctionCall","src":"19210:18:97"},{"arguments":[{"arguments":[{"name":"value4","nativeSrc":"19244:6:97","nodeType":"YulIdentifier","src":"19244:6:97"}],"functionName":{"name":"iszero","nativeSrc":"19237:6:97","nodeType":"YulIdentifier","src":"19237:6:97"},"nativeSrc":"19237:14:97","nodeType":"YulFunctionCall","src":"19237:14:97"}],"functionName":{"name":"iszero","nativeSrc":"19230:6:97","nodeType":"YulIdentifier","src":"19230:6:97"},"nativeSrc":"19230:22:97","nodeType":"YulFunctionCall","src":"19230:22:97"}],"functionName":{"name":"mstore","nativeSrc":"19203:6:97","nodeType":"YulIdentifier","src":"19203:6:97"},"nativeSrc":"19203:50:97","nodeType":"YulFunctionCall","src":"19203:50:97"},"nativeSrc":"19203:50:97","nodeType":"YulExpressionStatement","src":"19203:50:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19273:9:97","nodeType":"YulIdentifier","src":"19273:9:97"},{"kind":"number","nativeSrc":"19284:3:97","nodeType":"YulLiteral","src":"19284:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"19269:3:97","nodeType":"YulIdentifier","src":"19269:3:97"},"nativeSrc":"19269:19:97","nodeType":"YulFunctionCall","src":"19269:19:97"},{"arguments":[{"arguments":[{"name":"value5","nativeSrc":"19304:6:97","nodeType":"YulIdentifier","src":"19304:6:97"}],"functionName":{"name":"iszero","nativeSrc":"19297:6:97","nodeType":"YulIdentifier","src":"19297:6:97"},"nativeSrc":"19297:14:97","nodeType":"YulFunctionCall","src":"19297:14:97"}],"functionName":{"name":"iszero","nativeSrc":"19290:6:97","nodeType":"YulIdentifier","src":"19290:6:97"},"nativeSrc":"19290:22:97","nodeType":"YulFunctionCall","src":"19290:22:97"}],"functionName":{"name":"mstore","nativeSrc":"19262:6:97","nodeType":"YulIdentifier","src":"19262:6:97"},"nativeSrc":"19262:51:97","nodeType":"YulFunctionCall","src":"19262:51:97"},"nativeSrc":"19262:51:97","nodeType":"YulExpressionStatement","src":"19262:51:97"}]},"name":"abi_encode_tuple_t_string_calldata_ptr_t_uint256_t_uint256_t_bool_t_bool__to_t_string_memory_ptr_t_uint256_t_uint256_t_bool_t_bool__fromStack_reversed","nativeSrc":"18765:554:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18925:9:97","nodeType":"YulTypedName","src":"18925:9:97","type":""},{"name":"value5","nativeSrc":"18936:6:97","nodeType":"YulTypedName","src":"18936:6:97","type":""},{"name":"value4","nativeSrc":"18944:6:97","nodeType":"YulTypedName","src":"18944:6:97","type":""},{"name":"value3","nativeSrc":"18952:6:97","nodeType":"YulTypedName","src":"18952:6:97","type":""},{"name":"value2","nativeSrc":"18960:6:97","nodeType":"YulTypedName","src":"18960:6:97","type":""},{"name":"value1","nativeSrc":"18968:6:97","nodeType":"YulTypedName","src":"18968:6:97","type":""},{"name":"value0","nativeSrc":"18976:6:97","nodeType":"YulTypedName","src":"18976:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18987:4:97","nodeType":"YulTypedName","src":"18987:4:97","type":""}],"src":"18765:554:97"},{"body":{"nativeSrc":"19356:152:97","nodeType":"YulBlock","src":"19356:152:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19373:1:97","nodeType":"YulLiteral","src":"19373:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"19376:77:97","nodeType":"YulLiteral","src":"19376:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"19366:6:97","nodeType":"YulIdentifier","src":"19366:6:97"},"nativeSrc":"19366:88:97","nodeType":"YulFunctionCall","src":"19366:88:97"},"nativeSrc":"19366:88:97","nodeType":"YulExpressionStatement","src":"19366:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19470:1:97","nodeType":"YulLiteral","src":"19470:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"19473:4:97","nodeType":"YulLiteral","src":"19473:4:97","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"19463:6:97","nodeType":"YulIdentifier","src":"19463:6:97"},"nativeSrc":"19463:15:97","nodeType":"YulFunctionCall","src":"19463:15:97"},"nativeSrc":"19463:15:97","nodeType":"YulExpressionStatement","src":"19463:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19494:1:97","nodeType":"YulLiteral","src":"19494:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"19497:4:97","nodeType":"YulLiteral","src":"19497:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"19487:6:97","nodeType":"YulIdentifier","src":"19487:6:97"},"nativeSrc":"19487:15:97","nodeType":"YulFunctionCall","src":"19487:15:97"},"nativeSrc":"19487:15:97","nodeType":"YulExpressionStatement","src":"19487:15:97"}]},"name":"panic_error_0x41","nativeSrc":"19324:184:97","nodeType":"YulFunctionDefinition","src":"19324:184:97"},{"body":{"nativeSrc":"19559:209:97","nodeType":"YulBlock","src":"19559:209:97","statements":[{"nativeSrc":"19569:19:97","nodeType":"YulAssignment","src":"19569:19:97","value":{"arguments":[{"kind":"number","nativeSrc":"19585:2:97","nodeType":"YulLiteral","src":"19585:2:97","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"19579:5:97","nodeType":"YulIdentifier","src":"19579:5:97"},"nativeSrc":"19579:9:97","nodeType":"YulFunctionCall","src":"19579:9:97"},"variableNames":[{"name":"memPtr","nativeSrc":"19569:6:97","nodeType":"YulIdentifier","src":"19569:6:97"}]},{"nativeSrc":"19597:37:97","nodeType":"YulVariableDeclaration","src":"19597:37:97","value":{"arguments":[{"name":"memPtr","nativeSrc":"19619:6:97","nodeType":"YulIdentifier","src":"19619:6:97"},{"kind":"number","nativeSrc":"19627:6:97","nodeType":"YulLiteral","src":"19627:6:97","type":"","value":"0x0180"}],"functionName":{"name":"add","nativeSrc":"19615:3:97","nodeType":"YulIdentifier","src":"19615:3:97"},"nativeSrc":"19615:19:97","nodeType":"YulFunctionCall","src":"19615:19:97"},"variables":[{"name":"newFreePtr","nativeSrc":"19601:10:97","nodeType":"YulTypedName","src":"19601:10:97","type":""}]},{"body":{"nativeSrc":"19709:22:97","nodeType":"YulBlock","src":"19709:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"19711:16:97","nodeType":"YulIdentifier","src":"19711:16:97"},"nativeSrc":"19711:18:97","nodeType":"YulFunctionCall","src":"19711:18:97"},"nativeSrc":"19711:18:97","nodeType":"YulExpressionStatement","src":"19711:18:97"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"19652:10:97","nodeType":"YulIdentifier","src":"19652:10:97"},{"kind":"number","nativeSrc":"19664:18:97","nodeType":"YulLiteral","src":"19664:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"19649:2:97","nodeType":"YulIdentifier","src":"19649:2:97"},"nativeSrc":"19649:34:97","nodeType":"YulFunctionCall","src":"19649:34:97"},{"arguments":[{"name":"newFreePtr","nativeSrc":"19688:10:97","nodeType":"YulIdentifier","src":"19688:10:97"},{"name":"memPtr","nativeSrc":"19700:6:97","nodeType":"YulIdentifier","src":"19700:6:97"}],"functionName":{"name":"lt","nativeSrc":"19685:2:97","nodeType":"YulIdentifier","src":"19685:2:97"},"nativeSrc":"19685:22:97","nodeType":"YulFunctionCall","src":"19685:22:97"}],"functionName":{"name":"or","nativeSrc":"19646:2:97","nodeType":"YulIdentifier","src":"19646:2:97"},"nativeSrc":"19646:62:97","nodeType":"YulFunctionCall","src":"19646:62:97"},"nativeSrc":"19643:88:97","nodeType":"YulIf","src":"19643:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19747:2:97","nodeType":"YulLiteral","src":"19747:2:97","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"19751:10:97","nodeType":"YulIdentifier","src":"19751:10:97"}],"functionName":{"name":"mstore","nativeSrc":"19740:6:97","nodeType":"YulIdentifier","src":"19740:6:97"},"nativeSrc":"19740:22:97","nodeType":"YulFunctionCall","src":"19740:22:97"},"nativeSrc":"19740:22:97","nodeType":"YulExpressionStatement","src":"19740:22:97"}]},"name":"allocate_memory_3487","nativeSrc":"19513:255:97","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"19548:6:97","nodeType":"YulTypedName","src":"19548:6:97","type":""}],"src":"19513:255:97"},{"body":{"nativeSrc":"19818:289:97","nodeType":"YulBlock","src":"19818:289:97","statements":[{"nativeSrc":"19828:19:97","nodeType":"YulAssignment","src":"19828:19:97","value":{"arguments":[{"kind":"number","nativeSrc":"19844:2:97","nodeType":"YulLiteral","src":"19844:2:97","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"19838:5:97","nodeType":"YulIdentifier","src":"19838:5:97"},"nativeSrc":"19838:9:97","nodeType":"YulFunctionCall","src":"19838:9:97"},"variableNames":[{"name":"memPtr","nativeSrc":"19828:6:97","nodeType":"YulIdentifier","src":"19828:6:97"}]},{"nativeSrc":"19856:117:97","nodeType":"YulVariableDeclaration","src":"19856:117:97","value":{"arguments":[{"name":"memPtr","nativeSrc":"19878:6:97","nodeType":"YulIdentifier","src":"19878:6:97"},{"arguments":[{"arguments":[{"name":"size","nativeSrc":"19894:4:97","nodeType":"YulIdentifier","src":"19894:4:97"},{"kind":"number","nativeSrc":"19900:2:97","nodeType":"YulLiteral","src":"19900:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"19890:3:97","nodeType":"YulIdentifier","src":"19890:3:97"},"nativeSrc":"19890:13:97","nodeType":"YulFunctionCall","src":"19890:13:97"},{"kind":"number","nativeSrc":"19905:66:97","nodeType":"YulLiteral","src":"19905:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"19886:3:97","nodeType":"YulIdentifier","src":"19886:3:97"},"nativeSrc":"19886:86:97","nodeType":"YulFunctionCall","src":"19886:86:97"}],"functionName":{"name":"add","nativeSrc":"19874:3:97","nodeType":"YulIdentifier","src":"19874:3:97"},"nativeSrc":"19874:99:97","nodeType":"YulFunctionCall","src":"19874:99:97"},"variables":[{"name":"newFreePtr","nativeSrc":"19860:10:97","nodeType":"YulTypedName","src":"19860:10:97","type":""}]},{"body":{"nativeSrc":"20048:22:97","nodeType":"YulBlock","src":"20048:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"20050:16:97","nodeType":"YulIdentifier","src":"20050:16:97"},"nativeSrc":"20050:18:97","nodeType":"YulFunctionCall","src":"20050:18:97"},"nativeSrc":"20050:18:97","nodeType":"YulExpressionStatement","src":"20050:18:97"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"19991:10:97","nodeType":"YulIdentifier","src":"19991:10:97"},{"kind":"number","nativeSrc":"20003:18:97","nodeType":"YulLiteral","src":"20003:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"19988:2:97","nodeType":"YulIdentifier","src":"19988:2:97"},"nativeSrc":"19988:34:97","nodeType":"YulFunctionCall","src":"19988:34:97"},{"arguments":[{"name":"newFreePtr","nativeSrc":"20027:10:97","nodeType":"YulIdentifier","src":"20027:10:97"},{"name":"memPtr","nativeSrc":"20039:6:97","nodeType":"YulIdentifier","src":"20039:6:97"}],"functionName":{"name":"lt","nativeSrc":"20024:2:97","nodeType":"YulIdentifier","src":"20024:2:97"},"nativeSrc":"20024:22:97","nodeType":"YulFunctionCall","src":"20024:22:97"}],"functionName":{"name":"or","nativeSrc":"19985:2:97","nodeType":"YulIdentifier","src":"19985:2:97"},"nativeSrc":"19985:62:97","nodeType":"YulFunctionCall","src":"19985:62:97"},"nativeSrc":"19982:88:97","nodeType":"YulIf","src":"19982:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"20086:2:97","nodeType":"YulLiteral","src":"20086:2:97","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"20090:10:97","nodeType":"YulIdentifier","src":"20090:10:97"}],"functionName":{"name":"mstore","nativeSrc":"20079:6:97","nodeType":"YulIdentifier","src":"20079:6:97"},"nativeSrc":"20079:22:97","nodeType":"YulFunctionCall","src":"20079:22:97"},"nativeSrc":"20079:22:97","nodeType":"YulExpressionStatement","src":"20079:22:97"}]},"name":"allocate_memory","nativeSrc":"19773:334:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"19798:4:97","nodeType":"YulTypedName","src":"19798:4:97","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"19807:6:97","nodeType":"YulTypedName","src":"19807:6:97","type":""}],"src":"19773:334:97"},{"body":{"nativeSrc":"20218:905:97","nodeType":"YulBlock","src":"20218:905:97","statements":[{"nativeSrc":"20228:12:97","nodeType":"YulVariableDeclaration","src":"20228:12:97","value":{"kind":"number","nativeSrc":"20238:2:97","nodeType":"YulLiteral","src":"20238:2:97","type":"","value":"32"},"variables":[{"name":"_1","nativeSrc":"20232:2:97","nodeType":"YulTypedName","src":"20232:2:97","type":""}]},{"body":{"nativeSrc":"20285:16:97","nodeType":"YulBlock","src":"20285:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"20294:1:97","nodeType":"YulLiteral","src":"20294:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"20297:1:97","nodeType":"YulLiteral","src":"20297:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"20287:6:97","nodeType":"YulIdentifier","src":"20287:6:97"},"nativeSrc":"20287:12:97","nodeType":"YulFunctionCall","src":"20287:12:97"},"nativeSrc":"20287:12:97","nodeType":"YulExpressionStatement","src":"20287:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"20260:7:97","nodeType":"YulIdentifier","src":"20260:7:97"},{"name":"headStart","nativeSrc":"20269:9:97","nodeType":"YulIdentifier","src":"20269:9:97"}],"functionName":{"name":"sub","nativeSrc":"20256:3:97","nodeType":"YulIdentifier","src":"20256:3:97"},"nativeSrc":"20256:23:97","nodeType":"YulFunctionCall","src":"20256:23:97"},{"name":"_1","nativeSrc":"20281:2:97","nodeType":"YulIdentifier","src":"20281:2:97"}],"functionName":{"name":"slt","nativeSrc":"20252:3:97","nodeType":"YulIdentifier","src":"20252:3:97"},"nativeSrc":"20252:32:97","nodeType":"YulFunctionCall","src":"20252:32:97"},"nativeSrc":"20249:52:97","nodeType":"YulIf","src":"20249:52:97"},{"nativeSrc":"20310:30:97","nodeType":"YulVariableDeclaration","src":"20310:30:97","value":{"arguments":[{"name":"headStart","nativeSrc":"20330:9:97","nodeType":"YulIdentifier","src":"20330:9:97"}],"functionName":{"name":"mload","nativeSrc":"20324:5:97","nodeType":"YulIdentifier","src":"20324:5:97"},"nativeSrc":"20324:16:97","nodeType":"YulFunctionCall","src":"20324:16:97"},"variables":[{"name":"offset","nativeSrc":"20314:6:97","nodeType":"YulTypedName","src":"20314:6:97","type":""}]},{"nativeSrc":"20349:28:97","nodeType":"YulVariableDeclaration","src":"20349:28:97","value":{"kind":"number","nativeSrc":"20359:18:97","nodeType":"YulLiteral","src":"20359:18:97","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_2","nativeSrc":"20353:2:97","nodeType":"YulTypedName","src":"20353:2:97","type":""}]},{"body":{"nativeSrc":"20404:16:97","nodeType":"YulBlock","src":"20404:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"20413:1:97","nodeType":"YulLiteral","src":"20413:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"20416:1:97","nodeType":"YulLiteral","src":"20416:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"20406:6:97","nodeType":"YulIdentifier","src":"20406:6:97"},"nativeSrc":"20406:12:97","nodeType":"YulFunctionCall","src":"20406:12:97"},"nativeSrc":"20406:12:97","nodeType":"YulExpressionStatement","src":"20406:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"20392:6:97","nodeType":"YulIdentifier","src":"20392:6:97"},{"name":"_2","nativeSrc":"20400:2:97","nodeType":"YulIdentifier","src":"20400:2:97"}],"functionName":{"name":"gt","nativeSrc":"20389:2:97","nodeType":"YulIdentifier","src":"20389:2:97"},"nativeSrc":"20389:14:97","nodeType":"YulFunctionCall","src":"20389:14:97"},"nativeSrc":"20386:34:97","nodeType":"YulIf","src":"20386:34:97"},{"nativeSrc":"20429:32:97","nodeType":"YulVariableDeclaration","src":"20429:32:97","value":{"arguments":[{"name":"headStart","nativeSrc":"20443:9:97","nodeType":"YulIdentifier","src":"20443:9:97"},{"name":"offset","nativeSrc":"20454:6:97","nodeType":"YulIdentifier","src":"20454:6:97"}],"functionName":{"name":"add","nativeSrc":"20439:3:97","nodeType":"YulIdentifier","src":"20439:3:97"},"nativeSrc":"20439:22:97","nodeType":"YulFunctionCall","src":"20439:22:97"},"variables":[{"name":"_3","nativeSrc":"20433:2:97","nodeType":"YulTypedName","src":"20433:2:97","type":""}]},{"body":{"nativeSrc":"20509:16:97","nodeType":"YulBlock","src":"20509:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"20518:1:97","nodeType":"YulLiteral","src":"20518:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"20521:1:97","nodeType":"YulLiteral","src":"20521:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"20511:6:97","nodeType":"YulIdentifier","src":"20511:6:97"},"nativeSrc":"20511:12:97","nodeType":"YulFunctionCall","src":"20511:12:97"},"nativeSrc":"20511:12:97","nodeType":"YulExpressionStatement","src":"20511:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nativeSrc":"20488:2:97","nodeType":"YulIdentifier","src":"20488:2:97"},{"kind":"number","nativeSrc":"20492:4:97","nodeType":"YulLiteral","src":"20492:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"20484:3:97","nodeType":"YulIdentifier","src":"20484:3:97"},"nativeSrc":"20484:13:97","nodeType":"YulFunctionCall","src":"20484:13:97"},{"name":"dataEnd","nativeSrc":"20499:7:97","nodeType":"YulIdentifier","src":"20499:7:97"}],"functionName":{"name":"slt","nativeSrc":"20480:3:97","nodeType":"YulIdentifier","src":"20480:3:97"},"nativeSrc":"20480:27:97","nodeType":"YulFunctionCall","src":"20480:27:97"}],"functionName":{"name":"iszero","nativeSrc":"20473:6:97","nodeType":"YulIdentifier","src":"20473:6:97"},"nativeSrc":"20473:35:97","nodeType":"YulFunctionCall","src":"20473:35:97"},"nativeSrc":"20470:55:97","nodeType":"YulIf","src":"20470:55:97"},{"nativeSrc":"20534:19:97","nodeType":"YulVariableDeclaration","src":"20534:19:97","value":{"arguments":[{"name":"_3","nativeSrc":"20550:2:97","nodeType":"YulIdentifier","src":"20550:2:97"}],"functionName":{"name":"mload","nativeSrc":"20544:5:97","nodeType":"YulIdentifier","src":"20544:5:97"},"nativeSrc":"20544:9:97","nodeType":"YulFunctionCall","src":"20544:9:97"},"variables":[{"name":"_4","nativeSrc":"20538:2:97","nodeType":"YulTypedName","src":"20538:2:97","type":""}]},{"body":{"nativeSrc":"20576:22:97","nodeType":"YulBlock","src":"20576:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"20578:16:97","nodeType":"YulIdentifier","src":"20578:16:97"},"nativeSrc":"20578:18:97","nodeType":"YulFunctionCall","src":"20578:18:97"},"nativeSrc":"20578:18:97","nodeType":"YulExpressionStatement","src":"20578:18:97"}]},"condition":{"arguments":[{"name":"_4","nativeSrc":"20568:2:97","nodeType":"YulIdentifier","src":"20568:2:97"},{"name":"_2","nativeSrc":"20572:2:97","nodeType":"YulIdentifier","src":"20572:2:97"}],"functionName":{"name":"gt","nativeSrc":"20565:2:97","nodeType":"YulIdentifier","src":"20565:2:97"},"nativeSrc":"20565:10:97","nodeType":"YulFunctionCall","src":"20565:10:97"},"nativeSrc":"20562:36:97","nodeType":"YulIf","src":"20562:36:97"},{"nativeSrc":"20607:20:97","nodeType":"YulVariableDeclaration","src":"20607:20:97","value":{"arguments":[{"kind":"number","nativeSrc":"20621:1:97","nodeType":"YulLiteral","src":"20621:1:97","type":"","value":"5"},{"name":"_4","nativeSrc":"20624:2:97","nodeType":"YulIdentifier","src":"20624:2:97"}],"functionName":{"name":"shl","nativeSrc":"20617:3:97","nodeType":"YulIdentifier","src":"20617:3:97"},"nativeSrc":"20617:10:97","nodeType":"YulFunctionCall","src":"20617:10:97"},"variables":[{"name":"_5","nativeSrc":"20611:2:97","nodeType":"YulTypedName","src":"20611:2:97","type":""}]},{"nativeSrc":"20636:39:97","nodeType":"YulVariableDeclaration","src":"20636:39:97","value":{"arguments":[{"arguments":[{"name":"_5","nativeSrc":"20667:2:97","nodeType":"YulIdentifier","src":"20667:2:97"},{"name":"_1","nativeSrc":"20671:2:97","nodeType":"YulIdentifier","src":"20671:2:97"}],"functionName":{"name":"add","nativeSrc":"20663:3:97","nodeType":"YulIdentifier","src":"20663:3:97"},"nativeSrc":"20663:11:97","nodeType":"YulFunctionCall","src":"20663:11:97"}],"functionName":{"name":"allocate_memory","nativeSrc":"20647:15:97","nodeType":"YulIdentifier","src":"20647:15:97"},"nativeSrc":"20647:28:97","nodeType":"YulFunctionCall","src":"20647:28:97"},"variables":[{"name":"dst","nativeSrc":"20640:3:97","nodeType":"YulTypedName","src":"20640:3:97","type":""}]},{"nativeSrc":"20684:16:97","nodeType":"YulVariableDeclaration","src":"20684:16:97","value":{"name":"dst","nativeSrc":"20697:3:97","nodeType":"YulIdentifier","src":"20697:3:97"},"variables":[{"name":"dst_1","nativeSrc":"20688:5:97","nodeType":"YulTypedName","src":"20688:5:97","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"20716:3:97","nodeType":"YulIdentifier","src":"20716:3:97"},{"name":"_4","nativeSrc":"20721:2:97","nodeType":"YulIdentifier","src":"20721:2:97"}],"functionName":{"name":"mstore","nativeSrc":"20709:6:97","nodeType":"YulIdentifier","src":"20709:6:97"},"nativeSrc":"20709:15:97","nodeType":"YulFunctionCall","src":"20709:15:97"},"nativeSrc":"20709:15:97","nodeType":"YulExpressionStatement","src":"20709:15:97"},{"nativeSrc":"20733:19:97","nodeType":"YulAssignment","src":"20733:19:97","value":{"arguments":[{"name":"dst","nativeSrc":"20744:3:97","nodeType":"YulIdentifier","src":"20744:3:97"},{"name":"_1","nativeSrc":"20749:2:97","nodeType":"YulIdentifier","src":"20749:2:97"}],"functionName":{"name":"add","nativeSrc":"20740:3:97","nodeType":"YulIdentifier","src":"20740:3:97"},"nativeSrc":"20740:12:97","nodeType":"YulFunctionCall","src":"20740:12:97"},"variableNames":[{"name":"dst","nativeSrc":"20733:3:97","nodeType":"YulIdentifier","src":"20733:3:97"}]},{"nativeSrc":"20761:34:97","nodeType":"YulVariableDeclaration","src":"20761:34:97","value":{"arguments":[{"arguments":[{"name":"_3","nativeSrc":"20783:2:97","nodeType":"YulIdentifier","src":"20783:2:97"},{"name":"_5","nativeSrc":"20787:2:97","nodeType":"YulIdentifier","src":"20787:2:97"}],"functionName":{"name":"add","nativeSrc":"20779:3:97","nodeType":"YulIdentifier","src":"20779:3:97"},"nativeSrc":"20779:11:97","nodeType":"YulFunctionCall","src":"20779:11:97"},{"name":"_1","nativeSrc":"20792:2:97","nodeType":"YulIdentifier","src":"20792:2:97"}],"functionName":{"name":"add","nativeSrc":"20775:3:97","nodeType":"YulIdentifier","src":"20775:3:97"},"nativeSrc":"20775:20:97","nodeType":"YulFunctionCall","src":"20775:20:97"},"variables":[{"name":"srcEnd","nativeSrc":"20765:6:97","nodeType":"YulTypedName","src":"20765:6:97","type":""}]},{"body":{"nativeSrc":"20827:16:97","nodeType":"YulBlock","src":"20827:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"20836:1:97","nodeType":"YulLiteral","src":"20836:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"20839:1:97","nodeType":"YulLiteral","src":"20839:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"20829:6:97","nodeType":"YulIdentifier","src":"20829:6:97"},"nativeSrc":"20829:12:97","nodeType":"YulFunctionCall","src":"20829:12:97"},"nativeSrc":"20829:12:97","nodeType":"YulExpressionStatement","src":"20829:12:97"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"20810:6:97","nodeType":"YulIdentifier","src":"20810:6:97"},{"name":"dataEnd","nativeSrc":"20818:7:97","nodeType":"YulIdentifier","src":"20818:7:97"}],"functionName":{"name":"gt","nativeSrc":"20807:2:97","nodeType":"YulIdentifier","src":"20807:2:97"},"nativeSrc":"20807:19:97","nodeType":"YulFunctionCall","src":"20807:19:97"},"nativeSrc":"20804:39:97","nodeType":"YulIf","src":"20804:39:97"},{"nativeSrc":"20852:22:97","nodeType":"YulVariableDeclaration","src":"20852:22:97","value":{"arguments":[{"name":"_3","nativeSrc":"20867:2:97","nodeType":"YulIdentifier","src":"20867:2:97"},{"name":"_1","nativeSrc":"20871:2:97","nodeType":"YulIdentifier","src":"20871:2:97"}],"functionName":{"name":"add","nativeSrc":"20863:3:97","nodeType":"YulIdentifier","src":"20863:3:97"},"nativeSrc":"20863:11:97","nodeType":"YulFunctionCall","src":"20863:11:97"},"variables":[{"name":"src","nativeSrc":"20856:3:97","nodeType":"YulTypedName","src":"20856:3:97","type":""}]},{"body":{"nativeSrc":"20939:154:97","nodeType":"YulBlock","src":"20939:154:97","statements":[{"nativeSrc":"20953:23:97","nodeType":"YulVariableDeclaration","src":"20953:23:97","value":{"arguments":[{"name":"src","nativeSrc":"20972:3:97","nodeType":"YulIdentifier","src":"20972:3:97"}],"functionName":{"name":"mload","nativeSrc":"20966:5:97","nodeType":"YulIdentifier","src":"20966:5:97"},"nativeSrc":"20966:10:97","nodeType":"YulFunctionCall","src":"20966:10:97"},"variables":[{"name":"value","nativeSrc":"20957:5:97","nodeType":"YulTypedName","src":"20957:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"21014:5:97","nodeType":"YulIdentifier","src":"21014:5:97"}],"functionName":{"name":"validator_revert_address","nativeSrc":"20989:24:97","nodeType":"YulIdentifier","src":"20989:24:97"},"nativeSrc":"20989:31:97","nodeType":"YulFunctionCall","src":"20989:31:97"},"nativeSrc":"20989:31:97","nodeType":"YulExpressionStatement","src":"20989:31:97"},{"expression":{"arguments":[{"name":"dst","nativeSrc":"21040:3:97","nodeType":"YulIdentifier","src":"21040:3:97"},{"name":"value","nativeSrc":"21045:5:97","nodeType":"YulIdentifier","src":"21045:5:97"}],"functionName":{"name":"mstore","nativeSrc":"21033:6:97","nodeType":"YulIdentifier","src":"21033:6:97"},"nativeSrc":"21033:18:97","nodeType":"YulFunctionCall","src":"21033:18:97"},"nativeSrc":"21033:18:97","nodeType":"YulExpressionStatement","src":"21033:18:97"},{"nativeSrc":"21064:19:97","nodeType":"YulAssignment","src":"21064:19:97","value":{"arguments":[{"name":"dst","nativeSrc":"21075:3:97","nodeType":"YulIdentifier","src":"21075:3:97"},{"name":"_1","nativeSrc":"21080:2:97","nodeType":"YulIdentifier","src":"21080:2:97"}],"functionName":{"name":"add","nativeSrc":"21071:3:97","nodeType":"YulIdentifier","src":"21071:3:97"},"nativeSrc":"21071:12:97","nodeType":"YulFunctionCall","src":"21071:12:97"},"variableNames":[{"name":"dst","nativeSrc":"21064:3:97","nodeType":"YulIdentifier","src":"21064:3:97"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"20894:3:97","nodeType":"YulIdentifier","src":"20894:3:97"},{"name":"srcEnd","nativeSrc":"20899:6:97","nodeType":"YulIdentifier","src":"20899:6:97"}],"functionName":{"name":"lt","nativeSrc":"20891:2:97","nodeType":"YulIdentifier","src":"20891:2:97"},"nativeSrc":"20891:15:97","nodeType":"YulFunctionCall","src":"20891:15:97"},"nativeSrc":"20883:210:97","nodeType":"YulForLoop","post":{"nativeSrc":"20907:23:97","nodeType":"YulBlock","src":"20907:23:97","statements":[{"nativeSrc":"20909:19:97","nodeType":"YulAssignment","src":"20909:19:97","value":{"arguments":[{"name":"src","nativeSrc":"20920:3:97","nodeType":"YulIdentifier","src":"20920:3:97"},{"name":"_1","nativeSrc":"20925:2:97","nodeType":"YulIdentifier","src":"20925:2:97"}],"functionName":{"name":"add","nativeSrc":"20916:3:97","nodeType":"YulIdentifier","src":"20916:3:97"},"nativeSrc":"20916:12:97","nodeType":"YulFunctionCall","src":"20916:12:97"},"variableNames":[{"name":"src","nativeSrc":"20909:3:97","nodeType":"YulIdentifier","src":"20909:3:97"}]}]},"pre":{"nativeSrc":"20887:3:97","nodeType":"YulBlock","src":"20887:3:97","statements":[]},"src":"20883:210:97"},{"nativeSrc":"21102:15:97","nodeType":"YulAssignment","src":"21102:15:97","value":{"name":"dst_1","nativeSrc":"21112:5:97","nodeType":"YulIdentifier","src":"21112:5:97"},"variableNames":[{"name":"value0","nativeSrc":"21102:6:97","nodeType":"YulIdentifier","src":"21102:6:97"}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptr_fromMemory","nativeSrc":"20112:1011:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20184:9:97","nodeType":"YulTypedName","src":"20184:9:97","type":""},{"name":"dataEnd","nativeSrc":"20195:7:97","nodeType":"YulTypedName","src":"20195:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"20207:6:97","nodeType":"YulTypedName","src":"20207:6:97","type":""}],"src":"20112:1011:97"},{"body":{"nativeSrc":"21160:152:97","nodeType":"YulBlock","src":"21160:152:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"21177:1:97","nodeType":"YulLiteral","src":"21177:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"21180:77:97","nodeType":"YulLiteral","src":"21180:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"21170:6:97","nodeType":"YulIdentifier","src":"21170:6:97"},"nativeSrc":"21170:88:97","nodeType":"YulFunctionCall","src":"21170:88:97"},"nativeSrc":"21170:88:97","nodeType":"YulExpressionStatement","src":"21170:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21274:1:97","nodeType":"YulLiteral","src":"21274:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"21277:4:97","nodeType":"YulLiteral","src":"21277:4:97","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"21267:6:97","nodeType":"YulIdentifier","src":"21267:6:97"},"nativeSrc":"21267:15:97","nodeType":"YulFunctionCall","src":"21267:15:97"},"nativeSrc":"21267:15:97","nodeType":"YulExpressionStatement","src":"21267:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21298:1:97","nodeType":"YulLiteral","src":"21298:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"21301:4:97","nodeType":"YulLiteral","src":"21301:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"21291:6:97","nodeType":"YulIdentifier","src":"21291:6:97"},"nativeSrc":"21291:15:97","nodeType":"YulFunctionCall","src":"21291:15:97"},"nativeSrc":"21291:15:97","nodeType":"YulExpressionStatement","src":"21291:15:97"}]},"name":"panic_error_0x32","nativeSrc":"21128:184:97","nodeType":"YulFunctionDefinition","src":"21128:184:97"},{"body":{"nativeSrc":"21364:148:97","nodeType":"YulBlock","src":"21364:148:97","statements":[{"body":{"nativeSrc":"21455:22:97","nodeType":"YulBlock","src":"21455:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"21457:16:97","nodeType":"YulIdentifier","src":"21457:16:97"},"nativeSrc":"21457:18:97","nodeType":"YulFunctionCall","src":"21457:18:97"},"nativeSrc":"21457:18:97","nodeType":"YulExpressionStatement","src":"21457:18:97"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"21380:5:97","nodeType":"YulIdentifier","src":"21380:5:97"},{"kind":"number","nativeSrc":"21387:66:97","nodeType":"YulLiteral","src":"21387:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"eq","nativeSrc":"21377:2:97","nodeType":"YulIdentifier","src":"21377:2:97"},"nativeSrc":"21377:77:97","nodeType":"YulFunctionCall","src":"21377:77:97"},"nativeSrc":"21374:103:97","nodeType":"YulIf","src":"21374:103:97"},{"nativeSrc":"21486:20:97","nodeType":"YulAssignment","src":"21486:20:97","value":{"arguments":[{"name":"value","nativeSrc":"21497:5:97","nodeType":"YulIdentifier","src":"21497:5:97"},{"kind":"number","nativeSrc":"21504:1:97","nodeType":"YulLiteral","src":"21504:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"21493:3:97","nodeType":"YulIdentifier","src":"21493:3:97"},"nativeSrc":"21493:13:97","nodeType":"YulFunctionCall","src":"21493:13:97"},"variableNames":[{"name":"ret","nativeSrc":"21486:3:97","nodeType":"YulIdentifier","src":"21486:3:97"}]}]},"name":"increment_t_uint256","nativeSrc":"21317:195:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"21346:5:97","nodeType":"YulTypedName","src":"21346:5:97","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"21356:3:97","nodeType":"YulTypedName","src":"21356:3:97","type":""}],"src":"21317:195:97"},{"body":{"nativeSrc":"21691:182:97","nodeType":"YulBlock","src":"21691:182:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"21708:9:97","nodeType":"YulIdentifier","src":"21708:9:97"},{"kind":"number","nativeSrc":"21719:2:97","nodeType":"YulLiteral","src":"21719:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"21701:6:97","nodeType":"YulIdentifier","src":"21701:6:97"},"nativeSrc":"21701:21:97","nodeType":"YulFunctionCall","src":"21701:21:97"},"nativeSrc":"21701:21:97","nodeType":"YulExpressionStatement","src":"21701:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21742:9:97","nodeType":"YulIdentifier","src":"21742:9:97"},{"kind":"number","nativeSrc":"21753:2:97","nodeType":"YulLiteral","src":"21753:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21738:3:97","nodeType":"YulIdentifier","src":"21738:3:97"},"nativeSrc":"21738:18:97","nodeType":"YulFunctionCall","src":"21738:18:97"},{"kind":"number","nativeSrc":"21758:2:97","nodeType":"YulLiteral","src":"21758:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"21731:6:97","nodeType":"YulIdentifier","src":"21731:6:97"},"nativeSrc":"21731:30:97","nodeType":"YulFunctionCall","src":"21731:30:97"},"nativeSrc":"21731:30:97","nodeType":"YulExpressionStatement","src":"21731:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21781:9:97","nodeType":"YulIdentifier","src":"21781:9:97"},{"kind":"number","nativeSrc":"21792:2:97","nodeType":"YulLiteral","src":"21792:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"21777:3:97","nodeType":"YulIdentifier","src":"21777:3:97"},"nativeSrc":"21777:18:97","nodeType":"YulFunctionCall","src":"21777:18:97"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nativeSrc":"21797:34:97","nodeType":"YulLiteral","src":"21797:34:97","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nativeSrc":"21770:6:97","nodeType":"YulIdentifier","src":"21770:6:97"},"nativeSrc":"21770:62:97","nodeType":"YulFunctionCall","src":"21770:62:97"},"nativeSrc":"21770:62:97","nodeType":"YulExpressionStatement","src":"21770:62:97"},{"nativeSrc":"21841:26:97","nodeType":"YulAssignment","src":"21841:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"21853:9:97","nodeType":"YulIdentifier","src":"21853:9:97"},{"kind":"number","nativeSrc":"21864:2:97","nodeType":"YulLiteral","src":"21864:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"21849:3:97","nodeType":"YulIdentifier","src":"21849:3:97"},"nativeSrc":"21849:18:97","nodeType":"YulFunctionCall","src":"21849:18:97"},"variableNames":[{"name":"tail","nativeSrc":"21841:4:97","nodeType":"YulIdentifier","src":"21841:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"21517:356:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21668:9:97","nodeType":"YulTypedName","src":"21668:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"21682:4:97","nodeType":"YulTypedName","src":"21682:4:97","type":""}],"src":"21517:356:97"},{"body":{"nativeSrc":"22052:227:97","nodeType":"YulBlock","src":"22052:227:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"22069:9:97","nodeType":"YulIdentifier","src":"22069:9:97"},{"kind":"number","nativeSrc":"22080:2:97","nodeType":"YulLiteral","src":"22080:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"22062:6:97","nodeType":"YulIdentifier","src":"22062:6:97"},"nativeSrc":"22062:21:97","nodeType":"YulFunctionCall","src":"22062:21:97"},"nativeSrc":"22062:21:97","nodeType":"YulExpressionStatement","src":"22062:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22103:9:97","nodeType":"YulIdentifier","src":"22103:9:97"},{"kind":"number","nativeSrc":"22114:2:97","nodeType":"YulLiteral","src":"22114:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"22099:3:97","nodeType":"YulIdentifier","src":"22099:3:97"},"nativeSrc":"22099:18:97","nodeType":"YulFunctionCall","src":"22099:18:97"},{"kind":"number","nativeSrc":"22119:2:97","nodeType":"YulLiteral","src":"22119:2:97","type":"","value":"37"}],"functionName":{"name":"mstore","nativeSrc":"22092:6:97","nodeType":"YulIdentifier","src":"22092:6:97"},"nativeSrc":"22092:30:97","nodeType":"YulFunctionCall","src":"22092:30:97"},"nativeSrc":"22092:30:97","nodeType":"YulExpressionStatement","src":"22092:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22142:9:97","nodeType":"YulIdentifier","src":"22142:9:97"},{"kind":"number","nativeSrc":"22153:2:97","nodeType":"YulLiteral","src":"22153:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"22138:3:97","nodeType":"YulIdentifier","src":"22138:3:97"},"nativeSrc":"22138:18:97","nodeType":"YulFunctionCall","src":"22138:18:97"},{"hexValue":"696e76616c696420616365737320636f6e74726f6c206d616e61676572206164","kind":"string","nativeSrc":"22158:34:97","nodeType":"YulLiteral","src":"22158:34:97","type":"","value":"invalid acess control manager ad"}],"functionName":{"name":"mstore","nativeSrc":"22131:6:97","nodeType":"YulIdentifier","src":"22131:6:97"},"nativeSrc":"22131:62:97","nodeType":"YulFunctionCall","src":"22131:62:97"},"nativeSrc":"22131:62:97","nodeType":"YulExpressionStatement","src":"22131:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22213:9:97","nodeType":"YulIdentifier","src":"22213:9:97"},{"kind":"number","nativeSrc":"22224:2:97","nodeType":"YulLiteral","src":"22224:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"22209:3:97","nodeType":"YulIdentifier","src":"22209:3:97"},"nativeSrc":"22209:18:97","nodeType":"YulFunctionCall","src":"22209:18:97"},{"hexValue":"6472657373","kind":"string","nativeSrc":"22229:7:97","nodeType":"YulLiteral","src":"22229:7:97","type":"","value":"dress"}],"functionName":{"name":"mstore","nativeSrc":"22202:6:97","nodeType":"YulIdentifier","src":"22202:6:97"},"nativeSrc":"22202:35:97","nodeType":"YulFunctionCall","src":"22202:35:97"},"nativeSrc":"22202:35:97","nodeType":"YulExpressionStatement","src":"22202:35:97"},{"nativeSrc":"22246:27:97","nodeType":"YulAssignment","src":"22246:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"22258:9:97","nodeType":"YulIdentifier","src":"22258:9:97"},{"kind":"number","nativeSrc":"22269:3:97","nodeType":"YulLiteral","src":"22269:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"22254:3:97","nodeType":"YulIdentifier","src":"22254:3:97"},"nativeSrc":"22254:19:97","nodeType":"YulFunctionCall","src":"22254:19:97"},"variableNames":[{"name":"tail","nativeSrc":"22246:4:97","nodeType":"YulIdentifier","src":"22246:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"21878:401:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"22029:9:97","nodeType":"YulTypedName","src":"22029:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"22043:4:97","nodeType":"YulTypedName","src":"22043:4:97","type":""}],"src":"21878:401:97"},{"body":{"nativeSrc":"22413:198:97","nodeType":"YulBlock","src":"22413:198:97","statements":[{"nativeSrc":"22423:26:97","nodeType":"YulAssignment","src":"22423:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"22435:9:97","nodeType":"YulIdentifier","src":"22435:9:97"},{"kind":"number","nativeSrc":"22446:2:97","nodeType":"YulLiteral","src":"22446:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"22431:3:97","nodeType":"YulIdentifier","src":"22431:3:97"},"nativeSrc":"22431:18:97","nodeType":"YulFunctionCall","src":"22431:18:97"},"variableNames":[{"name":"tail","nativeSrc":"22423:4:97","nodeType":"YulIdentifier","src":"22423:4:97"}]},{"nativeSrc":"22458:52:97","nodeType":"YulVariableDeclaration","src":"22458:52:97","value":{"kind":"number","nativeSrc":"22468:42:97","nodeType":"YulLiteral","src":"22468:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"22462:2:97","nodeType":"YulTypedName","src":"22462:2:97","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"22526:9:97","nodeType":"YulIdentifier","src":"22526:9:97"},{"arguments":[{"name":"value0","nativeSrc":"22541:6:97","nodeType":"YulIdentifier","src":"22541:6:97"},{"name":"_1","nativeSrc":"22549:2:97","nodeType":"YulIdentifier","src":"22549:2:97"}],"functionName":{"name":"and","nativeSrc":"22537:3:97","nodeType":"YulIdentifier","src":"22537:3:97"},"nativeSrc":"22537:15:97","nodeType":"YulFunctionCall","src":"22537:15:97"}],"functionName":{"name":"mstore","nativeSrc":"22519:6:97","nodeType":"YulIdentifier","src":"22519:6:97"},"nativeSrc":"22519:34:97","nodeType":"YulFunctionCall","src":"22519:34:97"},"nativeSrc":"22519:34:97","nodeType":"YulExpressionStatement","src":"22519:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22573:9:97","nodeType":"YulIdentifier","src":"22573:9:97"},{"kind":"number","nativeSrc":"22584:2:97","nodeType":"YulLiteral","src":"22584:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"22569:3:97","nodeType":"YulIdentifier","src":"22569:3:97"},"nativeSrc":"22569:18:97","nodeType":"YulFunctionCall","src":"22569:18:97"},{"arguments":[{"name":"value1","nativeSrc":"22593:6:97","nodeType":"YulIdentifier","src":"22593:6:97"},{"name":"_1","nativeSrc":"22601:2:97","nodeType":"YulIdentifier","src":"22601:2:97"}],"functionName":{"name":"and","nativeSrc":"22589:3:97","nodeType":"YulIdentifier","src":"22589:3:97"},"nativeSrc":"22589:15:97","nodeType":"YulFunctionCall","src":"22589:15:97"}],"functionName":{"name":"mstore","nativeSrc":"22562:6:97","nodeType":"YulIdentifier","src":"22562:6:97"},"nativeSrc":"22562:43:97","nodeType":"YulFunctionCall","src":"22562:43:97"},"nativeSrc":"22562:43:97","nodeType":"YulExpressionStatement","src":"22562:43:97"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"22284:327:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"22374:9:97","nodeType":"YulTypedName","src":"22374:9:97","type":""},{"name":"value1","nativeSrc":"22385:6:97","nodeType":"YulTypedName","src":"22385:6:97","type":""},{"name":"value0","nativeSrc":"22393:6:97","nodeType":"YulTypedName","src":"22393:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"22404:4:97","nodeType":"YulTypedName","src":"22404:4:97","type":""}],"src":"22284:327:97"},{"body":{"nativeSrc":"22669:537:97","nodeType":"YulBlock","src":"22669:537:97","statements":[{"body":{"nativeSrc":"22718:16:97","nodeType":"YulBlock","src":"22718:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"22727:1:97","nodeType":"YulLiteral","src":"22727:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"22730:1:97","nodeType":"YulLiteral","src":"22730:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"22720:6:97","nodeType":"YulIdentifier","src":"22720:6:97"},"nativeSrc":"22720:12:97","nodeType":"YulFunctionCall","src":"22720:12:97"},"nativeSrc":"22720:12:97","nodeType":"YulExpressionStatement","src":"22720:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"22697:6:97","nodeType":"YulIdentifier","src":"22697:6:97"},{"kind":"number","nativeSrc":"22705:4:97","nodeType":"YulLiteral","src":"22705:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"22693:3:97","nodeType":"YulIdentifier","src":"22693:3:97"},"nativeSrc":"22693:17:97","nodeType":"YulFunctionCall","src":"22693:17:97"},{"name":"end","nativeSrc":"22712:3:97","nodeType":"YulIdentifier","src":"22712:3:97"}],"functionName":{"name":"slt","nativeSrc":"22689:3:97","nodeType":"YulIdentifier","src":"22689:3:97"},"nativeSrc":"22689:27:97","nodeType":"YulFunctionCall","src":"22689:27:97"}],"functionName":{"name":"iszero","nativeSrc":"22682:6:97","nodeType":"YulIdentifier","src":"22682:6:97"},"nativeSrc":"22682:35:97","nodeType":"YulFunctionCall","src":"22682:35:97"},"nativeSrc":"22679:55:97","nodeType":"YulIf","src":"22679:55:97"},{"nativeSrc":"22743:30:97","nodeType":"YulVariableDeclaration","src":"22743:30:97","value":{"arguments":[{"name":"offset","nativeSrc":"22766:6:97","nodeType":"YulIdentifier","src":"22766:6:97"}],"functionName":{"name":"calldataload","nativeSrc":"22753:12:97","nodeType":"YulIdentifier","src":"22753:12:97"},"nativeSrc":"22753:20:97","nodeType":"YulFunctionCall","src":"22753:20:97"},"variables":[{"name":"_1","nativeSrc":"22747:2:97","nodeType":"YulTypedName","src":"22747:2:97","type":""}]},{"body":{"nativeSrc":"22812:22:97","nodeType":"YulBlock","src":"22812:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"22814:16:97","nodeType":"YulIdentifier","src":"22814:16:97"},"nativeSrc":"22814:18:97","nodeType":"YulFunctionCall","src":"22814:18:97"},"nativeSrc":"22814:18:97","nodeType":"YulExpressionStatement","src":"22814:18:97"}]},"condition":{"arguments":[{"name":"_1","nativeSrc":"22788:2:97","nodeType":"YulIdentifier","src":"22788:2:97"},{"kind":"number","nativeSrc":"22792:18:97","nodeType":"YulLiteral","src":"22792:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"22785:2:97","nodeType":"YulIdentifier","src":"22785:2:97"},"nativeSrc":"22785:26:97","nodeType":"YulFunctionCall","src":"22785:26:97"},"nativeSrc":"22782:52:97","nodeType":"YulIf","src":"22782:52:97"},{"nativeSrc":"22843:129:97","nodeType":"YulVariableDeclaration","src":"22843:129:97","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"22886:2:97","nodeType":"YulIdentifier","src":"22886:2:97"},{"kind":"number","nativeSrc":"22890:4:97","nodeType":"YulLiteral","src":"22890:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"22882:3:97","nodeType":"YulIdentifier","src":"22882:3:97"},"nativeSrc":"22882:13:97","nodeType":"YulFunctionCall","src":"22882:13:97"},{"kind":"number","nativeSrc":"22897:66:97","nodeType":"YulLiteral","src":"22897:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"22878:3:97","nodeType":"YulIdentifier","src":"22878:3:97"},"nativeSrc":"22878:86:97","nodeType":"YulFunctionCall","src":"22878:86:97"},{"kind":"number","nativeSrc":"22966:4:97","nodeType":"YulLiteral","src":"22966:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22874:3:97","nodeType":"YulIdentifier","src":"22874:3:97"},"nativeSrc":"22874:97:97","nodeType":"YulFunctionCall","src":"22874:97:97"}],"functionName":{"name":"allocate_memory","nativeSrc":"22858:15:97","nodeType":"YulIdentifier","src":"22858:15:97"},"nativeSrc":"22858:114:97","nodeType":"YulFunctionCall","src":"22858:114:97"},"variables":[{"name":"array_1","nativeSrc":"22847:7:97","nodeType":"YulTypedName","src":"22847:7:97","type":""}]},{"expression":{"arguments":[{"name":"array_1","nativeSrc":"22988:7:97","nodeType":"YulIdentifier","src":"22988:7:97"},{"name":"_1","nativeSrc":"22997:2:97","nodeType":"YulIdentifier","src":"22997:2:97"}],"functionName":{"name":"mstore","nativeSrc":"22981:6:97","nodeType":"YulIdentifier","src":"22981:6:97"},"nativeSrc":"22981:19:97","nodeType":"YulFunctionCall","src":"22981:19:97"},"nativeSrc":"22981:19:97","nodeType":"YulExpressionStatement","src":"22981:19:97"},{"body":{"nativeSrc":"23048:16:97","nodeType":"YulBlock","src":"23048:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"23057:1:97","nodeType":"YulLiteral","src":"23057:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"23060:1:97","nodeType":"YulLiteral","src":"23060:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"23050:6:97","nodeType":"YulIdentifier","src":"23050:6:97"},"nativeSrc":"23050:12:97","nodeType":"YulFunctionCall","src":"23050:12:97"},"nativeSrc":"23050:12:97","nodeType":"YulExpressionStatement","src":"23050:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"23023:6:97","nodeType":"YulIdentifier","src":"23023:6:97"},{"name":"_1","nativeSrc":"23031:2:97","nodeType":"YulIdentifier","src":"23031:2:97"}],"functionName":{"name":"add","nativeSrc":"23019:3:97","nodeType":"YulIdentifier","src":"23019:3:97"},"nativeSrc":"23019:15:97","nodeType":"YulFunctionCall","src":"23019:15:97"},{"kind":"number","nativeSrc":"23036:4:97","nodeType":"YulLiteral","src":"23036:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"23015:3:97","nodeType":"YulIdentifier","src":"23015:3:97"},"nativeSrc":"23015:26:97","nodeType":"YulFunctionCall","src":"23015:26:97"},{"name":"end","nativeSrc":"23043:3:97","nodeType":"YulIdentifier","src":"23043:3:97"}],"functionName":{"name":"gt","nativeSrc":"23012:2:97","nodeType":"YulIdentifier","src":"23012:2:97"},"nativeSrc":"23012:35:97","nodeType":"YulFunctionCall","src":"23012:35:97"},"nativeSrc":"23009:55:97","nodeType":"YulIf","src":"23009:55:97"},{"expression":{"arguments":[{"arguments":[{"name":"array_1","nativeSrc":"23090:7:97","nodeType":"YulIdentifier","src":"23090:7:97"},{"kind":"number","nativeSrc":"23099:4:97","nodeType":"YulLiteral","src":"23099:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"23086:3:97","nodeType":"YulIdentifier","src":"23086:3:97"},"nativeSrc":"23086:18:97","nodeType":"YulFunctionCall","src":"23086:18:97"},{"arguments":[{"name":"offset","nativeSrc":"23110:6:97","nodeType":"YulIdentifier","src":"23110:6:97"},{"kind":"number","nativeSrc":"23118:4:97","nodeType":"YulLiteral","src":"23118:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"23106:3:97","nodeType":"YulIdentifier","src":"23106:3:97"},"nativeSrc":"23106:17:97","nodeType":"YulFunctionCall","src":"23106:17:97"},{"name":"_1","nativeSrc":"23125:2:97","nodeType":"YulIdentifier","src":"23125:2:97"}],"functionName":{"name":"calldatacopy","nativeSrc":"23073:12:97","nodeType":"YulIdentifier","src":"23073:12:97"},"nativeSrc":"23073:55:97","nodeType":"YulFunctionCall","src":"23073:55:97"},"nativeSrc":"23073:55:97","nodeType":"YulExpressionStatement","src":"23073:55:97"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array_1","nativeSrc":"23152:7:97","nodeType":"YulIdentifier","src":"23152:7:97"},{"name":"_1","nativeSrc":"23161:2:97","nodeType":"YulIdentifier","src":"23161:2:97"}],"functionName":{"name":"add","nativeSrc":"23148:3:97","nodeType":"YulIdentifier","src":"23148:3:97"},"nativeSrc":"23148:16:97","nodeType":"YulFunctionCall","src":"23148:16:97"},{"kind":"number","nativeSrc":"23166:4:97","nodeType":"YulLiteral","src":"23166:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"23144:3:97","nodeType":"YulIdentifier","src":"23144:3:97"},"nativeSrc":"23144:27:97","nodeType":"YulFunctionCall","src":"23144:27:97"},{"kind":"number","nativeSrc":"23173:1:97","nodeType":"YulLiteral","src":"23173:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"23137:6:97","nodeType":"YulIdentifier","src":"23137:6:97"},"nativeSrc":"23137:38:97","nodeType":"YulFunctionCall","src":"23137:38:97"},"nativeSrc":"23137:38:97","nodeType":"YulExpressionStatement","src":"23137:38:97"},{"nativeSrc":"23184:16:97","nodeType":"YulAssignment","src":"23184:16:97","value":{"name":"array_1","nativeSrc":"23193:7:97","nodeType":"YulIdentifier","src":"23193:7:97"},"variableNames":[{"name":"array","nativeSrc":"23184:5:97","nodeType":"YulIdentifier","src":"23184:5:97"}]}]},"name":"abi_decode_string","nativeSrc":"22616:590:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"22643:6:97","nodeType":"YulTypedName","src":"22643:6:97","type":""},{"name":"end","nativeSrc":"22651:3:97","nodeType":"YulTypedName","src":"22651:3:97","type":""}],"returnVariables":[{"name":"array","nativeSrc":"22659:5:97","nodeType":"YulTypedName","src":"22659:5:97","type":""}],"src":"22616:590:97"},{"body":{"nativeSrc":"23259:131:97","nodeType":"YulBlock","src":"23259:131:97","statements":[{"nativeSrc":"23269:29:97","nodeType":"YulAssignment","src":"23269:29:97","value":{"arguments":[{"name":"offset","nativeSrc":"23291:6:97","nodeType":"YulIdentifier","src":"23291:6:97"}],"functionName":{"name":"calldataload","nativeSrc":"23278:12:97","nodeType":"YulIdentifier","src":"23278:12:97"},"nativeSrc":"23278:20:97","nodeType":"YulFunctionCall","src":"23278:20:97"},"variableNames":[{"name":"value","nativeSrc":"23269:5:97","nodeType":"YulIdentifier","src":"23269:5:97"}]},{"body":{"nativeSrc":"23368:16:97","nodeType":"YulBlock","src":"23368:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"23377:1:97","nodeType":"YulLiteral","src":"23377:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"23380:1:97","nodeType":"YulLiteral","src":"23380:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"23370:6:97","nodeType":"YulIdentifier","src":"23370:6:97"},"nativeSrc":"23370:12:97","nodeType":"YulFunctionCall","src":"23370:12:97"},"nativeSrc":"23370:12:97","nodeType":"YulExpressionStatement","src":"23370:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"23320:5:97","nodeType":"YulIdentifier","src":"23320:5:97"},{"arguments":[{"name":"value","nativeSrc":"23331:5:97","nodeType":"YulIdentifier","src":"23331:5:97"},{"kind":"number","nativeSrc":"23338:26:97","nodeType":"YulLiteral","src":"23338:26:97","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"23327:3:97","nodeType":"YulIdentifier","src":"23327:3:97"},"nativeSrc":"23327:38:97","nodeType":"YulFunctionCall","src":"23327:38:97"}],"functionName":{"name":"eq","nativeSrc":"23317:2:97","nodeType":"YulIdentifier","src":"23317:2:97"},"nativeSrc":"23317:49:97","nodeType":"YulFunctionCall","src":"23317:49:97"}],"functionName":{"name":"iszero","nativeSrc":"23310:6:97","nodeType":"YulIdentifier","src":"23310:6:97"},"nativeSrc":"23310:57:97","nodeType":"YulFunctionCall","src":"23310:57:97"},"nativeSrc":"23307:77:97","nodeType":"YulIf","src":"23307:77:97"}]},"name":"abi_decode_uint96","nativeSrc":"23211:179:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"23238:6:97","nodeType":"YulTypedName","src":"23238:6:97","type":""}],"returnVariables":[{"name":"value","nativeSrc":"23249:5:97","nodeType":"YulTypedName","src":"23249:5:97","type":""}],"src":"23211:179:97"},{"body":{"nativeSrc":"23503:1732:97","nodeType":"YulBlock","src":"23503:1732:97","statements":[{"body":{"nativeSrc":"23549:16:97","nodeType":"YulBlock","src":"23549:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"23558:1:97","nodeType":"YulLiteral","src":"23558:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"23561:1:97","nodeType":"YulLiteral","src":"23561:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"23551:6:97","nodeType":"YulIdentifier","src":"23551:6:97"},"nativeSrc":"23551:12:97","nodeType":"YulFunctionCall","src":"23551:12:97"},"nativeSrc":"23551:12:97","nodeType":"YulExpressionStatement","src":"23551:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"23524:7:97","nodeType":"YulIdentifier","src":"23524:7:97"},{"name":"headStart","nativeSrc":"23533:9:97","nodeType":"YulIdentifier","src":"23533:9:97"}],"functionName":{"name":"sub","nativeSrc":"23520:3:97","nodeType":"YulIdentifier","src":"23520:3:97"},"nativeSrc":"23520:23:97","nodeType":"YulFunctionCall","src":"23520:23:97"},{"kind":"number","nativeSrc":"23545:2:97","nodeType":"YulLiteral","src":"23545:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"23516:3:97","nodeType":"YulIdentifier","src":"23516:3:97"},"nativeSrc":"23516:32:97","nodeType":"YulFunctionCall","src":"23516:32:97"},"nativeSrc":"23513:52:97","nodeType":"YulIf","src":"23513:52:97"},{"nativeSrc":"23574:37:97","nodeType":"YulVariableDeclaration","src":"23574:37:97","value":{"arguments":[{"name":"headStart","nativeSrc":"23601:9:97","nodeType":"YulIdentifier","src":"23601:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"23588:12:97","nodeType":"YulIdentifier","src":"23588:12:97"},"nativeSrc":"23588:23:97","nodeType":"YulFunctionCall","src":"23588:23:97"},"variables":[{"name":"offset","nativeSrc":"23578:6:97","nodeType":"YulTypedName","src":"23578:6:97","type":""}]},{"nativeSrc":"23620:28:97","nodeType":"YulVariableDeclaration","src":"23620:28:97","value":{"kind":"number","nativeSrc":"23630:18:97","nodeType":"YulLiteral","src":"23630:18:97","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"23624:2:97","nodeType":"YulTypedName","src":"23624:2:97","type":""}]},{"body":{"nativeSrc":"23675:16:97","nodeType":"YulBlock","src":"23675:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"23684:1:97","nodeType":"YulLiteral","src":"23684:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"23687:1:97","nodeType":"YulLiteral","src":"23687:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"23677:6:97","nodeType":"YulIdentifier","src":"23677:6:97"},"nativeSrc":"23677:12:97","nodeType":"YulFunctionCall","src":"23677:12:97"},"nativeSrc":"23677:12:97","nodeType":"YulExpressionStatement","src":"23677:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"23663:6:97","nodeType":"YulIdentifier","src":"23663:6:97"},{"name":"_1","nativeSrc":"23671:2:97","nodeType":"YulIdentifier","src":"23671:2:97"}],"functionName":{"name":"gt","nativeSrc":"23660:2:97","nodeType":"YulIdentifier","src":"23660:2:97"},"nativeSrc":"23660:14:97","nodeType":"YulFunctionCall","src":"23660:14:97"},"nativeSrc":"23657:34:97","nodeType":"YulIf","src":"23657:34:97"},{"nativeSrc":"23700:32:97","nodeType":"YulVariableDeclaration","src":"23700:32:97","value":{"arguments":[{"name":"headStart","nativeSrc":"23714:9:97","nodeType":"YulIdentifier","src":"23714:9:97"},{"name":"offset","nativeSrc":"23725:6:97","nodeType":"YulIdentifier","src":"23725:6:97"}],"functionName":{"name":"add","nativeSrc":"23710:3:97","nodeType":"YulIdentifier","src":"23710:3:97"},"nativeSrc":"23710:22:97","nodeType":"YulFunctionCall","src":"23710:22:97"},"variables":[{"name":"_2","nativeSrc":"23704:2:97","nodeType":"YulTypedName","src":"23704:2:97","type":""}]},{"body":{"nativeSrc":"23774:16:97","nodeType":"YulBlock","src":"23774:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"23783:1:97","nodeType":"YulLiteral","src":"23783:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"23786:1:97","nodeType":"YulLiteral","src":"23786:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"23776:6:97","nodeType":"YulIdentifier","src":"23776:6:97"},"nativeSrc":"23776:12:97","nodeType":"YulFunctionCall","src":"23776:12:97"},"nativeSrc":"23776:12:97","nodeType":"YulExpressionStatement","src":"23776:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"23752:7:97","nodeType":"YulIdentifier","src":"23752:7:97"},{"name":"_2","nativeSrc":"23761:2:97","nodeType":"YulIdentifier","src":"23761:2:97"}],"functionName":{"name":"sub","nativeSrc":"23748:3:97","nodeType":"YulIdentifier","src":"23748:3:97"},"nativeSrc":"23748:16:97","nodeType":"YulFunctionCall","src":"23748:16:97"},{"kind":"number","nativeSrc":"23766:6:97","nodeType":"YulLiteral","src":"23766:6:97","type":"","value":"0x0180"}],"functionName":{"name":"slt","nativeSrc":"23744:3:97","nodeType":"YulIdentifier","src":"23744:3:97"},"nativeSrc":"23744:29:97","nodeType":"YulFunctionCall","src":"23744:29:97"},"nativeSrc":"23741:49:97","nodeType":"YulIf","src":"23741:49:97"},{"nativeSrc":"23799:35:97","nodeType":"YulVariableDeclaration","src":"23799:35:97","value":{"arguments":[],"functionName":{"name":"allocate_memory_3487","nativeSrc":"23812:20:97","nodeType":"YulIdentifier","src":"23812:20:97"},"nativeSrc":"23812:22:97","nodeType":"YulFunctionCall","src":"23812:22:97"},"variables":[{"name":"value","nativeSrc":"23803:5:97","nodeType":"YulTypedName","src":"23803:5:97","type":""}]},{"nativeSrc":"23843:32:97","nodeType":"YulVariableDeclaration","src":"23843:32:97","value":{"arguments":[{"name":"_2","nativeSrc":"23872:2:97","nodeType":"YulIdentifier","src":"23872:2:97"}],"functionName":{"name":"calldataload","nativeSrc":"23859:12:97","nodeType":"YulIdentifier","src":"23859:12:97"},"nativeSrc":"23859:16:97","nodeType":"YulFunctionCall","src":"23859:16:97"},"variables":[{"name":"offset_1","nativeSrc":"23847:8:97","nodeType":"YulTypedName","src":"23847:8:97","type":""}]},{"body":{"nativeSrc":"23904:16:97","nodeType":"YulBlock","src":"23904:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"23913:1:97","nodeType":"YulLiteral","src":"23913:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"23916:1:97","nodeType":"YulLiteral","src":"23916:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"23906:6:97","nodeType":"YulIdentifier","src":"23906:6:97"},"nativeSrc":"23906:12:97","nodeType":"YulFunctionCall","src":"23906:12:97"},"nativeSrc":"23906:12:97","nodeType":"YulExpressionStatement","src":"23906:12:97"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"23890:8:97","nodeType":"YulIdentifier","src":"23890:8:97"},{"name":"_1","nativeSrc":"23900:2:97","nodeType":"YulIdentifier","src":"23900:2:97"}],"functionName":{"name":"gt","nativeSrc":"23887:2:97","nodeType":"YulIdentifier","src":"23887:2:97"},"nativeSrc":"23887:16:97","nodeType":"YulFunctionCall","src":"23887:16:97"},"nativeSrc":"23884:36:97","nodeType":"YulIf","src":"23884:36:97"},{"expression":{"arguments":[{"name":"value","nativeSrc":"23936:5:97","nodeType":"YulIdentifier","src":"23936:5:97"},{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"23965:2:97","nodeType":"YulIdentifier","src":"23965:2:97"},{"name":"offset_1","nativeSrc":"23969:8:97","nodeType":"YulIdentifier","src":"23969:8:97"}],"functionName":{"name":"add","nativeSrc":"23961:3:97","nodeType":"YulIdentifier","src":"23961:3:97"},"nativeSrc":"23961:17:97","nodeType":"YulFunctionCall","src":"23961:17:97"},{"name":"dataEnd","nativeSrc":"23980:7:97","nodeType":"YulIdentifier","src":"23980:7:97"}],"functionName":{"name":"abi_decode_string","nativeSrc":"23943:17:97","nodeType":"YulIdentifier","src":"23943:17:97"},"nativeSrc":"23943:45:97","nodeType":"YulFunctionCall","src":"23943:45:97"}],"functionName":{"name":"mstore","nativeSrc":"23929:6:97","nodeType":"YulIdentifier","src":"23929:6:97"},"nativeSrc":"23929:60:97","nodeType":"YulFunctionCall","src":"23929:60:97"},"nativeSrc":"23929:60:97","nodeType":"YulExpressionStatement","src":"23929:60:97"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"24009:5:97","nodeType":"YulIdentifier","src":"24009:5:97"},{"kind":"number","nativeSrc":"24016:2:97","nodeType":"YulLiteral","src":"24016:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"24005:3:97","nodeType":"YulIdentifier","src":"24005:3:97"},"nativeSrc":"24005:14:97","nodeType":"YulFunctionCall","src":"24005:14:97"},{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"24038:2:97","nodeType":"YulIdentifier","src":"24038:2:97"},{"kind":"number","nativeSrc":"24042:2:97","nodeType":"YulLiteral","src":"24042:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"24034:3:97","nodeType":"YulIdentifier","src":"24034:3:97"},"nativeSrc":"24034:11:97","nodeType":"YulFunctionCall","src":"24034:11:97"}],"functionName":{"name":"calldataload","nativeSrc":"24021:12:97","nodeType":"YulIdentifier","src":"24021:12:97"},"nativeSrc":"24021:25:97","nodeType":"YulFunctionCall","src":"24021:25:97"}],"functionName":{"name":"mstore","nativeSrc":"23998:6:97","nodeType":"YulIdentifier","src":"23998:6:97"},"nativeSrc":"23998:49:97","nodeType":"YulFunctionCall","src":"23998:49:97"},"nativeSrc":"23998:49:97","nodeType":"YulExpressionStatement","src":"23998:49:97"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"24067:5:97","nodeType":"YulIdentifier","src":"24067:5:97"},{"kind":"number","nativeSrc":"24074:2:97","nodeType":"YulLiteral","src":"24074:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"24063:3:97","nodeType":"YulIdentifier","src":"24063:3:97"},"nativeSrc":"24063:14:97","nodeType":"YulFunctionCall","src":"24063:14:97"},{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"24102:2:97","nodeType":"YulIdentifier","src":"24102:2:97"},{"kind":"number","nativeSrc":"24106:2:97","nodeType":"YulLiteral","src":"24106:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"24098:3:97","nodeType":"YulIdentifier","src":"24098:3:97"},"nativeSrc":"24098:11:97","nodeType":"YulFunctionCall","src":"24098:11:97"}],"functionName":{"name":"abi_decode_address","nativeSrc":"24079:18:97","nodeType":"YulIdentifier","src":"24079:18:97"},"nativeSrc":"24079:31:97","nodeType":"YulFunctionCall","src":"24079:31:97"}],"functionName":{"name":"mstore","nativeSrc":"24056:6:97","nodeType":"YulIdentifier","src":"24056:6:97"},"nativeSrc":"24056:55:97","nodeType":"YulFunctionCall","src":"24056:55:97"},"nativeSrc":"24056:55:97","nodeType":"YulExpressionStatement","src":"24056:55:97"},{"nativeSrc":"24120:41:97","nodeType":"YulVariableDeclaration","src":"24120:41:97","value":{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"24153:2:97","nodeType":"YulIdentifier","src":"24153:2:97"},{"kind":"number","nativeSrc":"24157:2:97","nodeType":"YulLiteral","src":"24157:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"24149:3:97","nodeType":"YulIdentifier","src":"24149:3:97"},"nativeSrc":"24149:11:97","nodeType":"YulFunctionCall","src":"24149:11:97"}],"functionName":{"name":"calldataload","nativeSrc":"24136:12:97","nodeType":"YulIdentifier","src":"24136:12:97"},"nativeSrc":"24136:25:97","nodeType":"YulFunctionCall","src":"24136:25:97"},"variables":[{"name":"offset_2","nativeSrc":"24124:8:97","nodeType":"YulTypedName","src":"24124:8:97","type":""}]},{"body":{"nativeSrc":"24190:16:97","nodeType":"YulBlock","src":"24190:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"24199:1:97","nodeType":"YulLiteral","src":"24199:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"24202:1:97","nodeType":"YulLiteral","src":"24202:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"24192:6:97","nodeType":"YulIdentifier","src":"24192:6:97"},"nativeSrc":"24192:12:97","nodeType":"YulFunctionCall","src":"24192:12:97"},"nativeSrc":"24192:12:97","nodeType":"YulExpressionStatement","src":"24192:12:97"}]},"condition":{"arguments":[{"name":"offset_2","nativeSrc":"24176:8:97","nodeType":"YulIdentifier","src":"24176:8:97"},{"name":"_1","nativeSrc":"24186:2:97","nodeType":"YulIdentifier","src":"24186:2:97"}],"functionName":{"name":"gt","nativeSrc":"24173:2:97","nodeType":"YulIdentifier","src":"24173:2:97"},"nativeSrc":"24173:16:97","nodeType":"YulFunctionCall","src":"24173:16:97"},"nativeSrc":"24170:36:97","nodeType":"YulIf","src":"24170:36:97"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"24226:5:97","nodeType":"YulIdentifier","src":"24226:5:97"},{"kind":"number","nativeSrc":"24233:2:97","nodeType":"YulLiteral","src":"24233:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"24222:3:97","nodeType":"YulIdentifier","src":"24222:3:97"},"nativeSrc":"24222:14:97","nodeType":"YulFunctionCall","src":"24222:14:97"},{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"24260:2:97","nodeType":"YulIdentifier","src":"24260:2:97"},{"name":"offset_2","nativeSrc":"24264:8:97","nodeType":"YulIdentifier","src":"24264:8:97"}],"functionName":{"name":"add","nativeSrc":"24256:3:97","nodeType":"YulIdentifier","src":"24256:3:97"},"nativeSrc":"24256:17:97","nodeType":"YulFunctionCall","src":"24256:17:97"},{"name":"dataEnd","nativeSrc":"24275:7:97","nodeType":"YulIdentifier","src":"24275:7:97"}],"functionName":{"name":"abi_decode_string","nativeSrc":"24238:17:97","nodeType":"YulIdentifier","src":"24238:17:97"},"nativeSrc":"24238:45:97","nodeType":"YulFunctionCall","src":"24238:45:97"}],"functionName":{"name":"mstore","nativeSrc":"24215:6:97","nodeType":"YulIdentifier","src":"24215:6:97"},"nativeSrc":"24215:69:97","nodeType":"YulFunctionCall","src":"24215:69:97"},"nativeSrc":"24215:69:97","nodeType":"YulExpressionStatement","src":"24215:69:97"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"24304:5:97","nodeType":"YulIdentifier","src":"24304:5:97"},{"kind":"number","nativeSrc":"24311:3:97","nodeType":"YulLiteral","src":"24311:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"24300:3:97","nodeType":"YulIdentifier","src":"24300:3:97"},"nativeSrc":"24300:15:97","nodeType":"YulFunctionCall","src":"24300:15:97"},{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"24334:2:97","nodeType":"YulIdentifier","src":"24334:2:97"},{"kind":"number","nativeSrc":"24338:3:97","nodeType":"YulLiteral","src":"24338:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"24330:3:97","nodeType":"YulIdentifier","src":"24330:3:97"},"nativeSrc":"24330:12:97","nodeType":"YulFunctionCall","src":"24330:12:97"}],"functionName":{"name":"calldataload","nativeSrc":"24317:12:97","nodeType":"YulIdentifier","src":"24317:12:97"},"nativeSrc":"24317:26:97","nodeType":"YulFunctionCall","src":"24317:26:97"}],"functionName":{"name":"mstore","nativeSrc":"24293:6:97","nodeType":"YulIdentifier","src":"24293:6:97"},"nativeSrc":"24293:51:97","nodeType":"YulFunctionCall","src":"24293:51:97"},"nativeSrc":"24293:51:97","nodeType":"YulExpressionStatement","src":"24293:51:97"},{"nativeSrc":"24353:42:97","nodeType":"YulVariableDeclaration","src":"24353:42:97","value":{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"24386:2:97","nodeType":"YulIdentifier","src":"24386:2:97"},{"kind":"number","nativeSrc":"24390:3:97","nodeType":"YulLiteral","src":"24390:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"24382:3:97","nodeType":"YulIdentifier","src":"24382:3:97"},"nativeSrc":"24382:12:97","nodeType":"YulFunctionCall","src":"24382:12:97"}],"functionName":{"name":"calldataload","nativeSrc":"24369:12:97","nodeType":"YulIdentifier","src":"24369:12:97"},"nativeSrc":"24369:26:97","nodeType":"YulFunctionCall","src":"24369:26:97"},"variables":[{"name":"offset_3","nativeSrc":"24357:8:97","nodeType":"YulTypedName","src":"24357:8:97","type":""}]},{"body":{"nativeSrc":"24424:16:97","nodeType":"YulBlock","src":"24424:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"24433:1:97","nodeType":"YulLiteral","src":"24433:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"24436:1:97","nodeType":"YulLiteral","src":"24436:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"24426:6:97","nodeType":"YulIdentifier","src":"24426:6:97"},"nativeSrc":"24426:12:97","nodeType":"YulFunctionCall","src":"24426:12:97"},"nativeSrc":"24426:12:97","nodeType":"YulExpressionStatement","src":"24426:12:97"}]},"condition":{"arguments":[{"name":"offset_3","nativeSrc":"24410:8:97","nodeType":"YulIdentifier","src":"24410:8:97"},{"name":"_1","nativeSrc":"24420:2:97","nodeType":"YulIdentifier","src":"24420:2:97"}],"functionName":{"name":"gt","nativeSrc":"24407:2:97","nodeType":"YulIdentifier","src":"24407:2:97"},"nativeSrc":"24407:16:97","nodeType":"YulFunctionCall","src":"24407:16:97"},"nativeSrc":"24404:36:97","nodeType":"YulIf","src":"24404:36:97"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"24460:5:97","nodeType":"YulIdentifier","src":"24460:5:97"},{"kind":"number","nativeSrc":"24467:3:97","nodeType":"YulLiteral","src":"24467:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"24456:3:97","nodeType":"YulIdentifier","src":"24456:3:97"},"nativeSrc":"24456:15:97","nodeType":"YulFunctionCall","src":"24456:15:97"},{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"24495:2:97","nodeType":"YulIdentifier","src":"24495:2:97"},{"name":"offset_3","nativeSrc":"24499:8:97","nodeType":"YulIdentifier","src":"24499:8:97"}],"functionName":{"name":"add","nativeSrc":"24491:3:97","nodeType":"YulIdentifier","src":"24491:3:97"},"nativeSrc":"24491:17:97","nodeType":"YulFunctionCall","src":"24491:17:97"},{"name":"dataEnd","nativeSrc":"24510:7:97","nodeType":"YulIdentifier","src":"24510:7:97"}],"functionName":{"name":"abi_decode_string","nativeSrc":"24473:17:97","nodeType":"YulIdentifier","src":"24473:17:97"},"nativeSrc":"24473:45:97","nodeType":"YulFunctionCall","src":"24473:45:97"}],"functionName":{"name":"mstore","nativeSrc":"24449:6:97","nodeType":"YulIdentifier","src":"24449:6:97"},"nativeSrc":"24449:70:97","nodeType":"YulFunctionCall","src":"24449:70:97"},"nativeSrc":"24449:70:97","nodeType":"YulExpressionStatement","src":"24449:70:97"},{"nativeSrc":"24528:42:97","nodeType":"YulVariableDeclaration","src":"24528:42:97","value":{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"24561:2:97","nodeType":"YulIdentifier","src":"24561:2:97"},{"kind":"number","nativeSrc":"24565:3:97","nodeType":"YulLiteral","src":"24565:3:97","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"24557:3:97","nodeType":"YulIdentifier","src":"24557:3:97"},"nativeSrc":"24557:12:97","nodeType":"YulFunctionCall","src":"24557:12:97"}],"functionName":{"name":"calldataload","nativeSrc":"24544:12:97","nodeType":"YulIdentifier","src":"24544:12:97"},"nativeSrc":"24544:26:97","nodeType":"YulFunctionCall","src":"24544:26:97"},"variables":[{"name":"offset_4","nativeSrc":"24532:8:97","nodeType":"YulTypedName","src":"24532:8:97","type":""}]},{"body":{"nativeSrc":"24599:16:97","nodeType":"YulBlock","src":"24599:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"24608:1:97","nodeType":"YulLiteral","src":"24608:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"24611:1:97","nodeType":"YulLiteral","src":"24611:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"24601:6:97","nodeType":"YulIdentifier","src":"24601:6:97"},"nativeSrc":"24601:12:97","nodeType":"YulFunctionCall","src":"24601:12:97"},"nativeSrc":"24601:12:97","nodeType":"YulExpressionStatement","src":"24601:12:97"}]},"condition":{"arguments":[{"name":"offset_4","nativeSrc":"24585:8:97","nodeType":"YulIdentifier","src":"24585:8:97"},{"name":"_1","nativeSrc":"24595:2:97","nodeType":"YulIdentifier","src":"24595:2:97"}],"functionName":{"name":"gt","nativeSrc":"24582:2:97","nodeType":"YulIdentifier","src":"24582:2:97"},"nativeSrc":"24582:16:97","nodeType":"YulFunctionCall","src":"24582:16:97"},"nativeSrc":"24579:36:97","nodeType":"YulIf","src":"24579:36:97"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"24635:5:97","nodeType":"YulIdentifier","src":"24635:5:97"},{"kind":"number","nativeSrc":"24642:3:97","nodeType":"YulLiteral","src":"24642:3:97","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"24631:3:97","nodeType":"YulIdentifier","src":"24631:3:97"},"nativeSrc":"24631:15:97","nodeType":"YulFunctionCall","src":"24631:15:97"},{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"24670:2:97","nodeType":"YulIdentifier","src":"24670:2:97"},{"name":"offset_4","nativeSrc":"24674:8:97","nodeType":"YulIdentifier","src":"24674:8:97"}],"functionName":{"name":"add","nativeSrc":"24666:3:97","nodeType":"YulIdentifier","src":"24666:3:97"},"nativeSrc":"24666:17:97","nodeType":"YulFunctionCall","src":"24666:17:97"},{"name":"dataEnd","nativeSrc":"24685:7:97","nodeType":"YulIdentifier","src":"24685:7:97"}],"functionName":{"name":"abi_decode_string","nativeSrc":"24648:17:97","nodeType":"YulIdentifier","src":"24648:17:97"},"nativeSrc":"24648:45:97","nodeType":"YulFunctionCall","src":"24648:45:97"}],"functionName":{"name":"mstore","nativeSrc":"24624:6:97","nodeType":"YulIdentifier","src":"24624:6:97"},"nativeSrc":"24624:70:97","nodeType":"YulFunctionCall","src":"24624:70:97"},"nativeSrc":"24624:70:97","nodeType":"YulExpressionStatement","src":"24624:70:97"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"24714:5:97","nodeType":"YulIdentifier","src":"24714:5:97"},{"kind":"number","nativeSrc":"24721:3:97","nodeType":"YulLiteral","src":"24721:3:97","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"24710:3:97","nodeType":"YulIdentifier","src":"24710:3:97"},"nativeSrc":"24710:15:97","nodeType":"YulFunctionCall","src":"24710:15:97"},{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"24744:2:97","nodeType":"YulIdentifier","src":"24744:2:97"},{"kind":"number","nativeSrc":"24748:3:97","nodeType":"YulLiteral","src":"24748:3:97","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"24740:3:97","nodeType":"YulIdentifier","src":"24740:3:97"},"nativeSrc":"24740:12:97","nodeType":"YulFunctionCall","src":"24740:12:97"}],"functionName":{"name":"calldataload","nativeSrc":"24727:12:97","nodeType":"YulIdentifier","src":"24727:12:97"},"nativeSrc":"24727:26:97","nodeType":"YulFunctionCall","src":"24727:26:97"}],"functionName":{"name":"mstore","nativeSrc":"24703:6:97","nodeType":"YulIdentifier","src":"24703:6:97"},"nativeSrc":"24703:51:97","nodeType":"YulFunctionCall","src":"24703:51:97"},"nativeSrc":"24703:51:97","nodeType":"YulExpressionStatement","src":"24703:51:97"},{"nativeSrc":"24763:13:97","nodeType":"YulVariableDeclaration","src":"24763:13:97","value":{"kind":"number","nativeSrc":"24773:3:97","nodeType":"YulLiteral","src":"24773:3:97","type":"","value":"256"},"variables":[{"name":"_3","nativeSrc":"24767:2:97","nodeType":"YulTypedName","src":"24767:2:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"24796:5:97","nodeType":"YulIdentifier","src":"24796:5:97"},{"name":"_3","nativeSrc":"24803:2:97","nodeType":"YulIdentifier","src":"24803:2:97"}],"functionName":{"name":"add","nativeSrc":"24792:3:97","nodeType":"YulIdentifier","src":"24792:3:97"},"nativeSrc":"24792:14:97","nodeType":"YulFunctionCall","src":"24792:14:97"},{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"24831:2:97","nodeType":"YulIdentifier","src":"24831:2:97"},{"name":"_3","nativeSrc":"24835:2:97","nodeType":"YulIdentifier","src":"24835:2:97"}],"functionName":{"name":"add","nativeSrc":"24827:3:97","nodeType":"YulIdentifier","src":"24827:3:97"},"nativeSrc":"24827:11:97","nodeType":"YulFunctionCall","src":"24827:11:97"}],"functionName":{"name":"abi_decode_address","nativeSrc":"24808:18:97","nodeType":"YulIdentifier","src":"24808:18:97"},"nativeSrc":"24808:31:97","nodeType":"YulFunctionCall","src":"24808:31:97"}],"functionName":{"name":"mstore","nativeSrc":"24785:6:97","nodeType":"YulIdentifier","src":"24785:6:97"},"nativeSrc":"24785:55:97","nodeType":"YulFunctionCall","src":"24785:55:97"},"nativeSrc":"24785:55:97","nodeType":"YulExpressionStatement","src":"24785:55:97"},{"nativeSrc":"24849:13:97","nodeType":"YulVariableDeclaration","src":"24849:13:97","value":{"kind":"number","nativeSrc":"24859:3:97","nodeType":"YulLiteral","src":"24859:3:97","type":"","value":"288"},"variables":[{"name":"_4","nativeSrc":"24853:2:97","nodeType":"YulTypedName","src":"24853:2:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"24882:5:97","nodeType":"YulIdentifier","src":"24882:5:97"},{"name":"_4","nativeSrc":"24889:2:97","nodeType":"YulIdentifier","src":"24889:2:97"}],"functionName":{"name":"add","nativeSrc":"24878:3:97","nodeType":"YulIdentifier","src":"24878:3:97"},"nativeSrc":"24878:14:97","nodeType":"YulFunctionCall","src":"24878:14:97"},{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"24916:2:97","nodeType":"YulIdentifier","src":"24916:2:97"},{"name":"_4","nativeSrc":"24920:2:97","nodeType":"YulIdentifier","src":"24920:2:97"}],"functionName":{"name":"add","nativeSrc":"24912:3:97","nodeType":"YulIdentifier","src":"24912:3:97"},"nativeSrc":"24912:11:97","nodeType":"YulFunctionCall","src":"24912:11:97"}],"functionName":{"name":"abi_decode_uint96","nativeSrc":"24894:17:97","nodeType":"YulIdentifier","src":"24894:17:97"},"nativeSrc":"24894:30:97","nodeType":"YulFunctionCall","src":"24894:30:97"}],"functionName":{"name":"mstore","nativeSrc":"24871:6:97","nodeType":"YulIdentifier","src":"24871:6:97"},"nativeSrc":"24871:54:97","nodeType":"YulFunctionCall","src":"24871:54:97"},"nativeSrc":"24871:54:97","nodeType":"YulExpressionStatement","src":"24871:54:97"},{"nativeSrc":"24934:13:97","nodeType":"YulVariableDeclaration","src":"24934:13:97","value":{"kind":"number","nativeSrc":"24944:3:97","nodeType":"YulLiteral","src":"24944:3:97","type":"","value":"320"},"variables":[{"name":"_5","nativeSrc":"24938:2:97","nodeType":"YulTypedName","src":"24938:2:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"24967:5:97","nodeType":"YulIdentifier","src":"24967:5:97"},{"name":"_5","nativeSrc":"24974:2:97","nodeType":"YulIdentifier","src":"24974:2:97"}],"functionName":{"name":"add","nativeSrc":"24963:3:97","nodeType":"YulIdentifier","src":"24963:3:97"},"nativeSrc":"24963:14:97","nodeType":"YulFunctionCall","src":"24963:14:97"},{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"25001:2:97","nodeType":"YulIdentifier","src":"25001:2:97"},{"name":"_5","nativeSrc":"25005:2:97","nodeType":"YulIdentifier","src":"25005:2:97"}],"functionName":{"name":"add","nativeSrc":"24997:3:97","nodeType":"YulIdentifier","src":"24997:3:97"},"nativeSrc":"24997:11:97","nodeType":"YulFunctionCall","src":"24997:11:97"}],"functionName":{"name":"abi_decode_uint32","nativeSrc":"24979:17:97","nodeType":"YulIdentifier","src":"24979:17:97"},"nativeSrc":"24979:30:97","nodeType":"YulFunctionCall","src":"24979:30:97"}],"functionName":{"name":"mstore","nativeSrc":"24956:6:97","nodeType":"YulIdentifier","src":"24956:6:97"},"nativeSrc":"24956:54:97","nodeType":"YulFunctionCall","src":"24956:54:97"},"nativeSrc":"24956:54:97","nodeType":"YulExpressionStatement","src":"24956:54:97"},{"nativeSrc":"25019:13:97","nodeType":"YulVariableDeclaration","src":"25019:13:97","value":{"kind":"number","nativeSrc":"25029:3:97","nodeType":"YulLiteral","src":"25029:3:97","type":"","value":"352"},"variables":[{"name":"_6","nativeSrc":"25023:2:97","nodeType":"YulTypedName","src":"25023:2:97","type":""}]},{"nativeSrc":"25041:41:97","nodeType":"YulVariableDeclaration","src":"25041:41:97","value":{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"25074:2:97","nodeType":"YulIdentifier","src":"25074:2:97"},{"name":"_6","nativeSrc":"25078:2:97","nodeType":"YulIdentifier","src":"25078:2:97"}],"functionName":{"name":"add","nativeSrc":"25070:3:97","nodeType":"YulIdentifier","src":"25070:3:97"},"nativeSrc":"25070:11:97","nodeType":"YulFunctionCall","src":"25070:11:97"}],"functionName":{"name":"calldataload","nativeSrc":"25057:12:97","nodeType":"YulIdentifier","src":"25057:12:97"},"nativeSrc":"25057:25:97","nodeType":"YulFunctionCall","src":"25057:25:97"},"variables":[{"name":"offset_5","nativeSrc":"25045:8:97","nodeType":"YulTypedName","src":"25045:8:97","type":""}]},{"body":{"nativeSrc":"25111:16:97","nodeType":"YulBlock","src":"25111:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"25120:1:97","nodeType":"YulLiteral","src":"25120:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"25123:1:97","nodeType":"YulLiteral","src":"25123:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"25113:6:97","nodeType":"YulIdentifier","src":"25113:6:97"},"nativeSrc":"25113:12:97","nodeType":"YulFunctionCall","src":"25113:12:97"},"nativeSrc":"25113:12:97","nodeType":"YulExpressionStatement","src":"25113:12:97"}]},"condition":{"arguments":[{"name":"offset_5","nativeSrc":"25097:8:97","nodeType":"YulIdentifier","src":"25097:8:97"},{"name":"_1","nativeSrc":"25107:2:97","nodeType":"YulIdentifier","src":"25107:2:97"}],"functionName":{"name":"gt","nativeSrc":"25094:2:97","nodeType":"YulIdentifier","src":"25094:2:97"},"nativeSrc":"25094:16:97","nodeType":"YulFunctionCall","src":"25094:16:97"},"nativeSrc":"25091:36:97","nodeType":"YulIf","src":"25091:36:97"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"25147:5:97","nodeType":"YulIdentifier","src":"25147:5:97"},{"name":"_6","nativeSrc":"25154:2:97","nodeType":"YulIdentifier","src":"25154:2:97"}],"functionName":{"name":"add","nativeSrc":"25143:3:97","nodeType":"YulIdentifier","src":"25143:3:97"},"nativeSrc":"25143:14:97","nodeType":"YulFunctionCall","src":"25143:14:97"},{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"25181:2:97","nodeType":"YulIdentifier","src":"25181:2:97"},{"name":"offset_5","nativeSrc":"25185:8:97","nodeType":"YulIdentifier","src":"25185:8:97"}],"functionName":{"name":"add","nativeSrc":"25177:3:97","nodeType":"YulIdentifier","src":"25177:3:97"},"nativeSrc":"25177:17:97","nodeType":"YulFunctionCall","src":"25177:17:97"},{"name":"dataEnd","nativeSrc":"25196:7:97","nodeType":"YulIdentifier","src":"25196:7:97"}],"functionName":{"name":"abi_decode_string","nativeSrc":"25159:17:97","nodeType":"YulIdentifier","src":"25159:17:97"},"nativeSrc":"25159:45:97","nodeType":"YulFunctionCall","src":"25159:45:97"}],"functionName":{"name":"mstore","nativeSrc":"25136:6:97","nodeType":"YulIdentifier","src":"25136:6:97"},"nativeSrc":"25136:69:97","nodeType":"YulFunctionCall","src":"25136:69:97"},"nativeSrc":"25136:69:97","nodeType":"YulExpressionStatement","src":"25136:69:97"},{"nativeSrc":"25214:15:97","nodeType":"YulAssignment","src":"25214:15:97","value":{"name":"value","nativeSrc":"25224:5:97","nodeType":"YulIdentifier","src":"25224:5:97"},"variableNames":[{"name":"value0","nativeSrc":"25214:6:97","nodeType":"YulIdentifier","src":"25214:6:97"}]}]},"name":"abi_decode_tuple_t_struct$_RiskParameterUpdate_$16568_memory_ptr","nativeSrc":"23395:1840:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"23469:9:97","nodeType":"YulTypedName","src":"23469:9:97","type":""},{"name":"dataEnd","nativeSrc":"23480:7:97","nodeType":"YulTypedName","src":"23480:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"23492:6:97","nodeType":"YulTypedName","src":"23492:6:97","type":""}],"src":"23395:1840:97"},{"body":{"nativeSrc":"25379:150:97","nodeType":"YulBlock","src":"25379:150:97","statements":[{"nativeSrc":"25389:27:97","nodeType":"YulVariableDeclaration","src":"25389:27:97","value":{"arguments":[{"name":"value0","nativeSrc":"25409:6:97","nodeType":"YulIdentifier","src":"25409:6:97"}],"functionName":{"name":"mload","nativeSrc":"25403:5:97","nodeType":"YulIdentifier","src":"25403:5:97"},"nativeSrc":"25403:13:97","nodeType":"YulFunctionCall","src":"25403:13:97"},"variables":[{"name":"length","nativeSrc":"25393:6:97","nodeType":"YulTypedName","src":"25393:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"25464:6:97","nodeType":"YulIdentifier","src":"25464:6:97"},{"kind":"number","nativeSrc":"25472:4:97","nodeType":"YulLiteral","src":"25472:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"25460:3:97","nodeType":"YulIdentifier","src":"25460:3:97"},"nativeSrc":"25460:17:97","nodeType":"YulFunctionCall","src":"25460:17:97"},{"name":"pos","nativeSrc":"25479:3:97","nodeType":"YulIdentifier","src":"25479:3:97"},{"name":"length","nativeSrc":"25484:6:97","nodeType":"YulIdentifier","src":"25484:6:97"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"25425:34:97","nodeType":"YulIdentifier","src":"25425:34:97"},"nativeSrc":"25425:66:97","nodeType":"YulFunctionCall","src":"25425:66:97"},"nativeSrc":"25425:66:97","nodeType":"YulExpressionStatement","src":"25425:66:97"},{"nativeSrc":"25500:23:97","nodeType":"YulAssignment","src":"25500:23:97","value":{"arguments":[{"name":"pos","nativeSrc":"25511:3:97","nodeType":"YulIdentifier","src":"25511:3:97"},{"name":"length","nativeSrc":"25516:6:97","nodeType":"YulIdentifier","src":"25516:6:97"}],"functionName":{"name":"add","nativeSrc":"25507:3:97","nodeType":"YulIdentifier","src":"25507:3:97"},"nativeSrc":"25507:16:97","nodeType":"YulFunctionCall","src":"25507:16:97"},"variableNames":[{"name":"end","nativeSrc":"25500:3:97","nodeType":"YulIdentifier","src":"25500:3:97"}]}]},"name":"abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"25240:289:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"25355:3:97","nodeType":"YulTypedName","src":"25355:3:97","type":""},{"name":"value0","nativeSrc":"25360:6:97","nodeType":"YulTypedName","src":"25360:6:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"25371:3:97","nodeType":"YulTypedName","src":"25371:3:97","type":""}],"src":"25240:289:97"},{"body":{"nativeSrc":"25590:65:97","nodeType":"YulBlock","src":"25590:65:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"25607:1:97","nodeType":"YulLiteral","src":"25607:1:97","type":"","value":"0"},{"name":"ptr","nativeSrc":"25610:3:97","nodeType":"YulIdentifier","src":"25610:3:97"}],"functionName":{"name":"mstore","nativeSrc":"25600:6:97","nodeType":"YulIdentifier","src":"25600:6:97"},"nativeSrc":"25600:14:97","nodeType":"YulFunctionCall","src":"25600:14:97"},"nativeSrc":"25600:14:97","nodeType":"YulExpressionStatement","src":"25600:14:97"},{"nativeSrc":"25623:26:97","nodeType":"YulAssignment","src":"25623:26:97","value":{"arguments":[{"kind":"number","nativeSrc":"25641:1:97","nodeType":"YulLiteral","src":"25641:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"25644:4:97","nodeType":"YulLiteral","src":"25644:4:97","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"25631:9:97","nodeType":"YulIdentifier","src":"25631:9:97"},"nativeSrc":"25631:18:97","nodeType":"YulFunctionCall","src":"25631:18:97"},"variableNames":[{"name":"data","nativeSrc":"25623:4:97","nodeType":"YulIdentifier","src":"25623:4:97"}]}]},"name":"array_dataslot_string_storage","nativeSrc":"25534:121:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"25573:3:97","nodeType":"YulTypedName","src":"25573:3:97","type":""}],"returnVariables":[{"name":"data","nativeSrc":"25581:4:97","nodeType":"YulTypedName","src":"25581:4:97","type":""}],"src":"25534:121:97"},{"body":{"nativeSrc":"25741:462:97","nodeType":"YulBlock","src":"25741:462:97","statements":[{"body":{"nativeSrc":"25774:423:97","nodeType":"YulBlock","src":"25774:423:97","statements":[{"nativeSrc":"25788:11:97","nodeType":"YulVariableDeclaration","src":"25788:11:97","value":{"kind":"number","nativeSrc":"25798:1:97","nodeType":"YulLiteral","src":"25798:1:97","type":"","value":"0"},"variables":[{"name":"_1","nativeSrc":"25792:2:97","nodeType":"YulTypedName","src":"25792:2:97","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"25819:1:97","nodeType":"YulLiteral","src":"25819:1:97","type":"","value":"0"},{"name":"array","nativeSrc":"25822:5:97","nodeType":"YulIdentifier","src":"25822:5:97"}],"functionName":{"name":"mstore","nativeSrc":"25812:6:97","nodeType":"YulIdentifier","src":"25812:6:97"},"nativeSrc":"25812:16:97","nodeType":"YulFunctionCall","src":"25812:16:97"},"nativeSrc":"25812:16:97","nodeType":"YulExpressionStatement","src":"25812:16:97"},{"nativeSrc":"25841:30:97","nodeType":"YulVariableDeclaration","src":"25841:30:97","value":{"arguments":[{"kind":"number","nativeSrc":"25863:1:97","nodeType":"YulLiteral","src":"25863:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"25866:4:97","nodeType":"YulLiteral","src":"25866:4:97","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"25853:9:97","nodeType":"YulIdentifier","src":"25853:9:97"},"nativeSrc":"25853:18:97","nodeType":"YulFunctionCall","src":"25853:18:97"},"variables":[{"name":"data","nativeSrc":"25845:4:97","nodeType":"YulTypedName","src":"25845:4:97","type":""}]},{"nativeSrc":"25884:57:97","nodeType":"YulVariableDeclaration","src":"25884:57:97","value":{"arguments":[{"name":"data","nativeSrc":"25907:4:97","nodeType":"YulIdentifier","src":"25907:4:97"},{"arguments":[{"kind":"number","nativeSrc":"25917:1:97","nodeType":"YulLiteral","src":"25917:1:97","type":"","value":"5"},{"arguments":[{"name":"startIndex","nativeSrc":"25924:10:97","nodeType":"YulIdentifier","src":"25924:10:97"},{"kind":"number","nativeSrc":"25936:2:97","nodeType":"YulLiteral","src":"25936:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"25920:3:97","nodeType":"YulIdentifier","src":"25920:3:97"},"nativeSrc":"25920:19:97","nodeType":"YulFunctionCall","src":"25920:19:97"}],"functionName":{"name":"shr","nativeSrc":"25913:3:97","nodeType":"YulIdentifier","src":"25913:3:97"},"nativeSrc":"25913:27:97","nodeType":"YulFunctionCall","src":"25913:27:97"}],"functionName":{"name":"add","nativeSrc":"25903:3:97","nodeType":"YulIdentifier","src":"25903:3:97"},"nativeSrc":"25903:38:97","nodeType":"YulFunctionCall","src":"25903:38:97"},"variables":[{"name":"deleteStart","nativeSrc":"25888:11:97","nodeType":"YulTypedName","src":"25888:11:97","type":""}]},{"body":{"nativeSrc":"25978:23:97","nodeType":"YulBlock","src":"25978:23:97","statements":[{"nativeSrc":"25980:19:97","nodeType":"YulAssignment","src":"25980:19:97","value":{"name":"data","nativeSrc":"25995:4:97","nodeType":"YulIdentifier","src":"25995:4:97"},"variableNames":[{"name":"deleteStart","nativeSrc":"25980:11:97","nodeType":"YulIdentifier","src":"25980:11:97"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"25960:10:97","nodeType":"YulIdentifier","src":"25960:10:97"},{"kind":"number","nativeSrc":"25972:4:97","nodeType":"YulLiteral","src":"25972:4:97","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"25957:2:97","nodeType":"YulIdentifier","src":"25957:2:97"},"nativeSrc":"25957:20:97","nodeType":"YulFunctionCall","src":"25957:20:97"},"nativeSrc":"25954:47:97","nodeType":"YulIf","src":"25954:47:97"},{"nativeSrc":"26014:41:97","nodeType":"YulVariableDeclaration","src":"26014:41:97","value":{"arguments":[{"name":"data","nativeSrc":"26028:4:97","nodeType":"YulIdentifier","src":"26028:4:97"},{"arguments":[{"kind":"number","nativeSrc":"26038:1:97","nodeType":"YulLiteral","src":"26038:1:97","type":"","value":"5"},{"arguments":[{"name":"len","nativeSrc":"26045:3:97","nodeType":"YulIdentifier","src":"26045:3:97"},{"kind":"number","nativeSrc":"26050:2:97","nodeType":"YulLiteral","src":"26050:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"26041:3:97","nodeType":"YulIdentifier","src":"26041:3:97"},"nativeSrc":"26041:12:97","nodeType":"YulFunctionCall","src":"26041:12:97"}],"functionName":{"name":"shr","nativeSrc":"26034:3:97","nodeType":"YulIdentifier","src":"26034:3:97"},"nativeSrc":"26034:20:97","nodeType":"YulFunctionCall","src":"26034:20:97"}],"functionName":{"name":"add","nativeSrc":"26024:3:97","nodeType":"YulIdentifier","src":"26024:3:97"},"nativeSrc":"26024:31:97","nodeType":"YulFunctionCall","src":"26024:31:97"},"variables":[{"name":"_2","nativeSrc":"26018:2:97","nodeType":"YulTypedName","src":"26018:2:97","type":""}]},{"nativeSrc":"26068:24:97","nodeType":"YulVariableDeclaration","src":"26068:24:97","value":{"name":"deleteStart","nativeSrc":"26081:11:97","nodeType":"YulIdentifier","src":"26081:11:97"},"variables":[{"name":"start","nativeSrc":"26072:5:97","nodeType":"YulTypedName","src":"26072:5:97","type":""}]},{"body":{"nativeSrc":"26166:21:97","nodeType":"YulBlock","src":"26166:21:97","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"26175:5:97","nodeType":"YulIdentifier","src":"26175:5:97"},{"name":"_1","nativeSrc":"26182:2:97","nodeType":"YulIdentifier","src":"26182:2:97"}],"functionName":{"name":"sstore","nativeSrc":"26168:6:97","nodeType":"YulIdentifier","src":"26168:6:97"},"nativeSrc":"26168:17:97","nodeType":"YulFunctionCall","src":"26168:17:97"},"nativeSrc":"26168:17:97","nodeType":"YulExpressionStatement","src":"26168:17:97"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"26116:5:97","nodeType":"YulIdentifier","src":"26116:5:97"},{"name":"_2","nativeSrc":"26123:2:97","nodeType":"YulIdentifier","src":"26123:2:97"}],"functionName":{"name":"lt","nativeSrc":"26113:2:97","nodeType":"YulIdentifier","src":"26113:2:97"},"nativeSrc":"26113:13:97","nodeType":"YulFunctionCall","src":"26113:13:97"},"nativeSrc":"26105:82:97","nodeType":"YulForLoop","post":{"nativeSrc":"26127:26:97","nodeType":"YulBlock","src":"26127:26:97","statements":[{"nativeSrc":"26129:22:97","nodeType":"YulAssignment","src":"26129:22:97","value":{"arguments":[{"name":"start","nativeSrc":"26142:5:97","nodeType":"YulIdentifier","src":"26142:5:97"},{"kind":"number","nativeSrc":"26149:1:97","nodeType":"YulLiteral","src":"26149:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"26138:3:97","nodeType":"YulIdentifier","src":"26138:3:97"},"nativeSrc":"26138:13:97","nodeType":"YulFunctionCall","src":"26138:13:97"},"variableNames":[{"name":"start","nativeSrc":"26129:5:97","nodeType":"YulIdentifier","src":"26129:5:97"}]}]},"pre":{"nativeSrc":"26109:3:97","nodeType":"YulBlock","src":"26109:3:97","statements":[]},"src":"26105:82:97"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"25757:3:97","nodeType":"YulIdentifier","src":"25757:3:97"},{"kind":"number","nativeSrc":"25762:2:97","nodeType":"YulLiteral","src":"25762:2:97","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"25754:2:97","nodeType":"YulIdentifier","src":"25754:2:97"},"nativeSrc":"25754:11:97","nodeType":"YulFunctionCall","src":"25754:11:97"},"nativeSrc":"25751:446:97","nodeType":"YulIf","src":"25751:446:97"}]},"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"25660:543:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"25713:5:97","nodeType":"YulTypedName","src":"25713:5:97","type":""},{"name":"len","nativeSrc":"25720:3:97","nodeType":"YulTypedName","src":"25720:3:97","type":""},{"name":"startIndex","nativeSrc":"25725:10:97","nodeType":"YulTypedName","src":"25725:10:97","type":""}],"src":"25660:543:97"},{"body":{"nativeSrc":"26293:141:97","nodeType":"YulBlock","src":"26293:141:97","statements":[{"nativeSrc":"26303:125:97","nodeType":"YulAssignment","src":"26303:125:97","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"26318:4:97","nodeType":"YulIdentifier","src":"26318:4:97"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"26336:1:97","nodeType":"YulLiteral","src":"26336:1:97","type":"","value":"3"},{"name":"len","nativeSrc":"26339:3:97","nodeType":"YulIdentifier","src":"26339:3:97"}],"functionName":{"name":"shl","nativeSrc":"26332:3:97","nodeType":"YulIdentifier","src":"26332:3:97"},"nativeSrc":"26332:11:97","nodeType":"YulFunctionCall","src":"26332:11:97"},{"kind":"number","nativeSrc":"26345:66:97","nodeType":"YulLiteral","src":"26345:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shr","nativeSrc":"26328:3:97","nodeType":"YulIdentifier","src":"26328:3:97"},"nativeSrc":"26328:84:97","nodeType":"YulFunctionCall","src":"26328:84:97"}],"functionName":{"name":"not","nativeSrc":"26324:3:97","nodeType":"YulIdentifier","src":"26324:3:97"},"nativeSrc":"26324:89:97","nodeType":"YulFunctionCall","src":"26324:89:97"}],"functionName":{"name":"and","nativeSrc":"26314:3:97","nodeType":"YulIdentifier","src":"26314:3:97"},"nativeSrc":"26314:100:97","nodeType":"YulFunctionCall","src":"26314:100:97"},{"arguments":[{"kind":"number","nativeSrc":"26420:1:97","nodeType":"YulLiteral","src":"26420:1:97","type":"","value":"1"},{"name":"len","nativeSrc":"26423:3:97","nodeType":"YulIdentifier","src":"26423:3:97"}],"functionName":{"name":"shl","nativeSrc":"26416:3:97","nodeType":"YulIdentifier","src":"26416:3:97"},"nativeSrc":"26416:11:97","nodeType":"YulFunctionCall","src":"26416:11:97"}],"functionName":{"name":"or","nativeSrc":"26311:2:97","nodeType":"YulIdentifier","src":"26311:2:97"},"nativeSrc":"26311:117:97","nodeType":"YulFunctionCall","src":"26311:117:97"},"variableNames":[{"name":"used","nativeSrc":"26303:4:97","nodeType":"YulIdentifier","src":"26303:4:97"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"26208:226:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"26270:4:97","nodeType":"YulTypedName","src":"26270:4:97","type":""},{"name":"len","nativeSrc":"26276:3:97","nodeType":"YulTypedName","src":"26276:3:97","type":""}],"returnVariables":[{"name":"used","nativeSrc":"26284:4:97","nodeType":"YulTypedName","src":"26284:4:97","type":""}],"src":"26208:226:97"},{"body":{"nativeSrc":"26535:1368:97","nodeType":"YulBlock","src":"26535:1368:97","statements":[{"nativeSrc":"26545:24:97","nodeType":"YulVariableDeclaration","src":"26545:24:97","value":{"arguments":[{"name":"src","nativeSrc":"26565:3:97","nodeType":"YulIdentifier","src":"26565:3:97"}],"functionName":{"name":"mload","nativeSrc":"26559:5:97","nodeType":"YulIdentifier","src":"26559:5:97"},"nativeSrc":"26559:10:97","nodeType":"YulFunctionCall","src":"26559:10:97"},"variables":[{"name":"newLen","nativeSrc":"26549:6:97","nodeType":"YulTypedName","src":"26549:6:97","type":""}]},{"body":{"nativeSrc":"26612:22:97","nodeType":"YulBlock","src":"26612:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"26614:16:97","nodeType":"YulIdentifier","src":"26614:16:97"},"nativeSrc":"26614:18:97","nodeType":"YulFunctionCall","src":"26614:18:97"},"nativeSrc":"26614:18:97","nodeType":"YulExpressionStatement","src":"26614:18:97"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"26584:6:97","nodeType":"YulIdentifier","src":"26584:6:97"},{"kind":"number","nativeSrc":"26592:18:97","nodeType":"YulLiteral","src":"26592:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"26581:2:97","nodeType":"YulIdentifier","src":"26581:2:97"},"nativeSrc":"26581:30:97","nodeType":"YulFunctionCall","src":"26581:30:97"},"nativeSrc":"26578:56:97","nodeType":"YulIf","src":"26578:56:97"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"26687:4:97","nodeType":"YulIdentifier","src":"26687:4:97"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"26725:4:97","nodeType":"YulIdentifier","src":"26725:4:97"}],"functionName":{"name":"sload","nativeSrc":"26719:5:97","nodeType":"YulIdentifier","src":"26719:5:97"},"nativeSrc":"26719:11:97","nodeType":"YulFunctionCall","src":"26719:11:97"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"26693:25:97","nodeType":"YulIdentifier","src":"26693:25:97"},"nativeSrc":"26693:38:97","nodeType":"YulFunctionCall","src":"26693:38:97"},{"name":"newLen","nativeSrc":"26733:6:97","nodeType":"YulIdentifier","src":"26733:6:97"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"26643:43:97","nodeType":"YulIdentifier","src":"26643:43:97"},"nativeSrc":"26643:97:97","nodeType":"YulFunctionCall","src":"26643:97:97"},"nativeSrc":"26643:97:97","nodeType":"YulExpressionStatement","src":"26643:97:97"},{"nativeSrc":"26749:18:97","nodeType":"YulVariableDeclaration","src":"26749:18:97","value":{"kind":"number","nativeSrc":"26766:1:97","nodeType":"YulLiteral","src":"26766:1:97","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"26753:9:97","nodeType":"YulTypedName","src":"26753:9:97","type":""}]},{"nativeSrc":"26776:23:97","nodeType":"YulVariableDeclaration","src":"26776:23:97","value":{"kind":"number","nativeSrc":"26795:4:97","nodeType":"YulLiteral","src":"26795:4:97","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nativeSrc":"26780:11:97","nodeType":"YulTypedName","src":"26780:11:97","type":""}]},{"nativeSrc":"26808:17:97","nodeType":"YulAssignment","src":"26808:17:97","value":{"kind":"number","nativeSrc":"26821:4:97","nodeType":"YulLiteral","src":"26821:4:97","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"26808:9:97","nodeType":"YulIdentifier","src":"26808:9:97"}]},{"cases":[{"body":{"nativeSrc":"26871:775:97","nodeType":"YulBlock","src":"26871:775:97","statements":[{"nativeSrc":"26885:94:97","nodeType":"YulVariableDeclaration","src":"26885:94:97","value":{"arguments":[{"name":"newLen","nativeSrc":"26904:6:97","nodeType":"YulIdentifier","src":"26904:6:97"},{"kind":"number","nativeSrc":"26912:66:97","nodeType":"YulLiteral","src":"26912:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"26900:3:97","nodeType":"YulIdentifier","src":"26900:3:97"},"nativeSrc":"26900:79:97","nodeType":"YulFunctionCall","src":"26900:79:97"},"variables":[{"name":"loopEnd","nativeSrc":"26889:7:97","nodeType":"YulTypedName","src":"26889:7:97","type":""}]},{"nativeSrc":"26992:49:97","nodeType":"YulVariableDeclaration","src":"26992:49:97","value":{"arguments":[{"name":"slot","nativeSrc":"27036:4:97","nodeType":"YulIdentifier","src":"27036:4:97"}],"functionName":{"name":"array_dataslot_string_storage","nativeSrc":"27006:29:97","nodeType":"YulIdentifier","src":"27006:29:97"},"nativeSrc":"27006:35:97","nodeType":"YulFunctionCall","src":"27006:35:97"},"variables":[{"name":"dstPtr","nativeSrc":"26996:6:97","nodeType":"YulTypedName","src":"26996:6:97","type":""}]},{"nativeSrc":"27054:10:97","nodeType":"YulVariableDeclaration","src":"27054:10:97","value":{"kind":"number","nativeSrc":"27063:1:97","nodeType":"YulLiteral","src":"27063:1:97","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"27058:1:97","nodeType":"YulTypedName","src":"27058:1:97","type":""}]},{"body":{"nativeSrc":"27141:172:97","nodeType":"YulBlock","src":"27141:172:97","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"27166:6:97","nodeType":"YulIdentifier","src":"27166:6:97"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"27184:3:97","nodeType":"YulIdentifier","src":"27184:3:97"},{"name":"srcOffset","nativeSrc":"27189:9:97","nodeType":"YulIdentifier","src":"27189:9:97"}],"functionName":{"name":"add","nativeSrc":"27180:3:97","nodeType":"YulIdentifier","src":"27180:3:97"},"nativeSrc":"27180:19:97","nodeType":"YulFunctionCall","src":"27180:19:97"}],"functionName":{"name":"mload","nativeSrc":"27174:5:97","nodeType":"YulIdentifier","src":"27174:5:97"},"nativeSrc":"27174:26:97","nodeType":"YulFunctionCall","src":"27174:26:97"}],"functionName":{"name":"sstore","nativeSrc":"27159:6:97","nodeType":"YulIdentifier","src":"27159:6:97"},"nativeSrc":"27159:42:97","nodeType":"YulFunctionCall","src":"27159:42:97"},"nativeSrc":"27159:42:97","nodeType":"YulExpressionStatement","src":"27159:42:97"},{"nativeSrc":"27218:24:97","nodeType":"YulAssignment","src":"27218:24:97","value":{"arguments":[{"name":"dstPtr","nativeSrc":"27232:6:97","nodeType":"YulIdentifier","src":"27232:6:97"},{"kind":"number","nativeSrc":"27240:1:97","nodeType":"YulLiteral","src":"27240:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"27228:3:97","nodeType":"YulIdentifier","src":"27228:3:97"},"nativeSrc":"27228:14:97","nodeType":"YulFunctionCall","src":"27228:14:97"},"variableNames":[{"name":"dstPtr","nativeSrc":"27218:6:97","nodeType":"YulIdentifier","src":"27218:6:97"}]},{"nativeSrc":"27259:40:97","nodeType":"YulAssignment","src":"27259:40:97","value":{"arguments":[{"name":"srcOffset","nativeSrc":"27276:9:97","nodeType":"YulIdentifier","src":"27276:9:97"},{"name":"srcOffset_1","nativeSrc":"27287:11:97","nodeType":"YulIdentifier","src":"27287:11:97"}],"functionName":{"name":"add","nativeSrc":"27272:3:97","nodeType":"YulIdentifier","src":"27272:3:97"},"nativeSrc":"27272:27:97","nodeType":"YulFunctionCall","src":"27272:27:97"},"variableNames":[{"name":"srcOffset","nativeSrc":"27259:9:97","nodeType":"YulIdentifier","src":"27259:9:97"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"27088:1:97","nodeType":"YulIdentifier","src":"27088:1:97"},{"name":"loopEnd","nativeSrc":"27091:7:97","nodeType":"YulIdentifier","src":"27091:7:97"}],"functionName":{"name":"lt","nativeSrc":"27085:2:97","nodeType":"YulIdentifier","src":"27085:2:97"},"nativeSrc":"27085:14:97","nodeType":"YulFunctionCall","src":"27085:14:97"},"nativeSrc":"27077:236:97","nodeType":"YulForLoop","post":{"nativeSrc":"27100:28:97","nodeType":"YulBlock","src":"27100:28:97","statements":[{"nativeSrc":"27102:24:97","nodeType":"YulAssignment","src":"27102:24:97","value":{"arguments":[{"name":"i","nativeSrc":"27111:1:97","nodeType":"YulIdentifier","src":"27111:1:97"},{"name":"srcOffset_1","nativeSrc":"27114:11:97","nodeType":"YulIdentifier","src":"27114:11:97"}],"functionName":{"name":"add","nativeSrc":"27107:3:97","nodeType":"YulIdentifier","src":"27107:3:97"},"nativeSrc":"27107:19:97","nodeType":"YulFunctionCall","src":"27107:19:97"},"variableNames":[{"name":"i","nativeSrc":"27102:1:97","nodeType":"YulIdentifier","src":"27102:1:97"}]}]},"pre":{"nativeSrc":"27081:3:97","nodeType":"YulBlock","src":"27081:3:97","statements":[]},"src":"27077:236:97"},{"body":{"nativeSrc":"27361:226:97","nodeType":"YulBlock","src":"27361:226:97","statements":[{"nativeSrc":"27379:43:97","nodeType":"YulVariableDeclaration","src":"27379:43:97","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"27406:3:97","nodeType":"YulIdentifier","src":"27406:3:97"},{"name":"srcOffset","nativeSrc":"27411:9:97","nodeType":"YulIdentifier","src":"27411:9:97"}],"functionName":{"name":"add","nativeSrc":"27402:3:97","nodeType":"YulIdentifier","src":"27402:3:97"},"nativeSrc":"27402:19:97","nodeType":"YulFunctionCall","src":"27402:19:97"}],"functionName":{"name":"mload","nativeSrc":"27396:5:97","nodeType":"YulIdentifier","src":"27396:5:97"},"nativeSrc":"27396:26:97","nodeType":"YulFunctionCall","src":"27396:26:97"},"variables":[{"name":"lastValue","nativeSrc":"27383:9:97","nodeType":"YulTypedName","src":"27383:9:97","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"27446:6:97","nodeType":"YulIdentifier","src":"27446:6:97"},{"arguments":[{"name":"lastValue","nativeSrc":"27458:9:97","nodeType":"YulIdentifier","src":"27458:9:97"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"27485:1:97","nodeType":"YulLiteral","src":"27485:1:97","type":"","value":"3"},{"name":"newLen","nativeSrc":"27488:6:97","nodeType":"YulIdentifier","src":"27488:6:97"}],"functionName":{"name":"shl","nativeSrc":"27481:3:97","nodeType":"YulIdentifier","src":"27481:3:97"},"nativeSrc":"27481:14:97","nodeType":"YulFunctionCall","src":"27481:14:97"},{"kind":"number","nativeSrc":"27497:3:97","nodeType":"YulLiteral","src":"27497:3:97","type":"","value":"248"}],"functionName":{"name":"and","nativeSrc":"27477:3:97","nodeType":"YulIdentifier","src":"27477:3:97"},"nativeSrc":"27477:24:97","nodeType":"YulFunctionCall","src":"27477:24:97"},{"kind":"number","nativeSrc":"27503:66:97","nodeType":"YulLiteral","src":"27503:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shr","nativeSrc":"27473:3:97","nodeType":"YulIdentifier","src":"27473:3:97"},"nativeSrc":"27473:97:97","nodeType":"YulFunctionCall","src":"27473:97:97"}],"functionName":{"name":"not","nativeSrc":"27469:3:97","nodeType":"YulIdentifier","src":"27469:3:97"},"nativeSrc":"27469:102:97","nodeType":"YulFunctionCall","src":"27469:102:97"}],"functionName":{"name":"and","nativeSrc":"27454:3:97","nodeType":"YulIdentifier","src":"27454:3:97"},"nativeSrc":"27454:118:97","nodeType":"YulFunctionCall","src":"27454:118:97"}],"functionName":{"name":"sstore","nativeSrc":"27439:6:97","nodeType":"YulIdentifier","src":"27439:6:97"},"nativeSrc":"27439:134:97","nodeType":"YulFunctionCall","src":"27439:134:97"},"nativeSrc":"27439:134:97","nodeType":"YulExpressionStatement","src":"27439:134:97"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"27332:7:97","nodeType":"YulIdentifier","src":"27332:7:97"},{"name":"newLen","nativeSrc":"27341:6:97","nodeType":"YulIdentifier","src":"27341:6:97"}],"functionName":{"name":"lt","nativeSrc":"27329:2:97","nodeType":"YulIdentifier","src":"27329:2:97"},"nativeSrc":"27329:19:97","nodeType":"YulFunctionCall","src":"27329:19:97"},"nativeSrc":"27326:261:97","nodeType":"YulIf","src":"27326:261:97"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"27607:4:97","nodeType":"YulIdentifier","src":"27607:4:97"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"27621:1:97","nodeType":"YulLiteral","src":"27621:1:97","type":"","value":"1"},{"name":"newLen","nativeSrc":"27624:6:97","nodeType":"YulIdentifier","src":"27624:6:97"}],"functionName":{"name":"shl","nativeSrc":"27617:3:97","nodeType":"YulIdentifier","src":"27617:3:97"},"nativeSrc":"27617:14:97","nodeType":"YulFunctionCall","src":"27617:14:97"},{"kind":"number","nativeSrc":"27633:1:97","nodeType":"YulLiteral","src":"27633:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"27613:3:97","nodeType":"YulIdentifier","src":"27613:3:97"},"nativeSrc":"27613:22:97","nodeType":"YulFunctionCall","src":"27613:22:97"}],"functionName":{"name":"sstore","nativeSrc":"27600:6:97","nodeType":"YulIdentifier","src":"27600:6:97"},"nativeSrc":"27600:36:97","nodeType":"YulFunctionCall","src":"27600:36:97"},"nativeSrc":"27600:36:97","nodeType":"YulExpressionStatement","src":"27600:36:97"}]},"nativeSrc":"26864:782:97","nodeType":"YulCase","src":"26864:782:97","value":{"kind":"number","nativeSrc":"26869:1:97","nodeType":"YulLiteral","src":"26869:1:97","type":"","value":"1"}},{"body":{"nativeSrc":"27663:234:97","nodeType":"YulBlock","src":"27663:234:97","statements":[{"nativeSrc":"27677:14:97","nodeType":"YulVariableDeclaration","src":"27677:14:97","value":{"kind":"number","nativeSrc":"27690:1:97","nodeType":"YulLiteral","src":"27690:1:97","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"27681:5:97","nodeType":"YulTypedName","src":"27681:5:97","type":""}]},{"body":{"nativeSrc":"27726:67:97","nodeType":"YulBlock","src":"27726:67:97","statements":[{"nativeSrc":"27744:35:97","nodeType":"YulAssignment","src":"27744:35:97","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"27763:3:97","nodeType":"YulIdentifier","src":"27763:3:97"},{"name":"srcOffset","nativeSrc":"27768:9:97","nodeType":"YulIdentifier","src":"27768:9:97"}],"functionName":{"name":"add","nativeSrc":"27759:3:97","nodeType":"YulIdentifier","src":"27759:3:97"},"nativeSrc":"27759:19:97","nodeType":"YulFunctionCall","src":"27759:19:97"}],"functionName":{"name":"mload","nativeSrc":"27753:5:97","nodeType":"YulIdentifier","src":"27753:5:97"},"nativeSrc":"27753:26:97","nodeType":"YulFunctionCall","src":"27753:26:97"},"variableNames":[{"name":"value","nativeSrc":"27744:5:97","nodeType":"YulIdentifier","src":"27744:5:97"}]}]},"condition":{"name":"newLen","nativeSrc":"27707:6:97","nodeType":"YulIdentifier","src":"27707:6:97"},"nativeSrc":"27704:89:97","nodeType":"YulIf","src":"27704:89:97"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"27813:4:97","nodeType":"YulIdentifier","src":"27813:4:97"},{"arguments":[{"name":"value","nativeSrc":"27872:5:97","nodeType":"YulIdentifier","src":"27872:5:97"},{"name":"newLen","nativeSrc":"27879:6:97","nodeType":"YulIdentifier","src":"27879:6:97"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"27819:52:97","nodeType":"YulIdentifier","src":"27819:52:97"},"nativeSrc":"27819:67:97","nodeType":"YulFunctionCall","src":"27819:67:97"}],"functionName":{"name":"sstore","nativeSrc":"27806:6:97","nodeType":"YulIdentifier","src":"27806:6:97"},"nativeSrc":"27806:81:97","nodeType":"YulFunctionCall","src":"27806:81:97"},"nativeSrc":"27806:81:97","nodeType":"YulExpressionStatement","src":"27806:81:97"}]},"nativeSrc":"27655:242:97","nodeType":"YulCase","src":"27655:242:97","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"26844:6:97","nodeType":"YulIdentifier","src":"26844:6:97"},{"kind":"number","nativeSrc":"26852:2:97","nodeType":"YulLiteral","src":"26852:2:97","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"26841:2:97","nodeType":"YulIdentifier","src":"26841:2:97"},"nativeSrc":"26841:14:97","nodeType":"YulFunctionCall","src":"26841:14:97"},"nativeSrc":"26834:1063:97","nodeType":"YulSwitch","src":"26834:1063:97"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"26439:1464:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"26520:4:97","nodeType":"YulTypedName","src":"26520:4:97","type":""},{"name":"src","nativeSrc":"26526:3:97","nodeType":"YulTypedName","src":"26526:3:97","type":""}],"src":"26439:1464:97"},{"body":{"nativeSrc":"28002:1368:97","nodeType":"YulBlock","src":"28002:1368:97","statements":[{"nativeSrc":"28012:24:97","nodeType":"YulVariableDeclaration","src":"28012:24:97","value":{"arguments":[{"name":"src","nativeSrc":"28032:3:97","nodeType":"YulIdentifier","src":"28032:3:97"}],"functionName":{"name":"mload","nativeSrc":"28026:5:97","nodeType":"YulIdentifier","src":"28026:5:97"},"nativeSrc":"28026:10:97","nodeType":"YulFunctionCall","src":"28026:10:97"},"variables":[{"name":"newLen","nativeSrc":"28016:6:97","nodeType":"YulTypedName","src":"28016:6:97","type":""}]},{"body":{"nativeSrc":"28079:22:97","nodeType":"YulBlock","src":"28079:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"28081:16:97","nodeType":"YulIdentifier","src":"28081:16:97"},"nativeSrc":"28081:18:97","nodeType":"YulFunctionCall","src":"28081:18:97"},"nativeSrc":"28081:18:97","nodeType":"YulExpressionStatement","src":"28081:18:97"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"28051:6:97","nodeType":"YulIdentifier","src":"28051:6:97"},{"kind":"number","nativeSrc":"28059:18:97","nodeType":"YulLiteral","src":"28059:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"28048:2:97","nodeType":"YulIdentifier","src":"28048:2:97"},"nativeSrc":"28048:30:97","nodeType":"YulFunctionCall","src":"28048:30:97"},"nativeSrc":"28045:56:97","nodeType":"YulIf","src":"28045:56:97"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"28154:4:97","nodeType":"YulIdentifier","src":"28154:4:97"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"28192:4:97","nodeType":"YulIdentifier","src":"28192:4:97"}],"functionName":{"name":"sload","nativeSrc":"28186:5:97","nodeType":"YulIdentifier","src":"28186:5:97"},"nativeSrc":"28186:11:97","nodeType":"YulFunctionCall","src":"28186:11:97"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"28160:25:97","nodeType":"YulIdentifier","src":"28160:25:97"},"nativeSrc":"28160:38:97","nodeType":"YulFunctionCall","src":"28160:38:97"},{"name":"newLen","nativeSrc":"28200:6:97","nodeType":"YulIdentifier","src":"28200:6:97"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"28110:43:97","nodeType":"YulIdentifier","src":"28110:43:97"},"nativeSrc":"28110:97:97","nodeType":"YulFunctionCall","src":"28110:97:97"},"nativeSrc":"28110:97:97","nodeType":"YulExpressionStatement","src":"28110:97:97"},{"nativeSrc":"28216:18:97","nodeType":"YulVariableDeclaration","src":"28216:18:97","value":{"kind":"number","nativeSrc":"28233:1:97","nodeType":"YulLiteral","src":"28233:1:97","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"28220:9:97","nodeType":"YulTypedName","src":"28220:9:97","type":""}]},{"nativeSrc":"28243:23:97","nodeType":"YulVariableDeclaration","src":"28243:23:97","value":{"kind":"number","nativeSrc":"28262:4:97","nodeType":"YulLiteral","src":"28262:4:97","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nativeSrc":"28247:11:97","nodeType":"YulTypedName","src":"28247:11:97","type":""}]},{"nativeSrc":"28275:17:97","nodeType":"YulAssignment","src":"28275:17:97","value":{"kind":"number","nativeSrc":"28288:4:97","nodeType":"YulLiteral","src":"28288:4:97","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"28275:9:97","nodeType":"YulIdentifier","src":"28275:9:97"}]},{"cases":[{"body":{"nativeSrc":"28338:775:97","nodeType":"YulBlock","src":"28338:775:97","statements":[{"nativeSrc":"28352:94:97","nodeType":"YulVariableDeclaration","src":"28352:94:97","value":{"arguments":[{"name":"newLen","nativeSrc":"28371:6:97","nodeType":"YulIdentifier","src":"28371:6:97"},{"kind":"number","nativeSrc":"28379:66:97","nodeType":"YulLiteral","src":"28379:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"28367:3:97","nodeType":"YulIdentifier","src":"28367:3:97"},"nativeSrc":"28367:79:97","nodeType":"YulFunctionCall","src":"28367:79:97"},"variables":[{"name":"loopEnd","nativeSrc":"28356:7:97","nodeType":"YulTypedName","src":"28356:7:97","type":""}]},{"nativeSrc":"28459:49:97","nodeType":"YulVariableDeclaration","src":"28459:49:97","value":{"arguments":[{"name":"slot","nativeSrc":"28503:4:97","nodeType":"YulIdentifier","src":"28503:4:97"}],"functionName":{"name":"array_dataslot_string_storage","nativeSrc":"28473:29:97","nodeType":"YulIdentifier","src":"28473:29:97"},"nativeSrc":"28473:35:97","nodeType":"YulFunctionCall","src":"28473:35:97"},"variables":[{"name":"dstPtr","nativeSrc":"28463:6:97","nodeType":"YulTypedName","src":"28463:6:97","type":""}]},{"nativeSrc":"28521:10:97","nodeType":"YulVariableDeclaration","src":"28521:10:97","value":{"kind":"number","nativeSrc":"28530:1:97","nodeType":"YulLiteral","src":"28530:1:97","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"28525:1:97","nodeType":"YulTypedName","src":"28525:1:97","type":""}]},{"body":{"nativeSrc":"28608:172:97","nodeType":"YulBlock","src":"28608:172:97","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"28633:6:97","nodeType":"YulIdentifier","src":"28633:6:97"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"28651:3:97","nodeType":"YulIdentifier","src":"28651:3:97"},{"name":"srcOffset","nativeSrc":"28656:9:97","nodeType":"YulIdentifier","src":"28656:9:97"}],"functionName":{"name":"add","nativeSrc":"28647:3:97","nodeType":"YulIdentifier","src":"28647:3:97"},"nativeSrc":"28647:19:97","nodeType":"YulFunctionCall","src":"28647:19:97"}],"functionName":{"name":"mload","nativeSrc":"28641:5:97","nodeType":"YulIdentifier","src":"28641:5:97"},"nativeSrc":"28641:26:97","nodeType":"YulFunctionCall","src":"28641:26:97"}],"functionName":{"name":"sstore","nativeSrc":"28626:6:97","nodeType":"YulIdentifier","src":"28626:6:97"},"nativeSrc":"28626:42:97","nodeType":"YulFunctionCall","src":"28626:42:97"},"nativeSrc":"28626:42:97","nodeType":"YulExpressionStatement","src":"28626:42:97"},{"nativeSrc":"28685:24:97","nodeType":"YulAssignment","src":"28685:24:97","value":{"arguments":[{"name":"dstPtr","nativeSrc":"28699:6:97","nodeType":"YulIdentifier","src":"28699:6:97"},{"kind":"number","nativeSrc":"28707:1:97","nodeType":"YulLiteral","src":"28707:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"28695:3:97","nodeType":"YulIdentifier","src":"28695:3:97"},"nativeSrc":"28695:14:97","nodeType":"YulFunctionCall","src":"28695:14:97"},"variableNames":[{"name":"dstPtr","nativeSrc":"28685:6:97","nodeType":"YulIdentifier","src":"28685:6:97"}]},{"nativeSrc":"28726:40:97","nodeType":"YulAssignment","src":"28726:40:97","value":{"arguments":[{"name":"srcOffset","nativeSrc":"28743:9:97","nodeType":"YulIdentifier","src":"28743:9:97"},{"name":"srcOffset_1","nativeSrc":"28754:11:97","nodeType":"YulIdentifier","src":"28754:11:97"}],"functionName":{"name":"add","nativeSrc":"28739:3:97","nodeType":"YulIdentifier","src":"28739:3:97"},"nativeSrc":"28739:27:97","nodeType":"YulFunctionCall","src":"28739:27:97"},"variableNames":[{"name":"srcOffset","nativeSrc":"28726:9:97","nodeType":"YulIdentifier","src":"28726:9:97"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"28555:1:97","nodeType":"YulIdentifier","src":"28555:1:97"},{"name":"loopEnd","nativeSrc":"28558:7:97","nodeType":"YulIdentifier","src":"28558:7:97"}],"functionName":{"name":"lt","nativeSrc":"28552:2:97","nodeType":"YulIdentifier","src":"28552:2:97"},"nativeSrc":"28552:14:97","nodeType":"YulFunctionCall","src":"28552:14:97"},"nativeSrc":"28544:236:97","nodeType":"YulForLoop","post":{"nativeSrc":"28567:28:97","nodeType":"YulBlock","src":"28567:28:97","statements":[{"nativeSrc":"28569:24:97","nodeType":"YulAssignment","src":"28569:24:97","value":{"arguments":[{"name":"i","nativeSrc":"28578:1:97","nodeType":"YulIdentifier","src":"28578:1:97"},{"name":"srcOffset_1","nativeSrc":"28581:11:97","nodeType":"YulIdentifier","src":"28581:11:97"}],"functionName":{"name":"add","nativeSrc":"28574:3:97","nodeType":"YulIdentifier","src":"28574:3:97"},"nativeSrc":"28574:19:97","nodeType":"YulFunctionCall","src":"28574:19:97"},"variableNames":[{"name":"i","nativeSrc":"28569:1:97","nodeType":"YulIdentifier","src":"28569:1:97"}]}]},"pre":{"nativeSrc":"28548:3:97","nodeType":"YulBlock","src":"28548:3:97","statements":[]},"src":"28544:236:97"},{"body":{"nativeSrc":"28828:226:97","nodeType":"YulBlock","src":"28828:226:97","statements":[{"nativeSrc":"28846:43:97","nodeType":"YulVariableDeclaration","src":"28846:43:97","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"28873:3:97","nodeType":"YulIdentifier","src":"28873:3:97"},{"name":"srcOffset","nativeSrc":"28878:9:97","nodeType":"YulIdentifier","src":"28878:9:97"}],"functionName":{"name":"add","nativeSrc":"28869:3:97","nodeType":"YulIdentifier","src":"28869:3:97"},"nativeSrc":"28869:19:97","nodeType":"YulFunctionCall","src":"28869:19:97"}],"functionName":{"name":"mload","nativeSrc":"28863:5:97","nodeType":"YulIdentifier","src":"28863:5:97"},"nativeSrc":"28863:26:97","nodeType":"YulFunctionCall","src":"28863:26:97"},"variables":[{"name":"lastValue","nativeSrc":"28850:9:97","nodeType":"YulTypedName","src":"28850:9:97","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"28913:6:97","nodeType":"YulIdentifier","src":"28913:6:97"},{"arguments":[{"name":"lastValue","nativeSrc":"28925:9:97","nodeType":"YulIdentifier","src":"28925:9:97"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"28952:1:97","nodeType":"YulLiteral","src":"28952:1:97","type":"","value":"3"},{"name":"newLen","nativeSrc":"28955:6:97","nodeType":"YulIdentifier","src":"28955:6:97"}],"functionName":{"name":"shl","nativeSrc":"28948:3:97","nodeType":"YulIdentifier","src":"28948:3:97"},"nativeSrc":"28948:14:97","nodeType":"YulFunctionCall","src":"28948:14:97"},{"kind":"number","nativeSrc":"28964:3:97","nodeType":"YulLiteral","src":"28964:3:97","type":"","value":"248"}],"functionName":{"name":"and","nativeSrc":"28944:3:97","nodeType":"YulIdentifier","src":"28944:3:97"},"nativeSrc":"28944:24:97","nodeType":"YulFunctionCall","src":"28944:24:97"},{"kind":"number","nativeSrc":"28970:66:97","nodeType":"YulLiteral","src":"28970:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shr","nativeSrc":"28940:3:97","nodeType":"YulIdentifier","src":"28940:3:97"},"nativeSrc":"28940:97:97","nodeType":"YulFunctionCall","src":"28940:97:97"}],"functionName":{"name":"not","nativeSrc":"28936:3:97","nodeType":"YulIdentifier","src":"28936:3:97"},"nativeSrc":"28936:102:97","nodeType":"YulFunctionCall","src":"28936:102:97"}],"functionName":{"name":"and","nativeSrc":"28921:3:97","nodeType":"YulIdentifier","src":"28921:3:97"},"nativeSrc":"28921:118:97","nodeType":"YulFunctionCall","src":"28921:118:97"}],"functionName":{"name":"sstore","nativeSrc":"28906:6:97","nodeType":"YulIdentifier","src":"28906:6:97"},"nativeSrc":"28906:134:97","nodeType":"YulFunctionCall","src":"28906:134:97"},"nativeSrc":"28906:134:97","nodeType":"YulExpressionStatement","src":"28906:134:97"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"28799:7:97","nodeType":"YulIdentifier","src":"28799:7:97"},{"name":"newLen","nativeSrc":"28808:6:97","nodeType":"YulIdentifier","src":"28808:6:97"}],"functionName":{"name":"lt","nativeSrc":"28796:2:97","nodeType":"YulIdentifier","src":"28796:2:97"},"nativeSrc":"28796:19:97","nodeType":"YulFunctionCall","src":"28796:19:97"},"nativeSrc":"28793:261:97","nodeType":"YulIf","src":"28793:261:97"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"29074:4:97","nodeType":"YulIdentifier","src":"29074:4:97"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"29088:1:97","nodeType":"YulLiteral","src":"29088:1:97","type":"","value":"1"},{"name":"newLen","nativeSrc":"29091:6:97","nodeType":"YulIdentifier","src":"29091:6:97"}],"functionName":{"name":"shl","nativeSrc":"29084:3:97","nodeType":"YulIdentifier","src":"29084:3:97"},"nativeSrc":"29084:14:97","nodeType":"YulFunctionCall","src":"29084:14:97"},{"kind":"number","nativeSrc":"29100:1:97","nodeType":"YulLiteral","src":"29100:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"29080:3:97","nodeType":"YulIdentifier","src":"29080:3:97"},"nativeSrc":"29080:22:97","nodeType":"YulFunctionCall","src":"29080:22:97"}],"functionName":{"name":"sstore","nativeSrc":"29067:6:97","nodeType":"YulIdentifier","src":"29067:6:97"},"nativeSrc":"29067:36:97","nodeType":"YulFunctionCall","src":"29067:36:97"},"nativeSrc":"29067:36:97","nodeType":"YulExpressionStatement","src":"29067:36:97"}]},"nativeSrc":"28331:782:97","nodeType":"YulCase","src":"28331:782:97","value":{"kind":"number","nativeSrc":"28336:1:97","nodeType":"YulLiteral","src":"28336:1:97","type":"","value":"1"}},{"body":{"nativeSrc":"29130:234:97","nodeType":"YulBlock","src":"29130:234:97","statements":[{"nativeSrc":"29144:14:97","nodeType":"YulVariableDeclaration","src":"29144:14:97","value":{"kind":"number","nativeSrc":"29157:1:97","nodeType":"YulLiteral","src":"29157:1:97","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"29148:5:97","nodeType":"YulTypedName","src":"29148:5:97","type":""}]},{"body":{"nativeSrc":"29193:67:97","nodeType":"YulBlock","src":"29193:67:97","statements":[{"nativeSrc":"29211:35:97","nodeType":"YulAssignment","src":"29211:35:97","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"29230:3:97","nodeType":"YulIdentifier","src":"29230:3:97"},{"name":"srcOffset","nativeSrc":"29235:9:97","nodeType":"YulIdentifier","src":"29235:9:97"}],"functionName":{"name":"add","nativeSrc":"29226:3:97","nodeType":"YulIdentifier","src":"29226:3:97"},"nativeSrc":"29226:19:97","nodeType":"YulFunctionCall","src":"29226:19:97"}],"functionName":{"name":"mload","nativeSrc":"29220:5:97","nodeType":"YulIdentifier","src":"29220:5:97"},"nativeSrc":"29220:26:97","nodeType":"YulFunctionCall","src":"29220:26:97"},"variableNames":[{"name":"value","nativeSrc":"29211:5:97","nodeType":"YulIdentifier","src":"29211:5:97"}]}]},"condition":{"name":"newLen","nativeSrc":"29174:6:97","nodeType":"YulIdentifier","src":"29174:6:97"},"nativeSrc":"29171:89:97","nodeType":"YulIf","src":"29171:89:97"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"29280:4:97","nodeType":"YulIdentifier","src":"29280:4:97"},{"arguments":[{"name":"value","nativeSrc":"29339:5:97","nodeType":"YulIdentifier","src":"29339:5:97"},{"name":"newLen","nativeSrc":"29346:6:97","nodeType":"YulIdentifier","src":"29346:6:97"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"29286:52:97","nodeType":"YulIdentifier","src":"29286:52:97"},"nativeSrc":"29286:67:97","nodeType":"YulFunctionCall","src":"29286:67:97"}],"functionName":{"name":"sstore","nativeSrc":"29273:6:97","nodeType":"YulIdentifier","src":"29273:6:97"},"nativeSrc":"29273:81:97","nodeType":"YulFunctionCall","src":"29273:81:97"},"nativeSrc":"29273:81:97","nodeType":"YulExpressionStatement","src":"29273:81:97"}]},"nativeSrc":"29122:242:97","nodeType":"YulCase","src":"29122:242:97","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"28311:6:97","nodeType":"YulIdentifier","src":"28311:6:97"},{"kind":"number","nativeSrc":"28319:2:97","nodeType":"YulLiteral","src":"28319:2:97","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"28308:2:97","nodeType":"YulIdentifier","src":"28308:2:97"},"nativeSrc":"28308:14:97","nodeType":"YulFunctionCall","src":"28308:14:97"},"nativeSrc":"28301:1063:97","nodeType":"YulSwitch","src":"28301:1063:97"}]},"name":"copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage","nativeSrc":"27908:1462:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"27987:4:97","nodeType":"YulTypedName","src":"27987:4:97","type":""},{"name":"src","nativeSrc":"27993:3:97","nodeType":"YulTypedName","src":"27993:3:97","type":""}],"src":"27908:1462:97"},{"body":{"nativeSrc":"29524:191:97","nodeType":"YulBlock","src":"29524:191:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"29541:9:97","nodeType":"YulIdentifier","src":"29541:9:97"},{"arguments":[{"name":"value0","nativeSrc":"29556:6:97","nodeType":"YulIdentifier","src":"29556:6:97"},{"kind":"number","nativeSrc":"29564:42:97","nodeType":"YulLiteral","src":"29564:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"29552:3:97","nodeType":"YulIdentifier","src":"29552:3:97"},"nativeSrc":"29552:55:97","nodeType":"YulFunctionCall","src":"29552:55:97"}],"functionName":{"name":"mstore","nativeSrc":"29534:6:97","nodeType":"YulIdentifier","src":"29534:6:97"},"nativeSrc":"29534:74:97","nodeType":"YulFunctionCall","src":"29534:74:97"},"nativeSrc":"29534:74:97","nodeType":"YulExpressionStatement","src":"29534:74:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29628:9:97","nodeType":"YulIdentifier","src":"29628:9:97"},{"kind":"number","nativeSrc":"29639:2:97","nodeType":"YulLiteral","src":"29639:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29624:3:97","nodeType":"YulIdentifier","src":"29624:3:97"},"nativeSrc":"29624:18:97","nodeType":"YulFunctionCall","src":"29624:18:97"},{"kind":"number","nativeSrc":"29644:2:97","nodeType":"YulLiteral","src":"29644:2:97","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"29617:6:97","nodeType":"YulIdentifier","src":"29617:6:97"},"nativeSrc":"29617:30:97","nodeType":"YulFunctionCall","src":"29617:30:97"},"nativeSrc":"29617:30:97","nodeType":"YulExpressionStatement","src":"29617:30:97"},{"nativeSrc":"29656:53:97","nodeType":"YulAssignment","src":"29656:53:97","value":{"arguments":[{"name":"value1","nativeSrc":"29682:6:97","nodeType":"YulIdentifier","src":"29682:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"29694:9:97","nodeType":"YulIdentifier","src":"29694:9:97"},{"kind":"number","nativeSrc":"29705:2:97","nodeType":"YulLiteral","src":"29705:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"29690:3:97","nodeType":"YulIdentifier","src":"29690:3:97"},"nativeSrc":"29690:18:97","nodeType":"YulFunctionCall","src":"29690:18:97"}],"functionName":{"name":"abi_encode_string","nativeSrc":"29664:17:97","nodeType":"YulIdentifier","src":"29664:17:97"},"nativeSrc":"29664:45:97","nodeType":"YulFunctionCall","src":"29664:45:97"},"variableNames":[{"name":"tail","nativeSrc":"29656:4:97","nodeType":"YulIdentifier","src":"29656:4:97"}]}]},"name":"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"29375:340:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29485:9:97","nodeType":"YulTypedName","src":"29485:9:97","type":""},{"name":"value1","nativeSrc":"29496:6:97","nodeType":"YulTypedName","src":"29496:6:97","type":""},{"name":"value0","nativeSrc":"29504:6:97","nodeType":"YulTypedName","src":"29504:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"29515:4:97","nodeType":"YulTypedName","src":"29515:4:97","type":""}],"src":"29375:340:97"},{"body":{"nativeSrc":"29798:167:97","nodeType":"YulBlock","src":"29798:167:97","statements":[{"body":{"nativeSrc":"29844:16:97","nodeType":"YulBlock","src":"29844:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"29853:1:97","nodeType":"YulLiteral","src":"29853:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"29856:1:97","nodeType":"YulLiteral","src":"29856:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"29846:6:97","nodeType":"YulIdentifier","src":"29846:6:97"},"nativeSrc":"29846:12:97","nodeType":"YulFunctionCall","src":"29846:12:97"},"nativeSrc":"29846:12:97","nodeType":"YulExpressionStatement","src":"29846:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"29819:7:97","nodeType":"YulIdentifier","src":"29819:7:97"},{"name":"headStart","nativeSrc":"29828:9:97","nodeType":"YulIdentifier","src":"29828:9:97"}],"functionName":{"name":"sub","nativeSrc":"29815:3:97","nodeType":"YulIdentifier","src":"29815:3:97"},"nativeSrc":"29815:23:97","nodeType":"YulFunctionCall","src":"29815:23:97"},{"kind":"number","nativeSrc":"29840:2:97","nodeType":"YulLiteral","src":"29840:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"29811:3:97","nodeType":"YulIdentifier","src":"29811:3:97"},"nativeSrc":"29811:32:97","nodeType":"YulFunctionCall","src":"29811:32:97"},"nativeSrc":"29808:52:97","nodeType":"YulIf","src":"29808:52:97"},{"nativeSrc":"29869:29:97","nodeType":"YulVariableDeclaration","src":"29869:29:97","value":{"arguments":[{"name":"headStart","nativeSrc":"29888:9:97","nodeType":"YulIdentifier","src":"29888:9:97"}],"functionName":{"name":"mload","nativeSrc":"29882:5:97","nodeType":"YulIdentifier","src":"29882:5:97"},"nativeSrc":"29882:16:97","nodeType":"YulFunctionCall","src":"29882:16:97"},"variables":[{"name":"value","nativeSrc":"29873:5:97","nodeType":"YulTypedName","src":"29873:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"29929:5:97","nodeType":"YulIdentifier","src":"29929:5:97"}],"functionName":{"name":"validator_revert_bool","nativeSrc":"29907:21:97","nodeType":"YulIdentifier","src":"29907:21:97"},"nativeSrc":"29907:28:97","nodeType":"YulFunctionCall","src":"29907:28:97"},"nativeSrc":"29907:28:97","nodeType":"YulExpressionStatement","src":"29907:28:97"},{"nativeSrc":"29944:15:97","nodeType":"YulAssignment","src":"29944:15:97","value":{"name":"value","nativeSrc":"29954:5:97","nodeType":"YulIdentifier","src":"29954:5:97"},"variableNames":[{"name":"value0","nativeSrc":"29944:6:97","nodeType":"YulIdentifier","src":"29944:6:97"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"29720:245:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29764:9:97","nodeType":"YulTypedName","src":"29764:9:97","type":""},{"name":"dataEnd","nativeSrc":"29775:7:97","nodeType":"YulTypedName","src":"29775:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"29787:6:97","nodeType":"YulTypedName","src":"29787:6:97","type":""}],"src":"29720:245:97"},{"body":{"nativeSrc":"30147:264:97","nodeType":"YulBlock","src":"30147:264:97","statements":[{"nativeSrc":"30157:52:97","nodeType":"YulVariableDeclaration","src":"30157:52:97","value":{"kind":"number","nativeSrc":"30167:42:97","nodeType":"YulLiteral","src":"30167:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"30161:2:97","nodeType":"YulTypedName","src":"30161:2:97","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"30225:9:97","nodeType":"YulIdentifier","src":"30225:9:97"},{"arguments":[{"name":"value0","nativeSrc":"30240:6:97","nodeType":"YulIdentifier","src":"30240:6:97"},{"name":"_1","nativeSrc":"30248:2:97","nodeType":"YulIdentifier","src":"30248:2:97"}],"functionName":{"name":"and","nativeSrc":"30236:3:97","nodeType":"YulIdentifier","src":"30236:3:97"},"nativeSrc":"30236:15:97","nodeType":"YulFunctionCall","src":"30236:15:97"}],"functionName":{"name":"mstore","nativeSrc":"30218:6:97","nodeType":"YulIdentifier","src":"30218:6:97"},"nativeSrc":"30218:34:97","nodeType":"YulFunctionCall","src":"30218:34:97"},"nativeSrc":"30218:34:97","nodeType":"YulExpressionStatement","src":"30218:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30272:9:97","nodeType":"YulIdentifier","src":"30272:9:97"},{"kind":"number","nativeSrc":"30283:2:97","nodeType":"YulLiteral","src":"30283:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"30268:3:97","nodeType":"YulIdentifier","src":"30268:3:97"},"nativeSrc":"30268:18:97","nodeType":"YulFunctionCall","src":"30268:18:97"},{"arguments":[{"name":"value1","nativeSrc":"30292:6:97","nodeType":"YulIdentifier","src":"30292:6:97"},{"name":"_1","nativeSrc":"30300:2:97","nodeType":"YulIdentifier","src":"30300:2:97"}],"functionName":{"name":"and","nativeSrc":"30288:3:97","nodeType":"YulIdentifier","src":"30288:3:97"},"nativeSrc":"30288:15:97","nodeType":"YulFunctionCall","src":"30288:15:97"}],"functionName":{"name":"mstore","nativeSrc":"30261:6:97","nodeType":"YulIdentifier","src":"30261:6:97"},"nativeSrc":"30261:43:97","nodeType":"YulFunctionCall","src":"30261:43:97"},"nativeSrc":"30261:43:97","nodeType":"YulExpressionStatement","src":"30261:43:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30324:9:97","nodeType":"YulIdentifier","src":"30324:9:97"},{"kind":"number","nativeSrc":"30335:2:97","nodeType":"YulLiteral","src":"30335:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"30320:3:97","nodeType":"YulIdentifier","src":"30320:3:97"},"nativeSrc":"30320:18:97","nodeType":"YulFunctionCall","src":"30320:18:97"},{"kind":"number","nativeSrc":"30340:2:97","nodeType":"YulLiteral","src":"30340:2:97","type":"","value":"96"}],"functionName":{"name":"mstore","nativeSrc":"30313:6:97","nodeType":"YulIdentifier","src":"30313:6:97"},"nativeSrc":"30313:30:97","nodeType":"YulFunctionCall","src":"30313:30:97"},"nativeSrc":"30313:30:97","nodeType":"YulExpressionStatement","src":"30313:30:97"},{"nativeSrc":"30352:53:97","nodeType":"YulAssignment","src":"30352:53:97","value":{"arguments":[{"name":"value2","nativeSrc":"30378:6:97","nodeType":"YulIdentifier","src":"30378:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"30390:9:97","nodeType":"YulIdentifier","src":"30390:9:97"},{"kind":"number","nativeSrc":"30401:2:97","nodeType":"YulLiteral","src":"30401:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"30386:3:97","nodeType":"YulIdentifier","src":"30386:3:97"},"nativeSrc":"30386:18:97","nodeType":"YulFunctionCall","src":"30386:18:97"}],"functionName":{"name":"abi_encode_string","nativeSrc":"30360:17:97","nodeType":"YulIdentifier","src":"30360:17:97"},"nativeSrc":"30360:45:97","nodeType":"YulFunctionCall","src":"30360:45:97"},"variableNames":[{"name":"tail","nativeSrc":"30352:4:97","nodeType":"YulIdentifier","src":"30352:4:97"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"29970:441:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"30100:9:97","nodeType":"YulTypedName","src":"30100:9:97","type":""},{"name":"value2","nativeSrc":"30111:6:97","nodeType":"YulTypedName","src":"30111:6:97","type":""},{"name":"value1","nativeSrc":"30119:6:97","nodeType":"YulTypedName","src":"30119:6:97","type":""},{"name":"value0","nativeSrc":"30127:6:97","nodeType":"YulTypedName","src":"30127:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"30138:4:97","nodeType":"YulTypedName","src":"30138:4:97","type":""}],"src":"29970:441:97"},{"body":{"nativeSrc":"30590:233:97","nodeType":"YulBlock","src":"30590:233:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"30607:9:97","nodeType":"YulIdentifier","src":"30607:9:97"},{"kind":"number","nativeSrc":"30618:2:97","nodeType":"YulLiteral","src":"30618:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"30600:6:97","nodeType":"YulIdentifier","src":"30600:6:97"},"nativeSrc":"30600:21:97","nodeType":"YulFunctionCall","src":"30600:21:97"},"nativeSrc":"30600:21:97","nodeType":"YulExpressionStatement","src":"30600:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30641:9:97","nodeType":"YulIdentifier","src":"30641:9:97"},{"kind":"number","nativeSrc":"30652:2:97","nodeType":"YulLiteral","src":"30652:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"30637:3:97","nodeType":"YulIdentifier","src":"30637:3:97"},"nativeSrc":"30637:18:97","nodeType":"YulFunctionCall","src":"30637:18:97"},{"kind":"number","nativeSrc":"30657:2:97","nodeType":"YulLiteral","src":"30657:2:97","type":"","value":"43"}],"functionName":{"name":"mstore","nativeSrc":"30630:6:97","nodeType":"YulIdentifier","src":"30630:6:97"},"nativeSrc":"30630:30:97","nodeType":"YulFunctionCall","src":"30630:30:97"},"nativeSrc":"30630:30:97","nodeType":"YulExpressionStatement","src":"30630:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30680:9:97","nodeType":"YulIdentifier","src":"30680:9:97"},{"kind":"number","nativeSrc":"30691:2:97","nodeType":"YulLiteral","src":"30691:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"30676:3:97","nodeType":"YulIdentifier","src":"30676:3:97"},"nativeSrc":"30676:18:97","nodeType":"YulFunctionCall","src":"30676:18:97"},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069","kind":"string","nativeSrc":"30696:34:97","nodeType":"YulLiteral","src":"30696:34:97","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nativeSrc":"30669:6:97","nodeType":"YulIdentifier","src":"30669:6:97"},"nativeSrc":"30669:62:97","nodeType":"YulFunctionCall","src":"30669:62:97"},"nativeSrc":"30669:62:97","nodeType":"YulExpressionStatement","src":"30669:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30751:9:97","nodeType":"YulIdentifier","src":"30751:9:97"},{"kind":"number","nativeSrc":"30762:2:97","nodeType":"YulLiteral","src":"30762:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"30747:3:97","nodeType":"YulIdentifier","src":"30747:3:97"},"nativeSrc":"30747:18:97","nodeType":"YulFunctionCall","src":"30747:18:97"},{"hexValue":"6e697469616c697a696e67","kind":"string","nativeSrc":"30767:13:97","nodeType":"YulLiteral","src":"30767:13:97","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nativeSrc":"30740:6:97","nodeType":"YulIdentifier","src":"30740:6:97"},"nativeSrc":"30740:41:97","nodeType":"YulFunctionCall","src":"30740:41:97"},"nativeSrc":"30740:41:97","nodeType":"YulExpressionStatement","src":"30740:41:97"},{"nativeSrc":"30790:27:97","nodeType":"YulAssignment","src":"30790:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"30802:9:97","nodeType":"YulIdentifier","src":"30802:9:97"},{"kind":"number","nativeSrc":"30813:3:97","nodeType":"YulLiteral","src":"30813:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"30798:3:97","nodeType":"YulIdentifier","src":"30798:3:97"},"nativeSrc":"30798:19:97","nodeType":"YulFunctionCall","src":"30798:19:97"},"variableNames":[{"name":"tail","nativeSrc":"30790:4:97","nodeType":"YulIdentifier","src":"30790:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"30416:407:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"30567:9:97","nodeType":"YulTypedName","src":"30567:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"30581:4:97","nodeType":"YulTypedName","src":"30581:4:97","type":""}],"src":"30416:407:97"}]},"contents":"{\n    { }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        validator_revert_address(value)\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_struct_Origin_calldata(offset, end) -> value\n    {\n        if slt(sub(end, offset), 96) { revert(0, 0) }\n        value := offset\n    }\n    function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_struct$_Origin_$886_calldata_ptrt_bytes32t_bytes_calldata_ptrt_addresst_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n    {\n        if slt(sub(dataEnd, headStart), 224) { revert(0, 0) }\n        value0 := abi_decode_struct_Origin_calldata(headStart, dataEnd)\n        value1 := calldataload(add(headStart, 96))\n        let offset := calldataload(add(headStart, 128))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n        let value := calldataload(add(headStart, 160))\n        validator_revert_address(value)\n        value4 := value\n        let offset_1 := calldataload(add(headStart, 192))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value5_1, value6_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n        value5 := value5_1\n        value6 := value6_1\n    }\n    function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        let value := calldataload(add(headStart, 32))\n        validator_revert_address(value)\n        value1 := value\n    }\n    function abi_encode_tuple_t_uint64_t_uint64__to_t_uint64_t_uint64__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        let _1 := 0xffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n    }\n    function abi_decode_tuple_t_string_calldata_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n    }\n    function abi_encode_address(value, pos)\n    {\n        mstore(pos, and(value, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_struct$_RiskParamConfig_$16320_memory_ptr__to_t_struct$_RiskParamConfig_$16320_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, iszero(iszero(mload(value0))))\n        mstore(add(headStart, 0x20), mload(add(value0, 0x20)))\n        mstore(add(headStart, 0x40), and(mload(add(value0, 0x40)), 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_uint32(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_uint32t_bytes32(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_uint32(headStart)\n        value1 := calldataload(add(headStart, 32))\n    }\n    function validator_revert_bool(value)\n    {\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_bool(value_1)\n        value1 := value_1\n    }\n    function abi_decode_tuple_t_string_calldata_ptrt_bool(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n        let value := calldataload(add(headStart, 32))\n        validator_revert_bool(value)\n        value2 := value\n    }\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n    }\n    function abi_encode_uint32(value, pos)\n    {\n        mstore(pos, and(value, 0xffffffff))\n    }\n    function abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffff))\n    }\n    function abi_encode_tuple_t_contract$_ILayerZeroEndpointV2_$1048__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffff))\n    }\n    function abi_decode_tuple_t_struct$_Origin_$886_calldata_ptrt_bytes_calldata_ptrt_address(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n        value0 := abi_decode_struct_Origin_calldata(headStart, dataEnd)\n        let offset := calldataload(add(headStart, 96))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n        let value := calldataload(add(headStart, 128))\n        validator_revert_address(value)\n        value3 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_encode_tuple_t_bool_t_uint256_t_address__to_t_bool_t_uint256_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, iszero(iszero(value0)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), and(value2, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_string_calldata_ptrt_addresst_uint256(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n        let value := calldataload(add(headStart, 32))\n        validator_revert_address(value)\n        value2 := value\n        value3 := calldataload(add(headStart, 64))\n    }\n    function abi_encode_tuple_t_contract$_IAccessControlManagerV8_$13903__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function copy_memory_to_memory_with_cleanup(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n    }\n    function abi_encode_string(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n        end := add(add(pos, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 0x20)\n    }\n    function abi_encode_uint96(value, pos)\n    {\n        mstore(pos, and(value, 0xffffffffffffffffffffffff))\n    }\n    function abi_encode_struct_RiskParameterUpdate(value, pos) -> end\n    {\n        let _1 := 0x0180\n        let memberValue0 := mload(value)\n        mstore(pos, _1)\n        let tail := abi_encode_string(memberValue0, add(pos, _1))\n        mstore(add(pos, 0x20), mload(add(value, 0x20)))\n        let memberValue0_1 := mload(add(value, 0x40))\n        abi_encode_address(memberValue0_1, add(pos, 0x40))\n        let memberValue0_2 := mload(add(value, 0x60))\n        mstore(add(pos, 0x60), sub(tail, pos))\n        let tail_1 := abi_encode_string(memberValue0_2, tail)\n        mstore(add(pos, 0x80), mload(add(value, 0x80)))\n        let memberValue0_3 := mload(add(value, 0xa0))\n        mstore(add(pos, 0xa0), sub(tail_1, pos))\n        let tail_2 := abi_encode_string(memberValue0_3, tail_1)\n        let memberValue0_4 := mload(add(value, 0xc0))\n        mstore(add(pos, 0xc0), sub(tail_2, pos))\n        let tail_3 := abi_encode_string(memberValue0_4, tail_2)\n        mstore(add(pos, 0xe0), mload(add(value, 0xe0)))\n        let _2 := 0x0100\n        let memberValue0_5 := mload(add(value, _2))\n        abi_encode_address(memberValue0_5, add(pos, _2))\n        let _3 := 0x0120\n        let memberValue0_6 := mload(add(value, _3))\n        abi_encode_uint96(memberValue0_6, add(pos, _3))\n        let _4 := 0x0140\n        let memberValue0_7 := mload(add(value, _4))\n        abi_encode_uint32(memberValue0_7, add(pos, _4))\n        let _5 := 0x0160\n        let memberValue0_8 := mload(add(value, _5))\n        mstore(add(pos, _5), sub(tail_3, pos))\n        end := abi_encode_string(memberValue0_8, tail_3)\n    }\n    function panic_error_0x21()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x21)\n        revert(0, 0x24)\n    }\n    function abi_encode_enum_UpdateStatus(value, pos)\n    {\n        if iszero(lt(value, 4))\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x21)\n            revert(0, 0x24)\n        }\n        mstore(pos, value)\n    }\n    function abi_encode_tuple_t_struct$_RiskParameterUpdate_$16568_memory_ptr_t_enum$_UpdateStatus_$16312_t_uint256_t_address__to_t_struct$_RiskParameterUpdate_$16568_memory_ptr_t_uint8_t_uint256_t_address__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, 128)\n        tail := abi_encode_struct_RiskParameterUpdate(value0, add(headStart, 128))\n        abi_encode_enum_UpdateStatus(value1, add(headStart, 32))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), and(value3, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_uint32(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_uint32(headStart)\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_string_calldata_ptrt_address(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n        let value := calldataload(add(headStart, 32))\n        validator_revert_address(value)\n        value2 := value\n    }\n    function abi_encode_tuple_t_struct$_DestinationUpdate_$16332_memory_ptr__to_t_struct$_DestinationUpdate_$16332_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let memberValue0 := mload(value0)\n        mstore(add(headStart, 32), 0x80)\n        let tail_1 := abi_encode_struct_RiskParameterUpdate(memberValue0, add(headStart, 160))\n        let memberValue0_1 := mload(add(value0, 32))\n        abi_encode_enum_UpdateStatus(memberValue0_1, add(headStart, 64))\n        mstore(add(headStart, 96), mload(add(value0, 64)))\n        mstore(add(headStart, 0x80), and(mload(add(value0, 96)), 0xffffffffffffffffffffffffffffffffffffffff))\n        tail := tail_1\n    }\n    function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        let _1 := 32\n        let tail_1 := add(headStart, 32)\n        mstore(headStart, 32)\n        let pos := tail_1\n        let length := mload(value0)\n        mstore(tail_1, length)\n        pos := add(headStart, 64)\n        let srcPtr := add(value0, 32)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, mload(srcPtr))\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        tail := pos\n    }\n    function abi_decode_tuple_t_struct$_Origin_$886_calldata_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_struct_Origin_calldata(headStart, dataEnd)\n    }\n    function abi_encode_tuple_t_uint32_t_bytes32__to_t_uint32_t_bytes32__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, 0xffffffff))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        calldatacopy(pos, value0, value1)\n        let _1 := add(pos, value1)\n        mstore(_1, 0)\n        end := _1\n    }\n    function abi_encode_tuple_t_bool_t_bool__to_t_bool_t_bool__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, iszero(iszero(value0)))\n        mstore(add(headStart, 32), iszero(iszero(value1)))\n    }\n    function abi_encode_string_calldata(start, length, pos) -> end\n    {\n        mstore(pos, length)\n        calldatacopy(add(pos, 0x20), start, length)\n        mstore(add(add(pos, length), 0x20), 0)\n        end := add(add(pos, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 0x20)\n    }\n    function abi_encode_tuple_t_string_calldata_ptr_t_bool__to_t_string_memory_ptr_t_bool__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        mstore(headStart, 64)\n        tail := abi_encode_string_calldata(value0, value1, add(headStart, 64))\n        mstore(add(headStart, 32), iszero(iszero(value2)))\n    }\n    function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 46)\n        mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n        mstore(add(headStart, 96), \"dy initialized\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 41)\n        mstore(add(headStart, 64), \"Ownable2Step: caller is not the \")\n        mstore(add(headStart, 96), \"new owner\")\n        tail := add(headStart, 128)\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_t_struct$_RiskParameterUpdate_$16568_memory_ptr__to_t_struct$_RiskParameterUpdate_$16568_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_struct_RiskParameterUpdate(value0, add(headStart, 32))\n    }\n    function abi_encode_tuple_t_string_calldata_ptr_t_uint256_t_uint256_t_bool_t_bool__to_t_string_memory_ptr_t_uint256_t_uint256_t_bool_t_bool__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, 160)\n        tail := abi_encode_string_calldata(value0, value1, add(headStart, 160))\n        mstore(add(headStart, 32), value2)\n        mstore(add(headStart, 64), value3)\n        mstore(add(headStart, 96), iszero(iszero(value4)))\n        mstore(add(headStart, 128), iszero(iszero(value5)))\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function allocate_memory_3487() -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, 0x0180)\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function allocate_memory(size) -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(size, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n    {\n        let _1 := 32\n        if slt(sub(dataEnd, headStart), _1) { revert(0, 0) }\n        let offset := mload(headStart)\n        let _2 := 0xffffffffffffffff\n        if gt(offset, _2) { revert(0, 0) }\n        let _3 := add(headStart, offset)\n        if iszero(slt(add(_3, 0x1f), dataEnd)) { revert(0, 0) }\n        let _4 := mload(_3)\n        if gt(_4, _2) { panic_error_0x41() }\n        let _5 := shl(5, _4)\n        let dst := allocate_memory(add(_5, _1))\n        let dst_1 := dst\n        mstore(dst, _4)\n        dst := add(dst, _1)\n        let srcEnd := add(add(_3, _5), _1)\n        if gt(srcEnd, dataEnd) { revert(0, 0) }\n        let src := add(_3, _1)\n        for { } lt(src, srcEnd) { src := add(src, _1) }\n        {\n            let value := mload(src)\n            validator_revert_address(value)\n            mstore(dst, value)\n            dst := add(dst, _1)\n        }\n        value0 := dst_1\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"invalid acess control manager ad\")\n        mstore(add(headStart, 96), \"dress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n    }\n    function abi_decode_string(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let _1 := calldataload(offset)\n        if gt(_1, 0xffffffffffffffff) { panic_error_0x41() }\n        let array_1 := allocate_memory(add(and(add(_1, 0x1f), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0), 0x20))\n        mstore(array_1, _1)\n        if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n        calldatacopy(add(array_1, 0x20), add(offset, 0x20), _1)\n        mstore(add(add(array_1, _1), 0x20), 0)\n        array := array_1\n    }\n    function abi_decode_uint96(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_struct$_RiskParameterUpdate_$16568_memory_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let _2 := add(headStart, offset)\n        if slt(sub(dataEnd, _2), 0x0180) { revert(0, 0) }\n        let value := allocate_memory_3487()\n        let offset_1 := calldataload(_2)\n        if gt(offset_1, _1) { revert(0, 0) }\n        mstore(value, abi_decode_string(add(_2, offset_1), dataEnd))\n        mstore(add(value, 32), calldataload(add(_2, 32)))\n        mstore(add(value, 64), abi_decode_address(add(_2, 64)))\n        let offset_2 := calldataload(add(_2, 96))\n        if gt(offset_2, _1) { revert(0, 0) }\n        mstore(add(value, 96), abi_decode_string(add(_2, offset_2), dataEnd))\n        mstore(add(value, 128), calldataload(add(_2, 128)))\n        let offset_3 := calldataload(add(_2, 160))\n        if gt(offset_3, _1) { revert(0, 0) }\n        mstore(add(value, 160), abi_decode_string(add(_2, offset_3), dataEnd))\n        let offset_4 := calldataload(add(_2, 192))\n        if gt(offset_4, _1) { revert(0, 0) }\n        mstore(add(value, 192), abi_decode_string(add(_2, offset_4), dataEnd))\n        mstore(add(value, 224), calldataload(add(_2, 224)))\n        let _3 := 256\n        mstore(add(value, _3), abi_decode_address(add(_2, _3)))\n        let _4 := 288\n        mstore(add(value, _4), abi_decode_uint96(add(_2, _4)))\n        let _5 := 320\n        mstore(add(value, _5), abi_decode_uint32(add(_2, _5)))\n        let _6 := 352\n        let offset_5 := calldataload(add(_2, _6))\n        if gt(offset_5, _1) { revert(0, 0) }\n        mstore(add(value, _6), abi_decode_string(add(_2, offset_5), dataEnd))\n        value0 := value\n    }\n    function abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n        end := add(pos, length)\n    }\n    function array_dataslot_string_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            let _1 := 0\n            mstore(0, array)\n            let data := keccak256(0, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _2 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _2) { start := add(start, 1) }\n            { sstore(start, _1) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n    {\n        let newLen := mload(src)\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        let srcOffset_1 := 0x20\n        srcOffset := 0x20\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n            {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, srcOffset_1)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n    function copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage(slot, src)\n    {\n        let newLen := mload(src)\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        let srcOffset_1 := 0x20\n        srcOffset := 0x20\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n            {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, srcOffset_1)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n    function abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 32), 64)\n        tail := abi_encode_string(value1, add(headStart, 64))\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_bool(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), 96)\n        tail := abi_encode_string(value2, add(headStart, 96))\n    }\n    function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 43)\n        mstore(add(headStart, 64), \"Initializable: contract is not i\")\n        mstore(add(headStart, 96), \"nitializing\")\n        tail := add(headStart, 128)\n    }\n}","id":97,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"1875":[{"length":32,"start":1050},{"length":32,"start":2098},{"length":32,"start":7485}],"15013":[{"length":32,"start":977}]},"linkReferences":{},"object":"6080604052600436106102345760003560e01c80638da5cb5b11610138578063ca136b99116100b0578063f2fde38b1161007f578063f63106e411610064578063f63106e41461079f578063fe2b3502146107cc578063ff7bd03d146107fc57600080fd5b8063f2fde38b14610752578063f5d3b7b31461077257600080fd5b8063ca136b99146106de578063ca5eb5e1146106fe578063e2509c761461071e578063e30c39781461073457600080fd5b8063b4a0bdf311610107578063bb0b6a53116100ec578063bb0b6a531461064c578063be3881b41461069e578063c3e10deb146106be57600080fd5b8063b4a0bdf3146105fe578063b4c2f7271461061c57600080fd5b80638da5cb5b14610519578063a49e9ea114610537578063af9e0fd31461056f578063b080d71d146105de57600080fd5b8063438653fe116101cb578063715018a61161019a57806379edd1001161017f57806379edd1001461047e5780637d25a05e1461049e57806382413eac146104da57600080fd5b8063715018a61461045457806379ba50971461046957600080fd5b8063438653fe1461037f578063485cc9551461039f5780634c213449146103bf5780635e280f111461040857600080fd5b806317442b701161020757806317442b70146102d057806328207141146102f25780633400288b1461033f5780633aed7f311461035f57600080fd5b8063050d8986146102395780630e32cb861461026357806313137d6514610285578063170338c814610298575b600080fd5b34801561024557600080fd5b506102506202a30081565b6040519081526020015b60405180910390f35b34801561026f57600080fd5b5061028361027e3660046131cc565b61081c565b005b61028361029336600461324a565b610830565b3480156102a457600080fd5b506102506102b33660046132ea565b60cd60209081526000928352604080842090915290825290205481565b3480156102dc57600080fd5b506040805160008152600260208201520161025a565b3480156102fe57600080fd5b5061031261030d36600461331a565b610922565b6040805182511515815260208084015190820152918101516001600160a01b03169082015260600161025a565b34801561034b57600080fd5b5061028361035a366004613370565b6109a1565b34801561036b57600080fd5b5061028361037a3660046133a8565b610a20565b34801561038b57600080fd5b5061028361039a3660046133d6565b610b09565b3480156103ab57600080fd5b506102836103ba36600461342d565b610c6a565b3480156103cb57600080fd5b506103f37f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff909116815260200161025a565b34801561041457600080fd5b5061043c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161025a565b34801561046057600080fd5b50610283610e21565b34801561047557600080fd5b50610283610e53565b34801561048a57600080fd5b5061028361049936600461345b565b610ef8565b3480156104aa57600080fd5b506104c16104b9366004613370565b600092915050565b60405167ffffffffffffffff909116815260200161025a565b3480156104e657600080fd5b506105096104f5366004613474565b6001600160a01b0381163014949350505050565b604051901515815260200161025a565b34801561052557600080fd5b506033546001600160a01b031661043c565b34801561054357600080fd5b506102506105523660046132ea565b60cc60209081526000928352604080842090915290825290205481565b34801561057b57600080fd5b506105b861058a36600461345b565b60ca6020526000908152604090208054600182015460029092015460ff90911691906001600160a01b031683565b60408051931515845260208401929092526001600160a01b03169082015260600161025a565b3480156105ea57600080fd5b506102836105f93660046134db565b611589565b34801561060a57600080fd5b506097546001600160a01b031661043c565b34801561062857600080fd5b5061063c61063736600461345b565b611725565b60405161025a94939291906136fb565b34801561065857600080fd5b5061025061066736600461373b565b63ffffffff1660009081527f72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f900602052604090205490565b3480156106aa57600080fd5b506102506106b9366004613756565b611ad0565b3480156106ca57600080fd5b506102836106d936600461345b565b611b18565b3480156106ea57600080fd5b506102836106f936600461345b565b611bff565b34801561070a57600080fd5b506102836107193660046131cc565b611cfd565b34801561072a57600080fd5b5061025060c95481565b34801561074057600080fd5b506065546001600160a01b031661043c565b34801561075e57600080fd5b5061028361076d3660046131cc565b611d9c565b34801561077e57600080fd5b5061079261078d366004613756565b611dad565b60405161025a91906137a2565b3480156107ab57600080fd5b506107bf6107ba366004613756565b61224d565b60405161025a91906137fa565b3480156107d857600080fd5b506105096107e73660046131cc565b60ce6020526000908152604090205460ff1681565b34801561080857600080fd5b5061050961081736600461383e565b612508565b610824612526565b61082d8161259c565b50565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610899576040517f91ac5e4f0000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b602087018035906108b3906108ae908a61373b565b6126a4565b1461090a576108c5602088018861373b565b6040517fc26bebcc00000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015260208801356024820152604401610890565b6109198787878787878761271a565b50505050505050565b60408051606081018252600080825260208201819052918101919091526000838360405161095192919061385a565b60408051918290038220600090815260ca602090815290829020606084018352805460ff1615158452600181015491840191909152600201546001600160a01b0316908201529150505b92915050565b6109a9612526565b63ffffffff821660008181527f72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f900602081815260409283902085905582519384528301849052917f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b91015b60405180910390a1505050565b610a41604051806060016040528060248152602001613f1360249139612a6e565b610a4a82612b3e565b6001600160a01b038216600090815260ce602052604090205460ff1681151581151503610aa3576040517f8eee990d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038316600081815260ce6020908152604091829020805460ff191686151590811790915582518515158152918201527f10c0e7519c24c8e42dbd4d2405e9976e893c51df86614145b2758289f197ec3b910160405180910390a2505050565b610b476040518060400160405280601c81526020017f736574436f6e66696741637469766528737472696e672c626f6f6c2900000000815250612a6e565b60008383604051610b5992919061385a565b6040805191829003909120600081815260ca60205291909120600201549091506001600160a01b0316610bb8576040517f80919d7b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081815260ca602052604090205460ff1682151581151503610c07576040517f01e852dc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082815260ca602052604090819020805460ff1916851515908117909155905183907fcba816b2fc5cd49700523a79b6e6c7dda19292fbb932cca77f7bccb1e500479290610c5b90899089908790613895565b60405180910390a35050505050565b600054610100900460ff1615808015610c8a5750600054600160ff909116105b80610ca45750303b158015610ca4575060005460ff166001145b610d30576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610890565b6000805460ff191660011790558015610d7057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610d7983612b7e565b610d8282612c26565b61546060c98190556040519081527fa1c2964049f672e1cba842d393f777ed468b9846eb7de186d7e73665a326b3019060200160405180910390a18015610e1c57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610a13565b505050565b6040517f96c553eb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60655433906001600160a01b03168114610eef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e657200000000000000000000000000000000000000000000006064820152608401610890565b61082d81612cc6565b33600090815260ce602052604090205460ff16610f41576040517f341f61ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081815260cb602052604080822081516101808101909252805490929190839082908290610f6f906138bb565b80601f0160208091040260200160405190810160405280929190818152602001828054610f9b906138bb565b8015610fe85780601f10610fbd57610100808354040283529160200191610fe8565b820191906000526020600020905b815481529060010190602001808311610fcb57829003601f168201915b50505091835250506001820154602082015260028201546001600160a01b03166040820152600382018054606090920191611022906138bb565b80601f016020809104026020016040519081016040528092919081815260200182805461104e906138bb565b801561109b5780601f106110705761010080835404028352916020019161109b565b820191906000526020600020905b81548152906001019060200180831161107e57829003601f168201915b50505050508152602001600482015481526020016005820180546110be906138bb565b80601f01602080910402602001604051908101604052809291908181526020018280546110ea906138bb565b80156111375780601f1061110c57610100808354040283529160200191611137565b820191906000526020600020905b81548152906001019060200180831161111a57829003601f168201915b50505050508152602001600682018054611150906138bb565b80601f016020809104026020016040519081016040528092919081815260200182805461117c906138bb565b80156111c95780601f1061119e576101008083540402835291602001916111c9565b820191906000526020600020905b8154815290600101906020018083116111ac57829003601f168201915b50505091835250506007820154602082015260088201546001600160a01b03811660408301527401000000000000000000000000000000000000000090046bffffffffffffffffffffffff166060820152600982015463ffffffff166080820152600a8201805460a09092019161123f906138bb565b80601f016020809104026020016040519081016040528092919081815260200182805461126b906138bb565b80156112b85780601f1061128d576101008083540402835291602001916112b8565b820191906000526020600020905b81548152906001019060200180831161129b57829003601f168201915b505050919092525050506080810151600081815260ca6020526040902080549293509091429060ff16611317576040517fdea2a21200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600b86015460ff16600381111561133257611332613691565b14611369576040517f6196e5a300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60c95485600c015461137b9190613937565b8110156113b4576040517f05f5f49800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806202a3008560e001516113c89190613937565b1015611400576040517fc2a16f1400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600083815260cd60209081526040808320878201516001600160a01b0316845290915290205480158015906114435750818360010154826114419190613937565b115b1561147a576040517f53f7a6ee00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600084815260cd60209081526040808320888201516001600160a01b039081168552925291829020849055600b88018054600260ff199091168117909155600d890180547fffffffffffffffffffffffff0000000000000000000000000000000000000000163317905585015491517fbf63783900000000000000000000000000000000000000000000000000000000815291169063bf6378399061152390889060040161394a565b600060405180830381600087803b15801561153d57600080fd5b505af1158015611551573d6000803e3d6000fd5b50506040518992507f27f52b13359f1687e1c3c6179b59fd5f217e9f580e76053c074a51d65de2dac79150600090a250505050505050565b6115aa6040518060600160405280602e8152602001613f37602e9139612a6e565b6115b382612b3e565b8215806115c05750604083115b156115f6576040517e64280000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600003611630576040517ff6ea4e0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000848460405161164292919061385a565b60408051918290038220600081815260ca602081815284832060608701865260018088528288018a81526001600160a01b038c81168a8a0181815297899052959094529751825460ff19169015159081178355975181830181905594516002830180547fffffffffffffffffffffffff000000000000000000000000000000000000000016919094169081179093559551949750959194909387937f2cbea64d1a2ece216f5461b535881b82196130c6a988a9d3b323bd6d5cfe608e93611715938e938e93928d9260ff9091169161395d565b60405180910390a4505050505050565b60cb6020528060005260406000206000915090508060000160405180610180016040529081600082018054611759906138bb565b80601f0160208091040260200160405190810160405280929190818152602001828054611785906138bb565b80156117d25780601f106117a7576101008083540402835291602001916117d2565b820191906000526020600020905b8154815290600101906020018083116117b557829003601f168201915b50505091835250506001820154602082015260028201546001600160a01b0316604082015260038201805460609092019161180c906138bb565b80601f0160208091040260200160405190810160405280929190818152602001828054611838906138bb565b80156118855780601f1061185a57610100808354040283529160200191611885565b820191906000526020600020905b81548152906001019060200180831161186857829003601f168201915b50505050508152602001600482015481526020016005820180546118a8906138bb565b80601f01602080910402602001604051908101604052809291908181526020018280546118d4906138bb565b80156119215780601f106118f657610100808354040283529160200191611921565b820191906000526020600020905b81548152906001019060200180831161190457829003601f168201915b5050505050815260200160068201805461193a906138bb565b80601f0160208091040260200160405190810160405280929190818152602001828054611966906138bb565b80156119b35780601f10611988576101008083540402835291602001916119b3565b820191906000526020600020905b81548152906001019060200180831161199657829003601f168201915b50505091835250506007820154602082015260088201546001600160a01b03811660408301527401000000000000000000000000000000000000000090046bffffffffffffffffffffffff166060820152600982015463ffffffff166080820152600a8201805460a090920191611a29906138bb565b80601f0160208091040260200160405190810160405280929190818152602001828054611a55906138bb565b8015611aa25780601f10611a7757610100808354040283529160200191611aa2565b820191906000526020600020905b815481529060010190602001808311611a8557829003601f168201915b50505091909252505050600b820154600c830154600d90930154919260ff909116916001600160a01b031684565b6000808484604051611ae392919061385a565b6040805191829003909120600090815260cd60209081528282206001600160a01b0387168352905220549150505b9392505050565b33600090815260ce602052604090205460ff16611b61576040517f341f61ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081815260cb602052604090206001600b82015460ff166003811115611b8a57611b8a613691565b14611bc1576040517f6196e5a300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600b8101805460ff1916600317905560405182907f0a4273908b9362e571cacd5610879e3dfd7ddc7c9b3ce1d7ea7ea8b41869116490600090a25050565b611c3d6040518060400160405280601781526020017f73657452656d6f746544656c61792875696e7432353629000000000000000000815250612a6e565b801580611c4d57506202a3008110155b15611c84576040517f545f991300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60c954818103611cc0576040517fbb45c33d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60c98290556040518281527fa1c2964049f672e1cba842d393f777ed468b9846eb7de186d7e73665a326b301906020015b60405180910390a15050565b611d05612526565b6040517fca5eb5e10000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b158015611d8157600080fd5b505af1158015611d95573d6000803e3d6000fd5b5050505050565b611da4612526565b61082d81612ccf565b6040805161020081018252606060808201818152600060a0840181905260c0840181905260e08401839052610100840181905261012084018390526101408401839052610160840181905261018084018190526101a084018190526101c084018190526101e084018390529083526020830181905292820183905281019190915260008484604051611e4092919061385a565b60408051918290038220600081815260cc60209081528382206001600160a01b038916835281528382205480835260cb909152908390206102008501909352825491945092919082906080820190839082908290611e9d906138bb565b80601f0160208091040260200160405190810160405280929190818152602001828054611ec9906138bb565b8015611f165780601f10611eeb57610100808354040283529160200191611f16565b820191906000526020600020905b815481529060010190602001808311611ef957829003601f168201915b50505091835250506001820154602082015260028201546001600160a01b03166040820152600382018054606090920191611f50906138bb565b80601f0160208091040260200160405190810160405280929190818152602001828054611f7c906138bb565b8015611fc95780601f10611f9e57610100808354040283529160200191611fc9565b820191906000526020600020905b815481529060010190602001808311611fac57829003601f168201915b5050505050815260200160048201548152602001600582018054611fec906138bb565b80601f0160208091040260200160405190810160405280929190818152602001828054612018906138bb565b80156120655780601f1061203a57610100808354040283529160200191612065565b820191906000526020600020905b81548152906001019060200180831161204857829003601f168201915b5050505050815260200160068201805461207e906138bb565b80601f01602080910402602001604051908101604052809291908181526020018280546120aa906138bb565b80156120f75780601f106120cc576101008083540402835291602001916120f7565b820191906000526020600020905b8154815290600101906020018083116120da57829003601f168201915b50505091835250506007820154602082015260088201546001600160a01b03811660408301527401000000000000000000000000000000000000000090046bffffffffffffffffffffffff166060820152600982015463ffffffff166080820152600a8201805460a09092019161216d906138bb565b80601f0160208091040260200160405190810160405280929190818152602001828054612199906138bb565b80156121e65780601f106121bb576101008083540402835291602001916121e6565b820191906000526020600020905b8154815290600101906020018083116121c957829003601f168201915b505050919092525050508152600b82015460209091019060ff16600381111561221157612211613691565b600381111561222257612222613691565b8152600c8201546020820152600d909101546001600160a01b03166040909101529695505050505050565b60606000848460405161226192919061385a565b604051809103902090506000836001600160a01b031663b0772d0b6040518163ffffffff1660e01b8152600401600060405180830381865afa1580156122ab573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526122d39190810190613a22565b805190915060008167ffffffffffffffff8111156122f3576122f3613998565b60405190808252806020026020018201604052801561231c578160200160208202803683370190505b50600085815260ca602052604081208054929350909160ff166123565750506040805160008152602081019091529450611b119350505050565b60005b8481101561246a57600086828151811061237557612375613ad4565b60209081029190910181015160008a815260cc835260408082206001600160a01b038416835284528082205480835260cb90945290209092506123b782612d58565b6123c357505050612462565b60c95481600c01546123d59190613937565b4210156123e457505050612462565b60008a815260cd602090815260408083206001600160a01b038716845290915290205480158015906124245750428660010154826124229190613937565b115b156124325750505050612462565b8288888151811061244557612445613ad4565b60209081029190910101528661245a81613b03565b975050505050505b600101612359565b508167ffffffffffffffff81111561248457612484613998565b6040519080825280602002602001820160405280156124ad578160200160208202803683370190505b50965060005b828110156124fa578381815181106124cd576124cd613ad4565b60200260200101518882815181106124e7576124e7613ad4565b60209081029190910101526001016124b3565b505050505050509392505050565b60006020820180359061251f90610667908561373b565b1492915050565b6033546001600160a01b0316331461259a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610890565b565b6001600160a01b038116612632576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e6167657220616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610890565b609780546001600160a01b038381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa09101611cf1565b63ffffffff811660009081527f72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f9006020819052604082205480611b11576040517ff6ff4fb700000000000000000000000000000000000000000000000000000000815263ffffffff85166004820152602401610890565b600061272885870187613bc7565b60208101519091504260008083815260cb60205260409020600b015460ff16600381111561275857612758613691565b146127c75782604001516001600160a01b0316836060015160405161277d9190613d2e565b6040518091039020837f6f2b8853cd821aee89a0dc78a586658bcbd9c930d3d25be1de720fa0346bd73b846040516127b791815260200190565b60405180910390a4505050610919565b6080830151600090815260cc60209081526040808320818701516001600160a01b031684529091529020546127fb81612d58565b1561286b5783604001516001600160a01b031684606001516040516128209190613d2e565b6040518091039020827fa5cf028a8d57c7fae7982ac3692bb4bdf11ddcca7c93493242a00f4957a5ebb78560405161285a91815260200190565b60405180910390a450505050610919565b600083815260cb60205260409020845185908290819061288b9082613d9a565b506020820151600182015560408201516002820180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03909216919091179055606082015160038201906128e89082613d9a565b506080820151600482015560a082015160058201906129079082613d9a565b5060c0820151600682019061291c9082613d9a565b5060e082015160078201556101008201516101208301516bffffffffffffffffffffffff1674010000000000000000000000000000000000000000026001600160a01b0390911617600882015561014082015160098201805463ffffffff9092167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000909216919091179055610160820151600a8201906129bc9082613d9a565b505050600b8101805460ff19166001179055600c81018390556080850151600090815260cc6020908152604080832081890180516001600160a01b0390811686529190935292819020879055905160608801519151921691612a1e9190613d2e565b6040518091039020857fd5a7f72731c4bc3d3a2da54b4c53b429270f8d7f8c5b053d9ee98e072f87584086604051612a5891815260200190565b60405180910390a4505050505050505050505050565b6097546040517f18c5e8ab0000000000000000000000000000000000000000000000000000000081526000916001600160a01b0316906318c5e8ab90612aba9033908690600401613e96565b602060405180830381865afa158015612ad7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612afb9190613ec0565b905080612b3a573330836040517f4a3fa29300000000000000000000000000000000000000000000000000000000815260040161089093929190613edd565b5050565b6001600160a01b03811661082d576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600054610100900460ff16612c15576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610890565b612c1d612dbf565b61082d81612e5e565b600054610100900460ff16612cbd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610890565b61082d81612ef5565b61082d81612f95565b612cd7612526565b606580546001600160a01b0383167fffffffffffffffffffffffff00000000000000000000000000000000000000009091168117909155612d206033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b600081600003612d6a57506000919050565b600082815260cb602052604090206001600b82015460ff166003811115612d9357612d93613691565b14612da15750600092915050565b60078101544290612db6906202a30090613937565b10159392505050565b600054610100900460ff16612e56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610890565b61259a612fc6565b600054610100900460ff16610824576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610890565b600054610100900460ff16612f8c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610890565b61082d81613066565b606580547fffffffffffffffffffffffff000000000000000000000000000000000000000016905561082d8161313d565b600054610100900460ff1661305d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610890565b61259a33612cc6565b600054610100900460ff166130fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610890565b6001600160a01b038116611d05576040517fb586360400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038116811461082d57600080fd5b80356131c7816131a7565b919050565b6000602082840312156131de57600080fd5b8135611b11816131a7565b6000606082840312156131fb57600080fd5b50919050565b60008083601f84011261321357600080fd5b50813567ffffffffffffffff81111561322b57600080fd5b60208301915083602082850101111561324357600080fd5b9250929050565b600080600080600080600060e0888a03121561326557600080fd5b61326f89896131e9565b965060608801359550608088013567ffffffffffffffff8082111561329357600080fd5b61329f8b838c01613201565b909750955060a08a013591506132b4826131a7565b90935060c089013590808211156132ca57600080fd5b506132d78a828b01613201565b989b979a50959850939692959293505050565b600080604083850312156132fd57600080fd5b82359150602083013561330f816131a7565b809150509250929050565b6000806020838503121561332d57600080fd5b823567ffffffffffffffff81111561334457600080fd5b61335085828601613201565b90969095509350505050565b803563ffffffff811681146131c757600080fd5b6000806040838503121561338357600080fd5b61338c8361335c565b946020939093013593505050565b801515811461082d57600080fd5b600080604083850312156133bb57600080fd5b82356133c6816131a7565b9150602083013561330f8161339a565b6000806000604084860312156133eb57600080fd5b833567ffffffffffffffff81111561340257600080fd5b61340e86828701613201565b90945092505060208401356134228161339a565b809150509250925092565b6000806040838503121561344057600080fd5b823561344b816131a7565b9150602083013561330f816131a7565b60006020828403121561346d57600080fd5b5035919050565b60008060008060a0858703121561348a57600080fd5b61349486866131e9565b9350606085013567ffffffffffffffff8111156134b057600080fd5b6134bc87828801613201565b90945092505060808501356134d0816131a7565b939692955090935050565b600080600080606085870312156134f157600080fd5b843567ffffffffffffffff81111561350857600080fd5b61351487828801613201565b9095509350506020850135613528816131a7565b9396929550929360400135925050565b60005b8381101561355357818101518382015260200161353b565b50506000910152565b60008151808452613574816020860160208601613538565b601f01601f19169290920160200192915050565b6000610180825181855261359e8286018261355c565b9150506020830151602085015260408301516135c560408601826001600160a01b03169052565b50606083015184820360608601526135dd828261355c565b9150506080830151608085015260a083015184820360a0860152613601828261355c565b91505060c083015184820360c086015261361b828261355c565b91505060e083015160e085015261010080840151613643828701826001600160a01b03169052565b5050610120838101516bffffffffffffffffffffffff16908501526101408084015163ffffffff16908501526101608084015185830382870152613687838261355c565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600481106136f7577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b60808152600061370e6080830187613588565b905061371d60208301866136c0565b8360408301526001600160a01b038316606083015295945050505050565b60006020828403121561374d57600080fd5b611b118261335c565b60008060006040848603121561376b57600080fd5b833567ffffffffffffffff81111561378257600080fd5b61378e86828701613201565b9094509250506020840135613422816131a7565b6020815260008251608060208401526137be60a0840182613588565b905060208401516137d260408501826136c0565b50604084015160608401526001600160a01b0360608501511660808401528091505092915050565b6020808252825182820181905260009190848201906040850190845b8181101561383257835183529284019291840191600101613816565b50909695505050505050565b60006060828403121561385057600080fd5b611b1183836131e9565b8183823760009101908152919050565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b6040815260006138a960408301858761386a565b90508215156020830152949350505050565b600181811c908216806138cf57607f821691505b6020821081036131fb577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561099b5761099b613908565b602081526000611b116020830184613588565b60a08152600061397160a08301888a61386a565b60208301969096525060408101939093529015156060830152151560809091015292915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610180810167ffffffffffffffff811182821017156139eb576139eb613998565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715613a1a57613a1a613998565b604052919050565b60006020808385031215613a3557600080fd5b825167ffffffffffffffff80821115613a4d57600080fd5b818501915085601f830112613a6157600080fd5b815181811115613a7357613a73613998565b8060051b9150613a848483016139f1565b8181529183018401918481019088841115613a9e57600080fd5b938501935b83851015613ac85784519250613ab8836131a7565b8282529385019390850190613aa3565b98975050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613b3457613b34613908565b5060010190565b600082601f830112613b4c57600080fd5b813567ffffffffffffffff811115613b6657613b66613998565b613b796020601f19601f840116016139f1565b818152846020838601011115613b8e57600080fd5b816020850160208301376000918101602001919091529392505050565b80356bffffffffffffffffffffffff811681146131c757600080fd5b600060208284031215613bd957600080fd5b813567ffffffffffffffff80821115613bf157600080fd5b908301906101808286031215613c0657600080fd5b613c0e6139c7565b823582811115613c1d57600080fd5b613c2987828601613b3b565b82525060208301356020820152613c42604084016131bc565b6040820152606083013582811115613c5957600080fd5b613c6587828601613b3b565b6060830152506080830135608082015260a083013582811115613c8757600080fd5b613c9387828601613b3b565b60a08301525060c083013582811115613cab57600080fd5b613cb787828601613b3b565b60c08301525060e083013560e0820152610100613cd58185016131bc565b90820152610120613ce7848201613bab565b90820152610140613cf984820161335c565b908201526101608381013583811115613d1157600080fd5b613d1d88828701613b3b565b918301919091525095945050505050565b60008251613d40818460208701613538565b9190910192915050565b601f821115610e1c576000816000526020600020601f850160051c81016020861015613d735750805b601f850160051c820191505b81811015613d9257828155600101613d7f565b505050505050565b815167ffffffffffffffff811115613db457613db4613998565b613dc881613dc284546138bb565b84613d4a565b602080601f831160018114613e1b5760008415613de55750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555613d92565b600085815260208120601f198616915b82811015613e4a57888601518255948401946001909101908401613e2b565b5085821015613e8657878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b0383168152604060208201526000613eb8604083018461355c565b949350505050565b600060208284031215613ed257600080fd5b8151611b118161339a565b60006001600160a01b03808616835280851660208401525060606040830152613f09606083018461355c565b9594505050505056fe73657457686974656c69737465644578656375746f7228616464726573732c626f6f6c297365745269736b506172616d65746572436f6e66696728737472696e672c616464726573732c75696e7432353629a26469706673582212204322ae777aba80dfdeaae44eff85fe29944224176b66bc6bacaffa0ef429dfb364736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x234 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x138 JUMPI DUP1 PUSH4 0xCA136B99 GT PUSH2 0xB0 JUMPI DUP1 PUSH4 0xF2FDE38B GT PUSH2 0x7F JUMPI DUP1 PUSH4 0xF63106E4 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xF63106E4 EQ PUSH2 0x79F JUMPI DUP1 PUSH4 0xFE2B3502 EQ PUSH2 0x7CC JUMPI DUP1 PUSH4 0xFF7BD03D EQ PUSH2 0x7FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x752 JUMPI DUP1 PUSH4 0xF5D3B7B3 EQ PUSH2 0x772 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCA136B99 EQ PUSH2 0x6DE JUMPI DUP1 PUSH4 0xCA5EB5E1 EQ PUSH2 0x6FE JUMPI DUP1 PUSH4 0xE2509C76 EQ PUSH2 0x71E JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x734 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB4A0BDF3 GT PUSH2 0x107 JUMPI DUP1 PUSH4 0xBB0B6A53 GT PUSH2 0xEC JUMPI DUP1 PUSH4 0xBB0B6A53 EQ PUSH2 0x64C JUMPI DUP1 PUSH4 0xBE3881B4 EQ PUSH2 0x69E JUMPI DUP1 PUSH4 0xC3E10DEB EQ PUSH2 0x6BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB4A0BDF3 EQ PUSH2 0x5FE JUMPI DUP1 PUSH4 0xB4C2F727 EQ PUSH2 0x61C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x519 JUMPI DUP1 PUSH4 0xA49E9EA1 EQ PUSH2 0x537 JUMPI DUP1 PUSH4 0xAF9E0FD3 EQ PUSH2 0x56F JUMPI DUP1 PUSH4 0xB080D71D EQ PUSH2 0x5DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x438653FE GT PUSH2 0x1CB JUMPI DUP1 PUSH4 0x715018A6 GT PUSH2 0x19A JUMPI DUP1 PUSH4 0x79EDD100 GT PUSH2 0x17F JUMPI DUP1 PUSH4 0x79EDD100 EQ PUSH2 0x47E JUMPI DUP1 PUSH4 0x7D25A05E EQ PUSH2 0x49E JUMPI DUP1 PUSH4 0x82413EAC EQ PUSH2 0x4DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x715018A6 EQ PUSH2 0x454 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x469 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x438653FE EQ PUSH2 0x37F JUMPI DUP1 PUSH4 0x485CC955 EQ PUSH2 0x39F JUMPI DUP1 PUSH4 0x4C213449 EQ PUSH2 0x3BF JUMPI DUP1 PUSH4 0x5E280F11 EQ PUSH2 0x408 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x17442B70 GT PUSH2 0x207 JUMPI DUP1 PUSH4 0x17442B70 EQ PUSH2 0x2D0 JUMPI DUP1 PUSH4 0x28207141 EQ PUSH2 0x2F2 JUMPI DUP1 PUSH4 0x3400288B EQ PUSH2 0x33F JUMPI DUP1 PUSH4 0x3AED7F31 EQ PUSH2 0x35F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x50D8986 EQ PUSH2 0x239 JUMPI DUP1 PUSH4 0xE32CB86 EQ PUSH2 0x263 JUMPI DUP1 PUSH4 0x13137D65 EQ PUSH2 0x285 JUMPI DUP1 PUSH4 0x170338C8 EQ PUSH2 0x298 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x245 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x250 PUSH3 0x2A300 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x283 PUSH2 0x27E CALLDATASIZE PUSH1 0x4 PUSH2 0x31CC JUMP JUMPDEST PUSH2 0x81C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x283 PUSH2 0x293 CALLDATASIZE PUSH1 0x4 PUSH2 0x324A JUMP JUMPDEST PUSH2 0x830 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x250 PUSH2 0x2B3 CALLDATASIZE PUSH1 0x4 PUSH2 0x32EA JUMP JUMPDEST PUSH1 0xCD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 DUP3 ADD MSTORE ADD PUSH2 0x25A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x312 PUSH2 0x30D CALLDATASIZE PUSH1 0x4 PUSH2 0x331A JUMP JUMPDEST PUSH2 0x922 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP3 MLOAD ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE SWAP2 DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x25A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x34B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x283 PUSH2 0x35A CALLDATASIZE PUSH1 0x4 PUSH2 0x3370 JUMP JUMPDEST PUSH2 0x9A1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x36B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x283 PUSH2 0x37A CALLDATASIZE PUSH1 0x4 PUSH2 0x33A8 JUMP JUMPDEST PUSH2 0xA20 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x283 PUSH2 0x39A CALLDATASIZE PUSH1 0x4 PUSH2 0x33D6 JUMP JUMPDEST PUSH2 0xB09 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x283 PUSH2 0x3BA CALLDATASIZE PUSH1 0x4 PUSH2 0x342D JUMP JUMPDEST PUSH2 0xC6A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F3 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x25A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x414 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x43C PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x25A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x460 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x283 PUSH2 0xE21 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x475 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x283 PUSH2 0xE53 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x283 PUSH2 0x499 CALLDATASIZE PUSH1 0x4 PUSH2 0x345B JUMP JUMPDEST PUSH2 0xEF8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4C1 PUSH2 0x4B9 CALLDATASIZE PUSH1 0x4 PUSH2 0x3370 JUMP JUMPDEST PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x25A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x509 PUSH2 0x4F5 CALLDATASIZE PUSH1 0x4 PUSH2 0x3474 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ADDRESS EQ SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x25A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x525 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x43C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x543 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x250 PUSH2 0x552 CALLDATASIZE PUSH1 0x4 PUSH2 0x32EA JUMP JUMPDEST PUSH1 0xCC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x57B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5B8 PUSH2 0x58A CALLDATASIZE PUSH1 0x4 PUSH2 0x345B JUMP JUMPDEST PUSH1 0xCA PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 SWAP1 SWAP3 ADD SLOAD PUSH1 0xFF SWAP1 SWAP2 AND SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 ISZERO ISZERO DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x25A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x283 PUSH2 0x5F9 CALLDATASIZE PUSH1 0x4 PUSH2 0x34DB JUMP JUMPDEST PUSH2 0x1589 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x60A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x97 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x43C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x628 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x63C PUSH2 0x637 CALLDATASIZE PUSH1 0x4 PUSH2 0x345B JUMP JUMPDEST PUSH2 0x1725 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x25A SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x36FB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x658 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x250 PUSH2 0x667 CALLDATASIZE PUSH1 0x4 PUSH2 0x373B JUMP JUMPDEST PUSH4 0xFFFFFFFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH32 0x72AB1BC1039B79DC4724FFCA13DE82C96834302D3C7E0D4252232D4B2DD8F900 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x250 PUSH2 0x6B9 CALLDATASIZE PUSH1 0x4 PUSH2 0x3756 JUMP JUMPDEST PUSH2 0x1AD0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x283 PUSH2 0x6D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x345B JUMP JUMPDEST PUSH2 0x1B18 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x283 PUSH2 0x6F9 CALLDATASIZE PUSH1 0x4 PUSH2 0x345B JUMP JUMPDEST PUSH2 0x1BFF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x70A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x283 PUSH2 0x719 CALLDATASIZE PUSH1 0x4 PUSH2 0x31CC JUMP JUMPDEST PUSH2 0x1CFD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x250 PUSH1 0xC9 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x740 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x65 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x43C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x75E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x283 PUSH2 0x76D CALLDATASIZE PUSH1 0x4 PUSH2 0x31CC JUMP JUMPDEST PUSH2 0x1D9C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x77E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x792 PUSH2 0x78D CALLDATASIZE PUSH1 0x4 PUSH2 0x3756 JUMP JUMPDEST PUSH2 0x1DAD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x25A SWAP2 SWAP1 PUSH2 0x37A2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7BF PUSH2 0x7BA CALLDATASIZE PUSH1 0x4 PUSH2 0x3756 JUMP JUMPDEST PUSH2 0x224D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x25A SWAP2 SWAP1 PUSH2 0x37FA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x509 PUSH2 0x7E7 CALLDATASIZE PUSH1 0x4 PUSH2 0x31CC JUMP JUMPDEST PUSH1 0xCE PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x808 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x509 PUSH2 0x817 CALLDATASIZE PUSH1 0x4 PUSH2 0x383E JUMP JUMPDEST PUSH2 0x2508 JUMP JUMPDEST PUSH2 0x824 PUSH2 0x2526 JUMP JUMPDEST PUSH2 0x82D DUP2 PUSH2 0x259C JUMP JUMPDEST POP JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x899 JUMPI PUSH1 0x40 MLOAD PUSH32 0x91AC5E4F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x20 DUP8 ADD DUP1 CALLDATALOAD SWAP1 PUSH2 0x8B3 SWAP1 PUSH2 0x8AE SWAP1 DUP11 PUSH2 0x373B JUMP JUMPDEST PUSH2 0x26A4 JUMP JUMPDEST EQ PUSH2 0x90A JUMPI PUSH2 0x8C5 PUSH1 0x20 DUP9 ADD DUP9 PUSH2 0x373B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xC26BEBCC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x20 DUP9 ADD CALLDATALOAD PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x890 JUMP JUMPDEST PUSH2 0x919 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x271A JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x951 SWAP3 SWAP2 SWAP1 PUSH2 0x385A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCA PUSH1 0x20 SWAP1 DUP2 MSTORE SWAP1 DUP3 SWAP1 KECCAK256 PUSH1 0x60 DUP5 ADD DUP4 MSTORE DUP1 SLOAD PUSH1 0xFF AND ISZERO ISZERO DUP5 MSTORE PUSH1 0x1 DUP2 ADD SLOAD SWAP2 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP3 ADD MSTORE SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x9A9 PUSH2 0x2526 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH32 0x72AB1BC1039B79DC4724FFCA13DE82C96834302D3C7E0D4252232D4B2DD8F900 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP3 DUP4 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP3 MLOAD SWAP4 DUP5 MSTORE DUP4 ADD DUP5 SWAP1 MSTORE SWAP2 PUSH32 0x238399D427B947898EDB290F5FF0F9109849B1C3BA196A42E35F00C50A54B98B SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0xA41 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3F13 PUSH1 0x24 SWAP2 CODECOPY PUSH2 0x2A6E JUMP JUMPDEST PUSH2 0xA4A DUP3 PUSH2 0x2B3E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 ISZERO ISZERO DUP2 ISZERO ISZERO SUB PUSH2 0xAA3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8EEE990D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xCE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP7 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP3 MLOAD DUP6 ISZERO ISZERO DUP2 MSTORE SWAP2 DUP3 ADD MSTORE PUSH32 0x10C0E7519C24C8E42DBD4D2405E9976E893C51DF86614145B2758289F197EC3B SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH2 0xB47 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1C DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574436F6E66696741637469766528737472696E672C626F6F6C2900000000 DUP2 MSTORE POP PUSH2 0x2A6E JUMP JUMPDEST PUSH1 0x0 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xB59 SWAP3 SWAP2 SWAP1 PUSH2 0x385A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xCA PUSH1 0x20 MSTORE SWAP2 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 ADD SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xBB8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x80919D7B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xCA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP3 ISZERO ISZERO DUP2 ISZERO ISZERO SUB PUSH2 0xC07 JUMPI PUSH1 0x40 MLOAD PUSH32 0x1E852DC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xCA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP6 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD DUP4 SWAP1 PUSH32 0xCBA816B2FC5CD49700523A79B6E6C7DDA19292FBB932CCA77F7BCCB1E5004792 SWAP1 PUSH2 0xC5B SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP8 SWAP1 PUSH2 0x3895 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0xC8A JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0xCA4 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCA4 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0xD30 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x647920696E697469616C697A6564000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x890 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0xD70 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0xD79 DUP4 PUSH2 0x2B7E JUMP JUMPDEST PUSH2 0xD82 DUP3 PUSH2 0x2C26 JUMP JUMPDEST PUSH2 0x5460 PUSH1 0xC9 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0xA1C2964049F672E1CBA842D393F777ED468B9846EB7DE186D7E73665A326B301 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP1 ISZERO PUSH2 0xE1C JUMPI PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH2 0xA13 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x96C553EB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x65 SLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0xEEF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C6532537465703A2063616C6C6572206973206E6F742074686520 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E6577206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x890 JUMP JUMPDEST PUSH2 0x82D DUP2 PUSH2 0x2CC6 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xF41 JUMPI PUSH1 0x40 MLOAD PUSH32 0x341F61EC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP2 MLOAD PUSH2 0x180 DUP2 ADD SWAP1 SWAP3 MSTORE DUP1 SLOAD SWAP1 SWAP3 SWAP2 SWAP1 DUP4 SWAP1 DUP3 SWAP1 DUP3 SWAP1 PUSH2 0xF6F SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xF9B SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 ISZERO PUSH2 0xFE8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xFBD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xFE8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xFCB JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH1 0x60 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x1022 SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x104E SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 ISZERO PUSH2 0x109B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1070 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x109B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x107E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD DUP1 SLOAD PUSH2 0x10BE SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x10EA SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1137 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x110C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1137 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x111A JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD DUP1 SLOAD PUSH2 0x1150 SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x117C SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 ISZERO PUSH2 0x11C9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x119E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x11C9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x11AC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x7 DUP3 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x8 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x40 DUP4 ADD MSTORE PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x9 DUP3 ADD SLOAD PUSH4 0xFFFFFFFF AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA DUP3 ADD DUP1 SLOAD PUSH1 0xA0 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x123F SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x126B SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 ISZERO PUSH2 0x12B8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x128D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x12B8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x129B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 SWAP1 SWAP3 MSTORE POP POP POP PUSH1 0x80 DUP2 ADD MLOAD PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xCA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD SWAP3 SWAP4 POP SWAP1 SWAP2 TIMESTAMP SWAP1 PUSH1 0xFF AND PUSH2 0x1317 JUMPI PUSH1 0x40 MLOAD PUSH32 0xDEA2A21200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xB DUP7 ADD SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1332 JUMPI PUSH2 0x1332 PUSH2 0x3691 JUMP JUMPDEST EQ PUSH2 0x1369 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6196E5A300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xC9 SLOAD DUP6 PUSH1 0xC ADD SLOAD PUSH2 0x137B SWAP2 SWAP1 PUSH2 0x3937 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x13B4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x5F5F49800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH3 0x2A300 DUP6 PUSH1 0xE0 ADD MLOAD PUSH2 0x13C8 SWAP2 SWAP1 PUSH2 0x3937 JUMP JUMPDEST LT ISZERO PUSH2 0x1400 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC2A16F1400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xCD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP3 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x1443 JUMPI POP DUP2 DUP4 PUSH1 0x1 ADD SLOAD DUP3 PUSH2 0x1441 SWAP2 SWAP1 PUSH2 0x3937 JUMP JUMPDEST GT JUMPDEST ISZERO PUSH2 0x147A JUMPI PUSH1 0x40 MLOAD PUSH32 0x53F7A6EE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xCD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP9 DUP3 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP6 MSTORE SWAP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP5 SWAP1 SSTORE PUSH1 0xB DUP9 ADD DUP1 SLOAD PUSH1 0x2 PUSH1 0xFF NOT SWAP1 SWAP2 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0xD DUP10 ADD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND CALLER OR SWAP1 SSTORE DUP6 ADD SLOAD SWAP2 MLOAD PUSH32 0xBF63783900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP2 AND SWAP1 PUSH4 0xBF637839 SWAP1 PUSH2 0x1523 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x394A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x153D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1551 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD DUP10 SWAP3 POP PUSH32 0x27F52B13359F1687E1C3C6179B59FD5F217E9F580E76053C074A51D65DE2DAC7 SWAP2 POP PUSH1 0x0 SWAP1 LOG2 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x15AA PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2E DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3F37 PUSH1 0x2E SWAP2 CODECOPY PUSH2 0x2A6E JUMP JUMPDEST PUSH2 0x15B3 DUP3 PUSH2 0x2B3E JUMP JUMPDEST DUP3 ISZERO DUP1 PUSH2 0x15C0 JUMPI POP PUSH1 0x40 DUP4 GT JUMPDEST ISZERO PUSH2 0x15F6 JUMPI PUSH1 0x40 MLOAD PUSH31 0x64280000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x0 SUB PUSH2 0x1630 JUMPI PUSH1 0x40 MLOAD PUSH32 0xF6EA4E0600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x1642 SWAP3 SWAP2 SWAP1 PUSH2 0x385A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xCA PUSH1 0x20 DUP2 DUP2 MSTORE DUP5 DUP4 KECCAK256 PUSH1 0x60 DUP8 ADD DUP7 MSTORE PUSH1 0x1 DUP1 DUP9 MSTORE DUP3 DUP9 ADD DUP11 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP13 DUP2 AND DUP11 DUP11 ADD DUP2 DUP2 MSTORE SWAP8 DUP10 SWAP1 MSTORE SWAP6 SWAP1 SWAP5 MSTORE SWAP8 MLOAD DUP3 SLOAD PUSH1 0xFF NOT AND SWAP1 ISZERO ISZERO SWAP1 DUP2 OR DUP4 SSTORE SWAP8 MLOAD DUP2 DUP4 ADD DUP2 SWAP1 SSTORE SWAP5 MLOAD PUSH1 0x2 DUP4 ADD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND SWAP2 SWAP1 SWAP5 AND SWAP1 DUP2 OR SWAP1 SWAP4 SSTORE SWAP6 MLOAD SWAP5 SWAP8 POP SWAP6 SWAP2 SWAP5 SWAP1 SWAP4 DUP8 SWAP4 PUSH32 0x2CBEA64D1A2ECE216F5461B535881B82196130C6A988A9D3B323BD6D5CFE608E SWAP4 PUSH2 0x1715 SWAP4 DUP15 SWAP4 DUP15 SWAP4 SWAP3 DUP14 SWAP3 PUSH1 0xFF SWAP1 SWAP2 AND SWAP2 PUSH2 0x395D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xCB PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD PUSH1 0x40 MLOAD DUP1 PUSH2 0x180 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD DUP1 SLOAD PUSH2 0x1759 SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1785 SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 ISZERO PUSH2 0x17D2 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x17A7 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x17D2 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x17B5 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH1 0x60 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x180C SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1838 SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1885 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x185A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1885 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1868 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD DUP1 SLOAD PUSH2 0x18A8 SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x18D4 SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1921 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x18F6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1921 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1904 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD DUP1 SLOAD PUSH2 0x193A SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1966 SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 ISZERO PUSH2 0x19B3 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1988 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x19B3 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1996 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x7 DUP3 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x8 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x40 DUP4 ADD MSTORE PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x9 DUP3 ADD SLOAD PUSH4 0xFFFFFFFF AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA DUP3 ADD DUP1 SLOAD PUSH1 0xA0 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x1A29 SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1A55 SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1AA2 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1A77 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1AA2 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1A85 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 SWAP1 SWAP3 MSTORE POP POP POP PUSH1 0xB DUP3 ADD SLOAD PUSH1 0xC DUP4 ADD SLOAD PUSH1 0xD SWAP1 SWAP4 ADD SLOAD SWAP2 SWAP3 PUSH1 0xFF SWAP1 SWAP2 AND SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x1AE3 SWAP3 SWAP2 SWAP1 PUSH2 0x385A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCD PUSH1 0x20 SWAP1 DUP2 MSTORE DUP3 DUP3 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP4 MSTORE SWAP1 MSTORE KECCAK256 SLOAD SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1B61 JUMPI PUSH1 0x40 MLOAD PUSH32 0x341F61EC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 PUSH1 0xB DUP3 ADD SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1B8A JUMPI PUSH2 0x1B8A PUSH2 0x3691 JUMP JUMPDEST EQ PUSH2 0x1BC1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6196E5A300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xB DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x3 OR SWAP1 SSTORE PUSH1 0x40 MLOAD DUP3 SWAP1 PUSH32 0xA4273908B9362E571CACD5610879E3DFD7DDC7C9B3CE1D7EA7EA8B418691164 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH2 0x1C3D PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x17 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x73657452656D6F746544656C61792875696E7432353629000000000000000000 DUP2 MSTORE POP PUSH2 0x2A6E JUMP JUMPDEST DUP1 ISZERO DUP1 PUSH2 0x1C4D JUMPI POP PUSH3 0x2A300 DUP2 LT ISZERO JUMPDEST ISZERO PUSH2 0x1C84 JUMPI PUSH1 0x40 MLOAD PUSH32 0x545F991300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xC9 SLOAD DUP2 DUP2 SUB PUSH2 0x1CC0 JUMPI PUSH1 0x40 MLOAD PUSH32 0xBB45C33D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xC9 DUP3 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH32 0xA1C2964049F672E1CBA842D393F777ED468B9846EB7DE186D7E73665A326B301 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH2 0x1D05 PUSH2 0x2526 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xCA5EB5E100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH32 0x0 AND SWAP1 PUSH4 0xCA5EB5E1 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D81 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D95 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1DA4 PUSH2 0x2526 JUMP JUMPDEST PUSH2 0x82D DUP2 PUSH2 0x2CCF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x200 DUP2 ADD DUP3 MSTORE PUSH1 0x60 PUSH1 0x80 DUP3 ADD DUP2 DUP2 MSTORE PUSH1 0x0 PUSH1 0xA0 DUP5 ADD DUP2 SWAP1 MSTORE PUSH1 0xC0 DUP5 ADD DUP2 SWAP1 MSTORE PUSH1 0xE0 DUP5 ADD DUP4 SWAP1 MSTORE PUSH2 0x100 DUP5 ADD DUP2 SWAP1 MSTORE PUSH2 0x120 DUP5 ADD DUP4 SWAP1 MSTORE PUSH2 0x140 DUP5 ADD DUP4 SWAP1 MSTORE PUSH2 0x160 DUP5 ADD DUP2 SWAP1 MSTORE PUSH2 0x180 DUP5 ADD DUP2 SWAP1 MSTORE PUSH2 0x1A0 DUP5 ADD DUP2 SWAP1 MSTORE PUSH2 0x1C0 DUP5 ADD DUP2 SWAP1 MSTORE PUSH2 0x1E0 DUP5 ADD DUP4 SWAP1 MSTORE SWAP1 DUP4 MSTORE PUSH1 0x20 DUP4 ADD DUP2 SWAP1 MSTORE SWAP3 DUP3 ADD DUP4 SWAP1 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x1E40 SWAP3 SWAP2 SWAP1 PUSH2 0x385A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xCC PUSH1 0x20 SWAP1 DUP2 MSTORE DUP4 DUP3 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND DUP4 MSTORE DUP2 MSTORE DUP4 DUP3 KECCAK256 SLOAD DUP1 DUP4 MSTORE PUSH1 0xCB SWAP1 SWAP2 MSTORE SWAP1 DUP4 SWAP1 KECCAK256 PUSH2 0x200 DUP6 ADD SWAP1 SWAP4 MSTORE DUP3 SLOAD SWAP2 SWAP5 POP SWAP3 SWAP2 SWAP1 DUP3 SWAP1 PUSH1 0x80 DUP3 ADD SWAP1 DUP4 SWAP1 DUP3 SWAP1 DUP3 SWAP1 PUSH2 0x1E9D SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1EC9 SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1F16 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1EEB JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1F16 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1EF9 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH1 0x60 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x1F50 SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1F7C SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1FC9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1F9E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1FC9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1FAC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD DUP1 SLOAD PUSH2 0x1FEC SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2018 SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2065 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x203A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2065 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2048 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD DUP1 SLOAD PUSH2 0x207E SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x20AA SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 ISZERO PUSH2 0x20F7 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x20CC JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x20F7 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x20DA JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x7 DUP3 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x8 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x40 DUP4 ADD MSTORE PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x9 DUP3 ADD SLOAD PUSH4 0xFFFFFFFF AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA DUP3 ADD DUP1 SLOAD PUSH1 0xA0 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x216D SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2199 SWAP1 PUSH2 0x38BB JUMP JUMPDEST DUP1 ISZERO PUSH2 0x21E6 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x21BB JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x21E6 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x21C9 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 SWAP1 SWAP3 MSTORE POP POP POP DUP2 MSTORE PUSH1 0xB DUP3 ADD SLOAD PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2211 JUMPI PUSH2 0x2211 PUSH2 0x3691 JUMP JUMPDEST PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2222 JUMPI PUSH2 0x2222 PUSH2 0x3691 JUMP JUMPDEST DUP2 MSTORE PUSH1 0xC DUP3 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xD SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 SWAP1 SWAP2 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x2261 SWAP3 SWAP2 SWAP1 PUSH2 0x385A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xB0772D0B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x22AB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x22D3 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3A22 JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP2 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x22F3 JUMPI PUSH2 0x22F3 PUSH2 0x3998 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x231C JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0xCA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP3 SWAP4 POP SWAP1 SWAP2 PUSH1 0xFF AND PUSH2 0x2356 JUMPI POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE SWAP5 POP PUSH2 0x1B11 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x246A JUMPI PUSH1 0x0 DUP7 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x2375 JUMPI PUSH2 0x2375 PUSH2 0x3AD4 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x0 DUP11 DUP2 MSTORE PUSH1 0xCC DUP4 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP4 MSTORE DUP5 MSTORE DUP1 DUP3 KECCAK256 SLOAD DUP1 DUP4 MSTORE PUSH1 0xCB SWAP1 SWAP5 MSTORE SWAP1 KECCAK256 SWAP1 SWAP3 POP PUSH2 0x23B7 DUP3 PUSH2 0x2D58 JUMP JUMPDEST PUSH2 0x23C3 JUMPI POP POP POP PUSH2 0x2462 JUMP JUMPDEST PUSH1 0xC9 SLOAD DUP2 PUSH1 0xC ADD SLOAD PUSH2 0x23D5 SWAP2 SWAP1 PUSH2 0x3937 JUMP JUMPDEST TIMESTAMP LT ISZERO PUSH2 0x23E4 JUMPI POP POP POP PUSH2 0x2462 JUMP JUMPDEST PUSH1 0x0 DUP11 DUP2 MSTORE PUSH1 0xCD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x2424 JUMPI POP TIMESTAMP DUP7 PUSH1 0x1 ADD SLOAD DUP3 PUSH2 0x2422 SWAP2 SWAP1 PUSH2 0x3937 JUMP JUMPDEST GT JUMPDEST ISZERO PUSH2 0x2432 JUMPI POP POP POP POP PUSH2 0x2462 JUMP JUMPDEST DUP3 DUP9 DUP9 DUP2 MLOAD DUP2 LT PUSH2 0x2445 JUMPI PUSH2 0x2445 PUSH2 0x3AD4 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE DUP7 PUSH2 0x245A DUP2 PUSH2 0x3B03 JUMP JUMPDEST SWAP8 POP POP POP POP POP POP JUMPDEST PUSH1 0x1 ADD PUSH2 0x2359 JUMP JUMPDEST POP DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2484 JUMPI PUSH2 0x2484 PUSH2 0x3998 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x24AD JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP7 POP PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x24FA JUMPI DUP4 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x24CD JUMPI PUSH2 0x24CD PUSH2 0x3AD4 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP9 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x24E7 JUMPI PUSH2 0x24E7 PUSH2 0x3AD4 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x1 ADD PUSH2 0x24B3 JUMP JUMPDEST POP POP POP POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD DUP1 CALLDATALOAD SWAP1 PUSH2 0x251F SWAP1 PUSH2 0x667 SWAP1 DUP6 PUSH2 0x373B JUMP JUMPDEST EQ SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x259A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x890 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2632 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C696420616365737320636F6E74726F6C206D616E61676572206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x890 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 SWAP1 SWAP3 AND DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH32 0x66FD58E82F7B31A2A5C30E0888F3093EFE4E111B00CD2B0C31FE014601293AA0 SWAP2 ADD PUSH2 0x1CF1 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH32 0x72AB1BC1039B79DC4724FFCA13DE82C96834302D3C7E0D4252232D4B2DD8F900 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 KECCAK256 SLOAD DUP1 PUSH2 0x1B11 JUMPI PUSH1 0x40 MLOAD PUSH32 0xF6FF4FB700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH4 0xFFFFFFFF DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x890 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2728 DUP6 DUP8 ADD DUP8 PUSH2 0x3BC7 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD MLOAD SWAP1 SWAP2 POP TIMESTAMP PUSH1 0x0 DUP1 DUP4 DUP2 MSTORE PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0xB ADD SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2758 JUMPI PUSH2 0x2758 PUSH2 0x3691 JUMP JUMPDEST EQ PUSH2 0x27C7 JUMPI DUP3 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x60 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x277D SWAP2 SWAP1 PUSH2 0x3D2E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP4 PUSH32 0x6F2B8853CD821AEE89A0DC78A586658BCBD9C930D3D25BE1DE720FA0346BD73B DUP5 PUSH1 0x40 MLOAD PUSH2 0x27B7 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP PUSH2 0x919 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 DUP8 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x27FB DUP2 PUSH2 0x2D58 JUMP JUMPDEST ISZERO PUSH2 0x286B JUMPI DUP4 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x60 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x2820 SWAP2 SWAP1 PUSH2 0x3D2E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP3 PUSH32 0xA5CF028A8D57C7FAE7982AC3692BB4BDF11DDCCA7C93493242A00F4957A5EBB7 DUP6 PUSH1 0x40 MLOAD PUSH2 0x285A SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP PUSH2 0x919 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP5 MLOAD DUP6 SWAP1 DUP3 SWAP1 DUP2 SWAP1 PUSH2 0x288B SWAP1 DUP3 PUSH2 0x3D9A JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x1 DUP3 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x2 DUP3 ADD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x60 DUP3 ADD MLOAD PUSH1 0x3 DUP3 ADD SWAP1 PUSH2 0x28E8 SWAP1 DUP3 PUSH2 0x3D9A JUMP JUMPDEST POP PUSH1 0x80 DUP3 ADD MLOAD PUSH1 0x4 DUP3 ADD SSTORE PUSH1 0xA0 DUP3 ADD MLOAD PUSH1 0x5 DUP3 ADD SWAP1 PUSH2 0x2907 SWAP1 DUP3 PUSH2 0x3D9A JUMP JUMPDEST POP PUSH1 0xC0 DUP3 ADD MLOAD PUSH1 0x6 DUP3 ADD SWAP1 PUSH2 0x291C SWAP1 DUP3 PUSH2 0x3D9A JUMP JUMPDEST POP PUSH1 0xE0 DUP3 ADD MLOAD PUSH1 0x7 DUP3 ADD SSTORE PUSH2 0x100 DUP3 ADD MLOAD PUSH2 0x120 DUP4 ADD MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND OR PUSH1 0x8 DUP3 ADD SSTORE PUSH2 0x140 DUP3 ADD MLOAD PUSH1 0x9 DUP3 ADD DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x160 DUP3 ADD MLOAD PUSH1 0xA DUP3 ADD SWAP1 PUSH2 0x29BC SWAP1 DUP3 PUSH2 0x3D9A JUMP JUMPDEST POP POP POP PUSH1 0xB DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH1 0xC DUP2 ADD DUP4 SWAP1 SSTORE PUSH1 0x80 DUP6 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 DUP10 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP7 MSTORE SWAP2 SWAP1 SWAP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP8 SWAP1 SSTORE SWAP1 MLOAD PUSH1 0x60 DUP9 ADD MLOAD SWAP2 MLOAD SWAP3 AND SWAP2 PUSH2 0x2A1E SWAP2 SWAP1 PUSH2 0x3D2E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP6 PUSH32 0xD5A7F72731C4BC3D3A2DA54B4C53B429270F8D7F8C5B053D9EE98E072F875840 DUP7 PUSH1 0x40 MLOAD PUSH2 0x2A58 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0x40 MLOAD PUSH32 0x18C5E8AB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x2ABA SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x3E96 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2AD7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2AFB SWAP2 SWAP1 PUSH2 0x3EC0 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x2B3A JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH32 0x4A3FA29300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x890 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3EDD JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x82D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8579BEFE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2C15 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x890 JUMP JUMPDEST PUSH2 0x2C1D PUSH2 0x2DBF JUMP JUMPDEST PUSH2 0x82D DUP2 PUSH2 0x2E5E JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2CBD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x890 JUMP JUMPDEST PUSH2 0x82D DUP2 PUSH2 0x2EF5 JUMP JUMPDEST PUSH2 0x82D DUP2 PUSH2 0x2F95 JUMP JUMPDEST PUSH2 0x2CD7 PUSH2 0x2526 JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP1 SWAP2 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0x2D20 PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 SUB PUSH2 0x2D6A JUMPI POP PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 PUSH1 0xB DUP3 ADD SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2D93 JUMPI PUSH2 0x2D93 PUSH2 0x3691 JUMP JUMPDEST EQ PUSH2 0x2DA1 JUMPI POP PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x7 DUP2 ADD SLOAD TIMESTAMP SWAP1 PUSH2 0x2DB6 SWAP1 PUSH3 0x2A300 SWAP1 PUSH2 0x3937 JUMP JUMPDEST LT ISZERO SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2E56 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x890 JUMP JUMPDEST PUSH2 0x259A PUSH2 0x2FC6 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x824 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x890 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2F8C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x890 JUMP JUMPDEST PUSH2 0x82D DUP2 PUSH2 0x3066 JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND SWAP1 SSTORE PUSH2 0x82D DUP2 PUSH2 0x313D JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x305D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x890 JUMP JUMPDEST PUSH2 0x259A CALLER PUSH2 0x2CC6 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x30FD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x890 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1D05 JUMPI PUSH1 0x40 MLOAD PUSH32 0xB586360400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x82D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x31C7 DUP2 PUSH2 0x31A7 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x31DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1B11 DUP2 PUSH2 0x31A7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x31FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x3213 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x322B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x3243 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x3265 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x326F DUP10 DUP10 PUSH2 0x31E9 JUMP JUMPDEST SWAP7 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3293 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x329F DUP12 DUP4 DUP13 ADD PUSH2 0x3201 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP PUSH1 0xA0 DUP11 ADD CALLDATALOAD SWAP2 POP PUSH2 0x32B4 DUP3 PUSH2 0x31A7 JUMP JUMPDEST SWAP1 SWAP4 POP PUSH1 0xC0 DUP10 ADD CALLDATALOAD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0x32CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32D7 DUP11 DUP3 DUP12 ADD PUSH2 0x3201 JUMP JUMPDEST SWAP9 SWAP12 SWAP8 SWAP11 POP SWAP6 SWAP9 POP SWAP4 SWAP7 SWAP3 SWAP6 SWAP3 SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x32FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x330F DUP2 PUSH2 0x31A7 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x332D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3344 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3350 DUP6 DUP3 DUP7 ADD PUSH2 0x3201 JUMP JUMPDEST SWAP1 SWAP7 SWAP1 SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x31C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3383 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x338C DUP4 PUSH2 0x335C JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x82D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x33BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x33C6 DUP2 PUSH2 0x31A7 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x330F DUP2 PUSH2 0x339A JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x33EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3402 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x340E DUP7 DUP3 DUP8 ADD PUSH2 0x3201 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x3422 DUP2 PUSH2 0x339A JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3440 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x344B DUP2 PUSH2 0x31A7 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x330F DUP2 PUSH2 0x31A7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x346D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xA0 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x348A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3494 DUP7 DUP7 PUSH2 0x31E9 JUMP JUMPDEST SWAP4 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x34B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x34BC DUP8 DUP3 DUP9 ADD PUSH2 0x3201 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP POP PUSH1 0x80 DUP6 ADD CALLDATALOAD PUSH2 0x34D0 DUP2 PUSH2 0x31A7 JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP1 SWAP4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x34F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3508 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3514 DUP8 DUP3 DUP9 ADD PUSH2 0x3201 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x3528 DUP2 PUSH2 0x31A7 JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x40 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3553 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x353B JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x3574 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x3538 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 MLOAD DUP2 DUP6 MSTORE PUSH2 0x359E DUP3 DUP7 ADD DUP3 PUSH2 0x355C JUMP JUMPDEST SWAP2 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP6 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x35C5 PUSH1 0x40 DUP7 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0x35DD DUP3 DUP3 PUSH2 0x355C JUMP JUMPDEST SWAP2 POP POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP6 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0xA0 DUP7 ADD MSTORE PUSH2 0x3601 DUP3 DUP3 PUSH2 0x355C JUMP JUMPDEST SWAP2 POP POP PUSH1 0xC0 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0xC0 DUP7 ADD MSTORE PUSH2 0x361B DUP3 DUP3 PUSH2 0x355C JUMP JUMPDEST SWAP2 POP POP PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP6 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD PUSH2 0x3643 DUP3 DUP8 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP POP PUSH2 0x120 DUP4 DUP2 ADD MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP6 ADD MSTORE PUSH2 0x140 DUP1 DUP5 ADD MLOAD PUSH4 0xFFFFFFFF AND SWAP1 DUP6 ADD MSTORE PUSH2 0x160 DUP1 DUP5 ADD MLOAD DUP6 DUP4 SUB DUP3 DUP8 ADD MSTORE PUSH2 0x3687 DUP4 DUP3 PUSH2 0x355C JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x36F7 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x80 DUP2 MSTORE PUSH1 0x0 PUSH2 0x370E PUSH1 0x80 DUP4 ADD DUP8 PUSH2 0x3588 JUMP JUMPDEST SWAP1 POP PUSH2 0x371D PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x36C0 JUMP JUMPDEST DUP4 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x60 DUP4 ADD MSTORE SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x374D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B11 DUP3 PUSH2 0x335C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x376B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3782 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x378E DUP7 DUP3 DUP8 ADD PUSH2 0x3201 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x3422 DUP2 PUSH2 0x31A7 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD PUSH1 0x80 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x37BE PUSH1 0xA0 DUP5 ADD DUP3 PUSH2 0x3588 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP5 ADD MLOAD PUSH2 0x37D2 PUSH1 0x40 DUP6 ADD DUP3 PUSH2 0x36C0 JUMP JUMPDEST POP PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH1 0x60 DUP6 ADD MLOAD AND PUSH1 0x80 DUP5 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x3832 JUMPI DUP4 MLOAD DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x3816 JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3850 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B11 DUP4 DUP4 PUSH2 0x31E9 JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 ADD ADD MSTORE PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP5 ADD AND DUP5 ADD ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0x0 PUSH2 0x38A9 PUSH1 0x40 DUP4 ADD DUP6 DUP8 PUSH2 0x386A JUMP JUMPDEST SWAP1 POP DUP3 ISZERO ISZERO PUSH1 0x20 DUP4 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x38CF JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x31FB JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x99B JUMPI PUSH2 0x99B PUSH2 0x3908 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x1B11 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x3588 JUMP JUMPDEST PUSH1 0xA0 DUP2 MSTORE PUSH1 0x0 PUSH2 0x3971 PUSH1 0xA0 DUP4 ADD DUP9 DUP11 PUSH2 0x386A JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP7 SWAP1 SWAP7 MSTORE POP PUSH1 0x40 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE SWAP1 ISZERO ISZERO PUSH1 0x60 DUP4 ADD MSTORE ISZERO ISZERO PUSH1 0x80 SWAP1 SWAP2 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x180 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x39EB JUMPI PUSH2 0x39EB PUSH2 0x3998 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3A1A JUMPI PUSH2 0x3A1A PUSH2 0x3998 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3A35 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3A4D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3A61 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP2 DUP2 GT ISZERO PUSH2 0x3A73 JUMPI PUSH2 0x3A73 PUSH2 0x3998 JUMP JUMPDEST DUP1 PUSH1 0x5 SHL SWAP2 POP PUSH2 0x3A84 DUP5 DUP4 ADD PUSH2 0x39F1 JUMP JUMPDEST DUP2 DUP2 MSTORE SWAP2 DUP4 ADD DUP5 ADD SWAP2 DUP5 DUP2 ADD SWAP1 DUP9 DUP5 GT ISZERO PUSH2 0x3A9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 DUP6 ADD SWAP4 JUMPDEST DUP4 DUP6 LT ISZERO PUSH2 0x3AC8 JUMPI DUP5 MLOAD SWAP3 POP PUSH2 0x3AB8 DUP4 PUSH2 0x31A7 JUMP JUMPDEST DUP3 DUP3 MSTORE SWAP4 DUP6 ADD SWAP4 SWAP1 DUP6 ADD SWAP1 PUSH2 0x3AA3 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x3B34 JUMPI PUSH2 0x3B34 PUSH2 0x3908 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3B4C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3B66 JUMPI PUSH2 0x3B66 PUSH2 0x3998 JUMP JUMPDEST PUSH2 0x3B79 PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP5 ADD AND ADD PUSH2 0x39F1 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x3B8E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x31C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3BD9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3BF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH2 0x180 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x3C06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3C0E PUSH2 0x39C7 JUMP JUMPDEST DUP3 CALLDATALOAD DUP3 DUP2 GT ISZERO PUSH2 0x3C1D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3C29 DUP8 DUP3 DUP7 ADD PUSH2 0x3B3B JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x3C42 PUSH1 0x40 DUP5 ADD PUSH2 0x31BC JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD CALLDATALOAD DUP3 DUP2 GT ISZERO PUSH2 0x3C59 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3C65 DUP8 DUP3 DUP7 ADD PUSH2 0x3B3B JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD CALLDATALOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD CALLDATALOAD DUP3 DUP2 GT ISZERO PUSH2 0x3C87 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3C93 DUP8 DUP3 DUP7 ADD PUSH2 0x3B3B JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 DUP4 ADD CALLDATALOAD DUP3 DUP2 GT ISZERO PUSH2 0x3CAB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3CB7 DUP8 DUP3 DUP7 ADD PUSH2 0x3B3B JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 DUP4 ADD CALLDATALOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 PUSH2 0x3CD5 DUP2 DUP6 ADD PUSH2 0x31BC JUMP JUMPDEST SWAP1 DUP3 ADD MSTORE PUSH2 0x120 PUSH2 0x3CE7 DUP5 DUP3 ADD PUSH2 0x3BAB JUMP JUMPDEST SWAP1 DUP3 ADD MSTORE PUSH2 0x140 PUSH2 0x3CF9 DUP5 DUP3 ADD PUSH2 0x335C JUMP JUMPDEST SWAP1 DUP3 ADD MSTORE PUSH2 0x160 DUP4 DUP2 ADD CALLDATALOAD DUP4 DUP2 GT ISZERO PUSH2 0x3D11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3D1D DUP9 DUP3 DUP8 ADD PUSH2 0x3B3B JUMP JUMPDEST SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x3D40 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x3538 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0xE1C JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x3D73 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x3D92 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x3D7F JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3DB4 JUMPI PUSH2 0x3DB4 PUSH2 0x3998 JUMP JUMPDEST PUSH2 0x3DC8 DUP2 PUSH2 0x3DC2 DUP5 SLOAD PUSH2 0x38BB JUMP JUMPDEST DUP5 PUSH2 0x3D4A JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x3E1B JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x3DE5 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x3D92 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x3E4A JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x3E2B JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x3E86 JUMPI DUP8 DUP6 ADD MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x3EB8 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x355C JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3ED2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1B11 DUP2 PUSH2 0x339A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND DUP4 MSTORE DUP1 DUP6 AND PUSH1 0x20 DUP5 ADD MSTORE POP PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x3F09 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x355C JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP INVALID PUSH20 0x657457686974656C69737465644578656375746F PUSH19 0x28616464726573732C626F6F6C297365745269 PUSH20 0x6B506172616D65746572436F6E66696728737472 PUSH10 0x6E672C61646472657373 0x2C PUSH22 0x696E7432353629A26469706673582212204322AE777A 0xBA DUP1 0xDF 0xDE 0xAA 0xE4 0x4E SELFDESTRUCT DUP6 INVALID 0x29 SWAP5 TIMESTAMP 0x24 OR PUSH12 0x66BC6BACAFFA0EF429DFB364 PUSH20 0x6F6C634300081900330000000000000000000000 ","sourceMap":"1397:17976:62:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1620:62;;;;;;;;;;;;1676:6;1620:62;;;;;160:25:97;;;148:2;133:18;1620:62:62;;;;;;;;2103:147:57;;;;;;;;;;-1:-1:-1;2103:147:57;;;;;:::i;:::-;;:::i;:::-;;4921:708:11;;;;;;:::i;:::-;;:::i;2565:76:62:-;;;;;;;;;;-1:-1:-1;2565:76:62;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;1746:143:11;;;;;;;;;;-1:-1:-1;1746:143:11;;;1798:20;2836:34:97;;759:1:11;2901:2:97;2886:18;;2879:43;2772:18;1746:143:11;2629:299:97;14622:208:62;;;;;;;;;;-1:-1:-1;14622:208:62;;;;;:::i;:::-;;:::i;:::-;;;;3726:13:97;;3719:21;3712:29;3694:48;;3798:4;3786:17;;;3780:24;3758:20;;;3751:54;3853:17;;;3847:24;-1:-1:-1;;;;;3843:73:97;3821:20;;;3814:103;3682:2;3667:18;14622:208:62;3480:443:97;3028:202:10;;;;;;;;;;-1:-1:-1;3028:202:10;;;;;:::i;:::-;;:::i;8933:480:62:-;;;;;;;;;;-1:-1:-1;8933:480:62;;;;;:::i;:::-;;:::i;6688:603::-;;;;;;;;;;-1:-1:-1;6688:603:62;;;;;:::i;:::-;;:::i;4213:284::-;;;;;;;;;;-1:-1:-1;4213:284:62;;;;;:::i;:::-;;:::i;1760:38::-;;;;;;;;;;;;;;;;;;6073:10:97;6061:23;;;6043:42;;6031:2;6016:18;1760:38:62;5899:192:97;1035:46:10;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6289:55:97;;;6271:74;;6259:2;6244:18;1035:46:10;6096:255:97;19268:103:62;;;;;;;;;;;;;:::i;2010:206:25:-;;;;;;;;;;;;;:::i;10250:1406:62:-;;;;;;;;;;-1:-1:-1;10250:1406:62;;;;;:::i;:::-;;:::i;4060:128:11:-;;;;;;;;;;-1:-1:-1;4060:128:11;;;;;:::i;:::-;4149:12;4060:128;;;;;;;;6715:18:97;6703:31;;;6685:50;;6673:2;6658:18;4060:128:11;6541:200:97;2566:216:11;;;;;;;;;;-1:-1:-1;2566:216:11;;;;;:::i;:::-;-1:-1:-1;;;;;2751:24:11;;2770:4;2751:24;2566:216;;;;;;;;;;7585:14:97;;7578:22;7560:41;;7548:2;7533:18;2566:216:11;7420:187:97;1441:85:26;;;;;;;;;;-1:-1:-1;1513:6:26;;-1:-1:-1;;;;;1513:6:26;1441:85;;2381:84:62;;;;;;;;;;-1:-1:-1;2381:84:62;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;2055:63;;;;;;;;;;-1:-1:-1;2055:63:62;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2055:63:62;;;;;;;8249:14:97;;8242:22;8224:41;;8296:2;8281:18;;8274:34;;;;-1:-1:-1;;;;;8344:55:97;8324:18;;;8317:83;8212:2;8197:18;2055:63:62;8028:378:97;5154:961:62;;;;;;;;;;-1:-1:-1;5154:961:62;;;;;:::i;:::-;;:::i;2346:125:57:-;;;;;;;;;;-1:-1:-1;2443:21:57;;-1:-1:-1;;;;;2443:21:57;2346:125;;2207:61:62;;;;;;;;;;-1:-1:-1;2207:61:62;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;2342:163:10:-;;;;;;;;;;-1:-1:-1;2342:163:10;;;;;:::i;:::-;2485:13;;2400:7;2485:13;;;926:26;2485:13;;;;;;;2342:163;15663:206:62;;;;;;;;;;-1:-1:-1;15663:206:62;;;;;:::i;:::-;;:::i;12123:343::-;;;;;;;;;;-1:-1:-1;12123:343:62;;;;;:::i;:::-;;:::i;7816:488::-;;;;;;;;;;-1:-1:-1;7816:488:62;;;;;:::i;:::-;;:::i;4123:105:10:-;;;;;;;;;;-1:-1:-1;4123:105:10;;;;;:::i;:::-;;:::i;1907:26:62:-;;;;;;;;;;;;;;;;1123:99:25;;;;;;;;;;-1:-1:-1;1202:13:25;;-1:-1:-1;;;;;1202:13:25;1123:99;;16037:198:62;;;;;;;;;;-1:-1:-1;16037:198:62;;;;;:::i;:::-;;:::i;15090:301::-;;;;;;;;;;-1:-1:-1;15090:301:62;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;12840:1558::-;;;;;;;;;;-1:-1:-1;12840:1558:62;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2729:52::-;;;;;;;;;;-1:-1:-1;2729:52:62;;;;;:::i;:::-;;;;;;;;;;;;;;;;3324:149:11;;;;;;;;;;-1:-1:-1;3324:149:11;;;;;:::i;:::-;;:::i;2103:147:57:-;1334:13:26;:11;:13::i;:::-;2196:47:57::1;2221:21;2196:24;:47::i;:::-;2103:147:::0;:::o;4921:708:11:-;5234:8;-1:-1:-1;;;;;5226:31:11;5247:10;5226:31;5222:68;;5266:24;;;;;5279:10;5266:24;;;6271:74:97;6244:18;;5266:24:11;;;;;;;;5222:68;5426:14;;;;;;5390:32;;5407:14;;5426:7;5407:14;:::i;:::-;5390:16;:32::i;:::-;:50;5386:103;;5458:14;;;;:7;:14;:::i;:::-;5449:40;;;;;15400:10:97;15388:23;;;5449:40:11;;;15370:42:97;5474:14:11;;;;15428:18:97;;;15421:34;15343:18;;5449:40:11;15198:263:97;5386:103:11;5563:59;5574:7;5583:5;5590:8;;5600:9;5611:10;;5563;:59::i;:::-;4921:708;;;;;;;:::o;14622:208:62:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;14739:11:62;14769:10;;14753:28;;;;;;;:::i;:::-;;;;;;;;;;14798:25;;;;:20;:25;;;;;;;;14791:32;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14791:32:62;;;;;14753:28;-1:-1:-1;;14622:208:62;;;;;:::o;3028:202:10:-;1334:13:26;:11;:13::i;:::-;3167::10::1;::::0;::::1;3108:25;3167:13:::0;;;926:26;3167:13:::1;::::0;;;;;;;;:21;;;3203:20;;15370:42:97;;;15428:18;;15421:34;;;926:26:10;3203:20:::1;::::0;15343:18:97;3203:20:10::1;;;;;;;;3098:132;3028:202:::0;;:::o;8933:480:62:-;9017:59;;;;;;;;;;;;;;;;;;:19;:59::i;:::-;9086:30;9107:8;9086:20;:30::i;:::-;-1:-1:-1;;;;;9150:30:62;;9126:21;9150:30;;;:20;:30;;;;;;;;9194:28;;;;;;;9190:91;;9245:25;;;;;;;;;;;;;;9190:91;-1:-1:-1;;;;;9291:30:62;;;;;;:20;:30;;;;;;;;;:41;;-1:-1:-1;;9291:41:62;;;;;;;;;;9347:59;;15929:14:97;;15922:22;15904:41;;15961:18;;;15954:50;9347:59:62;;15877:18:97;9347:59:62;;;;;;;9007:406;8933:480;;:::o;6688:603::-;6773:51;;;;;;;;;;;;;;;;;;:19;:51::i;:::-;6834:11;6864:10;;6848:28;;;;;;;:::i;:::-;;;;;;;;;;;6940:1;6891:25;;;:20;:25;;;;;;:37;;;6848:28;;-1:-1:-1;;;;;;6891:37:62;6887:112;;6965:23;;;;;;;;;;;;;;6887:112;7009:19;7031:25;;;:20;:25;;;;;:32;;;7077:24;;;;;;;7073:85;;7124:23;;;;;;;;;;;;;;7073:85;7168:25;;;;:20;:25;;;;;;;:41;;-1:-1:-1;;7168:41:62;;;;;;;;;;7224:60;;7168:25;;7224:60;;;;7249:10;;;;7261:14;;7224:60;:::i;:::-;;;;;;;;6763:528;;6688:603;;;:::o;4213:284::-;3268:19:27;3291:13;;;;;;3290:14;;3336:34;;;;-1:-1:-1;3354:12:27;;3369:1;3354:12;;;;:16;3336:34;3335:108;;;-1:-1:-1;3415:4:27;1476:19:28;:23;;;3376:66:27;;-1:-1:-1;3425:12:27;;;;;:17;3376:66;3314:201;;;;;;;16881:2:97;3314:201:27;;;16863:21:97;16920:2;16900:18;;;16893:30;16959:34;16939:18;;;16932:62;17030:16;17010:18;;;17003:44;17064:19;;3314:201:27;16679:410:97;3314:201:27;3525:12;:16;;-1:-1:-1;;3525:16:27;3540:1;3525:16;;;3551:65;;;;3585:13;:20;;;;;;;;3551:65;4314:46:62::1;4338:21;4314:23;:46::i;:::-;4370:30;4390:9;4370:19;:30::i;:::-;4424:7;4410:11;:21:::0;;;4463:27:::1;::::0;160:25:97;;;4463:27:62::1;::::0;148:2:97;133:18;4463:27:62::1;;;;;;;3640:14:27::0;3636:99;;;3686:5;3670:21;;;;;;3710:14;;-1:-1:-1;17246:36:97;;3710:14:27;;17234:2:97;17219:18;3710:14:27;17094:194:97;3636:99:27;3258:483;4213:284:62;;:::o;19268:103::-;19335:29;;;;;;;;;;;;;;2010:206:25;1202:13;;929:10:29;;-1:-1:-1;;;;;1202:13:25;2103:24;;2095:78;;;;;;;17495:2:97;2095:78:25;;;17477:21:97;17534:2;17514:18;;;17507:30;17573:34;17553:18;;;17546:62;17644:11;17624:18;;;17617:39;17673:19;;2095:78:25;17293:405:97;2095:78:25;2183:26;2202:6;2183:18;:26::i;10250:1406:62:-;3332:10;3311:32;;;;:20;:32;;;;;;;;3306:86;;3366:15;;;;;;;;;;;;;;3306:86;10335:36:::1;10374:17:::0;;;:7:::1;:17;::::0;;;;;10401:53;;::::1;::::0;::::1;::::0;;;;;10374:17;;10335:36;10401:53;10374:17;;10401:53;;10374:17;;10401:53:::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;10401:53:62;;;-1:-1:-1;;10401:53:62::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;-1:-1:-1;;;;;10401:53:62::1;::::0;;;;::::1;::::0;::::1;::::0;;;;;;;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;10401:53:62;;;-1:-1:-1;;10401:53:62::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;-1:-1:-1;;;;;10401:53:62;::::1;::::0;;;;;;::::1;;;::::0;;;;::::1;::::0;::::1;::::0;::::1;;::::0;;;;::::1;::::0;::::1;::::0;;;;;;;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;10401:53:62;;;;-1:-1:-1;;;10488:20:62::1;::::0;::::1;::::0;10464:21:::1;10551:35:::0;;;:20:::1;:35;::::0;;;;10649:13;;10401:53;;-1:-1:-1;10488:20:62;;10618:15:::1;::::0;10649:13:::1;;10644:69;;10685:17;;;;;;;;;;;;;;10644:69;10748:20;10727:17;::::0;::::1;::::0;::::1;;:41;::::0;::::1;;;;;;:::i;:::-;;10723:95;;10791:16;;;;;;;;;;;;;;10723:95;10871:11;;10846:10;:22;;;:36;;;;:::i;:::-;10832:11;:50;10828:107;;;10905:19;;;;;;;;;;;;;;10828:107;11000:11;1676:6;10949;:16;;;:48;;;;:::i;:::-;:62;10945:117;;;11034:17;;;;;;;;;;;;;;10945:117;11163:25;11191:29:::0;;;:14:::1;:29;::::0;;;;;;;11221:13;;::::1;::::0;-1:-1:-1;;;;;11191:44:62::1;::::0;;;;;;;;11249:22;;;::::1;::::0;:77:::1;;;11314:11;11296:6;:15;;;11276:17;:35;;;;:::i;:::-;:49;11249:77;11245:134;;;11349:19;;;;;;;;;;;;;;11245:134;11389:29;::::0;;;:14:::1;:29;::::0;;;;;;;11419:13;;::::1;::::0;-1:-1:-1;;;;;11389:44:62;;::::1;::::0;;;;;;;;:58;;;11457:17:::1;::::0;::::1;:41:::0;;11477:21:::1;-1:-1:-1::0;;11457:41:62;;::::1;::::0;::::1;::::0;;;11508:19:::1;::::0;::::1;:32:::0;;;::::1;11530:10;11508:32;::::0;;11564:18;::::1;::::0;11551:52;;;;;11564:18;::::1;::::0;11551:44:::1;::::0;:52:::1;::::0;11419:13;;11551:52:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;11619:30:62::1;::::0;11640:8;;-1:-1:-1;11619:30:62::1;::::0;-1:-1:-1;11619:30:62;;::::1;10325:1331;;;;;;10250:1406:::0;:::o;5154:961::-;5272:69;;;;;;;;;;;;;;;;;;:19;:69::i;:::-;5351:33;5372:11;5351:20;:33::i;:::-;5399:29;;;:62;;-1:-1:-1;5459:2:62;5432:29;;5399:62;5395:119;;;5484:19;;;;;;;;;;;;;;5395:119;5528:8;5540:1;5528:13;5524:68;;5564:17;;;;;;;;;;;;;;5524:68;5602:11;5632:10;;5616:28;;;;;;;:::i;:::-;;;;;;;;;;5654:38;5695:25;;;:20;:25;;;;;;;5759:79;;;;;5785:4;5759:79;;;;;;;;;-1:-1:-1;;;;;5759:79:62;;;;;;;;;5731:25;;;;;;;;:107;;;;-1:-1:-1;;5731:107:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5854:254;;5616:28;;-1:-1:-1;5695:25:62;5759:79;;5731:107;;5616:28;;5854:254;;;;5911:10;;;;5731:107;5759:79;;5731:107;6059:21;;;;5854:254;:::i;:::-;;;;;;;;5262:853;;5154:961;;;;:::o;2207:61::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2207:61:62;;;-1:-1:-1;;2207:61:62;;;;;;;;;;;;-1:-1:-1;;;;;2207:61:62;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2207:61:62;;;-1:-1:-1;;2207:61:62;;;;;;;;;;;;-1:-1:-1;;;;;2207:61:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2207:61:62;;;;-1:-1:-1;;;2207:61:62;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2207:61:62;;:::o;15663:206::-;15757:7;15776:11;15806:10;;15790:28;;;;;;;:::i;:::-;;;;;;;;;;;15835:19;;;;:14;:19;;;;;;;-1:-1:-1;;;;;15835:27:62;;;;;;;;;-1:-1:-1;;15663:206:62;;;;;;:::o;12123:343::-;3332:10;3311:32;;;;:20;:32;;;;;;;;3306:86;;3366:15;;;;;;;;;;;;;;3306:86;12207:36:::1;12246:17:::0;;;:7:::1;:17;::::0;;;;12299:20:::1;12278:17;::::0;::::1;::::0;::::1;;:41;::::0;::::1;;;;;;:::i;:::-;;12274:95;;12342:16;;;;;;;;;;;;;;12274:95;12379:17;::::0;::::1;:41:::0;;-1:-1:-1;;12379:41:62::1;12399:21;12379:41;::::0;;12435:24:::1;::::0;12450:8;;12435:24:::1;::::0;-1:-1:-1;;12435:24:62::1;12197:269;12123:343:::0;:::o;7816:488::-;7883:46;;;;;;;;;;;;;;;;;;:19;:46::i;:::-;7944:19;;;:70;;;1676:6;7967:14;:47;;7944:70;7940:128;;;8037:20;;;;;;;;;;;;;;7940:128;8102:11;;8127:31;;;8123:91;;8181:22;;;;;;;;;;;;;;8123:91;8224:11;:28;;;8267:30;;160:25:97;;;8267:30:62;;148:2:97;133:18;8267:30:62;;;;;;;;7873:431;7816:488;:::o;4123:105:10:-;1334:13:26;:11;:13::i;:::-;4190:31:10::1;::::0;;;;-1:-1:-1;;;;;6289:55:97;;;4190:31:10::1;::::0;::::1;6271:74:97::0;4190:8:10::1;:20;::::0;::::1;::::0;6244:18:97;;4190:31:10::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4123:105:::0;:::o;16037:198:62:-;1334:13:26;:11;:13::i;:::-;16177:51:62::1;16219:8;16177:41;:51::i;15090:301::-:0;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15244:11:62;15274:10;;15258:28;;;;;;;:::i;:::-;;;;;;;;;;15296:16;15315:27;;;:22;:27;;;;;;;-1:-1:-1;;;;;15315:35:62;;;;;;;;;;15367:17;;;:7;:17;;;;;;;15360:24;;;;;;;;15258:28;;-1:-1:-1;15315:35:62;15258:28;15367:17;15258:28;;15360:24;;;;15367:17;;15360:24;;15367:17;;15360:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;15360:24:62;;;-1:-1:-1;;15360:24:62;;;;;;;;;;;;-1:-1:-1;;;;;15360:24:62;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;15360:24:62;;;-1:-1:-1;;15360:24:62;;;;;;;;;;;;-1:-1:-1;;;;;15360:24:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;15360:24:62;;;;-1:-1:-1;;;15360:24:62;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15360:24:62;;;;;;;15090:301;-1:-1:-1;;;;;;15090:301:62:o;12840:1558::-;12964:34;13010:21;13050:10;;13034:28;;;;;;;:::i;:::-;;;;;;;;13010:52;;13072:24;13125:11;-1:-1:-1;;;;;13099:52:62;;:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13099:54:62;;;;;;;;;;;;:::i;:::-;13184:14;;13072:81;;-1:-1:-1;13163:18:62;13184:14;13237:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13237:25:62;-1:-1:-1;13272:13:62;13332:35;;;:20;:35;;;;;13383:13;;13208:54;;-1:-1:-1;13272:13:62;;13383;;13378:43;;-1:-1:-1;;13405:16:62;;;13419:1;13405:16;;;;;;;;;-1:-1:-1;13398:23:62;;-1:-1:-1;;;;13398:23:62;13378:43;13437:9;13432:804;13456:10;13452:1;:14;13432:804;;;13487:14;13504:7;13512:1;13504:10;;;;;;;;:::i;:::-;;;;;;;;;;;;13528:26;13557:37;;;:22;:37;;;;;;-1:-1:-1;;;;;13557:45:62;;;;;;;;;;13655:27;;;:7;:27;;;;;13504:10;;-1:-1:-1;13702:39:62;13557:45;13702:19;:39::i;:::-;13697:54;;13743:8;;;;;13697:54;13850:11;;13825:10;:22;;;:36;;;;:::i;:::-;13807:15;:54;13803:68;;;13863:8;;;;;13803:68;13978:25;14006:29;;;:14;:29;;;;;;;;-1:-1:-1;;;;;14006:37:62;;;;;;;;;;14061:22;;;;;:81;;;14126:15;14108:6;:15;;;14088:17;:35;;;;:::i;:::-;:53;14061:81;14057:95;;;14144:8;;;;;;14057:95;14186:18;14167:9;14177:5;14167:16;;;;;;;;:::i;:::-;;;;;;;;;;:37;14218:7;;;;:::i;:::-;;;;13473:763;;;;13432:804;13468:3;;13432:804;;;;14280:5;14266:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14266:20:62;;14246:40;;14301:9;14296:96;14320:5;14316:1;:9;14296:96;;;14369:9;14379:1;14369:12;;;;;;;;:::i;:::-;;;;;;;14346:17;14364:1;14346:20;;;;;;;;:::i;:::-;;;;;;;;;;:35;14327:3;;14296:96;;;;13000:1398;;;;;;12840:1558;;;;;:::o;3324:149:11:-;3406:4;3453:13;;;;;;3429:20;;3435:13;;3453:6;3435:13;:::i;3429:20::-;:37;;3324:149;-1:-1:-1;;3324:149:11:o;1599:130:26:-;1513:6;;-1:-1:-1;;;;;1513:6:26;929:10:29;1662:23:26;1654:68;;;;;;;21719:2:97;1654:68:26;;;21701:21:97;;;21738:18;;;21731:30;21797:34;21777:18;;;21770:62;21849:18;;1654:68:26;21517:356:97;1654:68:26;1599:130::o;2642:425:57:-;-1:-1:-1;;;;;2734:44:57;;2726:94;;;;;;;22080:2:97;2726:94:57;;;22062:21:97;22119:2;22099:18;;;22092:30;22158:34;22138:18;;;22131:62;22229:7;22209:18;;;22202:35;22254:19;;2726:94:57;21878:401:97;2726:94:57;2872:21;;;-1:-1:-1;;;;;2904:70:57;;;;;;;;;;;2989:71;;;2872:21;;;;22519:34:97;;;22584:2;22569:18;;22562:43;;;;2989:71:57;;22431:18:97;2989:71:57;22284:327:97;3528:257:10;3691:13;;;3598:7;3691:13;;;926:26;3691:13;;;;;;;;;3714:43;;3745:12;;;;;6073:10:97;6061:23;;3745:12:10;;;6043:42:97;6016:18;;3745:12:10;5899:192:97;17021:1318:62;17144:33;17180:42;;;;17191:7;17180:42;:::i;:::-;17248:15;;;;17144:78;;-1:-1:-1;17295:15:62;17232:13;17416:14;;;;:7;:14;;;;;:21;;;;;:42;;;;;;;;:::i;:::-;;17412:175;;17542:6;:13;;;-1:-1:-1;;;;;17479:77:62;17523:6;:17;;;17479:77;;;;;;:::i;:::-;;;;;;;;17503:5;17479:77;17510:11;17479:77;;;;160:25:97;;148:2;133:18;;14:177;17479:77:62;;;;;;;;17570:7;;;;;17412:175;17731:20;;;;17678:27;17708:44;;;:22;:44;;;;;;;;17753:13;;;;-1:-1:-1;;;;;17708:59:62;;;;;;;;;17781:40;17708:59;17781:19;:40::i;:::-;17777:192;;;17924:6;:13;;;-1:-1:-1;;;;;17842:96:62;17905:6;:17;;;17842:96;;;;;;:::i;:::-;;;;;;;;17871:19;17842:96;17892:11;17842:96;;;;160:25:97;;148:2;133:18;;14:177;17842:96:62;;;;;;;;17952:7;;;;;;17777:192;17979:36;18018:14;;;:7;:14;;;;;18042:26;;18062:6;;18018:14;;;;18042:26;;18018:14;18042:26;:::i;:::-;-1:-1:-1;18042:26:62;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18042:26:62;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;18042:26:62;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;18042:26:62;;;;;;;;;;;;:::i;:::-;-1:-1:-1;18042:26:62;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18042:26:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;18078:17:62;;;:40;;-1:-1:-1;;18078:40:62;18098:20;18078:40;;;18128:22;;;:36;;;18197:20;;;;-1:-1:-1;18174:44:62;;;:22;:44;;;;;;;;18219:13;;;;;-1:-1:-1;;;;;18174:59:62;;;;;;;;;;;;;:67;;;18318:13;;18299:17;;;;18256:76;;;;;;;18299:17;18256:76;:::i;:::-;;;;;;;;18279:5;18256:76;18286:11;18256:76;;;;160:25:97;;148:2;133:18;;14:177;18256:76:62;;;;;;;;17134:1205;;;;;17021:1318;;;;;;;:::o;3204:282:57:-;3305:21;;:60;;;;;3282:20;;-1:-1:-1;;;;;3305:21:57;;:37;;:60;;3343:10;;3355:9;;3305:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3282:83;;3381:15;3376:104;;3432:10;3452:4;3459:9;3419:50;;;;;;;;;;;;;:::i;3376:104::-;3272:214;3204:282;:::o;485:136:47:-;-1:-1:-1;;;;;548:22:47;;544:75;;589:23;;;;;;;;;;;;;;1420:194:57;5363:13:27;;;;;;;5355:69;;;;;;;30618:2:97;5355:69:27;;;30600:21:97;30657:2;30637:18;;;30630:30;30696:34;30676:18;;;30669:62;30767:13;30747:18;;;30740:41;30798:19;;5355:69:27;30416:407:97;5355:69:27;1520:21:57::1;:19;:21::i;:::-;1551:56;1585:21;1551:33;:56::i;1041:117:11:-:0;5363:13:27;;;;;;;5355:69;;;;;;;30618:2:97;5355:69:27;;;30600:21:97;30657:2;30637:18;;;30630:30;30696:34;30676:18;;;30669:62;30767:13;30747:18;;;30740:41;30798:19;;5355:69:27;30416:407:97;5355:69:27;1125:26:11::1;1141:9;1125:15;:26::i;16410:178:62:-:0;16529:52;16572:8;16529:42;:52::i;1415:178:25:-;1334:13:26;:11;:13::i;:::-;1504::25::1;:24:::0;;-1:-1:-1;;;;;1504:24:25;::::1;::::0;;;::::1;::::0;::::1;::::0;;;1568:7:::1;1513:6:26::0;;-1:-1:-1;;;;;1513:6:26;;1441:85;1568:7:25::1;-1:-1:-1::0;;;;;1543:43:25::1;;;;;;;;;;;1415:178:::0;:::o;18706:433:62:-;18787:4;18807:19;18830:1;18807:24;18803:42;;-1:-1:-1;18840:5:62;;18706:433;-1:-1:-1;18706:433:62:o;18803:42::-;18880:33;18916:28;;;:7;:28;;;;;18977:20;18959:14;;;;;;:38;;;;;;;;:::i;:::-;;18955:56;;-1:-1:-1;19006:5:62;;18706:433;-1:-1:-1;;18706:433:62:o;18955:56::-;19057:24;;;;19117:15;;19057:56;;1676:6;;19057:56;:::i;:::-;:75;;;18706:433;-1:-1:-1;;;18706:433:62:o;738:100:25:-;5363:13:27;;;;;;;5355:69;;;;;;;30618:2:97;5355:69:27;;;30600:21:97;30657:2;30637:18;;;30630:30;30696:34;30676:18;;;30669:62;30767:13;30747:18;;;30740:41;30798:19;;5355:69:27;30416:407:97;5355:69:27;805:26:25::1;:24;:26::i;1620:164:57:-:0;5363:13:27;;;;;;;5355:69;;;;;;;30618:2:97;5355:69:27;;;30600:21:97;30657:2;30637:18;;;30630:30;30696:34;30676:18;;;30669:62;30767:13;30747:18;;;30740:41;30798:19;;5355:69:27;30416:407:97;1787:123:10;5363:13:27;;;;;;;5355:69;;;;;;;30618:2:97;5355:69:27;;;30600:21:97;30657:2;30637:18;;;30630:30;30696:34;30676:18;;;30669:62;30767:13;30747:18;;;30740:41;30798:19;;5355:69:27;30416:407:97;5355:69:27;1867:36:10::1;1893:9;1867:25;:36::i;1777:153:25:-:0;1866:13;1859:20;;;;;;1889:34;1914:8;1889:24;:34::i;1104:111:26:-;5363:13:27;;;;;;;5355:69;;;;;;;30618:2:97;5355:69:27;;;30600:21:97;30657:2;30637:18;;;30630:30;30696:34;30676:18;;;30669:62;30767:13;30747:18;;;30740:41;30798:19;;5355:69:27;30416:407:97;5355:69:27;1176:32:26::1;929:10:29::0;1176:18:26::1;:32::i;1916:191:10:-:0;5363:13:27;;;;;;;5355:69;;;;;;;30618:2:97;5355:69:27;;;30600:21:97;30657:2;30637:18;;;30630:30;30696:34;30676:18;;;30669:62;30767:13;30747:18;;;30740:41;30798:19;;5355:69:27;30416:407:97;5355:69:27;-1:-1:-1;;;;;2010:23:10;::::1;2006:53;;2042:17;;;;;;;;;;;;;;2673:187:26::0;2765:6;;;-1:-1:-1;;;;;2781:17:26;;;;;;;;;;;2813:40;;2765:6;;;2781:17;2765:6;;2813:40;;2746:16;;2813:40;2736:124;2673:187;:::o;196:154:97:-;-1:-1:-1;;;;;275:5:97;271:54;264:5;261:65;251:93;;340:1;337;330:12;355:134;423:20;;452:31;423:20;452:31;:::i;:::-;355:134;;;:::o;494:247::-;553:6;606:2;594:9;585:7;581:23;577:32;574:52;;;622:1;619;612:12;574:52;661:9;648:23;680:31;705:5;680:31;:::i;746:154::-;805:5;850:2;841:6;836:3;832:16;828:25;825:45;;;866:1;863;856:12;825:45;-1:-1:-1;888:6:97;746:154;-1:-1:-1;746:154:97:o;905:347::-;956:8;966:6;1020:3;1013:4;1005:6;1001:17;997:27;987:55;;1038:1;1035;1028:12;987:55;-1:-1:-1;1061:20:97;;1104:18;1093:30;;1090:50;;;1136:1;1133;1126:12;1090:50;1173:4;1165:6;1161:17;1149:29;;1225:3;1218:4;1209:6;1201;1197:19;1193:30;1190:39;1187:59;;;1242:1;1239;1232:12;1187:59;905:347;;;;;:::o;1257:1047::-;1399:6;1407;1415;1423;1431;1439;1447;1500:3;1488:9;1479:7;1475:23;1471:33;1468:53;;;1517:1;1514;1507:12;1468:53;1540;1585:7;1574:9;1540:53;:::i;:::-;1530:63;;1640:2;1629:9;1625:18;1612:32;1602:42;;1695:3;1684:9;1680:19;1667:33;1719:18;1760:2;1752:6;1749:14;1746:34;;;1776:1;1773;1766:12;1746:34;1815:58;1865:7;1856:6;1845:9;1841:22;1815:58;:::i;:::-;1892:8;;-1:-1:-1;1789:84:97;-1:-1:-1;1977:3:97;1962:19;;1949:33;;-1:-1:-1;1991:31:97;1949:33;1991:31;:::i;:::-;2041:5;;-1:-1:-1;2099:3:97;2084:19;;2071:33;;2116:16;;;2113:36;;;2145:1;2142;2135:12;2113:36;;2184:60;2236:7;2225:8;2214:9;2210:24;2184:60;:::i;:::-;1257:1047;;;;-1:-1:-1;1257:1047:97;;-1:-1:-1;1257:1047:97;;;;2158:86;;-1:-1:-1;;;1257:1047:97:o;2309:315::-;2377:6;2385;2438:2;2426:9;2417:7;2413:23;2409:32;2406:52;;;2454:1;2451;2444:12;2406:52;2490:9;2477:23;2467:33;;2550:2;2539:9;2535:18;2522:32;2563:31;2588:5;2563:31;:::i;:::-;2613:5;2603:15;;;2309:315;;;;;:::o;2933:410::-;3004:6;3012;3065:2;3053:9;3044:7;3040:23;3036:32;3033:52;;;3081:1;3078;3071:12;3033:52;3121:9;3108:23;3154:18;3146:6;3143:30;3140:50;;;3186:1;3183;3176:12;3140:50;3225:58;3275:7;3266:6;3255:9;3251:22;3225:58;:::i;:::-;3302:8;;3199:84;;-1:-1:-1;2933:410:97;-1:-1:-1;;;;2933:410:97:o;3928:163::-;3995:20;;4055:10;4044:22;;4034:33;;4024:61;;4081:1;4078;4071:12;4096:252;4163:6;4171;4224:2;4212:9;4203:7;4199:23;4195:32;4192:52;;;4240:1;4237;4230:12;4192:52;4263:28;4281:9;4263:28;:::i;:::-;4253:38;4338:2;4323:18;;;;4310:32;;-1:-1:-1;;;4096:252:97:o;4353:118::-;4439:5;4432:13;4425:21;4418:5;4415:32;4405:60;;4461:1;4458;4451:12;4476:382;4541:6;4549;4602:2;4590:9;4581:7;4577:23;4573:32;4570:52;;;4618:1;4615;4608:12;4570:52;4657:9;4644:23;4676:31;4701:5;4676:31;:::i;:::-;4726:5;-1:-1:-1;4783:2:97;4768:18;;4755:32;4796:30;4755:32;4796:30;:::i;4863:539::-;4940:6;4948;4956;5009:2;4997:9;4988:7;4984:23;4980:32;4977:52;;;5025:1;5022;5015:12;4977:52;5065:9;5052:23;5098:18;5090:6;5087:30;5084:50;;;5130:1;5127;5120:12;5084:50;5169:58;5219:7;5210:6;5199:9;5195:22;5169:58;:::i;:::-;5246:8;;-1:-1:-1;5143:84:97;-1:-1:-1;;5331:2:97;5316:18;;5303:32;5344:28;5303:32;5344:28;:::i;:::-;5391:5;5381:15;;;4863:539;;;;;:::o;5407:388::-;5475:6;5483;5536:2;5524:9;5515:7;5511:23;5507:32;5504:52;;;5552:1;5549;5542:12;5504:52;5591:9;5578:23;5610:31;5635:5;5610:31;:::i;:::-;5660:5;-1:-1:-1;5717:2:97;5702:18;;5689:32;5730:33;5689:32;5730:33;:::i;6356:180::-;6415:6;6468:2;6456:9;6447:7;6443:23;6439:32;6436:52;;;6484:1;6481;6474:12;6436:52;-1:-1:-1;6507:23:97;;6356:180;-1:-1:-1;6356:180:97:o;6746:669::-;6859:6;6867;6875;6883;6936:3;6924:9;6915:7;6911:23;6907:33;6904:53;;;6953:1;6950;6943:12;6904:53;6976;7021:7;7010:9;6976:53;:::i;:::-;6966:63;;7080:2;7069:9;7065:18;7052:32;7107:18;7099:6;7096:30;7093:50;;;7139:1;7136;7129:12;7093:50;7178:58;7228:7;7219:6;7208:9;7204:22;7178:58;:::i;:::-;7255:8;;-1:-1:-1;7152:84:97;-1:-1:-1;;7340:3:97;7325:19;;7312:33;7354:31;7312:33;7354:31;:::i;:::-;6746:669;;;;-1:-1:-1;6746:669:97;;-1:-1:-1;;6746:669:97:o;8411:613::-;8500:6;8508;8516;8524;8577:2;8565:9;8556:7;8552:23;8548:32;8545:52;;;8593:1;8590;8583:12;8545:52;8633:9;8620:23;8666:18;8658:6;8655:30;8652:50;;;8698:1;8695;8688:12;8652:50;8737:58;8787:7;8778:6;8767:9;8763:22;8737:58;:::i;:::-;8814:8;;-1:-1:-1;8711:84:97;-1:-1:-1;;8899:2:97;8884:18;;8871:32;8912:31;8871:32;8912:31;:::i;:::-;8411:613;;;;-1:-1:-1;8962:5:97;;9014:2;8999:18;8986:32;;-1:-1:-1;;8411:613:97:o;9293:250::-;9378:1;9388:113;9402:6;9399:1;9396:13;9388:113;;;9478:11;;;9472:18;9459:11;;;9452:39;9424:2;9417:10;9388:113;;;-1:-1:-1;;9535:1:97;9517:16;;9510:27;9293:250::o;9548:330::-;9590:3;9628:5;9622:12;9655:6;9650:3;9643:19;9671:76;9740:6;9733:4;9728:3;9724:14;9717:4;9710:5;9706:16;9671:76;:::i;:::-;9792:2;9780:15;-1:-1:-1;;9776:88:97;9767:98;;;;9867:4;9763:109;;9548:330;-1:-1:-1;;9548:330:97:o;9998:1592::-;10060:3;10088:6;10129:5;10123:12;10156:2;10151:3;10144:15;10180:45;10221:2;10216:3;10212:12;10198;10180:45;:::i;:::-;10168:57;;;10274:4;10267:5;10263:16;10257:23;10250:4;10245:3;10241:14;10234:47;10329:4;10322:5;10318:16;10312:23;10344:50;10388:4;10383:3;10379:14;10363;-1:-1:-1;;;;;3414:54:97;3402:67;;3348:127;10344:50;;10442:4;10435:5;10431:16;10425:23;10490:3;10484:4;10480:14;10473:4;10468:3;10464:14;10457:38;10518:39;10552:4;10536:14;10518:39;:::i;:::-;10504:53;;;10606:4;10599:5;10595:16;10589:23;10582:4;10577:3;10573:14;10566:47;10661:4;10654:5;10650:16;10644:23;10711:3;10703:6;10699:16;10692:4;10687:3;10683:14;10676:40;10739:41;10773:6;10757:14;10739:41;:::i;:::-;10725:55;;;10828:4;10821:5;10817:16;10811:23;10878:3;10870:6;10866:16;10859:4;10854:3;10850:14;10843:40;10906:41;10940:6;10924:14;10906:41;:::i;:::-;10892:55;;;10996:4;10989:5;10985:16;10979:23;10972:4;10967:3;10963:14;10956:47;11022:6;11076:2;11069:5;11065:14;11059:21;11089:48;11133:2;11128:3;11124:12;11108:14;-1:-1:-1;;;;;3414:54:97;3402:67;;3348:127;11089:48;-1:-1:-1;;11156:6:97;11199:14;;;11193:21;9959:26;9948:38;11257:12;;;9936:51;11289:6;11332:14;;;11326:21;5876:10;5865:22;11390:12;;;5853:35;11422:6;11465:14;;;11459:21;11510:16;;;11496:12;;;11489:38;11543:41;11514:6;11459:21;11543:41;:::i;:::-;11536:48;9998:1592;-1:-1:-1;;;;;;9998:1592:97:o;11595:184::-;11647:77;11644:1;11637:88;11744:4;11741:1;11734:15;11768:4;11765:1;11758:15;11784:297;11868:1;11861:5;11858:12;11848:200;;11904:77;11901:1;11894:88;12005:4;12002:1;11995:15;12033:4;12030:1;12023:15;11848:200;12057:18;;11784:297::o;12086:598::-;12391:3;12380:9;12373:22;12354:4;12412:66;12473:3;12462:9;12458:19;12450:6;12412:66;:::i;:::-;12404:74;;12487:56;12539:2;12528:9;12524:18;12516:6;12487:56;:::i;:::-;12579:6;12574:2;12563:9;12559:18;12552:34;-1:-1:-1;;;;;12626:6:97;12622:55;12617:2;12606:9;12602:18;12595:83;12086:598;;;;;;;:::o;12689:184::-;12747:6;12800:2;12788:9;12779:7;12775:23;12771:32;12768:52;;;12816:1;12813;12806:12;12768:52;12839:28;12857:9;12839:28;:::i;13060:545::-;13140:6;13148;13156;13209:2;13197:9;13188:7;13184:23;13180:32;13177:52;;;13225:1;13222;13215:12;13177:52;13265:9;13252:23;13298:18;13290:6;13287:30;13284:50;;;13330:1;13327;13320:12;13284:50;13369:58;13419:7;13410:6;13399:9;13395:22;13369:58;:::i;:::-;13446:8;;-1:-1:-1;13343:84:97;-1:-1:-1;;13531:2:97;13516:18;;13503:32;13544:31;13503:32;13544:31;:::i;13610:706::-;13811:2;13800:9;13793:21;13774:4;13849:6;13843:13;13892:4;13887:2;13876:9;13872:18;13865:32;13920:72;13987:3;13976:9;13972:19;13958:12;13920:72;:::i;:::-;13906:86;;14041:2;14033:6;14029:15;14023:22;14054:64;14114:2;14103:9;14099:18;14083:14;14054:64;:::i;:::-;;14172:2;14164:6;14160:15;14154:22;14149:2;14138:9;14134:18;14127:50;-1:-1:-1;;;;;14237:2:97;14229:6;14225:15;14219:22;14215:71;14208:4;14197:9;14193:20;14186:101;14304:6;14296:14;;;13610:706;;;;:::o;14321:632::-;14492:2;14544:21;;;14614:13;;14517:18;;;14636:22;;;14463:4;;14492:2;14715:15;;;;14689:2;14674:18;;;14463:4;14758:169;14772:6;14769:1;14766:13;14758:169;;;14833:13;;14821:26;;14902:15;;;;14867:12;;;;14794:1;14787:9;14758:169;;;-1:-1:-1;14944:3:97;;14321:632;-1:-1:-1;;;;;;14321:632:97:o;14958:235::-;15042:6;15095:2;15083:9;15074:7;15070:23;15066:32;15063:52;;;15111:1;15108;15101:12;15063:52;15134:53;15179:7;15168:9;15134:53;:::i;15466:271::-;15649:6;15641;15636:3;15623:33;15605:3;15675:16;;15700:13;;;15675:16;15466:271;-1:-1:-1;15466:271:97:o;16015:326::-;16104:6;16099:3;16092:19;16156:6;16149:5;16142:4;16137:3;16133:14;16120:43;;16208:1;16201:4;16192:6;16187:3;16183:16;16179:27;16172:38;16074:3;16330:4;-1:-1:-1;;16255:2:97;16247:6;16243:15;16239:88;16234:3;16230:98;16226:109;16219:116;;16015:326;;;;:::o;16346:328::-;16527:2;16516:9;16509:21;16490:4;16547:62;16605:2;16594:9;16590:18;16582:6;16574;16547:62;:::i;:::-;16539:70;;16659:6;16652:14;16645:22;16640:2;16629:9;16625:18;16618:50;16346:328;;;;;;:::o;17703:437::-;17782:1;17778:12;;;;17825;;;17846:61;;17900:4;17892:6;17888:17;17878:27;;17846:61;17953:2;17945:6;17942:14;17922:18;17919:38;17916:218;;17990:77;17987:1;17980:88;18091:4;18088:1;18081:15;18119:4;18116:1;18109:15;18145:184;18197:77;18194:1;18187:88;18294:4;18291:1;18284:15;18318:4;18315:1;18308:15;18334:125;18399:9;;;18420:10;;;18417:36;;;18433:18;;:::i;18464:296::-;18669:2;18658:9;18651:21;18632:4;18689:65;18750:2;18739:9;18735:18;18727:6;18689:65;:::i;18765:554::-;19024:3;19013:9;19006:22;18987:4;19045:63;19103:3;19092:9;19088:19;19080:6;19072;19045:63;:::i;:::-;19139:2;19124:18;;19117:34;;;;-1:-1:-1;19182:2:97;19167:18;;19160:34;;;;19237:14;;19230:22;19225:2;19210:18;;19203:50;19297:14;19290:22;19284:3;19269:19;;;19262:51;19037:71;18765:554;-1:-1:-1;;18765:554:97:o;19324:184::-;19376:77;19373:1;19366:88;19473:4;19470:1;19463:15;19497:4;19494:1;19487:15;19513:255;19585:2;19579:9;19627:6;19615:19;;19664:18;19649:34;;19685:22;;;19646:62;19643:88;;;19711:18;;:::i;:::-;19747:2;19740:22;19513:255;:::o;19773:334::-;19844:2;19838:9;19900:2;19890:13;;-1:-1:-1;;19886:86:97;19874:99;;20003:18;19988:34;;20024:22;;;19985:62;19982:88;;;20050:18;;:::i;:::-;20086:2;20079:22;19773:334;;-1:-1:-1;19773:334:97:o;20112:1011::-;20207:6;20238:2;20281;20269:9;20260:7;20256:23;20252:32;20249:52;;;20297:1;20294;20287:12;20249:52;20330:9;20324:16;20359:18;20400:2;20392:6;20389:14;20386:34;;;20416:1;20413;20406:12;20386:34;20454:6;20443:9;20439:22;20429:32;;20499:7;20492:4;20488:2;20484:13;20480:27;20470:55;;20521:1;20518;20511:12;20470:55;20550:2;20544:9;20572:2;20568;20565:10;20562:36;;;20578:18;;:::i;:::-;20624:2;20621:1;20617:10;20607:20;;20647:28;20671:2;20667;20663:11;20647:28;:::i;:::-;20709:15;;;20779:11;;;20775:20;;;20740:12;;;;20807:19;;;20804:39;;;20839:1;20836;20829:12;20804:39;20863:11;;;;20883:210;20899:6;20894:3;20891:15;20883:210;;;20972:3;20966:10;20953:23;;20989:31;21014:5;20989:31;:::i;:::-;21033:18;;;20916:12;;;;21071;;;;20883:210;;;21112:5;20112:1011;-1:-1:-1;;;;;;;;20112:1011:97:o;21128:184::-;21180:77;21177:1;21170:88;21277:4;21274:1;21267:15;21301:4;21298:1;21291:15;21317:195;21356:3;21387:66;21380:5;21377:77;21374:103;;21457:18;;:::i;:::-;-1:-1:-1;21504:1:97;21493:13;;21317:195::o;22616:590::-;22659:5;22712:3;22705:4;22697:6;22693:17;22689:27;22679:55;;22730:1;22727;22720:12;22679:55;22766:6;22753:20;22792:18;22788:2;22785:26;22782:52;;;22814:18;;:::i;:::-;22858:114;22966:4;-1:-1:-1;;22890:4:97;22886:2;22882:13;22878:86;22874:97;22858:114;:::i;:::-;22997:2;22988:7;22981:19;23043:3;23036:4;23031:2;23023:6;23019:15;23015:26;23012:35;23009:55;;;23060:1;23057;23050:12;23009:55;23125:2;23118:4;23110:6;23106:17;23099:4;23090:7;23086:18;23073:55;23173:1;23148:16;;;23166:4;23144:27;23137:38;;;;23152:7;22616:590;-1:-1:-1;;;22616:590:97:o;23211:179::-;23278:20;;23338:26;23327:38;;23317:49;;23307:77;;23380:1;23377;23370:12;23395:1840;23492:6;23545:2;23533:9;23524:7;23520:23;23516:32;23513:52;;;23561:1;23558;23551:12;23513:52;23601:9;23588:23;23630:18;23671:2;23663:6;23660:14;23657:34;;;23687:1;23684;23677:12;23657:34;23710:22;;;;23766:6;23748:16;;;23744:29;23741:49;;;23786:1;23783;23776:12;23741:49;23812:22;;:::i;:::-;23872:2;23859:16;23900:2;23890:8;23887:16;23884:36;;;23916:1;23913;23906:12;23884:36;23943:45;23980:7;23969:8;23965:2;23961:17;23943:45;:::i;:::-;23936:5;23929:60;;24042:2;24038;24034:11;24021:25;24016:2;24009:5;24005:14;23998:49;24079:31;24106:2;24102;24098:11;24079:31;:::i;:::-;24074:2;24067:5;24063:14;24056:55;24157:2;24153;24149:11;24136:25;24186:2;24176:8;24173:16;24170:36;;;24202:1;24199;24192:12;24170:36;24238:45;24275:7;24264:8;24260:2;24256:17;24238:45;:::i;:::-;24233:2;24226:5;24222:14;24215:69;;24338:3;24334:2;24330:12;24317:26;24311:3;24304:5;24300:15;24293:51;24390:3;24386:2;24382:12;24369:26;24420:2;24410:8;24407:16;24404:36;;;24436:1;24433;24426:12;24404:36;24473:45;24510:7;24499:8;24495:2;24491:17;24473:45;:::i;:::-;24467:3;24460:5;24456:15;24449:70;;24565:3;24561:2;24557:12;24544:26;24595:2;24585:8;24582:16;24579:36;;;24611:1;24608;24601:12;24579:36;24648:45;24685:7;24674:8;24670:2;24666:17;24648:45;:::i;:::-;24642:3;24635:5;24631:15;24624:70;;24748:3;24744:2;24740:12;24727:26;24721:3;24714:5;24710:15;24703:51;24773:3;24808:31;24835:2;24831;24827:11;24808:31;:::i;:::-;24792:14;;;24785:55;24859:3;24894:30;24912:11;;;24894:30;:::i;:::-;24878:14;;;24871:54;24944:3;24979:30;24997:11;;;24979:30;:::i;:::-;24963:14;;;24956:54;25029:3;25070:11;;;25057:25;25094:16;;;25091:36;;;25123:1;25120;25113:12;25091:36;25159:45;25196:7;25185:8;25181:2;25177:17;25159:45;:::i;:::-;25143:14;;;25136:69;;;;-1:-1:-1;25147:5:97;23395:1840;-1:-1:-1;;;;;23395:1840:97:o;25240:289::-;25371:3;25409:6;25403:13;25425:66;25484:6;25479:3;25472:4;25464:6;25460:17;25425:66;:::i;:::-;25507:16;;;;;25240:289;-1:-1:-1;;25240:289:97:o;25660:543::-;25762:2;25757:3;25754:11;25751:446;;;25798:1;25822:5;25819:1;25812:16;25866:4;25863:1;25853:18;25936:2;25924:10;25920:19;25917:1;25913:27;25907:4;25903:38;25972:4;25960:10;25957:20;25954:47;;;-1:-1:-1;25995:4:97;25954:47;26050:2;26045:3;26041:12;26038:1;26034:20;26028:4;26024:31;26014:41;;26105:82;26123:2;26116:5;26113:13;26105:82;;;26168:17;;;26149:1;26138:13;26105:82;;;26109:3;;;25660:543;;;:::o;26439:1464::-;26565:3;26559:10;26592:18;26584:6;26581:30;26578:56;;;26614:18;;:::i;:::-;26643:97;26733:6;26693:38;26725:4;26719:11;26693:38;:::i;:::-;26687:4;26643:97;:::i;:::-;26795:4;;26852:2;26841:14;;26869:1;26864:782;;;;27690:1;27707:6;27704:89;;;-1:-1:-1;27759:19:97;;;27753:26;27704:89;26345:66;26336:1;26332:11;;;26328:84;26324:89;26314:100;26420:1;26416:11;;;26311:117;27806:81;;26834:1063;;26864:782;25607:1;25600:14;;;25644:4;25631:18;;-1:-1:-1;;26900:79:97;;;27077:236;27091:7;27088:1;27085:14;27077:236;;;27180:19;;;27174:26;27159:42;;27272:27;;;;27240:1;27228:14;;;;27107:19;;27077:236;;;27081:3;27341:6;27332:7;27329:19;27326:261;;;27402:19;;;27396:26;27503:66;27485:1;27481:14;;;27497:3;27477:24;27473:97;27469:102;27454:118;27439:134;;27326:261;-1:-1:-1;;;;;27633:1:97;27617:14;;;27613:22;27600:36;;-1:-1:-1;26439:1464:97:o;29375:340::-;-1:-1:-1;;;;;29556:6:97;29552:55;29541:9;29534:74;29644:2;29639;29628:9;29624:18;29617:30;29515:4;29664:45;29705:2;29694:9;29690:18;29682:6;29664:45;:::i;:::-;29656:53;29375:340;-1:-1:-1;;;;29375:340:97:o;29720:245::-;29787:6;29840:2;29828:9;29819:7;29815:23;29811:32;29808:52;;;29856:1;29853;29846:12;29808:52;29888:9;29882:16;29907:28;29929:5;29907:28;:::i;29970:441::-;30138:4;-1:-1:-1;;;;;30248:2:97;30240:6;30236:15;30225:9;30218:34;30300:2;30292:6;30288:15;30283:2;30272:9;30268:18;30261:43;;30340:2;30335;30324:9;30320:18;30313:30;30360:45;30401:2;30390:9;30386:18;30378:6;30360:45;:::i;:::-;30352:53;29970:441;-1:-1:-1;;;;;29970:441:97:o"},"gasEstimates":{"creation":{"codeDepositCost":"3256400","executionCost":"infinite","totalCost":"infinite"},"external":{"LAYER_ZERO_EID()":"infinite","REMOTE_UPDATE_EXPIRATION_TIME()":"231","acceptOwnership()":"infinite","accessControlManager()":"2399","allowInitializePath((uint32,bytes32,uint64))":"infinite","endpoint()":"infinite","executeUpdate(uint256)":"infinite","getExecutableUpdates(string,address)":"infinite","getLastExecutedAt(string,address)":"infinite","getRegisteredUpdate(string,address)":"infinite","getRiskParameterConfig(string)":"infinite","initialize(address,address)":"infinite","isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":"828","lastExecutedAt(bytes32,address)":"2718","lastRegisteredUpdateId(bytes32,address)":"2673","lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"infinite","nextNonce(uint32,bytes32)":"467","oAppVersion()":"241","owner()":"2377","peers(uint32)":"2569","pendingOwner()":"2442","rejectUpdate(uint256)":"30136","remoteDelay()":"2373","renounceOwnership()":"248","riskParameterConfigs(bytes32)":"6854","setAccessControlManager(address)":"infinite","setConfigActive(string,bool)":"infinite","setDelegate(address)":"infinite","setPeer(uint32,bytes32)":"26099","setRemoteDelay(uint256)":"infinite","setRiskParameterConfig(string,address,uint256)":"infinite","setWhitelistedExecutor(address,bool)":"infinite","transferOwnership(address)":"infinite","updates(uint256)":"infinite","whitelistedExecutors(address)":"2613"},"internal":{"_checkPendingUpdate(uint256)":"4481","_lzReceive(struct Origin calldata,bytes32,bytes calldata,address,bytes calldata)":"infinite","_transferOwnership(address)":"infinite"}},"methodIdentifiers":{"LAYER_ZERO_EID()":"4c213449","REMOTE_UPDATE_EXPIRATION_TIME()":"050d8986","acceptOwnership()":"79ba5097","accessControlManager()":"b4a0bdf3","allowInitializePath((uint32,bytes32,uint64))":"ff7bd03d","endpoint()":"5e280f11","executeUpdate(uint256)":"79edd100","getExecutableUpdates(string,address)":"f63106e4","getLastExecutedAt(string,address)":"be3881b4","getRegisteredUpdate(string,address)":"f5d3b7b3","getRiskParameterConfig(string)":"28207141","initialize(address,address)":"485cc955","isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":"82413eac","lastExecutedAt(bytes32,address)":"170338c8","lastRegisteredUpdateId(bytes32,address)":"a49e9ea1","lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"13137d65","nextNonce(uint32,bytes32)":"7d25a05e","oAppVersion()":"17442b70","owner()":"8da5cb5b","peers(uint32)":"bb0b6a53","pendingOwner()":"e30c3978","rejectUpdate(uint256)":"c3e10deb","remoteDelay()":"e2509c76","renounceOwnership()":"715018a6","riskParameterConfigs(bytes32)":"af9e0fd3","setAccessControlManager(address)":"0e32cb86","setConfigActive(string,bool)":"438653fe","setDelegate(address)":"ca5eb5e1","setPeer(uint32,bytes32)":"3400288b","setRemoteDelay(uint256)":"ca136b99","setRiskParameterConfig(string,address,uint256)":"b080d71d","setWhitelistedExecutor(address,bool)":"3aed7f31","transferOwnership(address)":"f2fde38b","updates(uint256)":"b4c2f727","whitelistedExecutors(address)":"fe2b3502"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"endpoint_\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"layerZeroEid_\",\"type\":\"uint32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ConfigNotActive\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ConfigStatusUnchanged\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExecutorStatusUnchanged\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDebounce\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelegate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEndpointCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidLayerZeroEid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRemoteDelay\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidUpdateType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"NoPeer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotAnExecutor\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"OnlyEndpoint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"OnlyPeer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RemoteDelayUnchanged\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RenounceOwnershipNotAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"calledContract\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"methodSignature\",\"type\":\"string\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsupportedUpdateType\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpdateIsExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpdateNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpdateNotUnlocked\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpdateTooFrequent\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"updateTypeHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"previousActive\",\"type\":\"bool\"},{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"}],\"name\":\"ConfigActiveUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"arrivalTime\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"DuplicateUpdateReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"previousApproved\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ExecutorStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldAccessControlManager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAccessControlManager\",\"type\":\"address\"}],\"name\":\"NewAccessControlManager\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"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\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"name\":\"PeerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"arrivalTime\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"RegisteredPendingUpdateExist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"remoteDelay\",\"type\":\"uint256\"}],\"name\":\"RemoteDelaySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"}],\"name\":\"RemoteUpdateExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"arrivalTime\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"RemoteUpdateRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"updateTypeHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousRiskSteward\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"riskSteward\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previousDebounce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"debounce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"previousActive\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"}],\"name\":\"RiskParameterConfigUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"}],\"name\":\"UpdateRejected\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"LAYER_ZERO_EID\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"REMOTE_UPDATE_EXPIRATION_TIME\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"accessControlManager\",\"outputs\":[{\"internalType\":\"contract IAccessControlManagerV8\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"}],\"name\":\"allowInitializePath\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpointV2\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"}],\"name\":\"executeUpdate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"comptroller\",\"type\":\"address\"}],\"name\":\"getExecutableUpdates\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"executableUpdates\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"getLastExecutedAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"getRegisteredUpdate\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"referenceId\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"updateTypeKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"newValue\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"previousValue\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"poolId\",\"type\":\"uint96\"},{\"internalType\":\"uint32\",\"name\":\"destLzEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"additionalData\",\"type\":\"bytes\"}],\"internalType\":\"struct RiskParameterUpdate\",\"name\":\"update\",\"type\":\"tuple\"},{\"internalType\":\"enum IDestinationStewardReceiver.UpdateStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"arrivalTime\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"}],\"internalType\":\"struct IDestinationStewardReceiver.DestinationUpdate\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"}],\"name\":\"getRiskParameterConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"debounce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"riskSteward\",\"type\":\"address\"}],\"internalType\":\"struct IDestinationStewardReceiver.RiskParamConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessControlManager_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegate_\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"isComposeMsgSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"lastExecutedAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"lastRegisteredUpdateId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"nextNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oAppVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"senderVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receiverVersion\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"peers\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"}],\"name\":\"rejectUpdate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"remoteDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"riskParameterConfigs\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"debounce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"riskSteward\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessControlManager_\",\"type\":\"address\"}],\"name\":\"setAccessControlManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"}],\"name\":\"setConfigActive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"setPeer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newRemoteDelay\",\"type\":\"uint256\"}],\"name\":\"setRemoteDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"riskSteward\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"debounce\",\"type\":\"uint256\"}],\"name\":\"setRiskParameterConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setWhitelistedExecutor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"}],\"name\":\"updates\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"referenceId\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"updateTypeKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"newValue\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"previousValue\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"poolId\",\"type\":\"uint96\"},{\"internalType\":\"uint32\",\"name\":\"destLzEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"additionalData\",\"type\":\"bytes\"}],\"internalType\":\"struct RiskParameterUpdate\",\"name\":\"update\",\"type\":\"tuple\"},{\"internalType\":\"enum IDestinationStewardReceiver.UpdateStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"arrivalTime\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"whitelistedExecutors\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"custom:security-contact\":\"https://github.com/VenusProtocol/governance-contracts#discussion\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"allowInitializePath((uint32,bytes32,uint64))\":{\"details\":\"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.\",\"params\":{\"origin\":\"The origin information containing the source endpoint and sender address.\"},\"returns\":{\"_0\":\"Whether the path has been initialized.\"}},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\",\"params\":{\"endpoint_\":\"Local LayerZero endpoint on this chain\",\"layerZeroEid_\":\"LayerZero endpoint ID for this destination chain\"}},\"executeUpdate(uint256)\":{\"custom:access\":\"Only whitelisted executors can execute updates\",\"custom:error\":\"NotAnExecutor if the caller is not a whitelisted executorConfigNotActive if the configuration for the update type is not activeUpdateNotFound if the update is not pending for the given (updateType, market)UpdateNotUnlocked if the remote delay has not elapsedUpdateIsExpired if the bridged update has expired on the destinationUpdateTooFrequent if the debounce period has not passed since the last execution\",\"custom:event\":\"Emits RemoteUpdateExecuted with the executed update ID\",\"params\":{\"updateId\":\"The bridged update ID to execute\"}},\"getExecutableUpdates(string,address)\":{\"params\":{\"comptroller\":\"The address of the Isolated Pools Comptroller that manages the markets\",\"updateType\":\"The human\\u2011readable identifier of the update type to filter by\"},\"returns\":{\"executableUpdates\":\"Array of update IDs that are ready to be executed\"}},\"getLastExecutedAt(string,address)\":{\"params\":{\"market\":\"The address of the market\",\"updateType\":\"The human-readable identifier of the update type\"},\"returns\":{\"_0\":\"The last executed timestamp\"}},\"getRegisteredUpdate(string,address)\":{\"params\":{\"market\":\"The address of the market\",\"updateType\":\"The human-readable identifier of the update type\"},\"returns\":{\"_0\":\"The registered update\"}},\"getRiskParameterConfig(string)\":{\"params\":{\"updateType\":\"The human-readable identifier of the update type\"},\"returns\":{\"_0\":\"The risk parameter configuration\"}},\"initialize(address,address)\":{\"params\":{\"accessControlManager_\":\"The address of the access control manager\",\"delegate_\":\"The owner (and LayerZero delegate) of this contract\"}},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"details\":\"_origin The origin information containing the source endpoint and sender address.  - srcEid: The source chain endpoint ID.  - sender: The sender address on the src chain.  - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.\",\"params\":{\"_sender\":\"The sender address.\"},\"returns\":{\"_0\":\"isSender Is a valid sender.\"}},\"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.\",\"params\":{\"_executor\":\"The address of the executor for the received message.\",\"_extraData\":\"Additional arbitrary data provided by the corresponding executor.\",\"_guid\":\"The unique identifier for the received LayerZero message.\",\"_message\":\"The payload of the received message.\",\"_origin\":\"The origin information containing the source endpoint and sender address.  - srcEid: The source chain endpoint ID.  - sender: The sender address on the src chain.  - nonce: The nonce of the message.\"}},\"nextNonce(uint32,bytes32)\":{\"details\":\"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.\",\"returns\":{\"nonce\":\"The next nonce.\"}},\"oAppVersion()\":{\"details\":\"Providing 0 as the default for OAppSender version. Indicates that the OAppSender is not implemented. ie. this is a RECEIVE only OApp.If the OApp uses both OAppSender and OAppReceiver, then this needs to be override returning the correct versions.\",\"returns\":{\"receiverVersion\":\"The version of the OAppReceiver.sol contract.\",\"senderVersion\":\"The version of the OAppSender.sol contract.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"peers(uint32)\":{\"params\":{\"_eid\":\"The endpoint ID.\"},\"returns\":{\"_0\":\"peer The address of the peer associated with the specified endpoint.\"}},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"rejectUpdate(uint256)\":{\"custom:access\":\"Only whitelisted executors can reject updates\",\"custom:error\":\"NotAnExecutor if the caller is not a whitelisted executorUpdateNotFound if there is no pending update with the given ID\",\"custom:event\":\"Emits UpdateRejected with the rejected update ID\",\"params\":{\"updateId\":\"The oracle update ID of the update to reject\"}},\"renounceOwnership()\":{\"custom:error\":\"Throws RenounceOwnershipNotAllowed\"},\"setAccessControlManager(address)\":{\"custom:access\":\"Only Governance\",\"custom:event\":\"Emits NewAccessControlManager event\",\"details\":\"Admin function to set address of AccessControlManager\",\"params\":{\"accessControlManager_\":\"The new address of the AccessControlManager\"}},\"setConfigActive(string,bool)\":{\"custom:access\":\"Controlled by AccessControlManager\",\"custom:error\":\"Throws UnsupportedUpdateType if the update type is not supportedThrows ConfigStatusUnchanged if the active status is already set to the desired value\",\"custom:event\":\"Emits ConfigActiveUpdated with the update type hash, update type, previous active status, and the active status\",\"params\":{\"active\":\"The active status to set\",\"updateType\":\"The type of update to configure\"}},\"setDelegate(address)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\",\"params\":{\"_delegate\":\"The address of the delegate to be set.\"}},\"setPeer(uint32,bytes32)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_peer\":\"The address of the peer to be associated with the corresponding endpoint.\"}},\"setRemoteDelay(uint256)\":{\"custom:access\":\"Controlled by AccessControlManager\",\"custom:error\":\"InvalidRemoteDelay if the delay is 0 or greater than or equal to the remote update expiration timeRemoteDelayUnchanged if the new delay is equal to the current delay\",\"custom:event\":\"Emits RemoteDelaySet with the new remote delay value\",\"params\":{\"newRemoteDelay\":\"The new remote delay in seconds\"}},\"setRiskParameterConfig(string,address,uint256)\":{\"custom:access\":\"Controlled by AccessControlManager\",\"custom:error\":\"InvalidUpdateType if the update type string is emptyInvalidDebounce if the debounce is 0\",\"custom:event\":\"Emits RiskParameterConfigUpdated\",\"params\":{\"debounce\":\"The debounce period for updates of this type on the destination (anti\\u2011DoS)\",\"riskSteward\":\"The address for the risk steward contract responsible for processing the update\",\"updateType\":\"The type of update to configure (e.g., \\\"supplyCap\\\", \\\"borrowCap\\\")\"}},\"setWhitelistedExecutor(address,bool)\":{\"custom:access\":\"Controlled by AccessControlManager\",\"custom:error\":\"Throws ZeroAddressNotAllowed if the executor address is zeroThrows ExecutorStatusUnchanged if the executor whitelist status is already set to the desired value\",\"custom:event\":\"Emits ExecutorStatusUpdated with the executor address, previous approval status, and new approval status\",\"params\":{\"approved\":\"The whitelist status to set (true to whitelist, false to remove)\",\"executor\":\"The address of the executor\"}},\"transferOwnership(address)\":{\"details\":\"Overrides OwnableUpgradeable and Ownable2StepUpgradeable to resolve      the multiple inheritance ownership transfer conflict.\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"title\":\"DestinationStewardReceiver\",\"version\":1},\"userdoc\":{\"errors\":{\"ConfigNotActive()\":[{\"notice\":\"Thrown when config for an update type is not active or not configured\"}],\"ConfigStatusUnchanged()\":[{\"notice\":\"Thrown when trying to set the same config active status\"}],\"ExecutorStatusUnchanged()\":[{\"notice\":\"Thrown when trying to set the same executor whitelist status\"}],\"InvalidDebounce()\":[{\"notice\":\"Thrown when a debounce value of 0 is set\"}],\"InvalidLayerZeroEid()\":[{\"notice\":\"Thrown when an invalid LayerZero endpoint ID is provided\"}],\"InvalidRemoteDelay()\":[{\"notice\":\"Thrown when an invalid remote delay is provided\"}],\"InvalidUpdateType()\":[{\"notice\":\"Thrown when an empty update type string is provided\"}],\"NotAnExecutor()\":[{\"notice\":\"Thrown when an address is not a whitelisted executor\"}],\"RemoteDelayUnchanged()\":[{\"notice\":\"Thrown when trying to set the same remote delay value\"}],\"RenounceOwnershipNotAllowed()\":[{\"notice\":\"Thrown when trying to renounce ownership\"}],\"Unauthorized(address,address,string)\":[{\"notice\":\"Thrown when the action is prohibited by AccessControlManager\"}],\"UnsupportedUpdateType()\":[{\"notice\":\"Thrown when an update type is not supported\"}],\"UpdateIsExpired()\":[{\"notice\":\"Thrown when a bridged update has expired on the destination\"}],\"UpdateNotFound()\":[{\"notice\":\"Thrown when trying to operate on an update that was never registered\"}],\"UpdateNotUnlocked()\":[{\"notice\":\"Thrown when trying to execute an update before its unlock time\"}],\"UpdateTooFrequent()\":[{\"notice\":\"Thrown when the debounce period hasn't passed for applying an update to a specific market / update type\"}],\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}]},\"events\":{\"ConfigActiveUpdated(bytes32,string,bool,bool)\":{\"notice\":\"Emitted when a risk parameter config active status is updated\"},\"DuplicateUpdateReceived(uint256,uint256,string,address)\":{\"notice\":\"Emitted when a duplicate bridged update (same updateId) is received.\"},\"ExecutorStatusUpdated(address,bool,bool)\":{\"notice\":\"Emitted when an executor status is set on the destination\"},\"NewAccessControlManager(address,address)\":{\"notice\":\"Emitted when access control manager contract address is changed\"},\"RegisteredPendingUpdateExist(uint256,uint256,string,address)\":{\"notice\":\"Emitted when a new bridged update arrives but a pending update is already registered for the same (updateType, market).\"},\"RemoteDelaySet(uint256)\":{\"notice\":\"Emitted when the remote delay is set in the constructor\"},\"RemoteUpdateExecuted(uint256)\":{\"notice\":\"Emitted when a bridged update is executed on the destination\"},\"RemoteUpdateRegistered(uint256,uint256,string,address)\":{\"notice\":\"Emitted when a bridged update is registered on the destination\"},\"RiskParameterConfigUpdated(bytes32,string,address,address,uint256,uint256,bool,bool)\":{\"notice\":\"Emitted when a risk parameter config is updated for an update type\"},\"UpdateRejected(uint256)\":{\"notice\":\"Emitted when an update is rejected on the destination\"}},\"kind\":\"user\",\"methods\":{\"LAYER_ZERO_EID()\":{\"notice\":\"Destination chain LayerZero endpoint ID\"},\"REMOTE_UPDATE_EXPIRATION_TIME()\":{\"notice\":\"Time before a bridged update is considered stale on the destination chain\"},\"accessControlManager()\":{\"notice\":\"Returns the address of the access control manager contract\"},\"allowInitializePath((uint32,bytes32,uint64))\":{\"notice\":\"Checks if the path initialization is allowed based on the provided origin.\"},\"constructor\":{\"notice\":\"Disables initializers and sets immutable values.\"},\"endpoint()\":{\"notice\":\"Retrieves the LayerZero endpoint associated with the OApp.\"},\"executeUpdate(uint256)\":{\"notice\":\"Executes a bridged update after its remote delay has passed.\"},\"getExecutableUpdates(string,address)\":{\"notice\":\"Returns executable updates for a given update type and comptroller.\"},\"getLastExecutedAt(string,address)\":{\"notice\":\"Returns the last executed timestamp for a given update type and market\"},\"getRegisteredUpdate(string,address)\":{\"notice\":\"Returns the registered update for a given update type and market\"},\"getRiskParameterConfig(string)\":{\"notice\":\"Returns the risk parameter configuration for a given update type\"},\"initialize(address,address)\":{\"notice\":\"Initializes the contract with the Access Control Manager and owner.\"},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"notice\":\"Indicates whether an address is an approved composeMsg sender to the Endpoint.\"},\"lastExecutedAt(bytes32,address)\":{\"notice\":\"Track last executed update timestamp per (updateType, market)\"},\"lastRegisteredUpdateId(bytes32,address)\":{\"notice\":\"Mapping from (updateType, market) to currently registered remote update ID\"},\"nextNonce(uint32,bytes32)\":{\"notice\":\"Retrieves the next nonce for a given source endpoint and sender address.\"},\"oAppVersion()\":{\"notice\":\"Retrieves the OApp version information.\"},\"peers(uint32)\":{\"notice\":\"Returns the peer address (OApp instance) associated with a specific endpoint.\"},\"rejectUpdate(uint256)\":{\"notice\":\"Rejects a registered remote update on the destination chain.\"},\"remoteDelay()\":{\"notice\":\"Delay before a bridged update can be executed on the destination chain\"},\"renounceOwnership()\":{\"notice\":\"Disables renounceOwnership function\"},\"riskParameterConfigs(bytes32)\":{\"notice\":\"Mapping of supported risk configurations per update type (hashed updateType string)\"},\"setAccessControlManager(address)\":{\"notice\":\"Sets the address of AccessControlManager\"},\"setConfigActive(string,bool)\":{\"notice\":\"Sets the active status of a risk parameter config\"},\"setDelegate(address)\":{\"notice\":\"Sets the delegate address for the OApp.\"},\"setPeer(uint32,bytes32)\":{\"notice\":\"Sets the peer address (OApp instance) for a corresponding endpoint.\"},\"setRemoteDelay(uint256)\":{\"notice\":\"Sets the remote delay before bridged updates can be executed on the destination chain.\"},\"setRiskParameterConfig(string,address,uint256)\":{\"notice\":\"Sets the risk parameter config for a given update type on the destination chain.\"},\"setWhitelistedExecutor(address,bool)\":{\"notice\":\"Sets the whitelist status of an executor on the destination chain.\"},\"updates(uint256)\":{\"notice\":\"Master storage of all bridged updates by update ID\"},\"whitelistedExecutors(address)\":{\"notice\":\"Mapping from executor address to whitelist status\"}},\"notice\":\"Destination\\u2011chain contract that receives bridged updates from `RiskStewardReceiver` via LayerZero,         enforces a fixed remote delay, and then executes the updates on the configured `IRiskSteward` contracts.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/RiskSteward/DestinationStewardReceiver.sol\":\"DestinationStewardReceiver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { IMessageLibManager } from \\\"./IMessageLibManager.sol\\\";\\nimport { IMessagingComposer } from \\\"./IMessagingComposer.sol\\\";\\nimport { IMessagingChannel } from \\\"./IMessagingChannel.sol\\\";\\nimport { IMessagingContext } from \\\"./IMessagingContext.sol\\\";\\n\\nstruct MessagingParams {\\n    uint32 dstEid;\\n    bytes32 receiver;\\n    bytes message;\\n    bytes options;\\n    bool payInLzToken;\\n}\\n\\nstruct MessagingReceipt {\\n    bytes32 guid;\\n    uint64 nonce;\\n    MessagingFee fee;\\n}\\n\\nstruct MessagingFee {\\n    uint256 nativeFee;\\n    uint256 lzTokenFee;\\n}\\n\\nstruct Origin {\\n    uint32 srcEid;\\n    bytes32 sender;\\n    uint64 nonce;\\n}\\n\\ninterface ILayerZeroEndpointV2 is IMessageLibManager, IMessagingComposer, IMessagingChannel, IMessagingContext {\\n    event PacketSent(bytes encodedPayload, bytes options, address sendLibrary);\\n\\n    event PacketVerified(Origin origin, address receiver, bytes32 payloadHash);\\n\\n    event PacketDelivered(Origin origin, address receiver);\\n\\n    event LzReceiveAlert(\\n        address indexed receiver,\\n        address indexed executor,\\n        Origin origin,\\n        bytes32 guid,\\n        uint256 gas,\\n        uint256 value,\\n        bytes message,\\n        bytes extraData,\\n        bytes reason\\n    );\\n\\n    event LzTokenSet(address token);\\n\\n    event DelegateSet(address sender, address delegate);\\n\\n    function quote(MessagingParams calldata _params, address _sender) external view returns (MessagingFee memory);\\n\\n    function send(\\n        MessagingParams calldata _params,\\n        address _refundAddress\\n    ) external payable returns (MessagingReceipt memory);\\n\\n    function verify(Origin calldata _origin, address _receiver, bytes32 _payloadHash) external;\\n\\n    function verifiable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n    function initializable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n    function lzReceive(\\n        Origin calldata _origin,\\n        address _receiver,\\n        bytes32 _guid,\\n        bytes calldata _message,\\n        bytes calldata _extraData\\n    ) external payable;\\n\\n    // oapp can burn messages partially by calling this function with its own business logic if messages are verified in order\\n    function clear(address _oapp, Origin calldata _origin, bytes32 _guid, bytes calldata _message) external;\\n\\n    function setLzToken(address _lzToken) external;\\n\\n    function lzToken() external view returns (address);\\n\\n    function nativeToken() external view returns (address);\\n\\n    function setDelegate(address _delegate) external;\\n}\\n\",\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { Origin } from \\\"./ILayerZeroEndpointV2.sol\\\";\\n\\ninterface ILayerZeroReceiver {\\n    function allowInitializePath(Origin calldata _origin) external view returns (bool);\\n\\n    function nextNonce(uint32 _eid, bytes32 _sender) external view returns (uint64);\\n\\n    function lzReceive(\\n        Origin calldata _origin,\\n        bytes32 _guid,\\n        bytes calldata _message,\\n        address _executor,\\n        bytes calldata _extraData\\n    ) external payable;\\n}\\n\",\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nstruct SetConfigParam {\\n    uint32 eid;\\n    uint32 configType;\\n    bytes config;\\n}\\n\\ninterface IMessageLibManager {\\n    struct Timeout {\\n        address lib;\\n        uint256 expiry;\\n    }\\n\\n    event LibraryRegistered(address newLib);\\n    event DefaultSendLibrarySet(uint32 eid, address newLib);\\n    event DefaultReceiveLibrarySet(uint32 eid, address newLib);\\n    event DefaultReceiveLibraryTimeoutSet(uint32 eid, address oldLib, uint256 expiry);\\n    event SendLibrarySet(address sender, uint32 eid, address newLib);\\n    event ReceiveLibrarySet(address receiver, uint32 eid, address newLib);\\n    event ReceiveLibraryTimeoutSet(address receiver, uint32 eid, address oldLib, uint256 timeout);\\n\\n    function registerLibrary(address _lib) external;\\n\\n    function isRegisteredLibrary(address _lib) external view returns (bool);\\n\\n    function getRegisteredLibraries() external view returns (address[] memory);\\n\\n    function setDefaultSendLibrary(uint32 _eid, address _newLib) external;\\n\\n    function defaultSendLibrary(uint32 _eid) external view returns (address);\\n\\n    function setDefaultReceiveLibrary(uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n    function defaultReceiveLibrary(uint32 _eid) external view returns (address);\\n\\n    function setDefaultReceiveLibraryTimeout(uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n    function defaultReceiveLibraryTimeout(uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n    function isSupportedEid(uint32 _eid) external view returns (bool);\\n\\n    function isValidReceiveLibrary(address _receiver, uint32 _eid, address _lib) external view returns (bool);\\n\\n    /// ------------------- OApp interfaces -------------------\\n    function setSendLibrary(address _oapp, uint32 _eid, address _newLib) external;\\n\\n    function getSendLibrary(address _sender, uint32 _eid) external view returns (address lib);\\n\\n    function isDefaultSendLibrary(address _sender, uint32 _eid) external view returns (bool);\\n\\n    function setReceiveLibrary(address _oapp, uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n    function getReceiveLibrary(address _receiver, uint32 _eid) external view returns (address lib, bool isDefault);\\n\\n    function setReceiveLibraryTimeout(address _oapp, uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n    function receiveLibraryTimeout(address _receiver, uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n    function setConfig(address _oapp, address _lib, SetConfigParam[] calldata _params) external;\\n\\n    function getConfig(\\n        address _oapp,\\n        address _lib,\\n        uint32 _eid,\\n        uint32 _configType\\n    ) external view returns (bytes memory config);\\n}\\n\",\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingChannel {\\n    event InboundNonceSkipped(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce);\\n    event PacketNilified(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n    event PacketBurnt(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n\\n    function eid() external view returns (uint32);\\n\\n    // this is an emergency function if a message cannot be verified for some reasons\\n    // required to provide _nextNonce to avoid race condition\\n    function skip(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce) external;\\n\\n    function nilify(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n    function burn(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n    function nextGuid(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (bytes32);\\n\\n    function inboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n\\n    function outboundNonce(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (uint64);\\n\\n    function inboundPayloadHash(\\n        address _receiver,\\n        uint32 _srcEid,\\n        bytes32 _sender,\\n        uint64 _nonce\\n    ) external view returns (bytes32);\\n\\n    function lazyInboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n}\\n\",\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingComposer {\\n    event ComposeSent(address from, address to, bytes32 guid, uint16 index, bytes message);\\n    event ComposeDelivered(address from, address to, bytes32 guid, uint16 index);\\n    event LzComposeAlert(\\n        address indexed from,\\n        address indexed to,\\n        address indexed executor,\\n        bytes32 guid,\\n        uint16 index,\\n        uint256 gas,\\n        uint256 value,\\n        bytes message,\\n        bytes extraData,\\n        bytes reason\\n    );\\n\\n    function composeQueue(\\n        address _from,\\n        address _to,\\n        bytes32 _guid,\\n        uint16 _index\\n    ) external view returns (bytes32 messageHash);\\n\\n    function sendCompose(address _to, bytes32 _guid, uint16 _index, bytes calldata _message) external;\\n\\n    function lzCompose(\\n        address _from,\\n        address _to,\\n        bytes32 _guid,\\n        uint16 _index,\\n        bytes calldata _message,\\n        bytes calldata _extraData\\n    ) external payable;\\n}\\n\",\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingContext {\\n    function isSendingMessage() external view returns (bool);\\n\\n    function getSendContext() external view returns (uint32 dstEid, address sender);\\n}\\n\",\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\"},\"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppCoreUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { OwnableUpgradeable } from \\\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\\\";\\nimport { IOAppCore, ILayerZeroEndpointV2 } from \\\"@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppCore.sol\\\";\\n\\n/**\\n * @title OAppCore\\n * @dev Abstract contract implementing the IOAppCore interface with basic OApp configurations.\\n */\\nabstract contract OAppCoreUpgradeable is IOAppCore, OwnableUpgradeable {\\n    struct OAppCoreStorage {\\n        mapping(uint32 => bytes32) peers;\\n    }\\n\\n    // keccak256(abi.encode(uint256(keccak256(\\\"layerzerov2.storage.oappcore\\\")) - 1)) & ~bytes32(uint256(0xff))\\n    bytes32 private constant OAPP_CORE_STORAGE_LOCATION =\\n        0x72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f900;\\n\\n    function _getOAppCoreStorage() internal pure returns (OAppCoreStorage storage $) {\\n        assembly {\\n            $.slot := OAPP_CORE_STORAGE_LOCATION\\n        }\\n    }\\n\\n    // The LayerZero endpoint associated with the given OApp\\n    ILayerZeroEndpointV2 public immutable endpoint;\\n\\n    /**\\n     * @dev Constructor to initialize the OAppCore with the provided endpoint and delegate.\\n     * @param _endpoint The address of the LOCAL Layer Zero endpoint.\\n     */\\n    constructor(address _endpoint) {\\n        endpoint = ILayerZeroEndpointV2(_endpoint);\\n    }\\n\\n    /**\\n     * @dev Initializes the OAppCore with the provided delegate.\\n     * @param _delegate The delegate capable of making OApp configurations inside of the endpoint.\\n     *\\n     * @dev The delegate typically should be set as the owner of the contract.\\n     * @dev Ownable is not initialized here on purpose. It should be initialized in the child contract to\\n     * accommodate the different version of Ownable.\\n     */\\n    function __OAppCore_init(address _delegate) internal onlyInitializing {\\n        __OAppCore_init_unchained(_delegate);\\n    }\\n\\n    function __OAppCore_init_unchained(address _delegate) internal onlyInitializing {\\n        if (_delegate == address(0)) revert InvalidDelegate();\\n        endpoint.setDelegate(_delegate);\\n    }\\n\\n    /**\\n     * @notice Returns the peer address (OApp instance) associated with a specific endpoint.\\n     * @param _eid The endpoint ID.\\n     * @return peer The address of the peer associated with the specified endpoint.\\n     */\\n    function peers(uint32 _eid) public view override returns (bytes32) {\\n        OAppCoreStorage storage $ = _getOAppCoreStorage();\\n        return $.peers[_eid];\\n    }\\n\\n    /**\\n     * @notice Sets the peer address (OApp instance) for a corresponding endpoint.\\n     * @param _eid The endpoint ID.\\n     * @param _peer The address of the peer to be associated with the corresponding endpoint.\\n     *\\n     * @dev Only the owner/admin of the OApp can call this function.\\n     * @dev Indicates that the peer is trusted to send LayerZero messages to this OApp.\\n     * @dev Set this to bytes32(0) to remove the peer address.\\n     * @dev Peer is a bytes32 to accommodate non-evm chains.\\n     */\\n    function setPeer(uint32 _eid, bytes32 _peer) public virtual onlyOwner {\\n        OAppCoreStorage storage $ = _getOAppCoreStorage();\\n        $.peers[_eid] = _peer;\\n        emit PeerSet(_eid, _peer);\\n    }\\n\\n    /**\\n     * @notice Internal function to get the peer address associated with a specific endpoint; reverts if NOT set.\\n     * ie. the peer is set to bytes32(0).\\n     * @param _eid The endpoint ID.\\n     * @return peer The address of the peer associated with the specified endpoint.\\n     */\\n    function _getPeerOrRevert(uint32 _eid) internal view virtual returns (bytes32) {\\n        OAppCoreStorage storage $ = _getOAppCoreStorage();\\n        bytes32 peer = $.peers[_eid];\\n        if (peer == bytes32(0)) revert NoPeer(_eid);\\n        return peer;\\n    }\\n\\n    /**\\n     * @notice Sets the delegate address for the OApp.\\n     * @param _delegate The address of the delegate to be set.\\n     *\\n     * @dev Only the owner/admin of the OApp can call this function.\\n     * @dev Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\\n     */\\n    function setDelegate(address _delegate) public onlyOwner {\\n        endpoint.setDelegate(_delegate);\\n    }\\n}\\n\",\"keccak256\":\"0xbe135fd35bf12c97aeb701caeb6c5d0c1c28c1ac2ab1d4219d15f8384951c140\",\"license\":\"MIT\"},\"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppReceiverUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { IOAppReceiver, Origin } from \\\"@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppReceiver.sol\\\";\\nimport { OAppCoreUpgradeable } from \\\"./OAppCoreUpgradeable.sol\\\";\\n\\n/**\\n * @title OAppReceiver\\n * @dev Abstract contract implementing the ILayerZeroReceiver interface and extending OAppCore for OApp receivers.\\n */\\nabstract contract OAppReceiverUpgradeable is IOAppReceiver, OAppCoreUpgradeable {\\n    // Custom error message for when the caller is not the registered endpoint/\\n    error OnlyEndpoint(address addr);\\n\\n    // @dev The version of the OAppReceiver implementation.\\n    // @dev Version is bumped when changes are made to this contract.\\n    uint64 internal constant RECEIVER_VERSION = 2;\\n\\n    /**\\n     * @param _delegate The delegate capable of making OApp configurations inside of the endpoint.\\n     * @dev Ownable is not initialized here on purpose. It should be initialized in the child contract to\\n     * accommodate the different version of Ownable.\\n     */\\n    function __OAppReceiver_init(address _delegate) internal onlyInitializing {\\n        __OAppCore_init(_delegate);\\n    }\\n\\n    function __OAppReceiver_init_unchained() internal onlyInitializing {}\\n\\n    /**\\n     * @notice Retrieves the OApp version information.\\n     * @return senderVersion The version of the OAppSender.sol contract.\\n     * @return receiverVersion The version of the OAppReceiver.sol contract.\\n     *\\n     * @dev Providing 0 as the default for OAppSender version. Indicates that the OAppSender is not implemented.\\n     * ie. this is a RECEIVE only OApp.\\n     * @dev If the OApp uses both OAppSender and OAppReceiver, then this needs to be override returning the correct versions.\\n     */\\n    function oAppVersion() public view virtual returns (uint64 senderVersion, uint64 receiverVersion) {\\n        return (0, RECEIVER_VERSION);\\n    }\\n\\n    /**\\n     * @notice Indicates whether an address is an approved composeMsg sender to the Endpoint.\\n     * @dev _origin The origin information containing the source endpoint and sender address.\\n     *  - srcEid: The source chain endpoint ID.\\n     *  - sender: The sender address on the src chain.\\n     *  - nonce: The nonce of the message.\\n     * @dev _message The lzReceive payload.\\n     * @param _sender The sender address.\\n     * @return isSender Is a valid sender.\\n     *\\n     * @dev Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.\\n     * @dev The default sender IS the OAppReceiver implementer.\\n     */\\n    function isComposeMsgSender(\\n        Origin calldata /*_origin*/,\\n        bytes calldata /*_message*/,\\n        address _sender\\n    ) public view virtual returns (bool) {\\n        return _sender == address(this);\\n    }\\n\\n    /**\\n     * @notice Checks if the path initialization is allowed based on the provided origin.\\n     * @param origin The origin information containing the source endpoint and sender address.\\n     * @return Whether the path has been initialized.\\n     *\\n     * @dev This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.\\n     * @dev This defaults to assuming if a peer has been set, its initialized.\\n     * Can be overridden by the OApp if there is other logic to determine this.\\n     */\\n    function allowInitializePath(Origin calldata origin) public view virtual returns (bool) {\\n        return peers(origin.srcEid) == origin.sender;\\n    }\\n\\n    /**\\n     * @notice Retrieves the next nonce for a given source endpoint and sender address.\\n     * @dev _srcEid The source endpoint ID.\\n     * @dev _sender The sender address.\\n     * @return nonce The next nonce.\\n     *\\n     * @dev The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.\\n     * @dev Is required by the off-chain executor to determine the OApp expects msg execution is ordered.\\n     * @dev This is also enforced by the OApp.\\n     * @dev By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.\\n     */\\n    function nextNonce(uint32, /*_srcEid*/ bytes32 /*_sender*/) public view virtual returns (uint64 nonce) {\\n        return 0;\\n    }\\n\\n    /**\\n     * @dev Entry point for receiving messages or packets from the endpoint.\\n     * @param _origin The origin information containing the source endpoint and sender address.\\n     *  - srcEid: The source chain endpoint ID.\\n     *  - sender: The sender address on the src chain.\\n     *  - nonce: The nonce of the message.\\n     * @param _guid The unique identifier for the received LayerZero message.\\n     * @param _message The payload of the received message.\\n     * @param _executor The address of the executor for the received message.\\n     * @param _extraData Additional arbitrary data provided by the corresponding executor.\\n     *\\n     * @dev Entry point for receiving msg/packet from the LayerZero endpoint.\\n     */\\n    function lzReceive(\\n        Origin calldata _origin,\\n        bytes32 _guid,\\n        bytes calldata _message,\\n        address _executor,\\n        bytes calldata _extraData\\n    ) public payable virtual {\\n        // Ensures that only the endpoint can attempt to lzReceive() messages to this OApp.\\n        if (address(endpoint) != msg.sender) revert OnlyEndpoint(msg.sender);\\n\\n        // Ensure that the sender matches the expected peer for the source endpoint.\\n        if (_getPeerOrRevert(_origin.srcEid) != _origin.sender) revert OnlyPeer(_origin.srcEid, _origin.sender);\\n\\n        // Call the internal OApp implementation of lzReceive.\\n        _lzReceive(_origin, _guid, _message, _executor, _extraData);\\n    }\\n\\n    /**\\n     * @dev Internal function to implement lzReceive logic without needing to copy the basic parameter validation.\\n     */\\n    function _lzReceive(\\n        Origin calldata _origin,\\n        bytes32 _guid,\\n        bytes calldata _message,\\n        address _executor,\\n        bytes calldata _extraData\\n    ) internal virtual;\\n}\\n\",\"keccak256\":\"0xa38e5d26d044331212af7fc69dbbdebf25f527811bbd0492a4cee9ecdd3bd671\",\"license\":\"MIT\"},\"@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppCore.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { ILayerZeroEndpointV2 } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\\\";\\n\\n/**\\n * @title IOAppCore\\n */\\ninterface IOAppCore {\\n    // Custom error messages\\n    error OnlyPeer(uint32 eid, bytes32 sender);\\n    error NoPeer(uint32 eid);\\n    error InvalidEndpointCall();\\n    error InvalidDelegate();\\n\\n    // Event emitted when a peer (OApp) is set for a corresponding endpoint\\n    event PeerSet(uint32 eid, bytes32 peer);\\n\\n    /**\\n     * @notice Retrieves the OApp version information.\\n     * @return senderVersion The version of the OAppSender.sol contract.\\n     * @return receiverVersion The version of the OAppReceiver.sol contract.\\n     */\\n    function oAppVersion() external view returns (uint64 senderVersion, uint64 receiverVersion);\\n\\n    /**\\n     * @notice Retrieves the LayerZero endpoint associated with the OApp.\\n     * @return iEndpoint The LayerZero endpoint as an interface.\\n     */\\n    function endpoint() external view returns (ILayerZeroEndpointV2 iEndpoint);\\n\\n    /**\\n     * @notice Retrieves the peer (OApp) associated with a corresponding endpoint.\\n     * @param _eid The endpoint ID.\\n     * @return peer The peer address (OApp instance) associated with the corresponding endpoint.\\n     */\\n    function peers(uint32 _eid) external view returns (bytes32 peer);\\n\\n    /**\\n     * @notice Sets the peer address (OApp instance) for a corresponding endpoint.\\n     * @param _eid The endpoint ID.\\n     * @param _peer The address of the peer to be associated with the corresponding endpoint.\\n     */\\n    function setPeer(uint32 _eid, bytes32 _peer) external;\\n\\n    /**\\n     * @notice Sets the delegate address for the OApp Core.\\n     * @param _delegate The address of the delegate to be set.\\n     */\\n    function setDelegate(address _delegate) external;\\n}\\n\",\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\"},\"@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.20;\\n\\nimport { ILayerZeroReceiver, Origin } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\\\";\\n\\ninterface IOAppReceiver is ILayerZeroReceiver {\\n    /**\\n     * @notice Indicates whether an address is an approved composeMsg sender to the Endpoint.\\n     * @param _origin The origin information containing the source endpoint and sender address.\\n     *  - srcEid: The source chain endpoint ID.\\n     *  - sender: The sender address on the src chain.\\n     *  - nonce: The nonce of the message.\\n     * @param _message The lzReceive payload.\\n     * @param _sender The sender address.\\n     * @return isSender Is a valid sender.\\n     *\\n     * @dev Applications can optionally choose to implement a separate composeMsg sender that is NOT the bridging layer.\\n     * @dev The default sender IS the OAppReceiver implementer.\\n     */\\n    function isComposeMsgSender(\\n        Origin calldata _origin,\\n        bytes calldata _message,\\n        address _sender\\n    ) external view returns (bool isSender);\\n}\\n\",\"keccak256\":\"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (access/Ownable2Step.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./OwnableUpgradeable.sol\\\";\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership} and {acceptOwnership}.\\n *\\n * This module is used through inheritance. It will make available all functions\\n * from parent (Ownable).\\n */\\nabstract contract Ownable2StepUpgradeable is Initializable, OwnableUpgradeable {\\n    function __Ownable2Step_init() internal onlyInitializing {\\n        __Ownable_init_unchained();\\n    }\\n\\n    function __Ownable2Step_init_unchained() internal onlyInitializing {\\n    }\\n    address private _pendingOwner;\\n\\n    event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Returns the address of the pending owner.\\n     */\\n    function pendingOwner() public view virtual returns (address) {\\n        return _pendingOwner;\\n    }\\n\\n    /**\\n     * @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual override onlyOwner {\\n        _pendingOwner = newOwner;\\n        emit OwnershipTransferStarted(owner(), newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual override {\\n        delete _pendingOwner;\\n        super._transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev The new owner accepts the ownership transfer.\\n     */\\n    function acceptOwnership() external {\\n        address sender = _msgSender();\\n        require(pendingOwner() == sender, \\\"Ownable2Step: caller is not the new owner\\\");\\n        _transferOwnership(sender);\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0xd712fb45b3ea0ab49679164e3895037adc26ce12879d5184feb040e01c1c07a9\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/ContextUpgradeable.sol\\\";\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract OwnableUpgradeable is Initializable, ContextUpgradeable {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    function __Ownable_init() internal onlyInitializing {\\n        __Ownable_init_unchained();\\n    }\\n\\n    function __Ownable_init_unchained() internal onlyInitializing {\\n        _transferOwnership(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        _checkOwner();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if the sender is not the owner.\\n     */\\n    function _checkOwner() internal view virtual {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions anymore. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby removing any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.1) (proxy/utils/Initializable.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../../utils/AddressUpgradeable.sol\\\";\\n\\n/**\\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\\n *\\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\\n * reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in\\n * case an upgrade adds a module that needs to be initialized.\\n *\\n * For example:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * contract MyToken is ERC20Upgradeable {\\n *     function initialize() initializer public {\\n *         __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\");\\n *     }\\n * }\\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\\n *     function initializeV2() reinitializer(2) public {\\n *         __ERC20Permit_init(\\\"MyToken\\\");\\n *     }\\n * }\\n * ```\\n *\\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\\n *\\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\\n *\\n * [CAUTION]\\n * ====\\n * Avoid leaving a contract uninitialized.\\n *\\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * /// @custom:oz-upgrades-unsafe-allow constructor\\n * constructor() {\\n *     _disableInitializers();\\n * }\\n * ```\\n * ====\\n */\\nabstract contract Initializable {\\n    /**\\n     * @dev Indicates that the contract has been initialized.\\n     * @custom:oz-retyped-from bool\\n     */\\n    uint8 private _initialized;\\n\\n    /**\\n     * @dev Indicates that the contract is in the process of being initialized.\\n     */\\n    bool private _initializing;\\n\\n    /**\\n     * @dev Triggered when the contract has been initialized or reinitialized.\\n     */\\n    event Initialized(uint8 version);\\n\\n    /**\\n     * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\\n     * `onlyInitializing` functions can be used to initialize parent contracts.\\n     *\\n     * Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\\n     * constructor.\\n     *\\n     * Emits an {Initialized} event.\\n     */\\n    modifier initializer() {\\n        bool isTopLevelCall = !_initializing;\\n        require(\\n            (isTopLevelCall && _initialized < 1) || (!AddressUpgradeable.isContract(address(this)) && _initialized == 1),\\n            \\\"Initializable: contract is already initialized\\\"\\n        );\\n        _initialized = 1;\\n        if (isTopLevelCall) {\\n            _initializing = true;\\n        }\\n        _;\\n        if (isTopLevelCall) {\\n            _initializing = false;\\n            emit Initialized(1);\\n        }\\n    }\\n\\n    /**\\n     * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\\n     * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\\n     * used to initialize parent contracts.\\n     *\\n     * A reinitializer may be used after the original initialization step. This is essential to configure modules that\\n     * are added through upgrades and that require initialization.\\n     *\\n     * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\\n     * cannot be nested. If one is invoked in the context of another, execution will revert.\\n     *\\n     * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\\n     * a contract, executing them in the right order is up to the developer or operator.\\n     *\\n     * WARNING: setting the version to 255 will prevent any future reinitialization.\\n     *\\n     * Emits an {Initialized} event.\\n     */\\n    modifier reinitializer(uint8 version) {\\n        require(!_initializing && _initialized < version, \\\"Initializable: contract is already initialized\\\");\\n        _initialized = version;\\n        _initializing = true;\\n        _;\\n        _initializing = false;\\n        emit Initialized(version);\\n    }\\n\\n    /**\\n     * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\\n     * {initializer} and {reinitializer} modifiers, directly or indirectly.\\n     */\\n    modifier onlyInitializing() {\\n        require(_initializing, \\\"Initializable: contract is not initializing\\\");\\n        _;\\n    }\\n\\n    /**\\n     * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\\n     * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\\n     * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\\n     * through proxies.\\n     *\\n     * Emits an {Initialized} event the first time it is successfully executed.\\n     */\\n    function _disableInitializers() internal virtual {\\n        require(!_initializing, \\\"Initializable: contract is initializing\\\");\\n        if (_initialized < type(uint8).max) {\\n            _initialized = type(uint8).max;\\n            emit Initialized(type(uint8).max);\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns the highest version that has been initialized. See {reinitializer}.\\n     */\\n    function _getInitializedVersion() internal view returns (uint8) {\\n        return _initialized;\\n    }\\n\\n    /**\\n     * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.\\n     */\\n    function _isInitializing() internal view returns (bool) {\\n        return _initializing;\\n    }\\n}\\n\",\"keccak256\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary AddressUpgradeable {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\n     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\n     *\\n     * _Available since v4.8._\\n     */\\n    function verifyCallResultFromTarget(\\n        address target,\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        if (success) {\\n            if (returndata.length == 0) {\\n                // only check isContract if the call was successful and the return data is empty\\n                // otherwise we already know that it was a contract\\n                require(isContract(target), \\\"Address: call to non-contract\\\");\\n            }\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason or using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    function _revert(bytes memory returndata, string memory errorMessage) private pure {\\n        // Look for revert reason and bubble it up if present\\n        if (returndata.length > 0) {\\n            // The easiest way to bubble the revert reason is using memory via assembly\\n            /// @solidity memory-safe-assembly\\n            assembly {\\n                let returndata_size := mload(returndata)\\n                revert(add(32, returndata), returndata_size)\\n            }\\n        } else {\\n            revert(errorMessage);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract ContextUpgradeable is Initializable {\\n    function __Context_init() internal onlyInitializing {\\n    }\\n\\n    function __Context_init_unchained() internal onlyInitializing {\\n    }\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[50] private __gap;\\n}\\n\",\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"@venusprotocol/solidity-utilities/contracts/validators.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\n/// @notice Thrown if the supplied address is a zero address where it is not allowed\\nerror ZeroAddressNotAllowed();\\n\\n/// @notice Thrown if the supplied value is 0 where it is not allowed\\nerror ZeroValueNotAllowed();\\n\\n/// @notice Checks if the provided address is nonzero, reverts otherwise\\n/// @param address_ Address to check\\n/// @custom:error ZeroAddressNotAllowed is thrown if the provided address is a zero address\\nfunction ensureNonzeroAddress(address address_) pure {\\n    if (address_ == address(0)) {\\n        revert ZeroAddressNotAllowed();\\n    }\\n}\\n\\n/// @notice Checks if the provided value is nonzero, reverts otherwise\\n/// @param value_ Value to check\\n/// @custom:error ZeroValueNotAllowed is thrown if the provided value is 0\\nfunction ensureNonzeroValue(uint256 value_) pure {\\n    if (value_ == 0) {\\n        revert ZeroValueNotAllowed();\\n    }\\n}\\n\",\"keccak256\":\"0xdb88e14d50dd21889ca3329d755673d022c47e8da005b6a545c7f69c2c4b7b86\",\"license\":\"BSD-3-Clause\"},\"contracts/Governance/AccessControlledV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\\\";\\nimport \\\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\\\";\\n\\nimport \\\"./IAccessControlManagerV8.sol\\\";\\n\\n/**\\n * @title AccessControlledV8\\n * @author Venus\\n * @notice This contract is helper between access control manager and actual contract. This contract further inherited by other contract (using solidity 0.8.13)\\n * to integrate access controlled mechanism. It provides initialise methods and verifying access methods.\\n */\\nabstract contract AccessControlledV8 is Initializable, Ownable2StepUpgradeable {\\n    /// @notice Access control manager contract\\n    IAccessControlManagerV8 internal _accessControlManager;\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n\\n    /// @notice Emitted when access control manager contract address is changed\\n    event NewAccessControlManager(address oldAccessControlManager, address newAccessControlManager);\\n\\n    /// @notice Thrown when the action is prohibited by AccessControlManager\\n    error Unauthorized(address sender, address calledContract, string methodSignature);\\n\\n    function __AccessControlled_init(address accessControlManager_) internal onlyInitializing {\\n        __Ownable2Step_init();\\n        __AccessControlled_init_unchained(accessControlManager_);\\n    }\\n\\n    function __AccessControlled_init_unchained(address accessControlManager_) internal onlyInitializing {\\n        _setAccessControlManager(accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Sets the address of AccessControlManager\\n     * @dev Admin function to set address of AccessControlManager\\n     * @param accessControlManager_ The new address of the AccessControlManager\\n     * @custom:event Emits NewAccessControlManager event\\n     * @custom:access Only Governance\\n     */\\n    function setAccessControlManager(address accessControlManager_) external onlyOwner {\\n        _setAccessControlManager(accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Returns the address of the access control manager contract\\n     */\\n    function accessControlManager() external view returns (IAccessControlManagerV8) {\\n        return _accessControlManager;\\n    }\\n\\n    /**\\n     * @dev Internal function to set address of AccessControlManager\\n     * @param accessControlManager_ The new address of the AccessControlManager\\n     */\\n    function _setAccessControlManager(address accessControlManager_) internal {\\n        require(address(accessControlManager_) != address(0), \\\"invalid acess control manager address\\\");\\n        address oldAccessControlManager = address(_accessControlManager);\\n        _accessControlManager = IAccessControlManagerV8(accessControlManager_);\\n        emit NewAccessControlManager(oldAccessControlManager, accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Reverts if the call is not allowed by AccessControlManager\\n     * @param signature Method signature\\n     */\\n    function _checkAccessAllowed(string memory signature) internal view {\\n        bool isAllowedToCall = _accessControlManager.isAllowedToCall(msg.sender, signature);\\n\\n        if (!isAllowedToCall) {\\n            revert Unauthorized(msg.sender, address(this), signature);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xe7f5f96c70fb32912ecc0032f81f7876607353413fe7f723d41d260ac9c26a06\",\"license\":\"BSD-3-Clause\"},\"contracts/Governance/IAccessControlManagerV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/access/IAccessControl.sol\\\";\\n\\n/**\\n * @title IAccessControlManagerV8\\n * @author Venus\\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\\n */\\ninterface IAccessControlManagerV8 is IAccessControl {\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\\n\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) external;\\n\\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\\n\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xaa29b098440d0b3a131c5ecdf25ce548790c1b5ac7bf9b5c0264b6af6f7a1e0b\",\"license\":\"BSD-3-Clause\"},\"contracts/RiskSteward/DestinationStewardReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { OwnableUpgradeable } from \\\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\\\";\\nimport { Ownable2StepUpgradeable } from \\\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\\\";\\nimport { IDestinationStewardReceiver } from \\\"./Interfaces/IDestinationStewardReceiver.sol\\\";\\nimport { RiskParameterUpdate } from \\\"./Interfaces/IRiskOracle.sol\\\";\\nimport { IRiskSteward } from \\\"./Interfaces/IRiskSteward.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\nimport { AccessControlledV8 } from \\\"../Governance/AccessControlledV8.sol\\\";\\nimport { IIsolatedPoolsComptroller } from \\\"../interfaces/IIsolatedPoolsComptroller.sol\\\";\\nimport { OAppReceiverUpgradeable, Origin } from \\\"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppReceiverUpgradeable.sol\\\";\\nimport { OAppCoreUpgradeable } from \\\"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppCoreUpgradeable.sol\\\";\\n\\n/**\\n * @title DestinationStewardReceiver\\n * @author Venus\\n * @notice Destination\\u2011chain contract that receives bridged updates from `RiskStewardReceiver` via LayerZero,\\n *         enforces a fixed remote delay, and then executes the updates on the configured `IRiskSteward` contracts.\\n * @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion\\n */\\ncontract DestinationStewardReceiver is IDestinationStewardReceiver, AccessControlledV8, OAppReceiverUpgradeable {\\n    /**\\n     * @notice Time before a bridged update is considered stale on the destination chain\\n     */\\n    uint256 public constant REMOTE_UPDATE_EXPIRATION_TIME = 2 days;\\n\\n    /**\\n     * @notice Destination chain LayerZero endpoint ID\\n     */\\n    uint32 public immutable LAYER_ZERO_EID;\\n\\n    /**\\n     * @notice Delay before a bridged update can be executed on the destination chain\\n     */\\n    uint256 public remoteDelay;\\n\\n    /**\\n     * @notice Mapping of supported risk configurations per update type (hashed updateType string)\\n     */\\n    mapping(bytes32 => RiskParamConfig) public riskParameterConfigs;\\n\\n    /**\\n     * @notice Master storage of all bridged updates by update ID\\n     */\\n    mapping(uint256 updateId => DestinationUpdate) public updates;\\n\\n    /**\\n     * @notice Mapping from (updateType, market) to currently registered remote update ID\\n     */\\n    mapping(bytes32 => mapping(address market => uint256)) public lastRegisteredUpdateId;\\n\\n    /**\\n     * @notice Track last executed update timestamp per (updateType, market)\\n     */\\n    mapping(bytes32 => mapping(address market => uint256)) public lastExecutedAt;\\n\\n    /**\\n     * @notice Mapping from executor address to whitelist status\\n     */\\n    mapping(address => bool) public whitelistedExecutors;\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[44] private __gap;\\n\\n    /**\\n     * @notice Modifier that ensures only whitelisted executors can call the function\\n     * @custom:error NotAnExecutor if the caller is not a whitelisted executor\\n     */\\n    modifier onlyWhitelistedExecutors() {\\n        if (!whitelistedExecutors[msg.sender]) {\\n            revert NotAnExecutor();\\n        }\\n        _;\\n    }\\n\\n    /**\\n     * @notice Disables initializers and sets immutable values.\\n     * @param endpoint_ Local LayerZero endpoint on this chain\\n     * @param layerZeroEid_ LayerZero endpoint ID for this destination chain\\n     * @custom:oz-upgrades-unsafe-allow constructor\\n     */\\n    constructor(address endpoint_, uint32 layerZeroEid_) OAppCoreUpgradeable(endpoint_) {\\n        _disableInitializers();\\n        ensureNonzeroAddress(endpoint_);\\n        if (layerZeroEid_ == 0) revert InvalidLayerZeroEid();\\n\\n        LAYER_ZERO_EID = layerZeroEid_;\\n    }\\n\\n    /**\\n     * @notice Initializes the contract with the Access Control Manager and owner.\\n     * @param accessControlManager_ The address of the access control manager\\n     * @param delegate_ The owner (and LayerZero delegate) of this contract\\n     */\\n    function initialize(address accessControlManager_, address delegate_) external initializer {\\n        __AccessControlled_init(accessControlManager_);\\n        __OAppReceiver_init(delegate_);\\n        remoteDelay = 6 hours; // Default value\\n        emit RemoteDelaySet(remoteDelay);\\n    }\\n\\n    /**\\n     * @notice Sets the risk parameter config for a given update type on the destination chain.\\n     * @param updateType The type of update to configure (e.g., \\\"supplyCap\\\", \\\"borrowCap\\\")\\n     * @param riskSteward The address for the risk steward contract responsible for processing the update\\n     * @param debounce The debounce period for updates of this type on the destination (anti\\u2011DoS)\\n     * @custom:access Controlled by AccessControlManager\\n     * @custom:event Emits RiskParameterConfigUpdated\\n     * @custom:error InvalidUpdateType if the update type string is empty\\n     * @custom:error InvalidDebounce if the debounce is 0\\n     */\\n    function setRiskParameterConfig(string calldata updateType, address riskSteward, uint256 debounce) external {\\n        _checkAccessAllowed(\\\"setRiskParameterConfig(string,address,uint256)\\\");\\n        ensureNonzeroAddress(riskSteward);\\n\\n        if (bytes(updateType).length == 0 || bytes(updateType).length > 64) {\\n            revert InvalidUpdateType();\\n        }\\n\\n        if (debounce == 0) {\\n            revert InvalidDebounce();\\n        }\\n\\n        bytes32 key = keccak256(bytes(updateType));\\n        RiskParamConfig storage previousConfig = riskParameterConfigs[key];\\n\\n        riskParameterConfigs[key] = RiskParamConfig({ active: true, debounce: debounce, riskSteward: riskSteward });\\n\\n        emit RiskParameterConfigUpdated(\\n            key,\\n            updateType,\\n            previousConfig.riskSteward,\\n            riskSteward,\\n            previousConfig.debounce,\\n            debounce,\\n            previousConfig.active,\\n            true\\n        );\\n    }\\n\\n    /**\\n     * @notice Sets the active status of a risk parameter config\\n     * @param updateType The type of update to configure\\n     * @param active The active status to set\\n     * @custom:access Controlled by AccessControlManager\\n     * @custom:event Emits ConfigActiveUpdated with the update type hash, update type, previous active status, and the active status\\n     * @custom:error Throws UnsupportedUpdateType if the update type is not supported\\n     * @custom:error Throws ConfigStatusUnchanged if the active status is already set to the desired value\\n     */\\n    function setConfigActive(string calldata updateType, bool active) external {\\n        _checkAccessAllowed(\\\"setConfigActive(string,bool)\\\");\\n        bytes32 key = keccak256(bytes(updateType));\\n\\n        if (riskParameterConfigs[key].riskSteward == address(0)) {\\n            revert UnsupportedUpdateType();\\n        }\\n\\n        bool previousActive = riskParameterConfigs[key].active;\\n        if (previousActive == active) {\\n            revert ConfigStatusUnchanged();\\n        }\\n\\n        riskParameterConfigs[key].active = active;\\n        emit ConfigActiveUpdated(key, updateType, previousActive, active);\\n    }\\n\\n    /**\\n     * @notice Sets the remote delay before bridged updates can be executed on the destination chain.\\n     * @param newRemoteDelay The new remote delay in seconds\\n     * @custom:access Controlled by AccessControlManager\\n     * @custom:event Emits RemoteDelaySet with the new remote delay value\\n     * @custom:error InvalidRemoteDelay if the delay is 0 or greater than or equal to the remote update expiration time\\n     * @custom:error RemoteDelayUnchanged if the new delay is equal to the current delay\\n     */\\n    function setRemoteDelay(uint256 newRemoteDelay) external {\\n        _checkAccessAllowed(\\\"setRemoteDelay(uint256)\\\");\\n\\n        if (newRemoteDelay == 0 || newRemoteDelay >= REMOTE_UPDATE_EXPIRATION_TIME) {\\n            revert InvalidRemoteDelay();\\n        }\\n\\n        uint256 previousDelay = remoteDelay;\\n        if (previousDelay == newRemoteDelay) {\\n            revert RemoteDelayUnchanged();\\n        }\\n\\n        remoteDelay = newRemoteDelay;\\n        emit RemoteDelaySet(newRemoteDelay);\\n    }\\n\\n    /**\\n     * @notice Sets the whitelist status of an executor on the destination chain.\\n     * @param executor The address of the executor\\n     * @param approved The whitelist status to set (true to whitelist, false to remove)\\n     * @custom:access Controlled by AccessControlManager\\n     * @custom:event Emits ExecutorStatusUpdated with the executor address, previous approval status, and new approval status\\n     * @custom:error Throws ZeroAddressNotAllowed if the executor address is zero\\n     * @custom:error Throws ExecutorStatusUnchanged if the executor whitelist status is already set to the desired value\\n     */\\n    function setWhitelistedExecutor(address executor, bool approved) external {\\n        _checkAccessAllowed(\\\"setWhitelistedExecutor(address,bool)\\\");\\n        ensureNonzeroAddress(executor);\\n        bool previousApproved = whitelistedExecutors[executor];\\n        if (previousApproved == approved) {\\n            revert ExecutorStatusUnchanged();\\n        }\\n\\n        whitelistedExecutors[executor] = approved;\\n        emit ExecutorStatusUpdated(executor, previousApproved, approved);\\n    }\\n\\n    /**\\n     * @notice Executes a bridged update after its remote delay has passed.\\n     * @param updateId The bridged update ID to execute\\n     * @custom:access Only whitelisted executors can execute updates\\n     * @custom:event Emits RemoteUpdateExecuted with the executed update ID\\n     * @custom:error NotAnExecutor if the caller is not a whitelisted executor\\n     * @custom:error ConfigNotActive if the configuration for the update type is not active\\n     * @custom:error UpdateNotFound if the update is not pending for the given (updateType, market)\\n     * @custom:error UpdateNotUnlocked if the remote delay has not elapsed\\n     * @custom:error UpdateIsExpired if the bridged update has expired on the destination\\n     * @custom:error UpdateTooFrequent if the debounce period has not passed since the last execution\\n     */\\n    function executeUpdate(uint256 updateId) external onlyWhitelistedExecutors {\\n        DestinationUpdate storage destUpdate = updates[updateId];\\n        RiskParameterUpdate memory update = destUpdate.update;\\n        bytes32 updateTypeKey = update.updateTypeKey;\\n        RiskParamConfig storage config = riskParameterConfigs[updateTypeKey];\\n        uint256 currentTime = block.timestamp;\\n\\n        if (!config.active) {\\n            revert ConfigNotActive();\\n        }\\n\\n        if (destUpdate.status != UpdateStatus.Pending) {\\n            revert UpdateNotFound();\\n        }\\n\\n        if (currentTime < destUpdate.arrivalTime + remoteDelay) {\\n            revert UpdateNotUnlocked();\\n        }\\n\\n        if (update.timestamp + REMOTE_UPDATE_EXPIRATION_TIME < currentTime) {\\n            revert UpdateIsExpired();\\n        }\\n\\n        // Destination-side debounce based on last execution for this (updateType, market)\\n        uint256 lastExecutionTime = lastExecutedAt[updateTypeKey][update.market];\\n        if (lastExecutionTime != 0 && (lastExecutionTime + config.debounce > currentTime)) {\\n            revert UpdateTooFrequent();\\n        }\\n\\n        lastExecutedAt[updateTypeKey][update.market] = currentTime;\\n        destUpdate.status = UpdateStatus.Executed;\\n        destUpdate.executor = msg.sender;\\n\\n        IRiskSteward(config.riskSteward).applyUpdate(update);\\n\\n        emit RemoteUpdateExecuted(updateId);\\n    }\\n\\n    /**\\n     * @notice Rejects a registered remote update on the destination chain.\\n     * @param updateId The oracle update ID of the update to reject\\n     * @custom:access Only whitelisted executors can reject updates\\n     * @custom:event Emits UpdateRejected with the rejected update ID\\n     * @custom:error NotAnExecutor if the caller is not a whitelisted executor\\n     * @custom:error UpdateNotFound if there is no pending update with the given ID\\n     */\\n    function rejectUpdate(uint256 updateId) external onlyWhitelistedExecutors {\\n        DestinationUpdate storage destUpdate = updates[updateId];\\n\\n        if (destUpdate.status != UpdateStatus.Pending) {\\n            revert UpdateNotFound();\\n        }\\n\\n        destUpdate.status = UpdateStatus.Rejected;\\n        emit UpdateRejected(updateId);\\n    }\\n\\n    /**\\n     * @notice Returns executable updates for a given update type and comptroller.\\n     * @param updateType The human\\u2011readable identifier of the update type to filter by\\n     * @param comptroller The address of the Isolated Pools Comptroller that manages the markets\\n     * @return executableUpdates Array of update IDs that are ready to be executed\\n     */\\n    function getExecutableUpdates(\\n        string calldata updateType,\\n        address comptroller\\n    ) external view returns (uint256[] memory executableUpdates) {\\n        bytes32 updateTypeKey = keccak256(bytes(updateType));\\n        address[] memory markets = IIsolatedPoolsComptroller(comptroller).getAllMarkets();\\n        uint256 maxUpdates = markets.length;\\n        uint256[] memory tempArray = new uint256[](maxUpdates);\\n        uint256 count = 0;\\n        RiskParamConfig storage config = riskParameterConfigs[updateTypeKey];\\n\\n        if (!config.active) return new uint256[](0);\\n\\n        for (uint256 i = 0; i < maxUpdates; ++i) {\\n            address market = markets[i];\\n            uint256 registeredUpdateId = lastRegisteredUpdateId[updateTypeKey][market];\\n            DestinationUpdate storage destUpdate = updates[registeredUpdateId];\\n\\n            if (!_checkPendingUpdate(registeredUpdateId)) continue;\\n\\n            // Validate Remote Delay\\n            if (block.timestamp < destUpdate.arrivalTime + remoteDelay) continue;\\n\\n            // Debounce: skip if last execution for this (updateType, market) is too recent\\n            uint256 lastExecutionTime = lastExecutedAt[updateTypeKey][market];\\n            if (lastExecutionTime != 0 && (lastExecutionTime + config.debounce > block.timestamp)) continue;\\n\\n            tempArray[count] = registeredUpdateId;\\n            count++;\\n        }\\n\\n        executableUpdates = new uint256[](count);\\n        for (uint256 i = 0; i < count; ++i) {\\n            executableUpdates[i] = tempArray[i];\\n        }\\n    }\\n\\n    /**\\n     * @notice Returns the risk parameter configuration for a given update type\\n     * @param updateType The human-readable identifier of the update type\\n     * @return The risk parameter configuration\\n     */\\n    function getRiskParameterConfig(string calldata updateType) external view returns (RiskParamConfig memory) {\\n        bytes32 key = keccak256(bytes(updateType));\\n        return riskParameterConfigs[key];\\n    }\\n\\n    /**\\n     * @notice Returns the registered update for a given update type and market\\n     * @param updateType The human-readable identifier of the update type\\n     * @param market The address of the market\\n     * @return The registered update\\n     */\\n    function getRegisteredUpdate(\\n        string calldata updateType,\\n        address market\\n    ) external view returns (DestinationUpdate memory) {\\n        bytes32 key = keccak256(bytes(updateType));\\n        uint256 updateId = lastRegisteredUpdateId[key][market];\\n        return updates[updateId];\\n    }\\n\\n    /**\\n     * @notice Returns the last executed timestamp for a given update type and market\\n     * @param updateType The human-readable identifier of the update type\\n     * @param market The address of the market\\n     * @return The last executed timestamp\\n     */\\n    function getLastExecutedAt(string calldata updateType, address market) external view returns (uint256) {\\n        bytes32 key = keccak256(bytes(updateType));\\n        return lastExecutedAt[key][market];\\n    }\\n\\n    /**\\n     * @dev Overrides OwnableUpgradeable and Ownable2StepUpgradeable to resolve\\n     *      the multiple inheritance ownership transfer conflict.\\n     */\\n    function transferOwnership(\\n        address newOwner\\n    ) public override(OwnableUpgradeable, Ownable2StepUpgradeable) onlyOwner {\\n        Ownable2StepUpgradeable.transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Internal hook to finalize ownership transfer, resolving the\\n     *      OwnableUpgradeable and Ownable2StepUpgradeable inheritance conflict.\\n     */\\n    function _transferOwnership(address newOwner) internal override(OwnableUpgradeable, Ownable2StepUpgradeable) {\\n        Ownable2StepUpgradeable._transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @notice Internal LayerZero receive hook that handles bridged updates from the source-chain `RiskStewardReceiver`.\\n     * @dev Emits `DuplicateUpdateReceived`, `RegisteredPendingUpdateExist`, or `RemoteUpdateRegistered`\\n     *      depending on whether the update ID was already seen or a non\\u2011expired pending update exists.\\n     * @param payload Encoded `RiskParameterUpdate` sent from the source chain\\n     */\\n    function _lzReceive(Origin calldata, bytes32, bytes calldata payload, address, bytes calldata) internal override {\\n        RiskParameterUpdate memory update = abi.decode(payload, (RiskParameterUpdate));\\n        uint256 newId = update.updateId;\\n        uint256 arrivalTime = block.timestamp;\\n\\n        // If this update ID was already stored, treat as a duplicate and do not overwrite\\n        if (updates[newId].status != UpdateStatus.None) {\\n            emit DuplicateUpdateReceived(newId, arrivalTime, update.updateType, update.market);\\n            return;\\n        }\\n\\n        // If already an update in Process do not override the registered update\\n        uint256 currentRegisteredId = lastRegisteredUpdateId[update.updateTypeKey][update.market];\\n        if (_checkPendingUpdate(currentRegisteredId)) {\\n            emit RegisteredPendingUpdateExist(currentRegisteredId, arrivalTime, update.updateType, update.market);\\n            return;\\n        }\\n\\n        DestinationUpdate storage destUpdate = updates[newId];\\n        destUpdate.update = update;\\n        destUpdate.status = UpdateStatus.Pending;\\n        destUpdate.arrivalTime = arrivalTime;\\n        lastRegisteredUpdateId[update.updateTypeKey][update.market] = newId;\\n        emit RemoteUpdateRegistered(newId, arrivalTime, update.updateType, update.market);\\n    }\\n\\n    /**\\n     * @notice Checks whether a given registered update ID corresponds to a pending, non\\u2011expired update.\\n     * @param currentRegisteredId The currently registered update ID for a specific (updateType, market) pair\\n     * @return True if currentRegisteredId is non\\u2011zero, the update status is Pending, and it has not expired; otherwise false\\n     */\\n    function _checkPendingUpdate(uint256 currentRegisteredId) internal view returns (bool) {\\n        if (currentRegisteredId == 0) return false; // no registered update\\n\\n        DestinationUpdate storage current = updates[currentRegisteredId];\\n\\n        if (current.status != UpdateStatus.Pending) return false;\\n\\n        // Check expiration\\n        return current.update.timestamp + REMOTE_UPDATE_EXPIRATION_TIME >= block.timestamp;\\n    }\\n\\n    /**\\n     * @notice Disables renounceOwnership function\\n     * @custom:error Throws RenounceOwnershipNotAllowed\\n     */\\n    function renounceOwnership() public pure override {\\n        revert RenounceOwnershipNotAllowed();\\n    }\\n}\\n\",\"keccak256\":\"0x2b4c0e85964fb89b8ab7aa9a4f427d8e40000dcaf10267480ee5edf6c5fac985\",\"license\":\"BSD-3-Clause\"},\"contracts/RiskSteward/Interfaces/IDestinationStewardReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { RiskParameterUpdate } from \\\"./IRiskOracle.sol\\\";\\n\\ninterface IDestinationStewardReceiver {\\n    /**\\n     * @notice Local status of an update on the destination chain\\n     */\\n    enum UpdateStatus {\\n        None,\\n        Pending,\\n        Executed,\\n        Rejected\\n    }\\n\\n    /**\\n     * @notice Configuration for a risk parameter update type on the destination chain.\\n     * @param active Whether this update type configuration is currently active\\n     * @param debounce Minimum delay between consecutive executions for the same (updateType, market) pair\\n     * @param riskSteward Address of the risk steward contract responsible for processing this update type\\n     */\\n    struct RiskParamConfig {\\n        bool active;\\n        uint256 debounce;\\n        address riskSteward;\\n    }\\n\\n    /**\\n     * @notice Destination-side storage for a bridged risk parameter update.\\n     * @param update The full risk parameter update payload received from the source chain\\n     * @param status Current local status of the bridged update (Pending, Executed, Rejected)\\n     * @param arrivalTime Timestamp when the update was received on this chain\\n     * @param executor Address of the executor who executed this update on the destination (address(0) not executed yet)\\n     * @dev Unlock time is derived as `arrivalTime + remoteDelay` instead of being stored separately.\\n     */\\n    struct DestinationUpdate {\\n        RiskParameterUpdate update;\\n        UpdateStatus status;\\n        uint256 arrivalTime;\\n        address executor;\\n    }\\n\\n    /**\\n     * @notice Emitted when a risk parameter config is updated for an update type\\n     */\\n    event RiskParameterConfigUpdated(\\n        bytes32 indexed updateTypeHash,\\n        string updateType,\\n        address indexed previousRiskSteward,\\n        address indexed riskSteward,\\n        uint256 previousDebounce,\\n        uint256 debounce,\\n        bool previousActive,\\n        bool active\\n    );\\n\\n    /**\\n     * @notice Emitted when a bridged update is registered on the destination\\n     */\\n    event RemoteUpdateRegistered(\\n        uint256 indexed updateId,\\n        uint256 arrivalTime,\\n        string indexed updateType,\\n        address indexed market\\n    );\\n\\n    /**\\n     * @notice Emitted when a new bridged update arrives but a pending update is already registered for the same (updateType, market).\\n     */\\n    event RegisteredPendingUpdateExist(\\n        uint256 indexed updateId,\\n        uint256 arrivalTime,\\n        string indexed updateType,\\n        address indexed market\\n    );\\n\\n    /**\\n     * @notice Emitted when a duplicate bridged update (same updateId) is received.\\n     */\\n    event DuplicateUpdateReceived(\\n        uint256 indexed updateId,\\n        uint256 arrivalTime,\\n        string indexed updateType,\\n        address indexed market\\n    );\\n\\n    /**\\n     * @notice Emitted when a bridged update is executed on the destination\\n     */\\n    event RemoteUpdateExecuted(uint256 indexed updateId);\\n\\n    /**\\n     * @notice Emitted when an executor status is set on the destination\\n     */\\n    event ExecutorStatusUpdated(address indexed executor, bool previousApproved, bool approved);\\n\\n    /**\\n     * @notice Emitted when a risk parameter config active status is updated\\n     */\\n    event ConfigActiveUpdated(\\n        bytes32 indexed updateTypeHash,\\n        string updateType,\\n        bool previousActive,\\n        bool indexed active\\n    );\\n\\n    /**\\n     * @notice Emitted when an update is rejected on the destination\\n     */\\n    event UpdateRejected(uint256 indexed updateId);\\n\\n    /**\\n     * @notice Emitted when the remote delay is set in the constructor\\n     */\\n    event RemoteDelaySet(uint256 remoteDelay);\\n\\n    /**\\n     * @notice Thrown when trying to operate on an update that was never registered\\n     */\\n    error UpdateNotFound();\\n\\n    /**\\n     * @notice Thrown when trying to execute an update before its unlock time\\n     */\\n    error UpdateNotUnlocked();\\n\\n    /**\\n     * @notice Thrown when config for an update type is not active or not configured\\n     */\\n    error ConfigNotActive();\\n\\n    /**\\n     * @notice Thrown when a bridged update has expired on the destination\\n     */\\n    error UpdateIsExpired();\\n\\n    /**\\n     * @notice Thrown when the debounce period hasn't passed for applying an update to a specific market / update type\\n     */\\n    error UpdateTooFrequent();\\n\\n    /**\\n     * @notice Thrown when an empty update type string is provided\\n     */\\n    error InvalidUpdateType();\\n\\n    /**\\n     * @notice Thrown when an update type is not supported\\n     */\\n    error UnsupportedUpdateType();\\n\\n    /**\\n     * @notice Thrown when a debounce value of 0 is set\\n     */\\n    error InvalidDebounce();\\n\\n    /**\\n     * @notice Thrown when an address is not a whitelisted executor\\n     */\\n    error NotAnExecutor();\\n\\n    /**\\n     * @notice Thrown when an invalid LayerZero endpoint ID is provided\\n     */\\n    error InvalidLayerZeroEid();\\n\\n    /**\\n     * @notice Thrown when an invalid remote delay is provided\\n     */\\n    error InvalidRemoteDelay();\\n\\n    /**\\n     * @notice Thrown when trying to set the same remote delay value\\n     */\\n    error RemoteDelayUnchanged();\\n\\n    /**\\n     * @notice Thrown when trying to renounce ownership\\n     */\\n    error RenounceOwnershipNotAllowed();\\n\\n    /**\\n     * @notice Thrown when trying to set the same config active status\\n     */\\n    error ConfigStatusUnchanged();\\n\\n    /**\\n     * @notice Thrown when trying to set the same executor whitelist status\\n     */\\n    error ExecutorStatusUnchanged();\\n\\n    function setRiskParameterConfig(string calldata updateType, address riskSteward, uint256 debounce) external;\\n\\n    function setConfigActive(string calldata updateType, bool active) external;\\n\\n    function setWhitelistedExecutor(address executor, bool approved) external;\\n\\n    function setRemoteDelay(uint256 newRemoteDelay) external;\\n\\n    function executeUpdate(uint256 updateId) external;\\n\\n    function rejectUpdate(uint256 updateId) external;\\n\\n    function getExecutableUpdates(\\n        string calldata updateType,\\n        address comptroller\\n    ) external view returns (uint256[] memory executableUpdates);\\n\\n    function getRiskParameterConfig(string calldata updateType) external view returns (RiskParamConfig memory);\\n\\n    function getRegisteredUpdate(\\n        string calldata updateType,\\n        address market\\n    ) external view returns (DestinationUpdate memory);\\n\\n    function getLastExecutedAt(string calldata updateType, address market) external view returns (uint256);\\n}\\n\",\"keccak256\":\"0xa925bdc043521f851b9cc539478290d0d94b94c4c15688ab24b4e75658467e35\",\"license\":\"BSD-3-Clause\"},\"contracts/RiskSteward/Interfaces/IRiskOracle.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity 0.8.25;\\n\\n/**\\n * @notice Struct representing a risk parameter update published by the Risk Oracle\\n * @param referenceId External reference ID, potentially linking to a document or off-chain data\\n * @param updateId Unique identifier for this specific update\\n * @param market Address of the market for which the parameter update applies\\n * @param updateType Classification of the update type for validation purposes (human-readable)\\n * @param updateTypeKey Keccak256 hash of updateType for efficient comparisons\\n * @param newValue Encoded new value of the risk parameter, flexible for various data types\\n * @param previousValue Previous value of the parameter for historical comparison\\n * @param timestamp Block timestamp when the update was published\\n * @param publisher Address of the account that published this update\\n * @param poolId Pool identifier for eMode-style collateral configuration (0 for regular markets)\\n * @param destLzEid LayerZero endpoint ID of the destination chain (0 for local execution)\\n * @param additionalData Additional metadata or data associated with the update\\n */\\nstruct RiskParameterUpdate {\\n    string referenceId;\\n    uint256 updateId;\\n    address market;\\n    string updateType;\\n    bytes32 updateTypeKey;\\n    bytes newValue;\\n    bytes previousValue;\\n    uint256 timestamp;\\n    address publisher;\\n    uint96 poolId;\\n    uint32 destLzEid;\\n    bytes additionalData;\\n}\\n\\n/**\\n * @title IRiskOracle\\n * @author Venus\\n * @notice Interface for Risk Oracle contract that manages and publishes risk parameter updates\\n */\\ninterface IRiskOracle {\\n    /// @notice Event emitted when a risk parameter update is published\\n    event UpdatePublished(\\n        string referenceId,\\n        uint256 indexed updateId,\\n        address indexed market,\\n        string indexed updateType,\\n        bytes newValue,\\n        bytes previousValue,\\n        uint256 timestamp,\\n        address publisher,\\n        bytes additionalData\\n    );\\n\\n    /// @notice Event emitted when a new authorized sender is added\\n    event AuthorizedSenderAdded(address indexed sender);\\n\\n    /// @notice Event emitted when an authorized sender is removed\\n    event AuthorizedSenderRemoved(address indexed sender);\\n\\n    /// @notice Event emitted when a new update type is added\\n    event UpdateTypeAdded(string indexed updateType);\\n\\n    /// @notice Event emitted when an update type's active status is changed\\n    event UpdateTypeActiveStatusChanged(string indexed updateType, bool previousActive, bool active);\\n\\n    /// @notice Thrown when sender is not authorized\\n    error SenderNotAuthorized();\\n\\n    /// @notice Thrown when sender is already authorized\\n    error SenderAlreadyAuthorized();\\n\\n    /// @notice Thrown when update type string is invalid\\n    error InvalidUpdateTypeString();\\n\\n    /// @notice Thrown when update type already exists\\n    error UpdateTypeAlreadyExists();\\n\\n    /// @notice Thrown when update type doesn't exist\\n    error UpdateTypeNotFound();\\n\\n    /// @notice Thrown when update type active status is already set to the desired value\\n    error UpdateTypeStatusUnchanged();\\n\\n    /// @notice Thrown when update type is not active\\n    error UpdateTypeNotActive();\\n\\n    /// @notice Thrown when no update is found\\n    error NoUpdateFound();\\n\\n    /// @notice Thrown when update ID is invalid\\n    error InvalidUpdateId();\\n\\n    /// @notice Thrown when array lengths don't match in bulk operations\\n    error ArrayLengthMismatch();\\n\\n    /// @notice Thrown when trying to renounce ownership\\n    error RenounceOwnershipNotAllowed();\\n\\n    /**\\n     * @notice Returns the update type string at the given index in the allUpdateTypes array\\n     * @param index The index in the allUpdateTypes array\\n     * @return The update type string at the specified index\\n     */\\n    function allUpdateTypes(uint256 index) external view returns (string memory);\\n\\n    /**\\n     * @notice Returns the total number of update types in the allUpdateTypes array\\n     * @return The length of the allUpdateTypes array\\n     */\\n    function allUpdateTypesLength() external view returns (uint256);\\n\\n    /**\\n     * @notice Returns all update types in the allUpdateTypes array\\n     * @return An array of all update type strings\\n     */\\n    function getAllUpdateTypes() external view returns (string[] memory);\\n\\n    /**\\n     * @notice Checks if a given update type is currently active\\n     * @param updateType The update type string to check\\n     * @return True if the update type is active, false otherwise\\n     */\\n    function getActiveUpdateTypes(string memory updateType) external view returns (bool);\\n\\n    /**\\n     * @notice Checks if a given update type is currently active\\n     * @param updateTypeKey The keccak256 hash of the update type string\\n     * @return True if the update type key is active, false otherwise\\n     */\\n    function activeUpdateTypes(bytes32 updateTypeKey) external view returns (bool);\\n\\n    /**\\n     * @notice Checks if an address is authorized to publish updates\\n     * @param sender The address to check for authorization\\n     * @return True if the address is authorized, false otherwise\\n     */\\n    function authorizedSenders(address sender) external view returns (bool);\\n\\n    /**\\n     * @notice Gets the latest update ID for a specific market and update type combination\\n     * @param updateTypeKey The keccak256 hash of the update type string\\n     * @param market The market address\\n     * @return The latest update ID for the given market and update type key, or 0 if none exists\\n     */\\n    function latestUpdateIdByMarketAndType(bytes32 updateTypeKey, address market) external view returns (uint256);\\n\\n    /**\\n     * @notice Returns the total number of updates that have been published\\n     * @return The current update counter value\\n     */\\n    function updateCounter() external view returns (uint256);\\n\\n    /**\\n     * @notice Fetches the most recent update for a specific parameter type in a specific market\\n     * @param updateType The update type identifier\\n     * @param market The market address\\n     * @return The most recent RiskParameterUpdate for the specified parameter and market\\n     * @custom:error NoUpdateFound Thrown if no update exists for the specified parameter and market\\n     */\\n    function getLatestUpdateByTypeAndMarket(\\n        string memory updateType,\\n        address market\\n    ) external view returns (RiskParameterUpdate memory);\\n\\n    /**\\n     * @notice Gets the latest update ID for a specific market and update type (string) combination\\n     * @param updateType The update type identifier\\n     * @param market The market address\\n     * @return The latest update ID for the given market and update type, or 0 if none exists\\n     */\\n    function getLatestUpdateIdByTypeAndMarket(string memory updateType, address market) external view returns (uint256);\\n\\n    /**\\n     * @notice Fetches the update for a provided update ID\\n     * @param updateId The unique update ID\\n     * @return The RiskParameterUpdate struct for the specified update ID\\n     * @custom:error InvalidUpdateId Thrown if updateId is 0 or greater than updateCounter\\n     */\\n    function getUpdateById(uint256 updateId) external view returns (RiskParameterUpdate memory);\\n\\n    /**\\n     * @notice Adds a new address to the list of authorized senders who can publish updates\\n     * @param sender Address to be authorized\\n     * @custom:error ZeroAddressNotAllowed Thrown if sender is the zero address\\n     * @custom:error SenderAlreadyAuthorized Thrown if sender is already authorized\\n     * @custom:error Unauthorized Thrown if caller is not allowed by AccessControlManager\\n     * @custom:event AuthorizedSenderAdded Emitted when sender is successfully added\\n     */\\n    function addAuthorizedSender(address sender) external;\\n\\n    /**\\n     * @notice Removes an address from the list of authorized senders\\n     * @param sender Address to be removed from authorization\\n     * @custom:error SenderNotAuthorized Thrown if sender is not currently authorized\\n     * @custom:error Unauthorized Thrown if caller is not allowed by AccessControlManager\\n     * @custom:event AuthorizedSenderRemoved Emitted when sender is successfully removed\\n     */\\n    function removeAuthorizedSender(address sender) external;\\n\\n    /**\\n     * @notice Adds a new update type to the list of authorized update types\\n     * @param newUpdateType New update type string to allow (must be non-empty and <= 64 characters)\\n     * @custom:error InvalidUpdateTypeString Thrown if update type string is empty or exceeds 64 characters\\n     * @custom:error UpdateTypeAlreadyExists Thrown if update type already exists\\n     * @custom:error Unauthorized Thrown if caller is not allowed by AccessControlManager\\n     * @custom:event UpdateTypeAdded Emitted when update type is successfully added\\n     */\\n    function addUpdateType(string memory newUpdateType) external;\\n\\n    /**\\n     * @notice Sets the active status of an existing update type\\n     * @param updateType The update type to set active status for\\n     * @param active True to activate the update type, false to deactivate it\\n     * @custom:error UpdateTypeNotFound Thrown if update type doesn't exist\\n     * @custom:error UpdateTypeStatusUnchanged Thrown if status is already set to the desired value\\n     * @custom:error Unauthorized Thrown if caller is not allowed by AccessControlManager\\n     * @custom:event UpdateTypeActiveStatusChanged Emitted when status is successfully changed\\n     */\\n    function setUpdateTypeActive(string memory updateType, bool active) external;\\n\\n    /**\\n     * @notice Publishes a new risk parameter update.\\n     * @param referenceId An external reference ID associated with the update\\n     * @param newValue The new value of the risk parameter being updated (encoded as bytes)\\n     * @param updateType Type of update performed, must be an active update type\\n     * @param market Address of the market for which the parameter update applies\\n     * @param poolId Pool identifier for eMode-style collateral configuration (0 for regular markets)\\n     * @param dstEid Destination endpoint ID for cross-chain routing\\n     * @param additionalData Additional data or metadata for the update\\n     * @custom:error SenderNotAuthorized Thrown if caller is not an authorized sender\\n     * @custom:error UpdateTypeNotActive Thrown if update type is not active\\n     * @custom:error ZeroAddressNotAllowed Thrown if market is the zero address\\n     * @custom:event UpdatePublished Emitted when the update is successfully published\\n     */\\n    function publishRiskParameterUpdate(\\n        string memory referenceId,\\n        bytes memory newValue,\\n        string memory updateType,\\n        address market,\\n        uint96 poolId,\\n        uint32 dstEid,\\n        bytes memory additionalData\\n    ) external;\\n\\n    /**\\n     * @notice Publishes multiple risk parameter updates in a single transaction.\\n     * @param referenceIds Array of external reference IDs, one for each update\\n     * @param newValues Array of new values for each update (encoded as bytes)\\n     * @param updateTypes Array of update types, all must be active update types\\n     * @param markets Array of market addresses for each update\\n     * @param poolIds Array of pool identifiers for eMode-style collateral configuration (0 for regular markets)\\n     * @param dstEid Array of destination endpoint IDs for cross-chain routing\\n     * @param additionalData Array of additional data for each update\\n     * @custom:error SenderNotAuthorized Thrown if caller is not an authorized sender\\n     * @custom:error ArrayLengthMismatch Thrown if all arrays don't have the same length\\n     * @custom:error UpdateTypeNotActive Thrown if any update type is not active\\n     * @custom:error ZeroAddressNotAllowed Thrown if any market is the zero address\\n     * @custom:event UpdatePublished Emitted for each successfully published update\\n     */\\n    function publishBulkRiskParameterUpdates(\\n        string[] memory referenceIds,\\n        bytes[] memory newValues,\\n        string[] memory updateTypes,\\n        address[] memory markets,\\n        uint96[] memory poolIds,\\n        uint32[] memory dstEid,\\n        bytes[] memory additionalData\\n    ) external;\\n}\\n\",\"keccak256\":\"0x8a30b030d5be3cefabf55d889d0a06447613a9ada5a917730b7ec833bda167cd\",\"license\":\"MIT\"},\"contracts/RiskSteward/Interfaces/IRiskSteward.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { RiskParameterUpdate } from \\\"./IRiskOracle.sol\\\";\\nimport { IRiskStewardReceiver } from \\\"./IRiskStewardReceiver.sol\\\";\\n\\n/**\\n * @title IRiskSteward\\n * @author Venus\\n * @notice Interface for risk stewards that validate and apply risk parameter updates\\n */\\ninterface IRiskSteward {\\n    /**\\n     * @notice Returns the `IRiskStewardReceiver` associated with this steward.\\n     * @return The risk steward receiver contract\\n     */\\n    function RISK_STEWARD_RECEIVER() external view returns (IRiskStewardReceiver);\\n\\n    /**\\n     * @notice Checks whether an update is safe for direct execution (no timelock required).\\n     * @param update The risk parameter update to evaluate\\n     * @return True if update is safe for direct execution, false if timelock is required\\n     */\\n    function isSafeForDirectExecution(RiskParameterUpdate calldata update) external view returns (bool);\\n\\n    /**\\n     * @notice Applies a validated risk parameter update.\\n     * @param update The risk parameter update to apply\\n     */\\n    function applyUpdate(RiskParameterUpdate calldata update) external;\\n}\\n\",\"keccak256\":\"0x6438497d6fd62f5e8c224a01e626a92ae2ebbe736852749862ff2f040a25b069\",\"license\":\"BSD-3-Clause\"},\"contracts/RiskSteward/Interfaces/IRiskStewardReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface IRiskStewardReceiver {\\n    /**\\n     * @notice Status of an update\\n     */\\n    enum UpdateStatus {\\n        None,\\n        Pending,\\n        Executed,\\n        Rejected,\\n        Expired,\\n        SENT_TO_DESTINATION\\n    }\\n\\n    /**\\n     * @notice Configuration for a risk parameter update type\\n     * @param active Whether this update type configuration is currently active\\n     * @param debounce Minimum delay between consecutive update executions for the same (updateType, market) pair\\n     * @param timelock Period that must pass after registration before an update can be executed\\n     * @param riskSteward Address of the risk steward contract responsible for processing this update type\\n     */\\n    struct RiskParamConfig {\\n        bool active;\\n        uint256 debounce;\\n        uint256 timelock;\\n        address riskSteward;\\n    }\\n\\n    /**\\n     * @notice Registered update structure with timelock and execution information\\n     * @param updateId Update ID from the Risk Oracle\\n     * @param unlockTime Timestamp when this update can be executed (calculated as registration time + timelock)\\n     * @param status Current status of the update (Pending, Executed, Rejected, Expired, etc.)\\n     * @param executor Address of the executor who executed this update (address(0) if not executed yet)\\n     * @param executedAt Timestamp when this update was executed (0 if not executed yet)\\n     */\\n    struct RegisteredUpdate {\\n        uint256 updateId;\\n        uint256 unlockTime;\\n        UpdateStatus status;\\n        address executor;\\n        uint256 executedAt;\\n    }\\n\\n    /**\\n     * @notice Event emitted when a risk parameter config is set\\n     */\\n    event RiskParameterConfigUpdated(\\n        bytes32 indexed updateTypeHash,\\n        string updateType,\\n        address indexed previousRiskSteward,\\n        address indexed riskSteward,\\n        uint256 previousDebounce,\\n        uint256 debounce,\\n        uint256 previousTimelock,\\n        uint256 timelock,\\n        bool previousActive,\\n        bool active\\n    );\\n\\n    /**\\n     * @notice Event emitted when a risk parameter config active status is set\\n     */\\n    event ConfigActiveUpdated(bytes32 indexed updateTypeHash, string updateType, bool previousActive, bool active);\\n\\n    /**\\n     * @notice Event emitted when an update is successfully executed\\n     */\\n    event UpdateExecuted(uint256 indexed updateId);\\n\\n    /**\\n     * @notice Event emitted when an update is rejected\\n     */\\n    event UpdateRejected(uint256 indexed updateId);\\n\\n    /**\\n     * @notice Event emitted when an update is marked as expired\\n     */\\n    event UpdateExpired(uint256 indexed updateId);\\n\\n    /**\\n     * @notice Event emitted when an executor status is set\\n     */\\n    event ExecutorStatusUpdated(address indexed executor, bool previousApproved, bool approved);\\n\\n    /**\\n     * @notice Event emitted when an update is registered\\n     */\\n    event UpdateRegistered(uint256 indexed updateId, uint256 unlockTime, string updateType, address indexed market);\\n\\n    /**\\n     * @notice Event emitted when an update is sent to a destination chain\\n     */\\n    event UpdateSentToDestination(\\n        uint256 updateId,\\n        uint32 indexed destLzEid,\\n        string indexed updateType,\\n        address indexed market\\n    );\\n\\n    /**\\n     * @notice Event emitted when an update is resent to a destination chain\\n     */\\n    event UpdateResentToDestination(\\n        uint256 updateId,\\n        uint32 indexed destLzEid,\\n        string indexed updateType,\\n        address indexed market\\n    );\\n\\n    /**\\n     * @notice Emitted when leftover native tokens are swept by owner\\n     */\\n    event SweepNative(address indexed receiver, uint256 amount);\\n\\n    /**\\n     * @notice Event emitted when the pause status changes\\n     * @param previousPaused Previous pause state\\n     * @param paused Current pause state\\n     */\\n    event PauseStatusUpdated(bool previousPaused, bool paused);\\n\\n    /**\\n     * @custom:error TransferFailed\\n     */\\n    error TransferFailed();\\n\\n    /**\\n     * @notice Thrown if a submitted update is not active and therefore cannot be processed\\n     */\\n    error ConfigNotActive();\\n\\n    /**\\n     * @notice Thrown when an update was not applied within the required time frame\\n     */\\n    error UpdateIsExpired();\\n\\n    /**\\n     * @notice Thrown when an update has already been processed\\n     */\\n    error UpdateAlreadyResolved();\\n\\n    /**\\n     * @notice Thrown when the debounce period hasn't passed for applying an update to a specific market / update type\\n     */\\n    error UpdateTooFrequent();\\n\\n    /**\\n     * @notice Thrown when an update type that is not supported is operated on\\n     */\\n    error UnsupportedUpdateType();\\n\\n    /**\\n     * @notice Thrown when an empty update type string is provided\\n     */\\n    error InvalidUpdateType();\\n\\n    /**\\n     * @notice Thrown when a debounce value of 0 is set\\n     */\\n    error InvalidDebounce();\\n\\n    /**\\n     * @notice Thrown when a timelock value is greater than or equal to the expiration time\\n     */\\n    error InvalidTimelock();\\n\\n    /**\\n     * @notice Thrown when update unlock time has not been reached\\n     */\\n    error UpdateNotUnlocked();\\n\\n    /**\\n     * @notice Thrown when trying to resolve an update that doesn't exist\\n     */\\n    error UpdateNotFound();\\n\\n    /**\\n     * @notice Thrown when an address is not an executor\\n     */\\n    error NotAnExecutor();\\n\\n    /**\\n     * @notice Thrown when there is a non-expired pending update of the same type for the market\\n     */\\n    error RegisteredUpdateTypeExist(uint256);\\n\\n    /**\\n     * @notice Thrown when trying to resend an update that is not in SENT_TO_DESTINATION status\\n     */\\n    error InvalidUpdateToResend();\\n\\n    /**\\n     * @notice Thrown when trying to execute an update that was never registered\\n     */\\n    error InvalidRegisteredUpdate();\\n\\n    /**\\n     * @notice Thrown when attempting to call lzSend from an address other than this contract\\n     */\\n    error InvalidLzSendCaller();\\n\\n    /**\\n     * @notice Thrown when trying to renounce ownership\\n     */\\n    error RenounceOwnershipNotAllowed();\\n\\n    /**\\n     * @notice Thrown when processUpdate is called while the contract is paused\\n     */\\n    error PausedError();\\n\\n    /**\\n     * @notice Thrown when an invalid LayerZero endpoint ID is provided\\n     */\\n    error InvalidLayerZeroEid();\\n\\n    /**\\n     * @notice Thrown when trying to set the same pause status\\n     */\\n    error PauseStatusUnchanged();\\n\\n    /**\\n     * @notice Thrown when trying to set the same config active status\\n     */\\n    error ConfigStatusUnchanged();\\n\\n    /**\\n     * @notice Thrown when trying to set the same executor whitelist status\\n     */\\n    error ExecutorStatusUnchanged();\\n\\n    /**\\n     * @notice Thrown when an update will expire before its timelock unlocks\\n     */\\n    error UpdateWillExpireBeforeUnlock();\\n\\n    function getRiskParameterConfig(string calldata updateType) external view returns (RiskParamConfig memory);\\n\\n    function getLastProcessedUpdate(string calldata updateType, address market) external view returns (uint256);\\n\\n    function getLastRegisteredUpdate(string calldata updateType, address market) external view returns (uint256);\\n\\n    function setRiskParameterConfig(\\n        string calldata updateType,\\n        address riskSteward,\\n        uint256 debounce,\\n        uint256 timelock\\n    ) external;\\n\\n    function setConfigActive(string calldata updateType, bool active) external;\\n\\n    function setWhitelistedExecutor(address executor, bool approved) external;\\n\\n    function processUpdate(uint256 updateId) external;\\n\\n    function executeRegisteredUpdate(uint256 updateId) external;\\n\\n    function rejectUpdate(uint256 updateId) external;\\n\\n    function resendRemoteUpdate(uint256 updateId, bytes calldata options) external payable;\\n\\n    function getExecutableUpdates(\\n        string calldata updateType,\\n        address comptroller\\n    ) external view returns (uint256[] memory executableUpdates);\\n\\n    function isUpdateExecutable(uint256 updateId) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x206b4763cfe62155718edb4b53ee48d6e5204b81cbfac705808d2ffd3225bb12\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/IIsolatedPoolsComptroller.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface IIsolatedPoolsComptroller {\\n    function borrowCaps(address) external view returns (uint256);\\n\\n    function supplyCaps(address) external view returns (uint256);\\n\\n    function setMarketSupplyCaps(address[] calldata, uint256[] calldata) external;\\n\\n    function setMarketBorrowCaps(address[] calldata, uint256[] calldata) external;\\n\\n    function getAllMarkets() external view returns (address[] memory);\\n\\n    function setCollateralFactor(\\n        address vToken,\\n        uint256 newCollateralFactorMantissa,\\n        uint256 newLiquidationThresholdMantissa\\n    ) external;\\n\\n    function markets(\\n        address vToken\\n    ) external view returns (bool isListed, uint256 collateralFactorMantissa, uint256 liquidationThresholdMantissa);\\n}\\n\",\"keccak256\":\"0x6cd545ea18e7b5fbd1d3b0a4162584eb0c1b466db46c62d96015091c47374930\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":6086,"contract":"contracts/RiskSteward/DestinationStewardReceiver.sol:DestinationStewardReceiver","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":6089,"contract":"contracts/RiskSteward/DestinationStewardReceiver.sol:DestinationStewardReceiver","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":6573,"contract":"contracts/RiskSteward/DestinationStewardReceiver.sol:DestinationStewardReceiver","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":5958,"contract":"contracts/RiskSteward/DestinationStewardReceiver.sol:DestinationStewardReceiver","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":6078,"contract":"contracts/RiskSteward/DestinationStewardReceiver.sol:DestinationStewardReceiver","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":5867,"contract":"contracts/RiskSteward/DestinationStewardReceiver.sol:DestinationStewardReceiver","label":"_pendingOwner","offset":0,"slot":"101","type":"t_address"},{"astId":5946,"contract":"contracts/RiskSteward/DestinationStewardReceiver.sol:DestinationStewardReceiver","label":"__gap","offset":0,"slot":"102","type":"t_array(t_uint256)49_storage"},{"astId":13718,"contract":"contracts/RiskSteward/DestinationStewardReceiver.sol:DestinationStewardReceiver","label":"_accessControlManager","offset":0,"slot":"151","type":"t_contract(IAccessControlManagerV8)13903"},{"astId":13723,"contract":"contracts/RiskSteward/DestinationStewardReceiver.sol:DestinationStewardReceiver","label":"__gap","offset":0,"slot":"152","type":"t_array(t_uint256)49_storage"},{"astId":15016,"contract":"contracts/RiskSteward/DestinationStewardReceiver.sol:DestinationStewardReceiver","label":"remoteDelay","offset":0,"slot":"201","type":"t_uint256"},{"astId":15022,"contract":"contracts/RiskSteward/DestinationStewardReceiver.sol:DestinationStewardReceiver","label":"riskParameterConfigs","offset":0,"slot":"202","type":"t_mapping(t_bytes32,t_struct(RiskParamConfig)16320_storage)"},{"astId":15028,"contract":"contracts/RiskSteward/DestinationStewardReceiver.sol:DestinationStewardReceiver","label":"updates","offset":0,"slot":"203","type":"t_mapping(t_uint256,t_struct(DestinationUpdate)16332_storage)"},{"astId":15035,"contract":"contracts/RiskSteward/DestinationStewardReceiver.sol:DestinationStewardReceiver","label":"lastRegisteredUpdateId","offset":0,"slot":"204","type":"t_mapping(t_bytes32,t_mapping(t_address,t_uint256))"},{"astId":15042,"contract":"contracts/RiskSteward/DestinationStewardReceiver.sol:DestinationStewardReceiver","label":"lastExecutedAt","offset":0,"slot":"205","type":"t_mapping(t_bytes32,t_mapping(t_address,t_uint256))"},{"astId":15047,"contract":"contracts/RiskSteward/DestinationStewardReceiver.sol:DestinationStewardReceiver","label":"whitelistedExecutors","offset":0,"slot":"206","type":"t_mapping(t_address,t_bool)"},{"astId":15052,"contract":"contracts/RiskSteward/DestinationStewardReceiver.sol:DestinationStewardReceiver","label":"__gap","offset":0,"slot":"207","type":"t_array(t_uint256)44_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)44_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[44]","numberOfBytes":"1408"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_contract(IAccessControlManagerV8)13903":{"encoding":"inplace","label":"contract IAccessControlManagerV8","numberOfBytes":"20"},"t_enum(UpdateStatus)16312":{"encoding":"inplace","label":"enum IDestinationStewardReceiver.UpdateStatus","numberOfBytes":"1"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_bytes32,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_bytes32,t_struct(RiskParamConfig)16320_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct IDestinationStewardReceiver.RiskParamConfig)","numberOfBytes":"32","value":"t_struct(RiskParamConfig)16320_storage"},"t_mapping(t_uint256,t_struct(DestinationUpdate)16332_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => struct IDestinationStewardReceiver.DestinationUpdate)","numberOfBytes":"32","value":"t_struct(DestinationUpdate)16332_storage"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(DestinationUpdate)16332_storage":{"encoding":"inplace","label":"struct IDestinationStewardReceiver.DestinationUpdate","members":[{"astId":16324,"contract":"contracts/RiskSteward/DestinationStewardReceiver.sol:DestinationStewardReceiver","label":"update","offset":0,"slot":"0","type":"t_struct(RiskParameterUpdate)16568_storage"},{"astId":16327,"contract":"contracts/RiskSteward/DestinationStewardReceiver.sol:DestinationStewardReceiver","label":"status","offset":0,"slot":"11","type":"t_enum(UpdateStatus)16312"},{"astId":16329,"contract":"contracts/RiskSteward/DestinationStewardReceiver.sol:DestinationStewardReceiver","label":"arrivalTime","offset":0,"slot":"12","type":"t_uint256"},{"astId":16331,"contract":"contracts/RiskSteward/DestinationStewardReceiver.sol:DestinationStewardReceiver","label":"executor","offset":0,"slot":"13","type":"t_address"}],"numberOfBytes":"448"},"t_struct(RiskParamConfig)16320_storage":{"encoding":"inplace","label":"struct IDestinationStewardReceiver.RiskParamConfig","members":[{"astId":16315,"contract":"contracts/RiskSteward/DestinationStewardReceiver.sol:DestinationStewardReceiver","label":"active","offset":0,"slot":"0","type":"t_bool"},{"astId":16317,"contract":"contracts/RiskSteward/DestinationStewardReceiver.sol:DestinationStewardReceiver","label":"debounce","offset":0,"slot":"1","type":"t_uint256"},{"astId":16319,"contract":"contracts/RiskSteward/DestinationStewardReceiver.sol:DestinationStewardReceiver","label":"riskSteward","offset":0,"slot":"2","type":"t_address"}],"numberOfBytes":"96"},"t_struct(RiskParameterUpdate)16568_storage":{"encoding":"inplace","label":"struct RiskParameterUpdate","members":[{"astId":16545,"contract":"contracts/RiskSteward/DestinationStewardReceiver.sol:DestinationStewardReceiver","label":"referenceId","offset":0,"slot":"0","type":"t_string_storage"},{"astId":16547,"contract":"contracts/RiskSteward/DestinationStewardReceiver.sol:DestinationStewardReceiver","label":"updateId","offset":0,"slot":"1","type":"t_uint256"},{"astId":16549,"contract":"contracts/RiskSteward/DestinationStewardReceiver.sol:DestinationStewardReceiver","label":"market","offset":0,"slot":"2","type":"t_address"},{"astId":16551,"contract":"contracts/RiskSteward/DestinationStewardReceiver.sol:DestinationStewardReceiver","label":"updateType","offset":0,"slot":"3","type":"t_string_storage"},{"astId":16553,"contract":"contracts/RiskSteward/DestinationStewardReceiver.sol:DestinationStewardReceiver","label":"updateTypeKey","offset":0,"slot":"4","type":"t_bytes32"},{"astId":16555,"contract":"contracts/RiskSteward/DestinationStewardReceiver.sol:DestinationStewardReceiver","label":"newValue","offset":0,"slot":"5","type":"t_bytes_storage"},{"astId":16557,"contract":"contracts/RiskSteward/DestinationStewardReceiver.sol:DestinationStewardReceiver","label":"previousValue","offset":0,"slot":"6","type":"t_bytes_storage"},{"astId":16559,"contract":"contracts/RiskSteward/DestinationStewardReceiver.sol:DestinationStewardReceiver","label":"timestamp","offset":0,"slot":"7","type":"t_uint256"},{"astId":16561,"contract":"contracts/RiskSteward/DestinationStewardReceiver.sol:DestinationStewardReceiver","label":"publisher","offset":0,"slot":"8","type":"t_address"},{"astId":16563,"contract":"contracts/RiskSteward/DestinationStewardReceiver.sol:DestinationStewardReceiver","label":"poolId","offset":20,"slot":"8","type":"t_uint96"},{"astId":16565,"contract":"contracts/RiskSteward/DestinationStewardReceiver.sol:DestinationStewardReceiver","label":"destLzEid","offset":0,"slot":"9","type":"t_uint32"},{"astId":16567,"contract":"contracts/RiskSteward/DestinationStewardReceiver.sol:DestinationStewardReceiver","label":"additionalData","offset":0,"slot":"10","type":"t_bytes_storage"}],"numberOfBytes":"352"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint32":{"encoding":"inplace","label":"uint32","numberOfBytes":"4"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"},"t_uint96":{"encoding":"inplace","label":"uint96","numberOfBytes":"12"}}},"userdoc":{"errors":{"ConfigNotActive()":[{"notice":"Thrown when config for an update type is not active or not configured"}],"ConfigStatusUnchanged()":[{"notice":"Thrown when trying to set the same config active status"}],"ExecutorStatusUnchanged()":[{"notice":"Thrown when trying to set the same executor whitelist status"}],"InvalidDebounce()":[{"notice":"Thrown when a debounce value of 0 is set"}],"InvalidLayerZeroEid()":[{"notice":"Thrown when an invalid LayerZero endpoint ID is provided"}],"InvalidRemoteDelay()":[{"notice":"Thrown when an invalid remote delay is provided"}],"InvalidUpdateType()":[{"notice":"Thrown when an empty update type string is provided"}],"NotAnExecutor()":[{"notice":"Thrown when an address is not a whitelisted executor"}],"RemoteDelayUnchanged()":[{"notice":"Thrown when trying to set the same remote delay value"}],"RenounceOwnershipNotAllowed()":[{"notice":"Thrown when trying to renounce ownership"}],"Unauthorized(address,address,string)":[{"notice":"Thrown when the action is prohibited by AccessControlManager"}],"UnsupportedUpdateType()":[{"notice":"Thrown when an update type is not supported"}],"UpdateIsExpired()":[{"notice":"Thrown when a bridged update has expired on the destination"}],"UpdateNotFound()":[{"notice":"Thrown when trying to operate on an update that was never registered"}],"UpdateNotUnlocked()":[{"notice":"Thrown when trying to execute an update before its unlock time"}],"UpdateTooFrequent()":[{"notice":"Thrown when the debounce period hasn't passed for applying an update to a specific market / update type"}],"ZeroAddressNotAllowed()":[{"notice":"Thrown if the supplied address is a zero address where it is not allowed"}]},"events":{"ConfigActiveUpdated(bytes32,string,bool,bool)":{"notice":"Emitted when a risk parameter config active status is updated"},"DuplicateUpdateReceived(uint256,uint256,string,address)":{"notice":"Emitted when a duplicate bridged update (same updateId) is received."},"ExecutorStatusUpdated(address,bool,bool)":{"notice":"Emitted when an executor status is set on the destination"},"NewAccessControlManager(address,address)":{"notice":"Emitted when access control manager contract address is changed"},"RegisteredPendingUpdateExist(uint256,uint256,string,address)":{"notice":"Emitted when a new bridged update arrives but a pending update is already registered for the same (updateType, market)."},"RemoteDelaySet(uint256)":{"notice":"Emitted when the remote delay is set in the constructor"},"RemoteUpdateExecuted(uint256)":{"notice":"Emitted when a bridged update is executed on the destination"},"RemoteUpdateRegistered(uint256,uint256,string,address)":{"notice":"Emitted when a bridged update is registered on the destination"},"RiskParameterConfigUpdated(bytes32,string,address,address,uint256,uint256,bool,bool)":{"notice":"Emitted when a risk parameter config is updated for an update type"},"UpdateRejected(uint256)":{"notice":"Emitted when an update is rejected on the destination"}},"kind":"user","methods":{"LAYER_ZERO_EID()":{"notice":"Destination chain LayerZero endpoint ID"},"REMOTE_UPDATE_EXPIRATION_TIME()":{"notice":"Time before a bridged update is considered stale on the destination chain"},"accessControlManager()":{"notice":"Returns the address of the access control manager contract"},"allowInitializePath((uint32,bytes32,uint64))":{"notice":"Checks if the path initialization is allowed based on the provided origin."},"constructor":{"notice":"Disables initializers and sets immutable values."},"endpoint()":{"notice":"Retrieves the LayerZero endpoint associated with the OApp."},"executeUpdate(uint256)":{"notice":"Executes a bridged update after its remote delay has passed."},"getExecutableUpdates(string,address)":{"notice":"Returns executable updates for a given update type and comptroller."},"getLastExecutedAt(string,address)":{"notice":"Returns the last executed timestamp for a given update type and market"},"getRegisteredUpdate(string,address)":{"notice":"Returns the registered update for a given update type and market"},"getRiskParameterConfig(string)":{"notice":"Returns the risk parameter configuration for a given update type"},"initialize(address,address)":{"notice":"Initializes the contract with the Access Control Manager and owner."},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"notice":"Indicates whether an address is an approved composeMsg sender to the Endpoint."},"lastExecutedAt(bytes32,address)":{"notice":"Track last executed update timestamp per (updateType, market)"},"lastRegisteredUpdateId(bytes32,address)":{"notice":"Mapping from (updateType, market) to currently registered remote update ID"},"nextNonce(uint32,bytes32)":{"notice":"Retrieves the next nonce for a given source endpoint and sender address."},"oAppVersion()":{"notice":"Retrieves the OApp version information."},"peers(uint32)":{"notice":"Returns the peer address (OApp instance) associated with a specific endpoint."},"rejectUpdate(uint256)":{"notice":"Rejects a registered remote update on the destination chain."},"remoteDelay()":{"notice":"Delay before a bridged update can be executed on the destination chain"},"renounceOwnership()":{"notice":"Disables renounceOwnership function"},"riskParameterConfigs(bytes32)":{"notice":"Mapping of supported risk configurations per update type (hashed updateType string)"},"setAccessControlManager(address)":{"notice":"Sets the address of AccessControlManager"},"setConfigActive(string,bool)":{"notice":"Sets the active status of a risk parameter config"},"setDelegate(address)":{"notice":"Sets the delegate address for the OApp."},"setPeer(uint32,bytes32)":{"notice":"Sets the peer address (OApp instance) for a corresponding endpoint."},"setRemoteDelay(uint256)":{"notice":"Sets the remote delay before bridged updates can be executed on the destination chain."},"setRiskParameterConfig(string,address,uint256)":{"notice":"Sets the risk parameter config for a given update type on the destination chain."},"setWhitelistedExecutor(address,bool)":{"notice":"Sets the whitelist status of an executor on the destination chain."},"updates(uint256)":{"notice":"Master storage of all bridged updates by update ID"},"whitelistedExecutors(address)":{"notice":"Mapping from executor address to whitelist status"}},"notice":"Destination‑chain contract that receives bridged updates from `RiskStewardReceiver` via LayerZero,         enforces a fixed remote delay, and then executes the updates on the configured `IRiskSteward` contracts.","version":1}}},"contracts/RiskSteward/IRMRiskSteward.sol":{"IRMRiskSteward":{"abi":[{"inputs":[{"internalType":"address","name":"corePoolComptroller_","type":"address"},{"internalType":"address","name":"riskStewardReceiver_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidAddressLength","type":"error"},{"inputs":[],"name":"OnlyRiskStewardReceiver","type":"error"},{"inputs":[],"name":"RedundantValue","type":"error"},{"inputs":[],"name":"RenounceOwnershipNotAllowed","type":"error"},{"inputs":[{"internalType":"uint256","name":"errorCode","type":"uint256"}],"name":"SetInterestRateModelFailed","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"calledContract","type":"address"},{"internalType":"string","name":"methodSignature","type":"string"}],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"UnsupportedUpdateType","type":"error"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"updateId","type":"uint256"},{"indexed":true,"internalType":"address","name":"market","type":"address"},{"indexed":true,"internalType":"address","name":"newInterestRateModel","type":"address"}],"name":"InterestRateModelUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldAccessControlManager","type":"address"},{"indexed":false,"internalType":"address","name":"newAccessControlManager","type":"address"}],"name":"NewAccessControlManager","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"CORE_POOL_COMPTROLLER","outputs":[{"internalType":"contract ICorePoolComptroller","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"INTEREST_RATE_MODEL","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"INTEREST_RATE_MODEL_KEY","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RISK_STEWARD_RECEIVER","outputs":[{"internalType":"contract IRiskStewardReceiver","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"accessControlManager","outputs":[{"internalType":"contract IAccessControlManagerV8","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"referenceId","type":"string"},{"internalType":"uint256","name":"updateId","type":"uint256"},{"internalType":"address","name":"market","type":"address"},{"internalType":"string","name":"updateType","type":"string"},{"internalType":"bytes32","name":"updateTypeKey","type":"bytes32"},{"internalType":"bytes","name":"newValue","type":"bytes"},{"internalType":"bytes","name":"previousValue","type":"bytes"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"address","name":"publisher","type":"address"},{"internalType":"uint96","name":"poolId","type":"uint96"},{"internalType":"uint32","name":"destLzEid","type":"uint32"},{"internalType":"bytes","name":"additionalData","type":"bytes"}],"internalType":"struct RiskParameterUpdate","name":"update","type":"tuple"}],"name":"applyUpdate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"accessControlManager_","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"referenceId","type":"string"},{"internalType":"uint256","name":"updateId","type":"uint256"},{"internalType":"address","name":"market","type":"address"},{"internalType":"string","name":"updateType","type":"string"},{"internalType":"bytes32","name":"updateTypeKey","type":"bytes32"},{"internalType":"bytes","name":"newValue","type":"bytes"},{"internalType":"bytes","name":"previousValue","type":"bytes"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"address","name":"publisher","type":"address"},{"internalType":"uint96","name":"poolId","type":"uint96"},{"internalType":"uint32","name":"destLzEid","type":"uint32"},{"internalType":"bytes","name":"additionalData","type":"bytes"}],"internalType":"struct RiskParameterUpdate","name":"update","type":"tuple"}],"name":"isSafeForDirectExecution","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"safeDeltaBps","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"accessControlManager_","type":"address"}],"name":"setAccessControlManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Venus","custom:security-contact":"https://github.com/VenusProtocol/governance-contracts#discussion","events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."}},"kind":"dev","methods":{"acceptOwnership()":{"details":"The new owner accepts the ownership transfer."},"applyUpdate((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))":{"custom:access":"Only callable by the RiskStewardReceiver","custom:error":"Throws OnlyRiskStewardReceiver if the sender is not the RiskStewardReceiverThrows UnsupportedUpdateType if the update type is not supported","custom:event":"Emits InterestRateModelUpdated with the updateId, market and new IRM address","params":{"update":"RiskParameterUpdate update to apply"}},"constructor":{"custom:error":"Throws ZeroAddressNotAllowed if any of the addresses are zero","custom:oz-upgrades-unsafe-allow":"constructor","params":{"corePoolComptroller_":"The address of the Core Pool Comptroller","riskStewardReceiver_":"The address of the RiskStewardReceiver"}},"initialize(address)":{"params":{"accessControlManager_":"The address of the access control manager"}},"isSafeForDirectExecution((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))":{"custom:error":"Throws UnsupportedUpdateType if the update type is not supportedThrows RedundantValue if the new IRM address is equal to the current IRM address","details":"For IRM updates, always returns false as we cannot compare IRM values","params":{"update":"The update to check"},"returns":{"_0":"True if update is safe for direct execution, false if timelock is required"}},"owner()":{"details":"Returns the address of the current owner."},"pendingOwner()":{"details":"Returns the address of the pending owner."},"renounceOwnership()":{"custom:error":"Throws RenounceOwnershipNotAllowed"},"setAccessControlManager(address)":{"custom:access":"Only Governance","custom:event":"Emits NewAccessControlManager event","details":"Admin function to set address of AccessControlManager","params":{"accessControlManager_":"The new address of the AccessControlManager"}},"transferOwnership(address)":{"details":"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner."}},"stateVariables":{"CORE_POOL_COMPTROLLER":{"details":"This comptroller is specific to the BNB Core Pool, which uses a different ABI      than isolated pools. It is used solely to detect and handle BNB Core Pool      markets, and would not be used for remote-chain (isolated pool) deployments."},"__gap":{"details":"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"}},"title":"IRMRiskSteward","version":1},"evm":{"bytecode":{"functionDebugData":{"@_16108":{"entryPoint":null,"id":16108,"parameterSlots":2,"returnSlots":0},"@_disableInitializers_6229":{"entryPoint":132,"id":6229,"parameterSlots":0,"returnSlots":0},"@ensureNonzeroAddress_10945":{"entryPoint":90,"id":10945,"parameterSlots":1,"returnSlots":0},"abi_decode_address_fromMemory":{"entryPoint":324,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_addresst_address_fromMemory":{"entryPoint":352,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:1088:97","nodeType":"YulBlock","src":"0:1088:97","statements":[{"nativeSrc":"6:3:97","nodeType":"YulBlock","src":"6:3:97","statements":[]},{"body":{"nativeSrc":"74:117:97","nodeType":"YulBlock","src":"74:117:97","statements":[{"nativeSrc":"84:22:97","nodeType":"YulAssignment","src":"84:22:97","value":{"arguments":[{"name":"offset","nativeSrc":"99:6:97","nodeType":"YulIdentifier","src":"99:6:97"}],"functionName":{"name":"mload","nativeSrc":"93:5:97","nodeType":"YulIdentifier","src":"93:5:97"},"nativeSrc":"93:13:97","nodeType":"YulFunctionCall","src":"93:13:97"},"variableNames":[{"name":"value","nativeSrc":"84:5:97","nodeType":"YulIdentifier","src":"84:5:97"}]},{"body":{"nativeSrc":"169:16:97","nodeType":"YulBlock","src":"169:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"178:1:97","nodeType":"YulLiteral","src":"178:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"181:1:97","nodeType":"YulLiteral","src":"181:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"171:6:97","nodeType":"YulIdentifier","src":"171:6:97"},"nativeSrc":"171:12:97","nodeType":"YulFunctionCall","src":"171:12:97"},"nativeSrc":"171:12:97","nodeType":"YulExpressionStatement","src":"171:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"128:5:97","nodeType":"YulIdentifier","src":"128:5:97"},{"arguments":[{"name":"value","nativeSrc":"139:5:97","nodeType":"YulIdentifier","src":"139:5:97"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"154:3:97","nodeType":"YulLiteral","src":"154:3:97","type":"","value":"160"},{"kind":"number","nativeSrc":"159:1:97","nodeType":"YulLiteral","src":"159:1:97","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"150:3:97","nodeType":"YulIdentifier","src":"150:3:97"},"nativeSrc":"150:11:97","nodeType":"YulFunctionCall","src":"150:11:97"},{"kind":"number","nativeSrc":"163:1:97","nodeType":"YulLiteral","src":"163:1:97","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"146:3:97","nodeType":"YulIdentifier","src":"146:3:97"},"nativeSrc":"146:19:97","nodeType":"YulFunctionCall","src":"146:19:97"}],"functionName":{"name":"and","nativeSrc":"135:3:97","nodeType":"YulIdentifier","src":"135:3:97"},"nativeSrc":"135:31:97","nodeType":"YulFunctionCall","src":"135:31:97"}],"functionName":{"name":"eq","nativeSrc":"125:2:97","nodeType":"YulIdentifier","src":"125:2:97"},"nativeSrc":"125:42:97","nodeType":"YulFunctionCall","src":"125:42:97"}],"functionName":{"name":"iszero","nativeSrc":"118:6:97","nodeType":"YulIdentifier","src":"118:6:97"},"nativeSrc":"118:50:97","nodeType":"YulFunctionCall","src":"118:50:97"},"nativeSrc":"115:70:97","nodeType":"YulIf","src":"115:70:97"}]},"name":"abi_decode_address_fromMemory","nativeSrc":"14:177:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"53:6:97","nodeType":"YulTypedName","src":"53:6:97","type":""}],"returnVariables":[{"name":"value","nativeSrc":"64:5:97","nodeType":"YulTypedName","src":"64:5:97","type":""}],"src":"14:177:97"},{"body":{"nativeSrc":"294:195:97","nodeType":"YulBlock","src":"294:195:97","statements":[{"body":{"nativeSrc":"340:16:97","nodeType":"YulBlock","src":"340:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"349:1:97","nodeType":"YulLiteral","src":"349:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"352:1:97","nodeType":"YulLiteral","src":"352:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"342:6:97","nodeType":"YulIdentifier","src":"342:6:97"},"nativeSrc":"342:12:97","nodeType":"YulFunctionCall","src":"342:12:97"},"nativeSrc":"342:12:97","nodeType":"YulExpressionStatement","src":"342:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"315:7:97","nodeType":"YulIdentifier","src":"315:7:97"},{"name":"headStart","nativeSrc":"324:9:97","nodeType":"YulIdentifier","src":"324:9:97"}],"functionName":{"name":"sub","nativeSrc":"311:3:97","nodeType":"YulIdentifier","src":"311:3:97"},"nativeSrc":"311:23:97","nodeType":"YulFunctionCall","src":"311:23:97"},{"kind":"number","nativeSrc":"336:2:97","nodeType":"YulLiteral","src":"336:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"307:3:97","nodeType":"YulIdentifier","src":"307:3:97"},"nativeSrc":"307:32:97","nodeType":"YulFunctionCall","src":"307:32:97"},"nativeSrc":"304:52:97","nodeType":"YulIf","src":"304:52:97"},{"nativeSrc":"365:50:97","nodeType":"YulAssignment","src":"365:50:97","value":{"arguments":[{"name":"headStart","nativeSrc":"405:9:97","nodeType":"YulIdentifier","src":"405:9:97"}],"functionName":{"name":"abi_decode_address_fromMemory","nativeSrc":"375:29:97","nodeType":"YulIdentifier","src":"375:29:97"},"nativeSrc":"375:40:97","nodeType":"YulFunctionCall","src":"375:40:97"},"variableNames":[{"name":"value0","nativeSrc":"365:6:97","nodeType":"YulIdentifier","src":"365:6:97"}]},{"nativeSrc":"424:59:97","nodeType":"YulAssignment","src":"424:59:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"468:9:97","nodeType":"YulIdentifier","src":"468:9:97"},{"kind":"number","nativeSrc":"479:2:97","nodeType":"YulLiteral","src":"479:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"464:3:97","nodeType":"YulIdentifier","src":"464:3:97"},"nativeSrc":"464:18:97","nodeType":"YulFunctionCall","src":"464:18:97"}],"functionName":{"name":"abi_decode_address_fromMemory","nativeSrc":"434:29:97","nodeType":"YulIdentifier","src":"434:29:97"},"nativeSrc":"434:49:97","nodeType":"YulFunctionCall","src":"434:49:97"},"variableNames":[{"name":"value1","nativeSrc":"424:6:97","nodeType":"YulIdentifier","src":"424:6:97"}]}]},"name":"abi_decode_tuple_t_addresst_address_fromMemory","nativeSrc":"196:293:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"252:9:97","nodeType":"YulTypedName","src":"252:9:97","type":""},{"name":"dataEnd","nativeSrc":"263:7:97","nodeType":"YulTypedName","src":"263:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"275:6:97","nodeType":"YulTypedName","src":"275:6:97","type":""},{"name":"value1","nativeSrc":"283:6:97","nodeType":"YulTypedName","src":"283:6:97","type":""}],"src":"196:293:97"},{"body":{"nativeSrc":"668:229:97","nodeType":"YulBlock","src":"668:229:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"685:9:97","nodeType":"YulIdentifier","src":"685:9:97"},{"kind":"number","nativeSrc":"696:2:97","nodeType":"YulLiteral","src":"696:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"678:6:97","nodeType":"YulIdentifier","src":"678:6:97"},"nativeSrc":"678:21:97","nodeType":"YulFunctionCall","src":"678:21:97"},"nativeSrc":"678:21:97","nodeType":"YulExpressionStatement","src":"678:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"719:9:97","nodeType":"YulIdentifier","src":"719:9:97"},{"kind":"number","nativeSrc":"730:2:97","nodeType":"YulLiteral","src":"730:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"715:3:97","nodeType":"YulIdentifier","src":"715:3:97"},"nativeSrc":"715:18:97","nodeType":"YulFunctionCall","src":"715:18:97"},{"kind":"number","nativeSrc":"735:2:97","nodeType":"YulLiteral","src":"735:2:97","type":"","value":"39"}],"functionName":{"name":"mstore","nativeSrc":"708:6:97","nodeType":"YulIdentifier","src":"708:6:97"},"nativeSrc":"708:30:97","nodeType":"YulFunctionCall","src":"708:30:97"},"nativeSrc":"708:30:97","nodeType":"YulExpressionStatement","src":"708:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"758:9:97","nodeType":"YulIdentifier","src":"758:9:97"},{"kind":"number","nativeSrc":"769:2:97","nodeType":"YulLiteral","src":"769:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"754:3:97","nodeType":"YulIdentifier","src":"754:3:97"},"nativeSrc":"754:18:97","nodeType":"YulFunctionCall","src":"754:18:97"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320696e697469","kind":"string","nativeSrc":"774:34:97","nodeType":"YulLiteral","src":"774:34:97","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nativeSrc":"747:6:97","nodeType":"YulIdentifier","src":"747:6:97"},"nativeSrc":"747:62:97","nodeType":"YulFunctionCall","src":"747:62:97"},"nativeSrc":"747:62:97","nodeType":"YulExpressionStatement","src":"747:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"829:9:97","nodeType":"YulIdentifier","src":"829:9:97"},{"kind":"number","nativeSrc":"840:2:97","nodeType":"YulLiteral","src":"840:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"825:3:97","nodeType":"YulIdentifier","src":"825:3:97"},"nativeSrc":"825:18:97","nodeType":"YulFunctionCall","src":"825:18:97"},{"hexValue":"616c697a696e67","kind":"string","nativeSrc":"845:9:97","nodeType":"YulLiteral","src":"845:9:97","type":"","value":"alizing"}],"functionName":{"name":"mstore","nativeSrc":"818:6:97","nodeType":"YulIdentifier","src":"818:6:97"},"nativeSrc":"818:37:97","nodeType":"YulFunctionCall","src":"818:37:97"},"nativeSrc":"818:37:97","nodeType":"YulExpressionStatement","src":"818:37:97"},{"nativeSrc":"864:27:97","nodeType":"YulAssignment","src":"864:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"876:9:97","nodeType":"YulIdentifier","src":"876:9:97"},{"kind":"number","nativeSrc":"887:3:97","nodeType":"YulLiteral","src":"887:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"872:3:97","nodeType":"YulIdentifier","src":"872:3:97"},"nativeSrc":"872:19:97","nodeType":"YulFunctionCall","src":"872:19:97"},"variableNames":[{"name":"tail","nativeSrc":"864:4:97","nodeType":"YulIdentifier","src":"864:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"494:403:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"645:9:97","nodeType":"YulTypedName","src":"645:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"659:4:97","nodeType":"YulTypedName","src":"659:4:97","type":""}],"src":"494:403:97"},{"body":{"nativeSrc":"999:87:97","nodeType":"YulBlock","src":"999:87:97","statements":[{"nativeSrc":"1009:26:97","nodeType":"YulAssignment","src":"1009:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1021:9:97","nodeType":"YulIdentifier","src":"1021:9:97"},{"kind":"number","nativeSrc":"1032:2:97","nodeType":"YulLiteral","src":"1032:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1017:3:97","nodeType":"YulIdentifier","src":"1017:3:97"},"nativeSrc":"1017:18:97","nodeType":"YulFunctionCall","src":"1017:18:97"},"variableNames":[{"name":"tail","nativeSrc":"1009:4:97","nodeType":"YulIdentifier","src":"1009:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1051:9:97","nodeType":"YulIdentifier","src":"1051:9:97"},{"arguments":[{"name":"value0","nativeSrc":"1066:6:97","nodeType":"YulIdentifier","src":"1066:6:97"},{"kind":"number","nativeSrc":"1074:4:97","nodeType":"YulLiteral","src":"1074:4:97","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"1062:3:97","nodeType":"YulIdentifier","src":"1062:3:97"},"nativeSrc":"1062:17:97","nodeType":"YulFunctionCall","src":"1062:17:97"}],"functionName":{"name":"mstore","nativeSrc":"1044:6:97","nodeType":"YulIdentifier","src":"1044:6:97"},"nativeSrc":"1044:36:97","nodeType":"YulFunctionCall","src":"1044:36:97"},"nativeSrc":"1044:36:97","nodeType":"YulExpressionStatement","src":"1044:36:97"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"902:184:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"968:9:97","nodeType":"YulTypedName","src":"968:9:97","type":""},{"name":"value0","nativeSrc":"979:6:97","nodeType":"YulTypedName","src":"979:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"990:4:97","nodeType":"YulTypedName","src":"990:4:97","type":""}],"src":"902:184:97"}]},"contents":"{\n    { }\n    function abi_decode_address_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address_fromMemory(headStart)\n        value1 := abi_decode_address_fromMemory(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 39)\n        mstore(add(headStart, 64), \"Initializable: contract is initi\")\n        mstore(add(headStart, 96), \"alizing\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n}","id":97,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60c060405234801561001057600080fd5b5060405161148538038061148583398101604081905261002f91610160565b6100388161005a565b6001600160a01b03808316608052811660a052610053610084565b5050610193565b6001600160a01b038116610081576040516342bcdf7f60e11b815260040160405180910390fd5b50565b600054610100900460ff16156100f05760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015610142576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b80516001600160a01b038116811461015b57600080fd5b919050565b6000806040838503121561017357600080fd5b61017c83610144565b915061018a60208401610144565b90509250929050565b60805160a0516112bf6101c66000396000818161024201526105f10152600081816102e70152610bf601526112bf6000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c8063b296e6cb11610097578063e30c397811610066578063e30c3978146102a8578063ee97f265146102c6578063f2fde38b146102cf578063fa7b81a0146102e257600080fd5b8063b296e6cb1461023d578063b4a0bdf314610264578063bf63783914610282578063c4d66de81461029557600080fd5b8063715018a6116100d3578063715018a61461018457806379ba50971461018c5780638da5cb5b14610194578063a052e9b3146101d357600080fd5b80630e32cb86146100fa5780633c781b1f1461010f57806342b7cfbd14610161575b600080fd5b61010d61010836600461111a565b610309565b005b61014b6040518060400160405280601181526020017f696e746572657374526174654d6f64656c00000000000000000000000000000081525081565b604051610158919061113e565b60405180910390f35b61017461016f3660046111ab565b61031d565b6040519015158152602001610158565b61010d6104f0565b61010d610522565b60335473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610158565b60408051808201909152601181527f696e746572657374526174654d6f64656c00000000000000000000000000000060209091015261022f7ff75408e574901a1e186e15f549424e67ef3d922f87ae58b527ea22f51cf7ef2581565b604051908152602001610158565b6101ae7f000000000000000000000000000000000000000000000000000000000000000081565b60975473ffffffffffffffffffffffffffffffffffffffff166101ae565b61010d6102903660046111ab565b6105d9565b61010d6102a336600461111a565b610710565b60655473ffffffffffffffffffffffffffffffffffffffff166101ae565b61022f60c95481565b61010d6102dd36600461111a565b6108a4565b6101ae7f000000000000000000000000000000000000000000000000000000000000000081565b610311610954565b61031a816109d7565b50565b60408051808201909152601181527f696e746572657374526174654d6f64656c000000000000000000000000000000602090910152600060808201357ff75408e574901a1e186e15f549424e67ef3d922f87ae58b527ea22f51cf7ef25146103b1576040517f80919d7b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006103fd6103c360a08501856111e7565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610af992505050565b90506000610411606085016040860161111a565b73ffffffffffffffffffffffffffffffffffffffff1663f3fdb15a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561045b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047f9190611253565b90508073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036104e6576040517f925cd79500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060009392505050565b6040517f96c553eb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606554339073ffffffffffffffffffffffffffffffffffffffff1681146105d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e6572000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61031a81610b50565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610648576040517f3a739dd700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408051808201909152601181527f696e746572657374526174654d6f64656c0000000000000000000000000000006020909101527f08abf71a8b6fe5e1e791ea0ab6bdb19810c26dd07851a74ad815dd0ae30810db6080820135016106de5760006106ba6103c360a08401846111e7565b90506106da60208301356106d4606085016040860161111a565b83610b81565b5050565b6040517f80919d7b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600054610100900460ff16158080156107305750600054600160ff909116105b8061074a5750303b15801561074a575060005460ff166001145b6107d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016105c7565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561083457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61083d82610e03565b80156106da57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15050565b6108ac610954565b6065805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915561090f60335473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60335473ffffffffffffffffffffffffffffffffffffffff1633146109d5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105c7565b565b73ffffffffffffffffffffffffffffffffffffffff8116610a7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e6167657220616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016105c7565b6097805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa09101610898565b60008151602014610b36576040517fcc2cec0200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81806020019051810190610b4a9190611253565b92915050565b606580547fffffffffffffffffffffffff000000000000000000000000000000000000000016905561031a81610eab565b60008273ffffffffffffffffffffffffffffffffffffffff16635fe3b5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf29190611253565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d20576040517ff2b3abbd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301526000919085169063f2b3abbd906024016020604051808303816000875af1158015610cb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdd9190611270565b90508015610d1a576040517f4bb4ca74000000000000000000000000000000000000000000000000000000008152600481018290526024016105c7565b50610da2565b6040517f8bcd401600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152841690638bcd401690602401600060405180830381600087803b158015610d8957600080fd5b505af1158015610d9d573d6000803e3d6000fd5b505050505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16857fa8e9cd499759e0d6670a4fb6813dccb496a67475ff4c67d231e79e23bb816b4f60405160405180910390a450505050565b600054610100900460ff16610e9a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105c7565b610ea2610f22565b61031a81610fc1565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16610fb9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105c7565b6109d5611058565b600054610100900460ff16610311576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105c7565b600054610100900460ff166110ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105c7565b6109d533610b50565b73ffffffffffffffffffffffffffffffffffffffff8116811461031a57600080fd5b60006020828403121561112c57600080fd5b8135611137816110f8565b9392505050565b60006020808352835180602085015260005b8181101561116c57858101830151858201604001528201611150565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b6000602082840312156111bd57600080fd5b813567ffffffffffffffff8111156111d457600080fd5b8201610180818503121561113757600080fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261121c57600080fd5b83018035915067ffffffffffffffff82111561123757600080fd5b60200191503681900382131561124c57600080fd5b9250929050565b60006020828403121561126557600080fd5b8151611137816110f8565b60006020828403121561128257600080fd5b505191905056fea2646970667358221220ffafab2b05c4082cc0eab20286eea72770cd146ce1ad14000b0adc55a789f6cf64736f6c63430008190033","opcodes":"PUSH1 0xC0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x1485 CODESIZE SUB DUP1 PUSH2 0x1485 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x160 JUMP JUMPDEST PUSH2 0x38 DUP2 PUSH2 0x5A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP4 AND PUSH1 0x80 MSTORE DUP2 AND PUSH1 0xA0 MSTORE PUSH2 0x53 PUSH2 0x84 JUMP JUMPDEST POP POP PUSH2 0x193 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x81 JUMPI PUSH1 0x40 MLOAD PUSH4 0x42BCDF7F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xF0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND LT ISZERO PUSH2 0x142 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x15B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x173 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x17C DUP4 PUSH2 0x144 JUMP JUMPDEST SWAP2 POP PUSH2 0x18A PUSH1 0x20 DUP5 ADD PUSH2 0x144 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH2 0x12BF PUSH2 0x1C6 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x242 ADD MSTORE PUSH2 0x5F1 ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x2E7 ADD MSTORE PUSH2 0xBF6 ADD MSTORE PUSH2 0x12BF PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xF5 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xB296E6CB GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xE30C3978 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x2A8 JUMPI DUP1 PUSH4 0xEE97F265 EQ PUSH2 0x2C6 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x2CF JUMPI DUP1 PUSH4 0xFA7B81A0 EQ PUSH2 0x2E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB296E6CB EQ PUSH2 0x23D JUMPI DUP1 PUSH4 0xB4A0BDF3 EQ PUSH2 0x264 JUMPI DUP1 PUSH4 0xBF637839 EQ PUSH2 0x282 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x295 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x715018A6 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x184 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x18C JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x194 JUMPI DUP1 PUSH4 0xA052E9B3 EQ PUSH2 0x1D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xE32CB86 EQ PUSH2 0xFA JUMPI DUP1 PUSH4 0x3C781B1F EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x42B7CFBD EQ PUSH2 0x161 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10D PUSH2 0x108 CALLDATASIZE PUSH1 0x4 PUSH2 0x111A JUMP JUMPDEST PUSH2 0x309 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x14B PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x11 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x696E746572657374526174654D6F64656C000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x158 SWAP2 SWAP1 PUSH2 0x113E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x174 PUSH2 0x16F CALLDATASIZE PUSH1 0x4 PUSH2 0x11AB JUMP JUMPDEST PUSH2 0x31D JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x158 JUMP JUMPDEST PUSH2 0x10D PUSH2 0x4F0 JUMP JUMPDEST PUSH2 0x10D PUSH2 0x522 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x158 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x11 DUP2 MSTORE PUSH32 0x696E746572657374526174654D6F64656C000000000000000000000000000000 PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE PUSH2 0x22F PUSH32 0xF75408E574901A1E186E15F549424E67EF3D922F87AE58B527EA22F51CF7EF25 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x158 JUMP JUMPDEST PUSH2 0x1AE PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1AE JUMP JUMPDEST PUSH2 0x10D PUSH2 0x290 CALLDATASIZE PUSH1 0x4 PUSH2 0x11AB JUMP JUMPDEST PUSH2 0x5D9 JUMP JUMPDEST PUSH2 0x10D PUSH2 0x2A3 CALLDATASIZE PUSH1 0x4 PUSH2 0x111A JUMP JUMPDEST PUSH2 0x710 JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1AE JUMP JUMPDEST PUSH2 0x22F PUSH1 0xC9 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x10D PUSH2 0x2DD CALLDATASIZE PUSH1 0x4 PUSH2 0x111A JUMP JUMPDEST PUSH2 0x8A4 JUMP JUMPDEST PUSH2 0x1AE PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x311 PUSH2 0x954 JUMP JUMPDEST PUSH2 0x31A DUP2 PUSH2 0x9D7 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x11 DUP2 MSTORE PUSH32 0x696E746572657374526174654D6F64656C000000000000000000000000000000 PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE PUSH1 0x0 PUSH1 0x80 DUP3 ADD CALLDATALOAD PUSH32 0xF75408E574901A1E186E15F549424E67EF3D922F87AE58B527EA22F51CF7EF25 EQ PUSH2 0x3B1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x80919D7B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3FD PUSH2 0x3C3 PUSH1 0xA0 DUP6 ADD DUP6 PUSH2 0x11E7 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0xAF9 SWAP3 POP POP POP JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x411 PUSH1 0x60 DUP6 ADD PUSH1 0x40 DUP7 ADD PUSH2 0x111A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF3FDB15A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x45B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x47F SWAP2 SWAP1 PUSH2 0x1253 JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x4E6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x925CD79500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH1 0x0 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x96C553EB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x65 SLOAD CALLER SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 EQ PUSH2 0x5D0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C6532537465703A2063616C6C6572206973206E6F742074686520 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E6577206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x31A DUP2 PUSH2 0xB50 JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 AND EQ PUSH2 0x648 JUMPI PUSH1 0x40 MLOAD PUSH32 0x3A739DD700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x11 DUP2 MSTORE PUSH32 0x696E746572657374526174654D6F64656C000000000000000000000000000000 PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE PUSH32 0x8ABF71A8B6FE5E1E791EA0AB6BDB19810C26DD07851A74AD815DD0AE30810DB PUSH1 0x80 DUP3 ADD CALLDATALOAD ADD PUSH2 0x6DE JUMPI PUSH1 0x0 PUSH2 0x6BA PUSH2 0x3C3 PUSH1 0xA0 DUP5 ADD DUP5 PUSH2 0x11E7 JUMP JUMPDEST SWAP1 POP PUSH2 0x6DA PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x6D4 PUSH1 0x60 DUP6 ADD PUSH1 0x40 DUP7 ADD PUSH2 0x111A JUMP JUMPDEST DUP4 PUSH2 0xB81 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x80919D7B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x730 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x74A JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x74A JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x7D6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x647920696E697469616C697A6564000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5C7 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x834 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0x83D DUP3 PUSH2 0xE03 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x6DA JUMPI PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH2 0x8AC PUSH2 0x954 JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP1 SWAP2 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0x90F PUSH1 0x33 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x9D5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5C7 JUMP JUMPDEST JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0xA7A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C696420616365737320636F6E74726F6C206D616E61676572206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5C7 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 SWAP1 SWAP3 AND DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH32 0x66FD58E82F7B31A2A5C30E0888F3093EFE4E111B00CD2B0C31FE014601293AA0 SWAP2 ADD PUSH2 0x898 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD PUSH1 0x20 EQ PUSH2 0xB36 JUMPI PUSH1 0x40 MLOAD PUSH32 0xCC2CEC0200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xB4A SWAP2 SWAP1 PUSH2 0x1253 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND SWAP1 SSTORE PUSH2 0x31A DUP2 PUSH2 0xEAB JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x5FE3B567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xBCE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBF2 SWAP2 SWAP1 PUSH2 0x1253 JUMP JUMPDEST SWAP1 POP PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xD20 JUMPI PUSH1 0x40 MLOAD PUSH32 0xF2B3ABBD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP6 AND SWAP1 PUSH4 0xF2B3ABBD SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCB9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCDD SWAP2 SWAP1 PUSH2 0x1270 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0xD1A JUMPI PUSH1 0x40 MLOAD PUSH32 0x4BB4CA7400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x5C7 JUMP JUMPDEST POP PUSH2 0xDA2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8BCD401600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP5 AND SWAP1 PUSH4 0x8BCD4016 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD89 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD9D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH32 0xA8E9CD499759E0D6670A4FB6813DCCB496A67475FF4C67D231E79E23BB816B4F PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0xE9A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5C7 JUMP JUMPDEST PUSH2 0xEA2 PUSH2 0xF22 JUMP JUMPDEST PUSH2 0x31A DUP2 PUSH2 0xFC1 JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0xFB9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5C7 JUMP JUMPDEST PUSH2 0x9D5 PUSH2 0x1058 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x311 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5C7 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x10EF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5C7 JUMP JUMPDEST PUSH2 0x9D5 CALLER PUSH2 0xB50 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x31A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x112C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1137 DUP2 PUSH2 0x10F8 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 PUSH1 0x20 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x116C JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x1150 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x40 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x40 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x11BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x11D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH2 0x180 DUP2 DUP6 SUB SLT ISZERO PUSH2 0x1137 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x121C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1237 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x124C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1265 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1137 DUP2 PUSH2 0x10F8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1282 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SELFDESTRUCT 0xAF 0xAB 0x2B SDIV 0xC4 ADDMOD 0x2C 0xC0 0xEA 0xB2 MUL DUP7 0xEE 0xA7 0x27 PUSH17 0xCD146CE1AD14000B0ADC55A789F6CF6473 PUSH16 0x6C634300081900330000000000000000 ","sourceMap":"1058:6955:63:-:0;;;3622:315;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3704:42;3725:20;3704;:42::i;:::-;-1:-1:-1;;;;;3756:66:63;;;;;3832;;;;3908:22;:20;:22::i;:::-;3622:315;;1058:6955;;485:136:47;-1:-1:-1;;;;;548:22:47;;544:75;;589:23;;-1:-1:-1;;;589:23:47;;;;;;;;;;;544:75;485:136;:::o;5928:279:27:-;5996:13;;;;;;;5995:14;5987:66;;;;-1:-1:-1;;;5987:66:27;;696:2:97;5987:66:27;;;678:21:97;735:2;715:18;;;708:30;774:34;754:18;;;747:62;-1:-1:-1;;;825:18:97;;;818:37;872:19;;5987:66:27;;;;;;;;6067:12;;6082:15;6067:12;;;:30;6063:138;;;6113:12;:30;;-1:-1:-1;;6113:30:27;6128:15;6113:30;;;;;;6162:28;;1044:36:97;;;6162:28:27;;1032:2:97;1017:18;6162:28:27;;;;;;;6063:138;5928:279::o;14:177:97:-;93:13;;-1:-1:-1;;;;;135:31:97;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:293::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:52;;;352:1;349;342:12;304:52;375:40;405:9;375:40;:::i;:::-;365:50;;434:49;479:2;468:9;464:18;434:49;:::i;:::-;424:59;;196:293;;;;;:::o;902:184::-;1058:6955:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@CORE_POOL_COMPTROLLER_16045":{"entryPoint":null,"id":16045,"parameterSlots":0,"returnSlots":0},"@INTEREST_RATE_MODEL_16032":{"entryPoint":null,"id":16032,"parameterSlots":0,"returnSlots":0},"@INTEREST_RATE_MODEL_KEY_16041":{"entryPoint":null,"id":16041,"parameterSlots":0,"returnSlots":0},"@RISK_STEWARD_RECEIVER_16049":{"entryPoint":null,"id":16049,"parameterSlots":0,"returnSlots":0},"@__AccessControlled_init_13754":{"entryPoint":3587,"id":13754,"parameterSlots":1,"returnSlots":0},"@__AccessControlled_init_unchained_13766":{"entryPoint":4033,"id":13766,"parameterSlots":1,"returnSlots":0},"@__Ownable2Step_init_5859":{"entryPoint":3874,"id":5859,"parameterSlots":0,"returnSlots":0},"@__Ownable_init_unchained_5985":{"entryPoint":4184,"id":5985,"parameterSlots":0,"returnSlots":0},"@_checkOwner_6016":{"entryPoint":2388,"id":6016,"parameterSlots":0,"returnSlots":0},"@_decodeAbiEncodedAddress_16301":{"entryPoint":2809,"id":16301,"parameterSlots":1,"returnSlots":1},"@_msgSender_6559":{"entryPoint":null,"id":6559,"parameterSlots":0,"returnSlots":1},"@_setAccessControlManager_13827":{"entryPoint":2519,"id":13827,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_5919":{"entryPoint":2896,"id":5919,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_6073":{"entryPoint":3755,"id":6073,"parameterSlots":1,"returnSlots":0},"@_updateIRM_16276":{"entryPoint":2945,"id":16276,"parameterSlots":3,"returnSlots":0},"@acceptOwnership_5941":{"entryPoint":1314,"id":5941,"parameterSlots":0,"returnSlots":0},"@accessControlManager_13789":{"entryPoint":null,"id":13789,"parameterSlots":0,"returnSlots":1},"@applyUpdate_16166":{"entryPoint":1497,"id":16166,"parameterSlots":1,"returnSlots":0},"@initialize_16121":{"entryPoint":1808,"id":16121,"parameterSlots":1,"returnSlots":0},"@isContract_6266":{"entryPoint":null,"id":6266,"parameterSlots":1,"returnSlots":1},"@isSafeForDirectExecution_16214":{"entryPoint":797,"id":16214,"parameterSlots":1,"returnSlots":1},"@owner_6002":{"entryPoint":null,"id":6002,"parameterSlots":0,"returnSlots":1},"@pendingOwner_5882":{"entryPoint":null,"id":5882,"parameterSlots":0,"returnSlots":1},"@renounceOwnership_14476":{"entryPoint":1264,"id":14476,"parameterSlots":0,"returnSlots":0},"@safeDeltaBps_14464":{"entryPoint":null,"id":14464,"parameterSlots":0,"returnSlots":0},"@setAccessControlManager_13779":{"entryPoint":777,"id":13779,"parameterSlots":1,"returnSlots":0},"@transferOwnership_5902":{"entryPoint":2212,"id":5902,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_address":{"entryPoint":4378,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":4691,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_payable_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_RiskParameterUpdate_$16568_calldata_ptr":{"entryPoint":4523,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":4720,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$13903__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_ICorePoolComptroller_$20347__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IRiskStewardReceiver_$17139__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_InterestRateModelV8_$10994__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_InterestRateModel_$10919__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4414,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"access_calldata_tail_t_bytes_calldata_ptr":{"entryPoint":4583,"id":null,"parameterSlots":2,"returnSlots":2},"validator_revert_address":{"entryPoint":4344,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:7359:97","nodeType":"YulBlock","src":"0:7359:97","statements":[{"nativeSrc":"6:3:97","nodeType":"YulBlock","src":"6:3:97","statements":[]},{"body":{"nativeSrc":"59:109:97","nodeType":"YulBlock","src":"59:109:97","statements":[{"body":{"nativeSrc":"146:16:97","nodeType":"YulBlock","src":"146:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"155:1:97","nodeType":"YulLiteral","src":"155:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"158:1:97","nodeType":"YulLiteral","src":"158:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"148:6:97","nodeType":"YulIdentifier","src":"148:6:97"},"nativeSrc":"148:12:97","nodeType":"YulFunctionCall","src":"148:12:97"},"nativeSrc":"148:12:97","nodeType":"YulExpressionStatement","src":"148:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"82:5:97","nodeType":"YulIdentifier","src":"82:5:97"},{"arguments":[{"name":"value","nativeSrc":"93:5:97","nodeType":"YulIdentifier","src":"93:5:97"},{"kind":"number","nativeSrc":"100:42:97","nodeType":"YulLiteral","src":"100:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"89:3:97","nodeType":"YulIdentifier","src":"89:3:97"},"nativeSrc":"89:54:97","nodeType":"YulFunctionCall","src":"89:54:97"}],"functionName":{"name":"eq","nativeSrc":"79:2:97","nodeType":"YulIdentifier","src":"79:2:97"},"nativeSrc":"79:65:97","nodeType":"YulFunctionCall","src":"79:65:97"}],"functionName":{"name":"iszero","nativeSrc":"72:6:97","nodeType":"YulIdentifier","src":"72:6:97"},"nativeSrc":"72:73:97","nodeType":"YulFunctionCall","src":"72:73:97"},"nativeSrc":"69:93:97","nodeType":"YulIf","src":"69:93:97"}]},"name":"validator_revert_address","nativeSrc":"14:154:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"48:5:97","nodeType":"YulTypedName","src":"48:5:97","type":""}],"src":"14:154:97"},{"body":{"nativeSrc":"243:177:97","nodeType":"YulBlock","src":"243:177:97","statements":[{"body":{"nativeSrc":"289:16:97","nodeType":"YulBlock","src":"289:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"298:1:97","nodeType":"YulLiteral","src":"298:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"301:1:97","nodeType":"YulLiteral","src":"301:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"291:6:97","nodeType":"YulIdentifier","src":"291:6:97"},"nativeSrc":"291:12:97","nodeType":"YulFunctionCall","src":"291:12:97"},"nativeSrc":"291:12:97","nodeType":"YulExpressionStatement","src":"291:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"264:7:97","nodeType":"YulIdentifier","src":"264:7:97"},{"name":"headStart","nativeSrc":"273:9:97","nodeType":"YulIdentifier","src":"273:9:97"}],"functionName":{"name":"sub","nativeSrc":"260:3:97","nodeType":"YulIdentifier","src":"260:3:97"},"nativeSrc":"260:23:97","nodeType":"YulFunctionCall","src":"260:23:97"},{"kind":"number","nativeSrc":"285:2:97","nodeType":"YulLiteral","src":"285:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"256:3:97","nodeType":"YulIdentifier","src":"256:3:97"},"nativeSrc":"256:32:97","nodeType":"YulFunctionCall","src":"256:32:97"},"nativeSrc":"253:52:97","nodeType":"YulIf","src":"253:52:97"},{"nativeSrc":"314:36:97","nodeType":"YulVariableDeclaration","src":"314:36:97","value":{"arguments":[{"name":"headStart","nativeSrc":"340:9:97","nodeType":"YulIdentifier","src":"340:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"327:12:97","nodeType":"YulIdentifier","src":"327:12:97"},"nativeSrc":"327:23:97","nodeType":"YulFunctionCall","src":"327:23:97"},"variables":[{"name":"value","nativeSrc":"318:5:97","nodeType":"YulTypedName","src":"318:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"384:5:97","nodeType":"YulIdentifier","src":"384:5:97"}],"functionName":{"name":"validator_revert_address","nativeSrc":"359:24:97","nodeType":"YulIdentifier","src":"359:24:97"},"nativeSrc":"359:31:97","nodeType":"YulFunctionCall","src":"359:31:97"},"nativeSrc":"359:31:97","nodeType":"YulExpressionStatement","src":"359:31:97"},{"nativeSrc":"399:15:97","nodeType":"YulAssignment","src":"399:15:97","value":{"name":"value","nativeSrc":"409:5:97","nodeType":"YulIdentifier","src":"409:5:97"},"variableNames":[{"name":"value0","nativeSrc":"399:6:97","nodeType":"YulIdentifier","src":"399:6:97"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"173:247:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"209:9:97","nodeType":"YulTypedName","src":"209:9:97","type":""},{"name":"dataEnd","nativeSrc":"220:7:97","nodeType":"YulTypedName","src":"220:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"232:6:97","nodeType":"YulTypedName","src":"232:6:97","type":""}],"src":"173:247:97"},{"body":{"nativeSrc":"546:486:97","nodeType":"YulBlock","src":"546:486:97","statements":[{"nativeSrc":"556:12:97","nodeType":"YulVariableDeclaration","src":"556:12:97","value":{"kind":"number","nativeSrc":"566:2:97","nodeType":"YulLiteral","src":"566:2:97","type":"","value":"32"},"variables":[{"name":"_1","nativeSrc":"560:2:97","nodeType":"YulTypedName","src":"560:2:97","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"584:9:97","nodeType":"YulIdentifier","src":"584:9:97"},{"kind":"number","nativeSrc":"595:2:97","nodeType":"YulLiteral","src":"595:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"577:6:97","nodeType":"YulIdentifier","src":"577:6:97"},"nativeSrc":"577:21:97","nodeType":"YulFunctionCall","src":"577:21:97"},"nativeSrc":"577:21:97","nodeType":"YulExpressionStatement","src":"577:21:97"},{"nativeSrc":"607:27:97","nodeType":"YulVariableDeclaration","src":"607:27:97","value":{"arguments":[{"name":"value0","nativeSrc":"627:6:97","nodeType":"YulIdentifier","src":"627:6:97"}],"functionName":{"name":"mload","nativeSrc":"621:5:97","nodeType":"YulIdentifier","src":"621:5:97"},"nativeSrc":"621:13:97","nodeType":"YulFunctionCall","src":"621:13:97"},"variables":[{"name":"length","nativeSrc":"611:6:97","nodeType":"YulTypedName","src":"611:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"654:9:97","nodeType":"YulIdentifier","src":"654:9:97"},{"kind":"number","nativeSrc":"665:2:97","nodeType":"YulLiteral","src":"665:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"650:3:97","nodeType":"YulIdentifier","src":"650:3:97"},"nativeSrc":"650:18:97","nodeType":"YulFunctionCall","src":"650:18:97"},{"name":"length","nativeSrc":"670:6:97","nodeType":"YulIdentifier","src":"670:6:97"}],"functionName":{"name":"mstore","nativeSrc":"643:6:97","nodeType":"YulIdentifier","src":"643:6:97"},"nativeSrc":"643:34:97","nodeType":"YulFunctionCall","src":"643:34:97"},"nativeSrc":"643:34:97","nodeType":"YulExpressionStatement","src":"643:34:97"},{"nativeSrc":"686:10:97","nodeType":"YulVariableDeclaration","src":"686:10:97","value":{"kind":"number","nativeSrc":"695:1:97","nodeType":"YulLiteral","src":"695:1:97","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"690:1:97","nodeType":"YulTypedName","src":"690:1:97","type":""}]},{"body":{"nativeSrc":"755:90:97","nodeType":"YulBlock","src":"755:90:97","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"784:9:97","nodeType":"YulIdentifier","src":"784:9:97"},{"name":"i","nativeSrc":"795:1:97","nodeType":"YulIdentifier","src":"795:1:97"}],"functionName":{"name":"add","nativeSrc":"780:3:97","nodeType":"YulIdentifier","src":"780:3:97"},"nativeSrc":"780:17:97","nodeType":"YulFunctionCall","src":"780:17:97"},{"kind":"number","nativeSrc":"799:2:97","nodeType":"YulLiteral","src":"799:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"776:3:97","nodeType":"YulIdentifier","src":"776:3:97"},"nativeSrc":"776:26:97","nodeType":"YulFunctionCall","src":"776:26:97"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"818:6:97","nodeType":"YulIdentifier","src":"818:6:97"},{"name":"i","nativeSrc":"826:1:97","nodeType":"YulIdentifier","src":"826:1:97"}],"functionName":{"name":"add","nativeSrc":"814:3:97","nodeType":"YulIdentifier","src":"814:3:97"},"nativeSrc":"814:14:97","nodeType":"YulFunctionCall","src":"814:14:97"},{"name":"_1","nativeSrc":"830:2:97","nodeType":"YulIdentifier","src":"830:2:97"}],"functionName":{"name":"add","nativeSrc":"810:3:97","nodeType":"YulIdentifier","src":"810:3:97"},"nativeSrc":"810:23:97","nodeType":"YulFunctionCall","src":"810:23:97"}],"functionName":{"name":"mload","nativeSrc":"804:5:97","nodeType":"YulIdentifier","src":"804:5:97"},"nativeSrc":"804:30:97","nodeType":"YulFunctionCall","src":"804:30:97"}],"functionName":{"name":"mstore","nativeSrc":"769:6:97","nodeType":"YulIdentifier","src":"769:6:97"},"nativeSrc":"769:66:97","nodeType":"YulFunctionCall","src":"769:66:97"},"nativeSrc":"769:66:97","nodeType":"YulExpressionStatement","src":"769:66:97"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"716:1:97","nodeType":"YulIdentifier","src":"716:1:97"},{"name":"length","nativeSrc":"719:6:97","nodeType":"YulIdentifier","src":"719:6:97"}],"functionName":{"name":"lt","nativeSrc":"713:2:97","nodeType":"YulIdentifier","src":"713:2:97"},"nativeSrc":"713:13:97","nodeType":"YulFunctionCall","src":"713:13:97"},"nativeSrc":"705:140:97","nodeType":"YulForLoop","post":{"nativeSrc":"727:19:97","nodeType":"YulBlock","src":"727:19:97","statements":[{"nativeSrc":"729:15:97","nodeType":"YulAssignment","src":"729:15:97","value":{"arguments":[{"name":"i","nativeSrc":"738:1:97","nodeType":"YulIdentifier","src":"738:1:97"},{"name":"_1","nativeSrc":"741:2:97","nodeType":"YulIdentifier","src":"741:2:97"}],"functionName":{"name":"add","nativeSrc":"734:3:97","nodeType":"YulIdentifier","src":"734:3:97"},"nativeSrc":"734:10:97","nodeType":"YulFunctionCall","src":"734:10:97"},"variableNames":[{"name":"i","nativeSrc":"729:1:97","nodeType":"YulIdentifier","src":"729:1:97"}]}]},"pre":{"nativeSrc":"709:3:97","nodeType":"YulBlock","src":"709:3:97","statements":[]},"src":"705:140:97"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"869:9:97","nodeType":"YulIdentifier","src":"869:9:97"},{"name":"length","nativeSrc":"880:6:97","nodeType":"YulIdentifier","src":"880:6:97"}],"functionName":{"name":"add","nativeSrc":"865:3:97","nodeType":"YulIdentifier","src":"865:3:97"},"nativeSrc":"865:22:97","nodeType":"YulFunctionCall","src":"865:22:97"},{"kind":"number","nativeSrc":"889:2:97","nodeType":"YulLiteral","src":"889:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"861:3:97","nodeType":"YulIdentifier","src":"861:3:97"},"nativeSrc":"861:31:97","nodeType":"YulFunctionCall","src":"861:31:97"},{"kind":"number","nativeSrc":"894:1:97","nodeType":"YulLiteral","src":"894:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"854:6:97","nodeType":"YulIdentifier","src":"854:6:97"},"nativeSrc":"854:42:97","nodeType":"YulFunctionCall","src":"854:42:97"},"nativeSrc":"854:42:97","nodeType":"YulExpressionStatement","src":"854:42:97"},{"nativeSrc":"905:121:97","nodeType":"YulAssignment","src":"905:121:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"921:9:97","nodeType":"YulIdentifier","src":"921:9:97"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"940:6:97","nodeType":"YulIdentifier","src":"940:6:97"},{"kind":"number","nativeSrc":"948:2:97","nodeType":"YulLiteral","src":"948:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"936:3:97","nodeType":"YulIdentifier","src":"936:3:97"},"nativeSrc":"936:15:97","nodeType":"YulFunctionCall","src":"936:15:97"},{"kind":"number","nativeSrc":"953:66:97","nodeType":"YulLiteral","src":"953:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"932:3:97","nodeType":"YulIdentifier","src":"932:3:97"},"nativeSrc":"932:88:97","nodeType":"YulFunctionCall","src":"932:88:97"}],"functionName":{"name":"add","nativeSrc":"917:3:97","nodeType":"YulIdentifier","src":"917:3:97"},"nativeSrc":"917:104:97","nodeType":"YulFunctionCall","src":"917:104:97"},{"kind":"number","nativeSrc":"1023:2:97","nodeType":"YulLiteral","src":"1023:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"913:3:97","nodeType":"YulIdentifier","src":"913:3:97"},"nativeSrc":"913:113:97","nodeType":"YulFunctionCall","src":"913:113:97"},"variableNames":[{"name":"tail","nativeSrc":"905:4:97","nodeType":"YulIdentifier","src":"905:4:97"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"425:607:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"515:9:97","nodeType":"YulTypedName","src":"515:9:97","type":""},{"name":"value0","nativeSrc":"526:6:97","nodeType":"YulTypedName","src":"526:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"537:4:97","nodeType":"YulTypedName","src":"537:4:97","type":""}],"src":"425:607:97"},{"body":{"nativeSrc":"1147:290:97","nodeType":"YulBlock","src":"1147:290:97","statements":[{"body":{"nativeSrc":"1193:16:97","nodeType":"YulBlock","src":"1193:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1202:1:97","nodeType":"YulLiteral","src":"1202:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1205:1:97","nodeType":"YulLiteral","src":"1205:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1195:6:97","nodeType":"YulIdentifier","src":"1195:6:97"},"nativeSrc":"1195:12:97","nodeType":"YulFunctionCall","src":"1195:12:97"},"nativeSrc":"1195:12:97","nodeType":"YulExpressionStatement","src":"1195:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1168:7:97","nodeType":"YulIdentifier","src":"1168:7:97"},{"name":"headStart","nativeSrc":"1177:9:97","nodeType":"YulIdentifier","src":"1177:9:97"}],"functionName":{"name":"sub","nativeSrc":"1164:3:97","nodeType":"YulIdentifier","src":"1164:3:97"},"nativeSrc":"1164:23:97","nodeType":"YulFunctionCall","src":"1164:23:97"},{"kind":"number","nativeSrc":"1189:2:97","nodeType":"YulLiteral","src":"1189:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1160:3:97","nodeType":"YulIdentifier","src":"1160:3:97"},"nativeSrc":"1160:32:97","nodeType":"YulFunctionCall","src":"1160:32:97"},"nativeSrc":"1157:52:97","nodeType":"YulIf","src":"1157:52:97"},{"nativeSrc":"1218:37:97","nodeType":"YulVariableDeclaration","src":"1218:37:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1245:9:97","nodeType":"YulIdentifier","src":"1245:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"1232:12:97","nodeType":"YulIdentifier","src":"1232:12:97"},"nativeSrc":"1232:23:97","nodeType":"YulFunctionCall","src":"1232:23:97"},"variables":[{"name":"offset","nativeSrc":"1222:6:97","nodeType":"YulTypedName","src":"1222:6:97","type":""}]},{"body":{"nativeSrc":"1298:16:97","nodeType":"YulBlock","src":"1298:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1307:1:97","nodeType":"YulLiteral","src":"1307:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1310:1:97","nodeType":"YulLiteral","src":"1310:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1300:6:97","nodeType":"YulIdentifier","src":"1300:6:97"},"nativeSrc":"1300:12:97","nodeType":"YulFunctionCall","src":"1300:12:97"},"nativeSrc":"1300:12:97","nodeType":"YulExpressionStatement","src":"1300:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"1270:6:97","nodeType":"YulIdentifier","src":"1270:6:97"},{"kind":"number","nativeSrc":"1278:18:97","nodeType":"YulLiteral","src":"1278:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1267:2:97","nodeType":"YulIdentifier","src":"1267:2:97"},"nativeSrc":"1267:30:97","nodeType":"YulFunctionCall","src":"1267:30:97"},"nativeSrc":"1264:50:97","nodeType":"YulIf","src":"1264:50:97"},{"nativeSrc":"1323:32:97","nodeType":"YulVariableDeclaration","src":"1323:32:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1337:9:97","nodeType":"YulIdentifier","src":"1337:9:97"},{"name":"offset","nativeSrc":"1348:6:97","nodeType":"YulIdentifier","src":"1348:6:97"}],"functionName":{"name":"add","nativeSrc":"1333:3:97","nodeType":"YulIdentifier","src":"1333:3:97"},"nativeSrc":"1333:22:97","nodeType":"YulFunctionCall","src":"1333:22:97"},"variables":[{"name":"_1","nativeSrc":"1327:2:97","nodeType":"YulTypedName","src":"1327:2:97","type":""}]},{"body":{"nativeSrc":"1394:16:97","nodeType":"YulBlock","src":"1394:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1403:1:97","nodeType":"YulLiteral","src":"1403:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1406:1:97","nodeType":"YulLiteral","src":"1406:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1396:6:97","nodeType":"YulIdentifier","src":"1396:6:97"},"nativeSrc":"1396:12:97","nodeType":"YulFunctionCall","src":"1396:12:97"},"nativeSrc":"1396:12:97","nodeType":"YulExpressionStatement","src":"1396:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1375:7:97","nodeType":"YulIdentifier","src":"1375:7:97"},{"name":"_1","nativeSrc":"1384:2:97","nodeType":"YulIdentifier","src":"1384:2:97"}],"functionName":{"name":"sub","nativeSrc":"1371:3:97","nodeType":"YulIdentifier","src":"1371:3:97"},"nativeSrc":"1371:16:97","nodeType":"YulFunctionCall","src":"1371:16:97"},{"kind":"number","nativeSrc":"1389:3:97","nodeType":"YulLiteral","src":"1389:3:97","type":"","value":"384"}],"functionName":{"name":"slt","nativeSrc":"1367:3:97","nodeType":"YulIdentifier","src":"1367:3:97"},"nativeSrc":"1367:26:97","nodeType":"YulFunctionCall","src":"1367:26:97"},"nativeSrc":"1364:46:97","nodeType":"YulIf","src":"1364:46:97"},{"nativeSrc":"1419:12:97","nodeType":"YulAssignment","src":"1419:12:97","value":{"name":"_1","nativeSrc":"1429:2:97","nodeType":"YulIdentifier","src":"1429:2:97"},"variableNames":[{"name":"value0","nativeSrc":"1419:6:97","nodeType":"YulIdentifier","src":"1419:6:97"}]}]},"name":"abi_decode_tuple_t_struct$_RiskParameterUpdate_$16568_calldata_ptr","nativeSrc":"1037:400:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1113:9:97","nodeType":"YulTypedName","src":"1113:9:97","type":""},{"name":"dataEnd","nativeSrc":"1124:7:97","nodeType":"YulTypedName","src":"1124:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1136:6:97","nodeType":"YulTypedName","src":"1136:6:97","type":""}],"src":"1037:400:97"},{"body":{"nativeSrc":"1537:92:97","nodeType":"YulBlock","src":"1537:92:97","statements":[{"nativeSrc":"1547:26:97","nodeType":"YulAssignment","src":"1547:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1559:9:97","nodeType":"YulIdentifier","src":"1559:9:97"},{"kind":"number","nativeSrc":"1570:2:97","nodeType":"YulLiteral","src":"1570:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1555:3:97","nodeType":"YulIdentifier","src":"1555:3:97"},"nativeSrc":"1555:18:97","nodeType":"YulFunctionCall","src":"1555:18:97"},"variableNames":[{"name":"tail","nativeSrc":"1547:4:97","nodeType":"YulIdentifier","src":"1547:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1589:9:97","nodeType":"YulIdentifier","src":"1589:9:97"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"1614:6:97","nodeType":"YulIdentifier","src":"1614:6:97"}],"functionName":{"name":"iszero","nativeSrc":"1607:6:97","nodeType":"YulIdentifier","src":"1607:6:97"},"nativeSrc":"1607:14:97","nodeType":"YulFunctionCall","src":"1607:14:97"}],"functionName":{"name":"iszero","nativeSrc":"1600:6:97","nodeType":"YulIdentifier","src":"1600:6:97"},"nativeSrc":"1600:22:97","nodeType":"YulFunctionCall","src":"1600:22:97"}],"functionName":{"name":"mstore","nativeSrc":"1582:6:97","nodeType":"YulIdentifier","src":"1582:6:97"},"nativeSrc":"1582:41:97","nodeType":"YulFunctionCall","src":"1582:41:97"},"nativeSrc":"1582:41:97","nodeType":"YulExpressionStatement","src":"1582:41:97"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1442:187:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1506:9:97","nodeType":"YulTypedName","src":"1506:9:97","type":""},{"name":"value0","nativeSrc":"1517:6:97","nodeType":"YulTypedName","src":"1517:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1528:4:97","nodeType":"YulTypedName","src":"1528:4:97","type":""}],"src":"1442:187:97"},{"body":{"nativeSrc":"1735:125:97","nodeType":"YulBlock","src":"1735:125:97","statements":[{"nativeSrc":"1745:26:97","nodeType":"YulAssignment","src":"1745:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1757:9:97","nodeType":"YulIdentifier","src":"1757:9:97"},{"kind":"number","nativeSrc":"1768:2:97","nodeType":"YulLiteral","src":"1768:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1753:3:97","nodeType":"YulIdentifier","src":"1753:3:97"},"nativeSrc":"1753:18:97","nodeType":"YulFunctionCall","src":"1753:18:97"},"variableNames":[{"name":"tail","nativeSrc":"1745:4:97","nodeType":"YulIdentifier","src":"1745:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1787:9:97","nodeType":"YulIdentifier","src":"1787:9:97"},{"arguments":[{"name":"value0","nativeSrc":"1802:6:97","nodeType":"YulIdentifier","src":"1802:6:97"},{"kind":"number","nativeSrc":"1810:42:97","nodeType":"YulLiteral","src":"1810:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1798:3:97","nodeType":"YulIdentifier","src":"1798:3:97"},"nativeSrc":"1798:55:97","nodeType":"YulFunctionCall","src":"1798:55:97"}],"functionName":{"name":"mstore","nativeSrc":"1780:6:97","nodeType":"YulIdentifier","src":"1780:6:97"},"nativeSrc":"1780:74:97","nodeType":"YulFunctionCall","src":"1780:74:97"},"nativeSrc":"1780:74:97","nodeType":"YulExpressionStatement","src":"1780:74:97"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"1634:226:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1704:9:97","nodeType":"YulTypedName","src":"1704:9:97","type":""},{"name":"value0","nativeSrc":"1715:6:97","nodeType":"YulTypedName","src":"1715:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1726:4:97","nodeType":"YulTypedName","src":"1726:4:97","type":""}],"src":"1634:226:97"},{"body":{"nativeSrc":"1966:76:97","nodeType":"YulBlock","src":"1966:76:97","statements":[{"nativeSrc":"1976:26:97","nodeType":"YulAssignment","src":"1976:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1988:9:97","nodeType":"YulIdentifier","src":"1988:9:97"},{"kind":"number","nativeSrc":"1999:2:97","nodeType":"YulLiteral","src":"1999:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1984:3:97","nodeType":"YulIdentifier","src":"1984:3:97"},"nativeSrc":"1984:18:97","nodeType":"YulFunctionCall","src":"1984:18:97"},"variableNames":[{"name":"tail","nativeSrc":"1976:4:97","nodeType":"YulIdentifier","src":"1976:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2018:9:97","nodeType":"YulIdentifier","src":"2018:9:97"},{"name":"value0","nativeSrc":"2029:6:97","nodeType":"YulIdentifier","src":"2029:6:97"}],"functionName":{"name":"mstore","nativeSrc":"2011:6:97","nodeType":"YulIdentifier","src":"2011:6:97"},"nativeSrc":"2011:25:97","nodeType":"YulFunctionCall","src":"2011:25:97"},"nativeSrc":"2011:25:97","nodeType":"YulExpressionStatement","src":"2011:25:97"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"1865:177:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1935:9:97","nodeType":"YulTypedName","src":"1935:9:97","type":""},{"name":"value0","nativeSrc":"1946:6:97","nodeType":"YulTypedName","src":"1946:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1957:4:97","nodeType":"YulTypedName","src":"1957:4:97","type":""}],"src":"1865:177:97"},{"body":{"nativeSrc":"2178:125:97","nodeType":"YulBlock","src":"2178:125:97","statements":[{"nativeSrc":"2188:26:97","nodeType":"YulAssignment","src":"2188:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2200:9:97","nodeType":"YulIdentifier","src":"2200:9:97"},{"kind":"number","nativeSrc":"2211:2:97","nodeType":"YulLiteral","src":"2211:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2196:3:97","nodeType":"YulIdentifier","src":"2196:3:97"},"nativeSrc":"2196:18:97","nodeType":"YulFunctionCall","src":"2196:18:97"},"variableNames":[{"name":"tail","nativeSrc":"2188:4:97","nodeType":"YulIdentifier","src":"2188:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2230:9:97","nodeType":"YulIdentifier","src":"2230:9:97"},{"arguments":[{"name":"value0","nativeSrc":"2245:6:97","nodeType":"YulIdentifier","src":"2245:6:97"},{"kind":"number","nativeSrc":"2253:42:97","nodeType":"YulLiteral","src":"2253:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"2241:3:97","nodeType":"YulIdentifier","src":"2241:3:97"},"nativeSrc":"2241:55:97","nodeType":"YulFunctionCall","src":"2241:55:97"}],"functionName":{"name":"mstore","nativeSrc":"2223:6:97","nodeType":"YulIdentifier","src":"2223:6:97"},"nativeSrc":"2223:74:97","nodeType":"YulFunctionCall","src":"2223:74:97"},"nativeSrc":"2223:74:97","nodeType":"YulExpressionStatement","src":"2223:74:97"}]},"name":"abi_encode_tuple_t_contract$_IRiskStewardReceiver_$17139__to_t_address__fromStack_reversed","nativeSrc":"2047:256:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2147:9:97","nodeType":"YulTypedName","src":"2147:9:97","type":""},{"name":"value0","nativeSrc":"2158:6:97","nodeType":"YulTypedName","src":"2158:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2169:4:97","nodeType":"YulTypedName","src":"2169:4:97","type":""}],"src":"2047:256:97"},{"body":{"nativeSrc":"2442:125:97","nodeType":"YulBlock","src":"2442:125:97","statements":[{"nativeSrc":"2452:26:97","nodeType":"YulAssignment","src":"2452:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2464:9:97","nodeType":"YulIdentifier","src":"2464:9:97"},{"kind":"number","nativeSrc":"2475:2:97","nodeType":"YulLiteral","src":"2475:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2460:3:97","nodeType":"YulIdentifier","src":"2460:3:97"},"nativeSrc":"2460:18:97","nodeType":"YulFunctionCall","src":"2460:18:97"},"variableNames":[{"name":"tail","nativeSrc":"2452:4:97","nodeType":"YulIdentifier","src":"2452:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2494:9:97","nodeType":"YulIdentifier","src":"2494:9:97"},{"arguments":[{"name":"value0","nativeSrc":"2509:6:97","nodeType":"YulIdentifier","src":"2509:6:97"},{"kind":"number","nativeSrc":"2517:42:97","nodeType":"YulLiteral","src":"2517:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"2505:3:97","nodeType":"YulIdentifier","src":"2505:3:97"},"nativeSrc":"2505:55:97","nodeType":"YulFunctionCall","src":"2505:55:97"}],"functionName":{"name":"mstore","nativeSrc":"2487:6:97","nodeType":"YulIdentifier","src":"2487:6:97"},"nativeSrc":"2487:74:97","nodeType":"YulFunctionCall","src":"2487:74:97"},"nativeSrc":"2487:74:97","nodeType":"YulExpressionStatement","src":"2487:74:97"}]},"name":"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$13903__to_t_address__fromStack_reversed","nativeSrc":"2308:259:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2411:9:97","nodeType":"YulTypedName","src":"2411:9:97","type":""},{"name":"value0","nativeSrc":"2422:6:97","nodeType":"YulTypedName","src":"2422:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2433:4:97","nodeType":"YulTypedName","src":"2433:4:97","type":""}],"src":"2308:259:97"},{"body":{"nativeSrc":"2673:76:97","nodeType":"YulBlock","src":"2673:76:97","statements":[{"nativeSrc":"2683:26:97","nodeType":"YulAssignment","src":"2683:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2695:9:97","nodeType":"YulIdentifier","src":"2695:9:97"},{"kind":"number","nativeSrc":"2706:2:97","nodeType":"YulLiteral","src":"2706:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2691:3:97","nodeType":"YulIdentifier","src":"2691:3:97"},"nativeSrc":"2691:18:97","nodeType":"YulFunctionCall","src":"2691:18:97"},"variableNames":[{"name":"tail","nativeSrc":"2683:4:97","nodeType":"YulIdentifier","src":"2683:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2725:9:97","nodeType":"YulIdentifier","src":"2725:9:97"},{"name":"value0","nativeSrc":"2736:6:97","nodeType":"YulIdentifier","src":"2736:6:97"}],"functionName":{"name":"mstore","nativeSrc":"2718:6:97","nodeType":"YulIdentifier","src":"2718:6:97"},"nativeSrc":"2718:25:97","nodeType":"YulFunctionCall","src":"2718:25:97"},"nativeSrc":"2718:25:97","nodeType":"YulExpressionStatement","src":"2718:25:97"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"2572:177:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2642:9:97","nodeType":"YulTypedName","src":"2642:9:97","type":""},{"name":"value0","nativeSrc":"2653:6:97","nodeType":"YulTypedName","src":"2653:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2664:4:97","nodeType":"YulTypedName","src":"2664:4:97","type":""}],"src":"2572:177:97"},{"body":{"nativeSrc":"2885:125:97","nodeType":"YulBlock","src":"2885:125:97","statements":[{"nativeSrc":"2895:26:97","nodeType":"YulAssignment","src":"2895:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2907:9:97","nodeType":"YulIdentifier","src":"2907:9:97"},{"kind":"number","nativeSrc":"2918:2:97","nodeType":"YulLiteral","src":"2918:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2903:3:97","nodeType":"YulIdentifier","src":"2903:3:97"},"nativeSrc":"2903:18:97","nodeType":"YulFunctionCall","src":"2903:18:97"},"variableNames":[{"name":"tail","nativeSrc":"2895:4:97","nodeType":"YulIdentifier","src":"2895:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2937:9:97","nodeType":"YulIdentifier","src":"2937:9:97"},{"arguments":[{"name":"value0","nativeSrc":"2952:6:97","nodeType":"YulIdentifier","src":"2952:6:97"},{"kind":"number","nativeSrc":"2960:42:97","nodeType":"YulLiteral","src":"2960:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"2948:3:97","nodeType":"YulIdentifier","src":"2948:3:97"},"nativeSrc":"2948:55:97","nodeType":"YulFunctionCall","src":"2948:55:97"}],"functionName":{"name":"mstore","nativeSrc":"2930:6:97","nodeType":"YulIdentifier","src":"2930:6:97"},"nativeSrc":"2930:74:97","nodeType":"YulFunctionCall","src":"2930:74:97"},"nativeSrc":"2930:74:97","nodeType":"YulExpressionStatement","src":"2930:74:97"}]},"name":"abi_encode_tuple_t_contract$_ICorePoolComptroller_$20347__to_t_address__fromStack_reversed","nativeSrc":"2754:256:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2854:9:97","nodeType":"YulTypedName","src":"2854:9:97","type":""},{"name":"value0","nativeSrc":"2865:6:97","nodeType":"YulTypedName","src":"2865:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2876:4:97","nodeType":"YulTypedName","src":"2876:4:97","type":""}],"src":"2754:256:97"},{"body":{"nativeSrc":"3109:486:97","nodeType":"YulBlock","src":"3109:486:97","statements":[{"nativeSrc":"3119:51:97","nodeType":"YulVariableDeclaration","src":"3119:51:97","value":{"arguments":[{"name":"ptr_to_tail","nativeSrc":"3158:11:97","nodeType":"YulIdentifier","src":"3158:11:97"}],"functionName":{"name":"calldataload","nativeSrc":"3145:12:97","nodeType":"YulIdentifier","src":"3145:12:97"},"nativeSrc":"3145:25:97","nodeType":"YulFunctionCall","src":"3145:25:97"},"variables":[{"name":"rel_offset_of_tail","nativeSrc":"3123:18:97","nodeType":"YulTypedName","src":"3123:18:97","type":""}]},{"body":{"nativeSrc":"3318:16:97","nodeType":"YulBlock","src":"3318:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3327:1:97","nodeType":"YulLiteral","src":"3327:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"3330:1:97","nodeType":"YulLiteral","src":"3330:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3320:6:97","nodeType":"YulIdentifier","src":"3320:6:97"},"nativeSrc":"3320:12:97","nodeType":"YulFunctionCall","src":"3320:12:97"},"nativeSrc":"3320:12:97","nodeType":"YulExpressionStatement","src":"3320:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nativeSrc":"3193:18:97","nodeType":"YulIdentifier","src":"3193:18:97"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"3221:12:97","nodeType":"YulIdentifier","src":"3221:12:97"},"nativeSrc":"3221:14:97","nodeType":"YulFunctionCall","src":"3221:14:97"},{"name":"base_ref","nativeSrc":"3237:8:97","nodeType":"YulIdentifier","src":"3237:8:97"}],"functionName":{"name":"sub","nativeSrc":"3217:3:97","nodeType":"YulIdentifier","src":"3217:3:97"},"nativeSrc":"3217:29:97","nodeType":"YulFunctionCall","src":"3217:29:97"},{"kind":"number","nativeSrc":"3248:66:97","nodeType":"YulLiteral","src":"3248:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1"}],"functionName":{"name":"add","nativeSrc":"3213:3:97","nodeType":"YulIdentifier","src":"3213:3:97"},"nativeSrc":"3213:102:97","nodeType":"YulFunctionCall","src":"3213:102:97"}],"functionName":{"name":"slt","nativeSrc":"3189:3:97","nodeType":"YulIdentifier","src":"3189:3:97"},"nativeSrc":"3189:127:97","nodeType":"YulFunctionCall","src":"3189:127:97"}],"functionName":{"name":"iszero","nativeSrc":"3182:6:97","nodeType":"YulIdentifier","src":"3182:6:97"},"nativeSrc":"3182:135:97","nodeType":"YulFunctionCall","src":"3182:135:97"},"nativeSrc":"3179:155:97","nodeType":"YulIf","src":"3179:155:97"},{"nativeSrc":"3343:47:97","nodeType":"YulVariableDeclaration","src":"3343:47:97","value":{"arguments":[{"name":"base_ref","nativeSrc":"3361:8:97","nodeType":"YulIdentifier","src":"3361:8:97"},{"name":"rel_offset_of_tail","nativeSrc":"3371:18:97","nodeType":"YulIdentifier","src":"3371:18:97"}],"functionName":{"name":"add","nativeSrc":"3357:3:97","nodeType":"YulIdentifier","src":"3357:3:97"},"nativeSrc":"3357:33:97","nodeType":"YulFunctionCall","src":"3357:33:97"},"variables":[{"name":"addr_1","nativeSrc":"3347:6:97","nodeType":"YulTypedName","src":"3347:6:97","type":""}]},{"nativeSrc":"3399:30:97","nodeType":"YulAssignment","src":"3399:30:97","value":{"arguments":[{"name":"addr_1","nativeSrc":"3422:6:97","nodeType":"YulIdentifier","src":"3422:6:97"}],"functionName":{"name":"calldataload","nativeSrc":"3409:12:97","nodeType":"YulIdentifier","src":"3409:12:97"},"nativeSrc":"3409:20:97","nodeType":"YulFunctionCall","src":"3409:20:97"},"variableNames":[{"name":"length","nativeSrc":"3399:6:97","nodeType":"YulIdentifier","src":"3399:6:97"}]},{"body":{"nativeSrc":"3472:16:97","nodeType":"YulBlock","src":"3472:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3481:1:97","nodeType":"YulLiteral","src":"3481:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"3484:1:97","nodeType":"YulLiteral","src":"3484:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3474:6:97","nodeType":"YulIdentifier","src":"3474:6:97"},"nativeSrc":"3474:12:97","nodeType":"YulFunctionCall","src":"3474:12:97"},"nativeSrc":"3474:12:97","nodeType":"YulExpressionStatement","src":"3474:12:97"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"3444:6:97","nodeType":"YulIdentifier","src":"3444:6:97"},{"kind":"number","nativeSrc":"3452:18:97","nodeType":"YulLiteral","src":"3452:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3441:2:97","nodeType":"YulIdentifier","src":"3441:2:97"},"nativeSrc":"3441:30:97","nodeType":"YulFunctionCall","src":"3441:30:97"},"nativeSrc":"3438:50:97","nodeType":"YulIf","src":"3438:50:97"},{"nativeSrc":"3497:25:97","nodeType":"YulAssignment","src":"3497:25:97","value":{"arguments":[{"name":"addr_1","nativeSrc":"3509:6:97","nodeType":"YulIdentifier","src":"3509:6:97"},{"kind":"number","nativeSrc":"3517:4:97","nodeType":"YulLiteral","src":"3517:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3505:3:97","nodeType":"YulIdentifier","src":"3505:3:97"},"nativeSrc":"3505:17:97","nodeType":"YulFunctionCall","src":"3505:17:97"},"variableNames":[{"name":"addr","nativeSrc":"3497:4:97","nodeType":"YulIdentifier","src":"3497:4:97"}]},{"body":{"nativeSrc":"3573:16:97","nodeType":"YulBlock","src":"3573:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3582:1:97","nodeType":"YulLiteral","src":"3582:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"3585:1:97","nodeType":"YulLiteral","src":"3585:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3575:6:97","nodeType":"YulIdentifier","src":"3575:6:97"},"nativeSrc":"3575:12:97","nodeType":"YulFunctionCall","src":"3575:12:97"},"nativeSrc":"3575:12:97","nodeType":"YulExpressionStatement","src":"3575:12:97"}]},"condition":{"arguments":[{"name":"addr","nativeSrc":"3538:4:97","nodeType":"YulIdentifier","src":"3538:4:97"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"3548:12:97","nodeType":"YulIdentifier","src":"3548:12:97"},"nativeSrc":"3548:14:97","nodeType":"YulFunctionCall","src":"3548:14:97"},{"name":"length","nativeSrc":"3564:6:97","nodeType":"YulIdentifier","src":"3564:6:97"}],"functionName":{"name":"sub","nativeSrc":"3544:3:97","nodeType":"YulIdentifier","src":"3544:3:97"},"nativeSrc":"3544:27:97","nodeType":"YulFunctionCall","src":"3544:27:97"}],"functionName":{"name":"sgt","nativeSrc":"3534:3:97","nodeType":"YulIdentifier","src":"3534:3:97"},"nativeSrc":"3534:38:97","nodeType":"YulFunctionCall","src":"3534:38:97"},"nativeSrc":"3531:58:97","nodeType":"YulIf","src":"3531:58:97"}]},"name":"access_calldata_tail_t_bytes_calldata_ptr","nativeSrc":"3015:580:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nativeSrc":"3066:8:97","nodeType":"YulTypedName","src":"3066:8:97","type":""},{"name":"ptr_to_tail","nativeSrc":"3076:11:97","nodeType":"YulTypedName","src":"3076:11:97","type":""}],"returnVariables":[{"name":"addr","nativeSrc":"3092:4:97","nodeType":"YulTypedName","src":"3092:4:97","type":""},{"name":"length","nativeSrc":"3098:6:97","nodeType":"YulTypedName","src":"3098:6:97","type":""}],"src":"3015:580:97"},{"body":{"nativeSrc":"3681:170:97","nodeType":"YulBlock","src":"3681:170:97","statements":[{"body":{"nativeSrc":"3727:16:97","nodeType":"YulBlock","src":"3727:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3736:1:97","nodeType":"YulLiteral","src":"3736:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"3739:1:97","nodeType":"YulLiteral","src":"3739:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3729:6:97","nodeType":"YulIdentifier","src":"3729:6:97"},"nativeSrc":"3729:12:97","nodeType":"YulFunctionCall","src":"3729:12:97"},"nativeSrc":"3729:12:97","nodeType":"YulExpressionStatement","src":"3729:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3702:7:97","nodeType":"YulIdentifier","src":"3702:7:97"},{"name":"headStart","nativeSrc":"3711:9:97","nodeType":"YulIdentifier","src":"3711:9:97"}],"functionName":{"name":"sub","nativeSrc":"3698:3:97","nodeType":"YulIdentifier","src":"3698:3:97"},"nativeSrc":"3698:23:97","nodeType":"YulFunctionCall","src":"3698:23:97"},{"kind":"number","nativeSrc":"3723:2:97","nodeType":"YulLiteral","src":"3723:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3694:3:97","nodeType":"YulIdentifier","src":"3694:3:97"},"nativeSrc":"3694:32:97","nodeType":"YulFunctionCall","src":"3694:32:97"},"nativeSrc":"3691:52:97","nodeType":"YulIf","src":"3691:52:97"},{"nativeSrc":"3752:29:97","nodeType":"YulVariableDeclaration","src":"3752:29:97","value":{"arguments":[{"name":"headStart","nativeSrc":"3771:9:97","nodeType":"YulIdentifier","src":"3771:9:97"}],"functionName":{"name":"mload","nativeSrc":"3765:5:97","nodeType":"YulIdentifier","src":"3765:5:97"},"nativeSrc":"3765:16:97","nodeType":"YulFunctionCall","src":"3765:16:97"},"variables":[{"name":"value","nativeSrc":"3756:5:97","nodeType":"YulTypedName","src":"3756:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3815:5:97","nodeType":"YulIdentifier","src":"3815:5:97"}],"functionName":{"name":"validator_revert_address","nativeSrc":"3790:24:97","nodeType":"YulIdentifier","src":"3790:24:97"},"nativeSrc":"3790:31:97","nodeType":"YulFunctionCall","src":"3790:31:97"},"nativeSrc":"3790:31:97","nodeType":"YulExpressionStatement","src":"3790:31:97"},{"nativeSrc":"3830:15:97","nodeType":"YulAssignment","src":"3830:15:97","value":{"name":"value","nativeSrc":"3840:5:97","nodeType":"YulIdentifier","src":"3840:5:97"},"variableNames":[{"name":"value0","nativeSrc":"3830:6:97","nodeType":"YulIdentifier","src":"3830:6:97"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nativeSrc":"3600:251:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3647:9:97","nodeType":"YulTypedName","src":"3647:9:97","type":""},{"name":"dataEnd","nativeSrc":"3658:7:97","nodeType":"YulTypedName","src":"3658:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3670:6:97","nodeType":"YulTypedName","src":"3670:6:97","type":""}],"src":"3600:251:97"},{"body":{"nativeSrc":"4030:231:97","nodeType":"YulBlock","src":"4030:231:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4047:9:97","nodeType":"YulIdentifier","src":"4047:9:97"},{"kind":"number","nativeSrc":"4058:2:97","nodeType":"YulLiteral","src":"4058:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"4040:6:97","nodeType":"YulIdentifier","src":"4040:6:97"},"nativeSrc":"4040:21:97","nodeType":"YulFunctionCall","src":"4040:21:97"},"nativeSrc":"4040:21:97","nodeType":"YulExpressionStatement","src":"4040:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4081:9:97","nodeType":"YulIdentifier","src":"4081:9:97"},{"kind":"number","nativeSrc":"4092:2:97","nodeType":"YulLiteral","src":"4092:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4077:3:97","nodeType":"YulIdentifier","src":"4077:3:97"},"nativeSrc":"4077:18:97","nodeType":"YulFunctionCall","src":"4077:18:97"},{"kind":"number","nativeSrc":"4097:2:97","nodeType":"YulLiteral","src":"4097:2:97","type":"","value":"41"}],"functionName":{"name":"mstore","nativeSrc":"4070:6:97","nodeType":"YulIdentifier","src":"4070:6:97"},"nativeSrc":"4070:30:97","nodeType":"YulFunctionCall","src":"4070:30:97"},"nativeSrc":"4070:30:97","nodeType":"YulExpressionStatement","src":"4070:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4120:9:97","nodeType":"YulIdentifier","src":"4120:9:97"},{"kind":"number","nativeSrc":"4131:2:97","nodeType":"YulLiteral","src":"4131:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4116:3:97","nodeType":"YulIdentifier","src":"4116:3:97"},"nativeSrc":"4116:18:97","nodeType":"YulFunctionCall","src":"4116:18:97"},{"hexValue":"4f776e61626c6532537465703a2063616c6c6572206973206e6f742074686520","kind":"string","nativeSrc":"4136:34:97","nodeType":"YulLiteral","src":"4136:34:97","type":"","value":"Ownable2Step: caller is not the "}],"functionName":{"name":"mstore","nativeSrc":"4109:6:97","nodeType":"YulIdentifier","src":"4109:6:97"},"nativeSrc":"4109:62:97","nodeType":"YulFunctionCall","src":"4109:62:97"},"nativeSrc":"4109:62:97","nodeType":"YulExpressionStatement","src":"4109:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4191:9:97","nodeType":"YulIdentifier","src":"4191:9:97"},{"kind":"number","nativeSrc":"4202:2:97","nodeType":"YulLiteral","src":"4202:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4187:3:97","nodeType":"YulIdentifier","src":"4187:3:97"},"nativeSrc":"4187:18:97","nodeType":"YulFunctionCall","src":"4187:18:97"},{"hexValue":"6e6577206f776e6572","kind":"string","nativeSrc":"4207:11:97","nodeType":"YulLiteral","src":"4207:11:97","type":"","value":"new owner"}],"functionName":{"name":"mstore","nativeSrc":"4180:6:97","nodeType":"YulIdentifier","src":"4180:6:97"},"nativeSrc":"4180:39:97","nodeType":"YulFunctionCall","src":"4180:39:97"},"nativeSrc":"4180:39:97","nodeType":"YulExpressionStatement","src":"4180:39:97"},{"nativeSrc":"4228:27:97","nodeType":"YulAssignment","src":"4228:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"4240:9:97","nodeType":"YulIdentifier","src":"4240:9:97"},{"kind":"number","nativeSrc":"4251:3:97","nodeType":"YulLiteral","src":"4251:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"4236:3:97","nodeType":"YulIdentifier","src":"4236:3:97"},"nativeSrc":"4236:19:97","nodeType":"YulFunctionCall","src":"4236:19:97"},"variableNames":[{"name":"tail","nativeSrc":"4228:4:97","nodeType":"YulIdentifier","src":"4228:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3856:405:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4007:9:97","nodeType":"YulTypedName","src":"4007:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4021:4:97","nodeType":"YulTypedName","src":"4021:4:97","type":""}],"src":"3856:405:97"},{"body":{"nativeSrc":"4440:236:97","nodeType":"YulBlock","src":"4440:236:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4457:9:97","nodeType":"YulIdentifier","src":"4457:9:97"},{"kind":"number","nativeSrc":"4468:2:97","nodeType":"YulLiteral","src":"4468:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"4450:6:97","nodeType":"YulIdentifier","src":"4450:6:97"},"nativeSrc":"4450:21:97","nodeType":"YulFunctionCall","src":"4450:21:97"},"nativeSrc":"4450:21:97","nodeType":"YulExpressionStatement","src":"4450:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4491:9:97","nodeType":"YulIdentifier","src":"4491:9:97"},{"kind":"number","nativeSrc":"4502:2:97","nodeType":"YulLiteral","src":"4502:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4487:3:97","nodeType":"YulIdentifier","src":"4487:3:97"},"nativeSrc":"4487:18:97","nodeType":"YulFunctionCall","src":"4487:18:97"},{"kind":"number","nativeSrc":"4507:2:97","nodeType":"YulLiteral","src":"4507:2:97","type":"","value":"46"}],"functionName":{"name":"mstore","nativeSrc":"4480:6:97","nodeType":"YulIdentifier","src":"4480:6:97"},"nativeSrc":"4480:30:97","nodeType":"YulFunctionCall","src":"4480:30:97"},"nativeSrc":"4480:30:97","nodeType":"YulExpressionStatement","src":"4480:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4530:9:97","nodeType":"YulIdentifier","src":"4530:9:97"},{"kind":"number","nativeSrc":"4541:2:97","nodeType":"YulLiteral","src":"4541:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4526:3:97","nodeType":"YulIdentifier","src":"4526:3:97"},"nativeSrc":"4526:18:97","nodeType":"YulFunctionCall","src":"4526:18:97"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561","kind":"string","nativeSrc":"4546:34:97","nodeType":"YulLiteral","src":"4546:34:97","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nativeSrc":"4519:6:97","nodeType":"YulIdentifier","src":"4519:6:97"},"nativeSrc":"4519:62:97","nodeType":"YulFunctionCall","src":"4519:62:97"},"nativeSrc":"4519:62:97","nodeType":"YulExpressionStatement","src":"4519:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4601:9:97","nodeType":"YulIdentifier","src":"4601:9:97"},{"kind":"number","nativeSrc":"4612:2:97","nodeType":"YulLiteral","src":"4612:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4597:3:97","nodeType":"YulIdentifier","src":"4597:3:97"},"nativeSrc":"4597:18:97","nodeType":"YulFunctionCall","src":"4597:18:97"},{"hexValue":"647920696e697469616c697a6564","kind":"string","nativeSrc":"4617:16:97","nodeType":"YulLiteral","src":"4617:16:97","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nativeSrc":"4590:6:97","nodeType":"YulIdentifier","src":"4590:6:97"},"nativeSrc":"4590:44:97","nodeType":"YulFunctionCall","src":"4590:44:97"},"nativeSrc":"4590:44:97","nodeType":"YulExpressionStatement","src":"4590:44:97"},{"nativeSrc":"4643:27:97","nodeType":"YulAssignment","src":"4643:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"4655:9:97","nodeType":"YulIdentifier","src":"4655:9:97"},{"kind":"number","nativeSrc":"4666:3:97","nodeType":"YulLiteral","src":"4666:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"4651:3:97","nodeType":"YulIdentifier","src":"4651:3:97"},"nativeSrc":"4651:19:97","nodeType":"YulFunctionCall","src":"4651:19:97"},"variableNames":[{"name":"tail","nativeSrc":"4643:4:97","nodeType":"YulIdentifier","src":"4643:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"4266:410:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4417:9:97","nodeType":"YulTypedName","src":"4417:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4431:4:97","nodeType":"YulTypedName","src":"4431:4:97","type":""}],"src":"4266:410:97"},{"body":{"nativeSrc":"4788:87:97","nodeType":"YulBlock","src":"4788:87:97","statements":[{"nativeSrc":"4798:26:97","nodeType":"YulAssignment","src":"4798:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"4810:9:97","nodeType":"YulIdentifier","src":"4810:9:97"},{"kind":"number","nativeSrc":"4821:2:97","nodeType":"YulLiteral","src":"4821:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4806:3:97","nodeType":"YulIdentifier","src":"4806:3:97"},"nativeSrc":"4806:18:97","nodeType":"YulFunctionCall","src":"4806:18:97"},"variableNames":[{"name":"tail","nativeSrc":"4798:4:97","nodeType":"YulIdentifier","src":"4798:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4840:9:97","nodeType":"YulIdentifier","src":"4840:9:97"},{"arguments":[{"name":"value0","nativeSrc":"4855:6:97","nodeType":"YulIdentifier","src":"4855:6:97"},{"kind":"number","nativeSrc":"4863:4:97","nodeType":"YulLiteral","src":"4863:4:97","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"4851:3:97","nodeType":"YulIdentifier","src":"4851:3:97"},"nativeSrc":"4851:17:97","nodeType":"YulFunctionCall","src":"4851:17:97"}],"functionName":{"name":"mstore","nativeSrc":"4833:6:97","nodeType":"YulIdentifier","src":"4833:6:97"},"nativeSrc":"4833:36:97","nodeType":"YulFunctionCall","src":"4833:36:97"},"nativeSrc":"4833:36:97","nodeType":"YulExpressionStatement","src":"4833:36:97"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nativeSrc":"4681:194:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4757:9:97","nodeType":"YulTypedName","src":"4757:9:97","type":""},{"name":"value0","nativeSrc":"4768:6:97","nodeType":"YulTypedName","src":"4768:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4779:4:97","nodeType":"YulTypedName","src":"4779:4:97","type":""}],"src":"4681:194:97"},{"body":{"nativeSrc":"5054:182:97","nodeType":"YulBlock","src":"5054:182:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5071:9:97","nodeType":"YulIdentifier","src":"5071:9:97"},{"kind":"number","nativeSrc":"5082:2:97","nodeType":"YulLiteral","src":"5082:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"5064:6:97","nodeType":"YulIdentifier","src":"5064:6:97"},"nativeSrc":"5064:21:97","nodeType":"YulFunctionCall","src":"5064:21:97"},"nativeSrc":"5064:21:97","nodeType":"YulExpressionStatement","src":"5064:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5105:9:97","nodeType":"YulIdentifier","src":"5105:9:97"},{"kind":"number","nativeSrc":"5116:2:97","nodeType":"YulLiteral","src":"5116:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5101:3:97","nodeType":"YulIdentifier","src":"5101:3:97"},"nativeSrc":"5101:18:97","nodeType":"YulFunctionCall","src":"5101:18:97"},{"kind":"number","nativeSrc":"5121:2:97","nodeType":"YulLiteral","src":"5121:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"5094:6:97","nodeType":"YulIdentifier","src":"5094:6:97"},"nativeSrc":"5094:30:97","nodeType":"YulFunctionCall","src":"5094:30:97"},"nativeSrc":"5094:30:97","nodeType":"YulExpressionStatement","src":"5094:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5144:9:97","nodeType":"YulIdentifier","src":"5144:9:97"},{"kind":"number","nativeSrc":"5155:2:97","nodeType":"YulLiteral","src":"5155:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5140:3:97","nodeType":"YulIdentifier","src":"5140:3:97"},"nativeSrc":"5140:18:97","nodeType":"YulFunctionCall","src":"5140:18:97"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nativeSrc":"5160:34:97","nodeType":"YulLiteral","src":"5160:34:97","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nativeSrc":"5133:6:97","nodeType":"YulIdentifier","src":"5133:6:97"},"nativeSrc":"5133:62:97","nodeType":"YulFunctionCall","src":"5133:62:97"},"nativeSrc":"5133:62:97","nodeType":"YulExpressionStatement","src":"5133:62:97"},{"nativeSrc":"5204:26:97","nodeType":"YulAssignment","src":"5204:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"5216:9:97","nodeType":"YulIdentifier","src":"5216:9:97"},{"kind":"number","nativeSrc":"5227:2:97","nodeType":"YulLiteral","src":"5227:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5212:3:97","nodeType":"YulIdentifier","src":"5212:3:97"},"nativeSrc":"5212:18:97","nodeType":"YulFunctionCall","src":"5212:18:97"},"variableNames":[{"name":"tail","nativeSrc":"5204:4:97","nodeType":"YulIdentifier","src":"5204:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"4880:356:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5031:9:97","nodeType":"YulTypedName","src":"5031:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5045:4:97","nodeType":"YulTypedName","src":"5045:4:97","type":""}],"src":"4880:356:97"},{"body":{"nativeSrc":"5415:227:97","nodeType":"YulBlock","src":"5415:227:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5432:9:97","nodeType":"YulIdentifier","src":"5432:9:97"},{"kind":"number","nativeSrc":"5443:2:97","nodeType":"YulLiteral","src":"5443:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"5425:6:97","nodeType":"YulIdentifier","src":"5425:6:97"},"nativeSrc":"5425:21:97","nodeType":"YulFunctionCall","src":"5425:21:97"},"nativeSrc":"5425:21:97","nodeType":"YulExpressionStatement","src":"5425:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5466:9:97","nodeType":"YulIdentifier","src":"5466:9:97"},{"kind":"number","nativeSrc":"5477:2:97","nodeType":"YulLiteral","src":"5477:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5462:3:97","nodeType":"YulIdentifier","src":"5462:3:97"},"nativeSrc":"5462:18:97","nodeType":"YulFunctionCall","src":"5462:18:97"},{"kind":"number","nativeSrc":"5482:2:97","nodeType":"YulLiteral","src":"5482:2:97","type":"","value":"37"}],"functionName":{"name":"mstore","nativeSrc":"5455:6:97","nodeType":"YulIdentifier","src":"5455:6:97"},"nativeSrc":"5455:30:97","nodeType":"YulFunctionCall","src":"5455:30:97"},"nativeSrc":"5455:30:97","nodeType":"YulExpressionStatement","src":"5455:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5505:9:97","nodeType":"YulIdentifier","src":"5505:9:97"},{"kind":"number","nativeSrc":"5516:2:97","nodeType":"YulLiteral","src":"5516:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5501:3:97","nodeType":"YulIdentifier","src":"5501:3:97"},"nativeSrc":"5501:18:97","nodeType":"YulFunctionCall","src":"5501:18:97"},{"hexValue":"696e76616c696420616365737320636f6e74726f6c206d616e61676572206164","kind":"string","nativeSrc":"5521:34:97","nodeType":"YulLiteral","src":"5521:34:97","type":"","value":"invalid acess control manager ad"}],"functionName":{"name":"mstore","nativeSrc":"5494:6:97","nodeType":"YulIdentifier","src":"5494:6:97"},"nativeSrc":"5494:62:97","nodeType":"YulFunctionCall","src":"5494:62:97"},"nativeSrc":"5494:62:97","nodeType":"YulExpressionStatement","src":"5494:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5576:9:97","nodeType":"YulIdentifier","src":"5576:9:97"},{"kind":"number","nativeSrc":"5587:2:97","nodeType":"YulLiteral","src":"5587:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5572:3:97","nodeType":"YulIdentifier","src":"5572:3:97"},"nativeSrc":"5572:18:97","nodeType":"YulFunctionCall","src":"5572:18:97"},{"hexValue":"6472657373","kind":"string","nativeSrc":"5592:7:97","nodeType":"YulLiteral","src":"5592:7:97","type":"","value":"dress"}],"functionName":{"name":"mstore","nativeSrc":"5565:6:97","nodeType":"YulIdentifier","src":"5565:6:97"},"nativeSrc":"5565:35:97","nodeType":"YulFunctionCall","src":"5565:35:97"},"nativeSrc":"5565:35:97","nodeType":"YulExpressionStatement","src":"5565:35:97"},{"nativeSrc":"5609:27:97","nodeType":"YulAssignment","src":"5609:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"5621:9:97","nodeType":"YulIdentifier","src":"5621:9:97"},{"kind":"number","nativeSrc":"5632:3:97","nodeType":"YulLiteral","src":"5632:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"5617:3:97","nodeType":"YulIdentifier","src":"5617:3:97"},"nativeSrc":"5617:19:97","nodeType":"YulFunctionCall","src":"5617:19:97"},"variableNames":[{"name":"tail","nativeSrc":"5609:4:97","nodeType":"YulIdentifier","src":"5609:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5241:401:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5392:9:97","nodeType":"YulTypedName","src":"5392:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5406:4:97","nodeType":"YulTypedName","src":"5406:4:97","type":""}],"src":"5241:401:97"},{"body":{"nativeSrc":"5776:198:97","nodeType":"YulBlock","src":"5776:198:97","statements":[{"nativeSrc":"5786:26:97","nodeType":"YulAssignment","src":"5786:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"5798:9:97","nodeType":"YulIdentifier","src":"5798:9:97"},{"kind":"number","nativeSrc":"5809:2:97","nodeType":"YulLiteral","src":"5809:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5794:3:97","nodeType":"YulIdentifier","src":"5794:3:97"},"nativeSrc":"5794:18:97","nodeType":"YulFunctionCall","src":"5794:18:97"},"variableNames":[{"name":"tail","nativeSrc":"5786:4:97","nodeType":"YulIdentifier","src":"5786:4:97"}]},{"nativeSrc":"5821:52:97","nodeType":"YulVariableDeclaration","src":"5821:52:97","value":{"kind":"number","nativeSrc":"5831:42:97","nodeType":"YulLiteral","src":"5831:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"5825:2:97","nodeType":"YulTypedName","src":"5825:2:97","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5889:9:97","nodeType":"YulIdentifier","src":"5889:9:97"},{"arguments":[{"name":"value0","nativeSrc":"5904:6:97","nodeType":"YulIdentifier","src":"5904:6:97"},{"name":"_1","nativeSrc":"5912:2:97","nodeType":"YulIdentifier","src":"5912:2:97"}],"functionName":{"name":"and","nativeSrc":"5900:3:97","nodeType":"YulIdentifier","src":"5900:3:97"},"nativeSrc":"5900:15:97","nodeType":"YulFunctionCall","src":"5900:15:97"}],"functionName":{"name":"mstore","nativeSrc":"5882:6:97","nodeType":"YulIdentifier","src":"5882:6:97"},"nativeSrc":"5882:34:97","nodeType":"YulFunctionCall","src":"5882:34:97"},"nativeSrc":"5882:34:97","nodeType":"YulExpressionStatement","src":"5882:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5936:9:97","nodeType":"YulIdentifier","src":"5936:9:97"},{"kind":"number","nativeSrc":"5947:2:97","nodeType":"YulLiteral","src":"5947:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5932:3:97","nodeType":"YulIdentifier","src":"5932:3:97"},"nativeSrc":"5932:18:97","nodeType":"YulFunctionCall","src":"5932:18:97"},{"arguments":[{"name":"value1","nativeSrc":"5956:6:97","nodeType":"YulIdentifier","src":"5956:6:97"},{"name":"_1","nativeSrc":"5964:2:97","nodeType":"YulIdentifier","src":"5964:2:97"}],"functionName":{"name":"and","nativeSrc":"5952:3:97","nodeType":"YulIdentifier","src":"5952:3:97"},"nativeSrc":"5952:15:97","nodeType":"YulFunctionCall","src":"5952:15:97"}],"functionName":{"name":"mstore","nativeSrc":"5925:6:97","nodeType":"YulIdentifier","src":"5925:6:97"},"nativeSrc":"5925:43:97","nodeType":"YulFunctionCall","src":"5925:43:97"},"nativeSrc":"5925:43:97","nodeType":"YulExpressionStatement","src":"5925:43:97"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"5647:327:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5737:9:97","nodeType":"YulTypedName","src":"5737:9:97","type":""},{"name":"value1","nativeSrc":"5748:6:97","nodeType":"YulTypedName","src":"5748:6:97","type":""},{"name":"value0","nativeSrc":"5756:6:97","nodeType":"YulTypedName","src":"5756:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5767:4:97","nodeType":"YulTypedName","src":"5767:4:97","type":""}],"src":"5647:327:97"},{"body":{"nativeSrc":"6068:170:97","nodeType":"YulBlock","src":"6068:170:97","statements":[{"body":{"nativeSrc":"6114:16:97","nodeType":"YulBlock","src":"6114:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6123:1:97","nodeType":"YulLiteral","src":"6123:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"6126:1:97","nodeType":"YulLiteral","src":"6126:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6116:6:97","nodeType":"YulIdentifier","src":"6116:6:97"},"nativeSrc":"6116:12:97","nodeType":"YulFunctionCall","src":"6116:12:97"},"nativeSrc":"6116:12:97","nodeType":"YulExpressionStatement","src":"6116:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6089:7:97","nodeType":"YulIdentifier","src":"6089:7:97"},{"name":"headStart","nativeSrc":"6098:9:97","nodeType":"YulIdentifier","src":"6098:9:97"}],"functionName":{"name":"sub","nativeSrc":"6085:3:97","nodeType":"YulIdentifier","src":"6085:3:97"},"nativeSrc":"6085:23:97","nodeType":"YulFunctionCall","src":"6085:23:97"},{"kind":"number","nativeSrc":"6110:2:97","nodeType":"YulLiteral","src":"6110:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6081:3:97","nodeType":"YulIdentifier","src":"6081:3:97"},"nativeSrc":"6081:32:97","nodeType":"YulFunctionCall","src":"6081:32:97"},"nativeSrc":"6078:52:97","nodeType":"YulIf","src":"6078:52:97"},{"nativeSrc":"6139:29:97","nodeType":"YulVariableDeclaration","src":"6139:29:97","value":{"arguments":[{"name":"headStart","nativeSrc":"6158:9:97","nodeType":"YulIdentifier","src":"6158:9:97"}],"functionName":{"name":"mload","nativeSrc":"6152:5:97","nodeType":"YulIdentifier","src":"6152:5:97"},"nativeSrc":"6152:16:97","nodeType":"YulFunctionCall","src":"6152:16:97"},"variables":[{"name":"value","nativeSrc":"6143:5:97","nodeType":"YulTypedName","src":"6143:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6202:5:97","nodeType":"YulIdentifier","src":"6202:5:97"}],"functionName":{"name":"validator_revert_address","nativeSrc":"6177:24:97","nodeType":"YulIdentifier","src":"6177:24:97"},"nativeSrc":"6177:31:97","nodeType":"YulFunctionCall","src":"6177:31:97"},"nativeSrc":"6177:31:97","nodeType":"YulExpressionStatement","src":"6177:31:97"},{"nativeSrc":"6217:15:97","nodeType":"YulAssignment","src":"6217:15:97","value":{"name":"value","nativeSrc":"6227:5:97","nodeType":"YulIdentifier","src":"6227:5:97"},"variableNames":[{"name":"value0","nativeSrc":"6217:6:97","nodeType":"YulIdentifier","src":"6217:6:97"}]}]},"name":"abi_decode_tuple_t_address_payable_fromMemory","nativeSrc":"5979:259:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6034:9:97","nodeType":"YulTypedName","src":"6034:9:97","type":""},{"name":"dataEnd","nativeSrc":"6045:7:97","nodeType":"YulTypedName","src":"6045:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6057:6:97","nodeType":"YulTypedName","src":"6057:6:97","type":""}],"src":"5979:259:97"},{"body":{"nativeSrc":"6373:125:97","nodeType":"YulBlock","src":"6373:125:97","statements":[{"nativeSrc":"6383:26:97","nodeType":"YulAssignment","src":"6383:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"6395:9:97","nodeType":"YulIdentifier","src":"6395:9:97"},{"kind":"number","nativeSrc":"6406:2:97","nodeType":"YulLiteral","src":"6406:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6391:3:97","nodeType":"YulIdentifier","src":"6391:3:97"},"nativeSrc":"6391:18:97","nodeType":"YulFunctionCall","src":"6391:18:97"},"variableNames":[{"name":"tail","nativeSrc":"6383:4:97","nodeType":"YulIdentifier","src":"6383:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6425:9:97","nodeType":"YulIdentifier","src":"6425:9:97"},{"arguments":[{"name":"value0","nativeSrc":"6440:6:97","nodeType":"YulIdentifier","src":"6440:6:97"},{"kind":"number","nativeSrc":"6448:42:97","nodeType":"YulLiteral","src":"6448:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"6436:3:97","nodeType":"YulIdentifier","src":"6436:3:97"},"nativeSrc":"6436:55:97","nodeType":"YulFunctionCall","src":"6436:55:97"}],"functionName":{"name":"mstore","nativeSrc":"6418:6:97","nodeType":"YulIdentifier","src":"6418:6:97"},"nativeSrc":"6418:74:97","nodeType":"YulFunctionCall","src":"6418:74:97"},"nativeSrc":"6418:74:97","nodeType":"YulExpressionStatement","src":"6418:74:97"}]},"name":"abi_encode_tuple_t_contract$_InterestRateModelV8_$10994__to_t_address__fromStack_reversed","nativeSrc":"6243:255:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6342:9:97","nodeType":"YulTypedName","src":"6342:9:97","type":""},{"name":"value0","nativeSrc":"6353:6:97","nodeType":"YulTypedName","src":"6353:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6364:4:97","nodeType":"YulTypedName","src":"6364:4:97","type":""}],"src":"6243:255:97"},{"body":{"nativeSrc":"6584:103:97","nodeType":"YulBlock","src":"6584:103:97","statements":[{"body":{"nativeSrc":"6630:16:97","nodeType":"YulBlock","src":"6630:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6639:1:97","nodeType":"YulLiteral","src":"6639:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"6642:1:97","nodeType":"YulLiteral","src":"6642:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6632:6:97","nodeType":"YulIdentifier","src":"6632:6:97"},"nativeSrc":"6632:12:97","nodeType":"YulFunctionCall","src":"6632:12:97"},"nativeSrc":"6632:12:97","nodeType":"YulExpressionStatement","src":"6632:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6605:7:97","nodeType":"YulIdentifier","src":"6605:7:97"},{"name":"headStart","nativeSrc":"6614:9:97","nodeType":"YulIdentifier","src":"6614:9:97"}],"functionName":{"name":"sub","nativeSrc":"6601:3:97","nodeType":"YulIdentifier","src":"6601:3:97"},"nativeSrc":"6601:23:97","nodeType":"YulFunctionCall","src":"6601:23:97"},{"kind":"number","nativeSrc":"6626:2:97","nodeType":"YulLiteral","src":"6626:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6597:3:97","nodeType":"YulIdentifier","src":"6597:3:97"},"nativeSrc":"6597:32:97","nodeType":"YulFunctionCall","src":"6597:32:97"},"nativeSrc":"6594:52:97","nodeType":"YulIf","src":"6594:52:97"},{"nativeSrc":"6655:26:97","nodeType":"YulAssignment","src":"6655:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"6671:9:97","nodeType":"YulIdentifier","src":"6671:9:97"}],"functionName":{"name":"mload","nativeSrc":"6665:5:97","nodeType":"YulIdentifier","src":"6665:5:97"},"nativeSrc":"6665:16:97","nodeType":"YulFunctionCall","src":"6665:16:97"},"variableNames":[{"name":"value0","nativeSrc":"6655:6:97","nodeType":"YulIdentifier","src":"6655:6:97"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"6503:184:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6550:9:97","nodeType":"YulTypedName","src":"6550:9:97","type":""},{"name":"dataEnd","nativeSrc":"6561:7:97","nodeType":"YulTypedName","src":"6561:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6573:6:97","nodeType":"YulTypedName","src":"6573:6:97","type":""}],"src":"6503:184:97"},{"body":{"nativeSrc":"6820:125:97","nodeType":"YulBlock","src":"6820:125:97","statements":[{"nativeSrc":"6830:26:97","nodeType":"YulAssignment","src":"6830:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"6842:9:97","nodeType":"YulIdentifier","src":"6842:9:97"},{"kind":"number","nativeSrc":"6853:2:97","nodeType":"YulLiteral","src":"6853:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6838:3:97","nodeType":"YulIdentifier","src":"6838:3:97"},"nativeSrc":"6838:18:97","nodeType":"YulFunctionCall","src":"6838:18:97"},"variableNames":[{"name":"tail","nativeSrc":"6830:4:97","nodeType":"YulIdentifier","src":"6830:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6872:9:97","nodeType":"YulIdentifier","src":"6872:9:97"},{"arguments":[{"name":"value0","nativeSrc":"6887:6:97","nodeType":"YulIdentifier","src":"6887:6:97"},{"kind":"number","nativeSrc":"6895:42:97","nodeType":"YulLiteral","src":"6895:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"6883:3:97","nodeType":"YulIdentifier","src":"6883:3:97"},"nativeSrc":"6883:55:97","nodeType":"YulFunctionCall","src":"6883:55:97"}],"functionName":{"name":"mstore","nativeSrc":"6865:6:97","nodeType":"YulIdentifier","src":"6865:6:97"},"nativeSrc":"6865:74:97","nodeType":"YulFunctionCall","src":"6865:74:97"},"nativeSrc":"6865:74:97","nodeType":"YulExpressionStatement","src":"6865:74:97"}]},"name":"abi_encode_tuple_t_contract$_InterestRateModel_$10919__to_t_address__fromStack_reversed","nativeSrc":"6692:253:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6789:9:97","nodeType":"YulTypedName","src":"6789:9:97","type":""},{"name":"value0","nativeSrc":"6800:6:97","nodeType":"YulTypedName","src":"6800:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6811:4:97","nodeType":"YulTypedName","src":"6811:4:97","type":""}],"src":"6692:253:97"},{"body":{"nativeSrc":"7124:233:97","nodeType":"YulBlock","src":"7124:233:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7141:9:97","nodeType":"YulIdentifier","src":"7141:9:97"},{"kind":"number","nativeSrc":"7152:2:97","nodeType":"YulLiteral","src":"7152:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"7134:6:97","nodeType":"YulIdentifier","src":"7134:6:97"},"nativeSrc":"7134:21:97","nodeType":"YulFunctionCall","src":"7134:21:97"},"nativeSrc":"7134:21:97","nodeType":"YulExpressionStatement","src":"7134:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7175:9:97","nodeType":"YulIdentifier","src":"7175:9:97"},{"kind":"number","nativeSrc":"7186:2:97","nodeType":"YulLiteral","src":"7186:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7171:3:97","nodeType":"YulIdentifier","src":"7171:3:97"},"nativeSrc":"7171:18:97","nodeType":"YulFunctionCall","src":"7171:18:97"},{"kind":"number","nativeSrc":"7191:2:97","nodeType":"YulLiteral","src":"7191:2:97","type":"","value":"43"}],"functionName":{"name":"mstore","nativeSrc":"7164:6:97","nodeType":"YulIdentifier","src":"7164:6:97"},"nativeSrc":"7164:30:97","nodeType":"YulFunctionCall","src":"7164:30:97"},"nativeSrc":"7164:30:97","nodeType":"YulExpressionStatement","src":"7164:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7214:9:97","nodeType":"YulIdentifier","src":"7214:9:97"},{"kind":"number","nativeSrc":"7225:2:97","nodeType":"YulLiteral","src":"7225:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7210:3:97","nodeType":"YulIdentifier","src":"7210:3:97"},"nativeSrc":"7210:18:97","nodeType":"YulFunctionCall","src":"7210:18:97"},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069","kind":"string","nativeSrc":"7230:34:97","nodeType":"YulLiteral","src":"7230:34:97","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nativeSrc":"7203:6:97","nodeType":"YulIdentifier","src":"7203:6:97"},"nativeSrc":"7203:62:97","nodeType":"YulFunctionCall","src":"7203:62:97"},"nativeSrc":"7203:62:97","nodeType":"YulExpressionStatement","src":"7203:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7285:9:97","nodeType":"YulIdentifier","src":"7285:9:97"},{"kind":"number","nativeSrc":"7296:2:97","nodeType":"YulLiteral","src":"7296:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"7281:3:97","nodeType":"YulIdentifier","src":"7281:3:97"},"nativeSrc":"7281:18:97","nodeType":"YulFunctionCall","src":"7281:18:97"},{"hexValue":"6e697469616c697a696e67","kind":"string","nativeSrc":"7301:13:97","nodeType":"YulLiteral","src":"7301:13:97","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nativeSrc":"7274:6:97","nodeType":"YulIdentifier","src":"7274:6:97"},"nativeSrc":"7274:41:97","nodeType":"YulFunctionCall","src":"7274:41:97"},"nativeSrc":"7274:41:97","nodeType":"YulExpressionStatement","src":"7274:41:97"},{"nativeSrc":"7324:27:97","nodeType":"YulAssignment","src":"7324:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"7336:9:97","nodeType":"YulIdentifier","src":"7336:9:97"},{"kind":"number","nativeSrc":"7347:3:97","nodeType":"YulLiteral","src":"7347:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"7332:3:97","nodeType":"YulIdentifier","src":"7332:3:97"},"nativeSrc":"7332:19:97","nodeType":"YulFunctionCall","src":"7332:19:97"},"variableNames":[{"name":"tail","nativeSrc":"7324:4:97","nodeType":"YulIdentifier","src":"7324:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6950:407:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7101:9:97","nodeType":"YulTypedName","src":"7101:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7115:4:97","nodeType":"YulTypedName","src":"7115:4:97","type":""}],"src":"6950:407:97"}]},"contents":"{\n    { }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        let _1 := 32\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        let i := 0\n        for { } lt(i, length) { i := add(i, _1) }\n        {\n            mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n        }\n        mstore(add(add(headStart, length), 64), 0)\n        tail := add(add(headStart, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 64)\n    }\n    function abi_decode_tuple_t_struct$_RiskParameterUpdate_$16568_calldata_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if slt(sub(dataEnd, _1), 384) { revert(0, 0) }\n        value0 := _1\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_contract$_IRiskStewardReceiver_$17139__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_contract$_IAccessControlManagerV8_$13903__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_contract$_ICorePoolComptroller_$20347__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function access_calldata_tail_t_bytes_calldata_ptr(base_ref, ptr_to_tail) -> addr, length\n    {\n        let rel_offset_of_tail := calldataload(ptr_to_tail)\n        if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1))) { revert(0, 0) }\n        let addr_1 := add(base_ref, rel_offset_of_tail)\n        length := calldataload(addr_1)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        addr := add(addr_1, 0x20)\n        if sgt(addr, sub(calldatasize(), length)) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 41)\n        mstore(add(headStart, 64), \"Ownable2Step: caller is not the \")\n        mstore(add(headStart, 96), \"new owner\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 46)\n        mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n        mstore(add(headStart, 96), \"dy initialized\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"invalid acess control manager ad\")\n        mstore(add(headStart, 96), \"dress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n    }\n    function abi_decode_tuple_t_address_payable_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_contract$_InterestRateModelV8_$10994__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function abi_encode_tuple_t_contract$_InterestRateModel_$10919__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 43)\n        mstore(add(headStart, 64), \"Initializable: contract is not i\")\n        mstore(add(headStart, 96), \"nitializing\")\n        tail := add(headStart, 128)\n    }\n}","id":97,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"16045":[{"length":32,"start":743},{"length":32,"start":3062}],"16049":[{"length":32,"start":578},{"length":32,"start":1521}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100f55760003560e01c8063b296e6cb11610097578063e30c397811610066578063e30c3978146102a8578063ee97f265146102c6578063f2fde38b146102cf578063fa7b81a0146102e257600080fd5b8063b296e6cb1461023d578063b4a0bdf314610264578063bf63783914610282578063c4d66de81461029557600080fd5b8063715018a6116100d3578063715018a61461018457806379ba50971461018c5780638da5cb5b14610194578063a052e9b3146101d357600080fd5b80630e32cb86146100fa5780633c781b1f1461010f57806342b7cfbd14610161575b600080fd5b61010d61010836600461111a565b610309565b005b61014b6040518060400160405280601181526020017f696e746572657374526174654d6f64656c00000000000000000000000000000081525081565b604051610158919061113e565b60405180910390f35b61017461016f3660046111ab565b61031d565b6040519015158152602001610158565b61010d6104f0565b61010d610522565b60335473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610158565b60408051808201909152601181527f696e746572657374526174654d6f64656c00000000000000000000000000000060209091015261022f7ff75408e574901a1e186e15f549424e67ef3d922f87ae58b527ea22f51cf7ef2581565b604051908152602001610158565b6101ae7f000000000000000000000000000000000000000000000000000000000000000081565b60975473ffffffffffffffffffffffffffffffffffffffff166101ae565b61010d6102903660046111ab565b6105d9565b61010d6102a336600461111a565b610710565b60655473ffffffffffffffffffffffffffffffffffffffff166101ae565b61022f60c95481565b61010d6102dd36600461111a565b6108a4565b6101ae7f000000000000000000000000000000000000000000000000000000000000000081565b610311610954565b61031a816109d7565b50565b60408051808201909152601181527f696e746572657374526174654d6f64656c000000000000000000000000000000602090910152600060808201357ff75408e574901a1e186e15f549424e67ef3d922f87ae58b527ea22f51cf7ef25146103b1576040517f80919d7b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006103fd6103c360a08501856111e7565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610af992505050565b90506000610411606085016040860161111a565b73ffffffffffffffffffffffffffffffffffffffff1663f3fdb15a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561045b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047f9190611253565b90508073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036104e6576040517f925cd79500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060009392505050565b6040517f96c553eb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606554339073ffffffffffffffffffffffffffffffffffffffff1681146105d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e6572000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61031a81610b50565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610648576040517f3a739dd700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408051808201909152601181527f696e746572657374526174654d6f64656c0000000000000000000000000000006020909101527f08abf71a8b6fe5e1e791ea0ab6bdb19810c26dd07851a74ad815dd0ae30810db6080820135016106de5760006106ba6103c360a08401846111e7565b90506106da60208301356106d4606085016040860161111a565b83610b81565b5050565b6040517f80919d7b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600054610100900460ff16158080156107305750600054600160ff909116105b8061074a5750303b15801561074a575060005460ff166001145b6107d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016105c7565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561083457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61083d82610e03565b80156106da57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15050565b6108ac610954565b6065805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915561090f60335473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60335473ffffffffffffffffffffffffffffffffffffffff1633146109d5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105c7565b565b73ffffffffffffffffffffffffffffffffffffffff8116610a7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e6167657220616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016105c7565b6097805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa09101610898565b60008151602014610b36576040517fcc2cec0200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81806020019051810190610b4a9190611253565b92915050565b606580547fffffffffffffffffffffffff000000000000000000000000000000000000000016905561031a81610eab565b60008273ffffffffffffffffffffffffffffffffffffffff16635fe3b5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf29190611253565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d20576040517ff2b3abbd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301526000919085169063f2b3abbd906024016020604051808303816000875af1158015610cb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdd9190611270565b90508015610d1a576040517f4bb4ca74000000000000000000000000000000000000000000000000000000008152600481018290526024016105c7565b50610da2565b6040517f8bcd401600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152841690638bcd401690602401600060405180830381600087803b158015610d8957600080fd5b505af1158015610d9d573d6000803e3d6000fd5b505050505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16857fa8e9cd499759e0d6670a4fb6813dccb496a67475ff4c67d231e79e23bb816b4f60405160405180910390a450505050565b600054610100900460ff16610e9a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105c7565b610ea2610f22565b61031a81610fc1565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16610fb9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105c7565b6109d5611058565b600054610100900460ff16610311576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105c7565b600054610100900460ff166110ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105c7565b6109d533610b50565b73ffffffffffffffffffffffffffffffffffffffff8116811461031a57600080fd5b60006020828403121561112c57600080fd5b8135611137816110f8565b9392505050565b60006020808352835180602085015260005b8181101561116c57858101830151858201604001528201611150565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b6000602082840312156111bd57600080fd5b813567ffffffffffffffff8111156111d457600080fd5b8201610180818503121561113757600080fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261121c57600080fd5b83018035915067ffffffffffffffff82111561123757600080fd5b60200191503681900382131561124c57600080fd5b9250929050565b60006020828403121561126557600080fd5b8151611137816110f8565b60006020828403121561128257600080fd5b505191905056fea2646970667358221220ffafab2b05c4082cc0eab20286eea72770cd146ce1ad14000b0adc55a789f6cf64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xF5 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xB296E6CB GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xE30C3978 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x2A8 JUMPI DUP1 PUSH4 0xEE97F265 EQ PUSH2 0x2C6 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x2CF JUMPI DUP1 PUSH4 0xFA7B81A0 EQ PUSH2 0x2E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB296E6CB EQ PUSH2 0x23D JUMPI DUP1 PUSH4 0xB4A0BDF3 EQ PUSH2 0x264 JUMPI DUP1 PUSH4 0xBF637839 EQ PUSH2 0x282 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x295 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x715018A6 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x184 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x18C JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x194 JUMPI DUP1 PUSH4 0xA052E9B3 EQ PUSH2 0x1D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xE32CB86 EQ PUSH2 0xFA JUMPI DUP1 PUSH4 0x3C781B1F EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x42B7CFBD EQ PUSH2 0x161 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10D PUSH2 0x108 CALLDATASIZE PUSH1 0x4 PUSH2 0x111A JUMP JUMPDEST PUSH2 0x309 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x14B PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x11 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x696E746572657374526174654D6F64656C000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x158 SWAP2 SWAP1 PUSH2 0x113E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x174 PUSH2 0x16F CALLDATASIZE PUSH1 0x4 PUSH2 0x11AB JUMP JUMPDEST PUSH2 0x31D JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x158 JUMP JUMPDEST PUSH2 0x10D PUSH2 0x4F0 JUMP JUMPDEST PUSH2 0x10D PUSH2 0x522 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x158 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x11 DUP2 MSTORE PUSH32 0x696E746572657374526174654D6F64656C000000000000000000000000000000 PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE PUSH2 0x22F PUSH32 0xF75408E574901A1E186E15F549424E67EF3D922F87AE58B527EA22F51CF7EF25 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x158 JUMP JUMPDEST PUSH2 0x1AE PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1AE JUMP JUMPDEST PUSH2 0x10D PUSH2 0x290 CALLDATASIZE PUSH1 0x4 PUSH2 0x11AB JUMP JUMPDEST PUSH2 0x5D9 JUMP JUMPDEST PUSH2 0x10D PUSH2 0x2A3 CALLDATASIZE PUSH1 0x4 PUSH2 0x111A JUMP JUMPDEST PUSH2 0x710 JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1AE JUMP JUMPDEST PUSH2 0x22F PUSH1 0xC9 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x10D PUSH2 0x2DD CALLDATASIZE PUSH1 0x4 PUSH2 0x111A JUMP JUMPDEST PUSH2 0x8A4 JUMP JUMPDEST PUSH2 0x1AE PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x311 PUSH2 0x954 JUMP JUMPDEST PUSH2 0x31A DUP2 PUSH2 0x9D7 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x11 DUP2 MSTORE PUSH32 0x696E746572657374526174654D6F64656C000000000000000000000000000000 PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE PUSH1 0x0 PUSH1 0x80 DUP3 ADD CALLDATALOAD PUSH32 0xF75408E574901A1E186E15F549424E67EF3D922F87AE58B527EA22F51CF7EF25 EQ PUSH2 0x3B1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x80919D7B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3FD PUSH2 0x3C3 PUSH1 0xA0 DUP6 ADD DUP6 PUSH2 0x11E7 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0xAF9 SWAP3 POP POP POP JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x411 PUSH1 0x60 DUP6 ADD PUSH1 0x40 DUP7 ADD PUSH2 0x111A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF3FDB15A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x45B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x47F SWAP2 SWAP1 PUSH2 0x1253 JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x4E6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x925CD79500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH1 0x0 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x96C553EB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x65 SLOAD CALLER SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 EQ PUSH2 0x5D0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C6532537465703A2063616C6C6572206973206E6F742074686520 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E6577206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x31A DUP2 PUSH2 0xB50 JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 AND EQ PUSH2 0x648 JUMPI PUSH1 0x40 MLOAD PUSH32 0x3A739DD700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x11 DUP2 MSTORE PUSH32 0x696E746572657374526174654D6F64656C000000000000000000000000000000 PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE PUSH32 0x8ABF71A8B6FE5E1E791EA0AB6BDB19810C26DD07851A74AD815DD0AE30810DB PUSH1 0x80 DUP3 ADD CALLDATALOAD ADD PUSH2 0x6DE JUMPI PUSH1 0x0 PUSH2 0x6BA PUSH2 0x3C3 PUSH1 0xA0 DUP5 ADD DUP5 PUSH2 0x11E7 JUMP JUMPDEST SWAP1 POP PUSH2 0x6DA PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x6D4 PUSH1 0x60 DUP6 ADD PUSH1 0x40 DUP7 ADD PUSH2 0x111A JUMP JUMPDEST DUP4 PUSH2 0xB81 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x80919D7B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x730 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x74A JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x74A JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x7D6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x647920696E697469616C697A6564000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5C7 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x834 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0x83D DUP3 PUSH2 0xE03 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x6DA JUMPI PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH2 0x8AC PUSH2 0x954 JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP1 SWAP2 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0x90F PUSH1 0x33 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x9D5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5C7 JUMP JUMPDEST JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0xA7A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C696420616365737320636F6E74726F6C206D616E61676572206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5C7 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 SWAP1 SWAP3 AND DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH32 0x66FD58E82F7B31A2A5C30E0888F3093EFE4E111B00CD2B0C31FE014601293AA0 SWAP2 ADD PUSH2 0x898 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD PUSH1 0x20 EQ PUSH2 0xB36 JUMPI PUSH1 0x40 MLOAD PUSH32 0xCC2CEC0200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xB4A SWAP2 SWAP1 PUSH2 0x1253 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND SWAP1 SSTORE PUSH2 0x31A DUP2 PUSH2 0xEAB JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x5FE3B567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xBCE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBF2 SWAP2 SWAP1 PUSH2 0x1253 JUMP JUMPDEST SWAP1 POP PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xD20 JUMPI PUSH1 0x40 MLOAD PUSH32 0xF2B3ABBD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP6 AND SWAP1 PUSH4 0xF2B3ABBD SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCB9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCDD SWAP2 SWAP1 PUSH2 0x1270 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0xD1A JUMPI PUSH1 0x40 MLOAD PUSH32 0x4BB4CA7400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x5C7 JUMP JUMPDEST POP PUSH2 0xDA2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8BCD401600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP5 AND SWAP1 PUSH4 0x8BCD4016 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD89 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD9D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH32 0xA8E9CD499759E0D6670A4FB6813DCCB496A67475FF4C67D231E79E23BB816B4F PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0xE9A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5C7 JUMP JUMPDEST PUSH2 0xEA2 PUSH2 0xF22 JUMP JUMPDEST PUSH2 0x31A DUP2 PUSH2 0xFC1 JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0xFB9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5C7 JUMP JUMPDEST PUSH2 0x9D5 PUSH2 0x1058 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x311 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5C7 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x10EF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5C7 JUMP JUMPDEST PUSH2 0x9D5 CALLER PUSH2 0xB50 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x31A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x112C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1137 DUP2 PUSH2 0x10F8 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 PUSH1 0x20 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x116C JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x1150 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x40 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x40 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x11BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x11D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH2 0x180 DUP2 DUP6 SUB SLT ISZERO PUSH2 0x1137 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x121C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1237 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x124C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1265 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1137 DUP2 PUSH2 0x10F8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1282 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SELFDESTRUCT 0xAF 0xAB 0x2B SDIV 0xC4 ADDMOD 0x2C 0xC0 0xEA 0xB2 MUL DUP7 0xEE 0xA7 0x27 PUSH17 0xCD146CE1AD14000B0ADC55A789F6CF6473 PUSH16 0x6C634300081900330000000000000000 ","sourceMap":"1058:6955:63:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2103:147:57;;;;;;:::i;:::-;;:::i;:::-;;1178:64:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;5793:596;;;;;;:::i;:::-;;:::i;:::-;;;1607:14:97;;1600:22;1582:41;;1570:2;1555:18;5793:596:63;1442:187:97;1218:103:60;;;:::i;2010:206:25:-;;;:::i;1441:85:26:-;1513:6;;;;1441:85;;;1810:42:97;1798:55;;;1780:74;;1768:2;1753:18;1441:85:26;1634:226:97;1364:87:63;1430:19;;;;;;;;;;;;;;;;;;1364:87;1414:37;1364:87;;;;;2011:25:97;;;1999:2;1984:18;1364:87:63;1865:177:97;1962:59:63;;;;;2346:125:57;2443:21;;;;2346:125;;4822:461:63;;;;;;:::i;:::-;;:::i;4111:135::-;;;;;;:::i;:::-;;:::i;1123:99:25:-;1202:13;;;;1123:99;;947:27:60;;;;;;1415:178:25;;;;;;:::i;:::-;;:::i;1796:59:63:-;;;;;2103:147:57;1334:13:26;:11;:13::i;:::-;2196:47:57::1;2221:21;2196:24;:47::i;:::-;2103:147:::0;:::o;5793:596:63:-;1430:19;;;;;;;;;;;;;;;;;;5887:4;5907:20;;;;1414:37;5907:47;5903:108;;5977:23;;;;;;;;;;;;;;5903:108;6021:14;6038:41;6063:15;;;;:6;:15;:::i;:::-;6038:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6038:24:63;;-1:-1:-1;;;6038:41:63:i;:::-;6021:58;-1:-1:-1;6089:18:63;6134:13;;;;;;;;:::i;:::-;6118:48;;;:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6089:80;;6233:10;6223:20;;:6;:20;;;6219:74;;6266:16;;;;;;;;;;;;;;6219:74;-1:-1:-1;6377:5:63;;5793:596;-1:-1:-1;;;5793:596:63:o;1218:103:60:-;1285:29;;;;;;;;;;;;;;2010:206:25;1202:13;;929:10:29;;2103:24:25;1202:13;2103:24;;2095:78;;;;;;;4058:2:97;2095:78:25;;;4040:21:97;4097:2;4077:18;;;4070:30;4136:34;4116:18;;;4109:62;4207:11;4187:18;;;4180:39;4236:19;;2095:78:25;;;;;;;;;2183:26;2202:6;2183:18;:26::i;4822:461:63:-;4903:10;:44;4925:21;4903:44;;4899:107;;4970:25;;;;;;;;;;;;;;4899:107;1430:19;;;;;;;;;;;;;;;;;;5020:47;:20;;;;:47;5016:261;;5083:14;5100:41;5125:15;;;;:6;:15;:::i;5100:41::-;5083:58;-1:-1:-1;5155:50:63;5166:15;;;;5183:13;;;;;;;;:::i;:::-;5198:6;5155:10;:50::i;:::-;5069:147;2103::57;:::o;5016:261:63:-;5243:23;;;;;;;;;;;;;;4111:135;3268:19:27;3291:13;;;;;;3290:14;;3336:34;;;;-1:-1:-1;3354:12:27;;3369:1;3354:12;;;;:16;3336:34;3335:108;;;-1:-1:-1;3415:4:27;1476:19:28;:23;;;3376:66:27;;-1:-1:-1;3425:12:27;;;;;:17;3376:66;3314:201;;;;;;;4468:2:97;3314:201:27;;;4450:21:97;4507:2;4487:18;;;4480:30;4546:34;4526:18;;;4519:62;4617:16;4597:18;;;4590:44;4651:19;;3314:201:27;4266:410:97;3314:201:27;3525:12;:16;;;;3540:1;3525:16;;;3551:65;;;;3585:13;:20;;;;;;;;3551:65;4193:46:63::1;4217:21;4193:23;:46::i;:::-;3640:14:27::0;3636:99;;;3686:5;3670:21;;;;;;3710:14;;-1:-1:-1;4833:36:97;;3710:14:27;;4821:2:97;4806:18;3710:14:27;;;;;;;;3258:483;4111:135:63;:::o;1415:178:25:-;1334:13:26;:11;:13::i;:::-;1504::25::1;:24:::0;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;1568:7:::1;1513:6:26::0;;;;;1441:85;1568:7:25::1;1543:43;;;;;;;;;;;;1415:178:::0;:::o;1599:130:26:-;1513:6;;1662:23;1513:6;929:10:29;1662:23:26;1654:68;;;;;;;5082:2:97;1654:68:26;;;5064:21:97;;;5101:18;;;5094:30;5160:34;5140:18;;;5133:62;5212:18;;1654:68:26;4880:356:97;1654:68:26;1599:130::o;2642:425:57:-;2734:44;;;2726:94;;;;;;;5443:2:97;2726:94:57;;;5425:21:97;5482:2;5462:18;;;5455:30;5521:34;5501:18;;;5494:62;5592:7;5572:18;;;5565:35;5617:19;;2726:94:57;5241:401:97;2726:94:57;2872:21;;;;2904:70;;;;;;;;;;;2989:71;;;2872:21;;;;5882:34:97;;;5947:2;5932:18;;5925:43;;;;2989:71:57;;5794:18:97;2989:71:57;5647:327:97;7813:198:63;7889:7;7912:4;:11;7927:2;7912:17;7908:52;;7938:22;;;;;;;;;;;;;;7908:52;7988:4;7977:27;;;;;;;;;;;;:::i;:::-;7970:34;7813:198;-1:-1:-1;;7813:198:63:o;1777:153:25:-;1866:13;1859:20;;;;;;1889:34;1914:8;1889:24;:34::i;6902:585:63:-;6991:19;7029:6;7013:35;;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6991:59;;7088:21;7065:45;;:11;:45;;;7061:354;;7146:74;;;;;:45;1798:55:97;;;7146:74:63;;;1780::97;7126:17:63;;7146:45;;;;;;1753:18:97;;7146:74:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7126:94;-1:-1:-1;7238:14:63;;7234:64;;7261:37;;;;;;;;2011:25:97;;;1984:18;;7261:37:63;1865:177:97;7234:64:63;7112:197;7061:354;;;7329:75;;;;;:48;1798:55:97;;;7329:75:63;;;1780:74:97;7329:48:63;;;;;1753:18:97;;7329:75:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7061:354;7473:6;7430:50;;7465:6;7430:50;;7455:8;7430:50;;;;;;;;;;6981:506;6902:585;;;:::o;1420:194:57:-;5363:13:27;;;;;;;5355:69;;;;;;;7152:2:97;5355:69:27;;;7134:21:97;7191:2;7171:18;;;7164:30;7230:34;7210:18;;;7203:62;7301:13;7281:18;;;7274:41;7332:19;;5355:69:27;6950:407:97;5355:69:27;1520:21:57::1;:19;:21::i;:::-;1551:56;1585:21;1551:33;:56::i;2673:187:26:-:0;2765:6;;;;2781:17;;;;;;;;;;;2813:40;;2765:6;;;2781:17;2765:6;;2813:40;;2746:16;;2813:40;2736:124;2673:187;:::o;738:100:25:-;5363:13:27;;;;;;;5355:69;;;;;;;7152:2:97;5355:69:27;;;7134:21:97;7191:2;7171:18;;;7164:30;7230:34;7210:18;;;7203:62;7301:13;7281:18;;;7274:41;7332:19;;5355:69:27;6950:407:97;5355:69:27;805:26:25::1;:24;:26::i;1620:164:57:-:0;5363:13:27;;;;;;;5355:69;;;;;;;7152:2:97;5355:69:27;;;7134:21:97;7191:2;7171:18;;;7164:30;7230:34;7210:18;;;7203:62;7301:13;7281:18;;;7274:41;7332:19;;5355:69:27;6950:407:97;1104:111:26;5363:13:27;;;;;;;5355:69;;;;;;;7152:2:97;5355:69:27;;;7134:21:97;7191:2;7171:18;;;7164:30;7230:34;7210:18;;;7203:62;7301:13;7281:18;;;7274:41;7332:19;;5355:69:27;6950:407:97;5355:69:27;1176:32:26::1;929:10:29::0;1176:18:26::1;:32::i;14:154:97:-:0;100:42;93:5;89:54;82:5;79:65;69:93;;158:1;155;148:12;173:247;232:6;285:2;273:9;264:7;260:23;256:32;253:52;;;301:1;298;291:12;253:52;340:9;327:23;359:31;384:5;359:31;:::i;:::-;409:5;173:247;-1:-1:-1;;;173:247:97:o;425:607::-;537:4;566:2;595;584:9;577:21;627:6;621:13;670:6;665:2;654:9;650:18;643:34;695:1;705:140;719:6;716:1;713:13;705:140;;;814:14;;;810:23;;804:30;780:17;;;799:2;776:26;769:66;734:10;;705:140;;;709:3;894:1;889:2;880:6;869:9;865:22;861:31;854:42;1023:2;953:66;948:2;940:6;936:15;932:88;921:9;917:104;913:113;905:121;;;;425:607;;;;:::o;1037:400::-;1136:6;1189:2;1177:9;1168:7;1164:23;1160:32;1157:52;;;1205:1;1202;1195:12;1157:52;1245:9;1232:23;1278:18;1270:6;1267:30;1264:50;;;1310:1;1307;1300:12;1264:50;1333:22;;1389:3;1371:16;;;1367:26;1364:46;;;1406:1;1403;1396:12;3015:580;3092:4;3098:6;3158:11;3145:25;3248:66;3237:8;3221:14;3217:29;3213:102;3193:18;3189:127;3179:155;;3330:1;3327;3320:12;3179:155;3357:33;;3409:20;;;-1:-1:-1;3452:18:97;3441:30;;3438:50;;;3484:1;3481;3474:12;3438:50;3517:4;3505:17;;-1:-1:-1;3548:14:97;3544:27;;;3534:38;;3531:58;;;3585:1;3582;3575:12;3531:58;3015:580;;;;;:::o;3600:251::-;3670:6;3723:2;3711:9;3702:7;3698:23;3694:32;3691:52;;;3739:1;3736;3729:12;3691:52;3771:9;3765:16;3790:31;3815:5;3790:31;:::i;6503:184::-;6573:6;6626:2;6614:9;6605:7;6601:23;6597:32;6594:52;;;6642:1;6639;6632:12;6594:52;-1:-1:-1;6665:16:97;;6503:184;-1:-1:-1;6503:184:97:o"},"gasEstimates":{"creation":{"codeDepositCost":"959800","executionCost":"infinite","totalCost":"infinite"},"external":{"CORE_POOL_COMPTROLLER()":"infinite","INTEREST_RATE_MODEL()":"infinite","INTEREST_RATE_MODEL_KEY()":"344","RISK_STEWARD_RECEIVER()":"infinite","acceptOwnership()":"infinite","accessControlManager()":"2352","applyUpdate((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))":"infinite","initialize(address)":"infinite","isSafeForDirectExecution((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))":"infinite","owner()":"2363","pendingOwner()":"2329","renounceOwnership()":"203","safeDeltaBps()":"2339","setAccessControlManager(address)":"infinite","transferOwnership(address)":"30400"},"internal":{"_decodeAbiEncodedAddress(bytes memory)":"infinite","_updateIRM(uint256,address,address)":"infinite"}},"methodIdentifiers":{"CORE_POOL_COMPTROLLER()":"fa7b81a0","INTEREST_RATE_MODEL()":"3c781b1f","INTEREST_RATE_MODEL_KEY()":"a052e9b3","RISK_STEWARD_RECEIVER()":"b296e6cb","acceptOwnership()":"79ba5097","accessControlManager()":"b4a0bdf3","applyUpdate((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))":"bf637839","initialize(address)":"c4d66de8","isSafeForDirectExecution((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))":"42b7cfbd","owner()":"8da5cb5b","pendingOwner()":"e30c3978","renounceOwnership()":"715018a6","safeDeltaBps()":"ee97f265","setAccessControlManager(address)":"0e32cb86","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"corePoolComptroller_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"riskStewardReceiver_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidAddressLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyRiskStewardReceiver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RedundantValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RenounceOwnershipNotAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"errorCode\",\"type\":\"uint256\"}],\"name\":\"SetInterestRateModelFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"calledContract\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"methodSignature\",\"type\":\"string\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsupportedUpdateType\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newInterestRateModel\",\"type\":\"address\"}],\"name\":\"InterestRateModelUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldAccessControlManager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAccessControlManager\",\"type\":\"address\"}],\"name\":\"NewAccessControlManager\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"CORE_POOL_COMPTROLLER\",\"outputs\":[{\"internalType\":\"contract ICorePoolComptroller\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"INTEREST_RATE_MODEL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"INTEREST_RATE_MODEL_KEY\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RISK_STEWARD_RECEIVER\",\"outputs\":[{\"internalType\":\"contract IRiskStewardReceiver\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"accessControlManager\",\"outputs\":[{\"internalType\":\"contract IAccessControlManagerV8\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"referenceId\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"updateTypeKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"newValue\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"previousValue\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"poolId\",\"type\":\"uint96\"},{\"internalType\":\"uint32\",\"name\":\"destLzEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"additionalData\",\"type\":\"bytes\"}],\"internalType\":\"struct RiskParameterUpdate\",\"name\":\"update\",\"type\":\"tuple\"}],\"name\":\"applyUpdate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessControlManager_\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"referenceId\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"updateTypeKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"newValue\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"previousValue\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"poolId\",\"type\":\"uint96\"},{\"internalType\":\"uint32\",\"name\":\"destLzEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"additionalData\",\"type\":\"bytes\"}],\"internalType\":\"struct RiskParameterUpdate\",\"name\":\"update\",\"type\":\"tuple\"}],\"name\":\"isSafeForDirectExecution\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"safeDeltaBps\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessControlManager_\",\"type\":\"address\"}],\"name\":\"setAccessControlManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"custom:security-contact\":\"https://github.com/VenusProtocol/governance-contracts#discussion\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"applyUpdate((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))\":{\"custom:access\":\"Only callable by the RiskStewardReceiver\",\"custom:error\":\"Throws OnlyRiskStewardReceiver if the sender is not the RiskStewardReceiverThrows UnsupportedUpdateType if the update type is not supported\",\"custom:event\":\"Emits InterestRateModelUpdated with the updateId, market and new IRM address\",\"params\":{\"update\":\"RiskParameterUpdate update to apply\"}},\"constructor\":{\"custom:error\":\"Throws ZeroAddressNotAllowed if any of the addresses are zero\",\"custom:oz-upgrades-unsafe-allow\":\"constructor\",\"params\":{\"corePoolComptroller_\":\"The address of the Core Pool Comptroller\",\"riskStewardReceiver_\":\"The address of the RiskStewardReceiver\"}},\"initialize(address)\":{\"params\":{\"accessControlManager_\":\"The address of the access control manager\"}},\"isSafeForDirectExecution((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))\":{\"custom:error\":\"Throws UnsupportedUpdateType if the update type is not supportedThrows RedundantValue if the new IRM address is equal to the current IRM address\",\"details\":\"For IRM updates, always returns false as we cannot compare IRM values\",\"params\":{\"update\":\"The update to check\"},\"returns\":{\"_0\":\"True if update is safe for direct execution, false if timelock is required\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"renounceOwnership()\":{\"custom:error\":\"Throws RenounceOwnershipNotAllowed\"},\"setAccessControlManager(address)\":{\"custom:access\":\"Only Governance\",\"custom:event\":\"Emits NewAccessControlManager event\",\"details\":\"Admin function to set address of AccessControlManager\",\"params\":{\"accessControlManager_\":\"The new address of the AccessControlManager\"}},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.\"}},\"stateVariables\":{\"CORE_POOL_COMPTROLLER\":{\"details\":\"This comptroller is specific to the BNB Core Pool, which uses a different ABI      than isolated pools. It is used solely to detect and handle BNB Core Pool      markets, and would not be used for remote-chain (isolated pool) deployments.\"},\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"title\":\"IRMRiskSteward\",\"version\":1},\"userdoc\":{\"errors\":{\"InvalidAddressLength()\":[{\"notice\":\"Thrown when the address length is invalid\"}],\"OnlyRiskStewardReceiver()\":[{\"notice\":\"Thrown when the update is not coming from the RiskStewardReceiver\"}],\"RedundantValue()\":[{\"notice\":\"Thrown when attempting to apply a redundant IRM value (no-op change).\"}],\"RenounceOwnershipNotAllowed()\":[{\"notice\":\"Thrown when trying to renounce ownership\"}],\"SetInterestRateModelFailed(uint256)\":[{\"notice\":\"Thrown when Core Pool VToken._setInterestRateModel fails.\"}],\"Unauthorized(address,address,string)\":[{\"notice\":\"Thrown when the action is prohibited by AccessControlManager\"}],\"UnsupportedUpdateType()\":[{\"notice\":\"Thrown when an update type that is not supported is operated on\"}],\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}]},\"events\":{\"InterestRateModelUpdated(uint256,address,address)\":{\"notice\":\"Emitted when an interest rate model is updated\"},\"NewAccessControlManager(address,address)\":{\"notice\":\"Emitted when access control manager contract address is changed\"}},\"kind\":\"user\",\"methods\":{\"CORE_POOL_COMPTROLLER()\":{\"notice\":\"Address of the BNB Core Pool Comptroller.\"},\"INTEREST_RATE_MODEL()\":{\"notice\":\"The update type for interest rate model\"},\"INTEREST_RATE_MODEL_KEY()\":{\"notice\":\"The update type key for interest rate model (keccak256 hash of INTEREST_RATE_MODEL)\"},\"RISK_STEWARD_RECEIVER()\":{\"notice\":\"Address of the RiskStewardReceiver used to validate incoming updates\"},\"accessControlManager()\":{\"notice\":\"Returns the address of the access control manager contract\"},\"applyUpdate((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))\":{\"notice\":\"Applies an interest rate model update from the RiskStewardReceiver. Directly updates the market interest rate model on the vToken.\"},\"constructor\":{\"notice\":\"Sets the immutable CORE_POOL_COMPTROLLER and RISK_STEWARD_RECEIVER addresses and disables initializers\"},\"initialize(address)\":{\"notice\":\"Initializes the contract as ownable and access controlled.\"},\"isSafeForDirectExecution((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))\":{\"notice\":\"Checks if an update is safe for direct execution (no timelock required)\"},\"renounceOwnership()\":{\"notice\":\"Disables renounceOwnership function\"},\"safeDeltaBps()\":{\"notice\":\"The safe delta threshold in basis points.Updates within this delta are considered safe and require no timelock. Updates exceeding this delta require timelock.\"},\"setAccessControlManager(address)\":{\"notice\":\"Sets the address of AccessControlManager\"}},\"notice\":\"Contract that can update interest rate models updates received from RiskStewardReceiver.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/RiskSteward/IRMRiskSteward.sol\":\"IRMRiskSteward\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (access/Ownable2Step.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./OwnableUpgradeable.sol\\\";\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership} and {acceptOwnership}.\\n *\\n * This module is used through inheritance. It will make available all functions\\n * from parent (Ownable).\\n */\\nabstract contract Ownable2StepUpgradeable is Initializable, OwnableUpgradeable {\\n    function __Ownable2Step_init() internal onlyInitializing {\\n        __Ownable_init_unchained();\\n    }\\n\\n    function __Ownable2Step_init_unchained() internal onlyInitializing {\\n    }\\n    address private _pendingOwner;\\n\\n    event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Returns the address of the pending owner.\\n     */\\n    function pendingOwner() public view virtual returns (address) {\\n        return _pendingOwner;\\n    }\\n\\n    /**\\n     * @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual override onlyOwner {\\n        _pendingOwner = newOwner;\\n        emit OwnershipTransferStarted(owner(), newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual override {\\n        delete _pendingOwner;\\n        super._transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev The new owner accepts the ownership transfer.\\n     */\\n    function acceptOwnership() external {\\n        address sender = _msgSender();\\n        require(pendingOwner() == sender, \\\"Ownable2Step: caller is not the new owner\\\");\\n        _transferOwnership(sender);\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0xd712fb45b3ea0ab49679164e3895037adc26ce12879d5184feb040e01c1c07a9\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/ContextUpgradeable.sol\\\";\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract OwnableUpgradeable is Initializable, ContextUpgradeable {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    function __Ownable_init() internal onlyInitializing {\\n        __Ownable_init_unchained();\\n    }\\n\\n    function __Ownable_init_unchained() internal onlyInitializing {\\n        _transferOwnership(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        _checkOwner();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if the sender is not the owner.\\n     */\\n    function _checkOwner() internal view virtual {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions anymore. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby removing any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.1) (proxy/utils/Initializable.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../../utils/AddressUpgradeable.sol\\\";\\n\\n/**\\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\\n *\\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\\n * reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in\\n * case an upgrade adds a module that needs to be initialized.\\n *\\n * For example:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * contract MyToken is ERC20Upgradeable {\\n *     function initialize() initializer public {\\n *         __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\");\\n *     }\\n * }\\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\\n *     function initializeV2() reinitializer(2) public {\\n *         __ERC20Permit_init(\\\"MyToken\\\");\\n *     }\\n * }\\n * ```\\n *\\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\\n *\\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\\n *\\n * [CAUTION]\\n * ====\\n * Avoid leaving a contract uninitialized.\\n *\\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * /// @custom:oz-upgrades-unsafe-allow constructor\\n * constructor() {\\n *     _disableInitializers();\\n * }\\n * ```\\n * ====\\n */\\nabstract contract Initializable {\\n    /**\\n     * @dev Indicates that the contract has been initialized.\\n     * @custom:oz-retyped-from bool\\n     */\\n    uint8 private _initialized;\\n\\n    /**\\n     * @dev Indicates that the contract is in the process of being initialized.\\n     */\\n    bool private _initializing;\\n\\n    /**\\n     * @dev Triggered when the contract has been initialized or reinitialized.\\n     */\\n    event Initialized(uint8 version);\\n\\n    /**\\n     * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\\n     * `onlyInitializing` functions can be used to initialize parent contracts.\\n     *\\n     * Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\\n     * constructor.\\n     *\\n     * Emits an {Initialized} event.\\n     */\\n    modifier initializer() {\\n        bool isTopLevelCall = !_initializing;\\n        require(\\n            (isTopLevelCall && _initialized < 1) || (!AddressUpgradeable.isContract(address(this)) && _initialized == 1),\\n            \\\"Initializable: contract is already initialized\\\"\\n        );\\n        _initialized = 1;\\n        if (isTopLevelCall) {\\n            _initializing = true;\\n        }\\n        _;\\n        if (isTopLevelCall) {\\n            _initializing = false;\\n            emit Initialized(1);\\n        }\\n    }\\n\\n    /**\\n     * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\\n     * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\\n     * used to initialize parent contracts.\\n     *\\n     * A reinitializer may be used after the original initialization step. This is essential to configure modules that\\n     * are added through upgrades and that require initialization.\\n     *\\n     * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\\n     * cannot be nested. If one is invoked in the context of another, execution will revert.\\n     *\\n     * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\\n     * a contract, executing them in the right order is up to the developer or operator.\\n     *\\n     * WARNING: setting the version to 255 will prevent any future reinitialization.\\n     *\\n     * Emits an {Initialized} event.\\n     */\\n    modifier reinitializer(uint8 version) {\\n        require(!_initializing && _initialized < version, \\\"Initializable: contract is already initialized\\\");\\n        _initialized = version;\\n        _initializing = true;\\n        _;\\n        _initializing = false;\\n        emit Initialized(version);\\n    }\\n\\n    /**\\n     * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\\n     * {initializer} and {reinitializer} modifiers, directly or indirectly.\\n     */\\n    modifier onlyInitializing() {\\n        require(_initializing, \\\"Initializable: contract is not initializing\\\");\\n        _;\\n    }\\n\\n    /**\\n     * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\\n     * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\\n     * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\\n     * through proxies.\\n     *\\n     * Emits an {Initialized} event the first time it is successfully executed.\\n     */\\n    function _disableInitializers() internal virtual {\\n        require(!_initializing, \\\"Initializable: contract is initializing\\\");\\n        if (_initialized < type(uint8).max) {\\n            _initialized = type(uint8).max;\\n            emit Initialized(type(uint8).max);\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns the highest version that has been initialized. See {reinitializer}.\\n     */\\n    function _getInitializedVersion() internal view returns (uint8) {\\n        return _initialized;\\n    }\\n\\n    /**\\n     * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.\\n     */\\n    function _isInitializing() internal view returns (bool) {\\n        return _initializing;\\n    }\\n}\\n\",\"keccak256\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary AddressUpgradeable {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\n     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\n     *\\n     * _Available since v4.8._\\n     */\\n    function verifyCallResultFromTarget(\\n        address target,\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        if (success) {\\n            if (returndata.length == 0) {\\n                // only check isContract if the call was successful and the return data is empty\\n                // otherwise we already know that it was a contract\\n                require(isContract(target), \\\"Address: call to non-contract\\\");\\n            }\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason or using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    function _revert(bytes memory returndata, string memory errorMessage) private pure {\\n        // Look for revert reason and bubble it up if present\\n        if (returndata.length > 0) {\\n            // The easiest way to bubble the revert reason is using memory via assembly\\n            /// @solidity memory-safe-assembly\\n            assembly {\\n                let returndata_size := mload(returndata)\\n                revert(add(32, returndata), returndata_size)\\n            }\\n        } else {\\n            revert(errorMessage);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract ContextUpgradeable is Initializable {\\n    function __Context_init() internal onlyInitializing {\\n    }\\n\\n    function __Context_init_unchained() internal onlyInitializing {\\n    }\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[50] private __gap;\\n}\\n\",\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"@venusprotocol/isolated-pools/contracts/InterestRateModel.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\n/**\\n * @title Compound's InterestRateModel Interface\\n * @author Compound\\n */\\nabstract contract InterestRateModel {\\n    /**\\n     * @notice Calculates the current borrow interest rate per slot (block or second)\\n     * @param cash The total amount of cash the market has\\n     * @param borrows The total amount of borrows the market has outstanding\\n     * @param reserves The total amount of reserves the market has\\n     * @param badDebt The amount of badDebt in the market\\n     * @return The borrow rate percentage per slot (block or second) as a mantissa (scaled by EXP_SCALE)\\n     */\\n    function getBorrowRate(\\n        uint256 cash,\\n        uint256 borrows,\\n        uint256 reserves,\\n        uint256 badDebt\\n    ) external view virtual returns (uint256);\\n\\n    /**\\n     * @notice Calculates the current supply interest rate per slot (block or second)\\n     * @param cash The total amount of cash the market has\\n     * @param borrows The total amount of borrows the market has outstanding\\n     * @param reserves The total amount of reserves the market has\\n     * @param reserveFactorMantissa The current reserve factor the market has\\n     * @param badDebt The amount of badDebt in the market\\n     * @return The supply rate percentage per slot (block or second) as a mantissa (scaled by EXP_SCALE)\\n     */\\n    function getSupplyRate(\\n        uint256 cash,\\n        uint256 borrows,\\n        uint256 reserves,\\n        uint256 reserveFactorMantissa,\\n        uint256 badDebt\\n    ) external view virtual returns (uint256);\\n\\n    /**\\n     * @notice Indicator that this is an InterestRateModel contract (for inspection)\\n     * @return Always true\\n     */\\n    function isInterestRateModel() external pure virtual returns (bool) {\\n        return true;\\n    }\\n}\\n\",\"keccak256\":\"0xc4fda1ab75ebe4b187b707c4f10c58780f343cf343c537f641dc75d3cd28ab51\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/validators.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\n/// @notice Thrown if the supplied address is a zero address where it is not allowed\\nerror ZeroAddressNotAllowed();\\n\\n/// @notice Thrown if the supplied value is 0 where it is not allowed\\nerror ZeroValueNotAllowed();\\n\\n/// @notice Checks if the provided address is nonzero, reverts otherwise\\n/// @param address_ Address to check\\n/// @custom:error ZeroAddressNotAllowed is thrown if the provided address is a zero address\\nfunction ensureNonzeroAddress(address address_) pure {\\n    if (address_ == address(0)) {\\n        revert ZeroAddressNotAllowed();\\n    }\\n}\\n\\n/// @notice Checks if the provided value is nonzero, reverts otherwise\\n/// @param value_ Value to check\\n/// @custom:error ZeroValueNotAllowed is thrown if the provided value is 0\\nfunction ensureNonzeroValue(uint256 value_) pure {\\n    if (value_ == 0) {\\n        revert ZeroValueNotAllowed();\\n    }\\n}\\n\",\"keccak256\":\"0xdb88e14d50dd21889ca3329d755673d022c47e8da005b6a545c7f69c2c4b7b86\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/venus-protocol/contracts/InterestRateModels/InterestRateModelV8.sol\":{\"content\":\"pragma solidity 0.8.25;\\n\\n/**\\n * @title Venus's InterestRateModelV8 Interface\\n * @author Venus\\n */\\nabstract contract InterestRateModelV8 {\\n    /// @notice Indicator that this is an InterestRateModel contract (for inspection)\\n    bool public constant isInterestRateModel = true;\\n\\n    /**\\n     * @notice Calculates the current borrow interest rate per block\\n     * @param cash The total amount of cash the market has\\n     * @param borrows The total amount of borrows the market has outstanding\\n     * @param reserves The total amnount of reserves the market has\\n     * @return The borrow rate per block (as a percentage, and scaled by 1e18)\\n     */\\n    function getBorrowRate(uint256 cash, uint256 borrows, uint256 reserves) external view virtual returns (uint256);\\n\\n    /**\\n     * @notice Calculates the current supply interest rate per block\\n     * @param cash The total amount of cash the market has\\n     * @param borrows The total amount of borrows the market has outstanding\\n     * @param reserves The total amnount of reserves the market has\\n     * @param reserveFactorMantissa The current reserve factor the market has\\n     * @return The supply rate per block (as a percentage, and scaled by 1e18)\\n     */\\n    function getSupplyRate(\\n        uint256 cash,\\n        uint256 borrows,\\n        uint256 reserves,\\n        uint256 reserveFactorMantissa\\n    ) external view virtual returns (uint256);\\n}\\n\",\"keccak256\":\"0x9b71896f66909fb3fe829c413594121f0e165d8508e8a6fa29a6938ddcfbb61f\"},\"contracts/Governance/AccessControlledV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\\\";\\nimport \\\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\\\";\\n\\nimport \\\"./IAccessControlManagerV8.sol\\\";\\n\\n/**\\n * @title AccessControlledV8\\n * @author Venus\\n * @notice This contract is helper between access control manager and actual contract. This contract further inherited by other contract (using solidity 0.8.13)\\n * to integrate access controlled mechanism. It provides initialise methods and verifying access methods.\\n */\\nabstract contract AccessControlledV8 is Initializable, Ownable2StepUpgradeable {\\n    /// @notice Access control manager contract\\n    IAccessControlManagerV8 internal _accessControlManager;\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n\\n    /// @notice Emitted when access control manager contract address is changed\\n    event NewAccessControlManager(address oldAccessControlManager, address newAccessControlManager);\\n\\n    /// @notice Thrown when the action is prohibited by AccessControlManager\\n    error Unauthorized(address sender, address calledContract, string methodSignature);\\n\\n    function __AccessControlled_init(address accessControlManager_) internal onlyInitializing {\\n        __Ownable2Step_init();\\n        __AccessControlled_init_unchained(accessControlManager_);\\n    }\\n\\n    function __AccessControlled_init_unchained(address accessControlManager_) internal onlyInitializing {\\n        _setAccessControlManager(accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Sets the address of AccessControlManager\\n     * @dev Admin function to set address of AccessControlManager\\n     * @param accessControlManager_ The new address of the AccessControlManager\\n     * @custom:event Emits NewAccessControlManager event\\n     * @custom:access Only Governance\\n     */\\n    function setAccessControlManager(address accessControlManager_) external onlyOwner {\\n        _setAccessControlManager(accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Returns the address of the access control manager contract\\n     */\\n    function accessControlManager() external view returns (IAccessControlManagerV8) {\\n        return _accessControlManager;\\n    }\\n\\n    /**\\n     * @dev Internal function to set address of AccessControlManager\\n     * @param accessControlManager_ The new address of the AccessControlManager\\n     */\\n    function _setAccessControlManager(address accessControlManager_) internal {\\n        require(address(accessControlManager_) != address(0), \\\"invalid acess control manager address\\\");\\n        address oldAccessControlManager = address(_accessControlManager);\\n        _accessControlManager = IAccessControlManagerV8(accessControlManager_);\\n        emit NewAccessControlManager(oldAccessControlManager, accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Reverts if the call is not allowed by AccessControlManager\\n     * @param signature Method signature\\n     */\\n    function _checkAccessAllowed(string memory signature) internal view {\\n        bool isAllowedToCall = _accessControlManager.isAllowedToCall(msg.sender, signature);\\n\\n        if (!isAllowedToCall) {\\n            revert Unauthorized(msg.sender, address(this), signature);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xe7f5f96c70fb32912ecc0032f81f7876607353413fe7f723d41d260ac9c26a06\",\"license\":\"BSD-3-Clause\"},\"contracts/Governance/IAccessControlManagerV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/access/IAccessControl.sol\\\";\\n\\n/**\\n * @title IAccessControlManagerV8\\n * @author Venus\\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\\n */\\ninterface IAccessControlManagerV8 is IAccessControl {\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\\n\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) external;\\n\\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\\n\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xaa29b098440d0b3a131c5ecdf25ce548790c1b5ac7bf9b5c0264b6af6f7a1e0b\",\"license\":\"BSD-3-Clause\"},\"contracts/RiskSteward/BaseRiskSteward.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { AccessControlledV8 } from \\\"../Governance/AccessControlledV8.sol\\\";\\nimport { IRiskSteward } from \\\"./Interfaces/IRiskSteward.sol\\\";\\n\\n/**\\n * @title BaseRiskSteward\\n * @author Venus\\n * @notice Abstract base contract for Risk Steward contracts providing common functionality\\n * @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion\\n */\\nabstract contract BaseRiskSteward is IRiskSteward, AccessControlledV8 {\\n    /// @dev Max basis points i.e., 100%\\n    uint256 internal constant MAX_BPS = 10000;\\n\\n    /**\\n     * @notice The safe delta threshold in basis points.\\n     * @notice Updates within this delta are considered safe and require no timelock. Updates exceeding this delta require timelock.\\n     * @dev This is only used by contracts that implement safe delta checks (e.g., MarketCapsRiskSteward, CollateralFactorsRiskSteward)\\n     */\\n    uint256 public safeDeltaBps;\\n\\n    /**\\n     * @notice Thrown when trying to renounce ownership\\n     */\\n    error RenounceOwnershipNotAllowed();\\n\\n    /**\\n     * @notice Disables renounceOwnership function\\n     * @custom:error Throws RenounceOwnershipNotAllowed\\n     */\\n    function renounceOwnership() public pure override {\\n        revert RenounceOwnershipNotAllowed();\\n    }\\n\\n    /**\\n     * @notice Checks if the difference between new and current values is within the safe delta threshold.\\n     * @param newValue The new value to check\\n     * @param currentValue The current value to compare against\\n     * @return True if the difference is within the safe delta, false otherwise\\n     */\\n    function _isWithinSafeDelta(uint256 newValue, uint256 currentValue) internal view returns (bool) {\\n        uint256 diff = newValue > currentValue ? newValue - currentValue : currentValue - newValue;\\n        uint256 maxDiff = (safeDeltaBps * currentValue) / MAX_BPS;\\n        return diff <= maxDiff;\\n    }\\n}\\n\",\"keccak256\":\"0xc479bcfa55626860065c2ac8707b40e3c48d419bd8b23dbb35d1fab79584fcf2\",\"license\":\"BSD-3-Clause\"},\"contracts/RiskSteward/IRMRiskSteward.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { RiskParameterUpdate } from \\\"./Interfaces/IRiskOracle.sol\\\";\\nimport { ICorePoolVToken } from \\\"../interfaces/ICorePoolVToken.sol\\\";\\nimport { IIsolatedPoolVToken } from \\\"../interfaces/IIsolatedPoolVToken.sol\\\";\\nimport { InterestRateModel } from \\\"@venusprotocol/isolated-pools/contracts/InterestRateModel.sol\\\";\\nimport { InterestRateModelV8 } from \\\"@venusprotocol/venus-protocol/contracts/InterestRateModels/InterestRateModelV8.sol\\\";\\nimport { ICorePoolComptroller } from \\\"../interfaces/ICorePoolComptroller.sol\\\";\\nimport { IRiskStewardReceiver } from \\\"./Interfaces/IRiskStewardReceiver.sol\\\";\\nimport { BaseRiskSteward } from \\\"./BaseRiskSteward.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\n\\n/**\\n * @title IRMRiskSteward\\n * @author Venus\\n * @notice Contract that can update interest rate models updates received from RiskStewardReceiver.\\n * @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion\\n */\\ncontract IRMRiskSteward is BaseRiskSteward {\\n    /**\\n     * @notice The update type for interest rate model\\n     */\\n    string public constant INTEREST_RATE_MODEL = \\\"interestRateModel\\\";\\n\\n    /**\\n     * @notice The update type key for interest rate model (keccak256 hash of INTEREST_RATE_MODEL)\\n     */\\n    bytes32 public constant INTEREST_RATE_MODEL_KEY = keccak256(bytes(INTEREST_RATE_MODEL));\\n\\n    /**\\n     * @notice Address of the BNB Core Pool Comptroller.\\n     * @dev This comptroller is specific to the BNB Core Pool, which uses a different ABI\\n     *      than isolated pools. It is used solely to detect and handle BNB Core Pool\\n     *      markets, and would not be used for remote-chain (isolated pool) deployments.\\n     */\\n    ICorePoolComptroller public immutable CORE_POOL_COMPTROLLER;\\n\\n    /**\\n     * @notice Address of the RiskStewardReceiver used to validate incoming updates\\n     */\\n    IRiskStewardReceiver public immutable RISK_STEWARD_RECEIVER;\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n\\n    /**\\n     * @notice Emitted when an interest rate model is updated\\n     */\\n    event InterestRateModelUpdated(\\n        uint256 indexed updateId,\\n        address indexed market,\\n        address indexed newInterestRateModel\\n    );\\n\\n    /**\\n     * @notice Thrown when an update type that is not supported is operated on\\n     */\\n    error UnsupportedUpdateType();\\n\\n    /**\\n     * @notice Thrown when attempting to apply a redundant IRM value (no-op change).\\n     */\\n    error RedundantValue();\\n\\n    /**\\n     * @notice Thrown when the update is not coming from the RiskStewardReceiver\\n     */\\n    error OnlyRiskStewardReceiver();\\n\\n    /**\\n     * @notice Thrown when the address length is invalid\\n     */\\n    error InvalidAddressLength();\\n\\n    /**\\n     * @notice Thrown when Core Pool VToken._setInterestRateModel fails.\\n     */\\n    error SetInterestRateModelFailed(uint256 errorCode);\\n\\n    /**\\n     * @notice Sets the immutable CORE_POOL_COMPTROLLER and RISK_STEWARD_RECEIVER addresses and disables initializers\\n     * @param corePoolComptroller_ The address of the Core Pool Comptroller\\n     * @param riskStewardReceiver_ The address of the RiskStewardReceiver\\n     * @custom:error Throws ZeroAddressNotAllowed if any of the addresses are zero\\n     * @custom:oz-upgrades-unsafe-allow constructor\\n     */\\n    constructor(address corePoolComptroller_, address riskStewardReceiver_) {\\n        ensureNonzeroAddress(riskStewardReceiver_);\\n        CORE_POOL_COMPTROLLER = ICorePoolComptroller(corePoolComptroller_);\\n        RISK_STEWARD_RECEIVER = IRiskStewardReceiver(riskStewardReceiver_);\\n        _disableInitializers();\\n    }\\n\\n    /**\\n     * @notice Initializes the contract as ownable and access controlled.\\n     * @param accessControlManager_ The address of the access control manager\\n     */\\n    function initialize(address accessControlManager_) external initializer {\\n        __AccessControlled_init(accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Applies an interest rate model update from the RiskStewardReceiver.\\n     * Directly updates the market interest rate model on the vToken.\\n     * @param update RiskParameterUpdate update to apply\\n     * @custom:error Throws OnlyRiskStewardReceiver if the sender is not the RiskStewardReceiver\\n     * @custom:error Throws UnsupportedUpdateType if the update type is not supported\\n     * @custom:event Emits InterestRateModelUpdated with the updateId, market and new IRM address\\n     * @custom:access Only callable by the RiskStewardReceiver\\n     */\\n    function applyUpdate(RiskParameterUpdate calldata update) external {\\n        if (msg.sender != address(RISK_STEWARD_RECEIVER)) {\\n            revert OnlyRiskStewardReceiver();\\n        }\\n\\n        if (update.updateTypeKey == INTEREST_RATE_MODEL_KEY) {\\n            address newIRM = _decodeAbiEncodedAddress(update.newValue);\\n            _updateIRM(update.updateId, update.market, newIRM);\\n        } else {\\n            revert UnsupportedUpdateType();\\n        }\\n    }\\n\\n    /**\\n     * @notice Checks if an update is safe for direct execution (no timelock required)\\n     * @param update The update to check\\n     * @return True if update is safe for direct execution, false if timelock is required\\n     * @custom:error Throws UnsupportedUpdateType if the update type is not supported\\n     * @custom:error Throws RedundantValue if the new IRM address is equal to the current IRM address\\n     * @dev For IRM updates, always returns false as we cannot compare IRM values\\n     */\\n    function isSafeForDirectExecution(RiskParameterUpdate calldata update) external view returns (bool) {\\n        if (update.updateTypeKey != INTEREST_RATE_MODEL_KEY) {\\n            revert UnsupportedUpdateType();\\n        }\\n\\n        address newIRM = _decodeAbiEncodedAddress(update.newValue);\\n        address currentIRM = address(ICorePoolVToken(update.market).interestRateModel());\\n\\n        // Revert on redundant updates\\n        if (newIRM == currentIRM) {\\n            revert RedundantValue();\\n        }\\n\\n        // Always require timelock (not safe for direct execution)\\n        return false;\\n    }\\n\\n    /**\\n     * @notice Updates the interest rate model for the given market.\\n     * @param updateId The update ID from the Risk Oracle\\n     * @param market The market to update the interest rate model for\\n     * @param newIRM The new interest rate model address\\n     * @custom:error Throws SetInterestRateModelFailed if the core pool vToken call to _setInterestRateModel returns a non-zero error code\\n     * @custom:event Emits InterestRateModelUpdated with the updateId, market and new IRM address\\n     */\\n    function _updateIRM(uint256 updateId, address market, address newIRM) internal {\\n        address comptroller = ICorePoolVToken(market).comptroller();\\n\\n        if (comptroller == address(CORE_POOL_COMPTROLLER)) {\\n            uint256 errorCode = ICorePoolVToken(market)._setInterestRateModel(InterestRateModelV8(newIRM));\\n            if (errorCode != 0) revert SetInterestRateModelFailed(errorCode);\\n        } else {\\n            IIsolatedPoolVToken(market).setInterestRateModel(InterestRateModel(newIRM));\\n        }\\n\\n        emit InterestRateModelUpdated(updateId, market, newIRM);\\n    }\\n\\n    /**\\n     * @notice Decodes ABI-encoded bytes into an address.\\n     * @dev Expects exactly 32 bytes as produced by abi.encode(address).\\n     * @param data ABI-encoded address payload (32 bytes)\\n     * @return The decoded address\\n     * @custom:error Throws InvalidAddressLength if data length is not 32 bytes\\n     */\\n    function _decodeAbiEncodedAddress(bytes memory data) internal pure returns (address) {\\n        if (data.length != 32) revert InvalidAddressLength();\\n        return abi.decode(data, (address));\\n    }\\n}\\n\",\"keccak256\":\"0x96f26c55479553f584366ca2c3f7c6e5b71f33999fe71b57c8d140c43cb4617a\",\"license\":\"BSD-3-Clause\"},\"contracts/RiskSteward/Interfaces/IRiskOracle.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity 0.8.25;\\n\\n/**\\n * @notice Struct representing a risk parameter update published by the Risk Oracle\\n * @param referenceId External reference ID, potentially linking to a document or off-chain data\\n * @param updateId Unique identifier for this specific update\\n * @param market Address of the market for which the parameter update applies\\n * @param updateType Classification of the update type for validation purposes (human-readable)\\n * @param updateTypeKey Keccak256 hash of updateType for efficient comparisons\\n * @param newValue Encoded new value of the risk parameter, flexible for various data types\\n * @param previousValue Previous value of the parameter for historical comparison\\n * @param timestamp Block timestamp when the update was published\\n * @param publisher Address of the account that published this update\\n * @param poolId Pool identifier for eMode-style collateral configuration (0 for regular markets)\\n * @param destLzEid LayerZero endpoint ID of the destination chain (0 for local execution)\\n * @param additionalData Additional metadata or data associated with the update\\n */\\nstruct RiskParameterUpdate {\\n    string referenceId;\\n    uint256 updateId;\\n    address market;\\n    string updateType;\\n    bytes32 updateTypeKey;\\n    bytes newValue;\\n    bytes previousValue;\\n    uint256 timestamp;\\n    address publisher;\\n    uint96 poolId;\\n    uint32 destLzEid;\\n    bytes additionalData;\\n}\\n\\n/**\\n * @title IRiskOracle\\n * @author Venus\\n * @notice Interface for Risk Oracle contract that manages and publishes risk parameter updates\\n */\\ninterface IRiskOracle {\\n    /// @notice Event emitted when a risk parameter update is published\\n    event UpdatePublished(\\n        string referenceId,\\n        uint256 indexed updateId,\\n        address indexed market,\\n        string indexed updateType,\\n        bytes newValue,\\n        bytes previousValue,\\n        uint256 timestamp,\\n        address publisher,\\n        bytes additionalData\\n    );\\n\\n    /// @notice Event emitted when a new authorized sender is added\\n    event AuthorizedSenderAdded(address indexed sender);\\n\\n    /// @notice Event emitted when an authorized sender is removed\\n    event AuthorizedSenderRemoved(address indexed sender);\\n\\n    /// @notice Event emitted when a new update type is added\\n    event UpdateTypeAdded(string indexed updateType);\\n\\n    /// @notice Event emitted when an update type's active status is changed\\n    event UpdateTypeActiveStatusChanged(string indexed updateType, bool previousActive, bool active);\\n\\n    /// @notice Thrown when sender is not authorized\\n    error SenderNotAuthorized();\\n\\n    /// @notice Thrown when sender is already authorized\\n    error SenderAlreadyAuthorized();\\n\\n    /// @notice Thrown when update type string is invalid\\n    error InvalidUpdateTypeString();\\n\\n    /// @notice Thrown when update type already exists\\n    error UpdateTypeAlreadyExists();\\n\\n    /// @notice Thrown when update type doesn't exist\\n    error UpdateTypeNotFound();\\n\\n    /// @notice Thrown when update type active status is already set to the desired value\\n    error UpdateTypeStatusUnchanged();\\n\\n    /// @notice Thrown when update type is not active\\n    error UpdateTypeNotActive();\\n\\n    /// @notice Thrown when no update is found\\n    error NoUpdateFound();\\n\\n    /// @notice Thrown when update ID is invalid\\n    error InvalidUpdateId();\\n\\n    /// @notice Thrown when array lengths don't match in bulk operations\\n    error ArrayLengthMismatch();\\n\\n    /// @notice Thrown when trying to renounce ownership\\n    error RenounceOwnershipNotAllowed();\\n\\n    /**\\n     * @notice Returns the update type string at the given index in the allUpdateTypes array\\n     * @param index The index in the allUpdateTypes array\\n     * @return The update type string at the specified index\\n     */\\n    function allUpdateTypes(uint256 index) external view returns (string memory);\\n\\n    /**\\n     * @notice Returns the total number of update types in the allUpdateTypes array\\n     * @return The length of the allUpdateTypes array\\n     */\\n    function allUpdateTypesLength() external view returns (uint256);\\n\\n    /**\\n     * @notice Returns all update types in the allUpdateTypes array\\n     * @return An array of all update type strings\\n     */\\n    function getAllUpdateTypes() external view returns (string[] memory);\\n\\n    /**\\n     * @notice Checks if a given update type is currently active\\n     * @param updateType The update type string to check\\n     * @return True if the update type is active, false otherwise\\n     */\\n    function getActiveUpdateTypes(string memory updateType) external view returns (bool);\\n\\n    /**\\n     * @notice Checks if a given update type is currently active\\n     * @param updateTypeKey The keccak256 hash of the update type string\\n     * @return True if the update type key is active, false otherwise\\n     */\\n    function activeUpdateTypes(bytes32 updateTypeKey) external view returns (bool);\\n\\n    /**\\n     * @notice Checks if an address is authorized to publish updates\\n     * @param sender The address to check for authorization\\n     * @return True if the address is authorized, false otherwise\\n     */\\n    function authorizedSenders(address sender) external view returns (bool);\\n\\n    /**\\n     * @notice Gets the latest update ID for a specific market and update type combination\\n     * @param updateTypeKey The keccak256 hash of the update type string\\n     * @param market The market address\\n     * @return The latest update ID for the given market and update type key, or 0 if none exists\\n     */\\n    function latestUpdateIdByMarketAndType(bytes32 updateTypeKey, address market) external view returns (uint256);\\n\\n    /**\\n     * @notice Returns the total number of updates that have been published\\n     * @return The current update counter value\\n     */\\n    function updateCounter() external view returns (uint256);\\n\\n    /**\\n     * @notice Fetches the most recent update for a specific parameter type in a specific market\\n     * @param updateType The update type identifier\\n     * @param market The market address\\n     * @return The most recent RiskParameterUpdate for the specified parameter and market\\n     * @custom:error NoUpdateFound Thrown if no update exists for the specified parameter and market\\n     */\\n    function getLatestUpdateByTypeAndMarket(\\n        string memory updateType,\\n        address market\\n    ) external view returns (RiskParameterUpdate memory);\\n\\n    /**\\n     * @notice Gets the latest update ID for a specific market and update type (string) combination\\n     * @param updateType The update type identifier\\n     * @param market The market address\\n     * @return The latest update ID for the given market and update type, or 0 if none exists\\n     */\\n    function getLatestUpdateIdByTypeAndMarket(string memory updateType, address market) external view returns (uint256);\\n\\n    /**\\n     * @notice Fetches the update for a provided update ID\\n     * @param updateId The unique update ID\\n     * @return The RiskParameterUpdate struct for the specified update ID\\n     * @custom:error InvalidUpdateId Thrown if updateId is 0 or greater than updateCounter\\n     */\\n    function getUpdateById(uint256 updateId) external view returns (RiskParameterUpdate memory);\\n\\n    /**\\n     * @notice Adds a new address to the list of authorized senders who can publish updates\\n     * @param sender Address to be authorized\\n     * @custom:error ZeroAddressNotAllowed Thrown if sender is the zero address\\n     * @custom:error SenderAlreadyAuthorized Thrown if sender is already authorized\\n     * @custom:error Unauthorized Thrown if caller is not allowed by AccessControlManager\\n     * @custom:event AuthorizedSenderAdded Emitted when sender is successfully added\\n     */\\n    function addAuthorizedSender(address sender) external;\\n\\n    /**\\n     * @notice Removes an address from the list of authorized senders\\n     * @param sender Address to be removed from authorization\\n     * @custom:error SenderNotAuthorized Thrown if sender is not currently authorized\\n     * @custom:error Unauthorized Thrown if caller is not allowed by AccessControlManager\\n     * @custom:event AuthorizedSenderRemoved Emitted when sender is successfully removed\\n     */\\n    function removeAuthorizedSender(address sender) external;\\n\\n    /**\\n     * @notice Adds a new update type to the list of authorized update types\\n     * @param newUpdateType New update type string to allow (must be non-empty and <= 64 characters)\\n     * @custom:error InvalidUpdateTypeString Thrown if update type string is empty or exceeds 64 characters\\n     * @custom:error UpdateTypeAlreadyExists Thrown if update type already exists\\n     * @custom:error Unauthorized Thrown if caller is not allowed by AccessControlManager\\n     * @custom:event UpdateTypeAdded Emitted when update type is successfully added\\n     */\\n    function addUpdateType(string memory newUpdateType) external;\\n\\n    /**\\n     * @notice Sets the active status of an existing update type\\n     * @param updateType The update type to set active status for\\n     * @param active True to activate the update type, false to deactivate it\\n     * @custom:error UpdateTypeNotFound Thrown if update type doesn't exist\\n     * @custom:error UpdateTypeStatusUnchanged Thrown if status is already set to the desired value\\n     * @custom:error Unauthorized Thrown if caller is not allowed by AccessControlManager\\n     * @custom:event UpdateTypeActiveStatusChanged Emitted when status is successfully changed\\n     */\\n    function setUpdateTypeActive(string memory updateType, bool active) external;\\n\\n    /**\\n     * @notice Publishes a new risk parameter update.\\n     * @param referenceId An external reference ID associated with the update\\n     * @param newValue The new value of the risk parameter being updated (encoded as bytes)\\n     * @param updateType Type of update performed, must be an active update type\\n     * @param market Address of the market for which the parameter update applies\\n     * @param poolId Pool identifier for eMode-style collateral configuration (0 for regular markets)\\n     * @param dstEid Destination endpoint ID for cross-chain routing\\n     * @param additionalData Additional data or metadata for the update\\n     * @custom:error SenderNotAuthorized Thrown if caller is not an authorized sender\\n     * @custom:error UpdateTypeNotActive Thrown if update type is not active\\n     * @custom:error ZeroAddressNotAllowed Thrown if market is the zero address\\n     * @custom:event UpdatePublished Emitted when the update is successfully published\\n     */\\n    function publishRiskParameterUpdate(\\n        string memory referenceId,\\n        bytes memory newValue,\\n        string memory updateType,\\n        address market,\\n        uint96 poolId,\\n        uint32 dstEid,\\n        bytes memory additionalData\\n    ) external;\\n\\n    /**\\n     * @notice Publishes multiple risk parameter updates in a single transaction.\\n     * @param referenceIds Array of external reference IDs, one for each update\\n     * @param newValues Array of new values for each update (encoded as bytes)\\n     * @param updateTypes Array of update types, all must be active update types\\n     * @param markets Array of market addresses for each update\\n     * @param poolIds Array of pool identifiers for eMode-style collateral configuration (0 for regular markets)\\n     * @param dstEid Array of destination endpoint IDs for cross-chain routing\\n     * @param additionalData Array of additional data for each update\\n     * @custom:error SenderNotAuthorized Thrown if caller is not an authorized sender\\n     * @custom:error ArrayLengthMismatch Thrown if all arrays don't have the same length\\n     * @custom:error UpdateTypeNotActive Thrown if any update type is not active\\n     * @custom:error ZeroAddressNotAllowed Thrown if any market is the zero address\\n     * @custom:event UpdatePublished Emitted for each successfully published update\\n     */\\n    function publishBulkRiskParameterUpdates(\\n        string[] memory referenceIds,\\n        bytes[] memory newValues,\\n        string[] memory updateTypes,\\n        address[] memory markets,\\n        uint96[] memory poolIds,\\n        uint32[] memory dstEid,\\n        bytes[] memory additionalData\\n    ) external;\\n}\\n\",\"keccak256\":\"0x8a30b030d5be3cefabf55d889d0a06447613a9ada5a917730b7ec833bda167cd\",\"license\":\"MIT\"},\"contracts/RiskSteward/Interfaces/IRiskSteward.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { RiskParameterUpdate } from \\\"./IRiskOracle.sol\\\";\\nimport { IRiskStewardReceiver } from \\\"./IRiskStewardReceiver.sol\\\";\\n\\n/**\\n * @title IRiskSteward\\n * @author Venus\\n * @notice Interface for risk stewards that validate and apply risk parameter updates\\n */\\ninterface IRiskSteward {\\n    /**\\n     * @notice Returns the `IRiskStewardReceiver` associated with this steward.\\n     * @return The risk steward receiver contract\\n     */\\n    function RISK_STEWARD_RECEIVER() external view returns (IRiskStewardReceiver);\\n\\n    /**\\n     * @notice Checks whether an update is safe for direct execution (no timelock required).\\n     * @param update The risk parameter update to evaluate\\n     * @return True if update is safe for direct execution, false if timelock is required\\n     */\\n    function isSafeForDirectExecution(RiskParameterUpdate calldata update) external view returns (bool);\\n\\n    /**\\n     * @notice Applies a validated risk parameter update.\\n     * @param update The risk parameter update to apply\\n     */\\n    function applyUpdate(RiskParameterUpdate calldata update) external;\\n}\\n\",\"keccak256\":\"0x6438497d6fd62f5e8c224a01e626a92ae2ebbe736852749862ff2f040a25b069\",\"license\":\"BSD-3-Clause\"},\"contracts/RiskSteward/Interfaces/IRiskStewardReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface IRiskStewardReceiver {\\n    /**\\n     * @notice Status of an update\\n     */\\n    enum UpdateStatus {\\n        None,\\n        Pending,\\n        Executed,\\n        Rejected,\\n        Expired,\\n        SENT_TO_DESTINATION\\n    }\\n\\n    /**\\n     * @notice Configuration for a risk parameter update type\\n     * @param active Whether this update type configuration is currently active\\n     * @param debounce Minimum delay between consecutive update executions for the same (updateType, market) pair\\n     * @param timelock Period that must pass after registration before an update can be executed\\n     * @param riskSteward Address of the risk steward contract responsible for processing this update type\\n     */\\n    struct RiskParamConfig {\\n        bool active;\\n        uint256 debounce;\\n        uint256 timelock;\\n        address riskSteward;\\n    }\\n\\n    /**\\n     * @notice Registered update structure with timelock and execution information\\n     * @param updateId Update ID from the Risk Oracle\\n     * @param unlockTime Timestamp when this update can be executed (calculated as registration time + timelock)\\n     * @param status Current status of the update (Pending, Executed, Rejected, Expired, etc.)\\n     * @param executor Address of the executor who executed this update (address(0) if not executed yet)\\n     * @param executedAt Timestamp when this update was executed (0 if not executed yet)\\n     */\\n    struct RegisteredUpdate {\\n        uint256 updateId;\\n        uint256 unlockTime;\\n        UpdateStatus status;\\n        address executor;\\n        uint256 executedAt;\\n    }\\n\\n    /**\\n     * @notice Event emitted when a risk parameter config is set\\n     */\\n    event RiskParameterConfigUpdated(\\n        bytes32 indexed updateTypeHash,\\n        string updateType,\\n        address indexed previousRiskSteward,\\n        address indexed riskSteward,\\n        uint256 previousDebounce,\\n        uint256 debounce,\\n        uint256 previousTimelock,\\n        uint256 timelock,\\n        bool previousActive,\\n        bool active\\n    );\\n\\n    /**\\n     * @notice Event emitted when a risk parameter config active status is set\\n     */\\n    event ConfigActiveUpdated(bytes32 indexed updateTypeHash, string updateType, bool previousActive, bool active);\\n\\n    /**\\n     * @notice Event emitted when an update is successfully executed\\n     */\\n    event UpdateExecuted(uint256 indexed updateId);\\n\\n    /**\\n     * @notice Event emitted when an update is rejected\\n     */\\n    event UpdateRejected(uint256 indexed updateId);\\n\\n    /**\\n     * @notice Event emitted when an update is marked as expired\\n     */\\n    event UpdateExpired(uint256 indexed updateId);\\n\\n    /**\\n     * @notice Event emitted when an executor status is set\\n     */\\n    event ExecutorStatusUpdated(address indexed executor, bool previousApproved, bool approved);\\n\\n    /**\\n     * @notice Event emitted when an update is registered\\n     */\\n    event UpdateRegistered(uint256 indexed updateId, uint256 unlockTime, string updateType, address indexed market);\\n\\n    /**\\n     * @notice Event emitted when an update is sent to a destination chain\\n     */\\n    event UpdateSentToDestination(\\n        uint256 updateId,\\n        uint32 indexed destLzEid,\\n        string indexed updateType,\\n        address indexed market\\n    );\\n\\n    /**\\n     * @notice Event emitted when an update is resent to a destination chain\\n     */\\n    event UpdateResentToDestination(\\n        uint256 updateId,\\n        uint32 indexed destLzEid,\\n        string indexed updateType,\\n        address indexed market\\n    );\\n\\n    /**\\n     * @notice Emitted when leftover native tokens are swept by owner\\n     */\\n    event SweepNative(address indexed receiver, uint256 amount);\\n\\n    /**\\n     * @notice Event emitted when the pause status changes\\n     * @param previousPaused Previous pause state\\n     * @param paused Current pause state\\n     */\\n    event PauseStatusUpdated(bool previousPaused, bool paused);\\n\\n    /**\\n     * @custom:error TransferFailed\\n     */\\n    error TransferFailed();\\n\\n    /**\\n     * @notice Thrown if a submitted update is not active and therefore cannot be processed\\n     */\\n    error ConfigNotActive();\\n\\n    /**\\n     * @notice Thrown when an update was not applied within the required time frame\\n     */\\n    error UpdateIsExpired();\\n\\n    /**\\n     * @notice Thrown when an update has already been processed\\n     */\\n    error UpdateAlreadyResolved();\\n\\n    /**\\n     * @notice Thrown when the debounce period hasn't passed for applying an update to a specific market / update type\\n     */\\n    error UpdateTooFrequent();\\n\\n    /**\\n     * @notice Thrown when an update type that is not supported is operated on\\n     */\\n    error UnsupportedUpdateType();\\n\\n    /**\\n     * @notice Thrown when an empty update type string is provided\\n     */\\n    error InvalidUpdateType();\\n\\n    /**\\n     * @notice Thrown when a debounce value of 0 is set\\n     */\\n    error InvalidDebounce();\\n\\n    /**\\n     * @notice Thrown when a timelock value is greater than or equal to the expiration time\\n     */\\n    error InvalidTimelock();\\n\\n    /**\\n     * @notice Thrown when update unlock time has not been reached\\n     */\\n    error UpdateNotUnlocked();\\n\\n    /**\\n     * @notice Thrown when trying to resolve an update that doesn't exist\\n     */\\n    error UpdateNotFound();\\n\\n    /**\\n     * @notice Thrown when an address is not an executor\\n     */\\n    error NotAnExecutor();\\n\\n    /**\\n     * @notice Thrown when there is a non-expired pending update of the same type for the market\\n     */\\n    error RegisteredUpdateTypeExist(uint256);\\n\\n    /**\\n     * @notice Thrown when trying to resend an update that is not in SENT_TO_DESTINATION status\\n     */\\n    error InvalidUpdateToResend();\\n\\n    /**\\n     * @notice Thrown when trying to execute an update that was never registered\\n     */\\n    error InvalidRegisteredUpdate();\\n\\n    /**\\n     * @notice Thrown when attempting to call lzSend from an address other than this contract\\n     */\\n    error InvalidLzSendCaller();\\n\\n    /**\\n     * @notice Thrown when trying to renounce ownership\\n     */\\n    error RenounceOwnershipNotAllowed();\\n\\n    /**\\n     * @notice Thrown when processUpdate is called while the contract is paused\\n     */\\n    error PausedError();\\n\\n    /**\\n     * @notice Thrown when an invalid LayerZero endpoint ID is provided\\n     */\\n    error InvalidLayerZeroEid();\\n\\n    /**\\n     * @notice Thrown when trying to set the same pause status\\n     */\\n    error PauseStatusUnchanged();\\n\\n    /**\\n     * @notice Thrown when trying to set the same config active status\\n     */\\n    error ConfigStatusUnchanged();\\n\\n    /**\\n     * @notice Thrown when trying to set the same executor whitelist status\\n     */\\n    error ExecutorStatusUnchanged();\\n\\n    /**\\n     * @notice Thrown when an update will expire before its timelock unlocks\\n     */\\n    error UpdateWillExpireBeforeUnlock();\\n\\n    function getRiskParameterConfig(string calldata updateType) external view returns (RiskParamConfig memory);\\n\\n    function getLastProcessedUpdate(string calldata updateType, address market) external view returns (uint256);\\n\\n    function getLastRegisteredUpdate(string calldata updateType, address market) external view returns (uint256);\\n\\n    function setRiskParameterConfig(\\n        string calldata updateType,\\n        address riskSteward,\\n        uint256 debounce,\\n        uint256 timelock\\n    ) external;\\n\\n    function setConfigActive(string calldata updateType, bool active) external;\\n\\n    function setWhitelistedExecutor(address executor, bool approved) external;\\n\\n    function processUpdate(uint256 updateId) external;\\n\\n    function executeRegisteredUpdate(uint256 updateId) external;\\n\\n    function rejectUpdate(uint256 updateId) external;\\n\\n    function resendRemoteUpdate(uint256 updateId, bytes calldata options) external payable;\\n\\n    function getExecutableUpdates(\\n        string calldata updateType,\\n        address comptroller\\n    ) external view returns (uint256[] memory executableUpdates);\\n\\n    function isUpdateExecutable(uint256 updateId) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x206b4763cfe62155718edb4b53ee48d6e5204b81cbfac705808d2ffd3225bb12\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/ICorePoolComptroller.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface ICorePoolComptroller {\\n    function borrowCaps(address) external view returns (uint256);\\n\\n    function supplyCaps(address) external view returns (uint256);\\n\\n    function _setMarketSupplyCaps(address[] calldata, uint256[] calldata) external;\\n\\n    function _setMarketBorrowCaps(address[] calldata, uint256[] calldata) external;\\n\\n    function setMarketSupplyCaps(address[] calldata, uint256[] calldata) external;\\n\\n    function setMarketBorrowCaps(address[] calldata, uint256[] calldata) external;\\n\\n    function getAllMarkets() external view returns (address[] memory);\\n\\n    function setCollateralFactor(\\n        uint96 poolId,\\n        address vToken,\\n        uint256 newCollateralFactorMantissa,\\n        uint256 newLiquidizationThresholdMantissa\\n    ) external returns (uint256);\\n\\n    function setCollateralFactor(\\n        address vToken,\\n        uint256 newCollateralFactorMantissa,\\n        uint256 newLiquidationThresholdMantissa\\n    ) external returns (uint256);\\n\\n    function markets(\\n        address\\n    )\\n        external\\n        view\\n        returns (\\n            bool isListed,\\n            uint256 collateralFactorMantissa,\\n            bool isVenus,\\n            uint256 liquidationThresholdMantissa,\\n            uint256 liquidationIncentiveMantissa,\\n            uint96 marketPoolId,\\n            bool isBorrowAllowed\\n        );\\n\\n    function poolMarkets(\\n        uint96 poolId,\\n        address vToken\\n    )\\n        external\\n        view\\n        returns (\\n            bool isListed,\\n            uint256 collateralFactorMantissa,\\n            bool isVenus,\\n            uint256 liquidationThresholdMantissa,\\n            uint256 liquidationIncentiveMantissa,\\n            uint96 marketPoolId,\\n            bool isBorrowAllowed\\n        );\\n}\\n\",\"keccak256\":\"0xf1d900d58474417ee7de59cbb72df84fe1cd4512f3b265bb66ffabddbcca53b6\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/ICorePoolVToken.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { InterestRateModelV8 } from \\\"@venusprotocol/venus-protocol/contracts/InterestRateModels/InterestRateModelV8.sol\\\";\\n\\ninterface ICorePoolVToken {\\n    function comptroller() external view returns (address);\\n\\n    function interestRateModel() external view returns (address);\\n\\n    function _setInterestRateModel(InterestRateModelV8 newInterestRateModel) external returns (uint256);\\n}\\n\",\"keccak256\":\"0xb952df2bdfc73cc669c52776b4cf9dd663084dfafd74131f4f59ac9c820edd7b\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/IIsolatedPoolVToken.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { InterestRateModel } from \\\"@venusprotocol/isolated-pools/contracts/InterestRateModel.sol\\\";\\n\\ninterface IIsolatedPoolVToken {\\n    function comptroller() external view returns (address);\\n\\n    function interestRateModel() external view returns (address);\\n\\n    function setInterestRateModel(InterestRateModel newInterestRateModel) external;\\n}\\n\",\"keccak256\":\"0x86d7ac99eef5e8cfa3dfa35e07e61686df09865c6bc18bacb2ed8ea34649cbc5\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":6086,"contract":"contracts/RiskSteward/IRMRiskSteward.sol:IRMRiskSteward","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":6089,"contract":"contracts/RiskSteward/IRMRiskSteward.sol:IRMRiskSteward","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":6573,"contract":"contracts/RiskSteward/IRMRiskSteward.sol:IRMRiskSteward","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":5958,"contract":"contracts/RiskSteward/IRMRiskSteward.sol:IRMRiskSteward","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":6078,"contract":"contracts/RiskSteward/IRMRiskSteward.sol:IRMRiskSteward","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":5867,"contract":"contracts/RiskSteward/IRMRiskSteward.sol:IRMRiskSteward","label":"_pendingOwner","offset":0,"slot":"101","type":"t_address"},{"astId":5946,"contract":"contracts/RiskSteward/IRMRiskSteward.sol:IRMRiskSteward","label":"__gap","offset":0,"slot":"102","type":"t_array(t_uint256)49_storage"},{"astId":13718,"contract":"contracts/RiskSteward/IRMRiskSteward.sol:IRMRiskSteward","label":"_accessControlManager","offset":0,"slot":"151","type":"t_contract(IAccessControlManagerV8)13903"},{"astId":13723,"contract":"contracts/RiskSteward/IRMRiskSteward.sol:IRMRiskSteward","label":"__gap","offset":0,"slot":"152","type":"t_array(t_uint256)49_storage"},{"astId":14464,"contract":"contracts/RiskSteward/IRMRiskSteward.sol:IRMRiskSteward","label":"safeDeltaBps","offset":0,"slot":"201","type":"t_uint256"},{"astId":16054,"contract":"contracts/RiskSteward/IRMRiskSteward.sol:IRMRiskSteward","label":"__gap","offset":0,"slot":"202","type":"t_array(t_uint256)49_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_contract(IAccessControlManagerV8)13903":{"encoding":"inplace","label":"contract IAccessControlManagerV8","numberOfBytes":"20"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"errors":{"InvalidAddressLength()":[{"notice":"Thrown when the address length is invalid"}],"OnlyRiskStewardReceiver()":[{"notice":"Thrown when the update is not coming from the RiskStewardReceiver"}],"RedundantValue()":[{"notice":"Thrown when attempting to apply a redundant IRM value (no-op change)."}],"RenounceOwnershipNotAllowed()":[{"notice":"Thrown when trying to renounce ownership"}],"SetInterestRateModelFailed(uint256)":[{"notice":"Thrown when Core Pool VToken._setInterestRateModel fails."}],"Unauthorized(address,address,string)":[{"notice":"Thrown when the action is prohibited by AccessControlManager"}],"UnsupportedUpdateType()":[{"notice":"Thrown when an update type that is not supported is operated on"}],"ZeroAddressNotAllowed()":[{"notice":"Thrown if the supplied address is a zero address where it is not allowed"}]},"events":{"InterestRateModelUpdated(uint256,address,address)":{"notice":"Emitted when an interest rate model is updated"},"NewAccessControlManager(address,address)":{"notice":"Emitted when access control manager contract address is changed"}},"kind":"user","methods":{"CORE_POOL_COMPTROLLER()":{"notice":"Address of the BNB Core Pool Comptroller."},"INTEREST_RATE_MODEL()":{"notice":"The update type for interest rate model"},"INTEREST_RATE_MODEL_KEY()":{"notice":"The update type key for interest rate model (keccak256 hash of INTEREST_RATE_MODEL)"},"RISK_STEWARD_RECEIVER()":{"notice":"Address of the RiskStewardReceiver used to validate incoming updates"},"accessControlManager()":{"notice":"Returns the address of the access control manager contract"},"applyUpdate((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))":{"notice":"Applies an interest rate model update from the RiskStewardReceiver. Directly updates the market interest rate model on the vToken."},"constructor":{"notice":"Sets the immutable CORE_POOL_COMPTROLLER and RISK_STEWARD_RECEIVER addresses and disables initializers"},"initialize(address)":{"notice":"Initializes the contract as ownable and access controlled."},"isSafeForDirectExecution((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))":{"notice":"Checks if an update is safe for direct execution (no timelock required)"},"renounceOwnership()":{"notice":"Disables renounceOwnership function"},"safeDeltaBps()":{"notice":"The safe delta threshold in basis points.Updates within this delta are considered safe and require no timelock. Updates exceeding this delta require timelock."},"setAccessControlManager(address)":{"notice":"Sets the address of AccessControlManager"}},"notice":"Contract that can update interest rate models updates received from RiskStewardReceiver.","version":1}}},"contracts/RiskSteward/Interfaces/IDestinationStewardReceiver.sol":{"IDestinationStewardReceiver":{"abi":[{"inputs":[],"name":"ConfigNotActive","type":"error"},{"inputs":[],"name":"ConfigStatusUnchanged","type":"error"},{"inputs":[],"name":"ExecutorStatusUnchanged","type":"error"},{"inputs":[],"name":"InvalidDebounce","type":"error"},{"inputs":[],"name":"InvalidLayerZeroEid","type":"error"},{"inputs":[],"name":"InvalidRemoteDelay","type":"error"},{"inputs":[],"name":"InvalidUpdateType","type":"error"},{"inputs":[],"name":"NotAnExecutor","type":"error"},{"inputs":[],"name":"RemoteDelayUnchanged","type":"error"},{"inputs":[],"name":"RenounceOwnershipNotAllowed","type":"error"},{"inputs":[],"name":"UnsupportedUpdateType","type":"error"},{"inputs":[],"name":"UpdateIsExpired","type":"error"},{"inputs":[],"name":"UpdateNotFound","type":"error"},{"inputs":[],"name":"UpdateNotUnlocked","type":"error"},{"inputs":[],"name":"UpdateTooFrequent","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"updateTypeHash","type":"bytes32"},{"indexed":false,"internalType":"string","name":"updateType","type":"string"},{"indexed":false,"internalType":"bool","name":"previousActive","type":"bool"},{"indexed":true,"internalType":"bool","name":"active","type":"bool"}],"name":"ConfigActiveUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"updateId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"arrivalTime","type":"uint256"},{"indexed":true,"internalType":"string","name":"updateType","type":"string"},{"indexed":true,"internalType":"address","name":"market","type":"address"}],"name":"DuplicateUpdateReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"executor","type":"address"},{"indexed":false,"internalType":"bool","name":"previousApproved","type":"bool"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ExecutorStatusUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"updateId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"arrivalTime","type":"uint256"},{"indexed":true,"internalType":"string","name":"updateType","type":"string"},{"indexed":true,"internalType":"address","name":"market","type":"address"}],"name":"RegisteredPendingUpdateExist","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"remoteDelay","type":"uint256"}],"name":"RemoteDelaySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"updateId","type":"uint256"}],"name":"RemoteUpdateExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"updateId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"arrivalTime","type":"uint256"},{"indexed":true,"internalType":"string","name":"updateType","type":"string"},{"indexed":true,"internalType":"address","name":"market","type":"address"}],"name":"RemoteUpdateRegistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"updateTypeHash","type":"bytes32"},{"indexed":false,"internalType":"string","name":"updateType","type":"string"},{"indexed":true,"internalType":"address","name":"previousRiskSteward","type":"address"},{"indexed":true,"internalType":"address","name":"riskSteward","type":"address"},{"indexed":false,"internalType":"uint256","name":"previousDebounce","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"debounce","type":"uint256"},{"indexed":false,"internalType":"bool","name":"previousActive","type":"bool"},{"indexed":false,"internalType":"bool","name":"active","type":"bool"}],"name":"RiskParameterConfigUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"updateId","type":"uint256"}],"name":"UpdateRejected","type":"event"},{"inputs":[{"internalType":"uint256","name":"updateId","type":"uint256"}],"name":"executeUpdate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"updateType","type":"string"},{"internalType":"address","name":"comptroller","type":"address"}],"name":"getExecutableUpdates","outputs":[{"internalType":"uint256[]","name":"executableUpdates","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"updateType","type":"string"},{"internalType":"address","name":"market","type":"address"}],"name":"getLastExecutedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"updateType","type":"string"},{"internalType":"address","name":"market","type":"address"}],"name":"getRegisteredUpdate","outputs":[{"components":[{"components":[{"internalType":"string","name":"referenceId","type":"string"},{"internalType":"uint256","name":"updateId","type":"uint256"},{"internalType":"address","name":"market","type":"address"},{"internalType":"string","name":"updateType","type":"string"},{"internalType":"bytes32","name":"updateTypeKey","type":"bytes32"},{"internalType":"bytes","name":"newValue","type":"bytes"},{"internalType":"bytes","name":"previousValue","type":"bytes"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"address","name":"publisher","type":"address"},{"internalType":"uint96","name":"poolId","type":"uint96"},{"internalType":"uint32","name":"destLzEid","type":"uint32"},{"internalType":"bytes","name":"additionalData","type":"bytes"}],"internalType":"struct RiskParameterUpdate","name":"update","type":"tuple"},{"internalType":"enum IDestinationStewardReceiver.UpdateStatus","name":"status","type":"uint8"},{"internalType":"uint256","name":"arrivalTime","type":"uint256"},{"internalType":"address","name":"executor","type":"address"}],"internalType":"struct IDestinationStewardReceiver.DestinationUpdate","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"updateType","type":"string"}],"name":"getRiskParameterConfig","outputs":[{"components":[{"internalType":"bool","name":"active","type":"bool"},{"internalType":"uint256","name":"debounce","type":"uint256"},{"internalType":"address","name":"riskSteward","type":"address"}],"internalType":"struct IDestinationStewardReceiver.RiskParamConfig","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"updateId","type":"uint256"}],"name":"rejectUpdate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"updateType","type":"string"},{"internalType":"bool","name":"active","type":"bool"}],"name":"setConfigActive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newRemoteDelay","type":"uint256"}],"name":"setRemoteDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"updateType","type":"string"},{"internalType":"address","name":"riskSteward","type":"address"},{"internalType":"uint256","name":"debounce","type":"uint256"}],"name":"setRiskParameterConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"executor","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setWhitelistedExecutor","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"executeUpdate(uint256)":"79edd100","getExecutableUpdates(string,address)":"f63106e4","getLastExecutedAt(string,address)":"be3881b4","getRegisteredUpdate(string,address)":"f5d3b7b3","getRiskParameterConfig(string)":"28207141","rejectUpdate(uint256)":"c3e10deb","setConfigActive(string,bool)":"438653fe","setRemoteDelay(uint256)":"ca136b99","setRiskParameterConfig(string,address,uint256)":"b080d71d","setWhitelistedExecutor(address,bool)":"3aed7f31"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ConfigNotActive\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ConfigStatusUnchanged\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExecutorStatusUnchanged\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDebounce\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidLayerZeroEid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRemoteDelay\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidUpdateType\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotAnExecutor\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RemoteDelayUnchanged\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RenounceOwnershipNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsupportedUpdateType\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpdateIsExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpdateNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpdateNotUnlocked\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpdateTooFrequent\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"updateTypeHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"previousActive\",\"type\":\"bool\"},{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"}],\"name\":\"ConfigActiveUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"arrivalTime\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"DuplicateUpdateReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"previousApproved\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ExecutorStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"arrivalTime\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"RegisteredPendingUpdateExist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"remoteDelay\",\"type\":\"uint256\"}],\"name\":\"RemoteDelaySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"}],\"name\":\"RemoteUpdateExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"arrivalTime\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"RemoteUpdateRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"updateTypeHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousRiskSteward\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"riskSteward\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previousDebounce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"debounce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"previousActive\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"}],\"name\":\"RiskParameterConfigUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"}],\"name\":\"UpdateRejected\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"}],\"name\":\"executeUpdate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"comptroller\",\"type\":\"address\"}],\"name\":\"getExecutableUpdates\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"executableUpdates\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"getLastExecutedAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"getRegisteredUpdate\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"referenceId\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"updateTypeKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"newValue\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"previousValue\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"poolId\",\"type\":\"uint96\"},{\"internalType\":\"uint32\",\"name\":\"destLzEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"additionalData\",\"type\":\"bytes\"}],\"internalType\":\"struct RiskParameterUpdate\",\"name\":\"update\",\"type\":\"tuple\"},{\"internalType\":\"enum IDestinationStewardReceiver.UpdateStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"arrivalTime\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"}],\"internalType\":\"struct IDestinationStewardReceiver.DestinationUpdate\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"}],\"name\":\"getRiskParameterConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"debounce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"riskSteward\",\"type\":\"address\"}],\"internalType\":\"struct IDestinationStewardReceiver.RiskParamConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"}],\"name\":\"rejectUpdate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"}],\"name\":\"setConfigActive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newRemoteDelay\",\"type\":\"uint256\"}],\"name\":\"setRemoteDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"riskSteward\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"debounce\",\"type\":\"uint256\"}],\"name\":\"setRiskParameterConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setWhitelistedExecutor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"errors\":{\"ConfigNotActive()\":[{\"notice\":\"Thrown when config for an update type is not active or not configured\"}],\"ConfigStatusUnchanged()\":[{\"notice\":\"Thrown when trying to set the same config active status\"}],\"ExecutorStatusUnchanged()\":[{\"notice\":\"Thrown when trying to set the same executor whitelist status\"}],\"InvalidDebounce()\":[{\"notice\":\"Thrown when a debounce value of 0 is set\"}],\"InvalidLayerZeroEid()\":[{\"notice\":\"Thrown when an invalid LayerZero endpoint ID is provided\"}],\"InvalidRemoteDelay()\":[{\"notice\":\"Thrown when an invalid remote delay is provided\"}],\"InvalidUpdateType()\":[{\"notice\":\"Thrown when an empty update type string is provided\"}],\"NotAnExecutor()\":[{\"notice\":\"Thrown when an address is not a whitelisted executor\"}],\"RemoteDelayUnchanged()\":[{\"notice\":\"Thrown when trying to set the same remote delay value\"}],\"RenounceOwnershipNotAllowed()\":[{\"notice\":\"Thrown when trying to renounce ownership\"}],\"UnsupportedUpdateType()\":[{\"notice\":\"Thrown when an update type is not supported\"}],\"UpdateIsExpired()\":[{\"notice\":\"Thrown when a bridged update has expired on the destination\"}],\"UpdateNotFound()\":[{\"notice\":\"Thrown when trying to operate on an update that was never registered\"}],\"UpdateNotUnlocked()\":[{\"notice\":\"Thrown when trying to execute an update before its unlock time\"}],\"UpdateTooFrequent()\":[{\"notice\":\"Thrown when the debounce period hasn't passed for applying an update to a specific market / update type\"}]},\"events\":{\"ConfigActiveUpdated(bytes32,string,bool,bool)\":{\"notice\":\"Emitted when a risk parameter config active status is updated\"},\"DuplicateUpdateReceived(uint256,uint256,string,address)\":{\"notice\":\"Emitted when a duplicate bridged update (same updateId) is received.\"},\"ExecutorStatusUpdated(address,bool,bool)\":{\"notice\":\"Emitted when an executor status is set on the destination\"},\"RegisteredPendingUpdateExist(uint256,uint256,string,address)\":{\"notice\":\"Emitted when a new bridged update arrives but a pending update is already registered for the same (updateType, market).\"},\"RemoteDelaySet(uint256)\":{\"notice\":\"Emitted when the remote delay is set in the constructor\"},\"RemoteUpdateExecuted(uint256)\":{\"notice\":\"Emitted when a bridged update is executed on the destination\"},\"RemoteUpdateRegistered(uint256,uint256,string,address)\":{\"notice\":\"Emitted when a bridged update is registered on the destination\"},\"RiskParameterConfigUpdated(bytes32,string,address,address,uint256,uint256,bool,bool)\":{\"notice\":\"Emitted when a risk parameter config is updated for an update type\"},\"UpdateRejected(uint256)\":{\"notice\":\"Emitted when an update is rejected on the destination\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/RiskSteward/Interfaces/IDestinationStewardReceiver.sol\":\"IDestinationStewardReceiver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"contracts/RiskSteward/Interfaces/IDestinationStewardReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { RiskParameterUpdate } from \\\"./IRiskOracle.sol\\\";\\n\\ninterface IDestinationStewardReceiver {\\n    /**\\n     * @notice Local status of an update on the destination chain\\n     */\\n    enum UpdateStatus {\\n        None,\\n        Pending,\\n        Executed,\\n        Rejected\\n    }\\n\\n    /**\\n     * @notice Configuration for a risk parameter update type on the destination chain.\\n     * @param active Whether this update type configuration is currently active\\n     * @param debounce Minimum delay between consecutive executions for the same (updateType, market) pair\\n     * @param riskSteward Address of the risk steward contract responsible for processing this update type\\n     */\\n    struct RiskParamConfig {\\n        bool active;\\n        uint256 debounce;\\n        address riskSteward;\\n    }\\n\\n    /**\\n     * @notice Destination-side storage for a bridged risk parameter update.\\n     * @param update The full risk parameter update payload received from the source chain\\n     * @param status Current local status of the bridged update (Pending, Executed, Rejected)\\n     * @param arrivalTime Timestamp when the update was received on this chain\\n     * @param executor Address of the executor who executed this update on the destination (address(0) not executed yet)\\n     * @dev Unlock time is derived as `arrivalTime + remoteDelay` instead of being stored separately.\\n     */\\n    struct DestinationUpdate {\\n        RiskParameterUpdate update;\\n        UpdateStatus status;\\n        uint256 arrivalTime;\\n        address executor;\\n    }\\n\\n    /**\\n     * @notice Emitted when a risk parameter config is updated for an update type\\n     */\\n    event RiskParameterConfigUpdated(\\n        bytes32 indexed updateTypeHash,\\n        string updateType,\\n        address indexed previousRiskSteward,\\n        address indexed riskSteward,\\n        uint256 previousDebounce,\\n        uint256 debounce,\\n        bool previousActive,\\n        bool active\\n    );\\n\\n    /**\\n     * @notice Emitted when a bridged update is registered on the destination\\n     */\\n    event RemoteUpdateRegistered(\\n        uint256 indexed updateId,\\n        uint256 arrivalTime,\\n        string indexed updateType,\\n        address indexed market\\n    );\\n\\n    /**\\n     * @notice Emitted when a new bridged update arrives but a pending update is already registered for the same (updateType, market).\\n     */\\n    event RegisteredPendingUpdateExist(\\n        uint256 indexed updateId,\\n        uint256 arrivalTime,\\n        string indexed updateType,\\n        address indexed market\\n    );\\n\\n    /**\\n     * @notice Emitted when a duplicate bridged update (same updateId) is received.\\n     */\\n    event DuplicateUpdateReceived(\\n        uint256 indexed updateId,\\n        uint256 arrivalTime,\\n        string indexed updateType,\\n        address indexed market\\n    );\\n\\n    /**\\n     * @notice Emitted when a bridged update is executed on the destination\\n     */\\n    event RemoteUpdateExecuted(uint256 indexed updateId);\\n\\n    /**\\n     * @notice Emitted when an executor status is set on the destination\\n     */\\n    event ExecutorStatusUpdated(address indexed executor, bool previousApproved, bool approved);\\n\\n    /**\\n     * @notice Emitted when a risk parameter config active status is updated\\n     */\\n    event ConfigActiveUpdated(\\n        bytes32 indexed updateTypeHash,\\n        string updateType,\\n        bool previousActive,\\n        bool indexed active\\n    );\\n\\n    /**\\n     * @notice Emitted when an update is rejected on the destination\\n     */\\n    event UpdateRejected(uint256 indexed updateId);\\n\\n    /**\\n     * @notice Emitted when the remote delay is set in the constructor\\n     */\\n    event RemoteDelaySet(uint256 remoteDelay);\\n\\n    /**\\n     * @notice Thrown when trying to operate on an update that was never registered\\n     */\\n    error UpdateNotFound();\\n\\n    /**\\n     * @notice Thrown when trying to execute an update before its unlock time\\n     */\\n    error UpdateNotUnlocked();\\n\\n    /**\\n     * @notice Thrown when config for an update type is not active or not configured\\n     */\\n    error ConfigNotActive();\\n\\n    /**\\n     * @notice Thrown when a bridged update has expired on the destination\\n     */\\n    error UpdateIsExpired();\\n\\n    /**\\n     * @notice Thrown when the debounce period hasn't passed for applying an update to a specific market / update type\\n     */\\n    error UpdateTooFrequent();\\n\\n    /**\\n     * @notice Thrown when an empty update type string is provided\\n     */\\n    error InvalidUpdateType();\\n\\n    /**\\n     * @notice Thrown when an update type is not supported\\n     */\\n    error UnsupportedUpdateType();\\n\\n    /**\\n     * @notice Thrown when a debounce value of 0 is set\\n     */\\n    error InvalidDebounce();\\n\\n    /**\\n     * @notice Thrown when an address is not a whitelisted executor\\n     */\\n    error NotAnExecutor();\\n\\n    /**\\n     * @notice Thrown when an invalid LayerZero endpoint ID is provided\\n     */\\n    error InvalidLayerZeroEid();\\n\\n    /**\\n     * @notice Thrown when an invalid remote delay is provided\\n     */\\n    error InvalidRemoteDelay();\\n\\n    /**\\n     * @notice Thrown when trying to set the same remote delay value\\n     */\\n    error RemoteDelayUnchanged();\\n\\n    /**\\n     * @notice Thrown when trying to renounce ownership\\n     */\\n    error RenounceOwnershipNotAllowed();\\n\\n    /**\\n     * @notice Thrown when trying to set the same config active status\\n     */\\n    error ConfigStatusUnchanged();\\n\\n    /**\\n     * @notice Thrown when trying to set the same executor whitelist status\\n     */\\n    error ExecutorStatusUnchanged();\\n\\n    function setRiskParameterConfig(string calldata updateType, address riskSteward, uint256 debounce) external;\\n\\n    function setConfigActive(string calldata updateType, bool active) external;\\n\\n    function setWhitelistedExecutor(address executor, bool approved) external;\\n\\n    function setRemoteDelay(uint256 newRemoteDelay) external;\\n\\n    function executeUpdate(uint256 updateId) external;\\n\\n    function rejectUpdate(uint256 updateId) external;\\n\\n    function getExecutableUpdates(\\n        string calldata updateType,\\n        address comptroller\\n    ) external view returns (uint256[] memory executableUpdates);\\n\\n    function getRiskParameterConfig(string calldata updateType) external view returns (RiskParamConfig memory);\\n\\n    function getRegisteredUpdate(\\n        string calldata updateType,\\n        address market\\n    ) external view returns (DestinationUpdate memory);\\n\\n    function getLastExecutedAt(string calldata updateType, address market) external view returns (uint256);\\n}\\n\",\"keccak256\":\"0xa925bdc043521f851b9cc539478290d0d94b94c4c15688ab24b4e75658467e35\",\"license\":\"BSD-3-Clause\"},\"contracts/RiskSteward/Interfaces/IRiskOracle.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity 0.8.25;\\n\\n/**\\n * @notice Struct representing a risk parameter update published by the Risk Oracle\\n * @param referenceId External reference ID, potentially linking to a document or off-chain data\\n * @param updateId Unique identifier for this specific update\\n * @param market Address of the market for which the parameter update applies\\n * @param updateType Classification of the update type for validation purposes (human-readable)\\n * @param updateTypeKey Keccak256 hash of updateType for efficient comparisons\\n * @param newValue Encoded new value of the risk parameter, flexible for various data types\\n * @param previousValue Previous value of the parameter for historical comparison\\n * @param timestamp Block timestamp when the update was published\\n * @param publisher Address of the account that published this update\\n * @param poolId Pool identifier for eMode-style collateral configuration (0 for regular markets)\\n * @param destLzEid LayerZero endpoint ID of the destination chain (0 for local execution)\\n * @param additionalData Additional metadata or data associated with the update\\n */\\nstruct RiskParameterUpdate {\\n    string referenceId;\\n    uint256 updateId;\\n    address market;\\n    string updateType;\\n    bytes32 updateTypeKey;\\n    bytes newValue;\\n    bytes previousValue;\\n    uint256 timestamp;\\n    address publisher;\\n    uint96 poolId;\\n    uint32 destLzEid;\\n    bytes additionalData;\\n}\\n\\n/**\\n * @title IRiskOracle\\n * @author Venus\\n * @notice Interface for Risk Oracle contract that manages and publishes risk parameter updates\\n */\\ninterface IRiskOracle {\\n    /// @notice Event emitted when a risk parameter update is published\\n    event UpdatePublished(\\n        string referenceId,\\n        uint256 indexed updateId,\\n        address indexed market,\\n        string indexed updateType,\\n        bytes newValue,\\n        bytes previousValue,\\n        uint256 timestamp,\\n        address publisher,\\n        bytes additionalData\\n    );\\n\\n    /// @notice Event emitted when a new authorized sender is added\\n    event AuthorizedSenderAdded(address indexed sender);\\n\\n    /// @notice Event emitted when an authorized sender is removed\\n    event AuthorizedSenderRemoved(address indexed sender);\\n\\n    /// @notice Event emitted when a new update type is added\\n    event UpdateTypeAdded(string indexed updateType);\\n\\n    /// @notice Event emitted when an update type's active status is changed\\n    event UpdateTypeActiveStatusChanged(string indexed updateType, bool previousActive, bool active);\\n\\n    /// @notice Thrown when sender is not authorized\\n    error SenderNotAuthorized();\\n\\n    /// @notice Thrown when sender is already authorized\\n    error SenderAlreadyAuthorized();\\n\\n    /// @notice Thrown when update type string is invalid\\n    error InvalidUpdateTypeString();\\n\\n    /// @notice Thrown when update type already exists\\n    error UpdateTypeAlreadyExists();\\n\\n    /// @notice Thrown when update type doesn't exist\\n    error UpdateTypeNotFound();\\n\\n    /// @notice Thrown when update type active status is already set to the desired value\\n    error UpdateTypeStatusUnchanged();\\n\\n    /// @notice Thrown when update type is not active\\n    error UpdateTypeNotActive();\\n\\n    /// @notice Thrown when no update is found\\n    error NoUpdateFound();\\n\\n    /// @notice Thrown when update ID is invalid\\n    error InvalidUpdateId();\\n\\n    /// @notice Thrown when array lengths don't match in bulk operations\\n    error ArrayLengthMismatch();\\n\\n    /// @notice Thrown when trying to renounce ownership\\n    error RenounceOwnershipNotAllowed();\\n\\n    /**\\n     * @notice Returns the update type string at the given index in the allUpdateTypes array\\n     * @param index The index in the allUpdateTypes array\\n     * @return The update type string at the specified index\\n     */\\n    function allUpdateTypes(uint256 index) external view returns (string memory);\\n\\n    /**\\n     * @notice Returns the total number of update types in the allUpdateTypes array\\n     * @return The length of the allUpdateTypes array\\n     */\\n    function allUpdateTypesLength() external view returns (uint256);\\n\\n    /**\\n     * @notice Returns all update types in the allUpdateTypes array\\n     * @return An array of all update type strings\\n     */\\n    function getAllUpdateTypes() external view returns (string[] memory);\\n\\n    /**\\n     * @notice Checks if a given update type is currently active\\n     * @param updateType The update type string to check\\n     * @return True if the update type is active, false otherwise\\n     */\\n    function getActiveUpdateTypes(string memory updateType) external view returns (bool);\\n\\n    /**\\n     * @notice Checks if a given update type is currently active\\n     * @param updateTypeKey The keccak256 hash of the update type string\\n     * @return True if the update type key is active, false otherwise\\n     */\\n    function activeUpdateTypes(bytes32 updateTypeKey) external view returns (bool);\\n\\n    /**\\n     * @notice Checks if an address is authorized to publish updates\\n     * @param sender The address to check for authorization\\n     * @return True if the address is authorized, false otherwise\\n     */\\n    function authorizedSenders(address sender) external view returns (bool);\\n\\n    /**\\n     * @notice Gets the latest update ID for a specific market and update type combination\\n     * @param updateTypeKey The keccak256 hash of the update type string\\n     * @param market The market address\\n     * @return The latest update ID for the given market and update type key, or 0 if none exists\\n     */\\n    function latestUpdateIdByMarketAndType(bytes32 updateTypeKey, address market) external view returns (uint256);\\n\\n    /**\\n     * @notice Returns the total number of updates that have been published\\n     * @return The current update counter value\\n     */\\n    function updateCounter() external view returns (uint256);\\n\\n    /**\\n     * @notice Fetches the most recent update for a specific parameter type in a specific market\\n     * @param updateType The update type identifier\\n     * @param market The market address\\n     * @return The most recent RiskParameterUpdate for the specified parameter and market\\n     * @custom:error NoUpdateFound Thrown if no update exists for the specified parameter and market\\n     */\\n    function getLatestUpdateByTypeAndMarket(\\n        string memory updateType,\\n        address market\\n    ) external view returns (RiskParameterUpdate memory);\\n\\n    /**\\n     * @notice Gets the latest update ID for a specific market and update type (string) combination\\n     * @param updateType The update type identifier\\n     * @param market The market address\\n     * @return The latest update ID for the given market and update type, or 0 if none exists\\n     */\\n    function getLatestUpdateIdByTypeAndMarket(string memory updateType, address market) external view returns (uint256);\\n\\n    /**\\n     * @notice Fetches the update for a provided update ID\\n     * @param updateId The unique update ID\\n     * @return The RiskParameterUpdate struct for the specified update ID\\n     * @custom:error InvalidUpdateId Thrown if updateId is 0 or greater than updateCounter\\n     */\\n    function getUpdateById(uint256 updateId) external view returns (RiskParameterUpdate memory);\\n\\n    /**\\n     * @notice Adds a new address to the list of authorized senders who can publish updates\\n     * @param sender Address to be authorized\\n     * @custom:error ZeroAddressNotAllowed Thrown if sender is the zero address\\n     * @custom:error SenderAlreadyAuthorized Thrown if sender is already authorized\\n     * @custom:error Unauthorized Thrown if caller is not allowed by AccessControlManager\\n     * @custom:event AuthorizedSenderAdded Emitted when sender is successfully added\\n     */\\n    function addAuthorizedSender(address sender) external;\\n\\n    /**\\n     * @notice Removes an address from the list of authorized senders\\n     * @param sender Address to be removed from authorization\\n     * @custom:error SenderNotAuthorized Thrown if sender is not currently authorized\\n     * @custom:error Unauthorized Thrown if caller is not allowed by AccessControlManager\\n     * @custom:event AuthorizedSenderRemoved Emitted when sender is successfully removed\\n     */\\n    function removeAuthorizedSender(address sender) external;\\n\\n    /**\\n     * @notice Adds a new update type to the list of authorized update types\\n     * @param newUpdateType New update type string to allow (must be non-empty and <= 64 characters)\\n     * @custom:error InvalidUpdateTypeString Thrown if update type string is empty or exceeds 64 characters\\n     * @custom:error UpdateTypeAlreadyExists Thrown if update type already exists\\n     * @custom:error Unauthorized Thrown if caller is not allowed by AccessControlManager\\n     * @custom:event UpdateTypeAdded Emitted when update type is successfully added\\n     */\\n    function addUpdateType(string memory newUpdateType) external;\\n\\n    /**\\n     * @notice Sets the active status of an existing update type\\n     * @param updateType The update type to set active status for\\n     * @param active True to activate the update type, false to deactivate it\\n     * @custom:error UpdateTypeNotFound Thrown if update type doesn't exist\\n     * @custom:error UpdateTypeStatusUnchanged Thrown if status is already set to the desired value\\n     * @custom:error Unauthorized Thrown if caller is not allowed by AccessControlManager\\n     * @custom:event UpdateTypeActiveStatusChanged Emitted when status is successfully changed\\n     */\\n    function setUpdateTypeActive(string memory updateType, bool active) external;\\n\\n    /**\\n     * @notice Publishes a new risk parameter update.\\n     * @param referenceId An external reference ID associated with the update\\n     * @param newValue The new value of the risk parameter being updated (encoded as bytes)\\n     * @param updateType Type of update performed, must be an active update type\\n     * @param market Address of the market for which the parameter update applies\\n     * @param poolId Pool identifier for eMode-style collateral configuration (0 for regular markets)\\n     * @param dstEid Destination endpoint ID for cross-chain routing\\n     * @param additionalData Additional data or metadata for the update\\n     * @custom:error SenderNotAuthorized Thrown if caller is not an authorized sender\\n     * @custom:error UpdateTypeNotActive Thrown if update type is not active\\n     * @custom:error ZeroAddressNotAllowed Thrown if market is the zero address\\n     * @custom:event UpdatePublished Emitted when the update is successfully published\\n     */\\n    function publishRiskParameterUpdate(\\n        string memory referenceId,\\n        bytes memory newValue,\\n        string memory updateType,\\n        address market,\\n        uint96 poolId,\\n        uint32 dstEid,\\n        bytes memory additionalData\\n    ) external;\\n\\n    /**\\n     * @notice Publishes multiple risk parameter updates in a single transaction.\\n     * @param referenceIds Array of external reference IDs, one for each update\\n     * @param newValues Array of new values for each update (encoded as bytes)\\n     * @param updateTypes Array of update types, all must be active update types\\n     * @param markets Array of market addresses for each update\\n     * @param poolIds Array of pool identifiers for eMode-style collateral configuration (0 for regular markets)\\n     * @param dstEid Array of destination endpoint IDs for cross-chain routing\\n     * @param additionalData Array of additional data for each update\\n     * @custom:error SenderNotAuthorized Thrown if caller is not an authorized sender\\n     * @custom:error ArrayLengthMismatch Thrown if all arrays don't have the same length\\n     * @custom:error UpdateTypeNotActive Thrown if any update type is not active\\n     * @custom:error ZeroAddressNotAllowed Thrown if any market is the zero address\\n     * @custom:event UpdatePublished Emitted for each successfully published update\\n     */\\n    function publishBulkRiskParameterUpdates(\\n        string[] memory referenceIds,\\n        bytes[] memory newValues,\\n        string[] memory updateTypes,\\n        address[] memory markets,\\n        uint96[] memory poolIds,\\n        uint32[] memory dstEid,\\n        bytes[] memory additionalData\\n    ) external;\\n}\\n\",\"keccak256\":\"0x8a30b030d5be3cefabf55d889d0a06447613a9ada5a917730b7ec833bda167cd\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"errors":{"ConfigNotActive()":[{"notice":"Thrown when config for an update type is not active or not configured"}],"ConfigStatusUnchanged()":[{"notice":"Thrown when trying to set the same config active status"}],"ExecutorStatusUnchanged()":[{"notice":"Thrown when trying to set the same executor whitelist status"}],"InvalidDebounce()":[{"notice":"Thrown when a debounce value of 0 is set"}],"InvalidLayerZeroEid()":[{"notice":"Thrown when an invalid LayerZero endpoint ID is provided"}],"InvalidRemoteDelay()":[{"notice":"Thrown when an invalid remote delay is provided"}],"InvalidUpdateType()":[{"notice":"Thrown when an empty update type string is provided"}],"NotAnExecutor()":[{"notice":"Thrown when an address is not a whitelisted executor"}],"RemoteDelayUnchanged()":[{"notice":"Thrown when trying to set the same remote delay value"}],"RenounceOwnershipNotAllowed()":[{"notice":"Thrown when trying to renounce ownership"}],"UnsupportedUpdateType()":[{"notice":"Thrown when an update type is not supported"}],"UpdateIsExpired()":[{"notice":"Thrown when a bridged update has expired on the destination"}],"UpdateNotFound()":[{"notice":"Thrown when trying to operate on an update that was never registered"}],"UpdateNotUnlocked()":[{"notice":"Thrown when trying to execute an update before its unlock time"}],"UpdateTooFrequent()":[{"notice":"Thrown when the debounce period hasn't passed for applying an update to a specific market / update type"}]},"events":{"ConfigActiveUpdated(bytes32,string,bool,bool)":{"notice":"Emitted when a risk parameter config active status is updated"},"DuplicateUpdateReceived(uint256,uint256,string,address)":{"notice":"Emitted when a duplicate bridged update (same updateId) is received."},"ExecutorStatusUpdated(address,bool,bool)":{"notice":"Emitted when an executor status is set on the destination"},"RegisteredPendingUpdateExist(uint256,uint256,string,address)":{"notice":"Emitted when a new bridged update arrives but a pending update is already registered for the same (updateType, market)."},"RemoteDelaySet(uint256)":{"notice":"Emitted when the remote delay is set in the constructor"},"RemoteUpdateExecuted(uint256)":{"notice":"Emitted when a bridged update is executed on the destination"},"RemoteUpdateRegistered(uint256,uint256,string,address)":{"notice":"Emitted when a bridged update is registered on the destination"},"RiskParameterConfigUpdated(bytes32,string,address,address,uint256,uint256,bool,bool)":{"notice":"Emitted when a risk parameter config is updated for an update type"},"UpdateRejected(uint256)":{"notice":"Emitted when an update is rejected on the destination"}},"kind":"user","methods":{},"version":1}}},"contracts/RiskSteward/Interfaces/IRiskOracle.sol":{"IRiskOracle":{"abi":[{"inputs":[],"name":"ArrayLengthMismatch","type":"error"},{"inputs":[],"name":"InvalidUpdateId","type":"error"},{"inputs":[],"name":"InvalidUpdateTypeString","type":"error"},{"inputs":[],"name":"NoUpdateFound","type":"error"},{"inputs":[],"name":"RenounceOwnershipNotAllowed","type":"error"},{"inputs":[],"name":"SenderAlreadyAuthorized","type":"error"},{"inputs":[],"name":"SenderNotAuthorized","type":"error"},{"inputs":[],"name":"UpdateTypeAlreadyExists","type":"error"},{"inputs":[],"name":"UpdateTypeNotActive","type":"error"},{"inputs":[],"name":"UpdateTypeNotFound","type":"error"},{"inputs":[],"name":"UpdateTypeStatusUnchanged","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"AuthorizedSenderAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"AuthorizedSenderRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"referenceId","type":"string"},{"indexed":true,"internalType":"uint256","name":"updateId","type":"uint256"},{"indexed":true,"internalType":"address","name":"market","type":"address"},{"indexed":true,"internalType":"string","name":"updateType","type":"string"},{"indexed":false,"internalType":"bytes","name":"newValue","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"previousValue","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"},{"indexed":false,"internalType":"address","name":"publisher","type":"address"},{"indexed":false,"internalType":"bytes","name":"additionalData","type":"bytes"}],"name":"UpdatePublished","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"string","name":"updateType","type":"string"},{"indexed":false,"internalType":"bool","name":"previousActive","type":"bool"},{"indexed":false,"internalType":"bool","name":"active","type":"bool"}],"name":"UpdateTypeActiveStatusChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"string","name":"updateType","type":"string"}],"name":"UpdateTypeAdded","type":"event"},{"inputs":[{"internalType":"bytes32","name":"updateTypeKey","type":"bytes32"}],"name":"activeUpdateTypes","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"addAuthorizedSender","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newUpdateType","type":"string"}],"name":"addUpdateType","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"allUpdateTypes","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"allUpdateTypesLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"authorizedSenders","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"updateType","type":"string"}],"name":"getActiveUpdateTypes","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAllUpdateTypes","outputs":[{"internalType":"string[]","name":"","type":"string[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"updateType","type":"string"},{"internalType":"address","name":"market","type":"address"}],"name":"getLatestUpdateByTypeAndMarket","outputs":[{"components":[{"internalType":"string","name":"referenceId","type":"string"},{"internalType":"uint256","name":"updateId","type":"uint256"},{"internalType":"address","name":"market","type":"address"},{"internalType":"string","name":"updateType","type":"string"},{"internalType":"bytes32","name":"updateTypeKey","type":"bytes32"},{"internalType":"bytes","name":"newValue","type":"bytes"},{"internalType":"bytes","name":"previousValue","type":"bytes"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"address","name":"publisher","type":"address"},{"internalType":"uint96","name":"poolId","type":"uint96"},{"internalType":"uint32","name":"destLzEid","type":"uint32"},{"internalType":"bytes","name":"additionalData","type":"bytes"}],"internalType":"struct RiskParameterUpdate","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"updateType","type":"string"},{"internalType":"address","name":"market","type":"address"}],"name":"getLatestUpdateIdByTypeAndMarket","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"updateId","type":"uint256"}],"name":"getUpdateById","outputs":[{"components":[{"internalType":"string","name":"referenceId","type":"string"},{"internalType":"uint256","name":"updateId","type":"uint256"},{"internalType":"address","name":"market","type":"address"},{"internalType":"string","name":"updateType","type":"string"},{"internalType":"bytes32","name":"updateTypeKey","type":"bytes32"},{"internalType":"bytes","name":"newValue","type":"bytes"},{"internalType":"bytes","name":"previousValue","type":"bytes"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"address","name":"publisher","type":"address"},{"internalType":"uint96","name":"poolId","type":"uint96"},{"internalType":"uint32","name":"destLzEid","type":"uint32"},{"internalType":"bytes","name":"additionalData","type":"bytes"}],"internalType":"struct RiskParameterUpdate","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"updateTypeKey","type":"bytes32"},{"internalType":"address","name":"market","type":"address"}],"name":"latestUpdateIdByMarketAndType","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string[]","name":"referenceIds","type":"string[]"},{"internalType":"bytes[]","name":"newValues","type":"bytes[]"},{"internalType":"string[]","name":"updateTypes","type":"string[]"},{"internalType":"address[]","name":"markets","type":"address[]"},{"internalType":"uint96[]","name":"poolIds","type":"uint96[]"},{"internalType":"uint32[]","name":"dstEid","type":"uint32[]"},{"internalType":"bytes[]","name":"additionalData","type":"bytes[]"}],"name":"publishBulkRiskParameterUpdates","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"referenceId","type":"string"},{"internalType":"bytes","name":"newValue","type":"bytes"},{"internalType":"string","name":"updateType","type":"string"},{"internalType":"address","name":"market","type":"address"},{"internalType":"uint96","name":"poolId","type":"uint96"},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes","name":"additionalData","type":"bytes"}],"name":"publishRiskParameterUpdate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"removeAuthorizedSender","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"updateType","type":"string"},{"internalType":"bool","name":"active","type":"bool"}],"name":"setUpdateTypeActive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"updateCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"devdoc":{"author":"Venus","kind":"dev","methods":{"activeUpdateTypes(bytes32)":{"params":{"updateTypeKey":"The keccak256 hash of the update type string"},"returns":{"_0":"True if the update type key is active, false otherwise"}},"addAuthorizedSender(address)":{"custom:error":"ZeroAddressNotAllowed Thrown if sender is the zero addressSenderAlreadyAuthorized Thrown if sender is already authorizedUnauthorized Thrown if caller is not allowed by AccessControlManager","custom:event":"AuthorizedSenderAdded Emitted when sender is successfully added","params":{"sender":"Address to be authorized"}},"addUpdateType(string)":{"custom:error":"InvalidUpdateTypeString Thrown if update type string is empty or exceeds 64 charactersUpdateTypeAlreadyExists Thrown if update type already existsUnauthorized Thrown if caller is not allowed by AccessControlManager","custom:event":"UpdateTypeAdded Emitted when update type is successfully added","params":{"newUpdateType":"New update type string to allow (must be non-empty and <= 64 characters)"}},"allUpdateTypes(uint256)":{"params":{"index":"The index in the allUpdateTypes array"},"returns":{"_0":"The update type string at the specified index"}},"allUpdateTypesLength()":{"returns":{"_0":"The length of the allUpdateTypes array"}},"authorizedSenders(address)":{"params":{"sender":"The address to check for authorization"},"returns":{"_0":"True if the address is authorized, false otherwise"}},"getActiveUpdateTypes(string)":{"params":{"updateType":"The update type string to check"},"returns":{"_0":"True if the update type is active, false otherwise"}},"getAllUpdateTypes()":{"returns":{"_0":"An array of all update type strings"}},"getLatestUpdateByTypeAndMarket(string,address)":{"custom:error":"NoUpdateFound Thrown if no update exists for the specified parameter and market","params":{"market":"The market address","updateType":"The update type identifier"},"returns":{"_0":"The most recent RiskParameterUpdate for the specified parameter and market"}},"getLatestUpdateIdByTypeAndMarket(string,address)":{"params":{"market":"The market address","updateType":"The update type identifier"},"returns":{"_0":"The latest update ID for the given market and update type, or 0 if none exists"}},"getUpdateById(uint256)":{"custom:error":"InvalidUpdateId Thrown if updateId is 0 or greater than updateCounter","params":{"updateId":"The unique update ID"},"returns":{"_0":"The RiskParameterUpdate struct for the specified update ID"}},"latestUpdateIdByMarketAndType(bytes32,address)":{"params":{"market":"The market address","updateTypeKey":"The keccak256 hash of the update type string"},"returns":{"_0":"The latest update ID for the given market and update type key, or 0 if none exists"}},"publishBulkRiskParameterUpdates(string[],bytes[],string[],address[],uint96[],uint32[],bytes[])":{"custom:error":"SenderNotAuthorized Thrown if caller is not an authorized senderArrayLengthMismatch Thrown if all arrays don't have the same lengthUpdateTypeNotActive Thrown if any update type is not activeZeroAddressNotAllowed Thrown if any market is the zero address","custom:event":"UpdatePublished Emitted for each successfully published update","params":{"additionalData":"Array of additional data for each update","dstEid":"Array of destination endpoint IDs for cross-chain routing","markets":"Array of market addresses for each update","newValues":"Array of new values for each update (encoded as bytes)","poolIds":"Array of pool identifiers for eMode-style collateral configuration (0 for regular markets)","referenceIds":"Array of external reference IDs, one for each update","updateTypes":"Array of update types, all must be active update types"}},"publishRiskParameterUpdate(string,bytes,string,address,uint96,uint32,bytes)":{"custom:error":"SenderNotAuthorized Thrown if caller is not an authorized senderUpdateTypeNotActive Thrown if update type is not activeZeroAddressNotAllowed Thrown if market is the zero address","custom:event":"UpdatePublished Emitted when the update is successfully published","params":{"additionalData":"Additional data or metadata for the update","dstEid":"Destination endpoint ID for cross-chain routing","market":"Address of the market for which the parameter update applies","newValue":"The new value of the risk parameter being updated (encoded as bytes)","poolId":"Pool identifier for eMode-style collateral configuration (0 for regular markets)","referenceId":"An external reference ID associated with the update","updateType":"Type of update performed, must be an active update type"}},"removeAuthorizedSender(address)":{"custom:error":"SenderNotAuthorized Thrown if sender is not currently authorizedUnauthorized Thrown if caller is not allowed by AccessControlManager","custom:event":"AuthorizedSenderRemoved Emitted when sender is successfully removed","params":{"sender":"Address to be removed from authorization"}},"setUpdateTypeActive(string,bool)":{"custom:error":"UpdateTypeNotFound Thrown if update type doesn't existUpdateTypeStatusUnchanged Thrown if status is already set to the desired valueUnauthorized Thrown if caller is not allowed by AccessControlManager","custom:event":"UpdateTypeActiveStatusChanged Emitted when status is successfully changed","params":{"active":"True to activate the update type, false to deactivate it","updateType":"The update type to set active status for"}},"updateCounter()":{"returns":{"_0":"The current update counter value"}}},"title":"IRiskOracle","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"activeUpdateTypes(bytes32)":"157b1225","addAuthorizedSender(address)":"fa7229ee","addUpdateType(string)":"77abc9bd","allUpdateTypes(uint256)":"c6b8ab42","allUpdateTypesLength()":"592d3733","authorizedSenders(address)":"6f324967","getActiveUpdateTypes(string)":"986576fa","getAllUpdateTypes()":"c030ce7b","getLatestUpdateByTypeAndMarket(string,address)":"f660fe69","getLatestUpdateIdByTypeAndMarket(string,address)":"34496b5a","getUpdateById(uint256)":"37759b9a","latestUpdateIdByMarketAndType(bytes32,address)":"43b62b26","publishBulkRiskParameterUpdates(string[],bytes[],string[],address[],uint96[],uint32[],bytes[])":"c4e1a280","publishRiskParameterUpdate(string,bytes,string,address,uint96,uint32,bytes)":"87d7f21f","removeAuthorizedSender(address)":"cbd57967","setUpdateTypeActive(string,bool)":"ec1930b0","updateCounter()":"1687fe8e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ArrayLengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidUpdateId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidUpdateTypeString\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoUpdateFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RenounceOwnershipNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SenderAlreadyAuthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SenderNotAuthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpdateTypeAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpdateTypeNotActive\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpdateTypeNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpdateTypeStatusUnchanged\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"AuthorizedSenderAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"AuthorizedSenderRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"referenceId\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"newValue\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"previousValue\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"additionalData\",\"type\":\"bytes\"}],\"name\":\"UpdatePublished\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"previousActive\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"}],\"name\":\"UpdateTypeActiveStatusChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"}],\"name\":\"UpdateTypeAdded\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"updateTypeKey\",\"type\":\"bytes32\"}],\"name\":\"activeUpdateTypes\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"addAuthorizedSender\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"newUpdateType\",\"type\":\"string\"}],\"name\":\"addUpdateType\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"allUpdateTypes\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allUpdateTypesLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"authorizedSenders\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"}],\"name\":\"getActiveUpdateTypes\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllUpdateTypes\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"getLatestUpdateByTypeAndMarket\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"referenceId\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"updateTypeKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"newValue\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"previousValue\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"poolId\",\"type\":\"uint96\"},{\"internalType\":\"uint32\",\"name\":\"destLzEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"additionalData\",\"type\":\"bytes\"}],\"internalType\":\"struct RiskParameterUpdate\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"getLatestUpdateIdByTypeAndMarket\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"}],\"name\":\"getUpdateById\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"referenceId\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"updateTypeKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"newValue\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"previousValue\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"poolId\",\"type\":\"uint96\"},{\"internalType\":\"uint32\",\"name\":\"destLzEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"additionalData\",\"type\":\"bytes\"}],\"internalType\":\"struct RiskParameterUpdate\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"updateTypeKey\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"latestUpdateIdByMarketAndType\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"referenceIds\",\"type\":\"string[]\"},{\"internalType\":\"bytes[]\",\"name\":\"newValues\",\"type\":\"bytes[]\"},{\"internalType\":\"string[]\",\"name\":\"updateTypes\",\"type\":\"string[]\"},{\"internalType\":\"address[]\",\"name\":\"markets\",\"type\":\"address[]\"},{\"internalType\":\"uint96[]\",\"name\":\"poolIds\",\"type\":\"uint96[]\"},{\"internalType\":\"uint32[]\",\"name\":\"dstEid\",\"type\":\"uint32[]\"},{\"internalType\":\"bytes[]\",\"name\":\"additionalData\",\"type\":\"bytes[]\"}],\"name\":\"publishBulkRiskParameterUpdates\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"referenceId\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"newValue\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"poolId\",\"type\":\"uint96\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"additionalData\",\"type\":\"bytes\"}],\"name\":\"publishRiskParameterUpdate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"removeAuthorizedSender\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"}],\"name\":\"setUpdateTypeActive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"updateCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"kind\":\"dev\",\"methods\":{\"activeUpdateTypes(bytes32)\":{\"params\":{\"updateTypeKey\":\"The keccak256 hash of the update type string\"},\"returns\":{\"_0\":\"True if the update type key is active, false otherwise\"}},\"addAuthorizedSender(address)\":{\"custom:error\":\"ZeroAddressNotAllowed Thrown if sender is the zero addressSenderAlreadyAuthorized Thrown if sender is already authorizedUnauthorized Thrown if caller is not allowed by AccessControlManager\",\"custom:event\":\"AuthorizedSenderAdded Emitted when sender is successfully added\",\"params\":{\"sender\":\"Address to be authorized\"}},\"addUpdateType(string)\":{\"custom:error\":\"InvalidUpdateTypeString Thrown if update type string is empty or exceeds 64 charactersUpdateTypeAlreadyExists Thrown if update type already existsUnauthorized Thrown if caller is not allowed by AccessControlManager\",\"custom:event\":\"UpdateTypeAdded Emitted when update type is successfully added\",\"params\":{\"newUpdateType\":\"New update type string to allow (must be non-empty and <= 64 characters)\"}},\"allUpdateTypes(uint256)\":{\"params\":{\"index\":\"The index in the allUpdateTypes array\"},\"returns\":{\"_0\":\"The update type string at the specified index\"}},\"allUpdateTypesLength()\":{\"returns\":{\"_0\":\"The length of the allUpdateTypes array\"}},\"authorizedSenders(address)\":{\"params\":{\"sender\":\"The address to check for authorization\"},\"returns\":{\"_0\":\"True if the address is authorized, false otherwise\"}},\"getActiveUpdateTypes(string)\":{\"params\":{\"updateType\":\"The update type string to check\"},\"returns\":{\"_0\":\"True if the update type is active, false otherwise\"}},\"getAllUpdateTypes()\":{\"returns\":{\"_0\":\"An array of all update type strings\"}},\"getLatestUpdateByTypeAndMarket(string,address)\":{\"custom:error\":\"NoUpdateFound Thrown if no update exists for the specified parameter and market\",\"params\":{\"market\":\"The market address\",\"updateType\":\"The update type identifier\"},\"returns\":{\"_0\":\"The most recent RiskParameterUpdate for the specified parameter and market\"}},\"getLatestUpdateIdByTypeAndMarket(string,address)\":{\"params\":{\"market\":\"The market address\",\"updateType\":\"The update type identifier\"},\"returns\":{\"_0\":\"The latest update ID for the given market and update type, or 0 if none exists\"}},\"getUpdateById(uint256)\":{\"custom:error\":\"InvalidUpdateId Thrown if updateId is 0 or greater than updateCounter\",\"params\":{\"updateId\":\"The unique update ID\"},\"returns\":{\"_0\":\"The RiskParameterUpdate struct for the specified update ID\"}},\"latestUpdateIdByMarketAndType(bytes32,address)\":{\"params\":{\"market\":\"The market address\",\"updateTypeKey\":\"The keccak256 hash of the update type string\"},\"returns\":{\"_0\":\"The latest update ID for the given market and update type key, or 0 if none exists\"}},\"publishBulkRiskParameterUpdates(string[],bytes[],string[],address[],uint96[],uint32[],bytes[])\":{\"custom:error\":\"SenderNotAuthorized Thrown if caller is not an authorized senderArrayLengthMismatch Thrown if all arrays don't have the same lengthUpdateTypeNotActive Thrown if any update type is not activeZeroAddressNotAllowed Thrown if any market is the zero address\",\"custom:event\":\"UpdatePublished Emitted for each successfully published update\",\"params\":{\"additionalData\":\"Array of additional data for each update\",\"dstEid\":\"Array of destination endpoint IDs for cross-chain routing\",\"markets\":\"Array of market addresses for each update\",\"newValues\":\"Array of new values for each update (encoded as bytes)\",\"poolIds\":\"Array of pool identifiers for eMode-style collateral configuration (0 for regular markets)\",\"referenceIds\":\"Array of external reference IDs, one for each update\",\"updateTypes\":\"Array of update types, all must be active update types\"}},\"publishRiskParameterUpdate(string,bytes,string,address,uint96,uint32,bytes)\":{\"custom:error\":\"SenderNotAuthorized Thrown if caller is not an authorized senderUpdateTypeNotActive Thrown if update type is not activeZeroAddressNotAllowed Thrown if market is the zero address\",\"custom:event\":\"UpdatePublished Emitted when the update is successfully published\",\"params\":{\"additionalData\":\"Additional data or metadata for the update\",\"dstEid\":\"Destination endpoint ID for cross-chain routing\",\"market\":\"Address of the market for which the parameter update applies\",\"newValue\":\"The new value of the risk parameter being updated (encoded as bytes)\",\"poolId\":\"Pool identifier for eMode-style collateral configuration (0 for regular markets)\",\"referenceId\":\"An external reference ID associated with the update\",\"updateType\":\"Type of update performed, must be an active update type\"}},\"removeAuthorizedSender(address)\":{\"custom:error\":\"SenderNotAuthorized Thrown if sender is not currently authorizedUnauthorized Thrown if caller is not allowed by AccessControlManager\",\"custom:event\":\"AuthorizedSenderRemoved Emitted when sender is successfully removed\",\"params\":{\"sender\":\"Address to be removed from authorization\"}},\"setUpdateTypeActive(string,bool)\":{\"custom:error\":\"UpdateTypeNotFound Thrown if update type doesn't existUpdateTypeStatusUnchanged Thrown if status is already set to the desired valueUnauthorized Thrown if caller is not allowed by AccessControlManager\",\"custom:event\":\"UpdateTypeActiveStatusChanged Emitted when status is successfully changed\",\"params\":{\"active\":\"True to activate the update type, false to deactivate it\",\"updateType\":\"The update type to set active status for\"}},\"updateCounter()\":{\"returns\":{\"_0\":\"The current update counter value\"}}},\"title\":\"IRiskOracle\",\"version\":1},\"userdoc\":{\"errors\":{\"ArrayLengthMismatch()\":[{\"notice\":\"Thrown when array lengths don't match in bulk operations\"}],\"InvalidUpdateId()\":[{\"notice\":\"Thrown when update ID is invalid\"}],\"InvalidUpdateTypeString()\":[{\"notice\":\"Thrown when update type string is invalid\"}],\"NoUpdateFound()\":[{\"notice\":\"Thrown when no update is found\"}],\"RenounceOwnershipNotAllowed()\":[{\"notice\":\"Thrown when trying to renounce ownership\"}],\"SenderAlreadyAuthorized()\":[{\"notice\":\"Thrown when sender is already authorized\"}],\"SenderNotAuthorized()\":[{\"notice\":\"Thrown when sender is not authorized\"}],\"UpdateTypeAlreadyExists()\":[{\"notice\":\"Thrown when update type already exists\"}],\"UpdateTypeNotActive()\":[{\"notice\":\"Thrown when update type is not active\"}],\"UpdateTypeNotFound()\":[{\"notice\":\"Thrown when update type doesn't exist\"}],\"UpdateTypeStatusUnchanged()\":[{\"notice\":\"Thrown when update type active status is already set to the desired value\"}]},\"events\":{\"AuthorizedSenderAdded(address)\":{\"notice\":\"Event emitted when a new authorized sender is added\"},\"AuthorizedSenderRemoved(address)\":{\"notice\":\"Event emitted when an authorized sender is removed\"},\"UpdatePublished(string,uint256,address,string,bytes,bytes,uint256,address,bytes)\":{\"notice\":\"Event emitted when a risk parameter update is published\"},\"UpdateTypeActiveStatusChanged(string,bool,bool)\":{\"notice\":\"Event emitted when an update type's active status is changed\"},\"UpdateTypeAdded(string)\":{\"notice\":\"Event emitted when a new update type is added\"}},\"kind\":\"user\",\"methods\":{\"activeUpdateTypes(bytes32)\":{\"notice\":\"Checks if a given update type is currently active\"},\"addAuthorizedSender(address)\":{\"notice\":\"Adds a new address to the list of authorized senders who can publish updates\"},\"addUpdateType(string)\":{\"notice\":\"Adds a new update type to the list of authorized update types\"},\"allUpdateTypes(uint256)\":{\"notice\":\"Returns the update type string at the given index in the allUpdateTypes array\"},\"allUpdateTypesLength()\":{\"notice\":\"Returns the total number of update types in the allUpdateTypes array\"},\"authorizedSenders(address)\":{\"notice\":\"Checks if an address is authorized to publish updates\"},\"getActiveUpdateTypes(string)\":{\"notice\":\"Checks if a given update type is currently active\"},\"getAllUpdateTypes()\":{\"notice\":\"Returns all update types in the allUpdateTypes array\"},\"getLatestUpdateByTypeAndMarket(string,address)\":{\"notice\":\"Fetches the most recent update for a specific parameter type in a specific market\"},\"getLatestUpdateIdByTypeAndMarket(string,address)\":{\"notice\":\"Gets the latest update ID for a specific market and update type (string) combination\"},\"getUpdateById(uint256)\":{\"notice\":\"Fetches the update for a provided update ID\"},\"latestUpdateIdByMarketAndType(bytes32,address)\":{\"notice\":\"Gets the latest update ID for a specific market and update type combination\"},\"publishBulkRiskParameterUpdates(string[],bytes[],string[],address[],uint96[],uint32[],bytes[])\":{\"notice\":\"Publishes multiple risk parameter updates in a single transaction.\"},\"publishRiskParameterUpdate(string,bytes,string,address,uint96,uint32,bytes)\":{\"notice\":\"Publishes a new risk parameter update.\"},\"removeAuthorizedSender(address)\":{\"notice\":\"Removes an address from the list of authorized senders\"},\"setUpdateTypeActive(string,bool)\":{\"notice\":\"Sets the active status of an existing update type\"},\"updateCounter()\":{\"notice\":\"Returns the total number of updates that have been published\"}},\"notice\":\"Interface for Risk Oracle contract that manages and publishes risk parameter updates\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/RiskSteward/Interfaces/IRiskOracle.sol\":\"IRiskOracle\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"contracts/RiskSteward/Interfaces/IRiskOracle.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity 0.8.25;\\n\\n/**\\n * @notice Struct representing a risk parameter update published by the Risk Oracle\\n * @param referenceId External reference ID, potentially linking to a document or off-chain data\\n * @param updateId Unique identifier for this specific update\\n * @param market Address of the market for which the parameter update applies\\n * @param updateType Classification of the update type for validation purposes (human-readable)\\n * @param updateTypeKey Keccak256 hash of updateType for efficient comparisons\\n * @param newValue Encoded new value of the risk parameter, flexible for various data types\\n * @param previousValue Previous value of the parameter for historical comparison\\n * @param timestamp Block timestamp when the update was published\\n * @param publisher Address of the account that published this update\\n * @param poolId Pool identifier for eMode-style collateral configuration (0 for regular markets)\\n * @param destLzEid LayerZero endpoint ID of the destination chain (0 for local execution)\\n * @param additionalData Additional metadata or data associated with the update\\n */\\nstruct RiskParameterUpdate {\\n    string referenceId;\\n    uint256 updateId;\\n    address market;\\n    string updateType;\\n    bytes32 updateTypeKey;\\n    bytes newValue;\\n    bytes previousValue;\\n    uint256 timestamp;\\n    address publisher;\\n    uint96 poolId;\\n    uint32 destLzEid;\\n    bytes additionalData;\\n}\\n\\n/**\\n * @title IRiskOracle\\n * @author Venus\\n * @notice Interface for Risk Oracle contract that manages and publishes risk parameter updates\\n */\\ninterface IRiskOracle {\\n    /// @notice Event emitted when a risk parameter update is published\\n    event UpdatePublished(\\n        string referenceId,\\n        uint256 indexed updateId,\\n        address indexed market,\\n        string indexed updateType,\\n        bytes newValue,\\n        bytes previousValue,\\n        uint256 timestamp,\\n        address publisher,\\n        bytes additionalData\\n    );\\n\\n    /// @notice Event emitted when a new authorized sender is added\\n    event AuthorizedSenderAdded(address indexed sender);\\n\\n    /// @notice Event emitted when an authorized sender is removed\\n    event AuthorizedSenderRemoved(address indexed sender);\\n\\n    /// @notice Event emitted when a new update type is added\\n    event UpdateTypeAdded(string indexed updateType);\\n\\n    /// @notice Event emitted when an update type's active status is changed\\n    event UpdateTypeActiveStatusChanged(string indexed updateType, bool previousActive, bool active);\\n\\n    /// @notice Thrown when sender is not authorized\\n    error SenderNotAuthorized();\\n\\n    /// @notice Thrown when sender is already authorized\\n    error SenderAlreadyAuthorized();\\n\\n    /// @notice Thrown when update type string is invalid\\n    error InvalidUpdateTypeString();\\n\\n    /// @notice Thrown when update type already exists\\n    error UpdateTypeAlreadyExists();\\n\\n    /// @notice Thrown when update type doesn't exist\\n    error UpdateTypeNotFound();\\n\\n    /// @notice Thrown when update type active status is already set to the desired value\\n    error UpdateTypeStatusUnchanged();\\n\\n    /// @notice Thrown when update type is not active\\n    error UpdateTypeNotActive();\\n\\n    /// @notice Thrown when no update is found\\n    error NoUpdateFound();\\n\\n    /// @notice Thrown when update ID is invalid\\n    error InvalidUpdateId();\\n\\n    /// @notice Thrown when array lengths don't match in bulk operations\\n    error ArrayLengthMismatch();\\n\\n    /// @notice Thrown when trying to renounce ownership\\n    error RenounceOwnershipNotAllowed();\\n\\n    /**\\n     * @notice Returns the update type string at the given index in the allUpdateTypes array\\n     * @param index The index in the allUpdateTypes array\\n     * @return The update type string at the specified index\\n     */\\n    function allUpdateTypes(uint256 index) external view returns (string memory);\\n\\n    /**\\n     * @notice Returns the total number of update types in the allUpdateTypes array\\n     * @return The length of the allUpdateTypes array\\n     */\\n    function allUpdateTypesLength() external view returns (uint256);\\n\\n    /**\\n     * @notice Returns all update types in the allUpdateTypes array\\n     * @return An array of all update type strings\\n     */\\n    function getAllUpdateTypes() external view returns (string[] memory);\\n\\n    /**\\n     * @notice Checks if a given update type is currently active\\n     * @param updateType The update type string to check\\n     * @return True if the update type is active, false otherwise\\n     */\\n    function getActiveUpdateTypes(string memory updateType) external view returns (bool);\\n\\n    /**\\n     * @notice Checks if a given update type is currently active\\n     * @param updateTypeKey The keccak256 hash of the update type string\\n     * @return True if the update type key is active, false otherwise\\n     */\\n    function activeUpdateTypes(bytes32 updateTypeKey) external view returns (bool);\\n\\n    /**\\n     * @notice Checks if an address is authorized to publish updates\\n     * @param sender The address to check for authorization\\n     * @return True if the address is authorized, false otherwise\\n     */\\n    function authorizedSenders(address sender) external view returns (bool);\\n\\n    /**\\n     * @notice Gets the latest update ID for a specific market and update type combination\\n     * @param updateTypeKey The keccak256 hash of the update type string\\n     * @param market The market address\\n     * @return The latest update ID for the given market and update type key, or 0 if none exists\\n     */\\n    function latestUpdateIdByMarketAndType(bytes32 updateTypeKey, address market) external view returns (uint256);\\n\\n    /**\\n     * @notice Returns the total number of updates that have been published\\n     * @return The current update counter value\\n     */\\n    function updateCounter() external view returns (uint256);\\n\\n    /**\\n     * @notice Fetches the most recent update for a specific parameter type in a specific market\\n     * @param updateType The update type identifier\\n     * @param market The market address\\n     * @return The most recent RiskParameterUpdate for the specified parameter and market\\n     * @custom:error NoUpdateFound Thrown if no update exists for the specified parameter and market\\n     */\\n    function getLatestUpdateByTypeAndMarket(\\n        string memory updateType,\\n        address market\\n    ) external view returns (RiskParameterUpdate memory);\\n\\n    /**\\n     * @notice Gets the latest update ID for a specific market and update type (string) combination\\n     * @param updateType The update type identifier\\n     * @param market The market address\\n     * @return The latest update ID for the given market and update type, or 0 if none exists\\n     */\\n    function getLatestUpdateIdByTypeAndMarket(string memory updateType, address market) external view returns (uint256);\\n\\n    /**\\n     * @notice Fetches the update for a provided update ID\\n     * @param updateId The unique update ID\\n     * @return The RiskParameterUpdate struct for the specified update ID\\n     * @custom:error InvalidUpdateId Thrown if updateId is 0 or greater than updateCounter\\n     */\\n    function getUpdateById(uint256 updateId) external view returns (RiskParameterUpdate memory);\\n\\n    /**\\n     * @notice Adds a new address to the list of authorized senders who can publish updates\\n     * @param sender Address to be authorized\\n     * @custom:error ZeroAddressNotAllowed Thrown if sender is the zero address\\n     * @custom:error SenderAlreadyAuthorized Thrown if sender is already authorized\\n     * @custom:error Unauthorized Thrown if caller is not allowed by AccessControlManager\\n     * @custom:event AuthorizedSenderAdded Emitted when sender is successfully added\\n     */\\n    function addAuthorizedSender(address sender) external;\\n\\n    /**\\n     * @notice Removes an address from the list of authorized senders\\n     * @param sender Address to be removed from authorization\\n     * @custom:error SenderNotAuthorized Thrown if sender is not currently authorized\\n     * @custom:error Unauthorized Thrown if caller is not allowed by AccessControlManager\\n     * @custom:event AuthorizedSenderRemoved Emitted when sender is successfully removed\\n     */\\n    function removeAuthorizedSender(address sender) external;\\n\\n    /**\\n     * @notice Adds a new update type to the list of authorized update types\\n     * @param newUpdateType New update type string to allow (must be non-empty and <= 64 characters)\\n     * @custom:error InvalidUpdateTypeString Thrown if update type string is empty or exceeds 64 characters\\n     * @custom:error UpdateTypeAlreadyExists Thrown if update type already exists\\n     * @custom:error Unauthorized Thrown if caller is not allowed by AccessControlManager\\n     * @custom:event UpdateTypeAdded Emitted when update type is successfully added\\n     */\\n    function addUpdateType(string memory newUpdateType) external;\\n\\n    /**\\n     * @notice Sets the active status of an existing update type\\n     * @param updateType The update type to set active status for\\n     * @param active True to activate the update type, false to deactivate it\\n     * @custom:error UpdateTypeNotFound Thrown if update type doesn't exist\\n     * @custom:error UpdateTypeStatusUnchanged Thrown if status is already set to the desired value\\n     * @custom:error Unauthorized Thrown if caller is not allowed by AccessControlManager\\n     * @custom:event UpdateTypeActiveStatusChanged Emitted when status is successfully changed\\n     */\\n    function setUpdateTypeActive(string memory updateType, bool active) external;\\n\\n    /**\\n     * @notice Publishes a new risk parameter update.\\n     * @param referenceId An external reference ID associated with the update\\n     * @param newValue The new value of the risk parameter being updated (encoded as bytes)\\n     * @param updateType Type of update performed, must be an active update type\\n     * @param market Address of the market for which the parameter update applies\\n     * @param poolId Pool identifier for eMode-style collateral configuration (0 for regular markets)\\n     * @param dstEid Destination endpoint ID for cross-chain routing\\n     * @param additionalData Additional data or metadata for the update\\n     * @custom:error SenderNotAuthorized Thrown if caller is not an authorized sender\\n     * @custom:error UpdateTypeNotActive Thrown if update type is not active\\n     * @custom:error ZeroAddressNotAllowed Thrown if market is the zero address\\n     * @custom:event UpdatePublished Emitted when the update is successfully published\\n     */\\n    function publishRiskParameterUpdate(\\n        string memory referenceId,\\n        bytes memory newValue,\\n        string memory updateType,\\n        address market,\\n        uint96 poolId,\\n        uint32 dstEid,\\n        bytes memory additionalData\\n    ) external;\\n\\n    /**\\n     * @notice Publishes multiple risk parameter updates in a single transaction.\\n     * @param referenceIds Array of external reference IDs, one for each update\\n     * @param newValues Array of new values for each update (encoded as bytes)\\n     * @param updateTypes Array of update types, all must be active update types\\n     * @param markets Array of market addresses for each update\\n     * @param poolIds Array of pool identifiers for eMode-style collateral configuration (0 for regular markets)\\n     * @param dstEid Array of destination endpoint IDs for cross-chain routing\\n     * @param additionalData Array of additional data for each update\\n     * @custom:error SenderNotAuthorized Thrown if caller is not an authorized sender\\n     * @custom:error ArrayLengthMismatch Thrown if all arrays don't have the same length\\n     * @custom:error UpdateTypeNotActive Thrown if any update type is not active\\n     * @custom:error ZeroAddressNotAllowed Thrown if any market is the zero address\\n     * @custom:event UpdatePublished Emitted for each successfully published update\\n     */\\n    function publishBulkRiskParameterUpdates(\\n        string[] memory referenceIds,\\n        bytes[] memory newValues,\\n        string[] memory updateTypes,\\n        address[] memory markets,\\n        uint96[] memory poolIds,\\n        uint32[] memory dstEid,\\n        bytes[] memory additionalData\\n    ) external;\\n}\\n\",\"keccak256\":\"0x8a30b030d5be3cefabf55d889d0a06447613a9ada5a917730b7ec833bda167cd\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"errors":{"ArrayLengthMismatch()":[{"notice":"Thrown when array lengths don't match in bulk operations"}],"InvalidUpdateId()":[{"notice":"Thrown when update ID is invalid"}],"InvalidUpdateTypeString()":[{"notice":"Thrown when update type string is invalid"}],"NoUpdateFound()":[{"notice":"Thrown when no update is found"}],"RenounceOwnershipNotAllowed()":[{"notice":"Thrown when trying to renounce ownership"}],"SenderAlreadyAuthorized()":[{"notice":"Thrown when sender is already authorized"}],"SenderNotAuthorized()":[{"notice":"Thrown when sender is not authorized"}],"UpdateTypeAlreadyExists()":[{"notice":"Thrown when update type already exists"}],"UpdateTypeNotActive()":[{"notice":"Thrown when update type is not active"}],"UpdateTypeNotFound()":[{"notice":"Thrown when update type doesn't exist"}],"UpdateTypeStatusUnchanged()":[{"notice":"Thrown when update type active status is already set to the desired value"}]},"events":{"AuthorizedSenderAdded(address)":{"notice":"Event emitted when a new authorized sender is added"},"AuthorizedSenderRemoved(address)":{"notice":"Event emitted when an authorized sender is removed"},"UpdatePublished(string,uint256,address,string,bytes,bytes,uint256,address,bytes)":{"notice":"Event emitted when a risk parameter update is published"},"UpdateTypeActiveStatusChanged(string,bool,bool)":{"notice":"Event emitted when an update type's active status is changed"},"UpdateTypeAdded(string)":{"notice":"Event emitted when a new update type is added"}},"kind":"user","methods":{"activeUpdateTypes(bytes32)":{"notice":"Checks if a given update type is currently active"},"addAuthorizedSender(address)":{"notice":"Adds a new address to the list of authorized senders who can publish updates"},"addUpdateType(string)":{"notice":"Adds a new update type to the list of authorized update types"},"allUpdateTypes(uint256)":{"notice":"Returns the update type string at the given index in the allUpdateTypes array"},"allUpdateTypesLength()":{"notice":"Returns the total number of update types in the allUpdateTypes array"},"authorizedSenders(address)":{"notice":"Checks if an address is authorized to publish updates"},"getActiveUpdateTypes(string)":{"notice":"Checks if a given update type is currently active"},"getAllUpdateTypes()":{"notice":"Returns all update types in the allUpdateTypes array"},"getLatestUpdateByTypeAndMarket(string,address)":{"notice":"Fetches the most recent update for a specific parameter type in a specific market"},"getLatestUpdateIdByTypeAndMarket(string,address)":{"notice":"Gets the latest update ID for a specific market and update type (string) combination"},"getUpdateById(uint256)":{"notice":"Fetches the update for a provided update ID"},"latestUpdateIdByMarketAndType(bytes32,address)":{"notice":"Gets the latest update ID for a specific market and update type combination"},"publishBulkRiskParameterUpdates(string[],bytes[],string[],address[],uint96[],uint32[],bytes[])":{"notice":"Publishes multiple risk parameter updates in a single transaction."},"publishRiskParameterUpdate(string,bytes,string,address,uint96,uint32,bytes)":{"notice":"Publishes a new risk parameter update."},"removeAuthorizedSender(address)":{"notice":"Removes an address from the list of authorized senders"},"setUpdateTypeActive(string,bool)":{"notice":"Sets the active status of an existing update type"},"updateCounter()":{"notice":"Returns the total number of updates that have been published"}},"notice":"Interface for Risk Oracle contract that manages and publishes risk parameter updates","version":1}}},"contracts/RiskSteward/Interfaces/IRiskSteward.sol":{"IRiskSteward":{"abi":[{"inputs":[],"name":"RISK_STEWARD_RECEIVER","outputs":[{"internalType":"contract IRiskStewardReceiver","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"referenceId","type":"string"},{"internalType":"uint256","name":"updateId","type":"uint256"},{"internalType":"address","name":"market","type":"address"},{"internalType":"string","name":"updateType","type":"string"},{"internalType":"bytes32","name":"updateTypeKey","type":"bytes32"},{"internalType":"bytes","name":"newValue","type":"bytes"},{"internalType":"bytes","name":"previousValue","type":"bytes"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"address","name":"publisher","type":"address"},{"internalType":"uint96","name":"poolId","type":"uint96"},{"internalType":"uint32","name":"destLzEid","type":"uint32"},{"internalType":"bytes","name":"additionalData","type":"bytes"}],"internalType":"struct RiskParameterUpdate","name":"update","type":"tuple"}],"name":"applyUpdate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"referenceId","type":"string"},{"internalType":"uint256","name":"updateId","type":"uint256"},{"internalType":"address","name":"market","type":"address"},{"internalType":"string","name":"updateType","type":"string"},{"internalType":"bytes32","name":"updateTypeKey","type":"bytes32"},{"internalType":"bytes","name":"newValue","type":"bytes"},{"internalType":"bytes","name":"previousValue","type":"bytes"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"address","name":"publisher","type":"address"},{"internalType":"uint96","name":"poolId","type":"uint96"},{"internalType":"uint32","name":"destLzEid","type":"uint32"},{"internalType":"bytes","name":"additionalData","type":"bytes"}],"internalType":"struct RiskParameterUpdate","name":"update","type":"tuple"}],"name":"isSafeForDirectExecution","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"devdoc":{"author":"Venus","kind":"dev","methods":{"RISK_STEWARD_RECEIVER()":{"returns":{"_0":"The risk steward receiver contract"}},"applyUpdate((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))":{"params":{"update":"The risk parameter update to apply"}},"isSafeForDirectExecution((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))":{"params":{"update":"The risk parameter update to evaluate"},"returns":{"_0":"True if update is safe for direct execution, false if timelock is required"}}},"title":"IRiskSteward","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"RISK_STEWARD_RECEIVER()":"b296e6cb","applyUpdate((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))":"bf637839","isSafeForDirectExecution((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))":"42b7cfbd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"RISK_STEWARD_RECEIVER\",\"outputs\":[{\"internalType\":\"contract IRiskStewardReceiver\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"referenceId\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"updateTypeKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"newValue\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"previousValue\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"poolId\",\"type\":\"uint96\"},{\"internalType\":\"uint32\",\"name\":\"destLzEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"additionalData\",\"type\":\"bytes\"}],\"internalType\":\"struct RiskParameterUpdate\",\"name\":\"update\",\"type\":\"tuple\"}],\"name\":\"applyUpdate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"referenceId\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"updateTypeKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"newValue\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"previousValue\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"poolId\",\"type\":\"uint96\"},{\"internalType\":\"uint32\",\"name\":\"destLzEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"additionalData\",\"type\":\"bytes\"}],\"internalType\":\"struct RiskParameterUpdate\",\"name\":\"update\",\"type\":\"tuple\"}],\"name\":\"isSafeForDirectExecution\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"kind\":\"dev\",\"methods\":{\"RISK_STEWARD_RECEIVER()\":{\"returns\":{\"_0\":\"The risk steward receiver contract\"}},\"applyUpdate((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))\":{\"params\":{\"update\":\"The risk parameter update to apply\"}},\"isSafeForDirectExecution((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))\":{\"params\":{\"update\":\"The risk parameter update to evaluate\"},\"returns\":{\"_0\":\"True if update is safe for direct execution, false if timelock is required\"}}},\"title\":\"IRiskSteward\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"RISK_STEWARD_RECEIVER()\":{\"notice\":\"Returns the `IRiskStewardReceiver` associated with this steward.\"},\"applyUpdate((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))\":{\"notice\":\"Applies a validated risk parameter update.\"},\"isSafeForDirectExecution((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))\":{\"notice\":\"Checks whether an update is safe for direct execution (no timelock required).\"}},\"notice\":\"Interface for risk stewards that validate and apply risk parameter updates\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/RiskSteward/Interfaces/IRiskSteward.sol\":\"IRiskSteward\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"contracts/RiskSteward/Interfaces/IRiskOracle.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity 0.8.25;\\n\\n/**\\n * @notice Struct representing a risk parameter update published by the Risk Oracle\\n * @param referenceId External reference ID, potentially linking to a document or off-chain data\\n * @param updateId Unique identifier for this specific update\\n * @param market Address of the market for which the parameter update applies\\n * @param updateType Classification of the update type for validation purposes (human-readable)\\n * @param updateTypeKey Keccak256 hash of updateType for efficient comparisons\\n * @param newValue Encoded new value of the risk parameter, flexible for various data types\\n * @param previousValue Previous value of the parameter for historical comparison\\n * @param timestamp Block timestamp when the update was published\\n * @param publisher Address of the account that published this update\\n * @param poolId Pool identifier for eMode-style collateral configuration (0 for regular markets)\\n * @param destLzEid LayerZero endpoint ID of the destination chain (0 for local execution)\\n * @param additionalData Additional metadata or data associated with the update\\n */\\nstruct RiskParameterUpdate {\\n    string referenceId;\\n    uint256 updateId;\\n    address market;\\n    string updateType;\\n    bytes32 updateTypeKey;\\n    bytes newValue;\\n    bytes previousValue;\\n    uint256 timestamp;\\n    address publisher;\\n    uint96 poolId;\\n    uint32 destLzEid;\\n    bytes additionalData;\\n}\\n\\n/**\\n * @title IRiskOracle\\n * @author Venus\\n * @notice Interface for Risk Oracle contract that manages and publishes risk parameter updates\\n */\\ninterface IRiskOracle {\\n    /// @notice Event emitted when a risk parameter update is published\\n    event UpdatePublished(\\n        string referenceId,\\n        uint256 indexed updateId,\\n        address indexed market,\\n        string indexed updateType,\\n        bytes newValue,\\n        bytes previousValue,\\n        uint256 timestamp,\\n        address publisher,\\n        bytes additionalData\\n    );\\n\\n    /// @notice Event emitted when a new authorized sender is added\\n    event AuthorizedSenderAdded(address indexed sender);\\n\\n    /// @notice Event emitted when an authorized sender is removed\\n    event AuthorizedSenderRemoved(address indexed sender);\\n\\n    /// @notice Event emitted when a new update type is added\\n    event UpdateTypeAdded(string indexed updateType);\\n\\n    /// @notice Event emitted when an update type's active status is changed\\n    event UpdateTypeActiveStatusChanged(string indexed updateType, bool previousActive, bool active);\\n\\n    /// @notice Thrown when sender is not authorized\\n    error SenderNotAuthorized();\\n\\n    /// @notice Thrown when sender is already authorized\\n    error SenderAlreadyAuthorized();\\n\\n    /// @notice Thrown when update type string is invalid\\n    error InvalidUpdateTypeString();\\n\\n    /// @notice Thrown when update type already exists\\n    error UpdateTypeAlreadyExists();\\n\\n    /// @notice Thrown when update type doesn't exist\\n    error UpdateTypeNotFound();\\n\\n    /// @notice Thrown when update type active status is already set to the desired value\\n    error UpdateTypeStatusUnchanged();\\n\\n    /// @notice Thrown when update type is not active\\n    error UpdateTypeNotActive();\\n\\n    /// @notice Thrown when no update is found\\n    error NoUpdateFound();\\n\\n    /// @notice Thrown when update ID is invalid\\n    error InvalidUpdateId();\\n\\n    /// @notice Thrown when array lengths don't match in bulk operations\\n    error ArrayLengthMismatch();\\n\\n    /// @notice Thrown when trying to renounce ownership\\n    error RenounceOwnershipNotAllowed();\\n\\n    /**\\n     * @notice Returns the update type string at the given index in the allUpdateTypes array\\n     * @param index The index in the allUpdateTypes array\\n     * @return The update type string at the specified index\\n     */\\n    function allUpdateTypes(uint256 index) external view returns (string memory);\\n\\n    /**\\n     * @notice Returns the total number of update types in the allUpdateTypes array\\n     * @return The length of the allUpdateTypes array\\n     */\\n    function allUpdateTypesLength() external view returns (uint256);\\n\\n    /**\\n     * @notice Returns all update types in the allUpdateTypes array\\n     * @return An array of all update type strings\\n     */\\n    function getAllUpdateTypes() external view returns (string[] memory);\\n\\n    /**\\n     * @notice Checks if a given update type is currently active\\n     * @param updateType The update type string to check\\n     * @return True if the update type is active, false otherwise\\n     */\\n    function getActiveUpdateTypes(string memory updateType) external view returns (bool);\\n\\n    /**\\n     * @notice Checks if a given update type is currently active\\n     * @param updateTypeKey The keccak256 hash of the update type string\\n     * @return True if the update type key is active, false otherwise\\n     */\\n    function activeUpdateTypes(bytes32 updateTypeKey) external view returns (bool);\\n\\n    /**\\n     * @notice Checks if an address is authorized to publish updates\\n     * @param sender The address to check for authorization\\n     * @return True if the address is authorized, false otherwise\\n     */\\n    function authorizedSenders(address sender) external view returns (bool);\\n\\n    /**\\n     * @notice Gets the latest update ID for a specific market and update type combination\\n     * @param updateTypeKey The keccak256 hash of the update type string\\n     * @param market The market address\\n     * @return The latest update ID for the given market and update type key, or 0 if none exists\\n     */\\n    function latestUpdateIdByMarketAndType(bytes32 updateTypeKey, address market) external view returns (uint256);\\n\\n    /**\\n     * @notice Returns the total number of updates that have been published\\n     * @return The current update counter value\\n     */\\n    function updateCounter() external view returns (uint256);\\n\\n    /**\\n     * @notice Fetches the most recent update for a specific parameter type in a specific market\\n     * @param updateType The update type identifier\\n     * @param market The market address\\n     * @return The most recent RiskParameterUpdate for the specified parameter and market\\n     * @custom:error NoUpdateFound Thrown if no update exists for the specified parameter and market\\n     */\\n    function getLatestUpdateByTypeAndMarket(\\n        string memory updateType,\\n        address market\\n    ) external view returns (RiskParameterUpdate memory);\\n\\n    /**\\n     * @notice Gets the latest update ID for a specific market and update type (string) combination\\n     * @param updateType The update type identifier\\n     * @param market The market address\\n     * @return The latest update ID for the given market and update type, or 0 if none exists\\n     */\\n    function getLatestUpdateIdByTypeAndMarket(string memory updateType, address market) external view returns (uint256);\\n\\n    /**\\n     * @notice Fetches the update for a provided update ID\\n     * @param updateId The unique update ID\\n     * @return The RiskParameterUpdate struct for the specified update ID\\n     * @custom:error InvalidUpdateId Thrown if updateId is 0 or greater than updateCounter\\n     */\\n    function getUpdateById(uint256 updateId) external view returns (RiskParameterUpdate memory);\\n\\n    /**\\n     * @notice Adds a new address to the list of authorized senders who can publish updates\\n     * @param sender Address to be authorized\\n     * @custom:error ZeroAddressNotAllowed Thrown if sender is the zero address\\n     * @custom:error SenderAlreadyAuthorized Thrown if sender is already authorized\\n     * @custom:error Unauthorized Thrown if caller is not allowed by AccessControlManager\\n     * @custom:event AuthorizedSenderAdded Emitted when sender is successfully added\\n     */\\n    function addAuthorizedSender(address sender) external;\\n\\n    /**\\n     * @notice Removes an address from the list of authorized senders\\n     * @param sender Address to be removed from authorization\\n     * @custom:error SenderNotAuthorized Thrown if sender is not currently authorized\\n     * @custom:error Unauthorized Thrown if caller is not allowed by AccessControlManager\\n     * @custom:event AuthorizedSenderRemoved Emitted when sender is successfully removed\\n     */\\n    function removeAuthorizedSender(address sender) external;\\n\\n    /**\\n     * @notice Adds a new update type to the list of authorized update types\\n     * @param newUpdateType New update type string to allow (must be non-empty and <= 64 characters)\\n     * @custom:error InvalidUpdateTypeString Thrown if update type string is empty or exceeds 64 characters\\n     * @custom:error UpdateTypeAlreadyExists Thrown if update type already exists\\n     * @custom:error Unauthorized Thrown if caller is not allowed by AccessControlManager\\n     * @custom:event UpdateTypeAdded Emitted when update type is successfully added\\n     */\\n    function addUpdateType(string memory newUpdateType) external;\\n\\n    /**\\n     * @notice Sets the active status of an existing update type\\n     * @param updateType The update type to set active status for\\n     * @param active True to activate the update type, false to deactivate it\\n     * @custom:error UpdateTypeNotFound Thrown if update type doesn't exist\\n     * @custom:error UpdateTypeStatusUnchanged Thrown if status is already set to the desired value\\n     * @custom:error Unauthorized Thrown if caller is not allowed by AccessControlManager\\n     * @custom:event UpdateTypeActiveStatusChanged Emitted when status is successfully changed\\n     */\\n    function setUpdateTypeActive(string memory updateType, bool active) external;\\n\\n    /**\\n     * @notice Publishes a new risk parameter update.\\n     * @param referenceId An external reference ID associated with the update\\n     * @param newValue The new value of the risk parameter being updated (encoded as bytes)\\n     * @param updateType Type of update performed, must be an active update type\\n     * @param market Address of the market for which the parameter update applies\\n     * @param poolId Pool identifier for eMode-style collateral configuration (0 for regular markets)\\n     * @param dstEid Destination endpoint ID for cross-chain routing\\n     * @param additionalData Additional data or metadata for the update\\n     * @custom:error SenderNotAuthorized Thrown if caller is not an authorized sender\\n     * @custom:error UpdateTypeNotActive Thrown if update type is not active\\n     * @custom:error ZeroAddressNotAllowed Thrown if market is the zero address\\n     * @custom:event UpdatePublished Emitted when the update is successfully published\\n     */\\n    function publishRiskParameterUpdate(\\n        string memory referenceId,\\n        bytes memory newValue,\\n        string memory updateType,\\n        address market,\\n        uint96 poolId,\\n        uint32 dstEid,\\n        bytes memory additionalData\\n    ) external;\\n\\n    /**\\n     * @notice Publishes multiple risk parameter updates in a single transaction.\\n     * @param referenceIds Array of external reference IDs, one for each update\\n     * @param newValues Array of new values for each update (encoded as bytes)\\n     * @param updateTypes Array of update types, all must be active update types\\n     * @param markets Array of market addresses for each update\\n     * @param poolIds Array of pool identifiers for eMode-style collateral configuration (0 for regular markets)\\n     * @param dstEid Array of destination endpoint IDs for cross-chain routing\\n     * @param additionalData Array of additional data for each update\\n     * @custom:error SenderNotAuthorized Thrown if caller is not an authorized sender\\n     * @custom:error ArrayLengthMismatch Thrown if all arrays don't have the same length\\n     * @custom:error UpdateTypeNotActive Thrown if any update type is not active\\n     * @custom:error ZeroAddressNotAllowed Thrown if any market is the zero address\\n     * @custom:event UpdatePublished Emitted for each successfully published update\\n     */\\n    function publishBulkRiskParameterUpdates(\\n        string[] memory referenceIds,\\n        bytes[] memory newValues,\\n        string[] memory updateTypes,\\n        address[] memory markets,\\n        uint96[] memory poolIds,\\n        uint32[] memory dstEid,\\n        bytes[] memory additionalData\\n    ) external;\\n}\\n\",\"keccak256\":\"0x8a30b030d5be3cefabf55d889d0a06447613a9ada5a917730b7ec833bda167cd\",\"license\":\"MIT\"},\"contracts/RiskSteward/Interfaces/IRiskSteward.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { RiskParameterUpdate } from \\\"./IRiskOracle.sol\\\";\\nimport { IRiskStewardReceiver } from \\\"./IRiskStewardReceiver.sol\\\";\\n\\n/**\\n * @title IRiskSteward\\n * @author Venus\\n * @notice Interface for risk stewards that validate and apply risk parameter updates\\n */\\ninterface IRiskSteward {\\n    /**\\n     * @notice Returns the `IRiskStewardReceiver` associated with this steward.\\n     * @return The risk steward receiver contract\\n     */\\n    function RISK_STEWARD_RECEIVER() external view returns (IRiskStewardReceiver);\\n\\n    /**\\n     * @notice Checks whether an update is safe for direct execution (no timelock required).\\n     * @param update The risk parameter update to evaluate\\n     * @return True if update is safe for direct execution, false if timelock is required\\n     */\\n    function isSafeForDirectExecution(RiskParameterUpdate calldata update) external view returns (bool);\\n\\n    /**\\n     * @notice Applies a validated risk parameter update.\\n     * @param update The risk parameter update to apply\\n     */\\n    function applyUpdate(RiskParameterUpdate calldata update) external;\\n}\\n\",\"keccak256\":\"0x6438497d6fd62f5e8c224a01e626a92ae2ebbe736852749862ff2f040a25b069\",\"license\":\"BSD-3-Clause\"},\"contracts/RiskSteward/Interfaces/IRiskStewardReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface IRiskStewardReceiver {\\n    /**\\n     * @notice Status of an update\\n     */\\n    enum UpdateStatus {\\n        None,\\n        Pending,\\n        Executed,\\n        Rejected,\\n        Expired,\\n        SENT_TO_DESTINATION\\n    }\\n\\n    /**\\n     * @notice Configuration for a risk parameter update type\\n     * @param active Whether this update type configuration is currently active\\n     * @param debounce Minimum delay between consecutive update executions for the same (updateType, market) pair\\n     * @param timelock Period that must pass after registration before an update can be executed\\n     * @param riskSteward Address of the risk steward contract responsible for processing this update type\\n     */\\n    struct RiskParamConfig {\\n        bool active;\\n        uint256 debounce;\\n        uint256 timelock;\\n        address riskSteward;\\n    }\\n\\n    /**\\n     * @notice Registered update structure with timelock and execution information\\n     * @param updateId Update ID from the Risk Oracle\\n     * @param unlockTime Timestamp when this update can be executed (calculated as registration time + timelock)\\n     * @param status Current status of the update (Pending, Executed, Rejected, Expired, etc.)\\n     * @param executor Address of the executor who executed this update (address(0) if not executed yet)\\n     * @param executedAt Timestamp when this update was executed (0 if not executed yet)\\n     */\\n    struct RegisteredUpdate {\\n        uint256 updateId;\\n        uint256 unlockTime;\\n        UpdateStatus status;\\n        address executor;\\n        uint256 executedAt;\\n    }\\n\\n    /**\\n     * @notice Event emitted when a risk parameter config is set\\n     */\\n    event RiskParameterConfigUpdated(\\n        bytes32 indexed updateTypeHash,\\n        string updateType,\\n        address indexed previousRiskSteward,\\n        address indexed riskSteward,\\n        uint256 previousDebounce,\\n        uint256 debounce,\\n        uint256 previousTimelock,\\n        uint256 timelock,\\n        bool previousActive,\\n        bool active\\n    );\\n\\n    /**\\n     * @notice Event emitted when a risk parameter config active status is set\\n     */\\n    event ConfigActiveUpdated(bytes32 indexed updateTypeHash, string updateType, bool previousActive, bool active);\\n\\n    /**\\n     * @notice Event emitted when an update is successfully executed\\n     */\\n    event UpdateExecuted(uint256 indexed updateId);\\n\\n    /**\\n     * @notice Event emitted when an update is rejected\\n     */\\n    event UpdateRejected(uint256 indexed updateId);\\n\\n    /**\\n     * @notice Event emitted when an update is marked as expired\\n     */\\n    event UpdateExpired(uint256 indexed updateId);\\n\\n    /**\\n     * @notice Event emitted when an executor status is set\\n     */\\n    event ExecutorStatusUpdated(address indexed executor, bool previousApproved, bool approved);\\n\\n    /**\\n     * @notice Event emitted when an update is registered\\n     */\\n    event UpdateRegistered(uint256 indexed updateId, uint256 unlockTime, string updateType, address indexed market);\\n\\n    /**\\n     * @notice Event emitted when an update is sent to a destination chain\\n     */\\n    event UpdateSentToDestination(\\n        uint256 updateId,\\n        uint32 indexed destLzEid,\\n        string indexed updateType,\\n        address indexed market\\n    );\\n\\n    /**\\n     * @notice Event emitted when an update is resent to a destination chain\\n     */\\n    event UpdateResentToDestination(\\n        uint256 updateId,\\n        uint32 indexed destLzEid,\\n        string indexed updateType,\\n        address indexed market\\n    );\\n\\n    /**\\n     * @notice Emitted when leftover native tokens are swept by owner\\n     */\\n    event SweepNative(address indexed receiver, uint256 amount);\\n\\n    /**\\n     * @notice Event emitted when the pause status changes\\n     * @param previousPaused Previous pause state\\n     * @param paused Current pause state\\n     */\\n    event PauseStatusUpdated(bool previousPaused, bool paused);\\n\\n    /**\\n     * @custom:error TransferFailed\\n     */\\n    error TransferFailed();\\n\\n    /**\\n     * @notice Thrown if a submitted update is not active and therefore cannot be processed\\n     */\\n    error ConfigNotActive();\\n\\n    /**\\n     * @notice Thrown when an update was not applied within the required time frame\\n     */\\n    error UpdateIsExpired();\\n\\n    /**\\n     * @notice Thrown when an update has already been processed\\n     */\\n    error UpdateAlreadyResolved();\\n\\n    /**\\n     * @notice Thrown when the debounce period hasn't passed for applying an update to a specific market / update type\\n     */\\n    error UpdateTooFrequent();\\n\\n    /**\\n     * @notice Thrown when an update type that is not supported is operated on\\n     */\\n    error UnsupportedUpdateType();\\n\\n    /**\\n     * @notice Thrown when an empty update type string is provided\\n     */\\n    error InvalidUpdateType();\\n\\n    /**\\n     * @notice Thrown when a debounce value of 0 is set\\n     */\\n    error InvalidDebounce();\\n\\n    /**\\n     * @notice Thrown when a timelock value is greater than or equal to the expiration time\\n     */\\n    error InvalidTimelock();\\n\\n    /**\\n     * @notice Thrown when update unlock time has not been reached\\n     */\\n    error UpdateNotUnlocked();\\n\\n    /**\\n     * @notice Thrown when trying to resolve an update that doesn't exist\\n     */\\n    error UpdateNotFound();\\n\\n    /**\\n     * @notice Thrown when an address is not an executor\\n     */\\n    error NotAnExecutor();\\n\\n    /**\\n     * @notice Thrown when there is a non-expired pending update of the same type for the market\\n     */\\n    error RegisteredUpdateTypeExist(uint256);\\n\\n    /**\\n     * @notice Thrown when trying to resend an update that is not in SENT_TO_DESTINATION status\\n     */\\n    error InvalidUpdateToResend();\\n\\n    /**\\n     * @notice Thrown when trying to execute an update that was never registered\\n     */\\n    error InvalidRegisteredUpdate();\\n\\n    /**\\n     * @notice Thrown when attempting to call lzSend from an address other than this contract\\n     */\\n    error InvalidLzSendCaller();\\n\\n    /**\\n     * @notice Thrown when trying to renounce ownership\\n     */\\n    error RenounceOwnershipNotAllowed();\\n\\n    /**\\n     * @notice Thrown when processUpdate is called while the contract is paused\\n     */\\n    error PausedError();\\n\\n    /**\\n     * @notice Thrown when an invalid LayerZero endpoint ID is provided\\n     */\\n    error InvalidLayerZeroEid();\\n\\n    /**\\n     * @notice Thrown when trying to set the same pause status\\n     */\\n    error PauseStatusUnchanged();\\n\\n    /**\\n     * @notice Thrown when trying to set the same config active status\\n     */\\n    error ConfigStatusUnchanged();\\n\\n    /**\\n     * @notice Thrown when trying to set the same executor whitelist status\\n     */\\n    error ExecutorStatusUnchanged();\\n\\n    /**\\n     * @notice Thrown when an update will expire before its timelock unlocks\\n     */\\n    error UpdateWillExpireBeforeUnlock();\\n\\n    function getRiskParameterConfig(string calldata updateType) external view returns (RiskParamConfig memory);\\n\\n    function getLastProcessedUpdate(string calldata updateType, address market) external view returns (uint256);\\n\\n    function getLastRegisteredUpdate(string calldata updateType, address market) external view returns (uint256);\\n\\n    function setRiskParameterConfig(\\n        string calldata updateType,\\n        address riskSteward,\\n        uint256 debounce,\\n        uint256 timelock\\n    ) external;\\n\\n    function setConfigActive(string calldata updateType, bool active) external;\\n\\n    function setWhitelistedExecutor(address executor, bool approved) external;\\n\\n    function processUpdate(uint256 updateId) external;\\n\\n    function executeRegisteredUpdate(uint256 updateId) external;\\n\\n    function rejectUpdate(uint256 updateId) external;\\n\\n    function resendRemoteUpdate(uint256 updateId, bytes calldata options) external payable;\\n\\n    function getExecutableUpdates(\\n        string calldata updateType,\\n        address comptroller\\n    ) external view returns (uint256[] memory executableUpdates);\\n\\n    function isUpdateExecutable(uint256 updateId) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x206b4763cfe62155718edb4b53ee48d6e5204b81cbfac705808d2ffd3225bb12\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{"RISK_STEWARD_RECEIVER()":{"notice":"Returns the `IRiskStewardReceiver` associated with this steward."},"applyUpdate((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))":{"notice":"Applies a validated risk parameter update."},"isSafeForDirectExecution((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))":{"notice":"Checks whether an update is safe for direct execution (no timelock required)."}},"notice":"Interface for risk stewards that validate and apply risk parameter updates","version":1}}},"contracts/RiskSteward/Interfaces/IRiskStewardReceiver.sol":{"IRiskStewardReceiver":{"abi":[{"inputs":[],"name":"ConfigNotActive","type":"error"},{"inputs":[],"name":"ConfigStatusUnchanged","type":"error"},{"inputs":[],"name":"ExecutorStatusUnchanged","type":"error"},{"inputs":[],"name":"InvalidDebounce","type":"error"},{"inputs":[],"name":"InvalidLayerZeroEid","type":"error"},{"inputs":[],"name":"InvalidLzSendCaller","type":"error"},{"inputs":[],"name":"InvalidRegisteredUpdate","type":"error"},{"inputs":[],"name":"InvalidTimelock","type":"error"},{"inputs":[],"name":"InvalidUpdateToResend","type":"error"},{"inputs":[],"name":"InvalidUpdateType","type":"error"},{"inputs":[],"name":"NotAnExecutor","type":"error"},{"inputs":[],"name":"PauseStatusUnchanged","type":"error"},{"inputs":[],"name":"PausedError","type":"error"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"RegisteredUpdateTypeExist","type":"error"},{"inputs":[],"name":"RenounceOwnershipNotAllowed","type":"error"},{"inputs":[],"name":"TransferFailed","type":"error"},{"inputs":[],"name":"UnsupportedUpdateType","type":"error"},{"inputs":[],"name":"UpdateAlreadyResolved","type":"error"},{"inputs":[],"name":"UpdateIsExpired","type":"error"},{"inputs":[],"name":"UpdateNotFound","type":"error"},{"inputs":[],"name":"UpdateNotUnlocked","type":"error"},{"inputs":[],"name":"UpdateTooFrequent","type":"error"},{"inputs":[],"name":"UpdateWillExpireBeforeUnlock","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"updateTypeHash","type":"bytes32"},{"indexed":false,"internalType":"string","name":"updateType","type":"string"},{"indexed":false,"internalType":"bool","name":"previousActive","type":"bool"},{"indexed":false,"internalType":"bool","name":"active","type":"bool"}],"name":"ConfigActiveUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"executor","type":"address"},{"indexed":false,"internalType":"bool","name":"previousApproved","type":"bool"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ExecutorStatusUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"previousPaused","type":"bool"},{"indexed":false,"internalType":"bool","name":"paused","type":"bool"}],"name":"PauseStatusUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"updateTypeHash","type":"bytes32"},{"indexed":false,"internalType":"string","name":"updateType","type":"string"},{"indexed":true,"internalType":"address","name":"previousRiskSteward","type":"address"},{"indexed":true,"internalType":"address","name":"riskSteward","type":"address"},{"indexed":false,"internalType":"uint256","name":"previousDebounce","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"debounce","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"previousTimelock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timelock","type":"uint256"},{"indexed":false,"internalType":"bool","name":"previousActive","type":"bool"},{"indexed":false,"internalType":"bool","name":"active","type":"bool"}],"name":"RiskParameterConfigUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"SweepNative","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"updateId","type":"uint256"}],"name":"UpdateExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"updateId","type":"uint256"}],"name":"UpdateExpired","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"updateId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"unlockTime","type":"uint256"},{"indexed":false,"internalType":"string","name":"updateType","type":"string"},{"indexed":true,"internalType":"address","name":"market","type":"address"}],"name":"UpdateRegistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"updateId","type":"uint256"}],"name":"UpdateRejected","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"updateId","type":"uint256"},{"indexed":true,"internalType":"uint32","name":"destLzEid","type":"uint32"},{"indexed":true,"internalType":"string","name":"updateType","type":"string"},{"indexed":true,"internalType":"address","name":"market","type":"address"}],"name":"UpdateResentToDestination","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"updateId","type":"uint256"},{"indexed":true,"internalType":"uint32","name":"destLzEid","type":"uint32"},{"indexed":true,"internalType":"string","name":"updateType","type":"string"},{"indexed":true,"internalType":"address","name":"market","type":"address"}],"name":"UpdateSentToDestination","type":"event"},{"inputs":[{"internalType":"uint256","name":"updateId","type":"uint256"}],"name":"executeRegisteredUpdate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"updateType","type":"string"},{"internalType":"address","name":"comptroller","type":"address"}],"name":"getExecutableUpdates","outputs":[{"internalType":"uint256[]","name":"executableUpdates","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"updateType","type":"string"},{"internalType":"address","name":"market","type":"address"}],"name":"getLastProcessedUpdate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"updateType","type":"string"},{"internalType":"address","name":"market","type":"address"}],"name":"getLastRegisteredUpdate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"updateType","type":"string"}],"name":"getRiskParameterConfig","outputs":[{"components":[{"internalType":"bool","name":"active","type":"bool"},{"internalType":"uint256","name":"debounce","type":"uint256"},{"internalType":"uint256","name":"timelock","type":"uint256"},{"internalType":"address","name":"riskSteward","type":"address"}],"internalType":"struct IRiskStewardReceiver.RiskParamConfig","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"updateId","type":"uint256"}],"name":"isUpdateExecutable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"updateId","type":"uint256"}],"name":"processUpdate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"updateId","type":"uint256"}],"name":"rejectUpdate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"updateId","type":"uint256"},{"internalType":"bytes","name":"options","type":"bytes"}],"name":"resendRemoteUpdate","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"string","name":"updateType","type":"string"},{"internalType":"bool","name":"active","type":"bool"}],"name":"setConfigActive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"updateType","type":"string"},{"internalType":"address","name":"riskSteward","type":"address"},{"internalType":"uint256","name":"debounce","type":"uint256"},{"internalType":"uint256","name":"timelock","type":"uint256"}],"name":"setRiskParameterConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"executor","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setWhitelistedExecutor","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"errors":{"TransferFailed()":[{"custom:error":"TransferFailed"}]},"events":{"PauseStatusUpdated(bool,bool)":{"params":{"paused":"Current pause state","previousPaused":"Previous pause state"}}},"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"executeRegisteredUpdate(uint256)":"f8ce6ac2","getExecutableUpdates(string,address)":"f63106e4","getLastProcessedUpdate(string,address)":"f75875ad","getLastRegisteredUpdate(string,address)":"595bd377","getRiskParameterConfig(string)":"28207141","isUpdateExecutable(uint256)":"33bde2ca","processUpdate(uint256)":"62656e63","rejectUpdate(uint256)":"c3e10deb","resendRemoteUpdate(uint256,bytes)":"85a7602f","setConfigActive(string,bool)":"438653fe","setRiskParameterConfig(string,address,uint256,uint256)":"c2a23c84","setWhitelistedExecutor(address,bool)":"3aed7f31"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ConfigNotActive\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ConfigStatusUnchanged\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExecutorStatusUnchanged\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDebounce\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidLayerZeroEid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidLzSendCaller\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRegisteredUpdate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTimelock\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidUpdateToResend\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidUpdateType\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotAnExecutor\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PauseStatusUnchanged\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PausedError\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"RegisteredUpdateTypeExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RenounceOwnershipNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsupportedUpdateType\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpdateAlreadyResolved\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpdateIsExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpdateNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpdateNotUnlocked\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpdateTooFrequent\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpdateWillExpireBeforeUnlock\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"updateTypeHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"previousActive\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"}],\"name\":\"ConfigActiveUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"previousApproved\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ExecutorStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"previousPaused\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"paused\",\"type\":\"bool\"}],\"name\":\"PauseStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"updateTypeHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousRiskSteward\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"riskSteward\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previousDebounce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"debounce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previousTimelock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timelock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"previousActive\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"}],\"name\":\"RiskParameterConfigUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SweepNative\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"}],\"name\":\"UpdateExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"}],\"name\":\"UpdateExpired\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"unlockTime\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"UpdateRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"}],\"name\":\"UpdateRejected\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"destLzEid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"UpdateResentToDestination\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"destLzEid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"UpdateSentToDestination\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"}],\"name\":\"executeRegisteredUpdate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"comptroller\",\"type\":\"address\"}],\"name\":\"getExecutableUpdates\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"executableUpdates\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"getLastProcessedUpdate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"getLastRegisteredUpdate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"}],\"name\":\"getRiskParameterConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"debounce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timelock\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"riskSteward\",\"type\":\"address\"}],\"internalType\":\"struct IRiskStewardReceiver.RiskParamConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"}],\"name\":\"isUpdateExecutable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"}],\"name\":\"processUpdate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"}],\"name\":\"rejectUpdate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"name\":\"resendRemoteUpdate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"}],\"name\":\"setConfigActive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"riskSteward\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"debounce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timelock\",\"type\":\"uint256\"}],\"name\":\"setRiskParameterConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setWhitelistedExecutor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"TransferFailed()\":[{\"custom:error\":\"TransferFailed\"}]},\"events\":{\"PauseStatusUpdated(bool,bool)\":{\"params\":{\"paused\":\"Current pause state\",\"previousPaused\":\"Previous pause state\"}}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"errors\":{\"ConfigNotActive()\":[{\"notice\":\"Thrown if a submitted update is not active and therefore cannot be processed\"}],\"ConfigStatusUnchanged()\":[{\"notice\":\"Thrown when trying to set the same config active status\"}],\"ExecutorStatusUnchanged()\":[{\"notice\":\"Thrown when trying to set the same executor whitelist status\"}],\"InvalidDebounce()\":[{\"notice\":\"Thrown when a debounce value of 0 is set\"}],\"InvalidLayerZeroEid()\":[{\"notice\":\"Thrown when an invalid LayerZero endpoint ID is provided\"}],\"InvalidLzSendCaller()\":[{\"notice\":\"Thrown when attempting to call lzSend from an address other than this contract\"}],\"InvalidRegisteredUpdate()\":[{\"notice\":\"Thrown when trying to execute an update that was never registered\"}],\"InvalidTimelock()\":[{\"notice\":\"Thrown when a timelock value is greater than or equal to the expiration time\"}],\"InvalidUpdateToResend()\":[{\"notice\":\"Thrown when trying to resend an update that is not in SENT_TO_DESTINATION status\"}],\"InvalidUpdateType()\":[{\"notice\":\"Thrown when an empty update type string is provided\"}],\"NotAnExecutor()\":[{\"notice\":\"Thrown when an address is not an executor\"}],\"PauseStatusUnchanged()\":[{\"notice\":\"Thrown when trying to set the same pause status\"}],\"PausedError()\":[{\"notice\":\"Thrown when processUpdate is called while the contract is paused\"}],\"RegisteredUpdateTypeExist(uint256)\":[{\"notice\":\"Thrown when there is a non-expired pending update of the same type for the market\"}],\"RenounceOwnershipNotAllowed()\":[{\"notice\":\"Thrown when trying to renounce ownership\"}],\"UnsupportedUpdateType()\":[{\"notice\":\"Thrown when an update type that is not supported is operated on\"}],\"UpdateAlreadyResolved()\":[{\"notice\":\"Thrown when an update has already been processed\"}],\"UpdateIsExpired()\":[{\"notice\":\"Thrown when an update was not applied within the required time frame\"}],\"UpdateNotFound()\":[{\"notice\":\"Thrown when trying to resolve an update that doesn't exist\"}],\"UpdateNotUnlocked()\":[{\"notice\":\"Thrown when update unlock time has not been reached\"}],\"UpdateTooFrequent()\":[{\"notice\":\"Thrown when the debounce period hasn't passed for applying an update to a specific market / update type\"}],\"UpdateWillExpireBeforeUnlock()\":[{\"notice\":\"Thrown when an update will expire before its timelock unlocks\"}]},\"events\":{\"ConfigActiveUpdated(bytes32,string,bool,bool)\":{\"notice\":\"Event emitted when a risk parameter config active status is set\"},\"ExecutorStatusUpdated(address,bool,bool)\":{\"notice\":\"Event emitted when an executor status is set\"},\"PauseStatusUpdated(bool,bool)\":{\"notice\":\"Event emitted when the pause status changes\"},\"RiskParameterConfigUpdated(bytes32,string,address,address,uint256,uint256,uint256,uint256,bool,bool)\":{\"notice\":\"Event emitted when a risk parameter config is set\"},\"SweepNative(address,uint256)\":{\"notice\":\"Emitted when leftover native tokens are swept by owner\"},\"UpdateExecuted(uint256)\":{\"notice\":\"Event emitted when an update is successfully executed\"},\"UpdateExpired(uint256)\":{\"notice\":\"Event emitted when an update is marked as expired\"},\"UpdateRegistered(uint256,uint256,string,address)\":{\"notice\":\"Event emitted when an update is registered\"},\"UpdateRejected(uint256)\":{\"notice\":\"Event emitted when an update is rejected\"},\"UpdateResentToDestination(uint256,uint32,string,address)\":{\"notice\":\"Event emitted when an update is resent to a destination chain\"},\"UpdateSentToDestination(uint256,uint32,string,address)\":{\"notice\":\"Event emitted when an update is sent to a destination chain\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/RiskSteward/Interfaces/IRiskStewardReceiver.sol\":\"IRiskStewardReceiver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"contracts/RiskSteward/Interfaces/IRiskStewardReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface IRiskStewardReceiver {\\n    /**\\n     * @notice Status of an update\\n     */\\n    enum UpdateStatus {\\n        None,\\n        Pending,\\n        Executed,\\n        Rejected,\\n        Expired,\\n        SENT_TO_DESTINATION\\n    }\\n\\n    /**\\n     * @notice Configuration for a risk parameter update type\\n     * @param active Whether this update type configuration is currently active\\n     * @param debounce Minimum delay between consecutive update executions for the same (updateType, market) pair\\n     * @param timelock Period that must pass after registration before an update can be executed\\n     * @param riskSteward Address of the risk steward contract responsible for processing this update type\\n     */\\n    struct RiskParamConfig {\\n        bool active;\\n        uint256 debounce;\\n        uint256 timelock;\\n        address riskSteward;\\n    }\\n\\n    /**\\n     * @notice Registered update structure with timelock and execution information\\n     * @param updateId Update ID from the Risk Oracle\\n     * @param unlockTime Timestamp when this update can be executed (calculated as registration time + timelock)\\n     * @param status Current status of the update (Pending, Executed, Rejected, Expired, etc.)\\n     * @param executor Address of the executor who executed this update (address(0) if not executed yet)\\n     * @param executedAt Timestamp when this update was executed (0 if not executed yet)\\n     */\\n    struct RegisteredUpdate {\\n        uint256 updateId;\\n        uint256 unlockTime;\\n        UpdateStatus status;\\n        address executor;\\n        uint256 executedAt;\\n    }\\n\\n    /**\\n     * @notice Event emitted when a risk parameter config is set\\n     */\\n    event RiskParameterConfigUpdated(\\n        bytes32 indexed updateTypeHash,\\n        string updateType,\\n        address indexed previousRiskSteward,\\n        address indexed riskSteward,\\n        uint256 previousDebounce,\\n        uint256 debounce,\\n        uint256 previousTimelock,\\n        uint256 timelock,\\n        bool previousActive,\\n        bool active\\n    );\\n\\n    /**\\n     * @notice Event emitted when a risk parameter config active status is set\\n     */\\n    event ConfigActiveUpdated(bytes32 indexed updateTypeHash, string updateType, bool previousActive, bool active);\\n\\n    /**\\n     * @notice Event emitted when an update is successfully executed\\n     */\\n    event UpdateExecuted(uint256 indexed updateId);\\n\\n    /**\\n     * @notice Event emitted when an update is rejected\\n     */\\n    event UpdateRejected(uint256 indexed updateId);\\n\\n    /**\\n     * @notice Event emitted when an update is marked as expired\\n     */\\n    event UpdateExpired(uint256 indexed updateId);\\n\\n    /**\\n     * @notice Event emitted when an executor status is set\\n     */\\n    event ExecutorStatusUpdated(address indexed executor, bool previousApproved, bool approved);\\n\\n    /**\\n     * @notice Event emitted when an update is registered\\n     */\\n    event UpdateRegistered(uint256 indexed updateId, uint256 unlockTime, string updateType, address indexed market);\\n\\n    /**\\n     * @notice Event emitted when an update is sent to a destination chain\\n     */\\n    event UpdateSentToDestination(\\n        uint256 updateId,\\n        uint32 indexed destLzEid,\\n        string indexed updateType,\\n        address indexed market\\n    );\\n\\n    /**\\n     * @notice Event emitted when an update is resent to a destination chain\\n     */\\n    event UpdateResentToDestination(\\n        uint256 updateId,\\n        uint32 indexed destLzEid,\\n        string indexed updateType,\\n        address indexed market\\n    );\\n\\n    /**\\n     * @notice Emitted when leftover native tokens are swept by owner\\n     */\\n    event SweepNative(address indexed receiver, uint256 amount);\\n\\n    /**\\n     * @notice Event emitted when the pause status changes\\n     * @param previousPaused Previous pause state\\n     * @param paused Current pause state\\n     */\\n    event PauseStatusUpdated(bool previousPaused, bool paused);\\n\\n    /**\\n     * @custom:error TransferFailed\\n     */\\n    error TransferFailed();\\n\\n    /**\\n     * @notice Thrown if a submitted update is not active and therefore cannot be processed\\n     */\\n    error ConfigNotActive();\\n\\n    /**\\n     * @notice Thrown when an update was not applied within the required time frame\\n     */\\n    error UpdateIsExpired();\\n\\n    /**\\n     * @notice Thrown when an update has already been processed\\n     */\\n    error UpdateAlreadyResolved();\\n\\n    /**\\n     * @notice Thrown when the debounce period hasn't passed for applying an update to a specific market / update type\\n     */\\n    error UpdateTooFrequent();\\n\\n    /**\\n     * @notice Thrown when an update type that is not supported is operated on\\n     */\\n    error UnsupportedUpdateType();\\n\\n    /**\\n     * @notice Thrown when an empty update type string is provided\\n     */\\n    error InvalidUpdateType();\\n\\n    /**\\n     * @notice Thrown when a debounce value of 0 is set\\n     */\\n    error InvalidDebounce();\\n\\n    /**\\n     * @notice Thrown when a timelock value is greater than or equal to the expiration time\\n     */\\n    error InvalidTimelock();\\n\\n    /**\\n     * @notice Thrown when update unlock time has not been reached\\n     */\\n    error UpdateNotUnlocked();\\n\\n    /**\\n     * @notice Thrown when trying to resolve an update that doesn't exist\\n     */\\n    error UpdateNotFound();\\n\\n    /**\\n     * @notice Thrown when an address is not an executor\\n     */\\n    error NotAnExecutor();\\n\\n    /**\\n     * @notice Thrown when there is a non-expired pending update of the same type for the market\\n     */\\n    error RegisteredUpdateTypeExist(uint256);\\n\\n    /**\\n     * @notice Thrown when trying to resend an update that is not in SENT_TO_DESTINATION status\\n     */\\n    error InvalidUpdateToResend();\\n\\n    /**\\n     * @notice Thrown when trying to execute an update that was never registered\\n     */\\n    error InvalidRegisteredUpdate();\\n\\n    /**\\n     * @notice Thrown when attempting to call lzSend from an address other than this contract\\n     */\\n    error InvalidLzSendCaller();\\n\\n    /**\\n     * @notice Thrown when trying to renounce ownership\\n     */\\n    error RenounceOwnershipNotAllowed();\\n\\n    /**\\n     * @notice Thrown when processUpdate is called while the contract is paused\\n     */\\n    error PausedError();\\n\\n    /**\\n     * @notice Thrown when an invalid LayerZero endpoint ID is provided\\n     */\\n    error InvalidLayerZeroEid();\\n\\n    /**\\n     * @notice Thrown when trying to set the same pause status\\n     */\\n    error PauseStatusUnchanged();\\n\\n    /**\\n     * @notice Thrown when trying to set the same config active status\\n     */\\n    error ConfigStatusUnchanged();\\n\\n    /**\\n     * @notice Thrown when trying to set the same executor whitelist status\\n     */\\n    error ExecutorStatusUnchanged();\\n\\n    /**\\n     * @notice Thrown when an update will expire before its timelock unlocks\\n     */\\n    error UpdateWillExpireBeforeUnlock();\\n\\n    function getRiskParameterConfig(string calldata updateType) external view returns (RiskParamConfig memory);\\n\\n    function getLastProcessedUpdate(string calldata updateType, address market) external view returns (uint256);\\n\\n    function getLastRegisteredUpdate(string calldata updateType, address market) external view returns (uint256);\\n\\n    function setRiskParameterConfig(\\n        string calldata updateType,\\n        address riskSteward,\\n        uint256 debounce,\\n        uint256 timelock\\n    ) external;\\n\\n    function setConfigActive(string calldata updateType, bool active) external;\\n\\n    function setWhitelistedExecutor(address executor, bool approved) external;\\n\\n    function processUpdate(uint256 updateId) external;\\n\\n    function executeRegisteredUpdate(uint256 updateId) external;\\n\\n    function rejectUpdate(uint256 updateId) external;\\n\\n    function resendRemoteUpdate(uint256 updateId, bytes calldata options) external payable;\\n\\n    function getExecutableUpdates(\\n        string calldata updateType,\\n        address comptroller\\n    ) external view returns (uint256[] memory executableUpdates);\\n\\n    function isUpdateExecutable(uint256 updateId) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x206b4763cfe62155718edb4b53ee48d6e5204b81cbfac705808d2ffd3225bb12\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"errors":{"ConfigNotActive()":[{"notice":"Thrown if a submitted update is not active and therefore cannot be processed"}],"ConfigStatusUnchanged()":[{"notice":"Thrown when trying to set the same config active status"}],"ExecutorStatusUnchanged()":[{"notice":"Thrown when trying to set the same executor whitelist status"}],"InvalidDebounce()":[{"notice":"Thrown when a debounce value of 0 is set"}],"InvalidLayerZeroEid()":[{"notice":"Thrown when an invalid LayerZero endpoint ID is provided"}],"InvalidLzSendCaller()":[{"notice":"Thrown when attempting to call lzSend from an address other than this contract"}],"InvalidRegisteredUpdate()":[{"notice":"Thrown when trying to execute an update that was never registered"}],"InvalidTimelock()":[{"notice":"Thrown when a timelock value is greater than or equal to the expiration time"}],"InvalidUpdateToResend()":[{"notice":"Thrown when trying to resend an update that is not in SENT_TO_DESTINATION status"}],"InvalidUpdateType()":[{"notice":"Thrown when an empty update type string is provided"}],"NotAnExecutor()":[{"notice":"Thrown when an address is not an executor"}],"PauseStatusUnchanged()":[{"notice":"Thrown when trying to set the same pause status"}],"PausedError()":[{"notice":"Thrown when processUpdate is called while the contract is paused"}],"RegisteredUpdateTypeExist(uint256)":[{"notice":"Thrown when there is a non-expired pending update of the same type for the market"}],"RenounceOwnershipNotAllowed()":[{"notice":"Thrown when trying to renounce ownership"}],"UnsupportedUpdateType()":[{"notice":"Thrown when an update type that is not supported is operated on"}],"UpdateAlreadyResolved()":[{"notice":"Thrown when an update has already been processed"}],"UpdateIsExpired()":[{"notice":"Thrown when an update was not applied within the required time frame"}],"UpdateNotFound()":[{"notice":"Thrown when trying to resolve an update that doesn't exist"}],"UpdateNotUnlocked()":[{"notice":"Thrown when update unlock time has not been reached"}],"UpdateTooFrequent()":[{"notice":"Thrown when the debounce period hasn't passed for applying an update to a specific market / update type"}],"UpdateWillExpireBeforeUnlock()":[{"notice":"Thrown when an update will expire before its timelock unlocks"}]},"events":{"ConfigActiveUpdated(bytes32,string,bool,bool)":{"notice":"Event emitted when a risk parameter config active status is set"},"ExecutorStatusUpdated(address,bool,bool)":{"notice":"Event emitted when an executor status is set"},"PauseStatusUpdated(bool,bool)":{"notice":"Event emitted when the pause status changes"},"RiskParameterConfigUpdated(bytes32,string,address,address,uint256,uint256,uint256,uint256,bool,bool)":{"notice":"Event emitted when a risk parameter config is set"},"SweepNative(address,uint256)":{"notice":"Emitted when leftover native tokens are swept by owner"},"UpdateExecuted(uint256)":{"notice":"Event emitted when an update is successfully executed"},"UpdateExpired(uint256)":{"notice":"Event emitted when an update is marked as expired"},"UpdateRegistered(uint256,uint256,string,address)":{"notice":"Event emitted when an update is registered"},"UpdateRejected(uint256)":{"notice":"Event emitted when an update is rejected"},"UpdateResentToDestination(uint256,uint32,string,address)":{"notice":"Event emitted when an update is resent to a destination chain"},"UpdateSentToDestination(uint256,uint32,string,address)":{"notice":"Event emitted when an update is sent to a destination chain"}},"kind":"user","methods":{},"version":1}}},"contracts/RiskSteward/MarketCapsRiskSteward.sol":{"MarketCapsRiskSteward":{"abi":[{"inputs":[{"internalType":"address","name":"riskStewardReceiver_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidSafeDeltaBps","type":"error"},{"inputs":[],"name":"InvalidUintLength","type":"error"},{"inputs":[],"name":"OnlyRiskStewardReceiver","type":"error"},{"inputs":[],"name":"RedundantValue","type":"error"},{"inputs":[],"name":"RenounceOwnershipNotAllowed","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"calledContract","type":"address"},{"internalType":"string","name":"methodSignature","type":"string"}],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"UnsupportedUpdateType","type":"error"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"updateId","type":"uint256"},{"indexed":true,"internalType":"address","name":"market","type":"address"},{"indexed":false,"internalType":"uint256","name":"newBorrowCap","type":"uint256"}],"name":"BorrowCapUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldAccessControlManager","type":"address"},{"indexed":false,"internalType":"address","name":"newAccessControlManager","type":"address"}],"name":"NewAccessControlManager","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","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":"uint256","name":"oldSafeDeltaBps","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newSafeDeltaBps","type":"uint256"}],"name":"SafeDeltaBpsUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"updateId","type":"uint256"},{"indexed":true,"internalType":"address","name":"market","type":"address"},{"indexed":false,"internalType":"uint256","name":"newSupplyCap","type":"uint256"}],"name":"SupplyCapUpdated","type":"event"},{"inputs":[],"name":"BORROW_CAP","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BORROW_CAP_KEY","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RISK_STEWARD_RECEIVER","outputs":[{"internalType":"contract IRiskStewardReceiver","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SUPPLY_CAP","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SUPPLY_CAP_KEY","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"accessControlManager","outputs":[{"internalType":"contract IAccessControlManagerV8","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"referenceId","type":"string"},{"internalType":"uint256","name":"updateId","type":"uint256"},{"internalType":"address","name":"market","type":"address"},{"internalType":"string","name":"updateType","type":"string"},{"internalType":"bytes32","name":"updateTypeKey","type":"bytes32"},{"internalType":"bytes","name":"newValue","type":"bytes"},{"internalType":"bytes","name":"previousValue","type":"bytes"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"address","name":"publisher","type":"address"},{"internalType":"uint96","name":"poolId","type":"uint96"},{"internalType":"uint32","name":"destLzEid","type":"uint32"},{"internalType":"bytes","name":"additionalData","type":"bytes"}],"internalType":"struct RiskParameterUpdate","name":"update","type":"tuple"}],"name":"applyUpdate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"accessControlManager_","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"referenceId","type":"string"},{"internalType":"uint256","name":"updateId","type":"uint256"},{"internalType":"address","name":"market","type":"address"},{"internalType":"string","name":"updateType","type":"string"},{"internalType":"bytes32","name":"updateTypeKey","type":"bytes32"},{"internalType":"bytes","name":"newValue","type":"bytes"},{"internalType":"bytes","name":"previousValue","type":"bytes"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"address","name":"publisher","type":"address"},{"internalType":"uint96","name":"poolId","type":"uint96"},{"internalType":"uint32","name":"destLzEid","type":"uint32"},{"internalType":"bytes","name":"additionalData","type":"bytes"}],"internalType":"struct RiskParameterUpdate","name":"update","type":"tuple"}],"name":"isSafeForDirectExecution","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"safeDeltaBps","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"accessControlManager_","type":"address"}],"name":"setAccessControlManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"safeDeltaBps_","type":"uint256"}],"name":"setSafeDeltaBps","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Venus","custom:security-contact":"https://github.com/VenusProtocol/governance-contracts#discussion","events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."}},"kind":"dev","methods":{"acceptOwnership()":{"details":"The new owner accepts the ownership transfer."},"applyUpdate((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))":{"custom:access":"Only callable by the RiskStewardReceiver","custom:error":"Throws OnlyRiskStewardReceiver if the sender is not the RiskStewardReceiverThrows UnsupportedUpdateType if the update type is not supported","custom:event":"Emits SupplyCapUpdated or BorrowCapUpdated depending on the update with the updateId, market and new cap","params":{"update":"RiskParameterUpdate update to apply"}},"constructor":{"custom:error":"Throws ZeroAddressNotAllowed if the RiskStewardReceiver address is zero","custom:oz-upgrades-unsafe-allow":"constructor","params":{"riskStewardReceiver_":"The address of the RiskStewardReceiver"}},"initialize(address)":{"params":{"accessControlManager_":"The address of the access control manager"}},"isSafeForDirectExecution((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))":{"custom:error":"Throws UnsupportedUpdateType if the update type is not supportedThrows RedundantValue if the new cap value is equal to the current cap value","params":{"update":"The update to check"},"returns":{"_0":"True if update is safe for direct execution, false if timelock is required"}},"owner()":{"details":"Returns the address of the current owner."},"pendingOwner()":{"details":"Returns the address of the pending owner."},"renounceOwnership()":{"custom:error":"Throws RenounceOwnershipNotAllowed"},"setAccessControlManager(address)":{"custom:access":"Only Governance","custom:event":"Emits NewAccessControlManager event","details":"Admin function to set address of AccessControlManager","params":{"accessControlManager_":"The new address of the AccessControlManager"}},"setSafeDeltaBps(uint256)":{"custom:access":"Controlled by AccessControlManager","custom:error":"Throws InvalidSafeDeltaBps if the safe delta bps is greater than MAX_BPSThrows RedundantValue if the new safe delta bps is equal to the current value","custom:event":"Emits SafeDeltaBpsUpdated with the old and new safe delta bps","params":{"safeDeltaBps_":"The new safe delta bps"}},"transferOwnership(address)":{"details":"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner."}},"stateVariables":{"__gap":{"details":"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"}},"title":"MarketCapsRiskSteward","version":1},"evm":{"bytecode":{"functionDebugData":{"@_17251":{"entryPoint":null,"id":17251,"parameterSlots":1,"returnSlots":0},"@_disableInitializers_6229":{"entryPoint":125,"id":6229,"parameterSlots":0,"returnSlots":0},"@ensureNonzeroAddress_10945":{"entryPoint":83,"id":10945,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":317,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:903:97","nodeType":"YulBlock","src":"0:903:97","statements":[{"nativeSrc":"6:3:97","nodeType":"YulBlock","src":"6:3:97","statements":[]},{"body":{"nativeSrc":"95:209:97","nodeType":"YulBlock","src":"95:209:97","statements":[{"body":{"nativeSrc":"141:16:97","nodeType":"YulBlock","src":"141:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"150:1:97","nodeType":"YulLiteral","src":"150:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"153:1:97","nodeType":"YulLiteral","src":"153:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"143:6:97","nodeType":"YulIdentifier","src":"143:6:97"},"nativeSrc":"143:12:97","nodeType":"YulFunctionCall","src":"143:12:97"},"nativeSrc":"143:12:97","nodeType":"YulExpressionStatement","src":"143:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"116:7:97","nodeType":"YulIdentifier","src":"116:7:97"},{"name":"headStart","nativeSrc":"125:9:97","nodeType":"YulIdentifier","src":"125:9:97"}],"functionName":{"name":"sub","nativeSrc":"112:3:97","nodeType":"YulIdentifier","src":"112:3:97"},"nativeSrc":"112:23:97","nodeType":"YulFunctionCall","src":"112:23:97"},{"kind":"number","nativeSrc":"137:2:97","nodeType":"YulLiteral","src":"137:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"108:3:97","nodeType":"YulIdentifier","src":"108:3:97"},"nativeSrc":"108:32:97","nodeType":"YulFunctionCall","src":"108:32:97"},"nativeSrc":"105:52:97","nodeType":"YulIf","src":"105:52:97"},{"nativeSrc":"166:29:97","nodeType":"YulVariableDeclaration","src":"166:29:97","value":{"arguments":[{"name":"headStart","nativeSrc":"185:9:97","nodeType":"YulIdentifier","src":"185:9:97"}],"functionName":{"name":"mload","nativeSrc":"179:5:97","nodeType":"YulIdentifier","src":"179:5:97"},"nativeSrc":"179:16:97","nodeType":"YulFunctionCall","src":"179:16:97"},"variables":[{"name":"value","nativeSrc":"170:5:97","nodeType":"YulTypedName","src":"170:5:97","type":""}]},{"body":{"nativeSrc":"258:16:97","nodeType":"YulBlock","src":"258:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"267:1:97","nodeType":"YulLiteral","src":"267:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"270:1:97","nodeType":"YulLiteral","src":"270:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"260:6:97","nodeType":"YulIdentifier","src":"260:6:97"},"nativeSrc":"260:12:97","nodeType":"YulFunctionCall","src":"260:12:97"},"nativeSrc":"260:12:97","nodeType":"YulExpressionStatement","src":"260:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"217:5:97","nodeType":"YulIdentifier","src":"217:5:97"},{"arguments":[{"name":"value","nativeSrc":"228:5:97","nodeType":"YulIdentifier","src":"228:5:97"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"243:3:97","nodeType":"YulLiteral","src":"243:3:97","type":"","value":"160"},{"kind":"number","nativeSrc":"248:1:97","nodeType":"YulLiteral","src":"248:1:97","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"239:3:97","nodeType":"YulIdentifier","src":"239:3:97"},"nativeSrc":"239:11:97","nodeType":"YulFunctionCall","src":"239:11:97"},{"kind":"number","nativeSrc":"252:1:97","nodeType":"YulLiteral","src":"252:1:97","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"235:3:97","nodeType":"YulIdentifier","src":"235:3:97"},"nativeSrc":"235:19:97","nodeType":"YulFunctionCall","src":"235:19:97"}],"functionName":{"name":"and","nativeSrc":"224:3:97","nodeType":"YulIdentifier","src":"224:3:97"},"nativeSrc":"224:31:97","nodeType":"YulFunctionCall","src":"224:31:97"}],"functionName":{"name":"eq","nativeSrc":"214:2:97","nodeType":"YulIdentifier","src":"214:2:97"},"nativeSrc":"214:42:97","nodeType":"YulFunctionCall","src":"214:42:97"}],"functionName":{"name":"iszero","nativeSrc":"207:6:97","nodeType":"YulIdentifier","src":"207:6:97"},"nativeSrc":"207:50:97","nodeType":"YulFunctionCall","src":"207:50:97"},"nativeSrc":"204:70:97","nodeType":"YulIf","src":"204:70:97"},{"nativeSrc":"283:15:97","nodeType":"YulAssignment","src":"283:15:97","value":{"name":"value","nativeSrc":"293:5:97","nodeType":"YulIdentifier","src":"293:5:97"},"variableNames":[{"name":"value0","nativeSrc":"283:6:97","nodeType":"YulIdentifier","src":"283:6:97"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nativeSrc":"14:290:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"61:9:97","nodeType":"YulTypedName","src":"61:9:97","type":""},{"name":"dataEnd","nativeSrc":"72:7:97","nodeType":"YulTypedName","src":"72:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"84:6:97","nodeType":"YulTypedName","src":"84:6:97","type":""}],"src":"14:290:97"},{"body":{"nativeSrc":"483:229:97","nodeType":"YulBlock","src":"483:229:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"500:9:97","nodeType":"YulIdentifier","src":"500:9:97"},{"kind":"number","nativeSrc":"511:2:97","nodeType":"YulLiteral","src":"511:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"493:6:97","nodeType":"YulIdentifier","src":"493:6:97"},"nativeSrc":"493:21:97","nodeType":"YulFunctionCall","src":"493:21:97"},"nativeSrc":"493:21:97","nodeType":"YulExpressionStatement","src":"493:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"534:9:97","nodeType":"YulIdentifier","src":"534:9:97"},{"kind":"number","nativeSrc":"545:2:97","nodeType":"YulLiteral","src":"545:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"530:3:97","nodeType":"YulIdentifier","src":"530:3:97"},"nativeSrc":"530:18:97","nodeType":"YulFunctionCall","src":"530:18:97"},{"kind":"number","nativeSrc":"550:2:97","nodeType":"YulLiteral","src":"550:2:97","type":"","value":"39"}],"functionName":{"name":"mstore","nativeSrc":"523:6:97","nodeType":"YulIdentifier","src":"523:6:97"},"nativeSrc":"523:30:97","nodeType":"YulFunctionCall","src":"523:30:97"},"nativeSrc":"523:30:97","nodeType":"YulExpressionStatement","src":"523:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"573:9:97","nodeType":"YulIdentifier","src":"573:9:97"},{"kind":"number","nativeSrc":"584:2:97","nodeType":"YulLiteral","src":"584:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"569:3:97","nodeType":"YulIdentifier","src":"569:3:97"},"nativeSrc":"569:18:97","nodeType":"YulFunctionCall","src":"569:18:97"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320696e697469","kind":"string","nativeSrc":"589:34:97","nodeType":"YulLiteral","src":"589:34:97","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nativeSrc":"562:6:97","nodeType":"YulIdentifier","src":"562:6:97"},"nativeSrc":"562:62:97","nodeType":"YulFunctionCall","src":"562:62:97"},"nativeSrc":"562:62:97","nodeType":"YulExpressionStatement","src":"562:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"644:9:97","nodeType":"YulIdentifier","src":"644:9:97"},{"kind":"number","nativeSrc":"655:2:97","nodeType":"YulLiteral","src":"655:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"640:3:97","nodeType":"YulIdentifier","src":"640:3:97"},"nativeSrc":"640:18:97","nodeType":"YulFunctionCall","src":"640:18:97"},{"hexValue":"616c697a696e67","kind":"string","nativeSrc":"660:9:97","nodeType":"YulLiteral","src":"660:9:97","type":"","value":"alizing"}],"functionName":{"name":"mstore","nativeSrc":"633:6:97","nodeType":"YulIdentifier","src":"633:6:97"},"nativeSrc":"633:37:97","nodeType":"YulFunctionCall","src":"633:37:97"},"nativeSrc":"633:37:97","nodeType":"YulExpressionStatement","src":"633:37:97"},{"nativeSrc":"679:27:97","nodeType":"YulAssignment","src":"679:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"691:9:97","nodeType":"YulIdentifier","src":"691:9:97"},{"kind":"number","nativeSrc":"702:3:97","nodeType":"YulLiteral","src":"702:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"687:3:97","nodeType":"YulIdentifier","src":"687:3:97"},"nativeSrc":"687:19:97","nodeType":"YulFunctionCall","src":"687:19:97"},"variableNames":[{"name":"tail","nativeSrc":"679:4:97","nodeType":"YulIdentifier","src":"679:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"309:403:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"460:9:97","nodeType":"YulTypedName","src":"460:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"474:4:97","nodeType":"YulTypedName","src":"474:4:97","type":""}],"src":"309:403:97"},{"body":{"nativeSrc":"814:87:97","nodeType":"YulBlock","src":"814:87:97","statements":[{"nativeSrc":"824:26:97","nodeType":"YulAssignment","src":"824:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"836:9:97","nodeType":"YulIdentifier","src":"836:9:97"},{"kind":"number","nativeSrc":"847:2:97","nodeType":"YulLiteral","src":"847:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"832:3:97","nodeType":"YulIdentifier","src":"832:3:97"},"nativeSrc":"832:18:97","nodeType":"YulFunctionCall","src":"832:18:97"},"variableNames":[{"name":"tail","nativeSrc":"824:4:97","nodeType":"YulIdentifier","src":"824:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"866:9:97","nodeType":"YulIdentifier","src":"866:9:97"},{"arguments":[{"name":"value0","nativeSrc":"881:6:97","nodeType":"YulIdentifier","src":"881:6:97"},{"kind":"number","nativeSrc":"889:4:97","nodeType":"YulLiteral","src":"889:4:97","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"877:3:97","nodeType":"YulIdentifier","src":"877:3:97"},"nativeSrc":"877:17:97","nodeType":"YulFunctionCall","src":"877:17:97"}],"functionName":{"name":"mstore","nativeSrc":"859:6:97","nodeType":"YulIdentifier","src":"859:6:97"},"nativeSrc":"859:36:97","nodeType":"YulFunctionCall","src":"859:36:97"},"nativeSrc":"859:36:97","nodeType":"YulExpressionStatement","src":"859:36:97"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"717:184:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"783:9:97","nodeType":"YulTypedName","src":"783:9:97","type":""},{"name":"value0","nativeSrc":"794:6:97","nodeType":"YulTypedName","src":"794:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"805:4:97","nodeType":"YulTypedName","src":"805:4:97","type":""}],"src":"717:184:97"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 39)\n        mstore(add(headStart, 64), \"Initializable: contract is initi\")\n        mstore(add(headStart, 96), \"alizing\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n}","id":97,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a060405234801561001057600080fd5b50604051611c13380380611c1383398101604081905261002f9161013d565b61003881610053565b6001600160a01b03811660805261004d61007d565b5061016d565b6001600160a01b03811661007a576040516342bcdf7f60e11b815260040160405180910390fd5b50565b600054610100900460ff16156100e95760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561013b576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60006020828403121561014f57600080fd5b81516001600160a01b038116811461016657600080fd5b9392505050565b608051611a8461018f600039600081816102b701526108d10152611a846000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c8063a0209e43116100b2578063c099f28411610081578063e30c397811610066578063e30c397814610379578063ee97f26514610397578063f2fde38b146103a057600080fd5b8063c099f2841461030a578063c4d66de81461036657600080fd5b8063a0209e4314610248578063b296e6cb146102b2578063b4a0bdf3146102d9578063bf637839146102f757600080fd5b8063715018a6116100ee578063715018a6146101bd57806377907191146101c557806379ba5097146102015780638da5cb5b1461020957600080fd5b80630cfccc83146101205780630e32cb86146101725780632c47d86f1461018757806342b7cfbd1461019a575b600080fd5b61015c6040518060400160405280600981526020017f737570706c79436170000000000000000000000000000000000000000000000081525081565b6040516101699190611718565b60405180910390f35b610185610180366004611754565b6103b3565b005b610185610195366004611771565b6103c7565b6101ad6101a836600461178a565b6104c0565b6040519015158152602001610169565b6101856107d0565b61015c6040518060400160405280600981526020017f626f72726f77436170000000000000000000000000000000000000000000000081525081565b610185610802565b60335473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610169565b60408051808201909152600981527f737570706c7943617000000000000000000000000000000000000000000000006020909101526102a47f068e90f21e6e5d3d0c48f5983b5b5b9b9e7c4efbb8b596ef6c729c6870a3c94381565b604051908152602001610169565b6102237f000000000000000000000000000000000000000000000000000000000000000081565b60975473ffffffffffffffffffffffffffffffffffffffff16610223565b61018561030536600461178a565b6108b9565b60408051808201909152600981527f626f72726f7743617000000000000000000000000000000000000000000000006020909101526102a47fcec723f9fbde52ce895e2dc35ea3c6d14c9e1de94ef0a9e37f9d251de1a7817581565b610185610374366004611754565b610a3c565b60655473ffffffffffffffffffffffffffffffffffffffff16610223565b6102a460c95481565b6101856103ae366004611754565b610bc8565b6103bb610c78565b6103c481610cfb565b50565b6104056040518060400160405280601881526020017f7365745361666544656c74614270732875696e74323536290000000000000000815250610e1d565b612710811115610441576040517fc514758500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60c95480820361047d576040517f925cd79500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60c982905560408051828152602081018490527fa05c0cb0e77decc6503407c6ca159106b8b001d9feb7927d08fad60094a934ab91015b60405180910390a15050565b60008061050d6104d360a08501856117c6565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610ef692505050565b905060006105216060850160408601611754565b73ffffffffffffffffffffffffffffffffffffffff16635fe3b5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561056b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061058f9190611832565b60408051808201909152600981527f737570706c794361700000000000000000000000000000000000000000000000602090910152905060007ff9716f0de191a2c2f3b70a67c4a4a4646183b104474a6910938d63978f5c36bd6080860135016106b35773ffffffffffffffffffffffffffffffffffffffff82166302c3bcbb61061f6060880160408901611754565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401602060405180830381865afa158015610688573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ac919061184f565b9050610771565b60408051808201909152600981527f626f72726f7743617000000000000000000000000000000000000000000000006020909101527f3138dc060421ad3176a1d23ca15c392eb361e216b10f561c8062dae21e587e8b60808601350161073f5773ffffffffffffffffffffffffffffffffffffffff8216634a58443261061f6060880160408901611754565b6040517f80919d7b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8083036107aa576040517f925cd79500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806000036107bd57506000949350505050565b6107c78382610f4d565b95945050505050565b6040517f96c553eb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606554339073ffffffffffffffffffffffffffffffffffffffff1681146108b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e6572000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6103c481610f9b565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610928576040517f3a739dd700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061093a6104d360a08401846117c6565b60408051808201909152600981527f737570706c79436170000000000000000000000000000000000000000000000060209091015290507ff9716f0de191a2c2f3b70a67c4a4a4646183b104474a6910938d63978f5c36bd6080830135016109be576109ba60208301356109b46060850160408601611754565b83610fcc565b5050565b60408051808201909152600981527f626f72726f7743617000000000000000000000000000000000000000000000006020909101527f3138dc060421ad3176a1d23ca15c392eb361e216b10f561c8062dae21e587e8b60808301350161073f576109ba6020830135610a366060850160408601611754565b836111d9565b600054610100900460ff1615808015610a5c5750600054600160ff909116105b80610a765750303b158015610a76575060005460ff166001145b610b02576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016108a7565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610b6057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610b69826113bf565b80156109ba57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020016104b4565b610bd0610c78565b6065805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff00000000000000000000000000000000000000009091168117909155610c3360335473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60335473ffffffffffffffffffffffffffffffffffffffff163314610cf9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108a7565b565b73ffffffffffffffffffffffffffffffffffffffff8116610d9e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e6167657220616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016108a7565b6097805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa091016104b4565b6097546040517f18c5e8ab00000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff16906318c5e8ab90610e769033908690600401611868565b602060405180830381865afa158015610e93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb7919061189f565b9050806109ba573330836040517f4a3fa2930000000000000000000000000000000000000000000000000000000081526004016108a7939291906118c1565b60008151602014610f33576040517fccb08e2300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81806020019051810190610f47919061184f565b92915050565b600080828411610f6657610f618484611929565b610f70565b610f708385611929565b905060006127108460c954610f85919061193c565b610f8f9190611953565b90911115949350505050565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556103c481611467565b60008273ffffffffffffffffffffffffffffffffffffffff16635fe3b5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611019573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103d9190611832565b604080516001808252818301909252919250600091906020808301908036833701905050905083816000815181106110775761107761198e565b73ffffffffffffffffffffffffffffffffffffffff929092166020928302919091019091015260408051600180825281830190925260009181602001602082028036833701905050905083816000815181106110d5576110d561198e565b60209081029190910101526040517fd136af4400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063d136af449061113490859085906004016119bd565b600060405180830381600087803b15801561114e57600080fd5b505af1158015611162573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff16867f4cf0c4bb7f5084ce4791920af9e571c6edb179b9f96f39ede8ce00c922d17cdd836000815181106111b2576111b261198e565b60200260200101516040516111c991815260200190565b60405180910390a3505050505050565b60008273ffffffffffffffffffffffffffffffffffffffff16635fe3b5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611226573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124a9190611832565b604080516001808252818301909252919250600091906020808301908036833701905050905083816000815181106112845761128461198e565b73ffffffffffffffffffffffffffffffffffffffff929092166020928302919091019091015260408051600180825281830190925260009181602001602082028036833701905050905083816000815181106112e2576112e261198e565b60209081029190910101526040517f186db48f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063186db48f9061134190859085906004016119bd565b600060405180830381600087803b15801561135b57600080fd5b505af115801561136f573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff16867fbe10220f8157f2d411dd6d5eb60524226528994d5a4ae89c640ae08ee21fb840836000815181106111b2576111b261198e565b600054610100900460ff16611456576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108a7565b61145e6114de565b6103c48161157d565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16611575576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108a7565b610cf9611614565b600054610100900460ff166103bb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108a7565b600054610100900460ff166116ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108a7565b610cf933610f9b565b6000815180845260005b818110156116da576020818501810151868301820152016116be565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b60208152600061172b60208301846116b4565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff811681146103c457600080fd5b60006020828403121561176657600080fd5b813561172b81611732565b60006020828403121561178357600080fd5b5035919050565b60006020828403121561179c57600080fd5b813567ffffffffffffffff8111156117b357600080fd5b8201610180818503121561172b57600080fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126117fb57600080fd5b83018035915067ffffffffffffffff82111561181657600080fd5b60200191503681900382131561182b57600080fd5b9250929050565b60006020828403121561184457600080fd5b815161172b81611732565b60006020828403121561186157600080fd5b5051919050565b73ffffffffffffffffffffffffffffffffffffffff8316815260406020820152600061189760408301846116b4565b949350505050565b6000602082840312156118b157600080fd5b8151801515811461172b57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff8086168352808516602084015250606060408301526107c760608301846116b4565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115610f4757610f476118fa565b8082028115828204841417610f4757610f476118fa565b600082611989577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b604080825283519082018190526000906020906060840190828701845b82811015611a0c57815173ffffffffffffffffffffffffffffffffffffffff16845292840192908401906001016119da565b5050508381038285015284518082528583019183019060005b81811015611a4157835183529284019291840191600101611a25565b509097965050505050505056fea2646970667358221220d3f5096b9cdae18ca575d1be4720748a32b7fc0683ab0aa09c9bf1689fb65af964736f6c63430008190033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x1C13 CODESIZE SUB DUP1 PUSH2 0x1C13 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x13D JUMP JUMPDEST PUSH2 0x38 DUP2 PUSH2 0x53 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x80 MSTORE PUSH2 0x4D PUSH2 0x7D JUMP JUMPDEST POP PUSH2 0x16D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x7A JUMPI PUSH1 0x40 MLOAD PUSH4 0x42BCDF7F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xE9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND LT ISZERO PUSH2 0x13B JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x166 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x1A84 PUSH2 0x18F PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x2B7 ADD MSTORE PUSH2 0x8D1 ADD MSTORE PUSH2 0x1A84 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x11B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA0209E43 GT PUSH2 0xB2 JUMPI DUP1 PUSH4 0xC099F284 GT PUSH2 0x81 JUMPI DUP1 PUSH4 0xE30C3978 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x379 JUMPI DUP1 PUSH4 0xEE97F265 EQ PUSH2 0x397 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xC099F284 EQ PUSH2 0x30A JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x366 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA0209E43 EQ PUSH2 0x248 JUMPI DUP1 PUSH4 0xB296E6CB EQ PUSH2 0x2B2 JUMPI DUP1 PUSH4 0xB4A0BDF3 EQ PUSH2 0x2D9 JUMPI DUP1 PUSH4 0xBF637839 EQ PUSH2 0x2F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x715018A6 GT PUSH2 0xEE JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x1BD JUMPI DUP1 PUSH4 0x77907191 EQ PUSH2 0x1C5 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x201 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x209 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCFCCC83 EQ PUSH2 0x120 JUMPI DUP1 PUSH4 0xE32CB86 EQ PUSH2 0x172 JUMPI DUP1 PUSH4 0x2C47D86F EQ PUSH2 0x187 JUMPI DUP1 PUSH4 0x42B7CFBD EQ PUSH2 0x19A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x15C PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x737570706C794361700000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x169 SWAP2 SWAP1 PUSH2 0x1718 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x185 PUSH2 0x180 CALLDATASIZE PUSH1 0x4 PUSH2 0x1754 JUMP JUMPDEST PUSH2 0x3B3 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x185 PUSH2 0x195 CALLDATASIZE PUSH1 0x4 PUSH2 0x1771 JUMP JUMPDEST PUSH2 0x3C7 JUMP JUMPDEST PUSH2 0x1AD PUSH2 0x1A8 CALLDATASIZE PUSH1 0x4 PUSH2 0x178A JUMP JUMPDEST PUSH2 0x4C0 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x169 JUMP JUMPDEST PUSH2 0x185 PUSH2 0x7D0 JUMP JUMPDEST PUSH2 0x15C PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x626F72726F774361700000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x185 PUSH2 0x802 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x169 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x9 DUP2 MSTORE PUSH32 0x737570706C794361700000000000000000000000000000000000000000000000 PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE PUSH2 0x2A4 PUSH32 0x68E90F21E6E5D3D0C48F5983B5B5B9B9E7C4EFBB8B596EF6C729C6870A3C943 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x169 JUMP JUMPDEST PUSH2 0x223 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x223 JUMP JUMPDEST PUSH2 0x185 PUSH2 0x305 CALLDATASIZE PUSH1 0x4 PUSH2 0x178A JUMP JUMPDEST PUSH2 0x8B9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x9 DUP2 MSTORE PUSH32 0x626F72726F774361700000000000000000000000000000000000000000000000 PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE PUSH2 0x2A4 PUSH32 0xCEC723F9FBDE52CE895E2DC35EA3C6D14C9E1DE94EF0A9E37F9D251DE1A78175 DUP2 JUMP JUMPDEST PUSH2 0x185 PUSH2 0x374 CALLDATASIZE PUSH1 0x4 PUSH2 0x1754 JUMP JUMPDEST PUSH2 0xA3C JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x223 JUMP JUMPDEST PUSH2 0x2A4 PUSH1 0xC9 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x185 PUSH2 0x3AE CALLDATASIZE PUSH1 0x4 PUSH2 0x1754 JUMP JUMPDEST PUSH2 0xBC8 JUMP JUMPDEST PUSH2 0x3BB PUSH2 0xC78 JUMP JUMPDEST PUSH2 0x3C4 DUP2 PUSH2 0xCFB JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x405 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x18 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x7365745361666544656C74614270732875696E74323536290000000000000000 DUP2 MSTORE POP PUSH2 0xE1D JUMP JUMPDEST PUSH2 0x2710 DUP2 GT ISZERO PUSH2 0x441 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC514758500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xC9 SLOAD DUP1 DUP3 SUB PUSH2 0x47D JUMPI PUSH1 0x40 MLOAD PUSH32 0x925CD79500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xC9 DUP3 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0xA05C0CB0E77DECC6503407C6CA159106B8B001D9FEB7927D08FAD60094A934AB SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x50D PUSH2 0x4D3 PUSH1 0xA0 DUP6 ADD DUP6 PUSH2 0x17C6 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0xEF6 SWAP3 POP POP POP JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x521 PUSH1 0x60 DUP6 ADD PUSH1 0x40 DUP7 ADD PUSH2 0x1754 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x5FE3B567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x56B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x58F SWAP2 SWAP1 PUSH2 0x1832 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x9 DUP2 MSTORE PUSH32 0x737570706C794361700000000000000000000000000000000000000000000000 PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE SWAP1 POP PUSH1 0x0 PUSH32 0xF9716F0DE191A2C2F3B70A67C4A4A4646183B104474A6910938D63978F5C36BD PUSH1 0x80 DUP7 ADD CALLDATALOAD ADD PUSH2 0x6B3 JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH4 0x2C3BCBB PUSH2 0x61F PUSH1 0x60 DUP9 ADD PUSH1 0x40 DUP10 ADD PUSH2 0x1754 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x688 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x6AC SWAP2 SWAP1 PUSH2 0x184F JUMP JUMPDEST SWAP1 POP PUSH2 0x771 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x9 DUP2 MSTORE PUSH32 0x626F72726F774361700000000000000000000000000000000000000000000000 PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE PUSH32 0x3138DC060421AD3176A1D23CA15C392EB361E216B10F561C8062DAE21E587E8B PUSH1 0x80 DUP7 ADD CALLDATALOAD ADD PUSH2 0x73F JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH4 0x4A584432 PUSH2 0x61F PUSH1 0x60 DUP9 ADD PUSH1 0x40 DUP10 ADD PUSH2 0x1754 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x80919D7B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 DUP4 SUB PUSH2 0x7AA JUMPI PUSH1 0x40 MLOAD PUSH32 0x925CD79500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x0 SUB PUSH2 0x7BD JUMPI POP PUSH1 0x0 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x7C7 DUP4 DUP3 PUSH2 0xF4D JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x96C553EB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x65 SLOAD CALLER SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 EQ PUSH2 0x8B0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C6532537465703A2063616C6C6572206973206E6F742074686520 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E6577206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x3C4 DUP2 PUSH2 0xF9B JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 AND EQ PUSH2 0x928 JUMPI PUSH1 0x40 MLOAD PUSH32 0x3A739DD700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x93A PUSH2 0x4D3 PUSH1 0xA0 DUP5 ADD DUP5 PUSH2 0x17C6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x9 DUP2 MSTORE PUSH32 0x737570706C794361700000000000000000000000000000000000000000000000 PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE SWAP1 POP PUSH32 0xF9716F0DE191A2C2F3B70A67C4A4A4646183B104474A6910938D63978F5C36BD PUSH1 0x80 DUP4 ADD CALLDATALOAD ADD PUSH2 0x9BE JUMPI PUSH2 0x9BA PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x9B4 PUSH1 0x60 DUP6 ADD PUSH1 0x40 DUP7 ADD PUSH2 0x1754 JUMP JUMPDEST DUP4 PUSH2 0xFCC JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x9 DUP2 MSTORE PUSH32 0x626F72726F774361700000000000000000000000000000000000000000000000 PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE PUSH32 0x3138DC060421AD3176A1D23CA15C392EB361E216B10F561C8062DAE21E587E8B PUSH1 0x80 DUP4 ADD CALLDATALOAD ADD PUSH2 0x73F JUMPI PUSH2 0x9BA PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0xA36 PUSH1 0x60 DUP6 ADD PUSH1 0x40 DUP7 ADD PUSH2 0x1754 JUMP JUMPDEST DUP4 PUSH2 0x11D9 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0xA5C JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0xA76 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA76 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0xB02 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x647920696E697469616C697A6564000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8A7 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0xB60 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0xB69 DUP3 PUSH2 0x13BF JUMP JUMPDEST DUP1 ISZERO PUSH2 0x9BA JUMPI PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH2 0x4B4 JUMP JUMPDEST PUSH2 0xBD0 PUSH2 0xC78 JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP1 SWAP2 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0xC33 PUSH1 0x33 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0xCF9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8A7 JUMP JUMPDEST JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0xD9E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C696420616365737320636F6E74726F6C206D616E61676572206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8A7 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 SWAP1 SWAP3 AND DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH32 0x66FD58E82F7B31A2A5C30E0888F3093EFE4E111B00CD2B0C31FE014601293AA0 SWAP2 ADD PUSH2 0x4B4 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0x40 MLOAD PUSH32 0x18C5E8AB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0xE76 SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x1868 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE93 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xEB7 SWAP2 SWAP1 PUSH2 0x189F JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x9BA JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH32 0x4A3FA29300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8A7 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x18C1 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD PUSH1 0x20 EQ PUSH2 0xF33 JUMPI PUSH1 0x40 MLOAD PUSH32 0xCCB08E2300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xF47 SWAP2 SWAP1 PUSH2 0x184F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP5 GT PUSH2 0xF66 JUMPI PUSH2 0xF61 DUP5 DUP5 PUSH2 0x1929 JUMP JUMPDEST PUSH2 0xF70 JUMP JUMPDEST PUSH2 0xF70 DUP4 DUP6 PUSH2 0x1929 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2710 DUP5 PUSH1 0xC9 SLOAD PUSH2 0xF85 SWAP2 SWAP1 PUSH2 0x193C JUMP JUMPDEST PUSH2 0xF8F SWAP2 SWAP1 PUSH2 0x1953 JUMP JUMPDEST SWAP1 SWAP2 GT ISZERO SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND SWAP1 SSTORE PUSH2 0x3C4 DUP2 PUSH2 0x1467 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x5FE3B567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1019 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x103D SWAP2 SWAP1 PUSH2 0x1832 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 SWAP1 PUSH1 0x20 DUP1 DUP4 ADD SWAP1 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP POP SWAP1 POP DUP4 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1077 JUMPI PUSH2 0x1077 PUSH2 0x198E JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP2 SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE PUSH1 0x0 SWAP2 DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP POP SWAP1 POP DUP4 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x10D5 JUMPI PUSH2 0x10D5 PUSH2 0x198E JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x40 MLOAD PUSH32 0xD136AF4400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND SWAP1 PUSH4 0xD136AF44 SWAP1 PUSH2 0x1134 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0x19BD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x114E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1162 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH32 0x4CF0C4BB7F5084CE4791920AF9E571C6EDB179B9F96F39EDE8CE00C922D17CDD DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x11B2 JUMPI PUSH2 0x11B2 PUSH2 0x198E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x11C9 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x5FE3B567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1226 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x124A SWAP2 SWAP1 PUSH2 0x1832 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 SWAP1 PUSH1 0x20 DUP1 DUP4 ADD SWAP1 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP POP SWAP1 POP DUP4 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1284 JUMPI PUSH2 0x1284 PUSH2 0x198E JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP2 SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE PUSH1 0x0 SWAP2 DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP POP SWAP1 POP DUP4 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x12E2 JUMPI PUSH2 0x12E2 PUSH2 0x198E JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x40 MLOAD PUSH32 0x186DB48F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND SWAP1 PUSH4 0x186DB48F SWAP1 PUSH2 0x1341 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0x19BD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x135B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x136F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH32 0xBE10220F8157F2D411DD6D5EB60524226528994D5A4AE89C640AE08EE21FB840 DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x11B2 JUMPI PUSH2 0x11B2 PUSH2 0x198E JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1456 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8A7 JUMP JUMPDEST PUSH2 0x145E PUSH2 0x14DE JUMP JUMPDEST PUSH2 0x3C4 DUP2 PUSH2 0x157D JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1575 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8A7 JUMP JUMPDEST PUSH2 0xCF9 PUSH2 0x1614 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3BB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8A7 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x16AB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8A7 JUMP JUMPDEST PUSH2 0xCF9 CALLER PUSH2 0xF9B JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x16DA JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x16BE JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x172B PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x16B4 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x3C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1766 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x172B DUP2 PUSH2 0x1732 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1783 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x179C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x17B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH2 0x180 DUP2 DUP6 SUB SLT ISZERO PUSH2 0x172B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x17FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1816 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x182B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1844 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x172B DUP2 PUSH2 0x1732 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1861 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1897 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x16B4 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x18B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x172B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP7 AND DUP4 MSTORE DUP1 DUP6 AND PUSH1 0x20 DUP5 ADD MSTORE POP PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x7C7 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x16B4 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0xF47 JUMPI PUSH2 0xF47 PUSH2 0x18FA JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0xF47 JUMPI PUSH2 0xF47 PUSH2 0x18FA JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1989 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 DUP1 DUP3 MSTORE DUP4 MLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x20 SWAP1 PUSH1 0x60 DUP5 ADD SWAP1 DUP3 DUP8 ADD DUP5 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1A0C JUMPI DUP2 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x19DA JUMP JUMPDEST POP POP POP DUP4 DUP2 SUB DUP3 DUP6 ADD MSTORE DUP5 MLOAD DUP1 DUP3 MSTORE DUP6 DUP4 ADD SWAP2 DUP4 ADD SWAP1 PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1A41 JUMPI DUP4 MLOAD DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x1A25 JUMP JUMPDEST POP SWAP1 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD3 CREATE2 MULMOD PUSH12 0x9CDAE18CA575D1BE4720748A ORIGIN 0xB7 0xFC MOD DUP4 0xAB EXP LOG0 SWAP13 SWAP12 CALL PUSH9 0x9FB65AF964736F6C63 NUMBER STOP ADDMOD NOT STOP CALLER ","sourceMap":"769:9256:68:-:0;;;3305:209;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3357:42;3378:20;3357;:42::i;:::-;-1:-1:-1;;;;;3409:66:68;;;;3485:22;:20;:22::i;:::-;3305:209;769:9256;;485:136:47;-1:-1:-1;;;;;548:22:47;;544:75;;589:23;;-1:-1:-1;;;589:23:47;;;;;;;;;;;544:75;485:136;:::o;5928:279:27:-;5996:13;;;;;;;5995:14;5987:66;;;;-1:-1:-1;;;5987:66:27;;511:2:97;5987:66:27;;;493:21:97;550:2;530:18;;;523:30;589:34;569:18;;;562:62;-1:-1:-1;;;640:18:97;;;633:37;687:19;;5987:66:27;;;;;;;;6067:12;;6082:15;6067:12;;;:30;6063:138;;;6113:12;:30;;-1:-1:-1;;6113:30:27;6128:15;6113:30;;;;;;6162:28;;859:36:97;;;6162:28:27;;847:2:97;832:18;6162:28:27;;;;;;;6063:138;5928:279::o;14:290:97:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:97;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:97:o;717:184::-;769:9256:68;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@BORROW_CAP_17173":{"entryPoint":null,"id":17173,"parameterSlots":0,"returnSlots":0},"@BORROW_CAP_KEY_17182":{"entryPoint":null,"id":17182,"parameterSlots":0,"returnSlots":0},"@RISK_STEWARD_RECEIVER_17186":{"entryPoint":null,"id":17186,"parameterSlots":0,"returnSlots":0},"@SUPPLY_CAP_17160":{"entryPoint":null,"id":17160,"parameterSlots":0,"returnSlots":0},"@SUPPLY_CAP_KEY_17169":{"entryPoint":null,"id":17169,"parameterSlots":0,"returnSlots":0},"@__AccessControlled_init_13754":{"entryPoint":5055,"id":13754,"parameterSlots":1,"returnSlots":0},"@__AccessControlled_init_unchained_13766":{"entryPoint":5501,"id":13766,"parameterSlots":1,"returnSlots":0},"@__Ownable2Step_init_5859":{"entryPoint":5342,"id":5859,"parameterSlots":0,"returnSlots":0},"@__Ownable_init_unchained_5985":{"entryPoint":5652,"id":5985,"parameterSlots":0,"returnSlots":0},"@_checkAccessAllowed_13857":{"entryPoint":3613,"id":13857,"parameterSlots":1,"returnSlots":0},"@_checkOwner_6016":{"entryPoint":3192,"id":6016,"parameterSlots":0,"returnSlots":0},"@_decodeAbiEncodedUint256_17613":{"entryPoint":3830,"id":17613,"parameterSlots":1,"returnSlots":1},"@_isWithinSafeDelta_14513":{"entryPoint":3917,"id":14513,"parameterSlots":2,"returnSlots":1},"@_msgSender_6559":{"entryPoint":null,"id":6559,"parameterSlots":0,"returnSlots":1},"@_setAccessControlManager_13827":{"entryPoint":3323,"id":13827,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_5919":{"entryPoint":3995,"id":5919,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_6073":{"entryPoint":5223,"id":6073,"parameterSlots":1,"returnSlots":0},"@_updateBorrowCaps_17585":{"entryPoint":4569,"id":17585,"parameterSlots":3,"returnSlots":0},"@_updateSupplyCaps_17516":{"entryPoint":4044,"id":17516,"parameterSlots":3,"returnSlots":0},"@acceptOwnership_5941":{"entryPoint":2050,"id":5941,"parameterSlots":0,"returnSlots":0},"@accessControlManager_13789":{"entryPoint":null,"id":13789,"parameterSlots":0,"returnSlots":1},"@applyUpdate_17447":{"entryPoint":2233,"id":17447,"parameterSlots":1,"returnSlots":0},"@initialize_17264":{"entryPoint":2620,"id":17264,"parameterSlots":1,"returnSlots":0},"@isContract_6266":{"entryPoint":null,"id":6266,"parameterSlots":1,"returnSlots":1},"@isSafeForDirectExecution_17388":{"entryPoint":1216,"id":17388,"parameterSlots":1,"returnSlots":1},"@owner_6002":{"entryPoint":null,"id":6002,"parameterSlots":0,"returnSlots":1},"@pendingOwner_5882":{"entryPoint":null,"id":5882,"parameterSlots":0,"returnSlots":1},"@renounceOwnership_14476":{"entryPoint":2000,"id":14476,"parameterSlots":0,"returnSlots":0},"@safeDeltaBps_14464":{"entryPoint":null,"id":14464,"parameterSlots":0,"returnSlots":0},"@setAccessControlManager_13779":{"entryPoint":947,"id":13779,"parameterSlots":1,"returnSlots":0},"@setSafeDeltaBps_17304":{"entryPoint":967,"id":17304,"parameterSlots":1,"returnSlots":0},"@transferOwnership_5902":{"entryPoint":3016,"id":5902,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_address":{"entryPoint":5972,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":6194,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":6303,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_RiskParameterUpdate_$16568_calldata_ptr":{"entryPoint":6026,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":6001,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":6223,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_string":{"entryPoint":5812,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":6337,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":6248,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":6589,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$13903__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IRiskStewardReceiver_$17139__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5912,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"access_calldata_tail_t_bytes_calldata_ptr":{"entryPoint":6086,"id":null,"parameterSlots":2,"returnSlots":2},"checked_div_t_uint256":{"entryPoint":6483,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":6460,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":6441,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":6394,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":6542,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":5938,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:10285:97","nodeType":"YulBlock","src":"0:10285:97","statements":[{"nativeSrc":"6:3:97","nodeType":"YulBlock","src":"6:3:97","statements":[]},{"body":{"nativeSrc":"64:432:97","nodeType":"YulBlock","src":"64:432:97","statements":[{"nativeSrc":"74:26:97","nodeType":"YulVariableDeclaration","src":"74:26:97","value":{"arguments":[{"name":"value","nativeSrc":"94:5:97","nodeType":"YulIdentifier","src":"94:5:97"}],"functionName":{"name":"mload","nativeSrc":"88:5:97","nodeType":"YulIdentifier","src":"88:5:97"},"nativeSrc":"88:12:97","nodeType":"YulFunctionCall","src":"88:12:97"},"variables":[{"name":"length","nativeSrc":"78:6:97","nodeType":"YulTypedName","src":"78:6:97","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"116:3:97","nodeType":"YulIdentifier","src":"116:3:97"},{"name":"length","nativeSrc":"121:6:97","nodeType":"YulIdentifier","src":"121:6:97"}],"functionName":{"name":"mstore","nativeSrc":"109:6:97","nodeType":"YulIdentifier","src":"109:6:97"},"nativeSrc":"109:19:97","nodeType":"YulFunctionCall","src":"109:19:97"},"nativeSrc":"109:19:97","nodeType":"YulExpressionStatement","src":"109:19:97"},{"nativeSrc":"137:10:97","nodeType":"YulVariableDeclaration","src":"137:10:97","value":{"kind":"number","nativeSrc":"146:1:97","nodeType":"YulLiteral","src":"146:1:97","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"141:1:97","nodeType":"YulTypedName","src":"141:1:97","type":""}]},{"body":{"nativeSrc":"208:110:97","nodeType":"YulBlock","src":"208:110:97","statements":[{"nativeSrc":"222:14:97","nodeType":"YulVariableDeclaration","src":"222:14:97","value":{"kind":"number","nativeSrc":"232:4:97","nodeType":"YulLiteral","src":"232:4:97","type":"","value":"0x20"},"variables":[{"name":"_1","nativeSrc":"226:2:97","nodeType":"YulTypedName","src":"226:2:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"264:3:97","nodeType":"YulIdentifier","src":"264:3:97"},{"name":"i","nativeSrc":"269:1:97","nodeType":"YulIdentifier","src":"269:1:97"}],"functionName":{"name":"add","nativeSrc":"260:3:97","nodeType":"YulIdentifier","src":"260:3:97"},"nativeSrc":"260:11:97","nodeType":"YulFunctionCall","src":"260:11:97"},{"name":"_1","nativeSrc":"273:2:97","nodeType":"YulIdentifier","src":"273:2:97"}],"functionName":{"name":"add","nativeSrc":"256:3:97","nodeType":"YulIdentifier","src":"256:3:97"},"nativeSrc":"256:20:97","nodeType":"YulFunctionCall","src":"256:20:97"},{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"292:5:97","nodeType":"YulIdentifier","src":"292:5:97"},{"name":"i","nativeSrc":"299:1:97","nodeType":"YulIdentifier","src":"299:1:97"}],"functionName":{"name":"add","nativeSrc":"288:3:97","nodeType":"YulIdentifier","src":"288:3:97"},"nativeSrc":"288:13:97","nodeType":"YulFunctionCall","src":"288:13:97"},{"name":"_1","nativeSrc":"303:2:97","nodeType":"YulIdentifier","src":"303:2:97"}],"functionName":{"name":"add","nativeSrc":"284:3:97","nodeType":"YulIdentifier","src":"284:3:97"},"nativeSrc":"284:22:97","nodeType":"YulFunctionCall","src":"284:22:97"}],"functionName":{"name":"mload","nativeSrc":"278:5:97","nodeType":"YulIdentifier","src":"278:5:97"},"nativeSrc":"278:29:97","nodeType":"YulFunctionCall","src":"278:29:97"}],"functionName":{"name":"mstore","nativeSrc":"249:6:97","nodeType":"YulIdentifier","src":"249:6:97"},"nativeSrc":"249:59:97","nodeType":"YulFunctionCall","src":"249:59:97"},"nativeSrc":"249:59:97","nodeType":"YulExpressionStatement","src":"249:59:97"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"167:1:97","nodeType":"YulIdentifier","src":"167:1:97"},{"name":"length","nativeSrc":"170:6:97","nodeType":"YulIdentifier","src":"170:6:97"}],"functionName":{"name":"lt","nativeSrc":"164:2:97","nodeType":"YulIdentifier","src":"164:2:97"},"nativeSrc":"164:13:97","nodeType":"YulFunctionCall","src":"164:13:97"},"nativeSrc":"156:162:97","nodeType":"YulForLoop","post":{"nativeSrc":"178:21:97","nodeType":"YulBlock","src":"178:21:97","statements":[{"nativeSrc":"180:17:97","nodeType":"YulAssignment","src":"180:17:97","value":{"arguments":[{"name":"i","nativeSrc":"189:1:97","nodeType":"YulIdentifier","src":"189:1:97"},{"kind":"number","nativeSrc":"192:4:97","nodeType":"YulLiteral","src":"192:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"185:3:97","nodeType":"YulIdentifier","src":"185:3:97"},"nativeSrc":"185:12:97","nodeType":"YulFunctionCall","src":"185:12:97"},"variableNames":[{"name":"i","nativeSrc":"180:1:97","nodeType":"YulIdentifier","src":"180:1:97"}]}]},"pre":{"nativeSrc":"160:3:97","nodeType":"YulBlock","src":"160:3:97","statements":[]},"src":"156:162:97"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"342:3:97","nodeType":"YulIdentifier","src":"342:3:97"},{"name":"length","nativeSrc":"347:6:97","nodeType":"YulIdentifier","src":"347:6:97"}],"functionName":{"name":"add","nativeSrc":"338:3:97","nodeType":"YulIdentifier","src":"338:3:97"},"nativeSrc":"338:16:97","nodeType":"YulFunctionCall","src":"338:16:97"},{"kind":"number","nativeSrc":"356:4:97","nodeType":"YulLiteral","src":"356:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"334:3:97","nodeType":"YulIdentifier","src":"334:3:97"},"nativeSrc":"334:27:97","nodeType":"YulFunctionCall","src":"334:27:97"},{"kind":"number","nativeSrc":"363:1:97","nodeType":"YulLiteral","src":"363:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"327:6:97","nodeType":"YulIdentifier","src":"327:6:97"},"nativeSrc":"327:38:97","nodeType":"YulFunctionCall","src":"327:38:97"},"nativeSrc":"327:38:97","nodeType":"YulExpressionStatement","src":"327:38:97"},{"nativeSrc":"374:116:97","nodeType":"YulAssignment","src":"374:116:97","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"389:3:97","nodeType":"YulIdentifier","src":"389:3:97"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"402:6:97","nodeType":"YulIdentifier","src":"402:6:97"},{"kind":"number","nativeSrc":"410:2:97","nodeType":"YulLiteral","src":"410:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"398:3:97","nodeType":"YulIdentifier","src":"398:3:97"},"nativeSrc":"398:15:97","nodeType":"YulFunctionCall","src":"398:15:97"},{"kind":"number","nativeSrc":"415:66:97","nodeType":"YulLiteral","src":"415:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"394:3:97","nodeType":"YulIdentifier","src":"394:3:97"},"nativeSrc":"394:88:97","nodeType":"YulFunctionCall","src":"394:88:97"}],"functionName":{"name":"add","nativeSrc":"385:3:97","nodeType":"YulIdentifier","src":"385:3:97"},"nativeSrc":"385:98:97","nodeType":"YulFunctionCall","src":"385:98:97"},{"kind":"number","nativeSrc":"485:4:97","nodeType":"YulLiteral","src":"485:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"381:3:97","nodeType":"YulIdentifier","src":"381:3:97"},"nativeSrc":"381:109:97","nodeType":"YulFunctionCall","src":"381:109:97"},"variableNames":[{"name":"end","nativeSrc":"374:3:97","nodeType":"YulIdentifier","src":"374:3:97"}]}]},"name":"abi_encode_string","nativeSrc":"14:482:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"41:5:97","nodeType":"YulTypedName","src":"41:5:97","type":""},{"name":"pos","nativeSrc":"48:3:97","nodeType":"YulTypedName","src":"48:3:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"56:3:97","nodeType":"YulTypedName","src":"56:3:97","type":""}],"src":"14:482:97"},{"body":{"nativeSrc":"622:99:97","nodeType":"YulBlock","src":"622:99:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"639:9:97","nodeType":"YulIdentifier","src":"639:9:97"},{"kind":"number","nativeSrc":"650:2:97","nodeType":"YulLiteral","src":"650:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"632:6:97","nodeType":"YulIdentifier","src":"632:6:97"},"nativeSrc":"632:21:97","nodeType":"YulFunctionCall","src":"632:21:97"},"nativeSrc":"632:21:97","nodeType":"YulExpressionStatement","src":"632:21:97"},{"nativeSrc":"662:53:97","nodeType":"YulAssignment","src":"662:53:97","value":{"arguments":[{"name":"value0","nativeSrc":"688:6:97","nodeType":"YulIdentifier","src":"688:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"700:9:97","nodeType":"YulIdentifier","src":"700:9:97"},{"kind":"number","nativeSrc":"711:2:97","nodeType":"YulLiteral","src":"711:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"696:3:97","nodeType":"YulIdentifier","src":"696:3:97"},"nativeSrc":"696:18:97","nodeType":"YulFunctionCall","src":"696:18:97"}],"functionName":{"name":"abi_encode_string","nativeSrc":"670:17:97","nodeType":"YulIdentifier","src":"670:17:97"},"nativeSrc":"670:45:97","nodeType":"YulFunctionCall","src":"670:45:97"},"variableNames":[{"name":"tail","nativeSrc":"662:4:97","nodeType":"YulIdentifier","src":"662:4:97"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"501:220:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"591:9:97","nodeType":"YulTypedName","src":"591:9:97","type":""},{"name":"value0","nativeSrc":"602:6:97","nodeType":"YulTypedName","src":"602:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"613:4:97","nodeType":"YulTypedName","src":"613:4:97","type":""}],"src":"501:220:97"},{"body":{"nativeSrc":"771:109:97","nodeType":"YulBlock","src":"771:109:97","statements":[{"body":{"nativeSrc":"858:16:97","nodeType":"YulBlock","src":"858:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"867:1:97","nodeType":"YulLiteral","src":"867:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"870:1:97","nodeType":"YulLiteral","src":"870:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"860:6:97","nodeType":"YulIdentifier","src":"860:6:97"},"nativeSrc":"860:12:97","nodeType":"YulFunctionCall","src":"860:12:97"},"nativeSrc":"860:12:97","nodeType":"YulExpressionStatement","src":"860:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"794:5:97","nodeType":"YulIdentifier","src":"794:5:97"},{"arguments":[{"name":"value","nativeSrc":"805:5:97","nodeType":"YulIdentifier","src":"805:5:97"},{"kind":"number","nativeSrc":"812:42:97","nodeType":"YulLiteral","src":"812:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"801:3:97","nodeType":"YulIdentifier","src":"801:3:97"},"nativeSrc":"801:54:97","nodeType":"YulFunctionCall","src":"801:54:97"}],"functionName":{"name":"eq","nativeSrc":"791:2:97","nodeType":"YulIdentifier","src":"791:2:97"},"nativeSrc":"791:65:97","nodeType":"YulFunctionCall","src":"791:65:97"}],"functionName":{"name":"iszero","nativeSrc":"784:6:97","nodeType":"YulIdentifier","src":"784:6:97"},"nativeSrc":"784:73:97","nodeType":"YulFunctionCall","src":"784:73:97"},"nativeSrc":"781:93:97","nodeType":"YulIf","src":"781:93:97"}]},"name":"validator_revert_address","nativeSrc":"726:154:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"760:5:97","nodeType":"YulTypedName","src":"760:5:97","type":""}],"src":"726:154:97"},{"body":{"nativeSrc":"955:177:97","nodeType":"YulBlock","src":"955:177:97","statements":[{"body":{"nativeSrc":"1001:16:97","nodeType":"YulBlock","src":"1001:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1010:1:97","nodeType":"YulLiteral","src":"1010:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1013:1:97","nodeType":"YulLiteral","src":"1013:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1003:6:97","nodeType":"YulIdentifier","src":"1003:6:97"},"nativeSrc":"1003:12:97","nodeType":"YulFunctionCall","src":"1003:12:97"},"nativeSrc":"1003:12:97","nodeType":"YulExpressionStatement","src":"1003:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"976:7:97","nodeType":"YulIdentifier","src":"976:7:97"},{"name":"headStart","nativeSrc":"985:9:97","nodeType":"YulIdentifier","src":"985:9:97"}],"functionName":{"name":"sub","nativeSrc":"972:3:97","nodeType":"YulIdentifier","src":"972:3:97"},"nativeSrc":"972:23:97","nodeType":"YulFunctionCall","src":"972:23:97"},{"kind":"number","nativeSrc":"997:2:97","nodeType":"YulLiteral","src":"997:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"968:3:97","nodeType":"YulIdentifier","src":"968:3:97"},"nativeSrc":"968:32:97","nodeType":"YulFunctionCall","src":"968:32:97"},"nativeSrc":"965:52:97","nodeType":"YulIf","src":"965:52:97"},{"nativeSrc":"1026:36:97","nodeType":"YulVariableDeclaration","src":"1026:36:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1052:9:97","nodeType":"YulIdentifier","src":"1052:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"1039:12:97","nodeType":"YulIdentifier","src":"1039:12:97"},"nativeSrc":"1039:23:97","nodeType":"YulFunctionCall","src":"1039:23:97"},"variables":[{"name":"value","nativeSrc":"1030:5:97","nodeType":"YulTypedName","src":"1030:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1096:5:97","nodeType":"YulIdentifier","src":"1096:5:97"}],"functionName":{"name":"validator_revert_address","nativeSrc":"1071:24:97","nodeType":"YulIdentifier","src":"1071:24:97"},"nativeSrc":"1071:31:97","nodeType":"YulFunctionCall","src":"1071:31:97"},"nativeSrc":"1071:31:97","nodeType":"YulExpressionStatement","src":"1071:31:97"},{"nativeSrc":"1111:15:97","nodeType":"YulAssignment","src":"1111:15:97","value":{"name":"value","nativeSrc":"1121:5:97","nodeType":"YulIdentifier","src":"1121:5:97"},"variableNames":[{"name":"value0","nativeSrc":"1111:6:97","nodeType":"YulIdentifier","src":"1111:6:97"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"885:247:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"921:9:97","nodeType":"YulTypedName","src":"921:9:97","type":""},{"name":"dataEnd","nativeSrc":"932:7:97","nodeType":"YulTypedName","src":"932:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"944:6:97","nodeType":"YulTypedName","src":"944:6:97","type":""}],"src":"885:247:97"},{"body":{"nativeSrc":"1207:110:97","nodeType":"YulBlock","src":"1207:110:97","statements":[{"body":{"nativeSrc":"1253:16:97","nodeType":"YulBlock","src":"1253:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1262:1:97","nodeType":"YulLiteral","src":"1262:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1265:1:97","nodeType":"YulLiteral","src":"1265:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1255:6:97","nodeType":"YulIdentifier","src":"1255:6:97"},"nativeSrc":"1255:12:97","nodeType":"YulFunctionCall","src":"1255:12:97"},"nativeSrc":"1255:12:97","nodeType":"YulExpressionStatement","src":"1255:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1228:7:97","nodeType":"YulIdentifier","src":"1228:7:97"},{"name":"headStart","nativeSrc":"1237:9:97","nodeType":"YulIdentifier","src":"1237:9:97"}],"functionName":{"name":"sub","nativeSrc":"1224:3:97","nodeType":"YulIdentifier","src":"1224:3:97"},"nativeSrc":"1224:23:97","nodeType":"YulFunctionCall","src":"1224:23:97"},{"kind":"number","nativeSrc":"1249:2:97","nodeType":"YulLiteral","src":"1249:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1220:3:97","nodeType":"YulIdentifier","src":"1220:3:97"},"nativeSrc":"1220:32:97","nodeType":"YulFunctionCall","src":"1220:32:97"},"nativeSrc":"1217:52:97","nodeType":"YulIf","src":"1217:52:97"},{"nativeSrc":"1278:33:97","nodeType":"YulAssignment","src":"1278:33:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1301:9:97","nodeType":"YulIdentifier","src":"1301:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"1288:12:97","nodeType":"YulIdentifier","src":"1288:12:97"},"nativeSrc":"1288:23:97","nodeType":"YulFunctionCall","src":"1288:23:97"},"variableNames":[{"name":"value0","nativeSrc":"1278:6:97","nodeType":"YulIdentifier","src":"1278:6:97"}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"1137:180:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1173:9:97","nodeType":"YulTypedName","src":"1173:9:97","type":""},{"name":"dataEnd","nativeSrc":"1184:7:97","nodeType":"YulTypedName","src":"1184:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1196:6:97","nodeType":"YulTypedName","src":"1196:6:97","type":""}],"src":"1137:180:97"},{"body":{"nativeSrc":"1432:290:97","nodeType":"YulBlock","src":"1432:290:97","statements":[{"body":{"nativeSrc":"1478:16:97","nodeType":"YulBlock","src":"1478:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1487:1:97","nodeType":"YulLiteral","src":"1487:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1490:1:97","nodeType":"YulLiteral","src":"1490:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1480:6:97","nodeType":"YulIdentifier","src":"1480:6:97"},"nativeSrc":"1480:12:97","nodeType":"YulFunctionCall","src":"1480:12:97"},"nativeSrc":"1480:12:97","nodeType":"YulExpressionStatement","src":"1480:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1453:7:97","nodeType":"YulIdentifier","src":"1453:7:97"},{"name":"headStart","nativeSrc":"1462:9:97","nodeType":"YulIdentifier","src":"1462:9:97"}],"functionName":{"name":"sub","nativeSrc":"1449:3:97","nodeType":"YulIdentifier","src":"1449:3:97"},"nativeSrc":"1449:23:97","nodeType":"YulFunctionCall","src":"1449:23:97"},{"kind":"number","nativeSrc":"1474:2:97","nodeType":"YulLiteral","src":"1474:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1445:3:97","nodeType":"YulIdentifier","src":"1445:3:97"},"nativeSrc":"1445:32:97","nodeType":"YulFunctionCall","src":"1445:32:97"},"nativeSrc":"1442:52:97","nodeType":"YulIf","src":"1442:52:97"},{"nativeSrc":"1503:37:97","nodeType":"YulVariableDeclaration","src":"1503:37:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1530:9:97","nodeType":"YulIdentifier","src":"1530:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"1517:12:97","nodeType":"YulIdentifier","src":"1517:12:97"},"nativeSrc":"1517:23:97","nodeType":"YulFunctionCall","src":"1517:23:97"},"variables":[{"name":"offset","nativeSrc":"1507:6:97","nodeType":"YulTypedName","src":"1507:6:97","type":""}]},{"body":{"nativeSrc":"1583:16:97","nodeType":"YulBlock","src":"1583:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1592:1:97","nodeType":"YulLiteral","src":"1592:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1595:1:97","nodeType":"YulLiteral","src":"1595:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1585:6:97","nodeType":"YulIdentifier","src":"1585:6:97"},"nativeSrc":"1585:12:97","nodeType":"YulFunctionCall","src":"1585:12:97"},"nativeSrc":"1585:12:97","nodeType":"YulExpressionStatement","src":"1585:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"1555:6:97","nodeType":"YulIdentifier","src":"1555:6:97"},{"kind":"number","nativeSrc":"1563:18:97","nodeType":"YulLiteral","src":"1563:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1552:2:97","nodeType":"YulIdentifier","src":"1552:2:97"},"nativeSrc":"1552:30:97","nodeType":"YulFunctionCall","src":"1552:30:97"},"nativeSrc":"1549:50:97","nodeType":"YulIf","src":"1549:50:97"},{"nativeSrc":"1608:32:97","nodeType":"YulVariableDeclaration","src":"1608:32:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1622:9:97","nodeType":"YulIdentifier","src":"1622:9:97"},{"name":"offset","nativeSrc":"1633:6:97","nodeType":"YulIdentifier","src":"1633:6:97"}],"functionName":{"name":"add","nativeSrc":"1618:3:97","nodeType":"YulIdentifier","src":"1618:3:97"},"nativeSrc":"1618:22:97","nodeType":"YulFunctionCall","src":"1618:22:97"},"variables":[{"name":"_1","nativeSrc":"1612:2:97","nodeType":"YulTypedName","src":"1612:2:97","type":""}]},{"body":{"nativeSrc":"1679:16:97","nodeType":"YulBlock","src":"1679:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1688:1:97","nodeType":"YulLiteral","src":"1688:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1691:1:97","nodeType":"YulLiteral","src":"1691:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1681:6:97","nodeType":"YulIdentifier","src":"1681:6:97"},"nativeSrc":"1681:12:97","nodeType":"YulFunctionCall","src":"1681:12:97"},"nativeSrc":"1681:12:97","nodeType":"YulExpressionStatement","src":"1681:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1660:7:97","nodeType":"YulIdentifier","src":"1660:7:97"},{"name":"_1","nativeSrc":"1669:2:97","nodeType":"YulIdentifier","src":"1669:2:97"}],"functionName":{"name":"sub","nativeSrc":"1656:3:97","nodeType":"YulIdentifier","src":"1656:3:97"},"nativeSrc":"1656:16:97","nodeType":"YulFunctionCall","src":"1656:16:97"},{"kind":"number","nativeSrc":"1674:3:97","nodeType":"YulLiteral","src":"1674:3:97","type":"","value":"384"}],"functionName":{"name":"slt","nativeSrc":"1652:3:97","nodeType":"YulIdentifier","src":"1652:3:97"},"nativeSrc":"1652:26:97","nodeType":"YulFunctionCall","src":"1652:26:97"},"nativeSrc":"1649:46:97","nodeType":"YulIf","src":"1649:46:97"},{"nativeSrc":"1704:12:97","nodeType":"YulAssignment","src":"1704:12:97","value":{"name":"_1","nativeSrc":"1714:2:97","nodeType":"YulIdentifier","src":"1714:2:97"},"variableNames":[{"name":"value0","nativeSrc":"1704:6:97","nodeType":"YulIdentifier","src":"1704:6:97"}]}]},"name":"abi_decode_tuple_t_struct$_RiskParameterUpdate_$16568_calldata_ptr","nativeSrc":"1322:400:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1398:9:97","nodeType":"YulTypedName","src":"1398:9:97","type":""},{"name":"dataEnd","nativeSrc":"1409:7:97","nodeType":"YulTypedName","src":"1409:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1421:6:97","nodeType":"YulTypedName","src":"1421:6:97","type":""}],"src":"1322:400:97"},{"body":{"nativeSrc":"1822:92:97","nodeType":"YulBlock","src":"1822:92:97","statements":[{"nativeSrc":"1832:26:97","nodeType":"YulAssignment","src":"1832:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1844:9:97","nodeType":"YulIdentifier","src":"1844:9:97"},{"kind":"number","nativeSrc":"1855:2:97","nodeType":"YulLiteral","src":"1855:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1840:3:97","nodeType":"YulIdentifier","src":"1840:3:97"},"nativeSrc":"1840:18:97","nodeType":"YulFunctionCall","src":"1840:18:97"},"variableNames":[{"name":"tail","nativeSrc":"1832:4:97","nodeType":"YulIdentifier","src":"1832:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1874:9:97","nodeType":"YulIdentifier","src":"1874:9:97"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"1899:6:97","nodeType":"YulIdentifier","src":"1899:6:97"}],"functionName":{"name":"iszero","nativeSrc":"1892:6:97","nodeType":"YulIdentifier","src":"1892:6:97"},"nativeSrc":"1892:14:97","nodeType":"YulFunctionCall","src":"1892:14:97"}],"functionName":{"name":"iszero","nativeSrc":"1885:6:97","nodeType":"YulIdentifier","src":"1885:6:97"},"nativeSrc":"1885:22:97","nodeType":"YulFunctionCall","src":"1885:22:97"}],"functionName":{"name":"mstore","nativeSrc":"1867:6:97","nodeType":"YulIdentifier","src":"1867:6:97"},"nativeSrc":"1867:41:97","nodeType":"YulFunctionCall","src":"1867:41:97"},"nativeSrc":"1867:41:97","nodeType":"YulExpressionStatement","src":"1867:41:97"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1727:187:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1791:9:97","nodeType":"YulTypedName","src":"1791:9:97","type":""},{"name":"value0","nativeSrc":"1802:6:97","nodeType":"YulTypedName","src":"1802:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1813:4:97","nodeType":"YulTypedName","src":"1813:4:97","type":""}],"src":"1727:187:97"},{"body":{"nativeSrc":"2020:125:97","nodeType":"YulBlock","src":"2020:125:97","statements":[{"nativeSrc":"2030:26:97","nodeType":"YulAssignment","src":"2030:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2042:9:97","nodeType":"YulIdentifier","src":"2042:9:97"},{"kind":"number","nativeSrc":"2053:2:97","nodeType":"YulLiteral","src":"2053:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2038:3:97","nodeType":"YulIdentifier","src":"2038:3:97"},"nativeSrc":"2038:18:97","nodeType":"YulFunctionCall","src":"2038:18:97"},"variableNames":[{"name":"tail","nativeSrc":"2030:4:97","nodeType":"YulIdentifier","src":"2030:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2072:9:97","nodeType":"YulIdentifier","src":"2072:9:97"},{"arguments":[{"name":"value0","nativeSrc":"2087:6:97","nodeType":"YulIdentifier","src":"2087:6:97"},{"kind":"number","nativeSrc":"2095:42:97","nodeType":"YulLiteral","src":"2095:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"2083:3:97","nodeType":"YulIdentifier","src":"2083:3:97"},"nativeSrc":"2083:55:97","nodeType":"YulFunctionCall","src":"2083:55:97"}],"functionName":{"name":"mstore","nativeSrc":"2065:6:97","nodeType":"YulIdentifier","src":"2065:6:97"},"nativeSrc":"2065:74:97","nodeType":"YulFunctionCall","src":"2065:74:97"},"nativeSrc":"2065:74:97","nodeType":"YulExpressionStatement","src":"2065:74:97"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"1919:226:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1989:9:97","nodeType":"YulTypedName","src":"1989:9:97","type":""},{"name":"value0","nativeSrc":"2000:6:97","nodeType":"YulTypedName","src":"2000:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2011:4:97","nodeType":"YulTypedName","src":"2011:4:97","type":""}],"src":"1919:226:97"},{"body":{"nativeSrc":"2251:76:97","nodeType":"YulBlock","src":"2251:76:97","statements":[{"nativeSrc":"2261:26:97","nodeType":"YulAssignment","src":"2261:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2273:9:97","nodeType":"YulIdentifier","src":"2273:9:97"},{"kind":"number","nativeSrc":"2284:2:97","nodeType":"YulLiteral","src":"2284:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2269:3:97","nodeType":"YulIdentifier","src":"2269:3:97"},"nativeSrc":"2269:18:97","nodeType":"YulFunctionCall","src":"2269:18:97"},"variableNames":[{"name":"tail","nativeSrc":"2261:4:97","nodeType":"YulIdentifier","src":"2261:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2303:9:97","nodeType":"YulIdentifier","src":"2303:9:97"},{"name":"value0","nativeSrc":"2314:6:97","nodeType":"YulIdentifier","src":"2314:6:97"}],"functionName":{"name":"mstore","nativeSrc":"2296:6:97","nodeType":"YulIdentifier","src":"2296:6:97"},"nativeSrc":"2296:25:97","nodeType":"YulFunctionCall","src":"2296:25:97"},"nativeSrc":"2296:25:97","nodeType":"YulExpressionStatement","src":"2296:25:97"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"2150:177:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2220:9:97","nodeType":"YulTypedName","src":"2220:9:97","type":""},{"name":"value0","nativeSrc":"2231:6:97","nodeType":"YulTypedName","src":"2231:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2242:4:97","nodeType":"YulTypedName","src":"2242:4:97","type":""}],"src":"2150:177:97"},{"body":{"nativeSrc":"2463:125:97","nodeType":"YulBlock","src":"2463:125:97","statements":[{"nativeSrc":"2473:26:97","nodeType":"YulAssignment","src":"2473:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2485:9:97","nodeType":"YulIdentifier","src":"2485:9:97"},{"kind":"number","nativeSrc":"2496:2:97","nodeType":"YulLiteral","src":"2496:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2481:3:97","nodeType":"YulIdentifier","src":"2481:3:97"},"nativeSrc":"2481:18:97","nodeType":"YulFunctionCall","src":"2481:18:97"},"variableNames":[{"name":"tail","nativeSrc":"2473:4:97","nodeType":"YulIdentifier","src":"2473:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2515:9:97","nodeType":"YulIdentifier","src":"2515:9:97"},{"arguments":[{"name":"value0","nativeSrc":"2530:6:97","nodeType":"YulIdentifier","src":"2530:6:97"},{"kind":"number","nativeSrc":"2538:42:97","nodeType":"YulLiteral","src":"2538:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"2526:3:97","nodeType":"YulIdentifier","src":"2526:3:97"},"nativeSrc":"2526:55:97","nodeType":"YulFunctionCall","src":"2526:55:97"}],"functionName":{"name":"mstore","nativeSrc":"2508:6:97","nodeType":"YulIdentifier","src":"2508:6:97"},"nativeSrc":"2508:74:97","nodeType":"YulFunctionCall","src":"2508:74:97"},"nativeSrc":"2508:74:97","nodeType":"YulExpressionStatement","src":"2508:74:97"}]},"name":"abi_encode_tuple_t_contract$_IRiskStewardReceiver_$17139__to_t_address__fromStack_reversed","nativeSrc":"2332:256:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2432:9:97","nodeType":"YulTypedName","src":"2432:9:97","type":""},{"name":"value0","nativeSrc":"2443:6:97","nodeType":"YulTypedName","src":"2443:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2454:4:97","nodeType":"YulTypedName","src":"2454:4:97","type":""}],"src":"2332:256:97"},{"body":{"nativeSrc":"2727:125:97","nodeType":"YulBlock","src":"2727:125:97","statements":[{"nativeSrc":"2737:26:97","nodeType":"YulAssignment","src":"2737:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2749:9:97","nodeType":"YulIdentifier","src":"2749:9:97"},{"kind":"number","nativeSrc":"2760:2:97","nodeType":"YulLiteral","src":"2760:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2745:3:97","nodeType":"YulIdentifier","src":"2745:3:97"},"nativeSrc":"2745:18:97","nodeType":"YulFunctionCall","src":"2745:18:97"},"variableNames":[{"name":"tail","nativeSrc":"2737:4:97","nodeType":"YulIdentifier","src":"2737:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2779:9:97","nodeType":"YulIdentifier","src":"2779:9:97"},{"arguments":[{"name":"value0","nativeSrc":"2794:6:97","nodeType":"YulIdentifier","src":"2794:6:97"},{"kind":"number","nativeSrc":"2802:42:97","nodeType":"YulLiteral","src":"2802:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"2790:3:97","nodeType":"YulIdentifier","src":"2790:3:97"},"nativeSrc":"2790:55:97","nodeType":"YulFunctionCall","src":"2790:55:97"}],"functionName":{"name":"mstore","nativeSrc":"2772:6:97","nodeType":"YulIdentifier","src":"2772:6:97"},"nativeSrc":"2772:74:97","nodeType":"YulFunctionCall","src":"2772:74:97"},"nativeSrc":"2772:74:97","nodeType":"YulExpressionStatement","src":"2772:74:97"}]},"name":"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$13903__to_t_address__fromStack_reversed","nativeSrc":"2593:259:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2696:9:97","nodeType":"YulTypedName","src":"2696:9:97","type":""},{"name":"value0","nativeSrc":"2707:6:97","nodeType":"YulTypedName","src":"2707:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2718:4:97","nodeType":"YulTypedName","src":"2718:4:97","type":""}],"src":"2593:259:97"},{"body":{"nativeSrc":"2958:76:97","nodeType":"YulBlock","src":"2958:76:97","statements":[{"nativeSrc":"2968:26:97","nodeType":"YulAssignment","src":"2968:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2980:9:97","nodeType":"YulIdentifier","src":"2980:9:97"},{"kind":"number","nativeSrc":"2991:2:97","nodeType":"YulLiteral","src":"2991:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2976:3:97","nodeType":"YulIdentifier","src":"2976:3:97"},"nativeSrc":"2976:18:97","nodeType":"YulFunctionCall","src":"2976:18:97"},"variableNames":[{"name":"tail","nativeSrc":"2968:4:97","nodeType":"YulIdentifier","src":"2968:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3010:9:97","nodeType":"YulIdentifier","src":"3010:9:97"},{"name":"value0","nativeSrc":"3021:6:97","nodeType":"YulIdentifier","src":"3021:6:97"}],"functionName":{"name":"mstore","nativeSrc":"3003:6:97","nodeType":"YulIdentifier","src":"3003:6:97"},"nativeSrc":"3003:25:97","nodeType":"YulFunctionCall","src":"3003:25:97"},"nativeSrc":"3003:25:97","nodeType":"YulExpressionStatement","src":"3003:25:97"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"2857:177:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2927:9:97","nodeType":"YulTypedName","src":"2927:9:97","type":""},{"name":"value0","nativeSrc":"2938:6:97","nodeType":"YulTypedName","src":"2938:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2949:4:97","nodeType":"YulTypedName","src":"2949:4:97","type":""}],"src":"2857:177:97"},{"body":{"nativeSrc":"3168:119:97","nodeType":"YulBlock","src":"3168:119:97","statements":[{"nativeSrc":"3178:26:97","nodeType":"YulAssignment","src":"3178:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"3190:9:97","nodeType":"YulIdentifier","src":"3190:9:97"},{"kind":"number","nativeSrc":"3201:2:97","nodeType":"YulLiteral","src":"3201:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3186:3:97","nodeType":"YulIdentifier","src":"3186:3:97"},"nativeSrc":"3186:18:97","nodeType":"YulFunctionCall","src":"3186:18:97"},"variableNames":[{"name":"tail","nativeSrc":"3178:4:97","nodeType":"YulIdentifier","src":"3178:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3220:9:97","nodeType":"YulIdentifier","src":"3220:9:97"},{"name":"value0","nativeSrc":"3231:6:97","nodeType":"YulIdentifier","src":"3231:6:97"}],"functionName":{"name":"mstore","nativeSrc":"3213:6:97","nodeType":"YulIdentifier","src":"3213:6:97"},"nativeSrc":"3213:25:97","nodeType":"YulFunctionCall","src":"3213:25:97"},"nativeSrc":"3213:25:97","nodeType":"YulExpressionStatement","src":"3213:25:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3258:9:97","nodeType":"YulIdentifier","src":"3258:9:97"},{"kind":"number","nativeSrc":"3269:2:97","nodeType":"YulLiteral","src":"3269:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3254:3:97","nodeType":"YulIdentifier","src":"3254:3:97"},"nativeSrc":"3254:18:97","nodeType":"YulFunctionCall","src":"3254:18:97"},{"name":"value1","nativeSrc":"3274:6:97","nodeType":"YulIdentifier","src":"3274:6:97"}],"functionName":{"name":"mstore","nativeSrc":"3247:6:97","nodeType":"YulIdentifier","src":"3247:6:97"},"nativeSrc":"3247:34:97","nodeType":"YulFunctionCall","src":"3247:34:97"},"nativeSrc":"3247:34:97","nodeType":"YulExpressionStatement","src":"3247:34:97"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"3039:248:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3129:9:97","nodeType":"YulTypedName","src":"3129:9:97","type":""},{"name":"value1","nativeSrc":"3140:6:97","nodeType":"YulTypedName","src":"3140:6:97","type":""},{"name":"value0","nativeSrc":"3148:6:97","nodeType":"YulTypedName","src":"3148:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3159:4:97","nodeType":"YulTypedName","src":"3159:4:97","type":""}],"src":"3039:248:97"},{"body":{"nativeSrc":"3386:486:97","nodeType":"YulBlock","src":"3386:486:97","statements":[{"nativeSrc":"3396:51:97","nodeType":"YulVariableDeclaration","src":"3396:51:97","value":{"arguments":[{"name":"ptr_to_tail","nativeSrc":"3435:11:97","nodeType":"YulIdentifier","src":"3435:11:97"}],"functionName":{"name":"calldataload","nativeSrc":"3422:12:97","nodeType":"YulIdentifier","src":"3422:12:97"},"nativeSrc":"3422:25:97","nodeType":"YulFunctionCall","src":"3422:25:97"},"variables":[{"name":"rel_offset_of_tail","nativeSrc":"3400:18:97","nodeType":"YulTypedName","src":"3400:18:97","type":""}]},{"body":{"nativeSrc":"3595:16:97","nodeType":"YulBlock","src":"3595:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3604:1:97","nodeType":"YulLiteral","src":"3604:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"3607:1:97","nodeType":"YulLiteral","src":"3607:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3597:6:97","nodeType":"YulIdentifier","src":"3597:6:97"},"nativeSrc":"3597:12:97","nodeType":"YulFunctionCall","src":"3597:12:97"},"nativeSrc":"3597:12:97","nodeType":"YulExpressionStatement","src":"3597:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nativeSrc":"3470:18:97","nodeType":"YulIdentifier","src":"3470:18:97"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"3498:12:97","nodeType":"YulIdentifier","src":"3498:12:97"},"nativeSrc":"3498:14:97","nodeType":"YulFunctionCall","src":"3498:14:97"},{"name":"base_ref","nativeSrc":"3514:8:97","nodeType":"YulIdentifier","src":"3514:8:97"}],"functionName":{"name":"sub","nativeSrc":"3494:3:97","nodeType":"YulIdentifier","src":"3494:3:97"},"nativeSrc":"3494:29:97","nodeType":"YulFunctionCall","src":"3494:29:97"},{"kind":"number","nativeSrc":"3525:66:97","nodeType":"YulLiteral","src":"3525:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1"}],"functionName":{"name":"add","nativeSrc":"3490:3:97","nodeType":"YulIdentifier","src":"3490:3:97"},"nativeSrc":"3490:102:97","nodeType":"YulFunctionCall","src":"3490:102:97"}],"functionName":{"name":"slt","nativeSrc":"3466:3:97","nodeType":"YulIdentifier","src":"3466:3:97"},"nativeSrc":"3466:127:97","nodeType":"YulFunctionCall","src":"3466:127:97"}],"functionName":{"name":"iszero","nativeSrc":"3459:6:97","nodeType":"YulIdentifier","src":"3459:6:97"},"nativeSrc":"3459:135:97","nodeType":"YulFunctionCall","src":"3459:135:97"},"nativeSrc":"3456:155:97","nodeType":"YulIf","src":"3456:155:97"},{"nativeSrc":"3620:47:97","nodeType":"YulVariableDeclaration","src":"3620:47:97","value":{"arguments":[{"name":"base_ref","nativeSrc":"3638:8:97","nodeType":"YulIdentifier","src":"3638:8:97"},{"name":"rel_offset_of_tail","nativeSrc":"3648:18:97","nodeType":"YulIdentifier","src":"3648:18:97"}],"functionName":{"name":"add","nativeSrc":"3634:3:97","nodeType":"YulIdentifier","src":"3634:3:97"},"nativeSrc":"3634:33:97","nodeType":"YulFunctionCall","src":"3634:33:97"},"variables":[{"name":"addr_1","nativeSrc":"3624:6:97","nodeType":"YulTypedName","src":"3624:6:97","type":""}]},{"nativeSrc":"3676:30:97","nodeType":"YulAssignment","src":"3676:30:97","value":{"arguments":[{"name":"addr_1","nativeSrc":"3699:6:97","nodeType":"YulIdentifier","src":"3699:6:97"}],"functionName":{"name":"calldataload","nativeSrc":"3686:12:97","nodeType":"YulIdentifier","src":"3686:12:97"},"nativeSrc":"3686:20:97","nodeType":"YulFunctionCall","src":"3686:20:97"},"variableNames":[{"name":"length","nativeSrc":"3676:6:97","nodeType":"YulIdentifier","src":"3676:6:97"}]},{"body":{"nativeSrc":"3749:16:97","nodeType":"YulBlock","src":"3749:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3758:1:97","nodeType":"YulLiteral","src":"3758:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"3761:1:97","nodeType":"YulLiteral","src":"3761:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3751:6:97","nodeType":"YulIdentifier","src":"3751:6:97"},"nativeSrc":"3751:12:97","nodeType":"YulFunctionCall","src":"3751:12:97"},"nativeSrc":"3751:12:97","nodeType":"YulExpressionStatement","src":"3751:12:97"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"3721:6:97","nodeType":"YulIdentifier","src":"3721:6:97"},{"kind":"number","nativeSrc":"3729:18:97","nodeType":"YulLiteral","src":"3729:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3718:2:97","nodeType":"YulIdentifier","src":"3718:2:97"},"nativeSrc":"3718:30:97","nodeType":"YulFunctionCall","src":"3718:30:97"},"nativeSrc":"3715:50:97","nodeType":"YulIf","src":"3715:50:97"},{"nativeSrc":"3774:25:97","nodeType":"YulAssignment","src":"3774:25:97","value":{"arguments":[{"name":"addr_1","nativeSrc":"3786:6:97","nodeType":"YulIdentifier","src":"3786:6:97"},{"kind":"number","nativeSrc":"3794:4:97","nodeType":"YulLiteral","src":"3794:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3782:3:97","nodeType":"YulIdentifier","src":"3782:3:97"},"nativeSrc":"3782:17:97","nodeType":"YulFunctionCall","src":"3782:17:97"},"variableNames":[{"name":"addr","nativeSrc":"3774:4:97","nodeType":"YulIdentifier","src":"3774:4:97"}]},{"body":{"nativeSrc":"3850:16:97","nodeType":"YulBlock","src":"3850:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3859:1:97","nodeType":"YulLiteral","src":"3859:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"3862:1:97","nodeType":"YulLiteral","src":"3862:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3852:6:97","nodeType":"YulIdentifier","src":"3852:6:97"},"nativeSrc":"3852:12:97","nodeType":"YulFunctionCall","src":"3852:12:97"},"nativeSrc":"3852:12:97","nodeType":"YulExpressionStatement","src":"3852:12:97"}]},"condition":{"arguments":[{"name":"addr","nativeSrc":"3815:4:97","nodeType":"YulIdentifier","src":"3815:4:97"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"3825:12:97","nodeType":"YulIdentifier","src":"3825:12:97"},"nativeSrc":"3825:14:97","nodeType":"YulFunctionCall","src":"3825:14:97"},{"name":"length","nativeSrc":"3841:6:97","nodeType":"YulIdentifier","src":"3841:6:97"}],"functionName":{"name":"sub","nativeSrc":"3821:3:97","nodeType":"YulIdentifier","src":"3821:3:97"},"nativeSrc":"3821:27:97","nodeType":"YulFunctionCall","src":"3821:27:97"}],"functionName":{"name":"sgt","nativeSrc":"3811:3:97","nodeType":"YulIdentifier","src":"3811:3:97"},"nativeSrc":"3811:38:97","nodeType":"YulFunctionCall","src":"3811:38:97"},"nativeSrc":"3808:58:97","nodeType":"YulIf","src":"3808:58:97"}]},"name":"access_calldata_tail_t_bytes_calldata_ptr","nativeSrc":"3292:580:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nativeSrc":"3343:8:97","nodeType":"YulTypedName","src":"3343:8:97","type":""},{"name":"ptr_to_tail","nativeSrc":"3353:11:97","nodeType":"YulTypedName","src":"3353:11:97","type":""}],"returnVariables":[{"name":"addr","nativeSrc":"3369:4:97","nodeType":"YulTypedName","src":"3369:4:97","type":""},{"name":"length","nativeSrc":"3375:6:97","nodeType":"YulTypedName","src":"3375:6:97","type":""}],"src":"3292:580:97"},{"body":{"nativeSrc":"3958:170:97","nodeType":"YulBlock","src":"3958:170:97","statements":[{"body":{"nativeSrc":"4004:16:97","nodeType":"YulBlock","src":"4004:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4013:1:97","nodeType":"YulLiteral","src":"4013:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"4016:1:97","nodeType":"YulLiteral","src":"4016:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4006:6:97","nodeType":"YulIdentifier","src":"4006:6:97"},"nativeSrc":"4006:12:97","nodeType":"YulFunctionCall","src":"4006:12:97"},"nativeSrc":"4006:12:97","nodeType":"YulExpressionStatement","src":"4006:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3979:7:97","nodeType":"YulIdentifier","src":"3979:7:97"},{"name":"headStart","nativeSrc":"3988:9:97","nodeType":"YulIdentifier","src":"3988:9:97"}],"functionName":{"name":"sub","nativeSrc":"3975:3:97","nodeType":"YulIdentifier","src":"3975:3:97"},"nativeSrc":"3975:23:97","nodeType":"YulFunctionCall","src":"3975:23:97"},{"kind":"number","nativeSrc":"4000:2:97","nodeType":"YulLiteral","src":"4000:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3971:3:97","nodeType":"YulIdentifier","src":"3971:3:97"},"nativeSrc":"3971:32:97","nodeType":"YulFunctionCall","src":"3971:32:97"},"nativeSrc":"3968:52:97","nodeType":"YulIf","src":"3968:52:97"},{"nativeSrc":"4029:29:97","nodeType":"YulVariableDeclaration","src":"4029:29:97","value":{"arguments":[{"name":"headStart","nativeSrc":"4048:9:97","nodeType":"YulIdentifier","src":"4048:9:97"}],"functionName":{"name":"mload","nativeSrc":"4042:5:97","nodeType":"YulIdentifier","src":"4042:5:97"},"nativeSrc":"4042:16:97","nodeType":"YulFunctionCall","src":"4042:16:97"},"variables":[{"name":"value","nativeSrc":"4033:5:97","nodeType":"YulTypedName","src":"4033:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"4092:5:97","nodeType":"YulIdentifier","src":"4092:5:97"}],"functionName":{"name":"validator_revert_address","nativeSrc":"4067:24:97","nodeType":"YulIdentifier","src":"4067:24:97"},"nativeSrc":"4067:31:97","nodeType":"YulFunctionCall","src":"4067:31:97"},"nativeSrc":"4067:31:97","nodeType":"YulExpressionStatement","src":"4067:31:97"},{"nativeSrc":"4107:15:97","nodeType":"YulAssignment","src":"4107:15:97","value":{"name":"value","nativeSrc":"4117:5:97","nodeType":"YulIdentifier","src":"4117:5:97"},"variableNames":[{"name":"value0","nativeSrc":"4107:6:97","nodeType":"YulIdentifier","src":"4107:6:97"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nativeSrc":"3877:251:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3924:9:97","nodeType":"YulTypedName","src":"3924:9:97","type":""},{"name":"dataEnd","nativeSrc":"3935:7:97","nodeType":"YulTypedName","src":"3935:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3947:6:97","nodeType":"YulTypedName","src":"3947:6:97","type":""}],"src":"3877:251:97"},{"body":{"nativeSrc":"4214:103:97","nodeType":"YulBlock","src":"4214:103:97","statements":[{"body":{"nativeSrc":"4260:16:97","nodeType":"YulBlock","src":"4260:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4269:1:97","nodeType":"YulLiteral","src":"4269:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"4272:1:97","nodeType":"YulLiteral","src":"4272:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4262:6:97","nodeType":"YulIdentifier","src":"4262:6:97"},"nativeSrc":"4262:12:97","nodeType":"YulFunctionCall","src":"4262:12:97"},"nativeSrc":"4262:12:97","nodeType":"YulExpressionStatement","src":"4262:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4235:7:97","nodeType":"YulIdentifier","src":"4235:7:97"},{"name":"headStart","nativeSrc":"4244:9:97","nodeType":"YulIdentifier","src":"4244:9:97"}],"functionName":{"name":"sub","nativeSrc":"4231:3:97","nodeType":"YulIdentifier","src":"4231:3:97"},"nativeSrc":"4231:23:97","nodeType":"YulFunctionCall","src":"4231:23:97"},{"kind":"number","nativeSrc":"4256:2:97","nodeType":"YulLiteral","src":"4256:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"4227:3:97","nodeType":"YulIdentifier","src":"4227:3:97"},"nativeSrc":"4227:32:97","nodeType":"YulFunctionCall","src":"4227:32:97"},"nativeSrc":"4224:52:97","nodeType":"YulIf","src":"4224:52:97"},{"nativeSrc":"4285:26:97","nodeType":"YulAssignment","src":"4285:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"4301:9:97","nodeType":"YulIdentifier","src":"4301:9:97"}],"functionName":{"name":"mload","nativeSrc":"4295:5:97","nodeType":"YulIdentifier","src":"4295:5:97"},"nativeSrc":"4295:16:97","nodeType":"YulFunctionCall","src":"4295:16:97"},"variableNames":[{"name":"value0","nativeSrc":"4285:6:97","nodeType":"YulIdentifier","src":"4285:6:97"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"4133:184:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4180:9:97","nodeType":"YulTypedName","src":"4180:9:97","type":""},{"name":"dataEnd","nativeSrc":"4191:7:97","nodeType":"YulTypedName","src":"4191:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4203:6:97","nodeType":"YulTypedName","src":"4203:6:97","type":""}],"src":"4133:184:97"},{"body":{"nativeSrc":"4496:231:97","nodeType":"YulBlock","src":"4496:231:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4513:9:97","nodeType":"YulIdentifier","src":"4513:9:97"},{"kind":"number","nativeSrc":"4524:2:97","nodeType":"YulLiteral","src":"4524:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"4506:6:97","nodeType":"YulIdentifier","src":"4506:6:97"},"nativeSrc":"4506:21:97","nodeType":"YulFunctionCall","src":"4506:21:97"},"nativeSrc":"4506:21:97","nodeType":"YulExpressionStatement","src":"4506:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4547:9:97","nodeType":"YulIdentifier","src":"4547:9:97"},{"kind":"number","nativeSrc":"4558:2:97","nodeType":"YulLiteral","src":"4558:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4543:3:97","nodeType":"YulIdentifier","src":"4543:3:97"},"nativeSrc":"4543:18:97","nodeType":"YulFunctionCall","src":"4543:18:97"},{"kind":"number","nativeSrc":"4563:2:97","nodeType":"YulLiteral","src":"4563:2:97","type":"","value":"41"}],"functionName":{"name":"mstore","nativeSrc":"4536:6:97","nodeType":"YulIdentifier","src":"4536:6:97"},"nativeSrc":"4536:30:97","nodeType":"YulFunctionCall","src":"4536:30:97"},"nativeSrc":"4536:30:97","nodeType":"YulExpressionStatement","src":"4536:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4586:9:97","nodeType":"YulIdentifier","src":"4586:9:97"},{"kind":"number","nativeSrc":"4597:2:97","nodeType":"YulLiteral","src":"4597:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4582:3:97","nodeType":"YulIdentifier","src":"4582:3:97"},"nativeSrc":"4582:18:97","nodeType":"YulFunctionCall","src":"4582:18:97"},{"hexValue":"4f776e61626c6532537465703a2063616c6c6572206973206e6f742074686520","kind":"string","nativeSrc":"4602:34:97","nodeType":"YulLiteral","src":"4602:34:97","type":"","value":"Ownable2Step: caller is not the "}],"functionName":{"name":"mstore","nativeSrc":"4575:6:97","nodeType":"YulIdentifier","src":"4575:6:97"},"nativeSrc":"4575:62:97","nodeType":"YulFunctionCall","src":"4575:62:97"},"nativeSrc":"4575:62:97","nodeType":"YulExpressionStatement","src":"4575:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4657:9:97","nodeType":"YulIdentifier","src":"4657:9:97"},{"kind":"number","nativeSrc":"4668:2:97","nodeType":"YulLiteral","src":"4668:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4653:3:97","nodeType":"YulIdentifier","src":"4653:3:97"},"nativeSrc":"4653:18:97","nodeType":"YulFunctionCall","src":"4653:18:97"},{"hexValue":"6e6577206f776e6572","kind":"string","nativeSrc":"4673:11:97","nodeType":"YulLiteral","src":"4673:11:97","type":"","value":"new owner"}],"functionName":{"name":"mstore","nativeSrc":"4646:6:97","nodeType":"YulIdentifier","src":"4646:6:97"},"nativeSrc":"4646:39:97","nodeType":"YulFunctionCall","src":"4646:39:97"},"nativeSrc":"4646:39:97","nodeType":"YulExpressionStatement","src":"4646:39:97"},{"nativeSrc":"4694:27:97","nodeType":"YulAssignment","src":"4694:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"4706:9:97","nodeType":"YulIdentifier","src":"4706:9:97"},{"kind":"number","nativeSrc":"4717:3:97","nodeType":"YulLiteral","src":"4717:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"4702:3:97","nodeType":"YulIdentifier","src":"4702:3:97"},"nativeSrc":"4702:19:97","nodeType":"YulFunctionCall","src":"4702:19:97"},"variableNames":[{"name":"tail","nativeSrc":"4694:4:97","nodeType":"YulIdentifier","src":"4694:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"4322:405:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4473:9:97","nodeType":"YulTypedName","src":"4473:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4487:4:97","nodeType":"YulTypedName","src":"4487:4:97","type":""}],"src":"4322:405:97"},{"body":{"nativeSrc":"4906:236:97","nodeType":"YulBlock","src":"4906:236:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4923:9:97","nodeType":"YulIdentifier","src":"4923:9:97"},{"kind":"number","nativeSrc":"4934:2:97","nodeType":"YulLiteral","src":"4934:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"4916:6:97","nodeType":"YulIdentifier","src":"4916:6:97"},"nativeSrc":"4916:21:97","nodeType":"YulFunctionCall","src":"4916:21:97"},"nativeSrc":"4916:21:97","nodeType":"YulExpressionStatement","src":"4916:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4957:9:97","nodeType":"YulIdentifier","src":"4957:9:97"},{"kind":"number","nativeSrc":"4968:2:97","nodeType":"YulLiteral","src":"4968:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4953:3:97","nodeType":"YulIdentifier","src":"4953:3:97"},"nativeSrc":"4953:18:97","nodeType":"YulFunctionCall","src":"4953:18:97"},{"kind":"number","nativeSrc":"4973:2:97","nodeType":"YulLiteral","src":"4973:2:97","type":"","value":"46"}],"functionName":{"name":"mstore","nativeSrc":"4946:6:97","nodeType":"YulIdentifier","src":"4946:6:97"},"nativeSrc":"4946:30:97","nodeType":"YulFunctionCall","src":"4946:30:97"},"nativeSrc":"4946:30:97","nodeType":"YulExpressionStatement","src":"4946:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4996:9:97","nodeType":"YulIdentifier","src":"4996:9:97"},{"kind":"number","nativeSrc":"5007:2:97","nodeType":"YulLiteral","src":"5007:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4992:3:97","nodeType":"YulIdentifier","src":"4992:3:97"},"nativeSrc":"4992:18:97","nodeType":"YulFunctionCall","src":"4992:18:97"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561","kind":"string","nativeSrc":"5012:34:97","nodeType":"YulLiteral","src":"5012:34:97","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nativeSrc":"4985:6:97","nodeType":"YulIdentifier","src":"4985:6:97"},"nativeSrc":"4985:62:97","nodeType":"YulFunctionCall","src":"4985:62:97"},"nativeSrc":"4985:62:97","nodeType":"YulExpressionStatement","src":"4985:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5067:9:97","nodeType":"YulIdentifier","src":"5067:9:97"},{"kind":"number","nativeSrc":"5078:2:97","nodeType":"YulLiteral","src":"5078:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5063:3:97","nodeType":"YulIdentifier","src":"5063:3:97"},"nativeSrc":"5063:18:97","nodeType":"YulFunctionCall","src":"5063:18:97"},{"hexValue":"647920696e697469616c697a6564","kind":"string","nativeSrc":"5083:16:97","nodeType":"YulLiteral","src":"5083:16:97","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nativeSrc":"5056:6:97","nodeType":"YulIdentifier","src":"5056:6:97"},"nativeSrc":"5056:44:97","nodeType":"YulFunctionCall","src":"5056:44:97"},"nativeSrc":"5056:44:97","nodeType":"YulExpressionStatement","src":"5056:44:97"},{"nativeSrc":"5109:27:97","nodeType":"YulAssignment","src":"5109:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"5121:9:97","nodeType":"YulIdentifier","src":"5121:9:97"},{"kind":"number","nativeSrc":"5132:3:97","nodeType":"YulLiteral","src":"5132:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"5117:3:97","nodeType":"YulIdentifier","src":"5117:3:97"},"nativeSrc":"5117:19:97","nodeType":"YulFunctionCall","src":"5117:19:97"},"variableNames":[{"name":"tail","nativeSrc":"5109:4:97","nodeType":"YulIdentifier","src":"5109:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"4732:410:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4883:9:97","nodeType":"YulTypedName","src":"4883:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4897:4:97","nodeType":"YulTypedName","src":"4897:4:97","type":""}],"src":"4732:410:97"},{"body":{"nativeSrc":"5254:87:97","nodeType":"YulBlock","src":"5254:87:97","statements":[{"nativeSrc":"5264:26:97","nodeType":"YulAssignment","src":"5264:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"5276:9:97","nodeType":"YulIdentifier","src":"5276:9:97"},{"kind":"number","nativeSrc":"5287:2:97","nodeType":"YulLiteral","src":"5287:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5272:3:97","nodeType":"YulIdentifier","src":"5272:3:97"},"nativeSrc":"5272:18:97","nodeType":"YulFunctionCall","src":"5272:18:97"},"variableNames":[{"name":"tail","nativeSrc":"5264:4:97","nodeType":"YulIdentifier","src":"5264:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5306:9:97","nodeType":"YulIdentifier","src":"5306:9:97"},{"arguments":[{"name":"value0","nativeSrc":"5321:6:97","nodeType":"YulIdentifier","src":"5321:6:97"},{"kind":"number","nativeSrc":"5329:4:97","nodeType":"YulLiteral","src":"5329:4:97","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"5317:3:97","nodeType":"YulIdentifier","src":"5317:3:97"},"nativeSrc":"5317:17:97","nodeType":"YulFunctionCall","src":"5317:17:97"}],"functionName":{"name":"mstore","nativeSrc":"5299:6:97","nodeType":"YulIdentifier","src":"5299:6:97"},"nativeSrc":"5299:36:97","nodeType":"YulFunctionCall","src":"5299:36:97"},"nativeSrc":"5299:36:97","nodeType":"YulExpressionStatement","src":"5299:36:97"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nativeSrc":"5147:194:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5223:9:97","nodeType":"YulTypedName","src":"5223:9:97","type":""},{"name":"value0","nativeSrc":"5234:6:97","nodeType":"YulTypedName","src":"5234:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5245:4:97","nodeType":"YulTypedName","src":"5245:4:97","type":""}],"src":"5147:194:97"},{"body":{"nativeSrc":"5520:182:97","nodeType":"YulBlock","src":"5520:182:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5537:9:97","nodeType":"YulIdentifier","src":"5537:9:97"},{"kind":"number","nativeSrc":"5548:2:97","nodeType":"YulLiteral","src":"5548:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"5530:6:97","nodeType":"YulIdentifier","src":"5530:6:97"},"nativeSrc":"5530:21:97","nodeType":"YulFunctionCall","src":"5530:21:97"},"nativeSrc":"5530:21:97","nodeType":"YulExpressionStatement","src":"5530:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5571:9:97","nodeType":"YulIdentifier","src":"5571:9:97"},{"kind":"number","nativeSrc":"5582:2:97","nodeType":"YulLiteral","src":"5582:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5567:3:97","nodeType":"YulIdentifier","src":"5567:3:97"},"nativeSrc":"5567:18:97","nodeType":"YulFunctionCall","src":"5567:18:97"},{"kind":"number","nativeSrc":"5587:2:97","nodeType":"YulLiteral","src":"5587:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"5560:6:97","nodeType":"YulIdentifier","src":"5560:6:97"},"nativeSrc":"5560:30:97","nodeType":"YulFunctionCall","src":"5560:30:97"},"nativeSrc":"5560:30:97","nodeType":"YulExpressionStatement","src":"5560:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5610:9:97","nodeType":"YulIdentifier","src":"5610:9:97"},{"kind":"number","nativeSrc":"5621:2:97","nodeType":"YulLiteral","src":"5621:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5606:3:97","nodeType":"YulIdentifier","src":"5606:3:97"},"nativeSrc":"5606:18:97","nodeType":"YulFunctionCall","src":"5606:18:97"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nativeSrc":"5626:34:97","nodeType":"YulLiteral","src":"5626:34:97","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nativeSrc":"5599:6:97","nodeType":"YulIdentifier","src":"5599:6:97"},"nativeSrc":"5599:62:97","nodeType":"YulFunctionCall","src":"5599:62:97"},"nativeSrc":"5599:62:97","nodeType":"YulExpressionStatement","src":"5599:62:97"},{"nativeSrc":"5670:26:97","nodeType":"YulAssignment","src":"5670:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"5682:9:97","nodeType":"YulIdentifier","src":"5682:9:97"},{"kind":"number","nativeSrc":"5693:2:97","nodeType":"YulLiteral","src":"5693:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5678:3:97","nodeType":"YulIdentifier","src":"5678:3:97"},"nativeSrc":"5678:18:97","nodeType":"YulFunctionCall","src":"5678:18:97"},"variableNames":[{"name":"tail","nativeSrc":"5670:4:97","nodeType":"YulIdentifier","src":"5670:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5346:356:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5497:9:97","nodeType":"YulTypedName","src":"5497:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5511:4:97","nodeType":"YulTypedName","src":"5511:4:97","type":""}],"src":"5346:356:97"},{"body":{"nativeSrc":"5881:227:97","nodeType":"YulBlock","src":"5881:227:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5898:9:97","nodeType":"YulIdentifier","src":"5898:9:97"},{"kind":"number","nativeSrc":"5909:2:97","nodeType":"YulLiteral","src":"5909:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"5891:6:97","nodeType":"YulIdentifier","src":"5891:6:97"},"nativeSrc":"5891:21:97","nodeType":"YulFunctionCall","src":"5891:21:97"},"nativeSrc":"5891:21:97","nodeType":"YulExpressionStatement","src":"5891:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5932:9:97","nodeType":"YulIdentifier","src":"5932:9:97"},{"kind":"number","nativeSrc":"5943:2:97","nodeType":"YulLiteral","src":"5943:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5928:3:97","nodeType":"YulIdentifier","src":"5928:3:97"},"nativeSrc":"5928:18:97","nodeType":"YulFunctionCall","src":"5928:18:97"},{"kind":"number","nativeSrc":"5948:2:97","nodeType":"YulLiteral","src":"5948:2:97","type":"","value":"37"}],"functionName":{"name":"mstore","nativeSrc":"5921:6:97","nodeType":"YulIdentifier","src":"5921:6:97"},"nativeSrc":"5921:30:97","nodeType":"YulFunctionCall","src":"5921:30:97"},"nativeSrc":"5921:30:97","nodeType":"YulExpressionStatement","src":"5921:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5971:9:97","nodeType":"YulIdentifier","src":"5971:9:97"},{"kind":"number","nativeSrc":"5982:2:97","nodeType":"YulLiteral","src":"5982:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5967:3:97","nodeType":"YulIdentifier","src":"5967:3:97"},"nativeSrc":"5967:18:97","nodeType":"YulFunctionCall","src":"5967:18:97"},{"hexValue":"696e76616c696420616365737320636f6e74726f6c206d616e61676572206164","kind":"string","nativeSrc":"5987:34:97","nodeType":"YulLiteral","src":"5987:34:97","type":"","value":"invalid acess control manager ad"}],"functionName":{"name":"mstore","nativeSrc":"5960:6:97","nodeType":"YulIdentifier","src":"5960:6:97"},"nativeSrc":"5960:62:97","nodeType":"YulFunctionCall","src":"5960:62:97"},"nativeSrc":"5960:62:97","nodeType":"YulExpressionStatement","src":"5960:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6042:9:97","nodeType":"YulIdentifier","src":"6042:9:97"},{"kind":"number","nativeSrc":"6053:2:97","nodeType":"YulLiteral","src":"6053:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"6038:3:97","nodeType":"YulIdentifier","src":"6038:3:97"},"nativeSrc":"6038:18:97","nodeType":"YulFunctionCall","src":"6038:18:97"},{"hexValue":"6472657373","kind":"string","nativeSrc":"6058:7:97","nodeType":"YulLiteral","src":"6058:7:97","type":"","value":"dress"}],"functionName":{"name":"mstore","nativeSrc":"6031:6:97","nodeType":"YulIdentifier","src":"6031:6:97"},"nativeSrc":"6031:35:97","nodeType":"YulFunctionCall","src":"6031:35:97"},"nativeSrc":"6031:35:97","nodeType":"YulExpressionStatement","src":"6031:35:97"},{"nativeSrc":"6075:27:97","nodeType":"YulAssignment","src":"6075:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"6087:9:97","nodeType":"YulIdentifier","src":"6087:9:97"},{"kind":"number","nativeSrc":"6098:3:97","nodeType":"YulLiteral","src":"6098:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"6083:3:97","nodeType":"YulIdentifier","src":"6083:3:97"},"nativeSrc":"6083:19:97","nodeType":"YulFunctionCall","src":"6083:19:97"},"variableNames":[{"name":"tail","nativeSrc":"6075:4:97","nodeType":"YulIdentifier","src":"6075:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5707:401:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5858:9:97","nodeType":"YulTypedName","src":"5858:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5872:4:97","nodeType":"YulTypedName","src":"5872:4:97","type":""}],"src":"5707:401:97"},{"body":{"nativeSrc":"6242:198:97","nodeType":"YulBlock","src":"6242:198:97","statements":[{"nativeSrc":"6252:26:97","nodeType":"YulAssignment","src":"6252:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"6264:9:97","nodeType":"YulIdentifier","src":"6264:9:97"},{"kind":"number","nativeSrc":"6275:2:97","nodeType":"YulLiteral","src":"6275:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6260:3:97","nodeType":"YulIdentifier","src":"6260:3:97"},"nativeSrc":"6260:18:97","nodeType":"YulFunctionCall","src":"6260:18:97"},"variableNames":[{"name":"tail","nativeSrc":"6252:4:97","nodeType":"YulIdentifier","src":"6252:4:97"}]},{"nativeSrc":"6287:52:97","nodeType":"YulVariableDeclaration","src":"6287:52:97","value":{"kind":"number","nativeSrc":"6297:42:97","nodeType":"YulLiteral","src":"6297:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"6291:2:97","nodeType":"YulTypedName","src":"6291:2:97","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6355:9:97","nodeType":"YulIdentifier","src":"6355:9:97"},{"arguments":[{"name":"value0","nativeSrc":"6370:6:97","nodeType":"YulIdentifier","src":"6370:6:97"},{"name":"_1","nativeSrc":"6378:2:97","nodeType":"YulIdentifier","src":"6378:2:97"}],"functionName":{"name":"and","nativeSrc":"6366:3:97","nodeType":"YulIdentifier","src":"6366:3:97"},"nativeSrc":"6366:15:97","nodeType":"YulFunctionCall","src":"6366:15:97"}],"functionName":{"name":"mstore","nativeSrc":"6348:6:97","nodeType":"YulIdentifier","src":"6348:6:97"},"nativeSrc":"6348:34:97","nodeType":"YulFunctionCall","src":"6348:34:97"},"nativeSrc":"6348:34:97","nodeType":"YulExpressionStatement","src":"6348:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6402:9:97","nodeType":"YulIdentifier","src":"6402:9:97"},{"kind":"number","nativeSrc":"6413:2:97","nodeType":"YulLiteral","src":"6413:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6398:3:97","nodeType":"YulIdentifier","src":"6398:3:97"},"nativeSrc":"6398:18:97","nodeType":"YulFunctionCall","src":"6398:18:97"},{"arguments":[{"name":"value1","nativeSrc":"6422:6:97","nodeType":"YulIdentifier","src":"6422:6:97"},{"name":"_1","nativeSrc":"6430:2:97","nodeType":"YulIdentifier","src":"6430:2:97"}],"functionName":{"name":"and","nativeSrc":"6418:3:97","nodeType":"YulIdentifier","src":"6418:3:97"},"nativeSrc":"6418:15:97","nodeType":"YulFunctionCall","src":"6418:15:97"}],"functionName":{"name":"mstore","nativeSrc":"6391:6:97","nodeType":"YulIdentifier","src":"6391:6:97"},"nativeSrc":"6391:43:97","nodeType":"YulFunctionCall","src":"6391:43:97"},"nativeSrc":"6391:43:97","nodeType":"YulExpressionStatement","src":"6391:43:97"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"6113:327:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6203:9:97","nodeType":"YulTypedName","src":"6203:9:97","type":""},{"name":"value1","nativeSrc":"6214:6:97","nodeType":"YulTypedName","src":"6214:6:97","type":""},{"name":"value0","nativeSrc":"6222:6:97","nodeType":"YulTypedName","src":"6222:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6233:4:97","nodeType":"YulTypedName","src":"6233:4:97","type":""}],"src":"6113:327:97"},{"body":{"nativeSrc":"6594:191:97","nodeType":"YulBlock","src":"6594:191:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6611:9:97","nodeType":"YulIdentifier","src":"6611:9:97"},{"arguments":[{"name":"value0","nativeSrc":"6626:6:97","nodeType":"YulIdentifier","src":"6626:6:97"},{"kind":"number","nativeSrc":"6634:42:97","nodeType":"YulLiteral","src":"6634:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"6622:3:97","nodeType":"YulIdentifier","src":"6622:3:97"},"nativeSrc":"6622:55:97","nodeType":"YulFunctionCall","src":"6622:55:97"}],"functionName":{"name":"mstore","nativeSrc":"6604:6:97","nodeType":"YulIdentifier","src":"6604:6:97"},"nativeSrc":"6604:74:97","nodeType":"YulFunctionCall","src":"6604:74:97"},"nativeSrc":"6604:74:97","nodeType":"YulExpressionStatement","src":"6604:74:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6698:9:97","nodeType":"YulIdentifier","src":"6698:9:97"},{"kind":"number","nativeSrc":"6709:2:97","nodeType":"YulLiteral","src":"6709:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6694:3:97","nodeType":"YulIdentifier","src":"6694:3:97"},"nativeSrc":"6694:18:97","nodeType":"YulFunctionCall","src":"6694:18:97"},{"kind":"number","nativeSrc":"6714:2:97","nodeType":"YulLiteral","src":"6714:2:97","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"6687:6:97","nodeType":"YulIdentifier","src":"6687:6:97"},"nativeSrc":"6687:30:97","nodeType":"YulFunctionCall","src":"6687:30:97"},"nativeSrc":"6687:30:97","nodeType":"YulExpressionStatement","src":"6687:30:97"},{"nativeSrc":"6726:53:97","nodeType":"YulAssignment","src":"6726:53:97","value":{"arguments":[{"name":"value1","nativeSrc":"6752:6:97","nodeType":"YulIdentifier","src":"6752:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"6764:9:97","nodeType":"YulIdentifier","src":"6764:9:97"},{"kind":"number","nativeSrc":"6775:2:97","nodeType":"YulLiteral","src":"6775:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6760:3:97","nodeType":"YulIdentifier","src":"6760:3:97"},"nativeSrc":"6760:18:97","nodeType":"YulFunctionCall","src":"6760:18:97"}],"functionName":{"name":"abi_encode_string","nativeSrc":"6734:17:97","nodeType":"YulIdentifier","src":"6734:17:97"},"nativeSrc":"6734:45:97","nodeType":"YulFunctionCall","src":"6734:45:97"},"variableNames":[{"name":"tail","nativeSrc":"6726:4:97","nodeType":"YulIdentifier","src":"6726:4:97"}]}]},"name":"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6445:340:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6555:9:97","nodeType":"YulTypedName","src":"6555:9:97","type":""},{"name":"value1","nativeSrc":"6566:6:97","nodeType":"YulTypedName","src":"6566:6:97","type":""},{"name":"value0","nativeSrc":"6574:6:97","nodeType":"YulTypedName","src":"6574:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6585:4:97","nodeType":"YulTypedName","src":"6585:4:97","type":""}],"src":"6445:340:97"},{"body":{"nativeSrc":"6868:199:97","nodeType":"YulBlock","src":"6868:199:97","statements":[{"body":{"nativeSrc":"6914:16:97","nodeType":"YulBlock","src":"6914:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6923:1:97","nodeType":"YulLiteral","src":"6923:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"6926:1:97","nodeType":"YulLiteral","src":"6926:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6916:6:97","nodeType":"YulIdentifier","src":"6916:6:97"},"nativeSrc":"6916:12:97","nodeType":"YulFunctionCall","src":"6916:12:97"},"nativeSrc":"6916:12:97","nodeType":"YulExpressionStatement","src":"6916:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6889:7:97","nodeType":"YulIdentifier","src":"6889:7:97"},{"name":"headStart","nativeSrc":"6898:9:97","nodeType":"YulIdentifier","src":"6898:9:97"}],"functionName":{"name":"sub","nativeSrc":"6885:3:97","nodeType":"YulIdentifier","src":"6885:3:97"},"nativeSrc":"6885:23:97","nodeType":"YulFunctionCall","src":"6885:23:97"},{"kind":"number","nativeSrc":"6910:2:97","nodeType":"YulLiteral","src":"6910:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6881:3:97","nodeType":"YulIdentifier","src":"6881:3:97"},"nativeSrc":"6881:32:97","nodeType":"YulFunctionCall","src":"6881:32:97"},"nativeSrc":"6878:52:97","nodeType":"YulIf","src":"6878:52:97"},{"nativeSrc":"6939:29:97","nodeType":"YulVariableDeclaration","src":"6939:29:97","value":{"arguments":[{"name":"headStart","nativeSrc":"6958:9:97","nodeType":"YulIdentifier","src":"6958:9:97"}],"functionName":{"name":"mload","nativeSrc":"6952:5:97","nodeType":"YulIdentifier","src":"6952:5:97"},"nativeSrc":"6952:16:97","nodeType":"YulFunctionCall","src":"6952:16:97"},"variables":[{"name":"value","nativeSrc":"6943:5:97","nodeType":"YulTypedName","src":"6943:5:97","type":""}]},{"body":{"nativeSrc":"7021:16:97","nodeType":"YulBlock","src":"7021:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7030:1:97","nodeType":"YulLiteral","src":"7030:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"7033:1:97","nodeType":"YulLiteral","src":"7033:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7023:6:97","nodeType":"YulIdentifier","src":"7023:6:97"},"nativeSrc":"7023:12:97","nodeType":"YulFunctionCall","src":"7023:12:97"},"nativeSrc":"7023:12:97","nodeType":"YulExpressionStatement","src":"7023:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6990:5:97","nodeType":"YulIdentifier","src":"6990:5:97"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7011:5:97","nodeType":"YulIdentifier","src":"7011:5:97"}],"functionName":{"name":"iszero","nativeSrc":"7004:6:97","nodeType":"YulIdentifier","src":"7004:6:97"},"nativeSrc":"7004:13:97","nodeType":"YulFunctionCall","src":"7004:13:97"}],"functionName":{"name":"iszero","nativeSrc":"6997:6:97","nodeType":"YulIdentifier","src":"6997:6:97"},"nativeSrc":"6997:21:97","nodeType":"YulFunctionCall","src":"6997:21:97"}],"functionName":{"name":"eq","nativeSrc":"6987:2:97","nodeType":"YulIdentifier","src":"6987:2:97"},"nativeSrc":"6987:32:97","nodeType":"YulFunctionCall","src":"6987:32:97"}],"functionName":{"name":"iszero","nativeSrc":"6980:6:97","nodeType":"YulIdentifier","src":"6980:6:97"},"nativeSrc":"6980:40:97","nodeType":"YulFunctionCall","src":"6980:40:97"},"nativeSrc":"6977:60:97","nodeType":"YulIf","src":"6977:60:97"},{"nativeSrc":"7046:15:97","nodeType":"YulAssignment","src":"7046:15:97","value":{"name":"value","nativeSrc":"7056:5:97","nodeType":"YulIdentifier","src":"7056:5:97"},"variableNames":[{"name":"value0","nativeSrc":"7046:6:97","nodeType":"YulIdentifier","src":"7046:6:97"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"6790:277:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6834:9:97","nodeType":"YulTypedName","src":"6834:9:97","type":""},{"name":"dataEnd","nativeSrc":"6845:7:97","nodeType":"YulTypedName","src":"6845:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6857:6:97","nodeType":"YulTypedName","src":"6857:6:97","type":""}],"src":"6790:277:97"},{"body":{"nativeSrc":"7249:264:97","nodeType":"YulBlock","src":"7249:264:97","statements":[{"nativeSrc":"7259:52:97","nodeType":"YulVariableDeclaration","src":"7259:52:97","value":{"kind":"number","nativeSrc":"7269:42:97","nodeType":"YulLiteral","src":"7269:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"7263:2:97","nodeType":"YulTypedName","src":"7263:2:97","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7327:9:97","nodeType":"YulIdentifier","src":"7327:9:97"},{"arguments":[{"name":"value0","nativeSrc":"7342:6:97","nodeType":"YulIdentifier","src":"7342:6:97"},{"name":"_1","nativeSrc":"7350:2:97","nodeType":"YulIdentifier","src":"7350:2:97"}],"functionName":{"name":"and","nativeSrc":"7338:3:97","nodeType":"YulIdentifier","src":"7338:3:97"},"nativeSrc":"7338:15:97","nodeType":"YulFunctionCall","src":"7338:15:97"}],"functionName":{"name":"mstore","nativeSrc":"7320:6:97","nodeType":"YulIdentifier","src":"7320:6:97"},"nativeSrc":"7320:34:97","nodeType":"YulFunctionCall","src":"7320:34:97"},"nativeSrc":"7320:34:97","nodeType":"YulExpressionStatement","src":"7320:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7374:9:97","nodeType":"YulIdentifier","src":"7374:9:97"},{"kind":"number","nativeSrc":"7385:2:97","nodeType":"YulLiteral","src":"7385:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7370:3:97","nodeType":"YulIdentifier","src":"7370:3:97"},"nativeSrc":"7370:18:97","nodeType":"YulFunctionCall","src":"7370:18:97"},{"arguments":[{"name":"value1","nativeSrc":"7394:6:97","nodeType":"YulIdentifier","src":"7394:6:97"},{"name":"_1","nativeSrc":"7402:2:97","nodeType":"YulIdentifier","src":"7402:2:97"}],"functionName":{"name":"and","nativeSrc":"7390:3:97","nodeType":"YulIdentifier","src":"7390:3:97"},"nativeSrc":"7390:15:97","nodeType":"YulFunctionCall","src":"7390:15:97"}],"functionName":{"name":"mstore","nativeSrc":"7363:6:97","nodeType":"YulIdentifier","src":"7363:6:97"},"nativeSrc":"7363:43:97","nodeType":"YulFunctionCall","src":"7363:43:97"},"nativeSrc":"7363:43:97","nodeType":"YulExpressionStatement","src":"7363:43:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7426:9:97","nodeType":"YulIdentifier","src":"7426:9:97"},{"kind":"number","nativeSrc":"7437:2:97","nodeType":"YulLiteral","src":"7437:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7422:3:97","nodeType":"YulIdentifier","src":"7422:3:97"},"nativeSrc":"7422:18:97","nodeType":"YulFunctionCall","src":"7422:18:97"},{"kind":"number","nativeSrc":"7442:2:97","nodeType":"YulLiteral","src":"7442:2:97","type":"","value":"96"}],"functionName":{"name":"mstore","nativeSrc":"7415:6:97","nodeType":"YulIdentifier","src":"7415:6:97"},"nativeSrc":"7415:30:97","nodeType":"YulFunctionCall","src":"7415:30:97"},"nativeSrc":"7415:30:97","nodeType":"YulExpressionStatement","src":"7415:30:97"},{"nativeSrc":"7454:53:97","nodeType":"YulAssignment","src":"7454:53:97","value":{"arguments":[{"name":"value2","nativeSrc":"7480:6:97","nodeType":"YulIdentifier","src":"7480:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"7492:9:97","nodeType":"YulIdentifier","src":"7492:9:97"},{"kind":"number","nativeSrc":"7503:2:97","nodeType":"YulLiteral","src":"7503:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"7488:3:97","nodeType":"YulIdentifier","src":"7488:3:97"},"nativeSrc":"7488:18:97","nodeType":"YulFunctionCall","src":"7488:18:97"}],"functionName":{"name":"abi_encode_string","nativeSrc":"7462:17:97","nodeType":"YulIdentifier","src":"7462:17:97"},"nativeSrc":"7462:45:97","nodeType":"YulFunctionCall","src":"7462:45:97"},"variableNames":[{"name":"tail","nativeSrc":"7454:4:97","nodeType":"YulIdentifier","src":"7454:4:97"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"7072:441:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7202:9:97","nodeType":"YulTypedName","src":"7202:9:97","type":""},{"name":"value2","nativeSrc":"7213:6:97","nodeType":"YulTypedName","src":"7213:6:97","type":""},{"name":"value1","nativeSrc":"7221:6:97","nodeType":"YulTypedName","src":"7221:6:97","type":""},{"name":"value0","nativeSrc":"7229:6:97","nodeType":"YulTypedName","src":"7229:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7240:4:97","nodeType":"YulTypedName","src":"7240:4:97","type":""}],"src":"7072:441:97"},{"body":{"nativeSrc":"7550:152:97","nodeType":"YulBlock","src":"7550:152:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7567:1:97","nodeType":"YulLiteral","src":"7567:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"7570:77:97","nodeType":"YulLiteral","src":"7570:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"7560:6:97","nodeType":"YulIdentifier","src":"7560:6:97"},"nativeSrc":"7560:88:97","nodeType":"YulFunctionCall","src":"7560:88:97"},"nativeSrc":"7560:88:97","nodeType":"YulExpressionStatement","src":"7560:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7664:1:97","nodeType":"YulLiteral","src":"7664:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"7667:4:97","nodeType":"YulLiteral","src":"7667:4:97","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"7657:6:97","nodeType":"YulIdentifier","src":"7657:6:97"},"nativeSrc":"7657:15:97","nodeType":"YulFunctionCall","src":"7657:15:97"},"nativeSrc":"7657:15:97","nodeType":"YulExpressionStatement","src":"7657:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7688:1:97","nodeType":"YulLiteral","src":"7688:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"7691:4:97","nodeType":"YulLiteral","src":"7691:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"7681:6:97","nodeType":"YulIdentifier","src":"7681:6:97"},"nativeSrc":"7681:15:97","nodeType":"YulFunctionCall","src":"7681:15:97"},"nativeSrc":"7681:15:97","nodeType":"YulExpressionStatement","src":"7681:15:97"}]},"name":"panic_error_0x11","nativeSrc":"7518:184:97","nodeType":"YulFunctionDefinition","src":"7518:184:97"},{"body":{"nativeSrc":"7756:79:97","nodeType":"YulBlock","src":"7756:79:97","statements":[{"nativeSrc":"7766:17:97","nodeType":"YulAssignment","src":"7766:17:97","value":{"arguments":[{"name":"x","nativeSrc":"7778:1:97","nodeType":"YulIdentifier","src":"7778:1:97"},{"name":"y","nativeSrc":"7781:1:97","nodeType":"YulIdentifier","src":"7781:1:97"}],"functionName":{"name":"sub","nativeSrc":"7774:3:97","nodeType":"YulIdentifier","src":"7774:3:97"},"nativeSrc":"7774:9:97","nodeType":"YulFunctionCall","src":"7774:9:97"},"variableNames":[{"name":"diff","nativeSrc":"7766:4:97","nodeType":"YulIdentifier","src":"7766:4:97"}]},{"body":{"nativeSrc":"7807:22:97","nodeType":"YulBlock","src":"7807:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"7809:16:97","nodeType":"YulIdentifier","src":"7809:16:97"},"nativeSrc":"7809:18:97","nodeType":"YulFunctionCall","src":"7809:18:97"},"nativeSrc":"7809:18:97","nodeType":"YulExpressionStatement","src":"7809:18:97"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"7798:4:97","nodeType":"YulIdentifier","src":"7798:4:97"},{"name":"x","nativeSrc":"7804:1:97","nodeType":"YulIdentifier","src":"7804:1:97"}],"functionName":{"name":"gt","nativeSrc":"7795:2:97","nodeType":"YulIdentifier","src":"7795:2:97"},"nativeSrc":"7795:11:97","nodeType":"YulFunctionCall","src":"7795:11:97"},"nativeSrc":"7792:37:97","nodeType":"YulIf","src":"7792:37:97"}]},"name":"checked_sub_t_uint256","nativeSrc":"7707:128:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"7738:1:97","nodeType":"YulTypedName","src":"7738:1:97","type":""},{"name":"y","nativeSrc":"7741:1:97","nodeType":"YulTypedName","src":"7741:1:97","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"7747:4:97","nodeType":"YulTypedName","src":"7747:4:97","type":""}],"src":"7707:128:97"},{"body":{"nativeSrc":"7892:116:97","nodeType":"YulBlock","src":"7892:116:97","statements":[{"nativeSrc":"7902:20:97","nodeType":"YulAssignment","src":"7902:20:97","value":{"arguments":[{"name":"x","nativeSrc":"7917:1:97","nodeType":"YulIdentifier","src":"7917:1:97"},{"name":"y","nativeSrc":"7920:1:97","nodeType":"YulIdentifier","src":"7920:1:97"}],"functionName":{"name":"mul","nativeSrc":"7913:3:97","nodeType":"YulIdentifier","src":"7913:3:97"},"nativeSrc":"7913:9:97","nodeType":"YulFunctionCall","src":"7913:9:97"},"variableNames":[{"name":"product","nativeSrc":"7902:7:97","nodeType":"YulIdentifier","src":"7902:7:97"}]},{"body":{"nativeSrc":"7980:22:97","nodeType":"YulBlock","src":"7980:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"7982:16:97","nodeType":"YulIdentifier","src":"7982:16:97"},"nativeSrc":"7982:18:97","nodeType":"YulFunctionCall","src":"7982:18:97"},"nativeSrc":"7982:18:97","nodeType":"YulExpressionStatement","src":"7982:18:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"7951:1:97","nodeType":"YulIdentifier","src":"7951:1:97"}],"functionName":{"name":"iszero","nativeSrc":"7944:6:97","nodeType":"YulIdentifier","src":"7944:6:97"},"nativeSrc":"7944:9:97","nodeType":"YulFunctionCall","src":"7944:9:97"},{"arguments":[{"name":"y","nativeSrc":"7958:1:97","nodeType":"YulIdentifier","src":"7958:1:97"},{"arguments":[{"name":"product","nativeSrc":"7965:7:97","nodeType":"YulIdentifier","src":"7965:7:97"},{"name":"x","nativeSrc":"7974:1:97","nodeType":"YulIdentifier","src":"7974:1:97"}],"functionName":{"name":"div","nativeSrc":"7961:3:97","nodeType":"YulIdentifier","src":"7961:3:97"},"nativeSrc":"7961:15:97","nodeType":"YulFunctionCall","src":"7961:15:97"}],"functionName":{"name":"eq","nativeSrc":"7955:2:97","nodeType":"YulIdentifier","src":"7955:2:97"},"nativeSrc":"7955:22:97","nodeType":"YulFunctionCall","src":"7955:22:97"}],"functionName":{"name":"or","nativeSrc":"7941:2:97","nodeType":"YulIdentifier","src":"7941:2:97"},"nativeSrc":"7941:37:97","nodeType":"YulFunctionCall","src":"7941:37:97"}],"functionName":{"name":"iszero","nativeSrc":"7934:6:97","nodeType":"YulIdentifier","src":"7934:6:97"},"nativeSrc":"7934:45:97","nodeType":"YulFunctionCall","src":"7934:45:97"},"nativeSrc":"7931:71:97","nodeType":"YulIf","src":"7931:71:97"}]},"name":"checked_mul_t_uint256","nativeSrc":"7840:168:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"7871:1:97","nodeType":"YulTypedName","src":"7871:1:97","type":""},{"name":"y","nativeSrc":"7874:1:97","nodeType":"YulTypedName","src":"7874:1:97","type":""}],"returnVariables":[{"name":"product","nativeSrc":"7880:7:97","nodeType":"YulTypedName","src":"7880:7:97","type":""}],"src":"7840:168:97"},{"body":{"nativeSrc":"8059:228:97","nodeType":"YulBlock","src":"8059:228:97","statements":[{"body":{"nativeSrc":"8090:168:97","nodeType":"YulBlock","src":"8090:168:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8111:1:97","nodeType":"YulLiteral","src":"8111:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"8114:77:97","nodeType":"YulLiteral","src":"8114:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"8104:6:97","nodeType":"YulIdentifier","src":"8104:6:97"},"nativeSrc":"8104:88:97","nodeType":"YulFunctionCall","src":"8104:88:97"},"nativeSrc":"8104:88:97","nodeType":"YulExpressionStatement","src":"8104:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8212:1:97","nodeType":"YulLiteral","src":"8212:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"8215:4:97","nodeType":"YulLiteral","src":"8215:4:97","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"8205:6:97","nodeType":"YulIdentifier","src":"8205:6:97"},"nativeSrc":"8205:15:97","nodeType":"YulFunctionCall","src":"8205:15:97"},"nativeSrc":"8205:15:97","nodeType":"YulExpressionStatement","src":"8205:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8240:1:97","nodeType":"YulLiteral","src":"8240:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"8243:4:97","nodeType":"YulLiteral","src":"8243:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"8233:6:97","nodeType":"YulIdentifier","src":"8233:6:97"},"nativeSrc":"8233:15:97","nodeType":"YulFunctionCall","src":"8233:15:97"},"nativeSrc":"8233:15:97","nodeType":"YulExpressionStatement","src":"8233:15:97"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"8079:1:97","nodeType":"YulIdentifier","src":"8079:1:97"}],"functionName":{"name":"iszero","nativeSrc":"8072:6:97","nodeType":"YulIdentifier","src":"8072:6:97"},"nativeSrc":"8072:9:97","nodeType":"YulFunctionCall","src":"8072:9:97"},"nativeSrc":"8069:189:97","nodeType":"YulIf","src":"8069:189:97"},{"nativeSrc":"8267:14:97","nodeType":"YulAssignment","src":"8267:14:97","value":{"arguments":[{"name":"x","nativeSrc":"8276:1:97","nodeType":"YulIdentifier","src":"8276:1:97"},{"name":"y","nativeSrc":"8279:1:97","nodeType":"YulIdentifier","src":"8279:1:97"}],"functionName":{"name":"div","nativeSrc":"8272:3:97","nodeType":"YulIdentifier","src":"8272:3:97"},"nativeSrc":"8272:9:97","nodeType":"YulFunctionCall","src":"8272:9:97"},"variableNames":[{"name":"r","nativeSrc":"8267:1:97","nodeType":"YulIdentifier","src":"8267:1:97"}]}]},"name":"checked_div_t_uint256","nativeSrc":"8013:274:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"8044:1:97","nodeType":"YulTypedName","src":"8044:1:97","type":""},{"name":"y","nativeSrc":"8047:1:97","nodeType":"YulTypedName","src":"8047:1:97","type":""}],"returnVariables":[{"name":"r","nativeSrc":"8053:1:97","nodeType":"YulTypedName","src":"8053:1:97","type":""}],"src":"8013:274:97"},{"body":{"nativeSrc":"8324:152:97","nodeType":"YulBlock","src":"8324:152:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8341:1:97","nodeType":"YulLiteral","src":"8341:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"8344:77:97","nodeType":"YulLiteral","src":"8344:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"8334:6:97","nodeType":"YulIdentifier","src":"8334:6:97"},"nativeSrc":"8334:88:97","nodeType":"YulFunctionCall","src":"8334:88:97"},"nativeSrc":"8334:88:97","nodeType":"YulExpressionStatement","src":"8334:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8438:1:97","nodeType":"YulLiteral","src":"8438:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"8441:4:97","nodeType":"YulLiteral","src":"8441:4:97","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"8431:6:97","nodeType":"YulIdentifier","src":"8431:6:97"},"nativeSrc":"8431:15:97","nodeType":"YulFunctionCall","src":"8431:15:97"},"nativeSrc":"8431:15:97","nodeType":"YulExpressionStatement","src":"8431:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8462:1:97","nodeType":"YulLiteral","src":"8462:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"8465:4:97","nodeType":"YulLiteral","src":"8465:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"8455:6:97","nodeType":"YulIdentifier","src":"8455:6:97"},"nativeSrc":"8455:15:97","nodeType":"YulFunctionCall","src":"8455:15:97"},"nativeSrc":"8455:15:97","nodeType":"YulExpressionStatement","src":"8455:15:97"}]},"name":"panic_error_0x41","nativeSrc":"8292:184:97","nodeType":"YulFunctionDefinition","src":"8292:184:97"},{"body":{"nativeSrc":"8513:152:97","nodeType":"YulBlock","src":"8513:152:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8530:1:97","nodeType":"YulLiteral","src":"8530:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"8533:77:97","nodeType":"YulLiteral","src":"8533:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"8523:6:97","nodeType":"YulIdentifier","src":"8523:6:97"},"nativeSrc":"8523:88:97","nodeType":"YulFunctionCall","src":"8523:88:97"},"nativeSrc":"8523:88:97","nodeType":"YulExpressionStatement","src":"8523:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8627:1:97","nodeType":"YulLiteral","src":"8627:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"8630:4:97","nodeType":"YulLiteral","src":"8630:4:97","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"8620:6:97","nodeType":"YulIdentifier","src":"8620:6:97"},"nativeSrc":"8620:15:97","nodeType":"YulFunctionCall","src":"8620:15:97"},"nativeSrc":"8620:15:97","nodeType":"YulExpressionStatement","src":"8620:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8651:1:97","nodeType":"YulLiteral","src":"8651:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"8654:4:97","nodeType":"YulLiteral","src":"8654:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"8644:6:97","nodeType":"YulIdentifier","src":"8644:6:97"},"nativeSrc":"8644:15:97","nodeType":"YulFunctionCall","src":"8644:15:97"},"nativeSrc":"8644:15:97","nodeType":"YulExpressionStatement","src":"8644:15:97"}]},"name":"panic_error_0x32","nativeSrc":"8481:184:97","nodeType":"YulFunctionDefinition","src":"8481:184:97"},{"body":{"nativeSrc":"8899:972:97","nodeType":"YulBlock","src":"8899:972:97","statements":[{"nativeSrc":"8909:32:97","nodeType":"YulVariableDeclaration","src":"8909:32:97","value":{"arguments":[{"name":"headStart","nativeSrc":"8927:9:97","nodeType":"YulIdentifier","src":"8927:9:97"},{"kind":"number","nativeSrc":"8938:2:97","nodeType":"YulLiteral","src":"8938:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8923:3:97","nodeType":"YulIdentifier","src":"8923:3:97"},"nativeSrc":"8923:18:97","nodeType":"YulFunctionCall","src":"8923:18:97"},"variables":[{"name":"tail_1","nativeSrc":"8913:6:97","nodeType":"YulTypedName","src":"8913:6:97","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8957:9:97","nodeType":"YulIdentifier","src":"8957:9:97"},{"kind":"number","nativeSrc":"8968:2:97","nodeType":"YulLiteral","src":"8968:2:97","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"8950:6:97","nodeType":"YulIdentifier","src":"8950:6:97"},"nativeSrc":"8950:21:97","nodeType":"YulFunctionCall","src":"8950:21:97"},"nativeSrc":"8950:21:97","nodeType":"YulExpressionStatement","src":"8950:21:97"},{"nativeSrc":"8980:17:97","nodeType":"YulVariableDeclaration","src":"8980:17:97","value":{"name":"tail_1","nativeSrc":"8991:6:97","nodeType":"YulIdentifier","src":"8991:6:97"},"variables":[{"name":"pos","nativeSrc":"8984:3:97","nodeType":"YulTypedName","src":"8984:3:97","type":""}]},{"nativeSrc":"9006:27:97","nodeType":"YulVariableDeclaration","src":"9006:27:97","value":{"arguments":[{"name":"value0","nativeSrc":"9026:6:97","nodeType":"YulIdentifier","src":"9026:6:97"}],"functionName":{"name":"mload","nativeSrc":"9020:5:97","nodeType":"YulIdentifier","src":"9020:5:97"},"nativeSrc":"9020:13:97","nodeType":"YulFunctionCall","src":"9020:13:97"},"variables":[{"name":"length","nativeSrc":"9010:6:97","nodeType":"YulTypedName","src":"9010:6:97","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nativeSrc":"9049:6:97","nodeType":"YulIdentifier","src":"9049:6:97"},{"name":"length","nativeSrc":"9057:6:97","nodeType":"YulIdentifier","src":"9057:6:97"}],"functionName":{"name":"mstore","nativeSrc":"9042:6:97","nodeType":"YulIdentifier","src":"9042:6:97"},"nativeSrc":"9042:22:97","nodeType":"YulFunctionCall","src":"9042:22:97"},"nativeSrc":"9042:22:97","nodeType":"YulExpressionStatement","src":"9042:22:97"},{"nativeSrc":"9073:25:97","nodeType":"YulAssignment","src":"9073:25:97","value":{"arguments":[{"name":"headStart","nativeSrc":"9084:9:97","nodeType":"YulIdentifier","src":"9084:9:97"},{"kind":"number","nativeSrc":"9095:2:97","nodeType":"YulLiteral","src":"9095:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"9080:3:97","nodeType":"YulIdentifier","src":"9080:3:97"},"nativeSrc":"9080:18:97","nodeType":"YulFunctionCall","src":"9080:18:97"},"variableNames":[{"name":"pos","nativeSrc":"9073:3:97","nodeType":"YulIdentifier","src":"9073:3:97"}]},{"nativeSrc":"9107:14:97","nodeType":"YulVariableDeclaration","src":"9107:14:97","value":{"kind":"number","nativeSrc":"9117:4:97","nodeType":"YulLiteral","src":"9117:4:97","type":"","value":"0x20"},"variables":[{"name":"_1","nativeSrc":"9111:2:97","nodeType":"YulTypedName","src":"9111:2:97","type":""}]},{"nativeSrc":"9130:29:97","nodeType":"YulVariableDeclaration","src":"9130:29:97","value":{"arguments":[{"name":"value0","nativeSrc":"9148:6:97","nodeType":"YulIdentifier","src":"9148:6:97"},{"name":"_1","nativeSrc":"9156:2:97","nodeType":"YulIdentifier","src":"9156:2:97"}],"functionName":{"name":"add","nativeSrc":"9144:3:97","nodeType":"YulIdentifier","src":"9144:3:97"},"nativeSrc":"9144:15:97","nodeType":"YulFunctionCall","src":"9144:15:97"},"variables":[{"name":"srcPtr","nativeSrc":"9134:6:97","nodeType":"YulTypedName","src":"9134:6:97","type":""}]},{"nativeSrc":"9168:10:97","nodeType":"YulVariableDeclaration","src":"9168:10:97","value":{"kind":"number","nativeSrc":"9177:1:97","nodeType":"YulLiteral","src":"9177:1:97","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"9172:1:97","nodeType":"YulTypedName","src":"9172:1:97","type":""}]},{"body":{"nativeSrc":"9236:169:97","nodeType":"YulBlock","src":"9236:169:97","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"9257:3:97","nodeType":"YulIdentifier","src":"9257:3:97"},{"arguments":[{"arguments":[{"name":"srcPtr","nativeSrc":"9272:6:97","nodeType":"YulIdentifier","src":"9272:6:97"}],"functionName":{"name":"mload","nativeSrc":"9266:5:97","nodeType":"YulIdentifier","src":"9266:5:97"},"nativeSrc":"9266:13:97","nodeType":"YulFunctionCall","src":"9266:13:97"},{"kind":"number","nativeSrc":"9281:42:97","nodeType":"YulLiteral","src":"9281:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"9262:3:97","nodeType":"YulIdentifier","src":"9262:3:97"},"nativeSrc":"9262:62:97","nodeType":"YulFunctionCall","src":"9262:62:97"}],"functionName":{"name":"mstore","nativeSrc":"9250:6:97","nodeType":"YulIdentifier","src":"9250:6:97"},"nativeSrc":"9250:75:97","nodeType":"YulFunctionCall","src":"9250:75:97"},"nativeSrc":"9250:75:97","nodeType":"YulExpressionStatement","src":"9250:75:97"},{"nativeSrc":"9338:19:97","nodeType":"YulAssignment","src":"9338:19:97","value":{"arguments":[{"name":"pos","nativeSrc":"9349:3:97","nodeType":"YulIdentifier","src":"9349:3:97"},{"name":"_1","nativeSrc":"9354:2:97","nodeType":"YulIdentifier","src":"9354:2:97"}],"functionName":{"name":"add","nativeSrc":"9345:3:97","nodeType":"YulIdentifier","src":"9345:3:97"},"nativeSrc":"9345:12:97","nodeType":"YulFunctionCall","src":"9345:12:97"},"variableNames":[{"name":"pos","nativeSrc":"9338:3:97","nodeType":"YulIdentifier","src":"9338:3:97"}]},{"nativeSrc":"9370:25:97","nodeType":"YulAssignment","src":"9370:25:97","value":{"arguments":[{"name":"srcPtr","nativeSrc":"9384:6:97","nodeType":"YulIdentifier","src":"9384:6:97"},{"name":"_1","nativeSrc":"9392:2:97","nodeType":"YulIdentifier","src":"9392:2:97"}],"functionName":{"name":"add","nativeSrc":"9380:3:97","nodeType":"YulIdentifier","src":"9380:3:97"},"nativeSrc":"9380:15:97","nodeType":"YulFunctionCall","src":"9380:15:97"},"variableNames":[{"name":"srcPtr","nativeSrc":"9370:6:97","nodeType":"YulIdentifier","src":"9370:6:97"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"9198:1:97","nodeType":"YulIdentifier","src":"9198:1:97"},{"name":"length","nativeSrc":"9201:6:97","nodeType":"YulIdentifier","src":"9201:6:97"}],"functionName":{"name":"lt","nativeSrc":"9195:2:97","nodeType":"YulIdentifier","src":"9195:2:97"},"nativeSrc":"9195:13:97","nodeType":"YulFunctionCall","src":"9195:13:97"},"nativeSrc":"9187:218:97","nodeType":"YulForLoop","post":{"nativeSrc":"9209:18:97","nodeType":"YulBlock","src":"9209:18:97","statements":[{"nativeSrc":"9211:14:97","nodeType":"YulAssignment","src":"9211:14:97","value":{"arguments":[{"name":"i","nativeSrc":"9220:1:97","nodeType":"YulIdentifier","src":"9220:1:97"},{"kind":"number","nativeSrc":"9223:1:97","nodeType":"YulLiteral","src":"9223:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"9216:3:97","nodeType":"YulIdentifier","src":"9216:3:97"},"nativeSrc":"9216:9:97","nodeType":"YulFunctionCall","src":"9216:9:97"},"variableNames":[{"name":"i","nativeSrc":"9211:1:97","nodeType":"YulIdentifier","src":"9211:1:97"}]}]},"pre":{"nativeSrc":"9191:3:97","nodeType":"YulBlock","src":"9191:3:97","statements":[]},"src":"9187:218:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9425:9:97","nodeType":"YulIdentifier","src":"9425:9:97"},{"name":"_1","nativeSrc":"9436:2:97","nodeType":"YulIdentifier","src":"9436:2:97"}],"functionName":{"name":"add","nativeSrc":"9421:3:97","nodeType":"YulIdentifier","src":"9421:3:97"},"nativeSrc":"9421:18:97","nodeType":"YulFunctionCall","src":"9421:18:97"},{"arguments":[{"name":"pos","nativeSrc":"9445:3:97","nodeType":"YulIdentifier","src":"9445:3:97"},{"name":"headStart","nativeSrc":"9450:9:97","nodeType":"YulIdentifier","src":"9450:9:97"}],"functionName":{"name":"sub","nativeSrc":"9441:3:97","nodeType":"YulIdentifier","src":"9441:3:97"},"nativeSrc":"9441:19:97","nodeType":"YulFunctionCall","src":"9441:19:97"}],"functionName":{"name":"mstore","nativeSrc":"9414:6:97","nodeType":"YulIdentifier","src":"9414:6:97"},"nativeSrc":"9414:47:97","nodeType":"YulFunctionCall","src":"9414:47:97"},"nativeSrc":"9414:47:97","nodeType":"YulExpressionStatement","src":"9414:47:97"},{"nativeSrc":"9470:16:97","nodeType":"YulVariableDeclaration","src":"9470:16:97","value":{"name":"pos","nativeSrc":"9483:3:97","nodeType":"YulIdentifier","src":"9483:3:97"},"variables":[{"name":"pos_1","nativeSrc":"9474:5:97","nodeType":"YulTypedName","src":"9474:5:97","type":""}]},{"nativeSrc":"9495:29:97","nodeType":"YulVariableDeclaration","src":"9495:29:97","value":{"arguments":[{"name":"value1","nativeSrc":"9517:6:97","nodeType":"YulIdentifier","src":"9517:6:97"}],"functionName":{"name":"mload","nativeSrc":"9511:5:97","nodeType":"YulIdentifier","src":"9511:5:97"},"nativeSrc":"9511:13:97","nodeType":"YulFunctionCall","src":"9511:13:97"},"variables":[{"name":"length_1","nativeSrc":"9499:8:97","nodeType":"YulTypedName","src":"9499:8:97","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"9540:3:97","nodeType":"YulIdentifier","src":"9540:3:97"},{"name":"length_1","nativeSrc":"9545:8:97","nodeType":"YulIdentifier","src":"9545:8:97"}],"functionName":{"name":"mstore","nativeSrc":"9533:6:97","nodeType":"YulIdentifier","src":"9533:6:97"},"nativeSrc":"9533:21:97","nodeType":"YulFunctionCall","src":"9533:21:97"},"nativeSrc":"9533:21:97","nodeType":"YulExpressionStatement","src":"9533:21:97"},{"nativeSrc":"9563:21:97","nodeType":"YulAssignment","src":"9563:21:97","value":{"arguments":[{"name":"pos","nativeSrc":"9576:3:97","nodeType":"YulIdentifier","src":"9576:3:97"},{"name":"_1","nativeSrc":"9581:2:97","nodeType":"YulIdentifier","src":"9581:2:97"}],"functionName":{"name":"add","nativeSrc":"9572:3:97","nodeType":"YulIdentifier","src":"9572:3:97"},"nativeSrc":"9572:12:97","nodeType":"YulFunctionCall","src":"9572:12:97"},"variableNames":[{"name":"pos_1","nativeSrc":"9563:5:97","nodeType":"YulIdentifier","src":"9563:5:97"}]},{"nativeSrc":"9593:31:97","nodeType":"YulVariableDeclaration","src":"9593:31:97","value":{"arguments":[{"name":"value1","nativeSrc":"9613:6:97","nodeType":"YulIdentifier","src":"9613:6:97"},{"name":"_1","nativeSrc":"9621:2:97","nodeType":"YulIdentifier","src":"9621:2:97"}],"functionName":{"name":"add","nativeSrc":"9609:3:97","nodeType":"YulIdentifier","src":"9609:3:97"},"nativeSrc":"9609:15:97","nodeType":"YulFunctionCall","src":"9609:15:97"},"variables":[{"name":"srcPtr_1","nativeSrc":"9597:8:97","nodeType":"YulTypedName","src":"9597:8:97","type":""}]},{"nativeSrc":"9633:12:97","nodeType":"YulVariableDeclaration","src":"9633:12:97","value":{"kind":"number","nativeSrc":"9644:1:97","nodeType":"YulLiteral","src":"9644:1:97","type":"","value":"0"},"variables":[{"name":"i_1","nativeSrc":"9637:3:97","nodeType":"YulTypedName","src":"9637:3:97","type":""}]},{"body":{"nativeSrc":"9711:132:97","nodeType":"YulBlock","src":"9711:132:97","statements":[{"expression":{"arguments":[{"name":"pos_1","nativeSrc":"9732:5:97","nodeType":"YulIdentifier","src":"9732:5:97"},{"arguments":[{"name":"srcPtr_1","nativeSrc":"9745:8:97","nodeType":"YulIdentifier","src":"9745:8:97"}],"functionName":{"name":"mload","nativeSrc":"9739:5:97","nodeType":"YulIdentifier","src":"9739:5:97"},"nativeSrc":"9739:15:97","nodeType":"YulFunctionCall","src":"9739:15:97"}],"functionName":{"name":"mstore","nativeSrc":"9725:6:97","nodeType":"YulIdentifier","src":"9725:6:97"},"nativeSrc":"9725:30:97","nodeType":"YulFunctionCall","src":"9725:30:97"},"nativeSrc":"9725:30:97","nodeType":"YulExpressionStatement","src":"9725:30:97"},{"nativeSrc":"9768:23:97","nodeType":"YulAssignment","src":"9768:23:97","value":{"arguments":[{"name":"pos_1","nativeSrc":"9781:5:97","nodeType":"YulIdentifier","src":"9781:5:97"},{"name":"_1","nativeSrc":"9788:2:97","nodeType":"YulIdentifier","src":"9788:2:97"}],"functionName":{"name":"add","nativeSrc":"9777:3:97","nodeType":"YulIdentifier","src":"9777:3:97"},"nativeSrc":"9777:14:97","nodeType":"YulFunctionCall","src":"9777:14:97"},"variableNames":[{"name":"pos_1","nativeSrc":"9768:5:97","nodeType":"YulIdentifier","src":"9768:5:97"}]},{"nativeSrc":"9804:29:97","nodeType":"YulAssignment","src":"9804:29:97","value":{"arguments":[{"name":"srcPtr_1","nativeSrc":"9820:8:97","nodeType":"YulIdentifier","src":"9820:8:97"},{"name":"_1","nativeSrc":"9830:2:97","nodeType":"YulIdentifier","src":"9830:2:97"}],"functionName":{"name":"add","nativeSrc":"9816:3:97","nodeType":"YulIdentifier","src":"9816:3:97"},"nativeSrc":"9816:17:97","nodeType":"YulFunctionCall","src":"9816:17:97"},"variableNames":[{"name":"srcPtr_1","nativeSrc":"9804:8:97","nodeType":"YulIdentifier","src":"9804:8:97"}]}]},"condition":{"arguments":[{"name":"i_1","nativeSrc":"9665:3:97","nodeType":"YulIdentifier","src":"9665:3:97"},{"name":"length_1","nativeSrc":"9670:8:97","nodeType":"YulIdentifier","src":"9670:8:97"}],"functionName":{"name":"lt","nativeSrc":"9662:2:97","nodeType":"YulIdentifier","src":"9662:2:97"},"nativeSrc":"9662:17:97","nodeType":"YulFunctionCall","src":"9662:17:97"},"nativeSrc":"9654:189:97","nodeType":"YulForLoop","post":{"nativeSrc":"9680:22:97","nodeType":"YulBlock","src":"9680:22:97","statements":[{"nativeSrc":"9682:18:97","nodeType":"YulAssignment","src":"9682:18:97","value":{"arguments":[{"name":"i_1","nativeSrc":"9693:3:97","nodeType":"YulIdentifier","src":"9693:3:97"},{"kind":"number","nativeSrc":"9698:1:97","nodeType":"YulLiteral","src":"9698:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"9689:3:97","nodeType":"YulIdentifier","src":"9689:3:97"},"nativeSrc":"9689:11:97","nodeType":"YulFunctionCall","src":"9689:11:97"},"variableNames":[{"name":"i_1","nativeSrc":"9682:3:97","nodeType":"YulIdentifier","src":"9682:3:97"}]}]},"pre":{"nativeSrc":"9658:3:97","nodeType":"YulBlock","src":"9658:3:97","statements":[]},"src":"9654:189:97"},{"nativeSrc":"9852:13:97","nodeType":"YulAssignment","src":"9852:13:97","value":{"name":"pos_1","nativeSrc":"9860:5:97","nodeType":"YulIdentifier","src":"9860:5:97"},"variableNames":[{"name":"tail","nativeSrc":"9852:4:97","nodeType":"YulIdentifier","src":"9852:4:97"}]}]},"name":"abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed","nativeSrc":"8670:1201:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8860:9:97","nodeType":"YulTypedName","src":"8860:9:97","type":""},{"name":"value1","nativeSrc":"8871:6:97","nodeType":"YulTypedName","src":"8871:6:97","type":""},{"name":"value0","nativeSrc":"8879:6:97","nodeType":"YulTypedName","src":"8879:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8890:4:97","nodeType":"YulTypedName","src":"8890:4:97","type":""}],"src":"8670:1201:97"},{"body":{"nativeSrc":"10050:233:97","nodeType":"YulBlock","src":"10050:233:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"10067:9:97","nodeType":"YulIdentifier","src":"10067:9:97"},{"kind":"number","nativeSrc":"10078:2:97","nodeType":"YulLiteral","src":"10078:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"10060:6:97","nodeType":"YulIdentifier","src":"10060:6:97"},"nativeSrc":"10060:21:97","nodeType":"YulFunctionCall","src":"10060:21:97"},"nativeSrc":"10060:21:97","nodeType":"YulExpressionStatement","src":"10060:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10101:9:97","nodeType":"YulIdentifier","src":"10101:9:97"},{"kind":"number","nativeSrc":"10112:2:97","nodeType":"YulLiteral","src":"10112:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10097:3:97","nodeType":"YulIdentifier","src":"10097:3:97"},"nativeSrc":"10097:18:97","nodeType":"YulFunctionCall","src":"10097:18:97"},{"kind":"number","nativeSrc":"10117:2:97","nodeType":"YulLiteral","src":"10117:2:97","type":"","value":"43"}],"functionName":{"name":"mstore","nativeSrc":"10090:6:97","nodeType":"YulIdentifier","src":"10090:6:97"},"nativeSrc":"10090:30:97","nodeType":"YulFunctionCall","src":"10090:30:97"},"nativeSrc":"10090:30:97","nodeType":"YulExpressionStatement","src":"10090:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10140:9:97","nodeType":"YulIdentifier","src":"10140:9:97"},{"kind":"number","nativeSrc":"10151:2:97","nodeType":"YulLiteral","src":"10151:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10136:3:97","nodeType":"YulIdentifier","src":"10136:3:97"},"nativeSrc":"10136:18:97","nodeType":"YulFunctionCall","src":"10136:18:97"},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069","kind":"string","nativeSrc":"10156:34:97","nodeType":"YulLiteral","src":"10156:34:97","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nativeSrc":"10129:6:97","nodeType":"YulIdentifier","src":"10129:6:97"},"nativeSrc":"10129:62:97","nodeType":"YulFunctionCall","src":"10129:62:97"},"nativeSrc":"10129:62:97","nodeType":"YulExpressionStatement","src":"10129:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10211:9:97","nodeType":"YulIdentifier","src":"10211:9:97"},{"kind":"number","nativeSrc":"10222:2:97","nodeType":"YulLiteral","src":"10222:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"10207:3:97","nodeType":"YulIdentifier","src":"10207:3:97"},"nativeSrc":"10207:18:97","nodeType":"YulFunctionCall","src":"10207:18:97"},{"hexValue":"6e697469616c697a696e67","kind":"string","nativeSrc":"10227:13:97","nodeType":"YulLiteral","src":"10227:13:97","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nativeSrc":"10200:6:97","nodeType":"YulIdentifier","src":"10200:6:97"},"nativeSrc":"10200:41:97","nodeType":"YulFunctionCall","src":"10200:41:97"},"nativeSrc":"10200:41:97","nodeType":"YulExpressionStatement","src":"10200:41:97"},{"nativeSrc":"10250:27:97","nodeType":"YulAssignment","src":"10250:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"10262:9:97","nodeType":"YulIdentifier","src":"10262:9:97"},{"kind":"number","nativeSrc":"10273:3:97","nodeType":"YulLiteral","src":"10273:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"10258:3:97","nodeType":"YulIdentifier","src":"10258:3:97"},"nativeSrc":"10258:19:97","nodeType":"YulFunctionCall","src":"10258:19:97"},"variableNames":[{"name":"tail","nativeSrc":"10250:4:97","nodeType":"YulIdentifier","src":"10250:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"9876:407:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10027:9:97","nodeType":"YulTypedName","src":"10027:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10041:4:97","nodeType":"YulTypedName","src":"10041:4:97","type":""}],"src":"9876:407:97"}]},"contents":"{\n    { }\n    function abi_encode_string(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 0x20) }\n        {\n            let _1 := 0x20\n            mstore(add(add(pos, i), _1), mload(add(add(value, i), _1)))\n        }\n        mstore(add(add(pos, length), 0x20), 0)\n        end := add(add(pos, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 0x20)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_string(value0, add(headStart, 32))\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_decode_tuple_t_struct$_RiskParameterUpdate_$16568_calldata_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if slt(sub(dataEnd, _1), 384) { revert(0, 0) }\n        value0 := _1\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_contract$_IRiskStewardReceiver_$17139__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_contract$_IAccessControlManagerV8_$13903__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function access_calldata_tail_t_bytes_calldata_ptr(base_ref, ptr_to_tail) -> addr, length\n    {\n        let rel_offset_of_tail := calldataload(ptr_to_tail)\n        if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1))) { revert(0, 0) }\n        let addr_1 := add(base_ref, rel_offset_of_tail)\n        length := calldataload(addr_1)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        addr := add(addr_1, 0x20)\n        if sgt(addr, sub(calldatasize(), length)) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 41)\n        mstore(add(headStart, 64), \"Ownable2Step: caller is not the \")\n        mstore(add(headStart, 96), \"new owner\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 46)\n        mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n        mstore(add(headStart, 96), \"dy initialized\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"invalid acess control manager ad\")\n        mstore(add(headStart, 96), \"dress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n    }\n    function abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 32), 64)\n        tail := abi_encode_string(value1, add(headStart, 64))\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), 96)\n        tail := abi_encode_string(value2, add(headStart, 96))\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        if gt(diff, x) { panic_error_0x11() }\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        product := mul(x, y)\n        if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y)\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x12)\n            revert(0, 0x24)\n        }\n        r := div(x, y)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        let tail_1 := add(headStart, 64)\n        mstore(headStart, 64)\n        let pos := tail_1\n        let length := mload(value0)\n        mstore(tail_1, length)\n        pos := add(headStart, 96)\n        let _1 := 0x20\n        let srcPtr := add(value0, _1)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, and(mload(srcPtr), 0xffffffffffffffffffffffffffffffffffffffff))\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        mstore(add(headStart, _1), sub(pos, headStart))\n        let pos_1 := pos\n        let length_1 := mload(value1)\n        mstore(pos, length_1)\n        pos_1 := add(pos, _1)\n        let srcPtr_1 := add(value1, _1)\n        let i_1 := 0\n        for { } lt(i_1, length_1) { i_1 := add(i_1, 1) }\n        {\n            mstore(pos_1, mload(srcPtr_1))\n            pos_1 := add(pos_1, _1)\n            srcPtr_1 := add(srcPtr_1, _1)\n        }\n        tail := pos_1\n    }\n    function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 43)\n        mstore(add(headStart, 64), \"Initializable: contract is not i\")\n        mstore(add(headStart, 96), \"nitializing\")\n        tail := add(headStart, 128)\n    }\n}","id":97,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"17186":[{"length":32,"start":695},{"length":32,"start":2257}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061011b5760003560e01c8063a0209e43116100b2578063c099f28411610081578063e30c397811610066578063e30c397814610379578063ee97f26514610397578063f2fde38b146103a057600080fd5b8063c099f2841461030a578063c4d66de81461036657600080fd5b8063a0209e4314610248578063b296e6cb146102b2578063b4a0bdf3146102d9578063bf637839146102f757600080fd5b8063715018a6116100ee578063715018a6146101bd57806377907191146101c557806379ba5097146102015780638da5cb5b1461020957600080fd5b80630cfccc83146101205780630e32cb86146101725780632c47d86f1461018757806342b7cfbd1461019a575b600080fd5b61015c6040518060400160405280600981526020017f737570706c79436170000000000000000000000000000000000000000000000081525081565b6040516101699190611718565b60405180910390f35b610185610180366004611754565b6103b3565b005b610185610195366004611771565b6103c7565b6101ad6101a836600461178a565b6104c0565b6040519015158152602001610169565b6101856107d0565b61015c6040518060400160405280600981526020017f626f72726f77436170000000000000000000000000000000000000000000000081525081565b610185610802565b60335473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610169565b60408051808201909152600981527f737570706c7943617000000000000000000000000000000000000000000000006020909101526102a47f068e90f21e6e5d3d0c48f5983b5b5b9b9e7c4efbb8b596ef6c729c6870a3c94381565b604051908152602001610169565b6102237f000000000000000000000000000000000000000000000000000000000000000081565b60975473ffffffffffffffffffffffffffffffffffffffff16610223565b61018561030536600461178a565b6108b9565b60408051808201909152600981527f626f72726f7743617000000000000000000000000000000000000000000000006020909101526102a47fcec723f9fbde52ce895e2dc35ea3c6d14c9e1de94ef0a9e37f9d251de1a7817581565b610185610374366004611754565b610a3c565b60655473ffffffffffffffffffffffffffffffffffffffff16610223565b6102a460c95481565b6101856103ae366004611754565b610bc8565b6103bb610c78565b6103c481610cfb565b50565b6104056040518060400160405280601881526020017f7365745361666544656c74614270732875696e74323536290000000000000000815250610e1d565b612710811115610441576040517fc514758500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60c95480820361047d576040517f925cd79500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60c982905560408051828152602081018490527fa05c0cb0e77decc6503407c6ca159106b8b001d9feb7927d08fad60094a934ab91015b60405180910390a15050565b60008061050d6104d360a08501856117c6565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610ef692505050565b905060006105216060850160408601611754565b73ffffffffffffffffffffffffffffffffffffffff16635fe3b5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561056b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061058f9190611832565b60408051808201909152600981527f737570706c794361700000000000000000000000000000000000000000000000602090910152905060007ff9716f0de191a2c2f3b70a67c4a4a4646183b104474a6910938d63978f5c36bd6080860135016106b35773ffffffffffffffffffffffffffffffffffffffff82166302c3bcbb61061f6060880160408901611754565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401602060405180830381865afa158015610688573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ac919061184f565b9050610771565b60408051808201909152600981527f626f72726f7743617000000000000000000000000000000000000000000000006020909101527f3138dc060421ad3176a1d23ca15c392eb361e216b10f561c8062dae21e587e8b60808601350161073f5773ffffffffffffffffffffffffffffffffffffffff8216634a58443261061f6060880160408901611754565b6040517f80919d7b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8083036107aa576040517f925cd79500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806000036107bd57506000949350505050565b6107c78382610f4d565b95945050505050565b6040517f96c553eb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606554339073ffffffffffffffffffffffffffffffffffffffff1681146108b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e6572000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6103c481610f9b565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610928576040517f3a739dd700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061093a6104d360a08401846117c6565b60408051808201909152600981527f737570706c79436170000000000000000000000000000000000000000000000060209091015290507ff9716f0de191a2c2f3b70a67c4a4a4646183b104474a6910938d63978f5c36bd6080830135016109be576109ba60208301356109b46060850160408601611754565b83610fcc565b5050565b60408051808201909152600981527f626f72726f7743617000000000000000000000000000000000000000000000006020909101527f3138dc060421ad3176a1d23ca15c392eb361e216b10f561c8062dae21e587e8b60808301350161073f576109ba6020830135610a366060850160408601611754565b836111d9565b600054610100900460ff1615808015610a5c5750600054600160ff909116105b80610a765750303b158015610a76575060005460ff166001145b610b02576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016108a7565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610b6057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610b69826113bf565b80156109ba57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020016104b4565b610bd0610c78565b6065805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff00000000000000000000000000000000000000009091168117909155610c3360335473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60335473ffffffffffffffffffffffffffffffffffffffff163314610cf9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108a7565b565b73ffffffffffffffffffffffffffffffffffffffff8116610d9e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e6167657220616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016108a7565b6097805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa091016104b4565b6097546040517f18c5e8ab00000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff16906318c5e8ab90610e769033908690600401611868565b602060405180830381865afa158015610e93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb7919061189f565b9050806109ba573330836040517f4a3fa2930000000000000000000000000000000000000000000000000000000081526004016108a7939291906118c1565b60008151602014610f33576040517fccb08e2300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81806020019051810190610f47919061184f565b92915050565b600080828411610f6657610f618484611929565b610f70565b610f708385611929565b905060006127108460c954610f85919061193c565b610f8f9190611953565b90911115949350505050565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556103c481611467565b60008273ffffffffffffffffffffffffffffffffffffffff16635fe3b5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611019573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103d9190611832565b604080516001808252818301909252919250600091906020808301908036833701905050905083816000815181106110775761107761198e565b73ffffffffffffffffffffffffffffffffffffffff929092166020928302919091019091015260408051600180825281830190925260009181602001602082028036833701905050905083816000815181106110d5576110d561198e565b60209081029190910101526040517fd136af4400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063d136af449061113490859085906004016119bd565b600060405180830381600087803b15801561114e57600080fd5b505af1158015611162573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff16867f4cf0c4bb7f5084ce4791920af9e571c6edb179b9f96f39ede8ce00c922d17cdd836000815181106111b2576111b261198e565b60200260200101516040516111c991815260200190565b60405180910390a3505050505050565b60008273ffffffffffffffffffffffffffffffffffffffff16635fe3b5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611226573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124a9190611832565b604080516001808252818301909252919250600091906020808301908036833701905050905083816000815181106112845761128461198e565b73ffffffffffffffffffffffffffffffffffffffff929092166020928302919091019091015260408051600180825281830190925260009181602001602082028036833701905050905083816000815181106112e2576112e261198e565b60209081029190910101526040517f186db48f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063186db48f9061134190859085906004016119bd565b600060405180830381600087803b15801561135b57600080fd5b505af115801561136f573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff16867fbe10220f8157f2d411dd6d5eb60524226528994d5a4ae89c640ae08ee21fb840836000815181106111b2576111b261198e565b600054610100900460ff16611456576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108a7565b61145e6114de565b6103c48161157d565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16611575576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108a7565b610cf9611614565b600054610100900460ff166103bb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108a7565b600054610100900460ff166116ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108a7565b610cf933610f9b565b6000815180845260005b818110156116da576020818501810151868301820152016116be565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b60208152600061172b60208301846116b4565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff811681146103c457600080fd5b60006020828403121561176657600080fd5b813561172b81611732565b60006020828403121561178357600080fd5b5035919050565b60006020828403121561179c57600080fd5b813567ffffffffffffffff8111156117b357600080fd5b8201610180818503121561172b57600080fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126117fb57600080fd5b83018035915067ffffffffffffffff82111561181657600080fd5b60200191503681900382131561182b57600080fd5b9250929050565b60006020828403121561184457600080fd5b815161172b81611732565b60006020828403121561186157600080fd5b5051919050565b73ffffffffffffffffffffffffffffffffffffffff8316815260406020820152600061189760408301846116b4565b949350505050565b6000602082840312156118b157600080fd5b8151801515811461172b57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff8086168352808516602084015250606060408301526107c760608301846116b4565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115610f4757610f476118fa565b8082028115828204841417610f4757610f476118fa565b600082611989577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b604080825283519082018190526000906020906060840190828701845b82811015611a0c57815173ffffffffffffffffffffffffffffffffffffffff16845292840192908401906001016119da565b5050508381038285015284518082528583019183019060005b81811015611a4157835183529284019291840191600101611a25565b509097965050505050505056fea2646970667358221220d3f5096b9cdae18ca575d1be4720748a32b7fc0683ab0aa09c9bf1689fb65af964736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x11B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA0209E43 GT PUSH2 0xB2 JUMPI DUP1 PUSH4 0xC099F284 GT PUSH2 0x81 JUMPI DUP1 PUSH4 0xE30C3978 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x379 JUMPI DUP1 PUSH4 0xEE97F265 EQ PUSH2 0x397 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xC099F284 EQ PUSH2 0x30A JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x366 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA0209E43 EQ PUSH2 0x248 JUMPI DUP1 PUSH4 0xB296E6CB EQ PUSH2 0x2B2 JUMPI DUP1 PUSH4 0xB4A0BDF3 EQ PUSH2 0x2D9 JUMPI DUP1 PUSH4 0xBF637839 EQ PUSH2 0x2F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x715018A6 GT PUSH2 0xEE JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x1BD JUMPI DUP1 PUSH4 0x77907191 EQ PUSH2 0x1C5 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x201 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x209 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCFCCC83 EQ PUSH2 0x120 JUMPI DUP1 PUSH4 0xE32CB86 EQ PUSH2 0x172 JUMPI DUP1 PUSH4 0x2C47D86F EQ PUSH2 0x187 JUMPI DUP1 PUSH4 0x42B7CFBD EQ PUSH2 0x19A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x15C PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x737570706C794361700000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x169 SWAP2 SWAP1 PUSH2 0x1718 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x185 PUSH2 0x180 CALLDATASIZE PUSH1 0x4 PUSH2 0x1754 JUMP JUMPDEST PUSH2 0x3B3 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x185 PUSH2 0x195 CALLDATASIZE PUSH1 0x4 PUSH2 0x1771 JUMP JUMPDEST PUSH2 0x3C7 JUMP JUMPDEST PUSH2 0x1AD PUSH2 0x1A8 CALLDATASIZE PUSH1 0x4 PUSH2 0x178A JUMP JUMPDEST PUSH2 0x4C0 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x169 JUMP JUMPDEST PUSH2 0x185 PUSH2 0x7D0 JUMP JUMPDEST PUSH2 0x15C PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x626F72726F774361700000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x185 PUSH2 0x802 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x169 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x9 DUP2 MSTORE PUSH32 0x737570706C794361700000000000000000000000000000000000000000000000 PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE PUSH2 0x2A4 PUSH32 0x68E90F21E6E5D3D0C48F5983B5B5B9B9E7C4EFBB8B596EF6C729C6870A3C943 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x169 JUMP JUMPDEST PUSH2 0x223 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x223 JUMP JUMPDEST PUSH2 0x185 PUSH2 0x305 CALLDATASIZE PUSH1 0x4 PUSH2 0x178A JUMP JUMPDEST PUSH2 0x8B9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x9 DUP2 MSTORE PUSH32 0x626F72726F774361700000000000000000000000000000000000000000000000 PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE PUSH2 0x2A4 PUSH32 0xCEC723F9FBDE52CE895E2DC35EA3C6D14C9E1DE94EF0A9E37F9D251DE1A78175 DUP2 JUMP JUMPDEST PUSH2 0x185 PUSH2 0x374 CALLDATASIZE PUSH1 0x4 PUSH2 0x1754 JUMP JUMPDEST PUSH2 0xA3C JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x223 JUMP JUMPDEST PUSH2 0x2A4 PUSH1 0xC9 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x185 PUSH2 0x3AE CALLDATASIZE PUSH1 0x4 PUSH2 0x1754 JUMP JUMPDEST PUSH2 0xBC8 JUMP JUMPDEST PUSH2 0x3BB PUSH2 0xC78 JUMP JUMPDEST PUSH2 0x3C4 DUP2 PUSH2 0xCFB JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x405 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x18 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x7365745361666544656C74614270732875696E74323536290000000000000000 DUP2 MSTORE POP PUSH2 0xE1D JUMP JUMPDEST PUSH2 0x2710 DUP2 GT ISZERO PUSH2 0x441 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC514758500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xC9 SLOAD DUP1 DUP3 SUB PUSH2 0x47D JUMPI PUSH1 0x40 MLOAD PUSH32 0x925CD79500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xC9 DUP3 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0xA05C0CB0E77DECC6503407C6CA159106B8B001D9FEB7927D08FAD60094A934AB SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x50D PUSH2 0x4D3 PUSH1 0xA0 DUP6 ADD DUP6 PUSH2 0x17C6 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0xEF6 SWAP3 POP POP POP JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x521 PUSH1 0x60 DUP6 ADD PUSH1 0x40 DUP7 ADD PUSH2 0x1754 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x5FE3B567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x56B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x58F SWAP2 SWAP1 PUSH2 0x1832 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x9 DUP2 MSTORE PUSH32 0x737570706C794361700000000000000000000000000000000000000000000000 PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE SWAP1 POP PUSH1 0x0 PUSH32 0xF9716F0DE191A2C2F3B70A67C4A4A4646183B104474A6910938D63978F5C36BD PUSH1 0x80 DUP7 ADD CALLDATALOAD ADD PUSH2 0x6B3 JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH4 0x2C3BCBB PUSH2 0x61F PUSH1 0x60 DUP9 ADD PUSH1 0x40 DUP10 ADD PUSH2 0x1754 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x688 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x6AC SWAP2 SWAP1 PUSH2 0x184F JUMP JUMPDEST SWAP1 POP PUSH2 0x771 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x9 DUP2 MSTORE PUSH32 0x626F72726F774361700000000000000000000000000000000000000000000000 PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE PUSH32 0x3138DC060421AD3176A1D23CA15C392EB361E216B10F561C8062DAE21E587E8B PUSH1 0x80 DUP7 ADD CALLDATALOAD ADD PUSH2 0x73F JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH4 0x4A584432 PUSH2 0x61F PUSH1 0x60 DUP9 ADD PUSH1 0x40 DUP10 ADD PUSH2 0x1754 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x80919D7B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 DUP4 SUB PUSH2 0x7AA JUMPI PUSH1 0x40 MLOAD PUSH32 0x925CD79500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x0 SUB PUSH2 0x7BD JUMPI POP PUSH1 0x0 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x7C7 DUP4 DUP3 PUSH2 0xF4D JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x96C553EB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x65 SLOAD CALLER SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 EQ PUSH2 0x8B0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C6532537465703A2063616C6C6572206973206E6F742074686520 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E6577206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x3C4 DUP2 PUSH2 0xF9B JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 AND EQ PUSH2 0x928 JUMPI PUSH1 0x40 MLOAD PUSH32 0x3A739DD700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x93A PUSH2 0x4D3 PUSH1 0xA0 DUP5 ADD DUP5 PUSH2 0x17C6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x9 DUP2 MSTORE PUSH32 0x737570706C794361700000000000000000000000000000000000000000000000 PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE SWAP1 POP PUSH32 0xF9716F0DE191A2C2F3B70A67C4A4A4646183B104474A6910938D63978F5C36BD PUSH1 0x80 DUP4 ADD CALLDATALOAD ADD PUSH2 0x9BE JUMPI PUSH2 0x9BA PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x9B4 PUSH1 0x60 DUP6 ADD PUSH1 0x40 DUP7 ADD PUSH2 0x1754 JUMP JUMPDEST DUP4 PUSH2 0xFCC JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x9 DUP2 MSTORE PUSH32 0x626F72726F774361700000000000000000000000000000000000000000000000 PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE PUSH32 0x3138DC060421AD3176A1D23CA15C392EB361E216B10F561C8062DAE21E587E8B PUSH1 0x80 DUP4 ADD CALLDATALOAD ADD PUSH2 0x73F JUMPI PUSH2 0x9BA PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0xA36 PUSH1 0x60 DUP6 ADD PUSH1 0x40 DUP7 ADD PUSH2 0x1754 JUMP JUMPDEST DUP4 PUSH2 0x11D9 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0xA5C JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0xA76 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA76 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0xB02 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x647920696E697469616C697A6564000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8A7 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0xB60 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0xB69 DUP3 PUSH2 0x13BF JUMP JUMPDEST DUP1 ISZERO PUSH2 0x9BA JUMPI PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH2 0x4B4 JUMP JUMPDEST PUSH2 0xBD0 PUSH2 0xC78 JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP1 SWAP2 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0xC33 PUSH1 0x33 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0xCF9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8A7 JUMP JUMPDEST JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0xD9E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C696420616365737320636F6E74726F6C206D616E61676572206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8A7 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 SWAP1 SWAP3 AND DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH32 0x66FD58E82F7B31A2A5C30E0888F3093EFE4E111B00CD2B0C31FE014601293AA0 SWAP2 ADD PUSH2 0x4B4 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0x40 MLOAD PUSH32 0x18C5E8AB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0xE76 SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x1868 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE93 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xEB7 SWAP2 SWAP1 PUSH2 0x189F JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x9BA JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH32 0x4A3FA29300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8A7 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x18C1 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD PUSH1 0x20 EQ PUSH2 0xF33 JUMPI PUSH1 0x40 MLOAD PUSH32 0xCCB08E2300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xF47 SWAP2 SWAP1 PUSH2 0x184F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP5 GT PUSH2 0xF66 JUMPI PUSH2 0xF61 DUP5 DUP5 PUSH2 0x1929 JUMP JUMPDEST PUSH2 0xF70 JUMP JUMPDEST PUSH2 0xF70 DUP4 DUP6 PUSH2 0x1929 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2710 DUP5 PUSH1 0xC9 SLOAD PUSH2 0xF85 SWAP2 SWAP1 PUSH2 0x193C JUMP JUMPDEST PUSH2 0xF8F SWAP2 SWAP1 PUSH2 0x1953 JUMP JUMPDEST SWAP1 SWAP2 GT ISZERO SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND SWAP1 SSTORE PUSH2 0x3C4 DUP2 PUSH2 0x1467 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x5FE3B567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1019 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x103D SWAP2 SWAP1 PUSH2 0x1832 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 SWAP1 PUSH1 0x20 DUP1 DUP4 ADD SWAP1 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP POP SWAP1 POP DUP4 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1077 JUMPI PUSH2 0x1077 PUSH2 0x198E JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP2 SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE PUSH1 0x0 SWAP2 DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP POP SWAP1 POP DUP4 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x10D5 JUMPI PUSH2 0x10D5 PUSH2 0x198E JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x40 MLOAD PUSH32 0xD136AF4400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND SWAP1 PUSH4 0xD136AF44 SWAP1 PUSH2 0x1134 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0x19BD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x114E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1162 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH32 0x4CF0C4BB7F5084CE4791920AF9E571C6EDB179B9F96F39EDE8CE00C922D17CDD DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x11B2 JUMPI PUSH2 0x11B2 PUSH2 0x198E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x11C9 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x5FE3B567 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1226 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x124A SWAP2 SWAP1 PUSH2 0x1832 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 SWAP1 PUSH1 0x20 DUP1 DUP4 ADD SWAP1 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP POP SWAP1 POP DUP4 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1284 JUMPI PUSH2 0x1284 PUSH2 0x198E JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP2 SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE PUSH1 0x0 SWAP2 DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP POP SWAP1 POP DUP4 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x12E2 JUMPI PUSH2 0x12E2 PUSH2 0x198E JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x40 MLOAD PUSH32 0x186DB48F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND SWAP1 PUSH4 0x186DB48F SWAP1 PUSH2 0x1341 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0x19BD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x135B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x136F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH32 0xBE10220F8157F2D411DD6D5EB60524226528994D5A4AE89C640AE08EE21FB840 DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x11B2 JUMPI PUSH2 0x11B2 PUSH2 0x198E JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1456 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8A7 JUMP JUMPDEST PUSH2 0x145E PUSH2 0x14DE JUMP JUMPDEST PUSH2 0x3C4 DUP2 PUSH2 0x157D JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1575 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8A7 JUMP JUMPDEST PUSH2 0xCF9 PUSH2 0x1614 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3BB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8A7 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x16AB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8A7 JUMP JUMPDEST PUSH2 0xCF9 CALLER PUSH2 0xF9B JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x16DA JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x16BE JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x172B PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x16B4 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x3C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1766 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x172B DUP2 PUSH2 0x1732 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1783 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x179C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x17B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH2 0x180 DUP2 DUP6 SUB SLT ISZERO PUSH2 0x172B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x17FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1816 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x182B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1844 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x172B DUP2 PUSH2 0x1732 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1861 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1897 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x16B4 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x18B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x172B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP7 AND DUP4 MSTORE DUP1 DUP6 AND PUSH1 0x20 DUP5 ADD MSTORE POP PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x7C7 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x16B4 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0xF47 JUMPI PUSH2 0xF47 PUSH2 0x18FA JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0xF47 JUMPI PUSH2 0xF47 PUSH2 0x18FA JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1989 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 DUP1 DUP3 MSTORE DUP4 MLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x20 SWAP1 PUSH1 0x60 DUP5 ADD SWAP1 DUP3 DUP8 ADD DUP5 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1A0C JUMPI DUP2 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x19DA JUMP JUMPDEST POP POP POP DUP4 DUP2 SUB DUP3 DUP6 ADD MSTORE DUP5 MLOAD DUP1 DUP3 MSTORE DUP6 DUP4 ADD SWAP2 DUP4 ADD SWAP1 PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1A41 JUMPI DUP4 MLOAD DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x1A25 JUMP JUMPDEST POP SWAP1 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD3 CREATE2 MULMOD PUSH12 0x9CDAE18CA575D1BE4720748A ORIGIN 0xB7 0xFC MOD DUP4 0xAB EXP LOG0 SWAP13 SWAP12 CALL PUSH9 0x9FB65AF964736F6C63 NUMBER STOP ADDMOD NOT STOP CALLER ","sourceMap":"769:9256:68:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;888:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;2103:147:57;;;;;;:::i;:::-;;:::i;:::-;;4268:459:68;;;;;;:::i;:::-;;:::i;5151:1213::-;;;;;;:::i;:::-;;:::i;:::-;;;1892:14:97;;1885:22;1867:41;;1855:2;1840:18;5151:1213:68;1727:187:97;1218:103:60;;;:::i;1179:47:68:-;;;;;;;;;;;;;;;;;;;;;2010:206:25;;;:::i;1441:85:26:-;1513:6;;;;1441:85;;;2095:42:97;2083:55;;;2065:74;;2053:2;2038:18;1441:85:26;1919:226:97;1040:69:68;1097:10;;;;;;;;;;;;;;;;;;1040:69;1081:28;1040:69;;;;;2296:25:97;;;2284:2;2269:18;1040:69:68;2150:177:97;1507:59:68;;;;;2346:125:57;2443:21;;;;2346:125;;6973:593:68;;;;;;:::i;:::-;;:::i;1331:69::-;1388:10;;;;;;;;;;;;;;;;;;1331:69;1372:28;1331:69;;3688:135;;;;;;:::i;:::-;;:::i;1123:99:25:-;1202:13;;;;1123:99;;947:27:60;;;;;;1415:178:25;;;;;;:::i;:::-;;:::i;2103:147:57:-;1334:13:26;:11;:13::i;:::-;2196:47:57::1;2221:21;2196:24;:47::i;:::-;2103:147:::0;:::o;4268:459:68:-;4335:47;;;;;;;;;;;;;;;;;;:19;:47::i;:::-;593:5:60;4396:13:68;:23;4392:82;;;4442:21;;;;;;;;;;;;;;4392:82;4509:12;;4535:32;;;4531:86;;4590:16;;;;;;;;;;;;;;4531:86;4626:12;:28;;;4669:51;;;3213:25:97;;;3269:2;3254:18;;3247:34;;;4669:51:68;;3186:18:97;4669:51:68;;;;;;;;4325:402;4268:459;:::o;5151:1213::-;5245:4;;5280:41;5305:15;;;;:6;:15;:::i;:::-;5280:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5280:24:68;;-1:-1:-1;;;5280:41:68:i;:::-;5261:60;-1:-1:-1;5474:32:68;5546:13;;;;;;;;:::i;:::-;5530:42;;;:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1097:10;;;;;;;;;;;;;;;;;;5474:101;-1:-1:-1;5585:20:68;5620:38;:20;;;;:38;5616:309;;5689:22;;;;5712:13;;;;;;;;:::i;:::-;5689:37;;;;;;;;;;2095:42:97;2083:55;;;5689:37:68;;;2065:74:97;2038:18;;5689:37:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5674:52;;5616:309;;;1388:10;;;;;;;;;;;;;;;;;;5747:38;:20;;;;:38;5743:182;;5816:22;;;;5839:13;;;;;;;;:::i;5743:182::-;5891:23;;;;;;;;;;;;;;5743:182;5990:12;5978:8;:24;5974:78;;6025:16;;;;;;;;;;;;;;5974:78;6156:12;6172:1;6156:17;6152:60;;-1:-1:-1;6196:5:68;;5151:1213;-1:-1:-1;;;;5151:1213:68:o;6152:60::-;6315:42;6334:8;6344:12;6315:18;:42::i;:::-;6308:49;5151:1213;-1:-1:-1;;;;;5151:1213:68:o;1218:103:60:-;1285:29;;;;;;;;;;;;;;2010:206:25;1202:13;;929:10:29;;2103:24:25;1202:13;2103:24;;2095:78;;;;;;;4524:2:97;2095:78:25;;;4506:21:97;4563:2;4543:18;;;4536:30;4602:34;4582:18;;;4575:62;4673:11;4653:18;;;4646:39;4702:19;;2095:78:25;;;;;;;;;2183:26;2202:6;2183:18;:26::i;6973:593:68:-;7054:10;:44;7076:21;7054:44;;7050:107;;7121:25;;;;;;;;;;;;;;7050:107;7166:16;7185:41;7210:15;;;;:6;:15;:::i;7185:41::-;1097:10;;;;;;;;;;;;;;;;;;7166:60;-1:-1:-1;7241:38:68;:20;;;;:38;7237:323;;7295:59;7313:15;;;;7330:13;;;;;;;;:::i;:::-;7345:8;7295:17;:59::i;:::-;7040:526;6973:593;:::o;7237:323::-;1388:10;;;;;;;;;;;;;;;;;;7375:38;:20;;;;:38;7371:189;;7429:59;7447:15;;;;7464:13;;;;;;;;:::i;:::-;7479:8;7429:17;:59::i;3688:135::-;3268:19:27;3291:13;;;;;;3290:14;;3336:34;;;;-1:-1:-1;3354:12:27;;3369:1;3354:12;;;;:16;3336:34;3335:108;;;-1:-1:-1;3415:4:27;1476:19:28;:23;;;3376:66:27;;-1:-1:-1;3425:12:27;;;;;:17;3376:66;3314:201;;;;;;;4934:2:97;3314:201:27;;;4916:21:97;4973:2;4953:18;;;4946:30;5012:34;4992:18;;;4985:62;5083:16;5063:18;;;5056:44;5117:19;;3314:201:27;4732:410:97;3314:201:27;3525:12;:16;;;;3540:1;3525:16;;;3551:65;;;;3585:13;:20;;;;;;;;3551:65;3770:46:68::1;3794:21;3770:23;:46::i;:::-;3640:14:27::0;3636:99;;;3686:5;3670:21;;;;;;3710:14;;-1:-1:-1;5299:36:97;;3710:14:27;;5287:2:97;5272:18;3710:14:27;5147:194:97;1415:178:25;1334:13:26;:11;:13::i;:::-;1504::25::1;:24:::0;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;1568:7:::1;1513:6:26::0;;;;;1441:85;1568:7:25::1;1543:43;;;;;;;;;;;;1415:178:::0;:::o;1599:130:26:-;1513:6;;1662:23;1513:6;929:10:29;1662:23:26;1654:68;;;;;;;5548:2:97;1654:68:26;;;5530:21:97;;;5567:18;;;5560:30;5626:34;5606:18;;;5599:62;5678:18;;1654:68:26;5346:356:97;1654:68:26;1599:130::o;2642:425:57:-;2734:44;;;2726:94;;;;;;;5909:2:97;2726:94:57;;;5891:21:97;5948:2;5928:18;;;5921:30;5987:34;5967:18;;;5960:62;6058:7;6038:18;;;6031:35;6083:19;;2726:94:57;5707:401:97;2726:94:57;2872:21;;;;2904:70;;;;;;;;;;;2989:71;;;2872:21;;;;6348:34:97;;;6413:2;6398:18;;6391:43;;;;2989:71:57;;6260:18:97;2989:71:57;6113:327:97;3204:282:57;3305:21;;:60;;;;;3282:20;;3305:21;;;:37;;:60;;3343:10;;3355:9;;3305:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3282:83;;3381:15;3376:104;;3432:10;3452:4;3459:9;3419:50;;;;;;;;;;;;;:::i;9797:226:68:-;9873:13;9902:4;:11;9917:2;9902:17;9898:74;;9942:19;;;;;;;;;;;;;;9898:74;10000:4;9989:27;;;;;;;;;;;;:::i;:::-;9981:35;9797:226;-1:-1:-1;;9797:226:68:o;1640:303:60:-;1731:4;1747:12;1773;1762:8;:23;:75;;1814:23;1829:8;1814:12;:23;:::i;:::-;1762:75;;;1788:23;1799:12;1788:8;:23;:::i;:::-;1747:90;;1847:15;593:5;1881:12;1866;;:27;;;;:::i;:::-;1865:39;;;;:::i;:::-;1921:15;;;;;1640:303;-1:-1:-1;;;;1640:303:60:o;1777:153:25:-;1866:13;1859:20;;;;;;1889:34;1914:8;1889:24;:34::i;7904:616:68:-;8002:19;8040:6;8024:35;;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8110:16;;;8124:1;8110:16;;;;;;;;;8002:59;;-1:-1:-1;8071:36:68;;8110:16;;;;;;;;;;;;-1:-1:-1;8110:16:68;8071:55;;8161:6;8136:19;8156:1;8136:22;;;;;;;;:::i;:::-;:31;;;;;:22;;;;;;;;;;;:31;8210:16;;;8224:1;8210:16;;;;;;;;;8177:30;;8210:16;;;;;;;;;;;;-1:-1:-1;8210:16:68;8177:49;;8255:8;8236:13;8250:1;8236:16;;;;;;;;:::i;:::-;;;;;;;;;;:27;8357:89;;;;;:53;;;;;;:89;;8411:19;;8432:13;;8357:89;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8488:6;8461:52;;8478:8;8461:52;8496:13;8510:1;8496:16;;;;;;;;:::i;:::-;;;;;;;8461:52;;;;2296:25:97;;2284:2;2269:18;;2150:177;8461:52:68;;;;;;;;7992:528;;;7904:616;;;:::o;8858:615::-;8956:19;8994:6;8978:35;;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9064:16;;;9078:1;9064:16;;;;;;;;;8956:59;;-1:-1:-1;9025:36:68;;9064:16;;;;;;;;;;;;-1:-1:-1;9064:16:68;9025:55;;9115:6;9090:19;9110:1;9090:22;;;;;;;;:::i;:::-;:31;;;;;:22;;;;;;;;;;;:31;9164:16;;;9178:1;9164:16;;;;;;;;;9131:30;;9164:16;;;;;;;;;;;;-1:-1:-1;9164:16:68;9131:49;;9209:8;9190:13;9204:1;9190:16;;;;;;;;:::i;:::-;;;;;;;;;;:27;9310:89;;;;;:53;;;;;;:89;;9364:19;;9385:13;;9310:89;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9441:6;9414:52;;9431:8;9414:52;9449:13;9463:1;9449:16;;;;;;;;:::i;1420:194:57:-;5363:13:27;;;;;;;5355:69;;;;;;;10078:2:97;5355:69:27;;;10060:21:97;10117:2;10097:18;;;10090:30;10156:34;10136:18;;;10129:62;10227:13;10207:18;;;10200:41;10258:19;;5355:69:27;9876:407:97;5355:69:27;1520:21:57::1;:19;:21::i;:::-;1551:56;1585:21;1551:33;:56::i;2673:187:26:-:0;2765:6;;;;2781:17;;;;;;;;;;;2813:40;;2765:6;;;2781:17;2765:6;;2813:40;;2746:16;;2813:40;2736:124;2673:187;:::o;738:100:25:-;5363:13:27;;;;;;;5355:69;;;;;;;10078:2:97;5355:69:27;;;10060:21:97;10117:2;10097:18;;;10090:30;10156:34;10136:18;;;10129:62;10227:13;10207:18;;;10200:41;10258:19;;5355:69:27;9876:407:97;5355:69:27;805:26:25::1;:24;:26::i;1620:164:57:-:0;5363:13:27;;;;;;;5355:69;;;;;;;10078:2:97;5355:69:27;;;10060:21:97;10117:2;10097:18;;;10090:30;10156:34;10136:18;;;10129:62;10227:13;10207:18;;;10200:41;10258:19;;5355:69:27;9876:407:97;1104:111:26;5363:13:27;;;;;;;5355:69;;;;;;;10078:2:97;5355:69:27;;;10060:21:97;10117:2;10097:18;;;10090:30;10156:34;10136:18;;;10129:62;10227:13;10207:18;;;10200:41;10258:19;;5355:69:27;9876:407:97;5355:69:27;1176:32:26::1;929:10:29::0;1176:18:26::1;:32::i;14:482:97:-:0;56:3;94:5;88:12;121:6;116:3;109:19;146:1;156:162;170:6;167:1;164:13;156:162;;;232:4;288:13;;;284:22;;278:29;260:11;;;256:20;;249:59;185:12;156:162;;;160:3;363:1;356:4;347:6;342:3;338:16;334:27;327:38;485:4;415:66;410:2;402:6;398:15;394:88;389:3;385:98;381:109;374:116;;;14:482;;;;:::o;501:220::-;650:2;639:9;632:21;613:4;670:45;711:2;700:9;696:18;688:6;670:45;:::i;:::-;662:53;501:220;-1:-1:-1;;;501:220:97:o;726:154::-;812:42;805:5;801:54;794:5;791:65;781:93;;870:1;867;860:12;885:247;944:6;997:2;985:9;976:7;972:23;968:32;965:52;;;1013:1;1010;1003:12;965:52;1052:9;1039:23;1071:31;1096:5;1071:31;:::i;1137:180::-;1196:6;1249:2;1237:9;1228:7;1224:23;1220:32;1217:52;;;1265:1;1262;1255:12;1217:52;-1:-1:-1;1288:23:97;;1137:180;-1:-1:-1;1137:180:97:o;1322:400::-;1421:6;1474:2;1462:9;1453:7;1449:23;1445:32;1442:52;;;1490:1;1487;1480:12;1442:52;1530:9;1517:23;1563:18;1555:6;1552:30;1549:50;;;1595:1;1592;1585:12;1549:50;1618:22;;1674:3;1656:16;;;1652:26;1649:46;;;1691:1;1688;1681:12;3292:580;3369:4;3375:6;3435:11;3422:25;3525:66;3514:8;3498:14;3494:29;3490:102;3470:18;3466:127;3456:155;;3607:1;3604;3597:12;3456:155;3634:33;;3686:20;;;-1:-1:-1;3729:18:97;3718:30;;3715:50;;;3761:1;3758;3751:12;3715:50;3794:4;3782:17;;-1:-1:-1;3825:14:97;3821:27;;;3811:38;;3808:58;;;3862:1;3859;3852:12;3808:58;3292:580;;;;;:::o;3877:251::-;3947:6;4000:2;3988:9;3979:7;3975:23;3971:32;3968:52;;;4016:1;4013;4006:12;3968:52;4048:9;4042:16;4067:31;4092:5;4067:31;:::i;4133:184::-;4203:6;4256:2;4244:9;4235:7;4231:23;4227:32;4224:52;;;4272:1;4269;4262:12;4224:52;-1:-1:-1;4295:16:97;;4133:184;-1:-1:-1;4133:184:97:o;6445:340::-;6634:42;6626:6;6622:55;6611:9;6604:74;6714:2;6709;6698:9;6694:18;6687:30;6585:4;6734:45;6775:2;6764:9;6760:18;6752:6;6734:45;:::i;:::-;6726:53;6445:340;-1:-1:-1;;;;6445:340:97:o;6790:277::-;6857:6;6910:2;6898:9;6889:7;6885:23;6881:32;6878:52;;;6926:1;6923;6916:12;6878:52;6958:9;6952:16;7011:5;7004:13;6997:21;6990:5;6987:32;6977:60;;7033:1;7030;7023:12;7072:441;7240:4;7269:42;7350:2;7342:6;7338:15;7327:9;7320:34;7402:2;7394:6;7390:15;7385:2;7374:9;7370:18;7363:43;;7442:2;7437;7426:9;7422:18;7415:30;7462:45;7503:2;7492:9;7488:18;7480:6;7462:45;:::i;7518:184::-;7570:77;7567:1;7560:88;7667:4;7664:1;7657:15;7691:4;7688:1;7681:15;7707:128;7774:9;;;7795:11;;;7792:37;;;7809:18;;:::i;7840:168::-;7913:9;;;7944;;7961:15;;;7955:22;;7941:37;7931:71;;7982:18;;:::i;8013:274::-;8053:1;8079;8069:189;;8114:77;8111:1;8104:88;8215:4;8212:1;8205:15;8243:4;8240:1;8233:15;8069:189;-1:-1:-1;8272:9:97;;8013:274::o;8481:184::-;8533:77;8530:1;8523:88;8630:4;8627:1;8620:15;8654:4;8651:1;8644:15;8670:1201;8938:2;8950:21;;;9020:13;;8923:18;;;9042:22;;;8890:4;;9117;;9095:2;9080:18;;;9144:15;;;8890:4;9187:218;9201:6;9198:1;9195:13;9187:218;;;9266:13;;9281:42;9262:62;9250:75;;9345:12;;;;9380:15;;;;9223:1;9216:9;9187:218;;;-1:-1:-1;;;9441:19:97;;;9421:18;;;9414:47;9511:13;;9533:21;;;9609:15;;;;9572:12;;;9644:1;9654:189;9670:8;9665:3;9662:17;9654:189;;;9739:15;;9725:30;;9816:17;;;;9777:14;;;;9698:1;9689:11;9654:189;;;-1:-1:-1;9860:5:97;;8670:1201;-1:-1:-1;;;;;;;8670:1201:97:o"},"gasEstimates":{"creation":{"codeDepositCost":"1357600","executionCost":"infinite","totalCost":"infinite"},"external":{"BORROW_CAP()":"infinite","BORROW_CAP_KEY()":"300","RISK_STEWARD_RECEIVER()":"infinite","SUPPLY_CAP()":"infinite","SUPPLY_CAP_KEY()":"278","acceptOwnership()":"infinite","accessControlManager()":"2374","applyUpdate((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))":"infinite","initialize(address)":"infinite","isSafeForDirectExecution((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))":"infinite","owner()":"2385","pendingOwner()":"2351","renounceOwnership()":"203","safeDeltaBps()":"2361","setAccessControlManager(address)":"infinite","setSafeDeltaBps(uint256)":"infinite","transferOwnership(address)":"30422"},"internal":{"_decodeAbiEncodedUint256(bytes memory)":"infinite","_updateBorrowCaps(uint256,address,uint256)":"infinite","_updateSupplyCaps(uint256,address,uint256)":"infinite"}},"methodIdentifiers":{"BORROW_CAP()":"77907191","BORROW_CAP_KEY()":"c099f284","RISK_STEWARD_RECEIVER()":"b296e6cb","SUPPLY_CAP()":"0cfccc83","SUPPLY_CAP_KEY()":"a0209e43","acceptOwnership()":"79ba5097","accessControlManager()":"b4a0bdf3","applyUpdate((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))":"bf637839","initialize(address)":"c4d66de8","isSafeForDirectExecution((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))":"42b7cfbd","owner()":"8da5cb5b","pendingOwner()":"e30c3978","renounceOwnership()":"715018a6","safeDeltaBps()":"ee97f265","setAccessControlManager(address)":"0e32cb86","setSafeDeltaBps(uint256)":"2c47d86f","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"riskStewardReceiver_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidSafeDeltaBps\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidUintLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyRiskStewardReceiver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RedundantValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RenounceOwnershipNotAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"calledContract\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"methodSignature\",\"type\":\"string\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsupportedUpdateType\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newBorrowCap\",\"type\":\"uint256\"}],\"name\":\"BorrowCapUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldAccessControlManager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAccessControlManager\",\"type\":\"address\"}],\"name\":\"NewAccessControlManager\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"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\":\"uint256\",\"name\":\"oldSafeDeltaBps\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newSafeDeltaBps\",\"type\":\"uint256\"}],\"name\":\"SafeDeltaBpsUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newSupplyCap\",\"type\":\"uint256\"}],\"name\":\"SupplyCapUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BORROW_CAP\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BORROW_CAP_KEY\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RISK_STEWARD_RECEIVER\",\"outputs\":[{\"internalType\":\"contract IRiskStewardReceiver\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SUPPLY_CAP\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SUPPLY_CAP_KEY\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"accessControlManager\",\"outputs\":[{\"internalType\":\"contract IAccessControlManagerV8\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"referenceId\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"updateTypeKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"newValue\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"previousValue\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"poolId\",\"type\":\"uint96\"},{\"internalType\":\"uint32\",\"name\":\"destLzEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"additionalData\",\"type\":\"bytes\"}],\"internalType\":\"struct RiskParameterUpdate\",\"name\":\"update\",\"type\":\"tuple\"}],\"name\":\"applyUpdate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessControlManager_\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"referenceId\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"updateTypeKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"newValue\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"previousValue\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"poolId\",\"type\":\"uint96\"},{\"internalType\":\"uint32\",\"name\":\"destLzEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"additionalData\",\"type\":\"bytes\"}],\"internalType\":\"struct RiskParameterUpdate\",\"name\":\"update\",\"type\":\"tuple\"}],\"name\":\"isSafeForDirectExecution\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"safeDeltaBps\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessControlManager_\",\"type\":\"address\"}],\"name\":\"setAccessControlManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"safeDeltaBps_\",\"type\":\"uint256\"}],\"name\":\"setSafeDeltaBps\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"custom:security-contact\":\"https://github.com/VenusProtocol/governance-contracts#discussion\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"applyUpdate((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))\":{\"custom:access\":\"Only callable by the RiskStewardReceiver\",\"custom:error\":\"Throws OnlyRiskStewardReceiver if the sender is not the RiskStewardReceiverThrows UnsupportedUpdateType if the update type is not supported\",\"custom:event\":\"Emits SupplyCapUpdated or BorrowCapUpdated depending on the update with the updateId, market and new cap\",\"params\":{\"update\":\"RiskParameterUpdate update to apply\"}},\"constructor\":{\"custom:error\":\"Throws ZeroAddressNotAllowed if the RiskStewardReceiver address is zero\",\"custom:oz-upgrades-unsafe-allow\":\"constructor\",\"params\":{\"riskStewardReceiver_\":\"The address of the RiskStewardReceiver\"}},\"initialize(address)\":{\"params\":{\"accessControlManager_\":\"The address of the access control manager\"}},\"isSafeForDirectExecution((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))\":{\"custom:error\":\"Throws UnsupportedUpdateType if the update type is not supportedThrows RedundantValue if the new cap value is equal to the current cap value\",\"params\":{\"update\":\"The update to check\"},\"returns\":{\"_0\":\"True if update is safe for direct execution, false if timelock is required\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"renounceOwnership()\":{\"custom:error\":\"Throws RenounceOwnershipNotAllowed\"},\"setAccessControlManager(address)\":{\"custom:access\":\"Only Governance\",\"custom:event\":\"Emits NewAccessControlManager event\",\"details\":\"Admin function to set address of AccessControlManager\",\"params\":{\"accessControlManager_\":\"The new address of the AccessControlManager\"}},\"setSafeDeltaBps(uint256)\":{\"custom:access\":\"Controlled by AccessControlManager\",\"custom:error\":\"Throws InvalidSafeDeltaBps if the safe delta bps is greater than MAX_BPSThrows RedundantValue if the new safe delta bps is equal to the current value\",\"custom:event\":\"Emits SafeDeltaBpsUpdated with the old and new safe delta bps\",\"params\":{\"safeDeltaBps_\":\"The new safe delta bps\"}},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"title\":\"MarketCapsRiskSteward\",\"version\":1},\"userdoc\":{\"errors\":{\"InvalidSafeDeltaBps()\":[{\"notice\":\"Thrown when a safeDeltaBps value is greater than MAX_BPS\"}],\"InvalidUintLength()\":[{\"notice\":\"Thrown when the uint256 data length is invalid\"}],\"OnlyRiskStewardReceiver()\":[{\"notice\":\"Thrown when the update is not coming from the RiskStewardReceiver\"}],\"RedundantValue()\":[{\"notice\":\"Thrown when attempting to apply a redundant value (no-op change).\"}],\"RenounceOwnershipNotAllowed()\":[{\"notice\":\"Thrown when trying to renounce ownership\"}],\"Unauthorized(address,address,string)\":[{\"notice\":\"Thrown when the action is prohibited by AccessControlManager\"}],\"UnsupportedUpdateType()\":[{\"notice\":\"Thrown when an update type that is not supported is operated on\"}],\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}]},\"events\":{\"BorrowCapUpdated(uint256,address,uint256)\":{\"notice\":\"Emitted when a borrow cap is updated\"},\"NewAccessControlManager(address,address)\":{\"notice\":\"Emitted when access control manager contract address is changed\"},\"SafeDeltaBpsUpdated(uint256,uint256)\":{\"notice\":\"Emitted when the safe delta bps is updated\"},\"SupplyCapUpdated(uint256,address,uint256)\":{\"notice\":\"Emitted when a supply cap is updated\"}},\"kind\":\"user\",\"methods\":{\"BORROW_CAP()\":{\"notice\":\"The update type for borrow caps\"},\"BORROW_CAP_KEY()\":{\"notice\":\"The update type key for borrow caps (keccak256 hash of BORROW_CAP)\"},\"RISK_STEWARD_RECEIVER()\":{\"notice\":\"Address of the RiskStewardReceiver used to validate incoming updates\"},\"SUPPLY_CAP()\":{\"notice\":\"The update type for supply caps\"},\"SUPPLY_CAP_KEY()\":{\"notice\":\"The update type key for supply caps (keccak256 hash of SUPPLY_CAP)\"},\"accessControlManager()\":{\"notice\":\"Returns the address of the access control manager contract\"},\"applyUpdate((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))\":{\"notice\":\"Applies a market cap update from the RiskStewardReceiver. Directly updates the market supply or borrow cap on the market's comptroller.\"},\"constructor\":{\"notice\":\"Sets the immutable RiskStewardReceiver address and disables initializers\"},\"initialize(address)\":{\"notice\":\"Initializes the contract as ownable and access controlled.\"},\"isSafeForDirectExecution((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))\":{\"notice\":\"Checks if an update is safe for direct execution (no timelock required)\"},\"renounceOwnership()\":{\"notice\":\"Disables renounceOwnership function\"},\"safeDeltaBps()\":{\"notice\":\"The safe delta threshold in basis points.Updates within this delta are considered safe and require no timelock. Updates exceeding this delta require timelock.\"},\"setAccessControlManager(address)\":{\"notice\":\"Sets the address of AccessControlManager\"},\"setSafeDeltaBps(uint256)\":{\"notice\":\"Sets the safe delta bps\"}},\"notice\":\"Contract that can update supply and borrow caps updates received from RiskStewardReceiver.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/RiskSteward/MarketCapsRiskSteward.sol\":\"MarketCapsRiskSteward\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (access/Ownable2Step.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./OwnableUpgradeable.sol\\\";\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership} and {acceptOwnership}.\\n *\\n * This module is used through inheritance. It will make available all functions\\n * from parent (Ownable).\\n */\\nabstract contract Ownable2StepUpgradeable is Initializable, OwnableUpgradeable {\\n    function __Ownable2Step_init() internal onlyInitializing {\\n        __Ownable_init_unchained();\\n    }\\n\\n    function __Ownable2Step_init_unchained() internal onlyInitializing {\\n    }\\n    address private _pendingOwner;\\n\\n    event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Returns the address of the pending owner.\\n     */\\n    function pendingOwner() public view virtual returns (address) {\\n        return _pendingOwner;\\n    }\\n\\n    /**\\n     * @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual override onlyOwner {\\n        _pendingOwner = newOwner;\\n        emit OwnershipTransferStarted(owner(), newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual override {\\n        delete _pendingOwner;\\n        super._transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev The new owner accepts the ownership transfer.\\n     */\\n    function acceptOwnership() external {\\n        address sender = _msgSender();\\n        require(pendingOwner() == sender, \\\"Ownable2Step: caller is not the new owner\\\");\\n        _transferOwnership(sender);\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0xd712fb45b3ea0ab49679164e3895037adc26ce12879d5184feb040e01c1c07a9\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/ContextUpgradeable.sol\\\";\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract OwnableUpgradeable is Initializable, ContextUpgradeable {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    function __Ownable_init() internal onlyInitializing {\\n        __Ownable_init_unchained();\\n    }\\n\\n    function __Ownable_init_unchained() internal onlyInitializing {\\n        _transferOwnership(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        _checkOwner();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if the sender is not the owner.\\n     */\\n    function _checkOwner() internal view virtual {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions anymore. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby removing any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.1) (proxy/utils/Initializable.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../../utils/AddressUpgradeable.sol\\\";\\n\\n/**\\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\\n *\\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\\n * reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in\\n * case an upgrade adds a module that needs to be initialized.\\n *\\n * For example:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * contract MyToken is ERC20Upgradeable {\\n *     function initialize() initializer public {\\n *         __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\");\\n *     }\\n * }\\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\\n *     function initializeV2() reinitializer(2) public {\\n *         __ERC20Permit_init(\\\"MyToken\\\");\\n *     }\\n * }\\n * ```\\n *\\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\\n *\\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\\n *\\n * [CAUTION]\\n * ====\\n * Avoid leaving a contract uninitialized.\\n *\\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * /// @custom:oz-upgrades-unsafe-allow constructor\\n * constructor() {\\n *     _disableInitializers();\\n * }\\n * ```\\n * ====\\n */\\nabstract contract Initializable {\\n    /**\\n     * @dev Indicates that the contract has been initialized.\\n     * @custom:oz-retyped-from bool\\n     */\\n    uint8 private _initialized;\\n\\n    /**\\n     * @dev Indicates that the contract is in the process of being initialized.\\n     */\\n    bool private _initializing;\\n\\n    /**\\n     * @dev Triggered when the contract has been initialized or reinitialized.\\n     */\\n    event Initialized(uint8 version);\\n\\n    /**\\n     * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\\n     * `onlyInitializing` functions can be used to initialize parent contracts.\\n     *\\n     * Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\\n     * constructor.\\n     *\\n     * Emits an {Initialized} event.\\n     */\\n    modifier initializer() {\\n        bool isTopLevelCall = !_initializing;\\n        require(\\n            (isTopLevelCall && _initialized < 1) || (!AddressUpgradeable.isContract(address(this)) && _initialized == 1),\\n            \\\"Initializable: contract is already initialized\\\"\\n        );\\n        _initialized = 1;\\n        if (isTopLevelCall) {\\n            _initializing = true;\\n        }\\n        _;\\n        if (isTopLevelCall) {\\n            _initializing = false;\\n            emit Initialized(1);\\n        }\\n    }\\n\\n    /**\\n     * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\\n     * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\\n     * used to initialize parent contracts.\\n     *\\n     * A reinitializer may be used after the original initialization step. This is essential to configure modules that\\n     * are added through upgrades and that require initialization.\\n     *\\n     * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\\n     * cannot be nested. If one is invoked in the context of another, execution will revert.\\n     *\\n     * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\\n     * a contract, executing them in the right order is up to the developer or operator.\\n     *\\n     * WARNING: setting the version to 255 will prevent any future reinitialization.\\n     *\\n     * Emits an {Initialized} event.\\n     */\\n    modifier reinitializer(uint8 version) {\\n        require(!_initializing && _initialized < version, \\\"Initializable: contract is already initialized\\\");\\n        _initialized = version;\\n        _initializing = true;\\n        _;\\n        _initializing = false;\\n        emit Initialized(version);\\n    }\\n\\n    /**\\n     * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\\n     * {initializer} and {reinitializer} modifiers, directly or indirectly.\\n     */\\n    modifier onlyInitializing() {\\n        require(_initializing, \\\"Initializable: contract is not initializing\\\");\\n        _;\\n    }\\n\\n    /**\\n     * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\\n     * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\\n     * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\\n     * through proxies.\\n     *\\n     * Emits an {Initialized} event the first time it is successfully executed.\\n     */\\n    function _disableInitializers() internal virtual {\\n        require(!_initializing, \\\"Initializable: contract is initializing\\\");\\n        if (_initialized < type(uint8).max) {\\n            _initialized = type(uint8).max;\\n            emit Initialized(type(uint8).max);\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns the highest version that has been initialized. See {reinitializer}.\\n     */\\n    function _getInitializedVersion() internal view returns (uint8) {\\n        return _initialized;\\n    }\\n\\n    /**\\n     * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.\\n     */\\n    function _isInitializing() internal view returns (bool) {\\n        return _initializing;\\n    }\\n}\\n\",\"keccak256\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary AddressUpgradeable {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\n     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\n     *\\n     * _Available since v4.8._\\n     */\\n    function verifyCallResultFromTarget(\\n        address target,\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        if (success) {\\n            if (returndata.length == 0) {\\n                // only check isContract if the call was successful and the return data is empty\\n                // otherwise we already know that it was a contract\\n                require(isContract(target), \\\"Address: call to non-contract\\\");\\n            }\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason or using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    function _revert(bytes memory returndata, string memory errorMessage) private pure {\\n        // Look for revert reason and bubble it up if present\\n        if (returndata.length > 0) {\\n            // The easiest way to bubble the revert reason is using memory via assembly\\n            /// @solidity memory-safe-assembly\\n            assembly {\\n                let returndata_size := mload(returndata)\\n                revert(add(32, returndata), returndata_size)\\n            }\\n        } else {\\n            revert(errorMessage);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract ContextUpgradeable is Initializable {\\n    function __Context_init() internal onlyInitializing {\\n    }\\n\\n    function __Context_init_unchained() internal onlyInitializing {\\n    }\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[50] private __gap;\\n}\\n\",\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"@venusprotocol/solidity-utilities/contracts/validators.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\n/// @notice Thrown if the supplied address is a zero address where it is not allowed\\nerror ZeroAddressNotAllowed();\\n\\n/// @notice Thrown if the supplied value is 0 where it is not allowed\\nerror ZeroValueNotAllowed();\\n\\n/// @notice Checks if the provided address is nonzero, reverts otherwise\\n/// @param address_ Address to check\\n/// @custom:error ZeroAddressNotAllowed is thrown if the provided address is a zero address\\nfunction ensureNonzeroAddress(address address_) pure {\\n    if (address_ == address(0)) {\\n        revert ZeroAddressNotAllowed();\\n    }\\n}\\n\\n/// @notice Checks if the provided value is nonzero, reverts otherwise\\n/// @param value_ Value to check\\n/// @custom:error ZeroValueNotAllowed is thrown if the provided value is 0\\nfunction ensureNonzeroValue(uint256 value_) pure {\\n    if (value_ == 0) {\\n        revert ZeroValueNotAllowed();\\n    }\\n}\\n\",\"keccak256\":\"0xdb88e14d50dd21889ca3329d755673d022c47e8da005b6a545c7f69c2c4b7b86\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/venus-protocol/contracts/InterestRateModels/InterestRateModelV8.sol\":{\"content\":\"pragma solidity 0.8.25;\\n\\n/**\\n * @title Venus's InterestRateModelV8 Interface\\n * @author Venus\\n */\\nabstract contract InterestRateModelV8 {\\n    /// @notice Indicator that this is an InterestRateModel contract (for inspection)\\n    bool public constant isInterestRateModel = true;\\n\\n    /**\\n     * @notice Calculates the current borrow interest rate per block\\n     * @param cash The total amount of cash the market has\\n     * @param borrows The total amount of borrows the market has outstanding\\n     * @param reserves The total amnount of reserves the market has\\n     * @return The borrow rate per block (as a percentage, and scaled by 1e18)\\n     */\\n    function getBorrowRate(uint256 cash, uint256 borrows, uint256 reserves) external view virtual returns (uint256);\\n\\n    /**\\n     * @notice Calculates the current supply interest rate per block\\n     * @param cash The total amount of cash the market has\\n     * @param borrows The total amount of borrows the market has outstanding\\n     * @param reserves The total amnount of reserves the market has\\n     * @param reserveFactorMantissa The current reserve factor the market has\\n     * @return The supply rate per block (as a percentage, and scaled by 1e18)\\n     */\\n    function getSupplyRate(\\n        uint256 cash,\\n        uint256 borrows,\\n        uint256 reserves,\\n        uint256 reserveFactorMantissa\\n    ) external view virtual returns (uint256);\\n}\\n\",\"keccak256\":\"0x9b71896f66909fb3fe829c413594121f0e165d8508e8a6fa29a6938ddcfbb61f\"},\"contracts/Governance/AccessControlledV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\\\";\\nimport \\\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\\\";\\n\\nimport \\\"./IAccessControlManagerV8.sol\\\";\\n\\n/**\\n * @title AccessControlledV8\\n * @author Venus\\n * @notice This contract is helper between access control manager and actual contract. This contract further inherited by other contract (using solidity 0.8.13)\\n * to integrate access controlled mechanism. It provides initialise methods and verifying access methods.\\n */\\nabstract contract AccessControlledV8 is Initializable, Ownable2StepUpgradeable {\\n    /// @notice Access control manager contract\\n    IAccessControlManagerV8 internal _accessControlManager;\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n\\n    /// @notice Emitted when access control manager contract address is changed\\n    event NewAccessControlManager(address oldAccessControlManager, address newAccessControlManager);\\n\\n    /// @notice Thrown when the action is prohibited by AccessControlManager\\n    error Unauthorized(address sender, address calledContract, string methodSignature);\\n\\n    function __AccessControlled_init(address accessControlManager_) internal onlyInitializing {\\n        __Ownable2Step_init();\\n        __AccessControlled_init_unchained(accessControlManager_);\\n    }\\n\\n    function __AccessControlled_init_unchained(address accessControlManager_) internal onlyInitializing {\\n        _setAccessControlManager(accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Sets the address of AccessControlManager\\n     * @dev Admin function to set address of AccessControlManager\\n     * @param accessControlManager_ The new address of the AccessControlManager\\n     * @custom:event Emits NewAccessControlManager event\\n     * @custom:access Only Governance\\n     */\\n    function setAccessControlManager(address accessControlManager_) external onlyOwner {\\n        _setAccessControlManager(accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Returns the address of the access control manager contract\\n     */\\n    function accessControlManager() external view returns (IAccessControlManagerV8) {\\n        return _accessControlManager;\\n    }\\n\\n    /**\\n     * @dev Internal function to set address of AccessControlManager\\n     * @param accessControlManager_ The new address of the AccessControlManager\\n     */\\n    function _setAccessControlManager(address accessControlManager_) internal {\\n        require(address(accessControlManager_) != address(0), \\\"invalid acess control manager address\\\");\\n        address oldAccessControlManager = address(_accessControlManager);\\n        _accessControlManager = IAccessControlManagerV8(accessControlManager_);\\n        emit NewAccessControlManager(oldAccessControlManager, accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Reverts if the call is not allowed by AccessControlManager\\n     * @param signature Method signature\\n     */\\n    function _checkAccessAllowed(string memory signature) internal view {\\n        bool isAllowedToCall = _accessControlManager.isAllowedToCall(msg.sender, signature);\\n\\n        if (!isAllowedToCall) {\\n            revert Unauthorized(msg.sender, address(this), signature);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xe7f5f96c70fb32912ecc0032f81f7876607353413fe7f723d41d260ac9c26a06\",\"license\":\"BSD-3-Clause\"},\"contracts/Governance/IAccessControlManagerV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/access/IAccessControl.sol\\\";\\n\\n/**\\n * @title IAccessControlManagerV8\\n * @author Venus\\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\\n */\\ninterface IAccessControlManagerV8 is IAccessControl {\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\\n\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) external;\\n\\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\\n\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xaa29b098440d0b3a131c5ecdf25ce548790c1b5ac7bf9b5c0264b6af6f7a1e0b\",\"license\":\"BSD-3-Clause\"},\"contracts/RiskSteward/BaseRiskSteward.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { AccessControlledV8 } from \\\"../Governance/AccessControlledV8.sol\\\";\\nimport { IRiskSteward } from \\\"./Interfaces/IRiskSteward.sol\\\";\\n\\n/**\\n * @title BaseRiskSteward\\n * @author Venus\\n * @notice Abstract base contract for Risk Steward contracts providing common functionality\\n * @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion\\n */\\nabstract contract BaseRiskSteward is IRiskSteward, AccessControlledV8 {\\n    /// @dev Max basis points i.e., 100%\\n    uint256 internal constant MAX_BPS = 10000;\\n\\n    /**\\n     * @notice The safe delta threshold in basis points.\\n     * @notice Updates within this delta are considered safe and require no timelock. Updates exceeding this delta require timelock.\\n     * @dev This is only used by contracts that implement safe delta checks (e.g., MarketCapsRiskSteward, CollateralFactorsRiskSteward)\\n     */\\n    uint256 public safeDeltaBps;\\n\\n    /**\\n     * @notice Thrown when trying to renounce ownership\\n     */\\n    error RenounceOwnershipNotAllowed();\\n\\n    /**\\n     * @notice Disables renounceOwnership function\\n     * @custom:error Throws RenounceOwnershipNotAllowed\\n     */\\n    function renounceOwnership() public pure override {\\n        revert RenounceOwnershipNotAllowed();\\n    }\\n\\n    /**\\n     * @notice Checks if the difference between new and current values is within the safe delta threshold.\\n     * @param newValue The new value to check\\n     * @param currentValue The current value to compare against\\n     * @return True if the difference is within the safe delta, false otherwise\\n     */\\n    function _isWithinSafeDelta(uint256 newValue, uint256 currentValue) internal view returns (bool) {\\n        uint256 diff = newValue > currentValue ? newValue - currentValue : currentValue - newValue;\\n        uint256 maxDiff = (safeDeltaBps * currentValue) / MAX_BPS;\\n        return diff <= maxDiff;\\n    }\\n}\\n\",\"keccak256\":\"0xc479bcfa55626860065c2ac8707b40e3c48d419bd8b23dbb35d1fab79584fcf2\",\"license\":\"BSD-3-Clause\"},\"contracts/RiskSteward/Interfaces/IRiskOracle.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity 0.8.25;\\n\\n/**\\n * @notice Struct representing a risk parameter update published by the Risk Oracle\\n * @param referenceId External reference ID, potentially linking to a document or off-chain data\\n * @param updateId Unique identifier for this specific update\\n * @param market Address of the market for which the parameter update applies\\n * @param updateType Classification of the update type for validation purposes (human-readable)\\n * @param updateTypeKey Keccak256 hash of updateType for efficient comparisons\\n * @param newValue Encoded new value of the risk parameter, flexible for various data types\\n * @param previousValue Previous value of the parameter for historical comparison\\n * @param timestamp Block timestamp when the update was published\\n * @param publisher Address of the account that published this update\\n * @param poolId Pool identifier for eMode-style collateral configuration (0 for regular markets)\\n * @param destLzEid LayerZero endpoint ID of the destination chain (0 for local execution)\\n * @param additionalData Additional metadata or data associated with the update\\n */\\nstruct RiskParameterUpdate {\\n    string referenceId;\\n    uint256 updateId;\\n    address market;\\n    string updateType;\\n    bytes32 updateTypeKey;\\n    bytes newValue;\\n    bytes previousValue;\\n    uint256 timestamp;\\n    address publisher;\\n    uint96 poolId;\\n    uint32 destLzEid;\\n    bytes additionalData;\\n}\\n\\n/**\\n * @title IRiskOracle\\n * @author Venus\\n * @notice Interface for Risk Oracle contract that manages and publishes risk parameter updates\\n */\\ninterface IRiskOracle {\\n    /// @notice Event emitted when a risk parameter update is published\\n    event UpdatePublished(\\n        string referenceId,\\n        uint256 indexed updateId,\\n        address indexed market,\\n        string indexed updateType,\\n        bytes newValue,\\n        bytes previousValue,\\n        uint256 timestamp,\\n        address publisher,\\n        bytes additionalData\\n    );\\n\\n    /// @notice Event emitted when a new authorized sender is added\\n    event AuthorizedSenderAdded(address indexed sender);\\n\\n    /// @notice Event emitted when an authorized sender is removed\\n    event AuthorizedSenderRemoved(address indexed sender);\\n\\n    /// @notice Event emitted when a new update type is added\\n    event UpdateTypeAdded(string indexed updateType);\\n\\n    /// @notice Event emitted when an update type's active status is changed\\n    event UpdateTypeActiveStatusChanged(string indexed updateType, bool previousActive, bool active);\\n\\n    /// @notice Thrown when sender is not authorized\\n    error SenderNotAuthorized();\\n\\n    /// @notice Thrown when sender is already authorized\\n    error SenderAlreadyAuthorized();\\n\\n    /// @notice Thrown when update type string is invalid\\n    error InvalidUpdateTypeString();\\n\\n    /// @notice Thrown when update type already exists\\n    error UpdateTypeAlreadyExists();\\n\\n    /// @notice Thrown when update type doesn't exist\\n    error UpdateTypeNotFound();\\n\\n    /// @notice Thrown when update type active status is already set to the desired value\\n    error UpdateTypeStatusUnchanged();\\n\\n    /// @notice Thrown when update type is not active\\n    error UpdateTypeNotActive();\\n\\n    /// @notice Thrown when no update is found\\n    error NoUpdateFound();\\n\\n    /// @notice Thrown when update ID is invalid\\n    error InvalidUpdateId();\\n\\n    /// @notice Thrown when array lengths don't match in bulk operations\\n    error ArrayLengthMismatch();\\n\\n    /// @notice Thrown when trying to renounce ownership\\n    error RenounceOwnershipNotAllowed();\\n\\n    /**\\n     * @notice Returns the update type string at the given index in the allUpdateTypes array\\n     * @param index The index in the allUpdateTypes array\\n     * @return The update type string at the specified index\\n     */\\n    function allUpdateTypes(uint256 index) external view returns (string memory);\\n\\n    /**\\n     * @notice Returns the total number of update types in the allUpdateTypes array\\n     * @return The length of the allUpdateTypes array\\n     */\\n    function allUpdateTypesLength() external view returns (uint256);\\n\\n    /**\\n     * @notice Returns all update types in the allUpdateTypes array\\n     * @return An array of all update type strings\\n     */\\n    function getAllUpdateTypes() external view returns (string[] memory);\\n\\n    /**\\n     * @notice Checks if a given update type is currently active\\n     * @param updateType The update type string to check\\n     * @return True if the update type is active, false otherwise\\n     */\\n    function getActiveUpdateTypes(string memory updateType) external view returns (bool);\\n\\n    /**\\n     * @notice Checks if a given update type is currently active\\n     * @param updateTypeKey The keccak256 hash of the update type string\\n     * @return True if the update type key is active, false otherwise\\n     */\\n    function activeUpdateTypes(bytes32 updateTypeKey) external view returns (bool);\\n\\n    /**\\n     * @notice Checks if an address is authorized to publish updates\\n     * @param sender The address to check for authorization\\n     * @return True if the address is authorized, false otherwise\\n     */\\n    function authorizedSenders(address sender) external view returns (bool);\\n\\n    /**\\n     * @notice Gets the latest update ID for a specific market and update type combination\\n     * @param updateTypeKey The keccak256 hash of the update type string\\n     * @param market The market address\\n     * @return The latest update ID for the given market and update type key, or 0 if none exists\\n     */\\n    function latestUpdateIdByMarketAndType(bytes32 updateTypeKey, address market) external view returns (uint256);\\n\\n    /**\\n     * @notice Returns the total number of updates that have been published\\n     * @return The current update counter value\\n     */\\n    function updateCounter() external view returns (uint256);\\n\\n    /**\\n     * @notice Fetches the most recent update for a specific parameter type in a specific market\\n     * @param updateType The update type identifier\\n     * @param market The market address\\n     * @return The most recent RiskParameterUpdate for the specified parameter and market\\n     * @custom:error NoUpdateFound Thrown if no update exists for the specified parameter and market\\n     */\\n    function getLatestUpdateByTypeAndMarket(\\n        string memory updateType,\\n        address market\\n    ) external view returns (RiskParameterUpdate memory);\\n\\n    /**\\n     * @notice Gets the latest update ID for a specific market and update type (string) combination\\n     * @param updateType The update type identifier\\n     * @param market The market address\\n     * @return The latest update ID for the given market and update type, or 0 if none exists\\n     */\\n    function getLatestUpdateIdByTypeAndMarket(string memory updateType, address market) external view returns (uint256);\\n\\n    /**\\n     * @notice Fetches the update for a provided update ID\\n     * @param updateId The unique update ID\\n     * @return The RiskParameterUpdate struct for the specified update ID\\n     * @custom:error InvalidUpdateId Thrown if updateId is 0 or greater than updateCounter\\n     */\\n    function getUpdateById(uint256 updateId) external view returns (RiskParameterUpdate memory);\\n\\n    /**\\n     * @notice Adds a new address to the list of authorized senders who can publish updates\\n     * @param sender Address to be authorized\\n     * @custom:error ZeroAddressNotAllowed Thrown if sender is the zero address\\n     * @custom:error SenderAlreadyAuthorized Thrown if sender is already authorized\\n     * @custom:error Unauthorized Thrown if caller is not allowed by AccessControlManager\\n     * @custom:event AuthorizedSenderAdded Emitted when sender is successfully added\\n     */\\n    function addAuthorizedSender(address sender) external;\\n\\n    /**\\n     * @notice Removes an address from the list of authorized senders\\n     * @param sender Address to be removed from authorization\\n     * @custom:error SenderNotAuthorized Thrown if sender is not currently authorized\\n     * @custom:error Unauthorized Thrown if caller is not allowed by AccessControlManager\\n     * @custom:event AuthorizedSenderRemoved Emitted when sender is successfully removed\\n     */\\n    function removeAuthorizedSender(address sender) external;\\n\\n    /**\\n     * @notice Adds a new update type to the list of authorized update types\\n     * @param newUpdateType New update type string to allow (must be non-empty and <= 64 characters)\\n     * @custom:error InvalidUpdateTypeString Thrown if update type string is empty or exceeds 64 characters\\n     * @custom:error UpdateTypeAlreadyExists Thrown if update type already exists\\n     * @custom:error Unauthorized Thrown if caller is not allowed by AccessControlManager\\n     * @custom:event UpdateTypeAdded Emitted when update type is successfully added\\n     */\\n    function addUpdateType(string memory newUpdateType) external;\\n\\n    /**\\n     * @notice Sets the active status of an existing update type\\n     * @param updateType The update type to set active status for\\n     * @param active True to activate the update type, false to deactivate it\\n     * @custom:error UpdateTypeNotFound Thrown if update type doesn't exist\\n     * @custom:error UpdateTypeStatusUnchanged Thrown if status is already set to the desired value\\n     * @custom:error Unauthorized Thrown if caller is not allowed by AccessControlManager\\n     * @custom:event UpdateTypeActiveStatusChanged Emitted when status is successfully changed\\n     */\\n    function setUpdateTypeActive(string memory updateType, bool active) external;\\n\\n    /**\\n     * @notice Publishes a new risk parameter update.\\n     * @param referenceId An external reference ID associated with the update\\n     * @param newValue The new value of the risk parameter being updated (encoded as bytes)\\n     * @param updateType Type of update performed, must be an active update type\\n     * @param market Address of the market for which the parameter update applies\\n     * @param poolId Pool identifier for eMode-style collateral configuration (0 for regular markets)\\n     * @param dstEid Destination endpoint ID for cross-chain routing\\n     * @param additionalData Additional data or metadata for the update\\n     * @custom:error SenderNotAuthorized Thrown if caller is not an authorized sender\\n     * @custom:error UpdateTypeNotActive Thrown if update type is not active\\n     * @custom:error ZeroAddressNotAllowed Thrown if market is the zero address\\n     * @custom:event UpdatePublished Emitted when the update is successfully published\\n     */\\n    function publishRiskParameterUpdate(\\n        string memory referenceId,\\n        bytes memory newValue,\\n        string memory updateType,\\n        address market,\\n        uint96 poolId,\\n        uint32 dstEid,\\n        bytes memory additionalData\\n    ) external;\\n\\n    /**\\n     * @notice Publishes multiple risk parameter updates in a single transaction.\\n     * @param referenceIds Array of external reference IDs, one for each update\\n     * @param newValues Array of new values for each update (encoded as bytes)\\n     * @param updateTypes Array of update types, all must be active update types\\n     * @param markets Array of market addresses for each update\\n     * @param poolIds Array of pool identifiers for eMode-style collateral configuration (0 for regular markets)\\n     * @param dstEid Array of destination endpoint IDs for cross-chain routing\\n     * @param additionalData Array of additional data for each update\\n     * @custom:error SenderNotAuthorized Thrown if caller is not an authorized sender\\n     * @custom:error ArrayLengthMismatch Thrown if all arrays don't have the same length\\n     * @custom:error UpdateTypeNotActive Thrown if any update type is not active\\n     * @custom:error ZeroAddressNotAllowed Thrown if any market is the zero address\\n     * @custom:event UpdatePublished Emitted for each successfully published update\\n     */\\n    function publishBulkRiskParameterUpdates(\\n        string[] memory referenceIds,\\n        bytes[] memory newValues,\\n        string[] memory updateTypes,\\n        address[] memory markets,\\n        uint96[] memory poolIds,\\n        uint32[] memory dstEid,\\n        bytes[] memory additionalData\\n    ) external;\\n}\\n\",\"keccak256\":\"0x8a30b030d5be3cefabf55d889d0a06447613a9ada5a917730b7ec833bda167cd\",\"license\":\"MIT\"},\"contracts/RiskSteward/Interfaces/IRiskSteward.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { RiskParameterUpdate } from \\\"./IRiskOracle.sol\\\";\\nimport { IRiskStewardReceiver } from \\\"./IRiskStewardReceiver.sol\\\";\\n\\n/**\\n * @title IRiskSteward\\n * @author Venus\\n * @notice Interface for risk stewards that validate and apply risk parameter updates\\n */\\ninterface IRiskSteward {\\n    /**\\n     * @notice Returns the `IRiskStewardReceiver` associated with this steward.\\n     * @return The risk steward receiver contract\\n     */\\n    function RISK_STEWARD_RECEIVER() external view returns (IRiskStewardReceiver);\\n\\n    /**\\n     * @notice Checks whether an update is safe for direct execution (no timelock required).\\n     * @param update The risk parameter update to evaluate\\n     * @return True if update is safe for direct execution, false if timelock is required\\n     */\\n    function isSafeForDirectExecution(RiskParameterUpdate calldata update) external view returns (bool);\\n\\n    /**\\n     * @notice Applies a validated risk parameter update.\\n     * @param update The risk parameter update to apply\\n     */\\n    function applyUpdate(RiskParameterUpdate calldata update) external;\\n}\\n\",\"keccak256\":\"0x6438497d6fd62f5e8c224a01e626a92ae2ebbe736852749862ff2f040a25b069\",\"license\":\"BSD-3-Clause\"},\"contracts/RiskSteward/Interfaces/IRiskStewardReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface IRiskStewardReceiver {\\n    /**\\n     * @notice Status of an update\\n     */\\n    enum UpdateStatus {\\n        None,\\n        Pending,\\n        Executed,\\n        Rejected,\\n        Expired,\\n        SENT_TO_DESTINATION\\n    }\\n\\n    /**\\n     * @notice Configuration for a risk parameter update type\\n     * @param active Whether this update type configuration is currently active\\n     * @param debounce Minimum delay between consecutive update executions for the same (updateType, market) pair\\n     * @param timelock Period that must pass after registration before an update can be executed\\n     * @param riskSteward Address of the risk steward contract responsible for processing this update type\\n     */\\n    struct RiskParamConfig {\\n        bool active;\\n        uint256 debounce;\\n        uint256 timelock;\\n        address riskSteward;\\n    }\\n\\n    /**\\n     * @notice Registered update structure with timelock and execution information\\n     * @param updateId Update ID from the Risk Oracle\\n     * @param unlockTime Timestamp when this update can be executed (calculated as registration time + timelock)\\n     * @param status Current status of the update (Pending, Executed, Rejected, Expired, etc.)\\n     * @param executor Address of the executor who executed this update (address(0) if not executed yet)\\n     * @param executedAt Timestamp when this update was executed (0 if not executed yet)\\n     */\\n    struct RegisteredUpdate {\\n        uint256 updateId;\\n        uint256 unlockTime;\\n        UpdateStatus status;\\n        address executor;\\n        uint256 executedAt;\\n    }\\n\\n    /**\\n     * @notice Event emitted when a risk parameter config is set\\n     */\\n    event RiskParameterConfigUpdated(\\n        bytes32 indexed updateTypeHash,\\n        string updateType,\\n        address indexed previousRiskSteward,\\n        address indexed riskSteward,\\n        uint256 previousDebounce,\\n        uint256 debounce,\\n        uint256 previousTimelock,\\n        uint256 timelock,\\n        bool previousActive,\\n        bool active\\n    );\\n\\n    /**\\n     * @notice Event emitted when a risk parameter config active status is set\\n     */\\n    event ConfigActiveUpdated(bytes32 indexed updateTypeHash, string updateType, bool previousActive, bool active);\\n\\n    /**\\n     * @notice Event emitted when an update is successfully executed\\n     */\\n    event UpdateExecuted(uint256 indexed updateId);\\n\\n    /**\\n     * @notice Event emitted when an update is rejected\\n     */\\n    event UpdateRejected(uint256 indexed updateId);\\n\\n    /**\\n     * @notice Event emitted when an update is marked as expired\\n     */\\n    event UpdateExpired(uint256 indexed updateId);\\n\\n    /**\\n     * @notice Event emitted when an executor status is set\\n     */\\n    event ExecutorStatusUpdated(address indexed executor, bool previousApproved, bool approved);\\n\\n    /**\\n     * @notice Event emitted when an update is registered\\n     */\\n    event UpdateRegistered(uint256 indexed updateId, uint256 unlockTime, string updateType, address indexed market);\\n\\n    /**\\n     * @notice Event emitted when an update is sent to a destination chain\\n     */\\n    event UpdateSentToDestination(\\n        uint256 updateId,\\n        uint32 indexed destLzEid,\\n        string indexed updateType,\\n        address indexed market\\n    );\\n\\n    /**\\n     * @notice Event emitted when an update is resent to a destination chain\\n     */\\n    event UpdateResentToDestination(\\n        uint256 updateId,\\n        uint32 indexed destLzEid,\\n        string indexed updateType,\\n        address indexed market\\n    );\\n\\n    /**\\n     * @notice Emitted when leftover native tokens are swept by owner\\n     */\\n    event SweepNative(address indexed receiver, uint256 amount);\\n\\n    /**\\n     * @notice Event emitted when the pause status changes\\n     * @param previousPaused Previous pause state\\n     * @param paused Current pause state\\n     */\\n    event PauseStatusUpdated(bool previousPaused, bool paused);\\n\\n    /**\\n     * @custom:error TransferFailed\\n     */\\n    error TransferFailed();\\n\\n    /**\\n     * @notice Thrown if a submitted update is not active and therefore cannot be processed\\n     */\\n    error ConfigNotActive();\\n\\n    /**\\n     * @notice Thrown when an update was not applied within the required time frame\\n     */\\n    error UpdateIsExpired();\\n\\n    /**\\n     * @notice Thrown when an update has already been processed\\n     */\\n    error UpdateAlreadyResolved();\\n\\n    /**\\n     * @notice Thrown when the debounce period hasn't passed for applying an update to a specific market / update type\\n     */\\n    error UpdateTooFrequent();\\n\\n    /**\\n     * @notice Thrown when an update type that is not supported is operated on\\n     */\\n    error UnsupportedUpdateType();\\n\\n    /**\\n     * @notice Thrown when an empty update type string is provided\\n     */\\n    error InvalidUpdateType();\\n\\n    /**\\n     * @notice Thrown when a debounce value of 0 is set\\n     */\\n    error InvalidDebounce();\\n\\n    /**\\n     * @notice Thrown when a timelock value is greater than or equal to the expiration time\\n     */\\n    error InvalidTimelock();\\n\\n    /**\\n     * @notice Thrown when update unlock time has not been reached\\n     */\\n    error UpdateNotUnlocked();\\n\\n    /**\\n     * @notice Thrown when trying to resolve an update that doesn't exist\\n     */\\n    error UpdateNotFound();\\n\\n    /**\\n     * @notice Thrown when an address is not an executor\\n     */\\n    error NotAnExecutor();\\n\\n    /**\\n     * @notice Thrown when there is a non-expired pending update of the same type for the market\\n     */\\n    error RegisteredUpdateTypeExist(uint256);\\n\\n    /**\\n     * @notice Thrown when trying to resend an update that is not in SENT_TO_DESTINATION status\\n     */\\n    error InvalidUpdateToResend();\\n\\n    /**\\n     * @notice Thrown when trying to execute an update that was never registered\\n     */\\n    error InvalidRegisteredUpdate();\\n\\n    /**\\n     * @notice Thrown when attempting to call lzSend from an address other than this contract\\n     */\\n    error InvalidLzSendCaller();\\n\\n    /**\\n     * @notice Thrown when trying to renounce ownership\\n     */\\n    error RenounceOwnershipNotAllowed();\\n\\n    /**\\n     * @notice Thrown when processUpdate is called while the contract is paused\\n     */\\n    error PausedError();\\n\\n    /**\\n     * @notice Thrown when an invalid LayerZero endpoint ID is provided\\n     */\\n    error InvalidLayerZeroEid();\\n\\n    /**\\n     * @notice Thrown when trying to set the same pause status\\n     */\\n    error PauseStatusUnchanged();\\n\\n    /**\\n     * @notice Thrown when trying to set the same config active status\\n     */\\n    error ConfigStatusUnchanged();\\n\\n    /**\\n     * @notice Thrown when trying to set the same executor whitelist status\\n     */\\n    error ExecutorStatusUnchanged();\\n\\n    /**\\n     * @notice Thrown when an update will expire before its timelock unlocks\\n     */\\n    error UpdateWillExpireBeforeUnlock();\\n\\n    function getRiskParameterConfig(string calldata updateType) external view returns (RiskParamConfig memory);\\n\\n    function getLastProcessedUpdate(string calldata updateType, address market) external view returns (uint256);\\n\\n    function getLastRegisteredUpdate(string calldata updateType, address market) external view returns (uint256);\\n\\n    function setRiskParameterConfig(\\n        string calldata updateType,\\n        address riskSteward,\\n        uint256 debounce,\\n        uint256 timelock\\n    ) external;\\n\\n    function setConfigActive(string calldata updateType, bool active) external;\\n\\n    function setWhitelistedExecutor(address executor, bool approved) external;\\n\\n    function processUpdate(uint256 updateId) external;\\n\\n    function executeRegisteredUpdate(uint256 updateId) external;\\n\\n    function rejectUpdate(uint256 updateId) external;\\n\\n    function resendRemoteUpdate(uint256 updateId, bytes calldata options) external payable;\\n\\n    function getExecutableUpdates(\\n        string calldata updateType,\\n        address comptroller\\n    ) external view returns (uint256[] memory executableUpdates);\\n\\n    function isUpdateExecutable(uint256 updateId) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x206b4763cfe62155718edb4b53ee48d6e5204b81cbfac705808d2ffd3225bb12\",\"license\":\"BSD-3-Clause\"},\"contracts/RiskSteward/MarketCapsRiskSteward.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { RiskParameterUpdate } from \\\"./Interfaces/IRiskOracle.sol\\\";\\nimport { ICorePoolVToken } from \\\"../interfaces/ICorePoolVToken.sol\\\";\\nimport { ICorePoolComptroller } from \\\"../interfaces/ICorePoolComptroller.sol\\\";\\nimport { IRiskStewardReceiver } from \\\"./Interfaces/IRiskStewardReceiver.sol\\\";\\nimport { BaseRiskSteward } from \\\"./BaseRiskSteward.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\n\\n/**\\n * @title MarketCapsRiskSteward\\n * @author Venus\\n * @notice Contract that can update supply and borrow caps updates received from RiskStewardReceiver.\\n * @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion\\n */\\ncontract MarketCapsRiskSteward is BaseRiskSteward {\\n    /**\\n     * @notice The update type for supply caps\\n     */\\n    string public constant SUPPLY_CAP = \\\"supplyCap\\\";\\n\\n    /**\\n     * @notice The update type key for supply caps (keccak256 hash of SUPPLY_CAP)\\n     */\\n    bytes32 public constant SUPPLY_CAP_KEY = keccak256(bytes(SUPPLY_CAP));\\n\\n    /**\\n     * @notice The update type for borrow caps\\n     */\\n    string public constant BORROW_CAP = \\\"borrowCap\\\";\\n\\n    /**\\n     * @notice The update type key for borrow caps (keccak256 hash of BORROW_CAP)\\n     */\\n    bytes32 public constant BORROW_CAP_KEY = keccak256(bytes(BORROW_CAP));\\n\\n    /**\\n     * @notice Address of the RiskStewardReceiver used to validate incoming updates\\n     */\\n    IRiskStewardReceiver public immutable RISK_STEWARD_RECEIVER;\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n\\n    /**\\n     * @notice Emitted when a supply cap is updated\\n     */\\n    event SupplyCapUpdated(uint256 indexed updateId, address indexed market, uint256 newSupplyCap);\\n\\n    /**\\n     * @notice Emitted when a borrow cap is updated\\n     */\\n    event BorrowCapUpdated(uint256 indexed updateId, address indexed market, uint256 newBorrowCap);\\n\\n    /**\\n     * @notice Emitted when the safe delta bps is updated\\n     */\\n    event SafeDeltaBpsUpdated(uint256 oldSafeDeltaBps, uint256 newSafeDeltaBps);\\n\\n    /**\\n     * @notice Thrown when a safeDeltaBps value is greater than MAX_BPS\\n     */\\n    error InvalidSafeDeltaBps();\\n\\n    /**\\n     * @notice Thrown when an update type that is not supported is operated on\\n     */\\n    error UnsupportedUpdateType();\\n\\n    /**\\n     * @notice Thrown when the update is not coming from the RiskStewardReceiver\\n     */\\n    error OnlyRiskStewardReceiver();\\n\\n    /**\\n     * @notice Thrown when the uint256 data length is invalid\\n     */\\n    error InvalidUintLength();\\n\\n    /**\\n     * @notice Thrown when attempting to apply a redundant value (no-op change).\\n     */\\n    error RedundantValue();\\n\\n    /**\\n     * @notice Sets the immutable RiskStewardReceiver address and disables initializers\\n     * @param riskStewardReceiver_ The address of the RiskStewardReceiver\\n     * @custom:error Throws ZeroAddressNotAllowed if the RiskStewardReceiver address is zero\\n     * @custom:oz-upgrades-unsafe-allow constructor\\n     */\\n    constructor(address riskStewardReceiver_) {\\n        ensureNonzeroAddress(riskStewardReceiver_);\\n        RISK_STEWARD_RECEIVER = IRiskStewardReceiver(riskStewardReceiver_);\\n        _disableInitializers();\\n    }\\n\\n    /**\\n     * @notice Initializes the contract as ownable and access controlled.\\n     * @param accessControlManager_ The address of the access control manager\\n     */\\n    function initialize(address accessControlManager_) external initializer {\\n        __AccessControlled_init(accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Sets the safe delta bps\\n     * @param safeDeltaBps_ The new safe delta bps\\n     * @custom:access Controlled by AccessControlManager\\n     * @custom:event Emits SafeDeltaBpsUpdated with the old and new safe delta bps\\n     * @custom:error Throws InvalidSafeDeltaBps if the safe delta bps is greater than MAX_BPS\\n     * @custom:error Throws RedundantValue if the new safe delta bps is equal to the current value\\n     */\\n    function setSafeDeltaBps(uint256 safeDeltaBps_) external {\\n        _checkAccessAllowed(\\\"setSafeDeltaBps(uint256)\\\");\\n        if (safeDeltaBps_ > MAX_BPS) {\\n            revert InvalidSafeDeltaBps();\\n        }\\n        uint256 oldSafeDeltaBps = safeDeltaBps;\\n        if (safeDeltaBps_ == oldSafeDeltaBps) {\\n            revert RedundantValue();\\n        }\\n        safeDeltaBps = safeDeltaBps_;\\n        emit SafeDeltaBpsUpdated(oldSafeDeltaBps, safeDeltaBps_);\\n    }\\n\\n    /**\\n     * @notice Checks if an update is safe for direct execution (no timelock required)\\n     * @param update The update to check\\n     * @return True if update is safe for direct execution, false if timelock is required\\n     * @custom:error Throws UnsupportedUpdateType if the update type is not supported\\n     * @custom:error Throws RedundantValue if the new cap value is equal to the current cap value\\n     */\\n    function isSafeForDirectExecution(RiskParameterUpdate calldata update) external view returns (bool) {\\n        uint256 newValue = _decodeAbiEncodedUint256(update.newValue);\\n        // Use the core pool comptroller interface here because the getter used below has the same signature for both core and isolated pools.\\n        ICorePoolComptroller comptroller = ICorePoolComptroller(ICorePoolVToken(update.market).comptroller());\\n        uint256 currentValue;\\n\\n        if (update.updateTypeKey == SUPPLY_CAP_KEY) {\\n            currentValue = comptroller.supplyCaps(update.market);\\n        } else if (update.updateTypeKey == BORROW_CAP_KEY) {\\n            currentValue = comptroller.borrowCaps(update.market);\\n        } else {\\n            revert UnsupportedUpdateType();\\n        }\\n\\n        // Revert on redundant updates\\n        if (newValue == currentValue) {\\n            revert RedundantValue();\\n        }\\n\\n        // If current value is 0, always require timelock (not safe for direct execution)\\n        if (currentValue == 0) {\\n            return false;\\n        }\\n\\n        // Return true if difference is within safe delta (safe for direct execution)\\n        return _isWithinSafeDelta(newValue, currentValue);\\n    }\\n\\n    /**\\n     * @notice Applies a market cap update from the RiskStewardReceiver.\\n     * Directly updates the market supply or borrow cap on the market's comptroller.\\n     * @custom:access Only callable by the RiskStewardReceiver\\n     * @param update RiskParameterUpdate update to apply\\n     * @custom:event Emits SupplyCapUpdated or BorrowCapUpdated depending on the update with the updateId, market and new cap\\n     * @custom:error Throws OnlyRiskStewardReceiver if the sender is not the RiskStewardReceiver\\n     * @custom:error Throws UnsupportedUpdateType if the update type is not supported\\n     */\\n    function applyUpdate(RiskParameterUpdate calldata update) external {\\n        if (msg.sender != address(RISK_STEWARD_RECEIVER)) {\\n            revert OnlyRiskStewardReceiver();\\n        }\\n        uint256 newValue = _decodeAbiEncodedUint256(update.newValue);\\n\\n        if (update.updateTypeKey == SUPPLY_CAP_KEY) {\\n            _updateSupplyCaps(update.updateId, update.market, newValue);\\n        } else if (update.updateTypeKey == BORROW_CAP_KEY) {\\n            _updateBorrowCaps(update.updateId, update.market, newValue);\\n        } else {\\n            revert UnsupportedUpdateType();\\n        }\\n    }\\n\\n    /**\\n     * @notice Updates the supply cap for the given market.\\n     * @param updateId The update ID from the Risk Oracle\\n     * @param market The market to update the supply cap for\\n     * @param newValue The new supply cap value\\n     * @custom:event Emits SupplyCapUpdated with the updateId, market and new supply cap\\n     */\\n    function _updateSupplyCaps(uint256 updateId, address market, uint256 newValue) internal {\\n        address comptroller = ICorePoolVToken(market).comptroller();\\n        address[] memory newSupplyCapMarkets = new address[](1);\\n        newSupplyCapMarkets[0] = market;\\n        uint256[] memory newSupplyCaps = new uint256[](1);\\n        newSupplyCaps[0] = newValue;\\n\\n        // Core and isolated pools share the same `setMarketSupplyCaps` signature.\\n        ICorePoolComptroller(comptroller).setMarketSupplyCaps(newSupplyCapMarkets, newSupplyCaps);\\n        emit SupplyCapUpdated(updateId, market, newSupplyCaps[0]);\\n    }\\n\\n    /**\\n     * @notice Updates the borrow cap for the given market.\\n     * @param updateId The update ID from the Risk Oracle\\n     * @param market The market to update the borrow cap for\\n     * @param newValue The new borrow cap value\\n     * @custom:event Emits BorrowCapUpdated with the updateId, market and new borrow cap\\n     */\\n    function _updateBorrowCaps(uint256 updateId, address market, uint256 newValue) internal {\\n        address comptroller = ICorePoolVToken(market).comptroller();\\n        address[] memory newBorrowCapMarkets = new address[](1);\\n        newBorrowCapMarkets[0] = market;\\n        uint256[] memory newBorrowCaps = new uint256[](1);\\n        newBorrowCaps[0] = newValue;\\n\\n        //Core and isolated pools share the same `setMarketBorrowCaps` signature,\\n        ICorePoolComptroller(comptroller).setMarketBorrowCaps(newBorrowCapMarkets, newBorrowCaps);\\n        emit BorrowCapUpdated(updateId, market, newBorrowCaps[0]);\\n    }\\n\\n    /**\\n     * @notice Decodes ABI-encoded bytes into a uint256.\\n     * @dev Expects exactly 32 bytes as produced by abi.encode(uint256).\\n     * @param data ABI-encoded uint256 payload (32 bytes)\\n     * @return value Decoded uint256\\n     * @custom:error Throws InvalidUintLength if data length is not 32 bytes\\n     */\\n    function _decodeAbiEncodedUint256(bytes memory data) internal pure returns (uint256 value) {\\n        if (data.length != 32) {\\n            revert InvalidUintLength();\\n        }\\n        value = abi.decode(data, (uint256));\\n    }\\n}\\n\",\"keccak256\":\"0x78f122131331b88aca15e0d588210c985362bab787a6ac3a6c07c6d06967610a\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/ICorePoolComptroller.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface ICorePoolComptroller {\\n    function borrowCaps(address) external view returns (uint256);\\n\\n    function supplyCaps(address) external view returns (uint256);\\n\\n    function _setMarketSupplyCaps(address[] calldata, uint256[] calldata) external;\\n\\n    function _setMarketBorrowCaps(address[] calldata, uint256[] calldata) external;\\n\\n    function setMarketSupplyCaps(address[] calldata, uint256[] calldata) external;\\n\\n    function setMarketBorrowCaps(address[] calldata, uint256[] calldata) external;\\n\\n    function getAllMarkets() external view returns (address[] memory);\\n\\n    function setCollateralFactor(\\n        uint96 poolId,\\n        address vToken,\\n        uint256 newCollateralFactorMantissa,\\n        uint256 newLiquidizationThresholdMantissa\\n    ) external returns (uint256);\\n\\n    function setCollateralFactor(\\n        address vToken,\\n        uint256 newCollateralFactorMantissa,\\n        uint256 newLiquidationThresholdMantissa\\n    ) external returns (uint256);\\n\\n    function markets(\\n        address\\n    )\\n        external\\n        view\\n        returns (\\n            bool isListed,\\n            uint256 collateralFactorMantissa,\\n            bool isVenus,\\n            uint256 liquidationThresholdMantissa,\\n            uint256 liquidationIncentiveMantissa,\\n            uint96 marketPoolId,\\n            bool isBorrowAllowed\\n        );\\n\\n    function poolMarkets(\\n        uint96 poolId,\\n        address vToken\\n    )\\n        external\\n        view\\n        returns (\\n            bool isListed,\\n            uint256 collateralFactorMantissa,\\n            bool isVenus,\\n            uint256 liquidationThresholdMantissa,\\n            uint256 liquidationIncentiveMantissa,\\n            uint96 marketPoolId,\\n            bool isBorrowAllowed\\n        );\\n}\\n\",\"keccak256\":\"0xf1d900d58474417ee7de59cbb72df84fe1cd4512f3b265bb66ffabddbcca53b6\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/ICorePoolVToken.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { InterestRateModelV8 } from \\\"@venusprotocol/venus-protocol/contracts/InterestRateModels/InterestRateModelV8.sol\\\";\\n\\ninterface ICorePoolVToken {\\n    function comptroller() external view returns (address);\\n\\n    function interestRateModel() external view returns (address);\\n\\n    function _setInterestRateModel(InterestRateModelV8 newInterestRateModel) external returns (uint256);\\n}\\n\",\"keccak256\":\"0xb952df2bdfc73cc669c52776b4cf9dd663084dfafd74131f4f59ac9c820edd7b\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":6086,"contract":"contracts/RiskSteward/MarketCapsRiskSteward.sol:MarketCapsRiskSteward","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":6089,"contract":"contracts/RiskSteward/MarketCapsRiskSteward.sol:MarketCapsRiskSteward","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":6573,"contract":"contracts/RiskSteward/MarketCapsRiskSteward.sol:MarketCapsRiskSteward","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":5958,"contract":"contracts/RiskSteward/MarketCapsRiskSteward.sol:MarketCapsRiskSteward","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":6078,"contract":"contracts/RiskSteward/MarketCapsRiskSteward.sol:MarketCapsRiskSteward","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":5867,"contract":"contracts/RiskSteward/MarketCapsRiskSteward.sol:MarketCapsRiskSteward","label":"_pendingOwner","offset":0,"slot":"101","type":"t_address"},{"astId":5946,"contract":"contracts/RiskSteward/MarketCapsRiskSteward.sol:MarketCapsRiskSteward","label":"__gap","offset":0,"slot":"102","type":"t_array(t_uint256)49_storage"},{"astId":13718,"contract":"contracts/RiskSteward/MarketCapsRiskSteward.sol:MarketCapsRiskSteward","label":"_accessControlManager","offset":0,"slot":"151","type":"t_contract(IAccessControlManagerV8)13903"},{"astId":13723,"contract":"contracts/RiskSteward/MarketCapsRiskSteward.sol:MarketCapsRiskSteward","label":"__gap","offset":0,"slot":"152","type":"t_array(t_uint256)49_storage"},{"astId":14464,"contract":"contracts/RiskSteward/MarketCapsRiskSteward.sol:MarketCapsRiskSteward","label":"safeDeltaBps","offset":0,"slot":"201","type":"t_uint256"},{"astId":17191,"contract":"contracts/RiskSteward/MarketCapsRiskSteward.sol:MarketCapsRiskSteward","label":"__gap","offset":0,"slot":"202","type":"t_array(t_uint256)49_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_contract(IAccessControlManagerV8)13903":{"encoding":"inplace","label":"contract IAccessControlManagerV8","numberOfBytes":"20"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"errors":{"InvalidSafeDeltaBps()":[{"notice":"Thrown when a safeDeltaBps value is greater than MAX_BPS"}],"InvalidUintLength()":[{"notice":"Thrown when the uint256 data length is invalid"}],"OnlyRiskStewardReceiver()":[{"notice":"Thrown when the update is not coming from the RiskStewardReceiver"}],"RedundantValue()":[{"notice":"Thrown when attempting to apply a redundant value (no-op change)."}],"RenounceOwnershipNotAllowed()":[{"notice":"Thrown when trying to renounce ownership"}],"Unauthorized(address,address,string)":[{"notice":"Thrown when the action is prohibited by AccessControlManager"}],"UnsupportedUpdateType()":[{"notice":"Thrown when an update type that is not supported is operated on"}],"ZeroAddressNotAllowed()":[{"notice":"Thrown if the supplied address is a zero address where it is not allowed"}]},"events":{"BorrowCapUpdated(uint256,address,uint256)":{"notice":"Emitted when a borrow cap is updated"},"NewAccessControlManager(address,address)":{"notice":"Emitted when access control manager contract address is changed"},"SafeDeltaBpsUpdated(uint256,uint256)":{"notice":"Emitted when the safe delta bps is updated"},"SupplyCapUpdated(uint256,address,uint256)":{"notice":"Emitted when a supply cap is updated"}},"kind":"user","methods":{"BORROW_CAP()":{"notice":"The update type for borrow caps"},"BORROW_CAP_KEY()":{"notice":"The update type key for borrow caps (keccak256 hash of BORROW_CAP)"},"RISK_STEWARD_RECEIVER()":{"notice":"Address of the RiskStewardReceiver used to validate incoming updates"},"SUPPLY_CAP()":{"notice":"The update type for supply caps"},"SUPPLY_CAP_KEY()":{"notice":"The update type key for supply caps (keccak256 hash of SUPPLY_CAP)"},"accessControlManager()":{"notice":"Returns the address of the access control manager contract"},"applyUpdate((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))":{"notice":"Applies a market cap update from the RiskStewardReceiver. Directly updates the market supply or borrow cap on the market's comptroller."},"constructor":{"notice":"Sets the immutable RiskStewardReceiver address and disables initializers"},"initialize(address)":{"notice":"Initializes the contract as ownable and access controlled."},"isSafeForDirectExecution((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes))":{"notice":"Checks if an update is safe for direct execution (no timelock required)"},"renounceOwnership()":{"notice":"Disables renounceOwnership function"},"safeDeltaBps()":{"notice":"The safe delta threshold in basis points.Updates within this delta are considered safe and require no timelock. Updates exceeding this delta require timelock."},"setAccessControlManager(address)":{"notice":"Sets the address of AccessControlManager"},"setSafeDeltaBps(uint256)":{"notice":"Sets the safe delta bps"}},"notice":"Contract that can update supply and borrow caps updates received from RiskStewardReceiver.","version":1}}},"contracts/RiskSteward/RiskOracle.sol":{"RiskOracle":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ArrayLengthMismatch","type":"error"},{"inputs":[],"name":"InvalidUpdateId","type":"error"},{"inputs":[],"name":"InvalidUpdateTypeString","type":"error"},{"inputs":[],"name":"NoUpdateFound","type":"error"},{"inputs":[],"name":"RenounceOwnershipNotAllowed","type":"error"},{"inputs":[],"name":"SenderAlreadyAuthorized","type":"error"},{"inputs":[],"name":"SenderNotAuthorized","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"calledContract","type":"address"},{"internalType":"string","name":"methodSignature","type":"string"}],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"UpdateTypeAlreadyExists","type":"error"},{"inputs":[],"name":"UpdateTypeNotActive","type":"error"},{"inputs":[],"name":"UpdateTypeNotFound","type":"error"},{"inputs":[],"name":"UpdateTypeStatusUnchanged","type":"error"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"AuthorizedSenderAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"AuthorizedSenderRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldAccessControlManager","type":"address"},{"indexed":false,"internalType":"address","name":"newAccessControlManager","type":"address"}],"name":"NewAccessControlManager","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","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":"string","name":"referenceId","type":"string"},{"indexed":true,"internalType":"uint256","name":"updateId","type":"uint256"},{"indexed":true,"internalType":"address","name":"market","type":"address"},{"indexed":true,"internalType":"string","name":"updateType","type":"string"},{"indexed":false,"internalType":"bytes","name":"newValue","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"previousValue","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"},{"indexed":false,"internalType":"address","name":"publisher","type":"address"},{"indexed":false,"internalType":"bytes","name":"additionalData","type":"bytes"}],"name":"UpdatePublished","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"string","name":"updateType","type":"string"},{"indexed":false,"internalType":"bool","name":"previousActive","type":"bool"},{"indexed":false,"internalType":"bool","name":"active","type":"bool"}],"name":"UpdateTypeActiveStatusChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"string","name":"updateType","type":"string"}],"name":"UpdateTypeAdded","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"accessControlManager","outputs":[{"internalType":"contract IAccessControlManagerV8","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"activeUpdateTypes","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"addAuthorizedSender","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newUpdateType","type":"string"}],"name":"addUpdateType","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"allUpdateTypes","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"allUpdateTypesLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"authorizedSenders","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"updateType","type":"string"}],"name":"getActiveUpdateTypes","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAllUpdateTypes","outputs":[{"internalType":"string[]","name":"","type":"string[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"updateType","type":"string"},{"internalType":"address","name":"market","type":"address"}],"name":"getLatestUpdateByTypeAndMarket","outputs":[{"components":[{"internalType":"string","name":"referenceId","type":"string"},{"internalType":"uint256","name":"updateId","type":"uint256"},{"internalType":"address","name":"market","type":"address"},{"internalType":"string","name":"updateType","type":"string"},{"internalType":"bytes32","name":"updateTypeKey","type":"bytes32"},{"internalType":"bytes","name":"newValue","type":"bytes"},{"internalType":"bytes","name":"previousValue","type":"bytes"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"address","name":"publisher","type":"address"},{"internalType":"uint96","name":"poolId","type":"uint96"},{"internalType":"uint32","name":"destLzEid","type":"uint32"},{"internalType":"bytes","name":"additionalData","type":"bytes"}],"internalType":"struct RiskParameterUpdate","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"updateType","type":"string"},{"internalType":"address","name":"market","type":"address"}],"name":"getLatestUpdateIdByTypeAndMarket","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"updateId","type":"uint256"}],"name":"getUpdateById","outputs":[{"components":[{"internalType":"string","name":"referenceId","type":"string"},{"internalType":"uint256","name":"updateId","type":"uint256"},{"internalType":"address","name":"market","type":"address"},{"internalType":"string","name":"updateType","type":"string"},{"internalType":"bytes32","name":"updateTypeKey","type":"bytes32"},{"internalType":"bytes","name":"newValue","type":"bytes"},{"internalType":"bytes","name":"previousValue","type":"bytes"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"address","name":"publisher","type":"address"},{"internalType":"uint96","name":"poolId","type":"uint96"},{"internalType":"uint32","name":"destLzEid","type":"uint32"},{"internalType":"bytes","name":"additionalData","type":"bytes"}],"internalType":"struct RiskParameterUpdate","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"accessControlManager_","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"updateTypeKey","type":"bytes32"},{"internalType":"address","name":"market","type":"address"}],"name":"latestUpdateIdByMarketAndType","outputs":[{"internalType":"uint256","name":"updateId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string[]","name":"referenceIds","type":"string[]"},{"internalType":"bytes[]","name":"newValues","type":"bytes[]"},{"internalType":"string[]","name":"updateTypes","type":"string[]"},{"internalType":"address[]","name":"markets","type":"address[]"},{"internalType":"uint96[]","name":"poolIds","type":"uint96[]"},{"internalType":"uint32[]","name":"dstEid","type":"uint32[]"},{"internalType":"bytes[]","name":"additionalData","type":"bytes[]"}],"name":"publishBulkRiskParameterUpdates","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"referenceId","type":"string"},{"internalType":"bytes","name":"newValue","type":"bytes"},{"internalType":"string","name":"updateType","type":"string"},{"internalType":"address","name":"market","type":"address"},{"internalType":"uint96","name":"poolId","type":"uint96"},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes","name":"additionalData","type":"bytes"}],"name":"publishRiskParameterUpdate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"removeAuthorizedSender","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"accessControlManager_","type":"address"}],"name":"setAccessControlManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"updateType","type":"string"},{"internalType":"bool","name":"active","type":"bool"}],"name":"setUpdateTypeActive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"updateCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"updatesById","outputs":[{"internalType":"string","name":"referenceId","type":"string"},{"internalType":"uint256","name":"updateId","type":"uint256"},{"internalType":"address","name":"market","type":"address"},{"internalType":"string","name":"updateType","type":"string"},{"internalType":"bytes32","name":"updateTypeKey","type":"bytes32"},{"internalType":"bytes","name":"newValue","type":"bytes"},{"internalType":"bytes","name":"previousValue","type":"bytes"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"address","name":"publisher","type":"address"},{"internalType":"uint96","name":"poolId","type":"uint96"},{"internalType":"uint32","name":"destLzEid","type":"uint32"},{"internalType":"bytes","name":"additionalData","type":"bytes"}],"stateMutability":"view","type":"function"}],"devdoc":{"author":"Venus","events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."}},"kind":"dev","methods":{"acceptOwnership()":{"details":"The new owner accepts the ownership transfer."},"addAuthorizedSender(address)":{"custom:access":"Controlled by AccessControlManager","custom:error":"Throws ZeroAddressNotAllowed if sender is zero addressThrows SenderAlreadyAuthorized if sender is already authorizedThrows Unauthorized if caller is not allowed by AccessControlManager","custom:event":"Emits AuthorizedSenderAdded when sender is successfully added","params":{"sender":"Address to be authorized"}},"addUpdateType(string)":{"custom:access":"Controlled by AccessControlManager","custom:error":"Throws InvalidUpdateTypeString if update type string is empty or exceeds 64 charactersThrows UpdateTypeAlreadyExists if update type already existsThrows Unauthorized if caller is not allowed by AccessControlManager","custom:event":"Emits UpdateTypeAdded when update type is successfully added","params":{"newUpdateType":"New type of update to allow"}},"allUpdateTypesLength()":{"returns":{"_0":"The length of the allUpdateTypes array"}},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"getActiveUpdateTypes(string)":{"params":{"updateType":"The update type string to check"},"returns":{"_0":"True if the update type is active, false otherwise"}},"getAllUpdateTypes()":{"returns":{"_0":"An array of all update type strings"}},"getLatestUpdateByTypeAndMarket(string,address)":{"custom:error":"Throws NoUpdateFound if no update exists for the specified parameter and market","params":{"market":"The market identifier","updateType":"The identifier for the parameter"},"returns":{"_0":"The most recent RiskParameterUpdate for the specified parameter and market"}},"getLatestUpdateIdByTypeAndMarket(string,address)":{"params":{"market":"The market address","updateType":"The update type string"},"returns":{"_0":"The latest update ID for the given market and update type, or 0 if none exists"}},"getUpdateById(uint256)":{"custom:error":"Throws InvalidUpdateId if updateId is 0 or greater than updateCounter","params":{"updateId":"Update ID"},"returns":{"_0":"The RiskParameterUpdate for the specified id"}},"initialize(address)":{"custom:error":"Reverts with \"invalid acess control manager address\" if accessControlManager_ is zero address","params":{"accessControlManager_":"Address of the access control manager"}},"owner()":{"details":"Returns the address of the current owner."},"pendingOwner()":{"details":"Returns the address of the pending owner."},"publishBulkRiskParameterUpdates(string[],bytes[],string[],address[],uint96[],uint32[],bytes[])":{"custom:error":"Throws SenderNotAuthorized if caller is not an authorized senderThrows ArrayLengthMismatch if the array lengths do not match or if no updates are providedThrows UpdateTypeNotActive if any update type is not activeThrows ZeroAddressNotAllowed if any market is zero address","custom:event":"Emits UpdatePublished for each successfully published update","params":{"additionalData":"Array of additional data for the updates","dstEid":"Array of destination endpoint IDs for cross-chain routing","markets":"Array of addresses for markets of the parameter updates","newValues":"Array of new values for each update","poolIds":"Array of pool identifiers for eMode-style collateral configuration (0 for regular markets)","referenceIds":"Array of external reference IDs","updateTypes":"Array of types for each update, all must be authorized"}},"publishRiskParameterUpdate(string,bytes,string,address,uint96,uint32,bytes)":{"custom:error":"Throws SenderNotAuthorized if caller is not an authorized senderThrows UpdateTypeNotActive if update type is not activeThrows ZeroAddressNotAllowed if market is zero address","custom:event":"Emits UpdatePublished when update is successfully published","params":{"additionalData":"Additional data for the update","dstEid":"Destination endpoint ID for cross-chain routing","market":"Address for market of the parameter update","newValue":"The new value of the risk parameter being updated","poolId":"Pool identifier for eMode-style collateral configuration (0 for regular markets)","referenceId":"An external reference ID associated with the update","updateType":"Type of update performed, must be previously authorized"}},"removeAuthorizedSender(address)":{"custom:access":"Controlled by AccessControlManager","custom:error":"Throws SenderNotAuthorized if sender is not currently authorizedThrows Unauthorized if caller is not allowed by AccessControlManager","custom:event":"Emits AuthorizedSenderRemoved when sender is successfully removed","params":{"sender":"Address to be unauthorized"}},"renounceOwnership()":{"custom:error":"Throws RenounceOwnershipNotAllowed"},"setAccessControlManager(address)":{"custom:access":"Only Governance","custom:event":"Emits NewAccessControlManager event","details":"Admin function to set address of AccessControlManager","params":{"accessControlManager_":"The new address of the AccessControlManager"}},"setUpdateTypeActive(string,bool)":{"custom:access":"Controlled by AccessControlManager","custom:error":"Throws UpdateTypeNotFound if update type doesn't existThrows UpdateTypeStatusUnchanged if status is already set to the desired valueThrows Unauthorized if caller is not allowed by AccessControlManager","custom:event":"Emits UpdateTypeActiveStatusChanged when status is successfully changed","params":{"active":"True to activate, false to deactivate","updateType":"The update type to set active status for"}},"transferOwnership(address)":{"details":"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner."}},"stateVariables":{"__gap":{"details":"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"}},"title":"Risk Oracle","version":1},"evm":{"bytecode":{"functionDebugData":{"@_17686":{"entryPoint":null,"id":17686,"parameterSlots":0,"returnSlots":0},"@_disableInitializers_6229":{"entryPoint":26,"id":6229,"parameterSlots":0,"returnSlots":0},"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:608:97","nodeType":"YulBlock","src":"0:608:97","statements":[{"nativeSrc":"6:3:97","nodeType":"YulBlock","src":"6:3:97","statements":[]},{"body":{"nativeSrc":"188:229:97","nodeType":"YulBlock","src":"188:229:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"205:9:97","nodeType":"YulIdentifier","src":"205:9:97"},{"kind":"number","nativeSrc":"216:2:97","nodeType":"YulLiteral","src":"216:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"198:6:97","nodeType":"YulIdentifier","src":"198:6:97"},"nativeSrc":"198:21:97","nodeType":"YulFunctionCall","src":"198:21:97"},"nativeSrc":"198:21:97","nodeType":"YulExpressionStatement","src":"198:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"239:9:97","nodeType":"YulIdentifier","src":"239:9:97"},{"kind":"number","nativeSrc":"250:2:97","nodeType":"YulLiteral","src":"250:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"235:3:97","nodeType":"YulIdentifier","src":"235:3:97"},"nativeSrc":"235:18:97","nodeType":"YulFunctionCall","src":"235:18:97"},{"kind":"number","nativeSrc":"255:2:97","nodeType":"YulLiteral","src":"255:2:97","type":"","value":"39"}],"functionName":{"name":"mstore","nativeSrc":"228:6:97","nodeType":"YulIdentifier","src":"228:6:97"},"nativeSrc":"228:30:97","nodeType":"YulFunctionCall","src":"228:30:97"},"nativeSrc":"228:30:97","nodeType":"YulExpressionStatement","src":"228:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"278:9:97","nodeType":"YulIdentifier","src":"278:9:97"},{"kind":"number","nativeSrc":"289:2:97","nodeType":"YulLiteral","src":"289:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"274:3:97","nodeType":"YulIdentifier","src":"274:3:97"},"nativeSrc":"274:18:97","nodeType":"YulFunctionCall","src":"274:18:97"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320696e697469","kind":"string","nativeSrc":"294:34:97","nodeType":"YulLiteral","src":"294:34:97","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nativeSrc":"267:6:97","nodeType":"YulIdentifier","src":"267:6:97"},"nativeSrc":"267:62:97","nodeType":"YulFunctionCall","src":"267:62:97"},"nativeSrc":"267:62:97","nodeType":"YulExpressionStatement","src":"267:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"349:9:97","nodeType":"YulIdentifier","src":"349:9:97"},{"kind":"number","nativeSrc":"360:2:97","nodeType":"YulLiteral","src":"360:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"345:3:97","nodeType":"YulIdentifier","src":"345:3:97"},"nativeSrc":"345:18:97","nodeType":"YulFunctionCall","src":"345:18:97"},{"hexValue":"616c697a696e67","kind":"string","nativeSrc":"365:9:97","nodeType":"YulLiteral","src":"365:9:97","type":"","value":"alizing"}],"functionName":{"name":"mstore","nativeSrc":"338:6:97","nodeType":"YulIdentifier","src":"338:6:97"},"nativeSrc":"338:37:97","nodeType":"YulFunctionCall","src":"338:37:97"},"nativeSrc":"338:37:97","nodeType":"YulExpressionStatement","src":"338:37:97"},{"nativeSrc":"384:27:97","nodeType":"YulAssignment","src":"384:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"396:9:97","nodeType":"YulIdentifier","src":"396:9:97"},{"kind":"number","nativeSrc":"407:3:97","nodeType":"YulLiteral","src":"407:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"392:3:97","nodeType":"YulIdentifier","src":"392:3:97"},"nativeSrc":"392:19:97","nodeType":"YulFunctionCall","src":"392:19:97"},"variableNames":[{"name":"tail","nativeSrc":"384:4:97","nodeType":"YulIdentifier","src":"384:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"14:403:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"165:9:97","nodeType":"YulTypedName","src":"165:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"179:4:97","nodeType":"YulTypedName","src":"179:4:97","type":""}],"src":"14:403:97"},{"body":{"nativeSrc":"519:87:97","nodeType":"YulBlock","src":"519:87:97","statements":[{"nativeSrc":"529:26:97","nodeType":"YulAssignment","src":"529:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"541:9:97","nodeType":"YulIdentifier","src":"541:9:97"},{"kind":"number","nativeSrc":"552:2:97","nodeType":"YulLiteral","src":"552:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"537:3:97","nodeType":"YulIdentifier","src":"537:3:97"},"nativeSrc":"537:18:97","nodeType":"YulFunctionCall","src":"537:18:97"},"variableNames":[{"name":"tail","nativeSrc":"529:4:97","nodeType":"YulIdentifier","src":"529:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"571:9:97","nodeType":"YulIdentifier","src":"571:9:97"},{"arguments":[{"name":"value0","nativeSrc":"586:6:97","nodeType":"YulIdentifier","src":"586:6:97"},{"kind":"number","nativeSrc":"594:4:97","nodeType":"YulLiteral","src":"594:4:97","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"582:3:97","nodeType":"YulIdentifier","src":"582:3:97"},"nativeSrc":"582:17:97","nodeType":"YulFunctionCall","src":"582:17:97"}],"functionName":{"name":"mstore","nativeSrc":"564:6:97","nodeType":"YulIdentifier","src":"564:6:97"},"nativeSrc":"564:36:97","nodeType":"YulFunctionCall","src":"564:36:97"},"nativeSrc":"564:36:97","nodeType":"YulExpressionStatement","src":"564:36:97"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"422:184:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"488:9:97","nodeType":"YulTypedName","src":"488:9:97","type":""},{"name":"value0","nativeSrc":"499:6:97","nodeType":"YulTypedName","src":"499:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"510:4:97","nodeType":"YulTypedName","src":"510:4:97","type":""}],"src":"422:184:97"}]},"contents":"{\n    { }\n    function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 39)\n        mstore(add(headStart, 64), \"Initializable: contract is initi\")\n        mstore(add(headStart, 96), \"alizing\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n}","id":97,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"6080604052348015600f57600080fd5b506016601a565b60d8565b600054610100900460ff161560855760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101560d6576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6134c6806100e76000396000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c8063986576fa116100ee578063c6b8ab4211610097578063ec1930b011610071578063ec1930b01461044b578063f2fde38b1461045e578063f660fe6914610471578063fa7229ee1461048457600080fd5b8063c6b8ab42146103fa578063cbd579671461041a578063e30c39781461042d57600080fd5b8063c030ce7b116100c8578063c030ce7b146103bf578063c4d66de8146103d4578063c4e1a280146103e757600080fd5b8063986576fa1461034b578063b39b55be14610376578063b4a0bdf3146103a157600080fd5b8063592d37331161015b57806377abc9bd1161013557806377abc9bd146102de57806379ba5097146102f157806387d7f21f146102f95780638da5cb5b1461030c57600080fd5b8063592d3733146102ab5780636f324967146102b3578063715018a6146102d657600080fd5b806334496b5a1161018c57806334496b5a1461021757806337759b9a1461026057806343b62b261461028057600080fd5b80630e32cb86146101b3578063157b1225146101c85780631687fe8e14610200575b600080fd5b6101c66101c13660046126fc565b610497565b005b6101eb6101d636600461271e565b60cb6020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61020960c95481565b6040519081526020016101f7565b610209610225366004612843565b8151602092830120600090815260ce8352604080822073ffffffffffffffffffffffffffffffffffffffff9390931682529190925290205490565b61027361026e36600461271e565b6104ab565b6040516101f791906128ff565b61020961028e366004612a68565b60ce60209081526000928352604080842090915290825290205481565b60ca54610209565b6101eb6102c13660046126fc565b60cd6020526000908152604090205460ff1681565b6101c6610933565b6101c66102ec366004612a8b565b610965565b6101c6610ac7565b6101c6610307366004612af8565b610b7e565b60335473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101f7565b6101eb610359366004612a8b565b8051602091820120600090815260cb909152604090205460ff1690565b61038961038436600461271e565b610bdf565b6040516101f79c9b9a99989796959493929190612bd7565b60975473ffffffffffffffffffffffffffffffffffffffff16610326565b6103c7610f3d565b6040516101f79190612cc1565b6101c66103e23660046126fc565b611016565b6101c66103f5366004612f29565b61118d565b61040d61040836600461271e565b611335565b6040516101f79190613035565b6101c66104283660046126fc565b6113e1565b60655473ffffffffffffffffffffffffffffffffffffffff16610326565b6101c6610459366004613056565b6114d4565b6101c661046c3660046126fc565b611618565b61027361047f366004612843565b6116c8565b6101c66104923660046126fc565b611b82565b61049f611c82565b6104a881611d05565b50565b6105526040518061018001604052806060815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160008019168152602001606081526020016060815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160006bffffffffffffffffffffffff168152602001600063ffffffff168152602001606081525090565b811580610560575060c95482115b15610597576040517fac6c0d0100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082815260cc602052604090819020815161018081019092528054829082906105c0906130a8565b80601f01602080910402602001604051908101604052809291908181526020018280546105ec906130a8565b80156106395780601f1061060e57610100808354040283529160200191610639565b820191906000526020600020905b81548152906001019060200180831161061c57829003601f168201915b505050918352505060018201546020820152600282015473ffffffffffffffffffffffffffffffffffffffff166040820152600382018054606090920191610680906130a8565b80601f01602080910402602001604051908101604052809291908181526020018280546106ac906130a8565b80156106f95780601f106106ce576101008083540402835291602001916106f9565b820191906000526020600020905b8154815290600101906020018083116106dc57829003601f168201915b505050505081526020016004820154815260200160058201805461071c906130a8565b80601f0160208091040260200160405190810160405280929190818152602001828054610748906130a8565b80156107955780601f1061076a57610100808354040283529160200191610795565b820191906000526020600020905b81548152906001019060200180831161077857829003601f168201915b505050505081526020016006820180546107ae906130a8565b80601f01602080910402602001604051908101604052809291908181526020018280546107da906130a8565b80156108275780601f106107fc57610100808354040283529160200191610827565b820191906000526020600020905b81548152906001019060200180831161080a57829003601f168201915b505050918352505060078201546020820152600882015473ffffffffffffffffffffffffffffffffffffffff811660408301527401000000000000000000000000000000000000000090046bffffffffffffffffffffffff166060820152600982015463ffffffff166080820152600a8201805460a0909201916108aa906130a8565b80601f01602080910402602001604051908101604052809291908181526020018280546108d6906130a8565b80156109235780601f106108f857610100808354040283529160200191610923565b820191906000526020600020905b81548152906001019060200180831161090657829003601f168201915b5050505050815250509050919050565b6040517f96c553eb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109a36040518060400160405280601581526020017f6164645570646174655479706528737472696e67290000000000000000000000815250611e27565b805115806109b2575060408151115b156109e9576040517f920af76c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805160208201206109f981611f00565b15610a30576040517f40df35ca00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081815260cb60205260408120805460ff1916600190811790915560ca805491820181559091527f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee101610a84838261314c565b5081604051610a939190613266565b604051908190038120907f07d686af6e6b7a2e3d03f5c81f05bba6a5b3686aca218f92f96b84c7d59aabaf90600090a25050565b606554339073ffffffffffffffffffffffffffffffffffffffff168114610b75576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e6572000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6104a881611f64565b33600090815260cd602052604090205460ff16610bc7576040517f79d1e58f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bd687878787878787611f95565b50505050505050565b60cc60205260009081526040902080548190610bfa906130a8565b80601f0160208091040260200160405190810160405280929190818152602001828054610c26906130a8565b8015610c735780601f10610c4857610100808354040283529160200191610c73565b820191906000526020600020905b815481529060010190602001808311610c5657829003601f168201915b50505050600183015460028401546003850180549495929473ffffffffffffffffffffffffffffffffffffffff909216935090610caf906130a8565b80601f0160208091040260200160405190810160405280929190818152602001828054610cdb906130a8565b8015610d285780601f10610cfd57610100808354040283529160200191610d28565b820191906000526020600020905b815481529060010190602001808311610d0b57829003601f168201915b505050505090806004015490806005018054610d43906130a8565b80601f0160208091040260200160405190810160405280929190818152602001828054610d6f906130a8565b8015610dbc5780601f10610d9157610100808354040283529160200191610dbc565b820191906000526020600020905b815481529060010190602001808311610d9f57829003601f168201915b505050505090806006018054610dd1906130a8565b80601f0160208091040260200160405190810160405280929190818152602001828054610dfd906130a8565b8015610e4a5780601f10610e1f57610100808354040283529160200191610e4a565b820191906000526020600020905b815481529060010190602001808311610e2d57829003601f168201915b50505050600783015460088401546009850154600a860180549596939573ffffffffffffffffffffffffffffffffffffffff84169550740100000000000000000000000000000000000000009093046bffffffffffffffffffffffff169363ffffffff90921692610eba906130a8565b80601f0160208091040260200160405190810160405280929190818152602001828054610ee6906130a8565b8015610f335780601f10610f0857610100808354040283529160200191610f33565b820191906000526020600020905b815481529060010190602001808311610f1657829003601f168201915b505050505090508c565b606060ca805480602002602001604051908101604052809291908181526020016000905b8282101561100d578382906000526020600020018054610f80906130a8565b80601f0160208091040260200160405190810160405280929190818152602001828054610fac906130a8565b8015610ff95780601f10610fce57610100808354040283529160200191610ff9565b820191906000526020600020905b815481529060010190602001808311610fdc57829003601f168201915b505050505081526020019060010190610f61565b50505050905090565b600054610100900460ff16158080156110365750600054600160ff909116105b806110505750303b158015611050575060005460ff166001145b6110dc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610b6c565b6000805460ff19166001179055801561111c57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61112582612391565b801561118957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15b5050565b33600090815260cd602052604090205460ff166111d6576040517f79d1e58f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b86518015806111e6575086518114155b806111f2575085518114155b806111fe575084518114155b8061120a575083518114155b80611216575082518114155b80611222575081518114155b15611259576040517fa24a13a600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b8181101561132a5761132289828151811061127957611279613282565b602002602001015189838151811061129357611293613282565b60200260200101518984815181106112ad576112ad613282565b60200260200101518985815181106112c7576112c7613282565b60200260200101518986815181106112e1576112e1613282565b60200260200101518987815181106112fb576112fb613282565b602002602001015189888151811061131557611315613282565b6020026020010151611f95565b60010161125c565b505050505050505050565b60ca818154811061134557600080fd5b906000526020600020016000915090508054611360906130a8565b80601f016020809104026020016040519081016040528092919081815260200182805461138c906130a8565b80156113d95780601f106113ae576101008083540402835291602001916113d9565b820191906000526020600020905b8154815290600101906020018083116113bc57829003601f168201915b505050505081565b61141f6040518060400160405280601f81526020017f72656d6f7665417574686f72697a656453656e64657228616464726573732900815250611e27565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260cd602052604090205460ff1661147e576040517f79d1e58f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116600081815260cd6020526040808220805460ff19169055517f98f9958a855d78eae670154a7d047d26968849962c3204c2b12c2228634f4ff89190a250565b6115126040518060400160405280602081526020017f7365745570646174655479706541637469766528737472696e672c626f6f6c29815250611e27565b8151602083012061152281611f00565b611558576040517f6ebb186d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081815260cb602052604090205460ff16821515811515036115a7576040517f6ebba15200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082815260cb602052604090819020805460ff1916851515179055516115cf908590613266565b6040805191829003822083151583528515156020840152917f33843b38d9deffbe0817aebcd9e744876dbf296fb42cabaca9b24160ab70811e910160405180910390a250505050565b611620611c82565b6065805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915561168360335473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b61176f6040518061018001604052806060815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160008019168152602001606081526020016060815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160006bffffffffffffffffffffffff168152602001600063ffffffff168152602001606081525090565b8251602080850191909120600081815260ce8352604080822073ffffffffffffffffffffffffffffffffffffffff871683529093529182205490918190036117e3576040517f1ca36fe200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081815260cc6020526040908190208151610180810190925280548290829061180c906130a8565b80601f0160208091040260200160405190810160405280929190818152602001828054611838906130a8565b80156118855780601f1061185a57610100808354040283529160200191611885565b820191906000526020600020905b81548152906001019060200180831161186857829003601f168201915b505050918352505060018201546020820152600282015473ffffffffffffffffffffffffffffffffffffffff1660408201526003820180546060909201916118cc906130a8565b80601f01602080910402602001604051908101604052809291908181526020018280546118f8906130a8565b80156119455780601f1061191a57610100808354040283529160200191611945565b820191906000526020600020905b81548152906001019060200180831161192857829003601f168201915b5050505050815260200160048201548152602001600582018054611968906130a8565b80601f0160208091040260200160405190810160405280929190818152602001828054611994906130a8565b80156119e15780601f106119b6576101008083540402835291602001916119e1565b820191906000526020600020905b8154815290600101906020018083116119c457829003601f168201915b505050505081526020016006820180546119fa906130a8565b80601f0160208091040260200160405190810160405280929190818152602001828054611a26906130a8565b8015611a735780601f10611a4857610100808354040283529160200191611a73565b820191906000526020600020905b815481529060010190602001808311611a5657829003601f168201915b505050918352505060078201546020820152600882015473ffffffffffffffffffffffffffffffffffffffff811660408301527401000000000000000000000000000000000000000090046bffffffffffffffffffffffff166060820152600982015463ffffffff166080820152600a8201805460a090920191611af6906130a8565b80601f0160208091040260200160405190810160405280929190818152602001828054611b22906130a8565b8015611b6f5780601f10611b4457610100808354040283529160200191611b6f565b820191906000526020600020905b815481529060010190602001808311611b5257829003601f168201915b5050505050815250509250505092915050565b611bc06040518060400160405280601c81526020017f616464417574686f72697a656453656e64657228616464726573732900000000815250611e27565b611bc981612439565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260cd602052604090205460ff1615611c29576040517f16fc747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116600081815260cd6020526040808220805460ff19166001179055517fd06d2241a59677d082959f22e5a5212c57a9e890949a9d0f2426efd49f8c5d7f9190a250565b60335473ffffffffffffffffffffffffffffffffffffffff163314611d03576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b6c565b565b73ffffffffffffffffffffffffffffffffffffffff8116611da8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e6167657220616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610b6c565b6097805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa09101611180565b6097546040517f18c5e8ab00000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff16906318c5e8ab90611e8090339086906004016132b1565b602060405180830381865afa158015611e9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ec191906132e0565b905080611189573330836040517f4a3fa293000000000000000000000000000000000000000000000000000000008152600401610b6c939291906132fd565b60ca54600090815b81811015611f5a578360ca8281548110611f2457611f24613282565b90600052602060002001604051611f3b919061333f565b604051809103902003611f52575060019392505050565b600101611f08565b5060009392505050565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556104a881612486565b611f9e84612439565b8451602080870191909120600081815260cb90925260409091205460ff16611ff2576040517f686d1d3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060c960008154612003906133b5565b9182905550600083815260ce6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8b16845282528083205480845260cc909252822060050180549394509092612055906130a8565b80601f0160208091040260200160405190810160405280929190818152602001828054612081906130a8565b80156120ce5780601f106120a3576101008083540402835291602001916120ce565b820191906000526020600020905b8154815290600101906020018083116120b157829003601f168201915b5050505050905060006040518061018001604052808d81526020018581526020018a73ffffffffffffffffffffffffffffffffffffffff1681526020018b81526020018681526020018c81526020018381526020014281526020013373ffffffffffffffffffffffffffffffffffffffff168152602001896bffffffffffffffffffffffff1681526020018863ffffffff1681526020018781525090508060cc60008681526020019081526020016000206000820151816000019081612194919061314c565b506020820151600182015560408201516002820180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055606082015160038201906121fe908261314c565b506080820151600482015560a0820151600582019061221d908261314c565b5060c08201516006820190612232908261314c565b5060e082015160078201556101008201516101208301516bffffffffffffffffffffffff16740100000000000000000000000000000000000000000273ffffffffffffffffffffffffffffffffffffffff90911617600882015561014082015160098201805463ffffffff9092167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000909216919091179055610160820151600a8201906122df908261314c565b505050600085815260ce6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8d1684529091529081902085905551612322908b90613266565b60405180910390208973ffffffffffffffffffffffffffffffffffffffff16857ffc790d5ce2687ea5b75f51b2fff6d34792504386d9c73160bb6bdc6ea25f5b698f8f8742338e60405161237b96959493929190613414565b60405180910390a4505050505050505050505050565b600054610100900460ff16612428576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610b6c565b6124306124fd565b6104a88161259c565b73ffffffffffffffffffffffffffffffffffffffff81166104a8576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16612594576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610b6c565b611d03612633565b600054610100900460ff1661049f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610b6c565b600054610100900460ff166126ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610b6c565b611d0333611f64565b803573ffffffffffffffffffffffffffffffffffffffff811681146126f757600080fd5b919050565b60006020828403121561270e57600080fd5b612717826126d3565b9392505050565b60006020828403121561273057600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156127ad576127ad612737565b604052919050565b600082601f8301126127c657600080fd5b813567ffffffffffffffff8111156127e0576127e0612737565b61281160207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601612766565b81815284602083860101111561282657600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561285657600080fd5b823567ffffffffffffffff81111561286d57600080fd5b612879858286016127b5565b925050612888602084016126d3565b90509250929050565b60005b838110156128ac578181015183820152602001612894565b50506000910152565b600081518084526128cd816020860160208601612891565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000825161018080602085015261291e6101a08501836128b5565b9150602085015160408501526040850151612951606086018273ffffffffffffffffffffffffffffffffffffffff169052565b5060608501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08086850301608087015261298c84836128b5565b9350608087015160a087015260a08701519150808685030160c08701526129b384836128b5565b935060c08701519150808685030160e08701526129d084836128b5565b60e0880151610100888101919091528801519094509150610120612a0b8188018473ffffffffffffffffffffffffffffffffffffffff169052565b8701519150610140612a2c878201846bffffffffffffffffffffffff169052565b8701519150610160612a458782018463ffffffff169052565b870151868503909101838701529050612a5e83826128b5565b9695505050505050565b60008060408385031215612a7b57600080fd5b82359150612888602084016126d3565b600060208284031215612a9d57600080fd5b813567ffffffffffffffff811115612ab457600080fd5b612ac0848285016127b5565b949350505050565b80356bffffffffffffffffffffffff811681146126f757600080fd5b803563ffffffff811681146126f757600080fd5b600080600080600080600060e0888a031215612b1357600080fd5b873567ffffffffffffffff80821115612b2b57600080fd5b612b378b838c016127b5565b985060208a0135915080821115612b4d57600080fd5b612b598b838c016127b5565b975060408a0135915080821115612b6f57600080fd5b612b7b8b838c016127b5565b9650612b8960608b016126d3565b9550612b9760808b01612ac8565b9450612ba560a08b01612ae4565b935060c08a0135915080821115612bbb57600080fd5b50612bc88a828b016127b5565b91505092959891949750929550565b61018081526000612bec61018083018f6128b5565b8d602084015273ffffffffffffffffffffffffffffffffffffffff8d1660408401528281036060840152612c20818d6128b5565b90508a608084015282810360a0840152612c3a818b6128b5565b905082810360c0840152612c4e818a6128b5565b90508760e0840152612c7961010084018873ffffffffffffffffffffffffffffffffffffffff169052565b6bffffffffffffffffffffffff861661012084015263ffffffff8516610140840152828103610160840152612cae81856128b5565b9f9e505050505050505050505050505050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b82811015612d36577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452612d248583516128b5565b94509285019290850190600101612cea565b5092979650505050505050565b600067ffffffffffffffff821115612d5d57612d5d612737565b5060051b60200190565b600082601f830112612d7857600080fd5b81356020612d8d612d8883612d43565b612766565b82815260059290921b84018101918181019086841115612dac57600080fd5b8286015b84811015612dec57803567ffffffffffffffff811115612dd05760008081fd5b612dde8986838b01016127b5565b845250918301918301612db0565b509695505050505050565b600082601f830112612e0857600080fd5b81356020612e18612d8883612d43565b8083825260208201915060208460051b870101935086841115612e3a57600080fd5b602086015b84811015612dec57612e50816126d3565b8352918301918301612e3f565b600082601f830112612e6e57600080fd5b81356020612e7e612d8883612d43565b8083825260208201915060208460051b870101935086841115612ea057600080fd5b602086015b84811015612dec57612eb681612ac8565b8352918301918301612ea5565b600082601f830112612ed457600080fd5b81356020612ee4612d8883612d43565b8083825260208201915060208460051b870101935086841115612f0657600080fd5b602086015b84811015612dec57612f1c81612ae4565b8352918301918301612f0b565b600080600080600080600060e0888a031215612f4457600080fd5b873567ffffffffffffffff80821115612f5c57600080fd5b612f688b838c01612d67565b985060208a0135915080821115612f7e57600080fd5b612f8a8b838c01612d67565b975060408a0135915080821115612fa057600080fd5b612fac8b838c01612d67565b965060608a0135915080821115612fc257600080fd5b612fce8b838c01612df7565b955060808a0135915080821115612fe457600080fd5b612ff08b838c01612e5d565b945060a08a013591508082111561300657600080fd5b6130128b838c01612ec3565b935060c08a013591508082111561302857600080fd5b50612bc88a828b01612d67565b60208152600061271760208301846128b5565b80151581146104a857600080fd5b6000806040838503121561306957600080fd5b823567ffffffffffffffff81111561308057600080fd5b61308c858286016127b5565b925050602083013561309d81613048565b809150509250929050565b600181811c908216806130bc57607f821691505b6020821081036130f5577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f821115613147576000816000526020600020601f850160051c810160208610156131245750805b601f850160051c820191505b8181101561314357828155600101613130565b5050505b505050565b815167ffffffffffffffff81111561316657613166612737565b61317a8161317484546130a8565b846130fb565b602080601f8311600181146131cd57600084156131975750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555613143565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561321a578886015182559484019460019091019084016131fb565b508582101561325657878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b60008251613278818460208701612891565b9190910192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff83168152604060208201526000612ac060408301846128b5565b6000602082840312156132f257600080fd5b815161271781613048565b600073ffffffffffffffffffffffffffffffffffffffff80861683528085166020840152506060604083015261333660608301846128b5565b95945050505050565b600080835461334d816130a8565b60018281168015613365576001811461337a576133a9565b60ff19841687528215158302870194506133a9565b8760005260208060002060005b858110156133a05781548a820152908401908201613387565b50505082870194505b50929695505050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361340d577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b5060010190565b60c08152600061342760c08301896128b5565b828103602084015261343981896128b5565b9050828103604084015261344d81886128b5565b905085606084015273ffffffffffffffffffffffffffffffffffffffff8516608084015282810360a084015261348381856128b5565b999850505050505050505056fea2646970667358221220ab3c73c9545274b34c177b50f087e9e09e75c42db31fdae89acc635fe89583a864736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x16 PUSH1 0x1A JUMP JUMPDEST PUSH1 0xD8 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH1 0x85 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND LT ISZERO PUSH1 0xD6 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH2 0x34C6 DUP1 PUSH2 0xE7 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1AE JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x986576FA GT PUSH2 0xEE JUMPI DUP1 PUSH4 0xC6B8AB42 GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xEC1930B0 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xEC1930B0 EQ PUSH2 0x44B JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x45E JUMPI DUP1 PUSH4 0xF660FE69 EQ PUSH2 0x471 JUMPI DUP1 PUSH4 0xFA7229EE EQ PUSH2 0x484 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xC6B8AB42 EQ PUSH2 0x3FA JUMPI DUP1 PUSH4 0xCBD57967 EQ PUSH2 0x41A JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x42D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xC030CE7B GT PUSH2 0xC8 JUMPI DUP1 PUSH4 0xC030CE7B EQ PUSH2 0x3BF JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x3D4 JUMPI DUP1 PUSH4 0xC4E1A280 EQ PUSH2 0x3E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x986576FA EQ PUSH2 0x34B JUMPI DUP1 PUSH4 0xB39B55BE EQ PUSH2 0x376 JUMPI DUP1 PUSH4 0xB4A0BDF3 EQ PUSH2 0x3A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x592D3733 GT PUSH2 0x15B JUMPI DUP1 PUSH4 0x77ABC9BD GT PUSH2 0x135 JUMPI DUP1 PUSH4 0x77ABC9BD EQ PUSH2 0x2DE JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x2F1 JUMPI DUP1 PUSH4 0x87D7F21F EQ PUSH2 0x2F9 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x30C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x592D3733 EQ PUSH2 0x2AB JUMPI DUP1 PUSH4 0x6F324967 EQ PUSH2 0x2B3 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x2D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x34496B5A GT PUSH2 0x18C JUMPI DUP1 PUSH4 0x34496B5A EQ PUSH2 0x217 JUMPI DUP1 PUSH4 0x37759B9A EQ PUSH2 0x260 JUMPI DUP1 PUSH4 0x43B62B26 EQ PUSH2 0x280 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xE32CB86 EQ PUSH2 0x1B3 JUMPI DUP1 PUSH4 0x157B1225 EQ PUSH2 0x1C8 JUMPI DUP1 PUSH4 0x1687FE8E EQ PUSH2 0x200 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C6 PUSH2 0x1C1 CALLDATASIZE PUSH1 0x4 PUSH2 0x26FC JUMP JUMPDEST PUSH2 0x497 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1EB PUSH2 0x1D6 CALLDATASIZE PUSH1 0x4 PUSH2 0x271E JUMP JUMPDEST PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x209 PUSH1 0xC9 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1F7 JUMP JUMPDEST PUSH2 0x209 PUSH2 0x225 CALLDATASIZE PUSH1 0x4 PUSH2 0x2843 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCE DUP4 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP4 SWAP1 SWAP4 AND DUP3 MSTORE SWAP2 SWAP1 SWAP3 MSTORE SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x273 PUSH2 0x26E CALLDATASIZE PUSH1 0x4 PUSH2 0x271E JUMP JUMPDEST PUSH2 0x4AB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F7 SWAP2 SWAP1 PUSH2 0x28FF JUMP JUMPDEST PUSH2 0x209 PUSH2 0x28E CALLDATASIZE PUSH1 0x4 PUSH2 0x2A68 JUMP JUMPDEST PUSH1 0xCE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xCA SLOAD PUSH2 0x209 JUMP JUMPDEST PUSH2 0x1EB PUSH2 0x2C1 CALLDATASIZE PUSH1 0x4 PUSH2 0x26FC JUMP JUMPDEST PUSH1 0xCD PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x1C6 PUSH2 0x933 JUMP JUMPDEST PUSH2 0x1C6 PUSH2 0x2EC CALLDATASIZE PUSH1 0x4 PUSH2 0x2A8B JUMP JUMPDEST PUSH2 0x965 JUMP JUMPDEST PUSH2 0x1C6 PUSH2 0xAC7 JUMP JUMPDEST PUSH2 0x1C6 PUSH2 0x307 CALLDATASIZE PUSH1 0x4 PUSH2 0x2AF8 JUMP JUMPDEST PUSH2 0xB7E JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1F7 JUMP JUMPDEST PUSH2 0x1EB PUSH2 0x359 CALLDATASIZE PUSH1 0x4 PUSH2 0x2A8B JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCB SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x389 PUSH2 0x384 CALLDATASIZE PUSH1 0x4 PUSH2 0x271E JUMP JUMPDEST PUSH2 0xBDF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F7 SWAP13 SWAP12 SWAP11 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2BD7 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x326 JUMP JUMPDEST PUSH2 0x3C7 PUSH2 0xF3D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F7 SWAP2 SWAP1 PUSH2 0x2CC1 JUMP JUMPDEST PUSH2 0x1C6 PUSH2 0x3E2 CALLDATASIZE PUSH1 0x4 PUSH2 0x26FC JUMP JUMPDEST PUSH2 0x1016 JUMP JUMPDEST PUSH2 0x1C6 PUSH2 0x3F5 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F29 JUMP JUMPDEST PUSH2 0x118D JUMP JUMPDEST PUSH2 0x40D PUSH2 0x408 CALLDATASIZE PUSH1 0x4 PUSH2 0x271E JUMP JUMPDEST PUSH2 0x1335 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F7 SWAP2 SWAP1 PUSH2 0x3035 JUMP JUMPDEST PUSH2 0x1C6 PUSH2 0x428 CALLDATASIZE PUSH1 0x4 PUSH2 0x26FC JUMP JUMPDEST PUSH2 0x13E1 JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x326 JUMP JUMPDEST PUSH2 0x1C6 PUSH2 0x459 CALLDATASIZE PUSH1 0x4 PUSH2 0x3056 JUMP JUMPDEST PUSH2 0x14D4 JUMP JUMPDEST PUSH2 0x1C6 PUSH2 0x46C CALLDATASIZE PUSH1 0x4 PUSH2 0x26FC JUMP JUMPDEST PUSH2 0x1618 JUMP JUMPDEST PUSH2 0x273 PUSH2 0x47F CALLDATASIZE PUSH1 0x4 PUSH2 0x2843 JUMP JUMPDEST PUSH2 0x16C8 JUMP JUMPDEST PUSH2 0x1C6 PUSH2 0x492 CALLDATASIZE PUSH1 0x4 PUSH2 0x26FC JUMP JUMPDEST PUSH2 0x1B82 JUMP JUMPDEST PUSH2 0x49F PUSH2 0x1C82 JUMP JUMPDEST PUSH2 0x4A8 DUP2 PUSH2 0x1D05 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x552 PUSH1 0x40 MLOAD DUP1 PUSH2 0x180 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP2 ISZERO DUP1 PUSH2 0x560 JUMPI POP PUSH1 0xC9 SLOAD DUP3 GT JUMPDEST ISZERO PUSH2 0x597 JUMPI PUSH1 0x40 MLOAD PUSH32 0xAC6C0D0100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xCC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP2 MLOAD PUSH2 0x180 DUP2 ADD SWAP1 SWAP3 MSTORE DUP1 SLOAD DUP3 SWAP1 DUP3 SWAP1 PUSH2 0x5C0 SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x5EC SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x639 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x60E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x639 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x61C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x2 DUP3 ADD SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH1 0x60 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x680 SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x6AC SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x6F9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x6CE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x6F9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x6DC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD DUP1 SLOAD PUSH2 0x71C SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x748 SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x795 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x76A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x795 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x778 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD DUP1 SLOAD PUSH2 0x7AE SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x7DA SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x827 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x7FC JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x827 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x80A JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x7 DUP3 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x8 DUP3 ADD SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x40 DUP4 ADD MSTORE PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x9 DUP3 ADD SLOAD PUSH4 0xFFFFFFFF AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA DUP3 ADD DUP1 SLOAD PUSH1 0xA0 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x8AA SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x8D6 SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x923 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x8F8 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x923 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x906 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x96C553EB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x9A3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x15 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x6164645570646174655479706528737472696E67290000000000000000000000 DUP2 MSTORE POP PUSH2 0x1E27 JUMP JUMPDEST DUP1 MLOAD ISZERO DUP1 PUSH2 0x9B2 JUMPI POP PUSH1 0x40 DUP2 MLOAD GT JUMPDEST ISZERO PUSH2 0x9E9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x920AF76C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP3 ADD KECCAK256 PUSH2 0x9F9 DUP2 PUSH2 0x1F00 JUMP JUMPDEST ISZERO PUSH2 0xA30 JUMPI PUSH1 0x40 MLOAD PUSH32 0x40DF35CA00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0xCA DUP1 SLOAD SWAP2 DUP3 ADD DUP2 SSTORE SWAP1 SWAP2 MSTORE PUSH32 0x42D72674974F694B5F5159593243114D38A5C39C89D6B62FEE061FF523240EE1 ADD PUSH2 0xA84 DUP4 DUP3 PUSH2 0x314C JUMP JUMPDEST POP DUP2 PUSH1 0x40 MLOAD PUSH2 0xA93 SWAP2 SWAP1 PUSH2 0x3266 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 SWAP1 PUSH32 0x7D686AF6E6B7A2E3D03F5C81F05BBA6A5B3686ACA218F92F96B84C7D59AABAF SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x65 SLOAD CALLER SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 EQ PUSH2 0xB75 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C6532537465703A2063616C6C6572206973206E6F742074686520 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E6577206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4A8 DUP2 PUSH2 0x1F64 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xBC7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x79D1E58F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBD6 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x1F95 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xCC PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP2 SWAP1 PUSH2 0xBFA SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xC26 SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xC73 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xC48 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xC73 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xC56 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP PUSH1 0x1 DUP4 ADD SLOAD PUSH1 0x2 DUP5 ADD SLOAD PUSH1 0x3 DUP6 ADD DUP1 SLOAD SWAP5 SWAP6 SWAP3 SWAP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP4 POP SWAP1 PUSH2 0xCAF SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xCDB SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xD28 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xCFD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xD28 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xD0B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x4 ADD SLOAD SWAP1 DUP1 PUSH1 0x5 ADD DUP1 SLOAD PUSH2 0xD43 SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xD6F SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xDBC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xD91 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xDBC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xD9F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x6 ADD DUP1 SLOAD PUSH2 0xDD1 SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xDFD SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xE4A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xE1F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xE4A JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xE2D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP PUSH1 0x7 DUP4 ADD SLOAD PUSH1 0x8 DUP5 ADD SLOAD PUSH1 0x9 DUP6 ADD SLOAD PUSH1 0xA DUP7 ADD DUP1 SLOAD SWAP6 SWAP7 SWAP4 SWAP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND SWAP6 POP PUSH21 0x10000000000000000000000000000000000000000 SWAP1 SWAP4 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP4 PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND SWAP3 PUSH2 0xEBA SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xEE6 SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xF33 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xF08 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xF33 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xF16 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP13 JUMP JUMPDEST PUSH1 0x60 PUSH1 0xCA DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 SWAP1 JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0x100D JUMPI DUP4 DUP3 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP1 SLOAD PUSH2 0xF80 SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xFAC SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xFF9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xFCE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xFF9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xFDC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0xF61 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x1036 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x1050 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1050 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x10DC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x647920696E697469616C697A6564000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xB6C JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x111C JUMPI PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1125 DUP3 PUSH2 0x2391 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1189 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x11D6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x79D1E58F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP7 MLOAD DUP1 ISZERO DUP1 PUSH2 0x11E6 JUMPI POP DUP7 MLOAD DUP2 EQ ISZERO JUMPDEST DUP1 PUSH2 0x11F2 JUMPI POP DUP6 MLOAD DUP2 EQ ISZERO JUMPDEST DUP1 PUSH2 0x11FE JUMPI POP DUP5 MLOAD DUP2 EQ ISZERO JUMPDEST DUP1 PUSH2 0x120A JUMPI POP DUP4 MLOAD DUP2 EQ ISZERO JUMPDEST DUP1 PUSH2 0x1216 JUMPI POP DUP3 MLOAD DUP2 EQ ISZERO JUMPDEST DUP1 PUSH2 0x1222 JUMPI POP DUP2 MLOAD DUP2 EQ ISZERO JUMPDEST ISZERO PUSH2 0x1259 JUMPI PUSH1 0x40 MLOAD PUSH32 0xA24A13A600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x132A JUMPI PUSH2 0x1322 DUP10 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1279 JUMPI PUSH2 0x1279 PUSH2 0x3282 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP10 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1293 JUMPI PUSH2 0x1293 PUSH2 0x3282 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP10 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x12AD JUMPI PUSH2 0x12AD PUSH2 0x3282 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP10 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x12C7 JUMPI PUSH2 0x12C7 PUSH2 0x3282 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP10 DUP7 DUP2 MLOAD DUP2 LT PUSH2 0x12E1 JUMPI PUSH2 0x12E1 PUSH2 0x3282 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP10 DUP8 DUP2 MLOAD DUP2 LT PUSH2 0x12FB JUMPI PUSH2 0x12FB PUSH2 0x3282 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP10 DUP9 DUP2 MLOAD DUP2 LT PUSH2 0x1315 JUMPI PUSH2 0x1315 PUSH2 0x3282 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x1F95 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x125C JUMP JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xCA DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x1345 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 SLOAD PUSH2 0x1360 SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x138C SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x13D9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x13AE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x13D9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x13BC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0x141F PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1F DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x72656D6F7665417574686F72697A656453656E64657228616464726573732900 DUP2 MSTORE POP PUSH2 0x1E27 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x147E JUMPI PUSH1 0x40 MLOAD PUSH32 0x79D1E58F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xCD PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD PUSH32 0x98F9958A855D78EAE670154A7D047D26968849962C3204C2B12C2228634F4FF8 SWAP2 SWAP1 LOG2 POP JUMP JUMPDEST PUSH2 0x1512 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x7365745570646174655479706541637469766528737472696E672C626F6F6C29 DUP2 MSTORE POP PUSH2 0x1E27 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x20 DUP4 ADD KECCAK256 PUSH2 0x1522 DUP2 PUSH2 0x1F00 JUMP JUMPDEST PUSH2 0x1558 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6EBB186D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP3 ISZERO ISZERO DUP2 ISZERO ISZERO SUB PUSH2 0x15A7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6EBBA15200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP6 ISZERO ISZERO OR SWAP1 SSTORE MLOAD PUSH2 0x15CF SWAP1 DUP6 SWAP1 PUSH2 0x3266 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 DUP4 ISZERO ISZERO DUP4 MSTORE DUP6 ISZERO ISZERO PUSH1 0x20 DUP5 ADD MSTORE SWAP2 PUSH32 0x33843B38D9DEFFBE0817AEBCD9E744876DBF296FB42CABACA9B24160AB70811E SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH2 0x1620 PUSH2 0x1C82 JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP1 SWAP2 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0x1683 PUSH1 0x33 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH2 0x176F PUSH1 0x40 MLOAD DUP1 PUSH2 0x180 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP3 MLOAD PUSH1 0x20 DUP1 DUP6 ADD SWAP2 SWAP1 SWAP2 KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xCE DUP4 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND DUP4 MSTORE SWAP1 SWAP4 MSTORE SWAP2 DUP3 KECCAK256 SLOAD SWAP1 SWAP2 DUP2 SWAP1 SUB PUSH2 0x17E3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x1CA36FE200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xCC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP2 MLOAD PUSH2 0x180 DUP2 ADD SWAP1 SWAP3 MSTORE DUP1 SLOAD DUP3 SWAP1 DUP3 SWAP1 PUSH2 0x180C SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1838 SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1885 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x185A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1885 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1868 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x2 DUP3 ADD SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH1 0x60 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x18CC SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x18F8 SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1945 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x191A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1945 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1928 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD DUP1 SLOAD PUSH2 0x1968 SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1994 SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x19E1 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x19B6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x19E1 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x19C4 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD DUP1 SLOAD PUSH2 0x19FA SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1A26 SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1A73 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1A48 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1A73 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1A56 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x7 DUP3 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x8 DUP3 ADD SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x40 DUP4 ADD MSTORE PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x9 DUP3 ADD SLOAD PUSH4 0xFFFFFFFF AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA DUP3 ADD DUP1 SLOAD PUSH1 0xA0 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x1AF6 SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1B22 SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1B6F JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1B44 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1B6F JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1B52 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1BC0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1C DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x616464417574686F72697A656453656E64657228616464726573732900000000 DUP2 MSTORE POP PUSH2 0x1E27 JUMP JUMPDEST PUSH2 0x1BC9 DUP2 PUSH2 0x2439 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x1C29 JUMPI PUSH1 0x40 MLOAD PUSH32 0x16FC747100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xCD PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE MLOAD PUSH32 0xD06D2241A59677D082959F22E5A5212C57A9E890949A9D0F2426EFD49F8C5D7F SWAP2 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x1D03 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xB6C JUMP JUMPDEST JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x1DA8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C696420616365737320636F6E74726F6C206D616E61676572206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xB6C JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 SWAP1 SWAP3 AND DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH32 0x66FD58E82F7B31A2A5C30E0888F3093EFE4E111B00CD2B0C31FE014601293AA0 SWAP2 ADD PUSH2 0x1180 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0x40 MLOAD PUSH32 0x18C5E8AB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x1E80 SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x32B1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E9D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1EC1 SWAP2 SWAP1 PUSH2 0x32E0 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x1189 JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH32 0x4A3FA29300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB6C SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x32FD JUMP JUMPDEST PUSH1 0xCA SLOAD PUSH1 0x0 SWAP1 DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1F5A JUMPI DUP4 PUSH1 0xCA DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1F24 JUMPI PUSH2 0x1F24 PUSH2 0x3282 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x40 MLOAD PUSH2 0x1F3B SWAP2 SWAP1 PUSH2 0x333F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SUB PUSH2 0x1F52 JUMPI POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x1F08 JUMP JUMPDEST POP PUSH1 0x0 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND SWAP1 SSTORE PUSH2 0x4A8 DUP2 PUSH2 0x2486 JUMP JUMPDEST PUSH2 0x1F9E DUP5 PUSH2 0x2439 JUMP JUMPDEST DUP5 MLOAD PUSH1 0x20 DUP1 DUP8 ADD SWAP2 SWAP1 SWAP2 KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xCB SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1FF2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x686D1D3800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xC9 PUSH1 0x0 DUP2 SLOAD PUSH2 0x2003 SWAP1 PUSH2 0x33B5 JUMP JUMPDEST SWAP2 DUP3 SWAP1 SSTORE POP PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xCE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP12 AND DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SLOAD DUP1 DUP5 MSTORE PUSH1 0xCC SWAP1 SWAP3 MSTORE DUP3 KECCAK256 PUSH1 0x5 ADD DUP1 SLOAD SWAP4 SWAP5 POP SWAP1 SWAP3 PUSH2 0x2055 SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2081 SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x20CE JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x20A3 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x20CE JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x20B1 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH2 0x180 ADD PUSH1 0x40 MSTORE DUP1 DUP14 DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP12 DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP13 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD TIMESTAMP DUP2 MSTORE PUSH1 0x20 ADD CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP10 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP8 DUP2 MSTORE POP SWAP1 POP DUP1 PUSH1 0xCC PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SWAP1 DUP2 PUSH2 0x2194 SWAP2 SWAP1 PUSH2 0x314C JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x1 DUP3 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x2 DUP3 ADD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x60 DUP3 ADD MLOAD PUSH1 0x3 DUP3 ADD SWAP1 PUSH2 0x21FE SWAP1 DUP3 PUSH2 0x314C JUMP JUMPDEST POP PUSH1 0x80 DUP3 ADD MLOAD PUSH1 0x4 DUP3 ADD SSTORE PUSH1 0xA0 DUP3 ADD MLOAD PUSH1 0x5 DUP3 ADD SWAP1 PUSH2 0x221D SWAP1 DUP3 PUSH2 0x314C JUMP JUMPDEST POP PUSH1 0xC0 DUP3 ADD MLOAD PUSH1 0x6 DUP3 ADD SWAP1 PUSH2 0x2232 SWAP1 DUP3 PUSH2 0x314C JUMP JUMPDEST POP PUSH1 0xE0 DUP3 ADD MLOAD PUSH1 0x7 DUP3 ADD SSTORE PUSH2 0x100 DUP3 ADD MLOAD PUSH2 0x120 DUP4 ADD MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND OR PUSH1 0x8 DUP3 ADD SSTORE PUSH2 0x140 DUP3 ADD MLOAD PUSH1 0x9 DUP3 ADD DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x160 DUP3 ADD MLOAD PUSH1 0xA DUP3 ADD SWAP1 PUSH2 0x22DF SWAP1 DUP3 PUSH2 0x314C JUMP JUMPDEST POP POP POP PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0xCE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP14 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 DUP2 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE MLOAD PUSH2 0x2322 SWAP1 DUP12 SWAP1 PUSH2 0x3266 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH32 0xFC790D5CE2687EA5B75F51B2FFF6D34792504386D9C73160BB6BDC6EA25F5B69 DUP16 DUP16 DUP8 TIMESTAMP CALLER DUP15 PUSH1 0x40 MLOAD PUSH2 0x237B SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3414 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2428 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xB6C JUMP JUMPDEST PUSH2 0x2430 PUSH2 0x24FD JUMP JUMPDEST PUSH2 0x4A8 DUP2 PUSH2 0x259C JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x4A8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8579BEFE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2594 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xB6C JUMP JUMPDEST PUSH2 0x1D03 PUSH2 0x2633 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x49F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xB6C JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x26CA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xB6C JUMP JUMPDEST PUSH2 0x1D03 CALLER PUSH2 0x1F64 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x26F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x270E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2717 DUP3 PUSH2 0x26D3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2730 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x27AD JUMPI PUSH2 0x27AD PUSH2 0x2737 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x27C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x27E0 JUMPI PUSH2 0x27E0 PUSH2 0x2737 JUMP JUMPDEST PUSH2 0x2811 PUSH1 0x20 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 PUSH1 0x1F DUP5 ADD AND ADD PUSH2 0x2766 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x2826 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2856 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x286D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2879 DUP6 DUP3 DUP7 ADD PUSH2 0x27B5 JUMP JUMPDEST SWAP3 POP POP PUSH2 0x2888 PUSH1 0x20 DUP5 ADD PUSH2 0x26D3 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x28AC JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2894 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x28CD DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x2891 JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD PUSH2 0x180 DUP1 PUSH1 0x20 DUP6 ADD MSTORE PUSH2 0x291E PUSH2 0x1A0 DUP6 ADD DUP4 PUSH2 0x28B5 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP6 ADD MLOAD PUSH1 0x40 DUP6 ADD MSTORE PUSH1 0x40 DUP6 ADD MLOAD PUSH2 0x2951 PUSH1 0x60 DUP7 ADD DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH1 0x60 DUP6 ADD MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP1 DUP7 DUP6 SUB ADD PUSH1 0x80 DUP8 ADD MSTORE PUSH2 0x298C DUP5 DUP4 PUSH2 0x28B5 JUMP JUMPDEST SWAP4 POP PUSH1 0x80 DUP8 ADD MLOAD PUSH1 0xA0 DUP8 ADD MSTORE PUSH1 0xA0 DUP8 ADD MLOAD SWAP2 POP DUP1 DUP7 DUP6 SUB ADD PUSH1 0xC0 DUP8 ADD MSTORE PUSH2 0x29B3 DUP5 DUP4 PUSH2 0x28B5 JUMP JUMPDEST SWAP4 POP PUSH1 0xC0 DUP8 ADD MLOAD SWAP2 POP DUP1 DUP7 DUP6 SUB ADD PUSH1 0xE0 DUP8 ADD MSTORE PUSH2 0x29D0 DUP5 DUP4 PUSH2 0x28B5 JUMP JUMPDEST PUSH1 0xE0 DUP9 ADD MLOAD PUSH2 0x100 DUP9 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP9 ADD MLOAD SWAP1 SWAP5 POP SWAP2 POP PUSH2 0x120 PUSH2 0x2A0B DUP2 DUP9 ADD DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 MSTORE JUMP JUMPDEST DUP8 ADD MLOAD SWAP2 POP PUSH2 0x140 PUSH2 0x2A2C DUP8 DUP3 ADD DUP5 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 MSTORE JUMP JUMPDEST DUP8 ADD MLOAD SWAP2 POP PUSH2 0x160 PUSH2 0x2A45 DUP8 DUP3 ADD DUP5 PUSH4 0xFFFFFFFF AND SWAP1 MSTORE JUMP JUMPDEST DUP8 ADD MLOAD DUP7 DUP6 SUB SWAP1 SWAP2 ADD DUP4 DUP8 ADD MSTORE SWAP1 POP PUSH2 0x2A5E DUP4 DUP3 PUSH2 0x28B5 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2A7B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x2888 PUSH1 0x20 DUP5 ADD PUSH2 0x26D3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A9D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2AB4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2AC0 DUP5 DUP3 DUP6 ADD PUSH2 0x27B5 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x26F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x26F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x2B13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2B2B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2B37 DUP12 DUP4 DUP13 ADD PUSH2 0x27B5 JUMP JUMPDEST SWAP9 POP PUSH1 0x20 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2B4D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2B59 DUP12 DUP4 DUP13 ADD PUSH2 0x27B5 JUMP JUMPDEST SWAP8 POP PUSH1 0x40 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2B6F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2B7B DUP12 DUP4 DUP13 ADD PUSH2 0x27B5 JUMP JUMPDEST SWAP7 POP PUSH2 0x2B89 PUSH1 0x60 DUP12 ADD PUSH2 0x26D3 JUMP JUMPDEST SWAP6 POP PUSH2 0x2B97 PUSH1 0x80 DUP12 ADD PUSH2 0x2AC8 JUMP JUMPDEST SWAP5 POP PUSH2 0x2BA5 PUSH1 0xA0 DUP12 ADD PUSH2 0x2AE4 JUMP JUMPDEST SWAP4 POP PUSH1 0xC0 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2BBB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BC8 DUP11 DUP3 DUP12 ADD PUSH2 0x27B5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH2 0x180 DUP2 MSTORE PUSH1 0x0 PUSH2 0x2BEC PUSH2 0x180 DUP4 ADD DUP16 PUSH2 0x28B5 JUMP JUMPDEST DUP14 PUSH1 0x20 DUP5 ADD MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP14 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2C20 DUP2 DUP14 PUSH2 0x28B5 JUMP JUMPDEST SWAP1 POP DUP11 PUSH1 0x80 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x2C3A DUP2 DUP12 PUSH2 0x28B5 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0xC0 DUP5 ADD MSTORE PUSH2 0x2C4E DUP2 DUP11 PUSH2 0x28B5 JUMP JUMPDEST SWAP1 POP DUP8 PUSH1 0xE0 DUP5 ADD MSTORE PUSH2 0x2C79 PUSH2 0x100 DUP5 ADD DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 MSTORE JUMP JUMPDEST PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP7 AND PUSH2 0x120 DUP5 ADD MSTORE PUSH4 0xFFFFFFFF DUP6 AND PUSH2 0x140 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH2 0x160 DUP5 ADD MSTORE PUSH2 0x2CAE DUP2 DUP6 PUSH2 0x28B5 JUMP JUMPDEST SWAP16 SWAP15 POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 ADD PUSH1 0x20 DUP5 MSTORE DUP1 DUP6 MLOAD DUP1 DUP4 MSTORE PUSH1 0x40 DUP7 ADD SWAP2 POP PUSH1 0x40 DUP2 PUSH1 0x5 SHL DUP8 ADD ADD SWAP3 POP PUSH1 0x20 DUP8 ADD PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x2D36 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 DUP9 DUP7 SUB ADD DUP5 MSTORE PUSH2 0x2D24 DUP6 DUP4 MLOAD PUSH2 0x28B5 JUMP JUMPDEST SWAP5 POP SWAP3 DUP6 ADD SWAP3 SWAP1 DUP6 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2CEA JUMP JUMPDEST POP SWAP3 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2D5D JUMPI PUSH2 0x2D5D PUSH2 0x2737 JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2D78 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x2D8D PUSH2 0x2D88 DUP4 PUSH2 0x2D43 JUMP JUMPDEST PUSH2 0x2766 JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 SWAP1 SWAP3 SHL DUP5 ADD DUP2 ADD SWAP2 DUP2 DUP2 ADD SWAP1 DUP7 DUP5 GT ISZERO PUSH2 0x2DAC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x2DEC JUMPI DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2DD0 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x2DDE DUP10 DUP7 DUP4 DUP12 ADD ADD PUSH2 0x27B5 JUMP JUMPDEST DUP5 MSTORE POP SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x2DB0 JUMP JUMPDEST POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2E08 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x2E18 PUSH2 0x2D88 DUP4 PUSH2 0x2D43 JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP5 PUSH1 0x5 SHL DUP8 ADD ADD SWAP4 POP DUP7 DUP5 GT ISZERO PUSH2 0x2E3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x2DEC JUMPI PUSH2 0x2E50 DUP2 PUSH2 0x26D3 JUMP JUMPDEST DUP4 MSTORE SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x2E3F JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2E6E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x2E7E PUSH2 0x2D88 DUP4 PUSH2 0x2D43 JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP5 PUSH1 0x5 SHL DUP8 ADD ADD SWAP4 POP DUP7 DUP5 GT ISZERO PUSH2 0x2EA0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x2DEC JUMPI PUSH2 0x2EB6 DUP2 PUSH2 0x2AC8 JUMP JUMPDEST DUP4 MSTORE SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x2EA5 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2ED4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x2EE4 PUSH2 0x2D88 DUP4 PUSH2 0x2D43 JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP5 PUSH1 0x5 SHL DUP8 ADD ADD SWAP4 POP DUP7 DUP5 GT ISZERO PUSH2 0x2F06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x2DEC JUMPI PUSH2 0x2F1C DUP2 PUSH2 0x2AE4 JUMP JUMPDEST DUP4 MSTORE SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x2F0B JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x2F44 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2F5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2F68 DUP12 DUP4 DUP13 ADD PUSH2 0x2D67 JUMP JUMPDEST SWAP9 POP PUSH1 0x20 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2F7E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2F8A DUP12 DUP4 DUP13 ADD PUSH2 0x2D67 JUMP JUMPDEST SWAP8 POP PUSH1 0x40 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2FA0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2FAC DUP12 DUP4 DUP13 ADD PUSH2 0x2D67 JUMP JUMPDEST SWAP7 POP PUSH1 0x60 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2FC2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2FCE DUP12 DUP4 DUP13 ADD PUSH2 0x2DF7 JUMP JUMPDEST SWAP6 POP PUSH1 0x80 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2FE4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2FF0 DUP12 DUP4 DUP13 ADD PUSH2 0x2E5D JUMP JUMPDEST SWAP5 POP PUSH1 0xA0 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x3006 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3012 DUP12 DUP4 DUP13 ADD PUSH2 0x2EC3 JUMP JUMPDEST SWAP4 POP PUSH1 0xC0 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x3028 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BC8 DUP11 DUP3 DUP12 ADD PUSH2 0x2D67 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x2717 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x28B5 JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x4A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3069 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3080 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x308C DUP6 DUP3 DUP7 ADD PUSH2 0x27B5 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x309D DUP2 PUSH2 0x3048 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x30BC JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x30F5 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x3147 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x3124 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x3143 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x3130 JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3166 JUMPI PUSH2 0x3166 PUSH2 0x2737 JUMP JUMPDEST PUSH2 0x317A DUP2 PUSH2 0x3174 DUP5 SLOAD PUSH2 0x30A8 JUMP JUMPDEST DUP5 PUSH2 0x30FB JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x31CD JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x3197 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x3143 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x321A JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x31FB JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x3256 JUMPI DUP8 DUP6 ADD MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x3278 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x2891 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2AC0 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x28B5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x32F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x2717 DUP2 PUSH2 0x3048 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP7 AND DUP4 MSTORE DUP1 DUP6 AND PUSH1 0x20 DUP5 ADD MSTORE POP PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x3336 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x28B5 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 SLOAD PUSH2 0x334D DUP2 PUSH2 0x30A8 JUMP JUMPDEST PUSH1 0x1 DUP3 DUP2 AND DUP1 ISZERO PUSH2 0x3365 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x337A JUMPI PUSH2 0x33A9 JUMP JUMPDEST PUSH1 0xFF NOT DUP5 AND DUP8 MSTORE DUP3 ISZERO ISZERO DUP4 MUL DUP8 ADD SWAP5 POP PUSH2 0x33A9 JUMP JUMPDEST DUP8 PUSH1 0x0 MSTORE PUSH1 0x20 DUP1 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x33A0 JUMPI DUP2 SLOAD DUP11 DUP3 ADD MSTORE SWAP1 DUP5 ADD SWAP1 DUP3 ADD PUSH2 0x3387 JUMP JUMPDEST POP POP POP DUP3 DUP8 ADD SWAP5 POP JUMPDEST POP SWAP3 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x340D JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0xC0 DUP2 MSTORE PUSH1 0x0 PUSH2 0x3427 PUSH1 0xC0 DUP4 ADD DUP10 PUSH2 0x28B5 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x3439 DUP2 DUP10 PUSH2 0x28B5 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x344D DUP2 DUP9 PUSH2 0x28B5 JUMP JUMPDEST SWAP1 POP DUP6 PUSH1 0x60 DUP5 ADD MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x80 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x3483 DUP2 DUP6 PUSH2 0x28B5 JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAB EXTCODECOPY PUSH20 0xC9545274B34C177B50F087E9E09E75C42DB31FDA 0xE8 SWAP11 0xCC PUSH4 0x5FE89583 0xA8 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"456:15504:69:-:0;;;1969:53;;;;;;;;;-1:-1:-1;1993:22:69;:20;:22::i;:::-;456:15504;;5928:279:27;5996:13;;;;;;;5995:14;5987:66;;;;-1:-1:-1;;;5987:66:27;;216:2:97;5987:66:27;;;198:21:97;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:97;;;338:37;392:19;;5987:66:27;;;;;;;;6067:12;;6082:15;6067:12;;;:30;6063:138;;;6113:12;:30;;-1:-1:-1;;6113:30:27;6128:15;6113:30;;;;;;6162:28;;564:36:97;;;6162:28:27;;552:2:97;537:18;6162:28:27;;;;;;;6063:138;5928:279::o;422:184:97:-;456:15504:69;;;;;;"},"deployedBytecode":{"functionDebugData":{"@__AccessControlled_init_13754":{"entryPoint":9105,"id":13754,"parameterSlots":1,"returnSlots":0},"@__AccessControlled_init_unchained_13766":{"entryPoint":9628,"id":13766,"parameterSlots":1,"returnSlots":0},"@__Ownable2Step_init_5859":{"entryPoint":9469,"id":5859,"parameterSlots":0,"returnSlots":0},"@__Ownable_init_unchained_5985":{"entryPoint":9779,"id":5985,"parameterSlots":0,"returnSlots":0},"@_checkAccessAllowed_13857":{"entryPoint":7719,"id":13857,"parameterSlots":1,"returnSlots":0},"@_checkOwner_6016":{"entryPoint":7298,"id":6016,"parameterSlots":0,"returnSlots":0},"@_msgSender_6559":{"entryPoint":null,"id":6559,"parameterSlots":0,"returnSlots":1},"@_publishUpdate_18196":{"entryPoint":8085,"id":18196,"parameterSlots":7,"returnSlots":0},"@_setAccessControlManager_13827":{"entryPoint":7429,"id":13827,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_5919":{"entryPoint":8036,"id":5919,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_6073":{"entryPoint":9350,"id":6073,"parameterSlots":1,"returnSlots":0},"@_updateTypeExists_18306":{"entryPoint":7936,"id":18306,"parameterSlots":1,"returnSlots":1},"@acceptOwnership_5941":{"entryPoint":2759,"id":5941,"parameterSlots":0,"returnSlots":0},"@accessControlManager_13789":{"entryPoint":null,"id":13789,"parameterSlots":0,"returnSlots":1},"@activeUpdateTypes_17640":{"entryPoint":null,"id":17640,"parameterSlots":0,"returnSlots":0},"@addAuthorizedSender_17732":{"entryPoint":7042,"id":17732,"parameterSlots":1,"returnSlots":0},"@addUpdateType_17825":{"entryPoint":2405,"id":17825,"parameterSlots":1,"returnSlots":0},"@allUpdateTypesLength_18206":{"entryPoint":null,"id":18206,"parameterSlots":0,"returnSlots":1},"@allUpdateTypes_17635":{"entryPoint":4917,"id":17635,"parameterSlots":0,"returnSlots":0},"@authorizedSenders_17651":{"entryPoint":null,"id":17651,"parameterSlots":0,"returnSlots":0},"@ensureNonzeroAddress_10945":{"entryPoint":9273,"id":10945,"parameterSlots":1,"returnSlots":0},"@getActiveUpdateTypes_18254":{"entryPoint":null,"id":18254,"parameterSlots":1,"returnSlots":1},"@getAllUpdateTypes_18264":{"entryPoint":3901,"id":18264,"parameterSlots":0,"returnSlots":1},"@getLatestUpdateByTypeAndMarket_18061":{"entryPoint":5832,"id":18061,"parameterSlots":2,"returnSlots":1},"@getLatestUpdateIdByTypeAndMarket_18232":{"entryPoint":null,"id":18232,"parameterSlots":2,"returnSlots":1},"@getUpdateById_18087":{"entryPoint":1195,"id":18087,"parameterSlots":1,"returnSlots":1},"@initialize_17699":{"entryPoint":4118,"id":17699,"parameterSlots":1,"returnSlots":0},"@isContract_6266":{"entryPoint":null,"id":6266,"parameterSlots":1,"returnSlots":1},"@latestUpdateIdByMarketAndType_17658":{"entryPoint":null,"id":17658,"parameterSlots":0,"returnSlots":0},"@owner_6002":{"entryPoint":null,"id":6002,"parameterSlots":0,"returnSlots":1},"@pendingOwner_5882":{"entryPoint":null,"id":5882,"parameterSlots":0,"returnSlots":1},"@publishBulkRiskParameterUpdates_18020":{"entryPoint":4493,"id":18020,"parameterSlots":7,"returnSlots":0},"@publishRiskParameterUpdate_17913":{"entryPoint":2942,"id":17913,"parameterSlots":7,"returnSlots":0},"@removeAuthorizedSender_17761":{"entryPoint":5089,"id":17761,"parameterSlots":1,"returnSlots":0},"@renounceOwnership_18315":{"entryPoint":2355,"id":18315,"parameterSlots":0,"returnSlots":0},"@setAccessControlManager_13779":{"entryPoint":1175,"id":13779,"parameterSlots":1,"returnSlots":0},"@setUpdateTypeActive_17882":{"entryPoint":5332,"id":17882,"parameterSlots":2,"returnSlots":0},"@transferOwnership_5902":{"entryPoint":5656,"id":5902,"parameterSlots":1,"returnSlots":0},"@updateCounter_17631":{"entryPoint":null,"id":17631,"parameterSlots":0,"returnSlots":0},"@updatesById_17646":{"entryPoint":3039,"id":17646,"parameterSlots":0,"returnSlots":0},"abi_decode_address":{"entryPoint":9939,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_array_address_dyn":{"entryPoint":11767,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_array_string_dyn":{"entryPoint":11623,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_array_uint32_dyn":{"entryPoint":11971,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_array_uint96_dyn":{"entryPoint":11869,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_string":{"entryPoint":10165,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":9980,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_array$_t_string_memory_ptr_$dyn_memory_ptrt_array$_t_bytes_memory_ptr_$dyn_memory_ptrt_array$_t_string_memory_ptr_$dyn_memory_ptrt_array$_t_address_$dyn_memory_ptrt_array$_t_uint96_$dyn_memory_ptrt_array$_t_uint32_$dyn_memory_ptrt_array$_t_bytes_memory_ptr_$dyn_memory_ptr":{"entryPoint":12073,"id":null,"parameterSlots":2,"returnSlots":7},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":13024,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32":{"entryPoint":10014,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_address":{"entryPoint":10856,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_string_memory_ptr":{"entryPoint":10891,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptrt_address":{"entryPoint":10307,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_string_memory_ptrt_bool":{"entryPoint":12374,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_string_memory_ptrt_bytes_memory_ptrt_string_memory_ptrt_addresst_uint96t_uint32t_bytes_memory_ptr":{"entryPoint":11000,"id":null,"parameterSlots":2,"returnSlots":7},"abi_decode_tuple_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_uint32":{"entryPoint":10980,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint96":{"entryPoint":10952,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_address":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_string":{"entryPoint":10421,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_storage_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":13119,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":12902,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":13053,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":12977,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_array$_t_string_memory_ptr_$dyn_memory_ptr__to_t_array$_t_string_memory_ptr_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":11457,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool_t_bool__to_t_bool_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$13903__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":12341,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr_t_uint256_t_address_t_bytes_memory_ptr__to_t_string_memory_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr_t_uint256_t_address_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":13332,"id":null,"parameterSlots":7,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr_t_uint256_t_address_t_string_memory_ptr_t_bytes32_t_bytes_memory_ptr_t_bytes_memory_ptr_t_uint256_t_address_t_uint96_t_uint32_t_bytes_memory_ptr__to_t_string_memory_ptr_t_uint256_t_address_t_string_memory_ptr_t_bytes32_t_bytes_memory_ptr_t_bytes_memory_ptr_t_uint256_t_address_t_uint96_t_uint32_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11223,"id":null,"parameterSlots":13,"returnSlots":1},"abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_struct$_RiskParameterUpdate_$16568_memory_ptr__to_t_struct$_RiskParameterUpdate_$16568_memory_ptr__fromStack_reversed":{"entryPoint":10495,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_uint32":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_uint96":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"allocate_memory":{"entryPoint":10086,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_array_string_dyn":{"entryPoint":11587,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":12539,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":12620,"id":null,"parameterSlots":2,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":10385,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":12456,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"increment_t_uint256":{"entryPoint":13237,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x32":{"entryPoint":12930,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":10039,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_bool":{"entryPoint":12360,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:26968:97","nodeType":"YulBlock","src":"0:26968:97","statements":[{"nativeSrc":"6:3:97","nodeType":"YulBlock","src":"6:3:97","statements":[]},{"body":{"nativeSrc":"63:147:97","nodeType":"YulBlock","src":"63:147:97","statements":[{"nativeSrc":"73:29:97","nodeType":"YulAssignment","src":"73:29:97","value":{"arguments":[{"name":"offset","nativeSrc":"95:6:97","nodeType":"YulIdentifier","src":"95:6:97"}],"functionName":{"name":"calldataload","nativeSrc":"82:12:97","nodeType":"YulIdentifier","src":"82:12:97"},"nativeSrc":"82:20:97","nodeType":"YulFunctionCall","src":"82:20:97"},"variableNames":[{"name":"value","nativeSrc":"73:5:97","nodeType":"YulIdentifier","src":"73:5:97"}]},{"body":{"nativeSrc":"188:16:97","nodeType":"YulBlock","src":"188:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"197:1:97","nodeType":"YulLiteral","src":"197:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"200:1:97","nodeType":"YulLiteral","src":"200:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"190:6:97","nodeType":"YulIdentifier","src":"190:6:97"},"nativeSrc":"190:12:97","nodeType":"YulFunctionCall","src":"190:12:97"},"nativeSrc":"190:12:97","nodeType":"YulExpressionStatement","src":"190:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"124:5:97","nodeType":"YulIdentifier","src":"124:5:97"},{"arguments":[{"name":"value","nativeSrc":"135:5:97","nodeType":"YulIdentifier","src":"135:5:97"},{"kind":"number","nativeSrc":"142:42:97","nodeType":"YulLiteral","src":"142:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"131:3:97","nodeType":"YulIdentifier","src":"131:3:97"},"nativeSrc":"131:54:97","nodeType":"YulFunctionCall","src":"131:54:97"}],"functionName":{"name":"eq","nativeSrc":"121:2:97","nodeType":"YulIdentifier","src":"121:2:97"},"nativeSrc":"121:65:97","nodeType":"YulFunctionCall","src":"121:65:97"}],"functionName":{"name":"iszero","nativeSrc":"114:6:97","nodeType":"YulIdentifier","src":"114:6:97"},"nativeSrc":"114:73:97","nodeType":"YulFunctionCall","src":"114:73:97"},"nativeSrc":"111:93:97","nodeType":"YulIf","src":"111:93:97"}]},"name":"abi_decode_address","nativeSrc":"14:196:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"42:6:97","nodeType":"YulTypedName","src":"42:6:97","type":""}],"returnVariables":[{"name":"value","nativeSrc":"53:5:97","nodeType":"YulTypedName","src":"53:5:97","type":""}],"src":"14:196:97"},{"body":{"nativeSrc":"285:116:97","nodeType":"YulBlock","src":"285:116:97","statements":[{"body":{"nativeSrc":"331:16:97","nodeType":"YulBlock","src":"331:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"340:1:97","nodeType":"YulLiteral","src":"340:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"343:1:97","nodeType":"YulLiteral","src":"343:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"333:6:97","nodeType":"YulIdentifier","src":"333:6:97"},"nativeSrc":"333:12:97","nodeType":"YulFunctionCall","src":"333:12:97"},"nativeSrc":"333:12:97","nodeType":"YulExpressionStatement","src":"333:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"306:7:97","nodeType":"YulIdentifier","src":"306:7:97"},{"name":"headStart","nativeSrc":"315:9:97","nodeType":"YulIdentifier","src":"315:9:97"}],"functionName":{"name":"sub","nativeSrc":"302:3:97","nodeType":"YulIdentifier","src":"302:3:97"},"nativeSrc":"302:23:97","nodeType":"YulFunctionCall","src":"302:23:97"},{"kind":"number","nativeSrc":"327:2:97","nodeType":"YulLiteral","src":"327:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"298:3:97","nodeType":"YulIdentifier","src":"298:3:97"},"nativeSrc":"298:32:97","nodeType":"YulFunctionCall","src":"298:32:97"},"nativeSrc":"295:52:97","nodeType":"YulIf","src":"295:52:97"},{"nativeSrc":"356:39:97","nodeType":"YulAssignment","src":"356:39:97","value":{"arguments":[{"name":"headStart","nativeSrc":"385:9:97","nodeType":"YulIdentifier","src":"385:9:97"}],"functionName":{"name":"abi_decode_address","nativeSrc":"366:18:97","nodeType":"YulIdentifier","src":"366:18:97"},"nativeSrc":"366:29:97","nodeType":"YulFunctionCall","src":"366:29:97"},"variableNames":[{"name":"value0","nativeSrc":"356:6:97","nodeType":"YulIdentifier","src":"356:6:97"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"215:186:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"251:9:97","nodeType":"YulTypedName","src":"251:9:97","type":""},{"name":"dataEnd","nativeSrc":"262:7:97","nodeType":"YulTypedName","src":"262:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"274:6:97","nodeType":"YulTypedName","src":"274:6:97","type":""}],"src":"215:186:97"},{"body":{"nativeSrc":"476:110:97","nodeType":"YulBlock","src":"476:110:97","statements":[{"body":{"nativeSrc":"522:16:97","nodeType":"YulBlock","src":"522:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"531:1:97","nodeType":"YulLiteral","src":"531:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"534:1:97","nodeType":"YulLiteral","src":"534:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"524:6:97","nodeType":"YulIdentifier","src":"524:6:97"},"nativeSrc":"524:12:97","nodeType":"YulFunctionCall","src":"524:12:97"},"nativeSrc":"524:12:97","nodeType":"YulExpressionStatement","src":"524:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"497:7:97","nodeType":"YulIdentifier","src":"497:7:97"},{"name":"headStart","nativeSrc":"506:9:97","nodeType":"YulIdentifier","src":"506:9:97"}],"functionName":{"name":"sub","nativeSrc":"493:3:97","nodeType":"YulIdentifier","src":"493:3:97"},"nativeSrc":"493:23:97","nodeType":"YulFunctionCall","src":"493:23:97"},{"kind":"number","nativeSrc":"518:2:97","nodeType":"YulLiteral","src":"518:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"489:3:97","nodeType":"YulIdentifier","src":"489:3:97"},"nativeSrc":"489:32:97","nodeType":"YulFunctionCall","src":"489:32:97"},"nativeSrc":"486:52:97","nodeType":"YulIf","src":"486:52:97"},{"nativeSrc":"547:33:97","nodeType":"YulAssignment","src":"547:33:97","value":{"arguments":[{"name":"headStart","nativeSrc":"570:9:97","nodeType":"YulIdentifier","src":"570:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"557:12:97","nodeType":"YulIdentifier","src":"557:12:97"},"nativeSrc":"557:23:97","nodeType":"YulFunctionCall","src":"557:23:97"},"variableNames":[{"name":"value0","nativeSrc":"547:6:97","nodeType":"YulIdentifier","src":"547:6:97"}]}]},"name":"abi_decode_tuple_t_bytes32","nativeSrc":"406:180:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"442:9:97","nodeType":"YulTypedName","src":"442:9:97","type":""},{"name":"dataEnd","nativeSrc":"453:7:97","nodeType":"YulTypedName","src":"453:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"465:6:97","nodeType":"YulTypedName","src":"465:6:97","type":""}],"src":"406:180:97"},{"body":{"nativeSrc":"686:92:97","nodeType":"YulBlock","src":"686:92:97","statements":[{"nativeSrc":"696:26:97","nodeType":"YulAssignment","src":"696:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"708:9:97","nodeType":"YulIdentifier","src":"708:9:97"},{"kind":"number","nativeSrc":"719:2:97","nodeType":"YulLiteral","src":"719:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"704:3:97","nodeType":"YulIdentifier","src":"704:3:97"},"nativeSrc":"704:18:97","nodeType":"YulFunctionCall","src":"704:18:97"},"variableNames":[{"name":"tail","nativeSrc":"696:4:97","nodeType":"YulIdentifier","src":"696:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"738:9:97","nodeType":"YulIdentifier","src":"738:9:97"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"763:6:97","nodeType":"YulIdentifier","src":"763:6:97"}],"functionName":{"name":"iszero","nativeSrc":"756:6:97","nodeType":"YulIdentifier","src":"756:6:97"},"nativeSrc":"756:14:97","nodeType":"YulFunctionCall","src":"756:14:97"}],"functionName":{"name":"iszero","nativeSrc":"749:6:97","nodeType":"YulIdentifier","src":"749:6:97"},"nativeSrc":"749:22:97","nodeType":"YulFunctionCall","src":"749:22:97"}],"functionName":{"name":"mstore","nativeSrc":"731:6:97","nodeType":"YulIdentifier","src":"731:6:97"},"nativeSrc":"731:41:97","nodeType":"YulFunctionCall","src":"731:41:97"},"nativeSrc":"731:41:97","nodeType":"YulExpressionStatement","src":"731:41:97"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"591:187:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"655:9:97","nodeType":"YulTypedName","src":"655:9:97","type":""},{"name":"value0","nativeSrc":"666:6:97","nodeType":"YulTypedName","src":"666:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"677:4:97","nodeType":"YulTypedName","src":"677:4:97","type":""}],"src":"591:187:97"},{"body":{"nativeSrc":"884:76:97","nodeType":"YulBlock","src":"884:76:97","statements":[{"nativeSrc":"894:26:97","nodeType":"YulAssignment","src":"894:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"906:9:97","nodeType":"YulIdentifier","src":"906:9:97"},{"kind":"number","nativeSrc":"917:2:97","nodeType":"YulLiteral","src":"917:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"902:3:97","nodeType":"YulIdentifier","src":"902:3:97"},"nativeSrc":"902:18:97","nodeType":"YulFunctionCall","src":"902:18:97"},"variableNames":[{"name":"tail","nativeSrc":"894:4:97","nodeType":"YulIdentifier","src":"894:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"936:9:97","nodeType":"YulIdentifier","src":"936:9:97"},{"name":"value0","nativeSrc":"947:6:97","nodeType":"YulIdentifier","src":"947:6:97"}],"functionName":{"name":"mstore","nativeSrc":"929:6:97","nodeType":"YulIdentifier","src":"929:6:97"},"nativeSrc":"929:25:97","nodeType":"YulFunctionCall","src":"929:25:97"},"nativeSrc":"929:25:97","nodeType":"YulExpressionStatement","src":"929:25:97"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"783:177:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"853:9:97","nodeType":"YulTypedName","src":"853:9:97","type":""},{"name":"value0","nativeSrc":"864:6:97","nodeType":"YulTypedName","src":"864:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"875:4:97","nodeType":"YulTypedName","src":"875:4:97","type":""}],"src":"783:177:97"},{"body":{"nativeSrc":"997:152:97","nodeType":"YulBlock","src":"997:152:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1014:1:97","nodeType":"YulLiteral","src":"1014:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1017:77:97","nodeType":"YulLiteral","src":"1017:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"1007:6:97","nodeType":"YulIdentifier","src":"1007:6:97"},"nativeSrc":"1007:88:97","nodeType":"YulFunctionCall","src":"1007:88:97"},"nativeSrc":"1007:88:97","nodeType":"YulExpressionStatement","src":"1007:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1111:1:97","nodeType":"YulLiteral","src":"1111:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"1114:4:97","nodeType":"YulLiteral","src":"1114:4:97","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"1104:6:97","nodeType":"YulIdentifier","src":"1104:6:97"},"nativeSrc":"1104:15:97","nodeType":"YulFunctionCall","src":"1104:15:97"},"nativeSrc":"1104:15:97","nodeType":"YulExpressionStatement","src":"1104:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1135:1:97","nodeType":"YulLiteral","src":"1135:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1138:4:97","nodeType":"YulLiteral","src":"1138:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1128:6:97","nodeType":"YulIdentifier","src":"1128:6:97"},"nativeSrc":"1128:15:97","nodeType":"YulFunctionCall","src":"1128:15:97"},"nativeSrc":"1128:15:97","nodeType":"YulExpressionStatement","src":"1128:15:97"}]},"name":"panic_error_0x41","nativeSrc":"965:184:97","nodeType":"YulFunctionDefinition","src":"965:184:97"},{"body":{"nativeSrc":"1199:289:97","nodeType":"YulBlock","src":"1199:289:97","statements":[{"nativeSrc":"1209:19:97","nodeType":"YulAssignment","src":"1209:19:97","value":{"arguments":[{"kind":"number","nativeSrc":"1225:2:97","nodeType":"YulLiteral","src":"1225:2:97","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1219:5:97","nodeType":"YulIdentifier","src":"1219:5:97"},"nativeSrc":"1219:9:97","nodeType":"YulFunctionCall","src":"1219:9:97"},"variableNames":[{"name":"memPtr","nativeSrc":"1209:6:97","nodeType":"YulIdentifier","src":"1209:6:97"}]},{"nativeSrc":"1237:117:97","nodeType":"YulVariableDeclaration","src":"1237:117:97","value":{"arguments":[{"name":"memPtr","nativeSrc":"1259:6:97","nodeType":"YulIdentifier","src":"1259:6:97"},{"arguments":[{"arguments":[{"name":"size","nativeSrc":"1275:4:97","nodeType":"YulIdentifier","src":"1275:4:97"},{"kind":"number","nativeSrc":"1281:2:97","nodeType":"YulLiteral","src":"1281:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"1271:3:97","nodeType":"YulIdentifier","src":"1271:3:97"},"nativeSrc":"1271:13:97","nodeType":"YulFunctionCall","src":"1271:13:97"},{"kind":"number","nativeSrc":"1286:66:97","nodeType":"YulLiteral","src":"1286:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"1267:3:97","nodeType":"YulIdentifier","src":"1267:3:97"},"nativeSrc":"1267:86:97","nodeType":"YulFunctionCall","src":"1267:86:97"}],"functionName":{"name":"add","nativeSrc":"1255:3:97","nodeType":"YulIdentifier","src":"1255:3:97"},"nativeSrc":"1255:99:97","nodeType":"YulFunctionCall","src":"1255:99:97"},"variables":[{"name":"newFreePtr","nativeSrc":"1241:10:97","nodeType":"YulTypedName","src":"1241:10:97","type":""}]},{"body":{"nativeSrc":"1429:22:97","nodeType":"YulBlock","src":"1429:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1431:16:97","nodeType":"YulIdentifier","src":"1431:16:97"},"nativeSrc":"1431:18:97","nodeType":"YulFunctionCall","src":"1431:18:97"},"nativeSrc":"1431:18:97","nodeType":"YulExpressionStatement","src":"1431:18:97"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1372:10:97","nodeType":"YulIdentifier","src":"1372:10:97"},{"kind":"number","nativeSrc":"1384:18:97","nodeType":"YulLiteral","src":"1384:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1369:2:97","nodeType":"YulIdentifier","src":"1369:2:97"},"nativeSrc":"1369:34:97","nodeType":"YulFunctionCall","src":"1369:34:97"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1408:10:97","nodeType":"YulIdentifier","src":"1408:10:97"},{"name":"memPtr","nativeSrc":"1420:6:97","nodeType":"YulIdentifier","src":"1420:6:97"}],"functionName":{"name":"lt","nativeSrc":"1405:2:97","nodeType":"YulIdentifier","src":"1405:2:97"},"nativeSrc":"1405:22:97","nodeType":"YulFunctionCall","src":"1405:22:97"}],"functionName":{"name":"or","nativeSrc":"1366:2:97","nodeType":"YulIdentifier","src":"1366:2:97"},"nativeSrc":"1366:62:97","nodeType":"YulFunctionCall","src":"1366:62:97"},"nativeSrc":"1363:88:97","nodeType":"YulIf","src":"1363:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1467:2:97","nodeType":"YulLiteral","src":"1467:2:97","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1471:10:97","nodeType":"YulIdentifier","src":"1471:10:97"}],"functionName":{"name":"mstore","nativeSrc":"1460:6:97","nodeType":"YulIdentifier","src":"1460:6:97"},"nativeSrc":"1460:22:97","nodeType":"YulFunctionCall","src":"1460:22:97"},"nativeSrc":"1460:22:97","nodeType":"YulExpressionStatement","src":"1460:22:97"}]},"name":"allocate_memory","nativeSrc":"1154:334:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"1179:4:97","nodeType":"YulTypedName","src":"1179:4:97","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"1188:6:97","nodeType":"YulTypedName","src":"1188:6:97","type":""}],"src":"1154:334:97"},{"body":{"nativeSrc":"1546:537:97","nodeType":"YulBlock","src":"1546:537:97","statements":[{"body":{"nativeSrc":"1595:16:97","nodeType":"YulBlock","src":"1595:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1604:1:97","nodeType":"YulLiteral","src":"1604:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1607:1:97","nodeType":"YulLiteral","src":"1607:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1597:6:97","nodeType":"YulIdentifier","src":"1597:6:97"},"nativeSrc":"1597:12:97","nodeType":"YulFunctionCall","src":"1597:12:97"},"nativeSrc":"1597:12:97","nodeType":"YulExpressionStatement","src":"1597:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"1574:6:97","nodeType":"YulIdentifier","src":"1574:6:97"},{"kind":"number","nativeSrc":"1582:4:97","nodeType":"YulLiteral","src":"1582:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"1570:3:97","nodeType":"YulIdentifier","src":"1570:3:97"},"nativeSrc":"1570:17:97","nodeType":"YulFunctionCall","src":"1570:17:97"},{"name":"end","nativeSrc":"1589:3:97","nodeType":"YulIdentifier","src":"1589:3:97"}],"functionName":{"name":"slt","nativeSrc":"1566:3:97","nodeType":"YulIdentifier","src":"1566:3:97"},"nativeSrc":"1566:27:97","nodeType":"YulFunctionCall","src":"1566:27:97"}],"functionName":{"name":"iszero","nativeSrc":"1559:6:97","nodeType":"YulIdentifier","src":"1559:6:97"},"nativeSrc":"1559:35:97","nodeType":"YulFunctionCall","src":"1559:35:97"},"nativeSrc":"1556:55:97","nodeType":"YulIf","src":"1556:55:97"},{"nativeSrc":"1620:30:97","nodeType":"YulVariableDeclaration","src":"1620:30:97","value":{"arguments":[{"name":"offset","nativeSrc":"1643:6:97","nodeType":"YulIdentifier","src":"1643:6:97"}],"functionName":{"name":"calldataload","nativeSrc":"1630:12:97","nodeType":"YulIdentifier","src":"1630:12:97"},"nativeSrc":"1630:20:97","nodeType":"YulFunctionCall","src":"1630:20:97"},"variables":[{"name":"_1","nativeSrc":"1624:2:97","nodeType":"YulTypedName","src":"1624:2:97","type":""}]},{"body":{"nativeSrc":"1689:22:97","nodeType":"YulBlock","src":"1689:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1691:16:97","nodeType":"YulIdentifier","src":"1691:16:97"},"nativeSrc":"1691:18:97","nodeType":"YulFunctionCall","src":"1691:18:97"},"nativeSrc":"1691:18:97","nodeType":"YulExpressionStatement","src":"1691:18:97"}]},"condition":{"arguments":[{"name":"_1","nativeSrc":"1665:2:97","nodeType":"YulIdentifier","src":"1665:2:97"},{"kind":"number","nativeSrc":"1669:18:97","nodeType":"YulLiteral","src":"1669:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1662:2:97","nodeType":"YulIdentifier","src":"1662:2:97"},"nativeSrc":"1662:26:97","nodeType":"YulFunctionCall","src":"1662:26:97"},"nativeSrc":"1659:52:97","nodeType":"YulIf","src":"1659:52:97"},{"nativeSrc":"1720:129:97","nodeType":"YulVariableDeclaration","src":"1720:129:97","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"1763:2:97","nodeType":"YulIdentifier","src":"1763:2:97"},{"kind":"number","nativeSrc":"1767:4:97","nodeType":"YulLiteral","src":"1767:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"1759:3:97","nodeType":"YulIdentifier","src":"1759:3:97"},"nativeSrc":"1759:13:97","nodeType":"YulFunctionCall","src":"1759:13:97"},{"kind":"number","nativeSrc":"1774:66:97","nodeType":"YulLiteral","src":"1774:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"1755:3:97","nodeType":"YulIdentifier","src":"1755:3:97"},"nativeSrc":"1755:86:97","nodeType":"YulFunctionCall","src":"1755:86:97"},{"kind":"number","nativeSrc":"1843:4:97","nodeType":"YulLiteral","src":"1843:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1751:3:97","nodeType":"YulIdentifier","src":"1751:3:97"},"nativeSrc":"1751:97:97","nodeType":"YulFunctionCall","src":"1751:97:97"}],"functionName":{"name":"allocate_memory","nativeSrc":"1735:15:97","nodeType":"YulIdentifier","src":"1735:15:97"},"nativeSrc":"1735:114:97","nodeType":"YulFunctionCall","src":"1735:114:97"},"variables":[{"name":"array_1","nativeSrc":"1724:7:97","nodeType":"YulTypedName","src":"1724:7:97","type":""}]},{"expression":{"arguments":[{"name":"array_1","nativeSrc":"1865:7:97","nodeType":"YulIdentifier","src":"1865:7:97"},{"name":"_1","nativeSrc":"1874:2:97","nodeType":"YulIdentifier","src":"1874:2:97"}],"functionName":{"name":"mstore","nativeSrc":"1858:6:97","nodeType":"YulIdentifier","src":"1858:6:97"},"nativeSrc":"1858:19:97","nodeType":"YulFunctionCall","src":"1858:19:97"},"nativeSrc":"1858:19:97","nodeType":"YulExpressionStatement","src":"1858:19:97"},{"body":{"nativeSrc":"1925:16:97","nodeType":"YulBlock","src":"1925:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1934:1:97","nodeType":"YulLiteral","src":"1934:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1937:1:97","nodeType":"YulLiteral","src":"1937:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1927:6:97","nodeType":"YulIdentifier","src":"1927:6:97"},"nativeSrc":"1927:12:97","nodeType":"YulFunctionCall","src":"1927:12:97"},"nativeSrc":"1927:12:97","nodeType":"YulExpressionStatement","src":"1927:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"1900:6:97","nodeType":"YulIdentifier","src":"1900:6:97"},{"name":"_1","nativeSrc":"1908:2:97","nodeType":"YulIdentifier","src":"1908:2:97"}],"functionName":{"name":"add","nativeSrc":"1896:3:97","nodeType":"YulIdentifier","src":"1896:3:97"},"nativeSrc":"1896:15:97","nodeType":"YulFunctionCall","src":"1896:15:97"},{"kind":"number","nativeSrc":"1913:4:97","nodeType":"YulLiteral","src":"1913:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1892:3:97","nodeType":"YulIdentifier","src":"1892:3:97"},"nativeSrc":"1892:26:97","nodeType":"YulFunctionCall","src":"1892:26:97"},{"name":"end","nativeSrc":"1920:3:97","nodeType":"YulIdentifier","src":"1920:3:97"}],"functionName":{"name":"gt","nativeSrc":"1889:2:97","nodeType":"YulIdentifier","src":"1889:2:97"},"nativeSrc":"1889:35:97","nodeType":"YulFunctionCall","src":"1889:35:97"},"nativeSrc":"1886:55:97","nodeType":"YulIf","src":"1886:55:97"},{"expression":{"arguments":[{"arguments":[{"name":"array_1","nativeSrc":"1967:7:97","nodeType":"YulIdentifier","src":"1967:7:97"},{"kind":"number","nativeSrc":"1976:4:97","nodeType":"YulLiteral","src":"1976:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1963:3:97","nodeType":"YulIdentifier","src":"1963:3:97"},"nativeSrc":"1963:18:97","nodeType":"YulFunctionCall","src":"1963:18:97"},{"arguments":[{"name":"offset","nativeSrc":"1987:6:97","nodeType":"YulIdentifier","src":"1987:6:97"},{"kind":"number","nativeSrc":"1995:4:97","nodeType":"YulLiteral","src":"1995:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1983:3:97","nodeType":"YulIdentifier","src":"1983:3:97"},"nativeSrc":"1983:17:97","nodeType":"YulFunctionCall","src":"1983:17:97"},{"name":"_1","nativeSrc":"2002:2:97","nodeType":"YulIdentifier","src":"2002:2:97"}],"functionName":{"name":"calldatacopy","nativeSrc":"1950:12:97","nodeType":"YulIdentifier","src":"1950:12:97"},"nativeSrc":"1950:55:97","nodeType":"YulFunctionCall","src":"1950:55:97"},"nativeSrc":"1950:55:97","nodeType":"YulExpressionStatement","src":"1950:55:97"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array_1","nativeSrc":"2029:7:97","nodeType":"YulIdentifier","src":"2029:7:97"},{"name":"_1","nativeSrc":"2038:2:97","nodeType":"YulIdentifier","src":"2038:2:97"}],"functionName":{"name":"add","nativeSrc":"2025:3:97","nodeType":"YulIdentifier","src":"2025:3:97"},"nativeSrc":"2025:16:97","nodeType":"YulFunctionCall","src":"2025:16:97"},{"kind":"number","nativeSrc":"2043:4:97","nodeType":"YulLiteral","src":"2043:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2021:3:97","nodeType":"YulIdentifier","src":"2021:3:97"},"nativeSrc":"2021:27:97","nodeType":"YulFunctionCall","src":"2021:27:97"},{"kind":"number","nativeSrc":"2050:1:97","nodeType":"YulLiteral","src":"2050:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2014:6:97","nodeType":"YulIdentifier","src":"2014:6:97"},"nativeSrc":"2014:38:97","nodeType":"YulFunctionCall","src":"2014:38:97"},"nativeSrc":"2014:38:97","nodeType":"YulExpressionStatement","src":"2014:38:97"},{"nativeSrc":"2061:16:97","nodeType":"YulAssignment","src":"2061:16:97","value":{"name":"array_1","nativeSrc":"2070:7:97","nodeType":"YulIdentifier","src":"2070:7:97"},"variableNames":[{"name":"array","nativeSrc":"2061:5:97","nodeType":"YulIdentifier","src":"2061:5:97"}]}]},"name":"abi_decode_string","nativeSrc":"1493:590:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1520:6:97","nodeType":"YulTypedName","src":"1520:6:97","type":""},{"name":"end","nativeSrc":"1528:3:97","nodeType":"YulTypedName","src":"1528:3:97","type":""}],"returnVariables":[{"name":"array","nativeSrc":"1536:5:97","nodeType":"YulTypedName","src":"1536:5:97","type":""}],"src":"1493:590:97"},{"body":{"nativeSrc":"2185:299:97","nodeType":"YulBlock","src":"2185:299:97","statements":[{"body":{"nativeSrc":"2231:16:97","nodeType":"YulBlock","src":"2231:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2240:1:97","nodeType":"YulLiteral","src":"2240:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"2243:1:97","nodeType":"YulLiteral","src":"2243:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2233:6:97","nodeType":"YulIdentifier","src":"2233:6:97"},"nativeSrc":"2233:12:97","nodeType":"YulFunctionCall","src":"2233:12:97"},"nativeSrc":"2233:12:97","nodeType":"YulExpressionStatement","src":"2233:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2206:7:97","nodeType":"YulIdentifier","src":"2206:7:97"},{"name":"headStart","nativeSrc":"2215:9:97","nodeType":"YulIdentifier","src":"2215:9:97"}],"functionName":{"name":"sub","nativeSrc":"2202:3:97","nodeType":"YulIdentifier","src":"2202:3:97"},"nativeSrc":"2202:23:97","nodeType":"YulFunctionCall","src":"2202:23:97"},{"kind":"number","nativeSrc":"2227:2:97","nodeType":"YulLiteral","src":"2227:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2198:3:97","nodeType":"YulIdentifier","src":"2198:3:97"},"nativeSrc":"2198:32:97","nodeType":"YulFunctionCall","src":"2198:32:97"},"nativeSrc":"2195:52:97","nodeType":"YulIf","src":"2195:52:97"},{"nativeSrc":"2256:37:97","nodeType":"YulVariableDeclaration","src":"2256:37:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2283:9:97","nodeType":"YulIdentifier","src":"2283:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"2270:12:97","nodeType":"YulIdentifier","src":"2270:12:97"},"nativeSrc":"2270:23:97","nodeType":"YulFunctionCall","src":"2270:23:97"},"variables":[{"name":"offset","nativeSrc":"2260:6:97","nodeType":"YulTypedName","src":"2260:6:97","type":""}]},{"body":{"nativeSrc":"2336:16:97","nodeType":"YulBlock","src":"2336:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2345:1:97","nodeType":"YulLiteral","src":"2345:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"2348:1:97","nodeType":"YulLiteral","src":"2348:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2338:6:97","nodeType":"YulIdentifier","src":"2338:6:97"},"nativeSrc":"2338:12:97","nodeType":"YulFunctionCall","src":"2338:12:97"},"nativeSrc":"2338:12:97","nodeType":"YulExpressionStatement","src":"2338:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"2308:6:97","nodeType":"YulIdentifier","src":"2308:6:97"},{"kind":"number","nativeSrc":"2316:18:97","nodeType":"YulLiteral","src":"2316:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2305:2:97","nodeType":"YulIdentifier","src":"2305:2:97"},"nativeSrc":"2305:30:97","nodeType":"YulFunctionCall","src":"2305:30:97"},"nativeSrc":"2302:50:97","nodeType":"YulIf","src":"2302:50:97"},{"nativeSrc":"2361:60:97","nodeType":"YulAssignment","src":"2361:60:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2393:9:97","nodeType":"YulIdentifier","src":"2393:9:97"},{"name":"offset","nativeSrc":"2404:6:97","nodeType":"YulIdentifier","src":"2404:6:97"}],"functionName":{"name":"add","nativeSrc":"2389:3:97","nodeType":"YulIdentifier","src":"2389:3:97"},"nativeSrc":"2389:22:97","nodeType":"YulFunctionCall","src":"2389:22:97"},{"name":"dataEnd","nativeSrc":"2413:7:97","nodeType":"YulIdentifier","src":"2413:7:97"}],"functionName":{"name":"abi_decode_string","nativeSrc":"2371:17:97","nodeType":"YulIdentifier","src":"2371:17:97"},"nativeSrc":"2371:50:97","nodeType":"YulFunctionCall","src":"2371:50:97"},"variableNames":[{"name":"value0","nativeSrc":"2361:6:97","nodeType":"YulIdentifier","src":"2361:6:97"}]},{"nativeSrc":"2430:48:97","nodeType":"YulAssignment","src":"2430:48:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2463:9:97","nodeType":"YulIdentifier","src":"2463:9:97"},{"kind":"number","nativeSrc":"2474:2:97","nodeType":"YulLiteral","src":"2474:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2459:3:97","nodeType":"YulIdentifier","src":"2459:3:97"},"nativeSrc":"2459:18:97","nodeType":"YulFunctionCall","src":"2459:18:97"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2440:18:97","nodeType":"YulIdentifier","src":"2440:18:97"},"nativeSrc":"2440:38:97","nodeType":"YulFunctionCall","src":"2440:38:97"},"variableNames":[{"name":"value1","nativeSrc":"2430:6:97","nodeType":"YulIdentifier","src":"2430:6:97"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_address","nativeSrc":"2088:396:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2143:9:97","nodeType":"YulTypedName","src":"2143:9:97","type":""},{"name":"dataEnd","nativeSrc":"2154:7:97","nodeType":"YulTypedName","src":"2154:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2166:6:97","nodeType":"YulTypedName","src":"2166:6:97","type":""},{"name":"value1","nativeSrc":"2174:6:97","nodeType":"YulTypedName","src":"2174:6:97","type":""}],"src":"2088:396:97"},{"body":{"nativeSrc":"2559:110:97","nodeType":"YulBlock","src":"2559:110:97","statements":[{"body":{"nativeSrc":"2605:16:97","nodeType":"YulBlock","src":"2605:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2614:1:97","nodeType":"YulLiteral","src":"2614:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"2617:1:97","nodeType":"YulLiteral","src":"2617:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2607:6:97","nodeType":"YulIdentifier","src":"2607:6:97"},"nativeSrc":"2607:12:97","nodeType":"YulFunctionCall","src":"2607:12:97"},"nativeSrc":"2607:12:97","nodeType":"YulExpressionStatement","src":"2607:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2580:7:97","nodeType":"YulIdentifier","src":"2580:7:97"},{"name":"headStart","nativeSrc":"2589:9:97","nodeType":"YulIdentifier","src":"2589:9:97"}],"functionName":{"name":"sub","nativeSrc":"2576:3:97","nodeType":"YulIdentifier","src":"2576:3:97"},"nativeSrc":"2576:23:97","nodeType":"YulFunctionCall","src":"2576:23:97"},{"kind":"number","nativeSrc":"2601:2:97","nodeType":"YulLiteral","src":"2601:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2572:3:97","nodeType":"YulIdentifier","src":"2572:3:97"},"nativeSrc":"2572:32:97","nodeType":"YulFunctionCall","src":"2572:32:97"},"nativeSrc":"2569:52:97","nodeType":"YulIf","src":"2569:52:97"},{"nativeSrc":"2630:33:97","nodeType":"YulAssignment","src":"2630:33:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2653:9:97","nodeType":"YulIdentifier","src":"2653:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"2640:12:97","nodeType":"YulIdentifier","src":"2640:12:97"},"nativeSrc":"2640:23:97","nodeType":"YulFunctionCall","src":"2640:23:97"},"variableNames":[{"name":"value0","nativeSrc":"2630:6:97","nodeType":"YulIdentifier","src":"2630:6:97"}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"2489:180:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2525:9:97","nodeType":"YulTypedName","src":"2525:9:97","type":""},{"name":"dataEnd","nativeSrc":"2536:7:97","nodeType":"YulTypedName","src":"2536:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2548:6:97","nodeType":"YulTypedName","src":"2548:6:97","type":""}],"src":"2489:180:97"},{"body":{"nativeSrc":"2740:184:97","nodeType":"YulBlock","src":"2740:184:97","statements":[{"nativeSrc":"2750:10:97","nodeType":"YulVariableDeclaration","src":"2750:10:97","value":{"kind":"number","nativeSrc":"2759:1:97","nodeType":"YulLiteral","src":"2759:1:97","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"2754:1:97","nodeType":"YulTypedName","src":"2754:1:97","type":""}]},{"body":{"nativeSrc":"2819:63:97","nodeType":"YulBlock","src":"2819:63:97","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"2844:3:97","nodeType":"YulIdentifier","src":"2844:3:97"},{"name":"i","nativeSrc":"2849:1:97","nodeType":"YulIdentifier","src":"2849:1:97"}],"functionName":{"name":"add","nativeSrc":"2840:3:97","nodeType":"YulIdentifier","src":"2840:3:97"},"nativeSrc":"2840:11:97","nodeType":"YulFunctionCall","src":"2840:11:97"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2863:3:97","nodeType":"YulIdentifier","src":"2863:3:97"},{"name":"i","nativeSrc":"2868:1:97","nodeType":"YulIdentifier","src":"2868:1:97"}],"functionName":{"name":"add","nativeSrc":"2859:3:97","nodeType":"YulIdentifier","src":"2859:3:97"},"nativeSrc":"2859:11:97","nodeType":"YulFunctionCall","src":"2859:11:97"}],"functionName":{"name":"mload","nativeSrc":"2853:5:97","nodeType":"YulIdentifier","src":"2853:5:97"},"nativeSrc":"2853:18:97","nodeType":"YulFunctionCall","src":"2853:18:97"}],"functionName":{"name":"mstore","nativeSrc":"2833:6:97","nodeType":"YulIdentifier","src":"2833:6:97"},"nativeSrc":"2833:39:97","nodeType":"YulFunctionCall","src":"2833:39:97"},"nativeSrc":"2833:39:97","nodeType":"YulExpressionStatement","src":"2833:39:97"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"2780:1:97","nodeType":"YulIdentifier","src":"2780:1:97"},{"name":"length","nativeSrc":"2783:6:97","nodeType":"YulIdentifier","src":"2783:6:97"}],"functionName":{"name":"lt","nativeSrc":"2777:2:97","nodeType":"YulIdentifier","src":"2777:2:97"},"nativeSrc":"2777:13:97","nodeType":"YulFunctionCall","src":"2777:13:97"},"nativeSrc":"2769:113:97","nodeType":"YulForLoop","post":{"nativeSrc":"2791:19:97","nodeType":"YulBlock","src":"2791:19:97","statements":[{"nativeSrc":"2793:15:97","nodeType":"YulAssignment","src":"2793:15:97","value":{"arguments":[{"name":"i","nativeSrc":"2802:1:97","nodeType":"YulIdentifier","src":"2802:1:97"},{"kind":"number","nativeSrc":"2805:2:97","nodeType":"YulLiteral","src":"2805:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2798:3:97","nodeType":"YulIdentifier","src":"2798:3:97"},"nativeSrc":"2798:10:97","nodeType":"YulFunctionCall","src":"2798:10:97"},"variableNames":[{"name":"i","nativeSrc":"2793:1:97","nodeType":"YulIdentifier","src":"2793:1:97"}]}]},"pre":{"nativeSrc":"2773:3:97","nodeType":"YulBlock","src":"2773:3:97","statements":[]},"src":"2769:113:97"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"2902:3:97","nodeType":"YulIdentifier","src":"2902:3:97"},{"name":"length","nativeSrc":"2907:6:97","nodeType":"YulIdentifier","src":"2907:6:97"}],"functionName":{"name":"add","nativeSrc":"2898:3:97","nodeType":"YulIdentifier","src":"2898:3:97"},"nativeSrc":"2898:16:97","nodeType":"YulFunctionCall","src":"2898:16:97"},{"kind":"number","nativeSrc":"2916:1:97","nodeType":"YulLiteral","src":"2916:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2891:6:97","nodeType":"YulIdentifier","src":"2891:6:97"},"nativeSrc":"2891:27:97","nodeType":"YulFunctionCall","src":"2891:27:97"},"nativeSrc":"2891:27:97","nodeType":"YulExpressionStatement","src":"2891:27:97"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2674:250:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"2718:3:97","nodeType":"YulTypedName","src":"2718:3:97","type":""},{"name":"dst","nativeSrc":"2723:3:97","nodeType":"YulTypedName","src":"2723:3:97","type":""},{"name":"length","nativeSrc":"2728:6:97","nodeType":"YulTypedName","src":"2728:6:97","type":""}],"src":"2674:250:97"},{"body":{"nativeSrc":"2979:280:97","nodeType":"YulBlock","src":"2979:280:97","statements":[{"nativeSrc":"2989:26:97","nodeType":"YulVariableDeclaration","src":"2989:26:97","value":{"arguments":[{"name":"value","nativeSrc":"3009:5:97","nodeType":"YulIdentifier","src":"3009:5:97"}],"functionName":{"name":"mload","nativeSrc":"3003:5:97","nodeType":"YulIdentifier","src":"3003:5:97"},"nativeSrc":"3003:12:97","nodeType":"YulFunctionCall","src":"3003:12:97"},"variables":[{"name":"length","nativeSrc":"2993:6:97","nodeType":"YulTypedName","src":"2993:6:97","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"3031:3:97","nodeType":"YulIdentifier","src":"3031:3:97"},{"name":"length","nativeSrc":"3036:6:97","nodeType":"YulIdentifier","src":"3036:6:97"}],"functionName":{"name":"mstore","nativeSrc":"3024:6:97","nodeType":"YulIdentifier","src":"3024:6:97"},"nativeSrc":"3024:19:97","nodeType":"YulFunctionCall","src":"3024:19:97"},"nativeSrc":"3024:19:97","nodeType":"YulExpressionStatement","src":"3024:19:97"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3091:5:97","nodeType":"YulIdentifier","src":"3091:5:97"},{"kind":"number","nativeSrc":"3098:4:97","nodeType":"YulLiteral","src":"3098:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3087:3:97","nodeType":"YulIdentifier","src":"3087:3:97"},"nativeSrc":"3087:16:97","nodeType":"YulFunctionCall","src":"3087:16:97"},{"arguments":[{"name":"pos","nativeSrc":"3109:3:97","nodeType":"YulIdentifier","src":"3109:3:97"},{"kind":"number","nativeSrc":"3114:4:97","nodeType":"YulLiteral","src":"3114:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3105:3:97","nodeType":"YulIdentifier","src":"3105:3:97"},"nativeSrc":"3105:14:97","nodeType":"YulFunctionCall","src":"3105:14:97"},{"name":"length","nativeSrc":"3121:6:97","nodeType":"YulIdentifier","src":"3121:6:97"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"3052:34:97","nodeType":"YulIdentifier","src":"3052:34:97"},"nativeSrc":"3052:76:97","nodeType":"YulFunctionCall","src":"3052:76:97"},"nativeSrc":"3052:76:97","nodeType":"YulExpressionStatement","src":"3052:76:97"},{"nativeSrc":"3137:116:97","nodeType":"YulAssignment","src":"3137:116:97","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"3152:3:97","nodeType":"YulIdentifier","src":"3152:3:97"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"3165:6:97","nodeType":"YulIdentifier","src":"3165:6:97"},{"kind":"number","nativeSrc":"3173:2:97","nodeType":"YulLiteral","src":"3173:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"3161:3:97","nodeType":"YulIdentifier","src":"3161:3:97"},"nativeSrc":"3161:15:97","nodeType":"YulFunctionCall","src":"3161:15:97"},{"kind":"number","nativeSrc":"3178:66:97","nodeType":"YulLiteral","src":"3178:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"3157:3:97","nodeType":"YulIdentifier","src":"3157:3:97"},"nativeSrc":"3157:88:97","nodeType":"YulFunctionCall","src":"3157:88:97"}],"functionName":{"name":"add","nativeSrc":"3148:3:97","nodeType":"YulIdentifier","src":"3148:3:97"},"nativeSrc":"3148:98:97","nodeType":"YulFunctionCall","src":"3148:98:97"},{"kind":"number","nativeSrc":"3248:4:97","nodeType":"YulLiteral","src":"3248:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3144:3:97","nodeType":"YulIdentifier","src":"3144:3:97"},"nativeSrc":"3144:109:97","nodeType":"YulFunctionCall","src":"3144:109:97"},"variableNames":[{"name":"end","nativeSrc":"3137:3:97","nodeType":"YulIdentifier","src":"3137:3:97"}]}]},"name":"abi_encode_string","nativeSrc":"2929:330:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2956:5:97","nodeType":"YulTypedName","src":"2956:5:97","type":""},{"name":"pos","nativeSrc":"2963:3:97","nodeType":"YulTypedName","src":"2963:3:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"2971:3:97","nodeType":"YulTypedName","src":"2971:3:97","type":""}],"src":"2929:330:97"},{"body":{"nativeSrc":"3308:83:97","nodeType":"YulBlock","src":"3308:83:97","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3325:3:97","nodeType":"YulIdentifier","src":"3325:3:97"},{"arguments":[{"name":"value","nativeSrc":"3334:5:97","nodeType":"YulIdentifier","src":"3334:5:97"},{"kind":"number","nativeSrc":"3341:42:97","nodeType":"YulLiteral","src":"3341:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"3330:3:97","nodeType":"YulIdentifier","src":"3330:3:97"},"nativeSrc":"3330:54:97","nodeType":"YulFunctionCall","src":"3330:54:97"}],"functionName":{"name":"mstore","nativeSrc":"3318:6:97","nodeType":"YulIdentifier","src":"3318:6:97"},"nativeSrc":"3318:67:97","nodeType":"YulFunctionCall","src":"3318:67:97"},"nativeSrc":"3318:67:97","nodeType":"YulExpressionStatement","src":"3318:67:97"}]},"name":"abi_encode_address","nativeSrc":"3264:127:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3292:5:97","nodeType":"YulTypedName","src":"3292:5:97","type":""},{"name":"pos","nativeSrc":"3299:3:97","nodeType":"YulTypedName","src":"3299:3:97","type":""}],"src":"3264:127:97"},{"body":{"nativeSrc":"3439:67:97","nodeType":"YulBlock","src":"3439:67:97","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3456:3:97","nodeType":"YulIdentifier","src":"3456:3:97"},{"arguments":[{"name":"value","nativeSrc":"3465:5:97","nodeType":"YulIdentifier","src":"3465:5:97"},{"kind":"number","nativeSrc":"3472:26:97","nodeType":"YulLiteral","src":"3472:26:97","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"3461:3:97","nodeType":"YulIdentifier","src":"3461:3:97"},"nativeSrc":"3461:38:97","nodeType":"YulFunctionCall","src":"3461:38:97"}],"functionName":{"name":"mstore","nativeSrc":"3449:6:97","nodeType":"YulIdentifier","src":"3449:6:97"},"nativeSrc":"3449:51:97","nodeType":"YulFunctionCall","src":"3449:51:97"},"nativeSrc":"3449:51:97","nodeType":"YulExpressionStatement","src":"3449:51:97"}]},"name":"abi_encode_uint96","nativeSrc":"3396:110:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3423:5:97","nodeType":"YulTypedName","src":"3423:5:97","type":""},{"name":"pos","nativeSrc":"3430:3:97","nodeType":"YulTypedName","src":"3430:3:97","type":""}],"src":"3396:110:97"},{"body":{"nativeSrc":"3554:51:97","nodeType":"YulBlock","src":"3554:51:97","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3571:3:97","nodeType":"YulIdentifier","src":"3571:3:97"},{"arguments":[{"name":"value","nativeSrc":"3580:5:97","nodeType":"YulIdentifier","src":"3580:5:97"},{"kind":"number","nativeSrc":"3587:10:97","nodeType":"YulLiteral","src":"3587:10:97","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nativeSrc":"3576:3:97","nodeType":"YulIdentifier","src":"3576:3:97"},"nativeSrc":"3576:22:97","nodeType":"YulFunctionCall","src":"3576:22:97"}],"functionName":{"name":"mstore","nativeSrc":"3564:6:97","nodeType":"YulIdentifier","src":"3564:6:97"},"nativeSrc":"3564:35:97","nodeType":"YulFunctionCall","src":"3564:35:97"},"nativeSrc":"3564:35:97","nodeType":"YulExpressionStatement","src":"3564:35:97"}]},"name":"abi_encode_uint32","nativeSrc":"3511:94:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3538:5:97","nodeType":"YulTypedName","src":"3538:5:97","type":""},{"name":"pos","nativeSrc":"3545:3:97","nodeType":"YulTypedName","src":"3545:3:97","type":""}],"src":"3511:94:97"},{"body":{"nativeSrc":"3787:1793:97","nodeType":"YulBlock","src":"3787:1793:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3804:9:97","nodeType":"YulIdentifier","src":"3804:9:97"},{"kind":"number","nativeSrc":"3815:2:97","nodeType":"YulLiteral","src":"3815:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"3797:6:97","nodeType":"YulIdentifier","src":"3797:6:97"},"nativeSrc":"3797:21:97","nodeType":"YulFunctionCall","src":"3797:21:97"},"nativeSrc":"3797:21:97","nodeType":"YulExpressionStatement","src":"3797:21:97"},{"nativeSrc":"3827:33:97","nodeType":"YulVariableDeclaration","src":"3827:33:97","value":{"arguments":[{"name":"value0","nativeSrc":"3853:6:97","nodeType":"YulIdentifier","src":"3853:6:97"}],"functionName":{"name":"mload","nativeSrc":"3847:5:97","nodeType":"YulIdentifier","src":"3847:5:97"},"nativeSrc":"3847:13:97","nodeType":"YulFunctionCall","src":"3847:13:97"},"variables":[{"name":"memberValue0","nativeSrc":"3831:12:97","nodeType":"YulTypedName","src":"3831:12:97","type":""}]},{"nativeSrc":"3869:16:97","nodeType":"YulVariableDeclaration","src":"3869:16:97","value":{"kind":"number","nativeSrc":"3879:6:97","nodeType":"YulLiteral","src":"3879:6:97","type":"","value":"0x0180"},"variables":[{"name":"_1","nativeSrc":"3873:2:97","nodeType":"YulTypedName","src":"3873:2:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3905:9:97","nodeType":"YulIdentifier","src":"3905:9:97"},{"kind":"number","nativeSrc":"3916:2:97","nodeType":"YulLiteral","src":"3916:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3901:3:97","nodeType":"YulIdentifier","src":"3901:3:97"},"nativeSrc":"3901:18:97","nodeType":"YulFunctionCall","src":"3901:18:97"},{"name":"_1","nativeSrc":"3921:2:97","nodeType":"YulIdentifier","src":"3921:2:97"}],"functionName":{"name":"mstore","nativeSrc":"3894:6:97","nodeType":"YulIdentifier","src":"3894:6:97"},"nativeSrc":"3894:30:97","nodeType":"YulFunctionCall","src":"3894:30:97"},"nativeSrc":"3894:30:97","nodeType":"YulExpressionStatement","src":"3894:30:97"},{"nativeSrc":"3933:66:97","nodeType":"YulVariableDeclaration","src":"3933:66:97","value":{"arguments":[{"name":"memberValue0","nativeSrc":"3965:12:97","nodeType":"YulIdentifier","src":"3965:12:97"},{"arguments":[{"name":"headStart","nativeSrc":"3983:9:97","nodeType":"YulIdentifier","src":"3983:9:97"},{"kind":"number","nativeSrc":"3994:3:97","nodeType":"YulLiteral","src":"3994:3:97","type":"","value":"416"}],"functionName":{"name":"add","nativeSrc":"3979:3:97","nodeType":"YulIdentifier","src":"3979:3:97"},"nativeSrc":"3979:19:97","nodeType":"YulFunctionCall","src":"3979:19:97"}],"functionName":{"name":"abi_encode_string","nativeSrc":"3947:17:97","nodeType":"YulIdentifier","src":"3947:17:97"},"nativeSrc":"3947:52:97","nodeType":"YulFunctionCall","src":"3947:52:97"},"variables":[{"name":"tail_1","nativeSrc":"3937:6:97","nodeType":"YulTypedName","src":"3937:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4019:9:97","nodeType":"YulIdentifier","src":"4019:9:97"},{"kind":"number","nativeSrc":"4030:2:97","nodeType":"YulLiteral","src":"4030:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4015:3:97","nodeType":"YulIdentifier","src":"4015:3:97"},"nativeSrc":"4015:18:97","nodeType":"YulFunctionCall","src":"4015:18:97"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"4045:6:97","nodeType":"YulIdentifier","src":"4045:6:97"},{"kind":"number","nativeSrc":"4053:2:97","nodeType":"YulLiteral","src":"4053:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4041:3:97","nodeType":"YulIdentifier","src":"4041:3:97"},"nativeSrc":"4041:15:97","nodeType":"YulFunctionCall","src":"4041:15:97"}],"functionName":{"name":"mload","nativeSrc":"4035:5:97","nodeType":"YulIdentifier","src":"4035:5:97"},"nativeSrc":"4035:22:97","nodeType":"YulFunctionCall","src":"4035:22:97"}],"functionName":{"name":"mstore","nativeSrc":"4008:6:97","nodeType":"YulIdentifier","src":"4008:6:97"},"nativeSrc":"4008:50:97","nodeType":"YulFunctionCall","src":"4008:50:97"},"nativeSrc":"4008:50:97","nodeType":"YulExpressionStatement","src":"4008:50:97"},{"nativeSrc":"4067:44:97","nodeType":"YulVariableDeclaration","src":"4067:44:97","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"4099:6:97","nodeType":"YulIdentifier","src":"4099:6:97"},{"kind":"number","nativeSrc":"4107:2:97","nodeType":"YulLiteral","src":"4107:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4095:3:97","nodeType":"YulIdentifier","src":"4095:3:97"},"nativeSrc":"4095:15:97","nodeType":"YulFunctionCall","src":"4095:15:97"}],"functionName":{"name":"mload","nativeSrc":"4089:5:97","nodeType":"YulIdentifier","src":"4089:5:97"},"nativeSrc":"4089:22:97","nodeType":"YulFunctionCall","src":"4089:22:97"},"variables":[{"name":"memberValue0_1","nativeSrc":"4071:14:97","nodeType":"YulTypedName","src":"4071:14:97","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_1","nativeSrc":"4139:14:97","nodeType":"YulIdentifier","src":"4139:14:97"},{"arguments":[{"name":"headStart","nativeSrc":"4159:9:97","nodeType":"YulIdentifier","src":"4159:9:97"},{"kind":"number","nativeSrc":"4170:2:97","nodeType":"YulLiteral","src":"4170:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4155:3:97","nodeType":"YulIdentifier","src":"4155:3:97"},"nativeSrc":"4155:18:97","nodeType":"YulFunctionCall","src":"4155:18:97"}],"functionName":{"name":"abi_encode_address","nativeSrc":"4120:18:97","nodeType":"YulIdentifier","src":"4120:18:97"},"nativeSrc":"4120:54:97","nodeType":"YulFunctionCall","src":"4120:54:97"},"nativeSrc":"4120:54:97","nodeType":"YulExpressionStatement","src":"4120:54:97"},{"nativeSrc":"4183:44:97","nodeType":"YulVariableDeclaration","src":"4183:44:97","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"4215:6:97","nodeType":"YulIdentifier","src":"4215:6:97"},{"kind":"number","nativeSrc":"4223:2:97","nodeType":"YulLiteral","src":"4223:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4211:3:97","nodeType":"YulIdentifier","src":"4211:3:97"},"nativeSrc":"4211:15:97","nodeType":"YulFunctionCall","src":"4211:15:97"}],"functionName":{"name":"mload","nativeSrc":"4205:5:97","nodeType":"YulIdentifier","src":"4205:5:97"},"nativeSrc":"4205:22:97","nodeType":"YulFunctionCall","src":"4205:22:97"},"variables":[{"name":"memberValue0_2","nativeSrc":"4187:14:97","nodeType":"YulTypedName","src":"4187:14:97","type":""}]},{"nativeSrc":"4236:76:97","nodeType":"YulVariableDeclaration","src":"4236:76:97","value":{"kind":"number","nativeSrc":"4246:66:97","nodeType":"YulLiteral","src":"4246:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"},"variables":[{"name":"_2","nativeSrc":"4240:2:97","nodeType":"YulTypedName","src":"4240:2:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4332:9:97","nodeType":"YulIdentifier","src":"4332:9:97"},{"kind":"number","nativeSrc":"4343:3:97","nodeType":"YulLiteral","src":"4343:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"4328:3:97","nodeType":"YulIdentifier","src":"4328:3:97"},"nativeSrc":"4328:19:97","nodeType":"YulFunctionCall","src":"4328:19:97"},{"arguments":[{"arguments":[{"name":"tail_1","nativeSrc":"4357:6:97","nodeType":"YulIdentifier","src":"4357:6:97"},{"name":"headStart","nativeSrc":"4365:9:97","nodeType":"YulIdentifier","src":"4365:9:97"}],"functionName":{"name":"sub","nativeSrc":"4353:3:97","nodeType":"YulIdentifier","src":"4353:3:97"},"nativeSrc":"4353:22:97","nodeType":"YulFunctionCall","src":"4353:22:97"},{"name":"_2","nativeSrc":"4377:2:97","nodeType":"YulIdentifier","src":"4377:2:97"}],"functionName":{"name":"add","nativeSrc":"4349:3:97","nodeType":"YulIdentifier","src":"4349:3:97"},"nativeSrc":"4349:31:97","nodeType":"YulFunctionCall","src":"4349:31:97"}],"functionName":{"name":"mstore","nativeSrc":"4321:6:97","nodeType":"YulIdentifier","src":"4321:6:97"},"nativeSrc":"4321:60:97","nodeType":"YulFunctionCall","src":"4321:60:97"},"nativeSrc":"4321:60:97","nodeType":"YulExpressionStatement","src":"4321:60:97"},{"nativeSrc":"4390:55:97","nodeType":"YulVariableDeclaration","src":"4390:55:97","value":{"arguments":[{"name":"memberValue0_2","nativeSrc":"4422:14:97","nodeType":"YulIdentifier","src":"4422:14:97"},{"name":"tail_1","nativeSrc":"4438:6:97","nodeType":"YulIdentifier","src":"4438:6:97"}],"functionName":{"name":"abi_encode_string","nativeSrc":"4404:17:97","nodeType":"YulIdentifier","src":"4404:17:97"},"nativeSrc":"4404:41:97","nodeType":"YulFunctionCall","src":"4404:41:97"},"variables":[{"name":"tail_2","nativeSrc":"4394:6:97","nodeType":"YulTypedName","src":"4394:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4465:9:97","nodeType":"YulIdentifier","src":"4465:9:97"},{"kind":"number","nativeSrc":"4476:3:97","nodeType":"YulLiteral","src":"4476:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"4461:3:97","nodeType":"YulIdentifier","src":"4461:3:97"},"nativeSrc":"4461:19:97","nodeType":"YulFunctionCall","src":"4461:19:97"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"4492:6:97","nodeType":"YulIdentifier","src":"4492:6:97"},{"kind":"number","nativeSrc":"4500:3:97","nodeType":"YulLiteral","src":"4500:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"4488:3:97","nodeType":"YulIdentifier","src":"4488:3:97"},"nativeSrc":"4488:16:97","nodeType":"YulFunctionCall","src":"4488:16:97"}],"functionName":{"name":"mload","nativeSrc":"4482:5:97","nodeType":"YulIdentifier","src":"4482:5:97"},"nativeSrc":"4482:23:97","nodeType":"YulFunctionCall","src":"4482:23:97"}],"functionName":{"name":"mstore","nativeSrc":"4454:6:97","nodeType":"YulIdentifier","src":"4454:6:97"},"nativeSrc":"4454:52:97","nodeType":"YulFunctionCall","src":"4454:52:97"},"nativeSrc":"4454:52:97","nodeType":"YulExpressionStatement","src":"4454:52:97"},{"nativeSrc":"4515:45:97","nodeType":"YulVariableDeclaration","src":"4515:45:97","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"4547:6:97","nodeType":"YulIdentifier","src":"4547:6:97"},{"kind":"number","nativeSrc":"4555:3:97","nodeType":"YulLiteral","src":"4555:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"4543:3:97","nodeType":"YulIdentifier","src":"4543:3:97"},"nativeSrc":"4543:16:97","nodeType":"YulFunctionCall","src":"4543:16:97"}],"functionName":{"name":"mload","nativeSrc":"4537:5:97","nodeType":"YulIdentifier","src":"4537:5:97"},"nativeSrc":"4537:23:97","nodeType":"YulFunctionCall","src":"4537:23:97"},"variables":[{"name":"memberValue0_3","nativeSrc":"4519:14:97","nodeType":"YulTypedName","src":"4519:14:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4580:9:97","nodeType":"YulIdentifier","src":"4580:9:97"},{"kind":"number","nativeSrc":"4591:3:97","nodeType":"YulLiteral","src":"4591:3:97","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"4576:3:97","nodeType":"YulIdentifier","src":"4576:3:97"},"nativeSrc":"4576:19:97","nodeType":"YulFunctionCall","src":"4576:19:97"},{"arguments":[{"arguments":[{"name":"tail_2","nativeSrc":"4605:6:97","nodeType":"YulIdentifier","src":"4605:6:97"},{"name":"headStart","nativeSrc":"4613:9:97","nodeType":"YulIdentifier","src":"4613:9:97"}],"functionName":{"name":"sub","nativeSrc":"4601:3:97","nodeType":"YulIdentifier","src":"4601:3:97"},"nativeSrc":"4601:22:97","nodeType":"YulFunctionCall","src":"4601:22:97"},{"name":"_2","nativeSrc":"4625:2:97","nodeType":"YulIdentifier","src":"4625:2:97"}],"functionName":{"name":"add","nativeSrc":"4597:3:97","nodeType":"YulIdentifier","src":"4597:3:97"},"nativeSrc":"4597:31:97","nodeType":"YulFunctionCall","src":"4597:31:97"}],"functionName":{"name":"mstore","nativeSrc":"4569:6:97","nodeType":"YulIdentifier","src":"4569:6:97"},"nativeSrc":"4569:60:97","nodeType":"YulFunctionCall","src":"4569:60:97"},"nativeSrc":"4569:60:97","nodeType":"YulExpressionStatement","src":"4569:60:97"},{"nativeSrc":"4638:55:97","nodeType":"YulVariableDeclaration","src":"4638:55:97","value":{"arguments":[{"name":"memberValue0_3","nativeSrc":"4670:14:97","nodeType":"YulIdentifier","src":"4670:14:97"},{"name":"tail_2","nativeSrc":"4686:6:97","nodeType":"YulIdentifier","src":"4686:6:97"}],"functionName":{"name":"abi_encode_string","nativeSrc":"4652:17:97","nodeType":"YulIdentifier","src":"4652:17:97"},"nativeSrc":"4652:41:97","nodeType":"YulFunctionCall","src":"4652:41:97"},"variables":[{"name":"tail_3","nativeSrc":"4642:6:97","nodeType":"YulTypedName","src":"4642:6:97","type":""}]},{"nativeSrc":"4702:45:97","nodeType":"YulVariableDeclaration","src":"4702:45:97","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"4734:6:97","nodeType":"YulIdentifier","src":"4734:6:97"},{"kind":"number","nativeSrc":"4742:3:97","nodeType":"YulLiteral","src":"4742:3:97","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"4730:3:97","nodeType":"YulIdentifier","src":"4730:3:97"},"nativeSrc":"4730:16:97","nodeType":"YulFunctionCall","src":"4730:16:97"}],"functionName":{"name":"mload","nativeSrc":"4724:5:97","nodeType":"YulIdentifier","src":"4724:5:97"},"nativeSrc":"4724:23:97","nodeType":"YulFunctionCall","src":"4724:23:97"},"variables":[{"name":"memberValue0_4","nativeSrc":"4706:14:97","nodeType":"YulTypedName","src":"4706:14:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4767:9:97","nodeType":"YulIdentifier","src":"4767:9:97"},{"kind":"number","nativeSrc":"4778:3:97","nodeType":"YulLiteral","src":"4778:3:97","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"4763:3:97","nodeType":"YulIdentifier","src":"4763:3:97"},"nativeSrc":"4763:19:97","nodeType":"YulFunctionCall","src":"4763:19:97"},{"arguments":[{"arguments":[{"name":"tail_3","nativeSrc":"4792:6:97","nodeType":"YulIdentifier","src":"4792:6:97"},{"name":"headStart","nativeSrc":"4800:9:97","nodeType":"YulIdentifier","src":"4800:9:97"}],"functionName":{"name":"sub","nativeSrc":"4788:3:97","nodeType":"YulIdentifier","src":"4788:3:97"},"nativeSrc":"4788:22:97","nodeType":"YulFunctionCall","src":"4788:22:97"},{"name":"_2","nativeSrc":"4812:2:97","nodeType":"YulIdentifier","src":"4812:2:97"}],"functionName":{"name":"add","nativeSrc":"4784:3:97","nodeType":"YulIdentifier","src":"4784:3:97"},"nativeSrc":"4784:31:97","nodeType":"YulFunctionCall","src":"4784:31:97"}],"functionName":{"name":"mstore","nativeSrc":"4756:6:97","nodeType":"YulIdentifier","src":"4756:6:97"},"nativeSrc":"4756:60:97","nodeType":"YulFunctionCall","src":"4756:60:97"},"nativeSrc":"4756:60:97","nodeType":"YulExpressionStatement","src":"4756:60:97"},{"nativeSrc":"4825:55:97","nodeType":"YulVariableDeclaration","src":"4825:55:97","value":{"arguments":[{"name":"memberValue0_4","nativeSrc":"4857:14:97","nodeType":"YulIdentifier","src":"4857:14:97"},{"name":"tail_3","nativeSrc":"4873:6:97","nodeType":"YulIdentifier","src":"4873:6:97"}],"functionName":{"name":"abi_encode_string","nativeSrc":"4839:17:97","nodeType":"YulIdentifier","src":"4839:17:97"},"nativeSrc":"4839:41:97","nodeType":"YulFunctionCall","src":"4839:41:97"},"variables":[{"name":"tail_4","nativeSrc":"4829:6:97","nodeType":"YulTypedName","src":"4829:6:97","type":""}]},{"nativeSrc":"4889:33:97","nodeType":"YulVariableDeclaration","src":"4889:33:97","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"4909:6:97","nodeType":"YulIdentifier","src":"4909:6:97"},{"kind":"number","nativeSrc":"4917:3:97","nodeType":"YulLiteral","src":"4917:3:97","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"4905:3:97","nodeType":"YulIdentifier","src":"4905:3:97"},"nativeSrc":"4905:16:97","nodeType":"YulFunctionCall","src":"4905:16:97"}],"functionName":{"name":"mload","nativeSrc":"4899:5:97","nodeType":"YulIdentifier","src":"4899:5:97"},"nativeSrc":"4899:23:97","nodeType":"YulFunctionCall","src":"4899:23:97"},"variables":[{"name":"_3","nativeSrc":"4893:2:97","nodeType":"YulTypedName","src":"4893:2:97","type":""}]},{"nativeSrc":"4931:13:97","nodeType":"YulVariableDeclaration","src":"4931:13:97","value":{"kind":"number","nativeSrc":"4941:3:97","nodeType":"YulLiteral","src":"4941:3:97","type":"","value":"256"},"variables":[{"name":"_4","nativeSrc":"4935:2:97","nodeType":"YulTypedName","src":"4935:2:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4964:9:97","nodeType":"YulIdentifier","src":"4964:9:97"},{"name":"_4","nativeSrc":"4975:2:97","nodeType":"YulIdentifier","src":"4975:2:97"}],"functionName":{"name":"add","nativeSrc":"4960:3:97","nodeType":"YulIdentifier","src":"4960:3:97"},"nativeSrc":"4960:18:97","nodeType":"YulFunctionCall","src":"4960:18:97"},{"name":"_3","nativeSrc":"4980:2:97","nodeType":"YulIdentifier","src":"4980:2:97"}],"functionName":{"name":"mstore","nativeSrc":"4953:6:97","nodeType":"YulIdentifier","src":"4953:6:97"},"nativeSrc":"4953:30:97","nodeType":"YulFunctionCall","src":"4953:30:97"},"nativeSrc":"4953:30:97","nodeType":"YulExpressionStatement","src":"4953:30:97"},{"nativeSrc":"4992:44:97","nodeType":"YulVariableDeclaration","src":"4992:44:97","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"5024:6:97","nodeType":"YulIdentifier","src":"5024:6:97"},{"name":"_4","nativeSrc":"5032:2:97","nodeType":"YulIdentifier","src":"5032:2:97"}],"functionName":{"name":"add","nativeSrc":"5020:3:97","nodeType":"YulIdentifier","src":"5020:3:97"},"nativeSrc":"5020:15:97","nodeType":"YulFunctionCall","src":"5020:15:97"}],"functionName":{"name":"mload","nativeSrc":"5014:5:97","nodeType":"YulIdentifier","src":"5014:5:97"},"nativeSrc":"5014:22:97","nodeType":"YulFunctionCall","src":"5014:22:97"},"variables":[{"name":"memberValue0_5","nativeSrc":"4996:14:97","nodeType":"YulTypedName","src":"4996:14:97","type":""}]},{"nativeSrc":"5045:13:97","nodeType":"YulVariableDeclaration","src":"5045:13:97","value":{"kind":"number","nativeSrc":"5055:3:97","nodeType":"YulLiteral","src":"5055:3:97","type":"","value":"288"},"variables":[{"name":"_5","nativeSrc":"5049:2:97","nodeType":"YulTypedName","src":"5049:2:97","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_5","nativeSrc":"5086:14:97","nodeType":"YulIdentifier","src":"5086:14:97"},{"arguments":[{"name":"headStart","nativeSrc":"5106:9:97","nodeType":"YulIdentifier","src":"5106:9:97"},{"name":"_5","nativeSrc":"5117:2:97","nodeType":"YulIdentifier","src":"5117:2:97"}],"functionName":{"name":"add","nativeSrc":"5102:3:97","nodeType":"YulIdentifier","src":"5102:3:97"},"nativeSrc":"5102:18:97","nodeType":"YulFunctionCall","src":"5102:18:97"}],"functionName":{"name":"abi_encode_address","nativeSrc":"5067:18:97","nodeType":"YulIdentifier","src":"5067:18:97"},"nativeSrc":"5067:54:97","nodeType":"YulFunctionCall","src":"5067:54:97"},"nativeSrc":"5067:54:97","nodeType":"YulExpressionStatement","src":"5067:54:97"},{"nativeSrc":"5130:44:97","nodeType":"YulVariableDeclaration","src":"5130:44:97","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"5162:6:97","nodeType":"YulIdentifier","src":"5162:6:97"},{"name":"_5","nativeSrc":"5170:2:97","nodeType":"YulIdentifier","src":"5170:2:97"}],"functionName":{"name":"add","nativeSrc":"5158:3:97","nodeType":"YulIdentifier","src":"5158:3:97"},"nativeSrc":"5158:15:97","nodeType":"YulFunctionCall","src":"5158:15:97"}],"functionName":{"name":"mload","nativeSrc":"5152:5:97","nodeType":"YulIdentifier","src":"5152:5:97"},"nativeSrc":"5152:22:97","nodeType":"YulFunctionCall","src":"5152:22:97"},"variables":[{"name":"memberValue0_6","nativeSrc":"5134:14:97","nodeType":"YulTypedName","src":"5134:14:97","type":""}]},{"nativeSrc":"5183:13:97","nodeType":"YulVariableDeclaration","src":"5183:13:97","value":{"kind":"number","nativeSrc":"5193:3:97","nodeType":"YulLiteral","src":"5193:3:97","type":"","value":"320"},"variables":[{"name":"_6","nativeSrc":"5187:2:97","nodeType":"YulTypedName","src":"5187:2:97","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_6","nativeSrc":"5223:14:97","nodeType":"YulIdentifier","src":"5223:14:97"},{"arguments":[{"name":"headStart","nativeSrc":"5243:9:97","nodeType":"YulIdentifier","src":"5243:9:97"},{"name":"_6","nativeSrc":"5254:2:97","nodeType":"YulIdentifier","src":"5254:2:97"}],"functionName":{"name":"add","nativeSrc":"5239:3:97","nodeType":"YulIdentifier","src":"5239:3:97"},"nativeSrc":"5239:18:97","nodeType":"YulFunctionCall","src":"5239:18:97"}],"functionName":{"name":"abi_encode_uint96","nativeSrc":"5205:17:97","nodeType":"YulIdentifier","src":"5205:17:97"},"nativeSrc":"5205:53:97","nodeType":"YulFunctionCall","src":"5205:53:97"},"nativeSrc":"5205:53:97","nodeType":"YulExpressionStatement","src":"5205:53:97"},{"nativeSrc":"5267:44:97","nodeType":"YulVariableDeclaration","src":"5267:44:97","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"5299:6:97","nodeType":"YulIdentifier","src":"5299:6:97"},{"name":"_6","nativeSrc":"5307:2:97","nodeType":"YulIdentifier","src":"5307:2:97"}],"functionName":{"name":"add","nativeSrc":"5295:3:97","nodeType":"YulIdentifier","src":"5295:3:97"},"nativeSrc":"5295:15:97","nodeType":"YulFunctionCall","src":"5295:15:97"}],"functionName":{"name":"mload","nativeSrc":"5289:5:97","nodeType":"YulIdentifier","src":"5289:5:97"},"nativeSrc":"5289:22:97","nodeType":"YulFunctionCall","src":"5289:22:97"},"variables":[{"name":"memberValue0_7","nativeSrc":"5271:14:97","nodeType":"YulTypedName","src":"5271:14:97","type":""}]},{"nativeSrc":"5320:13:97","nodeType":"YulVariableDeclaration","src":"5320:13:97","value":{"kind":"number","nativeSrc":"5330:3:97","nodeType":"YulLiteral","src":"5330:3:97","type":"","value":"352"},"variables":[{"name":"_7","nativeSrc":"5324:2:97","nodeType":"YulTypedName","src":"5324:2:97","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_7","nativeSrc":"5360:14:97","nodeType":"YulIdentifier","src":"5360:14:97"},{"arguments":[{"name":"headStart","nativeSrc":"5380:9:97","nodeType":"YulIdentifier","src":"5380:9:97"},{"name":"_7","nativeSrc":"5391:2:97","nodeType":"YulIdentifier","src":"5391:2:97"}],"functionName":{"name":"add","nativeSrc":"5376:3:97","nodeType":"YulIdentifier","src":"5376:3:97"},"nativeSrc":"5376:18:97","nodeType":"YulFunctionCall","src":"5376:18:97"}],"functionName":{"name":"abi_encode_uint32","nativeSrc":"5342:17:97","nodeType":"YulIdentifier","src":"5342:17:97"},"nativeSrc":"5342:53:97","nodeType":"YulFunctionCall","src":"5342:53:97"},"nativeSrc":"5342:53:97","nodeType":"YulExpressionStatement","src":"5342:53:97"},{"nativeSrc":"5404:44:97","nodeType":"YulVariableDeclaration","src":"5404:44:97","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"5436:6:97","nodeType":"YulIdentifier","src":"5436:6:97"},{"name":"_7","nativeSrc":"5444:2:97","nodeType":"YulIdentifier","src":"5444:2:97"}],"functionName":{"name":"add","nativeSrc":"5432:3:97","nodeType":"YulIdentifier","src":"5432:3:97"},"nativeSrc":"5432:15:97","nodeType":"YulFunctionCall","src":"5432:15:97"}],"functionName":{"name":"mload","nativeSrc":"5426:5:97","nodeType":"YulIdentifier","src":"5426:5:97"},"nativeSrc":"5426:22:97","nodeType":"YulFunctionCall","src":"5426:22:97"},"variables":[{"name":"memberValue0_8","nativeSrc":"5408:14:97","nodeType":"YulTypedName","src":"5408:14:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5468:9:97","nodeType":"YulIdentifier","src":"5468:9:97"},{"name":"_1","nativeSrc":"5479:2:97","nodeType":"YulIdentifier","src":"5479:2:97"}],"functionName":{"name":"add","nativeSrc":"5464:3:97","nodeType":"YulIdentifier","src":"5464:3:97"},"nativeSrc":"5464:18:97","nodeType":"YulFunctionCall","src":"5464:18:97"},{"arguments":[{"arguments":[{"name":"tail_4","nativeSrc":"5492:6:97","nodeType":"YulIdentifier","src":"5492:6:97"},{"name":"headStart","nativeSrc":"5500:9:97","nodeType":"YulIdentifier","src":"5500:9:97"}],"functionName":{"name":"sub","nativeSrc":"5488:3:97","nodeType":"YulIdentifier","src":"5488:3:97"},"nativeSrc":"5488:22:97","nodeType":"YulFunctionCall","src":"5488:22:97"},{"name":"_2","nativeSrc":"5512:2:97","nodeType":"YulIdentifier","src":"5512:2:97"}],"functionName":{"name":"add","nativeSrc":"5484:3:97","nodeType":"YulIdentifier","src":"5484:3:97"},"nativeSrc":"5484:31:97","nodeType":"YulFunctionCall","src":"5484:31:97"}],"functionName":{"name":"mstore","nativeSrc":"5457:6:97","nodeType":"YulIdentifier","src":"5457:6:97"},"nativeSrc":"5457:59:97","nodeType":"YulFunctionCall","src":"5457:59:97"},"nativeSrc":"5457:59:97","nodeType":"YulExpressionStatement","src":"5457:59:97"},{"nativeSrc":"5525:49:97","nodeType":"YulAssignment","src":"5525:49:97","value":{"arguments":[{"name":"memberValue0_8","nativeSrc":"5551:14:97","nodeType":"YulIdentifier","src":"5551:14:97"},{"name":"tail_4","nativeSrc":"5567:6:97","nodeType":"YulIdentifier","src":"5567:6:97"}],"functionName":{"name":"abi_encode_string","nativeSrc":"5533:17:97","nodeType":"YulIdentifier","src":"5533:17:97"},"nativeSrc":"5533:41:97","nodeType":"YulFunctionCall","src":"5533:41:97"},"variableNames":[{"name":"tail","nativeSrc":"5525:4:97","nodeType":"YulIdentifier","src":"5525:4:97"}]}]},"name":"abi_encode_tuple_t_struct$_RiskParameterUpdate_$16568_memory_ptr__to_t_struct$_RiskParameterUpdate_$16568_memory_ptr__fromStack_reversed","nativeSrc":"3610:1970:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3756:9:97","nodeType":"YulTypedName","src":"3756:9:97","type":""},{"name":"value0","nativeSrc":"3767:6:97","nodeType":"YulTypedName","src":"3767:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3778:4:97","nodeType":"YulTypedName","src":"3778:4:97","type":""}],"src":"3610:1970:97"},{"body":{"nativeSrc":"5672:167:97","nodeType":"YulBlock","src":"5672:167:97","statements":[{"body":{"nativeSrc":"5718:16:97","nodeType":"YulBlock","src":"5718:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5727:1:97","nodeType":"YulLiteral","src":"5727:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"5730:1:97","nodeType":"YulLiteral","src":"5730:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5720:6:97","nodeType":"YulIdentifier","src":"5720:6:97"},"nativeSrc":"5720:12:97","nodeType":"YulFunctionCall","src":"5720:12:97"},"nativeSrc":"5720:12:97","nodeType":"YulExpressionStatement","src":"5720:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5693:7:97","nodeType":"YulIdentifier","src":"5693:7:97"},{"name":"headStart","nativeSrc":"5702:9:97","nodeType":"YulIdentifier","src":"5702:9:97"}],"functionName":{"name":"sub","nativeSrc":"5689:3:97","nodeType":"YulIdentifier","src":"5689:3:97"},"nativeSrc":"5689:23:97","nodeType":"YulFunctionCall","src":"5689:23:97"},{"kind":"number","nativeSrc":"5714:2:97","nodeType":"YulLiteral","src":"5714:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"5685:3:97","nodeType":"YulIdentifier","src":"5685:3:97"},"nativeSrc":"5685:32:97","nodeType":"YulFunctionCall","src":"5685:32:97"},"nativeSrc":"5682:52:97","nodeType":"YulIf","src":"5682:52:97"},{"nativeSrc":"5743:33:97","nodeType":"YulAssignment","src":"5743:33:97","value":{"arguments":[{"name":"headStart","nativeSrc":"5766:9:97","nodeType":"YulIdentifier","src":"5766:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"5753:12:97","nodeType":"YulIdentifier","src":"5753:12:97"},"nativeSrc":"5753:23:97","nodeType":"YulFunctionCall","src":"5753:23:97"},"variableNames":[{"name":"value0","nativeSrc":"5743:6:97","nodeType":"YulIdentifier","src":"5743:6:97"}]},{"nativeSrc":"5785:48:97","nodeType":"YulAssignment","src":"5785:48:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5818:9:97","nodeType":"YulIdentifier","src":"5818:9:97"},{"kind":"number","nativeSrc":"5829:2:97","nodeType":"YulLiteral","src":"5829:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5814:3:97","nodeType":"YulIdentifier","src":"5814:3:97"},"nativeSrc":"5814:18:97","nodeType":"YulFunctionCall","src":"5814:18:97"}],"functionName":{"name":"abi_decode_address","nativeSrc":"5795:18:97","nodeType":"YulIdentifier","src":"5795:18:97"},"nativeSrc":"5795:38:97","nodeType":"YulFunctionCall","src":"5795:38:97"},"variableNames":[{"name":"value1","nativeSrc":"5785:6:97","nodeType":"YulIdentifier","src":"5785:6:97"}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nativeSrc":"5585:254:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5630:9:97","nodeType":"YulTypedName","src":"5630:9:97","type":""},{"name":"dataEnd","nativeSrc":"5641:7:97","nodeType":"YulTypedName","src":"5641:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5653:6:97","nodeType":"YulTypedName","src":"5653:6:97","type":""},{"name":"value1","nativeSrc":"5661:6:97","nodeType":"YulTypedName","src":"5661:6:97","type":""}],"src":"5585:254:97"},{"body":{"nativeSrc":"5924:242:97","nodeType":"YulBlock","src":"5924:242:97","statements":[{"body":{"nativeSrc":"5970:16:97","nodeType":"YulBlock","src":"5970:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5979:1:97","nodeType":"YulLiteral","src":"5979:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"5982:1:97","nodeType":"YulLiteral","src":"5982:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5972:6:97","nodeType":"YulIdentifier","src":"5972:6:97"},"nativeSrc":"5972:12:97","nodeType":"YulFunctionCall","src":"5972:12:97"},"nativeSrc":"5972:12:97","nodeType":"YulExpressionStatement","src":"5972:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5945:7:97","nodeType":"YulIdentifier","src":"5945:7:97"},{"name":"headStart","nativeSrc":"5954:9:97","nodeType":"YulIdentifier","src":"5954:9:97"}],"functionName":{"name":"sub","nativeSrc":"5941:3:97","nodeType":"YulIdentifier","src":"5941:3:97"},"nativeSrc":"5941:23:97","nodeType":"YulFunctionCall","src":"5941:23:97"},{"kind":"number","nativeSrc":"5966:2:97","nodeType":"YulLiteral","src":"5966:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5937:3:97","nodeType":"YulIdentifier","src":"5937:3:97"},"nativeSrc":"5937:32:97","nodeType":"YulFunctionCall","src":"5937:32:97"},"nativeSrc":"5934:52:97","nodeType":"YulIf","src":"5934:52:97"},{"nativeSrc":"5995:37:97","nodeType":"YulVariableDeclaration","src":"5995:37:97","value":{"arguments":[{"name":"headStart","nativeSrc":"6022:9:97","nodeType":"YulIdentifier","src":"6022:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"6009:12:97","nodeType":"YulIdentifier","src":"6009:12:97"},"nativeSrc":"6009:23:97","nodeType":"YulFunctionCall","src":"6009:23:97"},"variables":[{"name":"offset","nativeSrc":"5999:6:97","nodeType":"YulTypedName","src":"5999:6:97","type":""}]},{"body":{"nativeSrc":"6075:16:97","nodeType":"YulBlock","src":"6075:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6084:1:97","nodeType":"YulLiteral","src":"6084:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"6087:1:97","nodeType":"YulLiteral","src":"6087:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6077:6:97","nodeType":"YulIdentifier","src":"6077:6:97"},"nativeSrc":"6077:12:97","nodeType":"YulFunctionCall","src":"6077:12:97"},"nativeSrc":"6077:12:97","nodeType":"YulExpressionStatement","src":"6077:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"6047:6:97","nodeType":"YulIdentifier","src":"6047:6:97"},{"kind":"number","nativeSrc":"6055:18:97","nodeType":"YulLiteral","src":"6055:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"6044:2:97","nodeType":"YulIdentifier","src":"6044:2:97"},"nativeSrc":"6044:30:97","nodeType":"YulFunctionCall","src":"6044:30:97"},"nativeSrc":"6041:50:97","nodeType":"YulIf","src":"6041:50:97"},{"nativeSrc":"6100:60:97","nodeType":"YulAssignment","src":"6100:60:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6132:9:97","nodeType":"YulIdentifier","src":"6132:9:97"},{"name":"offset","nativeSrc":"6143:6:97","nodeType":"YulIdentifier","src":"6143:6:97"}],"functionName":{"name":"add","nativeSrc":"6128:3:97","nodeType":"YulIdentifier","src":"6128:3:97"},"nativeSrc":"6128:22:97","nodeType":"YulFunctionCall","src":"6128:22:97"},{"name":"dataEnd","nativeSrc":"6152:7:97","nodeType":"YulIdentifier","src":"6152:7:97"}],"functionName":{"name":"abi_decode_string","nativeSrc":"6110:17:97","nodeType":"YulIdentifier","src":"6110:17:97"},"nativeSrc":"6110:50:97","nodeType":"YulFunctionCall","src":"6110:50:97"},"variableNames":[{"name":"value0","nativeSrc":"6100:6:97","nodeType":"YulIdentifier","src":"6100:6:97"}]}]},"name":"abi_decode_tuple_t_string_memory_ptr","nativeSrc":"5844:322:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5890:9:97","nodeType":"YulTypedName","src":"5890:9:97","type":""},{"name":"dataEnd","nativeSrc":"5901:7:97","nodeType":"YulTypedName","src":"5901:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5913:6:97","nodeType":"YulTypedName","src":"5913:6:97","type":""}],"src":"5844:322:97"},{"body":{"nativeSrc":"6219:131:97","nodeType":"YulBlock","src":"6219:131:97","statements":[{"nativeSrc":"6229:29:97","nodeType":"YulAssignment","src":"6229:29:97","value":{"arguments":[{"name":"offset","nativeSrc":"6251:6:97","nodeType":"YulIdentifier","src":"6251:6:97"}],"functionName":{"name":"calldataload","nativeSrc":"6238:12:97","nodeType":"YulIdentifier","src":"6238:12:97"},"nativeSrc":"6238:20:97","nodeType":"YulFunctionCall","src":"6238:20:97"},"variableNames":[{"name":"value","nativeSrc":"6229:5:97","nodeType":"YulIdentifier","src":"6229:5:97"}]},{"body":{"nativeSrc":"6328:16:97","nodeType":"YulBlock","src":"6328:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6337:1:97","nodeType":"YulLiteral","src":"6337:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"6340:1:97","nodeType":"YulLiteral","src":"6340:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6330:6:97","nodeType":"YulIdentifier","src":"6330:6:97"},"nativeSrc":"6330:12:97","nodeType":"YulFunctionCall","src":"6330:12:97"},"nativeSrc":"6330:12:97","nodeType":"YulExpressionStatement","src":"6330:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6280:5:97","nodeType":"YulIdentifier","src":"6280:5:97"},{"arguments":[{"name":"value","nativeSrc":"6291:5:97","nodeType":"YulIdentifier","src":"6291:5:97"},{"kind":"number","nativeSrc":"6298:26:97","nodeType":"YulLiteral","src":"6298:26:97","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"6287:3:97","nodeType":"YulIdentifier","src":"6287:3:97"},"nativeSrc":"6287:38:97","nodeType":"YulFunctionCall","src":"6287:38:97"}],"functionName":{"name":"eq","nativeSrc":"6277:2:97","nodeType":"YulIdentifier","src":"6277:2:97"},"nativeSrc":"6277:49:97","nodeType":"YulFunctionCall","src":"6277:49:97"}],"functionName":{"name":"iszero","nativeSrc":"6270:6:97","nodeType":"YulIdentifier","src":"6270:6:97"},"nativeSrc":"6270:57:97","nodeType":"YulFunctionCall","src":"6270:57:97"},"nativeSrc":"6267:77:97","nodeType":"YulIf","src":"6267:77:97"}]},"name":"abi_decode_uint96","nativeSrc":"6171:179:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6198:6:97","nodeType":"YulTypedName","src":"6198:6:97","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6209:5:97","nodeType":"YulTypedName","src":"6209:5:97","type":""}],"src":"6171:179:97"},{"body":{"nativeSrc":"6403:115:97","nodeType":"YulBlock","src":"6403:115:97","statements":[{"nativeSrc":"6413:29:97","nodeType":"YulAssignment","src":"6413:29:97","value":{"arguments":[{"name":"offset","nativeSrc":"6435:6:97","nodeType":"YulIdentifier","src":"6435:6:97"}],"functionName":{"name":"calldataload","nativeSrc":"6422:12:97","nodeType":"YulIdentifier","src":"6422:12:97"},"nativeSrc":"6422:20:97","nodeType":"YulFunctionCall","src":"6422:20:97"},"variableNames":[{"name":"value","nativeSrc":"6413:5:97","nodeType":"YulIdentifier","src":"6413:5:97"}]},{"body":{"nativeSrc":"6496:16:97","nodeType":"YulBlock","src":"6496:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6505:1:97","nodeType":"YulLiteral","src":"6505:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"6508:1:97","nodeType":"YulLiteral","src":"6508:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6498:6:97","nodeType":"YulIdentifier","src":"6498:6:97"},"nativeSrc":"6498:12:97","nodeType":"YulFunctionCall","src":"6498:12:97"},"nativeSrc":"6498:12:97","nodeType":"YulExpressionStatement","src":"6498:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6464:5:97","nodeType":"YulIdentifier","src":"6464:5:97"},{"arguments":[{"name":"value","nativeSrc":"6475:5:97","nodeType":"YulIdentifier","src":"6475:5:97"},{"kind":"number","nativeSrc":"6482:10:97","nodeType":"YulLiteral","src":"6482:10:97","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nativeSrc":"6471:3:97","nodeType":"YulIdentifier","src":"6471:3:97"},"nativeSrc":"6471:22:97","nodeType":"YulFunctionCall","src":"6471:22:97"}],"functionName":{"name":"eq","nativeSrc":"6461:2:97","nodeType":"YulIdentifier","src":"6461:2:97"},"nativeSrc":"6461:33:97","nodeType":"YulFunctionCall","src":"6461:33:97"}],"functionName":{"name":"iszero","nativeSrc":"6454:6:97","nodeType":"YulIdentifier","src":"6454:6:97"},"nativeSrc":"6454:41:97","nodeType":"YulFunctionCall","src":"6454:41:97"},"nativeSrc":"6451:61:97","nodeType":"YulIf","src":"6451:61:97"}]},"name":"abi_decode_uint32","nativeSrc":"6355:163:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6382:6:97","nodeType":"YulTypedName","src":"6382:6:97","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6393:5:97","nodeType":"YulTypedName","src":"6393:5:97","type":""}],"src":"6355:163:97"},{"body":{"nativeSrc":"6731:955:97","nodeType":"YulBlock","src":"6731:955:97","statements":[{"body":{"nativeSrc":"6778:16:97","nodeType":"YulBlock","src":"6778:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6787:1:97","nodeType":"YulLiteral","src":"6787:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"6790:1:97","nodeType":"YulLiteral","src":"6790:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6780:6:97","nodeType":"YulIdentifier","src":"6780:6:97"},"nativeSrc":"6780:12:97","nodeType":"YulFunctionCall","src":"6780:12:97"},"nativeSrc":"6780:12:97","nodeType":"YulExpressionStatement","src":"6780:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6752:7:97","nodeType":"YulIdentifier","src":"6752:7:97"},{"name":"headStart","nativeSrc":"6761:9:97","nodeType":"YulIdentifier","src":"6761:9:97"}],"functionName":{"name":"sub","nativeSrc":"6748:3:97","nodeType":"YulIdentifier","src":"6748:3:97"},"nativeSrc":"6748:23:97","nodeType":"YulFunctionCall","src":"6748:23:97"},{"kind":"number","nativeSrc":"6773:3:97","nodeType":"YulLiteral","src":"6773:3:97","type":"","value":"224"}],"functionName":{"name":"slt","nativeSrc":"6744:3:97","nodeType":"YulIdentifier","src":"6744:3:97"},"nativeSrc":"6744:33:97","nodeType":"YulFunctionCall","src":"6744:33:97"},"nativeSrc":"6741:53:97","nodeType":"YulIf","src":"6741:53:97"},{"nativeSrc":"6803:37:97","nodeType":"YulVariableDeclaration","src":"6803:37:97","value":{"arguments":[{"name":"headStart","nativeSrc":"6830:9:97","nodeType":"YulIdentifier","src":"6830:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"6817:12:97","nodeType":"YulIdentifier","src":"6817:12:97"},"nativeSrc":"6817:23:97","nodeType":"YulFunctionCall","src":"6817:23:97"},"variables":[{"name":"offset","nativeSrc":"6807:6:97","nodeType":"YulTypedName","src":"6807:6:97","type":""}]},{"nativeSrc":"6849:28:97","nodeType":"YulVariableDeclaration","src":"6849:28:97","value":{"kind":"number","nativeSrc":"6859:18:97","nodeType":"YulLiteral","src":"6859:18:97","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"6853:2:97","nodeType":"YulTypedName","src":"6853:2:97","type":""}]},{"body":{"nativeSrc":"6904:16:97","nodeType":"YulBlock","src":"6904:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6913:1:97","nodeType":"YulLiteral","src":"6913:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"6916:1:97","nodeType":"YulLiteral","src":"6916:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6906:6:97","nodeType":"YulIdentifier","src":"6906:6:97"},"nativeSrc":"6906:12:97","nodeType":"YulFunctionCall","src":"6906:12:97"},"nativeSrc":"6906:12:97","nodeType":"YulExpressionStatement","src":"6906:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"6892:6:97","nodeType":"YulIdentifier","src":"6892:6:97"},{"name":"_1","nativeSrc":"6900:2:97","nodeType":"YulIdentifier","src":"6900:2:97"}],"functionName":{"name":"gt","nativeSrc":"6889:2:97","nodeType":"YulIdentifier","src":"6889:2:97"},"nativeSrc":"6889:14:97","nodeType":"YulFunctionCall","src":"6889:14:97"},"nativeSrc":"6886:34:97","nodeType":"YulIf","src":"6886:34:97"},{"nativeSrc":"6929:60:97","nodeType":"YulAssignment","src":"6929:60:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6961:9:97","nodeType":"YulIdentifier","src":"6961:9:97"},{"name":"offset","nativeSrc":"6972:6:97","nodeType":"YulIdentifier","src":"6972:6:97"}],"functionName":{"name":"add","nativeSrc":"6957:3:97","nodeType":"YulIdentifier","src":"6957:3:97"},"nativeSrc":"6957:22:97","nodeType":"YulFunctionCall","src":"6957:22:97"},{"name":"dataEnd","nativeSrc":"6981:7:97","nodeType":"YulIdentifier","src":"6981:7:97"}],"functionName":{"name":"abi_decode_string","nativeSrc":"6939:17:97","nodeType":"YulIdentifier","src":"6939:17:97"},"nativeSrc":"6939:50:97","nodeType":"YulFunctionCall","src":"6939:50:97"},"variableNames":[{"name":"value0","nativeSrc":"6929:6:97","nodeType":"YulIdentifier","src":"6929:6:97"}]},{"nativeSrc":"6998:48:97","nodeType":"YulVariableDeclaration","src":"6998:48:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7031:9:97","nodeType":"YulIdentifier","src":"7031:9:97"},{"kind":"number","nativeSrc":"7042:2:97","nodeType":"YulLiteral","src":"7042:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7027:3:97","nodeType":"YulIdentifier","src":"7027:3:97"},"nativeSrc":"7027:18:97","nodeType":"YulFunctionCall","src":"7027:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"7014:12:97","nodeType":"YulIdentifier","src":"7014:12:97"},"nativeSrc":"7014:32:97","nodeType":"YulFunctionCall","src":"7014:32:97"},"variables":[{"name":"offset_1","nativeSrc":"7002:8:97","nodeType":"YulTypedName","src":"7002:8:97","type":""}]},{"body":{"nativeSrc":"7075:16:97","nodeType":"YulBlock","src":"7075:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7084:1:97","nodeType":"YulLiteral","src":"7084:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"7087:1:97","nodeType":"YulLiteral","src":"7087:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7077:6:97","nodeType":"YulIdentifier","src":"7077:6:97"},"nativeSrc":"7077:12:97","nodeType":"YulFunctionCall","src":"7077:12:97"},"nativeSrc":"7077:12:97","nodeType":"YulExpressionStatement","src":"7077:12:97"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"7061:8:97","nodeType":"YulIdentifier","src":"7061:8:97"},{"name":"_1","nativeSrc":"7071:2:97","nodeType":"YulIdentifier","src":"7071:2:97"}],"functionName":{"name":"gt","nativeSrc":"7058:2:97","nodeType":"YulIdentifier","src":"7058:2:97"},"nativeSrc":"7058:16:97","nodeType":"YulFunctionCall","src":"7058:16:97"},"nativeSrc":"7055:36:97","nodeType":"YulIf","src":"7055:36:97"},{"nativeSrc":"7100:62:97","nodeType":"YulAssignment","src":"7100:62:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7132:9:97","nodeType":"YulIdentifier","src":"7132:9:97"},{"name":"offset_1","nativeSrc":"7143:8:97","nodeType":"YulIdentifier","src":"7143:8:97"}],"functionName":{"name":"add","nativeSrc":"7128:3:97","nodeType":"YulIdentifier","src":"7128:3:97"},"nativeSrc":"7128:24:97","nodeType":"YulFunctionCall","src":"7128:24:97"},{"name":"dataEnd","nativeSrc":"7154:7:97","nodeType":"YulIdentifier","src":"7154:7:97"}],"functionName":{"name":"abi_decode_string","nativeSrc":"7110:17:97","nodeType":"YulIdentifier","src":"7110:17:97"},"nativeSrc":"7110:52:97","nodeType":"YulFunctionCall","src":"7110:52:97"},"variableNames":[{"name":"value1","nativeSrc":"7100:6:97","nodeType":"YulIdentifier","src":"7100:6:97"}]},{"nativeSrc":"7171:48:97","nodeType":"YulVariableDeclaration","src":"7171:48:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7204:9:97","nodeType":"YulIdentifier","src":"7204:9:97"},{"kind":"number","nativeSrc":"7215:2:97","nodeType":"YulLiteral","src":"7215:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7200:3:97","nodeType":"YulIdentifier","src":"7200:3:97"},"nativeSrc":"7200:18:97","nodeType":"YulFunctionCall","src":"7200:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"7187:12:97","nodeType":"YulIdentifier","src":"7187:12:97"},"nativeSrc":"7187:32:97","nodeType":"YulFunctionCall","src":"7187:32:97"},"variables":[{"name":"offset_2","nativeSrc":"7175:8:97","nodeType":"YulTypedName","src":"7175:8:97","type":""}]},{"body":{"nativeSrc":"7248:16:97","nodeType":"YulBlock","src":"7248:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7257:1:97","nodeType":"YulLiteral","src":"7257:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"7260:1:97","nodeType":"YulLiteral","src":"7260:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7250:6:97","nodeType":"YulIdentifier","src":"7250:6:97"},"nativeSrc":"7250:12:97","nodeType":"YulFunctionCall","src":"7250:12:97"},"nativeSrc":"7250:12:97","nodeType":"YulExpressionStatement","src":"7250:12:97"}]},"condition":{"arguments":[{"name":"offset_2","nativeSrc":"7234:8:97","nodeType":"YulIdentifier","src":"7234:8:97"},{"name":"_1","nativeSrc":"7244:2:97","nodeType":"YulIdentifier","src":"7244:2:97"}],"functionName":{"name":"gt","nativeSrc":"7231:2:97","nodeType":"YulIdentifier","src":"7231:2:97"},"nativeSrc":"7231:16:97","nodeType":"YulFunctionCall","src":"7231:16:97"},"nativeSrc":"7228:36:97","nodeType":"YulIf","src":"7228:36:97"},{"nativeSrc":"7273:62:97","nodeType":"YulAssignment","src":"7273:62:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7305:9:97","nodeType":"YulIdentifier","src":"7305:9:97"},{"name":"offset_2","nativeSrc":"7316:8:97","nodeType":"YulIdentifier","src":"7316:8:97"}],"functionName":{"name":"add","nativeSrc":"7301:3:97","nodeType":"YulIdentifier","src":"7301:3:97"},"nativeSrc":"7301:24:97","nodeType":"YulFunctionCall","src":"7301:24:97"},{"name":"dataEnd","nativeSrc":"7327:7:97","nodeType":"YulIdentifier","src":"7327:7:97"}],"functionName":{"name":"abi_decode_string","nativeSrc":"7283:17:97","nodeType":"YulIdentifier","src":"7283:17:97"},"nativeSrc":"7283:52:97","nodeType":"YulFunctionCall","src":"7283:52:97"},"variableNames":[{"name":"value2","nativeSrc":"7273:6:97","nodeType":"YulIdentifier","src":"7273:6:97"}]},{"nativeSrc":"7344:48:97","nodeType":"YulAssignment","src":"7344:48:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7377:9:97","nodeType":"YulIdentifier","src":"7377:9:97"},{"kind":"number","nativeSrc":"7388:2:97","nodeType":"YulLiteral","src":"7388:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"7373:3:97","nodeType":"YulIdentifier","src":"7373:3:97"},"nativeSrc":"7373:18:97","nodeType":"YulFunctionCall","src":"7373:18:97"}],"functionName":{"name":"abi_decode_address","nativeSrc":"7354:18:97","nodeType":"YulIdentifier","src":"7354:18:97"},"nativeSrc":"7354:38:97","nodeType":"YulFunctionCall","src":"7354:38:97"},"variableNames":[{"name":"value3","nativeSrc":"7344:6:97","nodeType":"YulIdentifier","src":"7344:6:97"}]},{"nativeSrc":"7401:48:97","nodeType":"YulAssignment","src":"7401:48:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7433:9:97","nodeType":"YulIdentifier","src":"7433:9:97"},{"kind":"number","nativeSrc":"7444:3:97","nodeType":"YulLiteral","src":"7444:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"7429:3:97","nodeType":"YulIdentifier","src":"7429:3:97"},"nativeSrc":"7429:19:97","nodeType":"YulFunctionCall","src":"7429:19:97"}],"functionName":{"name":"abi_decode_uint96","nativeSrc":"7411:17:97","nodeType":"YulIdentifier","src":"7411:17:97"},"nativeSrc":"7411:38:97","nodeType":"YulFunctionCall","src":"7411:38:97"},"variableNames":[{"name":"value4","nativeSrc":"7401:6:97","nodeType":"YulIdentifier","src":"7401:6:97"}]},{"nativeSrc":"7458:48:97","nodeType":"YulAssignment","src":"7458:48:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7490:9:97","nodeType":"YulIdentifier","src":"7490:9:97"},{"kind":"number","nativeSrc":"7501:3:97","nodeType":"YulLiteral","src":"7501:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"7486:3:97","nodeType":"YulIdentifier","src":"7486:3:97"},"nativeSrc":"7486:19:97","nodeType":"YulFunctionCall","src":"7486:19:97"}],"functionName":{"name":"abi_decode_uint32","nativeSrc":"7468:17:97","nodeType":"YulIdentifier","src":"7468:17:97"},"nativeSrc":"7468:38:97","nodeType":"YulFunctionCall","src":"7468:38:97"},"variableNames":[{"name":"value5","nativeSrc":"7458:6:97","nodeType":"YulIdentifier","src":"7458:6:97"}]},{"nativeSrc":"7515:49:97","nodeType":"YulVariableDeclaration","src":"7515:49:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7548:9:97","nodeType":"YulIdentifier","src":"7548:9:97"},{"kind":"number","nativeSrc":"7559:3:97","nodeType":"YulLiteral","src":"7559:3:97","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"7544:3:97","nodeType":"YulIdentifier","src":"7544:3:97"},"nativeSrc":"7544:19:97","nodeType":"YulFunctionCall","src":"7544:19:97"}],"functionName":{"name":"calldataload","nativeSrc":"7531:12:97","nodeType":"YulIdentifier","src":"7531:12:97"},"nativeSrc":"7531:33:97","nodeType":"YulFunctionCall","src":"7531:33:97"},"variables":[{"name":"offset_3","nativeSrc":"7519:8:97","nodeType":"YulTypedName","src":"7519:8:97","type":""}]},{"body":{"nativeSrc":"7593:16:97","nodeType":"YulBlock","src":"7593:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7602:1:97","nodeType":"YulLiteral","src":"7602:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"7605:1:97","nodeType":"YulLiteral","src":"7605:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7595:6:97","nodeType":"YulIdentifier","src":"7595:6:97"},"nativeSrc":"7595:12:97","nodeType":"YulFunctionCall","src":"7595:12:97"},"nativeSrc":"7595:12:97","nodeType":"YulExpressionStatement","src":"7595:12:97"}]},"condition":{"arguments":[{"name":"offset_3","nativeSrc":"7579:8:97","nodeType":"YulIdentifier","src":"7579:8:97"},{"name":"_1","nativeSrc":"7589:2:97","nodeType":"YulIdentifier","src":"7589:2:97"}],"functionName":{"name":"gt","nativeSrc":"7576:2:97","nodeType":"YulIdentifier","src":"7576:2:97"},"nativeSrc":"7576:16:97","nodeType":"YulFunctionCall","src":"7576:16:97"},"nativeSrc":"7573:36:97","nodeType":"YulIf","src":"7573:36:97"},{"nativeSrc":"7618:62:97","nodeType":"YulAssignment","src":"7618:62:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7650:9:97","nodeType":"YulIdentifier","src":"7650:9:97"},{"name":"offset_3","nativeSrc":"7661:8:97","nodeType":"YulIdentifier","src":"7661:8:97"}],"functionName":{"name":"add","nativeSrc":"7646:3:97","nodeType":"YulIdentifier","src":"7646:3:97"},"nativeSrc":"7646:24:97","nodeType":"YulFunctionCall","src":"7646:24:97"},{"name":"dataEnd","nativeSrc":"7672:7:97","nodeType":"YulIdentifier","src":"7672:7:97"}],"functionName":{"name":"abi_decode_string","nativeSrc":"7628:17:97","nodeType":"YulIdentifier","src":"7628:17:97"},"nativeSrc":"7628:52:97","nodeType":"YulFunctionCall","src":"7628:52:97"},"variableNames":[{"name":"value6","nativeSrc":"7618:6:97","nodeType":"YulIdentifier","src":"7618:6:97"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_bytes_memory_ptrt_string_memory_ptrt_addresst_uint96t_uint32t_bytes_memory_ptr","nativeSrc":"6523:1163:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6649:9:97","nodeType":"YulTypedName","src":"6649:9:97","type":""},{"name":"dataEnd","nativeSrc":"6660:7:97","nodeType":"YulTypedName","src":"6660:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6672:6:97","nodeType":"YulTypedName","src":"6672:6:97","type":""},{"name":"value1","nativeSrc":"6680:6:97","nodeType":"YulTypedName","src":"6680:6:97","type":""},{"name":"value2","nativeSrc":"6688:6:97","nodeType":"YulTypedName","src":"6688:6:97","type":""},{"name":"value3","nativeSrc":"6696:6:97","nodeType":"YulTypedName","src":"6696:6:97","type":""},{"name":"value4","nativeSrc":"6704:6:97","nodeType":"YulTypedName","src":"6704:6:97","type":""},{"name":"value5","nativeSrc":"6712:6:97","nodeType":"YulTypedName","src":"6712:6:97","type":""},{"name":"value6","nativeSrc":"6720:6:97","nodeType":"YulTypedName","src":"6720:6:97","type":""}],"src":"6523:1163:97"},{"body":{"nativeSrc":"7792:125:97","nodeType":"YulBlock","src":"7792:125:97","statements":[{"nativeSrc":"7802:26:97","nodeType":"YulAssignment","src":"7802:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"7814:9:97","nodeType":"YulIdentifier","src":"7814:9:97"},{"kind":"number","nativeSrc":"7825:2:97","nodeType":"YulLiteral","src":"7825:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7810:3:97","nodeType":"YulIdentifier","src":"7810:3:97"},"nativeSrc":"7810:18:97","nodeType":"YulFunctionCall","src":"7810:18:97"},"variableNames":[{"name":"tail","nativeSrc":"7802:4:97","nodeType":"YulIdentifier","src":"7802:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7844:9:97","nodeType":"YulIdentifier","src":"7844:9:97"},{"arguments":[{"name":"value0","nativeSrc":"7859:6:97","nodeType":"YulIdentifier","src":"7859:6:97"},{"kind":"number","nativeSrc":"7867:42:97","nodeType":"YulLiteral","src":"7867:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"7855:3:97","nodeType":"YulIdentifier","src":"7855:3:97"},"nativeSrc":"7855:55:97","nodeType":"YulFunctionCall","src":"7855:55:97"}],"functionName":{"name":"mstore","nativeSrc":"7837:6:97","nodeType":"YulIdentifier","src":"7837:6:97"},"nativeSrc":"7837:74:97","nodeType":"YulFunctionCall","src":"7837:74:97"},"nativeSrc":"7837:74:97","nodeType":"YulExpressionStatement","src":"7837:74:97"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"7691:226:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7761:9:97","nodeType":"YulTypedName","src":"7761:9:97","type":""},{"name":"value0","nativeSrc":"7772:6:97","nodeType":"YulTypedName","src":"7772:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7783:4:97","nodeType":"YulTypedName","src":"7783:4:97","type":""}],"src":"7691:226:97"},{"body":{"nativeSrc":"8423:955:97","nodeType":"YulBlock","src":"8423:955:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8440:9:97","nodeType":"YulIdentifier","src":"8440:9:97"},{"kind":"number","nativeSrc":"8451:3:97","nodeType":"YulLiteral","src":"8451:3:97","type":"","value":"384"}],"functionName":{"name":"mstore","nativeSrc":"8433:6:97","nodeType":"YulIdentifier","src":"8433:6:97"},"nativeSrc":"8433:22:97","nodeType":"YulFunctionCall","src":"8433:22:97"},"nativeSrc":"8433:22:97","nodeType":"YulExpressionStatement","src":"8433:22:97"},{"nativeSrc":"8464:60:97","nodeType":"YulVariableDeclaration","src":"8464:60:97","value":{"arguments":[{"name":"value0","nativeSrc":"8496:6:97","nodeType":"YulIdentifier","src":"8496:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"8508:9:97","nodeType":"YulIdentifier","src":"8508:9:97"},{"kind":"number","nativeSrc":"8519:3:97","nodeType":"YulLiteral","src":"8519:3:97","type":"","value":"384"}],"functionName":{"name":"add","nativeSrc":"8504:3:97","nodeType":"YulIdentifier","src":"8504:3:97"},"nativeSrc":"8504:19:97","nodeType":"YulFunctionCall","src":"8504:19:97"}],"functionName":{"name":"abi_encode_string","nativeSrc":"8478:17:97","nodeType":"YulIdentifier","src":"8478:17:97"},"nativeSrc":"8478:46:97","nodeType":"YulFunctionCall","src":"8478:46:97"},"variables":[{"name":"tail_1","nativeSrc":"8468:6:97","nodeType":"YulTypedName","src":"8468:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8544:9:97","nodeType":"YulIdentifier","src":"8544:9:97"},{"kind":"number","nativeSrc":"8555:2:97","nodeType":"YulLiteral","src":"8555:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8540:3:97","nodeType":"YulIdentifier","src":"8540:3:97"},"nativeSrc":"8540:18:97","nodeType":"YulFunctionCall","src":"8540:18:97"},{"name":"value1","nativeSrc":"8560:6:97","nodeType":"YulIdentifier","src":"8560:6:97"}],"functionName":{"name":"mstore","nativeSrc":"8533:6:97","nodeType":"YulIdentifier","src":"8533:6:97"},"nativeSrc":"8533:34:97","nodeType":"YulFunctionCall","src":"8533:34:97"},"nativeSrc":"8533:34:97","nodeType":"YulExpressionStatement","src":"8533:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8587:9:97","nodeType":"YulIdentifier","src":"8587:9:97"},{"kind":"number","nativeSrc":"8598:2:97","nodeType":"YulLiteral","src":"8598:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8583:3:97","nodeType":"YulIdentifier","src":"8583:3:97"},"nativeSrc":"8583:18:97","nodeType":"YulFunctionCall","src":"8583:18:97"},{"arguments":[{"name":"value2","nativeSrc":"8607:6:97","nodeType":"YulIdentifier","src":"8607:6:97"},{"kind":"number","nativeSrc":"8615:42:97","nodeType":"YulLiteral","src":"8615:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"8603:3:97","nodeType":"YulIdentifier","src":"8603:3:97"},"nativeSrc":"8603:55:97","nodeType":"YulFunctionCall","src":"8603:55:97"}],"functionName":{"name":"mstore","nativeSrc":"8576:6:97","nodeType":"YulIdentifier","src":"8576:6:97"},"nativeSrc":"8576:83:97","nodeType":"YulFunctionCall","src":"8576:83:97"},"nativeSrc":"8576:83:97","nodeType":"YulExpressionStatement","src":"8576:83:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8679:9:97","nodeType":"YulIdentifier","src":"8679:9:97"},{"kind":"number","nativeSrc":"8690:2:97","nodeType":"YulLiteral","src":"8690:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"8675:3:97","nodeType":"YulIdentifier","src":"8675:3:97"},"nativeSrc":"8675:18:97","nodeType":"YulFunctionCall","src":"8675:18:97"},{"arguments":[{"name":"tail_1","nativeSrc":"8699:6:97","nodeType":"YulIdentifier","src":"8699:6:97"},{"name":"headStart","nativeSrc":"8707:9:97","nodeType":"YulIdentifier","src":"8707:9:97"}],"functionName":{"name":"sub","nativeSrc":"8695:3:97","nodeType":"YulIdentifier","src":"8695:3:97"},"nativeSrc":"8695:22:97","nodeType":"YulFunctionCall","src":"8695:22:97"}],"functionName":{"name":"mstore","nativeSrc":"8668:6:97","nodeType":"YulIdentifier","src":"8668:6:97"},"nativeSrc":"8668:50:97","nodeType":"YulFunctionCall","src":"8668:50:97"},"nativeSrc":"8668:50:97","nodeType":"YulExpressionStatement","src":"8668:50:97"},{"nativeSrc":"8727:47:97","nodeType":"YulVariableDeclaration","src":"8727:47:97","value":{"arguments":[{"name":"value3","nativeSrc":"8759:6:97","nodeType":"YulIdentifier","src":"8759:6:97"},{"name":"tail_1","nativeSrc":"8767:6:97","nodeType":"YulIdentifier","src":"8767:6:97"}],"functionName":{"name":"abi_encode_string","nativeSrc":"8741:17:97","nodeType":"YulIdentifier","src":"8741:17:97"},"nativeSrc":"8741:33:97","nodeType":"YulFunctionCall","src":"8741:33:97"},"variables":[{"name":"tail_2","nativeSrc":"8731:6:97","nodeType":"YulTypedName","src":"8731:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8794:9:97","nodeType":"YulIdentifier","src":"8794:9:97"},{"kind":"number","nativeSrc":"8805:3:97","nodeType":"YulLiteral","src":"8805:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"8790:3:97","nodeType":"YulIdentifier","src":"8790:3:97"},"nativeSrc":"8790:19:97","nodeType":"YulFunctionCall","src":"8790:19:97"},{"name":"value4","nativeSrc":"8811:6:97","nodeType":"YulIdentifier","src":"8811:6:97"}],"functionName":{"name":"mstore","nativeSrc":"8783:6:97","nodeType":"YulIdentifier","src":"8783:6:97"},"nativeSrc":"8783:35:97","nodeType":"YulFunctionCall","src":"8783:35:97"},"nativeSrc":"8783:35:97","nodeType":"YulExpressionStatement","src":"8783:35:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8838:9:97","nodeType":"YulIdentifier","src":"8838:9:97"},{"kind":"number","nativeSrc":"8849:3:97","nodeType":"YulLiteral","src":"8849:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"8834:3:97","nodeType":"YulIdentifier","src":"8834:3:97"},"nativeSrc":"8834:19:97","nodeType":"YulFunctionCall","src":"8834:19:97"},{"arguments":[{"name":"tail_2","nativeSrc":"8859:6:97","nodeType":"YulIdentifier","src":"8859:6:97"},{"name":"headStart","nativeSrc":"8867:9:97","nodeType":"YulIdentifier","src":"8867:9:97"}],"functionName":{"name":"sub","nativeSrc":"8855:3:97","nodeType":"YulIdentifier","src":"8855:3:97"},"nativeSrc":"8855:22:97","nodeType":"YulFunctionCall","src":"8855:22:97"}],"functionName":{"name":"mstore","nativeSrc":"8827:6:97","nodeType":"YulIdentifier","src":"8827:6:97"},"nativeSrc":"8827:51:97","nodeType":"YulFunctionCall","src":"8827:51:97"},"nativeSrc":"8827:51:97","nodeType":"YulExpressionStatement","src":"8827:51:97"},{"nativeSrc":"8887:47:97","nodeType":"YulVariableDeclaration","src":"8887:47:97","value":{"arguments":[{"name":"value5","nativeSrc":"8919:6:97","nodeType":"YulIdentifier","src":"8919:6:97"},{"name":"tail_2","nativeSrc":"8927:6:97","nodeType":"YulIdentifier","src":"8927:6:97"}],"functionName":{"name":"abi_encode_string","nativeSrc":"8901:17:97","nodeType":"YulIdentifier","src":"8901:17:97"},"nativeSrc":"8901:33:97","nodeType":"YulFunctionCall","src":"8901:33:97"},"variables":[{"name":"tail_3","nativeSrc":"8891:6:97","nodeType":"YulTypedName","src":"8891:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8954:9:97","nodeType":"YulIdentifier","src":"8954:9:97"},{"kind":"number","nativeSrc":"8965:3:97","nodeType":"YulLiteral","src":"8965:3:97","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"8950:3:97","nodeType":"YulIdentifier","src":"8950:3:97"},"nativeSrc":"8950:19:97","nodeType":"YulFunctionCall","src":"8950:19:97"},{"arguments":[{"name":"tail_3","nativeSrc":"8975:6:97","nodeType":"YulIdentifier","src":"8975:6:97"},{"name":"headStart","nativeSrc":"8983:9:97","nodeType":"YulIdentifier","src":"8983:9:97"}],"functionName":{"name":"sub","nativeSrc":"8971:3:97","nodeType":"YulIdentifier","src":"8971:3:97"},"nativeSrc":"8971:22:97","nodeType":"YulFunctionCall","src":"8971:22:97"}],"functionName":{"name":"mstore","nativeSrc":"8943:6:97","nodeType":"YulIdentifier","src":"8943:6:97"},"nativeSrc":"8943:51:97","nodeType":"YulFunctionCall","src":"8943:51:97"},"nativeSrc":"8943:51:97","nodeType":"YulExpressionStatement","src":"8943:51:97"},{"nativeSrc":"9003:47:97","nodeType":"YulVariableDeclaration","src":"9003:47:97","value":{"arguments":[{"name":"value6","nativeSrc":"9035:6:97","nodeType":"YulIdentifier","src":"9035:6:97"},{"name":"tail_3","nativeSrc":"9043:6:97","nodeType":"YulIdentifier","src":"9043:6:97"}],"functionName":{"name":"abi_encode_string","nativeSrc":"9017:17:97","nodeType":"YulIdentifier","src":"9017:17:97"},"nativeSrc":"9017:33:97","nodeType":"YulFunctionCall","src":"9017:33:97"},"variables":[{"name":"tail_4","nativeSrc":"9007:6:97","nodeType":"YulTypedName","src":"9007:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9070:9:97","nodeType":"YulIdentifier","src":"9070:9:97"},{"kind":"number","nativeSrc":"9081:3:97","nodeType":"YulLiteral","src":"9081:3:97","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"9066:3:97","nodeType":"YulIdentifier","src":"9066:3:97"},"nativeSrc":"9066:19:97","nodeType":"YulFunctionCall","src":"9066:19:97"},{"name":"value7","nativeSrc":"9087:6:97","nodeType":"YulIdentifier","src":"9087:6:97"}],"functionName":{"name":"mstore","nativeSrc":"9059:6:97","nodeType":"YulIdentifier","src":"9059:6:97"},"nativeSrc":"9059:35:97","nodeType":"YulFunctionCall","src":"9059:35:97"},"nativeSrc":"9059:35:97","nodeType":"YulExpressionStatement","src":"9059:35:97"},{"expression":{"arguments":[{"name":"value8","nativeSrc":"9122:6:97","nodeType":"YulIdentifier","src":"9122:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"9134:9:97","nodeType":"YulIdentifier","src":"9134:9:97"},{"kind":"number","nativeSrc":"9145:3:97","nodeType":"YulLiteral","src":"9145:3:97","type":"","value":"256"}],"functionName":{"name":"add","nativeSrc":"9130:3:97","nodeType":"YulIdentifier","src":"9130:3:97"},"nativeSrc":"9130:19:97","nodeType":"YulFunctionCall","src":"9130:19:97"}],"functionName":{"name":"abi_encode_address","nativeSrc":"9103:18:97","nodeType":"YulIdentifier","src":"9103:18:97"},"nativeSrc":"9103:47:97","nodeType":"YulFunctionCall","src":"9103:47:97"},"nativeSrc":"9103:47:97","nodeType":"YulExpressionStatement","src":"9103:47:97"},{"expression":{"arguments":[{"name":"value9","nativeSrc":"9177:6:97","nodeType":"YulIdentifier","src":"9177:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"9189:9:97","nodeType":"YulIdentifier","src":"9189:9:97"},{"kind":"number","nativeSrc":"9200:3:97","nodeType":"YulLiteral","src":"9200:3:97","type":"","value":"288"}],"functionName":{"name":"add","nativeSrc":"9185:3:97","nodeType":"YulIdentifier","src":"9185:3:97"},"nativeSrc":"9185:19:97","nodeType":"YulFunctionCall","src":"9185:19:97"}],"functionName":{"name":"abi_encode_uint96","nativeSrc":"9159:17:97","nodeType":"YulIdentifier","src":"9159:17:97"},"nativeSrc":"9159:46:97","nodeType":"YulFunctionCall","src":"9159:46:97"},"nativeSrc":"9159:46:97","nodeType":"YulExpressionStatement","src":"9159:46:97"},{"expression":{"arguments":[{"name":"value10","nativeSrc":"9232:7:97","nodeType":"YulIdentifier","src":"9232:7:97"},{"arguments":[{"name":"headStart","nativeSrc":"9245:9:97","nodeType":"YulIdentifier","src":"9245:9:97"},{"kind":"number","nativeSrc":"9256:3:97","nodeType":"YulLiteral","src":"9256:3:97","type":"","value":"320"}],"functionName":{"name":"add","nativeSrc":"9241:3:97","nodeType":"YulIdentifier","src":"9241:3:97"},"nativeSrc":"9241:19:97","nodeType":"YulFunctionCall","src":"9241:19:97"}],"functionName":{"name":"abi_encode_uint32","nativeSrc":"9214:17:97","nodeType":"YulIdentifier","src":"9214:17:97"},"nativeSrc":"9214:47:97","nodeType":"YulFunctionCall","src":"9214:47:97"},"nativeSrc":"9214:47:97","nodeType":"YulExpressionStatement","src":"9214:47:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9281:9:97","nodeType":"YulIdentifier","src":"9281:9:97"},{"kind":"number","nativeSrc":"9292:3:97","nodeType":"YulLiteral","src":"9292:3:97","type":"","value":"352"}],"functionName":{"name":"add","nativeSrc":"9277:3:97","nodeType":"YulIdentifier","src":"9277:3:97"},"nativeSrc":"9277:19:97","nodeType":"YulFunctionCall","src":"9277:19:97"},{"arguments":[{"name":"tail_4","nativeSrc":"9302:6:97","nodeType":"YulIdentifier","src":"9302:6:97"},{"name":"headStart","nativeSrc":"9310:9:97","nodeType":"YulIdentifier","src":"9310:9:97"}],"functionName":{"name":"sub","nativeSrc":"9298:3:97","nodeType":"YulIdentifier","src":"9298:3:97"},"nativeSrc":"9298:22:97","nodeType":"YulFunctionCall","src":"9298:22:97"}],"functionName":{"name":"mstore","nativeSrc":"9270:6:97","nodeType":"YulIdentifier","src":"9270:6:97"},"nativeSrc":"9270:51:97","nodeType":"YulFunctionCall","src":"9270:51:97"},"nativeSrc":"9270:51:97","nodeType":"YulExpressionStatement","src":"9270:51:97"},{"nativeSrc":"9330:42:97","nodeType":"YulAssignment","src":"9330:42:97","value":{"arguments":[{"name":"value11","nativeSrc":"9356:7:97","nodeType":"YulIdentifier","src":"9356:7:97"},{"name":"tail_4","nativeSrc":"9365:6:97","nodeType":"YulIdentifier","src":"9365:6:97"}],"functionName":{"name":"abi_encode_string","nativeSrc":"9338:17:97","nodeType":"YulIdentifier","src":"9338:17:97"},"nativeSrc":"9338:34:97","nodeType":"YulFunctionCall","src":"9338:34:97"},"variableNames":[{"name":"tail","nativeSrc":"9330:4:97","nodeType":"YulIdentifier","src":"9330:4:97"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr_t_uint256_t_address_t_string_memory_ptr_t_bytes32_t_bytes_memory_ptr_t_bytes_memory_ptr_t_uint256_t_address_t_uint96_t_uint32_t_bytes_memory_ptr__to_t_string_memory_ptr_t_uint256_t_address_t_string_memory_ptr_t_bytes32_t_bytes_memory_ptr_t_bytes_memory_ptr_t_uint256_t_address_t_uint96_t_uint32_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"7922:1456:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8302:9:97","nodeType":"YulTypedName","src":"8302:9:97","type":""},{"name":"value11","nativeSrc":"8313:7:97","nodeType":"YulTypedName","src":"8313:7:97","type":""},{"name":"value10","nativeSrc":"8322:7:97","nodeType":"YulTypedName","src":"8322:7:97","type":""},{"name":"value9","nativeSrc":"8331:6:97","nodeType":"YulTypedName","src":"8331:6:97","type":""},{"name":"value8","nativeSrc":"8339:6:97","nodeType":"YulTypedName","src":"8339:6:97","type":""},{"name":"value7","nativeSrc":"8347:6:97","nodeType":"YulTypedName","src":"8347:6:97","type":""},{"name":"value6","nativeSrc":"8355:6:97","nodeType":"YulTypedName","src":"8355:6:97","type":""},{"name":"value5","nativeSrc":"8363:6:97","nodeType":"YulTypedName","src":"8363:6:97","type":""},{"name":"value4","nativeSrc":"8371:6:97","nodeType":"YulTypedName","src":"8371:6:97","type":""},{"name":"value3","nativeSrc":"8379:6:97","nodeType":"YulTypedName","src":"8379:6:97","type":""},{"name":"value2","nativeSrc":"8387:6:97","nodeType":"YulTypedName","src":"8387:6:97","type":""},{"name":"value1","nativeSrc":"8395:6:97","nodeType":"YulTypedName","src":"8395:6:97","type":""},{"name":"value0","nativeSrc":"8403:6:97","nodeType":"YulTypedName","src":"8403:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8414:4:97","nodeType":"YulTypedName","src":"8414:4:97","type":""}],"src":"7922:1456:97"},{"body":{"nativeSrc":"9517:125:97","nodeType":"YulBlock","src":"9517:125:97","statements":[{"nativeSrc":"9527:26:97","nodeType":"YulAssignment","src":"9527:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"9539:9:97","nodeType":"YulIdentifier","src":"9539:9:97"},{"kind":"number","nativeSrc":"9550:2:97","nodeType":"YulLiteral","src":"9550:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9535:3:97","nodeType":"YulIdentifier","src":"9535:3:97"},"nativeSrc":"9535:18:97","nodeType":"YulFunctionCall","src":"9535:18:97"},"variableNames":[{"name":"tail","nativeSrc":"9527:4:97","nodeType":"YulIdentifier","src":"9527:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"9569:9:97","nodeType":"YulIdentifier","src":"9569:9:97"},{"arguments":[{"name":"value0","nativeSrc":"9584:6:97","nodeType":"YulIdentifier","src":"9584:6:97"},{"kind":"number","nativeSrc":"9592:42:97","nodeType":"YulLiteral","src":"9592:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"9580:3:97","nodeType":"YulIdentifier","src":"9580:3:97"},"nativeSrc":"9580:55:97","nodeType":"YulFunctionCall","src":"9580:55:97"}],"functionName":{"name":"mstore","nativeSrc":"9562:6:97","nodeType":"YulIdentifier","src":"9562:6:97"},"nativeSrc":"9562:74:97","nodeType":"YulFunctionCall","src":"9562:74:97"},"nativeSrc":"9562:74:97","nodeType":"YulExpressionStatement","src":"9562:74:97"}]},"name":"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$13903__to_t_address__fromStack_reversed","nativeSrc":"9383:259:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9486:9:97","nodeType":"YulTypedName","src":"9486:9:97","type":""},{"name":"value0","nativeSrc":"9497:6:97","nodeType":"YulTypedName","src":"9497:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9508:4:97","nodeType":"YulTypedName","src":"9508:4:97","type":""}],"src":"9383:259:97"},{"body":{"nativeSrc":"9818:691:97","nodeType":"YulBlock","src":"9818:691:97","statements":[{"nativeSrc":"9828:12:97","nodeType":"YulVariableDeclaration","src":"9828:12:97","value":{"kind":"number","nativeSrc":"9838:2:97","nodeType":"YulLiteral","src":"9838:2:97","type":"","value":"32"},"variables":[{"name":"_1","nativeSrc":"9832:2:97","nodeType":"YulTypedName","src":"9832:2:97","type":""}]},{"nativeSrc":"9849:32:97","nodeType":"YulVariableDeclaration","src":"9849:32:97","value":{"arguments":[{"name":"headStart","nativeSrc":"9867:9:97","nodeType":"YulIdentifier","src":"9867:9:97"},{"kind":"number","nativeSrc":"9878:2:97","nodeType":"YulLiteral","src":"9878:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9863:3:97","nodeType":"YulIdentifier","src":"9863:3:97"},"nativeSrc":"9863:18:97","nodeType":"YulFunctionCall","src":"9863:18:97"},"variables":[{"name":"tail_1","nativeSrc":"9853:6:97","nodeType":"YulTypedName","src":"9853:6:97","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"9897:9:97","nodeType":"YulIdentifier","src":"9897:9:97"},{"kind":"number","nativeSrc":"9908:2:97","nodeType":"YulLiteral","src":"9908:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"9890:6:97","nodeType":"YulIdentifier","src":"9890:6:97"},"nativeSrc":"9890:21:97","nodeType":"YulFunctionCall","src":"9890:21:97"},"nativeSrc":"9890:21:97","nodeType":"YulExpressionStatement","src":"9890:21:97"},{"nativeSrc":"9920:17:97","nodeType":"YulVariableDeclaration","src":"9920:17:97","value":{"name":"tail_1","nativeSrc":"9931:6:97","nodeType":"YulIdentifier","src":"9931:6:97"},"variables":[{"name":"pos","nativeSrc":"9924:3:97","nodeType":"YulTypedName","src":"9924:3:97","type":""}]},{"nativeSrc":"9946:27:97","nodeType":"YulVariableDeclaration","src":"9946:27:97","value":{"arguments":[{"name":"value0","nativeSrc":"9966:6:97","nodeType":"YulIdentifier","src":"9966:6:97"}],"functionName":{"name":"mload","nativeSrc":"9960:5:97","nodeType":"YulIdentifier","src":"9960:5:97"},"nativeSrc":"9960:13:97","nodeType":"YulFunctionCall","src":"9960:13:97"},"variables":[{"name":"length","nativeSrc":"9950:6:97","nodeType":"YulTypedName","src":"9950:6:97","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nativeSrc":"9989:6:97","nodeType":"YulIdentifier","src":"9989:6:97"},{"name":"length","nativeSrc":"9997:6:97","nodeType":"YulIdentifier","src":"9997:6:97"}],"functionName":{"name":"mstore","nativeSrc":"9982:6:97","nodeType":"YulIdentifier","src":"9982:6:97"},"nativeSrc":"9982:22:97","nodeType":"YulFunctionCall","src":"9982:22:97"},"nativeSrc":"9982:22:97","nodeType":"YulExpressionStatement","src":"9982:22:97"},{"nativeSrc":"10013:25:97","nodeType":"YulAssignment","src":"10013:25:97","value":{"arguments":[{"name":"headStart","nativeSrc":"10024:9:97","nodeType":"YulIdentifier","src":"10024:9:97"},{"kind":"number","nativeSrc":"10035:2:97","nodeType":"YulLiteral","src":"10035:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10020:3:97","nodeType":"YulIdentifier","src":"10020:3:97"},"nativeSrc":"10020:18:97","nodeType":"YulFunctionCall","src":"10020:18:97"},"variableNames":[{"name":"pos","nativeSrc":"10013:3:97","nodeType":"YulIdentifier","src":"10013:3:97"}]},{"nativeSrc":"10047:53:97","nodeType":"YulVariableDeclaration","src":"10047:53:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10069:9:97","nodeType":"YulIdentifier","src":"10069:9:97"},{"arguments":[{"kind":"number","nativeSrc":"10084:1:97","nodeType":"YulLiteral","src":"10084:1:97","type":"","value":"5"},{"name":"length","nativeSrc":"10087:6:97","nodeType":"YulIdentifier","src":"10087:6:97"}],"functionName":{"name":"shl","nativeSrc":"10080:3:97","nodeType":"YulIdentifier","src":"10080:3:97"},"nativeSrc":"10080:14:97","nodeType":"YulFunctionCall","src":"10080:14:97"}],"functionName":{"name":"add","nativeSrc":"10065:3:97","nodeType":"YulIdentifier","src":"10065:3:97"},"nativeSrc":"10065:30:97","nodeType":"YulFunctionCall","src":"10065:30:97"},{"kind":"number","nativeSrc":"10097:2:97","nodeType":"YulLiteral","src":"10097:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10061:3:97","nodeType":"YulIdentifier","src":"10061:3:97"},"nativeSrc":"10061:39:97","nodeType":"YulFunctionCall","src":"10061:39:97"},"variables":[{"name":"tail_2","nativeSrc":"10051:6:97","nodeType":"YulTypedName","src":"10051:6:97","type":""}]},{"nativeSrc":"10109:29:97","nodeType":"YulVariableDeclaration","src":"10109:29:97","value":{"arguments":[{"name":"value0","nativeSrc":"10127:6:97","nodeType":"YulIdentifier","src":"10127:6:97"},{"kind":"number","nativeSrc":"10135:2:97","nodeType":"YulLiteral","src":"10135:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10123:3:97","nodeType":"YulIdentifier","src":"10123:3:97"},"nativeSrc":"10123:15:97","nodeType":"YulFunctionCall","src":"10123:15:97"},"variables":[{"name":"srcPtr","nativeSrc":"10113:6:97","nodeType":"YulTypedName","src":"10113:6:97","type":""}]},{"nativeSrc":"10147:10:97","nodeType":"YulVariableDeclaration","src":"10147:10:97","value":{"kind":"number","nativeSrc":"10156:1:97","nodeType":"YulLiteral","src":"10156:1:97","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"10151:1:97","nodeType":"YulTypedName","src":"10151:1:97","type":""}]},{"body":{"nativeSrc":"10215:265:97","nodeType":"YulBlock","src":"10215:265:97","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"10236:3:97","nodeType":"YulIdentifier","src":"10236:3:97"},{"arguments":[{"arguments":[{"name":"tail_2","nativeSrc":"10249:6:97","nodeType":"YulIdentifier","src":"10249:6:97"},{"name":"headStart","nativeSrc":"10257:9:97","nodeType":"YulIdentifier","src":"10257:9:97"}],"functionName":{"name":"sub","nativeSrc":"10245:3:97","nodeType":"YulIdentifier","src":"10245:3:97"},"nativeSrc":"10245:22:97","nodeType":"YulFunctionCall","src":"10245:22:97"},{"kind":"number","nativeSrc":"10269:66:97","nodeType":"YulLiteral","src":"10269:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0"}],"functionName":{"name":"add","nativeSrc":"10241:3:97","nodeType":"YulIdentifier","src":"10241:3:97"},"nativeSrc":"10241:95:97","nodeType":"YulFunctionCall","src":"10241:95:97"}],"functionName":{"name":"mstore","nativeSrc":"10229:6:97","nodeType":"YulIdentifier","src":"10229:6:97"},"nativeSrc":"10229:108:97","nodeType":"YulFunctionCall","src":"10229:108:97"},"nativeSrc":"10229:108:97","nodeType":"YulExpressionStatement","src":"10229:108:97"},{"nativeSrc":"10350:50:97","nodeType":"YulAssignment","src":"10350:50:97","value":{"arguments":[{"arguments":[{"name":"srcPtr","nativeSrc":"10384:6:97","nodeType":"YulIdentifier","src":"10384:6:97"}],"functionName":{"name":"mload","nativeSrc":"10378:5:97","nodeType":"YulIdentifier","src":"10378:5:97"},"nativeSrc":"10378:13:97","nodeType":"YulFunctionCall","src":"10378:13:97"},{"name":"tail_2","nativeSrc":"10393:6:97","nodeType":"YulIdentifier","src":"10393:6:97"}],"functionName":{"name":"abi_encode_string","nativeSrc":"10360:17:97","nodeType":"YulIdentifier","src":"10360:17:97"},"nativeSrc":"10360:40:97","nodeType":"YulFunctionCall","src":"10360:40:97"},"variableNames":[{"name":"tail_2","nativeSrc":"10350:6:97","nodeType":"YulIdentifier","src":"10350:6:97"}]},{"nativeSrc":"10413:25:97","nodeType":"YulAssignment","src":"10413:25:97","value":{"arguments":[{"name":"srcPtr","nativeSrc":"10427:6:97","nodeType":"YulIdentifier","src":"10427:6:97"},{"name":"_1","nativeSrc":"10435:2:97","nodeType":"YulIdentifier","src":"10435:2:97"}],"functionName":{"name":"add","nativeSrc":"10423:3:97","nodeType":"YulIdentifier","src":"10423:3:97"},"nativeSrc":"10423:15:97","nodeType":"YulFunctionCall","src":"10423:15:97"},"variableNames":[{"name":"srcPtr","nativeSrc":"10413:6:97","nodeType":"YulIdentifier","src":"10413:6:97"}]},{"nativeSrc":"10451:19:97","nodeType":"YulAssignment","src":"10451:19:97","value":{"arguments":[{"name":"pos","nativeSrc":"10462:3:97","nodeType":"YulIdentifier","src":"10462:3:97"},{"name":"_1","nativeSrc":"10467:2:97","nodeType":"YulIdentifier","src":"10467:2:97"}],"functionName":{"name":"add","nativeSrc":"10458:3:97","nodeType":"YulIdentifier","src":"10458:3:97"},"nativeSrc":"10458:12:97","nodeType":"YulFunctionCall","src":"10458:12:97"},"variableNames":[{"name":"pos","nativeSrc":"10451:3:97","nodeType":"YulIdentifier","src":"10451:3:97"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"10177:1:97","nodeType":"YulIdentifier","src":"10177:1:97"},{"name":"length","nativeSrc":"10180:6:97","nodeType":"YulIdentifier","src":"10180:6:97"}],"functionName":{"name":"lt","nativeSrc":"10174:2:97","nodeType":"YulIdentifier","src":"10174:2:97"},"nativeSrc":"10174:13:97","nodeType":"YulFunctionCall","src":"10174:13:97"},"nativeSrc":"10166:314:97","nodeType":"YulForLoop","post":{"nativeSrc":"10188:18:97","nodeType":"YulBlock","src":"10188:18:97","statements":[{"nativeSrc":"10190:14:97","nodeType":"YulAssignment","src":"10190:14:97","value":{"arguments":[{"name":"i","nativeSrc":"10199:1:97","nodeType":"YulIdentifier","src":"10199:1:97"},{"kind":"number","nativeSrc":"10202:1:97","nodeType":"YulLiteral","src":"10202:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"10195:3:97","nodeType":"YulIdentifier","src":"10195:3:97"},"nativeSrc":"10195:9:97","nodeType":"YulFunctionCall","src":"10195:9:97"},"variableNames":[{"name":"i","nativeSrc":"10190:1:97","nodeType":"YulIdentifier","src":"10190:1:97"}]}]},"pre":{"nativeSrc":"10170:3:97","nodeType":"YulBlock","src":"10170:3:97","statements":[]},"src":"10166:314:97"},{"nativeSrc":"10489:14:97","nodeType":"YulAssignment","src":"10489:14:97","value":{"name":"tail_2","nativeSrc":"10497:6:97","nodeType":"YulIdentifier","src":"10497:6:97"},"variableNames":[{"name":"tail","nativeSrc":"10489:4:97","nodeType":"YulIdentifier","src":"10489:4:97"}]}]},"name":"abi_encode_tuple_t_array$_t_string_memory_ptr_$dyn_memory_ptr__to_t_array$_t_string_memory_ptr_$dyn_memory_ptr__fromStack_reversed","nativeSrc":"9647:862:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9787:9:97","nodeType":"YulTypedName","src":"9787:9:97","type":""},{"name":"value0","nativeSrc":"9798:6:97","nodeType":"YulTypedName","src":"9798:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9809:4:97","nodeType":"YulTypedName","src":"9809:4:97","type":""}],"src":"9647:862:97"},{"body":{"nativeSrc":"10582:114:97","nodeType":"YulBlock","src":"10582:114:97","statements":[{"body":{"nativeSrc":"10626:22:97","nodeType":"YulBlock","src":"10626:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"10628:16:97","nodeType":"YulIdentifier","src":"10628:16:97"},"nativeSrc":"10628:18:97","nodeType":"YulFunctionCall","src":"10628:18:97"},"nativeSrc":"10628:18:97","nodeType":"YulExpressionStatement","src":"10628:18:97"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"10598:6:97","nodeType":"YulIdentifier","src":"10598:6:97"},{"kind":"number","nativeSrc":"10606:18:97","nodeType":"YulLiteral","src":"10606:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10595:2:97","nodeType":"YulIdentifier","src":"10595:2:97"},"nativeSrc":"10595:30:97","nodeType":"YulFunctionCall","src":"10595:30:97"},"nativeSrc":"10592:56:97","nodeType":"YulIf","src":"10592:56:97"},{"nativeSrc":"10657:33:97","nodeType":"YulAssignment","src":"10657:33:97","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"10673:1:97","nodeType":"YulLiteral","src":"10673:1:97","type":"","value":"5"},{"name":"length","nativeSrc":"10676:6:97","nodeType":"YulIdentifier","src":"10676:6:97"}],"functionName":{"name":"shl","nativeSrc":"10669:3:97","nodeType":"YulIdentifier","src":"10669:3:97"},"nativeSrc":"10669:14:97","nodeType":"YulFunctionCall","src":"10669:14:97"},{"kind":"number","nativeSrc":"10685:4:97","nodeType":"YulLiteral","src":"10685:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10665:3:97","nodeType":"YulIdentifier","src":"10665:3:97"},"nativeSrc":"10665:25:97","nodeType":"YulFunctionCall","src":"10665:25:97"},"variableNames":[{"name":"size","nativeSrc":"10657:4:97","nodeType":"YulIdentifier","src":"10657:4:97"}]}]},"name":"array_allocation_size_array_string_dyn","nativeSrc":"10514:182:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"10562:6:97","nodeType":"YulTypedName","src":"10562:6:97","type":""}],"returnVariables":[{"name":"size","nativeSrc":"10573:4:97","nodeType":"YulTypedName","src":"10573:4:97","type":""}],"src":"10514:182:97"},{"body":{"nativeSrc":"10764:824:97","nodeType":"YulBlock","src":"10764:824:97","statements":[{"body":{"nativeSrc":"10813:16:97","nodeType":"YulBlock","src":"10813:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10822:1:97","nodeType":"YulLiteral","src":"10822:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"10825:1:97","nodeType":"YulLiteral","src":"10825:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10815:6:97","nodeType":"YulIdentifier","src":"10815:6:97"},"nativeSrc":"10815:12:97","nodeType":"YulFunctionCall","src":"10815:12:97"},"nativeSrc":"10815:12:97","nodeType":"YulExpressionStatement","src":"10815:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"10792:6:97","nodeType":"YulIdentifier","src":"10792:6:97"},{"kind":"number","nativeSrc":"10800:4:97","nodeType":"YulLiteral","src":"10800:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"10788:3:97","nodeType":"YulIdentifier","src":"10788:3:97"},"nativeSrc":"10788:17:97","nodeType":"YulFunctionCall","src":"10788:17:97"},{"name":"end","nativeSrc":"10807:3:97","nodeType":"YulIdentifier","src":"10807:3:97"}],"functionName":{"name":"slt","nativeSrc":"10784:3:97","nodeType":"YulIdentifier","src":"10784:3:97"},"nativeSrc":"10784:27:97","nodeType":"YulFunctionCall","src":"10784:27:97"}],"functionName":{"name":"iszero","nativeSrc":"10777:6:97","nodeType":"YulIdentifier","src":"10777:6:97"},"nativeSrc":"10777:35:97","nodeType":"YulFunctionCall","src":"10777:35:97"},"nativeSrc":"10774:55:97","nodeType":"YulIf","src":"10774:55:97"},{"nativeSrc":"10838:30:97","nodeType":"YulVariableDeclaration","src":"10838:30:97","value":{"arguments":[{"name":"offset","nativeSrc":"10861:6:97","nodeType":"YulIdentifier","src":"10861:6:97"}],"functionName":{"name":"calldataload","nativeSrc":"10848:12:97","nodeType":"YulIdentifier","src":"10848:12:97"},"nativeSrc":"10848:20:97","nodeType":"YulFunctionCall","src":"10848:20:97"},"variables":[{"name":"_1","nativeSrc":"10842:2:97","nodeType":"YulTypedName","src":"10842:2:97","type":""}]},{"nativeSrc":"10877:14:97","nodeType":"YulVariableDeclaration","src":"10877:14:97","value":{"kind":"number","nativeSrc":"10887:4:97","nodeType":"YulLiteral","src":"10887:4:97","type":"","value":"0x20"},"variables":[{"name":"_2","nativeSrc":"10881:2:97","nodeType":"YulTypedName","src":"10881:2:97","type":""}]},{"nativeSrc":"10900:70:97","nodeType":"YulVariableDeclaration","src":"10900:70:97","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"10966:2:97","nodeType":"YulIdentifier","src":"10966:2:97"}],"functionName":{"name":"array_allocation_size_array_string_dyn","nativeSrc":"10927:38:97","nodeType":"YulIdentifier","src":"10927:38:97"},"nativeSrc":"10927:42:97","nodeType":"YulFunctionCall","src":"10927:42:97"}],"functionName":{"name":"allocate_memory","nativeSrc":"10911:15:97","nodeType":"YulIdentifier","src":"10911:15:97"},"nativeSrc":"10911:59:97","nodeType":"YulFunctionCall","src":"10911:59:97"},"variables":[{"name":"dst","nativeSrc":"10904:3:97","nodeType":"YulTypedName","src":"10904:3:97","type":""}]},{"nativeSrc":"10979:16:97","nodeType":"YulVariableDeclaration","src":"10979:16:97","value":{"name":"dst","nativeSrc":"10992:3:97","nodeType":"YulIdentifier","src":"10992:3:97"},"variables":[{"name":"dst_1","nativeSrc":"10983:5:97","nodeType":"YulTypedName","src":"10983:5:97","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"11011:3:97","nodeType":"YulIdentifier","src":"11011:3:97"},{"name":"_1","nativeSrc":"11016:2:97","nodeType":"YulIdentifier","src":"11016:2:97"}],"functionName":{"name":"mstore","nativeSrc":"11004:6:97","nodeType":"YulIdentifier","src":"11004:6:97"},"nativeSrc":"11004:15:97","nodeType":"YulFunctionCall","src":"11004:15:97"},"nativeSrc":"11004:15:97","nodeType":"YulExpressionStatement","src":"11004:15:97"},{"nativeSrc":"11028:19:97","nodeType":"YulAssignment","src":"11028:19:97","value":{"arguments":[{"name":"dst","nativeSrc":"11039:3:97","nodeType":"YulIdentifier","src":"11039:3:97"},{"name":"_2","nativeSrc":"11044:2:97","nodeType":"YulIdentifier","src":"11044:2:97"}],"functionName":{"name":"add","nativeSrc":"11035:3:97","nodeType":"YulIdentifier","src":"11035:3:97"},"nativeSrc":"11035:12:97","nodeType":"YulFunctionCall","src":"11035:12:97"},"variableNames":[{"name":"dst","nativeSrc":"11028:3:97","nodeType":"YulIdentifier","src":"11028:3:97"}]},{"nativeSrc":"11056:46:97","nodeType":"YulVariableDeclaration","src":"11056:46:97","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"11078:6:97","nodeType":"YulIdentifier","src":"11078:6:97"},{"arguments":[{"kind":"number","nativeSrc":"11090:1:97","nodeType":"YulLiteral","src":"11090:1:97","type":"","value":"5"},{"name":"_1","nativeSrc":"11093:2:97","nodeType":"YulIdentifier","src":"11093:2:97"}],"functionName":{"name":"shl","nativeSrc":"11086:3:97","nodeType":"YulIdentifier","src":"11086:3:97"},"nativeSrc":"11086:10:97","nodeType":"YulFunctionCall","src":"11086:10:97"}],"functionName":{"name":"add","nativeSrc":"11074:3:97","nodeType":"YulIdentifier","src":"11074:3:97"},"nativeSrc":"11074:23:97","nodeType":"YulFunctionCall","src":"11074:23:97"},{"name":"_2","nativeSrc":"11099:2:97","nodeType":"YulIdentifier","src":"11099:2:97"}],"functionName":{"name":"add","nativeSrc":"11070:3:97","nodeType":"YulIdentifier","src":"11070:3:97"},"nativeSrc":"11070:32:97","nodeType":"YulFunctionCall","src":"11070:32:97"},"variables":[{"name":"srcEnd","nativeSrc":"11060:6:97","nodeType":"YulTypedName","src":"11060:6:97","type":""}]},{"body":{"nativeSrc":"11130:16:97","nodeType":"YulBlock","src":"11130:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11139:1:97","nodeType":"YulLiteral","src":"11139:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"11142:1:97","nodeType":"YulLiteral","src":"11142:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11132:6:97","nodeType":"YulIdentifier","src":"11132:6:97"},"nativeSrc":"11132:12:97","nodeType":"YulFunctionCall","src":"11132:12:97"},"nativeSrc":"11132:12:97","nodeType":"YulExpressionStatement","src":"11132:12:97"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"11117:6:97","nodeType":"YulIdentifier","src":"11117:6:97"},{"name":"end","nativeSrc":"11125:3:97","nodeType":"YulIdentifier","src":"11125:3:97"}],"functionName":{"name":"gt","nativeSrc":"11114:2:97","nodeType":"YulIdentifier","src":"11114:2:97"},"nativeSrc":"11114:15:97","nodeType":"YulFunctionCall","src":"11114:15:97"},"nativeSrc":"11111:35:97","nodeType":"YulIf","src":"11111:35:97"},{"nativeSrc":"11155:26:97","nodeType":"YulVariableDeclaration","src":"11155:26:97","value":{"arguments":[{"name":"offset","nativeSrc":"11170:6:97","nodeType":"YulIdentifier","src":"11170:6:97"},{"name":"_2","nativeSrc":"11178:2:97","nodeType":"YulIdentifier","src":"11178:2:97"}],"functionName":{"name":"add","nativeSrc":"11166:3:97","nodeType":"YulIdentifier","src":"11166:3:97"},"nativeSrc":"11166:15:97","nodeType":"YulFunctionCall","src":"11166:15:97"},"variables":[{"name":"src","nativeSrc":"11159:3:97","nodeType":"YulTypedName","src":"11159:3:97","type":""}]},{"body":{"nativeSrc":"11246:313:97","nodeType":"YulBlock","src":"11246:313:97","statements":[{"nativeSrc":"11260:36:97","nodeType":"YulVariableDeclaration","src":"11260:36:97","value":{"arguments":[{"name":"src","nativeSrc":"11292:3:97","nodeType":"YulIdentifier","src":"11292:3:97"}],"functionName":{"name":"calldataload","nativeSrc":"11279:12:97","nodeType":"YulIdentifier","src":"11279:12:97"},"nativeSrc":"11279:17:97","nodeType":"YulFunctionCall","src":"11279:17:97"},"variables":[{"name":"innerOffset","nativeSrc":"11264:11:97","nodeType":"YulTypedName","src":"11264:11:97","type":""}]},{"body":{"nativeSrc":"11360:74:97","nodeType":"YulBlock","src":"11360:74:97","statements":[{"nativeSrc":"11378:11:97","nodeType":"YulVariableDeclaration","src":"11378:11:97","value":{"kind":"number","nativeSrc":"11388:1:97","nodeType":"YulLiteral","src":"11388:1:97","type":"","value":"0"},"variables":[{"name":"_3","nativeSrc":"11382:2:97","nodeType":"YulTypedName","src":"11382:2:97","type":""}]},{"expression":{"arguments":[{"name":"_3","nativeSrc":"11413:2:97","nodeType":"YulIdentifier","src":"11413:2:97"},{"name":"_3","nativeSrc":"11417:2:97","nodeType":"YulIdentifier","src":"11417:2:97"}],"functionName":{"name":"revert","nativeSrc":"11406:6:97","nodeType":"YulIdentifier","src":"11406:6:97"},"nativeSrc":"11406:14:97","nodeType":"YulFunctionCall","src":"11406:14:97"},"nativeSrc":"11406:14:97","nodeType":"YulExpressionStatement","src":"11406:14:97"}]},"condition":{"arguments":[{"name":"innerOffset","nativeSrc":"11315:11:97","nodeType":"YulIdentifier","src":"11315:11:97"},{"kind":"number","nativeSrc":"11328:18:97","nodeType":"YulLiteral","src":"11328:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11312:2:97","nodeType":"YulIdentifier","src":"11312:2:97"},"nativeSrc":"11312:35:97","nodeType":"YulFunctionCall","src":"11312:35:97"},"nativeSrc":"11309:125:97","nodeType":"YulIf","src":"11309:125:97"},{"expression":{"arguments":[{"name":"dst","nativeSrc":"11454:3:97","nodeType":"YulIdentifier","src":"11454:3:97"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"11485:6:97","nodeType":"YulIdentifier","src":"11485:6:97"},{"name":"innerOffset","nativeSrc":"11493:11:97","nodeType":"YulIdentifier","src":"11493:11:97"}],"functionName":{"name":"add","nativeSrc":"11481:3:97","nodeType":"YulIdentifier","src":"11481:3:97"},"nativeSrc":"11481:24:97","nodeType":"YulFunctionCall","src":"11481:24:97"},{"name":"_2","nativeSrc":"11507:2:97","nodeType":"YulIdentifier","src":"11507:2:97"}],"functionName":{"name":"add","nativeSrc":"11477:3:97","nodeType":"YulIdentifier","src":"11477:3:97"},"nativeSrc":"11477:33:97","nodeType":"YulFunctionCall","src":"11477:33:97"},{"name":"end","nativeSrc":"11512:3:97","nodeType":"YulIdentifier","src":"11512:3:97"}],"functionName":{"name":"abi_decode_string","nativeSrc":"11459:17:97","nodeType":"YulIdentifier","src":"11459:17:97"},"nativeSrc":"11459:57:97","nodeType":"YulFunctionCall","src":"11459:57:97"}],"functionName":{"name":"mstore","nativeSrc":"11447:6:97","nodeType":"YulIdentifier","src":"11447:6:97"},"nativeSrc":"11447:70:97","nodeType":"YulFunctionCall","src":"11447:70:97"},"nativeSrc":"11447:70:97","nodeType":"YulExpressionStatement","src":"11447:70:97"},{"nativeSrc":"11530:19:97","nodeType":"YulAssignment","src":"11530:19:97","value":{"arguments":[{"name":"dst","nativeSrc":"11541:3:97","nodeType":"YulIdentifier","src":"11541:3:97"},{"name":"_2","nativeSrc":"11546:2:97","nodeType":"YulIdentifier","src":"11546:2:97"}],"functionName":{"name":"add","nativeSrc":"11537:3:97","nodeType":"YulIdentifier","src":"11537:3:97"},"nativeSrc":"11537:12:97","nodeType":"YulFunctionCall","src":"11537:12:97"},"variableNames":[{"name":"dst","nativeSrc":"11530:3:97","nodeType":"YulIdentifier","src":"11530:3:97"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"11201:3:97","nodeType":"YulIdentifier","src":"11201:3:97"},{"name":"srcEnd","nativeSrc":"11206:6:97","nodeType":"YulIdentifier","src":"11206:6:97"}],"functionName":{"name":"lt","nativeSrc":"11198:2:97","nodeType":"YulIdentifier","src":"11198:2:97"},"nativeSrc":"11198:15:97","nodeType":"YulFunctionCall","src":"11198:15:97"},"nativeSrc":"11190:369:97","nodeType":"YulForLoop","post":{"nativeSrc":"11214:23:97","nodeType":"YulBlock","src":"11214:23:97","statements":[{"nativeSrc":"11216:19:97","nodeType":"YulAssignment","src":"11216:19:97","value":{"arguments":[{"name":"src","nativeSrc":"11227:3:97","nodeType":"YulIdentifier","src":"11227:3:97"},{"name":"_2","nativeSrc":"11232:2:97","nodeType":"YulIdentifier","src":"11232:2:97"}],"functionName":{"name":"add","nativeSrc":"11223:3:97","nodeType":"YulIdentifier","src":"11223:3:97"},"nativeSrc":"11223:12:97","nodeType":"YulFunctionCall","src":"11223:12:97"},"variableNames":[{"name":"src","nativeSrc":"11216:3:97","nodeType":"YulIdentifier","src":"11216:3:97"}]}]},"pre":{"nativeSrc":"11194:3:97","nodeType":"YulBlock","src":"11194:3:97","statements":[]},"src":"11190:369:97"},{"nativeSrc":"11568:14:97","nodeType":"YulAssignment","src":"11568:14:97","value":{"name":"dst_1","nativeSrc":"11577:5:97","nodeType":"YulIdentifier","src":"11577:5:97"},"variableNames":[{"name":"array","nativeSrc":"11568:5:97","nodeType":"YulIdentifier","src":"11568:5:97"}]}]},"name":"abi_decode_array_string_dyn","nativeSrc":"10701:887:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"10738:6:97","nodeType":"YulTypedName","src":"10738:6:97","type":""},{"name":"end","nativeSrc":"10746:3:97","nodeType":"YulTypedName","src":"10746:3:97","type":""}],"returnVariables":[{"name":"array","nativeSrc":"10754:5:97","nodeType":"YulTypedName","src":"10754:5:97","type":""}],"src":"10701:887:97"},{"body":{"nativeSrc":"11657:609:97","nodeType":"YulBlock","src":"11657:609:97","statements":[{"body":{"nativeSrc":"11706:16:97","nodeType":"YulBlock","src":"11706:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11715:1:97","nodeType":"YulLiteral","src":"11715:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"11718:1:97","nodeType":"YulLiteral","src":"11718:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11708:6:97","nodeType":"YulIdentifier","src":"11708:6:97"},"nativeSrc":"11708:12:97","nodeType":"YulFunctionCall","src":"11708:12:97"},"nativeSrc":"11708:12:97","nodeType":"YulExpressionStatement","src":"11708:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"11685:6:97","nodeType":"YulIdentifier","src":"11685:6:97"},{"kind":"number","nativeSrc":"11693:4:97","nodeType":"YulLiteral","src":"11693:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"11681:3:97","nodeType":"YulIdentifier","src":"11681:3:97"},"nativeSrc":"11681:17:97","nodeType":"YulFunctionCall","src":"11681:17:97"},{"name":"end","nativeSrc":"11700:3:97","nodeType":"YulIdentifier","src":"11700:3:97"}],"functionName":{"name":"slt","nativeSrc":"11677:3:97","nodeType":"YulIdentifier","src":"11677:3:97"},"nativeSrc":"11677:27:97","nodeType":"YulFunctionCall","src":"11677:27:97"}],"functionName":{"name":"iszero","nativeSrc":"11670:6:97","nodeType":"YulIdentifier","src":"11670:6:97"},"nativeSrc":"11670:35:97","nodeType":"YulFunctionCall","src":"11670:35:97"},"nativeSrc":"11667:55:97","nodeType":"YulIf","src":"11667:55:97"},{"nativeSrc":"11731:30:97","nodeType":"YulVariableDeclaration","src":"11731:30:97","value":{"arguments":[{"name":"offset","nativeSrc":"11754:6:97","nodeType":"YulIdentifier","src":"11754:6:97"}],"functionName":{"name":"calldataload","nativeSrc":"11741:12:97","nodeType":"YulIdentifier","src":"11741:12:97"},"nativeSrc":"11741:20:97","nodeType":"YulFunctionCall","src":"11741:20:97"},"variables":[{"name":"_1","nativeSrc":"11735:2:97","nodeType":"YulTypedName","src":"11735:2:97","type":""}]},{"nativeSrc":"11770:14:97","nodeType":"YulVariableDeclaration","src":"11770:14:97","value":{"kind":"number","nativeSrc":"11780:4:97","nodeType":"YulLiteral","src":"11780:4:97","type":"","value":"0x20"},"variables":[{"name":"_2","nativeSrc":"11774:2:97","nodeType":"YulTypedName","src":"11774:2:97","type":""}]},{"nativeSrc":"11793:70:97","nodeType":"YulVariableDeclaration","src":"11793:70:97","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"11859:2:97","nodeType":"YulIdentifier","src":"11859:2:97"}],"functionName":{"name":"array_allocation_size_array_string_dyn","nativeSrc":"11820:38:97","nodeType":"YulIdentifier","src":"11820:38:97"},"nativeSrc":"11820:42:97","nodeType":"YulFunctionCall","src":"11820:42:97"}],"functionName":{"name":"allocate_memory","nativeSrc":"11804:15:97","nodeType":"YulIdentifier","src":"11804:15:97"},"nativeSrc":"11804:59:97","nodeType":"YulFunctionCall","src":"11804:59:97"},"variables":[{"name":"dst","nativeSrc":"11797:3:97","nodeType":"YulTypedName","src":"11797:3:97","type":""}]},{"nativeSrc":"11872:16:97","nodeType":"YulVariableDeclaration","src":"11872:16:97","value":{"name":"dst","nativeSrc":"11885:3:97","nodeType":"YulIdentifier","src":"11885:3:97"},"variables":[{"name":"dst_1","nativeSrc":"11876:5:97","nodeType":"YulTypedName","src":"11876:5:97","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"11904:3:97","nodeType":"YulIdentifier","src":"11904:3:97"},{"name":"_1","nativeSrc":"11909:2:97","nodeType":"YulIdentifier","src":"11909:2:97"}],"functionName":{"name":"mstore","nativeSrc":"11897:6:97","nodeType":"YulIdentifier","src":"11897:6:97"},"nativeSrc":"11897:15:97","nodeType":"YulFunctionCall","src":"11897:15:97"},"nativeSrc":"11897:15:97","nodeType":"YulExpressionStatement","src":"11897:15:97"},{"nativeSrc":"11921:21:97","nodeType":"YulAssignment","src":"11921:21:97","value":{"arguments":[{"name":"dst","nativeSrc":"11932:3:97","nodeType":"YulIdentifier","src":"11932:3:97"},{"kind":"number","nativeSrc":"11937:4:97","nodeType":"YulLiteral","src":"11937:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11928:3:97","nodeType":"YulIdentifier","src":"11928:3:97"},"nativeSrc":"11928:14:97","nodeType":"YulFunctionCall","src":"11928:14:97"},"variableNames":[{"name":"dst","nativeSrc":"11921:3:97","nodeType":"YulIdentifier","src":"11921:3:97"}]},{"nativeSrc":"11951:48:97","nodeType":"YulVariableDeclaration","src":"11951:48:97","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"11973:6:97","nodeType":"YulIdentifier","src":"11973:6:97"},{"arguments":[{"kind":"number","nativeSrc":"11985:1:97","nodeType":"YulLiteral","src":"11985:1:97","type":"","value":"5"},{"name":"_1","nativeSrc":"11988:2:97","nodeType":"YulIdentifier","src":"11988:2:97"}],"functionName":{"name":"shl","nativeSrc":"11981:3:97","nodeType":"YulIdentifier","src":"11981:3:97"},"nativeSrc":"11981:10:97","nodeType":"YulFunctionCall","src":"11981:10:97"}],"functionName":{"name":"add","nativeSrc":"11969:3:97","nodeType":"YulIdentifier","src":"11969:3:97"},"nativeSrc":"11969:23:97","nodeType":"YulFunctionCall","src":"11969:23:97"},{"kind":"number","nativeSrc":"11994:4:97","nodeType":"YulLiteral","src":"11994:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11965:3:97","nodeType":"YulIdentifier","src":"11965:3:97"},"nativeSrc":"11965:34:97","nodeType":"YulFunctionCall","src":"11965:34:97"},"variables":[{"name":"srcEnd","nativeSrc":"11955:6:97","nodeType":"YulTypedName","src":"11955:6:97","type":""}]},{"body":{"nativeSrc":"12027:16:97","nodeType":"YulBlock","src":"12027:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12036:1:97","nodeType":"YulLiteral","src":"12036:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"12039:1:97","nodeType":"YulLiteral","src":"12039:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12029:6:97","nodeType":"YulIdentifier","src":"12029:6:97"},"nativeSrc":"12029:12:97","nodeType":"YulFunctionCall","src":"12029:12:97"},"nativeSrc":"12029:12:97","nodeType":"YulExpressionStatement","src":"12029:12:97"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"12014:6:97","nodeType":"YulIdentifier","src":"12014:6:97"},{"name":"end","nativeSrc":"12022:3:97","nodeType":"YulIdentifier","src":"12022:3:97"}],"functionName":{"name":"gt","nativeSrc":"12011:2:97","nodeType":"YulIdentifier","src":"12011:2:97"},"nativeSrc":"12011:15:97","nodeType":"YulFunctionCall","src":"12011:15:97"},"nativeSrc":"12008:35:97","nodeType":"YulIf","src":"12008:35:97"},{"nativeSrc":"12052:28:97","nodeType":"YulVariableDeclaration","src":"12052:28:97","value":{"arguments":[{"name":"offset","nativeSrc":"12067:6:97","nodeType":"YulIdentifier","src":"12067:6:97"},{"kind":"number","nativeSrc":"12075:4:97","nodeType":"YulLiteral","src":"12075:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12063:3:97","nodeType":"YulIdentifier","src":"12063:3:97"},"nativeSrc":"12063:17:97","nodeType":"YulFunctionCall","src":"12063:17:97"},"variables":[{"name":"src","nativeSrc":"12056:3:97","nodeType":"YulTypedName","src":"12056:3:97","type":""}]},{"body":{"nativeSrc":"12145:92:97","nodeType":"YulBlock","src":"12145:92:97","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"12166:3:97","nodeType":"YulIdentifier","src":"12166:3:97"},{"arguments":[{"name":"src","nativeSrc":"12190:3:97","nodeType":"YulIdentifier","src":"12190:3:97"}],"functionName":{"name":"abi_decode_address","nativeSrc":"12171:18:97","nodeType":"YulIdentifier","src":"12171:18:97"},"nativeSrc":"12171:23:97","nodeType":"YulFunctionCall","src":"12171:23:97"}],"functionName":{"name":"mstore","nativeSrc":"12159:6:97","nodeType":"YulIdentifier","src":"12159:6:97"},"nativeSrc":"12159:36:97","nodeType":"YulFunctionCall","src":"12159:36:97"},"nativeSrc":"12159:36:97","nodeType":"YulExpressionStatement","src":"12159:36:97"},{"nativeSrc":"12208:19:97","nodeType":"YulAssignment","src":"12208:19:97","value":{"arguments":[{"name":"dst","nativeSrc":"12219:3:97","nodeType":"YulIdentifier","src":"12219:3:97"},{"name":"_2","nativeSrc":"12224:2:97","nodeType":"YulIdentifier","src":"12224:2:97"}],"functionName":{"name":"add","nativeSrc":"12215:3:97","nodeType":"YulIdentifier","src":"12215:3:97"},"nativeSrc":"12215:12:97","nodeType":"YulFunctionCall","src":"12215:12:97"},"variableNames":[{"name":"dst","nativeSrc":"12208:3:97","nodeType":"YulIdentifier","src":"12208:3:97"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"12100:3:97","nodeType":"YulIdentifier","src":"12100:3:97"},{"name":"srcEnd","nativeSrc":"12105:6:97","nodeType":"YulIdentifier","src":"12105:6:97"}],"functionName":{"name":"lt","nativeSrc":"12097:2:97","nodeType":"YulIdentifier","src":"12097:2:97"},"nativeSrc":"12097:15:97","nodeType":"YulFunctionCall","src":"12097:15:97"},"nativeSrc":"12089:148:97","nodeType":"YulForLoop","post":{"nativeSrc":"12113:23:97","nodeType":"YulBlock","src":"12113:23:97","statements":[{"nativeSrc":"12115:19:97","nodeType":"YulAssignment","src":"12115:19:97","value":{"arguments":[{"name":"src","nativeSrc":"12126:3:97","nodeType":"YulIdentifier","src":"12126:3:97"},{"name":"_2","nativeSrc":"12131:2:97","nodeType":"YulIdentifier","src":"12131:2:97"}],"functionName":{"name":"add","nativeSrc":"12122:3:97","nodeType":"YulIdentifier","src":"12122:3:97"},"nativeSrc":"12122:12:97","nodeType":"YulFunctionCall","src":"12122:12:97"},"variableNames":[{"name":"src","nativeSrc":"12115:3:97","nodeType":"YulIdentifier","src":"12115:3:97"}]}]},"pre":{"nativeSrc":"12093:3:97","nodeType":"YulBlock","src":"12093:3:97","statements":[]},"src":"12089:148:97"},{"nativeSrc":"12246:14:97","nodeType":"YulAssignment","src":"12246:14:97","value":{"name":"dst_1","nativeSrc":"12255:5:97","nodeType":"YulIdentifier","src":"12255:5:97"},"variableNames":[{"name":"array","nativeSrc":"12246:5:97","nodeType":"YulIdentifier","src":"12246:5:97"}]}]},"name":"abi_decode_array_address_dyn","nativeSrc":"11593:673:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"11631:6:97","nodeType":"YulTypedName","src":"11631:6:97","type":""},{"name":"end","nativeSrc":"11639:3:97","nodeType":"YulTypedName","src":"11639:3:97","type":""}],"returnVariables":[{"name":"array","nativeSrc":"11647:5:97","nodeType":"YulTypedName","src":"11647:5:97","type":""}],"src":"11593:673:97"},{"body":{"nativeSrc":"12334:608:97","nodeType":"YulBlock","src":"12334:608:97","statements":[{"body":{"nativeSrc":"12383:16:97","nodeType":"YulBlock","src":"12383:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12392:1:97","nodeType":"YulLiteral","src":"12392:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"12395:1:97","nodeType":"YulLiteral","src":"12395:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12385:6:97","nodeType":"YulIdentifier","src":"12385:6:97"},"nativeSrc":"12385:12:97","nodeType":"YulFunctionCall","src":"12385:12:97"},"nativeSrc":"12385:12:97","nodeType":"YulExpressionStatement","src":"12385:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"12362:6:97","nodeType":"YulIdentifier","src":"12362:6:97"},{"kind":"number","nativeSrc":"12370:4:97","nodeType":"YulLiteral","src":"12370:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"12358:3:97","nodeType":"YulIdentifier","src":"12358:3:97"},"nativeSrc":"12358:17:97","nodeType":"YulFunctionCall","src":"12358:17:97"},{"name":"end","nativeSrc":"12377:3:97","nodeType":"YulIdentifier","src":"12377:3:97"}],"functionName":{"name":"slt","nativeSrc":"12354:3:97","nodeType":"YulIdentifier","src":"12354:3:97"},"nativeSrc":"12354:27:97","nodeType":"YulFunctionCall","src":"12354:27:97"}],"functionName":{"name":"iszero","nativeSrc":"12347:6:97","nodeType":"YulIdentifier","src":"12347:6:97"},"nativeSrc":"12347:35:97","nodeType":"YulFunctionCall","src":"12347:35:97"},"nativeSrc":"12344:55:97","nodeType":"YulIf","src":"12344:55:97"},{"nativeSrc":"12408:30:97","nodeType":"YulVariableDeclaration","src":"12408:30:97","value":{"arguments":[{"name":"offset","nativeSrc":"12431:6:97","nodeType":"YulIdentifier","src":"12431:6:97"}],"functionName":{"name":"calldataload","nativeSrc":"12418:12:97","nodeType":"YulIdentifier","src":"12418:12:97"},"nativeSrc":"12418:20:97","nodeType":"YulFunctionCall","src":"12418:20:97"},"variables":[{"name":"_1","nativeSrc":"12412:2:97","nodeType":"YulTypedName","src":"12412:2:97","type":""}]},{"nativeSrc":"12447:14:97","nodeType":"YulVariableDeclaration","src":"12447:14:97","value":{"kind":"number","nativeSrc":"12457:4:97","nodeType":"YulLiteral","src":"12457:4:97","type":"","value":"0x20"},"variables":[{"name":"_2","nativeSrc":"12451:2:97","nodeType":"YulTypedName","src":"12451:2:97","type":""}]},{"nativeSrc":"12470:70:97","nodeType":"YulVariableDeclaration","src":"12470:70:97","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"12536:2:97","nodeType":"YulIdentifier","src":"12536:2:97"}],"functionName":{"name":"array_allocation_size_array_string_dyn","nativeSrc":"12497:38:97","nodeType":"YulIdentifier","src":"12497:38:97"},"nativeSrc":"12497:42:97","nodeType":"YulFunctionCall","src":"12497:42:97"}],"functionName":{"name":"allocate_memory","nativeSrc":"12481:15:97","nodeType":"YulIdentifier","src":"12481:15:97"},"nativeSrc":"12481:59:97","nodeType":"YulFunctionCall","src":"12481:59:97"},"variables":[{"name":"dst","nativeSrc":"12474:3:97","nodeType":"YulTypedName","src":"12474:3:97","type":""}]},{"nativeSrc":"12549:16:97","nodeType":"YulVariableDeclaration","src":"12549:16:97","value":{"name":"dst","nativeSrc":"12562:3:97","nodeType":"YulIdentifier","src":"12562:3:97"},"variables":[{"name":"dst_1","nativeSrc":"12553:5:97","nodeType":"YulTypedName","src":"12553:5:97","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"12581:3:97","nodeType":"YulIdentifier","src":"12581:3:97"},{"name":"_1","nativeSrc":"12586:2:97","nodeType":"YulIdentifier","src":"12586:2:97"}],"functionName":{"name":"mstore","nativeSrc":"12574:6:97","nodeType":"YulIdentifier","src":"12574:6:97"},"nativeSrc":"12574:15:97","nodeType":"YulFunctionCall","src":"12574:15:97"},"nativeSrc":"12574:15:97","nodeType":"YulExpressionStatement","src":"12574:15:97"},{"nativeSrc":"12598:21:97","nodeType":"YulAssignment","src":"12598:21:97","value":{"arguments":[{"name":"dst","nativeSrc":"12609:3:97","nodeType":"YulIdentifier","src":"12609:3:97"},{"kind":"number","nativeSrc":"12614:4:97","nodeType":"YulLiteral","src":"12614:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12605:3:97","nodeType":"YulIdentifier","src":"12605:3:97"},"nativeSrc":"12605:14:97","nodeType":"YulFunctionCall","src":"12605:14:97"},"variableNames":[{"name":"dst","nativeSrc":"12598:3:97","nodeType":"YulIdentifier","src":"12598:3:97"}]},{"nativeSrc":"12628:48:97","nodeType":"YulVariableDeclaration","src":"12628:48:97","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"12650:6:97","nodeType":"YulIdentifier","src":"12650:6:97"},{"arguments":[{"kind":"number","nativeSrc":"12662:1:97","nodeType":"YulLiteral","src":"12662:1:97","type":"","value":"5"},{"name":"_1","nativeSrc":"12665:2:97","nodeType":"YulIdentifier","src":"12665:2:97"}],"functionName":{"name":"shl","nativeSrc":"12658:3:97","nodeType":"YulIdentifier","src":"12658:3:97"},"nativeSrc":"12658:10:97","nodeType":"YulFunctionCall","src":"12658:10:97"}],"functionName":{"name":"add","nativeSrc":"12646:3:97","nodeType":"YulIdentifier","src":"12646:3:97"},"nativeSrc":"12646:23:97","nodeType":"YulFunctionCall","src":"12646:23:97"},{"kind":"number","nativeSrc":"12671:4:97","nodeType":"YulLiteral","src":"12671:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12642:3:97","nodeType":"YulIdentifier","src":"12642:3:97"},"nativeSrc":"12642:34:97","nodeType":"YulFunctionCall","src":"12642:34:97"},"variables":[{"name":"srcEnd","nativeSrc":"12632:6:97","nodeType":"YulTypedName","src":"12632:6:97","type":""}]},{"body":{"nativeSrc":"12704:16:97","nodeType":"YulBlock","src":"12704:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12713:1:97","nodeType":"YulLiteral","src":"12713:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"12716:1:97","nodeType":"YulLiteral","src":"12716:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12706:6:97","nodeType":"YulIdentifier","src":"12706:6:97"},"nativeSrc":"12706:12:97","nodeType":"YulFunctionCall","src":"12706:12:97"},"nativeSrc":"12706:12:97","nodeType":"YulExpressionStatement","src":"12706:12:97"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"12691:6:97","nodeType":"YulIdentifier","src":"12691:6:97"},{"name":"end","nativeSrc":"12699:3:97","nodeType":"YulIdentifier","src":"12699:3:97"}],"functionName":{"name":"gt","nativeSrc":"12688:2:97","nodeType":"YulIdentifier","src":"12688:2:97"},"nativeSrc":"12688:15:97","nodeType":"YulFunctionCall","src":"12688:15:97"},"nativeSrc":"12685:35:97","nodeType":"YulIf","src":"12685:35:97"},{"nativeSrc":"12729:28:97","nodeType":"YulVariableDeclaration","src":"12729:28:97","value":{"arguments":[{"name":"offset","nativeSrc":"12744:6:97","nodeType":"YulIdentifier","src":"12744:6:97"},{"kind":"number","nativeSrc":"12752:4:97","nodeType":"YulLiteral","src":"12752:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12740:3:97","nodeType":"YulIdentifier","src":"12740:3:97"},"nativeSrc":"12740:17:97","nodeType":"YulFunctionCall","src":"12740:17:97"},"variables":[{"name":"src","nativeSrc":"12733:3:97","nodeType":"YulTypedName","src":"12733:3:97","type":""}]},{"body":{"nativeSrc":"12822:91:97","nodeType":"YulBlock","src":"12822:91:97","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"12843:3:97","nodeType":"YulIdentifier","src":"12843:3:97"},{"arguments":[{"name":"src","nativeSrc":"12866:3:97","nodeType":"YulIdentifier","src":"12866:3:97"}],"functionName":{"name":"abi_decode_uint96","nativeSrc":"12848:17:97","nodeType":"YulIdentifier","src":"12848:17:97"},"nativeSrc":"12848:22:97","nodeType":"YulFunctionCall","src":"12848:22:97"}],"functionName":{"name":"mstore","nativeSrc":"12836:6:97","nodeType":"YulIdentifier","src":"12836:6:97"},"nativeSrc":"12836:35:97","nodeType":"YulFunctionCall","src":"12836:35:97"},"nativeSrc":"12836:35:97","nodeType":"YulExpressionStatement","src":"12836:35:97"},{"nativeSrc":"12884:19:97","nodeType":"YulAssignment","src":"12884:19:97","value":{"arguments":[{"name":"dst","nativeSrc":"12895:3:97","nodeType":"YulIdentifier","src":"12895:3:97"},{"name":"_2","nativeSrc":"12900:2:97","nodeType":"YulIdentifier","src":"12900:2:97"}],"functionName":{"name":"add","nativeSrc":"12891:3:97","nodeType":"YulIdentifier","src":"12891:3:97"},"nativeSrc":"12891:12:97","nodeType":"YulFunctionCall","src":"12891:12:97"},"variableNames":[{"name":"dst","nativeSrc":"12884:3:97","nodeType":"YulIdentifier","src":"12884:3:97"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"12777:3:97","nodeType":"YulIdentifier","src":"12777:3:97"},{"name":"srcEnd","nativeSrc":"12782:6:97","nodeType":"YulIdentifier","src":"12782:6:97"}],"functionName":{"name":"lt","nativeSrc":"12774:2:97","nodeType":"YulIdentifier","src":"12774:2:97"},"nativeSrc":"12774:15:97","nodeType":"YulFunctionCall","src":"12774:15:97"},"nativeSrc":"12766:147:97","nodeType":"YulForLoop","post":{"nativeSrc":"12790:23:97","nodeType":"YulBlock","src":"12790:23:97","statements":[{"nativeSrc":"12792:19:97","nodeType":"YulAssignment","src":"12792:19:97","value":{"arguments":[{"name":"src","nativeSrc":"12803:3:97","nodeType":"YulIdentifier","src":"12803:3:97"},{"name":"_2","nativeSrc":"12808:2:97","nodeType":"YulIdentifier","src":"12808:2:97"}],"functionName":{"name":"add","nativeSrc":"12799:3:97","nodeType":"YulIdentifier","src":"12799:3:97"},"nativeSrc":"12799:12:97","nodeType":"YulFunctionCall","src":"12799:12:97"},"variableNames":[{"name":"src","nativeSrc":"12792:3:97","nodeType":"YulIdentifier","src":"12792:3:97"}]}]},"pre":{"nativeSrc":"12770:3:97","nodeType":"YulBlock","src":"12770:3:97","statements":[]},"src":"12766:147:97"},{"nativeSrc":"12922:14:97","nodeType":"YulAssignment","src":"12922:14:97","value":{"name":"dst_1","nativeSrc":"12931:5:97","nodeType":"YulIdentifier","src":"12931:5:97"},"variableNames":[{"name":"array","nativeSrc":"12922:5:97","nodeType":"YulIdentifier","src":"12922:5:97"}]}]},"name":"abi_decode_array_uint96_dyn","nativeSrc":"12271:671:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"12308:6:97","nodeType":"YulTypedName","src":"12308:6:97","type":""},{"name":"end","nativeSrc":"12316:3:97","nodeType":"YulTypedName","src":"12316:3:97","type":""}],"returnVariables":[{"name":"array","nativeSrc":"12324:5:97","nodeType":"YulTypedName","src":"12324:5:97","type":""}],"src":"12271:671:97"},{"body":{"nativeSrc":"13010:608:97","nodeType":"YulBlock","src":"13010:608:97","statements":[{"body":{"nativeSrc":"13059:16:97","nodeType":"YulBlock","src":"13059:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13068:1:97","nodeType":"YulLiteral","src":"13068:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"13071:1:97","nodeType":"YulLiteral","src":"13071:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13061:6:97","nodeType":"YulIdentifier","src":"13061:6:97"},"nativeSrc":"13061:12:97","nodeType":"YulFunctionCall","src":"13061:12:97"},"nativeSrc":"13061:12:97","nodeType":"YulExpressionStatement","src":"13061:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"13038:6:97","nodeType":"YulIdentifier","src":"13038:6:97"},{"kind":"number","nativeSrc":"13046:4:97","nodeType":"YulLiteral","src":"13046:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"13034:3:97","nodeType":"YulIdentifier","src":"13034:3:97"},"nativeSrc":"13034:17:97","nodeType":"YulFunctionCall","src":"13034:17:97"},{"name":"end","nativeSrc":"13053:3:97","nodeType":"YulIdentifier","src":"13053:3:97"}],"functionName":{"name":"slt","nativeSrc":"13030:3:97","nodeType":"YulIdentifier","src":"13030:3:97"},"nativeSrc":"13030:27:97","nodeType":"YulFunctionCall","src":"13030:27:97"}],"functionName":{"name":"iszero","nativeSrc":"13023:6:97","nodeType":"YulIdentifier","src":"13023:6:97"},"nativeSrc":"13023:35:97","nodeType":"YulFunctionCall","src":"13023:35:97"},"nativeSrc":"13020:55:97","nodeType":"YulIf","src":"13020:55:97"},{"nativeSrc":"13084:30:97","nodeType":"YulVariableDeclaration","src":"13084:30:97","value":{"arguments":[{"name":"offset","nativeSrc":"13107:6:97","nodeType":"YulIdentifier","src":"13107:6:97"}],"functionName":{"name":"calldataload","nativeSrc":"13094:12:97","nodeType":"YulIdentifier","src":"13094:12:97"},"nativeSrc":"13094:20:97","nodeType":"YulFunctionCall","src":"13094:20:97"},"variables":[{"name":"_1","nativeSrc":"13088:2:97","nodeType":"YulTypedName","src":"13088:2:97","type":""}]},{"nativeSrc":"13123:14:97","nodeType":"YulVariableDeclaration","src":"13123:14:97","value":{"kind":"number","nativeSrc":"13133:4:97","nodeType":"YulLiteral","src":"13133:4:97","type":"","value":"0x20"},"variables":[{"name":"_2","nativeSrc":"13127:2:97","nodeType":"YulTypedName","src":"13127:2:97","type":""}]},{"nativeSrc":"13146:70:97","nodeType":"YulVariableDeclaration","src":"13146:70:97","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"13212:2:97","nodeType":"YulIdentifier","src":"13212:2:97"}],"functionName":{"name":"array_allocation_size_array_string_dyn","nativeSrc":"13173:38:97","nodeType":"YulIdentifier","src":"13173:38:97"},"nativeSrc":"13173:42:97","nodeType":"YulFunctionCall","src":"13173:42:97"}],"functionName":{"name":"allocate_memory","nativeSrc":"13157:15:97","nodeType":"YulIdentifier","src":"13157:15:97"},"nativeSrc":"13157:59:97","nodeType":"YulFunctionCall","src":"13157:59:97"},"variables":[{"name":"dst","nativeSrc":"13150:3:97","nodeType":"YulTypedName","src":"13150:3:97","type":""}]},{"nativeSrc":"13225:16:97","nodeType":"YulVariableDeclaration","src":"13225:16:97","value":{"name":"dst","nativeSrc":"13238:3:97","nodeType":"YulIdentifier","src":"13238:3:97"},"variables":[{"name":"dst_1","nativeSrc":"13229:5:97","nodeType":"YulTypedName","src":"13229:5:97","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"13257:3:97","nodeType":"YulIdentifier","src":"13257:3:97"},{"name":"_1","nativeSrc":"13262:2:97","nodeType":"YulIdentifier","src":"13262:2:97"}],"functionName":{"name":"mstore","nativeSrc":"13250:6:97","nodeType":"YulIdentifier","src":"13250:6:97"},"nativeSrc":"13250:15:97","nodeType":"YulFunctionCall","src":"13250:15:97"},"nativeSrc":"13250:15:97","nodeType":"YulExpressionStatement","src":"13250:15:97"},{"nativeSrc":"13274:21:97","nodeType":"YulAssignment","src":"13274:21:97","value":{"arguments":[{"name":"dst","nativeSrc":"13285:3:97","nodeType":"YulIdentifier","src":"13285:3:97"},{"kind":"number","nativeSrc":"13290:4:97","nodeType":"YulLiteral","src":"13290:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13281:3:97","nodeType":"YulIdentifier","src":"13281:3:97"},"nativeSrc":"13281:14:97","nodeType":"YulFunctionCall","src":"13281:14:97"},"variableNames":[{"name":"dst","nativeSrc":"13274:3:97","nodeType":"YulIdentifier","src":"13274:3:97"}]},{"nativeSrc":"13304:48:97","nodeType":"YulVariableDeclaration","src":"13304:48:97","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"13326:6:97","nodeType":"YulIdentifier","src":"13326:6:97"},{"arguments":[{"kind":"number","nativeSrc":"13338:1:97","nodeType":"YulLiteral","src":"13338:1:97","type":"","value":"5"},{"name":"_1","nativeSrc":"13341:2:97","nodeType":"YulIdentifier","src":"13341:2:97"}],"functionName":{"name":"shl","nativeSrc":"13334:3:97","nodeType":"YulIdentifier","src":"13334:3:97"},"nativeSrc":"13334:10:97","nodeType":"YulFunctionCall","src":"13334:10:97"}],"functionName":{"name":"add","nativeSrc":"13322:3:97","nodeType":"YulIdentifier","src":"13322:3:97"},"nativeSrc":"13322:23:97","nodeType":"YulFunctionCall","src":"13322:23:97"},{"kind":"number","nativeSrc":"13347:4:97","nodeType":"YulLiteral","src":"13347:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13318:3:97","nodeType":"YulIdentifier","src":"13318:3:97"},"nativeSrc":"13318:34:97","nodeType":"YulFunctionCall","src":"13318:34:97"},"variables":[{"name":"srcEnd","nativeSrc":"13308:6:97","nodeType":"YulTypedName","src":"13308:6:97","type":""}]},{"body":{"nativeSrc":"13380:16:97","nodeType":"YulBlock","src":"13380:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13389:1:97","nodeType":"YulLiteral","src":"13389:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"13392:1:97","nodeType":"YulLiteral","src":"13392:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13382:6:97","nodeType":"YulIdentifier","src":"13382:6:97"},"nativeSrc":"13382:12:97","nodeType":"YulFunctionCall","src":"13382:12:97"},"nativeSrc":"13382:12:97","nodeType":"YulExpressionStatement","src":"13382:12:97"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"13367:6:97","nodeType":"YulIdentifier","src":"13367:6:97"},{"name":"end","nativeSrc":"13375:3:97","nodeType":"YulIdentifier","src":"13375:3:97"}],"functionName":{"name":"gt","nativeSrc":"13364:2:97","nodeType":"YulIdentifier","src":"13364:2:97"},"nativeSrc":"13364:15:97","nodeType":"YulFunctionCall","src":"13364:15:97"},"nativeSrc":"13361:35:97","nodeType":"YulIf","src":"13361:35:97"},{"nativeSrc":"13405:28:97","nodeType":"YulVariableDeclaration","src":"13405:28:97","value":{"arguments":[{"name":"offset","nativeSrc":"13420:6:97","nodeType":"YulIdentifier","src":"13420:6:97"},{"kind":"number","nativeSrc":"13428:4:97","nodeType":"YulLiteral","src":"13428:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13416:3:97","nodeType":"YulIdentifier","src":"13416:3:97"},"nativeSrc":"13416:17:97","nodeType":"YulFunctionCall","src":"13416:17:97"},"variables":[{"name":"src","nativeSrc":"13409:3:97","nodeType":"YulTypedName","src":"13409:3:97","type":""}]},{"body":{"nativeSrc":"13498:91:97","nodeType":"YulBlock","src":"13498:91:97","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"13519:3:97","nodeType":"YulIdentifier","src":"13519:3:97"},{"arguments":[{"name":"src","nativeSrc":"13542:3:97","nodeType":"YulIdentifier","src":"13542:3:97"}],"functionName":{"name":"abi_decode_uint32","nativeSrc":"13524:17:97","nodeType":"YulIdentifier","src":"13524:17:97"},"nativeSrc":"13524:22:97","nodeType":"YulFunctionCall","src":"13524:22:97"}],"functionName":{"name":"mstore","nativeSrc":"13512:6:97","nodeType":"YulIdentifier","src":"13512:6:97"},"nativeSrc":"13512:35:97","nodeType":"YulFunctionCall","src":"13512:35:97"},"nativeSrc":"13512:35:97","nodeType":"YulExpressionStatement","src":"13512:35:97"},{"nativeSrc":"13560:19:97","nodeType":"YulAssignment","src":"13560:19:97","value":{"arguments":[{"name":"dst","nativeSrc":"13571:3:97","nodeType":"YulIdentifier","src":"13571:3:97"},{"name":"_2","nativeSrc":"13576:2:97","nodeType":"YulIdentifier","src":"13576:2:97"}],"functionName":{"name":"add","nativeSrc":"13567:3:97","nodeType":"YulIdentifier","src":"13567:3:97"},"nativeSrc":"13567:12:97","nodeType":"YulFunctionCall","src":"13567:12:97"},"variableNames":[{"name":"dst","nativeSrc":"13560:3:97","nodeType":"YulIdentifier","src":"13560:3:97"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"13453:3:97","nodeType":"YulIdentifier","src":"13453:3:97"},{"name":"srcEnd","nativeSrc":"13458:6:97","nodeType":"YulIdentifier","src":"13458:6:97"}],"functionName":{"name":"lt","nativeSrc":"13450:2:97","nodeType":"YulIdentifier","src":"13450:2:97"},"nativeSrc":"13450:15:97","nodeType":"YulFunctionCall","src":"13450:15:97"},"nativeSrc":"13442:147:97","nodeType":"YulForLoop","post":{"nativeSrc":"13466:23:97","nodeType":"YulBlock","src":"13466:23:97","statements":[{"nativeSrc":"13468:19:97","nodeType":"YulAssignment","src":"13468:19:97","value":{"arguments":[{"name":"src","nativeSrc":"13479:3:97","nodeType":"YulIdentifier","src":"13479:3:97"},{"name":"_2","nativeSrc":"13484:2:97","nodeType":"YulIdentifier","src":"13484:2:97"}],"functionName":{"name":"add","nativeSrc":"13475:3:97","nodeType":"YulIdentifier","src":"13475:3:97"},"nativeSrc":"13475:12:97","nodeType":"YulFunctionCall","src":"13475:12:97"},"variableNames":[{"name":"src","nativeSrc":"13468:3:97","nodeType":"YulIdentifier","src":"13468:3:97"}]}]},"pre":{"nativeSrc":"13446:3:97","nodeType":"YulBlock","src":"13446:3:97","statements":[]},"src":"13442:147:97"},{"nativeSrc":"13598:14:97","nodeType":"YulAssignment","src":"13598:14:97","value":{"name":"dst_1","nativeSrc":"13607:5:97","nodeType":"YulIdentifier","src":"13607:5:97"},"variableNames":[{"name":"array","nativeSrc":"13598:5:97","nodeType":"YulIdentifier","src":"13598:5:97"}]}]},"name":"abi_decode_array_uint32_dyn","nativeSrc":"12947:671:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"12984:6:97","nodeType":"YulTypedName","src":"12984:6:97","type":""},{"name":"end","nativeSrc":"12992:3:97","nodeType":"YulTypedName","src":"12992:3:97","type":""}],"returnVariables":[{"name":"array","nativeSrc":"13000:5:97","nodeType":"YulTypedName","src":"13000:5:97","type":""}],"src":"12947:671:97"},{"body":{"nativeSrc":"14006:1376:97","nodeType":"YulBlock","src":"14006:1376:97","statements":[{"body":{"nativeSrc":"14053:16:97","nodeType":"YulBlock","src":"14053:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14062:1:97","nodeType":"YulLiteral","src":"14062:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"14065:1:97","nodeType":"YulLiteral","src":"14065:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"14055:6:97","nodeType":"YulIdentifier","src":"14055:6:97"},"nativeSrc":"14055:12:97","nodeType":"YulFunctionCall","src":"14055:12:97"},"nativeSrc":"14055:12:97","nodeType":"YulExpressionStatement","src":"14055:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"14027:7:97","nodeType":"YulIdentifier","src":"14027:7:97"},{"name":"headStart","nativeSrc":"14036:9:97","nodeType":"YulIdentifier","src":"14036:9:97"}],"functionName":{"name":"sub","nativeSrc":"14023:3:97","nodeType":"YulIdentifier","src":"14023:3:97"},"nativeSrc":"14023:23:97","nodeType":"YulFunctionCall","src":"14023:23:97"},{"kind":"number","nativeSrc":"14048:3:97","nodeType":"YulLiteral","src":"14048:3:97","type":"","value":"224"}],"functionName":{"name":"slt","nativeSrc":"14019:3:97","nodeType":"YulIdentifier","src":"14019:3:97"},"nativeSrc":"14019:33:97","nodeType":"YulFunctionCall","src":"14019:33:97"},"nativeSrc":"14016:53:97","nodeType":"YulIf","src":"14016:53:97"},{"nativeSrc":"14078:37:97","nodeType":"YulVariableDeclaration","src":"14078:37:97","value":{"arguments":[{"name":"headStart","nativeSrc":"14105:9:97","nodeType":"YulIdentifier","src":"14105:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"14092:12:97","nodeType":"YulIdentifier","src":"14092:12:97"},"nativeSrc":"14092:23:97","nodeType":"YulFunctionCall","src":"14092:23:97"},"variables":[{"name":"offset","nativeSrc":"14082:6:97","nodeType":"YulTypedName","src":"14082:6:97","type":""}]},{"nativeSrc":"14124:28:97","nodeType":"YulVariableDeclaration","src":"14124:28:97","value":{"kind":"number","nativeSrc":"14134:18:97","nodeType":"YulLiteral","src":"14134:18:97","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"14128:2:97","nodeType":"YulTypedName","src":"14128:2:97","type":""}]},{"body":{"nativeSrc":"14179:16:97","nodeType":"YulBlock","src":"14179:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14188:1:97","nodeType":"YulLiteral","src":"14188:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"14191:1:97","nodeType":"YulLiteral","src":"14191:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"14181:6:97","nodeType":"YulIdentifier","src":"14181:6:97"},"nativeSrc":"14181:12:97","nodeType":"YulFunctionCall","src":"14181:12:97"},"nativeSrc":"14181:12:97","nodeType":"YulExpressionStatement","src":"14181:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"14167:6:97","nodeType":"YulIdentifier","src":"14167:6:97"},{"name":"_1","nativeSrc":"14175:2:97","nodeType":"YulIdentifier","src":"14175:2:97"}],"functionName":{"name":"gt","nativeSrc":"14164:2:97","nodeType":"YulIdentifier","src":"14164:2:97"},"nativeSrc":"14164:14:97","nodeType":"YulFunctionCall","src":"14164:14:97"},"nativeSrc":"14161:34:97","nodeType":"YulIf","src":"14161:34:97"},{"nativeSrc":"14204:70:97","nodeType":"YulAssignment","src":"14204:70:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14246:9:97","nodeType":"YulIdentifier","src":"14246:9:97"},{"name":"offset","nativeSrc":"14257:6:97","nodeType":"YulIdentifier","src":"14257:6:97"}],"functionName":{"name":"add","nativeSrc":"14242:3:97","nodeType":"YulIdentifier","src":"14242:3:97"},"nativeSrc":"14242:22:97","nodeType":"YulFunctionCall","src":"14242:22:97"},{"name":"dataEnd","nativeSrc":"14266:7:97","nodeType":"YulIdentifier","src":"14266:7:97"}],"functionName":{"name":"abi_decode_array_string_dyn","nativeSrc":"14214:27:97","nodeType":"YulIdentifier","src":"14214:27:97"},"nativeSrc":"14214:60:97","nodeType":"YulFunctionCall","src":"14214:60:97"},"variableNames":[{"name":"value0","nativeSrc":"14204:6:97","nodeType":"YulIdentifier","src":"14204:6:97"}]},{"nativeSrc":"14283:48:97","nodeType":"YulVariableDeclaration","src":"14283:48:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14316:9:97","nodeType":"YulIdentifier","src":"14316:9:97"},{"kind":"number","nativeSrc":"14327:2:97","nodeType":"YulLiteral","src":"14327:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14312:3:97","nodeType":"YulIdentifier","src":"14312:3:97"},"nativeSrc":"14312:18:97","nodeType":"YulFunctionCall","src":"14312:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"14299:12:97","nodeType":"YulIdentifier","src":"14299:12:97"},"nativeSrc":"14299:32:97","nodeType":"YulFunctionCall","src":"14299:32:97"},"variables":[{"name":"offset_1","nativeSrc":"14287:8:97","nodeType":"YulTypedName","src":"14287:8:97","type":""}]},{"body":{"nativeSrc":"14360:16:97","nodeType":"YulBlock","src":"14360:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14369:1:97","nodeType":"YulLiteral","src":"14369:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"14372:1:97","nodeType":"YulLiteral","src":"14372:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"14362:6:97","nodeType":"YulIdentifier","src":"14362:6:97"},"nativeSrc":"14362:12:97","nodeType":"YulFunctionCall","src":"14362:12:97"},"nativeSrc":"14362:12:97","nodeType":"YulExpressionStatement","src":"14362:12:97"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"14346:8:97","nodeType":"YulIdentifier","src":"14346:8:97"},{"name":"_1","nativeSrc":"14356:2:97","nodeType":"YulIdentifier","src":"14356:2:97"}],"functionName":{"name":"gt","nativeSrc":"14343:2:97","nodeType":"YulIdentifier","src":"14343:2:97"},"nativeSrc":"14343:16:97","nodeType":"YulFunctionCall","src":"14343:16:97"},"nativeSrc":"14340:36:97","nodeType":"YulIf","src":"14340:36:97"},{"nativeSrc":"14385:72:97","nodeType":"YulAssignment","src":"14385:72:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14427:9:97","nodeType":"YulIdentifier","src":"14427:9:97"},{"name":"offset_1","nativeSrc":"14438:8:97","nodeType":"YulIdentifier","src":"14438:8:97"}],"functionName":{"name":"add","nativeSrc":"14423:3:97","nodeType":"YulIdentifier","src":"14423:3:97"},"nativeSrc":"14423:24:97","nodeType":"YulFunctionCall","src":"14423:24:97"},{"name":"dataEnd","nativeSrc":"14449:7:97","nodeType":"YulIdentifier","src":"14449:7:97"}],"functionName":{"name":"abi_decode_array_string_dyn","nativeSrc":"14395:27:97","nodeType":"YulIdentifier","src":"14395:27:97"},"nativeSrc":"14395:62:97","nodeType":"YulFunctionCall","src":"14395:62:97"},"variableNames":[{"name":"value1","nativeSrc":"14385:6:97","nodeType":"YulIdentifier","src":"14385:6:97"}]},{"nativeSrc":"14466:48:97","nodeType":"YulVariableDeclaration","src":"14466:48:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14499:9:97","nodeType":"YulIdentifier","src":"14499:9:97"},{"kind":"number","nativeSrc":"14510:2:97","nodeType":"YulLiteral","src":"14510:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14495:3:97","nodeType":"YulIdentifier","src":"14495:3:97"},"nativeSrc":"14495:18:97","nodeType":"YulFunctionCall","src":"14495:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"14482:12:97","nodeType":"YulIdentifier","src":"14482:12:97"},"nativeSrc":"14482:32:97","nodeType":"YulFunctionCall","src":"14482:32:97"},"variables":[{"name":"offset_2","nativeSrc":"14470:8:97","nodeType":"YulTypedName","src":"14470:8:97","type":""}]},{"body":{"nativeSrc":"14543:16:97","nodeType":"YulBlock","src":"14543:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14552:1:97","nodeType":"YulLiteral","src":"14552:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"14555:1:97","nodeType":"YulLiteral","src":"14555:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"14545:6:97","nodeType":"YulIdentifier","src":"14545:6:97"},"nativeSrc":"14545:12:97","nodeType":"YulFunctionCall","src":"14545:12:97"},"nativeSrc":"14545:12:97","nodeType":"YulExpressionStatement","src":"14545:12:97"}]},"condition":{"arguments":[{"name":"offset_2","nativeSrc":"14529:8:97","nodeType":"YulIdentifier","src":"14529:8:97"},{"name":"_1","nativeSrc":"14539:2:97","nodeType":"YulIdentifier","src":"14539:2:97"}],"functionName":{"name":"gt","nativeSrc":"14526:2:97","nodeType":"YulIdentifier","src":"14526:2:97"},"nativeSrc":"14526:16:97","nodeType":"YulFunctionCall","src":"14526:16:97"},"nativeSrc":"14523:36:97","nodeType":"YulIf","src":"14523:36:97"},{"nativeSrc":"14568:72:97","nodeType":"YulAssignment","src":"14568:72:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14610:9:97","nodeType":"YulIdentifier","src":"14610:9:97"},{"name":"offset_2","nativeSrc":"14621:8:97","nodeType":"YulIdentifier","src":"14621:8:97"}],"functionName":{"name":"add","nativeSrc":"14606:3:97","nodeType":"YulIdentifier","src":"14606:3:97"},"nativeSrc":"14606:24:97","nodeType":"YulFunctionCall","src":"14606:24:97"},{"name":"dataEnd","nativeSrc":"14632:7:97","nodeType":"YulIdentifier","src":"14632:7:97"}],"functionName":{"name":"abi_decode_array_string_dyn","nativeSrc":"14578:27:97","nodeType":"YulIdentifier","src":"14578:27:97"},"nativeSrc":"14578:62:97","nodeType":"YulFunctionCall","src":"14578:62:97"},"variableNames":[{"name":"value2","nativeSrc":"14568:6:97","nodeType":"YulIdentifier","src":"14568:6:97"}]},{"nativeSrc":"14649:48:97","nodeType":"YulVariableDeclaration","src":"14649:48:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14682:9:97","nodeType":"YulIdentifier","src":"14682:9:97"},{"kind":"number","nativeSrc":"14693:2:97","nodeType":"YulLiteral","src":"14693:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"14678:3:97","nodeType":"YulIdentifier","src":"14678:3:97"},"nativeSrc":"14678:18:97","nodeType":"YulFunctionCall","src":"14678:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"14665:12:97","nodeType":"YulIdentifier","src":"14665:12:97"},"nativeSrc":"14665:32:97","nodeType":"YulFunctionCall","src":"14665:32:97"},"variables":[{"name":"offset_3","nativeSrc":"14653:8:97","nodeType":"YulTypedName","src":"14653:8:97","type":""}]},{"body":{"nativeSrc":"14726:16:97","nodeType":"YulBlock","src":"14726:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14735:1:97","nodeType":"YulLiteral","src":"14735:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"14738:1:97","nodeType":"YulLiteral","src":"14738:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"14728:6:97","nodeType":"YulIdentifier","src":"14728:6:97"},"nativeSrc":"14728:12:97","nodeType":"YulFunctionCall","src":"14728:12:97"},"nativeSrc":"14728:12:97","nodeType":"YulExpressionStatement","src":"14728:12:97"}]},"condition":{"arguments":[{"name":"offset_3","nativeSrc":"14712:8:97","nodeType":"YulIdentifier","src":"14712:8:97"},{"name":"_1","nativeSrc":"14722:2:97","nodeType":"YulIdentifier","src":"14722:2:97"}],"functionName":{"name":"gt","nativeSrc":"14709:2:97","nodeType":"YulIdentifier","src":"14709:2:97"},"nativeSrc":"14709:16:97","nodeType":"YulFunctionCall","src":"14709:16:97"},"nativeSrc":"14706:36:97","nodeType":"YulIf","src":"14706:36:97"},{"nativeSrc":"14751:73:97","nodeType":"YulAssignment","src":"14751:73:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14794:9:97","nodeType":"YulIdentifier","src":"14794:9:97"},{"name":"offset_3","nativeSrc":"14805:8:97","nodeType":"YulIdentifier","src":"14805:8:97"}],"functionName":{"name":"add","nativeSrc":"14790:3:97","nodeType":"YulIdentifier","src":"14790:3:97"},"nativeSrc":"14790:24:97","nodeType":"YulFunctionCall","src":"14790:24:97"},{"name":"dataEnd","nativeSrc":"14816:7:97","nodeType":"YulIdentifier","src":"14816:7:97"}],"functionName":{"name":"abi_decode_array_address_dyn","nativeSrc":"14761:28:97","nodeType":"YulIdentifier","src":"14761:28:97"},"nativeSrc":"14761:63:97","nodeType":"YulFunctionCall","src":"14761:63:97"},"variableNames":[{"name":"value3","nativeSrc":"14751:6:97","nodeType":"YulIdentifier","src":"14751:6:97"}]},{"nativeSrc":"14833:49:97","nodeType":"YulVariableDeclaration","src":"14833:49:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14866:9:97","nodeType":"YulIdentifier","src":"14866:9:97"},{"kind":"number","nativeSrc":"14877:3:97","nodeType":"YulLiteral","src":"14877:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"14862:3:97","nodeType":"YulIdentifier","src":"14862:3:97"},"nativeSrc":"14862:19:97","nodeType":"YulFunctionCall","src":"14862:19:97"}],"functionName":{"name":"calldataload","nativeSrc":"14849:12:97","nodeType":"YulIdentifier","src":"14849:12:97"},"nativeSrc":"14849:33:97","nodeType":"YulFunctionCall","src":"14849:33:97"},"variables":[{"name":"offset_4","nativeSrc":"14837:8:97","nodeType":"YulTypedName","src":"14837:8:97","type":""}]},{"body":{"nativeSrc":"14911:16:97","nodeType":"YulBlock","src":"14911:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14920:1:97","nodeType":"YulLiteral","src":"14920:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"14923:1:97","nodeType":"YulLiteral","src":"14923:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"14913:6:97","nodeType":"YulIdentifier","src":"14913:6:97"},"nativeSrc":"14913:12:97","nodeType":"YulFunctionCall","src":"14913:12:97"},"nativeSrc":"14913:12:97","nodeType":"YulExpressionStatement","src":"14913:12:97"}]},"condition":{"arguments":[{"name":"offset_4","nativeSrc":"14897:8:97","nodeType":"YulIdentifier","src":"14897:8:97"},{"name":"_1","nativeSrc":"14907:2:97","nodeType":"YulIdentifier","src":"14907:2:97"}],"functionName":{"name":"gt","nativeSrc":"14894:2:97","nodeType":"YulIdentifier","src":"14894:2:97"},"nativeSrc":"14894:16:97","nodeType":"YulFunctionCall","src":"14894:16:97"},"nativeSrc":"14891:36:97","nodeType":"YulIf","src":"14891:36:97"},{"nativeSrc":"14936:72:97","nodeType":"YulAssignment","src":"14936:72:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14978:9:97","nodeType":"YulIdentifier","src":"14978:9:97"},{"name":"offset_4","nativeSrc":"14989:8:97","nodeType":"YulIdentifier","src":"14989:8:97"}],"functionName":{"name":"add","nativeSrc":"14974:3:97","nodeType":"YulIdentifier","src":"14974:3:97"},"nativeSrc":"14974:24:97","nodeType":"YulFunctionCall","src":"14974:24:97"},{"name":"dataEnd","nativeSrc":"15000:7:97","nodeType":"YulIdentifier","src":"15000:7:97"}],"functionName":{"name":"abi_decode_array_uint96_dyn","nativeSrc":"14946:27:97","nodeType":"YulIdentifier","src":"14946:27:97"},"nativeSrc":"14946:62:97","nodeType":"YulFunctionCall","src":"14946:62:97"},"variableNames":[{"name":"value4","nativeSrc":"14936:6:97","nodeType":"YulIdentifier","src":"14936:6:97"}]},{"nativeSrc":"15017:49:97","nodeType":"YulVariableDeclaration","src":"15017:49:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15050:9:97","nodeType":"YulIdentifier","src":"15050:9:97"},{"kind":"number","nativeSrc":"15061:3:97","nodeType":"YulLiteral","src":"15061:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"15046:3:97","nodeType":"YulIdentifier","src":"15046:3:97"},"nativeSrc":"15046:19:97","nodeType":"YulFunctionCall","src":"15046:19:97"}],"functionName":{"name":"calldataload","nativeSrc":"15033:12:97","nodeType":"YulIdentifier","src":"15033:12:97"},"nativeSrc":"15033:33:97","nodeType":"YulFunctionCall","src":"15033:33:97"},"variables":[{"name":"offset_5","nativeSrc":"15021:8:97","nodeType":"YulTypedName","src":"15021:8:97","type":""}]},{"body":{"nativeSrc":"15095:16:97","nodeType":"YulBlock","src":"15095:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15104:1:97","nodeType":"YulLiteral","src":"15104:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"15107:1:97","nodeType":"YulLiteral","src":"15107:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"15097:6:97","nodeType":"YulIdentifier","src":"15097:6:97"},"nativeSrc":"15097:12:97","nodeType":"YulFunctionCall","src":"15097:12:97"},"nativeSrc":"15097:12:97","nodeType":"YulExpressionStatement","src":"15097:12:97"}]},"condition":{"arguments":[{"name":"offset_5","nativeSrc":"15081:8:97","nodeType":"YulIdentifier","src":"15081:8:97"},{"name":"_1","nativeSrc":"15091:2:97","nodeType":"YulIdentifier","src":"15091:2:97"}],"functionName":{"name":"gt","nativeSrc":"15078:2:97","nodeType":"YulIdentifier","src":"15078:2:97"},"nativeSrc":"15078:16:97","nodeType":"YulFunctionCall","src":"15078:16:97"},"nativeSrc":"15075:36:97","nodeType":"YulIf","src":"15075:36:97"},{"nativeSrc":"15120:72:97","nodeType":"YulAssignment","src":"15120:72:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15162:9:97","nodeType":"YulIdentifier","src":"15162:9:97"},{"name":"offset_5","nativeSrc":"15173:8:97","nodeType":"YulIdentifier","src":"15173:8:97"}],"functionName":{"name":"add","nativeSrc":"15158:3:97","nodeType":"YulIdentifier","src":"15158:3:97"},"nativeSrc":"15158:24:97","nodeType":"YulFunctionCall","src":"15158:24:97"},{"name":"dataEnd","nativeSrc":"15184:7:97","nodeType":"YulIdentifier","src":"15184:7:97"}],"functionName":{"name":"abi_decode_array_uint32_dyn","nativeSrc":"15130:27:97","nodeType":"YulIdentifier","src":"15130:27:97"},"nativeSrc":"15130:62:97","nodeType":"YulFunctionCall","src":"15130:62:97"},"variableNames":[{"name":"value5","nativeSrc":"15120:6:97","nodeType":"YulIdentifier","src":"15120:6:97"}]},{"nativeSrc":"15201:49:97","nodeType":"YulVariableDeclaration","src":"15201:49:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15234:9:97","nodeType":"YulIdentifier","src":"15234:9:97"},{"kind":"number","nativeSrc":"15245:3:97","nodeType":"YulLiteral","src":"15245:3:97","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"15230:3:97","nodeType":"YulIdentifier","src":"15230:3:97"},"nativeSrc":"15230:19:97","nodeType":"YulFunctionCall","src":"15230:19:97"}],"functionName":{"name":"calldataload","nativeSrc":"15217:12:97","nodeType":"YulIdentifier","src":"15217:12:97"},"nativeSrc":"15217:33:97","nodeType":"YulFunctionCall","src":"15217:33:97"},"variables":[{"name":"offset_6","nativeSrc":"15205:8:97","nodeType":"YulTypedName","src":"15205:8:97","type":""}]},{"body":{"nativeSrc":"15279:16:97","nodeType":"YulBlock","src":"15279:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15288:1:97","nodeType":"YulLiteral","src":"15288:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"15291:1:97","nodeType":"YulLiteral","src":"15291:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"15281:6:97","nodeType":"YulIdentifier","src":"15281:6:97"},"nativeSrc":"15281:12:97","nodeType":"YulFunctionCall","src":"15281:12:97"},"nativeSrc":"15281:12:97","nodeType":"YulExpressionStatement","src":"15281:12:97"}]},"condition":{"arguments":[{"name":"offset_6","nativeSrc":"15265:8:97","nodeType":"YulIdentifier","src":"15265:8:97"},{"name":"_1","nativeSrc":"15275:2:97","nodeType":"YulIdentifier","src":"15275:2:97"}],"functionName":{"name":"gt","nativeSrc":"15262:2:97","nodeType":"YulIdentifier","src":"15262:2:97"},"nativeSrc":"15262:16:97","nodeType":"YulFunctionCall","src":"15262:16:97"},"nativeSrc":"15259:36:97","nodeType":"YulIf","src":"15259:36:97"},{"nativeSrc":"15304:72:97","nodeType":"YulAssignment","src":"15304:72:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15346:9:97","nodeType":"YulIdentifier","src":"15346:9:97"},{"name":"offset_6","nativeSrc":"15357:8:97","nodeType":"YulIdentifier","src":"15357:8:97"}],"functionName":{"name":"add","nativeSrc":"15342:3:97","nodeType":"YulIdentifier","src":"15342:3:97"},"nativeSrc":"15342:24:97","nodeType":"YulFunctionCall","src":"15342:24:97"},{"name":"dataEnd","nativeSrc":"15368:7:97","nodeType":"YulIdentifier","src":"15368:7:97"}],"functionName":{"name":"abi_decode_array_string_dyn","nativeSrc":"15314:27:97","nodeType":"YulIdentifier","src":"15314:27:97"},"nativeSrc":"15314:62:97","nodeType":"YulFunctionCall","src":"15314:62:97"},"variableNames":[{"name":"value6","nativeSrc":"15304:6:97","nodeType":"YulIdentifier","src":"15304:6:97"}]}]},"name":"abi_decode_tuple_t_array$_t_string_memory_ptr_$dyn_memory_ptrt_array$_t_bytes_memory_ptr_$dyn_memory_ptrt_array$_t_string_memory_ptr_$dyn_memory_ptrt_array$_t_address_$dyn_memory_ptrt_array$_t_uint96_$dyn_memory_ptrt_array$_t_uint32_$dyn_memory_ptrt_array$_t_bytes_memory_ptr_$dyn_memory_ptr","nativeSrc":"13623:1759:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13924:9:97","nodeType":"YulTypedName","src":"13924:9:97","type":""},{"name":"dataEnd","nativeSrc":"13935:7:97","nodeType":"YulTypedName","src":"13935:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"13947:6:97","nodeType":"YulTypedName","src":"13947:6:97","type":""},{"name":"value1","nativeSrc":"13955:6:97","nodeType":"YulTypedName","src":"13955:6:97","type":""},{"name":"value2","nativeSrc":"13963:6:97","nodeType":"YulTypedName","src":"13963:6:97","type":""},{"name":"value3","nativeSrc":"13971:6:97","nodeType":"YulTypedName","src":"13971:6:97","type":""},{"name":"value4","nativeSrc":"13979:6:97","nodeType":"YulTypedName","src":"13979:6:97","type":""},{"name":"value5","nativeSrc":"13987:6:97","nodeType":"YulTypedName","src":"13987:6:97","type":""},{"name":"value6","nativeSrc":"13995:6:97","nodeType":"YulTypedName","src":"13995:6:97","type":""}],"src":"13623:1759:97"},{"body":{"nativeSrc":"15508:99:97","nodeType":"YulBlock","src":"15508:99:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"15525:9:97","nodeType":"YulIdentifier","src":"15525:9:97"},{"kind":"number","nativeSrc":"15536:2:97","nodeType":"YulLiteral","src":"15536:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"15518:6:97","nodeType":"YulIdentifier","src":"15518:6:97"},"nativeSrc":"15518:21:97","nodeType":"YulFunctionCall","src":"15518:21:97"},"nativeSrc":"15518:21:97","nodeType":"YulExpressionStatement","src":"15518:21:97"},{"nativeSrc":"15548:53:97","nodeType":"YulAssignment","src":"15548:53:97","value":{"arguments":[{"name":"value0","nativeSrc":"15574:6:97","nodeType":"YulIdentifier","src":"15574:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"15586:9:97","nodeType":"YulIdentifier","src":"15586:9:97"},{"kind":"number","nativeSrc":"15597:2:97","nodeType":"YulLiteral","src":"15597:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15582:3:97","nodeType":"YulIdentifier","src":"15582:3:97"},"nativeSrc":"15582:18:97","nodeType":"YulFunctionCall","src":"15582:18:97"}],"functionName":{"name":"abi_encode_string","nativeSrc":"15556:17:97","nodeType":"YulIdentifier","src":"15556:17:97"},"nativeSrc":"15556:45:97","nodeType":"YulFunctionCall","src":"15556:45:97"},"variableNames":[{"name":"tail","nativeSrc":"15548:4:97","nodeType":"YulIdentifier","src":"15548:4:97"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"15387:220:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15477:9:97","nodeType":"YulTypedName","src":"15477:9:97","type":""},{"name":"value0","nativeSrc":"15488:6:97","nodeType":"YulTypedName","src":"15488:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15499:4:97","nodeType":"YulTypedName","src":"15499:4:97","type":""}],"src":"15387:220:97"},{"body":{"nativeSrc":"15654:76:97","nodeType":"YulBlock","src":"15654:76:97","statements":[{"body":{"nativeSrc":"15708:16:97","nodeType":"YulBlock","src":"15708:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15717:1:97","nodeType":"YulLiteral","src":"15717:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"15720:1:97","nodeType":"YulLiteral","src":"15720:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"15710:6:97","nodeType":"YulIdentifier","src":"15710:6:97"},"nativeSrc":"15710:12:97","nodeType":"YulFunctionCall","src":"15710:12:97"},"nativeSrc":"15710:12:97","nodeType":"YulExpressionStatement","src":"15710:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15677:5:97","nodeType":"YulIdentifier","src":"15677:5:97"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15698:5:97","nodeType":"YulIdentifier","src":"15698:5:97"}],"functionName":{"name":"iszero","nativeSrc":"15691:6:97","nodeType":"YulIdentifier","src":"15691:6:97"},"nativeSrc":"15691:13:97","nodeType":"YulFunctionCall","src":"15691:13:97"}],"functionName":{"name":"iszero","nativeSrc":"15684:6:97","nodeType":"YulIdentifier","src":"15684:6:97"},"nativeSrc":"15684:21:97","nodeType":"YulFunctionCall","src":"15684:21:97"}],"functionName":{"name":"eq","nativeSrc":"15674:2:97","nodeType":"YulIdentifier","src":"15674:2:97"},"nativeSrc":"15674:32:97","nodeType":"YulFunctionCall","src":"15674:32:97"}],"functionName":{"name":"iszero","nativeSrc":"15667:6:97","nodeType":"YulIdentifier","src":"15667:6:97"},"nativeSrc":"15667:40:97","nodeType":"YulFunctionCall","src":"15667:40:97"},"nativeSrc":"15664:60:97","nodeType":"YulIf","src":"15664:60:97"}]},"name":"validator_revert_bool","nativeSrc":"15612:118:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"15643:5:97","nodeType":"YulTypedName","src":"15643:5:97","type":""}],"src":"15612:118:97"},{"body":{"nativeSrc":"15829:357:97","nodeType":"YulBlock","src":"15829:357:97","statements":[{"body":{"nativeSrc":"15875:16:97","nodeType":"YulBlock","src":"15875:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15884:1:97","nodeType":"YulLiteral","src":"15884:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"15887:1:97","nodeType":"YulLiteral","src":"15887:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"15877:6:97","nodeType":"YulIdentifier","src":"15877:6:97"},"nativeSrc":"15877:12:97","nodeType":"YulFunctionCall","src":"15877:12:97"},"nativeSrc":"15877:12:97","nodeType":"YulExpressionStatement","src":"15877:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"15850:7:97","nodeType":"YulIdentifier","src":"15850:7:97"},{"name":"headStart","nativeSrc":"15859:9:97","nodeType":"YulIdentifier","src":"15859:9:97"}],"functionName":{"name":"sub","nativeSrc":"15846:3:97","nodeType":"YulIdentifier","src":"15846:3:97"},"nativeSrc":"15846:23:97","nodeType":"YulFunctionCall","src":"15846:23:97"},{"kind":"number","nativeSrc":"15871:2:97","nodeType":"YulLiteral","src":"15871:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"15842:3:97","nodeType":"YulIdentifier","src":"15842:3:97"},"nativeSrc":"15842:32:97","nodeType":"YulFunctionCall","src":"15842:32:97"},"nativeSrc":"15839:52:97","nodeType":"YulIf","src":"15839:52:97"},{"nativeSrc":"15900:37:97","nodeType":"YulVariableDeclaration","src":"15900:37:97","value":{"arguments":[{"name":"headStart","nativeSrc":"15927:9:97","nodeType":"YulIdentifier","src":"15927:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"15914:12:97","nodeType":"YulIdentifier","src":"15914:12:97"},"nativeSrc":"15914:23:97","nodeType":"YulFunctionCall","src":"15914:23:97"},"variables":[{"name":"offset","nativeSrc":"15904:6:97","nodeType":"YulTypedName","src":"15904:6:97","type":""}]},{"body":{"nativeSrc":"15980:16:97","nodeType":"YulBlock","src":"15980:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15989:1:97","nodeType":"YulLiteral","src":"15989:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"15992:1:97","nodeType":"YulLiteral","src":"15992:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"15982:6:97","nodeType":"YulIdentifier","src":"15982:6:97"},"nativeSrc":"15982:12:97","nodeType":"YulFunctionCall","src":"15982:12:97"},"nativeSrc":"15982:12:97","nodeType":"YulExpressionStatement","src":"15982:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"15952:6:97","nodeType":"YulIdentifier","src":"15952:6:97"},{"kind":"number","nativeSrc":"15960:18:97","nodeType":"YulLiteral","src":"15960:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"15949:2:97","nodeType":"YulIdentifier","src":"15949:2:97"},"nativeSrc":"15949:30:97","nodeType":"YulFunctionCall","src":"15949:30:97"},"nativeSrc":"15946:50:97","nodeType":"YulIf","src":"15946:50:97"},{"nativeSrc":"16005:60:97","nodeType":"YulAssignment","src":"16005:60:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16037:9:97","nodeType":"YulIdentifier","src":"16037:9:97"},{"name":"offset","nativeSrc":"16048:6:97","nodeType":"YulIdentifier","src":"16048:6:97"}],"functionName":{"name":"add","nativeSrc":"16033:3:97","nodeType":"YulIdentifier","src":"16033:3:97"},"nativeSrc":"16033:22:97","nodeType":"YulFunctionCall","src":"16033:22:97"},{"name":"dataEnd","nativeSrc":"16057:7:97","nodeType":"YulIdentifier","src":"16057:7:97"}],"functionName":{"name":"abi_decode_string","nativeSrc":"16015:17:97","nodeType":"YulIdentifier","src":"16015:17:97"},"nativeSrc":"16015:50:97","nodeType":"YulFunctionCall","src":"16015:50:97"},"variableNames":[{"name":"value0","nativeSrc":"16005:6:97","nodeType":"YulIdentifier","src":"16005:6:97"}]},{"nativeSrc":"16074:45:97","nodeType":"YulVariableDeclaration","src":"16074:45:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16104:9:97","nodeType":"YulIdentifier","src":"16104:9:97"},{"kind":"number","nativeSrc":"16115:2:97","nodeType":"YulLiteral","src":"16115:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16100:3:97","nodeType":"YulIdentifier","src":"16100:3:97"},"nativeSrc":"16100:18:97","nodeType":"YulFunctionCall","src":"16100:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"16087:12:97","nodeType":"YulIdentifier","src":"16087:12:97"},"nativeSrc":"16087:32:97","nodeType":"YulFunctionCall","src":"16087:32:97"},"variables":[{"name":"value","nativeSrc":"16078:5:97","nodeType":"YulTypedName","src":"16078:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"16150:5:97","nodeType":"YulIdentifier","src":"16150:5:97"}],"functionName":{"name":"validator_revert_bool","nativeSrc":"16128:21:97","nodeType":"YulIdentifier","src":"16128:21:97"},"nativeSrc":"16128:28:97","nodeType":"YulFunctionCall","src":"16128:28:97"},"nativeSrc":"16128:28:97","nodeType":"YulExpressionStatement","src":"16128:28:97"},{"nativeSrc":"16165:15:97","nodeType":"YulAssignment","src":"16165:15:97","value":{"name":"value","nativeSrc":"16175:5:97","nodeType":"YulIdentifier","src":"16175:5:97"},"variableNames":[{"name":"value1","nativeSrc":"16165:6:97","nodeType":"YulIdentifier","src":"16165:6:97"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_bool","nativeSrc":"15735:451:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15787:9:97","nodeType":"YulTypedName","src":"15787:9:97","type":""},{"name":"dataEnd","nativeSrc":"15798:7:97","nodeType":"YulTypedName","src":"15798:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"15810:6:97","nodeType":"YulTypedName","src":"15810:6:97","type":""},{"name":"value1","nativeSrc":"15818:6:97","nodeType":"YulTypedName","src":"15818:6:97","type":""}],"src":"15735:451:97"},{"body":{"nativeSrc":"16246:382:97","nodeType":"YulBlock","src":"16246:382:97","statements":[{"nativeSrc":"16256:22:97","nodeType":"YulAssignment","src":"16256:22:97","value":{"arguments":[{"kind":"number","nativeSrc":"16270:1:97","nodeType":"YulLiteral","src":"16270:1:97","type":"","value":"1"},{"name":"data","nativeSrc":"16273:4:97","nodeType":"YulIdentifier","src":"16273:4:97"}],"functionName":{"name":"shr","nativeSrc":"16266:3:97","nodeType":"YulIdentifier","src":"16266:3:97"},"nativeSrc":"16266:12:97","nodeType":"YulFunctionCall","src":"16266:12:97"},"variableNames":[{"name":"length","nativeSrc":"16256:6:97","nodeType":"YulIdentifier","src":"16256:6:97"}]},{"nativeSrc":"16287:38:97","nodeType":"YulVariableDeclaration","src":"16287:38:97","value":{"arguments":[{"name":"data","nativeSrc":"16317:4:97","nodeType":"YulIdentifier","src":"16317:4:97"},{"kind":"number","nativeSrc":"16323:1:97","nodeType":"YulLiteral","src":"16323:1:97","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"16313:3:97","nodeType":"YulIdentifier","src":"16313:3:97"},"nativeSrc":"16313:12:97","nodeType":"YulFunctionCall","src":"16313:12:97"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"16291:18:97","nodeType":"YulTypedName","src":"16291:18:97","type":""}]},{"body":{"nativeSrc":"16364:31:97","nodeType":"YulBlock","src":"16364:31:97","statements":[{"nativeSrc":"16366:27:97","nodeType":"YulAssignment","src":"16366:27:97","value":{"arguments":[{"name":"length","nativeSrc":"16380:6:97","nodeType":"YulIdentifier","src":"16380:6:97"},{"kind":"number","nativeSrc":"16388:4:97","nodeType":"YulLiteral","src":"16388:4:97","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"16376:3:97","nodeType":"YulIdentifier","src":"16376:3:97"},"nativeSrc":"16376:17:97","nodeType":"YulFunctionCall","src":"16376:17:97"},"variableNames":[{"name":"length","nativeSrc":"16366:6:97","nodeType":"YulIdentifier","src":"16366:6:97"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"16344:18:97","nodeType":"YulIdentifier","src":"16344:18:97"}],"functionName":{"name":"iszero","nativeSrc":"16337:6:97","nodeType":"YulIdentifier","src":"16337:6:97"},"nativeSrc":"16337:26:97","nodeType":"YulFunctionCall","src":"16337:26:97"},"nativeSrc":"16334:61:97","nodeType":"YulIf","src":"16334:61:97"},{"body":{"nativeSrc":"16454:168:97","nodeType":"YulBlock","src":"16454:168:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"16475:1:97","nodeType":"YulLiteral","src":"16475:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"16478:77:97","nodeType":"YulLiteral","src":"16478:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"16468:6:97","nodeType":"YulIdentifier","src":"16468:6:97"},"nativeSrc":"16468:88:97","nodeType":"YulFunctionCall","src":"16468:88:97"},"nativeSrc":"16468:88:97","nodeType":"YulExpressionStatement","src":"16468:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16576:1:97","nodeType":"YulLiteral","src":"16576:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"16579:4:97","nodeType":"YulLiteral","src":"16579:4:97","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"16569:6:97","nodeType":"YulIdentifier","src":"16569:6:97"},"nativeSrc":"16569:15:97","nodeType":"YulFunctionCall","src":"16569:15:97"},"nativeSrc":"16569:15:97","nodeType":"YulExpressionStatement","src":"16569:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16604:1:97","nodeType":"YulLiteral","src":"16604:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"16607:4:97","nodeType":"YulLiteral","src":"16607:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"16597:6:97","nodeType":"YulIdentifier","src":"16597:6:97"},"nativeSrc":"16597:15:97","nodeType":"YulFunctionCall","src":"16597:15:97"},"nativeSrc":"16597:15:97","nodeType":"YulExpressionStatement","src":"16597:15:97"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"16410:18:97","nodeType":"YulIdentifier","src":"16410:18:97"},{"arguments":[{"name":"length","nativeSrc":"16433:6:97","nodeType":"YulIdentifier","src":"16433:6:97"},{"kind":"number","nativeSrc":"16441:2:97","nodeType":"YulLiteral","src":"16441:2:97","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"16430:2:97","nodeType":"YulIdentifier","src":"16430:2:97"},"nativeSrc":"16430:14:97","nodeType":"YulFunctionCall","src":"16430:14:97"}],"functionName":{"name":"eq","nativeSrc":"16407:2:97","nodeType":"YulIdentifier","src":"16407:2:97"},"nativeSrc":"16407:38:97","nodeType":"YulFunctionCall","src":"16407:38:97"},"nativeSrc":"16404:218:97","nodeType":"YulIf","src":"16404:218:97"}]},"name":"extract_byte_array_length","nativeSrc":"16191:437:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"16226:4:97","nodeType":"YulTypedName","src":"16226:4:97","type":""}],"returnVariables":[{"name":"length","nativeSrc":"16235:6:97","nodeType":"YulTypedName","src":"16235:6:97","type":""}],"src":"16191:437:97"},{"body":{"nativeSrc":"16689:65:97","nodeType":"YulBlock","src":"16689:65:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"16706:1:97","nodeType":"YulLiteral","src":"16706:1:97","type":"","value":"0"},{"name":"ptr","nativeSrc":"16709:3:97","nodeType":"YulIdentifier","src":"16709:3:97"}],"functionName":{"name":"mstore","nativeSrc":"16699:6:97","nodeType":"YulIdentifier","src":"16699:6:97"},"nativeSrc":"16699:14:97","nodeType":"YulFunctionCall","src":"16699:14:97"},"nativeSrc":"16699:14:97","nodeType":"YulExpressionStatement","src":"16699:14:97"},{"nativeSrc":"16722:26:97","nodeType":"YulAssignment","src":"16722:26:97","value":{"arguments":[{"kind":"number","nativeSrc":"16740:1:97","nodeType":"YulLiteral","src":"16740:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"16743:4:97","nodeType":"YulLiteral","src":"16743:4:97","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"16730:9:97","nodeType":"YulIdentifier","src":"16730:9:97"},"nativeSrc":"16730:18:97","nodeType":"YulFunctionCall","src":"16730:18:97"},"variableNames":[{"name":"data","nativeSrc":"16722:4:97","nodeType":"YulIdentifier","src":"16722:4:97"}]}]},"name":"array_dataslot_string_storage","nativeSrc":"16633:121:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"16672:3:97","nodeType":"YulTypedName","src":"16672:3:97","type":""}],"returnVariables":[{"name":"data","nativeSrc":"16680:4:97","nodeType":"YulTypedName","src":"16680:4:97","type":""}],"src":"16633:121:97"},{"body":{"nativeSrc":"16840:462:97","nodeType":"YulBlock","src":"16840:462:97","statements":[{"body":{"nativeSrc":"16873:423:97","nodeType":"YulBlock","src":"16873:423:97","statements":[{"nativeSrc":"16887:11:97","nodeType":"YulVariableDeclaration","src":"16887:11:97","value":{"kind":"number","nativeSrc":"16897:1:97","nodeType":"YulLiteral","src":"16897:1:97","type":"","value":"0"},"variables":[{"name":"_1","nativeSrc":"16891:2:97","nodeType":"YulTypedName","src":"16891:2:97","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16918:1:97","nodeType":"YulLiteral","src":"16918:1:97","type":"","value":"0"},{"name":"array","nativeSrc":"16921:5:97","nodeType":"YulIdentifier","src":"16921:5:97"}],"functionName":{"name":"mstore","nativeSrc":"16911:6:97","nodeType":"YulIdentifier","src":"16911:6:97"},"nativeSrc":"16911:16:97","nodeType":"YulFunctionCall","src":"16911:16:97"},"nativeSrc":"16911:16:97","nodeType":"YulExpressionStatement","src":"16911:16:97"},{"nativeSrc":"16940:30:97","nodeType":"YulVariableDeclaration","src":"16940:30:97","value":{"arguments":[{"kind":"number","nativeSrc":"16962:1:97","nodeType":"YulLiteral","src":"16962:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"16965:4:97","nodeType":"YulLiteral","src":"16965:4:97","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"16952:9:97","nodeType":"YulIdentifier","src":"16952:9:97"},"nativeSrc":"16952:18:97","nodeType":"YulFunctionCall","src":"16952:18:97"},"variables":[{"name":"data","nativeSrc":"16944:4:97","nodeType":"YulTypedName","src":"16944:4:97","type":""}]},{"nativeSrc":"16983:57:97","nodeType":"YulVariableDeclaration","src":"16983:57:97","value":{"arguments":[{"name":"data","nativeSrc":"17006:4:97","nodeType":"YulIdentifier","src":"17006:4:97"},{"arguments":[{"kind":"number","nativeSrc":"17016:1:97","nodeType":"YulLiteral","src":"17016:1:97","type":"","value":"5"},{"arguments":[{"name":"startIndex","nativeSrc":"17023:10:97","nodeType":"YulIdentifier","src":"17023:10:97"},{"kind":"number","nativeSrc":"17035:2:97","nodeType":"YulLiteral","src":"17035:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"17019:3:97","nodeType":"YulIdentifier","src":"17019:3:97"},"nativeSrc":"17019:19:97","nodeType":"YulFunctionCall","src":"17019:19:97"}],"functionName":{"name":"shr","nativeSrc":"17012:3:97","nodeType":"YulIdentifier","src":"17012:3:97"},"nativeSrc":"17012:27:97","nodeType":"YulFunctionCall","src":"17012:27:97"}],"functionName":{"name":"add","nativeSrc":"17002:3:97","nodeType":"YulIdentifier","src":"17002:3:97"},"nativeSrc":"17002:38:97","nodeType":"YulFunctionCall","src":"17002:38:97"},"variables":[{"name":"deleteStart","nativeSrc":"16987:11:97","nodeType":"YulTypedName","src":"16987:11:97","type":""}]},{"body":{"nativeSrc":"17077:23:97","nodeType":"YulBlock","src":"17077:23:97","statements":[{"nativeSrc":"17079:19:97","nodeType":"YulAssignment","src":"17079:19:97","value":{"name":"data","nativeSrc":"17094:4:97","nodeType":"YulIdentifier","src":"17094:4:97"},"variableNames":[{"name":"deleteStart","nativeSrc":"17079:11:97","nodeType":"YulIdentifier","src":"17079:11:97"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"17059:10:97","nodeType":"YulIdentifier","src":"17059:10:97"},{"kind":"number","nativeSrc":"17071:4:97","nodeType":"YulLiteral","src":"17071:4:97","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"17056:2:97","nodeType":"YulIdentifier","src":"17056:2:97"},"nativeSrc":"17056:20:97","nodeType":"YulFunctionCall","src":"17056:20:97"},"nativeSrc":"17053:47:97","nodeType":"YulIf","src":"17053:47:97"},{"nativeSrc":"17113:41:97","nodeType":"YulVariableDeclaration","src":"17113:41:97","value":{"arguments":[{"name":"data","nativeSrc":"17127:4:97","nodeType":"YulIdentifier","src":"17127:4:97"},{"arguments":[{"kind":"number","nativeSrc":"17137:1:97","nodeType":"YulLiteral","src":"17137:1:97","type":"","value":"5"},{"arguments":[{"name":"len","nativeSrc":"17144:3:97","nodeType":"YulIdentifier","src":"17144:3:97"},{"kind":"number","nativeSrc":"17149:2:97","nodeType":"YulLiteral","src":"17149:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"17140:3:97","nodeType":"YulIdentifier","src":"17140:3:97"},"nativeSrc":"17140:12:97","nodeType":"YulFunctionCall","src":"17140:12:97"}],"functionName":{"name":"shr","nativeSrc":"17133:3:97","nodeType":"YulIdentifier","src":"17133:3:97"},"nativeSrc":"17133:20:97","nodeType":"YulFunctionCall","src":"17133:20:97"}],"functionName":{"name":"add","nativeSrc":"17123:3:97","nodeType":"YulIdentifier","src":"17123:3:97"},"nativeSrc":"17123:31:97","nodeType":"YulFunctionCall","src":"17123:31:97"},"variables":[{"name":"_2","nativeSrc":"17117:2:97","nodeType":"YulTypedName","src":"17117:2:97","type":""}]},{"nativeSrc":"17167:24:97","nodeType":"YulVariableDeclaration","src":"17167:24:97","value":{"name":"deleteStart","nativeSrc":"17180:11:97","nodeType":"YulIdentifier","src":"17180:11:97"},"variables":[{"name":"start","nativeSrc":"17171:5:97","nodeType":"YulTypedName","src":"17171:5:97","type":""}]},{"body":{"nativeSrc":"17265:21:97","nodeType":"YulBlock","src":"17265:21:97","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"17274:5:97","nodeType":"YulIdentifier","src":"17274:5:97"},{"name":"_1","nativeSrc":"17281:2:97","nodeType":"YulIdentifier","src":"17281:2:97"}],"functionName":{"name":"sstore","nativeSrc":"17267:6:97","nodeType":"YulIdentifier","src":"17267:6:97"},"nativeSrc":"17267:17:97","nodeType":"YulFunctionCall","src":"17267:17:97"},"nativeSrc":"17267:17:97","nodeType":"YulExpressionStatement","src":"17267:17:97"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"17215:5:97","nodeType":"YulIdentifier","src":"17215:5:97"},{"name":"_2","nativeSrc":"17222:2:97","nodeType":"YulIdentifier","src":"17222:2:97"}],"functionName":{"name":"lt","nativeSrc":"17212:2:97","nodeType":"YulIdentifier","src":"17212:2:97"},"nativeSrc":"17212:13:97","nodeType":"YulFunctionCall","src":"17212:13:97"},"nativeSrc":"17204:82:97","nodeType":"YulForLoop","post":{"nativeSrc":"17226:26:97","nodeType":"YulBlock","src":"17226:26:97","statements":[{"nativeSrc":"17228:22:97","nodeType":"YulAssignment","src":"17228:22:97","value":{"arguments":[{"name":"start","nativeSrc":"17241:5:97","nodeType":"YulIdentifier","src":"17241:5:97"},{"kind":"number","nativeSrc":"17248:1:97","nodeType":"YulLiteral","src":"17248:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"17237:3:97","nodeType":"YulIdentifier","src":"17237:3:97"},"nativeSrc":"17237:13:97","nodeType":"YulFunctionCall","src":"17237:13:97"},"variableNames":[{"name":"start","nativeSrc":"17228:5:97","nodeType":"YulIdentifier","src":"17228:5:97"}]}]},"pre":{"nativeSrc":"17208:3:97","nodeType":"YulBlock","src":"17208:3:97","statements":[]},"src":"17204:82:97"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"16856:3:97","nodeType":"YulIdentifier","src":"16856:3:97"},{"kind":"number","nativeSrc":"16861:2:97","nodeType":"YulLiteral","src":"16861:2:97","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"16853:2:97","nodeType":"YulIdentifier","src":"16853:2:97"},"nativeSrc":"16853:11:97","nodeType":"YulFunctionCall","src":"16853:11:97"},"nativeSrc":"16850:446:97","nodeType":"YulIf","src":"16850:446:97"}]},"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"16759:543:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"16812:5:97","nodeType":"YulTypedName","src":"16812:5:97","type":""},{"name":"len","nativeSrc":"16819:3:97","nodeType":"YulTypedName","src":"16819:3:97","type":""},{"name":"startIndex","nativeSrc":"16824:10:97","nodeType":"YulTypedName","src":"16824:10:97","type":""}],"src":"16759:543:97"},{"body":{"nativeSrc":"17392:141:97","nodeType":"YulBlock","src":"17392:141:97","statements":[{"nativeSrc":"17402:125:97","nodeType":"YulAssignment","src":"17402:125:97","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"17417:4:97","nodeType":"YulIdentifier","src":"17417:4:97"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"17435:1:97","nodeType":"YulLiteral","src":"17435:1:97","type":"","value":"3"},{"name":"len","nativeSrc":"17438:3:97","nodeType":"YulIdentifier","src":"17438:3:97"}],"functionName":{"name":"shl","nativeSrc":"17431:3:97","nodeType":"YulIdentifier","src":"17431:3:97"},"nativeSrc":"17431:11:97","nodeType":"YulFunctionCall","src":"17431:11:97"},{"kind":"number","nativeSrc":"17444:66:97","nodeType":"YulLiteral","src":"17444:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shr","nativeSrc":"17427:3:97","nodeType":"YulIdentifier","src":"17427:3:97"},"nativeSrc":"17427:84:97","nodeType":"YulFunctionCall","src":"17427:84:97"}],"functionName":{"name":"not","nativeSrc":"17423:3:97","nodeType":"YulIdentifier","src":"17423:3:97"},"nativeSrc":"17423:89:97","nodeType":"YulFunctionCall","src":"17423:89:97"}],"functionName":{"name":"and","nativeSrc":"17413:3:97","nodeType":"YulIdentifier","src":"17413:3:97"},"nativeSrc":"17413:100:97","nodeType":"YulFunctionCall","src":"17413:100:97"},{"arguments":[{"kind":"number","nativeSrc":"17519:1:97","nodeType":"YulLiteral","src":"17519:1:97","type":"","value":"1"},{"name":"len","nativeSrc":"17522:3:97","nodeType":"YulIdentifier","src":"17522:3:97"}],"functionName":{"name":"shl","nativeSrc":"17515:3:97","nodeType":"YulIdentifier","src":"17515:3:97"},"nativeSrc":"17515:11:97","nodeType":"YulFunctionCall","src":"17515:11:97"}],"functionName":{"name":"or","nativeSrc":"17410:2:97","nodeType":"YulIdentifier","src":"17410:2:97"},"nativeSrc":"17410:117:97","nodeType":"YulFunctionCall","src":"17410:117:97"},"variableNames":[{"name":"used","nativeSrc":"17402:4:97","nodeType":"YulIdentifier","src":"17402:4:97"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"17307:226:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"17369:4:97","nodeType":"YulTypedName","src":"17369:4:97","type":""},{"name":"len","nativeSrc":"17375:3:97","nodeType":"YulTypedName","src":"17375:3:97","type":""}],"returnVariables":[{"name":"used","nativeSrc":"17383:4:97","nodeType":"YulTypedName","src":"17383:4:97","type":""}],"src":"17307:226:97"},{"body":{"nativeSrc":"17634:1368:97","nodeType":"YulBlock","src":"17634:1368:97","statements":[{"nativeSrc":"17644:24:97","nodeType":"YulVariableDeclaration","src":"17644:24:97","value":{"arguments":[{"name":"src","nativeSrc":"17664:3:97","nodeType":"YulIdentifier","src":"17664:3:97"}],"functionName":{"name":"mload","nativeSrc":"17658:5:97","nodeType":"YulIdentifier","src":"17658:5:97"},"nativeSrc":"17658:10:97","nodeType":"YulFunctionCall","src":"17658:10:97"},"variables":[{"name":"newLen","nativeSrc":"17648:6:97","nodeType":"YulTypedName","src":"17648:6:97","type":""}]},{"body":{"nativeSrc":"17711:22:97","nodeType":"YulBlock","src":"17711:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"17713:16:97","nodeType":"YulIdentifier","src":"17713:16:97"},"nativeSrc":"17713:18:97","nodeType":"YulFunctionCall","src":"17713:18:97"},"nativeSrc":"17713:18:97","nodeType":"YulExpressionStatement","src":"17713:18:97"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"17683:6:97","nodeType":"YulIdentifier","src":"17683:6:97"},{"kind":"number","nativeSrc":"17691:18:97","nodeType":"YulLiteral","src":"17691:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"17680:2:97","nodeType":"YulIdentifier","src":"17680:2:97"},"nativeSrc":"17680:30:97","nodeType":"YulFunctionCall","src":"17680:30:97"},"nativeSrc":"17677:56:97","nodeType":"YulIf","src":"17677:56:97"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"17786:4:97","nodeType":"YulIdentifier","src":"17786:4:97"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"17824:4:97","nodeType":"YulIdentifier","src":"17824:4:97"}],"functionName":{"name":"sload","nativeSrc":"17818:5:97","nodeType":"YulIdentifier","src":"17818:5:97"},"nativeSrc":"17818:11:97","nodeType":"YulFunctionCall","src":"17818:11:97"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"17792:25:97","nodeType":"YulIdentifier","src":"17792:25:97"},"nativeSrc":"17792:38:97","nodeType":"YulFunctionCall","src":"17792:38:97"},{"name":"newLen","nativeSrc":"17832:6:97","nodeType":"YulIdentifier","src":"17832:6:97"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"17742:43:97","nodeType":"YulIdentifier","src":"17742:43:97"},"nativeSrc":"17742:97:97","nodeType":"YulFunctionCall","src":"17742:97:97"},"nativeSrc":"17742:97:97","nodeType":"YulExpressionStatement","src":"17742:97:97"},{"nativeSrc":"17848:18:97","nodeType":"YulVariableDeclaration","src":"17848:18:97","value":{"kind":"number","nativeSrc":"17865:1:97","nodeType":"YulLiteral","src":"17865:1:97","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"17852:9:97","nodeType":"YulTypedName","src":"17852:9:97","type":""}]},{"nativeSrc":"17875:23:97","nodeType":"YulVariableDeclaration","src":"17875:23:97","value":{"kind":"number","nativeSrc":"17894:4:97","nodeType":"YulLiteral","src":"17894:4:97","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nativeSrc":"17879:11:97","nodeType":"YulTypedName","src":"17879:11:97","type":""}]},{"nativeSrc":"17907:17:97","nodeType":"YulAssignment","src":"17907:17:97","value":{"kind":"number","nativeSrc":"17920:4:97","nodeType":"YulLiteral","src":"17920:4:97","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"17907:9:97","nodeType":"YulIdentifier","src":"17907:9:97"}]},{"cases":[{"body":{"nativeSrc":"17970:775:97","nodeType":"YulBlock","src":"17970:775:97","statements":[{"nativeSrc":"17984:94:97","nodeType":"YulVariableDeclaration","src":"17984:94:97","value":{"arguments":[{"name":"newLen","nativeSrc":"18003:6:97","nodeType":"YulIdentifier","src":"18003:6:97"},{"kind":"number","nativeSrc":"18011:66:97","nodeType":"YulLiteral","src":"18011:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"17999:3:97","nodeType":"YulIdentifier","src":"17999:3:97"},"nativeSrc":"17999:79:97","nodeType":"YulFunctionCall","src":"17999:79:97"},"variables":[{"name":"loopEnd","nativeSrc":"17988:7:97","nodeType":"YulTypedName","src":"17988:7:97","type":""}]},{"nativeSrc":"18091:49:97","nodeType":"YulVariableDeclaration","src":"18091:49:97","value":{"arguments":[{"name":"slot","nativeSrc":"18135:4:97","nodeType":"YulIdentifier","src":"18135:4:97"}],"functionName":{"name":"array_dataslot_string_storage","nativeSrc":"18105:29:97","nodeType":"YulIdentifier","src":"18105:29:97"},"nativeSrc":"18105:35:97","nodeType":"YulFunctionCall","src":"18105:35:97"},"variables":[{"name":"dstPtr","nativeSrc":"18095:6:97","nodeType":"YulTypedName","src":"18095:6:97","type":""}]},{"nativeSrc":"18153:10:97","nodeType":"YulVariableDeclaration","src":"18153:10:97","value":{"kind":"number","nativeSrc":"18162:1:97","nodeType":"YulLiteral","src":"18162:1:97","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"18157:1:97","nodeType":"YulTypedName","src":"18157:1:97","type":""}]},{"body":{"nativeSrc":"18240:172:97","nodeType":"YulBlock","src":"18240:172:97","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"18265:6:97","nodeType":"YulIdentifier","src":"18265:6:97"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"18283:3:97","nodeType":"YulIdentifier","src":"18283:3:97"},{"name":"srcOffset","nativeSrc":"18288:9:97","nodeType":"YulIdentifier","src":"18288:9:97"}],"functionName":{"name":"add","nativeSrc":"18279:3:97","nodeType":"YulIdentifier","src":"18279:3:97"},"nativeSrc":"18279:19:97","nodeType":"YulFunctionCall","src":"18279:19:97"}],"functionName":{"name":"mload","nativeSrc":"18273:5:97","nodeType":"YulIdentifier","src":"18273:5:97"},"nativeSrc":"18273:26:97","nodeType":"YulFunctionCall","src":"18273:26:97"}],"functionName":{"name":"sstore","nativeSrc":"18258:6:97","nodeType":"YulIdentifier","src":"18258:6:97"},"nativeSrc":"18258:42:97","nodeType":"YulFunctionCall","src":"18258:42:97"},"nativeSrc":"18258:42:97","nodeType":"YulExpressionStatement","src":"18258:42:97"},{"nativeSrc":"18317:24:97","nodeType":"YulAssignment","src":"18317:24:97","value":{"arguments":[{"name":"dstPtr","nativeSrc":"18331:6:97","nodeType":"YulIdentifier","src":"18331:6:97"},{"kind":"number","nativeSrc":"18339:1:97","nodeType":"YulLiteral","src":"18339:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"18327:3:97","nodeType":"YulIdentifier","src":"18327:3:97"},"nativeSrc":"18327:14:97","nodeType":"YulFunctionCall","src":"18327:14:97"},"variableNames":[{"name":"dstPtr","nativeSrc":"18317:6:97","nodeType":"YulIdentifier","src":"18317:6:97"}]},{"nativeSrc":"18358:40:97","nodeType":"YulAssignment","src":"18358:40:97","value":{"arguments":[{"name":"srcOffset","nativeSrc":"18375:9:97","nodeType":"YulIdentifier","src":"18375:9:97"},{"name":"srcOffset_1","nativeSrc":"18386:11:97","nodeType":"YulIdentifier","src":"18386:11:97"}],"functionName":{"name":"add","nativeSrc":"18371:3:97","nodeType":"YulIdentifier","src":"18371:3:97"},"nativeSrc":"18371:27:97","nodeType":"YulFunctionCall","src":"18371:27:97"},"variableNames":[{"name":"srcOffset","nativeSrc":"18358:9:97","nodeType":"YulIdentifier","src":"18358:9:97"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"18187:1:97","nodeType":"YulIdentifier","src":"18187:1:97"},{"name":"loopEnd","nativeSrc":"18190:7:97","nodeType":"YulIdentifier","src":"18190:7:97"}],"functionName":{"name":"lt","nativeSrc":"18184:2:97","nodeType":"YulIdentifier","src":"18184:2:97"},"nativeSrc":"18184:14:97","nodeType":"YulFunctionCall","src":"18184:14:97"},"nativeSrc":"18176:236:97","nodeType":"YulForLoop","post":{"nativeSrc":"18199:28:97","nodeType":"YulBlock","src":"18199:28:97","statements":[{"nativeSrc":"18201:24:97","nodeType":"YulAssignment","src":"18201:24:97","value":{"arguments":[{"name":"i","nativeSrc":"18210:1:97","nodeType":"YulIdentifier","src":"18210:1:97"},{"name":"srcOffset_1","nativeSrc":"18213:11:97","nodeType":"YulIdentifier","src":"18213:11:97"}],"functionName":{"name":"add","nativeSrc":"18206:3:97","nodeType":"YulIdentifier","src":"18206:3:97"},"nativeSrc":"18206:19:97","nodeType":"YulFunctionCall","src":"18206:19:97"},"variableNames":[{"name":"i","nativeSrc":"18201:1:97","nodeType":"YulIdentifier","src":"18201:1:97"}]}]},"pre":{"nativeSrc":"18180:3:97","nodeType":"YulBlock","src":"18180:3:97","statements":[]},"src":"18176:236:97"},{"body":{"nativeSrc":"18460:226:97","nodeType":"YulBlock","src":"18460:226:97","statements":[{"nativeSrc":"18478:43:97","nodeType":"YulVariableDeclaration","src":"18478:43:97","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"18505:3:97","nodeType":"YulIdentifier","src":"18505:3:97"},{"name":"srcOffset","nativeSrc":"18510:9:97","nodeType":"YulIdentifier","src":"18510:9:97"}],"functionName":{"name":"add","nativeSrc":"18501:3:97","nodeType":"YulIdentifier","src":"18501:3:97"},"nativeSrc":"18501:19:97","nodeType":"YulFunctionCall","src":"18501:19:97"}],"functionName":{"name":"mload","nativeSrc":"18495:5:97","nodeType":"YulIdentifier","src":"18495:5:97"},"nativeSrc":"18495:26:97","nodeType":"YulFunctionCall","src":"18495:26:97"},"variables":[{"name":"lastValue","nativeSrc":"18482:9:97","nodeType":"YulTypedName","src":"18482:9:97","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"18545:6:97","nodeType":"YulIdentifier","src":"18545:6:97"},{"arguments":[{"name":"lastValue","nativeSrc":"18557:9:97","nodeType":"YulIdentifier","src":"18557:9:97"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"18584:1:97","nodeType":"YulLiteral","src":"18584:1:97","type":"","value":"3"},{"name":"newLen","nativeSrc":"18587:6:97","nodeType":"YulIdentifier","src":"18587:6:97"}],"functionName":{"name":"shl","nativeSrc":"18580:3:97","nodeType":"YulIdentifier","src":"18580:3:97"},"nativeSrc":"18580:14:97","nodeType":"YulFunctionCall","src":"18580:14:97"},{"kind":"number","nativeSrc":"18596:3:97","nodeType":"YulLiteral","src":"18596:3:97","type":"","value":"248"}],"functionName":{"name":"and","nativeSrc":"18576:3:97","nodeType":"YulIdentifier","src":"18576:3:97"},"nativeSrc":"18576:24:97","nodeType":"YulFunctionCall","src":"18576:24:97"},{"kind":"number","nativeSrc":"18602:66:97","nodeType":"YulLiteral","src":"18602:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shr","nativeSrc":"18572:3:97","nodeType":"YulIdentifier","src":"18572:3:97"},"nativeSrc":"18572:97:97","nodeType":"YulFunctionCall","src":"18572:97:97"}],"functionName":{"name":"not","nativeSrc":"18568:3:97","nodeType":"YulIdentifier","src":"18568:3:97"},"nativeSrc":"18568:102:97","nodeType":"YulFunctionCall","src":"18568:102:97"}],"functionName":{"name":"and","nativeSrc":"18553:3:97","nodeType":"YulIdentifier","src":"18553:3:97"},"nativeSrc":"18553:118:97","nodeType":"YulFunctionCall","src":"18553:118:97"}],"functionName":{"name":"sstore","nativeSrc":"18538:6:97","nodeType":"YulIdentifier","src":"18538:6:97"},"nativeSrc":"18538:134:97","nodeType":"YulFunctionCall","src":"18538:134:97"},"nativeSrc":"18538:134:97","nodeType":"YulExpressionStatement","src":"18538:134:97"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"18431:7:97","nodeType":"YulIdentifier","src":"18431:7:97"},{"name":"newLen","nativeSrc":"18440:6:97","nodeType":"YulIdentifier","src":"18440:6:97"}],"functionName":{"name":"lt","nativeSrc":"18428:2:97","nodeType":"YulIdentifier","src":"18428:2:97"},"nativeSrc":"18428:19:97","nodeType":"YulFunctionCall","src":"18428:19:97"},"nativeSrc":"18425:261:97","nodeType":"YulIf","src":"18425:261:97"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"18706:4:97","nodeType":"YulIdentifier","src":"18706:4:97"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"18720:1:97","nodeType":"YulLiteral","src":"18720:1:97","type":"","value":"1"},{"name":"newLen","nativeSrc":"18723:6:97","nodeType":"YulIdentifier","src":"18723:6:97"}],"functionName":{"name":"shl","nativeSrc":"18716:3:97","nodeType":"YulIdentifier","src":"18716:3:97"},"nativeSrc":"18716:14:97","nodeType":"YulFunctionCall","src":"18716:14:97"},{"kind":"number","nativeSrc":"18732:1:97","nodeType":"YulLiteral","src":"18732:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"18712:3:97","nodeType":"YulIdentifier","src":"18712:3:97"},"nativeSrc":"18712:22:97","nodeType":"YulFunctionCall","src":"18712:22:97"}],"functionName":{"name":"sstore","nativeSrc":"18699:6:97","nodeType":"YulIdentifier","src":"18699:6:97"},"nativeSrc":"18699:36:97","nodeType":"YulFunctionCall","src":"18699:36:97"},"nativeSrc":"18699:36:97","nodeType":"YulExpressionStatement","src":"18699:36:97"}]},"nativeSrc":"17963:782:97","nodeType":"YulCase","src":"17963:782:97","value":{"kind":"number","nativeSrc":"17968:1:97","nodeType":"YulLiteral","src":"17968:1:97","type":"","value":"1"}},{"body":{"nativeSrc":"18762:234:97","nodeType":"YulBlock","src":"18762:234:97","statements":[{"nativeSrc":"18776:14:97","nodeType":"YulVariableDeclaration","src":"18776:14:97","value":{"kind":"number","nativeSrc":"18789:1:97","nodeType":"YulLiteral","src":"18789:1:97","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"18780:5:97","nodeType":"YulTypedName","src":"18780:5:97","type":""}]},{"body":{"nativeSrc":"18825:67:97","nodeType":"YulBlock","src":"18825:67:97","statements":[{"nativeSrc":"18843:35:97","nodeType":"YulAssignment","src":"18843:35:97","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"18862:3:97","nodeType":"YulIdentifier","src":"18862:3:97"},{"name":"srcOffset","nativeSrc":"18867:9:97","nodeType":"YulIdentifier","src":"18867:9:97"}],"functionName":{"name":"add","nativeSrc":"18858:3:97","nodeType":"YulIdentifier","src":"18858:3:97"},"nativeSrc":"18858:19:97","nodeType":"YulFunctionCall","src":"18858:19:97"}],"functionName":{"name":"mload","nativeSrc":"18852:5:97","nodeType":"YulIdentifier","src":"18852:5:97"},"nativeSrc":"18852:26:97","nodeType":"YulFunctionCall","src":"18852:26:97"},"variableNames":[{"name":"value","nativeSrc":"18843:5:97","nodeType":"YulIdentifier","src":"18843:5:97"}]}]},"condition":{"name":"newLen","nativeSrc":"18806:6:97","nodeType":"YulIdentifier","src":"18806:6:97"},"nativeSrc":"18803:89:97","nodeType":"YulIf","src":"18803:89:97"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"18912:4:97","nodeType":"YulIdentifier","src":"18912:4:97"},{"arguments":[{"name":"value","nativeSrc":"18971:5:97","nodeType":"YulIdentifier","src":"18971:5:97"},{"name":"newLen","nativeSrc":"18978:6:97","nodeType":"YulIdentifier","src":"18978:6:97"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"18918:52:97","nodeType":"YulIdentifier","src":"18918:52:97"},"nativeSrc":"18918:67:97","nodeType":"YulFunctionCall","src":"18918:67:97"}],"functionName":{"name":"sstore","nativeSrc":"18905:6:97","nodeType":"YulIdentifier","src":"18905:6:97"},"nativeSrc":"18905:81:97","nodeType":"YulFunctionCall","src":"18905:81:97"},"nativeSrc":"18905:81:97","nodeType":"YulExpressionStatement","src":"18905:81:97"}]},"nativeSrc":"18754:242:97","nodeType":"YulCase","src":"18754:242:97","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"17943:6:97","nodeType":"YulIdentifier","src":"17943:6:97"},{"kind":"number","nativeSrc":"17951:2:97","nodeType":"YulLiteral","src":"17951:2:97","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"17940:2:97","nodeType":"YulIdentifier","src":"17940:2:97"},"nativeSrc":"17940:14:97","nodeType":"YulFunctionCall","src":"17940:14:97"},"nativeSrc":"17933:1063:97","nodeType":"YulSwitch","src":"17933:1063:97"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"17538:1464:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"17619:4:97","nodeType":"YulTypedName","src":"17619:4:97","type":""},{"name":"src","nativeSrc":"17625:3:97","nodeType":"YulTypedName","src":"17625:3:97","type":""}],"src":"17538:1464:97"},{"body":{"nativeSrc":"19146:150:97","nodeType":"YulBlock","src":"19146:150:97","statements":[{"nativeSrc":"19156:27:97","nodeType":"YulVariableDeclaration","src":"19156:27:97","value":{"arguments":[{"name":"value0","nativeSrc":"19176:6:97","nodeType":"YulIdentifier","src":"19176:6:97"}],"functionName":{"name":"mload","nativeSrc":"19170:5:97","nodeType":"YulIdentifier","src":"19170:5:97"},"nativeSrc":"19170:13:97","nodeType":"YulFunctionCall","src":"19170:13:97"},"variables":[{"name":"length","nativeSrc":"19160:6:97","nodeType":"YulTypedName","src":"19160:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"19231:6:97","nodeType":"YulIdentifier","src":"19231:6:97"},{"kind":"number","nativeSrc":"19239:4:97","nodeType":"YulLiteral","src":"19239:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19227:3:97","nodeType":"YulIdentifier","src":"19227:3:97"},"nativeSrc":"19227:17:97","nodeType":"YulFunctionCall","src":"19227:17:97"},{"name":"pos","nativeSrc":"19246:3:97","nodeType":"YulIdentifier","src":"19246:3:97"},{"name":"length","nativeSrc":"19251:6:97","nodeType":"YulIdentifier","src":"19251:6:97"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"19192:34:97","nodeType":"YulIdentifier","src":"19192:34:97"},"nativeSrc":"19192:66:97","nodeType":"YulFunctionCall","src":"19192:66:97"},"nativeSrc":"19192:66:97","nodeType":"YulExpressionStatement","src":"19192:66:97"},{"nativeSrc":"19267:23:97","nodeType":"YulAssignment","src":"19267:23:97","value":{"arguments":[{"name":"pos","nativeSrc":"19278:3:97","nodeType":"YulIdentifier","src":"19278:3:97"},{"name":"length","nativeSrc":"19283:6:97","nodeType":"YulIdentifier","src":"19283:6:97"}],"functionName":{"name":"add","nativeSrc":"19274:3:97","nodeType":"YulIdentifier","src":"19274:3:97"},"nativeSrc":"19274:16:97","nodeType":"YulFunctionCall","src":"19274:16:97"},"variableNames":[{"name":"end","nativeSrc":"19267:3:97","nodeType":"YulIdentifier","src":"19267:3:97"}]}]},"name":"abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"19007:289:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"19122:3:97","nodeType":"YulTypedName","src":"19122:3:97","type":""},{"name":"value0","nativeSrc":"19127:6:97","nodeType":"YulTypedName","src":"19127:6:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"19138:3:97","nodeType":"YulTypedName","src":"19138:3:97","type":""}],"src":"19007:289:97"},{"body":{"nativeSrc":"19475:231:97","nodeType":"YulBlock","src":"19475:231:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"19492:9:97","nodeType":"YulIdentifier","src":"19492:9:97"},{"kind":"number","nativeSrc":"19503:2:97","nodeType":"YulLiteral","src":"19503:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"19485:6:97","nodeType":"YulIdentifier","src":"19485:6:97"},"nativeSrc":"19485:21:97","nodeType":"YulFunctionCall","src":"19485:21:97"},"nativeSrc":"19485:21:97","nodeType":"YulExpressionStatement","src":"19485:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19526:9:97","nodeType":"YulIdentifier","src":"19526:9:97"},{"kind":"number","nativeSrc":"19537:2:97","nodeType":"YulLiteral","src":"19537:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19522:3:97","nodeType":"YulIdentifier","src":"19522:3:97"},"nativeSrc":"19522:18:97","nodeType":"YulFunctionCall","src":"19522:18:97"},{"kind":"number","nativeSrc":"19542:2:97","nodeType":"YulLiteral","src":"19542:2:97","type":"","value":"41"}],"functionName":{"name":"mstore","nativeSrc":"19515:6:97","nodeType":"YulIdentifier","src":"19515:6:97"},"nativeSrc":"19515:30:97","nodeType":"YulFunctionCall","src":"19515:30:97"},"nativeSrc":"19515:30:97","nodeType":"YulExpressionStatement","src":"19515:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19565:9:97","nodeType":"YulIdentifier","src":"19565:9:97"},{"kind":"number","nativeSrc":"19576:2:97","nodeType":"YulLiteral","src":"19576:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"19561:3:97","nodeType":"YulIdentifier","src":"19561:3:97"},"nativeSrc":"19561:18:97","nodeType":"YulFunctionCall","src":"19561:18:97"},{"hexValue":"4f776e61626c6532537465703a2063616c6c6572206973206e6f742074686520","kind":"string","nativeSrc":"19581:34:97","nodeType":"YulLiteral","src":"19581:34:97","type":"","value":"Ownable2Step: caller is not the "}],"functionName":{"name":"mstore","nativeSrc":"19554:6:97","nodeType":"YulIdentifier","src":"19554:6:97"},"nativeSrc":"19554:62:97","nodeType":"YulFunctionCall","src":"19554:62:97"},"nativeSrc":"19554:62:97","nodeType":"YulExpressionStatement","src":"19554:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19636:9:97","nodeType":"YulIdentifier","src":"19636:9:97"},{"kind":"number","nativeSrc":"19647:2:97","nodeType":"YulLiteral","src":"19647:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"19632:3:97","nodeType":"YulIdentifier","src":"19632:3:97"},"nativeSrc":"19632:18:97","nodeType":"YulFunctionCall","src":"19632:18:97"},{"hexValue":"6e6577206f776e6572","kind":"string","nativeSrc":"19652:11:97","nodeType":"YulLiteral","src":"19652:11:97","type":"","value":"new owner"}],"functionName":{"name":"mstore","nativeSrc":"19625:6:97","nodeType":"YulIdentifier","src":"19625:6:97"},"nativeSrc":"19625:39:97","nodeType":"YulFunctionCall","src":"19625:39:97"},"nativeSrc":"19625:39:97","nodeType":"YulExpressionStatement","src":"19625:39:97"},{"nativeSrc":"19673:27:97","nodeType":"YulAssignment","src":"19673:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"19685:9:97","nodeType":"YulIdentifier","src":"19685:9:97"},{"kind":"number","nativeSrc":"19696:3:97","nodeType":"YulLiteral","src":"19696:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"19681:3:97","nodeType":"YulIdentifier","src":"19681:3:97"},"nativeSrc":"19681:19:97","nodeType":"YulFunctionCall","src":"19681:19:97"},"variableNames":[{"name":"tail","nativeSrc":"19673:4:97","nodeType":"YulIdentifier","src":"19673:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"19301:405:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19452:9:97","nodeType":"YulTypedName","src":"19452:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"19466:4:97","nodeType":"YulTypedName","src":"19466:4:97","type":""}],"src":"19301:405:97"},{"body":{"nativeSrc":"19885:236:97","nodeType":"YulBlock","src":"19885:236:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"19902:9:97","nodeType":"YulIdentifier","src":"19902:9:97"},{"kind":"number","nativeSrc":"19913:2:97","nodeType":"YulLiteral","src":"19913:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"19895:6:97","nodeType":"YulIdentifier","src":"19895:6:97"},"nativeSrc":"19895:21:97","nodeType":"YulFunctionCall","src":"19895:21:97"},"nativeSrc":"19895:21:97","nodeType":"YulExpressionStatement","src":"19895:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19936:9:97","nodeType":"YulIdentifier","src":"19936:9:97"},{"kind":"number","nativeSrc":"19947:2:97","nodeType":"YulLiteral","src":"19947:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19932:3:97","nodeType":"YulIdentifier","src":"19932:3:97"},"nativeSrc":"19932:18:97","nodeType":"YulFunctionCall","src":"19932:18:97"},{"kind":"number","nativeSrc":"19952:2:97","nodeType":"YulLiteral","src":"19952:2:97","type":"","value":"46"}],"functionName":{"name":"mstore","nativeSrc":"19925:6:97","nodeType":"YulIdentifier","src":"19925:6:97"},"nativeSrc":"19925:30:97","nodeType":"YulFunctionCall","src":"19925:30:97"},"nativeSrc":"19925:30:97","nodeType":"YulExpressionStatement","src":"19925:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19975:9:97","nodeType":"YulIdentifier","src":"19975:9:97"},{"kind":"number","nativeSrc":"19986:2:97","nodeType":"YulLiteral","src":"19986:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"19971:3:97","nodeType":"YulIdentifier","src":"19971:3:97"},"nativeSrc":"19971:18:97","nodeType":"YulFunctionCall","src":"19971:18:97"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561","kind":"string","nativeSrc":"19991:34:97","nodeType":"YulLiteral","src":"19991:34:97","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nativeSrc":"19964:6:97","nodeType":"YulIdentifier","src":"19964:6:97"},"nativeSrc":"19964:62:97","nodeType":"YulFunctionCall","src":"19964:62:97"},"nativeSrc":"19964:62:97","nodeType":"YulExpressionStatement","src":"19964:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20046:9:97","nodeType":"YulIdentifier","src":"20046:9:97"},{"kind":"number","nativeSrc":"20057:2:97","nodeType":"YulLiteral","src":"20057:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"20042:3:97","nodeType":"YulIdentifier","src":"20042:3:97"},"nativeSrc":"20042:18:97","nodeType":"YulFunctionCall","src":"20042:18:97"},{"hexValue":"647920696e697469616c697a6564","kind":"string","nativeSrc":"20062:16:97","nodeType":"YulLiteral","src":"20062:16:97","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nativeSrc":"20035:6:97","nodeType":"YulIdentifier","src":"20035:6:97"},"nativeSrc":"20035:44:97","nodeType":"YulFunctionCall","src":"20035:44:97"},"nativeSrc":"20035:44:97","nodeType":"YulExpressionStatement","src":"20035:44:97"},{"nativeSrc":"20088:27:97","nodeType":"YulAssignment","src":"20088:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"20100:9:97","nodeType":"YulIdentifier","src":"20100:9:97"},{"kind":"number","nativeSrc":"20111:3:97","nodeType":"YulLiteral","src":"20111:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"20096:3:97","nodeType":"YulIdentifier","src":"20096:3:97"},"nativeSrc":"20096:19:97","nodeType":"YulFunctionCall","src":"20096:19:97"},"variableNames":[{"name":"tail","nativeSrc":"20088:4:97","nodeType":"YulIdentifier","src":"20088:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"19711:410:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19862:9:97","nodeType":"YulTypedName","src":"19862:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"19876:4:97","nodeType":"YulTypedName","src":"19876:4:97","type":""}],"src":"19711:410:97"},{"body":{"nativeSrc":"20233:87:97","nodeType":"YulBlock","src":"20233:87:97","statements":[{"nativeSrc":"20243:26:97","nodeType":"YulAssignment","src":"20243:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"20255:9:97","nodeType":"YulIdentifier","src":"20255:9:97"},{"kind":"number","nativeSrc":"20266:2:97","nodeType":"YulLiteral","src":"20266:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"20251:3:97","nodeType":"YulIdentifier","src":"20251:3:97"},"nativeSrc":"20251:18:97","nodeType":"YulFunctionCall","src":"20251:18:97"},"variableNames":[{"name":"tail","nativeSrc":"20243:4:97","nodeType":"YulIdentifier","src":"20243:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"20285:9:97","nodeType":"YulIdentifier","src":"20285:9:97"},{"arguments":[{"name":"value0","nativeSrc":"20300:6:97","nodeType":"YulIdentifier","src":"20300:6:97"},{"kind":"number","nativeSrc":"20308:4:97","nodeType":"YulLiteral","src":"20308:4:97","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"20296:3:97","nodeType":"YulIdentifier","src":"20296:3:97"},"nativeSrc":"20296:17:97","nodeType":"YulFunctionCall","src":"20296:17:97"}],"functionName":{"name":"mstore","nativeSrc":"20278:6:97","nodeType":"YulIdentifier","src":"20278:6:97"},"nativeSrc":"20278:36:97","nodeType":"YulFunctionCall","src":"20278:36:97"},"nativeSrc":"20278:36:97","nodeType":"YulExpressionStatement","src":"20278:36:97"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nativeSrc":"20126:194:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20202:9:97","nodeType":"YulTypedName","src":"20202:9:97","type":""},{"name":"value0","nativeSrc":"20213:6:97","nodeType":"YulTypedName","src":"20213:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"20224:4:97","nodeType":"YulTypedName","src":"20224:4:97","type":""}],"src":"20126:194:97"},{"body":{"nativeSrc":"20357:152:97","nodeType":"YulBlock","src":"20357:152:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"20374:1:97","nodeType":"YulLiteral","src":"20374:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"20377:77:97","nodeType":"YulLiteral","src":"20377:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"20367:6:97","nodeType":"YulIdentifier","src":"20367:6:97"},"nativeSrc":"20367:88:97","nodeType":"YulFunctionCall","src":"20367:88:97"},"nativeSrc":"20367:88:97","nodeType":"YulExpressionStatement","src":"20367:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"20471:1:97","nodeType":"YulLiteral","src":"20471:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"20474:4:97","nodeType":"YulLiteral","src":"20474:4:97","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"20464:6:97","nodeType":"YulIdentifier","src":"20464:6:97"},"nativeSrc":"20464:15:97","nodeType":"YulFunctionCall","src":"20464:15:97"},"nativeSrc":"20464:15:97","nodeType":"YulExpressionStatement","src":"20464:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"20495:1:97","nodeType":"YulLiteral","src":"20495:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"20498:4:97","nodeType":"YulLiteral","src":"20498:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"20488:6:97","nodeType":"YulIdentifier","src":"20488:6:97"},"nativeSrc":"20488:15:97","nodeType":"YulFunctionCall","src":"20488:15:97"},"nativeSrc":"20488:15:97","nodeType":"YulExpressionStatement","src":"20488:15:97"}]},"name":"panic_error_0x32","nativeSrc":"20325:184:97","nodeType":"YulFunctionDefinition","src":"20325:184:97"},{"body":{"nativeSrc":"20631:151:97","nodeType":"YulBlock","src":"20631:151:97","statements":[{"nativeSrc":"20641:26:97","nodeType":"YulAssignment","src":"20641:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"20653:9:97","nodeType":"YulIdentifier","src":"20653:9:97"},{"kind":"number","nativeSrc":"20664:2:97","nodeType":"YulLiteral","src":"20664:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"20649:3:97","nodeType":"YulIdentifier","src":"20649:3:97"},"nativeSrc":"20649:18:97","nodeType":"YulFunctionCall","src":"20649:18:97"},"variableNames":[{"name":"tail","nativeSrc":"20641:4:97","nodeType":"YulIdentifier","src":"20641:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"20683:9:97","nodeType":"YulIdentifier","src":"20683:9:97"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"20708:6:97","nodeType":"YulIdentifier","src":"20708:6:97"}],"functionName":{"name":"iszero","nativeSrc":"20701:6:97","nodeType":"YulIdentifier","src":"20701:6:97"},"nativeSrc":"20701:14:97","nodeType":"YulFunctionCall","src":"20701:14:97"}],"functionName":{"name":"iszero","nativeSrc":"20694:6:97","nodeType":"YulIdentifier","src":"20694:6:97"},"nativeSrc":"20694:22:97","nodeType":"YulFunctionCall","src":"20694:22:97"}],"functionName":{"name":"mstore","nativeSrc":"20676:6:97","nodeType":"YulIdentifier","src":"20676:6:97"},"nativeSrc":"20676:41:97","nodeType":"YulFunctionCall","src":"20676:41:97"},"nativeSrc":"20676:41:97","nodeType":"YulExpressionStatement","src":"20676:41:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20737:9:97","nodeType":"YulIdentifier","src":"20737:9:97"},{"kind":"number","nativeSrc":"20748:2:97","nodeType":"YulLiteral","src":"20748:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"20733:3:97","nodeType":"YulIdentifier","src":"20733:3:97"},"nativeSrc":"20733:18:97","nodeType":"YulFunctionCall","src":"20733:18:97"},{"arguments":[{"arguments":[{"name":"value1","nativeSrc":"20767:6:97","nodeType":"YulIdentifier","src":"20767:6:97"}],"functionName":{"name":"iszero","nativeSrc":"20760:6:97","nodeType":"YulIdentifier","src":"20760:6:97"},"nativeSrc":"20760:14:97","nodeType":"YulFunctionCall","src":"20760:14:97"}],"functionName":{"name":"iszero","nativeSrc":"20753:6:97","nodeType":"YulIdentifier","src":"20753:6:97"},"nativeSrc":"20753:22:97","nodeType":"YulFunctionCall","src":"20753:22:97"}],"functionName":{"name":"mstore","nativeSrc":"20726:6:97","nodeType":"YulIdentifier","src":"20726:6:97"},"nativeSrc":"20726:50:97","nodeType":"YulFunctionCall","src":"20726:50:97"},"nativeSrc":"20726:50:97","nodeType":"YulExpressionStatement","src":"20726:50:97"}]},"name":"abi_encode_tuple_t_bool_t_bool__to_t_bool_t_bool__fromStack_reversed","nativeSrc":"20514:268:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20592:9:97","nodeType":"YulTypedName","src":"20592:9:97","type":""},{"name":"value1","nativeSrc":"20603:6:97","nodeType":"YulTypedName","src":"20603:6:97","type":""},{"name":"value0","nativeSrc":"20611:6:97","nodeType":"YulTypedName","src":"20611:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"20622:4:97","nodeType":"YulTypedName","src":"20622:4:97","type":""}],"src":"20514:268:97"},{"body":{"nativeSrc":"20961:182:97","nodeType":"YulBlock","src":"20961:182:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"20978:9:97","nodeType":"YulIdentifier","src":"20978:9:97"},{"kind":"number","nativeSrc":"20989:2:97","nodeType":"YulLiteral","src":"20989:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"20971:6:97","nodeType":"YulIdentifier","src":"20971:6:97"},"nativeSrc":"20971:21:97","nodeType":"YulFunctionCall","src":"20971:21:97"},"nativeSrc":"20971:21:97","nodeType":"YulExpressionStatement","src":"20971:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21012:9:97","nodeType":"YulIdentifier","src":"21012:9:97"},{"kind":"number","nativeSrc":"21023:2:97","nodeType":"YulLiteral","src":"21023:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21008:3:97","nodeType":"YulIdentifier","src":"21008:3:97"},"nativeSrc":"21008:18:97","nodeType":"YulFunctionCall","src":"21008:18:97"},{"kind":"number","nativeSrc":"21028:2:97","nodeType":"YulLiteral","src":"21028:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"21001:6:97","nodeType":"YulIdentifier","src":"21001:6:97"},"nativeSrc":"21001:30:97","nodeType":"YulFunctionCall","src":"21001:30:97"},"nativeSrc":"21001:30:97","nodeType":"YulExpressionStatement","src":"21001:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21051:9:97","nodeType":"YulIdentifier","src":"21051:9:97"},{"kind":"number","nativeSrc":"21062:2:97","nodeType":"YulLiteral","src":"21062:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"21047:3:97","nodeType":"YulIdentifier","src":"21047:3:97"},"nativeSrc":"21047:18:97","nodeType":"YulFunctionCall","src":"21047:18:97"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nativeSrc":"21067:34:97","nodeType":"YulLiteral","src":"21067:34:97","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nativeSrc":"21040:6:97","nodeType":"YulIdentifier","src":"21040:6:97"},"nativeSrc":"21040:62:97","nodeType":"YulFunctionCall","src":"21040:62:97"},"nativeSrc":"21040:62:97","nodeType":"YulExpressionStatement","src":"21040:62:97"},{"nativeSrc":"21111:26:97","nodeType":"YulAssignment","src":"21111:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"21123:9:97","nodeType":"YulIdentifier","src":"21123:9:97"},{"kind":"number","nativeSrc":"21134:2:97","nodeType":"YulLiteral","src":"21134:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"21119:3:97","nodeType":"YulIdentifier","src":"21119:3:97"},"nativeSrc":"21119:18:97","nodeType":"YulFunctionCall","src":"21119:18:97"},"variableNames":[{"name":"tail","nativeSrc":"21111:4:97","nodeType":"YulIdentifier","src":"21111:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"20787:356:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20938:9:97","nodeType":"YulTypedName","src":"20938:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"20952:4:97","nodeType":"YulTypedName","src":"20952:4:97","type":""}],"src":"20787:356:97"},{"body":{"nativeSrc":"21322:227:97","nodeType":"YulBlock","src":"21322:227:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"21339:9:97","nodeType":"YulIdentifier","src":"21339:9:97"},{"kind":"number","nativeSrc":"21350:2:97","nodeType":"YulLiteral","src":"21350:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"21332:6:97","nodeType":"YulIdentifier","src":"21332:6:97"},"nativeSrc":"21332:21:97","nodeType":"YulFunctionCall","src":"21332:21:97"},"nativeSrc":"21332:21:97","nodeType":"YulExpressionStatement","src":"21332:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21373:9:97","nodeType":"YulIdentifier","src":"21373:9:97"},{"kind":"number","nativeSrc":"21384:2:97","nodeType":"YulLiteral","src":"21384:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21369:3:97","nodeType":"YulIdentifier","src":"21369:3:97"},"nativeSrc":"21369:18:97","nodeType":"YulFunctionCall","src":"21369:18:97"},{"kind":"number","nativeSrc":"21389:2:97","nodeType":"YulLiteral","src":"21389:2:97","type":"","value":"37"}],"functionName":{"name":"mstore","nativeSrc":"21362:6:97","nodeType":"YulIdentifier","src":"21362:6:97"},"nativeSrc":"21362:30:97","nodeType":"YulFunctionCall","src":"21362:30:97"},"nativeSrc":"21362:30:97","nodeType":"YulExpressionStatement","src":"21362:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21412:9:97","nodeType":"YulIdentifier","src":"21412:9:97"},{"kind":"number","nativeSrc":"21423:2:97","nodeType":"YulLiteral","src":"21423:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"21408:3:97","nodeType":"YulIdentifier","src":"21408:3:97"},"nativeSrc":"21408:18:97","nodeType":"YulFunctionCall","src":"21408:18:97"},{"hexValue":"696e76616c696420616365737320636f6e74726f6c206d616e61676572206164","kind":"string","nativeSrc":"21428:34:97","nodeType":"YulLiteral","src":"21428:34:97","type":"","value":"invalid acess control manager ad"}],"functionName":{"name":"mstore","nativeSrc":"21401:6:97","nodeType":"YulIdentifier","src":"21401:6:97"},"nativeSrc":"21401:62:97","nodeType":"YulFunctionCall","src":"21401:62:97"},"nativeSrc":"21401:62:97","nodeType":"YulExpressionStatement","src":"21401:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21483:9:97","nodeType":"YulIdentifier","src":"21483:9:97"},{"kind":"number","nativeSrc":"21494:2:97","nodeType":"YulLiteral","src":"21494:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"21479:3:97","nodeType":"YulIdentifier","src":"21479:3:97"},"nativeSrc":"21479:18:97","nodeType":"YulFunctionCall","src":"21479:18:97"},{"hexValue":"6472657373","kind":"string","nativeSrc":"21499:7:97","nodeType":"YulLiteral","src":"21499:7:97","type":"","value":"dress"}],"functionName":{"name":"mstore","nativeSrc":"21472:6:97","nodeType":"YulIdentifier","src":"21472:6:97"},"nativeSrc":"21472:35:97","nodeType":"YulFunctionCall","src":"21472:35:97"},"nativeSrc":"21472:35:97","nodeType":"YulExpressionStatement","src":"21472:35:97"},{"nativeSrc":"21516:27:97","nodeType":"YulAssignment","src":"21516:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"21528:9:97","nodeType":"YulIdentifier","src":"21528:9:97"},{"kind":"number","nativeSrc":"21539:3:97","nodeType":"YulLiteral","src":"21539:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"21524:3:97","nodeType":"YulIdentifier","src":"21524:3:97"},"nativeSrc":"21524:19:97","nodeType":"YulFunctionCall","src":"21524:19:97"},"variableNames":[{"name":"tail","nativeSrc":"21516:4:97","nodeType":"YulIdentifier","src":"21516:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"21148:401:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21299:9:97","nodeType":"YulTypedName","src":"21299:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"21313:4:97","nodeType":"YulTypedName","src":"21313:4:97","type":""}],"src":"21148:401:97"},{"body":{"nativeSrc":"21683:198:97","nodeType":"YulBlock","src":"21683:198:97","statements":[{"nativeSrc":"21693:26:97","nodeType":"YulAssignment","src":"21693:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"21705:9:97","nodeType":"YulIdentifier","src":"21705:9:97"},{"kind":"number","nativeSrc":"21716:2:97","nodeType":"YulLiteral","src":"21716:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"21701:3:97","nodeType":"YulIdentifier","src":"21701:3:97"},"nativeSrc":"21701:18:97","nodeType":"YulFunctionCall","src":"21701:18:97"},"variableNames":[{"name":"tail","nativeSrc":"21693:4:97","nodeType":"YulIdentifier","src":"21693:4:97"}]},{"nativeSrc":"21728:52:97","nodeType":"YulVariableDeclaration","src":"21728:52:97","value":{"kind":"number","nativeSrc":"21738:42:97","nodeType":"YulLiteral","src":"21738:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"21732:2:97","nodeType":"YulTypedName","src":"21732:2:97","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"21796:9:97","nodeType":"YulIdentifier","src":"21796:9:97"},{"arguments":[{"name":"value0","nativeSrc":"21811:6:97","nodeType":"YulIdentifier","src":"21811:6:97"},{"name":"_1","nativeSrc":"21819:2:97","nodeType":"YulIdentifier","src":"21819:2:97"}],"functionName":{"name":"and","nativeSrc":"21807:3:97","nodeType":"YulIdentifier","src":"21807:3:97"},"nativeSrc":"21807:15:97","nodeType":"YulFunctionCall","src":"21807:15:97"}],"functionName":{"name":"mstore","nativeSrc":"21789:6:97","nodeType":"YulIdentifier","src":"21789:6:97"},"nativeSrc":"21789:34:97","nodeType":"YulFunctionCall","src":"21789:34:97"},"nativeSrc":"21789:34:97","nodeType":"YulExpressionStatement","src":"21789:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21843:9:97","nodeType":"YulIdentifier","src":"21843:9:97"},{"kind":"number","nativeSrc":"21854:2:97","nodeType":"YulLiteral","src":"21854:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21839:3:97","nodeType":"YulIdentifier","src":"21839:3:97"},"nativeSrc":"21839:18:97","nodeType":"YulFunctionCall","src":"21839:18:97"},{"arguments":[{"name":"value1","nativeSrc":"21863:6:97","nodeType":"YulIdentifier","src":"21863:6:97"},{"name":"_1","nativeSrc":"21871:2:97","nodeType":"YulIdentifier","src":"21871:2:97"}],"functionName":{"name":"and","nativeSrc":"21859:3:97","nodeType":"YulIdentifier","src":"21859:3:97"},"nativeSrc":"21859:15:97","nodeType":"YulFunctionCall","src":"21859:15:97"}],"functionName":{"name":"mstore","nativeSrc":"21832:6:97","nodeType":"YulIdentifier","src":"21832:6:97"},"nativeSrc":"21832:43:97","nodeType":"YulFunctionCall","src":"21832:43:97"},"nativeSrc":"21832:43:97","nodeType":"YulExpressionStatement","src":"21832:43:97"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"21554:327:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21644:9:97","nodeType":"YulTypedName","src":"21644:9:97","type":""},{"name":"value1","nativeSrc":"21655:6:97","nodeType":"YulTypedName","src":"21655:6:97","type":""},{"name":"value0","nativeSrc":"21663:6:97","nodeType":"YulTypedName","src":"21663:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"21674:4:97","nodeType":"YulTypedName","src":"21674:4:97","type":""}],"src":"21554:327:97"},{"body":{"nativeSrc":"22035:191:97","nodeType":"YulBlock","src":"22035:191:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"22052:9:97","nodeType":"YulIdentifier","src":"22052:9:97"},{"arguments":[{"name":"value0","nativeSrc":"22067:6:97","nodeType":"YulIdentifier","src":"22067:6:97"},{"kind":"number","nativeSrc":"22075:42:97","nodeType":"YulLiteral","src":"22075:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"22063:3:97","nodeType":"YulIdentifier","src":"22063:3:97"},"nativeSrc":"22063:55:97","nodeType":"YulFunctionCall","src":"22063:55:97"}],"functionName":{"name":"mstore","nativeSrc":"22045:6:97","nodeType":"YulIdentifier","src":"22045:6:97"},"nativeSrc":"22045:74:97","nodeType":"YulFunctionCall","src":"22045:74:97"},"nativeSrc":"22045:74:97","nodeType":"YulExpressionStatement","src":"22045:74:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22139:9:97","nodeType":"YulIdentifier","src":"22139:9:97"},{"kind":"number","nativeSrc":"22150:2:97","nodeType":"YulLiteral","src":"22150:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"22135:3:97","nodeType":"YulIdentifier","src":"22135:3:97"},"nativeSrc":"22135:18:97","nodeType":"YulFunctionCall","src":"22135:18:97"},{"kind":"number","nativeSrc":"22155:2:97","nodeType":"YulLiteral","src":"22155:2:97","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"22128:6:97","nodeType":"YulIdentifier","src":"22128:6:97"},"nativeSrc":"22128:30:97","nodeType":"YulFunctionCall","src":"22128:30:97"},"nativeSrc":"22128:30:97","nodeType":"YulExpressionStatement","src":"22128:30:97"},{"nativeSrc":"22167:53:97","nodeType":"YulAssignment","src":"22167:53:97","value":{"arguments":[{"name":"value1","nativeSrc":"22193:6:97","nodeType":"YulIdentifier","src":"22193:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"22205:9:97","nodeType":"YulIdentifier","src":"22205:9:97"},{"kind":"number","nativeSrc":"22216:2:97","nodeType":"YulLiteral","src":"22216:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"22201:3:97","nodeType":"YulIdentifier","src":"22201:3:97"},"nativeSrc":"22201:18:97","nodeType":"YulFunctionCall","src":"22201:18:97"}],"functionName":{"name":"abi_encode_string","nativeSrc":"22175:17:97","nodeType":"YulIdentifier","src":"22175:17:97"},"nativeSrc":"22175:45:97","nodeType":"YulFunctionCall","src":"22175:45:97"},"variableNames":[{"name":"tail","nativeSrc":"22167:4:97","nodeType":"YulIdentifier","src":"22167:4:97"}]}]},"name":"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"21886:340:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21996:9:97","nodeType":"YulTypedName","src":"21996:9:97","type":""},{"name":"value1","nativeSrc":"22007:6:97","nodeType":"YulTypedName","src":"22007:6:97","type":""},{"name":"value0","nativeSrc":"22015:6:97","nodeType":"YulTypedName","src":"22015:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"22026:4:97","nodeType":"YulTypedName","src":"22026:4:97","type":""}],"src":"21886:340:97"},{"body":{"nativeSrc":"22309:167:97","nodeType":"YulBlock","src":"22309:167:97","statements":[{"body":{"nativeSrc":"22355:16:97","nodeType":"YulBlock","src":"22355:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"22364:1:97","nodeType":"YulLiteral","src":"22364:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"22367:1:97","nodeType":"YulLiteral","src":"22367:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"22357:6:97","nodeType":"YulIdentifier","src":"22357:6:97"},"nativeSrc":"22357:12:97","nodeType":"YulFunctionCall","src":"22357:12:97"},"nativeSrc":"22357:12:97","nodeType":"YulExpressionStatement","src":"22357:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"22330:7:97","nodeType":"YulIdentifier","src":"22330:7:97"},{"name":"headStart","nativeSrc":"22339:9:97","nodeType":"YulIdentifier","src":"22339:9:97"}],"functionName":{"name":"sub","nativeSrc":"22326:3:97","nodeType":"YulIdentifier","src":"22326:3:97"},"nativeSrc":"22326:23:97","nodeType":"YulFunctionCall","src":"22326:23:97"},{"kind":"number","nativeSrc":"22351:2:97","nodeType":"YulLiteral","src":"22351:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"22322:3:97","nodeType":"YulIdentifier","src":"22322:3:97"},"nativeSrc":"22322:32:97","nodeType":"YulFunctionCall","src":"22322:32:97"},"nativeSrc":"22319:52:97","nodeType":"YulIf","src":"22319:52:97"},{"nativeSrc":"22380:29:97","nodeType":"YulVariableDeclaration","src":"22380:29:97","value":{"arguments":[{"name":"headStart","nativeSrc":"22399:9:97","nodeType":"YulIdentifier","src":"22399:9:97"}],"functionName":{"name":"mload","nativeSrc":"22393:5:97","nodeType":"YulIdentifier","src":"22393:5:97"},"nativeSrc":"22393:16:97","nodeType":"YulFunctionCall","src":"22393:16:97"},"variables":[{"name":"value","nativeSrc":"22384:5:97","nodeType":"YulTypedName","src":"22384:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"22440:5:97","nodeType":"YulIdentifier","src":"22440:5:97"}],"functionName":{"name":"validator_revert_bool","nativeSrc":"22418:21:97","nodeType":"YulIdentifier","src":"22418:21:97"},"nativeSrc":"22418:28:97","nodeType":"YulFunctionCall","src":"22418:28:97"},"nativeSrc":"22418:28:97","nodeType":"YulExpressionStatement","src":"22418:28:97"},{"nativeSrc":"22455:15:97","nodeType":"YulAssignment","src":"22455:15:97","value":{"name":"value","nativeSrc":"22465:5:97","nodeType":"YulIdentifier","src":"22465:5:97"},"variableNames":[{"name":"value0","nativeSrc":"22455:6:97","nodeType":"YulIdentifier","src":"22455:6:97"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"22231:245:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"22275:9:97","nodeType":"YulTypedName","src":"22275:9:97","type":""},{"name":"dataEnd","nativeSrc":"22286:7:97","nodeType":"YulTypedName","src":"22286:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"22298:6:97","nodeType":"YulTypedName","src":"22298:6:97","type":""}],"src":"22231:245:97"},{"body":{"nativeSrc":"22658:264:97","nodeType":"YulBlock","src":"22658:264:97","statements":[{"nativeSrc":"22668:52:97","nodeType":"YulVariableDeclaration","src":"22668:52:97","value":{"kind":"number","nativeSrc":"22678:42:97","nodeType":"YulLiteral","src":"22678:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"22672:2:97","nodeType":"YulTypedName","src":"22672:2:97","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"22736:9:97","nodeType":"YulIdentifier","src":"22736:9:97"},{"arguments":[{"name":"value0","nativeSrc":"22751:6:97","nodeType":"YulIdentifier","src":"22751:6:97"},{"name":"_1","nativeSrc":"22759:2:97","nodeType":"YulIdentifier","src":"22759:2:97"}],"functionName":{"name":"and","nativeSrc":"22747:3:97","nodeType":"YulIdentifier","src":"22747:3:97"},"nativeSrc":"22747:15:97","nodeType":"YulFunctionCall","src":"22747:15:97"}],"functionName":{"name":"mstore","nativeSrc":"22729:6:97","nodeType":"YulIdentifier","src":"22729:6:97"},"nativeSrc":"22729:34:97","nodeType":"YulFunctionCall","src":"22729:34:97"},"nativeSrc":"22729:34:97","nodeType":"YulExpressionStatement","src":"22729:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22783:9:97","nodeType":"YulIdentifier","src":"22783:9:97"},{"kind":"number","nativeSrc":"22794:2:97","nodeType":"YulLiteral","src":"22794:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"22779:3:97","nodeType":"YulIdentifier","src":"22779:3:97"},"nativeSrc":"22779:18:97","nodeType":"YulFunctionCall","src":"22779:18:97"},{"arguments":[{"name":"value1","nativeSrc":"22803:6:97","nodeType":"YulIdentifier","src":"22803:6:97"},{"name":"_1","nativeSrc":"22811:2:97","nodeType":"YulIdentifier","src":"22811:2:97"}],"functionName":{"name":"and","nativeSrc":"22799:3:97","nodeType":"YulIdentifier","src":"22799:3:97"},"nativeSrc":"22799:15:97","nodeType":"YulFunctionCall","src":"22799:15:97"}],"functionName":{"name":"mstore","nativeSrc":"22772:6:97","nodeType":"YulIdentifier","src":"22772:6:97"},"nativeSrc":"22772:43:97","nodeType":"YulFunctionCall","src":"22772:43:97"},"nativeSrc":"22772:43:97","nodeType":"YulExpressionStatement","src":"22772:43:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22835:9:97","nodeType":"YulIdentifier","src":"22835:9:97"},{"kind":"number","nativeSrc":"22846:2:97","nodeType":"YulLiteral","src":"22846:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"22831:3:97","nodeType":"YulIdentifier","src":"22831:3:97"},"nativeSrc":"22831:18:97","nodeType":"YulFunctionCall","src":"22831:18:97"},{"kind":"number","nativeSrc":"22851:2:97","nodeType":"YulLiteral","src":"22851:2:97","type":"","value":"96"}],"functionName":{"name":"mstore","nativeSrc":"22824:6:97","nodeType":"YulIdentifier","src":"22824:6:97"},"nativeSrc":"22824:30:97","nodeType":"YulFunctionCall","src":"22824:30:97"},"nativeSrc":"22824:30:97","nodeType":"YulExpressionStatement","src":"22824:30:97"},{"nativeSrc":"22863:53:97","nodeType":"YulAssignment","src":"22863:53:97","value":{"arguments":[{"name":"value2","nativeSrc":"22889:6:97","nodeType":"YulIdentifier","src":"22889:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"22901:9:97","nodeType":"YulIdentifier","src":"22901:9:97"},{"kind":"number","nativeSrc":"22912:2:97","nodeType":"YulLiteral","src":"22912:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"22897:3:97","nodeType":"YulIdentifier","src":"22897:3:97"},"nativeSrc":"22897:18:97","nodeType":"YulFunctionCall","src":"22897:18:97"}],"functionName":{"name":"abi_encode_string","nativeSrc":"22871:17:97","nodeType":"YulIdentifier","src":"22871:17:97"},"nativeSrc":"22871:45:97","nodeType":"YulFunctionCall","src":"22871:45:97"},"variableNames":[{"name":"tail","nativeSrc":"22863:4:97","nodeType":"YulIdentifier","src":"22863:4:97"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"22481:441:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"22611:9:97","nodeType":"YulTypedName","src":"22611:9:97","type":""},{"name":"value2","nativeSrc":"22622:6:97","nodeType":"YulTypedName","src":"22622:6:97","type":""},{"name":"value1","nativeSrc":"22630:6:97","nodeType":"YulTypedName","src":"22630:6:97","type":""},{"name":"value0","nativeSrc":"22638:6:97","nodeType":"YulTypedName","src":"22638:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"22649:4:97","nodeType":"YulTypedName","src":"22649:4:97","type":""}],"src":"22481:441:97"},{"body":{"nativeSrc":"23065:765:97","nodeType":"YulBlock","src":"23065:765:97","statements":[{"nativeSrc":"23075:12:97","nodeType":"YulVariableDeclaration","src":"23075:12:97","value":{"kind":"number","nativeSrc":"23086:1:97","nodeType":"YulLiteral","src":"23086:1:97","type":"","value":"0"},"variables":[{"name":"ret","nativeSrc":"23079:3:97","nodeType":"YulTypedName","src":"23079:3:97","type":""}]},{"nativeSrc":"23096:30:97","nodeType":"YulVariableDeclaration","src":"23096:30:97","value":{"arguments":[{"name":"value0","nativeSrc":"23119:6:97","nodeType":"YulIdentifier","src":"23119:6:97"}],"functionName":{"name":"sload","nativeSrc":"23113:5:97","nodeType":"YulIdentifier","src":"23113:5:97"},"nativeSrc":"23113:13:97","nodeType":"YulFunctionCall","src":"23113:13:97"},"variables":[{"name":"slotValue","nativeSrc":"23100:9:97","nodeType":"YulTypedName","src":"23100:9:97","type":""}]},{"nativeSrc":"23135:50:97","nodeType":"YulVariableDeclaration","src":"23135:50:97","value":{"arguments":[{"name":"slotValue","nativeSrc":"23175:9:97","nodeType":"YulIdentifier","src":"23175:9:97"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"23149:25:97","nodeType":"YulIdentifier","src":"23149:25:97"},"nativeSrc":"23149:36:97","nodeType":"YulFunctionCall","src":"23149:36:97"},"variables":[{"name":"length","nativeSrc":"23139:6:97","nodeType":"YulTypedName","src":"23139:6:97","type":""}]},{"nativeSrc":"23194:11:97","nodeType":"YulVariableDeclaration","src":"23194:11:97","value":{"kind":"number","nativeSrc":"23204:1:97","nodeType":"YulLiteral","src":"23204:1:97","type":"","value":"1"},"variables":[{"name":"_1","nativeSrc":"23198:2:97","nodeType":"YulTypedName","src":"23198:2:97","type":""}]},{"cases":[{"body":{"nativeSrc":"23254:184:97","nodeType":"YulBlock","src":"23254:184:97","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"23275:3:97","nodeType":"YulIdentifier","src":"23275:3:97"},{"arguments":[{"name":"slotValue","nativeSrc":"23284:9:97","nodeType":"YulIdentifier","src":"23284:9:97"},{"kind":"number","nativeSrc":"23295:66:97","nodeType":"YulLiteral","src":"23295:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00"}],"functionName":{"name":"and","nativeSrc":"23280:3:97","nodeType":"YulIdentifier","src":"23280:3:97"},"nativeSrc":"23280:82:97","nodeType":"YulFunctionCall","src":"23280:82:97"}],"functionName":{"name":"mstore","nativeSrc":"23268:6:97","nodeType":"YulIdentifier","src":"23268:6:97"},"nativeSrc":"23268:95:97","nodeType":"YulFunctionCall","src":"23268:95:97"},"nativeSrc":"23268:95:97","nodeType":"YulExpressionStatement","src":"23268:95:97"},{"nativeSrc":"23376:52:97","nodeType":"YulAssignment","src":"23376:52:97","value":{"arguments":[{"name":"pos","nativeSrc":"23387:3:97","nodeType":"YulIdentifier","src":"23387:3:97"},{"arguments":[{"name":"length","nativeSrc":"23396:6:97","nodeType":"YulIdentifier","src":"23396:6:97"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"23418:6:97","nodeType":"YulIdentifier","src":"23418:6:97"}],"functionName":{"name":"iszero","nativeSrc":"23411:6:97","nodeType":"YulIdentifier","src":"23411:6:97"},"nativeSrc":"23411:14:97","nodeType":"YulFunctionCall","src":"23411:14:97"}],"functionName":{"name":"iszero","nativeSrc":"23404:6:97","nodeType":"YulIdentifier","src":"23404:6:97"},"nativeSrc":"23404:22:97","nodeType":"YulFunctionCall","src":"23404:22:97"}],"functionName":{"name":"mul","nativeSrc":"23392:3:97","nodeType":"YulIdentifier","src":"23392:3:97"},"nativeSrc":"23392:35:97","nodeType":"YulFunctionCall","src":"23392:35:97"}],"functionName":{"name":"add","nativeSrc":"23383:3:97","nodeType":"YulIdentifier","src":"23383:3:97"},"nativeSrc":"23383:45:97","nodeType":"YulFunctionCall","src":"23383:45:97"},"variableNames":[{"name":"ret","nativeSrc":"23376:3:97","nodeType":"YulIdentifier","src":"23376:3:97"}]}]},"nativeSrc":"23247:191:97","nodeType":"YulCase","src":"23247:191:97","value":{"kind":"number","nativeSrc":"23252:1:97","nodeType":"YulLiteral","src":"23252:1:97","type":"","value":"0"}},{"body":{"nativeSrc":"23454:351:97","nodeType":"YulBlock","src":"23454:351:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"23475:1:97","nodeType":"YulLiteral","src":"23475:1:97","type":"","value":"0"},{"name":"value0","nativeSrc":"23478:6:97","nodeType":"YulIdentifier","src":"23478:6:97"}],"functionName":{"name":"mstore","nativeSrc":"23468:6:97","nodeType":"YulIdentifier","src":"23468:6:97"},"nativeSrc":"23468:17:97","nodeType":"YulFunctionCall","src":"23468:17:97"},"nativeSrc":"23468:17:97","nodeType":"YulExpressionStatement","src":"23468:17:97"},{"nativeSrc":"23498:14:97","nodeType":"YulVariableDeclaration","src":"23498:14:97","value":{"kind":"number","nativeSrc":"23508:4:97","nodeType":"YulLiteral","src":"23508:4:97","type":"","value":"0x20"},"variables":[{"name":"_2","nativeSrc":"23502:2:97","nodeType":"YulTypedName","src":"23502:2:97","type":""}]},{"nativeSrc":"23525:33:97","nodeType":"YulVariableDeclaration","src":"23525:33:97","value":{"arguments":[{"kind":"number","nativeSrc":"23550:1:97","nodeType":"YulLiteral","src":"23550:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"23553:4:97","nodeType":"YulLiteral","src":"23553:4:97","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"23540:9:97","nodeType":"YulIdentifier","src":"23540:9:97"},"nativeSrc":"23540:18:97","nodeType":"YulFunctionCall","src":"23540:18:97"},"variables":[{"name":"dataPos","nativeSrc":"23529:7:97","nodeType":"YulTypedName","src":"23529:7:97","type":""}]},{"nativeSrc":"23571:10:97","nodeType":"YulVariableDeclaration","src":"23571:10:97","value":{"kind":"number","nativeSrc":"23580:1:97","nodeType":"YulLiteral","src":"23580:1:97","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"23575:1:97","nodeType":"YulTypedName","src":"23575:1:97","type":""}]},{"body":{"nativeSrc":"23648:111:97","nodeType":"YulBlock","src":"23648:111:97","statements":[{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"23677:3:97","nodeType":"YulIdentifier","src":"23677:3:97"},{"name":"i","nativeSrc":"23682:1:97","nodeType":"YulIdentifier","src":"23682:1:97"}],"functionName":{"name":"add","nativeSrc":"23673:3:97","nodeType":"YulIdentifier","src":"23673:3:97"},"nativeSrc":"23673:11:97","nodeType":"YulFunctionCall","src":"23673:11:97"},{"arguments":[{"name":"dataPos","nativeSrc":"23692:7:97","nodeType":"YulIdentifier","src":"23692:7:97"}],"functionName":{"name":"sload","nativeSrc":"23686:5:97","nodeType":"YulIdentifier","src":"23686:5:97"},"nativeSrc":"23686:14:97","nodeType":"YulFunctionCall","src":"23686:14:97"}],"functionName":{"name":"mstore","nativeSrc":"23666:6:97","nodeType":"YulIdentifier","src":"23666:6:97"},"nativeSrc":"23666:35:97","nodeType":"YulFunctionCall","src":"23666:35:97"},"nativeSrc":"23666:35:97","nodeType":"YulExpressionStatement","src":"23666:35:97"},{"nativeSrc":"23718:27:97","nodeType":"YulAssignment","src":"23718:27:97","value":{"arguments":[{"name":"dataPos","nativeSrc":"23733:7:97","nodeType":"YulIdentifier","src":"23733:7:97"},{"name":"_1","nativeSrc":"23742:2:97","nodeType":"YulIdentifier","src":"23742:2:97"}],"functionName":{"name":"add","nativeSrc":"23729:3:97","nodeType":"YulIdentifier","src":"23729:3:97"},"nativeSrc":"23729:16:97","nodeType":"YulFunctionCall","src":"23729:16:97"},"variableNames":[{"name":"dataPos","nativeSrc":"23718:7:97","nodeType":"YulIdentifier","src":"23718:7:97"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"23605:1:97","nodeType":"YulIdentifier","src":"23605:1:97"},{"name":"length","nativeSrc":"23608:6:97","nodeType":"YulIdentifier","src":"23608:6:97"}],"functionName":{"name":"lt","nativeSrc":"23602:2:97","nodeType":"YulIdentifier","src":"23602:2:97"},"nativeSrc":"23602:13:97","nodeType":"YulFunctionCall","src":"23602:13:97"},"nativeSrc":"23594:165:97","nodeType":"YulForLoop","post":{"nativeSrc":"23616:19:97","nodeType":"YulBlock","src":"23616:19:97","statements":[{"nativeSrc":"23618:15:97","nodeType":"YulAssignment","src":"23618:15:97","value":{"arguments":[{"name":"i","nativeSrc":"23627:1:97","nodeType":"YulIdentifier","src":"23627:1:97"},{"name":"_2","nativeSrc":"23630:2:97","nodeType":"YulIdentifier","src":"23630:2:97"}],"functionName":{"name":"add","nativeSrc":"23623:3:97","nodeType":"YulIdentifier","src":"23623:3:97"},"nativeSrc":"23623:10:97","nodeType":"YulFunctionCall","src":"23623:10:97"},"variableNames":[{"name":"i","nativeSrc":"23618:1:97","nodeType":"YulIdentifier","src":"23618:1:97"}]}]},"pre":{"nativeSrc":"23598:3:97","nodeType":"YulBlock","src":"23598:3:97","statements":[]},"src":"23594:165:97"},{"nativeSrc":"23772:23:97","nodeType":"YulAssignment","src":"23772:23:97","value":{"arguments":[{"name":"pos","nativeSrc":"23783:3:97","nodeType":"YulIdentifier","src":"23783:3:97"},{"name":"length","nativeSrc":"23788:6:97","nodeType":"YulIdentifier","src":"23788:6:97"}],"functionName":{"name":"add","nativeSrc":"23779:3:97","nodeType":"YulIdentifier","src":"23779:3:97"},"nativeSrc":"23779:16:97","nodeType":"YulFunctionCall","src":"23779:16:97"},"variableNames":[{"name":"ret","nativeSrc":"23772:3:97","nodeType":"YulIdentifier","src":"23772:3:97"}]}]},"nativeSrc":"23447:358:97","nodeType":"YulCase","src":"23447:358:97","value":{"kind":"number","nativeSrc":"23452:1:97","nodeType":"YulLiteral","src":"23452:1:97","type":"","value":"1"}}],"expression":{"arguments":[{"name":"slotValue","nativeSrc":"23225:9:97","nodeType":"YulIdentifier","src":"23225:9:97"},{"kind":"number","nativeSrc":"23236:1:97","nodeType":"YulLiteral","src":"23236:1:97","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"23221:3:97","nodeType":"YulIdentifier","src":"23221:3:97"},"nativeSrc":"23221:17:97","nodeType":"YulFunctionCall","src":"23221:17:97"},"nativeSrc":"23214:591:97","nodeType":"YulSwitch","src":"23214:591:97"},{"nativeSrc":"23814:10:97","nodeType":"YulAssignment","src":"23814:10:97","value":{"name":"ret","nativeSrc":"23821:3:97","nodeType":"YulIdentifier","src":"23821:3:97"},"variableNames":[{"name":"end","nativeSrc":"23814:3:97","nodeType":"YulIdentifier","src":"23814:3:97"}]}]},"name":"abi_encode_tuple_packed_t_bytes_storage_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"22927:903:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"23041:3:97","nodeType":"YulTypedName","src":"23041:3:97","type":""},{"name":"value0","nativeSrc":"23046:6:97","nodeType":"YulTypedName","src":"23046:6:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"23057:3:97","nodeType":"YulTypedName","src":"23057:3:97","type":""}],"src":"22927:903:97"},{"body":{"nativeSrc":"23882:302:97","nodeType":"YulBlock","src":"23882:302:97","statements":[{"body":{"nativeSrc":"23981:168:97","nodeType":"YulBlock","src":"23981:168:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"24002:1:97","nodeType":"YulLiteral","src":"24002:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"24005:77:97","nodeType":"YulLiteral","src":"24005:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"23995:6:97","nodeType":"YulIdentifier","src":"23995:6:97"},"nativeSrc":"23995:88:97","nodeType":"YulFunctionCall","src":"23995:88:97"},"nativeSrc":"23995:88:97","nodeType":"YulExpressionStatement","src":"23995:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"24103:1:97","nodeType":"YulLiteral","src":"24103:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"24106:4:97","nodeType":"YulLiteral","src":"24106:4:97","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"24096:6:97","nodeType":"YulIdentifier","src":"24096:6:97"},"nativeSrc":"24096:15:97","nodeType":"YulFunctionCall","src":"24096:15:97"},"nativeSrc":"24096:15:97","nodeType":"YulExpressionStatement","src":"24096:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"24131:1:97","nodeType":"YulLiteral","src":"24131:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"24134:4:97","nodeType":"YulLiteral","src":"24134:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"24124:6:97","nodeType":"YulIdentifier","src":"24124:6:97"},"nativeSrc":"24124:15:97","nodeType":"YulFunctionCall","src":"24124:15:97"},"nativeSrc":"24124:15:97","nodeType":"YulExpressionStatement","src":"24124:15:97"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"23898:5:97","nodeType":"YulIdentifier","src":"23898:5:97"},{"kind":"number","nativeSrc":"23905:66:97","nodeType":"YulLiteral","src":"23905:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"eq","nativeSrc":"23895:2:97","nodeType":"YulIdentifier","src":"23895:2:97"},"nativeSrc":"23895:77:97","nodeType":"YulFunctionCall","src":"23895:77:97"},"nativeSrc":"23892:257:97","nodeType":"YulIf","src":"23892:257:97"},{"nativeSrc":"24158:20:97","nodeType":"YulAssignment","src":"24158:20:97","value":{"arguments":[{"name":"value","nativeSrc":"24169:5:97","nodeType":"YulIdentifier","src":"24169:5:97"},{"kind":"number","nativeSrc":"24176:1:97","nodeType":"YulLiteral","src":"24176:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"24165:3:97","nodeType":"YulIdentifier","src":"24165:3:97"},"nativeSrc":"24165:13:97","nodeType":"YulFunctionCall","src":"24165:13:97"},"variableNames":[{"name":"ret","nativeSrc":"24158:3:97","nodeType":"YulIdentifier","src":"24158:3:97"}]}]},"name":"increment_t_uint256","nativeSrc":"23835:349:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"23864:5:97","nodeType":"YulTypedName","src":"23864:5:97","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"23874:3:97","nodeType":"YulTypedName","src":"23874:3:97","type":""}],"src":"23835:349:97"},{"body":{"nativeSrc":"24283:1368:97","nodeType":"YulBlock","src":"24283:1368:97","statements":[{"nativeSrc":"24293:24:97","nodeType":"YulVariableDeclaration","src":"24293:24:97","value":{"arguments":[{"name":"src","nativeSrc":"24313:3:97","nodeType":"YulIdentifier","src":"24313:3:97"}],"functionName":{"name":"mload","nativeSrc":"24307:5:97","nodeType":"YulIdentifier","src":"24307:5:97"},"nativeSrc":"24307:10:97","nodeType":"YulFunctionCall","src":"24307:10:97"},"variables":[{"name":"newLen","nativeSrc":"24297:6:97","nodeType":"YulTypedName","src":"24297:6:97","type":""}]},{"body":{"nativeSrc":"24360:22:97","nodeType":"YulBlock","src":"24360:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"24362:16:97","nodeType":"YulIdentifier","src":"24362:16:97"},"nativeSrc":"24362:18:97","nodeType":"YulFunctionCall","src":"24362:18:97"},"nativeSrc":"24362:18:97","nodeType":"YulExpressionStatement","src":"24362:18:97"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"24332:6:97","nodeType":"YulIdentifier","src":"24332:6:97"},{"kind":"number","nativeSrc":"24340:18:97","nodeType":"YulLiteral","src":"24340:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"24329:2:97","nodeType":"YulIdentifier","src":"24329:2:97"},"nativeSrc":"24329:30:97","nodeType":"YulFunctionCall","src":"24329:30:97"},"nativeSrc":"24326:56:97","nodeType":"YulIf","src":"24326:56:97"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"24435:4:97","nodeType":"YulIdentifier","src":"24435:4:97"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"24473:4:97","nodeType":"YulIdentifier","src":"24473:4:97"}],"functionName":{"name":"sload","nativeSrc":"24467:5:97","nodeType":"YulIdentifier","src":"24467:5:97"},"nativeSrc":"24467:11:97","nodeType":"YulFunctionCall","src":"24467:11:97"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"24441:25:97","nodeType":"YulIdentifier","src":"24441:25:97"},"nativeSrc":"24441:38:97","nodeType":"YulFunctionCall","src":"24441:38:97"},{"name":"newLen","nativeSrc":"24481:6:97","nodeType":"YulIdentifier","src":"24481:6:97"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"24391:43:97","nodeType":"YulIdentifier","src":"24391:43:97"},"nativeSrc":"24391:97:97","nodeType":"YulFunctionCall","src":"24391:97:97"},"nativeSrc":"24391:97:97","nodeType":"YulExpressionStatement","src":"24391:97:97"},{"nativeSrc":"24497:18:97","nodeType":"YulVariableDeclaration","src":"24497:18:97","value":{"kind":"number","nativeSrc":"24514:1:97","nodeType":"YulLiteral","src":"24514:1:97","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"24501:9:97","nodeType":"YulTypedName","src":"24501:9:97","type":""}]},{"nativeSrc":"24524:23:97","nodeType":"YulVariableDeclaration","src":"24524:23:97","value":{"kind":"number","nativeSrc":"24543:4:97","nodeType":"YulLiteral","src":"24543:4:97","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nativeSrc":"24528:11:97","nodeType":"YulTypedName","src":"24528:11:97","type":""}]},{"nativeSrc":"24556:17:97","nodeType":"YulAssignment","src":"24556:17:97","value":{"kind":"number","nativeSrc":"24569:4:97","nodeType":"YulLiteral","src":"24569:4:97","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"24556:9:97","nodeType":"YulIdentifier","src":"24556:9:97"}]},{"cases":[{"body":{"nativeSrc":"24619:775:97","nodeType":"YulBlock","src":"24619:775:97","statements":[{"nativeSrc":"24633:94:97","nodeType":"YulVariableDeclaration","src":"24633:94:97","value":{"arguments":[{"name":"newLen","nativeSrc":"24652:6:97","nodeType":"YulIdentifier","src":"24652:6:97"},{"kind":"number","nativeSrc":"24660:66:97","nodeType":"YulLiteral","src":"24660:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"24648:3:97","nodeType":"YulIdentifier","src":"24648:3:97"},"nativeSrc":"24648:79:97","nodeType":"YulFunctionCall","src":"24648:79:97"},"variables":[{"name":"loopEnd","nativeSrc":"24637:7:97","nodeType":"YulTypedName","src":"24637:7:97","type":""}]},{"nativeSrc":"24740:49:97","nodeType":"YulVariableDeclaration","src":"24740:49:97","value":{"arguments":[{"name":"slot","nativeSrc":"24784:4:97","nodeType":"YulIdentifier","src":"24784:4:97"}],"functionName":{"name":"array_dataslot_string_storage","nativeSrc":"24754:29:97","nodeType":"YulIdentifier","src":"24754:29:97"},"nativeSrc":"24754:35:97","nodeType":"YulFunctionCall","src":"24754:35:97"},"variables":[{"name":"dstPtr","nativeSrc":"24744:6:97","nodeType":"YulTypedName","src":"24744:6:97","type":""}]},{"nativeSrc":"24802:10:97","nodeType":"YulVariableDeclaration","src":"24802:10:97","value":{"kind":"number","nativeSrc":"24811:1:97","nodeType":"YulLiteral","src":"24811:1:97","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"24806:1:97","nodeType":"YulTypedName","src":"24806:1:97","type":""}]},{"body":{"nativeSrc":"24889:172:97","nodeType":"YulBlock","src":"24889:172:97","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"24914:6:97","nodeType":"YulIdentifier","src":"24914:6:97"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"24932:3:97","nodeType":"YulIdentifier","src":"24932:3:97"},{"name":"srcOffset","nativeSrc":"24937:9:97","nodeType":"YulIdentifier","src":"24937:9:97"}],"functionName":{"name":"add","nativeSrc":"24928:3:97","nodeType":"YulIdentifier","src":"24928:3:97"},"nativeSrc":"24928:19:97","nodeType":"YulFunctionCall","src":"24928:19:97"}],"functionName":{"name":"mload","nativeSrc":"24922:5:97","nodeType":"YulIdentifier","src":"24922:5:97"},"nativeSrc":"24922:26:97","nodeType":"YulFunctionCall","src":"24922:26:97"}],"functionName":{"name":"sstore","nativeSrc":"24907:6:97","nodeType":"YulIdentifier","src":"24907:6:97"},"nativeSrc":"24907:42:97","nodeType":"YulFunctionCall","src":"24907:42:97"},"nativeSrc":"24907:42:97","nodeType":"YulExpressionStatement","src":"24907:42:97"},{"nativeSrc":"24966:24:97","nodeType":"YulAssignment","src":"24966:24:97","value":{"arguments":[{"name":"dstPtr","nativeSrc":"24980:6:97","nodeType":"YulIdentifier","src":"24980:6:97"},{"kind":"number","nativeSrc":"24988:1:97","nodeType":"YulLiteral","src":"24988:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"24976:3:97","nodeType":"YulIdentifier","src":"24976:3:97"},"nativeSrc":"24976:14:97","nodeType":"YulFunctionCall","src":"24976:14:97"},"variableNames":[{"name":"dstPtr","nativeSrc":"24966:6:97","nodeType":"YulIdentifier","src":"24966:6:97"}]},{"nativeSrc":"25007:40:97","nodeType":"YulAssignment","src":"25007:40:97","value":{"arguments":[{"name":"srcOffset","nativeSrc":"25024:9:97","nodeType":"YulIdentifier","src":"25024:9:97"},{"name":"srcOffset_1","nativeSrc":"25035:11:97","nodeType":"YulIdentifier","src":"25035:11:97"}],"functionName":{"name":"add","nativeSrc":"25020:3:97","nodeType":"YulIdentifier","src":"25020:3:97"},"nativeSrc":"25020:27:97","nodeType":"YulFunctionCall","src":"25020:27:97"},"variableNames":[{"name":"srcOffset","nativeSrc":"25007:9:97","nodeType":"YulIdentifier","src":"25007:9:97"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"24836:1:97","nodeType":"YulIdentifier","src":"24836:1:97"},{"name":"loopEnd","nativeSrc":"24839:7:97","nodeType":"YulIdentifier","src":"24839:7:97"}],"functionName":{"name":"lt","nativeSrc":"24833:2:97","nodeType":"YulIdentifier","src":"24833:2:97"},"nativeSrc":"24833:14:97","nodeType":"YulFunctionCall","src":"24833:14:97"},"nativeSrc":"24825:236:97","nodeType":"YulForLoop","post":{"nativeSrc":"24848:28:97","nodeType":"YulBlock","src":"24848:28:97","statements":[{"nativeSrc":"24850:24:97","nodeType":"YulAssignment","src":"24850:24:97","value":{"arguments":[{"name":"i","nativeSrc":"24859:1:97","nodeType":"YulIdentifier","src":"24859:1:97"},{"name":"srcOffset_1","nativeSrc":"24862:11:97","nodeType":"YulIdentifier","src":"24862:11:97"}],"functionName":{"name":"add","nativeSrc":"24855:3:97","nodeType":"YulIdentifier","src":"24855:3:97"},"nativeSrc":"24855:19:97","nodeType":"YulFunctionCall","src":"24855:19:97"},"variableNames":[{"name":"i","nativeSrc":"24850:1:97","nodeType":"YulIdentifier","src":"24850:1:97"}]}]},"pre":{"nativeSrc":"24829:3:97","nodeType":"YulBlock","src":"24829:3:97","statements":[]},"src":"24825:236:97"},{"body":{"nativeSrc":"25109:226:97","nodeType":"YulBlock","src":"25109:226:97","statements":[{"nativeSrc":"25127:43:97","nodeType":"YulVariableDeclaration","src":"25127:43:97","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"25154:3:97","nodeType":"YulIdentifier","src":"25154:3:97"},{"name":"srcOffset","nativeSrc":"25159:9:97","nodeType":"YulIdentifier","src":"25159:9:97"}],"functionName":{"name":"add","nativeSrc":"25150:3:97","nodeType":"YulIdentifier","src":"25150:3:97"},"nativeSrc":"25150:19:97","nodeType":"YulFunctionCall","src":"25150:19:97"}],"functionName":{"name":"mload","nativeSrc":"25144:5:97","nodeType":"YulIdentifier","src":"25144:5:97"},"nativeSrc":"25144:26:97","nodeType":"YulFunctionCall","src":"25144:26:97"},"variables":[{"name":"lastValue","nativeSrc":"25131:9:97","nodeType":"YulTypedName","src":"25131:9:97","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"25194:6:97","nodeType":"YulIdentifier","src":"25194:6:97"},{"arguments":[{"name":"lastValue","nativeSrc":"25206:9:97","nodeType":"YulIdentifier","src":"25206:9:97"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"25233:1:97","nodeType":"YulLiteral","src":"25233:1:97","type":"","value":"3"},{"name":"newLen","nativeSrc":"25236:6:97","nodeType":"YulIdentifier","src":"25236:6:97"}],"functionName":{"name":"shl","nativeSrc":"25229:3:97","nodeType":"YulIdentifier","src":"25229:3:97"},"nativeSrc":"25229:14:97","nodeType":"YulFunctionCall","src":"25229:14:97"},{"kind":"number","nativeSrc":"25245:3:97","nodeType":"YulLiteral","src":"25245:3:97","type":"","value":"248"}],"functionName":{"name":"and","nativeSrc":"25225:3:97","nodeType":"YulIdentifier","src":"25225:3:97"},"nativeSrc":"25225:24:97","nodeType":"YulFunctionCall","src":"25225:24:97"},{"kind":"number","nativeSrc":"25251:66:97","nodeType":"YulLiteral","src":"25251:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shr","nativeSrc":"25221:3:97","nodeType":"YulIdentifier","src":"25221:3:97"},"nativeSrc":"25221:97:97","nodeType":"YulFunctionCall","src":"25221:97:97"}],"functionName":{"name":"not","nativeSrc":"25217:3:97","nodeType":"YulIdentifier","src":"25217:3:97"},"nativeSrc":"25217:102:97","nodeType":"YulFunctionCall","src":"25217:102:97"}],"functionName":{"name":"and","nativeSrc":"25202:3:97","nodeType":"YulIdentifier","src":"25202:3:97"},"nativeSrc":"25202:118:97","nodeType":"YulFunctionCall","src":"25202:118:97"}],"functionName":{"name":"sstore","nativeSrc":"25187:6:97","nodeType":"YulIdentifier","src":"25187:6:97"},"nativeSrc":"25187:134:97","nodeType":"YulFunctionCall","src":"25187:134:97"},"nativeSrc":"25187:134:97","nodeType":"YulExpressionStatement","src":"25187:134:97"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"25080:7:97","nodeType":"YulIdentifier","src":"25080:7:97"},{"name":"newLen","nativeSrc":"25089:6:97","nodeType":"YulIdentifier","src":"25089:6:97"}],"functionName":{"name":"lt","nativeSrc":"25077:2:97","nodeType":"YulIdentifier","src":"25077:2:97"},"nativeSrc":"25077:19:97","nodeType":"YulFunctionCall","src":"25077:19:97"},"nativeSrc":"25074:261:97","nodeType":"YulIf","src":"25074:261:97"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"25355:4:97","nodeType":"YulIdentifier","src":"25355:4:97"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"25369:1:97","nodeType":"YulLiteral","src":"25369:1:97","type":"","value":"1"},{"name":"newLen","nativeSrc":"25372:6:97","nodeType":"YulIdentifier","src":"25372:6:97"}],"functionName":{"name":"shl","nativeSrc":"25365:3:97","nodeType":"YulIdentifier","src":"25365:3:97"},"nativeSrc":"25365:14:97","nodeType":"YulFunctionCall","src":"25365:14:97"},{"kind":"number","nativeSrc":"25381:1:97","nodeType":"YulLiteral","src":"25381:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"25361:3:97","nodeType":"YulIdentifier","src":"25361:3:97"},"nativeSrc":"25361:22:97","nodeType":"YulFunctionCall","src":"25361:22:97"}],"functionName":{"name":"sstore","nativeSrc":"25348:6:97","nodeType":"YulIdentifier","src":"25348:6:97"},"nativeSrc":"25348:36:97","nodeType":"YulFunctionCall","src":"25348:36:97"},"nativeSrc":"25348:36:97","nodeType":"YulExpressionStatement","src":"25348:36:97"}]},"nativeSrc":"24612:782:97","nodeType":"YulCase","src":"24612:782:97","value":{"kind":"number","nativeSrc":"24617:1:97","nodeType":"YulLiteral","src":"24617:1:97","type":"","value":"1"}},{"body":{"nativeSrc":"25411:234:97","nodeType":"YulBlock","src":"25411:234:97","statements":[{"nativeSrc":"25425:14:97","nodeType":"YulVariableDeclaration","src":"25425:14:97","value":{"kind":"number","nativeSrc":"25438:1:97","nodeType":"YulLiteral","src":"25438:1:97","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"25429:5:97","nodeType":"YulTypedName","src":"25429:5:97","type":""}]},{"body":{"nativeSrc":"25474:67:97","nodeType":"YulBlock","src":"25474:67:97","statements":[{"nativeSrc":"25492:35:97","nodeType":"YulAssignment","src":"25492:35:97","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"25511:3:97","nodeType":"YulIdentifier","src":"25511:3:97"},{"name":"srcOffset","nativeSrc":"25516:9:97","nodeType":"YulIdentifier","src":"25516:9:97"}],"functionName":{"name":"add","nativeSrc":"25507:3:97","nodeType":"YulIdentifier","src":"25507:3:97"},"nativeSrc":"25507:19:97","nodeType":"YulFunctionCall","src":"25507:19:97"}],"functionName":{"name":"mload","nativeSrc":"25501:5:97","nodeType":"YulIdentifier","src":"25501:5:97"},"nativeSrc":"25501:26:97","nodeType":"YulFunctionCall","src":"25501:26:97"},"variableNames":[{"name":"value","nativeSrc":"25492:5:97","nodeType":"YulIdentifier","src":"25492:5:97"}]}]},"condition":{"name":"newLen","nativeSrc":"25455:6:97","nodeType":"YulIdentifier","src":"25455:6:97"},"nativeSrc":"25452:89:97","nodeType":"YulIf","src":"25452:89:97"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"25561:4:97","nodeType":"YulIdentifier","src":"25561:4:97"},{"arguments":[{"name":"value","nativeSrc":"25620:5:97","nodeType":"YulIdentifier","src":"25620:5:97"},{"name":"newLen","nativeSrc":"25627:6:97","nodeType":"YulIdentifier","src":"25627:6:97"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"25567:52:97","nodeType":"YulIdentifier","src":"25567:52:97"},"nativeSrc":"25567:67:97","nodeType":"YulFunctionCall","src":"25567:67:97"}],"functionName":{"name":"sstore","nativeSrc":"25554:6:97","nodeType":"YulIdentifier","src":"25554:6:97"},"nativeSrc":"25554:81:97","nodeType":"YulFunctionCall","src":"25554:81:97"},"nativeSrc":"25554:81:97","nodeType":"YulExpressionStatement","src":"25554:81:97"}]},"nativeSrc":"25403:242:97","nodeType":"YulCase","src":"25403:242:97","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"24592:6:97","nodeType":"YulIdentifier","src":"24592:6:97"},{"kind":"number","nativeSrc":"24600:2:97","nodeType":"YulLiteral","src":"24600:2:97","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"24589:2:97","nodeType":"YulIdentifier","src":"24589:2:97"},"nativeSrc":"24589:14:97","nodeType":"YulFunctionCall","src":"24589:14:97"},"nativeSrc":"24582:1063:97","nodeType":"YulSwitch","src":"24582:1063:97"}]},"name":"copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage","nativeSrc":"24189:1462:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"24268:4:97","nodeType":"YulTypedName","src":"24268:4:97","type":""},{"name":"src","nativeSrc":"24274:3:97","nodeType":"YulTypedName","src":"24274:3:97","type":""}],"src":"24189:1462:97"},{"body":{"nativeSrc":"25971:583:97","nodeType":"YulBlock","src":"25971:583:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"25988:9:97","nodeType":"YulIdentifier","src":"25988:9:97"},{"kind":"number","nativeSrc":"25999:3:97","nodeType":"YulLiteral","src":"25999:3:97","type":"","value":"192"}],"functionName":{"name":"mstore","nativeSrc":"25981:6:97","nodeType":"YulIdentifier","src":"25981:6:97"},"nativeSrc":"25981:22:97","nodeType":"YulFunctionCall","src":"25981:22:97"},"nativeSrc":"25981:22:97","nodeType":"YulExpressionStatement","src":"25981:22:97"},{"nativeSrc":"26012:60:97","nodeType":"YulVariableDeclaration","src":"26012:60:97","value":{"arguments":[{"name":"value0","nativeSrc":"26044:6:97","nodeType":"YulIdentifier","src":"26044:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"26056:9:97","nodeType":"YulIdentifier","src":"26056:9:97"},{"kind":"number","nativeSrc":"26067:3:97","nodeType":"YulLiteral","src":"26067:3:97","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"26052:3:97","nodeType":"YulIdentifier","src":"26052:3:97"},"nativeSrc":"26052:19:97","nodeType":"YulFunctionCall","src":"26052:19:97"}],"functionName":{"name":"abi_encode_string","nativeSrc":"26026:17:97","nodeType":"YulIdentifier","src":"26026:17:97"},"nativeSrc":"26026:46:97","nodeType":"YulFunctionCall","src":"26026:46:97"},"variables":[{"name":"tail_1","nativeSrc":"26016:6:97","nodeType":"YulTypedName","src":"26016:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26092:9:97","nodeType":"YulIdentifier","src":"26092:9:97"},{"kind":"number","nativeSrc":"26103:2:97","nodeType":"YulLiteral","src":"26103:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"26088:3:97","nodeType":"YulIdentifier","src":"26088:3:97"},"nativeSrc":"26088:18:97","nodeType":"YulFunctionCall","src":"26088:18:97"},{"arguments":[{"name":"tail_1","nativeSrc":"26112:6:97","nodeType":"YulIdentifier","src":"26112:6:97"},{"name":"headStart","nativeSrc":"26120:9:97","nodeType":"YulIdentifier","src":"26120:9:97"}],"functionName":{"name":"sub","nativeSrc":"26108:3:97","nodeType":"YulIdentifier","src":"26108:3:97"},"nativeSrc":"26108:22:97","nodeType":"YulFunctionCall","src":"26108:22:97"}],"functionName":{"name":"mstore","nativeSrc":"26081:6:97","nodeType":"YulIdentifier","src":"26081:6:97"},"nativeSrc":"26081:50:97","nodeType":"YulFunctionCall","src":"26081:50:97"},"nativeSrc":"26081:50:97","nodeType":"YulExpressionStatement","src":"26081:50:97"},{"nativeSrc":"26140:47:97","nodeType":"YulVariableDeclaration","src":"26140:47:97","value":{"arguments":[{"name":"value1","nativeSrc":"26172:6:97","nodeType":"YulIdentifier","src":"26172:6:97"},{"name":"tail_1","nativeSrc":"26180:6:97","nodeType":"YulIdentifier","src":"26180:6:97"}],"functionName":{"name":"abi_encode_string","nativeSrc":"26154:17:97","nodeType":"YulIdentifier","src":"26154:17:97"},"nativeSrc":"26154:33:97","nodeType":"YulFunctionCall","src":"26154:33:97"},"variables":[{"name":"tail_2","nativeSrc":"26144:6:97","nodeType":"YulTypedName","src":"26144:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26207:9:97","nodeType":"YulIdentifier","src":"26207:9:97"},{"kind":"number","nativeSrc":"26218:2:97","nodeType":"YulLiteral","src":"26218:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"26203:3:97","nodeType":"YulIdentifier","src":"26203:3:97"},"nativeSrc":"26203:18:97","nodeType":"YulFunctionCall","src":"26203:18:97"},{"arguments":[{"name":"tail_2","nativeSrc":"26227:6:97","nodeType":"YulIdentifier","src":"26227:6:97"},{"name":"headStart","nativeSrc":"26235:9:97","nodeType":"YulIdentifier","src":"26235:9:97"}],"functionName":{"name":"sub","nativeSrc":"26223:3:97","nodeType":"YulIdentifier","src":"26223:3:97"},"nativeSrc":"26223:22:97","nodeType":"YulFunctionCall","src":"26223:22:97"}],"functionName":{"name":"mstore","nativeSrc":"26196:6:97","nodeType":"YulIdentifier","src":"26196:6:97"},"nativeSrc":"26196:50:97","nodeType":"YulFunctionCall","src":"26196:50:97"},"nativeSrc":"26196:50:97","nodeType":"YulExpressionStatement","src":"26196:50:97"},{"nativeSrc":"26255:47:97","nodeType":"YulVariableDeclaration","src":"26255:47:97","value":{"arguments":[{"name":"value2","nativeSrc":"26287:6:97","nodeType":"YulIdentifier","src":"26287:6:97"},{"name":"tail_2","nativeSrc":"26295:6:97","nodeType":"YulIdentifier","src":"26295:6:97"}],"functionName":{"name":"abi_encode_string","nativeSrc":"26269:17:97","nodeType":"YulIdentifier","src":"26269:17:97"},"nativeSrc":"26269:33:97","nodeType":"YulFunctionCall","src":"26269:33:97"},"variables":[{"name":"tail_3","nativeSrc":"26259:6:97","nodeType":"YulTypedName","src":"26259:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26322:9:97","nodeType":"YulIdentifier","src":"26322:9:97"},{"kind":"number","nativeSrc":"26333:2:97","nodeType":"YulLiteral","src":"26333:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"26318:3:97","nodeType":"YulIdentifier","src":"26318:3:97"},"nativeSrc":"26318:18:97","nodeType":"YulFunctionCall","src":"26318:18:97"},{"name":"value3","nativeSrc":"26338:6:97","nodeType":"YulIdentifier","src":"26338:6:97"}],"functionName":{"name":"mstore","nativeSrc":"26311:6:97","nodeType":"YulIdentifier","src":"26311:6:97"},"nativeSrc":"26311:34:97","nodeType":"YulFunctionCall","src":"26311:34:97"},"nativeSrc":"26311:34:97","nodeType":"YulExpressionStatement","src":"26311:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26365:9:97","nodeType":"YulIdentifier","src":"26365:9:97"},{"kind":"number","nativeSrc":"26376:3:97","nodeType":"YulLiteral","src":"26376:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"26361:3:97","nodeType":"YulIdentifier","src":"26361:3:97"},"nativeSrc":"26361:19:97","nodeType":"YulFunctionCall","src":"26361:19:97"},{"arguments":[{"name":"value4","nativeSrc":"26386:6:97","nodeType":"YulIdentifier","src":"26386:6:97"},{"kind":"number","nativeSrc":"26394:42:97","nodeType":"YulLiteral","src":"26394:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"26382:3:97","nodeType":"YulIdentifier","src":"26382:3:97"},"nativeSrc":"26382:55:97","nodeType":"YulFunctionCall","src":"26382:55:97"}],"functionName":{"name":"mstore","nativeSrc":"26354:6:97","nodeType":"YulIdentifier","src":"26354:6:97"},"nativeSrc":"26354:84:97","nodeType":"YulFunctionCall","src":"26354:84:97"},"nativeSrc":"26354:84:97","nodeType":"YulExpressionStatement","src":"26354:84:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26458:9:97","nodeType":"YulIdentifier","src":"26458:9:97"},{"kind":"number","nativeSrc":"26469:3:97","nodeType":"YulLiteral","src":"26469:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"26454:3:97","nodeType":"YulIdentifier","src":"26454:3:97"},"nativeSrc":"26454:19:97","nodeType":"YulFunctionCall","src":"26454:19:97"},{"arguments":[{"name":"tail_3","nativeSrc":"26479:6:97","nodeType":"YulIdentifier","src":"26479:6:97"},{"name":"headStart","nativeSrc":"26487:9:97","nodeType":"YulIdentifier","src":"26487:9:97"}],"functionName":{"name":"sub","nativeSrc":"26475:3:97","nodeType":"YulIdentifier","src":"26475:3:97"},"nativeSrc":"26475:22:97","nodeType":"YulFunctionCall","src":"26475:22:97"}],"functionName":{"name":"mstore","nativeSrc":"26447:6:97","nodeType":"YulIdentifier","src":"26447:6:97"},"nativeSrc":"26447:51:97","nodeType":"YulFunctionCall","src":"26447:51:97"},"nativeSrc":"26447:51:97","nodeType":"YulExpressionStatement","src":"26447:51:97"},{"nativeSrc":"26507:41:97","nodeType":"YulAssignment","src":"26507:41:97","value":{"arguments":[{"name":"value5","nativeSrc":"26533:6:97","nodeType":"YulIdentifier","src":"26533:6:97"},{"name":"tail_3","nativeSrc":"26541:6:97","nodeType":"YulIdentifier","src":"26541:6:97"}],"functionName":{"name":"abi_encode_string","nativeSrc":"26515:17:97","nodeType":"YulIdentifier","src":"26515:17:97"},"nativeSrc":"26515:33:97","nodeType":"YulFunctionCall","src":"26515:33:97"},"variableNames":[{"name":"tail","nativeSrc":"26507:4:97","nodeType":"YulIdentifier","src":"26507:4:97"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr_t_uint256_t_address_t_bytes_memory_ptr__to_t_string_memory_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr_t_uint256_t_address_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"25656:898:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25900:9:97","nodeType":"YulTypedName","src":"25900:9:97","type":""},{"name":"value5","nativeSrc":"25911:6:97","nodeType":"YulTypedName","src":"25911:6:97","type":""},{"name":"value4","nativeSrc":"25919:6:97","nodeType":"YulTypedName","src":"25919:6:97","type":""},{"name":"value3","nativeSrc":"25927:6:97","nodeType":"YulTypedName","src":"25927:6:97","type":""},{"name":"value2","nativeSrc":"25935:6:97","nodeType":"YulTypedName","src":"25935:6:97","type":""},{"name":"value1","nativeSrc":"25943:6:97","nodeType":"YulTypedName","src":"25943:6:97","type":""},{"name":"value0","nativeSrc":"25951:6:97","nodeType":"YulTypedName","src":"25951:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"25962:4:97","nodeType":"YulTypedName","src":"25962:4:97","type":""}],"src":"25656:898:97"},{"body":{"nativeSrc":"26733:233:97","nodeType":"YulBlock","src":"26733:233:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"26750:9:97","nodeType":"YulIdentifier","src":"26750:9:97"},{"kind":"number","nativeSrc":"26761:2:97","nodeType":"YulLiteral","src":"26761:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"26743:6:97","nodeType":"YulIdentifier","src":"26743:6:97"},"nativeSrc":"26743:21:97","nodeType":"YulFunctionCall","src":"26743:21:97"},"nativeSrc":"26743:21:97","nodeType":"YulExpressionStatement","src":"26743:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26784:9:97","nodeType":"YulIdentifier","src":"26784:9:97"},{"kind":"number","nativeSrc":"26795:2:97","nodeType":"YulLiteral","src":"26795:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"26780:3:97","nodeType":"YulIdentifier","src":"26780:3:97"},"nativeSrc":"26780:18:97","nodeType":"YulFunctionCall","src":"26780:18:97"},{"kind":"number","nativeSrc":"26800:2:97","nodeType":"YulLiteral","src":"26800:2:97","type":"","value":"43"}],"functionName":{"name":"mstore","nativeSrc":"26773:6:97","nodeType":"YulIdentifier","src":"26773:6:97"},"nativeSrc":"26773:30:97","nodeType":"YulFunctionCall","src":"26773:30:97"},"nativeSrc":"26773:30:97","nodeType":"YulExpressionStatement","src":"26773:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26823:9:97","nodeType":"YulIdentifier","src":"26823:9:97"},{"kind":"number","nativeSrc":"26834:2:97","nodeType":"YulLiteral","src":"26834:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"26819:3:97","nodeType":"YulIdentifier","src":"26819:3:97"},"nativeSrc":"26819:18:97","nodeType":"YulFunctionCall","src":"26819:18:97"},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069","kind":"string","nativeSrc":"26839:34:97","nodeType":"YulLiteral","src":"26839:34:97","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nativeSrc":"26812:6:97","nodeType":"YulIdentifier","src":"26812:6:97"},"nativeSrc":"26812:62:97","nodeType":"YulFunctionCall","src":"26812:62:97"},"nativeSrc":"26812:62:97","nodeType":"YulExpressionStatement","src":"26812:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26894:9:97","nodeType":"YulIdentifier","src":"26894:9:97"},{"kind":"number","nativeSrc":"26905:2:97","nodeType":"YulLiteral","src":"26905:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"26890:3:97","nodeType":"YulIdentifier","src":"26890:3:97"},"nativeSrc":"26890:18:97","nodeType":"YulFunctionCall","src":"26890:18:97"},{"hexValue":"6e697469616c697a696e67","kind":"string","nativeSrc":"26910:13:97","nodeType":"YulLiteral","src":"26910:13:97","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nativeSrc":"26883:6:97","nodeType":"YulIdentifier","src":"26883:6:97"},"nativeSrc":"26883:41:97","nodeType":"YulFunctionCall","src":"26883:41:97"},"nativeSrc":"26883:41:97","nodeType":"YulExpressionStatement","src":"26883:41:97"},{"nativeSrc":"26933:27:97","nodeType":"YulAssignment","src":"26933:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"26945:9:97","nodeType":"YulIdentifier","src":"26945:9:97"},{"kind":"number","nativeSrc":"26956:3:97","nodeType":"YulLiteral","src":"26956:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"26941:3:97","nodeType":"YulIdentifier","src":"26941:3:97"},"nativeSrc":"26941:19:97","nodeType":"YulFunctionCall","src":"26941:19:97"},"variableNames":[{"name":"tail","nativeSrc":"26933:4:97","nodeType":"YulIdentifier","src":"26933:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"26559:407:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"26710:9:97","nodeType":"YulTypedName","src":"26710:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"26724:4:97","nodeType":"YulTypedName","src":"26724:4:97","type":""}],"src":"26559:407:97"}]},"contents":"{\n    { }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n    }\n    function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function allocate_memory(size) -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(size, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function abi_decode_string(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let _1 := calldataload(offset)\n        if gt(_1, 0xffffffffffffffff) { panic_error_0x41() }\n        let array_1 := allocate_memory(add(and(add(_1, 0x1f), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0), 0x20))\n        mstore(array_1, _1)\n        if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n        calldatacopy(add(array_1, 0x20), add(offset, 0x20), _1)\n        mstore(add(add(array_1, _1), 0x20), 0)\n        array := array_1\n    }\n    function abi_decode_tuple_t_string_memory_ptrt_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value0 := abi_decode_string(add(headStart, offset), dataEnd)\n        value1 := abi_decode_address(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function copy_memory_to_memory_with_cleanup(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n    }\n    function abi_encode_string(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n        end := add(add(pos, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 0x20)\n    }\n    function abi_encode_address(value, pos)\n    {\n        mstore(pos, and(value, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_uint96(value, pos)\n    {\n        mstore(pos, and(value, 0xffffffffffffffffffffffff))\n    }\n    function abi_encode_uint32(value, pos)\n    {\n        mstore(pos, and(value, 0xffffffff))\n    }\n    function abi_encode_tuple_t_struct$_RiskParameterUpdate_$16568_memory_ptr__to_t_struct$_RiskParameterUpdate_$16568_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let memberValue0 := mload(value0)\n        let _1 := 0x0180\n        mstore(add(headStart, 32), _1)\n        let tail_1 := abi_encode_string(memberValue0, add(headStart, 416))\n        mstore(add(headStart, 64), mload(add(value0, 32)))\n        let memberValue0_1 := mload(add(value0, 64))\n        abi_encode_address(memberValue0_1, add(headStart, 96))\n        let memberValue0_2 := mload(add(value0, 96))\n        let _2 := 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0\n        mstore(add(headStart, 128), add(sub(tail_1, headStart), _2))\n        let tail_2 := abi_encode_string(memberValue0_2, tail_1)\n        mstore(add(headStart, 160), mload(add(value0, 128)))\n        let memberValue0_3 := mload(add(value0, 160))\n        mstore(add(headStart, 192), add(sub(tail_2, headStart), _2))\n        let tail_3 := abi_encode_string(memberValue0_3, tail_2)\n        let memberValue0_4 := mload(add(value0, 192))\n        mstore(add(headStart, 224), add(sub(tail_3, headStart), _2))\n        let tail_4 := abi_encode_string(memberValue0_4, tail_3)\n        let _3 := mload(add(value0, 224))\n        let _4 := 256\n        mstore(add(headStart, _4), _3)\n        let memberValue0_5 := mload(add(value0, _4))\n        let _5 := 288\n        abi_encode_address(memberValue0_5, add(headStart, _5))\n        let memberValue0_6 := mload(add(value0, _5))\n        let _6 := 320\n        abi_encode_uint96(memberValue0_6, add(headStart, _6))\n        let memberValue0_7 := mload(add(value0, _6))\n        let _7 := 352\n        abi_encode_uint32(memberValue0_7, add(headStart, _7))\n        let memberValue0_8 := mload(add(value0, _7))\n        mstore(add(headStart, _1), add(sub(tail_4, headStart), _2))\n        tail := abi_encode_string(memberValue0_8, tail_4)\n    }\n    function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_string_memory_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value0 := abi_decode_string(add(headStart, offset), dataEnd)\n    }\n    function abi_decode_uint96(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_uint32(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_string_memory_ptrt_bytes_memory_ptrt_string_memory_ptrt_addresst_uint96t_uint32t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n    {\n        if slt(sub(dataEnd, headStart), 224) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        value0 := abi_decode_string(add(headStart, offset), dataEnd)\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, _1) { revert(0, 0) }\n        value1 := abi_decode_string(add(headStart, offset_1), dataEnd)\n        let offset_2 := calldataload(add(headStart, 64))\n        if gt(offset_2, _1) { revert(0, 0) }\n        value2 := abi_decode_string(add(headStart, offset_2), dataEnd)\n        value3 := abi_decode_address(add(headStart, 96))\n        value4 := abi_decode_uint96(add(headStart, 128))\n        value5 := abi_decode_uint32(add(headStart, 160))\n        let offset_3 := calldataload(add(headStart, 192))\n        if gt(offset_3, _1) { revert(0, 0) }\n        value6 := abi_decode_string(add(headStart, offset_3), dataEnd)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_string_memory_ptr_t_uint256_t_address_t_string_memory_ptr_t_bytes32_t_bytes_memory_ptr_t_bytes_memory_ptr_t_uint256_t_address_t_uint96_t_uint32_t_bytes_memory_ptr__to_t_string_memory_ptr_t_uint256_t_address_t_string_memory_ptr_t_bytes32_t_bytes_memory_ptr_t_bytes_memory_ptr_t_uint256_t_address_t_uint96_t_uint32_t_bytes_memory_ptr__fromStack_reversed(headStart, value11, value10, value9, value8, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, 384)\n        let tail_1 := abi_encode_string(value0, add(headStart, 384))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), and(value2, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 96), sub(tail_1, headStart))\n        let tail_2 := abi_encode_string(value3, tail_1)\n        mstore(add(headStart, 128), value4)\n        mstore(add(headStart, 160), sub(tail_2, headStart))\n        let tail_3 := abi_encode_string(value5, tail_2)\n        mstore(add(headStart, 192), sub(tail_3, headStart))\n        let tail_4 := abi_encode_string(value6, tail_3)\n        mstore(add(headStart, 224), value7)\n        abi_encode_address(value8, add(headStart, 256))\n        abi_encode_uint96(value9, add(headStart, 288))\n        abi_encode_uint32(value10, add(headStart, 320))\n        mstore(add(headStart, 352), sub(tail_4, headStart))\n        tail := abi_encode_string(value11, tail_4)\n    }\n    function abi_encode_tuple_t_contract$_IAccessControlManagerV8_$13903__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_array$_t_string_memory_ptr_$dyn_memory_ptr__to_t_array$_t_string_memory_ptr_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        let _1 := 32\n        let tail_1 := add(headStart, 32)\n        mstore(headStart, 32)\n        let pos := tail_1\n        let length := mload(value0)\n        mstore(tail_1, length)\n        pos := add(headStart, 64)\n        let tail_2 := add(add(headStart, shl(5, length)), 64)\n        let srcPtr := add(value0, 32)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, add(sub(tail_2, headStart), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0))\n            tail_2 := abi_encode_string(mload(srcPtr), tail_2)\n            srcPtr := add(srcPtr, _1)\n            pos := add(pos, _1)\n        }\n        tail := tail_2\n    }\n    function array_allocation_size_array_string_dyn(length) -> size\n    {\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        size := add(shl(5, length), 0x20)\n    }\n    function abi_decode_array_string_dyn(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let _1 := calldataload(offset)\n        let _2 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_string_dyn(_1))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, _2)\n        let srcEnd := add(add(offset, shl(5, _1)), _2)\n        if gt(srcEnd, end) { revert(0, 0) }\n        let src := add(offset, _2)\n        for { } lt(src, srcEnd) { src := add(src, _2) }\n        {\n            let innerOffset := calldataload(src)\n            if gt(innerOffset, 0xffffffffffffffff)\n            {\n                let _3 := 0\n                revert(_3, _3)\n            }\n            mstore(dst, abi_decode_string(add(add(offset, innerOffset), _2), end))\n            dst := add(dst, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_array_address_dyn(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let _1 := calldataload(offset)\n        let _2 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_string_dyn(_1))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, 0x20)\n        let srcEnd := add(add(offset, shl(5, _1)), 0x20)\n        if gt(srcEnd, end) { revert(0, 0) }\n        let src := add(offset, 0x20)\n        for { } lt(src, srcEnd) { src := add(src, _2) }\n        {\n            mstore(dst, abi_decode_address(src))\n            dst := add(dst, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_array_uint96_dyn(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let _1 := calldataload(offset)\n        let _2 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_string_dyn(_1))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, 0x20)\n        let srcEnd := add(add(offset, shl(5, _1)), 0x20)\n        if gt(srcEnd, end) { revert(0, 0) }\n        let src := add(offset, 0x20)\n        for { } lt(src, srcEnd) { src := add(src, _2) }\n        {\n            mstore(dst, abi_decode_uint96(src))\n            dst := add(dst, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_array_uint32_dyn(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let _1 := calldataload(offset)\n        let _2 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_string_dyn(_1))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, 0x20)\n        let srcEnd := add(add(offset, shl(5, _1)), 0x20)\n        if gt(srcEnd, end) { revert(0, 0) }\n        let src := add(offset, 0x20)\n        for { } lt(src, srcEnd) { src := add(src, _2) }\n        {\n            mstore(dst, abi_decode_uint32(src))\n            dst := add(dst, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_tuple_t_array$_t_string_memory_ptr_$dyn_memory_ptrt_array$_t_bytes_memory_ptr_$dyn_memory_ptrt_array$_t_string_memory_ptr_$dyn_memory_ptrt_array$_t_address_$dyn_memory_ptrt_array$_t_uint96_$dyn_memory_ptrt_array$_t_uint32_$dyn_memory_ptrt_array$_t_bytes_memory_ptr_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n    {\n        if slt(sub(dataEnd, headStart), 224) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        value0 := abi_decode_array_string_dyn(add(headStart, offset), dataEnd)\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, _1) { revert(0, 0) }\n        value1 := abi_decode_array_string_dyn(add(headStart, offset_1), dataEnd)\n        let offset_2 := calldataload(add(headStart, 64))\n        if gt(offset_2, _1) { revert(0, 0) }\n        value2 := abi_decode_array_string_dyn(add(headStart, offset_2), dataEnd)\n        let offset_3 := calldataload(add(headStart, 96))\n        if gt(offset_3, _1) { revert(0, 0) }\n        value3 := abi_decode_array_address_dyn(add(headStart, offset_3), dataEnd)\n        let offset_4 := calldataload(add(headStart, 128))\n        if gt(offset_4, _1) { revert(0, 0) }\n        value4 := abi_decode_array_uint96_dyn(add(headStart, offset_4), dataEnd)\n        let offset_5 := calldataload(add(headStart, 160))\n        if gt(offset_5, _1) { revert(0, 0) }\n        value5 := abi_decode_array_uint32_dyn(add(headStart, offset_5), dataEnd)\n        let offset_6 := calldataload(add(headStart, 192))\n        if gt(offset_6, _1) { revert(0, 0) }\n        value6 := abi_decode_array_string_dyn(add(headStart, offset_6), dataEnd)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_string(value0, add(headStart, 32))\n    }\n    function validator_revert_bool(value)\n    {\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_string_memory_ptrt_bool(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value0 := abi_decode_string(add(headStart, offset), dataEnd)\n        let value := calldataload(add(headStart, 32))\n        validator_revert_bool(value)\n        value1 := value\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function array_dataslot_string_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            let _1 := 0\n            mstore(0, array)\n            let data := keccak256(0, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _2 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _2) { start := add(start, 1) }\n            { sstore(start, _1) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n    {\n        let newLen := mload(src)\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        let srcOffset_1 := 0x20\n        srcOffset := 0x20\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n            {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, srcOffset_1)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n    function abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n        end := add(pos, length)\n    }\n    function abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 41)\n        mstore(add(headStart, 64), \"Ownable2Step: caller is not the \")\n        mstore(add(headStart, 96), \"new owner\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 46)\n        mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n        mstore(add(headStart, 96), \"dy initialized\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_bool_t_bool__to_t_bool_t_bool__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, iszero(iszero(value0)))\n        mstore(add(headStart, 32), iszero(iszero(value1)))\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"invalid acess control manager ad\")\n        mstore(add(headStart, 96), \"dress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n    }\n    function abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 32), 64)\n        tail := abi_encode_string(value1, add(headStart, 64))\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_bool(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), 96)\n        tail := abi_encode_string(value2, add(headStart, 96))\n    }\n    function abi_encode_tuple_packed_t_bytes_storage_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let ret := 0\n        let slotValue := sload(value0)\n        let length := extract_byte_array_length(slotValue)\n        let _1 := 1\n        switch and(slotValue, 1)\n        case 0 {\n            mstore(pos, and(slotValue, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00))\n            ret := add(pos, mul(length, iszero(iszero(length))))\n        }\n        case 1 {\n            mstore(0, value0)\n            let _2 := 0x20\n            let dataPos := keccak256(0, 0x20)\n            let i := 0\n            for { } lt(i, length) { i := add(i, _2) }\n            {\n                mstore(add(pos, i), sload(dataPos))\n                dataPos := add(dataPos, _1)\n            }\n            ret := add(pos, length)\n        }\n        end := ret\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x11)\n            revert(0, 0x24)\n        }\n        ret := add(value, 1)\n    }\n    function copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage(slot, src)\n    {\n        let newLen := mload(src)\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        let srcOffset_1 := 0x20\n        srcOffset := 0x20\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n            {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, srcOffset_1)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n    function abi_encode_tuple_t_string_memory_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr_t_uint256_t_address_t_bytes_memory_ptr__to_t_string_memory_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr_t_uint256_t_address_t_bytes_memory_ptr__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, 192)\n        let tail_1 := abi_encode_string(value0, add(headStart, 192))\n        mstore(add(headStart, 32), sub(tail_1, headStart))\n        let tail_2 := abi_encode_string(value1, tail_1)\n        mstore(add(headStart, 64), sub(tail_2, headStart))\n        let tail_3 := abi_encode_string(value2, tail_2)\n        mstore(add(headStart, 96), value3)\n        mstore(add(headStart, 128), and(value4, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 160), sub(tail_3, headStart))\n        tail := abi_encode_string(value5, tail_3)\n    }\n    function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 43)\n        mstore(add(headStart, 64), \"Initializable: contract is not i\")\n        mstore(add(headStart, 96), \"nitializing\")\n        tail := add(headStart, 128)\n    }\n}","id":97,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106101ae5760003560e01c8063986576fa116100ee578063c6b8ab4211610097578063ec1930b011610071578063ec1930b01461044b578063f2fde38b1461045e578063f660fe6914610471578063fa7229ee1461048457600080fd5b8063c6b8ab42146103fa578063cbd579671461041a578063e30c39781461042d57600080fd5b8063c030ce7b116100c8578063c030ce7b146103bf578063c4d66de8146103d4578063c4e1a280146103e757600080fd5b8063986576fa1461034b578063b39b55be14610376578063b4a0bdf3146103a157600080fd5b8063592d37331161015b57806377abc9bd1161013557806377abc9bd146102de57806379ba5097146102f157806387d7f21f146102f95780638da5cb5b1461030c57600080fd5b8063592d3733146102ab5780636f324967146102b3578063715018a6146102d657600080fd5b806334496b5a1161018c57806334496b5a1461021757806337759b9a1461026057806343b62b261461028057600080fd5b80630e32cb86146101b3578063157b1225146101c85780631687fe8e14610200575b600080fd5b6101c66101c13660046126fc565b610497565b005b6101eb6101d636600461271e565b60cb6020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61020960c95481565b6040519081526020016101f7565b610209610225366004612843565b8151602092830120600090815260ce8352604080822073ffffffffffffffffffffffffffffffffffffffff9390931682529190925290205490565b61027361026e36600461271e565b6104ab565b6040516101f791906128ff565b61020961028e366004612a68565b60ce60209081526000928352604080842090915290825290205481565b60ca54610209565b6101eb6102c13660046126fc565b60cd6020526000908152604090205460ff1681565b6101c6610933565b6101c66102ec366004612a8b565b610965565b6101c6610ac7565b6101c6610307366004612af8565b610b7e565b60335473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101f7565b6101eb610359366004612a8b565b8051602091820120600090815260cb909152604090205460ff1690565b61038961038436600461271e565b610bdf565b6040516101f79c9b9a99989796959493929190612bd7565b60975473ffffffffffffffffffffffffffffffffffffffff16610326565b6103c7610f3d565b6040516101f79190612cc1565b6101c66103e23660046126fc565b611016565b6101c66103f5366004612f29565b61118d565b61040d61040836600461271e565b611335565b6040516101f79190613035565b6101c66104283660046126fc565b6113e1565b60655473ffffffffffffffffffffffffffffffffffffffff16610326565b6101c6610459366004613056565b6114d4565b6101c661046c3660046126fc565b611618565b61027361047f366004612843565b6116c8565b6101c66104923660046126fc565b611b82565b61049f611c82565b6104a881611d05565b50565b6105526040518061018001604052806060815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160008019168152602001606081526020016060815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160006bffffffffffffffffffffffff168152602001600063ffffffff168152602001606081525090565b811580610560575060c95482115b15610597576040517fac6c0d0100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082815260cc602052604090819020815161018081019092528054829082906105c0906130a8565b80601f01602080910402602001604051908101604052809291908181526020018280546105ec906130a8565b80156106395780601f1061060e57610100808354040283529160200191610639565b820191906000526020600020905b81548152906001019060200180831161061c57829003601f168201915b505050918352505060018201546020820152600282015473ffffffffffffffffffffffffffffffffffffffff166040820152600382018054606090920191610680906130a8565b80601f01602080910402602001604051908101604052809291908181526020018280546106ac906130a8565b80156106f95780601f106106ce576101008083540402835291602001916106f9565b820191906000526020600020905b8154815290600101906020018083116106dc57829003601f168201915b505050505081526020016004820154815260200160058201805461071c906130a8565b80601f0160208091040260200160405190810160405280929190818152602001828054610748906130a8565b80156107955780601f1061076a57610100808354040283529160200191610795565b820191906000526020600020905b81548152906001019060200180831161077857829003601f168201915b505050505081526020016006820180546107ae906130a8565b80601f01602080910402602001604051908101604052809291908181526020018280546107da906130a8565b80156108275780601f106107fc57610100808354040283529160200191610827565b820191906000526020600020905b81548152906001019060200180831161080a57829003601f168201915b505050918352505060078201546020820152600882015473ffffffffffffffffffffffffffffffffffffffff811660408301527401000000000000000000000000000000000000000090046bffffffffffffffffffffffff166060820152600982015463ffffffff166080820152600a8201805460a0909201916108aa906130a8565b80601f01602080910402602001604051908101604052809291908181526020018280546108d6906130a8565b80156109235780601f106108f857610100808354040283529160200191610923565b820191906000526020600020905b81548152906001019060200180831161090657829003601f168201915b5050505050815250509050919050565b6040517f96c553eb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109a36040518060400160405280601581526020017f6164645570646174655479706528737472696e67290000000000000000000000815250611e27565b805115806109b2575060408151115b156109e9576040517f920af76c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805160208201206109f981611f00565b15610a30576040517f40df35ca00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081815260cb60205260408120805460ff1916600190811790915560ca805491820181559091527f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee101610a84838261314c565b5081604051610a939190613266565b604051908190038120907f07d686af6e6b7a2e3d03f5c81f05bba6a5b3686aca218f92f96b84c7d59aabaf90600090a25050565b606554339073ffffffffffffffffffffffffffffffffffffffff168114610b75576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e6572000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6104a881611f64565b33600090815260cd602052604090205460ff16610bc7576040517f79d1e58f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bd687878787878787611f95565b50505050505050565b60cc60205260009081526040902080548190610bfa906130a8565b80601f0160208091040260200160405190810160405280929190818152602001828054610c26906130a8565b8015610c735780601f10610c4857610100808354040283529160200191610c73565b820191906000526020600020905b815481529060010190602001808311610c5657829003601f168201915b50505050600183015460028401546003850180549495929473ffffffffffffffffffffffffffffffffffffffff909216935090610caf906130a8565b80601f0160208091040260200160405190810160405280929190818152602001828054610cdb906130a8565b8015610d285780601f10610cfd57610100808354040283529160200191610d28565b820191906000526020600020905b815481529060010190602001808311610d0b57829003601f168201915b505050505090806004015490806005018054610d43906130a8565b80601f0160208091040260200160405190810160405280929190818152602001828054610d6f906130a8565b8015610dbc5780601f10610d9157610100808354040283529160200191610dbc565b820191906000526020600020905b815481529060010190602001808311610d9f57829003601f168201915b505050505090806006018054610dd1906130a8565b80601f0160208091040260200160405190810160405280929190818152602001828054610dfd906130a8565b8015610e4a5780601f10610e1f57610100808354040283529160200191610e4a565b820191906000526020600020905b815481529060010190602001808311610e2d57829003601f168201915b50505050600783015460088401546009850154600a860180549596939573ffffffffffffffffffffffffffffffffffffffff84169550740100000000000000000000000000000000000000009093046bffffffffffffffffffffffff169363ffffffff90921692610eba906130a8565b80601f0160208091040260200160405190810160405280929190818152602001828054610ee6906130a8565b8015610f335780601f10610f0857610100808354040283529160200191610f33565b820191906000526020600020905b815481529060010190602001808311610f1657829003601f168201915b505050505090508c565b606060ca805480602002602001604051908101604052809291908181526020016000905b8282101561100d578382906000526020600020018054610f80906130a8565b80601f0160208091040260200160405190810160405280929190818152602001828054610fac906130a8565b8015610ff95780601f10610fce57610100808354040283529160200191610ff9565b820191906000526020600020905b815481529060010190602001808311610fdc57829003601f168201915b505050505081526020019060010190610f61565b50505050905090565b600054610100900460ff16158080156110365750600054600160ff909116105b806110505750303b158015611050575060005460ff166001145b6110dc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610b6c565b6000805460ff19166001179055801561111c57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61112582612391565b801561118957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15b5050565b33600090815260cd602052604090205460ff166111d6576040517f79d1e58f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b86518015806111e6575086518114155b806111f2575085518114155b806111fe575084518114155b8061120a575083518114155b80611216575082518114155b80611222575081518114155b15611259576040517fa24a13a600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b8181101561132a5761132289828151811061127957611279613282565b602002602001015189838151811061129357611293613282565b60200260200101518984815181106112ad576112ad613282565b60200260200101518985815181106112c7576112c7613282565b60200260200101518986815181106112e1576112e1613282565b60200260200101518987815181106112fb576112fb613282565b602002602001015189888151811061131557611315613282565b6020026020010151611f95565b60010161125c565b505050505050505050565b60ca818154811061134557600080fd5b906000526020600020016000915090508054611360906130a8565b80601f016020809104026020016040519081016040528092919081815260200182805461138c906130a8565b80156113d95780601f106113ae576101008083540402835291602001916113d9565b820191906000526020600020905b8154815290600101906020018083116113bc57829003601f168201915b505050505081565b61141f6040518060400160405280601f81526020017f72656d6f7665417574686f72697a656453656e64657228616464726573732900815250611e27565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260cd602052604090205460ff1661147e576040517f79d1e58f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116600081815260cd6020526040808220805460ff19169055517f98f9958a855d78eae670154a7d047d26968849962c3204c2b12c2228634f4ff89190a250565b6115126040518060400160405280602081526020017f7365745570646174655479706541637469766528737472696e672c626f6f6c29815250611e27565b8151602083012061152281611f00565b611558576040517f6ebb186d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081815260cb602052604090205460ff16821515811515036115a7576040517f6ebba15200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082815260cb602052604090819020805460ff1916851515179055516115cf908590613266565b6040805191829003822083151583528515156020840152917f33843b38d9deffbe0817aebcd9e744876dbf296fb42cabaca9b24160ab70811e910160405180910390a250505050565b611620611c82565b6065805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915561168360335473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b61176f6040518061018001604052806060815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160008019168152602001606081526020016060815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160006bffffffffffffffffffffffff168152602001600063ffffffff168152602001606081525090565b8251602080850191909120600081815260ce8352604080822073ffffffffffffffffffffffffffffffffffffffff871683529093529182205490918190036117e3576040517f1ca36fe200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081815260cc6020526040908190208151610180810190925280548290829061180c906130a8565b80601f0160208091040260200160405190810160405280929190818152602001828054611838906130a8565b80156118855780601f1061185a57610100808354040283529160200191611885565b820191906000526020600020905b81548152906001019060200180831161186857829003601f168201915b505050918352505060018201546020820152600282015473ffffffffffffffffffffffffffffffffffffffff1660408201526003820180546060909201916118cc906130a8565b80601f01602080910402602001604051908101604052809291908181526020018280546118f8906130a8565b80156119455780601f1061191a57610100808354040283529160200191611945565b820191906000526020600020905b81548152906001019060200180831161192857829003601f168201915b5050505050815260200160048201548152602001600582018054611968906130a8565b80601f0160208091040260200160405190810160405280929190818152602001828054611994906130a8565b80156119e15780601f106119b6576101008083540402835291602001916119e1565b820191906000526020600020905b8154815290600101906020018083116119c457829003601f168201915b505050505081526020016006820180546119fa906130a8565b80601f0160208091040260200160405190810160405280929190818152602001828054611a26906130a8565b8015611a735780601f10611a4857610100808354040283529160200191611a73565b820191906000526020600020905b815481529060010190602001808311611a5657829003601f168201915b505050918352505060078201546020820152600882015473ffffffffffffffffffffffffffffffffffffffff811660408301527401000000000000000000000000000000000000000090046bffffffffffffffffffffffff166060820152600982015463ffffffff166080820152600a8201805460a090920191611af6906130a8565b80601f0160208091040260200160405190810160405280929190818152602001828054611b22906130a8565b8015611b6f5780601f10611b4457610100808354040283529160200191611b6f565b820191906000526020600020905b815481529060010190602001808311611b5257829003601f168201915b5050505050815250509250505092915050565b611bc06040518060400160405280601c81526020017f616464417574686f72697a656453656e64657228616464726573732900000000815250611e27565b611bc981612439565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260cd602052604090205460ff1615611c29576040517f16fc747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116600081815260cd6020526040808220805460ff19166001179055517fd06d2241a59677d082959f22e5a5212c57a9e890949a9d0f2426efd49f8c5d7f9190a250565b60335473ffffffffffffffffffffffffffffffffffffffff163314611d03576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b6c565b565b73ffffffffffffffffffffffffffffffffffffffff8116611da8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e6167657220616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610b6c565b6097805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa09101611180565b6097546040517f18c5e8ab00000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff16906318c5e8ab90611e8090339086906004016132b1565b602060405180830381865afa158015611e9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ec191906132e0565b905080611189573330836040517f4a3fa293000000000000000000000000000000000000000000000000000000008152600401610b6c939291906132fd565b60ca54600090815b81811015611f5a578360ca8281548110611f2457611f24613282565b90600052602060002001604051611f3b919061333f565b604051809103902003611f52575060019392505050565b600101611f08565b5060009392505050565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556104a881612486565b611f9e84612439565b8451602080870191909120600081815260cb90925260409091205460ff16611ff2576040517f686d1d3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060c960008154612003906133b5565b9182905550600083815260ce6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8b16845282528083205480845260cc909252822060050180549394509092612055906130a8565b80601f0160208091040260200160405190810160405280929190818152602001828054612081906130a8565b80156120ce5780601f106120a3576101008083540402835291602001916120ce565b820191906000526020600020905b8154815290600101906020018083116120b157829003601f168201915b5050505050905060006040518061018001604052808d81526020018581526020018a73ffffffffffffffffffffffffffffffffffffffff1681526020018b81526020018681526020018c81526020018381526020014281526020013373ffffffffffffffffffffffffffffffffffffffff168152602001896bffffffffffffffffffffffff1681526020018863ffffffff1681526020018781525090508060cc60008681526020019081526020016000206000820151816000019081612194919061314c565b506020820151600182015560408201516002820180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055606082015160038201906121fe908261314c565b506080820151600482015560a0820151600582019061221d908261314c565b5060c08201516006820190612232908261314c565b5060e082015160078201556101008201516101208301516bffffffffffffffffffffffff16740100000000000000000000000000000000000000000273ffffffffffffffffffffffffffffffffffffffff90911617600882015561014082015160098201805463ffffffff9092167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000909216919091179055610160820151600a8201906122df908261314c565b505050600085815260ce6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8d1684529091529081902085905551612322908b90613266565b60405180910390208973ffffffffffffffffffffffffffffffffffffffff16857ffc790d5ce2687ea5b75f51b2fff6d34792504386d9c73160bb6bdc6ea25f5b698f8f8742338e60405161237b96959493929190613414565b60405180910390a4505050505050505050505050565b600054610100900460ff16612428576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610b6c565b6124306124fd565b6104a88161259c565b73ffffffffffffffffffffffffffffffffffffffff81166104a8576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16612594576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610b6c565b611d03612633565b600054610100900460ff1661049f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610b6c565b600054610100900460ff166126ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610b6c565b611d0333611f64565b803573ffffffffffffffffffffffffffffffffffffffff811681146126f757600080fd5b919050565b60006020828403121561270e57600080fd5b612717826126d3565b9392505050565b60006020828403121561273057600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156127ad576127ad612737565b604052919050565b600082601f8301126127c657600080fd5b813567ffffffffffffffff8111156127e0576127e0612737565b61281160207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601612766565b81815284602083860101111561282657600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561285657600080fd5b823567ffffffffffffffff81111561286d57600080fd5b612879858286016127b5565b925050612888602084016126d3565b90509250929050565b60005b838110156128ac578181015183820152602001612894565b50506000910152565b600081518084526128cd816020860160208601612891565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000825161018080602085015261291e6101a08501836128b5565b9150602085015160408501526040850151612951606086018273ffffffffffffffffffffffffffffffffffffffff169052565b5060608501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08086850301608087015261298c84836128b5565b9350608087015160a087015260a08701519150808685030160c08701526129b384836128b5565b935060c08701519150808685030160e08701526129d084836128b5565b60e0880151610100888101919091528801519094509150610120612a0b8188018473ffffffffffffffffffffffffffffffffffffffff169052565b8701519150610140612a2c878201846bffffffffffffffffffffffff169052565b8701519150610160612a458782018463ffffffff169052565b870151868503909101838701529050612a5e83826128b5565b9695505050505050565b60008060408385031215612a7b57600080fd5b82359150612888602084016126d3565b600060208284031215612a9d57600080fd5b813567ffffffffffffffff811115612ab457600080fd5b612ac0848285016127b5565b949350505050565b80356bffffffffffffffffffffffff811681146126f757600080fd5b803563ffffffff811681146126f757600080fd5b600080600080600080600060e0888a031215612b1357600080fd5b873567ffffffffffffffff80821115612b2b57600080fd5b612b378b838c016127b5565b985060208a0135915080821115612b4d57600080fd5b612b598b838c016127b5565b975060408a0135915080821115612b6f57600080fd5b612b7b8b838c016127b5565b9650612b8960608b016126d3565b9550612b9760808b01612ac8565b9450612ba560a08b01612ae4565b935060c08a0135915080821115612bbb57600080fd5b50612bc88a828b016127b5565b91505092959891949750929550565b61018081526000612bec61018083018f6128b5565b8d602084015273ffffffffffffffffffffffffffffffffffffffff8d1660408401528281036060840152612c20818d6128b5565b90508a608084015282810360a0840152612c3a818b6128b5565b905082810360c0840152612c4e818a6128b5565b90508760e0840152612c7961010084018873ffffffffffffffffffffffffffffffffffffffff169052565b6bffffffffffffffffffffffff861661012084015263ffffffff8516610140840152828103610160840152612cae81856128b5565b9f9e505050505050505050505050505050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b82811015612d36577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452612d248583516128b5565b94509285019290850190600101612cea565b5092979650505050505050565b600067ffffffffffffffff821115612d5d57612d5d612737565b5060051b60200190565b600082601f830112612d7857600080fd5b81356020612d8d612d8883612d43565b612766565b82815260059290921b84018101918181019086841115612dac57600080fd5b8286015b84811015612dec57803567ffffffffffffffff811115612dd05760008081fd5b612dde8986838b01016127b5565b845250918301918301612db0565b509695505050505050565b600082601f830112612e0857600080fd5b81356020612e18612d8883612d43565b8083825260208201915060208460051b870101935086841115612e3a57600080fd5b602086015b84811015612dec57612e50816126d3565b8352918301918301612e3f565b600082601f830112612e6e57600080fd5b81356020612e7e612d8883612d43565b8083825260208201915060208460051b870101935086841115612ea057600080fd5b602086015b84811015612dec57612eb681612ac8565b8352918301918301612ea5565b600082601f830112612ed457600080fd5b81356020612ee4612d8883612d43565b8083825260208201915060208460051b870101935086841115612f0657600080fd5b602086015b84811015612dec57612f1c81612ae4565b8352918301918301612f0b565b600080600080600080600060e0888a031215612f4457600080fd5b873567ffffffffffffffff80821115612f5c57600080fd5b612f688b838c01612d67565b985060208a0135915080821115612f7e57600080fd5b612f8a8b838c01612d67565b975060408a0135915080821115612fa057600080fd5b612fac8b838c01612d67565b965060608a0135915080821115612fc257600080fd5b612fce8b838c01612df7565b955060808a0135915080821115612fe457600080fd5b612ff08b838c01612e5d565b945060a08a013591508082111561300657600080fd5b6130128b838c01612ec3565b935060c08a013591508082111561302857600080fd5b50612bc88a828b01612d67565b60208152600061271760208301846128b5565b80151581146104a857600080fd5b6000806040838503121561306957600080fd5b823567ffffffffffffffff81111561308057600080fd5b61308c858286016127b5565b925050602083013561309d81613048565b809150509250929050565b600181811c908216806130bc57607f821691505b6020821081036130f5577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f821115613147576000816000526020600020601f850160051c810160208610156131245750805b601f850160051c820191505b8181101561314357828155600101613130565b5050505b505050565b815167ffffffffffffffff81111561316657613166612737565b61317a8161317484546130a8565b846130fb565b602080601f8311600181146131cd57600084156131975750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555613143565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561321a578886015182559484019460019091019084016131fb565b508582101561325657878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b60008251613278818460208701612891565b9190910192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff83168152604060208201526000612ac060408301846128b5565b6000602082840312156132f257600080fd5b815161271781613048565b600073ffffffffffffffffffffffffffffffffffffffff80861683528085166020840152506060604083015261333660608301846128b5565b95945050505050565b600080835461334d816130a8565b60018281168015613365576001811461337a576133a9565b60ff19841687528215158302870194506133a9565b8760005260208060002060005b858110156133a05781548a820152908401908201613387565b50505082870194505b50929695505050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361340d577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b5060010190565b60c08152600061342760c08301896128b5565b828103602084015261343981896128b5565b9050828103604084015261344d81886128b5565b905085606084015273ffffffffffffffffffffffffffffffffffffffff8516608084015282810360a084015261348381856128b5565b999850505050505050505056fea2646970667358221220ab3c73c9545274b34c177b50f087e9e09e75c42db31fdae89acc635fe89583a864736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1AE JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x986576FA GT PUSH2 0xEE JUMPI DUP1 PUSH4 0xC6B8AB42 GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xEC1930B0 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xEC1930B0 EQ PUSH2 0x44B JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x45E JUMPI DUP1 PUSH4 0xF660FE69 EQ PUSH2 0x471 JUMPI DUP1 PUSH4 0xFA7229EE EQ PUSH2 0x484 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xC6B8AB42 EQ PUSH2 0x3FA JUMPI DUP1 PUSH4 0xCBD57967 EQ PUSH2 0x41A JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x42D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xC030CE7B GT PUSH2 0xC8 JUMPI DUP1 PUSH4 0xC030CE7B EQ PUSH2 0x3BF JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x3D4 JUMPI DUP1 PUSH4 0xC4E1A280 EQ PUSH2 0x3E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x986576FA EQ PUSH2 0x34B JUMPI DUP1 PUSH4 0xB39B55BE EQ PUSH2 0x376 JUMPI DUP1 PUSH4 0xB4A0BDF3 EQ PUSH2 0x3A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x592D3733 GT PUSH2 0x15B JUMPI DUP1 PUSH4 0x77ABC9BD GT PUSH2 0x135 JUMPI DUP1 PUSH4 0x77ABC9BD EQ PUSH2 0x2DE JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x2F1 JUMPI DUP1 PUSH4 0x87D7F21F EQ PUSH2 0x2F9 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x30C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x592D3733 EQ PUSH2 0x2AB JUMPI DUP1 PUSH4 0x6F324967 EQ PUSH2 0x2B3 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x2D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x34496B5A GT PUSH2 0x18C JUMPI DUP1 PUSH4 0x34496B5A EQ PUSH2 0x217 JUMPI DUP1 PUSH4 0x37759B9A EQ PUSH2 0x260 JUMPI DUP1 PUSH4 0x43B62B26 EQ PUSH2 0x280 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xE32CB86 EQ PUSH2 0x1B3 JUMPI DUP1 PUSH4 0x157B1225 EQ PUSH2 0x1C8 JUMPI DUP1 PUSH4 0x1687FE8E EQ PUSH2 0x200 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C6 PUSH2 0x1C1 CALLDATASIZE PUSH1 0x4 PUSH2 0x26FC JUMP JUMPDEST PUSH2 0x497 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1EB PUSH2 0x1D6 CALLDATASIZE PUSH1 0x4 PUSH2 0x271E JUMP JUMPDEST PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x209 PUSH1 0xC9 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1F7 JUMP JUMPDEST PUSH2 0x209 PUSH2 0x225 CALLDATASIZE PUSH1 0x4 PUSH2 0x2843 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCE DUP4 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP4 SWAP1 SWAP4 AND DUP3 MSTORE SWAP2 SWAP1 SWAP3 MSTORE SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x273 PUSH2 0x26E CALLDATASIZE PUSH1 0x4 PUSH2 0x271E JUMP JUMPDEST PUSH2 0x4AB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F7 SWAP2 SWAP1 PUSH2 0x28FF JUMP JUMPDEST PUSH2 0x209 PUSH2 0x28E CALLDATASIZE PUSH1 0x4 PUSH2 0x2A68 JUMP JUMPDEST PUSH1 0xCE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xCA SLOAD PUSH2 0x209 JUMP JUMPDEST PUSH2 0x1EB PUSH2 0x2C1 CALLDATASIZE PUSH1 0x4 PUSH2 0x26FC JUMP JUMPDEST PUSH1 0xCD PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x1C6 PUSH2 0x933 JUMP JUMPDEST PUSH2 0x1C6 PUSH2 0x2EC CALLDATASIZE PUSH1 0x4 PUSH2 0x2A8B JUMP JUMPDEST PUSH2 0x965 JUMP JUMPDEST PUSH2 0x1C6 PUSH2 0xAC7 JUMP JUMPDEST PUSH2 0x1C6 PUSH2 0x307 CALLDATASIZE PUSH1 0x4 PUSH2 0x2AF8 JUMP JUMPDEST PUSH2 0xB7E JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1F7 JUMP JUMPDEST PUSH2 0x1EB PUSH2 0x359 CALLDATASIZE PUSH1 0x4 PUSH2 0x2A8B JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCB SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x389 PUSH2 0x384 CALLDATASIZE PUSH1 0x4 PUSH2 0x271E JUMP JUMPDEST PUSH2 0xBDF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F7 SWAP13 SWAP12 SWAP11 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2BD7 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x326 JUMP JUMPDEST PUSH2 0x3C7 PUSH2 0xF3D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F7 SWAP2 SWAP1 PUSH2 0x2CC1 JUMP JUMPDEST PUSH2 0x1C6 PUSH2 0x3E2 CALLDATASIZE PUSH1 0x4 PUSH2 0x26FC JUMP JUMPDEST PUSH2 0x1016 JUMP JUMPDEST PUSH2 0x1C6 PUSH2 0x3F5 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F29 JUMP JUMPDEST PUSH2 0x118D JUMP JUMPDEST PUSH2 0x40D PUSH2 0x408 CALLDATASIZE PUSH1 0x4 PUSH2 0x271E JUMP JUMPDEST PUSH2 0x1335 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F7 SWAP2 SWAP1 PUSH2 0x3035 JUMP JUMPDEST PUSH2 0x1C6 PUSH2 0x428 CALLDATASIZE PUSH1 0x4 PUSH2 0x26FC JUMP JUMPDEST PUSH2 0x13E1 JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x326 JUMP JUMPDEST PUSH2 0x1C6 PUSH2 0x459 CALLDATASIZE PUSH1 0x4 PUSH2 0x3056 JUMP JUMPDEST PUSH2 0x14D4 JUMP JUMPDEST PUSH2 0x1C6 PUSH2 0x46C CALLDATASIZE PUSH1 0x4 PUSH2 0x26FC JUMP JUMPDEST PUSH2 0x1618 JUMP JUMPDEST PUSH2 0x273 PUSH2 0x47F CALLDATASIZE PUSH1 0x4 PUSH2 0x2843 JUMP JUMPDEST PUSH2 0x16C8 JUMP JUMPDEST PUSH2 0x1C6 PUSH2 0x492 CALLDATASIZE PUSH1 0x4 PUSH2 0x26FC JUMP JUMPDEST PUSH2 0x1B82 JUMP JUMPDEST PUSH2 0x49F PUSH2 0x1C82 JUMP JUMPDEST PUSH2 0x4A8 DUP2 PUSH2 0x1D05 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x552 PUSH1 0x40 MLOAD DUP1 PUSH2 0x180 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP2 ISZERO DUP1 PUSH2 0x560 JUMPI POP PUSH1 0xC9 SLOAD DUP3 GT JUMPDEST ISZERO PUSH2 0x597 JUMPI PUSH1 0x40 MLOAD PUSH32 0xAC6C0D0100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xCC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP2 MLOAD PUSH2 0x180 DUP2 ADD SWAP1 SWAP3 MSTORE DUP1 SLOAD DUP3 SWAP1 DUP3 SWAP1 PUSH2 0x5C0 SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x5EC SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x639 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x60E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x639 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x61C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x2 DUP3 ADD SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH1 0x60 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x680 SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x6AC SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x6F9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x6CE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x6F9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x6DC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD DUP1 SLOAD PUSH2 0x71C SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x748 SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x795 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x76A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x795 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x778 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD DUP1 SLOAD PUSH2 0x7AE SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x7DA SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x827 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x7FC JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x827 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x80A JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x7 DUP3 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x8 DUP3 ADD SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x40 DUP4 ADD MSTORE PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x9 DUP3 ADD SLOAD PUSH4 0xFFFFFFFF AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA DUP3 ADD DUP1 SLOAD PUSH1 0xA0 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x8AA SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x8D6 SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x923 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x8F8 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x923 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x906 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x96C553EB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x9A3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x15 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x6164645570646174655479706528737472696E67290000000000000000000000 DUP2 MSTORE POP PUSH2 0x1E27 JUMP JUMPDEST DUP1 MLOAD ISZERO DUP1 PUSH2 0x9B2 JUMPI POP PUSH1 0x40 DUP2 MLOAD GT JUMPDEST ISZERO PUSH2 0x9E9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x920AF76C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP3 ADD KECCAK256 PUSH2 0x9F9 DUP2 PUSH2 0x1F00 JUMP JUMPDEST ISZERO PUSH2 0xA30 JUMPI PUSH1 0x40 MLOAD PUSH32 0x40DF35CA00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0xCA DUP1 SLOAD SWAP2 DUP3 ADD DUP2 SSTORE SWAP1 SWAP2 MSTORE PUSH32 0x42D72674974F694B5F5159593243114D38A5C39C89D6B62FEE061FF523240EE1 ADD PUSH2 0xA84 DUP4 DUP3 PUSH2 0x314C JUMP JUMPDEST POP DUP2 PUSH1 0x40 MLOAD PUSH2 0xA93 SWAP2 SWAP1 PUSH2 0x3266 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 SWAP1 PUSH32 0x7D686AF6E6B7A2E3D03F5C81F05BBA6A5B3686ACA218F92F96B84C7D59AABAF SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x65 SLOAD CALLER SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 EQ PUSH2 0xB75 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C6532537465703A2063616C6C6572206973206E6F742074686520 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E6577206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4A8 DUP2 PUSH2 0x1F64 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xBC7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x79D1E58F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBD6 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x1F95 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xCC PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP2 SWAP1 PUSH2 0xBFA SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xC26 SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xC73 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xC48 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xC73 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xC56 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP PUSH1 0x1 DUP4 ADD SLOAD PUSH1 0x2 DUP5 ADD SLOAD PUSH1 0x3 DUP6 ADD DUP1 SLOAD SWAP5 SWAP6 SWAP3 SWAP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP4 POP SWAP1 PUSH2 0xCAF SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xCDB SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xD28 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xCFD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xD28 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xD0B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x4 ADD SLOAD SWAP1 DUP1 PUSH1 0x5 ADD DUP1 SLOAD PUSH2 0xD43 SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xD6F SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xDBC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xD91 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xDBC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xD9F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x6 ADD DUP1 SLOAD PUSH2 0xDD1 SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xDFD SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xE4A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xE1F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xE4A JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xE2D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP PUSH1 0x7 DUP4 ADD SLOAD PUSH1 0x8 DUP5 ADD SLOAD PUSH1 0x9 DUP6 ADD SLOAD PUSH1 0xA DUP7 ADD DUP1 SLOAD SWAP6 SWAP7 SWAP4 SWAP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND SWAP6 POP PUSH21 0x10000000000000000000000000000000000000000 SWAP1 SWAP4 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP4 PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND SWAP3 PUSH2 0xEBA SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xEE6 SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xF33 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xF08 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xF33 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xF16 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP13 JUMP JUMPDEST PUSH1 0x60 PUSH1 0xCA DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 SWAP1 JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0x100D JUMPI DUP4 DUP3 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP1 SLOAD PUSH2 0xF80 SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xFAC SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xFF9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xFCE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xFF9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xFDC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0xF61 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x1036 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x1050 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1050 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x10DC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x647920696E697469616C697A6564000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xB6C JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x111C JUMPI PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1125 DUP3 PUSH2 0x2391 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1189 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x11D6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x79D1E58F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP7 MLOAD DUP1 ISZERO DUP1 PUSH2 0x11E6 JUMPI POP DUP7 MLOAD DUP2 EQ ISZERO JUMPDEST DUP1 PUSH2 0x11F2 JUMPI POP DUP6 MLOAD DUP2 EQ ISZERO JUMPDEST DUP1 PUSH2 0x11FE JUMPI POP DUP5 MLOAD DUP2 EQ ISZERO JUMPDEST DUP1 PUSH2 0x120A JUMPI POP DUP4 MLOAD DUP2 EQ ISZERO JUMPDEST DUP1 PUSH2 0x1216 JUMPI POP DUP3 MLOAD DUP2 EQ ISZERO JUMPDEST DUP1 PUSH2 0x1222 JUMPI POP DUP2 MLOAD DUP2 EQ ISZERO JUMPDEST ISZERO PUSH2 0x1259 JUMPI PUSH1 0x40 MLOAD PUSH32 0xA24A13A600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x132A JUMPI PUSH2 0x1322 DUP10 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1279 JUMPI PUSH2 0x1279 PUSH2 0x3282 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP10 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1293 JUMPI PUSH2 0x1293 PUSH2 0x3282 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP10 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x12AD JUMPI PUSH2 0x12AD PUSH2 0x3282 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP10 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x12C7 JUMPI PUSH2 0x12C7 PUSH2 0x3282 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP10 DUP7 DUP2 MLOAD DUP2 LT PUSH2 0x12E1 JUMPI PUSH2 0x12E1 PUSH2 0x3282 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP10 DUP8 DUP2 MLOAD DUP2 LT PUSH2 0x12FB JUMPI PUSH2 0x12FB PUSH2 0x3282 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP10 DUP9 DUP2 MLOAD DUP2 LT PUSH2 0x1315 JUMPI PUSH2 0x1315 PUSH2 0x3282 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x1F95 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x125C JUMP JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xCA DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x1345 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 SLOAD PUSH2 0x1360 SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x138C SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x13D9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x13AE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x13D9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x13BC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0x141F PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1F DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x72656D6F7665417574686F72697A656453656E64657228616464726573732900 DUP2 MSTORE POP PUSH2 0x1E27 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x147E JUMPI PUSH1 0x40 MLOAD PUSH32 0x79D1E58F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xCD PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD PUSH32 0x98F9958A855D78EAE670154A7D047D26968849962C3204C2B12C2228634F4FF8 SWAP2 SWAP1 LOG2 POP JUMP JUMPDEST PUSH2 0x1512 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x7365745570646174655479706541637469766528737472696E672C626F6F6C29 DUP2 MSTORE POP PUSH2 0x1E27 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x20 DUP4 ADD KECCAK256 PUSH2 0x1522 DUP2 PUSH2 0x1F00 JUMP JUMPDEST PUSH2 0x1558 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6EBB186D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP3 ISZERO ISZERO DUP2 ISZERO ISZERO SUB PUSH2 0x15A7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6EBBA15200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP6 ISZERO ISZERO OR SWAP1 SSTORE MLOAD PUSH2 0x15CF SWAP1 DUP6 SWAP1 PUSH2 0x3266 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 DUP4 ISZERO ISZERO DUP4 MSTORE DUP6 ISZERO ISZERO PUSH1 0x20 DUP5 ADD MSTORE SWAP2 PUSH32 0x33843B38D9DEFFBE0817AEBCD9E744876DBF296FB42CABACA9B24160AB70811E SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH2 0x1620 PUSH2 0x1C82 JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP1 SWAP2 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0x1683 PUSH1 0x33 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH2 0x176F PUSH1 0x40 MLOAD DUP1 PUSH2 0x180 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP3 MLOAD PUSH1 0x20 DUP1 DUP6 ADD SWAP2 SWAP1 SWAP2 KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xCE DUP4 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND DUP4 MSTORE SWAP1 SWAP4 MSTORE SWAP2 DUP3 KECCAK256 SLOAD SWAP1 SWAP2 DUP2 SWAP1 SUB PUSH2 0x17E3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x1CA36FE200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xCC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP2 MLOAD PUSH2 0x180 DUP2 ADD SWAP1 SWAP3 MSTORE DUP1 SLOAD DUP3 SWAP1 DUP3 SWAP1 PUSH2 0x180C SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1838 SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1885 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x185A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1885 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1868 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x2 DUP3 ADD SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH1 0x60 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x18CC SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x18F8 SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1945 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x191A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1945 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1928 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD DUP1 SLOAD PUSH2 0x1968 SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1994 SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x19E1 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x19B6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x19E1 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x19C4 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD DUP1 SLOAD PUSH2 0x19FA SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1A26 SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1A73 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1A48 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1A73 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1A56 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x7 DUP3 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x8 DUP3 ADD SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x40 DUP4 ADD MSTORE PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x9 DUP3 ADD SLOAD PUSH4 0xFFFFFFFF AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA DUP3 ADD DUP1 SLOAD PUSH1 0xA0 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x1AF6 SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1B22 SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1B6F JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1B44 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1B6F JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1B52 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1BC0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1C DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x616464417574686F72697A656453656E64657228616464726573732900000000 DUP2 MSTORE POP PUSH2 0x1E27 JUMP JUMPDEST PUSH2 0x1BC9 DUP2 PUSH2 0x2439 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x1C29 JUMPI PUSH1 0x40 MLOAD PUSH32 0x16FC747100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xCD PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE MLOAD PUSH32 0xD06D2241A59677D082959F22E5A5212C57A9E890949A9D0F2426EFD49F8C5D7F SWAP2 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x1D03 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xB6C JUMP JUMPDEST JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x1DA8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C696420616365737320636F6E74726F6C206D616E61676572206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xB6C JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 SWAP1 SWAP3 AND DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH32 0x66FD58E82F7B31A2A5C30E0888F3093EFE4E111B00CD2B0C31FE014601293AA0 SWAP2 ADD PUSH2 0x1180 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0x40 MLOAD PUSH32 0x18C5E8AB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x1E80 SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x32B1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E9D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1EC1 SWAP2 SWAP1 PUSH2 0x32E0 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x1189 JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH32 0x4A3FA29300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB6C SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x32FD JUMP JUMPDEST PUSH1 0xCA SLOAD PUSH1 0x0 SWAP1 DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1F5A JUMPI DUP4 PUSH1 0xCA DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1F24 JUMPI PUSH2 0x1F24 PUSH2 0x3282 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x40 MLOAD PUSH2 0x1F3B SWAP2 SWAP1 PUSH2 0x333F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SUB PUSH2 0x1F52 JUMPI POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x1F08 JUMP JUMPDEST POP PUSH1 0x0 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND SWAP1 SSTORE PUSH2 0x4A8 DUP2 PUSH2 0x2486 JUMP JUMPDEST PUSH2 0x1F9E DUP5 PUSH2 0x2439 JUMP JUMPDEST DUP5 MLOAD PUSH1 0x20 DUP1 DUP8 ADD SWAP2 SWAP1 SWAP2 KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xCB SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1FF2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x686D1D3800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xC9 PUSH1 0x0 DUP2 SLOAD PUSH2 0x2003 SWAP1 PUSH2 0x33B5 JUMP JUMPDEST SWAP2 DUP3 SWAP1 SSTORE POP PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xCE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP12 AND DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SLOAD DUP1 DUP5 MSTORE PUSH1 0xCC SWAP1 SWAP3 MSTORE DUP3 KECCAK256 PUSH1 0x5 ADD DUP1 SLOAD SWAP4 SWAP5 POP SWAP1 SWAP3 PUSH2 0x2055 SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2081 SWAP1 PUSH2 0x30A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x20CE JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x20A3 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x20CE JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x20B1 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH2 0x180 ADD PUSH1 0x40 MSTORE DUP1 DUP14 DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP12 DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP13 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD TIMESTAMP DUP2 MSTORE PUSH1 0x20 ADD CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP10 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP8 DUP2 MSTORE POP SWAP1 POP DUP1 PUSH1 0xCC PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SWAP1 DUP2 PUSH2 0x2194 SWAP2 SWAP1 PUSH2 0x314C JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x1 DUP3 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x2 DUP3 ADD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x60 DUP3 ADD MLOAD PUSH1 0x3 DUP3 ADD SWAP1 PUSH2 0x21FE SWAP1 DUP3 PUSH2 0x314C JUMP JUMPDEST POP PUSH1 0x80 DUP3 ADD MLOAD PUSH1 0x4 DUP3 ADD SSTORE PUSH1 0xA0 DUP3 ADD MLOAD PUSH1 0x5 DUP3 ADD SWAP1 PUSH2 0x221D SWAP1 DUP3 PUSH2 0x314C JUMP JUMPDEST POP PUSH1 0xC0 DUP3 ADD MLOAD PUSH1 0x6 DUP3 ADD SWAP1 PUSH2 0x2232 SWAP1 DUP3 PUSH2 0x314C JUMP JUMPDEST POP PUSH1 0xE0 DUP3 ADD MLOAD PUSH1 0x7 DUP3 ADD SSTORE PUSH2 0x100 DUP3 ADD MLOAD PUSH2 0x120 DUP4 ADD MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND OR PUSH1 0x8 DUP3 ADD SSTORE PUSH2 0x140 DUP3 ADD MLOAD PUSH1 0x9 DUP3 ADD DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x160 DUP3 ADD MLOAD PUSH1 0xA DUP3 ADD SWAP1 PUSH2 0x22DF SWAP1 DUP3 PUSH2 0x314C JUMP JUMPDEST POP POP POP PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0xCE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP14 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 DUP2 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE MLOAD PUSH2 0x2322 SWAP1 DUP12 SWAP1 PUSH2 0x3266 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH32 0xFC790D5CE2687EA5B75F51B2FFF6D34792504386D9C73160BB6BDC6EA25F5B69 DUP16 DUP16 DUP8 TIMESTAMP CALLER DUP15 PUSH1 0x40 MLOAD PUSH2 0x237B SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3414 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2428 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xB6C JUMP JUMPDEST PUSH2 0x2430 PUSH2 0x24FD JUMP JUMPDEST PUSH2 0x4A8 DUP2 PUSH2 0x259C JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x4A8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8579BEFE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2594 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xB6C JUMP JUMPDEST PUSH2 0x1D03 PUSH2 0x2633 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x49F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xB6C JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x26CA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xB6C JUMP JUMPDEST PUSH2 0x1D03 CALLER PUSH2 0x1F64 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x26F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x270E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2717 DUP3 PUSH2 0x26D3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2730 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x27AD JUMPI PUSH2 0x27AD PUSH2 0x2737 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x27C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x27E0 JUMPI PUSH2 0x27E0 PUSH2 0x2737 JUMP JUMPDEST PUSH2 0x2811 PUSH1 0x20 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 PUSH1 0x1F DUP5 ADD AND ADD PUSH2 0x2766 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x2826 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2856 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x286D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2879 DUP6 DUP3 DUP7 ADD PUSH2 0x27B5 JUMP JUMPDEST SWAP3 POP POP PUSH2 0x2888 PUSH1 0x20 DUP5 ADD PUSH2 0x26D3 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x28AC JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2894 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x28CD DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x2891 JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD PUSH2 0x180 DUP1 PUSH1 0x20 DUP6 ADD MSTORE PUSH2 0x291E PUSH2 0x1A0 DUP6 ADD DUP4 PUSH2 0x28B5 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP6 ADD MLOAD PUSH1 0x40 DUP6 ADD MSTORE PUSH1 0x40 DUP6 ADD MLOAD PUSH2 0x2951 PUSH1 0x60 DUP7 ADD DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH1 0x60 DUP6 ADD MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP1 DUP7 DUP6 SUB ADD PUSH1 0x80 DUP8 ADD MSTORE PUSH2 0x298C DUP5 DUP4 PUSH2 0x28B5 JUMP JUMPDEST SWAP4 POP PUSH1 0x80 DUP8 ADD MLOAD PUSH1 0xA0 DUP8 ADD MSTORE PUSH1 0xA0 DUP8 ADD MLOAD SWAP2 POP DUP1 DUP7 DUP6 SUB ADD PUSH1 0xC0 DUP8 ADD MSTORE PUSH2 0x29B3 DUP5 DUP4 PUSH2 0x28B5 JUMP JUMPDEST SWAP4 POP PUSH1 0xC0 DUP8 ADD MLOAD SWAP2 POP DUP1 DUP7 DUP6 SUB ADD PUSH1 0xE0 DUP8 ADD MSTORE PUSH2 0x29D0 DUP5 DUP4 PUSH2 0x28B5 JUMP JUMPDEST PUSH1 0xE0 DUP9 ADD MLOAD PUSH2 0x100 DUP9 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP9 ADD MLOAD SWAP1 SWAP5 POP SWAP2 POP PUSH2 0x120 PUSH2 0x2A0B DUP2 DUP9 ADD DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 MSTORE JUMP JUMPDEST DUP8 ADD MLOAD SWAP2 POP PUSH2 0x140 PUSH2 0x2A2C DUP8 DUP3 ADD DUP5 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 MSTORE JUMP JUMPDEST DUP8 ADD MLOAD SWAP2 POP PUSH2 0x160 PUSH2 0x2A45 DUP8 DUP3 ADD DUP5 PUSH4 0xFFFFFFFF AND SWAP1 MSTORE JUMP JUMPDEST DUP8 ADD MLOAD DUP7 DUP6 SUB SWAP1 SWAP2 ADD DUP4 DUP8 ADD MSTORE SWAP1 POP PUSH2 0x2A5E DUP4 DUP3 PUSH2 0x28B5 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2A7B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x2888 PUSH1 0x20 DUP5 ADD PUSH2 0x26D3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A9D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2AB4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2AC0 DUP5 DUP3 DUP6 ADD PUSH2 0x27B5 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x26F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x26F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x2B13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2B2B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2B37 DUP12 DUP4 DUP13 ADD PUSH2 0x27B5 JUMP JUMPDEST SWAP9 POP PUSH1 0x20 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2B4D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2B59 DUP12 DUP4 DUP13 ADD PUSH2 0x27B5 JUMP JUMPDEST SWAP8 POP PUSH1 0x40 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2B6F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2B7B DUP12 DUP4 DUP13 ADD PUSH2 0x27B5 JUMP JUMPDEST SWAP7 POP PUSH2 0x2B89 PUSH1 0x60 DUP12 ADD PUSH2 0x26D3 JUMP JUMPDEST SWAP6 POP PUSH2 0x2B97 PUSH1 0x80 DUP12 ADD PUSH2 0x2AC8 JUMP JUMPDEST SWAP5 POP PUSH2 0x2BA5 PUSH1 0xA0 DUP12 ADD PUSH2 0x2AE4 JUMP JUMPDEST SWAP4 POP PUSH1 0xC0 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2BBB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BC8 DUP11 DUP3 DUP12 ADD PUSH2 0x27B5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH2 0x180 DUP2 MSTORE PUSH1 0x0 PUSH2 0x2BEC PUSH2 0x180 DUP4 ADD DUP16 PUSH2 0x28B5 JUMP JUMPDEST DUP14 PUSH1 0x20 DUP5 ADD MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP14 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2C20 DUP2 DUP14 PUSH2 0x28B5 JUMP JUMPDEST SWAP1 POP DUP11 PUSH1 0x80 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x2C3A DUP2 DUP12 PUSH2 0x28B5 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0xC0 DUP5 ADD MSTORE PUSH2 0x2C4E DUP2 DUP11 PUSH2 0x28B5 JUMP JUMPDEST SWAP1 POP DUP8 PUSH1 0xE0 DUP5 ADD MSTORE PUSH2 0x2C79 PUSH2 0x100 DUP5 ADD DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 MSTORE JUMP JUMPDEST PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP7 AND PUSH2 0x120 DUP5 ADD MSTORE PUSH4 0xFFFFFFFF DUP6 AND PUSH2 0x140 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH2 0x160 DUP5 ADD MSTORE PUSH2 0x2CAE DUP2 DUP6 PUSH2 0x28B5 JUMP JUMPDEST SWAP16 SWAP15 POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 ADD PUSH1 0x20 DUP5 MSTORE DUP1 DUP6 MLOAD DUP1 DUP4 MSTORE PUSH1 0x40 DUP7 ADD SWAP2 POP PUSH1 0x40 DUP2 PUSH1 0x5 SHL DUP8 ADD ADD SWAP3 POP PUSH1 0x20 DUP8 ADD PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x2D36 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 DUP9 DUP7 SUB ADD DUP5 MSTORE PUSH2 0x2D24 DUP6 DUP4 MLOAD PUSH2 0x28B5 JUMP JUMPDEST SWAP5 POP SWAP3 DUP6 ADD SWAP3 SWAP1 DUP6 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2CEA JUMP JUMPDEST POP SWAP3 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2D5D JUMPI PUSH2 0x2D5D PUSH2 0x2737 JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2D78 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x2D8D PUSH2 0x2D88 DUP4 PUSH2 0x2D43 JUMP JUMPDEST PUSH2 0x2766 JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 SWAP1 SWAP3 SHL DUP5 ADD DUP2 ADD SWAP2 DUP2 DUP2 ADD SWAP1 DUP7 DUP5 GT ISZERO PUSH2 0x2DAC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x2DEC JUMPI DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2DD0 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x2DDE DUP10 DUP7 DUP4 DUP12 ADD ADD PUSH2 0x27B5 JUMP JUMPDEST DUP5 MSTORE POP SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x2DB0 JUMP JUMPDEST POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2E08 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x2E18 PUSH2 0x2D88 DUP4 PUSH2 0x2D43 JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP5 PUSH1 0x5 SHL DUP8 ADD ADD SWAP4 POP DUP7 DUP5 GT ISZERO PUSH2 0x2E3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x2DEC JUMPI PUSH2 0x2E50 DUP2 PUSH2 0x26D3 JUMP JUMPDEST DUP4 MSTORE SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x2E3F JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2E6E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x2E7E PUSH2 0x2D88 DUP4 PUSH2 0x2D43 JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP5 PUSH1 0x5 SHL DUP8 ADD ADD SWAP4 POP DUP7 DUP5 GT ISZERO PUSH2 0x2EA0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x2DEC JUMPI PUSH2 0x2EB6 DUP2 PUSH2 0x2AC8 JUMP JUMPDEST DUP4 MSTORE SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x2EA5 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2ED4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x2EE4 PUSH2 0x2D88 DUP4 PUSH2 0x2D43 JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP5 PUSH1 0x5 SHL DUP8 ADD ADD SWAP4 POP DUP7 DUP5 GT ISZERO PUSH2 0x2F06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x2DEC JUMPI PUSH2 0x2F1C DUP2 PUSH2 0x2AE4 JUMP JUMPDEST DUP4 MSTORE SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x2F0B JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x2F44 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2F5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2F68 DUP12 DUP4 DUP13 ADD PUSH2 0x2D67 JUMP JUMPDEST SWAP9 POP PUSH1 0x20 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2F7E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2F8A DUP12 DUP4 DUP13 ADD PUSH2 0x2D67 JUMP JUMPDEST SWAP8 POP PUSH1 0x40 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2FA0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2FAC DUP12 DUP4 DUP13 ADD PUSH2 0x2D67 JUMP JUMPDEST SWAP7 POP PUSH1 0x60 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2FC2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2FCE DUP12 DUP4 DUP13 ADD PUSH2 0x2DF7 JUMP JUMPDEST SWAP6 POP PUSH1 0x80 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2FE4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2FF0 DUP12 DUP4 DUP13 ADD PUSH2 0x2E5D JUMP JUMPDEST SWAP5 POP PUSH1 0xA0 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x3006 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3012 DUP12 DUP4 DUP13 ADD PUSH2 0x2EC3 JUMP JUMPDEST SWAP4 POP PUSH1 0xC0 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x3028 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BC8 DUP11 DUP3 DUP12 ADD PUSH2 0x2D67 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x2717 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x28B5 JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x4A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3069 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3080 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x308C DUP6 DUP3 DUP7 ADD PUSH2 0x27B5 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x309D DUP2 PUSH2 0x3048 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x30BC JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x30F5 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x3147 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x3124 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x3143 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x3130 JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3166 JUMPI PUSH2 0x3166 PUSH2 0x2737 JUMP JUMPDEST PUSH2 0x317A DUP2 PUSH2 0x3174 DUP5 SLOAD PUSH2 0x30A8 JUMP JUMPDEST DUP5 PUSH2 0x30FB JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x31CD JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x3197 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x3143 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x321A JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x31FB JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x3256 JUMPI DUP8 DUP6 ADD MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x3278 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x2891 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2AC0 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x28B5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x32F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x2717 DUP2 PUSH2 0x3048 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP7 AND DUP4 MSTORE DUP1 DUP6 AND PUSH1 0x20 DUP5 ADD MSTORE POP PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x3336 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x28B5 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 SLOAD PUSH2 0x334D DUP2 PUSH2 0x30A8 JUMP JUMPDEST PUSH1 0x1 DUP3 DUP2 AND DUP1 ISZERO PUSH2 0x3365 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x337A JUMPI PUSH2 0x33A9 JUMP JUMPDEST PUSH1 0xFF NOT DUP5 AND DUP8 MSTORE DUP3 ISZERO ISZERO DUP4 MUL DUP8 ADD SWAP5 POP PUSH2 0x33A9 JUMP JUMPDEST DUP8 PUSH1 0x0 MSTORE PUSH1 0x20 DUP1 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x33A0 JUMPI DUP2 SLOAD DUP11 DUP3 ADD MSTORE SWAP1 DUP5 ADD SWAP1 DUP3 ADD PUSH2 0x3387 JUMP JUMPDEST POP POP POP DUP3 DUP8 ADD SWAP5 POP JUMPDEST POP SWAP3 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x340D JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0xC0 DUP2 MSTORE PUSH1 0x0 PUSH2 0x3427 PUSH1 0xC0 DUP4 ADD DUP10 PUSH2 0x28B5 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x3439 DUP2 DUP10 PUSH2 0x28B5 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x344D DUP2 DUP9 PUSH2 0x28B5 JUMP JUMPDEST SWAP1 POP DUP6 PUSH1 0x60 DUP5 ADD MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x80 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x3483 DUP2 DUP6 PUSH2 0x28B5 JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAB EXTCODECOPY PUSH20 0xC9545274B34C177B50F087E9E09E75C42DB31FDA 0xE8 SWAP11 0xCC PUSH4 0x5FE89583 0xA8 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"456:15504:69:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2103:147:57;;;;;;:::i;:::-;;:::i;:::-;;791:49:69;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;756:14:97;;749:22;731:41;;719:2;704:18;791:49:69;;;;;;;;586:28;;;;;;;;;929:25:97;;;917:2;902:18;586:28:69;783:177:97;14247:276:69;;;;;;:::i;:::-;14419:28;;;;;;;14376:7;14464:44;;;:29;:44;;;;;;:52;;;;;;;;;;;;;;;14247:276;10917:242;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1206:114::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;13834:109;13915:14;:21;13834:109;;1045:49;;;;;;:::i;:::-;;;;;;;;;;;;;;;;15855:103;;;:::i;4672:541::-;;;;;;:::i;:::-;;:::i;2010:206:25:-;;;:::i;7330:379:69:-;;;;;;:::i;:::-;;:::i;1441:85:26:-;1513:6;;;;1441:85;;;7867:42:97;7855:55;;;7837:74;;7825:2;7810:18;1441:85:26;7691:226:97;14734:183:69;;;;;;:::i;:::-;14843:28;;;;;;;14813:4;14888:22;;;:17;:22;;;;;;;;;;14734:183;915:58;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;2346:125:57:-;2443:21;;;;2346:125;;15058:107:69;;;:::i;:::-;;;;;;;:::i;2301:135::-;;;;;;:::i;:::-;;:::i;8793:1036::-;;;;;;:::i;:::-;;:::i;669:30::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;3785:310::-;;;;;;:::i;:::-;;:::i;1123:99:25:-;1202:13;;;;1123:99;;5841:567:69;;;;;;:::i;:::-;;:::i;1415:178:25:-;;;;;;:::i;:::-;;:::i;10235:418:69:-;;;;;;:::i;:::-;;:::i;2982:343::-;;;;;;:::i;:::-;;:::i;2103:147:57:-;1334:13:26;:11;:13::i;:::-;2196:47:57::1;2221:21;2196:24;:47::i;:::-;2103:147:::0;:::o;10917:242:69:-;10981:26;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10981:26:69;11023:13;;;:41;;;11051:13;;11040:8;:24;11023:41;11019:96;;;11087:17;;;;;;;;;;;;;;11019:96;11131:21;;;;:11;:21;;;;;;;11124:28;;;;;;;;;;;;11131:21;;11124:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11124:28:69;;;-1:-1:-1;;11124:28:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11124:28:69;;;-1:-1:-1;;11124:28:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10917:242;;;:::o;15855:103::-;15922:29;;;;;;;;;;;;;;4672:541;4743:44;;;;;;;;;;;;;;;;;;:19;:44::i;:::-;4801:27;;:32;;:68;;;4867:2;4843:13;4837:27;:32;4801:68;4797:131;;;4892:25;;;;;;;;;;;;;;4797:131;4951:31;;;;;;4997:22;4951:31;4997:17;:22::i;:::-;4993:85;;;5042:25;;;;;;;;;;;;;;4993:85;5088:22;;;;:17;:22;;;;;:29;;-1:-1:-1;;5088:29:69;5113:4;5088:29;;;;;;5127:14;:34;;;;;;;;;;;;;5147:13;5127:34;;:::i;:::-;;5192:13;5176:30;;;;;;:::i;:::-;;;;;;;;;;;;;;;4733:480;4672:541;:::o;2010:206:25:-;1202:13;;929:10:29;;2103:24:25;1202:13;2103:24;;2095:78;;;;;;;19503:2:97;2095:78:25;;;19485:21:97;19542:2;19522:18;;;19515:30;19581:34;19561:18;;;19554:62;19652:11;19632:18;;;19625:39;19681:19;;2095:78:25;;;;;;;;;2183:26;2202:6;2183:18;:26::i;7330:379:69:-;1775:10;1757:29;;;;:17;:29;;;;;;;;1752:89;;1809:21;;;;;;;;;;;;;;1752:89;7613::::1;7628:11;7641:8;7651:10;7663:6;7671;7679;7687:14;7613;:89::i;:::-;7330:379:::0;;;;;;;:::o;915:58::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;915:58:69;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;915:58:69;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;915:58:69;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;915:58:69;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;15058:107::-;15110:15;15144:14;15137:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15058:107;:::o;2301:135::-;3268:19:27;3291:13;;;;;;3290:14;;3336:34;;;;-1:-1:-1;3354:12:27;;3369:1;3354:12;;;;:16;3336:34;3335:108;;;-1:-1:-1;3415:4:27;1476:19:28;:23;;;3376:66:27;;-1:-1:-1;3425:12:27;;;;;:17;3376:66;3314:201;;;;;;;19913:2:97;3314:201:27;;;19895:21:97;19952:2;19932:18;;;19925:30;19991:34;19971:18;;;19964:62;20062:16;20042:18;;;20035:44;20096:19;;3314:201:27;19711:410:97;3314:201:27;3525:12;:16;;-1:-1:-1;;3525:16:27;3540:1;3525:16;;;3551:65;;;;3585:13;:20;;;;;;;;3551:65;2383:46:69::1;2407:21;2383:23;:46::i;:::-;3640:14:27::0;3636:99;;;3686:5;3670:21;;;;;;3710:14;;-1:-1:-1;20278:36:97;;3710:14:27;;20266:2:97;20251:18;3710:14:27;;;;;;;;3636:99;3258:483;2301:135:69;:::o;8793:1036::-;1775:10;1757:29;;;;:17;:29;;;;;;;;1752:89;;1809:21;;;;;;;;;;;;;;1752:89;9138:19;;9184:11;;;:53:::1;;;9221:9;:16;9211:6;:26;;9184:53;:97;;;;9263:11;:18;9253:6;:28;;9184:97;:137;;;;9307:7;:14;9297:6;:24;;9184:137;:177;;;;9347:7;:14;9337:6;:24;;9184:177;:216;;;;9387:6;:13;9377:6;:23;;9184:216;:263;;;;9426:14;:21;9416:6;:31;;9184:263;9167:344;;;9479:21;;;;;;;;;;;;;;9167:344;9525:9;9520:303;9544:6;9540:1;:10;9520:303;;;9571:241;9603:12;9616:1;9603:15;;;;;;;;:::i;:::-;;;;;;;9636:9;9646:1;9636:12;;;;;;;;:::i;:::-;;;;;;;9666:11;9678:1;9666:14;;;;;;;;:::i;:::-;;;;;;;9698:7;9706:1;9698:10;;;;;;;;:::i;:::-;;;;;;;9726:7;9734:1;9726:10;;;;;;;;:::i;:::-;;;;;;;9754:6;9761:1;9754:9;;;;;;;;:::i;:::-;;;;;;;9781:14;9796:1;9781:17;;;;;;;;:::i;:::-;;;;;;;9571:14;:241::i;:::-;9552:3;;9520:303;;;;9111:718;8793:1036:::0;;;;;;;:::o;669:30::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3785:310::-;3852:54;;;;;;;;;;;;;;;;;;:19;:54::i;:::-;3921:25;;;;;;;:17;:25;;;;;;;;3916:85;;3969:21;;;;;;;;;;;;;;3916:85;4017:25;;;;;;;:17;:25;;;;;;4010:32;;-1:-1:-1;;4010:32:69;;;4057:31;;;4017:25;4057:31;3785:310;:::o;5841:567::-;5928:55;;;;;;;;;;;;;;;;;;:19;:55::i;:::-;6007:28;;;;;;6051:22;6007:28;6051:17;:22::i;:::-;6046:81;;6096:20;;;;;;;;;;;;;;6046:81;6137:19;6159:22;;;:17;:22;;;;;;;;6195:24;;;;;;;6191:89;;6242:27;;;;;;;;;;;;;;6191:89;6290:22;;;;:17;:22;;;;;;;:31;;-1:-1:-1;;6290:31:69;;;;;;;6336:65;;;6366:10;;6336:65;:::i;:::-;;;;;;;;;;20701:14:97;;20694:22;20676:41;;20760:14;;20753:22;20748:2;20733:18;;20726:50;6336:65:69;;;20649:18:97;6336:65:69;;;;;;;5918:490;;5841:567;;:::o;1415:178:25:-;1334:13:26;:11;:13::i;:::-;1504::25::1;:24:::0;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;1568:7:::1;1513:6:26::0;;;;;1441:85;1568:7:25::1;1543:43;;;;;;;;;;;;1415:178:::0;:::o;10235:418:69:-;10362:26;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10362:26:69;10424:28;;;;;;;;;;10400:21;10481:44;;;:29;:44;;;;;;:52;;;;;;;;;;;;10424:28;;10547:13;;;10543:66;;10583:15;;;;;;;;;;;;;;10543:66;10625:21;;;;:11;:21;;;;;;;10618:28;;;;;;;;;;;;10625:21;;10618:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;10618:28:69;;;-1:-1:-1;;10618:28:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;10618:28:69;;;-1:-1:-1;;10618:28:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10235:418;;;;:::o;2982:343::-;3046:51;;;;;;;;;;;;;;;;;;:19;:51::i;:::-;3107:28;3128:6;3107:20;:28::i;:::-;3149:25;;;;;;;:17;:25;;;;;;;;3145:88;;;3197:25;;;;;;;;;;;;;;3145:88;3242:25;;;;;;;:17;:25;;;;;;:32;;-1:-1:-1;;3242:32:69;3270:4;3242:32;;;3289:29;;;3242:25;3289:29;2982:343;:::o;1599:130:26:-;1513:6;;1662:23;1513:6;929:10:29;1662:23:26;1654:68;;;;;;;20989:2:97;1654:68:26;;;20971:21:97;;;21008:18;;;21001:30;21067:34;21047:18;;;21040:62;21119:18;;1654:68:26;20787:356:97;1654:68:26;1599:130::o;2642:425:57:-;2734:44;;;2726:94;;;;;;;21350:2:97;2726:94:57;;;21332:21:97;21389:2;21369:18;;;21362:30;21428:34;21408:18;;;21401:62;21499:7;21479:18;;;21472:35;21524:19;;2726:94:57;21148:401:97;2726:94:57;2872:21;;;;2904:70;;;;;;;;;;;2989:71;;;2872:21;;;;21789:34:97;;;21854:2;21839:18;;21832:43;;;;2989:71:57;;21701:18:97;2989:71:57;21554:327:97;3204:282:57;3305:21;;:60;;;;;3282:20;;3305:21;;;:37;;:60;;3343:10;;3355:9;;3305:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3282:83;;3381:15;3376:104;;3432:10;3452:4;3459:9;3419:50;;;;;;;;;;;;;:::i;15398:328:69:-;15504:14;:21;15471:4;;;15535:163;15559:6;15555:1;:10;15535:163;;;15629:13;15606:14;15621:1;15606:17;;;;;;;;:::i;:::-;;;;;;;;15590:35;;;;;;:::i;:::-;;;;;;;;:52;15586:102;;-1:-1:-1;15669:4:69;;15398:328;-1:-1:-1;;;15398:328:69:o;15586:102::-;15567:3;;15535:163;;;-1:-1:-1;15714:5:69;;15398:328;-1:-1:-1;;;15398:328:69:o;1777:153:25:-;1866:13;1859:20;;;;;;1889:34;1914:8;1889:24;:34::i;12006:1668:69:-;12262:28;12283:6;12262:20;:28::i;:::-;12324;;;;;;;;;;12300:21;12367:32;;;:17;:32;;;;;;;;;;12362:92;;12422:21;;;;;;;;;;;;;;12362:92;12463:24;12492:13;;12490:15;;;;;:::i;:::-;;;;;-1:-1:-1;12515:24:69;12542:44;;;:29;:44;;;;;;;;:52;;;;;;;;;;;12633:29;;;:11;:29;;;;;:38;;12604:67;;12490:15;;-1:-1:-1;12542:52:69;;12604:67;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12682:36;12721:467;;;;;;;;12768:11;12721:467;;;;12803:16;12721:467;;;;12841:6;12721:467;;;;;;12873:10;12721:467;;;;12912:13;12721:467;;;;12949:8;12721:467;;;;12986:13;12721:467;;;;13024:15;12721:467;;;;13064:10;12721:467;;;;;;13096:6;12721:467;;;;;;13127:6;12721:467;;;;;;13163:14;12721:467;;;12682:506;;13230:9;13198:11;:29;13210:16;13198:29;;;;;;;;;;;:41;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;13198:41:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;13198:41:69;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;13198:41:69;;;;;;;;;;;;:::i;:::-;-1:-1:-1;13198:41:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;13326:44:69;;;;:29;:44;;;;;;;;:52;;;;;;;;;;;;:71;;;13413:254;;;13517:10;;13413:254;:::i;:::-;;;;;;;;13497:6;13413:254;;13467:16;13413:254;13442:11;13541:8;13563:13;13590:15;13619:10;13643:14;13413:254;;;;;;;;;;;:::i;:::-;;;;;;;;12252:1422;;;;;12006:1668;;;;;;;:::o;1420:194:57:-;5363:13:27;;;;;;;5355:69;;;;;;;26761:2:97;5355:69:27;;;26743:21:97;26800:2;26780:18;;;26773:30;26839:34;26819:18;;;26812:62;26910:13;26890:18;;;26883:41;26941:19;;5355:69:27;26559:407:97;5355:69:27;1520:21:57::1;:19;:21::i;:::-;1551:56;1585:21;1551:33;:56::i;485:136:47:-:0;548:22;;;544:75;;589:23;;;;;;;;;;;;;;2673:187:26;2765:6;;;;2781:17;;;;;;;;;;;2813:40;;2765:6;;;2781:17;2765:6;;2813:40;;2746:16;;2813:40;2736:124;2673:187;:::o;738:100:25:-;5363:13:27;;;;;;;5355:69;;;;;;;26761:2:97;5355:69:27;;;26743:21:97;26800:2;26780:18;;;26773:30;26839:34;26819:18;;;26812:62;26910:13;26890:18;;;26883:41;26941:19;;5355:69:27;26559:407:97;5355:69:27;805:26:25::1;:24;:26::i;1620:164:57:-:0;5363:13:27;;;;;;;5355:69;;;;;;;26761:2:97;5355:69:27;;;26743:21:97;26800:2;26780:18;;;26773:30;26839:34;26819:18;;;26812:62;26910:13;26890:18;;;26883:41;26941:19;;5355:69:27;26559:407:97;1104:111:26;5363:13:27;;;;;;;5355:69;;;;;;;26761:2:97;5355:69:27;;;26743:21:97;26800:2;26780:18;;;26773:30;26839:34;26819:18;;;26812:62;26910:13;26890:18;;;26883:41;26941:19;;5355:69:27;26559:407:97;5355:69:27;1176:32:26::1;929:10:29::0;1176:18:26::1;:32::i;14:196:97:-:0;82:20;;142:42;131:54;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:186::-;274:6;327:2;315:9;306:7;302:23;298:32;295:52;;;343:1;340;333:12;295:52;366:29;385:9;366:29;:::i;:::-;356:39;215:186;-1:-1:-1;;;215:186:97:o;406:180::-;465:6;518:2;506:9;497:7;493:23;489:32;486:52;;;534:1;531;524:12;486:52;-1:-1:-1;557:23:97;;406:180;-1:-1:-1;406:180:97:o;965:184::-;1017:77;1014:1;1007:88;1114:4;1111:1;1104:15;1138:4;1135:1;1128:15;1154:334;1225:2;1219:9;1281:2;1271:13;;1286:66;1267:86;1255:99;;1384:18;1369:34;;1405:22;;;1366:62;1363:88;;;1431:18;;:::i;:::-;1467:2;1460:22;1154:334;;-1:-1:-1;1154:334:97:o;1493:590::-;1536:5;1589:3;1582:4;1574:6;1570:17;1566:27;1556:55;;1607:1;1604;1597:12;1556:55;1643:6;1630:20;1669:18;1665:2;1662:26;1659:52;;;1691:18;;:::i;:::-;1735:114;1843:4;1774:66;1767:4;1763:2;1759:13;1755:86;1751:97;1735:114;:::i;:::-;1874:2;1865:7;1858:19;1920:3;1913:4;1908:2;1900:6;1896:15;1892:26;1889:35;1886:55;;;1937:1;1934;1927:12;1886:55;2002:2;1995:4;1987:6;1983:17;1976:4;1967:7;1963:18;1950:55;2050:1;2025:16;;;2043:4;2021:27;2014:38;;;;2029:7;1493:590;-1:-1:-1;;;1493:590:97:o;2088:396::-;2166:6;2174;2227:2;2215:9;2206:7;2202:23;2198:32;2195:52;;;2243:1;2240;2233:12;2195:52;2283:9;2270:23;2316:18;2308:6;2305:30;2302:50;;;2348:1;2345;2338:12;2302:50;2371;2413:7;2404:6;2393:9;2389:22;2371:50;:::i;:::-;2361:60;;;2440:38;2474:2;2463:9;2459:18;2440:38;:::i;:::-;2430:48;;2088:396;;;;;:::o;2674:250::-;2759:1;2769:113;2783:6;2780:1;2777:13;2769:113;;;2859:11;;;2853:18;2840:11;;;2833:39;2805:2;2798:10;2769:113;;;-1:-1:-1;;2916:1:97;2898:16;;2891:27;2674:250::o;2929:330::-;2971:3;3009:5;3003:12;3036:6;3031:3;3024:19;3052:76;3121:6;3114:4;3109:3;3105:14;3098:4;3091:5;3087:16;3052:76;:::i;:::-;3173:2;3161:15;3178:66;3157:88;3148:98;;;;3248:4;3144:109;;2929:330;-1:-1:-1;;2929:330:97:o;3610:1970::-;3815:2;3804:9;3797:21;3778:4;3853:6;3847:13;3879:6;3921:2;3916;3905:9;3901:18;3894:30;3947:52;3994:3;3983:9;3979:19;3965:12;3947:52;:::i;:::-;3933:66;;4053:2;4045:6;4041:15;4035:22;4030:2;4019:9;4015:18;4008:50;4107:2;4099:6;4095:15;4089:22;4120:54;4170:2;4159:9;4155:18;4139:14;3341:42;3330:54;3318:67;;3264:127;4120:54;;4223:2;4215:6;4211:15;4205:22;4246:66;4377:2;4365:9;4357:6;4353:22;4349:31;4343:3;4332:9;4328:19;4321:60;4404:41;4438:6;4422:14;4404:41;:::i;:::-;4390:55;;4500:3;4492:6;4488:16;4482:23;4476:3;4465:9;4461:19;4454:52;4555:3;4547:6;4543:16;4537:23;4515:45;;4625:2;4613:9;4605:6;4601:22;4597:31;4591:3;4580:9;4576:19;4569:60;4652:41;4686:6;4670:14;4652:41;:::i;:::-;4638:55;;4742:3;4734:6;4730:16;4724:23;4702:45;;4812:2;4800:9;4792:6;4788:22;4784:31;4778:3;4767:9;4763:19;4756:60;4839:41;4873:6;4857:14;4839:41;:::i;:::-;4917:3;4905:16;;4899:23;4941:3;4960:18;;;4953:30;;;;5020:15;;5014:22;4825:55;;-1:-1:-1;5014:22:97;-1:-1:-1;5055:3:97;5067:54;5102:18;;;5014:22;3341:42;3330:54;3318:67;;3264:127;5067:54;5158:15;;5152:22;;-1:-1:-1;5193:3:97;5205:53;5239:18;;;5152:22;3472:26;3461:38;3449:51;;3396:110;5205:53;5295:15;;5289:22;;-1:-1:-1;5330:3:97;5342:53;5376:18;;;5289:22;3587:10;3576:22;3564:35;;3511:94;5342:53;5432:15;;5426:22;5488;;;5484:31;;;5464:18;;;5457:59;5426:22;-1:-1:-1;5533:41:97;5492:6;5426:22;5533:41;:::i;:::-;5525:49;3610:1970;-1:-1:-1;;;;;;3610:1970:97:o;5585:254::-;5653:6;5661;5714:2;5702:9;5693:7;5689:23;5685:32;5682:52;;;5730:1;5727;5720:12;5682:52;5766:9;5753:23;5743:33;;5795:38;5829:2;5818:9;5814:18;5795:38;:::i;5844:322::-;5913:6;5966:2;5954:9;5945:7;5941:23;5937:32;5934:52;;;5982:1;5979;5972:12;5934:52;6022:9;6009:23;6055:18;6047:6;6044:30;6041:50;;;6087:1;6084;6077:12;6041:50;6110;6152:7;6143:6;6132:9;6128:22;6110:50;:::i;:::-;6100:60;5844:322;-1:-1:-1;;;;5844:322:97:o;6171:179::-;6238:20;;6298:26;6287:38;;6277:49;;6267:77;;6340:1;6337;6330:12;6355:163;6422:20;;6482:10;6471:22;;6461:33;;6451:61;;6508:1;6505;6498:12;6523:1163;6672:6;6680;6688;6696;6704;6712;6720;6773:3;6761:9;6752:7;6748:23;6744:33;6741:53;;;6790:1;6787;6780:12;6741:53;6830:9;6817:23;6859:18;6900:2;6892:6;6889:14;6886:34;;;6916:1;6913;6906:12;6886:34;6939:50;6981:7;6972:6;6961:9;6957:22;6939:50;:::i;:::-;6929:60;;7042:2;7031:9;7027:18;7014:32;6998:48;;7071:2;7061:8;7058:16;7055:36;;;7087:1;7084;7077:12;7055:36;7110:52;7154:7;7143:8;7132:9;7128:24;7110:52;:::i;:::-;7100:62;;7215:2;7204:9;7200:18;7187:32;7171:48;;7244:2;7234:8;7231:16;7228:36;;;7260:1;7257;7250:12;7228:36;7283:52;7327:7;7316:8;7305:9;7301:24;7283:52;:::i;:::-;7273:62;;7354:38;7388:2;7377:9;7373:18;7354:38;:::i;:::-;7344:48;;7411:38;7444:3;7433:9;7429:19;7411:38;:::i;:::-;7401:48;;7468:38;7501:3;7490:9;7486:19;7468:38;:::i;:::-;7458:48;;7559:3;7548:9;7544:19;7531:33;7515:49;;7589:2;7579:8;7576:16;7573:36;;;7605:1;7602;7595:12;7573:36;;7628:52;7672:7;7661:8;7650:9;7646:24;7628:52;:::i;:::-;7618:62;;;6523:1163;;;;;;;;;;:::o;7922:1456::-;8451:3;8440:9;8433:22;8414:4;8478:46;8519:3;8508:9;8504:19;8496:6;8478:46;:::i;:::-;8560:6;8555:2;8544:9;8540:18;8533:34;8615:42;8607:6;8603:55;8598:2;8587:9;8583:18;8576:83;8707:9;8699:6;8695:22;8690:2;8679:9;8675:18;8668:50;8741:33;8767:6;8759;8741:33;:::i;:::-;8727:47;;8811:6;8805:3;8794:9;8790:19;8783:35;8867:9;8859:6;8855:22;8849:3;8838:9;8834:19;8827:51;8901:33;8927:6;8919;8901:33;:::i;:::-;8887:47;;8983:9;8975:6;8971:22;8965:3;8954:9;8950:19;8943:51;9017:33;9043:6;9035;9017:33;:::i;:::-;9003:47;;9087:6;9081:3;9070:9;9066:19;9059:35;9103:47;9145:3;9134:9;9130:19;9122:6;3341:42;3330:54;3318:67;;3264:127;9103:47;3472:26;3461:38;;9200:3;9185:19;;3449:51;3587:10;3576:22;;9256:3;9241:19;;3564:35;9310:9;9302:6;9298:22;9292:3;9281:9;9277:19;9270:51;9338:34;9365:6;9356:7;9338:34;:::i;:::-;9330:42;7922:1456;-1:-1:-1;;;;;;;;;;;;;;;7922:1456:97:o;9647:862::-;9809:4;9838:2;9878;9867:9;9863:18;9908:2;9897:9;9890:21;9931:6;9966;9960:13;9997:6;9989;9982:22;10035:2;10024:9;10020:18;10013:25;;10097:2;10087:6;10084:1;10080:14;10069:9;10065:30;10061:39;10047:53;;10135:2;10127:6;10123:15;10156:1;10166:314;10180:6;10177:1;10174:13;10166:314;;;10269:66;10257:9;10249:6;10245:22;10241:95;10236:3;10229:108;10360:40;10393:6;10384;10378:13;10360:40;:::i;:::-;10350:50;-1:-1:-1;10458:12:97;;;;10423:15;;;;10202:1;10195:9;10166:314;;;-1:-1:-1;10497:6:97;;9647:862;-1:-1:-1;;;;;;;9647:862:97:o;10514:182::-;10573:4;10606:18;10598:6;10595:30;10592:56;;;10628:18;;:::i;:::-;-1:-1:-1;10673:1:97;10669:14;10685:4;10665:25;;10514:182::o;10701:887::-;10754:5;10807:3;10800:4;10792:6;10788:17;10784:27;10774:55;;10825:1;10822;10815:12;10774:55;10861:6;10848:20;10887:4;10911:59;10927:42;10966:2;10927:42;:::i;:::-;10911:59;:::i;:::-;11004:15;;;11090:1;11086:10;;;;11074:23;;11070:32;;;11035:12;;;;11114:15;;;11111:35;;;11142:1;11139;11132:12;11111:35;11178:2;11170:6;11166:15;11190:369;11206:6;11201:3;11198:15;11190:369;;;11292:3;11279:17;11328:18;11315:11;11312:35;11309:125;;;11388:1;11417:2;11413;11406:14;11309:125;11459:57;11512:3;11507:2;11493:11;11485:6;11481:24;11477:33;11459:57;:::i;:::-;11447:70;;-1:-1:-1;11537:12:97;;;;11223;;11190:369;;;-1:-1:-1;11577:5:97;10701:887;-1:-1:-1;;;;;;10701:887:97:o;11593:673::-;11647:5;11700:3;11693:4;11685:6;11681:17;11677:27;11667:55;;11718:1;11715;11708:12;11667:55;11754:6;11741:20;11780:4;11804:59;11820:42;11859:2;11820:42;:::i;11804:59::-;11885:3;11909:2;11904:3;11897:15;11937:4;11932:3;11928:14;11921:21;;11994:4;11988:2;11985:1;11981:10;11973:6;11969:23;11965:34;11951:48;;12022:3;12014:6;12011:15;12008:35;;;12039:1;12036;12029:12;12008:35;12075:4;12067:6;12063:17;12089:148;12105:6;12100:3;12097:15;12089:148;;;12171:23;12190:3;12171:23;:::i;:::-;12159:36;;12215:12;;;;12122;;12089:148;;12271:671;12324:5;12377:3;12370:4;12362:6;12358:17;12354:27;12344:55;;12395:1;12392;12385:12;12344:55;12431:6;12418:20;12457:4;12481:59;12497:42;12536:2;12497:42;:::i;12481:59::-;12562:3;12586:2;12581:3;12574:15;12614:4;12609:3;12605:14;12598:21;;12671:4;12665:2;12662:1;12658:10;12650:6;12646:23;12642:34;12628:48;;12699:3;12691:6;12688:15;12685:35;;;12716:1;12713;12706:12;12685:35;12752:4;12744:6;12740:17;12766:147;12782:6;12777:3;12774:15;12766:147;;;12848:22;12866:3;12848:22;:::i;:::-;12836:35;;12891:12;;;;12799;;12766:147;;12947:671;13000:5;13053:3;13046:4;13038:6;13034:17;13030:27;13020:55;;13071:1;13068;13061:12;13020:55;13107:6;13094:20;13133:4;13157:59;13173:42;13212:2;13173:42;:::i;13157:59::-;13238:3;13262:2;13257:3;13250:15;13290:4;13285:3;13281:14;13274:21;;13347:4;13341:2;13338:1;13334:10;13326:6;13322:23;13318:34;13304:48;;13375:3;13367:6;13364:15;13361:35;;;13392:1;13389;13382:12;13361:35;13428:4;13420:6;13416:17;13442:147;13458:6;13453:3;13450:15;13442:147;;;13524:22;13542:3;13524:22;:::i;:::-;13512:35;;13567:12;;;;13475;;13442:147;;13623:1759;13947:6;13955;13963;13971;13979;13987;13995;14048:3;14036:9;14027:7;14023:23;14019:33;14016:53;;;14065:1;14062;14055:12;14016:53;14105:9;14092:23;14134:18;14175:2;14167:6;14164:14;14161:34;;;14191:1;14188;14181:12;14161:34;14214:60;14266:7;14257:6;14246:9;14242:22;14214:60;:::i;:::-;14204:70;;14327:2;14316:9;14312:18;14299:32;14283:48;;14356:2;14346:8;14343:16;14340:36;;;14372:1;14369;14362:12;14340:36;14395:62;14449:7;14438:8;14427:9;14423:24;14395:62;:::i;:::-;14385:72;;14510:2;14499:9;14495:18;14482:32;14466:48;;14539:2;14529:8;14526:16;14523:36;;;14555:1;14552;14545:12;14523:36;14578:62;14632:7;14621:8;14610:9;14606:24;14578:62;:::i;:::-;14568:72;;14693:2;14682:9;14678:18;14665:32;14649:48;;14722:2;14712:8;14709:16;14706:36;;;14738:1;14735;14728:12;14706:36;14761:63;14816:7;14805:8;14794:9;14790:24;14761:63;:::i;:::-;14751:73;;14877:3;14866:9;14862:19;14849:33;14833:49;;14907:2;14897:8;14894:16;14891:36;;;14923:1;14920;14913:12;14891:36;14946:62;15000:7;14989:8;14978:9;14974:24;14946:62;:::i;:::-;14936:72;;15061:3;15050:9;15046:19;15033:33;15017:49;;15091:2;15081:8;15078:16;15075:36;;;15107:1;15104;15097:12;15075:36;15130:62;15184:7;15173:8;15162:9;15158:24;15130:62;:::i;:::-;15120:72;;15245:3;15234:9;15230:19;15217:33;15201:49;;15275:2;15265:8;15262:16;15259:36;;;15291:1;15288;15281:12;15259:36;;15314:62;15368:7;15357:8;15346:9;15342:24;15314:62;:::i;15387:220::-;15536:2;15525:9;15518:21;15499:4;15556:45;15597:2;15586:9;15582:18;15574:6;15556:45;:::i;15612:118::-;15698:5;15691:13;15684:21;15677:5;15674:32;15664:60;;15720:1;15717;15710:12;15735:451;15810:6;15818;15871:2;15859:9;15850:7;15846:23;15842:32;15839:52;;;15887:1;15884;15877:12;15839:52;15927:9;15914:23;15960:18;15952:6;15949:30;15946:50;;;15992:1;15989;15982:12;15946:50;16015;16057:7;16048:6;16037:9;16033:22;16015:50;:::i;:::-;16005:60;;;16115:2;16104:9;16100:18;16087:32;16128:28;16150:5;16128:28;:::i;:::-;16175:5;16165:15;;;15735:451;;;;;:::o;16191:437::-;16270:1;16266:12;;;;16313;;;16334:61;;16388:4;16380:6;16376:17;16366:27;;16334:61;16441:2;16433:6;16430:14;16410:18;16407:38;16404:218;;16478:77;16475:1;16468:88;16579:4;16576:1;16569:15;16607:4;16604:1;16597:15;16404:218;;16191:437;;;:::o;16759:543::-;16861:2;16856:3;16853:11;16850:446;;;16897:1;16921:5;16918:1;16911:16;16965:4;16962:1;16952:18;17035:2;17023:10;17019:19;17016:1;17012:27;17006:4;17002:38;17071:4;17059:10;17056:20;17053:47;;;-1:-1:-1;17094:4:97;17053:47;17149:2;17144:3;17140:12;17137:1;17133:20;17127:4;17123:31;17113:41;;17204:82;17222:2;17215:5;17212:13;17204:82;;;17267:17;;;17248:1;17237:13;17204:82;;;17208:3;;;16850:446;16759:543;;;:::o;17538:1464::-;17664:3;17658:10;17691:18;17683:6;17680:30;17677:56;;;17713:18;;:::i;:::-;17742:97;17832:6;17792:38;17824:4;17818:11;17792:38;:::i;:::-;17786:4;17742:97;:::i;:::-;17894:4;;17951:2;17940:14;;17968:1;17963:782;;;;18789:1;18806:6;18803:89;;;-1:-1:-1;18858:19:97;;;18852:26;18803:89;17444:66;17435:1;17431:11;;;17427:84;17423:89;17413:100;17519:1;17515:11;;;17410:117;18905:81;;17933:1063;;17963:782;16706:1;16699:14;;;16743:4;16730:18;;18011:66;17999:79;;;18176:236;18190:7;18187:1;18184:14;18176:236;;;18279:19;;;18273:26;18258:42;;18371:27;;;;18339:1;18327:14;;;;18206:19;;18176:236;;;18180:3;18440:6;18431:7;18428:19;18425:261;;;18501:19;;;18495:26;18602:66;18584:1;18580:14;;;18596:3;18576:24;18572:97;18568:102;18553:118;18538:134;;18425:261;-1:-1:-1;;;;;18732:1:97;18716:14;;;18712:22;18699:36;;-1:-1:-1;17538:1464:97:o;19007:289::-;19138:3;19176:6;19170:13;19192:66;19251:6;19246:3;19239:4;19231:6;19227:17;19192:66;:::i;:::-;19274:16;;;;;19007:289;-1:-1:-1;;19007:289:97:o;20325:184::-;20377:77;20374:1;20367:88;20474:4;20471:1;20464:15;20498:4;20495:1;20488:15;21886:340;22075:42;22067:6;22063:55;22052:9;22045:74;22155:2;22150;22139:9;22135:18;22128:30;22026:4;22175:45;22216:2;22205:9;22201:18;22193:6;22175:45;:::i;22231:245::-;22298:6;22351:2;22339:9;22330:7;22326:23;22322:32;22319:52;;;22367:1;22364;22357:12;22319:52;22399:9;22393:16;22418:28;22440:5;22418:28;:::i;22481:441::-;22649:4;22678:42;22759:2;22751:6;22747:15;22736:9;22729:34;22811:2;22803:6;22799:15;22794:2;22783:9;22779:18;22772:43;;22851:2;22846;22835:9;22831:18;22824:30;22871:45;22912:2;22901:9;22897:18;22889:6;22871:45;:::i;:::-;22863:53;22481:441;-1:-1:-1;;;;;22481:441:97:o;22927:903::-;23057:3;23086:1;23119:6;23113:13;23149:36;23175:9;23149:36;:::i;:::-;23204:1;23221:17;;;23247:191;;;;23452:1;23447:358;;;;23214:591;;23247:191;-1:-1:-1;;23284:9:97;23280:82;23275:3;23268:95;23418:6;23411:14;23404:22;23396:6;23392:35;23387:3;23383:45;23376:52;;23247:191;;23447:358;23478:6;23475:1;23468:17;23508:4;23553;23550:1;23540:18;23580:1;23594:165;23608:6;23605:1;23602:13;23594:165;;;23686:14;;23673:11;;;23666:35;23729:16;;;;23623:10;;23594:165;;;23598:3;;;23788:6;23783:3;23779:16;23772:23;;23214:591;-1:-1:-1;23821:3:97;;22927:903;-1:-1:-1;;;;;;22927:903:97:o;23835:349::-;23874:3;23905:66;23898:5;23895:77;23892:257;;24005:77;24002:1;23995:88;24106:4;24103:1;24096:15;24134:4;24131:1;24124:15;23892:257;-1:-1:-1;24176:1:97;24165:13;;23835:349::o;25656:898::-;25999:3;25988:9;25981:22;25962:4;26026:46;26067:3;26056:9;26052:19;26044:6;26026:46;:::i;:::-;26120:9;26112:6;26108:22;26103:2;26092:9;26088:18;26081:50;26154:33;26180:6;26172;26154:33;:::i;:::-;26140:47;;26235:9;26227:6;26223:22;26218:2;26207:9;26203:18;26196:50;26269:33;26295:6;26287;26269:33;:::i;:::-;26255:47;;26338:6;26333:2;26322:9;26318:18;26311:34;26394:42;26386:6;26382:55;26376:3;26365:9;26361:19;26354:84;26487:9;26479:6;26475:22;26469:3;26458:9;26454:19;26447:51;26515:33;26541:6;26533;26515:33;:::i;:::-;26507:41;25656:898;-1:-1:-1;;;;;;;;;25656:898:97:o"},"gasEstimates":{"creation":{"codeDepositCost":"2702000","executionCost":"32530","totalCost":"2734530"},"external":{"acceptOwnership()":"infinite","accessControlManager()":"2397","activeUpdateTypes(bytes32)":"2508","addAuthorizedSender(address)":"infinite","addUpdateType(string)":"infinite","allUpdateTypes(uint256)":"infinite","allUpdateTypesLength()":"2338","authorizedSenders(address)":"2576","getActiveUpdateTypes(string)":"infinite","getAllUpdateTypes()":"infinite","getLatestUpdateByTypeAndMarket(string,address)":"infinite","getLatestUpdateIdByTypeAndMarket(string,address)":"infinite","getUpdateById(uint256)":"infinite","initialize(address)":"infinite","latestUpdateIdByMarketAndType(bytes32,address)":"2695","owner()":"2407","pendingOwner()":"2396","publishBulkRiskParameterUpdates(string[],bytes[],string[],address[],uint96[],uint32[],bytes[])":"infinite","publishRiskParameterUpdate(string,bytes,string,address,uint96,uint32,bytes)":"infinite","removeAuthorizedSender(address)":"infinite","renounceOwnership()":"270","setAccessControlManager(address)":"28146","setUpdateTypeActive(string,bool)":"infinite","transferOwnership(address)":"30406","updateCounter()":"2386","updatesById(uint256)":"infinite"},"internal":{"_publishUpdate(string memory,bytes memory,string memory,address,uint96,uint32,bytes memory)":"infinite","_updateTypeExists(bytes32)":"infinite"}},"methodIdentifiers":{"acceptOwnership()":"79ba5097","accessControlManager()":"b4a0bdf3","activeUpdateTypes(bytes32)":"157b1225","addAuthorizedSender(address)":"fa7229ee","addUpdateType(string)":"77abc9bd","allUpdateTypes(uint256)":"c6b8ab42","allUpdateTypesLength()":"592d3733","authorizedSenders(address)":"6f324967","getActiveUpdateTypes(string)":"986576fa","getAllUpdateTypes()":"c030ce7b","getLatestUpdateByTypeAndMarket(string,address)":"f660fe69","getLatestUpdateIdByTypeAndMarket(string,address)":"34496b5a","getUpdateById(uint256)":"37759b9a","initialize(address)":"c4d66de8","latestUpdateIdByMarketAndType(bytes32,address)":"43b62b26","owner()":"8da5cb5b","pendingOwner()":"e30c3978","publishBulkRiskParameterUpdates(string[],bytes[],string[],address[],uint96[],uint32[],bytes[])":"c4e1a280","publishRiskParameterUpdate(string,bytes,string,address,uint96,uint32,bytes)":"87d7f21f","removeAuthorizedSender(address)":"cbd57967","renounceOwnership()":"715018a6","setAccessControlManager(address)":"0e32cb86","setUpdateTypeActive(string,bool)":"ec1930b0","transferOwnership(address)":"f2fde38b","updateCounter()":"1687fe8e","updatesById(uint256)":"b39b55be"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ArrayLengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidUpdateId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidUpdateTypeString\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoUpdateFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RenounceOwnershipNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SenderAlreadyAuthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SenderNotAuthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"calledContract\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"methodSignature\",\"type\":\"string\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpdateTypeAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpdateTypeNotActive\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpdateTypeNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpdateTypeStatusUnchanged\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"AuthorizedSenderAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"AuthorizedSenderRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldAccessControlManager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAccessControlManager\",\"type\":\"address\"}],\"name\":\"NewAccessControlManager\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"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\":\"string\",\"name\":\"referenceId\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"newValue\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"previousValue\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"additionalData\",\"type\":\"bytes\"}],\"name\":\"UpdatePublished\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"previousActive\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"}],\"name\":\"UpdateTypeActiveStatusChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"}],\"name\":\"UpdateTypeAdded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"accessControlManager\",\"outputs\":[{\"internalType\":\"contract IAccessControlManagerV8\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"activeUpdateTypes\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"addAuthorizedSender\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"newUpdateType\",\"type\":\"string\"}],\"name\":\"addUpdateType\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"allUpdateTypes\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allUpdateTypesLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"authorizedSenders\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"}],\"name\":\"getActiveUpdateTypes\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllUpdateTypes\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"getLatestUpdateByTypeAndMarket\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"referenceId\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"updateTypeKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"newValue\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"previousValue\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"poolId\",\"type\":\"uint96\"},{\"internalType\":\"uint32\",\"name\":\"destLzEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"additionalData\",\"type\":\"bytes\"}],\"internalType\":\"struct RiskParameterUpdate\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"getLatestUpdateIdByTypeAndMarket\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"}],\"name\":\"getUpdateById\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"referenceId\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"updateTypeKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"newValue\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"previousValue\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"poolId\",\"type\":\"uint96\"},{\"internalType\":\"uint32\",\"name\":\"destLzEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"additionalData\",\"type\":\"bytes\"}],\"internalType\":\"struct RiskParameterUpdate\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessControlManager_\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"updateTypeKey\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"latestUpdateIdByMarketAndType\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"referenceIds\",\"type\":\"string[]\"},{\"internalType\":\"bytes[]\",\"name\":\"newValues\",\"type\":\"bytes[]\"},{\"internalType\":\"string[]\",\"name\":\"updateTypes\",\"type\":\"string[]\"},{\"internalType\":\"address[]\",\"name\":\"markets\",\"type\":\"address[]\"},{\"internalType\":\"uint96[]\",\"name\":\"poolIds\",\"type\":\"uint96[]\"},{\"internalType\":\"uint32[]\",\"name\":\"dstEid\",\"type\":\"uint32[]\"},{\"internalType\":\"bytes[]\",\"name\":\"additionalData\",\"type\":\"bytes[]\"}],\"name\":\"publishBulkRiskParameterUpdates\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"referenceId\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"newValue\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"poolId\",\"type\":\"uint96\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"additionalData\",\"type\":\"bytes\"}],\"name\":\"publishRiskParameterUpdate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"removeAuthorizedSender\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessControlManager_\",\"type\":\"address\"}],\"name\":\"setAccessControlManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"}],\"name\":\"setUpdateTypeActive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"updateCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"updatesById\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"referenceId\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"updateTypeKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"newValue\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"previousValue\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"poolId\",\"type\":\"uint96\"},{\"internalType\":\"uint32\",\"name\":\"destLzEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"additionalData\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"addAuthorizedSender(address)\":{\"custom:access\":\"Controlled by AccessControlManager\",\"custom:error\":\"Throws ZeroAddressNotAllowed if sender is zero addressThrows SenderAlreadyAuthorized if sender is already authorizedThrows Unauthorized if caller is not allowed by AccessControlManager\",\"custom:event\":\"Emits AuthorizedSenderAdded when sender is successfully added\",\"params\":{\"sender\":\"Address to be authorized\"}},\"addUpdateType(string)\":{\"custom:access\":\"Controlled by AccessControlManager\",\"custom:error\":\"Throws InvalidUpdateTypeString if update type string is empty or exceeds 64 charactersThrows UpdateTypeAlreadyExists if update type already existsThrows Unauthorized if caller is not allowed by AccessControlManager\",\"custom:event\":\"Emits UpdateTypeAdded when update type is successfully added\",\"params\":{\"newUpdateType\":\"New type of update to allow\"}},\"allUpdateTypesLength()\":{\"returns\":{\"_0\":\"The length of the allUpdateTypes array\"}},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"getActiveUpdateTypes(string)\":{\"params\":{\"updateType\":\"The update type string to check\"},\"returns\":{\"_0\":\"True if the update type is active, false otherwise\"}},\"getAllUpdateTypes()\":{\"returns\":{\"_0\":\"An array of all update type strings\"}},\"getLatestUpdateByTypeAndMarket(string,address)\":{\"custom:error\":\"Throws NoUpdateFound if no update exists for the specified parameter and market\",\"params\":{\"market\":\"The market identifier\",\"updateType\":\"The identifier for the parameter\"},\"returns\":{\"_0\":\"The most recent RiskParameterUpdate for the specified parameter and market\"}},\"getLatestUpdateIdByTypeAndMarket(string,address)\":{\"params\":{\"market\":\"The market address\",\"updateType\":\"The update type string\"},\"returns\":{\"_0\":\"The latest update ID for the given market and update type, or 0 if none exists\"}},\"getUpdateById(uint256)\":{\"custom:error\":\"Throws InvalidUpdateId if updateId is 0 or greater than updateCounter\",\"params\":{\"updateId\":\"Update ID\"},\"returns\":{\"_0\":\"The RiskParameterUpdate for the specified id\"}},\"initialize(address)\":{\"custom:error\":\"Reverts with \\\"invalid acess control manager address\\\" if accessControlManager_ is zero address\",\"params\":{\"accessControlManager_\":\"Address of the access control manager\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"publishBulkRiskParameterUpdates(string[],bytes[],string[],address[],uint96[],uint32[],bytes[])\":{\"custom:error\":\"Throws SenderNotAuthorized if caller is not an authorized senderThrows ArrayLengthMismatch if the array lengths do not match or if no updates are providedThrows UpdateTypeNotActive if any update type is not activeThrows ZeroAddressNotAllowed if any market is zero address\",\"custom:event\":\"Emits UpdatePublished for each successfully published update\",\"params\":{\"additionalData\":\"Array of additional data for the updates\",\"dstEid\":\"Array of destination endpoint IDs for cross-chain routing\",\"markets\":\"Array of addresses for markets of the parameter updates\",\"newValues\":\"Array of new values for each update\",\"poolIds\":\"Array of pool identifiers for eMode-style collateral configuration (0 for regular markets)\",\"referenceIds\":\"Array of external reference IDs\",\"updateTypes\":\"Array of types for each update, all must be authorized\"}},\"publishRiskParameterUpdate(string,bytes,string,address,uint96,uint32,bytes)\":{\"custom:error\":\"Throws SenderNotAuthorized if caller is not an authorized senderThrows UpdateTypeNotActive if update type is not activeThrows ZeroAddressNotAllowed if market is zero address\",\"custom:event\":\"Emits UpdatePublished when update is successfully published\",\"params\":{\"additionalData\":\"Additional data for the update\",\"dstEid\":\"Destination endpoint ID for cross-chain routing\",\"market\":\"Address for market of the parameter update\",\"newValue\":\"The new value of the risk parameter being updated\",\"poolId\":\"Pool identifier for eMode-style collateral configuration (0 for regular markets)\",\"referenceId\":\"An external reference ID associated with the update\",\"updateType\":\"Type of update performed, must be previously authorized\"}},\"removeAuthorizedSender(address)\":{\"custom:access\":\"Controlled by AccessControlManager\",\"custom:error\":\"Throws SenderNotAuthorized if sender is not currently authorizedThrows Unauthorized if caller is not allowed by AccessControlManager\",\"custom:event\":\"Emits AuthorizedSenderRemoved when sender is successfully removed\",\"params\":{\"sender\":\"Address to be unauthorized\"}},\"renounceOwnership()\":{\"custom:error\":\"Throws RenounceOwnershipNotAllowed\"},\"setAccessControlManager(address)\":{\"custom:access\":\"Only Governance\",\"custom:event\":\"Emits NewAccessControlManager event\",\"details\":\"Admin function to set address of AccessControlManager\",\"params\":{\"accessControlManager_\":\"The new address of the AccessControlManager\"}},\"setUpdateTypeActive(string,bool)\":{\"custom:access\":\"Controlled by AccessControlManager\",\"custom:error\":\"Throws UpdateTypeNotFound if update type doesn't existThrows UpdateTypeStatusUnchanged if status is already set to the desired valueThrows Unauthorized if caller is not allowed by AccessControlManager\",\"custom:event\":\"Emits UpdateTypeActiveStatusChanged when status is successfully changed\",\"params\":{\"active\":\"True to activate, false to deactivate\",\"updateType\":\"The update type to set active status for\"}},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"title\":\"Risk Oracle\",\"version\":1},\"userdoc\":{\"errors\":{\"ArrayLengthMismatch()\":[{\"notice\":\"Thrown when array lengths don't match in bulk operations\"}],\"InvalidUpdateId()\":[{\"notice\":\"Thrown when update ID is invalid\"}],\"InvalidUpdateTypeString()\":[{\"notice\":\"Thrown when update type string is invalid\"}],\"NoUpdateFound()\":[{\"notice\":\"Thrown when no update is found\"}],\"RenounceOwnershipNotAllowed()\":[{\"notice\":\"Thrown when trying to renounce ownership\"}],\"SenderAlreadyAuthorized()\":[{\"notice\":\"Thrown when sender is already authorized\"}],\"SenderNotAuthorized()\":[{\"notice\":\"Thrown when sender is not authorized\"}],\"Unauthorized(address,address,string)\":[{\"notice\":\"Thrown when the action is prohibited by AccessControlManager\"}],\"UpdateTypeAlreadyExists()\":[{\"notice\":\"Thrown when update type already exists\"}],\"UpdateTypeNotActive()\":[{\"notice\":\"Thrown when update type is not active\"}],\"UpdateTypeNotFound()\":[{\"notice\":\"Thrown when update type doesn't exist\"}],\"UpdateTypeStatusUnchanged()\":[{\"notice\":\"Thrown when update type active status is already set to the desired value\"}],\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}]},\"events\":{\"AuthorizedSenderAdded(address)\":{\"notice\":\"Event emitted when a new authorized sender is added\"},\"AuthorizedSenderRemoved(address)\":{\"notice\":\"Event emitted when an authorized sender is removed\"},\"NewAccessControlManager(address,address)\":{\"notice\":\"Emitted when access control manager contract address is changed\"},\"UpdatePublished(string,uint256,address,string,bytes,bytes,uint256,address,bytes)\":{\"notice\":\"Event emitted when a risk parameter update is published\"},\"UpdateTypeActiveStatusChanged(string,bool,bool)\":{\"notice\":\"Event emitted when an update type's active status is changed\"},\"UpdateTypeAdded(string)\":{\"notice\":\"Event emitted when a new update type is added\"}},\"kind\":\"user\",\"methods\":{\"accessControlManager()\":{\"notice\":\"Returns the address of the access control manager contract\"},\"activeUpdateTypes(bytes32)\":{\"notice\":\"Whitelist of valid update type identifiers, keyed by updateType hash\"},\"addAuthorizedSender(address)\":{\"notice\":\"Adds a new sender to the list of addresses authorized to perform updates\"},\"addUpdateType(string)\":{\"notice\":\"Adds a new type of update to the list of authorized update types\"},\"allUpdateTypes(uint256)\":{\"notice\":\"Array to store all update types\"},\"allUpdateTypesLength()\":{\"notice\":\"Returns the total number of update types in the allUpdateTypes array\"},\"authorizedSenders(address)\":{\"notice\":\"Authorized accounts capable of proposing updates\"},\"constructor\":{\"notice\":\"Disables initializers\"},\"getActiveUpdateTypes(string)\":{\"notice\":\"Checks if a given update type is currently active.\"},\"getAllUpdateTypes()\":{\"notice\":\"Returns all update types in the allUpdateTypes array\"},\"getLatestUpdateByTypeAndMarket(string,address)\":{\"notice\":\"Fetches the most recent update for a specific parameter in a specific market\"},\"getLatestUpdateIdByTypeAndMarket(string,address)\":{\"notice\":\"Gets the latest update ID for a specific market and update type (string) combination\"},\"getUpdateById(uint256)\":{\"notice\":\"Fetches the update for a provided updateId\"},\"initialize(address)\":{\"notice\":\"Initializes the contract with access control manager\"},\"latestUpdateIdByMarketAndType(bytes32,address)\":{\"notice\":\"Mapping to store the latest update ID for each combination of update type key and market\"},\"publishBulkRiskParameterUpdates(string[],bytes[],string[],address[],uint96[],uint32[],bytes[])\":{\"notice\":\"Publishes multiple risk parameter updates in a single transaction\"},\"publishRiskParameterUpdate(string,bytes,string,address,uint96,uint32,bytes)\":{\"notice\":\"Publishes a new risk parameter update\"},\"removeAuthorizedSender(address)\":{\"notice\":\"Removes an address from the list of authorized senders\"},\"renounceOwnership()\":{\"notice\":\"Disables renounceOwnership function\"},\"setAccessControlManager(address)\":{\"notice\":\"Sets the address of AccessControlManager\"},\"setUpdateTypeActive(string,bool)\":{\"notice\":\"Sets the active status of an existing update type\"},\"updateCounter()\":{\"notice\":\"Counter to keep track of the total number of updates\"},\"updatesById(uint256)\":{\"notice\":\"Mapping from unique update ID to the update details\"}},\"notice\":\"Contract for managing and publishing risk parameter updates for Risk-Steward Updates\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/RiskSteward/RiskOracle.sol\":\"RiskOracle\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (access/Ownable2Step.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./OwnableUpgradeable.sol\\\";\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership} and {acceptOwnership}.\\n *\\n * This module is used through inheritance. It will make available all functions\\n * from parent (Ownable).\\n */\\nabstract contract Ownable2StepUpgradeable is Initializable, OwnableUpgradeable {\\n    function __Ownable2Step_init() internal onlyInitializing {\\n        __Ownable_init_unchained();\\n    }\\n\\n    function __Ownable2Step_init_unchained() internal onlyInitializing {\\n    }\\n    address private _pendingOwner;\\n\\n    event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Returns the address of the pending owner.\\n     */\\n    function pendingOwner() public view virtual returns (address) {\\n        return _pendingOwner;\\n    }\\n\\n    /**\\n     * @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual override onlyOwner {\\n        _pendingOwner = newOwner;\\n        emit OwnershipTransferStarted(owner(), newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual override {\\n        delete _pendingOwner;\\n        super._transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev The new owner accepts the ownership transfer.\\n     */\\n    function acceptOwnership() external {\\n        address sender = _msgSender();\\n        require(pendingOwner() == sender, \\\"Ownable2Step: caller is not the new owner\\\");\\n        _transferOwnership(sender);\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0xd712fb45b3ea0ab49679164e3895037adc26ce12879d5184feb040e01c1c07a9\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/ContextUpgradeable.sol\\\";\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract OwnableUpgradeable is Initializable, ContextUpgradeable {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    function __Ownable_init() internal onlyInitializing {\\n        __Ownable_init_unchained();\\n    }\\n\\n    function __Ownable_init_unchained() internal onlyInitializing {\\n        _transferOwnership(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        _checkOwner();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if the sender is not the owner.\\n     */\\n    function _checkOwner() internal view virtual {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions anymore. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby removing any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.1) (proxy/utils/Initializable.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../../utils/AddressUpgradeable.sol\\\";\\n\\n/**\\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\\n *\\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\\n * reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in\\n * case an upgrade adds a module that needs to be initialized.\\n *\\n * For example:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * contract MyToken is ERC20Upgradeable {\\n *     function initialize() initializer public {\\n *         __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\");\\n *     }\\n * }\\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\\n *     function initializeV2() reinitializer(2) public {\\n *         __ERC20Permit_init(\\\"MyToken\\\");\\n *     }\\n * }\\n * ```\\n *\\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\\n *\\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\\n *\\n * [CAUTION]\\n * ====\\n * Avoid leaving a contract uninitialized.\\n *\\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * /// @custom:oz-upgrades-unsafe-allow constructor\\n * constructor() {\\n *     _disableInitializers();\\n * }\\n * ```\\n * ====\\n */\\nabstract contract Initializable {\\n    /**\\n     * @dev Indicates that the contract has been initialized.\\n     * @custom:oz-retyped-from bool\\n     */\\n    uint8 private _initialized;\\n\\n    /**\\n     * @dev Indicates that the contract is in the process of being initialized.\\n     */\\n    bool private _initializing;\\n\\n    /**\\n     * @dev Triggered when the contract has been initialized or reinitialized.\\n     */\\n    event Initialized(uint8 version);\\n\\n    /**\\n     * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\\n     * `onlyInitializing` functions can be used to initialize parent contracts.\\n     *\\n     * Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\\n     * constructor.\\n     *\\n     * Emits an {Initialized} event.\\n     */\\n    modifier initializer() {\\n        bool isTopLevelCall = !_initializing;\\n        require(\\n            (isTopLevelCall && _initialized < 1) || (!AddressUpgradeable.isContract(address(this)) && _initialized == 1),\\n            \\\"Initializable: contract is already initialized\\\"\\n        );\\n        _initialized = 1;\\n        if (isTopLevelCall) {\\n            _initializing = true;\\n        }\\n        _;\\n        if (isTopLevelCall) {\\n            _initializing = false;\\n            emit Initialized(1);\\n        }\\n    }\\n\\n    /**\\n     * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\\n     * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\\n     * used to initialize parent contracts.\\n     *\\n     * A reinitializer may be used after the original initialization step. This is essential to configure modules that\\n     * are added through upgrades and that require initialization.\\n     *\\n     * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\\n     * cannot be nested. If one is invoked in the context of another, execution will revert.\\n     *\\n     * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\\n     * a contract, executing them in the right order is up to the developer or operator.\\n     *\\n     * WARNING: setting the version to 255 will prevent any future reinitialization.\\n     *\\n     * Emits an {Initialized} event.\\n     */\\n    modifier reinitializer(uint8 version) {\\n        require(!_initializing && _initialized < version, \\\"Initializable: contract is already initialized\\\");\\n        _initialized = version;\\n        _initializing = true;\\n        _;\\n        _initializing = false;\\n        emit Initialized(version);\\n    }\\n\\n    /**\\n     * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\\n     * {initializer} and {reinitializer} modifiers, directly or indirectly.\\n     */\\n    modifier onlyInitializing() {\\n        require(_initializing, \\\"Initializable: contract is not initializing\\\");\\n        _;\\n    }\\n\\n    /**\\n     * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\\n     * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\\n     * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\\n     * through proxies.\\n     *\\n     * Emits an {Initialized} event the first time it is successfully executed.\\n     */\\n    function _disableInitializers() internal virtual {\\n        require(!_initializing, \\\"Initializable: contract is initializing\\\");\\n        if (_initialized < type(uint8).max) {\\n            _initialized = type(uint8).max;\\n            emit Initialized(type(uint8).max);\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns the highest version that has been initialized. See {reinitializer}.\\n     */\\n    function _getInitializedVersion() internal view returns (uint8) {\\n        return _initialized;\\n    }\\n\\n    /**\\n     * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.\\n     */\\n    function _isInitializing() internal view returns (bool) {\\n        return _initializing;\\n    }\\n}\\n\",\"keccak256\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary AddressUpgradeable {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\n     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\n     *\\n     * _Available since v4.8._\\n     */\\n    function verifyCallResultFromTarget(\\n        address target,\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        if (success) {\\n            if (returndata.length == 0) {\\n                // only check isContract if the call was successful and the return data is empty\\n                // otherwise we already know that it was a contract\\n                require(isContract(target), \\\"Address: call to non-contract\\\");\\n            }\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason or using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    function _revert(bytes memory returndata, string memory errorMessage) private pure {\\n        // Look for revert reason and bubble it up if present\\n        if (returndata.length > 0) {\\n            // The easiest way to bubble the revert reason is using memory via assembly\\n            /// @solidity memory-safe-assembly\\n            assembly {\\n                let returndata_size := mload(returndata)\\n                revert(add(32, returndata), returndata_size)\\n            }\\n        } else {\\n            revert(errorMessage);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract ContextUpgradeable is Initializable {\\n    function __Context_init() internal onlyInitializing {\\n    }\\n\\n    function __Context_init_unchained() internal onlyInitializing {\\n    }\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[50] private __gap;\\n}\\n\",\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"@venusprotocol/solidity-utilities/contracts/validators.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\n/// @notice Thrown if the supplied address is a zero address where it is not allowed\\nerror ZeroAddressNotAllowed();\\n\\n/// @notice Thrown if the supplied value is 0 where it is not allowed\\nerror ZeroValueNotAllowed();\\n\\n/// @notice Checks if the provided address is nonzero, reverts otherwise\\n/// @param address_ Address to check\\n/// @custom:error ZeroAddressNotAllowed is thrown if the provided address is a zero address\\nfunction ensureNonzeroAddress(address address_) pure {\\n    if (address_ == address(0)) {\\n        revert ZeroAddressNotAllowed();\\n    }\\n}\\n\\n/// @notice Checks if the provided value is nonzero, reverts otherwise\\n/// @param value_ Value to check\\n/// @custom:error ZeroValueNotAllowed is thrown if the provided value is 0\\nfunction ensureNonzeroValue(uint256 value_) pure {\\n    if (value_ == 0) {\\n        revert ZeroValueNotAllowed();\\n    }\\n}\\n\",\"keccak256\":\"0xdb88e14d50dd21889ca3329d755673d022c47e8da005b6a545c7f69c2c4b7b86\",\"license\":\"BSD-3-Clause\"},\"contracts/Governance/AccessControlledV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\\\";\\nimport \\\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\\\";\\n\\nimport \\\"./IAccessControlManagerV8.sol\\\";\\n\\n/**\\n * @title AccessControlledV8\\n * @author Venus\\n * @notice This contract is helper between access control manager and actual contract. This contract further inherited by other contract (using solidity 0.8.13)\\n * to integrate access controlled mechanism. It provides initialise methods and verifying access methods.\\n */\\nabstract contract AccessControlledV8 is Initializable, Ownable2StepUpgradeable {\\n    /// @notice Access control manager contract\\n    IAccessControlManagerV8 internal _accessControlManager;\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n\\n    /// @notice Emitted when access control manager contract address is changed\\n    event NewAccessControlManager(address oldAccessControlManager, address newAccessControlManager);\\n\\n    /// @notice Thrown when the action is prohibited by AccessControlManager\\n    error Unauthorized(address sender, address calledContract, string methodSignature);\\n\\n    function __AccessControlled_init(address accessControlManager_) internal onlyInitializing {\\n        __Ownable2Step_init();\\n        __AccessControlled_init_unchained(accessControlManager_);\\n    }\\n\\n    function __AccessControlled_init_unchained(address accessControlManager_) internal onlyInitializing {\\n        _setAccessControlManager(accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Sets the address of AccessControlManager\\n     * @dev Admin function to set address of AccessControlManager\\n     * @param accessControlManager_ The new address of the AccessControlManager\\n     * @custom:event Emits NewAccessControlManager event\\n     * @custom:access Only Governance\\n     */\\n    function setAccessControlManager(address accessControlManager_) external onlyOwner {\\n        _setAccessControlManager(accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Returns the address of the access control manager contract\\n     */\\n    function accessControlManager() external view returns (IAccessControlManagerV8) {\\n        return _accessControlManager;\\n    }\\n\\n    /**\\n     * @dev Internal function to set address of AccessControlManager\\n     * @param accessControlManager_ The new address of the AccessControlManager\\n     */\\n    function _setAccessControlManager(address accessControlManager_) internal {\\n        require(address(accessControlManager_) != address(0), \\\"invalid acess control manager address\\\");\\n        address oldAccessControlManager = address(_accessControlManager);\\n        _accessControlManager = IAccessControlManagerV8(accessControlManager_);\\n        emit NewAccessControlManager(oldAccessControlManager, accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Reverts if the call is not allowed by AccessControlManager\\n     * @param signature Method signature\\n     */\\n    function _checkAccessAllowed(string memory signature) internal view {\\n        bool isAllowedToCall = _accessControlManager.isAllowedToCall(msg.sender, signature);\\n\\n        if (!isAllowedToCall) {\\n            revert Unauthorized(msg.sender, address(this), signature);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xe7f5f96c70fb32912ecc0032f81f7876607353413fe7f723d41d260ac9c26a06\",\"license\":\"BSD-3-Clause\"},\"contracts/Governance/IAccessControlManagerV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/access/IAccessControl.sol\\\";\\n\\n/**\\n * @title IAccessControlManagerV8\\n * @author Venus\\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\\n */\\ninterface IAccessControlManagerV8 is IAccessControl {\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\\n\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) external;\\n\\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\\n\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xaa29b098440d0b3a131c5ecdf25ce548790c1b5ac7bf9b5c0264b6af6f7a1e0b\",\"license\":\"BSD-3-Clause\"},\"contracts/RiskSteward/Interfaces/IRiskOracle.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity 0.8.25;\\n\\n/**\\n * @notice Struct representing a risk parameter update published by the Risk Oracle\\n * @param referenceId External reference ID, potentially linking to a document or off-chain data\\n * @param updateId Unique identifier for this specific update\\n * @param market Address of the market for which the parameter update applies\\n * @param updateType Classification of the update type for validation purposes (human-readable)\\n * @param updateTypeKey Keccak256 hash of updateType for efficient comparisons\\n * @param newValue Encoded new value of the risk parameter, flexible for various data types\\n * @param previousValue Previous value of the parameter for historical comparison\\n * @param timestamp Block timestamp when the update was published\\n * @param publisher Address of the account that published this update\\n * @param poolId Pool identifier for eMode-style collateral configuration (0 for regular markets)\\n * @param destLzEid LayerZero endpoint ID of the destination chain (0 for local execution)\\n * @param additionalData Additional metadata or data associated with the update\\n */\\nstruct RiskParameterUpdate {\\n    string referenceId;\\n    uint256 updateId;\\n    address market;\\n    string updateType;\\n    bytes32 updateTypeKey;\\n    bytes newValue;\\n    bytes previousValue;\\n    uint256 timestamp;\\n    address publisher;\\n    uint96 poolId;\\n    uint32 destLzEid;\\n    bytes additionalData;\\n}\\n\\n/**\\n * @title IRiskOracle\\n * @author Venus\\n * @notice Interface for Risk Oracle contract that manages and publishes risk parameter updates\\n */\\ninterface IRiskOracle {\\n    /// @notice Event emitted when a risk parameter update is published\\n    event UpdatePublished(\\n        string referenceId,\\n        uint256 indexed updateId,\\n        address indexed market,\\n        string indexed updateType,\\n        bytes newValue,\\n        bytes previousValue,\\n        uint256 timestamp,\\n        address publisher,\\n        bytes additionalData\\n    );\\n\\n    /// @notice Event emitted when a new authorized sender is added\\n    event AuthorizedSenderAdded(address indexed sender);\\n\\n    /// @notice Event emitted when an authorized sender is removed\\n    event AuthorizedSenderRemoved(address indexed sender);\\n\\n    /// @notice Event emitted when a new update type is added\\n    event UpdateTypeAdded(string indexed updateType);\\n\\n    /// @notice Event emitted when an update type's active status is changed\\n    event UpdateTypeActiveStatusChanged(string indexed updateType, bool previousActive, bool active);\\n\\n    /// @notice Thrown when sender is not authorized\\n    error SenderNotAuthorized();\\n\\n    /// @notice Thrown when sender is already authorized\\n    error SenderAlreadyAuthorized();\\n\\n    /// @notice Thrown when update type string is invalid\\n    error InvalidUpdateTypeString();\\n\\n    /// @notice Thrown when update type already exists\\n    error UpdateTypeAlreadyExists();\\n\\n    /// @notice Thrown when update type doesn't exist\\n    error UpdateTypeNotFound();\\n\\n    /// @notice Thrown when update type active status is already set to the desired value\\n    error UpdateTypeStatusUnchanged();\\n\\n    /// @notice Thrown when update type is not active\\n    error UpdateTypeNotActive();\\n\\n    /// @notice Thrown when no update is found\\n    error NoUpdateFound();\\n\\n    /// @notice Thrown when update ID is invalid\\n    error InvalidUpdateId();\\n\\n    /// @notice Thrown when array lengths don't match in bulk operations\\n    error ArrayLengthMismatch();\\n\\n    /// @notice Thrown when trying to renounce ownership\\n    error RenounceOwnershipNotAllowed();\\n\\n    /**\\n     * @notice Returns the update type string at the given index in the allUpdateTypes array\\n     * @param index The index in the allUpdateTypes array\\n     * @return The update type string at the specified index\\n     */\\n    function allUpdateTypes(uint256 index) external view returns (string memory);\\n\\n    /**\\n     * @notice Returns the total number of update types in the allUpdateTypes array\\n     * @return The length of the allUpdateTypes array\\n     */\\n    function allUpdateTypesLength() external view returns (uint256);\\n\\n    /**\\n     * @notice Returns all update types in the allUpdateTypes array\\n     * @return An array of all update type strings\\n     */\\n    function getAllUpdateTypes() external view returns (string[] memory);\\n\\n    /**\\n     * @notice Checks if a given update type is currently active\\n     * @param updateType The update type string to check\\n     * @return True if the update type is active, false otherwise\\n     */\\n    function getActiveUpdateTypes(string memory updateType) external view returns (bool);\\n\\n    /**\\n     * @notice Checks if a given update type is currently active\\n     * @param updateTypeKey The keccak256 hash of the update type string\\n     * @return True if the update type key is active, false otherwise\\n     */\\n    function activeUpdateTypes(bytes32 updateTypeKey) external view returns (bool);\\n\\n    /**\\n     * @notice Checks if an address is authorized to publish updates\\n     * @param sender The address to check for authorization\\n     * @return True if the address is authorized, false otherwise\\n     */\\n    function authorizedSenders(address sender) external view returns (bool);\\n\\n    /**\\n     * @notice Gets the latest update ID for a specific market and update type combination\\n     * @param updateTypeKey The keccak256 hash of the update type string\\n     * @param market The market address\\n     * @return The latest update ID for the given market and update type key, or 0 if none exists\\n     */\\n    function latestUpdateIdByMarketAndType(bytes32 updateTypeKey, address market) external view returns (uint256);\\n\\n    /**\\n     * @notice Returns the total number of updates that have been published\\n     * @return The current update counter value\\n     */\\n    function updateCounter() external view returns (uint256);\\n\\n    /**\\n     * @notice Fetches the most recent update for a specific parameter type in a specific market\\n     * @param updateType The update type identifier\\n     * @param market The market address\\n     * @return The most recent RiskParameterUpdate for the specified parameter and market\\n     * @custom:error NoUpdateFound Thrown if no update exists for the specified parameter and market\\n     */\\n    function getLatestUpdateByTypeAndMarket(\\n        string memory updateType,\\n        address market\\n    ) external view returns (RiskParameterUpdate memory);\\n\\n    /**\\n     * @notice Gets the latest update ID for a specific market and update type (string) combination\\n     * @param updateType The update type identifier\\n     * @param market The market address\\n     * @return The latest update ID for the given market and update type, or 0 if none exists\\n     */\\n    function getLatestUpdateIdByTypeAndMarket(string memory updateType, address market) external view returns (uint256);\\n\\n    /**\\n     * @notice Fetches the update for a provided update ID\\n     * @param updateId The unique update ID\\n     * @return The RiskParameterUpdate struct for the specified update ID\\n     * @custom:error InvalidUpdateId Thrown if updateId is 0 or greater than updateCounter\\n     */\\n    function getUpdateById(uint256 updateId) external view returns (RiskParameterUpdate memory);\\n\\n    /**\\n     * @notice Adds a new address to the list of authorized senders who can publish updates\\n     * @param sender Address to be authorized\\n     * @custom:error ZeroAddressNotAllowed Thrown if sender is the zero address\\n     * @custom:error SenderAlreadyAuthorized Thrown if sender is already authorized\\n     * @custom:error Unauthorized Thrown if caller is not allowed by AccessControlManager\\n     * @custom:event AuthorizedSenderAdded Emitted when sender is successfully added\\n     */\\n    function addAuthorizedSender(address sender) external;\\n\\n    /**\\n     * @notice Removes an address from the list of authorized senders\\n     * @param sender Address to be removed from authorization\\n     * @custom:error SenderNotAuthorized Thrown if sender is not currently authorized\\n     * @custom:error Unauthorized Thrown if caller is not allowed by AccessControlManager\\n     * @custom:event AuthorizedSenderRemoved Emitted when sender is successfully removed\\n     */\\n    function removeAuthorizedSender(address sender) external;\\n\\n    /**\\n     * @notice Adds a new update type to the list of authorized update types\\n     * @param newUpdateType New update type string to allow (must be non-empty and <= 64 characters)\\n     * @custom:error InvalidUpdateTypeString Thrown if update type string is empty or exceeds 64 characters\\n     * @custom:error UpdateTypeAlreadyExists Thrown if update type already exists\\n     * @custom:error Unauthorized Thrown if caller is not allowed by AccessControlManager\\n     * @custom:event UpdateTypeAdded Emitted when update type is successfully added\\n     */\\n    function addUpdateType(string memory newUpdateType) external;\\n\\n    /**\\n     * @notice Sets the active status of an existing update type\\n     * @param updateType The update type to set active status for\\n     * @param active True to activate the update type, false to deactivate it\\n     * @custom:error UpdateTypeNotFound Thrown if update type doesn't exist\\n     * @custom:error UpdateTypeStatusUnchanged Thrown if status is already set to the desired value\\n     * @custom:error Unauthorized Thrown if caller is not allowed by AccessControlManager\\n     * @custom:event UpdateTypeActiveStatusChanged Emitted when status is successfully changed\\n     */\\n    function setUpdateTypeActive(string memory updateType, bool active) external;\\n\\n    /**\\n     * @notice Publishes a new risk parameter update.\\n     * @param referenceId An external reference ID associated with the update\\n     * @param newValue The new value of the risk parameter being updated (encoded as bytes)\\n     * @param updateType Type of update performed, must be an active update type\\n     * @param market Address of the market for which the parameter update applies\\n     * @param poolId Pool identifier for eMode-style collateral configuration (0 for regular markets)\\n     * @param dstEid Destination endpoint ID for cross-chain routing\\n     * @param additionalData Additional data or metadata for the update\\n     * @custom:error SenderNotAuthorized Thrown if caller is not an authorized sender\\n     * @custom:error UpdateTypeNotActive Thrown if update type is not active\\n     * @custom:error ZeroAddressNotAllowed Thrown if market is the zero address\\n     * @custom:event UpdatePublished Emitted when the update is successfully published\\n     */\\n    function publishRiskParameterUpdate(\\n        string memory referenceId,\\n        bytes memory newValue,\\n        string memory updateType,\\n        address market,\\n        uint96 poolId,\\n        uint32 dstEid,\\n        bytes memory additionalData\\n    ) external;\\n\\n    /**\\n     * @notice Publishes multiple risk parameter updates in a single transaction.\\n     * @param referenceIds Array of external reference IDs, one for each update\\n     * @param newValues Array of new values for each update (encoded as bytes)\\n     * @param updateTypes Array of update types, all must be active update types\\n     * @param markets Array of market addresses for each update\\n     * @param poolIds Array of pool identifiers for eMode-style collateral configuration (0 for regular markets)\\n     * @param dstEid Array of destination endpoint IDs for cross-chain routing\\n     * @param additionalData Array of additional data for each update\\n     * @custom:error SenderNotAuthorized Thrown if caller is not an authorized sender\\n     * @custom:error ArrayLengthMismatch Thrown if all arrays don't have the same length\\n     * @custom:error UpdateTypeNotActive Thrown if any update type is not active\\n     * @custom:error ZeroAddressNotAllowed Thrown if any market is the zero address\\n     * @custom:event UpdatePublished Emitted for each successfully published update\\n     */\\n    function publishBulkRiskParameterUpdates(\\n        string[] memory referenceIds,\\n        bytes[] memory newValues,\\n        string[] memory updateTypes,\\n        address[] memory markets,\\n        uint96[] memory poolIds,\\n        uint32[] memory dstEid,\\n        bytes[] memory additionalData\\n    ) external;\\n}\\n\",\"keccak256\":\"0x8a30b030d5be3cefabf55d889d0a06447613a9ada5a917730b7ec833bda167cd\",\"license\":\"MIT\"},\"contracts/RiskSteward/RiskOracle.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity 0.8.25;\\n\\nimport { AccessControlledV8 } from \\\"../Governance/AccessControlledV8.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\nimport { IRiskOracle, RiskParameterUpdate } from \\\"./Interfaces/IRiskOracle.sol\\\";\\n\\n/**\\n * @title Risk Oracle\\n * @author Venus\\n * @notice Contract for managing and publishing risk parameter updates for Risk-Steward Updates\\n */\\ncontract RiskOracle is IRiskOracle, AccessControlledV8 {\\n    /// @notice Counter to keep track of the total number of updates\\n    uint256 public updateCounter;\\n\\n    /// @notice Array to store all update types\\n    string[] public allUpdateTypes;\\n\\n    /// @notice Whitelist of valid update type identifiers, keyed by updateType hash\\n    mapping(bytes32 => bool) public activeUpdateTypes;\\n\\n    /// @notice Mapping from unique update ID to the update details\\n    mapping(uint256 => RiskParameterUpdate) public updatesById;\\n\\n    /// @notice Authorized accounts capable of proposing updates\\n    mapping(address => bool) public authorizedSenders;\\n\\n    /// @notice Mapping to store the latest update ID for each combination of update type key and market\\n    mapping(bytes32 updateTypeKey => mapping(address market => uint256 updateId)) public latestUpdateIdByMarketAndType;\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[44] private __gap;\\n\\n    /**\\n     * @notice Modifier that restricts function access to authorized senders only\\n     */\\n    modifier onlyAuthorized() {\\n        if (!authorizedSenders[msg.sender]) {\\n            revert SenderNotAuthorized();\\n        }\\n        _;\\n    }\\n\\n    /**\\n     * @notice Disables initializers\\n     * @custom:oz-upgrades-unsafe-allow constructor\\n     */\\n    constructor() {\\n        _disableInitializers();\\n    }\\n\\n    /**\\n     * @notice Initializes the contract with access control manager\\n     * @param accessControlManager_ Address of the access control manager\\n     * @custom:error Reverts with \\\"invalid acess control manager address\\\" if accessControlManager_ is zero address\\n     */\\n    function initialize(address accessControlManager_) external initializer {\\n        __AccessControlled_init(accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Adds a new sender to the list of addresses authorized to perform updates\\n     * @param sender Address to be authorized\\n     * @custom:access Controlled by AccessControlManager\\n     * @custom:error Throws ZeroAddressNotAllowed if sender is zero address\\n     * @custom:error Throws SenderAlreadyAuthorized if sender is already authorized\\n     * @custom:error Throws Unauthorized if caller is not allowed by AccessControlManager\\n     * @custom:event Emits AuthorizedSenderAdded when sender is successfully added\\n     */\\n    function addAuthorizedSender(address sender) external {\\n        _checkAccessAllowed(\\\"addAuthorizedSender(address)\\\");\\n        ensureNonzeroAddress(sender);\\n        if (authorizedSenders[sender]) {\\n            revert SenderAlreadyAuthorized();\\n        }\\n        authorizedSenders[sender] = true;\\n        emit AuthorizedSenderAdded(sender);\\n    }\\n\\n    /**\\n     * @notice Removes an address from the list of authorized senders\\n     * @param sender Address to be unauthorized\\n     * @custom:access Controlled by AccessControlManager\\n     * @custom:error Throws SenderNotAuthorized if sender is not currently authorized\\n     * @custom:error Throws Unauthorized if caller is not allowed by AccessControlManager\\n     * @custom:event Emits AuthorizedSenderRemoved when sender is successfully removed\\n     */\\n    function removeAuthorizedSender(address sender) external {\\n        _checkAccessAllowed(\\\"removeAuthorizedSender(address)\\\");\\n        if (!authorizedSenders[sender]) {\\n            revert SenderNotAuthorized();\\n        }\\n        delete authorizedSenders[sender];\\n        emit AuthorizedSenderRemoved(sender);\\n    }\\n\\n    /**\\n     * @notice Adds a new type of update to the list of authorized update types\\n     * @param newUpdateType New type of update to allow\\n     * @custom:access Controlled by AccessControlManager\\n     * @custom:error Throws InvalidUpdateTypeString if update type string is empty or exceeds 64 characters\\n     * @custom:error Throws UpdateTypeAlreadyExists if update type already exists\\n     * @custom:error Throws Unauthorized if caller is not allowed by AccessControlManager\\n     * @custom:event Emits UpdateTypeAdded when update type is successfully added\\n     */\\n    function addUpdateType(string memory newUpdateType) external {\\n        _checkAccessAllowed(\\\"addUpdateType(string)\\\");\\n        if (bytes(newUpdateType).length == 0 || bytes(newUpdateType).length > 64) {\\n            revert InvalidUpdateTypeString();\\n        }\\n        bytes32 key = keccak256(bytes(newUpdateType));\\n\\n        if (_updateTypeExists(key)) {\\n            revert UpdateTypeAlreadyExists();\\n        }\\n\\n        activeUpdateTypes[key] = true;\\n        allUpdateTypes.push(newUpdateType);\\n        emit UpdateTypeAdded(newUpdateType);\\n    }\\n\\n    /**\\n     * @notice Sets the active status of an existing update type\\n     * @param updateType The update type to set active status for\\n     * @param active True to activate, false to deactivate\\n     * @custom:access Controlled by AccessControlManager\\n     * @custom:error Throws UpdateTypeNotFound if update type doesn't exist\\n     * @custom:error Throws UpdateTypeStatusUnchanged if status is already set to the desired value\\n     * @custom:error Throws Unauthorized if caller is not allowed by AccessControlManager\\n     * @custom:event Emits UpdateTypeActiveStatusChanged when status is successfully changed\\n     */\\n    function setUpdateTypeActive(string memory updateType, bool active) external {\\n        _checkAccessAllowed(\\\"setUpdateTypeActive(string,bool)\\\");\\n        bytes32 key = keccak256(bytes(updateType));\\n\\n        if (!_updateTypeExists(key)) {\\n            revert UpdateTypeNotFound();\\n        }\\n\\n        bool previousActive = activeUpdateTypes[key];\\n        if (previousActive == active) {\\n            revert UpdateTypeStatusUnchanged();\\n        }\\n\\n        activeUpdateTypes[key] = active;\\n        emit UpdateTypeActiveStatusChanged(updateType, previousActive, active);\\n    }\\n\\n    /**\\n     * @notice Publishes a new risk parameter update\\n     * @param referenceId An external reference ID associated with the update\\n     * @param newValue The new value of the risk parameter being updated\\n     * @param updateType Type of update performed, must be previously authorized\\n     * @param market Address for market of the parameter update\\n     * @param poolId Pool identifier for eMode-style collateral configuration (0 for regular markets)\\n     * @param dstEid Destination endpoint ID for cross-chain routing\\n     * @param additionalData Additional data for the update\\n     * @custom:error Throws SenderNotAuthorized if caller is not an authorized sender\\n     * @custom:error Throws UpdateTypeNotActive if update type is not active\\n     * @custom:error Throws ZeroAddressNotAllowed if market is zero address\\n     * @custom:event Emits UpdatePublished when update is successfully published\\n     */\\n    function publishRiskParameterUpdate(\\n        string memory referenceId,\\n        bytes memory newValue,\\n        string memory updateType,\\n        address market,\\n        uint96 poolId,\\n        uint32 dstEid,\\n        bytes memory additionalData\\n    ) external onlyAuthorized {\\n        _publishUpdate(referenceId, newValue, updateType, market, poolId, dstEid, additionalData);\\n    }\\n\\n    /**\\n     * @notice Publishes multiple risk parameter updates in a single transaction\\n     * @param referenceIds Array of external reference IDs\\n     * @param newValues Array of new values for each update\\n     * @param updateTypes Array of types for each update, all must be authorized\\n     * @param markets Array of addresses for markets of the parameter updates\\n     * @param poolIds Array of pool identifiers for eMode-style collateral configuration (0 for regular markets)\\n     * @param dstEid Array of destination endpoint IDs for cross-chain routing\\n     * @param additionalData Array of additional data for the updates\\n     * @custom:error Throws SenderNotAuthorized if caller is not an authorized sender\\n     * @custom:error Throws ArrayLengthMismatch if the array lengths do not match or if no updates are provided\\n     * @custom:error Throws UpdateTypeNotActive if any update type is not active\\n     * @custom:error Throws ZeroAddressNotAllowed if any market is zero address\\n     * @custom:event Emits UpdatePublished for each successfully published update\\n     */\\n    function publishBulkRiskParameterUpdates(\\n        string[] memory referenceIds,\\n        bytes[] memory newValues,\\n        string[] memory updateTypes,\\n        address[] memory markets,\\n        uint96[] memory poolIds,\\n        uint32[] memory dstEid,\\n        bytes[] memory additionalData\\n    ) external onlyAuthorized {\\n        uint256 length = referenceIds.length;\\n        if (\\n            length == 0 ||\\n            length != newValues.length ||\\n            length != updateTypes.length ||\\n            length != markets.length ||\\n            length != poolIds.length ||\\n            length != dstEid.length ||\\n            length != additionalData.length\\n        ) {\\n            revert ArrayLengthMismatch();\\n        }\\n        for (uint256 i = 0; i < length; ++i) {\\n            _publishUpdate(\\n                referenceIds[i],\\n                newValues[i],\\n                updateTypes[i],\\n                markets[i],\\n                poolIds[i],\\n                dstEid[i],\\n                additionalData[i]\\n            );\\n        }\\n    }\\n\\n    /**\\n     * @notice Fetches the most recent update for a specific parameter in a specific market\\n     * @param updateType The identifier for the parameter\\n     * @param market The market identifier\\n     * @return The most recent RiskParameterUpdate for the specified parameter and market\\n     * @custom:error Throws NoUpdateFound if no update exists for the specified parameter and market\\n     */\\n    function getLatestUpdateByTypeAndMarket(\\n        string memory updateType,\\n        address market\\n    ) external view returns (RiskParameterUpdate memory) {\\n        bytes32 updateTypeKey = keccak256(bytes(updateType));\\n        uint256 updateId = latestUpdateIdByMarketAndType[updateTypeKey][market];\\n        if (updateId == 0) {\\n            revert NoUpdateFound();\\n        }\\n        return updatesById[updateId];\\n    }\\n\\n    /**\\n     * @notice Fetches the update for a provided updateId\\n     * @param updateId Update ID\\n     * @return The RiskParameterUpdate for the specified id\\n     * @custom:error Throws InvalidUpdateId if updateId is 0 or greater than updateCounter\\n     */\\n    function getUpdateById(uint256 updateId) external view returns (RiskParameterUpdate memory) {\\n        if (updateId == 0 || updateId > updateCounter) {\\n            revert InvalidUpdateId();\\n        }\\n        return updatesById[updateId];\\n    }\\n\\n    /**\\n     * @notice Publishes a new risk parameter update internally\\n     * @param referenceId An external reference ID associated with the update\\n     * @param newValue The new value of the risk parameter being updated\\n     * @param updateType Type of update performed, must be previously authorized\\n     * @param market Address for market of the parameter update\\n     * @param poolId Pool identifier for eMode-style collateral configuration (0 for regular markets)\\n     * @param dstEid Destination endpoint ID for cross-chain routing\\n     * @param additionalData Additional data for the update\\n     * @custom:error Throws ZeroAddressNotAllowed if market is zero address\\n     * @custom:error Throws UpdateTypeNotActive if update type is not active\\n     * @custom:event Emits UpdatePublished when update is successfully published\\n     */\\n    function _publishUpdate(\\n        string memory referenceId,\\n        bytes memory newValue,\\n        string memory updateType,\\n        address market,\\n        uint96 poolId,\\n        uint32 dstEid,\\n        bytes memory additionalData\\n    ) internal {\\n        ensureNonzeroAddress(market);\\n        bytes32 updateTypeKey = keccak256(bytes(updateType));\\n        if (!activeUpdateTypes[updateTypeKey]) {\\n            revert UpdateTypeNotActive();\\n        }\\n        uint256 newUpdateCounter = ++updateCounter;\\n        uint256 previousUpdateId = latestUpdateIdByMarketAndType[updateTypeKey][market];\\n        bytes memory previousValue = updatesById[previousUpdateId].newValue;\\n\\n        RiskParameterUpdate memory newUpdate = RiskParameterUpdate({\\n            referenceId: referenceId,\\n            updateId: newUpdateCounter,\\n            market: market,\\n            updateType: updateType,\\n            updateTypeKey: updateTypeKey,\\n            newValue: newValue,\\n            previousValue: previousValue,\\n            timestamp: block.timestamp,\\n            publisher: msg.sender,\\n            poolId: poolId,\\n            destLzEid: dstEid,\\n            additionalData: additionalData\\n        });\\n        updatesById[newUpdateCounter] = newUpdate;\\n\\n        // Update the latest update ID for the (updateTypeKey, market) pair\\n        latestUpdateIdByMarketAndType[updateTypeKey][market] = newUpdateCounter;\\n\\n        emit UpdatePublished(\\n            referenceId,\\n            newUpdateCounter,\\n            market,\\n            updateType,\\n            newValue,\\n            previousValue,\\n            block.timestamp,\\n            msg.sender,\\n            additionalData\\n        );\\n    }\\n\\n    /**\\n     * @notice Returns the total number of update types in the allUpdateTypes array\\n     * @return The length of the allUpdateTypes array\\n     */\\n    function allUpdateTypesLength() external view returns (uint256) {\\n        return allUpdateTypes.length;\\n    }\\n\\n    /**\\n     * @notice Gets the latest update ID for a specific market and update type (string) combination\\n     * @param updateType The update type string\\n     * @param market The market address\\n     * @return The latest update ID for the given market and update type, or 0 if none exists\\n     */\\n    function getLatestUpdateIdByTypeAndMarket(\\n        string memory updateType,\\n        address market\\n    ) external view returns (uint256) {\\n        bytes32 updateTypeKey = keccak256(bytes(updateType));\\n        return latestUpdateIdByMarketAndType[updateTypeKey][market];\\n    }\\n\\n    /**\\n     * @notice Checks if a given update type is currently active.\\n     * @param updateType The update type string to check\\n     * @return True if the update type is active, false otherwise\\n     */\\n    function getActiveUpdateTypes(string memory updateType) external view returns (bool) {\\n        bytes32 key = keccak256(bytes(updateType));\\n        return activeUpdateTypes[key];\\n    }\\n\\n    /**\\n     * @notice Returns all update types in the allUpdateTypes array\\n     * @return An array of all update type strings\\n     */\\n    function getAllUpdateTypes() external view returns (string[] memory) {\\n        return allUpdateTypes;\\n    }\\n\\n    /**\\n     * @notice Checks if an update type exists in the allUpdateTypes array\\n     * @param updateTypeKey The keccak256 hash of the update type string\\n     * @return True if the update type exists, false otherwise\\n     */\\n    function _updateTypeExists(bytes32 updateTypeKey) internal view returns (bool) {\\n        uint256 length = allUpdateTypes.length;\\n        for (uint256 i = 0; i < length; ++i) {\\n            if (keccak256(bytes(allUpdateTypes[i])) == updateTypeKey) {\\n                return true;\\n            }\\n        }\\n        return false;\\n    }\\n\\n    /**\\n     * @notice Disables renounceOwnership function\\n     * @custom:error Throws RenounceOwnershipNotAllowed\\n     */\\n    function renounceOwnership() public pure override {\\n        revert RenounceOwnershipNotAllowed();\\n    }\\n}\\n\",\"keccak256\":\"0x4ee55c0f7097b550d753bac93b15db8c125ad22fab0e5e48fa37767c0e91c685\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":6086,"contract":"contracts/RiskSteward/RiskOracle.sol:RiskOracle","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":6089,"contract":"contracts/RiskSteward/RiskOracle.sol:RiskOracle","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":6573,"contract":"contracts/RiskSteward/RiskOracle.sol:RiskOracle","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":5958,"contract":"contracts/RiskSteward/RiskOracle.sol:RiskOracle","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":6078,"contract":"contracts/RiskSteward/RiskOracle.sol:RiskOracle","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":5867,"contract":"contracts/RiskSteward/RiskOracle.sol:RiskOracle","label":"_pendingOwner","offset":0,"slot":"101","type":"t_address"},{"astId":5946,"contract":"contracts/RiskSteward/RiskOracle.sol:RiskOracle","label":"__gap","offset":0,"slot":"102","type":"t_array(t_uint256)49_storage"},{"astId":13718,"contract":"contracts/RiskSteward/RiskOracle.sol:RiskOracle","label":"_accessControlManager","offset":0,"slot":"151","type":"t_contract(IAccessControlManagerV8)13903"},{"astId":13723,"contract":"contracts/RiskSteward/RiskOracle.sol:RiskOracle","label":"__gap","offset":0,"slot":"152","type":"t_array(t_uint256)49_storage"},{"astId":17631,"contract":"contracts/RiskSteward/RiskOracle.sol:RiskOracle","label":"updateCounter","offset":0,"slot":"201","type":"t_uint256"},{"astId":17635,"contract":"contracts/RiskSteward/RiskOracle.sol:RiskOracle","label":"allUpdateTypes","offset":0,"slot":"202","type":"t_array(t_string_storage)dyn_storage"},{"astId":17640,"contract":"contracts/RiskSteward/RiskOracle.sol:RiskOracle","label":"activeUpdateTypes","offset":0,"slot":"203","type":"t_mapping(t_bytes32,t_bool)"},{"astId":17646,"contract":"contracts/RiskSteward/RiskOracle.sol:RiskOracle","label":"updatesById","offset":0,"slot":"204","type":"t_mapping(t_uint256,t_struct(RiskParameterUpdate)16568_storage)"},{"astId":17651,"contract":"contracts/RiskSteward/RiskOracle.sol:RiskOracle","label":"authorizedSenders","offset":0,"slot":"205","type":"t_mapping(t_address,t_bool)"},{"astId":17658,"contract":"contracts/RiskSteward/RiskOracle.sol:RiskOracle","label":"latestUpdateIdByMarketAndType","offset":0,"slot":"206","type":"t_mapping(t_bytes32,t_mapping(t_address,t_uint256))"},{"astId":17663,"contract":"contracts/RiskSteward/RiskOracle.sol:RiskOracle","label":"__gap","offset":0,"slot":"207","type":"t_array(t_uint256)44_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_string_storage)dyn_storage":{"base":"t_string_storage","encoding":"dynamic_array","label":"string[]","numberOfBytes":"32"},"t_array(t_uint256)44_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[44]","numberOfBytes":"1408"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_contract(IAccessControlManagerV8)13903":{"encoding":"inplace","label":"contract IAccessControlManagerV8","numberOfBytes":"20"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_bytes32,t_bool)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_bytes32,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_uint256,t_struct(RiskParameterUpdate)16568_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => struct RiskParameterUpdate)","numberOfBytes":"32","value":"t_struct(RiskParameterUpdate)16568_storage"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(RiskParameterUpdate)16568_storage":{"encoding":"inplace","label":"struct RiskParameterUpdate","members":[{"astId":16545,"contract":"contracts/RiskSteward/RiskOracle.sol:RiskOracle","label":"referenceId","offset":0,"slot":"0","type":"t_string_storage"},{"astId":16547,"contract":"contracts/RiskSteward/RiskOracle.sol:RiskOracle","label":"updateId","offset":0,"slot":"1","type":"t_uint256"},{"astId":16549,"contract":"contracts/RiskSteward/RiskOracle.sol:RiskOracle","label":"market","offset":0,"slot":"2","type":"t_address"},{"astId":16551,"contract":"contracts/RiskSteward/RiskOracle.sol:RiskOracle","label":"updateType","offset":0,"slot":"3","type":"t_string_storage"},{"astId":16553,"contract":"contracts/RiskSteward/RiskOracle.sol:RiskOracle","label":"updateTypeKey","offset":0,"slot":"4","type":"t_bytes32"},{"astId":16555,"contract":"contracts/RiskSteward/RiskOracle.sol:RiskOracle","label":"newValue","offset":0,"slot":"5","type":"t_bytes_storage"},{"astId":16557,"contract":"contracts/RiskSteward/RiskOracle.sol:RiskOracle","label":"previousValue","offset":0,"slot":"6","type":"t_bytes_storage"},{"astId":16559,"contract":"contracts/RiskSteward/RiskOracle.sol:RiskOracle","label":"timestamp","offset":0,"slot":"7","type":"t_uint256"},{"astId":16561,"contract":"contracts/RiskSteward/RiskOracle.sol:RiskOracle","label":"publisher","offset":0,"slot":"8","type":"t_address"},{"astId":16563,"contract":"contracts/RiskSteward/RiskOracle.sol:RiskOracle","label":"poolId","offset":20,"slot":"8","type":"t_uint96"},{"astId":16565,"contract":"contracts/RiskSteward/RiskOracle.sol:RiskOracle","label":"destLzEid","offset":0,"slot":"9","type":"t_uint32"},{"astId":16567,"contract":"contracts/RiskSteward/RiskOracle.sol:RiskOracle","label":"additionalData","offset":0,"slot":"10","type":"t_bytes_storage"}],"numberOfBytes":"352"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint32":{"encoding":"inplace","label":"uint32","numberOfBytes":"4"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"},"t_uint96":{"encoding":"inplace","label":"uint96","numberOfBytes":"12"}}},"userdoc":{"errors":{"ArrayLengthMismatch()":[{"notice":"Thrown when array lengths don't match in bulk operations"}],"InvalidUpdateId()":[{"notice":"Thrown when update ID is invalid"}],"InvalidUpdateTypeString()":[{"notice":"Thrown when update type string is invalid"}],"NoUpdateFound()":[{"notice":"Thrown when no update is found"}],"RenounceOwnershipNotAllowed()":[{"notice":"Thrown when trying to renounce ownership"}],"SenderAlreadyAuthorized()":[{"notice":"Thrown when sender is already authorized"}],"SenderNotAuthorized()":[{"notice":"Thrown when sender is not authorized"}],"Unauthorized(address,address,string)":[{"notice":"Thrown when the action is prohibited by AccessControlManager"}],"UpdateTypeAlreadyExists()":[{"notice":"Thrown when update type already exists"}],"UpdateTypeNotActive()":[{"notice":"Thrown when update type is not active"}],"UpdateTypeNotFound()":[{"notice":"Thrown when update type doesn't exist"}],"UpdateTypeStatusUnchanged()":[{"notice":"Thrown when update type active status is already set to the desired value"}],"ZeroAddressNotAllowed()":[{"notice":"Thrown if the supplied address is a zero address where it is not allowed"}]},"events":{"AuthorizedSenderAdded(address)":{"notice":"Event emitted when a new authorized sender is added"},"AuthorizedSenderRemoved(address)":{"notice":"Event emitted when an authorized sender is removed"},"NewAccessControlManager(address,address)":{"notice":"Emitted when access control manager contract address is changed"},"UpdatePublished(string,uint256,address,string,bytes,bytes,uint256,address,bytes)":{"notice":"Event emitted when a risk parameter update is published"},"UpdateTypeActiveStatusChanged(string,bool,bool)":{"notice":"Event emitted when an update type's active status is changed"},"UpdateTypeAdded(string)":{"notice":"Event emitted when a new update type is added"}},"kind":"user","methods":{"accessControlManager()":{"notice":"Returns the address of the access control manager contract"},"activeUpdateTypes(bytes32)":{"notice":"Whitelist of valid update type identifiers, keyed by updateType hash"},"addAuthorizedSender(address)":{"notice":"Adds a new sender to the list of addresses authorized to perform updates"},"addUpdateType(string)":{"notice":"Adds a new type of update to the list of authorized update types"},"allUpdateTypes(uint256)":{"notice":"Array to store all update types"},"allUpdateTypesLength()":{"notice":"Returns the total number of update types in the allUpdateTypes array"},"authorizedSenders(address)":{"notice":"Authorized accounts capable of proposing updates"},"constructor":{"notice":"Disables initializers"},"getActiveUpdateTypes(string)":{"notice":"Checks if a given update type is currently active."},"getAllUpdateTypes()":{"notice":"Returns all update types in the allUpdateTypes array"},"getLatestUpdateByTypeAndMarket(string,address)":{"notice":"Fetches the most recent update for a specific parameter in a specific market"},"getLatestUpdateIdByTypeAndMarket(string,address)":{"notice":"Gets the latest update ID for a specific market and update type (string) combination"},"getUpdateById(uint256)":{"notice":"Fetches the update for a provided updateId"},"initialize(address)":{"notice":"Initializes the contract with access control manager"},"latestUpdateIdByMarketAndType(bytes32,address)":{"notice":"Mapping to store the latest update ID for each combination of update type key and market"},"publishBulkRiskParameterUpdates(string[],bytes[],string[],address[],uint96[],uint32[],bytes[])":{"notice":"Publishes multiple risk parameter updates in a single transaction"},"publishRiskParameterUpdate(string,bytes,string,address,uint96,uint32,bytes)":{"notice":"Publishes a new risk parameter update"},"removeAuthorizedSender(address)":{"notice":"Removes an address from the list of authorized senders"},"renounceOwnership()":{"notice":"Disables renounceOwnership function"},"setAccessControlManager(address)":{"notice":"Sets the address of AccessControlManager"},"setUpdateTypeActive(string,bool)":{"notice":"Sets the active status of an existing update type"},"updateCounter()":{"notice":"Counter to keep track of the total number of updates"},"updatesById(uint256)":{"notice":"Mapping from unique update ID to the update details"}},"notice":"Contract for managing and publishing risk parameter updates for Risk-Steward Updates","version":1}}},"contracts/RiskSteward/RiskStewardReceiver.sol":{"RiskStewardReceiver":{"abi":[{"inputs":[{"internalType":"address","name":"riskOracle_","type":"address"},{"internalType":"address","name":"endpoint_","type":"address"},{"internalType":"uint32","name":"layerZeroLzEid_","type":"uint32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ConfigNotActive","type":"error"},{"inputs":[],"name":"ConfigStatusUnchanged","type":"error"},{"inputs":[],"name":"ExecutorStatusUnchanged","type":"error"},{"inputs":[],"name":"InvalidDebounce","type":"error"},{"inputs":[],"name":"InvalidDelegate","type":"error"},{"inputs":[],"name":"InvalidEndpointCall","type":"error"},{"inputs":[],"name":"InvalidLayerZeroEid","type":"error"},{"inputs":[],"name":"InvalidLzSendCaller","type":"error"},{"inputs":[{"internalType":"uint16","name":"optionType","type":"uint16"}],"name":"InvalidOptionType","type":"error"},{"inputs":[],"name":"InvalidRegisteredUpdate","type":"error"},{"inputs":[],"name":"InvalidTimelock","type":"error"},{"inputs":[],"name":"InvalidUpdateToResend","type":"error"},{"inputs":[],"name":"InvalidUpdateType","type":"error"},{"inputs":[],"name":"LzTokenUnavailable","type":"error"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"name":"NoPeer","type":"error"},{"inputs":[],"name":"NotAnExecutor","type":"error"},{"inputs":[{"internalType":"uint256","name":"msgValue","type":"uint256"}],"name":"NotEnoughNative","type":"error"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"}],"name":"OnlyPeer","type":"error"},{"inputs":[],"name":"PauseStatusUnchanged","type":"error"},{"inputs":[],"name":"PausedError","type":"error"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"RegisteredUpdateTypeExist","type":"error"},{"inputs":[],"name":"RenounceOwnershipNotAllowed","type":"error"},{"inputs":[],"name":"TransferFailed","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"calledContract","type":"address"},{"internalType":"string","name":"methodSignature","type":"string"}],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"UnsupportedUpdateType","type":"error"},{"inputs":[],"name":"UpdateAlreadyResolved","type":"error"},{"inputs":[],"name":"UpdateIsExpired","type":"error"},{"inputs":[],"name":"UpdateNotFound","type":"error"},{"inputs":[],"name":"UpdateNotUnlocked","type":"error"},{"inputs":[],"name":"UpdateTooFrequent","type":"error"},{"inputs":[],"name":"UpdateWillExpireBeforeUnlock","type":"error"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"updateTypeHash","type":"bytes32"},{"indexed":false,"internalType":"string","name":"updateType","type":"string"},{"indexed":false,"internalType":"bool","name":"previousActive","type":"bool"},{"indexed":false,"internalType":"bool","name":"active","type":"bool"}],"name":"ConfigActiveUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"executor","type":"address"},{"indexed":false,"internalType":"bool","name":"previousApproved","type":"bool"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ExecutorStatusUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldAccessControlManager","type":"address"},{"indexed":false,"internalType":"address","name":"newAccessControlManager","type":"address"}],"name":"NewAccessControlManager","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","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":"bool","name":"previousPaused","type":"bool"},{"indexed":false,"internalType":"bool","name":"paused","type":"bool"}],"name":"PauseStatusUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"eid","type":"uint32"},{"indexed":false,"internalType":"bytes32","name":"peer","type":"bytes32"}],"name":"PeerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"updateTypeHash","type":"bytes32"},{"indexed":false,"internalType":"string","name":"updateType","type":"string"},{"indexed":true,"internalType":"address","name":"previousRiskSteward","type":"address"},{"indexed":true,"internalType":"address","name":"riskSteward","type":"address"},{"indexed":false,"internalType":"uint256","name":"previousDebounce","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"debounce","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"previousTimelock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timelock","type":"uint256"},{"indexed":false,"internalType":"bool","name":"previousActive","type":"bool"},{"indexed":false,"internalType":"bool","name":"active","type":"bool"}],"name":"RiskParameterConfigUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"SweepNative","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"updateId","type":"uint256"}],"name":"UpdateExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"updateId","type":"uint256"}],"name":"UpdateExpired","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"updateId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"unlockTime","type":"uint256"},{"indexed":false,"internalType":"string","name":"updateType","type":"string"},{"indexed":true,"internalType":"address","name":"market","type":"address"}],"name":"UpdateRegistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"updateId","type":"uint256"}],"name":"UpdateRejected","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"updateId","type":"uint256"},{"indexed":true,"internalType":"uint32","name":"destLzEid","type":"uint32"},{"indexed":true,"internalType":"string","name":"updateType","type":"string"},{"indexed":true,"internalType":"address","name":"market","type":"address"}],"name":"UpdateResentToDestination","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"updateId","type":"uint256"},{"indexed":true,"internalType":"uint32","name":"destLzEid","type":"uint32"},{"indexed":true,"internalType":"string","name":"updateType","type":"string"},{"indexed":true,"internalType":"address","name":"market","type":"address"}],"name":"UpdateSentToDestination","type":"event"},{"inputs":[],"name":"LAYER_ZERO_EID","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RISK_ORACLE","outputs":[{"internalType":"contract IRiskOracle","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UPDATE_EXPIRATION_TIME","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"accessControlManager","outputs":[{"internalType":"contract IAccessControlManagerV8","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"endpoint","outputs":[{"internalType":"contract ILayerZeroEndpointV2","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"updateId","type":"uint256"}],"name":"executeRegisteredUpdate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"updateType","type":"string"},{"internalType":"address","name":"comptroller","type":"address"}],"name":"getExecutableUpdates","outputs":[{"internalType":"uint256[]","name":"executableUpdates","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"updateType","type":"string"},{"internalType":"address","name":"market","type":"address"}],"name":"getLastProcessedUpdate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"updateType","type":"string"},{"internalType":"address","name":"market","type":"address"}],"name":"getLastRegisteredUpdate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"updateType","type":"string"}],"name":"getRiskParameterConfig","outputs":[{"components":[{"internalType":"bool","name":"active","type":"bool"},{"internalType":"uint256","name":"debounce","type":"uint256"},{"internalType":"uint256","name":"timelock","type":"uint256"},{"internalType":"address","name":"riskSteward","type":"address"}],"internalType":"struct IRiskStewardReceiver.RiskParamConfig","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"acm_","type":"address"},{"internalType":"address","name":"delegate_","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"updateId","type":"uint256"}],"name":"isUpdateExecutable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"market","type":"address"}],"name":"lastProcessedUpdate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"market","type":"address"}],"name":"lastRegisteredUpdate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"components":[{"internalType":"string","name":"referenceId","type":"string"},{"internalType":"uint256","name":"updateId","type":"uint256"},{"internalType":"address","name":"market","type":"address"},{"internalType":"string","name":"updateType","type":"string"},{"internalType":"bytes32","name":"updateTypeKey","type":"bytes32"},{"internalType":"bytes","name":"newValue","type":"bytes"},{"internalType":"bytes","name":"previousValue","type":"bytes"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"address","name":"publisher","type":"address"},{"internalType":"uint96","name":"poolId","type":"uint96"},{"internalType":"uint32","name":"destLzEid","type":"uint32"},{"internalType":"bytes","name":"additionalData","type":"bytes"}],"internalType":"struct RiskParameterUpdate","name":"update","type":"tuple"},{"internalType":"bytes","name":"options","type":"bytes"},{"components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}],"internalType":"struct MessagingFee","name":"fee","type":"tuple"},{"internalType":"address","name":"refundAddress","type":"address"}],"name":"lzSend","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"oAppVersion","outputs":[{"internalType":"uint64","name":"senderVersion","type":"uint64"},{"internalType":"uint64","name":"receiverVersion","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"name":"peers","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"updateId","type":"uint256"}],"name":"processUpdate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"referenceId","type":"string"},{"internalType":"uint256","name":"updateId","type":"uint256"},{"internalType":"address","name":"market","type":"address"},{"internalType":"string","name":"updateType","type":"string"},{"internalType":"bytes32","name":"updateTypeKey","type":"bytes32"},{"internalType":"bytes","name":"newValue","type":"bytes"},{"internalType":"bytes","name":"previousValue","type":"bytes"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"address","name":"publisher","type":"address"},{"internalType":"uint96","name":"poolId","type":"uint96"},{"internalType":"uint32","name":"destLzEid","type":"uint32"},{"internalType":"bytes","name":"additionalData","type":"bytes"}],"internalType":"struct RiskParameterUpdate","name":"update","type":"tuple"},{"internalType":"bytes","name":"options","type":"bytes"},{"internalType":"bool","name":"payInLzToken","type":"bool"}],"name":"quote","outputs":[{"components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}],"internalType":"struct MessagingFee","name":"fee","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"updateId","type":"uint256"}],"name":"rejectUpdate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"updateId","type":"uint256"},{"internalType":"bytes","name":"options","type":"bytes"}],"name":"resendRemoteUpdate","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"riskParameterConfigs","outputs":[{"internalType":"bool","name":"active","type":"bool"},{"internalType":"uint256","name":"debounce","type":"uint256"},{"internalType":"uint256","name":"timelock","type":"uint256"},{"internalType":"address","name":"riskSteward","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"accessControlManager_","type":"address"}],"name":"setAccessControlManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"updateType","type":"string"},{"internalType":"bool","name":"active","type":"bool"}],"name":"setConfigActive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"name":"setDelegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"paused_","type":"bool"}],"name":"setPaused","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"name":"setPeer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"updateType","type":"string"},{"internalType":"address","name":"riskSteward","type":"address"},{"internalType":"uint256","name":"debounce","type":"uint256"},{"internalType":"uint256","name":"timelock","type":"uint256"}],"name":"setRiskParameterConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"executor","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setWhitelistedExecutor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sweepNative","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"updateId","type":"uint256"}],"name":"updates","outputs":[{"internalType":"uint256","name":"updateId","type":"uint256"},{"internalType":"uint256","name":"unlockTime","type":"uint256"},{"internalType":"enum IRiskStewardReceiver.UpdateStatus","name":"status","type":"uint8"},{"internalType":"address","name":"executor","type":"address"},{"internalType":"uint256","name":"executedAt","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelistedExecutors","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}],"devdoc":{"author":"Venus","custom:security-contact":"https://github.com/VenusProtocol/governance-contracts#discussion","errors":{"TransferFailed()":[{"custom:error":"TransferFailed"}]},"events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."},"PauseStatusUpdated(bool,bool)":{"params":{"paused":"Current pause state","previousPaused":"Previous pause state"}}},"kind":"dev","methods":{"acceptOwnership()":{"details":"The new owner accepts the ownership transfer."},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor","params":{"endpoint_":"The LayerZero endpoint contract used by the underlying `OAppUpgradeable`.","layerZeroLzEid_":"The LayerZero endpoint ID (EID) for this chain.","riskOracle_":"The address of the Risk Oracle contract."}},"executeRegisteredUpdate(uint256)":{"custom:access":"Only whitelisted executors can call this function","custom:error":"Throws NotAnExecutor if the caller is not a whitelisted executorThrows InvalidRegisteredUpdate if the update was never registeredThrows UpdateAlreadyResolved if the update was already executed or rejectedThrows UpdateIsExpired if the update has expiredThrows ConfigNotActive if the config is not activeThrows UpdateNotUnlocked if the unlock time has not passed","custom:event":"Emits UpdateExecuted with the oracle update ID","params":{"updateId":"The oracle update ID of the update to execute"}},"getExecutableUpdates(string,address)":{"params":{"comptroller":"The address of the Comptroller (either Core Pool or Isolated Pools) that manages the markets","updateType":"The human‑readable identifier of the update type to filter by"},"returns":{"executableUpdates":"Array of update IDs that are ready to be executed"}},"getLastProcessedUpdate(string,address)":{"params":{"market":"The address of the market","updateType":"The human-readable identifier of the update type"},"returns":{"_0":"The last processed update ID"}},"getLastRegisteredUpdate(string,address)":{"params":{"market":"The address of the market","updateType":"The human-readable identifier of the update type"},"returns":{"_0":"The last registered update ID"}},"getRiskParameterConfig(string)":{"params":{"updateType":"The human-readable identifier of the update type"},"returns":{"_0":"The risk parameter configuration"}},"initialize(address,address)":{"params":{"acm_":"The address of the Access Control Manager","delegate_":"The address of the OApp owner passed to `__OApp_init`."}},"isUpdateExecutable(uint256)":{"params":{"updateId":"The oracle update ID to query"},"returns":{"_0":"True if the update is pending, not expired, active, and past its timelock"}},"lzSend(uint32,(string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes),bytes,(uint256,uint256),address)":{"custom:error":"InvalidLzSendCaller if called by any address other than this contract","params":{"dstEid":"Destination chain endpoint ID","fee":"Messaging fee structure returned by `quote`","options":"LayerZero message options; if empty, a default executor option is used","refundAddress":"Address to receive any surplus fee refunds","update":"The risk parameter update payload to send"}},"oAppVersion()":{"details":"Providing 0 as the default for OAppReceiver version. Indicates that the OAppReceiver is not implemented. ie. this is a SEND only OApp.If the OApp uses both OAppSender and OAppReceiver, then this needs to be override returning the correct versions","returns":{"receiverVersion":"The version of the OAppReceiver.sol contract.","senderVersion":"The version of the OAppSender.sol contract."}},"owner()":{"details":"Returns the address of the current owner."},"peers(uint32)":{"params":{"_eid":"The endpoint ID."},"returns":{"_0":"peer The address of the peer associated with the specified endpoint."}},"pendingOwner()":{"details":"Returns the address of the pending owner."},"processUpdate(uint256)":{"custom:error":"Throws UpdateAlreadyResolved if the update was already processedThrows UpdateIsExpired if the update has expiredThrows ConfigNotActive if the config is not activeThrows UpdateTooFrequent if the debounce period has not passedThrows RegisteredUpdateTypeExist if there is a non-expired pending update of the same type","custom:event":"Emits UpdateRegistered, UpdateExecuted, or UpdateSentToDestination depending on the update type","params":{"updateId":"The update ID from the oracle's perspective"}},"quote((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes),bytes,bool)":{"params":{"options":"Message execution options (e.g., for sending gas to the destination)","payInLzToken":"Whether to return the fee in ZRO token instead of native gas","update":"The risk parameter update payload to be sent"},"returns":{"fee":"A `MessagingFee` struct containing the calculated gas fee"}},"rejectUpdate(uint256)":{"custom:access":"Only whitelisted executors can call this function","custom:error":"Throws UpdateAlreadyResolved if the update was already executed or rejected","custom:event":"Emits UpdateRejected with the oracle update ID","params":{"updateId":"The oracle update ID of the update to reject"}},"renounceOwnership()":{"custom:error":"Throws RenounceOwnershipNotAllowed"},"resendRemoteUpdate(uint256,bytes)":{"custom:access":"Only whitelisted executors can call this function","custom:error":"Throws NotAnExecutor if the caller is not a whitelisted executorThrows InvalidUpdateToResend if the update status is not SENT_TO_DESTINATIONThrows UpdateIsExpired if the update has expired","custom:event":"Emits UpdateResentToDestination with the update ID, destination chain ID, update type, and market","details":"Duplicate update rejection is handled in the destination contract itself, so resending      the same update multiple times is safe and will be deduplicated on the destination side.","params":{"options":"LayerZero message options; if empty, default executor option is used","updateId":"The oracle update ID to resend"}},"setAccessControlManager(address)":{"custom:access":"Only Governance","custom:event":"Emits NewAccessControlManager event","details":"Admin function to set address of AccessControlManager","params":{"accessControlManager_":"The new address of the AccessControlManager"}},"setConfigActive(string,bool)":{"custom:access":"Controlled by AccessControlManager","custom:error":"Throws UnsupportedUpdateType if the update type is not supportedThrows ConfigStatusUnchanged if the active status is already set to the desired value","custom:event":"Emits ConfigActiveUpdated with the update type hash, update type, previous active status, and the active status","params":{"active":"The active status to set","updateType":"The type of update to configure"}},"setDelegate(address)":{"details":"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.","params":{"_delegate":"The address of the delegate to be set."}},"setPaused(bool)":{"custom:access":"Controlled by AccessControlManager","custom:event":"Emits PauseStatusUpdated","params":{"paused_":"True to pause, false to unpause"}},"setPeer(uint32,bytes32)":{"details":"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.","params":{"_eid":"The endpoint ID.","_peer":"The address of the peer to be associated with the corresponding endpoint."}},"setRiskParameterConfig(string,address,uint256,uint256)":{"custom:access":"Controlled by AccessControlManager","custom:error":"InvalidUpdateType if the update type string is emptyThrows InvalidDebounce if the debounce is 0Throws InvalidTimelock if the timelock is greater than or equal to the expiration timeThrows ZeroAddressNotAllowed if the risk steward address is zero","custom:event":"Emits RiskParameterConfigUpdated","params":{"debounce":"The debounce period for the update","riskSteward":"The address for the risk steward contract responsible for processing the update","timelock":"The timelock period before the update can be executed","updateType":"The type of update to configure"}},"setWhitelistedExecutor(address,bool)":{"custom:access":"Controlled by AccessControlManager","custom:error":"Throws ZeroAddressNotAllowed if the executor address is zeroThrows ExecutorStatusUnchanged if the executor whitelist status is already set to the desired value","custom:event":"Emits ExecutorStatusUpdated with the executor address, previous approval status, and approval status","params":{"approved":"The whitelist status to set (true to whitelist, false to remove)","executor":"The address of the executor"}},"sweepNative()":{"custom:event":"Emits SweepNative event."},"transferOwnership(address)":{"details":"Overrides OwnableUpgradeable and Ownable2StepUpgradeable to resolve      the multiple inheritance ownership transfer conflict."}},"stateVariables":{"__gap":{"details":"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"}},"title":"RiskStewardReceiver","version":1},"evm":{"bytecode":{"functionDebugData":{"@_18470":{"entryPoint":null,"id":18470,"parameterSlots":3,"returnSlots":0},"@_1888":{"entryPoint":null,"id":1888,"parameterSlots":1,"returnSlots":0},"@_disableInitializers_6229":{"entryPoint":154,"id":6229,"parameterSlots":0,"returnSlots":0},"@ensureNonzeroAddress_10945":{"entryPoint":346,"id":10945,"parameterSlots":1,"returnSlots":0},"abi_decode_address_fromMemory":{"entryPoint":388,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_uint32_fromMemory":{"entryPoint":416,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:1245:97","nodeType":"YulBlock","src":"0:1245:97","statements":[{"nativeSrc":"6:3:97","nodeType":"YulBlock","src":"6:3:97","statements":[]},{"body":{"nativeSrc":"74:117:97","nodeType":"YulBlock","src":"74:117:97","statements":[{"nativeSrc":"84:22:97","nodeType":"YulAssignment","src":"84:22:97","value":{"arguments":[{"name":"offset","nativeSrc":"99:6:97","nodeType":"YulIdentifier","src":"99:6:97"}],"functionName":{"name":"mload","nativeSrc":"93:5:97","nodeType":"YulIdentifier","src":"93:5:97"},"nativeSrc":"93:13:97","nodeType":"YulFunctionCall","src":"93:13:97"},"variableNames":[{"name":"value","nativeSrc":"84:5:97","nodeType":"YulIdentifier","src":"84:5:97"}]},{"body":{"nativeSrc":"169:16:97","nodeType":"YulBlock","src":"169:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"178:1:97","nodeType":"YulLiteral","src":"178:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"181:1:97","nodeType":"YulLiteral","src":"181:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"171:6:97","nodeType":"YulIdentifier","src":"171:6:97"},"nativeSrc":"171:12:97","nodeType":"YulFunctionCall","src":"171:12:97"},"nativeSrc":"171:12:97","nodeType":"YulExpressionStatement","src":"171:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"128:5:97","nodeType":"YulIdentifier","src":"128:5:97"},{"arguments":[{"name":"value","nativeSrc":"139:5:97","nodeType":"YulIdentifier","src":"139:5:97"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"154:3:97","nodeType":"YulLiteral","src":"154:3:97","type":"","value":"160"},{"kind":"number","nativeSrc":"159:1:97","nodeType":"YulLiteral","src":"159:1:97","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"150:3:97","nodeType":"YulIdentifier","src":"150:3:97"},"nativeSrc":"150:11:97","nodeType":"YulFunctionCall","src":"150:11:97"},{"kind":"number","nativeSrc":"163:1:97","nodeType":"YulLiteral","src":"163:1:97","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"146:3:97","nodeType":"YulIdentifier","src":"146:3:97"},"nativeSrc":"146:19:97","nodeType":"YulFunctionCall","src":"146:19:97"}],"functionName":{"name":"and","nativeSrc":"135:3:97","nodeType":"YulIdentifier","src":"135:3:97"},"nativeSrc":"135:31:97","nodeType":"YulFunctionCall","src":"135:31:97"}],"functionName":{"name":"eq","nativeSrc":"125:2:97","nodeType":"YulIdentifier","src":"125:2:97"},"nativeSrc":"125:42:97","nodeType":"YulFunctionCall","src":"125:42:97"}],"functionName":{"name":"iszero","nativeSrc":"118:6:97","nodeType":"YulIdentifier","src":"118:6:97"},"nativeSrc":"118:50:97","nodeType":"YulFunctionCall","src":"118:50:97"},"nativeSrc":"115:70:97","nodeType":"YulIf","src":"115:70:97"}]},"name":"abi_decode_address_fromMemory","nativeSrc":"14:177:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"53:6:97","nodeType":"YulTypedName","src":"53:6:97","type":""}],"returnVariables":[{"name":"value","nativeSrc":"64:5:97","nodeType":"YulTypedName","src":"64:5:97","type":""}],"src":"14:177:97"},{"body":{"nativeSrc":"310:336:97","nodeType":"YulBlock","src":"310:336:97","statements":[{"body":{"nativeSrc":"356:16:97","nodeType":"YulBlock","src":"356:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"365:1:97","nodeType":"YulLiteral","src":"365:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"368:1:97","nodeType":"YulLiteral","src":"368:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"358:6:97","nodeType":"YulIdentifier","src":"358:6:97"},"nativeSrc":"358:12:97","nodeType":"YulFunctionCall","src":"358:12:97"},"nativeSrc":"358:12:97","nodeType":"YulExpressionStatement","src":"358:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"331:7:97","nodeType":"YulIdentifier","src":"331:7:97"},{"name":"headStart","nativeSrc":"340:9:97","nodeType":"YulIdentifier","src":"340:9:97"}],"functionName":{"name":"sub","nativeSrc":"327:3:97","nodeType":"YulIdentifier","src":"327:3:97"},"nativeSrc":"327:23:97","nodeType":"YulFunctionCall","src":"327:23:97"},{"kind":"number","nativeSrc":"352:2:97","nodeType":"YulLiteral","src":"352:2:97","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"323:3:97","nodeType":"YulIdentifier","src":"323:3:97"},"nativeSrc":"323:32:97","nodeType":"YulFunctionCall","src":"323:32:97"},"nativeSrc":"320:52:97","nodeType":"YulIf","src":"320:52:97"},{"nativeSrc":"381:50:97","nodeType":"YulAssignment","src":"381:50:97","value":{"arguments":[{"name":"headStart","nativeSrc":"421:9:97","nodeType":"YulIdentifier","src":"421:9:97"}],"functionName":{"name":"abi_decode_address_fromMemory","nativeSrc":"391:29:97","nodeType":"YulIdentifier","src":"391:29:97"},"nativeSrc":"391:40:97","nodeType":"YulFunctionCall","src":"391:40:97"},"variableNames":[{"name":"value0","nativeSrc":"381:6:97","nodeType":"YulIdentifier","src":"381:6:97"}]},{"nativeSrc":"440:59:97","nodeType":"YulAssignment","src":"440:59:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"484:9:97","nodeType":"YulIdentifier","src":"484:9:97"},{"kind":"number","nativeSrc":"495:2:97","nodeType":"YulLiteral","src":"495:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"480:3:97","nodeType":"YulIdentifier","src":"480:3:97"},"nativeSrc":"480:18:97","nodeType":"YulFunctionCall","src":"480:18:97"}],"functionName":{"name":"abi_decode_address_fromMemory","nativeSrc":"450:29:97","nodeType":"YulIdentifier","src":"450:29:97"},"nativeSrc":"450:49:97","nodeType":"YulFunctionCall","src":"450:49:97"},"variableNames":[{"name":"value1","nativeSrc":"440:6:97","nodeType":"YulIdentifier","src":"440:6:97"}]},{"nativeSrc":"508:38:97","nodeType":"YulVariableDeclaration","src":"508:38:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"531:9:97","nodeType":"YulIdentifier","src":"531:9:97"},{"kind":"number","nativeSrc":"542:2:97","nodeType":"YulLiteral","src":"542:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"527:3:97","nodeType":"YulIdentifier","src":"527:3:97"},"nativeSrc":"527:18:97","nodeType":"YulFunctionCall","src":"527:18:97"}],"functionName":{"name":"mload","nativeSrc":"521:5:97","nodeType":"YulIdentifier","src":"521:5:97"},"nativeSrc":"521:25:97","nodeType":"YulFunctionCall","src":"521:25:97"},"variables":[{"name":"value","nativeSrc":"512:5:97","nodeType":"YulTypedName","src":"512:5:97","type":""}]},{"body":{"nativeSrc":"600:16:97","nodeType":"YulBlock","src":"600:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"609:1:97","nodeType":"YulLiteral","src":"609:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"612:1:97","nodeType":"YulLiteral","src":"612:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"602:6:97","nodeType":"YulIdentifier","src":"602:6:97"},"nativeSrc":"602:12:97","nodeType":"YulFunctionCall","src":"602:12:97"},"nativeSrc":"602:12:97","nodeType":"YulExpressionStatement","src":"602:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"568:5:97","nodeType":"YulIdentifier","src":"568:5:97"},{"arguments":[{"name":"value","nativeSrc":"579:5:97","nodeType":"YulIdentifier","src":"579:5:97"},{"kind":"number","nativeSrc":"586:10:97","nodeType":"YulLiteral","src":"586:10:97","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nativeSrc":"575:3:97","nodeType":"YulIdentifier","src":"575:3:97"},"nativeSrc":"575:22:97","nodeType":"YulFunctionCall","src":"575:22:97"}],"functionName":{"name":"eq","nativeSrc":"565:2:97","nodeType":"YulIdentifier","src":"565:2:97"},"nativeSrc":"565:33:97","nodeType":"YulFunctionCall","src":"565:33:97"}],"functionName":{"name":"iszero","nativeSrc":"558:6:97","nodeType":"YulIdentifier","src":"558:6:97"},"nativeSrc":"558:41:97","nodeType":"YulFunctionCall","src":"558:41:97"},"nativeSrc":"555:61:97","nodeType":"YulIf","src":"555:61:97"},{"nativeSrc":"625:15:97","nodeType":"YulAssignment","src":"625:15:97","value":{"name":"value","nativeSrc":"635:5:97","nodeType":"YulIdentifier","src":"635:5:97"},"variableNames":[{"name":"value2","nativeSrc":"625:6:97","nodeType":"YulIdentifier","src":"625:6:97"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint32_fromMemory","nativeSrc":"196:450:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"260:9:97","nodeType":"YulTypedName","src":"260:9:97","type":""},{"name":"dataEnd","nativeSrc":"271:7:97","nodeType":"YulTypedName","src":"271:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"283:6:97","nodeType":"YulTypedName","src":"283:6:97","type":""},{"name":"value1","nativeSrc":"291:6:97","nodeType":"YulTypedName","src":"291:6:97","type":""},{"name":"value2","nativeSrc":"299:6:97","nodeType":"YulTypedName","src":"299:6:97","type":""}],"src":"196:450:97"},{"body":{"nativeSrc":"825:229:97","nodeType":"YulBlock","src":"825:229:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"842:9:97","nodeType":"YulIdentifier","src":"842:9:97"},{"kind":"number","nativeSrc":"853:2:97","nodeType":"YulLiteral","src":"853:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"835:6:97","nodeType":"YulIdentifier","src":"835:6:97"},"nativeSrc":"835:21:97","nodeType":"YulFunctionCall","src":"835:21:97"},"nativeSrc":"835:21:97","nodeType":"YulExpressionStatement","src":"835:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"876:9:97","nodeType":"YulIdentifier","src":"876:9:97"},{"kind":"number","nativeSrc":"887:2:97","nodeType":"YulLiteral","src":"887:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"872:3:97","nodeType":"YulIdentifier","src":"872:3:97"},"nativeSrc":"872:18:97","nodeType":"YulFunctionCall","src":"872:18:97"},{"kind":"number","nativeSrc":"892:2:97","nodeType":"YulLiteral","src":"892:2:97","type":"","value":"39"}],"functionName":{"name":"mstore","nativeSrc":"865:6:97","nodeType":"YulIdentifier","src":"865:6:97"},"nativeSrc":"865:30:97","nodeType":"YulFunctionCall","src":"865:30:97"},"nativeSrc":"865:30:97","nodeType":"YulExpressionStatement","src":"865:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"915:9:97","nodeType":"YulIdentifier","src":"915:9:97"},{"kind":"number","nativeSrc":"926:2:97","nodeType":"YulLiteral","src":"926:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"911:3:97","nodeType":"YulIdentifier","src":"911:3:97"},"nativeSrc":"911:18:97","nodeType":"YulFunctionCall","src":"911:18:97"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320696e697469","kind":"string","nativeSrc":"931:34:97","nodeType":"YulLiteral","src":"931:34:97","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nativeSrc":"904:6:97","nodeType":"YulIdentifier","src":"904:6:97"},"nativeSrc":"904:62:97","nodeType":"YulFunctionCall","src":"904:62:97"},"nativeSrc":"904:62:97","nodeType":"YulExpressionStatement","src":"904:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"986:9:97","nodeType":"YulIdentifier","src":"986:9:97"},{"kind":"number","nativeSrc":"997:2:97","nodeType":"YulLiteral","src":"997:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"982:3:97","nodeType":"YulIdentifier","src":"982:3:97"},"nativeSrc":"982:18:97","nodeType":"YulFunctionCall","src":"982:18:97"},{"hexValue":"616c697a696e67","kind":"string","nativeSrc":"1002:9:97","nodeType":"YulLiteral","src":"1002:9:97","type":"","value":"alizing"}],"functionName":{"name":"mstore","nativeSrc":"975:6:97","nodeType":"YulIdentifier","src":"975:6:97"},"nativeSrc":"975:37:97","nodeType":"YulFunctionCall","src":"975:37:97"},"nativeSrc":"975:37:97","nodeType":"YulExpressionStatement","src":"975:37:97"},{"nativeSrc":"1021:27:97","nodeType":"YulAssignment","src":"1021:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1033:9:97","nodeType":"YulIdentifier","src":"1033:9:97"},{"kind":"number","nativeSrc":"1044:3:97","nodeType":"YulLiteral","src":"1044:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"1029:3:97","nodeType":"YulIdentifier","src":"1029:3:97"},"nativeSrc":"1029:19:97","nodeType":"YulFunctionCall","src":"1029:19:97"},"variableNames":[{"name":"tail","nativeSrc":"1021:4:97","nodeType":"YulIdentifier","src":"1021:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"651:403:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"802:9:97","nodeType":"YulTypedName","src":"802:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"816:4:97","nodeType":"YulTypedName","src":"816:4:97","type":""}],"src":"651:403:97"},{"body":{"nativeSrc":"1156:87:97","nodeType":"YulBlock","src":"1156:87:97","statements":[{"nativeSrc":"1166:26:97","nodeType":"YulAssignment","src":"1166:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1178:9:97","nodeType":"YulIdentifier","src":"1178:9:97"},{"kind":"number","nativeSrc":"1189:2:97","nodeType":"YulLiteral","src":"1189:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1174:3:97","nodeType":"YulIdentifier","src":"1174:3:97"},"nativeSrc":"1174:18:97","nodeType":"YulFunctionCall","src":"1174:18:97"},"variableNames":[{"name":"tail","nativeSrc":"1166:4:97","nodeType":"YulIdentifier","src":"1166:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1208:9:97","nodeType":"YulIdentifier","src":"1208:9:97"},{"arguments":[{"name":"value0","nativeSrc":"1223:6:97","nodeType":"YulIdentifier","src":"1223:6:97"},{"kind":"number","nativeSrc":"1231:4:97","nodeType":"YulLiteral","src":"1231:4:97","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"1219:3:97","nodeType":"YulIdentifier","src":"1219:3:97"},"nativeSrc":"1219:17:97","nodeType":"YulFunctionCall","src":"1219:17:97"}],"functionName":{"name":"mstore","nativeSrc":"1201:6:97","nodeType":"YulIdentifier","src":"1201:6:97"},"nativeSrc":"1201:36:97","nodeType":"YulFunctionCall","src":"1201:36:97"},"nativeSrc":"1201:36:97","nodeType":"YulExpressionStatement","src":"1201:36:97"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"1059:184:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1125:9:97","nodeType":"YulTypedName","src":"1125:9:97","type":""},{"name":"value0","nativeSrc":"1136:6:97","nodeType":"YulTypedName","src":"1136:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1147:4:97","nodeType":"YulTypedName","src":"1147:4:97","type":""}],"src":"1059:184:97"}]},"contents":"{\n    { }\n    function abi_decode_address_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint32_fromMemory(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_address_fromMemory(headStart)\n        value1 := abi_decode_address_fromMemory(add(headStart, 32))\n        let value := mload(add(headStart, 64))\n        if iszero(eq(value, and(value, 0xffffffff))) { revert(0, 0) }\n        value2 := value\n    }\n    function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 39)\n        mstore(add(headStart, 64), \"Initializable: contract is initi\")\n        mstore(add(headStart, 96), \"alizing\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n}","id":97,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60e060405234801561001057600080fd5b50604051614e0b380380614e0b83398101604081905261002f916101a0565b6001600160a01b03821660805261004461009a565b61004d8361015a565b6100568261015a565b8063ffffffff1660000361007d576040516349961c7360e11b815260040160405180910390fd5b6001600160a01b0390921660c0525063ffffffff1660a0526101f0565b600054610100900460ff16156101065760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015610158576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116610181576040516342bcdf7f60e11b815260040160405180910390fd5b50565b80516001600160a01b038116811461019b57600080fd5b919050565b6000806000606084860312156101b557600080fd5b6101be84610184565b92506101cc60208501610184565b9150604084015163ffffffff811681146101e557600080fd5b809150509250925092565b60805160a05160c051614b986102736000396000818161060c01528181611033015281816113f301528181611d81015281816122b001528181612576015261272601526000818161048301526110d801526000818161053e01528181611a2f01528181611e6b0152818161217a01528181612ff601526130c80152614b986000f3fe6080604052600436106102895760003560e01c8063715018a611610153578063bb0b6a53116100cb578063f2fde38b1161007f578063f75875ad11610064578063f75875ad14610890578063f8ce6ac2146108b0578063fe2b3502146108d057600080fd5b8063f2fde38b14610843578063f63106e41461086357600080fd5b8063c3e10deb116100b0578063c3e10deb146107e5578063ca5eb5e114610805578063e30c39781461082557600080fd5b8063bb0b6a5314610773578063c2a23c84146107c557600080fd5b80638da5cb5b11610122578063af9e0fd311610107578063af9e0fd314610674578063b4a0bdf3146106ee578063b4c2f7271461070c57600080fd5b80638da5cb5b14610641578063ab803a761461065f57600080fd5b8063715018a6146105d057806379ba5097146105e55780637dd8f522146105fa57806385a7602f1461062e57600080fd5b80633aed7f3111610201578063595bd377116101b55780635e280f111161019a5780635e280f111461052c57806362656e631461057857806365bd691c1461059857600080fd5b8063595bd377146104f25780635c975abb1461051257600080fd5b8063485cc955116101e6578063485cc955146104515780634c21344914610471578063513602e8146104ba57600080fd5b80633aed7f3114610411578063438653fe1461043157600080fd5b80631d1c362011610258578063282071411161023d578063282071411461036357806333bde2ca146103c15780633400288b146103f157600080fd5b80631d1c362014610311578063233dd0da1461033e57600080fd5b806305687c19146102955780630e32cb86146102aa57806316c38b3c146102ca57806317442b70146102ea57600080fd5b3661029057005b600080fd5b6102a86102a3366004613cf6565b610900565b005b3480156102b657600080fd5b506102a86102c5366004613dcd565b610973565b3480156102d657600080fd5b506102a86102e5366004613df8565b610987565b3480156102f657600080fd5b50604080516001815260006020820152015b60405180910390f35b34801561031d57600080fd5b5061033161032c366004613e15565b610a5f565b6040516103089190613e8d565b34801561034a57600080fd5b506103556202a30081565b604051908152602001610308565b34801561036f57600080fd5b5061038361037e366004613eed565b610ab1565b604051610308919081511515815260208083015190820152604080830151908201526060918201516001600160a01b03169181019190915260800190565b3480156103cd57600080fd5b506103e16103dc366004613f2f565b610b44565b6040519015158152602001610308565b3480156103fd57600080fd5b506102a861040c366004613f48565b610b4f565b34801561041d57600080fd5b506102a861042c366004613f74565b610bce565b34801561043d57600080fd5b506102a861044c366004613fad565b610cb7565b34801561045d57600080fd5b506102a861046c366004613ff9565b610e16565b34801561047d57600080fd5b506104a57f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff9091168152602001610308565b3480156104c657600080fd5b506103556104d5366004614027565b60cc60209081526000928352604080842090915290825290205481565b3480156104fe57600080fd5b5061035561050d36600461404c565b610f7d565b34801561051e57600080fd5b5060c9546103e19060ff1681565b34801561053857600080fd5b506105607f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610308565b34801561058457600080fd5b506102a8610593366004613f2f565b610fc4565b3480156105a457600080fd5b506103556105b3366004614027565b60cd60209081526000928352604080842090915290825290205481565b3480156105dc57600080fd5b506102a861125b565b3480156105f157600080fd5b506102a861128d565b34801561060657600080fd5b506105607f000000000000000000000000000000000000000000000000000000000000000081565b6102a861063c366004614098565b611318565b34801561064d57600080fd5b506033546001600160a01b0316610560565b34801561066b57600080fd5b506102a8611572565b34801561068057600080fd5b506106c361068f366004613f2f565b60ca60205260009081526040902080546001820154600283015460039093015460ff9092169290916001600160a01b031684565b6040805194151585526020850193909352918301526001600160a01b03166060820152608001610308565b3480156106fa57600080fd5b506097546001600160a01b0316610560565b34801561071857600080fd5b50610762610727366004613f2f565b60cb6020526000908152604090208054600182015460028301546003909301549192909160ff82169161010090046001600160a01b03169085565b604051610308959493929190614113565b34801561077f57600080fd5b5061035561078e36600461417d565b63ffffffff1660009081527f72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f900602052604090205490565b3480156107d157600080fd5b506102a86107e036600461419a565b611671565b3480156107f157600080fd5b506102a8610800366004613f2f565b611908565b34801561081157600080fd5b506102a8610820366004613dcd565b6119ef565b34801561083157600080fd5b506065546001600160a01b0316610560565b34801561084f57600080fd5b506102a861085e366004613dcd565b611a8e565b34801561086f57600080fd5b5061088361087e36600461404c565b611a9f565b6040516103089190614201565b34801561089c57600080fd5b506103556108ab36600461404c565b611cb1565b3480156108bc57600080fd5b506102a86108cb366004613f2f565b611cf8565b3480156108dc57600080fd5b506103e16108eb366004613dcd565b60ce6020526000908152604090205460ff1681565b333014610939576040517f22d1fc8000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008460405160200161094c9190614394565b604051602081830303815290604052905061096a8682868686611e38565b50505050505050565b61097b611f43565b61098481611f9f565b50565b6109c56040518060400160405280600f81526020017f73657450617573656428626f6f6c290000000000000000000000000000000000815250612094565b60c95481151560ff909116151503610a09576040517f3f855e3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60c9546040805160ff9092161515825282151560208301527f91691e0294d292cac1a26c64dd4130c61d6690edeac415bc1fb307d64d3732a1910160405180910390a160c9805460ff1916911515919091179055565b6040805180820190915260008082526020820152600084604051602001610a869190614394565b6040516020818303038152906040529050610aa8856101400151828686612164565b95945050505050565b60408051608081018252600080825260208201819052918101829052606081019190915260008383604051610ae79291906143a7565b60408051918290038220600090815260ca602090815290829020608084018352805460ff1615158452600181015491840191909152600281015491830191909152600301546001600160a01b031660608201529150505b92915050565b6000610b3e82612247565b610b57611f43565b63ffffffff821660008181527f72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f900602081815260409283902085905582519384528301849052917f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b91015b60405180910390a1505050565b610bef604051806060016040528060248152602001614b0960249139612094565b610bf882612386565b6001600160a01b038216600090815260ce602052604090205460ff1681151581151503610c51576040517f8eee990d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038316600081815260ce6020908152604091829020805460ff191686151590811790915582518515158152918201527f10c0e7519c24c8e42dbd4d2405e9976e893c51df86614145b2758289f197ec3b910160405180910390a2505050565b610cf56040518060400160405280601c81526020017f736574436f6e66696741637469766528737472696e672c626f6f6c2900000000815250612094565b60008383604051610d079291906143a7565b6040805191829003909120600081815260ca60205291909120600301549091506001600160a01b0316610d66576040517f80919d7b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081815260ca602052604090205460ff1682151581151503610db5576040517f01e852dc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082815260ca602052604090819020805460ff19168515151790555182907fcba816b2fc5cd49700523a79b6e6c7dda19292fbb932cca77f7bccb1e500479290610e079088908890869089906143e2565b60405180910390a25050505050565b600054610100900460ff1615808015610e365750600054600160ff909116105b80610e505750303b158015610e50575060005460ff166001145b610ec75760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b6000805460ff191660011790558015610f0757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610f10836123c6565b610f1982612454565b8015610f7857600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610bc1565b505050565b6000808484604051610f909291906143a7565b6040805191829003909120600090815260cd60209081528282206001600160a01b0387168352905220549150509392505050565b60c95460ff1615611001576040517feced32bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f37759b9a000000000000000000000000000000000000000000000000000000008152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906337759b9a90602401600060405180830381865afa158015611082573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110aa9190810190614474565b6080810151600090815260ca602052604081206101408301519293509163ffffffff161580159061110c57507f000000000000000000000000000000000000000000000000000000000000000063ffffffff1683610140015163ffffffff1614155b90508061111c5761111c836124da565b611127838383612684565b60038201546001600160a01b03166000826111c7576040517f42b7cfbd0000000000000000000000000000000000000000000000000000000081526001600160a01b038316906342b7cfbd90611181908890600401614394565b602060405180830381865afa15801561119e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111c291906145db565b6111ca565b60005b60408051608081018252865460ff16151581526001870154602082015260028701549181019190915260038601546001600160a01b0316606082015290915061121d90869083806112185750855b612933565b82156112435761123e85604051806020016040528060008152506000612a86565b611253565b8015611253576112538583612c98565b505050505050565b6040517f96c553eb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60655433906001600160a01b0316811461130f5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e657200000000000000000000000000000000000000000000006064820152608401610ebe565b61098481612db6565b33600090815260ce602052604090205460ff16611361576040517f341f61ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600083815260cb602052604090206005600282015460ff16600581111561138a5761138a6140e4565b146113c1576040517f9aafae6500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f37759b9a000000000000000000000000000000000000000000000000000000008152600481018590526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906337759b9a90602401600060405180830381865afa158015611442573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261146a9190810190614474565b9050426202a3008260e001516114809190614627565b10156114b8576040517fc2a16f1400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6114fa8185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250349250612a86915050565b80604001516001600160a01b0316816060015160405161151a919061463a565b604051809103902082610140015163ffffffff167f315a04917a98179e57c69a0b2808641e45e218e5402d9d3c7da753ea76c70322846020015160405161156391815260200190565b60405180910390a45050505050565b61157a611f43565b4780156109845760006115956033546001600160a01b031690565b6001600160a01b03168260405160006040518083038185875af1925050503d80600081146115df576040519150601f19603f3d011682016040523d82523d6000602084013e6115e4565b606091505b505090508061161f576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6033546001600160a01b03166001600160a01b03167f0a1dd7c5bdc40ecbdefc1bfda22f1dfb98c8fc3e3940aab73ad7fba37720d0a08360405161166591815260200190565b60405180910390a25050565b611692604051806060016040528060368152602001614b2d60369139612094565b61169b83612386565b8315806116a85750604084115b156116de576040517e64280000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600003611718576040517ff6ea4e0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6202a3008110611754576040517ff8d10e8200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600085856040516117669291906143a7565b60405180910390209050600060ca60008381526020019081526020016000206040518060800160405290816000820160009054906101000a900460ff1615151515815260200160018201548152602001600282015481526020016003820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152505090506040518060800160405280600115158152602001858152602001848152602001866001600160a01b031681525060ca600084815260200190815260200160002060008201518160000160006101000a81548160ff021916908315150217905550602082015181600101556040820151816002015560608201518160030160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550905050846001600160a01b031681606001516001600160a01b0316837fed1dcf396500587db779d729bcafd22d1cc4827708623e27189eb6687a6962448a8a86602001518a88604001518b8a6000015160016040516118f7989796959493929190614656565b60405180910390a450505050505050565b33600090815260ce602052604090205460ff16611951576040517f341f61ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081815260cb602052604090206001600282015460ff16600581111561197a5761197a6140e4565b146119b1576040517fdefe2c2500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028101805460ff1916600317905560405182907f0a4273908b9362e571cacd5610879e3dfd7ddc7c9b3ce1d7ea7ea8b41869116490600090a25050565b6119f7611f43565b6040517fca5eb5e10000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b158015611a7357600080fd5b505af1158015611a87573d6000803e3d6000fd5b5050505050565b611a96611f43565b61098481612dbf565b606060008484604051611ab39291906143a7565b604051809103902090506000836001600160a01b031663b0772d0b6040518163ffffffff1660e01b8152600401600060405180830381865afa158015611afd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b2591908101906146a0565b805190915060008167ffffffffffffffff811115611b4557611b45613a3a565b604051908082528060200260200182016040528015611b6e578160200160208202803683370190505b5090506000805b83811015611c1457600086815260cd6020526040812086518290889085908110611ba157611ba1614752565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020549050611bd581612247565b611bdf5750611c0c565b80848481518110611bf257611bf2614752565b602090810291909101015282611c0781614781565b935050505b600101611b75565b508067ffffffffffffffff811115611c2e57611c2e613a3a565b604051908082528060200260200182016040528015611c57578160200160208202803683370190505b50955060005b81811015611ca457828181518110611c7757611c77614752565b6020026020010151878281518110611c9157611c91614752565b6020908102919091010152600101611c5d565b5050505050509392505050565b6000808484604051611cc49291906143a7565b6040805191829003909120600090815260cc60209081528282206001600160a01b0387168352905220549150509392505050565b33600090815260ce602052604090205460ff16611d41576040517f341f61ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081815260cb602052604080822090517f37759b9a000000000000000000000000000000000000000000000000000000008152600481018490529091907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906337759b9a90602401600060405180830381865afa158015611dd0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611df89190810190614474565b6080810151600090815260ca60205260409020909150611e19838383612e48565b6003810154611e329083906001600160a01b0316612c98565b50505050565b611e406139d0565b6000611e4f8460000151612fb1565b602085015190915015611e6957611e698460200151612ff2565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff168152602001611eb98c6130ed565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b8152600401611ef59291906147b9565b60806040518083038185885af1158015611f13573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611f389190614880565b979650505050505050565b6033546001600160a01b03163314611f9d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ebe565b565b6001600160a01b03811661201b5760405162461bcd60e51b815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e6167657220616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610ebe565b609780546001600160a01b038381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa0910160405180910390a15050565b6097546040517f18c5e8ab0000000000000000000000000000000000000000000000000000000081526000916001600160a01b0316906318c5e8ab906120e090339086906004016148f2565b602060405180830381865afa1580156120fd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061212191906145db565b905080612160573330836040517f4a3fa293000000000000000000000000000000000000000000000000000000008152600401610ebe93929190614914565b5050565b60408051808201909152600080825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff1681526020016121c7896130ed565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b81526004016121fc9291906147b9565b6040805180830381865afa158015612218573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061223c9190614940565b90505b949350505050565b600081815260cb602052604081206001600282015460ff166005811115612270576122706140e4565b1461227e5750600092915050565b6040517f37759b9a000000000000000000000000000000000000000000000000000000008152600481018490526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906337759b9a90602401600060405180830381865afa1580156122ff573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526123279190810190614474565b6080810151600090815260ca6020526040902080549192509060ff1661235257506000949350505050565b426202a3008360e001516123669190614627565b101561237757506000949350505050565b50506001015442101592915050565b6001600160a01b038116610984576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600054610100900460ff166124435760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610ebe565b61244b61316a565b610984816131ef565b600054610100900460ff166124d15760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610ebe565b6109848161326c565b6080810151600090815260cd60209081526040808320818501516001600160a01b0316845290915281205490819003612511575050565b600081815260cb602052604090206001600282015460ff16600581111561253a5761253a6140e4565b1461254457505050565b6040517f37759b9a000000000000000000000000000000000000000000000000000000008152600481018390526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906337759b9a90602401600060405180830381865afa1580156125c5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526125ed9190810190614474565b90506000426202a3008360e001516126059190614627565b109050801561264f5760028301805460ff1916600417905560405184907f204a9e3c713ee1071c1d59b7caa015e0d7a583ebde2caf4cf34bb9d5d626cabb90600090a25050505050565b6040517fedba5e0700000000000000000000000000000000000000000000000000000000815260048101859052602401610ebe565b602083810151600090815260cb909152604081206002015460ff1660058111156126b0576126b06140e4565b146126e7576040517fdefe2c2500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815460ff16612722576040517fdea2a21200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166334496b5a856060015186604001516040518363ffffffff1660e01b815260040161277a92919061495c565b602060405180830381865afa158015612797573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127bb9190614987565b9050836020015181146127fa576040517fc2a16f1400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60e08401514290600090612812906202a30090614627565b90508181101561284e576040517fc2a16f1400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600285015461285d9083614627565b811015612896576040517f31289af400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b83611253576080860151600090815260cc60209081526040808320818a01516001600160a01b0316845282528083205480845260cb9092529091206003015480158015906128f25750838760010154826128f09190614627565b115b15612929576040517f53f7a6ee00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050505050565b602083015160008261295357604084015161294e9042614627565b612955565b425b6040805160a081018252848152602080820184815260018385018181526000606086018190526080860181905289815260cb90945294909220835181559051818301559251600284018054959650929490929160ff19909116908360058111156129c1576129c16140e4565b02179055506060828101516002830180547fffffffffffffffffffffff0000000000000000000000000000000000000000ff166101006001600160a01b039384160217905560809384015160039093019290925591870151600090815260cd60209081526040808320818b0180518616855292529182902086905551928801519051929091169184917f1a61d230e613ab7202720dc7c24765ae456c59f31401ae23e29a5397829af5ec91612a779186916149a0565b60405180910390a35050505050565b60008251600014612a975782612ae8565b612ae8620f42406000612ae1604080517e03000000000000000000000000000000000000000000000000000000000000602082015281516002818303018152602290910190915290565b91906132f2565b9050612b07604051806040016040528060008152602001600081525090565b82600003612b2257612b1b85836000610a5f565b9050612b38565b5060408051808201909152828152600060208201525b80516101408601516040517f05687c1900000000000000000000000000000000000000000000000000000000815230926305687c19929091612b8591908a908890889088906004016149b9565b6000604051808303818588803b158015612b9e57600080fd5b505af1158015612bb2573d6000803e3d6000fd5b5050505060208681018051600090815260cb8352604080822060028101805461010033027fffffffffffffffffffffff00000000000000000000000000000000000000000090911617600517905542600382015560808b0151935184845260cc8652828420838d0180516001600160a01b039081168752919097529383902055935160608b0151915194955092939290911691612c4f919061463a565b604051809103902088610140015163ffffffff167f7e5ab31b9063f36db8513c1ec8170e50aaad7cff84901c17758cc09ba40f38a38a602001516040516118f791815260200190565b602082810151600081815260cb83526040808220600280820180547fffffffffffffffffffffff00000000000000000000000000000000000000000016336101000217909117905542600382018190556080880151845260cc8652828420838901516001600160a01b03908116865296529282902084905590517fbf63783900000000000000000000000000000000000000000000000000000000815292939192909185169063bf63783990612d52908890600401614394565b600060405180830381600087803b158015612d6c57600080fd5b505af1158015612d80573d6000803e3d6000fd5b50506040518592507f88dcce5c07c8daf9e03fa70df64b98c8598df462a55510b7a987dadbf84db1099150600090a25050505050565b61098481613373565b612dc7611f43565b606580546001600160a01b0383167fffffffffffffffffffffffff00000000000000000000000000000000000000009091168117909155612e106033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b805460ff16612e83576040517fdea2a21200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600284015460ff166005811115612e9e57612e9e6140e4565b03612ed5576040517f9c58a61900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600284015460ff166005811115612ef057612ef06140e4565b14612f27576040517fdefe2c2500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b426202a3008360e00151612f3b9190614627565b1015612f73576040517fc2a16f1400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8260010154421015610f78576040517f05f5f49800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000813414612fee576040517f9f704120000000000000000000000000000000000000000000000000000000008152346004820152602401610ebe565b5090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015613052573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130769190614a1d565b90506001600160a01b0381166130b8576040517f5373352a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6121606001600160a01b038216337f0000000000000000000000000000000000000000000000000000000000000000856133a4565b63ffffffff811660009081527f72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f9006020819052604082205480613163576040517ff6ff4fb700000000000000000000000000000000000000000000000000000000815263ffffffff85166004820152602401610ebe565b9392505050565b600054610100900460ff166131e75760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610ebe565b611f9d61342c565b600054610100900460ff1661097b5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610ebe565b600054610100900460ff166132e95760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610ebe565b610984816134b2565b606083600361330282600061356f565b61ffff161461334f5761331681600061356f565b6040517f3a51740d00000000000000000000000000000000000000000000000000000000815261ffff9091166004820152602401610ebe565b600061335b85856135d5565b905061336986600183613686565b9695505050505050565b606580547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055610984816136f1565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052611e3290859061375b565b600054610100900460ff166134a95760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610ebe565b611f9d33612db6565b600054610100900460ff1661352f5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610ebe565b6001600160a01b0381166119f7576040517fb586360400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061357c826002614627565b835110156135cc5760405162461bcd60e51b815260206004820152601460248201527f746f55696e7431365f6f75744f66426f756e64730000000000000000000000006044820152606401610ebe565b50016002015190565b60606fffffffffffffffffffffffffffffffff82161561363e57604080517fffffffffffffffffffffffffffffffff00000000000000000000000000000000608086811b8216602084015285901b16603082015201604051602081830303815290604052613163565b6040517fffffffffffffffffffffffffffffffff00000000000000000000000000000000608085901b1660208201526030016040516020818303038152906040529392505050565b606083600361369682600061356f565b61ffff16146136aa5761331681600061356f565b8460016136b78551613843565b6136c2906001614a3a565b86866040516020016136d8959493929190614a5c565b6040516020818303038152906040529150509392505050565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60006137b0826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166138bd9092919063ffffffff16565b90508051600014806137d15750808060200190518101906137d191906145db565b610f785760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610ebe565b600061ffff821115612fee5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201527f36206269747300000000000000000000000000000000000000000000000000006064820152608401610ebe565b606061223f848460008585600080866001600160a01b031685876040516138e4919061463a565b60006040518083038185875af1925050503d8060008114613921576040519150601f19603f3d011682016040523d82523d6000602084013e613926565b606091505b5091509150611f3887838387606083156139a157825160000361399a576001600160a01b0385163b61399a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610ebe565b508161223f565b61223f83838151156139b65781518083602001fd5b8060405162461bcd60e51b8152600401610ebe9190614af5565b604051806060016040528060008019168152602001600067ffffffffffffffff168152602001613a13604051806040016040528060008152602001600081525090565b905290565b63ffffffff8116811461098457600080fd5b8035613a3581613a18565b919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610180810167ffffffffffffffff81118282101715613a8d57613a8d613a3a565b60405290565b6040805190810167ffffffffffffffff81118282101715613a8d57613a8d613a3a565b604051601f8201601f1916810167ffffffffffffffff81118282101715613adf57613adf613a3a565b604052919050565b600067ffffffffffffffff821115613b0157613b01613a3a565b50601f01601f191660200190565b600082601f830112613b2057600080fd5b8135613b33613b2e82613ae7565b613ab6565b818152846020838601011115613b4857600080fd5b816020850160208301376000918101602001919091529392505050565b6001600160a01b038116811461098457600080fd5b8035613a3581613b65565b6bffffffffffffffffffffffff8116811461098457600080fd5b8035613a3581613b85565b60006101808284031215613bbd57600080fd5b613bc5613a69565b9050813567ffffffffffffffff80821115613bdf57600080fd5b613beb85838601613b0f565b835260208401356020840152613c0360408501613b7a565b60408401526060840135915080821115613c1c57600080fd5b613c2885838601613b0f565b60608401526080840135608084015260a0840135915080821115613c4b57600080fd5b613c5785838601613b0f565b60a084015260c0840135915080821115613c7057600080fd5b613c7c85838601613b0f565b60c084015260e084013560e08401526101009150613c9b828501613b7a565b828401526101209150613caf828501613b9f565b828401526101409150613cc3828501613a2a565b8284015261016091508184013581811115613cdd57600080fd5b613ce986828701613b0f565b8385015250505092915050565b600080600080600085870360c0811215613d0f57600080fd5b8635613d1a81613a18565b9550602087013567ffffffffffffffff80821115613d3757600080fd5b613d438a838b01613baa565b96506040890135915080821115613d5957600080fd5b50613d6689828a01613b0f565b94505060407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa082011215613d9957600080fd5b50613da2613a93565b60608701358152608087013560208201529150613dc160a08701613b7a565b90509295509295909350565b600060208284031215613ddf57600080fd5b813561316381613b65565b801515811461098457600080fd5b600060208284031215613e0a57600080fd5b813561316381613dea565b600080600060608486031215613e2a57600080fd5b833567ffffffffffffffff80821115613e4257600080fd5b613e4e87838801613baa565b94506020860135915080821115613e6457600080fd5b50613e7186828701613b0f565b9250506040840135613e8281613dea565b809150509250925092565b815181526020808301519082015260408101610b3e565b60008083601f840112613eb657600080fd5b50813567ffffffffffffffff811115613ece57600080fd5b602083019150836020828501011115613ee657600080fd5b9250929050565b60008060208385031215613f0057600080fd5b823567ffffffffffffffff811115613f1757600080fd5b613f2385828601613ea4565b90969095509350505050565b600060208284031215613f4157600080fd5b5035919050565b60008060408385031215613f5b57600080fd5b8235613f6681613a18565b946020939093013593505050565b60008060408385031215613f8757600080fd5b8235613f9281613b65565b91506020830135613fa281613dea565b809150509250929050565b600080600060408486031215613fc257600080fd5b833567ffffffffffffffff811115613fd957600080fd5b613fe586828701613ea4565b9094509250506020840135613e8281613dea565b6000806040838503121561400c57600080fd5b823561401781613b65565b91506020830135613fa281613b65565b6000806040838503121561403a57600080fd5b823591506020830135613fa281613b65565b60008060006040848603121561406157600080fd5b833567ffffffffffffffff81111561407857600080fd5b61408486828701613ea4565b9094509250506020840135613e8281613b65565b6000806000604084860312156140ad57600080fd5b83359250602084013567ffffffffffffffff8111156140cb57600080fd5b6140d786828701613ea4565b9497909650939450505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8581526020810185905260a0810160068510614158577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8460408301526001600160a01b03841660608301528260808301529695505050505050565b60006020828403121561418f57600080fd5b813561316381613a18565b6000806000806000608086880312156141b257600080fd5b853567ffffffffffffffff8111156141c957600080fd5b6141d588828901613ea4565b90965094505060208601356141e981613b65565b94979396509394604081013594506060013592915050565b6020808252825182820181905260009190848201906040850190845b818110156142395783518352928401929184019160010161421d565b50909695505050505050565b60005b83811015614260578181015183820152602001614248565b50506000910152565b60008151808452614281816020860160208601614245565b601f01601f19169290920160200192915050565b600061018082518185526142ab82860182614269565b9150506020830151602085015260408301516142d260408601826001600160a01b03169052565b50606083015184820360608601526142ea8282614269565b9150506080830151608085015260a083015184820360a086015261430e8282614269565b91505060c083015184820360c08601526143288282614269565b91505060e083015160e085015261010080840151614350828701826001600160a01b03169052565b5050610120838101516bffffffffffffffffffffffff16908501526101408084015163ffffffff169085015261016080840151858303828701526133698382614269565b6020815260006131636020830184614295565b8183823760009101908152919050565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b6060815260006143f66060830186886143b7565b93151560208301525090151560409091015292915050565b600082601f83011261441f57600080fd5b815161442d613b2e82613ae7565b81815284602083860101111561444257600080fd5b61223f826020830160208701614245565b8051613a3581613b65565b8051613a3581613b85565b8051613a3581613a18565b60006020828403121561448657600080fd5b815167ffffffffffffffff8082111561449e57600080fd5b9083019061018082860312156144b357600080fd5b6144bb613a69565b8251828111156144ca57600080fd5b6144d68782860161440e565b825250602083015160208201526144ef60408401614453565b604082015260608301518281111561450657600080fd5b6145128782860161440e565b6060830152506080830151608082015260a08301518281111561453457600080fd5b6145408782860161440e565b60a08301525060c08301518281111561455857600080fd5b6145648782860161440e565b60c08301525060e083015160e0820152610100614582818501614453565b9082015261012061459484820161445e565b908201526101406145a6848201614469565b9082015261016083810151838111156145be57600080fd5b6145ca8882870161440e565b918301919091525095945050505050565b6000602082840312156145ed57600080fd5b815161316381613dea565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610b3e57610b3e6145f8565b6000825161464c818460208701614245565b9190910192915050565b60e08152600061466a60e083018a8c6143b7565b602083019890985250604081019590955260608501939093526080840191909152151560a0830152151560c09091015292915050565b600060208083850312156146b357600080fd5b825167ffffffffffffffff808211156146cb57600080fd5b818501915085601f8301126146df57600080fd5b8151818111156146f1576146f1613a3a565b8060051b9150614702848301613ab6565b818152918301840191848101908884111561471c57600080fd5b938501935b83851015614746578451925061473683613b65565b8282529385019390850190614721565b98975050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036147b2576147b26145f8565b5060010190565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a060808401526147ef60e0840182614269565b905060608501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08483030160a085015261482a8282614269565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b60006040828403121561486257600080fd5b61486a613a93565b9050815181526020820151602082015292915050565b60006080828403121561489257600080fd5b6040516060810167ffffffffffffffff82821081831117156148b6576148b6613a3a565b81604052845183526020850151915080821682146148d357600080fd5b5060208201526148e68460408501614850565b60408201529392505050565b6001600160a01b038316815260406020820152600061223f6040830184614269565b60006001600160a01b0380861683528085166020840152506060604083015261223c6060830184614269565b60006040828403121561495257600080fd5b6131638383614850565b60408152600061496f6040830185614269565b90506001600160a01b03831660208301529392505050565b60006020828403121561499957600080fd5b5051919050565b82815260406020820152600061223f6040830184614269565b63ffffffff8616815260c0602082015260006149d860c0830187614295565b82810360408401526149ea8187614269565b85516060850152602086015160808501529150614a049050565b6001600160a01b03831660a08301529695505050505050565b600060208284031215614a2f57600080fd5b815161316381613b65565b61ffff818116838216019080821115614a5557614a556145f8565b5092915050565b60008651614a6e818460208b01614245565b80830190507fff00000000000000000000000000000000000000000000000000000000000000808860f81b1682527fffff0000000000000000000000000000000000000000000000000000000000008760f01b166001830152808660f81b166003830152508351614ae6816004840160208801614245565b01600401979650505050505050565b602081526000613163602083018461426956fe73657457686974656c69737465644578656375746f7228616464726573732c626f6f6c297365745269736b506172616d65746572436f6e66696728737472696e672c616464726573732c75696e743235362c75696e7432353629a26469706673582212209ddf05a66c58460faddfdee8edd07fb29417d9bc42218aadd277dc6e5bce9fac64736f6c63430008190033","opcodes":"PUSH1 0xE0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x4E0B CODESIZE SUB DUP1 PUSH2 0x4E0B DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x1A0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x80 MSTORE PUSH2 0x44 PUSH2 0x9A JUMP JUMPDEST PUSH2 0x4D DUP4 PUSH2 0x15A JUMP JUMPDEST PUSH2 0x56 DUP3 PUSH2 0x15A JUMP JUMPDEST DUP1 PUSH4 0xFFFFFFFF AND PUSH1 0x0 SUB PUSH2 0x7D JUMPI PUSH1 0x40 MLOAD PUSH4 0x49961C73 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0xC0 MSTORE POP PUSH4 0xFFFFFFFF AND PUSH1 0xA0 MSTORE PUSH2 0x1F0 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x106 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND LT ISZERO PUSH2 0x158 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x181 JUMPI PUSH1 0x40 MLOAD PUSH4 0x42BCDF7F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x19B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1BE DUP5 PUSH2 0x184 JUMP JUMPDEST SWAP3 POP PUSH2 0x1CC PUSH1 0x20 DUP6 ADD PUSH2 0x184 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD MLOAD PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x1E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH2 0x4B98 PUSH2 0x273 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x60C ADD MSTORE DUP2 DUP2 PUSH2 0x1033 ADD MSTORE DUP2 DUP2 PUSH2 0x13F3 ADD MSTORE DUP2 DUP2 PUSH2 0x1D81 ADD MSTORE DUP2 DUP2 PUSH2 0x22B0 ADD MSTORE DUP2 DUP2 PUSH2 0x2576 ADD MSTORE PUSH2 0x2726 ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x483 ADD MSTORE PUSH2 0x10D8 ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x53E ADD MSTORE DUP2 DUP2 PUSH2 0x1A2F ADD MSTORE DUP2 DUP2 PUSH2 0x1E6B ADD MSTORE DUP2 DUP2 PUSH2 0x217A ADD MSTORE DUP2 DUP2 PUSH2 0x2FF6 ADD MSTORE PUSH2 0x30C8 ADD MSTORE PUSH2 0x4B98 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x289 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 GT PUSH2 0x153 JUMPI DUP1 PUSH4 0xBB0B6A53 GT PUSH2 0xCB JUMPI DUP1 PUSH4 0xF2FDE38B GT PUSH2 0x7F JUMPI DUP1 PUSH4 0xF75875AD GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xF75875AD EQ PUSH2 0x890 JUMPI DUP1 PUSH4 0xF8CE6AC2 EQ PUSH2 0x8B0 JUMPI DUP1 PUSH4 0xFE2B3502 EQ PUSH2 0x8D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x843 JUMPI DUP1 PUSH4 0xF63106E4 EQ PUSH2 0x863 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xC3E10DEB GT PUSH2 0xB0 JUMPI DUP1 PUSH4 0xC3E10DEB EQ PUSH2 0x7E5 JUMPI DUP1 PUSH4 0xCA5EB5E1 EQ PUSH2 0x805 JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x825 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xBB0B6A53 EQ PUSH2 0x773 JUMPI DUP1 PUSH4 0xC2A23C84 EQ PUSH2 0x7C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x122 JUMPI DUP1 PUSH4 0xAF9E0FD3 GT PUSH2 0x107 JUMPI DUP1 PUSH4 0xAF9E0FD3 EQ PUSH2 0x674 JUMPI DUP1 PUSH4 0xB4A0BDF3 EQ PUSH2 0x6EE JUMPI DUP1 PUSH4 0xB4C2F727 EQ PUSH2 0x70C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x641 JUMPI DUP1 PUSH4 0xAB803A76 EQ PUSH2 0x65F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x715018A6 EQ PUSH2 0x5D0 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x5E5 JUMPI DUP1 PUSH4 0x7DD8F522 EQ PUSH2 0x5FA JUMPI DUP1 PUSH4 0x85A7602F EQ PUSH2 0x62E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3AED7F31 GT PUSH2 0x201 JUMPI DUP1 PUSH4 0x595BD377 GT PUSH2 0x1B5 JUMPI DUP1 PUSH4 0x5E280F11 GT PUSH2 0x19A JUMPI DUP1 PUSH4 0x5E280F11 EQ PUSH2 0x52C JUMPI DUP1 PUSH4 0x62656E63 EQ PUSH2 0x578 JUMPI DUP1 PUSH4 0x65BD691C EQ PUSH2 0x598 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x595BD377 EQ PUSH2 0x4F2 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x512 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x485CC955 GT PUSH2 0x1E6 JUMPI DUP1 PUSH4 0x485CC955 EQ PUSH2 0x451 JUMPI DUP1 PUSH4 0x4C213449 EQ PUSH2 0x471 JUMPI DUP1 PUSH4 0x513602E8 EQ PUSH2 0x4BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3AED7F31 EQ PUSH2 0x411 JUMPI DUP1 PUSH4 0x438653FE EQ PUSH2 0x431 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1D1C3620 GT PUSH2 0x258 JUMPI DUP1 PUSH4 0x28207141 GT PUSH2 0x23D JUMPI DUP1 PUSH4 0x28207141 EQ PUSH2 0x363 JUMPI DUP1 PUSH4 0x33BDE2CA EQ PUSH2 0x3C1 JUMPI DUP1 PUSH4 0x3400288B EQ PUSH2 0x3F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1D1C3620 EQ PUSH2 0x311 JUMPI DUP1 PUSH4 0x233DD0DA EQ PUSH2 0x33E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5687C19 EQ PUSH2 0x295 JUMPI DUP1 PUSH4 0xE32CB86 EQ PUSH2 0x2AA JUMPI DUP1 PUSH4 0x16C38B3C EQ PUSH2 0x2CA JUMPI DUP1 PUSH4 0x17442B70 EQ PUSH2 0x2EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0x290 JUMPI STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2A8 PUSH2 0x2A3 CALLDATASIZE PUSH1 0x4 PUSH2 0x3CF6 JUMP JUMPDEST PUSH2 0x900 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A8 PUSH2 0x2C5 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DCD JUMP JUMPDEST PUSH2 0x973 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A8 PUSH2 0x2E5 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DF8 JUMP JUMPDEST PUSH2 0x987 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x331 PUSH2 0x32C CALLDATASIZE PUSH1 0x4 PUSH2 0x3E15 JUMP JUMPDEST PUSH2 0xA5F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x308 SWAP2 SWAP1 PUSH2 0x3E8D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x34A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x355 PUSH3 0x2A300 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x308 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x36F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x383 PUSH2 0x37E CALLDATASIZE PUSH1 0x4 PUSH2 0x3EED JUMP JUMPDEST PUSH2 0xAB1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x308 SWAP2 SWAP1 DUP2 MLOAD ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 DUP1 DUP4 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 SWAP2 DUP3 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3CD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E1 PUSH2 0x3DC CALLDATASIZE PUSH1 0x4 PUSH2 0x3F2F JUMP JUMPDEST PUSH2 0xB44 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x308 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A8 PUSH2 0x40C CALLDATASIZE PUSH1 0x4 PUSH2 0x3F48 JUMP JUMPDEST PUSH2 0xB4F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x41D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A8 PUSH2 0x42C CALLDATASIZE PUSH1 0x4 PUSH2 0x3F74 JUMP JUMPDEST PUSH2 0xBCE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x43D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A8 PUSH2 0x44C CALLDATASIZE PUSH1 0x4 PUSH2 0x3FAD JUMP JUMPDEST PUSH2 0xCB7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x45D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A8 PUSH2 0x46C CALLDATASIZE PUSH1 0x4 PUSH2 0x3FF9 JUMP JUMPDEST PUSH2 0xE16 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x47D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A5 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x308 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x355 PUSH2 0x4D5 CALLDATASIZE PUSH1 0x4 PUSH2 0x4027 JUMP JUMPDEST PUSH1 0xCC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x355 PUSH2 0x50D CALLDATASIZE PUSH1 0x4 PUSH2 0x404C JUMP JUMPDEST PUSH2 0xF7D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xC9 SLOAD PUSH2 0x3E1 SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x538 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x560 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x308 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x584 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A8 PUSH2 0x593 CALLDATASIZE PUSH1 0x4 PUSH2 0x3F2F JUMP JUMPDEST PUSH2 0xFC4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x355 PUSH2 0x5B3 CALLDATASIZE PUSH1 0x4 PUSH2 0x4027 JUMP JUMPDEST PUSH1 0xCD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A8 PUSH2 0x125B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A8 PUSH2 0x128D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x606 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x560 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x63C CALLDATASIZE PUSH1 0x4 PUSH2 0x4098 JUMP JUMPDEST PUSH2 0x1318 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x64D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x560 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x66B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A8 PUSH2 0x1572 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x680 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6C3 PUSH2 0x68F CALLDATASIZE PUSH1 0x4 PUSH2 0x3F2F JUMP JUMPDEST PUSH1 0xCA PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 SWAP1 SWAP4 ADD SLOAD PUSH1 0xFF SWAP1 SWAP3 AND SWAP3 SWAP1 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP5 ISZERO ISZERO DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP4 SWAP1 SWAP4 MSTORE SWAP2 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD PUSH2 0x308 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x97 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x560 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x718 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x762 PUSH2 0x727 CALLDATASIZE PUSH1 0x4 PUSH2 0x3F2F JUMP JUMPDEST PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 SWAP1 SWAP4 ADD SLOAD SWAP2 SWAP3 SWAP1 SWAP2 PUSH1 0xFF DUP3 AND SWAP2 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x308 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4113 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x77F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x355 PUSH2 0x78E CALLDATASIZE PUSH1 0x4 PUSH2 0x417D JUMP JUMPDEST PUSH4 0xFFFFFFFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH32 0x72AB1BC1039B79DC4724FFCA13DE82C96834302D3C7E0D4252232D4B2DD8F900 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A8 PUSH2 0x7E0 CALLDATASIZE PUSH1 0x4 PUSH2 0x419A JUMP JUMPDEST PUSH2 0x1671 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A8 PUSH2 0x800 CALLDATASIZE PUSH1 0x4 PUSH2 0x3F2F JUMP JUMPDEST PUSH2 0x1908 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x811 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A8 PUSH2 0x820 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DCD JUMP JUMPDEST PUSH2 0x19EF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x831 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x65 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x560 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x84F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A8 PUSH2 0x85E CALLDATASIZE PUSH1 0x4 PUSH2 0x3DCD JUMP JUMPDEST PUSH2 0x1A8E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x86F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x883 PUSH2 0x87E CALLDATASIZE PUSH1 0x4 PUSH2 0x404C JUMP JUMPDEST PUSH2 0x1A9F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x308 SWAP2 SWAP1 PUSH2 0x4201 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x89C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x355 PUSH2 0x8AB CALLDATASIZE PUSH1 0x4 PUSH2 0x404C JUMP JUMPDEST PUSH2 0x1CB1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A8 PUSH2 0x8CB CALLDATASIZE PUSH1 0x4 PUSH2 0x3F2F JUMP JUMPDEST PUSH2 0x1CF8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E1 PUSH2 0x8EB CALLDATASIZE PUSH1 0x4 PUSH2 0x3DCD JUMP JUMPDEST PUSH1 0xCE PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0x939 JUMPI PUSH1 0x40 MLOAD PUSH32 0x22D1FC8000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x94C SWAP2 SWAP1 PUSH2 0x4394 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0x96A DUP7 DUP3 DUP7 DUP7 DUP7 PUSH2 0x1E38 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x97B PUSH2 0x1F43 JUMP JUMPDEST PUSH2 0x984 DUP2 PUSH2 0x1F9F JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x9C5 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xF DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x73657450617573656428626F6F6C290000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x2094 JUMP JUMPDEST PUSH1 0xC9 SLOAD DUP2 ISZERO ISZERO PUSH1 0xFF SWAP1 SWAP2 AND ISZERO ISZERO SUB PUSH2 0xA09 JUMPI PUSH1 0x40 MLOAD PUSH32 0x3F855E3400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xC9 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND ISZERO ISZERO DUP3 MSTORE DUP3 ISZERO ISZERO PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0x91691E0294D292CAC1A26C64DD4130C61D6690EDEAC415BC1FB307D64D3732A1 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0xC9 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xA86 SWAP2 SWAP1 PUSH2 0x4394 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0xAA8 DUP6 PUSH2 0x140 ADD MLOAD DUP3 DUP7 DUP7 PUSH2 0x2164 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xAE7 SWAP3 SWAP2 SWAP1 PUSH2 0x43A7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCA PUSH1 0x20 SWAP1 DUP2 MSTORE SWAP1 DUP3 SWAP1 KECCAK256 PUSH1 0x80 DUP5 ADD DUP4 MSTORE DUP1 SLOAD PUSH1 0xFF AND ISZERO ISZERO DUP5 MSTORE PUSH1 0x1 DUP2 ADD SLOAD SWAP2 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 DUP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x60 DUP3 ADD MSTORE SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB3E DUP3 PUSH2 0x2247 JUMP JUMPDEST PUSH2 0xB57 PUSH2 0x1F43 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH32 0x72AB1BC1039B79DC4724FFCA13DE82C96834302D3C7E0D4252232D4B2DD8F900 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP3 DUP4 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP3 MLOAD SWAP4 DUP5 MSTORE DUP4 ADD DUP5 SWAP1 MSTORE SWAP2 PUSH32 0x238399D427B947898EDB290F5FF0F9109849B1C3BA196A42E35F00C50A54B98B SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0xBEF PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x4B09 PUSH1 0x24 SWAP2 CODECOPY PUSH2 0x2094 JUMP JUMPDEST PUSH2 0xBF8 DUP3 PUSH2 0x2386 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 ISZERO ISZERO DUP2 ISZERO ISZERO SUB PUSH2 0xC51 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8EEE990D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xCE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP7 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP3 MLOAD DUP6 ISZERO ISZERO DUP2 MSTORE SWAP2 DUP3 ADD MSTORE PUSH32 0x10C0E7519C24C8E42DBD4D2405E9976E893C51DF86614145B2758289F197EC3B SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH2 0xCF5 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1C DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574436F6E66696741637469766528737472696E672C626F6F6C2900000000 DUP2 MSTORE POP PUSH2 0x2094 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xD07 SWAP3 SWAP2 SWAP1 PUSH2 0x43A7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xCA PUSH1 0x20 MSTORE SWAP2 SWAP1 SWAP2 KECCAK256 PUSH1 0x3 ADD SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xD66 JUMPI PUSH1 0x40 MLOAD PUSH32 0x80919D7B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xCA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP3 ISZERO ISZERO DUP2 ISZERO ISZERO SUB PUSH2 0xDB5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x1E852DC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xCA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP6 ISZERO ISZERO OR SWAP1 SSTORE MLOAD DUP3 SWAP1 PUSH32 0xCBA816B2FC5CD49700523A79B6E6C7DDA19292FBB932CCA77F7BCCB1E5004792 SWAP1 PUSH2 0xE07 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP7 SWAP1 DUP10 SWAP1 PUSH2 0x43E2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0xE36 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0xE50 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE50 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0xEC7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x647920696E697469616C697A6564000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0xF07 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0xF10 DUP4 PUSH2 0x23C6 JUMP JUMPDEST PUSH2 0xF19 DUP3 PUSH2 0x2454 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xF78 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH2 0xBC1 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0xF90 SWAP3 SWAP2 SWAP1 PUSH2 0x43A7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCD PUSH1 0x20 SWAP1 DUP2 MSTORE DUP3 DUP3 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP4 MSTORE SWAP1 MSTORE KECCAK256 SLOAD SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xC9 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x1001 JUMPI PUSH1 0x40 MLOAD PUSH32 0xECED32BC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x37759B9A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x37759B9A SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1082 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x10AA SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x4474 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x140 DUP4 ADD MLOAD SWAP3 SWAP4 POP SWAP2 PUSH4 0xFFFFFFFF AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x110C JUMPI POP PUSH32 0x0 PUSH4 0xFFFFFFFF AND DUP4 PUSH2 0x140 ADD MLOAD PUSH4 0xFFFFFFFF AND EQ ISZERO JUMPDEST SWAP1 POP DUP1 PUSH2 0x111C JUMPI PUSH2 0x111C DUP4 PUSH2 0x24DA JUMP JUMPDEST PUSH2 0x1127 DUP4 DUP4 DUP4 PUSH2 0x2684 JUMP JUMPDEST PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 DUP3 PUSH2 0x11C7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x42B7CFBD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0x42B7CFBD SWAP1 PUSH2 0x1181 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x4394 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x119E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x11C2 SWAP2 SWAP1 PUSH2 0x45DB JUMP JUMPDEST PUSH2 0x11CA JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE DUP7 SLOAD PUSH1 0xFF AND ISZERO ISZERO DUP2 MSTORE PUSH1 0x1 DUP8 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x2 DUP8 ADD SLOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x3 DUP7 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x60 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH2 0x121D SWAP1 DUP7 SWAP1 DUP4 DUP1 PUSH2 0x1218 JUMPI POP DUP6 JUMPDEST PUSH2 0x2933 JUMP JUMPDEST DUP3 ISZERO PUSH2 0x1243 JUMPI PUSH2 0x123E DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH1 0x0 PUSH2 0x2A86 JUMP JUMPDEST PUSH2 0x1253 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1253 JUMPI PUSH2 0x1253 DUP6 DUP4 PUSH2 0x2C98 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x96C553EB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x65 SLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0x130F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C6532537465703A2063616C6C6572206973206E6F742074686520 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E6577206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xEBE JUMP JUMPDEST PUSH2 0x984 DUP2 PUSH2 0x2DB6 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1361 JUMPI PUSH1 0x40 MLOAD PUSH32 0x341F61EC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x5 PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0xFF AND PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x138A JUMPI PUSH2 0x138A PUSH2 0x40E4 JUMP JUMPDEST EQ PUSH2 0x13C1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x9AAFAE6500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x37759B9A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x37759B9A SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1442 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x146A SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x4474 JUMP JUMPDEST SWAP1 POP TIMESTAMP PUSH3 0x2A300 DUP3 PUSH1 0xE0 ADD MLOAD PUSH2 0x1480 SWAP2 SWAP1 PUSH2 0x4627 JUMP JUMPDEST LT ISZERO PUSH2 0x14B8 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC2A16F1400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14FA DUP2 DUP6 DUP6 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP CALLVALUE SWAP3 POP PUSH2 0x2A86 SWAP2 POP POP JUMP JUMPDEST DUP1 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x151A SWAP2 SWAP1 PUSH2 0x463A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP3 PUSH2 0x140 ADD MLOAD PUSH4 0xFFFFFFFF AND PUSH32 0x315A04917A98179E57C69A0B2808641E45E218E5402D9D3C7DA753EA76C70322 DUP5 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x1563 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x157A PUSH2 0x1F43 JUMP JUMPDEST SELFBALANCE DUP1 ISZERO PUSH2 0x984 JUMPI PUSH1 0x0 PUSH2 0x1595 PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x15DF JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x15E4 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x161F JUMPI PUSH1 0x40 MLOAD PUSH32 0x90B8EC1800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xA1DD7C5BDC40ECBDEFC1BFDA22F1DFB98C8FC3E3940AAB73AD7FBA37720D0A0 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1665 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH2 0x1692 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x36 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x4B2D PUSH1 0x36 SWAP2 CODECOPY PUSH2 0x2094 JUMP JUMPDEST PUSH2 0x169B DUP4 PUSH2 0x2386 JUMP JUMPDEST DUP4 ISZERO DUP1 PUSH2 0x16A8 JUMPI POP PUSH1 0x40 DUP5 GT JUMPDEST ISZERO PUSH2 0x16DE JUMPI PUSH1 0x40 MLOAD PUSH31 0x64280000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x0 SUB PUSH2 0x1718 JUMPI PUSH1 0x40 MLOAD PUSH32 0xF6EA4E0600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x2A300 DUP2 LT PUSH2 0x1754 JUMPI PUSH1 0x40 MLOAD PUSH32 0xF8D10E8200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x1766 SWAP3 SWAP2 SWAP1 PUSH2 0x43A7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0xCA PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE POP PUSH1 0xCA PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SSTORE PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x3 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND MUL OR SWAP1 SSTORE POP SWAP1 POP POP DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0xED1DCF396500587DB779D729BCAFD22D1CC4827708623E27189EB6687A696244 DUP11 DUP11 DUP7 PUSH1 0x20 ADD MLOAD DUP11 DUP9 PUSH1 0x40 ADD MLOAD DUP12 DUP11 PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0x18F7 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4656 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1951 JUMPI PUSH1 0x40 MLOAD PUSH32 0x341F61EC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0xFF AND PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x197A JUMPI PUSH2 0x197A PUSH2 0x40E4 JUMP JUMPDEST EQ PUSH2 0x19B1 JUMPI PUSH1 0x40 MLOAD PUSH32 0xDEFE2C2500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x3 OR SWAP1 SSTORE PUSH1 0x40 MLOAD DUP3 SWAP1 PUSH32 0xA4273908B9362E571CACD5610879E3DFD7DDC7C9B3CE1D7EA7EA8B418691164 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH2 0x19F7 PUSH2 0x1F43 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xCA5EB5E100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH32 0x0 AND SWAP1 PUSH4 0xCA5EB5E1 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A73 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A87 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1A96 PUSH2 0x1F43 JUMP JUMPDEST PUSH2 0x984 DUP2 PUSH2 0x2DBF JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x1AB3 SWAP3 SWAP2 SWAP1 PUSH2 0x43A7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xB0772D0B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1AFD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1B25 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x46A0 JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP2 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B45 JUMPI PUSH2 0x1B45 PUSH2 0x3A3A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1B6E JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP1 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1C14 JUMPI PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0xCD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP7 MLOAD DUP3 SWAP1 DUP9 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x1BA1 JUMPI PUSH2 0x1BA1 PUSH2 0x4752 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP PUSH2 0x1BD5 DUP2 PUSH2 0x2247 JUMP JUMPDEST PUSH2 0x1BDF JUMPI POP PUSH2 0x1C0C JUMP JUMPDEST DUP1 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1BF2 JUMPI PUSH2 0x1BF2 PUSH2 0x4752 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE DUP3 PUSH2 0x1C07 DUP2 PUSH2 0x4781 JUMP JUMPDEST SWAP4 POP POP POP JUMPDEST PUSH1 0x1 ADD PUSH2 0x1B75 JUMP JUMPDEST POP DUP1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C2E JUMPI PUSH2 0x1C2E PUSH2 0x3A3A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1C57 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP6 POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1CA4 JUMPI DUP3 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x1C77 JUMPI PUSH2 0x1C77 PUSH2 0x4752 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP8 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1C91 JUMPI PUSH2 0x1C91 PUSH2 0x4752 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x1 ADD PUSH2 0x1C5D JUMP JUMPDEST POP POP POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x1CC4 SWAP3 SWAP2 SWAP1 PUSH2 0x43A7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCC PUSH1 0x20 SWAP1 DUP2 MSTORE DUP3 DUP3 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP4 MSTORE SWAP1 MSTORE KECCAK256 SLOAD SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1D41 JUMPI PUSH1 0x40 MLOAD PUSH32 0x341F61EC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH32 0x37759B9A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x37759B9A SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1DD0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1DF8 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x4474 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 SWAP2 POP PUSH2 0x1E19 DUP4 DUP4 DUP4 PUSH2 0x2E48 JUMP JUMPDEST PUSH1 0x3 DUP2 ADD SLOAD PUSH2 0x1E32 SWAP1 DUP4 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2C98 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x1E40 PUSH2 0x39D0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E4F DUP5 PUSH1 0x0 ADD MLOAD PUSH2 0x2FB1 JUMP JUMPDEST PUSH1 0x20 DUP6 ADD MLOAD SWAP1 SWAP2 POP ISZERO PUSH2 0x1E69 JUMPI PUSH2 0x1E69 DUP5 PUSH1 0x20 ADD MLOAD PUSH2 0x2FF2 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2637A450 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 DUP12 PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1EB9 DUP13 PUSH2 0x30ED JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP11 DUP2 MSTORE PUSH1 0x20 ADD DUP10 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP10 PUSH1 0x20 ADD MLOAD GT ISZERO ISZERO DUP2 MSTORE POP DUP7 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1EF5 SWAP3 SWAP2 SWAP1 PUSH2 0x47B9 JUMP JUMPDEST PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1F13 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1F38 SWAP2 SWAP1 PUSH2 0x4880 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1F9D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xEBE JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x201B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C696420616365737320636F6E74726F6C206D616E61676572206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xEBE JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 SWAP1 SWAP3 AND DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH32 0x66FD58E82F7B31A2A5C30E0888F3093EFE4E111B00CD2B0C31FE014601293AA0 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0x40 MLOAD PUSH32 0x18C5E8AB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x20E0 SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x48F2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x20FD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2121 SWAP2 SWAP1 PUSH2 0x45DB JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x2160 JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH32 0x4A3FA29300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEBE SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4914 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xDDC28C58 PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 DUP9 PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x21C7 DUP10 PUSH2 0x30ED JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP6 ISZERO ISZERO DUP2 MSTORE POP ADDRESS PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x21FC SWAP3 SWAP2 SWAP1 PUSH2 0x47B9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2218 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x223C SWAP2 SWAP1 PUSH2 0x4940 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x1 PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0xFF AND PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x2270 JUMPI PUSH2 0x2270 PUSH2 0x40E4 JUMP JUMPDEST EQ PUSH2 0x227E JUMPI POP PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x37759B9A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x37759B9A SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x22FF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x2327 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x4474 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD SWAP2 SWAP3 POP SWAP1 PUSH1 0xFF AND PUSH2 0x2352 JUMPI POP PUSH1 0x0 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST TIMESTAMP PUSH3 0x2A300 DUP4 PUSH1 0xE0 ADD MLOAD PUSH2 0x2366 SWAP2 SWAP1 PUSH2 0x4627 JUMP JUMPDEST LT ISZERO PUSH2 0x2377 JUMPI POP PUSH1 0x0 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST POP POP PUSH1 0x1 ADD SLOAD TIMESTAMP LT ISZERO SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x984 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8579BEFE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2443 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xEBE JUMP JUMPDEST PUSH2 0x244B PUSH2 0x316A JUMP JUMPDEST PUSH2 0x984 DUP2 PUSH2 0x31EF JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x24D1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xEBE JUMP JUMPDEST PUSH2 0x984 DUP2 PUSH2 0x326C JUMP JUMPDEST PUSH1 0x80 DUP2 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 DUP6 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD SWAP1 DUP2 SWAP1 SUB PUSH2 0x2511 JUMPI POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0xFF AND PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x253A JUMPI PUSH2 0x253A PUSH2 0x40E4 JUMP JUMPDEST EQ PUSH2 0x2544 JUMPI POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x37759B9A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x37759B9A SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x25C5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x25ED SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x4474 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 TIMESTAMP PUSH3 0x2A300 DUP4 PUSH1 0xE0 ADD MLOAD PUSH2 0x2605 SWAP2 SWAP1 PUSH2 0x4627 JUMP JUMPDEST LT SWAP1 POP DUP1 ISZERO PUSH2 0x264F JUMPI PUSH1 0x2 DUP4 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x4 OR SWAP1 SSTORE PUSH1 0x40 MLOAD DUP5 SWAP1 PUSH32 0x204A9E3C713EE1071C1D59B7CAA015E0D7A583EBDE2CAF4CF34BB9D5D626CABB SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xEDBA5E0700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0xEBE JUMP JUMPDEST PUSH1 0x20 DUP4 DUP2 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCB SWAP1 SWAP2 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH1 0xFF AND PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x26B0 JUMPI PUSH2 0x26B0 PUSH2 0x40E4 JUMP JUMPDEST EQ PUSH2 0x26E7 JUMPI PUSH1 0x40 MLOAD PUSH32 0xDEFE2C2500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SLOAD PUSH1 0xFF AND PUSH2 0x2722 JUMPI PUSH1 0x40 MLOAD PUSH32 0xDEA2A21200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x34496B5A DUP6 PUSH1 0x60 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x277A SWAP3 SWAP2 SWAP1 PUSH2 0x495C JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2797 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x27BB SWAP2 SWAP1 PUSH2 0x4987 JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x20 ADD MLOAD DUP2 EQ PUSH2 0x27FA JUMPI PUSH1 0x40 MLOAD PUSH32 0xC2A16F1400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xE0 DUP5 ADD MLOAD TIMESTAMP SWAP1 PUSH1 0x0 SWAP1 PUSH2 0x2812 SWAP1 PUSH3 0x2A300 SWAP1 PUSH2 0x4627 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x284E JUMPI PUSH1 0x40 MLOAD PUSH32 0xC2A16F1400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP6 ADD SLOAD PUSH2 0x285D SWAP1 DUP4 PUSH2 0x4627 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x2896 JUMPI PUSH1 0x40 MLOAD PUSH32 0x31289AF400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 PUSH2 0x1253 JUMPI PUSH1 0x80 DUP7 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 DUP11 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SLOAD DUP1 DUP5 MSTORE PUSH1 0xCB SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 PUSH1 0x3 ADD SLOAD DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x28F2 JUMPI POP DUP4 DUP8 PUSH1 0x1 ADD SLOAD DUP3 PUSH2 0x28F0 SWAP2 SWAP1 PUSH2 0x4627 JUMP JUMPDEST GT JUMPDEST ISZERO PUSH2 0x2929 JUMPI PUSH1 0x40 MLOAD PUSH32 0x53F7A6EE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x0 DUP3 PUSH2 0x2953 JUMPI PUSH1 0x40 DUP5 ADD MLOAD PUSH2 0x294E SWAP1 TIMESTAMP PUSH2 0x4627 JUMP JUMPDEST PUSH2 0x2955 JUMP JUMPDEST TIMESTAMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP5 DUP2 MSTORE PUSH1 0x1 DUP4 DUP6 ADD DUP2 DUP2 MSTORE PUSH1 0x0 PUSH1 0x60 DUP7 ADD DUP2 SWAP1 MSTORE PUSH1 0x80 DUP7 ADD DUP2 SWAP1 MSTORE DUP10 DUP2 MSTORE PUSH1 0xCB SWAP1 SWAP5 MSTORE SWAP5 SWAP1 SWAP3 KECCAK256 DUP4 MLOAD DUP2 SSTORE SWAP1 MLOAD DUP2 DUP4 ADD SSTORE SWAP3 MLOAD PUSH1 0x2 DUP5 ADD DUP1 SLOAD SWAP6 SWAP7 POP SWAP3 SWAP5 SWAP1 SWAP3 SWAP2 PUSH1 0xFF NOT SWAP1 SWAP2 AND SWAP1 DUP4 PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x29C1 JUMPI PUSH2 0x29C1 PUSH2 0x40E4 JUMP JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0x60 DUP3 DUP2 ADD MLOAD PUSH1 0x2 DUP4 ADD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FF AND PUSH2 0x100 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 DUP5 AND MUL OR SWAP1 SSTORE PUSH1 0x80 SWAP4 DUP5 ADD MLOAD PUSH1 0x3 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP3 SSTORE SWAP2 DUP8 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 DUP12 ADD DUP1 MLOAD DUP7 AND DUP6 MSTORE SWAP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP7 SWAP1 SSTORE MLOAD SWAP3 DUP9 ADD MLOAD SWAP1 MLOAD SWAP3 SWAP1 SWAP2 AND SWAP2 DUP5 SWAP2 PUSH32 0x1A61D230E613AB7202720DC7C24765AE456C59F31401AE23E29A5397829AF5EC SWAP2 PUSH2 0x2A77 SWAP2 DUP7 SWAP2 PUSH2 0x49A0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH1 0x0 EQ PUSH2 0x2A97 JUMPI DUP3 PUSH2 0x2AE8 JUMP JUMPDEST PUSH2 0x2AE8 PUSH3 0xF4240 PUSH1 0x0 PUSH2 0x2AE1 PUSH1 0x40 DUP1 MLOAD PUSH31 0x3000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE DUP2 MLOAD PUSH1 0x2 DUP2 DUP4 SUB ADD DUP2 MSTORE PUSH1 0x22 SWAP1 SWAP2 ADD SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x32F2 JUMP JUMPDEST SWAP1 POP PUSH2 0x2B07 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP3 PUSH1 0x0 SUB PUSH2 0x2B22 JUMPI PUSH2 0x2B1B DUP6 DUP4 PUSH1 0x0 PUSH2 0xA5F JUMP JUMPDEST SWAP1 POP PUSH2 0x2B38 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE DUP3 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE JUMPDEST DUP1 MLOAD PUSH2 0x140 DUP7 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0x5687C1900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS SWAP3 PUSH4 0x5687C19 SWAP3 SWAP1 SWAP2 PUSH2 0x2B85 SWAP2 SWAP1 DUP11 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x49B9 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2BB2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x20 DUP7 DUP2 ADD DUP1 MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCB DUP4 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH2 0x100 CALLER MUL PUSH32 0xFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000 SWAP1 SWAP2 AND OR PUSH1 0x5 OR SWAP1 SSTORE TIMESTAMP PUSH1 0x3 DUP3 ADD SSTORE PUSH1 0x80 DUP12 ADD MLOAD SWAP4 MLOAD DUP5 DUP5 MSTORE PUSH1 0xCC DUP7 MSTORE DUP3 DUP5 KECCAK256 DUP4 DUP14 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP8 MSTORE SWAP2 SWAP1 SWAP8 MSTORE SWAP4 DUP4 SWAP1 KECCAK256 SSTORE SWAP4 MLOAD PUSH1 0x60 DUP12 ADD MLOAD SWAP2 MLOAD SWAP5 SWAP6 POP SWAP3 SWAP4 SWAP3 SWAP1 SWAP2 AND SWAP2 PUSH2 0x2C4F SWAP2 SWAP1 PUSH2 0x463A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP9 PUSH2 0x140 ADD MLOAD PUSH4 0xFFFFFFFF AND PUSH32 0x7E5AB31B9063F36DB8513C1EC8170E50AAAD7CFF84901C17758CC09BA40F38A3 DUP11 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x18F7 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP3 DUP2 ADD MLOAD PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xCB DUP4 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x2 DUP1 DUP3 ADD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000 AND CALLER PUSH2 0x100 MUL OR SWAP1 SWAP2 OR SWAP1 SSTORE TIMESTAMP PUSH1 0x3 DUP3 ADD DUP2 SWAP1 SSTORE PUSH1 0x80 DUP9 ADD MLOAD DUP5 MSTORE PUSH1 0xCC DUP7 MSTORE DUP3 DUP5 KECCAK256 DUP4 DUP10 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP7 MSTORE SWAP7 MSTORE SWAP3 DUP3 SWAP1 KECCAK256 DUP5 SWAP1 SSTORE SWAP1 MLOAD PUSH32 0xBF63783900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP3 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 DUP6 AND SWAP1 PUSH4 0xBF637839 SWAP1 PUSH2 0x2D52 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x4394 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2D80 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD DUP6 SWAP3 POP PUSH32 0x88DCCE5C07C8DAF9E03FA70DF64B98C8598DF462A55510B7A987DADBF84DB109 SWAP2 POP PUSH1 0x0 SWAP1 LOG2 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x984 DUP2 PUSH2 0x3373 JUMP JUMPDEST PUSH2 0x2DC7 PUSH2 0x1F43 JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP1 SWAP2 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0x2E10 PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF AND PUSH2 0x2E83 JUMPI PUSH1 0x40 MLOAD PUSH32 0xDEA2A21200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP5 ADD SLOAD PUSH1 0xFF AND PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x2E9E JUMPI PUSH2 0x2E9E PUSH2 0x40E4 JUMP JUMPDEST SUB PUSH2 0x2ED5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x9C58A61900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP5 ADD SLOAD PUSH1 0xFF AND PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x2EF0 JUMPI PUSH2 0x2EF0 PUSH2 0x40E4 JUMP JUMPDEST EQ PUSH2 0x2F27 JUMPI PUSH1 0x40 MLOAD PUSH32 0xDEFE2C2500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST TIMESTAMP PUSH3 0x2A300 DUP4 PUSH1 0xE0 ADD MLOAD PUSH2 0x2F3B SWAP2 SWAP1 PUSH2 0x4627 JUMP JUMPDEST LT ISZERO PUSH2 0x2F73 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC2A16F1400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x1 ADD SLOAD TIMESTAMP LT ISZERO PUSH2 0xF78 JUMPI PUSH1 0x40 MLOAD PUSH32 0x5F5F49800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 CALLVALUE EQ PUSH2 0x2FEE JUMPI PUSH1 0x40 MLOAD PUSH32 0x9F70412000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLVALUE PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xEBE JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE4FE1D94 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3052 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3076 SWAP2 SWAP1 PUSH2 0x4A1D JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x30B8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x5373352A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2160 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND CALLER PUSH32 0x0 DUP6 PUSH2 0x33A4 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH32 0x72AB1BC1039B79DC4724FFCA13DE82C96834302D3C7E0D4252232D4B2DD8F900 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 KECCAK256 SLOAD DUP1 PUSH2 0x3163 JUMPI PUSH1 0x40 MLOAD PUSH32 0xF6FF4FB700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH4 0xFFFFFFFF DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xEBE JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x31E7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xEBE JUMP JUMPDEST PUSH2 0x1F9D PUSH2 0x342C JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x97B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xEBE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x32E9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xEBE JUMP JUMPDEST PUSH2 0x984 DUP2 PUSH2 0x34B2 JUMP JUMPDEST PUSH1 0x60 DUP4 PUSH1 0x3 PUSH2 0x3302 DUP3 PUSH1 0x0 PUSH2 0x356F JUMP JUMPDEST PUSH2 0xFFFF AND EQ PUSH2 0x334F JUMPI PUSH2 0x3316 DUP2 PUSH1 0x0 PUSH2 0x356F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x3A51740D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH2 0xFFFF SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xEBE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x335B DUP6 DUP6 PUSH2 0x35D5 JUMP JUMPDEST SWAP1 POP PUSH2 0x3369 DUP7 PUSH1 0x1 DUP4 PUSH2 0x3686 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND SWAP1 SSTORE PUSH2 0x984 DUP2 PUSH2 0x36F1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP5 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP1 DUP3 ADD DUP5 SWAP1 MSTORE DUP3 MLOAD DUP1 DUP4 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x23B872DD00000000000000000000000000000000000000000000000000000000 OR SWAP1 MSTORE PUSH2 0x1E32 SWAP1 DUP6 SWAP1 PUSH2 0x375B JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x34A9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xEBE JUMP JUMPDEST PUSH2 0x1F9D CALLER PUSH2 0x2DB6 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x352F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xEBE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x19F7 JUMPI PUSH1 0x40 MLOAD PUSH32 0xB586360400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x357C DUP3 PUSH1 0x2 PUSH2 0x4627 JUMP JUMPDEST DUP4 MLOAD LT ISZERO PUSH2 0x35CC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x746F55696E7431365F6F75744F66426F756E6473000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xEBE JUMP JUMPDEST POP ADD PUSH1 0x2 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND ISZERO PUSH2 0x363E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000000000000000 PUSH1 0x80 DUP7 DUP2 SHL DUP3 AND PUSH1 0x20 DUP5 ADD MSTORE DUP6 SWAP1 SHL AND PUSH1 0x30 DUP3 ADD MSTORE ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x3163 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000000000000000 PUSH1 0x80 DUP6 SWAP1 SHL AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x30 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 PUSH1 0x3 PUSH2 0x3696 DUP3 PUSH1 0x0 PUSH2 0x356F JUMP JUMPDEST PUSH2 0xFFFF AND EQ PUSH2 0x36AA JUMPI PUSH2 0x3316 DUP2 PUSH1 0x0 PUSH2 0x356F JUMP JUMPDEST DUP5 PUSH1 0x1 PUSH2 0x36B7 DUP6 MLOAD PUSH2 0x3843 JUMP JUMPDEST PUSH2 0x36C2 SWAP1 PUSH1 0x1 PUSH2 0x4A3A JUMP JUMPDEST DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x36D8 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4A5C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x37B0 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5361666545524332303A206C6F772D6C6576656C2063616C6C206661696C6564 DUP2 MSTORE POP DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x38BD SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP1 MLOAD PUSH1 0x0 EQ DUP1 PUSH2 0x37D1 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x37D1 SWAP2 SWAP1 PUSH2 0x45DB JUMP JUMPDEST PUSH2 0xF78 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5361666545524332303A204552433230206F7065726174696F6E20646964206E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F74207375636365656400000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xEBE JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP3 GT ISZERO PUSH2 0x2FEE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2031 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x3620626974730000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xEBE JUMP JUMPDEST PUSH1 0x60 PUSH2 0x223F DUP5 DUP5 PUSH1 0x0 DUP6 DUP6 PUSH1 0x0 DUP1 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH2 0x38E4 SWAP2 SWAP1 PUSH2 0x463A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x3921 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x3926 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x1F38 DUP8 DUP4 DUP4 DUP8 PUSH1 0x60 DUP4 ISZERO PUSH2 0x39A1 JUMPI DUP3 MLOAD PUSH1 0x0 SUB PUSH2 0x399A JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND EXTCODESIZE PUSH2 0x399A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xEBE JUMP JUMPDEST POP DUP2 PUSH2 0x223F JUMP JUMPDEST PUSH2 0x223F DUP4 DUP4 DUP2 MLOAD ISZERO PUSH2 0x39B6 JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEBE SWAP2 SWAP1 PUSH2 0x4AF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3A13 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x984 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x3A35 DUP2 PUSH2 0x3A18 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x180 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3A8D JUMPI PUSH2 0x3A8D PUSH2 0x3A3A JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3A8D JUMPI PUSH2 0x3A8D PUSH2 0x3A3A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3ADF JUMPI PUSH2 0x3ADF PUSH2 0x3A3A JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x3B01 JUMPI PUSH2 0x3B01 PUSH2 0x3A3A JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3B20 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x3B33 PUSH2 0x3B2E DUP3 PUSH2 0x3AE7 JUMP JUMPDEST PUSH2 0x3AB6 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x3B48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x984 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x3A35 DUP2 PUSH2 0x3B65 JUMP JUMPDEST PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x984 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x3A35 DUP2 PUSH2 0x3B85 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3BBD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3BC5 PUSH2 0x3A69 JUMP JUMPDEST SWAP1 POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3BDF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3BEB DUP6 DUP4 DUP7 ADD PUSH2 0x3B0F JUMP JUMPDEST DUP4 MSTORE PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x3C03 PUSH1 0x40 DUP6 ADD PUSH2 0x3B7A JUMP JUMPDEST PUSH1 0x40 DUP5 ADD MSTORE PUSH1 0x60 DUP5 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x3C1C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3C28 DUP6 DUP4 DUP7 ADD PUSH2 0x3B0F JUMP JUMPDEST PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x80 DUP5 ADD CALLDATALOAD PUSH1 0x80 DUP5 ADD MSTORE PUSH1 0xA0 DUP5 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x3C4B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3C57 DUP6 DUP4 DUP7 ADD PUSH2 0x3B0F JUMP JUMPDEST PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0xC0 DUP5 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x3C70 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3C7C DUP6 DUP4 DUP7 ADD PUSH2 0x3B0F JUMP JUMPDEST PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0xE0 DUP5 ADD CALLDATALOAD PUSH1 0xE0 DUP5 ADD MSTORE PUSH2 0x100 SWAP2 POP PUSH2 0x3C9B DUP3 DUP6 ADD PUSH2 0x3B7A JUMP JUMPDEST DUP3 DUP5 ADD MSTORE PUSH2 0x120 SWAP2 POP PUSH2 0x3CAF DUP3 DUP6 ADD PUSH2 0x3B9F JUMP JUMPDEST DUP3 DUP5 ADD MSTORE PUSH2 0x140 SWAP2 POP PUSH2 0x3CC3 DUP3 DUP6 ADD PUSH2 0x3A2A JUMP JUMPDEST DUP3 DUP5 ADD MSTORE PUSH2 0x160 SWAP2 POP DUP2 DUP5 ADD CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x3CDD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3CE9 DUP7 DUP3 DUP8 ADD PUSH2 0x3B0F JUMP JUMPDEST DUP4 DUP6 ADD MSTORE POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 DUP8 SUB PUSH1 0xC0 DUP2 SLT ISZERO PUSH2 0x3D0F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH2 0x3D1A DUP2 PUSH2 0x3A18 JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3D37 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3D43 DUP11 DUP4 DUP12 ADD PUSH2 0x3BAA JUMP JUMPDEST SWAP7 POP PUSH1 0x40 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x3D59 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D66 DUP10 DUP3 DUP11 ADD PUSH2 0x3B0F JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 DUP3 ADD SLT ISZERO PUSH2 0x3D99 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DA2 PUSH2 0x3A93 JUMP JUMPDEST PUSH1 0x60 DUP8 ADD CALLDATALOAD DUP2 MSTORE PUSH1 0x80 DUP8 ADD CALLDATALOAD PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x3DC1 PUSH1 0xA0 DUP8 ADD PUSH2 0x3B7A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3DDF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x3163 DUP2 PUSH2 0x3B65 JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x984 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3E0A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x3163 DUP2 PUSH2 0x3DEA JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3E2A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3E42 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3E4E DUP8 DUP4 DUP9 ADD PUSH2 0x3BAA JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x3E64 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E71 DUP7 DUP3 DUP8 ADD PUSH2 0x3B0F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0x3E82 DUP2 PUSH2 0x3DEA JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP4 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD PUSH2 0xB3E JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x3EB6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3ECE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x3EE6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3F00 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3F17 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3F23 DUP6 DUP3 DUP7 ADD PUSH2 0x3EA4 JUMP JUMPDEST SWAP1 SWAP7 SWAP1 SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3F41 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3F5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x3F66 DUP2 PUSH2 0x3A18 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3F87 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x3F92 DUP2 PUSH2 0x3B65 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x3FA2 DUP2 PUSH2 0x3DEA JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3FC2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3FD9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3FE5 DUP7 DUP3 DUP8 ADD PUSH2 0x3EA4 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x3E82 DUP2 PUSH2 0x3DEA JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x400C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x4017 DUP2 PUSH2 0x3B65 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x3FA2 DUP2 PUSH2 0x3B65 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x403A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x3FA2 DUP2 PUSH2 0x3B65 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x4061 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4078 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4084 DUP7 DUP3 DUP8 ADD PUSH2 0x3EA4 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x3E82 DUP2 PUSH2 0x3B65 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x40AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x40CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x40D7 DUP7 DUP3 DUP8 ADD PUSH2 0x3EA4 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD PUSH1 0x6 DUP6 LT PUSH2 0x4158 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP5 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x60 DUP4 ADD MSTORE DUP3 PUSH1 0x80 DUP4 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x418F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x3163 DUP2 PUSH2 0x3A18 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x41B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x41C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x41D5 DUP9 DUP3 DUP10 ADD PUSH2 0x3EA4 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x41E9 DUP2 PUSH2 0x3B65 JUMP JUMPDEST SWAP5 SWAP8 SWAP4 SWAP7 POP SWAP4 SWAP5 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP5 POP PUSH1 0x60 ADD CALLDATALOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x4239 JUMPI DUP4 MLOAD DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x421D JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4260 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x4248 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x4281 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x4245 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 MLOAD DUP2 DUP6 MSTORE PUSH2 0x42AB DUP3 DUP7 ADD DUP3 PUSH2 0x4269 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP6 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x42D2 PUSH1 0x40 DUP7 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0x42EA DUP3 DUP3 PUSH2 0x4269 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP6 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0xA0 DUP7 ADD MSTORE PUSH2 0x430E DUP3 DUP3 PUSH2 0x4269 JUMP JUMPDEST SWAP2 POP POP PUSH1 0xC0 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0xC0 DUP7 ADD MSTORE PUSH2 0x4328 DUP3 DUP3 PUSH2 0x4269 JUMP JUMPDEST SWAP2 POP POP PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP6 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD PUSH2 0x4350 DUP3 DUP8 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP POP PUSH2 0x120 DUP4 DUP2 ADD MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP6 ADD MSTORE PUSH2 0x140 DUP1 DUP5 ADD MLOAD PUSH4 0xFFFFFFFF AND SWAP1 DUP6 ADD MSTORE PUSH2 0x160 DUP1 DUP5 ADD MLOAD DUP6 DUP4 SUB DUP3 DUP8 ADD MSTORE PUSH2 0x3369 DUP4 DUP3 PUSH2 0x4269 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x3163 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x4295 JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 ADD ADD MSTORE PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP5 ADD AND DUP5 ADD ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH2 0x43F6 PUSH1 0x60 DUP4 ADD DUP7 DUP9 PUSH2 0x43B7 JUMP JUMPDEST SWAP4 ISZERO ISZERO PUSH1 0x20 DUP4 ADD MSTORE POP SWAP1 ISZERO ISZERO PUSH1 0x40 SWAP1 SWAP2 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x441F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x442D PUSH2 0x3B2E DUP3 PUSH2 0x3AE7 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x4442 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x223F DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x4245 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x3A35 DUP2 PUSH2 0x3B65 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x3A35 DUP2 PUSH2 0x3B85 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x3A35 DUP2 PUSH2 0x3A18 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4486 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x449E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH2 0x180 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x44B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x44BB PUSH2 0x3A69 JUMP JUMPDEST DUP3 MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x44CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x44D6 DUP8 DUP3 DUP7 ADD PUSH2 0x440E JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x44EF PUSH1 0x40 DUP5 ADD PUSH2 0x4453 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x4506 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4512 DUP8 DUP3 DUP7 ADD PUSH2 0x440E JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x4534 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4540 DUP8 DUP3 DUP7 ADD PUSH2 0x440E JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x4558 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4564 DUP8 DUP3 DUP7 ADD PUSH2 0x440E JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 PUSH2 0x4582 DUP2 DUP6 ADD PUSH2 0x4453 JUMP JUMPDEST SWAP1 DUP3 ADD MSTORE PUSH2 0x120 PUSH2 0x4594 DUP5 DUP3 ADD PUSH2 0x445E JUMP JUMPDEST SWAP1 DUP3 ADD MSTORE PUSH2 0x140 PUSH2 0x45A6 DUP5 DUP3 ADD PUSH2 0x4469 JUMP JUMPDEST SWAP1 DUP3 ADD MSTORE PUSH2 0x160 DUP4 DUP2 ADD MLOAD DUP4 DUP2 GT ISZERO PUSH2 0x45BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x45CA DUP9 DUP3 DUP8 ADD PUSH2 0x440E JUMP JUMPDEST SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x45ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x3163 DUP2 PUSH2 0x3DEA JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0xB3E JUMPI PUSH2 0xB3E PUSH2 0x45F8 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x464C DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x4245 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xE0 DUP2 MSTORE PUSH1 0x0 PUSH2 0x466A PUSH1 0xE0 DUP4 ADD DUP11 DUP13 PUSH2 0x43B7 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP9 SWAP1 SWAP9 MSTORE POP PUSH1 0x40 DUP2 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH1 0x60 DUP6 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x80 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE ISZERO ISZERO PUSH1 0xA0 DUP4 ADD MSTORE ISZERO ISZERO PUSH1 0xC0 SWAP1 SWAP2 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x46B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x46CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x46DF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP2 DUP2 GT ISZERO PUSH2 0x46F1 JUMPI PUSH2 0x46F1 PUSH2 0x3A3A JUMP JUMPDEST DUP1 PUSH1 0x5 SHL SWAP2 POP PUSH2 0x4702 DUP5 DUP4 ADD PUSH2 0x3AB6 JUMP JUMPDEST DUP2 DUP2 MSTORE SWAP2 DUP4 ADD DUP5 ADD SWAP2 DUP5 DUP2 ADD SWAP1 DUP9 DUP5 GT ISZERO PUSH2 0x471C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 DUP6 ADD SWAP4 JUMPDEST DUP4 DUP6 LT ISZERO PUSH2 0x4746 JUMPI DUP5 MLOAD SWAP3 POP PUSH2 0x4736 DUP4 PUSH2 0x3B65 JUMP JUMPDEST DUP3 DUP3 MSTORE SWAP4 DUP6 ADD SWAP4 SWAP1 DUP6 ADD SWAP1 PUSH2 0x4721 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x47B2 JUMPI PUSH2 0x47B2 PUSH2 0x45F8 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH4 0xFFFFFFFF DUP4 MLOAD AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0xA0 PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x47EF PUSH1 0xE0 DUP5 ADD DUP3 PUSH2 0x4269 JUMP JUMPDEST SWAP1 POP PUSH1 0x60 DUP6 ADD MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 DUP5 DUP4 SUB ADD PUSH1 0xA0 DUP6 ADD MSTORE PUSH2 0x482A DUP3 DUP3 PUSH2 0x4269 JUMP JUMPDEST PUSH1 0x80 SWAP7 SWAP1 SWAP7 ADD MLOAD ISZERO ISZERO PUSH1 0xC0 DUP6 ADD MSTORE POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4862 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x486A PUSH2 0x3A93 JUMP JUMPDEST SWAP1 POP DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4892 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x60 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP3 DUP3 LT DUP2 DUP4 GT OR ISZERO PUSH2 0x48B6 JUMPI PUSH2 0x48B6 PUSH2 0x3A3A JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP5 MLOAD DUP4 MSTORE PUSH1 0x20 DUP6 ADD MLOAD SWAP2 POP DUP1 DUP3 AND DUP3 EQ PUSH2 0x48D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x48E6 DUP5 PUSH1 0x40 DUP6 ADD PUSH2 0x4850 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x223F PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x4269 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND DUP4 MSTORE DUP1 DUP6 AND PUSH1 0x20 DUP5 ADD MSTORE POP PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x223C PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x4269 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4952 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3163 DUP4 DUP4 PUSH2 0x4850 JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0x0 PUSH2 0x496F PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x4269 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x20 DUP4 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4999 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x223F PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x4269 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP7 AND DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x49D8 PUSH1 0xC0 DUP4 ADD DUP8 PUSH2 0x4295 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x49EA DUP2 DUP8 PUSH2 0x4269 JUMP JUMPDEST DUP6 MLOAD PUSH1 0x60 DUP6 ADD MSTORE PUSH1 0x20 DUP7 ADD MLOAD PUSH1 0x80 DUP6 ADD MSTORE SWAP2 POP PUSH2 0x4A04 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0xA0 DUP4 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4A2F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x3163 DUP2 PUSH2 0x3B65 JUMP JUMPDEST PUSH2 0xFFFF DUP2 DUP2 AND DUP4 DUP3 AND ADD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0x4A55 JUMPI PUSH2 0x4A55 PUSH2 0x45F8 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP7 MLOAD PUSH2 0x4A6E DUP2 DUP5 PUSH1 0x20 DUP12 ADD PUSH2 0x4245 JUMP JUMPDEST DUP1 DUP4 ADD SWAP1 POP PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 DUP1 DUP9 PUSH1 0xF8 SHL AND DUP3 MSTORE PUSH32 0xFFFF000000000000000000000000000000000000000000000000000000000000 DUP8 PUSH1 0xF0 SHL AND PUSH1 0x1 DUP4 ADD MSTORE DUP1 DUP7 PUSH1 0xF8 SHL AND PUSH1 0x3 DUP4 ADD MSTORE POP DUP4 MLOAD PUSH2 0x4AE6 DUP2 PUSH1 0x4 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x4245 JUMP JUMPDEST ADD PUSH1 0x4 ADD SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x3163 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x4269 JUMP INVALID PUSH20 0x657457686974656C69737465644578656375746F PUSH19 0x28616464726573732C626F6F6C297365745269 PUSH20 0x6B506172616D65746572436F6E66696728737472 PUSH10 0x6E672C61646472657373 0x2C PUSH22 0x696E743235362C75696E7432353629A2646970667358 0x22 SLT KECCAK256 SWAP14 0xDF SDIV 0xA6 PUSH13 0x58460FADDFDEE8EDD07FB29417 0xD9 0xBC TIMESTAMP 0x21 DUP11 0xAD 0xD2 PUSH24 0xDC6E5BCE9FAC64736F6C6343000819003300000000000000 ","sourceMap":"1459:30722:70:-:0;;;4055:385;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1307:42:10;;;;4172:22:70::1;:20;:22::i;:::-;4204:33;4225:11:::0;4204:20:::1;:33::i;:::-;4247:31;4268:9:::0;4247:20:::1;:31::i;:::-;4292:15;:20;;4311:1;4292:20:::0;4288:54:::1;;4321:21;;-1:-1:-1::0;;;4321:21:70::1;;;;;;;;;;;4288:54;-1:-1:-1::0;;;;;4353:38:70;;::::1;;::::0;-1:-1:-1;4401:32:70::1;;;::::0;1459:30722;;5928:279:27;5996:13;;;;;;;5995:14;5987:66;;;;-1:-1:-1;;;5987:66:27;;853:2:97;5987:66:27;;;835:21:97;892:2;872:18;;;865:30;931:34;911:18;;;904:62;-1:-1:-1;;;982:18:97;;;975:37;1029:19;;5987:66:27;;;;;;;;6067:12;;6082:15;6067:12;;;:30;6063:138;;;6113:12;:30;;-1:-1:-1;;6113:30:27;6128:15;6113:30;;;;;;6162:28;;1201:36:97;;;6162:28:27;;1189:2:97;1174:18;6162:28:27;;;;;;;6063:138;5928:279::o;485:136:47:-;-1:-1:-1;;;;;548:22:47;;544:75;;589:23;;-1:-1:-1;;;589:23:47;;;;;;;;;;;544:75;485:136;:::o;14:177:97:-;93:13;;-1:-1:-1;;;;;135:31:97;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:450::-;283:6;291;299;352:2;340:9;331:7;327:23;323:32;320:52;;;368:1;365;358:12;320:52;391:40;421:9;391:40;:::i;:::-;381:50;;450:49;495:2;484:9;480:18;450:49;:::i;:::-;440:59;;542:2;531:9;527:18;521:25;586:10;579:5;575:22;568:5;565:33;555:61;;612:1;609;602:12;555:61;635:5;625:15;;;196:450;;;;;:::o;1059:184::-;1459:30722:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@LAYER_ZERO_EID_18359":{"entryPoint":null,"id":18359,"parameterSlots":0,"returnSlots":0},"@RISK_ORACLE_18363":{"entryPoint":null,"id":18363,"parameterSlots":0,"returnSlots":0},"@UPDATE_EXPIRATION_TIME_18356":{"entryPoint":null,"id":18356,"parameterSlots":0,"returnSlots":0},"@_18494":{"entryPoint":null,"id":18494,"parameterSlots":0,"returnSlots":0},"@__AccessControlled_init_13754":{"entryPoint":9158,"id":13754,"parameterSlots":1,"returnSlots":0},"@__AccessControlled_init_unchained_13766":{"entryPoint":12783,"id":13766,"parameterSlots":1,"returnSlots":0},"@__OAppCore_init_1901":{"entryPoint":12908,"id":1901,"parameterSlots":1,"returnSlots":0},"@__OAppCore_init_unchained_1925":{"entryPoint":13490,"id":1925,"parameterSlots":1,"returnSlots":0},"@__OAppSender_init_2238":{"entryPoint":9300,"id":2238,"parameterSlots":1,"returnSlots":0},"@__Ownable2Step_init_5859":{"entryPoint":12650,"id":5859,"parameterSlots":0,"returnSlots":0},"@__Ownable_init_unchained_5985":{"entryPoint":13356,"id":5985,"parameterSlots":0,"returnSlots":0},"@_callOptionalReturn_7690":{"entryPoint":14171,"id":7690,"parameterSlots":2,"returnSlots":0},"@_checkAccessAllowed_13857":{"entryPoint":8340,"id":13857,"parameterSlots":1,"returnSlots":0},"@_checkOwner_6016":{"entryPoint":8003,"id":6016,"parameterSlots":0,"returnSlots":0},"@_ensureNoActiveUpdate_19671":{"entryPoint":9434,"id":19671,"parameterSlots":1,"returnSlots":0},"@_executeUpdate_19469":{"entryPoint":11416,"id":19469,"parameterSlots":2,"returnSlots":0},"@_getOAppCoreStorage_1872":{"entryPoint":null,"id":1872,"parameterSlots":0,"returnSlots":1},"@_getPeerOrRevert_2011":{"entryPoint":12525,"id":2011,"parameterSlots":1,"returnSlots":1},"@_isUpdateExecutable_19921":{"entryPoint":8775,"id":19921,"parameterSlots":1,"returnSlots":1},"@_lzSend_2345":{"entryPoint":7736,"id":2345,"parameterSlots":5,"returnSlots":1},"@_msgSender_6559":{"entryPoint":null,"id":6559,"parameterSlots":0,"returnSlots":1},"@_payLzToken_2402":{"entryPoint":12274,"id":2402,"parameterSlots":1,"returnSlots":0},"@_payNative_2366":{"entryPoint":12209,"id":2366,"parameterSlots":1,"returnSlots":1},"@_quote_2290":{"entryPoint":8548,"id":2290,"parameterSlots":4,"returnSlots":1},"@_registerUpdate_19398":{"entryPoint":10547,"id":19398,"parameterSlots":3,"returnSlots":0},"@_revert_8068":{"entryPoint":null,"id":8068,"parameterSlots":2,"returnSlots":0},"@_sendRemoteUpdate_19597":{"entryPoint":10886,"id":19597,"parameterSlots":3,"returnSlots":0},"@_setAccessControlManager_13827":{"entryPoint":8095,"id":13827,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_19333":{"entryPoint":11702,"id":19333,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_5919":{"entryPoint":13171,"id":5919,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_6073":{"entryPoint":14065,"id":6073,"parameterSlots":1,"returnSlots":0},"@_validateExecuteUpdate_19856":{"entryPoint":11848,"id":19856,"parameterSlots":3,"returnSlots":0},"@_validateRegisterUpdate_19792":{"entryPoint":9860,"id":19792,"parameterSlots":3,"returnSlots":0},"@acceptOwnership_5941":{"entryPoint":4749,"id":5941,"parameterSlots":0,"returnSlots":0},"@accessControlManager_13789":{"entryPoint":null,"id":13789,"parameterSlots":0,"returnSlots":1},"@addExecutorLzReceiveOption_2586":{"entryPoint":13042,"id":2586,"parameterSlots":3,"returnSlots":1},"@addExecutorOption_2762":{"entryPoint":13958,"id":2762,"parameterSlots":3,"returnSlots":1},"@encodeLzReceiveOption_297":{"entryPoint":13781,"id":297,"parameterSlots":2,"returnSlots":1},"@endpoint_1875":{"entryPoint":null,"id":1875,"parameterSlots":0,"returnSlots":0},"@ensureNonzeroAddress_10945":{"entryPoint":9094,"id":10945,"parameterSlots":1,"returnSlots":0},"@executeRegisteredUpdate_18915":{"entryPoint":7416,"id":18915,"parameterSlots":1,"returnSlots":0},"@functionCallWithValue_7893":{"entryPoint":null,"id":7893,"parameterSlots":4,"returnSlots":1},"@functionCall_7829":{"entryPoint":14525,"id":7829,"parameterSlots":3,"returnSlots":1},"@getExecutableUpdates_19135":{"entryPoint":6815,"id":19135,"parameterSlots":3,"returnSlots":1},"@getLastProcessedUpdate_19197":{"entryPoint":7345,"id":19197,"parameterSlots":3,"returnSlots":1},"@getLastRegisteredUpdate_19223":{"entryPoint":3965,"id":19223,"parameterSlots":3,"returnSlots":1},"@getRiskParameterConfig_19171":{"entryPoint":2737,"id":19171,"parameterSlots":2,"returnSlots":1},"@initialize_18489":{"entryPoint":3606,"id":18489,"parameterSlots":2,"returnSlots":0},"@isContract_6266":{"entryPoint":null,"id":6266,"parameterSlots":1,"returnSlots":1},"@isContract_7757":{"entryPoint":null,"id":7757,"parameterSlots":1,"returnSlots":1},"@isUpdateExecutable_19148":{"entryPoint":2884,"id":19148,"parameterSlots":1,"returnSlots":1},"@lastProcessedUpdate_18385":{"entryPoint":null,"id":18385,"parameterSlots":0,"returnSlots":0},"@lastRegisteredUpdate_18392":{"entryPoint":null,"id":18392,"parameterSlots":0,"returnSlots":0},"@lzSend_19299":{"entryPoint":2304,"id":19299,"parameterSlots":5,"returnSlots":0},"@newOptions_2555":{"entryPoint":null,"id":2555,"parameterSlots":0,"returnSlots":1},"@oAppVersion_2257":{"entryPoint":null,"id":2257,"parameterSlots":0,"returnSlots":2},"@owner_6002":{"entryPoint":null,"id":6002,"parameterSlots":0,"returnSlots":1},"@paused_18366":{"entryPoint":null,"id":18366,"parameterSlots":0,"returnSlots":0},"@peers_1946":{"entryPoint":null,"id":1946,"parameterSlots":1,"returnSlots":1},"@pendingOwner_5882":{"entryPoint":null,"id":5882,"parameterSlots":0,"returnSlots":1},"@processUpdate_18869":{"entryPoint":4036,"id":18869,"parameterSlots":1,"returnSlots":0},"@quote_19255":{"entryPoint":2655,"id":19255,"parameterSlots":3,"returnSlots":1},"@rejectUpdate_18952":{"entryPoint":6408,"id":18952,"parameterSlots":1,"returnSlots":0},"@renounceOwnership_19930":{"entryPoint":4699,"id":19930,"parameterSlots":0,"returnSlots":0},"@resendRemoteUpdate_19018":{"entryPoint":4888,"id":19018,"parameterSlots":3,"returnSlots":0},"@riskParameterConfigs_18372":{"entryPoint":null,"id":18372,"parameterSlots":0,"returnSlots":0},"@safeTransferFrom_7423":{"entryPoint":13220,"id":7423,"parameterSlots":4,"returnSlots":0},"@setAccessControlManager_13779":{"entryPoint":2419,"id":13779,"parameterSlots":1,"returnSlots":0},"@setConfigActive_18733":{"entryPoint":3255,"id":18733,"parameterSlots":3,"returnSlots":0},"@setDelegate_2026":{"entryPoint":6639,"id":2026,"parameterSlots":1,"returnSlots":0},"@setPaused_18567":{"entryPoint":2439,"id":18567,"parameterSlots":1,"returnSlots":0},"@setPeer_1976":{"entryPoint":2895,"id":1976,"parameterSlots":2,"returnSlots":0},"@setRiskParameterConfig_18668":{"entryPoint":5745,"id":18668,"parameterSlots":5,"returnSlots":0},"@setWhitelistedExecutor_18776":{"entryPoint":3022,"id":18776,"parameterSlots":2,"returnSlots":0},"@sweepNative_18539":{"entryPoint":5490,"id":18539,"parameterSlots":0,"returnSlots":0},"@toUint16_22848":{"entryPoint":13679,"id":22848,"parameterSlots":2,"returnSlots":1},"@toUint16_9983":{"entryPoint":14403,"id":9983,"parameterSlots":1,"returnSlots":1},"@transferOwnership_19317":{"entryPoint":6798,"id":19317,"parameterSlots":1,"returnSlots":0},"@transferOwnership_5902":{"entryPoint":11711,"id":5902,"parameterSlots":1,"returnSlots":0},"@updates_18378":{"entryPoint":null,"id":18378,"parameterSlots":0,"returnSlots":0},"@verifyCallResultFromTarget_8024":{"entryPoint":null,"id":8024,"parameterSlots":4,"returnSlots":1},"@whitelistedExecutors_18397":{"entryPoint":null,"id":18397,"parameterSlots":0,"returnSlots":0},"abi_decode_address":{"entryPoint":15226,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_address_fromMemory":{"entryPoint":17491,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_string":{"entryPoint":15119,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_string_calldata":{"entryPoint":16036,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_string_fromMemory":{"entryPoint":17422,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_struct_MessagingFee_fromMemory":{"entryPoint":18512,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_struct_RiskParameterUpdate":{"entryPoint":15274,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":15821,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":18973,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":16377,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_bool":{"entryPoint":16244,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptr_fromMemory":{"entryPoint":18080,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool":{"entryPoint":15864,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":17883,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_address":{"entryPoint":16423,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_string_calldata_ptr":{"entryPoint":16109,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_string_calldata_ptrt_address":{"entryPoint":16460,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_string_calldata_ptrt_addresst_uint256t_uint256":{"entryPoint":16794,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_string_calldata_ptrt_bool":{"entryPoint":16301,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_struct$_MessagingFee_$879_memory_ptr_fromMemory":{"entryPoint":18752,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_MessagingReceipt_$874_memory_ptr_fromMemory":{"entryPoint":18560,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_RiskParameterUpdate_$16568_memory_ptr_fromMemory":{"entryPoint":17524,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_RiskParameterUpdate_$16568_memory_ptrt_bytes_memory_ptrt_bool":{"entryPoint":15893,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint256":{"entryPoint":16175,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":18823,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_bytes_calldata_ptr":{"entryPoint":16536,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint32":{"entryPoint":16765,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint32t_bytes32":{"entryPoint":16200,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint32t_struct$_RiskParameterUpdate_$16568_memory_ptrt_bytes_memory_ptrt_struct$_MessagingFee_$879_memory_ptrt_address":{"entryPoint":15606,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_uint32":{"entryPoint":14890,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint32_fromMemory":{"entryPoint":17513,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint96":{"entryPoint":15263,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint96_fromMemory":{"entryPoint":17502,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_address":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_string":{"entryPoint":17001,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_string_calldata":{"entryPoint":17335,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_struct_MessagingFee":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_struct_RiskParameterUpdate":{"entryPoint":17045,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":17319,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr_t_uint8_t_uint16_t_uint8_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_uint8_t_uint16_t_uint8_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":19036,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":17978,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_packed_t_uint128__to_t_uint128__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_uint128_t_uint128__to_t_uint128_t_uint128__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_uint16__to_t_uint16__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":18708,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":18674,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":16897,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool_t_bool__to_t_bool_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool_t_uint256_t_uint256_t_address__to_t_bool_t_uint256_t_uint256_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$13903__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_ILayerZeroEndpointV2_$1048__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IRiskOracle_$16808__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_calldata_ptr_t_bool_t_bool__to_t_string_memory_ptr_t_bool_t_bool__fromStack_reversed":{"entryPoint":17378,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_string_calldata_ptr_t_uint256_t_uint256_t_uint256_t_uint256_t_bool_t_bool__to_t_string_memory_ptr_t_uint256_t_uint256_t_uint256_t_uint256_t_bool_t_bool__fromStack_reversed":{"entryPoint":18006,"id":null,"parameterSlots":9,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":19189,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr_t_address__to_t_string_memory_ptr_t_address__fromStack_reversed":{"entryPoint":18780,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_stringliteral_13d3a66f9e0e5c92bbe7743bcd3bdb4695009d5f3a96e5ff49718d715b484033__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_414233483a71244a4f2700455a9733e71511b5279e381bdd2af6d44b1b09ecab__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_struct$_MessagingFee_$879_memory_ptr__to_t_struct$_MessagingFee_$879_memory_ptr__fromStack_reversed":{"entryPoint":16013,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_MessagingParams_$866_memory_ptr_t_address__to_t_struct$_MessagingParams_$866_memory_ptr_t_address__fromStack_reversed":{"entryPoint":18361,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_struct$_RiskParamConfig_$16859_memory_ptr__to_t_struct$_RiskParamConfig_$16859_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_RiskParameterUpdate_$16568_memory_ptr__to_t_struct$_RiskParameterUpdate_$16568_memory_ptr__fromStack_reversed":{"entryPoint":17300,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_string_memory_ptr__to_t_uint256_t_string_memory_ptr__fromStack_reversed":{"entryPoint":18848,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256_t_enum$_UpdateStatus_$16849_t_address_t_uint256__to_t_uint256_t_uint256_t_uint8_t_address_t_uint256__fromStack_reversed":{"entryPoint":16659,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint32_t_bytes32__to_t_uint32_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint32_t_struct$_RiskParameterUpdate_$16568_memory_ptr_t_bytes_memory_ptr_t_struct$_MessagingFee_$879_memory_ptr_t_address__to_t_uint32_t_struct$_RiskParameterUpdate_$16568_memory_ptr_t_bytes_memory_ptr_t_struct$_MessagingFee_$879_memory_ptr_t_address__fromStack_reversed":{"entryPoint":18873,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint64_t_uint64__to_t_uint64_t_uint64__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_uint32":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_uint96":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"allocate_memory":{"entryPoint":15030,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_memory_4306":{"entryPoint":14953,"id":null,"parameterSlots":0,"returnSlots":1},"allocate_memory_4308":{"entryPoint":14995,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_string":{"entryPoint":15079,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint16":{"entryPoint":19002,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":17959,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":16965,"id":null,"parameterSlots":3,"returnSlots":0},"increment_t_uint256":{"entryPoint":18305,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":17912,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":16612,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":18258,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":14906,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":15205,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_bool":{"entryPoint":15850,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_uint32":{"entryPoint":14872,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_uint96":{"entryPoint":15237,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:39794:97","nodeType":"YulBlock","src":"0:39794:97","statements":[{"nativeSrc":"6:3:97","nodeType":"YulBlock","src":"6:3:97","statements":[]},{"body":{"nativeSrc":"58:77:97","nodeType":"YulBlock","src":"58:77:97","statements":[{"body":{"nativeSrc":"113:16:97","nodeType":"YulBlock","src":"113:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"122:1:97","nodeType":"YulLiteral","src":"122:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"125:1:97","nodeType":"YulLiteral","src":"125:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"115:6:97","nodeType":"YulIdentifier","src":"115:6:97"},"nativeSrc":"115:12:97","nodeType":"YulFunctionCall","src":"115:12:97"},"nativeSrc":"115:12:97","nodeType":"YulExpressionStatement","src":"115:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"81:5:97","nodeType":"YulIdentifier","src":"81:5:97"},{"arguments":[{"name":"value","nativeSrc":"92:5:97","nodeType":"YulIdentifier","src":"92:5:97"},{"kind":"number","nativeSrc":"99:10:97","nodeType":"YulLiteral","src":"99:10:97","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nativeSrc":"88:3:97","nodeType":"YulIdentifier","src":"88:3:97"},"nativeSrc":"88:22:97","nodeType":"YulFunctionCall","src":"88:22:97"}],"functionName":{"name":"eq","nativeSrc":"78:2:97","nodeType":"YulIdentifier","src":"78:2:97"},"nativeSrc":"78:33:97","nodeType":"YulFunctionCall","src":"78:33:97"}],"functionName":{"name":"iszero","nativeSrc":"71:6:97","nodeType":"YulIdentifier","src":"71:6:97"},"nativeSrc":"71:41:97","nodeType":"YulFunctionCall","src":"71:41:97"},"nativeSrc":"68:61:97","nodeType":"YulIf","src":"68:61:97"}]},"name":"validator_revert_uint32","nativeSrc":"14:121:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"47:5:97","nodeType":"YulTypedName","src":"47:5:97","type":""}],"src":"14:121:97"},{"body":{"nativeSrc":"188:84:97","nodeType":"YulBlock","src":"188:84:97","statements":[{"nativeSrc":"198:29:97","nodeType":"YulAssignment","src":"198:29:97","value":{"arguments":[{"name":"offset","nativeSrc":"220:6:97","nodeType":"YulIdentifier","src":"220:6:97"}],"functionName":{"name":"calldataload","nativeSrc":"207:12:97","nodeType":"YulIdentifier","src":"207:12:97"},"nativeSrc":"207:20:97","nodeType":"YulFunctionCall","src":"207:20:97"},"variableNames":[{"name":"value","nativeSrc":"198:5:97","nodeType":"YulIdentifier","src":"198:5:97"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"260:5:97","nodeType":"YulIdentifier","src":"260:5:97"}],"functionName":{"name":"validator_revert_uint32","nativeSrc":"236:23:97","nodeType":"YulIdentifier","src":"236:23:97"},"nativeSrc":"236:30:97","nodeType":"YulFunctionCall","src":"236:30:97"},"nativeSrc":"236:30:97","nodeType":"YulExpressionStatement","src":"236:30:97"}]},"name":"abi_decode_uint32","nativeSrc":"140:132:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"167:6:97","nodeType":"YulTypedName","src":"167:6:97","type":""}],"returnVariables":[{"name":"value","nativeSrc":"178:5:97","nodeType":"YulTypedName","src":"178:5:97","type":""}],"src":"140:132:97"},{"body":{"nativeSrc":"309:152:97","nodeType":"YulBlock","src":"309:152:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"326:1:97","nodeType":"YulLiteral","src":"326:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"329:77:97","nodeType":"YulLiteral","src":"329:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"319:6:97","nodeType":"YulIdentifier","src":"319:6:97"},"nativeSrc":"319:88:97","nodeType":"YulFunctionCall","src":"319:88:97"},"nativeSrc":"319:88:97","nodeType":"YulExpressionStatement","src":"319:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"423:1:97","nodeType":"YulLiteral","src":"423:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"426:4:97","nodeType":"YulLiteral","src":"426:4:97","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"416:6:97","nodeType":"YulIdentifier","src":"416:6:97"},"nativeSrc":"416:15:97","nodeType":"YulFunctionCall","src":"416:15:97"},"nativeSrc":"416:15:97","nodeType":"YulExpressionStatement","src":"416:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"447:1:97","nodeType":"YulLiteral","src":"447:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"450:4:97","nodeType":"YulLiteral","src":"450:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"440:6:97","nodeType":"YulIdentifier","src":"440:6:97"},"nativeSrc":"440:15:97","nodeType":"YulFunctionCall","src":"440:15:97"},"nativeSrc":"440:15:97","nodeType":"YulExpressionStatement","src":"440:15:97"}]},"name":"panic_error_0x41","nativeSrc":"277:184:97","nodeType":"YulFunctionDefinition","src":"277:184:97"},{"body":{"nativeSrc":"512:209:97","nodeType":"YulBlock","src":"512:209:97","statements":[{"nativeSrc":"522:19:97","nodeType":"YulAssignment","src":"522:19:97","value":{"arguments":[{"kind":"number","nativeSrc":"538:2:97","nodeType":"YulLiteral","src":"538:2:97","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"532:5:97","nodeType":"YulIdentifier","src":"532:5:97"},"nativeSrc":"532:9:97","nodeType":"YulFunctionCall","src":"532:9:97"},"variableNames":[{"name":"memPtr","nativeSrc":"522:6:97","nodeType":"YulIdentifier","src":"522:6:97"}]},{"nativeSrc":"550:37:97","nodeType":"YulVariableDeclaration","src":"550:37:97","value":{"arguments":[{"name":"memPtr","nativeSrc":"572:6:97","nodeType":"YulIdentifier","src":"572:6:97"},{"kind":"number","nativeSrc":"580:6:97","nodeType":"YulLiteral","src":"580:6:97","type":"","value":"0x0180"}],"functionName":{"name":"add","nativeSrc":"568:3:97","nodeType":"YulIdentifier","src":"568:3:97"},"nativeSrc":"568:19:97","nodeType":"YulFunctionCall","src":"568:19:97"},"variables":[{"name":"newFreePtr","nativeSrc":"554:10:97","nodeType":"YulTypedName","src":"554:10:97","type":""}]},{"body":{"nativeSrc":"662:22:97","nodeType":"YulBlock","src":"662:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"664:16:97","nodeType":"YulIdentifier","src":"664:16:97"},"nativeSrc":"664:18:97","nodeType":"YulFunctionCall","src":"664:18:97"},"nativeSrc":"664:18:97","nodeType":"YulExpressionStatement","src":"664:18:97"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"605:10:97","nodeType":"YulIdentifier","src":"605:10:97"},{"kind":"number","nativeSrc":"617:18:97","nodeType":"YulLiteral","src":"617:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"602:2:97","nodeType":"YulIdentifier","src":"602:2:97"},"nativeSrc":"602:34:97","nodeType":"YulFunctionCall","src":"602:34:97"},{"arguments":[{"name":"newFreePtr","nativeSrc":"641:10:97","nodeType":"YulIdentifier","src":"641:10:97"},{"name":"memPtr","nativeSrc":"653:6:97","nodeType":"YulIdentifier","src":"653:6:97"}],"functionName":{"name":"lt","nativeSrc":"638:2:97","nodeType":"YulIdentifier","src":"638:2:97"},"nativeSrc":"638:22:97","nodeType":"YulFunctionCall","src":"638:22:97"}],"functionName":{"name":"or","nativeSrc":"599:2:97","nodeType":"YulIdentifier","src":"599:2:97"},"nativeSrc":"599:62:97","nodeType":"YulFunctionCall","src":"599:62:97"},"nativeSrc":"596:88:97","nodeType":"YulIf","src":"596:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"700:2:97","nodeType":"YulLiteral","src":"700:2:97","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"704:10:97","nodeType":"YulIdentifier","src":"704:10:97"}],"functionName":{"name":"mstore","nativeSrc":"693:6:97","nodeType":"YulIdentifier","src":"693:6:97"},"nativeSrc":"693:22:97","nodeType":"YulFunctionCall","src":"693:22:97"},"nativeSrc":"693:22:97","nodeType":"YulExpressionStatement","src":"693:22:97"}]},"name":"allocate_memory_4306","nativeSrc":"466:255:97","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"501:6:97","nodeType":"YulTypedName","src":"501:6:97","type":""}],"src":"466:255:97"},{"body":{"nativeSrc":"772:205:97","nodeType":"YulBlock","src":"772:205:97","statements":[{"nativeSrc":"782:19:97","nodeType":"YulAssignment","src":"782:19:97","value":{"arguments":[{"kind":"number","nativeSrc":"798:2:97","nodeType":"YulLiteral","src":"798:2:97","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"792:5:97","nodeType":"YulIdentifier","src":"792:5:97"},"nativeSrc":"792:9:97","nodeType":"YulFunctionCall","src":"792:9:97"},"variableNames":[{"name":"memPtr","nativeSrc":"782:6:97","nodeType":"YulIdentifier","src":"782:6:97"}]},{"nativeSrc":"810:33:97","nodeType":"YulVariableDeclaration","src":"810:33:97","value":{"arguments":[{"name":"memPtr","nativeSrc":"832:6:97","nodeType":"YulIdentifier","src":"832:6:97"},{"kind":"number","nativeSrc":"840:2:97","nodeType":"YulLiteral","src":"840:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"828:3:97","nodeType":"YulIdentifier","src":"828:3:97"},"nativeSrc":"828:15:97","nodeType":"YulFunctionCall","src":"828:15:97"},"variables":[{"name":"newFreePtr","nativeSrc":"814:10:97","nodeType":"YulTypedName","src":"814:10:97","type":""}]},{"body":{"nativeSrc":"918:22:97","nodeType":"YulBlock","src":"918:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"920:16:97","nodeType":"YulIdentifier","src":"920:16:97"},"nativeSrc":"920:18:97","nodeType":"YulFunctionCall","src":"920:18:97"},"nativeSrc":"920:18:97","nodeType":"YulExpressionStatement","src":"920:18:97"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"861:10:97","nodeType":"YulIdentifier","src":"861:10:97"},{"kind":"number","nativeSrc":"873:18:97","nodeType":"YulLiteral","src":"873:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"858:2:97","nodeType":"YulIdentifier","src":"858:2:97"},"nativeSrc":"858:34:97","nodeType":"YulFunctionCall","src":"858:34:97"},{"arguments":[{"name":"newFreePtr","nativeSrc":"897:10:97","nodeType":"YulIdentifier","src":"897:10:97"},{"name":"memPtr","nativeSrc":"909:6:97","nodeType":"YulIdentifier","src":"909:6:97"}],"functionName":{"name":"lt","nativeSrc":"894:2:97","nodeType":"YulIdentifier","src":"894:2:97"},"nativeSrc":"894:22:97","nodeType":"YulFunctionCall","src":"894:22:97"}],"functionName":{"name":"or","nativeSrc":"855:2:97","nodeType":"YulIdentifier","src":"855:2:97"},"nativeSrc":"855:62:97","nodeType":"YulFunctionCall","src":"855:62:97"},"nativeSrc":"852:88:97","nodeType":"YulIf","src":"852:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"956:2:97","nodeType":"YulLiteral","src":"956:2:97","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"960:10:97","nodeType":"YulIdentifier","src":"960:10:97"}],"functionName":{"name":"mstore","nativeSrc":"949:6:97","nodeType":"YulIdentifier","src":"949:6:97"},"nativeSrc":"949:22:97","nodeType":"YulFunctionCall","src":"949:22:97"},"nativeSrc":"949:22:97","nodeType":"YulExpressionStatement","src":"949:22:97"}]},"name":"allocate_memory_4308","nativeSrc":"726:251:97","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"761:6:97","nodeType":"YulTypedName","src":"761:6:97","type":""}],"src":"726:251:97"},{"body":{"nativeSrc":"1027:289:97","nodeType":"YulBlock","src":"1027:289:97","statements":[{"nativeSrc":"1037:19:97","nodeType":"YulAssignment","src":"1037:19:97","value":{"arguments":[{"kind":"number","nativeSrc":"1053:2:97","nodeType":"YulLiteral","src":"1053:2:97","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1047:5:97","nodeType":"YulIdentifier","src":"1047:5:97"},"nativeSrc":"1047:9:97","nodeType":"YulFunctionCall","src":"1047:9:97"},"variableNames":[{"name":"memPtr","nativeSrc":"1037:6:97","nodeType":"YulIdentifier","src":"1037:6:97"}]},{"nativeSrc":"1065:117:97","nodeType":"YulVariableDeclaration","src":"1065:117:97","value":{"arguments":[{"name":"memPtr","nativeSrc":"1087:6:97","nodeType":"YulIdentifier","src":"1087:6:97"},{"arguments":[{"arguments":[{"name":"size","nativeSrc":"1103:4:97","nodeType":"YulIdentifier","src":"1103:4:97"},{"kind":"number","nativeSrc":"1109:2:97","nodeType":"YulLiteral","src":"1109:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"1099:3:97","nodeType":"YulIdentifier","src":"1099:3:97"},"nativeSrc":"1099:13:97","nodeType":"YulFunctionCall","src":"1099:13:97"},{"kind":"number","nativeSrc":"1114:66:97","nodeType":"YulLiteral","src":"1114:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"1095:3:97","nodeType":"YulIdentifier","src":"1095:3:97"},"nativeSrc":"1095:86:97","nodeType":"YulFunctionCall","src":"1095:86:97"}],"functionName":{"name":"add","nativeSrc":"1083:3:97","nodeType":"YulIdentifier","src":"1083:3:97"},"nativeSrc":"1083:99:97","nodeType":"YulFunctionCall","src":"1083:99:97"},"variables":[{"name":"newFreePtr","nativeSrc":"1069:10:97","nodeType":"YulTypedName","src":"1069:10:97","type":""}]},{"body":{"nativeSrc":"1257:22:97","nodeType":"YulBlock","src":"1257:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1259:16:97","nodeType":"YulIdentifier","src":"1259:16:97"},"nativeSrc":"1259:18:97","nodeType":"YulFunctionCall","src":"1259:18:97"},"nativeSrc":"1259:18:97","nodeType":"YulExpressionStatement","src":"1259:18:97"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1200:10:97","nodeType":"YulIdentifier","src":"1200:10:97"},{"kind":"number","nativeSrc":"1212:18:97","nodeType":"YulLiteral","src":"1212:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1197:2:97","nodeType":"YulIdentifier","src":"1197:2:97"},"nativeSrc":"1197:34:97","nodeType":"YulFunctionCall","src":"1197:34:97"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1236:10:97","nodeType":"YulIdentifier","src":"1236:10:97"},{"name":"memPtr","nativeSrc":"1248:6:97","nodeType":"YulIdentifier","src":"1248:6:97"}],"functionName":{"name":"lt","nativeSrc":"1233:2:97","nodeType":"YulIdentifier","src":"1233:2:97"},"nativeSrc":"1233:22:97","nodeType":"YulFunctionCall","src":"1233:22:97"}],"functionName":{"name":"or","nativeSrc":"1194:2:97","nodeType":"YulIdentifier","src":"1194:2:97"},"nativeSrc":"1194:62:97","nodeType":"YulFunctionCall","src":"1194:62:97"},"nativeSrc":"1191:88:97","nodeType":"YulIf","src":"1191:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1295:2:97","nodeType":"YulLiteral","src":"1295:2:97","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1299:10:97","nodeType":"YulIdentifier","src":"1299:10:97"}],"functionName":{"name":"mstore","nativeSrc":"1288:6:97","nodeType":"YulIdentifier","src":"1288:6:97"},"nativeSrc":"1288:22:97","nodeType":"YulFunctionCall","src":"1288:22:97"},"nativeSrc":"1288:22:97","nodeType":"YulExpressionStatement","src":"1288:22:97"}]},"name":"allocate_memory","nativeSrc":"982:334:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"1007:4:97","nodeType":"YulTypedName","src":"1007:4:97","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"1016:6:97","nodeType":"YulTypedName","src":"1016:6:97","type":""}],"src":"982:334:97"},{"body":{"nativeSrc":"1379:188:97","nodeType":"YulBlock","src":"1379:188:97","statements":[{"body":{"nativeSrc":"1423:22:97","nodeType":"YulBlock","src":"1423:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1425:16:97","nodeType":"YulIdentifier","src":"1425:16:97"},"nativeSrc":"1425:18:97","nodeType":"YulFunctionCall","src":"1425:18:97"},"nativeSrc":"1425:18:97","nodeType":"YulExpressionStatement","src":"1425:18:97"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1395:6:97","nodeType":"YulIdentifier","src":"1395:6:97"},{"kind":"number","nativeSrc":"1403:18:97","nodeType":"YulLiteral","src":"1403:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1392:2:97","nodeType":"YulIdentifier","src":"1392:2:97"},"nativeSrc":"1392:30:97","nodeType":"YulFunctionCall","src":"1392:30:97"},"nativeSrc":"1389:56:97","nodeType":"YulIf","src":"1389:56:97"},{"nativeSrc":"1454:107:97","nodeType":"YulAssignment","src":"1454:107:97","value":{"arguments":[{"arguments":[{"arguments":[{"name":"length","nativeSrc":"1474:6:97","nodeType":"YulIdentifier","src":"1474:6:97"},{"kind":"number","nativeSrc":"1482:2:97","nodeType":"YulLiteral","src":"1482:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"1470:3:97","nodeType":"YulIdentifier","src":"1470:3:97"},"nativeSrc":"1470:15:97","nodeType":"YulFunctionCall","src":"1470:15:97"},{"kind":"number","nativeSrc":"1487:66:97","nodeType":"YulLiteral","src":"1487:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"1466:3:97","nodeType":"YulIdentifier","src":"1466:3:97"},"nativeSrc":"1466:88:97","nodeType":"YulFunctionCall","src":"1466:88:97"},{"kind":"number","nativeSrc":"1556:4:97","nodeType":"YulLiteral","src":"1556:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1462:3:97","nodeType":"YulIdentifier","src":"1462:3:97"},"nativeSrc":"1462:99:97","nodeType":"YulFunctionCall","src":"1462:99:97"},"variableNames":[{"name":"size","nativeSrc":"1454:4:97","nodeType":"YulIdentifier","src":"1454:4:97"}]}]},"name":"array_allocation_size_string","nativeSrc":"1321:246:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"1359:6:97","nodeType":"YulTypedName","src":"1359:6:97","type":""}],"returnVariables":[{"name":"size","nativeSrc":"1370:4:97","nodeType":"YulTypedName","src":"1370:4:97","type":""}],"src":"1321:246:97"},{"body":{"nativeSrc":"1625:411:97","nodeType":"YulBlock","src":"1625:411:97","statements":[{"body":{"nativeSrc":"1674:16:97","nodeType":"YulBlock","src":"1674:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1683:1:97","nodeType":"YulLiteral","src":"1683:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1686:1:97","nodeType":"YulLiteral","src":"1686:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1676:6:97","nodeType":"YulIdentifier","src":"1676:6:97"},"nativeSrc":"1676:12:97","nodeType":"YulFunctionCall","src":"1676:12:97"},"nativeSrc":"1676:12:97","nodeType":"YulExpressionStatement","src":"1676:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"1653:6:97","nodeType":"YulIdentifier","src":"1653:6:97"},{"kind":"number","nativeSrc":"1661:4:97","nodeType":"YulLiteral","src":"1661:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"1649:3:97","nodeType":"YulIdentifier","src":"1649:3:97"},"nativeSrc":"1649:17:97","nodeType":"YulFunctionCall","src":"1649:17:97"},{"name":"end","nativeSrc":"1668:3:97","nodeType":"YulIdentifier","src":"1668:3:97"}],"functionName":{"name":"slt","nativeSrc":"1645:3:97","nodeType":"YulIdentifier","src":"1645:3:97"},"nativeSrc":"1645:27:97","nodeType":"YulFunctionCall","src":"1645:27:97"}],"functionName":{"name":"iszero","nativeSrc":"1638:6:97","nodeType":"YulIdentifier","src":"1638:6:97"},"nativeSrc":"1638:35:97","nodeType":"YulFunctionCall","src":"1638:35:97"},"nativeSrc":"1635:55:97","nodeType":"YulIf","src":"1635:55:97"},{"nativeSrc":"1699:30:97","nodeType":"YulVariableDeclaration","src":"1699:30:97","value":{"arguments":[{"name":"offset","nativeSrc":"1722:6:97","nodeType":"YulIdentifier","src":"1722:6:97"}],"functionName":{"name":"calldataload","nativeSrc":"1709:12:97","nodeType":"YulIdentifier","src":"1709:12:97"},"nativeSrc":"1709:20:97","nodeType":"YulFunctionCall","src":"1709:20:97"},"variables":[{"name":"_1","nativeSrc":"1703:2:97","nodeType":"YulTypedName","src":"1703:2:97","type":""}]},{"nativeSrc":"1738:64:97","nodeType":"YulVariableDeclaration","src":"1738:64:97","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"1798:2:97","nodeType":"YulIdentifier","src":"1798:2:97"}],"functionName":{"name":"array_allocation_size_string","nativeSrc":"1769:28:97","nodeType":"YulIdentifier","src":"1769:28:97"},"nativeSrc":"1769:32:97","nodeType":"YulFunctionCall","src":"1769:32:97"}],"functionName":{"name":"allocate_memory","nativeSrc":"1753:15:97","nodeType":"YulIdentifier","src":"1753:15:97"},"nativeSrc":"1753:49:97","nodeType":"YulFunctionCall","src":"1753:49:97"},"variables":[{"name":"array_1","nativeSrc":"1742:7:97","nodeType":"YulTypedName","src":"1742:7:97","type":""}]},{"expression":{"arguments":[{"name":"array_1","nativeSrc":"1818:7:97","nodeType":"YulIdentifier","src":"1818:7:97"},{"name":"_1","nativeSrc":"1827:2:97","nodeType":"YulIdentifier","src":"1827:2:97"}],"functionName":{"name":"mstore","nativeSrc":"1811:6:97","nodeType":"YulIdentifier","src":"1811:6:97"},"nativeSrc":"1811:19:97","nodeType":"YulFunctionCall","src":"1811:19:97"},"nativeSrc":"1811:19:97","nodeType":"YulExpressionStatement","src":"1811:19:97"},{"body":{"nativeSrc":"1878:16:97","nodeType":"YulBlock","src":"1878:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1887:1:97","nodeType":"YulLiteral","src":"1887:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1890:1:97","nodeType":"YulLiteral","src":"1890:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1880:6:97","nodeType":"YulIdentifier","src":"1880:6:97"},"nativeSrc":"1880:12:97","nodeType":"YulFunctionCall","src":"1880:12:97"},"nativeSrc":"1880:12:97","nodeType":"YulExpressionStatement","src":"1880:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"1853:6:97","nodeType":"YulIdentifier","src":"1853:6:97"},{"name":"_1","nativeSrc":"1861:2:97","nodeType":"YulIdentifier","src":"1861:2:97"}],"functionName":{"name":"add","nativeSrc":"1849:3:97","nodeType":"YulIdentifier","src":"1849:3:97"},"nativeSrc":"1849:15:97","nodeType":"YulFunctionCall","src":"1849:15:97"},{"kind":"number","nativeSrc":"1866:4:97","nodeType":"YulLiteral","src":"1866:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1845:3:97","nodeType":"YulIdentifier","src":"1845:3:97"},"nativeSrc":"1845:26:97","nodeType":"YulFunctionCall","src":"1845:26:97"},{"name":"end","nativeSrc":"1873:3:97","nodeType":"YulIdentifier","src":"1873:3:97"}],"functionName":{"name":"gt","nativeSrc":"1842:2:97","nodeType":"YulIdentifier","src":"1842:2:97"},"nativeSrc":"1842:35:97","nodeType":"YulFunctionCall","src":"1842:35:97"},"nativeSrc":"1839:55:97","nodeType":"YulIf","src":"1839:55:97"},{"expression":{"arguments":[{"arguments":[{"name":"array_1","nativeSrc":"1920:7:97","nodeType":"YulIdentifier","src":"1920:7:97"},{"kind":"number","nativeSrc":"1929:4:97","nodeType":"YulLiteral","src":"1929:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1916:3:97","nodeType":"YulIdentifier","src":"1916:3:97"},"nativeSrc":"1916:18:97","nodeType":"YulFunctionCall","src":"1916:18:97"},{"arguments":[{"name":"offset","nativeSrc":"1940:6:97","nodeType":"YulIdentifier","src":"1940:6:97"},{"kind":"number","nativeSrc":"1948:4:97","nodeType":"YulLiteral","src":"1948:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1936:3:97","nodeType":"YulIdentifier","src":"1936:3:97"},"nativeSrc":"1936:17:97","nodeType":"YulFunctionCall","src":"1936:17:97"},{"name":"_1","nativeSrc":"1955:2:97","nodeType":"YulIdentifier","src":"1955:2:97"}],"functionName":{"name":"calldatacopy","nativeSrc":"1903:12:97","nodeType":"YulIdentifier","src":"1903:12:97"},"nativeSrc":"1903:55:97","nodeType":"YulFunctionCall","src":"1903:55:97"},"nativeSrc":"1903:55:97","nodeType":"YulExpressionStatement","src":"1903:55:97"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array_1","nativeSrc":"1982:7:97","nodeType":"YulIdentifier","src":"1982:7:97"},{"name":"_1","nativeSrc":"1991:2:97","nodeType":"YulIdentifier","src":"1991:2:97"}],"functionName":{"name":"add","nativeSrc":"1978:3:97","nodeType":"YulIdentifier","src":"1978:3:97"},"nativeSrc":"1978:16:97","nodeType":"YulFunctionCall","src":"1978:16:97"},{"kind":"number","nativeSrc":"1996:4:97","nodeType":"YulLiteral","src":"1996:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1974:3:97","nodeType":"YulIdentifier","src":"1974:3:97"},"nativeSrc":"1974:27:97","nodeType":"YulFunctionCall","src":"1974:27:97"},{"kind":"number","nativeSrc":"2003:1:97","nodeType":"YulLiteral","src":"2003:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"1967:6:97","nodeType":"YulIdentifier","src":"1967:6:97"},"nativeSrc":"1967:38:97","nodeType":"YulFunctionCall","src":"1967:38:97"},"nativeSrc":"1967:38:97","nodeType":"YulExpressionStatement","src":"1967:38:97"},{"nativeSrc":"2014:16:97","nodeType":"YulAssignment","src":"2014:16:97","value":{"name":"array_1","nativeSrc":"2023:7:97","nodeType":"YulIdentifier","src":"2023:7:97"},"variableNames":[{"name":"array","nativeSrc":"2014:5:97","nodeType":"YulIdentifier","src":"2014:5:97"}]}]},"name":"abi_decode_string","nativeSrc":"1572:464:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1599:6:97","nodeType":"YulTypedName","src":"1599:6:97","type":""},{"name":"end","nativeSrc":"1607:3:97","nodeType":"YulTypedName","src":"1607:3:97","type":""}],"returnVariables":[{"name":"array","nativeSrc":"1615:5:97","nodeType":"YulTypedName","src":"1615:5:97","type":""}],"src":"1572:464:97"},{"body":{"nativeSrc":"2086:109:97","nodeType":"YulBlock","src":"2086:109:97","statements":[{"body":{"nativeSrc":"2173:16:97","nodeType":"YulBlock","src":"2173:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2182:1:97","nodeType":"YulLiteral","src":"2182:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"2185:1:97","nodeType":"YulLiteral","src":"2185:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2175:6:97","nodeType":"YulIdentifier","src":"2175:6:97"},"nativeSrc":"2175:12:97","nodeType":"YulFunctionCall","src":"2175:12:97"},"nativeSrc":"2175:12:97","nodeType":"YulExpressionStatement","src":"2175:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2109:5:97","nodeType":"YulIdentifier","src":"2109:5:97"},{"arguments":[{"name":"value","nativeSrc":"2120:5:97","nodeType":"YulIdentifier","src":"2120:5:97"},{"kind":"number","nativeSrc":"2127:42:97","nodeType":"YulLiteral","src":"2127:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"2116:3:97","nodeType":"YulIdentifier","src":"2116:3:97"},"nativeSrc":"2116:54:97","nodeType":"YulFunctionCall","src":"2116:54:97"}],"functionName":{"name":"eq","nativeSrc":"2106:2:97","nodeType":"YulIdentifier","src":"2106:2:97"},"nativeSrc":"2106:65:97","nodeType":"YulFunctionCall","src":"2106:65:97"}],"functionName":{"name":"iszero","nativeSrc":"2099:6:97","nodeType":"YulIdentifier","src":"2099:6:97"},"nativeSrc":"2099:73:97","nodeType":"YulFunctionCall","src":"2099:73:97"},"nativeSrc":"2096:93:97","nodeType":"YulIf","src":"2096:93:97"}]},"name":"validator_revert_address","nativeSrc":"2041:154:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2075:5:97","nodeType":"YulTypedName","src":"2075:5:97","type":""}],"src":"2041:154:97"},{"body":{"nativeSrc":"2249:85:97","nodeType":"YulBlock","src":"2249:85:97","statements":[{"nativeSrc":"2259:29:97","nodeType":"YulAssignment","src":"2259:29:97","value":{"arguments":[{"name":"offset","nativeSrc":"2281:6:97","nodeType":"YulIdentifier","src":"2281:6:97"}],"functionName":{"name":"calldataload","nativeSrc":"2268:12:97","nodeType":"YulIdentifier","src":"2268:12:97"},"nativeSrc":"2268:20:97","nodeType":"YulFunctionCall","src":"2268:20:97"},"variableNames":[{"name":"value","nativeSrc":"2259:5:97","nodeType":"YulIdentifier","src":"2259:5:97"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2322:5:97","nodeType":"YulIdentifier","src":"2322:5:97"}],"functionName":{"name":"validator_revert_address","nativeSrc":"2297:24:97","nodeType":"YulIdentifier","src":"2297:24:97"},"nativeSrc":"2297:31:97","nodeType":"YulFunctionCall","src":"2297:31:97"},"nativeSrc":"2297:31:97","nodeType":"YulExpressionStatement","src":"2297:31:97"}]},"name":"abi_decode_address","nativeSrc":"2200:134:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2228:6:97","nodeType":"YulTypedName","src":"2228:6:97","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2239:5:97","nodeType":"YulTypedName","src":"2239:5:97","type":""}],"src":"2200:134:97"},{"body":{"nativeSrc":"2383:93:97","nodeType":"YulBlock","src":"2383:93:97","statements":[{"body":{"nativeSrc":"2454:16:97","nodeType":"YulBlock","src":"2454:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2463:1:97","nodeType":"YulLiteral","src":"2463:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"2466:1:97","nodeType":"YulLiteral","src":"2466:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2456:6:97","nodeType":"YulIdentifier","src":"2456:6:97"},"nativeSrc":"2456:12:97","nodeType":"YulFunctionCall","src":"2456:12:97"},"nativeSrc":"2456:12:97","nodeType":"YulExpressionStatement","src":"2456:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2406:5:97","nodeType":"YulIdentifier","src":"2406:5:97"},{"arguments":[{"name":"value","nativeSrc":"2417:5:97","nodeType":"YulIdentifier","src":"2417:5:97"},{"kind":"number","nativeSrc":"2424:26:97","nodeType":"YulLiteral","src":"2424:26:97","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"2413:3:97","nodeType":"YulIdentifier","src":"2413:3:97"},"nativeSrc":"2413:38:97","nodeType":"YulFunctionCall","src":"2413:38:97"}],"functionName":{"name":"eq","nativeSrc":"2403:2:97","nodeType":"YulIdentifier","src":"2403:2:97"},"nativeSrc":"2403:49:97","nodeType":"YulFunctionCall","src":"2403:49:97"}],"functionName":{"name":"iszero","nativeSrc":"2396:6:97","nodeType":"YulIdentifier","src":"2396:6:97"},"nativeSrc":"2396:57:97","nodeType":"YulFunctionCall","src":"2396:57:97"},"nativeSrc":"2393:77:97","nodeType":"YulIf","src":"2393:77:97"}]},"name":"validator_revert_uint96","nativeSrc":"2339:137:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2372:5:97","nodeType":"YulTypedName","src":"2372:5:97","type":""}],"src":"2339:137:97"},{"body":{"nativeSrc":"2529:84:97","nodeType":"YulBlock","src":"2529:84:97","statements":[{"nativeSrc":"2539:29:97","nodeType":"YulAssignment","src":"2539:29:97","value":{"arguments":[{"name":"offset","nativeSrc":"2561:6:97","nodeType":"YulIdentifier","src":"2561:6:97"}],"functionName":{"name":"calldataload","nativeSrc":"2548:12:97","nodeType":"YulIdentifier","src":"2548:12:97"},"nativeSrc":"2548:20:97","nodeType":"YulFunctionCall","src":"2548:20:97"},"variableNames":[{"name":"value","nativeSrc":"2539:5:97","nodeType":"YulIdentifier","src":"2539:5:97"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2601:5:97","nodeType":"YulIdentifier","src":"2601:5:97"}],"functionName":{"name":"validator_revert_uint96","nativeSrc":"2577:23:97","nodeType":"YulIdentifier","src":"2577:23:97"},"nativeSrc":"2577:30:97","nodeType":"YulFunctionCall","src":"2577:30:97"},"nativeSrc":"2577:30:97","nodeType":"YulExpressionStatement","src":"2577:30:97"}]},"name":"abi_decode_uint96","nativeSrc":"2481:132:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2508:6:97","nodeType":"YulTypedName","src":"2508:6:97","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2519:5:97","nodeType":"YulTypedName","src":"2519:5:97","type":""}],"src":"2481:132:97"},{"body":{"nativeSrc":"2694:1609:97","nodeType":"YulBlock","src":"2694:1609:97","statements":[{"body":{"nativeSrc":"2740:16:97","nodeType":"YulBlock","src":"2740:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2749:1:97","nodeType":"YulLiteral","src":"2749:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"2752:1:97","nodeType":"YulLiteral","src":"2752:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2742:6:97","nodeType":"YulIdentifier","src":"2742:6:97"},"nativeSrc":"2742:12:97","nodeType":"YulFunctionCall","src":"2742:12:97"},"nativeSrc":"2742:12:97","nodeType":"YulExpressionStatement","src":"2742:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"2715:3:97","nodeType":"YulIdentifier","src":"2715:3:97"},{"name":"headStart","nativeSrc":"2720:9:97","nodeType":"YulIdentifier","src":"2720:9:97"}],"functionName":{"name":"sub","nativeSrc":"2711:3:97","nodeType":"YulIdentifier","src":"2711:3:97"},"nativeSrc":"2711:19:97","nodeType":"YulFunctionCall","src":"2711:19:97"},{"kind":"number","nativeSrc":"2732:6:97","nodeType":"YulLiteral","src":"2732:6:97","type":"","value":"0x0180"}],"functionName":{"name":"slt","nativeSrc":"2707:3:97","nodeType":"YulIdentifier","src":"2707:3:97"},"nativeSrc":"2707:32:97","nodeType":"YulFunctionCall","src":"2707:32:97"},"nativeSrc":"2704:52:97","nodeType":"YulIf","src":"2704:52:97"},{"nativeSrc":"2765:31:97","nodeType":"YulAssignment","src":"2765:31:97","value":{"arguments":[],"functionName":{"name":"allocate_memory_4306","nativeSrc":"2774:20:97","nodeType":"YulIdentifier","src":"2774:20:97"},"nativeSrc":"2774:22:97","nodeType":"YulFunctionCall","src":"2774:22:97"},"variableNames":[{"name":"value","nativeSrc":"2765:5:97","nodeType":"YulIdentifier","src":"2765:5:97"}]},{"nativeSrc":"2805:37:97","nodeType":"YulVariableDeclaration","src":"2805:37:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2832:9:97","nodeType":"YulIdentifier","src":"2832:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"2819:12:97","nodeType":"YulIdentifier","src":"2819:12:97"},"nativeSrc":"2819:23:97","nodeType":"YulFunctionCall","src":"2819:23:97"},"variables":[{"name":"offset","nativeSrc":"2809:6:97","nodeType":"YulTypedName","src":"2809:6:97","type":""}]},{"nativeSrc":"2851:28:97","nodeType":"YulVariableDeclaration","src":"2851:28:97","value":{"kind":"number","nativeSrc":"2861:18:97","nodeType":"YulLiteral","src":"2861:18:97","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"2855:2:97","nodeType":"YulTypedName","src":"2855:2:97","type":""}]},{"body":{"nativeSrc":"2906:16:97","nodeType":"YulBlock","src":"2906:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2915:1:97","nodeType":"YulLiteral","src":"2915:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"2918:1:97","nodeType":"YulLiteral","src":"2918:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2908:6:97","nodeType":"YulIdentifier","src":"2908:6:97"},"nativeSrc":"2908:12:97","nodeType":"YulFunctionCall","src":"2908:12:97"},"nativeSrc":"2908:12:97","nodeType":"YulExpressionStatement","src":"2908:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"2894:6:97","nodeType":"YulIdentifier","src":"2894:6:97"},{"name":"_1","nativeSrc":"2902:2:97","nodeType":"YulIdentifier","src":"2902:2:97"}],"functionName":{"name":"gt","nativeSrc":"2891:2:97","nodeType":"YulIdentifier","src":"2891:2:97"},"nativeSrc":"2891:14:97","nodeType":"YulFunctionCall","src":"2891:14:97"},"nativeSrc":"2888:34:97","nodeType":"YulIf","src":"2888:34:97"},{"expression":{"arguments":[{"name":"value","nativeSrc":"2938:5:97","nodeType":"YulIdentifier","src":"2938:5:97"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2967:9:97","nodeType":"YulIdentifier","src":"2967:9:97"},{"name":"offset","nativeSrc":"2978:6:97","nodeType":"YulIdentifier","src":"2978:6:97"}],"functionName":{"name":"add","nativeSrc":"2963:3:97","nodeType":"YulIdentifier","src":"2963:3:97"},"nativeSrc":"2963:22:97","nodeType":"YulFunctionCall","src":"2963:22:97"},{"name":"end","nativeSrc":"2987:3:97","nodeType":"YulIdentifier","src":"2987:3:97"}],"functionName":{"name":"abi_decode_string","nativeSrc":"2945:17:97","nodeType":"YulIdentifier","src":"2945:17:97"},"nativeSrc":"2945:46:97","nodeType":"YulFunctionCall","src":"2945:46:97"}],"functionName":{"name":"mstore","nativeSrc":"2931:6:97","nodeType":"YulIdentifier","src":"2931:6:97"},"nativeSrc":"2931:61:97","nodeType":"YulFunctionCall","src":"2931:61:97"},"nativeSrc":"2931:61:97","nodeType":"YulExpressionStatement","src":"2931:61:97"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3012:5:97","nodeType":"YulIdentifier","src":"3012:5:97"},{"kind":"number","nativeSrc":"3019:2:97","nodeType":"YulLiteral","src":"3019:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3008:3:97","nodeType":"YulIdentifier","src":"3008:3:97"},"nativeSrc":"3008:14:97","nodeType":"YulFunctionCall","src":"3008:14:97"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3041:9:97","nodeType":"YulIdentifier","src":"3041:9:97"},{"kind":"number","nativeSrc":"3052:2:97","nodeType":"YulLiteral","src":"3052:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3037:3:97","nodeType":"YulIdentifier","src":"3037:3:97"},"nativeSrc":"3037:18:97","nodeType":"YulFunctionCall","src":"3037:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"3024:12:97","nodeType":"YulIdentifier","src":"3024:12:97"},"nativeSrc":"3024:32:97","nodeType":"YulFunctionCall","src":"3024:32:97"}],"functionName":{"name":"mstore","nativeSrc":"3001:6:97","nodeType":"YulIdentifier","src":"3001:6:97"},"nativeSrc":"3001:56:97","nodeType":"YulFunctionCall","src":"3001:56:97"},"nativeSrc":"3001:56:97","nodeType":"YulExpressionStatement","src":"3001:56:97"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3077:5:97","nodeType":"YulIdentifier","src":"3077:5:97"},{"kind":"number","nativeSrc":"3084:2:97","nodeType":"YulLiteral","src":"3084:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3073:3:97","nodeType":"YulIdentifier","src":"3073:3:97"},"nativeSrc":"3073:14:97","nodeType":"YulFunctionCall","src":"3073:14:97"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3112:9:97","nodeType":"YulIdentifier","src":"3112:9:97"},{"kind":"number","nativeSrc":"3123:2:97","nodeType":"YulLiteral","src":"3123:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3108:3:97","nodeType":"YulIdentifier","src":"3108:3:97"},"nativeSrc":"3108:18:97","nodeType":"YulFunctionCall","src":"3108:18:97"}],"functionName":{"name":"abi_decode_address","nativeSrc":"3089:18:97","nodeType":"YulIdentifier","src":"3089:18:97"},"nativeSrc":"3089:38:97","nodeType":"YulFunctionCall","src":"3089:38:97"}],"functionName":{"name":"mstore","nativeSrc":"3066:6:97","nodeType":"YulIdentifier","src":"3066:6:97"},"nativeSrc":"3066:62:97","nodeType":"YulFunctionCall","src":"3066:62:97"},"nativeSrc":"3066:62:97","nodeType":"YulExpressionStatement","src":"3066:62:97"},{"nativeSrc":"3137:48:97","nodeType":"YulVariableDeclaration","src":"3137:48:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3170:9:97","nodeType":"YulIdentifier","src":"3170:9:97"},{"kind":"number","nativeSrc":"3181:2:97","nodeType":"YulLiteral","src":"3181:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3166:3:97","nodeType":"YulIdentifier","src":"3166:3:97"},"nativeSrc":"3166:18:97","nodeType":"YulFunctionCall","src":"3166:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"3153:12:97","nodeType":"YulIdentifier","src":"3153:12:97"},"nativeSrc":"3153:32:97","nodeType":"YulFunctionCall","src":"3153:32:97"},"variables":[{"name":"offset_1","nativeSrc":"3141:8:97","nodeType":"YulTypedName","src":"3141:8:97","type":""}]},{"body":{"nativeSrc":"3214:16:97","nodeType":"YulBlock","src":"3214:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3223:1:97","nodeType":"YulLiteral","src":"3223:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"3226:1:97","nodeType":"YulLiteral","src":"3226:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3216:6:97","nodeType":"YulIdentifier","src":"3216:6:97"},"nativeSrc":"3216:12:97","nodeType":"YulFunctionCall","src":"3216:12:97"},"nativeSrc":"3216:12:97","nodeType":"YulExpressionStatement","src":"3216:12:97"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"3200:8:97","nodeType":"YulIdentifier","src":"3200:8:97"},{"name":"_1","nativeSrc":"3210:2:97","nodeType":"YulIdentifier","src":"3210:2:97"}],"functionName":{"name":"gt","nativeSrc":"3197:2:97","nodeType":"YulIdentifier","src":"3197:2:97"},"nativeSrc":"3197:16:97","nodeType":"YulFunctionCall","src":"3197:16:97"},"nativeSrc":"3194:36:97","nodeType":"YulIf","src":"3194:36:97"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3250:5:97","nodeType":"YulIdentifier","src":"3250:5:97"},{"kind":"number","nativeSrc":"3257:2:97","nodeType":"YulLiteral","src":"3257:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3246:3:97","nodeType":"YulIdentifier","src":"3246:3:97"},"nativeSrc":"3246:14:97","nodeType":"YulFunctionCall","src":"3246:14:97"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3284:9:97","nodeType":"YulIdentifier","src":"3284:9:97"},{"name":"offset_1","nativeSrc":"3295:8:97","nodeType":"YulIdentifier","src":"3295:8:97"}],"functionName":{"name":"add","nativeSrc":"3280:3:97","nodeType":"YulIdentifier","src":"3280:3:97"},"nativeSrc":"3280:24:97","nodeType":"YulFunctionCall","src":"3280:24:97"},{"name":"end","nativeSrc":"3306:3:97","nodeType":"YulIdentifier","src":"3306:3:97"}],"functionName":{"name":"abi_decode_string","nativeSrc":"3262:17:97","nodeType":"YulIdentifier","src":"3262:17:97"},"nativeSrc":"3262:48:97","nodeType":"YulFunctionCall","src":"3262:48:97"}],"functionName":{"name":"mstore","nativeSrc":"3239:6:97","nodeType":"YulIdentifier","src":"3239:6:97"},"nativeSrc":"3239:72:97","nodeType":"YulFunctionCall","src":"3239:72:97"},"nativeSrc":"3239:72:97","nodeType":"YulExpressionStatement","src":"3239:72:97"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3331:5:97","nodeType":"YulIdentifier","src":"3331:5:97"},{"kind":"number","nativeSrc":"3338:3:97","nodeType":"YulLiteral","src":"3338:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"3327:3:97","nodeType":"YulIdentifier","src":"3327:3:97"},"nativeSrc":"3327:15:97","nodeType":"YulFunctionCall","src":"3327:15:97"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3361:9:97","nodeType":"YulIdentifier","src":"3361:9:97"},{"kind":"number","nativeSrc":"3372:3:97","nodeType":"YulLiteral","src":"3372:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"3357:3:97","nodeType":"YulIdentifier","src":"3357:3:97"},"nativeSrc":"3357:19:97","nodeType":"YulFunctionCall","src":"3357:19:97"}],"functionName":{"name":"calldataload","nativeSrc":"3344:12:97","nodeType":"YulIdentifier","src":"3344:12:97"},"nativeSrc":"3344:33:97","nodeType":"YulFunctionCall","src":"3344:33:97"}],"functionName":{"name":"mstore","nativeSrc":"3320:6:97","nodeType":"YulIdentifier","src":"3320:6:97"},"nativeSrc":"3320:58:97","nodeType":"YulFunctionCall","src":"3320:58:97"},"nativeSrc":"3320:58:97","nodeType":"YulExpressionStatement","src":"3320:58:97"},{"nativeSrc":"3387:49:97","nodeType":"YulVariableDeclaration","src":"3387:49:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3420:9:97","nodeType":"YulIdentifier","src":"3420:9:97"},{"kind":"number","nativeSrc":"3431:3:97","nodeType":"YulLiteral","src":"3431:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"3416:3:97","nodeType":"YulIdentifier","src":"3416:3:97"},"nativeSrc":"3416:19:97","nodeType":"YulFunctionCall","src":"3416:19:97"}],"functionName":{"name":"calldataload","nativeSrc":"3403:12:97","nodeType":"YulIdentifier","src":"3403:12:97"},"nativeSrc":"3403:33:97","nodeType":"YulFunctionCall","src":"3403:33:97"},"variables":[{"name":"offset_2","nativeSrc":"3391:8:97","nodeType":"YulTypedName","src":"3391:8:97","type":""}]},{"body":{"nativeSrc":"3465:16:97","nodeType":"YulBlock","src":"3465:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3474:1:97","nodeType":"YulLiteral","src":"3474:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"3477:1:97","nodeType":"YulLiteral","src":"3477:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3467:6:97","nodeType":"YulIdentifier","src":"3467:6:97"},"nativeSrc":"3467:12:97","nodeType":"YulFunctionCall","src":"3467:12:97"},"nativeSrc":"3467:12:97","nodeType":"YulExpressionStatement","src":"3467:12:97"}]},"condition":{"arguments":[{"name":"offset_2","nativeSrc":"3451:8:97","nodeType":"YulIdentifier","src":"3451:8:97"},{"name":"_1","nativeSrc":"3461:2:97","nodeType":"YulIdentifier","src":"3461:2:97"}],"functionName":{"name":"gt","nativeSrc":"3448:2:97","nodeType":"YulIdentifier","src":"3448:2:97"},"nativeSrc":"3448:16:97","nodeType":"YulFunctionCall","src":"3448:16:97"},"nativeSrc":"3445:36:97","nodeType":"YulIf","src":"3445:36:97"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3501:5:97","nodeType":"YulIdentifier","src":"3501:5:97"},{"kind":"number","nativeSrc":"3508:3:97","nodeType":"YulLiteral","src":"3508:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"3497:3:97","nodeType":"YulIdentifier","src":"3497:3:97"},"nativeSrc":"3497:15:97","nodeType":"YulFunctionCall","src":"3497:15:97"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3536:9:97","nodeType":"YulIdentifier","src":"3536:9:97"},{"name":"offset_2","nativeSrc":"3547:8:97","nodeType":"YulIdentifier","src":"3547:8:97"}],"functionName":{"name":"add","nativeSrc":"3532:3:97","nodeType":"YulIdentifier","src":"3532:3:97"},"nativeSrc":"3532:24:97","nodeType":"YulFunctionCall","src":"3532:24:97"},{"name":"end","nativeSrc":"3558:3:97","nodeType":"YulIdentifier","src":"3558:3:97"}],"functionName":{"name":"abi_decode_string","nativeSrc":"3514:17:97","nodeType":"YulIdentifier","src":"3514:17:97"},"nativeSrc":"3514:48:97","nodeType":"YulFunctionCall","src":"3514:48:97"}],"functionName":{"name":"mstore","nativeSrc":"3490:6:97","nodeType":"YulIdentifier","src":"3490:6:97"},"nativeSrc":"3490:73:97","nodeType":"YulFunctionCall","src":"3490:73:97"},"nativeSrc":"3490:73:97","nodeType":"YulExpressionStatement","src":"3490:73:97"},{"nativeSrc":"3572:49:97","nodeType":"YulVariableDeclaration","src":"3572:49:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3605:9:97","nodeType":"YulIdentifier","src":"3605:9:97"},{"kind":"number","nativeSrc":"3616:3:97","nodeType":"YulLiteral","src":"3616:3:97","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"3601:3:97","nodeType":"YulIdentifier","src":"3601:3:97"},"nativeSrc":"3601:19:97","nodeType":"YulFunctionCall","src":"3601:19:97"}],"functionName":{"name":"calldataload","nativeSrc":"3588:12:97","nodeType":"YulIdentifier","src":"3588:12:97"},"nativeSrc":"3588:33:97","nodeType":"YulFunctionCall","src":"3588:33:97"},"variables":[{"name":"offset_3","nativeSrc":"3576:8:97","nodeType":"YulTypedName","src":"3576:8:97","type":""}]},{"body":{"nativeSrc":"3650:16:97","nodeType":"YulBlock","src":"3650:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3659:1:97","nodeType":"YulLiteral","src":"3659:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"3662:1:97","nodeType":"YulLiteral","src":"3662:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3652:6:97","nodeType":"YulIdentifier","src":"3652:6:97"},"nativeSrc":"3652:12:97","nodeType":"YulFunctionCall","src":"3652:12:97"},"nativeSrc":"3652:12:97","nodeType":"YulExpressionStatement","src":"3652:12:97"}]},"condition":{"arguments":[{"name":"offset_3","nativeSrc":"3636:8:97","nodeType":"YulIdentifier","src":"3636:8:97"},{"name":"_1","nativeSrc":"3646:2:97","nodeType":"YulIdentifier","src":"3646:2:97"}],"functionName":{"name":"gt","nativeSrc":"3633:2:97","nodeType":"YulIdentifier","src":"3633:2:97"},"nativeSrc":"3633:16:97","nodeType":"YulFunctionCall","src":"3633:16:97"},"nativeSrc":"3630:36:97","nodeType":"YulIf","src":"3630:36:97"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3686:5:97","nodeType":"YulIdentifier","src":"3686:5:97"},{"kind":"number","nativeSrc":"3693:3:97","nodeType":"YulLiteral","src":"3693:3:97","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"3682:3:97","nodeType":"YulIdentifier","src":"3682:3:97"},"nativeSrc":"3682:15:97","nodeType":"YulFunctionCall","src":"3682:15:97"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3721:9:97","nodeType":"YulIdentifier","src":"3721:9:97"},{"name":"offset_3","nativeSrc":"3732:8:97","nodeType":"YulIdentifier","src":"3732:8:97"}],"functionName":{"name":"add","nativeSrc":"3717:3:97","nodeType":"YulIdentifier","src":"3717:3:97"},"nativeSrc":"3717:24:97","nodeType":"YulFunctionCall","src":"3717:24:97"},{"name":"end","nativeSrc":"3743:3:97","nodeType":"YulIdentifier","src":"3743:3:97"}],"functionName":{"name":"abi_decode_string","nativeSrc":"3699:17:97","nodeType":"YulIdentifier","src":"3699:17:97"},"nativeSrc":"3699:48:97","nodeType":"YulFunctionCall","src":"3699:48:97"}],"functionName":{"name":"mstore","nativeSrc":"3675:6:97","nodeType":"YulIdentifier","src":"3675:6:97"},"nativeSrc":"3675:73:97","nodeType":"YulFunctionCall","src":"3675:73:97"},"nativeSrc":"3675:73:97","nodeType":"YulExpressionStatement","src":"3675:73:97"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3768:5:97","nodeType":"YulIdentifier","src":"3768:5:97"},{"kind":"number","nativeSrc":"3775:3:97","nodeType":"YulLiteral","src":"3775:3:97","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"3764:3:97","nodeType":"YulIdentifier","src":"3764:3:97"},"nativeSrc":"3764:15:97","nodeType":"YulFunctionCall","src":"3764:15:97"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3798:9:97","nodeType":"YulIdentifier","src":"3798:9:97"},{"kind":"number","nativeSrc":"3809:3:97","nodeType":"YulLiteral","src":"3809:3:97","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"3794:3:97","nodeType":"YulIdentifier","src":"3794:3:97"},"nativeSrc":"3794:19:97","nodeType":"YulFunctionCall","src":"3794:19:97"}],"functionName":{"name":"calldataload","nativeSrc":"3781:12:97","nodeType":"YulIdentifier","src":"3781:12:97"},"nativeSrc":"3781:33:97","nodeType":"YulFunctionCall","src":"3781:33:97"}],"functionName":{"name":"mstore","nativeSrc":"3757:6:97","nodeType":"YulIdentifier","src":"3757:6:97"},"nativeSrc":"3757:58:97","nodeType":"YulFunctionCall","src":"3757:58:97"},"nativeSrc":"3757:58:97","nodeType":"YulExpressionStatement","src":"3757:58:97"},{"nativeSrc":"3824:13:97","nodeType":"YulVariableDeclaration","src":"3824:13:97","value":{"kind":"number","nativeSrc":"3834:3:97","nodeType":"YulLiteral","src":"3834:3:97","type":"","value":"256"},"variables":[{"name":"_2","nativeSrc":"3828:2:97","nodeType":"YulTypedName","src":"3828:2:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3857:5:97","nodeType":"YulIdentifier","src":"3857:5:97"},{"name":"_2","nativeSrc":"3864:2:97","nodeType":"YulIdentifier","src":"3864:2:97"}],"functionName":{"name":"add","nativeSrc":"3853:3:97","nodeType":"YulIdentifier","src":"3853:3:97"},"nativeSrc":"3853:14:97","nodeType":"YulFunctionCall","src":"3853:14:97"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3892:9:97","nodeType":"YulIdentifier","src":"3892:9:97"},{"name":"_2","nativeSrc":"3903:2:97","nodeType":"YulIdentifier","src":"3903:2:97"}],"functionName":{"name":"add","nativeSrc":"3888:3:97","nodeType":"YulIdentifier","src":"3888:3:97"},"nativeSrc":"3888:18:97","nodeType":"YulFunctionCall","src":"3888:18:97"}],"functionName":{"name":"abi_decode_address","nativeSrc":"3869:18:97","nodeType":"YulIdentifier","src":"3869:18:97"},"nativeSrc":"3869:38:97","nodeType":"YulFunctionCall","src":"3869:38:97"}],"functionName":{"name":"mstore","nativeSrc":"3846:6:97","nodeType":"YulIdentifier","src":"3846:6:97"},"nativeSrc":"3846:62:97","nodeType":"YulFunctionCall","src":"3846:62:97"},"nativeSrc":"3846:62:97","nodeType":"YulExpressionStatement","src":"3846:62:97"},{"nativeSrc":"3917:13:97","nodeType":"YulVariableDeclaration","src":"3917:13:97","value":{"kind":"number","nativeSrc":"3927:3:97","nodeType":"YulLiteral","src":"3927:3:97","type":"","value":"288"},"variables":[{"name":"_3","nativeSrc":"3921:2:97","nodeType":"YulTypedName","src":"3921:2:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3950:5:97","nodeType":"YulIdentifier","src":"3950:5:97"},{"name":"_3","nativeSrc":"3957:2:97","nodeType":"YulIdentifier","src":"3957:2:97"}],"functionName":{"name":"add","nativeSrc":"3946:3:97","nodeType":"YulIdentifier","src":"3946:3:97"},"nativeSrc":"3946:14:97","nodeType":"YulFunctionCall","src":"3946:14:97"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3984:9:97","nodeType":"YulIdentifier","src":"3984:9:97"},{"name":"_3","nativeSrc":"3995:2:97","nodeType":"YulIdentifier","src":"3995:2:97"}],"functionName":{"name":"add","nativeSrc":"3980:3:97","nodeType":"YulIdentifier","src":"3980:3:97"},"nativeSrc":"3980:18:97","nodeType":"YulFunctionCall","src":"3980:18:97"}],"functionName":{"name":"abi_decode_uint96","nativeSrc":"3962:17:97","nodeType":"YulIdentifier","src":"3962:17:97"},"nativeSrc":"3962:37:97","nodeType":"YulFunctionCall","src":"3962:37:97"}],"functionName":{"name":"mstore","nativeSrc":"3939:6:97","nodeType":"YulIdentifier","src":"3939:6:97"},"nativeSrc":"3939:61:97","nodeType":"YulFunctionCall","src":"3939:61:97"},"nativeSrc":"3939:61:97","nodeType":"YulExpressionStatement","src":"3939:61:97"},{"nativeSrc":"4009:13:97","nodeType":"YulVariableDeclaration","src":"4009:13:97","value":{"kind":"number","nativeSrc":"4019:3:97","nodeType":"YulLiteral","src":"4019:3:97","type":"","value":"320"},"variables":[{"name":"_4","nativeSrc":"4013:2:97","nodeType":"YulTypedName","src":"4013:2:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4042:5:97","nodeType":"YulIdentifier","src":"4042:5:97"},{"name":"_4","nativeSrc":"4049:2:97","nodeType":"YulIdentifier","src":"4049:2:97"}],"functionName":{"name":"add","nativeSrc":"4038:3:97","nodeType":"YulIdentifier","src":"4038:3:97"},"nativeSrc":"4038:14:97","nodeType":"YulFunctionCall","src":"4038:14:97"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4076:9:97","nodeType":"YulIdentifier","src":"4076:9:97"},{"name":"_4","nativeSrc":"4087:2:97","nodeType":"YulIdentifier","src":"4087:2:97"}],"functionName":{"name":"add","nativeSrc":"4072:3:97","nodeType":"YulIdentifier","src":"4072:3:97"},"nativeSrc":"4072:18:97","nodeType":"YulFunctionCall","src":"4072:18:97"}],"functionName":{"name":"abi_decode_uint32","nativeSrc":"4054:17:97","nodeType":"YulIdentifier","src":"4054:17:97"},"nativeSrc":"4054:37:97","nodeType":"YulFunctionCall","src":"4054:37:97"}],"functionName":{"name":"mstore","nativeSrc":"4031:6:97","nodeType":"YulIdentifier","src":"4031:6:97"},"nativeSrc":"4031:61:97","nodeType":"YulFunctionCall","src":"4031:61:97"},"nativeSrc":"4031:61:97","nodeType":"YulExpressionStatement","src":"4031:61:97"},{"nativeSrc":"4101:13:97","nodeType":"YulVariableDeclaration","src":"4101:13:97","value":{"kind":"number","nativeSrc":"4111:3:97","nodeType":"YulLiteral","src":"4111:3:97","type":"","value":"352"},"variables":[{"name":"_5","nativeSrc":"4105:2:97","nodeType":"YulTypedName","src":"4105:2:97","type":""}]},{"nativeSrc":"4123:48:97","nodeType":"YulVariableDeclaration","src":"4123:48:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4156:9:97","nodeType":"YulIdentifier","src":"4156:9:97"},{"name":"_5","nativeSrc":"4167:2:97","nodeType":"YulIdentifier","src":"4167:2:97"}],"functionName":{"name":"add","nativeSrc":"4152:3:97","nodeType":"YulIdentifier","src":"4152:3:97"},"nativeSrc":"4152:18:97","nodeType":"YulFunctionCall","src":"4152:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"4139:12:97","nodeType":"YulIdentifier","src":"4139:12:97"},"nativeSrc":"4139:32:97","nodeType":"YulFunctionCall","src":"4139:32:97"},"variables":[{"name":"offset_4","nativeSrc":"4127:8:97","nodeType":"YulTypedName","src":"4127:8:97","type":""}]},{"body":{"nativeSrc":"4200:16:97","nodeType":"YulBlock","src":"4200:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4209:1:97","nodeType":"YulLiteral","src":"4209:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"4212:1:97","nodeType":"YulLiteral","src":"4212:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4202:6:97","nodeType":"YulIdentifier","src":"4202:6:97"},"nativeSrc":"4202:12:97","nodeType":"YulFunctionCall","src":"4202:12:97"},"nativeSrc":"4202:12:97","nodeType":"YulExpressionStatement","src":"4202:12:97"}]},"condition":{"arguments":[{"name":"offset_4","nativeSrc":"4186:8:97","nodeType":"YulIdentifier","src":"4186:8:97"},{"name":"_1","nativeSrc":"4196:2:97","nodeType":"YulIdentifier","src":"4196:2:97"}],"functionName":{"name":"gt","nativeSrc":"4183:2:97","nodeType":"YulIdentifier","src":"4183:2:97"},"nativeSrc":"4183:16:97","nodeType":"YulFunctionCall","src":"4183:16:97"},"nativeSrc":"4180:36:97","nodeType":"YulIf","src":"4180:36:97"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4236:5:97","nodeType":"YulIdentifier","src":"4236:5:97"},{"name":"_5","nativeSrc":"4243:2:97","nodeType":"YulIdentifier","src":"4243:2:97"}],"functionName":{"name":"add","nativeSrc":"4232:3:97","nodeType":"YulIdentifier","src":"4232:3:97"},"nativeSrc":"4232:14:97","nodeType":"YulFunctionCall","src":"4232:14:97"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4270:9:97","nodeType":"YulIdentifier","src":"4270:9:97"},{"name":"offset_4","nativeSrc":"4281:8:97","nodeType":"YulIdentifier","src":"4281:8:97"}],"functionName":{"name":"add","nativeSrc":"4266:3:97","nodeType":"YulIdentifier","src":"4266:3:97"},"nativeSrc":"4266:24:97","nodeType":"YulFunctionCall","src":"4266:24:97"},{"name":"end","nativeSrc":"4292:3:97","nodeType":"YulIdentifier","src":"4292:3:97"}],"functionName":{"name":"abi_decode_string","nativeSrc":"4248:17:97","nodeType":"YulIdentifier","src":"4248:17:97"},"nativeSrc":"4248:48:97","nodeType":"YulFunctionCall","src":"4248:48:97"}],"functionName":{"name":"mstore","nativeSrc":"4225:6:97","nodeType":"YulIdentifier","src":"4225:6:97"},"nativeSrc":"4225:72:97","nodeType":"YulFunctionCall","src":"4225:72:97"},"nativeSrc":"4225:72:97","nodeType":"YulExpressionStatement","src":"4225:72:97"}]},"name":"abi_decode_struct_RiskParameterUpdate","nativeSrc":"2618:1685:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2665:9:97","nodeType":"YulTypedName","src":"2665:9:97","type":""},{"name":"end","nativeSrc":"2676:3:97","nodeType":"YulTypedName","src":"2676:3:97","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2684:5:97","nodeType":"YulTypedName","src":"2684:5:97","type":""}],"src":"2618:1685:97"},{"body":{"nativeSrc":"4521:964:97","nodeType":"YulBlock","src":"4521:964:97","statements":[{"nativeSrc":"4531:33:97","nodeType":"YulVariableDeclaration","src":"4531:33:97","value":{"arguments":[{"name":"dataEnd","nativeSrc":"4545:7:97","nodeType":"YulIdentifier","src":"4545:7:97"},{"name":"headStart","nativeSrc":"4554:9:97","nodeType":"YulIdentifier","src":"4554:9:97"}],"functionName":{"name":"sub","nativeSrc":"4541:3:97","nodeType":"YulIdentifier","src":"4541:3:97"},"nativeSrc":"4541:23:97","nodeType":"YulFunctionCall","src":"4541:23:97"},"variables":[{"name":"_1","nativeSrc":"4535:2:97","nodeType":"YulTypedName","src":"4535:2:97","type":""}]},{"body":{"nativeSrc":"4589:16:97","nodeType":"YulBlock","src":"4589:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4598:1:97","nodeType":"YulLiteral","src":"4598:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"4601:1:97","nodeType":"YulLiteral","src":"4601:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4591:6:97","nodeType":"YulIdentifier","src":"4591:6:97"},"nativeSrc":"4591:12:97","nodeType":"YulFunctionCall","src":"4591:12:97"},"nativeSrc":"4591:12:97","nodeType":"YulExpressionStatement","src":"4591:12:97"}]},"condition":{"arguments":[{"name":"_1","nativeSrc":"4580:2:97","nodeType":"YulIdentifier","src":"4580:2:97"},{"kind":"number","nativeSrc":"4584:3:97","nodeType":"YulLiteral","src":"4584:3:97","type":"","value":"192"}],"functionName":{"name":"slt","nativeSrc":"4576:3:97","nodeType":"YulIdentifier","src":"4576:3:97"},"nativeSrc":"4576:12:97","nodeType":"YulFunctionCall","src":"4576:12:97"},"nativeSrc":"4573:32:97","nodeType":"YulIf","src":"4573:32:97"},{"nativeSrc":"4614:36:97","nodeType":"YulVariableDeclaration","src":"4614:36:97","value":{"arguments":[{"name":"headStart","nativeSrc":"4640:9:97","nodeType":"YulIdentifier","src":"4640:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"4627:12:97","nodeType":"YulIdentifier","src":"4627:12:97"},"nativeSrc":"4627:23:97","nodeType":"YulFunctionCall","src":"4627:23:97"},"variables":[{"name":"value","nativeSrc":"4618:5:97","nodeType":"YulTypedName","src":"4618:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"4683:5:97","nodeType":"YulIdentifier","src":"4683:5:97"}],"functionName":{"name":"validator_revert_uint32","nativeSrc":"4659:23:97","nodeType":"YulIdentifier","src":"4659:23:97"},"nativeSrc":"4659:30:97","nodeType":"YulFunctionCall","src":"4659:30:97"},"nativeSrc":"4659:30:97","nodeType":"YulExpressionStatement","src":"4659:30:97"},{"nativeSrc":"4698:15:97","nodeType":"YulAssignment","src":"4698:15:97","value":{"name":"value","nativeSrc":"4708:5:97","nodeType":"YulIdentifier","src":"4708:5:97"},"variableNames":[{"name":"value0","nativeSrc":"4698:6:97","nodeType":"YulIdentifier","src":"4698:6:97"}]},{"nativeSrc":"4722:46:97","nodeType":"YulVariableDeclaration","src":"4722:46:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4753:9:97","nodeType":"YulIdentifier","src":"4753:9:97"},{"kind":"number","nativeSrc":"4764:2:97","nodeType":"YulLiteral","src":"4764:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4749:3:97","nodeType":"YulIdentifier","src":"4749:3:97"},"nativeSrc":"4749:18:97","nodeType":"YulFunctionCall","src":"4749:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"4736:12:97","nodeType":"YulIdentifier","src":"4736:12:97"},"nativeSrc":"4736:32:97","nodeType":"YulFunctionCall","src":"4736:32:97"},"variables":[{"name":"offset","nativeSrc":"4726:6:97","nodeType":"YulTypedName","src":"4726:6:97","type":""}]},{"nativeSrc":"4777:28:97","nodeType":"YulVariableDeclaration","src":"4777:28:97","value":{"kind":"number","nativeSrc":"4787:18:97","nodeType":"YulLiteral","src":"4787:18:97","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_2","nativeSrc":"4781:2:97","nodeType":"YulTypedName","src":"4781:2:97","type":""}]},{"body":{"nativeSrc":"4832:16:97","nodeType":"YulBlock","src":"4832:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4841:1:97","nodeType":"YulLiteral","src":"4841:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"4844:1:97","nodeType":"YulLiteral","src":"4844:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4834:6:97","nodeType":"YulIdentifier","src":"4834:6:97"},"nativeSrc":"4834:12:97","nodeType":"YulFunctionCall","src":"4834:12:97"},"nativeSrc":"4834:12:97","nodeType":"YulExpressionStatement","src":"4834:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4820:6:97","nodeType":"YulIdentifier","src":"4820:6:97"},{"name":"_2","nativeSrc":"4828:2:97","nodeType":"YulIdentifier","src":"4828:2:97"}],"functionName":{"name":"gt","nativeSrc":"4817:2:97","nodeType":"YulIdentifier","src":"4817:2:97"},"nativeSrc":"4817:14:97","nodeType":"YulFunctionCall","src":"4817:14:97"},"nativeSrc":"4814:34:97","nodeType":"YulIf","src":"4814:34:97"},{"nativeSrc":"4857:80:97","nodeType":"YulAssignment","src":"4857:80:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4909:9:97","nodeType":"YulIdentifier","src":"4909:9:97"},{"name":"offset","nativeSrc":"4920:6:97","nodeType":"YulIdentifier","src":"4920:6:97"}],"functionName":{"name":"add","nativeSrc":"4905:3:97","nodeType":"YulIdentifier","src":"4905:3:97"},"nativeSrc":"4905:22:97","nodeType":"YulFunctionCall","src":"4905:22:97"},{"name":"dataEnd","nativeSrc":"4929:7:97","nodeType":"YulIdentifier","src":"4929:7:97"}],"functionName":{"name":"abi_decode_struct_RiskParameterUpdate","nativeSrc":"4867:37:97","nodeType":"YulIdentifier","src":"4867:37:97"},"nativeSrc":"4867:70:97","nodeType":"YulFunctionCall","src":"4867:70:97"},"variableNames":[{"name":"value1","nativeSrc":"4857:6:97","nodeType":"YulIdentifier","src":"4857:6:97"}]},{"nativeSrc":"4946:48:97","nodeType":"YulVariableDeclaration","src":"4946:48:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4979:9:97","nodeType":"YulIdentifier","src":"4979:9:97"},{"kind":"number","nativeSrc":"4990:2:97","nodeType":"YulLiteral","src":"4990:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4975:3:97","nodeType":"YulIdentifier","src":"4975:3:97"},"nativeSrc":"4975:18:97","nodeType":"YulFunctionCall","src":"4975:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"4962:12:97","nodeType":"YulIdentifier","src":"4962:12:97"},"nativeSrc":"4962:32:97","nodeType":"YulFunctionCall","src":"4962:32:97"},"variables":[{"name":"offset_1","nativeSrc":"4950:8:97","nodeType":"YulTypedName","src":"4950:8:97","type":""}]},{"body":{"nativeSrc":"5023:16:97","nodeType":"YulBlock","src":"5023:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5032:1:97","nodeType":"YulLiteral","src":"5032:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"5035:1:97","nodeType":"YulLiteral","src":"5035:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5025:6:97","nodeType":"YulIdentifier","src":"5025:6:97"},"nativeSrc":"5025:12:97","nodeType":"YulFunctionCall","src":"5025:12:97"},"nativeSrc":"5025:12:97","nodeType":"YulExpressionStatement","src":"5025:12:97"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"5009:8:97","nodeType":"YulIdentifier","src":"5009:8:97"},{"name":"_2","nativeSrc":"5019:2:97","nodeType":"YulIdentifier","src":"5019:2:97"}],"functionName":{"name":"gt","nativeSrc":"5006:2:97","nodeType":"YulIdentifier","src":"5006:2:97"},"nativeSrc":"5006:16:97","nodeType":"YulFunctionCall","src":"5006:16:97"},"nativeSrc":"5003:36:97","nodeType":"YulIf","src":"5003:36:97"},{"nativeSrc":"5048:62:97","nodeType":"YulAssignment","src":"5048:62:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5080:9:97","nodeType":"YulIdentifier","src":"5080:9:97"},{"name":"offset_1","nativeSrc":"5091:8:97","nodeType":"YulIdentifier","src":"5091:8:97"}],"functionName":{"name":"add","nativeSrc":"5076:3:97","nodeType":"YulIdentifier","src":"5076:3:97"},"nativeSrc":"5076:24:97","nodeType":"YulFunctionCall","src":"5076:24:97"},{"name":"dataEnd","nativeSrc":"5102:7:97","nodeType":"YulIdentifier","src":"5102:7:97"}],"functionName":{"name":"abi_decode_string","nativeSrc":"5058:17:97","nodeType":"YulIdentifier","src":"5058:17:97"},"nativeSrc":"5058:52:97","nodeType":"YulFunctionCall","src":"5058:52:97"},"variableNames":[{"name":"value2","nativeSrc":"5048:6:97","nodeType":"YulIdentifier","src":"5048:6:97"}]},{"body":{"nativeSrc":"5207:16:97","nodeType":"YulBlock","src":"5207:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5216:1:97","nodeType":"YulLiteral","src":"5216:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"5219:1:97","nodeType":"YulLiteral","src":"5219:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5209:6:97","nodeType":"YulIdentifier","src":"5209:6:97"},"nativeSrc":"5209:12:97","nodeType":"YulFunctionCall","src":"5209:12:97"},"nativeSrc":"5209:12:97","nodeType":"YulExpressionStatement","src":"5209:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"5130:2:97","nodeType":"YulIdentifier","src":"5130:2:97"},{"kind":"number","nativeSrc":"5134:66:97","nodeType":"YulLiteral","src":"5134:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0"}],"functionName":{"name":"add","nativeSrc":"5126:3:97","nodeType":"YulIdentifier","src":"5126:3:97"},"nativeSrc":"5126:75:97","nodeType":"YulFunctionCall","src":"5126:75:97"},{"kind":"number","nativeSrc":"5203:2:97","nodeType":"YulLiteral","src":"5203:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"5122:3:97","nodeType":"YulIdentifier","src":"5122:3:97"},"nativeSrc":"5122:84:97","nodeType":"YulFunctionCall","src":"5122:84:97"},"nativeSrc":"5119:104:97","nodeType":"YulIf","src":"5119:104:97"},{"nativeSrc":"5232:37:97","nodeType":"YulVariableDeclaration","src":"5232:37:97","value":{"arguments":[],"functionName":{"name":"allocate_memory_4308","nativeSrc":"5247:20:97","nodeType":"YulIdentifier","src":"5247:20:97"},"nativeSrc":"5247:22:97","nodeType":"YulFunctionCall","src":"5247:22:97"},"variables":[{"name":"value_1","nativeSrc":"5236:7:97","nodeType":"YulTypedName","src":"5236:7:97","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"5285:7:97","nodeType":"YulIdentifier","src":"5285:7:97"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5311:9:97","nodeType":"YulIdentifier","src":"5311:9:97"},{"kind":"number","nativeSrc":"5322:2:97","nodeType":"YulLiteral","src":"5322:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5307:3:97","nodeType":"YulIdentifier","src":"5307:3:97"},"nativeSrc":"5307:18:97","nodeType":"YulFunctionCall","src":"5307:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"5294:12:97","nodeType":"YulIdentifier","src":"5294:12:97"},"nativeSrc":"5294:32:97","nodeType":"YulFunctionCall","src":"5294:32:97"}],"functionName":{"name":"mstore","nativeSrc":"5278:6:97","nodeType":"YulIdentifier","src":"5278:6:97"},"nativeSrc":"5278:49:97","nodeType":"YulFunctionCall","src":"5278:49:97"},"nativeSrc":"5278:49:97","nodeType":"YulExpressionStatement","src":"5278:49:97"},{"expression":{"arguments":[{"arguments":[{"name":"value_1","nativeSrc":"5347:7:97","nodeType":"YulIdentifier","src":"5347:7:97"},{"kind":"number","nativeSrc":"5356:2:97","nodeType":"YulLiteral","src":"5356:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5343:3:97","nodeType":"YulIdentifier","src":"5343:3:97"},"nativeSrc":"5343:16:97","nodeType":"YulFunctionCall","src":"5343:16:97"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5378:9:97","nodeType":"YulIdentifier","src":"5378:9:97"},{"kind":"number","nativeSrc":"5389:3:97","nodeType":"YulLiteral","src":"5389:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"5374:3:97","nodeType":"YulIdentifier","src":"5374:3:97"},"nativeSrc":"5374:19:97","nodeType":"YulFunctionCall","src":"5374:19:97"}],"functionName":{"name":"calldataload","nativeSrc":"5361:12:97","nodeType":"YulIdentifier","src":"5361:12:97"},"nativeSrc":"5361:33:97","nodeType":"YulFunctionCall","src":"5361:33:97"}],"functionName":{"name":"mstore","nativeSrc":"5336:6:97","nodeType":"YulIdentifier","src":"5336:6:97"},"nativeSrc":"5336:59:97","nodeType":"YulFunctionCall","src":"5336:59:97"},"nativeSrc":"5336:59:97","nodeType":"YulExpressionStatement","src":"5336:59:97"},{"nativeSrc":"5404:17:97","nodeType":"YulAssignment","src":"5404:17:97","value":{"name":"value_1","nativeSrc":"5414:7:97","nodeType":"YulIdentifier","src":"5414:7:97"},"variableNames":[{"name":"value3","nativeSrc":"5404:6:97","nodeType":"YulIdentifier","src":"5404:6:97"}]},{"nativeSrc":"5430:49:97","nodeType":"YulAssignment","src":"5430:49:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5463:9:97","nodeType":"YulIdentifier","src":"5463:9:97"},{"kind":"number","nativeSrc":"5474:3:97","nodeType":"YulLiteral","src":"5474:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"5459:3:97","nodeType":"YulIdentifier","src":"5459:3:97"},"nativeSrc":"5459:19:97","nodeType":"YulFunctionCall","src":"5459:19:97"}],"functionName":{"name":"abi_decode_address","nativeSrc":"5440:18:97","nodeType":"YulIdentifier","src":"5440:18:97"},"nativeSrc":"5440:39:97","nodeType":"YulFunctionCall","src":"5440:39:97"},"variableNames":[{"name":"value4","nativeSrc":"5430:6:97","nodeType":"YulIdentifier","src":"5430:6:97"}]}]},"name":"abi_decode_tuple_t_uint32t_struct$_RiskParameterUpdate_$16568_memory_ptrt_bytes_memory_ptrt_struct$_MessagingFee_$879_memory_ptrt_address","nativeSrc":"4308:1177:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4455:9:97","nodeType":"YulTypedName","src":"4455:9:97","type":""},{"name":"dataEnd","nativeSrc":"4466:7:97","nodeType":"YulTypedName","src":"4466:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4478:6:97","nodeType":"YulTypedName","src":"4478:6:97","type":""},{"name":"value1","nativeSrc":"4486:6:97","nodeType":"YulTypedName","src":"4486:6:97","type":""},{"name":"value2","nativeSrc":"4494:6:97","nodeType":"YulTypedName","src":"4494:6:97","type":""},{"name":"value3","nativeSrc":"4502:6:97","nodeType":"YulTypedName","src":"4502:6:97","type":""},{"name":"value4","nativeSrc":"4510:6:97","nodeType":"YulTypedName","src":"4510:6:97","type":""}],"src":"4308:1177:97"},{"body":{"nativeSrc":"5560:177:97","nodeType":"YulBlock","src":"5560:177:97","statements":[{"body":{"nativeSrc":"5606:16:97","nodeType":"YulBlock","src":"5606:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5615:1:97","nodeType":"YulLiteral","src":"5615:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"5618:1:97","nodeType":"YulLiteral","src":"5618:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5608:6:97","nodeType":"YulIdentifier","src":"5608:6:97"},"nativeSrc":"5608:12:97","nodeType":"YulFunctionCall","src":"5608:12:97"},"nativeSrc":"5608:12:97","nodeType":"YulExpressionStatement","src":"5608:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5581:7:97","nodeType":"YulIdentifier","src":"5581:7:97"},{"name":"headStart","nativeSrc":"5590:9:97","nodeType":"YulIdentifier","src":"5590:9:97"}],"functionName":{"name":"sub","nativeSrc":"5577:3:97","nodeType":"YulIdentifier","src":"5577:3:97"},"nativeSrc":"5577:23:97","nodeType":"YulFunctionCall","src":"5577:23:97"},{"kind":"number","nativeSrc":"5602:2:97","nodeType":"YulLiteral","src":"5602:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5573:3:97","nodeType":"YulIdentifier","src":"5573:3:97"},"nativeSrc":"5573:32:97","nodeType":"YulFunctionCall","src":"5573:32:97"},"nativeSrc":"5570:52:97","nodeType":"YulIf","src":"5570:52:97"},{"nativeSrc":"5631:36:97","nodeType":"YulVariableDeclaration","src":"5631:36:97","value":{"arguments":[{"name":"headStart","nativeSrc":"5657:9:97","nodeType":"YulIdentifier","src":"5657:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"5644:12:97","nodeType":"YulIdentifier","src":"5644:12:97"},"nativeSrc":"5644:23:97","nodeType":"YulFunctionCall","src":"5644:23:97"},"variables":[{"name":"value","nativeSrc":"5635:5:97","nodeType":"YulTypedName","src":"5635:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"5701:5:97","nodeType":"YulIdentifier","src":"5701:5:97"}],"functionName":{"name":"validator_revert_address","nativeSrc":"5676:24:97","nodeType":"YulIdentifier","src":"5676:24:97"},"nativeSrc":"5676:31:97","nodeType":"YulFunctionCall","src":"5676:31:97"},"nativeSrc":"5676:31:97","nodeType":"YulExpressionStatement","src":"5676:31:97"},{"nativeSrc":"5716:15:97","nodeType":"YulAssignment","src":"5716:15:97","value":{"name":"value","nativeSrc":"5726:5:97","nodeType":"YulIdentifier","src":"5726:5:97"},"variableNames":[{"name":"value0","nativeSrc":"5716:6:97","nodeType":"YulIdentifier","src":"5716:6:97"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"5490:247:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5526:9:97","nodeType":"YulTypedName","src":"5526:9:97","type":""},{"name":"dataEnd","nativeSrc":"5537:7:97","nodeType":"YulTypedName","src":"5537:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5549:6:97","nodeType":"YulTypedName","src":"5549:6:97","type":""}],"src":"5490:247:97"},{"body":{"nativeSrc":"5784:76:97","nodeType":"YulBlock","src":"5784:76:97","statements":[{"body":{"nativeSrc":"5838:16:97","nodeType":"YulBlock","src":"5838:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5847:1:97","nodeType":"YulLiteral","src":"5847:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"5850:1:97","nodeType":"YulLiteral","src":"5850:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5840:6:97","nodeType":"YulIdentifier","src":"5840:6:97"},"nativeSrc":"5840:12:97","nodeType":"YulFunctionCall","src":"5840:12:97"},"nativeSrc":"5840:12:97","nodeType":"YulExpressionStatement","src":"5840:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5807:5:97","nodeType":"YulIdentifier","src":"5807:5:97"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5828:5:97","nodeType":"YulIdentifier","src":"5828:5:97"}],"functionName":{"name":"iszero","nativeSrc":"5821:6:97","nodeType":"YulIdentifier","src":"5821:6:97"},"nativeSrc":"5821:13:97","nodeType":"YulFunctionCall","src":"5821:13:97"}],"functionName":{"name":"iszero","nativeSrc":"5814:6:97","nodeType":"YulIdentifier","src":"5814:6:97"},"nativeSrc":"5814:21:97","nodeType":"YulFunctionCall","src":"5814:21:97"}],"functionName":{"name":"eq","nativeSrc":"5804:2:97","nodeType":"YulIdentifier","src":"5804:2:97"},"nativeSrc":"5804:32:97","nodeType":"YulFunctionCall","src":"5804:32:97"}],"functionName":{"name":"iszero","nativeSrc":"5797:6:97","nodeType":"YulIdentifier","src":"5797:6:97"},"nativeSrc":"5797:40:97","nodeType":"YulFunctionCall","src":"5797:40:97"},"nativeSrc":"5794:60:97","nodeType":"YulIf","src":"5794:60:97"}]},"name":"validator_revert_bool","nativeSrc":"5742:118:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5773:5:97","nodeType":"YulTypedName","src":"5773:5:97","type":""}],"src":"5742:118:97"},{"body":{"nativeSrc":"5932:174:97","nodeType":"YulBlock","src":"5932:174:97","statements":[{"body":{"nativeSrc":"5978:16:97","nodeType":"YulBlock","src":"5978:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5987:1:97","nodeType":"YulLiteral","src":"5987:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"5990:1:97","nodeType":"YulLiteral","src":"5990:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5980:6:97","nodeType":"YulIdentifier","src":"5980:6:97"},"nativeSrc":"5980:12:97","nodeType":"YulFunctionCall","src":"5980:12:97"},"nativeSrc":"5980:12:97","nodeType":"YulExpressionStatement","src":"5980:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5953:7:97","nodeType":"YulIdentifier","src":"5953:7:97"},{"name":"headStart","nativeSrc":"5962:9:97","nodeType":"YulIdentifier","src":"5962:9:97"}],"functionName":{"name":"sub","nativeSrc":"5949:3:97","nodeType":"YulIdentifier","src":"5949:3:97"},"nativeSrc":"5949:23:97","nodeType":"YulFunctionCall","src":"5949:23:97"},{"kind":"number","nativeSrc":"5974:2:97","nodeType":"YulLiteral","src":"5974:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5945:3:97","nodeType":"YulIdentifier","src":"5945:3:97"},"nativeSrc":"5945:32:97","nodeType":"YulFunctionCall","src":"5945:32:97"},"nativeSrc":"5942:52:97","nodeType":"YulIf","src":"5942:52:97"},{"nativeSrc":"6003:36:97","nodeType":"YulVariableDeclaration","src":"6003:36:97","value":{"arguments":[{"name":"headStart","nativeSrc":"6029:9:97","nodeType":"YulIdentifier","src":"6029:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"6016:12:97","nodeType":"YulIdentifier","src":"6016:12:97"},"nativeSrc":"6016:23:97","nodeType":"YulFunctionCall","src":"6016:23:97"},"variables":[{"name":"value","nativeSrc":"6007:5:97","nodeType":"YulTypedName","src":"6007:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6070:5:97","nodeType":"YulIdentifier","src":"6070:5:97"}],"functionName":{"name":"validator_revert_bool","nativeSrc":"6048:21:97","nodeType":"YulIdentifier","src":"6048:21:97"},"nativeSrc":"6048:28:97","nodeType":"YulFunctionCall","src":"6048:28:97"},"nativeSrc":"6048:28:97","nodeType":"YulExpressionStatement","src":"6048:28:97"},{"nativeSrc":"6085:15:97","nodeType":"YulAssignment","src":"6085:15:97","value":{"name":"value","nativeSrc":"6095:5:97","nodeType":"YulIdentifier","src":"6095:5:97"},"variableNames":[{"name":"value0","nativeSrc":"6085:6:97","nodeType":"YulIdentifier","src":"6085:6:97"}]}]},"name":"abi_decode_tuple_t_bool","nativeSrc":"5865:241:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5898:9:97","nodeType":"YulTypedName","src":"5898:9:97","type":""},{"name":"dataEnd","nativeSrc":"5909:7:97","nodeType":"YulTypedName","src":"5909:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5921:6:97","nodeType":"YulTypedName","src":"5921:6:97","type":""}],"src":"5865:241:97"},{"body":{"nativeSrc":"6236:174:97","nodeType":"YulBlock","src":"6236:174:97","statements":[{"nativeSrc":"6246:26:97","nodeType":"YulAssignment","src":"6246:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"6258:9:97","nodeType":"YulIdentifier","src":"6258:9:97"},{"kind":"number","nativeSrc":"6269:2:97","nodeType":"YulLiteral","src":"6269:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6254:3:97","nodeType":"YulIdentifier","src":"6254:3:97"},"nativeSrc":"6254:18:97","nodeType":"YulFunctionCall","src":"6254:18:97"},"variableNames":[{"name":"tail","nativeSrc":"6246:4:97","nodeType":"YulIdentifier","src":"6246:4:97"}]},{"nativeSrc":"6281:28:97","nodeType":"YulVariableDeclaration","src":"6281:28:97","value":{"kind":"number","nativeSrc":"6291:18:97","nodeType":"YulLiteral","src":"6291:18:97","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"6285:2:97","nodeType":"YulTypedName","src":"6285:2:97","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6325:9:97","nodeType":"YulIdentifier","src":"6325:9:97"},{"arguments":[{"name":"value0","nativeSrc":"6340:6:97","nodeType":"YulIdentifier","src":"6340:6:97"},{"name":"_1","nativeSrc":"6348:2:97","nodeType":"YulIdentifier","src":"6348:2:97"}],"functionName":{"name":"and","nativeSrc":"6336:3:97","nodeType":"YulIdentifier","src":"6336:3:97"},"nativeSrc":"6336:15:97","nodeType":"YulFunctionCall","src":"6336:15:97"}],"functionName":{"name":"mstore","nativeSrc":"6318:6:97","nodeType":"YulIdentifier","src":"6318:6:97"},"nativeSrc":"6318:34:97","nodeType":"YulFunctionCall","src":"6318:34:97"},"nativeSrc":"6318:34:97","nodeType":"YulExpressionStatement","src":"6318:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6372:9:97","nodeType":"YulIdentifier","src":"6372:9:97"},{"kind":"number","nativeSrc":"6383:2:97","nodeType":"YulLiteral","src":"6383:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6368:3:97","nodeType":"YulIdentifier","src":"6368:3:97"},"nativeSrc":"6368:18:97","nodeType":"YulFunctionCall","src":"6368:18:97"},{"arguments":[{"name":"value1","nativeSrc":"6392:6:97","nodeType":"YulIdentifier","src":"6392:6:97"},{"name":"_1","nativeSrc":"6400:2:97","nodeType":"YulIdentifier","src":"6400:2:97"}],"functionName":{"name":"and","nativeSrc":"6388:3:97","nodeType":"YulIdentifier","src":"6388:3:97"},"nativeSrc":"6388:15:97","nodeType":"YulFunctionCall","src":"6388:15:97"}],"functionName":{"name":"mstore","nativeSrc":"6361:6:97","nodeType":"YulIdentifier","src":"6361:6:97"},"nativeSrc":"6361:43:97","nodeType":"YulFunctionCall","src":"6361:43:97"},"nativeSrc":"6361:43:97","nodeType":"YulExpressionStatement","src":"6361:43:97"}]},"name":"abi_encode_tuple_t_uint64_t_uint64__to_t_uint64_t_uint64__fromStack_reversed","nativeSrc":"6111:299:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6197:9:97","nodeType":"YulTypedName","src":"6197:9:97","type":""},{"name":"value1","nativeSrc":"6208:6:97","nodeType":"YulTypedName","src":"6208:6:97","type":""},{"name":"value0","nativeSrc":"6216:6:97","nodeType":"YulTypedName","src":"6216:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6227:4:97","nodeType":"YulTypedName","src":"6227:4:97","type":""}],"src":"6111:299:97"},{"body":{"nativeSrc":"6563:571:97","nodeType":"YulBlock","src":"6563:571:97","statements":[{"body":{"nativeSrc":"6609:16:97","nodeType":"YulBlock","src":"6609:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6618:1:97","nodeType":"YulLiteral","src":"6618:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"6621:1:97","nodeType":"YulLiteral","src":"6621:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6611:6:97","nodeType":"YulIdentifier","src":"6611:6:97"},"nativeSrc":"6611:12:97","nodeType":"YulFunctionCall","src":"6611:12:97"},"nativeSrc":"6611:12:97","nodeType":"YulExpressionStatement","src":"6611:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6584:7:97","nodeType":"YulIdentifier","src":"6584:7:97"},{"name":"headStart","nativeSrc":"6593:9:97","nodeType":"YulIdentifier","src":"6593:9:97"}],"functionName":{"name":"sub","nativeSrc":"6580:3:97","nodeType":"YulIdentifier","src":"6580:3:97"},"nativeSrc":"6580:23:97","nodeType":"YulFunctionCall","src":"6580:23:97"},{"kind":"number","nativeSrc":"6605:2:97","nodeType":"YulLiteral","src":"6605:2:97","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"6576:3:97","nodeType":"YulIdentifier","src":"6576:3:97"},"nativeSrc":"6576:32:97","nodeType":"YulFunctionCall","src":"6576:32:97"},"nativeSrc":"6573:52:97","nodeType":"YulIf","src":"6573:52:97"},{"nativeSrc":"6634:37:97","nodeType":"YulVariableDeclaration","src":"6634:37:97","value":{"arguments":[{"name":"headStart","nativeSrc":"6661:9:97","nodeType":"YulIdentifier","src":"6661:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"6648:12:97","nodeType":"YulIdentifier","src":"6648:12:97"},"nativeSrc":"6648:23:97","nodeType":"YulFunctionCall","src":"6648:23:97"},"variables":[{"name":"offset","nativeSrc":"6638:6:97","nodeType":"YulTypedName","src":"6638:6:97","type":""}]},{"nativeSrc":"6680:28:97","nodeType":"YulVariableDeclaration","src":"6680:28:97","value":{"kind":"number","nativeSrc":"6690:18:97","nodeType":"YulLiteral","src":"6690:18:97","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"6684:2:97","nodeType":"YulTypedName","src":"6684:2:97","type":""}]},{"body":{"nativeSrc":"6735:16:97","nodeType":"YulBlock","src":"6735:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6744:1:97","nodeType":"YulLiteral","src":"6744:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"6747:1:97","nodeType":"YulLiteral","src":"6747:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6737:6:97","nodeType":"YulIdentifier","src":"6737:6:97"},"nativeSrc":"6737:12:97","nodeType":"YulFunctionCall","src":"6737:12:97"},"nativeSrc":"6737:12:97","nodeType":"YulExpressionStatement","src":"6737:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"6723:6:97","nodeType":"YulIdentifier","src":"6723:6:97"},{"name":"_1","nativeSrc":"6731:2:97","nodeType":"YulIdentifier","src":"6731:2:97"}],"functionName":{"name":"gt","nativeSrc":"6720:2:97","nodeType":"YulIdentifier","src":"6720:2:97"},"nativeSrc":"6720:14:97","nodeType":"YulFunctionCall","src":"6720:14:97"},"nativeSrc":"6717:34:97","nodeType":"YulIf","src":"6717:34:97"},{"nativeSrc":"6760:80:97","nodeType":"YulAssignment","src":"6760:80:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6812:9:97","nodeType":"YulIdentifier","src":"6812:9:97"},{"name":"offset","nativeSrc":"6823:6:97","nodeType":"YulIdentifier","src":"6823:6:97"}],"functionName":{"name":"add","nativeSrc":"6808:3:97","nodeType":"YulIdentifier","src":"6808:3:97"},"nativeSrc":"6808:22:97","nodeType":"YulFunctionCall","src":"6808:22:97"},{"name":"dataEnd","nativeSrc":"6832:7:97","nodeType":"YulIdentifier","src":"6832:7:97"}],"functionName":{"name":"abi_decode_struct_RiskParameterUpdate","nativeSrc":"6770:37:97","nodeType":"YulIdentifier","src":"6770:37:97"},"nativeSrc":"6770:70:97","nodeType":"YulFunctionCall","src":"6770:70:97"},"variableNames":[{"name":"value0","nativeSrc":"6760:6:97","nodeType":"YulIdentifier","src":"6760:6:97"}]},{"nativeSrc":"6849:48:97","nodeType":"YulVariableDeclaration","src":"6849:48:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6882:9:97","nodeType":"YulIdentifier","src":"6882:9:97"},{"kind":"number","nativeSrc":"6893:2:97","nodeType":"YulLiteral","src":"6893:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6878:3:97","nodeType":"YulIdentifier","src":"6878:3:97"},"nativeSrc":"6878:18:97","nodeType":"YulFunctionCall","src":"6878:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"6865:12:97","nodeType":"YulIdentifier","src":"6865:12:97"},"nativeSrc":"6865:32:97","nodeType":"YulFunctionCall","src":"6865:32:97"},"variables":[{"name":"offset_1","nativeSrc":"6853:8:97","nodeType":"YulTypedName","src":"6853:8:97","type":""}]},{"body":{"nativeSrc":"6926:16:97","nodeType":"YulBlock","src":"6926:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6935:1:97","nodeType":"YulLiteral","src":"6935:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"6938:1:97","nodeType":"YulLiteral","src":"6938:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6928:6:97","nodeType":"YulIdentifier","src":"6928:6:97"},"nativeSrc":"6928:12:97","nodeType":"YulFunctionCall","src":"6928:12:97"},"nativeSrc":"6928:12:97","nodeType":"YulExpressionStatement","src":"6928:12:97"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"6912:8:97","nodeType":"YulIdentifier","src":"6912:8:97"},{"name":"_1","nativeSrc":"6922:2:97","nodeType":"YulIdentifier","src":"6922:2:97"}],"functionName":{"name":"gt","nativeSrc":"6909:2:97","nodeType":"YulIdentifier","src":"6909:2:97"},"nativeSrc":"6909:16:97","nodeType":"YulFunctionCall","src":"6909:16:97"},"nativeSrc":"6906:36:97","nodeType":"YulIf","src":"6906:36:97"},{"nativeSrc":"6951:62:97","nodeType":"YulAssignment","src":"6951:62:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6983:9:97","nodeType":"YulIdentifier","src":"6983:9:97"},{"name":"offset_1","nativeSrc":"6994:8:97","nodeType":"YulIdentifier","src":"6994:8:97"}],"functionName":{"name":"add","nativeSrc":"6979:3:97","nodeType":"YulIdentifier","src":"6979:3:97"},"nativeSrc":"6979:24:97","nodeType":"YulFunctionCall","src":"6979:24:97"},{"name":"dataEnd","nativeSrc":"7005:7:97","nodeType":"YulIdentifier","src":"7005:7:97"}],"functionName":{"name":"abi_decode_string","nativeSrc":"6961:17:97","nodeType":"YulIdentifier","src":"6961:17:97"},"nativeSrc":"6961:52:97","nodeType":"YulFunctionCall","src":"6961:52:97"},"variableNames":[{"name":"value1","nativeSrc":"6951:6:97","nodeType":"YulIdentifier","src":"6951:6:97"}]},{"nativeSrc":"7022:45:97","nodeType":"YulVariableDeclaration","src":"7022:45:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7052:9:97","nodeType":"YulIdentifier","src":"7052:9:97"},{"kind":"number","nativeSrc":"7063:2:97","nodeType":"YulLiteral","src":"7063:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7048:3:97","nodeType":"YulIdentifier","src":"7048:3:97"},"nativeSrc":"7048:18:97","nodeType":"YulFunctionCall","src":"7048:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"7035:12:97","nodeType":"YulIdentifier","src":"7035:12:97"},"nativeSrc":"7035:32:97","nodeType":"YulFunctionCall","src":"7035:32:97"},"variables":[{"name":"value","nativeSrc":"7026:5:97","nodeType":"YulTypedName","src":"7026:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7098:5:97","nodeType":"YulIdentifier","src":"7098:5:97"}],"functionName":{"name":"validator_revert_bool","nativeSrc":"7076:21:97","nodeType":"YulIdentifier","src":"7076:21:97"},"nativeSrc":"7076:28:97","nodeType":"YulFunctionCall","src":"7076:28:97"},"nativeSrc":"7076:28:97","nodeType":"YulExpressionStatement","src":"7076:28:97"},{"nativeSrc":"7113:15:97","nodeType":"YulAssignment","src":"7113:15:97","value":{"name":"value","nativeSrc":"7123:5:97","nodeType":"YulIdentifier","src":"7123:5:97"},"variableNames":[{"name":"value2","nativeSrc":"7113:6:97","nodeType":"YulIdentifier","src":"7113:6:97"}]}]},"name":"abi_decode_tuple_t_struct$_RiskParameterUpdate_$16568_memory_ptrt_bytes_memory_ptrt_bool","nativeSrc":"6415:719:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6513:9:97","nodeType":"YulTypedName","src":"6513:9:97","type":""},{"name":"dataEnd","nativeSrc":"6524:7:97","nodeType":"YulTypedName","src":"6524:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6536:6:97","nodeType":"YulTypedName","src":"6536:6:97","type":""},{"name":"value1","nativeSrc":"6544:6:97","nodeType":"YulTypedName","src":"6544:6:97","type":""},{"name":"value2","nativeSrc":"6552:6:97","nodeType":"YulTypedName","src":"6552:6:97","type":""}],"src":"6415:719:97"},{"body":{"nativeSrc":"7195:97:97","nodeType":"YulBlock","src":"7195:97:97","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"7212:3:97","nodeType":"YulIdentifier","src":"7212:3:97"},{"arguments":[{"name":"value","nativeSrc":"7223:5:97","nodeType":"YulIdentifier","src":"7223:5:97"}],"functionName":{"name":"mload","nativeSrc":"7217:5:97","nodeType":"YulIdentifier","src":"7217:5:97"},"nativeSrc":"7217:12:97","nodeType":"YulFunctionCall","src":"7217:12:97"}],"functionName":{"name":"mstore","nativeSrc":"7205:6:97","nodeType":"YulIdentifier","src":"7205:6:97"},"nativeSrc":"7205:25:97","nodeType":"YulFunctionCall","src":"7205:25:97"},"nativeSrc":"7205:25:97","nodeType":"YulExpressionStatement","src":"7205:25:97"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"7250:3:97","nodeType":"YulIdentifier","src":"7250:3:97"},{"kind":"number","nativeSrc":"7255:4:97","nodeType":"YulLiteral","src":"7255:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7246:3:97","nodeType":"YulIdentifier","src":"7246:3:97"},"nativeSrc":"7246:14:97","nodeType":"YulFunctionCall","src":"7246:14:97"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7272:5:97","nodeType":"YulIdentifier","src":"7272:5:97"},{"kind":"number","nativeSrc":"7279:4:97","nodeType":"YulLiteral","src":"7279:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7268:3:97","nodeType":"YulIdentifier","src":"7268:3:97"},"nativeSrc":"7268:16:97","nodeType":"YulFunctionCall","src":"7268:16:97"}],"functionName":{"name":"mload","nativeSrc":"7262:5:97","nodeType":"YulIdentifier","src":"7262:5:97"},"nativeSrc":"7262:23:97","nodeType":"YulFunctionCall","src":"7262:23:97"}],"functionName":{"name":"mstore","nativeSrc":"7239:6:97","nodeType":"YulIdentifier","src":"7239:6:97"},"nativeSrc":"7239:47:97","nodeType":"YulFunctionCall","src":"7239:47:97"},"nativeSrc":"7239:47:97","nodeType":"YulExpressionStatement","src":"7239:47:97"}]},"name":"abi_encode_struct_MessagingFee","nativeSrc":"7139:153:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7179:5:97","nodeType":"YulTypedName","src":"7179:5:97","type":""},{"name":"pos","nativeSrc":"7186:3:97","nodeType":"YulTypedName","src":"7186:3:97","type":""}],"src":"7139:153:97"},{"body":{"nativeSrc":"7456:100:97","nodeType":"YulBlock","src":"7456:100:97","statements":[{"nativeSrc":"7466:26:97","nodeType":"YulAssignment","src":"7466:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"7478:9:97","nodeType":"YulIdentifier","src":"7478:9:97"},{"kind":"number","nativeSrc":"7489:2:97","nodeType":"YulLiteral","src":"7489:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7474:3:97","nodeType":"YulIdentifier","src":"7474:3:97"},"nativeSrc":"7474:18:97","nodeType":"YulFunctionCall","src":"7474:18:97"},"variableNames":[{"name":"tail","nativeSrc":"7466:4:97","nodeType":"YulIdentifier","src":"7466:4:97"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"7532:6:97","nodeType":"YulIdentifier","src":"7532:6:97"},{"name":"headStart","nativeSrc":"7540:9:97","nodeType":"YulIdentifier","src":"7540:9:97"}],"functionName":{"name":"abi_encode_struct_MessagingFee","nativeSrc":"7501:30:97","nodeType":"YulIdentifier","src":"7501:30:97"},"nativeSrc":"7501:49:97","nodeType":"YulFunctionCall","src":"7501:49:97"},"nativeSrc":"7501:49:97","nodeType":"YulExpressionStatement","src":"7501:49:97"}]},"name":"abi_encode_tuple_t_struct$_MessagingFee_$879_memory_ptr__to_t_struct$_MessagingFee_$879_memory_ptr__fromStack_reversed","nativeSrc":"7297:259:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7425:9:97","nodeType":"YulTypedName","src":"7425:9:97","type":""},{"name":"value0","nativeSrc":"7436:6:97","nodeType":"YulTypedName","src":"7436:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7447:4:97","nodeType":"YulTypedName","src":"7447:4:97","type":""}],"src":"7297:259:97"},{"body":{"nativeSrc":"7662:76:97","nodeType":"YulBlock","src":"7662:76:97","statements":[{"nativeSrc":"7672:26:97","nodeType":"YulAssignment","src":"7672:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"7684:9:97","nodeType":"YulIdentifier","src":"7684:9:97"},{"kind":"number","nativeSrc":"7695:2:97","nodeType":"YulLiteral","src":"7695:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7680:3:97","nodeType":"YulIdentifier","src":"7680:3:97"},"nativeSrc":"7680:18:97","nodeType":"YulFunctionCall","src":"7680:18:97"},"variableNames":[{"name":"tail","nativeSrc":"7672:4:97","nodeType":"YulIdentifier","src":"7672:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7714:9:97","nodeType":"YulIdentifier","src":"7714:9:97"},{"name":"value0","nativeSrc":"7725:6:97","nodeType":"YulIdentifier","src":"7725:6:97"}],"functionName":{"name":"mstore","nativeSrc":"7707:6:97","nodeType":"YulIdentifier","src":"7707:6:97"},"nativeSrc":"7707:25:97","nodeType":"YulFunctionCall","src":"7707:25:97"},"nativeSrc":"7707:25:97","nodeType":"YulExpressionStatement","src":"7707:25:97"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"7561:177:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7631:9:97","nodeType":"YulTypedName","src":"7631:9:97","type":""},{"name":"value0","nativeSrc":"7642:6:97","nodeType":"YulTypedName","src":"7642:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7653:4:97","nodeType":"YulTypedName","src":"7653:4:97","type":""}],"src":"7561:177:97"},{"body":{"nativeSrc":"7816:275:97","nodeType":"YulBlock","src":"7816:275:97","statements":[{"body":{"nativeSrc":"7865:16:97","nodeType":"YulBlock","src":"7865:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7874:1:97","nodeType":"YulLiteral","src":"7874:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"7877:1:97","nodeType":"YulLiteral","src":"7877:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7867:6:97","nodeType":"YulIdentifier","src":"7867:6:97"},"nativeSrc":"7867:12:97","nodeType":"YulFunctionCall","src":"7867:12:97"},"nativeSrc":"7867:12:97","nodeType":"YulExpressionStatement","src":"7867:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"7844:6:97","nodeType":"YulIdentifier","src":"7844:6:97"},{"kind":"number","nativeSrc":"7852:4:97","nodeType":"YulLiteral","src":"7852:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"7840:3:97","nodeType":"YulIdentifier","src":"7840:3:97"},"nativeSrc":"7840:17:97","nodeType":"YulFunctionCall","src":"7840:17:97"},{"name":"end","nativeSrc":"7859:3:97","nodeType":"YulIdentifier","src":"7859:3:97"}],"functionName":{"name":"slt","nativeSrc":"7836:3:97","nodeType":"YulIdentifier","src":"7836:3:97"},"nativeSrc":"7836:27:97","nodeType":"YulFunctionCall","src":"7836:27:97"}],"functionName":{"name":"iszero","nativeSrc":"7829:6:97","nodeType":"YulIdentifier","src":"7829:6:97"},"nativeSrc":"7829:35:97","nodeType":"YulFunctionCall","src":"7829:35:97"},"nativeSrc":"7826:55:97","nodeType":"YulIf","src":"7826:55:97"},{"nativeSrc":"7890:30:97","nodeType":"YulAssignment","src":"7890:30:97","value":{"arguments":[{"name":"offset","nativeSrc":"7913:6:97","nodeType":"YulIdentifier","src":"7913:6:97"}],"functionName":{"name":"calldataload","nativeSrc":"7900:12:97","nodeType":"YulIdentifier","src":"7900:12:97"},"nativeSrc":"7900:20:97","nodeType":"YulFunctionCall","src":"7900:20:97"},"variableNames":[{"name":"length","nativeSrc":"7890:6:97","nodeType":"YulIdentifier","src":"7890:6:97"}]},{"body":{"nativeSrc":"7963:16:97","nodeType":"YulBlock","src":"7963:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7972:1:97","nodeType":"YulLiteral","src":"7972:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"7975:1:97","nodeType":"YulLiteral","src":"7975:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7965:6:97","nodeType":"YulIdentifier","src":"7965:6:97"},"nativeSrc":"7965:12:97","nodeType":"YulFunctionCall","src":"7965:12:97"},"nativeSrc":"7965:12:97","nodeType":"YulExpressionStatement","src":"7965:12:97"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"7935:6:97","nodeType":"YulIdentifier","src":"7935:6:97"},{"kind":"number","nativeSrc":"7943:18:97","nodeType":"YulLiteral","src":"7943:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7932:2:97","nodeType":"YulIdentifier","src":"7932:2:97"},"nativeSrc":"7932:30:97","nodeType":"YulFunctionCall","src":"7932:30:97"},"nativeSrc":"7929:50:97","nodeType":"YulIf","src":"7929:50:97"},{"nativeSrc":"7988:29:97","nodeType":"YulAssignment","src":"7988:29:97","value":{"arguments":[{"name":"offset","nativeSrc":"8004:6:97","nodeType":"YulIdentifier","src":"8004:6:97"},{"kind":"number","nativeSrc":"8012:4:97","nodeType":"YulLiteral","src":"8012:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8000:3:97","nodeType":"YulIdentifier","src":"8000:3:97"},"nativeSrc":"8000:17:97","nodeType":"YulFunctionCall","src":"8000:17:97"},"variableNames":[{"name":"arrayPos","nativeSrc":"7988:8:97","nodeType":"YulIdentifier","src":"7988:8:97"}]},{"body":{"nativeSrc":"8069:16:97","nodeType":"YulBlock","src":"8069:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8078:1:97","nodeType":"YulLiteral","src":"8078:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"8081:1:97","nodeType":"YulLiteral","src":"8081:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8071:6:97","nodeType":"YulIdentifier","src":"8071:6:97"},"nativeSrc":"8071:12:97","nodeType":"YulFunctionCall","src":"8071:12:97"},"nativeSrc":"8071:12:97","nodeType":"YulExpressionStatement","src":"8071:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"8040:6:97","nodeType":"YulIdentifier","src":"8040:6:97"},{"name":"length","nativeSrc":"8048:6:97","nodeType":"YulIdentifier","src":"8048:6:97"}],"functionName":{"name":"add","nativeSrc":"8036:3:97","nodeType":"YulIdentifier","src":"8036:3:97"},"nativeSrc":"8036:19:97","nodeType":"YulFunctionCall","src":"8036:19:97"},{"kind":"number","nativeSrc":"8057:4:97","nodeType":"YulLiteral","src":"8057:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8032:3:97","nodeType":"YulIdentifier","src":"8032:3:97"},"nativeSrc":"8032:30:97","nodeType":"YulFunctionCall","src":"8032:30:97"},{"name":"end","nativeSrc":"8064:3:97","nodeType":"YulIdentifier","src":"8064:3:97"}],"functionName":{"name":"gt","nativeSrc":"8029:2:97","nodeType":"YulIdentifier","src":"8029:2:97"},"nativeSrc":"8029:39:97","nodeType":"YulFunctionCall","src":"8029:39:97"},"nativeSrc":"8026:59:97","nodeType":"YulIf","src":"8026:59:97"}]},"name":"abi_decode_string_calldata","nativeSrc":"7743:348:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7779:6:97","nodeType":"YulTypedName","src":"7779:6:97","type":""},{"name":"end","nativeSrc":"7787:3:97","nodeType":"YulTypedName","src":"7787:3:97","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"7795:8:97","nodeType":"YulTypedName","src":"7795:8:97","type":""},{"name":"length","nativeSrc":"7805:6:97","nodeType":"YulTypedName","src":"7805:6:97","type":""}],"src":"7743:348:97"},{"body":{"nativeSrc":"8186:321:97","nodeType":"YulBlock","src":"8186:321:97","statements":[{"body":{"nativeSrc":"8232:16:97","nodeType":"YulBlock","src":"8232:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8241:1:97","nodeType":"YulLiteral","src":"8241:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"8244:1:97","nodeType":"YulLiteral","src":"8244:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8234:6:97","nodeType":"YulIdentifier","src":"8234:6:97"},"nativeSrc":"8234:12:97","nodeType":"YulFunctionCall","src":"8234:12:97"},"nativeSrc":"8234:12:97","nodeType":"YulExpressionStatement","src":"8234:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8207:7:97","nodeType":"YulIdentifier","src":"8207:7:97"},{"name":"headStart","nativeSrc":"8216:9:97","nodeType":"YulIdentifier","src":"8216:9:97"}],"functionName":{"name":"sub","nativeSrc":"8203:3:97","nodeType":"YulIdentifier","src":"8203:3:97"},"nativeSrc":"8203:23:97","nodeType":"YulFunctionCall","src":"8203:23:97"},{"kind":"number","nativeSrc":"8228:2:97","nodeType":"YulLiteral","src":"8228:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"8199:3:97","nodeType":"YulIdentifier","src":"8199:3:97"},"nativeSrc":"8199:32:97","nodeType":"YulFunctionCall","src":"8199:32:97"},"nativeSrc":"8196:52:97","nodeType":"YulIf","src":"8196:52:97"},{"nativeSrc":"8257:37:97","nodeType":"YulVariableDeclaration","src":"8257:37:97","value":{"arguments":[{"name":"headStart","nativeSrc":"8284:9:97","nodeType":"YulIdentifier","src":"8284:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"8271:12:97","nodeType":"YulIdentifier","src":"8271:12:97"},"nativeSrc":"8271:23:97","nodeType":"YulFunctionCall","src":"8271:23:97"},"variables":[{"name":"offset","nativeSrc":"8261:6:97","nodeType":"YulTypedName","src":"8261:6:97","type":""}]},{"body":{"nativeSrc":"8337:16:97","nodeType":"YulBlock","src":"8337:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8346:1:97","nodeType":"YulLiteral","src":"8346:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"8349:1:97","nodeType":"YulLiteral","src":"8349:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8339:6:97","nodeType":"YulIdentifier","src":"8339:6:97"},"nativeSrc":"8339:12:97","nodeType":"YulFunctionCall","src":"8339:12:97"},"nativeSrc":"8339:12:97","nodeType":"YulExpressionStatement","src":"8339:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"8309:6:97","nodeType":"YulIdentifier","src":"8309:6:97"},{"kind":"number","nativeSrc":"8317:18:97","nodeType":"YulLiteral","src":"8317:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8306:2:97","nodeType":"YulIdentifier","src":"8306:2:97"},"nativeSrc":"8306:30:97","nodeType":"YulFunctionCall","src":"8306:30:97"},"nativeSrc":"8303:50:97","nodeType":"YulIf","src":"8303:50:97"},{"nativeSrc":"8362:85:97","nodeType":"YulVariableDeclaration","src":"8362:85:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8419:9:97","nodeType":"YulIdentifier","src":"8419:9:97"},{"name":"offset","nativeSrc":"8430:6:97","nodeType":"YulIdentifier","src":"8430:6:97"}],"functionName":{"name":"add","nativeSrc":"8415:3:97","nodeType":"YulIdentifier","src":"8415:3:97"},"nativeSrc":"8415:22:97","nodeType":"YulFunctionCall","src":"8415:22:97"},{"name":"dataEnd","nativeSrc":"8439:7:97","nodeType":"YulIdentifier","src":"8439:7:97"}],"functionName":{"name":"abi_decode_string_calldata","nativeSrc":"8388:26:97","nodeType":"YulIdentifier","src":"8388:26:97"},"nativeSrc":"8388:59:97","nodeType":"YulFunctionCall","src":"8388:59:97"},"variables":[{"name":"value0_1","nativeSrc":"8366:8:97","nodeType":"YulTypedName","src":"8366:8:97","type":""},{"name":"value1_1","nativeSrc":"8376:8:97","nodeType":"YulTypedName","src":"8376:8:97","type":""}]},{"nativeSrc":"8456:18:97","nodeType":"YulAssignment","src":"8456:18:97","value":{"name":"value0_1","nativeSrc":"8466:8:97","nodeType":"YulIdentifier","src":"8466:8:97"},"variableNames":[{"name":"value0","nativeSrc":"8456:6:97","nodeType":"YulIdentifier","src":"8456:6:97"}]},{"nativeSrc":"8483:18:97","nodeType":"YulAssignment","src":"8483:18:97","value":{"name":"value1_1","nativeSrc":"8493:8:97","nodeType":"YulIdentifier","src":"8493:8:97"},"variableNames":[{"name":"value1","nativeSrc":"8483:6:97","nodeType":"YulIdentifier","src":"8483:6:97"}]}]},"name":"abi_decode_tuple_t_string_calldata_ptr","nativeSrc":"8096:411:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8144:9:97","nodeType":"YulTypedName","src":"8144:9:97","type":""},{"name":"dataEnd","nativeSrc":"8155:7:97","nodeType":"YulTypedName","src":"8155:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8167:6:97","nodeType":"YulTypedName","src":"8167:6:97","type":""},{"name":"value1","nativeSrc":"8175:6:97","nodeType":"YulTypedName","src":"8175:6:97","type":""}],"src":"8096:411:97"},{"body":{"nativeSrc":"8556:83:97","nodeType":"YulBlock","src":"8556:83:97","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"8573:3:97","nodeType":"YulIdentifier","src":"8573:3:97"},{"arguments":[{"name":"value","nativeSrc":"8582:5:97","nodeType":"YulIdentifier","src":"8582:5:97"},{"kind":"number","nativeSrc":"8589:42:97","nodeType":"YulLiteral","src":"8589:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"8578:3:97","nodeType":"YulIdentifier","src":"8578:3:97"},"nativeSrc":"8578:54:97","nodeType":"YulFunctionCall","src":"8578:54:97"}],"functionName":{"name":"mstore","nativeSrc":"8566:6:97","nodeType":"YulIdentifier","src":"8566:6:97"},"nativeSrc":"8566:67:97","nodeType":"YulFunctionCall","src":"8566:67:97"},"nativeSrc":"8566:67:97","nodeType":"YulExpressionStatement","src":"8566:67:97"}]},"name":"abi_encode_address","nativeSrc":"8512:127:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8540:5:97","nodeType":"YulTypedName","src":"8540:5:97","type":""},{"name":"pos","nativeSrc":"8547:3:97","nodeType":"YulTypedName","src":"8547:3:97","type":""}],"src":"8512:127:97"},{"body":{"nativeSrc":"8813:338:97","nodeType":"YulBlock","src":"8813:338:97","statements":[{"nativeSrc":"8823:27:97","nodeType":"YulAssignment","src":"8823:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"8835:9:97","nodeType":"YulIdentifier","src":"8835:9:97"},{"kind":"number","nativeSrc":"8846:3:97","nodeType":"YulLiteral","src":"8846:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"8831:3:97","nodeType":"YulIdentifier","src":"8831:3:97"},"nativeSrc":"8831:19:97","nodeType":"YulFunctionCall","src":"8831:19:97"},"variableNames":[{"name":"tail","nativeSrc":"8823:4:97","nodeType":"YulIdentifier","src":"8823:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8866:9:97","nodeType":"YulIdentifier","src":"8866:9:97"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"8897:6:97","nodeType":"YulIdentifier","src":"8897:6:97"}],"functionName":{"name":"mload","nativeSrc":"8891:5:97","nodeType":"YulIdentifier","src":"8891:5:97"},"nativeSrc":"8891:13:97","nodeType":"YulFunctionCall","src":"8891:13:97"}],"functionName":{"name":"iszero","nativeSrc":"8884:6:97","nodeType":"YulIdentifier","src":"8884:6:97"},"nativeSrc":"8884:21:97","nodeType":"YulFunctionCall","src":"8884:21:97"}],"functionName":{"name":"iszero","nativeSrc":"8877:6:97","nodeType":"YulIdentifier","src":"8877:6:97"},"nativeSrc":"8877:29:97","nodeType":"YulFunctionCall","src":"8877:29:97"}],"functionName":{"name":"mstore","nativeSrc":"8859:6:97","nodeType":"YulIdentifier","src":"8859:6:97"},"nativeSrc":"8859:48:97","nodeType":"YulFunctionCall","src":"8859:48:97"},"nativeSrc":"8859:48:97","nodeType":"YulExpressionStatement","src":"8859:48:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8927:9:97","nodeType":"YulIdentifier","src":"8927:9:97"},{"kind":"number","nativeSrc":"8938:4:97","nodeType":"YulLiteral","src":"8938:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8923:3:97","nodeType":"YulIdentifier","src":"8923:3:97"},"nativeSrc":"8923:20:97","nodeType":"YulFunctionCall","src":"8923:20:97"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"8955:6:97","nodeType":"YulIdentifier","src":"8955:6:97"},{"kind":"number","nativeSrc":"8963:4:97","nodeType":"YulLiteral","src":"8963:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8951:3:97","nodeType":"YulIdentifier","src":"8951:3:97"},"nativeSrc":"8951:17:97","nodeType":"YulFunctionCall","src":"8951:17:97"}],"functionName":{"name":"mload","nativeSrc":"8945:5:97","nodeType":"YulIdentifier","src":"8945:5:97"},"nativeSrc":"8945:24:97","nodeType":"YulFunctionCall","src":"8945:24:97"}],"functionName":{"name":"mstore","nativeSrc":"8916:6:97","nodeType":"YulIdentifier","src":"8916:6:97"},"nativeSrc":"8916:54:97","nodeType":"YulFunctionCall","src":"8916:54:97"},"nativeSrc":"8916:54:97","nodeType":"YulExpressionStatement","src":"8916:54:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8990:9:97","nodeType":"YulIdentifier","src":"8990:9:97"},{"kind":"number","nativeSrc":"9001:4:97","nodeType":"YulLiteral","src":"9001:4:97","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"8986:3:97","nodeType":"YulIdentifier","src":"8986:3:97"},"nativeSrc":"8986:20:97","nodeType":"YulFunctionCall","src":"8986:20:97"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"9018:6:97","nodeType":"YulIdentifier","src":"9018:6:97"},{"kind":"number","nativeSrc":"9026:4:97","nodeType":"YulLiteral","src":"9026:4:97","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"9014:3:97","nodeType":"YulIdentifier","src":"9014:3:97"},"nativeSrc":"9014:17:97","nodeType":"YulFunctionCall","src":"9014:17:97"}],"functionName":{"name":"mload","nativeSrc":"9008:5:97","nodeType":"YulIdentifier","src":"9008:5:97"},"nativeSrc":"9008:24:97","nodeType":"YulFunctionCall","src":"9008:24:97"}],"functionName":{"name":"mstore","nativeSrc":"8979:6:97","nodeType":"YulIdentifier","src":"8979:6:97"},"nativeSrc":"8979:54:97","nodeType":"YulFunctionCall","src":"8979:54:97"},"nativeSrc":"8979:54:97","nodeType":"YulExpressionStatement","src":"8979:54:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9053:9:97","nodeType":"YulIdentifier","src":"9053:9:97"},{"kind":"number","nativeSrc":"9064:4:97","nodeType":"YulLiteral","src":"9064:4:97","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"9049:3:97","nodeType":"YulIdentifier","src":"9049:3:97"},"nativeSrc":"9049:20:97","nodeType":"YulFunctionCall","src":"9049:20:97"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"9085:6:97","nodeType":"YulIdentifier","src":"9085:6:97"},{"kind":"number","nativeSrc":"9093:4:97","nodeType":"YulLiteral","src":"9093:4:97","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"9081:3:97","nodeType":"YulIdentifier","src":"9081:3:97"},"nativeSrc":"9081:17:97","nodeType":"YulFunctionCall","src":"9081:17:97"}],"functionName":{"name":"mload","nativeSrc":"9075:5:97","nodeType":"YulIdentifier","src":"9075:5:97"},"nativeSrc":"9075:24:97","nodeType":"YulFunctionCall","src":"9075:24:97"},{"kind":"number","nativeSrc":"9101:42:97","nodeType":"YulLiteral","src":"9101:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"9071:3:97","nodeType":"YulIdentifier","src":"9071:3:97"},"nativeSrc":"9071:73:97","nodeType":"YulFunctionCall","src":"9071:73:97"}],"functionName":{"name":"mstore","nativeSrc":"9042:6:97","nodeType":"YulIdentifier","src":"9042:6:97"},"nativeSrc":"9042:103:97","nodeType":"YulFunctionCall","src":"9042:103:97"},"nativeSrc":"9042:103:97","nodeType":"YulExpressionStatement","src":"9042:103:97"}]},"name":"abi_encode_tuple_t_struct$_RiskParamConfig_$16859_memory_ptr__to_t_struct$_RiskParamConfig_$16859_memory_ptr__fromStack_reversed","nativeSrc":"8644:507:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8782:9:97","nodeType":"YulTypedName","src":"8782:9:97","type":""},{"name":"value0","nativeSrc":"8793:6:97","nodeType":"YulTypedName","src":"8793:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8804:4:97","nodeType":"YulTypedName","src":"8804:4:97","type":""}],"src":"8644:507:97"},{"body":{"nativeSrc":"9226:110:97","nodeType":"YulBlock","src":"9226:110:97","statements":[{"body":{"nativeSrc":"9272:16:97","nodeType":"YulBlock","src":"9272:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9281:1:97","nodeType":"YulLiteral","src":"9281:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"9284:1:97","nodeType":"YulLiteral","src":"9284:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9274:6:97","nodeType":"YulIdentifier","src":"9274:6:97"},"nativeSrc":"9274:12:97","nodeType":"YulFunctionCall","src":"9274:12:97"},"nativeSrc":"9274:12:97","nodeType":"YulExpressionStatement","src":"9274:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9247:7:97","nodeType":"YulIdentifier","src":"9247:7:97"},{"name":"headStart","nativeSrc":"9256:9:97","nodeType":"YulIdentifier","src":"9256:9:97"}],"functionName":{"name":"sub","nativeSrc":"9243:3:97","nodeType":"YulIdentifier","src":"9243:3:97"},"nativeSrc":"9243:23:97","nodeType":"YulFunctionCall","src":"9243:23:97"},{"kind":"number","nativeSrc":"9268:2:97","nodeType":"YulLiteral","src":"9268:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"9239:3:97","nodeType":"YulIdentifier","src":"9239:3:97"},"nativeSrc":"9239:32:97","nodeType":"YulFunctionCall","src":"9239:32:97"},"nativeSrc":"9236:52:97","nodeType":"YulIf","src":"9236:52:97"},{"nativeSrc":"9297:33:97","nodeType":"YulAssignment","src":"9297:33:97","value":{"arguments":[{"name":"headStart","nativeSrc":"9320:9:97","nodeType":"YulIdentifier","src":"9320:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"9307:12:97","nodeType":"YulIdentifier","src":"9307:12:97"},"nativeSrc":"9307:23:97","nodeType":"YulFunctionCall","src":"9307:23:97"},"variableNames":[{"name":"value0","nativeSrc":"9297:6:97","nodeType":"YulIdentifier","src":"9297:6:97"}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"9156:180:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9192:9:97","nodeType":"YulTypedName","src":"9192:9:97","type":""},{"name":"dataEnd","nativeSrc":"9203:7:97","nodeType":"YulTypedName","src":"9203:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9215:6:97","nodeType":"YulTypedName","src":"9215:6:97","type":""}],"src":"9156:180:97"},{"body":{"nativeSrc":"9436:92:97","nodeType":"YulBlock","src":"9436:92:97","statements":[{"nativeSrc":"9446:26:97","nodeType":"YulAssignment","src":"9446:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"9458:9:97","nodeType":"YulIdentifier","src":"9458:9:97"},{"kind":"number","nativeSrc":"9469:2:97","nodeType":"YulLiteral","src":"9469:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9454:3:97","nodeType":"YulIdentifier","src":"9454:3:97"},"nativeSrc":"9454:18:97","nodeType":"YulFunctionCall","src":"9454:18:97"},"variableNames":[{"name":"tail","nativeSrc":"9446:4:97","nodeType":"YulIdentifier","src":"9446:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"9488:9:97","nodeType":"YulIdentifier","src":"9488:9:97"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"9513:6:97","nodeType":"YulIdentifier","src":"9513:6:97"}],"functionName":{"name":"iszero","nativeSrc":"9506:6:97","nodeType":"YulIdentifier","src":"9506:6:97"},"nativeSrc":"9506:14:97","nodeType":"YulFunctionCall","src":"9506:14:97"}],"functionName":{"name":"iszero","nativeSrc":"9499:6:97","nodeType":"YulIdentifier","src":"9499:6:97"},"nativeSrc":"9499:22:97","nodeType":"YulFunctionCall","src":"9499:22:97"}],"functionName":{"name":"mstore","nativeSrc":"9481:6:97","nodeType":"YulIdentifier","src":"9481:6:97"},"nativeSrc":"9481:41:97","nodeType":"YulFunctionCall","src":"9481:41:97"},"nativeSrc":"9481:41:97","nodeType":"YulExpressionStatement","src":"9481:41:97"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"9341:187:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9405:9:97","nodeType":"YulTypedName","src":"9405:9:97","type":""},{"name":"value0","nativeSrc":"9416:6:97","nodeType":"YulTypedName","src":"9416:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9427:4:97","nodeType":"YulTypedName","src":"9427:4:97","type":""}],"src":"9341:187:97"},{"body":{"nativeSrc":"9619:227:97","nodeType":"YulBlock","src":"9619:227:97","statements":[{"body":{"nativeSrc":"9665:16:97","nodeType":"YulBlock","src":"9665:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9674:1:97","nodeType":"YulLiteral","src":"9674:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"9677:1:97","nodeType":"YulLiteral","src":"9677:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9667:6:97","nodeType":"YulIdentifier","src":"9667:6:97"},"nativeSrc":"9667:12:97","nodeType":"YulFunctionCall","src":"9667:12:97"},"nativeSrc":"9667:12:97","nodeType":"YulExpressionStatement","src":"9667:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9640:7:97","nodeType":"YulIdentifier","src":"9640:7:97"},{"name":"headStart","nativeSrc":"9649:9:97","nodeType":"YulIdentifier","src":"9649:9:97"}],"functionName":{"name":"sub","nativeSrc":"9636:3:97","nodeType":"YulIdentifier","src":"9636:3:97"},"nativeSrc":"9636:23:97","nodeType":"YulFunctionCall","src":"9636:23:97"},{"kind":"number","nativeSrc":"9661:2:97","nodeType":"YulLiteral","src":"9661:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"9632:3:97","nodeType":"YulIdentifier","src":"9632:3:97"},"nativeSrc":"9632:32:97","nodeType":"YulFunctionCall","src":"9632:32:97"},"nativeSrc":"9629:52:97","nodeType":"YulIf","src":"9629:52:97"},{"nativeSrc":"9690:36:97","nodeType":"YulVariableDeclaration","src":"9690:36:97","value":{"arguments":[{"name":"headStart","nativeSrc":"9716:9:97","nodeType":"YulIdentifier","src":"9716:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"9703:12:97","nodeType":"YulIdentifier","src":"9703:12:97"},"nativeSrc":"9703:23:97","nodeType":"YulFunctionCall","src":"9703:23:97"},"variables":[{"name":"value","nativeSrc":"9694:5:97","nodeType":"YulTypedName","src":"9694:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"9759:5:97","nodeType":"YulIdentifier","src":"9759:5:97"}],"functionName":{"name":"validator_revert_uint32","nativeSrc":"9735:23:97","nodeType":"YulIdentifier","src":"9735:23:97"},"nativeSrc":"9735:30:97","nodeType":"YulFunctionCall","src":"9735:30:97"},"nativeSrc":"9735:30:97","nodeType":"YulExpressionStatement","src":"9735:30:97"},{"nativeSrc":"9774:15:97","nodeType":"YulAssignment","src":"9774:15:97","value":{"name":"value","nativeSrc":"9784:5:97","nodeType":"YulIdentifier","src":"9784:5:97"},"variableNames":[{"name":"value0","nativeSrc":"9774:6:97","nodeType":"YulIdentifier","src":"9774:6:97"}]},{"nativeSrc":"9798:42:97","nodeType":"YulAssignment","src":"9798:42:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9825:9:97","nodeType":"YulIdentifier","src":"9825:9:97"},{"kind":"number","nativeSrc":"9836:2:97","nodeType":"YulLiteral","src":"9836:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9821:3:97","nodeType":"YulIdentifier","src":"9821:3:97"},"nativeSrc":"9821:18:97","nodeType":"YulFunctionCall","src":"9821:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"9808:12:97","nodeType":"YulIdentifier","src":"9808:12:97"},"nativeSrc":"9808:32:97","nodeType":"YulFunctionCall","src":"9808:32:97"},"variableNames":[{"name":"value1","nativeSrc":"9798:6:97","nodeType":"YulIdentifier","src":"9798:6:97"}]}]},"name":"abi_decode_tuple_t_uint32t_bytes32","nativeSrc":"9533:313:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9577:9:97","nodeType":"YulTypedName","src":"9577:9:97","type":""},{"name":"dataEnd","nativeSrc":"9588:7:97","nodeType":"YulTypedName","src":"9588:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9600:6:97","nodeType":"YulTypedName","src":"9600:6:97","type":""},{"name":"value1","nativeSrc":"9608:6:97","nodeType":"YulTypedName","src":"9608:6:97","type":""}],"src":"9533:313:97"},{"body":{"nativeSrc":"9935:298:97","nodeType":"YulBlock","src":"9935:298:97","statements":[{"body":{"nativeSrc":"9981:16:97","nodeType":"YulBlock","src":"9981:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9990:1:97","nodeType":"YulLiteral","src":"9990:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"9993:1:97","nodeType":"YulLiteral","src":"9993:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9983:6:97","nodeType":"YulIdentifier","src":"9983:6:97"},"nativeSrc":"9983:12:97","nodeType":"YulFunctionCall","src":"9983:12:97"},"nativeSrc":"9983:12:97","nodeType":"YulExpressionStatement","src":"9983:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9956:7:97","nodeType":"YulIdentifier","src":"9956:7:97"},{"name":"headStart","nativeSrc":"9965:9:97","nodeType":"YulIdentifier","src":"9965:9:97"}],"functionName":{"name":"sub","nativeSrc":"9952:3:97","nodeType":"YulIdentifier","src":"9952:3:97"},"nativeSrc":"9952:23:97","nodeType":"YulFunctionCall","src":"9952:23:97"},{"kind":"number","nativeSrc":"9977:2:97","nodeType":"YulLiteral","src":"9977:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"9948:3:97","nodeType":"YulIdentifier","src":"9948:3:97"},"nativeSrc":"9948:32:97","nodeType":"YulFunctionCall","src":"9948:32:97"},"nativeSrc":"9945:52:97","nodeType":"YulIf","src":"9945:52:97"},{"nativeSrc":"10006:36:97","nodeType":"YulVariableDeclaration","src":"10006:36:97","value":{"arguments":[{"name":"headStart","nativeSrc":"10032:9:97","nodeType":"YulIdentifier","src":"10032:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"10019:12:97","nodeType":"YulIdentifier","src":"10019:12:97"},"nativeSrc":"10019:23:97","nodeType":"YulFunctionCall","src":"10019:23:97"},"variables":[{"name":"value","nativeSrc":"10010:5:97","nodeType":"YulTypedName","src":"10010:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"10076:5:97","nodeType":"YulIdentifier","src":"10076:5:97"}],"functionName":{"name":"validator_revert_address","nativeSrc":"10051:24:97","nodeType":"YulIdentifier","src":"10051:24:97"},"nativeSrc":"10051:31:97","nodeType":"YulFunctionCall","src":"10051:31:97"},"nativeSrc":"10051:31:97","nodeType":"YulExpressionStatement","src":"10051:31:97"},{"nativeSrc":"10091:15:97","nodeType":"YulAssignment","src":"10091:15:97","value":{"name":"value","nativeSrc":"10101:5:97","nodeType":"YulIdentifier","src":"10101:5:97"},"variableNames":[{"name":"value0","nativeSrc":"10091:6:97","nodeType":"YulIdentifier","src":"10091:6:97"}]},{"nativeSrc":"10115:47:97","nodeType":"YulVariableDeclaration","src":"10115:47:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10147:9:97","nodeType":"YulIdentifier","src":"10147:9:97"},{"kind":"number","nativeSrc":"10158:2:97","nodeType":"YulLiteral","src":"10158:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10143:3:97","nodeType":"YulIdentifier","src":"10143:3:97"},"nativeSrc":"10143:18:97","nodeType":"YulFunctionCall","src":"10143:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"10130:12:97","nodeType":"YulIdentifier","src":"10130:12:97"},"nativeSrc":"10130:32:97","nodeType":"YulFunctionCall","src":"10130:32:97"},"variables":[{"name":"value_1","nativeSrc":"10119:7:97","nodeType":"YulTypedName","src":"10119:7:97","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"10193:7:97","nodeType":"YulIdentifier","src":"10193:7:97"}],"functionName":{"name":"validator_revert_bool","nativeSrc":"10171:21:97","nodeType":"YulIdentifier","src":"10171:21:97"},"nativeSrc":"10171:30:97","nodeType":"YulFunctionCall","src":"10171:30:97"},"nativeSrc":"10171:30:97","nodeType":"YulExpressionStatement","src":"10171:30:97"},{"nativeSrc":"10210:17:97","nodeType":"YulAssignment","src":"10210:17:97","value":{"name":"value_1","nativeSrc":"10220:7:97","nodeType":"YulIdentifier","src":"10220:7:97"},"variableNames":[{"name":"value1","nativeSrc":"10210:6:97","nodeType":"YulIdentifier","src":"10210:6:97"}]}]},"name":"abi_decode_tuple_t_addresst_bool","nativeSrc":"9851:382:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9893:9:97","nodeType":"YulTypedName","src":"9893:9:97","type":""},{"name":"dataEnd","nativeSrc":"9904:7:97","nodeType":"YulTypedName","src":"9904:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9916:6:97","nodeType":"YulTypedName","src":"9916:6:97","type":""},{"name":"value1","nativeSrc":"9924:6:97","nodeType":"YulTypedName","src":"9924:6:97","type":""}],"src":"9851:382:97"},{"body":{"nativeSrc":"10342:436:97","nodeType":"YulBlock","src":"10342:436:97","statements":[{"body":{"nativeSrc":"10388:16:97","nodeType":"YulBlock","src":"10388:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10397:1:97","nodeType":"YulLiteral","src":"10397:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"10400:1:97","nodeType":"YulLiteral","src":"10400:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10390:6:97","nodeType":"YulIdentifier","src":"10390:6:97"},"nativeSrc":"10390:12:97","nodeType":"YulFunctionCall","src":"10390:12:97"},"nativeSrc":"10390:12:97","nodeType":"YulExpressionStatement","src":"10390:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10363:7:97","nodeType":"YulIdentifier","src":"10363:7:97"},{"name":"headStart","nativeSrc":"10372:9:97","nodeType":"YulIdentifier","src":"10372:9:97"}],"functionName":{"name":"sub","nativeSrc":"10359:3:97","nodeType":"YulIdentifier","src":"10359:3:97"},"nativeSrc":"10359:23:97","nodeType":"YulFunctionCall","src":"10359:23:97"},{"kind":"number","nativeSrc":"10384:2:97","nodeType":"YulLiteral","src":"10384:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"10355:3:97","nodeType":"YulIdentifier","src":"10355:3:97"},"nativeSrc":"10355:32:97","nodeType":"YulFunctionCall","src":"10355:32:97"},"nativeSrc":"10352:52:97","nodeType":"YulIf","src":"10352:52:97"},{"nativeSrc":"10413:37:97","nodeType":"YulVariableDeclaration","src":"10413:37:97","value":{"arguments":[{"name":"headStart","nativeSrc":"10440:9:97","nodeType":"YulIdentifier","src":"10440:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"10427:12:97","nodeType":"YulIdentifier","src":"10427:12:97"},"nativeSrc":"10427:23:97","nodeType":"YulFunctionCall","src":"10427:23:97"},"variables":[{"name":"offset","nativeSrc":"10417:6:97","nodeType":"YulTypedName","src":"10417:6:97","type":""}]},{"body":{"nativeSrc":"10493:16:97","nodeType":"YulBlock","src":"10493:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10502:1:97","nodeType":"YulLiteral","src":"10502:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"10505:1:97","nodeType":"YulLiteral","src":"10505:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10495:6:97","nodeType":"YulIdentifier","src":"10495:6:97"},"nativeSrc":"10495:12:97","nodeType":"YulFunctionCall","src":"10495:12:97"},"nativeSrc":"10495:12:97","nodeType":"YulExpressionStatement","src":"10495:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"10465:6:97","nodeType":"YulIdentifier","src":"10465:6:97"},{"kind":"number","nativeSrc":"10473:18:97","nodeType":"YulLiteral","src":"10473:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10462:2:97","nodeType":"YulIdentifier","src":"10462:2:97"},"nativeSrc":"10462:30:97","nodeType":"YulFunctionCall","src":"10462:30:97"},"nativeSrc":"10459:50:97","nodeType":"YulIf","src":"10459:50:97"},{"nativeSrc":"10518:85:97","nodeType":"YulVariableDeclaration","src":"10518:85:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10575:9:97","nodeType":"YulIdentifier","src":"10575:9:97"},{"name":"offset","nativeSrc":"10586:6:97","nodeType":"YulIdentifier","src":"10586:6:97"}],"functionName":{"name":"add","nativeSrc":"10571:3:97","nodeType":"YulIdentifier","src":"10571:3:97"},"nativeSrc":"10571:22:97","nodeType":"YulFunctionCall","src":"10571:22:97"},{"name":"dataEnd","nativeSrc":"10595:7:97","nodeType":"YulIdentifier","src":"10595:7:97"}],"functionName":{"name":"abi_decode_string_calldata","nativeSrc":"10544:26:97","nodeType":"YulIdentifier","src":"10544:26:97"},"nativeSrc":"10544:59:97","nodeType":"YulFunctionCall","src":"10544:59:97"},"variables":[{"name":"value0_1","nativeSrc":"10522:8:97","nodeType":"YulTypedName","src":"10522:8:97","type":""},{"name":"value1_1","nativeSrc":"10532:8:97","nodeType":"YulTypedName","src":"10532:8:97","type":""}]},{"nativeSrc":"10612:18:97","nodeType":"YulAssignment","src":"10612:18:97","value":{"name":"value0_1","nativeSrc":"10622:8:97","nodeType":"YulIdentifier","src":"10622:8:97"},"variableNames":[{"name":"value0","nativeSrc":"10612:6:97","nodeType":"YulIdentifier","src":"10612:6:97"}]},{"nativeSrc":"10639:18:97","nodeType":"YulAssignment","src":"10639:18:97","value":{"name":"value1_1","nativeSrc":"10649:8:97","nodeType":"YulIdentifier","src":"10649:8:97"},"variableNames":[{"name":"value1","nativeSrc":"10639:6:97","nodeType":"YulIdentifier","src":"10639:6:97"}]},{"nativeSrc":"10666:45:97","nodeType":"YulVariableDeclaration","src":"10666:45:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10696:9:97","nodeType":"YulIdentifier","src":"10696:9:97"},{"kind":"number","nativeSrc":"10707:2:97","nodeType":"YulLiteral","src":"10707:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10692:3:97","nodeType":"YulIdentifier","src":"10692:3:97"},"nativeSrc":"10692:18:97","nodeType":"YulFunctionCall","src":"10692:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"10679:12:97","nodeType":"YulIdentifier","src":"10679:12:97"},"nativeSrc":"10679:32:97","nodeType":"YulFunctionCall","src":"10679:32:97"},"variables":[{"name":"value","nativeSrc":"10670:5:97","nodeType":"YulTypedName","src":"10670:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"10742:5:97","nodeType":"YulIdentifier","src":"10742:5:97"}],"functionName":{"name":"validator_revert_bool","nativeSrc":"10720:21:97","nodeType":"YulIdentifier","src":"10720:21:97"},"nativeSrc":"10720:28:97","nodeType":"YulFunctionCall","src":"10720:28:97"},"nativeSrc":"10720:28:97","nodeType":"YulExpressionStatement","src":"10720:28:97"},{"nativeSrc":"10757:15:97","nodeType":"YulAssignment","src":"10757:15:97","value":{"name":"value","nativeSrc":"10767:5:97","nodeType":"YulIdentifier","src":"10767:5:97"},"variableNames":[{"name":"value2","nativeSrc":"10757:6:97","nodeType":"YulIdentifier","src":"10757:6:97"}]}]},"name":"abi_decode_tuple_t_string_calldata_ptrt_bool","nativeSrc":"10238:540:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10292:9:97","nodeType":"YulTypedName","src":"10292:9:97","type":""},{"name":"dataEnd","nativeSrc":"10303:7:97","nodeType":"YulTypedName","src":"10303:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10315:6:97","nodeType":"YulTypedName","src":"10315:6:97","type":""},{"name":"value1","nativeSrc":"10323:6:97","nodeType":"YulTypedName","src":"10323:6:97","type":""},{"name":"value2","nativeSrc":"10331:6:97","nodeType":"YulTypedName","src":"10331:6:97","type":""}],"src":"10238:540:97"},{"body":{"nativeSrc":"10870:301:97","nodeType":"YulBlock","src":"10870:301:97","statements":[{"body":{"nativeSrc":"10916:16:97","nodeType":"YulBlock","src":"10916:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10925:1:97","nodeType":"YulLiteral","src":"10925:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"10928:1:97","nodeType":"YulLiteral","src":"10928:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10918:6:97","nodeType":"YulIdentifier","src":"10918:6:97"},"nativeSrc":"10918:12:97","nodeType":"YulFunctionCall","src":"10918:12:97"},"nativeSrc":"10918:12:97","nodeType":"YulExpressionStatement","src":"10918:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10891:7:97","nodeType":"YulIdentifier","src":"10891:7:97"},{"name":"headStart","nativeSrc":"10900:9:97","nodeType":"YulIdentifier","src":"10900:9:97"}],"functionName":{"name":"sub","nativeSrc":"10887:3:97","nodeType":"YulIdentifier","src":"10887:3:97"},"nativeSrc":"10887:23:97","nodeType":"YulFunctionCall","src":"10887:23:97"},{"kind":"number","nativeSrc":"10912:2:97","nodeType":"YulLiteral","src":"10912:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"10883:3:97","nodeType":"YulIdentifier","src":"10883:3:97"},"nativeSrc":"10883:32:97","nodeType":"YulFunctionCall","src":"10883:32:97"},"nativeSrc":"10880:52:97","nodeType":"YulIf","src":"10880:52:97"},{"nativeSrc":"10941:36:97","nodeType":"YulVariableDeclaration","src":"10941:36:97","value":{"arguments":[{"name":"headStart","nativeSrc":"10967:9:97","nodeType":"YulIdentifier","src":"10967:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"10954:12:97","nodeType":"YulIdentifier","src":"10954:12:97"},"nativeSrc":"10954:23:97","nodeType":"YulFunctionCall","src":"10954:23:97"},"variables":[{"name":"value","nativeSrc":"10945:5:97","nodeType":"YulTypedName","src":"10945:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"11011:5:97","nodeType":"YulIdentifier","src":"11011:5:97"}],"functionName":{"name":"validator_revert_address","nativeSrc":"10986:24:97","nodeType":"YulIdentifier","src":"10986:24:97"},"nativeSrc":"10986:31:97","nodeType":"YulFunctionCall","src":"10986:31:97"},"nativeSrc":"10986:31:97","nodeType":"YulExpressionStatement","src":"10986:31:97"},{"nativeSrc":"11026:15:97","nodeType":"YulAssignment","src":"11026:15:97","value":{"name":"value","nativeSrc":"11036:5:97","nodeType":"YulIdentifier","src":"11036:5:97"},"variableNames":[{"name":"value0","nativeSrc":"11026:6:97","nodeType":"YulIdentifier","src":"11026:6:97"}]},{"nativeSrc":"11050:47:97","nodeType":"YulVariableDeclaration","src":"11050:47:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11082:9:97","nodeType":"YulIdentifier","src":"11082:9:97"},{"kind":"number","nativeSrc":"11093:2:97","nodeType":"YulLiteral","src":"11093:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11078:3:97","nodeType":"YulIdentifier","src":"11078:3:97"},"nativeSrc":"11078:18:97","nodeType":"YulFunctionCall","src":"11078:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"11065:12:97","nodeType":"YulIdentifier","src":"11065:12:97"},"nativeSrc":"11065:32:97","nodeType":"YulFunctionCall","src":"11065:32:97"},"variables":[{"name":"value_1","nativeSrc":"11054:7:97","nodeType":"YulTypedName","src":"11054:7:97","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"11131:7:97","nodeType":"YulIdentifier","src":"11131:7:97"}],"functionName":{"name":"validator_revert_address","nativeSrc":"11106:24:97","nodeType":"YulIdentifier","src":"11106:24:97"},"nativeSrc":"11106:33:97","nodeType":"YulFunctionCall","src":"11106:33:97"},"nativeSrc":"11106:33:97","nodeType":"YulExpressionStatement","src":"11106:33:97"},{"nativeSrc":"11148:17:97","nodeType":"YulAssignment","src":"11148:17:97","value":{"name":"value_1","nativeSrc":"11158:7:97","nodeType":"YulIdentifier","src":"11158:7:97"},"variableNames":[{"name":"value1","nativeSrc":"11148:6:97","nodeType":"YulIdentifier","src":"11148:6:97"}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"10783:388:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10828:9:97","nodeType":"YulTypedName","src":"10828:9:97","type":""},{"name":"dataEnd","nativeSrc":"10839:7:97","nodeType":"YulTypedName","src":"10839:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10851:6:97","nodeType":"YulTypedName","src":"10851:6:97","type":""},{"name":"value1","nativeSrc":"10859:6:97","nodeType":"YulTypedName","src":"10859:6:97","type":""}],"src":"10783:388:97"},{"body":{"nativeSrc":"11219:51:97","nodeType":"YulBlock","src":"11219:51:97","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"11236:3:97","nodeType":"YulIdentifier","src":"11236:3:97"},{"arguments":[{"name":"value","nativeSrc":"11245:5:97","nodeType":"YulIdentifier","src":"11245:5:97"},{"kind":"number","nativeSrc":"11252:10:97","nodeType":"YulLiteral","src":"11252:10:97","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nativeSrc":"11241:3:97","nodeType":"YulIdentifier","src":"11241:3:97"},"nativeSrc":"11241:22:97","nodeType":"YulFunctionCall","src":"11241:22:97"}],"functionName":{"name":"mstore","nativeSrc":"11229:6:97","nodeType":"YulIdentifier","src":"11229:6:97"},"nativeSrc":"11229:35:97","nodeType":"YulFunctionCall","src":"11229:35:97"},"nativeSrc":"11229:35:97","nodeType":"YulExpressionStatement","src":"11229:35:97"}]},"name":"abi_encode_uint32","nativeSrc":"11176:94:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11203:5:97","nodeType":"YulTypedName","src":"11203:5:97","type":""},{"name":"pos","nativeSrc":"11210:3:97","nodeType":"YulTypedName","src":"11210:3:97","type":""}],"src":"11176:94:97"},{"body":{"nativeSrc":"11374:93:97","nodeType":"YulBlock","src":"11374:93:97","statements":[{"nativeSrc":"11384:26:97","nodeType":"YulAssignment","src":"11384:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"11396:9:97","nodeType":"YulIdentifier","src":"11396:9:97"},{"kind":"number","nativeSrc":"11407:2:97","nodeType":"YulLiteral","src":"11407:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11392:3:97","nodeType":"YulIdentifier","src":"11392:3:97"},"nativeSrc":"11392:18:97","nodeType":"YulFunctionCall","src":"11392:18:97"},"variableNames":[{"name":"tail","nativeSrc":"11384:4:97","nodeType":"YulIdentifier","src":"11384:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"11426:9:97","nodeType":"YulIdentifier","src":"11426:9:97"},{"arguments":[{"name":"value0","nativeSrc":"11441:6:97","nodeType":"YulIdentifier","src":"11441:6:97"},{"kind":"number","nativeSrc":"11449:10:97","nodeType":"YulLiteral","src":"11449:10:97","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nativeSrc":"11437:3:97","nodeType":"YulIdentifier","src":"11437:3:97"},"nativeSrc":"11437:23:97","nodeType":"YulFunctionCall","src":"11437:23:97"}],"functionName":{"name":"mstore","nativeSrc":"11419:6:97","nodeType":"YulIdentifier","src":"11419:6:97"},"nativeSrc":"11419:42:97","nodeType":"YulFunctionCall","src":"11419:42:97"},"nativeSrc":"11419:42:97","nodeType":"YulExpressionStatement","src":"11419:42:97"}]},"name":"abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed","nativeSrc":"11275:192:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11343:9:97","nodeType":"YulTypedName","src":"11343:9:97","type":""},{"name":"value0","nativeSrc":"11354:6:97","nodeType":"YulTypedName","src":"11354:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11365:4:97","nodeType":"YulTypedName","src":"11365:4:97","type":""}],"src":"11275:192:97"},{"body":{"nativeSrc":"11559:228:97","nodeType":"YulBlock","src":"11559:228:97","statements":[{"body":{"nativeSrc":"11605:16:97","nodeType":"YulBlock","src":"11605:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11614:1:97","nodeType":"YulLiteral","src":"11614:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"11617:1:97","nodeType":"YulLiteral","src":"11617:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11607:6:97","nodeType":"YulIdentifier","src":"11607:6:97"},"nativeSrc":"11607:12:97","nodeType":"YulFunctionCall","src":"11607:12:97"},"nativeSrc":"11607:12:97","nodeType":"YulExpressionStatement","src":"11607:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11580:7:97","nodeType":"YulIdentifier","src":"11580:7:97"},{"name":"headStart","nativeSrc":"11589:9:97","nodeType":"YulIdentifier","src":"11589:9:97"}],"functionName":{"name":"sub","nativeSrc":"11576:3:97","nodeType":"YulIdentifier","src":"11576:3:97"},"nativeSrc":"11576:23:97","nodeType":"YulFunctionCall","src":"11576:23:97"},{"kind":"number","nativeSrc":"11601:2:97","nodeType":"YulLiteral","src":"11601:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"11572:3:97","nodeType":"YulIdentifier","src":"11572:3:97"},"nativeSrc":"11572:32:97","nodeType":"YulFunctionCall","src":"11572:32:97"},"nativeSrc":"11569:52:97","nodeType":"YulIf","src":"11569:52:97"},{"nativeSrc":"11630:33:97","nodeType":"YulAssignment","src":"11630:33:97","value":{"arguments":[{"name":"headStart","nativeSrc":"11653:9:97","nodeType":"YulIdentifier","src":"11653:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"11640:12:97","nodeType":"YulIdentifier","src":"11640:12:97"},"nativeSrc":"11640:23:97","nodeType":"YulFunctionCall","src":"11640:23:97"},"variableNames":[{"name":"value0","nativeSrc":"11630:6:97","nodeType":"YulIdentifier","src":"11630:6:97"}]},{"nativeSrc":"11672:45:97","nodeType":"YulVariableDeclaration","src":"11672:45:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11702:9:97","nodeType":"YulIdentifier","src":"11702:9:97"},{"kind":"number","nativeSrc":"11713:2:97","nodeType":"YulLiteral","src":"11713:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11698:3:97","nodeType":"YulIdentifier","src":"11698:3:97"},"nativeSrc":"11698:18:97","nodeType":"YulFunctionCall","src":"11698:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"11685:12:97","nodeType":"YulIdentifier","src":"11685:12:97"},"nativeSrc":"11685:32:97","nodeType":"YulFunctionCall","src":"11685:32:97"},"variables":[{"name":"value","nativeSrc":"11676:5:97","nodeType":"YulTypedName","src":"11676:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"11751:5:97","nodeType":"YulIdentifier","src":"11751:5:97"}],"functionName":{"name":"validator_revert_address","nativeSrc":"11726:24:97","nodeType":"YulIdentifier","src":"11726:24:97"},"nativeSrc":"11726:31:97","nodeType":"YulFunctionCall","src":"11726:31:97"},"nativeSrc":"11726:31:97","nodeType":"YulExpressionStatement","src":"11726:31:97"},{"nativeSrc":"11766:15:97","nodeType":"YulAssignment","src":"11766:15:97","value":{"name":"value","nativeSrc":"11776:5:97","nodeType":"YulIdentifier","src":"11776:5:97"},"variableNames":[{"name":"value1","nativeSrc":"11766:6:97","nodeType":"YulIdentifier","src":"11766:6:97"}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nativeSrc":"11472:315:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11517:9:97","nodeType":"YulTypedName","src":"11517:9:97","type":""},{"name":"dataEnd","nativeSrc":"11528:7:97","nodeType":"YulTypedName","src":"11528:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11540:6:97","nodeType":"YulTypedName","src":"11540:6:97","type":""},{"name":"value1","nativeSrc":"11548:6:97","nodeType":"YulTypedName","src":"11548:6:97","type":""}],"src":"11472:315:97"},{"body":{"nativeSrc":"11899:439:97","nodeType":"YulBlock","src":"11899:439:97","statements":[{"body":{"nativeSrc":"11945:16:97","nodeType":"YulBlock","src":"11945:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11954:1:97","nodeType":"YulLiteral","src":"11954:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"11957:1:97","nodeType":"YulLiteral","src":"11957:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11947:6:97","nodeType":"YulIdentifier","src":"11947:6:97"},"nativeSrc":"11947:12:97","nodeType":"YulFunctionCall","src":"11947:12:97"},"nativeSrc":"11947:12:97","nodeType":"YulExpressionStatement","src":"11947:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11920:7:97","nodeType":"YulIdentifier","src":"11920:7:97"},{"name":"headStart","nativeSrc":"11929:9:97","nodeType":"YulIdentifier","src":"11929:9:97"}],"functionName":{"name":"sub","nativeSrc":"11916:3:97","nodeType":"YulIdentifier","src":"11916:3:97"},"nativeSrc":"11916:23:97","nodeType":"YulFunctionCall","src":"11916:23:97"},{"kind":"number","nativeSrc":"11941:2:97","nodeType":"YulLiteral","src":"11941:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"11912:3:97","nodeType":"YulIdentifier","src":"11912:3:97"},"nativeSrc":"11912:32:97","nodeType":"YulFunctionCall","src":"11912:32:97"},"nativeSrc":"11909:52:97","nodeType":"YulIf","src":"11909:52:97"},{"nativeSrc":"11970:37:97","nodeType":"YulVariableDeclaration","src":"11970:37:97","value":{"arguments":[{"name":"headStart","nativeSrc":"11997:9:97","nodeType":"YulIdentifier","src":"11997:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"11984:12:97","nodeType":"YulIdentifier","src":"11984:12:97"},"nativeSrc":"11984:23:97","nodeType":"YulFunctionCall","src":"11984:23:97"},"variables":[{"name":"offset","nativeSrc":"11974:6:97","nodeType":"YulTypedName","src":"11974:6:97","type":""}]},{"body":{"nativeSrc":"12050:16:97","nodeType":"YulBlock","src":"12050:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12059:1:97","nodeType":"YulLiteral","src":"12059:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"12062:1:97","nodeType":"YulLiteral","src":"12062:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12052:6:97","nodeType":"YulIdentifier","src":"12052:6:97"},"nativeSrc":"12052:12:97","nodeType":"YulFunctionCall","src":"12052:12:97"},"nativeSrc":"12052:12:97","nodeType":"YulExpressionStatement","src":"12052:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"12022:6:97","nodeType":"YulIdentifier","src":"12022:6:97"},{"kind":"number","nativeSrc":"12030:18:97","nodeType":"YulLiteral","src":"12030:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"12019:2:97","nodeType":"YulIdentifier","src":"12019:2:97"},"nativeSrc":"12019:30:97","nodeType":"YulFunctionCall","src":"12019:30:97"},"nativeSrc":"12016:50:97","nodeType":"YulIf","src":"12016:50:97"},{"nativeSrc":"12075:85:97","nodeType":"YulVariableDeclaration","src":"12075:85:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12132:9:97","nodeType":"YulIdentifier","src":"12132:9:97"},{"name":"offset","nativeSrc":"12143:6:97","nodeType":"YulIdentifier","src":"12143:6:97"}],"functionName":{"name":"add","nativeSrc":"12128:3:97","nodeType":"YulIdentifier","src":"12128:3:97"},"nativeSrc":"12128:22:97","nodeType":"YulFunctionCall","src":"12128:22:97"},{"name":"dataEnd","nativeSrc":"12152:7:97","nodeType":"YulIdentifier","src":"12152:7:97"}],"functionName":{"name":"abi_decode_string_calldata","nativeSrc":"12101:26:97","nodeType":"YulIdentifier","src":"12101:26:97"},"nativeSrc":"12101:59:97","nodeType":"YulFunctionCall","src":"12101:59:97"},"variables":[{"name":"value0_1","nativeSrc":"12079:8:97","nodeType":"YulTypedName","src":"12079:8:97","type":""},{"name":"value1_1","nativeSrc":"12089:8:97","nodeType":"YulTypedName","src":"12089:8:97","type":""}]},{"nativeSrc":"12169:18:97","nodeType":"YulAssignment","src":"12169:18:97","value":{"name":"value0_1","nativeSrc":"12179:8:97","nodeType":"YulIdentifier","src":"12179:8:97"},"variableNames":[{"name":"value0","nativeSrc":"12169:6:97","nodeType":"YulIdentifier","src":"12169:6:97"}]},{"nativeSrc":"12196:18:97","nodeType":"YulAssignment","src":"12196:18:97","value":{"name":"value1_1","nativeSrc":"12206:8:97","nodeType":"YulIdentifier","src":"12206:8:97"},"variableNames":[{"name":"value1","nativeSrc":"12196:6:97","nodeType":"YulIdentifier","src":"12196:6:97"}]},{"nativeSrc":"12223:45:97","nodeType":"YulVariableDeclaration","src":"12223:45:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12253:9:97","nodeType":"YulIdentifier","src":"12253:9:97"},{"kind":"number","nativeSrc":"12264:2:97","nodeType":"YulLiteral","src":"12264:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12249:3:97","nodeType":"YulIdentifier","src":"12249:3:97"},"nativeSrc":"12249:18:97","nodeType":"YulFunctionCall","src":"12249:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"12236:12:97","nodeType":"YulIdentifier","src":"12236:12:97"},"nativeSrc":"12236:32:97","nodeType":"YulFunctionCall","src":"12236:32:97"},"variables":[{"name":"value","nativeSrc":"12227:5:97","nodeType":"YulTypedName","src":"12227:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"12302:5:97","nodeType":"YulIdentifier","src":"12302:5:97"}],"functionName":{"name":"validator_revert_address","nativeSrc":"12277:24:97","nodeType":"YulIdentifier","src":"12277:24:97"},"nativeSrc":"12277:31:97","nodeType":"YulFunctionCall","src":"12277:31:97"},"nativeSrc":"12277:31:97","nodeType":"YulExpressionStatement","src":"12277:31:97"},{"nativeSrc":"12317:15:97","nodeType":"YulAssignment","src":"12317:15:97","value":{"name":"value","nativeSrc":"12327:5:97","nodeType":"YulIdentifier","src":"12327:5:97"},"variableNames":[{"name":"value2","nativeSrc":"12317:6:97","nodeType":"YulIdentifier","src":"12317:6:97"}]}]},"name":"abi_decode_tuple_t_string_calldata_ptrt_address","nativeSrc":"11792:546:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11849:9:97","nodeType":"YulTypedName","src":"11849:9:97","type":""},{"name":"dataEnd","nativeSrc":"11860:7:97","nodeType":"YulTypedName","src":"11860:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11872:6:97","nodeType":"YulTypedName","src":"11872:6:97","type":""},{"name":"value1","nativeSrc":"11880:6:97","nodeType":"YulTypedName","src":"11880:6:97","type":""},{"name":"value2","nativeSrc":"11888:6:97","nodeType":"YulTypedName","src":"11888:6:97","type":""}],"src":"11792:546:97"},{"body":{"nativeSrc":"12473:125:97","nodeType":"YulBlock","src":"12473:125:97","statements":[{"nativeSrc":"12483:26:97","nodeType":"YulAssignment","src":"12483:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"12495:9:97","nodeType":"YulIdentifier","src":"12495:9:97"},{"kind":"number","nativeSrc":"12506:2:97","nodeType":"YulLiteral","src":"12506:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12491:3:97","nodeType":"YulIdentifier","src":"12491:3:97"},"nativeSrc":"12491:18:97","nodeType":"YulFunctionCall","src":"12491:18:97"},"variableNames":[{"name":"tail","nativeSrc":"12483:4:97","nodeType":"YulIdentifier","src":"12483:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"12525:9:97","nodeType":"YulIdentifier","src":"12525:9:97"},{"arguments":[{"name":"value0","nativeSrc":"12540:6:97","nodeType":"YulIdentifier","src":"12540:6:97"},{"kind":"number","nativeSrc":"12548:42:97","nodeType":"YulLiteral","src":"12548:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"12536:3:97","nodeType":"YulIdentifier","src":"12536:3:97"},"nativeSrc":"12536:55:97","nodeType":"YulFunctionCall","src":"12536:55:97"}],"functionName":{"name":"mstore","nativeSrc":"12518:6:97","nodeType":"YulIdentifier","src":"12518:6:97"},"nativeSrc":"12518:74:97","nodeType":"YulFunctionCall","src":"12518:74:97"},"nativeSrc":"12518:74:97","nodeType":"YulExpressionStatement","src":"12518:74:97"}]},"name":"abi_encode_tuple_t_contract$_ILayerZeroEndpointV2_$1048__to_t_address__fromStack_reversed","nativeSrc":"12343:255:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12442:9:97","nodeType":"YulTypedName","src":"12442:9:97","type":""},{"name":"value0","nativeSrc":"12453:6:97","nodeType":"YulTypedName","src":"12453:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12464:4:97","nodeType":"YulTypedName","src":"12464:4:97","type":""}],"src":"12343:255:97"},{"body":{"nativeSrc":"12725:125:97","nodeType":"YulBlock","src":"12725:125:97","statements":[{"nativeSrc":"12735:26:97","nodeType":"YulAssignment","src":"12735:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"12747:9:97","nodeType":"YulIdentifier","src":"12747:9:97"},{"kind":"number","nativeSrc":"12758:2:97","nodeType":"YulLiteral","src":"12758:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12743:3:97","nodeType":"YulIdentifier","src":"12743:3:97"},"nativeSrc":"12743:18:97","nodeType":"YulFunctionCall","src":"12743:18:97"},"variableNames":[{"name":"tail","nativeSrc":"12735:4:97","nodeType":"YulIdentifier","src":"12735:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"12777:9:97","nodeType":"YulIdentifier","src":"12777:9:97"},{"arguments":[{"name":"value0","nativeSrc":"12792:6:97","nodeType":"YulIdentifier","src":"12792:6:97"},{"kind":"number","nativeSrc":"12800:42:97","nodeType":"YulLiteral","src":"12800:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"12788:3:97","nodeType":"YulIdentifier","src":"12788:3:97"},"nativeSrc":"12788:55:97","nodeType":"YulFunctionCall","src":"12788:55:97"}],"functionName":{"name":"mstore","nativeSrc":"12770:6:97","nodeType":"YulIdentifier","src":"12770:6:97"},"nativeSrc":"12770:74:97","nodeType":"YulFunctionCall","src":"12770:74:97"},"nativeSrc":"12770:74:97","nodeType":"YulExpressionStatement","src":"12770:74:97"}]},"name":"abi_encode_tuple_t_contract$_IRiskOracle_$16808__to_t_address__fromStack_reversed","nativeSrc":"12603:247:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12694:9:97","nodeType":"YulTypedName","src":"12694:9:97","type":""},{"name":"value0","nativeSrc":"12705:6:97","nodeType":"YulTypedName","src":"12705:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12716:4:97","nodeType":"YulTypedName","src":"12716:4:97","type":""}],"src":"12603:247:97"},{"body":{"nativeSrc":"12961:372:97","nodeType":"YulBlock","src":"12961:372:97","statements":[{"body":{"nativeSrc":"13007:16:97","nodeType":"YulBlock","src":"13007:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13016:1:97","nodeType":"YulLiteral","src":"13016:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"13019:1:97","nodeType":"YulLiteral","src":"13019:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13009:6:97","nodeType":"YulIdentifier","src":"13009:6:97"},"nativeSrc":"13009:12:97","nodeType":"YulFunctionCall","src":"13009:12:97"},"nativeSrc":"13009:12:97","nodeType":"YulExpressionStatement","src":"13009:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12982:7:97","nodeType":"YulIdentifier","src":"12982:7:97"},{"name":"headStart","nativeSrc":"12991:9:97","nodeType":"YulIdentifier","src":"12991:9:97"}],"functionName":{"name":"sub","nativeSrc":"12978:3:97","nodeType":"YulIdentifier","src":"12978:3:97"},"nativeSrc":"12978:23:97","nodeType":"YulFunctionCall","src":"12978:23:97"},{"kind":"number","nativeSrc":"13003:2:97","nodeType":"YulLiteral","src":"13003:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"12974:3:97","nodeType":"YulIdentifier","src":"12974:3:97"},"nativeSrc":"12974:32:97","nodeType":"YulFunctionCall","src":"12974:32:97"},"nativeSrc":"12971:52:97","nodeType":"YulIf","src":"12971:52:97"},{"nativeSrc":"13032:33:97","nodeType":"YulAssignment","src":"13032:33:97","value":{"arguments":[{"name":"headStart","nativeSrc":"13055:9:97","nodeType":"YulIdentifier","src":"13055:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"13042:12:97","nodeType":"YulIdentifier","src":"13042:12:97"},"nativeSrc":"13042:23:97","nodeType":"YulFunctionCall","src":"13042:23:97"},"variableNames":[{"name":"value0","nativeSrc":"13032:6:97","nodeType":"YulIdentifier","src":"13032:6:97"}]},{"nativeSrc":"13074:46:97","nodeType":"YulVariableDeclaration","src":"13074:46:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13105:9:97","nodeType":"YulIdentifier","src":"13105:9:97"},{"kind":"number","nativeSrc":"13116:2:97","nodeType":"YulLiteral","src":"13116:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13101:3:97","nodeType":"YulIdentifier","src":"13101:3:97"},"nativeSrc":"13101:18:97","nodeType":"YulFunctionCall","src":"13101:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"13088:12:97","nodeType":"YulIdentifier","src":"13088:12:97"},"nativeSrc":"13088:32:97","nodeType":"YulFunctionCall","src":"13088:32:97"},"variables":[{"name":"offset","nativeSrc":"13078:6:97","nodeType":"YulTypedName","src":"13078:6:97","type":""}]},{"body":{"nativeSrc":"13163:16:97","nodeType":"YulBlock","src":"13163:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13172:1:97","nodeType":"YulLiteral","src":"13172:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"13175:1:97","nodeType":"YulLiteral","src":"13175:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13165:6:97","nodeType":"YulIdentifier","src":"13165:6:97"},"nativeSrc":"13165:12:97","nodeType":"YulFunctionCall","src":"13165:12:97"},"nativeSrc":"13165:12:97","nodeType":"YulExpressionStatement","src":"13165:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"13135:6:97","nodeType":"YulIdentifier","src":"13135:6:97"},{"kind":"number","nativeSrc":"13143:18:97","nodeType":"YulLiteral","src":"13143:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"13132:2:97","nodeType":"YulIdentifier","src":"13132:2:97"},"nativeSrc":"13132:30:97","nodeType":"YulFunctionCall","src":"13132:30:97"},"nativeSrc":"13129:50:97","nodeType":"YulIf","src":"13129:50:97"},{"nativeSrc":"13188:85:97","nodeType":"YulVariableDeclaration","src":"13188:85:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13245:9:97","nodeType":"YulIdentifier","src":"13245:9:97"},{"name":"offset","nativeSrc":"13256:6:97","nodeType":"YulIdentifier","src":"13256:6:97"}],"functionName":{"name":"add","nativeSrc":"13241:3:97","nodeType":"YulIdentifier","src":"13241:3:97"},"nativeSrc":"13241:22:97","nodeType":"YulFunctionCall","src":"13241:22:97"},{"name":"dataEnd","nativeSrc":"13265:7:97","nodeType":"YulIdentifier","src":"13265:7:97"}],"functionName":{"name":"abi_decode_string_calldata","nativeSrc":"13214:26:97","nodeType":"YulIdentifier","src":"13214:26:97"},"nativeSrc":"13214:59:97","nodeType":"YulFunctionCall","src":"13214:59:97"},"variables":[{"name":"value1_1","nativeSrc":"13192:8:97","nodeType":"YulTypedName","src":"13192:8:97","type":""},{"name":"value2_1","nativeSrc":"13202:8:97","nodeType":"YulTypedName","src":"13202:8:97","type":""}]},{"nativeSrc":"13282:18:97","nodeType":"YulAssignment","src":"13282:18:97","value":{"name":"value1_1","nativeSrc":"13292:8:97","nodeType":"YulIdentifier","src":"13292:8:97"},"variableNames":[{"name":"value1","nativeSrc":"13282:6:97","nodeType":"YulIdentifier","src":"13282:6:97"}]},{"nativeSrc":"13309:18:97","nodeType":"YulAssignment","src":"13309:18:97","value":{"name":"value2_1","nativeSrc":"13319:8:97","nodeType":"YulIdentifier","src":"13319:8:97"},"variableNames":[{"name":"value2","nativeSrc":"13309:6:97","nodeType":"YulIdentifier","src":"13309:6:97"}]}]},"name":"abi_decode_tuple_t_uint256t_bytes_calldata_ptr","nativeSrc":"12855:478:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12911:9:97","nodeType":"YulTypedName","src":"12911:9:97","type":""},{"name":"dataEnd","nativeSrc":"12922:7:97","nodeType":"YulTypedName","src":"12922:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12934:6:97","nodeType":"YulTypedName","src":"12934:6:97","type":""},{"name":"value1","nativeSrc":"12942:6:97","nodeType":"YulTypedName","src":"12942:6:97","type":""},{"name":"value2","nativeSrc":"12950:6:97","nodeType":"YulTypedName","src":"12950:6:97","type":""}],"src":"12855:478:97"},{"body":{"nativeSrc":"13439:125:97","nodeType":"YulBlock","src":"13439:125:97","statements":[{"nativeSrc":"13449:26:97","nodeType":"YulAssignment","src":"13449:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"13461:9:97","nodeType":"YulIdentifier","src":"13461:9:97"},{"kind":"number","nativeSrc":"13472:2:97","nodeType":"YulLiteral","src":"13472:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13457:3:97","nodeType":"YulIdentifier","src":"13457:3:97"},"nativeSrc":"13457:18:97","nodeType":"YulFunctionCall","src":"13457:18:97"},"variableNames":[{"name":"tail","nativeSrc":"13449:4:97","nodeType":"YulIdentifier","src":"13449:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13491:9:97","nodeType":"YulIdentifier","src":"13491:9:97"},{"arguments":[{"name":"value0","nativeSrc":"13506:6:97","nodeType":"YulIdentifier","src":"13506:6:97"},{"kind":"number","nativeSrc":"13514:42:97","nodeType":"YulLiteral","src":"13514:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"13502:3:97","nodeType":"YulIdentifier","src":"13502:3:97"},"nativeSrc":"13502:55:97","nodeType":"YulFunctionCall","src":"13502:55:97"}],"functionName":{"name":"mstore","nativeSrc":"13484:6:97","nodeType":"YulIdentifier","src":"13484:6:97"},"nativeSrc":"13484:74:97","nodeType":"YulFunctionCall","src":"13484:74:97"},"nativeSrc":"13484:74:97","nodeType":"YulExpressionStatement","src":"13484:74:97"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"13338:226:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13408:9:97","nodeType":"YulTypedName","src":"13408:9:97","type":""},{"name":"value0","nativeSrc":"13419:6:97","nodeType":"YulTypedName","src":"13419:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13430:4:97","nodeType":"YulTypedName","src":"13430:4:97","type":""}],"src":"13338:226:97"},{"body":{"nativeSrc":"13639:110:97","nodeType":"YulBlock","src":"13639:110:97","statements":[{"body":{"nativeSrc":"13685:16:97","nodeType":"YulBlock","src":"13685:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13694:1:97","nodeType":"YulLiteral","src":"13694:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"13697:1:97","nodeType":"YulLiteral","src":"13697:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13687:6:97","nodeType":"YulIdentifier","src":"13687:6:97"},"nativeSrc":"13687:12:97","nodeType":"YulFunctionCall","src":"13687:12:97"},"nativeSrc":"13687:12:97","nodeType":"YulExpressionStatement","src":"13687:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"13660:7:97","nodeType":"YulIdentifier","src":"13660:7:97"},{"name":"headStart","nativeSrc":"13669:9:97","nodeType":"YulIdentifier","src":"13669:9:97"}],"functionName":{"name":"sub","nativeSrc":"13656:3:97","nodeType":"YulIdentifier","src":"13656:3:97"},"nativeSrc":"13656:23:97","nodeType":"YulFunctionCall","src":"13656:23:97"},{"kind":"number","nativeSrc":"13681:2:97","nodeType":"YulLiteral","src":"13681:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"13652:3:97","nodeType":"YulIdentifier","src":"13652:3:97"},"nativeSrc":"13652:32:97","nodeType":"YulFunctionCall","src":"13652:32:97"},"nativeSrc":"13649:52:97","nodeType":"YulIf","src":"13649:52:97"},{"nativeSrc":"13710:33:97","nodeType":"YulAssignment","src":"13710:33:97","value":{"arguments":[{"name":"headStart","nativeSrc":"13733:9:97","nodeType":"YulIdentifier","src":"13733:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"13720:12:97","nodeType":"YulIdentifier","src":"13720:12:97"},"nativeSrc":"13720:23:97","nodeType":"YulFunctionCall","src":"13720:23:97"},"variableNames":[{"name":"value0","nativeSrc":"13710:6:97","nodeType":"YulIdentifier","src":"13710:6:97"}]}]},"name":"abi_decode_tuple_t_bytes32","nativeSrc":"13569:180:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13605:9:97","nodeType":"YulTypedName","src":"13605:9:97","type":""},{"name":"dataEnd","nativeSrc":"13616:7:97","nodeType":"YulTypedName","src":"13616:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"13628:6:97","nodeType":"YulTypedName","src":"13628:6:97","type":""}],"src":"13569:180:97"},{"body":{"nativeSrc":"13933:271:97","nodeType":"YulBlock","src":"13933:271:97","statements":[{"nativeSrc":"13943:27:97","nodeType":"YulAssignment","src":"13943:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"13955:9:97","nodeType":"YulIdentifier","src":"13955:9:97"},{"kind":"number","nativeSrc":"13966:3:97","nodeType":"YulLiteral","src":"13966:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"13951:3:97","nodeType":"YulIdentifier","src":"13951:3:97"},"nativeSrc":"13951:19:97","nodeType":"YulFunctionCall","src":"13951:19:97"},"variableNames":[{"name":"tail","nativeSrc":"13943:4:97","nodeType":"YulIdentifier","src":"13943:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13986:9:97","nodeType":"YulIdentifier","src":"13986:9:97"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"14011:6:97","nodeType":"YulIdentifier","src":"14011:6:97"}],"functionName":{"name":"iszero","nativeSrc":"14004:6:97","nodeType":"YulIdentifier","src":"14004:6:97"},"nativeSrc":"14004:14:97","nodeType":"YulFunctionCall","src":"14004:14:97"}],"functionName":{"name":"iszero","nativeSrc":"13997:6:97","nodeType":"YulIdentifier","src":"13997:6:97"},"nativeSrc":"13997:22:97","nodeType":"YulFunctionCall","src":"13997:22:97"}],"functionName":{"name":"mstore","nativeSrc":"13979:6:97","nodeType":"YulIdentifier","src":"13979:6:97"},"nativeSrc":"13979:41:97","nodeType":"YulFunctionCall","src":"13979:41:97"},"nativeSrc":"13979:41:97","nodeType":"YulExpressionStatement","src":"13979:41:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14040:9:97","nodeType":"YulIdentifier","src":"14040:9:97"},{"kind":"number","nativeSrc":"14051:2:97","nodeType":"YulLiteral","src":"14051:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14036:3:97","nodeType":"YulIdentifier","src":"14036:3:97"},"nativeSrc":"14036:18:97","nodeType":"YulFunctionCall","src":"14036:18:97"},{"name":"value1","nativeSrc":"14056:6:97","nodeType":"YulIdentifier","src":"14056:6:97"}],"functionName":{"name":"mstore","nativeSrc":"14029:6:97","nodeType":"YulIdentifier","src":"14029:6:97"},"nativeSrc":"14029:34:97","nodeType":"YulFunctionCall","src":"14029:34:97"},"nativeSrc":"14029:34:97","nodeType":"YulExpressionStatement","src":"14029:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14083:9:97","nodeType":"YulIdentifier","src":"14083:9:97"},{"kind":"number","nativeSrc":"14094:2:97","nodeType":"YulLiteral","src":"14094:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14079:3:97","nodeType":"YulIdentifier","src":"14079:3:97"},"nativeSrc":"14079:18:97","nodeType":"YulFunctionCall","src":"14079:18:97"},{"name":"value2","nativeSrc":"14099:6:97","nodeType":"YulIdentifier","src":"14099:6:97"}],"functionName":{"name":"mstore","nativeSrc":"14072:6:97","nodeType":"YulIdentifier","src":"14072:6:97"},"nativeSrc":"14072:34:97","nodeType":"YulFunctionCall","src":"14072:34:97"},"nativeSrc":"14072:34:97","nodeType":"YulExpressionStatement","src":"14072:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14126:9:97","nodeType":"YulIdentifier","src":"14126:9:97"},{"kind":"number","nativeSrc":"14137:2:97","nodeType":"YulLiteral","src":"14137:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"14122:3:97","nodeType":"YulIdentifier","src":"14122:3:97"},"nativeSrc":"14122:18:97","nodeType":"YulFunctionCall","src":"14122:18:97"},{"arguments":[{"name":"value3","nativeSrc":"14146:6:97","nodeType":"YulIdentifier","src":"14146:6:97"},{"kind":"number","nativeSrc":"14154:42:97","nodeType":"YulLiteral","src":"14154:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"14142:3:97","nodeType":"YulIdentifier","src":"14142:3:97"},"nativeSrc":"14142:55:97","nodeType":"YulFunctionCall","src":"14142:55:97"}],"functionName":{"name":"mstore","nativeSrc":"14115:6:97","nodeType":"YulIdentifier","src":"14115:6:97"},"nativeSrc":"14115:83:97","nodeType":"YulFunctionCall","src":"14115:83:97"},"nativeSrc":"14115:83:97","nodeType":"YulExpressionStatement","src":"14115:83:97"}]},"name":"abi_encode_tuple_t_bool_t_uint256_t_uint256_t_address__to_t_bool_t_uint256_t_uint256_t_address__fromStack_reversed","nativeSrc":"13754:450:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13878:9:97","nodeType":"YulTypedName","src":"13878:9:97","type":""},{"name":"value3","nativeSrc":"13889:6:97","nodeType":"YulTypedName","src":"13889:6:97","type":""},{"name":"value2","nativeSrc":"13897:6:97","nodeType":"YulTypedName","src":"13897:6:97","type":""},{"name":"value1","nativeSrc":"13905:6:97","nodeType":"YulTypedName","src":"13905:6:97","type":""},{"name":"value0","nativeSrc":"13913:6:97","nodeType":"YulTypedName","src":"13913:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13924:4:97","nodeType":"YulTypedName","src":"13924:4:97","type":""}],"src":"13754:450:97"},{"body":{"nativeSrc":"14343:125:97","nodeType":"YulBlock","src":"14343:125:97","statements":[{"nativeSrc":"14353:26:97","nodeType":"YulAssignment","src":"14353:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"14365:9:97","nodeType":"YulIdentifier","src":"14365:9:97"},{"kind":"number","nativeSrc":"14376:2:97","nodeType":"YulLiteral","src":"14376:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14361:3:97","nodeType":"YulIdentifier","src":"14361:3:97"},"nativeSrc":"14361:18:97","nodeType":"YulFunctionCall","src":"14361:18:97"},"variableNames":[{"name":"tail","nativeSrc":"14353:4:97","nodeType":"YulIdentifier","src":"14353:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"14395:9:97","nodeType":"YulIdentifier","src":"14395:9:97"},{"arguments":[{"name":"value0","nativeSrc":"14410:6:97","nodeType":"YulIdentifier","src":"14410:6:97"},{"kind":"number","nativeSrc":"14418:42:97","nodeType":"YulLiteral","src":"14418:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"14406:3:97","nodeType":"YulIdentifier","src":"14406:3:97"},"nativeSrc":"14406:55:97","nodeType":"YulFunctionCall","src":"14406:55:97"}],"functionName":{"name":"mstore","nativeSrc":"14388:6:97","nodeType":"YulIdentifier","src":"14388:6:97"},"nativeSrc":"14388:74:97","nodeType":"YulFunctionCall","src":"14388:74:97"},"nativeSrc":"14388:74:97","nodeType":"YulExpressionStatement","src":"14388:74:97"}]},"name":"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$13903__to_t_address__fromStack_reversed","nativeSrc":"14209:259:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14312:9:97","nodeType":"YulTypedName","src":"14312:9:97","type":""},{"name":"value0","nativeSrc":"14323:6:97","nodeType":"YulTypedName","src":"14323:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14334:4:97","nodeType":"YulTypedName","src":"14334:4:97","type":""}],"src":"14209:259:97"},{"body":{"nativeSrc":"14505:152:97","nodeType":"YulBlock","src":"14505:152:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14522:1:97","nodeType":"YulLiteral","src":"14522:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"14525:77:97","nodeType":"YulLiteral","src":"14525:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"14515:6:97","nodeType":"YulIdentifier","src":"14515:6:97"},"nativeSrc":"14515:88:97","nodeType":"YulFunctionCall","src":"14515:88:97"},"nativeSrc":"14515:88:97","nodeType":"YulExpressionStatement","src":"14515:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14619:1:97","nodeType":"YulLiteral","src":"14619:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"14622:4:97","nodeType":"YulLiteral","src":"14622:4:97","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"14612:6:97","nodeType":"YulIdentifier","src":"14612:6:97"},"nativeSrc":"14612:15:97","nodeType":"YulFunctionCall","src":"14612:15:97"},"nativeSrc":"14612:15:97","nodeType":"YulExpressionStatement","src":"14612:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14643:1:97","nodeType":"YulLiteral","src":"14643:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"14646:4:97","nodeType":"YulLiteral","src":"14646:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"14636:6:97","nodeType":"YulIdentifier","src":"14636:6:97"},"nativeSrc":"14636:15:97","nodeType":"YulFunctionCall","src":"14636:15:97"},"nativeSrc":"14636:15:97","nodeType":"YulExpressionStatement","src":"14636:15:97"}]},"name":"panic_error_0x21","nativeSrc":"14473:184:97","nodeType":"YulFunctionDefinition","src":"14473:184:97"},{"body":{"nativeSrc":"14891:509:97","nodeType":"YulBlock","src":"14891:509:97","statements":[{"nativeSrc":"14901:27:97","nodeType":"YulAssignment","src":"14901:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"14913:9:97","nodeType":"YulIdentifier","src":"14913:9:97"},{"kind":"number","nativeSrc":"14924:3:97","nodeType":"YulLiteral","src":"14924:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"14909:3:97","nodeType":"YulIdentifier","src":"14909:3:97"},"nativeSrc":"14909:19:97","nodeType":"YulFunctionCall","src":"14909:19:97"},"variableNames":[{"name":"tail","nativeSrc":"14901:4:97","nodeType":"YulIdentifier","src":"14901:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"14944:9:97","nodeType":"YulIdentifier","src":"14944:9:97"},{"name":"value0","nativeSrc":"14955:6:97","nodeType":"YulIdentifier","src":"14955:6:97"}],"functionName":{"name":"mstore","nativeSrc":"14937:6:97","nodeType":"YulIdentifier","src":"14937:6:97"},"nativeSrc":"14937:25:97","nodeType":"YulFunctionCall","src":"14937:25:97"},"nativeSrc":"14937:25:97","nodeType":"YulExpressionStatement","src":"14937:25:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14982:9:97","nodeType":"YulIdentifier","src":"14982:9:97"},{"kind":"number","nativeSrc":"14993:2:97","nodeType":"YulLiteral","src":"14993:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14978:3:97","nodeType":"YulIdentifier","src":"14978:3:97"},"nativeSrc":"14978:18:97","nodeType":"YulFunctionCall","src":"14978:18:97"},{"name":"value1","nativeSrc":"14998:6:97","nodeType":"YulIdentifier","src":"14998:6:97"}],"functionName":{"name":"mstore","nativeSrc":"14971:6:97","nodeType":"YulIdentifier","src":"14971:6:97"},"nativeSrc":"14971:34:97","nodeType":"YulFunctionCall","src":"14971:34:97"},"nativeSrc":"14971:34:97","nodeType":"YulExpressionStatement","src":"14971:34:97"},{"body":{"nativeSrc":"15047:168:97","nodeType":"YulBlock","src":"15047:168:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15068:1:97","nodeType":"YulLiteral","src":"15068:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"15071:77:97","nodeType":"YulLiteral","src":"15071:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"15061:6:97","nodeType":"YulIdentifier","src":"15061:6:97"},"nativeSrc":"15061:88:97","nodeType":"YulFunctionCall","src":"15061:88:97"},"nativeSrc":"15061:88:97","nodeType":"YulExpressionStatement","src":"15061:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15169:1:97","nodeType":"YulLiteral","src":"15169:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"15172:4:97","nodeType":"YulLiteral","src":"15172:4:97","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"15162:6:97","nodeType":"YulIdentifier","src":"15162:6:97"},"nativeSrc":"15162:15:97","nodeType":"YulFunctionCall","src":"15162:15:97"},"nativeSrc":"15162:15:97","nodeType":"YulExpressionStatement","src":"15162:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15197:1:97","nodeType":"YulLiteral","src":"15197:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"15200:4:97","nodeType":"YulLiteral","src":"15200:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"15190:6:97","nodeType":"YulIdentifier","src":"15190:6:97"},"nativeSrc":"15190:15:97","nodeType":"YulFunctionCall","src":"15190:15:97"},"nativeSrc":"15190:15:97","nodeType":"YulExpressionStatement","src":"15190:15:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value2","nativeSrc":"15027:6:97","nodeType":"YulIdentifier","src":"15027:6:97"},{"kind":"number","nativeSrc":"15035:1:97","nodeType":"YulLiteral","src":"15035:1:97","type":"","value":"6"}],"functionName":{"name":"lt","nativeSrc":"15024:2:97","nodeType":"YulIdentifier","src":"15024:2:97"},"nativeSrc":"15024:13:97","nodeType":"YulFunctionCall","src":"15024:13:97"}],"functionName":{"name":"iszero","nativeSrc":"15017:6:97","nodeType":"YulIdentifier","src":"15017:6:97"},"nativeSrc":"15017:21:97","nodeType":"YulFunctionCall","src":"15017:21:97"},"nativeSrc":"15014:201:97","nodeType":"YulIf","src":"15014:201:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15235:9:97","nodeType":"YulIdentifier","src":"15235:9:97"},{"kind":"number","nativeSrc":"15246:2:97","nodeType":"YulLiteral","src":"15246:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"15231:3:97","nodeType":"YulIdentifier","src":"15231:3:97"},"nativeSrc":"15231:18:97","nodeType":"YulFunctionCall","src":"15231:18:97"},{"name":"value2","nativeSrc":"15251:6:97","nodeType":"YulIdentifier","src":"15251:6:97"}],"functionName":{"name":"mstore","nativeSrc":"15224:6:97","nodeType":"YulIdentifier","src":"15224:6:97"},"nativeSrc":"15224:34:97","nodeType":"YulFunctionCall","src":"15224:34:97"},"nativeSrc":"15224:34:97","nodeType":"YulExpressionStatement","src":"15224:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15278:9:97","nodeType":"YulIdentifier","src":"15278:9:97"},{"kind":"number","nativeSrc":"15289:2:97","nodeType":"YulLiteral","src":"15289:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"15274:3:97","nodeType":"YulIdentifier","src":"15274:3:97"},"nativeSrc":"15274:18:97","nodeType":"YulFunctionCall","src":"15274:18:97"},{"arguments":[{"name":"value3","nativeSrc":"15298:6:97","nodeType":"YulIdentifier","src":"15298:6:97"},{"kind":"number","nativeSrc":"15306:42:97","nodeType":"YulLiteral","src":"15306:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"15294:3:97","nodeType":"YulIdentifier","src":"15294:3:97"},"nativeSrc":"15294:55:97","nodeType":"YulFunctionCall","src":"15294:55:97"}],"functionName":{"name":"mstore","nativeSrc":"15267:6:97","nodeType":"YulIdentifier","src":"15267:6:97"},"nativeSrc":"15267:83:97","nodeType":"YulFunctionCall","src":"15267:83:97"},"nativeSrc":"15267:83:97","nodeType":"YulExpressionStatement","src":"15267:83:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15370:9:97","nodeType":"YulIdentifier","src":"15370:9:97"},{"kind":"number","nativeSrc":"15381:3:97","nodeType":"YulLiteral","src":"15381:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"15366:3:97","nodeType":"YulIdentifier","src":"15366:3:97"},"nativeSrc":"15366:19:97","nodeType":"YulFunctionCall","src":"15366:19:97"},{"name":"value4","nativeSrc":"15387:6:97","nodeType":"YulIdentifier","src":"15387:6:97"}],"functionName":{"name":"mstore","nativeSrc":"15359:6:97","nodeType":"YulIdentifier","src":"15359:6:97"},"nativeSrc":"15359:35:97","nodeType":"YulFunctionCall","src":"15359:35:97"},"nativeSrc":"15359:35:97","nodeType":"YulExpressionStatement","src":"15359:35:97"}]},"name":"abi_encode_tuple_t_uint256_t_uint256_t_enum$_UpdateStatus_$16849_t_address_t_uint256__to_t_uint256_t_uint256_t_uint8_t_address_t_uint256__fromStack_reversed","nativeSrc":"14662:738:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14828:9:97","nodeType":"YulTypedName","src":"14828:9:97","type":""},{"name":"value4","nativeSrc":"14839:6:97","nodeType":"YulTypedName","src":"14839:6:97","type":""},{"name":"value3","nativeSrc":"14847:6:97","nodeType":"YulTypedName","src":"14847:6:97","type":""},{"name":"value2","nativeSrc":"14855:6:97","nodeType":"YulTypedName","src":"14855:6:97","type":""},{"name":"value1","nativeSrc":"14863:6:97","nodeType":"YulTypedName","src":"14863:6:97","type":""},{"name":"value0","nativeSrc":"14871:6:97","nodeType":"YulTypedName","src":"14871:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14882:4:97","nodeType":"YulTypedName","src":"14882:4:97","type":""}],"src":"14662:738:97"},{"body":{"nativeSrc":"15474:176:97","nodeType":"YulBlock","src":"15474:176:97","statements":[{"body":{"nativeSrc":"15520:16:97","nodeType":"YulBlock","src":"15520:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15529:1:97","nodeType":"YulLiteral","src":"15529:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"15532:1:97","nodeType":"YulLiteral","src":"15532:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"15522:6:97","nodeType":"YulIdentifier","src":"15522:6:97"},"nativeSrc":"15522:12:97","nodeType":"YulFunctionCall","src":"15522:12:97"},"nativeSrc":"15522:12:97","nodeType":"YulExpressionStatement","src":"15522:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"15495:7:97","nodeType":"YulIdentifier","src":"15495:7:97"},{"name":"headStart","nativeSrc":"15504:9:97","nodeType":"YulIdentifier","src":"15504:9:97"}],"functionName":{"name":"sub","nativeSrc":"15491:3:97","nodeType":"YulIdentifier","src":"15491:3:97"},"nativeSrc":"15491:23:97","nodeType":"YulFunctionCall","src":"15491:23:97"},{"kind":"number","nativeSrc":"15516:2:97","nodeType":"YulLiteral","src":"15516:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"15487:3:97","nodeType":"YulIdentifier","src":"15487:3:97"},"nativeSrc":"15487:32:97","nodeType":"YulFunctionCall","src":"15487:32:97"},"nativeSrc":"15484:52:97","nodeType":"YulIf","src":"15484:52:97"},{"nativeSrc":"15545:36:97","nodeType":"YulVariableDeclaration","src":"15545:36:97","value":{"arguments":[{"name":"headStart","nativeSrc":"15571:9:97","nodeType":"YulIdentifier","src":"15571:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"15558:12:97","nodeType":"YulIdentifier","src":"15558:12:97"},"nativeSrc":"15558:23:97","nodeType":"YulFunctionCall","src":"15558:23:97"},"variables":[{"name":"value","nativeSrc":"15549:5:97","nodeType":"YulTypedName","src":"15549:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"15614:5:97","nodeType":"YulIdentifier","src":"15614:5:97"}],"functionName":{"name":"validator_revert_uint32","nativeSrc":"15590:23:97","nodeType":"YulIdentifier","src":"15590:23:97"},"nativeSrc":"15590:30:97","nodeType":"YulFunctionCall","src":"15590:30:97"},"nativeSrc":"15590:30:97","nodeType":"YulExpressionStatement","src":"15590:30:97"},{"nativeSrc":"15629:15:97","nodeType":"YulAssignment","src":"15629:15:97","value":{"name":"value","nativeSrc":"15639:5:97","nodeType":"YulIdentifier","src":"15639:5:97"},"variableNames":[{"name":"value0","nativeSrc":"15629:6:97","nodeType":"YulIdentifier","src":"15629:6:97"}]}]},"name":"abi_decode_tuple_t_uint32","nativeSrc":"15405:245:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15440:9:97","nodeType":"YulTypedName","src":"15440:9:97","type":""},{"name":"dataEnd","nativeSrc":"15451:7:97","nodeType":"YulTypedName","src":"15451:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"15463:6:97","nodeType":"YulTypedName","src":"15463:6:97","type":""}],"src":"15405:245:97"},{"body":{"nativeSrc":"15756:76:97","nodeType":"YulBlock","src":"15756:76:97","statements":[{"nativeSrc":"15766:26:97","nodeType":"YulAssignment","src":"15766:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"15778:9:97","nodeType":"YulIdentifier","src":"15778:9:97"},{"kind":"number","nativeSrc":"15789:2:97","nodeType":"YulLiteral","src":"15789:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15774:3:97","nodeType":"YulIdentifier","src":"15774:3:97"},"nativeSrc":"15774:18:97","nodeType":"YulFunctionCall","src":"15774:18:97"},"variableNames":[{"name":"tail","nativeSrc":"15766:4:97","nodeType":"YulIdentifier","src":"15766:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"15808:9:97","nodeType":"YulIdentifier","src":"15808:9:97"},{"name":"value0","nativeSrc":"15819:6:97","nodeType":"YulIdentifier","src":"15819:6:97"}],"functionName":{"name":"mstore","nativeSrc":"15801:6:97","nodeType":"YulIdentifier","src":"15801:6:97"},"nativeSrc":"15801:25:97","nodeType":"YulFunctionCall","src":"15801:25:97"},"nativeSrc":"15801:25:97","nodeType":"YulExpressionStatement","src":"15801:25:97"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"15655:177:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15725:9:97","nodeType":"YulTypedName","src":"15725:9:97","type":""},{"name":"value0","nativeSrc":"15736:6:97","nodeType":"YulTypedName","src":"15736:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15747:4:97","nodeType":"YulTypedName","src":"15747:4:97","type":""}],"src":"15655:177:97"},{"body":{"nativeSrc":"15978:542:97","nodeType":"YulBlock","src":"15978:542:97","statements":[{"body":{"nativeSrc":"16025:16:97","nodeType":"YulBlock","src":"16025:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"16034:1:97","nodeType":"YulLiteral","src":"16034:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"16037:1:97","nodeType":"YulLiteral","src":"16037:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"16027:6:97","nodeType":"YulIdentifier","src":"16027:6:97"},"nativeSrc":"16027:12:97","nodeType":"YulFunctionCall","src":"16027:12:97"},"nativeSrc":"16027:12:97","nodeType":"YulExpressionStatement","src":"16027:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"15999:7:97","nodeType":"YulIdentifier","src":"15999:7:97"},{"name":"headStart","nativeSrc":"16008:9:97","nodeType":"YulIdentifier","src":"16008:9:97"}],"functionName":{"name":"sub","nativeSrc":"15995:3:97","nodeType":"YulIdentifier","src":"15995:3:97"},"nativeSrc":"15995:23:97","nodeType":"YulFunctionCall","src":"15995:23:97"},{"kind":"number","nativeSrc":"16020:3:97","nodeType":"YulLiteral","src":"16020:3:97","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"15991:3:97","nodeType":"YulIdentifier","src":"15991:3:97"},"nativeSrc":"15991:33:97","nodeType":"YulFunctionCall","src":"15991:33:97"},"nativeSrc":"15988:53:97","nodeType":"YulIf","src":"15988:53:97"},{"nativeSrc":"16050:37:97","nodeType":"YulVariableDeclaration","src":"16050:37:97","value":{"arguments":[{"name":"headStart","nativeSrc":"16077:9:97","nodeType":"YulIdentifier","src":"16077:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"16064:12:97","nodeType":"YulIdentifier","src":"16064:12:97"},"nativeSrc":"16064:23:97","nodeType":"YulFunctionCall","src":"16064:23:97"},"variables":[{"name":"offset","nativeSrc":"16054:6:97","nodeType":"YulTypedName","src":"16054:6:97","type":""}]},{"body":{"nativeSrc":"16130:16:97","nodeType":"YulBlock","src":"16130:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"16139:1:97","nodeType":"YulLiteral","src":"16139:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"16142:1:97","nodeType":"YulLiteral","src":"16142:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"16132:6:97","nodeType":"YulIdentifier","src":"16132:6:97"},"nativeSrc":"16132:12:97","nodeType":"YulFunctionCall","src":"16132:12:97"},"nativeSrc":"16132:12:97","nodeType":"YulExpressionStatement","src":"16132:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"16102:6:97","nodeType":"YulIdentifier","src":"16102:6:97"},{"kind":"number","nativeSrc":"16110:18:97","nodeType":"YulLiteral","src":"16110:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"16099:2:97","nodeType":"YulIdentifier","src":"16099:2:97"},"nativeSrc":"16099:30:97","nodeType":"YulFunctionCall","src":"16099:30:97"},"nativeSrc":"16096:50:97","nodeType":"YulIf","src":"16096:50:97"},{"nativeSrc":"16155:85:97","nodeType":"YulVariableDeclaration","src":"16155:85:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16212:9:97","nodeType":"YulIdentifier","src":"16212:9:97"},{"name":"offset","nativeSrc":"16223:6:97","nodeType":"YulIdentifier","src":"16223:6:97"}],"functionName":{"name":"add","nativeSrc":"16208:3:97","nodeType":"YulIdentifier","src":"16208:3:97"},"nativeSrc":"16208:22:97","nodeType":"YulFunctionCall","src":"16208:22:97"},{"name":"dataEnd","nativeSrc":"16232:7:97","nodeType":"YulIdentifier","src":"16232:7:97"}],"functionName":{"name":"abi_decode_string_calldata","nativeSrc":"16181:26:97","nodeType":"YulIdentifier","src":"16181:26:97"},"nativeSrc":"16181:59:97","nodeType":"YulFunctionCall","src":"16181:59:97"},"variables":[{"name":"value0_1","nativeSrc":"16159:8:97","nodeType":"YulTypedName","src":"16159:8:97","type":""},{"name":"value1_1","nativeSrc":"16169:8:97","nodeType":"YulTypedName","src":"16169:8:97","type":""}]},{"nativeSrc":"16249:18:97","nodeType":"YulAssignment","src":"16249:18:97","value":{"name":"value0_1","nativeSrc":"16259:8:97","nodeType":"YulIdentifier","src":"16259:8:97"},"variableNames":[{"name":"value0","nativeSrc":"16249:6:97","nodeType":"YulIdentifier","src":"16249:6:97"}]},{"nativeSrc":"16276:18:97","nodeType":"YulAssignment","src":"16276:18:97","value":{"name":"value1_1","nativeSrc":"16286:8:97","nodeType":"YulIdentifier","src":"16286:8:97"},"variableNames":[{"name":"value1","nativeSrc":"16276:6:97","nodeType":"YulIdentifier","src":"16276:6:97"}]},{"nativeSrc":"16303:45:97","nodeType":"YulVariableDeclaration","src":"16303:45:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16333:9:97","nodeType":"YulIdentifier","src":"16333:9:97"},{"kind":"number","nativeSrc":"16344:2:97","nodeType":"YulLiteral","src":"16344:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16329:3:97","nodeType":"YulIdentifier","src":"16329:3:97"},"nativeSrc":"16329:18:97","nodeType":"YulFunctionCall","src":"16329:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"16316:12:97","nodeType":"YulIdentifier","src":"16316:12:97"},"nativeSrc":"16316:32:97","nodeType":"YulFunctionCall","src":"16316:32:97"},"variables":[{"name":"value","nativeSrc":"16307:5:97","nodeType":"YulTypedName","src":"16307:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"16382:5:97","nodeType":"YulIdentifier","src":"16382:5:97"}],"functionName":{"name":"validator_revert_address","nativeSrc":"16357:24:97","nodeType":"YulIdentifier","src":"16357:24:97"},"nativeSrc":"16357:31:97","nodeType":"YulFunctionCall","src":"16357:31:97"},"nativeSrc":"16357:31:97","nodeType":"YulExpressionStatement","src":"16357:31:97"},{"nativeSrc":"16397:15:97","nodeType":"YulAssignment","src":"16397:15:97","value":{"name":"value","nativeSrc":"16407:5:97","nodeType":"YulIdentifier","src":"16407:5:97"},"variableNames":[{"name":"value2","nativeSrc":"16397:6:97","nodeType":"YulIdentifier","src":"16397:6:97"}]},{"nativeSrc":"16421:42:97","nodeType":"YulAssignment","src":"16421:42:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16448:9:97","nodeType":"YulIdentifier","src":"16448:9:97"},{"kind":"number","nativeSrc":"16459:2:97","nodeType":"YulLiteral","src":"16459:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16444:3:97","nodeType":"YulIdentifier","src":"16444:3:97"},"nativeSrc":"16444:18:97","nodeType":"YulFunctionCall","src":"16444:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"16431:12:97","nodeType":"YulIdentifier","src":"16431:12:97"},"nativeSrc":"16431:32:97","nodeType":"YulFunctionCall","src":"16431:32:97"},"variableNames":[{"name":"value3","nativeSrc":"16421:6:97","nodeType":"YulIdentifier","src":"16421:6:97"}]},{"nativeSrc":"16472:42:97","nodeType":"YulAssignment","src":"16472:42:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16499:9:97","nodeType":"YulIdentifier","src":"16499:9:97"},{"kind":"number","nativeSrc":"16510:2:97","nodeType":"YulLiteral","src":"16510:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"16495:3:97","nodeType":"YulIdentifier","src":"16495:3:97"},"nativeSrc":"16495:18:97","nodeType":"YulFunctionCall","src":"16495:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"16482:12:97","nodeType":"YulIdentifier","src":"16482:12:97"},"nativeSrc":"16482:32:97","nodeType":"YulFunctionCall","src":"16482:32:97"},"variableNames":[{"name":"value4","nativeSrc":"16472:6:97","nodeType":"YulIdentifier","src":"16472:6:97"}]}]},"name":"abi_decode_tuple_t_string_calldata_ptrt_addresst_uint256t_uint256","nativeSrc":"15837:683:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15912:9:97","nodeType":"YulTypedName","src":"15912:9:97","type":""},{"name":"dataEnd","nativeSrc":"15923:7:97","nodeType":"YulTypedName","src":"15923:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"15935:6:97","nodeType":"YulTypedName","src":"15935:6:97","type":""},{"name":"value1","nativeSrc":"15943:6:97","nodeType":"YulTypedName","src":"15943:6:97","type":""},{"name":"value2","nativeSrc":"15951:6:97","nodeType":"YulTypedName","src":"15951:6:97","type":""},{"name":"value3","nativeSrc":"15959:6:97","nodeType":"YulTypedName","src":"15959:6:97","type":""},{"name":"value4","nativeSrc":"15967:6:97","nodeType":"YulTypedName","src":"15967:6:97","type":""}],"src":"15837:683:97"},{"body":{"nativeSrc":"16676:481:97","nodeType":"YulBlock","src":"16676:481:97","statements":[{"nativeSrc":"16686:12:97","nodeType":"YulVariableDeclaration","src":"16686:12:97","value":{"kind":"number","nativeSrc":"16696:2:97","nodeType":"YulLiteral","src":"16696:2:97","type":"","value":"32"},"variables":[{"name":"_1","nativeSrc":"16690:2:97","nodeType":"YulTypedName","src":"16690:2:97","type":""}]},{"nativeSrc":"16707:32:97","nodeType":"YulVariableDeclaration","src":"16707:32:97","value":{"arguments":[{"name":"headStart","nativeSrc":"16725:9:97","nodeType":"YulIdentifier","src":"16725:9:97"},{"kind":"number","nativeSrc":"16736:2:97","nodeType":"YulLiteral","src":"16736:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16721:3:97","nodeType":"YulIdentifier","src":"16721:3:97"},"nativeSrc":"16721:18:97","nodeType":"YulFunctionCall","src":"16721:18:97"},"variables":[{"name":"tail_1","nativeSrc":"16711:6:97","nodeType":"YulTypedName","src":"16711:6:97","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"16755:9:97","nodeType":"YulIdentifier","src":"16755:9:97"},{"kind":"number","nativeSrc":"16766:2:97","nodeType":"YulLiteral","src":"16766:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"16748:6:97","nodeType":"YulIdentifier","src":"16748:6:97"},"nativeSrc":"16748:21:97","nodeType":"YulFunctionCall","src":"16748:21:97"},"nativeSrc":"16748:21:97","nodeType":"YulExpressionStatement","src":"16748:21:97"},{"nativeSrc":"16778:17:97","nodeType":"YulVariableDeclaration","src":"16778:17:97","value":{"name":"tail_1","nativeSrc":"16789:6:97","nodeType":"YulIdentifier","src":"16789:6:97"},"variables":[{"name":"pos","nativeSrc":"16782:3:97","nodeType":"YulTypedName","src":"16782:3:97","type":""}]},{"nativeSrc":"16804:27:97","nodeType":"YulVariableDeclaration","src":"16804:27:97","value":{"arguments":[{"name":"value0","nativeSrc":"16824:6:97","nodeType":"YulIdentifier","src":"16824:6:97"}],"functionName":{"name":"mload","nativeSrc":"16818:5:97","nodeType":"YulIdentifier","src":"16818:5:97"},"nativeSrc":"16818:13:97","nodeType":"YulFunctionCall","src":"16818:13:97"},"variables":[{"name":"length","nativeSrc":"16808:6:97","nodeType":"YulTypedName","src":"16808:6:97","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nativeSrc":"16847:6:97","nodeType":"YulIdentifier","src":"16847:6:97"},{"name":"length","nativeSrc":"16855:6:97","nodeType":"YulIdentifier","src":"16855:6:97"}],"functionName":{"name":"mstore","nativeSrc":"16840:6:97","nodeType":"YulIdentifier","src":"16840:6:97"},"nativeSrc":"16840:22:97","nodeType":"YulFunctionCall","src":"16840:22:97"},"nativeSrc":"16840:22:97","nodeType":"YulExpressionStatement","src":"16840:22:97"},{"nativeSrc":"16871:25:97","nodeType":"YulAssignment","src":"16871:25:97","value":{"arguments":[{"name":"headStart","nativeSrc":"16882:9:97","nodeType":"YulIdentifier","src":"16882:9:97"},{"kind":"number","nativeSrc":"16893:2:97","nodeType":"YulLiteral","src":"16893:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16878:3:97","nodeType":"YulIdentifier","src":"16878:3:97"},"nativeSrc":"16878:18:97","nodeType":"YulFunctionCall","src":"16878:18:97"},"variableNames":[{"name":"pos","nativeSrc":"16871:3:97","nodeType":"YulIdentifier","src":"16871:3:97"}]},{"nativeSrc":"16905:29:97","nodeType":"YulVariableDeclaration","src":"16905:29:97","value":{"arguments":[{"name":"value0","nativeSrc":"16923:6:97","nodeType":"YulIdentifier","src":"16923:6:97"},{"kind":"number","nativeSrc":"16931:2:97","nodeType":"YulLiteral","src":"16931:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16919:3:97","nodeType":"YulIdentifier","src":"16919:3:97"},"nativeSrc":"16919:15:97","nodeType":"YulFunctionCall","src":"16919:15:97"},"variables":[{"name":"srcPtr","nativeSrc":"16909:6:97","nodeType":"YulTypedName","src":"16909:6:97","type":""}]},{"nativeSrc":"16943:10:97","nodeType":"YulVariableDeclaration","src":"16943:10:97","value":{"kind":"number","nativeSrc":"16952:1:97","nodeType":"YulLiteral","src":"16952:1:97","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"16947:1:97","nodeType":"YulTypedName","src":"16947:1:97","type":""}]},{"body":{"nativeSrc":"17011:120:97","nodeType":"YulBlock","src":"17011:120:97","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"17032:3:97","nodeType":"YulIdentifier","src":"17032:3:97"},{"arguments":[{"name":"srcPtr","nativeSrc":"17043:6:97","nodeType":"YulIdentifier","src":"17043:6:97"}],"functionName":{"name":"mload","nativeSrc":"17037:5:97","nodeType":"YulIdentifier","src":"17037:5:97"},"nativeSrc":"17037:13:97","nodeType":"YulFunctionCall","src":"17037:13:97"}],"functionName":{"name":"mstore","nativeSrc":"17025:6:97","nodeType":"YulIdentifier","src":"17025:6:97"},"nativeSrc":"17025:26:97","nodeType":"YulFunctionCall","src":"17025:26:97"},"nativeSrc":"17025:26:97","nodeType":"YulExpressionStatement","src":"17025:26:97"},{"nativeSrc":"17064:19:97","nodeType":"YulAssignment","src":"17064:19:97","value":{"arguments":[{"name":"pos","nativeSrc":"17075:3:97","nodeType":"YulIdentifier","src":"17075:3:97"},{"name":"_1","nativeSrc":"17080:2:97","nodeType":"YulIdentifier","src":"17080:2:97"}],"functionName":{"name":"add","nativeSrc":"17071:3:97","nodeType":"YulIdentifier","src":"17071:3:97"},"nativeSrc":"17071:12:97","nodeType":"YulFunctionCall","src":"17071:12:97"},"variableNames":[{"name":"pos","nativeSrc":"17064:3:97","nodeType":"YulIdentifier","src":"17064:3:97"}]},{"nativeSrc":"17096:25:97","nodeType":"YulAssignment","src":"17096:25:97","value":{"arguments":[{"name":"srcPtr","nativeSrc":"17110:6:97","nodeType":"YulIdentifier","src":"17110:6:97"},{"name":"_1","nativeSrc":"17118:2:97","nodeType":"YulIdentifier","src":"17118:2:97"}],"functionName":{"name":"add","nativeSrc":"17106:3:97","nodeType":"YulIdentifier","src":"17106:3:97"},"nativeSrc":"17106:15:97","nodeType":"YulFunctionCall","src":"17106:15:97"},"variableNames":[{"name":"srcPtr","nativeSrc":"17096:6:97","nodeType":"YulIdentifier","src":"17096:6:97"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"16973:1:97","nodeType":"YulIdentifier","src":"16973:1:97"},{"name":"length","nativeSrc":"16976:6:97","nodeType":"YulIdentifier","src":"16976:6:97"}],"functionName":{"name":"lt","nativeSrc":"16970:2:97","nodeType":"YulIdentifier","src":"16970:2:97"},"nativeSrc":"16970:13:97","nodeType":"YulFunctionCall","src":"16970:13:97"},"nativeSrc":"16962:169:97","nodeType":"YulForLoop","post":{"nativeSrc":"16984:18:97","nodeType":"YulBlock","src":"16984:18:97","statements":[{"nativeSrc":"16986:14:97","nodeType":"YulAssignment","src":"16986:14:97","value":{"arguments":[{"name":"i","nativeSrc":"16995:1:97","nodeType":"YulIdentifier","src":"16995:1:97"},{"kind":"number","nativeSrc":"16998:1:97","nodeType":"YulLiteral","src":"16998:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"16991:3:97","nodeType":"YulIdentifier","src":"16991:3:97"},"nativeSrc":"16991:9:97","nodeType":"YulFunctionCall","src":"16991:9:97"},"variableNames":[{"name":"i","nativeSrc":"16986:1:97","nodeType":"YulIdentifier","src":"16986:1:97"}]}]},"pre":{"nativeSrc":"16966:3:97","nodeType":"YulBlock","src":"16966:3:97","statements":[]},"src":"16962:169:97"},{"nativeSrc":"17140:11:97","nodeType":"YulAssignment","src":"17140:11:97","value":{"name":"pos","nativeSrc":"17148:3:97","nodeType":"YulIdentifier","src":"17148:3:97"},"variableNames":[{"name":"tail","nativeSrc":"17140:4:97","nodeType":"YulIdentifier","src":"17140:4:97"}]}]},"name":"abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed","nativeSrc":"16525:632:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16645:9:97","nodeType":"YulTypedName","src":"16645:9:97","type":""},{"name":"value0","nativeSrc":"16656:6:97","nodeType":"YulTypedName","src":"16656:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16667:4:97","nodeType":"YulTypedName","src":"16667:4:97","type":""}],"src":"16525:632:97"},{"body":{"nativeSrc":"17228:184:97","nodeType":"YulBlock","src":"17228:184:97","statements":[{"nativeSrc":"17238:10:97","nodeType":"YulVariableDeclaration","src":"17238:10:97","value":{"kind":"number","nativeSrc":"17247:1:97","nodeType":"YulLiteral","src":"17247:1:97","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"17242:1:97","nodeType":"YulTypedName","src":"17242:1:97","type":""}]},{"body":{"nativeSrc":"17307:63:97","nodeType":"YulBlock","src":"17307:63:97","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"17332:3:97","nodeType":"YulIdentifier","src":"17332:3:97"},{"name":"i","nativeSrc":"17337:1:97","nodeType":"YulIdentifier","src":"17337:1:97"}],"functionName":{"name":"add","nativeSrc":"17328:3:97","nodeType":"YulIdentifier","src":"17328:3:97"},"nativeSrc":"17328:11:97","nodeType":"YulFunctionCall","src":"17328:11:97"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"17351:3:97","nodeType":"YulIdentifier","src":"17351:3:97"},{"name":"i","nativeSrc":"17356:1:97","nodeType":"YulIdentifier","src":"17356:1:97"}],"functionName":{"name":"add","nativeSrc":"17347:3:97","nodeType":"YulIdentifier","src":"17347:3:97"},"nativeSrc":"17347:11:97","nodeType":"YulFunctionCall","src":"17347:11:97"}],"functionName":{"name":"mload","nativeSrc":"17341:5:97","nodeType":"YulIdentifier","src":"17341:5:97"},"nativeSrc":"17341:18:97","nodeType":"YulFunctionCall","src":"17341:18:97"}],"functionName":{"name":"mstore","nativeSrc":"17321:6:97","nodeType":"YulIdentifier","src":"17321:6:97"},"nativeSrc":"17321:39:97","nodeType":"YulFunctionCall","src":"17321:39:97"},"nativeSrc":"17321:39:97","nodeType":"YulExpressionStatement","src":"17321:39:97"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"17268:1:97","nodeType":"YulIdentifier","src":"17268:1:97"},{"name":"length","nativeSrc":"17271:6:97","nodeType":"YulIdentifier","src":"17271:6:97"}],"functionName":{"name":"lt","nativeSrc":"17265:2:97","nodeType":"YulIdentifier","src":"17265:2:97"},"nativeSrc":"17265:13:97","nodeType":"YulFunctionCall","src":"17265:13:97"},"nativeSrc":"17257:113:97","nodeType":"YulForLoop","post":{"nativeSrc":"17279:19:97","nodeType":"YulBlock","src":"17279:19:97","statements":[{"nativeSrc":"17281:15:97","nodeType":"YulAssignment","src":"17281:15:97","value":{"arguments":[{"name":"i","nativeSrc":"17290:1:97","nodeType":"YulIdentifier","src":"17290:1:97"},{"kind":"number","nativeSrc":"17293:2:97","nodeType":"YulLiteral","src":"17293:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17286:3:97","nodeType":"YulIdentifier","src":"17286:3:97"},"nativeSrc":"17286:10:97","nodeType":"YulFunctionCall","src":"17286:10:97"},"variableNames":[{"name":"i","nativeSrc":"17281:1:97","nodeType":"YulIdentifier","src":"17281:1:97"}]}]},"pre":{"nativeSrc":"17261:3:97","nodeType":"YulBlock","src":"17261:3:97","statements":[]},"src":"17257:113:97"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"17390:3:97","nodeType":"YulIdentifier","src":"17390:3:97"},{"name":"length","nativeSrc":"17395:6:97","nodeType":"YulIdentifier","src":"17395:6:97"}],"functionName":{"name":"add","nativeSrc":"17386:3:97","nodeType":"YulIdentifier","src":"17386:3:97"},"nativeSrc":"17386:16:97","nodeType":"YulFunctionCall","src":"17386:16:97"},{"kind":"number","nativeSrc":"17404:1:97","nodeType":"YulLiteral","src":"17404:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"17379:6:97","nodeType":"YulIdentifier","src":"17379:6:97"},"nativeSrc":"17379:27:97","nodeType":"YulFunctionCall","src":"17379:27:97"},"nativeSrc":"17379:27:97","nodeType":"YulExpressionStatement","src":"17379:27:97"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"17162:250:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"17206:3:97","nodeType":"YulTypedName","src":"17206:3:97","type":""},{"name":"dst","nativeSrc":"17211:3:97","nodeType":"YulTypedName","src":"17211:3:97","type":""},{"name":"length","nativeSrc":"17216:6:97","nodeType":"YulTypedName","src":"17216:6:97","type":""}],"src":"17162:250:97"},{"body":{"nativeSrc":"17467:280:97","nodeType":"YulBlock","src":"17467:280:97","statements":[{"nativeSrc":"17477:26:97","nodeType":"YulVariableDeclaration","src":"17477:26:97","value":{"arguments":[{"name":"value","nativeSrc":"17497:5:97","nodeType":"YulIdentifier","src":"17497:5:97"}],"functionName":{"name":"mload","nativeSrc":"17491:5:97","nodeType":"YulIdentifier","src":"17491:5:97"},"nativeSrc":"17491:12:97","nodeType":"YulFunctionCall","src":"17491:12:97"},"variables":[{"name":"length","nativeSrc":"17481:6:97","nodeType":"YulTypedName","src":"17481:6:97","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"17519:3:97","nodeType":"YulIdentifier","src":"17519:3:97"},{"name":"length","nativeSrc":"17524:6:97","nodeType":"YulIdentifier","src":"17524:6:97"}],"functionName":{"name":"mstore","nativeSrc":"17512:6:97","nodeType":"YulIdentifier","src":"17512:6:97"},"nativeSrc":"17512:19:97","nodeType":"YulFunctionCall","src":"17512:19:97"},"nativeSrc":"17512:19:97","nodeType":"YulExpressionStatement","src":"17512:19:97"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17579:5:97","nodeType":"YulIdentifier","src":"17579:5:97"},{"kind":"number","nativeSrc":"17586:4:97","nodeType":"YulLiteral","src":"17586:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17575:3:97","nodeType":"YulIdentifier","src":"17575:3:97"},"nativeSrc":"17575:16:97","nodeType":"YulFunctionCall","src":"17575:16:97"},{"arguments":[{"name":"pos","nativeSrc":"17597:3:97","nodeType":"YulIdentifier","src":"17597:3:97"},{"kind":"number","nativeSrc":"17602:4:97","nodeType":"YulLiteral","src":"17602:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17593:3:97","nodeType":"YulIdentifier","src":"17593:3:97"},"nativeSrc":"17593:14:97","nodeType":"YulFunctionCall","src":"17593:14:97"},{"name":"length","nativeSrc":"17609:6:97","nodeType":"YulIdentifier","src":"17609:6:97"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"17540:34:97","nodeType":"YulIdentifier","src":"17540:34:97"},"nativeSrc":"17540:76:97","nodeType":"YulFunctionCall","src":"17540:76:97"},"nativeSrc":"17540:76:97","nodeType":"YulExpressionStatement","src":"17540:76:97"},{"nativeSrc":"17625:116:97","nodeType":"YulAssignment","src":"17625:116:97","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"17640:3:97","nodeType":"YulIdentifier","src":"17640:3:97"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"17653:6:97","nodeType":"YulIdentifier","src":"17653:6:97"},{"kind":"number","nativeSrc":"17661:2:97","nodeType":"YulLiteral","src":"17661:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"17649:3:97","nodeType":"YulIdentifier","src":"17649:3:97"},"nativeSrc":"17649:15:97","nodeType":"YulFunctionCall","src":"17649:15:97"},{"kind":"number","nativeSrc":"17666:66:97","nodeType":"YulLiteral","src":"17666:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"17645:3:97","nodeType":"YulIdentifier","src":"17645:3:97"},"nativeSrc":"17645:88:97","nodeType":"YulFunctionCall","src":"17645:88:97"}],"functionName":{"name":"add","nativeSrc":"17636:3:97","nodeType":"YulIdentifier","src":"17636:3:97"},"nativeSrc":"17636:98:97","nodeType":"YulFunctionCall","src":"17636:98:97"},{"kind":"number","nativeSrc":"17736:4:97","nodeType":"YulLiteral","src":"17736:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17632:3:97","nodeType":"YulIdentifier","src":"17632:3:97"},"nativeSrc":"17632:109:97","nodeType":"YulFunctionCall","src":"17632:109:97"},"variableNames":[{"name":"end","nativeSrc":"17625:3:97","nodeType":"YulIdentifier","src":"17625:3:97"}]}]},"name":"abi_encode_string","nativeSrc":"17417:330:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17444:5:97","nodeType":"YulTypedName","src":"17444:5:97","type":""},{"name":"pos","nativeSrc":"17451:3:97","nodeType":"YulTypedName","src":"17451:3:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"17459:3:97","nodeType":"YulTypedName","src":"17459:3:97","type":""}],"src":"17417:330:97"},{"body":{"nativeSrc":"17795:67:97","nodeType":"YulBlock","src":"17795:67:97","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"17812:3:97","nodeType":"YulIdentifier","src":"17812:3:97"},{"arguments":[{"name":"value","nativeSrc":"17821:5:97","nodeType":"YulIdentifier","src":"17821:5:97"},{"kind":"number","nativeSrc":"17828:26:97","nodeType":"YulLiteral","src":"17828:26:97","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"17817:3:97","nodeType":"YulIdentifier","src":"17817:3:97"},"nativeSrc":"17817:38:97","nodeType":"YulFunctionCall","src":"17817:38:97"}],"functionName":{"name":"mstore","nativeSrc":"17805:6:97","nodeType":"YulIdentifier","src":"17805:6:97"},"nativeSrc":"17805:51:97","nodeType":"YulFunctionCall","src":"17805:51:97"},"nativeSrc":"17805:51:97","nodeType":"YulExpressionStatement","src":"17805:51:97"}]},"name":"abi_encode_uint96","nativeSrc":"17752:110:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17779:5:97","nodeType":"YulTypedName","src":"17779:5:97","type":""},{"name":"pos","nativeSrc":"17786:3:97","nodeType":"YulTypedName","src":"17786:3:97","type":""}],"src":"17752:110:97"},{"body":{"nativeSrc":"17937:1522:97","nodeType":"YulBlock","src":"17937:1522:97","statements":[{"nativeSrc":"17947:16:97","nodeType":"YulVariableDeclaration","src":"17947:16:97","value":{"kind":"number","nativeSrc":"17957:6:97","nodeType":"YulLiteral","src":"17957:6:97","type":"","value":"0x0180"},"variables":[{"name":"_1","nativeSrc":"17951:2:97","nodeType":"YulTypedName","src":"17951:2:97","type":""}]},{"nativeSrc":"17972:32:97","nodeType":"YulVariableDeclaration","src":"17972:32:97","value":{"arguments":[{"name":"value","nativeSrc":"17998:5:97","nodeType":"YulIdentifier","src":"17998:5:97"}],"functionName":{"name":"mload","nativeSrc":"17992:5:97","nodeType":"YulIdentifier","src":"17992:5:97"},"nativeSrc":"17992:12:97","nodeType":"YulFunctionCall","src":"17992:12:97"},"variables":[{"name":"memberValue0","nativeSrc":"17976:12:97","nodeType":"YulTypedName","src":"17976:12:97","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"18020:3:97","nodeType":"YulIdentifier","src":"18020:3:97"},{"name":"_1","nativeSrc":"18025:2:97","nodeType":"YulIdentifier","src":"18025:2:97"}],"functionName":{"name":"mstore","nativeSrc":"18013:6:97","nodeType":"YulIdentifier","src":"18013:6:97"},"nativeSrc":"18013:15:97","nodeType":"YulFunctionCall","src":"18013:15:97"},"nativeSrc":"18013:15:97","nodeType":"YulExpressionStatement","src":"18013:15:97"},{"nativeSrc":"18037:57:97","nodeType":"YulVariableDeclaration","src":"18037:57:97","value":{"arguments":[{"name":"memberValue0","nativeSrc":"18067:12:97","nodeType":"YulIdentifier","src":"18067:12:97"},{"arguments":[{"name":"pos","nativeSrc":"18085:3:97","nodeType":"YulIdentifier","src":"18085:3:97"},{"name":"_1","nativeSrc":"18090:2:97","nodeType":"YulIdentifier","src":"18090:2:97"}],"functionName":{"name":"add","nativeSrc":"18081:3:97","nodeType":"YulIdentifier","src":"18081:3:97"},"nativeSrc":"18081:12:97","nodeType":"YulFunctionCall","src":"18081:12:97"}],"functionName":{"name":"abi_encode_string","nativeSrc":"18049:17:97","nodeType":"YulIdentifier","src":"18049:17:97"},"nativeSrc":"18049:45:97","nodeType":"YulFunctionCall","src":"18049:45:97"},"variables":[{"name":"tail","nativeSrc":"18041:4:97","nodeType":"YulTypedName","src":"18041:4:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"18114:3:97","nodeType":"YulIdentifier","src":"18114:3:97"},{"kind":"number","nativeSrc":"18119:4:97","nodeType":"YulLiteral","src":"18119:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"18110:3:97","nodeType":"YulIdentifier","src":"18110:3:97"},"nativeSrc":"18110:14:97","nodeType":"YulFunctionCall","src":"18110:14:97"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"18136:5:97","nodeType":"YulIdentifier","src":"18136:5:97"},{"kind":"number","nativeSrc":"18143:4:97","nodeType":"YulLiteral","src":"18143:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"18132:3:97","nodeType":"YulIdentifier","src":"18132:3:97"},"nativeSrc":"18132:16:97","nodeType":"YulFunctionCall","src":"18132:16:97"}],"functionName":{"name":"mload","nativeSrc":"18126:5:97","nodeType":"YulIdentifier","src":"18126:5:97"},"nativeSrc":"18126:23:97","nodeType":"YulFunctionCall","src":"18126:23:97"}],"functionName":{"name":"mstore","nativeSrc":"18103:6:97","nodeType":"YulIdentifier","src":"18103:6:97"},"nativeSrc":"18103:47:97","nodeType":"YulFunctionCall","src":"18103:47:97"},"nativeSrc":"18103:47:97","nodeType":"YulExpressionStatement","src":"18103:47:97"},{"nativeSrc":"18159:45:97","nodeType":"YulVariableDeclaration","src":"18159:45:97","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"18191:5:97","nodeType":"YulIdentifier","src":"18191:5:97"},{"kind":"number","nativeSrc":"18198:4:97","nodeType":"YulLiteral","src":"18198:4:97","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"18187:3:97","nodeType":"YulIdentifier","src":"18187:3:97"},"nativeSrc":"18187:16:97","nodeType":"YulFunctionCall","src":"18187:16:97"}],"functionName":{"name":"mload","nativeSrc":"18181:5:97","nodeType":"YulIdentifier","src":"18181:5:97"},"nativeSrc":"18181:23:97","nodeType":"YulFunctionCall","src":"18181:23:97"},"variables":[{"name":"memberValue0_1","nativeSrc":"18163:14:97","nodeType":"YulTypedName","src":"18163:14:97","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_1","nativeSrc":"18232:14:97","nodeType":"YulIdentifier","src":"18232:14:97"},{"arguments":[{"name":"pos","nativeSrc":"18252:3:97","nodeType":"YulIdentifier","src":"18252:3:97"},{"kind":"number","nativeSrc":"18257:4:97","nodeType":"YulLiteral","src":"18257:4:97","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"18248:3:97","nodeType":"YulIdentifier","src":"18248:3:97"},"nativeSrc":"18248:14:97","nodeType":"YulFunctionCall","src":"18248:14:97"}],"functionName":{"name":"abi_encode_address","nativeSrc":"18213:18:97","nodeType":"YulIdentifier","src":"18213:18:97"},"nativeSrc":"18213:50:97","nodeType":"YulFunctionCall","src":"18213:50:97"},"nativeSrc":"18213:50:97","nodeType":"YulExpressionStatement","src":"18213:50:97"},{"nativeSrc":"18272:45:97","nodeType":"YulVariableDeclaration","src":"18272:45:97","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"18304:5:97","nodeType":"YulIdentifier","src":"18304:5:97"},{"kind":"number","nativeSrc":"18311:4:97","nodeType":"YulLiteral","src":"18311:4:97","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"18300:3:97","nodeType":"YulIdentifier","src":"18300:3:97"},"nativeSrc":"18300:16:97","nodeType":"YulFunctionCall","src":"18300:16:97"}],"functionName":{"name":"mload","nativeSrc":"18294:5:97","nodeType":"YulIdentifier","src":"18294:5:97"},"nativeSrc":"18294:23:97","nodeType":"YulFunctionCall","src":"18294:23:97"},"variables":[{"name":"memberValue0_2","nativeSrc":"18276:14:97","nodeType":"YulTypedName","src":"18276:14:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"18337:3:97","nodeType":"YulIdentifier","src":"18337:3:97"},{"kind":"number","nativeSrc":"18342:4:97","nodeType":"YulLiteral","src":"18342:4:97","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"18333:3:97","nodeType":"YulIdentifier","src":"18333:3:97"},"nativeSrc":"18333:14:97","nodeType":"YulFunctionCall","src":"18333:14:97"},{"arguments":[{"name":"tail","nativeSrc":"18353:4:97","nodeType":"YulIdentifier","src":"18353:4:97"},{"name":"pos","nativeSrc":"18359:3:97","nodeType":"YulIdentifier","src":"18359:3:97"}],"functionName":{"name":"sub","nativeSrc":"18349:3:97","nodeType":"YulIdentifier","src":"18349:3:97"},"nativeSrc":"18349:14:97","nodeType":"YulFunctionCall","src":"18349:14:97"}],"functionName":{"name":"mstore","nativeSrc":"18326:6:97","nodeType":"YulIdentifier","src":"18326:6:97"},"nativeSrc":"18326:38:97","nodeType":"YulFunctionCall","src":"18326:38:97"},"nativeSrc":"18326:38:97","nodeType":"YulExpressionStatement","src":"18326:38:97"},{"nativeSrc":"18373:53:97","nodeType":"YulVariableDeclaration","src":"18373:53:97","value":{"arguments":[{"name":"memberValue0_2","nativeSrc":"18405:14:97","nodeType":"YulIdentifier","src":"18405:14:97"},{"name":"tail","nativeSrc":"18421:4:97","nodeType":"YulIdentifier","src":"18421:4:97"}],"functionName":{"name":"abi_encode_string","nativeSrc":"18387:17:97","nodeType":"YulIdentifier","src":"18387:17:97"},"nativeSrc":"18387:39:97","nodeType":"YulFunctionCall","src":"18387:39:97"},"variables":[{"name":"tail_1","nativeSrc":"18377:6:97","nodeType":"YulTypedName","src":"18377:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"18446:3:97","nodeType":"YulIdentifier","src":"18446:3:97"},{"kind":"number","nativeSrc":"18451:4:97","nodeType":"YulLiteral","src":"18451:4:97","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"18442:3:97","nodeType":"YulIdentifier","src":"18442:3:97"},"nativeSrc":"18442:14:97","nodeType":"YulFunctionCall","src":"18442:14:97"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"18468:5:97","nodeType":"YulIdentifier","src":"18468:5:97"},{"kind":"number","nativeSrc":"18475:4:97","nodeType":"YulLiteral","src":"18475:4:97","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"18464:3:97","nodeType":"YulIdentifier","src":"18464:3:97"},"nativeSrc":"18464:16:97","nodeType":"YulFunctionCall","src":"18464:16:97"}],"functionName":{"name":"mload","nativeSrc":"18458:5:97","nodeType":"YulIdentifier","src":"18458:5:97"},"nativeSrc":"18458:23:97","nodeType":"YulFunctionCall","src":"18458:23:97"}],"functionName":{"name":"mstore","nativeSrc":"18435:6:97","nodeType":"YulIdentifier","src":"18435:6:97"},"nativeSrc":"18435:47:97","nodeType":"YulFunctionCall","src":"18435:47:97"},"nativeSrc":"18435:47:97","nodeType":"YulExpressionStatement","src":"18435:47:97"},{"nativeSrc":"18491:45:97","nodeType":"YulVariableDeclaration","src":"18491:45:97","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"18523:5:97","nodeType":"YulIdentifier","src":"18523:5:97"},{"kind":"number","nativeSrc":"18530:4:97","nodeType":"YulLiteral","src":"18530:4:97","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"18519:3:97","nodeType":"YulIdentifier","src":"18519:3:97"},"nativeSrc":"18519:16:97","nodeType":"YulFunctionCall","src":"18519:16:97"}],"functionName":{"name":"mload","nativeSrc":"18513:5:97","nodeType":"YulIdentifier","src":"18513:5:97"},"nativeSrc":"18513:23:97","nodeType":"YulFunctionCall","src":"18513:23:97"},"variables":[{"name":"memberValue0_3","nativeSrc":"18495:14:97","nodeType":"YulTypedName","src":"18495:14:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"18556:3:97","nodeType":"YulIdentifier","src":"18556:3:97"},{"kind":"number","nativeSrc":"18561:4:97","nodeType":"YulLiteral","src":"18561:4:97","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"18552:3:97","nodeType":"YulIdentifier","src":"18552:3:97"},"nativeSrc":"18552:14:97","nodeType":"YulFunctionCall","src":"18552:14:97"},{"arguments":[{"name":"tail_1","nativeSrc":"18572:6:97","nodeType":"YulIdentifier","src":"18572:6:97"},{"name":"pos","nativeSrc":"18580:3:97","nodeType":"YulIdentifier","src":"18580:3:97"}],"functionName":{"name":"sub","nativeSrc":"18568:3:97","nodeType":"YulIdentifier","src":"18568:3:97"},"nativeSrc":"18568:16:97","nodeType":"YulFunctionCall","src":"18568:16:97"}],"functionName":{"name":"mstore","nativeSrc":"18545:6:97","nodeType":"YulIdentifier","src":"18545:6:97"},"nativeSrc":"18545:40:97","nodeType":"YulFunctionCall","src":"18545:40:97"},"nativeSrc":"18545:40:97","nodeType":"YulExpressionStatement","src":"18545:40:97"},{"nativeSrc":"18594:55:97","nodeType":"YulVariableDeclaration","src":"18594:55:97","value":{"arguments":[{"name":"memberValue0_3","nativeSrc":"18626:14:97","nodeType":"YulIdentifier","src":"18626:14:97"},{"name":"tail_1","nativeSrc":"18642:6:97","nodeType":"YulIdentifier","src":"18642:6:97"}],"functionName":{"name":"abi_encode_string","nativeSrc":"18608:17:97","nodeType":"YulIdentifier","src":"18608:17:97"},"nativeSrc":"18608:41:97","nodeType":"YulFunctionCall","src":"18608:41:97"},"variables":[{"name":"tail_2","nativeSrc":"18598:6:97","nodeType":"YulTypedName","src":"18598:6:97","type":""}]},{"nativeSrc":"18658:45:97","nodeType":"YulVariableDeclaration","src":"18658:45:97","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"18690:5:97","nodeType":"YulIdentifier","src":"18690:5:97"},{"kind":"number","nativeSrc":"18697:4:97","nodeType":"YulLiteral","src":"18697:4:97","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"18686:3:97","nodeType":"YulIdentifier","src":"18686:3:97"},"nativeSrc":"18686:16:97","nodeType":"YulFunctionCall","src":"18686:16:97"}],"functionName":{"name":"mload","nativeSrc":"18680:5:97","nodeType":"YulIdentifier","src":"18680:5:97"},"nativeSrc":"18680:23:97","nodeType":"YulFunctionCall","src":"18680:23:97"},"variables":[{"name":"memberValue0_4","nativeSrc":"18662:14:97","nodeType":"YulTypedName","src":"18662:14:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"18723:3:97","nodeType":"YulIdentifier","src":"18723:3:97"},{"kind":"number","nativeSrc":"18728:4:97","nodeType":"YulLiteral","src":"18728:4:97","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"18719:3:97","nodeType":"YulIdentifier","src":"18719:3:97"},"nativeSrc":"18719:14:97","nodeType":"YulFunctionCall","src":"18719:14:97"},{"arguments":[{"name":"tail_2","nativeSrc":"18739:6:97","nodeType":"YulIdentifier","src":"18739:6:97"},{"name":"pos","nativeSrc":"18747:3:97","nodeType":"YulIdentifier","src":"18747:3:97"}],"functionName":{"name":"sub","nativeSrc":"18735:3:97","nodeType":"YulIdentifier","src":"18735:3:97"},"nativeSrc":"18735:16:97","nodeType":"YulFunctionCall","src":"18735:16:97"}],"functionName":{"name":"mstore","nativeSrc":"18712:6:97","nodeType":"YulIdentifier","src":"18712:6:97"},"nativeSrc":"18712:40:97","nodeType":"YulFunctionCall","src":"18712:40:97"},"nativeSrc":"18712:40:97","nodeType":"YulExpressionStatement","src":"18712:40:97"},{"nativeSrc":"18761:55:97","nodeType":"YulVariableDeclaration","src":"18761:55:97","value":{"arguments":[{"name":"memberValue0_4","nativeSrc":"18793:14:97","nodeType":"YulIdentifier","src":"18793:14:97"},{"name":"tail_2","nativeSrc":"18809:6:97","nodeType":"YulIdentifier","src":"18809:6:97"}],"functionName":{"name":"abi_encode_string","nativeSrc":"18775:17:97","nodeType":"YulIdentifier","src":"18775:17:97"},"nativeSrc":"18775:41:97","nodeType":"YulFunctionCall","src":"18775:41:97"},"variables":[{"name":"tail_3","nativeSrc":"18765:6:97","nodeType":"YulTypedName","src":"18765:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"18836:3:97","nodeType":"YulIdentifier","src":"18836:3:97"},{"kind":"number","nativeSrc":"18841:4:97","nodeType":"YulLiteral","src":"18841:4:97","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"18832:3:97","nodeType":"YulIdentifier","src":"18832:3:97"},"nativeSrc":"18832:14:97","nodeType":"YulFunctionCall","src":"18832:14:97"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"18858:5:97","nodeType":"YulIdentifier","src":"18858:5:97"},{"kind":"number","nativeSrc":"18865:4:97","nodeType":"YulLiteral","src":"18865:4:97","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"18854:3:97","nodeType":"YulIdentifier","src":"18854:3:97"},"nativeSrc":"18854:16:97","nodeType":"YulFunctionCall","src":"18854:16:97"}],"functionName":{"name":"mload","nativeSrc":"18848:5:97","nodeType":"YulIdentifier","src":"18848:5:97"},"nativeSrc":"18848:23:97","nodeType":"YulFunctionCall","src":"18848:23:97"}],"functionName":{"name":"mstore","nativeSrc":"18825:6:97","nodeType":"YulIdentifier","src":"18825:6:97"},"nativeSrc":"18825:47:97","nodeType":"YulFunctionCall","src":"18825:47:97"},"nativeSrc":"18825:47:97","nodeType":"YulExpressionStatement","src":"18825:47:97"},{"nativeSrc":"18881:16:97","nodeType":"YulVariableDeclaration","src":"18881:16:97","value":{"kind":"number","nativeSrc":"18891:6:97","nodeType":"YulLiteral","src":"18891:6:97","type":"","value":"0x0100"},"variables":[{"name":"_2","nativeSrc":"18885:2:97","nodeType":"YulTypedName","src":"18885:2:97","type":""}]},{"nativeSrc":"18906:43:97","nodeType":"YulVariableDeclaration","src":"18906:43:97","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"18938:5:97","nodeType":"YulIdentifier","src":"18938:5:97"},{"name":"_2","nativeSrc":"18945:2:97","nodeType":"YulIdentifier","src":"18945:2:97"}],"functionName":{"name":"add","nativeSrc":"18934:3:97","nodeType":"YulIdentifier","src":"18934:3:97"},"nativeSrc":"18934:14:97","nodeType":"YulFunctionCall","src":"18934:14:97"}],"functionName":{"name":"mload","nativeSrc":"18928:5:97","nodeType":"YulIdentifier","src":"18928:5:97"},"nativeSrc":"18928:21:97","nodeType":"YulFunctionCall","src":"18928:21:97"},"variables":[{"name":"memberValue0_5","nativeSrc":"18910:14:97","nodeType":"YulTypedName","src":"18910:14:97","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_5","nativeSrc":"18977:14:97","nodeType":"YulIdentifier","src":"18977:14:97"},{"arguments":[{"name":"pos","nativeSrc":"18997:3:97","nodeType":"YulIdentifier","src":"18997:3:97"},{"name":"_2","nativeSrc":"19002:2:97","nodeType":"YulIdentifier","src":"19002:2:97"}],"functionName":{"name":"add","nativeSrc":"18993:3:97","nodeType":"YulIdentifier","src":"18993:3:97"},"nativeSrc":"18993:12:97","nodeType":"YulFunctionCall","src":"18993:12:97"}],"functionName":{"name":"abi_encode_address","nativeSrc":"18958:18:97","nodeType":"YulIdentifier","src":"18958:18:97"},"nativeSrc":"18958:48:97","nodeType":"YulFunctionCall","src":"18958:48:97"},"nativeSrc":"18958:48:97","nodeType":"YulExpressionStatement","src":"18958:48:97"},{"nativeSrc":"19015:16:97","nodeType":"YulVariableDeclaration","src":"19015:16:97","value":{"kind":"number","nativeSrc":"19025:6:97","nodeType":"YulLiteral","src":"19025:6:97","type":"","value":"0x0120"},"variables":[{"name":"_3","nativeSrc":"19019:2:97","nodeType":"YulTypedName","src":"19019:2:97","type":""}]},{"nativeSrc":"19040:43:97","nodeType":"YulVariableDeclaration","src":"19040:43:97","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"19072:5:97","nodeType":"YulIdentifier","src":"19072:5:97"},{"name":"_3","nativeSrc":"19079:2:97","nodeType":"YulIdentifier","src":"19079:2:97"}],"functionName":{"name":"add","nativeSrc":"19068:3:97","nodeType":"YulIdentifier","src":"19068:3:97"},"nativeSrc":"19068:14:97","nodeType":"YulFunctionCall","src":"19068:14:97"}],"functionName":{"name":"mload","nativeSrc":"19062:5:97","nodeType":"YulIdentifier","src":"19062:5:97"},"nativeSrc":"19062:21:97","nodeType":"YulFunctionCall","src":"19062:21:97"},"variables":[{"name":"memberValue0_6","nativeSrc":"19044:14:97","nodeType":"YulTypedName","src":"19044:14:97","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_6","nativeSrc":"19110:14:97","nodeType":"YulIdentifier","src":"19110:14:97"},{"arguments":[{"name":"pos","nativeSrc":"19130:3:97","nodeType":"YulIdentifier","src":"19130:3:97"},{"name":"_3","nativeSrc":"19135:2:97","nodeType":"YulIdentifier","src":"19135:2:97"}],"functionName":{"name":"add","nativeSrc":"19126:3:97","nodeType":"YulIdentifier","src":"19126:3:97"},"nativeSrc":"19126:12:97","nodeType":"YulFunctionCall","src":"19126:12:97"}],"functionName":{"name":"abi_encode_uint96","nativeSrc":"19092:17:97","nodeType":"YulIdentifier","src":"19092:17:97"},"nativeSrc":"19092:47:97","nodeType":"YulFunctionCall","src":"19092:47:97"},"nativeSrc":"19092:47:97","nodeType":"YulExpressionStatement","src":"19092:47:97"},{"nativeSrc":"19148:16:97","nodeType":"YulVariableDeclaration","src":"19148:16:97","value":{"kind":"number","nativeSrc":"19158:6:97","nodeType":"YulLiteral","src":"19158:6:97","type":"","value":"0x0140"},"variables":[{"name":"_4","nativeSrc":"19152:2:97","nodeType":"YulTypedName","src":"19152:2:97","type":""}]},{"nativeSrc":"19173:43:97","nodeType":"YulVariableDeclaration","src":"19173:43:97","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"19205:5:97","nodeType":"YulIdentifier","src":"19205:5:97"},{"name":"_4","nativeSrc":"19212:2:97","nodeType":"YulIdentifier","src":"19212:2:97"}],"functionName":{"name":"add","nativeSrc":"19201:3:97","nodeType":"YulIdentifier","src":"19201:3:97"},"nativeSrc":"19201:14:97","nodeType":"YulFunctionCall","src":"19201:14:97"}],"functionName":{"name":"mload","nativeSrc":"19195:5:97","nodeType":"YulIdentifier","src":"19195:5:97"},"nativeSrc":"19195:21:97","nodeType":"YulFunctionCall","src":"19195:21:97"},"variables":[{"name":"memberValue0_7","nativeSrc":"19177:14:97","nodeType":"YulTypedName","src":"19177:14:97","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_7","nativeSrc":"19243:14:97","nodeType":"YulIdentifier","src":"19243:14:97"},{"arguments":[{"name":"pos","nativeSrc":"19263:3:97","nodeType":"YulIdentifier","src":"19263:3:97"},{"name":"_4","nativeSrc":"19268:2:97","nodeType":"YulIdentifier","src":"19268:2:97"}],"functionName":{"name":"add","nativeSrc":"19259:3:97","nodeType":"YulIdentifier","src":"19259:3:97"},"nativeSrc":"19259:12:97","nodeType":"YulFunctionCall","src":"19259:12:97"}],"functionName":{"name":"abi_encode_uint32","nativeSrc":"19225:17:97","nodeType":"YulIdentifier","src":"19225:17:97"},"nativeSrc":"19225:47:97","nodeType":"YulFunctionCall","src":"19225:47:97"},"nativeSrc":"19225:47:97","nodeType":"YulExpressionStatement","src":"19225:47:97"},{"nativeSrc":"19281:16:97","nodeType":"YulVariableDeclaration","src":"19281:16:97","value":{"kind":"number","nativeSrc":"19291:6:97","nodeType":"YulLiteral","src":"19291:6:97","type":"","value":"0x0160"},"variables":[{"name":"_5","nativeSrc":"19285:2:97","nodeType":"YulTypedName","src":"19285:2:97","type":""}]},{"nativeSrc":"19306:43:97","nodeType":"YulVariableDeclaration","src":"19306:43:97","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"19338:5:97","nodeType":"YulIdentifier","src":"19338:5:97"},{"name":"_5","nativeSrc":"19345:2:97","nodeType":"YulIdentifier","src":"19345:2:97"}],"functionName":{"name":"add","nativeSrc":"19334:3:97","nodeType":"YulIdentifier","src":"19334:3:97"},"nativeSrc":"19334:14:97","nodeType":"YulFunctionCall","src":"19334:14:97"}],"functionName":{"name":"mload","nativeSrc":"19328:5:97","nodeType":"YulIdentifier","src":"19328:5:97"},"nativeSrc":"19328:21:97","nodeType":"YulFunctionCall","src":"19328:21:97"},"variables":[{"name":"memberValue0_8","nativeSrc":"19310:14:97","nodeType":"YulTypedName","src":"19310:14:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"19369:3:97","nodeType":"YulIdentifier","src":"19369:3:97"},{"name":"_5","nativeSrc":"19374:2:97","nodeType":"YulIdentifier","src":"19374:2:97"}],"functionName":{"name":"add","nativeSrc":"19365:3:97","nodeType":"YulIdentifier","src":"19365:3:97"},"nativeSrc":"19365:12:97","nodeType":"YulFunctionCall","src":"19365:12:97"},{"arguments":[{"name":"tail_3","nativeSrc":"19383:6:97","nodeType":"YulIdentifier","src":"19383:6:97"},{"name":"pos","nativeSrc":"19391:3:97","nodeType":"YulIdentifier","src":"19391:3:97"}],"functionName":{"name":"sub","nativeSrc":"19379:3:97","nodeType":"YulIdentifier","src":"19379:3:97"},"nativeSrc":"19379:16:97","nodeType":"YulFunctionCall","src":"19379:16:97"}],"functionName":{"name":"mstore","nativeSrc":"19358:6:97","nodeType":"YulIdentifier","src":"19358:6:97"},"nativeSrc":"19358:38:97","nodeType":"YulFunctionCall","src":"19358:38:97"},"nativeSrc":"19358:38:97","nodeType":"YulExpressionStatement","src":"19358:38:97"},{"nativeSrc":"19405:48:97","nodeType":"YulAssignment","src":"19405:48:97","value":{"arguments":[{"name":"memberValue0_8","nativeSrc":"19430:14:97","nodeType":"YulIdentifier","src":"19430:14:97"},{"name":"tail_3","nativeSrc":"19446:6:97","nodeType":"YulIdentifier","src":"19446:6:97"}],"functionName":{"name":"abi_encode_string","nativeSrc":"19412:17:97","nodeType":"YulIdentifier","src":"19412:17:97"},"nativeSrc":"19412:41:97","nodeType":"YulFunctionCall","src":"19412:41:97"},"variableNames":[{"name":"end","nativeSrc":"19405:3:97","nodeType":"YulIdentifier","src":"19405:3:97"}]}]},"name":"abi_encode_struct_RiskParameterUpdate","nativeSrc":"17867:1592:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17914:5:97","nodeType":"YulTypedName","src":"17914:5:97","type":""},{"name":"pos","nativeSrc":"17921:3:97","nodeType":"YulTypedName","src":"17921:3:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"17929:3:97","nodeType":"YulTypedName","src":"17929:3:97","type":""}],"src":"17867:1592:97"},{"body":{"nativeSrc":"19641:119:97","nodeType":"YulBlock","src":"19641:119:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"19658:9:97","nodeType":"YulIdentifier","src":"19658:9:97"},{"kind":"number","nativeSrc":"19669:2:97","nodeType":"YulLiteral","src":"19669:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"19651:6:97","nodeType":"YulIdentifier","src":"19651:6:97"},"nativeSrc":"19651:21:97","nodeType":"YulFunctionCall","src":"19651:21:97"},"nativeSrc":"19651:21:97","nodeType":"YulExpressionStatement","src":"19651:21:97"},{"nativeSrc":"19681:73:97","nodeType":"YulAssignment","src":"19681:73:97","value":{"arguments":[{"name":"value0","nativeSrc":"19727:6:97","nodeType":"YulIdentifier","src":"19727:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"19739:9:97","nodeType":"YulIdentifier","src":"19739:9:97"},{"kind":"number","nativeSrc":"19750:2:97","nodeType":"YulLiteral","src":"19750:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19735:3:97","nodeType":"YulIdentifier","src":"19735:3:97"},"nativeSrc":"19735:18:97","nodeType":"YulFunctionCall","src":"19735:18:97"}],"functionName":{"name":"abi_encode_struct_RiskParameterUpdate","nativeSrc":"19689:37:97","nodeType":"YulIdentifier","src":"19689:37:97"},"nativeSrc":"19689:65:97","nodeType":"YulFunctionCall","src":"19689:65:97"},"variableNames":[{"name":"tail","nativeSrc":"19681:4:97","nodeType":"YulIdentifier","src":"19681:4:97"}]}]},"name":"abi_encode_tuple_t_struct$_RiskParameterUpdate_$16568_memory_ptr__to_t_struct$_RiskParameterUpdate_$16568_memory_ptr__fromStack_reversed","nativeSrc":"19464:296:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19610:9:97","nodeType":"YulTypedName","src":"19610:9:97","type":""},{"name":"value0","nativeSrc":"19621:6:97","nodeType":"YulTypedName","src":"19621:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"19632:4:97","nodeType":"YulTypedName","src":"19632:4:97","type":""}],"src":"19464:296:97"},{"body":{"nativeSrc":"19882:151:97","nodeType":"YulBlock","src":"19882:151:97","statements":[{"nativeSrc":"19892:26:97","nodeType":"YulAssignment","src":"19892:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"19904:9:97","nodeType":"YulIdentifier","src":"19904:9:97"},{"kind":"number","nativeSrc":"19915:2:97","nodeType":"YulLiteral","src":"19915:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"19900:3:97","nodeType":"YulIdentifier","src":"19900:3:97"},"nativeSrc":"19900:18:97","nodeType":"YulFunctionCall","src":"19900:18:97"},"variableNames":[{"name":"tail","nativeSrc":"19892:4:97","nodeType":"YulIdentifier","src":"19892:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"19934:9:97","nodeType":"YulIdentifier","src":"19934:9:97"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"19959:6:97","nodeType":"YulIdentifier","src":"19959:6:97"}],"functionName":{"name":"iszero","nativeSrc":"19952:6:97","nodeType":"YulIdentifier","src":"19952:6:97"},"nativeSrc":"19952:14:97","nodeType":"YulFunctionCall","src":"19952:14:97"}],"functionName":{"name":"iszero","nativeSrc":"19945:6:97","nodeType":"YulIdentifier","src":"19945:6:97"},"nativeSrc":"19945:22:97","nodeType":"YulFunctionCall","src":"19945:22:97"}],"functionName":{"name":"mstore","nativeSrc":"19927:6:97","nodeType":"YulIdentifier","src":"19927:6:97"},"nativeSrc":"19927:41:97","nodeType":"YulFunctionCall","src":"19927:41:97"},"nativeSrc":"19927:41:97","nodeType":"YulExpressionStatement","src":"19927:41:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19988:9:97","nodeType":"YulIdentifier","src":"19988:9:97"},{"kind":"number","nativeSrc":"19999:2:97","nodeType":"YulLiteral","src":"19999:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19984:3:97","nodeType":"YulIdentifier","src":"19984:3:97"},"nativeSrc":"19984:18:97","nodeType":"YulFunctionCall","src":"19984:18:97"},{"arguments":[{"arguments":[{"name":"value1","nativeSrc":"20018:6:97","nodeType":"YulIdentifier","src":"20018:6:97"}],"functionName":{"name":"iszero","nativeSrc":"20011:6:97","nodeType":"YulIdentifier","src":"20011:6:97"},"nativeSrc":"20011:14:97","nodeType":"YulFunctionCall","src":"20011:14:97"}],"functionName":{"name":"iszero","nativeSrc":"20004:6:97","nodeType":"YulIdentifier","src":"20004:6:97"},"nativeSrc":"20004:22:97","nodeType":"YulFunctionCall","src":"20004:22:97"}],"functionName":{"name":"mstore","nativeSrc":"19977:6:97","nodeType":"YulIdentifier","src":"19977:6:97"},"nativeSrc":"19977:50:97","nodeType":"YulFunctionCall","src":"19977:50:97"},"nativeSrc":"19977:50:97","nodeType":"YulExpressionStatement","src":"19977:50:97"}]},"name":"abi_encode_tuple_t_bool_t_bool__to_t_bool_t_bool__fromStack_reversed","nativeSrc":"19765:268:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19843:9:97","nodeType":"YulTypedName","src":"19843:9:97","type":""},{"name":"value1","nativeSrc":"19854:6:97","nodeType":"YulTypedName","src":"19854:6:97","type":""},{"name":"value0","nativeSrc":"19862:6:97","nodeType":"YulTypedName","src":"19862:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"19873:4:97","nodeType":"YulTypedName","src":"19873:4:97","type":""}],"src":"19765:268:97"},{"body":{"nativeSrc":"20185:124:97","nodeType":"YulBlock","src":"20185:124:97","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"20208:3:97","nodeType":"YulIdentifier","src":"20208:3:97"},{"name":"value0","nativeSrc":"20213:6:97","nodeType":"YulIdentifier","src":"20213:6:97"},{"name":"value1","nativeSrc":"20221:6:97","nodeType":"YulIdentifier","src":"20221:6:97"}],"functionName":{"name":"calldatacopy","nativeSrc":"20195:12:97","nodeType":"YulIdentifier","src":"20195:12:97"},"nativeSrc":"20195:33:97","nodeType":"YulFunctionCall","src":"20195:33:97"},"nativeSrc":"20195:33:97","nodeType":"YulExpressionStatement","src":"20195:33:97"},{"nativeSrc":"20237:26:97","nodeType":"YulVariableDeclaration","src":"20237:26:97","value":{"arguments":[{"name":"pos","nativeSrc":"20251:3:97","nodeType":"YulIdentifier","src":"20251:3:97"},{"name":"value1","nativeSrc":"20256:6:97","nodeType":"YulIdentifier","src":"20256:6:97"}],"functionName":{"name":"add","nativeSrc":"20247:3:97","nodeType":"YulIdentifier","src":"20247:3:97"},"nativeSrc":"20247:16:97","nodeType":"YulFunctionCall","src":"20247:16:97"},"variables":[{"name":"_1","nativeSrc":"20241:2:97","nodeType":"YulTypedName","src":"20241:2:97","type":""}]},{"expression":{"arguments":[{"name":"_1","nativeSrc":"20279:2:97","nodeType":"YulIdentifier","src":"20279:2:97"},{"kind":"number","nativeSrc":"20283:1:97","nodeType":"YulLiteral","src":"20283:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"20272:6:97","nodeType":"YulIdentifier","src":"20272:6:97"},"nativeSrc":"20272:13:97","nodeType":"YulFunctionCall","src":"20272:13:97"},"nativeSrc":"20272:13:97","nodeType":"YulExpressionStatement","src":"20272:13:97"},{"nativeSrc":"20294:9:97","nodeType":"YulAssignment","src":"20294:9:97","value":{"name":"_1","nativeSrc":"20301:2:97","nodeType":"YulIdentifier","src":"20301:2:97"},"variableNames":[{"name":"end","nativeSrc":"20294:3:97","nodeType":"YulIdentifier","src":"20294:3:97"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"20038:271:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"20153:3:97","nodeType":"YulTypedName","src":"20153:3:97","type":""},{"name":"value1","nativeSrc":"20158:6:97","nodeType":"YulTypedName","src":"20158:6:97","type":""},{"name":"value0","nativeSrc":"20166:6:97","nodeType":"YulTypedName","src":"20166:6:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"20177:3:97","nodeType":"YulTypedName","src":"20177:3:97","type":""}],"src":"20038:271:97"},{"body":{"nativeSrc":"20441:136:97","nodeType":"YulBlock","src":"20441:136:97","statements":[{"nativeSrc":"20451:26:97","nodeType":"YulAssignment","src":"20451:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"20463:9:97","nodeType":"YulIdentifier","src":"20463:9:97"},{"kind":"number","nativeSrc":"20474:2:97","nodeType":"YulLiteral","src":"20474:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"20459:3:97","nodeType":"YulIdentifier","src":"20459:3:97"},"nativeSrc":"20459:18:97","nodeType":"YulFunctionCall","src":"20459:18:97"},"variableNames":[{"name":"tail","nativeSrc":"20451:4:97","nodeType":"YulIdentifier","src":"20451:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"20493:9:97","nodeType":"YulIdentifier","src":"20493:9:97"},{"arguments":[{"name":"value0","nativeSrc":"20508:6:97","nodeType":"YulIdentifier","src":"20508:6:97"},{"kind":"number","nativeSrc":"20516:10:97","nodeType":"YulLiteral","src":"20516:10:97","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nativeSrc":"20504:3:97","nodeType":"YulIdentifier","src":"20504:3:97"},"nativeSrc":"20504:23:97","nodeType":"YulFunctionCall","src":"20504:23:97"}],"functionName":{"name":"mstore","nativeSrc":"20486:6:97","nodeType":"YulIdentifier","src":"20486:6:97"},"nativeSrc":"20486:42:97","nodeType":"YulFunctionCall","src":"20486:42:97"},"nativeSrc":"20486:42:97","nodeType":"YulExpressionStatement","src":"20486:42:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20548:9:97","nodeType":"YulIdentifier","src":"20548:9:97"},{"kind":"number","nativeSrc":"20559:2:97","nodeType":"YulLiteral","src":"20559:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"20544:3:97","nodeType":"YulIdentifier","src":"20544:3:97"},"nativeSrc":"20544:18:97","nodeType":"YulFunctionCall","src":"20544:18:97"},{"name":"value1","nativeSrc":"20564:6:97","nodeType":"YulIdentifier","src":"20564:6:97"}],"functionName":{"name":"mstore","nativeSrc":"20537:6:97","nodeType":"YulIdentifier","src":"20537:6:97"},"nativeSrc":"20537:34:97","nodeType":"YulFunctionCall","src":"20537:34:97"},"nativeSrc":"20537:34:97","nodeType":"YulExpressionStatement","src":"20537:34:97"}]},"name":"abi_encode_tuple_t_uint32_t_bytes32__to_t_uint32_t_bytes32__fromStack_reversed","nativeSrc":"20314:263:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20402:9:97","nodeType":"YulTypedName","src":"20402:9:97","type":""},{"name":"value1","nativeSrc":"20413:6:97","nodeType":"YulTypedName","src":"20413:6:97","type":""},{"name":"value0","nativeSrc":"20421:6:97","nodeType":"YulTypedName","src":"20421:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"20432:4:97","nodeType":"YulTypedName","src":"20432:4:97","type":""}],"src":"20314:263:97"},{"body":{"nativeSrc":"20649:259:97","nodeType":"YulBlock","src":"20649:259:97","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"20666:3:97","nodeType":"YulIdentifier","src":"20666:3:97"},{"name":"length","nativeSrc":"20671:6:97","nodeType":"YulIdentifier","src":"20671:6:97"}],"functionName":{"name":"mstore","nativeSrc":"20659:6:97","nodeType":"YulIdentifier","src":"20659:6:97"},"nativeSrc":"20659:19:97","nodeType":"YulFunctionCall","src":"20659:19:97"},"nativeSrc":"20659:19:97","nodeType":"YulExpressionStatement","src":"20659:19:97"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"20704:3:97","nodeType":"YulIdentifier","src":"20704:3:97"},{"kind":"number","nativeSrc":"20709:4:97","nodeType":"YulLiteral","src":"20709:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"20700:3:97","nodeType":"YulIdentifier","src":"20700:3:97"},"nativeSrc":"20700:14:97","nodeType":"YulFunctionCall","src":"20700:14:97"},{"name":"start","nativeSrc":"20716:5:97","nodeType":"YulIdentifier","src":"20716:5:97"},{"name":"length","nativeSrc":"20723:6:97","nodeType":"YulIdentifier","src":"20723:6:97"}],"functionName":{"name":"calldatacopy","nativeSrc":"20687:12:97","nodeType":"YulIdentifier","src":"20687:12:97"},"nativeSrc":"20687:43:97","nodeType":"YulFunctionCall","src":"20687:43:97"},"nativeSrc":"20687:43:97","nodeType":"YulExpressionStatement","src":"20687:43:97"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"20754:3:97","nodeType":"YulIdentifier","src":"20754:3:97"},{"name":"length","nativeSrc":"20759:6:97","nodeType":"YulIdentifier","src":"20759:6:97"}],"functionName":{"name":"add","nativeSrc":"20750:3:97","nodeType":"YulIdentifier","src":"20750:3:97"},"nativeSrc":"20750:16:97","nodeType":"YulFunctionCall","src":"20750:16:97"},{"kind":"number","nativeSrc":"20768:4:97","nodeType":"YulLiteral","src":"20768:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"20746:3:97","nodeType":"YulIdentifier","src":"20746:3:97"},"nativeSrc":"20746:27:97","nodeType":"YulFunctionCall","src":"20746:27:97"},{"kind":"number","nativeSrc":"20775:1:97","nodeType":"YulLiteral","src":"20775:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"20739:6:97","nodeType":"YulIdentifier","src":"20739:6:97"},"nativeSrc":"20739:38:97","nodeType":"YulFunctionCall","src":"20739:38:97"},"nativeSrc":"20739:38:97","nodeType":"YulExpressionStatement","src":"20739:38:97"},{"nativeSrc":"20786:116:97","nodeType":"YulAssignment","src":"20786:116:97","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"20801:3:97","nodeType":"YulIdentifier","src":"20801:3:97"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"20814:6:97","nodeType":"YulIdentifier","src":"20814:6:97"},{"kind":"number","nativeSrc":"20822:2:97","nodeType":"YulLiteral","src":"20822:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"20810:3:97","nodeType":"YulIdentifier","src":"20810:3:97"},"nativeSrc":"20810:15:97","nodeType":"YulFunctionCall","src":"20810:15:97"},{"kind":"number","nativeSrc":"20827:66:97","nodeType":"YulLiteral","src":"20827:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"20806:3:97","nodeType":"YulIdentifier","src":"20806:3:97"},"nativeSrc":"20806:88:97","nodeType":"YulFunctionCall","src":"20806:88:97"}],"functionName":{"name":"add","nativeSrc":"20797:3:97","nodeType":"YulIdentifier","src":"20797:3:97"},"nativeSrc":"20797:98:97","nodeType":"YulFunctionCall","src":"20797:98:97"},{"kind":"number","nativeSrc":"20897:4:97","nodeType":"YulLiteral","src":"20897:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"20793:3:97","nodeType":"YulIdentifier","src":"20793:3:97"},"nativeSrc":"20793:109:97","nodeType":"YulFunctionCall","src":"20793:109:97"},"variableNames":[{"name":"end","nativeSrc":"20786:3:97","nodeType":"YulIdentifier","src":"20786:3:97"}]}]},"name":"abi_encode_string_calldata","nativeSrc":"20582:326:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"20618:5:97","nodeType":"YulTypedName","src":"20618:5:97","type":""},{"name":"length","nativeSrc":"20625:6:97","nodeType":"YulTypedName","src":"20625:6:97","type":""},{"name":"pos","nativeSrc":"20633:3:97","nodeType":"YulTypedName","src":"20633:3:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"20641:3:97","nodeType":"YulTypedName","src":"20641:3:97","type":""}],"src":"20582:326:97"},{"body":{"nativeSrc":"21088:234:97","nodeType":"YulBlock","src":"21088:234:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"21105:9:97","nodeType":"YulIdentifier","src":"21105:9:97"},{"kind":"number","nativeSrc":"21116:2:97","nodeType":"YulLiteral","src":"21116:2:97","type":"","value":"96"}],"functionName":{"name":"mstore","nativeSrc":"21098:6:97","nodeType":"YulIdentifier","src":"21098:6:97"},"nativeSrc":"21098:21:97","nodeType":"YulFunctionCall","src":"21098:21:97"},"nativeSrc":"21098:21:97","nodeType":"YulExpressionStatement","src":"21098:21:97"},{"nativeSrc":"21128:70:97","nodeType":"YulAssignment","src":"21128:70:97","value":{"arguments":[{"name":"value0","nativeSrc":"21163:6:97","nodeType":"YulIdentifier","src":"21163:6:97"},{"name":"value1","nativeSrc":"21171:6:97","nodeType":"YulIdentifier","src":"21171:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"21183:9:97","nodeType":"YulIdentifier","src":"21183:9:97"},{"kind":"number","nativeSrc":"21194:2:97","nodeType":"YulLiteral","src":"21194:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"21179:3:97","nodeType":"YulIdentifier","src":"21179:3:97"},"nativeSrc":"21179:18:97","nodeType":"YulFunctionCall","src":"21179:18:97"}],"functionName":{"name":"abi_encode_string_calldata","nativeSrc":"21136:26:97","nodeType":"YulIdentifier","src":"21136:26:97"},"nativeSrc":"21136:62:97","nodeType":"YulFunctionCall","src":"21136:62:97"},"variableNames":[{"name":"tail","nativeSrc":"21128:4:97","nodeType":"YulIdentifier","src":"21128:4:97"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21218:9:97","nodeType":"YulIdentifier","src":"21218:9:97"},{"kind":"number","nativeSrc":"21229:2:97","nodeType":"YulLiteral","src":"21229:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21214:3:97","nodeType":"YulIdentifier","src":"21214:3:97"},"nativeSrc":"21214:18:97","nodeType":"YulFunctionCall","src":"21214:18:97"},{"arguments":[{"arguments":[{"name":"value2","nativeSrc":"21248:6:97","nodeType":"YulIdentifier","src":"21248:6:97"}],"functionName":{"name":"iszero","nativeSrc":"21241:6:97","nodeType":"YulIdentifier","src":"21241:6:97"},"nativeSrc":"21241:14:97","nodeType":"YulFunctionCall","src":"21241:14:97"}],"functionName":{"name":"iszero","nativeSrc":"21234:6:97","nodeType":"YulIdentifier","src":"21234:6:97"},"nativeSrc":"21234:22:97","nodeType":"YulFunctionCall","src":"21234:22:97"}],"functionName":{"name":"mstore","nativeSrc":"21207:6:97","nodeType":"YulIdentifier","src":"21207:6:97"},"nativeSrc":"21207:50:97","nodeType":"YulFunctionCall","src":"21207:50:97"},"nativeSrc":"21207:50:97","nodeType":"YulExpressionStatement","src":"21207:50:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21277:9:97","nodeType":"YulIdentifier","src":"21277:9:97"},{"kind":"number","nativeSrc":"21288:2:97","nodeType":"YulLiteral","src":"21288:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"21273:3:97","nodeType":"YulIdentifier","src":"21273:3:97"},"nativeSrc":"21273:18:97","nodeType":"YulFunctionCall","src":"21273:18:97"},{"arguments":[{"arguments":[{"name":"value3","nativeSrc":"21307:6:97","nodeType":"YulIdentifier","src":"21307:6:97"}],"functionName":{"name":"iszero","nativeSrc":"21300:6:97","nodeType":"YulIdentifier","src":"21300:6:97"},"nativeSrc":"21300:14:97","nodeType":"YulFunctionCall","src":"21300:14:97"}],"functionName":{"name":"iszero","nativeSrc":"21293:6:97","nodeType":"YulIdentifier","src":"21293:6:97"},"nativeSrc":"21293:22:97","nodeType":"YulFunctionCall","src":"21293:22:97"}],"functionName":{"name":"mstore","nativeSrc":"21266:6:97","nodeType":"YulIdentifier","src":"21266:6:97"},"nativeSrc":"21266:50:97","nodeType":"YulFunctionCall","src":"21266:50:97"},"nativeSrc":"21266:50:97","nodeType":"YulExpressionStatement","src":"21266:50:97"}]},"name":"abi_encode_tuple_t_string_calldata_ptr_t_bool_t_bool__to_t_string_memory_ptr_t_bool_t_bool__fromStack_reversed","nativeSrc":"20913:409:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21033:9:97","nodeType":"YulTypedName","src":"21033:9:97","type":""},{"name":"value3","nativeSrc":"21044:6:97","nodeType":"YulTypedName","src":"21044:6:97","type":""},{"name":"value2","nativeSrc":"21052:6:97","nodeType":"YulTypedName","src":"21052:6:97","type":""},{"name":"value1","nativeSrc":"21060:6:97","nodeType":"YulTypedName","src":"21060:6:97","type":""},{"name":"value0","nativeSrc":"21068:6:97","nodeType":"YulTypedName","src":"21068:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"21079:4:97","nodeType":"YulTypedName","src":"21079:4:97","type":""}],"src":"20913:409:97"},{"body":{"nativeSrc":"21501:236:97","nodeType":"YulBlock","src":"21501:236:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"21518:9:97","nodeType":"YulIdentifier","src":"21518:9:97"},{"kind":"number","nativeSrc":"21529:2:97","nodeType":"YulLiteral","src":"21529:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"21511:6:97","nodeType":"YulIdentifier","src":"21511:6:97"},"nativeSrc":"21511:21:97","nodeType":"YulFunctionCall","src":"21511:21:97"},"nativeSrc":"21511:21:97","nodeType":"YulExpressionStatement","src":"21511:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21552:9:97","nodeType":"YulIdentifier","src":"21552:9:97"},{"kind":"number","nativeSrc":"21563:2:97","nodeType":"YulLiteral","src":"21563:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21548:3:97","nodeType":"YulIdentifier","src":"21548:3:97"},"nativeSrc":"21548:18:97","nodeType":"YulFunctionCall","src":"21548:18:97"},{"kind":"number","nativeSrc":"21568:2:97","nodeType":"YulLiteral","src":"21568:2:97","type":"","value":"46"}],"functionName":{"name":"mstore","nativeSrc":"21541:6:97","nodeType":"YulIdentifier","src":"21541:6:97"},"nativeSrc":"21541:30:97","nodeType":"YulFunctionCall","src":"21541:30:97"},"nativeSrc":"21541:30:97","nodeType":"YulExpressionStatement","src":"21541:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21591:9:97","nodeType":"YulIdentifier","src":"21591:9:97"},{"kind":"number","nativeSrc":"21602:2:97","nodeType":"YulLiteral","src":"21602:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"21587:3:97","nodeType":"YulIdentifier","src":"21587:3:97"},"nativeSrc":"21587:18:97","nodeType":"YulFunctionCall","src":"21587:18:97"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561","kind":"string","nativeSrc":"21607:34:97","nodeType":"YulLiteral","src":"21607:34:97","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nativeSrc":"21580:6:97","nodeType":"YulIdentifier","src":"21580:6:97"},"nativeSrc":"21580:62:97","nodeType":"YulFunctionCall","src":"21580:62:97"},"nativeSrc":"21580:62:97","nodeType":"YulExpressionStatement","src":"21580:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21662:9:97","nodeType":"YulIdentifier","src":"21662:9:97"},{"kind":"number","nativeSrc":"21673:2:97","nodeType":"YulLiteral","src":"21673:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"21658:3:97","nodeType":"YulIdentifier","src":"21658:3:97"},"nativeSrc":"21658:18:97","nodeType":"YulFunctionCall","src":"21658:18:97"},{"hexValue":"647920696e697469616c697a6564","kind":"string","nativeSrc":"21678:16:97","nodeType":"YulLiteral","src":"21678:16:97","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nativeSrc":"21651:6:97","nodeType":"YulIdentifier","src":"21651:6:97"},"nativeSrc":"21651:44:97","nodeType":"YulFunctionCall","src":"21651:44:97"},"nativeSrc":"21651:44:97","nodeType":"YulExpressionStatement","src":"21651:44:97"},{"nativeSrc":"21704:27:97","nodeType":"YulAssignment","src":"21704:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"21716:9:97","nodeType":"YulIdentifier","src":"21716:9:97"},{"kind":"number","nativeSrc":"21727:3:97","nodeType":"YulLiteral","src":"21727:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"21712:3:97","nodeType":"YulIdentifier","src":"21712:3:97"},"nativeSrc":"21712:19:97","nodeType":"YulFunctionCall","src":"21712:19:97"},"variableNames":[{"name":"tail","nativeSrc":"21704:4:97","nodeType":"YulIdentifier","src":"21704:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"21327:410:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21478:9:97","nodeType":"YulTypedName","src":"21478:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"21492:4:97","nodeType":"YulTypedName","src":"21492:4:97","type":""}],"src":"21327:410:97"},{"body":{"nativeSrc":"21849:87:97","nodeType":"YulBlock","src":"21849:87:97","statements":[{"nativeSrc":"21859:26:97","nodeType":"YulAssignment","src":"21859:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"21871:9:97","nodeType":"YulIdentifier","src":"21871:9:97"},{"kind":"number","nativeSrc":"21882:2:97","nodeType":"YulLiteral","src":"21882:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21867:3:97","nodeType":"YulIdentifier","src":"21867:3:97"},"nativeSrc":"21867:18:97","nodeType":"YulFunctionCall","src":"21867:18:97"},"variableNames":[{"name":"tail","nativeSrc":"21859:4:97","nodeType":"YulIdentifier","src":"21859:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"21901:9:97","nodeType":"YulIdentifier","src":"21901:9:97"},{"arguments":[{"name":"value0","nativeSrc":"21916:6:97","nodeType":"YulIdentifier","src":"21916:6:97"},{"kind":"number","nativeSrc":"21924:4:97","nodeType":"YulLiteral","src":"21924:4:97","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"21912:3:97","nodeType":"YulIdentifier","src":"21912:3:97"},"nativeSrc":"21912:17:97","nodeType":"YulFunctionCall","src":"21912:17:97"}],"functionName":{"name":"mstore","nativeSrc":"21894:6:97","nodeType":"YulIdentifier","src":"21894:6:97"},"nativeSrc":"21894:36:97","nodeType":"YulFunctionCall","src":"21894:36:97"},"nativeSrc":"21894:36:97","nodeType":"YulExpressionStatement","src":"21894:36:97"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nativeSrc":"21742:194:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21818:9:97","nodeType":"YulTypedName","src":"21818:9:97","type":""},{"name":"value0","nativeSrc":"21829:6:97","nodeType":"YulTypedName","src":"21829:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"21840:4:97","nodeType":"YulTypedName","src":"21840:4:97","type":""}],"src":"21742:194:97"},{"body":{"nativeSrc":"22005:379:97","nodeType":"YulBlock","src":"22005:379:97","statements":[{"body":{"nativeSrc":"22054:16:97","nodeType":"YulBlock","src":"22054:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"22063:1:97","nodeType":"YulLiteral","src":"22063:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"22066:1:97","nodeType":"YulLiteral","src":"22066:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"22056:6:97","nodeType":"YulIdentifier","src":"22056:6:97"},"nativeSrc":"22056:12:97","nodeType":"YulFunctionCall","src":"22056:12:97"},"nativeSrc":"22056:12:97","nodeType":"YulExpressionStatement","src":"22056:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"22033:6:97","nodeType":"YulIdentifier","src":"22033:6:97"},{"kind":"number","nativeSrc":"22041:4:97","nodeType":"YulLiteral","src":"22041:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"22029:3:97","nodeType":"YulIdentifier","src":"22029:3:97"},"nativeSrc":"22029:17:97","nodeType":"YulFunctionCall","src":"22029:17:97"},{"name":"end","nativeSrc":"22048:3:97","nodeType":"YulIdentifier","src":"22048:3:97"}],"functionName":{"name":"slt","nativeSrc":"22025:3:97","nodeType":"YulIdentifier","src":"22025:3:97"},"nativeSrc":"22025:27:97","nodeType":"YulFunctionCall","src":"22025:27:97"}],"functionName":{"name":"iszero","nativeSrc":"22018:6:97","nodeType":"YulIdentifier","src":"22018:6:97"},"nativeSrc":"22018:35:97","nodeType":"YulFunctionCall","src":"22018:35:97"},"nativeSrc":"22015:55:97","nodeType":"YulIf","src":"22015:55:97"},{"nativeSrc":"22079:23:97","nodeType":"YulVariableDeclaration","src":"22079:23:97","value":{"arguments":[{"name":"offset","nativeSrc":"22095:6:97","nodeType":"YulIdentifier","src":"22095:6:97"}],"functionName":{"name":"mload","nativeSrc":"22089:5:97","nodeType":"YulIdentifier","src":"22089:5:97"},"nativeSrc":"22089:13:97","nodeType":"YulFunctionCall","src":"22089:13:97"},"variables":[{"name":"_1","nativeSrc":"22083:2:97","nodeType":"YulTypedName","src":"22083:2:97","type":""}]},{"nativeSrc":"22111:64:97","nodeType":"YulVariableDeclaration","src":"22111:64:97","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"22171:2:97","nodeType":"YulIdentifier","src":"22171:2:97"}],"functionName":{"name":"array_allocation_size_string","nativeSrc":"22142:28:97","nodeType":"YulIdentifier","src":"22142:28:97"},"nativeSrc":"22142:32:97","nodeType":"YulFunctionCall","src":"22142:32:97"}],"functionName":{"name":"allocate_memory","nativeSrc":"22126:15:97","nodeType":"YulIdentifier","src":"22126:15:97"},"nativeSrc":"22126:49:97","nodeType":"YulFunctionCall","src":"22126:49:97"},"variables":[{"name":"array_1","nativeSrc":"22115:7:97","nodeType":"YulTypedName","src":"22115:7:97","type":""}]},{"expression":{"arguments":[{"name":"array_1","nativeSrc":"22191:7:97","nodeType":"YulIdentifier","src":"22191:7:97"},{"name":"_1","nativeSrc":"22200:2:97","nodeType":"YulIdentifier","src":"22200:2:97"}],"functionName":{"name":"mstore","nativeSrc":"22184:6:97","nodeType":"YulIdentifier","src":"22184:6:97"},"nativeSrc":"22184:19:97","nodeType":"YulFunctionCall","src":"22184:19:97"},"nativeSrc":"22184:19:97","nodeType":"YulExpressionStatement","src":"22184:19:97"},{"body":{"nativeSrc":"22251:16:97","nodeType":"YulBlock","src":"22251:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"22260:1:97","nodeType":"YulLiteral","src":"22260:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"22263:1:97","nodeType":"YulLiteral","src":"22263:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"22253:6:97","nodeType":"YulIdentifier","src":"22253:6:97"},"nativeSrc":"22253:12:97","nodeType":"YulFunctionCall","src":"22253:12:97"},"nativeSrc":"22253:12:97","nodeType":"YulExpressionStatement","src":"22253:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"22226:6:97","nodeType":"YulIdentifier","src":"22226:6:97"},{"name":"_1","nativeSrc":"22234:2:97","nodeType":"YulIdentifier","src":"22234:2:97"}],"functionName":{"name":"add","nativeSrc":"22222:3:97","nodeType":"YulIdentifier","src":"22222:3:97"},"nativeSrc":"22222:15:97","nodeType":"YulFunctionCall","src":"22222:15:97"},{"kind":"number","nativeSrc":"22239:4:97","nodeType":"YulLiteral","src":"22239:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22218:3:97","nodeType":"YulIdentifier","src":"22218:3:97"},"nativeSrc":"22218:26:97","nodeType":"YulFunctionCall","src":"22218:26:97"},{"name":"end","nativeSrc":"22246:3:97","nodeType":"YulIdentifier","src":"22246:3:97"}],"functionName":{"name":"gt","nativeSrc":"22215:2:97","nodeType":"YulIdentifier","src":"22215:2:97"},"nativeSrc":"22215:35:97","nodeType":"YulFunctionCall","src":"22215:35:97"},"nativeSrc":"22212:55:97","nodeType":"YulIf","src":"22212:55:97"},{"expression":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"22315:6:97","nodeType":"YulIdentifier","src":"22315:6:97"},{"kind":"number","nativeSrc":"22323:4:97","nodeType":"YulLiteral","src":"22323:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22311:3:97","nodeType":"YulIdentifier","src":"22311:3:97"},"nativeSrc":"22311:17:97","nodeType":"YulFunctionCall","src":"22311:17:97"},{"arguments":[{"name":"array_1","nativeSrc":"22334:7:97","nodeType":"YulIdentifier","src":"22334:7:97"},{"kind":"number","nativeSrc":"22343:4:97","nodeType":"YulLiteral","src":"22343:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22330:3:97","nodeType":"YulIdentifier","src":"22330:3:97"},"nativeSrc":"22330:18:97","nodeType":"YulFunctionCall","src":"22330:18:97"},{"name":"_1","nativeSrc":"22350:2:97","nodeType":"YulIdentifier","src":"22350:2:97"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"22276:34:97","nodeType":"YulIdentifier","src":"22276:34:97"},"nativeSrc":"22276:77:97","nodeType":"YulFunctionCall","src":"22276:77:97"},"nativeSrc":"22276:77:97","nodeType":"YulExpressionStatement","src":"22276:77:97"},{"nativeSrc":"22362:16:97","nodeType":"YulAssignment","src":"22362:16:97","value":{"name":"array_1","nativeSrc":"22371:7:97","nodeType":"YulIdentifier","src":"22371:7:97"},"variableNames":[{"name":"array","nativeSrc":"22362:5:97","nodeType":"YulIdentifier","src":"22362:5:97"}]}]},"name":"abi_decode_string_fromMemory","nativeSrc":"21941:443:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"21979:6:97","nodeType":"YulTypedName","src":"21979:6:97","type":""},{"name":"end","nativeSrc":"21987:3:97","nodeType":"YulTypedName","src":"21987:3:97","type":""}],"returnVariables":[{"name":"array","nativeSrc":"21995:5:97","nodeType":"YulTypedName","src":"21995:5:97","type":""}],"src":"21941:443:97"},{"body":{"nativeSrc":"22449:78:97","nodeType":"YulBlock","src":"22449:78:97","statements":[{"nativeSrc":"22459:22:97","nodeType":"YulAssignment","src":"22459:22:97","value":{"arguments":[{"name":"offset","nativeSrc":"22474:6:97","nodeType":"YulIdentifier","src":"22474:6:97"}],"functionName":{"name":"mload","nativeSrc":"22468:5:97","nodeType":"YulIdentifier","src":"22468:5:97"},"nativeSrc":"22468:13:97","nodeType":"YulFunctionCall","src":"22468:13:97"},"variableNames":[{"name":"value","nativeSrc":"22459:5:97","nodeType":"YulIdentifier","src":"22459:5:97"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"22515:5:97","nodeType":"YulIdentifier","src":"22515:5:97"}],"functionName":{"name":"validator_revert_address","nativeSrc":"22490:24:97","nodeType":"YulIdentifier","src":"22490:24:97"},"nativeSrc":"22490:31:97","nodeType":"YulFunctionCall","src":"22490:31:97"},"nativeSrc":"22490:31:97","nodeType":"YulExpressionStatement","src":"22490:31:97"}]},"name":"abi_decode_address_fromMemory","nativeSrc":"22389:138:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"22428:6:97","nodeType":"YulTypedName","src":"22428:6:97","type":""}],"returnVariables":[{"name":"value","nativeSrc":"22439:5:97","nodeType":"YulTypedName","src":"22439:5:97","type":""}],"src":"22389:138:97"},{"body":{"nativeSrc":"22591:77:97","nodeType":"YulBlock","src":"22591:77:97","statements":[{"nativeSrc":"22601:22:97","nodeType":"YulAssignment","src":"22601:22:97","value":{"arguments":[{"name":"offset","nativeSrc":"22616:6:97","nodeType":"YulIdentifier","src":"22616:6:97"}],"functionName":{"name":"mload","nativeSrc":"22610:5:97","nodeType":"YulIdentifier","src":"22610:5:97"},"nativeSrc":"22610:13:97","nodeType":"YulFunctionCall","src":"22610:13:97"},"variableNames":[{"name":"value","nativeSrc":"22601:5:97","nodeType":"YulIdentifier","src":"22601:5:97"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"22656:5:97","nodeType":"YulIdentifier","src":"22656:5:97"}],"functionName":{"name":"validator_revert_uint96","nativeSrc":"22632:23:97","nodeType":"YulIdentifier","src":"22632:23:97"},"nativeSrc":"22632:30:97","nodeType":"YulFunctionCall","src":"22632:30:97"},"nativeSrc":"22632:30:97","nodeType":"YulExpressionStatement","src":"22632:30:97"}]},"name":"abi_decode_uint96_fromMemory","nativeSrc":"22532:136:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"22570:6:97","nodeType":"YulTypedName","src":"22570:6:97","type":""}],"returnVariables":[{"name":"value","nativeSrc":"22581:5:97","nodeType":"YulTypedName","src":"22581:5:97","type":""}],"src":"22532:136:97"},{"body":{"nativeSrc":"22732:77:97","nodeType":"YulBlock","src":"22732:77:97","statements":[{"nativeSrc":"22742:22:97","nodeType":"YulAssignment","src":"22742:22:97","value":{"arguments":[{"name":"offset","nativeSrc":"22757:6:97","nodeType":"YulIdentifier","src":"22757:6:97"}],"functionName":{"name":"mload","nativeSrc":"22751:5:97","nodeType":"YulIdentifier","src":"22751:5:97"},"nativeSrc":"22751:13:97","nodeType":"YulFunctionCall","src":"22751:13:97"},"variableNames":[{"name":"value","nativeSrc":"22742:5:97","nodeType":"YulIdentifier","src":"22742:5:97"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"22797:5:97","nodeType":"YulIdentifier","src":"22797:5:97"}],"functionName":{"name":"validator_revert_uint32","nativeSrc":"22773:23:97","nodeType":"YulIdentifier","src":"22773:23:97"},"nativeSrc":"22773:30:97","nodeType":"YulFunctionCall","src":"22773:30:97"},"nativeSrc":"22773:30:97","nodeType":"YulExpressionStatement","src":"22773:30:97"}]},"name":"abi_decode_uint32_fromMemory","nativeSrc":"22673:136:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"22711:6:97","nodeType":"YulTypedName","src":"22711:6:97","type":""}],"returnVariables":[{"name":"value","nativeSrc":"22722:5:97","nodeType":"YulTypedName","src":"22722:5:97","type":""}],"src":"22673:136:97"},{"body":{"nativeSrc":"22933:1768:97","nodeType":"YulBlock","src":"22933:1768:97","statements":[{"body":{"nativeSrc":"22979:16:97","nodeType":"YulBlock","src":"22979:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"22988:1:97","nodeType":"YulLiteral","src":"22988:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"22991:1:97","nodeType":"YulLiteral","src":"22991:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"22981:6:97","nodeType":"YulIdentifier","src":"22981:6:97"},"nativeSrc":"22981:12:97","nodeType":"YulFunctionCall","src":"22981:12:97"},"nativeSrc":"22981:12:97","nodeType":"YulExpressionStatement","src":"22981:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"22954:7:97","nodeType":"YulIdentifier","src":"22954:7:97"},{"name":"headStart","nativeSrc":"22963:9:97","nodeType":"YulIdentifier","src":"22963:9:97"}],"functionName":{"name":"sub","nativeSrc":"22950:3:97","nodeType":"YulIdentifier","src":"22950:3:97"},"nativeSrc":"22950:23:97","nodeType":"YulFunctionCall","src":"22950:23:97"},{"kind":"number","nativeSrc":"22975:2:97","nodeType":"YulLiteral","src":"22975:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"22946:3:97","nodeType":"YulIdentifier","src":"22946:3:97"},"nativeSrc":"22946:32:97","nodeType":"YulFunctionCall","src":"22946:32:97"},"nativeSrc":"22943:52:97","nodeType":"YulIf","src":"22943:52:97"},{"nativeSrc":"23004:30:97","nodeType":"YulVariableDeclaration","src":"23004:30:97","value":{"arguments":[{"name":"headStart","nativeSrc":"23024:9:97","nodeType":"YulIdentifier","src":"23024:9:97"}],"functionName":{"name":"mload","nativeSrc":"23018:5:97","nodeType":"YulIdentifier","src":"23018:5:97"},"nativeSrc":"23018:16:97","nodeType":"YulFunctionCall","src":"23018:16:97"},"variables":[{"name":"offset","nativeSrc":"23008:6:97","nodeType":"YulTypedName","src":"23008:6:97","type":""}]},{"nativeSrc":"23043:28:97","nodeType":"YulVariableDeclaration","src":"23043:28:97","value":{"kind":"number","nativeSrc":"23053:18:97","nodeType":"YulLiteral","src":"23053:18:97","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"23047:2:97","nodeType":"YulTypedName","src":"23047:2:97","type":""}]},{"body":{"nativeSrc":"23098:16:97","nodeType":"YulBlock","src":"23098:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"23107:1:97","nodeType":"YulLiteral","src":"23107:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"23110:1:97","nodeType":"YulLiteral","src":"23110:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"23100:6:97","nodeType":"YulIdentifier","src":"23100:6:97"},"nativeSrc":"23100:12:97","nodeType":"YulFunctionCall","src":"23100:12:97"},"nativeSrc":"23100:12:97","nodeType":"YulExpressionStatement","src":"23100:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"23086:6:97","nodeType":"YulIdentifier","src":"23086:6:97"},{"name":"_1","nativeSrc":"23094:2:97","nodeType":"YulIdentifier","src":"23094:2:97"}],"functionName":{"name":"gt","nativeSrc":"23083:2:97","nodeType":"YulIdentifier","src":"23083:2:97"},"nativeSrc":"23083:14:97","nodeType":"YulFunctionCall","src":"23083:14:97"},"nativeSrc":"23080:34:97","nodeType":"YulIf","src":"23080:34:97"},{"nativeSrc":"23123:32:97","nodeType":"YulVariableDeclaration","src":"23123:32:97","value":{"arguments":[{"name":"headStart","nativeSrc":"23137:9:97","nodeType":"YulIdentifier","src":"23137:9:97"},{"name":"offset","nativeSrc":"23148:6:97","nodeType":"YulIdentifier","src":"23148:6:97"}],"functionName":{"name":"add","nativeSrc":"23133:3:97","nodeType":"YulIdentifier","src":"23133:3:97"},"nativeSrc":"23133:22:97","nodeType":"YulFunctionCall","src":"23133:22:97"},"variables":[{"name":"_2","nativeSrc":"23127:2:97","nodeType":"YulTypedName","src":"23127:2:97","type":""}]},{"body":{"nativeSrc":"23197:16:97","nodeType":"YulBlock","src":"23197:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"23206:1:97","nodeType":"YulLiteral","src":"23206:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"23209:1:97","nodeType":"YulLiteral","src":"23209:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"23199:6:97","nodeType":"YulIdentifier","src":"23199:6:97"},"nativeSrc":"23199:12:97","nodeType":"YulFunctionCall","src":"23199:12:97"},"nativeSrc":"23199:12:97","nodeType":"YulExpressionStatement","src":"23199:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"23175:7:97","nodeType":"YulIdentifier","src":"23175:7:97"},{"name":"_2","nativeSrc":"23184:2:97","nodeType":"YulIdentifier","src":"23184:2:97"}],"functionName":{"name":"sub","nativeSrc":"23171:3:97","nodeType":"YulIdentifier","src":"23171:3:97"},"nativeSrc":"23171:16:97","nodeType":"YulFunctionCall","src":"23171:16:97"},{"kind":"number","nativeSrc":"23189:6:97","nodeType":"YulLiteral","src":"23189:6:97","type":"","value":"0x0180"}],"functionName":{"name":"slt","nativeSrc":"23167:3:97","nodeType":"YulIdentifier","src":"23167:3:97"},"nativeSrc":"23167:29:97","nodeType":"YulFunctionCall","src":"23167:29:97"},"nativeSrc":"23164:49:97","nodeType":"YulIf","src":"23164:49:97"},{"nativeSrc":"23222:35:97","nodeType":"YulVariableDeclaration","src":"23222:35:97","value":{"arguments":[],"functionName":{"name":"allocate_memory_4306","nativeSrc":"23235:20:97","nodeType":"YulIdentifier","src":"23235:20:97"},"nativeSrc":"23235:22:97","nodeType":"YulFunctionCall","src":"23235:22:97"},"variables":[{"name":"value","nativeSrc":"23226:5:97","nodeType":"YulTypedName","src":"23226:5:97","type":""}]},{"nativeSrc":"23266:25:97","nodeType":"YulVariableDeclaration","src":"23266:25:97","value":{"arguments":[{"name":"_2","nativeSrc":"23288:2:97","nodeType":"YulIdentifier","src":"23288:2:97"}],"functionName":{"name":"mload","nativeSrc":"23282:5:97","nodeType":"YulIdentifier","src":"23282:5:97"},"nativeSrc":"23282:9:97","nodeType":"YulFunctionCall","src":"23282:9:97"},"variables":[{"name":"offset_1","nativeSrc":"23270:8:97","nodeType":"YulTypedName","src":"23270:8:97","type":""}]},{"body":{"nativeSrc":"23320:16:97","nodeType":"YulBlock","src":"23320:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"23329:1:97","nodeType":"YulLiteral","src":"23329:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"23332:1:97","nodeType":"YulLiteral","src":"23332:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"23322:6:97","nodeType":"YulIdentifier","src":"23322:6:97"},"nativeSrc":"23322:12:97","nodeType":"YulFunctionCall","src":"23322:12:97"},"nativeSrc":"23322:12:97","nodeType":"YulExpressionStatement","src":"23322:12:97"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"23306:8:97","nodeType":"YulIdentifier","src":"23306:8:97"},{"name":"_1","nativeSrc":"23316:2:97","nodeType":"YulIdentifier","src":"23316:2:97"}],"functionName":{"name":"gt","nativeSrc":"23303:2:97","nodeType":"YulIdentifier","src":"23303:2:97"},"nativeSrc":"23303:16:97","nodeType":"YulFunctionCall","src":"23303:16:97"},"nativeSrc":"23300:36:97","nodeType":"YulIf","src":"23300:36:97"},{"expression":{"arguments":[{"name":"value","nativeSrc":"23352:5:97","nodeType":"YulIdentifier","src":"23352:5:97"},{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"23392:2:97","nodeType":"YulIdentifier","src":"23392:2:97"},{"name":"offset_1","nativeSrc":"23396:8:97","nodeType":"YulIdentifier","src":"23396:8:97"}],"functionName":{"name":"add","nativeSrc":"23388:3:97","nodeType":"YulIdentifier","src":"23388:3:97"},"nativeSrc":"23388:17:97","nodeType":"YulFunctionCall","src":"23388:17:97"},{"name":"dataEnd","nativeSrc":"23407:7:97","nodeType":"YulIdentifier","src":"23407:7:97"}],"functionName":{"name":"abi_decode_string_fromMemory","nativeSrc":"23359:28:97","nodeType":"YulIdentifier","src":"23359:28:97"},"nativeSrc":"23359:56:97","nodeType":"YulFunctionCall","src":"23359:56:97"}],"functionName":{"name":"mstore","nativeSrc":"23345:6:97","nodeType":"YulIdentifier","src":"23345:6:97"},"nativeSrc":"23345:71:97","nodeType":"YulFunctionCall","src":"23345:71:97"},"nativeSrc":"23345:71:97","nodeType":"YulExpressionStatement","src":"23345:71:97"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"23436:5:97","nodeType":"YulIdentifier","src":"23436:5:97"},{"kind":"number","nativeSrc":"23443:2:97","nodeType":"YulLiteral","src":"23443:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"23432:3:97","nodeType":"YulIdentifier","src":"23432:3:97"},"nativeSrc":"23432:14:97","nodeType":"YulFunctionCall","src":"23432:14:97"},{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"23458:2:97","nodeType":"YulIdentifier","src":"23458:2:97"},{"kind":"number","nativeSrc":"23462:2:97","nodeType":"YulLiteral","src":"23462:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"23454:3:97","nodeType":"YulIdentifier","src":"23454:3:97"},"nativeSrc":"23454:11:97","nodeType":"YulFunctionCall","src":"23454:11:97"}],"functionName":{"name":"mload","nativeSrc":"23448:5:97","nodeType":"YulIdentifier","src":"23448:5:97"},"nativeSrc":"23448:18:97","nodeType":"YulFunctionCall","src":"23448:18:97"}],"functionName":{"name":"mstore","nativeSrc":"23425:6:97","nodeType":"YulIdentifier","src":"23425:6:97"},"nativeSrc":"23425:42:97","nodeType":"YulFunctionCall","src":"23425:42:97"},"nativeSrc":"23425:42:97","nodeType":"YulExpressionStatement","src":"23425:42:97"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"23487:5:97","nodeType":"YulIdentifier","src":"23487:5:97"},{"kind":"number","nativeSrc":"23494:2:97","nodeType":"YulLiteral","src":"23494:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"23483:3:97","nodeType":"YulIdentifier","src":"23483:3:97"},"nativeSrc":"23483:14:97","nodeType":"YulFunctionCall","src":"23483:14:97"},{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"23533:2:97","nodeType":"YulIdentifier","src":"23533:2:97"},{"kind":"number","nativeSrc":"23537:2:97","nodeType":"YulLiteral","src":"23537:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"23529:3:97","nodeType":"YulIdentifier","src":"23529:3:97"},"nativeSrc":"23529:11:97","nodeType":"YulFunctionCall","src":"23529:11:97"}],"functionName":{"name":"abi_decode_address_fromMemory","nativeSrc":"23499:29:97","nodeType":"YulIdentifier","src":"23499:29:97"},"nativeSrc":"23499:42:97","nodeType":"YulFunctionCall","src":"23499:42:97"}],"functionName":{"name":"mstore","nativeSrc":"23476:6:97","nodeType":"YulIdentifier","src":"23476:6:97"},"nativeSrc":"23476:66:97","nodeType":"YulFunctionCall","src":"23476:66:97"},"nativeSrc":"23476:66:97","nodeType":"YulExpressionStatement","src":"23476:66:97"},{"nativeSrc":"23551:34:97","nodeType":"YulVariableDeclaration","src":"23551:34:97","value":{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"23577:2:97","nodeType":"YulIdentifier","src":"23577:2:97"},{"kind":"number","nativeSrc":"23581:2:97","nodeType":"YulLiteral","src":"23581:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"23573:3:97","nodeType":"YulIdentifier","src":"23573:3:97"},"nativeSrc":"23573:11:97","nodeType":"YulFunctionCall","src":"23573:11:97"}],"functionName":{"name":"mload","nativeSrc":"23567:5:97","nodeType":"YulIdentifier","src":"23567:5:97"},"nativeSrc":"23567:18:97","nodeType":"YulFunctionCall","src":"23567:18:97"},"variables":[{"name":"offset_2","nativeSrc":"23555:8:97","nodeType":"YulTypedName","src":"23555:8:97","type":""}]},{"body":{"nativeSrc":"23614:16:97","nodeType":"YulBlock","src":"23614:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"23623:1:97","nodeType":"YulLiteral","src":"23623:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"23626:1:97","nodeType":"YulLiteral","src":"23626:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"23616:6:97","nodeType":"YulIdentifier","src":"23616:6:97"},"nativeSrc":"23616:12:97","nodeType":"YulFunctionCall","src":"23616:12:97"},"nativeSrc":"23616:12:97","nodeType":"YulExpressionStatement","src":"23616:12:97"}]},"condition":{"arguments":[{"name":"offset_2","nativeSrc":"23600:8:97","nodeType":"YulIdentifier","src":"23600:8:97"},{"name":"_1","nativeSrc":"23610:2:97","nodeType":"YulIdentifier","src":"23610:2:97"}],"functionName":{"name":"gt","nativeSrc":"23597:2:97","nodeType":"YulIdentifier","src":"23597:2:97"},"nativeSrc":"23597:16:97","nodeType":"YulFunctionCall","src":"23597:16:97"},"nativeSrc":"23594:36:97","nodeType":"YulIf","src":"23594:36:97"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"23650:5:97","nodeType":"YulIdentifier","src":"23650:5:97"},{"kind":"number","nativeSrc":"23657:2:97","nodeType":"YulLiteral","src":"23657:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"23646:3:97","nodeType":"YulIdentifier","src":"23646:3:97"},"nativeSrc":"23646:14:97","nodeType":"YulFunctionCall","src":"23646:14:97"},{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"23695:2:97","nodeType":"YulIdentifier","src":"23695:2:97"},{"name":"offset_2","nativeSrc":"23699:8:97","nodeType":"YulIdentifier","src":"23699:8:97"}],"functionName":{"name":"add","nativeSrc":"23691:3:97","nodeType":"YulIdentifier","src":"23691:3:97"},"nativeSrc":"23691:17:97","nodeType":"YulFunctionCall","src":"23691:17:97"},{"name":"dataEnd","nativeSrc":"23710:7:97","nodeType":"YulIdentifier","src":"23710:7:97"}],"functionName":{"name":"abi_decode_string_fromMemory","nativeSrc":"23662:28:97","nodeType":"YulIdentifier","src":"23662:28:97"},"nativeSrc":"23662:56:97","nodeType":"YulFunctionCall","src":"23662:56:97"}],"functionName":{"name":"mstore","nativeSrc":"23639:6:97","nodeType":"YulIdentifier","src":"23639:6:97"},"nativeSrc":"23639:80:97","nodeType":"YulFunctionCall","src":"23639:80:97"},"nativeSrc":"23639:80:97","nodeType":"YulExpressionStatement","src":"23639:80:97"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"23739:5:97","nodeType":"YulIdentifier","src":"23739:5:97"},{"kind":"number","nativeSrc":"23746:3:97","nodeType":"YulLiteral","src":"23746:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"23735:3:97","nodeType":"YulIdentifier","src":"23735:3:97"},"nativeSrc":"23735:15:97","nodeType":"YulFunctionCall","src":"23735:15:97"},{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"23762:2:97","nodeType":"YulIdentifier","src":"23762:2:97"},{"kind":"number","nativeSrc":"23766:3:97","nodeType":"YulLiteral","src":"23766:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"23758:3:97","nodeType":"YulIdentifier","src":"23758:3:97"},"nativeSrc":"23758:12:97","nodeType":"YulFunctionCall","src":"23758:12:97"}],"functionName":{"name":"mload","nativeSrc":"23752:5:97","nodeType":"YulIdentifier","src":"23752:5:97"},"nativeSrc":"23752:19:97","nodeType":"YulFunctionCall","src":"23752:19:97"}],"functionName":{"name":"mstore","nativeSrc":"23728:6:97","nodeType":"YulIdentifier","src":"23728:6:97"},"nativeSrc":"23728:44:97","nodeType":"YulFunctionCall","src":"23728:44:97"},"nativeSrc":"23728:44:97","nodeType":"YulExpressionStatement","src":"23728:44:97"},{"nativeSrc":"23781:35:97","nodeType":"YulVariableDeclaration","src":"23781:35:97","value":{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"23807:2:97","nodeType":"YulIdentifier","src":"23807:2:97"},{"kind":"number","nativeSrc":"23811:3:97","nodeType":"YulLiteral","src":"23811:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"23803:3:97","nodeType":"YulIdentifier","src":"23803:3:97"},"nativeSrc":"23803:12:97","nodeType":"YulFunctionCall","src":"23803:12:97"}],"functionName":{"name":"mload","nativeSrc":"23797:5:97","nodeType":"YulIdentifier","src":"23797:5:97"},"nativeSrc":"23797:19:97","nodeType":"YulFunctionCall","src":"23797:19:97"},"variables":[{"name":"offset_3","nativeSrc":"23785:8:97","nodeType":"YulTypedName","src":"23785:8:97","type":""}]},{"body":{"nativeSrc":"23845:16:97","nodeType":"YulBlock","src":"23845:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"23854:1:97","nodeType":"YulLiteral","src":"23854:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"23857:1:97","nodeType":"YulLiteral","src":"23857:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"23847:6:97","nodeType":"YulIdentifier","src":"23847:6:97"},"nativeSrc":"23847:12:97","nodeType":"YulFunctionCall","src":"23847:12:97"},"nativeSrc":"23847:12:97","nodeType":"YulExpressionStatement","src":"23847:12:97"}]},"condition":{"arguments":[{"name":"offset_3","nativeSrc":"23831:8:97","nodeType":"YulIdentifier","src":"23831:8:97"},{"name":"_1","nativeSrc":"23841:2:97","nodeType":"YulIdentifier","src":"23841:2:97"}],"functionName":{"name":"gt","nativeSrc":"23828:2:97","nodeType":"YulIdentifier","src":"23828:2:97"},"nativeSrc":"23828:16:97","nodeType":"YulFunctionCall","src":"23828:16:97"},"nativeSrc":"23825:36:97","nodeType":"YulIf","src":"23825:36:97"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"23881:5:97","nodeType":"YulIdentifier","src":"23881:5:97"},{"kind":"number","nativeSrc":"23888:3:97","nodeType":"YulLiteral","src":"23888:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"23877:3:97","nodeType":"YulIdentifier","src":"23877:3:97"},"nativeSrc":"23877:15:97","nodeType":"YulFunctionCall","src":"23877:15:97"},{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"23927:2:97","nodeType":"YulIdentifier","src":"23927:2:97"},{"name":"offset_3","nativeSrc":"23931:8:97","nodeType":"YulIdentifier","src":"23931:8:97"}],"functionName":{"name":"add","nativeSrc":"23923:3:97","nodeType":"YulIdentifier","src":"23923:3:97"},"nativeSrc":"23923:17:97","nodeType":"YulFunctionCall","src":"23923:17:97"},{"name":"dataEnd","nativeSrc":"23942:7:97","nodeType":"YulIdentifier","src":"23942:7:97"}],"functionName":{"name":"abi_decode_string_fromMemory","nativeSrc":"23894:28:97","nodeType":"YulIdentifier","src":"23894:28:97"},"nativeSrc":"23894:56:97","nodeType":"YulFunctionCall","src":"23894:56:97"}],"functionName":{"name":"mstore","nativeSrc":"23870:6:97","nodeType":"YulIdentifier","src":"23870:6:97"},"nativeSrc":"23870:81:97","nodeType":"YulFunctionCall","src":"23870:81:97"},"nativeSrc":"23870:81:97","nodeType":"YulExpressionStatement","src":"23870:81:97"},{"nativeSrc":"23960:35:97","nodeType":"YulVariableDeclaration","src":"23960:35:97","value":{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"23986:2:97","nodeType":"YulIdentifier","src":"23986:2:97"},{"kind":"number","nativeSrc":"23990:3:97","nodeType":"YulLiteral","src":"23990:3:97","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"23982:3:97","nodeType":"YulIdentifier","src":"23982:3:97"},"nativeSrc":"23982:12:97","nodeType":"YulFunctionCall","src":"23982:12:97"}],"functionName":{"name":"mload","nativeSrc":"23976:5:97","nodeType":"YulIdentifier","src":"23976:5:97"},"nativeSrc":"23976:19:97","nodeType":"YulFunctionCall","src":"23976:19:97"},"variables":[{"name":"offset_4","nativeSrc":"23964:8:97","nodeType":"YulTypedName","src":"23964:8:97","type":""}]},{"body":{"nativeSrc":"24024:16:97","nodeType":"YulBlock","src":"24024:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"24033:1:97","nodeType":"YulLiteral","src":"24033:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"24036:1:97","nodeType":"YulLiteral","src":"24036:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"24026:6:97","nodeType":"YulIdentifier","src":"24026:6:97"},"nativeSrc":"24026:12:97","nodeType":"YulFunctionCall","src":"24026:12:97"},"nativeSrc":"24026:12:97","nodeType":"YulExpressionStatement","src":"24026:12:97"}]},"condition":{"arguments":[{"name":"offset_4","nativeSrc":"24010:8:97","nodeType":"YulIdentifier","src":"24010:8:97"},{"name":"_1","nativeSrc":"24020:2:97","nodeType":"YulIdentifier","src":"24020:2:97"}],"functionName":{"name":"gt","nativeSrc":"24007:2:97","nodeType":"YulIdentifier","src":"24007:2:97"},"nativeSrc":"24007:16:97","nodeType":"YulFunctionCall","src":"24007:16:97"},"nativeSrc":"24004:36:97","nodeType":"YulIf","src":"24004:36:97"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"24060:5:97","nodeType":"YulIdentifier","src":"24060:5:97"},{"kind":"number","nativeSrc":"24067:3:97","nodeType":"YulLiteral","src":"24067:3:97","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"24056:3:97","nodeType":"YulIdentifier","src":"24056:3:97"},"nativeSrc":"24056:15:97","nodeType":"YulFunctionCall","src":"24056:15:97"},{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"24106:2:97","nodeType":"YulIdentifier","src":"24106:2:97"},{"name":"offset_4","nativeSrc":"24110:8:97","nodeType":"YulIdentifier","src":"24110:8:97"}],"functionName":{"name":"add","nativeSrc":"24102:3:97","nodeType":"YulIdentifier","src":"24102:3:97"},"nativeSrc":"24102:17:97","nodeType":"YulFunctionCall","src":"24102:17:97"},{"name":"dataEnd","nativeSrc":"24121:7:97","nodeType":"YulIdentifier","src":"24121:7:97"}],"functionName":{"name":"abi_decode_string_fromMemory","nativeSrc":"24073:28:97","nodeType":"YulIdentifier","src":"24073:28:97"},"nativeSrc":"24073:56:97","nodeType":"YulFunctionCall","src":"24073:56:97"}],"functionName":{"name":"mstore","nativeSrc":"24049:6:97","nodeType":"YulIdentifier","src":"24049:6:97"},"nativeSrc":"24049:81:97","nodeType":"YulFunctionCall","src":"24049:81:97"},"nativeSrc":"24049:81:97","nodeType":"YulExpressionStatement","src":"24049:81:97"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"24150:5:97","nodeType":"YulIdentifier","src":"24150:5:97"},{"kind":"number","nativeSrc":"24157:3:97","nodeType":"YulLiteral","src":"24157:3:97","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"24146:3:97","nodeType":"YulIdentifier","src":"24146:3:97"},"nativeSrc":"24146:15:97","nodeType":"YulFunctionCall","src":"24146:15:97"},{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"24173:2:97","nodeType":"YulIdentifier","src":"24173:2:97"},{"kind":"number","nativeSrc":"24177:3:97","nodeType":"YulLiteral","src":"24177:3:97","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"24169:3:97","nodeType":"YulIdentifier","src":"24169:3:97"},"nativeSrc":"24169:12:97","nodeType":"YulFunctionCall","src":"24169:12:97"}],"functionName":{"name":"mload","nativeSrc":"24163:5:97","nodeType":"YulIdentifier","src":"24163:5:97"},"nativeSrc":"24163:19:97","nodeType":"YulFunctionCall","src":"24163:19:97"}],"functionName":{"name":"mstore","nativeSrc":"24139:6:97","nodeType":"YulIdentifier","src":"24139:6:97"},"nativeSrc":"24139:44:97","nodeType":"YulFunctionCall","src":"24139:44:97"},"nativeSrc":"24139:44:97","nodeType":"YulExpressionStatement","src":"24139:44:97"},{"nativeSrc":"24192:13:97","nodeType":"YulVariableDeclaration","src":"24192:13:97","value":{"kind":"number","nativeSrc":"24202:3:97","nodeType":"YulLiteral","src":"24202:3:97","type":"","value":"256"},"variables":[{"name":"_3","nativeSrc":"24196:2:97","nodeType":"YulTypedName","src":"24196:2:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"24225:5:97","nodeType":"YulIdentifier","src":"24225:5:97"},{"name":"_3","nativeSrc":"24232:2:97","nodeType":"YulIdentifier","src":"24232:2:97"}],"functionName":{"name":"add","nativeSrc":"24221:3:97","nodeType":"YulIdentifier","src":"24221:3:97"},"nativeSrc":"24221:14:97","nodeType":"YulFunctionCall","src":"24221:14:97"},{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"24271:2:97","nodeType":"YulIdentifier","src":"24271:2:97"},{"name":"_3","nativeSrc":"24275:2:97","nodeType":"YulIdentifier","src":"24275:2:97"}],"functionName":{"name":"add","nativeSrc":"24267:3:97","nodeType":"YulIdentifier","src":"24267:3:97"},"nativeSrc":"24267:11:97","nodeType":"YulFunctionCall","src":"24267:11:97"}],"functionName":{"name":"abi_decode_address_fromMemory","nativeSrc":"24237:29:97","nodeType":"YulIdentifier","src":"24237:29:97"},"nativeSrc":"24237:42:97","nodeType":"YulFunctionCall","src":"24237:42:97"}],"functionName":{"name":"mstore","nativeSrc":"24214:6:97","nodeType":"YulIdentifier","src":"24214:6:97"},"nativeSrc":"24214:66:97","nodeType":"YulFunctionCall","src":"24214:66:97"},"nativeSrc":"24214:66:97","nodeType":"YulExpressionStatement","src":"24214:66:97"},{"nativeSrc":"24289:13:97","nodeType":"YulVariableDeclaration","src":"24289:13:97","value":{"kind":"number","nativeSrc":"24299:3:97","nodeType":"YulLiteral","src":"24299:3:97","type":"","value":"288"},"variables":[{"name":"_4","nativeSrc":"24293:2:97","nodeType":"YulTypedName","src":"24293:2:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"24322:5:97","nodeType":"YulIdentifier","src":"24322:5:97"},{"name":"_4","nativeSrc":"24329:2:97","nodeType":"YulIdentifier","src":"24329:2:97"}],"functionName":{"name":"add","nativeSrc":"24318:3:97","nodeType":"YulIdentifier","src":"24318:3:97"},"nativeSrc":"24318:14:97","nodeType":"YulFunctionCall","src":"24318:14:97"},{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"24367:2:97","nodeType":"YulIdentifier","src":"24367:2:97"},{"name":"_4","nativeSrc":"24371:2:97","nodeType":"YulIdentifier","src":"24371:2:97"}],"functionName":{"name":"add","nativeSrc":"24363:3:97","nodeType":"YulIdentifier","src":"24363:3:97"},"nativeSrc":"24363:11:97","nodeType":"YulFunctionCall","src":"24363:11:97"}],"functionName":{"name":"abi_decode_uint96_fromMemory","nativeSrc":"24334:28:97","nodeType":"YulIdentifier","src":"24334:28:97"},"nativeSrc":"24334:41:97","nodeType":"YulFunctionCall","src":"24334:41:97"}],"functionName":{"name":"mstore","nativeSrc":"24311:6:97","nodeType":"YulIdentifier","src":"24311:6:97"},"nativeSrc":"24311:65:97","nodeType":"YulFunctionCall","src":"24311:65:97"},"nativeSrc":"24311:65:97","nodeType":"YulExpressionStatement","src":"24311:65:97"},{"nativeSrc":"24385:13:97","nodeType":"YulVariableDeclaration","src":"24385:13:97","value":{"kind":"number","nativeSrc":"24395:3:97","nodeType":"YulLiteral","src":"24395:3:97","type":"","value":"320"},"variables":[{"name":"_5","nativeSrc":"24389:2:97","nodeType":"YulTypedName","src":"24389:2:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"24418:5:97","nodeType":"YulIdentifier","src":"24418:5:97"},{"name":"_5","nativeSrc":"24425:2:97","nodeType":"YulIdentifier","src":"24425:2:97"}],"functionName":{"name":"add","nativeSrc":"24414:3:97","nodeType":"YulIdentifier","src":"24414:3:97"},"nativeSrc":"24414:14:97","nodeType":"YulFunctionCall","src":"24414:14:97"},{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"24463:2:97","nodeType":"YulIdentifier","src":"24463:2:97"},{"name":"_5","nativeSrc":"24467:2:97","nodeType":"YulIdentifier","src":"24467:2:97"}],"functionName":{"name":"add","nativeSrc":"24459:3:97","nodeType":"YulIdentifier","src":"24459:3:97"},"nativeSrc":"24459:11:97","nodeType":"YulFunctionCall","src":"24459:11:97"}],"functionName":{"name":"abi_decode_uint32_fromMemory","nativeSrc":"24430:28:97","nodeType":"YulIdentifier","src":"24430:28:97"},"nativeSrc":"24430:41:97","nodeType":"YulFunctionCall","src":"24430:41:97"}],"functionName":{"name":"mstore","nativeSrc":"24407:6:97","nodeType":"YulIdentifier","src":"24407:6:97"},"nativeSrc":"24407:65:97","nodeType":"YulFunctionCall","src":"24407:65:97"},"nativeSrc":"24407:65:97","nodeType":"YulExpressionStatement","src":"24407:65:97"},{"nativeSrc":"24481:13:97","nodeType":"YulVariableDeclaration","src":"24481:13:97","value":{"kind":"number","nativeSrc":"24491:3:97","nodeType":"YulLiteral","src":"24491:3:97","type":"","value":"352"},"variables":[{"name":"_6","nativeSrc":"24485:2:97","nodeType":"YulTypedName","src":"24485:2:97","type":""}]},{"nativeSrc":"24503:34:97","nodeType":"YulVariableDeclaration","src":"24503:34:97","value":{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"24529:2:97","nodeType":"YulIdentifier","src":"24529:2:97"},{"name":"_6","nativeSrc":"24533:2:97","nodeType":"YulIdentifier","src":"24533:2:97"}],"functionName":{"name":"add","nativeSrc":"24525:3:97","nodeType":"YulIdentifier","src":"24525:3:97"},"nativeSrc":"24525:11:97","nodeType":"YulFunctionCall","src":"24525:11:97"}],"functionName":{"name":"mload","nativeSrc":"24519:5:97","nodeType":"YulIdentifier","src":"24519:5:97"},"nativeSrc":"24519:18:97","nodeType":"YulFunctionCall","src":"24519:18:97"},"variables":[{"name":"offset_5","nativeSrc":"24507:8:97","nodeType":"YulTypedName","src":"24507:8:97","type":""}]},{"body":{"nativeSrc":"24566:16:97","nodeType":"YulBlock","src":"24566:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"24575:1:97","nodeType":"YulLiteral","src":"24575:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"24578:1:97","nodeType":"YulLiteral","src":"24578:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"24568:6:97","nodeType":"YulIdentifier","src":"24568:6:97"},"nativeSrc":"24568:12:97","nodeType":"YulFunctionCall","src":"24568:12:97"},"nativeSrc":"24568:12:97","nodeType":"YulExpressionStatement","src":"24568:12:97"}]},"condition":{"arguments":[{"name":"offset_5","nativeSrc":"24552:8:97","nodeType":"YulIdentifier","src":"24552:8:97"},{"name":"_1","nativeSrc":"24562:2:97","nodeType":"YulIdentifier","src":"24562:2:97"}],"functionName":{"name":"gt","nativeSrc":"24549:2:97","nodeType":"YulIdentifier","src":"24549:2:97"},"nativeSrc":"24549:16:97","nodeType":"YulFunctionCall","src":"24549:16:97"},"nativeSrc":"24546:36:97","nodeType":"YulIf","src":"24546:36:97"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"24602:5:97","nodeType":"YulIdentifier","src":"24602:5:97"},{"name":"_6","nativeSrc":"24609:2:97","nodeType":"YulIdentifier","src":"24609:2:97"}],"functionName":{"name":"add","nativeSrc":"24598:3:97","nodeType":"YulIdentifier","src":"24598:3:97"},"nativeSrc":"24598:14:97","nodeType":"YulFunctionCall","src":"24598:14:97"},{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"24647:2:97","nodeType":"YulIdentifier","src":"24647:2:97"},{"name":"offset_5","nativeSrc":"24651:8:97","nodeType":"YulIdentifier","src":"24651:8:97"}],"functionName":{"name":"add","nativeSrc":"24643:3:97","nodeType":"YulIdentifier","src":"24643:3:97"},"nativeSrc":"24643:17:97","nodeType":"YulFunctionCall","src":"24643:17:97"},{"name":"dataEnd","nativeSrc":"24662:7:97","nodeType":"YulIdentifier","src":"24662:7:97"}],"functionName":{"name":"abi_decode_string_fromMemory","nativeSrc":"24614:28:97","nodeType":"YulIdentifier","src":"24614:28:97"},"nativeSrc":"24614:56:97","nodeType":"YulFunctionCall","src":"24614:56:97"}],"functionName":{"name":"mstore","nativeSrc":"24591:6:97","nodeType":"YulIdentifier","src":"24591:6:97"},"nativeSrc":"24591:80:97","nodeType":"YulFunctionCall","src":"24591:80:97"},"nativeSrc":"24591:80:97","nodeType":"YulExpressionStatement","src":"24591:80:97"},{"nativeSrc":"24680:15:97","nodeType":"YulAssignment","src":"24680:15:97","value":{"name":"value","nativeSrc":"24690:5:97","nodeType":"YulIdentifier","src":"24690:5:97"},"variableNames":[{"name":"value0","nativeSrc":"24680:6:97","nodeType":"YulIdentifier","src":"24680:6:97"}]}]},"name":"abi_decode_tuple_t_struct$_RiskParameterUpdate_$16568_memory_ptr_fromMemory","nativeSrc":"22814:1887:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"22899:9:97","nodeType":"YulTypedName","src":"22899:9:97","type":""},{"name":"dataEnd","nativeSrc":"22910:7:97","nodeType":"YulTypedName","src":"22910:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"22922:6:97","nodeType":"YulTypedName","src":"22922:6:97","type":""}],"src":"22814:1887:97"},{"body":{"nativeSrc":"24784:167:97","nodeType":"YulBlock","src":"24784:167:97","statements":[{"body":{"nativeSrc":"24830:16:97","nodeType":"YulBlock","src":"24830:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"24839:1:97","nodeType":"YulLiteral","src":"24839:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"24842:1:97","nodeType":"YulLiteral","src":"24842:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"24832:6:97","nodeType":"YulIdentifier","src":"24832:6:97"},"nativeSrc":"24832:12:97","nodeType":"YulFunctionCall","src":"24832:12:97"},"nativeSrc":"24832:12:97","nodeType":"YulExpressionStatement","src":"24832:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"24805:7:97","nodeType":"YulIdentifier","src":"24805:7:97"},{"name":"headStart","nativeSrc":"24814:9:97","nodeType":"YulIdentifier","src":"24814:9:97"}],"functionName":{"name":"sub","nativeSrc":"24801:3:97","nodeType":"YulIdentifier","src":"24801:3:97"},"nativeSrc":"24801:23:97","nodeType":"YulFunctionCall","src":"24801:23:97"},{"kind":"number","nativeSrc":"24826:2:97","nodeType":"YulLiteral","src":"24826:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"24797:3:97","nodeType":"YulIdentifier","src":"24797:3:97"},"nativeSrc":"24797:32:97","nodeType":"YulFunctionCall","src":"24797:32:97"},"nativeSrc":"24794:52:97","nodeType":"YulIf","src":"24794:52:97"},{"nativeSrc":"24855:29:97","nodeType":"YulVariableDeclaration","src":"24855:29:97","value":{"arguments":[{"name":"headStart","nativeSrc":"24874:9:97","nodeType":"YulIdentifier","src":"24874:9:97"}],"functionName":{"name":"mload","nativeSrc":"24868:5:97","nodeType":"YulIdentifier","src":"24868:5:97"},"nativeSrc":"24868:16:97","nodeType":"YulFunctionCall","src":"24868:16:97"},"variables":[{"name":"value","nativeSrc":"24859:5:97","nodeType":"YulTypedName","src":"24859:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"24915:5:97","nodeType":"YulIdentifier","src":"24915:5:97"}],"functionName":{"name":"validator_revert_bool","nativeSrc":"24893:21:97","nodeType":"YulIdentifier","src":"24893:21:97"},"nativeSrc":"24893:28:97","nodeType":"YulFunctionCall","src":"24893:28:97"},"nativeSrc":"24893:28:97","nodeType":"YulExpressionStatement","src":"24893:28:97"},{"nativeSrc":"24930:15:97","nodeType":"YulAssignment","src":"24930:15:97","value":{"name":"value","nativeSrc":"24940:5:97","nodeType":"YulIdentifier","src":"24940:5:97"},"variableNames":[{"name":"value0","nativeSrc":"24930:6:97","nodeType":"YulIdentifier","src":"24930:6:97"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"24706:245:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"24750:9:97","nodeType":"YulTypedName","src":"24750:9:97","type":""},{"name":"dataEnd","nativeSrc":"24761:7:97","nodeType":"YulTypedName","src":"24761:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"24773:6:97","nodeType":"YulTypedName","src":"24773:6:97","type":""}],"src":"24706:245:97"},{"body":{"nativeSrc":"25130:231:97","nodeType":"YulBlock","src":"25130:231:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"25147:9:97","nodeType":"YulIdentifier","src":"25147:9:97"},{"kind":"number","nativeSrc":"25158:2:97","nodeType":"YulLiteral","src":"25158:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"25140:6:97","nodeType":"YulIdentifier","src":"25140:6:97"},"nativeSrc":"25140:21:97","nodeType":"YulFunctionCall","src":"25140:21:97"},"nativeSrc":"25140:21:97","nodeType":"YulExpressionStatement","src":"25140:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25181:9:97","nodeType":"YulIdentifier","src":"25181:9:97"},{"kind":"number","nativeSrc":"25192:2:97","nodeType":"YulLiteral","src":"25192:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"25177:3:97","nodeType":"YulIdentifier","src":"25177:3:97"},"nativeSrc":"25177:18:97","nodeType":"YulFunctionCall","src":"25177:18:97"},{"kind":"number","nativeSrc":"25197:2:97","nodeType":"YulLiteral","src":"25197:2:97","type":"","value":"41"}],"functionName":{"name":"mstore","nativeSrc":"25170:6:97","nodeType":"YulIdentifier","src":"25170:6:97"},"nativeSrc":"25170:30:97","nodeType":"YulFunctionCall","src":"25170:30:97"},"nativeSrc":"25170:30:97","nodeType":"YulExpressionStatement","src":"25170:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25220:9:97","nodeType":"YulIdentifier","src":"25220:9:97"},{"kind":"number","nativeSrc":"25231:2:97","nodeType":"YulLiteral","src":"25231:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"25216:3:97","nodeType":"YulIdentifier","src":"25216:3:97"},"nativeSrc":"25216:18:97","nodeType":"YulFunctionCall","src":"25216:18:97"},{"hexValue":"4f776e61626c6532537465703a2063616c6c6572206973206e6f742074686520","kind":"string","nativeSrc":"25236:34:97","nodeType":"YulLiteral","src":"25236:34:97","type":"","value":"Ownable2Step: caller is not the "}],"functionName":{"name":"mstore","nativeSrc":"25209:6:97","nodeType":"YulIdentifier","src":"25209:6:97"},"nativeSrc":"25209:62:97","nodeType":"YulFunctionCall","src":"25209:62:97"},"nativeSrc":"25209:62:97","nodeType":"YulExpressionStatement","src":"25209:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25291:9:97","nodeType":"YulIdentifier","src":"25291:9:97"},{"kind":"number","nativeSrc":"25302:2:97","nodeType":"YulLiteral","src":"25302:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"25287:3:97","nodeType":"YulIdentifier","src":"25287:3:97"},"nativeSrc":"25287:18:97","nodeType":"YulFunctionCall","src":"25287:18:97"},{"hexValue":"6e6577206f776e6572","kind":"string","nativeSrc":"25307:11:97","nodeType":"YulLiteral","src":"25307:11:97","type":"","value":"new owner"}],"functionName":{"name":"mstore","nativeSrc":"25280:6:97","nodeType":"YulIdentifier","src":"25280:6:97"},"nativeSrc":"25280:39:97","nodeType":"YulFunctionCall","src":"25280:39:97"},"nativeSrc":"25280:39:97","nodeType":"YulExpressionStatement","src":"25280:39:97"},{"nativeSrc":"25328:27:97","nodeType":"YulAssignment","src":"25328:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"25340:9:97","nodeType":"YulIdentifier","src":"25340:9:97"},{"kind":"number","nativeSrc":"25351:3:97","nodeType":"YulLiteral","src":"25351:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"25336:3:97","nodeType":"YulIdentifier","src":"25336:3:97"},"nativeSrc":"25336:19:97","nodeType":"YulFunctionCall","src":"25336:19:97"},"variableNames":[{"name":"tail","nativeSrc":"25328:4:97","nodeType":"YulIdentifier","src":"25328:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"24956:405:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25107:9:97","nodeType":"YulTypedName","src":"25107:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"25121:4:97","nodeType":"YulTypedName","src":"25121:4:97","type":""}],"src":"24956:405:97"},{"body":{"nativeSrc":"25398:152:97","nodeType":"YulBlock","src":"25398:152:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"25415:1:97","nodeType":"YulLiteral","src":"25415:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"25418:77:97","nodeType":"YulLiteral","src":"25418:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"25408:6:97","nodeType":"YulIdentifier","src":"25408:6:97"},"nativeSrc":"25408:88:97","nodeType":"YulFunctionCall","src":"25408:88:97"},"nativeSrc":"25408:88:97","nodeType":"YulExpressionStatement","src":"25408:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"25512:1:97","nodeType":"YulLiteral","src":"25512:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"25515:4:97","nodeType":"YulLiteral","src":"25515:4:97","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"25505:6:97","nodeType":"YulIdentifier","src":"25505:6:97"},"nativeSrc":"25505:15:97","nodeType":"YulFunctionCall","src":"25505:15:97"},"nativeSrc":"25505:15:97","nodeType":"YulExpressionStatement","src":"25505:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"25536:1:97","nodeType":"YulLiteral","src":"25536:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"25539:4:97","nodeType":"YulLiteral","src":"25539:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"25529:6:97","nodeType":"YulIdentifier","src":"25529:6:97"},"nativeSrc":"25529:15:97","nodeType":"YulFunctionCall","src":"25529:15:97"},"nativeSrc":"25529:15:97","nodeType":"YulExpressionStatement","src":"25529:15:97"}]},"name":"panic_error_0x11","nativeSrc":"25366:184:97","nodeType":"YulFunctionDefinition","src":"25366:184:97"},{"body":{"nativeSrc":"25603:77:97","nodeType":"YulBlock","src":"25603:77:97","statements":[{"nativeSrc":"25613:16:97","nodeType":"YulAssignment","src":"25613:16:97","value":{"arguments":[{"name":"x","nativeSrc":"25624:1:97","nodeType":"YulIdentifier","src":"25624:1:97"},{"name":"y","nativeSrc":"25627:1:97","nodeType":"YulIdentifier","src":"25627:1:97"}],"functionName":{"name":"add","nativeSrc":"25620:3:97","nodeType":"YulIdentifier","src":"25620:3:97"},"nativeSrc":"25620:9:97","nodeType":"YulFunctionCall","src":"25620:9:97"},"variableNames":[{"name":"sum","nativeSrc":"25613:3:97","nodeType":"YulIdentifier","src":"25613:3:97"}]},{"body":{"nativeSrc":"25652:22:97","nodeType":"YulBlock","src":"25652:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"25654:16:97","nodeType":"YulIdentifier","src":"25654:16:97"},"nativeSrc":"25654:18:97","nodeType":"YulFunctionCall","src":"25654:18:97"},"nativeSrc":"25654:18:97","nodeType":"YulExpressionStatement","src":"25654:18:97"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"25644:1:97","nodeType":"YulIdentifier","src":"25644:1:97"},{"name":"sum","nativeSrc":"25647:3:97","nodeType":"YulIdentifier","src":"25647:3:97"}],"functionName":{"name":"gt","nativeSrc":"25641:2:97","nodeType":"YulIdentifier","src":"25641:2:97"},"nativeSrc":"25641:10:97","nodeType":"YulFunctionCall","src":"25641:10:97"},"nativeSrc":"25638:36:97","nodeType":"YulIf","src":"25638:36:97"}]},"name":"checked_add_t_uint256","nativeSrc":"25555:125:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"25586:1:97","nodeType":"YulTypedName","src":"25586:1:97","type":""},{"name":"y","nativeSrc":"25589:1:97","nodeType":"YulTypedName","src":"25589:1:97","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"25595:3:97","nodeType":"YulTypedName","src":"25595:3:97","type":""}],"src":"25555:125:97"},{"body":{"nativeSrc":"25824:150:97","nodeType":"YulBlock","src":"25824:150:97","statements":[{"nativeSrc":"25834:27:97","nodeType":"YulVariableDeclaration","src":"25834:27:97","value":{"arguments":[{"name":"value0","nativeSrc":"25854:6:97","nodeType":"YulIdentifier","src":"25854:6:97"}],"functionName":{"name":"mload","nativeSrc":"25848:5:97","nodeType":"YulIdentifier","src":"25848:5:97"},"nativeSrc":"25848:13:97","nodeType":"YulFunctionCall","src":"25848:13:97"},"variables":[{"name":"length","nativeSrc":"25838:6:97","nodeType":"YulTypedName","src":"25838:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"25909:6:97","nodeType":"YulIdentifier","src":"25909:6:97"},{"kind":"number","nativeSrc":"25917:4:97","nodeType":"YulLiteral","src":"25917:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"25905:3:97","nodeType":"YulIdentifier","src":"25905:3:97"},"nativeSrc":"25905:17:97","nodeType":"YulFunctionCall","src":"25905:17:97"},{"name":"pos","nativeSrc":"25924:3:97","nodeType":"YulIdentifier","src":"25924:3:97"},{"name":"length","nativeSrc":"25929:6:97","nodeType":"YulIdentifier","src":"25929:6:97"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"25870:34:97","nodeType":"YulIdentifier","src":"25870:34:97"},"nativeSrc":"25870:66:97","nodeType":"YulFunctionCall","src":"25870:66:97"},"nativeSrc":"25870:66:97","nodeType":"YulExpressionStatement","src":"25870:66:97"},{"nativeSrc":"25945:23:97","nodeType":"YulAssignment","src":"25945:23:97","value":{"arguments":[{"name":"pos","nativeSrc":"25956:3:97","nodeType":"YulIdentifier","src":"25956:3:97"},{"name":"length","nativeSrc":"25961:6:97","nodeType":"YulIdentifier","src":"25961:6:97"}],"functionName":{"name":"add","nativeSrc":"25952:3:97","nodeType":"YulIdentifier","src":"25952:3:97"},"nativeSrc":"25952:16:97","nodeType":"YulFunctionCall","src":"25952:16:97"},"variableNames":[{"name":"end","nativeSrc":"25945:3:97","nodeType":"YulIdentifier","src":"25945:3:97"}]}]},"name":"abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"25685:289:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"25800:3:97","nodeType":"YulTypedName","src":"25800:3:97","type":""},{"name":"value0","nativeSrc":"25805:6:97","nodeType":"YulTypedName","src":"25805:6:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"25816:3:97","nodeType":"YulTypedName","src":"25816:3:97","type":""}],"src":"25685:289:97"},{"body":{"nativeSrc":"26170:14:97","nodeType":"YulBlock","src":"26170:14:97","statements":[{"nativeSrc":"26172:10:97","nodeType":"YulAssignment","src":"26172:10:97","value":{"name":"pos","nativeSrc":"26179:3:97","nodeType":"YulIdentifier","src":"26179:3:97"},"variableNames":[{"name":"end","nativeSrc":"26172:3:97","nodeType":"YulIdentifier","src":"26172:3:97"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"25979:205:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"26154:3:97","nodeType":"YulTypedName","src":"26154:3:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"26162:3:97","nodeType":"YulTypedName","src":"26162:3:97","type":""}],"src":"25979:205:97"},{"body":{"nativeSrc":"26476:411:97","nodeType":"YulBlock","src":"26476:411:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"26493:9:97","nodeType":"YulIdentifier","src":"26493:9:97"},{"kind":"number","nativeSrc":"26504:3:97","nodeType":"YulLiteral","src":"26504:3:97","type":"","value":"224"}],"functionName":{"name":"mstore","nativeSrc":"26486:6:97","nodeType":"YulIdentifier","src":"26486:6:97"},"nativeSrc":"26486:22:97","nodeType":"YulFunctionCall","src":"26486:22:97"},"nativeSrc":"26486:22:97","nodeType":"YulExpressionStatement","src":"26486:22:97"},{"nativeSrc":"26517:71:97","nodeType":"YulAssignment","src":"26517:71:97","value":{"arguments":[{"name":"value0","nativeSrc":"26552:6:97","nodeType":"YulIdentifier","src":"26552:6:97"},{"name":"value1","nativeSrc":"26560:6:97","nodeType":"YulIdentifier","src":"26560:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"26572:9:97","nodeType":"YulIdentifier","src":"26572:9:97"},{"kind":"number","nativeSrc":"26583:3:97","nodeType":"YulLiteral","src":"26583:3:97","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"26568:3:97","nodeType":"YulIdentifier","src":"26568:3:97"},"nativeSrc":"26568:19:97","nodeType":"YulFunctionCall","src":"26568:19:97"}],"functionName":{"name":"abi_encode_string_calldata","nativeSrc":"26525:26:97","nodeType":"YulIdentifier","src":"26525:26:97"},"nativeSrc":"26525:63:97","nodeType":"YulFunctionCall","src":"26525:63:97"},"variableNames":[{"name":"tail","nativeSrc":"26517:4:97","nodeType":"YulIdentifier","src":"26517:4:97"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26608:9:97","nodeType":"YulIdentifier","src":"26608:9:97"},{"kind":"number","nativeSrc":"26619:2:97","nodeType":"YulLiteral","src":"26619:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"26604:3:97","nodeType":"YulIdentifier","src":"26604:3:97"},"nativeSrc":"26604:18:97","nodeType":"YulFunctionCall","src":"26604:18:97"},{"name":"value2","nativeSrc":"26624:6:97","nodeType":"YulIdentifier","src":"26624:6:97"}],"functionName":{"name":"mstore","nativeSrc":"26597:6:97","nodeType":"YulIdentifier","src":"26597:6:97"},"nativeSrc":"26597:34:97","nodeType":"YulFunctionCall","src":"26597:34:97"},"nativeSrc":"26597:34:97","nodeType":"YulExpressionStatement","src":"26597:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26651:9:97","nodeType":"YulIdentifier","src":"26651:9:97"},{"kind":"number","nativeSrc":"26662:2:97","nodeType":"YulLiteral","src":"26662:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"26647:3:97","nodeType":"YulIdentifier","src":"26647:3:97"},"nativeSrc":"26647:18:97","nodeType":"YulFunctionCall","src":"26647:18:97"},{"name":"value3","nativeSrc":"26667:6:97","nodeType":"YulIdentifier","src":"26667:6:97"}],"functionName":{"name":"mstore","nativeSrc":"26640:6:97","nodeType":"YulIdentifier","src":"26640:6:97"},"nativeSrc":"26640:34:97","nodeType":"YulFunctionCall","src":"26640:34:97"},"nativeSrc":"26640:34:97","nodeType":"YulExpressionStatement","src":"26640:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26694:9:97","nodeType":"YulIdentifier","src":"26694:9:97"},{"kind":"number","nativeSrc":"26705:2:97","nodeType":"YulLiteral","src":"26705:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"26690:3:97","nodeType":"YulIdentifier","src":"26690:3:97"},"nativeSrc":"26690:18:97","nodeType":"YulFunctionCall","src":"26690:18:97"},{"name":"value4","nativeSrc":"26710:6:97","nodeType":"YulIdentifier","src":"26710:6:97"}],"functionName":{"name":"mstore","nativeSrc":"26683:6:97","nodeType":"YulIdentifier","src":"26683:6:97"},"nativeSrc":"26683:34:97","nodeType":"YulFunctionCall","src":"26683:34:97"},"nativeSrc":"26683:34:97","nodeType":"YulExpressionStatement","src":"26683:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26737:9:97","nodeType":"YulIdentifier","src":"26737:9:97"},{"kind":"number","nativeSrc":"26748:3:97","nodeType":"YulLiteral","src":"26748:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"26733:3:97","nodeType":"YulIdentifier","src":"26733:3:97"},"nativeSrc":"26733:19:97","nodeType":"YulFunctionCall","src":"26733:19:97"},{"name":"value5","nativeSrc":"26754:6:97","nodeType":"YulIdentifier","src":"26754:6:97"}],"functionName":{"name":"mstore","nativeSrc":"26726:6:97","nodeType":"YulIdentifier","src":"26726:6:97"},"nativeSrc":"26726:35:97","nodeType":"YulFunctionCall","src":"26726:35:97"},"nativeSrc":"26726:35:97","nodeType":"YulExpressionStatement","src":"26726:35:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26781:9:97","nodeType":"YulIdentifier","src":"26781:9:97"},{"kind":"number","nativeSrc":"26792:3:97","nodeType":"YulLiteral","src":"26792:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"26777:3:97","nodeType":"YulIdentifier","src":"26777:3:97"},"nativeSrc":"26777:19:97","nodeType":"YulFunctionCall","src":"26777:19:97"},{"arguments":[{"arguments":[{"name":"value6","nativeSrc":"26812:6:97","nodeType":"YulIdentifier","src":"26812:6:97"}],"functionName":{"name":"iszero","nativeSrc":"26805:6:97","nodeType":"YulIdentifier","src":"26805:6:97"},"nativeSrc":"26805:14:97","nodeType":"YulFunctionCall","src":"26805:14:97"}],"functionName":{"name":"iszero","nativeSrc":"26798:6:97","nodeType":"YulIdentifier","src":"26798:6:97"},"nativeSrc":"26798:22:97","nodeType":"YulFunctionCall","src":"26798:22:97"}],"functionName":{"name":"mstore","nativeSrc":"26770:6:97","nodeType":"YulIdentifier","src":"26770:6:97"},"nativeSrc":"26770:51:97","nodeType":"YulFunctionCall","src":"26770:51:97"},"nativeSrc":"26770:51:97","nodeType":"YulExpressionStatement","src":"26770:51:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26841:9:97","nodeType":"YulIdentifier","src":"26841:9:97"},{"kind":"number","nativeSrc":"26852:3:97","nodeType":"YulLiteral","src":"26852:3:97","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"26837:3:97","nodeType":"YulIdentifier","src":"26837:3:97"},"nativeSrc":"26837:19:97","nodeType":"YulFunctionCall","src":"26837:19:97"},{"arguments":[{"arguments":[{"name":"value7","nativeSrc":"26872:6:97","nodeType":"YulIdentifier","src":"26872:6:97"}],"functionName":{"name":"iszero","nativeSrc":"26865:6:97","nodeType":"YulIdentifier","src":"26865:6:97"},"nativeSrc":"26865:14:97","nodeType":"YulFunctionCall","src":"26865:14:97"}],"functionName":{"name":"iszero","nativeSrc":"26858:6:97","nodeType":"YulIdentifier","src":"26858:6:97"},"nativeSrc":"26858:22:97","nodeType":"YulFunctionCall","src":"26858:22:97"}],"functionName":{"name":"mstore","nativeSrc":"26830:6:97","nodeType":"YulIdentifier","src":"26830:6:97"},"nativeSrc":"26830:51:97","nodeType":"YulFunctionCall","src":"26830:51:97"},"nativeSrc":"26830:51:97","nodeType":"YulExpressionStatement","src":"26830:51:97"}]},"name":"abi_encode_tuple_t_string_calldata_ptr_t_uint256_t_uint256_t_uint256_t_uint256_t_bool_t_bool__to_t_string_memory_ptr_t_uint256_t_uint256_t_uint256_t_uint256_t_bool_t_bool__fromStack_reversed","nativeSrc":"26189:698:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"26389:9:97","nodeType":"YulTypedName","src":"26389:9:97","type":""},{"name":"value7","nativeSrc":"26400:6:97","nodeType":"YulTypedName","src":"26400:6:97","type":""},{"name":"value6","nativeSrc":"26408:6:97","nodeType":"YulTypedName","src":"26408:6:97","type":""},{"name":"value5","nativeSrc":"26416:6:97","nodeType":"YulTypedName","src":"26416:6:97","type":""},{"name":"value4","nativeSrc":"26424:6:97","nodeType":"YulTypedName","src":"26424:6:97","type":""},{"name":"value3","nativeSrc":"26432:6:97","nodeType":"YulTypedName","src":"26432:6:97","type":""},{"name":"value2","nativeSrc":"26440:6:97","nodeType":"YulTypedName","src":"26440:6:97","type":""},{"name":"value1","nativeSrc":"26448:6:97","nodeType":"YulTypedName","src":"26448:6:97","type":""},{"name":"value0","nativeSrc":"26456:6:97","nodeType":"YulTypedName","src":"26456:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"26467:4:97","nodeType":"YulTypedName","src":"26467:4:97","type":""}],"src":"26189:698:97"},{"body":{"nativeSrc":"26998:905:97","nodeType":"YulBlock","src":"26998:905:97","statements":[{"nativeSrc":"27008:12:97","nodeType":"YulVariableDeclaration","src":"27008:12:97","value":{"kind":"number","nativeSrc":"27018:2:97","nodeType":"YulLiteral","src":"27018:2:97","type":"","value":"32"},"variables":[{"name":"_1","nativeSrc":"27012:2:97","nodeType":"YulTypedName","src":"27012:2:97","type":""}]},{"body":{"nativeSrc":"27065:16:97","nodeType":"YulBlock","src":"27065:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"27074:1:97","nodeType":"YulLiteral","src":"27074:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"27077:1:97","nodeType":"YulLiteral","src":"27077:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"27067:6:97","nodeType":"YulIdentifier","src":"27067:6:97"},"nativeSrc":"27067:12:97","nodeType":"YulFunctionCall","src":"27067:12:97"},"nativeSrc":"27067:12:97","nodeType":"YulExpressionStatement","src":"27067:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"27040:7:97","nodeType":"YulIdentifier","src":"27040:7:97"},{"name":"headStart","nativeSrc":"27049:9:97","nodeType":"YulIdentifier","src":"27049:9:97"}],"functionName":{"name":"sub","nativeSrc":"27036:3:97","nodeType":"YulIdentifier","src":"27036:3:97"},"nativeSrc":"27036:23:97","nodeType":"YulFunctionCall","src":"27036:23:97"},{"name":"_1","nativeSrc":"27061:2:97","nodeType":"YulIdentifier","src":"27061:2:97"}],"functionName":{"name":"slt","nativeSrc":"27032:3:97","nodeType":"YulIdentifier","src":"27032:3:97"},"nativeSrc":"27032:32:97","nodeType":"YulFunctionCall","src":"27032:32:97"},"nativeSrc":"27029:52:97","nodeType":"YulIf","src":"27029:52:97"},{"nativeSrc":"27090:30:97","nodeType":"YulVariableDeclaration","src":"27090:30:97","value":{"arguments":[{"name":"headStart","nativeSrc":"27110:9:97","nodeType":"YulIdentifier","src":"27110:9:97"}],"functionName":{"name":"mload","nativeSrc":"27104:5:97","nodeType":"YulIdentifier","src":"27104:5:97"},"nativeSrc":"27104:16:97","nodeType":"YulFunctionCall","src":"27104:16:97"},"variables":[{"name":"offset","nativeSrc":"27094:6:97","nodeType":"YulTypedName","src":"27094:6:97","type":""}]},{"nativeSrc":"27129:28:97","nodeType":"YulVariableDeclaration","src":"27129:28:97","value":{"kind":"number","nativeSrc":"27139:18:97","nodeType":"YulLiteral","src":"27139:18:97","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_2","nativeSrc":"27133:2:97","nodeType":"YulTypedName","src":"27133:2:97","type":""}]},{"body":{"nativeSrc":"27184:16:97","nodeType":"YulBlock","src":"27184:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"27193:1:97","nodeType":"YulLiteral","src":"27193:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"27196:1:97","nodeType":"YulLiteral","src":"27196:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"27186:6:97","nodeType":"YulIdentifier","src":"27186:6:97"},"nativeSrc":"27186:12:97","nodeType":"YulFunctionCall","src":"27186:12:97"},"nativeSrc":"27186:12:97","nodeType":"YulExpressionStatement","src":"27186:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"27172:6:97","nodeType":"YulIdentifier","src":"27172:6:97"},{"name":"_2","nativeSrc":"27180:2:97","nodeType":"YulIdentifier","src":"27180:2:97"}],"functionName":{"name":"gt","nativeSrc":"27169:2:97","nodeType":"YulIdentifier","src":"27169:2:97"},"nativeSrc":"27169:14:97","nodeType":"YulFunctionCall","src":"27169:14:97"},"nativeSrc":"27166:34:97","nodeType":"YulIf","src":"27166:34:97"},{"nativeSrc":"27209:32:97","nodeType":"YulVariableDeclaration","src":"27209:32:97","value":{"arguments":[{"name":"headStart","nativeSrc":"27223:9:97","nodeType":"YulIdentifier","src":"27223:9:97"},{"name":"offset","nativeSrc":"27234:6:97","nodeType":"YulIdentifier","src":"27234:6:97"}],"functionName":{"name":"add","nativeSrc":"27219:3:97","nodeType":"YulIdentifier","src":"27219:3:97"},"nativeSrc":"27219:22:97","nodeType":"YulFunctionCall","src":"27219:22:97"},"variables":[{"name":"_3","nativeSrc":"27213:2:97","nodeType":"YulTypedName","src":"27213:2:97","type":""}]},{"body":{"nativeSrc":"27289:16:97","nodeType":"YulBlock","src":"27289:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"27298:1:97","nodeType":"YulLiteral","src":"27298:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"27301:1:97","nodeType":"YulLiteral","src":"27301:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"27291:6:97","nodeType":"YulIdentifier","src":"27291:6:97"},"nativeSrc":"27291:12:97","nodeType":"YulFunctionCall","src":"27291:12:97"},"nativeSrc":"27291:12:97","nodeType":"YulExpressionStatement","src":"27291:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nativeSrc":"27268:2:97","nodeType":"YulIdentifier","src":"27268:2:97"},{"kind":"number","nativeSrc":"27272:4:97","nodeType":"YulLiteral","src":"27272:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"27264:3:97","nodeType":"YulIdentifier","src":"27264:3:97"},"nativeSrc":"27264:13:97","nodeType":"YulFunctionCall","src":"27264:13:97"},{"name":"dataEnd","nativeSrc":"27279:7:97","nodeType":"YulIdentifier","src":"27279:7:97"}],"functionName":{"name":"slt","nativeSrc":"27260:3:97","nodeType":"YulIdentifier","src":"27260:3:97"},"nativeSrc":"27260:27:97","nodeType":"YulFunctionCall","src":"27260:27:97"}],"functionName":{"name":"iszero","nativeSrc":"27253:6:97","nodeType":"YulIdentifier","src":"27253:6:97"},"nativeSrc":"27253:35:97","nodeType":"YulFunctionCall","src":"27253:35:97"},"nativeSrc":"27250:55:97","nodeType":"YulIf","src":"27250:55:97"},{"nativeSrc":"27314:19:97","nodeType":"YulVariableDeclaration","src":"27314:19:97","value":{"arguments":[{"name":"_3","nativeSrc":"27330:2:97","nodeType":"YulIdentifier","src":"27330:2:97"}],"functionName":{"name":"mload","nativeSrc":"27324:5:97","nodeType":"YulIdentifier","src":"27324:5:97"},"nativeSrc":"27324:9:97","nodeType":"YulFunctionCall","src":"27324:9:97"},"variables":[{"name":"_4","nativeSrc":"27318:2:97","nodeType":"YulTypedName","src":"27318:2:97","type":""}]},{"body":{"nativeSrc":"27356:22:97","nodeType":"YulBlock","src":"27356:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"27358:16:97","nodeType":"YulIdentifier","src":"27358:16:97"},"nativeSrc":"27358:18:97","nodeType":"YulFunctionCall","src":"27358:18:97"},"nativeSrc":"27358:18:97","nodeType":"YulExpressionStatement","src":"27358:18:97"}]},"condition":{"arguments":[{"name":"_4","nativeSrc":"27348:2:97","nodeType":"YulIdentifier","src":"27348:2:97"},{"name":"_2","nativeSrc":"27352:2:97","nodeType":"YulIdentifier","src":"27352:2:97"}],"functionName":{"name":"gt","nativeSrc":"27345:2:97","nodeType":"YulIdentifier","src":"27345:2:97"},"nativeSrc":"27345:10:97","nodeType":"YulFunctionCall","src":"27345:10:97"},"nativeSrc":"27342:36:97","nodeType":"YulIf","src":"27342:36:97"},{"nativeSrc":"27387:20:97","nodeType":"YulVariableDeclaration","src":"27387:20:97","value":{"arguments":[{"kind":"number","nativeSrc":"27401:1:97","nodeType":"YulLiteral","src":"27401:1:97","type":"","value":"5"},{"name":"_4","nativeSrc":"27404:2:97","nodeType":"YulIdentifier","src":"27404:2:97"}],"functionName":{"name":"shl","nativeSrc":"27397:3:97","nodeType":"YulIdentifier","src":"27397:3:97"},"nativeSrc":"27397:10:97","nodeType":"YulFunctionCall","src":"27397:10:97"},"variables":[{"name":"_5","nativeSrc":"27391:2:97","nodeType":"YulTypedName","src":"27391:2:97","type":""}]},{"nativeSrc":"27416:39:97","nodeType":"YulVariableDeclaration","src":"27416:39:97","value":{"arguments":[{"arguments":[{"name":"_5","nativeSrc":"27447:2:97","nodeType":"YulIdentifier","src":"27447:2:97"},{"name":"_1","nativeSrc":"27451:2:97","nodeType":"YulIdentifier","src":"27451:2:97"}],"functionName":{"name":"add","nativeSrc":"27443:3:97","nodeType":"YulIdentifier","src":"27443:3:97"},"nativeSrc":"27443:11:97","nodeType":"YulFunctionCall","src":"27443:11:97"}],"functionName":{"name":"allocate_memory","nativeSrc":"27427:15:97","nodeType":"YulIdentifier","src":"27427:15:97"},"nativeSrc":"27427:28:97","nodeType":"YulFunctionCall","src":"27427:28:97"},"variables":[{"name":"dst","nativeSrc":"27420:3:97","nodeType":"YulTypedName","src":"27420:3:97","type":""}]},{"nativeSrc":"27464:16:97","nodeType":"YulVariableDeclaration","src":"27464:16:97","value":{"name":"dst","nativeSrc":"27477:3:97","nodeType":"YulIdentifier","src":"27477:3:97"},"variables":[{"name":"dst_1","nativeSrc":"27468:5:97","nodeType":"YulTypedName","src":"27468:5:97","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"27496:3:97","nodeType":"YulIdentifier","src":"27496:3:97"},{"name":"_4","nativeSrc":"27501:2:97","nodeType":"YulIdentifier","src":"27501:2:97"}],"functionName":{"name":"mstore","nativeSrc":"27489:6:97","nodeType":"YulIdentifier","src":"27489:6:97"},"nativeSrc":"27489:15:97","nodeType":"YulFunctionCall","src":"27489:15:97"},"nativeSrc":"27489:15:97","nodeType":"YulExpressionStatement","src":"27489:15:97"},{"nativeSrc":"27513:19:97","nodeType":"YulAssignment","src":"27513:19:97","value":{"arguments":[{"name":"dst","nativeSrc":"27524:3:97","nodeType":"YulIdentifier","src":"27524:3:97"},{"name":"_1","nativeSrc":"27529:2:97","nodeType":"YulIdentifier","src":"27529:2:97"}],"functionName":{"name":"add","nativeSrc":"27520:3:97","nodeType":"YulIdentifier","src":"27520:3:97"},"nativeSrc":"27520:12:97","nodeType":"YulFunctionCall","src":"27520:12:97"},"variableNames":[{"name":"dst","nativeSrc":"27513:3:97","nodeType":"YulIdentifier","src":"27513:3:97"}]},{"nativeSrc":"27541:34:97","nodeType":"YulVariableDeclaration","src":"27541:34:97","value":{"arguments":[{"arguments":[{"name":"_3","nativeSrc":"27563:2:97","nodeType":"YulIdentifier","src":"27563:2:97"},{"name":"_5","nativeSrc":"27567:2:97","nodeType":"YulIdentifier","src":"27567:2:97"}],"functionName":{"name":"add","nativeSrc":"27559:3:97","nodeType":"YulIdentifier","src":"27559:3:97"},"nativeSrc":"27559:11:97","nodeType":"YulFunctionCall","src":"27559:11:97"},{"name":"_1","nativeSrc":"27572:2:97","nodeType":"YulIdentifier","src":"27572:2:97"}],"functionName":{"name":"add","nativeSrc":"27555:3:97","nodeType":"YulIdentifier","src":"27555:3:97"},"nativeSrc":"27555:20:97","nodeType":"YulFunctionCall","src":"27555:20:97"},"variables":[{"name":"srcEnd","nativeSrc":"27545:6:97","nodeType":"YulTypedName","src":"27545:6:97","type":""}]},{"body":{"nativeSrc":"27607:16:97","nodeType":"YulBlock","src":"27607:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"27616:1:97","nodeType":"YulLiteral","src":"27616:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"27619:1:97","nodeType":"YulLiteral","src":"27619:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"27609:6:97","nodeType":"YulIdentifier","src":"27609:6:97"},"nativeSrc":"27609:12:97","nodeType":"YulFunctionCall","src":"27609:12:97"},"nativeSrc":"27609:12:97","nodeType":"YulExpressionStatement","src":"27609:12:97"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"27590:6:97","nodeType":"YulIdentifier","src":"27590:6:97"},{"name":"dataEnd","nativeSrc":"27598:7:97","nodeType":"YulIdentifier","src":"27598:7:97"}],"functionName":{"name":"gt","nativeSrc":"27587:2:97","nodeType":"YulIdentifier","src":"27587:2:97"},"nativeSrc":"27587:19:97","nodeType":"YulFunctionCall","src":"27587:19:97"},"nativeSrc":"27584:39:97","nodeType":"YulIf","src":"27584:39:97"},{"nativeSrc":"27632:22:97","nodeType":"YulVariableDeclaration","src":"27632:22:97","value":{"arguments":[{"name":"_3","nativeSrc":"27647:2:97","nodeType":"YulIdentifier","src":"27647:2:97"},{"name":"_1","nativeSrc":"27651:2:97","nodeType":"YulIdentifier","src":"27651:2:97"}],"functionName":{"name":"add","nativeSrc":"27643:3:97","nodeType":"YulIdentifier","src":"27643:3:97"},"nativeSrc":"27643:11:97","nodeType":"YulFunctionCall","src":"27643:11:97"},"variables":[{"name":"src","nativeSrc":"27636:3:97","nodeType":"YulTypedName","src":"27636:3:97","type":""}]},{"body":{"nativeSrc":"27719:154:97","nodeType":"YulBlock","src":"27719:154:97","statements":[{"nativeSrc":"27733:23:97","nodeType":"YulVariableDeclaration","src":"27733:23:97","value":{"arguments":[{"name":"src","nativeSrc":"27752:3:97","nodeType":"YulIdentifier","src":"27752:3:97"}],"functionName":{"name":"mload","nativeSrc":"27746:5:97","nodeType":"YulIdentifier","src":"27746:5:97"},"nativeSrc":"27746:10:97","nodeType":"YulFunctionCall","src":"27746:10:97"},"variables":[{"name":"value","nativeSrc":"27737:5:97","nodeType":"YulTypedName","src":"27737:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"27794:5:97","nodeType":"YulIdentifier","src":"27794:5:97"}],"functionName":{"name":"validator_revert_address","nativeSrc":"27769:24:97","nodeType":"YulIdentifier","src":"27769:24:97"},"nativeSrc":"27769:31:97","nodeType":"YulFunctionCall","src":"27769:31:97"},"nativeSrc":"27769:31:97","nodeType":"YulExpressionStatement","src":"27769:31:97"},{"expression":{"arguments":[{"name":"dst","nativeSrc":"27820:3:97","nodeType":"YulIdentifier","src":"27820:3:97"},{"name":"value","nativeSrc":"27825:5:97","nodeType":"YulIdentifier","src":"27825:5:97"}],"functionName":{"name":"mstore","nativeSrc":"27813:6:97","nodeType":"YulIdentifier","src":"27813:6:97"},"nativeSrc":"27813:18:97","nodeType":"YulFunctionCall","src":"27813:18:97"},"nativeSrc":"27813:18:97","nodeType":"YulExpressionStatement","src":"27813:18:97"},{"nativeSrc":"27844:19:97","nodeType":"YulAssignment","src":"27844:19:97","value":{"arguments":[{"name":"dst","nativeSrc":"27855:3:97","nodeType":"YulIdentifier","src":"27855:3:97"},{"name":"_1","nativeSrc":"27860:2:97","nodeType":"YulIdentifier","src":"27860:2:97"}],"functionName":{"name":"add","nativeSrc":"27851:3:97","nodeType":"YulIdentifier","src":"27851:3:97"},"nativeSrc":"27851:12:97","nodeType":"YulFunctionCall","src":"27851:12:97"},"variableNames":[{"name":"dst","nativeSrc":"27844:3:97","nodeType":"YulIdentifier","src":"27844:3:97"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"27674:3:97","nodeType":"YulIdentifier","src":"27674:3:97"},{"name":"srcEnd","nativeSrc":"27679:6:97","nodeType":"YulIdentifier","src":"27679:6:97"}],"functionName":{"name":"lt","nativeSrc":"27671:2:97","nodeType":"YulIdentifier","src":"27671:2:97"},"nativeSrc":"27671:15:97","nodeType":"YulFunctionCall","src":"27671:15:97"},"nativeSrc":"27663:210:97","nodeType":"YulForLoop","post":{"nativeSrc":"27687:23:97","nodeType":"YulBlock","src":"27687:23:97","statements":[{"nativeSrc":"27689:19:97","nodeType":"YulAssignment","src":"27689:19:97","value":{"arguments":[{"name":"src","nativeSrc":"27700:3:97","nodeType":"YulIdentifier","src":"27700:3:97"},{"name":"_1","nativeSrc":"27705:2:97","nodeType":"YulIdentifier","src":"27705:2:97"}],"functionName":{"name":"add","nativeSrc":"27696:3:97","nodeType":"YulIdentifier","src":"27696:3:97"},"nativeSrc":"27696:12:97","nodeType":"YulFunctionCall","src":"27696:12:97"},"variableNames":[{"name":"src","nativeSrc":"27689:3:97","nodeType":"YulIdentifier","src":"27689:3:97"}]}]},"pre":{"nativeSrc":"27667:3:97","nodeType":"YulBlock","src":"27667:3:97","statements":[]},"src":"27663:210:97"},{"nativeSrc":"27882:15:97","nodeType":"YulAssignment","src":"27882:15:97","value":{"name":"dst_1","nativeSrc":"27892:5:97","nodeType":"YulIdentifier","src":"27892:5:97"},"variableNames":[{"name":"value0","nativeSrc":"27882:6:97","nodeType":"YulIdentifier","src":"27882:6:97"}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptr_fromMemory","nativeSrc":"26892:1011:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"26964:9:97","nodeType":"YulTypedName","src":"26964:9:97","type":""},{"name":"dataEnd","nativeSrc":"26975:7:97","nodeType":"YulTypedName","src":"26975:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"26987:6:97","nodeType":"YulTypedName","src":"26987:6:97","type":""}],"src":"26892:1011:97"},{"body":{"nativeSrc":"27940:152:97","nodeType":"YulBlock","src":"27940:152:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"27957:1:97","nodeType":"YulLiteral","src":"27957:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"27960:77:97","nodeType":"YulLiteral","src":"27960:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"27950:6:97","nodeType":"YulIdentifier","src":"27950:6:97"},"nativeSrc":"27950:88:97","nodeType":"YulFunctionCall","src":"27950:88:97"},"nativeSrc":"27950:88:97","nodeType":"YulExpressionStatement","src":"27950:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"28054:1:97","nodeType":"YulLiteral","src":"28054:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"28057:4:97","nodeType":"YulLiteral","src":"28057:4:97","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"28047:6:97","nodeType":"YulIdentifier","src":"28047:6:97"},"nativeSrc":"28047:15:97","nodeType":"YulFunctionCall","src":"28047:15:97"},"nativeSrc":"28047:15:97","nodeType":"YulExpressionStatement","src":"28047:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"28078:1:97","nodeType":"YulLiteral","src":"28078:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"28081:4:97","nodeType":"YulLiteral","src":"28081:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"28071:6:97","nodeType":"YulIdentifier","src":"28071:6:97"},"nativeSrc":"28071:15:97","nodeType":"YulFunctionCall","src":"28071:15:97"},"nativeSrc":"28071:15:97","nodeType":"YulExpressionStatement","src":"28071:15:97"}]},"name":"panic_error_0x32","nativeSrc":"27908:184:97","nodeType":"YulFunctionDefinition","src":"27908:184:97"},{"body":{"nativeSrc":"28144:148:97","nodeType":"YulBlock","src":"28144:148:97","statements":[{"body":{"nativeSrc":"28235:22:97","nodeType":"YulBlock","src":"28235:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"28237:16:97","nodeType":"YulIdentifier","src":"28237:16:97"},"nativeSrc":"28237:18:97","nodeType":"YulFunctionCall","src":"28237:18:97"},"nativeSrc":"28237:18:97","nodeType":"YulExpressionStatement","src":"28237:18:97"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"28160:5:97","nodeType":"YulIdentifier","src":"28160:5:97"},{"kind":"number","nativeSrc":"28167:66:97","nodeType":"YulLiteral","src":"28167:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"eq","nativeSrc":"28157:2:97","nodeType":"YulIdentifier","src":"28157:2:97"},"nativeSrc":"28157:77:97","nodeType":"YulFunctionCall","src":"28157:77:97"},"nativeSrc":"28154:103:97","nodeType":"YulIf","src":"28154:103:97"},{"nativeSrc":"28266:20:97","nodeType":"YulAssignment","src":"28266:20:97","value":{"arguments":[{"name":"value","nativeSrc":"28277:5:97","nodeType":"YulIdentifier","src":"28277:5:97"},{"kind":"number","nativeSrc":"28284:1:97","nodeType":"YulLiteral","src":"28284:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"28273:3:97","nodeType":"YulIdentifier","src":"28273:3:97"},"nativeSrc":"28273:13:97","nodeType":"YulFunctionCall","src":"28273:13:97"},"variableNames":[{"name":"ret","nativeSrc":"28266:3:97","nodeType":"YulIdentifier","src":"28266:3:97"}]}]},"name":"increment_t_uint256","nativeSrc":"28097:195:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"28126:5:97","nodeType":"YulTypedName","src":"28126:5:97","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"28136:3:97","nodeType":"YulTypedName","src":"28136:3:97","type":""}],"src":"28097:195:97"},{"body":{"nativeSrc":"28490:778:97","nodeType":"YulBlock","src":"28490:778:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"28507:9:97","nodeType":"YulIdentifier","src":"28507:9:97"},{"kind":"number","nativeSrc":"28518:2:97","nodeType":"YulLiteral","src":"28518:2:97","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"28500:6:97","nodeType":"YulIdentifier","src":"28500:6:97"},"nativeSrc":"28500:21:97","nodeType":"YulFunctionCall","src":"28500:21:97"},"nativeSrc":"28500:21:97","nodeType":"YulExpressionStatement","src":"28500:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28541:9:97","nodeType":"YulIdentifier","src":"28541:9:97"},{"kind":"number","nativeSrc":"28552:2:97","nodeType":"YulLiteral","src":"28552:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"28537:3:97","nodeType":"YulIdentifier","src":"28537:3:97"},"nativeSrc":"28537:18:97","nodeType":"YulFunctionCall","src":"28537:18:97"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"28567:6:97","nodeType":"YulIdentifier","src":"28567:6:97"}],"functionName":{"name":"mload","nativeSrc":"28561:5:97","nodeType":"YulIdentifier","src":"28561:5:97"},"nativeSrc":"28561:13:97","nodeType":"YulFunctionCall","src":"28561:13:97"},{"kind":"number","nativeSrc":"28576:10:97","nodeType":"YulLiteral","src":"28576:10:97","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nativeSrc":"28557:3:97","nodeType":"YulIdentifier","src":"28557:3:97"},"nativeSrc":"28557:30:97","nodeType":"YulFunctionCall","src":"28557:30:97"}],"functionName":{"name":"mstore","nativeSrc":"28530:6:97","nodeType":"YulIdentifier","src":"28530:6:97"},"nativeSrc":"28530:58:97","nodeType":"YulFunctionCall","src":"28530:58:97"},"nativeSrc":"28530:58:97","nodeType":"YulExpressionStatement","src":"28530:58:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28608:9:97","nodeType":"YulIdentifier","src":"28608:9:97"},{"kind":"number","nativeSrc":"28619:2:97","nodeType":"YulLiteral","src":"28619:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"28604:3:97","nodeType":"YulIdentifier","src":"28604:3:97"},"nativeSrc":"28604:18:97","nodeType":"YulFunctionCall","src":"28604:18:97"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"28634:6:97","nodeType":"YulIdentifier","src":"28634:6:97"},{"kind":"number","nativeSrc":"28642:4:97","nodeType":"YulLiteral","src":"28642:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"28630:3:97","nodeType":"YulIdentifier","src":"28630:3:97"},"nativeSrc":"28630:17:97","nodeType":"YulFunctionCall","src":"28630:17:97"}],"functionName":{"name":"mload","nativeSrc":"28624:5:97","nodeType":"YulIdentifier","src":"28624:5:97"},"nativeSrc":"28624:24:97","nodeType":"YulFunctionCall","src":"28624:24:97"}],"functionName":{"name":"mstore","nativeSrc":"28597:6:97","nodeType":"YulIdentifier","src":"28597:6:97"},"nativeSrc":"28597:52:97","nodeType":"YulFunctionCall","src":"28597:52:97"},"nativeSrc":"28597:52:97","nodeType":"YulExpressionStatement","src":"28597:52:97"},{"nativeSrc":"28658:42:97","nodeType":"YulVariableDeclaration","src":"28658:42:97","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"28688:6:97","nodeType":"YulIdentifier","src":"28688:6:97"},{"kind":"number","nativeSrc":"28696:2:97","nodeType":"YulLiteral","src":"28696:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"28684:3:97","nodeType":"YulIdentifier","src":"28684:3:97"},"nativeSrc":"28684:15:97","nodeType":"YulFunctionCall","src":"28684:15:97"}],"functionName":{"name":"mload","nativeSrc":"28678:5:97","nodeType":"YulIdentifier","src":"28678:5:97"},"nativeSrc":"28678:22:97","nodeType":"YulFunctionCall","src":"28678:22:97"},"variables":[{"name":"memberValue0","nativeSrc":"28662:12:97","nodeType":"YulTypedName","src":"28662:12:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28720:9:97","nodeType":"YulIdentifier","src":"28720:9:97"},{"kind":"number","nativeSrc":"28731:3:97","nodeType":"YulLiteral","src":"28731:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"28716:3:97","nodeType":"YulIdentifier","src":"28716:3:97"},"nativeSrc":"28716:19:97","nodeType":"YulFunctionCall","src":"28716:19:97"},{"kind":"number","nativeSrc":"28737:4:97","nodeType":"YulLiteral","src":"28737:4:97","type":"","value":"0xa0"}],"functionName":{"name":"mstore","nativeSrc":"28709:6:97","nodeType":"YulIdentifier","src":"28709:6:97"},"nativeSrc":"28709:33:97","nodeType":"YulFunctionCall","src":"28709:33:97"},"nativeSrc":"28709:33:97","nodeType":"YulExpressionStatement","src":"28709:33:97"},{"nativeSrc":"28751:66:97","nodeType":"YulVariableDeclaration","src":"28751:66:97","value":{"arguments":[{"name":"memberValue0","nativeSrc":"28783:12:97","nodeType":"YulIdentifier","src":"28783:12:97"},{"arguments":[{"name":"headStart","nativeSrc":"28801:9:97","nodeType":"YulIdentifier","src":"28801:9:97"},{"kind":"number","nativeSrc":"28812:3:97","nodeType":"YulLiteral","src":"28812:3:97","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"28797:3:97","nodeType":"YulIdentifier","src":"28797:3:97"},"nativeSrc":"28797:19:97","nodeType":"YulFunctionCall","src":"28797:19:97"}],"functionName":{"name":"abi_encode_string","nativeSrc":"28765:17:97","nodeType":"YulIdentifier","src":"28765:17:97"},"nativeSrc":"28765:52:97","nodeType":"YulFunctionCall","src":"28765:52:97"},"variables":[{"name":"tail_1","nativeSrc":"28755:6:97","nodeType":"YulTypedName","src":"28755:6:97","type":""}]},{"nativeSrc":"28826:44:97","nodeType":"YulVariableDeclaration","src":"28826:44:97","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"28858:6:97","nodeType":"YulIdentifier","src":"28858:6:97"},{"kind":"number","nativeSrc":"28866:2:97","nodeType":"YulLiteral","src":"28866:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"28854:3:97","nodeType":"YulIdentifier","src":"28854:3:97"},"nativeSrc":"28854:15:97","nodeType":"YulFunctionCall","src":"28854:15:97"}],"functionName":{"name":"mload","nativeSrc":"28848:5:97","nodeType":"YulIdentifier","src":"28848:5:97"},"nativeSrc":"28848:22:97","nodeType":"YulFunctionCall","src":"28848:22:97"},"variables":[{"name":"memberValue0_1","nativeSrc":"28830:14:97","nodeType":"YulTypedName","src":"28830:14:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28890:9:97","nodeType":"YulIdentifier","src":"28890:9:97"},{"kind":"number","nativeSrc":"28901:4:97","nodeType":"YulLiteral","src":"28901:4:97","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"28886:3:97","nodeType":"YulIdentifier","src":"28886:3:97"},"nativeSrc":"28886:20:97","nodeType":"YulFunctionCall","src":"28886:20:97"},{"arguments":[{"arguments":[{"name":"tail_1","nativeSrc":"28916:6:97","nodeType":"YulIdentifier","src":"28916:6:97"},{"name":"headStart","nativeSrc":"28924:9:97","nodeType":"YulIdentifier","src":"28924:9:97"}],"functionName":{"name":"sub","nativeSrc":"28912:3:97","nodeType":"YulIdentifier","src":"28912:3:97"},"nativeSrc":"28912:22:97","nodeType":"YulFunctionCall","src":"28912:22:97"},{"kind":"number","nativeSrc":"28936:66:97","nodeType":"YulLiteral","src":"28936:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0"}],"functionName":{"name":"add","nativeSrc":"28908:3:97","nodeType":"YulIdentifier","src":"28908:3:97"},"nativeSrc":"28908:95:97","nodeType":"YulFunctionCall","src":"28908:95:97"}],"functionName":{"name":"mstore","nativeSrc":"28879:6:97","nodeType":"YulIdentifier","src":"28879:6:97"},"nativeSrc":"28879:125:97","nodeType":"YulFunctionCall","src":"28879:125:97"},"nativeSrc":"28879:125:97","nodeType":"YulExpressionStatement","src":"28879:125:97"},{"nativeSrc":"29013:55:97","nodeType":"YulVariableDeclaration","src":"29013:55:97","value":{"arguments":[{"name":"memberValue0_1","nativeSrc":"29045:14:97","nodeType":"YulIdentifier","src":"29045:14:97"},{"name":"tail_1","nativeSrc":"29061:6:97","nodeType":"YulIdentifier","src":"29061:6:97"}],"functionName":{"name":"abi_encode_string","nativeSrc":"29027:17:97","nodeType":"YulIdentifier","src":"29027:17:97"},"nativeSrc":"29027:41:97","nodeType":"YulFunctionCall","src":"29027:41:97"},"variables":[{"name":"tail_2","nativeSrc":"29017:6:97","nodeType":"YulTypedName","src":"29017:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29088:9:97","nodeType":"YulIdentifier","src":"29088:9:97"},{"kind":"number","nativeSrc":"29099:3:97","nodeType":"YulLiteral","src":"29099:3:97","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"29084:3:97","nodeType":"YulIdentifier","src":"29084:3:97"},"nativeSrc":"29084:19:97","nodeType":"YulFunctionCall","src":"29084:19:97"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"29129:6:97","nodeType":"YulIdentifier","src":"29129:6:97"},{"kind":"number","nativeSrc":"29137:3:97","nodeType":"YulLiteral","src":"29137:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"29125:3:97","nodeType":"YulIdentifier","src":"29125:3:97"},"nativeSrc":"29125:16:97","nodeType":"YulFunctionCall","src":"29125:16:97"}],"functionName":{"name":"mload","nativeSrc":"29119:5:97","nodeType":"YulIdentifier","src":"29119:5:97"},"nativeSrc":"29119:23:97","nodeType":"YulFunctionCall","src":"29119:23:97"}],"functionName":{"name":"iszero","nativeSrc":"29112:6:97","nodeType":"YulIdentifier","src":"29112:6:97"},"nativeSrc":"29112:31:97","nodeType":"YulFunctionCall","src":"29112:31:97"}],"functionName":{"name":"iszero","nativeSrc":"29105:6:97","nodeType":"YulIdentifier","src":"29105:6:97"},"nativeSrc":"29105:39:97","nodeType":"YulFunctionCall","src":"29105:39:97"}],"functionName":{"name":"mstore","nativeSrc":"29077:6:97","nodeType":"YulIdentifier","src":"29077:6:97"},"nativeSrc":"29077:68:97","nodeType":"YulFunctionCall","src":"29077:68:97"},"nativeSrc":"29077:68:97","nodeType":"YulExpressionStatement","src":"29077:68:97"},{"nativeSrc":"29154:14:97","nodeType":"YulAssignment","src":"29154:14:97","value":{"name":"tail_2","nativeSrc":"29162:6:97","nodeType":"YulIdentifier","src":"29162:6:97"},"variableNames":[{"name":"tail","nativeSrc":"29154:4:97","nodeType":"YulIdentifier","src":"29154:4:97"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29188:9:97","nodeType":"YulIdentifier","src":"29188:9:97"},{"kind":"number","nativeSrc":"29199:4:97","nodeType":"YulLiteral","src":"29199:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"29184:3:97","nodeType":"YulIdentifier","src":"29184:3:97"},"nativeSrc":"29184:20:97","nodeType":"YulFunctionCall","src":"29184:20:97"},{"arguments":[{"name":"value1","nativeSrc":"29210:6:97","nodeType":"YulIdentifier","src":"29210:6:97"},{"kind":"number","nativeSrc":"29218:42:97","nodeType":"YulLiteral","src":"29218:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"29206:3:97","nodeType":"YulIdentifier","src":"29206:3:97"},"nativeSrc":"29206:55:97","nodeType":"YulFunctionCall","src":"29206:55:97"}],"functionName":{"name":"mstore","nativeSrc":"29177:6:97","nodeType":"YulIdentifier","src":"29177:6:97"},"nativeSrc":"29177:85:97","nodeType":"YulFunctionCall","src":"29177:85:97"},"nativeSrc":"29177:85:97","nodeType":"YulExpressionStatement","src":"29177:85:97"}]},"name":"abi_encode_tuple_t_struct$_MessagingParams_$866_memory_ptr_t_address__to_t_struct$_MessagingParams_$866_memory_ptr_t_address__fromStack_reversed","nativeSrc":"28297:971:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"28451:9:97","nodeType":"YulTypedName","src":"28451:9:97","type":""},{"name":"value1","nativeSrc":"28462:6:97","nodeType":"YulTypedName","src":"28462:6:97","type":""},{"name":"value0","nativeSrc":"28470:6:97","nodeType":"YulTypedName","src":"28470:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"28481:4:97","nodeType":"YulTypedName","src":"28481:4:97","type":""}],"src":"28297:971:97"},{"body":{"nativeSrc":"29353:204:97","nodeType":"YulBlock","src":"29353:204:97","statements":[{"body":{"nativeSrc":"29397:16:97","nodeType":"YulBlock","src":"29397:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"29406:1:97","nodeType":"YulLiteral","src":"29406:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"29409:1:97","nodeType":"YulLiteral","src":"29409:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"29399:6:97","nodeType":"YulIdentifier","src":"29399:6:97"},"nativeSrc":"29399:12:97","nodeType":"YulFunctionCall","src":"29399:12:97"},"nativeSrc":"29399:12:97","nodeType":"YulExpressionStatement","src":"29399:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"29374:3:97","nodeType":"YulIdentifier","src":"29374:3:97"},{"name":"headStart","nativeSrc":"29379:9:97","nodeType":"YulIdentifier","src":"29379:9:97"}],"functionName":{"name":"sub","nativeSrc":"29370:3:97","nodeType":"YulIdentifier","src":"29370:3:97"},"nativeSrc":"29370:19:97","nodeType":"YulFunctionCall","src":"29370:19:97"},{"kind":"number","nativeSrc":"29391:4:97","nodeType":"YulLiteral","src":"29391:4:97","type":"","value":"0x40"}],"functionName":{"name":"slt","nativeSrc":"29366:3:97","nodeType":"YulIdentifier","src":"29366:3:97"},"nativeSrc":"29366:30:97","nodeType":"YulFunctionCall","src":"29366:30:97"},"nativeSrc":"29363:50:97","nodeType":"YulIf","src":"29363:50:97"},{"nativeSrc":"29422:31:97","nodeType":"YulAssignment","src":"29422:31:97","value":{"arguments":[],"functionName":{"name":"allocate_memory_4308","nativeSrc":"29431:20:97","nodeType":"YulIdentifier","src":"29431:20:97"},"nativeSrc":"29431:22:97","nodeType":"YulFunctionCall","src":"29431:22:97"},"variableNames":[{"name":"value","nativeSrc":"29422:5:97","nodeType":"YulIdentifier","src":"29422:5:97"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"29469:5:97","nodeType":"YulIdentifier","src":"29469:5:97"},{"arguments":[{"name":"headStart","nativeSrc":"29482:9:97","nodeType":"YulIdentifier","src":"29482:9:97"}],"functionName":{"name":"mload","nativeSrc":"29476:5:97","nodeType":"YulIdentifier","src":"29476:5:97"},"nativeSrc":"29476:16:97","nodeType":"YulFunctionCall","src":"29476:16:97"}],"functionName":{"name":"mstore","nativeSrc":"29462:6:97","nodeType":"YulIdentifier","src":"29462:6:97"},"nativeSrc":"29462:31:97","nodeType":"YulFunctionCall","src":"29462:31:97"},"nativeSrc":"29462:31:97","nodeType":"YulExpressionStatement","src":"29462:31:97"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"29513:5:97","nodeType":"YulIdentifier","src":"29513:5:97"},{"kind":"number","nativeSrc":"29520:2:97","nodeType":"YulLiteral","src":"29520:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29509:3:97","nodeType":"YulIdentifier","src":"29509:3:97"},"nativeSrc":"29509:14:97","nodeType":"YulFunctionCall","src":"29509:14:97"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29535:9:97","nodeType":"YulIdentifier","src":"29535:9:97"},{"kind":"number","nativeSrc":"29546:2:97","nodeType":"YulLiteral","src":"29546:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29531:3:97","nodeType":"YulIdentifier","src":"29531:3:97"},"nativeSrc":"29531:18:97","nodeType":"YulFunctionCall","src":"29531:18:97"}],"functionName":{"name":"mload","nativeSrc":"29525:5:97","nodeType":"YulIdentifier","src":"29525:5:97"},"nativeSrc":"29525:25:97","nodeType":"YulFunctionCall","src":"29525:25:97"}],"functionName":{"name":"mstore","nativeSrc":"29502:6:97","nodeType":"YulIdentifier","src":"29502:6:97"},"nativeSrc":"29502:49:97","nodeType":"YulFunctionCall","src":"29502:49:97"},"nativeSrc":"29502:49:97","nodeType":"YulExpressionStatement","src":"29502:49:97"}]},"name":"abi_decode_struct_MessagingFee_fromMemory","nativeSrc":"29273:284:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29324:9:97","nodeType":"YulTypedName","src":"29324:9:97","type":""},{"name":"end","nativeSrc":"29335:3:97","nodeType":"YulTypedName","src":"29335:3:97","type":""}],"returnVariables":[{"name":"value","nativeSrc":"29343:5:97","nodeType":"YulTypedName","src":"29343:5:97","type":""}],"src":"29273:284:97"},{"body":{"nativeSrc":"29676:612:97","nodeType":"YulBlock","src":"29676:612:97","statements":[{"body":{"nativeSrc":"29723:16:97","nodeType":"YulBlock","src":"29723:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"29732:1:97","nodeType":"YulLiteral","src":"29732:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"29735:1:97","nodeType":"YulLiteral","src":"29735:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"29725:6:97","nodeType":"YulIdentifier","src":"29725:6:97"},"nativeSrc":"29725:12:97","nodeType":"YulFunctionCall","src":"29725:12:97"},"nativeSrc":"29725:12:97","nodeType":"YulExpressionStatement","src":"29725:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"29697:7:97","nodeType":"YulIdentifier","src":"29697:7:97"},{"name":"headStart","nativeSrc":"29706:9:97","nodeType":"YulIdentifier","src":"29706:9:97"}],"functionName":{"name":"sub","nativeSrc":"29693:3:97","nodeType":"YulIdentifier","src":"29693:3:97"},"nativeSrc":"29693:23:97","nodeType":"YulFunctionCall","src":"29693:23:97"},{"kind":"number","nativeSrc":"29718:3:97","nodeType":"YulLiteral","src":"29718:3:97","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"29689:3:97","nodeType":"YulIdentifier","src":"29689:3:97"},"nativeSrc":"29689:33:97","nodeType":"YulFunctionCall","src":"29689:33:97"},"nativeSrc":"29686:53:97","nodeType":"YulIf","src":"29686:53:97"},{"nativeSrc":"29748:23:97","nodeType":"YulVariableDeclaration","src":"29748:23:97","value":{"arguments":[{"kind":"number","nativeSrc":"29768:2:97","nodeType":"YulLiteral","src":"29768:2:97","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"29762:5:97","nodeType":"YulIdentifier","src":"29762:5:97"},"nativeSrc":"29762:9:97","nodeType":"YulFunctionCall","src":"29762:9:97"},"variables":[{"name":"memPtr","nativeSrc":"29752:6:97","nodeType":"YulTypedName","src":"29752:6:97","type":""}]},{"nativeSrc":"29780:35:97","nodeType":"YulVariableDeclaration","src":"29780:35:97","value":{"arguments":[{"name":"memPtr","nativeSrc":"29802:6:97","nodeType":"YulIdentifier","src":"29802:6:97"},{"kind":"number","nativeSrc":"29810:4:97","nodeType":"YulLiteral","src":"29810:4:97","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"29798:3:97","nodeType":"YulIdentifier","src":"29798:3:97"},"nativeSrc":"29798:17:97","nodeType":"YulFunctionCall","src":"29798:17:97"},"variables":[{"name":"newFreePtr","nativeSrc":"29784:10:97","nodeType":"YulTypedName","src":"29784:10:97","type":""}]},{"nativeSrc":"29824:28:97","nodeType":"YulVariableDeclaration","src":"29824:28:97","value":{"kind":"number","nativeSrc":"29834:18:97","nodeType":"YulLiteral","src":"29834:18:97","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"29828:2:97","nodeType":"YulTypedName","src":"29828:2:97","type":""}]},{"body":{"nativeSrc":"29911:22:97","nodeType":"YulBlock","src":"29911:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"29913:16:97","nodeType":"YulIdentifier","src":"29913:16:97"},"nativeSrc":"29913:18:97","nodeType":"YulFunctionCall","src":"29913:18:97"},"nativeSrc":"29913:18:97","nodeType":"YulExpressionStatement","src":"29913:18:97"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"29870:10:97","nodeType":"YulIdentifier","src":"29870:10:97"},{"name":"_1","nativeSrc":"29882:2:97","nodeType":"YulIdentifier","src":"29882:2:97"}],"functionName":{"name":"gt","nativeSrc":"29867:2:97","nodeType":"YulIdentifier","src":"29867:2:97"},"nativeSrc":"29867:18:97","nodeType":"YulFunctionCall","src":"29867:18:97"},{"arguments":[{"name":"newFreePtr","nativeSrc":"29890:10:97","nodeType":"YulIdentifier","src":"29890:10:97"},{"name":"memPtr","nativeSrc":"29902:6:97","nodeType":"YulIdentifier","src":"29902:6:97"}],"functionName":{"name":"lt","nativeSrc":"29887:2:97","nodeType":"YulIdentifier","src":"29887:2:97"},"nativeSrc":"29887:22:97","nodeType":"YulFunctionCall","src":"29887:22:97"}],"functionName":{"name":"or","nativeSrc":"29864:2:97","nodeType":"YulIdentifier","src":"29864:2:97"},"nativeSrc":"29864:46:97","nodeType":"YulFunctionCall","src":"29864:46:97"},"nativeSrc":"29861:72:97","nodeType":"YulIf","src":"29861:72:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"29949:2:97","nodeType":"YulLiteral","src":"29949:2:97","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"29953:10:97","nodeType":"YulIdentifier","src":"29953:10:97"}],"functionName":{"name":"mstore","nativeSrc":"29942:6:97","nodeType":"YulIdentifier","src":"29942:6:97"},"nativeSrc":"29942:22:97","nodeType":"YulFunctionCall","src":"29942:22:97"},"nativeSrc":"29942:22:97","nodeType":"YulExpressionStatement","src":"29942:22:97"},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"29980:6:97","nodeType":"YulIdentifier","src":"29980:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"29994:9:97","nodeType":"YulIdentifier","src":"29994:9:97"}],"functionName":{"name":"mload","nativeSrc":"29988:5:97","nodeType":"YulIdentifier","src":"29988:5:97"},"nativeSrc":"29988:16:97","nodeType":"YulFunctionCall","src":"29988:16:97"}],"functionName":{"name":"mstore","nativeSrc":"29973:6:97","nodeType":"YulIdentifier","src":"29973:6:97"},"nativeSrc":"29973:32:97","nodeType":"YulFunctionCall","src":"29973:32:97"},"nativeSrc":"29973:32:97","nodeType":"YulExpressionStatement","src":"29973:32:97"},{"nativeSrc":"30014:38:97","nodeType":"YulVariableDeclaration","src":"30014:38:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30037:9:97","nodeType":"YulIdentifier","src":"30037:9:97"},{"kind":"number","nativeSrc":"30048:2:97","nodeType":"YulLiteral","src":"30048:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"30033:3:97","nodeType":"YulIdentifier","src":"30033:3:97"},"nativeSrc":"30033:18:97","nodeType":"YulFunctionCall","src":"30033:18:97"}],"functionName":{"name":"mload","nativeSrc":"30027:5:97","nodeType":"YulIdentifier","src":"30027:5:97"},"nativeSrc":"30027:25:97","nodeType":"YulFunctionCall","src":"30027:25:97"},"variables":[{"name":"value","nativeSrc":"30018:5:97","nodeType":"YulTypedName","src":"30018:5:97","type":""}]},{"body":{"nativeSrc":"30098:16:97","nodeType":"YulBlock","src":"30098:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"30107:1:97","nodeType":"YulLiteral","src":"30107:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"30110:1:97","nodeType":"YulLiteral","src":"30110:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"30100:6:97","nodeType":"YulIdentifier","src":"30100:6:97"},"nativeSrc":"30100:12:97","nodeType":"YulFunctionCall","src":"30100:12:97"},"nativeSrc":"30100:12:97","nodeType":"YulExpressionStatement","src":"30100:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"30074:5:97","nodeType":"YulIdentifier","src":"30074:5:97"},{"arguments":[{"name":"value","nativeSrc":"30085:5:97","nodeType":"YulIdentifier","src":"30085:5:97"},{"name":"_1","nativeSrc":"30092:2:97","nodeType":"YulIdentifier","src":"30092:2:97"}],"functionName":{"name":"and","nativeSrc":"30081:3:97","nodeType":"YulIdentifier","src":"30081:3:97"},"nativeSrc":"30081:14:97","nodeType":"YulFunctionCall","src":"30081:14:97"}],"functionName":{"name":"eq","nativeSrc":"30071:2:97","nodeType":"YulIdentifier","src":"30071:2:97"},"nativeSrc":"30071:25:97","nodeType":"YulFunctionCall","src":"30071:25:97"}],"functionName":{"name":"iszero","nativeSrc":"30064:6:97","nodeType":"YulIdentifier","src":"30064:6:97"},"nativeSrc":"30064:33:97","nodeType":"YulFunctionCall","src":"30064:33:97"},"nativeSrc":"30061:53:97","nodeType":"YulIf","src":"30061:53:97"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"30134:6:97","nodeType":"YulIdentifier","src":"30134:6:97"},{"kind":"number","nativeSrc":"30142:2:97","nodeType":"YulLiteral","src":"30142:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"30130:3:97","nodeType":"YulIdentifier","src":"30130:3:97"},"nativeSrc":"30130:15:97","nodeType":"YulFunctionCall","src":"30130:15:97"},{"name":"value","nativeSrc":"30147:5:97","nodeType":"YulIdentifier","src":"30147:5:97"}],"functionName":{"name":"mstore","nativeSrc":"30123:6:97","nodeType":"YulIdentifier","src":"30123:6:97"},"nativeSrc":"30123:30:97","nodeType":"YulFunctionCall","src":"30123:30:97"},"nativeSrc":"30123:30:97","nodeType":"YulExpressionStatement","src":"30123:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"30173:6:97","nodeType":"YulIdentifier","src":"30173:6:97"},{"kind":"number","nativeSrc":"30181:2:97","nodeType":"YulLiteral","src":"30181:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"30169:3:97","nodeType":"YulIdentifier","src":"30169:3:97"},"nativeSrc":"30169:15:97","nodeType":"YulFunctionCall","src":"30169:15:97"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30232:9:97","nodeType":"YulIdentifier","src":"30232:9:97"},{"kind":"number","nativeSrc":"30243:2:97","nodeType":"YulLiteral","src":"30243:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"30228:3:97","nodeType":"YulIdentifier","src":"30228:3:97"},"nativeSrc":"30228:18:97","nodeType":"YulFunctionCall","src":"30228:18:97"},{"name":"dataEnd","nativeSrc":"30248:7:97","nodeType":"YulIdentifier","src":"30248:7:97"}],"functionName":{"name":"abi_decode_struct_MessagingFee_fromMemory","nativeSrc":"30186:41:97","nodeType":"YulIdentifier","src":"30186:41:97"},"nativeSrc":"30186:70:97","nodeType":"YulFunctionCall","src":"30186:70:97"}],"functionName":{"name":"mstore","nativeSrc":"30162:6:97","nodeType":"YulIdentifier","src":"30162:6:97"},"nativeSrc":"30162:95:97","nodeType":"YulFunctionCall","src":"30162:95:97"},"nativeSrc":"30162:95:97","nodeType":"YulExpressionStatement","src":"30162:95:97"},{"nativeSrc":"30266:16:97","nodeType":"YulAssignment","src":"30266:16:97","value":{"name":"memPtr","nativeSrc":"30276:6:97","nodeType":"YulIdentifier","src":"30276:6:97"},"variableNames":[{"name":"value0","nativeSrc":"30266:6:97","nodeType":"YulIdentifier","src":"30266:6:97"}]}]},"name":"abi_decode_tuple_t_struct$_MessagingReceipt_$874_memory_ptr_fromMemory","nativeSrc":"29562:726:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29642:9:97","nodeType":"YulTypedName","src":"29642:9:97","type":""},{"name":"dataEnd","nativeSrc":"29653:7:97","nodeType":"YulTypedName","src":"29653:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"29665:6:97","nodeType":"YulTypedName","src":"29665:6:97","type":""}],"src":"29562:726:97"},{"body":{"nativeSrc":"30467:182:97","nodeType":"YulBlock","src":"30467:182:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"30484:9:97","nodeType":"YulIdentifier","src":"30484:9:97"},{"kind":"number","nativeSrc":"30495:2:97","nodeType":"YulLiteral","src":"30495:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"30477:6:97","nodeType":"YulIdentifier","src":"30477:6:97"},"nativeSrc":"30477:21:97","nodeType":"YulFunctionCall","src":"30477:21:97"},"nativeSrc":"30477:21:97","nodeType":"YulExpressionStatement","src":"30477:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30518:9:97","nodeType":"YulIdentifier","src":"30518:9:97"},{"kind":"number","nativeSrc":"30529:2:97","nodeType":"YulLiteral","src":"30529:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"30514:3:97","nodeType":"YulIdentifier","src":"30514:3:97"},"nativeSrc":"30514:18:97","nodeType":"YulFunctionCall","src":"30514:18:97"},{"kind":"number","nativeSrc":"30534:2:97","nodeType":"YulLiteral","src":"30534:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"30507:6:97","nodeType":"YulIdentifier","src":"30507:6:97"},"nativeSrc":"30507:30:97","nodeType":"YulFunctionCall","src":"30507:30:97"},"nativeSrc":"30507:30:97","nodeType":"YulExpressionStatement","src":"30507:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30557:9:97","nodeType":"YulIdentifier","src":"30557:9:97"},{"kind":"number","nativeSrc":"30568:2:97","nodeType":"YulLiteral","src":"30568:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"30553:3:97","nodeType":"YulIdentifier","src":"30553:3:97"},"nativeSrc":"30553:18:97","nodeType":"YulFunctionCall","src":"30553:18:97"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nativeSrc":"30573:34:97","nodeType":"YulLiteral","src":"30573:34:97","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nativeSrc":"30546:6:97","nodeType":"YulIdentifier","src":"30546:6:97"},"nativeSrc":"30546:62:97","nodeType":"YulFunctionCall","src":"30546:62:97"},"nativeSrc":"30546:62:97","nodeType":"YulExpressionStatement","src":"30546:62:97"},{"nativeSrc":"30617:26:97","nodeType":"YulAssignment","src":"30617:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"30629:9:97","nodeType":"YulIdentifier","src":"30629:9:97"},{"kind":"number","nativeSrc":"30640:2:97","nodeType":"YulLiteral","src":"30640:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"30625:3:97","nodeType":"YulIdentifier","src":"30625:3:97"},"nativeSrc":"30625:18:97","nodeType":"YulFunctionCall","src":"30625:18:97"},"variableNames":[{"name":"tail","nativeSrc":"30617:4:97","nodeType":"YulIdentifier","src":"30617:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"30293:356:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"30444:9:97","nodeType":"YulTypedName","src":"30444:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"30458:4:97","nodeType":"YulTypedName","src":"30458:4:97","type":""}],"src":"30293:356:97"},{"body":{"nativeSrc":"30828:227:97","nodeType":"YulBlock","src":"30828:227:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"30845:9:97","nodeType":"YulIdentifier","src":"30845:9:97"},{"kind":"number","nativeSrc":"30856:2:97","nodeType":"YulLiteral","src":"30856:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"30838:6:97","nodeType":"YulIdentifier","src":"30838:6:97"},"nativeSrc":"30838:21:97","nodeType":"YulFunctionCall","src":"30838:21:97"},"nativeSrc":"30838:21:97","nodeType":"YulExpressionStatement","src":"30838:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30879:9:97","nodeType":"YulIdentifier","src":"30879:9:97"},{"kind":"number","nativeSrc":"30890:2:97","nodeType":"YulLiteral","src":"30890:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"30875:3:97","nodeType":"YulIdentifier","src":"30875:3:97"},"nativeSrc":"30875:18:97","nodeType":"YulFunctionCall","src":"30875:18:97"},{"kind":"number","nativeSrc":"30895:2:97","nodeType":"YulLiteral","src":"30895:2:97","type":"","value":"37"}],"functionName":{"name":"mstore","nativeSrc":"30868:6:97","nodeType":"YulIdentifier","src":"30868:6:97"},"nativeSrc":"30868:30:97","nodeType":"YulFunctionCall","src":"30868:30:97"},"nativeSrc":"30868:30:97","nodeType":"YulExpressionStatement","src":"30868:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30918:9:97","nodeType":"YulIdentifier","src":"30918:9:97"},{"kind":"number","nativeSrc":"30929:2:97","nodeType":"YulLiteral","src":"30929:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"30914:3:97","nodeType":"YulIdentifier","src":"30914:3:97"},"nativeSrc":"30914:18:97","nodeType":"YulFunctionCall","src":"30914:18:97"},{"hexValue":"696e76616c696420616365737320636f6e74726f6c206d616e61676572206164","kind":"string","nativeSrc":"30934:34:97","nodeType":"YulLiteral","src":"30934:34:97","type":"","value":"invalid acess control manager ad"}],"functionName":{"name":"mstore","nativeSrc":"30907:6:97","nodeType":"YulIdentifier","src":"30907:6:97"},"nativeSrc":"30907:62:97","nodeType":"YulFunctionCall","src":"30907:62:97"},"nativeSrc":"30907:62:97","nodeType":"YulExpressionStatement","src":"30907:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30989:9:97","nodeType":"YulIdentifier","src":"30989:9:97"},{"kind":"number","nativeSrc":"31000:2:97","nodeType":"YulLiteral","src":"31000:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"30985:3:97","nodeType":"YulIdentifier","src":"30985:3:97"},"nativeSrc":"30985:18:97","nodeType":"YulFunctionCall","src":"30985:18:97"},{"hexValue":"6472657373","kind":"string","nativeSrc":"31005:7:97","nodeType":"YulLiteral","src":"31005:7:97","type":"","value":"dress"}],"functionName":{"name":"mstore","nativeSrc":"30978:6:97","nodeType":"YulIdentifier","src":"30978:6:97"},"nativeSrc":"30978:35:97","nodeType":"YulFunctionCall","src":"30978:35:97"},"nativeSrc":"30978:35:97","nodeType":"YulExpressionStatement","src":"30978:35:97"},{"nativeSrc":"31022:27:97","nodeType":"YulAssignment","src":"31022:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"31034:9:97","nodeType":"YulIdentifier","src":"31034:9:97"},{"kind":"number","nativeSrc":"31045:3:97","nodeType":"YulLiteral","src":"31045:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"31030:3:97","nodeType":"YulIdentifier","src":"31030:3:97"},"nativeSrc":"31030:19:97","nodeType":"YulFunctionCall","src":"31030:19:97"},"variableNames":[{"name":"tail","nativeSrc":"31022:4:97","nodeType":"YulIdentifier","src":"31022:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"30654:401:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"30805:9:97","nodeType":"YulTypedName","src":"30805:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"30819:4:97","nodeType":"YulTypedName","src":"30819:4:97","type":""}],"src":"30654:401:97"},{"body":{"nativeSrc":"31189:198:97","nodeType":"YulBlock","src":"31189:198:97","statements":[{"nativeSrc":"31199:26:97","nodeType":"YulAssignment","src":"31199:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"31211:9:97","nodeType":"YulIdentifier","src":"31211:9:97"},{"kind":"number","nativeSrc":"31222:2:97","nodeType":"YulLiteral","src":"31222:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"31207:3:97","nodeType":"YulIdentifier","src":"31207:3:97"},"nativeSrc":"31207:18:97","nodeType":"YulFunctionCall","src":"31207:18:97"},"variableNames":[{"name":"tail","nativeSrc":"31199:4:97","nodeType":"YulIdentifier","src":"31199:4:97"}]},{"nativeSrc":"31234:52:97","nodeType":"YulVariableDeclaration","src":"31234:52:97","value":{"kind":"number","nativeSrc":"31244:42:97","nodeType":"YulLiteral","src":"31244:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"31238:2:97","nodeType":"YulTypedName","src":"31238:2:97","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"31302:9:97","nodeType":"YulIdentifier","src":"31302:9:97"},{"arguments":[{"name":"value0","nativeSrc":"31317:6:97","nodeType":"YulIdentifier","src":"31317:6:97"},{"name":"_1","nativeSrc":"31325:2:97","nodeType":"YulIdentifier","src":"31325:2:97"}],"functionName":{"name":"and","nativeSrc":"31313:3:97","nodeType":"YulIdentifier","src":"31313:3:97"},"nativeSrc":"31313:15:97","nodeType":"YulFunctionCall","src":"31313:15:97"}],"functionName":{"name":"mstore","nativeSrc":"31295:6:97","nodeType":"YulIdentifier","src":"31295:6:97"},"nativeSrc":"31295:34:97","nodeType":"YulFunctionCall","src":"31295:34:97"},"nativeSrc":"31295:34:97","nodeType":"YulExpressionStatement","src":"31295:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"31349:9:97","nodeType":"YulIdentifier","src":"31349:9:97"},{"kind":"number","nativeSrc":"31360:2:97","nodeType":"YulLiteral","src":"31360:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"31345:3:97","nodeType":"YulIdentifier","src":"31345:3:97"},"nativeSrc":"31345:18:97","nodeType":"YulFunctionCall","src":"31345:18:97"},{"arguments":[{"name":"value1","nativeSrc":"31369:6:97","nodeType":"YulIdentifier","src":"31369:6:97"},{"name":"_1","nativeSrc":"31377:2:97","nodeType":"YulIdentifier","src":"31377:2:97"}],"functionName":{"name":"and","nativeSrc":"31365:3:97","nodeType":"YulIdentifier","src":"31365:3:97"},"nativeSrc":"31365:15:97","nodeType":"YulFunctionCall","src":"31365:15:97"}],"functionName":{"name":"mstore","nativeSrc":"31338:6:97","nodeType":"YulIdentifier","src":"31338:6:97"},"nativeSrc":"31338:43:97","nodeType":"YulFunctionCall","src":"31338:43:97"},"nativeSrc":"31338:43:97","nodeType":"YulExpressionStatement","src":"31338:43:97"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"31060:327:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"31150:9:97","nodeType":"YulTypedName","src":"31150:9:97","type":""},{"name":"value1","nativeSrc":"31161:6:97","nodeType":"YulTypedName","src":"31161:6:97","type":""},{"name":"value0","nativeSrc":"31169:6:97","nodeType":"YulTypedName","src":"31169:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"31180:4:97","nodeType":"YulTypedName","src":"31180:4:97","type":""}],"src":"31060:327:97"},{"body":{"nativeSrc":"31541:191:97","nodeType":"YulBlock","src":"31541:191:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"31558:9:97","nodeType":"YulIdentifier","src":"31558:9:97"},{"arguments":[{"name":"value0","nativeSrc":"31573:6:97","nodeType":"YulIdentifier","src":"31573:6:97"},{"kind":"number","nativeSrc":"31581:42:97","nodeType":"YulLiteral","src":"31581:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"31569:3:97","nodeType":"YulIdentifier","src":"31569:3:97"},"nativeSrc":"31569:55:97","nodeType":"YulFunctionCall","src":"31569:55:97"}],"functionName":{"name":"mstore","nativeSrc":"31551:6:97","nodeType":"YulIdentifier","src":"31551:6:97"},"nativeSrc":"31551:74:97","nodeType":"YulFunctionCall","src":"31551:74:97"},"nativeSrc":"31551:74:97","nodeType":"YulExpressionStatement","src":"31551:74:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"31645:9:97","nodeType":"YulIdentifier","src":"31645:9:97"},{"kind":"number","nativeSrc":"31656:2:97","nodeType":"YulLiteral","src":"31656:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"31641:3:97","nodeType":"YulIdentifier","src":"31641:3:97"},"nativeSrc":"31641:18:97","nodeType":"YulFunctionCall","src":"31641:18:97"},{"kind":"number","nativeSrc":"31661:2:97","nodeType":"YulLiteral","src":"31661:2:97","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"31634:6:97","nodeType":"YulIdentifier","src":"31634:6:97"},"nativeSrc":"31634:30:97","nodeType":"YulFunctionCall","src":"31634:30:97"},"nativeSrc":"31634:30:97","nodeType":"YulExpressionStatement","src":"31634:30:97"},{"nativeSrc":"31673:53:97","nodeType":"YulAssignment","src":"31673:53:97","value":{"arguments":[{"name":"value1","nativeSrc":"31699:6:97","nodeType":"YulIdentifier","src":"31699:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"31711:9:97","nodeType":"YulIdentifier","src":"31711:9:97"},{"kind":"number","nativeSrc":"31722:2:97","nodeType":"YulLiteral","src":"31722:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"31707:3:97","nodeType":"YulIdentifier","src":"31707:3:97"},"nativeSrc":"31707:18:97","nodeType":"YulFunctionCall","src":"31707:18:97"}],"functionName":{"name":"abi_encode_string","nativeSrc":"31681:17:97","nodeType":"YulIdentifier","src":"31681:17:97"},"nativeSrc":"31681:45:97","nodeType":"YulFunctionCall","src":"31681:45:97"},"variableNames":[{"name":"tail","nativeSrc":"31673:4:97","nodeType":"YulIdentifier","src":"31673:4:97"}]}]},"name":"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"31392:340:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"31502:9:97","nodeType":"YulTypedName","src":"31502:9:97","type":""},{"name":"value1","nativeSrc":"31513:6:97","nodeType":"YulTypedName","src":"31513:6:97","type":""},{"name":"value0","nativeSrc":"31521:6:97","nodeType":"YulTypedName","src":"31521:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"31532:4:97","nodeType":"YulTypedName","src":"31532:4:97","type":""}],"src":"31392:340:97"},{"body":{"nativeSrc":"31914:264:97","nodeType":"YulBlock","src":"31914:264:97","statements":[{"nativeSrc":"31924:52:97","nodeType":"YulVariableDeclaration","src":"31924:52:97","value":{"kind":"number","nativeSrc":"31934:42:97","nodeType":"YulLiteral","src":"31934:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"31928:2:97","nodeType":"YulTypedName","src":"31928:2:97","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"31992:9:97","nodeType":"YulIdentifier","src":"31992:9:97"},{"arguments":[{"name":"value0","nativeSrc":"32007:6:97","nodeType":"YulIdentifier","src":"32007:6:97"},{"name":"_1","nativeSrc":"32015:2:97","nodeType":"YulIdentifier","src":"32015:2:97"}],"functionName":{"name":"and","nativeSrc":"32003:3:97","nodeType":"YulIdentifier","src":"32003:3:97"},"nativeSrc":"32003:15:97","nodeType":"YulFunctionCall","src":"32003:15:97"}],"functionName":{"name":"mstore","nativeSrc":"31985:6:97","nodeType":"YulIdentifier","src":"31985:6:97"},"nativeSrc":"31985:34:97","nodeType":"YulFunctionCall","src":"31985:34:97"},"nativeSrc":"31985:34:97","nodeType":"YulExpressionStatement","src":"31985:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"32039:9:97","nodeType":"YulIdentifier","src":"32039:9:97"},{"kind":"number","nativeSrc":"32050:2:97","nodeType":"YulLiteral","src":"32050:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"32035:3:97","nodeType":"YulIdentifier","src":"32035:3:97"},"nativeSrc":"32035:18:97","nodeType":"YulFunctionCall","src":"32035:18:97"},{"arguments":[{"name":"value1","nativeSrc":"32059:6:97","nodeType":"YulIdentifier","src":"32059:6:97"},{"name":"_1","nativeSrc":"32067:2:97","nodeType":"YulIdentifier","src":"32067:2:97"}],"functionName":{"name":"and","nativeSrc":"32055:3:97","nodeType":"YulIdentifier","src":"32055:3:97"},"nativeSrc":"32055:15:97","nodeType":"YulFunctionCall","src":"32055:15:97"}],"functionName":{"name":"mstore","nativeSrc":"32028:6:97","nodeType":"YulIdentifier","src":"32028:6:97"},"nativeSrc":"32028:43:97","nodeType":"YulFunctionCall","src":"32028:43:97"},"nativeSrc":"32028:43:97","nodeType":"YulExpressionStatement","src":"32028:43:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"32091:9:97","nodeType":"YulIdentifier","src":"32091:9:97"},{"kind":"number","nativeSrc":"32102:2:97","nodeType":"YulLiteral","src":"32102:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"32087:3:97","nodeType":"YulIdentifier","src":"32087:3:97"},"nativeSrc":"32087:18:97","nodeType":"YulFunctionCall","src":"32087:18:97"},{"kind":"number","nativeSrc":"32107:2:97","nodeType":"YulLiteral","src":"32107:2:97","type":"","value":"96"}],"functionName":{"name":"mstore","nativeSrc":"32080:6:97","nodeType":"YulIdentifier","src":"32080:6:97"},"nativeSrc":"32080:30:97","nodeType":"YulFunctionCall","src":"32080:30:97"},"nativeSrc":"32080:30:97","nodeType":"YulExpressionStatement","src":"32080:30:97"},{"nativeSrc":"32119:53:97","nodeType":"YulAssignment","src":"32119:53:97","value":{"arguments":[{"name":"value2","nativeSrc":"32145:6:97","nodeType":"YulIdentifier","src":"32145:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"32157:9:97","nodeType":"YulIdentifier","src":"32157:9:97"},{"kind":"number","nativeSrc":"32168:2:97","nodeType":"YulLiteral","src":"32168:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"32153:3:97","nodeType":"YulIdentifier","src":"32153:3:97"},"nativeSrc":"32153:18:97","nodeType":"YulFunctionCall","src":"32153:18:97"}],"functionName":{"name":"abi_encode_string","nativeSrc":"32127:17:97","nodeType":"YulIdentifier","src":"32127:17:97"},"nativeSrc":"32127:45:97","nodeType":"YulFunctionCall","src":"32127:45:97"},"variableNames":[{"name":"tail","nativeSrc":"32119:4:97","nodeType":"YulIdentifier","src":"32119:4:97"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"31737:441:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"31867:9:97","nodeType":"YulTypedName","src":"31867:9:97","type":""},{"name":"value2","nativeSrc":"31878:6:97","nodeType":"YulTypedName","src":"31878:6:97","type":""},{"name":"value1","nativeSrc":"31886:6:97","nodeType":"YulTypedName","src":"31886:6:97","type":""},{"name":"value0","nativeSrc":"31894:6:97","nodeType":"YulTypedName","src":"31894:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"31905:4:97","nodeType":"YulTypedName","src":"31905:4:97","type":""}],"src":"31737:441:97"},{"body":{"nativeSrc":"32293:148:97","nodeType":"YulBlock","src":"32293:148:97","statements":[{"body":{"nativeSrc":"32339:16:97","nodeType":"YulBlock","src":"32339:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"32348:1:97","nodeType":"YulLiteral","src":"32348:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"32351:1:97","nodeType":"YulLiteral","src":"32351:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"32341:6:97","nodeType":"YulIdentifier","src":"32341:6:97"},"nativeSrc":"32341:12:97","nodeType":"YulFunctionCall","src":"32341:12:97"},"nativeSrc":"32341:12:97","nodeType":"YulExpressionStatement","src":"32341:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"32314:7:97","nodeType":"YulIdentifier","src":"32314:7:97"},{"name":"headStart","nativeSrc":"32323:9:97","nodeType":"YulIdentifier","src":"32323:9:97"}],"functionName":{"name":"sub","nativeSrc":"32310:3:97","nodeType":"YulIdentifier","src":"32310:3:97"},"nativeSrc":"32310:23:97","nodeType":"YulFunctionCall","src":"32310:23:97"},{"kind":"number","nativeSrc":"32335:2:97","nodeType":"YulLiteral","src":"32335:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"32306:3:97","nodeType":"YulIdentifier","src":"32306:3:97"},"nativeSrc":"32306:32:97","nodeType":"YulFunctionCall","src":"32306:32:97"},"nativeSrc":"32303:52:97","nodeType":"YulIf","src":"32303:52:97"},{"nativeSrc":"32364:71:97","nodeType":"YulAssignment","src":"32364:71:97","value":{"arguments":[{"name":"headStart","nativeSrc":"32416:9:97","nodeType":"YulIdentifier","src":"32416:9:97"},{"name":"dataEnd","nativeSrc":"32427:7:97","nodeType":"YulIdentifier","src":"32427:7:97"}],"functionName":{"name":"abi_decode_struct_MessagingFee_fromMemory","nativeSrc":"32374:41:97","nodeType":"YulIdentifier","src":"32374:41:97"},"nativeSrc":"32374:61:97","nodeType":"YulFunctionCall","src":"32374:61:97"},"variableNames":[{"name":"value0","nativeSrc":"32364:6:97","nodeType":"YulIdentifier","src":"32364:6:97"}]}]},"name":"abi_decode_tuple_t_struct$_MessagingFee_$879_memory_ptr_fromMemory","nativeSrc":"32183:258:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"32259:9:97","nodeType":"YulTypedName","src":"32259:9:97","type":""},{"name":"dataEnd","nativeSrc":"32270:7:97","nodeType":"YulTypedName","src":"32270:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"32282:6:97","nodeType":"YulTypedName","src":"32282:6:97","type":""}],"src":"32183:258:97"},{"body":{"nativeSrc":"32620:233:97","nodeType":"YulBlock","src":"32620:233:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"32637:9:97","nodeType":"YulIdentifier","src":"32637:9:97"},{"kind":"number","nativeSrc":"32648:2:97","nodeType":"YulLiteral","src":"32648:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"32630:6:97","nodeType":"YulIdentifier","src":"32630:6:97"},"nativeSrc":"32630:21:97","nodeType":"YulFunctionCall","src":"32630:21:97"},"nativeSrc":"32630:21:97","nodeType":"YulExpressionStatement","src":"32630:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"32671:9:97","nodeType":"YulIdentifier","src":"32671:9:97"},{"kind":"number","nativeSrc":"32682:2:97","nodeType":"YulLiteral","src":"32682:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"32667:3:97","nodeType":"YulIdentifier","src":"32667:3:97"},"nativeSrc":"32667:18:97","nodeType":"YulFunctionCall","src":"32667:18:97"},{"kind":"number","nativeSrc":"32687:2:97","nodeType":"YulLiteral","src":"32687:2:97","type":"","value":"43"}],"functionName":{"name":"mstore","nativeSrc":"32660:6:97","nodeType":"YulIdentifier","src":"32660:6:97"},"nativeSrc":"32660:30:97","nodeType":"YulFunctionCall","src":"32660:30:97"},"nativeSrc":"32660:30:97","nodeType":"YulExpressionStatement","src":"32660:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"32710:9:97","nodeType":"YulIdentifier","src":"32710:9:97"},{"kind":"number","nativeSrc":"32721:2:97","nodeType":"YulLiteral","src":"32721:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"32706:3:97","nodeType":"YulIdentifier","src":"32706:3:97"},"nativeSrc":"32706:18:97","nodeType":"YulFunctionCall","src":"32706:18:97"},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069","kind":"string","nativeSrc":"32726:34:97","nodeType":"YulLiteral","src":"32726:34:97","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nativeSrc":"32699:6:97","nodeType":"YulIdentifier","src":"32699:6:97"},"nativeSrc":"32699:62:97","nodeType":"YulFunctionCall","src":"32699:62:97"},"nativeSrc":"32699:62:97","nodeType":"YulExpressionStatement","src":"32699:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"32781:9:97","nodeType":"YulIdentifier","src":"32781:9:97"},{"kind":"number","nativeSrc":"32792:2:97","nodeType":"YulLiteral","src":"32792:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"32777:3:97","nodeType":"YulIdentifier","src":"32777:3:97"},"nativeSrc":"32777:18:97","nodeType":"YulFunctionCall","src":"32777:18:97"},{"hexValue":"6e697469616c697a696e67","kind":"string","nativeSrc":"32797:13:97","nodeType":"YulLiteral","src":"32797:13:97","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nativeSrc":"32770:6:97","nodeType":"YulIdentifier","src":"32770:6:97"},"nativeSrc":"32770:41:97","nodeType":"YulFunctionCall","src":"32770:41:97"},"nativeSrc":"32770:41:97","nodeType":"YulExpressionStatement","src":"32770:41:97"},{"nativeSrc":"32820:27:97","nodeType":"YulAssignment","src":"32820:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"32832:9:97","nodeType":"YulIdentifier","src":"32832:9:97"},{"kind":"number","nativeSrc":"32843:3:97","nodeType":"YulLiteral","src":"32843:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"32828:3:97","nodeType":"YulIdentifier","src":"32828:3:97"},"nativeSrc":"32828:19:97","nodeType":"YulFunctionCall","src":"32828:19:97"},"variableNames":[{"name":"tail","nativeSrc":"32820:4:97","nodeType":"YulIdentifier","src":"32820:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"32446:407:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"32597:9:97","nodeType":"YulTypedName","src":"32597:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"32611:4:97","nodeType":"YulTypedName","src":"32611:4:97","type":""}],"src":"32446:407:97"},{"body":{"nativeSrc":"33007:191:97","nodeType":"YulBlock","src":"33007:191:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"33024:9:97","nodeType":"YulIdentifier","src":"33024:9:97"},{"kind":"number","nativeSrc":"33035:2:97","nodeType":"YulLiteral","src":"33035:2:97","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"33017:6:97","nodeType":"YulIdentifier","src":"33017:6:97"},"nativeSrc":"33017:21:97","nodeType":"YulFunctionCall","src":"33017:21:97"},"nativeSrc":"33017:21:97","nodeType":"YulExpressionStatement","src":"33017:21:97"},{"nativeSrc":"33047:53:97","nodeType":"YulAssignment","src":"33047:53:97","value":{"arguments":[{"name":"value0","nativeSrc":"33073:6:97","nodeType":"YulIdentifier","src":"33073:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"33085:9:97","nodeType":"YulIdentifier","src":"33085:9:97"},{"kind":"number","nativeSrc":"33096:2:97","nodeType":"YulLiteral","src":"33096:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"33081:3:97","nodeType":"YulIdentifier","src":"33081:3:97"},"nativeSrc":"33081:18:97","nodeType":"YulFunctionCall","src":"33081:18:97"}],"functionName":{"name":"abi_encode_string","nativeSrc":"33055:17:97","nodeType":"YulIdentifier","src":"33055:17:97"},"nativeSrc":"33055:45:97","nodeType":"YulFunctionCall","src":"33055:45:97"},"variableNames":[{"name":"tail","nativeSrc":"33047:4:97","nodeType":"YulIdentifier","src":"33047:4:97"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33120:9:97","nodeType":"YulIdentifier","src":"33120:9:97"},{"kind":"number","nativeSrc":"33131:2:97","nodeType":"YulLiteral","src":"33131:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"33116:3:97","nodeType":"YulIdentifier","src":"33116:3:97"},"nativeSrc":"33116:18:97","nodeType":"YulFunctionCall","src":"33116:18:97"},{"arguments":[{"name":"value1","nativeSrc":"33140:6:97","nodeType":"YulIdentifier","src":"33140:6:97"},{"kind":"number","nativeSrc":"33148:42:97","nodeType":"YulLiteral","src":"33148:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"33136:3:97","nodeType":"YulIdentifier","src":"33136:3:97"},"nativeSrc":"33136:55:97","nodeType":"YulFunctionCall","src":"33136:55:97"}],"functionName":{"name":"mstore","nativeSrc":"33109:6:97","nodeType":"YulIdentifier","src":"33109:6:97"},"nativeSrc":"33109:83:97","nodeType":"YulFunctionCall","src":"33109:83:97"},"nativeSrc":"33109:83:97","nodeType":"YulExpressionStatement","src":"33109:83:97"}]},"name":"abi_encode_tuple_t_string_memory_ptr_t_address__to_t_string_memory_ptr_t_address__fromStack_reversed","nativeSrc":"32858:340:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"32968:9:97","nodeType":"YulTypedName","src":"32968:9:97","type":""},{"name":"value1","nativeSrc":"32979:6:97","nodeType":"YulTypedName","src":"32979:6:97","type":""},{"name":"value0","nativeSrc":"32987:6:97","nodeType":"YulTypedName","src":"32987:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"32998:4:97","nodeType":"YulTypedName","src":"32998:4:97","type":""}],"src":"32858:340:97"},{"body":{"nativeSrc":"33284:103:97","nodeType":"YulBlock","src":"33284:103:97","statements":[{"body":{"nativeSrc":"33330:16:97","nodeType":"YulBlock","src":"33330:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"33339:1:97","nodeType":"YulLiteral","src":"33339:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"33342:1:97","nodeType":"YulLiteral","src":"33342:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"33332:6:97","nodeType":"YulIdentifier","src":"33332:6:97"},"nativeSrc":"33332:12:97","nodeType":"YulFunctionCall","src":"33332:12:97"},"nativeSrc":"33332:12:97","nodeType":"YulExpressionStatement","src":"33332:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"33305:7:97","nodeType":"YulIdentifier","src":"33305:7:97"},{"name":"headStart","nativeSrc":"33314:9:97","nodeType":"YulIdentifier","src":"33314:9:97"}],"functionName":{"name":"sub","nativeSrc":"33301:3:97","nodeType":"YulIdentifier","src":"33301:3:97"},"nativeSrc":"33301:23:97","nodeType":"YulFunctionCall","src":"33301:23:97"},{"kind":"number","nativeSrc":"33326:2:97","nodeType":"YulLiteral","src":"33326:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"33297:3:97","nodeType":"YulIdentifier","src":"33297:3:97"},"nativeSrc":"33297:32:97","nodeType":"YulFunctionCall","src":"33297:32:97"},"nativeSrc":"33294:52:97","nodeType":"YulIf","src":"33294:52:97"},{"nativeSrc":"33355:26:97","nodeType":"YulAssignment","src":"33355:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"33371:9:97","nodeType":"YulIdentifier","src":"33371:9:97"}],"functionName":{"name":"mload","nativeSrc":"33365:5:97","nodeType":"YulIdentifier","src":"33365:5:97"},"nativeSrc":"33365:16:97","nodeType":"YulFunctionCall","src":"33365:16:97"},"variableNames":[{"name":"value0","nativeSrc":"33355:6:97","nodeType":"YulIdentifier","src":"33355:6:97"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"33203:184:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"33250:9:97","nodeType":"YulTypedName","src":"33250:9:97","type":""},{"name":"dataEnd","nativeSrc":"33261:7:97","nodeType":"YulTypedName","src":"33261:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"33273:6:97","nodeType":"YulTypedName","src":"33273:6:97","type":""}],"src":"33203:184:97"},{"body":{"nativeSrc":"33541:142:97","nodeType":"YulBlock","src":"33541:142:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"33558:9:97","nodeType":"YulIdentifier","src":"33558:9:97"},{"name":"value0","nativeSrc":"33569:6:97","nodeType":"YulIdentifier","src":"33569:6:97"}],"functionName":{"name":"mstore","nativeSrc":"33551:6:97","nodeType":"YulIdentifier","src":"33551:6:97"},"nativeSrc":"33551:25:97","nodeType":"YulFunctionCall","src":"33551:25:97"},"nativeSrc":"33551:25:97","nodeType":"YulExpressionStatement","src":"33551:25:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33596:9:97","nodeType":"YulIdentifier","src":"33596:9:97"},{"kind":"number","nativeSrc":"33607:2:97","nodeType":"YulLiteral","src":"33607:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"33592:3:97","nodeType":"YulIdentifier","src":"33592:3:97"},"nativeSrc":"33592:18:97","nodeType":"YulFunctionCall","src":"33592:18:97"},{"kind":"number","nativeSrc":"33612:2:97","nodeType":"YulLiteral","src":"33612:2:97","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"33585:6:97","nodeType":"YulIdentifier","src":"33585:6:97"},"nativeSrc":"33585:30:97","nodeType":"YulFunctionCall","src":"33585:30:97"},"nativeSrc":"33585:30:97","nodeType":"YulExpressionStatement","src":"33585:30:97"},{"nativeSrc":"33624:53:97","nodeType":"YulAssignment","src":"33624:53:97","value":{"arguments":[{"name":"value1","nativeSrc":"33650:6:97","nodeType":"YulIdentifier","src":"33650:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"33662:9:97","nodeType":"YulIdentifier","src":"33662:9:97"},{"kind":"number","nativeSrc":"33673:2:97","nodeType":"YulLiteral","src":"33673:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"33658:3:97","nodeType":"YulIdentifier","src":"33658:3:97"},"nativeSrc":"33658:18:97","nodeType":"YulFunctionCall","src":"33658:18:97"}],"functionName":{"name":"abi_encode_string","nativeSrc":"33632:17:97","nodeType":"YulIdentifier","src":"33632:17:97"},"nativeSrc":"33632:45:97","nodeType":"YulFunctionCall","src":"33632:45:97"},"variableNames":[{"name":"tail","nativeSrc":"33624:4:97","nodeType":"YulIdentifier","src":"33624:4:97"}]}]},"name":"abi_encode_tuple_t_uint256_t_string_memory_ptr__to_t_uint256_t_string_memory_ptr__fromStack_reversed","nativeSrc":"33392:291:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"33502:9:97","nodeType":"YulTypedName","src":"33502:9:97","type":""},{"name":"value1","nativeSrc":"33513:6:97","nodeType":"YulTypedName","src":"33513:6:97","type":""},{"name":"value0","nativeSrc":"33521:6:97","nodeType":"YulTypedName","src":"33521:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"33532:4:97","nodeType":"YulTypedName","src":"33532:4:97","type":""}],"src":"33392:291:97"},{"body":{"nativeSrc":"34051:456:97","nodeType":"YulBlock","src":"34051:456:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"34068:9:97","nodeType":"YulIdentifier","src":"34068:9:97"},{"arguments":[{"name":"value0","nativeSrc":"34083:6:97","nodeType":"YulIdentifier","src":"34083:6:97"},{"kind":"number","nativeSrc":"34091:10:97","nodeType":"YulLiteral","src":"34091:10:97","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nativeSrc":"34079:3:97","nodeType":"YulIdentifier","src":"34079:3:97"},"nativeSrc":"34079:23:97","nodeType":"YulFunctionCall","src":"34079:23:97"}],"functionName":{"name":"mstore","nativeSrc":"34061:6:97","nodeType":"YulIdentifier","src":"34061:6:97"},"nativeSrc":"34061:42:97","nodeType":"YulFunctionCall","src":"34061:42:97"},"nativeSrc":"34061:42:97","nodeType":"YulExpressionStatement","src":"34061:42:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34123:9:97","nodeType":"YulIdentifier","src":"34123:9:97"},{"kind":"number","nativeSrc":"34134:2:97","nodeType":"YulLiteral","src":"34134:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"34119:3:97","nodeType":"YulIdentifier","src":"34119:3:97"},"nativeSrc":"34119:18:97","nodeType":"YulFunctionCall","src":"34119:18:97"},{"kind":"number","nativeSrc":"34139:3:97","nodeType":"YulLiteral","src":"34139:3:97","type":"","value":"192"}],"functionName":{"name":"mstore","nativeSrc":"34112:6:97","nodeType":"YulIdentifier","src":"34112:6:97"},"nativeSrc":"34112:31:97","nodeType":"YulFunctionCall","src":"34112:31:97"},"nativeSrc":"34112:31:97","nodeType":"YulExpressionStatement","src":"34112:31:97"},{"nativeSrc":"34152:80:97","nodeType":"YulVariableDeclaration","src":"34152:80:97","value":{"arguments":[{"name":"value1","nativeSrc":"34204:6:97","nodeType":"YulIdentifier","src":"34204:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"34216:9:97","nodeType":"YulIdentifier","src":"34216:9:97"},{"kind":"number","nativeSrc":"34227:3:97","nodeType":"YulLiteral","src":"34227:3:97","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"34212:3:97","nodeType":"YulIdentifier","src":"34212:3:97"},"nativeSrc":"34212:19:97","nodeType":"YulFunctionCall","src":"34212:19:97"}],"functionName":{"name":"abi_encode_struct_RiskParameterUpdate","nativeSrc":"34166:37:97","nodeType":"YulIdentifier","src":"34166:37:97"},"nativeSrc":"34166:66:97","nodeType":"YulFunctionCall","src":"34166:66:97"},"variables":[{"name":"tail_1","nativeSrc":"34156:6:97","nodeType":"YulTypedName","src":"34156:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34252:9:97","nodeType":"YulIdentifier","src":"34252:9:97"},{"kind":"number","nativeSrc":"34263:2:97","nodeType":"YulLiteral","src":"34263:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"34248:3:97","nodeType":"YulIdentifier","src":"34248:3:97"},"nativeSrc":"34248:18:97","nodeType":"YulFunctionCall","src":"34248:18:97"},{"arguments":[{"name":"tail_1","nativeSrc":"34272:6:97","nodeType":"YulIdentifier","src":"34272:6:97"},{"name":"headStart","nativeSrc":"34280:9:97","nodeType":"YulIdentifier","src":"34280:9:97"}],"functionName":{"name":"sub","nativeSrc":"34268:3:97","nodeType":"YulIdentifier","src":"34268:3:97"},"nativeSrc":"34268:22:97","nodeType":"YulFunctionCall","src":"34268:22:97"}],"functionName":{"name":"mstore","nativeSrc":"34241:6:97","nodeType":"YulIdentifier","src":"34241:6:97"},"nativeSrc":"34241:50:97","nodeType":"YulFunctionCall","src":"34241:50:97"},"nativeSrc":"34241:50:97","nodeType":"YulExpressionStatement","src":"34241:50:97"},{"nativeSrc":"34300:41:97","nodeType":"YulAssignment","src":"34300:41:97","value":{"arguments":[{"name":"value2","nativeSrc":"34326:6:97","nodeType":"YulIdentifier","src":"34326:6:97"},{"name":"tail_1","nativeSrc":"34334:6:97","nodeType":"YulIdentifier","src":"34334:6:97"}],"functionName":{"name":"abi_encode_string","nativeSrc":"34308:17:97","nodeType":"YulIdentifier","src":"34308:17:97"},"nativeSrc":"34308:33:97","nodeType":"YulFunctionCall","src":"34308:33:97"},"variableNames":[{"name":"tail","nativeSrc":"34300:4:97","nodeType":"YulIdentifier","src":"34300:4:97"}]},{"expression":{"arguments":[{"name":"value3","nativeSrc":"34381:6:97","nodeType":"YulIdentifier","src":"34381:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"34393:9:97","nodeType":"YulIdentifier","src":"34393:9:97"},{"kind":"number","nativeSrc":"34404:2:97","nodeType":"YulLiteral","src":"34404:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"34389:3:97","nodeType":"YulIdentifier","src":"34389:3:97"},"nativeSrc":"34389:18:97","nodeType":"YulFunctionCall","src":"34389:18:97"}],"functionName":{"name":"abi_encode_struct_MessagingFee","nativeSrc":"34350:30:97","nodeType":"YulIdentifier","src":"34350:30:97"},"nativeSrc":"34350:58:97","nodeType":"YulFunctionCall","src":"34350:58:97"},"nativeSrc":"34350:58:97","nodeType":"YulExpressionStatement","src":"34350:58:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34428:9:97","nodeType":"YulIdentifier","src":"34428:9:97"},{"kind":"number","nativeSrc":"34439:3:97","nodeType":"YulLiteral","src":"34439:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"34424:3:97","nodeType":"YulIdentifier","src":"34424:3:97"},"nativeSrc":"34424:19:97","nodeType":"YulFunctionCall","src":"34424:19:97"},{"arguments":[{"name":"value4","nativeSrc":"34449:6:97","nodeType":"YulIdentifier","src":"34449:6:97"},{"kind":"number","nativeSrc":"34457:42:97","nodeType":"YulLiteral","src":"34457:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"34445:3:97","nodeType":"YulIdentifier","src":"34445:3:97"},"nativeSrc":"34445:55:97","nodeType":"YulFunctionCall","src":"34445:55:97"}],"functionName":{"name":"mstore","nativeSrc":"34417:6:97","nodeType":"YulIdentifier","src":"34417:6:97"},"nativeSrc":"34417:84:97","nodeType":"YulFunctionCall","src":"34417:84:97"},"nativeSrc":"34417:84:97","nodeType":"YulExpressionStatement","src":"34417:84:97"}]},"name":"abi_encode_tuple_t_uint32_t_struct$_RiskParameterUpdate_$16568_memory_ptr_t_bytes_memory_ptr_t_struct$_MessagingFee_$879_memory_ptr_t_address__to_t_uint32_t_struct$_RiskParameterUpdate_$16568_memory_ptr_t_bytes_memory_ptr_t_struct$_MessagingFee_$879_memory_ptr_t_address__fromStack_reversed","nativeSrc":"33688:819:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"33988:9:97","nodeType":"YulTypedName","src":"33988:9:97","type":""},{"name":"value4","nativeSrc":"33999:6:97","nodeType":"YulTypedName","src":"33999:6:97","type":""},{"name":"value3","nativeSrc":"34007:6:97","nodeType":"YulTypedName","src":"34007:6:97","type":""},{"name":"value2","nativeSrc":"34015:6:97","nodeType":"YulTypedName","src":"34015:6:97","type":""},{"name":"value1","nativeSrc":"34023:6:97","nodeType":"YulTypedName","src":"34023:6:97","type":""},{"name":"value0","nativeSrc":"34031:6:97","nodeType":"YulTypedName","src":"34031:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"34042:4:97","nodeType":"YulTypedName","src":"34042:4:97","type":""}],"src":"33688:819:97"},{"body":{"nativeSrc":"34593:170:97","nodeType":"YulBlock","src":"34593:170:97","statements":[{"body":{"nativeSrc":"34639:16:97","nodeType":"YulBlock","src":"34639:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"34648:1:97","nodeType":"YulLiteral","src":"34648:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"34651:1:97","nodeType":"YulLiteral","src":"34651:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"34641:6:97","nodeType":"YulIdentifier","src":"34641:6:97"},"nativeSrc":"34641:12:97","nodeType":"YulFunctionCall","src":"34641:12:97"},"nativeSrc":"34641:12:97","nodeType":"YulExpressionStatement","src":"34641:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"34614:7:97","nodeType":"YulIdentifier","src":"34614:7:97"},{"name":"headStart","nativeSrc":"34623:9:97","nodeType":"YulIdentifier","src":"34623:9:97"}],"functionName":{"name":"sub","nativeSrc":"34610:3:97","nodeType":"YulIdentifier","src":"34610:3:97"},"nativeSrc":"34610:23:97","nodeType":"YulFunctionCall","src":"34610:23:97"},{"kind":"number","nativeSrc":"34635:2:97","nodeType":"YulLiteral","src":"34635:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"34606:3:97","nodeType":"YulIdentifier","src":"34606:3:97"},"nativeSrc":"34606:32:97","nodeType":"YulFunctionCall","src":"34606:32:97"},"nativeSrc":"34603:52:97","nodeType":"YulIf","src":"34603:52:97"},{"nativeSrc":"34664:29:97","nodeType":"YulVariableDeclaration","src":"34664:29:97","value":{"arguments":[{"name":"headStart","nativeSrc":"34683:9:97","nodeType":"YulIdentifier","src":"34683:9:97"}],"functionName":{"name":"mload","nativeSrc":"34677:5:97","nodeType":"YulIdentifier","src":"34677:5:97"},"nativeSrc":"34677:16:97","nodeType":"YulFunctionCall","src":"34677:16:97"},"variables":[{"name":"value","nativeSrc":"34668:5:97","nodeType":"YulTypedName","src":"34668:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"34727:5:97","nodeType":"YulIdentifier","src":"34727:5:97"}],"functionName":{"name":"validator_revert_address","nativeSrc":"34702:24:97","nodeType":"YulIdentifier","src":"34702:24:97"},"nativeSrc":"34702:31:97","nodeType":"YulFunctionCall","src":"34702:31:97"},"nativeSrc":"34702:31:97","nodeType":"YulExpressionStatement","src":"34702:31:97"},{"nativeSrc":"34742:15:97","nodeType":"YulAssignment","src":"34742:15:97","value":{"name":"value","nativeSrc":"34752:5:97","nodeType":"YulIdentifier","src":"34752:5:97"},"variableNames":[{"name":"value0","nativeSrc":"34742:6:97","nodeType":"YulIdentifier","src":"34742:6:97"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nativeSrc":"34512:251:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"34559:9:97","nodeType":"YulTypedName","src":"34559:9:97","type":""},{"name":"dataEnd","nativeSrc":"34570:7:97","nodeType":"YulTypedName","src":"34570:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"34582:6:97","nodeType":"YulTypedName","src":"34582:6:97","type":""}],"src":"34512:251:97"},{"body":{"nativeSrc":"34885:145:97","nodeType":"YulBlock","src":"34885:145:97","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"34902:3:97","nodeType":"YulIdentifier","src":"34902:3:97"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"34915:3:97","nodeType":"YulLiteral","src":"34915:3:97","type":"","value":"240"},{"name":"value0","nativeSrc":"34920:6:97","nodeType":"YulIdentifier","src":"34920:6:97"}],"functionName":{"name":"shl","nativeSrc":"34911:3:97","nodeType":"YulIdentifier","src":"34911:3:97"},"nativeSrc":"34911:16:97","nodeType":"YulFunctionCall","src":"34911:16:97"},{"kind":"number","nativeSrc":"34929:66:97","nodeType":"YulLiteral","src":"34929:66:97","type":"","value":"0xffff000000000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"34907:3:97","nodeType":"YulIdentifier","src":"34907:3:97"},"nativeSrc":"34907:89:97","nodeType":"YulFunctionCall","src":"34907:89:97"}],"functionName":{"name":"mstore","nativeSrc":"34895:6:97","nodeType":"YulIdentifier","src":"34895:6:97"},"nativeSrc":"34895:102:97","nodeType":"YulFunctionCall","src":"34895:102:97"},"nativeSrc":"34895:102:97","nodeType":"YulExpressionStatement","src":"34895:102:97"},{"nativeSrc":"35006:18:97","nodeType":"YulAssignment","src":"35006:18:97","value":{"arguments":[{"name":"pos","nativeSrc":"35017:3:97","nodeType":"YulIdentifier","src":"35017:3:97"},{"kind":"number","nativeSrc":"35022:1:97","nodeType":"YulLiteral","src":"35022:1:97","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"35013:3:97","nodeType":"YulIdentifier","src":"35013:3:97"},"nativeSrc":"35013:11:97","nodeType":"YulFunctionCall","src":"35013:11:97"},"variableNames":[{"name":"end","nativeSrc":"35006:3:97","nodeType":"YulIdentifier","src":"35006:3:97"}]}]},"name":"abi_encode_tuple_packed_t_uint16__to_t_uint16__nonPadded_inplace_fromStack_reversed","nativeSrc":"34768:262:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"34861:3:97","nodeType":"YulTypedName","src":"34861:3:97","type":""},{"name":"value0","nativeSrc":"34866:6:97","nodeType":"YulTypedName","src":"34866:6:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"34877:3:97","nodeType":"YulTypedName","src":"34877:3:97","type":""}],"src":"34768:262:97"},{"body":{"nativeSrc":"35134:89:97","nodeType":"YulBlock","src":"35134:89:97","statements":[{"nativeSrc":"35144:26:97","nodeType":"YulAssignment","src":"35144:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"35156:9:97","nodeType":"YulIdentifier","src":"35156:9:97"},{"kind":"number","nativeSrc":"35167:2:97","nodeType":"YulLiteral","src":"35167:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"35152:3:97","nodeType":"YulIdentifier","src":"35152:3:97"},"nativeSrc":"35152:18:97","nodeType":"YulFunctionCall","src":"35152:18:97"},"variableNames":[{"name":"tail","nativeSrc":"35144:4:97","nodeType":"YulIdentifier","src":"35144:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"35186:9:97","nodeType":"YulIdentifier","src":"35186:9:97"},{"arguments":[{"name":"value0","nativeSrc":"35201:6:97","nodeType":"YulIdentifier","src":"35201:6:97"},{"kind":"number","nativeSrc":"35209:6:97","nodeType":"YulLiteral","src":"35209:6:97","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"35197:3:97","nodeType":"YulIdentifier","src":"35197:3:97"},"nativeSrc":"35197:19:97","nodeType":"YulFunctionCall","src":"35197:19:97"}],"functionName":{"name":"mstore","nativeSrc":"35179:6:97","nodeType":"YulIdentifier","src":"35179:6:97"},"nativeSrc":"35179:38:97","nodeType":"YulFunctionCall","src":"35179:38:97"},"nativeSrc":"35179:38:97","nodeType":"YulExpressionStatement","src":"35179:38:97"}]},"name":"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed","nativeSrc":"35035:188:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"35103:9:97","nodeType":"YulTypedName","src":"35103:9:97","type":""},{"name":"value0","nativeSrc":"35114:6:97","nodeType":"YulTypedName","src":"35114:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"35125:4:97","nodeType":"YulTypedName","src":"35125:4:97","type":""}],"src":"35035:188:97"},{"body":{"nativeSrc":"35385:241:97","nodeType":"YulBlock","src":"35385:241:97","statements":[{"nativeSrc":"35395:26:97","nodeType":"YulAssignment","src":"35395:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"35407:9:97","nodeType":"YulIdentifier","src":"35407:9:97"},{"kind":"number","nativeSrc":"35418:2:97","nodeType":"YulLiteral","src":"35418:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"35403:3:97","nodeType":"YulIdentifier","src":"35403:3:97"},"nativeSrc":"35403:18:97","nodeType":"YulFunctionCall","src":"35403:18:97"},"variableNames":[{"name":"tail","nativeSrc":"35395:4:97","nodeType":"YulIdentifier","src":"35395:4:97"}]},{"nativeSrc":"35430:52:97","nodeType":"YulVariableDeclaration","src":"35430:52:97","value":{"kind":"number","nativeSrc":"35440:42:97","nodeType":"YulLiteral","src":"35440:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"35434:2:97","nodeType":"YulTypedName","src":"35434:2:97","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"35498:9:97","nodeType":"YulIdentifier","src":"35498:9:97"},{"arguments":[{"name":"value0","nativeSrc":"35513:6:97","nodeType":"YulIdentifier","src":"35513:6:97"},{"name":"_1","nativeSrc":"35521:2:97","nodeType":"YulIdentifier","src":"35521:2:97"}],"functionName":{"name":"and","nativeSrc":"35509:3:97","nodeType":"YulIdentifier","src":"35509:3:97"},"nativeSrc":"35509:15:97","nodeType":"YulFunctionCall","src":"35509:15:97"}],"functionName":{"name":"mstore","nativeSrc":"35491:6:97","nodeType":"YulIdentifier","src":"35491:6:97"},"nativeSrc":"35491:34:97","nodeType":"YulFunctionCall","src":"35491:34:97"},"nativeSrc":"35491:34:97","nodeType":"YulExpressionStatement","src":"35491:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35545:9:97","nodeType":"YulIdentifier","src":"35545:9:97"},{"kind":"number","nativeSrc":"35556:2:97","nodeType":"YulLiteral","src":"35556:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"35541:3:97","nodeType":"YulIdentifier","src":"35541:3:97"},"nativeSrc":"35541:18:97","nodeType":"YulFunctionCall","src":"35541:18:97"},{"arguments":[{"name":"value1","nativeSrc":"35565:6:97","nodeType":"YulIdentifier","src":"35565:6:97"},{"name":"_1","nativeSrc":"35573:2:97","nodeType":"YulIdentifier","src":"35573:2:97"}],"functionName":{"name":"and","nativeSrc":"35561:3:97","nodeType":"YulIdentifier","src":"35561:3:97"},"nativeSrc":"35561:15:97","nodeType":"YulFunctionCall","src":"35561:15:97"}],"functionName":{"name":"mstore","nativeSrc":"35534:6:97","nodeType":"YulIdentifier","src":"35534:6:97"},"nativeSrc":"35534:43:97","nodeType":"YulFunctionCall","src":"35534:43:97"},"nativeSrc":"35534:43:97","nodeType":"YulExpressionStatement","src":"35534:43:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35597:9:97","nodeType":"YulIdentifier","src":"35597:9:97"},{"kind":"number","nativeSrc":"35608:2:97","nodeType":"YulLiteral","src":"35608:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"35593:3:97","nodeType":"YulIdentifier","src":"35593:3:97"},"nativeSrc":"35593:18:97","nodeType":"YulFunctionCall","src":"35593:18:97"},{"name":"value2","nativeSrc":"35613:6:97","nodeType":"YulIdentifier","src":"35613:6:97"}],"functionName":{"name":"mstore","nativeSrc":"35586:6:97","nodeType":"YulIdentifier","src":"35586:6:97"},"nativeSrc":"35586:34:97","nodeType":"YulFunctionCall","src":"35586:34:97"},"nativeSrc":"35586:34:97","nodeType":"YulExpressionStatement","src":"35586:34:97"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed","nativeSrc":"35228:398:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"35338:9:97","nodeType":"YulTypedName","src":"35338:9:97","type":""},{"name":"value2","nativeSrc":"35349:6:97","nodeType":"YulTypedName","src":"35349:6:97","type":""},{"name":"value1","nativeSrc":"35357:6:97","nodeType":"YulTypedName","src":"35357:6:97","type":""},{"name":"value0","nativeSrc":"35365:6:97","nodeType":"YulTypedName","src":"35365:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"35376:4:97","nodeType":"YulTypedName","src":"35376:4:97","type":""}],"src":"35228:398:97"},{"body":{"nativeSrc":"35805:170:97","nodeType":"YulBlock","src":"35805:170:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"35822:9:97","nodeType":"YulIdentifier","src":"35822:9:97"},{"kind":"number","nativeSrc":"35833:2:97","nodeType":"YulLiteral","src":"35833:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"35815:6:97","nodeType":"YulIdentifier","src":"35815:6:97"},"nativeSrc":"35815:21:97","nodeType":"YulFunctionCall","src":"35815:21:97"},"nativeSrc":"35815:21:97","nodeType":"YulExpressionStatement","src":"35815:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35856:9:97","nodeType":"YulIdentifier","src":"35856:9:97"},{"kind":"number","nativeSrc":"35867:2:97","nodeType":"YulLiteral","src":"35867:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"35852:3:97","nodeType":"YulIdentifier","src":"35852:3:97"},"nativeSrc":"35852:18:97","nodeType":"YulFunctionCall","src":"35852:18:97"},{"kind":"number","nativeSrc":"35872:2:97","nodeType":"YulLiteral","src":"35872:2:97","type":"","value":"20"}],"functionName":{"name":"mstore","nativeSrc":"35845:6:97","nodeType":"YulIdentifier","src":"35845:6:97"},"nativeSrc":"35845:30:97","nodeType":"YulFunctionCall","src":"35845:30:97"},"nativeSrc":"35845:30:97","nodeType":"YulExpressionStatement","src":"35845:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35895:9:97","nodeType":"YulIdentifier","src":"35895:9:97"},{"kind":"number","nativeSrc":"35906:2:97","nodeType":"YulLiteral","src":"35906:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"35891:3:97","nodeType":"YulIdentifier","src":"35891:3:97"},"nativeSrc":"35891:18:97","nodeType":"YulFunctionCall","src":"35891:18:97"},{"hexValue":"746f55696e7431365f6f75744f66426f756e6473","kind":"string","nativeSrc":"35911:22:97","nodeType":"YulLiteral","src":"35911:22:97","type":"","value":"toUint16_outOfBounds"}],"functionName":{"name":"mstore","nativeSrc":"35884:6:97","nodeType":"YulIdentifier","src":"35884:6:97"},"nativeSrc":"35884:50:97","nodeType":"YulFunctionCall","src":"35884:50:97"},"nativeSrc":"35884:50:97","nodeType":"YulExpressionStatement","src":"35884:50:97"},{"nativeSrc":"35943:26:97","nodeType":"YulAssignment","src":"35943:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"35955:9:97","nodeType":"YulIdentifier","src":"35955:9:97"},{"kind":"number","nativeSrc":"35966:2:97","nodeType":"YulLiteral","src":"35966:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"35951:3:97","nodeType":"YulIdentifier","src":"35951:3:97"},"nativeSrc":"35951:18:97","nodeType":"YulFunctionCall","src":"35951:18:97"},"variableNames":[{"name":"tail","nativeSrc":"35943:4:97","nodeType":"YulIdentifier","src":"35943:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_414233483a71244a4f2700455a9733e71511b5279e381bdd2af6d44b1b09ecab__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"35631:344:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"35782:9:97","nodeType":"YulTypedName","src":"35782:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"35796:4:97","nodeType":"YulTypedName","src":"35796:4:97","type":""}],"src":"35631:344:97"},{"body":{"nativeSrc":"36127:223:97","nodeType":"YulBlock","src":"36127:223:97","statements":[{"nativeSrc":"36137:76:97","nodeType":"YulVariableDeclaration","src":"36137:76:97","value":{"kind":"number","nativeSrc":"36147:66:97","nodeType":"YulLiteral","src":"36147:66:97","type":"","value":"0xffffffffffffffffffffffffffffffff00000000000000000000000000000000"},"variables":[{"name":"_1","nativeSrc":"36141:2:97","nodeType":"YulTypedName","src":"36141:2:97","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"36229:3:97","nodeType":"YulIdentifier","src":"36229:3:97"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"36242:3:97","nodeType":"YulLiteral","src":"36242:3:97","type":"","value":"128"},{"name":"value0","nativeSrc":"36247:6:97","nodeType":"YulIdentifier","src":"36247:6:97"}],"functionName":{"name":"shl","nativeSrc":"36238:3:97","nodeType":"YulIdentifier","src":"36238:3:97"},"nativeSrc":"36238:16:97","nodeType":"YulFunctionCall","src":"36238:16:97"},{"name":"_1","nativeSrc":"36256:2:97","nodeType":"YulIdentifier","src":"36256:2:97"}],"functionName":{"name":"and","nativeSrc":"36234:3:97","nodeType":"YulIdentifier","src":"36234:3:97"},"nativeSrc":"36234:25:97","nodeType":"YulFunctionCall","src":"36234:25:97"}],"functionName":{"name":"mstore","nativeSrc":"36222:6:97","nodeType":"YulIdentifier","src":"36222:6:97"},"nativeSrc":"36222:38:97","nodeType":"YulFunctionCall","src":"36222:38:97"},"nativeSrc":"36222:38:97","nodeType":"YulExpressionStatement","src":"36222:38:97"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"36280:3:97","nodeType":"YulIdentifier","src":"36280:3:97"},{"kind":"number","nativeSrc":"36285:2:97","nodeType":"YulLiteral","src":"36285:2:97","type":"","value":"16"}],"functionName":{"name":"add","nativeSrc":"36276:3:97","nodeType":"YulIdentifier","src":"36276:3:97"},"nativeSrc":"36276:12:97","nodeType":"YulFunctionCall","src":"36276:12:97"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"36298:3:97","nodeType":"YulLiteral","src":"36298:3:97","type":"","value":"128"},{"name":"value1","nativeSrc":"36303:6:97","nodeType":"YulIdentifier","src":"36303:6:97"}],"functionName":{"name":"shl","nativeSrc":"36294:3:97","nodeType":"YulIdentifier","src":"36294:3:97"},"nativeSrc":"36294:16:97","nodeType":"YulFunctionCall","src":"36294:16:97"},{"name":"_1","nativeSrc":"36312:2:97","nodeType":"YulIdentifier","src":"36312:2:97"}],"functionName":{"name":"and","nativeSrc":"36290:3:97","nodeType":"YulIdentifier","src":"36290:3:97"},"nativeSrc":"36290:25:97","nodeType":"YulFunctionCall","src":"36290:25:97"}],"functionName":{"name":"mstore","nativeSrc":"36269:6:97","nodeType":"YulIdentifier","src":"36269:6:97"},"nativeSrc":"36269:47:97","nodeType":"YulFunctionCall","src":"36269:47:97"},"nativeSrc":"36269:47:97","nodeType":"YulExpressionStatement","src":"36269:47:97"},{"nativeSrc":"36325:19:97","nodeType":"YulAssignment","src":"36325:19:97","value":{"arguments":[{"name":"pos","nativeSrc":"36336:3:97","nodeType":"YulIdentifier","src":"36336:3:97"},{"kind":"number","nativeSrc":"36341:2:97","nodeType":"YulLiteral","src":"36341:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"36332:3:97","nodeType":"YulIdentifier","src":"36332:3:97"},"nativeSrc":"36332:12:97","nodeType":"YulFunctionCall","src":"36332:12:97"},"variableNames":[{"name":"end","nativeSrc":"36325:3:97","nodeType":"YulIdentifier","src":"36325:3:97"}]}]},"name":"abi_encode_tuple_packed_t_uint128_t_uint128__to_t_uint128_t_uint128__nonPadded_inplace_fromStack_reversed","nativeSrc":"35980:370:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"36095:3:97","nodeType":"YulTypedName","src":"36095:3:97","type":""},{"name":"value1","nativeSrc":"36100:6:97","nodeType":"YulTypedName","src":"36100:6:97","type":""},{"name":"value0","nativeSrc":"36108:6:97","nodeType":"YulTypedName","src":"36108:6:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"36119:3:97","nodeType":"YulTypedName","src":"36119:3:97","type":""}],"src":"35980:370:97"},{"body":{"nativeSrc":"36474:146:97","nodeType":"YulBlock","src":"36474:146:97","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"36491:3:97","nodeType":"YulIdentifier","src":"36491:3:97"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"36504:3:97","nodeType":"YulLiteral","src":"36504:3:97","type":"","value":"128"},{"name":"value0","nativeSrc":"36509:6:97","nodeType":"YulIdentifier","src":"36509:6:97"}],"functionName":{"name":"shl","nativeSrc":"36500:3:97","nodeType":"YulIdentifier","src":"36500:3:97"},"nativeSrc":"36500:16:97","nodeType":"YulFunctionCall","src":"36500:16:97"},{"kind":"number","nativeSrc":"36518:66:97","nodeType":"YulLiteral","src":"36518:66:97","type":"","value":"0xffffffffffffffffffffffffffffffff00000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"36496:3:97","nodeType":"YulIdentifier","src":"36496:3:97"},"nativeSrc":"36496:89:97","nodeType":"YulFunctionCall","src":"36496:89:97"}],"functionName":{"name":"mstore","nativeSrc":"36484:6:97","nodeType":"YulIdentifier","src":"36484:6:97"},"nativeSrc":"36484:102:97","nodeType":"YulFunctionCall","src":"36484:102:97"},"nativeSrc":"36484:102:97","nodeType":"YulExpressionStatement","src":"36484:102:97"},{"nativeSrc":"36595:19:97","nodeType":"YulAssignment","src":"36595:19:97","value":{"arguments":[{"name":"pos","nativeSrc":"36606:3:97","nodeType":"YulIdentifier","src":"36606:3:97"},{"kind":"number","nativeSrc":"36611:2:97","nodeType":"YulLiteral","src":"36611:2:97","type":"","value":"16"}],"functionName":{"name":"add","nativeSrc":"36602:3:97","nodeType":"YulIdentifier","src":"36602:3:97"},"nativeSrc":"36602:12:97","nodeType":"YulFunctionCall","src":"36602:12:97"},"variableNames":[{"name":"end","nativeSrc":"36595:3:97","nodeType":"YulIdentifier","src":"36595:3:97"}]}]},"name":"abi_encode_tuple_packed_t_uint128__to_t_uint128__nonPadded_inplace_fromStack_reversed","nativeSrc":"36355:265:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"36450:3:97","nodeType":"YulTypedName","src":"36450:3:97","type":""},{"name":"value0","nativeSrc":"36455:6:97","nodeType":"YulTypedName","src":"36455:6:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"36466:3:97","nodeType":"YulTypedName","src":"36466:3:97","type":""}],"src":"36355:265:97"},{"body":{"nativeSrc":"36672:121:97","nodeType":"YulBlock","src":"36672:121:97","statements":[{"nativeSrc":"36682:16:97","nodeType":"YulVariableDeclaration","src":"36682:16:97","value":{"kind":"number","nativeSrc":"36692:6:97","nodeType":"YulLiteral","src":"36692:6:97","type":"","value":"0xffff"},"variables":[{"name":"_1","nativeSrc":"36686:2:97","nodeType":"YulTypedName","src":"36686:2:97","type":""}]},{"nativeSrc":"36707:34:97","nodeType":"YulAssignment","src":"36707:34:97","value":{"arguments":[{"arguments":[{"name":"x","nativeSrc":"36722:1:97","nodeType":"YulIdentifier","src":"36722:1:97"},{"name":"_1","nativeSrc":"36725:2:97","nodeType":"YulIdentifier","src":"36725:2:97"}],"functionName":{"name":"and","nativeSrc":"36718:3:97","nodeType":"YulIdentifier","src":"36718:3:97"},"nativeSrc":"36718:10:97","nodeType":"YulFunctionCall","src":"36718:10:97"},{"arguments":[{"name":"y","nativeSrc":"36734:1:97","nodeType":"YulIdentifier","src":"36734:1:97"},{"name":"_1","nativeSrc":"36737:2:97","nodeType":"YulIdentifier","src":"36737:2:97"}],"functionName":{"name":"and","nativeSrc":"36730:3:97","nodeType":"YulIdentifier","src":"36730:3:97"},"nativeSrc":"36730:10:97","nodeType":"YulFunctionCall","src":"36730:10:97"}],"functionName":{"name":"add","nativeSrc":"36714:3:97","nodeType":"YulIdentifier","src":"36714:3:97"},"nativeSrc":"36714:27:97","nodeType":"YulFunctionCall","src":"36714:27:97"},"variableNames":[{"name":"sum","nativeSrc":"36707:3:97","nodeType":"YulIdentifier","src":"36707:3:97"}]},{"body":{"nativeSrc":"36765:22:97","nodeType":"YulBlock","src":"36765:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"36767:16:97","nodeType":"YulIdentifier","src":"36767:16:97"},"nativeSrc":"36767:18:97","nodeType":"YulFunctionCall","src":"36767:18:97"},"nativeSrc":"36767:18:97","nodeType":"YulExpressionStatement","src":"36767:18:97"}]},"condition":{"arguments":[{"name":"sum","nativeSrc":"36756:3:97","nodeType":"YulIdentifier","src":"36756:3:97"},{"name":"_1","nativeSrc":"36761:2:97","nodeType":"YulIdentifier","src":"36761:2:97"}],"functionName":{"name":"gt","nativeSrc":"36753:2:97","nodeType":"YulIdentifier","src":"36753:2:97"},"nativeSrc":"36753:11:97","nodeType":"YulFunctionCall","src":"36753:11:97"},"nativeSrc":"36750:37:97","nodeType":"YulIf","src":"36750:37:97"}]},"name":"checked_add_t_uint16","nativeSrc":"36625:168:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"36655:1:97","nodeType":"YulTypedName","src":"36655:1:97","type":""},{"name":"y","nativeSrc":"36658:1:97","nodeType":"YulTypedName","src":"36658:1:97","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"36664:3:97","nodeType":"YulTypedName","src":"36664:3:97","type":""}],"src":"36625:168:97"},{"body":{"nativeSrc":"37055:637:97","nodeType":"YulBlock","src":"37055:637:97","statements":[{"nativeSrc":"37065:27:97","nodeType":"YulVariableDeclaration","src":"37065:27:97","value":{"arguments":[{"name":"value0","nativeSrc":"37085:6:97","nodeType":"YulIdentifier","src":"37085:6:97"}],"functionName":{"name":"mload","nativeSrc":"37079:5:97","nodeType":"YulIdentifier","src":"37079:5:97"},"nativeSrc":"37079:13:97","nodeType":"YulFunctionCall","src":"37079:13:97"},"variables":[{"name":"length","nativeSrc":"37069:6:97","nodeType":"YulTypedName","src":"37069:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"37140:6:97","nodeType":"YulIdentifier","src":"37140:6:97"},{"kind":"number","nativeSrc":"37148:4:97","nodeType":"YulLiteral","src":"37148:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"37136:3:97","nodeType":"YulIdentifier","src":"37136:3:97"},"nativeSrc":"37136:17:97","nodeType":"YulFunctionCall","src":"37136:17:97"},{"name":"pos","nativeSrc":"37155:3:97","nodeType":"YulIdentifier","src":"37155:3:97"},{"name":"length","nativeSrc":"37160:6:97","nodeType":"YulIdentifier","src":"37160:6:97"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"37101:34:97","nodeType":"YulIdentifier","src":"37101:34:97"},"nativeSrc":"37101:66:97","nodeType":"YulFunctionCall","src":"37101:66:97"},"nativeSrc":"37101:66:97","nodeType":"YulExpressionStatement","src":"37101:66:97"},{"nativeSrc":"37176:29:97","nodeType":"YulVariableDeclaration","src":"37176:29:97","value":{"arguments":[{"name":"pos","nativeSrc":"37193:3:97","nodeType":"YulIdentifier","src":"37193:3:97"},{"name":"length","nativeSrc":"37198:6:97","nodeType":"YulIdentifier","src":"37198:6:97"}],"functionName":{"name":"add","nativeSrc":"37189:3:97","nodeType":"YulIdentifier","src":"37189:3:97"},"nativeSrc":"37189:16:97","nodeType":"YulFunctionCall","src":"37189:16:97"},"variables":[{"name":"end_1","nativeSrc":"37180:5:97","nodeType":"YulTypedName","src":"37180:5:97","type":""}]},{"nativeSrc":"37214:76:97","nodeType":"YulVariableDeclaration","src":"37214:76:97","value":{"kind":"number","nativeSrc":"37224:66:97","nodeType":"YulLiteral","src":"37224:66:97","type":"","value":"0xff00000000000000000000000000000000000000000000000000000000000000"},"variables":[{"name":"_1","nativeSrc":"37218:2:97","nodeType":"YulTypedName","src":"37218:2:97","type":""}]},{"expression":{"arguments":[{"name":"end_1","nativeSrc":"37306:5:97","nodeType":"YulIdentifier","src":"37306:5:97"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"37321:3:97","nodeType":"YulLiteral","src":"37321:3:97","type":"","value":"248"},{"name":"value1","nativeSrc":"37326:6:97","nodeType":"YulIdentifier","src":"37326:6:97"}],"functionName":{"name":"shl","nativeSrc":"37317:3:97","nodeType":"YulIdentifier","src":"37317:3:97"},"nativeSrc":"37317:16:97","nodeType":"YulFunctionCall","src":"37317:16:97"},{"name":"_1","nativeSrc":"37335:2:97","nodeType":"YulIdentifier","src":"37335:2:97"}],"functionName":{"name":"and","nativeSrc":"37313:3:97","nodeType":"YulIdentifier","src":"37313:3:97"},"nativeSrc":"37313:25:97","nodeType":"YulFunctionCall","src":"37313:25:97"}],"functionName":{"name":"mstore","nativeSrc":"37299:6:97","nodeType":"YulIdentifier","src":"37299:6:97"},"nativeSrc":"37299:40:97","nodeType":"YulFunctionCall","src":"37299:40:97"},"nativeSrc":"37299:40:97","nodeType":"YulExpressionStatement","src":"37299:40:97"},{"expression":{"arguments":[{"arguments":[{"name":"end_1","nativeSrc":"37359:5:97","nodeType":"YulIdentifier","src":"37359:5:97"},{"kind":"number","nativeSrc":"37366:1:97","nodeType":"YulLiteral","src":"37366:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"37355:3:97","nodeType":"YulIdentifier","src":"37355:3:97"},"nativeSrc":"37355:13:97","nodeType":"YulFunctionCall","src":"37355:13:97"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"37378:3:97","nodeType":"YulLiteral","src":"37378:3:97","type":"","value":"240"},{"name":"value2","nativeSrc":"37383:6:97","nodeType":"YulIdentifier","src":"37383:6:97"}],"functionName":{"name":"shl","nativeSrc":"37374:3:97","nodeType":"YulIdentifier","src":"37374:3:97"},"nativeSrc":"37374:16:97","nodeType":"YulFunctionCall","src":"37374:16:97"},{"kind":"number","nativeSrc":"37392:66:97","nodeType":"YulLiteral","src":"37392:66:97","type":"","value":"0xffff000000000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"37370:3:97","nodeType":"YulIdentifier","src":"37370:3:97"},"nativeSrc":"37370:89:97","nodeType":"YulFunctionCall","src":"37370:89:97"}],"functionName":{"name":"mstore","nativeSrc":"37348:6:97","nodeType":"YulIdentifier","src":"37348:6:97"},"nativeSrc":"37348:112:97","nodeType":"YulFunctionCall","src":"37348:112:97"},"nativeSrc":"37348:112:97","nodeType":"YulExpressionStatement","src":"37348:112:97"},{"expression":{"arguments":[{"arguments":[{"name":"end_1","nativeSrc":"37480:5:97","nodeType":"YulIdentifier","src":"37480:5:97"},{"kind":"number","nativeSrc":"37487:1:97","nodeType":"YulLiteral","src":"37487:1:97","type":"","value":"3"}],"functionName":{"name":"add","nativeSrc":"37476:3:97","nodeType":"YulIdentifier","src":"37476:3:97"},"nativeSrc":"37476:13:97","nodeType":"YulFunctionCall","src":"37476:13:97"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"37499:3:97","nodeType":"YulLiteral","src":"37499:3:97","type":"","value":"248"},{"name":"value3","nativeSrc":"37504:6:97","nodeType":"YulIdentifier","src":"37504:6:97"}],"functionName":{"name":"shl","nativeSrc":"37495:3:97","nodeType":"YulIdentifier","src":"37495:3:97"},"nativeSrc":"37495:16:97","nodeType":"YulFunctionCall","src":"37495:16:97"},{"name":"_1","nativeSrc":"37513:2:97","nodeType":"YulIdentifier","src":"37513:2:97"}],"functionName":{"name":"and","nativeSrc":"37491:3:97","nodeType":"YulIdentifier","src":"37491:3:97"},"nativeSrc":"37491:25:97","nodeType":"YulFunctionCall","src":"37491:25:97"}],"functionName":{"name":"mstore","nativeSrc":"37469:6:97","nodeType":"YulIdentifier","src":"37469:6:97"},"nativeSrc":"37469:48:97","nodeType":"YulFunctionCall","src":"37469:48:97"},"nativeSrc":"37469:48:97","nodeType":"YulExpressionStatement","src":"37469:48:97"},{"nativeSrc":"37526:29:97","nodeType":"YulVariableDeclaration","src":"37526:29:97","value":{"arguments":[{"name":"value4","nativeSrc":"37548:6:97","nodeType":"YulIdentifier","src":"37548:6:97"}],"functionName":{"name":"mload","nativeSrc":"37542:5:97","nodeType":"YulIdentifier","src":"37542:5:97"},"nativeSrc":"37542:13:97","nodeType":"YulFunctionCall","src":"37542:13:97"},"variables":[{"name":"length_1","nativeSrc":"37530:8:97","nodeType":"YulTypedName","src":"37530:8:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value4","nativeSrc":"37603:6:97","nodeType":"YulIdentifier","src":"37603:6:97"},{"kind":"number","nativeSrc":"37611:4:97","nodeType":"YulLiteral","src":"37611:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"37599:3:97","nodeType":"YulIdentifier","src":"37599:3:97"},"nativeSrc":"37599:17:97","nodeType":"YulFunctionCall","src":"37599:17:97"},{"arguments":[{"name":"end_1","nativeSrc":"37622:5:97","nodeType":"YulIdentifier","src":"37622:5:97"},{"kind":"number","nativeSrc":"37629:1:97","nodeType":"YulLiteral","src":"37629:1:97","type":"","value":"4"}],"functionName":{"name":"add","nativeSrc":"37618:3:97","nodeType":"YulIdentifier","src":"37618:3:97"},"nativeSrc":"37618:13:97","nodeType":"YulFunctionCall","src":"37618:13:97"},{"name":"length_1","nativeSrc":"37633:8:97","nodeType":"YulIdentifier","src":"37633:8:97"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"37564:34:97","nodeType":"YulIdentifier","src":"37564:34:97"},"nativeSrc":"37564:78:97","nodeType":"YulFunctionCall","src":"37564:78:97"},"nativeSrc":"37564:78:97","nodeType":"YulExpressionStatement","src":"37564:78:97"},{"nativeSrc":"37651:35:97","nodeType":"YulAssignment","src":"37651:35:97","value":{"arguments":[{"arguments":[{"name":"end_1","nativeSrc":"37666:5:97","nodeType":"YulIdentifier","src":"37666:5:97"},{"name":"length_1","nativeSrc":"37673:8:97","nodeType":"YulIdentifier","src":"37673:8:97"}],"functionName":{"name":"add","nativeSrc":"37662:3:97","nodeType":"YulIdentifier","src":"37662:3:97"},"nativeSrc":"37662:20:97","nodeType":"YulFunctionCall","src":"37662:20:97"},{"kind":"number","nativeSrc":"37684:1:97","nodeType":"YulLiteral","src":"37684:1:97","type":"","value":"4"}],"functionName":{"name":"add","nativeSrc":"37658:3:97","nodeType":"YulIdentifier","src":"37658:3:97"},"nativeSrc":"37658:28:97","nodeType":"YulFunctionCall","src":"37658:28:97"},"variableNames":[{"name":"end","nativeSrc":"37651:3:97","nodeType":"YulIdentifier","src":"37651:3:97"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr_t_uint8_t_uint16_t_uint8_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_uint8_t_uint16_t_uint8_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"36798:894:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"36999:3:97","nodeType":"YulTypedName","src":"36999:3:97","type":""},{"name":"value4","nativeSrc":"37004:6:97","nodeType":"YulTypedName","src":"37004:6:97","type":""},{"name":"value3","nativeSrc":"37012:6:97","nodeType":"YulTypedName","src":"37012:6:97","type":""},{"name":"value2","nativeSrc":"37020:6:97","nodeType":"YulTypedName","src":"37020:6:97","type":""},{"name":"value1","nativeSrc":"37028:6:97","nodeType":"YulTypedName","src":"37028:6:97","type":""},{"name":"value0","nativeSrc":"37036:6:97","nodeType":"YulTypedName","src":"37036:6:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"37047:3:97","nodeType":"YulTypedName","src":"37047:3:97","type":""}],"src":"36798:894:97"},{"body":{"nativeSrc":"37871:232:97","nodeType":"YulBlock","src":"37871:232:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"37888:9:97","nodeType":"YulIdentifier","src":"37888:9:97"},{"kind":"number","nativeSrc":"37899:2:97","nodeType":"YulLiteral","src":"37899:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"37881:6:97","nodeType":"YulIdentifier","src":"37881:6:97"},"nativeSrc":"37881:21:97","nodeType":"YulFunctionCall","src":"37881:21:97"},"nativeSrc":"37881:21:97","nodeType":"YulExpressionStatement","src":"37881:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"37922:9:97","nodeType":"YulIdentifier","src":"37922:9:97"},{"kind":"number","nativeSrc":"37933:2:97","nodeType":"YulLiteral","src":"37933:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"37918:3:97","nodeType":"YulIdentifier","src":"37918:3:97"},"nativeSrc":"37918:18:97","nodeType":"YulFunctionCall","src":"37918:18:97"},{"kind":"number","nativeSrc":"37938:2:97","nodeType":"YulLiteral","src":"37938:2:97","type":"","value":"42"}],"functionName":{"name":"mstore","nativeSrc":"37911:6:97","nodeType":"YulIdentifier","src":"37911:6:97"},"nativeSrc":"37911:30:97","nodeType":"YulFunctionCall","src":"37911:30:97"},"nativeSrc":"37911:30:97","nodeType":"YulExpressionStatement","src":"37911:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"37961:9:97","nodeType":"YulIdentifier","src":"37961:9:97"},{"kind":"number","nativeSrc":"37972:2:97","nodeType":"YulLiteral","src":"37972:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"37957:3:97","nodeType":"YulIdentifier","src":"37957:3:97"},"nativeSrc":"37957:18:97","nodeType":"YulFunctionCall","src":"37957:18:97"},{"hexValue":"5361666545524332303a204552433230206f7065726174696f6e20646964206e","kind":"string","nativeSrc":"37977:34:97","nodeType":"YulLiteral","src":"37977:34:97","type":"","value":"SafeERC20: ERC20 operation did n"}],"functionName":{"name":"mstore","nativeSrc":"37950:6:97","nodeType":"YulIdentifier","src":"37950:6:97"},"nativeSrc":"37950:62:97","nodeType":"YulFunctionCall","src":"37950:62:97"},"nativeSrc":"37950:62:97","nodeType":"YulExpressionStatement","src":"37950:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38032:9:97","nodeType":"YulIdentifier","src":"38032:9:97"},{"kind":"number","nativeSrc":"38043:2:97","nodeType":"YulLiteral","src":"38043:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"38028:3:97","nodeType":"YulIdentifier","src":"38028:3:97"},"nativeSrc":"38028:18:97","nodeType":"YulFunctionCall","src":"38028:18:97"},{"hexValue":"6f742073756363656564","kind":"string","nativeSrc":"38048:12:97","nodeType":"YulLiteral","src":"38048:12:97","type":"","value":"ot succeed"}],"functionName":{"name":"mstore","nativeSrc":"38021:6:97","nodeType":"YulIdentifier","src":"38021:6:97"},"nativeSrc":"38021:40:97","nodeType":"YulFunctionCall","src":"38021:40:97"},"nativeSrc":"38021:40:97","nodeType":"YulExpressionStatement","src":"38021:40:97"},{"nativeSrc":"38070:27:97","nodeType":"YulAssignment","src":"38070:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"38082:9:97","nodeType":"YulIdentifier","src":"38082:9:97"},{"kind":"number","nativeSrc":"38093:3:97","nodeType":"YulLiteral","src":"38093:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"38078:3:97","nodeType":"YulIdentifier","src":"38078:3:97"},"nativeSrc":"38078:19:97","nodeType":"YulFunctionCall","src":"38078:19:97"},"variableNames":[{"name":"tail","nativeSrc":"38070:4:97","nodeType":"YulIdentifier","src":"38070:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"37697:406:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"37848:9:97","nodeType":"YulTypedName","src":"37848:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"37862:4:97","nodeType":"YulTypedName","src":"37862:4:97","type":""}],"src":"37697:406:97"},{"body":{"nativeSrc":"38282:228:97","nodeType":"YulBlock","src":"38282:228:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"38299:9:97","nodeType":"YulIdentifier","src":"38299:9:97"},{"kind":"number","nativeSrc":"38310:2:97","nodeType":"YulLiteral","src":"38310:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"38292:6:97","nodeType":"YulIdentifier","src":"38292:6:97"},"nativeSrc":"38292:21:97","nodeType":"YulFunctionCall","src":"38292:21:97"},"nativeSrc":"38292:21:97","nodeType":"YulExpressionStatement","src":"38292:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38333:9:97","nodeType":"YulIdentifier","src":"38333:9:97"},{"kind":"number","nativeSrc":"38344:2:97","nodeType":"YulLiteral","src":"38344:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"38329:3:97","nodeType":"YulIdentifier","src":"38329:3:97"},"nativeSrc":"38329:18:97","nodeType":"YulFunctionCall","src":"38329:18:97"},{"kind":"number","nativeSrc":"38349:2:97","nodeType":"YulLiteral","src":"38349:2:97","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"38322:6:97","nodeType":"YulIdentifier","src":"38322:6:97"},"nativeSrc":"38322:30:97","nodeType":"YulFunctionCall","src":"38322:30:97"},"nativeSrc":"38322:30:97","nodeType":"YulExpressionStatement","src":"38322:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38372:9:97","nodeType":"YulIdentifier","src":"38372:9:97"},{"kind":"number","nativeSrc":"38383:2:97","nodeType":"YulLiteral","src":"38383:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"38368:3:97","nodeType":"YulIdentifier","src":"38368:3:97"},"nativeSrc":"38368:18:97","nodeType":"YulFunctionCall","src":"38368:18:97"},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2031","kind":"string","nativeSrc":"38388:34:97","nodeType":"YulLiteral","src":"38388:34:97","type":"","value":"SafeCast: value doesn't fit in 1"}],"functionName":{"name":"mstore","nativeSrc":"38361:6:97","nodeType":"YulIdentifier","src":"38361:6:97"},"nativeSrc":"38361:62:97","nodeType":"YulFunctionCall","src":"38361:62:97"},"nativeSrc":"38361:62:97","nodeType":"YulExpressionStatement","src":"38361:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38443:9:97","nodeType":"YulIdentifier","src":"38443:9:97"},{"kind":"number","nativeSrc":"38454:2:97","nodeType":"YulLiteral","src":"38454:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"38439:3:97","nodeType":"YulIdentifier","src":"38439:3:97"},"nativeSrc":"38439:18:97","nodeType":"YulFunctionCall","src":"38439:18:97"},{"hexValue":"362062697473","kind":"string","nativeSrc":"38459:8:97","nodeType":"YulLiteral","src":"38459:8:97","type":"","value":"6 bits"}],"functionName":{"name":"mstore","nativeSrc":"38432:6:97","nodeType":"YulIdentifier","src":"38432:6:97"},"nativeSrc":"38432:36:97","nodeType":"YulFunctionCall","src":"38432:36:97"},"nativeSrc":"38432:36:97","nodeType":"YulExpressionStatement","src":"38432:36:97"},{"nativeSrc":"38477:27:97","nodeType":"YulAssignment","src":"38477:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"38489:9:97","nodeType":"YulIdentifier","src":"38489:9:97"},{"kind":"number","nativeSrc":"38500:3:97","nodeType":"YulLiteral","src":"38500:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"38485:3:97","nodeType":"YulIdentifier","src":"38485:3:97"},"nativeSrc":"38485:19:97","nodeType":"YulFunctionCall","src":"38485:19:97"},"variableNames":[{"name":"tail","nativeSrc":"38477:4:97","nodeType":"YulIdentifier","src":"38477:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_13d3a66f9e0e5c92bbe7743bcd3bdb4695009d5f3a96e5ff49718d715b484033__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"38108:402:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"38259:9:97","nodeType":"YulTypedName","src":"38259:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"38273:4:97","nodeType":"YulTypedName","src":"38273:4:97","type":""}],"src":"38108:402:97"},{"body":{"nativeSrc":"38689:228:97","nodeType":"YulBlock","src":"38689:228:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"38706:9:97","nodeType":"YulIdentifier","src":"38706:9:97"},{"kind":"number","nativeSrc":"38717:2:97","nodeType":"YulLiteral","src":"38717:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"38699:6:97","nodeType":"YulIdentifier","src":"38699:6:97"},"nativeSrc":"38699:21:97","nodeType":"YulFunctionCall","src":"38699:21:97"},"nativeSrc":"38699:21:97","nodeType":"YulExpressionStatement","src":"38699:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38740:9:97","nodeType":"YulIdentifier","src":"38740:9:97"},{"kind":"number","nativeSrc":"38751:2:97","nodeType":"YulLiteral","src":"38751:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"38736:3:97","nodeType":"YulIdentifier","src":"38736:3:97"},"nativeSrc":"38736:18:97","nodeType":"YulFunctionCall","src":"38736:18:97"},{"kind":"number","nativeSrc":"38756:2:97","nodeType":"YulLiteral","src":"38756:2:97","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"38729:6:97","nodeType":"YulIdentifier","src":"38729:6:97"},"nativeSrc":"38729:30:97","nodeType":"YulFunctionCall","src":"38729:30:97"},"nativeSrc":"38729:30:97","nodeType":"YulExpressionStatement","src":"38729:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38779:9:97","nodeType":"YulIdentifier","src":"38779:9:97"},{"kind":"number","nativeSrc":"38790:2:97","nodeType":"YulLiteral","src":"38790:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"38775:3:97","nodeType":"YulIdentifier","src":"38775:3:97"},"nativeSrc":"38775:18:97","nodeType":"YulFunctionCall","src":"38775:18:97"},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e636520666f","kind":"string","nativeSrc":"38795:34:97","nodeType":"YulLiteral","src":"38795:34:97","type":"","value":"Address: insufficient balance fo"}],"functionName":{"name":"mstore","nativeSrc":"38768:6:97","nodeType":"YulIdentifier","src":"38768:6:97"},"nativeSrc":"38768:62:97","nodeType":"YulFunctionCall","src":"38768:62:97"},"nativeSrc":"38768:62:97","nodeType":"YulExpressionStatement","src":"38768:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38850:9:97","nodeType":"YulIdentifier","src":"38850:9:97"},{"kind":"number","nativeSrc":"38861:2:97","nodeType":"YulLiteral","src":"38861:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"38846:3:97","nodeType":"YulIdentifier","src":"38846:3:97"},"nativeSrc":"38846:18:97","nodeType":"YulFunctionCall","src":"38846:18:97"},{"hexValue":"722063616c6c","kind":"string","nativeSrc":"38866:8:97","nodeType":"YulLiteral","src":"38866:8:97","type":"","value":"r call"}],"functionName":{"name":"mstore","nativeSrc":"38839:6:97","nodeType":"YulIdentifier","src":"38839:6:97"},"nativeSrc":"38839:36:97","nodeType":"YulFunctionCall","src":"38839:36:97"},"nativeSrc":"38839:36:97","nodeType":"YulExpressionStatement","src":"38839:36:97"},{"nativeSrc":"38884:27:97","nodeType":"YulAssignment","src":"38884:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"38896:9:97","nodeType":"YulIdentifier","src":"38896:9:97"},{"kind":"number","nativeSrc":"38907:3:97","nodeType":"YulLiteral","src":"38907:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"38892:3:97","nodeType":"YulIdentifier","src":"38892:3:97"},"nativeSrc":"38892:19:97","nodeType":"YulFunctionCall","src":"38892:19:97"},"variableNames":[{"name":"tail","nativeSrc":"38884:4:97","nodeType":"YulIdentifier","src":"38884:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"38515:402:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"38666:9:97","nodeType":"YulTypedName","src":"38666:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"38680:4:97","nodeType":"YulTypedName","src":"38680:4:97","type":""}],"src":"38515:402:97"},{"body":{"nativeSrc":"39059:150:97","nodeType":"YulBlock","src":"39059:150:97","statements":[{"nativeSrc":"39069:27:97","nodeType":"YulVariableDeclaration","src":"39069:27:97","value":{"arguments":[{"name":"value0","nativeSrc":"39089:6:97","nodeType":"YulIdentifier","src":"39089:6:97"}],"functionName":{"name":"mload","nativeSrc":"39083:5:97","nodeType":"YulIdentifier","src":"39083:5:97"},"nativeSrc":"39083:13:97","nodeType":"YulFunctionCall","src":"39083:13:97"},"variables":[{"name":"length","nativeSrc":"39073:6:97","nodeType":"YulTypedName","src":"39073:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"39144:6:97","nodeType":"YulIdentifier","src":"39144:6:97"},{"kind":"number","nativeSrc":"39152:4:97","nodeType":"YulLiteral","src":"39152:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"39140:3:97","nodeType":"YulIdentifier","src":"39140:3:97"},"nativeSrc":"39140:17:97","nodeType":"YulFunctionCall","src":"39140:17:97"},{"name":"pos","nativeSrc":"39159:3:97","nodeType":"YulIdentifier","src":"39159:3:97"},{"name":"length","nativeSrc":"39164:6:97","nodeType":"YulIdentifier","src":"39164:6:97"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"39105:34:97","nodeType":"YulIdentifier","src":"39105:34:97"},"nativeSrc":"39105:66:97","nodeType":"YulFunctionCall","src":"39105:66:97"},"nativeSrc":"39105:66:97","nodeType":"YulExpressionStatement","src":"39105:66:97"},{"nativeSrc":"39180:23:97","nodeType":"YulAssignment","src":"39180:23:97","value":{"arguments":[{"name":"pos","nativeSrc":"39191:3:97","nodeType":"YulIdentifier","src":"39191:3:97"},{"name":"length","nativeSrc":"39196:6:97","nodeType":"YulIdentifier","src":"39196:6:97"}],"functionName":{"name":"add","nativeSrc":"39187:3:97","nodeType":"YulIdentifier","src":"39187:3:97"},"nativeSrc":"39187:16:97","nodeType":"YulFunctionCall","src":"39187:16:97"},"variableNames":[{"name":"end","nativeSrc":"39180:3:97","nodeType":"YulIdentifier","src":"39180:3:97"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"38922:287:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"39035:3:97","nodeType":"YulTypedName","src":"39035:3:97","type":""},{"name":"value0","nativeSrc":"39040:6:97","nodeType":"YulTypedName","src":"39040:6:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"39051:3:97","nodeType":"YulTypedName","src":"39051:3:97","type":""}],"src":"38922:287:97"},{"body":{"nativeSrc":"39388:179:97","nodeType":"YulBlock","src":"39388:179:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"39405:9:97","nodeType":"YulIdentifier","src":"39405:9:97"},{"kind":"number","nativeSrc":"39416:2:97","nodeType":"YulLiteral","src":"39416:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"39398:6:97","nodeType":"YulIdentifier","src":"39398:6:97"},"nativeSrc":"39398:21:97","nodeType":"YulFunctionCall","src":"39398:21:97"},"nativeSrc":"39398:21:97","nodeType":"YulExpressionStatement","src":"39398:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39439:9:97","nodeType":"YulIdentifier","src":"39439:9:97"},{"kind":"number","nativeSrc":"39450:2:97","nodeType":"YulLiteral","src":"39450:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"39435:3:97","nodeType":"YulIdentifier","src":"39435:3:97"},"nativeSrc":"39435:18:97","nodeType":"YulFunctionCall","src":"39435:18:97"},{"kind":"number","nativeSrc":"39455:2:97","nodeType":"YulLiteral","src":"39455:2:97","type":"","value":"29"}],"functionName":{"name":"mstore","nativeSrc":"39428:6:97","nodeType":"YulIdentifier","src":"39428:6:97"},"nativeSrc":"39428:30:97","nodeType":"YulFunctionCall","src":"39428:30:97"},"nativeSrc":"39428:30:97","nodeType":"YulExpressionStatement","src":"39428:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39478:9:97","nodeType":"YulIdentifier","src":"39478:9:97"},{"kind":"number","nativeSrc":"39489:2:97","nodeType":"YulLiteral","src":"39489:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"39474:3:97","nodeType":"YulIdentifier","src":"39474:3:97"},"nativeSrc":"39474:18:97","nodeType":"YulFunctionCall","src":"39474:18:97"},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","kind":"string","nativeSrc":"39494:31:97","nodeType":"YulLiteral","src":"39494:31:97","type":"","value":"Address: call to non-contract"}],"functionName":{"name":"mstore","nativeSrc":"39467:6:97","nodeType":"YulIdentifier","src":"39467:6:97"},"nativeSrc":"39467:59:97","nodeType":"YulFunctionCall","src":"39467:59:97"},"nativeSrc":"39467:59:97","nodeType":"YulExpressionStatement","src":"39467:59:97"},{"nativeSrc":"39535:26:97","nodeType":"YulAssignment","src":"39535:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"39547:9:97","nodeType":"YulIdentifier","src":"39547:9:97"},{"kind":"number","nativeSrc":"39558:2:97","nodeType":"YulLiteral","src":"39558:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"39543:3:97","nodeType":"YulIdentifier","src":"39543:3:97"},"nativeSrc":"39543:18:97","nodeType":"YulFunctionCall","src":"39543:18:97"},"variableNames":[{"name":"tail","nativeSrc":"39535:4:97","nodeType":"YulIdentifier","src":"39535:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"39214:353:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"39365:9:97","nodeType":"YulTypedName","src":"39365:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"39379:4:97","nodeType":"YulTypedName","src":"39379:4:97","type":""}],"src":"39214:353:97"},{"body":{"nativeSrc":"39693:99:97","nodeType":"YulBlock","src":"39693:99:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"39710:9:97","nodeType":"YulIdentifier","src":"39710:9:97"},{"kind":"number","nativeSrc":"39721:2:97","nodeType":"YulLiteral","src":"39721:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"39703:6:97","nodeType":"YulIdentifier","src":"39703:6:97"},"nativeSrc":"39703:21:97","nodeType":"YulFunctionCall","src":"39703:21:97"},"nativeSrc":"39703:21:97","nodeType":"YulExpressionStatement","src":"39703:21:97"},{"nativeSrc":"39733:53:97","nodeType":"YulAssignment","src":"39733:53:97","value":{"arguments":[{"name":"value0","nativeSrc":"39759:6:97","nodeType":"YulIdentifier","src":"39759:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"39771:9:97","nodeType":"YulIdentifier","src":"39771:9:97"},{"kind":"number","nativeSrc":"39782:2:97","nodeType":"YulLiteral","src":"39782:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"39767:3:97","nodeType":"YulIdentifier","src":"39767:3:97"},"nativeSrc":"39767:18:97","nodeType":"YulFunctionCall","src":"39767:18:97"}],"functionName":{"name":"abi_encode_string","nativeSrc":"39741:17:97","nodeType":"YulIdentifier","src":"39741:17:97"},"nativeSrc":"39741:45:97","nodeType":"YulFunctionCall","src":"39741:45:97"},"variableNames":[{"name":"tail","nativeSrc":"39733:4:97","nodeType":"YulIdentifier","src":"39733:4:97"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"39572:220:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"39662:9:97","nodeType":"YulTypedName","src":"39662:9:97","type":""},{"name":"value0","nativeSrc":"39673:6:97","nodeType":"YulTypedName","src":"39673:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"39684:4:97","nodeType":"YulTypedName","src":"39684:4:97","type":""}],"src":"39572:220:97"}]},"contents":"{\n    { }\n    function validator_revert_uint32(value)\n    {\n        if iszero(eq(value, and(value, 0xffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_uint32(offset) -> value\n    {\n        value := calldataload(offset)\n        validator_revert_uint32(value)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function allocate_memory_4306() -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, 0x0180)\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function allocate_memory_4308() -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, 64)\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function allocate_memory(size) -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(size, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function array_allocation_size_string(length) -> size\n    {\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        size := add(and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0), 0x20)\n    }\n    function abi_decode_string(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let _1 := calldataload(offset)\n        let array_1 := allocate_memory(array_allocation_size_string(_1))\n        mstore(array_1, _1)\n        if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n        calldatacopy(add(array_1, 0x20), add(offset, 0x20), _1)\n        mstore(add(add(array_1, _1), 0x20), 0)\n        array := array_1\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        validator_revert_address(value)\n    }\n    function validator_revert_uint96(value)\n    {\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_uint96(offset) -> value\n    {\n        value := calldataload(offset)\n        validator_revert_uint96(value)\n    }\n    function abi_decode_struct_RiskParameterUpdate(headStart, end) -> value\n    {\n        if slt(sub(end, headStart), 0x0180) { revert(0, 0) }\n        value := allocate_memory_4306()\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        mstore(value, abi_decode_string(add(headStart, offset), end))\n        mstore(add(value, 32), calldataload(add(headStart, 32)))\n        mstore(add(value, 64), abi_decode_address(add(headStart, 64)))\n        let offset_1 := calldataload(add(headStart, 96))\n        if gt(offset_1, _1) { revert(0, 0) }\n        mstore(add(value, 96), abi_decode_string(add(headStart, offset_1), end))\n        mstore(add(value, 128), calldataload(add(headStart, 128)))\n        let offset_2 := calldataload(add(headStart, 160))\n        if gt(offset_2, _1) { revert(0, 0) }\n        mstore(add(value, 160), abi_decode_string(add(headStart, offset_2), end))\n        let offset_3 := calldataload(add(headStart, 192))\n        if gt(offset_3, _1) { revert(0, 0) }\n        mstore(add(value, 192), abi_decode_string(add(headStart, offset_3), end))\n        mstore(add(value, 224), calldataload(add(headStart, 224)))\n        let _2 := 256\n        mstore(add(value, _2), abi_decode_address(add(headStart, _2)))\n        let _3 := 288\n        mstore(add(value, _3), abi_decode_uint96(add(headStart, _3)))\n        let _4 := 320\n        mstore(add(value, _4), abi_decode_uint32(add(headStart, _4)))\n        let _5 := 352\n        let offset_4 := calldataload(add(headStart, _5))\n        if gt(offset_4, _1) { revert(0, 0) }\n        mstore(add(value, _5), abi_decode_string(add(headStart, offset_4), end))\n    }\n    function abi_decode_tuple_t_uint32t_struct$_RiskParameterUpdate_$16568_memory_ptrt_bytes_memory_ptrt_struct$_MessagingFee_$879_memory_ptrt_address(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        let _1 := sub(dataEnd, headStart)\n        if slt(_1, 192) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_uint32(value)\n        value0 := value\n        let offset := calldataload(add(headStart, 32))\n        let _2 := 0xffffffffffffffff\n        if gt(offset, _2) { revert(0, 0) }\n        value1 := abi_decode_struct_RiskParameterUpdate(add(headStart, offset), dataEnd)\n        let offset_1 := calldataload(add(headStart, 64))\n        if gt(offset_1, _2) { revert(0, 0) }\n        value2 := abi_decode_string(add(headStart, offset_1), dataEnd)\n        if slt(add(_1, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0), 64) { revert(0, 0) }\n        let value_1 := allocate_memory_4308()\n        mstore(value_1, calldataload(add(headStart, 96)))\n        mstore(add(value_1, 32), calldataload(add(headStart, 128)))\n        value3 := value_1\n        value4 := abi_decode_address(add(headStart, 160))\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function validator_revert_bool(value)\n    {\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_bool(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_bool(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_uint64_t_uint64__to_t_uint64_t_uint64__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        let _1 := 0xffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n    }\n    function abi_decode_tuple_t_struct$_RiskParameterUpdate_$16568_memory_ptrt_bytes_memory_ptrt_bool(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        value0 := abi_decode_struct_RiskParameterUpdate(add(headStart, offset), dataEnd)\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, _1) { revert(0, 0) }\n        value1 := abi_decode_string(add(headStart, offset_1), dataEnd)\n        let value := calldataload(add(headStart, 64))\n        validator_revert_bool(value)\n        value2 := value\n    }\n    function abi_encode_struct_MessagingFee(value, pos)\n    {\n        mstore(pos, mload(value))\n        mstore(add(pos, 0x20), mload(add(value, 0x20)))\n    }\n    function abi_encode_tuple_t_struct$_MessagingFee_$879_memory_ptr__to_t_struct$_MessagingFee_$879_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        abi_encode_struct_MessagingFee(value0, headStart)\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_string_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_string_calldata_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n    }\n    function abi_encode_address(value, pos)\n    {\n        mstore(pos, and(value, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_struct$_RiskParamConfig_$16859_memory_ptr__to_t_struct$_RiskParamConfig_$16859_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 128)\n        mstore(headStart, iszero(iszero(mload(value0))))\n        mstore(add(headStart, 0x20), mload(add(value0, 0x20)))\n        mstore(add(headStart, 0x40), mload(add(value0, 0x40)))\n        mstore(add(headStart, 0x60), and(mload(add(value0, 0x60)), 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_decode_tuple_t_uint32t_bytes32(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_uint32(value)\n        value0 := value\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_bool(value_1)\n        value1 := value_1\n    }\n    function abi_decode_tuple_t_string_calldata_ptrt_bool(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n        let value := calldataload(add(headStart, 32))\n        validator_revert_bool(value)\n        value2 := value\n    }\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n    }\n    function abi_encode_uint32(value, pos)\n    {\n        mstore(pos, and(value, 0xffffffff))\n    }\n    function abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffff))\n    }\n    function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        let value := calldataload(add(headStart, 32))\n        validator_revert_address(value)\n        value1 := value\n    }\n    function abi_decode_tuple_t_string_calldata_ptrt_address(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n        let value := calldataload(add(headStart, 32))\n        validator_revert_address(value)\n        value2 := value\n    }\n    function abi_encode_tuple_t_contract$_ILayerZeroEndpointV2_$1048__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_contract$_IRiskOracle_$16808__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_encode_tuple_t_bool_t_uint256_t_uint256_t_address__to_t_bool_t_uint256_t_uint256_t_address__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 128)\n        mstore(headStart, iszero(iszero(value0)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), and(value3, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_contract$_IAccessControlManagerV8_$13903__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function panic_error_0x21()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x21)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_uint256_t_uint256_t_enum$_UpdateStatus_$16849_t_address_t_uint256__to_t_uint256_t_uint256_t_uint8_t_address_t_uint256__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 160)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n        if iszero(lt(value2, 6))\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x21)\n            revert(0, 0x24)\n        }\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), and(value3, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 128), value4)\n    }\n    function abi_decode_tuple_t_uint32(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_uint32(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_string_calldata_ptrt_addresst_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n        let value := calldataload(add(headStart, 32))\n        validator_revert_address(value)\n        value2 := value\n        value3 := calldataload(add(headStart, 64))\n        value4 := calldataload(add(headStart, 96))\n    }\n    function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        let _1 := 32\n        let tail_1 := add(headStart, 32)\n        mstore(headStart, 32)\n        let pos := tail_1\n        let length := mload(value0)\n        mstore(tail_1, length)\n        pos := add(headStart, 64)\n        let srcPtr := add(value0, 32)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, mload(srcPtr))\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        tail := pos\n    }\n    function copy_memory_to_memory_with_cleanup(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n    }\n    function abi_encode_string(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n        end := add(add(pos, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 0x20)\n    }\n    function abi_encode_uint96(value, pos)\n    {\n        mstore(pos, and(value, 0xffffffffffffffffffffffff))\n    }\n    function abi_encode_struct_RiskParameterUpdate(value, pos) -> end\n    {\n        let _1 := 0x0180\n        let memberValue0 := mload(value)\n        mstore(pos, _1)\n        let tail := abi_encode_string(memberValue0, add(pos, _1))\n        mstore(add(pos, 0x20), mload(add(value, 0x20)))\n        let memberValue0_1 := mload(add(value, 0x40))\n        abi_encode_address(memberValue0_1, add(pos, 0x40))\n        let memberValue0_2 := mload(add(value, 0x60))\n        mstore(add(pos, 0x60), sub(tail, pos))\n        let tail_1 := abi_encode_string(memberValue0_2, tail)\n        mstore(add(pos, 0x80), mload(add(value, 0x80)))\n        let memberValue0_3 := mload(add(value, 0xa0))\n        mstore(add(pos, 0xa0), sub(tail_1, pos))\n        let tail_2 := abi_encode_string(memberValue0_3, tail_1)\n        let memberValue0_4 := mload(add(value, 0xc0))\n        mstore(add(pos, 0xc0), sub(tail_2, pos))\n        let tail_3 := abi_encode_string(memberValue0_4, tail_2)\n        mstore(add(pos, 0xe0), mload(add(value, 0xe0)))\n        let _2 := 0x0100\n        let memberValue0_5 := mload(add(value, _2))\n        abi_encode_address(memberValue0_5, add(pos, _2))\n        let _3 := 0x0120\n        let memberValue0_6 := mload(add(value, _3))\n        abi_encode_uint96(memberValue0_6, add(pos, _3))\n        let _4 := 0x0140\n        let memberValue0_7 := mload(add(value, _4))\n        abi_encode_uint32(memberValue0_7, add(pos, _4))\n        let _5 := 0x0160\n        let memberValue0_8 := mload(add(value, _5))\n        mstore(add(pos, _5), sub(tail_3, pos))\n        end := abi_encode_string(memberValue0_8, tail_3)\n    }\n    function abi_encode_tuple_t_struct$_RiskParameterUpdate_$16568_memory_ptr__to_t_struct$_RiskParameterUpdate_$16568_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_struct_RiskParameterUpdate(value0, add(headStart, 32))\n    }\n    function abi_encode_tuple_t_bool_t_bool__to_t_bool_t_bool__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, iszero(iszero(value0)))\n        mstore(add(headStart, 32), iszero(iszero(value1)))\n    }\n    function abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        calldatacopy(pos, value0, value1)\n        let _1 := add(pos, value1)\n        mstore(_1, 0)\n        end := _1\n    }\n    function abi_encode_tuple_t_uint32_t_bytes32__to_t_uint32_t_bytes32__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, 0xffffffff))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_string_calldata(start, length, pos) -> end\n    {\n        mstore(pos, length)\n        calldatacopy(add(pos, 0x20), start, length)\n        mstore(add(add(pos, length), 0x20), 0)\n        end := add(add(pos, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 0x20)\n    }\n    function abi_encode_tuple_t_string_calldata_ptr_t_bool_t_bool__to_t_string_memory_ptr_t_bool_t_bool__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, 96)\n        tail := abi_encode_string_calldata(value0, value1, add(headStart, 96))\n        mstore(add(headStart, 32), iszero(iszero(value2)))\n        mstore(add(headStart, 64), iszero(iszero(value3)))\n    }\n    function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 46)\n        mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n        mstore(add(headStart, 96), \"dy initialized\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function abi_decode_string_fromMemory(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let _1 := mload(offset)\n        let array_1 := allocate_memory(array_allocation_size_string(_1))\n        mstore(array_1, _1)\n        if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n        copy_memory_to_memory_with_cleanup(add(offset, 0x20), add(array_1, 0x20), _1)\n        array := array_1\n    }\n    function abi_decode_address_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        validator_revert_address(value)\n    }\n    function abi_decode_uint96_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        validator_revert_uint96(value)\n    }\n    function abi_decode_uint32_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        validator_revert_uint32(value)\n    }\n    function abi_decode_tuple_t_struct$_RiskParameterUpdate_$16568_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := mload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let _2 := add(headStart, offset)\n        if slt(sub(dataEnd, _2), 0x0180) { revert(0, 0) }\n        let value := allocate_memory_4306()\n        let offset_1 := mload(_2)\n        if gt(offset_1, _1) { revert(0, 0) }\n        mstore(value, abi_decode_string_fromMemory(add(_2, offset_1), dataEnd))\n        mstore(add(value, 32), mload(add(_2, 32)))\n        mstore(add(value, 64), abi_decode_address_fromMemory(add(_2, 64)))\n        let offset_2 := mload(add(_2, 96))\n        if gt(offset_2, _1) { revert(0, 0) }\n        mstore(add(value, 96), abi_decode_string_fromMemory(add(_2, offset_2), dataEnd))\n        mstore(add(value, 128), mload(add(_2, 128)))\n        let offset_3 := mload(add(_2, 160))\n        if gt(offset_3, _1) { revert(0, 0) }\n        mstore(add(value, 160), abi_decode_string_fromMemory(add(_2, offset_3), dataEnd))\n        let offset_4 := mload(add(_2, 192))\n        if gt(offset_4, _1) { revert(0, 0) }\n        mstore(add(value, 192), abi_decode_string_fromMemory(add(_2, offset_4), dataEnd))\n        mstore(add(value, 224), mload(add(_2, 224)))\n        let _3 := 256\n        mstore(add(value, _3), abi_decode_address_fromMemory(add(_2, _3)))\n        let _4 := 288\n        mstore(add(value, _4), abi_decode_uint96_fromMemory(add(_2, _4)))\n        let _5 := 320\n        mstore(add(value, _5), abi_decode_uint32_fromMemory(add(_2, _5)))\n        let _6 := 352\n        let offset_5 := mload(add(_2, _6))\n        if gt(offset_5, _1) { revert(0, 0) }\n        mstore(add(value, _6), abi_decode_string_fromMemory(add(_2, offset_5), dataEnd))\n        value0 := value\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_bool(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 41)\n        mstore(add(headStart, 64), \"Ownable2Step: caller is not the \")\n        mstore(add(headStart, 96), \"new owner\")\n        tail := add(headStart, 128)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n        end := add(pos, length)\n    }\n    function abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos) -> end\n    { end := pos }\n    function abi_encode_tuple_t_string_calldata_ptr_t_uint256_t_uint256_t_uint256_t_uint256_t_bool_t_bool__to_t_string_memory_ptr_t_uint256_t_uint256_t_uint256_t_uint256_t_bool_t_bool__fromStack_reversed(headStart, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, 224)\n        tail := abi_encode_string_calldata(value0, value1, add(headStart, 224))\n        mstore(add(headStart, 32), value2)\n        mstore(add(headStart, 64), value3)\n        mstore(add(headStart, 96), value4)\n        mstore(add(headStart, 128), value5)\n        mstore(add(headStart, 160), iszero(iszero(value6)))\n        mstore(add(headStart, 192), iszero(iszero(value7)))\n    }\n    function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n    {\n        let _1 := 32\n        if slt(sub(dataEnd, headStart), _1) { revert(0, 0) }\n        let offset := mload(headStart)\n        let _2 := 0xffffffffffffffff\n        if gt(offset, _2) { revert(0, 0) }\n        let _3 := add(headStart, offset)\n        if iszero(slt(add(_3, 0x1f), dataEnd)) { revert(0, 0) }\n        let _4 := mload(_3)\n        if gt(_4, _2) { panic_error_0x41() }\n        let _5 := shl(5, _4)\n        let dst := allocate_memory(add(_5, _1))\n        let dst_1 := dst\n        mstore(dst, _4)\n        dst := add(dst, _1)\n        let srcEnd := add(add(_3, _5), _1)\n        if gt(srcEnd, dataEnd) { revert(0, 0) }\n        let src := add(_3, _1)\n        for { } lt(src, srcEnd) { src := add(src, _1) }\n        {\n            let value := mload(src)\n            validator_revert_address(value)\n            mstore(dst, value)\n            dst := add(dst, _1)\n        }\n        value0 := dst_1\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n    function abi_encode_tuple_t_struct$_MessagingParams_$866_memory_ptr_t_address__to_t_struct$_MessagingParams_$866_memory_ptr_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        mstore(headStart, 64)\n        mstore(add(headStart, 64), and(mload(value0), 0xffffffff))\n        mstore(add(headStart, 96), mload(add(value0, 0x20)))\n        let memberValue0 := mload(add(value0, 64))\n        mstore(add(headStart, 128), 0xa0)\n        let tail_1 := abi_encode_string(memberValue0, add(headStart, 224))\n        let memberValue0_1 := mload(add(value0, 96))\n        mstore(add(headStart, 0xa0), add(sub(tail_1, headStart), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0))\n        let tail_2 := abi_encode_string(memberValue0_1, tail_1)\n        mstore(add(headStart, 192), iszero(iszero(mload(add(value0, 128)))))\n        tail := tail_2\n        mstore(add(headStart, 0x20), and(value1, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_struct_MessagingFee_fromMemory(headStart, end) -> value\n    {\n        if slt(sub(end, headStart), 0x40) { revert(0, 0) }\n        value := allocate_memory_4308()\n        mstore(value, mload(headStart))\n        mstore(add(value, 32), mload(add(headStart, 32)))\n    }\n    function abi_decode_tuple_t_struct$_MessagingReceipt_$874_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, 0x60)\n        let _1 := 0xffffffffffffffff\n        if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, mload(headStart))\n        let value := mload(add(headStart, 32))\n        if iszero(eq(value, and(value, _1))) { revert(0, 0) }\n        mstore(add(memPtr, 32), value)\n        mstore(add(memPtr, 64), abi_decode_struct_MessagingFee_fromMemory(add(headStart, 64), dataEnd))\n        value0 := memPtr\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"invalid acess control manager ad\")\n        mstore(add(headStart, 96), \"dress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n    }\n    function abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 32), 64)\n        tail := abi_encode_string(value1, add(headStart, 64))\n    }\n    function abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), 96)\n        tail := abi_encode_string(value2, add(headStart, 96))\n    }\n    function abi_decode_tuple_t_struct$_MessagingFee_$879_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_struct_MessagingFee_fromMemory(headStart, dataEnd)\n    }\n    function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 43)\n        mstore(add(headStart, 64), \"Initializable: contract is not i\")\n        mstore(add(headStart, 96), \"nitializing\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_string_memory_ptr_t_address__to_t_string_memory_ptr_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        mstore(headStart, 64)\n        tail := abi_encode_string(value0, add(headStart, 64))\n        mstore(add(headStart, 32), and(value1, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function abi_encode_tuple_t_uint256_t_string_memory_ptr__to_t_uint256_t_string_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), 64)\n        tail := abi_encode_string(value1, add(headStart, 64))\n    }\n    function abi_encode_tuple_t_uint32_t_struct$_RiskParameterUpdate_$16568_memory_ptr_t_bytes_memory_ptr_t_struct$_MessagingFee_$879_memory_ptr_t_address__to_t_uint32_t_struct$_RiskParameterUpdate_$16568_memory_ptr_t_bytes_memory_ptr_t_struct$_MessagingFee_$879_memory_ptr_t_address__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xffffffff))\n        mstore(add(headStart, 32), 192)\n        let tail_1 := abi_encode_struct_RiskParameterUpdate(value1, add(headStart, 192))\n        mstore(add(headStart, 64), sub(tail_1, headStart))\n        tail := abi_encode_string(value2, tail_1)\n        abi_encode_struct_MessagingFee(value3, add(headStart, 96))\n        mstore(add(headStart, 160), and(value4, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_packed_t_uint16__to_t_uint16__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        mstore(pos, and(shl(240, value0), 0xffff000000000000000000000000000000000000000000000000000000000000))\n        end := add(pos, 2)\n    }\n    function abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffff))\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), value2)\n    }\n    function abi_encode_tuple_t_stringliteral_414233483a71244a4f2700455a9733e71511b5279e381bdd2af6d44b1b09ecab__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 20)\n        mstore(add(headStart, 64), \"toUint16_outOfBounds\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_packed_t_uint128_t_uint128__to_t_uint128_t_uint128__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        let _1 := 0xffffffffffffffffffffffffffffffff00000000000000000000000000000000\n        mstore(pos, and(shl(128, value0), _1))\n        mstore(add(pos, 16), and(shl(128, value1), _1))\n        end := add(pos, 32)\n    }\n    function abi_encode_tuple_packed_t_uint128__to_t_uint128__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        mstore(pos, and(shl(128, value0), 0xffffffffffffffffffffffffffffffff00000000000000000000000000000000))\n        end := add(pos, 16)\n    }\n    function checked_add_t_uint16(x, y) -> sum\n    {\n        let _1 := 0xffff\n        sum := add(and(x, _1), and(y, _1))\n        if gt(sum, _1) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr_t_uint8_t_uint16_t_uint8_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_uint8_t_uint16_t_uint8_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value4, value3, value2, value1, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n        let end_1 := add(pos, length)\n        let _1 := 0xff00000000000000000000000000000000000000000000000000000000000000\n        mstore(end_1, and(shl(248, value1), _1))\n        mstore(add(end_1, 1), and(shl(240, value2), 0xffff000000000000000000000000000000000000000000000000000000000000))\n        mstore(add(end_1, 3), and(shl(248, value3), _1))\n        let length_1 := mload(value4)\n        copy_memory_to_memory_with_cleanup(add(value4, 0x20), add(end_1, 4), length_1)\n        end := add(add(end_1, length_1), 4)\n    }\n    function abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 42)\n        mstore(add(headStart, 64), \"SafeERC20: ERC20 operation did n\")\n        mstore(add(headStart, 96), \"ot succeed\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_13d3a66f9e0e5c92bbe7743bcd3bdb4695009d5f3a96e5ff49718d715b484033__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"SafeCast: value doesn't fit in 1\")\n        mstore(add(headStart, 96), \"6 bits\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Address: insufficient balance fo\")\n        mstore(add(headStart, 96), \"r call\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n        end := add(pos, length)\n    }\n    function abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"Address: call to non-contract\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_string(value0, add(headStart, 32))\n    }\n}","id":97,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"1875":[{"length":32,"start":1342},{"length":32,"start":6703},{"length":32,"start":7787},{"length":32,"start":8570},{"length":32,"start":12278},{"length":32,"start":12488}],"18359":[{"length":32,"start":1155},{"length":32,"start":4312}],"18363":[{"length":32,"start":1548},{"length":32,"start":4147},{"length":32,"start":5107},{"length":32,"start":7553},{"length":32,"start":8880},{"length":32,"start":9590},{"length":32,"start":10022}]},"linkReferences":{},"object":"6080604052600436106102895760003560e01c8063715018a611610153578063bb0b6a53116100cb578063f2fde38b1161007f578063f75875ad11610064578063f75875ad14610890578063f8ce6ac2146108b0578063fe2b3502146108d057600080fd5b8063f2fde38b14610843578063f63106e41461086357600080fd5b8063c3e10deb116100b0578063c3e10deb146107e5578063ca5eb5e114610805578063e30c39781461082557600080fd5b8063bb0b6a5314610773578063c2a23c84146107c557600080fd5b80638da5cb5b11610122578063af9e0fd311610107578063af9e0fd314610674578063b4a0bdf3146106ee578063b4c2f7271461070c57600080fd5b80638da5cb5b14610641578063ab803a761461065f57600080fd5b8063715018a6146105d057806379ba5097146105e55780637dd8f522146105fa57806385a7602f1461062e57600080fd5b80633aed7f3111610201578063595bd377116101b55780635e280f111161019a5780635e280f111461052c57806362656e631461057857806365bd691c1461059857600080fd5b8063595bd377146104f25780635c975abb1461051257600080fd5b8063485cc955116101e6578063485cc955146104515780634c21344914610471578063513602e8146104ba57600080fd5b80633aed7f3114610411578063438653fe1461043157600080fd5b80631d1c362011610258578063282071411161023d578063282071411461036357806333bde2ca146103c15780633400288b146103f157600080fd5b80631d1c362014610311578063233dd0da1461033e57600080fd5b806305687c19146102955780630e32cb86146102aa57806316c38b3c146102ca57806317442b70146102ea57600080fd5b3661029057005b600080fd5b6102a86102a3366004613cf6565b610900565b005b3480156102b657600080fd5b506102a86102c5366004613dcd565b610973565b3480156102d657600080fd5b506102a86102e5366004613df8565b610987565b3480156102f657600080fd5b50604080516001815260006020820152015b60405180910390f35b34801561031d57600080fd5b5061033161032c366004613e15565b610a5f565b6040516103089190613e8d565b34801561034a57600080fd5b506103556202a30081565b604051908152602001610308565b34801561036f57600080fd5b5061038361037e366004613eed565b610ab1565b604051610308919081511515815260208083015190820152604080830151908201526060918201516001600160a01b03169181019190915260800190565b3480156103cd57600080fd5b506103e16103dc366004613f2f565b610b44565b6040519015158152602001610308565b3480156103fd57600080fd5b506102a861040c366004613f48565b610b4f565b34801561041d57600080fd5b506102a861042c366004613f74565b610bce565b34801561043d57600080fd5b506102a861044c366004613fad565b610cb7565b34801561045d57600080fd5b506102a861046c366004613ff9565b610e16565b34801561047d57600080fd5b506104a57f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff9091168152602001610308565b3480156104c657600080fd5b506103556104d5366004614027565b60cc60209081526000928352604080842090915290825290205481565b3480156104fe57600080fd5b5061035561050d36600461404c565b610f7d565b34801561051e57600080fd5b5060c9546103e19060ff1681565b34801561053857600080fd5b506105607f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610308565b34801561058457600080fd5b506102a8610593366004613f2f565b610fc4565b3480156105a457600080fd5b506103556105b3366004614027565b60cd60209081526000928352604080842090915290825290205481565b3480156105dc57600080fd5b506102a861125b565b3480156105f157600080fd5b506102a861128d565b34801561060657600080fd5b506105607f000000000000000000000000000000000000000000000000000000000000000081565b6102a861063c366004614098565b611318565b34801561064d57600080fd5b506033546001600160a01b0316610560565b34801561066b57600080fd5b506102a8611572565b34801561068057600080fd5b506106c361068f366004613f2f565b60ca60205260009081526040902080546001820154600283015460039093015460ff9092169290916001600160a01b031684565b6040805194151585526020850193909352918301526001600160a01b03166060820152608001610308565b3480156106fa57600080fd5b506097546001600160a01b0316610560565b34801561071857600080fd5b50610762610727366004613f2f565b60cb6020526000908152604090208054600182015460028301546003909301549192909160ff82169161010090046001600160a01b03169085565b604051610308959493929190614113565b34801561077f57600080fd5b5061035561078e36600461417d565b63ffffffff1660009081527f72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f900602052604090205490565b3480156107d157600080fd5b506102a86107e036600461419a565b611671565b3480156107f157600080fd5b506102a8610800366004613f2f565b611908565b34801561081157600080fd5b506102a8610820366004613dcd565b6119ef565b34801561083157600080fd5b506065546001600160a01b0316610560565b34801561084f57600080fd5b506102a861085e366004613dcd565b611a8e565b34801561086f57600080fd5b5061088361087e36600461404c565b611a9f565b6040516103089190614201565b34801561089c57600080fd5b506103556108ab36600461404c565b611cb1565b3480156108bc57600080fd5b506102a86108cb366004613f2f565b611cf8565b3480156108dc57600080fd5b506103e16108eb366004613dcd565b60ce6020526000908152604090205460ff1681565b333014610939576040517f22d1fc8000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008460405160200161094c9190614394565b604051602081830303815290604052905061096a8682868686611e38565b50505050505050565b61097b611f43565b61098481611f9f565b50565b6109c56040518060400160405280600f81526020017f73657450617573656428626f6f6c290000000000000000000000000000000000815250612094565b60c95481151560ff909116151503610a09576040517f3f855e3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60c9546040805160ff9092161515825282151560208301527f91691e0294d292cac1a26c64dd4130c61d6690edeac415bc1fb307d64d3732a1910160405180910390a160c9805460ff1916911515919091179055565b6040805180820190915260008082526020820152600084604051602001610a869190614394565b6040516020818303038152906040529050610aa8856101400151828686612164565b95945050505050565b60408051608081018252600080825260208201819052918101829052606081019190915260008383604051610ae79291906143a7565b60408051918290038220600090815260ca602090815290829020608084018352805460ff1615158452600181015491840191909152600281015491830191909152600301546001600160a01b031660608201529150505b92915050565b6000610b3e82612247565b610b57611f43565b63ffffffff821660008181527f72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f900602081815260409283902085905582519384528301849052917f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b91015b60405180910390a1505050565b610bef604051806060016040528060248152602001614b0960249139612094565b610bf882612386565b6001600160a01b038216600090815260ce602052604090205460ff1681151581151503610c51576040517f8eee990d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038316600081815260ce6020908152604091829020805460ff191686151590811790915582518515158152918201527f10c0e7519c24c8e42dbd4d2405e9976e893c51df86614145b2758289f197ec3b910160405180910390a2505050565b610cf56040518060400160405280601c81526020017f736574436f6e66696741637469766528737472696e672c626f6f6c2900000000815250612094565b60008383604051610d079291906143a7565b6040805191829003909120600081815260ca60205291909120600301549091506001600160a01b0316610d66576040517f80919d7b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081815260ca602052604090205460ff1682151581151503610db5576040517f01e852dc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082815260ca602052604090819020805460ff19168515151790555182907fcba816b2fc5cd49700523a79b6e6c7dda19292fbb932cca77f7bccb1e500479290610e079088908890869089906143e2565b60405180910390a25050505050565b600054610100900460ff1615808015610e365750600054600160ff909116105b80610e505750303b158015610e50575060005460ff166001145b610ec75760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b6000805460ff191660011790558015610f0757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610f10836123c6565b610f1982612454565b8015610f7857600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610bc1565b505050565b6000808484604051610f909291906143a7565b6040805191829003909120600090815260cd60209081528282206001600160a01b0387168352905220549150509392505050565b60c95460ff1615611001576040517feced32bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f37759b9a000000000000000000000000000000000000000000000000000000008152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906337759b9a90602401600060405180830381865afa158015611082573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110aa9190810190614474565b6080810151600090815260ca602052604081206101408301519293509163ffffffff161580159061110c57507f000000000000000000000000000000000000000000000000000000000000000063ffffffff1683610140015163ffffffff1614155b90508061111c5761111c836124da565b611127838383612684565b60038201546001600160a01b03166000826111c7576040517f42b7cfbd0000000000000000000000000000000000000000000000000000000081526001600160a01b038316906342b7cfbd90611181908890600401614394565b602060405180830381865afa15801561119e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111c291906145db565b6111ca565b60005b60408051608081018252865460ff16151581526001870154602082015260028701549181019190915260038601546001600160a01b0316606082015290915061121d90869083806112185750855b612933565b82156112435761123e85604051806020016040528060008152506000612a86565b611253565b8015611253576112538583612c98565b505050505050565b6040517f96c553eb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60655433906001600160a01b0316811461130f5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e657200000000000000000000000000000000000000000000006064820152608401610ebe565b61098481612db6565b33600090815260ce602052604090205460ff16611361576040517f341f61ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600083815260cb602052604090206005600282015460ff16600581111561138a5761138a6140e4565b146113c1576040517f9aafae6500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f37759b9a000000000000000000000000000000000000000000000000000000008152600481018590526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906337759b9a90602401600060405180830381865afa158015611442573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261146a9190810190614474565b9050426202a3008260e001516114809190614627565b10156114b8576040517fc2a16f1400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6114fa8185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250349250612a86915050565b80604001516001600160a01b0316816060015160405161151a919061463a565b604051809103902082610140015163ffffffff167f315a04917a98179e57c69a0b2808641e45e218e5402d9d3c7da753ea76c70322846020015160405161156391815260200190565b60405180910390a45050505050565b61157a611f43565b4780156109845760006115956033546001600160a01b031690565b6001600160a01b03168260405160006040518083038185875af1925050503d80600081146115df576040519150601f19603f3d011682016040523d82523d6000602084013e6115e4565b606091505b505090508061161f576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6033546001600160a01b03166001600160a01b03167f0a1dd7c5bdc40ecbdefc1bfda22f1dfb98c8fc3e3940aab73ad7fba37720d0a08360405161166591815260200190565b60405180910390a25050565b611692604051806060016040528060368152602001614b2d60369139612094565b61169b83612386565b8315806116a85750604084115b156116de576040517e64280000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600003611718576040517ff6ea4e0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6202a3008110611754576040517ff8d10e8200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600085856040516117669291906143a7565b60405180910390209050600060ca60008381526020019081526020016000206040518060800160405290816000820160009054906101000a900460ff1615151515815260200160018201548152602001600282015481526020016003820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152505090506040518060800160405280600115158152602001858152602001848152602001866001600160a01b031681525060ca600084815260200190815260200160002060008201518160000160006101000a81548160ff021916908315150217905550602082015181600101556040820151816002015560608201518160030160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550905050846001600160a01b031681606001516001600160a01b0316837fed1dcf396500587db779d729bcafd22d1cc4827708623e27189eb6687a6962448a8a86602001518a88604001518b8a6000015160016040516118f7989796959493929190614656565b60405180910390a450505050505050565b33600090815260ce602052604090205460ff16611951576040517f341f61ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081815260cb602052604090206001600282015460ff16600581111561197a5761197a6140e4565b146119b1576040517fdefe2c2500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028101805460ff1916600317905560405182907f0a4273908b9362e571cacd5610879e3dfd7ddc7c9b3ce1d7ea7ea8b41869116490600090a25050565b6119f7611f43565b6040517fca5eb5e10000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b158015611a7357600080fd5b505af1158015611a87573d6000803e3d6000fd5b5050505050565b611a96611f43565b61098481612dbf565b606060008484604051611ab39291906143a7565b604051809103902090506000836001600160a01b031663b0772d0b6040518163ffffffff1660e01b8152600401600060405180830381865afa158015611afd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b2591908101906146a0565b805190915060008167ffffffffffffffff811115611b4557611b45613a3a565b604051908082528060200260200182016040528015611b6e578160200160208202803683370190505b5090506000805b83811015611c1457600086815260cd6020526040812086518290889085908110611ba157611ba1614752565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020549050611bd581612247565b611bdf5750611c0c565b80848481518110611bf257611bf2614752565b602090810291909101015282611c0781614781565b935050505b600101611b75565b508067ffffffffffffffff811115611c2e57611c2e613a3a565b604051908082528060200260200182016040528015611c57578160200160208202803683370190505b50955060005b81811015611ca457828181518110611c7757611c77614752565b6020026020010151878281518110611c9157611c91614752565b6020908102919091010152600101611c5d565b5050505050509392505050565b6000808484604051611cc49291906143a7565b6040805191829003909120600090815260cc60209081528282206001600160a01b0387168352905220549150509392505050565b33600090815260ce602052604090205460ff16611d41576040517f341f61ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081815260cb602052604080822090517f37759b9a000000000000000000000000000000000000000000000000000000008152600481018490529091907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906337759b9a90602401600060405180830381865afa158015611dd0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611df89190810190614474565b6080810151600090815260ca60205260409020909150611e19838383612e48565b6003810154611e329083906001600160a01b0316612c98565b50505050565b611e406139d0565b6000611e4f8460000151612fb1565b602085015190915015611e6957611e698460200151612ff2565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff168152602001611eb98c6130ed565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b8152600401611ef59291906147b9565b60806040518083038185885af1158015611f13573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611f389190614880565b979650505050505050565b6033546001600160a01b03163314611f9d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ebe565b565b6001600160a01b03811661201b5760405162461bcd60e51b815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e6167657220616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610ebe565b609780546001600160a01b038381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa0910160405180910390a15050565b6097546040517f18c5e8ab0000000000000000000000000000000000000000000000000000000081526000916001600160a01b0316906318c5e8ab906120e090339086906004016148f2565b602060405180830381865afa1580156120fd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061212191906145db565b905080612160573330836040517f4a3fa293000000000000000000000000000000000000000000000000000000008152600401610ebe93929190614914565b5050565b60408051808201909152600080825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff1681526020016121c7896130ed565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b81526004016121fc9291906147b9565b6040805180830381865afa158015612218573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061223c9190614940565b90505b949350505050565b600081815260cb602052604081206001600282015460ff166005811115612270576122706140e4565b1461227e5750600092915050565b6040517f37759b9a000000000000000000000000000000000000000000000000000000008152600481018490526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906337759b9a90602401600060405180830381865afa1580156122ff573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526123279190810190614474565b6080810151600090815260ca6020526040902080549192509060ff1661235257506000949350505050565b426202a3008360e001516123669190614627565b101561237757506000949350505050565b50506001015442101592915050565b6001600160a01b038116610984576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600054610100900460ff166124435760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610ebe565b61244b61316a565b610984816131ef565b600054610100900460ff166124d15760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610ebe565b6109848161326c565b6080810151600090815260cd60209081526040808320818501516001600160a01b0316845290915281205490819003612511575050565b600081815260cb602052604090206001600282015460ff16600581111561253a5761253a6140e4565b1461254457505050565b6040517f37759b9a000000000000000000000000000000000000000000000000000000008152600481018390526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906337759b9a90602401600060405180830381865afa1580156125c5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526125ed9190810190614474565b90506000426202a3008360e001516126059190614627565b109050801561264f5760028301805460ff1916600417905560405184907f204a9e3c713ee1071c1d59b7caa015e0d7a583ebde2caf4cf34bb9d5d626cabb90600090a25050505050565b6040517fedba5e0700000000000000000000000000000000000000000000000000000000815260048101859052602401610ebe565b602083810151600090815260cb909152604081206002015460ff1660058111156126b0576126b06140e4565b146126e7576040517fdefe2c2500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815460ff16612722576040517fdea2a21200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166334496b5a856060015186604001516040518363ffffffff1660e01b815260040161277a92919061495c565b602060405180830381865afa158015612797573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127bb9190614987565b9050836020015181146127fa576040517fc2a16f1400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60e08401514290600090612812906202a30090614627565b90508181101561284e576040517fc2a16f1400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600285015461285d9083614627565b811015612896576040517f31289af400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b83611253576080860151600090815260cc60209081526040808320818a01516001600160a01b0316845282528083205480845260cb9092529091206003015480158015906128f25750838760010154826128f09190614627565b115b15612929576040517f53f7a6ee00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050505050565b602083015160008261295357604084015161294e9042614627565b612955565b425b6040805160a081018252848152602080820184815260018385018181526000606086018190526080860181905289815260cb90945294909220835181559051818301559251600284018054959650929490929160ff19909116908360058111156129c1576129c16140e4565b02179055506060828101516002830180547fffffffffffffffffffffff0000000000000000000000000000000000000000ff166101006001600160a01b039384160217905560809384015160039093019290925591870151600090815260cd60209081526040808320818b0180518616855292529182902086905551928801519051929091169184917f1a61d230e613ab7202720dc7c24765ae456c59f31401ae23e29a5397829af5ec91612a779186916149a0565b60405180910390a35050505050565b60008251600014612a975782612ae8565b612ae8620f42406000612ae1604080517e03000000000000000000000000000000000000000000000000000000000000602082015281516002818303018152602290910190915290565b91906132f2565b9050612b07604051806040016040528060008152602001600081525090565b82600003612b2257612b1b85836000610a5f565b9050612b38565b5060408051808201909152828152600060208201525b80516101408601516040517f05687c1900000000000000000000000000000000000000000000000000000000815230926305687c19929091612b8591908a908890889088906004016149b9565b6000604051808303818588803b158015612b9e57600080fd5b505af1158015612bb2573d6000803e3d6000fd5b5050505060208681018051600090815260cb8352604080822060028101805461010033027fffffffffffffffffffffff00000000000000000000000000000000000000000090911617600517905542600382015560808b0151935184845260cc8652828420838d0180516001600160a01b039081168752919097529383902055935160608b0151915194955092939290911691612c4f919061463a565b604051809103902088610140015163ffffffff167f7e5ab31b9063f36db8513c1ec8170e50aaad7cff84901c17758cc09ba40f38a38a602001516040516118f791815260200190565b602082810151600081815260cb83526040808220600280820180547fffffffffffffffffffffff00000000000000000000000000000000000000000016336101000217909117905542600382018190556080880151845260cc8652828420838901516001600160a01b03908116865296529282902084905590517fbf63783900000000000000000000000000000000000000000000000000000000815292939192909185169063bf63783990612d52908890600401614394565b600060405180830381600087803b158015612d6c57600080fd5b505af1158015612d80573d6000803e3d6000fd5b50506040518592507f88dcce5c07c8daf9e03fa70df64b98c8598df462a55510b7a987dadbf84db1099150600090a25050505050565b61098481613373565b612dc7611f43565b606580546001600160a01b0383167fffffffffffffffffffffffff00000000000000000000000000000000000000009091168117909155612e106033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b805460ff16612e83576040517fdea2a21200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600284015460ff166005811115612e9e57612e9e6140e4565b03612ed5576040517f9c58a61900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600284015460ff166005811115612ef057612ef06140e4565b14612f27576040517fdefe2c2500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b426202a3008360e00151612f3b9190614627565b1015612f73576040517fc2a16f1400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8260010154421015610f78576040517f05f5f49800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000813414612fee576040517f9f704120000000000000000000000000000000000000000000000000000000008152346004820152602401610ebe565b5090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015613052573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130769190614a1d565b90506001600160a01b0381166130b8576040517f5373352a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6121606001600160a01b038216337f0000000000000000000000000000000000000000000000000000000000000000856133a4565b63ffffffff811660009081527f72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f9006020819052604082205480613163576040517ff6ff4fb700000000000000000000000000000000000000000000000000000000815263ffffffff85166004820152602401610ebe565b9392505050565b600054610100900460ff166131e75760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610ebe565b611f9d61342c565b600054610100900460ff1661097b5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610ebe565b600054610100900460ff166132e95760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610ebe565b610984816134b2565b606083600361330282600061356f565b61ffff161461334f5761331681600061356f565b6040517f3a51740d00000000000000000000000000000000000000000000000000000000815261ffff9091166004820152602401610ebe565b600061335b85856135d5565b905061336986600183613686565b9695505050505050565b606580547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055610984816136f1565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052611e3290859061375b565b600054610100900460ff166134a95760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610ebe565b611f9d33612db6565b600054610100900460ff1661352f5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610ebe565b6001600160a01b0381166119f7576040517fb586360400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061357c826002614627565b835110156135cc5760405162461bcd60e51b815260206004820152601460248201527f746f55696e7431365f6f75744f66426f756e64730000000000000000000000006044820152606401610ebe565b50016002015190565b60606fffffffffffffffffffffffffffffffff82161561363e57604080517fffffffffffffffffffffffffffffffff00000000000000000000000000000000608086811b8216602084015285901b16603082015201604051602081830303815290604052613163565b6040517fffffffffffffffffffffffffffffffff00000000000000000000000000000000608085901b1660208201526030016040516020818303038152906040529392505050565b606083600361369682600061356f565b61ffff16146136aa5761331681600061356f565b8460016136b78551613843565b6136c2906001614a3a565b86866040516020016136d8959493929190614a5c565b6040516020818303038152906040529150509392505050565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60006137b0826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166138bd9092919063ffffffff16565b90508051600014806137d15750808060200190518101906137d191906145db565b610f785760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610ebe565b600061ffff821115612fee5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201527f36206269747300000000000000000000000000000000000000000000000000006064820152608401610ebe565b606061223f848460008585600080866001600160a01b031685876040516138e4919061463a565b60006040518083038185875af1925050503d8060008114613921576040519150601f19603f3d011682016040523d82523d6000602084013e613926565b606091505b5091509150611f3887838387606083156139a157825160000361399a576001600160a01b0385163b61399a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610ebe565b508161223f565b61223f83838151156139b65781518083602001fd5b8060405162461bcd60e51b8152600401610ebe9190614af5565b604051806060016040528060008019168152602001600067ffffffffffffffff168152602001613a13604051806040016040528060008152602001600081525090565b905290565b63ffffffff8116811461098457600080fd5b8035613a3581613a18565b919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610180810167ffffffffffffffff81118282101715613a8d57613a8d613a3a565b60405290565b6040805190810167ffffffffffffffff81118282101715613a8d57613a8d613a3a565b604051601f8201601f1916810167ffffffffffffffff81118282101715613adf57613adf613a3a565b604052919050565b600067ffffffffffffffff821115613b0157613b01613a3a565b50601f01601f191660200190565b600082601f830112613b2057600080fd5b8135613b33613b2e82613ae7565b613ab6565b818152846020838601011115613b4857600080fd5b816020850160208301376000918101602001919091529392505050565b6001600160a01b038116811461098457600080fd5b8035613a3581613b65565b6bffffffffffffffffffffffff8116811461098457600080fd5b8035613a3581613b85565b60006101808284031215613bbd57600080fd5b613bc5613a69565b9050813567ffffffffffffffff80821115613bdf57600080fd5b613beb85838601613b0f565b835260208401356020840152613c0360408501613b7a565b60408401526060840135915080821115613c1c57600080fd5b613c2885838601613b0f565b60608401526080840135608084015260a0840135915080821115613c4b57600080fd5b613c5785838601613b0f565b60a084015260c0840135915080821115613c7057600080fd5b613c7c85838601613b0f565b60c084015260e084013560e08401526101009150613c9b828501613b7a565b828401526101209150613caf828501613b9f565b828401526101409150613cc3828501613a2a565b8284015261016091508184013581811115613cdd57600080fd5b613ce986828701613b0f565b8385015250505092915050565b600080600080600085870360c0811215613d0f57600080fd5b8635613d1a81613a18565b9550602087013567ffffffffffffffff80821115613d3757600080fd5b613d438a838b01613baa565b96506040890135915080821115613d5957600080fd5b50613d6689828a01613b0f565b94505060407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa082011215613d9957600080fd5b50613da2613a93565b60608701358152608087013560208201529150613dc160a08701613b7a565b90509295509295909350565b600060208284031215613ddf57600080fd5b813561316381613b65565b801515811461098457600080fd5b600060208284031215613e0a57600080fd5b813561316381613dea565b600080600060608486031215613e2a57600080fd5b833567ffffffffffffffff80821115613e4257600080fd5b613e4e87838801613baa565b94506020860135915080821115613e6457600080fd5b50613e7186828701613b0f565b9250506040840135613e8281613dea565b809150509250925092565b815181526020808301519082015260408101610b3e565b60008083601f840112613eb657600080fd5b50813567ffffffffffffffff811115613ece57600080fd5b602083019150836020828501011115613ee657600080fd5b9250929050565b60008060208385031215613f0057600080fd5b823567ffffffffffffffff811115613f1757600080fd5b613f2385828601613ea4565b90969095509350505050565b600060208284031215613f4157600080fd5b5035919050565b60008060408385031215613f5b57600080fd5b8235613f6681613a18565b946020939093013593505050565b60008060408385031215613f8757600080fd5b8235613f9281613b65565b91506020830135613fa281613dea565b809150509250929050565b600080600060408486031215613fc257600080fd5b833567ffffffffffffffff811115613fd957600080fd5b613fe586828701613ea4565b9094509250506020840135613e8281613dea565b6000806040838503121561400c57600080fd5b823561401781613b65565b91506020830135613fa281613b65565b6000806040838503121561403a57600080fd5b823591506020830135613fa281613b65565b60008060006040848603121561406157600080fd5b833567ffffffffffffffff81111561407857600080fd5b61408486828701613ea4565b9094509250506020840135613e8281613b65565b6000806000604084860312156140ad57600080fd5b83359250602084013567ffffffffffffffff8111156140cb57600080fd5b6140d786828701613ea4565b9497909650939450505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8581526020810185905260a0810160068510614158577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8460408301526001600160a01b03841660608301528260808301529695505050505050565b60006020828403121561418f57600080fd5b813561316381613a18565b6000806000806000608086880312156141b257600080fd5b853567ffffffffffffffff8111156141c957600080fd5b6141d588828901613ea4565b90965094505060208601356141e981613b65565b94979396509394604081013594506060013592915050565b6020808252825182820181905260009190848201906040850190845b818110156142395783518352928401929184019160010161421d565b50909695505050505050565b60005b83811015614260578181015183820152602001614248565b50506000910152565b60008151808452614281816020860160208601614245565b601f01601f19169290920160200192915050565b600061018082518185526142ab82860182614269565b9150506020830151602085015260408301516142d260408601826001600160a01b03169052565b50606083015184820360608601526142ea8282614269565b9150506080830151608085015260a083015184820360a086015261430e8282614269565b91505060c083015184820360c08601526143288282614269565b91505060e083015160e085015261010080840151614350828701826001600160a01b03169052565b5050610120838101516bffffffffffffffffffffffff16908501526101408084015163ffffffff169085015261016080840151858303828701526133698382614269565b6020815260006131636020830184614295565b8183823760009101908152919050565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b6060815260006143f66060830186886143b7565b93151560208301525090151560409091015292915050565b600082601f83011261441f57600080fd5b815161442d613b2e82613ae7565b81815284602083860101111561444257600080fd5b61223f826020830160208701614245565b8051613a3581613b65565b8051613a3581613b85565b8051613a3581613a18565b60006020828403121561448657600080fd5b815167ffffffffffffffff8082111561449e57600080fd5b9083019061018082860312156144b357600080fd5b6144bb613a69565b8251828111156144ca57600080fd5b6144d68782860161440e565b825250602083015160208201526144ef60408401614453565b604082015260608301518281111561450657600080fd5b6145128782860161440e565b6060830152506080830151608082015260a08301518281111561453457600080fd5b6145408782860161440e565b60a08301525060c08301518281111561455857600080fd5b6145648782860161440e565b60c08301525060e083015160e0820152610100614582818501614453565b9082015261012061459484820161445e565b908201526101406145a6848201614469565b9082015261016083810151838111156145be57600080fd5b6145ca8882870161440e565b918301919091525095945050505050565b6000602082840312156145ed57600080fd5b815161316381613dea565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610b3e57610b3e6145f8565b6000825161464c818460208701614245565b9190910192915050565b60e08152600061466a60e083018a8c6143b7565b602083019890985250604081019590955260608501939093526080840191909152151560a0830152151560c09091015292915050565b600060208083850312156146b357600080fd5b825167ffffffffffffffff808211156146cb57600080fd5b818501915085601f8301126146df57600080fd5b8151818111156146f1576146f1613a3a565b8060051b9150614702848301613ab6565b818152918301840191848101908884111561471c57600080fd5b938501935b83851015614746578451925061473683613b65565b8282529385019390850190614721565b98975050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036147b2576147b26145f8565b5060010190565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a060808401526147ef60e0840182614269565b905060608501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08483030160a085015261482a8282614269565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b60006040828403121561486257600080fd5b61486a613a93565b9050815181526020820151602082015292915050565b60006080828403121561489257600080fd5b6040516060810167ffffffffffffffff82821081831117156148b6576148b6613a3a565b81604052845183526020850151915080821682146148d357600080fd5b5060208201526148e68460408501614850565b60408201529392505050565b6001600160a01b038316815260406020820152600061223f6040830184614269565b60006001600160a01b0380861683528085166020840152506060604083015261223c6060830184614269565b60006040828403121561495257600080fd5b6131638383614850565b60408152600061496f6040830185614269565b90506001600160a01b03831660208301529392505050565b60006020828403121561499957600080fd5b5051919050565b82815260406020820152600061223f6040830184614269565b63ffffffff8616815260c0602082015260006149d860c0830187614295565b82810360408401526149ea8187614269565b85516060850152602086015160808501529150614a049050565b6001600160a01b03831660a08301529695505050505050565b600060208284031215614a2f57600080fd5b815161316381613b65565b61ffff818116838216019080821115614a5557614a556145f8565b5092915050565b60008651614a6e818460208b01614245565b80830190507fff00000000000000000000000000000000000000000000000000000000000000808860f81b1682527fffff0000000000000000000000000000000000000000000000000000000000008760f01b166001830152808660f81b166003830152508351614ae6816004840160208801614245565b01600401979650505050505050565b602081526000613163602083018461426956fe73657457686974656c69737465644578656375746f7228616464726573732c626f6f6c297365745269736b506172616d65746572436f6e66696728737472696e672c616464726573732c75696e743235362c75696e7432353629a26469706673582212209ddf05a66c58460faddfdee8edd07fb29417d9bc42218aadd277dc6e5bce9fac64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x289 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 GT PUSH2 0x153 JUMPI DUP1 PUSH4 0xBB0B6A53 GT PUSH2 0xCB JUMPI DUP1 PUSH4 0xF2FDE38B GT PUSH2 0x7F JUMPI DUP1 PUSH4 0xF75875AD GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xF75875AD EQ PUSH2 0x890 JUMPI DUP1 PUSH4 0xF8CE6AC2 EQ PUSH2 0x8B0 JUMPI DUP1 PUSH4 0xFE2B3502 EQ PUSH2 0x8D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x843 JUMPI DUP1 PUSH4 0xF63106E4 EQ PUSH2 0x863 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xC3E10DEB GT PUSH2 0xB0 JUMPI DUP1 PUSH4 0xC3E10DEB EQ PUSH2 0x7E5 JUMPI DUP1 PUSH4 0xCA5EB5E1 EQ PUSH2 0x805 JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x825 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xBB0B6A53 EQ PUSH2 0x773 JUMPI DUP1 PUSH4 0xC2A23C84 EQ PUSH2 0x7C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x122 JUMPI DUP1 PUSH4 0xAF9E0FD3 GT PUSH2 0x107 JUMPI DUP1 PUSH4 0xAF9E0FD3 EQ PUSH2 0x674 JUMPI DUP1 PUSH4 0xB4A0BDF3 EQ PUSH2 0x6EE JUMPI DUP1 PUSH4 0xB4C2F727 EQ PUSH2 0x70C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x641 JUMPI DUP1 PUSH4 0xAB803A76 EQ PUSH2 0x65F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x715018A6 EQ PUSH2 0x5D0 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x5E5 JUMPI DUP1 PUSH4 0x7DD8F522 EQ PUSH2 0x5FA JUMPI DUP1 PUSH4 0x85A7602F EQ PUSH2 0x62E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3AED7F31 GT PUSH2 0x201 JUMPI DUP1 PUSH4 0x595BD377 GT PUSH2 0x1B5 JUMPI DUP1 PUSH4 0x5E280F11 GT PUSH2 0x19A JUMPI DUP1 PUSH4 0x5E280F11 EQ PUSH2 0x52C JUMPI DUP1 PUSH4 0x62656E63 EQ PUSH2 0x578 JUMPI DUP1 PUSH4 0x65BD691C EQ PUSH2 0x598 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x595BD377 EQ PUSH2 0x4F2 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x512 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x485CC955 GT PUSH2 0x1E6 JUMPI DUP1 PUSH4 0x485CC955 EQ PUSH2 0x451 JUMPI DUP1 PUSH4 0x4C213449 EQ PUSH2 0x471 JUMPI DUP1 PUSH4 0x513602E8 EQ PUSH2 0x4BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3AED7F31 EQ PUSH2 0x411 JUMPI DUP1 PUSH4 0x438653FE EQ PUSH2 0x431 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1D1C3620 GT PUSH2 0x258 JUMPI DUP1 PUSH4 0x28207141 GT PUSH2 0x23D JUMPI DUP1 PUSH4 0x28207141 EQ PUSH2 0x363 JUMPI DUP1 PUSH4 0x33BDE2CA EQ PUSH2 0x3C1 JUMPI DUP1 PUSH4 0x3400288B EQ PUSH2 0x3F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1D1C3620 EQ PUSH2 0x311 JUMPI DUP1 PUSH4 0x233DD0DA EQ PUSH2 0x33E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5687C19 EQ PUSH2 0x295 JUMPI DUP1 PUSH4 0xE32CB86 EQ PUSH2 0x2AA JUMPI DUP1 PUSH4 0x16C38B3C EQ PUSH2 0x2CA JUMPI DUP1 PUSH4 0x17442B70 EQ PUSH2 0x2EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0x290 JUMPI STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2A8 PUSH2 0x2A3 CALLDATASIZE PUSH1 0x4 PUSH2 0x3CF6 JUMP JUMPDEST PUSH2 0x900 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A8 PUSH2 0x2C5 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DCD JUMP JUMPDEST PUSH2 0x973 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A8 PUSH2 0x2E5 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DF8 JUMP JUMPDEST PUSH2 0x987 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x331 PUSH2 0x32C CALLDATASIZE PUSH1 0x4 PUSH2 0x3E15 JUMP JUMPDEST PUSH2 0xA5F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x308 SWAP2 SWAP1 PUSH2 0x3E8D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x34A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x355 PUSH3 0x2A300 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x308 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x36F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x383 PUSH2 0x37E CALLDATASIZE PUSH1 0x4 PUSH2 0x3EED JUMP JUMPDEST PUSH2 0xAB1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x308 SWAP2 SWAP1 DUP2 MLOAD ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 DUP1 DUP4 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 SWAP2 DUP3 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3CD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E1 PUSH2 0x3DC CALLDATASIZE PUSH1 0x4 PUSH2 0x3F2F JUMP JUMPDEST PUSH2 0xB44 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x308 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A8 PUSH2 0x40C CALLDATASIZE PUSH1 0x4 PUSH2 0x3F48 JUMP JUMPDEST PUSH2 0xB4F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x41D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A8 PUSH2 0x42C CALLDATASIZE PUSH1 0x4 PUSH2 0x3F74 JUMP JUMPDEST PUSH2 0xBCE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x43D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A8 PUSH2 0x44C CALLDATASIZE PUSH1 0x4 PUSH2 0x3FAD JUMP JUMPDEST PUSH2 0xCB7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x45D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A8 PUSH2 0x46C CALLDATASIZE PUSH1 0x4 PUSH2 0x3FF9 JUMP JUMPDEST PUSH2 0xE16 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x47D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A5 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x308 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x355 PUSH2 0x4D5 CALLDATASIZE PUSH1 0x4 PUSH2 0x4027 JUMP JUMPDEST PUSH1 0xCC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x355 PUSH2 0x50D CALLDATASIZE PUSH1 0x4 PUSH2 0x404C JUMP JUMPDEST PUSH2 0xF7D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xC9 SLOAD PUSH2 0x3E1 SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x538 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x560 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x308 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x584 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A8 PUSH2 0x593 CALLDATASIZE PUSH1 0x4 PUSH2 0x3F2F JUMP JUMPDEST PUSH2 0xFC4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x355 PUSH2 0x5B3 CALLDATASIZE PUSH1 0x4 PUSH2 0x4027 JUMP JUMPDEST PUSH1 0xCD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A8 PUSH2 0x125B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A8 PUSH2 0x128D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x606 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x560 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x63C CALLDATASIZE PUSH1 0x4 PUSH2 0x4098 JUMP JUMPDEST PUSH2 0x1318 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x64D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x560 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x66B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A8 PUSH2 0x1572 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x680 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6C3 PUSH2 0x68F CALLDATASIZE PUSH1 0x4 PUSH2 0x3F2F JUMP JUMPDEST PUSH1 0xCA PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 SWAP1 SWAP4 ADD SLOAD PUSH1 0xFF SWAP1 SWAP3 AND SWAP3 SWAP1 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP5 ISZERO ISZERO DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP4 SWAP1 SWAP4 MSTORE SWAP2 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD PUSH2 0x308 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x97 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x560 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x718 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x762 PUSH2 0x727 CALLDATASIZE PUSH1 0x4 PUSH2 0x3F2F JUMP JUMPDEST PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 SWAP1 SWAP4 ADD SLOAD SWAP2 SWAP3 SWAP1 SWAP2 PUSH1 0xFF DUP3 AND SWAP2 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x308 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4113 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x77F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x355 PUSH2 0x78E CALLDATASIZE PUSH1 0x4 PUSH2 0x417D JUMP JUMPDEST PUSH4 0xFFFFFFFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH32 0x72AB1BC1039B79DC4724FFCA13DE82C96834302D3C7E0D4252232D4B2DD8F900 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A8 PUSH2 0x7E0 CALLDATASIZE PUSH1 0x4 PUSH2 0x419A JUMP JUMPDEST PUSH2 0x1671 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A8 PUSH2 0x800 CALLDATASIZE PUSH1 0x4 PUSH2 0x3F2F JUMP JUMPDEST PUSH2 0x1908 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x811 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A8 PUSH2 0x820 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DCD JUMP JUMPDEST PUSH2 0x19EF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x831 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x65 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x560 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x84F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A8 PUSH2 0x85E CALLDATASIZE PUSH1 0x4 PUSH2 0x3DCD JUMP JUMPDEST PUSH2 0x1A8E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x86F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x883 PUSH2 0x87E CALLDATASIZE PUSH1 0x4 PUSH2 0x404C JUMP JUMPDEST PUSH2 0x1A9F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x308 SWAP2 SWAP1 PUSH2 0x4201 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x89C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x355 PUSH2 0x8AB CALLDATASIZE PUSH1 0x4 PUSH2 0x404C JUMP JUMPDEST PUSH2 0x1CB1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A8 PUSH2 0x8CB CALLDATASIZE PUSH1 0x4 PUSH2 0x3F2F JUMP JUMPDEST PUSH2 0x1CF8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E1 PUSH2 0x8EB CALLDATASIZE PUSH1 0x4 PUSH2 0x3DCD JUMP JUMPDEST PUSH1 0xCE PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0x939 JUMPI PUSH1 0x40 MLOAD PUSH32 0x22D1FC8000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x94C SWAP2 SWAP1 PUSH2 0x4394 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0x96A DUP7 DUP3 DUP7 DUP7 DUP7 PUSH2 0x1E38 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x97B PUSH2 0x1F43 JUMP JUMPDEST PUSH2 0x984 DUP2 PUSH2 0x1F9F JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x9C5 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xF DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x73657450617573656428626F6F6C290000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x2094 JUMP JUMPDEST PUSH1 0xC9 SLOAD DUP2 ISZERO ISZERO PUSH1 0xFF SWAP1 SWAP2 AND ISZERO ISZERO SUB PUSH2 0xA09 JUMPI PUSH1 0x40 MLOAD PUSH32 0x3F855E3400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xC9 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND ISZERO ISZERO DUP3 MSTORE DUP3 ISZERO ISZERO PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0x91691E0294D292CAC1A26C64DD4130C61D6690EDEAC415BC1FB307D64D3732A1 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0xC9 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xA86 SWAP2 SWAP1 PUSH2 0x4394 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0xAA8 DUP6 PUSH2 0x140 ADD MLOAD DUP3 DUP7 DUP7 PUSH2 0x2164 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xAE7 SWAP3 SWAP2 SWAP1 PUSH2 0x43A7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCA PUSH1 0x20 SWAP1 DUP2 MSTORE SWAP1 DUP3 SWAP1 KECCAK256 PUSH1 0x80 DUP5 ADD DUP4 MSTORE DUP1 SLOAD PUSH1 0xFF AND ISZERO ISZERO DUP5 MSTORE PUSH1 0x1 DUP2 ADD SLOAD SWAP2 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 DUP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x60 DUP3 ADD MSTORE SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB3E DUP3 PUSH2 0x2247 JUMP JUMPDEST PUSH2 0xB57 PUSH2 0x1F43 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH32 0x72AB1BC1039B79DC4724FFCA13DE82C96834302D3C7E0D4252232D4B2DD8F900 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP3 DUP4 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP3 MLOAD SWAP4 DUP5 MSTORE DUP4 ADD DUP5 SWAP1 MSTORE SWAP2 PUSH32 0x238399D427B947898EDB290F5FF0F9109849B1C3BA196A42E35F00C50A54B98B SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0xBEF PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x4B09 PUSH1 0x24 SWAP2 CODECOPY PUSH2 0x2094 JUMP JUMPDEST PUSH2 0xBF8 DUP3 PUSH2 0x2386 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 ISZERO ISZERO DUP2 ISZERO ISZERO SUB PUSH2 0xC51 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8EEE990D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xCE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP7 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP3 MLOAD DUP6 ISZERO ISZERO DUP2 MSTORE SWAP2 DUP3 ADD MSTORE PUSH32 0x10C0E7519C24C8E42DBD4D2405E9976E893C51DF86614145B2758289F197EC3B SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH2 0xCF5 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1C DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x736574436F6E66696741637469766528737472696E672C626F6F6C2900000000 DUP2 MSTORE POP PUSH2 0x2094 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xD07 SWAP3 SWAP2 SWAP1 PUSH2 0x43A7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xCA PUSH1 0x20 MSTORE SWAP2 SWAP1 SWAP2 KECCAK256 PUSH1 0x3 ADD SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xD66 JUMPI PUSH1 0x40 MLOAD PUSH32 0x80919D7B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xCA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP3 ISZERO ISZERO DUP2 ISZERO ISZERO SUB PUSH2 0xDB5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x1E852DC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xCA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP6 ISZERO ISZERO OR SWAP1 SSTORE MLOAD DUP3 SWAP1 PUSH32 0xCBA816B2FC5CD49700523A79B6E6C7DDA19292FBB932CCA77F7BCCB1E5004792 SWAP1 PUSH2 0xE07 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP7 SWAP1 DUP10 SWAP1 PUSH2 0x43E2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0xE36 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0xE50 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE50 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0xEC7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x647920696E697469616C697A6564000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0xF07 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0xF10 DUP4 PUSH2 0x23C6 JUMP JUMPDEST PUSH2 0xF19 DUP3 PUSH2 0x2454 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xF78 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH2 0xBC1 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0xF90 SWAP3 SWAP2 SWAP1 PUSH2 0x43A7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCD PUSH1 0x20 SWAP1 DUP2 MSTORE DUP3 DUP3 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP4 MSTORE SWAP1 MSTORE KECCAK256 SLOAD SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xC9 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x1001 JUMPI PUSH1 0x40 MLOAD PUSH32 0xECED32BC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x37759B9A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x37759B9A SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1082 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x10AA SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x4474 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x140 DUP4 ADD MLOAD SWAP3 SWAP4 POP SWAP2 PUSH4 0xFFFFFFFF AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x110C JUMPI POP PUSH32 0x0 PUSH4 0xFFFFFFFF AND DUP4 PUSH2 0x140 ADD MLOAD PUSH4 0xFFFFFFFF AND EQ ISZERO JUMPDEST SWAP1 POP DUP1 PUSH2 0x111C JUMPI PUSH2 0x111C DUP4 PUSH2 0x24DA JUMP JUMPDEST PUSH2 0x1127 DUP4 DUP4 DUP4 PUSH2 0x2684 JUMP JUMPDEST PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 DUP3 PUSH2 0x11C7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x42B7CFBD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0x42B7CFBD SWAP1 PUSH2 0x1181 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x4394 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x119E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x11C2 SWAP2 SWAP1 PUSH2 0x45DB JUMP JUMPDEST PUSH2 0x11CA JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE DUP7 SLOAD PUSH1 0xFF AND ISZERO ISZERO DUP2 MSTORE PUSH1 0x1 DUP8 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x2 DUP8 ADD SLOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x3 DUP7 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x60 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH2 0x121D SWAP1 DUP7 SWAP1 DUP4 DUP1 PUSH2 0x1218 JUMPI POP DUP6 JUMPDEST PUSH2 0x2933 JUMP JUMPDEST DUP3 ISZERO PUSH2 0x1243 JUMPI PUSH2 0x123E DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH1 0x0 PUSH2 0x2A86 JUMP JUMPDEST PUSH2 0x1253 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1253 JUMPI PUSH2 0x1253 DUP6 DUP4 PUSH2 0x2C98 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x96C553EB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x65 SLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0x130F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C6532537465703A2063616C6C6572206973206E6F742074686520 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E6577206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xEBE JUMP JUMPDEST PUSH2 0x984 DUP2 PUSH2 0x2DB6 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1361 JUMPI PUSH1 0x40 MLOAD PUSH32 0x341F61EC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x5 PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0xFF AND PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x138A JUMPI PUSH2 0x138A PUSH2 0x40E4 JUMP JUMPDEST EQ PUSH2 0x13C1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x9AAFAE6500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x37759B9A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x37759B9A SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1442 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x146A SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x4474 JUMP JUMPDEST SWAP1 POP TIMESTAMP PUSH3 0x2A300 DUP3 PUSH1 0xE0 ADD MLOAD PUSH2 0x1480 SWAP2 SWAP1 PUSH2 0x4627 JUMP JUMPDEST LT ISZERO PUSH2 0x14B8 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC2A16F1400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14FA DUP2 DUP6 DUP6 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP CALLVALUE SWAP3 POP PUSH2 0x2A86 SWAP2 POP POP JUMP JUMPDEST DUP1 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x151A SWAP2 SWAP1 PUSH2 0x463A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP3 PUSH2 0x140 ADD MLOAD PUSH4 0xFFFFFFFF AND PUSH32 0x315A04917A98179E57C69A0B2808641E45E218E5402D9D3C7DA753EA76C70322 DUP5 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x1563 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x157A PUSH2 0x1F43 JUMP JUMPDEST SELFBALANCE DUP1 ISZERO PUSH2 0x984 JUMPI PUSH1 0x0 PUSH2 0x1595 PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x15DF JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x15E4 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x161F JUMPI PUSH1 0x40 MLOAD PUSH32 0x90B8EC1800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xA1DD7C5BDC40ECBDEFC1BFDA22F1DFB98C8FC3E3940AAB73AD7FBA37720D0A0 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1665 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH2 0x1692 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x36 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x4B2D PUSH1 0x36 SWAP2 CODECOPY PUSH2 0x2094 JUMP JUMPDEST PUSH2 0x169B DUP4 PUSH2 0x2386 JUMP JUMPDEST DUP4 ISZERO DUP1 PUSH2 0x16A8 JUMPI POP PUSH1 0x40 DUP5 GT JUMPDEST ISZERO PUSH2 0x16DE JUMPI PUSH1 0x40 MLOAD PUSH31 0x64280000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x0 SUB PUSH2 0x1718 JUMPI PUSH1 0x40 MLOAD PUSH32 0xF6EA4E0600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x2A300 DUP2 LT PUSH2 0x1754 JUMPI PUSH1 0x40 MLOAD PUSH32 0xF8D10E8200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x1766 SWAP3 SWAP2 SWAP1 PUSH2 0x43A7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0xCA PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE POP PUSH1 0xCA PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SSTORE PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x3 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND MUL OR SWAP1 SSTORE POP SWAP1 POP POP DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0xED1DCF396500587DB779D729BCAFD22D1CC4827708623E27189EB6687A696244 DUP11 DUP11 DUP7 PUSH1 0x20 ADD MLOAD DUP11 DUP9 PUSH1 0x40 ADD MLOAD DUP12 DUP11 PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0x18F7 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4656 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1951 JUMPI PUSH1 0x40 MLOAD PUSH32 0x341F61EC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0xFF AND PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x197A JUMPI PUSH2 0x197A PUSH2 0x40E4 JUMP JUMPDEST EQ PUSH2 0x19B1 JUMPI PUSH1 0x40 MLOAD PUSH32 0xDEFE2C2500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x3 OR SWAP1 SSTORE PUSH1 0x40 MLOAD DUP3 SWAP1 PUSH32 0xA4273908B9362E571CACD5610879E3DFD7DDC7C9B3CE1D7EA7EA8B418691164 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH2 0x19F7 PUSH2 0x1F43 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xCA5EB5E100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH32 0x0 AND SWAP1 PUSH4 0xCA5EB5E1 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A73 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A87 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1A96 PUSH2 0x1F43 JUMP JUMPDEST PUSH2 0x984 DUP2 PUSH2 0x2DBF JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x1AB3 SWAP3 SWAP2 SWAP1 PUSH2 0x43A7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xB0772D0B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1AFD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1B25 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x46A0 JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP2 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B45 JUMPI PUSH2 0x1B45 PUSH2 0x3A3A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1B6E JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP1 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1C14 JUMPI PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0xCD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP7 MLOAD DUP3 SWAP1 DUP9 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x1BA1 JUMPI PUSH2 0x1BA1 PUSH2 0x4752 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP PUSH2 0x1BD5 DUP2 PUSH2 0x2247 JUMP JUMPDEST PUSH2 0x1BDF JUMPI POP PUSH2 0x1C0C JUMP JUMPDEST DUP1 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1BF2 JUMPI PUSH2 0x1BF2 PUSH2 0x4752 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE DUP3 PUSH2 0x1C07 DUP2 PUSH2 0x4781 JUMP JUMPDEST SWAP4 POP POP POP JUMPDEST PUSH1 0x1 ADD PUSH2 0x1B75 JUMP JUMPDEST POP DUP1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C2E JUMPI PUSH2 0x1C2E PUSH2 0x3A3A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1C57 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP6 POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1CA4 JUMPI DUP3 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x1C77 JUMPI PUSH2 0x1C77 PUSH2 0x4752 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP8 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1C91 JUMPI PUSH2 0x1C91 PUSH2 0x4752 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x1 ADD PUSH2 0x1C5D JUMP JUMPDEST POP POP POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x1CC4 SWAP3 SWAP2 SWAP1 PUSH2 0x43A7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCC PUSH1 0x20 SWAP1 DUP2 MSTORE DUP3 DUP3 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP4 MSTORE SWAP1 MSTORE KECCAK256 SLOAD SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1D41 JUMPI PUSH1 0x40 MLOAD PUSH32 0x341F61EC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH32 0x37759B9A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x37759B9A SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1DD0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1DF8 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x4474 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 SWAP2 POP PUSH2 0x1E19 DUP4 DUP4 DUP4 PUSH2 0x2E48 JUMP JUMPDEST PUSH1 0x3 DUP2 ADD SLOAD PUSH2 0x1E32 SWAP1 DUP4 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2C98 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x1E40 PUSH2 0x39D0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E4F DUP5 PUSH1 0x0 ADD MLOAD PUSH2 0x2FB1 JUMP JUMPDEST PUSH1 0x20 DUP6 ADD MLOAD SWAP1 SWAP2 POP ISZERO PUSH2 0x1E69 JUMPI PUSH2 0x1E69 DUP5 PUSH1 0x20 ADD MLOAD PUSH2 0x2FF2 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2637A450 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 DUP12 PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1EB9 DUP13 PUSH2 0x30ED JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP11 DUP2 MSTORE PUSH1 0x20 ADD DUP10 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP10 PUSH1 0x20 ADD MLOAD GT ISZERO ISZERO DUP2 MSTORE POP DUP7 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1EF5 SWAP3 SWAP2 SWAP1 PUSH2 0x47B9 JUMP JUMPDEST PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1F13 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1F38 SWAP2 SWAP1 PUSH2 0x4880 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1F9D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xEBE JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x201B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C696420616365737320636F6E74726F6C206D616E61676572206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xEBE JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 SWAP1 SWAP3 AND DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH32 0x66FD58E82F7B31A2A5C30E0888F3093EFE4E111B00CD2B0C31FE014601293AA0 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0x40 MLOAD PUSH32 0x18C5E8AB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x20E0 SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x48F2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x20FD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2121 SWAP2 SWAP1 PUSH2 0x45DB JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x2160 JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH32 0x4A3FA29300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEBE SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4914 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xDDC28C58 PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 DUP9 PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x21C7 DUP10 PUSH2 0x30ED JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP6 ISZERO ISZERO DUP2 MSTORE POP ADDRESS PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x21FC SWAP3 SWAP2 SWAP1 PUSH2 0x47B9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2218 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x223C SWAP2 SWAP1 PUSH2 0x4940 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x1 PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0xFF AND PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x2270 JUMPI PUSH2 0x2270 PUSH2 0x40E4 JUMP JUMPDEST EQ PUSH2 0x227E JUMPI POP PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x37759B9A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x37759B9A SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x22FF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x2327 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x4474 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD SWAP2 SWAP3 POP SWAP1 PUSH1 0xFF AND PUSH2 0x2352 JUMPI POP PUSH1 0x0 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST TIMESTAMP PUSH3 0x2A300 DUP4 PUSH1 0xE0 ADD MLOAD PUSH2 0x2366 SWAP2 SWAP1 PUSH2 0x4627 JUMP JUMPDEST LT ISZERO PUSH2 0x2377 JUMPI POP PUSH1 0x0 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST POP POP PUSH1 0x1 ADD SLOAD TIMESTAMP LT ISZERO SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x984 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8579BEFE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2443 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xEBE JUMP JUMPDEST PUSH2 0x244B PUSH2 0x316A JUMP JUMPDEST PUSH2 0x984 DUP2 PUSH2 0x31EF JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x24D1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xEBE JUMP JUMPDEST PUSH2 0x984 DUP2 PUSH2 0x326C JUMP JUMPDEST PUSH1 0x80 DUP2 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 DUP6 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD SWAP1 DUP2 SWAP1 SUB PUSH2 0x2511 JUMPI POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0xFF AND PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x253A JUMPI PUSH2 0x253A PUSH2 0x40E4 JUMP JUMPDEST EQ PUSH2 0x2544 JUMPI POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x37759B9A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x37759B9A SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x25C5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x25ED SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x4474 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 TIMESTAMP PUSH3 0x2A300 DUP4 PUSH1 0xE0 ADD MLOAD PUSH2 0x2605 SWAP2 SWAP1 PUSH2 0x4627 JUMP JUMPDEST LT SWAP1 POP DUP1 ISZERO PUSH2 0x264F JUMPI PUSH1 0x2 DUP4 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x4 OR SWAP1 SSTORE PUSH1 0x40 MLOAD DUP5 SWAP1 PUSH32 0x204A9E3C713EE1071C1D59B7CAA015E0D7A583EBDE2CAF4CF34BB9D5D626CABB SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xEDBA5E0700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0xEBE JUMP JUMPDEST PUSH1 0x20 DUP4 DUP2 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCB SWAP1 SWAP2 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH1 0xFF AND PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x26B0 JUMPI PUSH2 0x26B0 PUSH2 0x40E4 JUMP JUMPDEST EQ PUSH2 0x26E7 JUMPI PUSH1 0x40 MLOAD PUSH32 0xDEFE2C2500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SLOAD PUSH1 0xFF AND PUSH2 0x2722 JUMPI PUSH1 0x40 MLOAD PUSH32 0xDEA2A21200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x34496B5A DUP6 PUSH1 0x60 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x277A SWAP3 SWAP2 SWAP1 PUSH2 0x495C JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2797 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x27BB SWAP2 SWAP1 PUSH2 0x4987 JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x20 ADD MLOAD DUP2 EQ PUSH2 0x27FA JUMPI PUSH1 0x40 MLOAD PUSH32 0xC2A16F1400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xE0 DUP5 ADD MLOAD TIMESTAMP SWAP1 PUSH1 0x0 SWAP1 PUSH2 0x2812 SWAP1 PUSH3 0x2A300 SWAP1 PUSH2 0x4627 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x284E JUMPI PUSH1 0x40 MLOAD PUSH32 0xC2A16F1400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP6 ADD SLOAD PUSH2 0x285D SWAP1 DUP4 PUSH2 0x4627 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x2896 JUMPI PUSH1 0x40 MLOAD PUSH32 0x31289AF400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 PUSH2 0x1253 JUMPI PUSH1 0x80 DUP7 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 DUP11 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SLOAD DUP1 DUP5 MSTORE PUSH1 0xCB SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 PUSH1 0x3 ADD SLOAD DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x28F2 JUMPI POP DUP4 DUP8 PUSH1 0x1 ADD SLOAD DUP3 PUSH2 0x28F0 SWAP2 SWAP1 PUSH2 0x4627 JUMP JUMPDEST GT JUMPDEST ISZERO PUSH2 0x2929 JUMPI PUSH1 0x40 MLOAD PUSH32 0x53F7A6EE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x0 DUP3 PUSH2 0x2953 JUMPI PUSH1 0x40 DUP5 ADD MLOAD PUSH2 0x294E SWAP1 TIMESTAMP PUSH2 0x4627 JUMP JUMPDEST PUSH2 0x2955 JUMP JUMPDEST TIMESTAMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP5 DUP2 MSTORE PUSH1 0x1 DUP4 DUP6 ADD DUP2 DUP2 MSTORE PUSH1 0x0 PUSH1 0x60 DUP7 ADD DUP2 SWAP1 MSTORE PUSH1 0x80 DUP7 ADD DUP2 SWAP1 MSTORE DUP10 DUP2 MSTORE PUSH1 0xCB SWAP1 SWAP5 MSTORE SWAP5 SWAP1 SWAP3 KECCAK256 DUP4 MLOAD DUP2 SSTORE SWAP1 MLOAD DUP2 DUP4 ADD SSTORE SWAP3 MLOAD PUSH1 0x2 DUP5 ADD DUP1 SLOAD SWAP6 SWAP7 POP SWAP3 SWAP5 SWAP1 SWAP3 SWAP2 PUSH1 0xFF NOT SWAP1 SWAP2 AND SWAP1 DUP4 PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x29C1 JUMPI PUSH2 0x29C1 PUSH2 0x40E4 JUMP JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0x60 DUP3 DUP2 ADD MLOAD PUSH1 0x2 DUP4 ADD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FF AND PUSH2 0x100 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 DUP5 AND MUL OR SWAP1 SSTORE PUSH1 0x80 SWAP4 DUP5 ADD MLOAD PUSH1 0x3 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP3 SSTORE SWAP2 DUP8 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 DUP12 ADD DUP1 MLOAD DUP7 AND DUP6 MSTORE SWAP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP7 SWAP1 SSTORE MLOAD SWAP3 DUP9 ADD MLOAD SWAP1 MLOAD SWAP3 SWAP1 SWAP2 AND SWAP2 DUP5 SWAP2 PUSH32 0x1A61D230E613AB7202720DC7C24765AE456C59F31401AE23E29A5397829AF5EC SWAP2 PUSH2 0x2A77 SWAP2 DUP7 SWAP2 PUSH2 0x49A0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH1 0x0 EQ PUSH2 0x2A97 JUMPI DUP3 PUSH2 0x2AE8 JUMP JUMPDEST PUSH2 0x2AE8 PUSH3 0xF4240 PUSH1 0x0 PUSH2 0x2AE1 PUSH1 0x40 DUP1 MLOAD PUSH31 0x3000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE DUP2 MLOAD PUSH1 0x2 DUP2 DUP4 SUB ADD DUP2 MSTORE PUSH1 0x22 SWAP1 SWAP2 ADD SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x32F2 JUMP JUMPDEST SWAP1 POP PUSH2 0x2B07 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP3 PUSH1 0x0 SUB PUSH2 0x2B22 JUMPI PUSH2 0x2B1B DUP6 DUP4 PUSH1 0x0 PUSH2 0xA5F JUMP JUMPDEST SWAP1 POP PUSH2 0x2B38 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE DUP3 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE JUMPDEST DUP1 MLOAD PUSH2 0x140 DUP7 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0x5687C1900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS SWAP3 PUSH4 0x5687C19 SWAP3 SWAP1 SWAP2 PUSH2 0x2B85 SWAP2 SWAP1 DUP11 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x49B9 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2BB2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x20 DUP7 DUP2 ADD DUP1 MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCB DUP4 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH2 0x100 CALLER MUL PUSH32 0xFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000 SWAP1 SWAP2 AND OR PUSH1 0x5 OR SWAP1 SSTORE TIMESTAMP PUSH1 0x3 DUP3 ADD SSTORE PUSH1 0x80 DUP12 ADD MLOAD SWAP4 MLOAD DUP5 DUP5 MSTORE PUSH1 0xCC DUP7 MSTORE DUP3 DUP5 KECCAK256 DUP4 DUP14 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP8 MSTORE SWAP2 SWAP1 SWAP8 MSTORE SWAP4 DUP4 SWAP1 KECCAK256 SSTORE SWAP4 MLOAD PUSH1 0x60 DUP12 ADD MLOAD SWAP2 MLOAD SWAP5 SWAP6 POP SWAP3 SWAP4 SWAP3 SWAP1 SWAP2 AND SWAP2 PUSH2 0x2C4F SWAP2 SWAP1 PUSH2 0x463A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP9 PUSH2 0x140 ADD MLOAD PUSH4 0xFFFFFFFF AND PUSH32 0x7E5AB31B9063F36DB8513C1EC8170E50AAAD7CFF84901C17758CC09BA40F38A3 DUP11 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x18F7 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP3 DUP2 ADD MLOAD PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xCB DUP4 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x2 DUP1 DUP3 ADD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000 AND CALLER PUSH2 0x100 MUL OR SWAP1 SWAP2 OR SWAP1 SSTORE TIMESTAMP PUSH1 0x3 DUP3 ADD DUP2 SWAP1 SSTORE PUSH1 0x80 DUP9 ADD MLOAD DUP5 MSTORE PUSH1 0xCC DUP7 MSTORE DUP3 DUP5 KECCAK256 DUP4 DUP10 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP7 MSTORE SWAP7 MSTORE SWAP3 DUP3 SWAP1 KECCAK256 DUP5 SWAP1 SSTORE SWAP1 MLOAD PUSH32 0xBF63783900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP3 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 DUP6 AND SWAP1 PUSH4 0xBF637839 SWAP1 PUSH2 0x2D52 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x4394 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2D80 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD DUP6 SWAP3 POP PUSH32 0x88DCCE5C07C8DAF9E03FA70DF64B98C8598DF462A55510B7A987DADBF84DB109 SWAP2 POP PUSH1 0x0 SWAP1 LOG2 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x984 DUP2 PUSH2 0x3373 JUMP JUMPDEST PUSH2 0x2DC7 PUSH2 0x1F43 JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP1 SWAP2 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0x2E10 PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF AND PUSH2 0x2E83 JUMPI PUSH1 0x40 MLOAD PUSH32 0xDEA2A21200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP5 ADD SLOAD PUSH1 0xFF AND PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x2E9E JUMPI PUSH2 0x2E9E PUSH2 0x40E4 JUMP JUMPDEST SUB PUSH2 0x2ED5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x9C58A61900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP5 ADD SLOAD PUSH1 0xFF AND PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x2EF0 JUMPI PUSH2 0x2EF0 PUSH2 0x40E4 JUMP JUMPDEST EQ PUSH2 0x2F27 JUMPI PUSH1 0x40 MLOAD PUSH32 0xDEFE2C2500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST TIMESTAMP PUSH3 0x2A300 DUP4 PUSH1 0xE0 ADD MLOAD PUSH2 0x2F3B SWAP2 SWAP1 PUSH2 0x4627 JUMP JUMPDEST LT ISZERO PUSH2 0x2F73 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC2A16F1400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x1 ADD SLOAD TIMESTAMP LT ISZERO PUSH2 0xF78 JUMPI PUSH1 0x40 MLOAD PUSH32 0x5F5F49800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 CALLVALUE EQ PUSH2 0x2FEE JUMPI PUSH1 0x40 MLOAD PUSH32 0x9F70412000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLVALUE PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xEBE JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE4FE1D94 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3052 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3076 SWAP2 SWAP1 PUSH2 0x4A1D JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x30B8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x5373352A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2160 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND CALLER PUSH32 0x0 DUP6 PUSH2 0x33A4 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH32 0x72AB1BC1039B79DC4724FFCA13DE82C96834302D3C7E0D4252232D4B2DD8F900 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 KECCAK256 SLOAD DUP1 PUSH2 0x3163 JUMPI PUSH1 0x40 MLOAD PUSH32 0xF6FF4FB700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH4 0xFFFFFFFF DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xEBE JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x31E7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xEBE JUMP JUMPDEST PUSH2 0x1F9D PUSH2 0x342C JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x97B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xEBE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x32E9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xEBE JUMP JUMPDEST PUSH2 0x984 DUP2 PUSH2 0x34B2 JUMP JUMPDEST PUSH1 0x60 DUP4 PUSH1 0x3 PUSH2 0x3302 DUP3 PUSH1 0x0 PUSH2 0x356F JUMP JUMPDEST PUSH2 0xFFFF AND EQ PUSH2 0x334F JUMPI PUSH2 0x3316 DUP2 PUSH1 0x0 PUSH2 0x356F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x3A51740D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH2 0xFFFF SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xEBE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x335B DUP6 DUP6 PUSH2 0x35D5 JUMP JUMPDEST SWAP1 POP PUSH2 0x3369 DUP7 PUSH1 0x1 DUP4 PUSH2 0x3686 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND SWAP1 SSTORE PUSH2 0x984 DUP2 PUSH2 0x36F1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP5 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP1 DUP3 ADD DUP5 SWAP1 MSTORE DUP3 MLOAD DUP1 DUP4 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x23B872DD00000000000000000000000000000000000000000000000000000000 OR SWAP1 MSTORE PUSH2 0x1E32 SWAP1 DUP6 SWAP1 PUSH2 0x375B JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x34A9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xEBE JUMP JUMPDEST PUSH2 0x1F9D CALLER PUSH2 0x2DB6 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x352F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xEBE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x19F7 JUMPI PUSH1 0x40 MLOAD PUSH32 0xB586360400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x357C DUP3 PUSH1 0x2 PUSH2 0x4627 JUMP JUMPDEST DUP4 MLOAD LT ISZERO PUSH2 0x35CC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x746F55696E7431365F6F75744F66426F756E6473000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xEBE JUMP JUMPDEST POP ADD PUSH1 0x2 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND ISZERO PUSH2 0x363E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000000000000000 PUSH1 0x80 DUP7 DUP2 SHL DUP3 AND PUSH1 0x20 DUP5 ADD MSTORE DUP6 SWAP1 SHL AND PUSH1 0x30 DUP3 ADD MSTORE ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x3163 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000000000000000 PUSH1 0x80 DUP6 SWAP1 SHL AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x30 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 PUSH1 0x3 PUSH2 0x3696 DUP3 PUSH1 0x0 PUSH2 0x356F JUMP JUMPDEST PUSH2 0xFFFF AND EQ PUSH2 0x36AA JUMPI PUSH2 0x3316 DUP2 PUSH1 0x0 PUSH2 0x356F JUMP JUMPDEST DUP5 PUSH1 0x1 PUSH2 0x36B7 DUP6 MLOAD PUSH2 0x3843 JUMP JUMPDEST PUSH2 0x36C2 SWAP1 PUSH1 0x1 PUSH2 0x4A3A JUMP JUMPDEST DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x36D8 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4A5C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x37B0 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5361666545524332303A206C6F772D6C6576656C2063616C6C206661696C6564 DUP2 MSTORE POP DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x38BD SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP1 MLOAD PUSH1 0x0 EQ DUP1 PUSH2 0x37D1 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x37D1 SWAP2 SWAP1 PUSH2 0x45DB JUMP JUMPDEST PUSH2 0xF78 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5361666545524332303A204552433230206F7065726174696F6E20646964206E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F74207375636365656400000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xEBE JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP3 GT ISZERO PUSH2 0x2FEE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2031 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x3620626974730000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xEBE JUMP JUMPDEST PUSH1 0x60 PUSH2 0x223F DUP5 DUP5 PUSH1 0x0 DUP6 DUP6 PUSH1 0x0 DUP1 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH2 0x38E4 SWAP2 SWAP1 PUSH2 0x463A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x3921 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x3926 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x1F38 DUP8 DUP4 DUP4 DUP8 PUSH1 0x60 DUP4 ISZERO PUSH2 0x39A1 JUMPI DUP3 MLOAD PUSH1 0x0 SUB PUSH2 0x399A JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND EXTCODESIZE PUSH2 0x399A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xEBE JUMP JUMPDEST POP DUP2 PUSH2 0x223F JUMP JUMPDEST PUSH2 0x223F DUP4 DUP4 DUP2 MLOAD ISZERO PUSH2 0x39B6 JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEBE SWAP2 SWAP1 PUSH2 0x4AF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3A13 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x984 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x3A35 DUP2 PUSH2 0x3A18 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x180 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3A8D JUMPI PUSH2 0x3A8D PUSH2 0x3A3A JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3A8D JUMPI PUSH2 0x3A8D PUSH2 0x3A3A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3ADF JUMPI PUSH2 0x3ADF PUSH2 0x3A3A JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x3B01 JUMPI PUSH2 0x3B01 PUSH2 0x3A3A JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3B20 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x3B33 PUSH2 0x3B2E DUP3 PUSH2 0x3AE7 JUMP JUMPDEST PUSH2 0x3AB6 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x3B48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x984 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x3A35 DUP2 PUSH2 0x3B65 JUMP JUMPDEST PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x984 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x3A35 DUP2 PUSH2 0x3B85 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3BBD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3BC5 PUSH2 0x3A69 JUMP JUMPDEST SWAP1 POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3BDF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3BEB DUP6 DUP4 DUP7 ADD PUSH2 0x3B0F JUMP JUMPDEST DUP4 MSTORE PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x3C03 PUSH1 0x40 DUP6 ADD PUSH2 0x3B7A JUMP JUMPDEST PUSH1 0x40 DUP5 ADD MSTORE PUSH1 0x60 DUP5 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x3C1C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3C28 DUP6 DUP4 DUP7 ADD PUSH2 0x3B0F JUMP JUMPDEST PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x80 DUP5 ADD CALLDATALOAD PUSH1 0x80 DUP5 ADD MSTORE PUSH1 0xA0 DUP5 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x3C4B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3C57 DUP6 DUP4 DUP7 ADD PUSH2 0x3B0F JUMP JUMPDEST PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0xC0 DUP5 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x3C70 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3C7C DUP6 DUP4 DUP7 ADD PUSH2 0x3B0F JUMP JUMPDEST PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0xE0 DUP5 ADD CALLDATALOAD PUSH1 0xE0 DUP5 ADD MSTORE PUSH2 0x100 SWAP2 POP PUSH2 0x3C9B DUP3 DUP6 ADD PUSH2 0x3B7A JUMP JUMPDEST DUP3 DUP5 ADD MSTORE PUSH2 0x120 SWAP2 POP PUSH2 0x3CAF DUP3 DUP6 ADD PUSH2 0x3B9F JUMP JUMPDEST DUP3 DUP5 ADD MSTORE PUSH2 0x140 SWAP2 POP PUSH2 0x3CC3 DUP3 DUP6 ADD PUSH2 0x3A2A JUMP JUMPDEST DUP3 DUP5 ADD MSTORE PUSH2 0x160 SWAP2 POP DUP2 DUP5 ADD CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x3CDD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3CE9 DUP7 DUP3 DUP8 ADD PUSH2 0x3B0F JUMP JUMPDEST DUP4 DUP6 ADD MSTORE POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 DUP8 SUB PUSH1 0xC0 DUP2 SLT ISZERO PUSH2 0x3D0F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH2 0x3D1A DUP2 PUSH2 0x3A18 JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3D37 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3D43 DUP11 DUP4 DUP12 ADD PUSH2 0x3BAA JUMP JUMPDEST SWAP7 POP PUSH1 0x40 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x3D59 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D66 DUP10 DUP3 DUP11 ADD PUSH2 0x3B0F JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 DUP3 ADD SLT ISZERO PUSH2 0x3D99 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DA2 PUSH2 0x3A93 JUMP JUMPDEST PUSH1 0x60 DUP8 ADD CALLDATALOAD DUP2 MSTORE PUSH1 0x80 DUP8 ADD CALLDATALOAD PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x3DC1 PUSH1 0xA0 DUP8 ADD PUSH2 0x3B7A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3DDF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x3163 DUP2 PUSH2 0x3B65 JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x984 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3E0A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x3163 DUP2 PUSH2 0x3DEA JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3E2A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3E42 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3E4E DUP8 DUP4 DUP9 ADD PUSH2 0x3BAA JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x3E64 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E71 DUP7 DUP3 DUP8 ADD PUSH2 0x3B0F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0x3E82 DUP2 PUSH2 0x3DEA JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP4 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD PUSH2 0xB3E JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x3EB6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3ECE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x3EE6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3F00 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3F17 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3F23 DUP6 DUP3 DUP7 ADD PUSH2 0x3EA4 JUMP JUMPDEST SWAP1 SWAP7 SWAP1 SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3F41 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3F5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x3F66 DUP2 PUSH2 0x3A18 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3F87 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x3F92 DUP2 PUSH2 0x3B65 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x3FA2 DUP2 PUSH2 0x3DEA JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3FC2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3FD9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3FE5 DUP7 DUP3 DUP8 ADD PUSH2 0x3EA4 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x3E82 DUP2 PUSH2 0x3DEA JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x400C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x4017 DUP2 PUSH2 0x3B65 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x3FA2 DUP2 PUSH2 0x3B65 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x403A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x3FA2 DUP2 PUSH2 0x3B65 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x4061 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4078 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4084 DUP7 DUP3 DUP8 ADD PUSH2 0x3EA4 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x3E82 DUP2 PUSH2 0x3B65 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x40AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x40CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x40D7 DUP7 DUP3 DUP8 ADD PUSH2 0x3EA4 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD PUSH1 0x6 DUP6 LT PUSH2 0x4158 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP5 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x60 DUP4 ADD MSTORE DUP3 PUSH1 0x80 DUP4 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x418F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x3163 DUP2 PUSH2 0x3A18 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x41B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x41C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x41D5 DUP9 DUP3 DUP10 ADD PUSH2 0x3EA4 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x41E9 DUP2 PUSH2 0x3B65 JUMP JUMPDEST SWAP5 SWAP8 SWAP4 SWAP7 POP SWAP4 SWAP5 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP5 POP PUSH1 0x60 ADD CALLDATALOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x4239 JUMPI DUP4 MLOAD DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x421D JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4260 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x4248 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x4281 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x4245 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 MLOAD DUP2 DUP6 MSTORE PUSH2 0x42AB DUP3 DUP7 ADD DUP3 PUSH2 0x4269 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP6 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x42D2 PUSH1 0x40 DUP7 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0x42EA DUP3 DUP3 PUSH2 0x4269 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP6 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0xA0 DUP7 ADD MSTORE PUSH2 0x430E DUP3 DUP3 PUSH2 0x4269 JUMP JUMPDEST SWAP2 POP POP PUSH1 0xC0 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0xC0 DUP7 ADD MSTORE PUSH2 0x4328 DUP3 DUP3 PUSH2 0x4269 JUMP JUMPDEST SWAP2 POP POP PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP6 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD PUSH2 0x4350 DUP3 DUP8 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP POP PUSH2 0x120 DUP4 DUP2 ADD MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP6 ADD MSTORE PUSH2 0x140 DUP1 DUP5 ADD MLOAD PUSH4 0xFFFFFFFF AND SWAP1 DUP6 ADD MSTORE PUSH2 0x160 DUP1 DUP5 ADD MLOAD DUP6 DUP4 SUB DUP3 DUP8 ADD MSTORE PUSH2 0x3369 DUP4 DUP3 PUSH2 0x4269 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x3163 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x4295 JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 ADD ADD MSTORE PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP5 ADD AND DUP5 ADD ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH2 0x43F6 PUSH1 0x60 DUP4 ADD DUP7 DUP9 PUSH2 0x43B7 JUMP JUMPDEST SWAP4 ISZERO ISZERO PUSH1 0x20 DUP4 ADD MSTORE POP SWAP1 ISZERO ISZERO PUSH1 0x40 SWAP1 SWAP2 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x441F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x442D PUSH2 0x3B2E DUP3 PUSH2 0x3AE7 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x4442 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x223F DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x4245 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x3A35 DUP2 PUSH2 0x3B65 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x3A35 DUP2 PUSH2 0x3B85 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x3A35 DUP2 PUSH2 0x3A18 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4486 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x449E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH2 0x180 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x44B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x44BB PUSH2 0x3A69 JUMP JUMPDEST DUP3 MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x44CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x44D6 DUP8 DUP3 DUP7 ADD PUSH2 0x440E JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x44EF PUSH1 0x40 DUP5 ADD PUSH2 0x4453 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x4506 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4512 DUP8 DUP3 DUP7 ADD PUSH2 0x440E JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x4534 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4540 DUP8 DUP3 DUP7 ADD PUSH2 0x440E JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x4558 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4564 DUP8 DUP3 DUP7 ADD PUSH2 0x440E JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 PUSH2 0x4582 DUP2 DUP6 ADD PUSH2 0x4453 JUMP JUMPDEST SWAP1 DUP3 ADD MSTORE PUSH2 0x120 PUSH2 0x4594 DUP5 DUP3 ADD PUSH2 0x445E JUMP JUMPDEST SWAP1 DUP3 ADD MSTORE PUSH2 0x140 PUSH2 0x45A6 DUP5 DUP3 ADD PUSH2 0x4469 JUMP JUMPDEST SWAP1 DUP3 ADD MSTORE PUSH2 0x160 DUP4 DUP2 ADD MLOAD DUP4 DUP2 GT ISZERO PUSH2 0x45BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x45CA DUP9 DUP3 DUP8 ADD PUSH2 0x440E JUMP JUMPDEST SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x45ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x3163 DUP2 PUSH2 0x3DEA JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0xB3E JUMPI PUSH2 0xB3E PUSH2 0x45F8 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x464C DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x4245 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xE0 DUP2 MSTORE PUSH1 0x0 PUSH2 0x466A PUSH1 0xE0 DUP4 ADD DUP11 DUP13 PUSH2 0x43B7 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP9 SWAP1 SWAP9 MSTORE POP PUSH1 0x40 DUP2 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH1 0x60 DUP6 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x80 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE ISZERO ISZERO PUSH1 0xA0 DUP4 ADD MSTORE ISZERO ISZERO PUSH1 0xC0 SWAP1 SWAP2 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x46B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x46CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x46DF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP2 DUP2 GT ISZERO PUSH2 0x46F1 JUMPI PUSH2 0x46F1 PUSH2 0x3A3A JUMP JUMPDEST DUP1 PUSH1 0x5 SHL SWAP2 POP PUSH2 0x4702 DUP5 DUP4 ADD PUSH2 0x3AB6 JUMP JUMPDEST DUP2 DUP2 MSTORE SWAP2 DUP4 ADD DUP5 ADD SWAP2 DUP5 DUP2 ADD SWAP1 DUP9 DUP5 GT ISZERO PUSH2 0x471C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 DUP6 ADD SWAP4 JUMPDEST DUP4 DUP6 LT ISZERO PUSH2 0x4746 JUMPI DUP5 MLOAD SWAP3 POP PUSH2 0x4736 DUP4 PUSH2 0x3B65 JUMP JUMPDEST DUP3 DUP3 MSTORE SWAP4 DUP6 ADD SWAP4 SWAP1 DUP6 ADD SWAP1 PUSH2 0x4721 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x47B2 JUMPI PUSH2 0x47B2 PUSH2 0x45F8 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH4 0xFFFFFFFF DUP4 MLOAD AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0xA0 PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x47EF PUSH1 0xE0 DUP5 ADD DUP3 PUSH2 0x4269 JUMP JUMPDEST SWAP1 POP PUSH1 0x60 DUP6 ADD MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 DUP5 DUP4 SUB ADD PUSH1 0xA0 DUP6 ADD MSTORE PUSH2 0x482A DUP3 DUP3 PUSH2 0x4269 JUMP JUMPDEST PUSH1 0x80 SWAP7 SWAP1 SWAP7 ADD MLOAD ISZERO ISZERO PUSH1 0xC0 DUP6 ADD MSTORE POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4862 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x486A PUSH2 0x3A93 JUMP JUMPDEST SWAP1 POP DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4892 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x60 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP3 DUP3 LT DUP2 DUP4 GT OR ISZERO PUSH2 0x48B6 JUMPI PUSH2 0x48B6 PUSH2 0x3A3A JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP5 MLOAD DUP4 MSTORE PUSH1 0x20 DUP6 ADD MLOAD SWAP2 POP DUP1 DUP3 AND DUP3 EQ PUSH2 0x48D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x48E6 DUP5 PUSH1 0x40 DUP6 ADD PUSH2 0x4850 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x223F PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x4269 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND DUP4 MSTORE DUP1 DUP6 AND PUSH1 0x20 DUP5 ADD MSTORE POP PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x223C PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x4269 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4952 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3163 DUP4 DUP4 PUSH2 0x4850 JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0x0 PUSH2 0x496F PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x4269 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x20 DUP4 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4999 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x223F PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x4269 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP7 AND DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x49D8 PUSH1 0xC0 DUP4 ADD DUP8 PUSH2 0x4295 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x49EA DUP2 DUP8 PUSH2 0x4269 JUMP JUMPDEST DUP6 MLOAD PUSH1 0x60 DUP6 ADD MSTORE PUSH1 0x20 DUP7 ADD MLOAD PUSH1 0x80 DUP6 ADD MSTORE SWAP2 POP PUSH2 0x4A04 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0xA0 DUP4 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4A2F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x3163 DUP2 PUSH2 0x3B65 JUMP JUMPDEST PUSH2 0xFFFF DUP2 DUP2 AND DUP4 DUP3 AND ADD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0x4A55 JUMPI PUSH2 0x4A55 PUSH2 0x45F8 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP7 MLOAD PUSH2 0x4A6E DUP2 DUP5 PUSH1 0x20 DUP12 ADD PUSH2 0x4245 JUMP JUMPDEST DUP1 DUP4 ADD SWAP1 POP PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 DUP1 DUP9 PUSH1 0xF8 SHL AND DUP3 MSTORE PUSH32 0xFFFF000000000000000000000000000000000000000000000000000000000000 DUP8 PUSH1 0xF0 SHL AND PUSH1 0x1 DUP4 ADD MSTORE DUP1 DUP7 PUSH1 0xF8 SHL AND PUSH1 0x3 DUP4 ADD MSTORE POP DUP4 MLOAD PUSH2 0x4AE6 DUP2 PUSH1 0x4 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x4245 JUMP JUMPDEST ADD PUSH1 0x4 ADD SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x3163 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x4269 JUMP INVALID PUSH20 0x657457686974656C69737465644578656375746F PUSH19 0x28616464726573732C626F6F6C297365745269 PUSH20 0x6B506172616D65746572436F6E66696728737472 PUSH10 0x6E672C61646472657373 0x2C PUSH22 0x696E743235362C75696E7432353629A2646970667358 0x22 SLT KECCAK256 SWAP14 0xDF SDIV 0xA6 PUSH13 0x58460FADDFDEE8EDD07FB29417 0xD9 0xBC TIMESTAMP 0x21 DUP11 0xAD 0xD2 PUSH24 0xDC6E5BCE9FAC64736F6C6343000819003300000000000000 ","sourceMap":"1459:30722:70:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20470:414;;;;;;:::i;:::-;;:::i;:::-;;2103:147:57;;;;;;;;;;-1:-1:-1;2103:147:57;;;;;:::i;:::-;;:::i;5681:259:70:-;;;;;;;;;;-1:-1:-1;5681:259:70;;;;;:::i;:::-;;:::i;1870:141:12:-;;;;;;;;;;-1:-1:-1;1870:141:12;;;887:1;6318:34:97;;1922:20:12;6383:2:97;6368:18;;6361:43;6254:18;1870:141:12;;;;;;;;19637:297:70;;;;;;;;;;-1:-1:-1;19637:297:70;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1711:55::-;;;;;;;;;;;;1760:6;1711:55;;;;;7707:25:97;;;7695:2;7680:18;1711:55:70;7561:177:97;17990:208:70;;;;;;;;;;-1:-1:-1;17990:208:70;;;;;:::i;:::-;;:::i;:::-;;;;;;8891:13:97;;8884:21;8877:29;8859:48;;8963:4;8951:17;;;8945:24;8923:20;;;8916:54;9026:4;9014:17;;;9008:24;8986:20;;;8979:54;9093:4;9081:17;;;9075:24;-1:-1:-1;;;;;9071:73:97;9049:20;;;9042:103;;;;8846:3;8831:19;;8644:507;17638:128:70;;;;;;;;;;-1:-1:-1;17638:128:70;;;;;:::i;:::-;;:::i;:::-;;;9506:14:97;;9499:22;9481:41;;9469:2;9454:18;17638:128:70;9341:187:97;3028:202:10;;;;;;;;;;-1:-1:-1;3028:202:10;;;;;:::i;:::-;;:::i;9858:481:70:-;;;;;;;;;;-1:-1:-1;9858:481:70;;;;;:::i;:::-;;:::i;8603:603::-;;;;;;;;;;-1:-1:-1;8603:603:70;;;;;:::i;:::-;;:::i;4690:158::-;;;;;;;;;;-1:-1:-1;4690:158:70;;;;;:::i;:::-;;:::i;1839:38::-;;;;;;;;;;;;;;;;;;11449:10:97;11437:23;;;11419:42;;11407:2;11392:18;1839:38:70;11275:192:97;2507:81:70;;;;;;;;;;-1:-1:-1;2507:81:70;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;18964:218;;;;;;;;;;-1:-1:-1;18964:218:70;;;;;:::i;:::-;;:::i;2037:18::-;;;;;;;;;;-1:-1:-1;2037:18:70;;;;;;;;1035:46:10;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12536:55:97;;;12518:74;;12506:2;12491:18;1035:46:10;12343:255:97;11149:1011:70;;;;;;;;;;-1:-1:-1;11149:1011:70;;;;;:::i;:::-;;:::i;2725:82::-;;;;;;;;;;-1:-1:-1;2725:82:70;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;32076:103;;;;;;;;;;;;;:::i;2010:206:25:-;;;;;;;;;;;;;:::i;1948:40:70:-;;;;;;;;;;;;;;;15221:728;;;;;;:::i;:::-;;:::i;1441:85:26:-;;;;;;;;;;-1:-1:-1;1513:6:26;;-1:-1:-1;;;;;1513:6:26;1441:85;;5134:310:70;;;;;;;;;;;;;:::i;2195:63::-;;;;;;;;;;-1:-1:-1;2195:63:70;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2195:63:70;;;;;;;14004:14:97;;13997:22;13979:41;;14051:2;14036:18;;14029:34;;;;14079:18;;;14072:34;-1:-1:-1;;;;;14142:55:97;14137:2;14122:18;;14115:83;13966:3;13951:19;2195:63:70;13754:450:97;2346:125:57;;;;;;;;;;-1:-1:-1;2443:21:57;;-1:-1:-1;;;;;2443:21:57;2346:125;;2350:60:70;;;;;;;;;;-1:-1:-1;2350:60:70;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2350:60:70;;;;;;;;;;;;;;;:::i;2342:163:10:-;;;;;;;;;;-1:-1:-1;2342:163:10;;;;;:::i;:::-;2485:13;;2400:7;2485:13;;;926:26;2485:13;;;;;;;2342:163;6774:1256:70;;;;;;;;;;-1:-1:-1;6774:1256:70;;;;;:::i;:::-;;:::i;13925:367::-;;;;;;;;;;-1:-1:-1;13925:367:70;;;;;:::i;:::-;;:::i;4123:105:10:-;;;;;;;;;;-1:-1:-1;4123:105:10;;;;;:::i;:::-;;:::i;1123:99:25:-;;;;;;;;;;-1:-1:-1;1202:13:25;;-1:-1:-1;;;;;1202:13:25;1123:99;;21052:198:70;;;;;;;;;;-1:-1:-1;21052:198:70;;;;;:::i;:::-;;:::i;16383:1015::-;;;;;;;;;;-1:-1:-1;16383:1015:70;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;18472:216::-;;;;;;;;;;-1:-1:-1;18472:216:70;;;;;:::i;:::-;;:::i;13093:462::-;;;;;;;;;;-1:-1:-1;13093:462:70;;;;;:::i;:::-;;:::i;2895:52::-;;;;;;;;;;-1:-1:-1;2895:52:70;;;;;:::i;:::-;;;;;;;;;;;;;;;;20470:414;20681:10;20703:4;20681:27;20677:86;;20731:21;;;;;;;;;;;;;;20677:86;20773:20;20807:6;20796:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;20773:41;;20824:53;20832:6;20840:7;20849;20858:3;20863:13;20824:7;:53::i;:::-;;20667:217;20470:414;;;;;:::o;2103:147:57:-;1334:13:26;:11;:13::i;:::-;2196:47:57::1;2221:21;2196:24;:47::i;:::-;2103:147:::0;:::o;5681:259:70:-;5733:38;;;;;;;;;;;;;;;;;;:19;:38::i;:::-;5785:6;;:17;;;:6;;;;:17;;;5781:77;;5825:22;;;;;;;;;;;;;;5781:77;5891:6;;5872:35;;;5891:6;;;;19952:14:97;19945:22;19927:41;;20011:14;;20004:22;19999:2;19984:18;;19977:50;5872:35:70;;19900:18:97;5872:35:70;;;;;;;5917:6;:16;;-1:-1:-1;;5917:16:70;;;;;;;;;;5681:259::o;19637:297::-;-1:-1:-1;;;;;;;;;;;;;;;;;19814:20:70;19848:6;19837:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;19814:41;;19871:56;19878:6;:16;;;19896:7;19905;19914:12;19871:6;:56::i;:::-;19865:62;19637:297;-1:-1:-1;;;;;19637:297:70:o;17990:208::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18107:11:70;18137:10;;18121:28;;;;;;;:::i;:::-;;;;;;;;;;18166:25;;;;:20;:25;;;;;;;;18159:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18159:32:70;;;;;18121:28;-1:-1:-1;;17990:208:70;;;;;:::o;17638:128::-;17707:4;17730:29;17750:8;17730:19;:29::i;3028:202:10:-;1334:13:26;:11;:13::i;:::-;3167::10::1;::::0;::::1;3108:25;3167:13:::0;;;926:26;3167:13:::1;::::0;;;;;;;;:21;;;3203:20;;20486:42:97;;;20544:18;;20537:34;;;926:26:10;3203:20:::1;::::0;20459:18:97;3203:20:10::1;;;;;;;;3098:132;3028:202:::0;;:::o;9858:481:70:-;9942:59;;;;;;;;;;;;;;;;;;:19;:59::i;:::-;10011:30;10032:8;10011:20;:30::i;:::-;-1:-1:-1;;;;;10076:30:70;;10052:21;10076:30;;;:20;:30;;;;;;;;10120:28;;;;;;;10116:91;;10171:25;;;;;;;;;;;;;;10116:91;-1:-1:-1;;;;;10217:30:70;;;;;;:20;:30;;;;;;;;;:41;;-1:-1:-1;;10217:41:70;;;;;;;;;;10273:59;;19952:14:97;;19945:22;19927:41;;19984:18;;;19977:50;10273:59:70;;19900:18:97;10273:59:70;;;;;;;9932:407;9858:481;;:::o;8603:603::-;8688:51;;;;;;;;;;;;;;;;;;:19;:51::i;:::-;8749:11;8779:10;;8763:28;;;;;;;:::i;:::-;;;;;;;;;;;8855:1;8806:25;;;:20;:25;;;;;;:37;;;8763:28;;-1:-1:-1;;;;;;8806:37:70;8802:112;;8880:23;;;;;;;;;;;;;;8802:112;8924:19;8946:25;;;:20;:25;;;;;:32;;;8992:24;;;;;;;8988:85;;9039:23;;;;;;;;;;;;;;8988:85;9083:25;;;;:20;:25;;;;;;;:41;;-1:-1:-1;;9083:41:70;;;;;;;9139:60;9083:25;;9139:60;;;;9164:10;;;;9176:14;;9083:41;;9139:60;:::i;:::-;;;;;;;;8678:528;;8603:603;;;:::o;4690:158::-;3268:19:27;3291:13;;;;;;3290:14;;3336:34;;;;-1:-1:-1;3354:12:27;;3369:1;3354:12;;;;:16;3336:34;3335:108;;;-1:-1:-1;3415:4:27;1476:19:28;:23;;;3376:66:27;;-1:-1:-1;3425:12:27;;;;;:17;3376:66;3314:201;;;;-1:-1:-1;;;3314:201:27;;21529:2:97;3314:201:27;;;21511:21:97;21568:2;21548:18;;;21541:30;21607:34;21587:18;;;21580:62;21678:16;21658:18;;;21651:44;21712:19;;3314:201:27;;;;;;;;;3525:12;:16;;-1:-1:-1;;3525:16:27;3540:1;3525:16;;;3551:65;;;;3585:13;:20;;;;;;;;3551:65;4774:29:70::1;4798:4;4774:23;:29::i;:::-;4813:28;4831:9;4813:17;:28::i;:::-;3640:14:27::0;3636:99;;;3686:5;3670:21;;;;;;3710:14;;-1:-1:-1;21894:36:97;;3710:14:27;;21882:2:97;21867:18;3710:14:27;21742:194:97;3636:99:27;3258:483;4690:158:70;;:::o;18964:218::-;19064:7;19083:11;19113:10;;19097:28;;;;;;;:::i;:::-;;;;;;;;;;;19142:25;;;;:20;:25;;;;;;;-1:-1:-1;;;;;19142:33:70;;;;;;;;;-1:-1:-1;;18964:218:70;;;;;:::o;11149:1011::-;3577:6;;;;3573:57;;;3606:13;;;;;;;;;;;;;;3573:57;11259:35:::1;::::0;;;;::::1;::::0;::::1;7707:25:97::0;;;11223:33:70::1;::::0;11259:11:::1;-1:-1:-1::0;;;;;11259:25:70::1;::::0;::::1;::::0;7680:18:97;;11259:35:70::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;11259:35:70::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;11358:20;::::0;::::1;::::0;11304:30:::1;11337:42:::0;;;:20:::1;:42;::::0;;;;11411:16:::1;::::0;::::1;::::0;11223:71;;-1:-1:-1;11337:42:70;11411:21:::1;;::::0;;::::1;::::0;:59:::1;;;11456:14;11436:34;;:6;:16;;;:34;;;;11411:59;11389:81;;11600:14;11595:50;;11616:29;11638:6;11616:21;:29::i;:::-;11655:55;11679:6;11687;11695:14;11655:23;:55::i;:::-;11761:18;::::0;::::1;::::0;-1:-1:-1;;;;;11761:18:70::1;11721:24;11820:14:::0;:69:::1;;11845:44;::::0;;;;-1:-1:-1;;;;;11845:36:70;::::1;::::0;::::1;::::0;:44:::1;::::0;11882:6;;11845:44:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11820:69;;;11837:5;11820:69;11899:73;::::0;;::::1;::::0;::::1;::::0;;;;::::1;;;;::::0;;;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;;;;;;;::::1;::::0;::::1;::::0;-1:-1:-1;;;;;11899:73:70::1;::::0;;;;11790:99;;-1:-1:-1;11899:73:70::1;::::0;11915:6;;11790:99;;11931:40:::1;;;11957:14;11931:40;11899:15;:73::i;:::-;11987:14;11983:171;;;12017:32;12035:6;12017:32;;;;;;;;;;;::::0;12047:1:::1;12017:17;:32::i;:::-;11983:171;;;12070:22;12066:88;;;12108:35;12123:6;12131:11;12108:14;:35::i;:::-;11213:947;;;;;11149:1011:::0;:::o;32076:103::-;32143:29;;;;;;;;;;;;;;2010:206:25;1202:13;;929:10:29;;-1:-1:-1;;;;;1202:13:25;2103:24;;2095:78;;;;-1:-1:-1;;;2095:78:25;;25158:2:97;2095:78:25;;;25140:21:97;25197:2;25177:18;;;25170:30;25236:34;25216:18;;;25209:62;25307:11;25287:18;;;25280:39;25336:19;;2095:78:25;24956:405:97;2095:78:25;2183:26;2202:6;2183:18;:26::i;15221:728:70:-;3391:10;3370:32;;;;:20;:32;;;;;;;;3365:86;;3425:15;;;;;;;;;;;;;;3365:86;15343:41:::1;15387:17:::0;;;:7:::1;:17;::::0;;;;15445:32:::1;15418:23;::::0;::::1;::::0;::::1;;:59;::::0;::::1;;;;;;:::i;:::-;;15414:120;;15500:23;;;;;;;;;;;;;;15414:120;15580:35;::::0;;;;::::1;::::0;::::1;7707:25:97::0;;;15544:33:70::1;::::0;15580:11:::1;-1:-1:-1::0;;;;;15580:25:70::1;::::0;::::1;::::0;7680:18:97;;15580:35:70::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;15580:35:70::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;15544:71;;15712:15;1760:6;15668;:16;;;:41;;;;:::i;:::-;:59;15664:114;;;15750:17;;;;;;;;;;;;;;15664:114;15788:45;15806:6;15814:7;;15788:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;15823:9:70::1;::::0;-1:-1:-1;15788:17:70::1;::::0;-1:-1:-1;;15788:45:70:i:1;:::-;15928:6;:13;;;-1:-1:-1::0;;;;;15848:94:70::1;15909:6;:17;;;15848:94;;;;;;:::i;:::-;;;;;;;;15891:6;:16;;;15848:94;;;15874:6;:15;;;15848:94;;;;7707:25:97::0;;7695:2;7680:18;;7561:177;15848:94:70::1;;;;;;;;15333:616;;15221:728:::0;;;:::o;5134:310::-;1334:13:26;:11;:13::i;:::-;5204:21:70::1;5239:11:::0;;5235:203:::1;;5267:12;5293:7;1513:6:26::0;;-1:-1:-1;;;;;1513:6:26;;1441:85;5293:7:70::1;-1:-1:-1::0;;;;;5285:21:70::1;5315:7;5285:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5266:62;;;5347:7;5342:37;;5363:16;;;;;;;;;;;;;;5342:37;1513:6:26::0;;-1:-1:-1;;;;;1513:6:26;-1:-1:-1;;;;;5398:29:70::1;;5419:7;5398:29;;;;7707:25:97::0;;7695:2;7680:18;;7561:177;5398:29:70::1;;;;;;;;5252:186;5176:268;5134:310::o:0;6774:1256::-;6948:77;;;;;;;;;;;;;;;;;;:19;:77::i;:::-;7035:33;7056:11;7035:20;:33::i;:::-;7083:29;;;:62;;-1:-1:-1;7143:2:70;7116:29;;7083:62;7079:119;;;7168:19;;;;;;;;;;;;;;7079:119;7211:8;7223:1;7211:13;7207:68;;7247:17;;;;;;;;;;;;;;7207:68;1760:6;7288:8;:34;7284:89;;7345:17;;;;;;;;;;;;;;7284:89;7383:11;7413:10;;7397:28;;;;;;;:::i;:::-;;;;;;;;7383:42;;7435:37;7475:20;:25;7496:3;7475:25;;;;;;;;;;;7435:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7435:65:70;-1:-1:-1;;;;;7435:65:70;-1:-1:-1;;;;;7435:65:70;;;;;;;7539:155;;;;;;;;7577:4;7539:155;;;;;;7643:8;7539:155;;;;7675:8;7539:155;;;;7608:11;-1:-1:-1;;;;;7539:155:70;;;;7511:20;:25;7532:3;7511:25;;;;;;;;;;;:183;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7511:183:70;;;;;-1:-1:-1;;;;;7511:183:70;;;;;;;;;7831:11;-1:-1:-1;;;;;7710:313:70;7791:14;:26;;;-1:-1:-1;;;;;7710:313:70;7750:3;7710:313;7767:10;;7856:14;:23;;;7893:8;7915:14;:23;;;7952:8;7974:14;:21;;;8009:4;7710:313;;;;;;;;;;;;;:::i;:::-;;;;;;;;6938:1092;;6774:1256;;;;;:::o;13925:367::-;3391:10;3370:32;;;;:20;:32;;;;;;;;3365:86;;3425:15;;;;;;;;;;;;;;3365:86;14009:41:::1;14053:17:::0;;;:7:::1;:17;::::0;;;;14112:20:::1;14085:23;::::0;::::1;::::0;::::1;;:47;::::0;::::1;;;;;;:::i;:::-;;14081:108;;14155:23;;;;;;;;;;;;;;14081:108;14199:23;::::0;::::1;:47:::0;;-1:-1:-1;;14199:47:70::1;14225:21;14199:47;::::0;;14261:24:::1;::::0;14276:8;;14261:24:::1;::::0;-1:-1:-1;;14261:24:70::1;13999:293;13925:367:::0;:::o;4123:105:10:-;1334:13:26;:11;:13::i;:::-;4190:31:10::1;::::0;;;;-1:-1:-1;;;;;12536:55:97;;;4190:31:10::1;::::0;::::1;12518:74:97::0;4190:8:10::1;:20;::::0;::::1;::::0;12491:18:97;;4190:31:10::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4123:105:::0;:::o;21052:198:70:-;1334:13:26;:11;:13::i;:::-;21192:51:70::1;21234:8;21192:41;:51::i;16383:1015::-:0;16507:34;16553:21;16593:10;;16577:28;;;;;;;:::i;:::-;;;;;;;;16553:52;;16694:24;16742:11;-1:-1:-1;;;;;16721:47:70;;:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;16721:49:70;;;;;;;;;;;;:::i;:::-;16801:14;;16694:76;;-1:-1:-1;16780:18:70;16801:14;16854:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16854:25:70;;16825:54;;16889:13;16922:9;16917:282;16941:10;16937:1;:14;16917:282;;;16972:26;17001:35;;;:20;:35;;;;;17037:10;;16972:26;;17037:7;;17045:1;;17037:10;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;17001:47:70;-1:-1:-1;;;;;17001:47:70;;;;;;;;;;;;;16972:76;;17067:39;17087:18;17067:19;:39::i;:::-;17062:54;;17108:8;;;17062:54;17149:18;17130:9;17140:5;17130:16;;;;;;;;:::i;:::-;;;;;;;;;;:37;17181:7;;;;:::i;:::-;;;;16958:241;16917:282;16953:3;;16917:282;;;;17280:5;17266:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17266:20:70;;17246:40;;17301:9;17296:96;17320:5;17316:1;:9;17296:96;;;17369:9;17379:1;17369:12;;;;;;;;:::i;:::-;;;;;;;17346:17;17364:1;17346:20;;;;;;;;:::i;:::-;;;;;;;;;;:35;17327:3;;17296:96;;;;16543:855;;;;;16383:1015;;;;;:::o;18472:216::-;18571:7;18590:11;18620:10;;18604:28;;;;;;;:::i;:::-;;;;;;;;;;;18649:24;;;;:19;:24;;;;;;;-1:-1:-1;;;;;18649:32:70;;;;;;;;;-1:-1:-1;;18472:216:70;;;;;:::o;13093:462::-;3391:10;3370:32;;;;:20;:32;;;;;;;;3365:86;;3425:15;;;;;;;;;;;;;;3365:86;13188:41:::1;13232:17:::0;;;:7:::1;:17;::::0;;;;;13295:35;;;;;::::1;::::0;::::1;7707:25:97::0;;;13232:17:70;;13188:41;13295:11:::1;-1:-1:-1::0;;;;;13295:25:70::1;::::0;::::1;::::0;7680:18:97;;13295:35:70::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;13295:35:70::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;13394:20;::::0;::::1;::::0;13340:30:::1;13373:42:::0;;;:20:::1;:42;::::0;;;;13259:71;;-1:-1:-1;13426:56:70::1;13449:16:::0;13259:71;13373:42;13426:22:::1;:56::i;:::-;13528:18;::::0;::::1;::::0;13492:56:::1;::::0;13507:6;;-1:-1:-1;;;;;13528:18:70::1;13492:14;:56::i;:::-;13178:377;;;13093:462:::0;:::o;3700:766:12:-;3901:31;;:::i;:::-;4066:20;4089:26;4100:4;:14;;;4089:10;:26::i;:::-;4129:15;;;;4066:49;;-1:-1:-1;4129:19:12;4125:53;;4150:28;4162:4;:15;;;4150:11;:28::i;:::-;4267:8;-1:-1:-1;;;;;4267:13:12;;4289:12;4321:92;;;;;;;;4337:7;4321:92;;;;;;4346:25;4363:7;4346:16;:25::i;:::-;4321:92;;;;4373:8;4321:92;;;;4383:8;4321:92;;;;4411:1;4393:4;:15;;;:19;4321:92;;;;;4431:14;4267:192;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4189:270;3700:766;-1:-1:-1;;;;;;;3700:766:12:o;1599:130:26:-;1513:6;;-1:-1:-1;;;;;1513:6:26;929:10:29;1662:23:26;1654:68;;;;-1:-1:-1;;;1654:68:26;;30495:2:97;1654:68:26;;;30477:21:97;;;30514:18;;;30507:30;30573:34;30553:18;;;30546:62;30625:18;;1654:68:26;30293:356:97;1654:68:26;1599:130::o;2642:425:57:-;-1:-1:-1;;;;;2734:44:57;;2726:94;;;;-1:-1:-1;;;2726:94:57;;30856:2:97;2726:94:57;;;30838:21:97;30895:2;30875:18;;;30868:30;30934:34;30914:18;;;30907:62;31005:7;30985:18;;;30978:35;31030:19;;2726:94:57;30654:401:97;2726:94:57;2872:21;;;-1:-1:-1;;;;;2904:70:57;;;;;;;;;;;2989:71;;;2872:21;;;;31295:34:97;;;31360:2;31345:18;;31338:43;;;;2989:71:57;;31207:18:97;2989:71:57;;;;;;;2716:351;2642:425;:::o;3204:282::-;3305:21;;:60;;;;;3282:20;;-1:-1:-1;;;;;3305:21:57;;:37;;:60;;3343:10;;3355:9;;3305:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3282:83;;3381:15;3376:104;;3432:10;3452:4;3459:9;3419:50;;;;;;;;;;;;;:::i;3376:104::-;3272:214;3204:282;:::o;2550:391:12:-;-1:-1:-1;;;;;;;;;;;;;;;;;2771:8:12;-1:-1:-1;;;;;2771:14:12;;2803:86;;;;;;;;2819:7;2803:86;;;;;;2828:25;2845:7;2828:16;:25::i;:::-;2803:86;;;;2855:8;2803:86;;;;2865:8;2803:86;;;;2875:13;2803:86;;;;;2915:4;2771:163;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2752:182;;2550:391;;;;;;;:::o;31228:719:70:-;31298:4;31358:17;;;:7;:17;;;;;31416:20;31389:23;;;;;;:47;;;;;;;;:::i;:::-;;31385:90;;-1:-1:-1;31459:5:70;;31228:719;-1:-1:-1;;31228:719:70:o;31385:90::-;31521:35;;;;;;;;7707:25:97;;;31485:33:70;;31521:11;-1:-1:-1;;;;;31521:25:70;;;;7680:18:97;;31521:35:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;31521:35:70;;;;;;;;;;;;:::i;:::-;31620:20;;;;31566:30;31599:42;;;:20;:42;;;;;31657:13;;31485:71;;-1:-1:-1;31599:42:70;31657:13;;31652:57;;-1:-1:-1;31693:5:70;;31228:719;-1:-1:-1;;;;31228:719:70:o;31652:57::-;31795:15;1760:6;31751;:16;;;:41;;;;:::i;:::-;:59;31747:102;;;-1:-1:-1;31833:5:70;;31228:719;-1:-1:-1;;;;31228:719:70:o;31747:102::-;-1:-1:-1;;31913:27:70;;;31894:15;:46;;;31228:719;-1:-1:-1;;31228:719:70:o;485:136:47:-;-1:-1:-1;;;;;548:22:47;;544:75;;589:23;;;;;;;;;;;;;;1420:194:57;5363:13:27;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:27;;32648:2:97;5355:69:27;;;32630:21:97;32687:2;32667:18;;;32660:30;32726:34;32706:18;;;32699:62;32797:13;32777:18;;;32770:41;32828:19;;5355:69:27;32446:407:97;5355:69:27;1520:21:57::1;:19;:21::i;:::-;1551:56;1585:21;1551:33;:56::i;1169:115:12:-:0;5363:13:27;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:27;;32648:2:97;5355:69:27;;;32630:21:97;32687:2;32667:18;;;32660:30;32726:34;32706:18;;;32699:62;32797:13;32777:18;;;32770:41;32828:19;;5355:69:27;32446:407:97;5355:69:27;1251:26:12::1;1267:9;1251:15;:26::i;26175:907:70:-:0;26310:20;;;;26260:26;26289:42;;;:20;:42;;;;;;;;26332:13;;;;-1:-1:-1;;;;;26289:57:70;;;;;;;;;;26360:23;;;26356:36;;26385:7;26175:907;:::o;26356:36::-;26450:33;26486:27;;;:7;:27;;;;;26546:20;26527:15;;;;;;:39;;;;;;;;:::i;:::-;;26523:52;;26568:7;;26175:907;:::o;26523:52::-;26657:45;;;;;;;;7707:25:97;;;26613:41:70;;26657:11;-1:-1:-1;;;;;26657:25:70;;;;7680:18:97;;26657:45:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;26657:45:70;;;;;;;;;;;;:::i;:::-;26613:89;;26712:12;26779:15;1760:6;26727:14;:24;;;:49;;;;:::i;:::-;:67;26712:82;;26809:7;26805:148;;;26832:15;;;:38;;-1:-1:-1;;26832:38:70;26850:20;26832:38;;;26889:33;;26903:18;;26889:33;;-1:-1:-1;;26889:33:70;26936:7;;;;26175:907;:::o;26805:148::-;27030:45;;;;;;;;7707:25:97;;;7680:18;;27030:45:70;7561:177:97;27887:1672:70;28129:15;;;;;28156:17;28121:24;;;:7;:24;;;;;;:31;;;;;:52;;;;;;;;:::i;:::-;;28117:113;;28196:23;;;;;;;;;;;;;;28117:113;28282:13;;;;28277:69;;28318:17;;;;;;;;;;;;;;28277:69;28427:38;28468:11;-1:-1:-1;;;;;28468:44:70;;28526:6;:17;;;28557:6;:13;;;28468:112;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28427:153;;28628:6;:15;;;28594:30;:49;28590:104;;28666:17;;;;;;;;;;;;;;28590:104;28776:16;;;;28726:15;;28704:19;;28776:41;;1760:6;;28776:41;:::i;:::-;28751:66;;28877:11;28860:14;:28;28856:83;;;28911:17;;;;;;;;;;;;;;28856:83;29053:15;;;;29039:29;;:11;:29;:::i;:::-;29022:14;:46;29018:114;;;29091:30;;;;;;;;;;;;;;29018:114;29198:14;29193:360;;29274:20;;;;29228:23;29254:41;;;:19;:41;;;;;;;;29296:13;;;;-1:-1:-1;;;;;29254:56:70;;;;;;;;;29352:24;;;:7;:24;;;;;;:35;;;29405:22;;;;;:77;;;29470:11;29452:6;:15;;;29432:17;:35;;;;:::i;:::-;:49;29405:77;29401:142;;;29509:19;;;;;;;;;;;;;;29401:142;29214:339;;28052:1507;;;27887:1672;;;:::o;22071:705::-;22255:15;;;;22236:16;22301:18;:72;;22358:15;;;;22340:33;;:15;:33;:::i;:::-;22301:72;;;22322:15;22301:72;22404:199;;;;;;;;;;;;;;;;;;22511:20;22404:199;;;;;;-1:-1:-1;22404:199:70;;;;;;;;;;;;22384:17;;;:7;:17;;;;;;;:219;;;;;;;;;;;;;;;;;22404:199;;-1:-1:-1;22404:199:70;;22384:219;;;-1:-1:-1;;22384:219:70;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;22384:219:70;;;;;;;;;;;;;-1:-1:-1;;;;;22384:219:70;;;;;;;;;;;;;;;;;;;;22635:20;;;;-1:-1:-1;22614:42:70;;;:20;:42;;;;;;;;22657:13;;;;;22614:57;;;;;;;;;;:68;;;22755:13;22736:17;;;;22697:72;;;;;;;22614:68;;22697:72;;;;22724:10;;22697:72;:::i;:::-;;;;;;;;22226:550;;22071:705;;;:::o;24464:1060::-;24586:19;24608:7;:14;24626:1;24608:19;:124;;24725:7;24608:124;;;24642:68;24697:9;24708:1;24642:27;1370:24:15;;;34911:16:97;1370:24:15;;;34895:102:97;1370:24:15;;;;;;;;;35013:11:97;;;;1370:24:15;;;;1294:107;24642:27:70;:54;:68;:54;:68::i;:::-;24586:146;;24743:23;-1:-1:-1;;;;;;;;;;;;;;;;;;;24743:23:70;24781:9;24794:1;24781:14;24777:142;;24817:28;24823:6;24831;24839:5;24817;:28::i;:::-;24811:34;;24777:142;;;-1:-1:-1;24882:26:70;;;;;;;;;;;;-1:-1:-1;24882:26:70;;;;24777:142;24949:13;;24965:16;;;;24929:89;;;;;:4;;:11;;24949:13;;24929:89;;24965:16;:6;;24991;;24949:3;;24929:4;;:89;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;25081:15:70;;;;;;25029:41;25073:24;;;:7;:24;;;;;;25107:23;;;:58;;25175:47;25211:10;25175:47;;;;;;25133:32;25175:47;;;25262:15;25232:27;;;:45;25312:20;;;;25394:15;;25342:34;;;:19;:34;;;;;25377:13;;;;;-1:-1:-1;;;;;25342:49:70;;;;;;;;;;;;;:67;25503:13;;25484:17;;;;25425:92;;25073:24;;-1:-1:-1;25312:20:70;;25425:92;;;;;;;25484:17;25425:92;:::i;:::-;;;;;;;;25466:6;:16;;;25425:92;;;25449:6;:15;;;25425:92;;;;7707:25:97;;7695:2;7680:18;;7561:177;23285:575:70;23404:15;;;;;23385:16;23518:17;;;:7;:17;;;;;;23572:21;23546:23;;;:47;;23603;;23639:10;23603:47;;;;;;;;23449:15;23660:27;;;:39;;;23729:20;;;;23709:41;;:19;:41;;;;;23751:13;;;;-1:-1:-1;;;;;23709:56:70;;;;;;;;;;;:67;;;23787:27;;;;;23404:15;;23449;;23518:17;;23787:19;;;;;:27;;23404:15;;23787:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;23829:24:70;;23844:8;;-1:-1:-1;23829:24:70;;-1:-1:-1;23829:24:70;;;23375:485;;;23285:575;;:::o;21425:178::-;21544:52;21587:8;21544:42;:52::i;1415:178:25:-;1334:13:26;:11;:13::i;:::-;1504::25::1;:24:::0;;-1:-1:-1;;;;;1504:24:25;::::1;::::0;;;::::1;::::0;::::1;::::0;;;1568:7:::1;1513:6:26::0;;-1:-1:-1;;;;;1513:6:26;;1441:85;1568:7:25::1;-1:-1:-1::0;;;;;1543:43:25::1;;;;;;;;;;;1415:178:::0;:::o;30242:742:70:-;30443:13;;;;30438:69;;30479:17;;;;;;;;;;;;;;30438:69;30548:17;30521:23;;;;;;:44;;;;;;;;:::i;:::-;;30517:107;;30588:25;;;;;;;;;;;;;;30517:107;30665:20;30638:23;;;;;;:47;;;;;;;;:::i;:::-;;30634:108;;30708:23;;;;;;;;;;;;;;30634:108;30800:15;1760:6;30756;:16;;;:41;;;;:::i;:::-;:59;30752:114;;;30838:17;;;;;;;;;;;;;;30752:114;30898:16;:27;;;30880:15;:45;30876:102;;;30948:19;;;;;;;;;;;;;;5162:191:12;5228:17;5274:10;5261:9;:23;5257:62;;5293:26;;;;;5309:9;5293:26;;;7707:25:97;7680:18;;5293:26:12;7561:177:97;5257:62:12;-1:-1:-1;5336:10:12;5162:191::o;5730:410::-;5883:15;5901:8;-1:-1:-1;;;;;5901:16:12;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5883:36;-1:-1:-1;;;;;;5933:21:12;;5929:54;;5963:20;;;;;;;;;;;;;;5929:54;6057:76;-1:-1:-1;;;;;6057:32:12;;6090:10;6110:8;6121:11;6057:32;:76::i;3528:257:10:-;3691:13;;;3598:7;3691:13;;;926:26;3691:13;;;;;;;;;3714:43;;3745:12;;;;;11449:10:97;11437:23;;3745:12:10;;;11419:42:97;11392:18;;3745:12:10;11275:192:97;3714:43:10;3774:4;3528:257;-1:-1:-1;;;3528:257:10:o;738:100:25:-;5363:13:27;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:27;;32648:2:97;5355:69:27;;;32630:21:97;32687:2;32667:18;;;32660:30;32726:34;32706:18;;;32699:62;32797:13;32777:18;;;32770:41;32828:19;;5355:69:27;32446:407:97;5355:69:27;805:26:25::1;:24;:26::i;1620:164:57:-:0;5363:13:27;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:27;;32648:2:97;5355:69:27;;;32630:21:97;32687:2;32667:18;;;32660:30;32726:34;32706:18;;;32699:62;32797:13;32777:18;;;32770:41;32828:19;;5355:69:27;32446:407:97;1787:123:10;5363:13:27;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:27;;32648:2:97;5355:69:27;;;32630:21:97;32687:2;32667:18;;;32660:30;32726:34;32706:18;;;32699:62;32797:13;32777:18;;;32770:41;32828:19;;5355:69:27;32446:407:97;5355:69:27;1867:36:10::1;1893:9;1867:25;:36::i;2092:357:15:-:0;2254:12;2235:8;808:1;1059:20;2235:8;1077:1;1059:17;:20::i;:::-;:30;;;1055:82;;1116:20;:8;1134:1;1116:17;:20::i;:::-;1098:39;;;;;35209:6:97;35197:19;;;1098:39:15;;;35179:38:97;35152:18;;1098:39:15;35035:188:97;1055:82:15;2278:19:::1;2300:51;2338:4;2344:6;2300:37;:51::i;:::-;2278:73;;2368:74;2386:8;306:1:0;2435:6:15;2368:17;:74::i;:::-;2361:81:::0;2092:357;-1:-1:-1;;;;;;2092:357:15:o;1777:153:25:-;1866:13;1859:20;;;;;;1889:34;1914:8;1889:24;:34::i;1355:203:37:-;1482:68;;;-1:-1:-1;;;;;35509:15:97;;;1482:68:37;;;35491:34:97;35561:15;;35541:18;;;35534:43;35593:18;;;;35586:34;;;1482:68:37;;;;;;;;;;35403:18:97;;;;1482:68:37;;;;;;;;;;1505:27;1482:68;;;1455:96;;1475:5;;1455:19;:96::i;1104:111:26:-;5363:13:27;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:27;;32648:2:97;5355:69:27;;;32630:21:97;32687:2;32667:18;;;32660:30;32726:34;32706:18;;;32699:62;32797:13;32777:18;;;32770:41;32828:19;;5355:69:27;32446:407:97;5355:69:27;1176:32:26::1;929:10:29::0;1176:18:26::1;:32::i;1916:191:10:-:0;5363:13:27;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:27;;32648:2:97;5355:69:27;;;32630:21:97;32687:2;32667:18;;;32660:30;32726:34;32706:18;;;32699:62;32797:13;32777:18;;;32770:41;32828:19;;5355:69:27;32446:407:97;5355:69:27;-1:-1:-1;;;;;2010:23:10;::::1;2006:53;;2042:17;;;;;;;;;;;;;;13100:305:96::0;13178:6;13221:10;:6;13230:1;13221:10;:::i;:::-;13204:6;:13;:27;;13196:60;;;;-1:-1:-1;;;13196:60:96;;35833:2:97;13196:60:96;;;35815:21:97;35872:2;35852:18;;;35845:30;35911:22;35891:18;;;35884:50;35951:18;;13196:60:96;35631:344:97;13196:60:96;-1:-1:-1;13333:29:96;13349:3;13333:29;13327:36;;13100:305::o;3460:191:0:-;3544:12;3575:11;;;;:69;;3614:30;;;36147:66:97;36242:3;36238:16;;;36234:25;;3614:30:0;;;36222:38:97;36294:16;;;36290:25;36276:12;;;36269:47;36332:12;3614:30:0;;;;;;;;;;;;3575:69;;;3589:22;;36518:66:97;36504:3;36500:16;;;36496:89;3589:22:0;;;36484:102:97;36602:12;;3589:22:0;;;;;;;;;;;;3568:76;3460:191;-1:-1:-1;;;3460:191:0:o;6602:435:15:-;6766:12;6747:8;808:1;1059:20;6747:8;1077:1;1059:17;:20::i;:::-;:30;;;1055:82;;1116:20;:8;1134:1;1116:17;:20::i;1055:82::-;6843:8:::1;250:1:0;6912:25:15;:7;:14;:23;:25::i;:::-;:29;::::0;6940:1:::1;6912:29;:::i;:::-;6980:11;7009:7;6809:221;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;6790:240;;6602:435:::0;;;;;;:::o;2673:187:26:-;2765:6;;;-1:-1:-1;;;;;2781:17:26;;;;;;;;;;;2813:40;;2765:6;;;2781:17;2765:6;;2813:40;;2746:16;;2813:40;2736:124;2673:187;:::o;5196:642:37:-;5615:23;5641:69;5669:4;5641:69;;;;;;;;;;;;;;;;;5649:5;-1:-1:-1;;;;;5641:27:37;;;:69;;;;;:::i;:::-;5615:95;;5728:10;:17;5749:1;5728:22;:56;;;;5765:10;5754:30;;;;;;;;;;;;:::i;:::-;5720:111;;;;-1:-1:-1;;;5720:111:37;;37899:2:97;5720:111:37;;;37881:21:97;37938:2;37918:18;;;37911:30;37977:34;37957:18;;;37950:62;38048:12;38028:18;;;38021:40;38078:19;;5720:111:37;37697:406:97;16288:187:44;16344:6;16379:16;16370:25;;;16362:76;;;;-1:-1:-1;;;16362:76:44;;38310:2:97;16362:76:44;;;38292:21:97;38349:2;38329:18;;;38322:30;38388:34;38368:18;;;38361:62;38459:8;38439:18;;;38432:36;38485:19;;16362:76:44;38108:402:97;4108:223:38;4241:12;4272:52;4294:6;4302:4;4308:1;4311:12;4241;5446;5460:23;5487:6;-1:-1:-1;;;;;5487:11:38;5506:5;5513:4;5487:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5445:73;;;;5535:69;5562:6;5570:7;5579:10;5591:12;7851;7879:7;7875:418;;;7906:10;:17;7927:1;7906:22;7902:286;;-1:-1:-1;;;;;1476:19:28;;;8113:60:38;;;;-1:-1:-1;;;8113:60:38;;39416:2:97;8113:60:38;;;39398:21:97;39455:2;39435:18;;;39428:30;39494:31;39474:18;;;39467:59;39543:18;;8113:60:38;39214:353:97;8113:60:38;-1:-1:-1;8208:10:38;8201:17;;7875:418;8249:33;8257:10;8269:12;8980:17;;:21;8976:379;;9208:10;9202:17;9264:15;9251:10;9247:2;9243:19;9236:44;8976:379;9331:12;9324:20;;-1:-1:-1;;;9324:20:38;;;;;;;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:121:97:-;99:10;92:5;88:22;81:5;78:33;68:61;;125:1;122;115:12;140:132;207:20;;236:30;207:20;236:30;:::i;:::-;140:132;;;:::o;277:184::-;329:77;326:1;319:88;426:4;423:1;416:15;450:4;447:1;440:15;466:255;538:2;532:9;580:6;568:19;;617:18;602:34;;638:22;;;599:62;596:88;;;664:18;;:::i;:::-;700:2;693:22;466:255;:::o;726:251::-;798:2;792:9;;;828:15;;873:18;858:34;;894:22;;;855:62;852:88;;;920:18;;:::i;982:334::-;1053:2;1047:9;1109:2;1099:13;;-1:-1:-1;;1095:86:97;1083:99;;1212:18;1197:34;;1233:22;;;1194:62;1191:88;;;1259:18;;:::i;:::-;1295:2;1288:22;982:334;;-1:-1:-1;982:334:97:o;1321:246::-;1370:4;1403:18;1395:6;1392:30;1389:56;;;1425:18;;:::i;:::-;-1:-1:-1;1482:2:97;1470:15;-1:-1:-1;;1466:88:97;1556:4;1462:99;;1321:246::o;1572:464::-;1615:5;1668:3;1661:4;1653:6;1649:17;1645:27;1635:55;;1686:1;1683;1676:12;1635:55;1722:6;1709:20;1753:49;1769:32;1798:2;1769:32;:::i;:::-;1753:49;:::i;:::-;1827:2;1818:7;1811:19;1873:3;1866:4;1861:2;1853:6;1849:15;1845:26;1842:35;1839:55;;;1890:1;1887;1880:12;1839:55;1955:2;1948:4;1940:6;1936:17;1929:4;1920:7;1916:18;1903:55;2003:1;1978:16;;;1996:4;1974:27;1967:38;;;;1982:7;1572:464;-1:-1:-1;;;1572:464:97:o;2041:154::-;-1:-1:-1;;;;;2120:5:97;2116:54;2109:5;2106:65;2096:93;;2185:1;2182;2175:12;2200:134;2268:20;;2297:31;2268:20;2297:31;:::i;2339:137::-;2424:26;2417:5;2413:38;2406:5;2403:49;2393:77;;2466:1;2463;2456:12;2481:132;2548:20;;2577:30;2548:20;2577:30;:::i;2618:1685::-;2684:5;2732:6;2720:9;2715:3;2711:19;2707:32;2704:52;;;2752:1;2749;2742:12;2704:52;2774:22;;:::i;:::-;2765:31;;2832:9;2819:23;2861:18;2902:2;2894:6;2891:14;2888:34;;;2918:1;2915;2908:12;2888:34;2945:46;2987:3;2978:6;2967:9;2963:22;2945:46;:::i;:::-;2938:5;2931:61;3052:2;3041:9;3037:18;3024:32;3019:2;3012:5;3008:14;3001:56;3089:38;3123:2;3112:9;3108:18;3089:38;:::i;:::-;3084:2;3077:5;3073:14;3066:62;3181:2;3170:9;3166:18;3153:32;3137:48;;3210:2;3200:8;3197:16;3194:36;;;3226:1;3223;3216:12;3194:36;3262:48;3306:3;3295:8;3284:9;3280:24;3262:48;:::i;:::-;3257:2;3250:5;3246:14;3239:72;3372:3;3361:9;3357:19;3344:33;3338:3;3331:5;3327:15;3320:58;3431:3;3420:9;3416:19;3403:33;3387:49;;3461:2;3451:8;3448:16;3445:36;;;3477:1;3474;3467:12;3445:36;3514:48;3558:3;3547:8;3536:9;3532:24;3514:48;:::i;:::-;3508:3;3501:5;3497:15;3490:73;3616:3;3605:9;3601:19;3588:33;3572:49;;3646:2;3636:8;3633:16;3630:36;;;3662:1;3659;3652:12;3630:36;3699:48;3743:3;3732:8;3721:9;3717:24;3699:48;:::i;:::-;3693:3;3686:5;3682:15;3675:73;3809:3;3798:9;3794:19;3781:33;3775:3;3768:5;3764:15;3757:58;3834:3;3824:13;;3869:38;3903:2;3892:9;3888:18;3869:38;:::i;:::-;3864:2;3857:5;3853:14;3846:62;3927:3;3917:13;;3962:37;3995:2;3984:9;3980:18;3962:37;:::i;:::-;3957:2;3950:5;3946:14;3939:61;4019:3;4009:13;;4054:37;4087:2;4076:9;4072:18;4054:37;:::i;:::-;4049:2;4042:5;4038:14;4031:61;4111:3;4101:13;;4167:2;4156:9;4152:18;4139:32;4196:2;4186:8;4183:16;4180:36;;;4212:1;4209;4202:12;4180:36;4248:48;4292:3;4281:8;4270:9;4266:24;4248:48;:::i;:::-;4243:2;4236:5;4232:14;4225:72;;;;2618:1685;;;;:::o;4308:1177::-;4478:6;4486;4494;4502;4510;4554:9;4545:7;4541:23;4584:3;4580:2;4576:12;4573:32;;;4601:1;4598;4591:12;4573:32;4640:9;4627:23;4659:30;4683:5;4659:30;:::i;:::-;4708:5;-1:-1:-1;4764:2:97;4749:18;;4736:32;4787:18;4817:14;;;4814:34;;;4844:1;4841;4834:12;4814:34;4867:70;4929:7;4920:6;4909:9;4905:22;4867:70;:::i;:::-;4857:80;;4990:2;4979:9;4975:18;4962:32;4946:48;;5019:2;5009:8;5006:16;5003:36;;;5035:1;5032;5025:12;5003:36;;5058:52;5102:7;5091:8;5080:9;5076:24;5058:52;:::i;:::-;5048:62;;;5203:2;5134:66;5130:2;5126:75;5122:84;5119:104;;;5219:1;5216;5209:12;5119:104;;5247:22;;:::i;:::-;5322:2;5307:18;;5294:32;5278:49;;5389:3;5374:19;;5361:33;5356:2;5343:16;;5336:59;5285:7;-1:-1:-1;5440:39:97;5474:3;5459:19;;5440:39;:::i;:::-;5430:49;;4308:1177;;;;;;;;:::o;5490:247::-;5549:6;5602:2;5590:9;5581:7;5577:23;5573:32;5570:52;;;5618:1;5615;5608:12;5570:52;5657:9;5644:23;5676:31;5701:5;5676:31;:::i;5742:118::-;5828:5;5821:13;5814:21;5807:5;5804:32;5794:60;;5850:1;5847;5840:12;5865:241;5921:6;5974:2;5962:9;5953:7;5949:23;5945:32;5942:52;;;5990:1;5987;5980:12;5942:52;6029:9;6016:23;6048:28;6070:5;6048:28;:::i;6415:719::-;6536:6;6544;6552;6605:2;6593:9;6584:7;6580:23;6576:32;6573:52;;;6621:1;6618;6611:12;6573:52;6661:9;6648:23;6690:18;6731:2;6723:6;6720:14;6717:34;;;6747:1;6744;6737:12;6717:34;6770:70;6832:7;6823:6;6812:9;6808:22;6770:70;:::i;:::-;6760:80;;6893:2;6882:9;6878:18;6865:32;6849:48;;6922:2;6912:8;6909:16;6906:36;;;6938:1;6935;6928:12;6906:36;;6961:52;7005:7;6994:8;6983:9;6979:24;6961:52;:::i;:::-;6951:62;;;7063:2;7052:9;7048:18;7035:32;7076:28;7098:5;7076:28;:::i;:::-;7123:5;7113:15;;;6415:719;;;;;:::o;7297:259::-;7217:12;;7205:25;;7279:4;7268:16;;;7262:23;7246:14;;;7239:47;7489:2;7474:18;;7501:49;7139:153;7743:348;7795:8;7805:6;7859:3;7852:4;7844:6;7840:17;7836:27;7826:55;;7877:1;7874;7867:12;7826:55;-1:-1:-1;7900:20:97;;7943:18;7932:30;;7929:50;;;7975:1;7972;7965:12;7929:50;8012:4;8004:6;8000:17;7988:29;;8064:3;8057:4;8048:6;8040;8036:19;8032:30;8029:39;8026:59;;;8081:1;8078;8071:12;8026:59;7743:348;;;;;:::o;8096:411::-;8167:6;8175;8228:2;8216:9;8207:7;8203:23;8199:32;8196:52;;;8244:1;8241;8234:12;8196:52;8284:9;8271:23;8317:18;8309:6;8306:30;8303:50;;;8349:1;8346;8339:12;8303:50;8388:59;8439:7;8430:6;8419:9;8415:22;8388:59;:::i;:::-;8466:8;;8362:85;;-1:-1:-1;8096:411:97;-1:-1:-1;;;;8096:411:97:o;9156:180::-;9215:6;9268:2;9256:9;9247:7;9243:23;9239:32;9236:52;;;9284:1;9281;9274:12;9236:52;-1:-1:-1;9307:23:97;;9156:180;-1:-1:-1;9156:180:97:o;9533:313::-;9600:6;9608;9661:2;9649:9;9640:7;9636:23;9632:32;9629:52;;;9677:1;9674;9667:12;9629:52;9716:9;9703:23;9735:30;9759:5;9735:30;:::i;:::-;9784:5;9836:2;9821:18;;;;9808:32;;-1:-1:-1;;;9533:313:97:o;9851:382::-;9916:6;9924;9977:2;9965:9;9956:7;9952:23;9948:32;9945:52;;;9993:1;9990;9983:12;9945:52;10032:9;10019:23;10051:31;10076:5;10051:31;:::i;:::-;10101:5;-1:-1:-1;10158:2:97;10143:18;;10130:32;10171:30;10130:32;10171:30;:::i;:::-;10220:7;10210:17;;;9851:382;;;;;:::o;10238:540::-;10315:6;10323;10331;10384:2;10372:9;10363:7;10359:23;10355:32;10352:52;;;10400:1;10397;10390:12;10352:52;10440:9;10427:23;10473:18;10465:6;10462:30;10459:50;;;10505:1;10502;10495:12;10459:50;10544:59;10595:7;10586:6;10575:9;10571:22;10544:59;:::i;:::-;10622:8;;-1:-1:-1;10518:85:97;-1:-1:-1;;10707:2:97;10692:18;;10679:32;10720:28;10679:32;10720:28;:::i;10783:388::-;10851:6;10859;10912:2;10900:9;10891:7;10887:23;10883:32;10880:52;;;10928:1;10925;10918:12;10880:52;10967:9;10954:23;10986:31;11011:5;10986:31;:::i;:::-;11036:5;-1:-1:-1;11093:2:97;11078:18;;11065:32;11106:33;11065:32;11106:33;:::i;11472:315::-;11540:6;11548;11601:2;11589:9;11580:7;11576:23;11572:32;11569:52;;;11617:1;11614;11607:12;11569:52;11653:9;11640:23;11630:33;;11713:2;11702:9;11698:18;11685:32;11726:31;11751:5;11726:31;:::i;11792:546::-;11872:6;11880;11888;11941:2;11929:9;11920:7;11916:23;11912:32;11909:52;;;11957:1;11954;11947:12;11909:52;11997:9;11984:23;12030:18;12022:6;12019:30;12016:50;;;12062:1;12059;12052:12;12016:50;12101:59;12152:7;12143:6;12132:9;12128:22;12101:59;:::i;:::-;12179:8;;-1:-1:-1;12075:85:97;-1:-1:-1;;12264:2:97;12249:18;;12236:32;12277:31;12236:32;12277:31;:::i;12855:478::-;12934:6;12942;12950;13003:2;12991:9;12982:7;12978:23;12974:32;12971:52;;;13019:1;13016;13009:12;12971:52;13055:9;13042:23;13032:33;;13116:2;13105:9;13101:18;13088:32;13143:18;13135:6;13132:30;13129:50;;;13175:1;13172;13165:12;13129:50;13214:59;13265:7;13256:6;13245:9;13241:22;13214:59;:::i;:::-;12855:478;;13292:8;;-1:-1:-1;13188:85:97;;-1:-1:-1;;;;12855:478:97:o;14473:184::-;14525:77;14522:1;14515:88;14622:4;14619:1;14612:15;14646:4;14643:1;14636:15;14662:738;14937:25;;;14993:2;14978:18;;14971:34;;;14924:3;14909:19;;15035:1;15024:13;;15014:201;;15071:77;15068:1;15061:88;15172:4;15169:1;15162:15;15200:4;15197:1;15190:15;15014:201;15251:6;15246:2;15235:9;15231:18;15224:34;-1:-1:-1;;;;;15298:6:97;15294:55;15289:2;15278:9;15274:18;15267:83;15387:6;15381:3;15370:9;15366:19;15359:35;14662:738;;;;;;;;:::o;15405:245::-;15463:6;15516:2;15504:9;15495:7;15491:23;15487:32;15484:52;;;15532:1;15529;15522:12;15484:52;15571:9;15558:23;15590:30;15614:5;15590:30;:::i;15837:683::-;15935:6;15943;15951;15959;15967;16020:3;16008:9;15999:7;15995:23;15991:33;15988:53;;;16037:1;16034;16027:12;15988:53;16077:9;16064:23;16110:18;16102:6;16099:30;16096:50;;;16142:1;16139;16132:12;16096:50;16181:59;16232:7;16223:6;16212:9;16208:22;16181:59;:::i;:::-;16259:8;;-1:-1:-1;16155:85:97;-1:-1:-1;;16344:2:97;16329:18;;16316:32;16357:31;16316:32;16357:31;:::i;:::-;15837:683;;;;-1:-1:-1;16407:5:97;;16459:2;16444:18;;16431:32;;-1:-1:-1;16510:2:97;16495:18;16482:32;;15837:683;-1:-1:-1;;15837:683:97:o;16525:632::-;16696:2;16748:21;;;16818:13;;16721:18;;;16840:22;;;16667:4;;16696:2;16919:15;;;;16893:2;16878:18;;;16667:4;16962:169;16976:6;16973:1;16970:13;16962:169;;;17037:13;;17025:26;;17106:15;;;;17071:12;;;;16998:1;16991:9;16962:169;;;-1:-1:-1;17148:3:97;;16525:632;-1:-1:-1;;;;;;16525:632:97:o;17162:250::-;17247:1;17257:113;17271:6;17268:1;17265:13;17257:113;;;17347:11;;;17341:18;17328:11;;;17321:39;17293:2;17286:10;17257:113;;;-1:-1:-1;;17404:1:97;17386:16;;17379:27;17162:250::o;17417:330::-;17459:3;17497:5;17491:12;17524:6;17519:3;17512:19;17540:76;17609:6;17602:4;17597:3;17593:14;17586:4;17579:5;17575:16;17540:76;:::i;:::-;17661:2;17649:15;-1:-1:-1;;17645:88:97;17636:98;;;;17736:4;17632:109;;17417:330;-1:-1:-1;;17417:330:97:o;17867:1592::-;17929:3;17957:6;17998:5;17992:12;18025:2;18020:3;18013:15;18049:45;18090:2;18085:3;18081:12;18067;18049:45;:::i;:::-;18037:57;;;18143:4;18136:5;18132:16;18126:23;18119:4;18114:3;18110:14;18103:47;18198:4;18191:5;18187:16;18181:23;18213:50;18257:4;18252:3;18248:14;18232;-1:-1:-1;;;;;8578:54:97;8566:67;;8512:127;18213:50;;18311:4;18304:5;18300:16;18294:23;18359:3;18353:4;18349:14;18342:4;18337:3;18333:14;18326:38;18387:39;18421:4;18405:14;18387:39;:::i;:::-;18373:53;;;18475:4;18468:5;18464:16;18458:23;18451:4;18446:3;18442:14;18435:47;18530:4;18523:5;18519:16;18513:23;18580:3;18572:6;18568:16;18561:4;18556:3;18552:14;18545:40;18608:41;18642:6;18626:14;18608:41;:::i;:::-;18594:55;;;18697:4;18690:5;18686:16;18680:23;18747:3;18739:6;18735:16;18728:4;18723:3;18719:14;18712:40;18775:41;18809:6;18793:14;18775:41;:::i;:::-;18761:55;;;18865:4;18858:5;18854:16;18848:23;18841:4;18836:3;18832:14;18825:47;18891:6;18945:2;18938:5;18934:14;18928:21;18958:48;19002:2;18997:3;18993:12;18977:14;-1:-1:-1;;;;;8578:54:97;8566:67;;8512:127;18958:48;-1:-1:-1;;19025:6:97;19068:14;;;19062:21;17828:26;17817:38;19126:12;;;17805:51;19158:6;19201:14;;;19195:21;11252:10;11241:22;19259:12;;;11229:35;19291:6;19334:14;;;19328:21;19379:16;;;19365:12;;;19358:38;19412:41;19383:6;19328:21;19412:41;:::i;19464:296::-;19669:2;19658:9;19651:21;19632:4;19689:65;19750:2;19739:9;19735:18;19727:6;19689:65;:::i;20038:271::-;20221:6;20213;20208:3;20195:33;20177:3;20247:16;;20272:13;;;20247:16;20038:271;-1:-1:-1;20038:271:97:o;20582:326::-;20671:6;20666:3;20659:19;20723:6;20716:5;20709:4;20704:3;20700:14;20687:43;;20775:1;20768:4;20759:6;20754:3;20750:16;20746:27;20739:38;20641:3;20897:4;-1:-1:-1;;20822:2:97;20814:6;20810:15;20806:88;20801:3;20797:98;20793:109;20786:116;;20582:326;;;;:::o;20913:409::-;21116:2;21105:9;21098:21;21079:4;21136:62;21194:2;21183:9;21179:18;21171:6;21163;21136:62;:::i;:::-;21241:14;;21234:22;21229:2;21214:18;;21207:50;-1:-1:-1;21300:14:97;;21293:22;21288:2;21273:18;;;21266:50;21128:70;20913:409;-1:-1:-1;;20913:409:97:o;21941:443::-;21995:5;22048:3;22041:4;22033:6;22029:17;22025:27;22015:55;;22066:1;22063;22056:12;22015:55;22095:6;22089:13;22126:49;22142:32;22171:2;22142:32;:::i;22126:49::-;22200:2;22191:7;22184:19;22246:3;22239:4;22234:2;22226:6;22222:15;22218:26;22215:35;22212:55;;;22263:1;22260;22253:12;22212:55;22276:77;22350:2;22343:4;22334:7;22330:18;22323:4;22315:6;22311:17;22276:77;:::i;22389:138::-;22468:13;;22490:31;22468:13;22490:31;:::i;22532:136::-;22610:13;;22632:30;22610:13;22632:30;:::i;22673:136::-;22751:13;;22773:30;22751:13;22773:30;:::i;22814:1887::-;22922:6;22975:2;22963:9;22954:7;22950:23;22946:32;22943:52;;;22991:1;22988;22981:12;22943:52;23024:9;23018:16;23053:18;23094:2;23086:6;23083:14;23080:34;;;23110:1;23107;23100:12;23080:34;23133:22;;;;23189:6;23171:16;;;23167:29;23164:49;;;23209:1;23206;23199:12;23164:49;23235:22;;:::i;:::-;23288:2;23282:9;23316:2;23306:8;23303:16;23300:36;;;23332:1;23329;23322:12;23300:36;23359:56;23407:7;23396:8;23392:2;23388:17;23359:56;:::i;:::-;23352:5;23345:71;;23462:2;23458;23454:11;23448:18;23443:2;23436:5;23432:14;23425:42;23499;23537:2;23533;23529:11;23499:42;:::i;:::-;23494:2;23487:5;23483:14;23476:66;23581:2;23577;23573:11;23567:18;23610:2;23600:8;23597:16;23594:36;;;23626:1;23623;23616:12;23594:36;23662:56;23710:7;23699:8;23695:2;23691:17;23662:56;:::i;:::-;23657:2;23650:5;23646:14;23639:80;;23766:3;23762:2;23758:12;23752:19;23746:3;23739:5;23735:15;23728:44;23811:3;23807:2;23803:12;23797:19;23841:2;23831:8;23828:16;23825:36;;;23857:1;23854;23847:12;23825:36;23894:56;23942:7;23931:8;23927:2;23923:17;23894:56;:::i;:::-;23888:3;23881:5;23877:15;23870:81;;23990:3;23986:2;23982:12;23976:19;24020:2;24010:8;24007:16;24004:36;;;24036:1;24033;24026:12;24004:36;24073:56;24121:7;24110:8;24106:2;24102:17;24073:56;:::i;:::-;24067:3;24060:5;24056:15;24049:81;;24177:3;24173:2;24169:12;24163:19;24157:3;24150:5;24146:15;24139:44;24202:3;24237:42;24275:2;24271;24267:11;24237:42;:::i;:::-;24221:14;;;24214:66;24299:3;24334:41;24363:11;;;24334:41;:::i;:::-;24318:14;;;24311:65;24395:3;24430:41;24459:11;;;24430:41;:::i;:::-;24414:14;;;24407:65;24491:3;24525:11;;;24519:18;24549:16;;;24546:36;;;24578:1;24575;24568:12;24546:36;24614:56;24662:7;24651:8;24647:2;24643:17;24614:56;:::i;:::-;24598:14;;;24591:80;;;;-1:-1:-1;24602:5:97;22814:1887;-1:-1:-1;;;;;22814:1887:97:o;24706:245::-;24773:6;24826:2;24814:9;24805:7;24801:23;24797:32;24794:52;;;24842:1;24839;24832:12;24794:52;24874:9;24868:16;24893:28;24915:5;24893:28;:::i;25366:184::-;25418:77;25415:1;25408:88;25515:4;25512:1;25505:15;25539:4;25536:1;25529:15;25555:125;25620:9;;;25641:10;;;25638:36;;;25654:18;;:::i;25685:289::-;25816:3;25854:6;25848:13;25870:66;25929:6;25924:3;25917:4;25909:6;25905:17;25870:66;:::i;:::-;25952:16;;;;;25685:289;-1:-1:-1;;25685:289:97:o;26189:698::-;26504:3;26493:9;26486:22;26467:4;26525:63;26583:3;26572:9;26568:19;26560:6;26552;26525:63;:::i;:::-;26619:2;26604:18;;26597:34;;;;-1:-1:-1;26662:2:97;26647:18;;26640:34;;;;26705:2;26690:18;;26683:34;;;;26748:3;26733:19;;26726:35;;;;26805:14;26798:22;26792:3;26777:19;;26770:51;26865:14;26858:22;26852:3;26837:19;;;26830:51;26517:71;26189:698;-1:-1:-1;;26189:698:97:o;26892:1011::-;26987:6;27018:2;27061;27049:9;27040:7;27036:23;27032:32;27029:52;;;27077:1;27074;27067:12;27029:52;27110:9;27104:16;27139:18;27180:2;27172:6;27169:14;27166:34;;;27196:1;27193;27186:12;27166:34;27234:6;27223:9;27219:22;27209:32;;27279:7;27272:4;27268:2;27264:13;27260:27;27250:55;;27301:1;27298;27291:12;27250:55;27330:2;27324:9;27352:2;27348;27345:10;27342:36;;;27358:18;;:::i;:::-;27404:2;27401:1;27397:10;27387:20;;27427:28;27451:2;27447;27443:11;27427:28;:::i;:::-;27489:15;;;27559:11;;;27555:20;;;27520:12;;;;27587:19;;;27584:39;;;27619:1;27616;27609:12;27584:39;27643:11;;;;27663:210;27679:6;27674:3;27671:15;27663:210;;;27752:3;27746:10;27733:23;;27769:31;27794:5;27769:31;:::i;:::-;27813:18;;;27696:12;;;;27851;;;;27663:210;;;27892:5;26892:1011;-1:-1:-1;;;;;;;;26892:1011:97:o;27908:184::-;27960:77;27957:1;27950:88;28057:4;28054:1;28047:15;28081:4;28078:1;28071:15;28097:195;28136:3;28167:66;28160:5;28157:77;28154:103;;28237:18;;:::i;:::-;-1:-1:-1;28284:1:97;28273:13;;28097:195::o;28297:971::-;28518:2;28507:9;28500:21;28576:10;28567:6;28561:13;28557:30;28552:2;28541:9;28537:18;28530:58;28642:4;28634:6;28630:17;28624:24;28619:2;28608:9;28604:18;28597:52;28481:4;28696:2;28688:6;28684:15;28678:22;28737:4;28731:3;28720:9;28716:19;28709:33;28765:52;28812:3;28801:9;28797:19;28783:12;28765:52;:::i;:::-;28751:66;;28866:2;28858:6;28854:15;28848:22;28936:66;28924:9;28916:6;28912:22;28908:95;28901:4;28890:9;28886:20;28879:125;29027:41;29061:6;29045:14;29027:41;:::i;:::-;29137:3;29125:16;;;;29119:23;29112:31;29105:39;29099:3;29084:19;;29077:68;-1:-1:-1;;;;;;;;29206:55:97;;;;29199:4;29184:20;;;29177:85;29013:55;28297:971::o;29273:284::-;29343:5;29391:4;29379:9;29374:3;29370:19;29366:30;29363:50;;;29409:1;29406;29399:12;29363:50;29431:22;;:::i;:::-;29422:31;;29482:9;29476:16;29469:5;29462:31;29546:2;29535:9;29531:18;29525:25;29520:2;29513:5;29509:14;29502:49;29273:284;;;;:::o;29562:726::-;29665:6;29718:3;29706:9;29697:7;29693:23;29689:33;29686:53;;;29735:1;29732;29725:12;29686:53;29768:2;29762:9;29810:4;29802:6;29798:17;29834:18;29902:6;29890:10;29887:22;29882:2;29870:10;29867:18;29864:46;29861:72;;;29913:18;;:::i;:::-;29953:10;29949:2;29942:22;29994:9;29988:16;29980:6;29973:32;30048:2;30037:9;30033:18;30027:25;30014:38;;30092:2;30085:5;30081:14;30074:5;30071:25;30061:53;;30110:1;30107;30100:12;30061:53;-1:-1:-1;30142:2:97;30130:15;;30123:30;30186:70;30248:7;30243:2;30228:18;;30186:70;:::i;:::-;30181:2;30169:15;;30162:95;30173:6;29562:726;-1:-1:-1;;;29562:726:97:o;31392:340::-;-1:-1:-1;;;;;31573:6:97;31569:55;31558:9;31551:74;31661:2;31656;31645:9;31641:18;31634:30;31532:4;31681:45;31722:2;31711:9;31707:18;31699:6;31681:45;:::i;31737:441::-;31905:4;-1:-1:-1;;;;;32015:2:97;32007:6;32003:15;31992:9;31985:34;32067:2;32059:6;32055:15;32050:2;32039:9;32035:18;32028:43;;32107:2;32102;32091:9;32087:18;32080:30;32127:45;32168:2;32157:9;32153:18;32145:6;32127:45;:::i;32183:258::-;32282:6;32335:2;32323:9;32314:7;32310:23;32306:32;32303:52;;;32351:1;32348;32341:12;32303:52;32374:61;32427:7;32416:9;32374:61;:::i;32858:340::-;33035:2;33024:9;33017:21;32998:4;33055:45;33096:2;33085:9;33081:18;33073:6;33055:45;:::i;:::-;33047:53;;-1:-1:-1;;;;;33140:6:97;33136:55;33131:2;33120:9;33116:18;33109:83;32858:340;;;;;:::o;33203:184::-;33273:6;33326:2;33314:9;33305:7;33301:23;33297:32;33294:52;;;33342:1;33339;33332:12;33294:52;-1:-1:-1;33365:16:97;;33203:184;-1:-1:-1;33203:184:97:o;33392:291::-;33569:6;33558:9;33551:25;33612:2;33607;33596:9;33592:18;33585:30;33532:4;33632:45;33673:2;33662:9;33658:18;33650:6;33632:45;:::i;33688:819::-;34091:10;34083:6;34079:23;34068:9;34061:42;34139:3;34134:2;34123:9;34119:18;34112:31;34042:4;34166:66;34227:3;34216:9;34212:19;34204:6;34166:66;:::i;:::-;34280:9;34272:6;34268:22;34263:2;34252:9;34248:18;34241:50;34308:33;34334:6;34326;34308:33;:::i;:::-;7217:12;;34404:2;34389:18;;7205:25;7279:4;7268:16;;7262:23;7246:14;;;7239:47;34300:41;-1:-1:-1;34350:58:97;;-1:-1:-1;7139:153:97;34350:58;-1:-1:-1;;;;;34449:6:97;34445:55;34439:3;34428:9;34424:19;34417:84;33688:819;;;;;;;;:::o;34512:251::-;34582:6;34635:2;34623:9;34614:7;34610:23;34606:32;34603:52;;;34651:1;34648;34641:12;34603:52;34683:9;34677:16;34702:31;34727:5;34702:31;:::i;36625:168::-;36692:6;36718:10;;;36730;;;36714:27;;36753:11;;;36750:37;;;36767:18;;:::i;:::-;36750:37;36625:168;;;;:::o;36798:894::-;37047:3;37085:6;37079:13;37101:66;37160:6;37155:3;37148:4;37140:6;37136:17;37101:66;:::i;:::-;37198:6;37193:3;37189:16;37176:29;;37224:66;37335:2;37326:6;37321:3;37317:16;37313:25;37306:5;37299:40;37392:66;37383:6;37378:3;37374:16;37370:89;37366:1;37359:5;37355:13;37348:112;37513:2;37504:6;37499:3;37495:16;37491:25;37487:1;37480:5;37476:13;37469:48;;37548:6;37542:13;37564:78;37633:8;37629:1;37622:5;37618:13;37611:4;37603:6;37599:17;37564:78;:::i;:::-;37662:20;37684:1;37658:28;;36798:894;-1:-1:-1;;;;;;;36798:894:97:o;39572:220::-;39721:2;39710:9;39703:21;39684:4;39741:45;39782:2;39771:9;39767:18;39759:6;39741:45;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"3870400","executionCost":"infinite","totalCost":"infinite"},"external":{"LAYER_ZERO_EID()":"infinite","RISK_ORACLE()":"infinite","UPDATE_EXPIRATION_TIME()":"286","acceptOwnership()":"infinite","accessControlManager()":"2420","endpoint()":"infinite","executeRegisteredUpdate(uint256)":"infinite","getExecutableUpdates(string,address)":"infinite","getLastProcessedUpdate(string,address)":"infinite","getLastRegisteredUpdate(string,address)":"infinite","getRiskParameterConfig(string)":"infinite","initialize(address,address)":"infinite","isUpdateExecutable(uint256)":"infinite","lastProcessedUpdate(bytes32,address)":"2728","lastRegisteredUpdate(bytes32,address)":"2727","lzSend(uint32,(string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes),bytes,(uint256,uint256),address)":"infinite","oAppVersion()":"297","owner()":"2399","paused()":"2400","peers(uint32)":"2575","pendingOwner()":"2442","processUpdate(uint256)":"infinite","quote((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes),bytes,bool)":"infinite","rejectUpdate(uint256)":"30092","renounceOwnership()":"226","resendRemoteUpdate(uint256,bytes)":"infinite","riskParameterConfigs(bytes32)":"8958","setAccessControlManager(address)":"infinite","setConfigActive(string,bool)":"infinite","setDelegate(address)":"infinite","setPaused(bool)":"infinite","setPeer(uint32,bytes32)":"26115","setRiskParameterConfig(string,address,uint256,uint256)":"infinite","setWhitelistedExecutor(address,bool)":"infinite","sweepNative()":"infinite","transferOwnership(address)":"infinite","updates(uint256)":"9105","whitelistedExecutors(address)":"2635"},"internal":{"_ensureNoActiveUpdate(struct RiskParameterUpdate memory)":"infinite","_executeUpdate(struct RiskParameterUpdate memory,contract IRiskSteward)":"infinite","_isUpdateExecutable(uint256)":"infinite","_registerUpdate(struct RiskParameterUpdate memory,struct IRiskStewardReceiver.RiskParamConfig memory,bool)":"infinite","_sendRemoteUpdate(struct RiskParameterUpdate memory,bytes memory,uint256)":"infinite","_transferOwnership(address)":"infinite","_validateExecuteUpdate(struct IRiskStewardReceiver.RegisteredUpdate storage pointer,struct RiskParameterUpdate memory,struct IRiskStewardReceiver.RiskParamConfig storage pointer)":"infinite","_validateRegisterUpdate(struct RiskParameterUpdate memory,struct IRiskStewardReceiver.RiskParamConfig storage pointer,bool)":"infinite"}},"methodIdentifiers":{"LAYER_ZERO_EID()":"4c213449","RISK_ORACLE()":"7dd8f522","UPDATE_EXPIRATION_TIME()":"233dd0da","acceptOwnership()":"79ba5097","accessControlManager()":"b4a0bdf3","endpoint()":"5e280f11","executeRegisteredUpdate(uint256)":"f8ce6ac2","getExecutableUpdates(string,address)":"f63106e4","getLastProcessedUpdate(string,address)":"f75875ad","getLastRegisteredUpdate(string,address)":"595bd377","getRiskParameterConfig(string)":"28207141","initialize(address,address)":"485cc955","isUpdateExecutable(uint256)":"33bde2ca","lastProcessedUpdate(bytes32,address)":"513602e8","lastRegisteredUpdate(bytes32,address)":"65bd691c","lzSend(uint32,(string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes),bytes,(uint256,uint256),address)":"05687c19","oAppVersion()":"17442b70","owner()":"8da5cb5b","paused()":"5c975abb","peers(uint32)":"bb0b6a53","pendingOwner()":"e30c3978","processUpdate(uint256)":"62656e63","quote((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes),bytes,bool)":"1d1c3620","rejectUpdate(uint256)":"c3e10deb","renounceOwnership()":"715018a6","resendRemoteUpdate(uint256,bytes)":"85a7602f","riskParameterConfigs(bytes32)":"af9e0fd3","setAccessControlManager(address)":"0e32cb86","setConfigActive(string,bool)":"438653fe","setDelegate(address)":"ca5eb5e1","setPaused(bool)":"16c38b3c","setPeer(uint32,bytes32)":"3400288b","setRiskParameterConfig(string,address,uint256,uint256)":"c2a23c84","setWhitelistedExecutor(address,bool)":"3aed7f31","sweepNative()":"ab803a76","transferOwnership(address)":"f2fde38b","updates(uint256)":"b4c2f727","whitelistedExecutors(address)":"fe2b3502"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"riskOracle_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"endpoint_\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"layerZeroLzEid_\",\"type\":\"uint32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ConfigNotActive\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ConfigStatusUnchanged\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExecutorStatusUnchanged\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDebounce\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelegate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEndpointCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidLayerZeroEid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidLzSendCaller\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"optionType\",\"type\":\"uint16\"}],\"name\":\"InvalidOptionType\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRegisteredUpdate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTimelock\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidUpdateToResend\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidUpdateType\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LzTokenUnavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"NoPeer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotAnExecutor\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"}],\"name\":\"NotEnoughNative\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"OnlyPeer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PauseStatusUnchanged\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PausedError\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"RegisteredUpdateTypeExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RenounceOwnershipNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"calledContract\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"methodSignature\",\"type\":\"string\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsupportedUpdateType\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpdateAlreadyResolved\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpdateIsExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpdateNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpdateNotUnlocked\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpdateTooFrequent\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UpdateWillExpireBeforeUnlock\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"updateTypeHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"previousActive\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"}],\"name\":\"ConfigActiveUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"previousApproved\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ExecutorStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldAccessControlManager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAccessControlManager\",\"type\":\"address\"}],\"name\":\"NewAccessControlManager\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"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\":\"bool\",\"name\":\"previousPaused\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"paused\",\"type\":\"bool\"}],\"name\":\"PauseStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"name\":\"PeerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"updateTypeHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousRiskSteward\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"riskSteward\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previousDebounce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"debounce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previousTimelock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timelock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"previousActive\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"}],\"name\":\"RiskParameterConfigUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SweepNative\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"}],\"name\":\"UpdateExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"}],\"name\":\"UpdateExpired\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"unlockTime\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"UpdateRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"}],\"name\":\"UpdateRejected\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"destLzEid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"UpdateResentToDestination\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"destLzEid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"UpdateSentToDestination\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"LAYER_ZERO_EID\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RISK_ORACLE\",\"outputs\":[{\"internalType\":\"contract IRiskOracle\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPDATE_EXPIRATION_TIME\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"accessControlManager\",\"outputs\":[{\"internalType\":\"contract IAccessControlManagerV8\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpointV2\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"}],\"name\":\"executeRegisteredUpdate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"comptroller\",\"type\":\"address\"}],\"name\":\"getExecutableUpdates\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"executableUpdates\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"getLastProcessedUpdate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"getLastRegisteredUpdate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"}],\"name\":\"getRiskParameterConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"debounce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timelock\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"riskSteward\",\"type\":\"address\"}],\"internalType\":\"struct IRiskStewardReceiver.RiskParamConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"acm_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegate_\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"}],\"name\":\"isUpdateExecutable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"lastProcessedUpdate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"lastRegisteredUpdate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"referenceId\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"updateTypeKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"newValue\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"previousValue\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"poolId\",\"type\":\"uint96\"},{\"internalType\":\"uint32\",\"name\":\"destLzEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"additionalData\",\"type\":\"bytes\"}],\"internalType\":\"struct RiskParameterUpdate\",\"name\":\"update\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"fee\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"refundAddress\",\"type\":\"address\"}],\"name\":\"lzSend\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oAppVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"senderVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receiverVersion\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"peers\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"}],\"name\":\"processUpdate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"referenceId\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"updateTypeKey\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"newValue\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"previousValue\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"poolId\",\"type\":\"uint96\"},{\"internalType\":\"uint32\",\"name\":\"destLzEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"additionalData\",\"type\":\"bytes\"}],\"internalType\":\"struct RiskParameterUpdate\",\"name\":\"update\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"payInLzToken\",\"type\":\"bool\"}],\"name\":\"quote\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"fee\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"}],\"name\":\"rejectUpdate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"name\":\"resendRemoteUpdate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"riskParameterConfigs\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"debounce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timelock\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"riskSteward\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessControlManager_\",\"type\":\"address\"}],\"name\":\"setAccessControlManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"}],\"name\":\"setConfigActive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"paused_\",\"type\":\"bool\"}],\"name\":\"setPaused\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"setPeer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"updateType\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"riskSteward\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"debounce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timelock\",\"type\":\"uint256\"}],\"name\":\"setRiskParameterConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setWhitelistedExecutor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sweepNative\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"}],\"name\":\"updates\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"updateId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unlockTime\",\"type\":\"uint256\"},{\"internalType\":\"enum IRiskStewardReceiver.UpdateStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"executedAt\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"whitelistedExecutors\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"author\":\"Venus\",\"custom:security-contact\":\"https://github.com/VenusProtocol/governance-contracts#discussion\",\"errors\":{\"TransferFailed()\":[{\"custom:error\":\"TransferFailed\"}]},\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"PauseStatusUpdated(bool,bool)\":{\"params\":{\"paused\":\"Current pause state\",\"previousPaused\":\"Previous pause state\"}}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\",\"params\":{\"endpoint_\":\"The LayerZero endpoint contract used by the underlying `OAppUpgradeable`.\",\"layerZeroLzEid_\":\"The LayerZero endpoint ID (EID) for this chain.\",\"riskOracle_\":\"The address of the Risk Oracle contract.\"}},\"executeRegisteredUpdate(uint256)\":{\"custom:access\":\"Only whitelisted executors can call this function\",\"custom:error\":\"Throws NotAnExecutor if the caller is not a whitelisted executorThrows InvalidRegisteredUpdate if the update was never registeredThrows UpdateAlreadyResolved if the update was already executed or rejectedThrows UpdateIsExpired if the update has expiredThrows ConfigNotActive if the config is not activeThrows UpdateNotUnlocked if the unlock time has not passed\",\"custom:event\":\"Emits UpdateExecuted with the oracle update ID\",\"params\":{\"updateId\":\"The oracle update ID of the update to execute\"}},\"getExecutableUpdates(string,address)\":{\"params\":{\"comptroller\":\"The address of the Comptroller (either Core Pool or Isolated Pools) that manages the markets\",\"updateType\":\"The human\\u2011readable identifier of the update type to filter by\"},\"returns\":{\"executableUpdates\":\"Array of update IDs that are ready to be executed\"}},\"getLastProcessedUpdate(string,address)\":{\"params\":{\"market\":\"The address of the market\",\"updateType\":\"The human-readable identifier of the update type\"},\"returns\":{\"_0\":\"The last processed update ID\"}},\"getLastRegisteredUpdate(string,address)\":{\"params\":{\"market\":\"The address of the market\",\"updateType\":\"The human-readable identifier of the update type\"},\"returns\":{\"_0\":\"The last registered update ID\"}},\"getRiskParameterConfig(string)\":{\"params\":{\"updateType\":\"The human-readable identifier of the update type\"},\"returns\":{\"_0\":\"The risk parameter configuration\"}},\"initialize(address,address)\":{\"params\":{\"acm_\":\"The address of the Access Control Manager\",\"delegate_\":\"The address of the OApp owner passed to `__OApp_init`.\"}},\"isUpdateExecutable(uint256)\":{\"params\":{\"updateId\":\"The oracle update ID to query\"},\"returns\":{\"_0\":\"True if the update is pending, not expired, active, and past its timelock\"}},\"lzSend(uint32,(string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes),bytes,(uint256,uint256),address)\":{\"custom:error\":\"InvalidLzSendCaller if called by any address other than this contract\",\"params\":{\"dstEid\":\"Destination chain endpoint ID\",\"fee\":\"Messaging fee structure returned by `quote`\",\"options\":\"LayerZero message options; if empty, a default executor option is used\",\"refundAddress\":\"Address to receive any surplus fee refunds\",\"update\":\"The risk parameter update payload to send\"}},\"oAppVersion()\":{\"details\":\"Providing 0 as the default for OAppReceiver version. Indicates that the OAppReceiver is not implemented. ie. this is a SEND only OApp.If the OApp uses both OAppSender and OAppReceiver, then this needs to be override returning the correct versions\",\"returns\":{\"receiverVersion\":\"The version of the OAppReceiver.sol contract.\",\"senderVersion\":\"The version of the OAppSender.sol contract.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"peers(uint32)\":{\"params\":{\"_eid\":\"The endpoint ID.\"},\"returns\":{\"_0\":\"peer The address of the peer associated with the specified endpoint.\"}},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"processUpdate(uint256)\":{\"custom:error\":\"Throws UpdateAlreadyResolved if the update was already processedThrows UpdateIsExpired if the update has expiredThrows ConfigNotActive if the config is not activeThrows UpdateTooFrequent if the debounce period has not passedThrows RegisteredUpdateTypeExist if there is a non-expired pending update of the same type\",\"custom:event\":\"Emits UpdateRegistered, UpdateExecuted, or UpdateSentToDestination depending on the update type\",\"params\":{\"updateId\":\"The update ID from the oracle's perspective\"}},\"quote((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes),bytes,bool)\":{\"params\":{\"options\":\"Message execution options (e.g., for sending gas to the destination)\",\"payInLzToken\":\"Whether to return the fee in ZRO token instead of native gas\",\"update\":\"The risk parameter update payload to be sent\"},\"returns\":{\"fee\":\"A `MessagingFee` struct containing the calculated gas fee\"}},\"rejectUpdate(uint256)\":{\"custom:access\":\"Only whitelisted executors can call this function\",\"custom:error\":\"Throws UpdateAlreadyResolved if the update was already executed or rejected\",\"custom:event\":\"Emits UpdateRejected with the oracle update ID\",\"params\":{\"updateId\":\"The oracle update ID of the update to reject\"}},\"renounceOwnership()\":{\"custom:error\":\"Throws RenounceOwnershipNotAllowed\"},\"resendRemoteUpdate(uint256,bytes)\":{\"custom:access\":\"Only whitelisted executors can call this function\",\"custom:error\":\"Throws NotAnExecutor if the caller is not a whitelisted executorThrows InvalidUpdateToResend if the update status is not SENT_TO_DESTINATIONThrows UpdateIsExpired if the update has expired\",\"custom:event\":\"Emits UpdateResentToDestination with the update ID, destination chain ID, update type, and market\",\"details\":\"Duplicate update rejection is handled in the destination contract itself, so resending      the same update multiple times is safe and will be deduplicated on the destination side.\",\"params\":{\"options\":\"LayerZero message options; if empty, default executor option is used\",\"updateId\":\"The oracle update ID to resend\"}},\"setAccessControlManager(address)\":{\"custom:access\":\"Only Governance\",\"custom:event\":\"Emits NewAccessControlManager event\",\"details\":\"Admin function to set address of AccessControlManager\",\"params\":{\"accessControlManager_\":\"The new address of the AccessControlManager\"}},\"setConfigActive(string,bool)\":{\"custom:access\":\"Controlled by AccessControlManager\",\"custom:error\":\"Throws UnsupportedUpdateType if the update type is not supportedThrows ConfigStatusUnchanged if the active status is already set to the desired value\",\"custom:event\":\"Emits ConfigActiveUpdated with the update type hash, update type, previous active status, and the active status\",\"params\":{\"active\":\"The active status to set\",\"updateType\":\"The type of update to configure\"}},\"setDelegate(address)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\",\"params\":{\"_delegate\":\"The address of the delegate to be set.\"}},\"setPaused(bool)\":{\"custom:access\":\"Controlled by AccessControlManager\",\"custom:event\":\"Emits PauseStatusUpdated\",\"params\":{\"paused_\":\"True to pause, false to unpause\"}},\"setPeer(uint32,bytes32)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_peer\":\"The address of the peer to be associated with the corresponding endpoint.\"}},\"setRiskParameterConfig(string,address,uint256,uint256)\":{\"custom:access\":\"Controlled by AccessControlManager\",\"custom:error\":\"InvalidUpdateType if the update type string is emptyThrows InvalidDebounce if the debounce is 0Throws InvalidTimelock if the timelock is greater than or equal to the expiration timeThrows ZeroAddressNotAllowed if the risk steward address is zero\",\"custom:event\":\"Emits RiskParameterConfigUpdated\",\"params\":{\"debounce\":\"The debounce period for the update\",\"riskSteward\":\"The address for the risk steward contract responsible for processing the update\",\"timelock\":\"The timelock period before the update can be executed\",\"updateType\":\"The type of update to configure\"}},\"setWhitelistedExecutor(address,bool)\":{\"custom:access\":\"Controlled by AccessControlManager\",\"custom:error\":\"Throws ZeroAddressNotAllowed if the executor address is zeroThrows ExecutorStatusUnchanged if the executor whitelist status is already set to the desired value\",\"custom:event\":\"Emits ExecutorStatusUpdated with the executor address, previous approval status, and approval status\",\"params\":{\"approved\":\"The whitelist status to set (true to whitelist, false to remove)\",\"executor\":\"The address of the executor\"}},\"sweepNative()\":{\"custom:event\":\"Emits SweepNative event.\"},\"transferOwnership(address)\":{\"details\":\"Overrides OwnableUpgradeable and Ownable2StepUpgradeable to resolve      the multiple inheritance ownership transfer conflict.\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"title\":\"RiskStewardReceiver\",\"version\":1},\"userdoc\":{\"errors\":{\"ConfigNotActive()\":[{\"notice\":\"Thrown if a submitted update is not active and therefore cannot be processed\"}],\"ConfigStatusUnchanged()\":[{\"notice\":\"Thrown when trying to set the same config active status\"}],\"ExecutorStatusUnchanged()\":[{\"notice\":\"Thrown when trying to set the same executor whitelist status\"}],\"InvalidDebounce()\":[{\"notice\":\"Thrown when a debounce value of 0 is set\"}],\"InvalidLayerZeroEid()\":[{\"notice\":\"Thrown when an invalid LayerZero endpoint ID is provided\"}],\"InvalidLzSendCaller()\":[{\"notice\":\"Thrown when attempting to call lzSend from an address other than this contract\"}],\"InvalidRegisteredUpdate()\":[{\"notice\":\"Thrown when trying to execute an update that was never registered\"}],\"InvalidTimelock()\":[{\"notice\":\"Thrown when a timelock value is greater than or equal to the expiration time\"}],\"InvalidUpdateToResend()\":[{\"notice\":\"Thrown when trying to resend an update that is not in SENT_TO_DESTINATION status\"}],\"InvalidUpdateType()\":[{\"notice\":\"Thrown when an empty update type string is provided\"}],\"NotAnExecutor()\":[{\"notice\":\"Thrown when an address is not an executor\"}],\"PauseStatusUnchanged()\":[{\"notice\":\"Thrown when trying to set the same pause status\"}],\"PausedError()\":[{\"notice\":\"Thrown when processUpdate is called while the contract is paused\"}],\"RegisteredUpdateTypeExist(uint256)\":[{\"notice\":\"Thrown when there is a non-expired pending update of the same type for the market\"}],\"RenounceOwnershipNotAllowed()\":[{\"notice\":\"Thrown when trying to renounce ownership\"}],\"Unauthorized(address,address,string)\":[{\"notice\":\"Thrown when the action is prohibited by AccessControlManager\"}],\"UnsupportedUpdateType()\":[{\"notice\":\"Thrown when an update type that is not supported is operated on\"}],\"UpdateAlreadyResolved()\":[{\"notice\":\"Thrown when an update has already been processed\"}],\"UpdateIsExpired()\":[{\"notice\":\"Thrown when an update was not applied within the required time frame\"}],\"UpdateNotFound()\":[{\"notice\":\"Thrown when trying to resolve an update that doesn't exist\"}],\"UpdateNotUnlocked()\":[{\"notice\":\"Thrown when update unlock time has not been reached\"}],\"UpdateTooFrequent()\":[{\"notice\":\"Thrown when the debounce period hasn't passed for applying an update to a specific market / update type\"}],\"UpdateWillExpireBeforeUnlock()\":[{\"notice\":\"Thrown when an update will expire before its timelock unlocks\"}],\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}]},\"events\":{\"ConfigActiveUpdated(bytes32,string,bool,bool)\":{\"notice\":\"Event emitted when a risk parameter config active status is set\"},\"ExecutorStatusUpdated(address,bool,bool)\":{\"notice\":\"Event emitted when an executor status is set\"},\"NewAccessControlManager(address,address)\":{\"notice\":\"Emitted when access control manager contract address is changed\"},\"PauseStatusUpdated(bool,bool)\":{\"notice\":\"Event emitted when the pause status changes\"},\"RiskParameterConfigUpdated(bytes32,string,address,address,uint256,uint256,uint256,uint256,bool,bool)\":{\"notice\":\"Event emitted when a risk parameter config is set\"},\"SweepNative(address,uint256)\":{\"notice\":\"Emitted when leftover native tokens are swept by owner\"},\"UpdateExecuted(uint256)\":{\"notice\":\"Event emitted when an update is successfully executed\"},\"UpdateExpired(uint256)\":{\"notice\":\"Event emitted when an update is marked as expired\"},\"UpdateRegistered(uint256,uint256,string,address)\":{\"notice\":\"Event emitted when an update is registered\"},\"UpdateRejected(uint256)\":{\"notice\":\"Event emitted when an update is rejected\"},\"UpdateResentToDestination(uint256,uint32,string,address)\":{\"notice\":\"Event emitted when an update is resent to a destination chain\"},\"UpdateSentToDestination(uint256,uint32,string,address)\":{\"notice\":\"Event emitted when an update is sent to a destination chain\"}},\"kind\":\"user\",\"methods\":{\"LAYER_ZERO_EID()\":{\"notice\":\"Source chain LayerZero endpoint ID\"},\"RISK_ORACLE()\":{\"notice\":\"The Risk Oracle contract address\"},\"UPDATE_EXPIRATION_TIME()\":{\"notice\":\"Period after which a proposed update becomes expired and can no longer be applied\"},\"accessControlManager()\":{\"notice\":\"Returns the address of the access control manager contract\"},\"constructor\":{\"notice\":\"Disables initializers and sets the Risk Oracle and LayerZero configuration.\"},\"endpoint()\":{\"notice\":\"Retrieves the LayerZero endpoint associated with the OApp.\"},\"executeRegisteredUpdate(uint256)\":{\"notice\":\"Executes a registered update. Only whitelisted executors can call this function.         This function can be used for updates that have completed their timelock and are ready to execute.\"},\"getExecutableUpdates(string,address)\":{\"notice\":\"Returns an array of update IDs for executable registered updates for a given update type and comptroller.\"},\"getLastProcessedUpdate(string,address)\":{\"notice\":\"Returns the last processed update ID for a given update type and market\"},\"getLastRegisteredUpdate(string,address)\":{\"notice\":\"Returns the last registered update ID for a given update type and market\"},\"getRiskParameterConfig(string)\":{\"notice\":\"Returns the risk parameter configuration for a given update type\"},\"initialize(address,address)\":{\"notice\":\"Initializes the contract with the Access Control Manager and OApp owner.\"},\"isUpdateExecutable(uint256)\":{\"notice\":\"Returns whether a registered update is ready to be executed.\"},\"lastProcessedUpdate(bytes32,address)\":{\"notice\":\"Track last processed update ID per (updateTypeKey, market)\"},\"lastRegisteredUpdate(bytes32,address)\":{\"notice\":\"Track the current registered update per (updateType, market) to avoid registering multiple updates\"},\"lzSend(uint32,(string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes),bytes,(uint256,uint256),address)\":{\"notice\":\"Sends a `RiskParameterUpdate` to a destination chain via LayerZero.\"},\"oAppVersion()\":{\"notice\":\"Retrieves the OApp version information.\"},\"paused()\":{\"notice\":\"Pause flag\"},\"peers(uint32)\":{\"notice\":\"Returns the peer address (OApp instance) associated with a specific endpoint.\"},\"processUpdate(uint256)\":{\"notice\":\"Processes an update from the Risk Oracle. Validates, registers the update, and either executes immediately, registers with timelock, or forwards cross-chain.\"},\"quote((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes),bytes,bool)\":{\"notice\":\"Quotes the gas fee needed to pay for the full omnichain transaction in native gas or ZRO token.\"},\"rejectUpdate(uint256)\":{\"notice\":\"Rejects a registered update\"},\"renounceOwnership()\":{\"notice\":\"Disables renounceOwnership function\"},\"resendRemoteUpdate(uint256,bytes)\":{\"notice\":\"Resends a remote update to the destination chain. This function is useful in case of bridge failures.\"},\"riskParameterConfigs(bytes32)\":{\"notice\":\"Mapping of supported risk configurations and their validation parameters (keyed by hashed updateType)\"},\"setAccessControlManager(address)\":{\"notice\":\"Sets the address of AccessControlManager\"},\"setConfigActive(string,bool)\":{\"notice\":\"Sets the active status of a risk parameter config\"},\"setDelegate(address)\":{\"notice\":\"Sets the delegate address for the OApp.\"},\"setPaused(bool)\":{\"notice\":\"Sets the pause status for `processUpdate`.\"},\"setPeer(uint32,bytes32)\":{\"notice\":\"Sets the peer address (OApp instance) for a corresponding endpoint.\"},\"setRiskParameterConfig(string,address,uint256,uint256)\":{\"notice\":\"Sets the risk parameter config for a given update type\"},\"setWhitelistedExecutor(address,bool)\":{\"notice\":\"Manages the whitelist of executors that are allowed to execute timelocked registered updates.\"},\"sweepNative()\":{\"notice\":\"Allows the owner to sweep leftover native tokens (e.g., BNB) from the contract.\"},\"updates(uint256)\":{\"notice\":\"Master storage of all registered updates by update ID\"},\"whitelistedExecutors(address)\":{\"notice\":\"Mapping from executor address to whitelist status\"}},\"notice\":\"Contract that reads updates from a Risk Oracle, validates them with timelock and debounce,         and either executes them locally via the configured RiskSteward or forwards them cross\\u2011chain.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/RiskSteward/RiskStewardReceiver.sol\":\"RiskStewardReceiver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/ExecutorOptions.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nimport \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\\\";\\n\\nlibrary ExecutorOptions {\\n    using CalldataBytesLib for bytes;\\n\\n    uint8 internal constant WORKER_ID = 1;\\n\\n    uint8 internal constant OPTION_TYPE_LZRECEIVE = 1;\\n    uint8 internal constant OPTION_TYPE_NATIVE_DROP = 2;\\n    uint8 internal constant OPTION_TYPE_LZCOMPOSE = 3;\\n    uint8 internal constant OPTION_TYPE_ORDERED_EXECUTION = 4;\\n    uint8 internal constant OPTION_TYPE_LZREAD = 5;\\n\\n    error Executor_InvalidLzReceiveOption();\\n    error Executor_InvalidNativeDropOption();\\n    error Executor_InvalidLzComposeOption();\\n    error Executor_InvalidLzReadOption();\\n\\n    /// @dev decode the next executor option from the options starting from the specified cursor\\n    /// @param _options [executor_id][executor_option][executor_id][executor_option]...\\n    ///        executor_option = [option_size][option_type][option]\\n    ///        option_size = len(option_type) + len(option)\\n    ///        executor_id: uint8, option_size: uint16, option_type: uint8, option: bytes\\n    /// @param _cursor the cursor to start decoding from\\n    /// @return optionType the type of the option\\n    /// @return option the option of the executor\\n    /// @return cursor the cursor to start decoding the next executor option\\n    function nextExecutorOption(\\n        bytes calldata _options,\\n        uint256 _cursor\\n    ) internal pure returns (uint8 optionType, bytes calldata option, uint256 cursor) {\\n        unchecked {\\n            // skip worker id\\n            cursor = _cursor + 1;\\n\\n            // read option size\\n            uint16 size = _options.toU16(cursor);\\n            cursor += 2;\\n\\n            // read option type\\n            optionType = _options.toU8(cursor);\\n\\n            // startCursor and endCursor are used to slice the option from _options\\n            uint256 startCursor = cursor + 1; // skip option type\\n            uint256 endCursor = cursor + size;\\n            option = _options[startCursor:endCursor];\\n            cursor += size;\\n        }\\n    }\\n\\n    function decodeLzReceiveOption(bytes calldata _option) internal pure returns (uint128 gas, uint128 value) {\\n        if (_option.length != 16 && _option.length != 32) revert Executor_InvalidLzReceiveOption();\\n        gas = _option.toU128(0);\\n        value = _option.length == 32 ? _option.toU128(16) : 0;\\n    }\\n\\n    function decodeNativeDropOption(bytes calldata _option) internal pure returns (uint128 amount, bytes32 receiver) {\\n        if (_option.length != 48) revert Executor_InvalidNativeDropOption();\\n        amount = _option.toU128(0);\\n        receiver = _option.toB32(16);\\n    }\\n\\n    function decodeLzComposeOption(\\n        bytes calldata _option\\n    ) internal pure returns (uint16 index, uint128 gas, uint128 value) {\\n        if (_option.length != 18 && _option.length != 34) revert Executor_InvalidLzComposeOption();\\n        index = _option.toU16(0);\\n        gas = _option.toU128(2);\\n        value = _option.length == 34 ? _option.toU128(18) : 0;\\n    }\\n\\n    function decodeLzReadOption(\\n        bytes calldata _option\\n    ) internal pure returns (uint128 gas, uint32 calldataSize, uint128 value) {\\n        if (_option.length != 20 && _option.length != 36) revert Executor_InvalidLzReadOption();\\n        gas = _option.toU128(0);\\n        calldataSize = _option.toU32(16);\\n        value = _option.length == 36 ? _option.toU128(20) : 0;\\n    }\\n\\n    function encodeLzReceiveOption(uint128 _gas, uint128 _value) internal pure returns (bytes memory) {\\n        return _value == 0 ? abi.encodePacked(_gas) : abi.encodePacked(_gas, _value);\\n    }\\n\\n    function encodeNativeDropOption(uint128 _amount, bytes32 _receiver) internal pure returns (bytes memory) {\\n        return abi.encodePacked(_amount, _receiver);\\n    }\\n\\n    function encodeLzComposeOption(uint16 _index, uint128 _gas, uint128 _value) internal pure returns (bytes memory) {\\n        return _value == 0 ? abi.encodePacked(_index, _gas) : abi.encodePacked(_index, _gas, _value);\\n    }\\n\\n    function encodeLzReadOption(\\n        uint128 _gas,\\n        uint32 _calldataSize,\\n        uint128 _value\\n    ) internal pure returns (bytes memory) {\\n        return _value == 0 ? abi.encodePacked(_gas, _calldataSize) : abi.encodePacked(_gas, _calldataSize, _value);\\n    }\\n}\\n\",\"keccak256\":\"0x441b723f2f597be2ec2bb361fcf3f11852c23534db1cfa7d2ffff7e61d228e3c\",\"license\":\"LZBL-1.2\"},\"@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nimport { BytesLib } from \\\"solidity-bytes-utils/contracts/BytesLib.sol\\\";\\n\\nimport { BitMap256 } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\\\";\\nimport { CalldataBytesLib } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\\\";\\n\\nlibrary DVNOptions {\\n    using CalldataBytesLib for bytes;\\n    using BytesLib for bytes;\\n\\n    uint8 internal constant WORKER_ID = 2;\\n    uint8 internal constant OPTION_TYPE_PRECRIME = 1;\\n\\n    error DVN_InvalidDVNIdx();\\n    error DVN_InvalidDVNOptions(uint256 cursor);\\n\\n    /// @dev group dvn options by its idx\\n    /// @param _options [dvn_id][dvn_option][dvn_id][dvn_option]...\\n    ///        dvn_option = [option_size][dvn_idx][option_type][option]\\n    ///        option_size = len(dvn_idx) + len(option_type) + len(option)\\n    ///        dvn_id: uint8, dvn_idx: uint8, option_size: uint16, option_type: uint8, option: bytes\\n    /// @return dvnOptions the grouped options, still share the same format of _options\\n    /// @return dvnIndices the dvn indices\\n    function groupDVNOptionsByIdx(\\n        bytes memory _options\\n    ) internal pure returns (bytes[] memory dvnOptions, uint8[] memory dvnIndices) {\\n        if (_options.length == 0) return (dvnOptions, dvnIndices);\\n\\n        uint8 numDVNs = getNumDVNs(_options);\\n\\n        // if there is only 1 dvn, we can just return the whole options\\n        if (numDVNs == 1) {\\n            dvnOptions = new bytes[](1);\\n            dvnOptions[0] = _options;\\n\\n            dvnIndices = new uint8[](1);\\n            dvnIndices[0] = _options.toUint8(3); // dvn idx\\n            return (dvnOptions, dvnIndices);\\n        }\\n\\n        // otherwise, we need to group the options by dvn_idx\\n        dvnIndices = new uint8[](numDVNs);\\n        dvnOptions = new bytes[](numDVNs);\\n        unchecked {\\n            uint256 cursor = 0;\\n            uint256 start = 0;\\n            uint8 lastDVNIdx = 255; // 255 is an invalid dvn_idx\\n\\n            while (cursor < _options.length) {\\n                ++cursor; // skip worker_id\\n\\n                // optionLength asserted in getNumDVNs (skip check)\\n                uint16 optionLength = _options.toUint16(cursor);\\n                cursor += 2;\\n\\n                // dvnIdx asserted in getNumDVNs (skip check)\\n                uint8 dvnIdx = _options.toUint8(cursor);\\n\\n                // dvnIdx must equal to the lastDVNIdx for the first option\\n                // so it is always skipped in the first option\\n                // this operation slices out options whenever the scan finds a different lastDVNIdx\\n                if (lastDVNIdx == 255) {\\n                    lastDVNIdx = dvnIdx;\\n                } else if (dvnIdx != lastDVNIdx) {\\n                    uint256 len = cursor - start - 3; // 3 is for worker_id and option_length\\n                    bytes memory opt = _options.slice(start, len);\\n                    _insertDVNOptions(dvnOptions, dvnIndices, lastDVNIdx, opt);\\n\\n                    // reset the start and lastDVNIdx\\n                    start += len;\\n                    lastDVNIdx = dvnIdx;\\n                }\\n\\n                cursor += optionLength;\\n            }\\n\\n            // skip check the cursor here because the cursor is asserted in getNumDVNs\\n            // if we have reached the end of the options, we need to process the last dvn\\n            uint256 size = cursor - start;\\n            bytes memory op = _options.slice(start, size);\\n            _insertDVNOptions(dvnOptions, dvnIndices, lastDVNIdx, op);\\n\\n            // revert dvnIndices to start from 0\\n            for (uint8 i = 0; i < numDVNs; ++i) {\\n                --dvnIndices[i];\\n            }\\n        }\\n    }\\n\\n    function _insertDVNOptions(\\n        bytes[] memory _dvnOptions,\\n        uint8[] memory _dvnIndices,\\n        uint8 _dvnIdx,\\n        bytes memory _newOptions\\n    ) internal pure {\\n        // dvnIdx starts from 0 but default value of dvnIndices is 0,\\n        // so we tell if the slot is empty by adding 1 to dvnIdx\\n        if (_dvnIdx == 255) revert DVN_InvalidDVNIdx();\\n        uint8 dvnIdxAdj = _dvnIdx + 1;\\n\\n        for (uint256 j = 0; j < _dvnIndices.length; ++j) {\\n            uint8 index = _dvnIndices[j];\\n            if (dvnIdxAdj == index) {\\n                _dvnOptions[j] = abi.encodePacked(_dvnOptions[j], _newOptions);\\n                break;\\n            } else if (index == 0) {\\n                // empty slot, that means it is the first time we see this dvn\\n                _dvnIndices[j] = dvnIdxAdj;\\n                _dvnOptions[j] = _newOptions;\\n                break;\\n            }\\n        }\\n    }\\n\\n    /// @dev get the number of unique dvns\\n    /// @param _options the format is the same as groupDVNOptionsByIdx\\n    function getNumDVNs(bytes memory _options) internal pure returns (uint8 numDVNs) {\\n        uint256 cursor = 0;\\n        BitMap256 bitmap;\\n\\n        // find number of unique dvn_idx\\n        unchecked {\\n            while (cursor < _options.length) {\\n                ++cursor; // skip worker_id\\n\\n                uint16 optionLength = _options.toUint16(cursor);\\n                cursor += 2;\\n                if (optionLength < 2) revert DVN_InvalidDVNOptions(cursor); // at least 1 byte for dvn_idx and 1 byte for option_type\\n\\n                uint8 dvnIdx = _options.toUint8(cursor);\\n\\n                // if dvnIdx is not set, increment numDVNs\\n                // max num of dvns is 255, 255 is an invalid dvn_idx\\n                // The order of the dvnIdx is not required to be sequential, as enforcing the order may weaken\\n                // the composability of the options. e.g. if we refrain from enforcing the order, an OApp that has\\n                // already enforced certain options can append additional options to the end of the enforced\\n                // ones without restrictions.\\n                if (dvnIdx == 255) revert DVN_InvalidDVNIdx();\\n                if (!bitmap.get(dvnIdx)) {\\n                    ++numDVNs;\\n                    bitmap = bitmap.set(dvnIdx);\\n                }\\n\\n                cursor += optionLength;\\n            }\\n        }\\n        if (cursor != _options.length) revert DVN_InvalidDVNOptions(cursor);\\n    }\\n\\n    /// @dev decode the next dvn option from _options starting from the specified cursor\\n    /// @param _options the format is the same as groupDVNOptionsByIdx\\n    /// @param _cursor the cursor to start decoding\\n    /// @return optionType the type of the option\\n    /// @return option the option\\n    /// @return cursor the cursor to start decoding the next option\\n    function nextDVNOption(\\n        bytes calldata _options,\\n        uint256 _cursor\\n    ) internal pure returns (uint8 optionType, bytes calldata option, uint256 cursor) {\\n        unchecked {\\n            // skip worker id\\n            cursor = _cursor + 1;\\n\\n            // read option size\\n            uint16 size = _options.toU16(cursor);\\n            cursor += 2;\\n\\n            // read option type\\n            optionType = _options.toU8(cursor + 1); // skip dvn_idx\\n\\n            // startCursor and endCursor are used to slice the option from _options\\n            uint256 startCursor = cursor + 2; // skip option type and dvn_idx\\n            uint256 endCursor = cursor + size;\\n            option = _options[startCursor:endCursor];\\n            cursor += size;\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35\",\"license\":\"LZBL-1.2\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { IMessageLibManager } from \\\"./IMessageLibManager.sol\\\";\\nimport { IMessagingComposer } from \\\"./IMessagingComposer.sol\\\";\\nimport { IMessagingChannel } from \\\"./IMessagingChannel.sol\\\";\\nimport { IMessagingContext } from \\\"./IMessagingContext.sol\\\";\\n\\nstruct MessagingParams {\\n    uint32 dstEid;\\n    bytes32 receiver;\\n    bytes message;\\n    bytes options;\\n    bool payInLzToken;\\n}\\n\\nstruct MessagingReceipt {\\n    bytes32 guid;\\n    uint64 nonce;\\n    MessagingFee fee;\\n}\\n\\nstruct MessagingFee {\\n    uint256 nativeFee;\\n    uint256 lzTokenFee;\\n}\\n\\nstruct Origin {\\n    uint32 srcEid;\\n    bytes32 sender;\\n    uint64 nonce;\\n}\\n\\ninterface ILayerZeroEndpointV2 is IMessageLibManager, IMessagingComposer, IMessagingChannel, IMessagingContext {\\n    event PacketSent(bytes encodedPayload, bytes options, address sendLibrary);\\n\\n    event PacketVerified(Origin origin, address receiver, bytes32 payloadHash);\\n\\n    event PacketDelivered(Origin origin, address receiver);\\n\\n    event LzReceiveAlert(\\n        address indexed receiver,\\n        address indexed executor,\\n        Origin origin,\\n        bytes32 guid,\\n        uint256 gas,\\n        uint256 value,\\n        bytes message,\\n        bytes extraData,\\n        bytes reason\\n    );\\n\\n    event LzTokenSet(address token);\\n\\n    event DelegateSet(address sender, address delegate);\\n\\n    function quote(MessagingParams calldata _params, address _sender) external view returns (MessagingFee memory);\\n\\n    function send(\\n        MessagingParams calldata _params,\\n        address _refundAddress\\n    ) external payable returns (MessagingReceipt memory);\\n\\n    function verify(Origin calldata _origin, address _receiver, bytes32 _payloadHash) external;\\n\\n    function verifiable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n    function initializable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n    function lzReceive(\\n        Origin calldata _origin,\\n        address _receiver,\\n        bytes32 _guid,\\n        bytes calldata _message,\\n        bytes calldata _extraData\\n    ) external payable;\\n\\n    // oapp can burn messages partially by calling this function with its own business logic if messages are verified in order\\n    function clear(address _oapp, Origin calldata _origin, bytes32 _guid, bytes calldata _message) external;\\n\\n    function setLzToken(address _lzToken) external;\\n\\n    function lzToken() external view returns (address);\\n\\n    function nativeToken() external view returns (address);\\n\\n    function setDelegate(address _delegate) external;\\n}\\n\",\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nstruct SetConfigParam {\\n    uint32 eid;\\n    uint32 configType;\\n    bytes config;\\n}\\n\\ninterface IMessageLibManager {\\n    struct Timeout {\\n        address lib;\\n        uint256 expiry;\\n    }\\n\\n    event LibraryRegistered(address newLib);\\n    event DefaultSendLibrarySet(uint32 eid, address newLib);\\n    event DefaultReceiveLibrarySet(uint32 eid, address newLib);\\n    event DefaultReceiveLibraryTimeoutSet(uint32 eid, address oldLib, uint256 expiry);\\n    event SendLibrarySet(address sender, uint32 eid, address newLib);\\n    event ReceiveLibrarySet(address receiver, uint32 eid, address newLib);\\n    event ReceiveLibraryTimeoutSet(address receiver, uint32 eid, address oldLib, uint256 timeout);\\n\\n    function registerLibrary(address _lib) external;\\n\\n    function isRegisteredLibrary(address _lib) external view returns (bool);\\n\\n    function getRegisteredLibraries() external view returns (address[] memory);\\n\\n    function setDefaultSendLibrary(uint32 _eid, address _newLib) external;\\n\\n    function defaultSendLibrary(uint32 _eid) external view returns (address);\\n\\n    function setDefaultReceiveLibrary(uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n    function defaultReceiveLibrary(uint32 _eid) external view returns (address);\\n\\n    function setDefaultReceiveLibraryTimeout(uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n    function defaultReceiveLibraryTimeout(uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n    function isSupportedEid(uint32 _eid) external view returns (bool);\\n\\n    function isValidReceiveLibrary(address _receiver, uint32 _eid, address _lib) external view returns (bool);\\n\\n    /// ------------------- OApp interfaces -------------------\\n    function setSendLibrary(address _oapp, uint32 _eid, address _newLib) external;\\n\\n    function getSendLibrary(address _sender, uint32 _eid) external view returns (address lib);\\n\\n    function isDefaultSendLibrary(address _sender, uint32 _eid) external view returns (bool);\\n\\n    function setReceiveLibrary(address _oapp, uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n    function getReceiveLibrary(address _receiver, uint32 _eid) external view returns (address lib, bool isDefault);\\n\\n    function setReceiveLibraryTimeout(address _oapp, uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n    function receiveLibraryTimeout(address _receiver, uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n    function setConfig(address _oapp, address _lib, SetConfigParam[] calldata _params) external;\\n\\n    function getConfig(\\n        address _oapp,\\n        address _lib,\\n        uint32 _eid,\\n        uint32 _configType\\n    ) external view returns (bytes memory config);\\n}\\n\",\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingChannel {\\n    event InboundNonceSkipped(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce);\\n    event PacketNilified(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n    event PacketBurnt(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n\\n    function eid() external view returns (uint32);\\n\\n    // this is an emergency function if a message cannot be verified for some reasons\\n    // required to provide _nextNonce to avoid race condition\\n    function skip(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce) external;\\n\\n    function nilify(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n    function burn(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n    function nextGuid(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (bytes32);\\n\\n    function inboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n\\n    function outboundNonce(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (uint64);\\n\\n    function inboundPayloadHash(\\n        address _receiver,\\n        uint32 _srcEid,\\n        bytes32 _sender,\\n        uint64 _nonce\\n    ) external view returns (bytes32);\\n\\n    function lazyInboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n}\\n\",\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingComposer {\\n    event ComposeSent(address from, address to, bytes32 guid, uint16 index, bytes message);\\n    event ComposeDelivered(address from, address to, bytes32 guid, uint16 index);\\n    event LzComposeAlert(\\n        address indexed from,\\n        address indexed to,\\n        address indexed executor,\\n        bytes32 guid,\\n        uint16 index,\\n        uint256 gas,\\n        uint256 value,\\n        bytes message,\\n        bytes extraData,\\n        bytes reason\\n    );\\n\\n    function composeQueue(\\n        address _from,\\n        address _to,\\n        bytes32 _guid,\\n        uint16 _index\\n    ) external view returns (bytes32 messageHash);\\n\\n    function sendCompose(address _to, bytes32 _guid, uint16 _index, bytes calldata _message) external;\\n\\n    function lzCompose(\\n        address _from,\\n        address _to,\\n        bytes32 _guid,\\n        uint16 _index,\\n        bytes calldata _message,\\n        bytes calldata _extraData\\n    ) external payable;\\n}\\n\",\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingContext {\\n    function isSendingMessage() external view returns (bool);\\n\\n    function getSendContext() external view returns (uint32 dstEid, address sender);\\n}\\n\",\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nlibrary CalldataBytesLib {\\n    function toU8(bytes calldata _bytes, uint256 _start) internal pure returns (uint8) {\\n        return uint8(_bytes[_start]);\\n    }\\n\\n    function toU16(bytes calldata _bytes, uint256 _start) internal pure returns (uint16) {\\n        unchecked {\\n            uint256 end = _start + 2;\\n            return uint16(bytes2(_bytes[_start:end]));\\n        }\\n    }\\n\\n    function toU32(bytes calldata _bytes, uint256 _start) internal pure returns (uint32) {\\n        unchecked {\\n            uint256 end = _start + 4;\\n            return uint32(bytes4(_bytes[_start:end]));\\n        }\\n    }\\n\\n    function toU64(bytes calldata _bytes, uint256 _start) internal pure returns (uint64) {\\n        unchecked {\\n            uint256 end = _start + 8;\\n            return uint64(bytes8(_bytes[_start:end]));\\n        }\\n    }\\n\\n    function toU128(bytes calldata _bytes, uint256 _start) internal pure returns (uint128) {\\n        unchecked {\\n            uint256 end = _start + 16;\\n            return uint128(bytes16(_bytes[_start:end]));\\n        }\\n    }\\n\\n    function toU256(bytes calldata _bytes, uint256 _start) internal pure returns (uint256) {\\n        unchecked {\\n            uint256 end = _start + 32;\\n            return uint256(bytes32(_bytes[_start:end]));\\n        }\\n    }\\n\\n    function toAddr(bytes calldata _bytes, uint256 _start) internal pure returns (address) {\\n        unchecked {\\n            uint256 end = _start + 20;\\n            return address(bytes20(_bytes[_start:end]));\\n        }\\n    }\\n\\n    function toB32(bytes calldata _bytes, uint256 _start) internal pure returns (bytes32) {\\n        unchecked {\\n            uint256 end = _start + 32;\\n            return bytes32(_bytes[_start:end]);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875\",\"license\":\"LZBL-1.2\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\n// modified from https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/structs/BitMaps.sol\\npragma solidity ^0.8.20;\\n\\ntype BitMap256 is uint256;\\n\\nusing BitMaps for BitMap256 global;\\n\\nlibrary BitMaps {\\n    /**\\n     * @dev Returns whether the bit at `index` is set.\\n     */\\n    function get(BitMap256 bitmap, uint8 index) internal pure returns (bool) {\\n        uint256 mask = 1 << index;\\n        return BitMap256.unwrap(bitmap) & mask != 0;\\n    }\\n\\n    /**\\n     * @dev Sets the bit at `index`.\\n     */\\n    function set(BitMap256 bitmap, uint8 index) internal pure returns (BitMap256) {\\n        uint256 mask = 1 << index;\\n        return BitMap256.wrap(BitMap256.unwrap(bitmap) | mask);\\n    }\\n}\\n\",\"keccak256\":\"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9\",\"license\":\"MIT\"},\"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppCoreUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { OwnableUpgradeable } from \\\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\\\";\\nimport { IOAppCore, ILayerZeroEndpointV2 } from \\\"@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppCore.sol\\\";\\n\\n/**\\n * @title OAppCore\\n * @dev Abstract contract implementing the IOAppCore interface with basic OApp configurations.\\n */\\nabstract contract OAppCoreUpgradeable is IOAppCore, OwnableUpgradeable {\\n    struct OAppCoreStorage {\\n        mapping(uint32 => bytes32) peers;\\n    }\\n\\n    // keccak256(abi.encode(uint256(keccak256(\\\"layerzerov2.storage.oappcore\\\")) - 1)) & ~bytes32(uint256(0xff))\\n    bytes32 private constant OAPP_CORE_STORAGE_LOCATION =\\n        0x72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f900;\\n\\n    function _getOAppCoreStorage() internal pure returns (OAppCoreStorage storage $) {\\n        assembly {\\n            $.slot := OAPP_CORE_STORAGE_LOCATION\\n        }\\n    }\\n\\n    // The LayerZero endpoint associated with the given OApp\\n    ILayerZeroEndpointV2 public immutable endpoint;\\n\\n    /**\\n     * @dev Constructor to initialize the OAppCore with the provided endpoint and delegate.\\n     * @param _endpoint The address of the LOCAL Layer Zero endpoint.\\n     */\\n    constructor(address _endpoint) {\\n        endpoint = ILayerZeroEndpointV2(_endpoint);\\n    }\\n\\n    /**\\n     * @dev Initializes the OAppCore with the provided delegate.\\n     * @param _delegate The delegate capable of making OApp configurations inside of the endpoint.\\n     *\\n     * @dev The delegate typically should be set as the owner of the contract.\\n     * @dev Ownable is not initialized here on purpose. It should be initialized in the child contract to\\n     * accommodate the different version of Ownable.\\n     */\\n    function __OAppCore_init(address _delegate) internal onlyInitializing {\\n        __OAppCore_init_unchained(_delegate);\\n    }\\n\\n    function __OAppCore_init_unchained(address _delegate) internal onlyInitializing {\\n        if (_delegate == address(0)) revert InvalidDelegate();\\n        endpoint.setDelegate(_delegate);\\n    }\\n\\n    /**\\n     * @notice Returns the peer address (OApp instance) associated with a specific endpoint.\\n     * @param _eid The endpoint ID.\\n     * @return peer The address of the peer associated with the specified endpoint.\\n     */\\n    function peers(uint32 _eid) public view override returns (bytes32) {\\n        OAppCoreStorage storage $ = _getOAppCoreStorage();\\n        return $.peers[_eid];\\n    }\\n\\n    /**\\n     * @notice Sets the peer address (OApp instance) for a corresponding endpoint.\\n     * @param _eid The endpoint ID.\\n     * @param _peer The address of the peer to be associated with the corresponding endpoint.\\n     *\\n     * @dev Only the owner/admin of the OApp can call this function.\\n     * @dev Indicates that the peer is trusted to send LayerZero messages to this OApp.\\n     * @dev Set this to bytes32(0) to remove the peer address.\\n     * @dev Peer is a bytes32 to accommodate non-evm chains.\\n     */\\n    function setPeer(uint32 _eid, bytes32 _peer) public virtual onlyOwner {\\n        OAppCoreStorage storage $ = _getOAppCoreStorage();\\n        $.peers[_eid] = _peer;\\n        emit PeerSet(_eid, _peer);\\n    }\\n\\n    /**\\n     * @notice Internal function to get the peer address associated with a specific endpoint; reverts if NOT set.\\n     * ie. the peer is set to bytes32(0).\\n     * @param _eid The endpoint ID.\\n     * @return peer The address of the peer associated with the specified endpoint.\\n     */\\n    function _getPeerOrRevert(uint32 _eid) internal view virtual returns (bytes32) {\\n        OAppCoreStorage storage $ = _getOAppCoreStorage();\\n        bytes32 peer = $.peers[_eid];\\n        if (peer == bytes32(0)) revert NoPeer(_eid);\\n        return peer;\\n    }\\n\\n    /**\\n     * @notice Sets the delegate address for the OApp.\\n     * @param _delegate The address of the delegate to be set.\\n     *\\n     * @dev Only the owner/admin of the OApp can call this function.\\n     * @dev Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\\n     */\\n    function setDelegate(address _delegate) public onlyOwner {\\n        endpoint.setDelegate(_delegate);\\n    }\\n}\\n\",\"keccak256\":\"0xbe135fd35bf12c97aeb701caeb6c5d0c1c28c1ac2ab1d4219d15f8384951c140\",\"license\":\"MIT\"},\"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppSenderUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { SafeERC20, IERC20 } from \\\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\\\";\\nimport { MessagingParams, MessagingFee, MessagingReceipt } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\\\";\\nimport { OAppCoreUpgradeable } from \\\"./OAppCoreUpgradeable.sol\\\";\\n\\n/**\\n * @title OAppSender\\n * @dev Abstract contract implementing the OAppSender functionality for sending messages to a LayerZero endpoint.\\n */\\nabstract contract OAppSenderUpgradeable is OAppCoreUpgradeable {\\n    using SafeERC20 for IERC20;\\n\\n    // Custom error messages\\n    error NotEnoughNative(uint256 msgValue);\\n    error LzTokenUnavailable();\\n\\n    // @dev The version of the OAppSender implementation.\\n    // @dev Version is bumped when changes are made to this contract.\\n    uint64 internal constant SENDER_VERSION = 1;\\n\\n    /**\\n     * @param _delegate The delegate capable of making OApp configurations inside of the endpoint.\\n     * @dev Ownable is not initialized here on purpose. It should be initialized in the child contract to\\n     * accommodate the different version of Ownable.\\n     */\\n    function __OAppSender_init(address _delegate) internal onlyInitializing {\\n        __OAppCore_init(_delegate);\\n    }\\n\\n    function __OAppSender_init_unchained() internal onlyInitializing {}\\n\\n    /**\\n     * @notice Retrieves the OApp version information.\\n     * @return senderVersion The version of the OAppSender.sol contract.\\n     * @return receiverVersion The version of the OAppReceiver.sol contract.\\n     *\\n     * @dev Providing 0 as the default for OAppReceiver version. Indicates that the OAppReceiver is not implemented.\\n     * ie. this is a SEND only OApp.\\n     * @dev If the OApp uses both OAppSender and OAppReceiver, then this needs to be override returning the correct versions\\n     */\\n    function oAppVersion() public view virtual returns (uint64 senderVersion, uint64 receiverVersion) {\\n        return (SENDER_VERSION, 0);\\n    }\\n\\n    /**\\n     * @dev Internal function to interact with the LayerZero EndpointV2.quote() for fee calculation.\\n     * @param _dstEid The destination endpoint ID.\\n     * @param _message The message payload.\\n     * @param _options Additional options for the message.\\n     * @param _payInLzToken Flag indicating whether to pay the fee in LZ tokens.\\n     * @return fee The calculated MessagingFee for the message.\\n     *      - nativeFee: The native fee for the message.\\n     *      - lzTokenFee: The LZ token fee for the message.\\n     */\\n    function _quote(\\n        uint32 _dstEid,\\n        bytes memory _message,\\n        bytes memory _options,\\n        bool _payInLzToken\\n    ) internal view virtual returns (MessagingFee memory fee) {\\n        return\\n            endpoint.quote(\\n                MessagingParams(_dstEid, _getPeerOrRevert(_dstEid), _message, _options, _payInLzToken),\\n                address(this)\\n            );\\n    }\\n\\n    /**\\n     * @dev Internal function to interact with the LayerZero EndpointV2.send() for sending a message.\\n     * @param _dstEid The destination endpoint ID.\\n     * @param _message The message payload.\\n     * @param _options Additional options for the message.\\n     * @param _fee The calculated LayerZero fee for the message.\\n     *      - nativeFee: The native fee.\\n     *      - lzTokenFee: The lzToken fee.\\n     * @param _refundAddress The address to receive any excess fee values sent to the endpoint.\\n     * @return receipt The receipt for the sent message.\\n     *      - guid: The unique identifier for the sent message.\\n     *      - nonce: The nonce of the sent message.\\n     *      - fee: The LayerZero fee incurred for the message.\\n     */\\n    function _lzSend(\\n        uint32 _dstEid,\\n        bytes memory _message,\\n        bytes memory _options,\\n        MessagingFee memory _fee,\\n        address _refundAddress\\n    ) internal virtual returns (MessagingReceipt memory receipt) {\\n        // @dev Push corresponding fees to the endpoint, any excess is sent back to the _refundAddress from the endpoint.\\n        uint256 messageValue = _payNative(_fee.nativeFee);\\n        if (_fee.lzTokenFee > 0) _payLzToken(_fee.lzTokenFee);\\n\\n        return\\n            // solhint-disable-next-line check-send-result\\n            endpoint.send{ value: messageValue }(\\n                MessagingParams(_dstEid, _getPeerOrRevert(_dstEid), _message, _options, _fee.lzTokenFee > 0),\\n                _refundAddress\\n            );\\n    }\\n\\n    /**\\n     * @dev Internal function to pay the native fee associated with the message.\\n     * @param _nativeFee The native fee to be paid.\\n     * @return nativeFee The amount of native currency paid.\\n     *\\n     * @dev If the OApp needs to initiate MULTIPLE LayerZero messages in a single transaction,\\n     * this will need to be overridden because msg.value would contain multiple lzFees.\\n     * @dev Should be overridden in the event the LayerZero endpoint requires a different native currency.\\n     * @dev Some EVMs use an ERC20 as a method for paying transactions/gasFees.\\n     * @dev The endpoint is EITHER/OR, ie. it will NOT support both types of native payment at a time.\\n     */\\n    function _payNative(uint256 _nativeFee) internal virtual returns (uint256 nativeFee) {\\n        if (msg.value != _nativeFee) revert NotEnoughNative(msg.value);\\n        return _nativeFee;\\n    }\\n\\n    /**\\n     * @dev Internal function to pay the LZ token fee associated with the message.\\n     * @param _lzTokenFee The LZ token fee to be paid.\\n     *\\n     * @dev If the caller is trying to pay in the specified lzToken, then the lzTokenFee is passed to the endpoint.\\n     * @dev Any excess sent, is passed back to the specified _refundAddress in the _lzSend().\\n     */\\n    function _payLzToken(uint256 _lzTokenFee) internal virtual {\\n        // @dev Cannot cache the token because it is not immutable in the endpoint.\\n        address lzToken = endpoint.lzToken();\\n        if (lzToken == address(0)) revert LzTokenUnavailable();\\n\\n        // Pay LZ token fee by sending tokens to the endpoint.\\n        IERC20(lzToken).safeTransferFrom(msg.sender, address(endpoint), _lzTokenFee);\\n    }\\n}\\n\",\"keccak256\":\"0x4e13557c5dc7c983f69d32911572efdbddea071a03bf2fc50e1cad92ddf0ef49\",\"license\":\"MIT\"},\"@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppCore.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { ILayerZeroEndpointV2 } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\\\";\\n\\n/**\\n * @title IOAppCore\\n */\\ninterface IOAppCore {\\n    // Custom error messages\\n    error OnlyPeer(uint32 eid, bytes32 sender);\\n    error NoPeer(uint32 eid);\\n    error InvalidEndpointCall();\\n    error InvalidDelegate();\\n\\n    // Event emitted when a peer (OApp) is set for a corresponding endpoint\\n    event PeerSet(uint32 eid, bytes32 peer);\\n\\n    /**\\n     * @notice Retrieves the OApp version information.\\n     * @return senderVersion The version of the OAppSender.sol contract.\\n     * @return receiverVersion The version of the OAppReceiver.sol contract.\\n     */\\n    function oAppVersion() external view returns (uint64 senderVersion, uint64 receiverVersion);\\n\\n    /**\\n     * @notice Retrieves the LayerZero endpoint associated with the OApp.\\n     * @return iEndpoint The LayerZero endpoint as an interface.\\n     */\\n    function endpoint() external view returns (ILayerZeroEndpointV2 iEndpoint);\\n\\n    /**\\n     * @notice Retrieves the peer (OApp) associated with a corresponding endpoint.\\n     * @param _eid The endpoint ID.\\n     * @return peer The peer address (OApp instance) associated with the corresponding endpoint.\\n     */\\n    function peers(uint32 _eid) external view returns (bytes32 peer);\\n\\n    /**\\n     * @notice Sets the peer address (OApp instance) for a corresponding endpoint.\\n     * @param _eid The endpoint ID.\\n     * @param _peer The address of the peer to be associated with the corresponding endpoint.\\n     */\\n    function setPeer(uint32 _eid, bytes32 _peer) external;\\n\\n    /**\\n     * @notice Sets the delegate address for the OApp Core.\\n     * @param _delegate The address of the delegate to be set.\\n     */\\n    function setDelegate(address _delegate) external;\\n}\\n\",\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\"},\"@layerzerolabs/oapp-evm/contracts/oapp/libs/OptionsBuilder.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { BytesLib } from \\\"solidity-bytes-utils/contracts/BytesLib.sol\\\";\\nimport { SafeCast } from \\\"@openzeppelin/contracts/utils/math/SafeCast.sol\\\";\\n\\nimport { ExecutorOptions } from \\\"@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/ExecutorOptions.sol\\\";\\nimport { DVNOptions } from \\\"@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\\\";\\n\\n/**\\n * @title OptionsBuilder\\n * @dev Library for building and encoding various message options.\\n */\\nlibrary OptionsBuilder {\\n    using SafeCast for uint256;\\n    using BytesLib for bytes;\\n\\n    // Constants for options types\\n    uint16 internal constant TYPE_1 = 1; // legacy options type 1\\n    uint16 internal constant TYPE_2 = 2; // legacy options type 2\\n    uint16 internal constant TYPE_3 = 3;\\n\\n    // Custom error message\\n    error InvalidSize(uint256 max, uint256 actual);\\n    error InvalidOptionType(uint16 optionType);\\n\\n    // Modifier to ensure only options of type 3 are used\\n    modifier onlyType3(bytes memory _options) {\\n        if (_options.toUint16(0) != TYPE_3) revert InvalidOptionType(_options.toUint16(0));\\n        _;\\n    }\\n\\n    /**\\n     * @dev Creates a new options container with type 3.\\n     * @return options The newly created options container.\\n     */\\n    function newOptions() internal pure returns (bytes memory) {\\n        return abi.encodePacked(TYPE_3);\\n    }\\n\\n    /**\\n     * @dev Adds an executor LZ receive option to the existing options.\\n     * @param _options The existing options container.\\n     * @param _gas The gasLimit used on the lzReceive() function in the OApp.\\n     * @param _value The msg.value passed to the lzReceive() function in the OApp.\\n     * @return options The updated options container.\\n     *\\n     * @dev When multiples of this option are added, they are summed by the executor\\n     * eg. if (_gas: 200k, and _value: 1 ether) AND (_gas: 100k, _value: 0.5 ether) are sent in an option to the LayerZeroEndpoint,\\n     * that becomes (300k, 1.5 ether) when the message is executed on the remote lzReceive() function.\\n     */\\n    function addExecutorLzReceiveOption(\\n        bytes memory _options,\\n        uint128 _gas,\\n        uint128 _value\\n    ) internal pure onlyType3(_options) returns (bytes memory) {\\n        bytes memory option = ExecutorOptions.encodeLzReceiveOption(_gas, _value);\\n        return addExecutorOption(_options, ExecutorOptions.OPTION_TYPE_LZRECEIVE, option);\\n    }\\n\\n    /**\\n     * @dev Adds an executor native drop option to the existing options.\\n     * @param _options The existing options container.\\n     * @param _amount The amount for the native value that is airdropped to the 'receiver'.\\n     * @param _receiver The receiver address for the native drop option.\\n     * @return options The updated options container.\\n     *\\n     * @dev When multiples of this option are added, they are summed by the executor on the remote chain.\\n     */\\n    function addExecutorNativeDropOption(\\n        bytes memory _options,\\n        uint128 _amount,\\n        bytes32 _receiver\\n    ) internal pure onlyType3(_options) returns (bytes memory) {\\n        bytes memory option = ExecutorOptions.encodeNativeDropOption(_amount, _receiver);\\n        return addExecutorOption(_options, ExecutorOptions.OPTION_TYPE_NATIVE_DROP, option);\\n    }\\n\\n    // /**\\n    //  * @dev Adds an executor native drop option to the existing options.\\n    //  * @param _options The existing options container.\\n    //  * @param _amount The amount for the native value that is airdropped to the 'receiver'.\\n    //  * @param _receiver The receiver address for the native drop option.\\n    //  * @return options The updated options container.\\n    //  *\\n    //  * @dev When multiples of this option are added, they are summed by the executor on the remote chain.\\n    //  */\\n    function addExecutorLzReadOption(\\n        bytes memory _options,\\n        uint128 _gas,\\n        uint32 _size,\\n        uint128 _value\\n    ) internal pure onlyType3(_options) returns (bytes memory) {\\n        bytes memory option = ExecutorOptions.encodeLzReadOption(_gas, _size, _value);\\n        return addExecutorOption(_options, ExecutorOptions.OPTION_TYPE_LZREAD, option);\\n    }\\n\\n    /**\\n     * @dev Adds an executor LZ compose option to the existing options.\\n     * @param _options The existing options container.\\n     * @param _index The index for the lzCompose() function call.\\n     * @param _gas The gasLimit for the lzCompose() function call.\\n     * @param _value The msg.value for the lzCompose() function call.\\n     * @return options The updated options container.\\n     *\\n     * @dev When multiples of this option are added, they are summed PER index by the executor on the remote chain.\\n     * @dev If the OApp sends N lzCompose calls on the remote, you must provide N incremented indexes starting with 0.\\n     * ie. When your remote OApp composes (N = 3) messages, you must set this option for index 0,1,2\\n     */\\n    function addExecutorLzComposeOption(\\n        bytes memory _options,\\n        uint16 _index,\\n        uint128 _gas,\\n        uint128 _value\\n    ) internal pure onlyType3(_options) returns (bytes memory) {\\n        bytes memory option = ExecutorOptions.encodeLzComposeOption(_index, _gas, _value);\\n        return addExecutorOption(_options, ExecutorOptions.OPTION_TYPE_LZCOMPOSE, option);\\n    }\\n\\n    /**\\n     * @dev Adds an executor ordered execution option to the existing options.\\n     * @param _options The existing options container.\\n     * @return options The updated options container.\\n     */\\n    function addExecutorOrderedExecutionOption(\\n        bytes memory _options\\n    ) internal pure onlyType3(_options) returns (bytes memory) {\\n        return addExecutorOption(_options, ExecutorOptions.OPTION_TYPE_ORDERED_EXECUTION, bytes(\\\"\\\"));\\n    }\\n\\n    /**\\n     * @dev Adds a DVN pre-crime option to the existing options.\\n     * @param _options The existing options container.\\n     * @param _dvnIdx The DVN index for the pre-crime option.\\n     * @return options The updated options container.\\n     */\\n    function addDVNPreCrimeOption(\\n        bytes memory _options,\\n        uint8 _dvnIdx\\n    ) internal pure onlyType3(_options) returns (bytes memory) {\\n        return addDVNOption(_options, _dvnIdx, DVNOptions.OPTION_TYPE_PRECRIME, bytes(\\\"\\\"));\\n    }\\n\\n    /**\\n     * @dev Adds an executor option to the existing options.\\n     * @param _options The existing options container.\\n     * @param _optionType The type of the executor option.\\n     * @param _option The encoded data for the executor option.\\n     * @return options The updated options container.\\n     */\\n    function addExecutorOption(\\n        bytes memory _options,\\n        uint8 _optionType,\\n        bytes memory _option\\n    ) internal pure onlyType3(_options) returns (bytes memory) {\\n        return\\n            abi.encodePacked(\\n                _options,\\n                ExecutorOptions.WORKER_ID,\\n                _option.length.toUint16() + 1, // +1 for optionType\\n                _optionType,\\n                _option\\n            );\\n    }\\n\\n    /**\\n     * @dev Adds a DVN option to the existing options.\\n     * @param _options The existing options container.\\n     * @param _dvnIdx The DVN index for the DVN option.\\n     * @param _optionType The type of the DVN option.\\n     * @param _option The encoded data for the DVN option.\\n     * @return options The updated options container.\\n     */\\n    function addDVNOption(\\n        bytes memory _options,\\n        uint8 _dvnIdx,\\n        uint8 _optionType,\\n        bytes memory _option\\n    ) internal pure onlyType3(_options) returns (bytes memory) {\\n        return\\n            abi.encodePacked(\\n                _options,\\n                DVNOptions.WORKER_ID,\\n                _option.length.toUint16() + 2, // +2 for optionType and dvnIdx\\n                _dvnIdx,\\n                _optionType,\\n                _option\\n            );\\n    }\\n\\n    /**\\n     * @dev Encodes legacy options of type 1.\\n     * @param _executionGas The gasLimit value passed to lzReceive().\\n     * @return legacyOptions The encoded legacy options.\\n     */\\n    function encodeLegacyOptionsType1(uint256 _executionGas) internal pure returns (bytes memory) {\\n        if (_executionGas > type(uint128).max) revert InvalidSize(type(uint128).max, _executionGas);\\n        return abi.encodePacked(TYPE_1, _executionGas);\\n    }\\n\\n    /**\\n     * @dev Encodes legacy options of type 2.\\n     * @param _executionGas The gasLimit value passed to lzReceive().\\n     * @param _nativeForDst The amount of native air dropped to the receiver.\\n     * @param _receiver The _nativeForDst receiver address.\\n     * @return legacyOptions The encoded legacy options of type 2.\\n     */\\n    function encodeLegacyOptionsType2(\\n        uint256 _executionGas,\\n        uint256 _nativeForDst,\\n        bytes memory _receiver // @dev Use bytes instead of bytes32 in legacy type 2 for _receiver.\\n    ) internal pure returns (bytes memory) {\\n        if (_executionGas > type(uint128).max) revert InvalidSize(type(uint128).max, _executionGas);\\n        if (_nativeForDst > type(uint128).max) revert InvalidSize(type(uint128).max, _nativeForDst);\\n        if (_receiver.length > 32) revert InvalidSize(32, _receiver.length);\\n        return abi.encodePacked(TYPE_2, _executionGas, _nativeForDst, _receiver);\\n    }\\n}\\n\",\"keccak256\":\"0xd40d91e8173cdb5bb821b4594f806b99344d5fd605bc6f2cf0fb21d5ab2500e3\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (access/Ownable2Step.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./OwnableUpgradeable.sol\\\";\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership} and {acceptOwnership}.\\n *\\n * This module is used through inheritance. It will make available all functions\\n * from parent (Ownable).\\n */\\nabstract contract Ownable2StepUpgradeable is Initializable, OwnableUpgradeable {\\n    function __Ownable2Step_init() internal onlyInitializing {\\n        __Ownable_init_unchained();\\n    }\\n\\n    function __Ownable2Step_init_unchained() internal onlyInitializing {\\n    }\\n    address private _pendingOwner;\\n\\n    event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Returns the address of the pending owner.\\n     */\\n    function pendingOwner() public view virtual returns (address) {\\n        return _pendingOwner;\\n    }\\n\\n    /**\\n     * @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual override onlyOwner {\\n        _pendingOwner = newOwner;\\n        emit OwnershipTransferStarted(owner(), newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual override {\\n        delete _pendingOwner;\\n        super._transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev The new owner accepts the ownership transfer.\\n     */\\n    function acceptOwnership() external {\\n        address sender = _msgSender();\\n        require(pendingOwner() == sender, \\\"Ownable2Step: caller is not the new owner\\\");\\n        _transferOwnership(sender);\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0xd712fb45b3ea0ab49679164e3895037adc26ce12879d5184feb040e01c1c07a9\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/ContextUpgradeable.sol\\\";\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract OwnableUpgradeable is Initializable, ContextUpgradeable {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    function __Ownable_init() internal onlyInitializing {\\n        __Ownable_init_unchained();\\n    }\\n\\n    function __Ownable_init_unchained() internal onlyInitializing {\\n        _transferOwnership(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        _checkOwner();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if the sender is not the owner.\\n     */\\n    function _checkOwner() internal view virtual {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions anymore. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby removing any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.1) (proxy/utils/Initializable.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../../utils/AddressUpgradeable.sol\\\";\\n\\n/**\\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\\n *\\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\\n * reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in\\n * case an upgrade adds a module that needs to be initialized.\\n *\\n * For example:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * contract MyToken is ERC20Upgradeable {\\n *     function initialize() initializer public {\\n *         __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\");\\n *     }\\n * }\\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\\n *     function initializeV2() reinitializer(2) public {\\n *         __ERC20Permit_init(\\\"MyToken\\\");\\n *     }\\n * }\\n * ```\\n *\\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\\n *\\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\\n *\\n * [CAUTION]\\n * ====\\n * Avoid leaving a contract uninitialized.\\n *\\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * /// @custom:oz-upgrades-unsafe-allow constructor\\n * constructor() {\\n *     _disableInitializers();\\n * }\\n * ```\\n * ====\\n */\\nabstract contract Initializable {\\n    /**\\n     * @dev Indicates that the contract has been initialized.\\n     * @custom:oz-retyped-from bool\\n     */\\n    uint8 private _initialized;\\n\\n    /**\\n     * @dev Indicates that the contract is in the process of being initialized.\\n     */\\n    bool private _initializing;\\n\\n    /**\\n     * @dev Triggered when the contract has been initialized or reinitialized.\\n     */\\n    event Initialized(uint8 version);\\n\\n    /**\\n     * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\\n     * `onlyInitializing` functions can be used to initialize parent contracts.\\n     *\\n     * Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\\n     * constructor.\\n     *\\n     * Emits an {Initialized} event.\\n     */\\n    modifier initializer() {\\n        bool isTopLevelCall = !_initializing;\\n        require(\\n            (isTopLevelCall && _initialized < 1) || (!AddressUpgradeable.isContract(address(this)) && _initialized == 1),\\n            \\\"Initializable: contract is already initialized\\\"\\n        );\\n        _initialized = 1;\\n        if (isTopLevelCall) {\\n            _initializing = true;\\n        }\\n        _;\\n        if (isTopLevelCall) {\\n            _initializing = false;\\n            emit Initialized(1);\\n        }\\n    }\\n\\n    /**\\n     * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\\n     * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\\n     * used to initialize parent contracts.\\n     *\\n     * A reinitializer may be used after the original initialization step. This is essential to configure modules that\\n     * are added through upgrades and that require initialization.\\n     *\\n     * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\\n     * cannot be nested. If one is invoked in the context of another, execution will revert.\\n     *\\n     * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\\n     * a contract, executing them in the right order is up to the developer or operator.\\n     *\\n     * WARNING: setting the version to 255 will prevent any future reinitialization.\\n     *\\n     * Emits an {Initialized} event.\\n     */\\n    modifier reinitializer(uint8 version) {\\n        require(!_initializing && _initialized < version, \\\"Initializable: contract is already initialized\\\");\\n        _initialized = version;\\n        _initializing = true;\\n        _;\\n        _initializing = false;\\n        emit Initialized(version);\\n    }\\n\\n    /**\\n     * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\\n     * {initializer} and {reinitializer} modifiers, directly or indirectly.\\n     */\\n    modifier onlyInitializing() {\\n        require(_initializing, \\\"Initializable: contract is not initializing\\\");\\n        _;\\n    }\\n\\n    /**\\n     * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\\n     * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\\n     * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\\n     * through proxies.\\n     *\\n     * Emits an {Initialized} event the first time it is successfully executed.\\n     */\\n    function _disableInitializers() internal virtual {\\n        require(!_initializing, \\\"Initializable: contract is initializing\\\");\\n        if (_initialized < type(uint8).max) {\\n            _initialized = type(uint8).max;\\n            emit Initialized(type(uint8).max);\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns the highest version that has been initialized. See {reinitializer}.\\n     */\\n    function _getInitializedVersion() internal view returns (uint8) {\\n        return _initialized;\\n    }\\n\\n    /**\\n     * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.\\n     */\\n    function _isInitializing() internal view returns (bool) {\\n        return _initializing;\\n    }\\n}\\n\",\"keccak256\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary AddressUpgradeable {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\n     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\n     *\\n     * _Available since v4.8._\\n     */\\n    function verifyCallResultFromTarget(\\n        address target,\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        if (success) {\\n            if (returndata.length == 0) {\\n                // only check isContract if the call was successful and the return data is empty\\n                // otherwise we already know that it was a contract\\n                require(isContract(target), \\\"Address: call to non-contract\\\");\\n            }\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason or using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    function _revert(bytes memory returndata, string memory errorMessage) private pure {\\n        // Look for revert reason and bubble it up if present\\n        if (returndata.length > 0) {\\n            // The easiest way to bubble the revert reason is using memory via assembly\\n            /// @solidity memory-safe-assembly\\n            assembly {\\n                let returndata_size := mload(returndata)\\n                revert(add(32, returndata), returndata_size)\\n            }\\n        } else {\\n            revert(errorMessage);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract ContextUpgradeable is Initializable {\\n    function __Context_init() internal onlyInitializing {\\n    }\\n\\n    function __Context_init_unchained() internal onlyInitializing {\\n    }\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[50] private __gap;\\n}\\n\",\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n    /**\\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n     * another (`to`).\\n     *\\n     * Note that `value` may be zero.\\n     */\\n    event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n    /**\\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n     * a call to {approve}. `value` is the new allowance.\\n     */\\n    event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n    /**\\n     * @dev Returns the amount of tokens in existence.\\n     */\\n    function totalSupply() external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the amount of tokens owned by `account`.\\n     */\\n    function balanceOf(address account) external view returns (uint256);\\n\\n    /**\\n     * @dev Moves `amount` tokens from the caller's account to `to`.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transfer(address to, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Returns the remaining number of tokens that `spender` will be\\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n     * zero by default.\\n     *\\n     * This value changes when {approve} or {transferFrom} are called.\\n     */\\n    function allowance(address owner, address spender) external view returns (uint256);\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n     * that someone may use both the old and the new allowance by unfortunate\\n     * transaction ordering. One possible solution to mitigate this race\\n     * condition is to first reduce the spender's allowance to 0 and set the\\n     * desired value afterwards:\\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n     *\\n     * Emits an {Approval} event.\\n     */\\n    function approve(address spender, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Moves `amount` tokens from `from` to `to` using the\\n     * allowance mechanism. `amount` is then deducted from the caller's\\n     * allowance.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.4) (token/ERC20/extensions/IERC20Permit.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\\n * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\\n *\\n * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\\n * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\\n * need to send a transaction, and thus is not required to hold Ether at all.\\n *\\n * ==== Security Considerations\\n *\\n * There are two important considerations concerning the use of `permit`. The first is that a valid permit signature\\n * expresses an allowance, and it should not be assumed to convey additional meaning. In particular, it should not be\\n * considered as an intention to spend the allowance in any specific way. The second is that because permits have\\n * built-in replay protection and can be submitted by anyone, they can be frontrun. A protocol that uses permits should\\n * take this into consideration and allow a `permit` call to fail. Combining these two aspects, a pattern that may be\\n * generally recommended is:\\n *\\n * ```solidity\\n * function doThingWithPermit(..., uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public {\\n *     try token.permit(msg.sender, address(this), value, deadline, v, r, s) {} catch {}\\n *     doThing(..., value);\\n * }\\n *\\n * function doThing(..., uint256 value) public {\\n *     token.safeTransferFrom(msg.sender, address(this), value);\\n *     ...\\n * }\\n * ```\\n *\\n * Observe that: 1) `msg.sender` is used as the owner, leaving no ambiguity as to the signer intent, and 2) the use of\\n * `try/catch` allows the permit to fail and makes the code tolerant to frontrunning. (See also\\n * {SafeERC20-safeTransferFrom}).\\n *\\n * Additionally, note that smart contract wallets (such as Argent or Safe) are not able to produce permit signatures, so\\n * contracts should have entry points that don't rely on permit.\\n */\\ninterface IERC20Permit {\\n    /**\\n     * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\\n     * given ``owner``'s signed approval.\\n     *\\n     * IMPORTANT: The same issues {IERC20-approve} has related to transaction\\n     * ordering also apply here.\\n     *\\n     * Emits an {Approval} event.\\n     *\\n     * Requirements:\\n     *\\n     * - `spender` cannot be the zero address.\\n     * - `deadline` must be a timestamp in the future.\\n     * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\\n     * over the EIP712-formatted function arguments.\\n     * - the signature must use ``owner``'s current nonce (see {nonces}).\\n     *\\n     * For more information on the signature format, see the\\n     * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\\n     * section].\\n     *\\n     * CAUTION: See Security Considerations above.\\n     */\\n    function permit(\\n        address owner,\\n        address spender,\\n        uint256 value,\\n        uint256 deadline,\\n        uint8 v,\\n        bytes32 r,\\n        bytes32 s\\n    ) external;\\n\\n    /**\\n     * @dev Returns the current nonce for `owner`. This value must be\\n     * included whenever a signature is generated for {permit}.\\n     *\\n     * Every successful call to {permit} increases ``owner``'s nonce by one. This\\n     * prevents a signature from being used multiple times.\\n     */\\n    function nonces(address owner) external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\\n     */\\n    // solhint-disable-next-line func-name-mixedcase\\n    function DOMAIN_SEPARATOR() external view returns (bytes32);\\n}\\n\",\"keccak256\":\"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.3) (token/ERC20/utils/SafeERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\nimport \\\"../extensions/IERC20Permit.sol\\\";\\nimport \\\"../../../utils/Address.sol\\\";\\n\\n/**\\n * @title SafeERC20\\n * @dev Wrappers around ERC20 operations that throw on failure (when the token\\n * contract returns false). Tokens that return no value (and instead revert or\\n * throw on failure) are also supported, non-reverting calls are assumed to be\\n * successful.\\n * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\\n * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\\n */\\nlibrary SafeERC20 {\\n    using Address for address;\\n\\n    /**\\n     * @dev Transfer `value` amount of `token` from the calling contract to `to`. If `token` returns no value,\\n     * non-reverting calls are assumed to be successful.\\n     */\\n    function safeTransfer(IERC20 token, address to, uint256 value) internal {\\n        _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));\\n    }\\n\\n    /**\\n     * @dev Transfer `value` amount of `token` from `from` to `to`, spending the approval given by `from` to the\\n     * calling contract. If `token` returns no value, non-reverting calls are assumed to be successful.\\n     */\\n    function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {\\n        _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));\\n    }\\n\\n    /**\\n     * @dev Deprecated. This function has issues similar to the ones found in\\n     * {IERC20-approve}, and its usage is discouraged.\\n     *\\n     * Whenever possible, use {safeIncreaseAllowance} and\\n     * {safeDecreaseAllowance} instead.\\n     */\\n    function safeApprove(IERC20 token, address spender, uint256 value) internal {\\n        // safeApprove should only be called when setting an initial allowance,\\n        // or when resetting it to zero. To increase and decrease it, use\\n        // 'safeIncreaseAllowance' and 'safeDecreaseAllowance'\\n        require(\\n            (value == 0) || (token.allowance(address(this), spender) == 0),\\n            \\\"SafeERC20: approve from non-zero to non-zero allowance\\\"\\n        );\\n        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));\\n    }\\n\\n    /**\\n     * @dev Increase the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\\n     * non-reverting calls are assumed to be successful.\\n     */\\n    function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal {\\n        uint256 oldAllowance = token.allowance(address(this), spender);\\n        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, oldAllowance + value));\\n    }\\n\\n    /**\\n     * @dev Decrease the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\\n     * non-reverting calls are assumed to be successful.\\n     */\\n    function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal {\\n        unchecked {\\n            uint256 oldAllowance = token.allowance(address(this), spender);\\n            require(oldAllowance >= value, \\\"SafeERC20: decreased allowance below zero\\\");\\n            _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, oldAllowance - value));\\n        }\\n    }\\n\\n    /**\\n     * @dev Set the calling contract's allowance toward `spender` to `value`. If `token` returns no value,\\n     * non-reverting calls are assumed to be successful. Meant to be used with tokens that require the approval\\n     * to be set to zero before setting it to a non-zero value, such as USDT.\\n     */\\n    function forceApprove(IERC20 token, address spender, uint256 value) internal {\\n        bytes memory approvalCall = abi.encodeWithSelector(token.approve.selector, spender, value);\\n\\n        if (!_callOptionalReturnBool(token, approvalCall)) {\\n            _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, 0));\\n            _callOptionalReturn(token, approvalCall);\\n        }\\n    }\\n\\n    /**\\n     * @dev Use a ERC-2612 signature to set the `owner` approval toward `spender` on `token`.\\n     * Revert on invalid signature.\\n     */\\n    function safePermit(\\n        IERC20Permit token,\\n        address owner,\\n        address spender,\\n        uint256 value,\\n        uint256 deadline,\\n        uint8 v,\\n        bytes32 r,\\n        bytes32 s\\n    ) internal {\\n        uint256 nonceBefore = token.nonces(owner);\\n        token.permit(owner, spender, value, deadline, v, r, s);\\n        uint256 nonceAfter = token.nonces(owner);\\n        require(nonceAfter == nonceBefore + 1, \\\"SafeERC20: permit did not succeed\\\");\\n    }\\n\\n    /**\\n     * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\\n     * on the return value: the return value is optional (but if data is returned, it must not be false).\\n     * @param token The token targeted by the call.\\n     * @param data The call data (encoded using abi.encode or one of its variants).\\n     */\\n    function _callOptionalReturn(IERC20 token, bytes memory data) private {\\n        // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\\n        // we're implementing it ourselves. We use {Address-functionCall} to perform this call, which verifies that\\n        // the target address contains contract code and also asserts for success in the low-level call.\\n\\n        bytes memory returndata = address(token).functionCall(data, \\\"SafeERC20: low-level call failed\\\");\\n        require(returndata.length == 0 || abi.decode(returndata, (bool)), \\\"SafeERC20: ERC20 operation did not succeed\\\");\\n    }\\n\\n    /**\\n     * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\\n     * on the return value: the return value is optional (but if data is returned, it must not be false).\\n     * @param token The token targeted by the call.\\n     * @param data The call data (encoded using abi.encode or one of its variants).\\n     *\\n     * This is a variant of {_callOptionalReturn} that silents catches all reverts and returns a bool instead.\\n     */\\n    function _callOptionalReturnBool(IERC20 token, bytes memory data) private returns (bool) {\\n        // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\\n        // we're implementing it ourselves. We cannot use {Address-functionCall} here since this should return false\\n        // and not revert is the subcall reverts.\\n\\n        (bool success, bytes memory returndata) = address(token).call(data);\\n        return\\n            success && (returndata.length == 0 || abi.decode(returndata, (bool))) && Address.isContract(address(token));\\n    }\\n}\\n\",\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Address.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary Address {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     *\\n     * Furthermore, `isContract` will also return true if the target contract within\\n     * the same transaction is already scheduled for destruction by `SELFDESTRUCT`,\\n     * which only has an effect at the end of a transaction.\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.delegatecall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\n     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\n     *\\n     * _Available since v4.8._\\n     */\\n    function verifyCallResultFromTarget(\\n        address target,\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        if (success) {\\n            if (returndata.length == 0) {\\n                // only check isContract if the call was successful and the return data is empty\\n                // otherwise we already know that it was a contract\\n                require(isContract(target), \\\"Address: call to non-contract\\\");\\n            }\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason or using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    function _revert(bytes memory returndata, string memory errorMessage) private pure {\\n        // Look for revert reason and bubble it up if present\\n        if (returndata.length > 0) {\\n            // The easiest way to bubble the revert reason is using memory via assembly\\n            /// @solidity memory-safe-assembly\\n            assembly {\\n                let returndata_size := mload(returndata)\\n                revert(add(32, returndata), returndata_size)\\n            }\\n        } else {\\n            revert(errorMessage);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/SafeCast.sol)\\n// This file was procedurally generated from scripts/generate/templates/SafeCast.js.\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Wrappers over Solidity's uintXX/intXX casting operators with added overflow\\n * checks.\\n *\\n * Downcasting from uint256/int256 in Solidity does not revert on overflow. This can\\n * easily result in undesired exploitation or bugs, since developers usually\\n * assume that overflows raise errors. `SafeCast` restores this intuition by\\n * reverting the transaction when such an operation overflows.\\n *\\n * Using this library instead of the unchecked operations eliminates an entire\\n * class of bugs, so it's recommended to use it always.\\n *\\n * Can be combined with {SafeMath} and {SignedSafeMath} to extend it to smaller types, by performing\\n * all math on `uint256` and `int256` and then downcasting.\\n */\\nlibrary SafeCast {\\n    /**\\n     * @dev Returns the downcasted uint248 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint248).\\n     *\\n     * Counterpart to Solidity's `uint248` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 248 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint248(uint256 value) internal pure returns (uint248) {\\n        require(value <= type(uint248).max, \\\"SafeCast: value doesn't fit in 248 bits\\\");\\n        return uint248(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint240 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint240).\\n     *\\n     * Counterpart to Solidity's `uint240` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 240 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint240(uint256 value) internal pure returns (uint240) {\\n        require(value <= type(uint240).max, \\\"SafeCast: value doesn't fit in 240 bits\\\");\\n        return uint240(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint232 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint232).\\n     *\\n     * Counterpart to Solidity's `uint232` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 232 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint232(uint256 value) internal pure returns (uint232) {\\n        require(value <= type(uint232).max, \\\"SafeCast: value doesn't fit in 232 bits\\\");\\n        return uint232(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint224 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint224).\\n     *\\n     * Counterpart to Solidity's `uint224` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 224 bits\\n     *\\n     * _Available since v4.2._\\n     */\\n    function toUint224(uint256 value) internal pure returns (uint224) {\\n        require(value <= type(uint224).max, \\\"SafeCast: value doesn't fit in 224 bits\\\");\\n        return uint224(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint216 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint216).\\n     *\\n     * Counterpart to Solidity's `uint216` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 216 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint216(uint256 value) internal pure returns (uint216) {\\n        require(value <= type(uint216).max, \\\"SafeCast: value doesn't fit in 216 bits\\\");\\n        return uint216(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint208 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint208).\\n     *\\n     * Counterpart to Solidity's `uint208` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 208 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint208(uint256 value) internal pure returns (uint208) {\\n        require(value <= type(uint208).max, \\\"SafeCast: value doesn't fit in 208 bits\\\");\\n        return uint208(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint200 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint200).\\n     *\\n     * Counterpart to Solidity's `uint200` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 200 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint200(uint256 value) internal pure returns (uint200) {\\n        require(value <= type(uint200).max, \\\"SafeCast: value doesn't fit in 200 bits\\\");\\n        return uint200(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint192 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint192).\\n     *\\n     * Counterpart to Solidity's `uint192` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 192 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint192(uint256 value) internal pure returns (uint192) {\\n        require(value <= type(uint192).max, \\\"SafeCast: value doesn't fit in 192 bits\\\");\\n        return uint192(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint184 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint184).\\n     *\\n     * Counterpart to Solidity's `uint184` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 184 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint184(uint256 value) internal pure returns (uint184) {\\n        require(value <= type(uint184).max, \\\"SafeCast: value doesn't fit in 184 bits\\\");\\n        return uint184(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint176 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint176).\\n     *\\n     * Counterpart to Solidity's `uint176` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 176 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint176(uint256 value) internal pure returns (uint176) {\\n        require(value <= type(uint176).max, \\\"SafeCast: value doesn't fit in 176 bits\\\");\\n        return uint176(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint168 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint168).\\n     *\\n     * Counterpart to Solidity's `uint168` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 168 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint168(uint256 value) internal pure returns (uint168) {\\n        require(value <= type(uint168).max, \\\"SafeCast: value doesn't fit in 168 bits\\\");\\n        return uint168(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint160 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint160).\\n     *\\n     * Counterpart to Solidity's `uint160` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 160 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint160(uint256 value) internal pure returns (uint160) {\\n        require(value <= type(uint160).max, \\\"SafeCast: value doesn't fit in 160 bits\\\");\\n        return uint160(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint152 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint152).\\n     *\\n     * Counterpart to Solidity's `uint152` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 152 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint152(uint256 value) internal pure returns (uint152) {\\n        require(value <= type(uint152).max, \\\"SafeCast: value doesn't fit in 152 bits\\\");\\n        return uint152(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint144 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint144).\\n     *\\n     * Counterpart to Solidity's `uint144` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 144 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint144(uint256 value) internal pure returns (uint144) {\\n        require(value <= type(uint144).max, \\\"SafeCast: value doesn't fit in 144 bits\\\");\\n        return uint144(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint136 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint136).\\n     *\\n     * Counterpart to Solidity's `uint136` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 136 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint136(uint256 value) internal pure returns (uint136) {\\n        require(value <= type(uint136).max, \\\"SafeCast: value doesn't fit in 136 bits\\\");\\n        return uint136(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint128 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint128).\\n     *\\n     * Counterpart to Solidity's `uint128` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 128 bits\\n     *\\n     * _Available since v2.5._\\n     */\\n    function toUint128(uint256 value) internal pure returns (uint128) {\\n        require(value <= type(uint128).max, \\\"SafeCast: value doesn't fit in 128 bits\\\");\\n        return uint128(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint120 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint120).\\n     *\\n     * Counterpart to Solidity's `uint120` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 120 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint120(uint256 value) internal pure returns (uint120) {\\n        require(value <= type(uint120).max, \\\"SafeCast: value doesn't fit in 120 bits\\\");\\n        return uint120(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint112 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint112).\\n     *\\n     * Counterpart to Solidity's `uint112` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 112 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint112(uint256 value) internal pure returns (uint112) {\\n        require(value <= type(uint112).max, \\\"SafeCast: value doesn't fit in 112 bits\\\");\\n        return uint112(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint104 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint104).\\n     *\\n     * Counterpart to Solidity's `uint104` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 104 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint104(uint256 value) internal pure returns (uint104) {\\n        require(value <= type(uint104).max, \\\"SafeCast: value doesn't fit in 104 bits\\\");\\n        return uint104(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint96 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint96).\\n     *\\n     * Counterpart to Solidity's `uint96` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 96 bits\\n     *\\n     * _Available since v4.2._\\n     */\\n    function toUint96(uint256 value) internal pure returns (uint96) {\\n        require(value <= type(uint96).max, \\\"SafeCast: value doesn't fit in 96 bits\\\");\\n        return uint96(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint88 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint88).\\n     *\\n     * Counterpart to Solidity's `uint88` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 88 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint88(uint256 value) internal pure returns (uint88) {\\n        require(value <= type(uint88).max, \\\"SafeCast: value doesn't fit in 88 bits\\\");\\n        return uint88(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint80 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint80).\\n     *\\n     * Counterpart to Solidity's `uint80` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 80 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint80(uint256 value) internal pure returns (uint80) {\\n        require(value <= type(uint80).max, \\\"SafeCast: value doesn't fit in 80 bits\\\");\\n        return uint80(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint72 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint72).\\n     *\\n     * Counterpart to Solidity's `uint72` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 72 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint72(uint256 value) internal pure returns (uint72) {\\n        require(value <= type(uint72).max, \\\"SafeCast: value doesn't fit in 72 bits\\\");\\n        return uint72(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint64 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint64).\\n     *\\n     * Counterpart to Solidity's `uint64` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 64 bits\\n     *\\n     * _Available since v2.5._\\n     */\\n    function toUint64(uint256 value) internal pure returns (uint64) {\\n        require(value <= type(uint64).max, \\\"SafeCast: value doesn't fit in 64 bits\\\");\\n        return uint64(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint56 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint56).\\n     *\\n     * Counterpart to Solidity's `uint56` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 56 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint56(uint256 value) internal pure returns (uint56) {\\n        require(value <= type(uint56).max, \\\"SafeCast: value doesn't fit in 56 bits\\\");\\n        return uint56(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint48 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint48).\\n     *\\n     * Counterpart to Solidity's `uint48` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 48 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint48(uint256 value) internal pure returns (uint48) {\\n        require(value <= type(uint48).max, \\\"SafeCast: value doesn't fit in 48 bits\\\");\\n        return uint48(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint40 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint40).\\n     *\\n     * Counterpart to Solidity's `uint40` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 40 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint40(uint256 value) internal pure returns (uint40) {\\n        require(value <= type(uint40).max, \\\"SafeCast: value doesn't fit in 40 bits\\\");\\n        return uint40(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint32 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint32).\\n     *\\n     * Counterpart to Solidity's `uint32` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 32 bits\\n     *\\n     * _Available since v2.5._\\n     */\\n    function toUint32(uint256 value) internal pure returns (uint32) {\\n        require(value <= type(uint32).max, \\\"SafeCast: value doesn't fit in 32 bits\\\");\\n        return uint32(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint24 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint24).\\n     *\\n     * Counterpart to Solidity's `uint24` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 24 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toUint24(uint256 value) internal pure returns (uint24) {\\n        require(value <= type(uint24).max, \\\"SafeCast: value doesn't fit in 24 bits\\\");\\n        return uint24(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint16 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint16).\\n     *\\n     * Counterpart to Solidity's `uint16` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 16 bits\\n     *\\n     * _Available since v2.5._\\n     */\\n    function toUint16(uint256 value) internal pure returns (uint16) {\\n        require(value <= type(uint16).max, \\\"SafeCast: value doesn't fit in 16 bits\\\");\\n        return uint16(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted uint8 from uint256, reverting on\\n     * overflow (when the input is greater than largest uint8).\\n     *\\n     * Counterpart to Solidity's `uint8` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 8 bits\\n     *\\n     * _Available since v2.5._\\n     */\\n    function toUint8(uint256 value) internal pure returns (uint8) {\\n        require(value <= type(uint8).max, \\\"SafeCast: value doesn't fit in 8 bits\\\");\\n        return uint8(value);\\n    }\\n\\n    /**\\n     * @dev Converts a signed int256 into an unsigned uint256.\\n     *\\n     * Requirements:\\n     *\\n     * - input must be greater than or equal to 0.\\n     *\\n     * _Available since v3.0._\\n     */\\n    function toUint256(int256 value) internal pure returns (uint256) {\\n        require(value >= 0, \\\"SafeCast: value must be positive\\\");\\n        return uint256(value);\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int248 from int256, reverting on\\n     * overflow (when the input is less than smallest int248 or\\n     * greater than largest int248).\\n     *\\n     * Counterpart to Solidity's `int248` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 248 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt248(int256 value) internal pure returns (int248 downcasted) {\\n        downcasted = int248(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 248 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int240 from int256, reverting on\\n     * overflow (when the input is less than smallest int240 or\\n     * greater than largest int240).\\n     *\\n     * Counterpart to Solidity's `int240` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 240 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt240(int256 value) internal pure returns (int240 downcasted) {\\n        downcasted = int240(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 240 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int232 from int256, reverting on\\n     * overflow (when the input is less than smallest int232 or\\n     * greater than largest int232).\\n     *\\n     * Counterpart to Solidity's `int232` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 232 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt232(int256 value) internal pure returns (int232 downcasted) {\\n        downcasted = int232(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 232 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int224 from int256, reverting on\\n     * overflow (when the input is less than smallest int224 or\\n     * greater than largest int224).\\n     *\\n     * Counterpart to Solidity's `int224` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 224 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt224(int256 value) internal pure returns (int224 downcasted) {\\n        downcasted = int224(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 224 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int216 from int256, reverting on\\n     * overflow (when the input is less than smallest int216 or\\n     * greater than largest int216).\\n     *\\n     * Counterpart to Solidity's `int216` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 216 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt216(int256 value) internal pure returns (int216 downcasted) {\\n        downcasted = int216(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 216 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int208 from int256, reverting on\\n     * overflow (when the input is less than smallest int208 or\\n     * greater than largest int208).\\n     *\\n     * Counterpart to Solidity's `int208` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 208 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt208(int256 value) internal pure returns (int208 downcasted) {\\n        downcasted = int208(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 208 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int200 from int256, reverting on\\n     * overflow (when the input is less than smallest int200 or\\n     * greater than largest int200).\\n     *\\n     * Counterpart to Solidity's `int200` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 200 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt200(int256 value) internal pure returns (int200 downcasted) {\\n        downcasted = int200(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 200 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int192 from int256, reverting on\\n     * overflow (when the input is less than smallest int192 or\\n     * greater than largest int192).\\n     *\\n     * Counterpart to Solidity's `int192` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 192 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt192(int256 value) internal pure returns (int192 downcasted) {\\n        downcasted = int192(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 192 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int184 from int256, reverting on\\n     * overflow (when the input is less than smallest int184 or\\n     * greater than largest int184).\\n     *\\n     * Counterpart to Solidity's `int184` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 184 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt184(int256 value) internal pure returns (int184 downcasted) {\\n        downcasted = int184(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 184 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int176 from int256, reverting on\\n     * overflow (when the input is less than smallest int176 or\\n     * greater than largest int176).\\n     *\\n     * Counterpart to Solidity's `int176` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 176 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt176(int256 value) internal pure returns (int176 downcasted) {\\n        downcasted = int176(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 176 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int168 from int256, reverting on\\n     * overflow (when the input is less than smallest int168 or\\n     * greater than largest int168).\\n     *\\n     * Counterpart to Solidity's `int168` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 168 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt168(int256 value) internal pure returns (int168 downcasted) {\\n        downcasted = int168(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 168 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int160 from int256, reverting on\\n     * overflow (when the input is less than smallest int160 or\\n     * greater than largest int160).\\n     *\\n     * Counterpart to Solidity's `int160` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 160 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt160(int256 value) internal pure returns (int160 downcasted) {\\n        downcasted = int160(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 160 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int152 from int256, reverting on\\n     * overflow (when the input is less than smallest int152 or\\n     * greater than largest int152).\\n     *\\n     * Counterpart to Solidity's `int152` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 152 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt152(int256 value) internal pure returns (int152 downcasted) {\\n        downcasted = int152(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 152 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int144 from int256, reverting on\\n     * overflow (when the input is less than smallest int144 or\\n     * greater than largest int144).\\n     *\\n     * Counterpart to Solidity's `int144` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 144 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt144(int256 value) internal pure returns (int144 downcasted) {\\n        downcasted = int144(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 144 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int136 from int256, reverting on\\n     * overflow (when the input is less than smallest int136 or\\n     * greater than largest int136).\\n     *\\n     * Counterpart to Solidity's `int136` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 136 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt136(int256 value) internal pure returns (int136 downcasted) {\\n        downcasted = int136(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 136 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int128 from int256, reverting on\\n     * overflow (when the input is less than smallest int128 or\\n     * greater than largest int128).\\n     *\\n     * Counterpart to Solidity's `int128` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 128 bits\\n     *\\n     * _Available since v3.1._\\n     */\\n    function toInt128(int256 value) internal pure returns (int128 downcasted) {\\n        downcasted = int128(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 128 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int120 from int256, reverting on\\n     * overflow (when the input is less than smallest int120 or\\n     * greater than largest int120).\\n     *\\n     * Counterpart to Solidity's `int120` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 120 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt120(int256 value) internal pure returns (int120 downcasted) {\\n        downcasted = int120(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 120 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int112 from int256, reverting on\\n     * overflow (when the input is less than smallest int112 or\\n     * greater than largest int112).\\n     *\\n     * Counterpart to Solidity's `int112` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 112 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt112(int256 value) internal pure returns (int112 downcasted) {\\n        downcasted = int112(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 112 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int104 from int256, reverting on\\n     * overflow (when the input is less than smallest int104 or\\n     * greater than largest int104).\\n     *\\n     * Counterpart to Solidity's `int104` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 104 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt104(int256 value) internal pure returns (int104 downcasted) {\\n        downcasted = int104(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 104 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int96 from int256, reverting on\\n     * overflow (when the input is less than smallest int96 or\\n     * greater than largest int96).\\n     *\\n     * Counterpart to Solidity's `int96` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 96 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt96(int256 value) internal pure returns (int96 downcasted) {\\n        downcasted = int96(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 96 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int88 from int256, reverting on\\n     * overflow (when the input is less than smallest int88 or\\n     * greater than largest int88).\\n     *\\n     * Counterpart to Solidity's `int88` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 88 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt88(int256 value) internal pure returns (int88 downcasted) {\\n        downcasted = int88(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 88 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int80 from int256, reverting on\\n     * overflow (when the input is less than smallest int80 or\\n     * greater than largest int80).\\n     *\\n     * Counterpart to Solidity's `int80` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 80 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt80(int256 value) internal pure returns (int80 downcasted) {\\n        downcasted = int80(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 80 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int72 from int256, reverting on\\n     * overflow (when the input is less than smallest int72 or\\n     * greater than largest int72).\\n     *\\n     * Counterpart to Solidity's `int72` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 72 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt72(int256 value) internal pure returns (int72 downcasted) {\\n        downcasted = int72(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 72 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int64 from int256, reverting on\\n     * overflow (when the input is less than smallest int64 or\\n     * greater than largest int64).\\n     *\\n     * Counterpart to Solidity's `int64` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 64 bits\\n     *\\n     * _Available since v3.1._\\n     */\\n    function toInt64(int256 value) internal pure returns (int64 downcasted) {\\n        downcasted = int64(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 64 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int56 from int256, reverting on\\n     * overflow (when the input is less than smallest int56 or\\n     * greater than largest int56).\\n     *\\n     * Counterpart to Solidity's `int56` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 56 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt56(int256 value) internal pure returns (int56 downcasted) {\\n        downcasted = int56(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 56 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int48 from int256, reverting on\\n     * overflow (when the input is less than smallest int48 or\\n     * greater than largest int48).\\n     *\\n     * Counterpart to Solidity's `int48` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 48 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt48(int256 value) internal pure returns (int48 downcasted) {\\n        downcasted = int48(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 48 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int40 from int256, reverting on\\n     * overflow (when the input is less than smallest int40 or\\n     * greater than largest int40).\\n     *\\n     * Counterpart to Solidity's `int40` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 40 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt40(int256 value) internal pure returns (int40 downcasted) {\\n        downcasted = int40(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 40 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int32 from int256, reverting on\\n     * overflow (when the input is less than smallest int32 or\\n     * greater than largest int32).\\n     *\\n     * Counterpart to Solidity's `int32` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 32 bits\\n     *\\n     * _Available since v3.1._\\n     */\\n    function toInt32(int256 value) internal pure returns (int32 downcasted) {\\n        downcasted = int32(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 32 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int24 from int256, reverting on\\n     * overflow (when the input is less than smallest int24 or\\n     * greater than largest int24).\\n     *\\n     * Counterpart to Solidity's `int24` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 24 bits\\n     *\\n     * _Available since v4.7._\\n     */\\n    function toInt24(int256 value) internal pure returns (int24 downcasted) {\\n        downcasted = int24(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 24 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int16 from int256, reverting on\\n     * overflow (when the input is less than smallest int16 or\\n     * greater than largest int16).\\n     *\\n     * Counterpart to Solidity's `int16` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 16 bits\\n     *\\n     * _Available since v3.1._\\n     */\\n    function toInt16(int256 value) internal pure returns (int16 downcasted) {\\n        downcasted = int16(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 16 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Returns the downcasted int8 from int256, reverting on\\n     * overflow (when the input is less than smallest int8 or\\n     * greater than largest int8).\\n     *\\n     * Counterpart to Solidity's `int8` operator.\\n     *\\n     * Requirements:\\n     *\\n     * - input must fit into 8 bits\\n     *\\n     * _Available since v3.1._\\n     */\\n    function toInt8(int256 value) internal pure returns (int8 downcasted) {\\n        downcasted = int8(value);\\n        require(downcasted == value, \\\"SafeCast: value doesn't fit in 8 bits\\\");\\n    }\\n\\n    /**\\n     * @dev Converts an unsigned uint256 into a signed int256.\\n     *\\n     * Requirements:\\n     *\\n     * - input must be less than or equal to maxInt256.\\n     *\\n     * _Available since v3.0._\\n     */\\n    function toInt256(uint256 value) internal pure returns (int256) {\\n        // Note: Unsafe cast below is okay because `type(int256).max` is guaranteed to be positive\\n        require(value <= uint256(type(int256).max), \\\"SafeCast: value doesn't fit in an int256\\\");\\n        return int256(value);\\n    }\\n}\\n\",\"keccak256\":\"0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad\",\"license\":\"MIT\"},\"@venusprotocol/solidity-utilities/contracts/validators.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\n/// @notice Thrown if the supplied address is a zero address where it is not allowed\\nerror ZeroAddressNotAllowed();\\n\\n/// @notice Thrown if the supplied value is 0 where it is not allowed\\nerror ZeroValueNotAllowed();\\n\\n/// @notice Checks if the provided address is nonzero, reverts otherwise\\n/// @param address_ Address to check\\n/// @custom:error ZeroAddressNotAllowed is thrown if the provided address is a zero address\\nfunction ensureNonzeroAddress(address address_) pure {\\n    if (address_ == address(0)) {\\n        revert ZeroAddressNotAllowed();\\n    }\\n}\\n\\n/// @notice Checks if the provided value is nonzero, reverts otherwise\\n/// @param value_ Value to check\\n/// @custom:error ZeroValueNotAllowed is thrown if the provided value is 0\\nfunction ensureNonzeroValue(uint256 value_) pure {\\n    if (value_ == 0) {\\n        revert ZeroValueNotAllowed();\\n    }\\n}\\n\",\"keccak256\":\"0xdb88e14d50dd21889ca3329d755673d022c47e8da005b6a545c7f69c2c4b7b86\",\"license\":\"BSD-3-Clause\"},\"contracts/Governance/AccessControlledV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\\\";\\nimport \\\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\\\";\\n\\nimport \\\"./IAccessControlManagerV8.sol\\\";\\n\\n/**\\n * @title AccessControlledV8\\n * @author Venus\\n * @notice This contract is helper between access control manager and actual contract. This contract further inherited by other contract (using solidity 0.8.13)\\n * to integrate access controlled mechanism. It provides initialise methods and verifying access methods.\\n */\\nabstract contract AccessControlledV8 is Initializable, Ownable2StepUpgradeable {\\n    /// @notice Access control manager contract\\n    IAccessControlManagerV8 internal _accessControlManager;\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n\\n    /// @notice Emitted when access control manager contract address is changed\\n    event NewAccessControlManager(address oldAccessControlManager, address newAccessControlManager);\\n\\n    /// @notice Thrown when the action is prohibited by AccessControlManager\\n    error Unauthorized(address sender, address calledContract, string methodSignature);\\n\\n    function __AccessControlled_init(address accessControlManager_) internal onlyInitializing {\\n        __Ownable2Step_init();\\n        __AccessControlled_init_unchained(accessControlManager_);\\n    }\\n\\n    function __AccessControlled_init_unchained(address accessControlManager_) internal onlyInitializing {\\n        _setAccessControlManager(accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Sets the address of AccessControlManager\\n     * @dev Admin function to set address of AccessControlManager\\n     * @param accessControlManager_ The new address of the AccessControlManager\\n     * @custom:event Emits NewAccessControlManager event\\n     * @custom:access Only Governance\\n     */\\n    function setAccessControlManager(address accessControlManager_) external onlyOwner {\\n        _setAccessControlManager(accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Returns the address of the access control manager contract\\n     */\\n    function accessControlManager() external view returns (IAccessControlManagerV8) {\\n        return _accessControlManager;\\n    }\\n\\n    /**\\n     * @dev Internal function to set address of AccessControlManager\\n     * @param accessControlManager_ The new address of the AccessControlManager\\n     */\\n    function _setAccessControlManager(address accessControlManager_) internal {\\n        require(address(accessControlManager_) != address(0), \\\"invalid acess control manager address\\\");\\n        address oldAccessControlManager = address(_accessControlManager);\\n        _accessControlManager = IAccessControlManagerV8(accessControlManager_);\\n        emit NewAccessControlManager(oldAccessControlManager, accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Reverts if the call is not allowed by AccessControlManager\\n     * @param signature Method signature\\n     */\\n    function _checkAccessAllowed(string memory signature) internal view {\\n        bool isAllowedToCall = _accessControlManager.isAllowedToCall(msg.sender, signature);\\n\\n        if (!isAllowedToCall) {\\n            revert Unauthorized(msg.sender, address(this), signature);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xe7f5f96c70fb32912ecc0032f81f7876607353413fe7f723d41d260ac9c26a06\",\"license\":\"BSD-3-Clause\"},\"contracts/Governance/IAccessControlManagerV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/access/IAccessControl.sol\\\";\\n\\n/**\\n * @title IAccessControlManagerV8\\n * @author Venus\\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\\n */\\ninterface IAccessControlManagerV8 is IAccessControl {\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\\n\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) external;\\n\\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\\n\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xaa29b098440d0b3a131c5ecdf25ce548790c1b5ac7bf9b5c0264b6af6f7a1e0b\",\"license\":\"BSD-3-Clause\"},\"contracts/RiskSteward/Interfaces/IRiskOracle.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity 0.8.25;\\n\\n/**\\n * @notice Struct representing a risk parameter update published by the Risk Oracle\\n * @param referenceId External reference ID, potentially linking to a document or off-chain data\\n * @param updateId Unique identifier for this specific update\\n * @param market Address of the market for which the parameter update applies\\n * @param updateType Classification of the update type for validation purposes (human-readable)\\n * @param updateTypeKey Keccak256 hash of updateType for efficient comparisons\\n * @param newValue Encoded new value of the risk parameter, flexible for various data types\\n * @param previousValue Previous value of the parameter for historical comparison\\n * @param timestamp Block timestamp when the update was published\\n * @param publisher Address of the account that published this update\\n * @param poolId Pool identifier for eMode-style collateral configuration (0 for regular markets)\\n * @param destLzEid LayerZero endpoint ID of the destination chain (0 for local execution)\\n * @param additionalData Additional metadata or data associated with the update\\n */\\nstruct RiskParameterUpdate {\\n    string referenceId;\\n    uint256 updateId;\\n    address market;\\n    string updateType;\\n    bytes32 updateTypeKey;\\n    bytes newValue;\\n    bytes previousValue;\\n    uint256 timestamp;\\n    address publisher;\\n    uint96 poolId;\\n    uint32 destLzEid;\\n    bytes additionalData;\\n}\\n\\n/**\\n * @title IRiskOracle\\n * @author Venus\\n * @notice Interface for Risk Oracle contract that manages and publishes risk parameter updates\\n */\\ninterface IRiskOracle {\\n    /// @notice Event emitted when a risk parameter update is published\\n    event UpdatePublished(\\n        string referenceId,\\n        uint256 indexed updateId,\\n        address indexed market,\\n        string indexed updateType,\\n        bytes newValue,\\n        bytes previousValue,\\n        uint256 timestamp,\\n        address publisher,\\n        bytes additionalData\\n    );\\n\\n    /// @notice Event emitted when a new authorized sender is added\\n    event AuthorizedSenderAdded(address indexed sender);\\n\\n    /// @notice Event emitted when an authorized sender is removed\\n    event AuthorizedSenderRemoved(address indexed sender);\\n\\n    /// @notice Event emitted when a new update type is added\\n    event UpdateTypeAdded(string indexed updateType);\\n\\n    /// @notice Event emitted when an update type's active status is changed\\n    event UpdateTypeActiveStatusChanged(string indexed updateType, bool previousActive, bool active);\\n\\n    /// @notice Thrown when sender is not authorized\\n    error SenderNotAuthorized();\\n\\n    /// @notice Thrown when sender is already authorized\\n    error SenderAlreadyAuthorized();\\n\\n    /// @notice Thrown when update type string is invalid\\n    error InvalidUpdateTypeString();\\n\\n    /// @notice Thrown when update type already exists\\n    error UpdateTypeAlreadyExists();\\n\\n    /// @notice Thrown when update type doesn't exist\\n    error UpdateTypeNotFound();\\n\\n    /// @notice Thrown when update type active status is already set to the desired value\\n    error UpdateTypeStatusUnchanged();\\n\\n    /// @notice Thrown when update type is not active\\n    error UpdateTypeNotActive();\\n\\n    /// @notice Thrown when no update is found\\n    error NoUpdateFound();\\n\\n    /// @notice Thrown when update ID is invalid\\n    error InvalidUpdateId();\\n\\n    /// @notice Thrown when array lengths don't match in bulk operations\\n    error ArrayLengthMismatch();\\n\\n    /// @notice Thrown when trying to renounce ownership\\n    error RenounceOwnershipNotAllowed();\\n\\n    /**\\n     * @notice Returns the update type string at the given index in the allUpdateTypes array\\n     * @param index The index in the allUpdateTypes array\\n     * @return The update type string at the specified index\\n     */\\n    function allUpdateTypes(uint256 index) external view returns (string memory);\\n\\n    /**\\n     * @notice Returns the total number of update types in the allUpdateTypes array\\n     * @return The length of the allUpdateTypes array\\n     */\\n    function allUpdateTypesLength() external view returns (uint256);\\n\\n    /**\\n     * @notice Returns all update types in the allUpdateTypes array\\n     * @return An array of all update type strings\\n     */\\n    function getAllUpdateTypes() external view returns (string[] memory);\\n\\n    /**\\n     * @notice Checks if a given update type is currently active\\n     * @param updateType The update type string to check\\n     * @return True if the update type is active, false otherwise\\n     */\\n    function getActiveUpdateTypes(string memory updateType) external view returns (bool);\\n\\n    /**\\n     * @notice Checks if a given update type is currently active\\n     * @param updateTypeKey The keccak256 hash of the update type string\\n     * @return True if the update type key is active, false otherwise\\n     */\\n    function activeUpdateTypes(bytes32 updateTypeKey) external view returns (bool);\\n\\n    /**\\n     * @notice Checks if an address is authorized to publish updates\\n     * @param sender The address to check for authorization\\n     * @return True if the address is authorized, false otherwise\\n     */\\n    function authorizedSenders(address sender) external view returns (bool);\\n\\n    /**\\n     * @notice Gets the latest update ID for a specific market and update type combination\\n     * @param updateTypeKey The keccak256 hash of the update type string\\n     * @param market The market address\\n     * @return The latest update ID for the given market and update type key, or 0 if none exists\\n     */\\n    function latestUpdateIdByMarketAndType(bytes32 updateTypeKey, address market) external view returns (uint256);\\n\\n    /**\\n     * @notice Returns the total number of updates that have been published\\n     * @return The current update counter value\\n     */\\n    function updateCounter() external view returns (uint256);\\n\\n    /**\\n     * @notice Fetches the most recent update for a specific parameter type in a specific market\\n     * @param updateType The update type identifier\\n     * @param market The market address\\n     * @return The most recent RiskParameterUpdate for the specified parameter and market\\n     * @custom:error NoUpdateFound Thrown if no update exists for the specified parameter and market\\n     */\\n    function getLatestUpdateByTypeAndMarket(\\n        string memory updateType,\\n        address market\\n    ) external view returns (RiskParameterUpdate memory);\\n\\n    /**\\n     * @notice Gets the latest update ID for a specific market and update type (string) combination\\n     * @param updateType The update type identifier\\n     * @param market The market address\\n     * @return The latest update ID for the given market and update type, or 0 if none exists\\n     */\\n    function getLatestUpdateIdByTypeAndMarket(string memory updateType, address market) external view returns (uint256);\\n\\n    /**\\n     * @notice Fetches the update for a provided update ID\\n     * @param updateId The unique update ID\\n     * @return The RiskParameterUpdate struct for the specified update ID\\n     * @custom:error InvalidUpdateId Thrown if updateId is 0 or greater than updateCounter\\n     */\\n    function getUpdateById(uint256 updateId) external view returns (RiskParameterUpdate memory);\\n\\n    /**\\n     * @notice Adds a new address to the list of authorized senders who can publish updates\\n     * @param sender Address to be authorized\\n     * @custom:error ZeroAddressNotAllowed Thrown if sender is the zero address\\n     * @custom:error SenderAlreadyAuthorized Thrown if sender is already authorized\\n     * @custom:error Unauthorized Thrown if caller is not allowed by AccessControlManager\\n     * @custom:event AuthorizedSenderAdded Emitted when sender is successfully added\\n     */\\n    function addAuthorizedSender(address sender) external;\\n\\n    /**\\n     * @notice Removes an address from the list of authorized senders\\n     * @param sender Address to be removed from authorization\\n     * @custom:error SenderNotAuthorized Thrown if sender is not currently authorized\\n     * @custom:error Unauthorized Thrown if caller is not allowed by AccessControlManager\\n     * @custom:event AuthorizedSenderRemoved Emitted when sender is successfully removed\\n     */\\n    function removeAuthorizedSender(address sender) external;\\n\\n    /**\\n     * @notice Adds a new update type to the list of authorized update types\\n     * @param newUpdateType New update type string to allow (must be non-empty and <= 64 characters)\\n     * @custom:error InvalidUpdateTypeString Thrown if update type string is empty or exceeds 64 characters\\n     * @custom:error UpdateTypeAlreadyExists Thrown if update type already exists\\n     * @custom:error Unauthorized Thrown if caller is not allowed by AccessControlManager\\n     * @custom:event UpdateTypeAdded Emitted when update type is successfully added\\n     */\\n    function addUpdateType(string memory newUpdateType) external;\\n\\n    /**\\n     * @notice Sets the active status of an existing update type\\n     * @param updateType The update type to set active status for\\n     * @param active True to activate the update type, false to deactivate it\\n     * @custom:error UpdateTypeNotFound Thrown if update type doesn't exist\\n     * @custom:error UpdateTypeStatusUnchanged Thrown if status is already set to the desired value\\n     * @custom:error Unauthorized Thrown if caller is not allowed by AccessControlManager\\n     * @custom:event UpdateTypeActiveStatusChanged Emitted when status is successfully changed\\n     */\\n    function setUpdateTypeActive(string memory updateType, bool active) external;\\n\\n    /**\\n     * @notice Publishes a new risk parameter update.\\n     * @param referenceId An external reference ID associated with the update\\n     * @param newValue The new value of the risk parameter being updated (encoded as bytes)\\n     * @param updateType Type of update performed, must be an active update type\\n     * @param market Address of the market for which the parameter update applies\\n     * @param poolId Pool identifier for eMode-style collateral configuration (0 for regular markets)\\n     * @param dstEid Destination endpoint ID for cross-chain routing\\n     * @param additionalData Additional data or metadata for the update\\n     * @custom:error SenderNotAuthorized Thrown if caller is not an authorized sender\\n     * @custom:error UpdateTypeNotActive Thrown if update type is not active\\n     * @custom:error ZeroAddressNotAllowed Thrown if market is the zero address\\n     * @custom:event UpdatePublished Emitted when the update is successfully published\\n     */\\n    function publishRiskParameterUpdate(\\n        string memory referenceId,\\n        bytes memory newValue,\\n        string memory updateType,\\n        address market,\\n        uint96 poolId,\\n        uint32 dstEid,\\n        bytes memory additionalData\\n    ) external;\\n\\n    /**\\n     * @notice Publishes multiple risk parameter updates in a single transaction.\\n     * @param referenceIds Array of external reference IDs, one for each update\\n     * @param newValues Array of new values for each update (encoded as bytes)\\n     * @param updateTypes Array of update types, all must be active update types\\n     * @param markets Array of market addresses for each update\\n     * @param poolIds Array of pool identifiers for eMode-style collateral configuration (0 for regular markets)\\n     * @param dstEid Array of destination endpoint IDs for cross-chain routing\\n     * @param additionalData Array of additional data for each update\\n     * @custom:error SenderNotAuthorized Thrown if caller is not an authorized sender\\n     * @custom:error ArrayLengthMismatch Thrown if all arrays don't have the same length\\n     * @custom:error UpdateTypeNotActive Thrown if any update type is not active\\n     * @custom:error ZeroAddressNotAllowed Thrown if any market is the zero address\\n     * @custom:event UpdatePublished Emitted for each successfully published update\\n     */\\n    function publishBulkRiskParameterUpdates(\\n        string[] memory referenceIds,\\n        bytes[] memory newValues,\\n        string[] memory updateTypes,\\n        address[] memory markets,\\n        uint96[] memory poolIds,\\n        uint32[] memory dstEid,\\n        bytes[] memory additionalData\\n    ) external;\\n}\\n\",\"keccak256\":\"0x8a30b030d5be3cefabf55d889d0a06447613a9ada5a917730b7ec833bda167cd\",\"license\":\"MIT\"},\"contracts/RiskSteward/Interfaces/IRiskSteward.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { RiskParameterUpdate } from \\\"./IRiskOracle.sol\\\";\\nimport { IRiskStewardReceiver } from \\\"./IRiskStewardReceiver.sol\\\";\\n\\n/**\\n * @title IRiskSteward\\n * @author Venus\\n * @notice Interface for risk stewards that validate and apply risk parameter updates\\n */\\ninterface IRiskSteward {\\n    /**\\n     * @notice Returns the `IRiskStewardReceiver` associated with this steward.\\n     * @return The risk steward receiver contract\\n     */\\n    function RISK_STEWARD_RECEIVER() external view returns (IRiskStewardReceiver);\\n\\n    /**\\n     * @notice Checks whether an update is safe for direct execution (no timelock required).\\n     * @param update The risk parameter update to evaluate\\n     * @return True if update is safe for direct execution, false if timelock is required\\n     */\\n    function isSafeForDirectExecution(RiskParameterUpdate calldata update) external view returns (bool);\\n\\n    /**\\n     * @notice Applies a validated risk parameter update.\\n     * @param update The risk parameter update to apply\\n     */\\n    function applyUpdate(RiskParameterUpdate calldata update) external;\\n}\\n\",\"keccak256\":\"0x6438497d6fd62f5e8c224a01e626a92ae2ebbe736852749862ff2f040a25b069\",\"license\":\"BSD-3-Clause\"},\"contracts/RiskSteward/Interfaces/IRiskStewardReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface IRiskStewardReceiver {\\n    /**\\n     * @notice Status of an update\\n     */\\n    enum UpdateStatus {\\n        None,\\n        Pending,\\n        Executed,\\n        Rejected,\\n        Expired,\\n        SENT_TO_DESTINATION\\n    }\\n\\n    /**\\n     * @notice Configuration for a risk parameter update type\\n     * @param active Whether this update type configuration is currently active\\n     * @param debounce Minimum delay between consecutive update executions for the same (updateType, market) pair\\n     * @param timelock Period that must pass after registration before an update can be executed\\n     * @param riskSteward Address of the risk steward contract responsible for processing this update type\\n     */\\n    struct RiskParamConfig {\\n        bool active;\\n        uint256 debounce;\\n        uint256 timelock;\\n        address riskSteward;\\n    }\\n\\n    /**\\n     * @notice Registered update structure with timelock and execution information\\n     * @param updateId Update ID from the Risk Oracle\\n     * @param unlockTime Timestamp when this update can be executed (calculated as registration time + timelock)\\n     * @param status Current status of the update (Pending, Executed, Rejected, Expired, etc.)\\n     * @param executor Address of the executor who executed this update (address(0) if not executed yet)\\n     * @param executedAt Timestamp when this update was executed (0 if not executed yet)\\n     */\\n    struct RegisteredUpdate {\\n        uint256 updateId;\\n        uint256 unlockTime;\\n        UpdateStatus status;\\n        address executor;\\n        uint256 executedAt;\\n    }\\n\\n    /**\\n     * @notice Event emitted when a risk parameter config is set\\n     */\\n    event RiskParameterConfigUpdated(\\n        bytes32 indexed updateTypeHash,\\n        string updateType,\\n        address indexed previousRiskSteward,\\n        address indexed riskSteward,\\n        uint256 previousDebounce,\\n        uint256 debounce,\\n        uint256 previousTimelock,\\n        uint256 timelock,\\n        bool previousActive,\\n        bool active\\n    );\\n\\n    /**\\n     * @notice Event emitted when a risk parameter config active status is set\\n     */\\n    event ConfigActiveUpdated(bytes32 indexed updateTypeHash, string updateType, bool previousActive, bool active);\\n\\n    /**\\n     * @notice Event emitted when an update is successfully executed\\n     */\\n    event UpdateExecuted(uint256 indexed updateId);\\n\\n    /**\\n     * @notice Event emitted when an update is rejected\\n     */\\n    event UpdateRejected(uint256 indexed updateId);\\n\\n    /**\\n     * @notice Event emitted when an update is marked as expired\\n     */\\n    event UpdateExpired(uint256 indexed updateId);\\n\\n    /**\\n     * @notice Event emitted when an executor status is set\\n     */\\n    event ExecutorStatusUpdated(address indexed executor, bool previousApproved, bool approved);\\n\\n    /**\\n     * @notice Event emitted when an update is registered\\n     */\\n    event UpdateRegistered(uint256 indexed updateId, uint256 unlockTime, string updateType, address indexed market);\\n\\n    /**\\n     * @notice Event emitted when an update is sent to a destination chain\\n     */\\n    event UpdateSentToDestination(\\n        uint256 updateId,\\n        uint32 indexed destLzEid,\\n        string indexed updateType,\\n        address indexed market\\n    );\\n\\n    /**\\n     * @notice Event emitted when an update is resent to a destination chain\\n     */\\n    event UpdateResentToDestination(\\n        uint256 updateId,\\n        uint32 indexed destLzEid,\\n        string indexed updateType,\\n        address indexed market\\n    );\\n\\n    /**\\n     * @notice Emitted when leftover native tokens are swept by owner\\n     */\\n    event SweepNative(address indexed receiver, uint256 amount);\\n\\n    /**\\n     * @notice Event emitted when the pause status changes\\n     * @param previousPaused Previous pause state\\n     * @param paused Current pause state\\n     */\\n    event PauseStatusUpdated(bool previousPaused, bool paused);\\n\\n    /**\\n     * @custom:error TransferFailed\\n     */\\n    error TransferFailed();\\n\\n    /**\\n     * @notice Thrown if a submitted update is not active and therefore cannot be processed\\n     */\\n    error ConfigNotActive();\\n\\n    /**\\n     * @notice Thrown when an update was not applied within the required time frame\\n     */\\n    error UpdateIsExpired();\\n\\n    /**\\n     * @notice Thrown when an update has already been processed\\n     */\\n    error UpdateAlreadyResolved();\\n\\n    /**\\n     * @notice Thrown when the debounce period hasn't passed for applying an update to a specific market / update type\\n     */\\n    error UpdateTooFrequent();\\n\\n    /**\\n     * @notice Thrown when an update type that is not supported is operated on\\n     */\\n    error UnsupportedUpdateType();\\n\\n    /**\\n     * @notice Thrown when an empty update type string is provided\\n     */\\n    error InvalidUpdateType();\\n\\n    /**\\n     * @notice Thrown when a debounce value of 0 is set\\n     */\\n    error InvalidDebounce();\\n\\n    /**\\n     * @notice Thrown when a timelock value is greater than or equal to the expiration time\\n     */\\n    error InvalidTimelock();\\n\\n    /**\\n     * @notice Thrown when update unlock time has not been reached\\n     */\\n    error UpdateNotUnlocked();\\n\\n    /**\\n     * @notice Thrown when trying to resolve an update that doesn't exist\\n     */\\n    error UpdateNotFound();\\n\\n    /**\\n     * @notice Thrown when an address is not an executor\\n     */\\n    error NotAnExecutor();\\n\\n    /**\\n     * @notice Thrown when there is a non-expired pending update of the same type for the market\\n     */\\n    error RegisteredUpdateTypeExist(uint256);\\n\\n    /**\\n     * @notice Thrown when trying to resend an update that is not in SENT_TO_DESTINATION status\\n     */\\n    error InvalidUpdateToResend();\\n\\n    /**\\n     * @notice Thrown when trying to execute an update that was never registered\\n     */\\n    error InvalidRegisteredUpdate();\\n\\n    /**\\n     * @notice Thrown when attempting to call lzSend from an address other than this contract\\n     */\\n    error InvalidLzSendCaller();\\n\\n    /**\\n     * @notice Thrown when trying to renounce ownership\\n     */\\n    error RenounceOwnershipNotAllowed();\\n\\n    /**\\n     * @notice Thrown when processUpdate is called while the contract is paused\\n     */\\n    error PausedError();\\n\\n    /**\\n     * @notice Thrown when an invalid LayerZero endpoint ID is provided\\n     */\\n    error InvalidLayerZeroEid();\\n\\n    /**\\n     * @notice Thrown when trying to set the same pause status\\n     */\\n    error PauseStatusUnchanged();\\n\\n    /**\\n     * @notice Thrown when trying to set the same config active status\\n     */\\n    error ConfigStatusUnchanged();\\n\\n    /**\\n     * @notice Thrown when trying to set the same executor whitelist status\\n     */\\n    error ExecutorStatusUnchanged();\\n\\n    /**\\n     * @notice Thrown when an update will expire before its timelock unlocks\\n     */\\n    error UpdateWillExpireBeforeUnlock();\\n\\n    function getRiskParameterConfig(string calldata updateType) external view returns (RiskParamConfig memory);\\n\\n    function getLastProcessedUpdate(string calldata updateType, address market) external view returns (uint256);\\n\\n    function getLastRegisteredUpdate(string calldata updateType, address market) external view returns (uint256);\\n\\n    function setRiskParameterConfig(\\n        string calldata updateType,\\n        address riskSteward,\\n        uint256 debounce,\\n        uint256 timelock\\n    ) external;\\n\\n    function setConfigActive(string calldata updateType, bool active) external;\\n\\n    function setWhitelistedExecutor(address executor, bool approved) external;\\n\\n    function processUpdate(uint256 updateId) external;\\n\\n    function executeRegisteredUpdate(uint256 updateId) external;\\n\\n    function rejectUpdate(uint256 updateId) external;\\n\\n    function resendRemoteUpdate(uint256 updateId, bytes calldata options) external payable;\\n\\n    function getExecutableUpdates(\\n        string calldata updateType,\\n        address comptroller\\n    ) external view returns (uint256[] memory executableUpdates);\\n\\n    function isUpdateExecutable(uint256 updateId) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x206b4763cfe62155718edb4b53ee48d6e5204b81cbfac705808d2ffd3225bb12\",\"license\":\"BSD-3-Clause\"},\"contracts/RiskSteward/RiskStewardReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { OwnableUpgradeable } from \\\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\\\";\\nimport { Ownable2StepUpgradeable } from \\\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\\\";\\nimport { IRiskSteward } from \\\"./Interfaces/IRiskSteward.sol\\\";\\nimport { IRiskOracle, RiskParameterUpdate } from \\\"./Interfaces/IRiskOracle.sol\\\";\\nimport { IRiskStewardReceiver } from \\\"./Interfaces/IRiskStewardReceiver.sol\\\";\\nimport { AccessControlledV8 } from \\\"../Governance/AccessControlledV8.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\nimport { ICorePoolComptroller } from \\\"../interfaces/ICorePoolComptroller.sol\\\";\\nimport { OAppSenderUpgradeable, MessagingFee } from \\\"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppSenderUpgradeable.sol\\\";\\nimport { OptionsBuilder } from \\\"@layerzerolabs/oapp-evm/contracts/oapp/libs/OptionsBuilder.sol\\\";\\nimport { OAppCoreUpgradeable } from \\\"@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppCoreUpgradeable.sol\\\";\\n\\n/**\\n * @title RiskStewardReceiver\\n * @author Venus\\n * @notice Contract that reads updates from a Risk Oracle, validates them with timelock and debounce,\\n *         and either executes them locally via the configured RiskSteward or forwards them cross\\u2011chain.\\n * @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion\\n */\\ncontract RiskStewardReceiver is IRiskStewardReceiver, AccessControlledV8, OAppSenderUpgradeable {\\n    using OptionsBuilder for bytes;\\n\\n    /**\\n     * @notice Period after which a proposed update becomes expired and can no longer be applied\\n     */\\n    uint256 public constant UPDATE_EXPIRATION_TIME = 2 days;\\n\\n    /**\\n     * @notice Source chain LayerZero endpoint ID\\n     */\\n    uint32 public immutable LAYER_ZERO_EID;\\n\\n    /**\\n     * @notice The Risk Oracle contract address\\n     */\\n    IRiskOracle public immutable RISK_ORACLE;\\n\\n    /**\\n     * @notice Pause flag\\n     */\\n    bool public paused;\\n\\n    /**\\n     * @notice Mapping of supported risk configurations and their validation parameters (keyed by hashed updateType)\\n     */\\n    mapping(bytes32 => RiskParamConfig) public riskParameterConfigs;\\n\\n    /**\\n     * @notice Master storage of all registered updates by update ID\\n     */\\n    mapping(uint256 updateId => RegisteredUpdate) public updates;\\n\\n    /**\\n     * @notice Track last processed update ID per (updateTypeKey, market)\\n     */\\n    mapping(bytes32 => mapping(address market => uint256)) public lastProcessedUpdate;\\n\\n    /**\\n     * @notice Track the current registered update per (updateType, market) to avoid registering multiple updates\\n     */\\n    mapping(bytes32 => mapping(address market => uint256)) public lastRegisteredUpdate;\\n\\n    /**\\n     * @notice Mapping from executor address to whitelist status\\n     */\\n    mapping(address => bool) public whitelistedExecutors;\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[44] private __gap;\\n\\n    /**\\n     * @dev Ensures the caller is a whitelisted executor.\\n     */\\n    modifier onlyWhitelistedExecutors() {\\n        if (!whitelistedExecutors[msg.sender]) {\\n            revert NotAnExecutor();\\n        }\\n        _;\\n    }\\n\\n    /**\\n     * @dev Ensures the contract is not paused.\\n     */\\n    modifier whenNotPaused() {\\n        if (paused) {\\n            revert PausedError();\\n        }\\n        _;\\n    }\\n\\n    /**\\n     * @notice Disables initializers and sets the Risk Oracle and LayerZero configuration.\\n     * @param riskOracle_ The address of the Risk Oracle contract.\\n     * @param endpoint_ The LayerZero endpoint contract used by the underlying `OAppUpgradeable`.\\n     * @param layerZeroLzEid_ The LayerZero endpoint ID (EID) for this chain.\\n     * @custom:oz-upgrades-unsafe-allow constructor\\n     */\\n    constructor(address riskOracle_, address endpoint_, uint32 layerZeroLzEid_) OAppCoreUpgradeable(endpoint_) {\\n        _disableInitializers();\\n        ensureNonzeroAddress(riskOracle_);\\n        ensureNonzeroAddress(endpoint_);\\n        if (layerZeroLzEid_ == 0) revert InvalidLayerZeroEid();\\n\\n        RISK_ORACLE = IRiskOracle(riskOracle_);\\n        LAYER_ZERO_EID = layerZeroLzEid_;\\n    }\\n\\n    /**\\n     * @notice Initializes the contract with the Access Control Manager and OApp owner.\\n     * @param acm_ The address of the Access Control Manager\\n     * @param delegate_ The address of the OApp owner passed to `__OApp_init`.\\n     */\\n    function initialize(address acm_, address delegate_) external initializer {\\n        __AccessControlled_init(acm_);\\n        __OAppSender_init(delegate_);\\n    }\\n\\n    /**\\n     * @notice Accepts native tokens (e.g., BNB) sent to this contract.\\n     */\\n    receive() external payable {}\\n\\n    /**\\n     * @notice Allows the owner to sweep leftover native tokens (e.g., BNB) from the contract.\\n     * @custom:event Emits SweepNative event.\\n     */\\n    function sweepNative() external onlyOwner {\\n        uint256 balance = address(this).balance;\\n        if (balance > 0) {\\n            (bool success, ) = payable(owner()).call{ value: balance }(\\\"\\\");\\n            if (!success) revert TransferFailed();\\n            emit SweepNative(owner(), balance);\\n        }\\n    }\\n\\n    /**\\n     * @notice Sets the pause status for `processUpdate`.\\n     * @param paused_ True to pause, false to unpause\\n     * @custom:access Controlled by AccessControlManager\\n     * @custom:event Emits PauseStatusUpdated\\n     */\\n    function setPaused(bool paused_) external {\\n        _checkAccessAllowed(\\\"setPaused(bool)\\\");\\n        if (paused == paused_) {\\n            revert PauseStatusUnchanged();\\n        }\\n        emit PauseStatusUpdated(paused, paused_);\\n        paused = paused_;\\n    }\\n\\n    /**\\n     * @notice Sets the risk parameter config for a given update type\\n     * @param updateType The type of update to configure\\n     * @param riskSteward The address for the risk steward contract responsible for processing the update\\n     * @param debounce The debounce period for the update\\n     * @param timelock The timelock period before the update can be executed\\n     * @custom:access Controlled by AccessControlManager\\n     * @custom:event Emits RiskParameterConfigUpdated\\n     * @custom:error InvalidUpdateType if the update type string is empty\\n     * @custom:error Throws InvalidDebounce if the debounce is 0\\n     * @custom:error Throws InvalidTimelock if the timelock is greater than or equal to the expiration time\\n     * @custom:error Throws ZeroAddressNotAllowed if the risk steward address is zero\\n     */\\n    function setRiskParameterConfig(\\n        string calldata updateType,\\n        address riskSteward,\\n        uint256 debounce,\\n        uint256 timelock\\n    ) external {\\n        _checkAccessAllowed(\\\"setRiskParameterConfig(string,address,uint256,uint256)\\\");\\n        ensureNonzeroAddress(riskSteward);\\n\\n        if (bytes(updateType).length == 0 || bytes(updateType).length > 64) {\\n            revert InvalidUpdateType();\\n        }\\n        if (debounce == 0) {\\n            revert InvalidDebounce();\\n        }\\n        if (timelock >= UPDATE_EXPIRATION_TIME) {\\n            revert InvalidTimelock();\\n        }\\n\\n        bytes32 key = keccak256(bytes(updateType));\\n        RiskParamConfig memory previousConfig = riskParameterConfigs[key];\\n\\n        riskParameterConfigs[key] = RiskParamConfig({\\n            active: true,\\n            riskSteward: riskSteward,\\n            debounce: debounce,\\n            timelock: timelock\\n        });\\n\\n        emit RiskParameterConfigUpdated(\\n            key,\\n            updateType,\\n            previousConfig.riskSteward,\\n            riskSteward,\\n            previousConfig.debounce,\\n            debounce,\\n            previousConfig.timelock,\\n            timelock,\\n            previousConfig.active,\\n            true\\n        );\\n    }\\n\\n    /**\\n     * @notice Sets the active status of a risk parameter config\\n     * @param updateType The type of update to configure\\n     * @param active The active status to set\\n     * @custom:access Controlled by AccessControlManager\\n     * @custom:event Emits ConfigActiveUpdated with the update type hash, update type, previous active status, and the active status\\n     * @custom:error Throws UnsupportedUpdateType if the update type is not supported\\n     * @custom:error Throws ConfigStatusUnchanged if the active status is already set to the desired value\\n     */\\n    function setConfigActive(string calldata updateType, bool active) external {\\n        _checkAccessAllowed(\\\"setConfigActive(string,bool)\\\");\\n        bytes32 key = keccak256(bytes(updateType));\\n\\n        if (riskParameterConfigs[key].riskSteward == address(0)) {\\n            revert UnsupportedUpdateType();\\n        }\\n\\n        bool previousActive = riskParameterConfigs[key].active;\\n        if (previousActive == active) {\\n            revert ConfigStatusUnchanged();\\n        }\\n\\n        riskParameterConfigs[key].active = active;\\n        emit ConfigActiveUpdated(key, updateType, previousActive, active);\\n    }\\n\\n    /**\\n     * @notice Manages the whitelist of executors that are allowed to execute timelocked registered updates.\\n     * @param executor The address of the executor\\n     * @param approved The whitelist status to set (true to whitelist, false to remove)\\n     * @custom:access Controlled by AccessControlManager\\n     * @custom:event Emits ExecutorStatusUpdated with the executor address, previous approval status, and approval status\\n     * @custom:error Throws ZeroAddressNotAllowed if the executor address is zero\\n     * @custom:error Throws ExecutorStatusUnchanged if the executor whitelist status is already set to the desired value\\n     */\\n    function setWhitelistedExecutor(address executor, bool approved) external {\\n        _checkAccessAllowed(\\\"setWhitelistedExecutor(address,bool)\\\");\\n        ensureNonzeroAddress(executor);\\n\\n        bool previousApproved = whitelistedExecutors[executor];\\n        if (previousApproved == approved) {\\n            revert ExecutorStatusUnchanged();\\n        }\\n\\n        whitelistedExecutors[executor] = approved;\\n        emit ExecutorStatusUpdated(executor, previousApproved, approved);\\n    }\\n\\n    /**\\n     * @notice Processes an update from the Risk Oracle. Validates, registers the update,\\n     * and either executes immediately, registers with timelock, or forwards cross-chain.\\n     * @param updateId The update ID from the oracle's perspective\\n     * @custom:event Emits UpdateRegistered, UpdateExecuted, or UpdateSentToDestination depending on the update type\\n     * @custom:error Throws UpdateAlreadyResolved if the update was already processed\\n     * @custom:error Throws UpdateIsExpired if the update has expired\\n     * @custom:error Throws ConfigNotActive if the config is not active\\n     * @custom:error Throws UpdateTooFrequent if the debounce period has not passed\\n     * @custom:error Throws RegisteredUpdateTypeExist if there is a non-expired pending update of the same type\\n     */\\n    function processUpdate(uint256 updateId) external whenNotPaused {\\n        RiskParameterUpdate memory update = RISK_ORACLE.getUpdateById(updateId);\\n        RiskParamConfig storage config = riskParameterConfigs[update.updateTypeKey];\\n        bool isRemoteUpdate = update.destLzEid != 0 && update.destLzEid != LAYER_ZERO_EID;\\n\\n        // Skip active update check for remote updates since they are sent immediately and not registered locally\\n        if (!isRemoteUpdate) _ensureNoActiveUpdate(update);\\n        _validateRegisterUpdate(update, config, isRemoteUpdate);\\n\\n        IRiskSteward riskSteward = IRiskSteward(config.riskSteward);\\n        bool safeForDirectExecution = isRemoteUpdate ? false : riskSteward.isSafeForDirectExecution(update);\\n        _registerUpdate(update, config, safeForDirectExecution || isRemoteUpdate);\\n\\n        if (isRemoteUpdate) {\\n            _sendRemoteUpdate(update, \\\"\\\", 0);\\n        } else if (safeForDirectExecution) {\\n            _executeUpdate(update, riskSteward);\\n        }\\n    }\\n\\n    /**\\n     * @notice Executes a registered update. Only whitelisted executors can call this function.\\n     *         This function can be used for updates that have completed their timelock and are ready to execute.\\n     * @param updateId The oracle update ID of the update to execute\\n     * @custom:access Only whitelisted executors can call this function\\n     * @custom:event Emits UpdateExecuted with the oracle update ID\\n     * @custom:error Throws NotAnExecutor if the caller is not a whitelisted executor\\n     * @custom:error Throws InvalidRegisteredUpdate if the update was never registered\\n     * @custom:error Throws UpdateAlreadyResolved if the update was already executed or rejected\\n     * @custom:error Throws UpdateIsExpired if the update has expired\\n     * @custom:error Throws ConfigNotActive if the config is not active\\n     * @custom:error Throws UpdateNotUnlocked if the unlock time has not passed\\n     */\\n    function executeRegisteredUpdate(uint256 updateId) external onlyWhitelistedExecutors {\\n        RegisteredUpdate storage registeredUpdate = updates[updateId];\\n        RiskParameterUpdate memory update = RISK_ORACLE.getUpdateById(updateId);\\n        RiskParamConfig storage config = riskParameterConfigs[update.updateTypeKey];\\n\\n        _validateExecuteUpdate(registeredUpdate, update, config);\\n        _executeUpdate(update, IRiskSteward(config.riskSteward));\\n    }\\n\\n    /**\\n     * @notice Rejects a registered update\\n     * @param updateId The oracle update ID of the update to reject\\n     * @custom:access Only whitelisted executors can call this function\\n     * @custom:event Emits UpdateRejected with the oracle update ID\\n     * @custom:error Throws UpdateAlreadyResolved if the update was already executed or rejected\\n     */\\n    function rejectUpdate(uint256 updateId) external onlyWhitelistedExecutors {\\n        RegisteredUpdate storage registeredUpdate = updates[updateId];\\n\\n        if (registeredUpdate.status != UpdateStatus.Pending) {\\n            revert UpdateAlreadyResolved();\\n        }\\n\\n        registeredUpdate.status = UpdateStatus.Rejected;\\n        emit UpdateRejected(updateId);\\n    }\\n\\n    /**\\n     * @notice Resends a remote update to the destination chain. This function is useful in case of bridge failures.\\n     * @dev Duplicate update rejection is handled in the destination contract itself, so resending\\n     *      the same update multiple times is safe and will be deduplicated on the destination side.\\n     * @param updateId The oracle update ID to resend\\n     * @param options LayerZero message options; if empty, default executor option is used\\n     * @custom:access Only whitelisted executors can call this function\\n     * @custom:event Emits UpdateResentToDestination with the update ID, destination chain ID, update type, and market\\n     * @custom:error Throws NotAnExecutor if the caller is not a whitelisted executor\\n     * @custom:error Throws InvalidUpdateToResend if the update status is not SENT_TO_DESTINATION\\n     * @custom:error Throws UpdateIsExpired if the update has expired\\n     */\\n    function resendRemoteUpdate(uint256 updateId, bytes calldata options) external payable onlyWhitelistedExecutors {\\n        RegisteredUpdate storage registeredUpdate = updates[updateId];\\n        if (registeredUpdate.status != UpdateStatus.SENT_TO_DESTINATION) {\\n            revert InvalidUpdateToResend();\\n        }\\n\\n        RiskParameterUpdate memory update = RISK_ORACLE.getUpdateById(updateId);\\n\\n        // Check if update is expired\\n        if (update.timestamp + UPDATE_EXPIRATION_TIME < block.timestamp) {\\n            revert UpdateIsExpired();\\n        }\\n\\n        _sendRemoteUpdate(update, options, msg.value);\\n        emit UpdateResentToDestination(update.updateId, update.destLzEid, update.updateType, update.market);\\n    }\\n\\n    /**\\n     * @notice Returns an array of update IDs for executable registered updates for a given update type and comptroller.\\n     * @param updateType The human\\u2011readable identifier of the update type to filter by\\n     * @param comptroller The address of the Comptroller (either Core Pool or Isolated Pools) that manages the markets\\n     * @return executableUpdates Array of update IDs that are ready to be executed\\n     */\\n    function getExecutableUpdates(\\n        string calldata updateType,\\n        address comptroller\\n    ) external view returns (uint256[] memory executableUpdates) {\\n        bytes32 updateTypeKey = keccak256(bytes(updateType));\\n        // Both Core and Isolated Pools comptrollers expose the same signature\\n        address[] memory markets = ICorePoolComptroller(comptroller).getAllMarkets();\\n        uint256 maxUpdates = markets.length;\\n        uint256[] memory tempArray = new uint256[](maxUpdates);\\n        uint256 count = 0;\\n\\n        for (uint256 i = 0; i < maxUpdates; ++i) {\\n            uint256 registeredUpdateId = lastRegisteredUpdate[updateTypeKey][markets[i]];\\n            if (!_isUpdateExecutable(registeredUpdateId)) continue;\\n            tempArray[count] = registeredUpdateId;\\n            count++;\\n        }\\n\\n        // shrink array to real size\\n        executableUpdates = new uint256[](count);\\n        for (uint256 i = 0; i < count; ++i) {\\n            executableUpdates[i] = tempArray[i];\\n        }\\n    }\\n\\n    /**\\n     * @notice Returns whether a registered update is ready to be executed.\\n     * @param updateId The oracle update ID to query\\n     * @return True if the update is pending, not expired, active, and past its timelock\\n     */\\n    function isUpdateExecutable(uint256 updateId) external view returns (bool) {\\n        return _isUpdateExecutable(updateId);\\n    }\\n\\n    /**\\n     * @notice Returns the risk parameter configuration for a given update type\\n     * @param updateType The human-readable identifier of the update type\\n     * @return The risk parameter configuration\\n     */\\n    function getRiskParameterConfig(string calldata updateType) external view returns (RiskParamConfig memory) {\\n        bytes32 key = keccak256(bytes(updateType));\\n        return riskParameterConfigs[key];\\n    }\\n\\n    /**\\n     * @notice Returns the last processed update ID for a given update type and market\\n     * @param updateType The human-readable identifier of the update type\\n     * @param market The address of the market\\n     * @return The last processed update ID\\n     */\\n    function getLastProcessedUpdate(string calldata updateType, address market) external view returns (uint256) {\\n        bytes32 key = keccak256(bytes(updateType));\\n        return lastProcessedUpdate[key][market];\\n    }\\n\\n    /**\\n     * @notice Returns the last registered update ID for a given update type and market\\n     * @param updateType The human-readable identifier of the update type\\n     * @param market The address of the market\\n     * @return The last registered update ID\\n     */\\n    function getLastRegisteredUpdate(string calldata updateType, address market) external view returns (uint256) {\\n        bytes32 key = keccak256(bytes(updateType));\\n        return lastRegisteredUpdate[key][market];\\n    }\\n\\n    /**\\n     * @notice Quotes the gas fee needed to pay for the full omnichain transaction in native gas or ZRO token.\\n     * @param update The risk parameter update payload to be sent\\n     * @param options Message execution options (e.g., for sending gas to the destination)\\n     * @param payInLzToken Whether to return the fee in ZRO token instead of native gas\\n     * @return fee A `MessagingFee` struct containing the calculated gas fee\\n     */\\n    function quote(\\n        RiskParameterUpdate memory update,\\n        bytes memory options,\\n        bool payInLzToken\\n    ) public view returns (MessagingFee memory fee) {\\n        bytes memory payload = abi.encode(update);\\n        fee = _quote(update.destLzEid, payload, options, payInLzToken);\\n    }\\n\\n    /**\\n     * @notice Sends a `RiskParameterUpdate` to a destination chain via LayerZero.\\n     * @param dstEid Destination chain endpoint ID\\n     * @param update The risk parameter update payload to send\\n     * @param options LayerZero message options; if empty, a default executor option is used\\n     * @param fee Messaging fee structure returned by `quote`\\n     * @param refundAddress Address to receive any surplus fee refunds\\n     * @custom:error InvalidLzSendCaller if called by any address other than this contract\\n     */\\n    function lzSend(\\n        uint32 dstEid,\\n        RiskParameterUpdate memory update,\\n        bytes memory options,\\n        MessagingFee memory fee,\\n        address refundAddress\\n    ) public payable {\\n        if (msg.sender != address(this)) {\\n            revert InvalidLzSendCaller();\\n        }\\n\\n        bytes memory payload = abi.encode(update);\\n        _lzSend(dstEid, payload, options, fee, refundAddress);\\n    }\\n\\n    /**\\n     * @dev Overrides OwnableUpgradeable and Ownable2StepUpgradeable to resolve\\n     *      the multiple inheritance ownership transfer conflict.\\n     */\\n    function transferOwnership(\\n        address newOwner\\n    ) public override(OwnableUpgradeable, Ownable2StepUpgradeable) onlyOwner {\\n        Ownable2StepUpgradeable.transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Internal hook to finalize ownership transfer, resolving the\\n     *      OwnableUpgradeable and Ownable2StepUpgradeable inheritance conflict.\\n     */\\n    function _transferOwnership(address newOwner) internal override(OwnableUpgradeable, Ownable2StepUpgradeable) {\\n        Ownable2StepUpgradeable._transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @notice Registers an update from the Risk Oracle with a timelock.\\n     * @param update The risk parameter update from the Risk Oracle to register\\n     * @param config The risk parameter configuration for this update type containing timelock\\n     * @param useImmediateUnlock Whether to unlock the update immediately or use timelock\\n     * @custom:event Emits UpdateRegistered with the oracle update ID, unlock time, update type, and market\\n     */\\n    function _registerUpdate(\\n        RiskParameterUpdate memory update,\\n        RiskParamConfig memory config,\\n        bool useImmediateUnlock\\n    ) internal {\\n        uint256 updateId = update.updateId;\\n        uint256 unlockTime = useImmediateUnlock ? block.timestamp : block.timestamp + config.timelock;\\n\\n        updates[updateId] = RegisteredUpdate({\\n            updateId: updateId,\\n            unlockTime: unlockTime,\\n            status: UpdateStatus.Pending,\\n            executor: address(0),\\n            executedAt: 0\\n        });\\n\\n        lastRegisteredUpdate[update.updateTypeKey][update.market] = updateId;\\n        emit UpdateRegistered(updateId, unlockTime, update.updateType, update.market);\\n    }\\n\\n    /**\\n     * @notice Executes a validated update via the risk steward and records its execution metadata.\\n     *         Updates the registered update storage, last processed tracking, and emits the execution event.\\n     *         Preserves the unlockTime that was set during registration.\\n     * @param update The risk parameter update to execute\\n     * @param steward The risk steward contract that will process the update\\n     * @custom:event Emits UpdateExecuted with the oracle update ID\\n     */\\n    function _executeUpdate(RiskParameterUpdate memory update, IRiskSteward steward) internal {\\n        uint256 updateId = update.updateId;\\n        uint256 timestamp = block.timestamp;\\n        RegisteredUpdate storage registeredUpdate = updates[updateId];\\n\\n        registeredUpdate.status = UpdateStatus.Executed;\\n        registeredUpdate.executor = address(msg.sender);\\n        registeredUpdate.executedAt = timestamp;\\n        lastProcessedUpdate[update.updateTypeKey][update.market] = updateId;\\n\\n        steward.applyUpdate(update);\\n        emit UpdateExecuted(updateId);\\n    }\\n\\n    /**\\n     * @notice Sends a risk parameter update to a destination chain via LayerZero and records it as sent.\\n     *         The update should already be registered before calling this function.\\n     * @param update The risk parameter update to send to the destination chain\\n     * @param options LayerZero message options; if empty, default executor option is used\\n     * @param nativeFee Native tokens supplied to cover the bridge fee (0 to use the quoted amount)\\n     * @custom:event Emits UpdateSentToDestination with the update ID, destination endpoint ID, update type, and market\\n     */\\n    function _sendRemoteUpdate(RiskParameterUpdate memory update, bytes memory options, uint256 nativeFee) internal {\\n        bytes memory option = options.length == 0\\n            ? OptionsBuilder.newOptions().addExecutorLzReceiveOption(1_000_000, 0)\\n            : options;\\n\\n        MessagingFee memory fee;\\n\\n        if (nativeFee == 0) {\\n            fee = quote(update, option, false);\\n        } else {\\n            fee = MessagingFee(nativeFee, 0);\\n        }\\n\\n        this.lzSend{ value: fee.nativeFee }(update.destLzEid, update, option, fee, address(this));\\n\\n        RegisteredUpdate storage registeredUpdate = updates[update.updateId];\\n        registeredUpdate.status = UpdateStatus.SENT_TO_DESTINATION;\\n        registeredUpdate.executor = address(msg.sender);\\n        registeredUpdate.executedAt = block.timestamp;\\n\\n        bytes32 updateTypeKey = update.updateTypeKey;\\n        lastProcessedUpdate[updateTypeKey][update.market] = update.updateId;\\n\\n        emit UpdateSentToDestination(update.updateId, update.destLzEid, update.updateType, update.market);\\n    }\\n\\n    /**\\n     * @notice Ensures there is no other pending registered update of the same type for the same market.\\n     *         If a pending update exists and is expired, it is marked as expired and a new update can proceed.\\n     *         If a pending update exists and is not expired, the call reverts to prevent overlapping updates.\\n     * @param update The risk parameter update being registered\\n     * @custom:event Emits UpdateExpired with the ID of the previously pending update if it is found to be expired\\n     * @custom:error RegisteredUpdateTypeExist if there is a non\\u2011expired pending update of the same type for the market\\n     */\\n    function _ensureNoActiveUpdate(RiskParameterUpdate memory update) internal {\\n        uint256 registeredUpdateId = lastRegisteredUpdate[update.updateTypeKey][update.market];\\n        if (registeredUpdateId == 0) return; // no prior update of this type for this market\\n\\n        RegisteredUpdate storage existing = updates[registeredUpdateId];\\n        if (existing.status != UpdateStatus.Pending) return;\\n\\n        // Check expiration\\n        RiskParameterUpdate memory existingUpdate = RISK_ORACLE.getUpdateById(registeredUpdateId);\\n        bool expired = existingUpdate.timestamp + UPDATE_EXPIRATION_TIME < block.timestamp;\\n\\n        if (expired) {\\n            existing.status = UpdateStatus.Expired;\\n            emit UpdateExpired(registeredUpdateId);\\n            return;\\n        }\\n\\n        // If still pending & not expired reject new update\\n        revert RegisteredUpdateTypeExist(registeredUpdateId);\\n    }\\n\\n    /**\\n     * @notice Validates an oracle update before registration.\\n     * @param update The risk parameter update to validate\\n     * @param config The configuration for this update type\\n     * @param isRemoteUpdate Whether the update is destined for a remote chain\\n     * @custom:error UpdateAlreadyResolved if the update was already registered\\n     * @custom:error ConfigNotActive if the configuration for the update type is not active\\n     * @custom:error UpdateIsExpired if the update has expired or is not the latest for the given market and type\\n     * @custom:error UpdateWillExpireBeforeUnlock if the update will expire before its timelock unlocks\\n     * @custom:error UpdateTooFrequent if the debounce period has not passed for the given market and type (only for local updates)\\n     */\\n    function _validateRegisterUpdate(\\n        RiskParameterUpdate memory update,\\n        RiskParamConfig storage config,\\n        bool isRemoteUpdate\\n    ) internal view {\\n        // Check if this update was already registered\\n        if (updates[update.updateId].status != UpdateStatus.None) {\\n            revert UpdateAlreadyResolved();\\n        }\\n\\n        // Check if config is active\\n        if (!config.active) {\\n            revert ConfigNotActive();\\n        }\\n\\n        // Check if this is the latest update for this market and type\\n        uint256 latestUpdateIdForMarketAndType = RISK_ORACLE.getLatestUpdateIdByTypeAndMarket(\\n            update.updateType,\\n            update.market\\n        );\\n        if (latestUpdateIdForMarketAndType != update.updateId) {\\n            revert UpdateIsExpired();\\n        }\\n\\n        uint256 currentTime = block.timestamp;\\n        uint256 expirationTime = update.timestamp + UPDATE_EXPIRATION_TIME;\\n\\n        // Check expiration\\n        if (expirationTime < currentTime) {\\n            revert UpdateIsExpired();\\n        }\\n\\n        // Check if update will still be valid when timelock unlocks\\n        if (expirationTime < currentTime + config.timelock) {\\n            revert UpdateWillExpireBeforeUnlock();\\n        }\\n\\n        // Check debounce (only for local updates)\\n        if (!isRemoteUpdate) {\\n            uint256 lastProcessedId = lastProcessedUpdate[update.updateTypeKey][update.market];\\n            uint256 lastExecutionTime = updates[lastProcessedId].executedAt;\\n            if (lastExecutionTime != 0 && (lastExecutionTime + config.debounce > currentTime)) {\\n                revert UpdateTooFrequent();\\n            }\\n        }\\n    }\\n\\n    /**\\n     * @notice Validates a registered update before execution.\\n     * @param registeredUpdate The stored registered update metadata\\n     * @param update The risk parameter update fetched from the oracle\\n     * @param config The configuration for this update type\\n     * @custom:error ConfigNotActive if the configuration for the update type is not active\\n     * @custom:error InvalidRegisteredUpdate if the update was never registered\\n     * @custom:error UpdateAlreadyResolved if the update was already executed or rejected\\n     * @custom:error UpdateIsExpired if the update has expired\\n     * @custom:error UpdateNotUnlocked if the unlock time has not passed\\n     */\\n    function _validateExecuteUpdate(\\n        RegisteredUpdate storage registeredUpdate,\\n        RiskParameterUpdate memory update,\\n        RiskParamConfig storage config\\n    ) internal view {\\n        if (!config.active) {\\n            revert ConfigNotActive();\\n        }\\n\\n        if (registeredUpdate.status == UpdateStatus.None) {\\n            revert InvalidRegisteredUpdate();\\n        }\\n\\n        if (registeredUpdate.status != UpdateStatus.Pending) {\\n            revert UpdateAlreadyResolved();\\n        }\\n\\n        if (update.timestamp + UPDATE_EXPIRATION_TIME < block.timestamp) {\\n            revert UpdateIsExpired();\\n        }\\n\\n        if (block.timestamp < registeredUpdate.unlockTime) {\\n            revert UpdateNotUnlocked();\\n        }\\n    }\\n\\n    /**\\n     * @notice Checks if an update has completed all conditions to be executed.\\n     * @param updateId The oracle update ID to query\\n     * @return True if the update is pending, not expired, active, and past its timelock\\n     */\\n    function _isUpdateExecutable(uint256 updateId) internal view returns (bool) {\\n        RegisteredUpdate storage registeredUpdate = updates[updateId];\\n        if (registeredUpdate.status != UpdateStatus.Pending) {\\n            return false;\\n        }\\n\\n        RiskParameterUpdate memory update = RISK_ORACLE.getUpdateById(updateId);\\n        RiskParamConfig storage config = riskParameterConfigs[update.updateTypeKey];\\n\\n        if (!config.active) {\\n            return false;\\n        }\\n\\n        // Check expiration\\n        if (update.timestamp + UPDATE_EXPIRATION_TIME < block.timestamp) {\\n            return false;\\n        }\\n\\n        // Check UnlockTime\\n        return block.timestamp >= registeredUpdate.unlockTime;\\n    }\\n\\n    /**\\n     * @notice Disables renounceOwnership function\\n     * @custom:error Throws RenounceOwnershipNotAllowed\\n     */\\n    function renounceOwnership() public pure override {\\n        revert RenounceOwnershipNotAllowed();\\n    }\\n}\\n\",\"keccak256\":\"0x00a20011ab517b6f8b17792a7670a3eb0cc9bbb2c092c3200dd719dc878ce1c6\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/ICorePoolComptroller.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface ICorePoolComptroller {\\n    function borrowCaps(address) external view returns (uint256);\\n\\n    function supplyCaps(address) external view returns (uint256);\\n\\n    function _setMarketSupplyCaps(address[] calldata, uint256[] calldata) external;\\n\\n    function _setMarketBorrowCaps(address[] calldata, uint256[] calldata) external;\\n\\n    function setMarketSupplyCaps(address[] calldata, uint256[] calldata) external;\\n\\n    function setMarketBorrowCaps(address[] calldata, uint256[] calldata) external;\\n\\n    function getAllMarkets() external view returns (address[] memory);\\n\\n    function setCollateralFactor(\\n        uint96 poolId,\\n        address vToken,\\n        uint256 newCollateralFactorMantissa,\\n        uint256 newLiquidizationThresholdMantissa\\n    ) external returns (uint256);\\n\\n    function setCollateralFactor(\\n        address vToken,\\n        uint256 newCollateralFactorMantissa,\\n        uint256 newLiquidationThresholdMantissa\\n    ) external returns (uint256);\\n\\n    function markets(\\n        address\\n    )\\n        external\\n        view\\n        returns (\\n            bool isListed,\\n            uint256 collateralFactorMantissa,\\n            bool isVenus,\\n            uint256 liquidationThresholdMantissa,\\n            uint256 liquidationIncentiveMantissa,\\n            uint96 marketPoolId,\\n            bool isBorrowAllowed\\n        );\\n\\n    function poolMarkets(\\n        uint96 poolId,\\n        address vToken\\n    )\\n        external\\n        view\\n        returns (\\n            bool isListed,\\n            uint256 collateralFactorMantissa,\\n            bool isVenus,\\n            uint256 liquidationThresholdMantissa,\\n            uint256 liquidationIncentiveMantissa,\\n            uint96 marketPoolId,\\n            bool isBorrowAllowed\\n        );\\n}\\n\",\"keccak256\":\"0xf1d900d58474417ee7de59cbb72df84fe1cd4512f3b265bb66ffabddbcca53b6\",\"license\":\"BSD-3-Clause\"},\"solidity-bytes-utils/contracts/BytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: Unlicense\\n/*\\n * @title Solidity Bytes Arrays Utils\\n * @author Gon\\u00e7alo S\\u00e1 <goncalo.sa@consensys.net>\\n *\\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\\n *      The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\\n */\\npragma solidity >=0.8.0 <0.9.0;\\n\\n\\nlibrary BytesLib {\\n    function concat(\\n        bytes memory _preBytes,\\n        bytes memory _postBytes\\n    )\\n        internal\\n        pure\\n        returns (bytes memory)\\n    {\\n        bytes memory tempBytes;\\n\\n        assembly {\\n            // Get a location of some free memory and store it in tempBytes as\\n            // Solidity does for memory variables.\\n            tempBytes := mload(0x40)\\n\\n            // Store the length of the first bytes array at the beginning of\\n            // the memory for tempBytes.\\n            let length := mload(_preBytes)\\n            mstore(tempBytes, length)\\n\\n            // Maintain a memory counter for the current write location in the\\n            // temp bytes array by adding the 32 bytes for the array length to\\n            // the starting location.\\n            let mc := add(tempBytes, 0x20)\\n            // Stop copying when the memory counter reaches the length of the\\n            // first bytes array.\\n            let end := add(mc, length)\\n\\n            for {\\n                // Initialize a copy counter to the start of the _preBytes data,\\n                // 32 bytes into its memory.\\n                let cc := add(_preBytes, 0x20)\\n            } lt(mc, end) {\\n                // Increase both counters by 32 bytes each iteration.\\n                mc := add(mc, 0x20)\\n                cc := add(cc, 0x20)\\n            } {\\n                // Write the _preBytes data into the tempBytes memory 32 bytes\\n                // at a time.\\n                mstore(mc, mload(cc))\\n            }\\n\\n            // Add the length of _postBytes to the current length of tempBytes\\n            // and store it as the new length in the first 32 bytes of the\\n            // tempBytes memory.\\n            length := mload(_postBytes)\\n            mstore(tempBytes, add(length, mload(tempBytes)))\\n\\n            // Move the memory counter back from a multiple of 0x20 to the\\n            // actual end of the _preBytes data.\\n            mc := end\\n            // Stop copying when the memory counter reaches the new combined\\n            // length of the arrays.\\n            end := add(mc, length)\\n\\n            for {\\n                let cc := add(_postBytes, 0x20)\\n            } lt(mc, end) {\\n                mc := add(mc, 0x20)\\n                cc := add(cc, 0x20)\\n            } {\\n                mstore(mc, mload(cc))\\n            }\\n\\n            // Update the free-memory pointer by padding our last write location\\n            // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\\n            // next 32 byte block, then round down to the nearest multiple of\\n            // 32. If the sum of the length of the two arrays is zero then add\\n            // one before rounding down to leave a blank 32 bytes (the length block with 0).\\n            mstore(0x40, and(\\n              add(add(end, iszero(add(length, mload(_preBytes)))), 31),\\n              not(31) // Round down to the nearest 32 bytes.\\n            ))\\n        }\\n\\n        return tempBytes;\\n    }\\n\\n    function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\\n        assembly {\\n            // Read the first 32 bytes of _preBytes storage, which is the length\\n            // of the array. (We don't need to use the offset into the slot\\n            // because arrays use the entire slot.)\\n            let fslot := sload(_preBytes.slot)\\n            // Arrays of 31 bytes or less have an even value in their slot,\\n            // while longer arrays have an odd value. The actual length is\\n            // the slot divided by two for odd values, and the lowest order\\n            // byte divided by two for even values.\\n            // If the slot is even, bitwise and the slot with 255 and divide by\\n            // two to get the length. If the slot is odd, bitwise and the slot\\n            // with -1 and divide by two.\\n            let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n            let mlength := mload(_postBytes)\\n            let newlength := add(slength, mlength)\\n            // slength can contain both the length and contents of the array\\n            // if length < 32 bytes so let's prepare for that\\n            // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n            switch add(lt(slength, 32), lt(newlength, 32))\\n            case 2 {\\n                // Since the new array still fits in the slot, we just need to\\n                // update the contents of the slot.\\n                // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\\n                sstore(\\n                    _preBytes.slot,\\n                    // all the modifications to the slot are inside this\\n                    // next block\\n                    add(\\n                        // we can just add to the slot contents because the\\n                        // bytes we want to change are the LSBs\\n                        fslot,\\n                        add(\\n                            mul(\\n                                div(\\n                                    // load the bytes from memory\\n                                    mload(add(_postBytes, 0x20)),\\n                                    // zero all bytes to the right\\n                                    exp(0x100, sub(32, mlength))\\n                                ),\\n                                // and now shift left the number of bytes to\\n                                // leave space for the length in the slot\\n                                exp(0x100, sub(32, newlength))\\n                            ),\\n                            // increase length by the double of the memory\\n                            // bytes length\\n                            mul(mlength, 2)\\n                        )\\n                    )\\n                )\\n            }\\n            case 1 {\\n                // The stored value fits in the slot, but the combined value\\n                // will exceed it.\\n                // get the keccak hash to get the contents of the array\\n                mstore(0x0, _preBytes.slot)\\n                let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n                // save new length\\n                sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n                // The contents of the _postBytes array start 32 bytes into\\n                // the structure. Our first read should obtain the `submod`\\n                // bytes that can fit into the unused space in the last word\\n                // of the stored array. To get this, we read 32 bytes starting\\n                // from `submod`, so the data we read overlaps with the array\\n                // contents by `submod` bytes. Masking the lowest-order\\n                // `submod` bytes allows us to add that value directly to the\\n                // stored value.\\n\\n                let submod := sub(32, slength)\\n                let mc := add(_postBytes, submod)\\n                let end := add(_postBytes, mlength)\\n                let mask := sub(exp(0x100, submod), 1)\\n\\n                sstore(\\n                    sc,\\n                    add(\\n                        and(\\n                            fslot,\\n                            0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00\\n                        ),\\n                        and(mload(mc), mask)\\n                    )\\n                )\\n\\n                for {\\n                    mc := add(mc, 0x20)\\n                    sc := add(sc, 1)\\n                } lt(mc, end) {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } {\\n                    sstore(sc, mload(mc))\\n                }\\n\\n                mask := exp(0x100, sub(mc, end))\\n\\n                sstore(sc, mul(div(mload(mc), mask), mask))\\n            }\\n            default {\\n                // get the keccak hash to get the contents of the array\\n                mstore(0x0, _preBytes.slot)\\n                // Start copying to the last used word of the stored array.\\n                let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n                // save new length\\n                sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n                // Copy over the first `submod` bytes of the new data as in\\n                // case 1 above.\\n                let slengthmod := mod(slength, 32)\\n                let mlengthmod := mod(mlength, 32)\\n                let submod := sub(32, slengthmod)\\n                let mc := add(_postBytes, submod)\\n                let end := add(_postBytes, mlength)\\n                let mask := sub(exp(0x100, submod), 1)\\n\\n                sstore(sc, add(sload(sc), and(mload(mc), mask)))\\n\\n                for {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } lt(mc, end) {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } {\\n                    sstore(sc, mload(mc))\\n                }\\n\\n                mask := exp(0x100, sub(mc, end))\\n\\n                sstore(sc, mul(div(mload(mc), mask), mask))\\n            }\\n        }\\n    }\\n\\n    function slice(\\n        bytes memory _bytes,\\n        uint256 _start,\\n        uint256 _length\\n    )\\n        internal\\n        pure\\n        returns (bytes memory)\\n    {\\n        // We're using the unchecked block below because otherwise execution ends \\n        // with the native overflow error code.\\n        unchecked {\\n            require(_length + 31 >= _length, \\\"slice_overflow\\\");\\n        }\\n        require(_bytes.length >= _start + _length, \\\"slice_outOfBounds\\\");\\n\\n        bytes memory tempBytes;\\n\\n        assembly {\\n            switch iszero(_length)\\n            case 0 {\\n                // Get a location of some free memory and store it in tempBytes as\\n                // Solidity does for memory variables.\\n                tempBytes := mload(0x40)\\n\\n                // The first word of the slice result is potentially a partial\\n                // word read from the original array. To read it, we calculate\\n                // the length of that partial word and start copying that many\\n                // bytes into the array. The first word we copy will start with\\n                // data we don't care about, but the last `lengthmod` bytes will\\n                // land at the beginning of the contents of the new array. When\\n                // we're done copying, we overwrite the full first word with\\n                // the actual length of the slice.\\n                let lengthmod := and(_length, 31)\\n\\n                // The multiplication in the next line is necessary\\n                // because when slicing multiples of 32 bytes (lengthmod == 0)\\n                // the following copy loop was copying the origin's length\\n                // and then ending prematurely not copying everything it should.\\n                let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\\n                let end := add(mc, _length)\\n\\n                for {\\n                    // The multiplication in the next line has the same exact purpose\\n                    // as the one above.\\n                    let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\\n                } lt(mc, end) {\\n                    mc := add(mc, 0x20)\\n                    cc := add(cc, 0x20)\\n                } {\\n                    mstore(mc, mload(cc))\\n                }\\n\\n                mstore(tempBytes, _length)\\n\\n                //update free-memory pointer\\n                //allocating the array padded to 32 bytes like the compiler does now\\n                mstore(0x40, and(add(mc, 31), not(31)))\\n            }\\n            //if we want a zero-length slice let's just return a zero-length array\\n            default {\\n                tempBytes := mload(0x40)\\n                //zero out the 32 bytes slice we are about to return\\n                //we need to do it because Solidity does not garbage collect\\n                mstore(tempBytes, 0)\\n\\n                mstore(0x40, add(tempBytes, 0x20))\\n            }\\n        }\\n\\n        return tempBytes;\\n    }\\n\\n    function toAddress(bytes memory _bytes, uint256 _start) internal pure returns (address) {\\n        require(_bytes.length >= _start + 20, \\\"toAddress_outOfBounds\\\");\\n        address tempAddress;\\n\\n        assembly {\\n            tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\\n        }\\n\\n        return tempAddress;\\n    }\\n\\n    function toUint8(bytes memory _bytes, uint256 _start) internal pure returns (uint8) {\\n        require(_bytes.length >= _start + 1 , \\\"toUint8_outOfBounds\\\");\\n        uint8 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x1), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint16(bytes memory _bytes, uint256 _start) internal pure returns (uint16) {\\n        require(_bytes.length >= _start + 2, \\\"toUint16_outOfBounds\\\");\\n        uint16 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x2), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint32(bytes memory _bytes, uint256 _start) internal pure returns (uint32) {\\n        require(_bytes.length >= _start + 4, \\\"toUint32_outOfBounds\\\");\\n        uint32 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x4), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint64(bytes memory _bytes, uint256 _start) internal pure returns (uint64) {\\n        require(_bytes.length >= _start + 8, \\\"toUint64_outOfBounds\\\");\\n        uint64 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x8), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint96(bytes memory _bytes, uint256 _start) internal pure returns (uint96) {\\n        require(_bytes.length >= _start + 12, \\\"toUint96_outOfBounds\\\");\\n        uint96 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0xc), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint128(bytes memory _bytes, uint256 _start) internal pure returns (uint128) {\\n        require(_bytes.length >= _start + 16, \\\"toUint128_outOfBounds\\\");\\n        uint128 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x10), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint256(bytes memory _bytes, uint256 _start) internal pure returns (uint256) {\\n        require(_bytes.length >= _start + 32, \\\"toUint256_outOfBounds\\\");\\n        uint256 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x20), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toBytes32(bytes memory _bytes, uint256 _start) internal pure returns (bytes32) {\\n        require(_bytes.length >= _start + 32, \\\"toBytes32_outOfBounds\\\");\\n        bytes32 tempBytes32;\\n\\n        assembly {\\n            tempBytes32 := mload(add(add(_bytes, 0x20), _start))\\n        }\\n\\n        return tempBytes32;\\n    }\\n\\n    function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\\n        bool success = true;\\n\\n        assembly {\\n            let length := mload(_preBytes)\\n\\n            // if lengths don't match the arrays are not equal\\n            switch eq(length, mload(_postBytes))\\n            case 1 {\\n                // cb is a circuit breaker in the for loop since there's\\n                //  no said feature for inline assembly loops\\n                // cb = 1 - don't breaker\\n                // cb = 0 - break\\n                let cb := 1\\n\\n                let mc := add(_preBytes, 0x20)\\n                let end := add(mc, length)\\n\\n                for {\\n                    let cc := add(_postBytes, 0x20)\\n                // the next line is the loop condition:\\n                // while(uint256(mc < end) + cb == 2)\\n                } eq(add(lt(mc, end), cb), 2) {\\n                    mc := add(mc, 0x20)\\n                    cc := add(cc, 0x20)\\n                } {\\n                    // if any of these checks fails then arrays are not equal\\n                    if iszero(eq(mload(mc), mload(cc))) {\\n                        // unsuccess:\\n                        success := 0\\n                        cb := 0\\n                    }\\n                }\\n            }\\n            default {\\n                // unsuccess:\\n                success := 0\\n            }\\n        }\\n\\n        return success;\\n    }\\n\\n    function equalStorage(\\n        bytes storage _preBytes,\\n        bytes memory _postBytes\\n    )\\n        internal\\n        view\\n        returns (bool)\\n    {\\n        bool success = true;\\n\\n        assembly {\\n            // we know _preBytes_offset is 0\\n            let fslot := sload(_preBytes.slot)\\n            // Decode the length of the stored array like in concatStorage().\\n            let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n            let mlength := mload(_postBytes)\\n\\n            // if lengths don't match the arrays are not equal\\n            switch eq(slength, mlength)\\n            case 1 {\\n                // slength can contain both the length and contents of the array\\n                // if length < 32 bytes so let's prepare for that\\n                // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n                if iszero(iszero(slength)) {\\n                    switch lt(slength, 32)\\n                    case 1 {\\n                        // blank the last byte which is the length\\n                        fslot := mul(div(fslot, 0x100), 0x100)\\n\\n                        if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\\n                            // unsuccess:\\n                            success := 0\\n                        }\\n                    }\\n                    default {\\n                        // cb is a circuit breaker in the for loop since there's\\n                        //  no said feature for inline assembly loops\\n                        // cb = 1 - don't breaker\\n                        // cb = 0 - break\\n                        let cb := 1\\n\\n                        // get the keccak hash to get the contents of the array\\n                        mstore(0x0, _preBytes.slot)\\n                        let sc := keccak256(0x0, 0x20)\\n\\n                        let mc := add(_postBytes, 0x20)\\n                        let end := add(mc, mlength)\\n\\n                        // the next line is the loop condition:\\n                        // while(uint256(mc < end) + cb == 2)\\n                        for {} eq(add(lt(mc, end), cb), 2) {\\n                            sc := add(sc, 1)\\n                            mc := add(mc, 0x20)\\n                        } {\\n                            if iszero(eq(sload(sc), mload(mc))) {\\n                                // unsuccess:\\n                                success := 0\\n                                cb := 0\\n                            }\\n                        }\\n                    }\\n                }\\n            }\\n            default {\\n                // unsuccess:\\n                success := 0\\n            }\\n        }\\n\\n        return success;\\n    }\\n}\\n\",\"keccak256\":\"0xf4b07e5d8f69407bb43c6db224adfcf6c73b512dd64e85008ac3c222910c3555\",\"license\":\"Unlicense\"}},\"version\":1}","storageLayout":{"storage":[{"astId":6086,"contract":"contracts/RiskSteward/RiskStewardReceiver.sol:RiskStewardReceiver","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":6089,"contract":"contracts/RiskSteward/RiskStewardReceiver.sol:RiskStewardReceiver","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":6573,"contract":"contracts/RiskSteward/RiskStewardReceiver.sol:RiskStewardReceiver","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":5958,"contract":"contracts/RiskSteward/RiskStewardReceiver.sol:RiskStewardReceiver","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":6078,"contract":"contracts/RiskSteward/RiskStewardReceiver.sol:RiskStewardReceiver","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":5867,"contract":"contracts/RiskSteward/RiskStewardReceiver.sol:RiskStewardReceiver","label":"_pendingOwner","offset":0,"slot":"101","type":"t_address"},{"astId":5946,"contract":"contracts/RiskSteward/RiskStewardReceiver.sol:RiskStewardReceiver","label":"__gap","offset":0,"slot":"102","type":"t_array(t_uint256)49_storage"},{"astId":13718,"contract":"contracts/RiskSteward/RiskStewardReceiver.sol:RiskStewardReceiver","label":"_accessControlManager","offset":0,"slot":"151","type":"t_contract(IAccessControlManagerV8)13903"},{"astId":13723,"contract":"contracts/RiskSteward/RiskStewardReceiver.sol:RiskStewardReceiver","label":"__gap","offset":0,"slot":"152","type":"t_array(t_uint256)49_storage"},{"astId":18366,"contract":"contracts/RiskSteward/RiskStewardReceiver.sol:RiskStewardReceiver","label":"paused","offset":0,"slot":"201","type":"t_bool"},{"astId":18372,"contract":"contracts/RiskSteward/RiskStewardReceiver.sol:RiskStewardReceiver","label":"riskParameterConfigs","offset":0,"slot":"202","type":"t_mapping(t_bytes32,t_struct(RiskParamConfig)16859_storage)"},{"astId":18378,"contract":"contracts/RiskSteward/RiskStewardReceiver.sol:RiskStewardReceiver","label":"updates","offset":0,"slot":"203","type":"t_mapping(t_uint256,t_struct(RegisteredUpdate)16872_storage)"},{"astId":18385,"contract":"contracts/RiskSteward/RiskStewardReceiver.sol:RiskStewardReceiver","label":"lastProcessedUpdate","offset":0,"slot":"204","type":"t_mapping(t_bytes32,t_mapping(t_address,t_uint256))"},{"astId":18392,"contract":"contracts/RiskSteward/RiskStewardReceiver.sol:RiskStewardReceiver","label":"lastRegisteredUpdate","offset":0,"slot":"205","type":"t_mapping(t_bytes32,t_mapping(t_address,t_uint256))"},{"astId":18397,"contract":"contracts/RiskSteward/RiskStewardReceiver.sol:RiskStewardReceiver","label":"whitelistedExecutors","offset":0,"slot":"206","type":"t_mapping(t_address,t_bool)"},{"astId":18402,"contract":"contracts/RiskSteward/RiskStewardReceiver.sol:RiskStewardReceiver","label":"__gap","offset":0,"slot":"207","type":"t_array(t_uint256)44_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)44_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[44]","numberOfBytes":"1408"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_contract(IAccessControlManagerV8)13903":{"encoding":"inplace","label":"contract IAccessControlManagerV8","numberOfBytes":"20"},"t_enum(UpdateStatus)16849":{"encoding":"inplace","label":"enum IRiskStewardReceiver.UpdateStatus","numberOfBytes":"1"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_bytes32,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_bytes32,t_struct(RiskParamConfig)16859_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct IRiskStewardReceiver.RiskParamConfig)","numberOfBytes":"32","value":"t_struct(RiskParamConfig)16859_storage"},"t_mapping(t_uint256,t_struct(RegisteredUpdate)16872_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => struct IRiskStewardReceiver.RegisteredUpdate)","numberOfBytes":"32","value":"t_struct(RegisteredUpdate)16872_storage"},"t_struct(RegisteredUpdate)16872_storage":{"encoding":"inplace","label":"struct IRiskStewardReceiver.RegisteredUpdate","members":[{"astId":16862,"contract":"contracts/RiskSteward/RiskStewardReceiver.sol:RiskStewardReceiver","label":"updateId","offset":0,"slot":"0","type":"t_uint256"},{"astId":16864,"contract":"contracts/RiskSteward/RiskStewardReceiver.sol:RiskStewardReceiver","label":"unlockTime","offset":0,"slot":"1","type":"t_uint256"},{"astId":16867,"contract":"contracts/RiskSteward/RiskStewardReceiver.sol:RiskStewardReceiver","label":"status","offset":0,"slot":"2","type":"t_enum(UpdateStatus)16849"},{"astId":16869,"contract":"contracts/RiskSteward/RiskStewardReceiver.sol:RiskStewardReceiver","label":"executor","offset":1,"slot":"2","type":"t_address"},{"astId":16871,"contract":"contracts/RiskSteward/RiskStewardReceiver.sol:RiskStewardReceiver","label":"executedAt","offset":0,"slot":"3","type":"t_uint256"}],"numberOfBytes":"128"},"t_struct(RiskParamConfig)16859_storage":{"encoding":"inplace","label":"struct IRiskStewardReceiver.RiskParamConfig","members":[{"astId":16852,"contract":"contracts/RiskSteward/RiskStewardReceiver.sol:RiskStewardReceiver","label":"active","offset":0,"slot":"0","type":"t_bool"},{"astId":16854,"contract":"contracts/RiskSteward/RiskStewardReceiver.sol:RiskStewardReceiver","label":"debounce","offset":0,"slot":"1","type":"t_uint256"},{"astId":16856,"contract":"contracts/RiskSteward/RiskStewardReceiver.sol:RiskStewardReceiver","label":"timelock","offset":0,"slot":"2","type":"t_uint256"},{"astId":16858,"contract":"contracts/RiskSteward/RiskStewardReceiver.sol:RiskStewardReceiver","label":"riskSteward","offset":0,"slot":"3","type":"t_address"}],"numberOfBytes":"128"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"errors":{"ConfigNotActive()":[{"notice":"Thrown if a submitted update is not active and therefore cannot be processed"}],"ConfigStatusUnchanged()":[{"notice":"Thrown when trying to set the same config active status"}],"ExecutorStatusUnchanged()":[{"notice":"Thrown when trying to set the same executor whitelist status"}],"InvalidDebounce()":[{"notice":"Thrown when a debounce value of 0 is set"}],"InvalidLayerZeroEid()":[{"notice":"Thrown when an invalid LayerZero endpoint ID is provided"}],"InvalidLzSendCaller()":[{"notice":"Thrown when attempting to call lzSend from an address other than this contract"}],"InvalidRegisteredUpdate()":[{"notice":"Thrown when trying to execute an update that was never registered"}],"InvalidTimelock()":[{"notice":"Thrown when a timelock value is greater than or equal to the expiration time"}],"InvalidUpdateToResend()":[{"notice":"Thrown when trying to resend an update that is not in SENT_TO_DESTINATION status"}],"InvalidUpdateType()":[{"notice":"Thrown when an empty update type string is provided"}],"NotAnExecutor()":[{"notice":"Thrown when an address is not an executor"}],"PauseStatusUnchanged()":[{"notice":"Thrown when trying to set the same pause status"}],"PausedError()":[{"notice":"Thrown when processUpdate is called while the contract is paused"}],"RegisteredUpdateTypeExist(uint256)":[{"notice":"Thrown when there is a non-expired pending update of the same type for the market"}],"RenounceOwnershipNotAllowed()":[{"notice":"Thrown when trying to renounce ownership"}],"Unauthorized(address,address,string)":[{"notice":"Thrown when the action is prohibited by AccessControlManager"}],"UnsupportedUpdateType()":[{"notice":"Thrown when an update type that is not supported is operated on"}],"UpdateAlreadyResolved()":[{"notice":"Thrown when an update has already been processed"}],"UpdateIsExpired()":[{"notice":"Thrown when an update was not applied within the required time frame"}],"UpdateNotFound()":[{"notice":"Thrown when trying to resolve an update that doesn't exist"}],"UpdateNotUnlocked()":[{"notice":"Thrown when update unlock time has not been reached"}],"UpdateTooFrequent()":[{"notice":"Thrown when the debounce period hasn't passed for applying an update to a specific market / update type"}],"UpdateWillExpireBeforeUnlock()":[{"notice":"Thrown when an update will expire before its timelock unlocks"}],"ZeroAddressNotAllowed()":[{"notice":"Thrown if the supplied address is a zero address where it is not allowed"}]},"events":{"ConfigActiveUpdated(bytes32,string,bool,bool)":{"notice":"Event emitted when a risk parameter config active status is set"},"ExecutorStatusUpdated(address,bool,bool)":{"notice":"Event emitted when an executor status is set"},"NewAccessControlManager(address,address)":{"notice":"Emitted when access control manager contract address is changed"},"PauseStatusUpdated(bool,bool)":{"notice":"Event emitted when the pause status changes"},"RiskParameterConfigUpdated(bytes32,string,address,address,uint256,uint256,uint256,uint256,bool,bool)":{"notice":"Event emitted when a risk parameter config is set"},"SweepNative(address,uint256)":{"notice":"Emitted when leftover native tokens are swept by owner"},"UpdateExecuted(uint256)":{"notice":"Event emitted when an update is successfully executed"},"UpdateExpired(uint256)":{"notice":"Event emitted when an update is marked as expired"},"UpdateRegistered(uint256,uint256,string,address)":{"notice":"Event emitted when an update is registered"},"UpdateRejected(uint256)":{"notice":"Event emitted when an update is rejected"},"UpdateResentToDestination(uint256,uint32,string,address)":{"notice":"Event emitted when an update is resent to a destination chain"},"UpdateSentToDestination(uint256,uint32,string,address)":{"notice":"Event emitted when an update is sent to a destination chain"}},"kind":"user","methods":{"LAYER_ZERO_EID()":{"notice":"Source chain LayerZero endpoint ID"},"RISK_ORACLE()":{"notice":"The Risk Oracle contract address"},"UPDATE_EXPIRATION_TIME()":{"notice":"Period after which a proposed update becomes expired and can no longer be applied"},"accessControlManager()":{"notice":"Returns the address of the access control manager contract"},"constructor":{"notice":"Disables initializers and sets the Risk Oracle and LayerZero configuration."},"endpoint()":{"notice":"Retrieves the LayerZero endpoint associated with the OApp."},"executeRegisteredUpdate(uint256)":{"notice":"Executes a registered update. Only whitelisted executors can call this function.         This function can be used for updates that have completed their timelock and are ready to execute."},"getExecutableUpdates(string,address)":{"notice":"Returns an array of update IDs for executable registered updates for a given update type and comptroller."},"getLastProcessedUpdate(string,address)":{"notice":"Returns the last processed update ID for a given update type and market"},"getLastRegisteredUpdate(string,address)":{"notice":"Returns the last registered update ID for a given update type and market"},"getRiskParameterConfig(string)":{"notice":"Returns the risk parameter configuration for a given update type"},"initialize(address,address)":{"notice":"Initializes the contract with the Access Control Manager and OApp owner."},"isUpdateExecutable(uint256)":{"notice":"Returns whether a registered update is ready to be executed."},"lastProcessedUpdate(bytes32,address)":{"notice":"Track last processed update ID per (updateTypeKey, market)"},"lastRegisteredUpdate(bytes32,address)":{"notice":"Track the current registered update per (updateType, market) to avoid registering multiple updates"},"lzSend(uint32,(string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes),bytes,(uint256,uint256),address)":{"notice":"Sends a `RiskParameterUpdate` to a destination chain via LayerZero."},"oAppVersion()":{"notice":"Retrieves the OApp version information."},"paused()":{"notice":"Pause flag"},"peers(uint32)":{"notice":"Returns the peer address (OApp instance) associated with a specific endpoint."},"processUpdate(uint256)":{"notice":"Processes an update from the Risk Oracle. Validates, registers the update, and either executes immediately, registers with timelock, or forwards cross-chain."},"quote((string,uint256,address,string,bytes32,bytes,bytes,uint256,address,uint96,uint32,bytes),bytes,bool)":{"notice":"Quotes the gas fee needed to pay for the full omnichain transaction in native gas or ZRO token."},"rejectUpdate(uint256)":{"notice":"Rejects a registered update"},"renounceOwnership()":{"notice":"Disables renounceOwnership function"},"resendRemoteUpdate(uint256,bytes)":{"notice":"Resends a remote update to the destination chain. This function is useful in case of bridge failures."},"riskParameterConfigs(bytes32)":{"notice":"Mapping of supported risk configurations and their validation parameters (keyed by hashed updateType)"},"setAccessControlManager(address)":{"notice":"Sets the address of AccessControlManager"},"setConfigActive(string,bool)":{"notice":"Sets the active status of a risk parameter config"},"setDelegate(address)":{"notice":"Sets the delegate address for the OApp."},"setPaused(bool)":{"notice":"Sets the pause status for `processUpdate`."},"setPeer(uint32,bytes32)":{"notice":"Sets the peer address (OApp instance) for a corresponding endpoint."},"setRiskParameterConfig(string,address,uint256,uint256)":{"notice":"Sets the risk parameter config for a given update type"},"setWhitelistedExecutor(address,bool)":{"notice":"Manages the whitelist of executors that are allowed to execute timelocked registered updates."},"sweepNative()":{"notice":"Allows the owner to sweep leftover native tokens (e.g., BNB) from the contract."},"updates(uint256)":{"notice":"Master storage of all registered updates by update ID"},"whitelistedExecutors(address)":{"notice":"Mapping from executor address to whitelist status"}},"notice":"Contract that reads updates from a Risk Oracle, validates them with timelock and debounce,         and either executes them locally via the configured RiskSteward or forwards them cross‑chain.","version":1}}},"contracts/Utils/ACMCommandsAggregator.sol":{"ACMCommandsAggregator":{"abi":[{"inputs":[{"internalType":"contract IAccessControlManagerV8","name":"_acm","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"EmptyPermissions","type":"error"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"index","type":"uint256"}],"name":"GrantPermissionsAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"index","type":"uint256"}],"name":"GrantPermissionsExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"index","type":"uint256"}],"name":"RevokePermissionsAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"index","type":"uint256"}],"name":"RevokePermissionsExecuted","type":"event"},{"inputs":[],"name":"ACM","outputs":[{"internalType":"contract IAccessControlManagerV8","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"string","name":"functionSig","type":"string"},{"internalType":"address","name":"account","type":"address"}],"internalType":"struct ACMCommandsAggregator.Permission[]","name":"_permissions","type":"tuple[]"}],"name":"addGrantPermissions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"string","name":"functionSig","type":"string"},{"internalType":"address","name":"account","type":"address"}],"internalType":"struct ACMCommandsAggregator.Permission[]","name":"_permissions","type":"tuple[]"}],"name":"addRevokePermissions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"executeGrantPermissions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"executeRevokePermissions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"grantPermissions","outputs":[{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"string","name":"functionSig","type":"string"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"revokePermissions","outputs":[{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"string","name":"functionSig","type":"string"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function"}],"devdoc":{"author":"Venus","kind":"dev","methods":{},"title":"ACMCommandsAggregator","version":1},"evm":{"bytecode":{"functionDebugData":{"@_19995":{"entryPoint":null,"id":19995,"parameterSlots":1,"returnSlots":0},"@ensureNonzeroAddress_10945":{"entryPoint":67,"id":10945,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_contract$_IAccessControlManagerV8_$13903_fromMemory":{"entryPoint":108,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:339:97","nodeType":"YulBlock","src":"0:339:97","statements":[{"nativeSrc":"6:3:97","nodeType":"YulBlock","src":"6:3:97","statements":[]},{"body":{"nativeSrc":"128:209:97","nodeType":"YulBlock","src":"128:209:97","statements":[{"body":{"nativeSrc":"174:16:97","nodeType":"YulBlock","src":"174:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"183:1:97","nodeType":"YulLiteral","src":"183:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"186:1:97","nodeType":"YulLiteral","src":"186:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"176:6:97","nodeType":"YulIdentifier","src":"176:6:97"},"nativeSrc":"176:12:97","nodeType":"YulFunctionCall","src":"176:12:97"},"nativeSrc":"176:12:97","nodeType":"YulExpressionStatement","src":"176:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"149:7:97","nodeType":"YulIdentifier","src":"149:7:97"},{"name":"headStart","nativeSrc":"158:9:97","nodeType":"YulIdentifier","src":"158:9:97"}],"functionName":{"name":"sub","nativeSrc":"145:3:97","nodeType":"YulIdentifier","src":"145:3:97"},"nativeSrc":"145:23:97","nodeType":"YulFunctionCall","src":"145:23:97"},{"kind":"number","nativeSrc":"170:2:97","nodeType":"YulLiteral","src":"170:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"141:3:97","nodeType":"YulIdentifier","src":"141:3:97"},"nativeSrc":"141:32:97","nodeType":"YulFunctionCall","src":"141:32:97"},"nativeSrc":"138:52:97","nodeType":"YulIf","src":"138:52:97"},{"nativeSrc":"199:29:97","nodeType":"YulVariableDeclaration","src":"199:29:97","value":{"arguments":[{"name":"headStart","nativeSrc":"218:9:97","nodeType":"YulIdentifier","src":"218:9:97"}],"functionName":{"name":"mload","nativeSrc":"212:5:97","nodeType":"YulIdentifier","src":"212:5:97"},"nativeSrc":"212:16:97","nodeType":"YulFunctionCall","src":"212:16:97"},"variables":[{"name":"value","nativeSrc":"203:5:97","nodeType":"YulTypedName","src":"203:5:97","type":""}]},{"body":{"nativeSrc":"291:16:97","nodeType":"YulBlock","src":"291:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"300:1:97","nodeType":"YulLiteral","src":"300:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"303:1:97","nodeType":"YulLiteral","src":"303:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"293:6:97","nodeType":"YulIdentifier","src":"293:6:97"},"nativeSrc":"293:12:97","nodeType":"YulFunctionCall","src":"293:12:97"},"nativeSrc":"293:12:97","nodeType":"YulExpressionStatement","src":"293:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"250:5:97","nodeType":"YulIdentifier","src":"250:5:97"},{"arguments":[{"name":"value","nativeSrc":"261:5:97","nodeType":"YulIdentifier","src":"261:5:97"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"276:3:97","nodeType":"YulLiteral","src":"276:3:97","type":"","value":"160"},{"kind":"number","nativeSrc":"281:1:97","nodeType":"YulLiteral","src":"281:1:97","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"272:3:97","nodeType":"YulIdentifier","src":"272:3:97"},"nativeSrc":"272:11:97","nodeType":"YulFunctionCall","src":"272:11:97"},{"kind":"number","nativeSrc":"285:1:97","nodeType":"YulLiteral","src":"285:1:97","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"268:3:97","nodeType":"YulIdentifier","src":"268:3:97"},"nativeSrc":"268:19:97","nodeType":"YulFunctionCall","src":"268:19:97"}],"functionName":{"name":"and","nativeSrc":"257:3:97","nodeType":"YulIdentifier","src":"257:3:97"},"nativeSrc":"257:31:97","nodeType":"YulFunctionCall","src":"257:31:97"}],"functionName":{"name":"eq","nativeSrc":"247:2:97","nodeType":"YulIdentifier","src":"247:2:97"},"nativeSrc":"247:42:97","nodeType":"YulFunctionCall","src":"247:42:97"}],"functionName":{"name":"iszero","nativeSrc":"240:6:97","nodeType":"YulIdentifier","src":"240:6:97"},"nativeSrc":"240:50:97","nodeType":"YulFunctionCall","src":"240:50:97"},"nativeSrc":"237:70:97","nodeType":"YulIf","src":"237:70:97"},{"nativeSrc":"316:15:97","nodeType":"YulAssignment","src":"316:15:97","value":{"name":"value","nativeSrc":"326:5:97","nodeType":"YulIdentifier","src":"326:5:97"},"variableNames":[{"name":"value0","nativeSrc":"316:6:97","nodeType":"YulIdentifier","src":"316:6:97"}]}]},"name":"abi_decode_tuple_t_contract$_IAccessControlManagerV8_$13903_fromMemory","nativeSrc":"14:323:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"94:9:97","nodeType":"YulTypedName","src":"94:9:97","type":""},{"name":"dataEnd","nativeSrc":"105:7:97","nodeType":"YulTypedName","src":"105:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"117:6:97","nodeType":"YulTypedName","src":"117:6:97","type":""}],"src":"14:323:97"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_contract$_IAccessControlManagerV8_$13903_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n        value0 := value\n    }\n}","id":97,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a0604052348015600f57600080fd5b506040516110c73803806110c7833981016040819052602c91606c565b6033816043565b6001600160a01b0316608052609a565b6001600160a01b0381166069576040516342bcdf7f60e11b815260040160405180910390fd5b50565b600060208284031215607d57600080fd5b81516001600160a01b0381168114609357600080fd5b9392505050565b6080516110046100c360003960008181610100015281816102de0152610a0101526110046000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80639d6c76b81161005b5780639d6c76b8146100d5578063de46a235146100e8578063f9b80da1146100fb578063ff1575e11461014757600080fd5b806322473d8c14610082578063514aab87146100975780635666a5ea146100c2575b600080fd5b610095610090366004610ab8565b61015a565b005b6100aa6100a5366004610ad1565b61038d565b6040516100b993929190610af3565b60405180910390f35b6100956100d0366004610c59565b610492565b6100956100e3366004610c59565b610689565b6100956100f6366004610ab8565b61087f565b6101227f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100b9565b6100aa610155366004610ad1565b610aa8565b60006001828154811061016f5761016f610de1565b600091825260208220015491505b818110156103545760006001848154811061019a5761019a610de1565b9060005260206000200182815481106101b5576101b5610de1565b60009182526020918290206040805160608101909152600390920201805473ffffffffffffffffffffffffffffffffffffffff168252600181018054929391929184019161020290610e10565b80601f016020809104026020016040519081016040528092919081815260200182805461022e90610e10565b801561027b5780601f106102505761010080835404028352916020019161027b565b820191906000526020600020905b81548152906001019060200180831161025e57829003601f168201915b50505091835250506002919091015473ffffffffffffffffffffffffffffffffffffffff90811660209283015282519183015160408085015190517f545f7a320000000000000000000000000000000000000000000000000000000081529495507f00000000000000000000000000000000000000000000000000000000000000009092169363545f7a329361031693909291600401610af3565b600060405180830381600087803b15801561033057600080fd5b505af1158015610344573d6000803e3d6000fd5b505050505080600101905061017d565b506040518281527f1382323d6618527d8b03daa05db815f0490966e8b80679fe5ad3d868f84e1a71906020015b60405180910390a15050565b6000828154811061039d57600080fd5b9060005260206000200181815481106103b557600080fd5b60009182526020909120600390910201805460018201805473ffffffffffffffffffffffffffffffffffffffff90921694509192506103f390610e10565b80601f016020809104026020016040519081016040528092919081815260200182805461041f90610e10565b801561046c5780601f106104415761010080835404028352916020019161046c565b820191906000526020600020905b81548152906001019060200180831161044f57829003601f168201915b5050506002909301549192505073ffffffffffffffffffffffffffffffffffffffff1683565b80516000036104cd576040517f4494013c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001805480820182556000918252905b825181101561065857600182815481106104f9576104f9610de1565b90600052602060002001604051806060016040528085848151811061052057610520610de1565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff16815260200185848151811061055957610559610de1565b602002602001015160200151815260200185848151811061057c5761057c610de1565b6020908102919091018101516040015173ffffffffffffffffffffffffffffffffffffffff908116909252835460018082018655600095865294829020845160039092020180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169190931617825582015191929091908201906106019082610eb4565b5060409190910151600290910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9092169190911790556001016104dd565b506040518181527f75922591bf2cec980645dc4a32bb7d5e8da9a15fda86dacf06f8402cecd1478f90602001610381565b80516000036106c4576040517f4494013c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008054600181018255818052905b825181101561084e57600082815481106106ef576106ef610de1565b90600052602060002001604051806060016040528085848151811061071657610716610de1565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff16815260200185848151811061074f5761074f610de1565b602002602001015160200151815260200185848151811061077257610772610de1565b6020908102919091018101516040015173ffffffffffffffffffffffffffffffffffffffff908116909252835460018082018655600095865294829020845160039092020180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169190931617825582015191929091908201906107f79082610eb4565b5060409190910151600290910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9092169190911790556001016106d3565b506040518181527ff8ca6ea7cc31be8572501c37ef5e9e8298be717fb881e0b1ca785aecc4d25e9f90602001610381565b600080828154811061089357610893610de1565b600091825260208220015491505b81811015610a775760008084815481106108bd576108bd610de1565b9060005260206000200182815481106108d8576108d8610de1565b60009182526020918290206040805160608101909152600390920201805473ffffffffffffffffffffffffffffffffffffffff168252600181018054929391929184019161092590610e10565b80601f016020809104026020016040519081016040528092919081815260200182805461095190610e10565b801561099e5780601f106109735761010080835404028352916020019161099e565b820191906000526020600020905b81548152906001019060200180831161098157829003601f168201915b50505091835250506002919091015473ffffffffffffffffffffffffffffffffffffffff90811660209283015282519183015160408085015190517f584f6b600000000000000000000000000000000000000000000000000000000081529495507f00000000000000000000000000000000000000000000000000000000000000009092169363584f6b6093610a3993909291600401610af3565b600060405180830381600087803b158015610a5357600080fd5b505af1158015610a67573d6000803e3d6000fd5b50505050508060010190506108a1565b506040518281527f01a805f459381af632ecab72ec192c3f9a4c72d26be089026ffd6636d82de98890602001610381565b6001828154811061039d57600080fd5b600060208284031215610aca57600080fd5b5035919050565b60008060408385031215610ae457600080fd5b50508035926020909101359150565b600073ffffffffffffffffffffffffffffffffffffffff8086168352602060606020850152855180606086015260005b81811015610b3f57878101830151868201608001528201610b23565b5060006080828701015260807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011686010193505050808416604084015250949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715610bdb57610bdb610b89565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610c2857610c28610b89565b604052919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610c5457600080fd5b919050565b60006020808385031215610c6c57600080fd5b823567ffffffffffffffff80821115610c8457600080fd5b818501915085601f830112610c9857600080fd5b813581811115610caa57610caa610b89565b8060051b610cb9858201610be1565b9182528381018501918581019089841115610cd357600080fd5b86860192505b83831015610dd457823585811115610cf057600080fd5b86017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06060828d0382011215610d265760008081fd5b610d2e610bb8565b610d398a8401610c30565b815260408084013589811115610d4f5760008081fd5b8401603f81018f13610d615760008081fd5b8b8101358a811115610d7557610d75610b89565b610d858d86601f84011601610be1565b94508085528f83828401011115610d9c5760008081fd5b808383018e87013760008d82870101525050828b830152610dbf60608501610c30565b90820152845250509186019190860190610cd9565b9998505050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600181811c90821680610e2457607f821691505b602082108103610e5d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f821115610eaf576000816000526020600020601f850160051c81016020861015610e8c5750805b601f850160051c820191505b81811015610eab57828155600101610e98565b5050505b505050565b815167ffffffffffffffff811115610ece57610ece610b89565b610ee281610edc8454610e10565b84610e63565b602080601f831160018114610f355760008415610eff5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610eab565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015610f8257888601518255948401946001909101908401610f63565b5085821015610fbe57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b0190555056fea264697066735822122090d4936e163063dfe747da5bf04cc06002b17436a13e78a30b2797e6219ebb2264736f6c63430008190033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x10C7 CODESIZE SUB DUP1 PUSH2 0x10C7 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH1 0x2C SWAP2 PUSH1 0x6C JUMP JUMPDEST PUSH1 0x33 DUP2 PUSH1 0x43 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x80 MSTORE PUSH1 0x9A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x69 JUMPI PUSH1 0x40 MLOAD PUSH4 0x42BCDF7F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH1 0x7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH1 0x93 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x1004 PUSH2 0xC3 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x100 ADD MSTORE DUP2 DUP2 PUSH2 0x2DE ADD MSTORE PUSH2 0xA01 ADD MSTORE PUSH2 0x1004 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x7D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9D6C76B8 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x9D6C76B8 EQ PUSH2 0xD5 JUMPI DUP1 PUSH4 0xDE46A235 EQ PUSH2 0xE8 JUMPI DUP1 PUSH4 0xF9B80DA1 EQ PUSH2 0xFB JUMPI DUP1 PUSH4 0xFF1575E1 EQ PUSH2 0x147 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x22473D8C EQ PUSH2 0x82 JUMPI DUP1 PUSH4 0x514AAB87 EQ PUSH2 0x97 JUMPI DUP1 PUSH4 0x5666A5EA EQ PUSH2 0xC2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x95 PUSH2 0x90 CALLDATASIZE PUSH1 0x4 PUSH2 0xAB8 JUMP JUMPDEST PUSH2 0x15A JUMP JUMPDEST STOP JUMPDEST PUSH2 0xAA PUSH2 0xA5 CALLDATASIZE PUSH1 0x4 PUSH2 0xAD1 JUMP JUMPDEST PUSH2 0x38D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB9 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xAF3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x95 PUSH2 0xD0 CALLDATASIZE PUSH1 0x4 PUSH2 0xC59 JUMP JUMPDEST PUSH2 0x492 JUMP JUMPDEST PUSH2 0x95 PUSH2 0xE3 CALLDATASIZE PUSH1 0x4 PUSH2 0xC59 JUMP JUMPDEST PUSH2 0x689 JUMP JUMPDEST PUSH2 0x95 PUSH2 0xF6 CALLDATASIZE PUSH1 0x4 PUSH2 0xAB8 JUMP JUMPDEST PUSH2 0x87F JUMP JUMPDEST PUSH2 0x122 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xB9 JUMP JUMPDEST PUSH2 0xAA PUSH2 0x155 CALLDATASIZE PUSH1 0x4 PUSH2 0xAD1 JUMP JUMPDEST PUSH2 0xAA8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x16F JUMPI PUSH2 0x16F PUSH2 0xDE1 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 KECCAK256 ADD SLOAD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x354 JUMPI PUSH1 0x0 PUSH1 0x1 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x19A JUMPI PUSH2 0x19A PUSH2 0xDE1 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1B5 JUMPI PUSH2 0x1B5 PUSH2 0xDE1 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x3 SWAP1 SWAP3 MUL ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 MSTORE PUSH1 0x1 DUP2 ADD DUP1 SLOAD SWAP3 SWAP4 SWAP2 SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH2 0x202 SWAP1 PUSH2 0xE10 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x22E SWAP1 PUSH2 0xE10 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x27B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x250 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x27B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x25E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x2 SWAP2 SWAP1 SWAP2 ADD SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND PUSH1 0x20 SWAP3 DUP4 ADD MSTORE DUP3 MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x40 DUP1 DUP6 ADD MLOAD SWAP1 MLOAD PUSH32 0x545F7A3200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP5 SWAP6 POP PUSH32 0x0 SWAP1 SWAP3 AND SWAP4 PUSH4 0x545F7A32 SWAP4 PUSH2 0x316 SWAP4 SWAP1 SWAP3 SWAP2 PUSH1 0x4 ADD PUSH2 0xAF3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x330 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x344 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x17D JUMP JUMPDEST POP PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH32 0x1382323D6618527D8B03DAA05DB815F0490966E8B80679FE5AD3D868F84E1A71 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x39D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x3B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x3 SWAP1 SWAP2 MUL ADD DUP1 SLOAD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP5 POP SWAP2 SWAP3 POP PUSH2 0x3F3 SWAP1 PUSH2 0xE10 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x41F SWAP1 PUSH2 0xE10 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x46C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x441 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x46C JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x44F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP PUSH1 0x2 SWAP1 SWAP4 ADD SLOAD SWAP2 SWAP3 POP POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x4CD JUMPI PUSH1 0x40 MLOAD PUSH32 0x4494013C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD DUP1 DUP3 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE SWAP1 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x658 JUMPI PUSH1 0x1 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x4F9 JUMPI PUSH2 0x4F9 PUSH2 0xDE1 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x520 JUMPI PUSH2 0x520 PUSH2 0xDE1 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x559 JUMPI PUSH2 0x559 PUSH2 0xDE1 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x57C JUMPI PUSH2 0x57C PUSH2 0xDE1 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x40 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND SWAP1 SWAP3 MSTORE DUP4 SLOAD PUSH1 0x1 DUP1 DUP3 ADD DUP7 SSTORE PUSH1 0x0 SWAP6 DUP7 MSTORE SWAP5 DUP3 SWAP1 KECCAK256 DUP5 MLOAD PUSH1 0x3 SWAP1 SWAP3 MUL ADD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND SWAP2 SWAP1 SWAP4 AND OR DUP3 SSTORE DUP3 ADD MLOAD SWAP2 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 ADD SWAP1 PUSH2 0x601 SWAP1 DUP3 PUSH2 0xEB4 JUMP JUMPDEST POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD MLOAD PUSH1 0x2 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x1 ADD PUSH2 0x4DD JUMP JUMPDEST POP PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0x75922591BF2CEC980645DC4A32BB7D5E8DA9A15FDA86DACF06F8402CECD1478F SWAP1 PUSH1 0x20 ADD PUSH2 0x381 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x6C4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x4494013C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE DUP2 DUP1 MSTORE SWAP1 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x84E JUMPI PUSH1 0x0 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x6EF JUMPI PUSH2 0x6EF PUSH2 0xDE1 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x716 JUMPI PUSH2 0x716 PUSH2 0xDE1 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x74F JUMPI PUSH2 0x74F PUSH2 0xDE1 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x772 JUMPI PUSH2 0x772 PUSH2 0xDE1 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x40 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND SWAP1 SWAP3 MSTORE DUP4 SLOAD PUSH1 0x1 DUP1 DUP3 ADD DUP7 SSTORE PUSH1 0x0 SWAP6 DUP7 MSTORE SWAP5 DUP3 SWAP1 KECCAK256 DUP5 MLOAD PUSH1 0x3 SWAP1 SWAP3 MUL ADD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND SWAP2 SWAP1 SWAP4 AND OR DUP3 SSTORE DUP3 ADD MLOAD SWAP2 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 ADD SWAP1 PUSH2 0x7F7 SWAP1 DUP3 PUSH2 0xEB4 JUMP JUMPDEST POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD MLOAD PUSH1 0x2 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x1 ADD PUSH2 0x6D3 JUMP JUMPDEST POP PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0xF8CA6EA7CC31BE8572501C37EF5E9E8298BE717FB881E0B1CA785AECC4D25E9F SWAP1 PUSH1 0x20 ADD PUSH2 0x381 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x893 JUMPI PUSH2 0x893 PUSH2 0xDE1 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 KECCAK256 ADD SLOAD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xA77 JUMPI PUSH1 0x0 DUP1 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x8BD JUMPI PUSH2 0x8BD PUSH2 0xDE1 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x8D8 JUMPI PUSH2 0x8D8 PUSH2 0xDE1 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x3 SWAP1 SWAP3 MUL ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 MSTORE PUSH1 0x1 DUP2 ADD DUP1 SLOAD SWAP3 SWAP4 SWAP2 SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH2 0x925 SWAP1 PUSH2 0xE10 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x951 SWAP1 PUSH2 0xE10 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x99E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x973 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x99E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x981 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x2 SWAP2 SWAP1 SWAP2 ADD SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND PUSH1 0x20 SWAP3 DUP4 ADD MSTORE DUP3 MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x40 DUP1 DUP6 ADD MLOAD SWAP1 MLOAD PUSH32 0x584F6B6000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP5 SWAP6 POP PUSH32 0x0 SWAP1 SWAP3 AND SWAP4 PUSH4 0x584F6B60 SWAP4 PUSH2 0xA39 SWAP4 SWAP1 SWAP3 SWAP2 PUSH1 0x4 ADD PUSH2 0xAF3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA53 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA67 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x8A1 JUMP JUMPDEST POP PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH32 0x1A805F459381AF632ECAB72EC192C3F9A4C72D26BE089026FFD6636D82DE988 SWAP1 PUSH1 0x20 ADD PUSH2 0x381 JUMP JUMPDEST PUSH1 0x1 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x39D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xACA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xAE4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP7 AND DUP4 MSTORE PUSH1 0x20 PUSH1 0x60 PUSH1 0x20 DUP6 ADD MSTORE DUP6 MLOAD DUP1 PUSH1 0x60 DUP7 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xB3F JUMPI DUP8 DUP2 ADD DUP4 ADD MLOAD DUP7 DUP3 ADD PUSH1 0x80 ADD MSTORE DUP3 ADD PUSH2 0xB23 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x80 DUP3 DUP8 ADD ADD MSTORE PUSH1 0x80 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 PUSH1 0x1F DUP4 ADD AND DUP7 ADD ADD SWAP4 POP POP POP DUP1 DUP5 AND PUSH1 0x40 DUP5 ADD MSTORE POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x60 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xBDB JUMPI PUSH2 0xBDB PUSH2 0xB89 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xC28 JUMPI PUSH2 0xC28 PUSH2 0xB89 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0xC54 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xC84 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xC98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0xCAA JUMPI PUSH2 0xCAA PUSH2 0xB89 JUMP JUMPDEST DUP1 PUSH1 0x5 SHL PUSH2 0xCB9 DUP6 DUP3 ADD PUSH2 0xBE1 JUMP JUMPDEST SWAP2 DUP3 MSTORE DUP4 DUP2 ADD DUP6 ADD SWAP2 DUP6 DUP2 ADD SWAP1 DUP10 DUP5 GT ISZERO PUSH2 0xCD3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 DUP7 ADD SWAP3 POP JUMPDEST DUP4 DUP4 LT ISZERO PUSH2 0xDD4 JUMPI DUP3 CALLDATALOAD DUP6 DUP2 GT ISZERO PUSH2 0xCF0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 PUSH1 0x60 DUP3 DUP14 SUB DUP3 ADD SLT ISZERO PUSH2 0xD26 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0xD2E PUSH2 0xBB8 JUMP JUMPDEST PUSH2 0xD39 DUP11 DUP5 ADD PUSH2 0xC30 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 ADD CALLDATALOAD DUP10 DUP2 GT ISZERO PUSH2 0xD4F JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST DUP5 ADD PUSH1 0x3F DUP2 ADD DUP16 SGT PUSH2 0xD61 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST DUP12 DUP2 ADD CALLDATALOAD DUP11 DUP2 GT ISZERO PUSH2 0xD75 JUMPI PUSH2 0xD75 PUSH2 0xB89 JUMP JUMPDEST PUSH2 0xD85 DUP14 DUP7 PUSH1 0x1F DUP5 ADD AND ADD PUSH2 0xBE1 JUMP JUMPDEST SWAP5 POP DUP1 DUP6 MSTORE DUP16 DUP4 DUP3 DUP5 ADD ADD GT ISZERO PUSH2 0xD9C JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST DUP1 DUP4 DUP4 ADD DUP15 DUP8 ADD CALLDATACOPY PUSH1 0x0 DUP14 DUP3 DUP8 ADD ADD MSTORE POP POP DUP3 DUP12 DUP4 ADD MSTORE PUSH2 0xDBF PUSH1 0x60 DUP6 ADD PUSH2 0xC30 JUMP JUMPDEST SWAP1 DUP3 ADD MSTORE DUP5 MSTORE POP POP SWAP2 DUP7 ADD SWAP2 SWAP1 DUP7 ADD SWAP1 PUSH2 0xCD9 JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0xE24 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xE5D JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0xEAF JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0xE8C JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xEAB JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0xE98 JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xECE JUMPI PUSH2 0xECE PUSH2 0xB89 JUMP JUMPDEST PUSH2 0xEE2 DUP2 PUSH2 0xEDC DUP5 SLOAD PUSH2 0xE10 JUMP JUMPDEST DUP5 PUSH2 0xE63 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0xF35 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0xEFF JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0xEAB JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0xF82 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0xF63 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0xFBE JUMPI DUP8 DUP6 ADD MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP1 0xD4 SWAP4 PUSH15 0x163063DFE747DA5BF04CC06002B174 CALLDATASIZE LOG1 RETURNDATACOPY PUSH25 0xA30B2797E6219EBB2264736F6C634300081900330000000000 ","sourceMap":"435:4240:71:-:0;;;1966:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2018:35;2047:4;2018:20;:35::i;:::-;-1:-1:-1;;;;;2063:10:71;;;435:4240;;485:136:47;-1:-1:-1;;;;;548:22:47;;544:75;;589:23;;-1:-1:-1;;;589:23:47;;;;;;;;;;;544:75;485:136;:::o;14:323:97:-;117:6;170:2;158:9;149:7;145:23;141:32;138:52;;;186:1;183;176:12;138:52;212:16;;-1:-1:-1;;;;;257:31:97;;247:42;;237:70;;303:1;300;293:12;237:70;326:5;14:323;-1:-1:-1;;;14:323:97:o;:::-;435:4240:71;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@ACM_19949":{"entryPoint":null,"id":19949,"parameterSlots":0,"returnSlots":0},"@addGrantPermissions_20058":{"entryPoint":1673,"id":20058,"parameterSlots":1,"returnSlots":0},"@addRevokePermissions_20121":{"entryPoint":1170,"id":20121,"parameterSlots":1,"returnSlots":0},"@executeGrantPermissions_20169":{"entryPoint":2175,"id":20169,"parameterSlots":1,"returnSlots":0},"@executeRevokePermissions_20217":{"entryPoint":346,"id":20217,"parameterSlots":1,"returnSlots":0},"@grantPermissions_19954":{"entryPoint":909,"id":19954,"parameterSlots":0,"returnSlots":0},"@revokePermissions_19959":{"entryPoint":2728,"id":19959,"parameterSlots":0,"returnSlots":0},"abi_decode_address":{"entryPoint":3120,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_array$_t_struct$_Permission_$19945_memory_ptr_$dyn_memory_ptr":{"entryPoint":3161,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":2744,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256":{"entryPoint":2769,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_address_t_string_memory_ptr_t_address__to_t_address_t_string_memory_ptr_t_address__fromStack_reversed":{"entryPoint":2803,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$13903__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":3041,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_memory_1501":{"entryPoint":3000,"id":null,"parameterSlots":0,"returnSlots":1},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":3683,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":3764,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":3600,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x32":{"entryPoint":3553,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":2953,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:8119:97","nodeType":"YulBlock","src":"0:8119:97","statements":[{"nativeSrc":"6:3:97","nodeType":"YulBlock","src":"6:3:97","statements":[]},{"body":{"nativeSrc":"84:110:97","nodeType":"YulBlock","src":"84:110:97","statements":[{"body":{"nativeSrc":"130:16:97","nodeType":"YulBlock","src":"130:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"139:1:97","nodeType":"YulLiteral","src":"139:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"142:1:97","nodeType":"YulLiteral","src":"142:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"132:6:97","nodeType":"YulIdentifier","src":"132:6:97"},"nativeSrc":"132:12:97","nodeType":"YulFunctionCall","src":"132:12:97"},"nativeSrc":"132:12:97","nodeType":"YulExpressionStatement","src":"132:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"105:7:97","nodeType":"YulIdentifier","src":"105:7:97"},{"name":"headStart","nativeSrc":"114:9:97","nodeType":"YulIdentifier","src":"114:9:97"}],"functionName":{"name":"sub","nativeSrc":"101:3:97","nodeType":"YulIdentifier","src":"101:3:97"},"nativeSrc":"101:23:97","nodeType":"YulFunctionCall","src":"101:23:97"},{"kind":"number","nativeSrc":"126:2:97","nodeType":"YulLiteral","src":"126:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"97:3:97","nodeType":"YulIdentifier","src":"97:3:97"},"nativeSrc":"97:32:97","nodeType":"YulFunctionCall","src":"97:32:97"},"nativeSrc":"94:52:97","nodeType":"YulIf","src":"94:52:97"},{"nativeSrc":"155:33:97","nodeType":"YulAssignment","src":"155:33:97","value":{"arguments":[{"name":"headStart","nativeSrc":"178:9:97","nodeType":"YulIdentifier","src":"178:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"165:12:97","nodeType":"YulIdentifier","src":"165:12:97"},"nativeSrc":"165:23:97","nodeType":"YulFunctionCall","src":"165:23:97"},"variableNames":[{"name":"value0","nativeSrc":"155:6:97","nodeType":"YulIdentifier","src":"155:6:97"}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"14:180:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"50:9:97","nodeType":"YulTypedName","src":"50:9:97","type":""},{"name":"dataEnd","nativeSrc":"61:7:97","nodeType":"YulTypedName","src":"61:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"73:6:97","nodeType":"YulTypedName","src":"73:6:97","type":""}],"src":"14:180:97"},{"body":{"nativeSrc":"286:161:97","nodeType":"YulBlock","src":"286:161:97","statements":[{"body":{"nativeSrc":"332:16:97","nodeType":"YulBlock","src":"332:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"341:1:97","nodeType":"YulLiteral","src":"341:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"344:1:97","nodeType":"YulLiteral","src":"344:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"334:6:97","nodeType":"YulIdentifier","src":"334:6:97"},"nativeSrc":"334:12:97","nodeType":"YulFunctionCall","src":"334:12:97"},"nativeSrc":"334:12:97","nodeType":"YulExpressionStatement","src":"334:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"307:7:97","nodeType":"YulIdentifier","src":"307:7:97"},{"name":"headStart","nativeSrc":"316:9:97","nodeType":"YulIdentifier","src":"316:9:97"}],"functionName":{"name":"sub","nativeSrc":"303:3:97","nodeType":"YulIdentifier","src":"303:3:97"},"nativeSrc":"303:23:97","nodeType":"YulFunctionCall","src":"303:23:97"},{"kind":"number","nativeSrc":"328:2:97","nodeType":"YulLiteral","src":"328:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"299:3:97","nodeType":"YulIdentifier","src":"299:3:97"},"nativeSrc":"299:32:97","nodeType":"YulFunctionCall","src":"299:32:97"},"nativeSrc":"296:52:97","nodeType":"YulIf","src":"296:52:97"},{"nativeSrc":"357:33:97","nodeType":"YulAssignment","src":"357:33:97","value":{"arguments":[{"name":"headStart","nativeSrc":"380:9:97","nodeType":"YulIdentifier","src":"380:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"367:12:97","nodeType":"YulIdentifier","src":"367:12:97"},"nativeSrc":"367:23:97","nodeType":"YulFunctionCall","src":"367:23:97"},"variableNames":[{"name":"value0","nativeSrc":"357:6:97","nodeType":"YulIdentifier","src":"357:6:97"}]},{"nativeSrc":"399:42:97","nodeType":"YulAssignment","src":"399:42:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"426:9:97","nodeType":"YulIdentifier","src":"426:9:97"},{"kind":"number","nativeSrc":"437:2:97","nodeType":"YulLiteral","src":"437:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"422:3:97","nodeType":"YulIdentifier","src":"422:3:97"},"nativeSrc":"422:18:97","nodeType":"YulFunctionCall","src":"422:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"409:12:97","nodeType":"YulIdentifier","src":"409:12:97"},"nativeSrc":"409:32:97","nodeType":"YulFunctionCall","src":"409:32:97"},"variableNames":[{"name":"value1","nativeSrc":"399:6:97","nodeType":"YulIdentifier","src":"399:6:97"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nativeSrc":"199:248:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"244:9:97","nodeType":"YulTypedName","src":"244:9:97","type":""},{"name":"dataEnd","nativeSrc":"255:7:97","nodeType":"YulTypedName","src":"255:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"267:6:97","nodeType":"YulTypedName","src":"267:6:97","type":""},{"name":"value1","nativeSrc":"275:6:97","nodeType":"YulTypedName","src":"275:6:97","type":""}],"src":"199:248:97"},{"body":{"nativeSrc":"629:654:97","nodeType":"YulBlock","src":"629:654:97","statements":[{"nativeSrc":"639:52:97","nodeType":"YulVariableDeclaration","src":"639:52:97","value":{"kind":"number","nativeSrc":"649:42:97","nodeType":"YulLiteral","src":"649:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"643:2:97","nodeType":"YulTypedName","src":"643:2:97","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"707:9:97","nodeType":"YulIdentifier","src":"707:9:97"},{"arguments":[{"name":"value0","nativeSrc":"722:6:97","nodeType":"YulIdentifier","src":"722:6:97"},{"name":"_1","nativeSrc":"730:2:97","nodeType":"YulIdentifier","src":"730:2:97"}],"functionName":{"name":"and","nativeSrc":"718:3:97","nodeType":"YulIdentifier","src":"718:3:97"},"nativeSrc":"718:15:97","nodeType":"YulFunctionCall","src":"718:15:97"}],"functionName":{"name":"mstore","nativeSrc":"700:6:97","nodeType":"YulIdentifier","src":"700:6:97"},"nativeSrc":"700:34:97","nodeType":"YulFunctionCall","src":"700:34:97"},"nativeSrc":"700:34:97","nodeType":"YulExpressionStatement","src":"700:34:97"},{"nativeSrc":"743:12:97","nodeType":"YulVariableDeclaration","src":"743:12:97","value":{"kind":"number","nativeSrc":"753:2:97","nodeType":"YulLiteral","src":"753:2:97","type":"","value":"32"},"variables":[{"name":"_2","nativeSrc":"747:2:97","nodeType":"YulTypedName","src":"747:2:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"775:9:97","nodeType":"YulIdentifier","src":"775:9:97"},{"kind":"number","nativeSrc":"786:2:97","nodeType":"YulLiteral","src":"786:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"771:3:97","nodeType":"YulIdentifier","src":"771:3:97"},"nativeSrc":"771:18:97","nodeType":"YulFunctionCall","src":"771:18:97"},{"kind":"number","nativeSrc":"791:2:97","nodeType":"YulLiteral","src":"791:2:97","type":"","value":"96"}],"functionName":{"name":"mstore","nativeSrc":"764:6:97","nodeType":"YulIdentifier","src":"764:6:97"},"nativeSrc":"764:30:97","nodeType":"YulFunctionCall","src":"764:30:97"},"nativeSrc":"764:30:97","nodeType":"YulExpressionStatement","src":"764:30:97"},{"nativeSrc":"803:27:97","nodeType":"YulVariableDeclaration","src":"803:27:97","value":{"arguments":[{"name":"value1","nativeSrc":"823:6:97","nodeType":"YulIdentifier","src":"823:6:97"}],"functionName":{"name":"mload","nativeSrc":"817:5:97","nodeType":"YulIdentifier","src":"817:5:97"},"nativeSrc":"817:13:97","nodeType":"YulFunctionCall","src":"817:13:97"},"variables":[{"name":"length","nativeSrc":"807:6:97","nodeType":"YulTypedName","src":"807:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"850:9:97","nodeType":"YulIdentifier","src":"850:9:97"},{"kind":"number","nativeSrc":"861:2:97","nodeType":"YulLiteral","src":"861:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"846:3:97","nodeType":"YulIdentifier","src":"846:3:97"},"nativeSrc":"846:18:97","nodeType":"YulFunctionCall","src":"846:18:97"},{"name":"length","nativeSrc":"866:6:97","nodeType":"YulIdentifier","src":"866:6:97"}],"functionName":{"name":"mstore","nativeSrc":"839:6:97","nodeType":"YulIdentifier","src":"839:6:97"},"nativeSrc":"839:34:97","nodeType":"YulFunctionCall","src":"839:34:97"},"nativeSrc":"839:34:97","nodeType":"YulExpressionStatement","src":"839:34:97"},{"nativeSrc":"882:10:97","nodeType":"YulVariableDeclaration","src":"882:10:97","value":{"kind":"number","nativeSrc":"891:1:97","nodeType":"YulLiteral","src":"891:1:97","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"886:1:97","nodeType":"YulTypedName","src":"886:1:97","type":""}]},{"body":{"nativeSrc":"951:91:97","nodeType":"YulBlock","src":"951:91:97","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"980:9:97","nodeType":"YulIdentifier","src":"980:9:97"},{"name":"i","nativeSrc":"991:1:97","nodeType":"YulIdentifier","src":"991:1:97"}],"functionName":{"name":"add","nativeSrc":"976:3:97","nodeType":"YulIdentifier","src":"976:3:97"},"nativeSrc":"976:17:97","nodeType":"YulFunctionCall","src":"976:17:97"},{"kind":"number","nativeSrc":"995:3:97","nodeType":"YulLiteral","src":"995:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"972:3:97","nodeType":"YulIdentifier","src":"972:3:97"},"nativeSrc":"972:27:97","nodeType":"YulFunctionCall","src":"972:27:97"},{"arguments":[{"arguments":[{"arguments":[{"name":"value1","nativeSrc":"1015:6:97","nodeType":"YulIdentifier","src":"1015:6:97"},{"name":"i","nativeSrc":"1023:1:97","nodeType":"YulIdentifier","src":"1023:1:97"}],"functionName":{"name":"add","nativeSrc":"1011:3:97","nodeType":"YulIdentifier","src":"1011:3:97"},"nativeSrc":"1011:14:97","nodeType":"YulFunctionCall","src":"1011:14:97"},{"name":"_2","nativeSrc":"1027:2:97","nodeType":"YulIdentifier","src":"1027:2:97"}],"functionName":{"name":"add","nativeSrc":"1007:3:97","nodeType":"YulIdentifier","src":"1007:3:97"},"nativeSrc":"1007:23:97","nodeType":"YulFunctionCall","src":"1007:23:97"}],"functionName":{"name":"mload","nativeSrc":"1001:5:97","nodeType":"YulIdentifier","src":"1001:5:97"},"nativeSrc":"1001:30:97","nodeType":"YulFunctionCall","src":"1001:30:97"}],"functionName":{"name":"mstore","nativeSrc":"965:6:97","nodeType":"YulIdentifier","src":"965:6:97"},"nativeSrc":"965:67:97","nodeType":"YulFunctionCall","src":"965:67:97"},"nativeSrc":"965:67:97","nodeType":"YulExpressionStatement","src":"965:67:97"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"912:1:97","nodeType":"YulIdentifier","src":"912:1:97"},{"name":"length","nativeSrc":"915:6:97","nodeType":"YulIdentifier","src":"915:6:97"}],"functionName":{"name":"lt","nativeSrc":"909:2:97","nodeType":"YulIdentifier","src":"909:2:97"},"nativeSrc":"909:13:97","nodeType":"YulFunctionCall","src":"909:13:97"},"nativeSrc":"901:141:97","nodeType":"YulForLoop","post":{"nativeSrc":"923:19:97","nodeType":"YulBlock","src":"923:19:97","statements":[{"nativeSrc":"925:15:97","nodeType":"YulAssignment","src":"925:15:97","value":{"arguments":[{"name":"i","nativeSrc":"934:1:97","nodeType":"YulIdentifier","src":"934:1:97"},{"name":"_2","nativeSrc":"937:2:97","nodeType":"YulIdentifier","src":"937:2:97"}],"functionName":{"name":"add","nativeSrc":"930:3:97","nodeType":"YulIdentifier","src":"930:3:97"},"nativeSrc":"930:10:97","nodeType":"YulFunctionCall","src":"930:10:97"},"variableNames":[{"name":"i","nativeSrc":"925:1:97","nodeType":"YulIdentifier","src":"925:1:97"}]}]},"pre":{"nativeSrc":"905:3:97","nodeType":"YulBlock","src":"905:3:97","statements":[]},"src":"901:141:97"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1066:9:97","nodeType":"YulIdentifier","src":"1066:9:97"},{"name":"length","nativeSrc":"1077:6:97","nodeType":"YulIdentifier","src":"1077:6:97"}],"functionName":{"name":"add","nativeSrc":"1062:3:97","nodeType":"YulIdentifier","src":"1062:3:97"},"nativeSrc":"1062:22:97","nodeType":"YulFunctionCall","src":"1062:22:97"},{"kind":"number","nativeSrc":"1086:3:97","nodeType":"YulLiteral","src":"1086:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"1058:3:97","nodeType":"YulIdentifier","src":"1058:3:97"},"nativeSrc":"1058:32:97","nodeType":"YulFunctionCall","src":"1058:32:97"},{"kind":"number","nativeSrc":"1092:1:97","nodeType":"YulLiteral","src":"1092:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"1051:6:97","nodeType":"YulIdentifier","src":"1051:6:97"},"nativeSrc":"1051:43:97","nodeType":"YulFunctionCall","src":"1051:43:97"},"nativeSrc":"1051:43:97","nodeType":"YulExpressionStatement","src":"1051:43:97"},{"nativeSrc":"1103:122:97","nodeType":"YulAssignment","src":"1103:122:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1119:9:97","nodeType":"YulIdentifier","src":"1119:9:97"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"1138:6:97","nodeType":"YulIdentifier","src":"1138:6:97"},{"kind":"number","nativeSrc":"1146:2:97","nodeType":"YulLiteral","src":"1146:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"1134:3:97","nodeType":"YulIdentifier","src":"1134:3:97"},"nativeSrc":"1134:15:97","nodeType":"YulFunctionCall","src":"1134:15:97"},{"kind":"number","nativeSrc":"1151:66:97","nodeType":"YulLiteral","src":"1151:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"1130:3:97","nodeType":"YulIdentifier","src":"1130:3:97"},"nativeSrc":"1130:88:97","nodeType":"YulFunctionCall","src":"1130:88:97"}],"functionName":{"name":"add","nativeSrc":"1115:3:97","nodeType":"YulIdentifier","src":"1115:3:97"},"nativeSrc":"1115:104:97","nodeType":"YulFunctionCall","src":"1115:104:97"},{"kind":"number","nativeSrc":"1221:3:97","nodeType":"YulLiteral","src":"1221:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"1111:3:97","nodeType":"YulIdentifier","src":"1111:3:97"},"nativeSrc":"1111:114:97","nodeType":"YulFunctionCall","src":"1111:114:97"},"variableNames":[{"name":"tail","nativeSrc":"1103:4:97","nodeType":"YulIdentifier","src":"1103:4:97"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1245:9:97","nodeType":"YulIdentifier","src":"1245:9:97"},{"kind":"number","nativeSrc":"1256:2:97","nodeType":"YulLiteral","src":"1256:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1241:3:97","nodeType":"YulIdentifier","src":"1241:3:97"},"nativeSrc":"1241:18:97","nodeType":"YulFunctionCall","src":"1241:18:97"},{"arguments":[{"name":"value2","nativeSrc":"1265:6:97","nodeType":"YulIdentifier","src":"1265:6:97"},{"name":"_1","nativeSrc":"1273:2:97","nodeType":"YulIdentifier","src":"1273:2:97"}],"functionName":{"name":"and","nativeSrc":"1261:3:97","nodeType":"YulIdentifier","src":"1261:3:97"},"nativeSrc":"1261:15:97","nodeType":"YulFunctionCall","src":"1261:15:97"}],"functionName":{"name":"mstore","nativeSrc":"1234:6:97","nodeType":"YulIdentifier","src":"1234:6:97"},"nativeSrc":"1234:43:97","nodeType":"YulFunctionCall","src":"1234:43:97"},"nativeSrc":"1234:43:97","nodeType":"YulExpressionStatement","src":"1234:43:97"}]},"name":"abi_encode_tuple_t_address_t_string_memory_ptr_t_address__to_t_address_t_string_memory_ptr_t_address__fromStack_reversed","nativeSrc":"452:831:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"582:9:97","nodeType":"YulTypedName","src":"582:9:97","type":""},{"name":"value2","nativeSrc":"593:6:97","nodeType":"YulTypedName","src":"593:6:97","type":""},{"name":"value1","nativeSrc":"601:6:97","nodeType":"YulTypedName","src":"601:6:97","type":""},{"name":"value0","nativeSrc":"609:6:97","nodeType":"YulTypedName","src":"609:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"620:4:97","nodeType":"YulTypedName","src":"620:4:97","type":""}],"src":"452:831:97"},{"body":{"nativeSrc":"1320:152:97","nodeType":"YulBlock","src":"1320:152:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1337:1:97","nodeType":"YulLiteral","src":"1337:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1340:77:97","nodeType":"YulLiteral","src":"1340:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"1330:6:97","nodeType":"YulIdentifier","src":"1330:6:97"},"nativeSrc":"1330:88:97","nodeType":"YulFunctionCall","src":"1330:88:97"},"nativeSrc":"1330:88:97","nodeType":"YulExpressionStatement","src":"1330:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1434:1:97","nodeType":"YulLiteral","src":"1434:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"1437:4:97","nodeType":"YulLiteral","src":"1437:4:97","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"1427:6:97","nodeType":"YulIdentifier","src":"1427:6:97"},"nativeSrc":"1427:15:97","nodeType":"YulFunctionCall","src":"1427:15:97"},"nativeSrc":"1427:15:97","nodeType":"YulExpressionStatement","src":"1427:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1458:1:97","nodeType":"YulLiteral","src":"1458:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1461:4:97","nodeType":"YulLiteral","src":"1461:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1451:6:97","nodeType":"YulIdentifier","src":"1451:6:97"},"nativeSrc":"1451:15:97","nodeType":"YulFunctionCall","src":"1451:15:97"},"nativeSrc":"1451:15:97","nodeType":"YulExpressionStatement","src":"1451:15:97"}]},"name":"panic_error_0x41","nativeSrc":"1288:184:97","nodeType":"YulFunctionDefinition","src":"1288:184:97"},{"body":{"nativeSrc":"1523:207:97","nodeType":"YulBlock","src":"1523:207:97","statements":[{"nativeSrc":"1533:19:97","nodeType":"YulAssignment","src":"1533:19:97","value":{"arguments":[{"kind":"number","nativeSrc":"1549:2:97","nodeType":"YulLiteral","src":"1549:2:97","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1543:5:97","nodeType":"YulIdentifier","src":"1543:5:97"},"nativeSrc":"1543:9:97","nodeType":"YulFunctionCall","src":"1543:9:97"},"variableNames":[{"name":"memPtr","nativeSrc":"1533:6:97","nodeType":"YulIdentifier","src":"1533:6:97"}]},{"nativeSrc":"1561:35:97","nodeType":"YulVariableDeclaration","src":"1561:35:97","value":{"arguments":[{"name":"memPtr","nativeSrc":"1583:6:97","nodeType":"YulIdentifier","src":"1583:6:97"},{"kind":"number","nativeSrc":"1591:4:97","nodeType":"YulLiteral","src":"1591:4:97","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"1579:3:97","nodeType":"YulIdentifier","src":"1579:3:97"},"nativeSrc":"1579:17:97","nodeType":"YulFunctionCall","src":"1579:17:97"},"variables":[{"name":"newFreePtr","nativeSrc":"1565:10:97","nodeType":"YulTypedName","src":"1565:10:97","type":""}]},{"body":{"nativeSrc":"1671:22:97","nodeType":"YulBlock","src":"1671:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1673:16:97","nodeType":"YulIdentifier","src":"1673:16:97"},"nativeSrc":"1673:18:97","nodeType":"YulFunctionCall","src":"1673:18:97"},"nativeSrc":"1673:18:97","nodeType":"YulExpressionStatement","src":"1673:18:97"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1614:10:97","nodeType":"YulIdentifier","src":"1614:10:97"},{"kind":"number","nativeSrc":"1626:18:97","nodeType":"YulLiteral","src":"1626:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1611:2:97","nodeType":"YulIdentifier","src":"1611:2:97"},"nativeSrc":"1611:34:97","nodeType":"YulFunctionCall","src":"1611:34:97"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1650:10:97","nodeType":"YulIdentifier","src":"1650:10:97"},{"name":"memPtr","nativeSrc":"1662:6:97","nodeType":"YulIdentifier","src":"1662:6:97"}],"functionName":{"name":"lt","nativeSrc":"1647:2:97","nodeType":"YulIdentifier","src":"1647:2:97"},"nativeSrc":"1647:22:97","nodeType":"YulFunctionCall","src":"1647:22:97"}],"functionName":{"name":"or","nativeSrc":"1608:2:97","nodeType":"YulIdentifier","src":"1608:2:97"},"nativeSrc":"1608:62:97","nodeType":"YulFunctionCall","src":"1608:62:97"},"nativeSrc":"1605:88:97","nodeType":"YulIf","src":"1605:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1709:2:97","nodeType":"YulLiteral","src":"1709:2:97","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1713:10:97","nodeType":"YulIdentifier","src":"1713:10:97"}],"functionName":{"name":"mstore","nativeSrc":"1702:6:97","nodeType":"YulIdentifier","src":"1702:6:97"},"nativeSrc":"1702:22:97","nodeType":"YulFunctionCall","src":"1702:22:97"},"nativeSrc":"1702:22:97","nodeType":"YulExpressionStatement","src":"1702:22:97"}]},"name":"allocate_memory_1501","nativeSrc":"1477:253:97","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"1512:6:97","nodeType":"YulTypedName","src":"1512:6:97","type":""}],"src":"1477:253:97"},{"body":{"nativeSrc":"1780:289:97","nodeType":"YulBlock","src":"1780:289:97","statements":[{"nativeSrc":"1790:19:97","nodeType":"YulAssignment","src":"1790:19:97","value":{"arguments":[{"kind":"number","nativeSrc":"1806:2:97","nodeType":"YulLiteral","src":"1806:2:97","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1800:5:97","nodeType":"YulIdentifier","src":"1800:5:97"},"nativeSrc":"1800:9:97","nodeType":"YulFunctionCall","src":"1800:9:97"},"variableNames":[{"name":"memPtr","nativeSrc":"1790:6:97","nodeType":"YulIdentifier","src":"1790:6:97"}]},{"nativeSrc":"1818:117:97","nodeType":"YulVariableDeclaration","src":"1818:117:97","value":{"arguments":[{"name":"memPtr","nativeSrc":"1840:6:97","nodeType":"YulIdentifier","src":"1840:6:97"},{"arguments":[{"arguments":[{"name":"size","nativeSrc":"1856:4:97","nodeType":"YulIdentifier","src":"1856:4:97"},{"kind":"number","nativeSrc":"1862:2:97","nodeType":"YulLiteral","src":"1862:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"1852:3:97","nodeType":"YulIdentifier","src":"1852:3:97"},"nativeSrc":"1852:13:97","nodeType":"YulFunctionCall","src":"1852:13:97"},{"kind":"number","nativeSrc":"1867:66:97","nodeType":"YulLiteral","src":"1867:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"1848:3:97","nodeType":"YulIdentifier","src":"1848:3:97"},"nativeSrc":"1848:86:97","nodeType":"YulFunctionCall","src":"1848:86:97"}],"functionName":{"name":"add","nativeSrc":"1836:3:97","nodeType":"YulIdentifier","src":"1836:3:97"},"nativeSrc":"1836:99:97","nodeType":"YulFunctionCall","src":"1836:99:97"},"variables":[{"name":"newFreePtr","nativeSrc":"1822:10:97","nodeType":"YulTypedName","src":"1822:10:97","type":""}]},{"body":{"nativeSrc":"2010:22:97","nodeType":"YulBlock","src":"2010:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2012:16:97","nodeType":"YulIdentifier","src":"2012:16:97"},"nativeSrc":"2012:18:97","nodeType":"YulFunctionCall","src":"2012:18:97"},"nativeSrc":"2012:18:97","nodeType":"YulExpressionStatement","src":"2012:18:97"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1953:10:97","nodeType":"YulIdentifier","src":"1953:10:97"},{"kind":"number","nativeSrc":"1965:18:97","nodeType":"YulLiteral","src":"1965:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1950:2:97","nodeType":"YulIdentifier","src":"1950:2:97"},"nativeSrc":"1950:34:97","nodeType":"YulFunctionCall","src":"1950:34:97"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1989:10:97","nodeType":"YulIdentifier","src":"1989:10:97"},{"name":"memPtr","nativeSrc":"2001:6:97","nodeType":"YulIdentifier","src":"2001:6:97"}],"functionName":{"name":"lt","nativeSrc":"1986:2:97","nodeType":"YulIdentifier","src":"1986:2:97"},"nativeSrc":"1986:22:97","nodeType":"YulFunctionCall","src":"1986:22:97"}],"functionName":{"name":"or","nativeSrc":"1947:2:97","nodeType":"YulIdentifier","src":"1947:2:97"},"nativeSrc":"1947:62:97","nodeType":"YulFunctionCall","src":"1947:62:97"},"nativeSrc":"1944:88:97","nodeType":"YulIf","src":"1944:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2048:2:97","nodeType":"YulLiteral","src":"2048:2:97","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"2052:10:97","nodeType":"YulIdentifier","src":"2052:10:97"}],"functionName":{"name":"mstore","nativeSrc":"2041:6:97","nodeType":"YulIdentifier","src":"2041:6:97"},"nativeSrc":"2041:22:97","nodeType":"YulFunctionCall","src":"2041:22:97"},"nativeSrc":"2041:22:97","nodeType":"YulExpressionStatement","src":"2041:22:97"}]},"name":"allocate_memory","nativeSrc":"1735:334:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"1760:4:97","nodeType":"YulTypedName","src":"1760:4:97","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"1769:6:97","nodeType":"YulTypedName","src":"1769:6:97","type":""}],"src":"1735:334:97"},{"body":{"nativeSrc":"2123:147:97","nodeType":"YulBlock","src":"2123:147:97","statements":[{"nativeSrc":"2133:29:97","nodeType":"YulAssignment","src":"2133:29:97","value":{"arguments":[{"name":"offset","nativeSrc":"2155:6:97","nodeType":"YulIdentifier","src":"2155:6:97"}],"functionName":{"name":"calldataload","nativeSrc":"2142:12:97","nodeType":"YulIdentifier","src":"2142:12:97"},"nativeSrc":"2142:20:97","nodeType":"YulFunctionCall","src":"2142:20:97"},"variableNames":[{"name":"value","nativeSrc":"2133:5:97","nodeType":"YulIdentifier","src":"2133:5:97"}]},{"body":{"nativeSrc":"2248:16:97","nodeType":"YulBlock","src":"2248:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2257:1:97","nodeType":"YulLiteral","src":"2257:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"2260:1:97","nodeType":"YulLiteral","src":"2260:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2250:6:97","nodeType":"YulIdentifier","src":"2250:6:97"},"nativeSrc":"2250:12:97","nodeType":"YulFunctionCall","src":"2250:12:97"},"nativeSrc":"2250:12:97","nodeType":"YulExpressionStatement","src":"2250:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2184:5:97","nodeType":"YulIdentifier","src":"2184:5:97"},{"arguments":[{"name":"value","nativeSrc":"2195:5:97","nodeType":"YulIdentifier","src":"2195:5:97"},{"kind":"number","nativeSrc":"2202:42:97","nodeType":"YulLiteral","src":"2202:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"2191:3:97","nodeType":"YulIdentifier","src":"2191:3:97"},"nativeSrc":"2191:54:97","nodeType":"YulFunctionCall","src":"2191:54:97"}],"functionName":{"name":"eq","nativeSrc":"2181:2:97","nodeType":"YulIdentifier","src":"2181:2:97"},"nativeSrc":"2181:65:97","nodeType":"YulFunctionCall","src":"2181:65:97"}],"functionName":{"name":"iszero","nativeSrc":"2174:6:97","nodeType":"YulIdentifier","src":"2174:6:97"},"nativeSrc":"2174:73:97","nodeType":"YulFunctionCall","src":"2174:73:97"},"nativeSrc":"2171:93:97","nodeType":"YulIf","src":"2171:93:97"}]},"name":"abi_decode_address","nativeSrc":"2074:196:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2102:6:97","nodeType":"YulTypedName","src":"2102:6:97","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2113:5:97","nodeType":"YulTypedName","src":"2113:5:97","type":""}],"src":"2074:196:97"},{"body":{"nativeSrc":"2399:2267:97","nodeType":"YulBlock","src":"2399:2267:97","statements":[{"nativeSrc":"2409:12:97","nodeType":"YulVariableDeclaration","src":"2409:12:97","value":{"kind":"number","nativeSrc":"2419:2:97","nodeType":"YulLiteral","src":"2419:2:97","type":"","value":"32"},"variables":[{"name":"_1","nativeSrc":"2413:2:97","nodeType":"YulTypedName","src":"2413:2:97","type":""}]},{"body":{"nativeSrc":"2466:16:97","nodeType":"YulBlock","src":"2466:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2475:1:97","nodeType":"YulLiteral","src":"2475:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"2478:1:97","nodeType":"YulLiteral","src":"2478:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2468:6:97","nodeType":"YulIdentifier","src":"2468:6:97"},"nativeSrc":"2468:12:97","nodeType":"YulFunctionCall","src":"2468:12:97"},"nativeSrc":"2468:12:97","nodeType":"YulExpressionStatement","src":"2468:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2441:7:97","nodeType":"YulIdentifier","src":"2441:7:97"},{"name":"headStart","nativeSrc":"2450:9:97","nodeType":"YulIdentifier","src":"2450:9:97"}],"functionName":{"name":"sub","nativeSrc":"2437:3:97","nodeType":"YulIdentifier","src":"2437:3:97"},"nativeSrc":"2437:23:97","nodeType":"YulFunctionCall","src":"2437:23:97"},{"name":"_1","nativeSrc":"2462:2:97","nodeType":"YulIdentifier","src":"2462:2:97"}],"functionName":{"name":"slt","nativeSrc":"2433:3:97","nodeType":"YulIdentifier","src":"2433:3:97"},"nativeSrc":"2433:32:97","nodeType":"YulFunctionCall","src":"2433:32:97"},"nativeSrc":"2430:52:97","nodeType":"YulIf","src":"2430:52:97"},{"nativeSrc":"2491:37:97","nodeType":"YulVariableDeclaration","src":"2491:37:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2518:9:97","nodeType":"YulIdentifier","src":"2518:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"2505:12:97","nodeType":"YulIdentifier","src":"2505:12:97"},"nativeSrc":"2505:23:97","nodeType":"YulFunctionCall","src":"2505:23:97"},"variables":[{"name":"offset","nativeSrc":"2495:6:97","nodeType":"YulTypedName","src":"2495:6:97","type":""}]},{"nativeSrc":"2537:28:97","nodeType":"YulVariableDeclaration","src":"2537:28:97","value":{"kind":"number","nativeSrc":"2547:18:97","nodeType":"YulLiteral","src":"2547:18:97","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_2","nativeSrc":"2541:2:97","nodeType":"YulTypedName","src":"2541:2:97","type":""}]},{"body":{"nativeSrc":"2592:16:97","nodeType":"YulBlock","src":"2592:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2601:1:97","nodeType":"YulLiteral","src":"2601:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"2604:1:97","nodeType":"YulLiteral","src":"2604:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2594:6:97","nodeType":"YulIdentifier","src":"2594:6:97"},"nativeSrc":"2594:12:97","nodeType":"YulFunctionCall","src":"2594:12:97"},"nativeSrc":"2594:12:97","nodeType":"YulExpressionStatement","src":"2594:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"2580:6:97","nodeType":"YulIdentifier","src":"2580:6:97"},{"name":"_2","nativeSrc":"2588:2:97","nodeType":"YulIdentifier","src":"2588:2:97"}],"functionName":{"name":"gt","nativeSrc":"2577:2:97","nodeType":"YulIdentifier","src":"2577:2:97"},"nativeSrc":"2577:14:97","nodeType":"YulFunctionCall","src":"2577:14:97"},"nativeSrc":"2574:34:97","nodeType":"YulIf","src":"2574:34:97"},{"nativeSrc":"2617:32:97","nodeType":"YulVariableDeclaration","src":"2617:32:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2631:9:97","nodeType":"YulIdentifier","src":"2631:9:97"},{"name":"offset","nativeSrc":"2642:6:97","nodeType":"YulIdentifier","src":"2642:6:97"}],"functionName":{"name":"add","nativeSrc":"2627:3:97","nodeType":"YulIdentifier","src":"2627:3:97"},"nativeSrc":"2627:22:97","nodeType":"YulFunctionCall","src":"2627:22:97"},"variables":[{"name":"_3","nativeSrc":"2621:2:97","nodeType":"YulTypedName","src":"2621:2:97","type":""}]},{"body":{"nativeSrc":"2697:16:97","nodeType":"YulBlock","src":"2697:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2706:1:97","nodeType":"YulLiteral","src":"2706:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"2709:1:97","nodeType":"YulLiteral","src":"2709:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2699:6:97","nodeType":"YulIdentifier","src":"2699:6:97"},"nativeSrc":"2699:12:97","nodeType":"YulFunctionCall","src":"2699:12:97"},"nativeSrc":"2699:12:97","nodeType":"YulExpressionStatement","src":"2699:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nativeSrc":"2676:2:97","nodeType":"YulIdentifier","src":"2676:2:97"},{"kind":"number","nativeSrc":"2680:4:97","nodeType":"YulLiteral","src":"2680:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2672:3:97","nodeType":"YulIdentifier","src":"2672:3:97"},"nativeSrc":"2672:13:97","nodeType":"YulFunctionCall","src":"2672:13:97"},{"name":"dataEnd","nativeSrc":"2687:7:97","nodeType":"YulIdentifier","src":"2687:7:97"}],"functionName":{"name":"slt","nativeSrc":"2668:3:97","nodeType":"YulIdentifier","src":"2668:3:97"},"nativeSrc":"2668:27:97","nodeType":"YulFunctionCall","src":"2668:27:97"}],"functionName":{"name":"iszero","nativeSrc":"2661:6:97","nodeType":"YulIdentifier","src":"2661:6:97"},"nativeSrc":"2661:35:97","nodeType":"YulFunctionCall","src":"2661:35:97"},"nativeSrc":"2658:55:97","nodeType":"YulIf","src":"2658:55:97"},{"nativeSrc":"2722:26:97","nodeType":"YulVariableDeclaration","src":"2722:26:97","value":{"arguments":[{"name":"_3","nativeSrc":"2745:2:97","nodeType":"YulIdentifier","src":"2745:2:97"}],"functionName":{"name":"calldataload","nativeSrc":"2732:12:97","nodeType":"YulIdentifier","src":"2732:12:97"},"nativeSrc":"2732:16:97","nodeType":"YulFunctionCall","src":"2732:16:97"},"variables":[{"name":"_4","nativeSrc":"2726:2:97","nodeType":"YulTypedName","src":"2726:2:97","type":""}]},{"body":{"nativeSrc":"2771:22:97","nodeType":"YulBlock","src":"2771:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2773:16:97","nodeType":"YulIdentifier","src":"2773:16:97"},"nativeSrc":"2773:18:97","nodeType":"YulFunctionCall","src":"2773:18:97"},"nativeSrc":"2773:18:97","nodeType":"YulExpressionStatement","src":"2773:18:97"}]},"condition":{"arguments":[{"name":"_4","nativeSrc":"2763:2:97","nodeType":"YulIdentifier","src":"2763:2:97"},{"name":"_2","nativeSrc":"2767:2:97","nodeType":"YulIdentifier","src":"2767:2:97"}],"functionName":{"name":"gt","nativeSrc":"2760:2:97","nodeType":"YulIdentifier","src":"2760:2:97"},"nativeSrc":"2760:10:97","nodeType":"YulFunctionCall","src":"2760:10:97"},"nativeSrc":"2757:36:97","nodeType":"YulIf","src":"2757:36:97"},{"nativeSrc":"2802:20:97","nodeType":"YulVariableDeclaration","src":"2802:20:97","value":{"arguments":[{"kind":"number","nativeSrc":"2816:1:97","nodeType":"YulLiteral","src":"2816:1:97","type":"","value":"5"},{"name":"_4","nativeSrc":"2819:2:97","nodeType":"YulIdentifier","src":"2819:2:97"}],"functionName":{"name":"shl","nativeSrc":"2812:3:97","nodeType":"YulIdentifier","src":"2812:3:97"},"nativeSrc":"2812:10:97","nodeType":"YulFunctionCall","src":"2812:10:97"},"variables":[{"name":"_5","nativeSrc":"2806:2:97","nodeType":"YulTypedName","src":"2806:2:97","type":""}]},{"nativeSrc":"2831:39:97","nodeType":"YulVariableDeclaration","src":"2831:39:97","value":{"arguments":[{"arguments":[{"name":"_5","nativeSrc":"2862:2:97","nodeType":"YulIdentifier","src":"2862:2:97"},{"name":"_1","nativeSrc":"2866:2:97","nodeType":"YulIdentifier","src":"2866:2:97"}],"functionName":{"name":"add","nativeSrc":"2858:3:97","nodeType":"YulIdentifier","src":"2858:3:97"},"nativeSrc":"2858:11:97","nodeType":"YulFunctionCall","src":"2858:11:97"}],"functionName":{"name":"allocate_memory","nativeSrc":"2842:15:97","nodeType":"YulIdentifier","src":"2842:15:97"},"nativeSrc":"2842:28:97","nodeType":"YulFunctionCall","src":"2842:28:97"},"variables":[{"name":"dst","nativeSrc":"2835:3:97","nodeType":"YulTypedName","src":"2835:3:97","type":""}]},{"nativeSrc":"2879:16:97","nodeType":"YulVariableDeclaration","src":"2879:16:97","value":{"name":"dst","nativeSrc":"2892:3:97","nodeType":"YulIdentifier","src":"2892:3:97"},"variables":[{"name":"dst_1","nativeSrc":"2883:5:97","nodeType":"YulTypedName","src":"2883:5:97","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"2911:3:97","nodeType":"YulIdentifier","src":"2911:3:97"},{"name":"_4","nativeSrc":"2916:2:97","nodeType":"YulIdentifier","src":"2916:2:97"}],"functionName":{"name":"mstore","nativeSrc":"2904:6:97","nodeType":"YulIdentifier","src":"2904:6:97"},"nativeSrc":"2904:15:97","nodeType":"YulFunctionCall","src":"2904:15:97"},"nativeSrc":"2904:15:97","nodeType":"YulExpressionStatement","src":"2904:15:97"},{"nativeSrc":"2928:19:97","nodeType":"YulAssignment","src":"2928:19:97","value":{"arguments":[{"name":"dst","nativeSrc":"2939:3:97","nodeType":"YulIdentifier","src":"2939:3:97"},{"name":"_1","nativeSrc":"2944:2:97","nodeType":"YulIdentifier","src":"2944:2:97"}],"functionName":{"name":"add","nativeSrc":"2935:3:97","nodeType":"YulIdentifier","src":"2935:3:97"},"nativeSrc":"2935:12:97","nodeType":"YulFunctionCall","src":"2935:12:97"},"variableNames":[{"name":"dst","nativeSrc":"2928:3:97","nodeType":"YulIdentifier","src":"2928:3:97"}]},{"nativeSrc":"2956:34:97","nodeType":"YulVariableDeclaration","src":"2956:34:97","value":{"arguments":[{"arguments":[{"name":"_3","nativeSrc":"2978:2:97","nodeType":"YulIdentifier","src":"2978:2:97"},{"name":"_5","nativeSrc":"2982:2:97","nodeType":"YulIdentifier","src":"2982:2:97"}],"functionName":{"name":"add","nativeSrc":"2974:3:97","nodeType":"YulIdentifier","src":"2974:3:97"},"nativeSrc":"2974:11:97","nodeType":"YulFunctionCall","src":"2974:11:97"},{"name":"_1","nativeSrc":"2987:2:97","nodeType":"YulIdentifier","src":"2987:2:97"}],"functionName":{"name":"add","nativeSrc":"2970:3:97","nodeType":"YulIdentifier","src":"2970:3:97"},"nativeSrc":"2970:20:97","nodeType":"YulFunctionCall","src":"2970:20:97"},"variables":[{"name":"srcEnd","nativeSrc":"2960:6:97","nodeType":"YulTypedName","src":"2960:6:97","type":""}]},{"body":{"nativeSrc":"3022:16:97","nodeType":"YulBlock","src":"3022:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3031:1:97","nodeType":"YulLiteral","src":"3031:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"3034:1:97","nodeType":"YulLiteral","src":"3034:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3024:6:97","nodeType":"YulIdentifier","src":"3024:6:97"},"nativeSrc":"3024:12:97","nodeType":"YulFunctionCall","src":"3024:12:97"},"nativeSrc":"3024:12:97","nodeType":"YulExpressionStatement","src":"3024:12:97"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"3005:6:97","nodeType":"YulIdentifier","src":"3005:6:97"},{"name":"dataEnd","nativeSrc":"3013:7:97","nodeType":"YulIdentifier","src":"3013:7:97"}],"functionName":{"name":"gt","nativeSrc":"3002:2:97","nodeType":"YulIdentifier","src":"3002:2:97"},"nativeSrc":"3002:19:97","nodeType":"YulFunctionCall","src":"3002:19:97"},"nativeSrc":"2999:39:97","nodeType":"YulIf","src":"2999:39:97"},{"nativeSrc":"3047:22:97","nodeType":"YulVariableDeclaration","src":"3047:22:97","value":{"arguments":[{"name":"_3","nativeSrc":"3062:2:97","nodeType":"YulIdentifier","src":"3062:2:97"},{"name":"_1","nativeSrc":"3066:2:97","nodeType":"YulIdentifier","src":"3066:2:97"}],"functionName":{"name":"add","nativeSrc":"3058:3:97","nodeType":"YulIdentifier","src":"3058:3:97"},"nativeSrc":"3058:11:97","nodeType":"YulFunctionCall","src":"3058:11:97"},"variables":[{"name":"src","nativeSrc":"3051:3:97","nodeType":"YulTypedName","src":"3051:3:97","type":""}]},{"body":{"nativeSrc":"3134:1502:97","nodeType":"YulBlock","src":"3134:1502:97","statements":[{"nativeSrc":"3148:36:97","nodeType":"YulVariableDeclaration","src":"3148:36:97","value":{"arguments":[{"name":"src","nativeSrc":"3180:3:97","nodeType":"YulIdentifier","src":"3180:3:97"}],"functionName":{"name":"calldataload","nativeSrc":"3167:12:97","nodeType":"YulIdentifier","src":"3167:12:97"},"nativeSrc":"3167:17:97","nodeType":"YulFunctionCall","src":"3167:17:97"},"variables":[{"name":"innerOffset","nativeSrc":"3152:11:97","nodeType":"YulTypedName","src":"3152:11:97","type":""}]},{"body":{"nativeSrc":"3220:16:97","nodeType":"YulBlock","src":"3220:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3229:1:97","nodeType":"YulLiteral","src":"3229:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"3232:1:97","nodeType":"YulLiteral","src":"3232:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3222:6:97","nodeType":"YulIdentifier","src":"3222:6:97"},"nativeSrc":"3222:12:97","nodeType":"YulFunctionCall","src":"3222:12:97"},"nativeSrc":"3222:12:97","nodeType":"YulExpressionStatement","src":"3222:12:97"}]},"condition":{"arguments":[{"name":"innerOffset","nativeSrc":"3203:11:97","nodeType":"YulIdentifier","src":"3203:11:97"},{"name":"_2","nativeSrc":"3216:2:97","nodeType":"YulIdentifier","src":"3216:2:97"}],"functionName":{"name":"gt","nativeSrc":"3200:2:97","nodeType":"YulIdentifier","src":"3200:2:97"},"nativeSrc":"3200:19:97","nodeType":"YulFunctionCall","src":"3200:19:97"},"nativeSrc":"3197:39:97","nodeType":"YulIf","src":"3197:39:97"},{"nativeSrc":"3249:30:97","nodeType":"YulVariableDeclaration","src":"3249:30:97","value":{"arguments":[{"name":"_3","nativeSrc":"3263:2:97","nodeType":"YulIdentifier","src":"3263:2:97"},{"name":"innerOffset","nativeSrc":"3267:11:97","nodeType":"YulIdentifier","src":"3267:11:97"}],"functionName":{"name":"add","nativeSrc":"3259:3:97","nodeType":"YulIdentifier","src":"3259:3:97"},"nativeSrc":"3259:20:97","nodeType":"YulFunctionCall","src":"3259:20:97"},"variables":[{"name":"_6","nativeSrc":"3253:2:97","nodeType":"YulTypedName","src":"3253:2:97","type":""}]},{"nativeSrc":"3292:76:97","nodeType":"YulVariableDeclaration","src":"3292:76:97","value":{"kind":"number","nativeSrc":"3302:66:97","nodeType":"YulLiteral","src":"3302:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"},"variables":[{"name":"_7","nativeSrc":"3296:2:97","nodeType":"YulTypedName","src":"3296:2:97","type":""}]},{"body":{"nativeSrc":"3433:74:97","nodeType":"YulBlock","src":"3433:74:97","statements":[{"nativeSrc":"3451:11:97","nodeType":"YulVariableDeclaration","src":"3451:11:97","value":{"kind":"number","nativeSrc":"3461:1:97","nodeType":"YulLiteral","src":"3461:1:97","type":"","value":"0"},"variables":[{"name":"_8","nativeSrc":"3455:2:97","nodeType":"YulTypedName","src":"3455:2:97","type":""}]},{"expression":{"arguments":[{"name":"_8","nativeSrc":"3486:2:97","nodeType":"YulIdentifier","src":"3486:2:97"},{"name":"_8","nativeSrc":"3490:2:97","nodeType":"YulIdentifier","src":"3490:2:97"}],"functionName":{"name":"revert","nativeSrc":"3479:6:97","nodeType":"YulIdentifier","src":"3479:6:97"},"nativeSrc":"3479:14:97","nodeType":"YulFunctionCall","src":"3479:14:97"},"nativeSrc":"3479:14:97","nodeType":"YulExpressionStatement","src":"3479:14:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3396:7:97","nodeType":"YulIdentifier","src":"3396:7:97"},{"name":"_6","nativeSrc":"3405:2:97","nodeType":"YulIdentifier","src":"3405:2:97"}],"functionName":{"name":"sub","nativeSrc":"3392:3:97","nodeType":"YulIdentifier","src":"3392:3:97"},"nativeSrc":"3392:16:97","nodeType":"YulFunctionCall","src":"3392:16:97"},{"name":"_7","nativeSrc":"3410:2:97","nodeType":"YulIdentifier","src":"3410:2:97"}],"functionName":{"name":"add","nativeSrc":"3388:3:97","nodeType":"YulIdentifier","src":"3388:3:97"},"nativeSrc":"3388:25:97","nodeType":"YulFunctionCall","src":"3388:25:97"},{"kind":"number","nativeSrc":"3415:4:97","nodeType":"YulLiteral","src":"3415:4:97","type":"","value":"0x60"}],"functionName":{"name":"slt","nativeSrc":"3384:3:97","nodeType":"YulIdentifier","src":"3384:3:97"},"nativeSrc":"3384:36:97","nodeType":"YulFunctionCall","src":"3384:36:97"},"nativeSrc":"3381:126:97","nodeType":"YulIf","src":"3381:126:97"},{"nativeSrc":"3520:35:97","nodeType":"YulVariableDeclaration","src":"3520:35:97","value":{"arguments":[],"functionName":{"name":"allocate_memory_1501","nativeSrc":"3533:20:97","nodeType":"YulIdentifier","src":"3533:20:97"},"nativeSrc":"3533:22:97","nodeType":"YulFunctionCall","src":"3533:22:97"},"variables":[{"name":"value","nativeSrc":"3524:5:97","nodeType":"YulTypedName","src":"3524:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3575:5:97","nodeType":"YulIdentifier","src":"3575:5:97"},{"arguments":[{"arguments":[{"name":"_6","nativeSrc":"3605:2:97","nodeType":"YulIdentifier","src":"3605:2:97"},{"name":"_1","nativeSrc":"3609:2:97","nodeType":"YulIdentifier","src":"3609:2:97"}],"functionName":{"name":"add","nativeSrc":"3601:3:97","nodeType":"YulIdentifier","src":"3601:3:97"},"nativeSrc":"3601:11:97","nodeType":"YulFunctionCall","src":"3601:11:97"}],"functionName":{"name":"abi_decode_address","nativeSrc":"3582:18:97","nodeType":"YulIdentifier","src":"3582:18:97"},"nativeSrc":"3582:31:97","nodeType":"YulFunctionCall","src":"3582:31:97"}],"functionName":{"name":"mstore","nativeSrc":"3568:6:97","nodeType":"YulIdentifier","src":"3568:6:97"},"nativeSrc":"3568:46:97","nodeType":"YulFunctionCall","src":"3568:46:97"},"nativeSrc":"3568:46:97","nodeType":"YulExpressionStatement","src":"3568:46:97"},{"nativeSrc":"3627:12:97","nodeType":"YulVariableDeclaration","src":"3627:12:97","value":{"kind":"number","nativeSrc":"3637:2:97","nodeType":"YulLiteral","src":"3637:2:97","type":"","value":"64"},"variables":[{"name":"_9","nativeSrc":"3631:2:97","nodeType":"YulTypedName","src":"3631:2:97","type":""}]},{"nativeSrc":"3652:41:97","nodeType":"YulVariableDeclaration","src":"3652:41:97","value":{"arguments":[{"arguments":[{"name":"_6","nativeSrc":"3685:2:97","nodeType":"YulIdentifier","src":"3685:2:97"},{"name":"_9","nativeSrc":"3689:2:97","nodeType":"YulIdentifier","src":"3689:2:97"}],"functionName":{"name":"add","nativeSrc":"3681:3:97","nodeType":"YulIdentifier","src":"3681:3:97"},"nativeSrc":"3681:11:97","nodeType":"YulFunctionCall","src":"3681:11:97"}],"functionName":{"name":"calldataload","nativeSrc":"3668:12:97","nodeType":"YulIdentifier","src":"3668:12:97"},"nativeSrc":"3668:25:97","nodeType":"YulFunctionCall","src":"3668:25:97"},"variables":[{"name":"offset_1","nativeSrc":"3656:8:97","nodeType":"YulTypedName","src":"3656:8:97","type":""}]},{"body":{"nativeSrc":"3738:77:97","nodeType":"YulBlock","src":"3738:77:97","statements":[{"nativeSrc":"3756:12:97","nodeType":"YulVariableDeclaration","src":"3756:12:97","value":{"kind":"number","nativeSrc":"3767:1:97","nodeType":"YulLiteral","src":"3767:1:97","type":"","value":"0"},"variables":[{"name":"_10","nativeSrc":"3760:3:97","nodeType":"YulTypedName","src":"3760:3:97","type":""}]},{"expression":{"arguments":[{"name":"_10","nativeSrc":"3792:3:97","nodeType":"YulIdentifier","src":"3792:3:97"},{"name":"_10","nativeSrc":"3797:3:97","nodeType":"YulIdentifier","src":"3797:3:97"}],"functionName":{"name":"revert","nativeSrc":"3785:6:97","nodeType":"YulIdentifier","src":"3785:6:97"},"nativeSrc":"3785:16:97","nodeType":"YulFunctionCall","src":"3785:16:97"},"nativeSrc":"3785:16:97","nodeType":"YulExpressionStatement","src":"3785:16:97"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"3712:8:97","nodeType":"YulIdentifier","src":"3712:8:97"},{"name":"_2","nativeSrc":"3722:2:97","nodeType":"YulIdentifier","src":"3722:2:97"}],"functionName":{"name":"gt","nativeSrc":"3709:2:97","nodeType":"YulIdentifier","src":"3709:2:97"},"nativeSrc":"3709:16:97","nodeType":"YulFunctionCall","src":"3709:16:97"},"nativeSrc":"3706:109:97","nodeType":"YulIf","src":"3706:109:97"},{"nativeSrc":"3828:28:97","nodeType":"YulVariableDeclaration","src":"3828:28:97","value":{"arguments":[{"name":"_6","nativeSrc":"3843:2:97","nodeType":"YulIdentifier","src":"3843:2:97"},{"name":"offset_1","nativeSrc":"3847:8:97","nodeType":"YulIdentifier","src":"3847:8:97"}],"functionName":{"name":"add","nativeSrc":"3839:3:97","nodeType":"YulIdentifier","src":"3839:3:97"},"nativeSrc":"3839:17:97","nodeType":"YulFunctionCall","src":"3839:17:97"},"variables":[{"name":"_11","nativeSrc":"3832:3:97","nodeType":"YulTypedName","src":"3832:3:97","type":""}]},{"body":{"nativeSrc":"3919:77:97","nodeType":"YulBlock","src":"3919:77:97","statements":[{"nativeSrc":"3937:12:97","nodeType":"YulVariableDeclaration","src":"3937:12:97","value":{"kind":"number","nativeSrc":"3948:1:97","nodeType":"YulLiteral","src":"3948:1:97","type":"","value":"0"},"variables":[{"name":"_12","nativeSrc":"3941:3:97","nodeType":"YulTypedName","src":"3941:3:97","type":""}]},{"expression":{"arguments":[{"name":"_12","nativeSrc":"3973:3:97","nodeType":"YulIdentifier","src":"3973:3:97"},{"name":"_12","nativeSrc":"3978:3:97","nodeType":"YulIdentifier","src":"3978:3:97"}],"functionName":{"name":"revert","nativeSrc":"3966:6:97","nodeType":"YulIdentifier","src":"3966:6:97"},"nativeSrc":"3966:16:97","nodeType":"YulFunctionCall","src":"3966:16:97"},"nativeSrc":"3966:16:97","nodeType":"YulExpressionStatement","src":"3966:16:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_11","nativeSrc":"3887:3:97","nodeType":"YulIdentifier","src":"3887:3:97"},{"kind":"number","nativeSrc":"3892:2:97","nodeType":"YulLiteral","src":"3892:2:97","type":"","value":"63"}],"functionName":{"name":"add","nativeSrc":"3883:3:97","nodeType":"YulIdentifier","src":"3883:3:97"},"nativeSrc":"3883:12:97","nodeType":"YulFunctionCall","src":"3883:12:97"},{"name":"dataEnd","nativeSrc":"3897:7:97","nodeType":"YulIdentifier","src":"3897:7:97"}],"functionName":{"name":"slt","nativeSrc":"3879:3:97","nodeType":"YulIdentifier","src":"3879:3:97"},"nativeSrc":"3879:26:97","nodeType":"YulFunctionCall","src":"3879:26:97"}],"functionName":{"name":"iszero","nativeSrc":"3872:6:97","nodeType":"YulIdentifier","src":"3872:6:97"},"nativeSrc":"3872:34:97","nodeType":"YulFunctionCall","src":"3872:34:97"},"nativeSrc":"3869:127:97","nodeType":"YulIf","src":"3869:127:97"},{"nativeSrc":"4009:37:97","nodeType":"YulVariableDeclaration","src":"4009:37:97","value":{"arguments":[{"arguments":[{"name":"_11","nativeSrc":"4037:3:97","nodeType":"YulIdentifier","src":"4037:3:97"},{"name":"_1","nativeSrc":"4042:2:97","nodeType":"YulIdentifier","src":"4042:2:97"}],"functionName":{"name":"add","nativeSrc":"4033:3:97","nodeType":"YulIdentifier","src":"4033:3:97"},"nativeSrc":"4033:12:97","nodeType":"YulFunctionCall","src":"4033:12:97"}],"functionName":{"name":"calldataload","nativeSrc":"4020:12:97","nodeType":"YulIdentifier","src":"4020:12:97"},"nativeSrc":"4020:26:97","nodeType":"YulFunctionCall","src":"4020:26:97"},"variables":[{"name":"_13","nativeSrc":"4013:3:97","nodeType":"YulTypedName","src":"4013:3:97","type":""}]},{"body":{"nativeSrc":"4074:22:97","nodeType":"YulBlock","src":"4074:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"4076:16:97","nodeType":"YulIdentifier","src":"4076:16:97"},"nativeSrc":"4076:18:97","nodeType":"YulFunctionCall","src":"4076:18:97"},"nativeSrc":"4076:18:97","nodeType":"YulExpressionStatement","src":"4076:18:97"}]},"condition":{"arguments":[{"name":"_13","nativeSrc":"4065:3:97","nodeType":"YulIdentifier","src":"4065:3:97"},{"name":"_2","nativeSrc":"4070:2:97","nodeType":"YulIdentifier","src":"4070:2:97"}],"functionName":{"name":"gt","nativeSrc":"4062:2:97","nodeType":"YulIdentifier","src":"4062:2:97"},"nativeSrc":"4062:11:97","nodeType":"YulFunctionCall","src":"4062:11:97"},"nativeSrc":"4059:37:97","nodeType":"YulIf","src":"4059:37:97"},{"nativeSrc":"4109:62:97","nodeType":"YulVariableDeclaration","src":"4109:62:97","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_13","nativeSrc":"4150:3:97","nodeType":"YulIdentifier","src":"4150:3:97"},{"kind":"number","nativeSrc":"4155:4:97","nodeType":"YulLiteral","src":"4155:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"4146:3:97","nodeType":"YulIdentifier","src":"4146:3:97"},"nativeSrc":"4146:14:97","nodeType":"YulFunctionCall","src":"4146:14:97"},{"name":"_7","nativeSrc":"4162:2:97","nodeType":"YulIdentifier","src":"4162:2:97"}],"functionName":{"name":"and","nativeSrc":"4142:3:97","nodeType":"YulIdentifier","src":"4142:3:97"},"nativeSrc":"4142:23:97","nodeType":"YulFunctionCall","src":"4142:23:97"},{"name":"_1","nativeSrc":"4167:2:97","nodeType":"YulIdentifier","src":"4167:2:97"}],"functionName":{"name":"add","nativeSrc":"4138:3:97","nodeType":"YulIdentifier","src":"4138:3:97"},"nativeSrc":"4138:32:97","nodeType":"YulFunctionCall","src":"4138:32:97"}],"functionName":{"name":"allocate_memory","nativeSrc":"4122:15:97","nodeType":"YulIdentifier","src":"4122:15:97"},"nativeSrc":"4122:49:97","nodeType":"YulFunctionCall","src":"4122:49:97"},"variables":[{"name":"array","nativeSrc":"4113:5:97","nodeType":"YulTypedName","src":"4113:5:97","type":""}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"4191:5:97","nodeType":"YulIdentifier","src":"4191:5:97"},{"name":"_13","nativeSrc":"4198:3:97","nodeType":"YulIdentifier","src":"4198:3:97"}],"functionName":{"name":"mstore","nativeSrc":"4184:6:97","nodeType":"YulIdentifier","src":"4184:6:97"},"nativeSrc":"4184:18:97","nodeType":"YulFunctionCall","src":"4184:18:97"},"nativeSrc":"4184:18:97","nodeType":"YulExpressionStatement","src":"4184:18:97"},{"body":{"nativeSrc":"4266:77:97","nodeType":"YulBlock","src":"4266:77:97","statements":[{"nativeSrc":"4284:12:97","nodeType":"YulVariableDeclaration","src":"4284:12:97","value":{"kind":"number","nativeSrc":"4295:1:97","nodeType":"YulLiteral","src":"4295:1:97","type":"","value":"0"},"variables":[{"name":"_14","nativeSrc":"4288:3:97","nodeType":"YulTypedName","src":"4288:3:97","type":""}]},{"expression":{"arguments":[{"name":"_14","nativeSrc":"4320:3:97","nodeType":"YulIdentifier","src":"4320:3:97"},{"name":"_14","nativeSrc":"4325:3:97","nodeType":"YulIdentifier","src":"4325:3:97"}],"functionName":{"name":"revert","nativeSrc":"4313:6:97","nodeType":"YulIdentifier","src":"4313:6:97"},"nativeSrc":"4313:16:97","nodeType":"YulFunctionCall","src":"4313:16:97"},"nativeSrc":"4313:16:97","nodeType":"YulExpressionStatement","src":"4313:16:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_11","nativeSrc":"4229:3:97","nodeType":"YulIdentifier","src":"4229:3:97"},{"name":"_13","nativeSrc":"4234:3:97","nodeType":"YulIdentifier","src":"4234:3:97"}],"functionName":{"name":"add","nativeSrc":"4225:3:97","nodeType":"YulIdentifier","src":"4225:3:97"},"nativeSrc":"4225:13:97","nodeType":"YulFunctionCall","src":"4225:13:97"},{"name":"_9","nativeSrc":"4240:2:97","nodeType":"YulIdentifier","src":"4240:2:97"}],"functionName":{"name":"add","nativeSrc":"4221:3:97","nodeType":"YulIdentifier","src":"4221:3:97"},"nativeSrc":"4221:22:97","nodeType":"YulFunctionCall","src":"4221:22:97"},{"name":"dataEnd","nativeSrc":"4245:7:97","nodeType":"YulIdentifier","src":"4245:7:97"}],"functionName":{"name":"gt","nativeSrc":"4218:2:97","nodeType":"YulIdentifier","src":"4218:2:97"},"nativeSrc":"4218:35:97","nodeType":"YulFunctionCall","src":"4218:35:97"},"nativeSrc":"4215:128:97","nodeType":"YulIf","src":"4215:128:97"},{"expression":{"arguments":[{"arguments":[{"name":"array","nativeSrc":"4373:5:97","nodeType":"YulIdentifier","src":"4373:5:97"},{"name":"_1","nativeSrc":"4380:2:97","nodeType":"YulIdentifier","src":"4380:2:97"}],"functionName":{"name":"add","nativeSrc":"4369:3:97","nodeType":"YulIdentifier","src":"4369:3:97"},"nativeSrc":"4369:14:97","nodeType":"YulFunctionCall","src":"4369:14:97"},{"arguments":[{"name":"_11","nativeSrc":"4389:3:97","nodeType":"YulIdentifier","src":"4389:3:97"},{"name":"_9","nativeSrc":"4394:2:97","nodeType":"YulIdentifier","src":"4394:2:97"}],"functionName":{"name":"add","nativeSrc":"4385:3:97","nodeType":"YulIdentifier","src":"4385:3:97"},"nativeSrc":"4385:12:97","nodeType":"YulFunctionCall","src":"4385:12:97"},{"name":"_13","nativeSrc":"4399:3:97","nodeType":"YulIdentifier","src":"4399:3:97"}],"functionName":{"name":"calldatacopy","nativeSrc":"4356:12:97","nodeType":"YulIdentifier","src":"4356:12:97"},"nativeSrc":"4356:47:97","nodeType":"YulFunctionCall","src":"4356:47:97"},"nativeSrc":"4356:47:97","nodeType":"YulExpressionStatement","src":"4356:47:97"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array","nativeSrc":"4431:5:97","nodeType":"YulIdentifier","src":"4431:5:97"},{"name":"_13","nativeSrc":"4438:3:97","nodeType":"YulIdentifier","src":"4438:3:97"}],"functionName":{"name":"add","nativeSrc":"4427:3:97","nodeType":"YulIdentifier","src":"4427:3:97"},"nativeSrc":"4427:15:97","nodeType":"YulFunctionCall","src":"4427:15:97"},{"name":"_1","nativeSrc":"4444:2:97","nodeType":"YulIdentifier","src":"4444:2:97"}],"functionName":{"name":"add","nativeSrc":"4423:3:97","nodeType":"YulIdentifier","src":"4423:3:97"},"nativeSrc":"4423:24:97","nodeType":"YulFunctionCall","src":"4423:24:97"},{"kind":"number","nativeSrc":"4449:1:97","nodeType":"YulLiteral","src":"4449:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4416:6:97","nodeType":"YulIdentifier","src":"4416:6:97"},"nativeSrc":"4416:35:97","nodeType":"YulFunctionCall","src":"4416:35:97"},"nativeSrc":"4416:35:97","nodeType":"YulExpressionStatement","src":"4416:35:97"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4475:5:97","nodeType":"YulIdentifier","src":"4475:5:97"},{"name":"_1","nativeSrc":"4482:2:97","nodeType":"YulIdentifier","src":"4482:2:97"}],"functionName":{"name":"add","nativeSrc":"4471:3:97","nodeType":"YulIdentifier","src":"4471:3:97"},"nativeSrc":"4471:14:97","nodeType":"YulFunctionCall","src":"4471:14:97"},{"name":"array","nativeSrc":"4487:5:97","nodeType":"YulIdentifier","src":"4487:5:97"}],"functionName":{"name":"mstore","nativeSrc":"4464:6:97","nodeType":"YulIdentifier","src":"4464:6:97"},"nativeSrc":"4464:29:97","nodeType":"YulFunctionCall","src":"4464:29:97"},"nativeSrc":"4464:29:97","nodeType":"YulExpressionStatement","src":"4464:29:97"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4517:5:97","nodeType":"YulIdentifier","src":"4517:5:97"},{"name":"_9","nativeSrc":"4524:2:97","nodeType":"YulIdentifier","src":"4524:2:97"}],"functionName":{"name":"add","nativeSrc":"4513:3:97","nodeType":"YulIdentifier","src":"4513:3:97"},"nativeSrc":"4513:14:97","nodeType":"YulFunctionCall","src":"4513:14:97"},{"arguments":[{"arguments":[{"name":"_6","nativeSrc":"4552:2:97","nodeType":"YulIdentifier","src":"4552:2:97"},{"kind":"number","nativeSrc":"4556:4:97","nodeType":"YulLiteral","src":"4556:4:97","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"4548:3:97","nodeType":"YulIdentifier","src":"4548:3:97"},"nativeSrc":"4548:13:97","nodeType":"YulFunctionCall","src":"4548:13:97"}],"functionName":{"name":"abi_decode_address","nativeSrc":"4529:18:97","nodeType":"YulIdentifier","src":"4529:18:97"},"nativeSrc":"4529:33:97","nodeType":"YulFunctionCall","src":"4529:33:97"}],"functionName":{"name":"mstore","nativeSrc":"4506:6:97","nodeType":"YulIdentifier","src":"4506:6:97"},"nativeSrc":"4506:57:97","nodeType":"YulFunctionCall","src":"4506:57:97"},"nativeSrc":"4506:57:97","nodeType":"YulExpressionStatement","src":"4506:57:97"},{"expression":{"arguments":[{"name":"dst","nativeSrc":"4583:3:97","nodeType":"YulIdentifier","src":"4583:3:97"},{"name":"value","nativeSrc":"4588:5:97","nodeType":"YulIdentifier","src":"4588:5:97"}],"functionName":{"name":"mstore","nativeSrc":"4576:6:97","nodeType":"YulIdentifier","src":"4576:6:97"},"nativeSrc":"4576:18:97","nodeType":"YulFunctionCall","src":"4576:18:97"},"nativeSrc":"4576:18:97","nodeType":"YulExpressionStatement","src":"4576:18:97"},{"nativeSrc":"4607:19:97","nodeType":"YulAssignment","src":"4607:19:97","value":{"arguments":[{"name":"dst","nativeSrc":"4618:3:97","nodeType":"YulIdentifier","src":"4618:3:97"},{"name":"_1","nativeSrc":"4623:2:97","nodeType":"YulIdentifier","src":"4623:2:97"}],"functionName":{"name":"add","nativeSrc":"4614:3:97","nodeType":"YulIdentifier","src":"4614:3:97"},"nativeSrc":"4614:12:97","nodeType":"YulFunctionCall","src":"4614:12:97"},"variableNames":[{"name":"dst","nativeSrc":"4607:3:97","nodeType":"YulIdentifier","src":"4607:3:97"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"3089:3:97","nodeType":"YulIdentifier","src":"3089:3:97"},{"name":"srcEnd","nativeSrc":"3094:6:97","nodeType":"YulIdentifier","src":"3094:6:97"}],"functionName":{"name":"lt","nativeSrc":"3086:2:97","nodeType":"YulIdentifier","src":"3086:2:97"},"nativeSrc":"3086:15:97","nodeType":"YulFunctionCall","src":"3086:15:97"},"nativeSrc":"3078:1558:97","nodeType":"YulForLoop","post":{"nativeSrc":"3102:23:97","nodeType":"YulBlock","src":"3102:23:97","statements":[{"nativeSrc":"3104:19:97","nodeType":"YulAssignment","src":"3104:19:97","value":{"arguments":[{"name":"src","nativeSrc":"3115:3:97","nodeType":"YulIdentifier","src":"3115:3:97"},{"name":"_1","nativeSrc":"3120:2:97","nodeType":"YulIdentifier","src":"3120:2:97"}],"functionName":{"name":"add","nativeSrc":"3111:3:97","nodeType":"YulIdentifier","src":"3111:3:97"},"nativeSrc":"3111:12:97","nodeType":"YulFunctionCall","src":"3111:12:97"},"variableNames":[{"name":"src","nativeSrc":"3104:3:97","nodeType":"YulIdentifier","src":"3104:3:97"}]}]},"pre":{"nativeSrc":"3082:3:97","nodeType":"YulBlock","src":"3082:3:97","statements":[]},"src":"3078:1558:97"},{"nativeSrc":"4645:15:97","nodeType":"YulAssignment","src":"4645:15:97","value":{"name":"dst_1","nativeSrc":"4655:5:97","nodeType":"YulIdentifier","src":"4655:5:97"},"variableNames":[{"name":"value0","nativeSrc":"4645:6:97","nodeType":"YulIdentifier","src":"4645:6:97"}]}]},"name":"abi_decode_tuple_t_array$_t_struct$_Permission_$19945_memory_ptr_$dyn_memory_ptr","nativeSrc":"2275:2391:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2365:9:97","nodeType":"YulTypedName","src":"2365:9:97","type":""},{"name":"dataEnd","nativeSrc":"2376:7:97","nodeType":"YulTypedName","src":"2376:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2388:6:97","nodeType":"YulTypedName","src":"2388:6:97","type":""}],"src":"2275:2391:97"},{"body":{"nativeSrc":"4805:125:97","nodeType":"YulBlock","src":"4805:125:97","statements":[{"nativeSrc":"4815:26:97","nodeType":"YulAssignment","src":"4815:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"4827:9:97","nodeType":"YulIdentifier","src":"4827:9:97"},{"kind":"number","nativeSrc":"4838:2:97","nodeType":"YulLiteral","src":"4838:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4823:3:97","nodeType":"YulIdentifier","src":"4823:3:97"},"nativeSrc":"4823:18:97","nodeType":"YulFunctionCall","src":"4823:18:97"},"variableNames":[{"name":"tail","nativeSrc":"4815:4:97","nodeType":"YulIdentifier","src":"4815:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4857:9:97","nodeType":"YulIdentifier","src":"4857:9:97"},{"arguments":[{"name":"value0","nativeSrc":"4872:6:97","nodeType":"YulIdentifier","src":"4872:6:97"},{"kind":"number","nativeSrc":"4880:42:97","nodeType":"YulLiteral","src":"4880:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"4868:3:97","nodeType":"YulIdentifier","src":"4868:3:97"},"nativeSrc":"4868:55:97","nodeType":"YulFunctionCall","src":"4868:55:97"}],"functionName":{"name":"mstore","nativeSrc":"4850:6:97","nodeType":"YulIdentifier","src":"4850:6:97"},"nativeSrc":"4850:74:97","nodeType":"YulFunctionCall","src":"4850:74:97"},"nativeSrc":"4850:74:97","nodeType":"YulExpressionStatement","src":"4850:74:97"}]},"name":"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$13903__to_t_address__fromStack_reversed","nativeSrc":"4671:259:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4774:9:97","nodeType":"YulTypedName","src":"4774:9:97","type":""},{"name":"value0","nativeSrc":"4785:6:97","nodeType":"YulTypedName","src":"4785:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4796:4:97","nodeType":"YulTypedName","src":"4796:4:97","type":""}],"src":"4671:259:97"},{"body":{"nativeSrc":"4967:152:97","nodeType":"YulBlock","src":"4967:152:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4984:1:97","nodeType":"YulLiteral","src":"4984:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"4987:77:97","nodeType":"YulLiteral","src":"4987:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"4977:6:97","nodeType":"YulIdentifier","src":"4977:6:97"},"nativeSrc":"4977:88:97","nodeType":"YulFunctionCall","src":"4977:88:97"},"nativeSrc":"4977:88:97","nodeType":"YulExpressionStatement","src":"4977:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5081:1:97","nodeType":"YulLiteral","src":"5081:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"5084:4:97","nodeType":"YulLiteral","src":"5084:4:97","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"5074:6:97","nodeType":"YulIdentifier","src":"5074:6:97"},"nativeSrc":"5074:15:97","nodeType":"YulFunctionCall","src":"5074:15:97"},"nativeSrc":"5074:15:97","nodeType":"YulExpressionStatement","src":"5074:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5105:1:97","nodeType":"YulLiteral","src":"5105:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"5108:4:97","nodeType":"YulLiteral","src":"5108:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5098:6:97","nodeType":"YulIdentifier","src":"5098:6:97"},"nativeSrc":"5098:15:97","nodeType":"YulFunctionCall","src":"5098:15:97"},"nativeSrc":"5098:15:97","nodeType":"YulExpressionStatement","src":"5098:15:97"}]},"name":"panic_error_0x32","nativeSrc":"4935:184:97","nodeType":"YulFunctionDefinition","src":"4935:184:97"},{"body":{"nativeSrc":"5179:382:97","nodeType":"YulBlock","src":"5179:382:97","statements":[{"nativeSrc":"5189:22:97","nodeType":"YulAssignment","src":"5189:22:97","value":{"arguments":[{"kind":"number","nativeSrc":"5203:1:97","nodeType":"YulLiteral","src":"5203:1:97","type":"","value":"1"},{"name":"data","nativeSrc":"5206:4:97","nodeType":"YulIdentifier","src":"5206:4:97"}],"functionName":{"name":"shr","nativeSrc":"5199:3:97","nodeType":"YulIdentifier","src":"5199:3:97"},"nativeSrc":"5199:12:97","nodeType":"YulFunctionCall","src":"5199:12:97"},"variableNames":[{"name":"length","nativeSrc":"5189:6:97","nodeType":"YulIdentifier","src":"5189:6:97"}]},{"nativeSrc":"5220:38:97","nodeType":"YulVariableDeclaration","src":"5220:38:97","value":{"arguments":[{"name":"data","nativeSrc":"5250:4:97","nodeType":"YulIdentifier","src":"5250:4:97"},{"kind":"number","nativeSrc":"5256:1:97","nodeType":"YulLiteral","src":"5256:1:97","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"5246:3:97","nodeType":"YulIdentifier","src":"5246:3:97"},"nativeSrc":"5246:12:97","nodeType":"YulFunctionCall","src":"5246:12:97"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"5224:18:97","nodeType":"YulTypedName","src":"5224:18:97","type":""}]},{"body":{"nativeSrc":"5297:31:97","nodeType":"YulBlock","src":"5297:31:97","statements":[{"nativeSrc":"5299:27:97","nodeType":"YulAssignment","src":"5299:27:97","value":{"arguments":[{"name":"length","nativeSrc":"5313:6:97","nodeType":"YulIdentifier","src":"5313:6:97"},{"kind":"number","nativeSrc":"5321:4:97","nodeType":"YulLiteral","src":"5321:4:97","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"5309:3:97","nodeType":"YulIdentifier","src":"5309:3:97"},"nativeSrc":"5309:17:97","nodeType":"YulFunctionCall","src":"5309:17:97"},"variableNames":[{"name":"length","nativeSrc":"5299:6:97","nodeType":"YulIdentifier","src":"5299:6:97"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"5277:18:97","nodeType":"YulIdentifier","src":"5277:18:97"}],"functionName":{"name":"iszero","nativeSrc":"5270:6:97","nodeType":"YulIdentifier","src":"5270:6:97"},"nativeSrc":"5270:26:97","nodeType":"YulFunctionCall","src":"5270:26:97"},"nativeSrc":"5267:61:97","nodeType":"YulIf","src":"5267:61:97"},{"body":{"nativeSrc":"5387:168:97","nodeType":"YulBlock","src":"5387:168:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5408:1:97","nodeType":"YulLiteral","src":"5408:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"5411:77:97","nodeType":"YulLiteral","src":"5411:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"5401:6:97","nodeType":"YulIdentifier","src":"5401:6:97"},"nativeSrc":"5401:88:97","nodeType":"YulFunctionCall","src":"5401:88:97"},"nativeSrc":"5401:88:97","nodeType":"YulExpressionStatement","src":"5401:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5509:1:97","nodeType":"YulLiteral","src":"5509:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"5512:4:97","nodeType":"YulLiteral","src":"5512:4:97","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"5502:6:97","nodeType":"YulIdentifier","src":"5502:6:97"},"nativeSrc":"5502:15:97","nodeType":"YulFunctionCall","src":"5502:15:97"},"nativeSrc":"5502:15:97","nodeType":"YulExpressionStatement","src":"5502:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5537:1:97","nodeType":"YulLiteral","src":"5537:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"5540:4:97","nodeType":"YulLiteral","src":"5540:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5530:6:97","nodeType":"YulIdentifier","src":"5530:6:97"},"nativeSrc":"5530:15:97","nodeType":"YulFunctionCall","src":"5530:15:97"},"nativeSrc":"5530:15:97","nodeType":"YulExpressionStatement","src":"5530:15:97"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"5343:18:97","nodeType":"YulIdentifier","src":"5343:18:97"},{"arguments":[{"name":"length","nativeSrc":"5366:6:97","nodeType":"YulIdentifier","src":"5366:6:97"},{"kind":"number","nativeSrc":"5374:2:97","nodeType":"YulLiteral","src":"5374:2:97","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"5363:2:97","nodeType":"YulIdentifier","src":"5363:2:97"},"nativeSrc":"5363:14:97","nodeType":"YulFunctionCall","src":"5363:14:97"}],"functionName":{"name":"eq","nativeSrc":"5340:2:97","nodeType":"YulIdentifier","src":"5340:2:97"},"nativeSrc":"5340:38:97","nodeType":"YulFunctionCall","src":"5340:38:97"},"nativeSrc":"5337:218:97","nodeType":"YulIf","src":"5337:218:97"}]},"name":"extract_byte_array_length","nativeSrc":"5124:437:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"5159:4:97","nodeType":"YulTypedName","src":"5159:4:97","type":""}],"returnVariables":[{"name":"length","nativeSrc":"5168:6:97","nodeType":"YulTypedName","src":"5168:6:97","type":""}],"src":"5124:437:97"},{"body":{"nativeSrc":"5667:76:97","nodeType":"YulBlock","src":"5667:76:97","statements":[{"nativeSrc":"5677:26:97","nodeType":"YulAssignment","src":"5677:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"5689:9:97","nodeType":"YulIdentifier","src":"5689:9:97"},{"kind":"number","nativeSrc":"5700:2:97","nodeType":"YulLiteral","src":"5700:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5685:3:97","nodeType":"YulIdentifier","src":"5685:3:97"},"nativeSrc":"5685:18:97","nodeType":"YulFunctionCall","src":"5685:18:97"},"variableNames":[{"name":"tail","nativeSrc":"5677:4:97","nodeType":"YulIdentifier","src":"5677:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5719:9:97","nodeType":"YulIdentifier","src":"5719:9:97"},{"name":"value0","nativeSrc":"5730:6:97","nodeType":"YulIdentifier","src":"5730:6:97"}],"functionName":{"name":"mstore","nativeSrc":"5712:6:97","nodeType":"YulIdentifier","src":"5712:6:97"},"nativeSrc":"5712:25:97","nodeType":"YulFunctionCall","src":"5712:25:97"},"nativeSrc":"5712:25:97","nodeType":"YulExpressionStatement","src":"5712:25:97"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"5566:177:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5636:9:97","nodeType":"YulTypedName","src":"5636:9:97","type":""},{"name":"value0","nativeSrc":"5647:6:97","nodeType":"YulTypedName","src":"5647:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5658:4:97","nodeType":"YulTypedName","src":"5658:4:97","type":""}],"src":"5566:177:97"},{"body":{"nativeSrc":"5804:65:97","nodeType":"YulBlock","src":"5804:65:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5821:1:97","nodeType":"YulLiteral","src":"5821:1:97","type":"","value":"0"},{"name":"ptr","nativeSrc":"5824:3:97","nodeType":"YulIdentifier","src":"5824:3:97"}],"functionName":{"name":"mstore","nativeSrc":"5814:6:97","nodeType":"YulIdentifier","src":"5814:6:97"},"nativeSrc":"5814:14:97","nodeType":"YulFunctionCall","src":"5814:14:97"},"nativeSrc":"5814:14:97","nodeType":"YulExpressionStatement","src":"5814:14:97"},{"nativeSrc":"5837:26:97","nodeType":"YulAssignment","src":"5837:26:97","value":{"arguments":[{"kind":"number","nativeSrc":"5855:1:97","nodeType":"YulLiteral","src":"5855:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"5858:4:97","nodeType":"YulLiteral","src":"5858:4:97","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"5845:9:97","nodeType":"YulIdentifier","src":"5845:9:97"},"nativeSrc":"5845:18:97","nodeType":"YulFunctionCall","src":"5845:18:97"},"variableNames":[{"name":"data","nativeSrc":"5837:4:97","nodeType":"YulIdentifier","src":"5837:4:97"}]}]},"name":"array_dataslot_string_storage","nativeSrc":"5748:121:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"5787:3:97","nodeType":"YulTypedName","src":"5787:3:97","type":""}],"returnVariables":[{"name":"data","nativeSrc":"5795:4:97","nodeType":"YulTypedName","src":"5795:4:97","type":""}],"src":"5748:121:97"},{"body":{"nativeSrc":"5955:462:97","nodeType":"YulBlock","src":"5955:462:97","statements":[{"body":{"nativeSrc":"5988:423:97","nodeType":"YulBlock","src":"5988:423:97","statements":[{"nativeSrc":"6002:11:97","nodeType":"YulVariableDeclaration","src":"6002:11:97","value":{"kind":"number","nativeSrc":"6012:1:97","nodeType":"YulLiteral","src":"6012:1:97","type":"","value":"0"},"variables":[{"name":"_1","nativeSrc":"6006:2:97","nodeType":"YulTypedName","src":"6006:2:97","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6033:1:97","nodeType":"YulLiteral","src":"6033:1:97","type":"","value":"0"},{"name":"array","nativeSrc":"6036:5:97","nodeType":"YulIdentifier","src":"6036:5:97"}],"functionName":{"name":"mstore","nativeSrc":"6026:6:97","nodeType":"YulIdentifier","src":"6026:6:97"},"nativeSrc":"6026:16:97","nodeType":"YulFunctionCall","src":"6026:16:97"},"nativeSrc":"6026:16:97","nodeType":"YulExpressionStatement","src":"6026:16:97"},{"nativeSrc":"6055:30:97","nodeType":"YulVariableDeclaration","src":"6055:30:97","value":{"arguments":[{"kind":"number","nativeSrc":"6077:1:97","nodeType":"YulLiteral","src":"6077:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"6080:4:97","nodeType":"YulLiteral","src":"6080:4:97","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"6067:9:97","nodeType":"YulIdentifier","src":"6067:9:97"},"nativeSrc":"6067:18:97","nodeType":"YulFunctionCall","src":"6067:18:97"},"variables":[{"name":"data","nativeSrc":"6059:4:97","nodeType":"YulTypedName","src":"6059:4:97","type":""}]},{"nativeSrc":"6098:57:97","nodeType":"YulVariableDeclaration","src":"6098:57:97","value":{"arguments":[{"name":"data","nativeSrc":"6121:4:97","nodeType":"YulIdentifier","src":"6121:4:97"},{"arguments":[{"kind":"number","nativeSrc":"6131:1:97","nodeType":"YulLiteral","src":"6131:1:97","type":"","value":"5"},{"arguments":[{"name":"startIndex","nativeSrc":"6138:10:97","nodeType":"YulIdentifier","src":"6138:10:97"},{"kind":"number","nativeSrc":"6150:2:97","nodeType":"YulLiteral","src":"6150:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"6134:3:97","nodeType":"YulIdentifier","src":"6134:3:97"},"nativeSrc":"6134:19:97","nodeType":"YulFunctionCall","src":"6134:19:97"}],"functionName":{"name":"shr","nativeSrc":"6127:3:97","nodeType":"YulIdentifier","src":"6127:3:97"},"nativeSrc":"6127:27:97","nodeType":"YulFunctionCall","src":"6127:27:97"}],"functionName":{"name":"add","nativeSrc":"6117:3:97","nodeType":"YulIdentifier","src":"6117:3:97"},"nativeSrc":"6117:38:97","nodeType":"YulFunctionCall","src":"6117:38:97"},"variables":[{"name":"deleteStart","nativeSrc":"6102:11:97","nodeType":"YulTypedName","src":"6102:11:97","type":""}]},{"body":{"nativeSrc":"6192:23:97","nodeType":"YulBlock","src":"6192:23:97","statements":[{"nativeSrc":"6194:19:97","nodeType":"YulAssignment","src":"6194:19:97","value":{"name":"data","nativeSrc":"6209:4:97","nodeType":"YulIdentifier","src":"6209:4:97"},"variableNames":[{"name":"deleteStart","nativeSrc":"6194:11:97","nodeType":"YulIdentifier","src":"6194:11:97"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"6174:10:97","nodeType":"YulIdentifier","src":"6174:10:97"},{"kind":"number","nativeSrc":"6186:4:97","nodeType":"YulLiteral","src":"6186:4:97","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"6171:2:97","nodeType":"YulIdentifier","src":"6171:2:97"},"nativeSrc":"6171:20:97","nodeType":"YulFunctionCall","src":"6171:20:97"},"nativeSrc":"6168:47:97","nodeType":"YulIf","src":"6168:47:97"},{"nativeSrc":"6228:41:97","nodeType":"YulVariableDeclaration","src":"6228:41:97","value":{"arguments":[{"name":"data","nativeSrc":"6242:4:97","nodeType":"YulIdentifier","src":"6242:4:97"},{"arguments":[{"kind":"number","nativeSrc":"6252:1:97","nodeType":"YulLiteral","src":"6252:1:97","type":"","value":"5"},{"arguments":[{"name":"len","nativeSrc":"6259:3:97","nodeType":"YulIdentifier","src":"6259:3:97"},{"kind":"number","nativeSrc":"6264:2:97","nodeType":"YulLiteral","src":"6264:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"6255:3:97","nodeType":"YulIdentifier","src":"6255:3:97"},"nativeSrc":"6255:12:97","nodeType":"YulFunctionCall","src":"6255:12:97"}],"functionName":{"name":"shr","nativeSrc":"6248:3:97","nodeType":"YulIdentifier","src":"6248:3:97"},"nativeSrc":"6248:20:97","nodeType":"YulFunctionCall","src":"6248:20:97"}],"functionName":{"name":"add","nativeSrc":"6238:3:97","nodeType":"YulIdentifier","src":"6238:3:97"},"nativeSrc":"6238:31:97","nodeType":"YulFunctionCall","src":"6238:31:97"},"variables":[{"name":"_2","nativeSrc":"6232:2:97","nodeType":"YulTypedName","src":"6232:2:97","type":""}]},{"nativeSrc":"6282:24:97","nodeType":"YulVariableDeclaration","src":"6282:24:97","value":{"name":"deleteStart","nativeSrc":"6295:11:97","nodeType":"YulIdentifier","src":"6295:11:97"},"variables":[{"name":"start","nativeSrc":"6286:5:97","nodeType":"YulTypedName","src":"6286:5:97","type":""}]},{"body":{"nativeSrc":"6380:21:97","nodeType":"YulBlock","src":"6380:21:97","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"6389:5:97","nodeType":"YulIdentifier","src":"6389:5:97"},{"name":"_1","nativeSrc":"6396:2:97","nodeType":"YulIdentifier","src":"6396:2:97"}],"functionName":{"name":"sstore","nativeSrc":"6382:6:97","nodeType":"YulIdentifier","src":"6382:6:97"},"nativeSrc":"6382:17:97","nodeType":"YulFunctionCall","src":"6382:17:97"},"nativeSrc":"6382:17:97","nodeType":"YulExpressionStatement","src":"6382:17:97"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"6330:5:97","nodeType":"YulIdentifier","src":"6330:5:97"},{"name":"_2","nativeSrc":"6337:2:97","nodeType":"YulIdentifier","src":"6337:2:97"}],"functionName":{"name":"lt","nativeSrc":"6327:2:97","nodeType":"YulIdentifier","src":"6327:2:97"},"nativeSrc":"6327:13:97","nodeType":"YulFunctionCall","src":"6327:13:97"},"nativeSrc":"6319:82:97","nodeType":"YulForLoop","post":{"nativeSrc":"6341:26:97","nodeType":"YulBlock","src":"6341:26:97","statements":[{"nativeSrc":"6343:22:97","nodeType":"YulAssignment","src":"6343:22:97","value":{"arguments":[{"name":"start","nativeSrc":"6356:5:97","nodeType":"YulIdentifier","src":"6356:5:97"},{"kind":"number","nativeSrc":"6363:1:97","nodeType":"YulLiteral","src":"6363:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"6352:3:97","nodeType":"YulIdentifier","src":"6352:3:97"},"nativeSrc":"6352:13:97","nodeType":"YulFunctionCall","src":"6352:13:97"},"variableNames":[{"name":"start","nativeSrc":"6343:5:97","nodeType":"YulIdentifier","src":"6343:5:97"}]}]},"pre":{"nativeSrc":"6323:3:97","nodeType":"YulBlock","src":"6323:3:97","statements":[]},"src":"6319:82:97"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"5971:3:97","nodeType":"YulIdentifier","src":"5971:3:97"},{"kind":"number","nativeSrc":"5976:2:97","nodeType":"YulLiteral","src":"5976:2:97","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"5968:2:97","nodeType":"YulIdentifier","src":"5968:2:97"},"nativeSrc":"5968:11:97","nodeType":"YulFunctionCall","src":"5968:11:97"},"nativeSrc":"5965:446:97","nodeType":"YulIf","src":"5965:446:97"}]},"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"5874:543:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"5927:5:97","nodeType":"YulTypedName","src":"5927:5:97","type":""},{"name":"len","nativeSrc":"5934:3:97","nodeType":"YulTypedName","src":"5934:3:97","type":""},{"name":"startIndex","nativeSrc":"5939:10:97","nodeType":"YulTypedName","src":"5939:10:97","type":""}],"src":"5874:543:97"},{"body":{"nativeSrc":"6507:141:97","nodeType":"YulBlock","src":"6507:141:97","statements":[{"nativeSrc":"6517:125:97","nodeType":"YulAssignment","src":"6517:125:97","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"6532:4:97","nodeType":"YulIdentifier","src":"6532:4:97"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"6550:1:97","nodeType":"YulLiteral","src":"6550:1:97","type":"","value":"3"},{"name":"len","nativeSrc":"6553:3:97","nodeType":"YulIdentifier","src":"6553:3:97"}],"functionName":{"name":"shl","nativeSrc":"6546:3:97","nodeType":"YulIdentifier","src":"6546:3:97"},"nativeSrc":"6546:11:97","nodeType":"YulFunctionCall","src":"6546:11:97"},{"kind":"number","nativeSrc":"6559:66:97","nodeType":"YulLiteral","src":"6559:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shr","nativeSrc":"6542:3:97","nodeType":"YulIdentifier","src":"6542:3:97"},"nativeSrc":"6542:84:97","nodeType":"YulFunctionCall","src":"6542:84:97"}],"functionName":{"name":"not","nativeSrc":"6538:3:97","nodeType":"YulIdentifier","src":"6538:3:97"},"nativeSrc":"6538:89:97","nodeType":"YulFunctionCall","src":"6538:89:97"}],"functionName":{"name":"and","nativeSrc":"6528:3:97","nodeType":"YulIdentifier","src":"6528:3:97"},"nativeSrc":"6528:100:97","nodeType":"YulFunctionCall","src":"6528:100:97"},{"arguments":[{"kind":"number","nativeSrc":"6634:1:97","nodeType":"YulLiteral","src":"6634:1:97","type":"","value":"1"},{"name":"len","nativeSrc":"6637:3:97","nodeType":"YulIdentifier","src":"6637:3:97"}],"functionName":{"name":"shl","nativeSrc":"6630:3:97","nodeType":"YulIdentifier","src":"6630:3:97"},"nativeSrc":"6630:11:97","nodeType":"YulFunctionCall","src":"6630:11:97"}],"functionName":{"name":"or","nativeSrc":"6525:2:97","nodeType":"YulIdentifier","src":"6525:2:97"},"nativeSrc":"6525:117:97","nodeType":"YulFunctionCall","src":"6525:117:97"},"variableNames":[{"name":"used","nativeSrc":"6517:4:97","nodeType":"YulIdentifier","src":"6517:4:97"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"6422:226:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"6484:4:97","nodeType":"YulTypedName","src":"6484:4:97","type":""},{"name":"len","nativeSrc":"6490:3:97","nodeType":"YulTypedName","src":"6490:3:97","type":""}],"returnVariables":[{"name":"used","nativeSrc":"6498:4:97","nodeType":"YulTypedName","src":"6498:4:97","type":""}],"src":"6422:226:97"},{"body":{"nativeSrc":"6749:1368:97","nodeType":"YulBlock","src":"6749:1368:97","statements":[{"nativeSrc":"6759:24:97","nodeType":"YulVariableDeclaration","src":"6759:24:97","value":{"arguments":[{"name":"src","nativeSrc":"6779:3:97","nodeType":"YulIdentifier","src":"6779:3:97"}],"functionName":{"name":"mload","nativeSrc":"6773:5:97","nodeType":"YulIdentifier","src":"6773:5:97"},"nativeSrc":"6773:10:97","nodeType":"YulFunctionCall","src":"6773:10:97"},"variables":[{"name":"newLen","nativeSrc":"6763:6:97","nodeType":"YulTypedName","src":"6763:6:97","type":""}]},{"body":{"nativeSrc":"6826:22:97","nodeType":"YulBlock","src":"6826:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"6828:16:97","nodeType":"YulIdentifier","src":"6828:16:97"},"nativeSrc":"6828:18:97","nodeType":"YulFunctionCall","src":"6828:18:97"},"nativeSrc":"6828:18:97","nodeType":"YulExpressionStatement","src":"6828:18:97"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"6798:6:97","nodeType":"YulIdentifier","src":"6798:6:97"},{"kind":"number","nativeSrc":"6806:18:97","nodeType":"YulLiteral","src":"6806:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"6795:2:97","nodeType":"YulIdentifier","src":"6795:2:97"},"nativeSrc":"6795:30:97","nodeType":"YulFunctionCall","src":"6795:30:97"},"nativeSrc":"6792:56:97","nodeType":"YulIf","src":"6792:56:97"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"6901:4:97","nodeType":"YulIdentifier","src":"6901:4:97"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"6939:4:97","nodeType":"YulIdentifier","src":"6939:4:97"}],"functionName":{"name":"sload","nativeSrc":"6933:5:97","nodeType":"YulIdentifier","src":"6933:5:97"},"nativeSrc":"6933:11:97","nodeType":"YulFunctionCall","src":"6933:11:97"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"6907:25:97","nodeType":"YulIdentifier","src":"6907:25:97"},"nativeSrc":"6907:38:97","nodeType":"YulFunctionCall","src":"6907:38:97"},{"name":"newLen","nativeSrc":"6947:6:97","nodeType":"YulIdentifier","src":"6947:6:97"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"6857:43:97","nodeType":"YulIdentifier","src":"6857:43:97"},"nativeSrc":"6857:97:97","nodeType":"YulFunctionCall","src":"6857:97:97"},"nativeSrc":"6857:97:97","nodeType":"YulExpressionStatement","src":"6857:97:97"},{"nativeSrc":"6963:18:97","nodeType":"YulVariableDeclaration","src":"6963:18:97","value":{"kind":"number","nativeSrc":"6980:1:97","nodeType":"YulLiteral","src":"6980:1:97","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"6967:9:97","nodeType":"YulTypedName","src":"6967:9:97","type":""}]},{"nativeSrc":"6990:23:97","nodeType":"YulVariableDeclaration","src":"6990:23:97","value":{"kind":"number","nativeSrc":"7009:4:97","nodeType":"YulLiteral","src":"7009:4:97","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nativeSrc":"6994:11:97","nodeType":"YulTypedName","src":"6994:11:97","type":""}]},{"nativeSrc":"7022:17:97","nodeType":"YulAssignment","src":"7022:17:97","value":{"kind":"number","nativeSrc":"7035:4:97","nodeType":"YulLiteral","src":"7035:4:97","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"7022:9:97","nodeType":"YulIdentifier","src":"7022:9:97"}]},{"cases":[{"body":{"nativeSrc":"7085:775:97","nodeType":"YulBlock","src":"7085:775:97","statements":[{"nativeSrc":"7099:94:97","nodeType":"YulVariableDeclaration","src":"7099:94:97","value":{"arguments":[{"name":"newLen","nativeSrc":"7118:6:97","nodeType":"YulIdentifier","src":"7118:6:97"},{"kind":"number","nativeSrc":"7126:66:97","nodeType":"YulLiteral","src":"7126:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"7114:3:97","nodeType":"YulIdentifier","src":"7114:3:97"},"nativeSrc":"7114:79:97","nodeType":"YulFunctionCall","src":"7114:79:97"},"variables":[{"name":"loopEnd","nativeSrc":"7103:7:97","nodeType":"YulTypedName","src":"7103:7:97","type":""}]},{"nativeSrc":"7206:49:97","nodeType":"YulVariableDeclaration","src":"7206:49:97","value":{"arguments":[{"name":"slot","nativeSrc":"7250:4:97","nodeType":"YulIdentifier","src":"7250:4:97"}],"functionName":{"name":"array_dataslot_string_storage","nativeSrc":"7220:29:97","nodeType":"YulIdentifier","src":"7220:29:97"},"nativeSrc":"7220:35:97","nodeType":"YulFunctionCall","src":"7220:35:97"},"variables":[{"name":"dstPtr","nativeSrc":"7210:6:97","nodeType":"YulTypedName","src":"7210:6:97","type":""}]},{"nativeSrc":"7268:10:97","nodeType":"YulVariableDeclaration","src":"7268:10:97","value":{"kind":"number","nativeSrc":"7277:1:97","nodeType":"YulLiteral","src":"7277:1:97","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"7272:1:97","nodeType":"YulTypedName","src":"7272:1:97","type":""}]},{"body":{"nativeSrc":"7355:172:97","nodeType":"YulBlock","src":"7355:172:97","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"7380:6:97","nodeType":"YulIdentifier","src":"7380:6:97"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"7398:3:97","nodeType":"YulIdentifier","src":"7398:3:97"},{"name":"srcOffset","nativeSrc":"7403:9:97","nodeType":"YulIdentifier","src":"7403:9:97"}],"functionName":{"name":"add","nativeSrc":"7394:3:97","nodeType":"YulIdentifier","src":"7394:3:97"},"nativeSrc":"7394:19:97","nodeType":"YulFunctionCall","src":"7394:19:97"}],"functionName":{"name":"mload","nativeSrc":"7388:5:97","nodeType":"YulIdentifier","src":"7388:5:97"},"nativeSrc":"7388:26:97","nodeType":"YulFunctionCall","src":"7388:26:97"}],"functionName":{"name":"sstore","nativeSrc":"7373:6:97","nodeType":"YulIdentifier","src":"7373:6:97"},"nativeSrc":"7373:42:97","nodeType":"YulFunctionCall","src":"7373:42:97"},"nativeSrc":"7373:42:97","nodeType":"YulExpressionStatement","src":"7373:42:97"},{"nativeSrc":"7432:24:97","nodeType":"YulAssignment","src":"7432:24:97","value":{"arguments":[{"name":"dstPtr","nativeSrc":"7446:6:97","nodeType":"YulIdentifier","src":"7446:6:97"},{"kind":"number","nativeSrc":"7454:1:97","nodeType":"YulLiteral","src":"7454:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"7442:3:97","nodeType":"YulIdentifier","src":"7442:3:97"},"nativeSrc":"7442:14:97","nodeType":"YulFunctionCall","src":"7442:14:97"},"variableNames":[{"name":"dstPtr","nativeSrc":"7432:6:97","nodeType":"YulIdentifier","src":"7432:6:97"}]},{"nativeSrc":"7473:40:97","nodeType":"YulAssignment","src":"7473:40:97","value":{"arguments":[{"name":"srcOffset","nativeSrc":"7490:9:97","nodeType":"YulIdentifier","src":"7490:9:97"},{"name":"srcOffset_1","nativeSrc":"7501:11:97","nodeType":"YulIdentifier","src":"7501:11:97"}],"functionName":{"name":"add","nativeSrc":"7486:3:97","nodeType":"YulIdentifier","src":"7486:3:97"},"nativeSrc":"7486:27:97","nodeType":"YulFunctionCall","src":"7486:27:97"},"variableNames":[{"name":"srcOffset","nativeSrc":"7473:9:97","nodeType":"YulIdentifier","src":"7473:9:97"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"7302:1:97","nodeType":"YulIdentifier","src":"7302:1:97"},{"name":"loopEnd","nativeSrc":"7305:7:97","nodeType":"YulIdentifier","src":"7305:7:97"}],"functionName":{"name":"lt","nativeSrc":"7299:2:97","nodeType":"YulIdentifier","src":"7299:2:97"},"nativeSrc":"7299:14:97","nodeType":"YulFunctionCall","src":"7299:14:97"},"nativeSrc":"7291:236:97","nodeType":"YulForLoop","post":{"nativeSrc":"7314:28:97","nodeType":"YulBlock","src":"7314:28:97","statements":[{"nativeSrc":"7316:24:97","nodeType":"YulAssignment","src":"7316:24:97","value":{"arguments":[{"name":"i","nativeSrc":"7325:1:97","nodeType":"YulIdentifier","src":"7325:1:97"},{"name":"srcOffset_1","nativeSrc":"7328:11:97","nodeType":"YulIdentifier","src":"7328:11:97"}],"functionName":{"name":"add","nativeSrc":"7321:3:97","nodeType":"YulIdentifier","src":"7321:3:97"},"nativeSrc":"7321:19:97","nodeType":"YulFunctionCall","src":"7321:19:97"},"variableNames":[{"name":"i","nativeSrc":"7316:1:97","nodeType":"YulIdentifier","src":"7316:1:97"}]}]},"pre":{"nativeSrc":"7295:3:97","nodeType":"YulBlock","src":"7295:3:97","statements":[]},"src":"7291:236:97"},{"body":{"nativeSrc":"7575:226:97","nodeType":"YulBlock","src":"7575:226:97","statements":[{"nativeSrc":"7593:43:97","nodeType":"YulVariableDeclaration","src":"7593:43:97","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"7620:3:97","nodeType":"YulIdentifier","src":"7620:3:97"},{"name":"srcOffset","nativeSrc":"7625:9:97","nodeType":"YulIdentifier","src":"7625:9:97"}],"functionName":{"name":"add","nativeSrc":"7616:3:97","nodeType":"YulIdentifier","src":"7616:3:97"},"nativeSrc":"7616:19:97","nodeType":"YulFunctionCall","src":"7616:19:97"}],"functionName":{"name":"mload","nativeSrc":"7610:5:97","nodeType":"YulIdentifier","src":"7610:5:97"},"nativeSrc":"7610:26:97","nodeType":"YulFunctionCall","src":"7610:26:97"},"variables":[{"name":"lastValue","nativeSrc":"7597:9:97","nodeType":"YulTypedName","src":"7597:9:97","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"7660:6:97","nodeType":"YulIdentifier","src":"7660:6:97"},{"arguments":[{"name":"lastValue","nativeSrc":"7672:9:97","nodeType":"YulIdentifier","src":"7672:9:97"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7699:1:97","nodeType":"YulLiteral","src":"7699:1:97","type":"","value":"3"},{"name":"newLen","nativeSrc":"7702:6:97","nodeType":"YulIdentifier","src":"7702:6:97"}],"functionName":{"name":"shl","nativeSrc":"7695:3:97","nodeType":"YulIdentifier","src":"7695:3:97"},"nativeSrc":"7695:14:97","nodeType":"YulFunctionCall","src":"7695:14:97"},{"kind":"number","nativeSrc":"7711:3:97","nodeType":"YulLiteral","src":"7711:3:97","type":"","value":"248"}],"functionName":{"name":"and","nativeSrc":"7691:3:97","nodeType":"YulIdentifier","src":"7691:3:97"},"nativeSrc":"7691:24:97","nodeType":"YulFunctionCall","src":"7691:24:97"},{"kind":"number","nativeSrc":"7717:66:97","nodeType":"YulLiteral","src":"7717:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shr","nativeSrc":"7687:3:97","nodeType":"YulIdentifier","src":"7687:3:97"},"nativeSrc":"7687:97:97","nodeType":"YulFunctionCall","src":"7687:97:97"}],"functionName":{"name":"not","nativeSrc":"7683:3:97","nodeType":"YulIdentifier","src":"7683:3:97"},"nativeSrc":"7683:102:97","nodeType":"YulFunctionCall","src":"7683:102:97"}],"functionName":{"name":"and","nativeSrc":"7668:3:97","nodeType":"YulIdentifier","src":"7668:3:97"},"nativeSrc":"7668:118:97","nodeType":"YulFunctionCall","src":"7668:118:97"}],"functionName":{"name":"sstore","nativeSrc":"7653:6:97","nodeType":"YulIdentifier","src":"7653:6:97"},"nativeSrc":"7653:134:97","nodeType":"YulFunctionCall","src":"7653:134:97"},"nativeSrc":"7653:134:97","nodeType":"YulExpressionStatement","src":"7653:134:97"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"7546:7:97","nodeType":"YulIdentifier","src":"7546:7:97"},{"name":"newLen","nativeSrc":"7555:6:97","nodeType":"YulIdentifier","src":"7555:6:97"}],"functionName":{"name":"lt","nativeSrc":"7543:2:97","nodeType":"YulIdentifier","src":"7543:2:97"},"nativeSrc":"7543:19:97","nodeType":"YulFunctionCall","src":"7543:19:97"},"nativeSrc":"7540:261:97","nodeType":"YulIf","src":"7540:261:97"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"7821:4:97","nodeType":"YulIdentifier","src":"7821:4:97"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7835:1:97","nodeType":"YulLiteral","src":"7835:1:97","type":"","value":"1"},{"name":"newLen","nativeSrc":"7838:6:97","nodeType":"YulIdentifier","src":"7838:6:97"}],"functionName":{"name":"shl","nativeSrc":"7831:3:97","nodeType":"YulIdentifier","src":"7831:3:97"},"nativeSrc":"7831:14:97","nodeType":"YulFunctionCall","src":"7831:14:97"},{"kind":"number","nativeSrc":"7847:1:97","nodeType":"YulLiteral","src":"7847:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"7827:3:97","nodeType":"YulIdentifier","src":"7827:3:97"},"nativeSrc":"7827:22:97","nodeType":"YulFunctionCall","src":"7827:22:97"}],"functionName":{"name":"sstore","nativeSrc":"7814:6:97","nodeType":"YulIdentifier","src":"7814:6:97"},"nativeSrc":"7814:36:97","nodeType":"YulFunctionCall","src":"7814:36:97"},"nativeSrc":"7814:36:97","nodeType":"YulExpressionStatement","src":"7814:36:97"}]},"nativeSrc":"7078:782:97","nodeType":"YulCase","src":"7078:782:97","value":{"kind":"number","nativeSrc":"7083:1:97","nodeType":"YulLiteral","src":"7083:1:97","type":"","value":"1"}},{"body":{"nativeSrc":"7877:234:97","nodeType":"YulBlock","src":"7877:234:97","statements":[{"nativeSrc":"7891:14:97","nodeType":"YulVariableDeclaration","src":"7891:14:97","value":{"kind":"number","nativeSrc":"7904:1:97","nodeType":"YulLiteral","src":"7904:1:97","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"7895:5:97","nodeType":"YulTypedName","src":"7895:5:97","type":""}]},{"body":{"nativeSrc":"7940:67:97","nodeType":"YulBlock","src":"7940:67:97","statements":[{"nativeSrc":"7958:35:97","nodeType":"YulAssignment","src":"7958:35:97","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"7977:3:97","nodeType":"YulIdentifier","src":"7977:3:97"},{"name":"srcOffset","nativeSrc":"7982:9:97","nodeType":"YulIdentifier","src":"7982:9:97"}],"functionName":{"name":"add","nativeSrc":"7973:3:97","nodeType":"YulIdentifier","src":"7973:3:97"},"nativeSrc":"7973:19:97","nodeType":"YulFunctionCall","src":"7973:19:97"}],"functionName":{"name":"mload","nativeSrc":"7967:5:97","nodeType":"YulIdentifier","src":"7967:5:97"},"nativeSrc":"7967:26:97","nodeType":"YulFunctionCall","src":"7967:26:97"},"variableNames":[{"name":"value","nativeSrc":"7958:5:97","nodeType":"YulIdentifier","src":"7958:5:97"}]}]},"condition":{"name":"newLen","nativeSrc":"7921:6:97","nodeType":"YulIdentifier","src":"7921:6:97"},"nativeSrc":"7918:89:97","nodeType":"YulIf","src":"7918:89:97"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"8027:4:97","nodeType":"YulIdentifier","src":"8027:4:97"},{"arguments":[{"name":"value","nativeSrc":"8086:5:97","nodeType":"YulIdentifier","src":"8086:5:97"},{"name":"newLen","nativeSrc":"8093:6:97","nodeType":"YulIdentifier","src":"8093:6:97"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"8033:52:97","nodeType":"YulIdentifier","src":"8033:52:97"},"nativeSrc":"8033:67:97","nodeType":"YulFunctionCall","src":"8033:67:97"}],"functionName":{"name":"sstore","nativeSrc":"8020:6:97","nodeType":"YulIdentifier","src":"8020:6:97"},"nativeSrc":"8020:81:97","nodeType":"YulFunctionCall","src":"8020:81:97"},"nativeSrc":"8020:81:97","nodeType":"YulExpressionStatement","src":"8020:81:97"}]},"nativeSrc":"7869:242:97","nodeType":"YulCase","src":"7869:242:97","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"7058:6:97","nodeType":"YulIdentifier","src":"7058:6:97"},{"kind":"number","nativeSrc":"7066:2:97","nodeType":"YulLiteral","src":"7066:2:97","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"7055:2:97","nodeType":"YulIdentifier","src":"7055:2:97"},"nativeSrc":"7055:14:97","nodeType":"YulFunctionCall","src":"7055:14:97"},"nativeSrc":"7048:1063:97","nodeType":"YulSwitch","src":"7048:1063:97"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"6653:1464:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"6734:4:97","nodeType":"YulTypedName","src":"6734:4:97","type":""},{"name":"src","nativeSrc":"6740:3:97","nodeType":"YulTypedName","src":"6740:3:97","type":""}],"src":"6653:1464:97"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_address_t_string_memory_ptr_t_address__to_t_address_t_string_memory_ptr_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        let _2 := 32\n        mstore(add(headStart, 32), 96)\n        let length := mload(value1)\n        mstore(add(headStart, 96), length)\n        let i := 0\n        for { } lt(i, length) { i := add(i, _2) }\n        {\n            mstore(add(add(headStart, i), 128), mload(add(add(value1, i), _2)))\n        }\n        mstore(add(add(headStart, length), 128), 0)\n        tail := add(add(headStart, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 128)\n        mstore(add(headStart, 64), and(value2, _1))\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function allocate_memory_1501() -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, 0x60)\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function allocate_memory(size) -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(size, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_array$_t_struct$_Permission_$19945_memory_ptr_$dyn_memory_ptr(headStart, dataEnd) -> value0\n    {\n        let _1 := 32\n        if slt(sub(dataEnd, headStart), _1) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        let _2 := 0xffffffffffffffff\n        if gt(offset, _2) { revert(0, 0) }\n        let _3 := add(headStart, offset)\n        if iszero(slt(add(_3, 0x1f), dataEnd)) { revert(0, 0) }\n        let _4 := calldataload(_3)\n        if gt(_4, _2) { panic_error_0x41() }\n        let _5 := shl(5, _4)\n        let dst := allocate_memory(add(_5, _1))\n        let dst_1 := dst\n        mstore(dst, _4)\n        dst := add(dst, _1)\n        let srcEnd := add(add(_3, _5), _1)\n        if gt(srcEnd, dataEnd) { revert(0, 0) }\n        let src := add(_3, _1)\n        for { } lt(src, srcEnd) { src := add(src, _1) }\n        {\n            let innerOffset := calldataload(src)\n            if gt(innerOffset, _2) { revert(0, 0) }\n            let _6 := add(_3, innerOffset)\n            let _7 := 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0\n            if slt(add(sub(dataEnd, _6), _7), 0x60)\n            {\n                let _8 := 0\n                revert(_8, _8)\n            }\n            let value := allocate_memory_1501()\n            mstore(value, abi_decode_address(add(_6, _1)))\n            let _9 := 64\n            let offset_1 := calldataload(add(_6, _9))\n            if gt(offset_1, _2)\n            {\n                let _10 := 0\n                revert(_10, _10)\n            }\n            let _11 := add(_6, offset_1)\n            if iszero(slt(add(_11, 63), dataEnd))\n            {\n                let _12 := 0\n                revert(_12, _12)\n            }\n            let _13 := calldataload(add(_11, _1))\n            if gt(_13, _2) { panic_error_0x41() }\n            let array := allocate_memory(add(and(add(_13, 0x1f), _7), _1))\n            mstore(array, _13)\n            if gt(add(add(_11, _13), _9), dataEnd)\n            {\n                let _14 := 0\n                revert(_14, _14)\n            }\n            calldatacopy(add(array, _1), add(_11, _9), _13)\n            mstore(add(add(array, _13), _1), 0)\n            mstore(add(value, _1), array)\n            mstore(add(value, _9), abi_decode_address(add(_6, 0x60)))\n            mstore(dst, value)\n            dst := add(dst, _1)\n        }\n        value0 := dst_1\n    }\n    function abi_encode_tuple_t_contract$_IAccessControlManagerV8_$13903__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function array_dataslot_string_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            let _1 := 0\n            mstore(0, array)\n            let data := keccak256(0, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _2 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _2) { start := add(start, 1) }\n            { sstore(start, _1) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n    {\n        let newLen := mload(src)\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        let srcOffset_1 := 0x20\n        srcOffset := 0x20\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n            {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, srcOffset_1)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n}","id":97,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"19949":[{"length":32,"start":256},{"length":32,"start":734},{"length":32,"start":2561}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061007d5760003560e01c80639d6c76b81161005b5780639d6c76b8146100d5578063de46a235146100e8578063f9b80da1146100fb578063ff1575e11461014757600080fd5b806322473d8c14610082578063514aab87146100975780635666a5ea146100c2575b600080fd5b610095610090366004610ab8565b61015a565b005b6100aa6100a5366004610ad1565b61038d565b6040516100b993929190610af3565b60405180910390f35b6100956100d0366004610c59565b610492565b6100956100e3366004610c59565b610689565b6100956100f6366004610ab8565b61087f565b6101227f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100b9565b6100aa610155366004610ad1565b610aa8565b60006001828154811061016f5761016f610de1565b600091825260208220015491505b818110156103545760006001848154811061019a5761019a610de1565b9060005260206000200182815481106101b5576101b5610de1565b60009182526020918290206040805160608101909152600390920201805473ffffffffffffffffffffffffffffffffffffffff168252600181018054929391929184019161020290610e10565b80601f016020809104026020016040519081016040528092919081815260200182805461022e90610e10565b801561027b5780601f106102505761010080835404028352916020019161027b565b820191906000526020600020905b81548152906001019060200180831161025e57829003601f168201915b50505091835250506002919091015473ffffffffffffffffffffffffffffffffffffffff90811660209283015282519183015160408085015190517f545f7a320000000000000000000000000000000000000000000000000000000081529495507f00000000000000000000000000000000000000000000000000000000000000009092169363545f7a329361031693909291600401610af3565b600060405180830381600087803b15801561033057600080fd5b505af1158015610344573d6000803e3d6000fd5b505050505080600101905061017d565b506040518281527f1382323d6618527d8b03daa05db815f0490966e8b80679fe5ad3d868f84e1a71906020015b60405180910390a15050565b6000828154811061039d57600080fd5b9060005260206000200181815481106103b557600080fd5b60009182526020909120600390910201805460018201805473ffffffffffffffffffffffffffffffffffffffff90921694509192506103f390610e10565b80601f016020809104026020016040519081016040528092919081815260200182805461041f90610e10565b801561046c5780601f106104415761010080835404028352916020019161046c565b820191906000526020600020905b81548152906001019060200180831161044f57829003601f168201915b5050506002909301549192505073ffffffffffffffffffffffffffffffffffffffff1683565b80516000036104cd576040517f4494013c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001805480820182556000918252905b825181101561065857600182815481106104f9576104f9610de1565b90600052602060002001604051806060016040528085848151811061052057610520610de1565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff16815260200185848151811061055957610559610de1565b602002602001015160200151815260200185848151811061057c5761057c610de1565b6020908102919091018101516040015173ffffffffffffffffffffffffffffffffffffffff908116909252835460018082018655600095865294829020845160039092020180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169190931617825582015191929091908201906106019082610eb4565b5060409190910151600290910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9092169190911790556001016104dd565b506040518181527f75922591bf2cec980645dc4a32bb7d5e8da9a15fda86dacf06f8402cecd1478f90602001610381565b80516000036106c4576040517f4494013c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008054600181018255818052905b825181101561084e57600082815481106106ef576106ef610de1565b90600052602060002001604051806060016040528085848151811061071657610716610de1565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff16815260200185848151811061074f5761074f610de1565b602002602001015160200151815260200185848151811061077257610772610de1565b6020908102919091018101516040015173ffffffffffffffffffffffffffffffffffffffff908116909252835460018082018655600095865294829020845160039092020180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169190931617825582015191929091908201906107f79082610eb4565b5060409190910151600290910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9092169190911790556001016106d3565b506040518181527ff8ca6ea7cc31be8572501c37ef5e9e8298be717fb881e0b1ca785aecc4d25e9f90602001610381565b600080828154811061089357610893610de1565b600091825260208220015491505b81811015610a775760008084815481106108bd576108bd610de1565b9060005260206000200182815481106108d8576108d8610de1565b60009182526020918290206040805160608101909152600390920201805473ffffffffffffffffffffffffffffffffffffffff168252600181018054929391929184019161092590610e10565b80601f016020809104026020016040519081016040528092919081815260200182805461095190610e10565b801561099e5780601f106109735761010080835404028352916020019161099e565b820191906000526020600020905b81548152906001019060200180831161098157829003601f168201915b50505091835250506002919091015473ffffffffffffffffffffffffffffffffffffffff90811660209283015282519183015160408085015190517f584f6b600000000000000000000000000000000000000000000000000000000081529495507f00000000000000000000000000000000000000000000000000000000000000009092169363584f6b6093610a3993909291600401610af3565b600060405180830381600087803b158015610a5357600080fd5b505af1158015610a67573d6000803e3d6000fd5b50505050508060010190506108a1565b506040518281527f01a805f459381af632ecab72ec192c3f9a4c72d26be089026ffd6636d82de98890602001610381565b6001828154811061039d57600080fd5b600060208284031215610aca57600080fd5b5035919050565b60008060408385031215610ae457600080fd5b50508035926020909101359150565b600073ffffffffffffffffffffffffffffffffffffffff8086168352602060606020850152855180606086015260005b81811015610b3f57878101830151868201608001528201610b23565b5060006080828701015260807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011686010193505050808416604084015250949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715610bdb57610bdb610b89565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610c2857610c28610b89565b604052919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610c5457600080fd5b919050565b60006020808385031215610c6c57600080fd5b823567ffffffffffffffff80821115610c8457600080fd5b818501915085601f830112610c9857600080fd5b813581811115610caa57610caa610b89565b8060051b610cb9858201610be1565b9182528381018501918581019089841115610cd357600080fd5b86860192505b83831015610dd457823585811115610cf057600080fd5b86017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06060828d0382011215610d265760008081fd5b610d2e610bb8565b610d398a8401610c30565b815260408084013589811115610d4f5760008081fd5b8401603f81018f13610d615760008081fd5b8b8101358a811115610d7557610d75610b89565b610d858d86601f84011601610be1565b94508085528f83828401011115610d9c5760008081fd5b808383018e87013760008d82870101525050828b830152610dbf60608501610c30565b90820152845250509186019190860190610cd9565b9998505050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600181811c90821680610e2457607f821691505b602082108103610e5d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f821115610eaf576000816000526020600020601f850160051c81016020861015610e8c5750805b601f850160051c820191505b81811015610eab57828155600101610e98565b5050505b505050565b815167ffffffffffffffff811115610ece57610ece610b89565b610ee281610edc8454610e10565b84610e63565b602080601f831160018114610f355760008415610eff5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610eab565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015610f8257888601518255948401946001909101908401610f63565b5085821015610fbe57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b0190555056fea264697066735822122090d4936e163063dfe747da5bf04cc06002b17436a13e78a30b2797e6219ebb2264736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x7D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9D6C76B8 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x9D6C76B8 EQ PUSH2 0xD5 JUMPI DUP1 PUSH4 0xDE46A235 EQ PUSH2 0xE8 JUMPI DUP1 PUSH4 0xF9B80DA1 EQ PUSH2 0xFB JUMPI DUP1 PUSH4 0xFF1575E1 EQ PUSH2 0x147 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x22473D8C EQ PUSH2 0x82 JUMPI DUP1 PUSH4 0x514AAB87 EQ PUSH2 0x97 JUMPI DUP1 PUSH4 0x5666A5EA EQ PUSH2 0xC2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x95 PUSH2 0x90 CALLDATASIZE PUSH1 0x4 PUSH2 0xAB8 JUMP JUMPDEST PUSH2 0x15A JUMP JUMPDEST STOP JUMPDEST PUSH2 0xAA PUSH2 0xA5 CALLDATASIZE PUSH1 0x4 PUSH2 0xAD1 JUMP JUMPDEST PUSH2 0x38D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB9 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xAF3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x95 PUSH2 0xD0 CALLDATASIZE PUSH1 0x4 PUSH2 0xC59 JUMP JUMPDEST PUSH2 0x492 JUMP JUMPDEST PUSH2 0x95 PUSH2 0xE3 CALLDATASIZE PUSH1 0x4 PUSH2 0xC59 JUMP JUMPDEST PUSH2 0x689 JUMP JUMPDEST PUSH2 0x95 PUSH2 0xF6 CALLDATASIZE PUSH1 0x4 PUSH2 0xAB8 JUMP JUMPDEST PUSH2 0x87F JUMP JUMPDEST PUSH2 0x122 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xB9 JUMP JUMPDEST PUSH2 0xAA PUSH2 0x155 CALLDATASIZE PUSH1 0x4 PUSH2 0xAD1 JUMP JUMPDEST PUSH2 0xAA8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x16F JUMPI PUSH2 0x16F PUSH2 0xDE1 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 KECCAK256 ADD SLOAD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x354 JUMPI PUSH1 0x0 PUSH1 0x1 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x19A JUMPI PUSH2 0x19A PUSH2 0xDE1 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1B5 JUMPI PUSH2 0x1B5 PUSH2 0xDE1 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x3 SWAP1 SWAP3 MUL ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 MSTORE PUSH1 0x1 DUP2 ADD DUP1 SLOAD SWAP3 SWAP4 SWAP2 SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH2 0x202 SWAP1 PUSH2 0xE10 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x22E SWAP1 PUSH2 0xE10 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x27B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x250 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x27B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x25E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x2 SWAP2 SWAP1 SWAP2 ADD SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND PUSH1 0x20 SWAP3 DUP4 ADD MSTORE DUP3 MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x40 DUP1 DUP6 ADD MLOAD SWAP1 MLOAD PUSH32 0x545F7A3200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP5 SWAP6 POP PUSH32 0x0 SWAP1 SWAP3 AND SWAP4 PUSH4 0x545F7A32 SWAP4 PUSH2 0x316 SWAP4 SWAP1 SWAP3 SWAP2 PUSH1 0x4 ADD PUSH2 0xAF3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x330 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x344 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x17D JUMP JUMPDEST POP PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH32 0x1382323D6618527D8B03DAA05DB815F0490966E8B80679FE5AD3D868F84E1A71 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x39D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x3B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x3 SWAP1 SWAP2 MUL ADD DUP1 SLOAD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP5 POP SWAP2 SWAP3 POP PUSH2 0x3F3 SWAP1 PUSH2 0xE10 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x41F SWAP1 PUSH2 0xE10 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x46C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x441 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x46C JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x44F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP PUSH1 0x2 SWAP1 SWAP4 ADD SLOAD SWAP2 SWAP3 POP POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x4CD JUMPI PUSH1 0x40 MLOAD PUSH32 0x4494013C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD DUP1 DUP3 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE SWAP1 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x658 JUMPI PUSH1 0x1 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x4F9 JUMPI PUSH2 0x4F9 PUSH2 0xDE1 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x520 JUMPI PUSH2 0x520 PUSH2 0xDE1 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x559 JUMPI PUSH2 0x559 PUSH2 0xDE1 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x57C JUMPI PUSH2 0x57C PUSH2 0xDE1 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x40 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND SWAP1 SWAP3 MSTORE DUP4 SLOAD PUSH1 0x1 DUP1 DUP3 ADD DUP7 SSTORE PUSH1 0x0 SWAP6 DUP7 MSTORE SWAP5 DUP3 SWAP1 KECCAK256 DUP5 MLOAD PUSH1 0x3 SWAP1 SWAP3 MUL ADD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND SWAP2 SWAP1 SWAP4 AND OR DUP3 SSTORE DUP3 ADD MLOAD SWAP2 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 ADD SWAP1 PUSH2 0x601 SWAP1 DUP3 PUSH2 0xEB4 JUMP JUMPDEST POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD MLOAD PUSH1 0x2 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x1 ADD PUSH2 0x4DD JUMP JUMPDEST POP PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0x75922591BF2CEC980645DC4A32BB7D5E8DA9A15FDA86DACF06F8402CECD1478F SWAP1 PUSH1 0x20 ADD PUSH2 0x381 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x6C4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x4494013C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE DUP2 DUP1 MSTORE SWAP1 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x84E JUMPI PUSH1 0x0 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x6EF JUMPI PUSH2 0x6EF PUSH2 0xDE1 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x716 JUMPI PUSH2 0x716 PUSH2 0xDE1 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x74F JUMPI PUSH2 0x74F PUSH2 0xDE1 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x772 JUMPI PUSH2 0x772 PUSH2 0xDE1 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x40 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND SWAP1 SWAP3 MSTORE DUP4 SLOAD PUSH1 0x1 DUP1 DUP3 ADD DUP7 SSTORE PUSH1 0x0 SWAP6 DUP7 MSTORE SWAP5 DUP3 SWAP1 KECCAK256 DUP5 MLOAD PUSH1 0x3 SWAP1 SWAP3 MUL ADD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND SWAP2 SWAP1 SWAP4 AND OR DUP3 SSTORE DUP3 ADD MLOAD SWAP2 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 ADD SWAP1 PUSH2 0x7F7 SWAP1 DUP3 PUSH2 0xEB4 JUMP JUMPDEST POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD MLOAD PUSH1 0x2 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x1 ADD PUSH2 0x6D3 JUMP JUMPDEST POP PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0xF8CA6EA7CC31BE8572501C37EF5E9E8298BE717FB881E0B1CA785AECC4D25E9F SWAP1 PUSH1 0x20 ADD PUSH2 0x381 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x893 JUMPI PUSH2 0x893 PUSH2 0xDE1 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 KECCAK256 ADD SLOAD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xA77 JUMPI PUSH1 0x0 DUP1 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x8BD JUMPI PUSH2 0x8BD PUSH2 0xDE1 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x8D8 JUMPI PUSH2 0x8D8 PUSH2 0xDE1 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x3 SWAP1 SWAP3 MUL ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 MSTORE PUSH1 0x1 DUP2 ADD DUP1 SLOAD SWAP3 SWAP4 SWAP2 SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH2 0x925 SWAP1 PUSH2 0xE10 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x951 SWAP1 PUSH2 0xE10 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x99E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x973 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x99E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x981 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x2 SWAP2 SWAP1 SWAP2 ADD SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND PUSH1 0x20 SWAP3 DUP4 ADD MSTORE DUP3 MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x40 DUP1 DUP6 ADD MLOAD SWAP1 MLOAD PUSH32 0x584F6B6000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP5 SWAP6 POP PUSH32 0x0 SWAP1 SWAP3 AND SWAP4 PUSH4 0x584F6B60 SWAP4 PUSH2 0xA39 SWAP4 SWAP1 SWAP3 SWAP2 PUSH1 0x4 ADD PUSH2 0xAF3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA53 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA67 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x8A1 JUMP JUMPDEST POP PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH32 0x1A805F459381AF632ECAB72EC192C3F9A4C72D26BE089026FFD6636D82DE988 SWAP1 PUSH1 0x20 ADD PUSH2 0x381 JUMP JUMPDEST PUSH1 0x1 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x39D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xACA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xAE4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP7 AND DUP4 MSTORE PUSH1 0x20 PUSH1 0x60 PUSH1 0x20 DUP6 ADD MSTORE DUP6 MLOAD DUP1 PUSH1 0x60 DUP7 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xB3F JUMPI DUP8 DUP2 ADD DUP4 ADD MLOAD DUP7 DUP3 ADD PUSH1 0x80 ADD MSTORE DUP3 ADD PUSH2 0xB23 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x80 DUP3 DUP8 ADD ADD MSTORE PUSH1 0x80 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 PUSH1 0x1F DUP4 ADD AND DUP7 ADD ADD SWAP4 POP POP POP DUP1 DUP5 AND PUSH1 0x40 DUP5 ADD MSTORE POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x60 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xBDB JUMPI PUSH2 0xBDB PUSH2 0xB89 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xC28 JUMPI PUSH2 0xC28 PUSH2 0xB89 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0xC54 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xC84 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xC98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0xCAA JUMPI PUSH2 0xCAA PUSH2 0xB89 JUMP JUMPDEST DUP1 PUSH1 0x5 SHL PUSH2 0xCB9 DUP6 DUP3 ADD PUSH2 0xBE1 JUMP JUMPDEST SWAP2 DUP3 MSTORE DUP4 DUP2 ADD DUP6 ADD SWAP2 DUP6 DUP2 ADD SWAP1 DUP10 DUP5 GT ISZERO PUSH2 0xCD3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 DUP7 ADD SWAP3 POP JUMPDEST DUP4 DUP4 LT ISZERO PUSH2 0xDD4 JUMPI DUP3 CALLDATALOAD DUP6 DUP2 GT ISZERO PUSH2 0xCF0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 PUSH1 0x60 DUP3 DUP14 SUB DUP3 ADD SLT ISZERO PUSH2 0xD26 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0xD2E PUSH2 0xBB8 JUMP JUMPDEST PUSH2 0xD39 DUP11 DUP5 ADD PUSH2 0xC30 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 ADD CALLDATALOAD DUP10 DUP2 GT ISZERO PUSH2 0xD4F JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST DUP5 ADD PUSH1 0x3F DUP2 ADD DUP16 SGT PUSH2 0xD61 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST DUP12 DUP2 ADD CALLDATALOAD DUP11 DUP2 GT ISZERO PUSH2 0xD75 JUMPI PUSH2 0xD75 PUSH2 0xB89 JUMP JUMPDEST PUSH2 0xD85 DUP14 DUP7 PUSH1 0x1F DUP5 ADD AND ADD PUSH2 0xBE1 JUMP JUMPDEST SWAP5 POP DUP1 DUP6 MSTORE DUP16 DUP4 DUP3 DUP5 ADD ADD GT ISZERO PUSH2 0xD9C JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST DUP1 DUP4 DUP4 ADD DUP15 DUP8 ADD CALLDATACOPY PUSH1 0x0 DUP14 DUP3 DUP8 ADD ADD MSTORE POP POP DUP3 DUP12 DUP4 ADD MSTORE PUSH2 0xDBF PUSH1 0x60 DUP6 ADD PUSH2 0xC30 JUMP JUMPDEST SWAP1 DUP3 ADD MSTORE DUP5 MSTORE POP POP SWAP2 DUP7 ADD SWAP2 SWAP1 DUP7 ADD SWAP1 PUSH2 0xCD9 JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0xE24 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xE5D JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0xEAF JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0xE8C JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xEAB JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0xE98 JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xECE JUMPI PUSH2 0xECE PUSH2 0xB89 JUMP JUMPDEST PUSH2 0xEE2 DUP2 PUSH2 0xEDC DUP5 SLOAD PUSH2 0xE10 JUMP JUMPDEST DUP5 PUSH2 0xE63 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0xF35 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0xEFF JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0xEAB JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0xF82 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0xF63 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0xFBE JUMPI DUP8 DUP6 ADD MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP1 0xD4 SWAP4 PUSH15 0x163063DFE747DA5BF04CC06002B174 CALLDATASIZE LOG1 RETURNDATACOPY PUSH25 0xA30B2797E6219EBB2264736F6C634300081900330000000000 ","sourceMap":"435:4240:71:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4267:406;;;;;;:::i;:::-;;:::i;:::-;;1037:38;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;2961:538;;;;;;:::i;:::-;;:::i;2253:533::-;;;;;;:::i;:::-;;:::i;3682:400::-;;;;;;:::i;:::-;;:::i;909:44::-;;;;;;;;4880:42:97;4868:55;;;4850:74;;4838:2;4823:18;909:44:71;4671:259:97;1160:39:71;;;;;;:::i;:::-;;:::i;4267:406::-;4335:14;4352:17;4370:5;4352:24;;;;;;;;:::i;:::-;;;;;;;;;:31;;-1:-1:-1;4393:226:71;4413:6;4409:1;:10;4393:226;;;4440:28;4471:17;4489:5;4471:24;;;;;;;;:::i;:::-;;;;;;;;4496:1;4471:27;;;;;;;;:::i;:::-;;;;;;;;;;4440:58;;;;;;;;;4471:27;;;;;4440:58;;;;;;;;;;;;;4471:27;;4440:58;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4440:58:71;;;-1:-1:-1;;4440:58:71;;;;;;;;;;;;;;;4537:26;;4565:22;;;;4589:18;;;;;4512:96;;;;;4440:58;;-1:-1:-1;4512:3:71;:24;;;;;;:96;;4537:26;;4565:22;4512:96;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4426:193;4421:3;;;;;4393:226;;;-1:-1:-1;4634:32:71;;5712:25:97;;;4634:32:71;;5700:2:97;5685:18;4634:32:71;;;;;;;;4325:348;4267:406;:::o;1037:38::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1037:38:71;;-1:-1:-1;1037:38:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1037:38:71;;;;;;;-1:-1:-1;;1037:38:71;;;:::o;2961:538::-;3048:12;:19;3071:1;3048:24;3044:80;;3095:18;;;;;;;;;;;;;;3044:80;3150:17;:24;;3184;;;;;3134:13;3184:24;;;3150;3219:229;3239:12;:19;3235:1;:23;3219:229;;;3279:17;3297:5;3279:24;;;;;;;;:::i;:::-;;;;;;;;3326:97;;;;;;;;3337:12;3350:1;3337:15;;;;;;;;:::i;:::-;;;;;;;:31;;;3326:97;;;;;;3370:12;3383:1;3370:15;;;;;;;;:::i;:::-;;;;;;;:27;;;3326:97;;;;3399:12;3412:1;3399:15;;;;;;;;:::i;:::-;;;;;;;;;;;;:23;;;3326:97;;;;;;;3279:158;;;;;;;;-1:-1:-1;3279:158:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;3279:158:71;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3260:3:71;3219:229;;;-1:-1:-1;3463:29:71;;5712:25:97;;;3463:29:71;;5700:2:97;5685:18;3463:29:71;5566:177:97;2253:533:71;2339:12;:19;2362:1;2339:24;2335:80;;2386:18;;;;;;;;;;;;;;2335:80;2425:13;2441:23;;2474;;;;;;;;2441;2508:228;2528:12;:19;2524:1;:23;2508:228;;;2568:16;2585:5;2568:23;;;;;;;;:::i;:::-;;;;;;;;2614:97;;;;;;;;2625:12;2638:1;2625:15;;;;;;;;:::i;:::-;;;;;;;:31;;;2614:97;;;;;;2658:12;2671:1;2658:15;;;;;;;;:::i;:::-;;;;;;;:27;;;2614:97;;;;2687:12;2700:1;2687:15;;;;;;;;:::i;:::-;;;;;;;;;;;;:23;;;2614:97;;;;;;;2568:157;;;;;;;;-1:-1:-1;2568:157:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;2568:157:71;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2549:3:71;2508:228;;;-1:-1:-1;2751:28:71;;5712:25:97;;;2751:28:71;;5700:2:97;5685:18;2751:28:71;5566:177:97;3682:400:71;3749:14;3766:16;3783:5;3766:23;;;;;;;;:::i;:::-;;;;;;;;;:30;;-1:-1:-1;3806:223:71;3826:6;3822:1;:10;3806:223;;;3853:28;3884:16;3901:5;3884:23;;;;;;;;:::i;:::-;;;;;;;;3908:1;3884:26;;;;;;;;:::i;:::-;;;;;;;;;;3853:57;;;;;;;;;3884:26;;;;;3853:57;;;;;;;;;;;;;3884:26;;3853:57;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3853:57:71;;;-1:-1:-1;;3853:57:71;;;;;;;;;;;;;;;3947:26;;3975:22;;;;3999:18;;;;;3924:94;;;;;3853:57;;-1:-1:-1;3924:3:71;:22;;;;;;:94;;3947:26;;3975:22;3924:94;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3839:190;3834:3;;;;;3806:223;;;-1:-1:-1;4044:31:71;;5712:25:97;;;4044:31:71;;5700:2:97;5685:18;4044:31:71;5566:177:97;1160:39:71;;;;;;;;;;;;14:180:97;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:97;;14:180;-1:-1:-1;14:180:97:o;199:248::-;267:6;275;328:2;316:9;307:7;303:23;299:32;296:52;;;344:1;341;334:12;296:52;-1:-1:-1;;367:23:97;;;437:2;422:18;;;409:32;;-1:-1:-1;199:248:97:o;452:831::-;620:4;649:42;730:2;722:6;718:15;707:9;700:34;753:2;791;786;775:9;771:18;764:30;823:6;817:13;866:6;861:2;850:9;846:18;839:34;891:1;901:141;915:6;912:1;909:13;901:141;;;1011:14;;;1007:23;;1001:30;976:17;;;995:3;972:27;965:67;930:10;;901:141;;;905:3;1092:1;1086:3;1077:6;1066:9;1062:22;1058:32;1051:43;1221:3;1151:66;1146:2;1138:6;1134:15;1130:88;1119:9;1115:104;1111:114;1103:122;;;;1273:2;1265:6;1261:15;1256:2;1245:9;1241:18;1234:43;;452:831;;;;;;:::o;1288:184::-;1340:77;1337:1;1330:88;1437:4;1434:1;1427:15;1461:4;1458:1;1451:15;1477:253;1549:2;1543:9;1591:4;1579:17;;1626:18;1611:34;;1647:22;;;1608:62;1605:88;;;1673:18;;:::i;:::-;1709:2;1702:22;1477:253;:::o;1735:334::-;1806:2;1800:9;1862:2;1852:13;;1867:66;1848:86;1836:99;;1965:18;1950:34;;1986:22;;;1947:62;1944:88;;;2012:18;;:::i;:::-;2048:2;2041:22;1735:334;;-1:-1:-1;1735:334:97:o;2074:196::-;2142:20;;2202:42;2191:54;;2181:65;;2171:93;;2260:1;2257;2250:12;2171:93;2074:196;;;:::o;2275:2391::-;2388:6;2419:2;2462;2450:9;2441:7;2437:23;2433:32;2430:52;;;2478:1;2475;2468:12;2430:52;2518:9;2505:23;2547:18;2588:2;2580:6;2577:14;2574:34;;;2604:1;2601;2594:12;2574:34;2642:6;2631:9;2627:22;2617:32;;2687:7;2680:4;2676:2;2672:13;2668:27;2658:55;;2709:1;2706;2699:12;2658:55;2745:2;2732:16;2767:2;2763;2760:10;2757:36;;;2773:18;;:::i;:::-;2819:2;2816:1;2812:10;2842:28;2866:2;2862;2858:11;2842:28;:::i;:::-;2904:15;;;2974:11;;;2970:20;;;2935:12;;;;3002:19;;;2999:39;;;3034:1;3031;3024:12;2999:39;3066:2;3062;3058:11;3047:22;;3078:1558;3094:6;3089:3;3086:15;3078:1558;;;3180:3;3167:17;3216:2;3203:11;3200:19;3197:39;;;3232:1;3229;3222:12;3197:39;3259:20;;3302:66;3415:4;3392:16;;;3388:25;;3384:36;3381:126;;;3461:1;3490:2;3486;3479:14;3381:126;3533:22;;:::i;:::-;3582:31;3609:2;3605;3601:11;3582:31;:::i;:::-;3575:5;3568:46;3637:2;3689;3685;3681:11;3668:25;3722:2;3712:8;3709:16;3706:109;;;3767:1;3797:3;3792;3785:16;3706:109;3839:17;;3892:2;3883:12;;3879:26;-1:-1:-1;3869:127:97;;3948:1;3978:3;3973;3966:16;3869:127;4042:2;4037:3;4033:12;4020:26;4070:2;4065:3;4062:11;4059:37;;;4076:18;;:::i;:::-;4122:49;4167:2;4162;4155:4;4150:3;4146:14;4142:23;4138:32;4122:49;:::i;:::-;4109:62;;4198:3;4191:5;4184:18;4245:7;4240:2;4234:3;4229;4225:13;4221:22;4218:35;4215:128;;;4295:1;4325:3;4320;4313:16;4215:128;4399:3;4394:2;4389:3;4385:12;4380:2;4373:5;4369:14;4356:47;4449:1;4444:2;4438:3;4431:5;4427:15;4423:24;4416:35;;;4487:5;4482:2;4475:5;4471:14;4464:29;4529:33;4556:4;4552:2;4548:13;4529:33;:::i;:::-;4513:14;;;4506:57;4576:18;;-1:-1:-1;;3111:12:97;;;;4614;;;;3078:1558;;;4655:5;2275:2391;-1:-1:-1;;;;;;;;;2275:2391:97:o;4935:184::-;4987:77;4984:1;4977:88;5084:4;5081:1;5074:15;5108:4;5105:1;5098:15;5124:437;5203:1;5199:12;;;;5246;;;5267:61;;5321:4;5313:6;5309:17;5299:27;;5267:61;5374:2;5366:6;5363:14;5343:18;5340:38;5337:218;;5411:77;5408:1;5401:88;5512:4;5509:1;5502:15;5540:4;5537:1;5530:15;5337:218;;5124:437;;;:::o;5874:543::-;5976:2;5971:3;5968:11;5965:446;;;6012:1;6036:5;6033:1;6026:16;6080:4;6077:1;6067:18;6150:2;6138:10;6134:19;6131:1;6127:27;6121:4;6117:38;6186:4;6174:10;6171:20;6168:47;;;-1:-1:-1;6209:4:97;6168:47;6264:2;6259:3;6255:12;6252:1;6248:20;6242:4;6238:31;6228:41;;6319:82;6337:2;6330:5;6327:13;6319:82;;;6382:17;;;6363:1;6352:13;6319:82;;;6323:3;;;5965:446;5874:543;;;:::o;6653:1464::-;6779:3;6773:10;6806:18;6798:6;6795:30;6792:56;;;6828:18;;:::i;:::-;6857:97;6947:6;6907:38;6939:4;6933:11;6907:38;:::i;:::-;6901:4;6857:97;:::i;:::-;7009:4;;7066:2;7055:14;;7083:1;7078:782;;;;7904:1;7921:6;7918:89;;;-1:-1:-1;7973:19:97;;;7967:26;7918:89;6559:66;6550:1;6546:11;;;6542:84;6538:89;6528:100;6634:1;6630:11;;;6525:117;8020:81;;7048:1063;;7078:782;5821:1;5814:14;;;5858:4;5845:18;;7126:66;7114:79;;;7291:236;7305:7;7302:1;7299:14;7291:236;;;7394:19;;;7388:26;7373:42;;7486:27;;;;7454:1;7442:14;;;;7321:19;;7291:236;;;7295:3;7555:6;7546:7;7543:19;7540:261;;;7616:19;;;7610:26;7717:66;7699:1;7695:14;;;7711:3;7691:24;7687:97;7683:102;7668:118;7653:134;;7540:261;-1:-1:-1;;;;;7847:1:97;7831:14;;;7827:22;7814:36;;-1:-1:-1;6653:1464:97:o"},"gasEstimates":{"creation":{"codeDepositCost":"820000","executionCost":"infinite","totalCost":"infinite"},"external":{"ACM()":"infinite","addGrantPermissions((address,string,address)[])":"infinite","addRevokePermissions((address,string,address)[])":"infinite","executeGrantPermissions(uint256)":"infinite","executeRevokePermissions(uint256)":"infinite","grantPermissions(uint256,uint256)":"infinite","revokePermissions(uint256,uint256)":"infinite"}},"methodIdentifiers":{"ACM()":"f9b80da1","addGrantPermissions((address,string,address)[])":"9d6c76b8","addRevokePermissions((address,string,address)[])":"5666a5ea","executeGrantPermissions(uint256)":"de46a235","executeRevokePermissions(uint256)":"22473d8c","grantPermissions(uint256,uint256)":"514aab87","revokePermissions(uint256,uint256)":"ff1575e1"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IAccessControlManagerV8\",\"name\":\"_acm\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"EmptyPermissions\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"GrantPermissionsAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"GrantPermissionsExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"RevokePermissionsAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"RevokePermissionsExecuted\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ACM\",\"outputs\":[{\"internalType\":\"contract IAccessControlManagerV8\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"functionSig\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"internalType\":\"struct ACMCommandsAggregator.Permission[]\",\"name\":\"_permissions\",\"type\":\"tuple[]\"}],\"name\":\"addGrantPermissions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"functionSig\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"internalType\":\"struct ACMCommandsAggregator.Permission[]\",\"name\":\"_permissions\",\"type\":\"tuple[]\"}],\"name\":\"addRevokePermissions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"executeGrantPermissions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"executeRevokePermissions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"grantPermissions\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"functionSig\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"revokePermissions\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"functionSig\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"kind\":\"dev\",\"methods\":{},\"title\":\"ACMCommandsAggregator\",\"version\":1},\"userdoc\":{\"errors\":{\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}]},\"kind\":\"user\",\"methods\":{\"ACM()\":{\"notice\":\"Access control manager contract\"}},\"notice\":\"This contract is a helper to aggregate multiple grant and revoke permissions in batches and execute them in one go.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Utils/ACMCommandsAggregator.sol\":\"ACMCommandsAggregator\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"@venusprotocol/solidity-utilities/contracts/validators.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\n/// @notice Thrown if the supplied address is a zero address where it is not allowed\\nerror ZeroAddressNotAllowed();\\n\\n/// @notice Thrown if the supplied value is 0 where it is not allowed\\nerror ZeroValueNotAllowed();\\n\\n/// @notice Checks if the provided address is nonzero, reverts otherwise\\n/// @param address_ Address to check\\n/// @custom:error ZeroAddressNotAllowed is thrown if the provided address is a zero address\\nfunction ensureNonzeroAddress(address address_) pure {\\n    if (address_ == address(0)) {\\n        revert ZeroAddressNotAllowed();\\n    }\\n}\\n\\n/// @notice Checks if the provided value is nonzero, reverts otherwise\\n/// @param value_ Value to check\\n/// @custom:error ZeroValueNotAllowed is thrown if the provided value is 0\\nfunction ensureNonzeroValue(uint256 value_) pure {\\n    if (value_ == 0) {\\n        revert ZeroValueNotAllowed();\\n    }\\n}\\n\",\"keccak256\":\"0xdb88e14d50dd21889ca3329d755673d022c47e8da005b6a545c7f69c2c4b7b86\",\"license\":\"BSD-3-Clause\"},\"contracts/Governance/IAccessControlManagerV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/access/IAccessControl.sol\\\";\\n\\n/**\\n * @title IAccessControlManagerV8\\n * @author Venus\\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\\n */\\ninterface IAccessControlManagerV8 is IAccessControl {\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\\n\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) external;\\n\\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\\n\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xaa29b098440d0b3a131c5ecdf25ce548790c1b5ac7bf9b5c0264b6af6f7a1e0b\",\"license\":\"BSD-3-Clause\"},\"contracts/Utils/ACMCommandsAggregator.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { IAccessControlManagerV8 } from \\\"../Governance/IAccessControlManagerV8.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\n\\n/**\\n * @title ACMCommandsAggregator\\n * @author Venus\\n * @notice This contract is a helper to aggregate multiple grant and revoke permissions in batches and execute them in one go.\\n */\\ncontract ACMCommandsAggregator {\\n    /*\\n     * @notice Struct to store permission details\\n     */\\n    struct Permission {\\n        /*\\n         * @notice Address of the contract\\n         */\\n        address contractAddress;\\n        /*\\n         * @notice Function signature\\n         */\\n        string functionSig;\\n        /*\\n         * @notice Address of the account\\n         */\\n        address account;\\n    }\\n\\n    /**\\n     * @notice Access control manager contract\\n     */\\n    IAccessControlManagerV8 public immutable ACM;\\n\\n    /*\\n     * @notice 2D array to store grant permissions in batches\\n     */\\n    Permission[][] public grantPermissions;\\n\\n    /*\\n     * @notice 2D array to store revoke permissions in batches\\n     */\\n    Permission[][] public revokePermissions;\\n\\n    /*\\n     * @notice Event emitted when grant permissions are added\\n     */\\n    event GrantPermissionsAdded(uint256 index);\\n\\n    /*\\n     * @notice Event emitted when revoke permissions are added\\n     */\\n    event RevokePermissionsAdded(uint256 index);\\n\\n    /*\\n     * @notice Event emitted when grant permissions are executed\\n     */\\n    event GrantPermissionsExecuted(uint256 index);\\n\\n    /*\\n     * @notice Event emitted when revoke permissions are executed\\n     */\\n    event RevokePermissionsExecuted(uint256 index);\\n\\n    /*\\n     * @notice Error to be thrown when permissions are empty\\n     */\\n    error EmptyPermissions();\\n\\n    /*\\n     * @notice Constructor to set the access control manager\\n     * @param _acm Address of the access control manager\\n     */\\n    constructor(IAccessControlManagerV8 _acm) {\\n        ensureNonzeroAddress(address(_acm));\\n        ACM = _acm;\\n    }\\n\\n    /*\\n     * @notice Function to add grant permissions\\n     * @param _permissions Array of permissions\\n     * @custom:event Emits GrantPermissionsAdded event\\n     */\\n    function addGrantPermissions(Permission[] memory _permissions) external {\\n        if (_permissions.length == 0) {\\n            revert EmptyPermissions();\\n        }\\n\\n        uint256 index = grantPermissions.length;\\n        grantPermissions.push();\\n\\n        for (uint256 i; i < _permissions.length; ++i) {\\n            grantPermissions[index].push(\\n                Permission(_permissions[i].contractAddress, _permissions[i].functionSig, _permissions[i].account)\\n            );\\n        }\\n\\n        emit GrantPermissionsAdded(index);\\n    }\\n\\n    /*\\n     * @notice Function to add revoke permissions\\n     * @param _permissions Array of permissions\\n     * @custom:event Emits RevokePermissionsAdded event\\n     */\\n    function addRevokePermissions(Permission[] memory _permissions) external {\\n        if (_permissions.length == 0) {\\n            revert EmptyPermissions();\\n        }\\n\\n        uint256 index = revokePermissions.length;\\n        revokePermissions.push();\\n\\n        for (uint256 i; i < _permissions.length; ++i) {\\n            revokePermissions[index].push(\\n                Permission(_permissions[i].contractAddress, _permissions[i].functionSig, _permissions[i].account)\\n            );\\n        }\\n\\n        emit RevokePermissionsAdded(index);\\n    }\\n\\n    /*\\n     * @notice Function to execute grant permissions\\n     * @param index Index of the permissions array\\n     * @custom:event Emits GrantPermissionsExecuted event\\n     */\\n    function executeGrantPermissions(uint256 index) external {\\n        uint256 length = grantPermissions[index].length;\\n        for (uint256 i; i < length; ++i) {\\n            Permission memory permission = grantPermissions[index][i];\\n            ACM.giveCallPermission(permission.contractAddress, permission.functionSig, permission.account);\\n        }\\n\\n        emit GrantPermissionsExecuted(index);\\n    }\\n\\n    /*\\n     * @notice Function to execute revoke permissions\\n     * @param index Index of the permissions array\\n     * @custom:event Emits RevokePermissionsExecuted event\\n     */\\n    function executeRevokePermissions(uint256 index) external {\\n        uint256 length = revokePermissions[index].length;\\n        for (uint256 i; i < length; ++i) {\\n            Permission memory permission = revokePermissions[index][i];\\n            ACM.revokeCallPermission(permission.contractAddress, permission.functionSig, permission.account);\\n        }\\n\\n        emit RevokePermissionsExecuted(index);\\n    }\\n}\\n\",\"keccak256\":\"0xe642b8f0e0fedc74d31196197bc7d78b43b44eab556c07ec74d6b75ccf8d0f8c\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":19954,"contract":"contracts/Utils/ACMCommandsAggregator.sol:ACMCommandsAggregator","label":"grantPermissions","offset":0,"slot":"0","type":"t_array(t_array(t_struct(Permission)19945_storage)dyn_storage)dyn_storage"},{"astId":19959,"contract":"contracts/Utils/ACMCommandsAggregator.sol:ACMCommandsAggregator","label":"revokePermissions","offset":0,"slot":"1","type":"t_array(t_array(t_struct(Permission)19945_storage)dyn_storage)dyn_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_array(t_struct(Permission)19945_storage)dyn_storage)dyn_storage":{"base":"t_array(t_struct(Permission)19945_storage)dyn_storage","encoding":"dynamic_array","label":"struct ACMCommandsAggregator.Permission[][]","numberOfBytes":"32"},"t_array(t_struct(Permission)19945_storage)dyn_storage":{"base":"t_struct(Permission)19945_storage","encoding":"dynamic_array","label":"struct ACMCommandsAggregator.Permission[]","numberOfBytes":"32"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Permission)19945_storage":{"encoding":"inplace","label":"struct ACMCommandsAggregator.Permission","members":[{"astId":19940,"contract":"contracts/Utils/ACMCommandsAggregator.sol:ACMCommandsAggregator","label":"contractAddress","offset":0,"slot":"0","type":"t_address"},{"astId":19942,"contract":"contracts/Utils/ACMCommandsAggregator.sol:ACMCommandsAggregator","label":"functionSig","offset":0,"slot":"1","type":"t_string_storage"},{"astId":19944,"contract":"contracts/Utils/ACMCommandsAggregator.sol:ACMCommandsAggregator","label":"account","offset":0,"slot":"2","type":"t_address"}],"numberOfBytes":"96"}}},"userdoc":{"errors":{"ZeroAddressNotAllowed()":[{"notice":"Thrown if the supplied address is a zero address where it is not allowed"}]},"kind":"user","methods":{"ACM()":{"notice":"Access control manager contract"}},"notice":"This contract is a helper to aggregate multiple grant and revoke permissions in batches and execute them in one go.","version":1}}},"contracts/interfaces/ICorePoolComptroller.sol":{"ICorePoolComptroller":{"abi":[{"inputs":[{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"}],"name":"_setMarketBorrowCaps","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"}],"name":"_setMarketSupplyCaps","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"borrowCaps","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAllMarkets","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"markets","outputs":[{"internalType":"bool","name":"isListed","type":"bool"},{"internalType":"uint256","name":"collateralFactorMantissa","type":"uint256"},{"internalType":"bool","name":"isVenus","type":"bool"},{"internalType":"uint256","name":"liquidationThresholdMantissa","type":"uint256"},{"internalType":"uint256","name":"liquidationIncentiveMantissa","type":"uint256"},{"internalType":"uint96","name":"marketPoolId","type":"uint96"},{"internalType":"bool","name":"isBorrowAllowed","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint96","name":"poolId","type":"uint96"},{"internalType":"address","name":"vToken","type":"address"}],"name":"poolMarkets","outputs":[{"internalType":"bool","name":"isListed","type":"bool"},{"internalType":"uint256","name":"collateralFactorMantissa","type":"uint256"},{"internalType":"bool","name":"isVenus","type":"bool"},{"internalType":"uint256","name":"liquidationThresholdMantissa","type":"uint256"},{"internalType":"uint256","name":"liquidationIncentiveMantissa","type":"uint256"},{"internalType":"uint96","name":"marketPoolId","type":"uint96"},{"internalType":"bool","name":"isBorrowAllowed","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"vToken","type":"address"},{"internalType":"uint256","name":"newCollateralFactorMantissa","type":"uint256"},{"internalType":"uint256","name":"newLiquidationThresholdMantissa","type":"uint256"}],"name":"setCollateralFactor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint96","name":"poolId","type":"uint96"},{"internalType":"address","name":"vToken","type":"address"},{"internalType":"uint256","name":"newCollateralFactorMantissa","type":"uint256"},{"internalType":"uint256","name":"newLiquidizationThresholdMantissa","type":"uint256"}],"name":"setCollateralFactor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"}],"name":"setMarketBorrowCaps","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"}],"name":"setMarketSupplyCaps","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"supplyCaps","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"_setMarketBorrowCaps(address[],uint256[])":"607ef6c1","_setMarketSupplyCaps(address[],uint256[])":"51a485e4","borrowCaps(address)":"4a584432","getAllMarkets()":"b0772d0b","markets(address)":"8e8f294b","poolMarkets(uint96,address)":"3093c11e","setCollateralFactor(address,uint256,uint256)":"5cc4fdeb","setCollateralFactor(uint96,address,uint256,uint256)":"9159b177","setMarketBorrowCaps(address[],uint256[])":"186db48f","setMarketSupplyCaps(address[],uint256[])":"d136af44","supplyCaps(address)":"02c3bcbb"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"name\":\"_setMarketBorrowCaps\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"name\":\"_setMarketSupplyCaps\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"borrowCaps\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllMarkets\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"markets\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isListed\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactorMantissa\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isVenus\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"liquidationThresholdMantissa\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationIncentiveMantissa\",\"type\":\"uint256\"},{\"internalType\":\"uint96\",\"name\":\"marketPoolId\",\"type\":\"uint96\"},{\"internalType\":\"bool\",\"name\":\"isBorrowAllowed\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"poolId\",\"type\":\"uint96\"},{\"internalType\":\"address\",\"name\":\"vToken\",\"type\":\"address\"}],\"name\":\"poolMarkets\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isListed\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactorMantissa\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isVenus\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"liquidationThresholdMantissa\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationIncentiveMantissa\",\"type\":\"uint256\"},{\"internalType\":\"uint96\",\"name\":\"marketPoolId\",\"type\":\"uint96\"},{\"internalType\":\"bool\",\"name\":\"isBorrowAllowed\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"newCollateralFactorMantissa\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newLiquidationThresholdMantissa\",\"type\":\"uint256\"}],\"name\":\"setCollateralFactor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"poolId\",\"type\":\"uint96\"},{\"internalType\":\"address\",\"name\":\"vToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"newCollateralFactorMantissa\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newLiquidizationThresholdMantissa\",\"type\":\"uint256\"}],\"name\":\"setCollateralFactor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"name\":\"setMarketBorrowCaps\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"name\":\"setMarketSupplyCaps\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"supplyCaps\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/ICorePoolComptroller.sol\":\"ICorePoolComptroller\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"contracts/interfaces/ICorePoolComptroller.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface ICorePoolComptroller {\\n    function borrowCaps(address) external view returns (uint256);\\n\\n    function supplyCaps(address) external view returns (uint256);\\n\\n    function _setMarketSupplyCaps(address[] calldata, uint256[] calldata) external;\\n\\n    function _setMarketBorrowCaps(address[] calldata, uint256[] calldata) external;\\n\\n    function setMarketSupplyCaps(address[] calldata, uint256[] calldata) external;\\n\\n    function setMarketBorrowCaps(address[] calldata, uint256[] calldata) external;\\n\\n    function getAllMarkets() external view returns (address[] memory);\\n\\n    function setCollateralFactor(\\n        uint96 poolId,\\n        address vToken,\\n        uint256 newCollateralFactorMantissa,\\n        uint256 newLiquidizationThresholdMantissa\\n    ) external returns (uint256);\\n\\n    function setCollateralFactor(\\n        address vToken,\\n        uint256 newCollateralFactorMantissa,\\n        uint256 newLiquidationThresholdMantissa\\n    ) external returns (uint256);\\n\\n    function markets(\\n        address\\n    )\\n        external\\n        view\\n        returns (\\n            bool isListed,\\n            uint256 collateralFactorMantissa,\\n            bool isVenus,\\n            uint256 liquidationThresholdMantissa,\\n            uint256 liquidationIncentiveMantissa,\\n            uint96 marketPoolId,\\n            bool isBorrowAllowed\\n        );\\n\\n    function poolMarkets(\\n        uint96 poolId,\\n        address vToken\\n    )\\n        external\\n        view\\n        returns (\\n            bool isListed,\\n            uint256 collateralFactorMantissa,\\n            bool isVenus,\\n            uint256 liquidationThresholdMantissa,\\n            uint256 liquidationIncentiveMantissa,\\n            uint96 marketPoolId,\\n            bool isBorrowAllowed\\n        );\\n}\\n\",\"keccak256\":\"0xf1d900d58474417ee7de59cbb72df84fe1cd4512f3b265bb66ffabddbcca53b6\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/interfaces/ICorePoolVToken.sol":{"ICorePoolVToken":{"abi":[{"inputs":[{"internalType":"contract InterestRateModelV8","name":"newInterestRateModel","type":"address"}],"name":"_setInterestRateModel","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"comptroller","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"interestRateModel","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"_setInterestRateModel(address)":"f2b3abbd","comptroller()":"5fe3b567","interestRateModel()":"f3fdb15a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract InterestRateModelV8\",\"name\":\"newInterestRateModel\",\"type\":\"address\"}],\"name\":\"_setInterestRateModel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"comptroller\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"interestRateModel\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/ICorePoolVToken.sol\":\"ICorePoolVToken\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@venusprotocol/venus-protocol/contracts/InterestRateModels/InterestRateModelV8.sol\":{\"content\":\"pragma solidity 0.8.25;\\n\\n/**\\n * @title Venus's InterestRateModelV8 Interface\\n * @author Venus\\n */\\nabstract contract InterestRateModelV8 {\\n    /// @notice Indicator that this is an InterestRateModel contract (for inspection)\\n    bool public constant isInterestRateModel = true;\\n\\n    /**\\n     * @notice Calculates the current borrow interest rate per block\\n     * @param cash The total amount of cash the market has\\n     * @param borrows The total amount of borrows the market has outstanding\\n     * @param reserves The total amnount of reserves the market has\\n     * @return The borrow rate per block (as a percentage, and scaled by 1e18)\\n     */\\n    function getBorrowRate(uint256 cash, uint256 borrows, uint256 reserves) external view virtual returns (uint256);\\n\\n    /**\\n     * @notice Calculates the current supply interest rate per block\\n     * @param cash The total amount of cash the market has\\n     * @param borrows The total amount of borrows the market has outstanding\\n     * @param reserves The total amnount of reserves the market has\\n     * @param reserveFactorMantissa The current reserve factor the market has\\n     * @return The supply rate per block (as a percentage, and scaled by 1e18)\\n     */\\n    function getSupplyRate(\\n        uint256 cash,\\n        uint256 borrows,\\n        uint256 reserves,\\n        uint256 reserveFactorMantissa\\n    ) external view virtual returns (uint256);\\n}\\n\",\"keccak256\":\"0x9b71896f66909fb3fe829c413594121f0e165d8508e8a6fa29a6938ddcfbb61f\"},\"contracts/interfaces/ICorePoolVToken.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { InterestRateModelV8 } from \\\"@venusprotocol/venus-protocol/contracts/InterestRateModels/InterestRateModelV8.sol\\\";\\n\\ninterface ICorePoolVToken {\\n    function comptroller() external view returns (address);\\n\\n    function interestRateModel() external view returns (address);\\n\\n    function _setInterestRateModel(InterestRateModelV8 newInterestRateModel) external returns (uint256);\\n}\\n\",\"keccak256\":\"0xb952df2bdfc73cc669c52776b4cf9dd663084dfafd74131f4f59ac9c820edd7b\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/interfaces/IIsolatedPoolVToken.sol":{"IIsolatedPoolVToken":{"abi":[{"inputs":[],"name":"comptroller","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"interestRateModel","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract InterestRateModel","name":"newInterestRateModel","type":"address"}],"name":"setInterestRateModel","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"comptroller()":"5fe3b567","interestRateModel()":"f3fdb15a","setInterestRateModel(address)":"8bcd4016"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"comptroller\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"interestRateModel\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract InterestRateModel\",\"name\":\"newInterestRateModel\",\"type\":\"address\"}],\"name\":\"setInterestRateModel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IIsolatedPoolVToken.sol\":\"IIsolatedPoolVToken\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@venusprotocol/isolated-pools/contracts/InterestRateModel.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\n/**\\n * @title Compound's InterestRateModel Interface\\n * @author Compound\\n */\\nabstract contract InterestRateModel {\\n    /**\\n     * @notice Calculates the current borrow interest rate per slot (block or second)\\n     * @param cash The total amount of cash the market has\\n     * @param borrows The total amount of borrows the market has outstanding\\n     * @param reserves The total amount of reserves the market has\\n     * @param badDebt The amount of badDebt in the market\\n     * @return The borrow rate percentage per slot (block or second) as a mantissa (scaled by EXP_SCALE)\\n     */\\n    function getBorrowRate(\\n        uint256 cash,\\n        uint256 borrows,\\n        uint256 reserves,\\n        uint256 badDebt\\n    ) external view virtual returns (uint256);\\n\\n    /**\\n     * @notice Calculates the current supply interest rate per slot (block or second)\\n     * @param cash The total amount of cash the market has\\n     * @param borrows The total amount of borrows the market has outstanding\\n     * @param reserves The total amount of reserves the market has\\n     * @param reserveFactorMantissa The current reserve factor the market has\\n     * @param badDebt The amount of badDebt in the market\\n     * @return The supply rate percentage per slot (block or second) as a mantissa (scaled by EXP_SCALE)\\n     */\\n    function getSupplyRate(\\n        uint256 cash,\\n        uint256 borrows,\\n        uint256 reserves,\\n        uint256 reserveFactorMantissa,\\n        uint256 badDebt\\n    ) external view virtual returns (uint256);\\n\\n    /**\\n     * @notice Indicator that this is an InterestRateModel contract (for inspection)\\n     * @return Always true\\n     */\\n    function isInterestRateModel() external pure virtual returns (bool) {\\n        return true;\\n    }\\n}\\n\",\"keccak256\":\"0xc4fda1ab75ebe4b187b707c4f10c58780f343cf343c537f641dc75d3cd28ab51\",\"license\":\"BSD-3-Clause\"},\"contracts/interfaces/IIsolatedPoolVToken.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { InterestRateModel } from \\\"@venusprotocol/isolated-pools/contracts/InterestRateModel.sol\\\";\\n\\ninterface IIsolatedPoolVToken {\\n    function comptroller() external view returns (address);\\n\\n    function interestRateModel() external view returns (address);\\n\\n    function setInterestRateModel(InterestRateModel newInterestRateModel) external;\\n}\\n\",\"keccak256\":\"0x86d7ac99eef5e8cfa3dfa35e07e61686df09865c6bc18bacb2ed8ea34649cbc5\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/interfaces/IIsolatedPoolsComptroller.sol":{"IIsolatedPoolsComptroller":{"abi":[{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"borrowCaps","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAllMarkets","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"vToken","type":"address"}],"name":"markets","outputs":[{"internalType":"bool","name":"isListed","type":"bool"},{"internalType":"uint256","name":"collateralFactorMantissa","type":"uint256"},{"internalType":"uint256","name":"liquidationThresholdMantissa","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"vToken","type":"address"},{"internalType":"uint256","name":"newCollateralFactorMantissa","type":"uint256"},{"internalType":"uint256","name":"newLiquidationThresholdMantissa","type":"uint256"}],"name":"setCollateralFactor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"}],"name":"setMarketBorrowCaps","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"}],"name":"setMarketSupplyCaps","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"supplyCaps","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"borrowCaps(address)":"4a584432","getAllMarkets()":"b0772d0b","markets(address)":"8e8f294b","setCollateralFactor(address,uint256,uint256)":"5cc4fdeb","setMarketBorrowCaps(address[],uint256[])":"186db48f","setMarketSupplyCaps(address[],uint256[])":"d136af44","supplyCaps(address)":"02c3bcbb"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"borrowCaps\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllMarkets\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vToken\",\"type\":\"address\"}],\"name\":\"markets\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isListed\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactorMantissa\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationThresholdMantissa\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"newCollateralFactorMantissa\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newLiquidationThresholdMantissa\",\"type\":\"uint256\"}],\"name\":\"setCollateralFactor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"name\":\"setMarketBorrowCaps\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"name\":\"setMarketSupplyCaps\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"supplyCaps\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IIsolatedPoolsComptroller.sol\":\"IIsolatedPoolsComptroller\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IIsolatedPoolsComptroller.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ninterface IIsolatedPoolsComptroller {\\n    function borrowCaps(address) external view returns (uint256);\\n\\n    function supplyCaps(address) external view returns (uint256);\\n\\n    function setMarketSupplyCaps(address[] calldata, uint256[] calldata) external;\\n\\n    function setMarketBorrowCaps(address[] calldata, uint256[] calldata) external;\\n\\n    function getAllMarkets() external view returns (address[] memory);\\n\\n    function setCollateralFactor(\\n        address vToken,\\n        uint256 newCollateralFactorMantissa,\\n        uint256 newLiquidationThresholdMantissa\\n    ) external;\\n\\n    function markets(\\n        address vToken\\n    ) external view returns (bool isListed, uint256 collateralFactorMantissa, uint256 liquidationThresholdMantissa);\\n}\\n\",\"keccak256\":\"0x6cd545ea18e7b5fbd1d3b0a4162584eb0c1b466db46c62d96015091c47374930\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/test/MockAccessTest.sol":{"MockAccessTest":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"calledContract","type":"address"},{"internalType":"string","name":"methodSignature","type":"string"}],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldAccessControlManager","type":"address"},{"indexed":false,"internalType":"address","name":"newAccessControlManager","type":"address"}],"name":"NewAccessControlManager","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"accessControlManager","outputs":[{"internalType":"contract IAccessControlManagerV8","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"accessControlManager","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"accessControlManager_","type":"address"}],"name":"setAccessControlManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."}},"kind":"dev","methods":{"acceptOwnership()":{"details":"The new owner accepts the ownership transfer."},"initialize(address)":{"params":{"accessControlManager":"Access control manager contract address"}},"owner()":{"details":"Returns the address of the current owner."},"pendingOwner()":{"details":"Returns the address of the pending owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"setAccessControlManager(address)":{"custom:access":"Only Governance","custom:event":"Emits NewAccessControlManager event","details":"Admin function to set address of AccessControlManager","params":{"accessControlManager_":"The new address of the AccessControlManager"}},"transferOwnership(address)":{"details":"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6080604052348015600f57600080fd5b506109b78061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063b4a0bdf31161005b578063b4a0bdf3146100f5578063c4d66de814610113578063e30c397814610126578063f2fde38b1461014457600080fd5b80630e32cb861461008d578063715018a6146100a257806379ba5097146100aa5780638da5cb5b146100b2575b600080fd5b6100a061009b366004610944565b610157565b005b6100a061016b565b6100a061017f565b60335473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60975473ffffffffffffffffffffffffffffffffffffffff166100cc565b6100a0610121366004610944565b610236565b60655473ffffffffffffffffffffffffffffffffffffffff166100cc565b6100a0610152366004610944565b6103cb565b61015f61047b565b610168816104fc565b50565b61017361047b565b61017d600061061e565b565b606554339073ffffffffffffffffffffffffffffffffffffffff16811461022d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e6572000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6101688161061e565b600054610100900460ff16158080156102565750600054600160ff909116105b806102705750303b158015610270575060005460ff166001145b6102fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610224565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561035a57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6103638261064f565b80156103c757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15b5050565b6103d361047b565b6065805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915561043660335473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60335473ffffffffffffffffffffffffffffffffffffffff16331461017d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610224565b73ffffffffffffffffffffffffffffffffffffffff811661059f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e6167657220616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610224565b6097805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa091016103be565b606580547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055610168816106f7565b600054610100900460ff166106e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610224565b6106ee61076e565b6101688161080d565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16610805576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610224565b61017d6108a4565b600054610100900460ff1661015f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610224565b600054610100900460ff1661093b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610224565b61017d3361061e565b60006020828403121561095657600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461097a57600080fd5b939250505056fea264697066735822122079bb9bd555621c4bae9f4649c98b1ebd5937155c9e1d99071a948485a6cdaf0964736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9B7 DUP1 PUSH2 0x1F PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x88 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xB4A0BDF3 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0xB4A0BDF3 EQ PUSH2 0xF5 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x113 JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x126 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x144 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xE32CB86 EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xA2 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0xAA JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xB2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA0 PUSH2 0x9B CALLDATASIZE PUSH1 0x4 PUSH2 0x944 JUMP JUMPDEST PUSH2 0x157 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xA0 PUSH2 0x16B JUMP JUMPDEST PUSH2 0xA0 PUSH2 0x17F JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x97 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xCC JUMP JUMPDEST PUSH2 0xA0 PUSH2 0x121 CALLDATASIZE PUSH1 0x4 PUSH2 0x944 JUMP JUMPDEST PUSH2 0x236 JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xCC JUMP JUMPDEST PUSH2 0xA0 PUSH2 0x152 CALLDATASIZE PUSH1 0x4 PUSH2 0x944 JUMP JUMPDEST PUSH2 0x3CB JUMP JUMPDEST PUSH2 0x15F PUSH2 0x47B JUMP JUMPDEST PUSH2 0x168 DUP2 PUSH2 0x4FC JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x173 PUSH2 0x47B JUMP JUMPDEST PUSH2 0x17D PUSH1 0x0 PUSH2 0x61E JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x65 SLOAD CALLER SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 EQ PUSH2 0x22D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C6532537465703A2063616C6C6572206973206E6F742074686520 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E6577206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x168 DUP2 PUSH2 0x61E JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x256 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x270 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x270 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x2FC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x647920696E697469616C697A6564000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x224 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x35A JUMPI PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0x363 DUP3 PUSH2 0x64F JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3C7 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x3D3 PUSH2 0x47B JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP1 SWAP2 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0x436 PUSH1 0x33 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x17D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x224 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x59F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C696420616365737320636F6E74726F6C206D616E61676572206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x224 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 SWAP1 SWAP3 AND DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH32 0x66FD58E82F7B31A2A5C30E0888F3093EFE4E111B00CD2B0C31FE014601293AA0 SWAP2 ADD PUSH2 0x3BE JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND SWAP1 SSTORE PUSH2 0x168 DUP2 PUSH2 0x6F7 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x6E6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x224 JUMP JUMPDEST PUSH2 0x6EE PUSH2 0x76E JUMP JUMPDEST PUSH2 0x168 DUP2 PUSH2 0x80D JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x805 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x224 JUMP JUMPDEST PUSH2 0x17D PUSH2 0x8A4 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x15F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x224 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x93B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x224 JUMP JUMPDEST PUSH2 0x17D CALLER PUSH2 0x61E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x956 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x97A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH26 0xBB9BD555621C4BAE9F4649C98B1EBD5937155C9E1D99071A9484 DUP6 0xA6 0xCD 0xAF MULMOD PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"198:278:78:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@__AccessControlled_init_13754":{"entryPoint":1615,"id":13754,"parameterSlots":1,"returnSlots":0},"@__AccessControlled_init_unchained_13766":{"entryPoint":2061,"id":13766,"parameterSlots":1,"returnSlots":0},"@__Ownable2Step_init_5859":{"entryPoint":1902,"id":5859,"parameterSlots":0,"returnSlots":0},"@__Ownable_init_unchained_5985":{"entryPoint":2212,"id":5985,"parameterSlots":0,"returnSlots":0},"@_checkOwner_6016":{"entryPoint":1147,"id":6016,"parameterSlots":0,"returnSlots":0},"@_msgSender_6559":{"entryPoint":null,"id":6559,"parameterSlots":0,"returnSlots":1},"@_setAccessControlManager_13827":{"entryPoint":1276,"id":13827,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_5919":{"entryPoint":1566,"id":5919,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_6073":{"entryPoint":1783,"id":6073,"parameterSlots":1,"returnSlots":0},"@acceptOwnership_5941":{"entryPoint":383,"id":5941,"parameterSlots":0,"returnSlots":0},"@accessControlManager_13789":{"entryPoint":null,"id":13789,"parameterSlots":0,"returnSlots":1},"@initialize_20471":{"entryPoint":566,"id":20471,"parameterSlots":1,"returnSlots":0},"@isContract_6266":{"entryPoint":null,"id":6266,"parameterSlots":1,"returnSlots":1},"@owner_6002":{"entryPoint":null,"id":6002,"parameterSlots":0,"returnSlots":1},"@pendingOwner_5882":{"entryPoint":null,"id":5882,"parameterSlots":0,"returnSlots":1},"@renounceOwnership_6030":{"entryPoint":363,"id":6030,"parameterSlots":0,"returnSlots":0},"@setAccessControlManager_13779":{"entryPoint":343,"id":13779,"parameterSlots":1,"returnSlots":0},"@transferOwnership_5902":{"entryPoint":971,"id":5902,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_address":{"entryPoint":2372,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$13903__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:3355:97","nodeType":"YulBlock","src":"0:3355:97","statements":[{"nativeSrc":"6:3:97","nodeType":"YulBlock","src":"6:3:97","statements":[]},{"body":{"nativeSrc":"84:239:97","nodeType":"YulBlock","src":"84:239:97","statements":[{"body":{"nativeSrc":"130:16:97","nodeType":"YulBlock","src":"130:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"139:1:97","nodeType":"YulLiteral","src":"139:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"142:1:97","nodeType":"YulLiteral","src":"142:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"132:6:97","nodeType":"YulIdentifier","src":"132:6:97"},"nativeSrc":"132:12:97","nodeType":"YulFunctionCall","src":"132:12:97"},"nativeSrc":"132:12:97","nodeType":"YulExpressionStatement","src":"132:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"105:7:97","nodeType":"YulIdentifier","src":"105:7:97"},{"name":"headStart","nativeSrc":"114:9:97","nodeType":"YulIdentifier","src":"114:9:97"}],"functionName":{"name":"sub","nativeSrc":"101:3:97","nodeType":"YulIdentifier","src":"101:3:97"},"nativeSrc":"101:23:97","nodeType":"YulFunctionCall","src":"101:23:97"},{"kind":"number","nativeSrc":"126:2:97","nodeType":"YulLiteral","src":"126:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"97:3:97","nodeType":"YulIdentifier","src":"97:3:97"},"nativeSrc":"97:32:97","nodeType":"YulFunctionCall","src":"97:32:97"},"nativeSrc":"94:52:97","nodeType":"YulIf","src":"94:52:97"},{"nativeSrc":"155:36:97","nodeType":"YulVariableDeclaration","src":"155:36:97","value":{"arguments":[{"name":"headStart","nativeSrc":"181:9:97","nodeType":"YulIdentifier","src":"181:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"168:12:97","nodeType":"YulIdentifier","src":"168:12:97"},"nativeSrc":"168:23:97","nodeType":"YulFunctionCall","src":"168:23:97"},"variables":[{"name":"value","nativeSrc":"159:5:97","nodeType":"YulTypedName","src":"159:5:97","type":""}]},{"body":{"nativeSrc":"277:16:97","nodeType":"YulBlock","src":"277:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"286:1:97","nodeType":"YulLiteral","src":"286:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"289:1:97","nodeType":"YulLiteral","src":"289:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"279:6:97","nodeType":"YulIdentifier","src":"279:6:97"},"nativeSrc":"279:12:97","nodeType":"YulFunctionCall","src":"279:12:97"},"nativeSrc":"279:12:97","nodeType":"YulExpressionStatement","src":"279:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"213:5:97","nodeType":"YulIdentifier","src":"213:5:97"},{"arguments":[{"name":"value","nativeSrc":"224:5:97","nodeType":"YulIdentifier","src":"224:5:97"},{"kind":"number","nativeSrc":"231:42:97","nodeType":"YulLiteral","src":"231:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"220:3:97","nodeType":"YulIdentifier","src":"220:3:97"},"nativeSrc":"220:54:97","nodeType":"YulFunctionCall","src":"220:54:97"}],"functionName":{"name":"eq","nativeSrc":"210:2:97","nodeType":"YulIdentifier","src":"210:2:97"},"nativeSrc":"210:65:97","nodeType":"YulFunctionCall","src":"210:65:97"}],"functionName":{"name":"iszero","nativeSrc":"203:6:97","nodeType":"YulIdentifier","src":"203:6:97"},"nativeSrc":"203:73:97","nodeType":"YulFunctionCall","src":"203:73:97"},"nativeSrc":"200:93:97","nodeType":"YulIf","src":"200:93:97"},{"nativeSrc":"302:15:97","nodeType":"YulAssignment","src":"302:15:97","value":{"name":"value","nativeSrc":"312:5:97","nodeType":"YulIdentifier","src":"312:5:97"},"variableNames":[{"name":"value0","nativeSrc":"302:6:97","nodeType":"YulIdentifier","src":"302:6:97"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"14:309:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"50:9:97","nodeType":"YulTypedName","src":"50:9:97","type":""},{"name":"dataEnd","nativeSrc":"61:7:97","nodeType":"YulTypedName","src":"61:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"73:6:97","nodeType":"YulTypedName","src":"73:6:97","type":""}],"src":"14:309:97"},{"body":{"nativeSrc":"429:125:97","nodeType":"YulBlock","src":"429:125:97","statements":[{"nativeSrc":"439:26:97","nodeType":"YulAssignment","src":"439:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"451:9:97","nodeType":"YulIdentifier","src":"451:9:97"},{"kind":"number","nativeSrc":"462:2:97","nodeType":"YulLiteral","src":"462:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"447:3:97","nodeType":"YulIdentifier","src":"447:3:97"},"nativeSrc":"447:18:97","nodeType":"YulFunctionCall","src":"447:18:97"},"variableNames":[{"name":"tail","nativeSrc":"439:4:97","nodeType":"YulIdentifier","src":"439:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"481:9:97","nodeType":"YulIdentifier","src":"481:9:97"},{"arguments":[{"name":"value0","nativeSrc":"496:6:97","nodeType":"YulIdentifier","src":"496:6:97"},{"kind":"number","nativeSrc":"504:42:97","nodeType":"YulLiteral","src":"504:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"492:3:97","nodeType":"YulIdentifier","src":"492:3:97"},"nativeSrc":"492:55:97","nodeType":"YulFunctionCall","src":"492:55:97"}],"functionName":{"name":"mstore","nativeSrc":"474:6:97","nodeType":"YulIdentifier","src":"474:6:97"},"nativeSrc":"474:74:97","nodeType":"YulFunctionCall","src":"474:74:97"},"nativeSrc":"474:74:97","nodeType":"YulExpressionStatement","src":"474:74:97"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"328:226:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"398:9:97","nodeType":"YulTypedName","src":"398:9:97","type":""},{"name":"value0","nativeSrc":"409:6:97","nodeType":"YulTypedName","src":"409:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"420:4:97","nodeType":"YulTypedName","src":"420:4:97","type":""}],"src":"328:226:97"},{"body":{"nativeSrc":"693:125:97","nodeType":"YulBlock","src":"693:125:97","statements":[{"nativeSrc":"703:26:97","nodeType":"YulAssignment","src":"703:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"715:9:97","nodeType":"YulIdentifier","src":"715:9:97"},{"kind":"number","nativeSrc":"726:2:97","nodeType":"YulLiteral","src":"726:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"711:3:97","nodeType":"YulIdentifier","src":"711:3:97"},"nativeSrc":"711:18:97","nodeType":"YulFunctionCall","src":"711:18:97"},"variableNames":[{"name":"tail","nativeSrc":"703:4:97","nodeType":"YulIdentifier","src":"703:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"745:9:97","nodeType":"YulIdentifier","src":"745:9:97"},{"arguments":[{"name":"value0","nativeSrc":"760:6:97","nodeType":"YulIdentifier","src":"760:6:97"},{"kind":"number","nativeSrc":"768:42:97","nodeType":"YulLiteral","src":"768:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"756:3:97","nodeType":"YulIdentifier","src":"756:3:97"},"nativeSrc":"756:55:97","nodeType":"YulFunctionCall","src":"756:55:97"}],"functionName":{"name":"mstore","nativeSrc":"738:6:97","nodeType":"YulIdentifier","src":"738:6:97"},"nativeSrc":"738:74:97","nodeType":"YulFunctionCall","src":"738:74:97"},"nativeSrc":"738:74:97","nodeType":"YulExpressionStatement","src":"738:74:97"}]},"name":"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$13903__to_t_address__fromStack_reversed","nativeSrc":"559:259:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"662:9:97","nodeType":"YulTypedName","src":"662:9:97","type":""},{"name":"value0","nativeSrc":"673:6:97","nodeType":"YulTypedName","src":"673:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"684:4:97","nodeType":"YulTypedName","src":"684:4:97","type":""}],"src":"559:259:97"},{"body":{"nativeSrc":"997:231:97","nodeType":"YulBlock","src":"997:231:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1014:9:97","nodeType":"YulIdentifier","src":"1014:9:97"},{"kind":"number","nativeSrc":"1025:2:97","nodeType":"YulLiteral","src":"1025:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"1007:6:97","nodeType":"YulIdentifier","src":"1007:6:97"},"nativeSrc":"1007:21:97","nodeType":"YulFunctionCall","src":"1007:21:97"},"nativeSrc":"1007:21:97","nodeType":"YulExpressionStatement","src":"1007:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1048:9:97","nodeType":"YulIdentifier","src":"1048:9:97"},{"kind":"number","nativeSrc":"1059:2:97","nodeType":"YulLiteral","src":"1059:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1044:3:97","nodeType":"YulIdentifier","src":"1044:3:97"},"nativeSrc":"1044:18:97","nodeType":"YulFunctionCall","src":"1044:18:97"},{"kind":"number","nativeSrc":"1064:2:97","nodeType":"YulLiteral","src":"1064:2:97","type":"","value":"41"}],"functionName":{"name":"mstore","nativeSrc":"1037:6:97","nodeType":"YulIdentifier","src":"1037:6:97"},"nativeSrc":"1037:30:97","nodeType":"YulFunctionCall","src":"1037:30:97"},"nativeSrc":"1037:30:97","nodeType":"YulExpressionStatement","src":"1037:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1087:9:97","nodeType":"YulIdentifier","src":"1087:9:97"},{"kind":"number","nativeSrc":"1098:2:97","nodeType":"YulLiteral","src":"1098:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1083:3:97","nodeType":"YulIdentifier","src":"1083:3:97"},"nativeSrc":"1083:18:97","nodeType":"YulFunctionCall","src":"1083:18:97"},{"hexValue":"4f776e61626c6532537465703a2063616c6c6572206973206e6f742074686520","kind":"string","nativeSrc":"1103:34:97","nodeType":"YulLiteral","src":"1103:34:97","type":"","value":"Ownable2Step: caller is not the "}],"functionName":{"name":"mstore","nativeSrc":"1076:6:97","nodeType":"YulIdentifier","src":"1076:6:97"},"nativeSrc":"1076:62:97","nodeType":"YulFunctionCall","src":"1076:62:97"},"nativeSrc":"1076:62:97","nodeType":"YulExpressionStatement","src":"1076:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1158:9:97","nodeType":"YulIdentifier","src":"1158:9:97"},{"kind":"number","nativeSrc":"1169:2:97","nodeType":"YulLiteral","src":"1169:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"1154:3:97","nodeType":"YulIdentifier","src":"1154:3:97"},"nativeSrc":"1154:18:97","nodeType":"YulFunctionCall","src":"1154:18:97"},{"hexValue":"6e6577206f776e6572","kind":"string","nativeSrc":"1174:11:97","nodeType":"YulLiteral","src":"1174:11:97","type":"","value":"new owner"}],"functionName":{"name":"mstore","nativeSrc":"1147:6:97","nodeType":"YulIdentifier","src":"1147:6:97"},"nativeSrc":"1147:39:97","nodeType":"YulFunctionCall","src":"1147:39:97"},"nativeSrc":"1147:39:97","nodeType":"YulExpressionStatement","src":"1147:39:97"},{"nativeSrc":"1195:27:97","nodeType":"YulAssignment","src":"1195:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1207:9:97","nodeType":"YulIdentifier","src":"1207:9:97"},{"kind":"number","nativeSrc":"1218:3:97","nodeType":"YulLiteral","src":"1218:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"1203:3:97","nodeType":"YulIdentifier","src":"1203:3:97"},"nativeSrc":"1203:19:97","nodeType":"YulFunctionCall","src":"1203:19:97"},"variableNames":[{"name":"tail","nativeSrc":"1195:4:97","nodeType":"YulIdentifier","src":"1195:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"823:405:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"974:9:97","nodeType":"YulTypedName","src":"974:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"988:4:97","nodeType":"YulTypedName","src":"988:4:97","type":""}],"src":"823:405:97"},{"body":{"nativeSrc":"1407:236:97","nodeType":"YulBlock","src":"1407:236:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1424:9:97","nodeType":"YulIdentifier","src":"1424:9:97"},{"kind":"number","nativeSrc":"1435:2:97","nodeType":"YulLiteral","src":"1435:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"1417:6:97","nodeType":"YulIdentifier","src":"1417:6:97"},"nativeSrc":"1417:21:97","nodeType":"YulFunctionCall","src":"1417:21:97"},"nativeSrc":"1417:21:97","nodeType":"YulExpressionStatement","src":"1417:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1458:9:97","nodeType":"YulIdentifier","src":"1458:9:97"},{"kind":"number","nativeSrc":"1469:2:97","nodeType":"YulLiteral","src":"1469:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1454:3:97","nodeType":"YulIdentifier","src":"1454:3:97"},"nativeSrc":"1454:18:97","nodeType":"YulFunctionCall","src":"1454:18:97"},{"kind":"number","nativeSrc":"1474:2:97","nodeType":"YulLiteral","src":"1474:2:97","type":"","value":"46"}],"functionName":{"name":"mstore","nativeSrc":"1447:6:97","nodeType":"YulIdentifier","src":"1447:6:97"},"nativeSrc":"1447:30:97","nodeType":"YulFunctionCall","src":"1447:30:97"},"nativeSrc":"1447:30:97","nodeType":"YulExpressionStatement","src":"1447:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1497:9:97","nodeType":"YulIdentifier","src":"1497:9:97"},{"kind":"number","nativeSrc":"1508:2:97","nodeType":"YulLiteral","src":"1508:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1493:3:97","nodeType":"YulIdentifier","src":"1493:3:97"},"nativeSrc":"1493:18:97","nodeType":"YulFunctionCall","src":"1493:18:97"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561","kind":"string","nativeSrc":"1513:34:97","nodeType":"YulLiteral","src":"1513:34:97","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nativeSrc":"1486:6:97","nodeType":"YulIdentifier","src":"1486:6:97"},"nativeSrc":"1486:62:97","nodeType":"YulFunctionCall","src":"1486:62:97"},"nativeSrc":"1486:62:97","nodeType":"YulExpressionStatement","src":"1486:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1568:9:97","nodeType":"YulIdentifier","src":"1568:9:97"},{"kind":"number","nativeSrc":"1579:2:97","nodeType":"YulLiteral","src":"1579:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"1564:3:97","nodeType":"YulIdentifier","src":"1564:3:97"},"nativeSrc":"1564:18:97","nodeType":"YulFunctionCall","src":"1564:18:97"},{"hexValue":"647920696e697469616c697a6564","kind":"string","nativeSrc":"1584:16:97","nodeType":"YulLiteral","src":"1584:16:97","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nativeSrc":"1557:6:97","nodeType":"YulIdentifier","src":"1557:6:97"},"nativeSrc":"1557:44:97","nodeType":"YulFunctionCall","src":"1557:44:97"},"nativeSrc":"1557:44:97","nodeType":"YulExpressionStatement","src":"1557:44:97"},{"nativeSrc":"1610:27:97","nodeType":"YulAssignment","src":"1610:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1622:9:97","nodeType":"YulIdentifier","src":"1622:9:97"},{"kind":"number","nativeSrc":"1633:3:97","nodeType":"YulLiteral","src":"1633:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"1618:3:97","nodeType":"YulIdentifier","src":"1618:3:97"},"nativeSrc":"1618:19:97","nodeType":"YulFunctionCall","src":"1618:19:97"},"variableNames":[{"name":"tail","nativeSrc":"1610:4:97","nodeType":"YulIdentifier","src":"1610:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"1233:410:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1384:9:97","nodeType":"YulTypedName","src":"1384:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1398:4:97","nodeType":"YulTypedName","src":"1398:4:97","type":""}],"src":"1233:410:97"},{"body":{"nativeSrc":"1755:87:97","nodeType":"YulBlock","src":"1755:87:97","statements":[{"nativeSrc":"1765:26:97","nodeType":"YulAssignment","src":"1765:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1777:9:97","nodeType":"YulIdentifier","src":"1777:9:97"},{"kind":"number","nativeSrc":"1788:2:97","nodeType":"YulLiteral","src":"1788:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1773:3:97","nodeType":"YulIdentifier","src":"1773:3:97"},"nativeSrc":"1773:18:97","nodeType":"YulFunctionCall","src":"1773:18:97"},"variableNames":[{"name":"tail","nativeSrc":"1765:4:97","nodeType":"YulIdentifier","src":"1765:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1807:9:97","nodeType":"YulIdentifier","src":"1807:9:97"},{"arguments":[{"name":"value0","nativeSrc":"1822:6:97","nodeType":"YulIdentifier","src":"1822:6:97"},{"kind":"number","nativeSrc":"1830:4:97","nodeType":"YulLiteral","src":"1830:4:97","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"1818:3:97","nodeType":"YulIdentifier","src":"1818:3:97"},"nativeSrc":"1818:17:97","nodeType":"YulFunctionCall","src":"1818:17:97"}],"functionName":{"name":"mstore","nativeSrc":"1800:6:97","nodeType":"YulIdentifier","src":"1800:6:97"},"nativeSrc":"1800:36:97","nodeType":"YulFunctionCall","src":"1800:36:97"},"nativeSrc":"1800:36:97","nodeType":"YulExpressionStatement","src":"1800:36:97"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nativeSrc":"1648:194:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1724:9:97","nodeType":"YulTypedName","src":"1724:9:97","type":""},{"name":"value0","nativeSrc":"1735:6:97","nodeType":"YulTypedName","src":"1735:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1746:4:97","nodeType":"YulTypedName","src":"1746:4:97","type":""}],"src":"1648:194:97"},{"body":{"nativeSrc":"2021:182:97","nodeType":"YulBlock","src":"2021:182:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2038:9:97","nodeType":"YulIdentifier","src":"2038:9:97"},{"kind":"number","nativeSrc":"2049:2:97","nodeType":"YulLiteral","src":"2049:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"2031:6:97","nodeType":"YulIdentifier","src":"2031:6:97"},"nativeSrc":"2031:21:97","nodeType":"YulFunctionCall","src":"2031:21:97"},"nativeSrc":"2031:21:97","nodeType":"YulExpressionStatement","src":"2031:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2072:9:97","nodeType":"YulIdentifier","src":"2072:9:97"},{"kind":"number","nativeSrc":"2083:2:97","nodeType":"YulLiteral","src":"2083:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2068:3:97","nodeType":"YulIdentifier","src":"2068:3:97"},"nativeSrc":"2068:18:97","nodeType":"YulFunctionCall","src":"2068:18:97"},{"kind":"number","nativeSrc":"2088:2:97","nodeType":"YulLiteral","src":"2088:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"2061:6:97","nodeType":"YulIdentifier","src":"2061:6:97"},"nativeSrc":"2061:30:97","nodeType":"YulFunctionCall","src":"2061:30:97"},"nativeSrc":"2061:30:97","nodeType":"YulExpressionStatement","src":"2061:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2111:9:97","nodeType":"YulIdentifier","src":"2111:9:97"},{"kind":"number","nativeSrc":"2122:2:97","nodeType":"YulLiteral","src":"2122:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2107:3:97","nodeType":"YulIdentifier","src":"2107:3:97"},"nativeSrc":"2107:18:97","nodeType":"YulFunctionCall","src":"2107:18:97"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nativeSrc":"2127:34:97","nodeType":"YulLiteral","src":"2127:34:97","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nativeSrc":"2100:6:97","nodeType":"YulIdentifier","src":"2100:6:97"},"nativeSrc":"2100:62:97","nodeType":"YulFunctionCall","src":"2100:62:97"},"nativeSrc":"2100:62:97","nodeType":"YulExpressionStatement","src":"2100:62:97"},{"nativeSrc":"2171:26:97","nodeType":"YulAssignment","src":"2171:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2183:9:97","nodeType":"YulIdentifier","src":"2183:9:97"},{"kind":"number","nativeSrc":"2194:2:97","nodeType":"YulLiteral","src":"2194:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2179:3:97","nodeType":"YulIdentifier","src":"2179:3:97"},"nativeSrc":"2179:18:97","nodeType":"YulFunctionCall","src":"2179:18:97"},"variableNames":[{"name":"tail","nativeSrc":"2171:4:97","nodeType":"YulIdentifier","src":"2171:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"1847:356:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1998:9:97","nodeType":"YulTypedName","src":"1998:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2012:4:97","nodeType":"YulTypedName","src":"2012:4:97","type":""}],"src":"1847:356:97"},{"body":{"nativeSrc":"2382:227:97","nodeType":"YulBlock","src":"2382:227:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2399:9:97","nodeType":"YulIdentifier","src":"2399:9:97"},{"kind":"number","nativeSrc":"2410:2:97","nodeType":"YulLiteral","src":"2410:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"2392:6:97","nodeType":"YulIdentifier","src":"2392:6:97"},"nativeSrc":"2392:21:97","nodeType":"YulFunctionCall","src":"2392:21:97"},"nativeSrc":"2392:21:97","nodeType":"YulExpressionStatement","src":"2392:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2433:9:97","nodeType":"YulIdentifier","src":"2433:9:97"},{"kind":"number","nativeSrc":"2444:2:97","nodeType":"YulLiteral","src":"2444:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2429:3:97","nodeType":"YulIdentifier","src":"2429:3:97"},"nativeSrc":"2429:18:97","nodeType":"YulFunctionCall","src":"2429:18:97"},{"kind":"number","nativeSrc":"2449:2:97","nodeType":"YulLiteral","src":"2449:2:97","type":"","value":"37"}],"functionName":{"name":"mstore","nativeSrc":"2422:6:97","nodeType":"YulIdentifier","src":"2422:6:97"},"nativeSrc":"2422:30:97","nodeType":"YulFunctionCall","src":"2422:30:97"},"nativeSrc":"2422:30:97","nodeType":"YulExpressionStatement","src":"2422:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2472:9:97","nodeType":"YulIdentifier","src":"2472:9:97"},{"kind":"number","nativeSrc":"2483:2:97","nodeType":"YulLiteral","src":"2483:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2468:3:97","nodeType":"YulIdentifier","src":"2468:3:97"},"nativeSrc":"2468:18:97","nodeType":"YulFunctionCall","src":"2468:18:97"},{"hexValue":"696e76616c696420616365737320636f6e74726f6c206d616e61676572206164","kind":"string","nativeSrc":"2488:34:97","nodeType":"YulLiteral","src":"2488:34:97","type":"","value":"invalid acess control manager ad"}],"functionName":{"name":"mstore","nativeSrc":"2461:6:97","nodeType":"YulIdentifier","src":"2461:6:97"},"nativeSrc":"2461:62:97","nodeType":"YulFunctionCall","src":"2461:62:97"},"nativeSrc":"2461:62:97","nodeType":"YulExpressionStatement","src":"2461:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2543:9:97","nodeType":"YulIdentifier","src":"2543:9:97"},{"kind":"number","nativeSrc":"2554:2:97","nodeType":"YulLiteral","src":"2554:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2539:3:97","nodeType":"YulIdentifier","src":"2539:3:97"},"nativeSrc":"2539:18:97","nodeType":"YulFunctionCall","src":"2539:18:97"},{"hexValue":"6472657373","kind":"string","nativeSrc":"2559:7:97","nodeType":"YulLiteral","src":"2559:7:97","type":"","value":"dress"}],"functionName":{"name":"mstore","nativeSrc":"2532:6:97","nodeType":"YulIdentifier","src":"2532:6:97"},"nativeSrc":"2532:35:97","nodeType":"YulFunctionCall","src":"2532:35:97"},"nativeSrc":"2532:35:97","nodeType":"YulExpressionStatement","src":"2532:35:97"},{"nativeSrc":"2576:27:97","nodeType":"YulAssignment","src":"2576:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2588:9:97","nodeType":"YulIdentifier","src":"2588:9:97"},{"kind":"number","nativeSrc":"2599:3:97","nodeType":"YulLiteral","src":"2599:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"2584:3:97","nodeType":"YulIdentifier","src":"2584:3:97"},"nativeSrc":"2584:19:97","nodeType":"YulFunctionCall","src":"2584:19:97"},"variableNames":[{"name":"tail","nativeSrc":"2576:4:97","nodeType":"YulIdentifier","src":"2576:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2208:401:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2359:9:97","nodeType":"YulTypedName","src":"2359:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2373:4:97","nodeType":"YulTypedName","src":"2373:4:97","type":""}],"src":"2208:401:97"},{"body":{"nativeSrc":"2743:198:97","nodeType":"YulBlock","src":"2743:198:97","statements":[{"nativeSrc":"2753:26:97","nodeType":"YulAssignment","src":"2753:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2765:9:97","nodeType":"YulIdentifier","src":"2765:9:97"},{"kind":"number","nativeSrc":"2776:2:97","nodeType":"YulLiteral","src":"2776:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2761:3:97","nodeType":"YulIdentifier","src":"2761:3:97"},"nativeSrc":"2761:18:97","nodeType":"YulFunctionCall","src":"2761:18:97"},"variableNames":[{"name":"tail","nativeSrc":"2753:4:97","nodeType":"YulIdentifier","src":"2753:4:97"}]},{"nativeSrc":"2788:52:97","nodeType":"YulVariableDeclaration","src":"2788:52:97","value":{"kind":"number","nativeSrc":"2798:42:97","nodeType":"YulLiteral","src":"2798:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"2792:2:97","nodeType":"YulTypedName","src":"2792:2:97","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2856:9:97","nodeType":"YulIdentifier","src":"2856:9:97"},{"arguments":[{"name":"value0","nativeSrc":"2871:6:97","nodeType":"YulIdentifier","src":"2871:6:97"},{"name":"_1","nativeSrc":"2879:2:97","nodeType":"YulIdentifier","src":"2879:2:97"}],"functionName":{"name":"and","nativeSrc":"2867:3:97","nodeType":"YulIdentifier","src":"2867:3:97"},"nativeSrc":"2867:15:97","nodeType":"YulFunctionCall","src":"2867:15:97"}],"functionName":{"name":"mstore","nativeSrc":"2849:6:97","nodeType":"YulIdentifier","src":"2849:6:97"},"nativeSrc":"2849:34:97","nodeType":"YulFunctionCall","src":"2849:34:97"},"nativeSrc":"2849:34:97","nodeType":"YulExpressionStatement","src":"2849:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2903:9:97","nodeType":"YulIdentifier","src":"2903:9:97"},{"kind":"number","nativeSrc":"2914:2:97","nodeType":"YulLiteral","src":"2914:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2899:3:97","nodeType":"YulIdentifier","src":"2899:3:97"},"nativeSrc":"2899:18:97","nodeType":"YulFunctionCall","src":"2899:18:97"},{"arguments":[{"name":"value1","nativeSrc":"2923:6:97","nodeType":"YulIdentifier","src":"2923:6:97"},{"name":"_1","nativeSrc":"2931:2:97","nodeType":"YulIdentifier","src":"2931:2:97"}],"functionName":{"name":"and","nativeSrc":"2919:3:97","nodeType":"YulIdentifier","src":"2919:3:97"},"nativeSrc":"2919:15:97","nodeType":"YulFunctionCall","src":"2919:15:97"}],"functionName":{"name":"mstore","nativeSrc":"2892:6:97","nodeType":"YulIdentifier","src":"2892:6:97"},"nativeSrc":"2892:43:97","nodeType":"YulFunctionCall","src":"2892:43:97"},"nativeSrc":"2892:43:97","nodeType":"YulExpressionStatement","src":"2892:43:97"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"2614:327:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2704:9:97","nodeType":"YulTypedName","src":"2704:9:97","type":""},{"name":"value1","nativeSrc":"2715:6:97","nodeType":"YulTypedName","src":"2715:6:97","type":""},{"name":"value0","nativeSrc":"2723:6:97","nodeType":"YulTypedName","src":"2723:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2734:4:97","nodeType":"YulTypedName","src":"2734:4:97","type":""}],"src":"2614:327:97"},{"body":{"nativeSrc":"3120:233:97","nodeType":"YulBlock","src":"3120:233:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3137:9:97","nodeType":"YulIdentifier","src":"3137:9:97"},{"kind":"number","nativeSrc":"3148:2:97","nodeType":"YulLiteral","src":"3148:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"3130:6:97","nodeType":"YulIdentifier","src":"3130:6:97"},"nativeSrc":"3130:21:97","nodeType":"YulFunctionCall","src":"3130:21:97"},"nativeSrc":"3130:21:97","nodeType":"YulExpressionStatement","src":"3130:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3171:9:97","nodeType":"YulIdentifier","src":"3171:9:97"},{"kind":"number","nativeSrc":"3182:2:97","nodeType":"YulLiteral","src":"3182:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3167:3:97","nodeType":"YulIdentifier","src":"3167:3:97"},"nativeSrc":"3167:18:97","nodeType":"YulFunctionCall","src":"3167:18:97"},{"kind":"number","nativeSrc":"3187:2:97","nodeType":"YulLiteral","src":"3187:2:97","type":"","value":"43"}],"functionName":{"name":"mstore","nativeSrc":"3160:6:97","nodeType":"YulIdentifier","src":"3160:6:97"},"nativeSrc":"3160:30:97","nodeType":"YulFunctionCall","src":"3160:30:97"},"nativeSrc":"3160:30:97","nodeType":"YulExpressionStatement","src":"3160:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3210:9:97","nodeType":"YulIdentifier","src":"3210:9:97"},{"kind":"number","nativeSrc":"3221:2:97","nodeType":"YulLiteral","src":"3221:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3206:3:97","nodeType":"YulIdentifier","src":"3206:3:97"},"nativeSrc":"3206:18:97","nodeType":"YulFunctionCall","src":"3206:18:97"},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069","kind":"string","nativeSrc":"3226:34:97","nodeType":"YulLiteral","src":"3226:34:97","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nativeSrc":"3199:6:97","nodeType":"YulIdentifier","src":"3199:6:97"},"nativeSrc":"3199:62:97","nodeType":"YulFunctionCall","src":"3199:62:97"},"nativeSrc":"3199:62:97","nodeType":"YulExpressionStatement","src":"3199:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3281:9:97","nodeType":"YulIdentifier","src":"3281:9:97"},{"kind":"number","nativeSrc":"3292:2:97","nodeType":"YulLiteral","src":"3292:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3277:3:97","nodeType":"YulIdentifier","src":"3277:3:97"},"nativeSrc":"3277:18:97","nodeType":"YulFunctionCall","src":"3277:18:97"},{"hexValue":"6e697469616c697a696e67","kind":"string","nativeSrc":"3297:13:97","nodeType":"YulLiteral","src":"3297:13:97","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nativeSrc":"3270:6:97","nodeType":"YulIdentifier","src":"3270:6:97"},"nativeSrc":"3270:41:97","nodeType":"YulFunctionCall","src":"3270:41:97"},"nativeSrc":"3270:41:97","nodeType":"YulExpressionStatement","src":"3270:41:97"},{"nativeSrc":"3320:27:97","nodeType":"YulAssignment","src":"3320:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"3332:9:97","nodeType":"YulIdentifier","src":"3332:9:97"},{"kind":"number","nativeSrc":"3343:3:97","nodeType":"YulLiteral","src":"3343:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"3328:3:97","nodeType":"YulIdentifier","src":"3328:3:97"},"nativeSrc":"3328:19:97","nodeType":"YulFunctionCall","src":"3328:19:97"},"variableNames":[{"name":"tail","nativeSrc":"3320:4:97","nodeType":"YulIdentifier","src":"3320:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2946:407:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3097:9:97","nodeType":"YulTypedName","src":"3097:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3111:4:97","nodeType":"YulTypedName","src":"3111:4:97","type":""}],"src":"2946:407:97"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_contract$_IAccessControlManagerV8_$13903__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 41)\n        mstore(add(headStart, 64), \"Ownable2Step: caller is not the \")\n        mstore(add(headStart, 96), \"new owner\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 46)\n        mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n        mstore(add(headStart, 96), \"dy initialized\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"invalid acess control manager ad\")\n        mstore(add(headStart, 96), \"dress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n    }\n    function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 43)\n        mstore(add(headStart, 64), \"Initializable: contract is not i\")\n        mstore(add(headStart, 96), \"nitializing\")\n        tail := add(headStart, 128)\n    }\n}","id":97,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100885760003560e01c8063b4a0bdf31161005b578063b4a0bdf3146100f5578063c4d66de814610113578063e30c397814610126578063f2fde38b1461014457600080fd5b80630e32cb861461008d578063715018a6146100a257806379ba5097146100aa5780638da5cb5b146100b2575b600080fd5b6100a061009b366004610944565b610157565b005b6100a061016b565b6100a061017f565b60335473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60975473ffffffffffffffffffffffffffffffffffffffff166100cc565b6100a0610121366004610944565b610236565b60655473ffffffffffffffffffffffffffffffffffffffff166100cc565b6100a0610152366004610944565b6103cb565b61015f61047b565b610168816104fc565b50565b61017361047b565b61017d600061061e565b565b606554339073ffffffffffffffffffffffffffffffffffffffff16811461022d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e6572000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6101688161061e565b600054610100900460ff16158080156102565750600054600160ff909116105b806102705750303b158015610270575060005460ff166001145b6102fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610224565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561035a57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6103638261064f565b80156103c757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15b5050565b6103d361047b565b6065805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915561043660335473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60335473ffffffffffffffffffffffffffffffffffffffff16331461017d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610224565b73ffffffffffffffffffffffffffffffffffffffff811661059f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e6167657220616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610224565b6097805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa091016103be565b606580547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055610168816106f7565b600054610100900460ff166106e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610224565b6106ee61076e565b6101688161080d565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16610805576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610224565b61017d6108a4565b600054610100900460ff1661015f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610224565b600054610100900460ff1661093b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610224565b61017d3361061e565b60006020828403121561095657600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461097a57600080fd5b939250505056fea264697066735822122079bb9bd555621c4bae9f4649c98b1ebd5937155c9e1d99071a948485a6cdaf0964736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x88 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xB4A0BDF3 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0xB4A0BDF3 EQ PUSH2 0xF5 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x113 JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x126 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x144 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xE32CB86 EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xA2 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0xAA JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xB2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA0 PUSH2 0x9B CALLDATASIZE PUSH1 0x4 PUSH2 0x944 JUMP JUMPDEST PUSH2 0x157 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xA0 PUSH2 0x16B JUMP JUMPDEST PUSH2 0xA0 PUSH2 0x17F JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x97 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xCC JUMP JUMPDEST PUSH2 0xA0 PUSH2 0x121 CALLDATASIZE PUSH1 0x4 PUSH2 0x944 JUMP JUMPDEST PUSH2 0x236 JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xCC JUMP JUMPDEST PUSH2 0xA0 PUSH2 0x152 CALLDATASIZE PUSH1 0x4 PUSH2 0x944 JUMP JUMPDEST PUSH2 0x3CB JUMP JUMPDEST PUSH2 0x15F PUSH2 0x47B JUMP JUMPDEST PUSH2 0x168 DUP2 PUSH2 0x4FC JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x173 PUSH2 0x47B JUMP JUMPDEST PUSH2 0x17D PUSH1 0x0 PUSH2 0x61E JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x65 SLOAD CALLER SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 EQ PUSH2 0x22D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C6532537465703A2063616C6C6572206973206E6F742074686520 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E6577206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x168 DUP2 PUSH2 0x61E JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x256 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x270 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x270 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x2FC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x647920696E697469616C697A6564000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x224 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x35A JUMPI PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0x363 DUP3 PUSH2 0x64F JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3C7 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x3D3 PUSH2 0x47B JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP1 SWAP2 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0x436 PUSH1 0x33 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x17D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x224 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x59F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C696420616365737320636F6E74726F6C206D616E61676572206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x224 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 SWAP1 SWAP3 AND DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH32 0x66FD58E82F7B31A2A5C30E0888F3093EFE4E111B00CD2B0C31FE014601293AA0 SWAP2 ADD PUSH2 0x3BE JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND SWAP1 SSTORE PUSH2 0x168 DUP2 PUSH2 0x6F7 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x6E6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x224 JUMP JUMPDEST PUSH2 0x6EE PUSH2 0x76E JUMP JUMPDEST PUSH2 0x168 DUP2 PUSH2 0x80D JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x805 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x224 JUMP JUMPDEST PUSH2 0x17D PUSH2 0x8A4 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x15F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x224 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x93B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x224 JUMP JUMPDEST PUSH2 0x17D CALLER PUSH2 0x61E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x956 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x97A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH26 0xBB9BD555621C4BAE9F4649C98B1EBD5937155C9E1D99071A9484 DUP6 0xA6 0xCD 0xAF MULMOD PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"198:278:78:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2103:147:57;;;;;;:::i;:::-;;:::i;:::-;;2071:101:26;;;:::i;2010:206:25:-;;;:::i;1441:85:26:-;1513:6;;;;1441:85;;;504:42:97;492:55;;;474:74;;462:2;447:18;1441:85:26;;;;;;;2346:125:57;2443:21;;;;2346:125;;341:133:78;;;;;;:::i;:::-;;:::i;1123:99:25:-;1202:13;;;;1123:99;;1415:178;;;;;;:::i;:::-;;:::i;2103:147:57:-;1334:13:26;:11;:13::i;:::-;2196:47:57::1;2221:21;2196:24;:47::i;:::-;2103:147:::0;:::o;2071:101:26:-;1334:13;:11;:13::i;:::-;2135:30:::1;2162:1;2135:18;:30::i;:::-;2071:101::o:0;2010:206:25:-;1202:13;;929:10:29;;2103:24:25;1202:13;2103:24;;2095:78;;;;;;;1025:2:97;2095:78:25;;;1007:21:97;1064:2;1044:18;;;1037:30;1103:34;1083:18;;;1076:62;1174:11;1154:18;;;1147:39;1203:19;;2095:78:25;;;;;;;;;2183:26;2202:6;2183:18;:26::i;341:133:78:-;3268:19:27;3291:13;;;;;;3290:14;;3336:34;;;;-1:-1:-1;3354:12:27;;3369:1;3354:12;;;;:16;3336:34;3335:108;;;-1:-1:-1;3415:4:27;1476:19:28;:23;;;3376:66:27;;-1:-1:-1;3425:12:27;;;;;:17;3376:66;3314:201;;;;;;;1435:2:97;3314:201:27;;;1417:21:97;1474:2;1454:18;;;1447:30;1513:34;1493:18;;;1486:62;1584:16;1564:18;;;1557:44;1618:19;;3314:201:27;1233:410:97;3314:201:27;3525:12;:16;;;;3540:1;3525:16;;;3551:65;;;;3585:13;:20;;;;;;;;3551:65;422:45:78::1;446:20;422:23;:45::i;:::-;3640:14:27::0;3636:99;;;3686:5;3670:21;;;;;;3710:14;;-1:-1:-1;1800:36:97;;3710:14:27;;1788:2:97;1773:18;3710:14:27;;;;;;;;3636:99;3258:483;341:133:78;:::o;1415:178:25:-;1334:13:26;:11;:13::i;:::-;1504::25::1;:24:::0;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;1568:7:::1;1513:6:26::0;;;;;1441:85;1568:7:25::1;1543:43;;;;;;;;;;;;1415:178:::0;:::o;1599:130:26:-;1513:6;;1662:23;1513:6;929:10:29;1662:23:26;1654:68;;;;;;;2049:2:97;1654:68:26;;;2031:21:97;;;2068:18;;;2061:30;2127:34;2107:18;;;2100:62;2179:18;;1654:68:26;1847:356:97;2642:425:57;2734:44;;;2726:94;;;;;;;2410:2:97;2726:94:57;;;2392:21:97;2449:2;2429:18;;;2422:30;2488:34;2468:18;;;2461:62;2559:7;2539:18;;;2532:35;2584:19;;2726:94:57;2208:401:97;2726:94:57;2872:21;;;;2904:70;;;;;;;;;;;2989:71;;;2872:21;;;;2849:34:97;;;2914:2;2899:18;;2892:43;;;;2989:71:57;;2761:18:97;2989:71:57;2614:327:97;1777:153:25;1866:13;1859:20;;;;;;1889:34;1914:8;1889:24;:34::i;1420:194:57:-;5363:13:27;;;;;;;5355:69;;;;;;;3148:2:97;5355:69:27;;;3130:21:97;3187:2;3167:18;;;3160:30;3226:34;3206:18;;;3199:62;3297:13;3277:18;;;3270:41;3328:19;;5355:69:27;2946:407:97;5355:69:27;1520:21:57::1;:19;:21::i;:::-;1551:56;1585:21;1551:33;:56::i;2673:187:26:-:0;2765:6;;;;2781:17;;;;;;;;;;;2813:40;;2765:6;;;2781:17;2765:6;;2813:40;;2746:16;;2813:40;2736:124;2673:187;:::o;738:100:25:-;5363:13:27;;;;;;;5355:69;;;;;;;3148:2:97;5355:69:27;;;3130:21:97;3187:2;3167:18;;;3160:30;3226:34;3206:18;;;3199:62;3297:13;3277:18;;;3270:41;3328:19;;5355:69:27;2946:407:97;5355:69:27;805:26:25::1;:24;:26::i;1620:164:57:-:0;5363:13:27;;;;;;;5355:69;;;;;;;3148:2:97;5355:69:27;;;3130:21:97;3187:2;3167:18;;;3160:30;3226:34;3206:18;;;3199:62;3297:13;3277:18;;;3270:41;3328:19;;5355:69:27;2946:407:97;1104:111:26;5363:13:27;;;;;;;5355:69;;;;;;;3148:2:97;5355:69:27;;;3130:21:97;3187:2;3167:18;;;3160:30;3226:34;3206:18;;;3199:62;3297:13;3277:18;;;3270:41;3328:19;;5355:69:27;2946:407:97;5355:69:27;1176:32:26::1;929:10:29::0;1176:18:26::1;:32::i;14:309:97:-:0;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;181:9;168:23;231:42;224:5;220:54;213:5;210:65;200:93;;289:1;286;279:12;200:93;312:5;14:309;-1:-1:-1;;;14:309:97:o"},"gasEstimates":{"creation":{"codeDepositCost":"497400","executionCost":"530","totalCost":"497930"},"external":{"acceptOwnership()":"infinite","accessControlManager()":"2295","initialize(address)":"infinite","owner()":"2351","pendingOwner()":"2339","renounceOwnership()":"infinite","setAccessControlManager(address)":"28065","transferOwnership(address)":"30371"}},"methodIdentifiers":{"acceptOwnership()":"79ba5097","accessControlManager()":"b4a0bdf3","initialize(address)":"c4d66de8","owner()":"8da5cb5b","pendingOwner()":"e30c3978","renounceOwnership()":"715018a6","setAccessControlManager(address)":"0e32cb86","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"calledContract\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"methodSignature\",\"type\":\"string\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldAccessControlManager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAccessControlManager\",\"type\":\"address\"}],\"name\":\"NewAccessControlManager\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"accessControlManager\",\"outputs\":[{\"internalType\":\"contract IAccessControlManagerV8\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessControlManager\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessControlManager_\",\"type\":\"address\"}],\"name\":\"setAccessControlManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"initialize(address)\":{\"params\":{\"accessControlManager\":\"Access control manager contract address\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"setAccessControlManager(address)\":{\"custom:access\":\"Only Governance\",\"custom:event\":\"Emits NewAccessControlManager event\",\"details\":\"Admin function to set address of AccessControlManager\",\"params\":{\"accessControlManager_\":\"The new address of the AccessControlManager\"}},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"errors\":{\"Unauthorized(address,address,string)\":[{\"notice\":\"Thrown when the action is prohibited by AccessControlManager\"}]},\"events\":{\"NewAccessControlManager(address,address)\":{\"notice\":\"Emitted when access control manager contract address is changed\"}},\"kind\":\"user\",\"methods\":{\"accessControlManager()\":{\"notice\":\"Returns the address of the access control manager contract\"},\"setAccessControlManager(address)\":{\"notice\":\"Sets the address of AccessControlManager\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/MockAccessTest.sol\":\"MockAccessTest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroEndpoint.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"./ILayerZeroUserApplicationConfig.sol\\\";\\n\\ninterface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig {\\n    // @notice send a LayerZero message to the specified address at a LayerZero endpoint.\\n    // @param _dstChainId - the destination chain identifier\\n    // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains\\n    // @param _payload - a custom bytes payload to send to the destination contract\\n    // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address\\n    // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction\\n    // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination\\n    function send(\\n        uint16 _dstChainId,\\n        bytes calldata _destination,\\n        bytes calldata _payload,\\n        address payable _refundAddress,\\n        address _zroPaymentAddress,\\n        bytes calldata _adapterParams\\n    ) external payable;\\n\\n    // @notice used by the messaging library to publish verified payload\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source contract (as bytes) at the source chain\\n    // @param _dstAddress - the address on destination chain\\n    // @param _nonce - the unbound message ordering nonce\\n    // @param _gasLimit - the gas limit for external contract execution\\n    // @param _payload - verified payload to send to the destination contract\\n    function receivePayload(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        address _dstAddress,\\n        uint64 _nonce,\\n        uint _gasLimit,\\n        bytes calldata _payload\\n    ) external;\\n\\n    // @notice get the inboundNonce of a lzApp from a source chain which could be EVM or non-EVM chain\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint64);\\n\\n    // @notice get the outboundNonce from this source chain which, consequently, is always an EVM\\n    // @param _srcAddress - the source chain contract address\\n    function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view returns (uint64);\\n\\n    // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery\\n    // @param _dstChainId - the destination chain identifier\\n    // @param _userApplication - the user app address on this EVM chain\\n    // @param _payload - the custom message to send over LayerZero\\n    // @param _payInZRO - if false, user app pays the protocol fee in native token\\n    // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain\\n    function estimateFees(\\n        uint16 _dstChainId,\\n        address _userApplication,\\n        bytes calldata _payload,\\n        bool _payInZRO,\\n        bytes calldata _adapterParam\\n    ) external view returns (uint nativeFee, uint zroFee);\\n\\n    // @notice get this Endpoint's immutable source identifier\\n    function getChainId() external view returns (uint16);\\n\\n    // @notice the interface to retry failed message on this Endpoint destination\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    // @param _payload - the payload to be retried\\n    function retryPayload(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        bytes calldata _payload\\n    ) external;\\n\\n    // @notice query if any STORED payload (message blocking) at the endpoint.\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool);\\n\\n    // @notice query if the _libraryAddress is valid for sending msgs.\\n    // @param _userApplication - the user app address on this EVM chain\\n    function getSendLibraryAddress(address _userApplication) external view returns (address);\\n\\n    // @notice query if the _libraryAddress is valid for receiving msgs.\\n    // @param _userApplication - the user app address on this EVM chain\\n    function getReceiveLibraryAddress(address _userApplication) external view returns (address);\\n\\n    // @notice query if the non-reentrancy guard for send() is on\\n    // @return true if the guard is on. false otherwise\\n    function isSendingPayload() external view returns (bool);\\n\\n    // @notice query if the non-reentrancy guard for receive() is on\\n    // @return true if the guard is on. false otherwise\\n    function isReceivingPayload() external view returns (bool);\\n\\n    // @notice get the configuration of the LayerZero messaging library of the specified version\\n    // @param _version - messaging library version\\n    // @param _chainId - the chainId for the pending config change\\n    // @param _userApplication - the contract address of the user application\\n    // @param _configType - type of configuration. every messaging library has its own convention.\\n    function getConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        address _userApplication,\\n        uint _configType\\n    ) external view returns (bytes memory);\\n\\n    // @notice get the send() LayerZero messaging library version\\n    // @param _userApplication - the contract address of the user application\\n    function getSendVersion(address _userApplication) external view returns (uint16);\\n\\n    // @notice get the lzReceive() LayerZero messaging library version\\n    // @param _userApplication - the contract address of the user application\\n    function getReceiveVersion(address _userApplication) external view returns (uint16);\\n}\\n\",\"keccak256\":\"0xab7fcacc672251c850f00c0abd4100df9afcc4ad70b8d331a2fd4cb07acab9f4\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroReceiver {\\n    // @notice LayerZero endpoint will invoke this function to deliver the message on the destination\\n    // @param _srcChainId - the source endpoint identifier\\n    // @param _srcAddress - the source sending contract address from the source chain\\n    // @param _nonce - the ordered message nonce\\n    // @param _payload - the signed payload is the UA bytes has encoded to be sent\\n    function lzReceive(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) external;\\n}\\n\",\"keccak256\":\"0xac1966c1229bd4dc36b6c69eeb94a537bd9aa2198d7623b9ba7f8f7dbe79bb4c\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroUserApplicationConfig.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroUserApplicationConfig {\\n    // @notice set the configuration of the LayerZero messaging library of the specified version\\n    // @param _version - messaging library version\\n    // @param _chainId - the chainId for the pending config change\\n    // @param _configType - type of configuration. every messaging library has its own convention.\\n    // @param _config - configuration in the bytes. can encode arbitrary content.\\n    function setConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        uint _configType,\\n        bytes calldata _config\\n    ) external;\\n\\n    // @notice set the send() LayerZero messaging library version to _version\\n    // @param _version - new messaging library version\\n    function setSendVersion(uint16 _version) external;\\n\\n    // @notice set the lzReceive() LayerZero messaging library version to _version\\n    // @param _version - new messaging library version\\n    function setReceiveVersion(uint16 _version) external;\\n\\n    // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\\n    // @param _srcChainId - the chainId of the source chain\\n    // @param _srcAddress - the contract address of the source contract at the source chain\\n    function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\\n}\\n\",\"keccak256\":\"0xb4df93aeb0fb46373a4fb728ad2603edc8b9a1577eee8d801768dc115bf96498\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/libs/LzLib.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity >=0.6.0;\\npragma experimental ABIEncoderV2;\\n\\nlibrary LzLib {\\n    // LayerZero communication\\n    struct CallParams {\\n        address payable refundAddress;\\n        address zroPaymentAddress;\\n    }\\n\\n    //---------------------------------------------------------------------------\\n    // Address type handling\\n\\n    struct AirdropParams {\\n        uint airdropAmount;\\n        bytes32 airdropAddress;\\n    }\\n\\n    function buildAdapterParams(LzLib.AirdropParams memory _airdropParams, uint _uaGasLimit) internal pure returns (bytes memory adapterParams) {\\n        if (_airdropParams.airdropAmount == 0 && _airdropParams.airdropAddress == bytes32(0x0)) {\\n            adapterParams = buildDefaultAdapterParams(_uaGasLimit);\\n        } else {\\n            adapterParams = buildAirdropAdapterParams(_uaGasLimit, _airdropParams);\\n        }\\n    }\\n\\n    // Build Adapter Params\\n    function buildDefaultAdapterParams(uint _uaGas) internal pure returns (bytes memory) {\\n        // txType 1\\n        // bytes  [2       32      ]\\n        // fields [txType  extraGas]\\n        return abi.encodePacked(uint16(1), _uaGas);\\n    }\\n\\n    function buildAirdropAdapterParams(uint _uaGas, AirdropParams memory _params) internal pure returns (bytes memory) {\\n        require(_params.airdropAmount > 0, \\\"Airdrop amount must be greater than 0\\\");\\n        require(_params.airdropAddress != bytes32(0x0), \\\"Airdrop address must be set\\\");\\n\\n        // txType 2\\n        // bytes  [2       32        32            bytes[]         ]\\n        // fields [txType  extraGas  dstNativeAmt  dstNativeAddress]\\n        return abi.encodePacked(uint16(2), _uaGas, _params.airdropAmount, _params.airdropAddress);\\n    }\\n\\n    function getGasLimit(bytes memory _adapterParams) internal pure returns (uint gasLimit) {\\n        require(_adapterParams.length == 34 || _adapterParams.length > 66, \\\"Invalid adapterParams\\\");\\n        assembly {\\n            gasLimit := mload(add(_adapterParams, 34))\\n        }\\n    }\\n\\n    // Decode Adapter Params\\n    function decodeAdapterParams(bytes memory _adapterParams)\\n        internal\\n        pure\\n        returns (\\n            uint16 txType,\\n            uint uaGas,\\n            uint airdropAmount,\\n            address payable airdropAddress\\n        )\\n    {\\n        require(_adapterParams.length == 34 || _adapterParams.length > 66, \\\"Invalid adapterParams\\\");\\n        assembly {\\n            txType := mload(add(_adapterParams, 2))\\n            uaGas := mload(add(_adapterParams, 34))\\n        }\\n        require(txType == 1 || txType == 2, \\\"Unsupported txType\\\");\\n        require(uaGas > 0, \\\"Gas too low\\\");\\n\\n        if (txType == 2) {\\n            assembly {\\n                airdropAmount := mload(add(_adapterParams, 66))\\n                airdropAddress := mload(add(_adapterParams, 86))\\n            }\\n        }\\n    }\\n\\n    //---------------------------------------------------------------------------\\n    // Address type handling\\n    function bytes32ToAddress(bytes32 _bytes32Address) internal pure returns (address _address) {\\n        return address(uint160(uint(_bytes32Address)));\\n    }\\n\\n    function addressToBytes32(address _address) internal pure returns (bytes32 _bytes32Address) {\\n        return bytes32(uint(uint160(_address)));\\n    }\\n}\\n\",\"keccak256\":\"0xf61b7357d6638814e1a8d5edeba5c8f5db1cd782882b96da4452604ec0d5c20a\",\"license\":\"BUSL-1.1\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity ^0.8.0;\\npragma abicoder v2;\\n\\nimport \\\"../interfaces/ILayerZeroReceiver.sol\\\";\\nimport \\\"../interfaces/ILayerZeroEndpoint.sol\\\";\\nimport \\\"../libs/LzLib.sol\\\";\\n\\n/*\\nlike a real LayerZero endpoint but can be mocked, which handle message transmission, verification, and receipt.\\n- blocking: LayerZero provides ordered delivery of messages from a given sender to a destination chain.\\n- non-reentrancy: endpoint has a non-reentrancy guard for both the send() and receive(), respectively.\\n- adapter parameters: allows UAs to add arbitrary transaction params in the send() function, like airdrop on destination chain.\\nunlike a real LayerZero endpoint, it is\\n- no messaging library versioning\\n- send() will short circuit to lzReceive()\\n- no user application configuration\\n*/\\ncontract LZEndpointMock is ILayerZeroEndpoint {\\n    uint8 internal constant _NOT_ENTERED = 1;\\n    uint8 internal constant _ENTERED = 2;\\n\\n    mapping(address => address) public lzEndpointLookup;\\n\\n    uint16 public mockChainId;\\n    bool public nextMsgBlocked;\\n\\n    // fee config\\n    RelayerFeeConfig public relayerFeeConfig;\\n    ProtocolFeeConfig public protocolFeeConfig;\\n    uint public oracleFee;\\n    bytes public defaultAdapterParams;\\n\\n    // path = remote addrss + local address\\n    // inboundNonce = [srcChainId][path].\\n    mapping(uint16 => mapping(bytes => uint64)) public inboundNonce;\\n    //todo: this is a hack\\n    // outboundNonce = [dstChainId][srcAddress]\\n    mapping(uint16 => mapping(address => uint64)) public outboundNonce;\\n    //    // outboundNonce = [dstChainId][path].\\n    //    mapping(uint16 => mapping(bytes => uint64)) public outboundNonce;\\n    // storedPayload = [srcChainId][path]\\n    mapping(uint16 => mapping(bytes => StoredPayload)) public storedPayload;\\n    // msgToDeliver = [srcChainId][path]\\n    mapping(uint16 => mapping(bytes => QueuedPayload[])) public msgsToDeliver;\\n\\n    // reentrancy guard\\n    uint8 internal _send_entered_state = 1;\\n    uint8 internal _receive_entered_state = 1;\\n\\n    struct ProtocolFeeConfig {\\n        uint zroFee;\\n        uint nativeBP;\\n    }\\n\\n    struct RelayerFeeConfig {\\n        uint128 dstPriceRatio; // 10^10\\n        uint128 dstGasPriceInWei;\\n        uint128 dstNativeAmtCap;\\n        uint64 baseGas;\\n        uint64 gasPerByte;\\n    }\\n\\n    struct StoredPayload {\\n        uint64 payloadLength;\\n        address dstAddress;\\n        bytes32 payloadHash;\\n    }\\n\\n    struct QueuedPayload {\\n        address dstAddress;\\n        uint64 nonce;\\n        bytes payload;\\n    }\\n\\n    modifier sendNonReentrant() {\\n        require(_send_entered_state == _NOT_ENTERED, \\\"LayerZeroMock: no send reentrancy\\\");\\n        _send_entered_state = _ENTERED;\\n        _;\\n        _send_entered_state = _NOT_ENTERED;\\n    }\\n\\n    modifier receiveNonReentrant() {\\n        require(_receive_entered_state == _NOT_ENTERED, \\\"LayerZeroMock: no receive reentrancy\\\");\\n        _receive_entered_state = _ENTERED;\\n        _;\\n        _receive_entered_state = _NOT_ENTERED;\\n    }\\n\\n    event UaForceResumeReceive(uint16 chainId, bytes srcAddress);\\n    event PayloadCleared(uint16 srcChainId, bytes srcAddress, uint64 nonce, address dstAddress);\\n    event PayloadStored(uint16 srcChainId, bytes srcAddress, address dstAddress, uint64 nonce, bytes payload, bytes reason);\\n    event ValueTransferFailed(address indexed to, uint indexed quantity);\\n\\n    constructor(uint16 _chainId) {\\n        mockChainId = _chainId;\\n\\n        // init config\\n        relayerFeeConfig = RelayerFeeConfig({\\n            dstPriceRatio: 1e10, // 1:1, same chain, same native coin\\n            dstGasPriceInWei: 1e10,\\n            dstNativeAmtCap: 1e19,\\n            baseGas: 100,\\n            gasPerByte: 1\\n        });\\n        protocolFeeConfig = ProtocolFeeConfig({zroFee: 1e18, nativeBP: 1000}); // BP 0.1\\n        oracleFee = 1e16;\\n        defaultAdapterParams = LzLib.buildDefaultAdapterParams(200000);\\n    }\\n\\n    // ------------------------------ ILayerZeroEndpoint Functions ------------------------------\\n    function send(\\n        uint16 _chainId,\\n        bytes memory _path,\\n        bytes calldata _payload,\\n        address payable _refundAddress,\\n        address _zroPaymentAddress,\\n        bytes memory _adapterParams\\n    ) external payable override sendNonReentrant {\\n        require(_path.length == 40, \\\"LayerZeroMock: incorrect remote address size\\\"); // only support evm chains\\n\\n        address dstAddr;\\n        assembly {\\n            dstAddr := mload(add(_path, 20))\\n        }\\n\\n        address lzEndpoint = lzEndpointLookup[dstAddr];\\n        require(lzEndpoint != address(0), \\\"LayerZeroMock: destination LayerZero Endpoint not found\\\");\\n\\n        // not handle zro token\\n        bytes memory adapterParams = _adapterParams.length > 0 ? _adapterParams : defaultAdapterParams;\\n        (uint nativeFee, ) = estimateFees(_chainId, msg.sender, _payload, _zroPaymentAddress != address(0x0), adapterParams);\\n        require(msg.value >= nativeFee, \\\"LayerZeroMock: not enough native for fees\\\");\\n\\n        uint64 nonce = ++outboundNonce[_chainId][msg.sender];\\n\\n        // refund if they send too much\\n        uint amount = msg.value - nativeFee;\\n        if (amount > 0) {\\n            (bool success, ) = _refundAddress.call{value: amount}(\\\"\\\");\\n            require(success, \\\"LayerZeroMock: failed to refund\\\");\\n        }\\n\\n        // Mock the process of receiving msg on dst chain\\n        // Mock the relayer paying the dstNativeAddr the amount of extra native token\\n        (, uint extraGas, uint dstNativeAmt, address payable dstNativeAddr) = LzLib.decodeAdapterParams(adapterParams);\\n        if (dstNativeAmt > 0) {\\n            (bool success, ) = dstNativeAddr.call{value: dstNativeAmt}(\\\"\\\");\\n            if (!success) {\\n                emit ValueTransferFailed(dstNativeAddr, dstNativeAmt);\\n            }\\n        }\\n\\n        bytes memory srcUaAddress = abi.encodePacked(msg.sender, dstAddr); // cast this address to bytes\\n        bytes memory payload = _payload;\\n        LZEndpointMock(lzEndpoint).receivePayload(mockChainId, srcUaAddress, dstAddr, nonce, extraGas, payload);\\n    }\\n\\n    function receivePayload(\\n        uint16 _srcChainId,\\n        bytes calldata _path,\\n        address _dstAddress,\\n        uint64 _nonce,\\n        uint _gasLimit,\\n        bytes calldata _payload\\n    ) external override receiveNonReentrant {\\n        StoredPayload storage sp = storedPayload[_srcChainId][_path];\\n\\n        // assert and increment the nonce. no message shuffling\\n        require(_nonce == ++inboundNonce[_srcChainId][_path], \\\"LayerZeroMock: wrong nonce\\\");\\n\\n        // queue the following msgs inside of a stack to simulate a successful send on src, but not fully delivered on dst\\n        if (sp.payloadHash != bytes32(0)) {\\n            QueuedPayload[] storage msgs = msgsToDeliver[_srcChainId][_path];\\n            QueuedPayload memory newMsg = QueuedPayload(_dstAddress, _nonce, _payload);\\n\\n            // warning, might run into gas issues trying to forward through a bunch of queued msgs\\n            // shift all the msgs over so we can treat this like a fifo via array.pop()\\n            if (msgs.length > 0) {\\n                // extend the array\\n                msgs.push(newMsg);\\n\\n                // shift all the indexes up for pop()\\n                for (uint i = 0; i < msgs.length - 1; i++) {\\n                    msgs[i + 1] = msgs[i];\\n                }\\n\\n                // put the newMsg at the bottom of the stack\\n                msgs[0] = newMsg;\\n            } else {\\n                msgs.push(newMsg);\\n            }\\n        } else if (nextMsgBlocked) {\\n            storedPayload[_srcChainId][_path] = StoredPayload(uint64(_payload.length), _dstAddress, keccak256(_payload));\\n            emit PayloadStored(_srcChainId, _path, _dstAddress, _nonce, _payload, bytes(\\\"\\\"));\\n            // ensure the next msgs that go through are no longer blocked\\n            nextMsgBlocked = false;\\n        } else {\\n            try ILayerZeroReceiver(_dstAddress).lzReceive{gas: _gasLimit}(_srcChainId, _path, _nonce, _payload) {} catch (bytes memory reason) {\\n                storedPayload[_srcChainId][_path] = StoredPayload(uint64(_payload.length), _dstAddress, keccak256(_payload));\\n                emit PayloadStored(_srcChainId, _path, _dstAddress, _nonce, _payload, reason);\\n                // ensure the next msgs that go through are no longer blocked\\n                nextMsgBlocked = false;\\n            }\\n        }\\n    }\\n\\n    function getInboundNonce(uint16 _chainID, bytes calldata _path) external view override returns (uint64) {\\n        return inboundNonce[_chainID][_path];\\n    }\\n\\n    function getOutboundNonce(uint16 _chainID, address _srcAddress) external view override returns (uint64) {\\n        return outboundNonce[_chainID][_srcAddress];\\n    }\\n\\n    function estimateFees(\\n        uint16 _dstChainId,\\n        address _userApplication,\\n        bytes memory _payload,\\n        bool _payInZRO,\\n        bytes memory _adapterParams\\n    ) public view override returns (uint nativeFee, uint zroFee) {\\n        bytes memory adapterParams = _adapterParams.length > 0 ? _adapterParams : defaultAdapterParams;\\n\\n        // Relayer Fee\\n        uint relayerFee = _getRelayerFee(_dstChainId, 1, _userApplication, _payload.length, adapterParams);\\n\\n        // LayerZero Fee\\n        uint protocolFee = _getProtocolFees(_payInZRO, relayerFee, oracleFee);\\n        _payInZRO ? zroFee = protocolFee : nativeFee = protocolFee;\\n\\n        // return the sum of fees\\n        nativeFee = nativeFee + relayerFee + oracleFee;\\n    }\\n\\n    function getChainId() external view override returns (uint16) {\\n        return mockChainId;\\n    }\\n\\n    function retryPayload(\\n        uint16 _srcChainId,\\n        bytes calldata _path,\\n        bytes calldata _payload\\n    ) external override {\\n        StoredPayload storage sp = storedPayload[_srcChainId][_path];\\n        require(sp.payloadHash != bytes32(0), \\\"LayerZeroMock: no stored payload\\\");\\n        require(_payload.length == sp.payloadLength && keccak256(_payload) == sp.payloadHash, \\\"LayerZeroMock: invalid payload\\\");\\n\\n        address dstAddress = sp.dstAddress;\\n        // empty the storedPayload\\n        sp.payloadLength = 0;\\n        sp.dstAddress = address(0);\\n        sp.payloadHash = bytes32(0);\\n\\n        uint64 nonce = inboundNonce[_srcChainId][_path];\\n\\n        ILayerZeroReceiver(dstAddress).lzReceive(_srcChainId, _path, nonce, _payload);\\n        emit PayloadCleared(_srcChainId, _path, nonce, dstAddress);\\n    }\\n\\n    function hasStoredPayload(uint16 _srcChainId, bytes calldata _path) external view override returns (bool) {\\n        StoredPayload storage sp = storedPayload[_srcChainId][_path];\\n        return sp.payloadHash != bytes32(0);\\n    }\\n\\n    function getSendLibraryAddress(address) external view override returns (address) {\\n        return address(this);\\n    }\\n\\n    function getReceiveLibraryAddress(address) external view override returns (address) {\\n        return address(this);\\n    }\\n\\n    function isSendingPayload() external view override returns (bool) {\\n        return _send_entered_state == _ENTERED;\\n    }\\n\\n    function isReceivingPayload() external view override returns (bool) {\\n        return _receive_entered_state == _ENTERED;\\n    }\\n\\n    function getConfig(\\n        uint16, /*_version*/\\n        uint16, /*_chainId*/\\n        address, /*_ua*/\\n        uint /*_configType*/\\n    ) external pure override returns (bytes memory) {\\n        return \\\"\\\";\\n    }\\n\\n    function getSendVersion(\\n        address /*_userApplication*/\\n    ) external pure override returns (uint16) {\\n        return 1;\\n    }\\n\\n    function getReceiveVersion(\\n        address /*_userApplication*/\\n    ) external pure override returns (uint16) {\\n        return 1;\\n    }\\n\\n    function setConfig(\\n        uint16, /*_version*/\\n        uint16, /*_chainId*/\\n        uint, /*_configType*/\\n        bytes memory /*_config*/\\n    ) external override {}\\n\\n    function setSendVersion(\\n        uint16 /*version*/\\n    ) external override {}\\n\\n    function setReceiveVersion(\\n        uint16 /*version*/\\n    ) external override {}\\n\\n    function forceResumeReceive(uint16 _srcChainId, bytes calldata _path) external override {\\n        StoredPayload storage sp = storedPayload[_srcChainId][_path];\\n        // revert if no messages are cached. safeguard malicious UA behaviour\\n        require(sp.payloadHash != bytes32(0), \\\"LayerZeroMock: no stored payload\\\");\\n        require(sp.dstAddress == msg.sender, \\\"LayerZeroMock: invalid caller\\\");\\n\\n        // empty the storedPayload\\n        sp.payloadLength = 0;\\n        sp.dstAddress = address(0);\\n        sp.payloadHash = bytes32(0);\\n\\n        emit UaForceResumeReceive(_srcChainId, _path);\\n\\n        // resume the receiving of msgs after we force clear the \\\"stuck\\\" msg\\n        _clearMsgQue(_srcChainId, _path);\\n    }\\n\\n    // ------------------------------ Other Public/External Functions --------------------------------------------------\\n\\n    function getLengthOfQueue(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint) {\\n        return msgsToDeliver[_srcChainId][_srcAddress].length;\\n    }\\n\\n    // used to simulate messages received get stored as a payload\\n    function blockNextMsg() external {\\n        nextMsgBlocked = true;\\n    }\\n\\n    function setDestLzEndpoint(address destAddr, address lzEndpointAddr) external {\\n        lzEndpointLookup[destAddr] = lzEndpointAddr;\\n    }\\n\\n    function setRelayerPrice(\\n        uint128 _dstPriceRatio,\\n        uint128 _dstGasPriceInWei,\\n        uint128 _dstNativeAmtCap,\\n        uint64 _baseGas,\\n        uint64 _gasPerByte\\n    ) external {\\n        relayerFeeConfig.dstPriceRatio = _dstPriceRatio;\\n        relayerFeeConfig.dstGasPriceInWei = _dstGasPriceInWei;\\n        relayerFeeConfig.dstNativeAmtCap = _dstNativeAmtCap;\\n        relayerFeeConfig.baseGas = _baseGas;\\n        relayerFeeConfig.gasPerByte = _gasPerByte;\\n    }\\n\\n    function setProtocolFee(uint _zroFee, uint _nativeBP) external {\\n        protocolFeeConfig.zroFee = _zroFee;\\n        protocolFeeConfig.nativeBP = _nativeBP;\\n    }\\n\\n    function setOracleFee(uint _oracleFee) external {\\n        oracleFee = _oracleFee;\\n    }\\n\\n    function setDefaultAdapterParams(bytes memory _adapterParams) external {\\n        defaultAdapterParams = _adapterParams;\\n    }\\n\\n    // --------------------- Internal Functions ---------------------\\n    // simulates the relayer pushing through the rest of the msgs that got delayed due to the stored payload\\n    function _clearMsgQue(uint16 _srcChainId, bytes calldata _path) internal {\\n        QueuedPayload[] storage msgs = msgsToDeliver[_srcChainId][_path];\\n\\n        // warning, might run into gas issues trying to forward through a bunch of queued msgs\\n        while (msgs.length > 0) {\\n            QueuedPayload memory payload = msgs[msgs.length - 1];\\n            ILayerZeroReceiver(payload.dstAddress).lzReceive(_srcChainId, _path, payload.nonce, payload.payload);\\n            msgs.pop();\\n        }\\n    }\\n\\n    function _getProtocolFees(\\n        bool _payInZro,\\n        uint _relayerFee,\\n        uint _oracleFee\\n    ) internal view returns (uint) {\\n        if (_payInZro) {\\n            return protocolFeeConfig.zroFee;\\n        } else {\\n            return ((_relayerFee + _oracleFee) * protocolFeeConfig.nativeBP) / 10000;\\n        }\\n    }\\n\\n    function _getRelayerFee(\\n        uint16, /* _dstChainId */\\n        uint16, /* _outboundProofType */\\n        address, /* _userApplication */\\n        uint _payloadSize,\\n        bytes memory _adapterParams\\n    ) internal view returns (uint) {\\n        (uint16 txType, uint extraGas, uint dstNativeAmt, ) = LzLib.decodeAdapterParams(_adapterParams);\\n        uint totalRemoteToken; // = baseGas + extraGas + requiredNativeAmount\\n        if (txType == 2) {\\n            require(relayerFeeConfig.dstNativeAmtCap >= dstNativeAmt, \\\"LayerZeroMock: dstNativeAmt too large \\\");\\n            totalRemoteToken += dstNativeAmt;\\n        }\\n        // remoteGasTotal = dstGasPriceInWei * (baseGas + extraGas)\\n        uint remoteGasTotal = relayerFeeConfig.dstGasPriceInWei * (relayerFeeConfig.baseGas + extraGas);\\n        totalRemoteToken += remoteGasTotal;\\n\\n        // tokenConversionRate = dstPrice / localPrice\\n        // basePrice = totalRemoteToken * tokenConversionRate\\n        uint basePrice = (totalRemoteToken * relayerFeeConfig.dstPriceRatio) / 10**10;\\n\\n        // pricePerByte = (dstGasPriceInWei * gasPerBytes) * tokenConversionRate\\n        uint pricePerByte = (relayerFeeConfig.dstGasPriceInWei * relayerFeeConfig.gasPerByte * relayerFeeConfig.dstPriceRatio) / 10**10;\\n\\n        return basePrice + _payloadSize * pricePerByte;\\n    }\\n}\\n\",\"keccak256\":\"0x06bc56b213f08faece383b9df0eb7eeafebb36f490ca117d927c93f3d82e554b\",\"license\":\"BUSL-1.1\"},\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (access/Ownable2Step.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./OwnableUpgradeable.sol\\\";\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership} and {acceptOwnership}.\\n *\\n * This module is used through inheritance. It will make available all functions\\n * from parent (Ownable).\\n */\\nabstract contract Ownable2StepUpgradeable is Initializable, OwnableUpgradeable {\\n    function __Ownable2Step_init() internal onlyInitializing {\\n        __Ownable_init_unchained();\\n    }\\n\\n    function __Ownable2Step_init_unchained() internal onlyInitializing {\\n    }\\n    address private _pendingOwner;\\n\\n    event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Returns the address of the pending owner.\\n     */\\n    function pendingOwner() public view virtual returns (address) {\\n        return _pendingOwner;\\n    }\\n\\n    /**\\n     * @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual override onlyOwner {\\n        _pendingOwner = newOwner;\\n        emit OwnershipTransferStarted(owner(), newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual override {\\n        delete _pendingOwner;\\n        super._transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev The new owner accepts the ownership transfer.\\n     */\\n    function acceptOwnership() external {\\n        address sender = _msgSender();\\n        require(pendingOwner() == sender, \\\"Ownable2Step: caller is not the new owner\\\");\\n        _transferOwnership(sender);\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0xd712fb45b3ea0ab49679164e3895037adc26ce12879d5184feb040e01c1c07a9\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/ContextUpgradeable.sol\\\";\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract OwnableUpgradeable is Initializable, ContextUpgradeable {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    function __Ownable_init() internal onlyInitializing {\\n        __Ownable_init_unchained();\\n    }\\n\\n    function __Ownable_init_unchained() internal onlyInitializing {\\n        _transferOwnership(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        _checkOwner();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if the sender is not the owner.\\n     */\\n    function _checkOwner() internal view virtual {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions anymore. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby removing any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.1) (proxy/utils/Initializable.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../../utils/AddressUpgradeable.sol\\\";\\n\\n/**\\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\\n *\\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\\n * reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in\\n * case an upgrade adds a module that needs to be initialized.\\n *\\n * For example:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * contract MyToken is ERC20Upgradeable {\\n *     function initialize() initializer public {\\n *         __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\");\\n *     }\\n * }\\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\\n *     function initializeV2() reinitializer(2) public {\\n *         __ERC20Permit_init(\\\"MyToken\\\");\\n *     }\\n * }\\n * ```\\n *\\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\\n *\\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\\n *\\n * [CAUTION]\\n * ====\\n * Avoid leaving a contract uninitialized.\\n *\\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * /// @custom:oz-upgrades-unsafe-allow constructor\\n * constructor() {\\n *     _disableInitializers();\\n * }\\n * ```\\n * ====\\n */\\nabstract contract Initializable {\\n    /**\\n     * @dev Indicates that the contract has been initialized.\\n     * @custom:oz-retyped-from bool\\n     */\\n    uint8 private _initialized;\\n\\n    /**\\n     * @dev Indicates that the contract is in the process of being initialized.\\n     */\\n    bool private _initializing;\\n\\n    /**\\n     * @dev Triggered when the contract has been initialized or reinitialized.\\n     */\\n    event Initialized(uint8 version);\\n\\n    /**\\n     * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\\n     * `onlyInitializing` functions can be used to initialize parent contracts.\\n     *\\n     * Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\\n     * constructor.\\n     *\\n     * Emits an {Initialized} event.\\n     */\\n    modifier initializer() {\\n        bool isTopLevelCall = !_initializing;\\n        require(\\n            (isTopLevelCall && _initialized < 1) || (!AddressUpgradeable.isContract(address(this)) && _initialized == 1),\\n            \\\"Initializable: contract is already initialized\\\"\\n        );\\n        _initialized = 1;\\n        if (isTopLevelCall) {\\n            _initializing = true;\\n        }\\n        _;\\n        if (isTopLevelCall) {\\n            _initializing = false;\\n            emit Initialized(1);\\n        }\\n    }\\n\\n    /**\\n     * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\\n     * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\\n     * used to initialize parent contracts.\\n     *\\n     * A reinitializer may be used after the original initialization step. This is essential to configure modules that\\n     * are added through upgrades and that require initialization.\\n     *\\n     * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\\n     * cannot be nested. If one is invoked in the context of another, execution will revert.\\n     *\\n     * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\\n     * a contract, executing them in the right order is up to the developer or operator.\\n     *\\n     * WARNING: setting the version to 255 will prevent any future reinitialization.\\n     *\\n     * Emits an {Initialized} event.\\n     */\\n    modifier reinitializer(uint8 version) {\\n        require(!_initializing && _initialized < version, \\\"Initializable: contract is already initialized\\\");\\n        _initialized = version;\\n        _initializing = true;\\n        _;\\n        _initializing = false;\\n        emit Initialized(version);\\n    }\\n\\n    /**\\n     * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\\n     * {initializer} and {reinitializer} modifiers, directly or indirectly.\\n     */\\n    modifier onlyInitializing() {\\n        require(_initializing, \\\"Initializable: contract is not initializing\\\");\\n        _;\\n    }\\n\\n    /**\\n     * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\\n     * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\\n     * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\\n     * through proxies.\\n     *\\n     * Emits an {Initialized} event the first time it is successfully executed.\\n     */\\n    function _disableInitializers() internal virtual {\\n        require(!_initializing, \\\"Initializable: contract is initializing\\\");\\n        if (_initialized < type(uint8).max) {\\n            _initialized = type(uint8).max;\\n            emit Initialized(type(uint8).max);\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns the highest version that has been initialized. See {reinitializer}.\\n     */\\n    function _getInitializedVersion() internal view returns (uint8) {\\n        return _initialized;\\n    }\\n\\n    /**\\n     * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.\\n     */\\n    function _isInitializing() internal view returns (bool) {\\n        return _initializing;\\n    }\\n}\\n\",\"keccak256\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary AddressUpgradeable {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\n     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\n     *\\n     * _Available since v4.8._\\n     */\\n    function verifyCallResultFromTarget(\\n        address target,\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        if (success) {\\n            if (returndata.length == 0) {\\n                // only check isContract if the call was successful and the return data is empty\\n                // otherwise we already know that it was a contract\\n                require(isContract(target), \\\"Address: call to non-contract\\\");\\n            }\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason or using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    function _revert(bytes memory returndata, string memory errorMessage) private pure {\\n        // Look for revert reason and bubble it up if present\\n        if (returndata.length > 0) {\\n            // The easiest way to bubble the revert reason is using memory via assembly\\n            /// @solidity memory-safe-assembly\\n            assembly {\\n                let returndata_size := mload(returndata)\\n                revert(add(32, returndata), returndata_size)\\n            }\\n        } else {\\n            revert(errorMessage);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract ContextUpgradeable is Initializable {\\n    function __Context_init() internal onlyInitializing {\\n    }\\n\\n    function __Context_init_unchained() internal onlyInitializing {\\n    }\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[50] private __gap;\\n}\\n\",\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"contracts/Governance/AccessControlledV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\\\";\\nimport \\\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\\\";\\n\\nimport \\\"./IAccessControlManagerV8.sol\\\";\\n\\n/**\\n * @title AccessControlledV8\\n * @author Venus\\n * @notice This contract is helper between access control manager and actual contract. This contract further inherited by other contract (using solidity 0.8.13)\\n * to integrate access controlled mechanism. It provides initialise methods and verifying access methods.\\n */\\nabstract contract AccessControlledV8 is Initializable, Ownable2StepUpgradeable {\\n    /// @notice Access control manager contract\\n    IAccessControlManagerV8 internal _accessControlManager;\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n\\n    /// @notice Emitted when access control manager contract address is changed\\n    event NewAccessControlManager(address oldAccessControlManager, address newAccessControlManager);\\n\\n    /// @notice Thrown when the action is prohibited by AccessControlManager\\n    error Unauthorized(address sender, address calledContract, string methodSignature);\\n\\n    function __AccessControlled_init(address accessControlManager_) internal onlyInitializing {\\n        __Ownable2Step_init();\\n        __AccessControlled_init_unchained(accessControlManager_);\\n    }\\n\\n    function __AccessControlled_init_unchained(address accessControlManager_) internal onlyInitializing {\\n        _setAccessControlManager(accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Sets the address of AccessControlManager\\n     * @dev Admin function to set address of AccessControlManager\\n     * @param accessControlManager_ The new address of the AccessControlManager\\n     * @custom:event Emits NewAccessControlManager event\\n     * @custom:access Only Governance\\n     */\\n    function setAccessControlManager(address accessControlManager_) external onlyOwner {\\n        _setAccessControlManager(accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Returns the address of the access control manager contract\\n     */\\n    function accessControlManager() external view returns (IAccessControlManagerV8) {\\n        return _accessControlManager;\\n    }\\n\\n    /**\\n     * @dev Internal function to set address of AccessControlManager\\n     * @param accessControlManager_ The new address of the AccessControlManager\\n     */\\n    function _setAccessControlManager(address accessControlManager_) internal {\\n        require(address(accessControlManager_) != address(0), \\\"invalid acess control manager address\\\");\\n        address oldAccessControlManager = address(_accessControlManager);\\n        _accessControlManager = IAccessControlManagerV8(accessControlManager_);\\n        emit NewAccessControlManager(oldAccessControlManager, accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Reverts if the call is not allowed by AccessControlManager\\n     * @param signature Method signature\\n     */\\n    function _checkAccessAllowed(string memory signature) internal view {\\n        bool isAllowedToCall = _accessControlManager.isAllowedToCall(msg.sender, signature);\\n\\n        if (!isAllowedToCall) {\\n            revert Unauthorized(msg.sender, address(this), signature);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xe7f5f96c70fb32912ecc0032f81f7876607353413fe7f723d41d260ac9c26a06\",\"license\":\"BSD-3-Clause\"},\"contracts/Governance/IAccessControlManagerV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/access/IAccessControl.sol\\\";\\n\\n/**\\n * @title IAccessControlManagerV8\\n * @author Venus\\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\\n */\\ninterface IAccessControlManagerV8 is IAccessControl {\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\\n\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) external;\\n\\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\\n\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xaa29b098440d0b3a131c5ecdf25ce548790c1b5ac7bf9b5c0264b6af6f7a1e0b\",\"license\":\"BSD-3-Clause\"},\"contracts/test/MockAccessTest.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport \\\"../Governance/AccessControlledV8.sol\\\";\\nimport \\\"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol\\\";\\n\\ncontract MockAccessTest is AccessControlledV8 {\\n    /**\\n     * @param accessControlManager Access control manager contract address\\n     */\\n    function initialize(address accessControlManager) external initializer {\\n        __AccessControlled_init(accessControlManager);\\n    }\\n}\\n\",\"keccak256\":\"0xc348f11c9604844fe26b37a4fea1218ec54d6312fdf119d1a3553b0c1615ff51\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":6086,"contract":"contracts/test/MockAccessTest.sol:MockAccessTest","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":6089,"contract":"contracts/test/MockAccessTest.sol:MockAccessTest","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":6573,"contract":"contracts/test/MockAccessTest.sol:MockAccessTest","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":5958,"contract":"contracts/test/MockAccessTest.sol:MockAccessTest","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":6078,"contract":"contracts/test/MockAccessTest.sol:MockAccessTest","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":5867,"contract":"contracts/test/MockAccessTest.sol:MockAccessTest","label":"_pendingOwner","offset":0,"slot":"101","type":"t_address"},{"astId":5946,"contract":"contracts/test/MockAccessTest.sol:MockAccessTest","label":"__gap","offset":0,"slot":"102","type":"t_array(t_uint256)49_storage"},{"astId":13718,"contract":"contracts/test/MockAccessTest.sol:MockAccessTest","label":"_accessControlManager","offset":0,"slot":"151","type":"t_contract(IAccessControlManagerV8)13903"},{"astId":13723,"contract":"contracts/test/MockAccessTest.sol:MockAccessTest","label":"__gap","offset":0,"slot":"152","type":"t_array(t_uint256)49_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_contract(IAccessControlManagerV8)13903":{"encoding":"inplace","label":"contract IAccessControlManagerV8","numberOfBytes":"20"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"errors":{"Unauthorized(address,address,string)":[{"notice":"Thrown when the action is prohibited by AccessControlManager"}]},"events":{"NewAccessControlManager(address,address)":{"notice":"Emitted when access control manager contract address is changed"}},"kind":"user","methods":{"accessControlManager()":{"notice":"Returns the address of the access control manager contract"},"setAccessControlManager(address)":{"notice":"Sets the address of AccessControlManager"}},"version":1}}},"contracts/test/MockComptroller.sol":{"MockComptroller":{"abi":[{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"allVTokens","outputs":[{"internalType":"contract ICorePoolVToken","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"borrowCaps","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAllMarkets","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"vToken","type":"address"}],"name":"markets","outputs":[{"internalType":"bool","name":"isListed","type":"bool"},{"internalType":"uint256","name":"collateralFactorMantissa","type":"uint256"},{"internalType":"uint256","name":"liquidationThresholdMantissa","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"vToken","type":"address"},{"internalType":"uint256","name":"newCollateralFactorMantissa","type":"uint256"},{"internalType":"uint256","name":"newLiquidationThresholdMantissa","type":"uint256"}],"name":"setCollateralFactor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"vTokens","type":"address[]"},{"internalType":"uint256[]","name":"newCaps","type":"uint256[]"}],"name":"setMarketBorrowCaps","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"vTokens","type":"address[]"},{"internalType":"uint256[]","name":"newCaps","type":"uint256[]"}],"name":"setMarketSupplyCaps","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"supplyCaps","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"vToken","type":"address"}],"name":"supportMarket","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"vTokenListed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{"getAllMarkets()":{"returns":{"_0":"Array of vToken addresses"}},"markets(address)":{"params":{"vToken":"The vToken address"},"returns":{"collateralFactorMantissa":"The collateral factor mantissa","isListed":"Whether the vToken is listed","liquidationThresholdMantissa":"The liquidation threshold mantissa"}},"setCollateralFactor(address,uint256,uint256)":{"params":{"newCollateralFactorMantissa":"The new collateral factor mantissa","newLiquidationThresholdMantissa":"The new liquidation threshold mantissa","vToken":"The vToken address"}},"setMarketBorrowCaps(address[],uint256[])":{"params":{"newCaps":"The new borrow caps","vTokens":"The vToken addresses"}},"setMarketSupplyCaps(address[],uint256[])":{"params":{"newCaps":"The new supply caps","vTokens":"The vToken addresses"}},"supportMarket(address)":{"params":{"vToken":"The vToken to add"}}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6080604052348015600f57600080fd5b50610b0b8061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c80638e8f294b11610076578063cab4f84c1161005b578063cab4f84c146101f9578063d136af441461020c578063d571c3111461021f57600080fd5b80638e8f294b14610176578063b0772d0b146101e457600080fd5b80631f3cefb5116100a75780631f3cefb51461010b5780634a584432146101435780635cc4fdeb1461016357600080fd5b806302c3bcbb146100c3578063186db48f146100f6575b600080fd5b6100e36100d13660046108f7565b60006020819052908152604090205481565b6040519081526020015b60405180910390f35b610109610104366004610965565b610252565b005b61011e6101193660046109d1565b61040f565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100ed565b6100e36101513660046108f7565b60016020526000908152604090205481565b6101096101713660046109ea565b610446565b6101c76101843660046108f7565b73ffffffffffffffffffffffffffffffffffffffff166000908152600360209081526040808320546004835281842054600590935292205460ff90921692909190565b6040805193151584526020840192909252908201526060016100ed565b6101ec61050a565b6040516100ed9190610a1d565b6101096102073660046108f7565b6105e7565b61010961021a366004610965565b610720565b61024261022d3660046108f7565b60036020526000908152604090205460ff1681565b60405190151581526020016100ed565b8281811580159061026257508082145b6102cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f696e76616c696420696e7075740000000000000000000000000000000000000060448201526064015b60405180910390fd5b60005b8281101561040657600360008888848181106102ee576102ee610a77565b905060200201602081019061030391906108f7565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040016000205460ff16610393576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f76546f6b656e206e6f74206c697374656400000000000000000000000000000060448201526064016102c4565b8484828181106103a5576103a5610a77565b90506020020135600160008989858181106103c2576103c2610a77565b90506020020160208101906103d791906108f7565b73ffffffffffffffffffffffffffffffffffffffff1681526020810191909152604001600020556001016102d0565b50505050505050565b6002818154811061041f57600080fd5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b73ffffffffffffffffffffffffffffffffffffffff831660009081526003602052604090205460ff166104d5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f76546f6b656e206e6f74206c697374656400000000000000000000000000000060448201526064016102c4565b73ffffffffffffffffffffffffffffffffffffffff909216600090815260046020908152604080832093909355600590522055565b60025460609060009067ffffffffffffffff81111561052b5761052b610aa6565b604051908082528060200260200182016040528015610554578160200160208202803683370190505b50905060005b6002548110156105e1576002818154811061057757610577610a77565b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168282815181106105b4576105b4610a77565b73ffffffffffffffffffffffffffffffffffffffff9092166020928302919091019091015260010161055a565b50919050565b73ffffffffffffffffffffffffffffffffffffffff811660009081526003602052604090205460ff1615610677576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f76546f6b656e20616c7265616479206c6973746564000000000000000000000060448201526064016102c4565b73ffffffffffffffffffffffffffffffffffffffff16600081815260036020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169091179055565b8281811580159061073057508082145b610796576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f696e76616c696420696e7075740000000000000000000000000000000000000060448201526064016102c4565b60005b8281101561040657600360008888848181106107b7576107b7610a77565b90506020020160208101906107cc91906108f7565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040016000205460ff1661085c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f76546f6b656e206e6f74206c697374656400000000000000000000000000000060448201526064016102c4565b84848281811061086e5761086e610a77565b9050602002013560008089898581811061088a5761088a610a77565b905060200201602081019061089f91906108f7565b73ffffffffffffffffffffffffffffffffffffffff168152602081019190915260400160002055600101610799565b803573ffffffffffffffffffffffffffffffffffffffff811681146108f257600080fd5b919050565b60006020828403121561090957600080fd5b610912826108ce565b9392505050565b60008083601f84011261092b57600080fd5b50813567ffffffffffffffff81111561094357600080fd5b6020830191508360208260051b850101111561095e57600080fd5b9250929050565b6000806000806040858703121561097b57600080fd5b843567ffffffffffffffff8082111561099357600080fd5b61099f88838901610919565b909650945060208701359150808211156109b857600080fd5b506109c587828801610919565b95989497509550505050565b6000602082840312156109e357600080fd5b5035919050565b6000806000606084860312156109ff57600080fd5b610a08846108ce565b95602085013595506040909401359392505050565b6020808252825182820181905260009190848201906040850190845b81811015610a6b57835173ffffffffffffffffffffffffffffffffffffffff1683529284019291840191600101610a39565b50909695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fdfea2646970667358221220d5c2b7c0e2414796d8ca3b5ac8afa0766b8514d90bd2f0252c2be7e2f535140764736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB0B DUP1 PUSH2 0x1F PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xBE JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8E8F294B GT PUSH2 0x76 JUMPI DUP1 PUSH4 0xCAB4F84C GT PUSH2 0x5B JUMPI DUP1 PUSH4 0xCAB4F84C EQ PUSH2 0x1F9 JUMPI DUP1 PUSH4 0xD136AF44 EQ PUSH2 0x20C JUMPI DUP1 PUSH4 0xD571C311 EQ PUSH2 0x21F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8E8F294B EQ PUSH2 0x176 JUMPI DUP1 PUSH4 0xB0772D0B EQ PUSH2 0x1E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1F3CEFB5 GT PUSH2 0xA7 JUMPI DUP1 PUSH4 0x1F3CEFB5 EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0x4A584432 EQ PUSH2 0x143 JUMPI DUP1 PUSH4 0x5CC4FDEB EQ PUSH2 0x163 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2C3BCBB EQ PUSH2 0xC3 JUMPI DUP1 PUSH4 0x186DB48F EQ PUSH2 0xF6 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE3 PUSH2 0xD1 CALLDATASIZE PUSH1 0x4 PUSH2 0x8F7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP2 SWAP1 MSTORE SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x109 PUSH2 0x104 CALLDATASIZE PUSH1 0x4 PUSH2 0x965 JUMP JUMPDEST PUSH2 0x252 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x11E PUSH2 0x119 CALLDATASIZE PUSH1 0x4 PUSH2 0x9D1 JUMP JUMPDEST PUSH2 0x40F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xED JUMP JUMPDEST PUSH2 0xE3 PUSH2 0x151 CALLDATASIZE PUSH1 0x4 PUSH2 0x8F7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x109 PUSH2 0x171 CALLDATASIZE PUSH1 0x4 PUSH2 0x9EA JUMP JUMPDEST PUSH2 0x446 JUMP JUMPDEST PUSH2 0x1C7 PUSH2 0x184 CALLDATASIZE PUSH1 0x4 PUSH2 0x8F7 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x4 DUP4 MSTORE DUP2 DUP5 KECCAK256 SLOAD PUSH1 0x5 SWAP1 SWAP4 MSTORE SWAP3 KECCAK256 SLOAD PUSH1 0xFF SWAP1 SWAP3 AND SWAP3 SWAP1 SWAP2 SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 ISZERO ISZERO DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0xED JUMP JUMPDEST PUSH2 0x1EC PUSH2 0x50A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xED SWAP2 SWAP1 PUSH2 0xA1D JUMP JUMPDEST PUSH2 0x109 PUSH2 0x207 CALLDATASIZE PUSH1 0x4 PUSH2 0x8F7 JUMP JUMPDEST PUSH2 0x5E7 JUMP JUMPDEST PUSH2 0x109 PUSH2 0x21A CALLDATASIZE PUSH1 0x4 PUSH2 0x965 JUMP JUMPDEST PUSH2 0x720 JUMP JUMPDEST PUSH2 0x242 PUSH2 0x22D CALLDATASIZE PUSH1 0x4 PUSH2 0x8F7 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xED JUMP JUMPDEST DUP3 DUP2 DUP2 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x262 JUMPI POP DUP1 DUP3 EQ JUMPDEST PUSH2 0x2CD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C696420696E70757400000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x406 JUMPI PUSH1 0x3 PUSH1 0x0 DUP9 DUP9 DUP5 DUP2 DUP2 LT PUSH2 0x2EE JUMPI PUSH2 0x2EE PUSH2 0xA77 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x303 SWAP2 SWAP1 PUSH2 0x8F7 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x393 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x76546F6B656E206E6F74206C6973746564000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2C4 JUMP JUMPDEST DUP5 DUP5 DUP3 DUP2 DUP2 LT PUSH2 0x3A5 JUMPI PUSH2 0x3A5 PUSH2 0xA77 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x0 DUP10 DUP10 DUP6 DUP2 DUP2 LT PUSH2 0x3C2 JUMPI PUSH2 0x3C2 PUSH2 0xA77 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x3D7 SWAP2 SWAP1 PUSH2 0x8F7 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SSTORE PUSH1 0x1 ADD PUSH2 0x2D0 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x41F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x4D5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x76546F6B656E206E6F74206C6973746564000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2C4 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0x5 SWAP1 MSTORE KECCAK256 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x60 SWAP1 PUSH1 0x0 SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x52B JUMPI PUSH2 0x52B PUSH2 0xAA6 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x554 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST PUSH1 0x2 SLOAD DUP2 LT ISZERO PUSH2 0x5E1 JUMPI PUSH1 0x2 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x577 JUMPI PUSH2 0x577 PUSH2 0xA77 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x5B4 JUMPI PUSH2 0x5B4 PUSH2 0xA77 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP2 SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH1 0x1 ADD PUSH2 0x55A JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x677 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x76546F6B656E20616C7265616479206C69737465640000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2C4 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND PUSH1 0x1 SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x2 DUP1 SLOAD SWAP2 DUP3 ADD DUP2 SSTORE SWAP1 SWAP2 MSTORE PUSH32 0x405787FA12A823E0F2B7631CC41B3BA8828B3321CA811111FA75CD3AA3BB5ACE ADD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST DUP3 DUP2 DUP2 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x730 JUMPI POP DUP1 DUP3 EQ JUMPDEST PUSH2 0x796 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C696420696E70757400000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2C4 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x406 JUMPI PUSH1 0x3 PUSH1 0x0 DUP9 DUP9 DUP5 DUP2 DUP2 LT PUSH2 0x7B7 JUMPI PUSH2 0x7B7 PUSH2 0xA77 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x7CC SWAP2 SWAP1 PUSH2 0x8F7 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x85C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x76546F6B656E206E6F74206C6973746564000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2C4 JUMP JUMPDEST DUP5 DUP5 DUP3 DUP2 DUP2 LT PUSH2 0x86E JUMPI PUSH2 0x86E PUSH2 0xA77 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x0 DUP1 DUP10 DUP10 DUP6 DUP2 DUP2 LT PUSH2 0x88A JUMPI PUSH2 0x88A PUSH2 0xA77 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x89F SWAP2 SWAP1 PUSH2 0x8F7 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SSTORE PUSH1 0x1 ADD PUSH2 0x799 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x8F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x909 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x912 DUP3 PUSH2 0x8CE JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x92B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x943 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0x95E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x97B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x993 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x99F DUP9 DUP4 DUP10 ADD PUSH2 0x919 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x9B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9C5 DUP8 DUP3 DUP9 ADD PUSH2 0x919 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x9E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x9FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA08 DUP5 PUSH2 0x8CE JUMP JUMPDEST SWAP6 PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 SWAP1 SWAP5 ADD CALLDATALOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xA6B JUMPI DUP4 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0xA39 JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD5 0xC2 0xB7 0xC0 0xE2 COINBASE SELFBALANCE SWAP7 0xD8 0xCA EXTCODESIZE GAS 0xC8 0xAF LOG0 PUSH23 0x6B8514D90BD2F0252C2BE7E2F535140764736F6C634300 ADDMOD NOT STOP CALLER ","sourceMap":"136:4052:79:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@allVTokens_20491":{"entryPoint":1039,"id":20491,"parameterSlots":0,"returnSlots":0},"@borrowCaps_20486":{"entryPoint":null,"id":20486,"parameterSlots":0,"returnSlots":0},"@getAllMarkets_20714":{"entryPoint":1290,"id":20714,"parameterSlots":0,"returnSlots":1},"@markets_20775":{"entryPoint":null,"id":20775,"parameterSlots":1,"returnSlots":3},"@setCollateralFactor_20744":{"entryPoint":1094,"id":20744,"parameterSlots":3,"returnSlots":0},"@setMarketBorrowCaps_20668":{"entryPoint":594,"id":20668,"parameterSlots":4,"returnSlots":0},"@setMarketSupplyCaps_20603":{"entryPoint":1824,"id":20603,"parameterSlots":4,"returnSlots":0},"@supplyCaps_20481":{"entryPoint":null,"id":20481,"parameterSlots":0,"returnSlots":0},"@supportMarket_20538":{"entryPoint":1511,"id":20538,"parameterSlots":1,"returnSlots":0},"@vTokenListed_20496":{"entryPoint":null,"id":20496,"parameterSlots":0,"returnSlots":0},"abi_decode_address":{"entryPoint":2254,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_array_address_dyn_calldata":{"entryPoint":2329,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address":{"entryPoint":2295,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_uint256t_uint256":{"entryPoint":2538,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr":{"entryPoint":2405,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint256":{"entryPoint":2513,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":2589,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool_t_uint256_t_uint256__to_t_bool_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_contract$_ICorePoolVToken_$20370__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5c13dd817de0f8201c35587e146ee1e71ecba9055e5e2b82d1180351af16b685__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_84ea8cbff7c4e00b3f00b9454b5ce4aa857457c6267822e855dbbcd0fcbc4cee__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_dbab81719f15ade78f76dcdbf7cff531fc5f9822fe7e8466ffdd2feb23510f3b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x32":{"entryPoint":2679,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":2726,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:5131:97","nodeType":"YulBlock","src":"0:5131:97","statements":[{"nativeSrc":"6:3:97","nodeType":"YulBlock","src":"6:3:97","statements":[]},{"body":{"nativeSrc":"63:147:97","nodeType":"YulBlock","src":"63:147:97","statements":[{"nativeSrc":"73:29:97","nodeType":"YulAssignment","src":"73:29:97","value":{"arguments":[{"name":"offset","nativeSrc":"95:6:97","nodeType":"YulIdentifier","src":"95:6:97"}],"functionName":{"name":"calldataload","nativeSrc":"82:12:97","nodeType":"YulIdentifier","src":"82:12:97"},"nativeSrc":"82:20:97","nodeType":"YulFunctionCall","src":"82:20:97"},"variableNames":[{"name":"value","nativeSrc":"73:5:97","nodeType":"YulIdentifier","src":"73:5:97"}]},{"body":{"nativeSrc":"188:16:97","nodeType":"YulBlock","src":"188:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"197:1:97","nodeType":"YulLiteral","src":"197:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"200:1:97","nodeType":"YulLiteral","src":"200:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"190:6:97","nodeType":"YulIdentifier","src":"190:6:97"},"nativeSrc":"190:12:97","nodeType":"YulFunctionCall","src":"190:12:97"},"nativeSrc":"190:12:97","nodeType":"YulExpressionStatement","src":"190:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"124:5:97","nodeType":"YulIdentifier","src":"124:5:97"},{"arguments":[{"name":"value","nativeSrc":"135:5:97","nodeType":"YulIdentifier","src":"135:5:97"},{"kind":"number","nativeSrc":"142:42:97","nodeType":"YulLiteral","src":"142:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"131:3:97","nodeType":"YulIdentifier","src":"131:3:97"},"nativeSrc":"131:54:97","nodeType":"YulFunctionCall","src":"131:54:97"}],"functionName":{"name":"eq","nativeSrc":"121:2:97","nodeType":"YulIdentifier","src":"121:2:97"},"nativeSrc":"121:65:97","nodeType":"YulFunctionCall","src":"121:65:97"}],"functionName":{"name":"iszero","nativeSrc":"114:6:97","nodeType":"YulIdentifier","src":"114:6:97"},"nativeSrc":"114:73:97","nodeType":"YulFunctionCall","src":"114:73:97"},"nativeSrc":"111:93:97","nodeType":"YulIf","src":"111:93:97"}]},"name":"abi_decode_address","nativeSrc":"14:196:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"42:6:97","nodeType":"YulTypedName","src":"42:6:97","type":""}],"returnVariables":[{"name":"value","nativeSrc":"53:5:97","nodeType":"YulTypedName","src":"53:5:97","type":""}],"src":"14:196:97"},{"body":{"nativeSrc":"285:116:97","nodeType":"YulBlock","src":"285:116:97","statements":[{"body":{"nativeSrc":"331:16:97","nodeType":"YulBlock","src":"331:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"340:1:97","nodeType":"YulLiteral","src":"340:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"343:1:97","nodeType":"YulLiteral","src":"343:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"333:6:97","nodeType":"YulIdentifier","src":"333:6:97"},"nativeSrc":"333:12:97","nodeType":"YulFunctionCall","src":"333:12:97"},"nativeSrc":"333:12:97","nodeType":"YulExpressionStatement","src":"333:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"306:7:97","nodeType":"YulIdentifier","src":"306:7:97"},{"name":"headStart","nativeSrc":"315:9:97","nodeType":"YulIdentifier","src":"315:9:97"}],"functionName":{"name":"sub","nativeSrc":"302:3:97","nodeType":"YulIdentifier","src":"302:3:97"},"nativeSrc":"302:23:97","nodeType":"YulFunctionCall","src":"302:23:97"},{"kind":"number","nativeSrc":"327:2:97","nodeType":"YulLiteral","src":"327:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"298:3:97","nodeType":"YulIdentifier","src":"298:3:97"},"nativeSrc":"298:32:97","nodeType":"YulFunctionCall","src":"298:32:97"},"nativeSrc":"295:52:97","nodeType":"YulIf","src":"295:52:97"},{"nativeSrc":"356:39:97","nodeType":"YulAssignment","src":"356:39:97","value":{"arguments":[{"name":"headStart","nativeSrc":"385:9:97","nodeType":"YulIdentifier","src":"385:9:97"}],"functionName":{"name":"abi_decode_address","nativeSrc":"366:18:97","nodeType":"YulIdentifier","src":"366:18:97"},"nativeSrc":"366:29:97","nodeType":"YulFunctionCall","src":"366:29:97"},"variableNames":[{"name":"value0","nativeSrc":"356:6:97","nodeType":"YulIdentifier","src":"356:6:97"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"215:186:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"251:9:97","nodeType":"YulTypedName","src":"251:9:97","type":""},{"name":"dataEnd","nativeSrc":"262:7:97","nodeType":"YulTypedName","src":"262:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"274:6:97","nodeType":"YulTypedName","src":"274:6:97","type":""}],"src":"215:186:97"},{"body":{"nativeSrc":"507:76:97","nodeType":"YulBlock","src":"507:76:97","statements":[{"nativeSrc":"517:26:97","nodeType":"YulAssignment","src":"517:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"529:9:97","nodeType":"YulIdentifier","src":"529:9:97"},{"kind":"number","nativeSrc":"540:2:97","nodeType":"YulLiteral","src":"540:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"525:3:97","nodeType":"YulIdentifier","src":"525:3:97"},"nativeSrc":"525:18:97","nodeType":"YulFunctionCall","src":"525:18:97"},"variableNames":[{"name":"tail","nativeSrc":"517:4:97","nodeType":"YulIdentifier","src":"517:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"559:9:97","nodeType":"YulIdentifier","src":"559:9:97"},{"name":"value0","nativeSrc":"570:6:97","nodeType":"YulIdentifier","src":"570:6:97"}],"functionName":{"name":"mstore","nativeSrc":"552:6:97","nodeType":"YulIdentifier","src":"552:6:97"},"nativeSrc":"552:25:97","nodeType":"YulFunctionCall","src":"552:25:97"},"nativeSrc":"552:25:97","nodeType":"YulExpressionStatement","src":"552:25:97"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"406:177:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"476:9:97","nodeType":"YulTypedName","src":"476:9:97","type":""},{"name":"value0","nativeSrc":"487:6:97","nodeType":"YulTypedName","src":"487:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"498:4:97","nodeType":"YulTypedName","src":"498:4:97","type":""}],"src":"406:177:97"},{"body":{"nativeSrc":"672:283:97","nodeType":"YulBlock","src":"672:283:97","statements":[{"body":{"nativeSrc":"721:16:97","nodeType":"YulBlock","src":"721:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"730:1:97","nodeType":"YulLiteral","src":"730:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"733:1:97","nodeType":"YulLiteral","src":"733:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"723:6:97","nodeType":"YulIdentifier","src":"723:6:97"},"nativeSrc":"723:12:97","nodeType":"YulFunctionCall","src":"723:12:97"},"nativeSrc":"723:12:97","nodeType":"YulExpressionStatement","src":"723:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"700:6:97","nodeType":"YulIdentifier","src":"700:6:97"},{"kind":"number","nativeSrc":"708:4:97","nodeType":"YulLiteral","src":"708:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"696:3:97","nodeType":"YulIdentifier","src":"696:3:97"},"nativeSrc":"696:17:97","nodeType":"YulFunctionCall","src":"696:17:97"},{"name":"end","nativeSrc":"715:3:97","nodeType":"YulIdentifier","src":"715:3:97"}],"functionName":{"name":"slt","nativeSrc":"692:3:97","nodeType":"YulIdentifier","src":"692:3:97"},"nativeSrc":"692:27:97","nodeType":"YulFunctionCall","src":"692:27:97"}],"functionName":{"name":"iszero","nativeSrc":"685:6:97","nodeType":"YulIdentifier","src":"685:6:97"},"nativeSrc":"685:35:97","nodeType":"YulFunctionCall","src":"685:35:97"},"nativeSrc":"682:55:97","nodeType":"YulIf","src":"682:55:97"},{"nativeSrc":"746:30:97","nodeType":"YulAssignment","src":"746:30:97","value":{"arguments":[{"name":"offset","nativeSrc":"769:6:97","nodeType":"YulIdentifier","src":"769:6:97"}],"functionName":{"name":"calldataload","nativeSrc":"756:12:97","nodeType":"YulIdentifier","src":"756:12:97"},"nativeSrc":"756:20:97","nodeType":"YulFunctionCall","src":"756:20:97"},"variableNames":[{"name":"length","nativeSrc":"746:6:97","nodeType":"YulIdentifier","src":"746:6:97"}]},{"body":{"nativeSrc":"819:16:97","nodeType":"YulBlock","src":"819:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"828:1:97","nodeType":"YulLiteral","src":"828:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"831:1:97","nodeType":"YulLiteral","src":"831:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"821:6:97","nodeType":"YulIdentifier","src":"821:6:97"},"nativeSrc":"821:12:97","nodeType":"YulFunctionCall","src":"821:12:97"},"nativeSrc":"821:12:97","nodeType":"YulExpressionStatement","src":"821:12:97"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"791:6:97","nodeType":"YulIdentifier","src":"791:6:97"},{"kind":"number","nativeSrc":"799:18:97","nodeType":"YulLiteral","src":"799:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"788:2:97","nodeType":"YulIdentifier","src":"788:2:97"},"nativeSrc":"788:30:97","nodeType":"YulFunctionCall","src":"788:30:97"},"nativeSrc":"785:50:97","nodeType":"YulIf","src":"785:50:97"},{"nativeSrc":"844:29:97","nodeType":"YulAssignment","src":"844:29:97","value":{"arguments":[{"name":"offset","nativeSrc":"860:6:97","nodeType":"YulIdentifier","src":"860:6:97"},{"kind":"number","nativeSrc":"868:4:97","nodeType":"YulLiteral","src":"868:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"856:3:97","nodeType":"YulIdentifier","src":"856:3:97"},"nativeSrc":"856:17:97","nodeType":"YulFunctionCall","src":"856:17:97"},"variableNames":[{"name":"arrayPos","nativeSrc":"844:8:97","nodeType":"YulIdentifier","src":"844:8:97"}]},{"body":{"nativeSrc":"933:16:97","nodeType":"YulBlock","src":"933:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"942:1:97","nodeType":"YulLiteral","src":"942:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"945:1:97","nodeType":"YulLiteral","src":"945:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"935:6:97","nodeType":"YulIdentifier","src":"935:6:97"},"nativeSrc":"935:12:97","nodeType":"YulFunctionCall","src":"935:12:97"},"nativeSrc":"935:12:97","nodeType":"YulExpressionStatement","src":"935:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"896:6:97","nodeType":"YulIdentifier","src":"896:6:97"},{"arguments":[{"kind":"number","nativeSrc":"908:1:97","nodeType":"YulLiteral","src":"908:1:97","type":"","value":"5"},{"name":"length","nativeSrc":"911:6:97","nodeType":"YulIdentifier","src":"911:6:97"}],"functionName":{"name":"shl","nativeSrc":"904:3:97","nodeType":"YulIdentifier","src":"904:3:97"},"nativeSrc":"904:14:97","nodeType":"YulFunctionCall","src":"904:14:97"}],"functionName":{"name":"add","nativeSrc":"892:3:97","nodeType":"YulIdentifier","src":"892:3:97"},"nativeSrc":"892:27:97","nodeType":"YulFunctionCall","src":"892:27:97"},{"kind":"number","nativeSrc":"921:4:97","nodeType":"YulLiteral","src":"921:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"888:3:97","nodeType":"YulIdentifier","src":"888:3:97"},"nativeSrc":"888:38:97","nodeType":"YulFunctionCall","src":"888:38:97"},{"name":"end","nativeSrc":"928:3:97","nodeType":"YulIdentifier","src":"928:3:97"}],"functionName":{"name":"gt","nativeSrc":"885:2:97","nodeType":"YulIdentifier","src":"885:2:97"},"nativeSrc":"885:47:97","nodeType":"YulFunctionCall","src":"885:47:97"},"nativeSrc":"882:67:97","nodeType":"YulIf","src":"882:67:97"}]},"name":"abi_decode_array_address_dyn_calldata","nativeSrc":"588:367:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"635:6:97","nodeType":"YulTypedName","src":"635:6:97","type":""},{"name":"end","nativeSrc":"643:3:97","nodeType":"YulTypedName","src":"643:3:97","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"651:8:97","nodeType":"YulTypedName","src":"651:8:97","type":""},{"name":"length","nativeSrc":"661:6:97","nodeType":"YulTypedName","src":"661:6:97","type":""}],"src":"588:367:97"},{"body":{"nativeSrc":"1117:616:97","nodeType":"YulBlock","src":"1117:616:97","statements":[{"body":{"nativeSrc":"1163:16:97","nodeType":"YulBlock","src":"1163:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1172:1:97","nodeType":"YulLiteral","src":"1172:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1175:1:97","nodeType":"YulLiteral","src":"1175:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1165:6:97","nodeType":"YulIdentifier","src":"1165:6:97"},"nativeSrc":"1165:12:97","nodeType":"YulFunctionCall","src":"1165:12:97"},"nativeSrc":"1165:12:97","nodeType":"YulExpressionStatement","src":"1165:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1138:7:97","nodeType":"YulIdentifier","src":"1138:7:97"},{"name":"headStart","nativeSrc":"1147:9:97","nodeType":"YulIdentifier","src":"1147:9:97"}],"functionName":{"name":"sub","nativeSrc":"1134:3:97","nodeType":"YulIdentifier","src":"1134:3:97"},"nativeSrc":"1134:23:97","nodeType":"YulFunctionCall","src":"1134:23:97"},{"kind":"number","nativeSrc":"1159:2:97","nodeType":"YulLiteral","src":"1159:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"1130:3:97","nodeType":"YulIdentifier","src":"1130:3:97"},"nativeSrc":"1130:32:97","nodeType":"YulFunctionCall","src":"1130:32:97"},"nativeSrc":"1127:52:97","nodeType":"YulIf","src":"1127:52:97"},{"nativeSrc":"1188:37:97","nodeType":"YulVariableDeclaration","src":"1188:37:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1215:9:97","nodeType":"YulIdentifier","src":"1215:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"1202:12:97","nodeType":"YulIdentifier","src":"1202:12:97"},"nativeSrc":"1202:23:97","nodeType":"YulFunctionCall","src":"1202:23:97"},"variables":[{"name":"offset","nativeSrc":"1192:6:97","nodeType":"YulTypedName","src":"1192:6:97","type":""}]},{"nativeSrc":"1234:28:97","nodeType":"YulVariableDeclaration","src":"1234:28:97","value":{"kind":"number","nativeSrc":"1244:18:97","nodeType":"YulLiteral","src":"1244:18:97","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"1238:2:97","nodeType":"YulTypedName","src":"1238:2:97","type":""}]},{"body":{"nativeSrc":"1289:16:97","nodeType":"YulBlock","src":"1289:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1298:1:97","nodeType":"YulLiteral","src":"1298:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1301:1:97","nodeType":"YulLiteral","src":"1301:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1291:6:97","nodeType":"YulIdentifier","src":"1291:6:97"},"nativeSrc":"1291:12:97","nodeType":"YulFunctionCall","src":"1291:12:97"},"nativeSrc":"1291:12:97","nodeType":"YulExpressionStatement","src":"1291:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"1277:6:97","nodeType":"YulIdentifier","src":"1277:6:97"},{"name":"_1","nativeSrc":"1285:2:97","nodeType":"YulIdentifier","src":"1285:2:97"}],"functionName":{"name":"gt","nativeSrc":"1274:2:97","nodeType":"YulIdentifier","src":"1274:2:97"},"nativeSrc":"1274:14:97","nodeType":"YulFunctionCall","src":"1274:14:97"},"nativeSrc":"1271:34:97","nodeType":"YulIf","src":"1271:34:97"},{"nativeSrc":"1314:96:97","nodeType":"YulVariableDeclaration","src":"1314:96:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1382:9:97","nodeType":"YulIdentifier","src":"1382:9:97"},{"name":"offset","nativeSrc":"1393:6:97","nodeType":"YulIdentifier","src":"1393:6:97"}],"functionName":{"name":"add","nativeSrc":"1378:3:97","nodeType":"YulIdentifier","src":"1378:3:97"},"nativeSrc":"1378:22:97","nodeType":"YulFunctionCall","src":"1378:22:97"},{"name":"dataEnd","nativeSrc":"1402:7:97","nodeType":"YulIdentifier","src":"1402:7:97"}],"functionName":{"name":"abi_decode_array_address_dyn_calldata","nativeSrc":"1340:37:97","nodeType":"YulIdentifier","src":"1340:37:97"},"nativeSrc":"1340:70:97","nodeType":"YulFunctionCall","src":"1340:70:97"},"variables":[{"name":"value0_1","nativeSrc":"1318:8:97","nodeType":"YulTypedName","src":"1318:8:97","type":""},{"name":"value1_1","nativeSrc":"1328:8:97","nodeType":"YulTypedName","src":"1328:8:97","type":""}]},{"nativeSrc":"1419:18:97","nodeType":"YulAssignment","src":"1419:18:97","value":{"name":"value0_1","nativeSrc":"1429:8:97","nodeType":"YulIdentifier","src":"1429:8:97"},"variableNames":[{"name":"value0","nativeSrc":"1419:6:97","nodeType":"YulIdentifier","src":"1419:6:97"}]},{"nativeSrc":"1446:18:97","nodeType":"YulAssignment","src":"1446:18:97","value":{"name":"value1_1","nativeSrc":"1456:8:97","nodeType":"YulIdentifier","src":"1456:8:97"},"variableNames":[{"name":"value1","nativeSrc":"1446:6:97","nodeType":"YulIdentifier","src":"1446:6:97"}]},{"nativeSrc":"1473:48:97","nodeType":"YulVariableDeclaration","src":"1473:48:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1506:9:97","nodeType":"YulIdentifier","src":"1506:9:97"},{"kind":"number","nativeSrc":"1517:2:97","nodeType":"YulLiteral","src":"1517:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1502:3:97","nodeType":"YulIdentifier","src":"1502:3:97"},"nativeSrc":"1502:18:97","nodeType":"YulFunctionCall","src":"1502:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"1489:12:97","nodeType":"YulIdentifier","src":"1489:12:97"},"nativeSrc":"1489:32:97","nodeType":"YulFunctionCall","src":"1489:32:97"},"variables":[{"name":"offset_1","nativeSrc":"1477:8:97","nodeType":"YulTypedName","src":"1477:8:97","type":""}]},{"body":{"nativeSrc":"1550:16:97","nodeType":"YulBlock","src":"1550:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1559:1:97","nodeType":"YulLiteral","src":"1559:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1562:1:97","nodeType":"YulLiteral","src":"1562:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1552:6:97","nodeType":"YulIdentifier","src":"1552:6:97"},"nativeSrc":"1552:12:97","nodeType":"YulFunctionCall","src":"1552:12:97"},"nativeSrc":"1552:12:97","nodeType":"YulExpressionStatement","src":"1552:12:97"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"1536:8:97","nodeType":"YulIdentifier","src":"1536:8:97"},{"name":"_1","nativeSrc":"1546:2:97","nodeType":"YulIdentifier","src":"1546:2:97"}],"functionName":{"name":"gt","nativeSrc":"1533:2:97","nodeType":"YulIdentifier","src":"1533:2:97"},"nativeSrc":"1533:16:97","nodeType":"YulFunctionCall","src":"1533:16:97"},"nativeSrc":"1530:36:97","nodeType":"YulIf","src":"1530:36:97"},{"nativeSrc":"1575:98:97","nodeType":"YulVariableDeclaration","src":"1575:98:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1643:9:97","nodeType":"YulIdentifier","src":"1643:9:97"},{"name":"offset_1","nativeSrc":"1654:8:97","nodeType":"YulIdentifier","src":"1654:8:97"}],"functionName":{"name":"add","nativeSrc":"1639:3:97","nodeType":"YulIdentifier","src":"1639:3:97"},"nativeSrc":"1639:24:97","nodeType":"YulFunctionCall","src":"1639:24:97"},{"name":"dataEnd","nativeSrc":"1665:7:97","nodeType":"YulIdentifier","src":"1665:7:97"}],"functionName":{"name":"abi_decode_array_address_dyn_calldata","nativeSrc":"1601:37:97","nodeType":"YulIdentifier","src":"1601:37:97"},"nativeSrc":"1601:72:97","nodeType":"YulFunctionCall","src":"1601:72:97"},"variables":[{"name":"value2_1","nativeSrc":"1579:8:97","nodeType":"YulTypedName","src":"1579:8:97","type":""},{"name":"value3_1","nativeSrc":"1589:8:97","nodeType":"YulTypedName","src":"1589:8:97","type":""}]},{"nativeSrc":"1682:18:97","nodeType":"YulAssignment","src":"1682:18:97","value":{"name":"value2_1","nativeSrc":"1692:8:97","nodeType":"YulIdentifier","src":"1692:8:97"},"variableNames":[{"name":"value2","nativeSrc":"1682:6:97","nodeType":"YulIdentifier","src":"1682:6:97"}]},{"nativeSrc":"1709:18:97","nodeType":"YulAssignment","src":"1709:18:97","value":{"name":"value3_1","nativeSrc":"1719:8:97","nodeType":"YulIdentifier","src":"1719:8:97"},"variableNames":[{"name":"value3","nativeSrc":"1709:6:97","nodeType":"YulIdentifier","src":"1709:6:97"}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr","nativeSrc":"960:773:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1059:9:97","nodeType":"YulTypedName","src":"1059:9:97","type":""},{"name":"dataEnd","nativeSrc":"1070:7:97","nodeType":"YulTypedName","src":"1070:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1082:6:97","nodeType":"YulTypedName","src":"1082:6:97","type":""},{"name":"value1","nativeSrc":"1090:6:97","nodeType":"YulTypedName","src":"1090:6:97","type":""},{"name":"value2","nativeSrc":"1098:6:97","nodeType":"YulTypedName","src":"1098:6:97","type":""},{"name":"value3","nativeSrc":"1106:6:97","nodeType":"YulTypedName","src":"1106:6:97","type":""}],"src":"960:773:97"},{"body":{"nativeSrc":"1808:110:97","nodeType":"YulBlock","src":"1808:110:97","statements":[{"body":{"nativeSrc":"1854:16:97","nodeType":"YulBlock","src":"1854:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1863:1:97","nodeType":"YulLiteral","src":"1863:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1866:1:97","nodeType":"YulLiteral","src":"1866:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1856:6:97","nodeType":"YulIdentifier","src":"1856:6:97"},"nativeSrc":"1856:12:97","nodeType":"YulFunctionCall","src":"1856:12:97"},"nativeSrc":"1856:12:97","nodeType":"YulExpressionStatement","src":"1856:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1829:7:97","nodeType":"YulIdentifier","src":"1829:7:97"},{"name":"headStart","nativeSrc":"1838:9:97","nodeType":"YulIdentifier","src":"1838:9:97"}],"functionName":{"name":"sub","nativeSrc":"1825:3:97","nodeType":"YulIdentifier","src":"1825:3:97"},"nativeSrc":"1825:23:97","nodeType":"YulFunctionCall","src":"1825:23:97"},{"kind":"number","nativeSrc":"1850:2:97","nodeType":"YulLiteral","src":"1850:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1821:3:97","nodeType":"YulIdentifier","src":"1821:3:97"},"nativeSrc":"1821:32:97","nodeType":"YulFunctionCall","src":"1821:32:97"},"nativeSrc":"1818:52:97","nodeType":"YulIf","src":"1818:52:97"},{"nativeSrc":"1879:33:97","nodeType":"YulAssignment","src":"1879:33:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1902:9:97","nodeType":"YulIdentifier","src":"1902:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"1889:12:97","nodeType":"YulIdentifier","src":"1889:12:97"},"nativeSrc":"1889:23:97","nodeType":"YulFunctionCall","src":"1889:23:97"},"variableNames":[{"name":"value0","nativeSrc":"1879:6:97","nodeType":"YulIdentifier","src":"1879:6:97"}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"1738:180:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1774:9:97","nodeType":"YulTypedName","src":"1774:9:97","type":""},{"name":"dataEnd","nativeSrc":"1785:7:97","nodeType":"YulTypedName","src":"1785:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1797:6:97","nodeType":"YulTypedName","src":"1797:6:97","type":""}],"src":"1738:180:97"},{"body":{"nativeSrc":"2049:125:97","nodeType":"YulBlock","src":"2049:125:97","statements":[{"nativeSrc":"2059:26:97","nodeType":"YulAssignment","src":"2059:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2071:9:97","nodeType":"YulIdentifier","src":"2071:9:97"},{"kind":"number","nativeSrc":"2082:2:97","nodeType":"YulLiteral","src":"2082:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2067:3:97","nodeType":"YulIdentifier","src":"2067:3:97"},"nativeSrc":"2067:18:97","nodeType":"YulFunctionCall","src":"2067:18:97"},"variableNames":[{"name":"tail","nativeSrc":"2059:4:97","nodeType":"YulIdentifier","src":"2059:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2101:9:97","nodeType":"YulIdentifier","src":"2101:9:97"},{"arguments":[{"name":"value0","nativeSrc":"2116:6:97","nodeType":"YulIdentifier","src":"2116:6:97"},{"kind":"number","nativeSrc":"2124:42:97","nodeType":"YulLiteral","src":"2124:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"2112:3:97","nodeType":"YulIdentifier","src":"2112:3:97"},"nativeSrc":"2112:55:97","nodeType":"YulFunctionCall","src":"2112:55:97"}],"functionName":{"name":"mstore","nativeSrc":"2094:6:97","nodeType":"YulIdentifier","src":"2094:6:97"},"nativeSrc":"2094:74:97","nodeType":"YulFunctionCall","src":"2094:74:97"},"nativeSrc":"2094:74:97","nodeType":"YulExpressionStatement","src":"2094:74:97"}]},"name":"abi_encode_tuple_t_contract$_ICorePoolVToken_$20370__to_t_address__fromStack_reversed","nativeSrc":"1923:251:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2018:9:97","nodeType":"YulTypedName","src":"2018:9:97","type":""},{"name":"value0","nativeSrc":"2029:6:97","nodeType":"YulTypedName","src":"2029:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2040:4:97","nodeType":"YulTypedName","src":"2040:4:97","type":""}],"src":"1923:251:97"},{"body":{"nativeSrc":"2283:218:97","nodeType":"YulBlock","src":"2283:218:97","statements":[{"body":{"nativeSrc":"2329:16:97","nodeType":"YulBlock","src":"2329:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2338:1:97","nodeType":"YulLiteral","src":"2338:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"2341:1:97","nodeType":"YulLiteral","src":"2341:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2331:6:97","nodeType":"YulIdentifier","src":"2331:6:97"},"nativeSrc":"2331:12:97","nodeType":"YulFunctionCall","src":"2331:12:97"},"nativeSrc":"2331:12:97","nodeType":"YulExpressionStatement","src":"2331:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2304:7:97","nodeType":"YulIdentifier","src":"2304:7:97"},{"name":"headStart","nativeSrc":"2313:9:97","nodeType":"YulIdentifier","src":"2313:9:97"}],"functionName":{"name":"sub","nativeSrc":"2300:3:97","nodeType":"YulIdentifier","src":"2300:3:97"},"nativeSrc":"2300:23:97","nodeType":"YulFunctionCall","src":"2300:23:97"},{"kind":"number","nativeSrc":"2325:2:97","nodeType":"YulLiteral","src":"2325:2:97","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"2296:3:97","nodeType":"YulIdentifier","src":"2296:3:97"},"nativeSrc":"2296:32:97","nodeType":"YulFunctionCall","src":"2296:32:97"},"nativeSrc":"2293:52:97","nodeType":"YulIf","src":"2293:52:97"},{"nativeSrc":"2354:39:97","nodeType":"YulAssignment","src":"2354:39:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2383:9:97","nodeType":"YulIdentifier","src":"2383:9:97"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2364:18:97","nodeType":"YulIdentifier","src":"2364:18:97"},"nativeSrc":"2364:29:97","nodeType":"YulFunctionCall","src":"2364:29:97"},"variableNames":[{"name":"value0","nativeSrc":"2354:6:97","nodeType":"YulIdentifier","src":"2354:6:97"}]},{"nativeSrc":"2402:42:97","nodeType":"YulAssignment","src":"2402:42:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2429:9:97","nodeType":"YulIdentifier","src":"2429:9:97"},{"kind":"number","nativeSrc":"2440:2:97","nodeType":"YulLiteral","src":"2440:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2425:3:97","nodeType":"YulIdentifier","src":"2425:3:97"},"nativeSrc":"2425:18:97","nodeType":"YulFunctionCall","src":"2425:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"2412:12:97","nodeType":"YulIdentifier","src":"2412:12:97"},"nativeSrc":"2412:32:97","nodeType":"YulFunctionCall","src":"2412:32:97"},"variableNames":[{"name":"value1","nativeSrc":"2402:6:97","nodeType":"YulIdentifier","src":"2402:6:97"}]},{"nativeSrc":"2453:42:97","nodeType":"YulAssignment","src":"2453:42:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2480:9:97","nodeType":"YulIdentifier","src":"2480:9:97"},{"kind":"number","nativeSrc":"2491:2:97","nodeType":"YulLiteral","src":"2491:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2476:3:97","nodeType":"YulIdentifier","src":"2476:3:97"},"nativeSrc":"2476:18:97","nodeType":"YulFunctionCall","src":"2476:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"2463:12:97","nodeType":"YulIdentifier","src":"2463:12:97"},"nativeSrc":"2463:32:97","nodeType":"YulFunctionCall","src":"2463:32:97"},"variableNames":[{"name":"value2","nativeSrc":"2453:6:97","nodeType":"YulIdentifier","src":"2453:6:97"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_uint256","nativeSrc":"2179:322:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2233:9:97","nodeType":"YulTypedName","src":"2233:9:97","type":""},{"name":"dataEnd","nativeSrc":"2244:7:97","nodeType":"YulTypedName","src":"2244:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2256:6:97","nodeType":"YulTypedName","src":"2256:6:97","type":""},{"name":"value1","nativeSrc":"2264:6:97","nodeType":"YulTypedName","src":"2264:6:97","type":""},{"name":"value2","nativeSrc":"2272:6:97","nodeType":"YulTypedName","src":"2272:6:97","type":""}],"src":"2179:322:97"},{"body":{"nativeSrc":"2657:178:97","nodeType":"YulBlock","src":"2657:178:97","statements":[{"nativeSrc":"2667:26:97","nodeType":"YulAssignment","src":"2667:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2679:9:97","nodeType":"YulIdentifier","src":"2679:9:97"},{"kind":"number","nativeSrc":"2690:2:97","nodeType":"YulLiteral","src":"2690:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2675:3:97","nodeType":"YulIdentifier","src":"2675:3:97"},"nativeSrc":"2675:18:97","nodeType":"YulFunctionCall","src":"2675:18:97"},"variableNames":[{"name":"tail","nativeSrc":"2667:4:97","nodeType":"YulIdentifier","src":"2667:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2709:9:97","nodeType":"YulIdentifier","src":"2709:9:97"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"2734:6:97","nodeType":"YulIdentifier","src":"2734:6:97"}],"functionName":{"name":"iszero","nativeSrc":"2727:6:97","nodeType":"YulIdentifier","src":"2727:6:97"},"nativeSrc":"2727:14:97","nodeType":"YulFunctionCall","src":"2727:14:97"}],"functionName":{"name":"iszero","nativeSrc":"2720:6:97","nodeType":"YulIdentifier","src":"2720:6:97"},"nativeSrc":"2720:22:97","nodeType":"YulFunctionCall","src":"2720:22:97"}],"functionName":{"name":"mstore","nativeSrc":"2702:6:97","nodeType":"YulIdentifier","src":"2702:6:97"},"nativeSrc":"2702:41:97","nodeType":"YulFunctionCall","src":"2702:41:97"},"nativeSrc":"2702:41:97","nodeType":"YulExpressionStatement","src":"2702:41:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2763:9:97","nodeType":"YulIdentifier","src":"2763:9:97"},{"kind":"number","nativeSrc":"2774:2:97","nodeType":"YulLiteral","src":"2774:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2759:3:97","nodeType":"YulIdentifier","src":"2759:3:97"},"nativeSrc":"2759:18:97","nodeType":"YulFunctionCall","src":"2759:18:97"},{"name":"value1","nativeSrc":"2779:6:97","nodeType":"YulIdentifier","src":"2779:6:97"}],"functionName":{"name":"mstore","nativeSrc":"2752:6:97","nodeType":"YulIdentifier","src":"2752:6:97"},"nativeSrc":"2752:34:97","nodeType":"YulFunctionCall","src":"2752:34:97"},"nativeSrc":"2752:34:97","nodeType":"YulExpressionStatement","src":"2752:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2806:9:97","nodeType":"YulIdentifier","src":"2806:9:97"},{"kind":"number","nativeSrc":"2817:2:97","nodeType":"YulLiteral","src":"2817:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2802:3:97","nodeType":"YulIdentifier","src":"2802:3:97"},"nativeSrc":"2802:18:97","nodeType":"YulFunctionCall","src":"2802:18:97"},{"name":"value2","nativeSrc":"2822:6:97","nodeType":"YulIdentifier","src":"2822:6:97"}],"functionName":{"name":"mstore","nativeSrc":"2795:6:97","nodeType":"YulIdentifier","src":"2795:6:97"},"nativeSrc":"2795:34:97","nodeType":"YulFunctionCall","src":"2795:34:97"},"nativeSrc":"2795:34:97","nodeType":"YulExpressionStatement","src":"2795:34:97"}]},"name":"abi_encode_tuple_t_bool_t_uint256_t_uint256__to_t_bool_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"2506:329:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2610:9:97","nodeType":"YulTypedName","src":"2610:9:97","type":""},{"name":"value2","nativeSrc":"2621:6:97","nodeType":"YulTypedName","src":"2621:6:97","type":""},{"name":"value1","nativeSrc":"2629:6:97","nodeType":"YulTypedName","src":"2629:6:97","type":""},{"name":"value0","nativeSrc":"2637:6:97","nodeType":"YulTypedName","src":"2637:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2648:4:97","nodeType":"YulTypedName","src":"2648:4:97","type":""}],"src":"2506:329:97"},{"body":{"nativeSrc":"2991:530:97","nodeType":"YulBlock","src":"2991:530:97","statements":[{"nativeSrc":"3001:12:97","nodeType":"YulVariableDeclaration","src":"3001:12:97","value":{"kind":"number","nativeSrc":"3011:2:97","nodeType":"YulLiteral","src":"3011:2:97","type":"","value":"32"},"variables":[{"name":"_1","nativeSrc":"3005:2:97","nodeType":"YulTypedName","src":"3005:2:97","type":""}]},{"nativeSrc":"3022:32:97","nodeType":"YulVariableDeclaration","src":"3022:32:97","value":{"arguments":[{"name":"headStart","nativeSrc":"3040:9:97","nodeType":"YulIdentifier","src":"3040:9:97"},{"kind":"number","nativeSrc":"3051:2:97","nodeType":"YulLiteral","src":"3051:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3036:3:97","nodeType":"YulIdentifier","src":"3036:3:97"},"nativeSrc":"3036:18:97","nodeType":"YulFunctionCall","src":"3036:18:97"},"variables":[{"name":"tail_1","nativeSrc":"3026:6:97","nodeType":"YulTypedName","src":"3026:6:97","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3070:9:97","nodeType":"YulIdentifier","src":"3070:9:97"},{"kind":"number","nativeSrc":"3081:2:97","nodeType":"YulLiteral","src":"3081:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"3063:6:97","nodeType":"YulIdentifier","src":"3063:6:97"},"nativeSrc":"3063:21:97","nodeType":"YulFunctionCall","src":"3063:21:97"},"nativeSrc":"3063:21:97","nodeType":"YulExpressionStatement","src":"3063:21:97"},{"nativeSrc":"3093:17:97","nodeType":"YulVariableDeclaration","src":"3093:17:97","value":{"name":"tail_1","nativeSrc":"3104:6:97","nodeType":"YulIdentifier","src":"3104:6:97"},"variables":[{"name":"pos","nativeSrc":"3097:3:97","nodeType":"YulTypedName","src":"3097:3:97","type":""}]},{"nativeSrc":"3119:27:97","nodeType":"YulVariableDeclaration","src":"3119:27:97","value":{"arguments":[{"name":"value0","nativeSrc":"3139:6:97","nodeType":"YulIdentifier","src":"3139:6:97"}],"functionName":{"name":"mload","nativeSrc":"3133:5:97","nodeType":"YulIdentifier","src":"3133:5:97"},"nativeSrc":"3133:13:97","nodeType":"YulFunctionCall","src":"3133:13:97"},"variables":[{"name":"length","nativeSrc":"3123:6:97","nodeType":"YulTypedName","src":"3123:6:97","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nativeSrc":"3162:6:97","nodeType":"YulIdentifier","src":"3162:6:97"},{"name":"length","nativeSrc":"3170:6:97","nodeType":"YulIdentifier","src":"3170:6:97"}],"functionName":{"name":"mstore","nativeSrc":"3155:6:97","nodeType":"YulIdentifier","src":"3155:6:97"},"nativeSrc":"3155:22:97","nodeType":"YulFunctionCall","src":"3155:22:97"},"nativeSrc":"3155:22:97","nodeType":"YulExpressionStatement","src":"3155:22:97"},{"nativeSrc":"3186:25:97","nodeType":"YulAssignment","src":"3186:25:97","value":{"arguments":[{"name":"headStart","nativeSrc":"3197:9:97","nodeType":"YulIdentifier","src":"3197:9:97"},{"kind":"number","nativeSrc":"3208:2:97","nodeType":"YulLiteral","src":"3208:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3193:3:97","nodeType":"YulIdentifier","src":"3193:3:97"},"nativeSrc":"3193:18:97","nodeType":"YulFunctionCall","src":"3193:18:97"},"variableNames":[{"name":"pos","nativeSrc":"3186:3:97","nodeType":"YulIdentifier","src":"3186:3:97"}]},{"nativeSrc":"3220:29:97","nodeType":"YulVariableDeclaration","src":"3220:29:97","value":{"arguments":[{"name":"value0","nativeSrc":"3238:6:97","nodeType":"YulIdentifier","src":"3238:6:97"},{"kind":"number","nativeSrc":"3246:2:97","nodeType":"YulLiteral","src":"3246:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3234:3:97","nodeType":"YulIdentifier","src":"3234:3:97"},"nativeSrc":"3234:15:97","nodeType":"YulFunctionCall","src":"3234:15:97"},"variables":[{"name":"srcPtr","nativeSrc":"3224:6:97","nodeType":"YulTypedName","src":"3224:6:97","type":""}]},{"nativeSrc":"3258:10:97","nodeType":"YulVariableDeclaration","src":"3258:10:97","value":{"kind":"number","nativeSrc":"3267:1:97","nodeType":"YulLiteral","src":"3267:1:97","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"3262:1:97","nodeType":"YulTypedName","src":"3262:1:97","type":""}]},{"body":{"nativeSrc":"3326:169:97","nodeType":"YulBlock","src":"3326:169:97","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3347:3:97","nodeType":"YulIdentifier","src":"3347:3:97"},{"arguments":[{"arguments":[{"name":"srcPtr","nativeSrc":"3362:6:97","nodeType":"YulIdentifier","src":"3362:6:97"}],"functionName":{"name":"mload","nativeSrc":"3356:5:97","nodeType":"YulIdentifier","src":"3356:5:97"},"nativeSrc":"3356:13:97","nodeType":"YulFunctionCall","src":"3356:13:97"},{"kind":"number","nativeSrc":"3371:42:97","nodeType":"YulLiteral","src":"3371:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"3352:3:97","nodeType":"YulIdentifier","src":"3352:3:97"},"nativeSrc":"3352:62:97","nodeType":"YulFunctionCall","src":"3352:62:97"}],"functionName":{"name":"mstore","nativeSrc":"3340:6:97","nodeType":"YulIdentifier","src":"3340:6:97"},"nativeSrc":"3340:75:97","nodeType":"YulFunctionCall","src":"3340:75:97"},"nativeSrc":"3340:75:97","nodeType":"YulExpressionStatement","src":"3340:75:97"},{"nativeSrc":"3428:19:97","nodeType":"YulAssignment","src":"3428:19:97","value":{"arguments":[{"name":"pos","nativeSrc":"3439:3:97","nodeType":"YulIdentifier","src":"3439:3:97"},{"name":"_1","nativeSrc":"3444:2:97","nodeType":"YulIdentifier","src":"3444:2:97"}],"functionName":{"name":"add","nativeSrc":"3435:3:97","nodeType":"YulIdentifier","src":"3435:3:97"},"nativeSrc":"3435:12:97","nodeType":"YulFunctionCall","src":"3435:12:97"},"variableNames":[{"name":"pos","nativeSrc":"3428:3:97","nodeType":"YulIdentifier","src":"3428:3:97"}]},{"nativeSrc":"3460:25:97","nodeType":"YulAssignment","src":"3460:25:97","value":{"arguments":[{"name":"srcPtr","nativeSrc":"3474:6:97","nodeType":"YulIdentifier","src":"3474:6:97"},{"name":"_1","nativeSrc":"3482:2:97","nodeType":"YulIdentifier","src":"3482:2:97"}],"functionName":{"name":"add","nativeSrc":"3470:3:97","nodeType":"YulIdentifier","src":"3470:3:97"},"nativeSrc":"3470:15:97","nodeType":"YulFunctionCall","src":"3470:15:97"},"variableNames":[{"name":"srcPtr","nativeSrc":"3460:6:97","nodeType":"YulIdentifier","src":"3460:6:97"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"3288:1:97","nodeType":"YulIdentifier","src":"3288:1:97"},{"name":"length","nativeSrc":"3291:6:97","nodeType":"YulIdentifier","src":"3291:6:97"}],"functionName":{"name":"lt","nativeSrc":"3285:2:97","nodeType":"YulIdentifier","src":"3285:2:97"},"nativeSrc":"3285:13:97","nodeType":"YulFunctionCall","src":"3285:13:97"},"nativeSrc":"3277:218:97","nodeType":"YulForLoop","post":{"nativeSrc":"3299:18:97","nodeType":"YulBlock","src":"3299:18:97","statements":[{"nativeSrc":"3301:14:97","nodeType":"YulAssignment","src":"3301:14:97","value":{"arguments":[{"name":"i","nativeSrc":"3310:1:97","nodeType":"YulIdentifier","src":"3310:1:97"},{"kind":"number","nativeSrc":"3313:1:97","nodeType":"YulLiteral","src":"3313:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"3306:3:97","nodeType":"YulIdentifier","src":"3306:3:97"},"nativeSrc":"3306:9:97","nodeType":"YulFunctionCall","src":"3306:9:97"},"variableNames":[{"name":"i","nativeSrc":"3301:1:97","nodeType":"YulIdentifier","src":"3301:1:97"}]}]},"pre":{"nativeSrc":"3281:3:97","nodeType":"YulBlock","src":"3281:3:97","statements":[]},"src":"3277:218:97"},{"nativeSrc":"3504:11:97","nodeType":"YulAssignment","src":"3504:11:97","value":{"name":"pos","nativeSrc":"3512:3:97","nodeType":"YulIdentifier","src":"3512:3:97"},"variableNames":[{"name":"tail","nativeSrc":"3504:4:97","nodeType":"YulIdentifier","src":"3504:4:97"}]}]},"name":"abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed","nativeSrc":"2840:681:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2960:9:97","nodeType":"YulTypedName","src":"2960:9:97","type":""},{"name":"value0","nativeSrc":"2971:6:97","nodeType":"YulTypedName","src":"2971:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2982:4:97","nodeType":"YulTypedName","src":"2982:4:97","type":""}],"src":"2840:681:97"},{"body":{"nativeSrc":"3621:92:97","nodeType":"YulBlock","src":"3621:92:97","statements":[{"nativeSrc":"3631:26:97","nodeType":"YulAssignment","src":"3631:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"3643:9:97","nodeType":"YulIdentifier","src":"3643:9:97"},{"kind":"number","nativeSrc":"3654:2:97","nodeType":"YulLiteral","src":"3654:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3639:3:97","nodeType":"YulIdentifier","src":"3639:3:97"},"nativeSrc":"3639:18:97","nodeType":"YulFunctionCall","src":"3639:18:97"},"variableNames":[{"name":"tail","nativeSrc":"3631:4:97","nodeType":"YulIdentifier","src":"3631:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3673:9:97","nodeType":"YulIdentifier","src":"3673:9:97"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"3698:6:97","nodeType":"YulIdentifier","src":"3698:6:97"}],"functionName":{"name":"iszero","nativeSrc":"3691:6:97","nodeType":"YulIdentifier","src":"3691:6:97"},"nativeSrc":"3691:14:97","nodeType":"YulFunctionCall","src":"3691:14:97"}],"functionName":{"name":"iszero","nativeSrc":"3684:6:97","nodeType":"YulIdentifier","src":"3684:6:97"},"nativeSrc":"3684:22:97","nodeType":"YulFunctionCall","src":"3684:22:97"}],"functionName":{"name":"mstore","nativeSrc":"3666:6:97","nodeType":"YulIdentifier","src":"3666:6:97"},"nativeSrc":"3666:41:97","nodeType":"YulFunctionCall","src":"3666:41:97"},"nativeSrc":"3666:41:97","nodeType":"YulExpressionStatement","src":"3666:41:97"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"3526:187:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3590:9:97","nodeType":"YulTypedName","src":"3590:9:97","type":""},{"name":"value0","nativeSrc":"3601:6:97","nodeType":"YulTypedName","src":"3601:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3612:4:97","nodeType":"YulTypedName","src":"3612:4:97","type":""}],"src":"3526:187:97"},{"body":{"nativeSrc":"3892:163:97","nodeType":"YulBlock","src":"3892:163:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3909:9:97","nodeType":"YulIdentifier","src":"3909:9:97"},{"kind":"number","nativeSrc":"3920:2:97","nodeType":"YulLiteral","src":"3920:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"3902:6:97","nodeType":"YulIdentifier","src":"3902:6:97"},"nativeSrc":"3902:21:97","nodeType":"YulFunctionCall","src":"3902:21:97"},"nativeSrc":"3902:21:97","nodeType":"YulExpressionStatement","src":"3902:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3943:9:97","nodeType":"YulIdentifier","src":"3943:9:97"},{"kind":"number","nativeSrc":"3954:2:97","nodeType":"YulLiteral","src":"3954:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3939:3:97","nodeType":"YulIdentifier","src":"3939:3:97"},"nativeSrc":"3939:18:97","nodeType":"YulFunctionCall","src":"3939:18:97"},{"kind":"number","nativeSrc":"3959:2:97","nodeType":"YulLiteral","src":"3959:2:97","type":"","value":"13"}],"functionName":{"name":"mstore","nativeSrc":"3932:6:97","nodeType":"YulIdentifier","src":"3932:6:97"},"nativeSrc":"3932:30:97","nodeType":"YulFunctionCall","src":"3932:30:97"},"nativeSrc":"3932:30:97","nodeType":"YulExpressionStatement","src":"3932:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3982:9:97","nodeType":"YulIdentifier","src":"3982:9:97"},{"kind":"number","nativeSrc":"3993:2:97","nodeType":"YulLiteral","src":"3993:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3978:3:97","nodeType":"YulIdentifier","src":"3978:3:97"},"nativeSrc":"3978:18:97","nodeType":"YulFunctionCall","src":"3978:18:97"},{"hexValue":"696e76616c696420696e707574","kind":"string","nativeSrc":"3998:15:97","nodeType":"YulLiteral","src":"3998:15:97","type":"","value":"invalid input"}],"functionName":{"name":"mstore","nativeSrc":"3971:6:97","nodeType":"YulIdentifier","src":"3971:6:97"},"nativeSrc":"3971:43:97","nodeType":"YulFunctionCall","src":"3971:43:97"},"nativeSrc":"3971:43:97","nodeType":"YulExpressionStatement","src":"3971:43:97"},{"nativeSrc":"4023:26:97","nodeType":"YulAssignment","src":"4023:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"4035:9:97","nodeType":"YulIdentifier","src":"4035:9:97"},{"kind":"number","nativeSrc":"4046:2:97","nodeType":"YulLiteral","src":"4046:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4031:3:97","nodeType":"YulIdentifier","src":"4031:3:97"},"nativeSrc":"4031:18:97","nodeType":"YulFunctionCall","src":"4031:18:97"},"variableNames":[{"name":"tail","nativeSrc":"4023:4:97","nodeType":"YulIdentifier","src":"4023:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_dbab81719f15ade78f76dcdbf7cff531fc5f9822fe7e8466ffdd2feb23510f3b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3718:337:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3869:9:97","nodeType":"YulTypedName","src":"3869:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3883:4:97","nodeType":"YulTypedName","src":"3883:4:97","type":""}],"src":"3718:337:97"},{"body":{"nativeSrc":"4092:152:97","nodeType":"YulBlock","src":"4092:152:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4109:1:97","nodeType":"YulLiteral","src":"4109:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"4112:77:97","nodeType":"YulLiteral","src":"4112:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"4102:6:97","nodeType":"YulIdentifier","src":"4102:6:97"},"nativeSrc":"4102:88:97","nodeType":"YulFunctionCall","src":"4102:88:97"},"nativeSrc":"4102:88:97","nodeType":"YulExpressionStatement","src":"4102:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4206:1:97","nodeType":"YulLiteral","src":"4206:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"4209:4:97","nodeType":"YulLiteral","src":"4209:4:97","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"4199:6:97","nodeType":"YulIdentifier","src":"4199:6:97"},"nativeSrc":"4199:15:97","nodeType":"YulFunctionCall","src":"4199:15:97"},"nativeSrc":"4199:15:97","nodeType":"YulExpressionStatement","src":"4199:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4230:1:97","nodeType":"YulLiteral","src":"4230:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"4233:4:97","nodeType":"YulLiteral","src":"4233:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"4223:6:97","nodeType":"YulIdentifier","src":"4223:6:97"},"nativeSrc":"4223:15:97","nodeType":"YulFunctionCall","src":"4223:15:97"},"nativeSrc":"4223:15:97","nodeType":"YulExpressionStatement","src":"4223:15:97"}]},"name":"panic_error_0x32","nativeSrc":"4060:184:97","nodeType":"YulFunctionDefinition","src":"4060:184:97"},{"body":{"nativeSrc":"4423:167:97","nodeType":"YulBlock","src":"4423:167:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4440:9:97","nodeType":"YulIdentifier","src":"4440:9:97"},{"kind":"number","nativeSrc":"4451:2:97","nodeType":"YulLiteral","src":"4451:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"4433:6:97","nodeType":"YulIdentifier","src":"4433:6:97"},"nativeSrc":"4433:21:97","nodeType":"YulFunctionCall","src":"4433:21:97"},"nativeSrc":"4433:21:97","nodeType":"YulExpressionStatement","src":"4433:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4474:9:97","nodeType":"YulIdentifier","src":"4474:9:97"},{"kind":"number","nativeSrc":"4485:2:97","nodeType":"YulLiteral","src":"4485:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4470:3:97","nodeType":"YulIdentifier","src":"4470:3:97"},"nativeSrc":"4470:18:97","nodeType":"YulFunctionCall","src":"4470:18:97"},{"kind":"number","nativeSrc":"4490:2:97","nodeType":"YulLiteral","src":"4490:2:97","type":"","value":"17"}],"functionName":{"name":"mstore","nativeSrc":"4463:6:97","nodeType":"YulIdentifier","src":"4463:6:97"},"nativeSrc":"4463:30:97","nodeType":"YulFunctionCall","src":"4463:30:97"},"nativeSrc":"4463:30:97","nodeType":"YulExpressionStatement","src":"4463:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4513:9:97","nodeType":"YulIdentifier","src":"4513:9:97"},{"kind":"number","nativeSrc":"4524:2:97","nodeType":"YulLiteral","src":"4524:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4509:3:97","nodeType":"YulIdentifier","src":"4509:3:97"},"nativeSrc":"4509:18:97","nodeType":"YulFunctionCall","src":"4509:18:97"},{"hexValue":"76546f6b656e206e6f74206c6973746564","kind":"string","nativeSrc":"4529:19:97","nodeType":"YulLiteral","src":"4529:19:97","type":"","value":"vToken not listed"}],"functionName":{"name":"mstore","nativeSrc":"4502:6:97","nodeType":"YulIdentifier","src":"4502:6:97"},"nativeSrc":"4502:47:97","nodeType":"YulFunctionCall","src":"4502:47:97"},"nativeSrc":"4502:47:97","nodeType":"YulExpressionStatement","src":"4502:47:97"},{"nativeSrc":"4558:26:97","nodeType":"YulAssignment","src":"4558:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"4570:9:97","nodeType":"YulIdentifier","src":"4570:9:97"},{"kind":"number","nativeSrc":"4581:2:97","nodeType":"YulLiteral","src":"4581:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4566:3:97","nodeType":"YulIdentifier","src":"4566:3:97"},"nativeSrc":"4566:18:97","nodeType":"YulFunctionCall","src":"4566:18:97"},"variableNames":[{"name":"tail","nativeSrc":"4558:4:97","nodeType":"YulIdentifier","src":"4558:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_5c13dd817de0f8201c35587e146ee1e71ecba9055e5e2b82d1180351af16b685__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"4249:341:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4400:9:97","nodeType":"YulTypedName","src":"4400:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4414:4:97","nodeType":"YulTypedName","src":"4414:4:97","type":""}],"src":"4249:341:97"},{"body":{"nativeSrc":"4627:152:97","nodeType":"YulBlock","src":"4627:152:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4644:1:97","nodeType":"YulLiteral","src":"4644:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"4647:77:97","nodeType":"YulLiteral","src":"4647:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"4637:6:97","nodeType":"YulIdentifier","src":"4637:6:97"},"nativeSrc":"4637:88:97","nodeType":"YulFunctionCall","src":"4637:88:97"},"nativeSrc":"4637:88:97","nodeType":"YulExpressionStatement","src":"4637:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4741:1:97","nodeType":"YulLiteral","src":"4741:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"4744:4:97","nodeType":"YulLiteral","src":"4744:4:97","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"4734:6:97","nodeType":"YulIdentifier","src":"4734:6:97"},"nativeSrc":"4734:15:97","nodeType":"YulFunctionCall","src":"4734:15:97"},"nativeSrc":"4734:15:97","nodeType":"YulExpressionStatement","src":"4734:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4765:1:97","nodeType":"YulLiteral","src":"4765:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"4768:4:97","nodeType":"YulLiteral","src":"4768:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"4758:6:97","nodeType":"YulIdentifier","src":"4758:6:97"},"nativeSrc":"4758:15:97","nodeType":"YulFunctionCall","src":"4758:15:97"},"nativeSrc":"4758:15:97","nodeType":"YulExpressionStatement","src":"4758:15:97"}]},"name":"panic_error_0x41","nativeSrc":"4595:184:97","nodeType":"YulFunctionDefinition","src":"4595:184:97"},{"body":{"nativeSrc":"4958:171:97","nodeType":"YulBlock","src":"4958:171:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4975:9:97","nodeType":"YulIdentifier","src":"4975:9:97"},{"kind":"number","nativeSrc":"4986:2:97","nodeType":"YulLiteral","src":"4986:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"4968:6:97","nodeType":"YulIdentifier","src":"4968:6:97"},"nativeSrc":"4968:21:97","nodeType":"YulFunctionCall","src":"4968:21:97"},"nativeSrc":"4968:21:97","nodeType":"YulExpressionStatement","src":"4968:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5009:9:97","nodeType":"YulIdentifier","src":"5009:9:97"},{"kind":"number","nativeSrc":"5020:2:97","nodeType":"YulLiteral","src":"5020:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5005:3:97","nodeType":"YulIdentifier","src":"5005:3:97"},"nativeSrc":"5005:18:97","nodeType":"YulFunctionCall","src":"5005:18:97"},{"kind":"number","nativeSrc":"5025:2:97","nodeType":"YulLiteral","src":"5025:2:97","type":"","value":"21"}],"functionName":{"name":"mstore","nativeSrc":"4998:6:97","nodeType":"YulIdentifier","src":"4998:6:97"},"nativeSrc":"4998:30:97","nodeType":"YulFunctionCall","src":"4998:30:97"},"nativeSrc":"4998:30:97","nodeType":"YulExpressionStatement","src":"4998:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5048:9:97","nodeType":"YulIdentifier","src":"5048:9:97"},{"kind":"number","nativeSrc":"5059:2:97","nodeType":"YulLiteral","src":"5059:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5044:3:97","nodeType":"YulIdentifier","src":"5044:3:97"},"nativeSrc":"5044:18:97","nodeType":"YulFunctionCall","src":"5044:18:97"},{"hexValue":"76546f6b656e20616c7265616479206c6973746564","kind":"string","nativeSrc":"5064:23:97","nodeType":"YulLiteral","src":"5064:23:97","type":"","value":"vToken already listed"}],"functionName":{"name":"mstore","nativeSrc":"5037:6:97","nodeType":"YulIdentifier","src":"5037:6:97"},"nativeSrc":"5037:51:97","nodeType":"YulFunctionCall","src":"5037:51:97"},"nativeSrc":"5037:51:97","nodeType":"YulExpressionStatement","src":"5037:51:97"},{"nativeSrc":"5097:26:97","nodeType":"YulAssignment","src":"5097:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"5109:9:97","nodeType":"YulIdentifier","src":"5109:9:97"},{"kind":"number","nativeSrc":"5120:2:97","nodeType":"YulLiteral","src":"5120:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5105:3:97","nodeType":"YulIdentifier","src":"5105:3:97"},"nativeSrc":"5105:18:97","nodeType":"YulFunctionCall","src":"5105:18:97"},"variableNames":[{"name":"tail","nativeSrc":"5097:4:97","nodeType":"YulIdentifier","src":"5097:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_84ea8cbff7c4e00b3f00b9454b5ce4aa857457c6267822e855dbbcd0fcbc4cee__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"4784:345:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4935:9:97","nodeType":"YulTypedName","src":"4935:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4949:4:97","nodeType":"YulTypedName","src":"4949:4:97","type":""}],"src":"4784:345:97"}]},"contents":"{\n    { }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_array_address_dyn_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, shl(5, length)), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset_1), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_encode_tuple_t_contract$_ICorePoolVToken_$20370__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_addresst_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := calldataload(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n    }\n    function abi_encode_tuple_t_bool_t_uint256_t_uint256__to_t_bool_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, iszero(iszero(value0)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n    }\n    function abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        let _1 := 32\n        let tail_1 := add(headStart, 32)\n        mstore(headStart, 32)\n        let pos := tail_1\n        let length := mload(value0)\n        mstore(tail_1, length)\n        pos := add(headStart, 64)\n        let srcPtr := add(value0, 32)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, and(mload(srcPtr), 0xffffffffffffffffffffffffffffffffffffffff))\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        tail := pos\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_stringliteral_dbab81719f15ade78f76dcdbf7cff531fc5f9822fe7e8466ffdd2feb23510f3b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 13)\n        mstore(add(headStart, 64), \"invalid input\")\n        tail := add(headStart, 96)\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_stringliteral_5c13dd817de0f8201c35587e146ee1e71ecba9055e5e2b82d1180351af16b685__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 17)\n        mstore(add(headStart, 64), \"vToken not listed\")\n        tail := add(headStart, 96)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_stringliteral_84ea8cbff7c4e00b3f00b9454b5ce4aa857457c6267822e855dbbcd0fcbc4cee__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 21)\n        mstore(add(headStart, 64), \"vToken already listed\")\n        tail := add(headStart, 96)\n    }\n}","id":97,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100be5760003560e01c80638e8f294b11610076578063cab4f84c1161005b578063cab4f84c146101f9578063d136af441461020c578063d571c3111461021f57600080fd5b80638e8f294b14610176578063b0772d0b146101e457600080fd5b80631f3cefb5116100a75780631f3cefb51461010b5780634a584432146101435780635cc4fdeb1461016357600080fd5b806302c3bcbb146100c3578063186db48f146100f6575b600080fd5b6100e36100d13660046108f7565b60006020819052908152604090205481565b6040519081526020015b60405180910390f35b610109610104366004610965565b610252565b005b61011e6101193660046109d1565b61040f565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100ed565b6100e36101513660046108f7565b60016020526000908152604090205481565b6101096101713660046109ea565b610446565b6101c76101843660046108f7565b73ffffffffffffffffffffffffffffffffffffffff166000908152600360209081526040808320546004835281842054600590935292205460ff90921692909190565b6040805193151584526020840192909252908201526060016100ed565b6101ec61050a565b6040516100ed9190610a1d565b6101096102073660046108f7565b6105e7565b61010961021a366004610965565b610720565b61024261022d3660046108f7565b60036020526000908152604090205460ff1681565b60405190151581526020016100ed565b8281811580159061026257508082145b6102cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f696e76616c696420696e7075740000000000000000000000000000000000000060448201526064015b60405180910390fd5b60005b8281101561040657600360008888848181106102ee576102ee610a77565b905060200201602081019061030391906108f7565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040016000205460ff16610393576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f76546f6b656e206e6f74206c697374656400000000000000000000000000000060448201526064016102c4565b8484828181106103a5576103a5610a77565b90506020020135600160008989858181106103c2576103c2610a77565b90506020020160208101906103d791906108f7565b73ffffffffffffffffffffffffffffffffffffffff1681526020810191909152604001600020556001016102d0565b50505050505050565b6002818154811061041f57600080fd5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b73ffffffffffffffffffffffffffffffffffffffff831660009081526003602052604090205460ff166104d5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f76546f6b656e206e6f74206c697374656400000000000000000000000000000060448201526064016102c4565b73ffffffffffffffffffffffffffffffffffffffff909216600090815260046020908152604080832093909355600590522055565b60025460609060009067ffffffffffffffff81111561052b5761052b610aa6565b604051908082528060200260200182016040528015610554578160200160208202803683370190505b50905060005b6002548110156105e1576002818154811061057757610577610a77565b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168282815181106105b4576105b4610a77565b73ffffffffffffffffffffffffffffffffffffffff9092166020928302919091019091015260010161055a565b50919050565b73ffffffffffffffffffffffffffffffffffffffff811660009081526003602052604090205460ff1615610677576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f76546f6b656e20616c7265616479206c6973746564000000000000000000000060448201526064016102c4565b73ffffffffffffffffffffffffffffffffffffffff16600081815260036020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169091179055565b8281811580159061073057508082145b610796576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f696e76616c696420696e7075740000000000000000000000000000000000000060448201526064016102c4565b60005b8281101561040657600360008888848181106107b7576107b7610a77565b90506020020160208101906107cc91906108f7565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040016000205460ff1661085c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f76546f6b656e206e6f74206c697374656400000000000000000000000000000060448201526064016102c4565b84848281811061086e5761086e610a77565b9050602002013560008089898581811061088a5761088a610a77565b905060200201602081019061089f91906108f7565b73ffffffffffffffffffffffffffffffffffffffff168152602081019190915260400160002055600101610799565b803573ffffffffffffffffffffffffffffffffffffffff811681146108f257600080fd5b919050565b60006020828403121561090957600080fd5b610912826108ce565b9392505050565b60008083601f84011261092b57600080fd5b50813567ffffffffffffffff81111561094357600080fd5b6020830191508360208260051b850101111561095e57600080fd5b9250929050565b6000806000806040858703121561097b57600080fd5b843567ffffffffffffffff8082111561099357600080fd5b61099f88838901610919565b909650945060208701359150808211156109b857600080fd5b506109c587828801610919565b95989497509550505050565b6000602082840312156109e357600080fd5b5035919050565b6000806000606084860312156109ff57600080fd5b610a08846108ce565b95602085013595506040909401359392505050565b6020808252825182820181905260009190848201906040850190845b81811015610a6b57835173ffffffffffffffffffffffffffffffffffffffff1683529284019291840191600101610a39565b50909695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fdfea2646970667358221220d5c2b7c0e2414796d8ca3b5ac8afa0766b8514d90bd2f0252c2be7e2f535140764736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xBE JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8E8F294B GT PUSH2 0x76 JUMPI DUP1 PUSH4 0xCAB4F84C GT PUSH2 0x5B JUMPI DUP1 PUSH4 0xCAB4F84C EQ PUSH2 0x1F9 JUMPI DUP1 PUSH4 0xD136AF44 EQ PUSH2 0x20C JUMPI DUP1 PUSH4 0xD571C311 EQ PUSH2 0x21F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8E8F294B EQ PUSH2 0x176 JUMPI DUP1 PUSH4 0xB0772D0B EQ PUSH2 0x1E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1F3CEFB5 GT PUSH2 0xA7 JUMPI DUP1 PUSH4 0x1F3CEFB5 EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0x4A584432 EQ PUSH2 0x143 JUMPI DUP1 PUSH4 0x5CC4FDEB EQ PUSH2 0x163 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2C3BCBB EQ PUSH2 0xC3 JUMPI DUP1 PUSH4 0x186DB48F EQ PUSH2 0xF6 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE3 PUSH2 0xD1 CALLDATASIZE PUSH1 0x4 PUSH2 0x8F7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP2 SWAP1 MSTORE SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x109 PUSH2 0x104 CALLDATASIZE PUSH1 0x4 PUSH2 0x965 JUMP JUMPDEST PUSH2 0x252 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x11E PUSH2 0x119 CALLDATASIZE PUSH1 0x4 PUSH2 0x9D1 JUMP JUMPDEST PUSH2 0x40F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xED JUMP JUMPDEST PUSH2 0xE3 PUSH2 0x151 CALLDATASIZE PUSH1 0x4 PUSH2 0x8F7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x109 PUSH2 0x171 CALLDATASIZE PUSH1 0x4 PUSH2 0x9EA JUMP JUMPDEST PUSH2 0x446 JUMP JUMPDEST PUSH2 0x1C7 PUSH2 0x184 CALLDATASIZE PUSH1 0x4 PUSH2 0x8F7 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x4 DUP4 MSTORE DUP2 DUP5 KECCAK256 SLOAD PUSH1 0x5 SWAP1 SWAP4 MSTORE SWAP3 KECCAK256 SLOAD PUSH1 0xFF SWAP1 SWAP3 AND SWAP3 SWAP1 SWAP2 SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 ISZERO ISZERO DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0xED JUMP JUMPDEST PUSH2 0x1EC PUSH2 0x50A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xED SWAP2 SWAP1 PUSH2 0xA1D JUMP JUMPDEST PUSH2 0x109 PUSH2 0x207 CALLDATASIZE PUSH1 0x4 PUSH2 0x8F7 JUMP JUMPDEST PUSH2 0x5E7 JUMP JUMPDEST PUSH2 0x109 PUSH2 0x21A CALLDATASIZE PUSH1 0x4 PUSH2 0x965 JUMP JUMPDEST PUSH2 0x720 JUMP JUMPDEST PUSH2 0x242 PUSH2 0x22D CALLDATASIZE PUSH1 0x4 PUSH2 0x8F7 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xED JUMP JUMPDEST DUP3 DUP2 DUP2 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x262 JUMPI POP DUP1 DUP3 EQ JUMPDEST PUSH2 0x2CD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C696420696E70757400000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x406 JUMPI PUSH1 0x3 PUSH1 0x0 DUP9 DUP9 DUP5 DUP2 DUP2 LT PUSH2 0x2EE JUMPI PUSH2 0x2EE PUSH2 0xA77 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x303 SWAP2 SWAP1 PUSH2 0x8F7 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x393 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x76546F6B656E206E6F74206C6973746564000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2C4 JUMP JUMPDEST DUP5 DUP5 DUP3 DUP2 DUP2 LT PUSH2 0x3A5 JUMPI PUSH2 0x3A5 PUSH2 0xA77 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x0 DUP10 DUP10 DUP6 DUP2 DUP2 LT PUSH2 0x3C2 JUMPI PUSH2 0x3C2 PUSH2 0xA77 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x3D7 SWAP2 SWAP1 PUSH2 0x8F7 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SSTORE PUSH1 0x1 ADD PUSH2 0x2D0 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x41F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x4D5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x76546F6B656E206E6F74206C6973746564000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2C4 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0x5 SWAP1 MSTORE KECCAK256 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x60 SWAP1 PUSH1 0x0 SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x52B JUMPI PUSH2 0x52B PUSH2 0xAA6 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x554 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST PUSH1 0x2 SLOAD DUP2 LT ISZERO PUSH2 0x5E1 JUMPI PUSH1 0x2 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x577 JUMPI PUSH2 0x577 PUSH2 0xA77 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x5B4 JUMPI PUSH2 0x5B4 PUSH2 0xA77 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP2 SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE PUSH1 0x1 ADD PUSH2 0x55A JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x677 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x76546F6B656E20616C7265616479206C69737465640000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2C4 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND PUSH1 0x1 SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x2 DUP1 SLOAD SWAP2 DUP3 ADD DUP2 SSTORE SWAP1 SWAP2 MSTORE PUSH32 0x405787FA12A823E0F2B7631CC41B3BA8828B3321CA811111FA75CD3AA3BB5ACE ADD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST DUP3 DUP2 DUP2 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x730 JUMPI POP DUP1 DUP3 EQ JUMPDEST PUSH2 0x796 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C696420696E70757400000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2C4 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x406 JUMPI PUSH1 0x3 PUSH1 0x0 DUP9 DUP9 DUP5 DUP2 DUP2 LT PUSH2 0x7B7 JUMPI PUSH2 0x7B7 PUSH2 0xA77 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x7CC SWAP2 SWAP1 PUSH2 0x8F7 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x85C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x76546F6B656E206E6F74206C6973746564000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2C4 JUMP JUMPDEST DUP5 DUP5 DUP3 DUP2 DUP2 LT PUSH2 0x86E JUMPI PUSH2 0x86E PUSH2 0xA77 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x0 DUP1 DUP10 DUP10 DUP6 DUP2 DUP2 LT PUSH2 0x88A JUMPI PUSH2 0x88A PUSH2 0xA77 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x89F SWAP2 SWAP1 PUSH2 0x8F7 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SSTORE PUSH1 0x1 ADD PUSH2 0x799 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x8F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x909 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x912 DUP3 PUSH2 0x8CE JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x92B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x943 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0x95E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x97B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x993 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x99F DUP9 DUP4 DUP10 ADD PUSH2 0x919 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x9B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9C5 DUP8 DUP3 DUP9 ADD PUSH2 0x919 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x9E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x9FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA08 DUP5 PUSH2 0x8CE JUMP JUMPDEST SWAP6 PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 SWAP1 SWAP5 ADD CALLDATALOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xA6B JUMPI DUP4 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0xA39 JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD5 0xC2 0xB7 0xC0 0xE2 COINBASE SELFBALANCE SWAP7 0xD8 0xCA EXTCODESIZE GAS 0xC8 0xAF LOG0 PUSH23 0x6B8514D90BD2F0252C2BE7E2F535140764736F6C634300 ADDMOD NOT STOP CALLER ","sourceMap":"136:4052:79:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;232:45;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;552:25:97;;;540:2;525:18;232:45:79;;;;;;;;1992:461;;;;;;:::i;:::-;;:::i;:::-;;438:35;;;;;;:::i;:::-;;:::i;:::-;;;2124:42:97;2112:55;;;2094:74;;2082:2;2067:18;438:35:79;1923:251:97;349:45:79;;;;;;:::i;:::-;;;;;;;;;;;;;;3134:383;;;;;;:::i;:::-;;:::i;3833:353::-;;;;;;:::i;:::-;4011:20;;3903:13;4011:20;;;:12;:20;;;;;;;;;4068:25;:33;;;;;;4142:29;:37;;;;;;4011:20;;;;;4068:33;;4142:37;3833:353;;;;;2727:14:97;;2720:22;2702:41;;2774:2;2759:18;;2752:34;;;;2802:18;;;2795:34;2690:2;2675:18;3833:353:79;2506:329:97;2547:283:79;;;:::i;:::-;;;;;;;:::i;1007:216::-;;;;;;:::i;:::-;;:::i;1377:461::-;;;;;;:::i;:::-;;:::i;565:44::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3691:14:97;;3684:22;3666:41;;3654:2;3639:18;565:44:79;3526:187:97;1992:461:79;2117:7;2165;2198:15;;;;;:46;;;2231:13;2217:10;:27;2198:46;2190:72;;;;;;;3920:2:97;2190:72:79;;;3902:21:97;3959:2;3939:18;;;3932:30;3998:15;3978:18;;;3971:43;4031:18;;2190:72:79;;;;;;;;;2278:9;2273:174;2293:10;2289:1;:14;2273:174;;;2332:12;:24;2345:7;;2353:1;2345:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;2332:24;;;;;;;;;;;;;-1:-1:-1;2332:24:79;;;;2324:54;;;;;;;4451:2:97;2324:54:79;;;4433:21:97;4490:2;4470:18;;;4463:30;4529:19;4509:18;;;4502:47;4566:18;;2324:54:79;4249:341:97;2324:54:79;2426:7;;2434:1;2426:10;;;;;;;:::i;:::-;;;;;;;2392;:31;2411:7;;2419:1;2411:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;2392:31;;;;;;;;;;;;;-1:-1:-1;2392:31:79;:44;2305:3;;2273:174;;;;2086:367;;1992:461;;;;:::o;438:35::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;438:35:79;:::o;3134:383::-;3314:20;;;;;;;:12;:20;;;;;;;;3306:50;;;;;;;4451:2:97;3306:50:79;;;4433:21:97;4490:2;4470:18;;;4463:30;4529:19;4509:18;;;4502:47;4566:18;;3306:50:79;4249:341:97;3306:50:79;3366:33;;;;;;;;:25;:33;;;;;;;;:63;;;;3439:29;:37;;;:71;3134:383::o;2547:283::-;2664:10;:17;2595:16;;2623:24;;2650:32;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2650:32:79;;2623:59;;2697:9;2692:108;2716:10;:17;2712:21;;2692:108;;;2775:10;2786:1;2775:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;2754:7;2762:1;2754:10;;;;;;;;:::i;:::-;:35;;;;:10;;;;;;;;;;;:35;2735:3;;2692:108;;;-1:-1:-1;2816:7:79;2547:283;-1:-1:-1;2547:283:79:o;1007:216::-;1074:20;;;;;;;:12;:20;;;;;;;;1073:21;1065:55;;;;;;;4986:2:97;1065:55:79;;;4968:21:97;5025:2;5005:18;;;4998:30;5064:23;5044:18;;;5037:51;5105:18;;1065:55:79;4784:345:97;1065:55:79;1130:29;;;;;;:12;:29;;;;;:36;;;;1162:4;1130:36;;;;;;1176:10;:40;;;;;;;;;;;;;;;;;;;;;1007:216::o;1377:461::-;1502:7;1550;1583:15;;;;;:46;;;1616:13;1602:10;:27;1583:46;1575:72;;;;;;;3920:2:97;1575:72:79;;;3902:21:97;3959:2;3939:18;;;3932:30;3998:15;3978:18;;;3971:43;4031:18;;1575:72:79;3718:337:97;1575:72:79;1663:9;1658:174;1678:10;1674:1;:14;1658:174;;;1717:12;:24;1730:7;;1738:1;1730:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;1717:24;;;;;;;;;;;;;-1:-1:-1;1717:24:79;;;;1709:54;;;;;;;4451:2:97;1709:54:79;;;4433:21:97;4490:2;4470:18;;;4463:30;4529:19;4509:18;;;4502:47;4566:18;;1709:54:79;4249:341:97;1709:54:79;1811:7;;1819:1;1811:10;;;;;;;:::i;:::-;;;;;;;1777;:31;1796:7;;1804:1;1796:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;1777:31;;;;;;;;;;;;;-1:-1:-1;1777:31:79;:44;1690:3;;1658:174;;14:196:97;82:20;;142:42;131:54;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:186::-;274:6;327:2;315:9;306:7;302:23;298:32;295:52;;;343:1;340;333:12;295:52;366:29;385:9;366:29;:::i;:::-;356:39;215:186;-1:-1:-1;;;215:186:97:o;588:367::-;651:8;661:6;715:3;708:4;700:6;696:17;692:27;682:55;;733:1;730;723:12;682:55;-1:-1:-1;756:20:97;;799:18;788:30;;785:50;;;831:1;828;821:12;785:50;868:4;860:6;856:17;844:29;;928:3;921:4;911:6;908:1;904:14;896:6;892:27;888:38;885:47;882:67;;;945:1;942;935:12;882:67;588:367;;;;;:::o;960:773::-;1082:6;1090;1098;1106;1159:2;1147:9;1138:7;1134:23;1130:32;1127:52;;;1175:1;1172;1165:12;1127:52;1215:9;1202:23;1244:18;1285:2;1277:6;1274:14;1271:34;;;1301:1;1298;1291:12;1271:34;1340:70;1402:7;1393:6;1382:9;1378:22;1340:70;:::i;:::-;1429:8;;-1:-1:-1;1314:96:97;-1:-1:-1;1517:2:97;1502:18;;1489:32;;-1:-1:-1;1533:16:97;;;1530:36;;;1562:1;1559;1552:12;1530:36;;1601:72;1665:7;1654:8;1643:9;1639:24;1601:72;:::i;:::-;960:773;;;;-1:-1:-1;1692:8:97;-1:-1:-1;;;;960:773:97:o;1738:180::-;1797:6;1850:2;1838:9;1829:7;1825:23;1821:32;1818:52;;;1866:1;1863;1856:12;1818:52;-1:-1:-1;1889:23:97;;1738:180;-1:-1:-1;1738:180:97:o;2179:322::-;2256:6;2264;2272;2325:2;2313:9;2304:7;2300:23;2296:32;2293:52;;;2341:1;2338;2331:12;2293:52;2364:29;2383:9;2364:29;:::i;:::-;2354:39;2440:2;2425:18;;2412:32;;-1:-1:-1;2491:2:97;2476:18;;;2463:32;;2179:322;-1:-1:-1;;;2179:322:97:o;2840:681::-;3011:2;3063:21;;;3133:13;;3036:18;;;3155:22;;;2982:4;;3011:2;3234:15;;;;3208:2;3193:18;;;2982:4;3277:218;3291:6;3288:1;3285:13;3277:218;;;3356:13;;3371:42;3352:62;3340:75;;3470:15;;;;3435:12;;;;3313:1;3306:9;3277:218;;;-1:-1:-1;3512:3:97;;2840:681;-1:-1:-1;;;;;;2840:681:97:o;4060:184::-;4112:77;4109:1;4102:88;4209:4;4206:1;4199:15;4233:4;4230:1;4223:15;4595:184;4647:77;4644:1;4637:88;4744:4;4741:1;4734:15;4768:4;4765:1;4758:15"},"gasEstimates":{"creation":{"codeDepositCost":"565400","executionCost":"600","totalCost":"566000"},"external":{"allVTokens(uint256)":"4613","borrowCaps(address)":"2541","getAllMarkets()":"infinite","markets(address)":"6928","setCollateralFactor(address,uint256,uint256)":"46946","setMarketBorrowCaps(address[],uint256[])":"infinite","setMarketSupplyCaps(address[],uint256[])":"infinite","supplyCaps(address)":"2523","supportMarket(address)":"75269","vTokenListed(address)":"2585"}},"methodIdentifiers":{"allVTokens(uint256)":"1f3cefb5","borrowCaps(address)":"4a584432","getAllMarkets()":"b0772d0b","markets(address)":"8e8f294b","setCollateralFactor(address,uint256,uint256)":"5cc4fdeb","setMarketBorrowCaps(address[],uint256[])":"186db48f","setMarketSupplyCaps(address[],uint256[])":"d136af44","supplyCaps(address)":"02c3bcbb","supportMarket(address)":"cab4f84c","vTokenListed(address)":"d571c311"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"allVTokens\",\"outputs\":[{\"internalType\":\"contract ICorePoolVToken\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"borrowCaps\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllMarkets\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vToken\",\"type\":\"address\"}],\"name\":\"markets\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isListed\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactorMantissa\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationThresholdMantissa\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"newCollateralFactorMantissa\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newLiquidationThresholdMantissa\",\"type\":\"uint256\"}],\"name\":\"setCollateralFactor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"vTokens\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"newCaps\",\"type\":\"uint256[]\"}],\"name\":\"setMarketBorrowCaps\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"vTokens\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"newCaps\",\"type\":\"uint256[]\"}],\"name\":\"setMarketSupplyCaps\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"supplyCaps\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vToken\",\"type\":\"address\"}],\"name\":\"supportMarket\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"vTokenListed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getAllMarkets()\":{\"returns\":{\"_0\":\"Array of vToken addresses\"}},\"markets(address)\":{\"params\":{\"vToken\":\"The vToken address\"},\"returns\":{\"collateralFactorMantissa\":\"The collateral factor mantissa\",\"isListed\":\"Whether the vToken is listed\",\"liquidationThresholdMantissa\":\"The liquidation threshold mantissa\"}},\"setCollateralFactor(address,uint256,uint256)\":{\"params\":{\"newCollateralFactorMantissa\":\"The new collateral factor mantissa\",\"newLiquidationThresholdMantissa\":\"The new liquidation threshold mantissa\",\"vToken\":\"The vToken address\"}},\"setMarketBorrowCaps(address[],uint256[])\":{\"params\":{\"newCaps\":\"The new borrow caps\",\"vTokens\":\"The vToken addresses\"}},\"setMarketSupplyCaps(address[],uint256[])\":{\"params\":{\"newCaps\":\"The new supply caps\",\"vTokens\":\"The vToken addresses\"}},\"supportMarket(address)\":{\"params\":{\"vToken\":\"The vToken to add\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"allVTokens(uint256)\":{\"notice\":\"Array of all vTokens\"},\"borrowCaps(address)\":{\"notice\":\"Mapping of vToken addresses to their borrow caps\"},\"getAllMarkets()\":{\"notice\":\"Get all vTokens\"},\"markets(address)\":{\"notice\":\"Get market information for a vToken\"},\"setCollateralFactor(address,uint256,uint256)\":{\"notice\":\"Set the collateral factor and liquidation threshold for a vToken\"},\"setMarketBorrowCaps(address[],uint256[])\":{\"notice\":\"Set the borrow cap for a vToken\"},\"setMarketSupplyCaps(address[],uint256[])\":{\"notice\":\"Set the supply cap for a vToken\"},\"supplyCaps(address)\":{\"notice\":\"Mapping of vToken addresses to their supply caps\"},\"supportMarket(address)\":{\"notice\":\"Add a new vToken to be tracked\"},\"vTokenListed(address)\":{\"notice\":\"Mapping of vToken addresses to boolean indicating if they are listed\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/MockComptroller.sol\":\"MockComptroller\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@venusprotocol/venus-protocol/contracts/InterestRateModels/InterestRateModelV8.sol\":{\"content\":\"pragma solidity 0.8.25;\\n\\n/**\\n * @title Venus's InterestRateModelV8 Interface\\n * @author Venus\\n */\\nabstract contract InterestRateModelV8 {\\n    /// @notice Indicator that this is an InterestRateModel contract (for inspection)\\n    bool public constant isInterestRateModel = true;\\n\\n    /**\\n     * @notice Calculates the current borrow interest rate per block\\n     * @param cash The total amount of cash the market has\\n     * @param borrows The total amount of borrows the market has outstanding\\n     * @param reserves The total amnount of reserves the market has\\n     * @return The borrow rate per block (as a percentage, and scaled by 1e18)\\n     */\\n    function getBorrowRate(uint256 cash, uint256 borrows, uint256 reserves) external view virtual returns (uint256);\\n\\n    /**\\n     * @notice Calculates the current supply interest rate per block\\n     * @param cash The total amount of cash the market has\\n     * @param borrows The total amount of borrows the market has outstanding\\n     * @param reserves The total amnount of reserves the market has\\n     * @param reserveFactorMantissa The current reserve factor the market has\\n     * @return The supply rate per block (as a percentage, and scaled by 1e18)\\n     */\\n    function getSupplyRate(\\n        uint256 cash,\\n        uint256 borrows,\\n        uint256 reserves,\\n        uint256 reserveFactorMantissa\\n    ) external view virtual returns (uint256);\\n}\\n\",\"keccak256\":\"0x9b71896f66909fb3fe829c413594121f0e165d8508e8a6fa29a6938ddcfbb61f\"},\"contracts/interfaces/ICorePoolVToken.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { InterestRateModelV8 } from \\\"@venusprotocol/venus-protocol/contracts/InterestRateModels/InterestRateModelV8.sol\\\";\\n\\ninterface ICorePoolVToken {\\n    function comptroller() external view returns (address);\\n\\n    function interestRateModel() external view returns (address);\\n\\n    function _setInterestRateModel(InterestRateModelV8 newInterestRateModel) external returns (uint256);\\n}\\n\",\"keccak256\":\"0xb952df2bdfc73cc669c52776b4cf9dd663084dfafd74131f4f59ac9c820edd7b\",\"license\":\"BSD-3-Clause\"},\"contracts/test/MockComptroller.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { ICorePoolVToken } from \\\"../interfaces/ICorePoolVToken.sol\\\";\\n\\ncontract MockComptroller {\\n    /// @notice Mapping of vToken addresses to their supply caps\\n    mapping(address => uint256) public supplyCaps;\\n\\n    /// @notice Mapping of vToken addresses to their borrow caps\\n    mapping(address => uint256) public borrowCaps;\\n\\n    /// @notice Array of all vTokens\\n    ICorePoolVToken[] public allVTokens;\\n\\n    /// @notice Mapping of vToken addresses to boolean indicating if they are listed\\n    mapping(address => bool) public vTokenListed;\\n\\n    /// @notice Mapping of vToken addresses to their collateral factors\\n    mapping(address => uint256) internal _collateralFactorMantissa;\\n\\n    /// @notice Mapping of vToken addresses to their liquidation thresholds\\n    mapping(address => uint256) internal _liquidationThresholdMantissa;\\n\\n    /**\\n     * @notice Add a new vToken to be tracked\\n     * @param vToken The vToken to add\\n     */\\n    function supportMarket(address vToken) external {\\n        require(!vTokenListed[vToken], \\\"vToken already listed\\\");\\n        vTokenListed[address(vToken)] = true;\\n        allVTokens.push(ICorePoolVToken(vToken));\\n    }\\n\\n    /**\\n     * @notice Set the supply cap for a vToken\\n     * @param vTokens The vToken addresses\\n     * @param newCaps The new supply caps\\n     */\\n    function setMarketSupplyCaps(address[] calldata vTokens, uint256[] calldata newCaps) external {\\n        uint256 numMarkets = vTokens.length;\\n        uint256 numSupplyCaps = newCaps.length;\\n\\n        require(numMarkets != 0 && numMarkets == numSupplyCaps, \\\"invalid input\\\");\\n\\n        for (uint256 i; i < numMarkets; ++i) {\\n            require(vTokenListed[vTokens[i]], \\\"vToken not listed\\\");\\n            supplyCaps[address(vTokens[i])] = newCaps[i];\\n        }\\n    }\\n\\n    /**\\n     * @notice Set the borrow cap for a vToken\\n     * @param vTokens The vToken addresses\\n     * @param newCaps The new borrow caps\\n     */\\n    function setMarketBorrowCaps(address[] calldata vTokens, uint256[] calldata newCaps) external {\\n        uint256 numMarkets = vTokens.length;\\n        uint256 numBorrowCaps = newCaps.length;\\n\\n        require(numMarkets != 0 && numMarkets == numBorrowCaps, \\\"invalid input\\\");\\n\\n        for (uint256 i; i < numMarkets; ++i) {\\n            require(vTokenListed[vTokens[i]], \\\"vToken not listed\\\");\\n            borrowCaps[address(vTokens[i])] = newCaps[i];\\n        }\\n    }\\n\\n    /**\\n     * @notice Get all vTokens\\n     * @return Array of vToken addresses\\n     */\\n    function getAllMarkets() external view returns (address[] memory) {\\n        address[] memory markets = new address[](allVTokens.length);\\n        for (uint256 i = 0; i < allVTokens.length; i++) {\\n            markets[i] = address(allVTokens[i]);\\n        }\\n        return markets;\\n    }\\n\\n    /**\\n     * @notice Set the collateral factor and liquidation threshold for a vToken\\n     * @param vToken The vToken address\\n     * @param newCollateralFactorMantissa The new collateral factor mantissa\\n     * @param newLiquidationThresholdMantissa The new liquidation threshold mantissa\\n     */\\n    function setCollateralFactor(\\n        address vToken,\\n        uint256 newCollateralFactorMantissa,\\n        uint256 newLiquidationThresholdMantissa\\n    ) external {\\n        require(vTokenListed[vToken], \\\"vToken not listed\\\");\\n        _collateralFactorMantissa[vToken] = newCollateralFactorMantissa;\\n        _liquidationThresholdMantissa[vToken] = newLiquidationThresholdMantissa;\\n    }\\n\\n    /**\\n     * @notice Get market information for a vToken\\n     * @param vToken The vToken address\\n     * @return isListed Whether the vToken is listed\\n     * @return collateralFactorMantissa The collateral factor mantissa\\n     * @return liquidationThresholdMantissa The liquidation threshold mantissa\\n     */\\n    function markets(\\n        address vToken\\n    ) external view returns (bool isListed, uint256 collateralFactorMantissa, uint256 liquidationThresholdMantissa) {\\n        isListed = vTokenListed[vToken];\\n        collateralFactorMantissa = _collateralFactorMantissa[vToken];\\n        liquidationThresholdMantissa = _liquidationThresholdMantissa[vToken];\\n    }\\n}\\n\",\"keccak256\":\"0x2491dc43b11838967b3133d0784e471dec84f4b25f18faad476d6e1705988966\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":20481,"contract":"contracts/test/MockComptroller.sol:MockComptroller","label":"supplyCaps","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":20486,"contract":"contracts/test/MockComptroller.sol:MockComptroller","label":"borrowCaps","offset":0,"slot":"1","type":"t_mapping(t_address,t_uint256)"},{"astId":20491,"contract":"contracts/test/MockComptroller.sol:MockComptroller","label":"allVTokens","offset":0,"slot":"2","type":"t_array(t_contract(ICorePoolVToken)20370)dyn_storage"},{"astId":20496,"contract":"contracts/test/MockComptroller.sol:MockComptroller","label":"vTokenListed","offset":0,"slot":"3","type":"t_mapping(t_address,t_bool)"},{"astId":20501,"contract":"contracts/test/MockComptroller.sol:MockComptroller","label":"_collateralFactorMantissa","offset":0,"slot":"4","type":"t_mapping(t_address,t_uint256)"},{"astId":20506,"contract":"contracts/test/MockComptroller.sol:MockComptroller","label":"_liquidationThresholdMantissa","offset":0,"slot":"5","type":"t_mapping(t_address,t_uint256)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_contract(ICorePoolVToken)20370)dyn_storage":{"base":"t_contract(ICorePoolVToken)20370","encoding":"dynamic_array","label":"contract ICorePoolVToken[]","numberOfBytes":"32"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_contract(ICorePoolVToken)20370":{"encoding":"inplace","label":"contract ICorePoolVToken","numberOfBytes":"20"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"kind":"user","methods":{"allVTokens(uint256)":{"notice":"Array of all vTokens"},"borrowCaps(address)":{"notice":"Mapping of vToken addresses to their borrow caps"},"getAllMarkets()":{"notice":"Get all vTokens"},"markets(address)":{"notice":"Get market information for a vToken"},"setCollateralFactor(address,uint256,uint256)":{"notice":"Set the collateral factor and liquidation threshold for a vToken"},"setMarketBorrowCaps(address[],uint256[])":{"notice":"Set the borrow cap for a vToken"},"setMarketSupplyCaps(address[],uint256[])":{"notice":"Set the supply cap for a vToken"},"supplyCaps(address)":{"notice":"Mapping of vToken addresses to their supply caps"},"supportMarket(address)":{"notice":"Add a new vToken to be tracked"},"vTokenListed(address)":{"notice":"Mapping of vToken addresses to boolean indicating if they are listed"}},"version":1}}},"contracts/test/MockCoreComptroller.sol":{"MockCoreComptroller":{"abi":[{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"allVTokens","outputs":[{"internalType":"contract ICorePoolVToken","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"borrowCaps","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAllMarkets","outputs":[{"internalType":"contract ICorePoolVToken[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"vToken","type":"address"}],"name":"markets","outputs":[{"internalType":"bool","name":"isListed","type":"bool"},{"internalType":"uint256","name":"collateralFactorMantissa","type":"uint256"},{"internalType":"bool","name":"isVenus","type":"bool"},{"internalType":"uint256","name":"liquidationThresholdMantissa","type":"uint256"},{"internalType":"uint256","name":"liquidationIncentiveMantissa","type":"uint256"},{"internalType":"uint96","name":"marketPoolId","type":"uint96"},{"internalType":"bool","name":"isBorrowAllowed","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint96","name":"poolId","type":"uint96"},{"internalType":"address","name":"vToken","type":"address"}],"name":"poolMarkets","outputs":[{"internalType":"bool","name":"isListed","type":"bool"},{"internalType":"uint256","name":"collateralFactorMantissa","type":"uint256"},{"internalType":"bool","name":"isVenus","type":"bool"},{"internalType":"uint256","name":"liquidationThresholdMantissa","type":"uint256"},{"internalType":"uint256","name":"liquidationIncentiveMantissa","type":"uint256"},{"internalType":"uint96","name":"marketPoolId","type":"uint96"},{"internalType":"bool","name":"isBorrowAllowed","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint96","name":"poolId","type":"uint96"},{"internalType":"address","name":"vToken","type":"address"},{"internalType":"uint256","name":"newCollateralFactorMantissa","type":"uint256"},{"internalType":"uint256","name":"newLiquidationThresholdMantissa","type":"uint256"}],"name":"setCollateralFactor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"vTokens","type":"address[]"},{"internalType":"uint256[]","name":"newCaps","type":"uint256[]"}],"name":"setMarketBorrowCaps","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"vTokens","type":"address[]"},{"internalType":"uint256[]","name":"newCaps","type":"uint256[]"}],"name":"setMarketSupplyCaps","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"supplyCaps","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"vToken","type":"address"}],"name":"supportMarket","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"vTokenListed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{"getAllMarkets()":{"returns":{"_0":"Array of vToken addresses"}},"markets(address)":{"params":{"vToken":"The vToken address"},"returns":{"collateralFactorMantissa":"The collateral factor","isBorrowAllowed":"Whether borrowing is allowed","isListed":"Whether the market is listed","isVenus":"Whether it's a Venus market","liquidationIncentiveMantissa":"The liquidation incentive","liquidationThresholdMantissa":"The liquidation threshold","marketPoolId":"The pool ID"}},"poolMarkets(uint96,address)":{"params":{"poolId":"The eMode pool ID","vToken":"The vToken address"},"returns":{"collateralFactorMantissa":"The collateral factor","isBorrowAllowed":"Whether borrowing is allowed","isListed":"Whether the market is listed","isVenus":"Whether it's a Venus market","liquidationIncentiveMantissa":"The liquidation incentive","liquidationThresholdMantissa":"The liquidation threshold","marketPoolId":"The pool ID"}},"setCollateralFactor(uint96,address,uint256,uint256)":{"params":{"newCollateralFactorMantissa":"The new collateral factor","newLiquidationThresholdMantissa":"The new liquidation threshold","poolId":"The pool ID (0 for regular markets, >0 for eMode groups)","vToken":"The vToken address"},"returns":{"_0":"Always returns 0"}},"setMarketBorrowCaps(address[],uint256[])":{"params":{"newCaps":"The new borrow caps","vTokens":"The vToken addresses"}},"setMarketSupplyCaps(address[],uint256[])":{"params":{"newCaps":"The new supply caps","vTokens":"The vToken addresses"}},"supportMarket(address)":{"params":{"vToken":"The vToken to add"}}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6080604052348015600f57600080fd5b50610c0b8061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c80638e8f294b11610081578063cab4f84c1161005b578063cab4f84c146102ba578063d136af44146102cd578063d571c311146102e057600080fd5b80638e8f294b146102395780639159b17714610292578063b0772d0b146102a557600080fd5b80631f3cefb5116100b25780631f3cefb5146101165780633093c11e1461014e5780634a5844321461021957600080fd5b806302c3bcbb146100ce578063186db48f14610101575b600080fd5b6100ee6100dc3660046109c8565b60006020819052908152604090205481565b6040519081526020015b60405180910390f35b61011461010f366004610a36565b610313565b005b610129610124366004610aa2565b6104d0565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100f8565b6101cd61015c366004610ad7565b73ffffffffffffffffffffffffffffffffffffffff166000818152600760209081526040808320546bffffffffffffffffffffffff861680855260048452828520868652845282852054908552600584528285209585529490925282205460ff909116949293919290918391600190565b604080519715158852602088019690965293151594860194909452606085019190915260808401526bffffffffffffffffffffffff90911660a0830152151560c082015260e0016100f8565b6100ee6102273660046109c8565b60016020526000908152604090205481565b6101cd6102473660046109c8565b73ffffffffffffffffffffffffffffffffffffffff16600090815260076020908152604080832054600283528184205460039093529083205460ff9091169391929182908190600190565b6100ee6102a0366004610b0a565b610507565b6102ad610649565b6040516100f89190610b4c565b6101146102c83660046109c8565b6106b8565b6101146102db366004610a36565b6107f1565b6103036102ee3660046109c8565b60076020526000908152604090205460ff1681565b60405190151581526020016100f8565b8281811580159061032357508082145b61038e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f696e76616c696420696e7075740000000000000000000000000000000000000060448201526064015b60405180910390fd5b60005b828110156104c757600760008888848181106103af576103af610ba6565b90506020020160208101906103c491906109c8565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040016000205460ff16610454576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f76546f6b656e206e6f74206c69737465640000000000000000000000000000006044820152606401610385565b84848281811061046657610466610ba6565b905060200201356001600089898581811061048357610483610ba6565b905060200201602081019061049891906109c8565b73ffffffffffffffffffffffffffffffffffffffff168152602081019190915260400160002055600101610391565b50505050505050565b600681815481106104e057600080fd5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b73ffffffffffffffffffffffffffffffffffffffff831660009081526007602052604081205460ff16610596576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f76546f6b656e206e6f74206c69737465640000000000000000000000000000006044820152606401610385565b846bffffffffffffffffffffffff166000036105e65773ffffffffffffffffffffffffffffffffffffffff841660009081526002602090815260408083208690556003909152902082905561063e565b6bffffffffffffffffffffffff8516600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff891680855290835281842088905593835260058252808320938352929052208290555b506000949350505050565b606060068054806020026020016040519081016040528092919081815260200182805480156106ae57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610683575b5050505050905090565b73ffffffffffffffffffffffffffffffffffffffff811660009081526007602052604090205460ff1615610748576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f76546f6b656e20616c7265616479206c697374656400000000000000000000006044820152606401610385565b73ffffffffffffffffffffffffffffffffffffffff16600081815260076020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091556006805491820181559091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169091179055565b8281811580159061080157508082145b610867576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f696e76616c696420696e707574000000000000000000000000000000000000006044820152606401610385565b60005b828110156104c7576007600088888481811061088857610888610ba6565b905060200201602081019061089d91906109c8565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040016000205460ff1661092d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f76546f6b656e206e6f74206c69737465640000000000000000000000000000006044820152606401610385565b84848281811061093f5761093f610ba6565b9050602002013560008089898581811061095b5761095b610ba6565b905060200201602081019061097091906109c8565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040016000205560010161086a565b803573ffffffffffffffffffffffffffffffffffffffff811681146109c357600080fd5b919050565b6000602082840312156109da57600080fd5b6109e38261099f565b9392505050565b60008083601f8401126109fc57600080fd5b50813567ffffffffffffffff811115610a1457600080fd5b6020830191508360208260051b8501011115610a2f57600080fd5b9250929050565b60008060008060408587031215610a4c57600080fd5b843567ffffffffffffffff80821115610a6457600080fd5b610a70888389016109ea565b90965094506020870135915080821115610a8957600080fd5b50610a96878288016109ea565b95989497509550505050565b600060208284031215610ab457600080fd5b5035919050565b80356bffffffffffffffffffffffff811681146109c357600080fd5b60008060408385031215610aea57600080fd5b610af383610abb565b9150610b016020840161099f565b90509250929050565b60008060008060808587031215610b2057600080fd5b610b2985610abb565b9350610b376020860161099f565b93969395505050506040820135916060013590565b6020808252825182820181905260009190848201906040850190845b81811015610b9a57835173ffffffffffffffffffffffffffffffffffffffff1683529284019291840191600101610b68565b50909695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea26469706673582212201856626f9a9f80f6801ea2a3cedce6d6fb5291cfe2e5a3aeead97af9deef1cc064736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC0B DUP1 PUSH2 0x1F PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xC9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8E8F294B GT PUSH2 0x81 JUMPI DUP1 PUSH4 0xCAB4F84C GT PUSH2 0x5B JUMPI DUP1 PUSH4 0xCAB4F84C EQ PUSH2 0x2BA JUMPI DUP1 PUSH4 0xD136AF44 EQ PUSH2 0x2CD JUMPI DUP1 PUSH4 0xD571C311 EQ PUSH2 0x2E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8E8F294B EQ PUSH2 0x239 JUMPI DUP1 PUSH4 0x9159B177 EQ PUSH2 0x292 JUMPI DUP1 PUSH4 0xB0772D0B EQ PUSH2 0x2A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1F3CEFB5 GT PUSH2 0xB2 JUMPI DUP1 PUSH4 0x1F3CEFB5 EQ PUSH2 0x116 JUMPI DUP1 PUSH4 0x3093C11E EQ PUSH2 0x14E JUMPI DUP1 PUSH4 0x4A584432 EQ PUSH2 0x219 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2C3BCBB EQ PUSH2 0xCE JUMPI DUP1 PUSH4 0x186DB48F EQ PUSH2 0x101 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEE PUSH2 0xDC CALLDATASIZE PUSH1 0x4 PUSH2 0x9C8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP2 SWAP1 MSTORE SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x114 PUSH2 0x10F CALLDATASIZE PUSH1 0x4 PUSH2 0xA36 JUMP JUMPDEST PUSH2 0x313 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x129 PUSH2 0x124 CALLDATASIZE PUSH1 0x4 PUSH2 0xAA2 JUMP JUMPDEST PUSH2 0x4D0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF8 JUMP JUMPDEST PUSH2 0x1CD PUSH2 0x15C CALLDATASIZE PUSH1 0x4 PUSH2 0xAD7 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP7 AND DUP1 DUP6 MSTORE PUSH1 0x4 DUP5 MSTORE DUP3 DUP6 KECCAK256 DUP7 DUP7 MSTORE DUP5 MSTORE DUP3 DUP6 KECCAK256 SLOAD SWAP1 DUP6 MSTORE PUSH1 0x5 DUP5 MSTORE DUP3 DUP6 KECCAK256 SWAP6 DUP6 MSTORE SWAP5 SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD PUSH1 0xFF SWAP1 SWAP2 AND SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 DUP4 SWAP2 PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP8 ISZERO ISZERO DUP9 MSTORE PUSH1 0x20 DUP9 ADD SWAP7 SWAP1 SWAP7 MSTORE SWAP4 ISZERO ISZERO SWAP5 DUP7 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x60 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x80 DUP5 ADD MSTORE PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND PUSH1 0xA0 DUP4 ADD MSTORE ISZERO ISZERO PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 ADD PUSH2 0xF8 JUMP JUMPDEST PUSH2 0xEE PUSH2 0x227 CALLDATASIZE PUSH1 0x4 PUSH2 0x9C8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1CD PUSH2 0x247 CALLDATASIZE PUSH1 0x4 PUSH2 0x9C8 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x2 DUP4 MSTORE DUP2 DUP5 KECCAK256 SLOAD PUSH1 0x3 SWAP1 SWAP4 MSTORE SWAP1 DUP4 KECCAK256 SLOAD PUSH1 0xFF SWAP1 SWAP2 AND SWAP4 SWAP2 SWAP3 SWAP2 DUP3 SWAP1 DUP2 SWAP1 PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH2 0xEE PUSH2 0x2A0 CALLDATASIZE PUSH1 0x4 PUSH2 0xB0A JUMP JUMPDEST PUSH2 0x507 JUMP JUMPDEST PUSH2 0x2AD PUSH2 0x649 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF8 SWAP2 SWAP1 PUSH2 0xB4C JUMP JUMPDEST PUSH2 0x114 PUSH2 0x2C8 CALLDATASIZE PUSH1 0x4 PUSH2 0x9C8 JUMP JUMPDEST PUSH2 0x6B8 JUMP JUMPDEST PUSH2 0x114 PUSH2 0x2DB CALLDATASIZE PUSH1 0x4 PUSH2 0xA36 JUMP JUMPDEST PUSH2 0x7F1 JUMP JUMPDEST PUSH2 0x303 PUSH2 0x2EE CALLDATASIZE PUSH1 0x4 PUSH2 0x9C8 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF8 JUMP JUMPDEST DUP3 DUP2 DUP2 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x323 JUMPI POP DUP1 DUP3 EQ JUMPDEST PUSH2 0x38E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C696420696E70757400000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x4C7 JUMPI PUSH1 0x7 PUSH1 0x0 DUP9 DUP9 DUP5 DUP2 DUP2 LT PUSH2 0x3AF JUMPI PUSH2 0x3AF PUSH2 0xBA6 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x3C4 SWAP2 SWAP1 PUSH2 0x9C8 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x454 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x76546F6B656E206E6F74206C6973746564000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x385 JUMP JUMPDEST DUP5 DUP5 DUP3 DUP2 DUP2 LT PUSH2 0x466 JUMPI PUSH2 0x466 PUSH2 0xBA6 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x0 DUP10 DUP10 DUP6 DUP2 DUP2 LT PUSH2 0x483 JUMPI PUSH2 0x483 PUSH2 0xBA6 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x498 SWAP2 SWAP1 PUSH2 0x9C8 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SSTORE PUSH1 0x1 ADD PUSH2 0x391 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x4E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x596 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x76546F6B656E206E6F74206C6973746564000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x385 JUMP JUMPDEST DUP5 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 SUB PUSH2 0x5E6 JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 SWAP1 SSTORE PUSH1 0x3 SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP3 SWAP1 SSTORE PUSH2 0x63E JUMP JUMPDEST PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP10 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE DUP2 DUP5 KECCAK256 DUP9 SWAP1 SSTORE SWAP4 DUP4 MSTORE PUSH1 0x5 DUP3 MSTORE DUP1 DUP4 KECCAK256 SWAP4 DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 DUP3 SWAP1 SSTORE JUMPDEST POP PUSH1 0x0 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x6 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x6AE JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x683 JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x748 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x76546F6B656E20616C7265616479206C69737465640000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x385 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND PUSH1 0x1 SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x6 DUP1 SLOAD SWAP2 DUP3 ADD DUP2 SSTORE SWAP1 SWAP2 MSTORE PUSH32 0xF652222313E28459528D920B65115C16C04F3EFC82AAEDC97BE59F3F377C0D3F ADD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST DUP3 DUP2 DUP2 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x801 JUMPI POP DUP1 DUP3 EQ JUMPDEST PUSH2 0x867 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C696420696E70757400000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x385 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x4C7 JUMPI PUSH1 0x7 PUSH1 0x0 DUP9 DUP9 DUP5 DUP2 DUP2 LT PUSH2 0x888 JUMPI PUSH2 0x888 PUSH2 0xBA6 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x89D SWAP2 SWAP1 PUSH2 0x9C8 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x92D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x76546F6B656E206E6F74206C6973746564000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x385 JUMP JUMPDEST DUP5 DUP5 DUP3 DUP2 DUP2 LT PUSH2 0x93F JUMPI PUSH2 0x93F PUSH2 0xBA6 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x0 DUP1 DUP10 DUP10 DUP6 DUP2 DUP2 LT PUSH2 0x95B JUMPI PUSH2 0x95B PUSH2 0xBA6 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x970 SWAP2 SWAP1 PUSH2 0x9C8 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SSTORE PUSH1 0x1 ADD PUSH2 0x86A JUMP JUMPDEST DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x9C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x9DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9E3 DUP3 PUSH2 0x99F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x9FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xA14 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0xA2F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xA4C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xA64 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA70 DUP9 DUP4 DUP10 ADD PUSH2 0x9EA JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0xA89 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA96 DUP8 DUP3 DUP9 ADD PUSH2 0x9EA JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xAB4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x9C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xAEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAF3 DUP4 PUSH2 0xABB JUMP JUMPDEST SWAP2 POP PUSH2 0xB01 PUSH1 0x20 DUP5 ADD PUSH2 0x99F JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xB20 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB29 DUP6 PUSH2 0xABB JUMP JUMPDEST SWAP4 POP PUSH2 0xB37 PUSH1 0x20 DUP7 ADD PUSH2 0x99F JUMP JUMPDEST SWAP4 SWAP7 SWAP4 SWAP6 POP POP POP POP PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xB9A JUMPI DUP4 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0xB68 JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 XOR JUMP PUSH3 0x6F9A9F DUP1 0xF6 DUP1 0x1E LOG2 LOG3 0xCE 0xDC 0xE6 0xD6 0xFB MSTORE SWAP2 0xCF 0xE2 0xE5 LOG3 0xAE 0xEA 0xD9 PUSH27 0xF9DEEF1CC064736F6C634300081900330000000000000000000000 ","sourceMap":"136:6629:80:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@allVTokens_20819":{"entryPoint":1232,"id":20819,"parameterSlots":0,"returnSlots":0},"@borrowCaps_20790":{"entryPoint":null,"id":20790,"parameterSlots":0,"returnSlots":0},"@getAllMarkets_21171":{"entryPoint":1609,"id":21171,"parameterSlots":0,"returnSlots":1},"@markets_21099":{"entryPoint":null,"id":21099,"parameterSlots":1,"returnSlots":7},"@poolMarkets_21160":{"entryPoint":null,"id":21160,"parameterSlots":2,"returnSlots":7},"@setCollateralFactor_21044":{"entryPoint":1287,"id":21044,"parameterSlots":4,"returnSlots":1},"@setMarketBorrowCaps_20986":{"entryPoint":787,"id":20986,"parameterSlots":4,"returnSlots":0},"@setMarketSupplyCaps_20921":{"entryPoint":2033,"id":20921,"parameterSlots":4,"returnSlots":0},"@supplyCaps_20785":{"entryPoint":null,"id":20785,"parameterSlots":0,"returnSlots":0},"@supportMarket_20856":{"entryPoint":1720,"id":20856,"parameterSlots":1,"returnSlots":0},"@vTokenListed_20824":{"entryPoint":null,"id":20824,"parameterSlots":0,"returnSlots":0},"abi_decode_address":{"entryPoint":2463,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_array_address_dyn_calldata":{"entryPoint":2538,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address":{"entryPoint":2504,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr":{"entryPoint":2614,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint256":{"entryPoint":2722,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint96t_address":{"entryPoint":2775,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint96t_addresst_uint256t_uint256":{"entryPoint":2826,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_uint96":{"entryPoint":2747,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_array$_t_contract$_ICorePoolVToken_$20370_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":2892,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool_t_uint256_t_bool_t_uint256_t_uint256_t_uint96_t_bool__to_t_bool_t_uint256_t_bool_t_uint256_t_uint256_t_uint96_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":8,"returnSlots":1},"abi_encode_tuple_t_contract$_ICorePoolVToken_$20370__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5c13dd817de0f8201c35587e146ee1e71ecba9055e5e2b82d1180351af16b685__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_84ea8cbff7c4e00b3f00b9454b5ce4aa857457c6267822e855dbbcd0fcbc4cee__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_dbab81719f15ade78f76dcdbf7cff531fc5f9822fe7e8466ffdd2feb23510f3b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x32":{"entryPoint":2982,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:5826:97","nodeType":"YulBlock","src":"0:5826:97","statements":[{"nativeSrc":"6:3:97","nodeType":"YulBlock","src":"6:3:97","statements":[]},{"body":{"nativeSrc":"63:147:97","nodeType":"YulBlock","src":"63:147:97","statements":[{"nativeSrc":"73:29:97","nodeType":"YulAssignment","src":"73:29:97","value":{"arguments":[{"name":"offset","nativeSrc":"95:6:97","nodeType":"YulIdentifier","src":"95:6:97"}],"functionName":{"name":"calldataload","nativeSrc":"82:12:97","nodeType":"YulIdentifier","src":"82:12:97"},"nativeSrc":"82:20:97","nodeType":"YulFunctionCall","src":"82:20:97"},"variableNames":[{"name":"value","nativeSrc":"73:5:97","nodeType":"YulIdentifier","src":"73:5:97"}]},{"body":{"nativeSrc":"188:16:97","nodeType":"YulBlock","src":"188:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"197:1:97","nodeType":"YulLiteral","src":"197:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"200:1:97","nodeType":"YulLiteral","src":"200:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"190:6:97","nodeType":"YulIdentifier","src":"190:6:97"},"nativeSrc":"190:12:97","nodeType":"YulFunctionCall","src":"190:12:97"},"nativeSrc":"190:12:97","nodeType":"YulExpressionStatement","src":"190:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"124:5:97","nodeType":"YulIdentifier","src":"124:5:97"},{"arguments":[{"name":"value","nativeSrc":"135:5:97","nodeType":"YulIdentifier","src":"135:5:97"},{"kind":"number","nativeSrc":"142:42:97","nodeType":"YulLiteral","src":"142:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"131:3:97","nodeType":"YulIdentifier","src":"131:3:97"},"nativeSrc":"131:54:97","nodeType":"YulFunctionCall","src":"131:54:97"}],"functionName":{"name":"eq","nativeSrc":"121:2:97","nodeType":"YulIdentifier","src":"121:2:97"},"nativeSrc":"121:65:97","nodeType":"YulFunctionCall","src":"121:65:97"}],"functionName":{"name":"iszero","nativeSrc":"114:6:97","nodeType":"YulIdentifier","src":"114:6:97"},"nativeSrc":"114:73:97","nodeType":"YulFunctionCall","src":"114:73:97"},"nativeSrc":"111:93:97","nodeType":"YulIf","src":"111:93:97"}]},"name":"abi_decode_address","nativeSrc":"14:196:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"42:6:97","nodeType":"YulTypedName","src":"42:6:97","type":""}],"returnVariables":[{"name":"value","nativeSrc":"53:5:97","nodeType":"YulTypedName","src":"53:5:97","type":""}],"src":"14:196:97"},{"body":{"nativeSrc":"285:116:97","nodeType":"YulBlock","src":"285:116:97","statements":[{"body":{"nativeSrc":"331:16:97","nodeType":"YulBlock","src":"331:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"340:1:97","nodeType":"YulLiteral","src":"340:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"343:1:97","nodeType":"YulLiteral","src":"343:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"333:6:97","nodeType":"YulIdentifier","src":"333:6:97"},"nativeSrc":"333:12:97","nodeType":"YulFunctionCall","src":"333:12:97"},"nativeSrc":"333:12:97","nodeType":"YulExpressionStatement","src":"333:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"306:7:97","nodeType":"YulIdentifier","src":"306:7:97"},{"name":"headStart","nativeSrc":"315:9:97","nodeType":"YulIdentifier","src":"315:9:97"}],"functionName":{"name":"sub","nativeSrc":"302:3:97","nodeType":"YulIdentifier","src":"302:3:97"},"nativeSrc":"302:23:97","nodeType":"YulFunctionCall","src":"302:23:97"},{"kind":"number","nativeSrc":"327:2:97","nodeType":"YulLiteral","src":"327:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"298:3:97","nodeType":"YulIdentifier","src":"298:3:97"},"nativeSrc":"298:32:97","nodeType":"YulFunctionCall","src":"298:32:97"},"nativeSrc":"295:52:97","nodeType":"YulIf","src":"295:52:97"},{"nativeSrc":"356:39:97","nodeType":"YulAssignment","src":"356:39:97","value":{"arguments":[{"name":"headStart","nativeSrc":"385:9:97","nodeType":"YulIdentifier","src":"385:9:97"}],"functionName":{"name":"abi_decode_address","nativeSrc":"366:18:97","nodeType":"YulIdentifier","src":"366:18:97"},"nativeSrc":"366:29:97","nodeType":"YulFunctionCall","src":"366:29:97"},"variableNames":[{"name":"value0","nativeSrc":"356:6:97","nodeType":"YulIdentifier","src":"356:6:97"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"215:186:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"251:9:97","nodeType":"YulTypedName","src":"251:9:97","type":""},{"name":"dataEnd","nativeSrc":"262:7:97","nodeType":"YulTypedName","src":"262:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"274:6:97","nodeType":"YulTypedName","src":"274:6:97","type":""}],"src":"215:186:97"},{"body":{"nativeSrc":"507:76:97","nodeType":"YulBlock","src":"507:76:97","statements":[{"nativeSrc":"517:26:97","nodeType":"YulAssignment","src":"517:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"529:9:97","nodeType":"YulIdentifier","src":"529:9:97"},{"kind":"number","nativeSrc":"540:2:97","nodeType":"YulLiteral","src":"540:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"525:3:97","nodeType":"YulIdentifier","src":"525:3:97"},"nativeSrc":"525:18:97","nodeType":"YulFunctionCall","src":"525:18:97"},"variableNames":[{"name":"tail","nativeSrc":"517:4:97","nodeType":"YulIdentifier","src":"517:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"559:9:97","nodeType":"YulIdentifier","src":"559:9:97"},{"name":"value0","nativeSrc":"570:6:97","nodeType":"YulIdentifier","src":"570:6:97"}],"functionName":{"name":"mstore","nativeSrc":"552:6:97","nodeType":"YulIdentifier","src":"552:6:97"},"nativeSrc":"552:25:97","nodeType":"YulFunctionCall","src":"552:25:97"},"nativeSrc":"552:25:97","nodeType":"YulExpressionStatement","src":"552:25:97"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"406:177:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"476:9:97","nodeType":"YulTypedName","src":"476:9:97","type":""},{"name":"value0","nativeSrc":"487:6:97","nodeType":"YulTypedName","src":"487:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"498:4:97","nodeType":"YulTypedName","src":"498:4:97","type":""}],"src":"406:177:97"},{"body":{"nativeSrc":"672:283:97","nodeType":"YulBlock","src":"672:283:97","statements":[{"body":{"nativeSrc":"721:16:97","nodeType":"YulBlock","src":"721:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"730:1:97","nodeType":"YulLiteral","src":"730:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"733:1:97","nodeType":"YulLiteral","src":"733:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"723:6:97","nodeType":"YulIdentifier","src":"723:6:97"},"nativeSrc":"723:12:97","nodeType":"YulFunctionCall","src":"723:12:97"},"nativeSrc":"723:12:97","nodeType":"YulExpressionStatement","src":"723:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"700:6:97","nodeType":"YulIdentifier","src":"700:6:97"},{"kind":"number","nativeSrc":"708:4:97","nodeType":"YulLiteral","src":"708:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"696:3:97","nodeType":"YulIdentifier","src":"696:3:97"},"nativeSrc":"696:17:97","nodeType":"YulFunctionCall","src":"696:17:97"},{"name":"end","nativeSrc":"715:3:97","nodeType":"YulIdentifier","src":"715:3:97"}],"functionName":{"name":"slt","nativeSrc":"692:3:97","nodeType":"YulIdentifier","src":"692:3:97"},"nativeSrc":"692:27:97","nodeType":"YulFunctionCall","src":"692:27:97"}],"functionName":{"name":"iszero","nativeSrc":"685:6:97","nodeType":"YulIdentifier","src":"685:6:97"},"nativeSrc":"685:35:97","nodeType":"YulFunctionCall","src":"685:35:97"},"nativeSrc":"682:55:97","nodeType":"YulIf","src":"682:55:97"},{"nativeSrc":"746:30:97","nodeType":"YulAssignment","src":"746:30:97","value":{"arguments":[{"name":"offset","nativeSrc":"769:6:97","nodeType":"YulIdentifier","src":"769:6:97"}],"functionName":{"name":"calldataload","nativeSrc":"756:12:97","nodeType":"YulIdentifier","src":"756:12:97"},"nativeSrc":"756:20:97","nodeType":"YulFunctionCall","src":"756:20:97"},"variableNames":[{"name":"length","nativeSrc":"746:6:97","nodeType":"YulIdentifier","src":"746:6:97"}]},{"body":{"nativeSrc":"819:16:97","nodeType":"YulBlock","src":"819:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"828:1:97","nodeType":"YulLiteral","src":"828:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"831:1:97","nodeType":"YulLiteral","src":"831:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"821:6:97","nodeType":"YulIdentifier","src":"821:6:97"},"nativeSrc":"821:12:97","nodeType":"YulFunctionCall","src":"821:12:97"},"nativeSrc":"821:12:97","nodeType":"YulExpressionStatement","src":"821:12:97"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"791:6:97","nodeType":"YulIdentifier","src":"791:6:97"},{"kind":"number","nativeSrc":"799:18:97","nodeType":"YulLiteral","src":"799:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"788:2:97","nodeType":"YulIdentifier","src":"788:2:97"},"nativeSrc":"788:30:97","nodeType":"YulFunctionCall","src":"788:30:97"},"nativeSrc":"785:50:97","nodeType":"YulIf","src":"785:50:97"},{"nativeSrc":"844:29:97","nodeType":"YulAssignment","src":"844:29:97","value":{"arguments":[{"name":"offset","nativeSrc":"860:6:97","nodeType":"YulIdentifier","src":"860:6:97"},{"kind":"number","nativeSrc":"868:4:97","nodeType":"YulLiteral","src":"868:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"856:3:97","nodeType":"YulIdentifier","src":"856:3:97"},"nativeSrc":"856:17:97","nodeType":"YulFunctionCall","src":"856:17:97"},"variableNames":[{"name":"arrayPos","nativeSrc":"844:8:97","nodeType":"YulIdentifier","src":"844:8:97"}]},{"body":{"nativeSrc":"933:16:97","nodeType":"YulBlock","src":"933:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"942:1:97","nodeType":"YulLiteral","src":"942:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"945:1:97","nodeType":"YulLiteral","src":"945:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"935:6:97","nodeType":"YulIdentifier","src":"935:6:97"},"nativeSrc":"935:12:97","nodeType":"YulFunctionCall","src":"935:12:97"},"nativeSrc":"935:12:97","nodeType":"YulExpressionStatement","src":"935:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"896:6:97","nodeType":"YulIdentifier","src":"896:6:97"},{"arguments":[{"kind":"number","nativeSrc":"908:1:97","nodeType":"YulLiteral","src":"908:1:97","type":"","value":"5"},{"name":"length","nativeSrc":"911:6:97","nodeType":"YulIdentifier","src":"911:6:97"}],"functionName":{"name":"shl","nativeSrc":"904:3:97","nodeType":"YulIdentifier","src":"904:3:97"},"nativeSrc":"904:14:97","nodeType":"YulFunctionCall","src":"904:14:97"}],"functionName":{"name":"add","nativeSrc":"892:3:97","nodeType":"YulIdentifier","src":"892:3:97"},"nativeSrc":"892:27:97","nodeType":"YulFunctionCall","src":"892:27:97"},{"kind":"number","nativeSrc":"921:4:97","nodeType":"YulLiteral","src":"921:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"888:3:97","nodeType":"YulIdentifier","src":"888:3:97"},"nativeSrc":"888:38:97","nodeType":"YulFunctionCall","src":"888:38:97"},{"name":"end","nativeSrc":"928:3:97","nodeType":"YulIdentifier","src":"928:3:97"}],"functionName":{"name":"gt","nativeSrc":"885:2:97","nodeType":"YulIdentifier","src":"885:2:97"},"nativeSrc":"885:47:97","nodeType":"YulFunctionCall","src":"885:47:97"},"nativeSrc":"882:67:97","nodeType":"YulIf","src":"882:67:97"}]},"name":"abi_decode_array_address_dyn_calldata","nativeSrc":"588:367:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"635:6:97","nodeType":"YulTypedName","src":"635:6:97","type":""},{"name":"end","nativeSrc":"643:3:97","nodeType":"YulTypedName","src":"643:3:97","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"651:8:97","nodeType":"YulTypedName","src":"651:8:97","type":""},{"name":"length","nativeSrc":"661:6:97","nodeType":"YulTypedName","src":"661:6:97","type":""}],"src":"588:367:97"},{"body":{"nativeSrc":"1117:616:97","nodeType":"YulBlock","src":"1117:616:97","statements":[{"body":{"nativeSrc":"1163:16:97","nodeType":"YulBlock","src":"1163:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1172:1:97","nodeType":"YulLiteral","src":"1172:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1175:1:97","nodeType":"YulLiteral","src":"1175:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1165:6:97","nodeType":"YulIdentifier","src":"1165:6:97"},"nativeSrc":"1165:12:97","nodeType":"YulFunctionCall","src":"1165:12:97"},"nativeSrc":"1165:12:97","nodeType":"YulExpressionStatement","src":"1165:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1138:7:97","nodeType":"YulIdentifier","src":"1138:7:97"},{"name":"headStart","nativeSrc":"1147:9:97","nodeType":"YulIdentifier","src":"1147:9:97"}],"functionName":{"name":"sub","nativeSrc":"1134:3:97","nodeType":"YulIdentifier","src":"1134:3:97"},"nativeSrc":"1134:23:97","nodeType":"YulFunctionCall","src":"1134:23:97"},{"kind":"number","nativeSrc":"1159:2:97","nodeType":"YulLiteral","src":"1159:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"1130:3:97","nodeType":"YulIdentifier","src":"1130:3:97"},"nativeSrc":"1130:32:97","nodeType":"YulFunctionCall","src":"1130:32:97"},"nativeSrc":"1127:52:97","nodeType":"YulIf","src":"1127:52:97"},{"nativeSrc":"1188:37:97","nodeType":"YulVariableDeclaration","src":"1188:37:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1215:9:97","nodeType":"YulIdentifier","src":"1215:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"1202:12:97","nodeType":"YulIdentifier","src":"1202:12:97"},"nativeSrc":"1202:23:97","nodeType":"YulFunctionCall","src":"1202:23:97"},"variables":[{"name":"offset","nativeSrc":"1192:6:97","nodeType":"YulTypedName","src":"1192:6:97","type":""}]},{"nativeSrc":"1234:28:97","nodeType":"YulVariableDeclaration","src":"1234:28:97","value":{"kind":"number","nativeSrc":"1244:18:97","nodeType":"YulLiteral","src":"1244:18:97","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"1238:2:97","nodeType":"YulTypedName","src":"1238:2:97","type":""}]},{"body":{"nativeSrc":"1289:16:97","nodeType":"YulBlock","src":"1289:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1298:1:97","nodeType":"YulLiteral","src":"1298:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1301:1:97","nodeType":"YulLiteral","src":"1301:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1291:6:97","nodeType":"YulIdentifier","src":"1291:6:97"},"nativeSrc":"1291:12:97","nodeType":"YulFunctionCall","src":"1291:12:97"},"nativeSrc":"1291:12:97","nodeType":"YulExpressionStatement","src":"1291:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"1277:6:97","nodeType":"YulIdentifier","src":"1277:6:97"},{"name":"_1","nativeSrc":"1285:2:97","nodeType":"YulIdentifier","src":"1285:2:97"}],"functionName":{"name":"gt","nativeSrc":"1274:2:97","nodeType":"YulIdentifier","src":"1274:2:97"},"nativeSrc":"1274:14:97","nodeType":"YulFunctionCall","src":"1274:14:97"},"nativeSrc":"1271:34:97","nodeType":"YulIf","src":"1271:34:97"},{"nativeSrc":"1314:96:97","nodeType":"YulVariableDeclaration","src":"1314:96:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1382:9:97","nodeType":"YulIdentifier","src":"1382:9:97"},{"name":"offset","nativeSrc":"1393:6:97","nodeType":"YulIdentifier","src":"1393:6:97"}],"functionName":{"name":"add","nativeSrc":"1378:3:97","nodeType":"YulIdentifier","src":"1378:3:97"},"nativeSrc":"1378:22:97","nodeType":"YulFunctionCall","src":"1378:22:97"},{"name":"dataEnd","nativeSrc":"1402:7:97","nodeType":"YulIdentifier","src":"1402:7:97"}],"functionName":{"name":"abi_decode_array_address_dyn_calldata","nativeSrc":"1340:37:97","nodeType":"YulIdentifier","src":"1340:37:97"},"nativeSrc":"1340:70:97","nodeType":"YulFunctionCall","src":"1340:70:97"},"variables":[{"name":"value0_1","nativeSrc":"1318:8:97","nodeType":"YulTypedName","src":"1318:8:97","type":""},{"name":"value1_1","nativeSrc":"1328:8:97","nodeType":"YulTypedName","src":"1328:8:97","type":""}]},{"nativeSrc":"1419:18:97","nodeType":"YulAssignment","src":"1419:18:97","value":{"name":"value0_1","nativeSrc":"1429:8:97","nodeType":"YulIdentifier","src":"1429:8:97"},"variableNames":[{"name":"value0","nativeSrc":"1419:6:97","nodeType":"YulIdentifier","src":"1419:6:97"}]},{"nativeSrc":"1446:18:97","nodeType":"YulAssignment","src":"1446:18:97","value":{"name":"value1_1","nativeSrc":"1456:8:97","nodeType":"YulIdentifier","src":"1456:8:97"},"variableNames":[{"name":"value1","nativeSrc":"1446:6:97","nodeType":"YulIdentifier","src":"1446:6:97"}]},{"nativeSrc":"1473:48:97","nodeType":"YulVariableDeclaration","src":"1473:48:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1506:9:97","nodeType":"YulIdentifier","src":"1506:9:97"},{"kind":"number","nativeSrc":"1517:2:97","nodeType":"YulLiteral","src":"1517:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1502:3:97","nodeType":"YulIdentifier","src":"1502:3:97"},"nativeSrc":"1502:18:97","nodeType":"YulFunctionCall","src":"1502:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"1489:12:97","nodeType":"YulIdentifier","src":"1489:12:97"},"nativeSrc":"1489:32:97","nodeType":"YulFunctionCall","src":"1489:32:97"},"variables":[{"name":"offset_1","nativeSrc":"1477:8:97","nodeType":"YulTypedName","src":"1477:8:97","type":""}]},{"body":{"nativeSrc":"1550:16:97","nodeType":"YulBlock","src":"1550:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1559:1:97","nodeType":"YulLiteral","src":"1559:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1562:1:97","nodeType":"YulLiteral","src":"1562:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1552:6:97","nodeType":"YulIdentifier","src":"1552:6:97"},"nativeSrc":"1552:12:97","nodeType":"YulFunctionCall","src":"1552:12:97"},"nativeSrc":"1552:12:97","nodeType":"YulExpressionStatement","src":"1552:12:97"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"1536:8:97","nodeType":"YulIdentifier","src":"1536:8:97"},{"name":"_1","nativeSrc":"1546:2:97","nodeType":"YulIdentifier","src":"1546:2:97"}],"functionName":{"name":"gt","nativeSrc":"1533:2:97","nodeType":"YulIdentifier","src":"1533:2:97"},"nativeSrc":"1533:16:97","nodeType":"YulFunctionCall","src":"1533:16:97"},"nativeSrc":"1530:36:97","nodeType":"YulIf","src":"1530:36:97"},{"nativeSrc":"1575:98:97","nodeType":"YulVariableDeclaration","src":"1575:98:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1643:9:97","nodeType":"YulIdentifier","src":"1643:9:97"},{"name":"offset_1","nativeSrc":"1654:8:97","nodeType":"YulIdentifier","src":"1654:8:97"}],"functionName":{"name":"add","nativeSrc":"1639:3:97","nodeType":"YulIdentifier","src":"1639:3:97"},"nativeSrc":"1639:24:97","nodeType":"YulFunctionCall","src":"1639:24:97"},{"name":"dataEnd","nativeSrc":"1665:7:97","nodeType":"YulIdentifier","src":"1665:7:97"}],"functionName":{"name":"abi_decode_array_address_dyn_calldata","nativeSrc":"1601:37:97","nodeType":"YulIdentifier","src":"1601:37:97"},"nativeSrc":"1601:72:97","nodeType":"YulFunctionCall","src":"1601:72:97"},"variables":[{"name":"value2_1","nativeSrc":"1579:8:97","nodeType":"YulTypedName","src":"1579:8:97","type":""},{"name":"value3_1","nativeSrc":"1589:8:97","nodeType":"YulTypedName","src":"1589:8:97","type":""}]},{"nativeSrc":"1682:18:97","nodeType":"YulAssignment","src":"1682:18:97","value":{"name":"value2_1","nativeSrc":"1692:8:97","nodeType":"YulIdentifier","src":"1692:8:97"},"variableNames":[{"name":"value2","nativeSrc":"1682:6:97","nodeType":"YulIdentifier","src":"1682:6:97"}]},{"nativeSrc":"1709:18:97","nodeType":"YulAssignment","src":"1709:18:97","value":{"name":"value3_1","nativeSrc":"1719:8:97","nodeType":"YulIdentifier","src":"1719:8:97"},"variableNames":[{"name":"value3","nativeSrc":"1709:6:97","nodeType":"YulIdentifier","src":"1709:6:97"}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr","nativeSrc":"960:773:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1059:9:97","nodeType":"YulTypedName","src":"1059:9:97","type":""},{"name":"dataEnd","nativeSrc":"1070:7:97","nodeType":"YulTypedName","src":"1070:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1082:6:97","nodeType":"YulTypedName","src":"1082:6:97","type":""},{"name":"value1","nativeSrc":"1090:6:97","nodeType":"YulTypedName","src":"1090:6:97","type":""},{"name":"value2","nativeSrc":"1098:6:97","nodeType":"YulTypedName","src":"1098:6:97","type":""},{"name":"value3","nativeSrc":"1106:6:97","nodeType":"YulTypedName","src":"1106:6:97","type":""}],"src":"960:773:97"},{"body":{"nativeSrc":"1808:110:97","nodeType":"YulBlock","src":"1808:110:97","statements":[{"body":{"nativeSrc":"1854:16:97","nodeType":"YulBlock","src":"1854:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1863:1:97","nodeType":"YulLiteral","src":"1863:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1866:1:97","nodeType":"YulLiteral","src":"1866:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1856:6:97","nodeType":"YulIdentifier","src":"1856:6:97"},"nativeSrc":"1856:12:97","nodeType":"YulFunctionCall","src":"1856:12:97"},"nativeSrc":"1856:12:97","nodeType":"YulExpressionStatement","src":"1856:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1829:7:97","nodeType":"YulIdentifier","src":"1829:7:97"},{"name":"headStart","nativeSrc":"1838:9:97","nodeType":"YulIdentifier","src":"1838:9:97"}],"functionName":{"name":"sub","nativeSrc":"1825:3:97","nodeType":"YulIdentifier","src":"1825:3:97"},"nativeSrc":"1825:23:97","nodeType":"YulFunctionCall","src":"1825:23:97"},{"kind":"number","nativeSrc":"1850:2:97","nodeType":"YulLiteral","src":"1850:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1821:3:97","nodeType":"YulIdentifier","src":"1821:3:97"},"nativeSrc":"1821:32:97","nodeType":"YulFunctionCall","src":"1821:32:97"},"nativeSrc":"1818:52:97","nodeType":"YulIf","src":"1818:52:97"},{"nativeSrc":"1879:33:97","nodeType":"YulAssignment","src":"1879:33:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1902:9:97","nodeType":"YulIdentifier","src":"1902:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"1889:12:97","nodeType":"YulIdentifier","src":"1889:12:97"},"nativeSrc":"1889:23:97","nodeType":"YulFunctionCall","src":"1889:23:97"},"variableNames":[{"name":"value0","nativeSrc":"1879:6:97","nodeType":"YulIdentifier","src":"1879:6:97"}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"1738:180:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1774:9:97","nodeType":"YulTypedName","src":"1774:9:97","type":""},{"name":"dataEnd","nativeSrc":"1785:7:97","nodeType":"YulTypedName","src":"1785:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1797:6:97","nodeType":"YulTypedName","src":"1797:6:97","type":""}],"src":"1738:180:97"},{"body":{"nativeSrc":"2049:125:97","nodeType":"YulBlock","src":"2049:125:97","statements":[{"nativeSrc":"2059:26:97","nodeType":"YulAssignment","src":"2059:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2071:9:97","nodeType":"YulIdentifier","src":"2071:9:97"},{"kind":"number","nativeSrc":"2082:2:97","nodeType":"YulLiteral","src":"2082:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2067:3:97","nodeType":"YulIdentifier","src":"2067:3:97"},"nativeSrc":"2067:18:97","nodeType":"YulFunctionCall","src":"2067:18:97"},"variableNames":[{"name":"tail","nativeSrc":"2059:4:97","nodeType":"YulIdentifier","src":"2059:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2101:9:97","nodeType":"YulIdentifier","src":"2101:9:97"},{"arguments":[{"name":"value0","nativeSrc":"2116:6:97","nodeType":"YulIdentifier","src":"2116:6:97"},{"kind":"number","nativeSrc":"2124:42:97","nodeType":"YulLiteral","src":"2124:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"2112:3:97","nodeType":"YulIdentifier","src":"2112:3:97"},"nativeSrc":"2112:55:97","nodeType":"YulFunctionCall","src":"2112:55:97"}],"functionName":{"name":"mstore","nativeSrc":"2094:6:97","nodeType":"YulIdentifier","src":"2094:6:97"},"nativeSrc":"2094:74:97","nodeType":"YulFunctionCall","src":"2094:74:97"},"nativeSrc":"2094:74:97","nodeType":"YulExpressionStatement","src":"2094:74:97"}]},"name":"abi_encode_tuple_t_contract$_ICorePoolVToken_$20370__to_t_address__fromStack_reversed","nativeSrc":"1923:251:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2018:9:97","nodeType":"YulTypedName","src":"2018:9:97","type":""},{"name":"value0","nativeSrc":"2029:6:97","nodeType":"YulTypedName","src":"2029:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2040:4:97","nodeType":"YulTypedName","src":"2040:4:97","type":""}],"src":"1923:251:97"},{"body":{"nativeSrc":"2227:131:97","nodeType":"YulBlock","src":"2227:131:97","statements":[{"nativeSrc":"2237:29:97","nodeType":"YulAssignment","src":"2237:29:97","value":{"arguments":[{"name":"offset","nativeSrc":"2259:6:97","nodeType":"YulIdentifier","src":"2259:6:97"}],"functionName":{"name":"calldataload","nativeSrc":"2246:12:97","nodeType":"YulIdentifier","src":"2246:12:97"},"nativeSrc":"2246:20:97","nodeType":"YulFunctionCall","src":"2246:20:97"},"variableNames":[{"name":"value","nativeSrc":"2237:5:97","nodeType":"YulIdentifier","src":"2237:5:97"}]},{"body":{"nativeSrc":"2336:16:97","nodeType":"YulBlock","src":"2336:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2345:1:97","nodeType":"YulLiteral","src":"2345:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"2348:1:97","nodeType":"YulLiteral","src":"2348:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2338:6:97","nodeType":"YulIdentifier","src":"2338:6:97"},"nativeSrc":"2338:12:97","nodeType":"YulFunctionCall","src":"2338:12:97"},"nativeSrc":"2338:12:97","nodeType":"YulExpressionStatement","src":"2338:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2288:5:97","nodeType":"YulIdentifier","src":"2288:5:97"},{"arguments":[{"name":"value","nativeSrc":"2299:5:97","nodeType":"YulIdentifier","src":"2299:5:97"},{"kind":"number","nativeSrc":"2306:26:97","nodeType":"YulLiteral","src":"2306:26:97","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"2295:3:97","nodeType":"YulIdentifier","src":"2295:3:97"},"nativeSrc":"2295:38:97","nodeType":"YulFunctionCall","src":"2295:38:97"}],"functionName":{"name":"eq","nativeSrc":"2285:2:97","nodeType":"YulIdentifier","src":"2285:2:97"},"nativeSrc":"2285:49:97","nodeType":"YulFunctionCall","src":"2285:49:97"}],"functionName":{"name":"iszero","nativeSrc":"2278:6:97","nodeType":"YulIdentifier","src":"2278:6:97"},"nativeSrc":"2278:57:97","nodeType":"YulFunctionCall","src":"2278:57:97"},"nativeSrc":"2275:77:97","nodeType":"YulIf","src":"2275:77:97"}]},"name":"abi_decode_uint96","nativeSrc":"2179:179:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2206:6:97","nodeType":"YulTypedName","src":"2206:6:97","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2217:5:97","nodeType":"YulTypedName","src":"2217:5:97","type":""}],"src":"2179:179:97"},{"body":{"nativeSrc":"2449:172:97","nodeType":"YulBlock","src":"2449:172:97","statements":[{"body":{"nativeSrc":"2495:16:97","nodeType":"YulBlock","src":"2495:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2504:1:97","nodeType":"YulLiteral","src":"2504:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"2507:1:97","nodeType":"YulLiteral","src":"2507:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2497:6:97","nodeType":"YulIdentifier","src":"2497:6:97"},"nativeSrc":"2497:12:97","nodeType":"YulFunctionCall","src":"2497:12:97"},"nativeSrc":"2497:12:97","nodeType":"YulExpressionStatement","src":"2497:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2470:7:97","nodeType":"YulIdentifier","src":"2470:7:97"},{"name":"headStart","nativeSrc":"2479:9:97","nodeType":"YulIdentifier","src":"2479:9:97"}],"functionName":{"name":"sub","nativeSrc":"2466:3:97","nodeType":"YulIdentifier","src":"2466:3:97"},"nativeSrc":"2466:23:97","nodeType":"YulFunctionCall","src":"2466:23:97"},{"kind":"number","nativeSrc":"2491:2:97","nodeType":"YulLiteral","src":"2491:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2462:3:97","nodeType":"YulIdentifier","src":"2462:3:97"},"nativeSrc":"2462:32:97","nodeType":"YulFunctionCall","src":"2462:32:97"},"nativeSrc":"2459:52:97","nodeType":"YulIf","src":"2459:52:97"},{"nativeSrc":"2520:38:97","nodeType":"YulAssignment","src":"2520:38:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2548:9:97","nodeType":"YulIdentifier","src":"2548:9:97"}],"functionName":{"name":"abi_decode_uint96","nativeSrc":"2530:17:97","nodeType":"YulIdentifier","src":"2530:17:97"},"nativeSrc":"2530:28:97","nodeType":"YulFunctionCall","src":"2530:28:97"},"variableNames":[{"name":"value0","nativeSrc":"2520:6:97","nodeType":"YulIdentifier","src":"2520:6:97"}]},{"nativeSrc":"2567:48:97","nodeType":"YulAssignment","src":"2567:48:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2600:9:97","nodeType":"YulIdentifier","src":"2600:9:97"},{"kind":"number","nativeSrc":"2611:2:97","nodeType":"YulLiteral","src":"2611:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2596:3:97","nodeType":"YulIdentifier","src":"2596:3:97"},"nativeSrc":"2596:18:97","nodeType":"YulFunctionCall","src":"2596:18:97"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2577:18:97","nodeType":"YulIdentifier","src":"2577:18:97"},"nativeSrc":"2577:38:97","nodeType":"YulFunctionCall","src":"2577:38:97"},"variableNames":[{"name":"value1","nativeSrc":"2567:6:97","nodeType":"YulIdentifier","src":"2567:6:97"}]}]},"name":"abi_decode_tuple_t_uint96t_address","nativeSrc":"2363:258:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2407:9:97","nodeType":"YulTypedName","src":"2407:9:97","type":""},{"name":"dataEnd","nativeSrc":"2418:7:97","nodeType":"YulTypedName","src":"2418:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2430:6:97","nodeType":"YulTypedName","src":"2430:6:97","type":""},{"name":"value1","nativeSrc":"2438:6:97","nodeType":"YulTypedName","src":"2438:6:97","type":""}],"src":"2363:258:97"},{"body":{"nativeSrc":"2875:419:97","nodeType":"YulBlock","src":"2875:419:97","statements":[{"nativeSrc":"2885:27:97","nodeType":"YulAssignment","src":"2885:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2897:9:97","nodeType":"YulIdentifier","src":"2897:9:97"},{"kind":"number","nativeSrc":"2908:3:97","nodeType":"YulLiteral","src":"2908:3:97","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"2893:3:97","nodeType":"YulIdentifier","src":"2893:3:97"},"nativeSrc":"2893:19:97","nodeType":"YulFunctionCall","src":"2893:19:97"},"variableNames":[{"name":"tail","nativeSrc":"2885:4:97","nodeType":"YulIdentifier","src":"2885:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2928:9:97","nodeType":"YulIdentifier","src":"2928:9:97"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"2953:6:97","nodeType":"YulIdentifier","src":"2953:6:97"}],"functionName":{"name":"iszero","nativeSrc":"2946:6:97","nodeType":"YulIdentifier","src":"2946:6:97"},"nativeSrc":"2946:14:97","nodeType":"YulFunctionCall","src":"2946:14:97"}],"functionName":{"name":"iszero","nativeSrc":"2939:6:97","nodeType":"YulIdentifier","src":"2939:6:97"},"nativeSrc":"2939:22:97","nodeType":"YulFunctionCall","src":"2939:22:97"}],"functionName":{"name":"mstore","nativeSrc":"2921:6:97","nodeType":"YulIdentifier","src":"2921:6:97"},"nativeSrc":"2921:41:97","nodeType":"YulFunctionCall","src":"2921:41:97"},"nativeSrc":"2921:41:97","nodeType":"YulExpressionStatement","src":"2921:41:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2982:9:97","nodeType":"YulIdentifier","src":"2982:9:97"},{"kind":"number","nativeSrc":"2993:2:97","nodeType":"YulLiteral","src":"2993:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2978:3:97","nodeType":"YulIdentifier","src":"2978:3:97"},"nativeSrc":"2978:18:97","nodeType":"YulFunctionCall","src":"2978:18:97"},{"name":"value1","nativeSrc":"2998:6:97","nodeType":"YulIdentifier","src":"2998:6:97"}],"functionName":{"name":"mstore","nativeSrc":"2971:6:97","nodeType":"YulIdentifier","src":"2971:6:97"},"nativeSrc":"2971:34:97","nodeType":"YulFunctionCall","src":"2971:34:97"},"nativeSrc":"2971:34:97","nodeType":"YulExpressionStatement","src":"2971:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3025:9:97","nodeType":"YulIdentifier","src":"3025:9:97"},{"kind":"number","nativeSrc":"3036:2:97","nodeType":"YulLiteral","src":"3036:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3021:3:97","nodeType":"YulIdentifier","src":"3021:3:97"},"nativeSrc":"3021:18:97","nodeType":"YulFunctionCall","src":"3021:18:97"},{"arguments":[{"arguments":[{"name":"value2","nativeSrc":"3055:6:97","nodeType":"YulIdentifier","src":"3055:6:97"}],"functionName":{"name":"iszero","nativeSrc":"3048:6:97","nodeType":"YulIdentifier","src":"3048:6:97"},"nativeSrc":"3048:14:97","nodeType":"YulFunctionCall","src":"3048:14:97"}],"functionName":{"name":"iszero","nativeSrc":"3041:6:97","nodeType":"YulIdentifier","src":"3041:6:97"},"nativeSrc":"3041:22:97","nodeType":"YulFunctionCall","src":"3041:22:97"}],"functionName":{"name":"mstore","nativeSrc":"3014:6:97","nodeType":"YulIdentifier","src":"3014:6:97"},"nativeSrc":"3014:50:97","nodeType":"YulFunctionCall","src":"3014:50:97"},"nativeSrc":"3014:50:97","nodeType":"YulExpressionStatement","src":"3014:50:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3084:9:97","nodeType":"YulIdentifier","src":"3084:9:97"},{"kind":"number","nativeSrc":"3095:2:97","nodeType":"YulLiteral","src":"3095:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3080:3:97","nodeType":"YulIdentifier","src":"3080:3:97"},"nativeSrc":"3080:18:97","nodeType":"YulFunctionCall","src":"3080:18:97"},{"name":"value3","nativeSrc":"3100:6:97","nodeType":"YulIdentifier","src":"3100:6:97"}],"functionName":{"name":"mstore","nativeSrc":"3073:6:97","nodeType":"YulIdentifier","src":"3073:6:97"},"nativeSrc":"3073:34:97","nodeType":"YulFunctionCall","src":"3073:34:97"},"nativeSrc":"3073:34:97","nodeType":"YulExpressionStatement","src":"3073:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3127:9:97","nodeType":"YulIdentifier","src":"3127:9:97"},{"kind":"number","nativeSrc":"3138:3:97","nodeType":"YulLiteral","src":"3138:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"3123:3:97","nodeType":"YulIdentifier","src":"3123:3:97"},"nativeSrc":"3123:19:97","nodeType":"YulFunctionCall","src":"3123:19:97"},{"name":"value4","nativeSrc":"3144:6:97","nodeType":"YulIdentifier","src":"3144:6:97"}],"functionName":{"name":"mstore","nativeSrc":"3116:6:97","nodeType":"YulIdentifier","src":"3116:6:97"},"nativeSrc":"3116:35:97","nodeType":"YulFunctionCall","src":"3116:35:97"},"nativeSrc":"3116:35:97","nodeType":"YulExpressionStatement","src":"3116:35:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3171:9:97","nodeType":"YulIdentifier","src":"3171:9:97"},{"kind":"number","nativeSrc":"3182:3:97","nodeType":"YulLiteral","src":"3182:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"3167:3:97","nodeType":"YulIdentifier","src":"3167:3:97"},"nativeSrc":"3167:19:97","nodeType":"YulFunctionCall","src":"3167:19:97"},{"arguments":[{"name":"value5","nativeSrc":"3192:6:97","nodeType":"YulIdentifier","src":"3192:6:97"},{"kind":"number","nativeSrc":"3200:26:97","nodeType":"YulLiteral","src":"3200:26:97","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"3188:3:97","nodeType":"YulIdentifier","src":"3188:3:97"},"nativeSrc":"3188:39:97","nodeType":"YulFunctionCall","src":"3188:39:97"}],"functionName":{"name":"mstore","nativeSrc":"3160:6:97","nodeType":"YulIdentifier","src":"3160:6:97"},"nativeSrc":"3160:68:97","nodeType":"YulFunctionCall","src":"3160:68:97"},"nativeSrc":"3160:68:97","nodeType":"YulExpressionStatement","src":"3160:68:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3248:9:97","nodeType":"YulIdentifier","src":"3248:9:97"},{"kind":"number","nativeSrc":"3259:3:97","nodeType":"YulLiteral","src":"3259:3:97","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"3244:3:97","nodeType":"YulIdentifier","src":"3244:3:97"},"nativeSrc":"3244:19:97","nodeType":"YulFunctionCall","src":"3244:19:97"},{"arguments":[{"arguments":[{"name":"value6","nativeSrc":"3279:6:97","nodeType":"YulIdentifier","src":"3279:6:97"}],"functionName":{"name":"iszero","nativeSrc":"3272:6:97","nodeType":"YulIdentifier","src":"3272:6:97"},"nativeSrc":"3272:14:97","nodeType":"YulFunctionCall","src":"3272:14:97"}],"functionName":{"name":"iszero","nativeSrc":"3265:6:97","nodeType":"YulIdentifier","src":"3265:6:97"},"nativeSrc":"3265:22:97","nodeType":"YulFunctionCall","src":"3265:22:97"}],"functionName":{"name":"mstore","nativeSrc":"3237:6:97","nodeType":"YulIdentifier","src":"3237:6:97"},"nativeSrc":"3237:51:97","nodeType":"YulFunctionCall","src":"3237:51:97"},"nativeSrc":"3237:51:97","nodeType":"YulExpressionStatement","src":"3237:51:97"}]},"name":"abi_encode_tuple_t_bool_t_uint256_t_bool_t_uint256_t_uint256_t_uint96_t_bool__to_t_bool_t_uint256_t_bool_t_uint256_t_uint256_t_uint96_t_bool__fromStack_reversed","nativeSrc":"2626:668:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2796:9:97","nodeType":"YulTypedName","src":"2796:9:97","type":""},{"name":"value6","nativeSrc":"2807:6:97","nodeType":"YulTypedName","src":"2807:6:97","type":""},{"name":"value5","nativeSrc":"2815:6:97","nodeType":"YulTypedName","src":"2815:6:97","type":""},{"name":"value4","nativeSrc":"2823:6:97","nodeType":"YulTypedName","src":"2823:6:97","type":""},{"name":"value3","nativeSrc":"2831:6:97","nodeType":"YulTypedName","src":"2831:6:97","type":""},{"name":"value2","nativeSrc":"2839:6:97","nodeType":"YulTypedName","src":"2839:6:97","type":""},{"name":"value1","nativeSrc":"2847:6:97","nodeType":"YulTypedName","src":"2847:6:97","type":""},{"name":"value0","nativeSrc":"2855:6:97","nodeType":"YulTypedName","src":"2855:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2866:4:97","nodeType":"YulTypedName","src":"2866:4:97","type":""}],"src":"2626:668:97"},{"body":{"nativeSrc":"3419:275:97","nodeType":"YulBlock","src":"3419:275:97","statements":[{"body":{"nativeSrc":"3466:16:97","nodeType":"YulBlock","src":"3466:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3475:1:97","nodeType":"YulLiteral","src":"3475:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"3478:1:97","nodeType":"YulLiteral","src":"3478:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3468:6:97","nodeType":"YulIdentifier","src":"3468:6:97"},"nativeSrc":"3468:12:97","nodeType":"YulFunctionCall","src":"3468:12:97"},"nativeSrc":"3468:12:97","nodeType":"YulExpressionStatement","src":"3468:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3440:7:97","nodeType":"YulIdentifier","src":"3440:7:97"},{"name":"headStart","nativeSrc":"3449:9:97","nodeType":"YulIdentifier","src":"3449:9:97"}],"functionName":{"name":"sub","nativeSrc":"3436:3:97","nodeType":"YulIdentifier","src":"3436:3:97"},"nativeSrc":"3436:23:97","nodeType":"YulFunctionCall","src":"3436:23:97"},{"kind":"number","nativeSrc":"3461:3:97","nodeType":"YulLiteral","src":"3461:3:97","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"3432:3:97","nodeType":"YulIdentifier","src":"3432:3:97"},"nativeSrc":"3432:33:97","nodeType":"YulFunctionCall","src":"3432:33:97"},"nativeSrc":"3429:53:97","nodeType":"YulIf","src":"3429:53:97"},{"nativeSrc":"3491:38:97","nodeType":"YulAssignment","src":"3491:38:97","value":{"arguments":[{"name":"headStart","nativeSrc":"3519:9:97","nodeType":"YulIdentifier","src":"3519:9:97"}],"functionName":{"name":"abi_decode_uint96","nativeSrc":"3501:17:97","nodeType":"YulIdentifier","src":"3501:17:97"},"nativeSrc":"3501:28:97","nodeType":"YulFunctionCall","src":"3501:28:97"},"variableNames":[{"name":"value0","nativeSrc":"3491:6:97","nodeType":"YulIdentifier","src":"3491:6:97"}]},{"nativeSrc":"3538:48:97","nodeType":"YulAssignment","src":"3538:48:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3571:9:97","nodeType":"YulIdentifier","src":"3571:9:97"},{"kind":"number","nativeSrc":"3582:2:97","nodeType":"YulLiteral","src":"3582:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3567:3:97","nodeType":"YulIdentifier","src":"3567:3:97"},"nativeSrc":"3567:18:97","nodeType":"YulFunctionCall","src":"3567:18:97"}],"functionName":{"name":"abi_decode_address","nativeSrc":"3548:18:97","nodeType":"YulIdentifier","src":"3548:18:97"},"nativeSrc":"3548:38:97","nodeType":"YulFunctionCall","src":"3548:38:97"},"variableNames":[{"name":"value1","nativeSrc":"3538:6:97","nodeType":"YulIdentifier","src":"3538:6:97"}]},{"nativeSrc":"3595:42:97","nodeType":"YulAssignment","src":"3595:42:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3622:9:97","nodeType":"YulIdentifier","src":"3622:9:97"},{"kind":"number","nativeSrc":"3633:2:97","nodeType":"YulLiteral","src":"3633:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3618:3:97","nodeType":"YulIdentifier","src":"3618:3:97"},"nativeSrc":"3618:18:97","nodeType":"YulFunctionCall","src":"3618:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"3605:12:97","nodeType":"YulIdentifier","src":"3605:12:97"},"nativeSrc":"3605:32:97","nodeType":"YulFunctionCall","src":"3605:32:97"},"variableNames":[{"name":"value2","nativeSrc":"3595:6:97","nodeType":"YulIdentifier","src":"3595:6:97"}]},{"nativeSrc":"3646:42:97","nodeType":"YulAssignment","src":"3646:42:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3673:9:97","nodeType":"YulIdentifier","src":"3673:9:97"},{"kind":"number","nativeSrc":"3684:2:97","nodeType":"YulLiteral","src":"3684:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3669:3:97","nodeType":"YulIdentifier","src":"3669:3:97"},"nativeSrc":"3669:18:97","nodeType":"YulFunctionCall","src":"3669:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"3656:12:97","nodeType":"YulIdentifier","src":"3656:12:97"},"nativeSrc":"3656:32:97","nodeType":"YulFunctionCall","src":"3656:32:97"},"variableNames":[{"name":"value3","nativeSrc":"3646:6:97","nodeType":"YulIdentifier","src":"3646:6:97"}]}]},"name":"abi_decode_tuple_t_uint96t_addresst_uint256t_uint256","nativeSrc":"3299:395:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3361:9:97","nodeType":"YulTypedName","src":"3361:9:97","type":""},{"name":"dataEnd","nativeSrc":"3372:7:97","nodeType":"YulTypedName","src":"3372:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3384:6:97","nodeType":"YulTypedName","src":"3384:6:97","type":""},{"name":"value1","nativeSrc":"3392:6:97","nodeType":"YulTypedName","src":"3392:6:97","type":""},{"name":"value2","nativeSrc":"3400:6:97","nodeType":"YulTypedName","src":"3400:6:97","type":""},{"name":"value3","nativeSrc":"3408:6:97","nodeType":"YulTypedName","src":"3408:6:97","type":""}],"src":"3299:395:97"},{"body":{"nativeSrc":"3875:530:97","nodeType":"YulBlock","src":"3875:530:97","statements":[{"nativeSrc":"3885:12:97","nodeType":"YulVariableDeclaration","src":"3885:12:97","value":{"kind":"number","nativeSrc":"3895:2:97","nodeType":"YulLiteral","src":"3895:2:97","type":"","value":"32"},"variables":[{"name":"_1","nativeSrc":"3889:2:97","nodeType":"YulTypedName","src":"3889:2:97","type":""}]},{"nativeSrc":"3906:32:97","nodeType":"YulVariableDeclaration","src":"3906:32:97","value":{"arguments":[{"name":"headStart","nativeSrc":"3924:9:97","nodeType":"YulIdentifier","src":"3924:9:97"},{"kind":"number","nativeSrc":"3935:2:97","nodeType":"YulLiteral","src":"3935:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3920:3:97","nodeType":"YulIdentifier","src":"3920:3:97"},"nativeSrc":"3920:18:97","nodeType":"YulFunctionCall","src":"3920:18:97"},"variables":[{"name":"tail_1","nativeSrc":"3910:6:97","nodeType":"YulTypedName","src":"3910:6:97","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3954:9:97","nodeType":"YulIdentifier","src":"3954:9:97"},{"kind":"number","nativeSrc":"3965:2:97","nodeType":"YulLiteral","src":"3965:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"3947:6:97","nodeType":"YulIdentifier","src":"3947:6:97"},"nativeSrc":"3947:21:97","nodeType":"YulFunctionCall","src":"3947:21:97"},"nativeSrc":"3947:21:97","nodeType":"YulExpressionStatement","src":"3947:21:97"},{"nativeSrc":"3977:17:97","nodeType":"YulVariableDeclaration","src":"3977:17:97","value":{"name":"tail_1","nativeSrc":"3988:6:97","nodeType":"YulIdentifier","src":"3988:6:97"},"variables":[{"name":"pos","nativeSrc":"3981:3:97","nodeType":"YulTypedName","src":"3981:3:97","type":""}]},{"nativeSrc":"4003:27:97","nodeType":"YulVariableDeclaration","src":"4003:27:97","value":{"arguments":[{"name":"value0","nativeSrc":"4023:6:97","nodeType":"YulIdentifier","src":"4023:6:97"}],"functionName":{"name":"mload","nativeSrc":"4017:5:97","nodeType":"YulIdentifier","src":"4017:5:97"},"nativeSrc":"4017:13:97","nodeType":"YulFunctionCall","src":"4017:13:97"},"variables":[{"name":"length","nativeSrc":"4007:6:97","nodeType":"YulTypedName","src":"4007:6:97","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nativeSrc":"4046:6:97","nodeType":"YulIdentifier","src":"4046:6:97"},{"name":"length","nativeSrc":"4054:6:97","nodeType":"YulIdentifier","src":"4054:6:97"}],"functionName":{"name":"mstore","nativeSrc":"4039:6:97","nodeType":"YulIdentifier","src":"4039:6:97"},"nativeSrc":"4039:22:97","nodeType":"YulFunctionCall","src":"4039:22:97"},"nativeSrc":"4039:22:97","nodeType":"YulExpressionStatement","src":"4039:22:97"},{"nativeSrc":"4070:25:97","nodeType":"YulAssignment","src":"4070:25:97","value":{"arguments":[{"name":"headStart","nativeSrc":"4081:9:97","nodeType":"YulIdentifier","src":"4081:9:97"},{"kind":"number","nativeSrc":"4092:2:97","nodeType":"YulLiteral","src":"4092:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4077:3:97","nodeType":"YulIdentifier","src":"4077:3:97"},"nativeSrc":"4077:18:97","nodeType":"YulFunctionCall","src":"4077:18:97"},"variableNames":[{"name":"pos","nativeSrc":"4070:3:97","nodeType":"YulIdentifier","src":"4070:3:97"}]},{"nativeSrc":"4104:29:97","nodeType":"YulVariableDeclaration","src":"4104:29:97","value":{"arguments":[{"name":"value0","nativeSrc":"4122:6:97","nodeType":"YulIdentifier","src":"4122:6:97"},{"kind":"number","nativeSrc":"4130:2:97","nodeType":"YulLiteral","src":"4130:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4118:3:97","nodeType":"YulIdentifier","src":"4118:3:97"},"nativeSrc":"4118:15:97","nodeType":"YulFunctionCall","src":"4118:15:97"},"variables":[{"name":"srcPtr","nativeSrc":"4108:6:97","nodeType":"YulTypedName","src":"4108:6:97","type":""}]},{"nativeSrc":"4142:10:97","nodeType":"YulVariableDeclaration","src":"4142:10:97","value":{"kind":"number","nativeSrc":"4151:1:97","nodeType":"YulLiteral","src":"4151:1:97","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"4146:1:97","nodeType":"YulTypedName","src":"4146:1:97","type":""}]},{"body":{"nativeSrc":"4210:169:97","nodeType":"YulBlock","src":"4210:169:97","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4231:3:97","nodeType":"YulIdentifier","src":"4231:3:97"},{"arguments":[{"arguments":[{"name":"srcPtr","nativeSrc":"4246:6:97","nodeType":"YulIdentifier","src":"4246:6:97"}],"functionName":{"name":"mload","nativeSrc":"4240:5:97","nodeType":"YulIdentifier","src":"4240:5:97"},"nativeSrc":"4240:13:97","nodeType":"YulFunctionCall","src":"4240:13:97"},{"kind":"number","nativeSrc":"4255:42:97","nodeType":"YulLiteral","src":"4255:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"4236:3:97","nodeType":"YulIdentifier","src":"4236:3:97"},"nativeSrc":"4236:62:97","nodeType":"YulFunctionCall","src":"4236:62:97"}],"functionName":{"name":"mstore","nativeSrc":"4224:6:97","nodeType":"YulIdentifier","src":"4224:6:97"},"nativeSrc":"4224:75:97","nodeType":"YulFunctionCall","src":"4224:75:97"},"nativeSrc":"4224:75:97","nodeType":"YulExpressionStatement","src":"4224:75:97"},{"nativeSrc":"4312:19:97","nodeType":"YulAssignment","src":"4312:19:97","value":{"arguments":[{"name":"pos","nativeSrc":"4323:3:97","nodeType":"YulIdentifier","src":"4323:3:97"},{"name":"_1","nativeSrc":"4328:2:97","nodeType":"YulIdentifier","src":"4328:2:97"}],"functionName":{"name":"add","nativeSrc":"4319:3:97","nodeType":"YulIdentifier","src":"4319:3:97"},"nativeSrc":"4319:12:97","nodeType":"YulFunctionCall","src":"4319:12:97"},"variableNames":[{"name":"pos","nativeSrc":"4312:3:97","nodeType":"YulIdentifier","src":"4312:3:97"}]},{"nativeSrc":"4344:25:97","nodeType":"YulAssignment","src":"4344:25:97","value":{"arguments":[{"name":"srcPtr","nativeSrc":"4358:6:97","nodeType":"YulIdentifier","src":"4358:6:97"},{"name":"_1","nativeSrc":"4366:2:97","nodeType":"YulIdentifier","src":"4366:2:97"}],"functionName":{"name":"add","nativeSrc":"4354:3:97","nodeType":"YulIdentifier","src":"4354:3:97"},"nativeSrc":"4354:15:97","nodeType":"YulFunctionCall","src":"4354:15:97"},"variableNames":[{"name":"srcPtr","nativeSrc":"4344:6:97","nodeType":"YulIdentifier","src":"4344:6:97"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"4172:1:97","nodeType":"YulIdentifier","src":"4172:1:97"},{"name":"length","nativeSrc":"4175:6:97","nodeType":"YulIdentifier","src":"4175:6:97"}],"functionName":{"name":"lt","nativeSrc":"4169:2:97","nodeType":"YulIdentifier","src":"4169:2:97"},"nativeSrc":"4169:13:97","nodeType":"YulFunctionCall","src":"4169:13:97"},"nativeSrc":"4161:218:97","nodeType":"YulForLoop","post":{"nativeSrc":"4183:18:97","nodeType":"YulBlock","src":"4183:18:97","statements":[{"nativeSrc":"4185:14:97","nodeType":"YulAssignment","src":"4185:14:97","value":{"arguments":[{"name":"i","nativeSrc":"4194:1:97","nodeType":"YulIdentifier","src":"4194:1:97"},{"kind":"number","nativeSrc":"4197:1:97","nodeType":"YulLiteral","src":"4197:1:97","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"4190:3:97","nodeType":"YulIdentifier","src":"4190:3:97"},"nativeSrc":"4190:9:97","nodeType":"YulFunctionCall","src":"4190:9:97"},"variableNames":[{"name":"i","nativeSrc":"4185:1:97","nodeType":"YulIdentifier","src":"4185:1:97"}]}]},"pre":{"nativeSrc":"4165:3:97","nodeType":"YulBlock","src":"4165:3:97","statements":[]},"src":"4161:218:97"},{"nativeSrc":"4388:11:97","nodeType":"YulAssignment","src":"4388:11:97","value":{"name":"pos","nativeSrc":"4396:3:97","nodeType":"YulIdentifier","src":"4396:3:97"},"variableNames":[{"name":"tail","nativeSrc":"4388:4:97","nodeType":"YulIdentifier","src":"4388:4:97"}]}]},"name":"abi_encode_tuple_t_array$_t_contract$_ICorePoolVToken_$20370_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed","nativeSrc":"3699:706:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3844:9:97","nodeType":"YulTypedName","src":"3844:9:97","type":""},{"name":"value0","nativeSrc":"3855:6:97","nodeType":"YulTypedName","src":"3855:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3866:4:97","nodeType":"YulTypedName","src":"3866:4:97","type":""}],"src":"3699:706:97"},{"body":{"nativeSrc":"4505:92:97","nodeType":"YulBlock","src":"4505:92:97","statements":[{"nativeSrc":"4515:26:97","nodeType":"YulAssignment","src":"4515:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"4527:9:97","nodeType":"YulIdentifier","src":"4527:9:97"},{"kind":"number","nativeSrc":"4538:2:97","nodeType":"YulLiteral","src":"4538:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4523:3:97","nodeType":"YulIdentifier","src":"4523:3:97"},"nativeSrc":"4523:18:97","nodeType":"YulFunctionCall","src":"4523:18:97"},"variableNames":[{"name":"tail","nativeSrc":"4515:4:97","nodeType":"YulIdentifier","src":"4515:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4557:9:97","nodeType":"YulIdentifier","src":"4557:9:97"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"4582:6:97","nodeType":"YulIdentifier","src":"4582:6:97"}],"functionName":{"name":"iszero","nativeSrc":"4575:6:97","nodeType":"YulIdentifier","src":"4575:6:97"},"nativeSrc":"4575:14:97","nodeType":"YulFunctionCall","src":"4575:14:97"}],"functionName":{"name":"iszero","nativeSrc":"4568:6:97","nodeType":"YulIdentifier","src":"4568:6:97"},"nativeSrc":"4568:22:97","nodeType":"YulFunctionCall","src":"4568:22:97"}],"functionName":{"name":"mstore","nativeSrc":"4550:6:97","nodeType":"YulIdentifier","src":"4550:6:97"},"nativeSrc":"4550:41:97","nodeType":"YulFunctionCall","src":"4550:41:97"},"nativeSrc":"4550:41:97","nodeType":"YulExpressionStatement","src":"4550:41:97"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"4410:187:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4474:9:97","nodeType":"YulTypedName","src":"4474:9:97","type":""},{"name":"value0","nativeSrc":"4485:6:97","nodeType":"YulTypedName","src":"4485:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4496:4:97","nodeType":"YulTypedName","src":"4496:4:97","type":""}],"src":"4410:187:97"},{"body":{"nativeSrc":"4776:163:97","nodeType":"YulBlock","src":"4776:163:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4793:9:97","nodeType":"YulIdentifier","src":"4793:9:97"},{"kind":"number","nativeSrc":"4804:2:97","nodeType":"YulLiteral","src":"4804:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"4786:6:97","nodeType":"YulIdentifier","src":"4786:6:97"},"nativeSrc":"4786:21:97","nodeType":"YulFunctionCall","src":"4786:21:97"},"nativeSrc":"4786:21:97","nodeType":"YulExpressionStatement","src":"4786:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4827:9:97","nodeType":"YulIdentifier","src":"4827:9:97"},{"kind":"number","nativeSrc":"4838:2:97","nodeType":"YulLiteral","src":"4838:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4823:3:97","nodeType":"YulIdentifier","src":"4823:3:97"},"nativeSrc":"4823:18:97","nodeType":"YulFunctionCall","src":"4823:18:97"},{"kind":"number","nativeSrc":"4843:2:97","nodeType":"YulLiteral","src":"4843:2:97","type":"","value":"13"}],"functionName":{"name":"mstore","nativeSrc":"4816:6:97","nodeType":"YulIdentifier","src":"4816:6:97"},"nativeSrc":"4816:30:97","nodeType":"YulFunctionCall","src":"4816:30:97"},"nativeSrc":"4816:30:97","nodeType":"YulExpressionStatement","src":"4816:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4866:9:97","nodeType":"YulIdentifier","src":"4866:9:97"},{"kind":"number","nativeSrc":"4877:2:97","nodeType":"YulLiteral","src":"4877:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4862:3:97","nodeType":"YulIdentifier","src":"4862:3:97"},"nativeSrc":"4862:18:97","nodeType":"YulFunctionCall","src":"4862:18:97"},{"hexValue":"696e76616c696420696e707574","kind":"string","nativeSrc":"4882:15:97","nodeType":"YulLiteral","src":"4882:15:97","type":"","value":"invalid input"}],"functionName":{"name":"mstore","nativeSrc":"4855:6:97","nodeType":"YulIdentifier","src":"4855:6:97"},"nativeSrc":"4855:43:97","nodeType":"YulFunctionCall","src":"4855:43:97"},"nativeSrc":"4855:43:97","nodeType":"YulExpressionStatement","src":"4855:43:97"},{"nativeSrc":"4907:26:97","nodeType":"YulAssignment","src":"4907:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"4919:9:97","nodeType":"YulIdentifier","src":"4919:9:97"},{"kind":"number","nativeSrc":"4930:2:97","nodeType":"YulLiteral","src":"4930:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4915:3:97","nodeType":"YulIdentifier","src":"4915:3:97"},"nativeSrc":"4915:18:97","nodeType":"YulFunctionCall","src":"4915:18:97"},"variableNames":[{"name":"tail","nativeSrc":"4907:4:97","nodeType":"YulIdentifier","src":"4907:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_dbab81719f15ade78f76dcdbf7cff531fc5f9822fe7e8466ffdd2feb23510f3b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"4602:337:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4753:9:97","nodeType":"YulTypedName","src":"4753:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4767:4:97","nodeType":"YulTypedName","src":"4767:4:97","type":""}],"src":"4602:337:97"},{"body":{"nativeSrc":"4976:152:97","nodeType":"YulBlock","src":"4976:152:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4993:1:97","nodeType":"YulLiteral","src":"4993:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"4996:77:97","nodeType":"YulLiteral","src":"4996:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"4986:6:97","nodeType":"YulIdentifier","src":"4986:6:97"},"nativeSrc":"4986:88:97","nodeType":"YulFunctionCall","src":"4986:88:97"},"nativeSrc":"4986:88:97","nodeType":"YulExpressionStatement","src":"4986:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5090:1:97","nodeType":"YulLiteral","src":"5090:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"5093:4:97","nodeType":"YulLiteral","src":"5093:4:97","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"5083:6:97","nodeType":"YulIdentifier","src":"5083:6:97"},"nativeSrc":"5083:15:97","nodeType":"YulFunctionCall","src":"5083:15:97"},"nativeSrc":"5083:15:97","nodeType":"YulExpressionStatement","src":"5083:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5114:1:97","nodeType":"YulLiteral","src":"5114:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"5117:4:97","nodeType":"YulLiteral","src":"5117:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5107:6:97","nodeType":"YulIdentifier","src":"5107:6:97"},"nativeSrc":"5107:15:97","nodeType":"YulFunctionCall","src":"5107:15:97"},"nativeSrc":"5107:15:97","nodeType":"YulExpressionStatement","src":"5107:15:97"}]},"name":"panic_error_0x32","nativeSrc":"4944:184:97","nodeType":"YulFunctionDefinition","src":"4944:184:97"},{"body":{"nativeSrc":"5307:167:97","nodeType":"YulBlock","src":"5307:167:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5324:9:97","nodeType":"YulIdentifier","src":"5324:9:97"},{"kind":"number","nativeSrc":"5335:2:97","nodeType":"YulLiteral","src":"5335:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"5317:6:97","nodeType":"YulIdentifier","src":"5317:6:97"},"nativeSrc":"5317:21:97","nodeType":"YulFunctionCall","src":"5317:21:97"},"nativeSrc":"5317:21:97","nodeType":"YulExpressionStatement","src":"5317:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5358:9:97","nodeType":"YulIdentifier","src":"5358:9:97"},{"kind":"number","nativeSrc":"5369:2:97","nodeType":"YulLiteral","src":"5369:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5354:3:97","nodeType":"YulIdentifier","src":"5354:3:97"},"nativeSrc":"5354:18:97","nodeType":"YulFunctionCall","src":"5354:18:97"},{"kind":"number","nativeSrc":"5374:2:97","nodeType":"YulLiteral","src":"5374:2:97","type":"","value":"17"}],"functionName":{"name":"mstore","nativeSrc":"5347:6:97","nodeType":"YulIdentifier","src":"5347:6:97"},"nativeSrc":"5347:30:97","nodeType":"YulFunctionCall","src":"5347:30:97"},"nativeSrc":"5347:30:97","nodeType":"YulExpressionStatement","src":"5347:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5397:9:97","nodeType":"YulIdentifier","src":"5397:9:97"},{"kind":"number","nativeSrc":"5408:2:97","nodeType":"YulLiteral","src":"5408:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5393:3:97","nodeType":"YulIdentifier","src":"5393:3:97"},"nativeSrc":"5393:18:97","nodeType":"YulFunctionCall","src":"5393:18:97"},{"hexValue":"76546f6b656e206e6f74206c6973746564","kind":"string","nativeSrc":"5413:19:97","nodeType":"YulLiteral","src":"5413:19:97","type":"","value":"vToken not listed"}],"functionName":{"name":"mstore","nativeSrc":"5386:6:97","nodeType":"YulIdentifier","src":"5386:6:97"},"nativeSrc":"5386:47:97","nodeType":"YulFunctionCall","src":"5386:47:97"},"nativeSrc":"5386:47:97","nodeType":"YulExpressionStatement","src":"5386:47:97"},{"nativeSrc":"5442:26:97","nodeType":"YulAssignment","src":"5442:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"5454:9:97","nodeType":"YulIdentifier","src":"5454:9:97"},{"kind":"number","nativeSrc":"5465:2:97","nodeType":"YulLiteral","src":"5465:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5450:3:97","nodeType":"YulIdentifier","src":"5450:3:97"},"nativeSrc":"5450:18:97","nodeType":"YulFunctionCall","src":"5450:18:97"},"variableNames":[{"name":"tail","nativeSrc":"5442:4:97","nodeType":"YulIdentifier","src":"5442:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_5c13dd817de0f8201c35587e146ee1e71ecba9055e5e2b82d1180351af16b685__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5133:341:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5284:9:97","nodeType":"YulTypedName","src":"5284:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5298:4:97","nodeType":"YulTypedName","src":"5298:4:97","type":""}],"src":"5133:341:97"},{"body":{"nativeSrc":"5653:171:97","nodeType":"YulBlock","src":"5653:171:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5670:9:97","nodeType":"YulIdentifier","src":"5670:9:97"},{"kind":"number","nativeSrc":"5681:2:97","nodeType":"YulLiteral","src":"5681:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"5663:6:97","nodeType":"YulIdentifier","src":"5663:6:97"},"nativeSrc":"5663:21:97","nodeType":"YulFunctionCall","src":"5663:21:97"},"nativeSrc":"5663:21:97","nodeType":"YulExpressionStatement","src":"5663:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5704:9:97","nodeType":"YulIdentifier","src":"5704:9:97"},{"kind":"number","nativeSrc":"5715:2:97","nodeType":"YulLiteral","src":"5715:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5700:3:97","nodeType":"YulIdentifier","src":"5700:3:97"},"nativeSrc":"5700:18:97","nodeType":"YulFunctionCall","src":"5700:18:97"},{"kind":"number","nativeSrc":"5720:2:97","nodeType":"YulLiteral","src":"5720:2:97","type":"","value":"21"}],"functionName":{"name":"mstore","nativeSrc":"5693:6:97","nodeType":"YulIdentifier","src":"5693:6:97"},"nativeSrc":"5693:30:97","nodeType":"YulFunctionCall","src":"5693:30:97"},"nativeSrc":"5693:30:97","nodeType":"YulExpressionStatement","src":"5693:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5743:9:97","nodeType":"YulIdentifier","src":"5743:9:97"},{"kind":"number","nativeSrc":"5754:2:97","nodeType":"YulLiteral","src":"5754:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5739:3:97","nodeType":"YulIdentifier","src":"5739:3:97"},"nativeSrc":"5739:18:97","nodeType":"YulFunctionCall","src":"5739:18:97"},{"hexValue":"76546f6b656e20616c7265616479206c6973746564","kind":"string","nativeSrc":"5759:23:97","nodeType":"YulLiteral","src":"5759:23:97","type":"","value":"vToken already listed"}],"functionName":{"name":"mstore","nativeSrc":"5732:6:97","nodeType":"YulIdentifier","src":"5732:6:97"},"nativeSrc":"5732:51:97","nodeType":"YulFunctionCall","src":"5732:51:97"},"nativeSrc":"5732:51:97","nodeType":"YulExpressionStatement","src":"5732:51:97"},{"nativeSrc":"5792:26:97","nodeType":"YulAssignment","src":"5792:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"5804:9:97","nodeType":"YulIdentifier","src":"5804:9:97"},{"kind":"number","nativeSrc":"5815:2:97","nodeType":"YulLiteral","src":"5815:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5800:3:97","nodeType":"YulIdentifier","src":"5800:3:97"},"nativeSrc":"5800:18:97","nodeType":"YulFunctionCall","src":"5800:18:97"},"variableNames":[{"name":"tail","nativeSrc":"5792:4:97","nodeType":"YulIdentifier","src":"5792:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_84ea8cbff7c4e00b3f00b9454b5ce4aa857457c6267822e855dbbcd0fcbc4cee__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5479:345:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5630:9:97","nodeType":"YulTypedName","src":"5630:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5644:4:97","nodeType":"YulTypedName","src":"5644:4:97","type":""}],"src":"5479:345:97"}]},"contents":"{\n    { }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_array_address_dyn_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, shl(5, length)), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset_1), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_encode_tuple_t_contract$_ICorePoolVToken_$20370__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_uint96(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_uint96t_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_uint96(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_bool_t_uint256_t_bool_t_uint256_t_uint256_t_uint96_t_bool__to_t_bool_t_uint256_t_bool_t_uint256_t_uint256_t_uint96_t_bool__fromStack_reversed(headStart, value6, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 224)\n        mstore(headStart, iszero(iszero(value0)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), iszero(iszero(value2)))\n        mstore(add(headStart, 96), value3)\n        mstore(add(headStart, 128), value4)\n        mstore(add(headStart, 160), and(value5, 0xffffffffffffffffffffffff))\n        mstore(add(headStart, 192), iszero(iszero(value6)))\n    }\n    function abi_decode_tuple_t_uint96t_addresst_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        value0 := abi_decode_uint96(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n        value3 := calldataload(add(headStart, 96))\n    }\n    function abi_encode_tuple_t_array$_t_contract$_ICorePoolVToken_$20370_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        let _1 := 32\n        let tail_1 := add(headStart, 32)\n        mstore(headStart, 32)\n        let pos := tail_1\n        let length := mload(value0)\n        mstore(tail_1, length)\n        pos := add(headStart, 64)\n        let srcPtr := add(value0, 32)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, and(mload(srcPtr), 0xffffffffffffffffffffffffffffffffffffffff))\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        tail := pos\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_stringliteral_dbab81719f15ade78f76dcdbf7cff531fc5f9822fe7e8466ffdd2feb23510f3b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 13)\n        mstore(add(headStart, 64), \"invalid input\")\n        tail := add(headStart, 96)\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_stringliteral_5c13dd817de0f8201c35587e146ee1e71ecba9055e5e2b82d1180351af16b685__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 17)\n        mstore(add(headStart, 64), \"vToken not listed\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_84ea8cbff7c4e00b3f00b9454b5ce4aa857457c6267822e855dbbcd0fcbc4cee__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 21)\n        mstore(add(headStart, 64), \"vToken already listed\")\n        tail := add(headStart, 96)\n    }\n}","id":97,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100c95760003560e01c80638e8f294b11610081578063cab4f84c1161005b578063cab4f84c146102ba578063d136af44146102cd578063d571c311146102e057600080fd5b80638e8f294b146102395780639159b17714610292578063b0772d0b146102a557600080fd5b80631f3cefb5116100b25780631f3cefb5146101165780633093c11e1461014e5780634a5844321461021957600080fd5b806302c3bcbb146100ce578063186db48f14610101575b600080fd5b6100ee6100dc3660046109c8565b60006020819052908152604090205481565b6040519081526020015b60405180910390f35b61011461010f366004610a36565b610313565b005b610129610124366004610aa2565b6104d0565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100f8565b6101cd61015c366004610ad7565b73ffffffffffffffffffffffffffffffffffffffff166000818152600760209081526040808320546bffffffffffffffffffffffff861680855260048452828520868652845282852054908552600584528285209585529490925282205460ff909116949293919290918391600190565b604080519715158852602088019690965293151594860194909452606085019190915260808401526bffffffffffffffffffffffff90911660a0830152151560c082015260e0016100f8565b6100ee6102273660046109c8565b60016020526000908152604090205481565b6101cd6102473660046109c8565b73ffffffffffffffffffffffffffffffffffffffff16600090815260076020908152604080832054600283528184205460039093529083205460ff9091169391929182908190600190565b6100ee6102a0366004610b0a565b610507565b6102ad610649565b6040516100f89190610b4c565b6101146102c83660046109c8565b6106b8565b6101146102db366004610a36565b6107f1565b6103036102ee3660046109c8565b60076020526000908152604090205460ff1681565b60405190151581526020016100f8565b8281811580159061032357508082145b61038e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f696e76616c696420696e7075740000000000000000000000000000000000000060448201526064015b60405180910390fd5b60005b828110156104c757600760008888848181106103af576103af610ba6565b90506020020160208101906103c491906109c8565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040016000205460ff16610454576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f76546f6b656e206e6f74206c69737465640000000000000000000000000000006044820152606401610385565b84848281811061046657610466610ba6565b905060200201356001600089898581811061048357610483610ba6565b905060200201602081019061049891906109c8565b73ffffffffffffffffffffffffffffffffffffffff168152602081019190915260400160002055600101610391565b50505050505050565b600681815481106104e057600080fd5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b73ffffffffffffffffffffffffffffffffffffffff831660009081526007602052604081205460ff16610596576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f76546f6b656e206e6f74206c69737465640000000000000000000000000000006044820152606401610385565b846bffffffffffffffffffffffff166000036105e65773ffffffffffffffffffffffffffffffffffffffff841660009081526002602090815260408083208690556003909152902082905561063e565b6bffffffffffffffffffffffff8516600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff891680855290835281842088905593835260058252808320938352929052208290555b506000949350505050565b606060068054806020026020016040519081016040528092919081815260200182805480156106ae57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610683575b5050505050905090565b73ffffffffffffffffffffffffffffffffffffffff811660009081526007602052604090205460ff1615610748576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f76546f6b656e20616c7265616479206c697374656400000000000000000000006044820152606401610385565b73ffffffffffffffffffffffffffffffffffffffff16600081815260076020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091556006805491820181559091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169091179055565b8281811580159061080157508082145b610867576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f696e76616c696420696e707574000000000000000000000000000000000000006044820152606401610385565b60005b828110156104c7576007600088888481811061088857610888610ba6565b905060200201602081019061089d91906109c8565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040016000205460ff1661092d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f76546f6b656e206e6f74206c69737465640000000000000000000000000000006044820152606401610385565b84848281811061093f5761093f610ba6565b9050602002013560008089898581811061095b5761095b610ba6565b905060200201602081019061097091906109c8565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040016000205560010161086a565b803573ffffffffffffffffffffffffffffffffffffffff811681146109c357600080fd5b919050565b6000602082840312156109da57600080fd5b6109e38261099f565b9392505050565b60008083601f8401126109fc57600080fd5b50813567ffffffffffffffff811115610a1457600080fd5b6020830191508360208260051b8501011115610a2f57600080fd5b9250929050565b60008060008060408587031215610a4c57600080fd5b843567ffffffffffffffff80821115610a6457600080fd5b610a70888389016109ea565b90965094506020870135915080821115610a8957600080fd5b50610a96878288016109ea565b95989497509550505050565b600060208284031215610ab457600080fd5b5035919050565b80356bffffffffffffffffffffffff811681146109c357600080fd5b60008060408385031215610aea57600080fd5b610af383610abb565b9150610b016020840161099f565b90509250929050565b60008060008060808587031215610b2057600080fd5b610b2985610abb565b9350610b376020860161099f565b93969395505050506040820135916060013590565b6020808252825182820181905260009190848201906040850190845b81811015610b9a57835173ffffffffffffffffffffffffffffffffffffffff1683529284019291840191600101610b68565b50909695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea26469706673582212201856626f9a9f80f6801ea2a3cedce6d6fb5291cfe2e5a3aeead97af9deef1cc064736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xC9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8E8F294B GT PUSH2 0x81 JUMPI DUP1 PUSH4 0xCAB4F84C GT PUSH2 0x5B JUMPI DUP1 PUSH4 0xCAB4F84C EQ PUSH2 0x2BA JUMPI DUP1 PUSH4 0xD136AF44 EQ PUSH2 0x2CD JUMPI DUP1 PUSH4 0xD571C311 EQ PUSH2 0x2E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8E8F294B EQ PUSH2 0x239 JUMPI DUP1 PUSH4 0x9159B177 EQ PUSH2 0x292 JUMPI DUP1 PUSH4 0xB0772D0B EQ PUSH2 0x2A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1F3CEFB5 GT PUSH2 0xB2 JUMPI DUP1 PUSH4 0x1F3CEFB5 EQ PUSH2 0x116 JUMPI DUP1 PUSH4 0x3093C11E EQ PUSH2 0x14E JUMPI DUP1 PUSH4 0x4A584432 EQ PUSH2 0x219 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2C3BCBB EQ PUSH2 0xCE JUMPI DUP1 PUSH4 0x186DB48F EQ PUSH2 0x101 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEE PUSH2 0xDC CALLDATASIZE PUSH1 0x4 PUSH2 0x9C8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP2 SWAP1 MSTORE SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x114 PUSH2 0x10F CALLDATASIZE PUSH1 0x4 PUSH2 0xA36 JUMP JUMPDEST PUSH2 0x313 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x129 PUSH2 0x124 CALLDATASIZE PUSH1 0x4 PUSH2 0xAA2 JUMP JUMPDEST PUSH2 0x4D0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF8 JUMP JUMPDEST PUSH2 0x1CD PUSH2 0x15C CALLDATASIZE PUSH1 0x4 PUSH2 0xAD7 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP7 AND DUP1 DUP6 MSTORE PUSH1 0x4 DUP5 MSTORE DUP3 DUP6 KECCAK256 DUP7 DUP7 MSTORE DUP5 MSTORE DUP3 DUP6 KECCAK256 SLOAD SWAP1 DUP6 MSTORE PUSH1 0x5 DUP5 MSTORE DUP3 DUP6 KECCAK256 SWAP6 DUP6 MSTORE SWAP5 SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD PUSH1 0xFF SWAP1 SWAP2 AND SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 DUP4 SWAP2 PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP8 ISZERO ISZERO DUP9 MSTORE PUSH1 0x20 DUP9 ADD SWAP7 SWAP1 SWAP7 MSTORE SWAP4 ISZERO ISZERO SWAP5 DUP7 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x60 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x80 DUP5 ADD MSTORE PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND PUSH1 0xA0 DUP4 ADD MSTORE ISZERO ISZERO PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 ADD PUSH2 0xF8 JUMP JUMPDEST PUSH2 0xEE PUSH2 0x227 CALLDATASIZE PUSH1 0x4 PUSH2 0x9C8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1CD PUSH2 0x247 CALLDATASIZE PUSH1 0x4 PUSH2 0x9C8 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x2 DUP4 MSTORE DUP2 DUP5 KECCAK256 SLOAD PUSH1 0x3 SWAP1 SWAP4 MSTORE SWAP1 DUP4 KECCAK256 SLOAD PUSH1 0xFF SWAP1 SWAP2 AND SWAP4 SWAP2 SWAP3 SWAP2 DUP3 SWAP1 DUP2 SWAP1 PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH2 0xEE PUSH2 0x2A0 CALLDATASIZE PUSH1 0x4 PUSH2 0xB0A JUMP JUMPDEST PUSH2 0x507 JUMP JUMPDEST PUSH2 0x2AD PUSH2 0x649 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF8 SWAP2 SWAP1 PUSH2 0xB4C JUMP JUMPDEST PUSH2 0x114 PUSH2 0x2C8 CALLDATASIZE PUSH1 0x4 PUSH2 0x9C8 JUMP JUMPDEST PUSH2 0x6B8 JUMP JUMPDEST PUSH2 0x114 PUSH2 0x2DB CALLDATASIZE PUSH1 0x4 PUSH2 0xA36 JUMP JUMPDEST PUSH2 0x7F1 JUMP JUMPDEST PUSH2 0x303 PUSH2 0x2EE CALLDATASIZE PUSH1 0x4 PUSH2 0x9C8 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF8 JUMP JUMPDEST DUP3 DUP2 DUP2 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x323 JUMPI POP DUP1 DUP3 EQ JUMPDEST PUSH2 0x38E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C696420696E70757400000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x4C7 JUMPI PUSH1 0x7 PUSH1 0x0 DUP9 DUP9 DUP5 DUP2 DUP2 LT PUSH2 0x3AF JUMPI PUSH2 0x3AF PUSH2 0xBA6 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x3C4 SWAP2 SWAP1 PUSH2 0x9C8 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x454 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x76546F6B656E206E6F74206C6973746564000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x385 JUMP JUMPDEST DUP5 DUP5 DUP3 DUP2 DUP2 LT PUSH2 0x466 JUMPI PUSH2 0x466 PUSH2 0xBA6 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x0 DUP10 DUP10 DUP6 DUP2 DUP2 LT PUSH2 0x483 JUMPI PUSH2 0x483 PUSH2 0xBA6 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x498 SWAP2 SWAP1 PUSH2 0x9C8 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SSTORE PUSH1 0x1 ADD PUSH2 0x391 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x4E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x596 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x76546F6B656E206E6F74206C6973746564000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x385 JUMP JUMPDEST DUP5 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 SUB PUSH2 0x5E6 JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 SWAP1 SSTORE PUSH1 0x3 SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP3 SWAP1 SSTORE PUSH2 0x63E JUMP JUMPDEST PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP10 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE DUP2 DUP5 KECCAK256 DUP9 SWAP1 SSTORE SWAP4 DUP4 MSTORE PUSH1 0x5 DUP3 MSTORE DUP1 DUP4 KECCAK256 SWAP4 DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 DUP3 SWAP1 SSTORE JUMPDEST POP PUSH1 0x0 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x6 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x6AE JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x683 JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x748 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x76546F6B656E20616C7265616479206C69737465640000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x385 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND PUSH1 0x1 SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x6 DUP1 SLOAD SWAP2 DUP3 ADD DUP2 SSTORE SWAP1 SWAP2 MSTORE PUSH32 0xF652222313E28459528D920B65115C16C04F3EFC82AAEDC97BE59F3F377C0D3F ADD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST DUP3 DUP2 DUP2 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x801 JUMPI POP DUP1 DUP3 EQ JUMPDEST PUSH2 0x867 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C696420696E70757400000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x385 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x4C7 JUMPI PUSH1 0x7 PUSH1 0x0 DUP9 DUP9 DUP5 DUP2 DUP2 LT PUSH2 0x888 JUMPI PUSH2 0x888 PUSH2 0xBA6 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x89D SWAP2 SWAP1 PUSH2 0x9C8 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x92D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x76546F6B656E206E6F74206C6973746564000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x385 JUMP JUMPDEST DUP5 DUP5 DUP3 DUP2 DUP2 LT PUSH2 0x93F JUMPI PUSH2 0x93F PUSH2 0xBA6 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x0 DUP1 DUP10 DUP10 DUP6 DUP2 DUP2 LT PUSH2 0x95B JUMPI PUSH2 0x95B PUSH2 0xBA6 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x970 SWAP2 SWAP1 PUSH2 0x9C8 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SSTORE PUSH1 0x1 ADD PUSH2 0x86A JUMP JUMPDEST DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x9C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x9DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9E3 DUP3 PUSH2 0x99F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x9FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xA14 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0xA2F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xA4C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xA64 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA70 DUP9 DUP4 DUP10 ADD PUSH2 0x9EA JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0xA89 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA96 DUP8 DUP3 DUP9 ADD PUSH2 0x9EA JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xAB4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x9C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xAEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAF3 DUP4 PUSH2 0xABB JUMP JUMPDEST SWAP2 POP PUSH2 0xB01 PUSH1 0x20 DUP5 ADD PUSH2 0x99F JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xB20 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB29 DUP6 PUSH2 0xABB JUMP JUMPDEST SWAP4 POP PUSH2 0xB37 PUSH1 0x20 DUP7 ADD PUSH2 0x99F JUMP JUMPDEST SWAP4 SWAP7 SWAP4 SWAP6 POP POP POP POP PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xB9A JUMPI DUP4 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0xB68 JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 XOR JUMP PUSH3 0x6F9A9F DUP1 0xF6 DUP1 0x1E LOG2 LOG3 0xCE 0xDC 0xE6 0xD6 0xFB MSTORE SWAP2 0xCF 0xE2 0xE5 LOG3 0xAE 0xEA 0xD9 PUSH27 0xF9DEEF1CC064736F6C634300081900330000000000000000000000 ","sourceMap":"136:6629:80:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;236:45;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;552:25:97;;;540:2;525:18;236:45:80;;;;;;;;2390:461;;;;;;:::i;:::-;;:::i;:::-;;1126:35;;;;;;:::i;:::-;;:::i;:::-;;;2124:42:97;2112:55;;;2094:74;;2082:2;2067:18;1126:35:80;1923:251:97;5808:753:80;;;;;;:::i;:::-;6230:20;;5942:13;6230:20;;;:12;:20;;;;;;;;;6287:38;;;;;;:30;:38;;;;;:46;;;;;;;;;6399:42;;;:34;:42;;;;;:50;;;;;;;;;;6230:20;;;;;6287:46;;5942:13;;6399:50;;5942:13;;6230:20;;5808:753;;;;;2946:14:97;;2939:22;2921:41;;2993:2;2978:18;;2971:34;;;;3048:14;;3041:22;3021:18;;;3014:50;;;;3095:2;3080:18;;3073:34;;;;3138:3;3123:19;;3116:35;3200:26;3188:39;;;3182:3;3167:19;;3160:68;3272:14;3265:22;3259:3;3244:19;;3237:51;2908:3;2893:19;5808:753:80;2626:668:97;353:45:80;;;;;;:::i;:::-;;;;;;;;;;;;;;4501:695;;;;;;:::i;:::-;4896:20;;4608:13;4896:20;;;:12;:20;;;;;;;;;4953:25;:33;;;;;;5052:29;:37;;;;;;;4896:20;;;;;4953:33;;4608:13;;;;;4896:20;;4501:695;3247:692;;;;;;:::i;:::-;;:::i;6655:108::-;;;:::i;:::-;;;;;;;:::i;1405:216::-;;;;;;:::i;:::-;;:::i;1775:461::-;;;;;;:::i;:::-;;:::i;1253:44::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4575:14:97;;4568:22;4550:41;;4538:2;4523:18;1253:44:80;4410:187:97;2390:461:80;2515:7;2563;2596:15;;;;;:46;;;2629:13;2615:10;:27;2596:46;2588:72;;;;;;;4804:2:97;2588:72:80;;;4786:21:97;4843:2;4823:18;;;4816:30;4882:15;4862:18;;;4855:43;4915:18;;2588:72:80;;;;;;;;;2676:9;2671:174;2691:10;2687:1;:14;2671:174;;;2730:12;:24;2743:7;;2751:1;2743:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;2730:24;;;;;;;;;;;;;-1:-1:-1;2730:24:80;;;;2722:54;;;;;;;5335:2:97;2722:54:80;;;5317:21:97;5374:2;5354:18;;;5347:30;5413:19;5393:18;;;5386:47;5450:18;;2722:54:80;5133:341:97;2722:54:80;2824:7;;2832:1;2824:10;;;;;;;:::i;:::-;;;;;;;2790;:31;2809:7;;2817:1;2809:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;2790:31;;;;;;;;;;;;;-1:-1:-1;2790:31:80;:44;2703:3;;2671:174;;;;2484:367;;2390:461;;;;:::o;1126:35::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1126:35:80;:::o;3247:692::-;3468:20;;;3441:7;3468:20;;;:12;:20;;;;;;;;3460:50;;;;;;;5335:2:97;3460:50:80;;;5317:21:97;5374:2;5354:18;;;5347:30;5413:19;5393:18;;;5386:47;5450:18;;3460:50:80;5133:341:97;3460:50:80;3524:6;:11;;3534:1;3524:11;3520:395;;3551:33;;;;;;;:25;:33;;;;;;;;:63;;;3628:29;:37;;;;;:71;;;3520:395;;;3730:38;;;;;;;:30;:38;;;;;;;;:46;;;;;;;;;;;;:76;;;3820:42;;;:34;:42;;;;;:50;;;;;;;:84;;;3520:395;-1:-1:-1;3931:1:80;3247:692;;;;;;:::o;6655:108::-;6703:24;6746:10;6739:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6655:108;:::o;1405:216::-;1472:20;;;;;;;:12;:20;;;;;;;;1471:21;1463:55;;;;;;;5681:2:97;1463:55:80;;;5663:21:97;5720:2;5700:18;;;5693:30;5759:23;5739:18;;;5732:51;5800:18;;1463:55:80;5479:345:97;1463:55:80;1528:29;;;;;;:12;:29;;;;;:36;;;;1560:4;1528:36;;;;;;1574:10;:40;;;;;;;;;;;;;;;;;;;;;1405:216::o;1775:461::-;1900:7;1948;1981:15;;;;;:46;;;2014:13;2000:10;:27;1981:46;1973:72;;;;;;;4804:2:97;1973:72:80;;;4786:21:97;4843:2;4823:18;;;4816:30;4882:15;4862:18;;;4855:43;4915:18;;1973:72:80;4602:337:97;1973:72:80;2061:9;2056:174;2076:10;2072:1;:14;2056:174;;;2115:12;:24;2128:7;;2136:1;2128:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;2115:24;;;;;;;;;;;;;-1:-1:-1;2115:24:80;;;;2107:54;;;;;;;5335:2:97;2107:54:80;;;5317:21:97;5374:2;5354:18;;;5347:30;5413:19;5393:18;;;5386:47;5450:18;;2107:54:80;5133:341:97;2107:54:80;2209:7;;2217:1;2209:10;;;;;;;:::i;:::-;;;;;;;2175;:31;2194:7;;2202:1;2194:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;2175:31;;;;;;;;;;;;;-1:-1:-1;2175:31:80;:44;2088:3;;2056:174;;14:196:97;82:20;;142:42;131:54;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:186::-;274:6;327:2;315:9;306:7;302:23;298:32;295:52;;;343:1;340;333:12;295:52;366:29;385:9;366:29;:::i;:::-;356:39;215:186;-1:-1:-1;;;215:186:97:o;588:367::-;651:8;661:6;715:3;708:4;700:6;696:17;692:27;682:55;;733:1;730;723:12;682:55;-1:-1:-1;756:20:97;;799:18;788:30;;785:50;;;831:1;828;821:12;785:50;868:4;860:6;856:17;844:29;;928:3;921:4;911:6;908:1;904:14;896:6;892:27;888:38;885:47;882:67;;;945:1;942;935:12;882:67;588:367;;;;;:::o;960:773::-;1082:6;1090;1098;1106;1159:2;1147:9;1138:7;1134:23;1130:32;1127:52;;;1175:1;1172;1165:12;1127:52;1215:9;1202:23;1244:18;1285:2;1277:6;1274:14;1271:34;;;1301:1;1298;1291:12;1271:34;1340:70;1402:7;1393:6;1382:9;1378:22;1340:70;:::i;:::-;1429:8;;-1:-1:-1;1314:96:97;-1:-1:-1;1517:2:97;1502:18;;1489:32;;-1:-1:-1;1533:16:97;;;1530:36;;;1562:1;1559;1552:12;1530:36;;1601:72;1665:7;1654:8;1643:9;1639:24;1601:72;:::i;:::-;960:773;;;;-1:-1:-1;1692:8:97;-1:-1:-1;;;;960:773:97:o;1738:180::-;1797:6;1850:2;1838:9;1829:7;1825:23;1821:32;1818:52;;;1866:1;1863;1856:12;1818:52;-1:-1:-1;1889:23:97;;1738:180;-1:-1:-1;1738:180:97:o;2179:179::-;2246:20;;2306:26;2295:38;;2285:49;;2275:77;;2348:1;2345;2338:12;2363:258;2430:6;2438;2491:2;2479:9;2470:7;2466:23;2462:32;2459:52;;;2507:1;2504;2497:12;2459:52;2530:28;2548:9;2530:28;:::i;:::-;2520:38;;2577;2611:2;2600:9;2596:18;2577:38;:::i;:::-;2567:48;;2363:258;;;;;:::o;3299:395::-;3384:6;3392;3400;3408;3461:3;3449:9;3440:7;3436:23;3432:33;3429:53;;;3478:1;3475;3468:12;3429:53;3501:28;3519:9;3501:28;:::i;:::-;3491:38;;3548;3582:2;3571:9;3567:18;3548:38;:::i;:::-;3299:395;;3538:48;;-1:-1:-1;;;;3633:2:97;3618:18;;3605:32;;3684:2;3669:18;3656:32;;3299:395::o;3699:706::-;3895:2;3947:21;;;4017:13;;3920:18;;;4039:22;;;3866:4;;3895:2;4118:15;;;;4092:2;4077:18;;;3866:4;4161:218;4175:6;4172:1;4169:13;4161:218;;;4240:13;;4255:42;4236:62;4224:75;;4354:15;;;;4319:12;;;;4197:1;4190:9;4161:218;;;-1:-1:-1;4396:3:97;;3699:706;-1:-1:-1;;;;;;3699:706:97:o;4944:184::-;4996:77;4993:1;4986:88;5093:4;5090:1;5083:15;5117:4;5114:1;5107:15"},"gasEstimates":{"creation":{"codeDepositCost":"616600","executionCost":"651","totalCost":"617251"},"external":{"allVTokens(uint256)":"4613","borrowCaps(address)":"2563","getAllMarkets()":"infinite","markets(address)":"7054","poolMarkets(uint96,address)":"infinite","setCollateralFactor(uint96,address,uint256,uint256)":"infinite","setMarketBorrowCaps(address[],uint256[])":"infinite","setMarketSupplyCaps(address[],uint256[])":"infinite","supplyCaps(address)":"2523","supportMarket(address)":"75269","vTokenListed(address)":"2585"}},"methodIdentifiers":{"allVTokens(uint256)":"1f3cefb5","borrowCaps(address)":"4a584432","getAllMarkets()":"b0772d0b","markets(address)":"8e8f294b","poolMarkets(uint96,address)":"3093c11e","setCollateralFactor(uint96,address,uint256,uint256)":"9159b177","setMarketBorrowCaps(address[],uint256[])":"186db48f","setMarketSupplyCaps(address[],uint256[])":"d136af44","supplyCaps(address)":"02c3bcbb","supportMarket(address)":"cab4f84c","vTokenListed(address)":"d571c311"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"allVTokens\",\"outputs\":[{\"internalType\":\"contract ICorePoolVToken\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"borrowCaps\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllMarkets\",\"outputs\":[{\"internalType\":\"contract ICorePoolVToken[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vToken\",\"type\":\"address\"}],\"name\":\"markets\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isListed\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactorMantissa\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isVenus\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"liquidationThresholdMantissa\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationIncentiveMantissa\",\"type\":\"uint256\"},{\"internalType\":\"uint96\",\"name\":\"marketPoolId\",\"type\":\"uint96\"},{\"internalType\":\"bool\",\"name\":\"isBorrowAllowed\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"poolId\",\"type\":\"uint96\"},{\"internalType\":\"address\",\"name\":\"vToken\",\"type\":\"address\"}],\"name\":\"poolMarkets\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isListed\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactorMantissa\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isVenus\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"liquidationThresholdMantissa\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationIncentiveMantissa\",\"type\":\"uint256\"},{\"internalType\":\"uint96\",\"name\":\"marketPoolId\",\"type\":\"uint96\"},{\"internalType\":\"bool\",\"name\":\"isBorrowAllowed\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"poolId\",\"type\":\"uint96\"},{\"internalType\":\"address\",\"name\":\"vToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"newCollateralFactorMantissa\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newLiquidationThresholdMantissa\",\"type\":\"uint256\"}],\"name\":\"setCollateralFactor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"vTokens\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"newCaps\",\"type\":\"uint256[]\"}],\"name\":\"setMarketBorrowCaps\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"vTokens\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"newCaps\",\"type\":\"uint256[]\"}],\"name\":\"setMarketSupplyCaps\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"supplyCaps\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vToken\",\"type\":\"address\"}],\"name\":\"supportMarket\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"vTokenListed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getAllMarkets()\":{\"returns\":{\"_0\":\"Array of vToken addresses\"}},\"markets(address)\":{\"params\":{\"vToken\":\"The vToken address\"},\"returns\":{\"collateralFactorMantissa\":\"The collateral factor\",\"isBorrowAllowed\":\"Whether borrowing is allowed\",\"isListed\":\"Whether the market is listed\",\"isVenus\":\"Whether it's a Venus market\",\"liquidationIncentiveMantissa\":\"The liquidation incentive\",\"liquidationThresholdMantissa\":\"The liquidation threshold\",\"marketPoolId\":\"The pool ID\"}},\"poolMarkets(uint96,address)\":{\"params\":{\"poolId\":\"The eMode pool ID\",\"vToken\":\"The vToken address\"},\"returns\":{\"collateralFactorMantissa\":\"The collateral factor\",\"isBorrowAllowed\":\"Whether borrowing is allowed\",\"isListed\":\"Whether the market is listed\",\"isVenus\":\"Whether it's a Venus market\",\"liquidationIncentiveMantissa\":\"The liquidation incentive\",\"liquidationThresholdMantissa\":\"The liquidation threshold\",\"marketPoolId\":\"The pool ID\"}},\"setCollateralFactor(uint96,address,uint256,uint256)\":{\"params\":{\"newCollateralFactorMantissa\":\"The new collateral factor\",\"newLiquidationThresholdMantissa\":\"The new liquidation threshold\",\"poolId\":\"The pool ID (0 for regular markets, >0 for eMode groups)\",\"vToken\":\"The vToken address\"},\"returns\":{\"_0\":\"Always returns 0\"}},\"setMarketBorrowCaps(address[],uint256[])\":{\"params\":{\"newCaps\":\"The new borrow caps\",\"vTokens\":\"The vToken addresses\"}},\"setMarketSupplyCaps(address[],uint256[])\":{\"params\":{\"newCaps\":\"The new supply caps\",\"vTokens\":\"The vToken addresses\"}},\"supportMarket(address)\":{\"params\":{\"vToken\":\"The vToken to add\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"allVTokens(uint256)\":{\"notice\":\"Array of all vTokens\"},\"borrowCaps(address)\":{\"notice\":\"Mapping of vToken addresses to their borrow caps\"},\"getAllMarkets()\":{\"notice\":\"Get all vTokens\"},\"markets(address)\":{\"notice\":\"Get market information (for compatibility with ICorePoolComptroller interface)\"},\"poolMarkets(uint96,address)\":{\"notice\":\"Get eMode pool market information (for compatibility with ICorePoolComptroller interface)\"},\"setCollateralFactor(uint96,address,uint256,uint256)\":{\"notice\":\"Set the collateral factor and liquidation threshold for a vToken\"},\"setMarketBorrowCaps(address[],uint256[])\":{\"notice\":\"Set the borrow cap for a vToken\"},\"setMarketSupplyCaps(address[],uint256[])\":{\"notice\":\"Set the supply cap for a vToken\"},\"supplyCaps(address)\":{\"notice\":\"Mapping of vToken addresses to their supply caps\"},\"supportMarket(address)\":{\"notice\":\"Add a new vToken to be tracked\"},\"vTokenListed(address)\":{\"notice\":\"Mapping of vToken addresses to boolean indicating if they are listed\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/MockCoreComptroller.sol\":\"MockCoreComptroller\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@venusprotocol/venus-protocol/contracts/InterestRateModels/InterestRateModelV8.sol\":{\"content\":\"pragma solidity 0.8.25;\\n\\n/**\\n * @title Venus's InterestRateModelV8 Interface\\n * @author Venus\\n */\\nabstract contract InterestRateModelV8 {\\n    /// @notice Indicator that this is an InterestRateModel contract (for inspection)\\n    bool public constant isInterestRateModel = true;\\n\\n    /**\\n     * @notice Calculates the current borrow interest rate per block\\n     * @param cash The total amount of cash the market has\\n     * @param borrows The total amount of borrows the market has outstanding\\n     * @param reserves The total amnount of reserves the market has\\n     * @return The borrow rate per block (as a percentage, and scaled by 1e18)\\n     */\\n    function getBorrowRate(uint256 cash, uint256 borrows, uint256 reserves) external view virtual returns (uint256);\\n\\n    /**\\n     * @notice Calculates the current supply interest rate per block\\n     * @param cash The total amount of cash the market has\\n     * @param borrows The total amount of borrows the market has outstanding\\n     * @param reserves The total amnount of reserves the market has\\n     * @param reserveFactorMantissa The current reserve factor the market has\\n     * @return The supply rate per block (as a percentage, and scaled by 1e18)\\n     */\\n    function getSupplyRate(\\n        uint256 cash,\\n        uint256 borrows,\\n        uint256 reserves,\\n        uint256 reserveFactorMantissa\\n    ) external view virtual returns (uint256);\\n}\\n\",\"keccak256\":\"0x9b71896f66909fb3fe829c413594121f0e165d8508e8a6fa29a6938ddcfbb61f\"},\"contracts/interfaces/ICorePoolVToken.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { InterestRateModelV8 } from \\\"@venusprotocol/venus-protocol/contracts/InterestRateModels/InterestRateModelV8.sol\\\";\\n\\ninterface ICorePoolVToken {\\n    function comptroller() external view returns (address);\\n\\n    function interestRateModel() external view returns (address);\\n\\n    function _setInterestRateModel(InterestRateModelV8 newInterestRateModel) external returns (uint256);\\n}\\n\",\"keccak256\":\"0xb952df2bdfc73cc669c52776b4cf9dd663084dfafd74131f4f59ac9c820edd7b\",\"license\":\"BSD-3-Clause\"},\"contracts/test/MockCoreComptroller.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { ICorePoolVToken } from \\\"../interfaces/ICorePoolVToken.sol\\\";\\n\\ncontract MockCoreComptroller {\\n    /// @notice Mapping of vToken addresses to their supply caps\\n    mapping(address => uint256) public supplyCaps;\\n\\n    /// @notice Mapping of vToken addresses to their borrow caps\\n    mapping(address => uint256) public borrowCaps;\\n\\n    /// @notice Mapping of vToken addresses to their collateral factors (poolId 0 = regular market)\\n    mapping(address => uint256) internal _collateralFactorMantissa;\\n\\n    /// @notice Mapping of vToken addresses to their liquidation thresholds (poolId 0 = regular market)\\n    mapping(address => uint256) internal _liquidationThresholdMantissa;\\n\\n    /// @notice Mapping of (poolId, vToken) to eMode collateral factors\\n    mapping(uint96 => mapping(address => uint256)) internal _eModeCollateralFactorMantissa;\\n\\n    /// @notice Mapping of (poolId, vToken) to eMode liquidation thresholds\\n    mapping(uint96 => mapping(address => uint256)) internal _eModeLiquidationThresholdMantissa;\\n\\n    /// @notice Array of all vTokens\\n    ICorePoolVToken[] public allVTokens;\\n\\n    /// @notice Mapping of vToken addresses to boolean indicating if they are listed\\n    mapping(address => bool) public vTokenListed;\\n\\n    /**\\n     * @notice Add a new vToken to be tracked\\n     * @param vToken The vToken to add\\n     */\\n    function supportMarket(address vToken) external {\\n        require(!vTokenListed[vToken], \\\"vToken already listed\\\");\\n        vTokenListed[address(vToken)] = true;\\n        allVTokens.push(ICorePoolVToken(vToken));\\n    }\\n\\n    /**\\n     * @notice Set the supply cap for a vToken\\n     * @param vTokens The vToken addresses\\n     * @param newCaps The new supply caps\\n     */\\n    function setMarketSupplyCaps(address[] calldata vTokens, uint256[] calldata newCaps) external {\\n        uint256 numMarkets = vTokens.length;\\n        uint256 numSupplyCaps = newCaps.length;\\n\\n        require(numMarkets != 0 && numMarkets == numSupplyCaps, \\\"invalid input\\\");\\n\\n        for (uint256 i; i < numMarkets; ++i) {\\n            require(vTokenListed[vTokens[i]], \\\"vToken not listed\\\");\\n            supplyCaps[address(vTokens[i])] = newCaps[i];\\n        }\\n    }\\n\\n    /**\\n     * @notice Set the borrow cap for a vToken\\n     * @param vTokens The vToken addresses\\n     * @param newCaps The new borrow caps\\n     */\\n    function setMarketBorrowCaps(address[] calldata vTokens, uint256[] calldata newCaps) external {\\n        uint256 numMarkets = vTokens.length;\\n        uint256 numBorrowCaps = newCaps.length;\\n\\n        require(numMarkets != 0 && numMarkets == numBorrowCaps, \\\"invalid input\\\");\\n\\n        for (uint256 i; i < numMarkets; ++i) {\\n            require(vTokenListed[vTokens[i]], \\\"vToken not listed\\\");\\n            borrowCaps[address(vTokens[i])] = newCaps[i];\\n        }\\n    }\\n\\n    /**\\n     * @notice Set the collateral factor and liquidation threshold for a vToken\\n     * @param poolId The pool ID (0 for regular markets, >0 for eMode groups)\\n     * @param vToken The vToken address\\n     * @param newCollateralFactorMantissa The new collateral factor\\n     * @param newLiquidationThresholdMantissa The new liquidation threshold\\n     * @return Always returns 0\\n     */\\n    function setCollateralFactor(\\n        uint96 poolId,\\n        address vToken,\\n        uint256 newCollateralFactorMantissa,\\n        uint256 newLiquidationThresholdMantissa\\n    ) external returns (uint256) {\\n        require(vTokenListed[vToken], \\\"vToken not listed\\\");\\n        if (poolId == 0) {\\n            _collateralFactorMantissa[vToken] = newCollateralFactorMantissa;\\n            _liquidationThresholdMantissa[vToken] = newLiquidationThresholdMantissa;\\n        } else {\\n            _eModeCollateralFactorMantissa[poolId][vToken] = newCollateralFactorMantissa;\\n            _eModeLiquidationThresholdMantissa[poolId][vToken] = newLiquidationThresholdMantissa;\\n        }\\n        return 0;\\n    }\\n\\n    /**\\n     * @notice Get market information (for compatibility with ICorePoolComptroller interface)\\n     * @param vToken The vToken address\\n     * @return isListed Whether the market is listed\\n     * @return collateralFactorMantissa The collateral factor\\n     * @return isVenus Whether it's a Venus market\\n     * @return liquidationThresholdMantissa The liquidation threshold\\n     * @return liquidationIncentiveMantissa The liquidation incentive\\n     * @return marketPoolId The pool ID\\n     * @return isBorrowAllowed Whether borrowing is allowed\\n     */\\n    function markets(\\n        address vToken\\n    )\\n        external\\n        view\\n        returns (\\n            bool isListed,\\n            uint256 collateralFactorMantissa,\\n            bool isVenus,\\n            uint256 liquidationThresholdMantissa,\\n            uint256 liquidationIncentiveMantissa,\\n            uint96 marketPoolId,\\n            bool isBorrowAllowed\\n        )\\n    {\\n        isListed = vTokenListed[vToken];\\n        collateralFactorMantissa = _collateralFactorMantissa[vToken];\\n        isVenus = false;\\n        liquidationThresholdMantissa = _liquidationThresholdMantissa[vToken];\\n        liquidationIncentiveMantissa = 0;\\n        marketPoolId = 0;\\n        isBorrowAllowed = true;\\n    }\\n\\n    /**\\n     * @notice Get eMode pool market information (for compatibility with ICorePoolComptroller interface)\\n     * @param poolId The eMode pool ID\\n     * @param vToken The vToken address\\n     * @return isListed Whether the market is listed\\n     * @return collateralFactorMantissa The collateral factor\\n     * @return isVenus Whether it's a Venus market\\n     * @return liquidationThresholdMantissa The liquidation threshold\\n     * @return liquidationIncentiveMantissa The liquidation incentive\\n     * @return marketPoolId The pool ID\\n     * @return isBorrowAllowed Whether borrowing is allowed\\n     */\\n    function poolMarkets(\\n        uint96 poolId,\\n        address vToken\\n    )\\n        external\\n        view\\n        returns (\\n            bool isListed,\\n            uint256 collateralFactorMantissa,\\n            bool isVenus,\\n            uint256 liquidationThresholdMantissa,\\n            uint256 liquidationIncentiveMantissa,\\n            uint96 marketPoolId,\\n            bool isBorrowAllowed\\n        )\\n    {\\n        isListed = vTokenListed[vToken];\\n        collateralFactorMantissa = _eModeCollateralFactorMantissa[poolId][vToken];\\n        isVenus = false;\\n        liquidationThresholdMantissa = _eModeLiquidationThresholdMantissa[poolId][vToken];\\n        liquidationIncentiveMantissa = 0;\\n        marketPoolId = poolId;\\n        isBorrowAllowed = true;\\n    }\\n\\n    /**\\n     * @notice Get all vTokens\\n     * @return Array of vToken addresses\\n     */\\n    function getAllMarkets() external view returns (ICorePoolVToken[] memory) {\\n        return allVTokens;\\n    }\\n}\\n\",\"keccak256\":\"0x24a5c2d315461e83f4caaab88d144a61e696b85fe365571244d9adef079e7cf6\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":20785,"contract":"contracts/test/MockCoreComptroller.sol:MockCoreComptroller","label":"supplyCaps","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":20790,"contract":"contracts/test/MockCoreComptroller.sol:MockCoreComptroller","label":"borrowCaps","offset":0,"slot":"1","type":"t_mapping(t_address,t_uint256)"},{"astId":20795,"contract":"contracts/test/MockCoreComptroller.sol:MockCoreComptroller","label":"_collateralFactorMantissa","offset":0,"slot":"2","type":"t_mapping(t_address,t_uint256)"},{"astId":20800,"contract":"contracts/test/MockCoreComptroller.sol:MockCoreComptroller","label":"_liquidationThresholdMantissa","offset":0,"slot":"3","type":"t_mapping(t_address,t_uint256)"},{"astId":20807,"contract":"contracts/test/MockCoreComptroller.sol:MockCoreComptroller","label":"_eModeCollateralFactorMantissa","offset":0,"slot":"4","type":"t_mapping(t_uint96,t_mapping(t_address,t_uint256))"},{"astId":20814,"contract":"contracts/test/MockCoreComptroller.sol:MockCoreComptroller","label":"_eModeLiquidationThresholdMantissa","offset":0,"slot":"5","type":"t_mapping(t_uint96,t_mapping(t_address,t_uint256))"},{"astId":20819,"contract":"contracts/test/MockCoreComptroller.sol:MockCoreComptroller","label":"allVTokens","offset":0,"slot":"6","type":"t_array(t_contract(ICorePoolVToken)20370)dyn_storage"},{"astId":20824,"contract":"contracts/test/MockCoreComptroller.sol:MockCoreComptroller","label":"vTokenListed","offset":0,"slot":"7","type":"t_mapping(t_address,t_bool)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_contract(ICorePoolVToken)20370)dyn_storage":{"base":"t_contract(ICorePoolVToken)20370","encoding":"dynamic_array","label":"contract ICorePoolVToken[]","numberOfBytes":"32"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_contract(ICorePoolVToken)20370":{"encoding":"inplace","label":"contract ICorePoolVToken","numberOfBytes":"20"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint96,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_uint96","label":"mapping(uint96 => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint96":{"encoding":"inplace","label":"uint96","numberOfBytes":"12"}}},"userdoc":{"kind":"user","methods":{"allVTokens(uint256)":{"notice":"Array of all vTokens"},"borrowCaps(address)":{"notice":"Mapping of vToken addresses to their borrow caps"},"getAllMarkets()":{"notice":"Get all vTokens"},"markets(address)":{"notice":"Get market information (for compatibility with ICorePoolComptroller interface)"},"poolMarkets(uint96,address)":{"notice":"Get eMode pool market information (for compatibility with ICorePoolComptroller interface)"},"setCollateralFactor(uint96,address,uint256,uint256)":{"notice":"Set the collateral factor and liquidation threshold for a vToken"},"setMarketBorrowCaps(address[],uint256[])":{"notice":"Set the borrow cap for a vToken"},"setMarketSupplyCaps(address[],uint256[])":{"notice":"Set the supply cap for a vToken"},"supplyCaps(address)":{"notice":"Mapping of vToken addresses to their supply caps"},"supportMarket(address)":{"notice":"Add a new vToken to be tracked"},"vTokenListed(address)":{"notice":"Mapping of vToken addresses to boolean indicating if they are listed"}},"version":1}}},"contracts/test/MockVToken.sol":{"IVToken":{"abi":[{"inputs":[],"name":"comptroller","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"comptroller()":"5fe3b567"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"comptroller\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/MockVToken.sol\":\"IVToken\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@venusprotocol/isolated-pools/contracts/InterestRateModel.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\n/**\\n * @title Compound's InterestRateModel Interface\\n * @author Compound\\n */\\nabstract contract InterestRateModel {\\n    /**\\n     * @notice Calculates the current borrow interest rate per slot (block or second)\\n     * @param cash The total amount of cash the market has\\n     * @param borrows The total amount of borrows the market has outstanding\\n     * @param reserves The total amount of reserves the market has\\n     * @param badDebt The amount of badDebt in the market\\n     * @return The borrow rate percentage per slot (block or second) as a mantissa (scaled by EXP_SCALE)\\n     */\\n    function getBorrowRate(\\n        uint256 cash,\\n        uint256 borrows,\\n        uint256 reserves,\\n        uint256 badDebt\\n    ) external view virtual returns (uint256);\\n\\n    /**\\n     * @notice Calculates the current supply interest rate per slot (block or second)\\n     * @param cash The total amount of cash the market has\\n     * @param borrows The total amount of borrows the market has outstanding\\n     * @param reserves The total amount of reserves the market has\\n     * @param reserveFactorMantissa The current reserve factor the market has\\n     * @param badDebt The amount of badDebt in the market\\n     * @return The supply rate percentage per slot (block or second) as a mantissa (scaled by EXP_SCALE)\\n     */\\n    function getSupplyRate(\\n        uint256 cash,\\n        uint256 borrows,\\n        uint256 reserves,\\n        uint256 reserveFactorMantissa,\\n        uint256 badDebt\\n    ) external view virtual returns (uint256);\\n\\n    /**\\n     * @notice Indicator that this is an InterestRateModel contract (for inspection)\\n     * @return Always true\\n     */\\n    function isInterestRateModel() external pure virtual returns (bool) {\\n        return true;\\n    }\\n}\\n\",\"keccak256\":\"0xc4fda1ab75ebe4b187b707c4f10c58780f343cf343c537f641dc75d3cd28ab51\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/venus-protocol/contracts/InterestRateModels/InterestRateModelV8.sol\":{\"content\":\"pragma solidity 0.8.25;\\n\\n/**\\n * @title Venus's InterestRateModelV8 Interface\\n * @author Venus\\n */\\nabstract contract InterestRateModelV8 {\\n    /// @notice Indicator that this is an InterestRateModel contract (for inspection)\\n    bool public constant isInterestRateModel = true;\\n\\n    /**\\n     * @notice Calculates the current borrow interest rate per block\\n     * @param cash The total amount of cash the market has\\n     * @param borrows The total amount of borrows the market has outstanding\\n     * @param reserves The total amnount of reserves the market has\\n     * @return The borrow rate per block (as a percentage, and scaled by 1e18)\\n     */\\n    function getBorrowRate(uint256 cash, uint256 borrows, uint256 reserves) external view virtual returns (uint256);\\n\\n    /**\\n     * @notice Calculates the current supply interest rate per block\\n     * @param cash The total amount of cash the market has\\n     * @param borrows The total amount of borrows the market has outstanding\\n     * @param reserves The total amnount of reserves the market has\\n     * @param reserveFactorMantissa The current reserve factor the market has\\n     * @return The supply rate per block (as a percentage, and scaled by 1e18)\\n     */\\n    function getSupplyRate(\\n        uint256 cash,\\n        uint256 borrows,\\n        uint256 reserves,\\n        uint256 reserveFactorMantissa\\n    ) external view virtual returns (uint256);\\n}\\n\",\"keccak256\":\"0x9b71896f66909fb3fe829c413594121f0e165d8508e8a6fa29a6938ddcfbb61f\"},\"contracts/test/MockVToken.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { InterestRateModel } from \\\"@venusprotocol/isolated-pools/contracts/InterestRateModel.sol\\\";\\nimport { InterestRateModelV8 } from \\\"@venusprotocol/venus-protocol/contracts/InterestRateModels/InterestRateModelV8.sol\\\";\\n\\ninterface IVToken {\\n    function comptroller() external view returns (address);\\n}\\n\\ncontract MockVToken is IVToken {\\n    address public override comptroller;\\n    address public interestRateModel;\\n\\n    constructor(address _comptroller) {\\n        comptroller = _comptroller;\\n    }\\n\\n    function setInterestRateModel(InterestRateModel newInterestRateModel) external {\\n        interestRateModel = address(newInterestRateModel);\\n    }\\n\\n    function _setInterestRateModel(InterestRateModelV8 newInterestRateModel) external returns (uint) {\\n        interestRateModel = address(newInterestRateModel);\\n        return 0;\\n    }\\n}\\n\",\"keccak256\":\"0x6bf75de07c56f2a634b757095703c62bfffee90175025f391134176d174e4ce2\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}},"MockVToken":{"abi":[{"inputs":[{"internalType":"address","name":"_comptroller","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"contract InterestRateModelV8","name":"newInterestRateModel","type":"address"}],"name":"_setInterestRateModel","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"comptroller","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"interestRateModel","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract InterestRateModel","name":"newInterestRateModel","type":"address"}],"name":"setInterestRateModel","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_21201":{"entryPoint":null,"id":21201,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":80,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:306:97","nodeType":"YulBlock","src":"0:306:97","statements":[{"nativeSrc":"6:3:97","nodeType":"YulBlock","src":"6:3:97","statements":[]},{"body":{"nativeSrc":"95:209:97","nodeType":"YulBlock","src":"95:209:97","statements":[{"body":{"nativeSrc":"141:16:97","nodeType":"YulBlock","src":"141:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"150:1:97","nodeType":"YulLiteral","src":"150:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"153:1:97","nodeType":"YulLiteral","src":"153:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"143:6:97","nodeType":"YulIdentifier","src":"143:6:97"},"nativeSrc":"143:12:97","nodeType":"YulFunctionCall","src":"143:12:97"},"nativeSrc":"143:12:97","nodeType":"YulExpressionStatement","src":"143:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"116:7:97","nodeType":"YulIdentifier","src":"116:7:97"},{"name":"headStart","nativeSrc":"125:9:97","nodeType":"YulIdentifier","src":"125:9:97"}],"functionName":{"name":"sub","nativeSrc":"112:3:97","nodeType":"YulIdentifier","src":"112:3:97"},"nativeSrc":"112:23:97","nodeType":"YulFunctionCall","src":"112:23:97"},{"kind":"number","nativeSrc":"137:2:97","nodeType":"YulLiteral","src":"137:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"108:3:97","nodeType":"YulIdentifier","src":"108:3:97"},"nativeSrc":"108:32:97","nodeType":"YulFunctionCall","src":"108:32:97"},"nativeSrc":"105:52:97","nodeType":"YulIf","src":"105:52:97"},{"nativeSrc":"166:29:97","nodeType":"YulVariableDeclaration","src":"166:29:97","value":{"arguments":[{"name":"headStart","nativeSrc":"185:9:97","nodeType":"YulIdentifier","src":"185:9:97"}],"functionName":{"name":"mload","nativeSrc":"179:5:97","nodeType":"YulIdentifier","src":"179:5:97"},"nativeSrc":"179:16:97","nodeType":"YulFunctionCall","src":"179:16:97"},"variables":[{"name":"value","nativeSrc":"170:5:97","nodeType":"YulTypedName","src":"170:5:97","type":""}]},{"body":{"nativeSrc":"258:16:97","nodeType":"YulBlock","src":"258:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"267:1:97","nodeType":"YulLiteral","src":"267:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"270:1:97","nodeType":"YulLiteral","src":"270:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"260:6:97","nodeType":"YulIdentifier","src":"260:6:97"},"nativeSrc":"260:12:97","nodeType":"YulFunctionCall","src":"260:12:97"},"nativeSrc":"260:12:97","nodeType":"YulExpressionStatement","src":"260:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"217:5:97","nodeType":"YulIdentifier","src":"217:5:97"},{"arguments":[{"name":"value","nativeSrc":"228:5:97","nodeType":"YulIdentifier","src":"228:5:97"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"243:3:97","nodeType":"YulLiteral","src":"243:3:97","type":"","value":"160"},{"kind":"number","nativeSrc":"248:1:97","nodeType":"YulLiteral","src":"248:1:97","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"239:3:97","nodeType":"YulIdentifier","src":"239:3:97"},"nativeSrc":"239:11:97","nodeType":"YulFunctionCall","src":"239:11:97"},{"kind":"number","nativeSrc":"252:1:97","nodeType":"YulLiteral","src":"252:1:97","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"235:3:97","nodeType":"YulIdentifier","src":"235:3:97"},"nativeSrc":"235:19:97","nodeType":"YulFunctionCall","src":"235:19:97"}],"functionName":{"name":"and","nativeSrc":"224:3:97","nodeType":"YulIdentifier","src":"224:3:97"},"nativeSrc":"224:31:97","nodeType":"YulFunctionCall","src":"224:31:97"}],"functionName":{"name":"eq","nativeSrc":"214:2:97","nodeType":"YulIdentifier","src":"214:2:97"},"nativeSrc":"214:42:97","nodeType":"YulFunctionCall","src":"214:42:97"}],"functionName":{"name":"iszero","nativeSrc":"207:6:97","nodeType":"YulIdentifier","src":"207:6:97"},"nativeSrc":"207:50:97","nodeType":"YulFunctionCall","src":"207:50:97"},"nativeSrc":"204:70:97","nodeType":"YulIf","src":"204:70:97"},{"nativeSrc":"283:15:97","nodeType":"YulAssignment","src":"283:15:97","value":{"name":"value","nativeSrc":"293:5:97","nodeType":"YulIdentifier","src":"293:5:97"},"variableNames":[{"name":"value0","nativeSrc":"283:6:97","nodeType":"YulIdentifier","src":"283:6:97"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nativeSrc":"14:290:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"61:9:97","nodeType":"YulTypedName","src":"61:9:97","type":""},{"name":"dataEnd","nativeSrc":"72:7:97","nodeType":"YulTypedName","src":"72:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"84:6:97","nodeType":"YulTypedName","src":"84:6:97","type":""}],"src":"14:290:97"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n        value0 := value\n    }\n}","id":97,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"6080604052348015600f57600080fd5b50604051610284380380610284833981016040819052602c916050565b600080546001600160a01b0319166001600160a01b0392909216919091179055607e565b600060208284031215606157600080fd5b81516001600160a01b0381168114607757600080fd5b9392505050565b6101f78061008d6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80635fe3b567146100515780638bcd40161461009b578063f2b3abbd146100f2578063f3fdb15a14610158575b600080fd5b6000546100719073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100f06100a936600461019d565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b005b61014a61010036600461019d565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600090565b604051908152602001610092565b6001546100719073ffffffffffffffffffffffffffffffffffffffff1681565b73ffffffffffffffffffffffffffffffffffffffff8116811461019a57600080fd5b50565b6000602082840312156101af57600080fd5b81356101ba81610178565b939250505056fea26469706673582212202d23c8be87baa4eec062c3b3883a6bbc978eab0796a5f4049340837de4e7807164736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x284 CODESIZE SUB DUP1 PUSH2 0x284 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH1 0x2C SWAP2 PUSH1 0x50 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x7E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH1 0x61 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH1 0x77 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1F7 DUP1 PUSH2 0x8D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5FE3B567 EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x8BCD4016 EQ PUSH2 0x9B JUMPI DUP1 PUSH4 0xF2B3ABBD EQ PUSH2 0xF2 JUMPI DUP1 PUSH4 0xF3FDB15A EQ PUSH2 0x158 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x71 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF0 PUSH2 0xA9 CALLDATASIZE PUSH1 0x4 PUSH2 0x19D JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x14A PUSH2 0x100 CALLDATASIZE PUSH1 0x4 PUSH2 0x19D JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x92 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0x71 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x19A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1BA DUP2 PUSH2 0x178 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2D 0x23 0xC8 0xBE DUP8 0xBA LOG4 0xEE 0xC0 PUSH3 0xC3B388 GASPRICE PUSH12 0xBC978EAB0796A5F404934083 PUSH30 0xE4E7807164736F6C63430008190033000000000000000000000000000000 ","sourceMap":"371:534:81:-:0;;;488:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;532:11;:26;;-1:-1:-1;;;;;;532:26:81;-1:-1:-1;;;;;532:26:81;;;;;;;;;;371:534;;14:290:97;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:97;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:97:o;:::-;371:534:81;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_setInterestRateModel_21233":{"entryPoint":null,"id":21233,"parameterSlots":1,"returnSlots":1},"@comptroller_21189":{"entryPoint":null,"id":21189,"parameterSlots":0,"returnSlots":0},"@interestRateModel_21191":{"entryPoint":null,"id":21191,"parameterSlots":0,"returnSlots":0},"@setInterestRateModel_21215":{"entryPoint":null,"id":21215,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_contract$_InterestRateModelV8_$10994":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_InterestRateModel_$10919":{"entryPoint":413,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"validator_revert_contract_InterestRateModel":{"entryPoint":376,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:1200:97","nodeType":"YulBlock","src":"0:1200:97","statements":[{"nativeSrc":"6:3:97","nodeType":"YulBlock","src":"6:3:97","statements":[]},{"body":{"nativeSrc":"115:125:97","nodeType":"YulBlock","src":"115:125:97","statements":[{"nativeSrc":"125:26:97","nodeType":"YulAssignment","src":"125:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"137:9:97","nodeType":"YulIdentifier","src":"137:9:97"},{"kind":"number","nativeSrc":"148:2:97","nodeType":"YulLiteral","src":"148:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"133:3:97","nodeType":"YulIdentifier","src":"133:3:97"},"nativeSrc":"133:18:97","nodeType":"YulFunctionCall","src":"133:18:97"},"variableNames":[{"name":"tail","nativeSrc":"125:4:97","nodeType":"YulIdentifier","src":"125:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"167:9:97","nodeType":"YulIdentifier","src":"167:9:97"},{"arguments":[{"name":"value0","nativeSrc":"182:6:97","nodeType":"YulIdentifier","src":"182:6:97"},{"kind":"number","nativeSrc":"190:42:97","nodeType":"YulLiteral","src":"190:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"178:3:97","nodeType":"YulIdentifier","src":"178:3:97"},"nativeSrc":"178:55:97","nodeType":"YulFunctionCall","src":"178:55:97"}],"functionName":{"name":"mstore","nativeSrc":"160:6:97","nodeType":"YulIdentifier","src":"160:6:97"},"nativeSrc":"160:74:97","nodeType":"YulFunctionCall","src":"160:74:97"},"nativeSrc":"160:74:97","nodeType":"YulExpressionStatement","src":"160:74:97"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"14:226:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"84:9:97","nodeType":"YulTypedName","src":"84:9:97","type":""},{"name":"value0","nativeSrc":"95:6:97","nodeType":"YulTypedName","src":"95:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"106:4:97","nodeType":"YulTypedName","src":"106:4:97","type":""}],"src":"14:226:97"},{"body":{"nativeSrc":"309:109:97","nodeType":"YulBlock","src":"309:109:97","statements":[{"body":{"nativeSrc":"396:16:97","nodeType":"YulBlock","src":"396:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"405:1:97","nodeType":"YulLiteral","src":"405:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"408:1:97","nodeType":"YulLiteral","src":"408:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"398:6:97","nodeType":"YulIdentifier","src":"398:6:97"},"nativeSrc":"398:12:97","nodeType":"YulFunctionCall","src":"398:12:97"},"nativeSrc":"398:12:97","nodeType":"YulExpressionStatement","src":"398:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"332:5:97","nodeType":"YulIdentifier","src":"332:5:97"},{"arguments":[{"name":"value","nativeSrc":"343:5:97","nodeType":"YulIdentifier","src":"343:5:97"},{"kind":"number","nativeSrc":"350:42:97","nodeType":"YulLiteral","src":"350:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"339:3:97","nodeType":"YulIdentifier","src":"339:3:97"},"nativeSrc":"339:54:97","nodeType":"YulFunctionCall","src":"339:54:97"}],"functionName":{"name":"eq","nativeSrc":"329:2:97","nodeType":"YulIdentifier","src":"329:2:97"},"nativeSrc":"329:65:97","nodeType":"YulFunctionCall","src":"329:65:97"}],"functionName":{"name":"iszero","nativeSrc":"322:6:97","nodeType":"YulIdentifier","src":"322:6:97"},"nativeSrc":"322:73:97","nodeType":"YulFunctionCall","src":"322:73:97"},"nativeSrc":"319:93:97","nodeType":"YulIf","src":"319:93:97"}]},"name":"validator_revert_contract_InterestRateModel","nativeSrc":"245:173:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"298:5:97","nodeType":"YulTypedName","src":"298:5:97","type":""}],"src":"245:173:97"},{"body":{"nativeSrc":"520:196:97","nodeType":"YulBlock","src":"520:196:97","statements":[{"body":{"nativeSrc":"566:16:97","nodeType":"YulBlock","src":"566:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"575:1:97","nodeType":"YulLiteral","src":"575:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"578:1:97","nodeType":"YulLiteral","src":"578:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"568:6:97","nodeType":"YulIdentifier","src":"568:6:97"},"nativeSrc":"568:12:97","nodeType":"YulFunctionCall","src":"568:12:97"},"nativeSrc":"568:12:97","nodeType":"YulExpressionStatement","src":"568:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"541:7:97","nodeType":"YulIdentifier","src":"541:7:97"},{"name":"headStart","nativeSrc":"550:9:97","nodeType":"YulIdentifier","src":"550:9:97"}],"functionName":{"name":"sub","nativeSrc":"537:3:97","nodeType":"YulIdentifier","src":"537:3:97"},"nativeSrc":"537:23:97","nodeType":"YulFunctionCall","src":"537:23:97"},{"kind":"number","nativeSrc":"562:2:97","nodeType":"YulLiteral","src":"562:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"533:3:97","nodeType":"YulIdentifier","src":"533:3:97"},"nativeSrc":"533:32:97","nodeType":"YulFunctionCall","src":"533:32:97"},"nativeSrc":"530:52:97","nodeType":"YulIf","src":"530:52:97"},{"nativeSrc":"591:36:97","nodeType":"YulVariableDeclaration","src":"591:36:97","value":{"arguments":[{"name":"headStart","nativeSrc":"617:9:97","nodeType":"YulIdentifier","src":"617:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"604:12:97","nodeType":"YulIdentifier","src":"604:12:97"},"nativeSrc":"604:23:97","nodeType":"YulFunctionCall","src":"604:23:97"},"variables":[{"name":"value","nativeSrc":"595:5:97","nodeType":"YulTypedName","src":"595:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"680:5:97","nodeType":"YulIdentifier","src":"680:5:97"}],"functionName":{"name":"validator_revert_contract_InterestRateModel","nativeSrc":"636:43:97","nodeType":"YulIdentifier","src":"636:43:97"},"nativeSrc":"636:50:97","nodeType":"YulFunctionCall","src":"636:50:97"},"nativeSrc":"636:50:97","nodeType":"YulExpressionStatement","src":"636:50:97"},{"nativeSrc":"695:15:97","nodeType":"YulAssignment","src":"695:15:97","value":{"name":"value","nativeSrc":"705:5:97","nodeType":"YulIdentifier","src":"705:5:97"},"variableNames":[{"name":"value0","nativeSrc":"695:6:97","nodeType":"YulIdentifier","src":"695:6:97"}]}]},"name":"abi_decode_tuple_t_contract$_InterestRateModel_$10919","nativeSrc":"423:293:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"486:9:97","nodeType":"YulTypedName","src":"486:9:97","type":""},{"name":"dataEnd","nativeSrc":"497:7:97","nodeType":"YulTypedName","src":"497:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"509:6:97","nodeType":"YulTypedName","src":"509:6:97","type":""}],"src":"423:293:97"},{"body":{"nativeSrc":"820:196:97","nodeType":"YulBlock","src":"820:196:97","statements":[{"body":{"nativeSrc":"866:16:97","nodeType":"YulBlock","src":"866:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"875:1:97","nodeType":"YulLiteral","src":"875:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"878:1:97","nodeType":"YulLiteral","src":"878:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"868:6:97","nodeType":"YulIdentifier","src":"868:6:97"},"nativeSrc":"868:12:97","nodeType":"YulFunctionCall","src":"868:12:97"},"nativeSrc":"868:12:97","nodeType":"YulExpressionStatement","src":"868:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"841:7:97","nodeType":"YulIdentifier","src":"841:7:97"},{"name":"headStart","nativeSrc":"850:9:97","nodeType":"YulIdentifier","src":"850:9:97"}],"functionName":{"name":"sub","nativeSrc":"837:3:97","nodeType":"YulIdentifier","src":"837:3:97"},"nativeSrc":"837:23:97","nodeType":"YulFunctionCall","src":"837:23:97"},{"kind":"number","nativeSrc":"862:2:97","nodeType":"YulLiteral","src":"862:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"833:3:97","nodeType":"YulIdentifier","src":"833:3:97"},"nativeSrc":"833:32:97","nodeType":"YulFunctionCall","src":"833:32:97"},"nativeSrc":"830:52:97","nodeType":"YulIf","src":"830:52:97"},{"nativeSrc":"891:36:97","nodeType":"YulVariableDeclaration","src":"891:36:97","value":{"arguments":[{"name":"headStart","nativeSrc":"917:9:97","nodeType":"YulIdentifier","src":"917:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"904:12:97","nodeType":"YulIdentifier","src":"904:12:97"},"nativeSrc":"904:23:97","nodeType":"YulFunctionCall","src":"904:23:97"},"variables":[{"name":"value","nativeSrc":"895:5:97","nodeType":"YulTypedName","src":"895:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"980:5:97","nodeType":"YulIdentifier","src":"980:5:97"}],"functionName":{"name":"validator_revert_contract_InterestRateModel","nativeSrc":"936:43:97","nodeType":"YulIdentifier","src":"936:43:97"},"nativeSrc":"936:50:97","nodeType":"YulFunctionCall","src":"936:50:97"},"nativeSrc":"936:50:97","nodeType":"YulExpressionStatement","src":"936:50:97"},{"nativeSrc":"995:15:97","nodeType":"YulAssignment","src":"995:15:97","value":{"name":"value","nativeSrc":"1005:5:97","nodeType":"YulIdentifier","src":"1005:5:97"},"variableNames":[{"name":"value0","nativeSrc":"995:6:97","nodeType":"YulIdentifier","src":"995:6:97"}]}]},"name":"abi_decode_tuple_t_contract$_InterestRateModelV8_$10994","nativeSrc":"721:295:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"786:9:97","nodeType":"YulTypedName","src":"786:9:97","type":""},{"name":"dataEnd","nativeSrc":"797:7:97","nodeType":"YulTypedName","src":"797:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"809:6:97","nodeType":"YulTypedName","src":"809:6:97","type":""}],"src":"721:295:97"},{"body":{"nativeSrc":"1122:76:97","nodeType":"YulBlock","src":"1122:76:97","statements":[{"nativeSrc":"1132:26:97","nodeType":"YulAssignment","src":"1132:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1144:9:97","nodeType":"YulIdentifier","src":"1144:9:97"},{"kind":"number","nativeSrc":"1155:2:97","nodeType":"YulLiteral","src":"1155:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1140:3:97","nodeType":"YulIdentifier","src":"1140:3:97"},"nativeSrc":"1140:18:97","nodeType":"YulFunctionCall","src":"1140:18:97"},"variableNames":[{"name":"tail","nativeSrc":"1132:4:97","nodeType":"YulIdentifier","src":"1132:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1174:9:97","nodeType":"YulIdentifier","src":"1174:9:97"},{"name":"value0","nativeSrc":"1185:6:97","nodeType":"YulIdentifier","src":"1185:6:97"}],"functionName":{"name":"mstore","nativeSrc":"1167:6:97","nodeType":"YulIdentifier","src":"1167:6:97"},"nativeSrc":"1167:25:97","nodeType":"YulFunctionCall","src":"1167:25:97"},"nativeSrc":"1167:25:97","nodeType":"YulExpressionStatement","src":"1167:25:97"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"1021:177:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1091:9:97","nodeType":"YulTypedName","src":"1091:9:97","type":""},{"name":"value0","nativeSrc":"1102:6:97","nodeType":"YulTypedName","src":"1102:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1113:4:97","nodeType":"YulTypedName","src":"1113:4:97","type":""}],"src":"1021:177:97"}]},"contents":"{\n    { }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function validator_revert_contract_InterestRateModel(value)\n    {\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_contract$_InterestRateModel_$10919(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_contract_InterestRateModel(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_contract$_InterestRateModelV8_$10994(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_contract_InterestRateModel(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n}","id":97,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061004c5760003560e01c80635fe3b567146100515780638bcd40161461009b578063f2b3abbd146100f2578063f3fdb15a14610158575b600080fd5b6000546100719073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100f06100a936600461019d565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b005b61014a61010036600461019d565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600090565b604051908152602001610092565b6001546100719073ffffffffffffffffffffffffffffffffffffffff1681565b73ffffffffffffffffffffffffffffffffffffffff8116811461019a57600080fd5b50565b6000602082840312156101af57600080fd5b81356101ba81610178565b939250505056fea26469706673582212202d23c8be87baa4eec062c3b3883a6bbc978eab0796a5f4049340837de4e7807164736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5FE3B567 EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x8BCD4016 EQ PUSH2 0x9B JUMPI DUP1 PUSH4 0xF2B3ABBD EQ PUSH2 0xF2 JUMPI DUP1 PUSH4 0xF3FDB15A EQ PUSH2 0x158 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x71 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF0 PUSH2 0xA9 CALLDATASIZE PUSH1 0x4 PUSH2 0x19D JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x14A PUSH2 0x100 CALLDATASIZE PUSH1 0x4 PUSH2 0x19D JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x92 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0x71 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x19A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1BA DUP2 PUSH2 0x178 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2D 0x23 0xC8 0xBE DUP8 0xBA LOG4 0xEE 0xC0 PUSH3 0xC3B388 GASPRICE PUSH12 0xBC978EAB0796A5F404934083 PUSH30 0xE4E7807164736F6C63430008190033000000000000000000000000000000 ","sourceMap":"371:534:81:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;408:35;;;;;;;;;;;;190:42:97;178:55;;;160:74;;148:2;133:18;408:35:81;;;;;;;;571:145;;;;;;:::i;:::-;660:17;:49;;;;;;;;;;;;;;;571:145;;;722:181;;;;;;:::i;:::-;829:17;:49;;;;;;;;;;;;;;;-1:-1:-1;;722:181:81;;;;1167:25:97;;;1155:2;1140:18;722:181:81;1021:177:97;449:32:81;;;;;;;;;245:173:97;350:42;343:5;339:54;332:5;329:65;319:93;;408:1;405;398:12;319:93;245:173;:::o;423:293::-;509:6;562:2;550:9;541:7;537:23;533:32;530:52;;;578:1;575;568:12;530:52;617:9;604:23;636:50;680:5;636:50;:::i;:::-;705:5;423:293;-1:-1:-1;;;423:293:97:o"},"gasEstimates":{"creation":{"codeDepositCost":"100600","executionCost":"infinite","totalCost":"infinite"},"external":{"_setInterestRateModel(address)":"24599","comptroller()":"2280","interestRateModel()":"2346","setInterestRateModel(address)":"24514"}},"methodIdentifiers":{"_setInterestRateModel(address)":"f2b3abbd","comptroller()":"5fe3b567","interestRateModel()":"f3fdb15a","setInterestRateModel(address)":"8bcd4016"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_comptroller\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"contract InterestRateModelV8\",\"name\":\"newInterestRateModel\",\"type\":\"address\"}],\"name\":\"_setInterestRateModel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"comptroller\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"interestRateModel\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract InterestRateModel\",\"name\":\"newInterestRateModel\",\"type\":\"address\"}],\"name\":\"setInterestRateModel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/MockVToken.sol\":\"MockVToken\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@venusprotocol/isolated-pools/contracts/InterestRateModel.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\n/**\\n * @title Compound's InterestRateModel Interface\\n * @author Compound\\n */\\nabstract contract InterestRateModel {\\n    /**\\n     * @notice Calculates the current borrow interest rate per slot (block or second)\\n     * @param cash The total amount of cash the market has\\n     * @param borrows The total amount of borrows the market has outstanding\\n     * @param reserves The total amount of reserves the market has\\n     * @param badDebt The amount of badDebt in the market\\n     * @return The borrow rate percentage per slot (block or second) as a mantissa (scaled by EXP_SCALE)\\n     */\\n    function getBorrowRate(\\n        uint256 cash,\\n        uint256 borrows,\\n        uint256 reserves,\\n        uint256 badDebt\\n    ) external view virtual returns (uint256);\\n\\n    /**\\n     * @notice Calculates the current supply interest rate per slot (block or second)\\n     * @param cash The total amount of cash the market has\\n     * @param borrows The total amount of borrows the market has outstanding\\n     * @param reserves The total amount of reserves the market has\\n     * @param reserveFactorMantissa The current reserve factor the market has\\n     * @param badDebt The amount of badDebt in the market\\n     * @return The supply rate percentage per slot (block or second) as a mantissa (scaled by EXP_SCALE)\\n     */\\n    function getSupplyRate(\\n        uint256 cash,\\n        uint256 borrows,\\n        uint256 reserves,\\n        uint256 reserveFactorMantissa,\\n        uint256 badDebt\\n    ) external view virtual returns (uint256);\\n\\n    /**\\n     * @notice Indicator that this is an InterestRateModel contract (for inspection)\\n     * @return Always true\\n     */\\n    function isInterestRateModel() external pure virtual returns (bool) {\\n        return true;\\n    }\\n}\\n\",\"keccak256\":\"0xc4fda1ab75ebe4b187b707c4f10c58780f343cf343c537f641dc75d3cd28ab51\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/venus-protocol/contracts/InterestRateModels/InterestRateModelV8.sol\":{\"content\":\"pragma solidity 0.8.25;\\n\\n/**\\n * @title Venus's InterestRateModelV8 Interface\\n * @author Venus\\n */\\nabstract contract InterestRateModelV8 {\\n    /// @notice Indicator that this is an InterestRateModel contract (for inspection)\\n    bool public constant isInterestRateModel = true;\\n\\n    /**\\n     * @notice Calculates the current borrow interest rate per block\\n     * @param cash The total amount of cash the market has\\n     * @param borrows The total amount of borrows the market has outstanding\\n     * @param reserves The total amnount of reserves the market has\\n     * @return The borrow rate per block (as a percentage, and scaled by 1e18)\\n     */\\n    function getBorrowRate(uint256 cash, uint256 borrows, uint256 reserves) external view virtual returns (uint256);\\n\\n    /**\\n     * @notice Calculates the current supply interest rate per block\\n     * @param cash The total amount of cash the market has\\n     * @param borrows The total amount of borrows the market has outstanding\\n     * @param reserves The total amnount of reserves the market has\\n     * @param reserveFactorMantissa The current reserve factor the market has\\n     * @return The supply rate per block (as a percentage, and scaled by 1e18)\\n     */\\n    function getSupplyRate(\\n        uint256 cash,\\n        uint256 borrows,\\n        uint256 reserves,\\n        uint256 reserveFactorMantissa\\n    ) external view virtual returns (uint256);\\n}\\n\",\"keccak256\":\"0x9b71896f66909fb3fe829c413594121f0e165d8508e8a6fa29a6938ddcfbb61f\"},\"contracts/test/MockVToken.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { InterestRateModel } from \\\"@venusprotocol/isolated-pools/contracts/InterestRateModel.sol\\\";\\nimport { InterestRateModelV8 } from \\\"@venusprotocol/venus-protocol/contracts/InterestRateModels/InterestRateModelV8.sol\\\";\\n\\ninterface IVToken {\\n    function comptroller() external view returns (address);\\n}\\n\\ncontract MockVToken is IVToken {\\n    address public override comptroller;\\n    address public interestRateModel;\\n\\n    constructor(address _comptroller) {\\n        comptroller = _comptroller;\\n    }\\n\\n    function setInterestRateModel(InterestRateModel newInterestRateModel) external {\\n        interestRateModel = address(newInterestRateModel);\\n    }\\n\\n    function _setInterestRateModel(InterestRateModelV8 newInterestRateModel) external returns (uint) {\\n        interestRateModel = address(newInterestRateModel);\\n        return 0;\\n    }\\n}\\n\",\"keccak256\":\"0x6bf75de07c56f2a634b757095703c62bfffee90175025f391134176d174e4ce2\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":21189,"contract":"contracts/test/MockVToken.sol:MockVToken","label":"comptroller","offset":0,"slot":"0","type":"t_address"},{"astId":21191,"contract":"contracts/test/MockVToken.sol:MockVToken","label":"interestRateModel","offset":0,"slot":"1","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/test/MockXVSVault.sol":{"MockXVSVault":{"abi":[{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPriorVotes","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6080604052348015600f57600080fd5b5060da80601d6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063782d6fe114602d575b600080fd5b604060383660046061565b600092915050565b6040516bffffffffffffffffffffffff909116815260200160405180910390f35b60008060408385031215607357600080fd5b823573ffffffffffffffffffffffffffffffffffffffff81168114609657600080fd5b94602093909301359350505056fea26469706673582212202f495c0b97bb68858bc09a7e29873a8cf9fa060dd106cca7fff91758fe69d5a864736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xDA DUP1 PUSH1 0x1D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x28 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x782D6FE1 EQ PUSH1 0x2D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 PUSH1 0x38 CALLDATASIZE PUSH1 0x4 PUSH1 0x61 JUMP JUMPDEST PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH1 0x73 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH1 0x96 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2F BLOBHASH TLOAD SIGNEXTEND SWAP8 0xBB PUSH9 0x858BC09A7E29873A8C 0xF9 STATICCALL MOD 0xD 0xD1 MOD 0xCC 0xA7 SELFDESTRUCT 0xF9 OR PC INVALID PUSH10 0xD5A864736F6C63430008 NOT STOP CALLER ","sourceMap":"66:232:82:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@getPriorVotes_21248":{"entryPoint":null,"id":21248,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":97,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_uint96__to_t_uint96__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:606:97","nodeType":"YulBlock","src":"0:606:97","statements":[{"nativeSrc":"6:3:97","nodeType":"YulBlock","src":"6:3:97","statements":[]},{"body":{"nativeSrc":"101:290:97","nodeType":"YulBlock","src":"101:290:97","statements":[{"body":{"nativeSrc":"147:16:97","nodeType":"YulBlock","src":"147:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"156:1:97","nodeType":"YulLiteral","src":"156:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"159:1:97","nodeType":"YulLiteral","src":"159:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"149:6:97","nodeType":"YulIdentifier","src":"149:6:97"},"nativeSrc":"149:12:97","nodeType":"YulFunctionCall","src":"149:12:97"},"nativeSrc":"149:12:97","nodeType":"YulExpressionStatement","src":"149:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"122:7:97","nodeType":"YulIdentifier","src":"122:7:97"},{"name":"headStart","nativeSrc":"131:9:97","nodeType":"YulIdentifier","src":"131:9:97"}],"functionName":{"name":"sub","nativeSrc":"118:3:97","nodeType":"YulIdentifier","src":"118:3:97"},"nativeSrc":"118:23:97","nodeType":"YulFunctionCall","src":"118:23:97"},{"kind":"number","nativeSrc":"143:2:97","nodeType":"YulLiteral","src":"143:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"114:3:97","nodeType":"YulIdentifier","src":"114:3:97"},"nativeSrc":"114:32:97","nodeType":"YulFunctionCall","src":"114:32:97"},"nativeSrc":"111:52:97","nodeType":"YulIf","src":"111:52:97"},{"nativeSrc":"172:36:97","nodeType":"YulVariableDeclaration","src":"172:36:97","value":{"arguments":[{"name":"headStart","nativeSrc":"198:9:97","nodeType":"YulIdentifier","src":"198:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"185:12:97","nodeType":"YulIdentifier","src":"185:12:97"},"nativeSrc":"185:23:97","nodeType":"YulFunctionCall","src":"185:23:97"},"variables":[{"name":"value","nativeSrc":"176:5:97","nodeType":"YulTypedName","src":"176:5:97","type":""}]},{"body":{"nativeSrc":"294:16:97","nodeType":"YulBlock","src":"294:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"303:1:97","nodeType":"YulLiteral","src":"303:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"306:1:97","nodeType":"YulLiteral","src":"306:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"296:6:97","nodeType":"YulIdentifier","src":"296:6:97"},"nativeSrc":"296:12:97","nodeType":"YulFunctionCall","src":"296:12:97"},"nativeSrc":"296:12:97","nodeType":"YulExpressionStatement","src":"296:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"230:5:97","nodeType":"YulIdentifier","src":"230:5:97"},{"arguments":[{"name":"value","nativeSrc":"241:5:97","nodeType":"YulIdentifier","src":"241:5:97"},{"kind":"number","nativeSrc":"248:42:97","nodeType":"YulLiteral","src":"248:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"237:3:97","nodeType":"YulIdentifier","src":"237:3:97"},"nativeSrc":"237:54:97","nodeType":"YulFunctionCall","src":"237:54:97"}],"functionName":{"name":"eq","nativeSrc":"227:2:97","nodeType":"YulIdentifier","src":"227:2:97"},"nativeSrc":"227:65:97","nodeType":"YulFunctionCall","src":"227:65:97"}],"functionName":{"name":"iszero","nativeSrc":"220:6:97","nodeType":"YulIdentifier","src":"220:6:97"},"nativeSrc":"220:73:97","nodeType":"YulFunctionCall","src":"220:73:97"},"nativeSrc":"217:93:97","nodeType":"YulIf","src":"217:93:97"},{"nativeSrc":"319:15:97","nodeType":"YulAssignment","src":"319:15:97","value":{"name":"value","nativeSrc":"329:5:97","nodeType":"YulIdentifier","src":"329:5:97"},"variableNames":[{"name":"value0","nativeSrc":"319:6:97","nodeType":"YulIdentifier","src":"319:6:97"}]},{"nativeSrc":"343:42:97","nodeType":"YulAssignment","src":"343:42:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"370:9:97","nodeType":"YulIdentifier","src":"370:9:97"},{"kind":"number","nativeSrc":"381:2:97","nodeType":"YulLiteral","src":"381:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"366:3:97","nodeType":"YulIdentifier","src":"366:3:97"},"nativeSrc":"366:18:97","nodeType":"YulFunctionCall","src":"366:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"353:12:97","nodeType":"YulIdentifier","src":"353:12:97"},"nativeSrc":"353:32:97","nodeType":"YulFunctionCall","src":"353:32:97"},"variableNames":[{"name":"value1","nativeSrc":"343:6:97","nodeType":"YulIdentifier","src":"343:6:97"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"14:377:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"59:9:97","nodeType":"YulTypedName","src":"59:9:97","type":""},{"name":"dataEnd","nativeSrc":"70:7:97","nodeType":"YulTypedName","src":"70:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"82:6:97","nodeType":"YulTypedName","src":"82:6:97","type":""},{"name":"value1","nativeSrc":"90:6:97","nodeType":"YulTypedName","src":"90:6:97","type":""}],"src":"14:377:97"},{"body":{"nativeSrc":"495:109:97","nodeType":"YulBlock","src":"495:109:97","statements":[{"nativeSrc":"505:26:97","nodeType":"YulAssignment","src":"505:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"517:9:97","nodeType":"YulIdentifier","src":"517:9:97"},{"kind":"number","nativeSrc":"528:2:97","nodeType":"YulLiteral","src":"528:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"513:3:97","nodeType":"YulIdentifier","src":"513:3:97"},"nativeSrc":"513:18:97","nodeType":"YulFunctionCall","src":"513:18:97"},"variableNames":[{"name":"tail","nativeSrc":"505:4:97","nodeType":"YulIdentifier","src":"505:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"547:9:97","nodeType":"YulIdentifier","src":"547:9:97"},{"arguments":[{"name":"value0","nativeSrc":"562:6:97","nodeType":"YulIdentifier","src":"562:6:97"},{"kind":"number","nativeSrc":"570:26:97","nodeType":"YulLiteral","src":"570:26:97","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"558:3:97","nodeType":"YulIdentifier","src":"558:3:97"},"nativeSrc":"558:39:97","nodeType":"YulFunctionCall","src":"558:39:97"}],"functionName":{"name":"mstore","nativeSrc":"540:6:97","nodeType":"YulIdentifier","src":"540:6:97"},"nativeSrc":"540:58:97","nodeType":"YulFunctionCall","src":"540:58:97"},"nativeSrc":"540:58:97","nodeType":"YulExpressionStatement","src":"540:58:97"}]},"name":"abi_encode_tuple_t_uint96__to_t_uint96__fromStack_reversed","nativeSrc":"396:208:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"464:9:97","nodeType":"YulTypedName","src":"464:9:97","type":""},{"name":"value0","nativeSrc":"475:6:97","nodeType":"YulTypedName","src":"475:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"486:4:97","nodeType":"YulTypedName","src":"486:4:97","type":""}],"src":"396:208:97"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n        value0 := value\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_uint96__to_t_uint96__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffff))\n    }\n}","id":97,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"6080604052348015600f57600080fd5b506004361060285760003560e01c8063782d6fe114602d575b600080fd5b604060383660046061565b600092915050565b6040516bffffffffffffffffffffffff909116815260200160405180910390f35b60008060408385031215607357600080fd5b823573ffffffffffffffffffffffffffffffffffffffff81168114609657600080fd5b94602093909301359350505056fea26469706673582212202f495c0b97bb68858bc09a7e29873a8cf9fa060dd106cca7fff91758fe69d5a864736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x28 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x782D6FE1 EQ PUSH1 0x2D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 PUSH1 0x38 CALLDATASIZE PUSH1 0x4 PUSH1 0x61 JUMP JUMPDEST PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH1 0x73 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH1 0x96 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2F BLOBHASH TLOAD SIGNEXTEND SWAP8 0xBB PUSH9 0x858BC09A7E29873A8C 0xF9 STATICCALL MOD 0xD 0xD1 MOD 0xCC 0xA7 SELFDESTRUCT 0xF9 OR PC INVALID PUSH10 0xD5A864736F6C63430008 NOT STOP CALLER ","sourceMap":"66:232:82:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;135:161;;;;;;:::i;:::-;219:6;135:161;;;;;;;;570:26:97;558:39;;;540:58;;528:2;513:18;135:161:82;;;;;;;14:377:97;82:6;90;143:2;131:9;122:7;118:23;114:32;111:52;;;159:1;156;149:12;111:52;198:9;185:23;248:42;241:5;237:54;230:5;227:65;217:93;;306:1;303;296:12;217:93;329:5;381:2;366:18;;;;353:32;;-1:-1:-1;;;14:377:97:o"},"gasEstimates":{"creation":{"codeDepositCost":"43600","executionCost":"93","totalCost":"43693"},"external":{"getPriorVotes(address,uint256)":"309"}},"methodIdentifiers":{"getPriorVotes(address,uint256)":"782d6fe1"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getPriorVotes\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/MockXVSVault.sol\":\"MockXVSVault\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"contracts/test/MockXVSVault.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ncontract MockXVSVault {\\n    /* solhint-disable no-unused-vars */\\n    function getPriorVotes(address account, uint256 blockNumber) external view returns (uint96) {\\n        /* solhint-enable no-unused-vars */\\n        return 0;\\n    }\\n}\\n\",\"keccak256\":\"0x69ac2c6384a690786f0ccba3c5e99501882a24319fcc311923fcbfd54feb10c6\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/test/TestTimelockV8.sol":{"TestTimelockV8":{"abi":[{"inputs":[{"internalType":"address","name":"admin_","type":"address"},{"internalType":"uint256","name":"delay_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"txHash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"string","name":"signature","type":"string"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"eta","type":"uint256"}],"name":"CancelTransaction","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"txHash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"string","name":"signature","type":"string"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"eta","type":"uint256"}],"name":"ExecuteTransaction","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldAdmin","type":"address"},{"indexed":true,"internalType":"address","name":"newAdmin","type":"address"}],"name":"NewAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"oldDelay","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"newDelay","type":"uint256"}],"name":"NewDelay","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newPendingAdmin","type":"address"}],"name":"NewPendingAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"txHash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"string","name":"signature","type":"string"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"eta","type":"uint256"}],"name":"QueueTransaction","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"GRACE_PERIOD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAXIMUM_DELAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MINIMUM_DELAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"signature","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"eta","type":"uint256"}],"name":"cancelTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"delay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"signature","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"eta","type":"uint256"}],"name":"executeTransaction","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pendingAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"signature","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"eta","type":"uint256"}],"name":"queueTransaction","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"queuedTransactions","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"delay_","type":"uint256"}],"name":"setDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingAdmin_","type":"address"}],"name":"setPendingAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{"GRACE_PERIOD()":{"returns":{"_0":"The duration of the grace period, specified as a uint256 value."}},"MAXIMUM_DELAY()":{"returns":{"_0":"Maximum delay"}},"MINIMUM_DELAY()":{"returns":{"_0":"Minimum delay"}},"acceptAdmin()":{"custom:access":"Sender must be pending admin","custom:event":"Emit NewAdmin with old and new admin"},"cancelTransaction(address,uint256,string,bytes,uint256)":{"custom:access":"Sender must be admin","custom:event":"Emit CancelTransaction","params":{"data":"Arguments to be passed to the function when called","eta":"Timestamp after which the transaction can be executed","signature":"Signature of the function to be called","target":"Address of the contract with the method to be called","value":"Native token amount sent with the transaction"}},"executeTransaction(address,uint256,string,bytes,uint256)":{"custom:access":"Sender must be admin","custom:event":"Emit ExecuteTransaction","params":{"data":"Arguments to be passed to the function when called","eta":"Timestamp after which the transaction can be executed","signature":"Signature of the function to be called","target":"Address of the contract with the method to be called","value":"Native token amount sent with the transaction"},"returns":{"_0":"Result of function call"}},"queueTransaction(address,uint256,string,bytes,uint256)":{"custom:access":"Sender must be admin","custom:event":"Emit QueueTransaction","params":{"data":"Arguments to be passed to the function when called","eta":"Timestamp after which the transaction can be executed","signature":"Signature of the function to be called","target":"Address of the contract with the method to be called","value":"Native token amount sent with the transaction"},"returns":{"_0":"Hash of the queued transaction"}},"setDelay(uint256)":{"custom:access":"Sender must be Timelock itself","custom:event":"Emit NewDelay with old and new delay","params":{"delay_":"The new delay period for the transaction queue"}},"setPendingAdmin(address)":{"custom:access":"Sender must be Timelock contract itself or admin","custom:event":"Emit NewPendingAdmin with new pending admin","params":{"pendingAdmin_":"Address of the proposed admin"}}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@MAXIMUM_DELAY_21294":{"entryPoint":null,"id":21294,"parameterSlots":0,"returnSlots":1},"@MINIMUM_DELAY_21285":{"entryPoint":null,"id":21285,"parameterSlots":0,"returnSlots":1},"@_14034":{"entryPoint":null,"id":14034,"parameterSlots":2,"returnSlots":0},"@_21267":{"entryPoint":null,"id":21267,"parameterSlots":2,"returnSlots":0},"@ensureNonzeroAddress_10945":{"entryPoint":346,"id":10945,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_addresst_uint256_fromMemory":{"entryPoint":388,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_stringliteral_22e01fcea901594c01d464b6c5f076874d475b75affb5ba136b9bcf9c2e8cf2f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_762218313af08cfa6c9b8eda00385502eefaa529f9945044fd2dee54ff5cefe0__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:1216:97","nodeType":"YulBlock","src":"0:1216:97","statements":[{"nativeSrc":"6:3:97","nodeType":"YulBlock","src":"6:3:97","statements":[]},{"body":{"nativeSrc":"112:253:97","nodeType":"YulBlock","src":"112:253:97","statements":[{"body":{"nativeSrc":"158:16:97","nodeType":"YulBlock","src":"158:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"167:1:97","nodeType":"YulLiteral","src":"167:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"170:1:97","nodeType":"YulLiteral","src":"170:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"160:6:97","nodeType":"YulIdentifier","src":"160:6:97"},"nativeSrc":"160:12:97","nodeType":"YulFunctionCall","src":"160:12:97"},"nativeSrc":"160:12:97","nodeType":"YulExpressionStatement","src":"160:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"133:7:97","nodeType":"YulIdentifier","src":"133:7:97"},{"name":"headStart","nativeSrc":"142:9:97","nodeType":"YulIdentifier","src":"142:9:97"}],"functionName":{"name":"sub","nativeSrc":"129:3:97","nodeType":"YulIdentifier","src":"129:3:97"},"nativeSrc":"129:23:97","nodeType":"YulFunctionCall","src":"129:23:97"},{"kind":"number","nativeSrc":"154:2:97","nodeType":"YulLiteral","src":"154:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"125:3:97","nodeType":"YulIdentifier","src":"125:3:97"},"nativeSrc":"125:32:97","nodeType":"YulFunctionCall","src":"125:32:97"},"nativeSrc":"122:52:97","nodeType":"YulIf","src":"122:52:97"},{"nativeSrc":"183:29:97","nodeType":"YulVariableDeclaration","src":"183:29:97","value":{"arguments":[{"name":"headStart","nativeSrc":"202:9:97","nodeType":"YulIdentifier","src":"202:9:97"}],"functionName":{"name":"mload","nativeSrc":"196:5:97","nodeType":"YulIdentifier","src":"196:5:97"},"nativeSrc":"196:16:97","nodeType":"YulFunctionCall","src":"196:16:97"},"variables":[{"name":"value","nativeSrc":"187:5:97","nodeType":"YulTypedName","src":"187:5:97","type":""}]},{"body":{"nativeSrc":"275:16:97","nodeType":"YulBlock","src":"275:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"284:1:97","nodeType":"YulLiteral","src":"284:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"287:1:97","nodeType":"YulLiteral","src":"287:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"277:6:97","nodeType":"YulIdentifier","src":"277:6:97"},"nativeSrc":"277:12:97","nodeType":"YulFunctionCall","src":"277:12:97"},"nativeSrc":"277:12:97","nodeType":"YulExpressionStatement","src":"277:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"234:5:97","nodeType":"YulIdentifier","src":"234:5:97"},{"arguments":[{"name":"value","nativeSrc":"245:5:97","nodeType":"YulIdentifier","src":"245:5:97"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"260:3:97","nodeType":"YulLiteral","src":"260:3:97","type":"","value":"160"},{"kind":"number","nativeSrc":"265:1:97","nodeType":"YulLiteral","src":"265:1:97","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"256:3:97","nodeType":"YulIdentifier","src":"256:3:97"},"nativeSrc":"256:11:97","nodeType":"YulFunctionCall","src":"256:11:97"},{"kind":"number","nativeSrc":"269:1:97","nodeType":"YulLiteral","src":"269:1:97","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"252:3:97","nodeType":"YulIdentifier","src":"252:3:97"},"nativeSrc":"252:19:97","nodeType":"YulFunctionCall","src":"252:19:97"}],"functionName":{"name":"and","nativeSrc":"241:3:97","nodeType":"YulIdentifier","src":"241:3:97"},"nativeSrc":"241:31:97","nodeType":"YulFunctionCall","src":"241:31:97"}],"functionName":{"name":"eq","nativeSrc":"231:2:97","nodeType":"YulIdentifier","src":"231:2:97"},"nativeSrc":"231:42:97","nodeType":"YulFunctionCall","src":"231:42:97"}],"functionName":{"name":"iszero","nativeSrc":"224:6:97","nodeType":"YulIdentifier","src":"224:6:97"},"nativeSrc":"224:50:97","nodeType":"YulFunctionCall","src":"224:50:97"},"nativeSrc":"221:70:97","nodeType":"YulIf","src":"221:70:97"},{"nativeSrc":"300:15:97","nodeType":"YulAssignment","src":"300:15:97","value":{"name":"value","nativeSrc":"310:5:97","nodeType":"YulIdentifier","src":"310:5:97"},"variableNames":[{"name":"value0","nativeSrc":"300:6:97","nodeType":"YulIdentifier","src":"300:6:97"}]},{"nativeSrc":"324:35:97","nodeType":"YulAssignment","src":"324:35:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"344:9:97","nodeType":"YulIdentifier","src":"344:9:97"},{"kind":"number","nativeSrc":"355:2:97","nodeType":"YulLiteral","src":"355:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"340:3:97","nodeType":"YulIdentifier","src":"340:3:97"},"nativeSrc":"340:18:97","nodeType":"YulFunctionCall","src":"340:18:97"}],"functionName":{"name":"mload","nativeSrc":"334:5:97","nodeType":"YulIdentifier","src":"334:5:97"},"nativeSrc":"334:25:97","nodeType":"YulFunctionCall","src":"334:25:97"},"variableNames":[{"name":"value1","nativeSrc":"324:6:97","nodeType":"YulIdentifier","src":"324:6:97"}]}]},"name":"abi_decode_tuple_t_addresst_uint256_fromMemory","nativeSrc":"14:351:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"70:9:97","nodeType":"YulTypedName","src":"70:9:97","type":""},{"name":"dataEnd","nativeSrc":"81:7:97","nodeType":"YulTypedName","src":"81:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"93:6:97","nodeType":"YulTypedName","src":"93:6:97","type":""},{"name":"value1","nativeSrc":"101:6:97","nodeType":"YulTypedName","src":"101:6:97","type":""}],"src":"14:351:97"},{"body":{"nativeSrc":"544:245:97","nodeType":"YulBlock","src":"544:245:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"561:9:97","nodeType":"YulIdentifier","src":"561:9:97"},{"kind":"number","nativeSrc":"572:2:97","nodeType":"YulLiteral","src":"572:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"554:6:97","nodeType":"YulIdentifier","src":"554:6:97"},"nativeSrc":"554:21:97","nodeType":"YulFunctionCall","src":"554:21:97"},"nativeSrc":"554:21:97","nodeType":"YulExpressionStatement","src":"554:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"595:9:97","nodeType":"YulIdentifier","src":"595:9:97"},{"kind":"number","nativeSrc":"606:2:97","nodeType":"YulLiteral","src":"606:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"591:3:97","nodeType":"YulIdentifier","src":"591:3:97"},"nativeSrc":"591:18:97","nodeType":"YulFunctionCall","src":"591:18:97"},{"kind":"number","nativeSrc":"611:2:97","nodeType":"YulLiteral","src":"611:2:97","type":"","value":"55"}],"functionName":{"name":"mstore","nativeSrc":"584:6:97","nodeType":"YulIdentifier","src":"584:6:97"},"nativeSrc":"584:30:97","nodeType":"YulFunctionCall","src":"584:30:97"},"nativeSrc":"584:30:97","nodeType":"YulExpressionStatement","src":"584:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"634:9:97","nodeType":"YulIdentifier","src":"634:9:97"},{"kind":"number","nativeSrc":"645:2:97","nodeType":"YulLiteral","src":"645:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"630:3:97","nodeType":"YulIdentifier","src":"630:3:97"},"nativeSrc":"630:18:97","nodeType":"YulFunctionCall","src":"630:18:97"},{"hexValue":"54696d656c6f636b3a3a636f6e7374727563746f723a2044656c6179206d7573","kind":"string","nativeSrc":"650:34:97","nodeType":"YulLiteral","src":"650:34:97","type":"","value":"Timelock::constructor: Delay mus"}],"functionName":{"name":"mstore","nativeSrc":"623:6:97","nodeType":"YulIdentifier","src":"623:6:97"},"nativeSrc":"623:62:97","nodeType":"YulFunctionCall","src":"623:62:97"},"nativeSrc":"623:62:97","nodeType":"YulExpressionStatement","src":"623:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"705:9:97","nodeType":"YulIdentifier","src":"705:9:97"},{"kind":"number","nativeSrc":"716:2:97","nodeType":"YulLiteral","src":"716:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"701:3:97","nodeType":"YulIdentifier","src":"701:3:97"},"nativeSrc":"701:18:97","nodeType":"YulFunctionCall","src":"701:18:97"},{"hexValue":"7420657863656564206d696e696d756d2064656c61792e","kind":"string","nativeSrc":"721:25:97","nodeType":"YulLiteral","src":"721:25:97","type":"","value":"t exceed minimum delay."}],"functionName":{"name":"mstore","nativeSrc":"694:6:97","nodeType":"YulIdentifier","src":"694:6:97"},"nativeSrc":"694:53:97","nodeType":"YulFunctionCall","src":"694:53:97"},"nativeSrc":"694:53:97","nodeType":"YulExpressionStatement","src":"694:53:97"},{"nativeSrc":"756:27:97","nodeType":"YulAssignment","src":"756:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"768:9:97","nodeType":"YulIdentifier","src":"768:9:97"},{"kind":"number","nativeSrc":"779:3:97","nodeType":"YulLiteral","src":"779:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"764:3:97","nodeType":"YulIdentifier","src":"764:3:97"},"nativeSrc":"764:19:97","nodeType":"YulFunctionCall","src":"764:19:97"},"variableNames":[{"name":"tail","nativeSrc":"756:4:97","nodeType":"YulIdentifier","src":"756:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_22e01fcea901594c01d464b6c5f076874d475b75affb5ba136b9bcf9c2e8cf2f__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"370:419:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"521:9:97","nodeType":"YulTypedName","src":"521:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"535:4:97","nodeType":"YulTypedName","src":"535:4:97","type":""}],"src":"370:419:97"},{"body":{"nativeSrc":"968:246:97","nodeType":"YulBlock","src":"968:246:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"985:9:97","nodeType":"YulIdentifier","src":"985:9:97"},{"kind":"number","nativeSrc":"996:2:97","nodeType":"YulLiteral","src":"996:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"978:6:97","nodeType":"YulIdentifier","src":"978:6:97"},"nativeSrc":"978:21:97","nodeType":"YulFunctionCall","src":"978:21:97"},"nativeSrc":"978:21:97","nodeType":"YulExpressionStatement","src":"978:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1019:9:97","nodeType":"YulIdentifier","src":"1019:9:97"},{"kind":"number","nativeSrc":"1030:2:97","nodeType":"YulLiteral","src":"1030:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1015:3:97","nodeType":"YulIdentifier","src":"1015:3:97"},"nativeSrc":"1015:18:97","nodeType":"YulFunctionCall","src":"1015:18:97"},{"kind":"number","nativeSrc":"1035:2:97","nodeType":"YulLiteral","src":"1035:2:97","type":"","value":"56"}],"functionName":{"name":"mstore","nativeSrc":"1008:6:97","nodeType":"YulIdentifier","src":"1008:6:97"},"nativeSrc":"1008:30:97","nodeType":"YulFunctionCall","src":"1008:30:97"},"nativeSrc":"1008:30:97","nodeType":"YulExpressionStatement","src":"1008:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1058:9:97","nodeType":"YulIdentifier","src":"1058:9:97"},{"kind":"number","nativeSrc":"1069:2:97","nodeType":"YulLiteral","src":"1069:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1054:3:97","nodeType":"YulIdentifier","src":"1054:3:97"},"nativeSrc":"1054:18:97","nodeType":"YulFunctionCall","src":"1054:18:97"},{"hexValue":"54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e","kind":"string","nativeSrc":"1074:34:97","nodeType":"YulLiteral","src":"1074:34:97","type":"","value":"Timelock::setDelay: Delay must n"}],"functionName":{"name":"mstore","nativeSrc":"1047:6:97","nodeType":"YulIdentifier","src":"1047:6:97"},"nativeSrc":"1047:62:97","nodeType":"YulFunctionCall","src":"1047:62:97"},"nativeSrc":"1047:62:97","nodeType":"YulExpressionStatement","src":"1047:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1129:9:97","nodeType":"YulIdentifier","src":"1129:9:97"},{"kind":"number","nativeSrc":"1140:2:97","nodeType":"YulLiteral","src":"1140:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"1125:3:97","nodeType":"YulIdentifier","src":"1125:3:97"},"nativeSrc":"1125:18:97","nodeType":"YulFunctionCall","src":"1125:18:97"},{"hexValue":"6f7420657863656564206d6178696d756d2064656c61792e","kind":"string","nativeSrc":"1145:26:97","nodeType":"YulLiteral","src":"1145:26:97","type":"","value":"ot exceed maximum delay."}],"functionName":{"name":"mstore","nativeSrc":"1118:6:97","nodeType":"YulIdentifier","src":"1118:6:97"},"nativeSrc":"1118:54:97","nodeType":"YulFunctionCall","src":"1118:54:97"},"nativeSrc":"1118:54:97","nodeType":"YulExpressionStatement","src":"1118:54:97"},{"nativeSrc":"1181:27:97","nodeType":"YulAssignment","src":"1181:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1193:9:97","nodeType":"YulIdentifier","src":"1193:9:97"},{"kind":"number","nativeSrc":"1204:3:97","nodeType":"YulLiteral","src":"1204:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"1189:3:97","nodeType":"YulIdentifier","src":"1189:3:97"},"nativeSrc":"1189:19:97","nodeType":"YulFunctionCall","src":"1189:19:97"},"variableNames":[{"name":"tail","nativeSrc":"1181:4:97","nodeType":"YulIdentifier","src":"1181:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_762218313af08cfa6c9b8eda00385502eefaa529f9945044fd2dee54ff5cefe0__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"794:420:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"945:9:97","nodeType":"YulTypedName","src":"945:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"959:4:97","nodeType":"YulTypedName","src":"959:4:97","type":""}],"src":"794:420:97"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_addresst_uint256_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n        value0 := value\n        value1 := mload(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_stringliteral_22e01fcea901594c01d464b6c5f076874d475b75affb5ba136b9bcf9c2e8cf2f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 55)\n        mstore(add(headStart, 64), \"Timelock::constructor: Delay mus\")\n        mstore(add(headStart, 96), \"t exceed minimum delay.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_762218313af08cfa6c9b8eda00385502eefaa529f9945044fd2dee54ff5cefe0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 56)\n        mstore(add(headStart, 64), \"Timelock::setDelay: Delay must n\")\n        mstore(add(headStart, 96), \"ot exceed maximum delay.\")\n        tail := add(headStart, 128)\n    }\n}","id":97,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b5060405161152b38038061152b83398101604081905261002f91610184565b818160018110156100ad5760405162461bcd60e51b815260206004820152603760248201527f54696d656c6f636b3a3a636f6e7374727563746f723a2044656c6179206d757360448201527f7420657863656564206d696e696d756d2064656c61792e00000000000000000060648201526084015b60405180910390fd5b610e108111156101255760405162461bcd60e51b815260206004820152603860248201527f54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e60448201527f6f7420657863656564206d6178696d756d2064656c61792e000000000000000060648201526084016100a4565b61012e8261015a565b600080546001600160a01b0319166001600160a01b039390931692909217909155600255506101be9050565b6001600160a01b038116610181576040516342bcdf7f60e11b815260040160405180910390fd5b50565b6000806040838503121561019757600080fd5b82516001600160a01b03811681146101ae57600080fd5b6020939093015192949293505050565b61135e806101cd6000396000f3fe6080604052600436106100c95760003560e01c80636a42b8f811610079578063c1a287e211610056578063c1a287e2146101ec578063e177246e14610215578063f2b0653714610235578063f851a4401461027557005b80636a42b8f8146101d65780637d645fab146101ec578063b1b43ae51461020157005b80633a66f901116100a75780633a66f901146101685780634dd18bf514610196578063591fcdfe146101b657005b80630825f38f146100cb5780630e18b681146101015780632678224714610116575b005b3480156100d757600080fd5b506100eb6100e6366004611055565b6102a2565b6040516100f8919061110c565b60405180910390f35b34801561010d57600080fd5b506100c9610731565b34801561012257600080fd5b506001546101439073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100f8565b34801561017457600080fd5b50610188610183366004611055565b61083b565b6040519081526020016100f8565b3480156101a257600080fd5b506100c96101b136600461115d565b610aeb565b3480156101c257600080fd5b506100c96101d1366004611055565b610bfa565b3480156101e257600080fd5b5061018860025481565b3480156101f857600080fd5b50610e10610188565b34801561020d57600080fd5b506001610188565b34801561022157600080fd5b506100c961023036600461117f565b610dfb565b34801561024157600080fd5b5061026561025036600461117f565b60036020526000908152604090205460ff1681565b60405190151581526020016100f8565b34801561028157600080fd5b506000546101439073ffffffffffffffffffffffffffffffffffffffff1681565b60005460609073ffffffffffffffffffffffffffffffffffffffff1633146103375760405162461bcd60e51b815260206004820152603860248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20436160448201527f6c6c206d75737420636f6d652066726f6d2061646d696e2e000000000000000060648201526084015b60405180910390fd5b60008888888888888860405160200161035697969594939291906111e1565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291815281516020928301206000818152600390935291205490915060ff166104115760405162461bcd60e51b815260206004820152603d60248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20547260448201527f616e73616374696f6e206861736e2774206265656e207175657565642e000000606482015260840161032e565b824210156104ad5760405162461bcd60e51b815260206004820152604560248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20547260448201527f616e73616374696f6e206861736e2774207375727061737365642074696d652060648201527f6c6f636b2e000000000000000000000000000000000000000000000000000000608482015260a40161032e565b6104b9610e108461123f565b42111561052e5760405162461bcd60e51b815260206004820152603360248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20547260448201527f616e73616374696f6e206973207374616c652e00000000000000000000000000606482015260840161032e565b600081815260036020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556060908790036105ab5785858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293506105e692505050565b87876040516105bb92919061127f565b6040519081900381206105d4918890889060200161128f565b60405160208183030381529060405290505b6000808b73ffffffffffffffffffffffffffffffffffffffff168b8460405161060f91906112cb565b60006040518083038185875af1925050503d806000811461064c576040519150601f19603f3d011682016040523d82523d6000602084013e610651565b606091505b5091509150816106c95760405162461bcd60e51b815260206004820152603d60248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20547260448201527f616e73616374696f6e20657865637574696f6e2072657665727465642e000000606482015260840161032e565b8b73ffffffffffffffffffffffffffffffffffffffff16847fa560e3198060a2f10670c1ec5b403077ea6ae93ca8de1c32b451dc1a943cd6e78d8d8d8d8d8d60405161071a969594939291906112e7565b60405180910390a39b9a5050505050505050505050565b60015473ffffffffffffffffffffffffffffffffffffffff1633146107be5760405162461bcd60e51b815260206004820152603860248201527f54696d656c6f636b3a3a61636365707441646d696e3a2043616c6c206d75737460448201527f20636f6d652066726f6d2070656e64696e6741646d696e2e0000000000000000606482015260840161032e565b60008054604051339273ffffffffffffffffffffffffffffffffffffffff909216917ff9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc91a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081163317909155600180549091169055565b6000805473ffffffffffffffffffffffffffffffffffffffff1633146108c95760405162461bcd60e51b815260206004820152603660248201527f54696d656c6f636b3a3a71756575655472616e73616374696f6e3a2043616c6c60448201527f206d75737420636f6d652066726f6d2061646d696e2e00000000000000000000606482015260840161032e565b6002546108d6904261123f565b8210156109715760405162461bcd60e51b815260206004820152604960248201527f54696d656c6f636b3a3a71756575655472616e73616374696f6e3a204573746960448201527f6d6174656420657865637574696f6e20626c6f636b206d75737420736174697360648201527f66792064656c61792e0000000000000000000000000000000000000000000000608482015260a40161032e565b60008888888888888860405160200161099097969594939291906111e1565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291815281516020928301206000818152600390935291205490915060ff1615610a4c5760405162461bcd60e51b815260206004820152603760248201527f54696d656c6f636b3a3a71756575655472616e73616374696f6e3a207472616e60448201527f73616374696f6e20616c7265616479207175657565642e000000000000000000606482015260840161032e565b6000818152600360205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555173ffffffffffffffffffffffffffffffffffffffff8a169082907f76e2796dc3a81d57b0e8504b647febcbeeb5f4af818e164f11eef8131a6a763f90610ad7908c908c908c908c908c908c906112e7565b60405180910390a398975050505050505050565b33301480610b10575060005473ffffffffffffffffffffffffffffffffffffffff1633145b610b825760405162461bcd60e51b815260206004820152603860248201527f54696d656c6f636b3a3a73657450656e64696e6741646d696e3a2043616c6c2060448201527f6d75737420636f6d652066726f6d2054696d656c6f636b2e0000000000000000606482015260840161032e565b610b8b81610f93565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f69d78e38a01985fbb1462961809b4b2d65531bc93b2b94037f3334b82ca4a75690600090a250565b60005473ffffffffffffffffffffffffffffffffffffffff163314610c875760405162461bcd60e51b815260206004820152603760248201527f54696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a2043616c60448201527f6c206d75737420636f6d652066726f6d2061646d696e2e000000000000000000606482015260840161032e565b600087878787878787604051602001610ca697969594939291906111e1565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291815281516020928301206000818152600390935291205490915060ff16610d615760405162461bcd60e51b815260206004820152603b60248201527f54696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a2074726160448201527f6e73616374696f6e206973206e6f7420717565756564207965742e0000000000606482015260840161032e565b6000818152600360205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555173ffffffffffffffffffffffffffffffffffffffff89169082907f2fffc091a501fd91bfbff27141450d3acb40fb8e6d8382b243ec7a812a3aaf8790610de9908b908b908b908b908b908b906112e7565b60405180910390a35050505050505050565b333014610e705760405162461bcd60e51b815260206004820152603160248201527f54696d656c6f636b3a3a73657444656c61793a2043616c6c206d75737420636f60448201527f6d652066726f6d2054696d656c6f636b2e000000000000000000000000000000606482015260840161032e565b6001811015610ee75760405162461bcd60e51b815260206004820152603460248201527f54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206560448201527f7863656564206d696e696d756d2064656c61792e000000000000000000000000606482015260840161032e565b610e10811115610f5f5760405162461bcd60e51b815260206004820152603860248201527f54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e60448201527f6f7420657863656564206d6178696d756d2064656c61792e0000000000000000606482015260840161032e565b6002546040518291907fed0229422af39d4d7d33f7a27d31d6f5cb20ec628293da58dd6e8a528ed466be90600090a3600255565b73ffffffffffffffffffffffffffffffffffffffff8116610fe0576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b803573ffffffffffffffffffffffffffffffffffffffff8116811461100757600080fd5b919050565b60008083601f84011261101e57600080fd5b50813567ffffffffffffffff81111561103657600080fd5b60208301915083602082850101111561104e57600080fd5b9250929050565b600080600080600080600060a0888a03121561107057600080fd5b61107988610fe3565b965060208801359550604088013567ffffffffffffffff8082111561109d57600080fd5b6110a98b838c0161100c565b909750955060608a01359150808211156110c257600080fd5b506110cf8a828b0161100c565b989b979a50959894979596608090950135949350505050565b60005b838110156111035781810151838201526020016110eb565b50506000910152565b602081526000825180602084015261112b8160408501602087016110e8565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60006020828403121561116f57600080fd5b61117882610fe3565b9392505050565b60006020828403121561119157600080fd5b5035919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8816815286602082015260a06040820152600061121760a083018789611198565b828103606084015261122a818688611198565b91505082608083015298975050505050505050565b80820180821115611279577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b92915050565b8183823760009101908152919050565b7fffffffff0000000000000000000000000000000000000000000000000000000084168152818360048301376000910160040190815292915050565b600082516112dd8184602087016110e8565b9190910192915050565b868152608060208201526000611301608083018789611198565b8281036040840152611314818688611198565b91505082606083015297965050505050505056fea2646970667358221220f2ebbbc2962ab36d932af22dc3db85cd054b82dec65045e01307fcab3adf4b8764736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x152B CODESIZE SUB DUP1 PUSH2 0x152B DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x184 JUMP JUMPDEST DUP2 DUP2 PUSH1 0x1 DUP2 LT ISZERO PUSH2 0xAD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x37 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A636F6E7374727563746F723A2044656C6179206D7573 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7420657863656564206D696E696D756D2064656C61792E000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xE10 DUP2 GT ISZERO PUSH2 0x125 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A73657444656C61793A2044656C6179206D757374206E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F7420657863656564206D6178696D756D2064656C61792E0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA4 JUMP JUMPDEST PUSH2 0x12E DUP3 PUSH2 0x15A JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x2 SSTORE POP PUSH2 0x1BE SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x181 JUMPI PUSH1 0x40 MLOAD PUSH4 0x42BCDF7F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x197 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD MLOAD SWAP3 SWAP5 SWAP3 SWAP4 POP POP POP JUMP JUMPDEST PUSH2 0x135E DUP1 PUSH2 0x1CD PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xC9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6A42B8F8 GT PUSH2 0x79 JUMPI DUP1 PUSH4 0xC1A287E2 GT PUSH2 0x56 JUMPI DUP1 PUSH4 0xC1A287E2 EQ PUSH2 0x1EC JUMPI DUP1 PUSH4 0xE177246E EQ PUSH2 0x215 JUMPI DUP1 PUSH4 0xF2B06537 EQ PUSH2 0x235 JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x275 JUMPI STOP JUMPDEST DUP1 PUSH4 0x6A42B8F8 EQ PUSH2 0x1D6 JUMPI DUP1 PUSH4 0x7D645FAB EQ PUSH2 0x1EC JUMPI DUP1 PUSH4 0xB1B43AE5 EQ PUSH2 0x201 JUMPI STOP JUMPDEST DUP1 PUSH4 0x3A66F901 GT PUSH2 0xA7 JUMPI DUP1 PUSH4 0x3A66F901 EQ PUSH2 0x168 JUMPI DUP1 PUSH4 0x4DD18BF5 EQ PUSH2 0x196 JUMPI DUP1 PUSH4 0x591FCDFE EQ PUSH2 0x1B6 JUMPI STOP JUMPDEST DUP1 PUSH4 0x825F38F EQ PUSH2 0xCB JUMPI DUP1 PUSH4 0xE18B681 EQ PUSH2 0x101 JUMPI DUP1 PUSH4 0x26782247 EQ PUSH2 0x116 JUMPI JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xEB PUSH2 0xE6 CALLDATASIZE PUSH1 0x4 PUSH2 0x1055 JUMP JUMPDEST PUSH2 0x2A2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF8 SWAP2 SWAP1 PUSH2 0x110C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x10D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC9 PUSH2 0x731 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x122 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x143 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x174 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x188 PUSH2 0x183 CALLDATASIZE PUSH1 0x4 PUSH2 0x1055 JUMP JUMPDEST PUSH2 0x83B JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC9 PUSH2 0x1B1 CALLDATASIZE PUSH1 0x4 PUSH2 0x115D JUMP JUMPDEST PUSH2 0xAEB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC9 PUSH2 0x1D1 CALLDATASIZE PUSH1 0x4 PUSH2 0x1055 JUMP JUMPDEST PUSH2 0xBFA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x188 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE10 PUSH2 0x188 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH2 0x188 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x221 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC9 PUSH2 0x230 CALLDATASIZE PUSH1 0x4 PUSH2 0x117F JUMP JUMPDEST PUSH2 0xDFB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x241 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x265 PUSH2 0x250 CALLDATASIZE PUSH1 0x4 PUSH2 0x117F JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x281 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x143 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x60 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x337 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A657865637574655472616E73616374696F6E3A204361 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C6C206D75737420636F6D652066726F6D2061646D696E2E0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x356 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x11E1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 SWAP1 SWAP4 MSTORE SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND PUSH2 0x411 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A657865637574655472616E73616374696F6E3A205472 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616E73616374696F6E206861736E2774206265656E207175657565642E000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32E JUMP JUMPDEST DUP3 TIMESTAMP LT ISZERO PUSH2 0x4AD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A657865637574655472616E73616374696F6E3A205472 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616E73616374696F6E206861736E2774207375727061737365642074696D6520 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6C6F636B2E000000000000000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0x32E JUMP JUMPDEST PUSH2 0x4B9 PUSH2 0xE10 DUP5 PUSH2 0x123F JUMP JUMPDEST TIMESTAMP GT ISZERO PUSH2 0x52E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x33 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A657865637574655472616E73616374696F6E3A205472 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616E73616374696F6E206973207374616C652E00000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND SWAP1 SSTORE PUSH1 0x60 SWAP1 DUP8 SWAP1 SUB PUSH2 0x5AB JUMPI DUP6 DUP6 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP3 SWAP4 POP PUSH2 0x5E6 SWAP3 POP POP POP JUMP JUMPDEST DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0x5BB SWAP3 SWAP2 SWAP1 PUSH2 0x127F JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 PUSH2 0x5D4 SWAP2 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x20 ADD PUSH2 0x128F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP JUMPDEST PUSH1 0x0 DUP1 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP12 DUP5 PUSH1 0x40 MLOAD PUSH2 0x60F SWAP2 SWAP1 PUSH2 0x12CB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x64C JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x651 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x6C9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A657865637574655472616E73616374696F6E3A205472 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616E73616374696F6E20657865637574696F6E2072657665727465642E000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32E JUMP JUMPDEST DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0xA560E3198060A2F10670C1EC5B403077EA6AE93CA8DE1C32B451DC1A943CD6E7 DUP14 DUP14 DUP14 DUP14 DUP14 DUP14 PUSH1 0x40 MLOAD PUSH2 0x71A SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x12E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x7BE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A61636365707441646D696E3A2043616C6C206D757374 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x20636F6D652066726F6D2070656E64696E6741646D696E2E0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD CALLER SWAP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 PUSH32 0xF9FFABCA9C8276E99321725BCB43FB076A6C66A54B7F21C4E8146D8519B417DC SWAP2 LOG3 PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP1 DUP2 AND CALLER OR SWAP1 SWAP2 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x8C9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x36 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A71756575655472616E73616374696F6E3A2043616C6C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x206D75737420636F6D652066726F6D2061646D696E2E00000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x8D6 SWAP1 TIMESTAMP PUSH2 0x123F JUMP JUMPDEST DUP3 LT ISZERO PUSH2 0x971 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x49 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A71756575655472616E73616374696F6E3A2045737469 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6D6174656420657865637574696F6E20626C6F636B206D757374207361746973 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x66792064656C61792E0000000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x0 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x990 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x11E1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 SWAP1 SWAP4 MSTORE SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND ISZERO PUSH2 0xA4C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x37 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A71756575655472616E73616374696F6E3A207472616E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x73616374696F6E20616C7265616479207175657565642E000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND PUSH1 0x1 OR SWAP1 SSTORE MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP11 AND SWAP1 DUP3 SWAP1 PUSH32 0x76E2796DC3A81D57B0E8504B647FEBCBEEB5F4AF818E164F11EEF8131A6A763F SWAP1 PUSH2 0xAD7 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH2 0x12E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST CALLER ADDRESS EQ DUP1 PUSH2 0xB10 JUMPI POP PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ JUMPDEST PUSH2 0xB82 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A73657450656E64696E6741646D696E3A2043616C6C20 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6D75737420636F6D652066726F6D2054696D656C6F636B2E0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32E JUMP JUMPDEST PUSH2 0xB8B DUP2 PUSH2 0xF93 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x69D78E38A01985FBB1462961809B4B2D65531BC93B2B94037F3334B82CA4A756 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0xC87 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x37 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A63616E63656C5472616E73616374696F6E3A2043616C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C206D75737420636F6D652066726F6D2061646D696E2E000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x0 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xCA6 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x11E1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 SWAP1 SWAP4 MSTORE SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND PUSH2 0xD61 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A63616E63656C5472616E73616374696F6E3A20747261 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E73616374696F6E206973206E6F7420717565756564207965742E0000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND SWAP1 SSTORE MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP10 AND SWAP1 DUP3 SWAP1 PUSH32 0x2FFFC091A501FD91BFBFF27141450D3ACB40FB8E6D8382B243EC7A812A3AAF87 SWAP1 PUSH2 0xDE9 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH2 0x12E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP POP JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0xE70 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A73657444656C61793A2043616C6C206D75737420636F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6D652066726F6D2054696D656C6F636B2E000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x1 DUP2 LT ISZERO PUSH2 0xEE7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x34 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A73657444656C61793A2044656C6179206D7573742065 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7863656564206D696E696D756D2064656C61792E000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32E JUMP JUMPDEST PUSH2 0xE10 DUP2 GT ISZERO PUSH2 0xF5F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A73657444656C61793A2044656C6179206D757374206E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F7420657863656564206D6178696D756D2064656C61792E0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD DUP3 SWAP2 SWAP1 PUSH32 0xED0229422AF39D4D7D33F7A27D31D6F5CB20EC628293DA58DD6E8A528ED466BE SWAP1 PUSH1 0x0 SWAP1 LOG3 PUSH1 0x2 SSTORE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0xFE0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8579BEFE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x1007 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x101E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1036 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x104E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x1070 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1079 DUP9 PUSH2 0xFE3 JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x109D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10A9 DUP12 DUP4 DUP13 ADD PUSH2 0x100C JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP PUSH1 0x60 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x10C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10CF DUP11 DUP3 DUP12 ADD PUSH2 0x100C JUMP JUMPDEST SWAP9 SWAP12 SWAP8 SWAP11 POP SWAP6 SWAP9 SWAP5 SWAP8 SWAP6 SWAP7 PUSH1 0x80 SWAP1 SWAP6 ADD CALLDATALOAD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1103 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x10EB JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x112B DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x10E8 JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x116F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1178 DUP3 PUSH2 0xFE3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1191 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 ADD ADD MSTORE PUSH1 0x0 PUSH1 0x20 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 PUSH1 0x1F DUP5 ADD AND DUP5 ADD ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP9 AND DUP2 MSTORE DUP7 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1217 PUSH1 0xA0 DUP4 ADD DUP8 DUP10 PUSH2 0x1198 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x122A DUP2 DUP7 DUP9 PUSH2 0x1198 JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x80 DUP4 ADD MSTORE SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x1279 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP5 AND DUP2 MSTORE DUP2 DUP4 PUSH1 0x4 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 ADD PUSH1 0x4 ADD SWAP1 DUP2 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x12DD DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x10E8 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP7 DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1301 PUSH1 0x80 DUP4 ADD DUP8 DUP10 PUSH2 0x1198 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x1314 DUP2 DUP7 DUP9 PUSH2 0x1198 JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x60 DUP4 ADD MSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLCODE 0xEB 0xBB 0xC2 SWAP7 0x2A 0xB3 PUSH14 0x932AF22DC3DB85CD054B82DEC650 GASLIMIT 0xE0 SGT SMOD 0xFC 0xAB GASPRICE 0xDF 0x4B DUP8 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"125:422:83:-:0;;;169:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;231:6;239;436:1;2488:6:59;:25;;2480:93;;;;-1:-1:-1;;;2480:93:59;;572:2:97;2480:93:59;;;554:21:97;611:2;591:18;;;584:30;650:34;630:18;;;623:62;721:25;701:18;;;694:53;764:19;;2480:93:59;;;;;;;;;531:7:83;2591:6:59;:25;;2583:94;;;;-1:-1:-1;;;2583:94:59;;996:2:97;2583:94:59;;;978:21:97;1035:2;1015:18;;;1008:30;1074:34;1054:18;;;1047:62;1145:26;1125:18;;;1118:54;1189:19;;2583:94:59;794:420:97;2583:94:59;2687:28;2708:6;2687:20;:28::i;:::-;2726:5;:14;;-1:-1:-1;;;;;;2726:14:59;-1:-1:-1;;;;;2726:14:59;;;;;;;;;;;2750:5;:14;-1:-1:-1;125:422:83;;-1:-1:-1;125:422:83;485:136:47;-1:-1:-1;;;;;548:22:47;;544:75;;589:23;;-1:-1:-1;;;589:23:47;;;;;;;;;;;544:75;485:136;:::o;14:351:97:-;93:6;101;154:2;142:9;133:7;129:23;125:32;122:52;;;170:1;167;160:12;122:52;196:16;;-1:-1:-1;;;;;241:31:97;;231:42;;221:70;;287:1;284;277:12;221:70;355:2;340:18;;;;334:25;310:5;;334:25;;-1:-1:-1;;;14:351:97:o;794:420::-;125:422:83;;;;;;"},"deployedBytecode":{"functionDebugData":{"@GRACE_PERIOD_21276":{"entryPoint":null,"id":21276,"parameterSlots":0,"returnSlots":1},"@MAXIMUM_DELAY_21294":{"entryPoint":null,"id":21294,"parameterSlots":0,"returnSlots":1},"@MINIMUM_DELAY_21285":{"entryPoint":null,"id":21285,"parameterSlots":0,"returnSlots":1},"@_14038":{"entryPoint":null,"id":14038,"parameterSlots":0,"returnSlots":0},"@acceptAdmin_14139":{"entryPoint":1841,"id":14139,"parameterSlots":0,"returnSlots":0},"@admin_13923":{"entryPoint":null,"id":13923,"parameterSlots":0,"returnSlots":0},"@cancelTransaction_14305":{"entryPoint":3066,"id":14305,"parameterSlots":7,"returnSlots":0},"@delay_13929":{"entryPoint":null,"id":13929,"parameterSlots":0,"returnSlots":0},"@ensureNonzeroAddress_10945":{"entryPoint":3987,"id":10945,"parameterSlots":1,"returnSlots":0},"@executeTransaction_14435":{"entryPoint":674,"id":14435,"parameterSlots":7,"returnSlots":1},"@getBlockTimestamp_14445":{"entryPoint":null,"id":14445,"parameterSlots":0,"returnSlots":1},"@pendingAdmin_13926":{"entryPoint":null,"id":13926,"parameterSlots":0,"returnSlots":0},"@queueTransaction_14247":{"entryPoint":2107,"id":14247,"parameterSlots":7,"returnSlots":1},"@queuedTransactions_13934":{"entryPoint":null,"id":13934,"parameterSlots":0,"returnSlots":0},"@setDelay_14081":{"entryPoint":3579,"id":14081,"parameterSlots":1,"returnSlots":0},"@setPendingAdmin_14174":{"entryPoint":2795,"id":14174,"parameterSlots":1,"returnSlots":0},"abi_decode_address":{"entryPoint":4067,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_string_calldata":{"entryPoint":4108,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address":{"entryPoint":4445,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_uint256t_string_calldata_ptrt_bytes_calldata_ptrt_uint256":{"entryPoint":4181,"id":null,"parameterSlots":2,"returnSlots":7},"abi_decode_tuple_t_bytes32":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":4479,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_string_calldata":{"entryPoint":4504,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_bytes4_t_bytes_calldata_ptr__to_t_bytes4_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":4751,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":4735,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":4811,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_string_calldata_ptr_t_bytes_calldata_ptr_t_uint256__to_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed":{"entryPoint":4577,"id":null,"parameterSlots":8,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":4364,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0cbc65ac44dc8b90b8bc4c38c9c6ad704bfeb2c8170538058496c0e805dfa947__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_135e413b08c779b9b925daaaf6178471ba60ebd33d413d809c76a0d4e8beaf3d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_2c4a83afbdcff2c4ba869dacfa7dabb27b12f774a0707feae827e36773b8166c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_381d72a875dbcf282eb0ce43951c66b6c4d7dadc6fdeb9294add773d09cd1687__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4198c63548ffd3e47f06dc876a374eb662a4ea6ff5509a211e07dd2b49998b1d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5dff9a8bd683a1f8a197320db69edd3e2d2988378442d324202dc24789d949f5__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_762218313af08cfa6c9b8eda00385502eefaa529f9945044fd2dee54ff5cefe0__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7e3bf24eec453753018af1214443c72d8abb3050b249b2b3b9bb2adb04310650__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_a6d22532620e2c2df8ce400b3f4754629da5ed6321258d3add10ae5aba9450b3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b7a0aaea4203d5a5318b76c13dcb2afd3f7e9e71cd6f5f022040411bd080d815__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b9bd2ade56c0bd4d6738b7a39a90e136f8901e8e7945a3d237050075ad6fd749__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c3dc77f6ede7b6195dca0ab15e49736c813ce698624fe501da985707f241d9c7__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c8cfef133518ef6ab39ac5f19562a74f4f875e9130c8117d51f88a557b6e72c9__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d8f8e6fa46b62e55e6ef89f0d71d2a706a902748f37198aeb3e192bf7bca348c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e810dcfb9ec7662fa74f0c58d14b8ca36ebffcb4d6cdf3e54d58e4096597d95d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_string_calldata_ptr_t_bytes_calldata_ptr_t_uint256__to_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed":{"entryPoint":4839,"id":null,"parameterSlots":7,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":4671,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":4328,"id":null,"parameterSlots":3,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:12932:97","nodeType":"YulBlock","src":"0:12932:97","statements":[{"nativeSrc":"6:3:97","nodeType":"YulBlock","src":"6:3:97","statements":[]},{"body":{"nativeSrc":"63:147:97","nodeType":"YulBlock","src":"63:147:97","statements":[{"nativeSrc":"73:29:97","nodeType":"YulAssignment","src":"73:29:97","value":{"arguments":[{"name":"offset","nativeSrc":"95:6:97","nodeType":"YulIdentifier","src":"95:6:97"}],"functionName":{"name":"calldataload","nativeSrc":"82:12:97","nodeType":"YulIdentifier","src":"82:12:97"},"nativeSrc":"82:20:97","nodeType":"YulFunctionCall","src":"82:20:97"},"variableNames":[{"name":"value","nativeSrc":"73:5:97","nodeType":"YulIdentifier","src":"73:5:97"}]},{"body":{"nativeSrc":"188:16:97","nodeType":"YulBlock","src":"188:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"197:1:97","nodeType":"YulLiteral","src":"197:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"200:1:97","nodeType":"YulLiteral","src":"200:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"190:6:97","nodeType":"YulIdentifier","src":"190:6:97"},"nativeSrc":"190:12:97","nodeType":"YulFunctionCall","src":"190:12:97"},"nativeSrc":"190:12:97","nodeType":"YulExpressionStatement","src":"190:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"124:5:97","nodeType":"YulIdentifier","src":"124:5:97"},{"arguments":[{"name":"value","nativeSrc":"135:5:97","nodeType":"YulIdentifier","src":"135:5:97"},{"kind":"number","nativeSrc":"142:42:97","nodeType":"YulLiteral","src":"142:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"131:3:97","nodeType":"YulIdentifier","src":"131:3:97"},"nativeSrc":"131:54:97","nodeType":"YulFunctionCall","src":"131:54:97"}],"functionName":{"name":"eq","nativeSrc":"121:2:97","nodeType":"YulIdentifier","src":"121:2:97"},"nativeSrc":"121:65:97","nodeType":"YulFunctionCall","src":"121:65:97"}],"functionName":{"name":"iszero","nativeSrc":"114:6:97","nodeType":"YulIdentifier","src":"114:6:97"},"nativeSrc":"114:73:97","nodeType":"YulFunctionCall","src":"114:73:97"},"nativeSrc":"111:93:97","nodeType":"YulIf","src":"111:93:97"}]},"name":"abi_decode_address","nativeSrc":"14:196:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"42:6:97","nodeType":"YulTypedName","src":"42:6:97","type":""}],"returnVariables":[{"name":"value","nativeSrc":"53:5:97","nodeType":"YulTypedName","src":"53:5:97","type":""}],"src":"14:196:97"},{"body":{"nativeSrc":"288:275:97","nodeType":"YulBlock","src":"288:275:97","statements":[{"body":{"nativeSrc":"337:16:97","nodeType":"YulBlock","src":"337:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"346:1:97","nodeType":"YulLiteral","src":"346:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"349:1:97","nodeType":"YulLiteral","src":"349:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"339:6:97","nodeType":"YulIdentifier","src":"339:6:97"},"nativeSrc":"339:12:97","nodeType":"YulFunctionCall","src":"339:12:97"},"nativeSrc":"339:12:97","nodeType":"YulExpressionStatement","src":"339:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"316:6:97","nodeType":"YulIdentifier","src":"316:6:97"},{"kind":"number","nativeSrc":"324:4:97","nodeType":"YulLiteral","src":"324:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"312:3:97","nodeType":"YulIdentifier","src":"312:3:97"},"nativeSrc":"312:17:97","nodeType":"YulFunctionCall","src":"312:17:97"},{"name":"end","nativeSrc":"331:3:97","nodeType":"YulIdentifier","src":"331:3:97"}],"functionName":{"name":"slt","nativeSrc":"308:3:97","nodeType":"YulIdentifier","src":"308:3:97"},"nativeSrc":"308:27:97","nodeType":"YulFunctionCall","src":"308:27:97"}],"functionName":{"name":"iszero","nativeSrc":"301:6:97","nodeType":"YulIdentifier","src":"301:6:97"},"nativeSrc":"301:35:97","nodeType":"YulFunctionCall","src":"301:35:97"},"nativeSrc":"298:55:97","nodeType":"YulIf","src":"298:55:97"},{"nativeSrc":"362:30:97","nodeType":"YulAssignment","src":"362:30:97","value":{"arguments":[{"name":"offset","nativeSrc":"385:6:97","nodeType":"YulIdentifier","src":"385:6:97"}],"functionName":{"name":"calldataload","nativeSrc":"372:12:97","nodeType":"YulIdentifier","src":"372:12:97"},"nativeSrc":"372:20:97","nodeType":"YulFunctionCall","src":"372:20:97"},"variableNames":[{"name":"length","nativeSrc":"362:6:97","nodeType":"YulIdentifier","src":"362:6:97"}]},{"body":{"nativeSrc":"435:16:97","nodeType":"YulBlock","src":"435:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"444:1:97","nodeType":"YulLiteral","src":"444:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"447:1:97","nodeType":"YulLiteral","src":"447:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"437:6:97","nodeType":"YulIdentifier","src":"437:6:97"},"nativeSrc":"437:12:97","nodeType":"YulFunctionCall","src":"437:12:97"},"nativeSrc":"437:12:97","nodeType":"YulExpressionStatement","src":"437:12:97"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"407:6:97","nodeType":"YulIdentifier","src":"407:6:97"},{"kind":"number","nativeSrc":"415:18:97","nodeType":"YulLiteral","src":"415:18:97","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"404:2:97","nodeType":"YulIdentifier","src":"404:2:97"},"nativeSrc":"404:30:97","nodeType":"YulFunctionCall","src":"404:30:97"},"nativeSrc":"401:50:97","nodeType":"YulIf","src":"401:50:97"},{"nativeSrc":"460:29:97","nodeType":"YulAssignment","src":"460:29:97","value":{"arguments":[{"name":"offset","nativeSrc":"476:6:97","nodeType":"YulIdentifier","src":"476:6:97"},{"kind":"number","nativeSrc":"484:4:97","nodeType":"YulLiteral","src":"484:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"472:3:97","nodeType":"YulIdentifier","src":"472:3:97"},"nativeSrc":"472:17:97","nodeType":"YulFunctionCall","src":"472:17:97"},"variableNames":[{"name":"arrayPos","nativeSrc":"460:8:97","nodeType":"YulIdentifier","src":"460:8:97"}]},{"body":{"nativeSrc":"541:16:97","nodeType":"YulBlock","src":"541:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"550:1:97","nodeType":"YulLiteral","src":"550:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"553:1:97","nodeType":"YulLiteral","src":"553:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"543:6:97","nodeType":"YulIdentifier","src":"543:6:97"},"nativeSrc":"543:12:97","nodeType":"YulFunctionCall","src":"543:12:97"},"nativeSrc":"543:12:97","nodeType":"YulExpressionStatement","src":"543:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"512:6:97","nodeType":"YulIdentifier","src":"512:6:97"},{"name":"length","nativeSrc":"520:6:97","nodeType":"YulIdentifier","src":"520:6:97"}],"functionName":{"name":"add","nativeSrc":"508:3:97","nodeType":"YulIdentifier","src":"508:3:97"},"nativeSrc":"508:19:97","nodeType":"YulFunctionCall","src":"508:19:97"},{"kind":"number","nativeSrc":"529:4:97","nodeType":"YulLiteral","src":"529:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"504:3:97","nodeType":"YulIdentifier","src":"504:3:97"},"nativeSrc":"504:30:97","nodeType":"YulFunctionCall","src":"504:30:97"},{"name":"end","nativeSrc":"536:3:97","nodeType":"YulIdentifier","src":"536:3:97"}],"functionName":{"name":"gt","nativeSrc":"501:2:97","nodeType":"YulIdentifier","src":"501:2:97"},"nativeSrc":"501:39:97","nodeType":"YulFunctionCall","src":"501:39:97"},"nativeSrc":"498:59:97","nodeType":"YulIf","src":"498:59:97"}]},"name":"abi_decode_string_calldata","nativeSrc":"215:348:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"251:6:97","nodeType":"YulTypedName","src":"251:6:97","type":""},{"name":"end","nativeSrc":"259:3:97","nodeType":"YulTypedName","src":"259:3:97","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"267:8:97","nodeType":"YulTypedName","src":"267:8:97","type":""},{"name":"length","nativeSrc":"277:6:97","nodeType":"YulTypedName","src":"277:6:97","type":""}],"src":"215:348:97"},{"body":{"nativeSrc":"745:755:97","nodeType":"YulBlock","src":"745:755:97","statements":[{"body":{"nativeSrc":"792:16:97","nodeType":"YulBlock","src":"792:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"801:1:97","nodeType":"YulLiteral","src":"801:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"804:1:97","nodeType":"YulLiteral","src":"804:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"794:6:97","nodeType":"YulIdentifier","src":"794:6:97"},"nativeSrc":"794:12:97","nodeType":"YulFunctionCall","src":"794:12:97"},"nativeSrc":"794:12:97","nodeType":"YulExpressionStatement","src":"794:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"766:7:97","nodeType":"YulIdentifier","src":"766:7:97"},{"name":"headStart","nativeSrc":"775:9:97","nodeType":"YulIdentifier","src":"775:9:97"}],"functionName":{"name":"sub","nativeSrc":"762:3:97","nodeType":"YulIdentifier","src":"762:3:97"},"nativeSrc":"762:23:97","nodeType":"YulFunctionCall","src":"762:23:97"},{"kind":"number","nativeSrc":"787:3:97","nodeType":"YulLiteral","src":"787:3:97","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"758:3:97","nodeType":"YulIdentifier","src":"758:3:97"},"nativeSrc":"758:33:97","nodeType":"YulFunctionCall","src":"758:33:97"},"nativeSrc":"755:53:97","nodeType":"YulIf","src":"755:53:97"},{"nativeSrc":"817:39:97","nodeType":"YulAssignment","src":"817:39:97","value":{"arguments":[{"name":"headStart","nativeSrc":"846:9:97","nodeType":"YulIdentifier","src":"846:9:97"}],"functionName":{"name":"abi_decode_address","nativeSrc":"827:18:97","nodeType":"YulIdentifier","src":"827:18:97"},"nativeSrc":"827:29:97","nodeType":"YulFunctionCall","src":"827:29:97"},"variableNames":[{"name":"value0","nativeSrc":"817:6:97","nodeType":"YulIdentifier","src":"817:6:97"}]},{"nativeSrc":"865:42:97","nodeType":"YulAssignment","src":"865:42:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"892:9:97","nodeType":"YulIdentifier","src":"892:9:97"},{"kind":"number","nativeSrc":"903:2:97","nodeType":"YulLiteral","src":"903:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"888:3:97","nodeType":"YulIdentifier","src":"888:3:97"},"nativeSrc":"888:18:97","nodeType":"YulFunctionCall","src":"888:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"875:12:97","nodeType":"YulIdentifier","src":"875:12:97"},"nativeSrc":"875:32:97","nodeType":"YulFunctionCall","src":"875:32:97"},"variableNames":[{"name":"value1","nativeSrc":"865:6:97","nodeType":"YulIdentifier","src":"865:6:97"}]},{"nativeSrc":"916:46:97","nodeType":"YulVariableDeclaration","src":"916:46:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"947:9:97","nodeType":"YulIdentifier","src":"947:9:97"},{"kind":"number","nativeSrc":"958:2:97","nodeType":"YulLiteral","src":"958:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"943:3:97","nodeType":"YulIdentifier","src":"943:3:97"},"nativeSrc":"943:18:97","nodeType":"YulFunctionCall","src":"943:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"930:12:97","nodeType":"YulIdentifier","src":"930:12:97"},"nativeSrc":"930:32:97","nodeType":"YulFunctionCall","src":"930:32:97"},"variables":[{"name":"offset","nativeSrc":"920:6:97","nodeType":"YulTypedName","src":"920:6:97","type":""}]},{"nativeSrc":"971:28:97","nodeType":"YulVariableDeclaration","src":"971:28:97","value":{"kind":"number","nativeSrc":"981:18:97","nodeType":"YulLiteral","src":"981:18:97","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"975:2:97","nodeType":"YulTypedName","src":"975:2:97","type":""}]},{"body":{"nativeSrc":"1026:16:97","nodeType":"YulBlock","src":"1026:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1035:1:97","nodeType":"YulLiteral","src":"1035:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1038:1:97","nodeType":"YulLiteral","src":"1038:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1028:6:97","nodeType":"YulIdentifier","src":"1028:6:97"},"nativeSrc":"1028:12:97","nodeType":"YulFunctionCall","src":"1028:12:97"},"nativeSrc":"1028:12:97","nodeType":"YulExpressionStatement","src":"1028:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"1014:6:97","nodeType":"YulIdentifier","src":"1014:6:97"},{"name":"_1","nativeSrc":"1022:2:97","nodeType":"YulIdentifier","src":"1022:2:97"}],"functionName":{"name":"gt","nativeSrc":"1011:2:97","nodeType":"YulIdentifier","src":"1011:2:97"},"nativeSrc":"1011:14:97","nodeType":"YulFunctionCall","src":"1011:14:97"},"nativeSrc":"1008:34:97","nodeType":"YulIf","src":"1008:34:97"},{"nativeSrc":"1051:85:97","nodeType":"YulVariableDeclaration","src":"1051:85:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1108:9:97","nodeType":"YulIdentifier","src":"1108:9:97"},{"name":"offset","nativeSrc":"1119:6:97","nodeType":"YulIdentifier","src":"1119:6:97"}],"functionName":{"name":"add","nativeSrc":"1104:3:97","nodeType":"YulIdentifier","src":"1104:3:97"},"nativeSrc":"1104:22:97","nodeType":"YulFunctionCall","src":"1104:22:97"},{"name":"dataEnd","nativeSrc":"1128:7:97","nodeType":"YulIdentifier","src":"1128:7:97"}],"functionName":{"name":"abi_decode_string_calldata","nativeSrc":"1077:26:97","nodeType":"YulIdentifier","src":"1077:26:97"},"nativeSrc":"1077:59:97","nodeType":"YulFunctionCall","src":"1077:59:97"},"variables":[{"name":"value2_1","nativeSrc":"1055:8:97","nodeType":"YulTypedName","src":"1055:8:97","type":""},{"name":"value3_1","nativeSrc":"1065:8:97","nodeType":"YulTypedName","src":"1065:8:97","type":""}]},{"nativeSrc":"1145:18:97","nodeType":"YulAssignment","src":"1145:18:97","value":{"name":"value2_1","nativeSrc":"1155:8:97","nodeType":"YulIdentifier","src":"1155:8:97"},"variableNames":[{"name":"value2","nativeSrc":"1145:6:97","nodeType":"YulIdentifier","src":"1145:6:97"}]},{"nativeSrc":"1172:18:97","nodeType":"YulAssignment","src":"1172:18:97","value":{"name":"value3_1","nativeSrc":"1182:8:97","nodeType":"YulIdentifier","src":"1182:8:97"},"variableNames":[{"name":"value3","nativeSrc":"1172:6:97","nodeType":"YulIdentifier","src":"1172:6:97"}]},{"nativeSrc":"1199:48:97","nodeType":"YulVariableDeclaration","src":"1199:48:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1232:9:97","nodeType":"YulIdentifier","src":"1232:9:97"},{"kind":"number","nativeSrc":"1243:2:97","nodeType":"YulLiteral","src":"1243:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"1228:3:97","nodeType":"YulIdentifier","src":"1228:3:97"},"nativeSrc":"1228:18:97","nodeType":"YulFunctionCall","src":"1228:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"1215:12:97","nodeType":"YulIdentifier","src":"1215:12:97"},"nativeSrc":"1215:32:97","nodeType":"YulFunctionCall","src":"1215:32:97"},"variables":[{"name":"offset_1","nativeSrc":"1203:8:97","nodeType":"YulTypedName","src":"1203:8:97","type":""}]},{"body":{"nativeSrc":"1276:16:97","nodeType":"YulBlock","src":"1276:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1285:1:97","nodeType":"YulLiteral","src":"1285:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1288:1:97","nodeType":"YulLiteral","src":"1288:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1278:6:97","nodeType":"YulIdentifier","src":"1278:6:97"},"nativeSrc":"1278:12:97","nodeType":"YulFunctionCall","src":"1278:12:97"},"nativeSrc":"1278:12:97","nodeType":"YulExpressionStatement","src":"1278:12:97"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"1262:8:97","nodeType":"YulIdentifier","src":"1262:8:97"},{"name":"_1","nativeSrc":"1272:2:97","nodeType":"YulIdentifier","src":"1272:2:97"}],"functionName":{"name":"gt","nativeSrc":"1259:2:97","nodeType":"YulIdentifier","src":"1259:2:97"},"nativeSrc":"1259:16:97","nodeType":"YulFunctionCall","src":"1259:16:97"},"nativeSrc":"1256:36:97","nodeType":"YulIf","src":"1256:36:97"},{"nativeSrc":"1301:87:97","nodeType":"YulVariableDeclaration","src":"1301:87:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1358:9:97","nodeType":"YulIdentifier","src":"1358:9:97"},{"name":"offset_1","nativeSrc":"1369:8:97","nodeType":"YulIdentifier","src":"1369:8:97"}],"functionName":{"name":"add","nativeSrc":"1354:3:97","nodeType":"YulIdentifier","src":"1354:3:97"},"nativeSrc":"1354:24:97","nodeType":"YulFunctionCall","src":"1354:24:97"},{"name":"dataEnd","nativeSrc":"1380:7:97","nodeType":"YulIdentifier","src":"1380:7:97"}],"functionName":{"name":"abi_decode_string_calldata","nativeSrc":"1327:26:97","nodeType":"YulIdentifier","src":"1327:26:97"},"nativeSrc":"1327:61:97","nodeType":"YulFunctionCall","src":"1327:61:97"},"variables":[{"name":"value4_1","nativeSrc":"1305:8:97","nodeType":"YulTypedName","src":"1305:8:97","type":""},{"name":"value5_1","nativeSrc":"1315:8:97","nodeType":"YulTypedName","src":"1315:8:97","type":""}]},{"nativeSrc":"1397:18:97","nodeType":"YulAssignment","src":"1397:18:97","value":{"name":"value4_1","nativeSrc":"1407:8:97","nodeType":"YulIdentifier","src":"1407:8:97"},"variableNames":[{"name":"value4","nativeSrc":"1397:6:97","nodeType":"YulIdentifier","src":"1397:6:97"}]},{"nativeSrc":"1424:18:97","nodeType":"YulAssignment","src":"1424:18:97","value":{"name":"value5_1","nativeSrc":"1434:8:97","nodeType":"YulIdentifier","src":"1434:8:97"},"variableNames":[{"name":"value5","nativeSrc":"1424:6:97","nodeType":"YulIdentifier","src":"1424:6:97"}]},{"nativeSrc":"1451:43:97","nodeType":"YulAssignment","src":"1451:43:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1478:9:97","nodeType":"YulIdentifier","src":"1478:9:97"},{"kind":"number","nativeSrc":"1489:3:97","nodeType":"YulLiteral","src":"1489:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"1474:3:97","nodeType":"YulIdentifier","src":"1474:3:97"},"nativeSrc":"1474:19:97","nodeType":"YulFunctionCall","src":"1474:19:97"}],"functionName":{"name":"calldataload","nativeSrc":"1461:12:97","nodeType":"YulIdentifier","src":"1461:12:97"},"nativeSrc":"1461:33:97","nodeType":"YulFunctionCall","src":"1461:33:97"},"variableNames":[{"name":"value6","nativeSrc":"1451:6:97","nodeType":"YulIdentifier","src":"1451:6:97"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_string_calldata_ptrt_bytes_calldata_ptrt_uint256","nativeSrc":"568:932:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"663:9:97","nodeType":"YulTypedName","src":"663:9:97","type":""},{"name":"dataEnd","nativeSrc":"674:7:97","nodeType":"YulTypedName","src":"674:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"686:6:97","nodeType":"YulTypedName","src":"686:6:97","type":""},{"name":"value1","nativeSrc":"694:6:97","nodeType":"YulTypedName","src":"694:6:97","type":""},{"name":"value2","nativeSrc":"702:6:97","nodeType":"YulTypedName","src":"702:6:97","type":""},{"name":"value3","nativeSrc":"710:6:97","nodeType":"YulTypedName","src":"710:6:97","type":""},{"name":"value4","nativeSrc":"718:6:97","nodeType":"YulTypedName","src":"718:6:97","type":""},{"name":"value5","nativeSrc":"726:6:97","nodeType":"YulTypedName","src":"726:6:97","type":""},{"name":"value6","nativeSrc":"734:6:97","nodeType":"YulTypedName","src":"734:6:97","type":""}],"src":"568:932:97"},{"body":{"nativeSrc":"1571:184:97","nodeType":"YulBlock","src":"1571:184:97","statements":[{"nativeSrc":"1581:10:97","nodeType":"YulVariableDeclaration","src":"1581:10:97","value":{"kind":"number","nativeSrc":"1590:1:97","nodeType":"YulLiteral","src":"1590:1:97","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"1585:1:97","nodeType":"YulTypedName","src":"1585:1:97","type":""}]},{"body":{"nativeSrc":"1650:63:97","nodeType":"YulBlock","src":"1650:63:97","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"1675:3:97","nodeType":"YulIdentifier","src":"1675:3:97"},{"name":"i","nativeSrc":"1680:1:97","nodeType":"YulIdentifier","src":"1680:1:97"}],"functionName":{"name":"add","nativeSrc":"1671:3:97","nodeType":"YulIdentifier","src":"1671:3:97"},"nativeSrc":"1671:11:97","nodeType":"YulFunctionCall","src":"1671:11:97"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"1694:3:97","nodeType":"YulIdentifier","src":"1694:3:97"},{"name":"i","nativeSrc":"1699:1:97","nodeType":"YulIdentifier","src":"1699:1:97"}],"functionName":{"name":"add","nativeSrc":"1690:3:97","nodeType":"YulIdentifier","src":"1690:3:97"},"nativeSrc":"1690:11:97","nodeType":"YulFunctionCall","src":"1690:11:97"}],"functionName":{"name":"mload","nativeSrc":"1684:5:97","nodeType":"YulIdentifier","src":"1684:5:97"},"nativeSrc":"1684:18:97","nodeType":"YulFunctionCall","src":"1684:18:97"}],"functionName":{"name":"mstore","nativeSrc":"1664:6:97","nodeType":"YulIdentifier","src":"1664:6:97"},"nativeSrc":"1664:39:97","nodeType":"YulFunctionCall","src":"1664:39:97"},"nativeSrc":"1664:39:97","nodeType":"YulExpressionStatement","src":"1664:39:97"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"1611:1:97","nodeType":"YulIdentifier","src":"1611:1:97"},{"name":"length","nativeSrc":"1614:6:97","nodeType":"YulIdentifier","src":"1614:6:97"}],"functionName":{"name":"lt","nativeSrc":"1608:2:97","nodeType":"YulIdentifier","src":"1608:2:97"},"nativeSrc":"1608:13:97","nodeType":"YulFunctionCall","src":"1608:13:97"},"nativeSrc":"1600:113:97","nodeType":"YulForLoop","post":{"nativeSrc":"1622:19:97","nodeType":"YulBlock","src":"1622:19:97","statements":[{"nativeSrc":"1624:15:97","nodeType":"YulAssignment","src":"1624:15:97","value":{"arguments":[{"name":"i","nativeSrc":"1633:1:97","nodeType":"YulIdentifier","src":"1633:1:97"},{"kind":"number","nativeSrc":"1636:2:97","nodeType":"YulLiteral","src":"1636:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1629:3:97","nodeType":"YulIdentifier","src":"1629:3:97"},"nativeSrc":"1629:10:97","nodeType":"YulFunctionCall","src":"1629:10:97"},"variableNames":[{"name":"i","nativeSrc":"1624:1:97","nodeType":"YulIdentifier","src":"1624:1:97"}]}]},"pre":{"nativeSrc":"1604:3:97","nodeType":"YulBlock","src":"1604:3:97","statements":[]},"src":"1600:113:97"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"1733:3:97","nodeType":"YulIdentifier","src":"1733:3:97"},{"name":"length","nativeSrc":"1738:6:97","nodeType":"YulIdentifier","src":"1738:6:97"}],"functionName":{"name":"add","nativeSrc":"1729:3:97","nodeType":"YulIdentifier","src":"1729:3:97"},"nativeSrc":"1729:16:97","nodeType":"YulFunctionCall","src":"1729:16:97"},{"kind":"number","nativeSrc":"1747:1:97","nodeType":"YulLiteral","src":"1747:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"1722:6:97","nodeType":"YulIdentifier","src":"1722:6:97"},"nativeSrc":"1722:27:97","nodeType":"YulFunctionCall","src":"1722:27:97"},"nativeSrc":"1722:27:97","nodeType":"YulExpressionStatement","src":"1722:27:97"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"1505:250:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"1549:3:97","nodeType":"YulTypedName","src":"1549:3:97","type":""},{"name":"dst","nativeSrc":"1554:3:97","nodeType":"YulTypedName","src":"1554:3:97","type":""},{"name":"length","nativeSrc":"1559:6:97","nodeType":"YulTypedName","src":"1559:6:97","type":""}],"src":"1505:250:97"},{"body":{"nativeSrc":"1879:334:97","nodeType":"YulBlock","src":"1879:334:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1896:9:97","nodeType":"YulIdentifier","src":"1896:9:97"},{"kind":"number","nativeSrc":"1907:2:97","nodeType":"YulLiteral","src":"1907:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"1889:6:97","nodeType":"YulIdentifier","src":"1889:6:97"},"nativeSrc":"1889:21:97","nodeType":"YulFunctionCall","src":"1889:21:97"},"nativeSrc":"1889:21:97","nodeType":"YulExpressionStatement","src":"1889:21:97"},{"nativeSrc":"1919:27:97","nodeType":"YulVariableDeclaration","src":"1919:27:97","value":{"arguments":[{"name":"value0","nativeSrc":"1939:6:97","nodeType":"YulIdentifier","src":"1939:6:97"}],"functionName":{"name":"mload","nativeSrc":"1933:5:97","nodeType":"YulIdentifier","src":"1933:5:97"},"nativeSrc":"1933:13:97","nodeType":"YulFunctionCall","src":"1933:13:97"},"variables":[{"name":"length","nativeSrc":"1923:6:97","nodeType":"YulTypedName","src":"1923:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1966:9:97","nodeType":"YulIdentifier","src":"1966:9:97"},{"kind":"number","nativeSrc":"1977:2:97","nodeType":"YulLiteral","src":"1977:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1962:3:97","nodeType":"YulIdentifier","src":"1962:3:97"},"nativeSrc":"1962:18:97","nodeType":"YulFunctionCall","src":"1962:18:97"},{"name":"length","nativeSrc":"1982:6:97","nodeType":"YulIdentifier","src":"1982:6:97"}],"functionName":{"name":"mstore","nativeSrc":"1955:6:97","nodeType":"YulIdentifier","src":"1955:6:97"},"nativeSrc":"1955:34:97","nodeType":"YulFunctionCall","src":"1955:34:97"},"nativeSrc":"1955:34:97","nodeType":"YulExpressionStatement","src":"1955:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"2037:6:97","nodeType":"YulIdentifier","src":"2037:6:97"},{"kind":"number","nativeSrc":"2045:2:97","nodeType":"YulLiteral","src":"2045:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2033:3:97","nodeType":"YulIdentifier","src":"2033:3:97"},"nativeSrc":"2033:15:97","nodeType":"YulFunctionCall","src":"2033:15:97"},{"arguments":[{"name":"headStart","nativeSrc":"2054:9:97","nodeType":"YulIdentifier","src":"2054:9:97"},{"kind":"number","nativeSrc":"2065:2:97","nodeType":"YulLiteral","src":"2065:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2050:3:97","nodeType":"YulIdentifier","src":"2050:3:97"},"nativeSrc":"2050:18:97","nodeType":"YulFunctionCall","src":"2050:18:97"},{"name":"length","nativeSrc":"2070:6:97","nodeType":"YulIdentifier","src":"2070:6:97"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"1998:34:97","nodeType":"YulIdentifier","src":"1998:34:97"},"nativeSrc":"1998:79:97","nodeType":"YulFunctionCall","src":"1998:79:97"},"nativeSrc":"1998:79:97","nodeType":"YulExpressionStatement","src":"1998:79:97"},{"nativeSrc":"2086:121:97","nodeType":"YulAssignment","src":"2086:121:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2102:9:97","nodeType":"YulIdentifier","src":"2102:9:97"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"2121:6:97","nodeType":"YulIdentifier","src":"2121:6:97"},{"kind":"number","nativeSrc":"2129:2:97","nodeType":"YulLiteral","src":"2129:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"2117:3:97","nodeType":"YulIdentifier","src":"2117:3:97"},"nativeSrc":"2117:15:97","nodeType":"YulFunctionCall","src":"2117:15:97"},{"kind":"number","nativeSrc":"2134:66:97","nodeType":"YulLiteral","src":"2134:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"2113:3:97","nodeType":"YulIdentifier","src":"2113:3:97"},"nativeSrc":"2113:88:97","nodeType":"YulFunctionCall","src":"2113:88:97"}],"functionName":{"name":"add","nativeSrc":"2098:3:97","nodeType":"YulIdentifier","src":"2098:3:97"},"nativeSrc":"2098:104:97","nodeType":"YulFunctionCall","src":"2098:104:97"},{"kind":"number","nativeSrc":"2204:2:97","nodeType":"YulLiteral","src":"2204:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2094:3:97","nodeType":"YulIdentifier","src":"2094:3:97"},"nativeSrc":"2094:113:97","nodeType":"YulFunctionCall","src":"2094:113:97"},"variableNames":[{"name":"tail","nativeSrc":"2086:4:97","nodeType":"YulIdentifier","src":"2086:4:97"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"1760:453:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1848:9:97","nodeType":"YulTypedName","src":"1848:9:97","type":""},{"name":"value0","nativeSrc":"1859:6:97","nodeType":"YulTypedName","src":"1859:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1870:4:97","nodeType":"YulTypedName","src":"1870:4:97","type":""}],"src":"1760:453:97"},{"body":{"nativeSrc":"2319:125:97","nodeType":"YulBlock","src":"2319:125:97","statements":[{"nativeSrc":"2329:26:97","nodeType":"YulAssignment","src":"2329:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2341:9:97","nodeType":"YulIdentifier","src":"2341:9:97"},{"kind":"number","nativeSrc":"2352:2:97","nodeType":"YulLiteral","src":"2352:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2337:3:97","nodeType":"YulIdentifier","src":"2337:3:97"},"nativeSrc":"2337:18:97","nodeType":"YulFunctionCall","src":"2337:18:97"},"variableNames":[{"name":"tail","nativeSrc":"2329:4:97","nodeType":"YulIdentifier","src":"2329:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2371:9:97","nodeType":"YulIdentifier","src":"2371:9:97"},{"arguments":[{"name":"value0","nativeSrc":"2386:6:97","nodeType":"YulIdentifier","src":"2386:6:97"},{"kind":"number","nativeSrc":"2394:42:97","nodeType":"YulLiteral","src":"2394:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"2382:3:97","nodeType":"YulIdentifier","src":"2382:3:97"},"nativeSrc":"2382:55:97","nodeType":"YulFunctionCall","src":"2382:55:97"}],"functionName":{"name":"mstore","nativeSrc":"2364:6:97","nodeType":"YulIdentifier","src":"2364:6:97"},"nativeSrc":"2364:74:97","nodeType":"YulFunctionCall","src":"2364:74:97"},"nativeSrc":"2364:74:97","nodeType":"YulExpressionStatement","src":"2364:74:97"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"2218:226:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2288:9:97","nodeType":"YulTypedName","src":"2288:9:97","type":""},{"name":"value0","nativeSrc":"2299:6:97","nodeType":"YulTypedName","src":"2299:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2310:4:97","nodeType":"YulTypedName","src":"2310:4:97","type":""}],"src":"2218:226:97"},{"body":{"nativeSrc":"2550:76:97","nodeType":"YulBlock","src":"2550:76:97","statements":[{"nativeSrc":"2560:26:97","nodeType":"YulAssignment","src":"2560:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2572:9:97","nodeType":"YulIdentifier","src":"2572:9:97"},{"kind":"number","nativeSrc":"2583:2:97","nodeType":"YulLiteral","src":"2583:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2568:3:97","nodeType":"YulIdentifier","src":"2568:3:97"},"nativeSrc":"2568:18:97","nodeType":"YulFunctionCall","src":"2568:18:97"},"variableNames":[{"name":"tail","nativeSrc":"2560:4:97","nodeType":"YulIdentifier","src":"2560:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2602:9:97","nodeType":"YulIdentifier","src":"2602:9:97"},{"name":"value0","nativeSrc":"2613:6:97","nodeType":"YulIdentifier","src":"2613:6:97"}],"functionName":{"name":"mstore","nativeSrc":"2595:6:97","nodeType":"YulIdentifier","src":"2595:6:97"},"nativeSrc":"2595:25:97","nodeType":"YulFunctionCall","src":"2595:25:97"},"nativeSrc":"2595:25:97","nodeType":"YulExpressionStatement","src":"2595:25:97"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"2449:177:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2519:9:97","nodeType":"YulTypedName","src":"2519:9:97","type":""},{"name":"value0","nativeSrc":"2530:6:97","nodeType":"YulTypedName","src":"2530:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2541:4:97","nodeType":"YulTypedName","src":"2541:4:97","type":""}],"src":"2449:177:97"},{"body":{"nativeSrc":"2701:116:97","nodeType":"YulBlock","src":"2701:116:97","statements":[{"body":{"nativeSrc":"2747:16:97","nodeType":"YulBlock","src":"2747:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2756:1:97","nodeType":"YulLiteral","src":"2756:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"2759:1:97","nodeType":"YulLiteral","src":"2759:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2749:6:97","nodeType":"YulIdentifier","src":"2749:6:97"},"nativeSrc":"2749:12:97","nodeType":"YulFunctionCall","src":"2749:12:97"},"nativeSrc":"2749:12:97","nodeType":"YulExpressionStatement","src":"2749:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2722:7:97","nodeType":"YulIdentifier","src":"2722:7:97"},{"name":"headStart","nativeSrc":"2731:9:97","nodeType":"YulIdentifier","src":"2731:9:97"}],"functionName":{"name":"sub","nativeSrc":"2718:3:97","nodeType":"YulIdentifier","src":"2718:3:97"},"nativeSrc":"2718:23:97","nodeType":"YulFunctionCall","src":"2718:23:97"},{"kind":"number","nativeSrc":"2743:2:97","nodeType":"YulLiteral","src":"2743:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2714:3:97","nodeType":"YulIdentifier","src":"2714:3:97"},"nativeSrc":"2714:32:97","nodeType":"YulFunctionCall","src":"2714:32:97"},"nativeSrc":"2711:52:97","nodeType":"YulIf","src":"2711:52:97"},{"nativeSrc":"2772:39:97","nodeType":"YulAssignment","src":"2772:39:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2801:9:97","nodeType":"YulIdentifier","src":"2801:9:97"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2782:18:97","nodeType":"YulIdentifier","src":"2782:18:97"},"nativeSrc":"2782:29:97","nodeType":"YulFunctionCall","src":"2782:29:97"},"variableNames":[{"name":"value0","nativeSrc":"2772:6:97","nodeType":"YulIdentifier","src":"2772:6:97"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"2631:186:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2667:9:97","nodeType":"YulTypedName","src":"2667:9:97","type":""},{"name":"dataEnd","nativeSrc":"2678:7:97","nodeType":"YulTypedName","src":"2678:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2690:6:97","nodeType":"YulTypedName","src":"2690:6:97","type":""}],"src":"2631:186:97"},{"body":{"nativeSrc":"2923:76:97","nodeType":"YulBlock","src":"2923:76:97","statements":[{"nativeSrc":"2933:26:97","nodeType":"YulAssignment","src":"2933:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2945:9:97","nodeType":"YulIdentifier","src":"2945:9:97"},{"kind":"number","nativeSrc":"2956:2:97","nodeType":"YulLiteral","src":"2956:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2941:3:97","nodeType":"YulIdentifier","src":"2941:3:97"},"nativeSrc":"2941:18:97","nodeType":"YulFunctionCall","src":"2941:18:97"},"variableNames":[{"name":"tail","nativeSrc":"2933:4:97","nodeType":"YulIdentifier","src":"2933:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2975:9:97","nodeType":"YulIdentifier","src":"2975:9:97"},{"name":"value0","nativeSrc":"2986:6:97","nodeType":"YulIdentifier","src":"2986:6:97"}],"functionName":{"name":"mstore","nativeSrc":"2968:6:97","nodeType":"YulIdentifier","src":"2968:6:97"},"nativeSrc":"2968:25:97","nodeType":"YulFunctionCall","src":"2968:25:97"},"nativeSrc":"2968:25:97","nodeType":"YulExpressionStatement","src":"2968:25:97"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"2822:177:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2892:9:97","nodeType":"YulTypedName","src":"2892:9:97","type":""},{"name":"value0","nativeSrc":"2903:6:97","nodeType":"YulTypedName","src":"2903:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2914:4:97","nodeType":"YulTypedName","src":"2914:4:97","type":""}],"src":"2822:177:97"},{"body":{"nativeSrc":"3074:110:97","nodeType":"YulBlock","src":"3074:110:97","statements":[{"body":{"nativeSrc":"3120:16:97","nodeType":"YulBlock","src":"3120:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3129:1:97","nodeType":"YulLiteral","src":"3129:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"3132:1:97","nodeType":"YulLiteral","src":"3132:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3122:6:97","nodeType":"YulIdentifier","src":"3122:6:97"},"nativeSrc":"3122:12:97","nodeType":"YulFunctionCall","src":"3122:12:97"},"nativeSrc":"3122:12:97","nodeType":"YulExpressionStatement","src":"3122:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3095:7:97","nodeType":"YulIdentifier","src":"3095:7:97"},{"name":"headStart","nativeSrc":"3104:9:97","nodeType":"YulIdentifier","src":"3104:9:97"}],"functionName":{"name":"sub","nativeSrc":"3091:3:97","nodeType":"YulIdentifier","src":"3091:3:97"},"nativeSrc":"3091:23:97","nodeType":"YulFunctionCall","src":"3091:23:97"},{"kind":"number","nativeSrc":"3116:2:97","nodeType":"YulLiteral","src":"3116:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3087:3:97","nodeType":"YulIdentifier","src":"3087:3:97"},"nativeSrc":"3087:32:97","nodeType":"YulFunctionCall","src":"3087:32:97"},"nativeSrc":"3084:52:97","nodeType":"YulIf","src":"3084:52:97"},{"nativeSrc":"3145:33:97","nodeType":"YulAssignment","src":"3145:33:97","value":{"arguments":[{"name":"headStart","nativeSrc":"3168:9:97","nodeType":"YulIdentifier","src":"3168:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"3155:12:97","nodeType":"YulIdentifier","src":"3155:12:97"},"nativeSrc":"3155:23:97","nodeType":"YulFunctionCall","src":"3155:23:97"},"variableNames":[{"name":"value0","nativeSrc":"3145:6:97","nodeType":"YulIdentifier","src":"3145:6:97"}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"3004:180:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3040:9:97","nodeType":"YulTypedName","src":"3040:9:97","type":""},{"name":"dataEnd","nativeSrc":"3051:7:97","nodeType":"YulTypedName","src":"3051:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3063:6:97","nodeType":"YulTypedName","src":"3063:6:97","type":""}],"src":"3004:180:97"},{"body":{"nativeSrc":"3259:110:97","nodeType":"YulBlock","src":"3259:110:97","statements":[{"body":{"nativeSrc":"3305:16:97","nodeType":"YulBlock","src":"3305:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3314:1:97","nodeType":"YulLiteral","src":"3314:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"3317:1:97","nodeType":"YulLiteral","src":"3317:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3307:6:97","nodeType":"YulIdentifier","src":"3307:6:97"},"nativeSrc":"3307:12:97","nodeType":"YulFunctionCall","src":"3307:12:97"},"nativeSrc":"3307:12:97","nodeType":"YulExpressionStatement","src":"3307:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3280:7:97","nodeType":"YulIdentifier","src":"3280:7:97"},{"name":"headStart","nativeSrc":"3289:9:97","nodeType":"YulIdentifier","src":"3289:9:97"}],"functionName":{"name":"sub","nativeSrc":"3276:3:97","nodeType":"YulIdentifier","src":"3276:3:97"},"nativeSrc":"3276:23:97","nodeType":"YulFunctionCall","src":"3276:23:97"},{"kind":"number","nativeSrc":"3301:2:97","nodeType":"YulLiteral","src":"3301:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3272:3:97","nodeType":"YulIdentifier","src":"3272:3:97"},"nativeSrc":"3272:32:97","nodeType":"YulFunctionCall","src":"3272:32:97"},"nativeSrc":"3269:52:97","nodeType":"YulIf","src":"3269:52:97"},{"nativeSrc":"3330:33:97","nodeType":"YulAssignment","src":"3330:33:97","value":{"arguments":[{"name":"headStart","nativeSrc":"3353:9:97","nodeType":"YulIdentifier","src":"3353:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"3340:12:97","nodeType":"YulIdentifier","src":"3340:12:97"},"nativeSrc":"3340:23:97","nodeType":"YulFunctionCall","src":"3340:23:97"},"variableNames":[{"name":"value0","nativeSrc":"3330:6:97","nodeType":"YulIdentifier","src":"3330:6:97"}]}]},"name":"abi_decode_tuple_t_bytes32","nativeSrc":"3189:180:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3225:9:97","nodeType":"YulTypedName","src":"3225:9:97","type":""},{"name":"dataEnd","nativeSrc":"3236:7:97","nodeType":"YulTypedName","src":"3236:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3248:6:97","nodeType":"YulTypedName","src":"3248:6:97","type":""}],"src":"3189:180:97"},{"body":{"nativeSrc":"3469:92:97","nodeType":"YulBlock","src":"3469:92:97","statements":[{"nativeSrc":"3479:26:97","nodeType":"YulAssignment","src":"3479:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"3491:9:97","nodeType":"YulIdentifier","src":"3491:9:97"},{"kind":"number","nativeSrc":"3502:2:97","nodeType":"YulLiteral","src":"3502:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3487:3:97","nodeType":"YulIdentifier","src":"3487:3:97"},"nativeSrc":"3487:18:97","nodeType":"YulFunctionCall","src":"3487:18:97"},"variableNames":[{"name":"tail","nativeSrc":"3479:4:97","nodeType":"YulIdentifier","src":"3479:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3521:9:97","nodeType":"YulIdentifier","src":"3521:9:97"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"3546:6:97","nodeType":"YulIdentifier","src":"3546:6:97"}],"functionName":{"name":"iszero","nativeSrc":"3539:6:97","nodeType":"YulIdentifier","src":"3539:6:97"},"nativeSrc":"3539:14:97","nodeType":"YulFunctionCall","src":"3539:14:97"}],"functionName":{"name":"iszero","nativeSrc":"3532:6:97","nodeType":"YulIdentifier","src":"3532:6:97"},"nativeSrc":"3532:22:97","nodeType":"YulFunctionCall","src":"3532:22:97"}],"functionName":{"name":"mstore","nativeSrc":"3514:6:97","nodeType":"YulIdentifier","src":"3514:6:97"},"nativeSrc":"3514:41:97","nodeType":"YulFunctionCall","src":"3514:41:97"},"nativeSrc":"3514:41:97","nodeType":"YulExpressionStatement","src":"3514:41:97"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"3374:187:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3438:9:97","nodeType":"YulTypedName","src":"3438:9:97","type":""},{"name":"value0","nativeSrc":"3449:6:97","nodeType":"YulTypedName","src":"3449:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3460:4:97","nodeType":"YulTypedName","src":"3460:4:97","type":""}],"src":"3374:187:97"},{"body":{"nativeSrc":"3740:246:97","nodeType":"YulBlock","src":"3740:246:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3757:9:97","nodeType":"YulIdentifier","src":"3757:9:97"},{"kind":"number","nativeSrc":"3768:2:97","nodeType":"YulLiteral","src":"3768:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"3750:6:97","nodeType":"YulIdentifier","src":"3750:6:97"},"nativeSrc":"3750:21:97","nodeType":"YulFunctionCall","src":"3750:21:97"},"nativeSrc":"3750:21:97","nodeType":"YulExpressionStatement","src":"3750:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3791:9:97","nodeType":"YulIdentifier","src":"3791:9:97"},{"kind":"number","nativeSrc":"3802:2:97","nodeType":"YulLiteral","src":"3802:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3787:3:97","nodeType":"YulIdentifier","src":"3787:3:97"},"nativeSrc":"3787:18:97","nodeType":"YulFunctionCall","src":"3787:18:97"},{"kind":"number","nativeSrc":"3807:2:97","nodeType":"YulLiteral","src":"3807:2:97","type":"","value":"56"}],"functionName":{"name":"mstore","nativeSrc":"3780:6:97","nodeType":"YulIdentifier","src":"3780:6:97"},"nativeSrc":"3780:30:97","nodeType":"YulFunctionCall","src":"3780:30:97"},"nativeSrc":"3780:30:97","nodeType":"YulExpressionStatement","src":"3780:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3830:9:97","nodeType":"YulIdentifier","src":"3830:9:97"},{"kind":"number","nativeSrc":"3841:2:97","nodeType":"YulLiteral","src":"3841:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3826:3:97","nodeType":"YulIdentifier","src":"3826:3:97"},"nativeSrc":"3826:18:97","nodeType":"YulFunctionCall","src":"3826:18:97"},{"hexValue":"54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a204361","kind":"string","nativeSrc":"3846:34:97","nodeType":"YulLiteral","src":"3846:34:97","type":"","value":"Timelock::executeTransaction: Ca"}],"functionName":{"name":"mstore","nativeSrc":"3819:6:97","nodeType":"YulIdentifier","src":"3819:6:97"},"nativeSrc":"3819:62:97","nodeType":"YulFunctionCall","src":"3819:62:97"},"nativeSrc":"3819:62:97","nodeType":"YulExpressionStatement","src":"3819:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3901:9:97","nodeType":"YulIdentifier","src":"3901:9:97"},{"kind":"number","nativeSrc":"3912:2:97","nodeType":"YulLiteral","src":"3912:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3897:3:97","nodeType":"YulIdentifier","src":"3897:3:97"},"nativeSrc":"3897:18:97","nodeType":"YulFunctionCall","src":"3897:18:97"},{"hexValue":"6c6c206d75737420636f6d652066726f6d2061646d696e2e","kind":"string","nativeSrc":"3917:26:97","nodeType":"YulLiteral","src":"3917:26:97","type":"","value":"ll must come from admin."}],"functionName":{"name":"mstore","nativeSrc":"3890:6:97","nodeType":"YulIdentifier","src":"3890:6:97"},"nativeSrc":"3890:54:97","nodeType":"YulFunctionCall","src":"3890:54:97"},"nativeSrc":"3890:54:97","nodeType":"YulExpressionStatement","src":"3890:54:97"},{"nativeSrc":"3953:27:97","nodeType":"YulAssignment","src":"3953:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"3965:9:97","nodeType":"YulIdentifier","src":"3965:9:97"},{"kind":"number","nativeSrc":"3976:3:97","nodeType":"YulLiteral","src":"3976:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"3961:3:97","nodeType":"YulIdentifier","src":"3961:3:97"},"nativeSrc":"3961:19:97","nodeType":"YulFunctionCall","src":"3961:19:97"},"variableNames":[{"name":"tail","nativeSrc":"3953:4:97","nodeType":"YulIdentifier","src":"3953:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_0cbc65ac44dc8b90b8bc4c38c9c6ad704bfeb2c8170538058496c0e805dfa947__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3566:420:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3717:9:97","nodeType":"YulTypedName","src":"3717:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3731:4:97","nodeType":"YulTypedName","src":"3731:4:97","type":""}],"src":"3566:420:97"},{"body":{"nativeSrc":"4058:259:97","nodeType":"YulBlock","src":"4058:259:97","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4075:3:97","nodeType":"YulIdentifier","src":"4075:3:97"},{"name":"length","nativeSrc":"4080:6:97","nodeType":"YulIdentifier","src":"4080:6:97"}],"functionName":{"name":"mstore","nativeSrc":"4068:6:97","nodeType":"YulIdentifier","src":"4068:6:97"},"nativeSrc":"4068:19:97","nodeType":"YulFunctionCall","src":"4068:19:97"},"nativeSrc":"4068:19:97","nodeType":"YulExpressionStatement","src":"4068:19:97"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"4113:3:97","nodeType":"YulIdentifier","src":"4113:3:97"},{"kind":"number","nativeSrc":"4118:4:97","nodeType":"YulLiteral","src":"4118:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4109:3:97","nodeType":"YulIdentifier","src":"4109:3:97"},"nativeSrc":"4109:14:97","nodeType":"YulFunctionCall","src":"4109:14:97"},{"name":"start","nativeSrc":"4125:5:97","nodeType":"YulIdentifier","src":"4125:5:97"},{"name":"length","nativeSrc":"4132:6:97","nodeType":"YulIdentifier","src":"4132:6:97"}],"functionName":{"name":"calldatacopy","nativeSrc":"4096:12:97","nodeType":"YulIdentifier","src":"4096:12:97"},"nativeSrc":"4096:43:97","nodeType":"YulFunctionCall","src":"4096:43:97"},"nativeSrc":"4096:43:97","nodeType":"YulExpressionStatement","src":"4096:43:97"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"4163:3:97","nodeType":"YulIdentifier","src":"4163:3:97"},{"name":"length","nativeSrc":"4168:6:97","nodeType":"YulIdentifier","src":"4168:6:97"}],"functionName":{"name":"add","nativeSrc":"4159:3:97","nodeType":"YulIdentifier","src":"4159:3:97"},"nativeSrc":"4159:16:97","nodeType":"YulFunctionCall","src":"4159:16:97"},{"kind":"number","nativeSrc":"4177:4:97","nodeType":"YulLiteral","src":"4177:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4155:3:97","nodeType":"YulIdentifier","src":"4155:3:97"},"nativeSrc":"4155:27:97","nodeType":"YulFunctionCall","src":"4155:27:97"},{"kind":"number","nativeSrc":"4184:1:97","nodeType":"YulLiteral","src":"4184:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4148:6:97","nodeType":"YulIdentifier","src":"4148:6:97"},"nativeSrc":"4148:38:97","nodeType":"YulFunctionCall","src":"4148:38:97"},"nativeSrc":"4148:38:97","nodeType":"YulExpressionStatement","src":"4148:38:97"},{"nativeSrc":"4195:116:97","nodeType":"YulAssignment","src":"4195:116:97","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"4210:3:97","nodeType":"YulIdentifier","src":"4210:3:97"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"4223:6:97","nodeType":"YulIdentifier","src":"4223:6:97"},{"kind":"number","nativeSrc":"4231:2:97","nodeType":"YulLiteral","src":"4231:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"4219:3:97","nodeType":"YulIdentifier","src":"4219:3:97"},"nativeSrc":"4219:15:97","nodeType":"YulFunctionCall","src":"4219:15:97"},{"kind":"number","nativeSrc":"4236:66:97","nodeType":"YulLiteral","src":"4236:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"4215:3:97","nodeType":"YulIdentifier","src":"4215:3:97"},"nativeSrc":"4215:88:97","nodeType":"YulFunctionCall","src":"4215:88:97"}],"functionName":{"name":"add","nativeSrc":"4206:3:97","nodeType":"YulIdentifier","src":"4206:3:97"},"nativeSrc":"4206:98:97","nodeType":"YulFunctionCall","src":"4206:98:97"},{"kind":"number","nativeSrc":"4306:4:97","nodeType":"YulLiteral","src":"4306:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4202:3:97","nodeType":"YulIdentifier","src":"4202:3:97"},"nativeSrc":"4202:109:97","nodeType":"YulFunctionCall","src":"4202:109:97"},"variableNames":[{"name":"end","nativeSrc":"4195:3:97","nodeType":"YulIdentifier","src":"4195:3:97"}]}]},"name":"abi_encode_string_calldata","nativeSrc":"3991:326:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"4027:5:97","nodeType":"YulTypedName","src":"4027:5:97","type":""},{"name":"length","nativeSrc":"4034:6:97","nodeType":"YulTypedName","src":"4034:6:97","type":""},{"name":"pos","nativeSrc":"4042:3:97","nodeType":"YulTypedName","src":"4042:3:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"4050:3:97","nodeType":"YulTypedName","src":"4050:3:97","type":""}],"src":"3991:326:97"},{"body":{"nativeSrc":"4593:429:97","nodeType":"YulBlock","src":"4593:429:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4610:9:97","nodeType":"YulIdentifier","src":"4610:9:97"},{"arguments":[{"name":"value0","nativeSrc":"4625:6:97","nodeType":"YulIdentifier","src":"4625:6:97"},{"kind":"number","nativeSrc":"4633:42:97","nodeType":"YulLiteral","src":"4633:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"4621:3:97","nodeType":"YulIdentifier","src":"4621:3:97"},"nativeSrc":"4621:55:97","nodeType":"YulFunctionCall","src":"4621:55:97"}],"functionName":{"name":"mstore","nativeSrc":"4603:6:97","nodeType":"YulIdentifier","src":"4603:6:97"},"nativeSrc":"4603:74:97","nodeType":"YulFunctionCall","src":"4603:74:97"},"nativeSrc":"4603:74:97","nodeType":"YulExpressionStatement","src":"4603:74:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4697:9:97","nodeType":"YulIdentifier","src":"4697:9:97"},{"kind":"number","nativeSrc":"4708:2:97","nodeType":"YulLiteral","src":"4708:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4693:3:97","nodeType":"YulIdentifier","src":"4693:3:97"},"nativeSrc":"4693:18:97","nodeType":"YulFunctionCall","src":"4693:18:97"},{"name":"value1","nativeSrc":"4713:6:97","nodeType":"YulIdentifier","src":"4713:6:97"}],"functionName":{"name":"mstore","nativeSrc":"4686:6:97","nodeType":"YulIdentifier","src":"4686:6:97"},"nativeSrc":"4686:34:97","nodeType":"YulFunctionCall","src":"4686:34:97"},"nativeSrc":"4686:34:97","nodeType":"YulExpressionStatement","src":"4686:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4740:9:97","nodeType":"YulIdentifier","src":"4740:9:97"},{"kind":"number","nativeSrc":"4751:2:97","nodeType":"YulLiteral","src":"4751:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4736:3:97","nodeType":"YulIdentifier","src":"4736:3:97"},"nativeSrc":"4736:18:97","nodeType":"YulFunctionCall","src":"4736:18:97"},{"kind":"number","nativeSrc":"4756:3:97","nodeType":"YulLiteral","src":"4756:3:97","type":"","value":"160"}],"functionName":{"name":"mstore","nativeSrc":"4729:6:97","nodeType":"YulIdentifier","src":"4729:6:97"},"nativeSrc":"4729:31:97","nodeType":"YulFunctionCall","src":"4729:31:97"},"nativeSrc":"4729:31:97","nodeType":"YulExpressionStatement","src":"4729:31:97"},{"nativeSrc":"4769:77:97","nodeType":"YulVariableDeclaration","src":"4769:77:97","value":{"arguments":[{"name":"value2","nativeSrc":"4810:6:97","nodeType":"YulIdentifier","src":"4810:6:97"},{"name":"value3","nativeSrc":"4818:6:97","nodeType":"YulIdentifier","src":"4818:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"4830:9:97","nodeType":"YulIdentifier","src":"4830:9:97"},{"kind":"number","nativeSrc":"4841:3:97","nodeType":"YulLiteral","src":"4841:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"4826:3:97","nodeType":"YulIdentifier","src":"4826:3:97"},"nativeSrc":"4826:19:97","nodeType":"YulFunctionCall","src":"4826:19:97"}],"functionName":{"name":"abi_encode_string_calldata","nativeSrc":"4783:26:97","nodeType":"YulIdentifier","src":"4783:26:97"},"nativeSrc":"4783:63:97","nodeType":"YulFunctionCall","src":"4783:63:97"},"variables":[{"name":"tail_1","nativeSrc":"4773:6:97","nodeType":"YulTypedName","src":"4773:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4866:9:97","nodeType":"YulIdentifier","src":"4866:9:97"},{"kind":"number","nativeSrc":"4877:2:97","nodeType":"YulLiteral","src":"4877:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4862:3:97","nodeType":"YulIdentifier","src":"4862:3:97"},"nativeSrc":"4862:18:97","nodeType":"YulFunctionCall","src":"4862:18:97"},{"arguments":[{"name":"tail_1","nativeSrc":"4886:6:97","nodeType":"YulIdentifier","src":"4886:6:97"},{"name":"headStart","nativeSrc":"4894:9:97","nodeType":"YulIdentifier","src":"4894:9:97"}],"functionName":{"name":"sub","nativeSrc":"4882:3:97","nodeType":"YulIdentifier","src":"4882:3:97"},"nativeSrc":"4882:22:97","nodeType":"YulFunctionCall","src":"4882:22:97"}],"functionName":{"name":"mstore","nativeSrc":"4855:6:97","nodeType":"YulIdentifier","src":"4855:6:97"},"nativeSrc":"4855:50:97","nodeType":"YulFunctionCall","src":"4855:50:97"},"nativeSrc":"4855:50:97","nodeType":"YulExpressionStatement","src":"4855:50:97"},{"nativeSrc":"4914:58:97","nodeType":"YulAssignment","src":"4914:58:97","value":{"arguments":[{"name":"value4","nativeSrc":"4949:6:97","nodeType":"YulIdentifier","src":"4949:6:97"},{"name":"value5","nativeSrc":"4957:6:97","nodeType":"YulIdentifier","src":"4957:6:97"},{"name":"tail_1","nativeSrc":"4965:6:97","nodeType":"YulIdentifier","src":"4965:6:97"}],"functionName":{"name":"abi_encode_string_calldata","nativeSrc":"4922:26:97","nodeType":"YulIdentifier","src":"4922:26:97"},"nativeSrc":"4922:50:97","nodeType":"YulFunctionCall","src":"4922:50:97"},"variableNames":[{"name":"tail","nativeSrc":"4914:4:97","nodeType":"YulIdentifier","src":"4914:4:97"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4992:9:97","nodeType":"YulIdentifier","src":"4992:9:97"},{"kind":"number","nativeSrc":"5003:3:97","nodeType":"YulLiteral","src":"5003:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"4988:3:97","nodeType":"YulIdentifier","src":"4988:3:97"},"nativeSrc":"4988:19:97","nodeType":"YulFunctionCall","src":"4988:19:97"},{"name":"value6","nativeSrc":"5009:6:97","nodeType":"YulIdentifier","src":"5009:6:97"}],"functionName":{"name":"mstore","nativeSrc":"4981:6:97","nodeType":"YulIdentifier","src":"4981:6:97"},"nativeSrc":"4981:35:97","nodeType":"YulFunctionCall","src":"4981:35:97"},"nativeSrc":"4981:35:97","nodeType":"YulExpressionStatement","src":"4981:35:97"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_string_calldata_ptr_t_bytes_calldata_ptr_t_uint256__to_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed","nativeSrc":"4322:700:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4514:9:97","nodeType":"YulTypedName","src":"4514:9:97","type":""},{"name":"value6","nativeSrc":"4525:6:97","nodeType":"YulTypedName","src":"4525:6:97","type":""},{"name":"value5","nativeSrc":"4533:6:97","nodeType":"YulTypedName","src":"4533:6:97","type":""},{"name":"value4","nativeSrc":"4541:6:97","nodeType":"YulTypedName","src":"4541:6:97","type":""},{"name":"value3","nativeSrc":"4549:6:97","nodeType":"YulTypedName","src":"4549:6:97","type":""},{"name":"value2","nativeSrc":"4557:6:97","nodeType":"YulTypedName","src":"4557:6:97","type":""},{"name":"value1","nativeSrc":"4565:6:97","nodeType":"YulTypedName","src":"4565:6:97","type":""},{"name":"value0","nativeSrc":"4573:6:97","nodeType":"YulTypedName","src":"4573:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4584:4:97","nodeType":"YulTypedName","src":"4584:4:97","type":""}],"src":"4322:700:97"},{"body":{"nativeSrc":"5201:251:97","nodeType":"YulBlock","src":"5201:251:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5218:9:97","nodeType":"YulIdentifier","src":"5218:9:97"},{"kind":"number","nativeSrc":"5229:2:97","nodeType":"YulLiteral","src":"5229:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"5211:6:97","nodeType":"YulIdentifier","src":"5211:6:97"},"nativeSrc":"5211:21:97","nodeType":"YulFunctionCall","src":"5211:21:97"},"nativeSrc":"5211:21:97","nodeType":"YulExpressionStatement","src":"5211:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5252:9:97","nodeType":"YulIdentifier","src":"5252:9:97"},{"kind":"number","nativeSrc":"5263:2:97","nodeType":"YulLiteral","src":"5263:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5248:3:97","nodeType":"YulIdentifier","src":"5248:3:97"},"nativeSrc":"5248:18:97","nodeType":"YulFunctionCall","src":"5248:18:97"},{"kind":"number","nativeSrc":"5268:2:97","nodeType":"YulLiteral","src":"5268:2:97","type":"","value":"61"}],"functionName":{"name":"mstore","nativeSrc":"5241:6:97","nodeType":"YulIdentifier","src":"5241:6:97"},"nativeSrc":"5241:30:97","nodeType":"YulFunctionCall","src":"5241:30:97"},"nativeSrc":"5241:30:97","nodeType":"YulExpressionStatement","src":"5241:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5291:9:97","nodeType":"YulIdentifier","src":"5291:9:97"},{"kind":"number","nativeSrc":"5302:2:97","nodeType":"YulLiteral","src":"5302:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5287:3:97","nodeType":"YulIdentifier","src":"5287:3:97"},"nativeSrc":"5287:18:97","nodeType":"YulFunctionCall","src":"5287:18:97"},{"hexValue":"54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472","kind":"string","nativeSrc":"5307:34:97","nodeType":"YulLiteral","src":"5307:34:97","type":"","value":"Timelock::executeTransaction: Tr"}],"functionName":{"name":"mstore","nativeSrc":"5280:6:97","nodeType":"YulIdentifier","src":"5280:6:97"},"nativeSrc":"5280:62:97","nodeType":"YulFunctionCall","src":"5280:62:97"},"nativeSrc":"5280:62:97","nodeType":"YulExpressionStatement","src":"5280:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5362:9:97","nodeType":"YulIdentifier","src":"5362:9:97"},{"kind":"number","nativeSrc":"5373:2:97","nodeType":"YulLiteral","src":"5373:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5358:3:97","nodeType":"YulIdentifier","src":"5358:3:97"},"nativeSrc":"5358:18:97","nodeType":"YulFunctionCall","src":"5358:18:97"},{"hexValue":"616e73616374696f6e206861736e2774206265656e207175657565642e","kind":"string","nativeSrc":"5378:31:97","nodeType":"YulLiteral","src":"5378:31:97","type":"","value":"ansaction hasn't been queued."}],"functionName":{"name":"mstore","nativeSrc":"5351:6:97","nodeType":"YulIdentifier","src":"5351:6:97"},"nativeSrc":"5351:59:97","nodeType":"YulFunctionCall","src":"5351:59:97"},"nativeSrc":"5351:59:97","nodeType":"YulExpressionStatement","src":"5351:59:97"},{"nativeSrc":"5419:27:97","nodeType":"YulAssignment","src":"5419:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"5431:9:97","nodeType":"YulIdentifier","src":"5431:9:97"},{"kind":"number","nativeSrc":"5442:3:97","nodeType":"YulLiteral","src":"5442:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"5427:3:97","nodeType":"YulIdentifier","src":"5427:3:97"},"nativeSrc":"5427:19:97","nodeType":"YulFunctionCall","src":"5427:19:97"},"variableNames":[{"name":"tail","nativeSrc":"5419:4:97","nodeType":"YulIdentifier","src":"5419:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_7e3bf24eec453753018af1214443c72d8abb3050b249b2b3b9bb2adb04310650__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5027:425:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5178:9:97","nodeType":"YulTypedName","src":"5178:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5192:4:97","nodeType":"YulTypedName","src":"5192:4:97","type":""}],"src":"5027:425:97"},{"body":{"nativeSrc":"5631:299:97","nodeType":"YulBlock","src":"5631:299:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5648:9:97","nodeType":"YulIdentifier","src":"5648:9:97"},{"kind":"number","nativeSrc":"5659:2:97","nodeType":"YulLiteral","src":"5659:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"5641:6:97","nodeType":"YulIdentifier","src":"5641:6:97"},"nativeSrc":"5641:21:97","nodeType":"YulFunctionCall","src":"5641:21:97"},"nativeSrc":"5641:21:97","nodeType":"YulExpressionStatement","src":"5641:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5682:9:97","nodeType":"YulIdentifier","src":"5682:9:97"},{"kind":"number","nativeSrc":"5693:2:97","nodeType":"YulLiteral","src":"5693:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5678:3:97","nodeType":"YulIdentifier","src":"5678:3:97"},"nativeSrc":"5678:18:97","nodeType":"YulFunctionCall","src":"5678:18:97"},{"kind":"number","nativeSrc":"5698:2:97","nodeType":"YulLiteral","src":"5698:2:97","type":"","value":"69"}],"functionName":{"name":"mstore","nativeSrc":"5671:6:97","nodeType":"YulIdentifier","src":"5671:6:97"},"nativeSrc":"5671:30:97","nodeType":"YulFunctionCall","src":"5671:30:97"},"nativeSrc":"5671:30:97","nodeType":"YulExpressionStatement","src":"5671:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5721:9:97","nodeType":"YulIdentifier","src":"5721:9:97"},{"kind":"number","nativeSrc":"5732:2:97","nodeType":"YulLiteral","src":"5732:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5717:3:97","nodeType":"YulIdentifier","src":"5717:3:97"},"nativeSrc":"5717:18:97","nodeType":"YulFunctionCall","src":"5717:18:97"},{"hexValue":"54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472","kind":"string","nativeSrc":"5737:34:97","nodeType":"YulLiteral","src":"5737:34:97","type":"","value":"Timelock::executeTransaction: Tr"}],"functionName":{"name":"mstore","nativeSrc":"5710:6:97","nodeType":"YulIdentifier","src":"5710:6:97"},"nativeSrc":"5710:62:97","nodeType":"YulFunctionCall","src":"5710:62:97"},"nativeSrc":"5710:62:97","nodeType":"YulExpressionStatement","src":"5710:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5792:9:97","nodeType":"YulIdentifier","src":"5792:9:97"},{"kind":"number","nativeSrc":"5803:2:97","nodeType":"YulLiteral","src":"5803:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5788:3:97","nodeType":"YulIdentifier","src":"5788:3:97"},"nativeSrc":"5788:18:97","nodeType":"YulFunctionCall","src":"5788:18:97"},{"hexValue":"616e73616374696f6e206861736e2774207375727061737365642074696d6520","kind":"string","nativeSrc":"5808:34:97","nodeType":"YulLiteral","src":"5808:34:97","type":"","value":"ansaction hasn't surpassed time "}],"functionName":{"name":"mstore","nativeSrc":"5781:6:97","nodeType":"YulIdentifier","src":"5781:6:97"},"nativeSrc":"5781:62:97","nodeType":"YulFunctionCall","src":"5781:62:97"},"nativeSrc":"5781:62:97","nodeType":"YulExpressionStatement","src":"5781:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5863:9:97","nodeType":"YulIdentifier","src":"5863:9:97"},{"kind":"number","nativeSrc":"5874:3:97","nodeType":"YulLiteral","src":"5874:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"5859:3:97","nodeType":"YulIdentifier","src":"5859:3:97"},"nativeSrc":"5859:19:97","nodeType":"YulFunctionCall","src":"5859:19:97"},{"hexValue":"6c6f636b2e","kind":"string","nativeSrc":"5880:7:97","nodeType":"YulLiteral","src":"5880:7:97","type":"","value":"lock."}],"functionName":{"name":"mstore","nativeSrc":"5852:6:97","nodeType":"YulIdentifier","src":"5852:6:97"},"nativeSrc":"5852:36:97","nodeType":"YulFunctionCall","src":"5852:36:97"},"nativeSrc":"5852:36:97","nodeType":"YulExpressionStatement","src":"5852:36:97"},{"nativeSrc":"5897:27:97","nodeType":"YulAssignment","src":"5897:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"5909:9:97","nodeType":"YulIdentifier","src":"5909:9:97"},{"kind":"number","nativeSrc":"5920:3:97","nodeType":"YulLiteral","src":"5920:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"5905:3:97","nodeType":"YulIdentifier","src":"5905:3:97"},"nativeSrc":"5905:19:97","nodeType":"YulFunctionCall","src":"5905:19:97"},"variableNames":[{"name":"tail","nativeSrc":"5897:4:97","nodeType":"YulIdentifier","src":"5897:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_381d72a875dbcf282eb0ce43951c66b6c4d7dadc6fdeb9294add773d09cd1687__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5457:473:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5608:9:97","nodeType":"YulTypedName","src":"5608:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5622:4:97","nodeType":"YulTypedName","src":"5622:4:97","type":""}],"src":"5457:473:97"},{"body":{"nativeSrc":"5983:231:97","nodeType":"YulBlock","src":"5983:231:97","statements":[{"nativeSrc":"5993:16:97","nodeType":"YulAssignment","src":"5993:16:97","value":{"arguments":[{"name":"x","nativeSrc":"6004:1:97","nodeType":"YulIdentifier","src":"6004:1:97"},{"name":"y","nativeSrc":"6007:1:97","nodeType":"YulIdentifier","src":"6007:1:97"}],"functionName":{"name":"add","nativeSrc":"6000:3:97","nodeType":"YulIdentifier","src":"6000:3:97"},"nativeSrc":"6000:9:97","nodeType":"YulFunctionCall","src":"6000:9:97"},"variableNames":[{"name":"sum","nativeSrc":"5993:3:97","nodeType":"YulIdentifier","src":"5993:3:97"}]},{"body":{"nativeSrc":"6040:168:97","nodeType":"YulBlock","src":"6040:168:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6061:1:97","nodeType":"YulLiteral","src":"6061:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"6064:77:97","nodeType":"YulLiteral","src":"6064:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6054:6:97","nodeType":"YulIdentifier","src":"6054:6:97"},"nativeSrc":"6054:88:97","nodeType":"YulFunctionCall","src":"6054:88:97"},"nativeSrc":"6054:88:97","nodeType":"YulExpressionStatement","src":"6054:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6162:1:97","nodeType":"YulLiteral","src":"6162:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"6165:4:97","nodeType":"YulLiteral","src":"6165:4:97","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"6155:6:97","nodeType":"YulIdentifier","src":"6155:6:97"},"nativeSrc":"6155:15:97","nodeType":"YulFunctionCall","src":"6155:15:97"},"nativeSrc":"6155:15:97","nodeType":"YulExpressionStatement","src":"6155:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6190:1:97","nodeType":"YulLiteral","src":"6190:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"6193:4:97","nodeType":"YulLiteral","src":"6193:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6183:6:97","nodeType":"YulIdentifier","src":"6183:6:97"},"nativeSrc":"6183:15:97","nodeType":"YulFunctionCall","src":"6183:15:97"},"nativeSrc":"6183:15:97","nodeType":"YulExpressionStatement","src":"6183:15:97"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"6024:1:97","nodeType":"YulIdentifier","src":"6024:1:97"},{"name":"sum","nativeSrc":"6027:3:97","nodeType":"YulIdentifier","src":"6027:3:97"}],"functionName":{"name":"gt","nativeSrc":"6021:2:97","nodeType":"YulIdentifier","src":"6021:2:97"},"nativeSrc":"6021:10:97","nodeType":"YulFunctionCall","src":"6021:10:97"},"nativeSrc":"6018:190:97","nodeType":"YulIf","src":"6018:190:97"}]},"name":"checked_add_t_uint256","nativeSrc":"5935:279:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"5966:1:97","nodeType":"YulTypedName","src":"5966:1:97","type":""},{"name":"y","nativeSrc":"5969:1:97","nodeType":"YulTypedName","src":"5969:1:97","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"5975:3:97","nodeType":"YulTypedName","src":"5975:3:97","type":""}],"src":"5935:279:97"},{"body":{"nativeSrc":"6393:241:97","nodeType":"YulBlock","src":"6393:241:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6410:9:97","nodeType":"YulIdentifier","src":"6410:9:97"},{"kind":"number","nativeSrc":"6421:2:97","nodeType":"YulLiteral","src":"6421:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"6403:6:97","nodeType":"YulIdentifier","src":"6403:6:97"},"nativeSrc":"6403:21:97","nodeType":"YulFunctionCall","src":"6403:21:97"},"nativeSrc":"6403:21:97","nodeType":"YulExpressionStatement","src":"6403:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6444:9:97","nodeType":"YulIdentifier","src":"6444:9:97"},{"kind":"number","nativeSrc":"6455:2:97","nodeType":"YulLiteral","src":"6455:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6440:3:97","nodeType":"YulIdentifier","src":"6440:3:97"},"nativeSrc":"6440:18:97","nodeType":"YulFunctionCall","src":"6440:18:97"},{"kind":"number","nativeSrc":"6460:2:97","nodeType":"YulLiteral","src":"6460:2:97","type":"","value":"51"}],"functionName":{"name":"mstore","nativeSrc":"6433:6:97","nodeType":"YulIdentifier","src":"6433:6:97"},"nativeSrc":"6433:30:97","nodeType":"YulFunctionCall","src":"6433:30:97"},"nativeSrc":"6433:30:97","nodeType":"YulExpressionStatement","src":"6433:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6483:9:97","nodeType":"YulIdentifier","src":"6483:9:97"},{"kind":"number","nativeSrc":"6494:2:97","nodeType":"YulLiteral","src":"6494:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6479:3:97","nodeType":"YulIdentifier","src":"6479:3:97"},"nativeSrc":"6479:18:97","nodeType":"YulFunctionCall","src":"6479:18:97"},{"hexValue":"54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472","kind":"string","nativeSrc":"6499:34:97","nodeType":"YulLiteral","src":"6499:34:97","type":"","value":"Timelock::executeTransaction: Tr"}],"functionName":{"name":"mstore","nativeSrc":"6472:6:97","nodeType":"YulIdentifier","src":"6472:6:97"},"nativeSrc":"6472:62:97","nodeType":"YulFunctionCall","src":"6472:62:97"},"nativeSrc":"6472:62:97","nodeType":"YulExpressionStatement","src":"6472:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6554:9:97","nodeType":"YulIdentifier","src":"6554:9:97"},{"kind":"number","nativeSrc":"6565:2:97","nodeType":"YulLiteral","src":"6565:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"6550:3:97","nodeType":"YulIdentifier","src":"6550:3:97"},"nativeSrc":"6550:18:97","nodeType":"YulFunctionCall","src":"6550:18:97"},{"hexValue":"616e73616374696f6e206973207374616c652e","kind":"string","nativeSrc":"6570:21:97","nodeType":"YulLiteral","src":"6570:21:97","type":"","value":"ansaction is stale."}],"functionName":{"name":"mstore","nativeSrc":"6543:6:97","nodeType":"YulIdentifier","src":"6543:6:97"},"nativeSrc":"6543:49:97","nodeType":"YulFunctionCall","src":"6543:49:97"},"nativeSrc":"6543:49:97","nodeType":"YulExpressionStatement","src":"6543:49:97"},{"nativeSrc":"6601:27:97","nodeType":"YulAssignment","src":"6601:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"6613:9:97","nodeType":"YulIdentifier","src":"6613:9:97"},{"kind":"number","nativeSrc":"6624:3:97","nodeType":"YulLiteral","src":"6624:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"6609:3:97","nodeType":"YulIdentifier","src":"6609:3:97"},"nativeSrc":"6609:19:97","nodeType":"YulFunctionCall","src":"6609:19:97"},"variableNames":[{"name":"tail","nativeSrc":"6601:4:97","nodeType":"YulIdentifier","src":"6601:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_2c4a83afbdcff2c4ba869dacfa7dabb27b12f774a0707feae827e36773b8166c__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6219:415:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6370:9:97","nodeType":"YulTypedName","src":"6370:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6384:4:97","nodeType":"YulTypedName","src":"6384:4:97","type":""}],"src":"6219:415:97"},{"body":{"nativeSrc":"6786:124:97","nodeType":"YulBlock","src":"6786:124:97","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6809:3:97","nodeType":"YulIdentifier","src":"6809:3:97"},{"name":"value0","nativeSrc":"6814:6:97","nodeType":"YulIdentifier","src":"6814:6:97"},{"name":"value1","nativeSrc":"6822:6:97","nodeType":"YulIdentifier","src":"6822:6:97"}],"functionName":{"name":"calldatacopy","nativeSrc":"6796:12:97","nodeType":"YulIdentifier","src":"6796:12:97"},"nativeSrc":"6796:33:97","nodeType":"YulFunctionCall","src":"6796:33:97"},"nativeSrc":"6796:33:97","nodeType":"YulExpressionStatement","src":"6796:33:97"},{"nativeSrc":"6838:26:97","nodeType":"YulVariableDeclaration","src":"6838:26:97","value":{"arguments":[{"name":"pos","nativeSrc":"6852:3:97","nodeType":"YulIdentifier","src":"6852:3:97"},{"name":"value1","nativeSrc":"6857:6:97","nodeType":"YulIdentifier","src":"6857:6:97"}],"functionName":{"name":"add","nativeSrc":"6848:3:97","nodeType":"YulIdentifier","src":"6848:3:97"},"nativeSrc":"6848:16:97","nodeType":"YulFunctionCall","src":"6848:16:97"},"variables":[{"name":"_1","nativeSrc":"6842:2:97","nodeType":"YulTypedName","src":"6842:2:97","type":""}]},{"expression":{"arguments":[{"name":"_1","nativeSrc":"6880:2:97","nodeType":"YulIdentifier","src":"6880:2:97"},{"kind":"number","nativeSrc":"6884:1:97","nodeType":"YulLiteral","src":"6884:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"6873:6:97","nodeType":"YulIdentifier","src":"6873:6:97"},"nativeSrc":"6873:13:97","nodeType":"YulFunctionCall","src":"6873:13:97"},"nativeSrc":"6873:13:97","nodeType":"YulExpressionStatement","src":"6873:13:97"},{"nativeSrc":"6895:9:97","nodeType":"YulAssignment","src":"6895:9:97","value":{"name":"_1","nativeSrc":"6902:2:97","nodeType":"YulIdentifier","src":"6902:2:97"},"variableNames":[{"name":"end","nativeSrc":"6895:3:97","nodeType":"YulIdentifier","src":"6895:3:97"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"6639:271:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"6754:3:97","nodeType":"YulTypedName","src":"6754:3:97","type":""},{"name":"value1","nativeSrc":"6759:6:97","nodeType":"YulTypedName","src":"6759:6:97","type":""},{"name":"value0","nativeSrc":"6767:6:97","nodeType":"YulTypedName","src":"6767:6:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"6778:3:97","nodeType":"YulTypedName","src":"6778:3:97","type":""}],"src":"6639:271:97"},{"body":{"nativeSrc":"7088:241:97","nodeType":"YulBlock","src":"7088:241:97","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"7105:3:97","nodeType":"YulIdentifier","src":"7105:3:97"},{"arguments":[{"name":"value0","nativeSrc":"7114:6:97","nodeType":"YulIdentifier","src":"7114:6:97"},{"kind":"number","nativeSrc":"7122:66:97","nodeType":"YulLiteral","src":"7122:66:97","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"7110:3:97","nodeType":"YulIdentifier","src":"7110:3:97"},"nativeSrc":"7110:79:97","nodeType":"YulFunctionCall","src":"7110:79:97"}],"functionName":{"name":"mstore","nativeSrc":"7098:6:97","nodeType":"YulIdentifier","src":"7098:6:97"},"nativeSrc":"7098:92:97","nodeType":"YulFunctionCall","src":"7098:92:97"},"nativeSrc":"7098:92:97","nodeType":"YulExpressionStatement","src":"7098:92:97"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"7216:3:97","nodeType":"YulIdentifier","src":"7216:3:97"},{"kind":"number","nativeSrc":"7221:1:97","nodeType":"YulLiteral","src":"7221:1:97","type":"","value":"4"}],"functionName":{"name":"add","nativeSrc":"7212:3:97","nodeType":"YulIdentifier","src":"7212:3:97"},"nativeSrc":"7212:11:97","nodeType":"YulFunctionCall","src":"7212:11:97"},{"name":"value1","nativeSrc":"7225:6:97","nodeType":"YulIdentifier","src":"7225:6:97"},{"name":"value2","nativeSrc":"7233:6:97","nodeType":"YulIdentifier","src":"7233:6:97"}],"functionName":{"name":"calldatacopy","nativeSrc":"7199:12:97","nodeType":"YulIdentifier","src":"7199:12:97"},"nativeSrc":"7199:41:97","nodeType":"YulFunctionCall","src":"7199:41:97"},"nativeSrc":"7199:41:97","nodeType":"YulExpressionStatement","src":"7199:41:97"},{"nativeSrc":"7249:34:97","nodeType":"YulVariableDeclaration","src":"7249:34:97","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"7267:3:97","nodeType":"YulIdentifier","src":"7267:3:97"},{"name":"value2","nativeSrc":"7272:6:97","nodeType":"YulIdentifier","src":"7272:6:97"}],"functionName":{"name":"add","nativeSrc":"7263:3:97","nodeType":"YulIdentifier","src":"7263:3:97"},"nativeSrc":"7263:16:97","nodeType":"YulFunctionCall","src":"7263:16:97"},{"kind":"number","nativeSrc":"7281:1:97","nodeType":"YulLiteral","src":"7281:1:97","type":"","value":"4"}],"functionName":{"name":"add","nativeSrc":"7259:3:97","nodeType":"YulIdentifier","src":"7259:3:97"},"nativeSrc":"7259:24:97","nodeType":"YulFunctionCall","src":"7259:24:97"},"variables":[{"name":"_1","nativeSrc":"7253:2:97","nodeType":"YulTypedName","src":"7253:2:97","type":""}]},{"expression":{"arguments":[{"name":"_1","nativeSrc":"7299:2:97","nodeType":"YulIdentifier","src":"7299:2:97"},{"kind":"number","nativeSrc":"7303:1:97","nodeType":"YulLiteral","src":"7303:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"7292:6:97","nodeType":"YulIdentifier","src":"7292:6:97"},"nativeSrc":"7292:13:97","nodeType":"YulFunctionCall","src":"7292:13:97"},"nativeSrc":"7292:13:97","nodeType":"YulExpressionStatement","src":"7292:13:97"},{"nativeSrc":"7314:9:97","nodeType":"YulAssignment","src":"7314:9:97","value":{"name":"_1","nativeSrc":"7321:2:97","nodeType":"YulIdentifier","src":"7321:2:97"},"variableNames":[{"name":"end","nativeSrc":"7314:3:97","nodeType":"YulIdentifier","src":"7314:3:97"}]}]},"name":"abi_encode_tuple_packed_t_bytes4_t_bytes_calldata_ptr__to_t_bytes4_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"6915:414:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7048:3:97","nodeType":"YulTypedName","src":"7048:3:97","type":""},{"name":"value2","nativeSrc":"7053:6:97","nodeType":"YulTypedName","src":"7053:6:97","type":""},{"name":"value1","nativeSrc":"7061:6:97","nodeType":"YulTypedName","src":"7061:6:97","type":""},{"name":"value0","nativeSrc":"7069:6:97","nodeType":"YulTypedName","src":"7069:6:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7080:3:97","nodeType":"YulTypedName","src":"7080:3:97","type":""}],"src":"6915:414:97"},{"body":{"nativeSrc":"7471:150:97","nodeType":"YulBlock","src":"7471:150:97","statements":[{"nativeSrc":"7481:27:97","nodeType":"YulVariableDeclaration","src":"7481:27:97","value":{"arguments":[{"name":"value0","nativeSrc":"7501:6:97","nodeType":"YulIdentifier","src":"7501:6:97"}],"functionName":{"name":"mload","nativeSrc":"7495:5:97","nodeType":"YulIdentifier","src":"7495:5:97"},"nativeSrc":"7495:13:97","nodeType":"YulFunctionCall","src":"7495:13:97"},"variables":[{"name":"length","nativeSrc":"7485:6:97","nodeType":"YulTypedName","src":"7485:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"7556:6:97","nodeType":"YulIdentifier","src":"7556:6:97"},{"kind":"number","nativeSrc":"7564:4:97","nodeType":"YulLiteral","src":"7564:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7552:3:97","nodeType":"YulIdentifier","src":"7552:3:97"},"nativeSrc":"7552:17:97","nodeType":"YulFunctionCall","src":"7552:17:97"},{"name":"pos","nativeSrc":"7571:3:97","nodeType":"YulIdentifier","src":"7571:3:97"},{"name":"length","nativeSrc":"7576:6:97","nodeType":"YulIdentifier","src":"7576:6:97"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"7517:34:97","nodeType":"YulIdentifier","src":"7517:34:97"},"nativeSrc":"7517:66:97","nodeType":"YulFunctionCall","src":"7517:66:97"},"nativeSrc":"7517:66:97","nodeType":"YulExpressionStatement","src":"7517:66:97"},{"nativeSrc":"7592:23:97","nodeType":"YulAssignment","src":"7592:23:97","value":{"arguments":[{"name":"pos","nativeSrc":"7603:3:97","nodeType":"YulIdentifier","src":"7603:3:97"},{"name":"length","nativeSrc":"7608:6:97","nodeType":"YulIdentifier","src":"7608:6:97"}],"functionName":{"name":"add","nativeSrc":"7599:3:97","nodeType":"YulIdentifier","src":"7599:3:97"},"nativeSrc":"7599:16:97","nodeType":"YulFunctionCall","src":"7599:16:97"},"variableNames":[{"name":"end","nativeSrc":"7592:3:97","nodeType":"YulIdentifier","src":"7592:3:97"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"7334:287:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7447:3:97","nodeType":"YulTypedName","src":"7447:3:97","type":""},{"name":"value0","nativeSrc":"7452:6:97","nodeType":"YulTypedName","src":"7452:6:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7463:3:97","nodeType":"YulTypedName","src":"7463:3:97","type":""}],"src":"7334:287:97"},{"body":{"nativeSrc":"7800:251:97","nodeType":"YulBlock","src":"7800:251:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7817:9:97","nodeType":"YulIdentifier","src":"7817:9:97"},{"kind":"number","nativeSrc":"7828:2:97","nodeType":"YulLiteral","src":"7828:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"7810:6:97","nodeType":"YulIdentifier","src":"7810:6:97"},"nativeSrc":"7810:21:97","nodeType":"YulFunctionCall","src":"7810:21:97"},"nativeSrc":"7810:21:97","nodeType":"YulExpressionStatement","src":"7810:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7851:9:97","nodeType":"YulIdentifier","src":"7851:9:97"},{"kind":"number","nativeSrc":"7862:2:97","nodeType":"YulLiteral","src":"7862:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7847:3:97","nodeType":"YulIdentifier","src":"7847:3:97"},"nativeSrc":"7847:18:97","nodeType":"YulFunctionCall","src":"7847:18:97"},{"kind":"number","nativeSrc":"7867:2:97","nodeType":"YulLiteral","src":"7867:2:97","type":"","value":"61"}],"functionName":{"name":"mstore","nativeSrc":"7840:6:97","nodeType":"YulIdentifier","src":"7840:6:97"},"nativeSrc":"7840:30:97","nodeType":"YulFunctionCall","src":"7840:30:97"},"nativeSrc":"7840:30:97","nodeType":"YulExpressionStatement","src":"7840:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7890:9:97","nodeType":"YulIdentifier","src":"7890:9:97"},{"kind":"number","nativeSrc":"7901:2:97","nodeType":"YulLiteral","src":"7901:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7886:3:97","nodeType":"YulIdentifier","src":"7886:3:97"},"nativeSrc":"7886:18:97","nodeType":"YulFunctionCall","src":"7886:18:97"},{"hexValue":"54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472","kind":"string","nativeSrc":"7906:34:97","nodeType":"YulLiteral","src":"7906:34:97","type":"","value":"Timelock::executeTransaction: Tr"}],"functionName":{"name":"mstore","nativeSrc":"7879:6:97","nodeType":"YulIdentifier","src":"7879:6:97"},"nativeSrc":"7879:62:97","nodeType":"YulFunctionCall","src":"7879:62:97"},"nativeSrc":"7879:62:97","nodeType":"YulExpressionStatement","src":"7879:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7961:9:97","nodeType":"YulIdentifier","src":"7961:9:97"},{"kind":"number","nativeSrc":"7972:2:97","nodeType":"YulLiteral","src":"7972:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"7957:3:97","nodeType":"YulIdentifier","src":"7957:3:97"},"nativeSrc":"7957:18:97","nodeType":"YulFunctionCall","src":"7957:18:97"},{"hexValue":"616e73616374696f6e20657865637574696f6e2072657665727465642e","kind":"string","nativeSrc":"7977:31:97","nodeType":"YulLiteral","src":"7977:31:97","type":"","value":"ansaction execution reverted."}],"functionName":{"name":"mstore","nativeSrc":"7950:6:97","nodeType":"YulIdentifier","src":"7950:6:97"},"nativeSrc":"7950:59:97","nodeType":"YulFunctionCall","src":"7950:59:97"},"nativeSrc":"7950:59:97","nodeType":"YulExpressionStatement","src":"7950:59:97"},{"nativeSrc":"8018:27:97","nodeType":"YulAssignment","src":"8018:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"8030:9:97","nodeType":"YulIdentifier","src":"8030:9:97"},{"kind":"number","nativeSrc":"8041:3:97","nodeType":"YulLiteral","src":"8041:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"8026:3:97","nodeType":"YulIdentifier","src":"8026:3:97"},"nativeSrc":"8026:19:97","nodeType":"YulFunctionCall","src":"8026:19:97"},"variableNames":[{"name":"tail","nativeSrc":"8018:4:97","nodeType":"YulIdentifier","src":"8018:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_c8cfef133518ef6ab39ac5f19562a74f4f875e9130c8117d51f88a557b6e72c9__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"7626:425:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7777:9:97","nodeType":"YulTypedName","src":"7777:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7791:4:97","nodeType":"YulTypedName","src":"7791:4:97","type":""}],"src":"7626:425:97"},{"body":{"nativeSrc":"8299:336:97","nodeType":"YulBlock","src":"8299:336:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8316:9:97","nodeType":"YulIdentifier","src":"8316:9:97"},{"name":"value0","nativeSrc":"8327:6:97","nodeType":"YulIdentifier","src":"8327:6:97"}],"functionName":{"name":"mstore","nativeSrc":"8309:6:97","nodeType":"YulIdentifier","src":"8309:6:97"},"nativeSrc":"8309:25:97","nodeType":"YulFunctionCall","src":"8309:25:97"},"nativeSrc":"8309:25:97","nodeType":"YulExpressionStatement","src":"8309:25:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8354:9:97","nodeType":"YulIdentifier","src":"8354:9:97"},{"kind":"number","nativeSrc":"8365:2:97","nodeType":"YulLiteral","src":"8365:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8350:3:97","nodeType":"YulIdentifier","src":"8350:3:97"},"nativeSrc":"8350:18:97","nodeType":"YulFunctionCall","src":"8350:18:97"},{"kind":"number","nativeSrc":"8370:3:97","nodeType":"YulLiteral","src":"8370:3:97","type":"","value":"128"}],"functionName":{"name":"mstore","nativeSrc":"8343:6:97","nodeType":"YulIdentifier","src":"8343:6:97"},"nativeSrc":"8343:31:97","nodeType":"YulFunctionCall","src":"8343:31:97"},"nativeSrc":"8343:31:97","nodeType":"YulExpressionStatement","src":"8343:31:97"},{"nativeSrc":"8383:77:97","nodeType":"YulVariableDeclaration","src":"8383:77:97","value":{"arguments":[{"name":"value1","nativeSrc":"8424:6:97","nodeType":"YulIdentifier","src":"8424:6:97"},{"name":"value2","nativeSrc":"8432:6:97","nodeType":"YulIdentifier","src":"8432:6:97"},{"arguments":[{"name":"headStart","nativeSrc":"8444:9:97","nodeType":"YulIdentifier","src":"8444:9:97"},{"kind":"number","nativeSrc":"8455:3:97","nodeType":"YulLiteral","src":"8455:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"8440:3:97","nodeType":"YulIdentifier","src":"8440:3:97"},"nativeSrc":"8440:19:97","nodeType":"YulFunctionCall","src":"8440:19:97"}],"functionName":{"name":"abi_encode_string_calldata","nativeSrc":"8397:26:97","nodeType":"YulIdentifier","src":"8397:26:97"},"nativeSrc":"8397:63:97","nodeType":"YulFunctionCall","src":"8397:63:97"},"variables":[{"name":"tail_1","nativeSrc":"8387:6:97","nodeType":"YulTypedName","src":"8387:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8480:9:97","nodeType":"YulIdentifier","src":"8480:9:97"},{"kind":"number","nativeSrc":"8491:2:97","nodeType":"YulLiteral","src":"8491:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8476:3:97","nodeType":"YulIdentifier","src":"8476:3:97"},"nativeSrc":"8476:18:97","nodeType":"YulFunctionCall","src":"8476:18:97"},{"arguments":[{"name":"tail_1","nativeSrc":"8500:6:97","nodeType":"YulIdentifier","src":"8500:6:97"},{"name":"headStart","nativeSrc":"8508:9:97","nodeType":"YulIdentifier","src":"8508:9:97"}],"functionName":{"name":"sub","nativeSrc":"8496:3:97","nodeType":"YulIdentifier","src":"8496:3:97"},"nativeSrc":"8496:22:97","nodeType":"YulFunctionCall","src":"8496:22:97"}],"functionName":{"name":"mstore","nativeSrc":"8469:6:97","nodeType":"YulIdentifier","src":"8469:6:97"},"nativeSrc":"8469:50:97","nodeType":"YulFunctionCall","src":"8469:50:97"},"nativeSrc":"8469:50:97","nodeType":"YulExpressionStatement","src":"8469:50:97"},{"nativeSrc":"8528:58:97","nodeType":"YulAssignment","src":"8528:58:97","value":{"arguments":[{"name":"value3","nativeSrc":"8563:6:97","nodeType":"YulIdentifier","src":"8563:6:97"},{"name":"value4","nativeSrc":"8571:6:97","nodeType":"YulIdentifier","src":"8571:6:97"},{"name":"tail_1","nativeSrc":"8579:6:97","nodeType":"YulIdentifier","src":"8579:6:97"}],"functionName":{"name":"abi_encode_string_calldata","nativeSrc":"8536:26:97","nodeType":"YulIdentifier","src":"8536:26:97"},"nativeSrc":"8536:50:97","nodeType":"YulFunctionCall","src":"8536:50:97"},"variableNames":[{"name":"tail","nativeSrc":"8528:4:97","nodeType":"YulIdentifier","src":"8528:4:97"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8606:9:97","nodeType":"YulIdentifier","src":"8606:9:97"},{"kind":"number","nativeSrc":"8617:2:97","nodeType":"YulLiteral","src":"8617:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"8602:3:97","nodeType":"YulIdentifier","src":"8602:3:97"},"nativeSrc":"8602:18:97","nodeType":"YulFunctionCall","src":"8602:18:97"},{"name":"value5","nativeSrc":"8622:6:97","nodeType":"YulIdentifier","src":"8622:6:97"}],"functionName":{"name":"mstore","nativeSrc":"8595:6:97","nodeType":"YulIdentifier","src":"8595:6:97"},"nativeSrc":"8595:34:97","nodeType":"YulFunctionCall","src":"8595:34:97"},"nativeSrc":"8595:34:97","nodeType":"YulExpressionStatement","src":"8595:34:97"}]},"name":"abi_encode_tuple_t_uint256_t_string_calldata_ptr_t_bytes_calldata_ptr_t_uint256__to_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed","nativeSrc":"8056:579:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8228:9:97","nodeType":"YulTypedName","src":"8228:9:97","type":""},{"name":"value5","nativeSrc":"8239:6:97","nodeType":"YulTypedName","src":"8239:6:97","type":""},{"name":"value4","nativeSrc":"8247:6:97","nodeType":"YulTypedName","src":"8247:6:97","type":""},{"name":"value3","nativeSrc":"8255:6:97","nodeType":"YulTypedName","src":"8255:6:97","type":""},{"name":"value2","nativeSrc":"8263:6:97","nodeType":"YulTypedName","src":"8263:6:97","type":""},{"name":"value1","nativeSrc":"8271:6:97","nodeType":"YulTypedName","src":"8271:6:97","type":""},{"name":"value0","nativeSrc":"8279:6:97","nodeType":"YulTypedName","src":"8279:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8290:4:97","nodeType":"YulTypedName","src":"8290:4:97","type":""}],"src":"8056:579:97"},{"body":{"nativeSrc":"8814:246:97","nodeType":"YulBlock","src":"8814:246:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8831:9:97","nodeType":"YulIdentifier","src":"8831:9:97"},{"kind":"number","nativeSrc":"8842:2:97","nodeType":"YulLiteral","src":"8842:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"8824:6:97","nodeType":"YulIdentifier","src":"8824:6:97"},"nativeSrc":"8824:21:97","nodeType":"YulFunctionCall","src":"8824:21:97"},"nativeSrc":"8824:21:97","nodeType":"YulExpressionStatement","src":"8824:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8865:9:97","nodeType":"YulIdentifier","src":"8865:9:97"},{"kind":"number","nativeSrc":"8876:2:97","nodeType":"YulLiteral","src":"8876:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8861:3:97","nodeType":"YulIdentifier","src":"8861:3:97"},"nativeSrc":"8861:18:97","nodeType":"YulFunctionCall","src":"8861:18:97"},{"kind":"number","nativeSrc":"8881:2:97","nodeType":"YulLiteral","src":"8881:2:97","type":"","value":"56"}],"functionName":{"name":"mstore","nativeSrc":"8854:6:97","nodeType":"YulIdentifier","src":"8854:6:97"},"nativeSrc":"8854:30:97","nodeType":"YulFunctionCall","src":"8854:30:97"},"nativeSrc":"8854:30:97","nodeType":"YulExpressionStatement","src":"8854:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8904:9:97","nodeType":"YulIdentifier","src":"8904:9:97"},{"kind":"number","nativeSrc":"8915:2:97","nodeType":"YulLiteral","src":"8915:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8900:3:97","nodeType":"YulIdentifier","src":"8900:3:97"},"nativeSrc":"8900:18:97","nodeType":"YulFunctionCall","src":"8900:18:97"},{"hexValue":"54696d656c6f636b3a3a61636365707441646d696e3a2043616c6c206d757374","kind":"string","nativeSrc":"8920:34:97","nodeType":"YulLiteral","src":"8920:34:97","type":"","value":"Timelock::acceptAdmin: Call must"}],"functionName":{"name":"mstore","nativeSrc":"8893:6:97","nodeType":"YulIdentifier","src":"8893:6:97"},"nativeSrc":"8893:62:97","nodeType":"YulFunctionCall","src":"8893:62:97"},"nativeSrc":"8893:62:97","nodeType":"YulExpressionStatement","src":"8893:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8975:9:97","nodeType":"YulIdentifier","src":"8975:9:97"},{"kind":"number","nativeSrc":"8986:2:97","nodeType":"YulLiteral","src":"8986:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"8971:3:97","nodeType":"YulIdentifier","src":"8971:3:97"},"nativeSrc":"8971:18:97","nodeType":"YulFunctionCall","src":"8971:18:97"},{"hexValue":"20636f6d652066726f6d2070656e64696e6741646d696e2e","kind":"string","nativeSrc":"8991:26:97","nodeType":"YulLiteral","src":"8991:26:97","type":"","value":" come from pendingAdmin."}],"functionName":{"name":"mstore","nativeSrc":"8964:6:97","nodeType":"YulIdentifier","src":"8964:6:97"},"nativeSrc":"8964:54:97","nodeType":"YulFunctionCall","src":"8964:54:97"},"nativeSrc":"8964:54:97","nodeType":"YulExpressionStatement","src":"8964:54:97"},{"nativeSrc":"9027:27:97","nodeType":"YulAssignment","src":"9027:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"9039:9:97","nodeType":"YulIdentifier","src":"9039:9:97"},{"kind":"number","nativeSrc":"9050:3:97","nodeType":"YulLiteral","src":"9050:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"9035:3:97","nodeType":"YulIdentifier","src":"9035:3:97"},"nativeSrc":"9035:19:97","nodeType":"YulFunctionCall","src":"9035:19:97"},"variableNames":[{"name":"tail","nativeSrc":"9027:4:97","nodeType":"YulIdentifier","src":"9027:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_a6d22532620e2c2df8ce400b3f4754629da5ed6321258d3add10ae5aba9450b3__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"8640:420:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8791:9:97","nodeType":"YulTypedName","src":"8791:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8805:4:97","nodeType":"YulTypedName","src":"8805:4:97","type":""}],"src":"8640:420:97"},{"body":{"nativeSrc":"9239:244:97","nodeType":"YulBlock","src":"9239:244:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"9256:9:97","nodeType":"YulIdentifier","src":"9256:9:97"},{"kind":"number","nativeSrc":"9267:2:97","nodeType":"YulLiteral","src":"9267:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"9249:6:97","nodeType":"YulIdentifier","src":"9249:6:97"},"nativeSrc":"9249:21:97","nodeType":"YulFunctionCall","src":"9249:21:97"},"nativeSrc":"9249:21:97","nodeType":"YulExpressionStatement","src":"9249:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9290:9:97","nodeType":"YulIdentifier","src":"9290:9:97"},{"kind":"number","nativeSrc":"9301:2:97","nodeType":"YulLiteral","src":"9301:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9286:3:97","nodeType":"YulIdentifier","src":"9286:3:97"},"nativeSrc":"9286:18:97","nodeType":"YulFunctionCall","src":"9286:18:97"},{"kind":"number","nativeSrc":"9306:2:97","nodeType":"YulLiteral","src":"9306:2:97","type":"","value":"54"}],"functionName":{"name":"mstore","nativeSrc":"9279:6:97","nodeType":"YulIdentifier","src":"9279:6:97"},"nativeSrc":"9279:30:97","nodeType":"YulFunctionCall","src":"9279:30:97"},"nativeSrc":"9279:30:97","nodeType":"YulExpressionStatement","src":"9279:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9329:9:97","nodeType":"YulIdentifier","src":"9329:9:97"},{"kind":"number","nativeSrc":"9340:2:97","nodeType":"YulLiteral","src":"9340:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9325:3:97","nodeType":"YulIdentifier","src":"9325:3:97"},"nativeSrc":"9325:18:97","nodeType":"YulFunctionCall","src":"9325:18:97"},{"hexValue":"54696d656c6f636b3a3a71756575655472616e73616374696f6e3a2043616c6c","kind":"string","nativeSrc":"9345:34:97","nodeType":"YulLiteral","src":"9345:34:97","type":"","value":"Timelock::queueTransaction: Call"}],"functionName":{"name":"mstore","nativeSrc":"9318:6:97","nodeType":"YulIdentifier","src":"9318:6:97"},"nativeSrc":"9318:62:97","nodeType":"YulFunctionCall","src":"9318:62:97"},"nativeSrc":"9318:62:97","nodeType":"YulExpressionStatement","src":"9318:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9400:9:97","nodeType":"YulIdentifier","src":"9400:9:97"},{"kind":"number","nativeSrc":"9411:2:97","nodeType":"YulLiteral","src":"9411:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"9396:3:97","nodeType":"YulIdentifier","src":"9396:3:97"},"nativeSrc":"9396:18:97","nodeType":"YulFunctionCall","src":"9396:18:97"},{"hexValue":"206d75737420636f6d652066726f6d2061646d696e2e","kind":"string","nativeSrc":"9416:24:97","nodeType":"YulLiteral","src":"9416:24:97","type":"","value":" must come from admin."}],"functionName":{"name":"mstore","nativeSrc":"9389:6:97","nodeType":"YulIdentifier","src":"9389:6:97"},"nativeSrc":"9389:52:97","nodeType":"YulFunctionCall","src":"9389:52:97"},"nativeSrc":"9389:52:97","nodeType":"YulExpressionStatement","src":"9389:52:97"},{"nativeSrc":"9450:27:97","nodeType":"YulAssignment","src":"9450:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"9462:9:97","nodeType":"YulIdentifier","src":"9462:9:97"},{"kind":"number","nativeSrc":"9473:3:97","nodeType":"YulLiteral","src":"9473:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"9458:3:97","nodeType":"YulIdentifier","src":"9458:3:97"},"nativeSrc":"9458:19:97","nodeType":"YulFunctionCall","src":"9458:19:97"},"variableNames":[{"name":"tail","nativeSrc":"9450:4:97","nodeType":"YulIdentifier","src":"9450:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_b9bd2ade56c0bd4d6738b7a39a90e136f8901e8e7945a3d237050075ad6fd749__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"9065:418:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9216:9:97","nodeType":"YulTypedName","src":"9216:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9230:4:97","nodeType":"YulTypedName","src":"9230:4:97","type":""}],"src":"9065:418:97"},{"body":{"nativeSrc":"9662:303:97","nodeType":"YulBlock","src":"9662:303:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"9679:9:97","nodeType":"YulIdentifier","src":"9679:9:97"},{"kind":"number","nativeSrc":"9690:2:97","nodeType":"YulLiteral","src":"9690:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"9672:6:97","nodeType":"YulIdentifier","src":"9672:6:97"},"nativeSrc":"9672:21:97","nodeType":"YulFunctionCall","src":"9672:21:97"},"nativeSrc":"9672:21:97","nodeType":"YulExpressionStatement","src":"9672:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9713:9:97","nodeType":"YulIdentifier","src":"9713:9:97"},{"kind":"number","nativeSrc":"9724:2:97","nodeType":"YulLiteral","src":"9724:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9709:3:97","nodeType":"YulIdentifier","src":"9709:3:97"},"nativeSrc":"9709:18:97","nodeType":"YulFunctionCall","src":"9709:18:97"},{"kind":"number","nativeSrc":"9729:2:97","nodeType":"YulLiteral","src":"9729:2:97","type":"","value":"73"}],"functionName":{"name":"mstore","nativeSrc":"9702:6:97","nodeType":"YulIdentifier","src":"9702:6:97"},"nativeSrc":"9702:30:97","nodeType":"YulFunctionCall","src":"9702:30:97"},"nativeSrc":"9702:30:97","nodeType":"YulExpressionStatement","src":"9702:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9752:9:97","nodeType":"YulIdentifier","src":"9752:9:97"},{"kind":"number","nativeSrc":"9763:2:97","nodeType":"YulLiteral","src":"9763:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9748:3:97","nodeType":"YulIdentifier","src":"9748:3:97"},"nativeSrc":"9748:18:97","nodeType":"YulFunctionCall","src":"9748:18:97"},{"hexValue":"54696d656c6f636b3a3a71756575655472616e73616374696f6e3a2045737469","kind":"string","nativeSrc":"9768:34:97","nodeType":"YulLiteral","src":"9768:34:97","type":"","value":"Timelock::queueTransaction: Esti"}],"functionName":{"name":"mstore","nativeSrc":"9741:6:97","nodeType":"YulIdentifier","src":"9741:6:97"},"nativeSrc":"9741:62:97","nodeType":"YulFunctionCall","src":"9741:62:97"},"nativeSrc":"9741:62:97","nodeType":"YulExpressionStatement","src":"9741:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9823:9:97","nodeType":"YulIdentifier","src":"9823:9:97"},{"kind":"number","nativeSrc":"9834:2:97","nodeType":"YulLiteral","src":"9834:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"9819:3:97","nodeType":"YulIdentifier","src":"9819:3:97"},"nativeSrc":"9819:18:97","nodeType":"YulFunctionCall","src":"9819:18:97"},{"hexValue":"6d6174656420657865637574696f6e20626c6f636b206d757374207361746973","kind":"string","nativeSrc":"9839:34:97","nodeType":"YulLiteral","src":"9839:34:97","type":"","value":"mated execution block must satis"}],"functionName":{"name":"mstore","nativeSrc":"9812:6:97","nodeType":"YulIdentifier","src":"9812:6:97"},"nativeSrc":"9812:62:97","nodeType":"YulFunctionCall","src":"9812:62:97"},"nativeSrc":"9812:62:97","nodeType":"YulExpressionStatement","src":"9812:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9894:9:97","nodeType":"YulIdentifier","src":"9894:9:97"},{"kind":"number","nativeSrc":"9905:3:97","nodeType":"YulLiteral","src":"9905:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"9890:3:97","nodeType":"YulIdentifier","src":"9890:3:97"},"nativeSrc":"9890:19:97","nodeType":"YulFunctionCall","src":"9890:19:97"},{"hexValue":"66792064656c61792e","kind":"string","nativeSrc":"9911:11:97","nodeType":"YulLiteral","src":"9911:11:97","type":"","value":"fy delay."}],"functionName":{"name":"mstore","nativeSrc":"9883:6:97","nodeType":"YulIdentifier","src":"9883:6:97"},"nativeSrc":"9883:40:97","nodeType":"YulFunctionCall","src":"9883:40:97"},"nativeSrc":"9883:40:97","nodeType":"YulExpressionStatement","src":"9883:40:97"},{"nativeSrc":"9932:27:97","nodeType":"YulAssignment","src":"9932:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"9944:9:97","nodeType":"YulIdentifier","src":"9944:9:97"},{"kind":"number","nativeSrc":"9955:3:97","nodeType":"YulLiteral","src":"9955:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"9940:3:97","nodeType":"YulIdentifier","src":"9940:3:97"},"nativeSrc":"9940:19:97","nodeType":"YulFunctionCall","src":"9940:19:97"},"variableNames":[{"name":"tail","nativeSrc":"9932:4:97","nodeType":"YulIdentifier","src":"9932:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_d8f8e6fa46b62e55e6ef89f0d71d2a706a902748f37198aeb3e192bf7bca348c__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"9488:477:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9639:9:97","nodeType":"YulTypedName","src":"9639:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9653:4:97","nodeType":"YulTypedName","src":"9653:4:97","type":""}],"src":"9488:477:97"},{"body":{"nativeSrc":"10144:245:97","nodeType":"YulBlock","src":"10144:245:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"10161:9:97","nodeType":"YulIdentifier","src":"10161:9:97"},{"kind":"number","nativeSrc":"10172:2:97","nodeType":"YulLiteral","src":"10172:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"10154:6:97","nodeType":"YulIdentifier","src":"10154:6:97"},"nativeSrc":"10154:21:97","nodeType":"YulFunctionCall","src":"10154:21:97"},"nativeSrc":"10154:21:97","nodeType":"YulExpressionStatement","src":"10154:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10195:9:97","nodeType":"YulIdentifier","src":"10195:9:97"},{"kind":"number","nativeSrc":"10206:2:97","nodeType":"YulLiteral","src":"10206:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10191:3:97","nodeType":"YulIdentifier","src":"10191:3:97"},"nativeSrc":"10191:18:97","nodeType":"YulFunctionCall","src":"10191:18:97"},{"kind":"number","nativeSrc":"10211:2:97","nodeType":"YulLiteral","src":"10211:2:97","type":"","value":"55"}],"functionName":{"name":"mstore","nativeSrc":"10184:6:97","nodeType":"YulIdentifier","src":"10184:6:97"},"nativeSrc":"10184:30:97","nodeType":"YulFunctionCall","src":"10184:30:97"},"nativeSrc":"10184:30:97","nodeType":"YulExpressionStatement","src":"10184:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10234:9:97","nodeType":"YulIdentifier","src":"10234:9:97"},{"kind":"number","nativeSrc":"10245:2:97","nodeType":"YulLiteral","src":"10245:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10230:3:97","nodeType":"YulIdentifier","src":"10230:3:97"},"nativeSrc":"10230:18:97","nodeType":"YulFunctionCall","src":"10230:18:97"},{"hexValue":"54696d656c6f636b3a3a71756575655472616e73616374696f6e3a207472616e","kind":"string","nativeSrc":"10250:34:97","nodeType":"YulLiteral","src":"10250:34:97","type":"","value":"Timelock::queueTransaction: tran"}],"functionName":{"name":"mstore","nativeSrc":"10223:6:97","nodeType":"YulIdentifier","src":"10223:6:97"},"nativeSrc":"10223:62:97","nodeType":"YulFunctionCall","src":"10223:62:97"},"nativeSrc":"10223:62:97","nodeType":"YulExpressionStatement","src":"10223:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10305:9:97","nodeType":"YulIdentifier","src":"10305:9:97"},{"kind":"number","nativeSrc":"10316:2:97","nodeType":"YulLiteral","src":"10316:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"10301:3:97","nodeType":"YulIdentifier","src":"10301:3:97"},"nativeSrc":"10301:18:97","nodeType":"YulFunctionCall","src":"10301:18:97"},{"hexValue":"73616374696f6e20616c7265616479207175657565642e","kind":"string","nativeSrc":"10321:25:97","nodeType":"YulLiteral","src":"10321:25:97","type":"","value":"saction already queued."}],"functionName":{"name":"mstore","nativeSrc":"10294:6:97","nodeType":"YulIdentifier","src":"10294:6:97"},"nativeSrc":"10294:53:97","nodeType":"YulFunctionCall","src":"10294:53:97"},"nativeSrc":"10294:53:97","nodeType":"YulExpressionStatement","src":"10294:53:97"},{"nativeSrc":"10356:27:97","nodeType":"YulAssignment","src":"10356:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"10368:9:97","nodeType":"YulIdentifier","src":"10368:9:97"},{"kind":"number","nativeSrc":"10379:3:97","nodeType":"YulLiteral","src":"10379:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"10364:3:97","nodeType":"YulIdentifier","src":"10364:3:97"},"nativeSrc":"10364:19:97","nodeType":"YulFunctionCall","src":"10364:19:97"},"variableNames":[{"name":"tail","nativeSrc":"10356:4:97","nodeType":"YulIdentifier","src":"10356:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_c3dc77f6ede7b6195dca0ab15e49736c813ce698624fe501da985707f241d9c7__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"9970:419:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10121:9:97","nodeType":"YulTypedName","src":"10121:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10135:4:97","nodeType":"YulTypedName","src":"10135:4:97","type":""}],"src":"9970:419:97"},{"body":{"nativeSrc":"10568:246:97","nodeType":"YulBlock","src":"10568:246:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"10585:9:97","nodeType":"YulIdentifier","src":"10585:9:97"},{"kind":"number","nativeSrc":"10596:2:97","nodeType":"YulLiteral","src":"10596:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"10578:6:97","nodeType":"YulIdentifier","src":"10578:6:97"},"nativeSrc":"10578:21:97","nodeType":"YulFunctionCall","src":"10578:21:97"},"nativeSrc":"10578:21:97","nodeType":"YulExpressionStatement","src":"10578:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10619:9:97","nodeType":"YulIdentifier","src":"10619:9:97"},{"kind":"number","nativeSrc":"10630:2:97","nodeType":"YulLiteral","src":"10630:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10615:3:97","nodeType":"YulIdentifier","src":"10615:3:97"},"nativeSrc":"10615:18:97","nodeType":"YulFunctionCall","src":"10615:18:97"},{"kind":"number","nativeSrc":"10635:2:97","nodeType":"YulLiteral","src":"10635:2:97","type":"","value":"56"}],"functionName":{"name":"mstore","nativeSrc":"10608:6:97","nodeType":"YulIdentifier","src":"10608:6:97"},"nativeSrc":"10608:30:97","nodeType":"YulFunctionCall","src":"10608:30:97"},"nativeSrc":"10608:30:97","nodeType":"YulExpressionStatement","src":"10608:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10658:9:97","nodeType":"YulIdentifier","src":"10658:9:97"},{"kind":"number","nativeSrc":"10669:2:97","nodeType":"YulLiteral","src":"10669:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10654:3:97","nodeType":"YulIdentifier","src":"10654:3:97"},"nativeSrc":"10654:18:97","nodeType":"YulFunctionCall","src":"10654:18:97"},{"hexValue":"54696d656c6f636b3a3a73657450656e64696e6741646d696e3a2043616c6c20","kind":"string","nativeSrc":"10674:34:97","nodeType":"YulLiteral","src":"10674:34:97","type":"","value":"Timelock::setPendingAdmin: Call "}],"functionName":{"name":"mstore","nativeSrc":"10647:6:97","nodeType":"YulIdentifier","src":"10647:6:97"},"nativeSrc":"10647:62:97","nodeType":"YulFunctionCall","src":"10647:62:97"},"nativeSrc":"10647:62:97","nodeType":"YulExpressionStatement","src":"10647:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10729:9:97","nodeType":"YulIdentifier","src":"10729:9:97"},{"kind":"number","nativeSrc":"10740:2:97","nodeType":"YulLiteral","src":"10740:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"10725:3:97","nodeType":"YulIdentifier","src":"10725:3:97"},"nativeSrc":"10725:18:97","nodeType":"YulFunctionCall","src":"10725:18:97"},{"hexValue":"6d75737420636f6d652066726f6d2054696d656c6f636b2e","kind":"string","nativeSrc":"10745:26:97","nodeType":"YulLiteral","src":"10745:26:97","type":"","value":"must come from Timelock."}],"functionName":{"name":"mstore","nativeSrc":"10718:6:97","nodeType":"YulIdentifier","src":"10718:6:97"},"nativeSrc":"10718:54:97","nodeType":"YulFunctionCall","src":"10718:54:97"},"nativeSrc":"10718:54:97","nodeType":"YulExpressionStatement","src":"10718:54:97"},{"nativeSrc":"10781:27:97","nodeType":"YulAssignment","src":"10781:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"10793:9:97","nodeType":"YulIdentifier","src":"10793:9:97"},{"kind":"number","nativeSrc":"10804:3:97","nodeType":"YulLiteral","src":"10804:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"10789:3:97","nodeType":"YulIdentifier","src":"10789:3:97"},"nativeSrc":"10789:19:97","nodeType":"YulFunctionCall","src":"10789:19:97"},"variableNames":[{"name":"tail","nativeSrc":"10781:4:97","nodeType":"YulIdentifier","src":"10781:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_b7a0aaea4203d5a5318b76c13dcb2afd3f7e9e71cd6f5f022040411bd080d815__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"10394:420:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10545:9:97","nodeType":"YulTypedName","src":"10545:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10559:4:97","nodeType":"YulTypedName","src":"10559:4:97","type":""}],"src":"10394:420:97"},{"body":{"nativeSrc":"10993:245:97","nodeType":"YulBlock","src":"10993:245:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"11010:9:97","nodeType":"YulIdentifier","src":"11010:9:97"},{"kind":"number","nativeSrc":"11021:2:97","nodeType":"YulLiteral","src":"11021:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"11003:6:97","nodeType":"YulIdentifier","src":"11003:6:97"},"nativeSrc":"11003:21:97","nodeType":"YulFunctionCall","src":"11003:21:97"},"nativeSrc":"11003:21:97","nodeType":"YulExpressionStatement","src":"11003:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11044:9:97","nodeType":"YulIdentifier","src":"11044:9:97"},{"kind":"number","nativeSrc":"11055:2:97","nodeType":"YulLiteral","src":"11055:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11040:3:97","nodeType":"YulIdentifier","src":"11040:3:97"},"nativeSrc":"11040:18:97","nodeType":"YulFunctionCall","src":"11040:18:97"},{"kind":"number","nativeSrc":"11060:2:97","nodeType":"YulLiteral","src":"11060:2:97","type":"","value":"55"}],"functionName":{"name":"mstore","nativeSrc":"11033:6:97","nodeType":"YulIdentifier","src":"11033:6:97"},"nativeSrc":"11033:30:97","nodeType":"YulFunctionCall","src":"11033:30:97"},"nativeSrc":"11033:30:97","nodeType":"YulExpressionStatement","src":"11033:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11083:9:97","nodeType":"YulIdentifier","src":"11083:9:97"},{"kind":"number","nativeSrc":"11094:2:97","nodeType":"YulLiteral","src":"11094:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11079:3:97","nodeType":"YulIdentifier","src":"11079:3:97"},"nativeSrc":"11079:18:97","nodeType":"YulFunctionCall","src":"11079:18:97"},{"hexValue":"54696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a2043616c","kind":"string","nativeSrc":"11099:34:97","nodeType":"YulLiteral","src":"11099:34:97","type":"","value":"Timelock::cancelTransaction: Cal"}],"functionName":{"name":"mstore","nativeSrc":"11072:6:97","nodeType":"YulIdentifier","src":"11072:6:97"},"nativeSrc":"11072:62:97","nodeType":"YulFunctionCall","src":"11072:62:97"},"nativeSrc":"11072:62:97","nodeType":"YulExpressionStatement","src":"11072:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11154:9:97","nodeType":"YulIdentifier","src":"11154:9:97"},{"kind":"number","nativeSrc":"11165:2:97","nodeType":"YulLiteral","src":"11165:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11150:3:97","nodeType":"YulIdentifier","src":"11150:3:97"},"nativeSrc":"11150:18:97","nodeType":"YulFunctionCall","src":"11150:18:97"},{"hexValue":"6c206d75737420636f6d652066726f6d2061646d696e2e","kind":"string","nativeSrc":"11170:25:97","nodeType":"YulLiteral","src":"11170:25:97","type":"","value":"l must come from admin."}],"functionName":{"name":"mstore","nativeSrc":"11143:6:97","nodeType":"YulIdentifier","src":"11143:6:97"},"nativeSrc":"11143:53:97","nodeType":"YulFunctionCall","src":"11143:53:97"},"nativeSrc":"11143:53:97","nodeType":"YulExpressionStatement","src":"11143:53:97"},{"nativeSrc":"11205:27:97","nodeType":"YulAssignment","src":"11205:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"11217:9:97","nodeType":"YulIdentifier","src":"11217:9:97"},{"kind":"number","nativeSrc":"11228:3:97","nodeType":"YulLiteral","src":"11228:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"11213:3:97","nodeType":"YulIdentifier","src":"11213:3:97"},"nativeSrc":"11213:19:97","nodeType":"YulFunctionCall","src":"11213:19:97"},"variableNames":[{"name":"tail","nativeSrc":"11205:4:97","nodeType":"YulIdentifier","src":"11205:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_135e413b08c779b9b925daaaf6178471ba60ebd33d413d809c76a0d4e8beaf3d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"10819:419:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10970:9:97","nodeType":"YulTypedName","src":"10970:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10984:4:97","nodeType":"YulTypedName","src":"10984:4:97","type":""}],"src":"10819:419:97"},{"body":{"nativeSrc":"11417:249:97","nodeType":"YulBlock","src":"11417:249:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"11434:9:97","nodeType":"YulIdentifier","src":"11434:9:97"},{"kind":"number","nativeSrc":"11445:2:97","nodeType":"YulLiteral","src":"11445:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"11427:6:97","nodeType":"YulIdentifier","src":"11427:6:97"},"nativeSrc":"11427:21:97","nodeType":"YulFunctionCall","src":"11427:21:97"},"nativeSrc":"11427:21:97","nodeType":"YulExpressionStatement","src":"11427:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11468:9:97","nodeType":"YulIdentifier","src":"11468:9:97"},{"kind":"number","nativeSrc":"11479:2:97","nodeType":"YulLiteral","src":"11479:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11464:3:97","nodeType":"YulIdentifier","src":"11464:3:97"},"nativeSrc":"11464:18:97","nodeType":"YulFunctionCall","src":"11464:18:97"},{"kind":"number","nativeSrc":"11484:2:97","nodeType":"YulLiteral","src":"11484:2:97","type":"","value":"59"}],"functionName":{"name":"mstore","nativeSrc":"11457:6:97","nodeType":"YulIdentifier","src":"11457:6:97"},"nativeSrc":"11457:30:97","nodeType":"YulFunctionCall","src":"11457:30:97"},"nativeSrc":"11457:30:97","nodeType":"YulExpressionStatement","src":"11457:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11507:9:97","nodeType":"YulIdentifier","src":"11507:9:97"},{"kind":"number","nativeSrc":"11518:2:97","nodeType":"YulLiteral","src":"11518:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11503:3:97","nodeType":"YulIdentifier","src":"11503:3:97"},"nativeSrc":"11503:18:97","nodeType":"YulFunctionCall","src":"11503:18:97"},{"hexValue":"54696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a20747261","kind":"string","nativeSrc":"11523:34:97","nodeType":"YulLiteral","src":"11523:34:97","type":"","value":"Timelock::cancelTransaction: tra"}],"functionName":{"name":"mstore","nativeSrc":"11496:6:97","nodeType":"YulIdentifier","src":"11496:6:97"},"nativeSrc":"11496:62:97","nodeType":"YulFunctionCall","src":"11496:62:97"},"nativeSrc":"11496:62:97","nodeType":"YulExpressionStatement","src":"11496:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11578:9:97","nodeType":"YulIdentifier","src":"11578:9:97"},{"kind":"number","nativeSrc":"11589:2:97","nodeType":"YulLiteral","src":"11589:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11574:3:97","nodeType":"YulIdentifier","src":"11574:3:97"},"nativeSrc":"11574:18:97","nodeType":"YulFunctionCall","src":"11574:18:97"},{"hexValue":"6e73616374696f6e206973206e6f7420717565756564207965742e","kind":"string","nativeSrc":"11594:29:97","nodeType":"YulLiteral","src":"11594:29:97","type":"","value":"nsaction is not queued yet."}],"functionName":{"name":"mstore","nativeSrc":"11567:6:97","nodeType":"YulIdentifier","src":"11567:6:97"},"nativeSrc":"11567:57:97","nodeType":"YulFunctionCall","src":"11567:57:97"},"nativeSrc":"11567:57:97","nodeType":"YulExpressionStatement","src":"11567:57:97"},{"nativeSrc":"11633:27:97","nodeType":"YulAssignment","src":"11633:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"11645:9:97","nodeType":"YulIdentifier","src":"11645:9:97"},{"kind":"number","nativeSrc":"11656:3:97","nodeType":"YulLiteral","src":"11656:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"11641:3:97","nodeType":"YulIdentifier","src":"11641:3:97"},"nativeSrc":"11641:19:97","nodeType":"YulFunctionCall","src":"11641:19:97"},"variableNames":[{"name":"tail","nativeSrc":"11633:4:97","nodeType":"YulIdentifier","src":"11633:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_5dff9a8bd683a1f8a197320db69edd3e2d2988378442d324202dc24789d949f5__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11243:423:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11394:9:97","nodeType":"YulTypedName","src":"11394:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11408:4:97","nodeType":"YulTypedName","src":"11408:4:97","type":""}],"src":"11243:423:97"},{"body":{"nativeSrc":"11845:239:97","nodeType":"YulBlock","src":"11845:239:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"11862:9:97","nodeType":"YulIdentifier","src":"11862:9:97"},{"kind":"number","nativeSrc":"11873:2:97","nodeType":"YulLiteral","src":"11873:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"11855:6:97","nodeType":"YulIdentifier","src":"11855:6:97"},"nativeSrc":"11855:21:97","nodeType":"YulFunctionCall","src":"11855:21:97"},"nativeSrc":"11855:21:97","nodeType":"YulExpressionStatement","src":"11855:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11896:9:97","nodeType":"YulIdentifier","src":"11896:9:97"},{"kind":"number","nativeSrc":"11907:2:97","nodeType":"YulLiteral","src":"11907:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11892:3:97","nodeType":"YulIdentifier","src":"11892:3:97"},"nativeSrc":"11892:18:97","nodeType":"YulFunctionCall","src":"11892:18:97"},{"kind":"number","nativeSrc":"11912:2:97","nodeType":"YulLiteral","src":"11912:2:97","type":"","value":"49"}],"functionName":{"name":"mstore","nativeSrc":"11885:6:97","nodeType":"YulIdentifier","src":"11885:6:97"},"nativeSrc":"11885:30:97","nodeType":"YulFunctionCall","src":"11885:30:97"},"nativeSrc":"11885:30:97","nodeType":"YulExpressionStatement","src":"11885:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11935:9:97","nodeType":"YulIdentifier","src":"11935:9:97"},{"kind":"number","nativeSrc":"11946:2:97","nodeType":"YulLiteral","src":"11946:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11931:3:97","nodeType":"YulIdentifier","src":"11931:3:97"},"nativeSrc":"11931:18:97","nodeType":"YulFunctionCall","src":"11931:18:97"},{"hexValue":"54696d656c6f636b3a3a73657444656c61793a2043616c6c206d75737420636f","kind":"string","nativeSrc":"11951:34:97","nodeType":"YulLiteral","src":"11951:34:97","type":"","value":"Timelock::setDelay: Call must co"}],"functionName":{"name":"mstore","nativeSrc":"11924:6:97","nodeType":"YulIdentifier","src":"11924:6:97"},"nativeSrc":"11924:62:97","nodeType":"YulFunctionCall","src":"11924:62:97"},"nativeSrc":"11924:62:97","nodeType":"YulExpressionStatement","src":"11924:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12006:9:97","nodeType":"YulIdentifier","src":"12006:9:97"},{"kind":"number","nativeSrc":"12017:2:97","nodeType":"YulLiteral","src":"12017:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12002:3:97","nodeType":"YulIdentifier","src":"12002:3:97"},"nativeSrc":"12002:18:97","nodeType":"YulFunctionCall","src":"12002:18:97"},{"hexValue":"6d652066726f6d2054696d656c6f636b2e","kind":"string","nativeSrc":"12022:19:97","nodeType":"YulLiteral","src":"12022:19:97","type":"","value":"me from Timelock."}],"functionName":{"name":"mstore","nativeSrc":"11995:6:97","nodeType":"YulIdentifier","src":"11995:6:97"},"nativeSrc":"11995:47:97","nodeType":"YulFunctionCall","src":"11995:47:97"},"nativeSrc":"11995:47:97","nodeType":"YulExpressionStatement","src":"11995:47:97"},{"nativeSrc":"12051:27:97","nodeType":"YulAssignment","src":"12051:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"12063:9:97","nodeType":"YulIdentifier","src":"12063:9:97"},{"kind":"number","nativeSrc":"12074:3:97","nodeType":"YulLiteral","src":"12074:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"12059:3:97","nodeType":"YulIdentifier","src":"12059:3:97"},"nativeSrc":"12059:19:97","nodeType":"YulFunctionCall","src":"12059:19:97"},"variableNames":[{"name":"tail","nativeSrc":"12051:4:97","nodeType":"YulIdentifier","src":"12051:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_e810dcfb9ec7662fa74f0c58d14b8ca36ebffcb4d6cdf3e54d58e4096597d95d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11671:413:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11822:9:97","nodeType":"YulTypedName","src":"11822:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11836:4:97","nodeType":"YulTypedName","src":"11836:4:97","type":""}],"src":"11671:413:97"},{"body":{"nativeSrc":"12263:242:97","nodeType":"YulBlock","src":"12263:242:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"12280:9:97","nodeType":"YulIdentifier","src":"12280:9:97"},{"kind":"number","nativeSrc":"12291:2:97","nodeType":"YulLiteral","src":"12291:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"12273:6:97","nodeType":"YulIdentifier","src":"12273:6:97"},"nativeSrc":"12273:21:97","nodeType":"YulFunctionCall","src":"12273:21:97"},"nativeSrc":"12273:21:97","nodeType":"YulExpressionStatement","src":"12273:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12314:9:97","nodeType":"YulIdentifier","src":"12314:9:97"},{"kind":"number","nativeSrc":"12325:2:97","nodeType":"YulLiteral","src":"12325:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12310:3:97","nodeType":"YulIdentifier","src":"12310:3:97"},"nativeSrc":"12310:18:97","nodeType":"YulFunctionCall","src":"12310:18:97"},{"kind":"number","nativeSrc":"12330:2:97","nodeType":"YulLiteral","src":"12330:2:97","type":"","value":"52"}],"functionName":{"name":"mstore","nativeSrc":"12303:6:97","nodeType":"YulIdentifier","src":"12303:6:97"},"nativeSrc":"12303:30:97","nodeType":"YulFunctionCall","src":"12303:30:97"},"nativeSrc":"12303:30:97","nodeType":"YulExpressionStatement","src":"12303:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12353:9:97","nodeType":"YulIdentifier","src":"12353:9:97"},{"kind":"number","nativeSrc":"12364:2:97","nodeType":"YulLiteral","src":"12364:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12349:3:97","nodeType":"YulIdentifier","src":"12349:3:97"},"nativeSrc":"12349:18:97","nodeType":"YulFunctionCall","src":"12349:18:97"},{"hexValue":"54696d656c6f636b3a3a73657444656c61793a2044656c6179206d7573742065","kind":"string","nativeSrc":"12369:34:97","nodeType":"YulLiteral","src":"12369:34:97","type":"","value":"Timelock::setDelay: Delay must e"}],"functionName":{"name":"mstore","nativeSrc":"12342:6:97","nodeType":"YulIdentifier","src":"12342:6:97"},"nativeSrc":"12342:62:97","nodeType":"YulFunctionCall","src":"12342:62:97"},"nativeSrc":"12342:62:97","nodeType":"YulExpressionStatement","src":"12342:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12424:9:97","nodeType":"YulIdentifier","src":"12424:9:97"},{"kind":"number","nativeSrc":"12435:2:97","nodeType":"YulLiteral","src":"12435:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12420:3:97","nodeType":"YulIdentifier","src":"12420:3:97"},"nativeSrc":"12420:18:97","nodeType":"YulFunctionCall","src":"12420:18:97"},{"hexValue":"7863656564206d696e696d756d2064656c61792e","kind":"string","nativeSrc":"12440:22:97","nodeType":"YulLiteral","src":"12440:22:97","type":"","value":"xceed minimum delay."}],"functionName":{"name":"mstore","nativeSrc":"12413:6:97","nodeType":"YulIdentifier","src":"12413:6:97"},"nativeSrc":"12413:50:97","nodeType":"YulFunctionCall","src":"12413:50:97"},"nativeSrc":"12413:50:97","nodeType":"YulExpressionStatement","src":"12413:50:97"},{"nativeSrc":"12472:27:97","nodeType":"YulAssignment","src":"12472:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"12484:9:97","nodeType":"YulIdentifier","src":"12484:9:97"},{"kind":"number","nativeSrc":"12495:3:97","nodeType":"YulLiteral","src":"12495:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"12480:3:97","nodeType":"YulIdentifier","src":"12480:3:97"},"nativeSrc":"12480:19:97","nodeType":"YulFunctionCall","src":"12480:19:97"},"variableNames":[{"name":"tail","nativeSrc":"12472:4:97","nodeType":"YulIdentifier","src":"12472:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_4198c63548ffd3e47f06dc876a374eb662a4ea6ff5509a211e07dd2b49998b1d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12089:416:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12240:9:97","nodeType":"YulTypedName","src":"12240:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12254:4:97","nodeType":"YulTypedName","src":"12254:4:97","type":""}],"src":"12089:416:97"},{"body":{"nativeSrc":"12684:246:97","nodeType":"YulBlock","src":"12684:246:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"12701:9:97","nodeType":"YulIdentifier","src":"12701:9:97"},{"kind":"number","nativeSrc":"12712:2:97","nodeType":"YulLiteral","src":"12712:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"12694:6:97","nodeType":"YulIdentifier","src":"12694:6:97"},"nativeSrc":"12694:21:97","nodeType":"YulFunctionCall","src":"12694:21:97"},"nativeSrc":"12694:21:97","nodeType":"YulExpressionStatement","src":"12694:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12735:9:97","nodeType":"YulIdentifier","src":"12735:9:97"},{"kind":"number","nativeSrc":"12746:2:97","nodeType":"YulLiteral","src":"12746:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12731:3:97","nodeType":"YulIdentifier","src":"12731:3:97"},"nativeSrc":"12731:18:97","nodeType":"YulFunctionCall","src":"12731:18:97"},{"kind":"number","nativeSrc":"12751:2:97","nodeType":"YulLiteral","src":"12751:2:97","type":"","value":"56"}],"functionName":{"name":"mstore","nativeSrc":"12724:6:97","nodeType":"YulIdentifier","src":"12724:6:97"},"nativeSrc":"12724:30:97","nodeType":"YulFunctionCall","src":"12724:30:97"},"nativeSrc":"12724:30:97","nodeType":"YulExpressionStatement","src":"12724:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12774:9:97","nodeType":"YulIdentifier","src":"12774:9:97"},{"kind":"number","nativeSrc":"12785:2:97","nodeType":"YulLiteral","src":"12785:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12770:3:97","nodeType":"YulIdentifier","src":"12770:3:97"},"nativeSrc":"12770:18:97","nodeType":"YulFunctionCall","src":"12770:18:97"},{"hexValue":"54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e","kind":"string","nativeSrc":"12790:34:97","nodeType":"YulLiteral","src":"12790:34:97","type":"","value":"Timelock::setDelay: Delay must n"}],"functionName":{"name":"mstore","nativeSrc":"12763:6:97","nodeType":"YulIdentifier","src":"12763:6:97"},"nativeSrc":"12763:62:97","nodeType":"YulFunctionCall","src":"12763:62:97"},"nativeSrc":"12763:62:97","nodeType":"YulExpressionStatement","src":"12763:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12845:9:97","nodeType":"YulIdentifier","src":"12845:9:97"},{"kind":"number","nativeSrc":"12856:2:97","nodeType":"YulLiteral","src":"12856:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12841:3:97","nodeType":"YulIdentifier","src":"12841:3:97"},"nativeSrc":"12841:18:97","nodeType":"YulFunctionCall","src":"12841:18:97"},{"hexValue":"6f7420657863656564206d6178696d756d2064656c61792e","kind":"string","nativeSrc":"12861:26:97","nodeType":"YulLiteral","src":"12861:26:97","type":"","value":"ot exceed maximum delay."}],"functionName":{"name":"mstore","nativeSrc":"12834:6:97","nodeType":"YulIdentifier","src":"12834:6:97"},"nativeSrc":"12834:54:97","nodeType":"YulFunctionCall","src":"12834:54:97"},"nativeSrc":"12834:54:97","nodeType":"YulExpressionStatement","src":"12834:54:97"},{"nativeSrc":"12897:27:97","nodeType":"YulAssignment","src":"12897:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"12909:9:97","nodeType":"YulIdentifier","src":"12909:9:97"},{"kind":"number","nativeSrc":"12920:3:97","nodeType":"YulLiteral","src":"12920:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"12905:3:97","nodeType":"YulIdentifier","src":"12905:3:97"},"nativeSrc":"12905:19:97","nodeType":"YulFunctionCall","src":"12905:19:97"},"variableNames":[{"name":"tail","nativeSrc":"12897:4:97","nodeType":"YulIdentifier","src":"12897:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_762218313af08cfa6c9b8eda00385502eefaa529f9945044fd2dee54ff5cefe0__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12510:420:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12661:9:97","nodeType":"YulTypedName","src":"12661:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12675:4:97","nodeType":"YulTypedName","src":"12675:4:97","type":""}],"src":"12510:420:97"}]},"contents":"{\n    { }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_string_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_uint256t_string_calldata_ptrt_bytes_calldata_ptrt_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := calldataload(add(headStart, 32))\n        let offset := calldataload(add(headStart, 64))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n        let offset_1 := calldataload(add(headStart, 96))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value4_1, value5_1 := abi_decode_string_calldata(add(headStart, offset_1), dataEnd)\n        value4 := value4_1\n        value5 := value5_1\n        value6 := calldataload(add(headStart, 128))\n    }\n    function copy_memory_to_memory_with_cleanup(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n    }\n    function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        copy_memory_to_memory_with_cleanup(add(value0, 32), add(headStart, 64), length)\n        tail := add(add(headStart, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 64)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_stringliteral_0cbc65ac44dc8b90b8bc4c38c9c6ad704bfeb2c8170538058496c0e805dfa947__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 56)\n        mstore(add(headStart, 64), \"Timelock::executeTransaction: Ca\")\n        mstore(add(headStart, 96), \"ll must come from admin.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_string_calldata(start, length, pos) -> end\n    {\n        mstore(pos, length)\n        calldatacopy(add(pos, 0x20), start, length)\n        mstore(add(add(pos, length), 0x20), 0)\n        end := add(add(pos, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 0x20)\n    }\n    function abi_encode_tuple_t_address_t_uint256_t_string_calldata_ptr_t_bytes_calldata_ptr_t_uint256__to_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed(headStart, value6, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), 160)\n        let tail_1 := abi_encode_string_calldata(value2, value3, add(headStart, 160))\n        mstore(add(headStart, 96), sub(tail_1, headStart))\n        tail := abi_encode_string_calldata(value4, value5, tail_1)\n        mstore(add(headStart, 128), value6)\n    }\n    function abi_encode_tuple_t_stringliteral_7e3bf24eec453753018af1214443c72d8abb3050b249b2b3b9bb2adb04310650__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 61)\n        mstore(add(headStart, 64), \"Timelock::executeTransaction: Tr\")\n        mstore(add(headStart, 96), \"ansaction hasn't been queued.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_381d72a875dbcf282eb0ce43951c66b6c4d7dadc6fdeb9294add773d09cd1687__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 69)\n        mstore(add(headStart, 64), \"Timelock::executeTransaction: Tr\")\n        mstore(add(headStart, 96), \"ansaction hasn't surpassed time \")\n        mstore(add(headStart, 128), \"lock.\")\n        tail := add(headStart, 160)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum)\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x11)\n            revert(0, 0x24)\n        }\n    }\n    function abi_encode_tuple_t_stringliteral_2c4a83afbdcff2c4ba869dacfa7dabb27b12f774a0707feae827e36773b8166c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 51)\n        mstore(add(headStart, 64), \"Timelock::executeTransaction: Tr\")\n        mstore(add(headStart, 96), \"ansaction is stale.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        calldatacopy(pos, value0, value1)\n        let _1 := add(pos, value1)\n        mstore(_1, 0)\n        end := _1\n    }\n    function abi_encode_tuple_packed_t_bytes4_t_bytes_calldata_ptr__to_t_bytes4_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value2, value1, value0) -> end\n    {\n        mstore(pos, and(value0, 0xffffffff00000000000000000000000000000000000000000000000000000000))\n        calldatacopy(add(pos, 4), value1, value2)\n        let _1 := add(add(pos, value2), 4)\n        mstore(_1, 0)\n        end := _1\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n        end := add(pos, length)\n    }\n    function abi_encode_tuple_t_stringliteral_c8cfef133518ef6ab39ac5f19562a74f4f875e9130c8117d51f88a557b6e72c9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 61)\n        mstore(add(headStart, 64), \"Timelock::executeTransaction: Tr\")\n        mstore(add(headStart, 96), \"ansaction execution reverted.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_uint256_t_string_calldata_ptr_t_bytes_calldata_ptr_t_uint256__to_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), 128)\n        let tail_1 := abi_encode_string_calldata(value1, value2, add(headStart, 128))\n        mstore(add(headStart, 64), sub(tail_1, headStart))\n        tail := abi_encode_string_calldata(value3, value4, tail_1)\n        mstore(add(headStart, 96), value5)\n    }\n    function abi_encode_tuple_t_stringliteral_a6d22532620e2c2df8ce400b3f4754629da5ed6321258d3add10ae5aba9450b3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 56)\n        mstore(add(headStart, 64), \"Timelock::acceptAdmin: Call must\")\n        mstore(add(headStart, 96), \" come from pendingAdmin.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_b9bd2ade56c0bd4d6738b7a39a90e136f8901e8e7945a3d237050075ad6fd749__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 54)\n        mstore(add(headStart, 64), \"Timelock::queueTransaction: Call\")\n        mstore(add(headStart, 96), \" must come from admin.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_d8f8e6fa46b62e55e6ef89f0d71d2a706a902748f37198aeb3e192bf7bca348c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 73)\n        mstore(add(headStart, 64), \"Timelock::queueTransaction: Esti\")\n        mstore(add(headStart, 96), \"mated execution block must satis\")\n        mstore(add(headStart, 128), \"fy delay.\")\n        tail := add(headStart, 160)\n    }\n    function abi_encode_tuple_t_stringliteral_c3dc77f6ede7b6195dca0ab15e49736c813ce698624fe501da985707f241d9c7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 55)\n        mstore(add(headStart, 64), \"Timelock::queueTransaction: tran\")\n        mstore(add(headStart, 96), \"saction already queued.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_b7a0aaea4203d5a5318b76c13dcb2afd3f7e9e71cd6f5f022040411bd080d815__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 56)\n        mstore(add(headStart, 64), \"Timelock::setPendingAdmin: Call \")\n        mstore(add(headStart, 96), \"must come from Timelock.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_135e413b08c779b9b925daaaf6178471ba60ebd33d413d809c76a0d4e8beaf3d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 55)\n        mstore(add(headStart, 64), \"Timelock::cancelTransaction: Cal\")\n        mstore(add(headStart, 96), \"l must come from admin.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_5dff9a8bd683a1f8a197320db69edd3e2d2988378442d324202dc24789d949f5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 59)\n        mstore(add(headStart, 64), \"Timelock::cancelTransaction: tra\")\n        mstore(add(headStart, 96), \"nsaction is not queued yet.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_e810dcfb9ec7662fa74f0c58d14b8ca36ebffcb4d6cdf3e54d58e4096597d95d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 49)\n        mstore(add(headStart, 64), \"Timelock::setDelay: Call must co\")\n        mstore(add(headStart, 96), \"me from Timelock.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_4198c63548ffd3e47f06dc876a374eb662a4ea6ff5509a211e07dd2b49998b1d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 52)\n        mstore(add(headStart, 64), \"Timelock::setDelay: Delay must e\")\n        mstore(add(headStart, 96), \"xceed minimum delay.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_762218313af08cfa6c9b8eda00385502eefaa529f9945044fd2dee54ff5cefe0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 56)\n        mstore(add(headStart, 64), \"Timelock::setDelay: Delay must n\")\n        mstore(add(headStart, 96), \"ot exceed maximum delay.\")\n        tail := add(headStart, 128)\n    }\n}","id":97,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"6080604052600436106100c95760003560e01c80636a42b8f811610079578063c1a287e211610056578063c1a287e2146101ec578063e177246e14610215578063f2b0653714610235578063f851a4401461027557005b80636a42b8f8146101d65780637d645fab146101ec578063b1b43ae51461020157005b80633a66f901116100a75780633a66f901146101685780634dd18bf514610196578063591fcdfe146101b657005b80630825f38f146100cb5780630e18b681146101015780632678224714610116575b005b3480156100d757600080fd5b506100eb6100e6366004611055565b6102a2565b6040516100f8919061110c565b60405180910390f35b34801561010d57600080fd5b506100c9610731565b34801561012257600080fd5b506001546101439073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100f8565b34801561017457600080fd5b50610188610183366004611055565b61083b565b6040519081526020016100f8565b3480156101a257600080fd5b506100c96101b136600461115d565b610aeb565b3480156101c257600080fd5b506100c96101d1366004611055565b610bfa565b3480156101e257600080fd5b5061018860025481565b3480156101f857600080fd5b50610e10610188565b34801561020d57600080fd5b506001610188565b34801561022157600080fd5b506100c961023036600461117f565b610dfb565b34801561024157600080fd5b5061026561025036600461117f565b60036020526000908152604090205460ff1681565b60405190151581526020016100f8565b34801561028157600080fd5b506000546101439073ffffffffffffffffffffffffffffffffffffffff1681565b60005460609073ffffffffffffffffffffffffffffffffffffffff1633146103375760405162461bcd60e51b815260206004820152603860248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20436160448201527f6c6c206d75737420636f6d652066726f6d2061646d696e2e000000000000000060648201526084015b60405180910390fd5b60008888888888888860405160200161035697969594939291906111e1565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291815281516020928301206000818152600390935291205490915060ff166104115760405162461bcd60e51b815260206004820152603d60248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20547260448201527f616e73616374696f6e206861736e2774206265656e207175657565642e000000606482015260840161032e565b824210156104ad5760405162461bcd60e51b815260206004820152604560248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20547260448201527f616e73616374696f6e206861736e2774207375727061737365642074696d652060648201527f6c6f636b2e000000000000000000000000000000000000000000000000000000608482015260a40161032e565b6104b9610e108461123f565b42111561052e5760405162461bcd60e51b815260206004820152603360248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20547260448201527f616e73616374696f6e206973207374616c652e00000000000000000000000000606482015260840161032e565b600081815260036020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556060908790036105ab5785858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293506105e692505050565b87876040516105bb92919061127f565b6040519081900381206105d4918890889060200161128f565b60405160208183030381529060405290505b6000808b73ffffffffffffffffffffffffffffffffffffffff168b8460405161060f91906112cb565b60006040518083038185875af1925050503d806000811461064c576040519150601f19603f3d011682016040523d82523d6000602084013e610651565b606091505b5091509150816106c95760405162461bcd60e51b815260206004820152603d60248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20547260448201527f616e73616374696f6e20657865637574696f6e2072657665727465642e000000606482015260840161032e565b8b73ffffffffffffffffffffffffffffffffffffffff16847fa560e3198060a2f10670c1ec5b403077ea6ae93ca8de1c32b451dc1a943cd6e78d8d8d8d8d8d60405161071a969594939291906112e7565b60405180910390a39b9a5050505050505050505050565b60015473ffffffffffffffffffffffffffffffffffffffff1633146107be5760405162461bcd60e51b815260206004820152603860248201527f54696d656c6f636b3a3a61636365707441646d696e3a2043616c6c206d75737460448201527f20636f6d652066726f6d2070656e64696e6741646d696e2e0000000000000000606482015260840161032e565b60008054604051339273ffffffffffffffffffffffffffffffffffffffff909216917ff9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc91a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081163317909155600180549091169055565b6000805473ffffffffffffffffffffffffffffffffffffffff1633146108c95760405162461bcd60e51b815260206004820152603660248201527f54696d656c6f636b3a3a71756575655472616e73616374696f6e3a2043616c6c60448201527f206d75737420636f6d652066726f6d2061646d696e2e00000000000000000000606482015260840161032e565b6002546108d6904261123f565b8210156109715760405162461bcd60e51b815260206004820152604960248201527f54696d656c6f636b3a3a71756575655472616e73616374696f6e3a204573746960448201527f6d6174656420657865637574696f6e20626c6f636b206d75737420736174697360648201527f66792064656c61792e0000000000000000000000000000000000000000000000608482015260a40161032e565b60008888888888888860405160200161099097969594939291906111e1565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291815281516020928301206000818152600390935291205490915060ff1615610a4c5760405162461bcd60e51b815260206004820152603760248201527f54696d656c6f636b3a3a71756575655472616e73616374696f6e3a207472616e60448201527f73616374696f6e20616c7265616479207175657565642e000000000000000000606482015260840161032e565b6000818152600360205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555173ffffffffffffffffffffffffffffffffffffffff8a169082907f76e2796dc3a81d57b0e8504b647febcbeeb5f4af818e164f11eef8131a6a763f90610ad7908c908c908c908c908c908c906112e7565b60405180910390a398975050505050505050565b33301480610b10575060005473ffffffffffffffffffffffffffffffffffffffff1633145b610b825760405162461bcd60e51b815260206004820152603860248201527f54696d656c6f636b3a3a73657450656e64696e6741646d696e3a2043616c6c2060448201527f6d75737420636f6d652066726f6d2054696d656c6f636b2e0000000000000000606482015260840161032e565b610b8b81610f93565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f69d78e38a01985fbb1462961809b4b2d65531bc93b2b94037f3334b82ca4a75690600090a250565b60005473ffffffffffffffffffffffffffffffffffffffff163314610c875760405162461bcd60e51b815260206004820152603760248201527f54696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a2043616c60448201527f6c206d75737420636f6d652066726f6d2061646d696e2e000000000000000000606482015260840161032e565b600087878787878787604051602001610ca697969594939291906111e1565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291815281516020928301206000818152600390935291205490915060ff16610d615760405162461bcd60e51b815260206004820152603b60248201527f54696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a2074726160448201527f6e73616374696f6e206973206e6f7420717565756564207965742e0000000000606482015260840161032e565b6000818152600360205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555173ffffffffffffffffffffffffffffffffffffffff89169082907f2fffc091a501fd91bfbff27141450d3acb40fb8e6d8382b243ec7a812a3aaf8790610de9908b908b908b908b908b908b906112e7565b60405180910390a35050505050505050565b333014610e705760405162461bcd60e51b815260206004820152603160248201527f54696d656c6f636b3a3a73657444656c61793a2043616c6c206d75737420636f60448201527f6d652066726f6d2054696d656c6f636b2e000000000000000000000000000000606482015260840161032e565b6001811015610ee75760405162461bcd60e51b815260206004820152603460248201527f54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206560448201527f7863656564206d696e696d756d2064656c61792e000000000000000000000000606482015260840161032e565b610e10811115610f5f5760405162461bcd60e51b815260206004820152603860248201527f54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e60448201527f6f7420657863656564206d6178696d756d2064656c61792e0000000000000000606482015260840161032e565b6002546040518291907fed0229422af39d4d7d33f7a27d31d6f5cb20ec628293da58dd6e8a528ed466be90600090a3600255565b73ffffffffffffffffffffffffffffffffffffffff8116610fe0576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b803573ffffffffffffffffffffffffffffffffffffffff8116811461100757600080fd5b919050565b60008083601f84011261101e57600080fd5b50813567ffffffffffffffff81111561103657600080fd5b60208301915083602082850101111561104e57600080fd5b9250929050565b600080600080600080600060a0888a03121561107057600080fd5b61107988610fe3565b965060208801359550604088013567ffffffffffffffff8082111561109d57600080fd5b6110a98b838c0161100c565b909750955060608a01359150808211156110c257600080fd5b506110cf8a828b0161100c565b989b979a50959894979596608090950135949350505050565b60005b838110156111035781810151838201526020016110eb565b50506000910152565b602081526000825180602084015261112b8160408501602087016110e8565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60006020828403121561116f57600080fd5b61117882610fe3565b9392505050565b60006020828403121561119157600080fd5b5035919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8816815286602082015260a06040820152600061121760a083018789611198565b828103606084015261122a818688611198565b91505082608083015298975050505050505050565b80820180821115611279577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b92915050565b8183823760009101908152919050565b7fffffffff0000000000000000000000000000000000000000000000000000000084168152818360048301376000910160040190815292915050565b600082516112dd8184602087016110e8565b9190910192915050565b868152608060208201526000611301608083018789611198565b8281036040840152611314818688611198565b91505082606083015297965050505050505056fea2646970667358221220f2ebbbc2962ab36d932af22dc3db85cd054b82dec65045e01307fcab3adf4b8764736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xC9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6A42B8F8 GT PUSH2 0x79 JUMPI DUP1 PUSH4 0xC1A287E2 GT PUSH2 0x56 JUMPI DUP1 PUSH4 0xC1A287E2 EQ PUSH2 0x1EC JUMPI DUP1 PUSH4 0xE177246E EQ PUSH2 0x215 JUMPI DUP1 PUSH4 0xF2B06537 EQ PUSH2 0x235 JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x275 JUMPI STOP JUMPDEST DUP1 PUSH4 0x6A42B8F8 EQ PUSH2 0x1D6 JUMPI DUP1 PUSH4 0x7D645FAB EQ PUSH2 0x1EC JUMPI DUP1 PUSH4 0xB1B43AE5 EQ PUSH2 0x201 JUMPI STOP JUMPDEST DUP1 PUSH4 0x3A66F901 GT PUSH2 0xA7 JUMPI DUP1 PUSH4 0x3A66F901 EQ PUSH2 0x168 JUMPI DUP1 PUSH4 0x4DD18BF5 EQ PUSH2 0x196 JUMPI DUP1 PUSH4 0x591FCDFE EQ PUSH2 0x1B6 JUMPI STOP JUMPDEST DUP1 PUSH4 0x825F38F EQ PUSH2 0xCB JUMPI DUP1 PUSH4 0xE18B681 EQ PUSH2 0x101 JUMPI DUP1 PUSH4 0x26782247 EQ PUSH2 0x116 JUMPI JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xEB PUSH2 0xE6 CALLDATASIZE PUSH1 0x4 PUSH2 0x1055 JUMP JUMPDEST PUSH2 0x2A2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF8 SWAP2 SWAP1 PUSH2 0x110C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x10D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC9 PUSH2 0x731 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x122 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x143 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x174 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x188 PUSH2 0x183 CALLDATASIZE PUSH1 0x4 PUSH2 0x1055 JUMP JUMPDEST PUSH2 0x83B JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC9 PUSH2 0x1B1 CALLDATASIZE PUSH1 0x4 PUSH2 0x115D JUMP JUMPDEST PUSH2 0xAEB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC9 PUSH2 0x1D1 CALLDATASIZE PUSH1 0x4 PUSH2 0x1055 JUMP JUMPDEST PUSH2 0xBFA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x188 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE10 PUSH2 0x188 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH2 0x188 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x221 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC9 PUSH2 0x230 CALLDATASIZE PUSH1 0x4 PUSH2 0x117F JUMP JUMPDEST PUSH2 0xDFB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x241 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x265 PUSH2 0x250 CALLDATASIZE PUSH1 0x4 PUSH2 0x117F JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x281 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x143 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x60 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x337 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A657865637574655472616E73616374696F6E3A204361 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C6C206D75737420636F6D652066726F6D2061646D696E2E0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x356 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x11E1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 SWAP1 SWAP4 MSTORE SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND PUSH2 0x411 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A657865637574655472616E73616374696F6E3A205472 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616E73616374696F6E206861736E2774206265656E207175657565642E000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32E JUMP JUMPDEST DUP3 TIMESTAMP LT ISZERO PUSH2 0x4AD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A657865637574655472616E73616374696F6E3A205472 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616E73616374696F6E206861736E2774207375727061737365642074696D6520 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6C6F636B2E000000000000000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0x32E JUMP JUMPDEST PUSH2 0x4B9 PUSH2 0xE10 DUP5 PUSH2 0x123F JUMP JUMPDEST TIMESTAMP GT ISZERO PUSH2 0x52E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x33 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A657865637574655472616E73616374696F6E3A205472 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616E73616374696F6E206973207374616C652E00000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND SWAP1 SSTORE PUSH1 0x60 SWAP1 DUP8 SWAP1 SUB PUSH2 0x5AB JUMPI DUP6 DUP6 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP3 SWAP4 POP PUSH2 0x5E6 SWAP3 POP POP POP JUMP JUMPDEST DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0x5BB SWAP3 SWAP2 SWAP1 PUSH2 0x127F JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 PUSH2 0x5D4 SWAP2 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x20 ADD PUSH2 0x128F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP JUMPDEST PUSH1 0x0 DUP1 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP12 DUP5 PUSH1 0x40 MLOAD PUSH2 0x60F SWAP2 SWAP1 PUSH2 0x12CB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x64C JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x651 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x6C9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A657865637574655472616E73616374696F6E3A205472 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616E73616374696F6E20657865637574696F6E2072657665727465642E000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32E JUMP JUMPDEST DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0xA560E3198060A2F10670C1EC5B403077EA6AE93CA8DE1C32B451DC1A943CD6E7 DUP14 DUP14 DUP14 DUP14 DUP14 DUP14 PUSH1 0x40 MLOAD PUSH2 0x71A SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x12E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x7BE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A61636365707441646D696E3A2043616C6C206D757374 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x20636F6D652066726F6D2070656E64696E6741646D696E2E0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD CALLER SWAP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 PUSH32 0xF9FFABCA9C8276E99321725BCB43FB076A6C66A54B7F21C4E8146D8519B417DC SWAP2 LOG3 PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP1 DUP2 AND CALLER OR SWAP1 SWAP2 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x8C9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x36 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A71756575655472616E73616374696F6E3A2043616C6C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x206D75737420636F6D652066726F6D2061646D696E2E00000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x8D6 SWAP1 TIMESTAMP PUSH2 0x123F JUMP JUMPDEST DUP3 LT ISZERO PUSH2 0x971 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x49 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A71756575655472616E73616374696F6E3A2045737469 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6D6174656420657865637574696F6E20626C6F636B206D757374207361746973 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x66792064656C61792E0000000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x0 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x990 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x11E1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 SWAP1 SWAP4 MSTORE SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND ISZERO PUSH2 0xA4C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x37 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A71756575655472616E73616374696F6E3A207472616E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x73616374696F6E20616C7265616479207175657565642E000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND PUSH1 0x1 OR SWAP1 SSTORE MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP11 AND SWAP1 DUP3 SWAP1 PUSH32 0x76E2796DC3A81D57B0E8504B647FEBCBEEB5F4AF818E164F11EEF8131A6A763F SWAP1 PUSH2 0xAD7 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH2 0x12E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST CALLER ADDRESS EQ DUP1 PUSH2 0xB10 JUMPI POP PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ JUMPDEST PUSH2 0xB82 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A73657450656E64696E6741646D696E3A2043616C6C20 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6D75737420636F6D652066726F6D2054696D656C6F636B2E0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32E JUMP JUMPDEST PUSH2 0xB8B DUP2 PUSH2 0xF93 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x69D78E38A01985FBB1462961809B4B2D65531BC93B2B94037F3334B82CA4A756 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0xC87 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x37 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A63616E63656C5472616E73616374696F6E3A2043616C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C206D75737420636F6D652066726F6D2061646D696E2E000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x0 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xCA6 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x11E1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 SWAP1 SWAP4 MSTORE SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND PUSH2 0xD61 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A63616E63656C5472616E73616374696F6E3A20747261 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E73616374696F6E206973206E6F7420717565756564207965742E0000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND SWAP1 SSTORE MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP10 AND SWAP1 DUP3 SWAP1 PUSH32 0x2FFFC091A501FD91BFBFF27141450D3ACB40FB8E6D8382B243EC7A812A3AAF87 SWAP1 PUSH2 0xDE9 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH2 0x12E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP POP JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0xE70 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A73657444656C61793A2043616C6C206D75737420636F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6D652066726F6D2054696D656C6F636B2E000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x1 DUP2 LT ISZERO PUSH2 0xEE7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x34 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A73657444656C61793A2044656C6179206D7573742065 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7863656564206D696E696D756D2064656C61792E000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32E JUMP JUMPDEST PUSH2 0xE10 DUP2 GT ISZERO PUSH2 0xF5F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A73657444656C61793A2044656C6179206D757374206E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F7420657863656564206D6178696D756D2064656C61792E0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD DUP3 SWAP2 SWAP1 PUSH32 0xED0229422AF39D4D7D33F7A27D31D6F5CB20EC628293DA58DD6E8A528ED466BE SWAP1 PUSH1 0x0 SWAP1 LOG3 PUSH1 0x2 SSTORE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0xFE0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8579BEFE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x1007 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x101E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1036 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x104E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x1070 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1079 DUP9 PUSH2 0xFE3 JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x109D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10A9 DUP12 DUP4 DUP13 ADD PUSH2 0x100C JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP PUSH1 0x60 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x10C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10CF DUP11 DUP3 DUP12 ADD PUSH2 0x100C JUMP JUMPDEST SWAP9 SWAP12 SWAP8 SWAP11 POP SWAP6 SWAP9 SWAP5 SWAP8 SWAP6 SWAP7 PUSH1 0x80 SWAP1 SWAP6 ADD CALLDATALOAD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1103 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x10EB JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x112B DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x10E8 JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x116F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1178 DUP3 PUSH2 0xFE3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1191 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 ADD ADD MSTORE PUSH1 0x0 PUSH1 0x20 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 PUSH1 0x1F DUP5 ADD AND DUP5 ADD ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP9 AND DUP2 MSTORE DUP7 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1217 PUSH1 0xA0 DUP4 ADD DUP8 DUP10 PUSH2 0x1198 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x122A DUP2 DUP7 DUP9 PUSH2 0x1198 JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x80 DUP4 ADD MSTORE SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x1279 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP5 AND DUP2 MSTORE DUP2 DUP4 PUSH1 0x4 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 ADD PUSH1 0x4 ADD SWAP1 DUP2 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x12DD DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x10E8 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP7 DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1301 PUSH1 0x80 DUP4 ADD DUP8 DUP10 PUSH2 0x1198 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x1314 DUP2 DUP7 DUP9 PUSH2 0x1198 JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x60 DUP4 ADD MSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLCODE 0xEB 0xBB 0xC2 SWAP7 0x2A 0xB3 PUSH14 0x932AF22DC3DB85CD054B82DEC650 GASLIMIT 0xE0 SGT SMOD 0xFC 0xAB GASPRICE 0xDF 0x4B DUP8 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"125:422:83:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8245:1342:59;;;;;;;;;;-1:-1:-1;8245:1342:59;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4309:247;;;;;;;;;;;;;:::i;1017:27::-;;;;;;;;;;-1:-1:-1;1017:27:59;;;;;;;;;;;2394:42:97;2382:55;;;2364:74;;2352:2;2337:18;1017:27:59;2218:226:97;5807:790:59;;;;;;;;;;-1:-1:-1;5807:790:59;;;;;:::i;:::-;;:::i;:::-;;;2595:25:97;;;2583:2;2568:18;5807:790:59;2449:177:97;4893:353:59;;;;;;;;;;-1:-1:-1;4893:353:59;;;;;:::i;:::-;;:::i;7104:593::-;;;;;;;;;;-1:-1:-1;7104:593:59;;;;;:::i;:::-;;:::i;1114:20::-;;;;;;;;;;;;;;;;450:95:83;;;;;;;;;;-1:-1:-1;531:7:83;450:95;;355:89;;;;;;;;;;-1:-1:-1;436:1:83;355:89;;3062:413:59;;;;;;;;;;-1:-1:-1;3062:413:59;;;;;:::i;:::-;;:::i;1188:50::-;;;;;;;;;;-1:-1:-1;1188:50:59;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3539:14:97;;3532:22;3514:41;;3502:2;3487:18;1188:50:59;3374:187:97;939:20:59;;;;;;;;;;-1:-1:-1;939:20:59;;;;;;;;8245:1342;8473:5;;8427:12;;8473:5;;8459:10;:19;8451:88;;;;-1:-1:-1;;;8451:88:59;;3768:2:97;8451:88:59;;;3750:21:97;3807:2;3787:18;;;3780:30;3846:34;3826:18;;;3819:62;3917:26;3897:18;;;3890:54;3961:19;;8451:88:59;;;;;;;;;8550:14;8588:6;8596:5;8603:9;;8614:4;;8620:3;8577:47;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;8567:58;;8577:47;8567:58;;;;8643:26;;;;:18;:26;;;;;;8567:58;;-1:-1:-1;8643:26:59;;8635:100;;;;-1:-1:-1;;;8635:100:59;;5229:2:97;8635:100:59;;;5211:21:97;5268:2;5248:18;;;5241:30;5307:34;5287:18;;;5280:62;5378:31;5358:18;;;5351:59;5427:19;;8635:100:59;5027:425:97;8635:100:59;8776:3;9843:15;8753:26;;8745:108;;;;-1:-1:-1;;;8745:108:59;;5659:2:97;8745:108:59;;;5641:21:97;5698:2;5678:18;;;5671:30;5737:34;5717:18;;;5710:62;5808:34;5788:18;;;5781:62;5880:7;5859:19;;;5852:36;5905:19;;8745:108:59;5457:473:97;8745:108:59;8894:20;531:7:83;8894:3:59;:20;:::i;:::-;9843:15;8871:43;;8863:107;;;;-1:-1:-1;;;8863:107:59;;6421:2:97;8863:107:59;;;6403:21:97;6460:2;6440:18;;;6433:30;6499:34;6479:18;;;6472:62;6570:21;6550:18;;;6543:49;6609:19;;8863:107:59;6219:415:97;8863:107:59;8989:26;;;;:18;:26;;;;;8981:35;;;;;;9027:21;;9063:28;;;9059:175;;9118:4;;9107:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9107:15:59;;-1:-1:-1;9059:175:59;;-1:-1:-1;;;9059:175:59;;9204:9;;9188:27;;;;;;;:::i;:::-;;;;;;;;;9164:59;;9218:4;;;;9164:59;;;:::i;:::-;;;;;;;;;;;;;9153:70;;9059:175;9304:12;9318:23;9345:6;:11;;9365:5;9373:8;9345:37;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9303:79;;;;9400:7;9392:81;;;;-1:-1:-1;;;9392:81:59;;7828:2:97;9392:81:59;;;7810:21:97;7867:2;7847:18;;;7840:30;7906:34;7886:18;;;7879:62;7977:31;7957:18;;;7950:59;8026:19;;9392:81:59;7626:425:97;9392:81:59;9516:6;9489:63;;9508:6;9489:63;9524:5;9531:9;;9542:4;;9548:3;9489:63;;;;;;;;;;;:::i;:::-;;;;;;;;9570:10;8245:1342;-1:-1:-1;;;;;;;;;;;8245:1342:59:o;4309:247::-;4371:12;;;;4357:10;:26;4349:95;;;;-1:-1:-1;;;4349:95:59;;8842:2:97;4349:95:59;;;8824:21:97;8881:2;8861:18;;;8854:30;8920:34;8900:18;;;8893:62;8991:26;8971:18;;;8964:54;9035:19;;4349:95:59;8640:420:97;4349:95:59;4468:5;;;4459:27;;4475:10;;4459:27;4468:5;;;;4459:27;;;4496:5;:18;;;;;;4504:10;4496:18;;;;;4524:25;;;;;;;4309:247::o;5807:790::-;5987:7;6028:5;;;;6014:10;:19;6006:86;;;;-1:-1:-1;;;6006:86:59;;9267:2:97;6006:86:59;;;9249:21:97;9306:2;9286:18;;;9279:30;9345:34;9325:18;;;9318:62;9416:24;9396:18;;;9389:52;9458:19;;6006:86:59;9065:418:97;6006:86:59;6152:5;;6130:27;;9843:15;6130:27;:::i;:::-;6123:3;:34;;6102:154;;;;-1:-1:-1;;;6102:154:59;;9690:2:97;6102:154:59;;;9672:21:97;9729:2;9709:18;;;9702:30;9768:34;9748:18;;;9741:62;9839:34;9819:18;;;9812:62;9911:11;9890:19;;;9883:40;9940:19;;6102:154:59;9488:477:97;6102:154:59;6267:14;6305:6;6313:5;6320:9;;6331:4;;6337:3;6294:47;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;6284:58;;6294:47;6284:58;;;;6361:26;;;;:18;:26;;;;;;6284:58;;-1:-1:-1;6361:26:59;;6360:27;6352:95;;;;-1:-1:-1;;;6352:95:59;;10172:2:97;6352:95:59;;;10154:21:97;10211:2;10191:18;;;10184:30;10250:34;10230:18;;;10223:62;10321:25;10301:18;;;10294:53;10364:19;;6352:95:59;9970:419:97;6352:95:59;6457:26;;;;:18;:26;;;;;;;:33;;;;6486:4;6457:33;;;6506:61;;;;;6476:6;;6506:61;;;;6539:5;;6546:9;;;;6557:4;;;;6563:3;;6506:61;:::i;:::-;;;;;;;;6584:6;5807:790;-1:-1:-1;;;;;;;;5807:790:59:o;4893:353::-;4979:10;5001:4;4979:27;;:50;;-1:-1:-1;5024:5:59;;;;5010:10;:19;4979:50;4958:153;;;;-1:-1:-1;;;4958:153:59;;10596:2:97;4958:153:59;;;10578:21:97;10635:2;10615:18;;;10608:30;10674:34;10654:18;;;10647:62;10745:26;10725:18;;;10718:54;10789:19;;4958:153:59;10394:420:97;4958:153:59;5121:35;5142:13;5121:20;:35::i;:::-;5166:12;:28;;;;;;;;;;;;;5210:29;;;;-1:-1:-1;;5210:29:59;4893:353;:::o;7104:593::-;7308:5;;;;7294:10;:19;7286:87;;;;-1:-1:-1;;;7286:87:59;;11021:2:97;7286:87:59;;;11003:21:97;11060:2;11040:18;;;11033:30;11099:34;11079:18;;;11072:62;11170:25;11150:18;;;11143:53;11213:19;;7286:87:59;10819:419:97;7286:87:59;7384:14;7422:6;7430:5;7437:9;;7448:4;;7454:3;7411:47;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;7401:58;;7411:47;7401:58;;;;7477:26;;;;:18;:26;;;;;;7401:58;;-1:-1:-1;7477:26:59;;7469:98;;;;-1:-1:-1;;;7469:98:59;;11445:2:97;7469:98:59;;;11427:21:97;11484:2;11464:18;;;11457:30;11523:34;11503:18;;;11496:62;11594:29;11574:18;;;11567:57;11641:19;;7469:98:59;11243:423:97;7469:98:59;7585:26;;;;:18;:26;;;;;;;7577:35;;;;;;7628:62;;;;;7604:6;;7628:62;;;;7662:5;;7669:9;;;;7680:4;;;;7686:3;;7628:62;:::i;:::-;;;;;;;;7276:421;7104:593;;;;;;;:::o;3062:413::-;3121:10;3143:4;3121:27;3113:89;;;;-1:-1:-1;;;3113:89:59;;11873:2:97;3113:89:59;;;11855:21:97;11912:2;11892:18;;;11885:30;11951:34;11931:18;;;11924:62;12022:19;12002:18;;;11995:47;12059:19;;3113:89:59;11671:413:97;3113:89:59;436:1:83;3220:6:59;:25;;3212:90;;;;-1:-1:-1;;;3212:90:59;;12291:2:97;3212:90:59;;;12273:21:97;12330:2;12310:18;;;12303:30;12369:34;12349:18;;;12342:62;12440:22;12420:18;;;12413:50;12480:19;;3212:90:59;12089:416:97;3212:90:59;531:7:83;3320:6:59;:25;;3312:94;;;;-1:-1:-1;;;3312:94:59;;12712:2:97;3312:94:59;;;12694:21:97;12751:2;12731:18;;;12724:30;12790:34;12770:18;;;12763:62;12861:26;12841:18;;;12834:54;12905:19;;3312:94:59;12510:420:97;3312:94:59;3430:5;;3421:23;;3437:6;;3430:5;3421:23;;;;;3454:5;:14;3062:413::o;485:136:47:-;548:22;;;544:75;;589:23;;;;;;;;;;;;;;544:75;485:136;:::o;14:196:97:-;82:20;;142:42;131:54;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:348::-;267:8;277:6;331:3;324:4;316:6;312:17;308:27;298:55;;349:1;346;339:12;298:55;-1:-1:-1;372:20:97;;415:18;404:30;;401:50;;;447:1;444;437:12;401:50;484:4;476:6;472:17;460:29;;536:3;529:4;520:6;512;508:19;504:30;501:39;498:59;;;553:1;550;543:12;498:59;215:348;;;;;:::o;568:932::-;686:6;694;702;710;718;726;734;787:3;775:9;766:7;762:23;758:33;755:53;;;804:1;801;794:12;755:53;827:29;846:9;827:29;:::i;:::-;817:39;;903:2;892:9;888:18;875:32;865:42;;958:2;947:9;943:18;930:32;981:18;1022:2;1014:6;1011:14;1008:34;;;1038:1;1035;1028:12;1008:34;1077:59;1128:7;1119:6;1108:9;1104:22;1077:59;:::i;:::-;1155:8;;-1:-1:-1;1051:85:97;-1:-1:-1;1243:2:97;1228:18;;1215:32;;-1:-1:-1;1259:16:97;;;1256:36;;;1288:1;1285;1278:12;1256:36;;1327:61;1380:7;1369:8;1358:9;1354:24;1327:61;:::i;:::-;568:932;;;;-1:-1:-1;568:932:97;;;;;;1489:3;1474:19;;;1461:33;;568:932;-1:-1:-1;;;;568:932:97:o;1505:250::-;1590:1;1600:113;1614:6;1611:1;1608:13;1600:113;;;1690:11;;;1684:18;1671:11;;;1664:39;1636:2;1629:10;1600:113;;;-1:-1:-1;;1747:1:97;1729:16;;1722:27;1505:250::o;1760:453::-;1907:2;1896:9;1889:21;1870:4;1939:6;1933:13;1982:6;1977:2;1966:9;1962:18;1955:34;1998:79;2070:6;2065:2;2054:9;2050:18;2045:2;2037:6;2033:15;1998:79;:::i;:::-;2129:2;2117:15;2134:66;2113:88;2098:104;;;;2204:2;2094:113;;1760:453;-1:-1:-1;;1760:453:97:o;2631:186::-;2690:6;2743:2;2731:9;2722:7;2718:23;2714:32;2711:52;;;2759:1;2756;2749:12;2711:52;2782:29;2801:9;2782:29;:::i;:::-;2772:39;2631:186;-1:-1:-1;;;2631:186:97:o;3004:180::-;3063:6;3116:2;3104:9;3095:7;3091:23;3087:32;3084:52;;;3132:1;3129;3122:12;3084:52;-1:-1:-1;3155:23:97;;3004:180;-1:-1:-1;3004:180:97:o;3991:326::-;4080:6;4075:3;4068:19;4132:6;4125:5;4118:4;4113:3;4109:14;4096:43;;4184:1;4177:4;4168:6;4163:3;4159:16;4155:27;4148:38;4050:3;4306:4;4236:66;4231:2;4223:6;4219:15;4215:88;4210:3;4206:98;4202:109;4195:116;;3991:326;;;;:::o;4322:700::-;4633:42;4625:6;4621:55;4610:9;4603:74;4713:6;4708:2;4697:9;4693:18;4686:34;4756:3;4751:2;4740:9;4736:18;4729:31;4584:4;4783:63;4841:3;4830:9;4826:19;4818:6;4810;4783:63;:::i;:::-;4894:9;4886:6;4882:22;4877:2;4866:9;4862:18;4855:50;4922;4965:6;4957;4949;4922:50;:::i;:::-;4914:58;;;5009:6;5003:3;4992:9;4988:19;4981:35;4322:700;;;;;;;;;;:::o;5935:279::-;6000:9;;;6021:10;;;6018:190;;;6064:77;6061:1;6054:88;6165:4;6162:1;6155:15;6193:4;6190:1;6183:15;6018:190;5935:279;;;;:::o;6639:271::-;6822:6;6814;6809:3;6796:33;6778:3;6848:16;;6873:13;;;6848:16;6639:271;-1:-1:-1;6639:271:97:o;6915:414::-;7122:66;7114:6;7110:79;7105:3;7098:92;7233:6;7225;7221:1;7216:3;7212:11;7199:41;7080:3;7263:16;;7281:1;7259:24;7292:13;;;7259:24;6915:414;-1:-1:-1;;6915:414:97:o;7334:287::-;7463:3;7501:6;7495:13;7517:66;7576:6;7571:3;7564:4;7556:6;7552:17;7517:66;:::i;:::-;7599:16;;;;;7334:287;-1:-1:-1;;7334:287:97:o;8056:579::-;8327:6;8316:9;8309:25;8370:3;8365:2;8354:9;8350:18;8343:31;8290:4;8397:63;8455:3;8444:9;8440:19;8432:6;8424;8397:63;:::i;:::-;8508:9;8500:6;8496:22;8491:2;8480:9;8476:18;8469:50;8536;8579:6;8571;8563;8536:50;:::i;:::-;8528:58;;;8622:6;8617:2;8606:9;8602:18;8595:34;8056:579;;;;;;;;;:::o"},"gasEstimates":{"creation":{"codeDepositCost":"991600","executionCost":"infinite","totalCost":"infinite"},"external":{"":"164","GRACE_PERIOD()":"214","MAXIMUM_DELAY()":"237","MINIMUM_DELAY()":"259","acceptAdmin()":"54403","admin()":"2401","cancelTransaction(address,uint256,string,bytes,uint256)":"infinite","delay()":"2318","executeTransaction(address,uint256,string,bytes,uint256)":"infinite","pendingAdmin()":"2381","queueTransaction(address,uint256,string,bytes,uint256)":"infinite","queuedTransactions(bytes32)":"2516","setDelay(uint256)":"26071","setPendingAdmin(address)":"27922"}},"methodIdentifiers":{"GRACE_PERIOD()":"c1a287e2","MAXIMUM_DELAY()":"7d645fab","MINIMUM_DELAY()":"b1b43ae5","acceptAdmin()":"0e18b681","admin()":"f851a440","cancelTransaction(address,uint256,string,bytes,uint256)":"591fcdfe","delay()":"6a42b8f8","executeTransaction(address,uint256,string,bytes,uint256)":"0825f38f","pendingAdmin()":"26782247","queueTransaction(address,uint256,string,bytes,uint256)":"3a66f901","queuedTransactions(bytes32)":"f2b06537","setDelay(uint256)":"e177246e","setPendingAdmin(address)":"4dd18bf5"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"delay_\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"CancelTransaction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"ExecuteTransaction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldAdmin\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"NewAdmin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldDelay\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newDelay\",\"type\":\"uint256\"}],\"name\":\"NewDelay\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newPendingAdmin\",\"type\":\"address\"}],\"name\":\"NewPendingAdmin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"QueueTransaction\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"GRACE_PERIOD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAXIMUM_DELAY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MINIMUM_DELAY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"cancelTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"executeTransaction\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"queueTransaction\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"queuedTransactions\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"delay_\",\"type\":\"uint256\"}],\"name\":\"setDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingAdmin_\",\"type\":\"address\"}],\"name\":\"setPendingAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"GRACE_PERIOD()\":{\"returns\":{\"_0\":\"The duration of the grace period, specified as a uint256 value.\"}},\"MAXIMUM_DELAY()\":{\"returns\":{\"_0\":\"Maximum delay\"}},\"MINIMUM_DELAY()\":{\"returns\":{\"_0\":\"Minimum delay\"}},\"acceptAdmin()\":{\"custom:access\":\"Sender must be pending admin\",\"custom:event\":\"Emit NewAdmin with old and new admin\"},\"cancelTransaction(address,uint256,string,bytes,uint256)\":{\"custom:access\":\"Sender must be admin\",\"custom:event\":\"Emit CancelTransaction\",\"params\":{\"data\":\"Arguments to be passed to the function when called\",\"eta\":\"Timestamp after which the transaction can be executed\",\"signature\":\"Signature of the function to be called\",\"target\":\"Address of the contract with the method to be called\",\"value\":\"Native token amount sent with the transaction\"}},\"executeTransaction(address,uint256,string,bytes,uint256)\":{\"custom:access\":\"Sender must be admin\",\"custom:event\":\"Emit ExecuteTransaction\",\"params\":{\"data\":\"Arguments to be passed to the function when called\",\"eta\":\"Timestamp after which the transaction can be executed\",\"signature\":\"Signature of the function to be called\",\"target\":\"Address of the contract with the method to be called\",\"value\":\"Native token amount sent with the transaction\"},\"returns\":{\"_0\":\"Result of function call\"}},\"queueTransaction(address,uint256,string,bytes,uint256)\":{\"custom:access\":\"Sender must be admin\",\"custom:event\":\"Emit QueueTransaction\",\"params\":{\"data\":\"Arguments to be passed to the function when called\",\"eta\":\"Timestamp after which the transaction can be executed\",\"signature\":\"Signature of the function to be called\",\"target\":\"Address of the contract with the method to be called\",\"value\":\"Native token amount sent with the transaction\"},\"returns\":{\"_0\":\"Hash of the queued transaction\"}},\"setDelay(uint256)\":{\"custom:access\":\"Sender must be Timelock itself\",\"custom:event\":\"Emit NewDelay with old and new delay\",\"params\":{\"delay_\":\"The new delay period for the transaction queue\"}},\"setPendingAdmin(address)\":{\"custom:access\":\"Sender must be Timelock contract itself or admin\",\"custom:event\":\"Emit NewPendingAdmin with new pending admin\",\"params\":{\"pendingAdmin_\":\"Address of the proposed admin\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}]},\"events\":{\"CancelTransaction(bytes32,address,uint256,string,bytes,uint256)\":{\"notice\":\"Event emitted when a proposal transaction has been cancelled\"},\"ExecuteTransaction(bytes32,address,uint256,string,bytes,uint256)\":{\"notice\":\"Event emitted when a proposal transaction has been executed\"},\"NewAdmin(address,address)\":{\"notice\":\"Event emitted when a new admin is accepted\"},\"NewDelay(uint256,uint256)\":{\"notice\":\"Event emitted when a new delay is proposed\"},\"NewPendingAdmin(address)\":{\"notice\":\"Event emitted when a new admin is proposed\"},\"QueueTransaction(bytes32,address,uint256,string,bytes,uint256)\":{\"notice\":\"Event emitted when a proposal transaction has been queued\"}},\"kind\":\"user\",\"methods\":{\"GRACE_PERIOD()\":{\"notice\":\"Return grace period\"},\"MAXIMUM_DELAY()\":{\"notice\":\"Return required maximum delay\"},\"MINIMUM_DELAY()\":{\"notice\":\"Return required minimum delay\"},\"acceptAdmin()\":{\"notice\":\"Method for accepting a proposed admin\"},\"admin()\":{\"notice\":\"Timelock admin authorized to queue and execute transactions\"},\"cancelTransaction(address,uint256,string,bytes,uint256)\":{\"notice\":\"Called to cancel a queued transaction\"},\"delay()\":{\"notice\":\"Period for a proposal transaction to be queued\"},\"executeTransaction(address,uint256,string,bytes,uint256)\":{\"notice\":\"Called to execute a queued transaction\"},\"pendingAdmin()\":{\"notice\":\"Account proposed as the next admin\"},\"queueTransaction(address,uint256,string,bytes,uint256)\":{\"notice\":\"Called for each action when queuing a proposal\"},\"queuedTransactions(bytes32)\":{\"notice\":\"Mapping of queued transactions\"},\"setDelay(uint256)\":{\"notice\":\"Setter for the transaction queue delay\"},\"setPendingAdmin(address)\":{\"notice\":\"Method to propose a new admin authorized to call timelock functions. This should be the Governor Contract\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/TestTimelockV8.sol\":\"TestTimelockV8\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@venusprotocol/solidity-utilities/contracts/validators.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\n/// @notice Thrown if the supplied address is a zero address where it is not allowed\\nerror ZeroAddressNotAllowed();\\n\\n/// @notice Thrown if the supplied value is 0 where it is not allowed\\nerror ZeroValueNotAllowed();\\n\\n/// @notice Checks if the provided address is nonzero, reverts otherwise\\n/// @param address_ Address to check\\n/// @custom:error ZeroAddressNotAllowed is thrown if the provided address is a zero address\\nfunction ensureNonzeroAddress(address address_) pure {\\n    if (address_ == address(0)) {\\n        revert ZeroAddressNotAllowed();\\n    }\\n}\\n\\n/// @notice Checks if the provided value is nonzero, reverts otherwise\\n/// @param value_ Value to check\\n/// @custom:error ZeroValueNotAllowed is thrown if the provided value is 0\\nfunction ensureNonzeroValue(uint256 value_) pure {\\n    if (value_ == 0) {\\n        revert ZeroValueNotAllowed();\\n    }\\n}\\n\",\"keccak256\":\"0xdb88e14d50dd21889ca3329d755673d022c47e8da005b6a545c7f69c2c4b7b86\",\"license\":\"BSD-3-Clause\"},\"contracts/Governance/TimelockV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\n\\n/**\\n * @title TimelockV8\\n * @author Venus\\n * @notice The Timelock contract using solidity V8.\\n * This contract also differs from the original timelock because it has a virtual function to get minimum delays\\n * and allow test deployments to override the value.\\n */\\ncontract TimelockV8 {\\n    /// @notice Required period to execute a proposal transaction\\n    uint256 private constant DEFAULT_GRACE_PERIOD = 14 days;\\n\\n    /// @notice Minimum amount of time a proposal transaction must be queued\\n    uint256 private constant DEFAULT_MINIMUM_DELAY = 1 hours;\\n\\n    /// @notice Maximum amount of time a proposal transaction must be queued\\n    uint256 private constant DEFAULT_MAXIMUM_DELAY = 30 days;\\n\\n    /// @notice Timelock admin authorized to queue and execute transactions\\n    address public admin;\\n\\n    /// @notice Account proposed as the next admin\\n    address public pendingAdmin;\\n\\n    /// @notice Period for a proposal transaction to be queued\\n    uint256 public delay;\\n\\n    /// @notice Mapping of queued transactions\\n    mapping(bytes32 => bool) public queuedTransactions;\\n\\n    /// @notice Event emitted when a new admin is accepted\\n    event NewAdmin(address indexed oldAdmin, address indexed newAdmin);\\n\\n    /// @notice Event emitted when a new admin is proposed\\n    event NewPendingAdmin(address indexed newPendingAdmin);\\n\\n    /// @notice Event emitted when a new delay is proposed\\n    event NewDelay(uint256 indexed oldDelay, uint256 indexed newDelay);\\n\\n    /// @notice Event emitted when a proposal transaction has been cancelled\\n    event CancelTransaction(\\n        bytes32 indexed txHash,\\n        address indexed target,\\n        uint256 value,\\n        string signature,\\n        bytes data,\\n        uint256 eta\\n    );\\n\\n    /// @notice Event emitted when a proposal transaction has been executed\\n    event ExecuteTransaction(\\n        bytes32 indexed txHash,\\n        address indexed target,\\n        uint256 value,\\n        string signature,\\n        bytes data,\\n        uint256 eta\\n    );\\n\\n    /// @notice Event emitted when a proposal transaction has been queued\\n    event QueueTransaction(\\n        bytes32 indexed txHash,\\n        address indexed target,\\n        uint256 value,\\n        string signature,\\n        bytes data,\\n        uint256 eta\\n    );\\n\\n    constructor(address admin_, uint256 delay_) {\\n        require(delay_ >= MINIMUM_DELAY(), \\\"Timelock::constructor: Delay must exceed minimum delay.\\\");\\n        require(delay_ <= MAXIMUM_DELAY(), \\\"Timelock::setDelay: Delay must not exceed maximum delay.\\\");\\n        ensureNonzeroAddress(admin_);\\n\\n        admin = admin_;\\n        delay = delay_;\\n    }\\n\\n    fallback() external payable {}\\n\\n    /**\\n     * @notice Setter for the transaction queue delay\\n     * @param delay_ The new delay period for the transaction queue\\n     * @custom:access Sender must be Timelock itself\\n     * @custom:event Emit NewDelay with old and new delay\\n     */\\n    function setDelay(uint256 delay_) public {\\n        require(msg.sender == address(this), \\\"Timelock::setDelay: Call must come from Timelock.\\\");\\n        require(delay_ >= MINIMUM_DELAY(), \\\"Timelock::setDelay: Delay must exceed minimum delay.\\\");\\n        require(delay_ <= MAXIMUM_DELAY(), \\\"Timelock::setDelay: Delay must not exceed maximum delay.\\\");\\n        emit NewDelay(delay, delay_);\\n        delay = delay_;\\n    }\\n\\n    /**\\n     * @notice Return grace period\\n     * @return The duration of the grace period, specified as a uint256 value.\\n     */\\n    function GRACE_PERIOD() public view virtual returns (uint256) {\\n        return DEFAULT_GRACE_PERIOD;\\n    }\\n\\n    /**\\n     * @notice Return required minimum delay\\n     * @return Minimum delay\\n     */\\n    function MINIMUM_DELAY() public view virtual returns (uint256) {\\n        return DEFAULT_MINIMUM_DELAY;\\n    }\\n\\n    /**\\n     * @notice Return required maximum delay\\n     * @return Maximum delay\\n     */\\n    function MAXIMUM_DELAY() public view virtual returns (uint256) {\\n        return DEFAULT_MAXIMUM_DELAY;\\n    }\\n\\n    /**\\n     * @notice Method for accepting a proposed admin\\n     * @custom:access Sender must be pending admin\\n     * @custom:event Emit NewAdmin with old and new admin\\n     */\\n    function acceptAdmin() public {\\n        require(msg.sender == pendingAdmin, \\\"Timelock::acceptAdmin: Call must come from pendingAdmin.\\\");\\n        emit NewAdmin(admin, msg.sender);\\n        admin = msg.sender;\\n        pendingAdmin = address(0);\\n    }\\n\\n    /**\\n     * @notice Method to propose a new admin authorized to call timelock functions. This should be the Governor Contract\\n     * @param pendingAdmin_ Address of the proposed admin\\n     * @custom:access Sender must be Timelock contract itself or admin\\n     * @custom:event Emit NewPendingAdmin with new pending admin\\n     */\\n    function setPendingAdmin(address pendingAdmin_) public {\\n        require(\\n            msg.sender == address(this) || msg.sender == admin,\\n            \\\"Timelock::setPendingAdmin: Call must come from Timelock.\\\"\\n        );\\n        ensureNonzeroAddress(pendingAdmin_);\\n        pendingAdmin = pendingAdmin_;\\n\\n        emit NewPendingAdmin(pendingAdmin);\\n    }\\n\\n    /**\\n     * @notice Called for each action when queuing a proposal\\n     * @param target Address of the contract with the method to be called\\n     * @param value Native token amount sent with the transaction\\n     * @param signature Signature of the function to be called\\n     * @param data Arguments to be passed to the function when called\\n     * @param eta Timestamp after which the transaction can be executed\\n     * @return Hash of the queued transaction\\n     * @custom:access Sender must be admin\\n     * @custom:event Emit QueueTransaction\\n     */\\n    function queueTransaction(\\n        address target,\\n        uint256 value,\\n        string calldata signature,\\n        bytes calldata data,\\n        uint256 eta\\n    ) public returns (bytes32) {\\n        require(msg.sender == admin, \\\"Timelock::queueTransaction: Call must come from admin.\\\");\\n        require(\\n            eta >= getBlockTimestamp() + delay,\\n            \\\"Timelock::queueTransaction: Estimated execution block must satisfy delay.\\\"\\n        );\\n\\n        bytes32 txHash = keccak256(abi.encode(target, value, signature, data, eta));\\n        require(!queuedTransactions[txHash], \\\"Timelock::queueTransaction: transaction already queued.\\\");\\n        queuedTransactions[txHash] = true;\\n\\n        emit QueueTransaction(txHash, target, value, signature, data, eta);\\n        return txHash;\\n    }\\n\\n    /**\\n     * @notice Called to cancel a queued transaction\\n     * @param target Address of the contract with the method to be called\\n     * @param value Native token amount sent with the transaction\\n     * @param signature Signature of the function to be called\\n     * @param data Arguments to be passed to the function when called\\n     * @param eta Timestamp after which the transaction can be executed\\n     * @custom:access Sender must be admin\\n     * @custom:event Emit CancelTransaction\\n     */\\n    function cancelTransaction(\\n        address target,\\n        uint256 value,\\n        string calldata signature,\\n        bytes calldata data,\\n        uint256 eta\\n    ) public {\\n        require(msg.sender == admin, \\\"Timelock::cancelTransaction: Call must come from admin.\\\");\\n\\n        bytes32 txHash = keccak256(abi.encode(target, value, signature, data, eta));\\n        require(queuedTransactions[txHash], \\\"Timelock::cancelTransaction: transaction is not queued yet.\\\");\\n        delete (queuedTransactions[txHash]);\\n\\n        emit CancelTransaction(txHash, target, value, signature, data, eta);\\n    }\\n\\n    /**\\n     * @notice Called to execute a queued transaction\\n     * @param target Address of the contract with the method to be called\\n     * @param value Native token amount sent with the transaction\\n     * @param signature Signature of the function to be called\\n     * @param data Arguments to be passed to the function when called\\n     * @param eta Timestamp after which the transaction can be executed\\n     * @return Result of function call\\n     * @custom:access Sender must be admin\\n     * @custom:event Emit ExecuteTransaction\\n     */\\n    function executeTransaction(\\n        address target,\\n        uint256 value,\\n        string calldata signature,\\n        bytes calldata data,\\n        uint256 eta\\n    ) public returns (bytes memory) {\\n        require(msg.sender == admin, \\\"Timelock::executeTransaction: Call must come from admin.\\\");\\n\\n        bytes32 txHash = keccak256(abi.encode(target, value, signature, data, eta));\\n        require(queuedTransactions[txHash], \\\"Timelock::executeTransaction: Transaction hasn't been queued.\\\");\\n        require(getBlockTimestamp() >= eta, \\\"Timelock::executeTransaction: Transaction hasn't surpassed time lock.\\\");\\n        require(getBlockTimestamp() <= eta + GRACE_PERIOD(), \\\"Timelock::executeTransaction: Transaction is stale.\\\");\\n\\n        delete (queuedTransactions[txHash]);\\n\\n        bytes memory callData;\\n\\n        if (bytes(signature).length == 0) {\\n            callData = data;\\n        } else {\\n            callData = abi.encodePacked(bytes4(keccak256(bytes(signature))), data);\\n        }\\n\\n        // solium-disable-next-line security/no-call-value\\n        (bool success, bytes memory returnData) = target.call{ value: value }(callData);\\n        require(success, \\\"Timelock::executeTransaction: Transaction execution reverted.\\\");\\n\\n        emit ExecuteTransaction(txHash, target, value, signature, data, eta);\\n\\n        return returnData;\\n    }\\n\\n    /**\\n     * @notice Returns the current block timestamp\\n     * @return The current block timestamp\\n     */\\n    function getBlockTimestamp() internal view returns (uint256) {\\n        // solium-disable-next-line security/no-block-members\\n        return block.timestamp;\\n    }\\n}\\n\",\"keccak256\":\"0x14dc68819f1d7e496cf07d688818fdc6f2dcb15e4fcc9e622732325d1727d613\",\"license\":\"BSD-3-Clause\"},\"contracts/test/TestTimelockV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\nimport { TimelockV8 } from \\\"../Governance/TimelockV8.sol\\\";\\n\\ncontract TestTimelockV8 is TimelockV8 {\\n    constructor(address admin_, uint256 delay_) public TimelockV8(admin_, delay_) {}\\n\\n    function GRACE_PERIOD() public view override returns (uint256) {\\n        return 1 hours;\\n    }\\n\\n    function MINIMUM_DELAY() public view override returns (uint256) {\\n        return 1;\\n    }\\n\\n    function MAXIMUM_DELAY() public view override returns (uint256) {\\n        return 1 hours;\\n    }\\n}\\n\",\"keccak256\":\"0x1f8fc0d2626ab24a5820c3740e0e8c222a533ef61a8e955946051e654bfd2938\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":13923,"contract":"contracts/test/TestTimelockV8.sol:TestTimelockV8","label":"admin","offset":0,"slot":"0","type":"t_address"},{"astId":13926,"contract":"contracts/test/TestTimelockV8.sol:TestTimelockV8","label":"pendingAdmin","offset":0,"slot":"1","type":"t_address"},{"astId":13929,"contract":"contracts/test/TestTimelockV8.sol:TestTimelockV8","label":"delay","offset":0,"slot":"2","type":"t_uint256"},{"astId":13934,"contract":"contracts/test/TestTimelockV8.sol:TestTimelockV8","label":"queuedTransactions","offset":0,"slot":"3","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_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"errors":{"ZeroAddressNotAllowed()":[{"notice":"Thrown if the supplied address is a zero address where it is not allowed"}]},"events":{"CancelTransaction(bytes32,address,uint256,string,bytes,uint256)":{"notice":"Event emitted when a proposal transaction has been cancelled"},"ExecuteTransaction(bytes32,address,uint256,string,bytes,uint256)":{"notice":"Event emitted when a proposal transaction has been executed"},"NewAdmin(address,address)":{"notice":"Event emitted when a new admin is accepted"},"NewDelay(uint256,uint256)":{"notice":"Event emitted when a new delay is proposed"},"NewPendingAdmin(address)":{"notice":"Event emitted when a new admin is proposed"},"QueueTransaction(bytes32,address,uint256,string,bytes,uint256)":{"notice":"Event emitted when a proposal transaction has been queued"}},"kind":"user","methods":{"GRACE_PERIOD()":{"notice":"Return grace period"},"MAXIMUM_DELAY()":{"notice":"Return required maximum delay"},"MINIMUM_DELAY()":{"notice":"Return required minimum delay"},"acceptAdmin()":{"notice":"Method for accepting a proposed admin"},"admin()":{"notice":"Timelock admin authorized to queue and execute transactions"},"cancelTransaction(address,uint256,string,bytes,uint256)":{"notice":"Called to cancel a queued transaction"},"delay()":{"notice":"Period for a proposal transaction to be queued"},"executeTransaction(address,uint256,string,bytes,uint256)":{"notice":"Called to execute a queued transaction"},"pendingAdmin()":{"notice":"Account proposed as the next admin"},"queueTransaction(address,uint256,string,bytes,uint256)":{"notice":"Called for each action when queuing a proposal"},"queuedTransactions(bytes32)":{"notice":"Mapping of queued transactions"},"setDelay(uint256)":{"notice":"Setter for the transaction queue delay"},"setPendingAdmin(address)":{"notice":"Method to propose a new admin authorized to call timelock functions. This should be the Governor Contract"}},"version":1}}},"hardhat-deploy/solc_0.8/openzeppelin/access/Ownable.sol":{"Ownable":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.","kind":"dev","methods":{"constructor":{"details":"Initializes the contract setting the deployer as the initial owner."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat-deploy/solc_0.8/openzeppelin/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"hardhat-deploy/solc_0.8/openzeppelin/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    constructor (address initialOwner) {\\n        _transferOwnership(initialOwner);\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n        _;\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions anymore. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby removing any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n}\\n\",\"keccak256\":\"0x9b2bbba5bb04f53f277739c1cdff896ba8b3bf591cfc4eab2098c655e8ac251e\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":21303,"contract":"hardhat-deploy/solc_0.8/openzeppelin/access/Ownable.sol:Ownable","label":"_owner","offset":0,"slot":"0","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol":{"IERC1822Proxiable":{"abi":[{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"}],"devdoc":{"details":"ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified proxy whose upgrades are fully controlled by the current implementation.","kind":"dev","methods":{"proxiableUUID()":{"details":"Returns the storage slot that the proxiable contract assumes is being used to store the implementation address. 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."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"proxiableUUID()":"52d1902d"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified proxy whose upgrades are fully controlled by the current implementation.\",\"kind\":\"dev\",\"methods\":{\"proxiableUUID()\":{\"details\":\"Returns the storage slot that the proxiable contract assumes is being used to store the implementation address. 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.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol\":\"IERC1822Proxiable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (interfaces/draft-IERC1822.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified\\n * proxy whose upgrades are fully controlled by the current implementation.\\n */\\ninterface IERC1822Proxiable {\\n    /**\\n     * @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation\\n     * address.\\n     *\\n     * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\\n     * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\\n     * function revert if invoked through a proxy.\\n     */\\n    function proxiableUUID() external view returns (bytes32);\\n}\\n\",\"keccak256\":\"0x93b4e21c931252739a1ec13ea31d3d35a5c068be3163ccab83e4d70c40355f03\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol":{"ERC1967Proxy":{"abi":[{"inputs":[{"internalType":"address","name":"_logic","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"stateMutability":"payable","type":"receive"}],"devdoc":{"details":"This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an implementation address that can be changed. This address is stored in storage in the location specified by https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the implementation behind the proxy.","events":{"AdminChanged(address,address)":{"details":"Emitted when the admin account has changed."},"BeaconUpgraded(address)":{"details":"Emitted when the beacon is upgraded."},"Upgraded(address)":{"details":"Emitted when the implementation is upgraded."}},"kind":"dev","methods":{"constructor":{"details":"Initializes the upgradeable proxy with an initial implementation specified by `_logic`. If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded function call, and allows initializating the storage of the proxy like a Solidity constructor."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_21451":{"entryPoint":null,"id":21451,"parameterSlots":2,"returnSlots":0},"@_setImplementation_21520":{"entryPoint":278,"id":21520,"parameterSlots":1,"returnSlots":0},"@_upgradeToAndCall_21565":{"entryPoint":124,"id":21565,"parameterSlots":3,"returnSlots":0},"@_upgradeTo_21535":{"entryPoint":168,"id":21535,"parameterSlots":1,"returnSlots":0},"@functionDelegateCall_22381":{"entryPoint":232,"id":22381,"parameterSlots":2,"returnSlots":1},"@functionDelegateCall_22416":{"entryPoint":439,"id":22416,"parameterSlots":3,"returnSlots":1},"@getAddressSlot_22496":{"entryPoint":null,"id":22496,"parameterSlots":1,"returnSlots":1},"@isContract_22171":{"entryPoint":null,"id":22171,"parameterSlots":1,"returnSlots":1},"@verifyCallResult_22447":{"entryPoint":663,"id":22447,"parameterSlots":3,"returnSlots":1},"abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory":{"entryPoint":778,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":1039,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1067,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":984,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":742,"id":null,"parameterSlots":3,"returnSlots":0},"panic_error_0x01":{"entryPoint":1017,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":720,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:3342:97","nodeType":"YulBlock","src":"0:3342:97","statements":[{"nativeSrc":"6:3:97","nodeType":"YulBlock","src":"6:3:97","statements":[]},{"body":{"nativeSrc":"46:95:97","nodeType":"YulBlock","src":"46:95:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"63:1:97","nodeType":"YulLiteral","src":"63:1:97","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"70:3:97","nodeType":"YulLiteral","src":"70:3:97","type":"","value":"224"},{"kind":"number","nativeSrc":"75:10:97","nodeType":"YulLiteral","src":"75:10:97","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"66:3:97","nodeType":"YulIdentifier","src":"66:3:97"},"nativeSrc":"66:20:97","nodeType":"YulFunctionCall","src":"66:20:97"}],"functionName":{"name":"mstore","nativeSrc":"56:6:97","nodeType":"YulIdentifier","src":"56:6:97"},"nativeSrc":"56:31:97","nodeType":"YulFunctionCall","src":"56:31:97"},"nativeSrc":"56:31:97","nodeType":"YulExpressionStatement","src":"56:31:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"103:1:97","nodeType":"YulLiteral","src":"103:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"106:4:97","nodeType":"YulLiteral","src":"106:4:97","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"96:6:97","nodeType":"YulIdentifier","src":"96:6:97"},"nativeSrc":"96:15:97","nodeType":"YulFunctionCall","src":"96:15:97"},"nativeSrc":"96:15:97","nodeType":"YulExpressionStatement","src":"96:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"127:1:97","nodeType":"YulLiteral","src":"127:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"130:4:97","nodeType":"YulLiteral","src":"130:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"120:6:97","nodeType":"YulIdentifier","src":"120:6:97"},"nativeSrc":"120:15:97","nodeType":"YulFunctionCall","src":"120:15:97"},"nativeSrc":"120:15:97","nodeType":"YulExpressionStatement","src":"120:15:97"}]},"name":"panic_error_0x41","nativeSrc":"14:127:97","nodeType":"YulFunctionDefinition","src":"14:127:97"},{"body":{"nativeSrc":"212:184:97","nodeType":"YulBlock","src":"212:184:97","statements":[{"nativeSrc":"222:10:97","nodeType":"YulVariableDeclaration","src":"222:10:97","value":{"kind":"number","nativeSrc":"231:1:97","nodeType":"YulLiteral","src":"231:1:97","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"226:1:97","nodeType":"YulTypedName","src":"226:1:97","type":""}]},{"body":{"nativeSrc":"291:63:97","nodeType":"YulBlock","src":"291:63:97","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"316:3:97","nodeType":"YulIdentifier","src":"316:3:97"},{"name":"i","nativeSrc":"321:1:97","nodeType":"YulIdentifier","src":"321:1:97"}],"functionName":{"name":"add","nativeSrc":"312:3:97","nodeType":"YulIdentifier","src":"312:3:97"},"nativeSrc":"312:11:97","nodeType":"YulFunctionCall","src":"312:11:97"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"335:3:97","nodeType":"YulIdentifier","src":"335:3:97"},{"name":"i","nativeSrc":"340:1:97","nodeType":"YulIdentifier","src":"340:1:97"}],"functionName":{"name":"add","nativeSrc":"331:3:97","nodeType":"YulIdentifier","src":"331:3:97"},"nativeSrc":"331:11:97","nodeType":"YulFunctionCall","src":"331:11:97"}],"functionName":{"name":"mload","nativeSrc":"325:5:97","nodeType":"YulIdentifier","src":"325:5:97"},"nativeSrc":"325:18:97","nodeType":"YulFunctionCall","src":"325:18:97"}],"functionName":{"name":"mstore","nativeSrc":"305:6:97","nodeType":"YulIdentifier","src":"305:6:97"},"nativeSrc":"305:39:97","nodeType":"YulFunctionCall","src":"305:39:97"},"nativeSrc":"305:39:97","nodeType":"YulExpressionStatement","src":"305:39:97"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"252:1:97","nodeType":"YulIdentifier","src":"252:1:97"},{"name":"length","nativeSrc":"255:6:97","nodeType":"YulIdentifier","src":"255:6:97"}],"functionName":{"name":"lt","nativeSrc":"249:2:97","nodeType":"YulIdentifier","src":"249:2:97"},"nativeSrc":"249:13:97","nodeType":"YulFunctionCall","src":"249:13:97"},"nativeSrc":"241:113:97","nodeType":"YulForLoop","post":{"nativeSrc":"263:19:97","nodeType":"YulBlock","src":"263:19:97","statements":[{"nativeSrc":"265:15:97","nodeType":"YulAssignment","src":"265:15:97","value":{"arguments":[{"name":"i","nativeSrc":"274:1:97","nodeType":"YulIdentifier","src":"274:1:97"},{"kind":"number","nativeSrc":"277:2:97","nodeType":"YulLiteral","src":"277:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"270:3:97","nodeType":"YulIdentifier","src":"270:3:97"},"nativeSrc":"270:10:97","nodeType":"YulFunctionCall","src":"270:10:97"},"variableNames":[{"name":"i","nativeSrc":"265:1:97","nodeType":"YulIdentifier","src":"265:1:97"}]}]},"pre":{"nativeSrc":"245:3:97","nodeType":"YulBlock","src":"245:3:97","statements":[]},"src":"241:113:97"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"374:3:97","nodeType":"YulIdentifier","src":"374:3:97"},{"name":"length","nativeSrc":"379:6:97","nodeType":"YulIdentifier","src":"379:6:97"}],"functionName":{"name":"add","nativeSrc":"370:3:97","nodeType":"YulIdentifier","src":"370:3:97"},"nativeSrc":"370:16:97","nodeType":"YulFunctionCall","src":"370:16:97"},{"kind":"number","nativeSrc":"388:1:97","nodeType":"YulLiteral","src":"388:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"363:6:97","nodeType":"YulIdentifier","src":"363:6:97"},"nativeSrc":"363:27:97","nodeType":"YulFunctionCall","src":"363:27:97"},"nativeSrc":"363:27:97","nodeType":"YulExpressionStatement","src":"363:27:97"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"146:250:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"190:3:97","nodeType":"YulTypedName","src":"190:3:97","type":""},{"name":"dst","nativeSrc":"195:3:97","nodeType":"YulTypedName","src":"195:3:97","type":""},{"name":"length","nativeSrc":"200:6:97","nodeType":"YulTypedName","src":"200:6:97","type":""}],"src":"146:250:97"},{"body":{"nativeSrc":"508:956:97","nodeType":"YulBlock","src":"508:956:97","statements":[{"body":{"nativeSrc":"554:16:97","nodeType":"YulBlock","src":"554:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"563:1:97","nodeType":"YulLiteral","src":"563:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"566:1:97","nodeType":"YulLiteral","src":"566:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"556:6:97","nodeType":"YulIdentifier","src":"556:6:97"},"nativeSrc":"556:12:97","nodeType":"YulFunctionCall","src":"556:12:97"},"nativeSrc":"556:12:97","nodeType":"YulExpressionStatement","src":"556:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"529:7:97","nodeType":"YulIdentifier","src":"529:7:97"},{"name":"headStart","nativeSrc":"538:9:97","nodeType":"YulIdentifier","src":"538:9:97"}],"functionName":{"name":"sub","nativeSrc":"525:3:97","nodeType":"YulIdentifier","src":"525:3:97"},"nativeSrc":"525:23:97","nodeType":"YulFunctionCall","src":"525:23:97"},{"kind":"number","nativeSrc":"550:2:97","nodeType":"YulLiteral","src":"550:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"521:3:97","nodeType":"YulIdentifier","src":"521:3:97"},"nativeSrc":"521:32:97","nodeType":"YulFunctionCall","src":"521:32:97"},"nativeSrc":"518:52:97","nodeType":"YulIf","src":"518:52:97"},{"nativeSrc":"579:29:97","nodeType":"YulVariableDeclaration","src":"579:29:97","value":{"arguments":[{"name":"headStart","nativeSrc":"598:9:97","nodeType":"YulIdentifier","src":"598:9:97"}],"functionName":{"name":"mload","nativeSrc":"592:5:97","nodeType":"YulIdentifier","src":"592:5:97"},"nativeSrc":"592:16:97","nodeType":"YulFunctionCall","src":"592:16:97"},"variables":[{"name":"value","nativeSrc":"583:5:97","nodeType":"YulTypedName","src":"583:5:97","type":""}]},{"body":{"nativeSrc":"671:16:97","nodeType":"YulBlock","src":"671:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"680:1:97","nodeType":"YulLiteral","src":"680:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"683:1:97","nodeType":"YulLiteral","src":"683:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"673:6:97","nodeType":"YulIdentifier","src":"673:6:97"},"nativeSrc":"673:12:97","nodeType":"YulFunctionCall","src":"673:12:97"},"nativeSrc":"673:12:97","nodeType":"YulExpressionStatement","src":"673:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"630:5:97","nodeType":"YulIdentifier","src":"630:5:97"},{"arguments":[{"name":"value","nativeSrc":"641:5:97","nodeType":"YulIdentifier","src":"641:5:97"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"656:3:97","nodeType":"YulLiteral","src":"656:3:97","type":"","value":"160"},{"kind":"number","nativeSrc":"661:1:97","nodeType":"YulLiteral","src":"661:1:97","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"652:3:97","nodeType":"YulIdentifier","src":"652:3:97"},"nativeSrc":"652:11:97","nodeType":"YulFunctionCall","src":"652:11:97"},{"kind":"number","nativeSrc":"665:1:97","nodeType":"YulLiteral","src":"665:1:97","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"648:3:97","nodeType":"YulIdentifier","src":"648:3:97"},"nativeSrc":"648:19:97","nodeType":"YulFunctionCall","src":"648:19:97"}],"functionName":{"name":"and","nativeSrc":"637:3:97","nodeType":"YulIdentifier","src":"637:3:97"},"nativeSrc":"637:31:97","nodeType":"YulFunctionCall","src":"637:31:97"}],"functionName":{"name":"eq","nativeSrc":"627:2:97","nodeType":"YulIdentifier","src":"627:2:97"},"nativeSrc":"627:42:97","nodeType":"YulFunctionCall","src":"627:42:97"}],"functionName":{"name":"iszero","nativeSrc":"620:6:97","nodeType":"YulIdentifier","src":"620:6:97"},"nativeSrc":"620:50:97","nodeType":"YulFunctionCall","src":"620:50:97"},"nativeSrc":"617:70:97","nodeType":"YulIf","src":"617:70:97"},{"nativeSrc":"696:15:97","nodeType":"YulAssignment","src":"696:15:97","value":{"name":"value","nativeSrc":"706:5:97","nodeType":"YulIdentifier","src":"706:5:97"},"variableNames":[{"name":"value0","nativeSrc":"696:6:97","nodeType":"YulIdentifier","src":"696:6:97"}]},{"nativeSrc":"720:39:97","nodeType":"YulVariableDeclaration","src":"720:39:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"744:9:97","nodeType":"YulIdentifier","src":"744:9:97"},{"kind":"number","nativeSrc":"755:2:97","nodeType":"YulLiteral","src":"755:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"740:3:97","nodeType":"YulIdentifier","src":"740:3:97"},"nativeSrc":"740:18:97","nodeType":"YulFunctionCall","src":"740:18:97"}],"functionName":{"name":"mload","nativeSrc":"734:5:97","nodeType":"YulIdentifier","src":"734:5:97"},"nativeSrc":"734:25:97","nodeType":"YulFunctionCall","src":"734:25:97"},"variables":[{"name":"offset","nativeSrc":"724:6:97","nodeType":"YulTypedName","src":"724:6:97","type":""}]},{"nativeSrc":"768:28:97","nodeType":"YulVariableDeclaration","src":"768:28:97","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"786:2:97","nodeType":"YulLiteral","src":"786:2:97","type":"","value":"64"},{"kind":"number","nativeSrc":"790:1:97","nodeType":"YulLiteral","src":"790:1:97","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"782:3:97","nodeType":"YulIdentifier","src":"782:3:97"},"nativeSrc":"782:10:97","nodeType":"YulFunctionCall","src":"782:10:97"},{"kind":"number","nativeSrc":"794:1:97","nodeType":"YulLiteral","src":"794:1:97","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"778:3:97","nodeType":"YulIdentifier","src":"778:3:97"},"nativeSrc":"778:18:97","nodeType":"YulFunctionCall","src":"778:18:97"},"variables":[{"name":"_1","nativeSrc":"772:2:97","nodeType":"YulTypedName","src":"772:2:97","type":""}]},{"body":{"nativeSrc":"823:16:97","nodeType":"YulBlock","src":"823:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"832:1:97","nodeType":"YulLiteral","src":"832:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"835:1:97","nodeType":"YulLiteral","src":"835:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"825:6:97","nodeType":"YulIdentifier","src":"825:6:97"},"nativeSrc":"825:12:97","nodeType":"YulFunctionCall","src":"825:12:97"},"nativeSrc":"825:12:97","nodeType":"YulExpressionStatement","src":"825:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"811:6:97","nodeType":"YulIdentifier","src":"811:6:97"},{"name":"_1","nativeSrc":"819:2:97","nodeType":"YulIdentifier","src":"819:2:97"}],"functionName":{"name":"gt","nativeSrc":"808:2:97","nodeType":"YulIdentifier","src":"808:2:97"},"nativeSrc":"808:14:97","nodeType":"YulFunctionCall","src":"808:14:97"},"nativeSrc":"805:34:97","nodeType":"YulIf","src":"805:34:97"},{"nativeSrc":"848:32:97","nodeType":"YulVariableDeclaration","src":"848:32:97","value":{"arguments":[{"name":"headStart","nativeSrc":"862:9:97","nodeType":"YulIdentifier","src":"862:9:97"},{"name":"offset","nativeSrc":"873:6:97","nodeType":"YulIdentifier","src":"873:6:97"}],"functionName":{"name":"add","nativeSrc":"858:3:97","nodeType":"YulIdentifier","src":"858:3:97"},"nativeSrc":"858:22:97","nodeType":"YulFunctionCall","src":"858:22:97"},"variables":[{"name":"_2","nativeSrc":"852:2:97","nodeType":"YulTypedName","src":"852:2:97","type":""}]},{"body":{"nativeSrc":"928:16:97","nodeType":"YulBlock","src":"928:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"937:1:97","nodeType":"YulLiteral","src":"937:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"940:1:97","nodeType":"YulLiteral","src":"940:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"930:6:97","nodeType":"YulIdentifier","src":"930:6:97"},"nativeSrc":"930:12:97","nodeType":"YulFunctionCall","src":"930:12:97"},"nativeSrc":"930:12:97","nodeType":"YulExpressionStatement","src":"930:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"907:2:97","nodeType":"YulIdentifier","src":"907:2:97"},{"kind":"number","nativeSrc":"911:4:97","nodeType":"YulLiteral","src":"911:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"903:3:97","nodeType":"YulIdentifier","src":"903:3:97"},"nativeSrc":"903:13:97","nodeType":"YulFunctionCall","src":"903:13:97"},{"name":"dataEnd","nativeSrc":"918:7:97","nodeType":"YulIdentifier","src":"918:7:97"}],"functionName":{"name":"slt","nativeSrc":"899:3:97","nodeType":"YulIdentifier","src":"899:3:97"},"nativeSrc":"899:27:97","nodeType":"YulFunctionCall","src":"899:27:97"}],"functionName":{"name":"iszero","nativeSrc":"892:6:97","nodeType":"YulIdentifier","src":"892:6:97"},"nativeSrc":"892:35:97","nodeType":"YulFunctionCall","src":"892:35:97"},"nativeSrc":"889:55:97","nodeType":"YulIf","src":"889:55:97"},{"nativeSrc":"953:19:97","nodeType":"YulVariableDeclaration","src":"953:19:97","value":{"arguments":[{"name":"_2","nativeSrc":"969:2:97","nodeType":"YulIdentifier","src":"969:2:97"}],"functionName":{"name":"mload","nativeSrc":"963:5:97","nodeType":"YulIdentifier","src":"963:5:97"},"nativeSrc":"963:9:97","nodeType":"YulFunctionCall","src":"963:9:97"},"variables":[{"name":"_3","nativeSrc":"957:2:97","nodeType":"YulTypedName","src":"957:2:97","type":""}]},{"body":{"nativeSrc":"995:22:97","nodeType":"YulBlock","src":"995:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"997:16:97","nodeType":"YulIdentifier","src":"997:16:97"},"nativeSrc":"997:18:97","nodeType":"YulFunctionCall","src":"997:18:97"},"nativeSrc":"997:18:97","nodeType":"YulExpressionStatement","src":"997:18:97"}]},"condition":{"arguments":[{"name":"_3","nativeSrc":"987:2:97","nodeType":"YulIdentifier","src":"987:2:97"},{"name":"_1","nativeSrc":"991:2:97","nodeType":"YulIdentifier","src":"991:2:97"}],"functionName":{"name":"gt","nativeSrc":"984:2:97","nodeType":"YulIdentifier","src":"984:2:97"},"nativeSrc":"984:10:97","nodeType":"YulFunctionCall","src":"984:10:97"},"nativeSrc":"981:36:97","nodeType":"YulIf","src":"981:36:97"},{"nativeSrc":"1026:17:97","nodeType":"YulVariableDeclaration","src":"1026:17:97","value":{"arguments":[{"kind":"number","nativeSrc":"1040:2:97","nodeType":"YulLiteral","src":"1040:2:97","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"1036:3:97","nodeType":"YulIdentifier","src":"1036:3:97"},"nativeSrc":"1036:7:97","nodeType":"YulFunctionCall","src":"1036:7:97"},"variables":[{"name":"_4","nativeSrc":"1030:2:97","nodeType":"YulTypedName","src":"1030:2:97","type":""}]},{"nativeSrc":"1052:23:97","nodeType":"YulVariableDeclaration","src":"1052:23:97","value":{"arguments":[{"kind":"number","nativeSrc":"1072:2:97","nodeType":"YulLiteral","src":"1072:2:97","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1066:5:97","nodeType":"YulIdentifier","src":"1066:5:97"},"nativeSrc":"1066:9:97","nodeType":"YulFunctionCall","src":"1066:9:97"},"variables":[{"name":"memPtr","nativeSrc":"1056:6:97","nodeType":"YulTypedName","src":"1056:6:97","type":""}]},{"nativeSrc":"1084:71:97","nodeType":"YulVariableDeclaration","src":"1084:71:97","value":{"arguments":[{"name":"memPtr","nativeSrc":"1106:6:97","nodeType":"YulIdentifier","src":"1106:6:97"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nativeSrc":"1130:2:97","nodeType":"YulIdentifier","src":"1130:2:97"},{"kind":"number","nativeSrc":"1134:4:97","nodeType":"YulLiteral","src":"1134:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"1126:3:97","nodeType":"YulIdentifier","src":"1126:3:97"},"nativeSrc":"1126:13:97","nodeType":"YulFunctionCall","src":"1126:13:97"},{"name":"_4","nativeSrc":"1141:2:97","nodeType":"YulIdentifier","src":"1141:2:97"}],"functionName":{"name":"and","nativeSrc":"1122:3:97","nodeType":"YulIdentifier","src":"1122:3:97"},"nativeSrc":"1122:22:97","nodeType":"YulFunctionCall","src":"1122:22:97"},{"kind":"number","nativeSrc":"1146:2:97","nodeType":"YulLiteral","src":"1146:2:97","type":"","value":"63"}],"functionName":{"name":"add","nativeSrc":"1118:3:97","nodeType":"YulIdentifier","src":"1118:3:97"},"nativeSrc":"1118:31:97","nodeType":"YulFunctionCall","src":"1118:31:97"},{"name":"_4","nativeSrc":"1151:2:97","nodeType":"YulIdentifier","src":"1151:2:97"}],"functionName":{"name":"and","nativeSrc":"1114:3:97","nodeType":"YulIdentifier","src":"1114:3:97"},"nativeSrc":"1114:40:97","nodeType":"YulFunctionCall","src":"1114:40:97"}],"functionName":{"name":"add","nativeSrc":"1102:3:97","nodeType":"YulIdentifier","src":"1102:3:97"},"nativeSrc":"1102:53:97","nodeType":"YulFunctionCall","src":"1102:53:97"},"variables":[{"name":"newFreePtr","nativeSrc":"1088:10:97","nodeType":"YulTypedName","src":"1088:10:97","type":""}]},{"body":{"nativeSrc":"1214:22:97","nodeType":"YulBlock","src":"1214:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1216:16:97","nodeType":"YulIdentifier","src":"1216:16:97"},"nativeSrc":"1216:18:97","nodeType":"YulFunctionCall","src":"1216:18:97"},"nativeSrc":"1216:18:97","nodeType":"YulExpressionStatement","src":"1216:18:97"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1173:10:97","nodeType":"YulIdentifier","src":"1173:10:97"},{"name":"_1","nativeSrc":"1185:2:97","nodeType":"YulIdentifier","src":"1185:2:97"}],"functionName":{"name":"gt","nativeSrc":"1170:2:97","nodeType":"YulIdentifier","src":"1170:2:97"},"nativeSrc":"1170:18:97","nodeType":"YulFunctionCall","src":"1170:18:97"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1193:10:97","nodeType":"YulIdentifier","src":"1193:10:97"},{"name":"memPtr","nativeSrc":"1205:6:97","nodeType":"YulIdentifier","src":"1205:6:97"}],"functionName":{"name":"lt","nativeSrc":"1190:2:97","nodeType":"YulIdentifier","src":"1190:2:97"},"nativeSrc":"1190:22:97","nodeType":"YulFunctionCall","src":"1190:22:97"}],"functionName":{"name":"or","nativeSrc":"1167:2:97","nodeType":"YulIdentifier","src":"1167:2:97"},"nativeSrc":"1167:46:97","nodeType":"YulFunctionCall","src":"1167:46:97"},"nativeSrc":"1164:72:97","nodeType":"YulIf","src":"1164:72:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1252:2:97","nodeType":"YulLiteral","src":"1252:2:97","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1256:10:97","nodeType":"YulIdentifier","src":"1256:10:97"}],"functionName":{"name":"mstore","nativeSrc":"1245:6:97","nodeType":"YulIdentifier","src":"1245:6:97"},"nativeSrc":"1245:22:97","nodeType":"YulFunctionCall","src":"1245:22:97"},"nativeSrc":"1245:22:97","nodeType":"YulExpressionStatement","src":"1245:22:97"},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"1283:6:97","nodeType":"YulIdentifier","src":"1283:6:97"},{"name":"_3","nativeSrc":"1291:2:97","nodeType":"YulIdentifier","src":"1291:2:97"}],"functionName":{"name":"mstore","nativeSrc":"1276:6:97","nodeType":"YulIdentifier","src":"1276:6:97"},"nativeSrc":"1276:18:97","nodeType":"YulFunctionCall","src":"1276:18:97"},"nativeSrc":"1276:18:97","nodeType":"YulExpressionStatement","src":"1276:18:97"},{"body":{"nativeSrc":"1340:16:97","nodeType":"YulBlock","src":"1340:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1349:1:97","nodeType":"YulLiteral","src":"1349:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1352:1:97","nodeType":"YulLiteral","src":"1352:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1342:6:97","nodeType":"YulIdentifier","src":"1342:6:97"},"nativeSrc":"1342:12:97","nodeType":"YulFunctionCall","src":"1342:12:97"},"nativeSrc":"1342:12:97","nodeType":"YulExpressionStatement","src":"1342:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"1317:2:97","nodeType":"YulIdentifier","src":"1317:2:97"},{"name":"_3","nativeSrc":"1321:2:97","nodeType":"YulIdentifier","src":"1321:2:97"}],"functionName":{"name":"add","nativeSrc":"1313:3:97","nodeType":"YulIdentifier","src":"1313:3:97"},"nativeSrc":"1313:11:97","nodeType":"YulFunctionCall","src":"1313:11:97"},{"kind":"number","nativeSrc":"1326:2:97","nodeType":"YulLiteral","src":"1326:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1309:3:97","nodeType":"YulIdentifier","src":"1309:3:97"},"nativeSrc":"1309:20:97","nodeType":"YulFunctionCall","src":"1309:20:97"},{"name":"dataEnd","nativeSrc":"1331:7:97","nodeType":"YulIdentifier","src":"1331:7:97"}],"functionName":{"name":"gt","nativeSrc":"1306:2:97","nodeType":"YulIdentifier","src":"1306:2:97"},"nativeSrc":"1306:33:97","nodeType":"YulFunctionCall","src":"1306:33:97"},"nativeSrc":"1303:53:97","nodeType":"YulIf","src":"1303:53:97"},{"expression":{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"1404:2:97","nodeType":"YulIdentifier","src":"1404:2:97"},{"kind":"number","nativeSrc":"1408:2:97","nodeType":"YulLiteral","src":"1408:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1400:3:97","nodeType":"YulIdentifier","src":"1400:3:97"},"nativeSrc":"1400:11:97","nodeType":"YulFunctionCall","src":"1400:11:97"},{"arguments":[{"name":"memPtr","nativeSrc":"1417:6:97","nodeType":"YulIdentifier","src":"1417:6:97"},{"kind":"number","nativeSrc":"1425:2:97","nodeType":"YulLiteral","src":"1425:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1413:3:97","nodeType":"YulIdentifier","src":"1413:3:97"},"nativeSrc":"1413:15:97","nodeType":"YulFunctionCall","src":"1413:15:97"},{"name":"_3","nativeSrc":"1430:2:97","nodeType":"YulIdentifier","src":"1430:2:97"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"1365:34:97","nodeType":"YulIdentifier","src":"1365:34:97"},"nativeSrc":"1365:68:97","nodeType":"YulFunctionCall","src":"1365:68:97"},"nativeSrc":"1365:68:97","nodeType":"YulExpressionStatement","src":"1365:68:97"},{"nativeSrc":"1442:16:97","nodeType":"YulAssignment","src":"1442:16:97","value":{"name":"memPtr","nativeSrc":"1452:6:97","nodeType":"YulIdentifier","src":"1452:6:97"},"variableNames":[{"name":"value1","nativeSrc":"1442:6:97","nodeType":"YulIdentifier","src":"1442:6:97"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory","nativeSrc":"401:1063:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"466:9:97","nodeType":"YulTypedName","src":"466:9:97","type":""},{"name":"dataEnd","nativeSrc":"477:7:97","nodeType":"YulTypedName","src":"477:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"489:6:97","nodeType":"YulTypedName","src":"489:6:97","type":""},{"name":"value1","nativeSrc":"497:6:97","nodeType":"YulTypedName","src":"497:6:97","type":""}],"src":"401:1063:97"},{"body":{"nativeSrc":"1518:176:97","nodeType":"YulBlock","src":"1518:176:97","statements":[{"nativeSrc":"1528:17:97","nodeType":"YulAssignment","src":"1528:17:97","value":{"arguments":[{"name":"x","nativeSrc":"1540:1:97","nodeType":"YulIdentifier","src":"1540:1:97"},{"name":"y","nativeSrc":"1543:1:97","nodeType":"YulIdentifier","src":"1543:1:97"}],"functionName":{"name":"sub","nativeSrc":"1536:3:97","nodeType":"YulIdentifier","src":"1536:3:97"},"nativeSrc":"1536:9:97","nodeType":"YulFunctionCall","src":"1536:9:97"},"variableNames":[{"name":"diff","nativeSrc":"1528:4:97","nodeType":"YulIdentifier","src":"1528:4:97"}]},{"body":{"nativeSrc":"1577:111:97","nodeType":"YulBlock","src":"1577:111:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1598:1:97","nodeType":"YulLiteral","src":"1598:1:97","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"1605:3:97","nodeType":"YulLiteral","src":"1605:3:97","type":"","value":"224"},{"kind":"number","nativeSrc":"1610:10:97","nodeType":"YulLiteral","src":"1610:10:97","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"1601:3:97","nodeType":"YulIdentifier","src":"1601:3:97"},"nativeSrc":"1601:20:97","nodeType":"YulFunctionCall","src":"1601:20:97"}],"functionName":{"name":"mstore","nativeSrc":"1591:6:97","nodeType":"YulIdentifier","src":"1591:6:97"},"nativeSrc":"1591:31:97","nodeType":"YulFunctionCall","src":"1591:31:97"},"nativeSrc":"1591:31:97","nodeType":"YulExpressionStatement","src":"1591:31:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1642:1:97","nodeType":"YulLiteral","src":"1642:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"1645:4:97","nodeType":"YulLiteral","src":"1645:4:97","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"1635:6:97","nodeType":"YulIdentifier","src":"1635:6:97"},"nativeSrc":"1635:15:97","nodeType":"YulFunctionCall","src":"1635:15:97"},"nativeSrc":"1635:15:97","nodeType":"YulExpressionStatement","src":"1635:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1670:1:97","nodeType":"YulLiteral","src":"1670:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1673:4:97","nodeType":"YulLiteral","src":"1673:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1663:6:97","nodeType":"YulIdentifier","src":"1663:6:97"},"nativeSrc":"1663:15:97","nodeType":"YulFunctionCall","src":"1663:15:97"},"nativeSrc":"1663:15:97","nodeType":"YulExpressionStatement","src":"1663:15:97"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"1560:4:97","nodeType":"YulIdentifier","src":"1560:4:97"},{"name":"x","nativeSrc":"1566:1:97","nodeType":"YulIdentifier","src":"1566:1:97"}],"functionName":{"name":"gt","nativeSrc":"1557:2:97","nodeType":"YulIdentifier","src":"1557:2:97"},"nativeSrc":"1557:11:97","nodeType":"YulFunctionCall","src":"1557:11:97"},"nativeSrc":"1554:134:97","nodeType":"YulIf","src":"1554:134:97"}]},"name":"checked_sub_t_uint256","nativeSrc":"1469:225:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"1500:1:97","nodeType":"YulTypedName","src":"1500:1:97","type":""},{"name":"y","nativeSrc":"1503:1:97","nodeType":"YulTypedName","src":"1503:1:97","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"1509:4:97","nodeType":"YulTypedName","src":"1509:4:97","type":""}],"src":"1469:225:97"},{"body":{"nativeSrc":"1731:95:97","nodeType":"YulBlock","src":"1731:95:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1748:1:97","nodeType":"YulLiteral","src":"1748:1:97","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"1755:3:97","nodeType":"YulLiteral","src":"1755:3:97","type":"","value":"224"},{"kind":"number","nativeSrc":"1760:10:97","nodeType":"YulLiteral","src":"1760:10:97","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"1751:3:97","nodeType":"YulIdentifier","src":"1751:3:97"},"nativeSrc":"1751:20:97","nodeType":"YulFunctionCall","src":"1751:20:97"}],"functionName":{"name":"mstore","nativeSrc":"1741:6:97","nodeType":"YulIdentifier","src":"1741:6:97"},"nativeSrc":"1741:31:97","nodeType":"YulFunctionCall","src":"1741:31:97"},"nativeSrc":"1741:31:97","nodeType":"YulExpressionStatement","src":"1741:31:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1788:1:97","nodeType":"YulLiteral","src":"1788:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"1791:4:97","nodeType":"YulLiteral","src":"1791:4:97","type":"","value":"0x01"}],"functionName":{"name":"mstore","nativeSrc":"1781:6:97","nodeType":"YulIdentifier","src":"1781:6:97"},"nativeSrc":"1781:15:97","nodeType":"YulFunctionCall","src":"1781:15:97"},"nativeSrc":"1781:15:97","nodeType":"YulExpressionStatement","src":"1781:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1812:1:97","nodeType":"YulLiteral","src":"1812:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1815:4:97","nodeType":"YulLiteral","src":"1815:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1805:6:97","nodeType":"YulIdentifier","src":"1805:6:97"},"nativeSrc":"1805:15:97","nodeType":"YulFunctionCall","src":"1805:15:97"},"nativeSrc":"1805:15:97","nodeType":"YulExpressionStatement","src":"1805:15:97"}]},"name":"panic_error_0x01","nativeSrc":"1699:127:97","nodeType":"YulFunctionDefinition","src":"1699:127:97"},{"body":{"nativeSrc":"2005:235:97","nodeType":"YulBlock","src":"2005:235:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2022:9:97","nodeType":"YulIdentifier","src":"2022:9:97"},{"kind":"number","nativeSrc":"2033:2:97","nodeType":"YulLiteral","src":"2033:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"2015:6:97","nodeType":"YulIdentifier","src":"2015:6:97"},"nativeSrc":"2015:21:97","nodeType":"YulFunctionCall","src":"2015:21:97"},"nativeSrc":"2015:21:97","nodeType":"YulExpressionStatement","src":"2015:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2056:9:97","nodeType":"YulIdentifier","src":"2056:9:97"},{"kind":"number","nativeSrc":"2067:2:97","nodeType":"YulLiteral","src":"2067:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2052:3:97","nodeType":"YulIdentifier","src":"2052:3:97"},"nativeSrc":"2052:18:97","nodeType":"YulFunctionCall","src":"2052:18:97"},{"kind":"number","nativeSrc":"2072:2:97","nodeType":"YulLiteral","src":"2072:2:97","type":"","value":"45"}],"functionName":{"name":"mstore","nativeSrc":"2045:6:97","nodeType":"YulIdentifier","src":"2045:6:97"},"nativeSrc":"2045:30:97","nodeType":"YulFunctionCall","src":"2045:30:97"},"nativeSrc":"2045:30:97","nodeType":"YulExpressionStatement","src":"2045:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2095:9:97","nodeType":"YulIdentifier","src":"2095:9:97"},{"kind":"number","nativeSrc":"2106:2:97","nodeType":"YulLiteral","src":"2106:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2091:3:97","nodeType":"YulIdentifier","src":"2091:3:97"},"nativeSrc":"2091:18:97","nodeType":"YulFunctionCall","src":"2091:18:97"},{"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e","kind":"string","nativeSrc":"2111:34:97","nodeType":"YulLiteral","src":"2111:34:97","type":"","value":"ERC1967: new implementation is n"}],"functionName":{"name":"mstore","nativeSrc":"2084:6:97","nodeType":"YulIdentifier","src":"2084:6:97"},"nativeSrc":"2084:62:97","nodeType":"YulFunctionCall","src":"2084:62:97"},"nativeSrc":"2084:62:97","nodeType":"YulExpressionStatement","src":"2084:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2166:9:97","nodeType":"YulIdentifier","src":"2166:9:97"},{"kind":"number","nativeSrc":"2177:2:97","nodeType":"YulLiteral","src":"2177:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2162:3:97","nodeType":"YulIdentifier","src":"2162:3:97"},"nativeSrc":"2162:18:97","nodeType":"YulFunctionCall","src":"2162:18:97"},{"hexValue":"6f74206120636f6e7472616374","kind":"string","nativeSrc":"2182:15:97","nodeType":"YulLiteral","src":"2182:15:97","type":"","value":"ot a contract"}],"functionName":{"name":"mstore","nativeSrc":"2155:6:97","nodeType":"YulIdentifier","src":"2155:6:97"},"nativeSrc":"2155:43:97","nodeType":"YulFunctionCall","src":"2155:43:97"},"nativeSrc":"2155:43:97","nodeType":"YulExpressionStatement","src":"2155:43:97"},{"nativeSrc":"2207:27:97","nodeType":"YulAssignment","src":"2207:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2219:9:97","nodeType":"YulIdentifier","src":"2219:9:97"},{"kind":"number","nativeSrc":"2230:3:97","nodeType":"YulLiteral","src":"2230:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"2215:3:97","nodeType":"YulIdentifier","src":"2215:3:97"},"nativeSrc":"2215:19:97","nodeType":"YulFunctionCall","src":"2215:19:97"},"variableNames":[{"name":"tail","nativeSrc":"2207:4:97","nodeType":"YulIdentifier","src":"2207:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"1831:409:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1982:9:97","nodeType":"YulTypedName","src":"1982:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1996:4:97","nodeType":"YulTypedName","src":"1996:4:97","type":""}],"src":"1831:409:97"},{"body":{"nativeSrc":"2419:228:97","nodeType":"YulBlock","src":"2419:228:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2436:9:97","nodeType":"YulIdentifier","src":"2436:9:97"},{"kind":"number","nativeSrc":"2447:2:97","nodeType":"YulLiteral","src":"2447:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"2429:6:97","nodeType":"YulIdentifier","src":"2429:6:97"},"nativeSrc":"2429:21:97","nodeType":"YulFunctionCall","src":"2429:21:97"},"nativeSrc":"2429:21:97","nodeType":"YulExpressionStatement","src":"2429:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2470:9:97","nodeType":"YulIdentifier","src":"2470:9:97"},{"kind":"number","nativeSrc":"2481:2:97","nodeType":"YulLiteral","src":"2481:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2466:3:97","nodeType":"YulIdentifier","src":"2466:3:97"},"nativeSrc":"2466:18:97","nodeType":"YulFunctionCall","src":"2466:18:97"},{"kind":"number","nativeSrc":"2486:2:97","nodeType":"YulLiteral","src":"2486:2:97","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"2459:6:97","nodeType":"YulIdentifier","src":"2459:6:97"},"nativeSrc":"2459:30:97","nodeType":"YulFunctionCall","src":"2459:30:97"},"nativeSrc":"2459:30:97","nodeType":"YulExpressionStatement","src":"2459:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2509:9:97","nodeType":"YulIdentifier","src":"2509:9:97"},{"kind":"number","nativeSrc":"2520:2:97","nodeType":"YulLiteral","src":"2520:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2505:3:97","nodeType":"YulIdentifier","src":"2505:3:97"},"nativeSrc":"2505:18:97","nodeType":"YulFunctionCall","src":"2505:18:97"},{"hexValue":"416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f","kind":"string","nativeSrc":"2525:34:97","nodeType":"YulLiteral","src":"2525:34:97","type":"","value":"Address: delegate call to non-co"}],"functionName":{"name":"mstore","nativeSrc":"2498:6:97","nodeType":"YulIdentifier","src":"2498:6:97"},"nativeSrc":"2498:62:97","nodeType":"YulFunctionCall","src":"2498:62:97"},"nativeSrc":"2498:62:97","nodeType":"YulExpressionStatement","src":"2498:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2580:9:97","nodeType":"YulIdentifier","src":"2580:9:97"},{"kind":"number","nativeSrc":"2591:2:97","nodeType":"YulLiteral","src":"2591:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2576:3:97","nodeType":"YulIdentifier","src":"2576:3:97"},"nativeSrc":"2576:18:97","nodeType":"YulFunctionCall","src":"2576:18:97"},{"hexValue":"6e7472616374","kind":"string","nativeSrc":"2596:8:97","nodeType":"YulLiteral","src":"2596:8:97","type":"","value":"ntract"}],"functionName":{"name":"mstore","nativeSrc":"2569:6:97","nodeType":"YulIdentifier","src":"2569:6:97"},"nativeSrc":"2569:36:97","nodeType":"YulFunctionCall","src":"2569:36:97"},"nativeSrc":"2569:36:97","nodeType":"YulExpressionStatement","src":"2569:36:97"},{"nativeSrc":"2614:27:97","nodeType":"YulAssignment","src":"2614:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2626:9:97","nodeType":"YulIdentifier","src":"2626:9:97"},{"kind":"number","nativeSrc":"2637:3:97","nodeType":"YulLiteral","src":"2637:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"2622:3:97","nodeType":"YulIdentifier","src":"2622:3:97"},"nativeSrc":"2622:19:97","nodeType":"YulFunctionCall","src":"2622:19:97"},"variableNames":[{"name":"tail","nativeSrc":"2614:4:97","nodeType":"YulIdentifier","src":"2614:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2245:402:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2396:9:97","nodeType":"YulTypedName","src":"2396:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2410:4:97","nodeType":"YulTypedName","src":"2410:4:97","type":""}],"src":"2245:402:97"},{"body":{"nativeSrc":"2789:150:97","nodeType":"YulBlock","src":"2789:150:97","statements":[{"nativeSrc":"2799:27:97","nodeType":"YulVariableDeclaration","src":"2799:27:97","value":{"arguments":[{"name":"value0","nativeSrc":"2819:6:97","nodeType":"YulIdentifier","src":"2819:6:97"}],"functionName":{"name":"mload","nativeSrc":"2813:5:97","nodeType":"YulIdentifier","src":"2813:5:97"},"nativeSrc":"2813:13:97","nodeType":"YulFunctionCall","src":"2813:13:97"},"variables":[{"name":"length","nativeSrc":"2803:6:97","nodeType":"YulTypedName","src":"2803:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"2874:6:97","nodeType":"YulIdentifier","src":"2874:6:97"},{"kind":"number","nativeSrc":"2882:4:97","nodeType":"YulLiteral","src":"2882:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2870:3:97","nodeType":"YulIdentifier","src":"2870:3:97"},"nativeSrc":"2870:17:97","nodeType":"YulFunctionCall","src":"2870:17:97"},{"name":"pos","nativeSrc":"2889:3:97","nodeType":"YulIdentifier","src":"2889:3:97"},{"name":"length","nativeSrc":"2894:6:97","nodeType":"YulIdentifier","src":"2894:6:97"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2835:34:97","nodeType":"YulIdentifier","src":"2835:34:97"},"nativeSrc":"2835:66:97","nodeType":"YulFunctionCall","src":"2835:66:97"},"nativeSrc":"2835:66:97","nodeType":"YulExpressionStatement","src":"2835:66:97"},{"nativeSrc":"2910:23:97","nodeType":"YulAssignment","src":"2910:23:97","value":{"arguments":[{"name":"pos","nativeSrc":"2921:3:97","nodeType":"YulIdentifier","src":"2921:3:97"},{"name":"length","nativeSrc":"2926:6:97","nodeType":"YulIdentifier","src":"2926:6:97"}],"functionName":{"name":"add","nativeSrc":"2917:3:97","nodeType":"YulIdentifier","src":"2917:3:97"},"nativeSrc":"2917:16:97","nodeType":"YulFunctionCall","src":"2917:16:97"},"variableNames":[{"name":"end","nativeSrc":"2910:3:97","nodeType":"YulIdentifier","src":"2910:3:97"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"2652:287:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"2765:3:97","nodeType":"YulTypedName","src":"2765:3:97","type":""},{"name":"value0","nativeSrc":"2770:6:97","nodeType":"YulTypedName","src":"2770:6:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"2781:3:97","nodeType":"YulTypedName","src":"2781:3:97","type":""}],"src":"2652:287:97"},{"body":{"nativeSrc":"3065:275:97","nodeType":"YulBlock","src":"3065:275:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3082:9:97","nodeType":"YulIdentifier","src":"3082:9:97"},{"kind":"number","nativeSrc":"3093:2:97","nodeType":"YulLiteral","src":"3093:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"3075:6:97","nodeType":"YulIdentifier","src":"3075:6:97"},"nativeSrc":"3075:21:97","nodeType":"YulFunctionCall","src":"3075:21:97"},"nativeSrc":"3075:21:97","nodeType":"YulExpressionStatement","src":"3075:21:97"},{"nativeSrc":"3105:27:97","nodeType":"YulVariableDeclaration","src":"3105:27:97","value":{"arguments":[{"name":"value0","nativeSrc":"3125:6:97","nodeType":"YulIdentifier","src":"3125:6:97"}],"functionName":{"name":"mload","nativeSrc":"3119:5:97","nodeType":"YulIdentifier","src":"3119:5:97"},"nativeSrc":"3119:13:97","nodeType":"YulFunctionCall","src":"3119:13:97"},"variables":[{"name":"length","nativeSrc":"3109:6:97","nodeType":"YulTypedName","src":"3109:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3152:9:97","nodeType":"YulIdentifier","src":"3152:9:97"},{"kind":"number","nativeSrc":"3163:2:97","nodeType":"YulLiteral","src":"3163:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3148:3:97","nodeType":"YulIdentifier","src":"3148:3:97"},"nativeSrc":"3148:18:97","nodeType":"YulFunctionCall","src":"3148:18:97"},{"name":"length","nativeSrc":"3168:6:97","nodeType":"YulIdentifier","src":"3168:6:97"}],"functionName":{"name":"mstore","nativeSrc":"3141:6:97","nodeType":"YulIdentifier","src":"3141:6:97"},"nativeSrc":"3141:34:97","nodeType":"YulFunctionCall","src":"3141:34:97"},"nativeSrc":"3141:34:97","nodeType":"YulExpressionStatement","src":"3141:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"3223:6:97","nodeType":"YulIdentifier","src":"3223:6:97"},{"kind":"number","nativeSrc":"3231:2:97","nodeType":"YulLiteral","src":"3231:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3219:3:97","nodeType":"YulIdentifier","src":"3219:3:97"},"nativeSrc":"3219:15:97","nodeType":"YulFunctionCall","src":"3219:15:97"},{"arguments":[{"name":"headStart","nativeSrc":"3240:9:97","nodeType":"YulIdentifier","src":"3240:9:97"},{"kind":"number","nativeSrc":"3251:2:97","nodeType":"YulLiteral","src":"3251:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3236:3:97","nodeType":"YulIdentifier","src":"3236:3:97"},"nativeSrc":"3236:18:97","nodeType":"YulFunctionCall","src":"3236:18:97"},{"name":"length","nativeSrc":"3256:6:97","nodeType":"YulIdentifier","src":"3256:6:97"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"3184:34:97","nodeType":"YulIdentifier","src":"3184:34:97"},"nativeSrc":"3184:79:97","nodeType":"YulFunctionCall","src":"3184:79:97"},"nativeSrc":"3184:79:97","nodeType":"YulExpressionStatement","src":"3184:79:97"},{"nativeSrc":"3272:62:97","nodeType":"YulAssignment","src":"3272:62:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3288:9:97","nodeType":"YulIdentifier","src":"3288:9:97"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"3307:6:97","nodeType":"YulIdentifier","src":"3307:6:97"},{"kind":"number","nativeSrc":"3315:2:97","nodeType":"YulLiteral","src":"3315:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"3303:3:97","nodeType":"YulIdentifier","src":"3303:3:97"},"nativeSrc":"3303:15:97","nodeType":"YulFunctionCall","src":"3303:15:97"},{"arguments":[{"kind":"number","nativeSrc":"3324:2:97","nodeType":"YulLiteral","src":"3324:2:97","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"3320:3:97","nodeType":"YulIdentifier","src":"3320:3:97"},"nativeSrc":"3320:7:97","nodeType":"YulFunctionCall","src":"3320:7:97"}],"functionName":{"name":"and","nativeSrc":"3299:3:97","nodeType":"YulIdentifier","src":"3299:3:97"},"nativeSrc":"3299:29:97","nodeType":"YulFunctionCall","src":"3299:29:97"}],"functionName":{"name":"add","nativeSrc":"3284:3:97","nodeType":"YulIdentifier","src":"3284:3:97"},"nativeSrc":"3284:45:97","nodeType":"YulFunctionCall","src":"3284:45:97"},{"kind":"number","nativeSrc":"3331:2:97","nodeType":"YulLiteral","src":"3331:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3280:3:97","nodeType":"YulIdentifier","src":"3280:3:97"},"nativeSrc":"3280:54:97","nodeType":"YulFunctionCall","src":"3280:54:97"},"variableNames":[{"name":"tail","nativeSrc":"3272:4:97","nodeType":"YulIdentifier","src":"3272:4:97"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2944:396:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3034:9:97","nodeType":"YulTypedName","src":"3034:9:97","type":""},{"name":"value0","nativeSrc":"3045:6:97","nodeType":"YulTypedName","src":"3045:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3056:4:97","nodeType":"YulTypedName","src":"3056:4:97","type":""}],"src":"2944:396:97"}]},"contents":"{\n    { }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function copy_memory_to_memory_with_cleanup(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n    }\n    function abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n        value0 := value\n        let offset := mload(add(headStart, 32))\n        let _1 := sub(shl(64, 1), 1)\n        if gt(offset, _1) { revert(0, 0) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n        let _3 := mload(_2)\n        if gt(_3, _1) { panic_error_0x41() }\n        let _4 := not(31)\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(_3, 0x1f), _4), 63), _4))\n        if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, _3)\n        if gt(add(add(_2, _3), 32), dataEnd) { revert(0, 0) }\n        copy_memory_to_memory_with_cleanup(add(_2, 32), add(memPtr, 32), _3)\n        value1 := memPtr\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        if gt(diff, x)\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x11)\n            revert(0, 0x24)\n        }\n    }\n    function panic_error_0x01()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x01)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 45)\n        mstore(add(headStart, 64), \"ERC1967: new implementation is n\")\n        mstore(add(headStart, 96), \"ot a contract\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Address: delegate call to non-co\")\n        mstore(add(headStart, 96), \"ntract\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n        end := add(pos, length)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        copy_memory_to_memory_with_cleanup(add(value0, 32), add(headStart, 64), length)\n        tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n    }\n}","id":97,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040526040516105713803806105718339810160408190526100229161030a565b61004d60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd6103d8565b60008051602061052a83398151915214610069576100696103f9565b6100758282600061007c565b505061045e565b610085836100a8565b6000825111806100925750805b156100a3576100a183836100e8565b505b505050565b6100b181610116565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061010d838360405180606001604052806027815260200161054a602791396101b7565b90505b92915050565b6001600160a01b0381163b6101885760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b60008051602061052a83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b60606001600160a01b0384163b61021f5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b606482015260840161017f565b600080856001600160a01b03168560405161023a919061040f565b600060405180830381855af49150503d8060008114610275576040519150601f19603f3d011682016040523d82523d6000602084013e61027a565b606091505b50909250905061028b828286610297565b925050505b9392505050565b606083156102a6575081610290565b8251156102b65782518084602001fd5b8160405162461bcd60e51b815260040161017f919061042b565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103015781810151838201526020016102e9565b50506000910152565b6000806040838503121561031d57600080fd5b82516001600160a01b038116811461033457600080fd5b60208401519092506001600160401b038082111561035157600080fd5b818501915085601f83011261036557600080fd5b815181811115610377576103776102d0565b604051601f8201601f19908116603f0116810190838211818310171561039f5761039f6102d0565b816040528281528860208487010111156103b857600080fd5b6103c98360208301602088016102e6565b80955050505050509250929050565b8181038181111561011057634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052600160045260246000fd5b600082516104218184602087016102e6565b9190910192915050565b602081526000825180602084015261044a8160408501602087016102e6565b601f01601f19169190910160400192915050565b60be8061046c6000396000f3fe608060405236601057600e6013565b005b600e5b601f601b6021565b6065565b565b600060607f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b905090565b3660008037600080366000845af43d6000803e8080156083573d6000f35b3d6000fdfea26469706673582212204df0c27b360d5c000cb1883ae22ee805a20471309d9131e69d6d67f9e66210ec64736f6c63430008190033360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x571 CODESIZE SUB DUP1 PUSH2 0x571 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x22 SWAP2 PUSH2 0x30A JUMP JUMPDEST PUSH2 0x4D PUSH1 0x1 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBD PUSH2 0x3D8 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52A DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x69 JUMPI PUSH2 0x69 PUSH2 0x3F9 JUMP JUMPDEST PUSH2 0x75 DUP3 DUP3 PUSH1 0x0 PUSH2 0x7C JUMP JUMPDEST POP POP PUSH2 0x45E JUMP JUMPDEST PUSH2 0x85 DUP4 PUSH2 0xA8 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT DUP1 PUSH2 0x92 JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0xA3 JUMPI PUSH2 0xA1 DUP4 DUP4 PUSH2 0xE8 JUMP JUMPDEST POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xB1 DUP2 PUSH2 0x116 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x10D DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x54A PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x1B7 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x188 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52A DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE PUSH2 0x21F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x17F JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x23A SWAP2 SWAP1 PUSH2 0x40F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x275 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x27A JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x28B DUP3 DUP3 DUP7 PUSH2 0x297 JUMP JUMPDEST SWAP3 POP POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x2A6 JUMPI POP DUP2 PUSH2 0x290 JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x2B6 JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x17F SWAP2 SWAP1 PUSH2 0x42B JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x301 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2E9 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x31D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x334 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x351 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x365 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP2 DUP2 GT ISZERO PUSH2 0x377 JUMPI PUSH2 0x377 PUSH2 0x2D0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x39F JUMPI PUSH2 0x39F PUSH2 0x2D0 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP9 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x3B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3C9 DUP4 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x2E6 JUMP JUMPDEST DUP1 SWAP6 POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x110 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x421 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x2E6 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x44A DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xBE DUP1 PUSH2 0x46C PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLDATASIZE PUSH1 0x10 JUMPI PUSH1 0xE PUSH1 0x13 JUMP JUMPDEST STOP JUMPDEST PUSH1 0xE JUMPDEST PUSH1 0x1F PUSH1 0x1B PUSH1 0x21 JUMP JUMPDEST PUSH1 0x65 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH1 0x83 JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4D CREATE 0xC2 PUSH28 0x360D5C000CB1883AE22EE805A20471309D9131E69D6D67F9E66210EC PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER CALLDATASIZE ADDMOD SWAP5 LOG1 EXTCODESIZE LOG1 LOG3 0x21 MOD PUSH8 0xC828492DB98DCA3E KECCAK256 PUSH23 0xCC3735A920A3CA505D382BBC416464726573733A206C6F PUSH24 0x2D6C6576656C2064656C65676174652063616C6C20666169 PUSH13 0x65640000000000000000000000 ","sourceMap":"552:830:86:-:0;;;945:217;;;;;;;;;;;;;;;;;;:::i;:::-;1050:54;1103:1;1058:41;1050:54;:::i;:::-;-1:-1:-1;;;;;;;;;;;1018:87:86;1011:95;;;;:::i;:::-;1116:39;1134:6;1142:5;1149;1116:17;:39::i;:::-;945:217;;552:830;;2188:295:87;2326:29;2337:17;2326:10;:29::i;:::-;2383:1;2369:4;:11;:15;:28;;;;2388:9;2369:28;2365:112;;;2413:53;2442:17;2461:4;2413:28;:53::i;:::-;;2365:112;2188:295;;;:::o;1902:152::-;1968:37;1987:17;1968:18;:37::i;:::-;2020:27;;-1:-1:-1;;;;;2020:27:87;;;;;;;;1902:152;:::o;6575:198:92:-;6658:12;6689:77;6710:6;6718:4;6689:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6682:84;;6575:198;;;;;:::o;1537:259:87:-;-1:-1:-1;;;;;1470:19:92;;;1610:95:87;;;;-1:-1:-1;;;1610:95:87;;2033:2:97;1610:95:87;;;2015:21:97;2072:2;2052:18;;;2045:30;2111:34;2091:18;;;2084:62;-1:-1:-1;;;2162:18:97;;;2155:43;2215:19;;1610:95:87;;;;;;;;;-1:-1:-1;;;;;;;;;;;1715:74:87;;-1:-1:-1;;;;;;1715:74:87;-1:-1:-1;;;;;1715:74:87;;;;;;;;;;1537:259::o;6959:387:92:-;7100:12;-1:-1:-1;;;;;1470:19:92;;;7124:69;;;;-1:-1:-1;;;7124:69:92;;2447:2:97;7124:69:92;;;2429:21:97;2486:2;2466:18;;;2459:30;2525:34;2505:18;;;2498:62;-1:-1:-1;;;2576:18:97;;;2569:36;2622:19;;7124:69:92;2245:402:97;7124:69:92;7205:12;7219:23;7246:6;-1:-1:-1;;;;;7246:19:92;7266:4;7246:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7204:67:92;;-1:-1:-1;7204:67:92;-1:-1:-1;7288:51:92;7204:67;;7326:12;7288:16;:51::i;:::-;7281:58;;;;6959:387;;;;;;:::o;7566:692::-;7712:12;7740:7;7736:516;;;-1:-1:-1;7770:10:92;7763:17;;7736:516;7881:17;;:21;7877:365;;8075:10;8069:17;8135:15;8122:10;8118:2;8114:19;8107:44;7877:365;8214:12;8207:20;;-1:-1:-1;;;8207:20:92;;;;;;;;:::i;14:127:97:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:250;231:1;241:113;255:6;252:1;249:13;241:113;;;331:11;;;325:18;312:11;;;305:39;277:2;270:10;241:113;;;-1:-1:-1;;388:1:97;370:16;;363:27;146:250::o;401:1063::-;489:6;497;550:2;538:9;529:7;525:23;521:32;518:52;;;566:1;563;556:12;518:52;592:16;;-1:-1:-1;;;;;637:31:97;;627:42;;617:70;;683:1;680;673:12;617:70;755:2;740:18;;734:25;706:5;;-1:-1:-1;;;;;;808:14:97;;;805:34;;;835:1;832;825:12;805:34;873:6;862:9;858:22;848:32;;918:7;911:4;907:2;903:13;899:27;889:55;;940:1;937;930:12;889:55;969:2;963:9;991:2;987;984:10;981:36;;;997:18;;:::i;:::-;1072:2;1066:9;1040:2;1126:13;;-1:-1:-1;;1122:22:97;;;1146:2;1118:31;1114:40;1102:53;;;1170:18;;;1190:22;;;1167:46;1164:72;;;1216:18;;:::i;:::-;1256:10;1252:2;1245:22;1291:2;1283:6;1276:18;1331:7;1326:2;1321;1317;1313:11;1309:20;1306:33;1303:53;;;1352:1;1349;1342:12;1303:53;1365:68;1430:2;1425;1417:6;1413:15;1408:2;1404;1400:11;1365:68;:::i;:::-;1452:6;1442:16;;;;;;;401:1063;;;;;:::o;1469:225::-;1536:9;;;1557:11;;;1554:134;;;1610:10;1605:3;1601:20;1598:1;1591:31;1645:4;1642:1;1635:15;1673:4;1670:1;1663:15;1699:127;1760:10;1755:3;1751:20;1748:1;1741:31;1791:4;1788:1;1781:15;1815:4;1812:1;1805:15;2652:287;2781:3;2819:6;2813:13;2835:66;2894:6;2889:3;2882:4;2874:6;2870:17;2835:66;:::i;:::-;2917:16;;;;;2652:287;-1:-1:-1;;2652:287:97:o;2944:396::-;3093:2;3082:9;3075:21;3056:4;3125:6;3119:13;3168:6;3163:2;3152:9;3148:18;3141:34;3184:79;3256:6;3251:2;3240:9;3236:18;3231:2;3223:6;3219:15;3184:79;:::i;:::-;3324:2;3303:15;-1:-1:-1;;3299:29:97;3284:45;;;;3331:2;3280:54;;2944:396;-1:-1:-1;;2944:396:97:o;:::-;552:830:86;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_21820":{"entryPoint":null,"id":21820,"parameterSlots":0,"returnSlots":0},"@_21828":{"entryPoint":null,"id":21828,"parameterSlots":0,"returnSlots":0},"@_beforeFallback_21833":{"entryPoint":null,"id":21833,"parameterSlots":0,"returnSlots":0},"@_delegate_21793":{"entryPoint":101,"id":21793,"parameterSlots":1,"returnSlots":0},"@_fallback_21812":{"entryPoint":19,"id":21812,"parameterSlots":0,"returnSlots":0},"@_getImplementation_21496":{"entryPoint":null,"id":21496,"parameterSlots":0,"returnSlots":1},"@_implementation_21463":{"entryPoint":33,"id":21463,"parameterSlots":0,"returnSlots":1},"@getAddressSlot_22496":{"entryPoint":null,"id":22496,"parameterSlots":1,"returnSlots":1}},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"608060405236601057600e6013565b005b600e5b601f601b6021565b6065565b565b600060607f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b905090565b3660008037600080366000845af43d6000803e8080156083573d6000f35b3d6000fdfea26469706673582212204df0c27b360d5c000cb1883ae22ee805a20471309d9131e69d6d67f9e66210ec64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLDATASIZE PUSH1 0x10 JUMPI PUSH1 0xE PUSH1 0x13 JUMP JUMPDEST STOP JUMPDEST PUSH1 0xE JUMPDEST PUSH1 0x1F PUSH1 0x1B PUSH1 0x21 JUMP JUMPDEST PUSH1 0x65 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH1 0x83 JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4D CREATE 0xC2 PUSH28 0x360D5C000CB1883AE22EE805A20471309D9131E69D6D67F9E66210EC PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"552:830:86:-:0;;;;;;2903:11:88;:9;:11::i;:::-;552:830:86;;2680:11:88;2327:110;2402:28;2412:17;:15;:17::i;:::-;2402:9;:28::i;:::-;2327:110::o;1240:140:86:-;1307:12;1338:35;1035:66:87;1385:54;;;;1306:140;1338:35:86;1331:42;;1240:140;:::o;953:895:88:-;1291:14;1288:1;1285;1272:34;1505:1;1502;1486:14;1483:1;1467:14;1460:5;1447:60;1581:16;1578:1;1575;1560:38;1619:6;1686:66;;;;1801:16;1798:1;1791:27;1686:66;1721:16;1718:1;1711:27"},"gasEstimates":{"creation":{"codeDepositCost":"38000","executionCost":"infinite","totalCost":"infinite"},"external":{"":"infinite"},"internal":{"_implementation()":"2144"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_logic\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an implementation address that can be changed. This address is stored in storage in the location specified by https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the implementation behind the proxy.\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is upgraded.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the upgradeable proxy with an initial implementation specified by `_logic`. If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded function call, and allows initializating the storage of the proxy like a Solidity constructor.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol\":\"ERC1967Proxy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (interfaces/draft-IERC1822.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified\\n * proxy whose upgrades are fully controlled by the current implementation.\\n */\\ninterface IERC1822Proxiable {\\n    /**\\n     * @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation\\n     * address.\\n     *\\n     * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\\n     * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\\n     * function revert if invoked through a proxy.\\n     */\\n    function proxiableUUID() external view returns (bytes32);\\n}\\n\",\"keccak256\":\"0x93b4e21c931252739a1ec13ea31d3d35a5c068be3163ccab83e4d70c40355f03\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/ERC1967/ERC1967Proxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../Proxy.sol\\\";\\nimport \\\"./ERC1967Upgrade.sol\\\";\\n\\n/**\\n * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\\n * implementation address that can be changed. This address is stored in storage in the location specified by\\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the\\n * implementation behind the proxy.\\n */\\ncontract ERC1967Proxy is Proxy, ERC1967Upgrade {\\n    /**\\n     * @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`.\\n     *\\n     * If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded\\n     * function call, and allows initializating the storage of the proxy like a Solidity constructor.\\n     */\\n    constructor(address _logic, bytes memory _data) payable {\\n        assert(_IMPLEMENTATION_SLOT == bytes32(uint256(keccak256(\\\"eip1967.proxy.implementation\\\")) - 1));\\n        _upgradeToAndCall(_logic, _data, false);\\n    }\\n\\n    /**\\n     * @dev Returns the current implementation address.\\n     */\\n    function _implementation() internal view virtual override returns (address impl) {\\n        return ERC1967Upgrade._getImplementation();\\n    }\\n}\\n\",\"keccak256\":\"0x6309f9f39dc6f4f45a24f296543867aa358e32946cd6b2874627a996d606b3a0\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (proxy/ERC1967/ERC1967Upgrade.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../beacon/IBeacon.sol\\\";\\nimport \\\"../../interfaces/draft-IERC1822.sol\\\";\\nimport \\\"../../utils/Address.sol\\\";\\nimport \\\"../../utils/StorageSlot.sol\\\";\\n\\n/**\\n * @dev This abstract contract provides getters and event emitting update functions for\\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.\\n *\\n * _Available since v4.1._\\n *\\n * @custom:oz-upgrades-unsafe-allow delegatecall\\n */\\nabstract contract ERC1967Upgrade {\\n    // This is the keccak-256 hash of \\\"eip1967.proxy.rollback\\\" subtracted by 1\\n    bytes32 private constant _ROLLBACK_SLOT = 0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143;\\n\\n    /**\\n     * @dev Storage slot with the address of the current implementation.\\n     * This is the keccak-256 hash of \\\"eip1967.proxy.implementation\\\" subtracted by 1, and is\\n     * validated in the constructor.\\n     */\\n    bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\\n\\n    /**\\n     * @dev Emitted when the implementation is upgraded.\\n     */\\n    event Upgraded(address indexed implementation);\\n\\n    /**\\n     * @dev Returns the current implementation address.\\n     */\\n    function _getImplementation() internal view returns (address) {\\n        return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\\n    }\\n\\n    /**\\n     * @dev Stores a new address in the EIP1967 implementation slot.\\n     */\\n    function _setImplementation(address newImplementation) private {\\n        require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");\\n        StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\\n    }\\n\\n    /**\\n     * @dev Perform implementation upgrade\\n     *\\n     * Emits an {Upgraded} event.\\n     */\\n    function _upgradeTo(address newImplementation) internal {\\n        _setImplementation(newImplementation);\\n        emit Upgraded(newImplementation);\\n    }\\n\\n    /**\\n     * @dev Perform implementation upgrade with additional setup call.\\n     *\\n     * Emits an {Upgraded} event.\\n     */\\n    function _upgradeToAndCall(\\n        address newImplementation,\\n        bytes memory data,\\n        bool forceCall\\n    ) internal {\\n        _upgradeTo(newImplementation);\\n        if (data.length > 0 || forceCall) {\\n            Address.functionDelegateCall(newImplementation, data);\\n        }\\n    }\\n\\n    /**\\n     * @dev Perform implementation upgrade with security checks for UUPS proxies, and additional setup call.\\n     *\\n     * Emits an {Upgraded} event.\\n     */\\n    function _upgradeToAndCallUUPS(\\n        address newImplementation,\\n        bytes memory data,\\n        bool forceCall\\n    ) internal {\\n        // Upgrades from old implementations will perform a rollback test. This test requires the new\\n        // implementation to upgrade back to the old, non-ERC1822 compliant, implementation. Removing\\n        // this special case will break upgrade paths from old UUPS implementation to new ones.\\n        if (StorageSlot.getBooleanSlot(_ROLLBACK_SLOT).value) {\\n            _setImplementation(newImplementation);\\n        } else {\\n            try IERC1822Proxiable(newImplementation).proxiableUUID() returns (bytes32 slot) {\\n                require(slot == _IMPLEMENTATION_SLOT, \\\"ERC1967Upgrade: unsupported proxiableUUID\\\");\\n            } catch {\\n                revert(\\\"ERC1967Upgrade: new implementation is not UUPS\\\");\\n            }\\n            _upgradeToAndCall(newImplementation, data, forceCall);\\n        }\\n    }\\n\\n    /**\\n     * @dev Storage slot with the admin of the contract.\\n     * This is the keccak-256 hash of \\\"eip1967.proxy.admin\\\" subtracted by 1, and is\\n     * validated in the constructor.\\n     */\\n    bytes32 internal constant _ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;\\n\\n    /**\\n     * @dev Emitted when the admin account has changed.\\n     */\\n    event AdminChanged(address previousAdmin, address newAdmin);\\n\\n    /**\\n     * @dev Returns the current admin.\\n     */\\n    function _getAdmin() internal view virtual returns (address) {\\n        return StorageSlot.getAddressSlot(_ADMIN_SLOT).value;\\n    }\\n\\n    /**\\n     * @dev Stores a new address in the EIP1967 admin slot.\\n     */\\n    function _setAdmin(address newAdmin) private {\\n        require(newAdmin != address(0), \\\"ERC1967: new admin is the zero address\\\");\\n        StorageSlot.getAddressSlot(_ADMIN_SLOT).value = newAdmin;\\n    }\\n\\n    /**\\n     * @dev Changes the admin of the proxy.\\n     *\\n     * Emits an {AdminChanged} event.\\n     */\\n    function _changeAdmin(address newAdmin) internal {\\n        emit AdminChanged(_getAdmin(), newAdmin);\\n        _setAdmin(newAdmin);\\n    }\\n\\n    /**\\n     * @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\\n     * This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor.\\n     */\\n    bytes32 internal constant _BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50;\\n\\n    /**\\n     * @dev Emitted when the beacon is upgraded.\\n     */\\n    event BeaconUpgraded(address indexed beacon);\\n\\n    /**\\n     * @dev Returns the current beacon.\\n     */\\n    function _getBeacon() internal view returns (address) {\\n        return StorageSlot.getAddressSlot(_BEACON_SLOT).value;\\n    }\\n\\n    /**\\n     * @dev Stores a new beacon in the EIP1967 beacon slot.\\n     */\\n    function _setBeacon(address newBeacon) private {\\n        require(Address.isContract(newBeacon), \\\"ERC1967: new beacon is not a contract\\\");\\n        require(Address.isContract(IBeacon(newBeacon).implementation()), \\\"ERC1967: beacon implementation is not a contract\\\");\\n        StorageSlot.getAddressSlot(_BEACON_SLOT).value = newBeacon;\\n    }\\n\\n    /**\\n     * @dev Perform beacon upgrade with additional setup call. Note: This upgrades the address of the beacon, it does\\n     * not upgrade the implementation contained in the beacon (see {UpgradeableBeacon-_setImplementation} for that).\\n     *\\n     * Emits a {BeaconUpgraded} event.\\n     */\\n    function _upgradeBeaconToAndCall(\\n        address newBeacon,\\n        bytes memory data,\\n        bool forceCall\\n    ) internal {\\n        _setBeacon(newBeacon);\\n        emit BeaconUpgraded(newBeacon);\\n        if (data.length > 0 || forceCall) {\\n            Address.functionDelegateCall(IBeacon(newBeacon).implementation(), data);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x17668652127feebed0ce8d9431ef95ccc8c4292f03e3b8cf06c6ca16af396633\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (proxy/Proxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM\\n * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to\\n * be specified by overriding the virtual {_implementation} function.\\n *\\n * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a\\n * different contract through the {_delegate} function.\\n *\\n * The success and return data of the delegated call will be returned back to the caller of the proxy.\\n */\\nabstract contract Proxy {\\n    /**\\n     * @dev Delegates the current call to `implementation`.\\n     *\\n     * This function does not return to its internal call site, it will return directly to the external caller.\\n     */\\n    function _delegate(address implementation) internal virtual {\\n        assembly {\\n            // Copy msg.data. We take full control of memory in this inline assembly\\n            // block because it will not return to Solidity code. We overwrite the\\n            // Solidity scratch pad at memory position 0.\\n            calldatacopy(0, 0, calldatasize())\\n\\n            // Call the implementation.\\n            // out and outsize are 0 because we don't know the size yet.\\n            let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)\\n\\n            // Copy the returned data.\\n            returndatacopy(0, 0, returndatasize())\\n\\n            switch result\\n            // delegatecall returns 0 on error.\\n            case 0 {\\n                revert(0, returndatasize())\\n            }\\n            default {\\n                return(0, returndatasize())\\n            }\\n        }\\n    }\\n\\n    /**\\n     * @dev This is a virtual function that should be overriden so it returns the address to which the fallback function\\n     * and {_fallback} should delegate.\\n     */\\n    function _implementation() internal view virtual returns (address);\\n\\n    /**\\n     * @dev Delegates the current call to the address returned by `_implementation()`.\\n     *\\n     * This function does not return to its internall call site, it will return directly to the external caller.\\n     */\\n    function _fallback() internal virtual {\\n        _beforeFallback();\\n        _delegate(_implementation());\\n    }\\n\\n    /**\\n     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other\\n     * function in the contract matches the call data.\\n     */\\n    fallback() external payable virtual {\\n        _fallback();\\n    }\\n\\n    /**\\n     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data\\n     * is empty.\\n     */\\n    receive() external payable virtual {\\n        _fallback();\\n    }\\n\\n    /**\\n     * @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback`\\n     * call, or as part of the Solidity `fallback` or `receive` functions.\\n     *\\n     * If overriden should call `super._beforeFallback()`.\\n     */\\n    function _beforeFallback() internal virtual {}\\n}\\n\",\"keccak256\":\"0xd5d1fd16e9faff7fcb3a52e02a8d49156f42a38a03f07b5f1810c21c2149a8ab\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/beacon/IBeacon.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev This is the interface that {BeaconProxy} expects of its beacon.\\n */\\ninterface IBeacon {\\n    /**\\n     * @dev Must return an address that can be used as a delegate call target.\\n     *\\n     * {BeaconProxy} will check that this address is a contract.\\n     */\\n    function implementation() external view returns (address);\\n}\\n\",\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary Address {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCall(target, data, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        require(isContract(target), \\\"Address: call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        require(isContract(target), \\\"Address: static call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(isContract(target), \\\"Address: delegate call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.delegatecall(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            // Look for revert reason and bubble it up if present\\n            if (returndata.length > 0) {\\n                // The easiest way to bubble the revert reason is using memory via assembly\\n\\n                assembly {\\n                    let returndata_size := mload(returndata)\\n                    revert(add(32, returndata), returndata_size)\\n                }\\n            } else {\\n                revert(errorMessage);\\n            }\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x3777e696b62134e6177440dbe6e6601c0c156a443f57167194b67e75527439de\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/StorageSlot.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Library for reading and writing primitive types to specific storage slots.\\n *\\n * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\\n * This library helps with reading and writing to such slots without the need for inline assembly.\\n *\\n * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\\n *\\n * Example usage to set ERC1967 implementation slot:\\n * ```\\n * contract ERC1967 {\\n *     bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\\n *\\n *     function _getImplementation() internal view returns (address) {\\n *         return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\\n *     }\\n *\\n *     function _setImplementation(address newImplementation) internal {\\n *         require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");\\n *         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\\n *     }\\n * }\\n * ```\\n *\\n * _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._\\n */\\nlibrary StorageSlot {\\n    struct AddressSlot {\\n        address value;\\n    }\\n\\n    struct BooleanSlot {\\n        bool value;\\n    }\\n\\n    struct Bytes32Slot {\\n        bytes32 value;\\n    }\\n\\n    struct Uint256Slot {\\n        uint256 value;\\n    }\\n\\n    /**\\n     * @dev Returns an `AddressSlot` with member `value` located at `slot`.\\n     */\\n    function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `BooleanSlot` with member `value` located at `slot`.\\n     */\\n    function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `Bytes32Slot` with member `value` located at `slot`.\\n     */\\n    function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `Uint256Slot` with member `value` located at `slot`.\\n     */\\n    function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xfe1b7a9aa2a530a9e705b220e26cd584e2fbdc9602a3a1066032b12816b46aca\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol":{"ERC1967Upgrade":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"}],"devdoc":{"custom:oz-upgrades-unsafe-allow":"delegatecall","details":"This abstract contract provides getters and event emitting update functions for https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots. _Available since v4.1._","events":{"AdminChanged(address,address)":{"details":"Emitted when the admin account has changed."},"BeaconUpgraded(address)":{"details":"Emitted when the beacon is upgraded."},"Upgraded(address)":{"details":"Emitted when the implementation is upgraded."}},"kind":"dev","methods":{},"stateVariables":{"_ADMIN_SLOT":{"details":"Storage slot with the admin of the contract. This is the keccak-256 hash of \"eip1967.proxy.admin\" subtracted by 1, and is validated in the constructor."},"_BEACON_SLOT":{"details":"The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy. This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor."},"_IMPLEMENTATION_SLOT":{"details":"Storage slot with the address of the current implementation. This is the keccak-256 hash of \"eip1967.proxy.implementation\" subtracted by 1, and is validated in the constructor."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"}],\"devdoc\":{\"custom:oz-upgrades-unsafe-allow\":\"delegatecall\",\"details\":\"This abstract contract provides getters and event emitting update functions for https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots. _Available since v4.1._\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is upgraded.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"_ADMIN_SLOT\":{\"details\":\"Storage slot with the admin of the contract. This is the keccak-256 hash of \\\"eip1967.proxy.admin\\\" subtracted by 1, and is validated in the constructor.\"},\"_BEACON_SLOT\":{\"details\":\"The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy. This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor.\"},\"_IMPLEMENTATION_SLOT\":{\"details\":\"Storage slot with the address of the current implementation. This is the keccak-256 hash of \\\"eip1967.proxy.implementation\\\" subtracted by 1, and is validated in the constructor.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol\":\"ERC1967Upgrade\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (interfaces/draft-IERC1822.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified\\n * proxy whose upgrades are fully controlled by the current implementation.\\n */\\ninterface IERC1822Proxiable {\\n    /**\\n     * @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation\\n     * address.\\n     *\\n     * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\\n     * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\\n     * function revert if invoked through a proxy.\\n     */\\n    function proxiableUUID() external view returns (bytes32);\\n}\\n\",\"keccak256\":\"0x93b4e21c931252739a1ec13ea31d3d35a5c068be3163ccab83e4d70c40355f03\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (proxy/ERC1967/ERC1967Upgrade.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../beacon/IBeacon.sol\\\";\\nimport \\\"../../interfaces/draft-IERC1822.sol\\\";\\nimport \\\"../../utils/Address.sol\\\";\\nimport \\\"../../utils/StorageSlot.sol\\\";\\n\\n/**\\n * @dev This abstract contract provides getters and event emitting update functions for\\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.\\n *\\n * _Available since v4.1._\\n *\\n * @custom:oz-upgrades-unsafe-allow delegatecall\\n */\\nabstract contract ERC1967Upgrade {\\n    // This is the keccak-256 hash of \\\"eip1967.proxy.rollback\\\" subtracted by 1\\n    bytes32 private constant _ROLLBACK_SLOT = 0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143;\\n\\n    /**\\n     * @dev Storage slot with the address of the current implementation.\\n     * This is the keccak-256 hash of \\\"eip1967.proxy.implementation\\\" subtracted by 1, and is\\n     * validated in the constructor.\\n     */\\n    bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\\n\\n    /**\\n     * @dev Emitted when the implementation is upgraded.\\n     */\\n    event Upgraded(address indexed implementation);\\n\\n    /**\\n     * @dev Returns the current implementation address.\\n     */\\n    function _getImplementation() internal view returns (address) {\\n        return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\\n    }\\n\\n    /**\\n     * @dev Stores a new address in the EIP1967 implementation slot.\\n     */\\n    function _setImplementation(address newImplementation) private {\\n        require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");\\n        StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\\n    }\\n\\n    /**\\n     * @dev Perform implementation upgrade\\n     *\\n     * Emits an {Upgraded} event.\\n     */\\n    function _upgradeTo(address newImplementation) internal {\\n        _setImplementation(newImplementation);\\n        emit Upgraded(newImplementation);\\n    }\\n\\n    /**\\n     * @dev Perform implementation upgrade with additional setup call.\\n     *\\n     * Emits an {Upgraded} event.\\n     */\\n    function _upgradeToAndCall(\\n        address newImplementation,\\n        bytes memory data,\\n        bool forceCall\\n    ) internal {\\n        _upgradeTo(newImplementation);\\n        if (data.length > 0 || forceCall) {\\n            Address.functionDelegateCall(newImplementation, data);\\n        }\\n    }\\n\\n    /**\\n     * @dev Perform implementation upgrade with security checks for UUPS proxies, and additional setup call.\\n     *\\n     * Emits an {Upgraded} event.\\n     */\\n    function _upgradeToAndCallUUPS(\\n        address newImplementation,\\n        bytes memory data,\\n        bool forceCall\\n    ) internal {\\n        // Upgrades from old implementations will perform a rollback test. This test requires the new\\n        // implementation to upgrade back to the old, non-ERC1822 compliant, implementation. Removing\\n        // this special case will break upgrade paths from old UUPS implementation to new ones.\\n        if (StorageSlot.getBooleanSlot(_ROLLBACK_SLOT).value) {\\n            _setImplementation(newImplementation);\\n        } else {\\n            try IERC1822Proxiable(newImplementation).proxiableUUID() returns (bytes32 slot) {\\n                require(slot == _IMPLEMENTATION_SLOT, \\\"ERC1967Upgrade: unsupported proxiableUUID\\\");\\n            } catch {\\n                revert(\\\"ERC1967Upgrade: new implementation is not UUPS\\\");\\n            }\\n            _upgradeToAndCall(newImplementation, data, forceCall);\\n        }\\n    }\\n\\n    /**\\n     * @dev Storage slot with the admin of the contract.\\n     * This is the keccak-256 hash of \\\"eip1967.proxy.admin\\\" subtracted by 1, and is\\n     * validated in the constructor.\\n     */\\n    bytes32 internal constant _ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;\\n\\n    /**\\n     * @dev Emitted when the admin account has changed.\\n     */\\n    event AdminChanged(address previousAdmin, address newAdmin);\\n\\n    /**\\n     * @dev Returns the current admin.\\n     */\\n    function _getAdmin() internal view virtual returns (address) {\\n        return StorageSlot.getAddressSlot(_ADMIN_SLOT).value;\\n    }\\n\\n    /**\\n     * @dev Stores a new address in the EIP1967 admin slot.\\n     */\\n    function _setAdmin(address newAdmin) private {\\n        require(newAdmin != address(0), \\\"ERC1967: new admin is the zero address\\\");\\n        StorageSlot.getAddressSlot(_ADMIN_SLOT).value = newAdmin;\\n    }\\n\\n    /**\\n     * @dev Changes the admin of the proxy.\\n     *\\n     * Emits an {AdminChanged} event.\\n     */\\n    function _changeAdmin(address newAdmin) internal {\\n        emit AdminChanged(_getAdmin(), newAdmin);\\n        _setAdmin(newAdmin);\\n    }\\n\\n    /**\\n     * @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\\n     * This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor.\\n     */\\n    bytes32 internal constant _BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50;\\n\\n    /**\\n     * @dev Emitted when the beacon is upgraded.\\n     */\\n    event BeaconUpgraded(address indexed beacon);\\n\\n    /**\\n     * @dev Returns the current beacon.\\n     */\\n    function _getBeacon() internal view returns (address) {\\n        return StorageSlot.getAddressSlot(_BEACON_SLOT).value;\\n    }\\n\\n    /**\\n     * @dev Stores a new beacon in the EIP1967 beacon slot.\\n     */\\n    function _setBeacon(address newBeacon) private {\\n        require(Address.isContract(newBeacon), \\\"ERC1967: new beacon is not a contract\\\");\\n        require(Address.isContract(IBeacon(newBeacon).implementation()), \\\"ERC1967: beacon implementation is not a contract\\\");\\n        StorageSlot.getAddressSlot(_BEACON_SLOT).value = newBeacon;\\n    }\\n\\n    /**\\n     * @dev Perform beacon upgrade with additional setup call. Note: This upgrades the address of the beacon, it does\\n     * not upgrade the implementation contained in the beacon (see {UpgradeableBeacon-_setImplementation} for that).\\n     *\\n     * Emits a {BeaconUpgraded} event.\\n     */\\n    function _upgradeBeaconToAndCall(\\n        address newBeacon,\\n        bytes memory data,\\n        bool forceCall\\n    ) internal {\\n        _setBeacon(newBeacon);\\n        emit BeaconUpgraded(newBeacon);\\n        if (data.length > 0 || forceCall) {\\n            Address.functionDelegateCall(IBeacon(newBeacon).implementation(), data);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x17668652127feebed0ce8d9431ef95ccc8c4292f03e3b8cf06c6ca16af396633\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/beacon/IBeacon.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev This is the interface that {BeaconProxy} expects of its beacon.\\n */\\ninterface IBeacon {\\n    /**\\n     * @dev Must return an address that can be used as a delegate call target.\\n     *\\n     * {BeaconProxy} will check that this address is a contract.\\n     */\\n    function implementation() external view returns (address);\\n}\\n\",\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary Address {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCall(target, data, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        require(isContract(target), \\\"Address: call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        require(isContract(target), \\\"Address: static call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(isContract(target), \\\"Address: delegate call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.delegatecall(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            // Look for revert reason and bubble it up if present\\n            if (returndata.length > 0) {\\n                // The easiest way to bubble the revert reason is using memory via assembly\\n\\n                assembly {\\n                    let returndata_size := mload(returndata)\\n                    revert(add(32, returndata), returndata_size)\\n                }\\n            } else {\\n                revert(errorMessage);\\n            }\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x3777e696b62134e6177440dbe6e6601c0c156a443f57167194b67e75527439de\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/StorageSlot.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Library for reading and writing primitive types to specific storage slots.\\n *\\n * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\\n * This library helps with reading and writing to such slots without the need for inline assembly.\\n *\\n * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\\n *\\n * Example usage to set ERC1967 implementation slot:\\n * ```\\n * contract ERC1967 {\\n *     bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\\n *\\n *     function _getImplementation() internal view returns (address) {\\n *         return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\\n *     }\\n *\\n *     function _setImplementation(address newImplementation) internal {\\n *         require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");\\n *         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\\n *     }\\n * }\\n * ```\\n *\\n * _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._\\n */\\nlibrary StorageSlot {\\n    struct AddressSlot {\\n        address value;\\n    }\\n\\n    struct BooleanSlot {\\n        bool value;\\n    }\\n\\n    struct Bytes32Slot {\\n        bytes32 value;\\n    }\\n\\n    struct Uint256Slot {\\n        uint256 value;\\n    }\\n\\n    /**\\n     * @dev Returns an `AddressSlot` with member `value` located at `slot`.\\n     */\\n    function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `BooleanSlot` with member `value` located at `slot`.\\n     */\\n    function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `Bytes32Slot` with member `value` located at `slot`.\\n     */\\n    function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `Uint256Slot` with member `value` located at `slot`.\\n     */\\n    function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xfe1b7a9aa2a530a9e705b220e26cd584e2fbdc9602a3a1066032b12816b46aca\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol":{"Proxy":{"abi":[{"stateMutability":"payable","type":"fallback"},{"stateMutability":"payable","type":"receive"}],"devdoc":{"details":"This abstract contract provides a fallback function that delegates all calls to another contract using the EVM instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to be specified by overriding the virtual {_implementation} function. Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a different contract through the {_delegate} function. The success and return data of the delegated call will be returned back to the caller of the proxy.","kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"This abstract contract provides a fallback function that delegates all calls to another contract using the EVM instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to be specified by overriding the virtual {_implementation} function. Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a different contract through the {_delegate} function. The success and return data of the delegated call will be returned back to the caller of the proxy.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol\":\"Proxy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (proxy/Proxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM\\n * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to\\n * be specified by overriding the virtual {_implementation} function.\\n *\\n * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a\\n * different contract through the {_delegate} function.\\n *\\n * The success and return data of the delegated call will be returned back to the caller of the proxy.\\n */\\nabstract contract Proxy {\\n    /**\\n     * @dev Delegates the current call to `implementation`.\\n     *\\n     * This function does not return to its internal call site, it will return directly to the external caller.\\n     */\\n    function _delegate(address implementation) internal virtual {\\n        assembly {\\n            // Copy msg.data. We take full control of memory in this inline assembly\\n            // block because it will not return to Solidity code. We overwrite the\\n            // Solidity scratch pad at memory position 0.\\n            calldatacopy(0, 0, calldatasize())\\n\\n            // Call the implementation.\\n            // out and outsize are 0 because we don't know the size yet.\\n            let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)\\n\\n            // Copy the returned data.\\n            returndatacopy(0, 0, returndatasize())\\n\\n            switch result\\n            // delegatecall returns 0 on error.\\n            case 0 {\\n                revert(0, returndatasize())\\n            }\\n            default {\\n                return(0, returndatasize())\\n            }\\n        }\\n    }\\n\\n    /**\\n     * @dev This is a virtual function that should be overriden so it returns the address to which the fallback function\\n     * and {_fallback} should delegate.\\n     */\\n    function _implementation() internal view virtual returns (address);\\n\\n    /**\\n     * @dev Delegates the current call to the address returned by `_implementation()`.\\n     *\\n     * This function does not return to its internall call site, it will return directly to the external caller.\\n     */\\n    function _fallback() internal virtual {\\n        _beforeFallback();\\n        _delegate(_implementation());\\n    }\\n\\n    /**\\n     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other\\n     * function in the contract matches the call data.\\n     */\\n    fallback() external payable virtual {\\n        _fallback();\\n    }\\n\\n    /**\\n     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data\\n     * is empty.\\n     */\\n    receive() external payable virtual {\\n        _fallback();\\n    }\\n\\n    /**\\n     * @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback`\\n     * call, or as part of the Solidity `fallback` or `receive` functions.\\n     *\\n     * If overriden should call `super._beforeFallback()`.\\n     */\\n    function _beforeFallback() internal virtual {}\\n}\\n\",\"keccak256\":\"0xd5d1fd16e9faff7fcb3a52e02a8d49156f42a38a03f07b5f1810c21c2149a8ab\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol":{"IBeacon":{"abi":[{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"devdoc":{"details":"This is the interface that {BeaconProxy} expects of its beacon.","kind":"dev","methods":{"implementation()":{"details":"Must return an address that can be used as a delegate call target. {BeaconProxy} will check that this address is a contract."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"implementation()":"5c60da1b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This is the interface that {BeaconProxy} expects of its beacon.\",\"kind\":\"dev\",\"methods\":{\"implementation()\":{\"details\":\"Must return an address that can be used as a delegate call target. {BeaconProxy} will check that this address is a contract.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol\":\"IBeacon\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/beacon/IBeacon.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev This is the interface that {BeaconProxy} expects of its beacon.\\n */\\ninterface IBeacon {\\n    /**\\n     * @dev Must return an address that can be used as a delegate call target.\\n     *\\n     * {BeaconProxy} will check that this address is a contract.\\n     */\\n    function implementation() external view returns (address);\\n}\\n\",\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol":{"ProxyAdmin":{"abi":[{"inputs":[{"internalType":"address","name":"initialOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"contract TransparentUpgradeableProxy","name":"proxy","type":"address"},{"internalType":"address","name":"newAdmin","type":"address"}],"name":"changeProxyAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract TransparentUpgradeableProxy","name":"proxy","type":"address"}],"name":"getProxyAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract TransparentUpgradeableProxy","name":"proxy","type":"address"}],"name":"getProxyImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract TransparentUpgradeableProxy","name":"proxy","type":"address"},{"internalType":"address","name":"implementation","type":"address"}],"name":"upgrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract TransparentUpgradeableProxy","name":"proxy","type":"address"},{"internalType":"address","name":"implementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeAndCall","outputs":[],"stateMutability":"payable","type":"function"}],"devdoc":{"details":"This is an auxiliary contract meant to be assigned as the admin of a {TransparentUpgradeableProxy}. For an explanation of why you would want to use this see the documentation for {TransparentUpgradeableProxy}.","kind":"dev","methods":{"changeProxyAdmin(address,address)":{"details":"Changes the admin of `proxy` to `newAdmin`. Requirements: - This contract must be the current admin of `proxy`."},"getProxyAdmin(address)":{"details":"Returns the current admin of `proxy`. Requirements: - This contract must be the admin of `proxy`."},"getProxyImplementation(address)":{"details":"Returns the current implementation of `proxy`. Requirements: - This contract must be the admin of `proxy`."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"upgrade(address,address)":{"details":"Upgrades `proxy` to `implementation`. See {TransparentUpgradeableProxy-upgradeTo}. Requirements: - This contract must be the admin of `proxy`."},"upgradeAndCall(address,address,bytes)":{"details":"Upgrades `proxy` to `implementation` and calls a function on the new implementation. See {TransparentUpgradeableProxy-upgradeToAndCall}. Requirements: - This contract must be the admin of `proxy`."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_21320":{"entryPoint":null,"id":21320,"parameterSlots":1,"returnSlots":0},"@_21860":{"entryPoint":null,"id":21860,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_21400":{"entryPoint":58,"id":21400,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":138,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:306:97","nodeType":"YulBlock","src":"0:306:97","statements":[{"nativeSrc":"6:3:97","nodeType":"YulBlock","src":"6:3:97","statements":[]},{"body":{"nativeSrc":"95:209:97","nodeType":"YulBlock","src":"95:209:97","statements":[{"body":{"nativeSrc":"141:16:97","nodeType":"YulBlock","src":"141:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"150:1:97","nodeType":"YulLiteral","src":"150:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"153:1:97","nodeType":"YulLiteral","src":"153:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"143:6:97","nodeType":"YulIdentifier","src":"143:6:97"},"nativeSrc":"143:12:97","nodeType":"YulFunctionCall","src":"143:12:97"},"nativeSrc":"143:12:97","nodeType":"YulExpressionStatement","src":"143:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"116:7:97","nodeType":"YulIdentifier","src":"116:7:97"},{"name":"headStart","nativeSrc":"125:9:97","nodeType":"YulIdentifier","src":"125:9:97"}],"functionName":{"name":"sub","nativeSrc":"112:3:97","nodeType":"YulIdentifier","src":"112:3:97"},"nativeSrc":"112:23:97","nodeType":"YulFunctionCall","src":"112:23:97"},{"kind":"number","nativeSrc":"137:2:97","nodeType":"YulLiteral","src":"137:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"108:3:97","nodeType":"YulIdentifier","src":"108:3:97"},"nativeSrc":"108:32:97","nodeType":"YulFunctionCall","src":"108:32:97"},"nativeSrc":"105:52:97","nodeType":"YulIf","src":"105:52:97"},{"nativeSrc":"166:29:97","nodeType":"YulVariableDeclaration","src":"166:29:97","value":{"arguments":[{"name":"headStart","nativeSrc":"185:9:97","nodeType":"YulIdentifier","src":"185:9:97"}],"functionName":{"name":"mload","nativeSrc":"179:5:97","nodeType":"YulIdentifier","src":"179:5:97"},"nativeSrc":"179:16:97","nodeType":"YulFunctionCall","src":"179:16:97"},"variables":[{"name":"value","nativeSrc":"170:5:97","nodeType":"YulTypedName","src":"170:5:97","type":""}]},{"body":{"nativeSrc":"258:16:97","nodeType":"YulBlock","src":"258:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"267:1:97","nodeType":"YulLiteral","src":"267:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"270:1:97","nodeType":"YulLiteral","src":"270:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"260:6:97","nodeType":"YulIdentifier","src":"260:6:97"},"nativeSrc":"260:12:97","nodeType":"YulFunctionCall","src":"260:12:97"},"nativeSrc":"260:12:97","nodeType":"YulExpressionStatement","src":"260:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"217:5:97","nodeType":"YulIdentifier","src":"217:5:97"},{"arguments":[{"name":"value","nativeSrc":"228:5:97","nodeType":"YulIdentifier","src":"228:5:97"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"243:3:97","nodeType":"YulLiteral","src":"243:3:97","type":"","value":"160"},{"kind":"number","nativeSrc":"248:1:97","nodeType":"YulLiteral","src":"248:1:97","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"239:3:97","nodeType":"YulIdentifier","src":"239:3:97"},"nativeSrc":"239:11:97","nodeType":"YulFunctionCall","src":"239:11:97"},{"kind":"number","nativeSrc":"252:1:97","nodeType":"YulLiteral","src":"252:1:97","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"235:3:97","nodeType":"YulIdentifier","src":"235:3:97"},"nativeSrc":"235:19:97","nodeType":"YulFunctionCall","src":"235:19:97"}],"functionName":{"name":"and","nativeSrc":"224:3:97","nodeType":"YulIdentifier","src":"224:3:97"},"nativeSrc":"224:31:97","nodeType":"YulFunctionCall","src":"224:31:97"}],"functionName":{"name":"eq","nativeSrc":"214:2:97","nodeType":"YulIdentifier","src":"214:2:97"},"nativeSrc":"214:42:97","nodeType":"YulFunctionCall","src":"214:42:97"}],"functionName":{"name":"iszero","nativeSrc":"207:6:97","nodeType":"YulIdentifier","src":"207:6:97"},"nativeSrc":"207:50:97","nodeType":"YulFunctionCall","src":"207:50:97"},"nativeSrc":"204:70:97","nodeType":"YulIf","src":"204:70:97"},{"nativeSrc":"283:15:97","nodeType":"YulAssignment","src":"283:15:97","value":{"name":"value","nativeSrc":"293:5:97","nodeType":"YulIdentifier","src":"293:5:97"},"variableNames":[{"name":"value0","nativeSrc":"283:6:97","nodeType":"YulIdentifier","src":"283:6:97"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nativeSrc":"14:290:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"61:9:97","nodeType":"YulTypedName","src":"61:9:97","type":""},{"name":"dataEnd","nativeSrc":"72:7:97","nodeType":"YulTypedName","src":"72:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"84:6:97","nodeType":"YulTypedName","src":"84:6:97","type":""}],"src":"14:290:97"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n        value0 := value\n    }\n}","id":97,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"6080604052348015600f57600080fd5b50604051610b09380380610b09833981016040819052602c91608a565b80603481603a565b505060b8565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215609b57600080fd5b81516001600160a01b038116811460b157600080fd5b9392505050565b610a42806100c76000396000f3fe60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461012b57806399a88ec41461013e578063f2fde38b1461015e578063f3b7dead1461017e57600080fd5b8063204e1c7a14610080578063715018a6146100c95780637eff275e146100e05780638da5cb5b14610100575b600080fd5b34801561008c57600080fd5b506100a061009b3660046107e4565b61019e565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100d557600080fd5b506100de610255565b005b3480156100ec57600080fd5b506100de6100fb366004610808565b6102e7565b34801561010c57600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff166100a0565b6100de610139366004610870565b6103ee565b34801561014a57600080fd5b506100de610159366004610808565b6104fc565b34801561016a57600080fd5b506100de6101793660046107e4565b6105d1565b34801561018a57600080fd5b506100a06101993660046107e4565b610701565b60008060008373ffffffffffffffffffffffffffffffffffffffff166040516101ea907f5c60da1b00000000000000000000000000000000000000000000000000000000815260040190565b600060405180830381855afa9150503d8060008114610225576040519150601f19603f3d011682016040523d82523d6000602084013e61022a565b606091505b50915091508161023957600080fd5b8080602001905181019061024d9190610964565b949350505050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146102db576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6102e5600061074d565b565b60005473ffffffffffffffffffffffffffffffffffffffff163314610368576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102d2565b6040517f8f28397000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8281166004830152831690638f283970906024015b600060405180830381600087803b1580156103d257600080fd5b505af11580156103e6573d6000803e3d6000fd5b505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461046f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102d2565b6040517f4f1ef28600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841690634f1ef2869034906104c59086908690600401610981565b6000604051808303818588803b1580156104de57600080fd5b505af11580156104f2573d6000803e3d6000fd5b5050505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461057d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102d2565b6040517f3659cfe600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8281166004830152831690633659cfe6906024016103b8565b60005473ffffffffffffffffffffffffffffffffffffffff163314610652576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102d2565b73ffffffffffffffffffffffffffffffffffffffff81166106f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102d2565b6106fe8161074d565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff166040516101ea907ff851a44000000000000000000000000000000000000000000000000000000000815260040190565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b73ffffffffffffffffffffffffffffffffffffffff811681146106fe57600080fd5b6000602082840312156107f657600080fd5b8135610801816107c2565b9392505050565b6000806040838503121561081b57600080fd5b8235610826816107c2565b91506020830135610836816107c2565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060006060848603121561088557600080fd5b8335610890816107c2565b925060208401356108a0816107c2565b9150604084013567ffffffffffffffff808211156108bd57600080fd5b818601915086601f8301126108d157600080fd5b8135818111156108e3576108e3610841565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561092957610929610841565b8160405282815289602084870101111561094257600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b60006020828403121561097657600080fd5b8151610801816107c2565b73ffffffffffffffffffffffffffffffffffffffff831681526000602060406020840152835180604085015260005b818110156109cc578581018301518582016060015282016109b0565b5060006060828601015260607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010192505050939250505056fea2646970667358221220c8b87e24bc510b348206f64f4e9e1d933af610bf37c2ebe141148cb2bdd2610264736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0xB09 CODESIZE SUB DUP1 PUSH2 0xB09 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH1 0x2C SWAP2 PUSH1 0x8A JUMP JUMPDEST DUP1 PUSH1 0x34 DUP2 PUSH1 0x3A JUMP JUMPDEST POP POP PUSH1 0xB8 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH1 0x9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH1 0xB1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xA42 DUP1 PUSH2 0xC7 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x7B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9623609D GT PUSH2 0x4E JUMPI DUP1 PUSH4 0x9623609D EQ PUSH2 0x12B JUMPI DUP1 PUSH4 0x99A88EC4 EQ PUSH2 0x13E JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x15E JUMPI DUP1 PUSH4 0xF3B7DEAD EQ PUSH2 0x17E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x204E1C7A EQ PUSH2 0x80 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xC9 JUMPI DUP1 PUSH4 0x7EFF275E EQ PUSH2 0xE0 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x100 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA0 PUSH2 0x9B CALLDATASIZE PUSH1 0x4 PUSH2 0x7E4 JUMP JUMPDEST PUSH2 0x19E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xDE PUSH2 0x255 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xEC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xDE PUSH2 0xFB CALLDATASIZE PUSH1 0x4 PUSH2 0x808 JUMP JUMPDEST PUSH2 0x2E7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x10C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xA0 JUMP JUMPDEST PUSH2 0xDE PUSH2 0x139 CALLDATASIZE PUSH1 0x4 PUSH2 0x870 JUMP JUMPDEST PUSH2 0x3EE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x14A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xDE PUSH2 0x159 CALLDATASIZE PUSH1 0x4 PUSH2 0x808 JUMP JUMPDEST PUSH2 0x4FC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x16A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xDE PUSH2 0x179 CALLDATASIZE PUSH1 0x4 PUSH2 0x7E4 JUMP JUMPDEST PUSH2 0x5D1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA0 PUSH2 0x199 CALLDATASIZE PUSH1 0x4 PUSH2 0x7E4 JUMP JUMPDEST PUSH2 0x701 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x40 MLOAD PUSH2 0x1EA SWAP1 PUSH32 0x5C60DA1B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS STATICCALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x225 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x22A JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x239 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x24D SWAP2 SWAP1 PUSH2 0x964 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x2DB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2E5 PUSH1 0x0 PUSH2 0x74D JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x368 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2D2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8F28397000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP4 AND SWAP1 PUSH4 0x8F283970 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x46F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2D2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x4F1EF28600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND SWAP1 PUSH4 0x4F1EF286 SWAP1 CALLVALUE SWAP1 PUSH2 0x4C5 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x981 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4F2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x57D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2D2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x3659CFE600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP4 AND SWAP1 PUSH4 0x3659CFE6 SWAP1 PUSH1 0x24 ADD PUSH2 0x3B8 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x652 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2D2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x6F5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2D2 JUMP JUMPDEST PUSH2 0x6FE DUP2 PUSH2 0x74D JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x40 MLOAD PUSH2 0x1EA SWAP1 PUSH32 0xF851A44000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x6FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x7F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x801 DUP2 PUSH2 0x7C2 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x81B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x826 DUP2 PUSH2 0x7C2 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x836 DUP2 PUSH2 0x7C2 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x885 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x890 DUP2 PUSH2 0x7C2 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x8A0 DUP2 PUSH2 0x7C2 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x8BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x8D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x8E3 JUMPI PUSH2 0x8E3 PUSH2 0x841 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x929 JUMPI PUSH2 0x929 PUSH2 0x841 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP10 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x942 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP6 POP POP POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x976 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x801 DUP2 PUSH2 0x7C2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 PUSH1 0x40 PUSH1 0x20 DUP5 ADD MSTORE DUP4 MLOAD DUP1 PUSH1 0x40 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x9CC JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x60 ADD MSTORE DUP3 ADD PUSH2 0x9B0 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x60 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x60 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC8 0xB8 PUSH31 0x24BC510B348206F64F4E9E1D933AF610BF37C2EBE141148CB2BDD261026473 PUSH16 0x6C634300081900330000000000000000 ","sourceMap":"435:2470:90:-:0;;;473:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;516:12;942:32:84;516:12:90;942:18:84;:32::i;:::-;897:84;473:59:90;435:2470;;2291:187:84;2364:16;2383:6;;-1:-1:-1;;;;;2399:17:84;;;-1:-1:-1;;;;;;2399:17:84;;;;;;2431:40;;2383:6;;;;;;;2431:40;;2364:16;2431:40;2354:124;2291:187;:::o;14:290:97:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:97;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:97:o;:::-;435:2470:90;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_msgSender_22460":{"entryPoint":null,"id":22460,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_21400":{"entryPoint":1869,"id":21400,"parameterSlots":1,"returnSlots":0},"@changeProxyAdmin_21946":{"entryPoint":743,"id":21946,"parameterSlots":2,"returnSlots":0},"@getProxyAdmin_21928":{"entryPoint":1793,"id":21928,"parameterSlots":1,"returnSlots":1},"@getProxyImplementation_21894":{"entryPoint":414,"id":21894,"parameterSlots":1,"returnSlots":1},"@owner_21329":{"entryPoint":null,"id":21329,"parameterSlots":0,"returnSlots":1},"@renounceOwnership_21357":{"entryPoint":597,"id":21357,"parameterSlots":0,"returnSlots":0},"@transferOwnership_21380":{"entryPoint":1489,"id":21380,"parameterSlots":1,"returnSlots":0},"@upgradeAndCall_21988":{"entryPoint":1006,"id":21988,"parameterSlots":3,"returnSlots":0},"@upgrade_21964":{"entryPoint":1276,"id":21964,"parameterSlots":2,"returnSlots":0},"abi_decode_tuple_t_address":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_payable_fromMemory":{"entryPoint":2404,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_TransparentUpgradeableProxy_$22153":{"entryPoint":2020,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_TransparentUpgradeableProxy_$22153t_address":{"entryPoint":2056,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_contract$_TransparentUpgradeableProxy_$22153t_addresst_bytes_memory_ptr":{"entryPoint":2160,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_tuple_packed_t_stringliteral_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":2433,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x41":{"entryPoint":2113,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_contract_TransparentUpgradeableProxy":{"entryPoint":1986,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:5489:97","nodeType":"YulBlock","src":"0:5489:97","statements":[{"nativeSrc":"6:3:97","nodeType":"YulBlock","src":"6:3:97","statements":[]},{"body":{"nativeSrc":"88:109:97","nodeType":"YulBlock","src":"88:109:97","statements":[{"body":{"nativeSrc":"175:16:97","nodeType":"YulBlock","src":"175:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"184:1:97","nodeType":"YulLiteral","src":"184:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"187:1:97","nodeType":"YulLiteral","src":"187:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"177:6:97","nodeType":"YulIdentifier","src":"177:6:97"},"nativeSrc":"177:12:97","nodeType":"YulFunctionCall","src":"177:12:97"},"nativeSrc":"177:12:97","nodeType":"YulExpressionStatement","src":"177:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"111:5:97","nodeType":"YulIdentifier","src":"111:5:97"},{"arguments":[{"name":"value","nativeSrc":"122:5:97","nodeType":"YulIdentifier","src":"122:5:97"},{"kind":"number","nativeSrc":"129:42:97","nodeType":"YulLiteral","src":"129:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"118:3:97","nodeType":"YulIdentifier","src":"118:3:97"},"nativeSrc":"118:54:97","nodeType":"YulFunctionCall","src":"118:54:97"}],"functionName":{"name":"eq","nativeSrc":"108:2:97","nodeType":"YulIdentifier","src":"108:2:97"},"nativeSrc":"108:65:97","nodeType":"YulFunctionCall","src":"108:65:97"}],"functionName":{"name":"iszero","nativeSrc":"101:6:97","nodeType":"YulIdentifier","src":"101:6:97"},"nativeSrc":"101:73:97","nodeType":"YulFunctionCall","src":"101:73:97"},"nativeSrc":"98:93:97","nodeType":"YulIf","src":"98:93:97"}]},"name":"validator_revert_contract_TransparentUpgradeableProxy","nativeSrc":"14:183:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"77:5:97","nodeType":"YulTypedName","src":"77:5:97","type":""}],"src":"14:183:97"},{"body":{"nativeSrc":"309:206:97","nodeType":"YulBlock","src":"309:206:97","statements":[{"body":{"nativeSrc":"355:16:97","nodeType":"YulBlock","src":"355:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"364:1:97","nodeType":"YulLiteral","src":"364:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"367:1:97","nodeType":"YulLiteral","src":"367:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"357:6:97","nodeType":"YulIdentifier","src":"357:6:97"},"nativeSrc":"357:12:97","nodeType":"YulFunctionCall","src":"357:12:97"},"nativeSrc":"357:12:97","nodeType":"YulExpressionStatement","src":"357:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"330:7:97","nodeType":"YulIdentifier","src":"330:7:97"},{"name":"headStart","nativeSrc":"339:9:97","nodeType":"YulIdentifier","src":"339:9:97"}],"functionName":{"name":"sub","nativeSrc":"326:3:97","nodeType":"YulIdentifier","src":"326:3:97"},"nativeSrc":"326:23:97","nodeType":"YulFunctionCall","src":"326:23:97"},{"kind":"number","nativeSrc":"351:2:97","nodeType":"YulLiteral","src":"351:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"322:3:97","nodeType":"YulIdentifier","src":"322:3:97"},"nativeSrc":"322:32:97","nodeType":"YulFunctionCall","src":"322:32:97"},"nativeSrc":"319:52:97","nodeType":"YulIf","src":"319:52:97"},{"nativeSrc":"380:36:97","nodeType":"YulVariableDeclaration","src":"380:36:97","value":{"arguments":[{"name":"headStart","nativeSrc":"406:9:97","nodeType":"YulIdentifier","src":"406:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"393:12:97","nodeType":"YulIdentifier","src":"393:12:97"},"nativeSrc":"393:23:97","nodeType":"YulFunctionCall","src":"393:23:97"},"variables":[{"name":"value","nativeSrc":"384:5:97","nodeType":"YulTypedName","src":"384:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"479:5:97","nodeType":"YulIdentifier","src":"479:5:97"}],"functionName":{"name":"validator_revert_contract_TransparentUpgradeableProxy","nativeSrc":"425:53:97","nodeType":"YulIdentifier","src":"425:53:97"},"nativeSrc":"425:60:97","nodeType":"YulFunctionCall","src":"425:60:97"},"nativeSrc":"425:60:97","nodeType":"YulExpressionStatement","src":"425:60:97"},{"nativeSrc":"494:15:97","nodeType":"YulAssignment","src":"494:15:97","value":{"name":"value","nativeSrc":"504:5:97","nodeType":"YulIdentifier","src":"504:5:97"},"variableNames":[{"name":"value0","nativeSrc":"494:6:97","nodeType":"YulIdentifier","src":"494:6:97"}]}]},"name":"abi_decode_tuple_t_contract$_TransparentUpgradeableProxy_$22153","nativeSrc":"202:313:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"275:9:97","nodeType":"YulTypedName","src":"275:9:97","type":""},{"name":"dataEnd","nativeSrc":"286:7:97","nodeType":"YulTypedName","src":"286:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"298:6:97","nodeType":"YulTypedName","src":"298:6:97","type":""}],"src":"202:313:97"},{"body":{"nativeSrc":"621:125:97","nodeType":"YulBlock","src":"621:125:97","statements":[{"nativeSrc":"631:26:97","nodeType":"YulAssignment","src":"631:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"643:9:97","nodeType":"YulIdentifier","src":"643:9:97"},{"kind":"number","nativeSrc":"654:2:97","nodeType":"YulLiteral","src":"654:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"639:3:97","nodeType":"YulIdentifier","src":"639:3:97"},"nativeSrc":"639:18:97","nodeType":"YulFunctionCall","src":"639:18:97"},"variableNames":[{"name":"tail","nativeSrc":"631:4:97","nodeType":"YulIdentifier","src":"631:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"673:9:97","nodeType":"YulIdentifier","src":"673:9:97"},{"arguments":[{"name":"value0","nativeSrc":"688:6:97","nodeType":"YulIdentifier","src":"688:6:97"},{"kind":"number","nativeSrc":"696:42:97","nodeType":"YulLiteral","src":"696:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"684:3:97","nodeType":"YulIdentifier","src":"684:3:97"},"nativeSrc":"684:55:97","nodeType":"YulFunctionCall","src":"684:55:97"}],"functionName":{"name":"mstore","nativeSrc":"666:6:97","nodeType":"YulIdentifier","src":"666:6:97"},"nativeSrc":"666:74:97","nodeType":"YulFunctionCall","src":"666:74:97"},"nativeSrc":"666:74:97","nodeType":"YulExpressionStatement","src":"666:74:97"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"520:226:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"590:9:97","nodeType":"YulTypedName","src":"590:9:97","type":""},{"name":"value0","nativeSrc":"601:6:97","nodeType":"YulTypedName","src":"601:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"612:4:97","nodeType":"YulTypedName","src":"612:4:97","type":""}],"src":"520:226:97"},{"body":{"nativeSrc":"875:359:97","nodeType":"YulBlock","src":"875:359:97","statements":[{"body":{"nativeSrc":"921:16:97","nodeType":"YulBlock","src":"921:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"930:1:97","nodeType":"YulLiteral","src":"930:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"933:1:97","nodeType":"YulLiteral","src":"933:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"923:6:97","nodeType":"YulIdentifier","src":"923:6:97"},"nativeSrc":"923:12:97","nodeType":"YulFunctionCall","src":"923:12:97"},"nativeSrc":"923:12:97","nodeType":"YulExpressionStatement","src":"923:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"896:7:97","nodeType":"YulIdentifier","src":"896:7:97"},{"name":"headStart","nativeSrc":"905:9:97","nodeType":"YulIdentifier","src":"905:9:97"}],"functionName":{"name":"sub","nativeSrc":"892:3:97","nodeType":"YulIdentifier","src":"892:3:97"},"nativeSrc":"892:23:97","nodeType":"YulFunctionCall","src":"892:23:97"},{"kind":"number","nativeSrc":"917:2:97","nodeType":"YulLiteral","src":"917:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"888:3:97","nodeType":"YulIdentifier","src":"888:3:97"},"nativeSrc":"888:32:97","nodeType":"YulFunctionCall","src":"888:32:97"},"nativeSrc":"885:52:97","nodeType":"YulIf","src":"885:52:97"},{"nativeSrc":"946:36:97","nodeType":"YulVariableDeclaration","src":"946:36:97","value":{"arguments":[{"name":"headStart","nativeSrc":"972:9:97","nodeType":"YulIdentifier","src":"972:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"959:12:97","nodeType":"YulIdentifier","src":"959:12:97"},"nativeSrc":"959:23:97","nodeType":"YulFunctionCall","src":"959:23:97"},"variables":[{"name":"value","nativeSrc":"950:5:97","nodeType":"YulTypedName","src":"950:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1045:5:97","nodeType":"YulIdentifier","src":"1045:5:97"}],"functionName":{"name":"validator_revert_contract_TransparentUpgradeableProxy","nativeSrc":"991:53:97","nodeType":"YulIdentifier","src":"991:53:97"},"nativeSrc":"991:60:97","nodeType":"YulFunctionCall","src":"991:60:97"},"nativeSrc":"991:60:97","nodeType":"YulExpressionStatement","src":"991:60:97"},{"nativeSrc":"1060:15:97","nodeType":"YulAssignment","src":"1060:15:97","value":{"name":"value","nativeSrc":"1070:5:97","nodeType":"YulIdentifier","src":"1070:5:97"},"variableNames":[{"name":"value0","nativeSrc":"1060:6:97","nodeType":"YulIdentifier","src":"1060:6:97"}]},{"nativeSrc":"1084:47:97","nodeType":"YulVariableDeclaration","src":"1084:47:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1116:9:97","nodeType":"YulIdentifier","src":"1116:9:97"},{"kind":"number","nativeSrc":"1127:2:97","nodeType":"YulLiteral","src":"1127:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1112:3:97","nodeType":"YulIdentifier","src":"1112:3:97"},"nativeSrc":"1112:18:97","nodeType":"YulFunctionCall","src":"1112:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"1099:12:97","nodeType":"YulIdentifier","src":"1099:12:97"},"nativeSrc":"1099:32:97","nodeType":"YulFunctionCall","src":"1099:32:97"},"variables":[{"name":"value_1","nativeSrc":"1088:7:97","nodeType":"YulTypedName","src":"1088:7:97","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"1194:7:97","nodeType":"YulIdentifier","src":"1194:7:97"}],"functionName":{"name":"validator_revert_contract_TransparentUpgradeableProxy","nativeSrc":"1140:53:97","nodeType":"YulIdentifier","src":"1140:53:97"},"nativeSrc":"1140:62:97","nodeType":"YulFunctionCall","src":"1140:62:97"},"nativeSrc":"1140:62:97","nodeType":"YulExpressionStatement","src":"1140:62:97"},{"nativeSrc":"1211:17:97","nodeType":"YulAssignment","src":"1211:17:97","value":{"name":"value_1","nativeSrc":"1221:7:97","nodeType":"YulIdentifier","src":"1221:7:97"},"variableNames":[{"name":"value1","nativeSrc":"1211:6:97","nodeType":"YulIdentifier","src":"1211:6:97"}]}]},"name":"abi_decode_tuple_t_contract$_TransparentUpgradeableProxy_$22153t_address","nativeSrc":"751:483:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"833:9:97","nodeType":"YulTypedName","src":"833:9:97","type":""},{"name":"dataEnd","nativeSrc":"844:7:97","nodeType":"YulTypedName","src":"844:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"856:6:97","nodeType":"YulTypedName","src":"856:6:97","type":""},{"name":"value1","nativeSrc":"864:6:97","nodeType":"YulTypedName","src":"864:6:97","type":""}],"src":"751:483:97"},{"body":{"nativeSrc":"1271:152:97","nodeType":"YulBlock","src":"1271:152:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1288:1:97","nodeType":"YulLiteral","src":"1288:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1291:77:97","nodeType":"YulLiteral","src":"1291:77:97","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"1281:6:97","nodeType":"YulIdentifier","src":"1281:6:97"},"nativeSrc":"1281:88:97","nodeType":"YulFunctionCall","src":"1281:88:97"},"nativeSrc":"1281:88:97","nodeType":"YulExpressionStatement","src":"1281:88:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1385:1:97","nodeType":"YulLiteral","src":"1385:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"1388:4:97","nodeType":"YulLiteral","src":"1388:4:97","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"1378:6:97","nodeType":"YulIdentifier","src":"1378:6:97"},"nativeSrc":"1378:15:97","nodeType":"YulFunctionCall","src":"1378:15:97"},"nativeSrc":"1378:15:97","nodeType":"YulExpressionStatement","src":"1378:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1409:1:97","nodeType":"YulLiteral","src":"1409:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1412:4:97","nodeType":"YulLiteral","src":"1412:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1402:6:97","nodeType":"YulIdentifier","src":"1402:6:97"},"nativeSrc":"1402:15:97","nodeType":"YulFunctionCall","src":"1402:15:97"},"nativeSrc":"1402:15:97","nodeType":"YulExpressionStatement","src":"1402:15:97"}]},"name":"panic_error_0x41","nativeSrc":"1239:184:97","nodeType":"YulFunctionDefinition","src":"1239:184:97"},{"body":{"nativeSrc":"1578:1201:97","nodeType":"YulBlock","src":"1578:1201:97","statements":[{"body":{"nativeSrc":"1624:16:97","nodeType":"YulBlock","src":"1624:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1633:1:97","nodeType":"YulLiteral","src":"1633:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1636:1:97","nodeType":"YulLiteral","src":"1636:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1626:6:97","nodeType":"YulIdentifier","src":"1626:6:97"},"nativeSrc":"1626:12:97","nodeType":"YulFunctionCall","src":"1626:12:97"},"nativeSrc":"1626:12:97","nodeType":"YulExpressionStatement","src":"1626:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1599:7:97","nodeType":"YulIdentifier","src":"1599:7:97"},{"name":"headStart","nativeSrc":"1608:9:97","nodeType":"YulIdentifier","src":"1608:9:97"}],"functionName":{"name":"sub","nativeSrc":"1595:3:97","nodeType":"YulIdentifier","src":"1595:3:97"},"nativeSrc":"1595:23:97","nodeType":"YulFunctionCall","src":"1595:23:97"},{"kind":"number","nativeSrc":"1620:2:97","nodeType":"YulLiteral","src":"1620:2:97","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"1591:3:97","nodeType":"YulIdentifier","src":"1591:3:97"},"nativeSrc":"1591:32:97","nodeType":"YulFunctionCall","src":"1591:32:97"},"nativeSrc":"1588:52:97","nodeType":"YulIf","src":"1588:52:97"},{"nativeSrc":"1649:36:97","nodeType":"YulVariableDeclaration","src":"1649:36:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1675:9:97","nodeType":"YulIdentifier","src":"1675:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"1662:12:97","nodeType":"YulIdentifier","src":"1662:12:97"},"nativeSrc":"1662:23:97","nodeType":"YulFunctionCall","src":"1662:23:97"},"variables":[{"name":"value","nativeSrc":"1653:5:97","nodeType":"YulTypedName","src":"1653:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1748:5:97","nodeType":"YulIdentifier","src":"1748:5:97"}],"functionName":{"name":"validator_revert_contract_TransparentUpgradeableProxy","nativeSrc":"1694:53:97","nodeType":"YulIdentifier","src":"1694:53:97"},"nativeSrc":"1694:60:97","nodeType":"YulFunctionCall","src":"1694:60:97"},"nativeSrc":"1694:60:97","nodeType":"YulExpressionStatement","src":"1694:60:97"},{"nativeSrc":"1763:15:97","nodeType":"YulAssignment","src":"1763:15:97","value":{"name":"value","nativeSrc":"1773:5:97","nodeType":"YulIdentifier","src":"1773:5:97"},"variableNames":[{"name":"value0","nativeSrc":"1763:6:97","nodeType":"YulIdentifier","src":"1763:6:97"}]},{"nativeSrc":"1787:47:97","nodeType":"YulVariableDeclaration","src":"1787:47:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1819:9:97","nodeType":"YulIdentifier","src":"1819:9:97"},{"kind":"number","nativeSrc":"1830:2:97","nodeType":"YulLiteral","src":"1830:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1815:3:97","nodeType":"YulIdentifier","src":"1815:3:97"},"nativeSrc":"1815:18:97","nodeType":"YulFunctionCall","src":"1815:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"1802:12:97","nodeType":"YulIdentifier","src":"1802:12:97"},"nativeSrc":"1802:32:97","nodeType":"YulFunctionCall","src":"1802:32:97"},"variables":[{"name":"value_1","nativeSrc":"1791:7:97","nodeType":"YulTypedName","src":"1791:7:97","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"1897:7:97","nodeType":"YulIdentifier","src":"1897:7:97"}],"functionName":{"name":"validator_revert_contract_TransparentUpgradeableProxy","nativeSrc":"1843:53:97","nodeType":"YulIdentifier","src":"1843:53:97"},"nativeSrc":"1843:62:97","nodeType":"YulFunctionCall","src":"1843:62:97"},"nativeSrc":"1843:62:97","nodeType":"YulExpressionStatement","src":"1843:62:97"},{"nativeSrc":"1914:17:97","nodeType":"YulAssignment","src":"1914:17:97","value":{"name":"value_1","nativeSrc":"1924:7:97","nodeType":"YulIdentifier","src":"1924:7:97"},"variableNames":[{"name":"value1","nativeSrc":"1914:6:97","nodeType":"YulIdentifier","src":"1914:6:97"}]},{"nativeSrc":"1940:46:97","nodeType":"YulVariableDeclaration","src":"1940:46:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1971:9:97","nodeType":"YulIdentifier","src":"1971:9:97"},{"kind":"number","nativeSrc":"1982:2:97","nodeType":"YulLiteral","src":"1982:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1967:3:97","nodeType":"YulIdentifier","src":"1967:3:97"},"nativeSrc":"1967:18:97","nodeType":"YulFunctionCall","src":"1967:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"1954:12:97","nodeType":"YulIdentifier","src":"1954:12:97"},"nativeSrc":"1954:32:97","nodeType":"YulFunctionCall","src":"1954:32:97"},"variables":[{"name":"offset","nativeSrc":"1944:6:97","nodeType":"YulTypedName","src":"1944:6:97","type":""}]},{"nativeSrc":"1995:28:97","nodeType":"YulVariableDeclaration","src":"1995:28:97","value":{"kind":"number","nativeSrc":"2005:18:97","nodeType":"YulLiteral","src":"2005:18:97","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"1999:2:97","nodeType":"YulTypedName","src":"1999:2:97","type":""}]},{"body":{"nativeSrc":"2050:16:97","nodeType":"YulBlock","src":"2050:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2059:1:97","nodeType":"YulLiteral","src":"2059:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"2062:1:97","nodeType":"YulLiteral","src":"2062:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2052:6:97","nodeType":"YulIdentifier","src":"2052:6:97"},"nativeSrc":"2052:12:97","nodeType":"YulFunctionCall","src":"2052:12:97"},"nativeSrc":"2052:12:97","nodeType":"YulExpressionStatement","src":"2052:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"2038:6:97","nodeType":"YulIdentifier","src":"2038:6:97"},{"name":"_1","nativeSrc":"2046:2:97","nodeType":"YulIdentifier","src":"2046:2:97"}],"functionName":{"name":"gt","nativeSrc":"2035:2:97","nodeType":"YulIdentifier","src":"2035:2:97"},"nativeSrc":"2035:14:97","nodeType":"YulFunctionCall","src":"2035:14:97"},"nativeSrc":"2032:34:97","nodeType":"YulIf","src":"2032:34:97"},{"nativeSrc":"2075:32:97","nodeType":"YulVariableDeclaration","src":"2075:32:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2089:9:97","nodeType":"YulIdentifier","src":"2089:9:97"},{"name":"offset","nativeSrc":"2100:6:97","nodeType":"YulIdentifier","src":"2100:6:97"}],"functionName":{"name":"add","nativeSrc":"2085:3:97","nodeType":"YulIdentifier","src":"2085:3:97"},"nativeSrc":"2085:22:97","nodeType":"YulFunctionCall","src":"2085:22:97"},"variables":[{"name":"_2","nativeSrc":"2079:2:97","nodeType":"YulTypedName","src":"2079:2:97","type":""}]},{"body":{"nativeSrc":"2155:16:97","nodeType":"YulBlock","src":"2155:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2164:1:97","nodeType":"YulLiteral","src":"2164:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"2167:1:97","nodeType":"YulLiteral","src":"2167:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2157:6:97","nodeType":"YulIdentifier","src":"2157:6:97"},"nativeSrc":"2157:12:97","nodeType":"YulFunctionCall","src":"2157:12:97"},"nativeSrc":"2157:12:97","nodeType":"YulExpressionStatement","src":"2157:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"2134:2:97","nodeType":"YulIdentifier","src":"2134:2:97"},{"kind":"number","nativeSrc":"2138:4:97","nodeType":"YulLiteral","src":"2138:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2130:3:97","nodeType":"YulIdentifier","src":"2130:3:97"},"nativeSrc":"2130:13:97","nodeType":"YulFunctionCall","src":"2130:13:97"},{"name":"dataEnd","nativeSrc":"2145:7:97","nodeType":"YulIdentifier","src":"2145:7:97"}],"functionName":{"name":"slt","nativeSrc":"2126:3:97","nodeType":"YulIdentifier","src":"2126:3:97"},"nativeSrc":"2126:27:97","nodeType":"YulFunctionCall","src":"2126:27:97"}],"functionName":{"name":"iszero","nativeSrc":"2119:6:97","nodeType":"YulIdentifier","src":"2119:6:97"},"nativeSrc":"2119:35:97","nodeType":"YulFunctionCall","src":"2119:35:97"},"nativeSrc":"2116:55:97","nodeType":"YulIf","src":"2116:55:97"},{"nativeSrc":"2180:26:97","nodeType":"YulVariableDeclaration","src":"2180:26:97","value":{"arguments":[{"name":"_2","nativeSrc":"2203:2:97","nodeType":"YulIdentifier","src":"2203:2:97"}],"functionName":{"name":"calldataload","nativeSrc":"2190:12:97","nodeType":"YulIdentifier","src":"2190:12:97"},"nativeSrc":"2190:16:97","nodeType":"YulFunctionCall","src":"2190:16:97"},"variables":[{"name":"_3","nativeSrc":"2184:2:97","nodeType":"YulTypedName","src":"2184:2:97","type":""}]},{"body":{"nativeSrc":"2229:22:97","nodeType":"YulBlock","src":"2229:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2231:16:97","nodeType":"YulIdentifier","src":"2231:16:97"},"nativeSrc":"2231:18:97","nodeType":"YulFunctionCall","src":"2231:18:97"},"nativeSrc":"2231:18:97","nodeType":"YulExpressionStatement","src":"2231:18:97"}]},"condition":{"arguments":[{"name":"_3","nativeSrc":"2221:2:97","nodeType":"YulIdentifier","src":"2221:2:97"},{"name":"_1","nativeSrc":"2225:2:97","nodeType":"YulIdentifier","src":"2225:2:97"}],"functionName":{"name":"gt","nativeSrc":"2218:2:97","nodeType":"YulIdentifier","src":"2218:2:97"},"nativeSrc":"2218:10:97","nodeType":"YulFunctionCall","src":"2218:10:97"},"nativeSrc":"2215:36:97","nodeType":"YulIf","src":"2215:36:97"},{"nativeSrc":"2260:76:97","nodeType":"YulVariableDeclaration","src":"2260:76:97","value":{"kind":"number","nativeSrc":"2270:66:97","nodeType":"YulLiteral","src":"2270:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"},"variables":[{"name":"_4","nativeSrc":"2264:2:97","nodeType":"YulTypedName","src":"2264:2:97","type":""}]},{"nativeSrc":"2345:23:97","nodeType":"YulVariableDeclaration","src":"2345:23:97","value":{"arguments":[{"kind":"number","nativeSrc":"2365:2:97","nodeType":"YulLiteral","src":"2365:2:97","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"2359:5:97","nodeType":"YulIdentifier","src":"2359:5:97"},"nativeSrc":"2359:9:97","nodeType":"YulFunctionCall","src":"2359:9:97"},"variables":[{"name":"memPtr","nativeSrc":"2349:6:97","nodeType":"YulTypedName","src":"2349:6:97","type":""}]},{"nativeSrc":"2377:71:97","nodeType":"YulVariableDeclaration","src":"2377:71:97","value":{"arguments":[{"name":"memPtr","nativeSrc":"2399:6:97","nodeType":"YulIdentifier","src":"2399:6:97"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nativeSrc":"2423:2:97","nodeType":"YulIdentifier","src":"2423:2:97"},{"kind":"number","nativeSrc":"2427:4:97","nodeType":"YulLiteral","src":"2427:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2419:3:97","nodeType":"YulIdentifier","src":"2419:3:97"},"nativeSrc":"2419:13:97","nodeType":"YulFunctionCall","src":"2419:13:97"},{"name":"_4","nativeSrc":"2434:2:97","nodeType":"YulIdentifier","src":"2434:2:97"}],"functionName":{"name":"and","nativeSrc":"2415:3:97","nodeType":"YulIdentifier","src":"2415:3:97"},"nativeSrc":"2415:22:97","nodeType":"YulFunctionCall","src":"2415:22:97"},{"kind":"number","nativeSrc":"2439:2:97","nodeType":"YulLiteral","src":"2439:2:97","type":"","value":"63"}],"functionName":{"name":"add","nativeSrc":"2411:3:97","nodeType":"YulIdentifier","src":"2411:3:97"},"nativeSrc":"2411:31:97","nodeType":"YulFunctionCall","src":"2411:31:97"},{"name":"_4","nativeSrc":"2444:2:97","nodeType":"YulIdentifier","src":"2444:2:97"}],"functionName":{"name":"and","nativeSrc":"2407:3:97","nodeType":"YulIdentifier","src":"2407:3:97"},"nativeSrc":"2407:40:97","nodeType":"YulFunctionCall","src":"2407:40:97"}],"functionName":{"name":"add","nativeSrc":"2395:3:97","nodeType":"YulIdentifier","src":"2395:3:97"},"nativeSrc":"2395:53:97","nodeType":"YulFunctionCall","src":"2395:53:97"},"variables":[{"name":"newFreePtr","nativeSrc":"2381:10:97","nodeType":"YulTypedName","src":"2381:10:97","type":""}]},{"body":{"nativeSrc":"2507:22:97","nodeType":"YulBlock","src":"2507:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2509:16:97","nodeType":"YulIdentifier","src":"2509:16:97"},"nativeSrc":"2509:18:97","nodeType":"YulFunctionCall","src":"2509:18:97"},"nativeSrc":"2509:18:97","nodeType":"YulExpressionStatement","src":"2509:18:97"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"2466:10:97","nodeType":"YulIdentifier","src":"2466:10:97"},{"name":"_1","nativeSrc":"2478:2:97","nodeType":"YulIdentifier","src":"2478:2:97"}],"functionName":{"name":"gt","nativeSrc":"2463:2:97","nodeType":"YulIdentifier","src":"2463:2:97"},"nativeSrc":"2463:18:97","nodeType":"YulFunctionCall","src":"2463:18:97"},{"arguments":[{"name":"newFreePtr","nativeSrc":"2486:10:97","nodeType":"YulIdentifier","src":"2486:10:97"},{"name":"memPtr","nativeSrc":"2498:6:97","nodeType":"YulIdentifier","src":"2498:6:97"}],"functionName":{"name":"lt","nativeSrc":"2483:2:97","nodeType":"YulIdentifier","src":"2483:2:97"},"nativeSrc":"2483:22:97","nodeType":"YulFunctionCall","src":"2483:22:97"}],"functionName":{"name":"or","nativeSrc":"2460:2:97","nodeType":"YulIdentifier","src":"2460:2:97"},"nativeSrc":"2460:46:97","nodeType":"YulFunctionCall","src":"2460:46:97"},"nativeSrc":"2457:72:97","nodeType":"YulIf","src":"2457:72:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2545:2:97","nodeType":"YulLiteral","src":"2545:2:97","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"2549:10:97","nodeType":"YulIdentifier","src":"2549:10:97"}],"functionName":{"name":"mstore","nativeSrc":"2538:6:97","nodeType":"YulIdentifier","src":"2538:6:97"},"nativeSrc":"2538:22:97","nodeType":"YulFunctionCall","src":"2538:22:97"},"nativeSrc":"2538:22:97","nodeType":"YulExpressionStatement","src":"2538:22:97"},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"2576:6:97","nodeType":"YulIdentifier","src":"2576:6:97"},{"name":"_3","nativeSrc":"2584:2:97","nodeType":"YulIdentifier","src":"2584:2:97"}],"functionName":{"name":"mstore","nativeSrc":"2569:6:97","nodeType":"YulIdentifier","src":"2569:6:97"},"nativeSrc":"2569:18:97","nodeType":"YulFunctionCall","src":"2569:18:97"},"nativeSrc":"2569:18:97","nodeType":"YulExpressionStatement","src":"2569:18:97"},{"body":{"nativeSrc":"2633:16:97","nodeType":"YulBlock","src":"2633:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2642:1:97","nodeType":"YulLiteral","src":"2642:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"2645:1:97","nodeType":"YulLiteral","src":"2645:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2635:6:97","nodeType":"YulIdentifier","src":"2635:6:97"},"nativeSrc":"2635:12:97","nodeType":"YulFunctionCall","src":"2635:12:97"},"nativeSrc":"2635:12:97","nodeType":"YulExpressionStatement","src":"2635:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"2610:2:97","nodeType":"YulIdentifier","src":"2610:2:97"},{"name":"_3","nativeSrc":"2614:2:97","nodeType":"YulIdentifier","src":"2614:2:97"}],"functionName":{"name":"add","nativeSrc":"2606:3:97","nodeType":"YulIdentifier","src":"2606:3:97"},"nativeSrc":"2606:11:97","nodeType":"YulFunctionCall","src":"2606:11:97"},{"kind":"number","nativeSrc":"2619:2:97","nodeType":"YulLiteral","src":"2619:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2602:3:97","nodeType":"YulIdentifier","src":"2602:3:97"},"nativeSrc":"2602:20:97","nodeType":"YulFunctionCall","src":"2602:20:97"},{"name":"dataEnd","nativeSrc":"2624:7:97","nodeType":"YulIdentifier","src":"2624:7:97"}],"functionName":{"name":"gt","nativeSrc":"2599:2:97","nodeType":"YulIdentifier","src":"2599:2:97"},"nativeSrc":"2599:33:97","nodeType":"YulFunctionCall","src":"2599:33:97"},"nativeSrc":"2596:53:97","nodeType":"YulIf","src":"2596:53:97"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"2675:6:97","nodeType":"YulIdentifier","src":"2675:6:97"},{"kind":"number","nativeSrc":"2683:2:97","nodeType":"YulLiteral","src":"2683:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2671:3:97","nodeType":"YulIdentifier","src":"2671:3:97"},"nativeSrc":"2671:15:97","nodeType":"YulFunctionCall","src":"2671:15:97"},{"arguments":[{"name":"_2","nativeSrc":"2692:2:97","nodeType":"YulIdentifier","src":"2692:2:97"},{"kind":"number","nativeSrc":"2696:2:97","nodeType":"YulLiteral","src":"2696:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2688:3:97","nodeType":"YulIdentifier","src":"2688:3:97"},"nativeSrc":"2688:11:97","nodeType":"YulFunctionCall","src":"2688:11:97"},{"name":"_3","nativeSrc":"2701:2:97","nodeType":"YulIdentifier","src":"2701:2:97"}],"functionName":{"name":"calldatacopy","nativeSrc":"2658:12:97","nodeType":"YulIdentifier","src":"2658:12:97"},"nativeSrc":"2658:46:97","nodeType":"YulFunctionCall","src":"2658:46:97"},"nativeSrc":"2658:46:97","nodeType":"YulExpressionStatement","src":"2658:46:97"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"2728:6:97","nodeType":"YulIdentifier","src":"2728:6:97"},{"name":"_3","nativeSrc":"2736:2:97","nodeType":"YulIdentifier","src":"2736:2:97"}],"functionName":{"name":"add","nativeSrc":"2724:3:97","nodeType":"YulIdentifier","src":"2724:3:97"},"nativeSrc":"2724:15:97","nodeType":"YulFunctionCall","src":"2724:15:97"},{"kind":"number","nativeSrc":"2741:2:97","nodeType":"YulLiteral","src":"2741:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2720:3:97","nodeType":"YulIdentifier","src":"2720:3:97"},"nativeSrc":"2720:24:97","nodeType":"YulFunctionCall","src":"2720:24:97"},{"kind":"number","nativeSrc":"2746:1:97","nodeType":"YulLiteral","src":"2746:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2713:6:97","nodeType":"YulIdentifier","src":"2713:6:97"},"nativeSrc":"2713:35:97","nodeType":"YulFunctionCall","src":"2713:35:97"},"nativeSrc":"2713:35:97","nodeType":"YulExpressionStatement","src":"2713:35:97"},{"nativeSrc":"2757:16:97","nodeType":"YulAssignment","src":"2757:16:97","value":{"name":"memPtr","nativeSrc":"2767:6:97","nodeType":"YulIdentifier","src":"2767:6:97"},"variableNames":[{"name":"value2","nativeSrc":"2757:6:97","nodeType":"YulIdentifier","src":"2757:6:97"}]}]},"name":"abi_decode_tuple_t_contract$_TransparentUpgradeableProxy_$22153t_addresst_bytes_memory_ptr","nativeSrc":"1428:1351:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1528:9:97","nodeType":"YulTypedName","src":"1528:9:97","type":""},{"name":"dataEnd","nativeSrc":"1539:7:97","nodeType":"YulTypedName","src":"1539:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1551:6:97","nodeType":"YulTypedName","src":"1551:6:97","type":""},{"name":"value1","nativeSrc":"1559:6:97","nodeType":"YulTypedName","src":"1559:6:97","type":""},{"name":"value2","nativeSrc":"1567:6:97","nodeType":"YulTypedName","src":"1567:6:97","type":""}],"src":"1428:1351:97"},{"body":{"nativeSrc":"2854:206:97","nodeType":"YulBlock","src":"2854:206:97","statements":[{"body":{"nativeSrc":"2900:16:97","nodeType":"YulBlock","src":"2900:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2909:1:97","nodeType":"YulLiteral","src":"2909:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"2912:1:97","nodeType":"YulLiteral","src":"2912:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2902:6:97","nodeType":"YulIdentifier","src":"2902:6:97"},"nativeSrc":"2902:12:97","nodeType":"YulFunctionCall","src":"2902:12:97"},"nativeSrc":"2902:12:97","nodeType":"YulExpressionStatement","src":"2902:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2875:7:97","nodeType":"YulIdentifier","src":"2875:7:97"},{"name":"headStart","nativeSrc":"2884:9:97","nodeType":"YulIdentifier","src":"2884:9:97"}],"functionName":{"name":"sub","nativeSrc":"2871:3:97","nodeType":"YulIdentifier","src":"2871:3:97"},"nativeSrc":"2871:23:97","nodeType":"YulFunctionCall","src":"2871:23:97"},{"kind":"number","nativeSrc":"2896:2:97","nodeType":"YulLiteral","src":"2896:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2867:3:97","nodeType":"YulIdentifier","src":"2867:3:97"},"nativeSrc":"2867:32:97","nodeType":"YulFunctionCall","src":"2867:32:97"},"nativeSrc":"2864:52:97","nodeType":"YulIf","src":"2864:52:97"},{"nativeSrc":"2925:36:97","nodeType":"YulVariableDeclaration","src":"2925:36:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2951:9:97","nodeType":"YulIdentifier","src":"2951:9:97"}],"functionName":{"name":"calldataload","nativeSrc":"2938:12:97","nodeType":"YulIdentifier","src":"2938:12:97"},"nativeSrc":"2938:23:97","nodeType":"YulFunctionCall","src":"2938:23:97"},"variables":[{"name":"value","nativeSrc":"2929:5:97","nodeType":"YulTypedName","src":"2929:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3024:5:97","nodeType":"YulIdentifier","src":"3024:5:97"}],"functionName":{"name":"validator_revert_contract_TransparentUpgradeableProxy","nativeSrc":"2970:53:97","nodeType":"YulIdentifier","src":"2970:53:97"},"nativeSrc":"2970:60:97","nodeType":"YulFunctionCall","src":"2970:60:97"},"nativeSrc":"2970:60:97","nodeType":"YulExpressionStatement","src":"2970:60:97"},{"nativeSrc":"3039:15:97","nodeType":"YulAssignment","src":"3039:15:97","value":{"name":"value","nativeSrc":"3049:5:97","nodeType":"YulIdentifier","src":"3049:5:97"},"variableNames":[{"name":"value0","nativeSrc":"3039:6:97","nodeType":"YulIdentifier","src":"3039:6:97"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"2784:276:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2820:9:97","nodeType":"YulTypedName","src":"2820:9:97","type":""},{"name":"dataEnd","nativeSrc":"2831:7:97","nodeType":"YulTypedName","src":"2831:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2843:6:97","nodeType":"YulTypedName","src":"2843:6:97","type":""}],"src":"2784:276:97"},{"body":{"nativeSrc":"3256:122:97","nodeType":"YulBlock","src":"3256:122:97","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3273:3:97","nodeType":"YulIdentifier","src":"3273:3:97"},{"kind":"number","nativeSrc":"3278:66:97","nodeType":"YulLiteral","src":"3278:66:97","type":"","value":"0x5c60da1b00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"3266:6:97","nodeType":"YulIdentifier","src":"3266:6:97"},"nativeSrc":"3266:79:97","nodeType":"YulFunctionCall","src":"3266:79:97"},"nativeSrc":"3266:79:97","nodeType":"YulExpressionStatement","src":"3266:79:97"},{"nativeSrc":"3354:18:97","nodeType":"YulAssignment","src":"3354:18:97","value":{"arguments":[{"name":"pos","nativeSrc":"3365:3:97","nodeType":"YulIdentifier","src":"3365:3:97"},{"kind":"number","nativeSrc":"3370:1:97","nodeType":"YulLiteral","src":"3370:1:97","type":"","value":"4"}],"functionName":{"name":"add","nativeSrc":"3361:3:97","nodeType":"YulIdentifier","src":"3361:3:97"},"nativeSrc":"3361:11:97","nodeType":"YulFunctionCall","src":"3361:11:97"},"variableNames":[{"name":"end","nativeSrc":"3354:3:97","nodeType":"YulIdentifier","src":"3354:3:97"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"3065:313:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3240:3:97","nodeType":"YulTypedName","src":"3240:3:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"3248:3:97","nodeType":"YulTypedName","src":"3248:3:97","type":""}],"src":"3065:313:97"},{"body":{"nativeSrc":"3472:199:97","nodeType":"YulBlock","src":"3472:199:97","statements":[{"body":{"nativeSrc":"3518:16:97","nodeType":"YulBlock","src":"3518:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3527:1:97","nodeType":"YulLiteral","src":"3527:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"3530:1:97","nodeType":"YulLiteral","src":"3530:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3520:6:97","nodeType":"YulIdentifier","src":"3520:6:97"},"nativeSrc":"3520:12:97","nodeType":"YulFunctionCall","src":"3520:12:97"},"nativeSrc":"3520:12:97","nodeType":"YulExpressionStatement","src":"3520:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3493:7:97","nodeType":"YulIdentifier","src":"3493:7:97"},{"name":"headStart","nativeSrc":"3502:9:97","nodeType":"YulIdentifier","src":"3502:9:97"}],"functionName":{"name":"sub","nativeSrc":"3489:3:97","nodeType":"YulIdentifier","src":"3489:3:97"},"nativeSrc":"3489:23:97","nodeType":"YulFunctionCall","src":"3489:23:97"},{"kind":"number","nativeSrc":"3514:2:97","nodeType":"YulLiteral","src":"3514:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3485:3:97","nodeType":"YulIdentifier","src":"3485:3:97"},"nativeSrc":"3485:32:97","nodeType":"YulFunctionCall","src":"3485:32:97"},"nativeSrc":"3482:52:97","nodeType":"YulIf","src":"3482:52:97"},{"nativeSrc":"3543:29:97","nodeType":"YulVariableDeclaration","src":"3543:29:97","value":{"arguments":[{"name":"headStart","nativeSrc":"3562:9:97","nodeType":"YulIdentifier","src":"3562:9:97"}],"functionName":{"name":"mload","nativeSrc":"3556:5:97","nodeType":"YulIdentifier","src":"3556:5:97"},"nativeSrc":"3556:16:97","nodeType":"YulFunctionCall","src":"3556:16:97"},"variables":[{"name":"value","nativeSrc":"3547:5:97","nodeType":"YulTypedName","src":"3547:5:97","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3635:5:97","nodeType":"YulIdentifier","src":"3635:5:97"}],"functionName":{"name":"validator_revert_contract_TransparentUpgradeableProxy","nativeSrc":"3581:53:97","nodeType":"YulIdentifier","src":"3581:53:97"},"nativeSrc":"3581:60:97","nodeType":"YulFunctionCall","src":"3581:60:97"},"nativeSrc":"3581:60:97","nodeType":"YulExpressionStatement","src":"3581:60:97"},{"nativeSrc":"3650:15:97","nodeType":"YulAssignment","src":"3650:15:97","value":{"name":"value","nativeSrc":"3660:5:97","nodeType":"YulIdentifier","src":"3660:5:97"},"variableNames":[{"name":"value0","nativeSrc":"3650:6:97","nodeType":"YulIdentifier","src":"3650:6:97"}]}]},"name":"abi_decode_tuple_t_address_payable_fromMemory","nativeSrc":"3383:288:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3438:9:97","nodeType":"YulTypedName","src":"3438:9:97","type":""},{"name":"dataEnd","nativeSrc":"3449:7:97","nodeType":"YulTypedName","src":"3449:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3461:6:97","nodeType":"YulTypedName","src":"3461:6:97","type":""}],"src":"3383:288:97"},{"body":{"nativeSrc":"3850:182:97","nodeType":"YulBlock","src":"3850:182:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3867:9:97","nodeType":"YulIdentifier","src":"3867:9:97"},{"kind":"number","nativeSrc":"3878:2:97","nodeType":"YulLiteral","src":"3878:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"3860:6:97","nodeType":"YulIdentifier","src":"3860:6:97"},"nativeSrc":"3860:21:97","nodeType":"YulFunctionCall","src":"3860:21:97"},"nativeSrc":"3860:21:97","nodeType":"YulExpressionStatement","src":"3860:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3901:9:97","nodeType":"YulIdentifier","src":"3901:9:97"},{"kind":"number","nativeSrc":"3912:2:97","nodeType":"YulLiteral","src":"3912:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3897:3:97","nodeType":"YulIdentifier","src":"3897:3:97"},"nativeSrc":"3897:18:97","nodeType":"YulFunctionCall","src":"3897:18:97"},{"kind":"number","nativeSrc":"3917:2:97","nodeType":"YulLiteral","src":"3917:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"3890:6:97","nodeType":"YulIdentifier","src":"3890:6:97"},"nativeSrc":"3890:30:97","nodeType":"YulFunctionCall","src":"3890:30:97"},"nativeSrc":"3890:30:97","nodeType":"YulExpressionStatement","src":"3890:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3940:9:97","nodeType":"YulIdentifier","src":"3940:9:97"},{"kind":"number","nativeSrc":"3951:2:97","nodeType":"YulLiteral","src":"3951:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3936:3:97","nodeType":"YulIdentifier","src":"3936:3:97"},"nativeSrc":"3936:18:97","nodeType":"YulFunctionCall","src":"3936:18:97"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nativeSrc":"3956:34:97","nodeType":"YulLiteral","src":"3956:34:97","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nativeSrc":"3929:6:97","nodeType":"YulIdentifier","src":"3929:6:97"},"nativeSrc":"3929:62:97","nodeType":"YulFunctionCall","src":"3929:62:97"},"nativeSrc":"3929:62:97","nodeType":"YulExpressionStatement","src":"3929:62:97"},{"nativeSrc":"4000:26:97","nodeType":"YulAssignment","src":"4000:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"4012:9:97","nodeType":"YulIdentifier","src":"4012:9:97"},{"kind":"number","nativeSrc":"4023:2:97","nodeType":"YulLiteral","src":"4023:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4008:3:97","nodeType":"YulIdentifier","src":"4008:3:97"},"nativeSrc":"4008:18:97","nodeType":"YulFunctionCall","src":"4008:18:97"},"variableNames":[{"name":"tail","nativeSrc":"4000:4:97","nodeType":"YulIdentifier","src":"4000:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3676:356:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3827:9:97","nodeType":"YulTypedName","src":"3827:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3841:4:97","nodeType":"YulTypedName","src":"3841:4:97","type":""}],"src":"3676:356:97"},{"body":{"nativeSrc":"4184:578:97","nodeType":"YulBlock","src":"4184:578:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4201:9:97","nodeType":"YulIdentifier","src":"4201:9:97"},{"arguments":[{"name":"value0","nativeSrc":"4216:6:97","nodeType":"YulIdentifier","src":"4216:6:97"},{"kind":"number","nativeSrc":"4224:42:97","nodeType":"YulLiteral","src":"4224:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"4212:3:97","nodeType":"YulIdentifier","src":"4212:3:97"},"nativeSrc":"4212:55:97","nodeType":"YulFunctionCall","src":"4212:55:97"}],"functionName":{"name":"mstore","nativeSrc":"4194:6:97","nodeType":"YulIdentifier","src":"4194:6:97"},"nativeSrc":"4194:74:97","nodeType":"YulFunctionCall","src":"4194:74:97"},"nativeSrc":"4194:74:97","nodeType":"YulExpressionStatement","src":"4194:74:97"},{"nativeSrc":"4277:12:97","nodeType":"YulVariableDeclaration","src":"4277:12:97","value":{"kind":"number","nativeSrc":"4287:2:97","nodeType":"YulLiteral","src":"4287:2:97","type":"","value":"32"},"variables":[{"name":"_1","nativeSrc":"4281:2:97","nodeType":"YulTypedName","src":"4281:2:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4309:9:97","nodeType":"YulIdentifier","src":"4309:9:97"},{"kind":"number","nativeSrc":"4320:2:97","nodeType":"YulLiteral","src":"4320:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4305:3:97","nodeType":"YulIdentifier","src":"4305:3:97"},"nativeSrc":"4305:18:97","nodeType":"YulFunctionCall","src":"4305:18:97"},{"kind":"number","nativeSrc":"4325:2:97","nodeType":"YulLiteral","src":"4325:2:97","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"4298:6:97","nodeType":"YulIdentifier","src":"4298:6:97"},"nativeSrc":"4298:30:97","nodeType":"YulFunctionCall","src":"4298:30:97"},"nativeSrc":"4298:30:97","nodeType":"YulExpressionStatement","src":"4298:30:97"},{"nativeSrc":"4337:27:97","nodeType":"YulVariableDeclaration","src":"4337:27:97","value":{"arguments":[{"name":"value1","nativeSrc":"4357:6:97","nodeType":"YulIdentifier","src":"4357:6:97"}],"functionName":{"name":"mload","nativeSrc":"4351:5:97","nodeType":"YulIdentifier","src":"4351:5:97"},"nativeSrc":"4351:13:97","nodeType":"YulFunctionCall","src":"4351:13:97"},"variables":[{"name":"length","nativeSrc":"4341:6:97","nodeType":"YulTypedName","src":"4341:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4384:9:97","nodeType":"YulIdentifier","src":"4384:9:97"},{"kind":"number","nativeSrc":"4395:2:97","nodeType":"YulLiteral","src":"4395:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4380:3:97","nodeType":"YulIdentifier","src":"4380:3:97"},"nativeSrc":"4380:18:97","nodeType":"YulFunctionCall","src":"4380:18:97"},{"name":"length","nativeSrc":"4400:6:97","nodeType":"YulIdentifier","src":"4400:6:97"}],"functionName":{"name":"mstore","nativeSrc":"4373:6:97","nodeType":"YulIdentifier","src":"4373:6:97"},"nativeSrc":"4373:34:97","nodeType":"YulFunctionCall","src":"4373:34:97"},"nativeSrc":"4373:34:97","nodeType":"YulExpressionStatement","src":"4373:34:97"},{"nativeSrc":"4416:10:97","nodeType":"YulVariableDeclaration","src":"4416:10:97","value":{"kind":"number","nativeSrc":"4425:1:97","nodeType":"YulLiteral","src":"4425:1:97","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"4420:1:97","nodeType":"YulTypedName","src":"4420:1:97","type":""}]},{"body":{"nativeSrc":"4485:90:97","nodeType":"YulBlock","src":"4485:90:97","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4514:9:97","nodeType":"YulIdentifier","src":"4514:9:97"},{"name":"i","nativeSrc":"4525:1:97","nodeType":"YulIdentifier","src":"4525:1:97"}],"functionName":{"name":"add","nativeSrc":"4510:3:97","nodeType":"YulIdentifier","src":"4510:3:97"},"nativeSrc":"4510:17:97","nodeType":"YulFunctionCall","src":"4510:17:97"},{"kind":"number","nativeSrc":"4529:2:97","nodeType":"YulLiteral","src":"4529:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4506:3:97","nodeType":"YulIdentifier","src":"4506:3:97"},"nativeSrc":"4506:26:97","nodeType":"YulFunctionCall","src":"4506:26:97"},{"arguments":[{"arguments":[{"arguments":[{"name":"value1","nativeSrc":"4548:6:97","nodeType":"YulIdentifier","src":"4548:6:97"},{"name":"i","nativeSrc":"4556:1:97","nodeType":"YulIdentifier","src":"4556:1:97"}],"functionName":{"name":"add","nativeSrc":"4544:3:97","nodeType":"YulIdentifier","src":"4544:3:97"},"nativeSrc":"4544:14:97","nodeType":"YulFunctionCall","src":"4544:14:97"},{"name":"_1","nativeSrc":"4560:2:97","nodeType":"YulIdentifier","src":"4560:2:97"}],"functionName":{"name":"add","nativeSrc":"4540:3:97","nodeType":"YulIdentifier","src":"4540:3:97"},"nativeSrc":"4540:23:97","nodeType":"YulFunctionCall","src":"4540:23:97"}],"functionName":{"name":"mload","nativeSrc":"4534:5:97","nodeType":"YulIdentifier","src":"4534:5:97"},"nativeSrc":"4534:30:97","nodeType":"YulFunctionCall","src":"4534:30:97"}],"functionName":{"name":"mstore","nativeSrc":"4499:6:97","nodeType":"YulIdentifier","src":"4499:6:97"},"nativeSrc":"4499:66:97","nodeType":"YulFunctionCall","src":"4499:66:97"},"nativeSrc":"4499:66:97","nodeType":"YulExpressionStatement","src":"4499:66:97"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"4446:1:97","nodeType":"YulIdentifier","src":"4446:1:97"},{"name":"length","nativeSrc":"4449:6:97","nodeType":"YulIdentifier","src":"4449:6:97"}],"functionName":{"name":"lt","nativeSrc":"4443:2:97","nodeType":"YulIdentifier","src":"4443:2:97"},"nativeSrc":"4443:13:97","nodeType":"YulFunctionCall","src":"4443:13:97"},"nativeSrc":"4435:140:97","nodeType":"YulForLoop","post":{"nativeSrc":"4457:19:97","nodeType":"YulBlock","src":"4457:19:97","statements":[{"nativeSrc":"4459:15:97","nodeType":"YulAssignment","src":"4459:15:97","value":{"arguments":[{"name":"i","nativeSrc":"4468:1:97","nodeType":"YulIdentifier","src":"4468:1:97"},{"name":"_1","nativeSrc":"4471:2:97","nodeType":"YulIdentifier","src":"4471:2:97"}],"functionName":{"name":"add","nativeSrc":"4464:3:97","nodeType":"YulIdentifier","src":"4464:3:97"},"nativeSrc":"4464:10:97","nodeType":"YulFunctionCall","src":"4464:10:97"},"variableNames":[{"name":"i","nativeSrc":"4459:1:97","nodeType":"YulIdentifier","src":"4459:1:97"}]}]},"pre":{"nativeSrc":"4439:3:97","nodeType":"YulBlock","src":"4439:3:97","statements":[]},"src":"4435:140:97"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4599:9:97","nodeType":"YulIdentifier","src":"4599:9:97"},{"name":"length","nativeSrc":"4610:6:97","nodeType":"YulIdentifier","src":"4610:6:97"}],"functionName":{"name":"add","nativeSrc":"4595:3:97","nodeType":"YulIdentifier","src":"4595:3:97"},"nativeSrc":"4595:22:97","nodeType":"YulFunctionCall","src":"4595:22:97"},{"kind":"number","nativeSrc":"4619:2:97","nodeType":"YulLiteral","src":"4619:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4591:3:97","nodeType":"YulIdentifier","src":"4591:3:97"},"nativeSrc":"4591:31:97","nodeType":"YulFunctionCall","src":"4591:31:97"},{"kind":"number","nativeSrc":"4624:1:97","nodeType":"YulLiteral","src":"4624:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4584:6:97","nodeType":"YulIdentifier","src":"4584:6:97"},"nativeSrc":"4584:42:97","nodeType":"YulFunctionCall","src":"4584:42:97"},"nativeSrc":"4584:42:97","nodeType":"YulExpressionStatement","src":"4584:42:97"},{"nativeSrc":"4635:121:97","nodeType":"YulAssignment","src":"4635:121:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4651:9:97","nodeType":"YulIdentifier","src":"4651:9:97"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"4670:6:97","nodeType":"YulIdentifier","src":"4670:6:97"},{"kind":"number","nativeSrc":"4678:2:97","nodeType":"YulLiteral","src":"4678:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"4666:3:97","nodeType":"YulIdentifier","src":"4666:3:97"},"nativeSrc":"4666:15:97","nodeType":"YulFunctionCall","src":"4666:15:97"},{"kind":"number","nativeSrc":"4683:66:97","nodeType":"YulLiteral","src":"4683:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"4662:3:97","nodeType":"YulIdentifier","src":"4662:3:97"},"nativeSrc":"4662:88:97","nodeType":"YulFunctionCall","src":"4662:88:97"}],"functionName":{"name":"add","nativeSrc":"4647:3:97","nodeType":"YulIdentifier","src":"4647:3:97"},"nativeSrc":"4647:104:97","nodeType":"YulFunctionCall","src":"4647:104:97"},{"kind":"number","nativeSrc":"4753:2:97","nodeType":"YulLiteral","src":"4753:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4643:3:97","nodeType":"YulIdentifier","src":"4643:3:97"},"nativeSrc":"4643:113:97","nodeType":"YulFunctionCall","src":"4643:113:97"},"variableNames":[{"name":"tail","nativeSrc":"4635:4:97","nodeType":"YulIdentifier","src":"4635:4:97"}]}]},"name":"abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"4037:725:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4145:9:97","nodeType":"YulTypedName","src":"4145:9:97","type":""},{"name":"value1","nativeSrc":"4156:6:97","nodeType":"YulTypedName","src":"4156:6:97","type":""},{"name":"value0","nativeSrc":"4164:6:97","nodeType":"YulTypedName","src":"4164:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4175:4:97","nodeType":"YulTypedName","src":"4175:4:97","type":""}],"src":"4037:725:97"},{"body":{"nativeSrc":"4941:228:97","nodeType":"YulBlock","src":"4941:228:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4958:9:97","nodeType":"YulIdentifier","src":"4958:9:97"},{"kind":"number","nativeSrc":"4969:2:97","nodeType":"YulLiteral","src":"4969:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"4951:6:97","nodeType":"YulIdentifier","src":"4951:6:97"},"nativeSrc":"4951:21:97","nodeType":"YulFunctionCall","src":"4951:21:97"},"nativeSrc":"4951:21:97","nodeType":"YulExpressionStatement","src":"4951:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4992:9:97","nodeType":"YulIdentifier","src":"4992:9:97"},{"kind":"number","nativeSrc":"5003:2:97","nodeType":"YulLiteral","src":"5003:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4988:3:97","nodeType":"YulIdentifier","src":"4988:3:97"},"nativeSrc":"4988:18:97","nodeType":"YulFunctionCall","src":"4988:18:97"},{"kind":"number","nativeSrc":"5008:2:97","nodeType":"YulLiteral","src":"5008:2:97","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"4981:6:97","nodeType":"YulIdentifier","src":"4981:6:97"},"nativeSrc":"4981:30:97","nodeType":"YulFunctionCall","src":"4981:30:97"},"nativeSrc":"4981:30:97","nodeType":"YulExpressionStatement","src":"4981:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5031:9:97","nodeType":"YulIdentifier","src":"5031:9:97"},{"kind":"number","nativeSrc":"5042:2:97","nodeType":"YulLiteral","src":"5042:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5027:3:97","nodeType":"YulIdentifier","src":"5027:3:97"},"nativeSrc":"5027:18:97","nodeType":"YulFunctionCall","src":"5027:18:97"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nativeSrc":"5047:34:97","nodeType":"YulLiteral","src":"5047:34:97","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nativeSrc":"5020:6:97","nodeType":"YulIdentifier","src":"5020:6:97"},"nativeSrc":"5020:62:97","nodeType":"YulFunctionCall","src":"5020:62:97"},"nativeSrc":"5020:62:97","nodeType":"YulExpressionStatement","src":"5020:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5102:9:97","nodeType":"YulIdentifier","src":"5102:9:97"},{"kind":"number","nativeSrc":"5113:2:97","nodeType":"YulLiteral","src":"5113:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5098:3:97","nodeType":"YulIdentifier","src":"5098:3:97"},"nativeSrc":"5098:18:97","nodeType":"YulFunctionCall","src":"5098:18:97"},{"hexValue":"646472657373","kind":"string","nativeSrc":"5118:8:97","nodeType":"YulLiteral","src":"5118:8:97","type":"","value":"ddress"}],"functionName":{"name":"mstore","nativeSrc":"5091:6:97","nodeType":"YulIdentifier","src":"5091:6:97"},"nativeSrc":"5091:36:97","nodeType":"YulFunctionCall","src":"5091:36:97"},"nativeSrc":"5091:36:97","nodeType":"YulExpressionStatement","src":"5091:36:97"},{"nativeSrc":"5136:27:97","nodeType":"YulAssignment","src":"5136:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"5148:9:97","nodeType":"YulIdentifier","src":"5148:9:97"},{"kind":"number","nativeSrc":"5159:3:97","nodeType":"YulLiteral","src":"5159:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"5144:3:97","nodeType":"YulIdentifier","src":"5144:3:97"},"nativeSrc":"5144:19:97","nodeType":"YulFunctionCall","src":"5144:19:97"},"variableNames":[{"name":"tail","nativeSrc":"5136:4:97","nodeType":"YulIdentifier","src":"5136:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"4767:402:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4918:9:97","nodeType":"YulTypedName","src":"4918:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4932:4:97","nodeType":"YulTypedName","src":"4932:4:97","type":""}],"src":"4767:402:97"},{"body":{"nativeSrc":"5365:122:97","nodeType":"YulBlock","src":"5365:122:97","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5382:3:97","nodeType":"YulIdentifier","src":"5382:3:97"},{"kind":"number","nativeSrc":"5387:66:97","nodeType":"YulLiteral","src":"5387:66:97","type":"","value":"0xf851a44000000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"5375:6:97","nodeType":"YulIdentifier","src":"5375:6:97"},"nativeSrc":"5375:79:97","nodeType":"YulFunctionCall","src":"5375:79:97"},"nativeSrc":"5375:79:97","nodeType":"YulExpressionStatement","src":"5375:79:97"},{"nativeSrc":"5463:18:97","nodeType":"YulAssignment","src":"5463:18:97","value":{"arguments":[{"name":"pos","nativeSrc":"5474:3:97","nodeType":"YulIdentifier","src":"5474:3:97"},{"kind":"number","nativeSrc":"5479:1:97","nodeType":"YulLiteral","src":"5479:1:97","type":"","value":"4"}],"functionName":{"name":"add","nativeSrc":"5470:3:97","nodeType":"YulIdentifier","src":"5470:3:97"},"nativeSrc":"5470:11:97","nodeType":"YulFunctionCall","src":"5470:11:97"},"variableNames":[{"name":"end","nativeSrc":"5463:3:97","nodeType":"YulIdentifier","src":"5463:3:97"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"5174:313:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5349:3:97","nodeType":"YulTypedName","src":"5349:3:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5357:3:97","nodeType":"YulTypedName","src":"5357:3:97","type":""}],"src":"5174:313:97"}]},"contents":"{\n    { }\n    function validator_revert_contract_TransparentUpgradeableProxy(value)\n    {\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_contract$_TransparentUpgradeableProxy_$22153(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_contract_TransparentUpgradeableProxy(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_contract$_TransparentUpgradeableProxy_$22153t_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_contract_TransparentUpgradeableProxy(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_contract_TransparentUpgradeableProxy(value_1)\n        value1 := value_1\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function abi_decode_tuple_t_contract$_TransparentUpgradeableProxy_$22153t_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_contract_TransparentUpgradeableProxy(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_contract_TransparentUpgradeableProxy(value_1)\n        value1 := value_1\n        let offset := calldataload(add(headStart, 64))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n        let _3 := calldataload(_2)\n        if gt(_3, _1) { panic_error_0x41() }\n        let _4 := 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(_3, 0x1f), _4), 63), _4))\n        if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, _3)\n        if gt(add(add(_2, _3), 32), dataEnd) { revert(0, 0) }\n        calldatacopy(add(memPtr, 32), add(_2, 32), _3)\n        mstore(add(add(memPtr, _3), 32), 0)\n        value2 := memPtr\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_contract_TransparentUpgradeableProxy(value)\n        value0 := value\n    }\n    function abi_encode_tuple_packed_t_stringliteral_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos) -> end\n    {\n        mstore(pos, 0x5c60da1b00000000000000000000000000000000000000000000000000000000)\n        end := add(pos, 4)\n    }\n    function abi_decode_tuple_t_address_payable_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_contract_TransparentUpgradeableProxy(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n        let _1 := 32\n        mstore(add(headStart, 32), 64)\n        let length := mload(value1)\n        mstore(add(headStart, 64), length)\n        let i := 0\n        for { } lt(i, length) { i := add(i, _1) }\n        {\n            mstore(add(add(headStart, i), 96), mload(add(add(value1, i), _1)))\n        }\n        mstore(add(add(headStart, length), 96), 0)\n        tail := add(add(headStart, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 96)\n    }\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n        mstore(add(headStart, 96), \"ddress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_packed_t_stringliteral_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos) -> end\n    {\n        mstore(pos, 0xf851a44000000000000000000000000000000000000000000000000000000000)\n        end := add(pos, 4)\n    }\n}","id":97,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461012b57806399a88ec41461013e578063f2fde38b1461015e578063f3b7dead1461017e57600080fd5b8063204e1c7a14610080578063715018a6146100c95780637eff275e146100e05780638da5cb5b14610100575b600080fd5b34801561008c57600080fd5b506100a061009b3660046107e4565b61019e565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100d557600080fd5b506100de610255565b005b3480156100ec57600080fd5b506100de6100fb366004610808565b6102e7565b34801561010c57600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff166100a0565b6100de610139366004610870565b6103ee565b34801561014a57600080fd5b506100de610159366004610808565b6104fc565b34801561016a57600080fd5b506100de6101793660046107e4565b6105d1565b34801561018a57600080fd5b506100a06101993660046107e4565b610701565b60008060008373ffffffffffffffffffffffffffffffffffffffff166040516101ea907f5c60da1b00000000000000000000000000000000000000000000000000000000815260040190565b600060405180830381855afa9150503d8060008114610225576040519150601f19603f3d011682016040523d82523d6000602084013e61022a565b606091505b50915091508161023957600080fd5b8080602001905181019061024d9190610964565b949350505050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146102db576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6102e5600061074d565b565b60005473ffffffffffffffffffffffffffffffffffffffff163314610368576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102d2565b6040517f8f28397000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8281166004830152831690638f283970906024015b600060405180830381600087803b1580156103d257600080fd5b505af11580156103e6573d6000803e3d6000fd5b505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461046f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102d2565b6040517f4f1ef28600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841690634f1ef2869034906104c59086908690600401610981565b6000604051808303818588803b1580156104de57600080fd5b505af11580156104f2573d6000803e3d6000fd5b5050505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461057d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102d2565b6040517f3659cfe600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8281166004830152831690633659cfe6906024016103b8565b60005473ffffffffffffffffffffffffffffffffffffffff163314610652576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102d2565b73ffffffffffffffffffffffffffffffffffffffff81166106f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102d2565b6106fe8161074d565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff166040516101ea907ff851a44000000000000000000000000000000000000000000000000000000000815260040190565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b73ffffffffffffffffffffffffffffffffffffffff811681146106fe57600080fd5b6000602082840312156107f657600080fd5b8135610801816107c2565b9392505050565b6000806040838503121561081b57600080fd5b8235610826816107c2565b91506020830135610836816107c2565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060006060848603121561088557600080fd5b8335610890816107c2565b925060208401356108a0816107c2565b9150604084013567ffffffffffffffff808211156108bd57600080fd5b818601915086601f8301126108d157600080fd5b8135818111156108e3576108e3610841565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561092957610929610841565b8160405282815289602084870101111561094257600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b60006020828403121561097657600080fd5b8151610801816107c2565b73ffffffffffffffffffffffffffffffffffffffff831681526000602060406020840152835180604085015260005b818110156109cc578581018301518582016060015282016109b0565b5060006060828601015260607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010192505050939250505056fea2646970667358221220c8b87e24bc510b348206f64f4e9e1d933af610bf37c2ebe141148cb2bdd2610264736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x7B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9623609D GT PUSH2 0x4E JUMPI DUP1 PUSH4 0x9623609D EQ PUSH2 0x12B JUMPI DUP1 PUSH4 0x99A88EC4 EQ PUSH2 0x13E JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x15E JUMPI DUP1 PUSH4 0xF3B7DEAD EQ PUSH2 0x17E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x204E1C7A EQ PUSH2 0x80 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xC9 JUMPI DUP1 PUSH4 0x7EFF275E EQ PUSH2 0xE0 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x100 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA0 PUSH2 0x9B CALLDATASIZE PUSH1 0x4 PUSH2 0x7E4 JUMP JUMPDEST PUSH2 0x19E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xDE PUSH2 0x255 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xEC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xDE PUSH2 0xFB CALLDATASIZE PUSH1 0x4 PUSH2 0x808 JUMP JUMPDEST PUSH2 0x2E7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x10C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xA0 JUMP JUMPDEST PUSH2 0xDE PUSH2 0x139 CALLDATASIZE PUSH1 0x4 PUSH2 0x870 JUMP JUMPDEST PUSH2 0x3EE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x14A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xDE PUSH2 0x159 CALLDATASIZE PUSH1 0x4 PUSH2 0x808 JUMP JUMPDEST PUSH2 0x4FC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x16A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xDE PUSH2 0x179 CALLDATASIZE PUSH1 0x4 PUSH2 0x7E4 JUMP JUMPDEST PUSH2 0x5D1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA0 PUSH2 0x199 CALLDATASIZE PUSH1 0x4 PUSH2 0x7E4 JUMP JUMPDEST PUSH2 0x701 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x40 MLOAD PUSH2 0x1EA SWAP1 PUSH32 0x5C60DA1B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS STATICCALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x225 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x22A JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x239 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x24D SWAP2 SWAP1 PUSH2 0x964 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x2DB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2E5 PUSH1 0x0 PUSH2 0x74D JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x368 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2D2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8F28397000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP4 AND SWAP1 PUSH4 0x8F283970 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x46F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2D2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x4F1EF28600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND SWAP1 PUSH4 0x4F1EF286 SWAP1 CALLVALUE SWAP1 PUSH2 0x4C5 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x981 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4F2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x57D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2D2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x3659CFE600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP4 AND SWAP1 PUSH4 0x3659CFE6 SWAP1 PUSH1 0x24 ADD PUSH2 0x3B8 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x652 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2D2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x6F5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2D2 JUMP JUMPDEST PUSH2 0x6FE DUP2 PUSH2 0x74D JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x40 MLOAD PUSH2 0x1EA SWAP1 PUSH32 0xF851A44000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x6FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x7F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x801 DUP2 PUSH2 0x7C2 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x81B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x826 DUP2 PUSH2 0x7C2 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x836 DUP2 PUSH2 0x7C2 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x885 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x890 DUP2 PUSH2 0x7C2 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x8A0 DUP2 PUSH2 0x7C2 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x8BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x8D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x8E3 JUMPI PUSH2 0x8E3 PUSH2 0x841 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x929 JUMPI PUSH2 0x929 PUSH2 0x841 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP10 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x942 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP6 POP POP POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x976 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x801 DUP2 PUSH2 0x7C2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 PUSH1 0x40 PUSH1 0x20 DUP5 ADD MSTORE DUP4 MLOAD DUP1 PUSH1 0x40 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x9CC JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x60 ADD MSTORE DUP3 ADD PUSH2 0x9B0 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x60 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x60 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC8 0xB8 PUSH31 0x24BC510B348206F64F4E9E1D933AF610BF37C2EBE141148CB2BDD261026473 PUSH16 0x6C634300081900330000000000000000 ","sourceMap":"435:2470:90:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;701:437;;;;;;;;;;-1:-1:-1;701:437:90;;;;;:::i;:::-;;:::i;:::-;;;696:42:97;684:55;;;666:74;;654:2;639:18;701:437:90;;;;;;;1689:101:84;;;;;;;;;;;;;:::i;:::-;;1891:148:90;;;;;;;;;;-1:-1:-1;1891:148:90;;;;;:::i;:::-;;:::i;1057:85:84:-;;;;;;;;;;-1:-1:-1;1103:7:84;1129:6;;;1057:85;;2659:244:90;;;;;;:::i;:::-;;:::i;2244:149::-;;;;;;;;;;-1:-1:-1;2244:149:90;;;;;:::i;:::-;;:::i;1939:198:84:-;;;;;;;;;;-1:-1:-1;1939:198:84;;;;;:::i;:::-;;:::i;1298:419:90:-;;;;;;;;;;-1:-1:-1;1298:419:90;;;;;:::i;:::-;;:::i;701:437::-;797:7;974:12;988:23;1023:5;1015:25;;:40;;;;3278:66:97;3266:79;;3370:1;3361:11;;3065:313;1015:40:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;973:82;;;;1073:7;1065:16;;;;;;1109:10;1098:33;;;;;;;;;;;;:::i;:::-;1091:40;701:437;-1:-1:-1;;;;701:437:90:o;1689:101:84:-;1103:7;1129:6;1269:23;1129:6;719:10:93;1269:23:84;1261:68;;;;;;;3878:2:97;1261:68:84;;;3860:21:97;;;3897:18;;;3890:30;3956:34;3936:18;;;3929:62;4008:18;;1261:68:84;;;;;;;;;1753:30:::1;1780:1;1753:18;:30::i;:::-;1689:101::o:0;1891:148:90:-;1103:7:84;1129:6;1269:23;1129:6;719:10:93;1269:23:84;1261:68;;;;;;;3878:2:97;1261:68:84;;;3860:21:97;;;3897:18;;;3890:30;3956:34;3936:18;;;3929:62;4008:18;;1261:68:84;3676:356:97;1261:68:84;2005:27:90::1;::::0;;;;:17:::1;684:55:97::0;;;2005:27:90::1;::::0;::::1;666:74:97::0;2005:17:90;::::1;::::0;::::1;::::0;639:18:97;;2005:27:90::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1891:148:::0;;:::o;2659:244::-;1103:7:84;1129:6;1269:23;1129:6;719:10:93;1269:23:84;1261:68;;;;;;;3878:2:97;1261:68:84;;;3860:21:97;;;3897:18;;;3890:30;3956:34;3936:18;;;3929:62;4008:18;;1261:68:84;3676:356:97;1261:68:84;2834:62:90::1;::::0;;;;:22:::1;::::0;::::1;::::0;::::1;::::0;2864:9:::1;::::0;2834:62:::1;::::0;2875:14;;2891:4;;2834:62:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;2659:244:::0;;;:::o;2244:149::-;1103:7:84;1129:6;1269:23;1129:6;719:10:93;1269:23:84;1261:68;;;;;;;3878:2:97;1261:68:84;;;3860:21:97;;;3897:18;;;3890:30;3956:34;3936:18;;;3929:62;4008:18;;1261:68:84;3676:356:97;1261:68:84;2355:31:90::1;::::0;;;;:15:::1;684:55:97::0;;;2355:31:90::1;::::0;::::1;666:74:97::0;2355:15:90;::::1;::::0;::::1;::::0;639:18:97;;2355:31:90::1;520:226:97::0;1939:198:84;1103:7;1129:6;1269:23;1129:6;719:10:93;1269:23:84;1261:68;;;;;;;3878:2:97;1261:68:84;;;3860:21:97;;;3897:18;;;3890:30;3956:34;3936:18;;;3929:62;4008:18;;1261:68:84;3676:356:97;1261:68:84;2027:22:::1;::::0;::::1;2019:73;;;::::0;::::1;::::0;;4969:2:97;2019:73:84::1;::::0;::::1;4951:21:97::0;5008:2;4988:18;;;4981:30;5047:34;5027:18;;;5020:62;5118:8;5098:18;;;5091:36;5144:19;;2019:73:84::1;4767:402:97::0;2019:73:84::1;2102:28;2121:8;2102:18;:28::i;:::-;1939:198:::0;:::o;1298:419:90:-;1385:7;1553:12;1567:23;1602:5;1594:25;;:40;;;;5387:66:97;5375:79;;5479:1;5470:11;;5174:313;2291:187:84;2364:16;2383:6;;;2399:17;;;;;;;;;;2431:40;;2383:6;;;;;;;2431:40;;2364:16;2431:40;2354:124;2291:187;:::o;14:183:97:-;129:42;122:5;118:54;111:5;108:65;98:93;;187:1;184;177:12;202:313;298:6;351:2;339:9;330:7;326:23;322:32;319:52;;;367:1;364;357:12;319:52;406:9;393:23;425:60;479:5;425:60;:::i;:::-;504:5;202:313;-1:-1:-1;;;202:313:97:o;751:483::-;856:6;864;917:2;905:9;896:7;892:23;888:32;885:52;;;933:1;930;923:12;885:52;972:9;959:23;991:60;1045:5;991:60;:::i;:::-;1070:5;-1:-1:-1;1127:2:97;1112:18;;1099:32;1140:62;1099:32;1140:62;:::i;:::-;1221:7;1211:17;;;751:483;;;;;:::o;1239:184::-;1291:77;1288:1;1281:88;1388:4;1385:1;1378:15;1412:4;1409:1;1402:15;1428:1351;1551:6;1559;1567;1620:2;1608:9;1599:7;1595:23;1591:32;1588:52;;;1636:1;1633;1626:12;1588:52;1675:9;1662:23;1694:60;1748:5;1694:60;:::i;:::-;1773:5;-1:-1:-1;1830:2:97;1815:18;;1802:32;1843:62;1802:32;1843:62;:::i;:::-;1924:7;-1:-1:-1;1982:2:97;1967:18;;1954:32;2005:18;2035:14;;;2032:34;;;2062:1;2059;2052:12;2032:34;2100:6;2089:9;2085:22;2075:32;;2145:7;2138:4;2134:2;2130:13;2126:27;2116:55;;2167:1;2164;2157:12;2116:55;2203:2;2190:16;2225:2;2221;2218:10;2215:36;;;2231:18;;:::i;:::-;2365:2;2359:9;2427:4;2419:13;;2270:66;2415:22;;;2439:2;2411:31;2407:40;2395:53;;;2463:18;;;2483:22;;;2460:46;2457:72;;;2509:18;;:::i;:::-;2549:10;2545:2;2538:22;2584:2;2576:6;2569:18;2624:7;2619:2;2614;2610;2606:11;2602:20;2599:33;2596:53;;;2645:1;2642;2635:12;2596:53;2701:2;2696;2692;2688:11;2683:2;2675:6;2671:15;2658:46;2746:1;2741:2;2736;2728:6;2724:15;2720:24;2713:35;2767:6;2757:16;;;;;;;1428:1351;;;;;:::o;3383:288::-;3461:6;3514:2;3502:9;3493:7;3489:23;3485:32;3482:52;;;3530:1;3527;3520:12;3482:52;3562:9;3556:16;3581:60;3635:5;3581:60;:::i;4037:725::-;4224:42;4216:6;4212:55;4201:9;4194:74;4175:4;4287:2;4325;4320;4309:9;4305:18;4298:30;4357:6;4351:13;4400:6;4395:2;4384:9;4380:18;4373:34;4425:1;4435:140;4449:6;4446:1;4443:13;4435:140;;;4544:14;;;4540:23;;4534:30;4510:17;;;4529:2;4506:26;4499:66;4464:10;;4435:140;;;4439:3;4624:1;4619:2;4610:6;4599:9;4595:22;4591:31;4584:42;4753:2;4683:66;4678:2;4670:6;4666:15;4662:88;4651:9;4647:104;4643:113;4635:121;;;;4037:725;;;;;:::o"},"gasEstimates":{"creation":{"codeDepositCost":"525200","executionCost":"infinite","totalCost":"infinite"},"external":{"changeProxyAdmin(address,address)":"infinite","getProxyAdmin(address)":"infinite","getProxyImplementation(address)":"infinite","owner()":"2362","renounceOwnership()":"28098","transferOwnership(address)":"infinite","upgrade(address,address)":"infinite","upgradeAndCall(address,address,bytes)":"infinite"}},"methodIdentifiers":{"changeProxyAdmin(address,address)":"7eff275e","getProxyAdmin(address)":"f3b7dead","getProxyImplementation(address)":"204e1c7a","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","upgrade(address,address)":"99a88ec4","upgradeAndCall(address,address,bytes)":"9623609d"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"contract TransparentUpgradeableProxy\",\"name\":\"proxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"changeProxyAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract TransparentUpgradeableProxy\",\"name\":\"proxy\",\"type\":\"address\"}],\"name\":\"getProxyAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract TransparentUpgradeableProxy\",\"name\":\"proxy\",\"type\":\"address\"}],\"name\":\"getProxyImplementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract TransparentUpgradeableProxy\",\"name\":\"proxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"upgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract TransparentUpgradeableProxy\",\"name\":\"proxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This is an auxiliary contract meant to be assigned as the admin of a {TransparentUpgradeableProxy}. For an explanation of why you would want to use this see the documentation for {TransparentUpgradeableProxy}.\",\"kind\":\"dev\",\"methods\":{\"changeProxyAdmin(address,address)\":{\"details\":\"Changes the admin of `proxy` to `newAdmin`. Requirements: - This contract must be the current admin of `proxy`.\"},\"getProxyAdmin(address)\":{\"details\":\"Returns the current admin of `proxy`. Requirements: - This contract must be the admin of `proxy`.\"},\"getProxyImplementation(address)\":{\"details\":\"Returns the current implementation of `proxy`. Requirements: - This contract must be the admin of `proxy`.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgrade(address,address)\":{\"details\":\"Upgrades `proxy` to `implementation`. See {TransparentUpgradeableProxy-upgradeTo}. Requirements: - This contract must be the admin of `proxy`.\"},\"upgradeAndCall(address,address,bytes)\":{\"details\":\"Upgrades `proxy` to `implementation` and calls a function on the new implementation. See {TransparentUpgradeableProxy-upgradeToAndCall}. Requirements: - This contract must be the admin of `proxy`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol\":\"ProxyAdmin\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"hardhat-deploy/solc_0.8/openzeppelin/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    constructor (address initialOwner) {\\n        _transferOwnership(initialOwner);\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n        _;\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions anymore. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby removing any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n}\\n\",\"keccak256\":\"0x9b2bbba5bb04f53f277739c1cdff896ba8b3bf591cfc4eab2098c655e8ac251e\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (interfaces/draft-IERC1822.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified\\n * proxy whose upgrades are fully controlled by the current implementation.\\n */\\ninterface IERC1822Proxiable {\\n    /**\\n     * @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation\\n     * address.\\n     *\\n     * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\\n     * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\\n     * function revert if invoked through a proxy.\\n     */\\n    function proxiableUUID() external view returns (bytes32);\\n}\\n\",\"keccak256\":\"0x93b4e21c931252739a1ec13ea31d3d35a5c068be3163ccab83e4d70c40355f03\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/ERC1967/ERC1967Proxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../Proxy.sol\\\";\\nimport \\\"./ERC1967Upgrade.sol\\\";\\n\\n/**\\n * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\\n * implementation address that can be changed. This address is stored in storage in the location specified by\\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the\\n * implementation behind the proxy.\\n */\\ncontract ERC1967Proxy is Proxy, ERC1967Upgrade {\\n    /**\\n     * @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`.\\n     *\\n     * If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded\\n     * function call, and allows initializating the storage of the proxy like a Solidity constructor.\\n     */\\n    constructor(address _logic, bytes memory _data) payable {\\n        assert(_IMPLEMENTATION_SLOT == bytes32(uint256(keccak256(\\\"eip1967.proxy.implementation\\\")) - 1));\\n        _upgradeToAndCall(_logic, _data, false);\\n    }\\n\\n    /**\\n     * @dev Returns the current implementation address.\\n     */\\n    function _implementation() internal view virtual override returns (address impl) {\\n        return ERC1967Upgrade._getImplementation();\\n    }\\n}\\n\",\"keccak256\":\"0x6309f9f39dc6f4f45a24f296543867aa358e32946cd6b2874627a996d606b3a0\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (proxy/ERC1967/ERC1967Upgrade.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../beacon/IBeacon.sol\\\";\\nimport \\\"../../interfaces/draft-IERC1822.sol\\\";\\nimport \\\"../../utils/Address.sol\\\";\\nimport \\\"../../utils/StorageSlot.sol\\\";\\n\\n/**\\n * @dev This abstract contract provides getters and event emitting update functions for\\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.\\n *\\n * _Available since v4.1._\\n *\\n * @custom:oz-upgrades-unsafe-allow delegatecall\\n */\\nabstract contract ERC1967Upgrade {\\n    // This is the keccak-256 hash of \\\"eip1967.proxy.rollback\\\" subtracted by 1\\n    bytes32 private constant _ROLLBACK_SLOT = 0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143;\\n\\n    /**\\n     * @dev Storage slot with the address of the current implementation.\\n     * This is the keccak-256 hash of \\\"eip1967.proxy.implementation\\\" subtracted by 1, and is\\n     * validated in the constructor.\\n     */\\n    bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\\n\\n    /**\\n     * @dev Emitted when the implementation is upgraded.\\n     */\\n    event Upgraded(address indexed implementation);\\n\\n    /**\\n     * @dev Returns the current implementation address.\\n     */\\n    function _getImplementation() internal view returns (address) {\\n        return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\\n    }\\n\\n    /**\\n     * @dev Stores a new address in the EIP1967 implementation slot.\\n     */\\n    function _setImplementation(address newImplementation) private {\\n        require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");\\n        StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\\n    }\\n\\n    /**\\n     * @dev Perform implementation upgrade\\n     *\\n     * Emits an {Upgraded} event.\\n     */\\n    function _upgradeTo(address newImplementation) internal {\\n        _setImplementation(newImplementation);\\n        emit Upgraded(newImplementation);\\n    }\\n\\n    /**\\n     * @dev Perform implementation upgrade with additional setup call.\\n     *\\n     * Emits an {Upgraded} event.\\n     */\\n    function _upgradeToAndCall(\\n        address newImplementation,\\n        bytes memory data,\\n        bool forceCall\\n    ) internal {\\n        _upgradeTo(newImplementation);\\n        if (data.length > 0 || forceCall) {\\n            Address.functionDelegateCall(newImplementation, data);\\n        }\\n    }\\n\\n    /**\\n     * @dev Perform implementation upgrade with security checks for UUPS proxies, and additional setup call.\\n     *\\n     * Emits an {Upgraded} event.\\n     */\\n    function _upgradeToAndCallUUPS(\\n        address newImplementation,\\n        bytes memory data,\\n        bool forceCall\\n    ) internal {\\n        // Upgrades from old implementations will perform a rollback test. This test requires the new\\n        // implementation to upgrade back to the old, non-ERC1822 compliant, implementation. Removing\\n        // this special case will break upgrade paths from old UUPS implementation to new ones.\\n        if (StorageSlot.getBooleanSlot(_ROLLBACK_SLOT).value) {\\n            _setImplementation(newImplementation);\\n        } else {\\n            try IERC1822Proxiable(newImplementation).proxiableUUID() returns (bytes32 slot) {\\n                require(slot == _IMPLEMENTATION_SLOT, \\\"ERC1967Upgrade: unsupported proxiableUUID\\\");\\n            } catch {\\n                revert(\\\"ERC1967Upgrade: new implementation is not UUPS\\\");\\n            }\\n            _upgradeToAndCall(newImplementation, data, forceCall);\\n        }\\n    }\\n\\n    /**\\n     * @dev Storage slot with the admin of the contract.\\n     * This is the keccak-256 hash of \\\"eip1967.proxy.admin\\\" subtracted by 1, and is\\n     * validated in the constructor.\\n     */\\n    bytes32 internal constant _ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;\\n\\n    /**\\n     * @dev Emitted when the admin account has changed.\\n     */\\n    event AdminChanged(address previousAdmin, address newAdmin);\\n\\n    /**\\n     * @dev Returns the current admin.\\n     */\\n    function _getAdmin() internal view virtual returns (address) {\\n        return StorageSlot.getAddressSlot(_ADMIN_SLOT).value;\\n    }\\n\\n    /**\\n     * @dev Stores a new address in the EIP1967 admin slot.\\n     */\\n    function _setAdmin(address newAdmin) private {\\n        require(newAdmin != address(0), \\\"ERC1967: new admin is the zero address\\\");\\n        StorageSlot.getAddressSlot(_ADMIN_SLOT).value = newAdmin;\\n    }\\n\\n    /**\\n     * @dev Changes the admin of the proxy.\\n     *\\n     * Emits an {AdminChanged} event.\\n     */\\n    function _changeAdmin(address newAdmin) internal {\\n        emit AdminChanged(_getAdmin(), newAdmin);\\n        _setAdmin(newAdmin);\\n    }\\n\\n    /**\\n     * @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\\n     * This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor.\\n     */\\n    bytes32 internal constant _BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50;\\n\\n    /**\\n     * @dev Emitted when the beacon is upgraded.\\n     */\\n    event BeaconUpgraded(address indexed beacon);\\n\\n    /**\\n     * @dev Returns the current beacon.\\n     */\\n    function _getBeacon() internal view returns (address) {\\n        return StorageSlot.getAddressSlot(_BEACON_SLOT).value;\\n    }\\n\\n    /**\\n     * @dev Stores a new beacon in the EIP1967 beacon slot.\\n     */\\n    function _setBeacon(address newBeacon) private {\\n        require(Address.isContract(newBeacon), \\\"ERC1967: new beacon is not a contract\\\");\\n        require(Address.isContract(IBeacon(newBeacon).implementation()), \\\"ERC1967: beacon implementation is not a contract\\\");\\n        StorageSlot.getAddressSlot(_BEACON_SLOT).value = newBeacon;\\n    }\\n\\n    /**\\n     * @dev Perform beacon upgrade with additional setup call. Note: This upgrades the address of the beacon, it does\\n     * not upgrade the implementation contained in the beacon (see {UpgradeableBeacon-_setImplementation} for that).\\n     *\\n     * Emits a {BeaconUpgraded} event.\\n     */\\n    function _upgradeBeaconToAndCall(\\n        address newBeacon,\\n        bytes memory data,\\n        bool forceCall\\n    ) internal {\\n        _setBeacon(newBeacon);\\n        emit BeaconUpgraded(newBeacon);\\n        if (data.length > 0 || forceCall) {\\n            Address.functionDelegateCall(IBeacon(newBeacon).implementation(), data);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x17668652127feebed0ce8d9431ef95ccc8c4292f03e3b8cf06c6ca16af396633\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (proxy/Proxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM\\n * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to\\n * be specified by overriding the virtual {_implementation} function.\\n *\\n * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a\\n * different contract through the {_delegate} function.\\n *\\n * The success and return data of the delegated call will be returned back to the caller of the proxy.\\n */\\nabstract contract Proxy {\\n    /**\\n     * @dev Delegates the current call to `implementation`.\\n     *\\n     * This function does not return to its internal call site, it will return directly to the external caller.\\n     */\\n    function _delegate(address implementation) internal virtual {\\n        assembly {\\n            // Copy msg.data. We take full control of memory in this inline assembly\\n            // block because it will not return to Solidity code. We overwrite the\\n            // Solidity scratch pad at memory position 0.\\n            calldatacopy(0, 0, calldatasize())\\n\\n            // Call the implementation.\\n            // out and outsize are 0 because we don't know the size yet.\\n            let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)\\n\\n            // Copy the returned data.\\n            returndatacopy(0, 0, returndatasize())\\n\\n            switch result\\n            // delegatecall returns 0 on error.\\n            case 0 {\\n                revert(0, returndatasize())\\n            }\\n            default {\\n                return(0, returndatasize())\\n            }\\n        }\\n    }\\n\\n    /**\\n     * @dev This is a virtual function that should be overriden so it returns the address to which the fallback function\\n     * and {_fallback} should delegate.\\n     */\\n    function _implementation() internal view virtual returns (address);\\n\\n    /**\\n     * @dev Delegates the current call to the address returned by `_implementation()`.\\n     *\\n     * This function does not return to its internall call site, it will return directly to the external caller.\\n     */\\n    function _fallback() internal virtual {\\n        _beforeFallback();\\n        _delegate(_implementation());\\n    }\\n\\n    /**\\n     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other\\n     * function in the contract matches the call data.\\n     */\\n    fallback() external payable virtual {\\n        _fallback();\\n    }\\n\\n    /**\\n     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data\\n     * is empty.\\n     */\\n    receive() external payable virtual {\\n        _fallback();\\n    }\\n\\n    /**\\n     * @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback`\\n     * call, or as part of the Solidity `fallback` or `receive` functions.\\n     *\\n     * If overriden should call `super._beforeFallback()`.\\n     */\\n    function _beforeFallback() internal virtual {}\\n}\\n\",\"keccak256\":\"0xd5d1fd16e9faff7fcb3a52e02a8d49156f42a38a03f07b5f1810c21c2149a8ab\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/beacon/IBeacon.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev This is the interface that {BeaconProxy} expects of its beacon.\\n */\\ninterface IBeacon {\\n    /**\\n     * @dev Must return an address that can be used as a delegate call target.\\n     *\\n     * {BeaconProxy} will check that this address is a contract.\\n     */\\n    function implementation() external view returns (address);\\n}\\n\",\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/transparent/ProxyAdmin.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./TransparentUpgradeableProxy.sol\\\";\\nimport \\\"../../access/Ownable.sol\\\";\\n\\n/**\\n * @dev This is an auxiliary contract meant to be assigned as the admin of a {TransparentUpgradeableProxy}. For an\\n * explanation of why you would want to use this see the documentation for {TransparentUpgradeableProxy}.\\n */\\ncontract ProxyAdmin is Ownable {\\n\\n    constructor (address initialOwner) Ownable(initialOwner) {}\\n\\n    /**\\n     * @dev Returns the current implementation of `proxy`.\\n     *\\n     * Requirements:\\n     *\\n     * - This contract must be the admin of `proxy`.\\n     */\\n    function getProxyImplementation(TransparentUpgradeableProxy proxy) public view virtual returns (address) {\\n        // We need to manually run the static call since the getter cannot be flagged as view\\n        // bytes4(keccak256(\\\"implementation()\\\")) == 0x5c60da1b\\n        (bool success, bytes memory returndata) = address(proxy).staticcall(hex\\\"5c60da1b\\\");\\n        require(success);\\n        return abi.decode(returndata, (address));\\n    }\\n\\n    /**\\n     * @dev Returns the current admin of `proxy`.\\n     *\\n     * Requirements:\\n     *\\n     * - This contract must be the admin of `proxy`.\\n     */\\n    function getProxyAdmin(TransparentUpgradeableProxy proxy) public view virtual returns (address) {\\n        // We need to manually run the static call since the getter cannot be flagged as view\\n        // bytes4(keccak256(\\\"admin()\\\")) == 0xf851a440\\n        (bool success, bytes memory returndata) = address(proxy).staticcall(hex\\\"f851a440\\\");\\n        require(success);\\n        return abi.decode(returndata, (address));\\n    }\\n\\n    /**\\n     * @dev Changes the admin of `proxy` to `newAdmin`.\\n     *\\n     * Requirements:\\n     *\\n     * - This contract must be the current admin of `proxy`.\\n     */\\n    function changeProxyAdmin(TransparentUpgradeableProxy proxy, address newAdmin) public virtual onlyOwner {\\n        proxy.changeAdmin(newAdmin);\\n    }\\n\\n    /**\\n     * @dev Upgrades `proxy` to `implementation`. See {TransparentUpgradeableProxy-upgradeTo}.\\n     *\\n     * Requirements:\\n     *\\n     * - This contract must be the admin of `proxy`.\\n     */\\n    function upgrade(TransparentUpgradeableProxy proxy, address implementation) public virtual onlyOwner {\\n        proxy.upgradeTo(implementation);\\n    }\\n\\n    /**\\n     * @dev Upgrades `proxy` to `implementation` and calls a function on the new implementation. See\\n     * {TransparentUpgradeableProxy-upgradeToAndCall}.\\n     *\\n     * Requirements:\\n     *\\n     * - This contract must be the admin of `proxy`.\\n     */\\n    function upgradeAndCall(\\n        TransparentUpgradeableProxy proxy,\\n        address implementation,\\n        bytes memory data\\n    ) public payable virtual onlyOwner {\\n        proxy.upgradeToAndCall{value: msg.value}(implementation, data);\\n    }\\n}\\n\",\"keccak256\":\"0x754888b9c9ab5525343460b0a4fa2e2f4fca9b6a7e0e7ddea4154e2b1182a45d\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/transparent/TransparentUpgradeableProxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../ERC1967/ERC1967Proxy.sol\\\";\\n\\n/**\\n * @dev This contract implements a proxy that is upgradeable by an admin.\\n *\\n * To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector\\n * clashing], which can potentially be used in an attack, this contract uses the\\n * https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two\\n * things that go hand in hand:\\n *\\n * 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if\\n * that call matches one of the admin functions exposed by the proxy itself.\\n * 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the\\n * implementation. If the admin tries to call a function on the implementation it will fail with an error that says\\n * \\\"admin cannot fallback to proxy target\\\".\\n *\\n * These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing\\n * the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due\\n * to sudden errors when trying to call a function from the proxy implementation.\\n *\\n * Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way,\\n * you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy.\\n */\\ncontract TransparentUpgradeableProxy is ERC1967Proxy {\\n    /**\\n     * @dev Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and\\n     * optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}.\\n     */\\n    constructor(\\n        address _logic,\\n        address admin_,\\n        bytes memory _data\\n    ) payable ERC1967Proxy(_logic, _data) {\\n        assert(_ADMIN_SLOT == bytes32(uint256(keccak256(\\\"eip1967.proxy.admin\\\")) - 1));\\n        _changeAdmin(admin_);\\n    }\\n\\n    /**\\n     * @dev Modifier used internally that will delegate the call to the implementation unless the sender is the admin.\\n     */\\n    modifier ifAdmin() {\\n        if (msg.sender == _getAdmin()) {\\n            _;\\n        } else {\\n            _fallback();\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns the current admin.\\n     *\\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}.\\n     *\\n     * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\\n     * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\\n     * `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`\\n     */\\n    function admin() external ifAdmin returns (address admin_) {\\n        admin_ = _getAdmin();\\n    }\\n\\n    /**\\n     * @dev Returns the current implementation.\\n     *\\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}.\\n     *\\n     * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\\n     * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\\n     * `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`\\n     */\\n    function implementation() external ifAdmin returns (address implementation_) {\\n        implementation_ = _implementation();\\n    }\\n\\n    /**\\n     * @dev Changes the admin of the proxy.\\n     *\\n     * Emits an {AdminChanged} event.\\n     *\\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-changeProxyAdmin}.\\n     */\\n    function changeAdmin(address newAdmin) external virtual ifAdmin {\\n        _changeAdmin(newAdmin);\\n    }\\n\\n    /**\\n     * @dev Upgrade the implementation of the proxy.\\n     *\\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}.\\n     */\\n    function upgradeTo(address newImplementation) external ifAdmin {\\n        _upgradeToAndCall(newImplementation, bytes(\\\"\\\"), false);\\n    }\\n\\n    /**\\n     * @dev Upgrade the implementation of the proxy, and then call a function from the new implementation as specified\\n     * by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the\\n     * proxied contract.\\n     *\\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}.\\n     */\\n    function upgradeToAndCall(address newImplementation, bytes calldata data) external payable ifAdmin {\\n        _upgradeToAndCall(newImplementation, data, true);\\n    }\\n\\n    /**\\n     * @dev Returns the current admin.\\n     */\\n    function _admin() internal view virtual returns (address) {\\n        return _getAdmin();\\n    }\\n\\n    /**\\n     * @dev Makes sure the admin cannot access the fallback function. See {Proxy-_beforeFallback}.\\n     */\\n    function _beforeFallback() internal virtual override {\\n        require(msg.sender != _getAdmin(), \\\"TransparentUpgradeableProxy: admin cannot fallback to proxy target\\\");\\n        super._beforeFallback();\\n    }\\n}\\n\",\"keccak256\":\"0x140055a64cf579d622e04f5a198595832bf2cb193cd0005f4f2d4d61ca906253\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary Address {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCall(target, data, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        require(isContract(target), \\\"Address: call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        require(isContract(target), \\\"Address: static call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(isContract(target), \\\"Address: delegate call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.delegatecall(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            // Look for revert reason and bubble it up if present\\n            if (returndata.length > 0) {\\n                // The easiest way to bubble the revert reason is using memory via assembly\\n\\n                assembly {\\n                    let returndata_size := mload(returndata)\\n                    revert(add(32, returndata), returndata_size)\\n                }\\n            } else {\\n                revert(errorMessage);\\n            }\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x3777e696b62134e6177440dbe6e6601c0c156a443f57167194b67e75527439de\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/StorageSlot.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Library for reading and writing primitive types to specific storage slots.\\n *\\n * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\\n * This library helps with reading and writing to such slots without the need for inline assembly.\\n *\\n * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\\n *\\n * Example usage to set ERC1967 implementation slot:\\n * ```\\n * contract ERC1967 {\\n *     bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\\n *\\n *     function _getImplementation() internal view returns (address) {\\n *         return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\\n *     }\\n *\\n *     function _setImplementation(address newImplementation) internal {\\n *         require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");\\n *         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\\n *     }\\n * }\\n * ```\\n *\\n * _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._\\n */\\nlibrary StorageSlot {\\n    struct AddressSlot {\\n        address value;\\n    }\\n\\n    struct BooleanSlot {\\n        bool value;\\n    }\\n\\n    struct Bytes32Slot {\\n        bytes32 value;\\n    }\\n\\n    struct Uint256Slot {\\n        uint256 value;\\n    }\\n\\n    /**\\n     * @dev Returns an `AddressSlot` with member `value` located at `slot`.\\n     */\\n    function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `BooleanSlot` with member `value` located at `slot`.\\n     */\\n    function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `Bytes32Slot` with member `value` located at `slot`.\\n     */\\n    function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `Uint256Slot` with member `value` located at `slot`.\\n     */\\n    function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xfe1b7a9aa2a530a9e705b220e26cd584e2fbdc9602a3a1066032b12816b46aca\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":21303,"contract":"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol:ProxyAdmin","label":"_owner","offset":0,"slot":"0","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/TransparentUpgradeableProxy.sol":{"TransparentUpgradeableProxy":{"abi":[{"inputs":[{"internalType":"address","name":"_logic","type":"address"},{"internalType":"address","name":"admin_","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"admin_","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"changeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"implementation_","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","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"},{"stateMutability":"payable","type":"receive"}],"devdoc":{"details":"This contract implements a proxy that is upgradeable by an admin. To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector clashing], which can potentially be used in an attack, this contract uses the https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two things that go hand in hand: 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if that call matches one of the admin functions exposed by the proxy itself. 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the implementation. If the admin tries to call a function on the implementation it will fail with an error that says \"admin cannot fallback to proxy target\". These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due to sudden errors when trying to call a function from the proxy implementation. Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way, you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy.","events":{"AdminChanged(address,address)":{"details":"Emitted when the admin account has changed."},"BeaconUpgraded(address)":{"details":"Emitted when the beacon is upgraded."},"Upgraded(address)":{"details":"Emitted when the implementation is upgraded."}},"kind":"dev","methods":{"admin()":{"details":"Returns the current admin. NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}. TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`"},"changeAdmin(address)":{"details":"Changes the admin of the proxy. Emits an {AdminChanged} event. NOTE: Only the admin can call this function. See {ProxyAdmin-changeProxyAdmin}."},"constructor":{"details":"Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}."},"implementation()":{"details":"Returns the current implementation. NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}. TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`"},"upgradeTo(address)":{"details":"Upgrade the implementation of the proxy. NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}."},"upgradeToAndCall(address,bytes)":{"details":"Upgrade the implementation of the proxy, and then call a function from the new implementation as specified by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the proxied contract. NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_21451":{"entryPoint":null,"id":21451,"parameterSlots":2,"returnSlots":0},"@_22030":{"entryPoint":null,"id":22030,"parameterSlots":3,"returnSlots":0},"@_changeAdmin_21685":{"entryPoint":254,"id":21685,"parameterSlots":1,"returnSlots":0},"@_getAdmin_21642":{"entryPoint":null,"id":21642,"parameterSlots":0,"returnSlots":1},"@_setAdmin_21668":{"entryPoint":474,"id":21668,"parameterSlots":1,"returnSlots":0},"@_setImplementation_21520":{"entryPoint":630,"id":21520,"parameterSlots":1,"returnSlots":0},"@_upgradeToAndCall_21565":{"entryPoint":210,"id":21565,"parameterSlots":3,"returnSlots":0},"@_upgradeTo_21535":{"entryPoint":364,"id":21535,"parameterSlots":1,"returnSlots":0},"@functionDelegateCall_22381":{"entryPoint":428,"id":22381,"parameterSlots":2,"returnSlots":1},"@functionDelegateCall_22416":{"entryPoint":760,"id":22416,"parameterSlots":3,"returnSlots":1},"@getAddressSlot_22496":{"entryPoint":null,"id":22496,"parameterSlots":1,"returnSlots":1},"@isContract_22171":{"entryPoint":null,"id":22171,"parameterSlots":1,"returnSlots":1},"@verifyCallResult_22447":{"entryPoint":984,"id":22447,"parameterSlots":3,"returnSlots":1},"abi_decode_address_fromMemory":{"entryPoint":1041,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr_fromMemory":{"entryPoint":1127,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":1390,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1418,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":1335,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":1091,"id":null,"parameterSlots":3,"returnSlots":0},"panic_error_0x01":{"entryPoint":1368,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":1069,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:4243:97","nodeType":"YulBlock","src":"0:4243:97","statements":[{"nativeSrc":"6:3:97","nodeType":"YulBlock","src":"6:3:97","statements":[]},{"body":{"nativeSrc":"74:117:97","nodeType":"YulBlock","src":"74:117:97","statements":[{"nativeSrc":"84:22:97","nodeType":"YulAssignment","src":"84:22:97","value":{"arguments":[{"name":"offset","nativeSrc":"99:6:97","nodeType":"YulIdentifier","src":"99:6:97"}],"functionName":{"name":"mload","nativeSrc":"93:5:97","nodeType":"YulIdentifier","src":"93:5:97"},"nativeSrc":"93:13:97","nodeType":"YulFunctionCall","src":"93:13:97"},"variableNames":[{"name":"value","nativeSrc":"84:5:97","nodeType":"YulIdentifier","src":"84:5:97"}]},{"body":{"nativeSrc":"169:16:97","nodeType":"YulBlock","src":"169:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"178:1:97","nodeType":"YulLiteral","src":"178:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"181:1:97","nodeType":"YulLiteral","src":"181:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"171:6:97","nodeType":"YulIdentifier","src":"171:6:97"},"nativeSrc":"171:12:97","nodeType":"YulFunctionCall","src":"171:12:97"},"nativeSrc":"171:12:97","nodeType":"YulExpressionStatement","src":"171:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"128:5:97","nodeType":"YulIdentifier","src":"128:5:97"},{"arguments":[{"name":"value","nativeSrc":"139:5:97","nodeType":"YulIdentifier","src":"139:5:97"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"154:3:97","nodeType":"YulLiteral","src":"154:3:97","type":"","value":"160"},{"kind":"number","nativeSrc":"159:1:97","nodeType":"YulLiteral","src":"159:1:97","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"150:3:97","nodeType":"YulIdentifier","src":"150:3:97"},"nativeSrc":"150:11:97","nodeType":"YulFunctionCall","src":"150:11:97"},{"kind":"number","nativeSrc":"163:1:97","nodeType":"YulLiteral","src":"163:1:97","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"146:3:97","nodeType":"YulIdentifier","src":"146:3:97"},"nativeSrc":"146:19:97","nodeType":"YulFunctionCall","src":"146:19:97"}],"functionName":{"name":"and","nativeSrc":"135:3:97","nodeType":"YulIdentifier","src":"135:3:97"},"nativeSrc":"135:31:97","nodeType":"YulFunctionCall","src":"135:31:97"}],"functionName":{"name":"eq","nativeSrc":"125:2:97","nodeType":"YulIdentifier","src":"125:2:97"},"nativeSrc":"125:42:97","nodeType":"YulFunctionCall","src":"125:42:97"}],"functionName":{"name":"iszero","nativeSrc":"118:6:97","nodeType":"YulIdentifier","src":"118:6:97"},"nativeSrc":"118:50:97","nodeType":"YulFunctionCall","src":"118:50:97"},"nativeSrc":"115:70:97","nodeType":"YulIf","src":"115:70:97"}]},"name":"abi_decode_address_fromMemory","nativeSrc":"14:177:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"53:6:97","nodeType":"YulTypedName","src":"53:6:97","type":""}],"returnVariables":[{"name":"value","nativeSrc":"64:5:97","nodeType":"YulTypedName","src":"64:5:97","type":""}],"src":"14:177:97"},{"body":{"nativeSrc":"228:95:97","nodeType":"YulBlock","src":"228:95:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"245:1:97","nodeType":"YulLiteral","src":"245:1:97","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"252:3:97","nodeType":"YulLiteral","src":"252:3:97","type":"","value":"224"},{"kind":"number","nativeSrc":"257:10:97","nodeType":"YulLiteral","src":"257:10:97","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"248:3:97","nodeType":"YulIdentifier","src":"248:3:97"},"nativeSrc":"248:20:97","nodeType":"YulFunctionCall","src":"248:20:97"}],"functionName":{"name":"mstore","nativeSrc":"238:6:97","nodeType":"YulIdentifier","src":"238:6:97"},"nativeSrc":"238:31:97","nodeType":"YulFunctionCall","src":"238:31:97"},"nativeSrc":"238:31:97","nodeType":"YulExpressionStatement","src":"238:31:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"285:1:97","nodeType":"YulLiteral","src":"285:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"288:4:97","nodeType":"YulLiteral","src":"288:4:97","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"278:6:97","nodeType":"YulIdentifier","src":"278:6:97"},"nativeSrc":"278:15:97","nodeType":"YulFunctionCall","src":"278:15:97"},"nativeSrc":"278:15:97","nodeType":"YulExpressionStatement","src":"278:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"309:1:97","nodeType":"YulLiteral","src":"309:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"312:4:97","nodeType":"YulLiteral","src":"312:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"302:6:97","nodeType":"YulIdentifier","src":"302:6:97"},"nativeSrc":"302:15:97","nodeType":"YulFunctionCall","src":"302:15:97"},"nativeSrc":"302:15:97","nodeType":"YulExpressionStatement","src":"302:15:97"}]},"name":"panic_error_0x41","nativeSrc":"196:127:97","nodeType":"YulFunctionDefinition","src":"196:127:97"},{"body":{"nativeSrc":"394:184:97","nodeType":"YulBlock","src":"394:184:97","statements":[{"nativeSrc":"404:10:97","nodeType":"YulVariableDeclaration","src":"404:10:97","value":{"kind":"number","nativeSrc":"413:1:97","nodeType":"YulLiteral","src":"413:1:97","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"408:1:97","nodeType":"YulTypedName","src":"408:1:97","type":""}]},{"body":{"nativeSrc":"473:63:97","nodeType":"YulBlock","src":"473:63:97","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"498:3:97","nodeType":"YulIdentifier","src":"498:3:97"},{"name":"i","nativeSrc":"503:1:97","nodeType":"YulIdentifier","src":"503:1:97"}],"functionName":{"name":"add","nativeSrc":"494:3:97","nodeType":"YulIdentifier","src":"494:3:97"},"nativeSrc":"494:11:97","nodeType":"YulFunctionCall","src":"494:11:97"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"517:3:97","nodeType":"YulIdentifier","src":"517:3:97"},{"name":"i","nativeSrc":"522:1:97","nodeType":"YulIdentifier","src":"522:1:97"}],"functionName":{"name":"add","nativeSrc":"513:3:97","nodeType":"YulIdentifier","src":"513:3:97"},"nativeSrc":"513:11:97","nodeType":"YulFunctionCall","src":"513:11:97"}],"functionName":{"name":"mload","nativeSrc":"507:5:97","nodeType":"YulIdentifier","src":"507:5:97"},"nativeSrc":"507:18:97","nodeType":"YulFunctionCall","src":"507:18:97"}],"functionName":{"name":"mstore","nativeSrc":"487:6:97","nodeType":"YulIdentifier","src":"487:6:97"},"nativeSrc":"487:39:97","nodeType":"YulFunctionCall","src":"487:39:97"},"nativeSrc":"487:39:97","nodeType":"YulExpressionStatement","src":"487:39:97"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"434:1:97","nodeType":"YulIdentifier","src":"434:1:97"},{"name":"length","nativeSrc":"437:6:97","nodeType":"YulIdentifier","src":"437:6:97"}],"functionName":{"name":"lt","nativeSrc":"431:2:97","nodeType":"YulIdentifier","src":"431:2:97"},"nativeSrc":"431:13:97","nodeType":"YulFunctionCall","src":"431:13:97"},"nativeSrc":"423:113:97","nodeType":"YulForLoop","post":{"nativeSrc":"445:19:97","nodeType":"YulBlock","src":"445:19:97","statements":[{"nativeSrc":"447:15:97","nodeType":"YulAssignment","src":"447:15:97","value":{"arguments":[{"name":"i","nativeSrc":"456:1:97","nodeType":"YulIdentifier","src":"456:1:97"},{"kind":"number","nativeSrc":"459:2:97","nodeType":"YulLiteral","src":"459:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"452:3:97","nodeType":"YulIdentifier","src":"452:3:97"},"nativeSrc":"452:10:97","nodeType":"YulFunctionCall","src":"452:10:97"},"variableNames":[{"name":"i","nativeSrc":"447:1:97","nodeType":"YulIdentifier","src":"447:1:97"}]}]},"pre":{"nativeSrc":"427:3:97","nodeType":"YulBlock","src":"427:3:97","statements":[]},"src":"423:113:97"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"556:3:97","nodeType":"YulIdentifier","src":"556:3:97"},{"name":"length","nativeSrc":"561:6:97","nodeType":"YulIdentifier","src":"561:6:97"}],"functionName":{"name":"add","nativeSrc":"552:3:97","nodeType":"YulIdentifier","src":"552:3:97"},"nativeSrc":"552:16:97","nodeType":"YulFunctionCall","src":"552:16:97"},{"kind":"number","nativeSrc":"570:1:97","nodeType":"YulLiteral","src":"570:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"545:6:97","nodeType":"YulIdentifier","src":"545:6:97"},"nativeSrc":"545:27:97","nodeType":"YulFunctionCall","src":"545:27:97"},"nativeSrc":"545:27:97","nodeType":"YulExpressionStatement","src":"545:27:97"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"328:250:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"372:3:97","nodeType":"YulTypedName","src":"372:3:97","type":""},{"name":"dst","nativeSrc":"377:3:97","nodeType":"YulTypedName","src":"377:3:97","type":""},{"name":"length","nativeSrc":"382:6:97","nodeType":"YulTypedName","src":"382:6:97","type":""}],"src":"328:250:97"},{"body":{"nativeSrc":"707:942:97","nodeType":"YulBlock","src":"707:942:97","statements":[{"body":{"nativeSrc":"753:16:97","nodeType":"YulBlock","src":"753:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"762:1:97","nodeType":"YulLiteral","src":"762:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"765:1:97","nodeType":"YulLiteral","src":"765:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"755:6:97","nodeType":"YulIdentifier","src":"755:6:97"},"nativeSrc":"755:12:97","nodeType":"YulFunctionCall","src":"755:12:97"},"nativeSrc":"755:12:97","nodeType":"YulExpressionStatement","src":"755:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"728:7:97","nodeType":"YulIdentifier","src":"728:7:97"},{"name":"headStart","nativeSrc":"737:9:97","nodeType":"YulIdentifier","src":"737:9:97"}],"functionName":{"name":"sub","nativeSrc":"724:3:97","nodeType":"YulIdentifier","src":"724:3:97"},"nativeSrc":"724:23:97","nodeType":"YulFunctionCall","src":"724:23:97"},{"kind":"number","nativeSrc":"749:2:97","nodeType":"YulLiteral","src":"749:2:97","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"720:3:97","nodeType":"YulIdentifier","src":"720:3:97"},"nativeSrc":"720:32:97","nodeType":"YulFunctionCall","src":"720:32:97"},"nativeSrc":"717:52:97","nodeType":"YulIf","src":"717:52:97"},{"nativeSrc":"778:50:97","nodeType":"YulAssignment","src":"778:50:97","value":{"arguments":[{"name":"headStart","nativeSrc":"818:9:97","nodeType":"YulIdentifier","src":"818:9:97"}],"functionName":{"name":"abi_decode_address_fromMemory","nativeSrc":"788:29:97","nodeType":"YulIdentifier","src":"788:29:97"},"nativeSrc":"788:40:97","nodeType":"YulFunctionCall","src":"788:40:97"},"variableNames":[{"name":"value0","nativeSrc":"778:6:97","nodeType":"YulIdentifier","src":"778:6:97"}]},{"nativeSrc":"837:59:97","nodeType":"YulAssignment","src":"837:59:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"881:9:97","nodeType":"YulIdentifier","src":"881:9:97"},{"kind":"number","nativeSrc":"892:2:97","nodeType":"YulLiteral","src":"892:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"877:3:97","nodeType":"YulIdentifier","src":"877:3:97"},"nativeSrc":"877:18:97","nodeType":"YulFunctionCall","src":"877:18:97"}],"functionName":{"name":"abi_decode_address_fromMemory","nativeSrc":"847:29:97","nodeType":"YulIdentifier","src":"847:29:97"},"nativeSrc":"847:49:97","nodeType":"YulFunctionCall","src":"847:49:97"},"variableNames":[{"name":"value1","nativeSrc":"837:6:97","nodeType":"YulIdentifier","src":"837:6:97"}]},{"nativeSrc":"905:39:97","nodeType":"YulVariableDeclaration","src":"905:39:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"929:9:97","nodeType":"YulIdentifier","src":"929:9:97"},{"kind":"number","nativeSrc":"940:2:97","nodeType":"YulLiteral","src":"940:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"925:3:97","nodeType":"YulIdentifier","src":"925:3:97"},"nativeSrc":"925:18:97","nodeType":"YulFunctionCall","src":"925:18:97"}],"functionName":{"name":"mload","nativeSrc":"919:5:97","nodeType":"YulIdentifier","src":"919:5:97"},"nativeSrc":"919:25:97","nodeType":"YulFunctionCall","src":"919:25:97"},"variables":[{"name":"offset","nativeSrc":"909:6:97","nodeType":"YulTypedName","src":"909:6:97","type":""}]},{"nativeSrc":"953:28:97","nodeType":"YulVariableDeclaration","src":"953:28:97","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"971:2:97","nodeType":"YulLiteral","src":"971:2:97","type":"","value":"64"},{"kind":"number","nativeSrc":"975:1:97","nodeType":"YulLiteral","src":"975:1:97","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"967:3:97","nodeType":"YulIdentifier","src":"967:3:97"},"nativeSrc":"967:10:97","nodeType":"YulFunctionCall","src":"967:10:97"},{"kind":"number","nativeSrc":"979:1:97","nodeType":"YulLiteral","src":"979:1:97","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"963:3:97","nodeType":"YulIdentifier","src":"963:3:97"},"nativeSrc":"963:18:97","nodeType":"YulFunctionCall","src":"963:18:97"},"variables":[{"name":"_1","nativeSrc":"957:2:97","nodeType":"YulTypedName","src":"957:2:97","type":""}]},{"body":{"nativeSrc":"1008:16:97","nodeType":"YulBlock","src":"1008:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1017:1:97","nodeType":"YulLiteral","src":"1017:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1020:1:97","nodeType":"YulLiteral","src":"1020:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1010:6:97","nodeType":"YulIdentifier","src":"1010:6:97"},"nativeSrc":"1010:12:97","nodeType":"YulFunctionCall","src":"1010:12:97"},"nativeSrc":"1010:12:97","nodeType":"YulExpressionStatement","src":"1010:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"996:6:97","nodeType":"YulIdentifier","src":"996:6:97"},{"name":"_1","nativeSrc":"1004:2:97","nodeType":"YulIdentifier","src":"1004:2:97"}],"functionName":{"name":"gt","nativeSrc":"993:2:97","nodeType":"YulIdentifier","src":"993:2:97"},"nativeSrc":"993:14:97","nodeType":"YulFunctionCall","src":"993:14:97"},"nativeSrc":"990:34:97","nodeType":"YulIf","src":"990:34:97"},{"nativeSrc":"1033:32:97","nodeType":"YulVariableDeclaration","src":"1033:32:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1047:9:97","nodeType":"YulIdentifier","src":"1047:9:97"},{"name":"offset","nativeSrc":"1058:6:97","nodeType":"YulIdentifier","src":"1058:6:97"}],"functionName":{"name":"add","nativeSrc":"1043:3:97","nodeType":"YulIdentifier","src":"1043:3:97"},"nativeSrc":"1043:22:97","nodeType":"YulFunctionCall","src":"1043:22:97"},"variables":[{"name":"_2","nativeSrc":"1037:2:97","nodeType":"YulTypedName","src":"1037:2:97","type":""}]},{"body":{"nativeSrc":"1113:16:97","nodeType":"YulBlock","src":"1113:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1122:1:97","nodeType":"YulLiteral","src":"1122:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1125:1:97","nodeType":"YulLiteral","src":"1125:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1115:6:97","nodeType":"YulIdentifier","src":"1115:6:97"},"nativeSrc":"1115:12:97","nodeType":"YulFunctionCall","src":"1115:12:97"},"nativeSrc":"1115:12:97","nodeType":"YulExpressionStatement","src":"1115:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"1092:2:97","nodeType":"YulIdentifier","src":"1092:2:97"},{"kind":"number","nativeSrc":"1096:4:97","nodeType":"YulLiteral","src":"1096:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"1088:3:97","nodeType":"YulIdentifier","src":"1088:3:97"},"nativeSrc":"1088:13:97","nodeType":"YulFunctionCall","src":"1088:13:97"},{"name":"dataEnd","nativeSrc":"1103:7:97","nodeType":"YulIdentifier","src":"1103:7:97"}],"functionName":{"name":"slt","nativeSrc":"1084:3:97","nodeType":"YulIdentifier","src":"1084:3:97"},"nativeSrc":"1084:27:97","nodeType":"YulFunctionCall","src":"1084:27:97"}],"functionName":{"name":"iszero","nativeSrc":"1077:6:97","nodeType":"YulIdentifier","src":"1077:6:97"},"nativeSrc":"1077:35:97","nodeType":"YulFunctionCall","src":"1077:35:97"},"nativeSrc":"1074:55:97","nodeType":"YulIf","src":"1074:55:97"},{"nativeSrc":"1138:19:97","nodeType":"YulVariableDeclaration","src":"1138:19:97","value":{"arguments":[{"name":"_2","nativeSrc":"1154:2:97","nodeType":"YulIdentifier","src":"1154:2:97"}],"functionName":{"name":"mload","nativeSrc":"1148:5:97","nodeType":"YulIdentifier","src":"1148:5:97"},"nativeSrc":"1148:9:97","nodeType":"YulFunctionCall","src":"1148:9:97"},"variables":[{"name":"_3","nativeSrc":"1142:2:97","nodeType":"YulTypedName","src":"1142:2:97","type":""}]},{"body":{"nativeSrc":"1180:22:97","nodeType":"YulBlock","src":"1180:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1182:16:97","nodeType":"YulIdentifier","src":"1182:16:97"},"nativeSrc":"1182:18:97","nodeType":"YulFunctionCall","src":"1182:18:97"},"nativeSrc":"1182:18:97","nodeType":"YulExpressionStatement","src":"1182:18:97"}]},"condition":{"arguments":[{"name":"_3","nativeSrc":"1172:2:97","nodeType":"YulIdentifier","src":"1172:2:97"},{"name":"_1","nativeSrc":"1176:2:97","nodeType":"YulIdentifier","src":"1176:2:97"}],"functionName":{"name":"gt","nativeSrc":"1169:2:97","nodeType":"YulIdentifier","src":"1169:2:97"},"nativeSrc":"1169:10:97","nodeType":"YulFunctionCall","src":"1169:10:97"},"nativeSrc":"1166:36:97","nodeType":"YulIf","src":"1166:36:97"},{"nativeSrc":"1211:17:97","nodeType":"YulVariableDeclaration","src":"1211:17:97","value":{"arguments":[{"kind":"number","nativeSrc":"1225:2:97","nodeType":"YulLiteral","src":"1225:2:97","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"1221:3:97","nodeType":"YulIdentifier","src":"1221:3:97"},"nativeSrc":"1221:7:97","nodeType":"YulFunctionCall","src":"1221:7:97"},"variables":[{"name":"_4","nativeSrc":"1215:2:97","nodeType":"YulTypedName","src":"1215:2:97","type":""}]},{"nativeSrc":"1237:23:97","nodeType":"YulVariableDeclaration","src":"1237:23:97","value":{"arguments":[{"kind":"number","nativeSrc":"1257:2:97","nodeType":"YulLiteral","src":"1257:2:97","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1251:5:97","nodeType":"YulIdentifier","src":"1251:5:97"},"nativeSrc":"1251:9:97","nodeType":"YulFunctionCall","src":"1251:9:97"},"variables":[{"name":"memPtr","nativeSrc":"1241:6:97","nodeType":"YulTypedName","src":"1241:6:97","type":""}]},{"nativeSrc":"1269:71:97","nodeType":"YulVariableDeclaration","src":"1269:71:97","value":{"arguments":[{"name":"memPtr","nativeSrc":"1291:6:97","nodeType":"YulIdentifier","src":"1291:6:97"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nativeSrc":"1315:2:97","nodeType":"YulIdentifier","src":"1315:2:97"},{"kind":"number","nativeSrc":"1319:4:97","nodeType":"YulLiteral","src":"1319:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"1311:3:97","nodeType":"YulIdentifier","src":"1311:3:97"},"nativeSrc":"1311:13:97","nodeType":"YulFunctionCall","src":"1311:13:97"},{"name":"_4","nativeSrc":"1326:2:97","nodeType":"YulIdentifier","src":"1326:2:97"}],"functionName":{"name":"and","nativeSrc":"1307:3:97","nodeType":"YulIdentifier","src":"1307:3:97"},"nativeSrc":"1307:22:97","nodeType":"YulFunctionCall","src":"1307:22:97"},{"kind":"number","nativeSrc":"1331:2:97","nodeType":"YulLiteral","src":"1331:2:97","type":"","value":"63"}],"functionName":{"name":"add","nativeSrc":"1303:3:97","nodeType":"YulIdentifier","src":"1303:3:97"},"nativeSrc":"1303:31:97","nodeType":"YulFunctionCall","src":"1303:31:97"},{"name":"_4","nativeSrc":"1336:2:97","nodeType":"YulIdentifier","src":"1336:2:97"}],"functionName":{"name":"and","nativeSrc":"1299:3:97","nodeType":"YulIdentifier","src":"1299:3:97"},"nativeSrc":"1299:40:97","nodeType":"YulFunctionCall","src":"1299:40:97"}],"functionName":{"name":"add","nativeSrc":"1287:3:97","nodeType":"YulIdentifier","src":"1287:3:97"},"nativeSrc":"1287:53:97","nodeType":"YulFunctionCall","src":"1287:53:97"},"variables":[{"name":"newFreePtr","nativeSrc":"1273:10:97","nodeType":"YulTypedName","src":"1273:10:97","type":""}]},{"body":{"nativeSrc":"1399:22:97","nodeType":"YulBlock","src":"1399:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1401:16:97","nodeType":"YulIdentifier","src":"1401:16:97"},"nativeSrc":"1401:18:97","nodeType":"YulFunctionCall","src":"1401:18:97"},"nativeSrc":"1401:18:97","nodeType":"YulExpressionStatement","src":"1401:18:97"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1358:10:97","nodeType":"YulIdentifier","src":"1358:10:97"},{"name":"_1","nativeSrc":"1370:2:97","nodeType":"YulIdentifier","src":"1370:2:97"}],"functionName":{"name":"gt","nativeSrc":"1355:2:97","nodeType":"YulIdentifier","src":"1355:2:97"},"nativeSrc":"1355:18:97","nodeType":"YulFunctionCall","src":"1355:18:97"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1378:10:97","nodeType":"YulIdentifier","src":"1378:10:97"},{"name":"memPtr","nativeSrc":"1390:6:97","nodeType":"YulIdentifier","src":"1390:6:97"}],"functionName":{"name":"lt","nativeSrc":"1375:2:97","nodeType":"YulIdentifier","src":"1375:2:97"},"nativeSrc":"1375:22:97","nodeType":"YulFunctionCall","src":"1375:22:97"}],"functionName":{"name":"or","nativeSrc":"1352:2:97","nodeType":"YulIdentifier","src":"1352:2:97"},"nativeSrc":"1352:46:97","nodeType":"YulFunctionCall","src":"1352:46:97"},"nativeSrc":"1349:72:97","nodeType":"YulIf","src":"1349:72:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1437:2:97","nodeType":"YulLiteral","src":"1437:2:97","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1441:10:97","nodeType":"YulIdentifier","src":"1441:10:97"}],"functionName":{"name":"mstore","nativeSrc":"1430:6:97","nodeType":"YulIdentifier","src":"1430:6:97"},"nativeSrc":"1430:22:97","nodeType":"YulFunctionCall","src":"1430:22:97"},"nativeSrc":"1430:22:97","nodeType":"YulExpressionStatement","src":"1430:22:97"},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"1468:6:97","nodeType":"YulIdentifier","src":"1468:6:97"},{"name":"_3","nativeSrc":"1476:2:97","nodeType":"YulIdentifier","src":"1476:2:97"}],"functionName":{"name":"mstore","nativeSrc":"1461:6:97","nodeType":"YulIdentifier","src":"1461:6:97"},"nativeSrc":"1461:18:97","nodeType":"YulFunctionCall","src":"1461:18:97"},"nativeSrc":"1461:18:97","nodeType":"YulExpressionStatement","src":"1461:18:97"},{"body":{"nativeSrc":"1525:16:97","nodeType":"YulBlock","src":"1525:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1534:1:97","nodeType":"YulLiteral","src":"1534:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1537:1:97","nodeType":"YulLiteral","src":"1537:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1527:6:97","nodeType":"YulIdentifier","src":"1527:6:97"},"nativeSrc":"1527:12:97","nodeType":"YulFunctionCall","src":"1527:12:97"},"nativeSrc":"1527:12:97","nodeType":"YulExpressionStatement","src":"1527:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"1502:2:97","nodeType":"YulIdentifier","src":"1502:2:97"},{"name":"_3","nativeSrc":"1506:2:97","nodeType":"YulIdentifier","src":"1506:2:97"}],"functionName":{"name":"add","nativeSrc":"1498:3:97","nodeType":"YulIdentifier","src":"1498:3:97"},"nativeSrc":"1498:11:97","nodeType":"YulFunctionCall","src":"1498:11:97"},{"kind":"number","nativeSrc":"1511:2:97","nodeType":"YulLiteral","src":"1511:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1494:3:97","nodeType":"YulIdentifier","src":"1494:3:97"},"nativeSrc":"1494:20:97","nodeType":"YulFunctionCall","src":"1494:20:97"},{"name":"dataEnd","nativeSrc":"1516:7:97","nodeType":"YulIdentifier","src":"1516:7:97"}],"functionName":{"name":"gt","nativeSrc":"1491:2:97","nodeType":"YulIdentifier","src":"1491:2:97"},"nativeSrc":"1491:33:97","nodeType":"YulFunctionCall","src":"1491:33:97"},"nativeSrc":"1488:53:97","nodeType":"YulIf","src":"1488:53:97"},{"expression":{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"1589:2:97","nodeType":"YulIdentifier","src":"1589:2:97"},{"kind":"number","nativeSrc":"1593:2:97","nodeType":"YulLiteral","src":"1593:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1585:3:97","nodeType":"YulIdentifier","src":"1585:3:97"},"nativeSrc":"1585:11:97","nodeType":"YulFunctionCall","src":"1585:11:97"},{"arguments":[{"name":"memPtr","nativeSrc":"1602:6:97","nodeType":"YulIdentifier","src":"1602:6:97"},{"kind":"number","nativeSrc":"1610:2:97","nodeType":"YulLiteral","src":"1610:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1598:3:97","nodeType":"YulIdentifier","src":"1598:3:97"},"nativeSrc":"1598:15:97","nodeType":"YulFunctionCall","src":"1598:15:97"},{"name":"_3","nativeSrc":"1615:2:97","nodeType":"YulIdentifier","src":"1615:2:97"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"1550:34:97","nodeType":"YulIdentifier","src":"1550:34:97"},"nativeSrc":"1550:68:97","nodeType":"YulFunctionCall","src":"1550:68:97"},"nativeSrc":"1550:68:97","nodeType":"YulExpressionStatement","src":"1550:68:97"},{"nativeSrc":"1627:16:97","nodeType":"YulAssignment","src":"1627:16:97","value":{"name":"memPtr","nativeSrc":"1637:6:97","nodeType":"YulIdentifier","src":"1637:6:97"},"variableNames":[{"name":"value2","nativeSrc":"1627:6:97","nodeType":"YulIdentifier","src":"1627:6:97"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr_fromMemory","nativeSrc":"583:1066:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"657:9:97","nodeType":"YulTypedName","src":"657:9:97","type":""},{"name":"dataEnd","nativeSrc":"668:7:97","nodeType":"YulTypedName","src":"668:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"680:6:97","nodeType":"YulTypedName","src":"680:6:97","type":""},{"name":"value1","nativeSrc":"688:6:97","nodeType":"YulTypedName","src":"688:6:97","type":""},{"name":"value2","nativeSrc":"696:6:97","nodeType":"YulTypedName","src":"696:6:97","type":""}],"src":"583:1066:97"},{"body":{"nativeSrc":"1703:176:97","nodeType":"YulBlock","src":"1703:176:97","statements":[{"nativeSrc":"1713:17:97","nodeType":"YulAssignment","src":"1713:17:97","value":{"arguments":[{"name":"x","nativeSrc":"1725:1:97","nodeType":"YulIdentifier","src":"1725:1:97"},{"name":"y","nativeSrc":"1728:1:97","nodeType":"YulIdentifier","src":"1728:1:97"}],"functionName":{"name":"sub","nativeSrc":"1721:3:97","nodeType":"YulIdentifier","src":"1721:3:97"},"nativeSrc":"1721:9:97","nodeType":"YulFunctionCall","src":"1721:9:97"},"variableNames":[{"name":"diff","nativeSrc":"1713:4:97","nodeType":"YulIdentifier","src":"1713:4:97"}]},{"body":{"nativeSrc":"1762:111:97","nodeType":"YulBlock","src":"1762:111:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1783:1:97","nodeType":"YulLiteral","src":"1783:1:97","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"1790:3:97","nodeType":"YulLiteral","src":"1790:3:97","type":"","value":"224"},{"kind":"number","nativeSrc":"1795:10:97","nodeType":"YulLiteral","src":"1795:10:97","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"1786:3:97","nodeType":"YulIdentifier","src":"1786:3:97"},"nativeSrc":"1786:20:97","nodeType":"YulFunctionCall","src":"1786:20:97"}],"functionName":{"name":"mstore","nativeSrc":"1776:6:97","nodeType":"YulIdentifier","src":"1776:6:97"},"nativeSrc":"1776:31:97","nodeType":"YulFunctionCall","src":"1776:31:97"},"nativeSrc":"1776:31:97","nodeType":"YulExpressionStatement","src":"1776:31:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1827:1:97","nodeType":"YulLiteral","src":"1827:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"1830:4:97","nodeType":"YulLiteral","src":"1830:4:97","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"1820:6:97","nodeType":"YulIdentifier","src":"1820:6:97"},"nativeSrc":"1820:15:97","nodeType":"YulFunctionCall","src":"1820:15:97"},"nativeSrc":"1820:15:97","nodeType":"YulExpressionStatement","src":"1820:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1855:1:97","nodeType":"YulLiteral","src":"1855:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1858:4:97","nodeType":"YulLiteral","src":"1858:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1848:6:97","nodeType":"YulIdentifier","src":"1848:6:97"},"nativeSrc":"1848:15:97","nodeType":"YulFunctionCall","src":"1848:15:97"},"nativeSrc":"1848:15:97","nodeType":"YulExpressionStatement","src":"1848:15:97"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"1745:4:97","nodeType":"YulIdentifier","src":"1745:4:97"},{"name":"x","nativeSrc":"1751:1:97","nodeType":"YulIdentifier","src":"1751:1:97"}],"functionName":{"name":"gt","nativeSrc":"1742:2:97","nodeType":"YulIdentifier","src":"1742:2:97"},"nativeSrc":"1742:11:97","nodeType":"YulFunctionCall","src":"1742:11:97"},"nativeSrc":"1739:134:97","nodeType":"YulIf","src":"1739:134:97"}]},"name":"checked_sub_t_uint256","nativeSrc":"1654:225:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"1685:1:97","nodeType":"YulTypedName","src":"1685:1:97","type":""},{"name":"y","nativeSrc":"1688:1:97","nodeType":"YulTypedName","src":"1688:1:97","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"1694:4:97","nodeType":"YulTypedName","src":"1694:4:97","type":""}],"src":"1654:225:97"},{"body":{"nativeSrc":"1916:95:97","nodeType":"YulBlock","src":"1916:95:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1933:1:97","nodeType":"YulLiteral","src":"1933:1:97","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"1940:3:97","nodeType":"YulLiteral","src":"1940:3:97","type":"","value":"224"},{"kind":"number","nativeSrc":"1945:10:97","nodeType":"YulLiteral","src":"1945:10:97","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"1936:3:97","nodeType":"YulIdentifier","src":"1936:3:97"},"nativeSrc":"1936:20:97","nodeType":"YulFunctionCall","src":"1936:20:97"}],"functionName":{"name":"mstore","nativeSrc":"1926:6:97","nodeType":"YulIdentifier","src":"1926:6:97"},"nativeSrc":"1926:31:97","nodeType":"YulFunctionCall","src":"1926:31:97"},"nativeSrc":"1926:31:97","nodeType":"YulExpressionStatement","src":"1926:31:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1973:1:97","nodeType":"YulLiteral","src":"1973:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"1976:4:97","nodeType":"YulLiteral","src":"1976:4:97","type":"","value":"0x01"}],"functionName":{"name":"mstore","nativeSrc":"1966:6:97","nodeType":"YulIdentifier","src":"1966:6:97"},"nativeSrc":"1966:15:97","nodeType":"YulFunctionCall","src":"1966:15:97"},"nativeSrc":"1966:15:97","nodeType":"YulExpressionStatement","src":"1966:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1997:1:97","nodeType":"YulLiteral","src":"1997:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"2000:4:97","nodeType":"YulLiteral","src":"2000:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1990:6:97","nodeType":"YulIdentifier","src":"1990:6:97"},"nativeSrc":"1990:15:97","nodeType":"YulFunctionCall","src":"1990:15:97"},"nativeSrc":"1990:15:97","nodeType":"YulExpressionStatement","src":"1990:15:97"}]},"name":"panic_error_0x01","nativeSrc":"1884:127:97","nodeType":"YulFunctionDefinition","src":"1884:127:97"},{"body":{"nativeSrc":"2145:175:97","nodeType":"YulBlock","src":"2145:175:97","statements":[{"nativeSrc":"2155:26:97","nodeType":"YulAssignment","src":"2155:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2167:9:97","nodeType":"YulIdentifier","src":"2167:9:97"},{"kind":"number","nativeSrc":"2178:2:97","nodeType":"YulLiteral","src":"2178:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2163:3:97","nodeType":"YulIdentifier","src":"2163:3:97"},"nativeSrc":"2163:18:97","nodeType":"YulFunctionCall","src":"2163:18:97"},"variableNames":[{"name":"tail","nativeSrc":"2155:4:97","nodeType":"YulIdentifier","src":"2155:4:97"}]},{"nativeSrc":"2190:29:97","nodeType":"YulVariableDeclaration","src":"2190:29:97","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2208:3:97","nodeType":"YulLiteral","src":"2208:3:97","type":"","value":"160"},{"kind":"number","nativeSrc":"2213:1:97","nodeType":"YulLiteral","src":"2213:1:97","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"2204:3:97","nodeType":"YulIdentifier","src":"2204:3:97"},"nativeSrc":"2204:11:97","nodeType":"YulFunctionCall","src":"2204:11:97"},{"kind":"number","nativeSrc":"2217:1:97","nodeType":"YulLiteral","src":"2217:1:97","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"2200:3:97","nodeType":"YulIdentifier","src":"2200:3:97"},"nativeSrc":"2200:19:97","nodeType":"YulFunctionCall","src":"2200:19:97"},"variables":[{"name":"_1","nativeSrc":"2194:2:97","nodeType":"YulTypedName","src":"2194:2:97","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2235:9:97","nodeType":"YulIdentifier","src":"2235:9:97"},{"arguments":[{"name":"value0","nativeSrc":"2250:6:97","nodeType":"YulIdentifier","src":"2250:6:97"},{"name":"_1","nativeSrc":"2258:2:97","nodeType":"YulIdentifier","src":"2258:2:97"}],"functionName":{"name":"and","nativeSrc":"2246:3:97","nodeType":"YulIdentifier","src":"2246:3:97"},"nativeSrc":"2246:15:97","nodeType":"YulFunctionCall","src":"2246:15:97"}],"functionName":{"name":"mstore","nativeSrc":"2228:6:97","nodeType":"YulIdentifier","src":"2228:6:97"},"nativeSrc":"2228:34:97","nodeType":"YulFunctionCall","src":"2228:34:97"},"nativeSrc":"2228:34:97","nodeType":"YulExpressionStatement","src":"2228:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2282:9:97","nodeType":"YulIdentifier","src":"2282:9:97"},{"kind":"number","nativeSrc":"2293:2:97","nodeType":"YulLiteral","src":"2293:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2278:3:97","nodeType":"YulIdentifier","src":"2278:3:97"},"nativeSrc":"2278:18:97","nodeType":"YulFunctionCall","src":"2278:18:97"},{"arguments":[{"name":"value1","nativeSrc":"2302:6:97","nodeType":"YulIdentifier","src":"2302:6:97"},{"name":"_1","nativeSrc":"2310:2:97","nodeType":"YulIdentifier","src":"2310:2:97"}],"functionName":{"name":"and","nativeSrc":"2298:3:97","nodeType":"YulIdentifier","src":"2298:3:97"},"nativeSrc":"2298:15:97","nodeType":"YulFunctionCall","src":"2298:15:97"}],"functionName":{"name":"mstore","nativeSrc":"2271:6:97","nodeType":"YulIdentifier","src":"2271:6:97"},"nativeSrc":"2271:43:97","nodeType":"YulFunctionCall","src":"2271:43:97"},"nativeSrc":"2271:43:97","nodeType":"YulExpressionStatement","src":"2271:43:97"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"2016:304:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2106:9:97","nodeType":"YulTypedName","src":"2106:9:97","type":""},{"name":"value1","nativeSrc":"2117:6:97","nodeType":"YulTypedName","src":"2117:6:97","type":""},{"name":"value0","nativeSrc":"2125:6:97","nodeType":"YulTypedName","src":"2125:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2136:4:97","nodeType":"YulTypedName","src":"2136:4:97","type":""}],"src":"2016:304:97"},{"body":{"nativeSrc":"2499:228:97","nodeType":"YulBlock","src":"2499:228:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2516:9:97","nodeType":"YulIdentifier","src":"2516:9:97"},{"kind":"number","nativeSrc":"2527:2:97","nodeType":"YulLiteral","src":"2527:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"2509:6:97","nodeType":"YulIdentifier","src":"2509:6:97"},"nativeSrc":"2509:21:97","nodeType":"YulFunctionCall","src":"2509:21:97"},"nativeSrc":"2509:21:97","nodeType":"YulExpressionStatement","src":"2509:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2550:9:97","nodeType":"YulIdentifier","src":"2550:9:97"},{"kind":"number","nativeSrc":"2561:2:97","nodeType":"YulLiteral","src":"2561:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2546:3:97","nodeType":"YulIdentifier","src":"2546:3:97"},"nativeSrc":"2546:18:97","nodeType":"YulFunctionCall","src":"2546:18:97"},{"kind":"number","nativeSrc":"2566:2:97","nodeType":"YulLiteral","src":"2566:2:97","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"2539:6:97","nodeType":"YulIdentifier","src":"2539:6:97"},"nativeSrc":"2539:30:97","nodeType":"YulFunctionCall","src":"2539:30:97"},"nativeSrc":"2539:30:97","nodeType":"YulExpressionStatement","src":"2539:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2589:9:97","nodeType":"YulIdentifier","src":"2589:9:97"},{"kind":"number","nativeSrc":"2600:2:97","nodeType":"YulLiteral","src":"2600:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2585:3:97","nodeType":"YulIdentifier","src":"2585:3:97"},"nativeSrc":"2585:18:97","nodeType":"YulFunctionCall","src":"2585:18:97"},{"hexValue":"455243313936373a206e65772061646d696e20697320746865207a65726f2061","kind":"string","nativeSrc":"2605:34:97","nodeType":"YulLiteral","src":"2605:34:97","type":"","value":"ERC1967: new admin is the zero a"}],"functionName":{"name":"mstore","nativeSrc":"2578:6:97","nodeType":"YulIdentifier","src":"2578:6:97"},"nativeSrc":"2578:62:97","nodeType":"YulFunctionCall","src":"2578:62:97"},"nativeSrc":"2578:62:97","nodeType":"YulExpressionStatement","src":"2578:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2660:9:97","nodeType":"YulIdentifier","src":"2660:9:97"},{"kind":"number","nativeSrc":"2671:2:97","nodeType":"YulLiteral","src":"2671:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2656:3:97","nodeType":"YulIdentifier","src":"2656:3:97"},"nativeSrc":"2656:18:97","nodeType":"YulFunctionCall","src":"2656:18:97"},{"hexValue":"646472657373","kind":"string","nativeSrc":"2676:8:97","nodeType":"YulLiteral","src":"2676:8:97","type":"","value":"ddress"}],"functionName":{"name":"mstore","nativeSrc":"2649:6:97","nodeType":"YulIdentifier","src":"2649:6:97"},"nativeSrc":"2649:36:97","nodeType":"YulFunctionCall","src":"2649:36:97"},"nativeSrc":"2649:36:97","nodeType":"YulExpressionStatement","src":"2649:36:97"},{"nativeSrc":"2694:27:97","nodeType":"YulAssignment","src":"2694:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2706:9:97","nodeType":"YulIdentifier","src":"2706:9:97"},{"kind":"number","nativeSrc":"2717:3:97","nodeType":"YulLiteral","src":"2717:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"2702:3:97","nodeType":"YulIdentifier","src":"2702:3:97"},"nativeSrc":"2702:19:97","nodeType":"YulFunctionCall","src":"2702:19:97"},"variableNames":[{"name":"tail","nativeSrc":"2694:4:97","nodeType":"YulIdentifier","src":"2694:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2325:402:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2476:9:97","nodeType":"YulTypedName","src":"2476:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2490:4:97","nodeType":"YulTypedName","src":"2490:4:97","type":""}],"src":"2325:402:97"},{"body":{"nativeSrc":"2906:235:97","nodeType":"YulBlock","src":"2906:235:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2923:9:97","nodeType":"YulIdentifier","src":"2923:9:97"},{"kind":"number","nativeSrc":"2934:2:97","nodeType":"YulLiteral","src":"2934:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"2916:6:97","nodeType":"YulIdentifier","src":"2916:6:97"},"nativeSrc":"2916:21:97","nodeType":"YulFunctionCall","src":"2916:21:97"},"nativeSrc":"2916:21:97","nodeType":"YulExpressionStatement","src":"2916:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2957:9:97","nodeType":"YulIdentifier","src":"2957:9:97"},{"kind":"number","nativeSrc":"2968:2:97","nodeType":"YulLiteral","src":"2968:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2953:3:97","nodeType":"YulIdentifier","src":"2953:3:97"},"nativeSrc":"2953:18:97","nodeType":"YulFunctionCall","src":"2953:18:97"},{"kind":"number","nativeSrc":"2973:2:97","nodeType":"YulLiteral","src":"2973:2:97","type":"","value":"45"}],"functionName":{"name":"mstore","nativeSrc":"2946:6:97","nodeType":"YulIdentifier","src":"2946:6:97"},"nativeSrc":"2946:30:97","nodeType":"YulFunctionCall","src":"2946:30:97"},"nativeSrc":"2946:30:97","nodeType":"YulExpressionStatement","src":"2946:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2996:9:97","nodeType":"YulIdentifier","src":"2996:9:97"},{"kind":"number","nativeSrc":"3007:2:97","nodeType":"YulLiteral","src":"3007:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2992:3:97","nodeType":"YulIdentifier","src":"2992:3:97"},"nativeSrc":"2992:18:97","nodeType":"YulFunctionCall","src":"2992:18:97"},{"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e","kind":"string","nativeSrc":"3012:34:97","nodeType":"YulLiteral","src":"3012:34:97","type":"","value":"ERC1967: new implementation is n"}],"functionName":{"name":"mstore","nativeSrc":"2985:6:97","nodeType":"YulIdentifier","src":"2985:6:97"},"nativeSrc":"2985:62:97","nodeType":"YulFunctionCall","src":"2985:62:97"},"nativeSrc":"2985:62:97","nodeType":"YulExpressionStatement","src":"2985:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3067:9:97","nodeType":"YulIdentifier","src":"3067:9:97"},{"kind":"number","nativeSrc":"3078:2:97","nodeType":"YulLiteral","src":"3078:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3063:3:97","nodeType":"YulIdentifier","src":"3063:3:97"},"nativeSrc":"3063:18:97","nodeType":"YulFunctionCall","src":"3063:18:97"},{"hexValue":"6f74206120636f6e7472616374","kind":"string","nativeSrc":"3083:15:97","nodeType":"YulLiteral","src":"3083:15:97","type":"","value":"ot a contract"}],"functionName":{"name":"mstore","nativeSrc":"3056:6:97","nodeType":"YulIdentifier","src":"3056:6:97"},"nativeSrc":"3056:43:97","nodeType":"YulFunctionCall","src":"3056:43:97"},"nativeSrc":"3056:43:97","nodeType":"YulExpressionStatement","src":"3056:43:97"},{"nativeSrc":"3108:27:97","nodeType":"YulAssignment","src":"3108:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"3120:9:97","nodeType":"YulIdentifier","src":"3120:9:97"},{"kind":"number","nativeSrc":"3131:3:97","nodeType":"YulLiteral","src":"3131:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"3116:3:97","nodeType":"YulIdentifier","src":"3116:3:97"},"nativeSrc":"3116:19:97","nodeType":"YulFunctionCall","src":"3116:19:97"},"variableNames":[{"name":"tail","nativeSrc":"3108:4:97","nodeType":"YulIdentifier","src":"3108:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2732:409:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2883:9:97","nodeType":"YulTypedName","src":"2883:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2897:4:97","nodeType":"YulTypedName","src":"2897:4:97","type":""}],"src":"2732:409:97"},{"body":{"nativeSrc":"3320:228:97","nodeType":"YulBlock","src":"3320:228:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3337:9:97","nodeType":"YulIdentifier","src":"3337:9:97"},{"kind":"number","nativeSrc":"3348:2:97","nodeType":"YulLiteral","src":"3348:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"3330:6:97","nodeType":"YulIdentifier","src":"3330:6:97"},"nativeSrc":"3330:21:97","nodeType":"YulFunctionCall","src":"3330:21:97"},"nativeSrc":"3330:21:97","nodeType":"YulExpressionStatement","src":"3330:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3371:9:97","nodeType":"YulIdentifier","src":"3371:9:97"},{"kind":"number","nativeSrc":"3382:2:97","nodeType":"YulLiteral","src":"3382:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3367:3:97","nodeType":"YulIdentifier","src":"3367:3:97"},"nativeSrc":"3367:18:97","nodeType":"YulFunctionCall","src":"3367:18:97"},{"kind":"number","nativeSrc":"3387:2:97","nodeType":"YulLiteral","src":"3387:2:97","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"3360:6:97","nodeType":"YulIdentifier","src":"3360:6:97"},"nativeSrc":"3360:30:97","nodeType":"YulFunctionCall","src":"3360:30:97"},"nativeSrc":"3360:30:97","nodeType":"YulExpressionStatement","src":"3360:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3410:9:97","nodeType":"YulIdentifier","src":"3410:9:97"},{"kind":"number","nativeSrc":"3421:2:97","nodeType":"YulLiteral","src":"3421:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3406:3:97","nodeType":"YulIdentifier","src":"3406:3:97"},"nativeSrc":"3406:18:97","nodeType":"YulFunctionCall","src":"3406:18:97"},{"hexValue":"416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f","kind":"string","nativeSrc":"3426:34:97","nodeType":"YulLiteral","src":"3426:34:97","type":"","value":"Address: delegate call to non-co"}],"functionName":{"name":"mstore","nativeSrc":"3399:6:97","nodeType":"YulIdentifier","src":"3399:6:97"},"nativeSrc":"3399:62:97","nodeType":"YulFunctionCall","src":"3399:62:97"},"nativeSrc":"3399:62:97","nodeType":"YulExpressionStatement","src":"3399:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3481:9:97","nodeType":"YulIdentifier","src":"3481:9:97"},{"kind":"number","nativeSrc":"3492:2:97","nodeType":"YulLiteral","src":"3492:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3477:3:97","nodeType":"YulIdentifier","src":"3477:3:97"},"nativeSrc":"3477:18:97","nodeType":"YulFunctionCall","src":"3477:18:97"},{"hexValue":"6e7472616374","kind":"string","nativeSrc":"3497:8:97","nodeType":"YulLiteral","src":"3497:8:97","type":"","value":"ntract"}],"functionName":{"name":"mstore","nativeSrc":"3470:6:97","nodeType":"YulIdentifier","src":"3470:6:97"},"nativeSrc":"3470:36:97","nodeType":"YulFunctionCall","src":"3470:36:97"},"nativeSrc":"3470:36:97","nodeType":"YulExpressionStatement","src":"3470:36:97"},{"nativeSrc":"3515:27:97","nodeType":"YulAssignment","src":"3515:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"3527:9:97","nodeType":"YulIdentifier","src":"3527:9:97"},{"kind":"number","nativeSrc":"3538:3:97","nodeType":"YulLiteral","src":"3538:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"3523:3:97","nodeType":"YulIdentifier","src":"3523:3:97"},"nativeSrc":"3523:19:97","nodeType":"YulFunctionCall","src":"3523:19:97"},"variableNames":[{"name":"tail","nativeSrc":"3515:4:97","nodeType":"YulIdentifier","src":"3515:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3146:402:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3297:9:97","nodeType":"YulTypedName","src":"3297:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3311:4:97","nodeType":"YulTypedName","src":"3311:4:97","type":""}],"src":"3146:402:97"},{"body":{"nativeSrc":"3690:150:97","nodeType":"YulBlock","src":"3690:150:97","statements":[{"nativeSrc":"3700:27:97","nodeType":"YulVariableDeclaration","src":"3700:27:97","value":{"arguments":[{"name":"value0","nativeSrc":"3720:6:97","nodeType":"YulIdentifier","src":"3720:6:97"}],"functionName":{"name":"mload","nativeSrc":"3714:5:97","nodeType":"YulIdentifier","src":"3714:5:97"},"nativeSrc":"3714:13:97","nodeType":"YulFunctionCall","src":"3714:13:97"},"variables":[{"name":"length","nativeSrc":"3704:6:97","nodeType":"YulTypedName","src":"3704:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"3775:6:97","nodeType":"YulIdentifier","src":"3775:6:97"},{"kind":"number","nativeSrc":"3783:4:97","nodeType":"YulLiteral","src":"3783:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3771:3:97","nodeType":"YulIdentifier","src":"3771:3:97"},"nativeSrc":"3771:17:97","nodeType":"YulFunctionCall","src":"3771:17:97"},{"name":"pos","nativeSrc":"3790:3:97","nodeType":"YulIdentifier","src":"3790:3:97"},{"name":"length","nativeSrc":"3795:6:97","nodeType":"YulIdentifier","src":"3795:6:97"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"3736:34:97","nodeType":"YulIdentifier","src":"3736:34:97"},"nativeSrc":"3736:66:97","nodeType":"YulFunctionCall","src":"3736:66:97"},"nativeSrc":"3736:66:97","nodeType":"YulExpressionStatement","src":"3736:66:97"},{"nativeSrc":"3811:23:97","nodeType":"YulAssignment","src":"3811:23:97","value":{"arguments":[{"name":"pos","nativeSrc":"3822:3:97","nodeType":"YulIdentifier","src":"3822:3:97"},{"name":"length","nativeSrc":"3827:6:97","nodeType":"YulIdentifier","src":"3827:6:97"}],"functionName":{"name":"add","nativeSrc":"3818:3:97","nodeType":"YulIdentifier","src":"3818:3:97"},"nativeSrc":"3818:16:97","nodeType":"YulFunctionCall","src":"3818:16:97"},"variableNames":[{"name":"end","nativeSrc":"3811:3:97","nodeType":"YulIdentifier","src":"3811:3:97"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"3553:287:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3666:3:97","nodeType":"YulTypedName","src":"3666:3:97","type":""},{"name":"value0","nativeSrc":"3671:6:97","nodeType":"YulTypedName","src":"3671:6:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"3682:3:97","nodeType":"YulTypedName","src":"3682:3:97","type":""}],"src":"3553:287:97"},{"body":{"nativeSrc":"3966:275:97","nodeType":"YulBlock","src":"3966:275:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3983:9:97","nodeType":"YulIdentifier","src":"3983:9:97"},{"kind":"number","nativeSrc":"3994:2:97","nodeType":"YulLiteral","src":"3994:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"3976:6:97","nodeType":"YulIdentifier","src":"3976:6:97"},"nativeSrc":"3976:21:97","nodeType":"YulFunctionCall","src":"3976:21:97"},"nativeSrc":"3976:21:97","nodeType":"YulExpressionStatement","src":"3976:21:97"},{"nativeSrc":"4006:27:97","nodeType":"YulVariableDeclaration","src":"4006:27:97","value":{"arguments":[{"name":"value0","nativeSrc":"4026:6:97","nodeType":"YulIdentifier","src":"4026:6:97"}],"functionName":{"name":"mload","nativeSrc":"4020:5:97","nodeType":"YulIdentifier","src":"4020:5:97"},"nativeSrc":"4020:13:97","nodeType":"YulFunctionCall","src":"4020:13:97"},"variables":[{"name":"length","nativeSrc":"4010:6:97","nodeType":"YulTypedName","src":"4010:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4053:9:97","nodeType":"YulIdentifier","src":"4053:9:97"},{"kind":"number","nativeSrc":"4064:2:97","nodeType":"YulLiteral","src":"4064:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4049:3:97","nodeType":"YulIdentifier","src":"4049:3:97"},"nativeSrc":"4049:18:97","nodeType":"YulFunctionCall","src":"4049:18:97"},{"name":"length","nativeSrc":"4069:6:97","nodeType":"YulIdentifier","src":"4069:6:97"}],"functionName":{"name":"mstore","nativeSrc":"4042:6:97","nodeType":"YulIdentifier","src":"4042:6:97"},"nativeSrc":"4042:34:97","nodeType":"YulFunctionCall","src":"4042:34:97"},"nativeSrc":"4042:34:97","nodeType":"YulExpressionStatement","src":"4042:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"4124:6:97","nodeType":"YulIdentifier","src":"4124:6:97"},{"kind":"number","nativeSrc":"4132:2:97","nodeType":"YulLiteral","src":"4132:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4120:3:97","nodeType":"YulIdentifier","src":"4120:3:97"},"nativeSrc":"4120:15:97","nodeType":"YulFunctionCall","src":"4120:15:97"},{"arguments":[{"name":"headStart","nativeSrc":"4141:9:97","nodeType":"YulIdentifier","src":"4141:9:97"},{"kind":"number","nativeSrc":"4152:2:97","nodeType":"YulLiteral","src":"4152:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4137:3:97","nodeType":"YulIdentifier","src":"4137:3:97"},"nativeSrc":"4137:18:97","nodeType":"YulFunctionCall","src":"4137:18:97"},{"name":"length","nativeSrc":"4157:6:97","nodeType":"YulIdentifier","src":"4157:6:97"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4085:34:97","nodeType":"YulIdentifier","src":"4085:34:97"},"nativeSrc":"4085:79:97","nodeType":"YulFunctionCall","src":"4085:79:97"},"nativeSrc":"4085:79:97","nodeType":"YulExpressionStatement","src":"4085:79:97"},{"nativeSrc":"4173:62:97","nodeType":"YulAssignment","src":"4173:62:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4189:9:97","nodeType":"YulIdentifier","src":"4189:9:97"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"4208:6:97","nodeType":"YulIdentifier","src":"4208:6:97"},{"kind":"number","nativeSrc":"4216:2:97","nodeType":"YulLiteral","src":"4216:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"4204:3:97","nodeType":"YulIdentifier","src":"4204:3:97"},"nativeSrc":"4204:15:97","nodeType":"YulFunctionCall","src":"4204:15:97"},{"arguments":[{"kind":"number","nativeSrc":"4225:2:97","nodeType":"YulLiteral","src":"4225:2:97","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"4221:3:97","nodeType":"YulIdentifier","src":"4221:3:97"},"nativeSrc":"4221:7:97","nodeType":"YulFunctionCall","src":"4221:7:97"}],"functionName":{"name":"and","nativeSrc":"4200:3:97","nodeType":"YulIdentifier","src":"4200:3:97"},"nativeSrc":"4200:29:97","nodeType":"YulFunctionCall","src":"4200:29:97"}],"functionName":{"name":"add","nativeSrc":"4185:3:97","nodeType":"YulIdentifier","src":"4185:3:97"},"nativeSrc":"4185:45:97","nodeType":"YulFunctionCall","src":"4185:45:97"},{"kind":"number","nativeSrc":"4232:2:97","nodeType":"YulLiteral","src":"4232:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4181:3:97","nodeType":"YulIdentifier","src":"4181:3:97"},"nativeSrc":"4181:54:97","nodeType":"YulFunctionCall","src":"4181:54:97"},"variableNames":[{"name":"tail","nativeSrc":"4173:4:97","nodeType":"YulIdentifier","src":"4173:4:97"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3845:396:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3935:9:97","nodeType":"YulTypedName","src":"3935:9:97","type":""},{"name":"value0","nativeSrc":"3946:6:97","nodeType":"YulTypedName","src":"3946:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3957:4:97","nodeType":"YulTypedName","src":"3957:4:97","type":""}],"src":"3845:396:97"}]},"contents":"{\n    { }\n    function abi_decode_address_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function copy_memory_to_memory_with_cleanup(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n    }\n    function abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_address_fromMemory(headStart)\n        value1 := abi_decode_address_fromMemory(add(headStart, 32))\n        let offset := mload(add(headStart, 64))\n        let _1 := sub(shl(64, 1), 1)\n        if gt(offset, _1) { revert(0, 0) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n        let _3 := mload(_2)\n        if gt(_3, _1) { panic_error_0x41() }\n        let _4 := not(31)\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(_3, 0x1f), _4), 63), _4))\n        if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, _3)\n        if gt(add(add(_2, _3), 32), dataEnd) { revert(0, 0) }\n        copy_memory_to_memory_with_cleanup(add(_2, 32), add(memPtr, 32), _3)\n        value2 := memPtr\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        if gt(diff, x)\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x11)\n            revert(0, 0x24)\n        }\n    }\n    function panic_error_0x01()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x01)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        let _1 := sub(shl(160, 1), 1)\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n    }\n    function abi_encode_tuple_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"ERC1967: new admin is the zero a\")\n        mstore(add(headStart, 96), \"ddress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 45)\n        mstore(add(headStart, 64), \"ERC1967: new implementation is n\")\n        mstore(add(headStart, 96), \"ot a contract\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Address: delegate call to non-co\")\n        mstore(add(headStart, 96), \"ntract\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n        end := add(pos, length)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        copy_memory_to_memory_with_cleanup(add(value0, 32), add(headStart, 64), length)\n        tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n    }\n}","id":97,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405260405161103838038061103883398101604081905261002291610467565b828161004f60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd610537565b600080516020610ff18339815191521461006b5761006b610558565b610077828260006100d2565b506100a5905060017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6104610537565b600080516020610fd1833981519152146100c1576100c1610558565b6100ca826100fe565b5050506105bd565b6100db8361016c565b6000825111806100e85750805b156100f9576100f783836101ac565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61013e600080516020610fd1833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1610169816101da565b50565b61017581610276565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101d18383604051806060016040528060278152602001611011602791396102f8565b90505b92915050565b6001600160a01b0381166102445760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610fd18339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102e35760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161023b565b80600080516020610ff1833981519152610255565b60606001600160a01b0384163b6103605760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b606482015260840161023b565b600080856001600160a01b03168560405161037b919061056e565b600060405180830381855af49150503d80600081146103b6576040519150601f19603f3d011682016040523d82523d6000602084013e6103bb565b606091505b5090925090506103cc8282866103d8565b925050505b9392505050565b606083156103e75750816103d1565b8251156103f75782518084602001fd5b8160405162461bcd60e51b815260040161023b919061058a565b80516001600160a01b038116811461042857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561045e578181015183820152602001610446565b50506000910152565b60008060006060848603121561047c57600080fd5b61048584610411565b925061049360208501610411565b60408501519092506001600160401b03808211156104b057600080fd5b818601915086601f8301126104c457600080fd5b8151818111156104d6576104d661042d565b604051601f8201601f19908116603f011681019083821181831017156104fe576104fe61042d565b8160405282815289602084870101111561051757600080fd5b610528836020830160208801610443565b80955050505050509250925092565b818103818111156101d457634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052600160045260246000fd5b60008251610580818460208701610443565b9190910192915050565b60208152600082518060208401526105a9816040850160208701610443565b601f01601f19169190910160400192915050565b610a05806105cc6000396000f3fe60806040526004361061005e5760003560e01c80635c60da1b116100435780635c60da1b146100a85780638f283970146100e6578063f851a440146101065761006d565b80633659cfe6146100755780634f1ef286146100955761006d565b3661006d5761006b61011b565b005b61006b61011b565b34801561008157600080fd5b5061006b610090366004610879565b610135565b61006b6100a3366004610894565b61017f565b3480156100b457600080fd5b506100bd6101f3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100f257600080fd5b5061006b610101366004610879565b610231565b34801561011257600080fd5b506100bd61025e565b61012361028c565b61013361012e610363565b61036d565b565b61013d610391565b73ffffffffffffffffffffffffffffffffffffffff16330361017757610174816040518060200160405280600081525060006103d1565b50565b61017461011b565b610187610391565b73ffffffffffffffffffffffffffffffffffffffff1633036101eb576101e68383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250600192506103d1915050565b505050565b6101e661011b565b60006101fd610391565b73ffffffffffffffffffffffffffffffffffffffff16330361022657610221610363565b905090565b61022e61011b565b90565b610239610391565b73ffffffffffffffffffffffffffffffffffffffff16330361017757610174816103fc565b6000610268610391565b73ffffffffffffffffffffffffffffffffffffffff16330361022657610221610391565b610294610391565b73ffffffffffffffffffffffffffffffffffffffff163303610133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b600061022161045d565b3660008037600080366000845af43d6000803e80801561038c573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b5473ffffffffffffffffffffffffffffffffffffffff16919050565b6103da83610485565b6000825111806103e75750805b156101e6576103f683836104d2565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f610425610391565b6040805173ffffffffffffffffffffffffffffffffffffffff928316815291841660208301520160405180910390a1610174816104fe565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6103b5565b61048e8161060a565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606104f783836040518060600160405280602781526020016109a9602791396106d5565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff81166105a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161035a565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905550565b73ffffffffffffffffffffffffffffffffffffffff81163b6106ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e747261637400000000000000000000000000000000000000606482015260840161035a565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6105c4565b606073ffffffffffffffffffffffffffffffffffffffff84163b61077b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e74726163740000000000000000000000000000000000000000000000000000606482015260840161035a565b6000808573ffffffffffffffffffffffffffffffffffffffff16856040516107a3919061093b565b600060405180830381855af49150503d80600081146107de576040519150601f19603f3d011682016040523d82523d6000602084013e6107e3565b606091505b50915091506107f38282866107fd565b9695505050505050565b6060831561080c5750816104f7565b82511561081c5782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035a9190610957565b803573ffffffffffffffffffffffffffffffffffffffff8116811461087457600080fd5b919050565b60006020828403121561088b57600080fd5b6104f782610850565b6000806000604084860312156108a957600080fd5b6108b284610850565b9250602084013567ffffffffffffffff808211156108cf57600080fd5b818601915086601f8301126108e357600080fd5b8135818111156108f257600080fd5b87602082850101111561090457600080fd5b6020830194508093505050509250925092565b60005b8381101561093257818101518382015260200161091a565b50506000910152565b6000825161094d818460208701610917565b9190910192915050565b6020815260008251806020840152610976816040850160208701610917565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220ea3e4f85f0a1d3fc15be75ff98c694618446f5f89724d4dda961c4ab756e1bcb64736f6c63430008190033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x1038 CODESIZE SUB DUP1 PUSH2 0x1038 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x22 SWAP2 PUSH2 0x467 JUMP JUMPDEST DUP3 DUP2 PUSH2 0x4F PUSH1 0x1 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBD PUSH2 0x537 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xFF1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x6B JUMPI PUSH2 0x6B PUSH2 0x558 JUMP JUMPDEST PUSH2 0x77 DUP3 DUP3 PUSH1 0x0 PUSH2 0xD2 JUMP JUMPDEST POP PUSH2 0xA5 SWAP1 POP PUSH1 0x1 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6104 PUSH2 0x537 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xFD1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0xC1 JUMPI PUSH2 0xC1 PUSH2 0x558 JUMP JUMPDEST PUSH2 0xCA DUP3 PUSH2 0xFE JUMP JUMPDEST POP POP POP PUSH2 0x5BD JUMP JUMPDEST PUSH2 0xDB DUP4 PUSH2 0x16C JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT DUP1 PUSH2 0xE8 JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0xF9 JUMPI PUSH2 0xF7 DUP4 DUP4 PUSH2 0x1AC JUMP JUMPDEST POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH32 0x7E644D79422F17C01E4894B5F4F588D331EBFA28653D42AE832DC59E38C9798F PUSH2 0x13E PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xFD1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND DUP2 MSTORE SWAP2 DUP5 AND PUSH1 0x20 DUP4 ADD MSTORE ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x169 DUP2 PUSH2 0x1DA JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x175 DUP2 PUSH2 0x276 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1D1 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1011 PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x2F8 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x244 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E65772061646D696E20697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xFD1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x2E3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x23B JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xFF1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x255 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE PUSH2 0x360 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x23B JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x37B SWAP2 SWAP1 PUSH2 0x56E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x3B6 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x3BB JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x3CC DUP3 DUP3 DUP7 PUSH2 0x3D8 JUMP JUMPDEST SWAP3 POP POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x3E7 JUMPI POP DUP2 PUSH2 0x3D1 JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x3F7 JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x23B SWAP2 SWAP1 PUSH2 0x58A JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x428 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x45E JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x446 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x47C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x485 DUP5 PUSH2 0x411 JUMP JUMPDEST SWAP3 POP PUSH2 0x493 PUSH1 0x20 DUP6 ADD PUSH2 0x411 JUMP JUMPDEST PUSH1 0x40 DUP6 ADD MLOAD SWAP1 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x4B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP2 DUP2 GT ISZERO PUSH2 0x4D6 JUMPI PUSH2 0x4D6 PUSH2 0x42D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x4FE JUMPI PUSH2 0x4FE PUSH2 0x42D JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP10 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x517 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x528 DUP4 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x443 JUMP JUMPDEST DUP1 SWAP6 POP POP POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x1D4 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x580 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x443 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x5A9 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x443 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xA05 DUP1 PUSH2 0x5CC PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x5E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5C60DA1B GT PUSH2 0x43 JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0xA8 JUMPI DUP1 PUSH4 0x8F283970 EQ PUSH2 0xE6 JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x106 JUMPI PUSH2 0x6D JUMP JUMPDEST DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x75 JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x95 JUMPI PUSH2 0x6D JUMP JUMPDEST CALLDATASIZE PUSH2 0x6D JUMPI PUSH2 0x6B PUSH2 0x11B JUMP JUMPDEST STOP JUMPDEST PUSH2 0x6B PUSH2 0x11B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x81 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6B PUSH2 0x90 CALLDATASIZE PUSH1 0x4 PUSH2 0x879 JUMP JUMPDEST PUSH2 0x135 JUMP JUMPDEST PUSH2 0x6B PUSH2 0xA3 CALLDATASIZE PUSH1 0x4 PUSH2 0x894 JUMP JUMPDEST PUSH2 0x17F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBD PUSH2 0x1F3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6B PUSH2 0x101 CALLDATASIZE PUSH1 0x4 PUSH2 0x879 JUMP JUMPDEST PUSH2 0x231 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x112 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBD PUSH2 0x25E JUMP JUMPDEST PUSH2 0x123 PUSH2 0x28C JUMP JUMPDEST PUSH2 0x133 PUSH2 0x12E PUSH2 0x363 JUMP JUMPDEST PUSH2 0x36D JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x13D PUSH2 0x391 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER SUB PUSH2 0x177 JUMPI PUSH2 0x174 DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH1 0x0 PUSH2 0x3D1 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x174 PUSH2 0x11B JUMP JUMPDEST PUSH2 0x187 PUSH2 0x391 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER SUB PUSH2 0x1EB JUMPI PUSH2 0x1E6 DUP4 DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH1 0x1 SWAP3 POP PUSH2 0x3D1 SWAP2 POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x1E6 PUSH2 0x11B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1FD PUSH2 0x391 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER SUB PUSH2 0x226 JUMPI PUSH2 0x221 PUSH2 0x363 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x22E PUSH2 0x11B JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x239 PUSH2 0x391 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER SUB PUSH2 0x177 JUMPI PUSH2 0x174 DUP2 PUSH2 0x3FC JUMP JUMPDEST PUSH1 0x0 PUSH2 0x268 PUSH2 0x391 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER SUB PUSH2 0x226 JUMPI PUSH2 0x221 PUSH2 0x391 JUMP JUMPDEST PUSH2 0x294 PUSH2 0x391 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER SUB PUSH2 0x133 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x42 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5472616E73706172656E745570677261646561626C6550726F78793A2061646D PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x696E2063616E6E6F742066616C6C6261636B20746F2070726F78792074617267 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6574000000000000000000000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x221 PUSH2 0x45D JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH2 0x38C JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 JUMPDEST SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3DA DUP4 PUSH2 0x485 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT DUP1 PUSH2 0x3E7 JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x1E6 JUMPI PUSH2 0x3F6 DUP4 DUP4 PUSH2 0x4D2 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH32 0x7E644D79422F17C01E4894B5F4F588D331EBFA28653D42AE832DC59E38C9798F PUSH2 0x425 PUSH2 0x391 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 DUP4 AND DUP2 MSTORE SWAP2 DUP5 AND PUSH1 0x20 DUP4 ADD MSTORE ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x174 DUP2 PUSH2 0x4FE JUMP JUMPDEST PUSH1 0x0 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH2 0x3B5 JUMP JUMPDEST PUSH2 0x48E DUP2 PUSH2 0x60A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x4F7 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x9A9 PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x6D5 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x5A1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E65772061646D696E20697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35A JUMP JUMPDEST DUP1 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 JUMPDEST DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND EXTCODESIZE PUSH2 0x6AE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F74206120636F6E747261637400000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35A JUMP JUMPDEST DUP1 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH2 0x5C4 JUMP JUMPDEST PUSH1 0x60 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND EXTCODESIZE PUSH2 0x77B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E74726163740000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35A JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x7A3 SWAP2 SWAP1 PUSH2 0x93B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x7DE JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x7E3 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x7F3 DUP3 DUP3 DUP7 PUSH2 0x7FD JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x80C JUMPI POP DUP2 PUSH2 0x4F7 JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x81C JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35A SWAP2 SWAP1 PUSH2 0x957 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x874 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x88B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4F7 DUP3 PUSH2 0x850 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x8A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x8B2 DUP5 PUSH2 0x850 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x8CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x8E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x8F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x904 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP5 POP DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x932 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x91A JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x94D DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x917 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x976 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x917 JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP INVALID COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C6564A264 PUSH10 0x70667358221220EA3E4F DUP6 CREATE LOG1 0xD3 0xFC ISZERO 0xBE PUSH22 0xFF98C694618446F5F89724D4DDA961C4AB756E1BCB64 PUSH20 0x6F6C63430008190033B53127684A568B3173AE13 0xB9 0xF8 0xA6 ADD PUSH15 0x243E63B6E8EE1178D6A717850B5D61 SUB CALLDATASIZE ADDMOD SWAP5 LOG1 EXTCODESIZE LOG1 LOG3 0x21 MOD PUSH8 0xC828492DB98DCA3E KECCAK256 PUSH23 0xCC3735A920A3CA505D382BBC416464726573733A206C6F PUSH24 0x2D6C6576656C2064656C65676174652063616C6C20666169 PUSH13 0x65640000000000000000000000 ","sourceMap":"1634:3556:91:-:0;;;1908:254;;;;;;;;;;;;;;;;;;:::i;:::-;2023:6;2031:5;1050:54:86;1103:1;1058:41;1050:54;:::i;:::-;-1:-1:-1;;;;;;;;;;;1018:87:86;1011:95;;;;:::i;:::-;1116:39;1134:6;1142:5;1149;1116:17;:39::i;:::-;-1:-1:-1;2078:45:91::1;::::0;-1:-1:-1;2122:1:91::1;2086:32;2078:45;:::i;:::-;-1:-1:-1::0;;;;;;;;;;;2055:69:91::1;2048:77;;;;:::i;:::-;2135:20;2148:6:::0;2135:12:::1;:20::i;:::-;1908:254:::0;;;1634:3556;;2188:295:87;2326:29;2337:17;2326:10;:29::i;:::-;2383:1;2369:4;:11;:15;:28;;;;2388:9;2369:28;2365:112;;;2413:53;2442:17;2461:4;2413:28;:53::i;:::-;;2365:112;2188:295;;;:::o;4637:135::-;4701:35;4714:11;-1:-1:-1;;;;;;;;;;;4191:45:87;-1:-1:-1;;;;;4191:45:87;;4113:130;4714:11;4701:35;;;-1:-1:-1;;;;;2246:15:97;;;2228:34;;2298:15;;;2293:2;2278:18;;2271:43;2163:18;4701:35:87;;;;;;;4746:19;4756:8;4746:9;:19::i;:::-;4637:135;:::o;1902:152::-;1968:37;1987:17;1968:18;:37::i;:::-;2020:27;;-1:-1:-1;;;;;2020:27:87;;;;;;;;1902:152;:::o;6575:198:92:-;6658:12;6689:77;6710:6;6718:4;6689:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6682:84;;6575:198;;;;;:::o;4325:201:87:-;-1:-1:-1;;;;;4388:22:87;;4380:73;;;;-1:-1:-1;;;4380:73:87;;2527:2:97;4380:73:87;;;2509:21:97;2566:2;2546:18;;;2539:30;2605:34;2585:18;;;2578:62;-1:-1:-1;;;2656:18:97;;;2649:36;2702:19;;4380:73:87;;;;;;;;;4511:8;-1:-1:-1;;;;;;;;;;;4463:39:87;:56;;-1:-1:-1;;;;;;4463:56:87;-1:-1:-1;;;;;4463:56:87;;;;;;;;;;-1:-1:-1;4325:201:87:o;1537:259::-;-1:-1:-1;;;;;1470:19:92;;;1610:95:87;;;;-1:-1:-1;;;1610:95:87;;2934:2:97;1610:95:87;;;2916:21:97;2973:2;2953:18;;;2946:30;3012:34;2992:18;;;2985:62;-1:-1:-1;;;3063:18:97;;;3056:43;3116:19;;1610:95:87;2732:409:97;1610:95:87;1772:17;-1:-1:-1;;;;;;;;;;;1715:48:87;1599:147:94;6959:387:92;7100:12;-1:-1:-1;;;;;1470:19:92;;;7124:69;;;;-1:-1:-1;;;7124:69:92;;3348:2:97;7124:69:92;;;3330:21:97;3387:2;3367:18;;;3360:30;3426:34;3406:18;;;3399:62;-1:-1:-1;;;3477:18:97;;;3470:36;3523:19;;7124:69:92;3146:402:97;7124:69:92;7205:12;7219:23;7246:6;-1:-1:-1;;;;;7246:19:92;7266:4;7246:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7204:67:92;;-1:-1:-1;7204:67:92;-1:-1:-1;7288:51:92;7204:67;;7326:12;7288:16;:51::i;:::-;7281:58;;;;6959:387;;;;;;:::o;7566:692::-;7712:12;7740:7;7736:516;;;-1:-1:-1;7770:10:92;7763:17;;7736:516;7881:17;;:21;7877:365;;8075:10;8069:17;8135:15;8122:10;8118:2;8114:19;8107:44;7877:365;8214:12;8207:20;;-1:-1:-1;;;8207:20:92;;;;;;;;:::i;14:177:97:-;93:13;;-1:-1:-1;;;;;135:31:97;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:127::-;257:10;252:3;248:20;245:1;238:31;288:4;285:1;278:15;312:4;309:1;302:15;328:250;413:1;423:113;437:6;434:1;431:13;423:113;;;513:11;;;507:18;494:11;;;487:39;459:2;452:10;423:113;;;-1:-1:-1;;570:1:97;552:16;;545:27;328:250::o;583:1066::-;680:6;688;696;749:2;737:9;728:7;724:23;720:32;717:52;;;765:1;762;755:12;717:52;788:40;818:9;788:40;:::i;:::-;778:50;;847:49;892:2;881:9;877:18;847:49;:::i;:::-;940:2;925:18;;919:25;837:59;;-1:-1:-1;;;;;;993:14:97;;;990:34;;;1020:1;1017;1010:12;990:34;1058:6;1047:9;1043:22;1033:32;;1103:7;1096:4;1092:2;1088:13;1084:27;1074:55;;1125:1;1122;1115:12;1074:55;1154:2;1148:9;1176:2;1172;1169:10;1166:36;;;1182:18;;:::i;:::-;1257:2;1251:9;1225:2;1311:13;;-1:-1:-1;;1307:22:97;;;1331:2;1303:31;1299:40;1287:53;;;1355:18;;;1375:22;;;1352:46;1349:72;;;1401:18;;:::i;:::-;1441:10;1437:2;1430:22;1476:2;1468:6;1461:18;1516:7;1511:2;1506;1502;1498:11;1494:20;1491:33;1488:53;;;1537:1;1534;1527:12;1488:53;1550:68;1615:2;1610;1602:6;1598:15;1593:2;1589;1585:11;1550:68;:::i;:::-;1637:6;1627:16;;;;;;;583:1066;;;;;:::o;1654:225::-;1721:9;;;1742:11;;;1739:134;;;1795:10;1790:3;1786:20;1783:1;1776:31;1830:4;1827:1;1820:15;1858:4;1855:1;1848:15;1884:127;1945:10;1940:3;1936:20;1933:1;1926:31;1976:4;1973:1;1966:15;2000:4;1997:1;1990:15;3553:287;3682:3;3720:6;3714:13;3736:66;3795:6;3790:3;3783:4;3775:6;3771:17;3736:66;:::i;:::-;3818:16;;;;;3553:287;-1:-1:-1;;3553:287:97:o;3845:396::-;3994:2;3983:9;3976:21;3957:4;4026:6;4020:13;4069:6;4064:2;4053:9;4049:18;4042:34;4085:79;4157:6;4152:2;4141:9;4137:18;4132:2;4124:6;4120:15;4085:79;:::i;:::-;4225:2;4204:15;-1:-1:-1;;4200:29:97;4185:45;;;;4232:2;4181:54;;3845:396;-1:-1:-1;;3845:396:97:o;:::-;1634:3556:91;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_21820":{"entryPoint":null,"id":21820,"parameterSlots":0,"returnSlots":0},"@_21828":{"entryPoint":null,"id":21828,"parameterSlots":0,"returnSlots":0},"@_beforeFallback_21833":{"entryPoint":null,"id":21833,"parameterSlots":0,"returnSlots":0},"@_beforeFallback_22152":{"entryPoint":652,"id":22152,"parameterSlots":0,"returnSlots":0},"@_changeAdmin_21685":{"entryPoint":1020,"id":21685,"parameterSlots":1,"returnSlots":0},"@_delegate_21793":{"entryPoint":877,"id":21793,"parameterSlots":1,"returnSlots":0},"@_fallback_21812":{"entryPoint":283,"id":21812,"parameterSlots":0,"returnSlots":0},"@_getAdmin_21642":{"entryPoint":913,"id":21642,"parameterSlots":0,"returnSlots":1},"@_getImplementation_21496":{"entryPoint":1117,"id":21496,"parameterSlots":0,"returnSlots":1},"@_implementation_21463":{"entryPoint":867,"id":21463,"parameterSlots":0,"returnSlots":1},"@_setAdmin_21668":{"entryPoint":1278,"id":21668,"parameterSlots":1,"returnSlots":0},"@_setImplementation_21520":{"entryPoint":1546,"id":21520,"parameterSlots":1,"returnSlots":0},"@_upgradeToAndCall_21565":{"entryPoint":977,"id":21565,"parameterSlots":3,"returnSlots":0},"@_upgradeTo_21535":{"entryPoint":1157,"id":21535,"parameterSlots":1,"returnSlots":0},"@admin_22060":{"entryPoint":606,"id":22060,"parameterSlots":0,"returnSlots":1},"@changeAdmin_22087":{"entryPoint":561,"id":22087,"parameterSlots":1,"returnSlots":0},"@functionDelegateCall_22381":{"entryPoint":1234,"id":22381,"parameterSlots":2,"returnSlots":1},"@functionDelegateCall_22416":{"entryPoint":1749,"id":22416,"parameterSlots":3,"returnSlots":1},"@getAddressSlot_22496":{"entryPoint":null,"id":22496,"parameterSlots":1,"returnSlots":1},"@implementation_22074":{"entryPoint":499,"id":22074,"parameterSlots":0,"returnSlots":1},"@isContract_22171":{"entryPoint":null,"id":22171,"parameterSlots":1,"returnSlots":1},"@upgradeToAndCall_22122":{"entryPoint":383,"id":22122,"parameterSlots":3,"returnSlots":0},"@upgradeTo_22105":{"entryPoint":309,"id":22105,"parameterSlots":1,"returnSlots":0},"@verifyCallResult_22447":{"entryPoint":2045,"id":22447,"parameterSlots":3,"returnSlots":1},"abi_decode_address":{"entryPoint":2128,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2169,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_bytes_calldata_ptr":{"entryPoint":2196,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":2363,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2391,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":2327,"id":null,"parameterSlots":3,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:4346:97","nodeType":"YulBlock","src":"0:4346:97","statements":[{"nativeSrc":"6:3:97","nodeType":"YulBlock","src":"6:3:97","statements":[]},{"body":{"nativeSrc":"63:147:97","nodeType":"YulBlock","src":"63:147:97","statements":[{"nativeSrc":"73:29:97","nodeType":"YulAssignment","src":"73:29:97","value":{"arguments":[{"name":"offset","nativeSrc":"95:6:97","nodeType":"YulIdentifier","src":"95:6:97"}],"functionName":{"name":"calldataload","nativeSrc":"82:12:97","nodeType":"YulIdentifier","src":"82:12:97"},"nativeSrc":"82:20:97","nodeType":"YulFunctionCall","src":"82:20:97"},"variableNames":[{"name":"value","nativeSrc":"73:5:97","nodeType":"YulIdentifier","src":"73:5:97"}]},{"body":{"nativeSrc":"188:16:97","nodeType":"YulBlock","src":"188:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"197:1:97","nodeType":"YulLiteral","src":"197:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"200:1:97","nodeType":"YulLiteral","src":"200:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"190:6:97","nodeType":"YulIdentifier","src":"190:6:97"},"nativeSrc":"190:12:97","nodeType":"YulFunctionCall","src":"190:12:97"},"nativeSrc":"190:12:97","nodeType":"YulExpressionStatement","src":"190:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"124:5:97","nodeType":"YulIdentifier","src":"124:5:97"},{"arguments":[{"name":"value","nativeSrc":"135:5:97","nodeType":"YulIdentifier","src":"135:5:97"},{"kind":"number","nativeSrc":"142:42:97","nodeType":"YulLiteral","src":"142:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"131:3:97","nodeType":"YulIdentifier","src":"131:3:97"},"nativeSrc":"131:54:97","nodeType":"YulFunctionCall","src":"131:54:97"}],"functionName":{"name":"eq","nativeSrc":"121:2:97","nodeType":"YulIdentifier","src":"121:2:97"},"nativeSrc":"121:65:97","nodeType":"YulFunctionCall","src":"121:65:97"}],"functionName":{"name":"iszero","nativeSrc":"114:6:97","nodeType":"YulIdentifier","src":"114:6:97"},"nativeSrc":"114:73:97","nodeType":"YulFunctionCall","src":"114:73:97"},"nativeSrc":"111:93:97","nodeType":"YulIf","src":"111:93:97"}]},"name":"abi_decode_address","nativeSrc":"14:196:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"42:6:97","nodeType":"YulTypedName","src":"42:6:97","type":""}],"returnVariables":[{"name":"value","nativeSrc":"53:5:97","nodeType":"YulTypedName","src":"53:5:97","type":""}],"src":"14:196:97"},{"body":{"nativeSrc":"285:116:97","nodeType":"YulBlock","src":"285:116:97","statements":[{"body":{"nativeSrc":"331:16:97","nodeType":"YulBlock","src":"331:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"340:1:97","nodeType":"YulLiteral","src":"340:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"343:1:97","nodeType":"YulLiteral","src":"343:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"333:6:97","nodeType":"YulIdentifier","src":"333:6:97"},"nativeSrc":"333:12:97","nodeType":"YulFunctionCall","src":"333:12:97"},"nativeSrc":"333:12:97","nodeType":"YulExpressionStatement","src":"333:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"306:7:97","nodeType":"YulIdentifier","src":"306:7:97"},{"name":"headStart","nativeSrc":"315:9:97","nodeType":"YulIdentifier","src":"315:9:97"}],"functionName":{"name":"sub","nativeSrc":"302:3:97","nodeType":"YulIdentifier","src":"302:3:97"},"nativeSrc":"302:23:97","nodeType":"YulFunctionCall","src":"302:23:97"},{"kind":"number","nativeSrc":"327:2:97","nodeType":"YulLiteral","src":"327:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"298:3:97","nodeType":"YulIdentifier","src":"298:3:97"},"nativeSrc":"298:32:97","nodeType":"YulFunctionCall","src":"298:32:97"},"nativeSrc":"295:52:97","nodeType":"YulIf","src":"295:52:97"},{"nativeSrc":"356:39:97","nodeType":"YulAssignment","src":"356:39:97","value":{"arguments":[{"name":"headStart","nativeSrc":"385:9:97","nodeType":"YulIdentifier","src":"385:9:97"}],"functionName":{"name":"abi_decode_address","nativeSrc":"366:18:97","nodeType":"YulIdentifier","src":"366:18:97"},"nativeSrc":"366:29:97","nodeType":"YulFunctionCall","src":"366:29:97"},"variableNames":[{"name":"value0","nativeSrc":"356:6:97","nodeType":"YulIdentifier","src":"356:6:97"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"215:186:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"251:9:97","nodeType":"YulTypedName","src":"251:9:97","type":""},{"name":"dataEnd","nativeSrc":"262:7:97","nodeType":"YulTypedName","src":"262:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"274:6:97","nodeType":"YulTypedName","src":"274:6:97","type":""}],"src":"215:186:97"},{"body":{"nativeSrc":"512:559:97","nodeType":"YulBlock","src":"512:559:97","statements":[{"body":{"nativeSrc":"558:16:97","nodeType":"YulBlock","src":"558:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"567:1:97","nodeType":"YulLiteral","src":"567:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"570:1:97","nodeType":"YulLiteral","src":"570:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"560:6:97","nodeType":"YulIdentifier","src":"560:6:97"},"nativeSrc":"560:12:97","nodeType":"YulFunctionCall","src":"560:12:97"},"nativeSrc":"560:12:97","nodeType":"YulExpressionStatement","src":"560:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"533:7:97","nodeType":"YulIdentifier","src":"533:7:97"},{"name":"headStart","nativeSrc":"542:9:97","nodeType":"YulIdentifier","src":"542:9:97"}],"functionName":{"name":"sub","nativeSrc":"529:3:97","nodeType":"YulIdentifier","src":"529:3:97"},"nativeSrc":"529:23:97","nodeType":"YulFunctionCall","src":"529:23:97"},{"kind":"number","nativeSrc":"554:2:97","nodeType":"YulLiteral","src":"554:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"525:3:97","nodeType":"YulIdentifier","src":"525:3:97"},"nativeSrc":"525:32:97","nodeType":"YulFunctionCall","src":"525:32:97"},"nativeSrc":"522:52:97","nodeType":"YulIf","src":"522:52:97"},{"nativeSrc":"583:39:97","nodeType":"YulAssignment","src":"583:39:97","value":{"arguments":[{"name":"headStart","nativeSrc":"612:9:97","nodeType":"YulIdentifier","src":"612:9:97"}],"functionName":{"name":"abi_decode_address","nativeSrc":"593:18:97","nodeType":"YulIdentifier","src":"593:18:97"},"nativeSrc":"593:29:97","nodeType":"YulFunctionCall","src":"593:29:97"},"variableNames":[{"name":"value0","nativeSrc":"583:6:97","nodeType":"YulIdentifier","src":"583:6:97"}]},{"nativeSrc":"631:46:97","nodeType":"YulVariableDeclaration","src":"631:46:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"662:9:97","nodeType":"YulIdentifier","src":"662:9:97"},{"kind":"number","nativeSrc":"673:2:97","nodeType":"YulLiteral","src":"673:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"658:3:97","nodeType":"YulIdentifier","src":"658:3:97"},"nativeSrc":"658:18:97","nodeType":"YulFunctionCall","src":"658:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"645:12:97","nodeType":"YulIdentifier","src":"645:12:97"},"nativeSrc":"645:32:97","nodeType":"YulFunctionCall","src":"645:32:97"},"variables":[{"name":"offset","nativeSrc":"635:6:97","nodeType":"YulTypedName","src":"635:6:97","type":""}]},{"nativeSrc":"686:28:97","nodeType":"YulVariableDeclaration","src":"686:28:97","value":{"kind":"number","nativeSrc":"696:18:97","nodeType":"YulLiteral","src":"696:18:97","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"690:2:97","nodeType":"YulTypedName","src":"690:2:97","type":""}]},{"body":{"nativeSrc":"741:16:97","nodeType":"YulBlock","src":"741:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"750:1:97","nodeType":"YulLiteral","src":"750:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"753:1:97","nodeType":"YulLiteral","src":"753:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"743:6:97","nodeType":"YulIdentifier","src":"743:6:97"},"nativeSrc":"743:12:97","nodeType":"YulFunctionCall","src":"743:12:97"},"nativeSrc":"743:12:97","nodeType":"YulExpressionStatement","src":"743:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"729:6:97","nodeType":"YulIdentifier","src":"729:6:97"},{"name":"_1","nativeSrc":"737:2:97","nodeType":"YulIdentifier","src":"737:2:97"}],"functionName":{"name":"gt","nativeSrc":"726:2:97","nodeType":"YulIdentifier","src":"726:2:97"},"nativeSrc":"726:14:97","nodeType":"YulFunctionCall","src":"726:14:97"},"nativeSrc":"723:34:97","nodeType":"YulIf","src":"723:34:97"},{"nativeSrc":"766:32:97","nodeType":"YulVariableDeclaration","src":"766:32:97","value":{"arguments":[{"name":"headStart","nativeSrc":"780:9:97","nodeType":"YulIdentifier","src":"780:9:97"},{"name":"offset","nativeSrc":"791:6:97","nodeType":"YulIdentifier","src":"791:6:97"}],"functionName":{"name":"add","nativeSrc":"776:3:97","nodeType":"YulIdentifier","src":"776:3:97"},"nativeSrc":"776:22:97","nodeType":"YulFunctionCall","src":"776:22:97"},"variables":[{"name":"_2","nativeSrc":"770:2:97","nodeType":"YulTypedName","src":"770:2:97","type":""}]},{"body":{"nativeSrc":"846:16:97","nodeType":"YulBlock","src":"846:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"855:1:97","nodeType":"YulLiteral","src":"855:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"858:1:97","nodeType":"YulLiteral","src":"858:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"848:6:97","nodeType":"YulIdentifier","src":"848:6:97"},"nativeSrc":"848:12:97","nodeType":"YulFunctionCall","src":"848:12:97"},"nativeSrc":"848:12:97","nodeType":"YulExpressionStatement","src":"848:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"825:2:97","nodeType":"YulIdentifier","src":"825:2:97"},{"kind":"number","nativeSrc":"829:4:97","nodeType":"YulLiteral","src":"829:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"821:3:97","nodeType":"YulIdentifier","src":"821:3:97"},"nativeSrc":"821:13:97","nodeType":"YulFunctionCall","src":"821:13:97"},{"name":"dataEnd","nativeSrc":"836:7:97","nodeType":"YulIdentifier","src":"836:7:97"}],"functionName":{"name":"slt","nativeSrc":"817:3:97","nodeType":"YulIdentifier","src":"817:3:97"},"nativeSrc":"817:27:97","nodeType":"YulFunctionCall","src":"817:27:97"}],"functionName":{"name":"iszero","nativeSrc":"810:6:97","nodeType":"YulIdentifier","src":"810:6:97"},"nativeSrc":"810:35:97","nodeType":"YulFunctionCall","src":"810:35:97"},"nativeSrc":"807:55:97","nodeType":"YulIf","src":"807:55:97"},{"nativeSrc":"871:30:97","nodeType":"YulVariableDeclaration","src":"871:30:97","value":{"arguments":[{"name":"_2","nativeSrc":"898:2:97","nodeType":"YulIdentifier","src":"898:2:97"}],"functionName":{"name":"calldataload","nativeSrc":"885:12:97","nodeType":"YulIdentifier","src":"885:12:97"},"nativeSrc":"885:16:97","nodeType":"YulFunctionCall","src":"885:16:97"},"variables":[{"name":"length","nativeSrc":"875:6:97","nodeType":"YulTypedName","src":"875:6:97","type":""}]},{"body":{"nativeSrc":"928:16:97","nodeType":"YulBlock","src":"928:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"937:1:97","nodeType":"YulLiteral","src":"937:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"940:1:97","nodeType":"YulLiteral","src":"940:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"930:6:97","nodeType":"YulIdentifier","src":"930:6:97"},"nativeSrc":"930:12:97","nodeType":"YulFunctionCall","src":"930:12:97"},"nativeSrc":"930:12:97","nodeType":"YulExpressionStatement","src":"930:12:97"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"916:6:97","nodeType":"YulIdentifier","src":"916:6:97"},{"name":"_1","nativeSrc":"924:2:97","nodeType":"YulIdentifier","src":"924:2:97"}],"functionName":{"name":"gt","nativeSrc":"913:2:97","nodeType":"YulIdentifier","src":"913:2:97"},"nativeSrc":"913:14:97","nodeType":"YulFunctionCall","src":"913:14:97"},"nativeSrc":"910:34:97","nodeType":"YulIf","src":"910:34:97"},{"body":{"nativeSrc":"994:16:97","nodeType":"YulBlock","src":"994:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1003:1:97","nodeType":"YulLiteral","src":"1003:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1006:1:97","nodeType":"YulLiteral","src":"1006:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"996:6:97","nodeType":"YulIdentifier","src":"996:6:97"},"nativeSrc":"996:12:97","nodeType":"YulFunctionCall","src":"996:12:97"},"nativeSrc":"996:12:97","nodeType":"YulExpressionStatement","src":"996:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"967:2:97","nodeType":"YulIdentifier","src":"967:2:97"},{"name":"length","nativeSrc":"971:6:97","nodeType":"YulIdentifier","src":"971:6:97"}],"functionName":{"name":"add","nativeSrc":"963:3:97","nodeType":"YulIdentifier","src":"963:3:97"},"nativeSrc":"963:15:97","nodeType":"YulFunctionCall","src":"963:15:97"},{"kind":"number","nativeSrc":"980:2:97","nodeType":"YulLiteral","src":"980:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"959:3:97","nodeType":"YulIdentifier","src":"959:3:97"},"nativeSrc":"959:24:97","nodeType":"YulFunctionCall","src":"959:24:97"},{"name":"dataEnd","nativeSrc":"985:7:97","nodeType":"YulIdentifier","src":"985:7:97"}],"functionName":{"name":"gt","nativeSrc":"956:2:97","nodeType":"YulIdentifier","src":"956:2:97"},"nativeSrc":"956:37:97","nodeType":"YulFunctionCall","src":"956:37:97"},"nativeSrc":"953:57:97","nodeType":"YulIf","src":"953:57:97"},{"nativeSrc":"1019:21:97","nodeType":"YulAssignment","src":"1019:21:97","value":{"arguments":[{"name":"_2","nativeSrc":"1033:2:97","nodeType":"YulIdentifier","src":"1033:2:97"},{"kind":"number","nativeSrc":"1037:2:97","nodeType":"YulLiteral","src":"1037:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1029:3:97","nodeType":"YulIdentifier","src":"1029:3:97"},"nativeSrc":"1029:11:97","nodeType":"YulFunctionCall","src":"1029:11:97"},"variableNames":[{"name":"value1","nativeSrc":"1019:6:97","nodeType":"YulIdentifier","src":"1019:6:97"}]},{"nativeSrc":"1049:16:97","nodeType":"YulAssignment","src":"1049:16:97","value":{"name":"length","nativeSrc":"1059:6:97","nodeType":"YulIdentifier","src":"1059:6:97"},"variableNames":[{"name":"value2","nativeSrc":"1049:6:97","nodeType":"YulIdentifier","src":"1049:6:97"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_calldata_ptr","nativeSrc":"406:665:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"462:9:97","nodeType":"YulTypedName","src":"462:9:97","type":""},{"name":"dataEnd","nativeSrc":"473:7:97","nodeType":"YulTypedName","src":"473:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"485:6:97","nodeType":"YulTypedName","src":"485:6:97","type":""},{"name":"value1","nativeSrc":"493:6:97","nodeType":"YulTypedName","src":"493:6:97","type":""},{"name":"value2","nativeSrc":"501:6:97","nodeType":"YulTypedName","src":"501:6:97","type":""}],"src":"406:665:97"},{"body":{"nativeSrc":"1177:125:97","nodeType":"YulBlock","src":"1177:125:97","statements":[{"nativeSrc":"1187:26:97","nodeType":"YulAssignment","src":"1187:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1199:9:97","nodeType":"YulIdentifier","src":"1199:9:97"},{"kind":"number","nativeSrc":"1210:2:97","nodeType":"YulLiteral","src":"1210:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1195:3:97","nodeType":"YulIdentifier","src":"1195:3:97"},"nativeSrc":"1195:18:97","nodeType":"YulFunctionCall","src":"1195:18:97"},"variableNames":[{"name":"tail","nativeSrc":"1187:4:97","nodeType":"YulIdentifier","src":"1187:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1229:9:97","nodeType":"YulIdentifier","src":"1229:9:97"},{"arguments":[{"name":"value0","nativeSrc":"1244:6:97","nodeType":"YulIdentifier","src":"1244:6:97"},{"kind":"number","nativeSrc":"1252:42:97","nodeType":"YulLiteral","src":"1252:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1240:3:97","nodeType":"YulIdentifier","src":"1240:3:97"},"nativeSrc":"1240:55:97","nodeType":"YulFunctionCall","src":"1240:55:97"}],"functionName":{"name":"mstore","nativeSrc":"1222:6:97","nodeType":"YulIdentifier","src":"1222:6:97"},"nativeSrc":"1222:74:97","nodeType":"YulFunctionCall","src":"1222:74:97"},"nativeSrc":"1222:74:97","nodeType":"YulExpressionStatement","src":"1222:74:97"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"1076:226:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1146:9:97","nodeType":"YulTypedName","src":"1146:9:97","type":""},{"name":"value0","nativeSrc":"1157:6:97","nodeType":"YulTypedName","src":"1157:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1168:4:97","nodeType":"YulTypedName","src":"1168:4:97","type":""}],"src":"1076:226:97"},{"body":{"nativeSrc":"1481:296:97","nodeType":"YulBlock","src":"1481:296:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1498:9:97","nodeType":"YulIdentifier","src":"1498:9:97"},{"kind":"number","nativeSrc":"1509:2:97","nodeType":"YulLiteral","src":"1509:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"1491:6:97","nodeType":"YulIdentifier","src":"1491:6:97"},"nativeSrc":"1491:21:97","nodeType":"YulFunctionCall","src":"1491:21:97"},"nativeSrc":"1491:21:97","nodeType":"YulExpressionStatement","src":"1491:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1532:9:97","nodeType":"YulIdentifier","src":"1532:9:97"},{"kind":"number","nativeSrc":"1543:2:97","nodeType":"YulLiteral","src":"1543:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1528:3:97","nodeType":"YulIdentifier","src":"1528:3:97"},"nativeSrc":"1528:18:97","nodeType":"YulFunctionCall","src":"1528:18:97"},{"kind":"number","nativeSrc":"1548:2:97","nodeType":"YulLiteral","src":"1548:2:97","type":"","value":"66"}],"functionName":{"name":"mstore","nativeSrc":"1521:6:97","nodeType":"YulIdentifier","src":"1521:6:97"},"nativeSrc":"1521:30:97","nodeType":"YulFunctionCall","src":"1521:30:97"},"nativeSrc":"1521:30:97","nodeType":"YulExpressionStatement","src":"1521:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1571:9:97","nodeType":"YulIdentifier","src":"1571:9:97"},{"kind":"number","nativeSrc":"1582:2:97","nodeType":"YulLiteral","src":"1582:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1567:3:97","nodeType":"YulIdentifier","src":"1567:3:97"},"nativeSrc":"1567:18:97","nodeType":"YulFunctionCall","src":"1567:18:97"},{"hexValue":"5472616e73706172656e745570677261646561626c6550726f78793a2061646d","kind":"string","nativeSrc":"1587:34:97","nodeType":"YulLiteral","src":"1587:34:97","type":"","value":"TransparentUpgradeableProxy: adm"}],"functionName":{"name":"mstore","nativeSrc":"1560:6:97","nodeType":"YulIdentifier","src":"1560:6:97"},"nativeSrc":"1560:62:97","nodeType":"YulFunctionCall","src":"1560:62:97"},"nativeSrc":"1560:62:97","nodeType":"YulExpressionStatement","src":"1560:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1642:9:97","nodeType":"YulIdentifier","src":"1642:9:97"},{"kind":"number","nativeSrc":"1653:2:97","nodeType":"YulLiteral","src":"1653:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"1638:3:97","nodeType":"YulIdentifier","src":"1638:3:97"},"nativeSrc":"1638:18:97","nodeType":"YulFunctionCall","src":"1638:18:97"},{"hexValue":"696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267","kind":"string","nativeSrc":"1658:34:97","nodeType":"YulLiteral","src":"1658:34:97","type":"","value":"in cannot fallback to proxy targ"}],"functionName":{"name":"mstore","nativeSrc":"1631:6:97","nodeType":"YulIdentifier","src":"1631:6:97"},"nativeSrc":"1631:62:97","nodeType":"YulFunctionCall","src":"1631:62:97"},"nativeSrc":"1631:62:97","nodeType":"YulExpressionStatement","src":"1631:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1713:9:97","nodeType":"YulIdentifier","src":"1713:9:97"},{"kind":"number","nativeSrc":"1724:3:97","nodeType":"YulLiteral","src":"1724:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"1709:3:97","nodeType":"YulIdentifier","src":"1709:3:97"},"nativeSrc":"1709:19:97","nodeType":"YulFunctionCall","src":"1709:19:97"},{"hexValue":"6574","kind":"string","nativeSrc":"1730:4:97","nodeType":"YulLiteral","src":"1730:4:97","type":"","value":"et"}],"functionName":{"name":"mstore","nativeSrc":"1702:6:97","nodeType":"YulIdentifier","src":"1702:6:97"},"nativeSrc":"1702:33:97","nodeType":"YulFunctionCall","src":"1702:33:97"},"nativeSrc":"1702:33:97","nodeType":"YulExpressionStatement","src":"1702:33:97"},{"nativeSrc":"1744:27:97","nodeType":"YulAssignment","src":"1744:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1756:9:97","nodeType":"YulIdentifier","src":"1756:9:97"},{"kind":"number","nativeSrc":"1767:3:97","nodeType":"YulLiteral","src":"1767:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"1752:3:97","nodeType":"YulIdentifier","src":"1752:3:97"},"nativeSrc":"1752:19:97","nodeType":"YulFunctionCall","src":"1752:19:97"},"variableNames":[{"name":"tail","nativeSrc":"1744:4:97","nodeType":"YulIdentifier","src":"1744:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"1307:470:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1458:9:97","nodeType":"YulTypedName","src":"1458:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1472:4:97","nodeType":"YulTypedName","src":"1472:4:97","type":""}],"src":"1307:470:97"},{"body":{"nativeSrc":"1911:198:97","nodeType":"YulBlock","src":"1911:198:97","statements":[{"nativeSrc":"1921:26:97","nodeType":"YulAssignment","src":"1921:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1933:9:97","nodeType":"YulIdentifier","src":"1933:9:97"},{"kind":"number","nativeSrc":"1944:2:97","nodeType":"YulLiteral","src":"1944:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1929:3:97","nodeType":"YulIdentifier","src":"1929:3:97"},"nativeSrc":"1929:18:97","nodeType":"YulFunctionCall","src":"1929:18:97"},"variableNames":[{"name":"tail","nativeSrc":"1921:4:97","nodeType":"YulIdentifier","src":"1921:4:97"}]},{"nativeSrc":"1956:52:97","nodeType":"YulVariableDeclaration","src":"1956:52:97","value":{"kind":"number","nativeSrc":"1966:42:97","nodeType":"YulLiteral","src":"1966:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"1960:2:97","nodeType":"YulTypedName","src":"1960:2:97","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2024:9:97","nodeType":"YulIdentifier","src":"2024:9:97"},{"arguments":[{"name":"value0","nativeSrc":"2039:6:97","nodeType":"YulIdentifier","src":"2039:6:97"},{"name":"_1","nativeSrc":"2047:2:97","nodeType":"YulIdentifier","src":"2047:2:97"}],"functionName":{"name":"and","nativeSrc":"2035:3:97","nodeType":"YulIdentifier","src":"2035:3:97"},"nativeSrc":"2035:15:97","nodeType":"YulFunctionCall","src":"2035:15:97"}],"functionName":{"name":"mstore","nativeSrc":"2017:6:97","nodeType":"YulIdentifier","src":"2017:6:97"},"nativeSrc":"2017:34:97","nodeType":"YulFunctionCall","src":"2017:34:97"},"nativeSrc":"2017:34:97","nodeType":"YulExpressionStatement","src":"2017:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2071:9:97","nodeType":"YulIdentifier","src":"2071:9:97"},{"kind":"number","nativeSrc":"2082:2:97","nodeType":"YulLiteral","src":"2082:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2067:3:97","nodeType":"YulIdentifier","src":"2067:3:97"},"nativeSrc":"2067:18:97","nodeType":"YulFunctionCall","src":"2067:18:97"},{"arguments":[{"name":"value1","nativeSrc":"2091:6:97","nodeType":"YulIdentifier","src":"2091:6:97"},{"name":"_1","nativeSrc":"2099:2:97","nodeType":"YulIdentifier","src":"2099:2:97"}],"functionName":{"name":"and","nativeSrc":"2087:3:97","nodeType":"YulIdentifier","src":"2087:3:97"},"nativeSrc":"2087:15:97","nodeType":"YulFunctionCall","src":"2087:15:97"}],"functionName":{"name":"mstore","nativeSrc":"2060:6:97","nodeType":"YulIdentifier","src":"2060:6:97"},"nativeSrc":"2060:43:97","nodeType":"YulFunctionCall","src":"2060:43:97"},"nativeSrc":"2060:43:97","nodeType":"YulExpressionStatement","src":"2060:43:97"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"1782:327:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1872:9:97","nodeType":"YulTypedName","src":"1872:9:97","type":""},{"name":"value1","nativeSrc":"1883:6:97","nodeType":"YulTypedName","src":"1883:6:97","type":""},{"name":"value0","nativeSrc":"1891:6:97","nodeType":"YulTypedName","src":"1891:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1902:4:97","nodeType":"YulTypedName","src":"1902:4:97","type":""}],"src":"1782:327:97"},{"body":{"nativeSrc":"2288:228:97","nodeType":"YulBlock","src":"2288:228:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2305:9:97","nodeType":"YulIdentifier","src":"2305:9:97"},{"kind":"number","nativeSrc":"2316:2:97","nodeType":"YulLiteral","src":"2316:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"2298:6:97","nodeType":"YulIdentifier","src":"2298:6:97"},"nativeSrc":"2298:21:97","nodeType":"YulFunctionCall","src":"2298:21:97"},"nativeSrc":"2298:21:97","nodeType":"YulExpressionStatement","src":"2298:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2339:9:97","nodeType":"YulIdentifier","src":"2339:9:97"},{"kind":"number","nativeSrc":"2350:2:97","nodeType":"YulLiteral","src":"2350:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2335:3:97","nodeType":"YulIdentifier","src":"2335:3:97"},"nativeSrc":"2335:18:97","nodeType":"YulFunctionCall","src":"2335:18:97"},{"kind":"number","nativeSrc":"2355:2:97","nodeType":"YulLiteral","src":"2355:2:97","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"2328:6:97","nodeType":"YulIdentifier","src":"2328:6:97"},"nativeSrc":"2328:30:97","nodeType":"YulFunctionCall","src":"2328:30:97"},"nativeSrc":"2328:30:97","nodeType":"YulExpressionStatement","src":"2328:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2378:9:97","nodeType":"YulIdentifier","src":"2378:9:97"},{"kind":"number","nativeSrc":"2389:2:97","nodeType":"YulLiteral","src":"2389:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2374:3:97","nodeType":"YulIdentifier","src":"2374:3:97"},"nativeSrc":"2374:18:97","nodeType":"YulFunctionCall","src":"2374:18:97"},{"hexValue":"455243313936373a206e65772061646d696e20697320746865207a65726f2061","kind":"string","nativeSrc":"2394:34:97","nodeType":"YulLiteral","src":"2394:34:97","type":"","value":"ERC1967: new admin is the zero a"}],"functionName":{"name":"mstore","nativeSrc":"2367:6:97","nodeType":"YulIdentifier","src":"2367:6:97"},"nativeSrc":"2367:62:97","nodeType":"YulFunctionCall","src":"2367:62:97"},"nativeSrc":"2367:62:97","nodeType":"YulExpressionStatement","src":"2367:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2449:9:97","nodeType":"YulIdentifier","src":"2449:9:97"},{"kind":"number","nativeSrc":"2460:2:97","nodeType":"YulLiteral","src":"2460:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2445:3:97","nodeType":"YulIdentifier","src":"2445:3:97"},"nativeSrc":"2445:18:97","nodeType":"YulFunctionCall","src":"2445:18:97"},{"hexValue":"646472657373","kind":"string","nativeSrc":"2465:8:97","nodeType":"YulLiteral","src":"2465:8:97","type":"","value":"ddress"}],"functionName":{"name":"mstore","nativeSrc":"2438:6:97","nodeType":"YulIdentifier","src":"2438:6:97"},"nativeSrc":"2438:36:97","nodeType":"YulFunctionCall","src":"2438:36:97"},"nativeSrc":"2438:36:97","nodeType":"YulExpressionStatement","src":"2438:36:97"},{"nativeSrc":"2483:27:97","nodeType":"YulAssignment","src":"2483:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2495:9:97","nodeType":"YulIdentifier","src":"2495:9:97"},{"kind":"number","nativeSrc":"2506:3:97","nodeType":"YulLiteral","src":"2506:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"2491:3:97","nodeType":"YulIdentifier","src":"2491:3:97"},"nativeSrc":"2491:19:97","nodeType":"YulFunctionCall","src":"2491:19:97"},"variableNames":[{"name":"tail","nativeSrc":"2483:4:97","nodeType":"YulIdentifier","src":"2483:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2114:402:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2265:9:97","nodeType":"YulTypedName","src":"2265:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2279:4:97","nodeType":"YulTypedName","src":"2279:4:97","type":""}],"src":"2114:402:97"},{"body":{"nativeSrc":"2695:235:97","nodeType":"YulBlock","src":"2695:235:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2712:9:97","nodeType":"YulIdentifier","src":"2712:9:97"},{"kind":"number","nativeSrc":"2723:2:97","nodeType":"YulLiteral","src":"2723:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"2705:6:97","nodeType":"YulIdentifier","src":"2705:6:97"},"nativeSrc":"2705:21:97","nodeType":"YulFunctionCall","src":"2705:21:97"},"nativeSrc":"2705:21:97","nodeType":"YulExpressionStatement","src":"2705:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2746:9:97","nodeType":"YulIdentifier","src":"2746:9:97"},{"kind":"number","nativeSrc":"2757:2:97","nodeType":"YulLiteral","src":"2757:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2742:3:97","nodeType":"YulIdentifier","src":"2742:3:97"},"nativeSrc":"2742:18:97","nodeType":"YulFunctionCall","src":"2742:18:97"},{"kind":"number","nativeSrc":"2762:2:97","nodeType":"YulLiteral","src":"2762:2:97","type":"","value":"45"}],"functionName":{"name":"mstore","nativeSrc":"2735:6:97","nodeType":"YulIdentifier","src":"2735:6:97"},"nativeSrc":"2735:30:97","nodeType":"YulFunctionCall","src":"2735:30:97"},"nativeSrc":"2735:30:97","nodeType":"YulExpressionStatement","src":"2735:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2785:9:97","nodeType":"YulIdentifier","src":"2785:9:97"},{"kind":"number","nativeSrc":"2796:2:97","nodeType":"YulLiteral","src":"2796:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2781:3:97","nodeType":"YulIdentifier","src":"2781:3:97"},"nativeSrc":"2781:18:97","nodeType":"YulFunctionCall","src":"2781:18:97"},{"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e","kind":"string","nativeSrc":"2801:34:97","nodeType":"YulLiteral","src":"2801:34:97","type":"","value":"ERC1967: new implementation is n"}],"functionName":{"name":"mstore","nativeSrc":"2774:6:97","nodeType":"YulIdentifier","src":"2774:6:97"},"nativeSrc":"2774:62:97","nodeType":"YulFunctionCall","src":"2774:62:97"},"nativeSrc":"2774:62:97","nodeType":"YulExpressionStatement","src":"2774:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2856:9:97","nodeType":"YulIdentifier","src":"2856:9:97"},{"kind":"number","nativeSrc":"2867:2:97","nodeType":"YulLiteral","src":"2867:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2852:3:97","nodeType":"YulIdentifier","src":"2852:3:97"},"nativeSrc":"2852:18:97","nodeType":"YulFunctionCall","src":"2852:18:97"},{"hexValue":"6f74206120636f6e7472616374","kind":"string","nativeSrc":"2872:15:97","nodeType":"YulLiteral","src":"2872:15:97","type":"","value":"ot a contract"}],"functionName":{"name":"mstore","nativeSrc":"2845:6:97","nodeType":"YulIdentifier","src":"2845:6:97"},"nativeSrc":"2845:43:97","nodeType":"YulFunctionCall","src":"2845:43:97"},"nativeSrc":"2845:43:97","nodeType":"YulExpressionStatement","src":"2845:43:97"},{"nativeSrc":"2897:27:97","nodeType":"YulAssignment","src":"2897:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2909:9:97","nodeType":"YulIdentifier","src":"2909:9:97"},{"kind":"number","nativeSrc":"2920:3:97","nodeType":"YulLiteral","src":"2920:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"2905:3:97","nodeType":"YulIdentifier","src":"2905:3:97"},"nativeSrc":"2905:19:97","nodeType":"YulFunctionCall","src":"2905:19:97"},"variableNames":[{"name":"tail","nativeSrc":"2897:4:97","nodeType":"YulIdentifier","src":"2897:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2521:409:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2672:9:97","nodeType":"YulTypedName","src":"2672:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2686:4:97","nodeType":"YulTypedName","src":"2686:4:97","type":""}],"src":"2521:409:97"},{"body":{"nativeSrc":"3109:228:97","nodeType":"YulBlock","src":"3109:228:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3126:9:97","nodeType":"YulIdentifier","src":"3126:9:97"},{"kind":"number","nativeSrc":"3137:2:97","nodeType":"YulLiteral","src":"3137:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"3119:6:97","nodeType":"YulIdentifier","src":"3119:6:97"},"nativeSrc":"3119:21:97","nodeType":"YulFunctionCall","src":"3119:21:97"},"nativeSrc":"3119:21:97","nodeType":"YulExpressionStatement","src":"3119:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3160:9:97","nodeType":"YulIdentifier","src":"3160:9:97"},{"kind":"number","nativeSrc":"3171:2:97","nodeType":"YulLiteral","src":"3171:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3156:3:97","nodeType":"YulIdentifier","src":"3156:3:97"},"nativeSrc":"3156:18:97","nodeType":"YulFunctionCall","src":"3156:18:97"},{"kind":"number","nativeSrc":"3176:2:97","nodeType":"YulLiteral","src":"3176:2:97","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"3149:6:97","nodeType":"YulIdentifier","src":"3149:6:97"},"nativeSrc":"3149:30:97","nodeType":"YulFunctionCall","src":"3149:30:97"},"nativeSrc":"3149:30:97","nodeType":"YulExpressionStatement","src":"3149:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3199:9:97","nodeType":"YulIdentifier","src":"3199:9:97"},{"kind":"number","nativeSrc":"3210:2:97","nodeType":"YulLiteral","src":"3210:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3195:3:97","nodeType":"YulIdentifier","src":"3195:3:97"},"nativeSrc":"3195:18:97","nodeType":"YulFunctionCall","src":"3195:18:97"},{"hexValue":"416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f","kind":"string","nativeSrc":"3215:34:97","nodeType":"YulLiteral","src":"3215:34:97","type":"","value":"Address: delegate call to non-co"}],"functionName":{"name":"mstore","nativeSrc":"3188:6:97","nodeType":"YulIdentifier","src":"3188:6:97"},"nativeSrc":"3188:62:97","nodeType":"YulFunctionCall","src":"3188:62:97"},"nativeSrc":"3188:62:97","nodeType":"YulExpressionStatement","src":"3188:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3270:9:97","nodeType":"YulIdentifier","src":"3270:9:97"},{"kind":"number","nativeSrc":"3281:2:97","nodeType":"YulLiteral","src":"3281:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3266:3:97","nodeType":"YulIdentifier","src":"3266:3:97"},"nativeSrc":"3266:18:97","nodeType":"YulFunctionCall","src":"3266:18:97"},{"hexValue":"6e7472616374","kind":"string","nativeSrc":"3286:8:97","nodeType":"YulLiteral","src":"3286:8:97","type":"","value":"ntract"}],"functionName":{"name":"mstore","nativeSrc":"3259:6:97","nodeType":"YulIdentifier","src":"3259:6:97"},"nativeSrc":"3259:36:97","nodeType":"YulFunctionCall","src":"3259:36:97"},"nativeSrc":"3259:36:97","nodeType":"YulExpressionStatement","src":"3259:36:97"},{"nativeSrc":"3304:27:97","nodeType":"YulAssignment","src":"3304:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"3316:9:97","nodeType":"YulIdentifier","src":"3316:9:97"},{"kind":"number","nativeSrc":"3327:3:97","nodeType":"YulLiteral","src":"3327:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"3312:3:97","nodeType":"YulIdentifier","src":"3312:3:97"},"nativeSrc":"3312:19:97","nodeType":"YulFunctionCall","src":"3312:19:97"},"variableNames":[{"name":"tail","nativeSrc":"3304:4:97","nodeType":"YulIdentifier","src":"3304:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2935:402:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3086:9:97","nodeType":"YulTypedName","src":"3086:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3100:4:97","nodeType":"YulTypedName","src":"3100:4:97","type":""}],"src":"2935:402:97"},{"body":{"nativeSrc":"3408:184:97","nodeType":"YulBlock","src":"3408:184:97","statements":[{"nativeSrc":"3418:10:97","nodeType":"YulVariableDeclaration","src":"3418:10:97","value":{"kind":"number","nativeSrc":"3427:1:97","nodeType":"YulLiteral","src":"3427:1:97","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"3422:1:97","nodeType":"YulTypedName","src":"3422:1:97","type":""}]},{"body":{"nativeSrc":"3487:63:97","nodeType":"YulBlock","src":"3487:63:97","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"3512:3:97","nodeType":"YulIdentifier","src":"3512:3:97"},{"name":"i","nativeSrc":"3517:1:97","nodeType":"YulIdentifier","src":"3517:1:97"}],"functionName":{"name":"add","nativeSrc":"3508:3:97","nodeType":"YulIdentifier","src":"3508:3:97"},"nativeSrc":"3508:11:97","nodeType":"YulFunctionCall","src":"3508:11:97"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"3531:3:97","nodeType":"YulIdentifier","src":"3531:3:97"},{"name":"i","nativeSrc":"3536:1:97","nodeType":"YulIdentifier","src":"3536:1:97"}],"functionName":{"name":"add","nativeSrc":"3527:3:97","nodeType":"YulIdentifier","src":"3527:3:97"},"nativeSrc":"3527:11:97","nodeType":"YulFunctionCall","src":"3527:11:97"}],"functionName":{"name":"mload","nativeSrc":"3521:5:97","nodeType":"YulIdentifier","src":"3521:5:97"},"nativeSrc":"3521:18:97","nodeType":"YulFunctionCall","src":"3521:18:97"}],"functionName":{"name":"mstore","nativeSrc":"3501:6:97","nodeType":"YulIdentifier","src":"3501:6:97"},"nativeSrc":"3501:39:97","nodeType":"YulFunctionCall","src":"3501:39:97"},"nativeSrc":"3501:39:97","nodeType":"YulExpressionStatement","src":"3501:39:97"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"3448:1:97","nodeType":"YulIdentifier","src":"3448:1:97"},{"name":"length","nativeSrc":"3451:6:97","nodeType":"YulIdentifier","src":"3451:6:97"}],"functionName":{"name":"lt","nativeSrc":"3445:2:97","nodeType":"YulIdentifier","src":"3445:2:97"},"nativeSrc":"3445:13:97","nodeType":"YulFunctionCall","src":"3445:13:97"},"nativeSrc":"3437:113:97","nodeType":"YulForLoop","post":{"nativeSrc":"3459:19:97","nodeType":"YulBlock","src":"3459:19:97","statements":[{"nativeSrc":"3461:15:97","nodeType":"YulAssignment","src":"3461:15:97","value":{"arguments":[{"name":"i","nativeSrc":"3470:1:97","nodeType":"YulIdentifier","src":"3470:1:97"},{"kind":"number","nativeSrc":"3473:2:97","nodeType":"YulLiteral","src":"3473:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3466:3:97","nodeType":"YulIdentifier","src":"3466:3:97"},"nativeSrc":"3466:10:97","nodeType":"YulFunctionCall","src":"3466:10:97"},"variableNames":[{"name":"i","nativeSrc":"3461:1:97","nodeType":"YulIdentifier","src":"3461:1:97"}]}]},"pre":{"nativeSrc":"3441:3:97","nodeType":"YulBlock","src":"3441:3:97","statements":[]},"src":"3437:113:97"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"3570:3:97","nodeType":"YulIdentifier","src":"3570:3:97"},{"name":"length","nativeSrc":"3575:6:97","nodeType":"YulIdentifier","src":"3575:6:97"}],"functionName":{"name":"add","nativeSrc":"3566:3:97","nodeType":"YulIdentifier","src":"3566:3:97"},"nativeSrc":"3566:16:97","nodeType":"YulFunctionCall","src":"3566:16:97"},{"kind":"number","nativeSrc":"3584:1:97","nodeType":"YulLiteral","src":"3584:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"3559:6:97","nodeType":"YulIdentifier","src":"3559:6:97"},"nativeSrc":"3559:27:97","nodeType":"YulFunctionCall","src":"3559:27:97"},"nativeSrc":"3559:27:97","nodeType":"YulExpressionStatement","src":"3559:27:97"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"3342:250:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"3386:3:97","nodeType":"YulTypedName","src":"3386:3:97","type":""},{"name":"dst","nativeSrc":"3391:3:97","nodeType":"YulTypedName","src":"3391:3:97","type":""},{"name":"length","nativeSrc":"3396:6:97","nodeType":"YulTypedName","src":"3396:6:97","type":""}],"src":"3342:250:97"},{"body":{"nativeSrc":"3734:150:97","nodeType":"YulBlock","src":"3734:150:97","statements":[{"nativeSrc":"3744:27:97","nodeType":"YulVariableDeclaration","src":"3744:27:97","value":{"arguments":[{"name":"value0","nativeSrc":"3764:6:97","nodeType":"YulIdentifier","src":"3764:6:97"}],"functionName":{"name":"mload","nativeSrc":"3758:5:97","nodeType":"YulIdentifier","src":"3758:5:97"},"nativeSrc":"3758:13:97","nodeType":"YulFunctionCall","src":"3758:13:97"},"variables":[{"name":"length","nativeSrc":"3748:6:97","nodeType":"YulTypedName","src":"3748:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"3819:6:97","nodeType":"YulIdentifier","src":"3819:6:97"},{"kind":"number","nativeSrc":"3827:4:97","nodeType":"YulLiteral","src":"3827:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3815:3:97","nodeType":"YulIdentifier","src":"3815:3:97"},"nativeSrc":"3815:17:97","nodeType":"YulFunctionCall","src":"3815:17:97"},{"name":"pos","nativeSrc":"3834:3:97","nodeType":"YulIdentifier","src":"3834:3:97"},{"name":"length","nativeSrc":"3839:6:97","nodeType":"YulIdentifier","src":"3839:6:97"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"3780:34:97","nodeType":"YulIdentifier","src":"3780:34:97"},"nativeSrc":"3780:66:97","nodeType":"YulFunctionCall","src":"3780:66:97"},"nativeSrc":"3780:66:97","nodeType":"YulExpressionStatement","src":"3780:66:97"},{"nativeSrc":"3855:23:97","nodeType":"YulAssignment","src":"3855:23:97","value":{"arguments":[{"name":"pos","nativeSrc":"3866:3:97","nodeType":"YulIdentifier","src":"3866:3:97"},{"name":"length","nativeSrc":"3871:6:97","nodeType":"YulIdentifier","src":"3871:6:97"}],"functionName":{"name":"add","nativeSrc":"3862:3:97","nodeType":"YulIdentifier","src":"3862:3:97"},"nativeSrc":"3862:16:97","nodeType":"YulFunctionCall","src":"3862:16:97"},"variableNames":[{"name":"end","nativeSrc":"3855:3:97","nodeType":"YulIdentifier","src":"3855:3:97"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"3597:287:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3710:3:97","nodeType":"YulTypedName","src":"3710:3:97","type":""},{"name":"value0","nativeSrc":"3715:6:97","nodeType":"YulTypedName","src":"3715:6:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"3726:3:97","nodeType":"YulTypedName","src":"3726:3:97","type":""}],"src":"3597:287:97"},{"body":{"nativeSrc":"4010:334:97","nodeType":"YulBlock","src":"4010:334:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4027:9:97","nodeType":"YulIdentifier","src":"4027:9:97"},{"kind":"number","nativeSrc":"4038:2:97","nodeType":"YulLiteral","src":"4038:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"4020:6:97","nodeType":"YulIdentifier","src":"4020:6:97"},"nativeSrc":"4020:21:97","nodeType":"YulFunctionCall","src":"4020:21:97"},"nativeSrc":"4020:21:97","nodeType":"YulExpressionStatement","src":"4020:21:97"},{"nativeSrc":"4050:27:97","nodeType":"YulVariableDeclaration","src":"4050:27:97","value":{"arguments":[{"name":"value0","nativeSrc":"4070:6:97","nodeType":"YulIdentifier","src":"4070:6:97"}],"functionName":{"name":"mload","nativeSrc":"4064:5:97","nodeType":"YulIdentifier","src":"4064:5:97"},"nativeSrc":"4064:13:97","nodeType":"YulFunctionCall","src":"4064:13:97"},"variables":[{"name":"length","nativeSrc":"4054:6:97","nodeType":"YulTypedName","src":"4054:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4097:9:97","nodeType":"YulIdentifier","src":"4097:9:97"},{"kind":"number","nativeSrc":"4108:2:97","nodeType":"YulLiteral","src":"4108:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4093:3:97","nodeType":"YulIdentifier","src":"4093:3:97"},"nativeSrc":"4093:18:97","nodeType":"YulFunctionCall","src":"4093:18:97"},{"name":"length","nativeSrc":"4113:6:97","nodeType":"YulIdentifier","src":"4113:6:97"}],"functionName":{"name":"mstore","nativeSrc":"4086:6:97","nodeType":"YulIdentifier","src":"4086:6:97"},"nativeSrc":"4086:34:97","nodeType":"YulFunctionCall","src":"4086:34:97"},"nativeSrc":"4086:34:97","nodeType":"YulExpressionStatement","src":"4086:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"4168:6:97","nodeType":"YulIdentifier","src":"4168:6:97"},{"kind":"number","nativeSrc":"4176:2:97","nodeType":"YulLiteral","src":"4176:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4164:3:97","nodeType":"YulIdentifier","src":"4164:3:97"},"nativeSrc":"4164:15:97","nodeType":"YulFunctionCall","src":"4164:15:97"},{"arguments":[{"name":"headStart","nativeSrc":"4185:9:97","nodeType":"YulIdentifier","src":"4185:9:97"},{"kind":"number","nativeSrc":"4196:2:97","nodeType":"YulLiteral","src":"4196:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4181:3:97","nodeType":"YulIdentifier","src":"4181:3:97"},"nativeSrc":"4181:18:97","nodeType":"YulFunctionCall","src":"4181:18:97"},{"name":"length","nativeSrc":"4201:6:97","nodeType":"YulIdentifier","src":"4201:6:97"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4129:34:97","nodeType":"YulIdentifier","src":"4129:34:97"},"nativeSrc":"4129:79:97","nodeType":"YulFunctionCall","src":"4129:79:97"},"nativeSrc":"4129:79:97","nodeType":"YulExpressionStatement","src":"4129:79:97"},{"nativeSrc":"4217:121:97","nodeType":"YulAssignment","src":"4217:121:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4233:9:97","nodeType":"YulIdentifier","src":"4233:9:97"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"4252:6:97","nodeType":"YulIdentifier","src":"4252:6:97"},{"kind":"number","nativeSrc":"4260:2:97","nodeType":"YulLiteral","src":"4260:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"4248:3:97","nodeType":"YulIdentifier","src":"4248:3:97"},"nativeSrc":"4248:15:97","nodeType":"YulFunctionCall","src":"4248:15:97"},{"kind":"number","nativeSrc":"4265:66:97","nodeType":"YulLiteral","src":"4265:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"4244:3:97","nodeType":"YulIdentifier","src":"4244:3:97"},"nativeSrc":"4244:88:97","nodeType":"YulFunctionCall","src":"4244:88:97"}],"functionName":{"name":"add","nativeSrc":"4229:3:97","nodeType":"YulIdentifier","src":"4229:3:97"},"nativeSrc":"4229:104:97","nodeType":"YulFunctionCall","src":"4229:104:97"},{"kind":"number","nativeSrc":"4335:2:97","nodeType":"YulLiteral","src":"4335:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4225:3:97","nodeType":"YulIdentifier","src":"4225:3:97"},"nativeSrc":"4225:113:97","nodeType":"YulFunctionCall","src":"4225:113:97"},"variableNames":[{"name":"tail","nativeSrc":"4217:4:97","nodeType":"YulIdentifier","src":"4217:4:97"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3889:455:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3979:9:97","nodeType":"YulTypedName","src":"3979:9:97","type":""},{"name":"value0","nativeSrc":"3990:6:97","nodeType":"YulTypedName","src":"3990:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4001:4:97","nodeType":"YulTypedName","src":"4001:4:97","type":""}],"src":"3889:455:97"}]},"contents":"{\n    { }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n    }\n    function abi_decode_tuple_t_addresst_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        let offset := calldataload(add(headStart, 32))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n        let length := calldataload(_2)\n        if gt(length, _1) { revert(0, 0) }\n        if gt(add(add(_2, length), 32), dataEnd) { revert(0, 0) }\n        value1 := add(_2, 32)\n        value2 := length\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 66)\n        mstore(add(headStart, 64), \"TransparentUpgradeableProxy: adm\")\n        mstore(add(headStart, 96), \"in cannot fallback to proxy targ\")\n        mstore(add(headStart, 128), \"et\")\n        tail := add(headStart, 160)\n    }\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n    }\n    function abi_encode_tuple_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"ERC1967: new admin is the zero a\")\n        mstore(add(headStart, 96), \"ddress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 45)\n        mstore(add(headStart, 64), \"ERC1967: new implementation is n\")\n        mstore(add(headStart, 96), \"ot a contract\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Address: delegate call to non-co\")\n        mstore(add(headStart, 96), \"ntract\")\n        tail := add(headStart, 128)\n    }\n    function copy_memory_to_memory_with_cleanup(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n        end := add(pos, length)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        copy_memory_to_memory_with_cleanup(add(value0, 32), add(headStart, 64), length)\n        tail := add(add(headStart, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 64)\n    }\n}","id":97,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"60806040526004361061005e5760003560e01c80635c60da1b116100435780635c60da1b146100a85780638f283970146100e6578063f851a440146101065761006d565b80633659cfe6146100755780634f1ef286146100955761006d565b3661006d5761006b61011b565b005b61006b61011b565b34801561008157600080fd5b5061006b610090366004610879565b610135565b61006b6100a3366004610894565b61017f565b3480156100b457600080fd5b506100bd6101f3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100f257600080fd5b5061006b610101366004610879565b610231565b34801561011257600080fd5b506100bd61025e565b61012361028c565b61013361012e610363565b61036d565b565b61013d610391565b73ffffffffffffffffffffffffffffffffffffffff16330361017757610174816040518060200160405280600081525060006103d1565b50565b61017461011b565b610187610391565b73ffffffffffffffffffffffffffffffffffffffff1633036101eb576101e68383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250600192506103d1915050565b505050565b6101e661011b565b60006101fd610391565b73ffffffffffffffffffffffffffffffffffffffff16330361022657610221610363565b905090565b61022e61011b565b90565b610239610391565b73ffffffffffffffffffffffffffffffffffffffff16330361017757610174816103fc565b6000610268610391565b73ffffffffffffffffffffffffffffffffffffffff16330361022657610221610391565b610294610391565b73ffffffffffffffffffffffffffffffffffffffff163303610133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b600061022161045d565b3660008037600080366000845af43d6000803e80801561038c573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b5473ffffffffffffffffffffffffffffffffffffffff16919050565b6103da83610485565b6000825111806103e75750805b156101e6576103f683836104d2565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f610425610391565b6040805173ffffffffffffffffffffffffffffffffffffffff928316815291841660208301520160405180910390a1610174816104fe565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6103b5565b61048e8161060a565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606104f783836040518060600160405280602781526020016109a9602791396106d5565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff81166105a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161035a565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905550565b73ffffffffffffffffffffffffffffffffffffffff81163b6106ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e747261637400000000000000000000000000000000000000606482015260840161035a565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6105c4565b606073ffffffffffffffffffffffffffffffffffffffff84163b61077b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e74726163740000000000000000000000000000000000000000000000000000606482015260840161035a565b6000808573ffffffffffffffffffffffffffffffffffffffff16856040516107a3919061093b565b600060405180830381855af49150503d80600081146107de576040519150601f19603f3d011682016040523d82523d6000602084013e6107e3565b606091505b50915091506107f38282866107fd565b9695505050505050565b6060831561080c5750816104f7565b82511561081c5782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035a9190610957565b803573ffffffffffffffffffffffffffffffffffffffff8116811461087457600080fd5b919050565b60006020828403121561088b57600080fd5b6104f782610850565b6000806000604084860312156108a957600080fd5b6108b284610850565b9250602084013567ffffffffffffffff808211156108cf57600080fd5b818601915086601f8301126108e357600080fd5b8135818111156108f257600080fd5b87602082850101111561090457600080fd5b6020830194508093505050509250925092565b60005b8381101561093257818101518382015260200161091a565b50506000910152565b6000825161094d818460208701610917565b9190910192915050565b6020815260008251806020840152610976816040850160208701610917565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220ea3e4f85f0a1d3fc15be75ff98c694618446f5f89724d4dda961c4ab756e1bcb64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x5E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5C60DA1B GT PUSH2 0x43 JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0xA8 JUMPI DUP1 PUSH4 0x8F283970 EQ PUSH2 0xE6 JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x106 JUMPI PUSH2 0x6D JUMP JUMPDEST DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x75 JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x95 JUMPI PUSH2 0x6D JUMP JUMPDEST CALLDATASIZE PUSH2 0x6D JUMPI PUSH2 0x6B PUSH2 0x11B JUMP JUMPDEST STOP JUMPDEST PUSH2 0x6B PUSH2 0x11B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x81 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6B PUSH2 0x90 CALLDATASIZE PUSH1 0x4 PUSH2 0x879 JUMP JUMPDEST PUSH2 0x135 JUMP JUMPDEST PUSH2 0x6B PUSH2 0xA3 CALLDATASIZE PUSH1 0x4 PUSH2 0x894 JUMP JUMPDEST PUSH2 0x17F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBD PUSH2 0x1F3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6B PUSH2 0x101 CALLDATASIZE PUSH1 0x4 PUSH2 0x879 JUMP JUMPDEST PUSH2 0x231 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x112 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBD PUSH2 0x25E JUMP JUMPDEST PUSH2 0x123 PUSH2 0x28C JUMP JUMPDEST PUSH2 0x133 PUSH2 0x12E PUSH2 0x363 JUMP JUMPDEST PUSH2 0x36D JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x13D PUSH2 0x391 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER SUB PUSH2 0x177 JUMPI PUSH2 0x174 DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH1 0x0 PUSH2 0x3D1 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x174 PUSH2 0x11B JUMP JUMPDEST PUSH2 0x187 PUSH2 0x391 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER SUB PUSH2 0x1EB JUMPI PUSH2 0x1E6 DUP4 DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH1 0x1 SWAP3 POP PUSH2 0x3D1 SWAP2 POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x1E6 PUSH2 0x11B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1FD PUSH2 0x391 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER SUB PUSH2 0x226 JUMPI PUSH2 0x221 PUSH2 0x363 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x22E PUSH2 0x11B JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x239 PUSH2 0x391 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER SUB PUSH2 0x177 JUMPI PUSH2 0x174 DUP2 PUSH2 0x3FC JUMP JUMPDEST PUSH1 0x0 PUSH2 0x268 PUSH2 0x391 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER SUB PUSH2 0x226 JUMPI PUSH2 0x221 PUSH2 0x391 JUMP JUMPDEST PUSH2 0x294 PUSH2 0x391 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER SUB PUSH2 0x133 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x42 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5472616E73706172656E745570677261646561626C6550726F78793A2061646D PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x696E2063616E6E6F742066616C6C6261636B20746F2070726F78792074617267 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6574000000000000000000000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x221 PUSH2 0x45D JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH2 0x38C JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 JUMPDEST SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3DA DUP4 PUSH2 0x485 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT DUP1 PUSH2 0x3E7 JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x1E6 JUMPI PUSH2 0x3F6 DUP4 DUP4 PUSH2 0x4D2 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH32 0x7E644D79422F17C01E4894B5F4F588D331EBFA28653D42AE832DC59E38C9798F PUSH2 0x425 PUSH2 0x391 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 DUP4 AND DUP2 MSTORE SWAP2 DUP5 AND PUSH1 0x20 DUP4 ADD MSTORE ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x174 DUP2 PUSH2 0x4FE JUMP JUMPDEST PUSH1 0x0 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH2 0x3B5 JUMP JUMPDEST PUSH2 0x48E DUP2 PUSH2 0x60A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x4F7 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x9A9 PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x6D5 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x5A1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E65772061646D696E20697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35A JUMP JUMPDEST DUP1 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 JUMPDEST DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND EXTCODESIZE PUSH2 0x6AE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F74206120636F6E747261637400000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35A JUMP JUMPDEST DUP1 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH2 0x5C4 JUMP JUMPDEST PUSH1 0x60 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND EXTCODESIZE PUSH2 0x77B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E74726163740000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35A JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x7A3 SWAP2 SWAP1 PUSH2 0x93B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x7DE JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x7E3 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x7F3 DUP3 DUP3 DUP7 PUSH2 0x7FD JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x80C JUMPI POP DUP2 PUSH2 0x4F7 JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x81C JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35A SWAP2 SWAP1 PUSH2 0x957 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x874 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x88B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4F7 DUP3 PUSH2 0x850 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x8A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x8B2 DUP5 PUSH2 0x850 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x8CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x8E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x8F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x904 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP5 POP DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x932 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x91A JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x94D DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x917 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x976 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x917 JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP INVALID COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C6564A264 PUSH10 0x70667358221220EA3E4F DUP6 CREATE LOG1 0xD3 0xFC ISZERO 0xBE PUSH22 0xFF98C694618446F5F89724D4DDA961C4AB756E1BCB64 PUSH20 0x6F6C634300081900330000000000000000000000 ","sourceMap":"1634:3556:91:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2903:11:88;:9;:11::i;:::-;1634:3556:91;;2680:11:88;:9;:11::i;4032:134:91:-;;;;;;;;;;-1:-1:-1;4032:134:91;;;;;:::i;:::-;;:::i;4542:164::-;;;;;;:::i;:::-;;:::i;3435:129::-;;;;;;;;;;;;;:::i;:::-;;;1252:42:97;1240:55;;;1222:74;;1210:2;1195:18;3435:129:91;;;;;;;3769:103;;;;;;;;;;-1:-1:-1;3769:103:91;;;;;:::i;:::-;;:::i;2879:96::-;;;;;;;;;;;;;:::i;2327:110:88:-;2375:17;:15;:17::i;:::-;2402:28;2412:17;:15;:17::i;:::-;2402:9;:28::i;:::-;2327:110::o;4032:134:91:-;2350:11;:9;:11::i;:::-;2336:25;;:10;:25;2332:99;;4105:54:::1;4123:17;4142:9;;;;;;;;;;;::::0;4153:5:::1;4105:17;:54::i;:::-;4032:134:::0;:::o;2332:99::-;2409:11;:9;:11::i;4542:164::-;2350:11;:9;:11::i;:::-;2336:25;;:10;:25;2332:99;;4651:48:::1;4669:17;4688:4;;4651:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;4694:4:91::1;::::0;-1:-1:-1;4651:17:91::1;::::0;-1:-1:-1;;4651:48:91:i:1;:::-;4542:164:::0;;;:::o;2332:99::-;2409:11;:9;:11::i;3435:129::-;3487:23;2350:11;:9;:11::i;:::-;2336:25;;:10;:25;2332:99;;3540:17:::1;:15;:17::i;:::-;3522:35;;3435:129:::0;:::o;2332:99::-;2409:11;:9;:11::i;:::-;3435:129;:::o;3769:103::-;2350:11;:9;:11::i;:::-;2336:25;;:10;:25;2332:99;;3843:22:::1;3856:8;3843:12;:22::i;2879:96::-:0;2922:14;2350:11;:9;:11::i;:::-;2336:25;;:10;:25;2332:99;;2957:11:::1;:9;:11::i;4981:207::-:0;5066:11;:9;:11::i;:::-;5052:25;;:10;:25;5044:104;;;;;;;1509:2:97;5044:104:91;;;1491:21:97;1548:2;1528:18;;;1521:30;1587:34;1567:18;;;1560:62;1658:34;1638:18;;;1631:62;1730:4;1709:19;;;1702:33;1752:19;;5044:104:91;;;;;;;;1240:140:86;1307:12;1338:35;:33;:35::i;953:895:88:-;1291:14;1288:1;1285;1272:34;1505:1;1502;1486:14;1483:1;1467:14;1460:5;1447:60;1581:16;1578:1;1575;1560:38;1619:6;1686:66;;;;1801:16;1798:1;1791:27;1686:66;1721:16;1718:1;1711:27;4113:130:87;4165:7;3847:66;4191:39;:45;;;;4113:130;-1:-1:-1;4113:130:87:o;2188:295::-;2326:29;2337:17;2326:10;:29::i;:::-;2383:1;2369:4;:11;:15;:28;;;;2388:9;2369:28;2365:112;;;2413:53;2442:17;2461:4;2413:28;:53::i;:::-;;2188:295;;;:::o;4637:135::-;4701:35;4714:11;:9;:11::i;:::-;4701:35;;;1966:42:97;2035:15;;;2017:34;;2087:15;;;2082:2;2067:18;;2060:43;1929:18;4701:35:87;;;;;;;4746:19;4756:8;4746:9;:19::i;1306:140::-;1359:7;1035:66;1385:48;1599:147:94;1902:152:87;1968:37;1987:17;1968:18;:37::i;:::-;2020:27;;;;;;;;;;;1902:152;:::o;6575:198:92:-;6658:12;6689:77;6710:6;6718:4;6689:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6682:84;6575:198;-1:-1:-1;;;6575:198:92:o;4325:201:87:-;4388:22;;;4380:73;;;;;;;2316:2:97;4380:73:87;;;2298:21:97;2355:2;2335:18;;;2328:30;2394:34;2374:18;;;2367:62;2465:8;2445:18;;;2438:36;2491:19;;4380:73:87;2114:402:97;4380:73:87;4511:8;3847:66;4463:39;:56;;;;;;;;;;;;;;;-1:-1:-1;4325:201:87:o;1537:259::-;1470:19:92;;;;1610:95:87;;;;;;;2723:2:97;1610:95:87;;;2705:21:97;2762:2;2742:18;;;2735:30;2801:34;2781:18;;;2774:62;2872:15;2852:18;;;2845:43;2905:19;;1610:95:87;2521:409:97;1610:95:87;1772:17;1035:66;1715:48;1599:147:94;6959:387:92;7100:12;1470:19;;;;7124:69;;;;;;;3137:2:97;7124:69:92;;;3119:21:97;3176:2;3156:18;;;3149:30;3215:34;3195:18;;;3188:62;3286:8;3266:18;;;3259:36;3312:19;;7124:69:92;2935:402:97;7124:69:92;7205:12;7219:23;7246:6;:19;;7266:4;7246:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7204:67;;;;7288:51;7305:7;7314:10;7326:12;7288:16;:51::i;:::-;7281:58;6959:387;-1:-1:-1;;;;;;6959:387:92:o;7566:692::-;7712:12;7740:7;7736:516;;;-1:-1:-1;7770:10:92;7763:17;;7736:516;7881:17;;:21;7877:365;;8075:10;8069:17;8135:15;8122:10;8118:2;8114:19;8107:44;7877:365;8214:12;8207:20;;;;;;;;;;;:::i;14:196:97:-;82:20;;142:42;131:54;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:186::-;274:6;327:2;315:9;306:7;302:23;298:32;295:52;;;343:1;340;333:12;295:52;366:29;385:9;366:29;:::i;406:665::-;485:6;493;501;554:2;542:9;533:7;529:23;525:32;522:52;;;570:1;567;560:12;522:52;593:29;612:9;593:29;:::i;:::-;583:39;;673:2;662:9;658:18;645:32;696:18;737:2;729:6;726:14;723:34;;;753:1;750;743:12;723:34;791:6;780:9;776:22;766:32;;836:7;829:4;825:2;821:13;817:27;807:55;;858:1;855;848:12;807:55;898:2;885:16;924:2;916:6;913:14;910:34;;;940:1;937;930:12;910:34;985:7;980:2;971:6;967:2;963:15;959:24;956:37;953:57;;;1006:1;1003;996:12;953:57;1037:2;1033;1029:11;1019:21;;1059:6;1049:16;;;;;406:665;;;;;:::o;3342:250::-;3427:1;3437:113;3451:6;3448:1;3445:13;3437:113;;;3527:11;;;3521:18;3508:11;;;3501:39;3473:2;3466:10;3437:113;;;-1:-1:-1;;3584:1:97;3566:16;;3559:27;3342:250::o;3597:287::-;3726:3;3764:6;3758:13;3780:66;3839:6;3834:3;3827:4;3819:6;3815:17;3780:66;:::i;:::-;3862:16;;;;;3597:287;-1:-1:-1;;3597:287:97:o;3889:455::-;4038:2;4027:9;4020:21;4001:4;4070:6;4064:13;4113:6;4108:2;4097:9;4093:18;4086:34;4129:79;4201:6;4196:2;4185:9;4181:18;4176:2;4168:6;4164:15;4129:79;:::i;:::-;4260:2;4248:15;4265:66;4244:88;4229:104;;;;4335:2;4225:113;;3889:455;-1:-1:-1;;3889:455:97:o"},"gasEstimates":{"creation":{"codeDepositCost":"513000","executionCost":"infinite","totalCost":"infinite"},"external":{"":"infinite","admin()":"infinite","changeAdmin(address)":"infinite","implementation()":"infinite","upgradeTo(address)":"infinite","upgradeToAndCall(address,bytes)":"infinite"},"internal":{"_admin()":"infinite","_beforeFallback()":"infinite"}},"methodIdentifiers":{"admin()":"f851a440","changeAdmin(address)":"8f283970","implementation()":"5c60da1b","upgradeTo(address)":"3659cfe6","upgradeToAndCall(address,bytes)":"4f1ef286"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_logic\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"admin_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"admin_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"changeAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"implementation_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"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\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"This contract implements a proxy that is upgradeable by an admin. To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector clashing], which can potentially be used in an attack, this contract uses the https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two things that go hand in hand: 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if that call matches one of the admin functions exposed by the proxy itself. 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the implementation. If the admin tries to call a function on the implementation it will fail with an error that says \\\"admin cannot fallback to proxy target\\\". These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due to sudden errors when trying to call a function from the proxy implementation. Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way, you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy.\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is upgraded.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"admin()\":{\"details\":\"Returns the current admin. NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}. TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`\"},\"changeAdmin(address)\":{\"details\":\"Changes the admin of the proxy. Emits an {AdminChanged} event. NOTE: Only the admin can call this function. See {ProxyAdmin-changeProxyAdmin}.\"},\"constructor\":{\"details\":\"Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}.\"},\"implementation()\":{\"details\":\"Returns the current implementation. NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}. TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`\"},\"upgradeTo(address)\":{\"details\":\"Upgrade the implementation of the proxy. NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}.\"},\"upgradeToAndCall(address,bytes)\":{\"details\":\"Upgrade the implementation of the proxy, and then call a function from the new implementation as specified by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the proxied contract. NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/TransparentUpgradeableProxy.sol\":\"TransparentUpgradeableProxy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (interfaces/draft-IERC1822.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified\\n * proxy whose upgrades are fully controlled by the current implementation.\\n */\\ninterface IERC1822Proxiable {\\n    /**\\n     * @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation\\n     * address.\\n     *\\n     * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\\n     * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\\n     * function revert if invoked through a proxy.\\n     */\\n    function proxiableUUID() external view returns (bytes32);\\n}\\n\",\"keccak256\":\"0x93b4e21c931252739a1ec13ea31d3d35a5c068be3163ccab83e4d70c40355f03\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/ERC1967/ERC1967Proxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../Proxy.sol\\\";\\nimport \\\"./ERC1967Upgrade.sol\\\";\\n\\n/**\\n * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\\n * implementation address that can be changed. This address is stored in storage in the location specified by\\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the\\n * implementation behind the proxy.\\n */\\ncontract ERC1967Proxy is Proxy, ERC1967Upgrade {\\n    /**\\n     * @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`.\\n     *\\n     * If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded\\n     * function call, and allows initializating the storage of the proxy like a Solidity constructor.\\n     */\\n    constructor(address _logic, bytes memory _data) payable {\\n        assert(_IMPLEMENTATION_SLOT == bytes32(uint256(keccak256(\\\"eip1967.proxy.implementation\\\")) - 1));\\n        _upgradeToAndCall(_logic, _data, false);\\n    }\\n\\n    /**\\n     * @dev Returns the current implementation address.\\n     */\\n    function _implementation() internal view virtual override returns (address impl) {\\n        return ERC1967Upgrade._getImplementation();\\n    }\\n}\\n\",\"keccak256\":\"0x6309f9f39dc6f4f45a24f296543867aa358e32946cd6b2874627a996d606b3a0\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (proxy/ERC1967/ERC1967Upgrade.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../beacon/IBeacon.sol\\\";\\nimport \\\"../../interfaces/draft-IERC1822.sol\\\";\\nimport \\\"../../utils/Address.sol\\\";\\nimport \\\"../../utils/StorageSlot.sol\\\";\\n\\n/**\\n * @dev This abstract contract provides getters and event emitting update functions for\\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.\\n *\\n * _Available since v4.1._\\n *\\n * @custom:oz-upgrades-unsafe-allow delegatecall\\n */\\nabstract contract ERC1967Upgrade {\\n    // This is the keccak-256 hash of \\\"eip1967.proxy.rollback\\\" subtracted by 1\\n    bytes32 private constant _ROLLBACK_SLOT = 0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143;\\n\\n    /**\\n     * @dev Storage slot with the address of the current implementation.\\n     * This is the keccak-256 hash of \\\"eip1967.proxy.implementation\\\" subtracted by 1, and is\\n     * validated in the constructor.\\n     */\\n    bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\\n\\n    /**\\n     * @dev Emitted when the implementation is upgraded.\\n     */\\n    event Upgraded(address indexed implementation);\\n\\n    /**\\n     * @dev Returns the current implementation address.\\n     */\\n    function _getImplementation() internal view returns (address) {\\n        return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\\n    }\\n\\n    /**\\n     * @dev Stores a new address in the EIP1967 implementation slot.\\n     */\\n    function _setImplementation(address newImplementation) private {\\n        require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");\\n        StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\\n    }\\n\\n    /**\\n     * @dev Perform implementation upgrade\\n     *\\n     * Emits an {Upgraded} event.\\n     */\\n    function _upgradeTo(address newImplementation) internal {\\n        _setImplementation(newImplementation);\\n        emit Upgraded(newImplementation);\\n    }\\n\\n    /**\\n     * @dev Perform implementation upgrade with additional setup call.\\n     *\\n     * Emits an {Upgraded} event.\\n     */\\n    function _upgradeToAndCall(\\n        address newImplementation,\\n        bytes memory data,\\n        bool forceCall\\n    ) internal {\\n        _upgradeTo(newImplementation);\\n        if (data.length > 0 || forceCall) {\\n            Address.functionDelegateCall(newImplementation, data);\\n        }\\n    }\\n\\n    /**\\n     * @dev Perform implementation upgrade with security checks for UUPS proxies, and additional setup call.\\n     *\\n     * Emits an {Upgraded} event.\\n     */\\n    function _upgradeToAndCallUUPS(\\n        address newImplementation,\\n        bytes memory data,\\n        bool forceCall\\n    ) internal {\\n        // Upgrades from old implementations will perform a rollback test. This test requires the new\\n        // implementation to upgrade back to the old, non-ERC1822 compliant, implementation. Removing\\n        // this special case will break upgrade paths from old UUPS implementation to new ones.\\n        if (StorageSlot.getBooleanSlot(_ROLLBACK_SLOT).value) {\\n            _setImplementation(newImplementation);\\n        } else {\\n            try IERC1822Proxiable(newImplementation).proxiableUUID() returns (bytes32 slot) {\\n                require(slot == _IMPLEMENTATION_SLOT, \\\"ERC1967Upgrade: unsupported proxiableUUID\\\");\\n            } catch {\\n                revert(\\\"ERC1967Upgrade: new implementation is not UUPS\\\");\\n            }\\n            _upgradeToAndCall(newImplementation, data, forceCall);\\n        }\\n    }\\n\\n    /**\\n     * @dev Storage slot with the admin of the contract.\\n     * This is the keccak-256 hash of \\\"eip1967.proxy.admin\\\" subtracted by 1, and is\\n     * validated in the constructor.\\n     */\\n    bytes32 internal constant _ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;\\n\\n    /**\\n     * @dev Emitted when the admin account has changed.\\n     */\\n    event AdminChanged(address previousAdmin, address newAdmin);\\n\\n    /**\\n     * @dev Returns the current admin.\\n     */\\n    function _getAdmin() internal view virtual returns (address) {\\n        return StorageSlot.getAddressSlot(_ADMIN_SLOT).value;\\n    }\\n\\n    /**\\n     * @dev Stores a new address in the EIP1967 admin slot.\\n     */\\n    function _setAdmin(address newAdmin) private {\\n        require(newAdmin != address(0), \\\"ERC1967: new admin is the zero address\\\");\\n        StorageSlot.getAddressSlot(_ADMIN_SLOT).value = newAdmin;\\n    }\\n\\n    /**\\n     * @dev Changes the admin of the proxy.\\n     *\\n     * Emits an {AdminChanged} event.\\n     */\\n    function _changeAdmin(address newAdmin) internal {\\n        emit AdminChanged(_getAdmin(), newAdmin);\\n        _setAdmin(newAdmin);\\n    }\\n\\n    /**\\n     * @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\\n     * This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor.\\n     */\\n    bytes32 internal constant _BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50;\\n\\n    /**\\n     * @dev Emitted when the beacon is upgraded.\\n     */\\n    event BeaconUpgraded(address indexed beacon);\\n\\n    /**\\n     * @dev Returns the current beacon.\\n     */\\n    function _getBeacon() internal view returns (address) {\\n        return StorageSlot.getAddressSlot(_BEACON_SLOT).value;\\n    }\\n\\n    /**\\n     * @dev Stores a new beacon in the EIP1967 beacon slot.\\n     */\\n    function _setBeacon(address newBeacon) private {\\n        require(Address.isContract(newBeacon), \\\"ERC1967: new beacon is not a contract\\\");\\n        require(Address.isContract(IBeacon(newBeacon).implementation()), \\\"ERC1967: beacon implementation is not a contract\\\");\\n        StorageSlot.getAddressSlot(_BEACON_SLOT).value = newBeacon;\\n    }\\n\\n    /**\\n     * @dev Perform beacon upgrade with additional setup call. Note: This upgrades the address of the beacon, it does\\n     * not upgrade the implementation contained in the beacon (see {UpgradeableBeacon-_setImplementation} for that).\\n     *\\n     * Emits a {BeaconUpgraded} event.\\n     */\\n    function _upgradeBeaconToAndCall(\\n        address newBeacon,\\n        bytes memory data,\\n        bool forceCall\\n    ) internal {\\n        _setBeacon(newBeacon);\\n        emit BeaconUpgraded(newBeacon);\\n        if (data.length > 0 || forceCall) {\\n            Address.functionDelegateCall(IBeacon(newBeacon).implementation(), data);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x17668652127feebed0ce8d9431ef95ccc8c4292f03e3b8cf06c6ca16af396633\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (proxy/Proxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM\\n * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to\\n * be specified by overriding the virtual {_implementation} function.\\n *\\n * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a\\n * different contract through the {_delegate} function.\\n *\\n * The success and return data of the delegated call will be returned back to the caller of the proxy.\\n */\\nabstract contract Proxy {\\n    /**\\n     * @dev Delegates the current call to `implementation`.\\n     *\\n     * This function does not return to its internal call site, it will return directly to the external caller.\\n     */\\n    function _delegate(address implementation) internal virtual {\\n        assembly {\\n            // Copy msg.data. We take full control of memory in this inline assembly\\n            // block because it will not return to Solidity code. We overwrite the\\n            // Solidity scratch pad at memory position 0.\\n            calldatacopy(0, 0, calldatasize())\\n\\n            // Call the implementation.\\n            // out and outsize are 0 because we don't know the size yet.\\n            let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)\\n\\n            // Copy the returned data.\\n            returndatacopy(0, 0, returndatasize())\\n\\n            switch result\\n            // delegatecall returns 0 on error.\\n            case 0 {\\n                revert(0, returndatasize())\\n            }\\n            default {\\n                return(0, returndatasize())\\n            }\\n        }\\n    }\\n\\n    /**\\n     * @dev This is a virtual function that should be overriden so it returns the address to which the fallback function\\n     * and {_fallback} should delegate.\\n     */\\n    function _implementation() internal view virtual returns (address);\\n\\n    /**\\n     * @dev Delegates the current call to the address returned by `_implementation()`.\\n     *\\n     * This function does not return to its internall call site, it will return directly to the external caller.\\n     */\\n    function _fallback() internal virtual {\\n        _beforeFallback();\\n        _delegate(_implementation());\\n    }\\n\\n    /**\\n     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other\\n     * function in the contract matches the call data.\\n     */\\n    fallback() external payable virtual {\\n        _fallback();\\n    }\\n\\n    /**\\n     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data\\n     * is empty.\\n     */\\n    receive() external payable virtual {\\n        _fallback();\\n    }\\n\\n    /**\\n     * @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback`\\n     * call, or as part of the Solidity `fallback` or `receive` functions.\\n     *\\n     * If overriden should call `super._beforeFallback()`.\\n     */\\n    function _beforeFallback() internal virtual {}\\n}\\n\",\"keccak256\":\"0xd5d1fd16e9faff7fcb3a52e02a8d49156f42a38a03f07b5f1810c21c2149a8ab\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/beacon/IBeacon.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev This is the interface that {BeaconProxy} expects of its beacon.\\n */\\ninterface IBeacon {\\n    /**\\n     * @dev Must return an address that can be used as a delegate call target.\\n     *\\n     * {BeaconProxy} will check that this address is a contract.\\n     */\\n    function implementation() external view returns (address);\\n}\\n\",\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/transparent/TransparentUpgradeableProxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../ERC1967/ERC1967Proxy.sol\\\";\\n\\n/**\\n * @dev This contract implements a proxy that is upgradeable by an admin.\\n *\\n * To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector\\n * clashing], which can potentially be used in an attack, this contract uses the\\n * https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two\\n * things that go hand in hand:\\n *\\n * 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if\\n * that call matches one of the admin functions exposed by the proxy itself.\\n * 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the\\n * implementation. If the admin tries to call a function on the implementation it will fail with an error that says\\n * \\\"admin cannot fallback to proxy target\\\".\\n *\\n * These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing\\n * the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due\\n * to sudden errors when trying to call a function from the proxy implementation.\\n *\\n * Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way,\\n * you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy.\\n */\\ncontract TransparentUpgradeableProxy is ERC1967Proxy {\\n    /**\\n     * @dev Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and\\n     * optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}.\\n     */\\n    constructor(\\n        address _logic,\\n        address admin_,\\n        bytes memory _data\\n    ) payable ERC1967Proxy(_logic, _data) {\\n        assert(_ADMIN_SLOT == bytes32(uint256(keccak256(\\\"eip1967.proxy.admin\\\")) - 1));\\n        _changeAdmin(admin_);\\n    }\\n\\n    /**\\n     * @dev Modifier used internally that will delegate the call to the implementation unless the sender is the admin.\\n     */\\n    modifier ifAdmin() {\\n        if (msg.sender == _getAdmin()) {\\n            _;\\n        } else {\\n            _fallback();\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns the current admin.\\n     *\\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}.\\n     *\\n     * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\\n     * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\\n     * `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`\\n     */\\n    function admin() external ifAdmin returns (address admin_) {\\n        admin_ = _getAdmin();\\n    }\\n\\n    /**\\n     * @dev Returns the current implementation.\\n     *\\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}.\\n     *\\n     * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\\n     * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\\n     * `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`\\n     */\\n    function implementation() external ifAdmin returns (address implementation_) {\\n        implementation_ = _implementation();\\n    }\\n\\n    /**\\n     * @dev Changes the admin of the proxy.\\n     *\\n     * Emits an {AdminChanged} event.\\n     *\\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-changeProxyAdmin}.\\n     */\\n    function changeAdmin(address newAdmin) external virtual ifAdmin {\\n        _changeAdmin(newAdmin);\\n    }\\n\\n    /**\\n     * @dev Upgrade the implementation of the proxy.\\n     *\\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}.\\n     */\\n    function upgradeTo(address newImplementation) external ifAdmin {\\n        _upgradeToAndCall(newImplementation, bytes(\\\"\\\"), false);\\n    }\\n\\n    /**\\n     * @dev Upgrade the implementation of the proxy, and then call a function from the new implementation as specified\\n     * by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the\\n     * proxied contract.\\n     *\\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}.\\n     */\\n    function upgradeToAndCall(address newImplementation, bytes calldata data) external payable ifAdmin {\\n        _upgradeToAndCall(newImplementation, data, true);\\n    }\\n\\n    /**\\n     * @dev Returns the current admin.\\n     */\\n    function _admin() internal view virtual returns (address) {\\n        return _getAdmin();\\n    }\\n\\n    /**\\n     * @dev Makes sure the admin cannot access the fallback function. See {Proxy-_beforeFallback}.\\n     */\\n    function _beforeFallback() internal virtual override {\\n        require(msg.sender != _getAdmin(), \\\"TransparentUpgradeableProxy: admin cannot fallback to proxy target\\\");\\n        super._beforeFallback();\\n    }\\n}\\n\",\"keccak256\":\"0x140055a64cf579d622e04f5a198595832bf2cb193cd0005f4f2d4d61ca906253\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary Address {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCall(target, data, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        require(isContract(target), \\\"Address: call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        require(isContract(target), \\\"Address: static call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(isContract(target), \\\"Address: delegate call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.delegatecall(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            // Look for revert reason and bubble it up if present\\n            if (returndata.length > 0) {\\n                // The easiest way to bubble the revert reason is using memory via assembly\\n\\n                assembly {\\n                    let returndata_size := mload(returndata)\\n                    revert(add(32, returndata), returndata_size)\\n                }\\n            } else {\\n                revert(errorMessage);\\n            }\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x3777e696b62134e6177440dbe6e6601c0c156a443f57167194b67e75527439de\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/StorageSlot.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Library for reading and writing primitive types to specific storage slots.\\n *\\n * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\\n * This library helps with reading and writing to such slots without the need for inline assembly.\\n *\\n * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\\n *\\n * Example usage to set ERC1967 implementation slot:\\n * ```\\n * contract ERC1967 {\\n *     bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\\n *\\n *     function _getImplementation() internal view returns (address) {\\n *         return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\\n *     }\\n *\\n *     function _setImplementation(address newImplementation) internal {\\n *         require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");\\n *         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\\n *     }\\n * }\\n * ```\\n *\\n * _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._\\n */\\nlibrary StorageSlot {\\n    struct AddressSlot {\\n        address value;\\n    }\\n\\n    struct BooleanSlot {\\n        bool value;\\n    }\\n\\n    struct Bytes32Slot {\\n        bytes32 value;\\n    }\\n\\n    struct Uint256Slot {\\n        uint256 value;\\n    }\\n\\n    /**\\n     * @dev Returns an `AddressSlot` with member `value` located at `slot`.\\n     */\\n    function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `BooleanSlot` with member `value` located at `slot`.\\n     */\\n    function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `Bytes32Slot` with member `value` located at `slot`.\\n     */\\n    function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `Uint256Slot` with member `value` located at `slot`.\\n     */\\n    function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xfe1b7a9aa2a530a9e705b220e26cd584e2fbdc9602a3a1066032b12816b46aca\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol":{"Address":{"abi":[],"devdoc":{"details":"Collection of functions related to the address type","kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203765f0fa061807382465d5a73c5e46442a3f7b77448776fea37472035cbe713b64736f6c63430008190033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLDATACOPY PUSH6 0xF0FA06180738 0x24 PUSH6 0xD5A73C5E4644 0x2A EXTCODEHASH PUSH28 0x77448776FEA37472035CBE713B64736F6C6343000819003300000000 ","sourceMap":"199:8061:92:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;199:8061:92;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203765f0fa061807382465d5a73c5e46442a3f7b77448776fea37472035cbe713b64736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLDATACOPY PUSH6 0xF0FA06180738 0x24 PUSH6 0xD5A73C5E4644 0x2A EXTCODEHASH PUSH28 0x77448776FEA37472035CBE713B64736F6C6343000819003300000000 ","sourceMap":"199:8061:92:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"functionCall(address,bytes memory)":"infinite","functionCall(address,bytes memory,string memory)":"infinite","functionCallWithValue(address,bytes memory,uint256)":"infinite","functionCallWithValue(address,bytes memory,uint256,string memory)":"infinite","functionDelegateCall(address,bytes memory)":"infinite","functionDelegateCall(address,bytes memory,string memory)":"infinite","functionStaticCall(address,bytes memory)":"infinite","functionStaticCall(address,bytes memory,string memory)":"infinite","isContract(address)":"infinite","sendValue(address payable,uint256)":"infinite","verifyCallResult(bool,bytes memory,string memory)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol\":\"Address\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary Address {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCall(target, data, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        require(isContract(target), \\\"Address: call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        require(isContract(target), \\\"Address: static call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(isContract(target), \\\"Address: delegate call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.delegatecall(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            // Look for revert reason and bubble it up if present\\n            if (returndata.length > 0) {\\n                // The easiest way to bubble the revert reason is using memory via assembly\\n\\n                assembly {\\n                    let returndata_size := mload(returndata)\\n                    revert(add(32, returndata), returndata_size)\\n                }\\n            } else {\\n                revert(errorMessage);\\n            }\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x3777e696b62134e6177440dbe6e6601c0c156a443f57167194b67e75527439de\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"hardhat-deploy/solc_0.8/openzeppelin/utils/Context.sol":{"Context":{"abi":[],"devdoc":{"details":"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.","kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat-deploy/solc_0.8/openzeppelin/utils/Context.sol\":\"Context\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"hardhat-deploy/solc_0.8/openzeppelin/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol":{"StorageSlot":{"abi":[],"devdoc":{"details":"Library for reading and writing primitive types to specific storage slots. Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts. This library helps with reading and writing to such slots without the need for inline assembly. The functions in this library return Slot structs that contain a `value` member that can be used to read or write. Example usage to set ERC1967 implementation slot: ``` contract ERC1967 {     bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;     function _getImplementation() internal view returns (address) {         return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;     }     function _setImplementation(address newImplementation) internal {         require(Address.isContract(newImplementation), \"ERC1967: new implementation is not a contract\");         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;     } } ``` _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._","kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212207b155dca1e0b245887b8ef95f817547816496ba63fa7089fa6958595f97eee3064736f6c63430008190033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH28 0x155DCA1E0B245887B8EF95F817547816496BA63FA7089FA6958595F9 PUSH31 0xEE3064736F6C63430008190033000000000000000000000000000000000000 ","sourceMap":"1264:1219:94:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1264:1219:94;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212207b155dca1e0b245887b8ef95f817547816496ba63fa7089fa6958595f97eee3064736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH28 0x155DCA1E0B245887B8EF95F817547816496BA63FA7089FA6958595F9 PUSH31 0xEE3064736F6C63430008190033000000000000000000000000000000000000 ","sourceMap":"1264:1219:94:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"getAddressSlot(bytes32)":"infinite","getBooleanSlot(bytes32)":"infinite","getBytes32Slot(bytes32)":"infinite","getUint256Slot(bytes32)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for reading and writing primitive types to specific storage slots. Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts. This library helps with reading and writing to such slots without the need for inline assembly. The functions in this library return Slot structs that contain a `value` member that can be used to read or write. Example usage to set ERC1967 implementation slot: ``` contract ERC1967 {     bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;     function _getImplementation() internal view returns (address) {         return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;     }     function _setImplementation(address newImplementation) internal {         require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;     } } ``` _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol\":\"StorageSlot\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/StorageSlot.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Library for reading and writing primitive types to specific storage slots.\\n *\\n * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\\n * This library helps with reading and writing to such slots without the need for inline assembly.\\n *\\n * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\\n *\\n * Example usage to set ERC1967 implementation slot:\\n * ```\\n * contract ERC1967 {\\n *     bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\\n *\\n *     function _getImplementation() internal view returns (address) {\\n *         return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\\n *     }\\n *\\n *     function _setImplementation(address newImplementation) internal {\\n *         require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");\\n *         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\\n *     }\\n * }\\n * ```\\n *\\n * _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._\\n */\\nlibrary StorageSlot {\\n    struct AddressSlot {\\n        address value;\\n    }\\n\\n    struct BooleanSlot {\\n        bool value;\\n    }\\n\\n    struct Bytes32Slot {\\n        bytes32 value;\\n    }\\n\\n    struct Uint256Slot {\\n        uint256 value;\\n    }\\n\\n    /**\\n     * @dev Returns an `AddressSlot` with member `value` located at `slot`.\\n     */\\n    function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `BooleanSlot` with member `value` located at `slot`.\\n     */\\n    function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `Bytes32Slot` with member `value` located at `slot`.\\n     */\\n    function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `Uint256Slot` with member `value` located at `slot`.\\n     */\\n    function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xfe1b7a9aa2a530a9e705b220e26cd584e2fbdc9602a3a1066032b12816b46aca\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol":{"OptimizedTransparentUpgradeableProxy":{"abi":[{"inputs":[{"internalType":"address","name":"_logic","type":"address"},{"internalType":"address","name":"admin_","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"admin_","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"implementation_","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","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"},{"stateMutability":"payable","type":"receive"}],"devdoc":{"details":"This contract implements a proxy that is upgradeable by an admin. To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector clashing], which can potentially be used in an attack, this contract uses the https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two things that go hand in hand: 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if that call matches one of the admin functions exposed by the proxy itself. 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the implementation. If the admin tries to call a function on the implementation it will fail with an error that says \"admin cannot fallback to proxy target\". These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due to sudden errors when trying to call a function from the proxy implementation. Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way, you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy.","events":{"AdminChanged(address,address)":{"details":"Emitted when the admin account has changed."},"BeaconUpgraded(address)":{"details":"Emitted when the beacon is upgraded."},"Upgraded(address)":{"details":"Emitted when the implementation is upgraded."}},"kind":"dev","methods":{"admin()":{"details":"Returns the current admin. NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}. TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`"},"constructor":{"details":"Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}."},"implementation()":{"details":"Returns the current implementation. NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}. TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`"},"upgradeTo(address)":{"details":"Upgrade the implementation of the proxy. NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}."},"upgradeToAndCall(address,bytes)":{"details":"Upgrade the implementation of the proxy, and then call a function from the new implementation as specified by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the proxied contract. NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_21451":{"entryPoint":null,"id":21451,"parameterSlots":2,"returnSlots":0},"@_22586":{"entryPoint":null,"id":22586,"parameterSlots":3,"returnSlots":0},"@_setImplementation_21520":{"entryPoint":450,"id":21520,"parameterSlots":1,"returnSlots":0},"@_upgradeToAndCall_21565":{"entryPoint":296,"id":21565,"parameterSlots":3,"returnSlots":0},"@_upgradeTo_21535":{"entryPoint":340,"id":21535,"parameterSlots":1,"returnSlots":0},"@functionDelegateCall_22381":{"entryPoint":404,"id":22381,"parameterSlots":2,"returnSlots":1},"@functionDelegateCall_22416":{"entryPoint":611,"id":22416,"parameterSlots":3,"returnSlots":1},"@getAddressSlot_22496":{"entryPoint":null,"id":22496,"parameterSlots":1,"returnSlots":1},"@isContract_22171":{"entryPoint":null,"id":22171,"parameterSlots":1,"returnSlots":1},"@verifyCallResult_22447":{"entryPoint":835,"id":22447,"parameterSlots":3,"returnSlots":1},"abi_decode_address_fromMemory":{"entryPoint":892,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr_fromMemory":{"entryPoint":978,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":1241,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1269,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":1186,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":942,"id":null,"parameterSlots":3,"returnSlots":0},"panic_error_0x01":{"entryPoint":1219,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":920,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:3836:97","nodeType":"YulBlock","src":"0:3836:97","statements":[{"nativeSrc":"6:3:97","nodeType":"YulBlock","src":"6:3:97","statements":[]},{"body":{"nativeSrc":"74:117:97","nodeType":"YulBlock","src":"74:117:97","statements":[{"nativeSrc":"84:22:97","nodeType":"YulAssignment","src":"84:22:97","value":{"arguments":[{"name":"offset","nativeSrc":"99:6:97","nodeType":"YulIdentifier","src":"99:6:97"}],"functionName":{"name":"mload","nativeSrc":"93:5:97","nodeType":"YulIdentifier","src":"93:5:97"},"nativeSrc":"93:13:97","nodeType":"YulFunctionCall","src":"93:13:97"},"variableNames":[{"name":"value","nativeSrc":"84:5:97","nodeType":"YulIdentifier","src":"84:5:97"}]},{"body":{"nativeSrc":"169:16:97","nodeType":"YulBlock","src":"169:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"178:1:97","nodeType":"YulLiteral","src":"178:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"181:1:97","nodeType":"YulLiteral","src":"181:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"171:6:97","nodeType":"YulIdentifier","src":"171:6:97"},"nativeSrc":"171:12:97","nodeType":"YulFunctionCall","src":"171:12:97"},"nativeSrc":"171:12:97","nodeType":"YulExpressionStatement","src":"171:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"128:5:97","nodeType":"YulIdentifier","src":"128:5:97"},{"arguments":[{"name":"value","nativeSrc":"139:5:97","nodeType":"YulIdentifier","src":"139:5:97"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"154:3:97","nodeType":"YulLiteral","src":"154:3:97","type":"","value":"160"},{"kind":"number","nativeSrc":"159:1:97","nodeType":"YulLiteral","src":"159:1:97","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"150:3:97","nodeType":"YulIdentifier","src":"150:3:97"},"nativeSrc":"150:11:97","nodeType":"YulFunctionCall","src":"150:11:97"},{"kind":"number","nativeSrc":"163:1:97","nodeType":"YulLiteral","src":"163:1:97","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"146:3:97","nodeType":"YulIdentifier","src":"146:3:97"},"nativeSrc":"146:19:97","nodeType":"YulFunctionCall","src":"146:19:97"}],"functionName":{"name":"and","nativeSrc":"135:3:97","nodeType":"YulIdentifier","src":"135:3:97"},"nativeSrc":"135:31:97","nodeType":"YulFunctionCall","src":"135:31:97"}],"functionName":{"name":"eq","nativeSrc":"125:2:97","nodeType":"YulIdentifier","src":"125:2:97"},"nativeSrc":"125:42:97","nodeType":"YulFunctionCall","src":"125:42:97"}],"functionName":{"name":"iszero","nativeSrc":"118:6:97","nodeType":"YulIdentifier","src":"118:6:97"},"nativeSrc":"118:50:97","nodeType":"YulFunctionCall","src":"118:50:97"},"nativeSrc":"115:70:97","nodeType":"YulIf","src":"115:70:97"}]},"name":"abi_decode_address_fromMemory","nativeSrc":"14:177:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"53:6:97","nodeType":"YulTypedName","src":"53:6:97","type":""}],"returnVariables":[{"name":"value","nativeSrc":"64:5:97","nodeType":"YulTypedName","src":"64:5:97","type":""}],"src":"14:177:97"},{"body":{"nativeSrc":"228:95:97","nodeType":"YulBlock","src":"228:95:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"245:1:97","nodeType":"YulLiteral","src":"245:1:97","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"252:3:97","nodeType":"YulLiteral","src":"252:3:97","type":"","value":"224"},{"kind":"number","nativeSrc":"257:10:97","nodeType":"YulLiteral","src":"257:10:97","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"248:3:97","nodeType":"YulIdentifier","src":"248:3:97"},"nativeSrc":"248:20:97","nodeType":"YulFunctionCall","src":"248:20:97"}],"functionName":{"name":"mstore","nativeSrc":"238:6:97","nodeType":"YulIdentifier","src":"238:6:97"},"nativeSrc":"238:31:97","nodeType":"YulFunctionCall","src":"238:31:97"},"nativeSrc":"238:31:97","nodeType":"YulExpressionStatement","src":"238:31:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"285:1:97","nodeType":"YulLiteral","src":"285:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"288:4:97","nodeType":"YulLiteral","src":"288:4:97","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"278:6:97","nodeType":"YulIdentifier","src":"278:6:97"},"nativeSrc":"278:15:97","nodeType":"YulFunctionCall","src":"278:15:97"},"nativeSrc":"278:15:97","nodeType":"YulExpressionStatement","src":"278:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"309:1:97","nodeType":"YulLiteral","src":"309:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"312:4:97","nodeType":"YulLiteral","src":"312:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"302:6:97","nodeType":"YulIdentifier","src":"302:6:97"},"nativeSrc":"302:15:97","nodeType":"YulFunctionCall","src":"302:15:97"},"nativeSrc":"302:15:97","nodeType":"YulExpressionStatement","src":"302:15:97"}]},"name":"panic_error_0x41","nativeSrc":"196:127:97","nodeType":"YulFunctionDefinition","src":"196:127:97"},{"body":{"nativeSrc":"394:184:97","nodeType":"YulBlock","src":"394:184:97","statements":[{"nativeSrc":"404:10:97","nodeType":"YulVariableDeclaration","src":"404:10:97","value":{"kind":"number","nativeSrc":"413:1:97","nodeType":"YulLiteral","src":"413:1:97","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"408:1:97","nodeType":"YulTypedName","src":"408:1:97","type":""}]},{"body":{"nativeSrc":"473:63:97","nodeType":"YulBlock","src":"473:63:97","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"498:3:97","nodeType":"YulIdentifier","src":"498:3:97"},{"name":"i","nativeSrc":"503:1:97","nodeType":"YulIdentifier","src":"503:1:97"}],"functionName":{"name":"add","nativeSrc":"494:3:97","nodeType":"YulIdentifier","src":"494:3:97"},"nativeSrc":"494:11:97","nodeType":"YulFunctionCall","src":"494:11:97"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"517:3:97","nodeType":"YulIdentifier","src":"517:3:97"},{"name":"i","nativeSrc":"522:1:97","nodeType":"YulIdentifier","src":"522:1:97"}],"functionName":{"name":"add","nativeSrc":"513:3:97","nodeType":"YulIdentifier","src":"513:3:97"},"nativeSrc":"513:11:97","nodeType":"YulFunctionCall","src":"513:11:97"}],"functionName":{"name":"mload","nativeSrc":"507:5:97","nodeType":"YulIdentifier","src":"507:5:97"},"nativeSrc":"507:18:97","nodeType":"YulFunctionCall","src":"507:18:97"}],"functionName":{"name":"mstore","nativeSrc":"487:6:97","nodeType":"YulIdentifier","src":"487:6:97"},"nativeSrc":"487:39:97","nodeType":"YulFunctionCall","src":"487:39:97"},"nativeSrc":"487:39:97","nodeType":"YulExpressionStatement","src":"487:39:97"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"434:1:97","nodeType":"YulIdentifier","src":"434:1:97"},{"name":"length","nativeSrc":"437:6:97","nodeType":"YulIdentifier","src":"437:6:97"}],"functionName":{"name":"lt","nativeSrc":"431:2:97","nodeType":"YulIdentifier","src":"431:2:97"},"nativeSrc":"431:13:97","nodeType":"YulFunctionCall","src":"431:13:97"},"nativeSrc":"423:113:97","nodeType":"YulForLoop","post":{"nativeSrc":"445:19:97","nodeType":"YulBlock","src":"445:19:97","statements":[{"nativeSrc":"447:15:97","nodeType":"YulAssignment","src":"447:15:97","value":{"arguments":[{"name":"i","nativeSrc":"456:1:97","nodeType":"YulIdentifier","src":"456:1:97"},{"kind":"number","nativeSrc":"459:2:97","nodeType":"YulLiteral","src":"459:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"452:3:97","nodeType":"YulIdentifier","src":"452:3:97"},"nativeSrc":"452:10:97","nodeType":"YulFunctionCall","src":"452:10:97"},"variableNames":[{"name":"i","nativeSrc":"447:1:97","nodeType":"YulIdentifier","src":"447:1:97"}]}]},"pre":{"nativeSrc":"427:3:97","nodeType":"YulBlock","src":"427:3:97","statements":[]},"src":"423:113:97"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"556:3:97","nodeType":"YulIdentifier","src":"556:3:97"},{"name":"length","nativeSrc":"561:6:97","nodeType":"YulIdentifier","src":"561:6:97"}],"functionName":{"name":"add","nativeSrc":"552:3:97","nodeType":"YulIdentifier","src":"552:3:97"},"nativeSrc":"552:16:97","nodeType":"YulFunctionCall","src":"552:16:97"},{"kind":"number","nativeSrc":"570:1:97","nodeType":"YulLiteral","src":"570:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"545:6:97","nodeType":"YulIdentifier","src":"545:6:97"},"nativeSrc":"545:27:97","nodeType":"YulFunctionCall","src":"545:27:97"},"nativeSrc":"545:27:97","nodeType":"YulExpressionStatement","src":"545:27:97"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"328:250:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"372:3:97","nodeType":"YulTypedName","src":"372:3:97","type":""},{"name":"dst","nativeSrc":"377:3:97","nodeType":"YulTypedName","src":"377:3:97","type":""},{"name":"length","nativeSrc":"382:6:97","nodeType":"YulTypedName","src":"382:6:97","type":""}],"src":"328:250:97"},{"body":{"nativeSrc":"707:942:97","nodeType":"YulBlock","src":"707:942:97","statements":[{"body":{"nativeSrc":"753:16:97","nodeType":"YulBlock","src":"753:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"762:1:97","nodeType":"YulLiteral","src":"762:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"765:1:97","nodeType":"YulLiteral","src":"765:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"755:6:97","nodeType":"YulIdentifier","src":"755:6:97"},"nativeSrc":"755:12:97","nodeType":"YulFunctionCall","src":"755:12:97"},"nativeSrc":"755:12:97","nodeType":"YulExpressionStatement","src":"755:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"728:7:97","nodeType":"YulIdentifier","src":"728:7:97"},{"name":"headStart","nativeSrc":"737:9:97","nodeType":"YulIdentifier","src":"737:9:97"}],"functionName":{"name":"sub","nativeSrc":"724:3:97","nodeType":"YulIdentifier","src":"724:3:97"},"nativeSrc":"724:23:97","nodeType":"YulFunctionCall","src":"724:23:97"},{"kind":"number","nativeSrc":"749:2:97","nodeType":"YulLiteral","src":"749:2:97","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"720:3:97","nodeType":"YulIdentifier","src":"720:3:97"},"nativeSrc":"720:32:97","nodeType":"YulFunctionCall","src":"720:32:97"},"nativeSrc":"717:52:97","nodeType":"YulIf","src":"717:52:97"},{"nativeSrc":"778:50:97","nodeType":"YulAssignment","src":"778:50:97","value":{"arguments":[{"name":"headStart","nativeSrc":"818:9:97","nodeType":"YulIdentifier","src":"818:9:97"}],"functionName":{"name":"abi_decode_address_fromMemory","nativeSrc":"788:29:97","nodeType":"YulIdentifier","src":"788:29:97"},"nativeSrc":"788:40:97","nodeType":"YulFunctionCall","src":"788:40:97"},"variableNames":[{"name":"value0","nativeSrc":"778:6:97","nodeType":"YulIdentifier","src":"778:6:97"}]},{"nativeSrc":"837:59:97","nodeType":"YulAssignment","src":"837:59:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"881:9:97","nodeType":"YulIdentifier","src":"881:9:97"},{"kind":"number","nativeSrc":"892:2:97","nodeType":"YulLiteral","src":"892:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"877:3:97","nodeType":"YulIdentifier","src":"877:3:97"},"nativeSrc":"877:18:97","nodeType":"YulFunctionCall","src":"877:18:97"}],"functionName":{"name":"abi_decode_address_fromMemory","nativeSrc":"847:29:97","nodeType":"YulIdentifier","src":"847:29:97"},"nativeSrc":"847:49:97","nodeType":"YulFunctionCall","src":"847:49:97"},"variableNames":[{"name":"value1","nativeSrc":"837:6:97","nodeType":"YulIdentifier","src":"837:6:97"}]},{"nativeSrc":"905:39:97","nodeType":"YulVariableDeclaration","src":"905:39:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"929:9:97","nodeType":"YulIdentifier","src":"929:9:97"},{"kind":"number","nativeSrc":"940:2:97","nodeType":"YulLiteral","src":"940:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"925:3:97","nodeType":"YulIdentifier","src":"925:3:97"},"nativeSrc":"925:18:97","nodeType":"YulFunctionCall","src":"925:18:97"}],"functionName":{"name":"mload","nativeSrc":"919:5:97","nodeType":"YulIdentifier","src":"919:5:97"},"nativeSrc":"919:25:97","nodeType":"YulFunctionCall","src":"919:25:97"},"variables":[{"name":"offset","nativeSrc":"909:6:97","nodeType":"YulTypedName","src":"909:6:97","type":""}]},{"nativeSrc":"953:28:97","nodeType":"YulVariableDeclaration","src":"953:28:97","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"971:2:97","nodeType":"YulLiteral","src":"971:2:97","type":"","value":"64"},{"kind":"number","nativeSrc":"975:1:97","nodeType":"YulLiteral","src":"975:1:97","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"967:3:97","nodeType":"YulIdentifier","src":"967:3:97"},"nativeSrc":"967:10:97","nodeType":"YulFunctionCall","src":"967:10:97"},{"kind":"number","nativeSrc":"979:1:97","nodeType":"YulLiteral","src":"979:1:97","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"963:3:97","nodeType":"YulIdentifier","src":"963:3:97"},"nativeSrc":"963:18:97","nodeType":"YulFunctionCall","src":"963:18:97"},"variables":[{"name":"_1","nativeSrc":"957:2:97","nodeType":"YulTypedName","src":"957:2:97","type":""}]},{"body":{"nativeSrc":"1008:16:97","nodeType":"YulBlock","src":"1008:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1017:1:97","nodeType":"YulLiteral","src":"1017:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1020:1:97","nodeType":"YulLiteral","src":"1020:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1010:6:97","nodeType":"YulIdentifier","src":"1010:6:97"},"nativeSrc":"1010:12:97","nodeType":"YulFunctionCall","src":"1010:12:97"},"nativeSrc":"1010:12:97","nodeType":"YulExpressionStatement","src":"1010:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"996:6:97","nodeType":"YulIdentifier","src":"996:6:97"},{"name":"_1","nativeSrc":"1004:2:97","nodeType":"YulIdentifier","src":"1004:2:97"}],"functionName":{"name":"gt","nativeSrc":"993:2:97","nodeType":"YulIdentifier","src":"993:2:97"},"nativeSrc":"993:14:97","nodeType":"YulFunctionCall","src":"993:14:97"},"nativeSrc":"990:34:97","nodeType":"YulIf","src":"990:34:97"},{"nativeSrc":"1033:32:97","nodeType":"YulVariableDeclaration","src":"1033:32:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1047:9:97","nodeType":"YulIdentifier","src":"1047:9:97"},{"name":"offset","nativeSrc":"1058:6:97","nodeType":"YulIdentifier","src":"1058:6:97"}],"functionName":{"name":"add","nativeSrc":"1043:3:97","nodeType":"YulIdentifier","src":"1043:3:97"},"nativeSrc":"1043:22:97","nodeType":"YulFunctionCall","src":"1043:22:97"},"variables":[{"name":"_2","nativeSrc":"1037:2:97","nodeType":"YulTypedName","src":"1037:2:97","type":""}]},{"body":{"nativeSrc":"1113:16:97","nodeType":"YulBlock","src":"1113:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1122:1:97","nodeType":"YulLiteral","src":"1122:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1125:1:97","nodeType":"YulLiteral","src":"1125:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1115:6:97","nodeType":"YulIdentifier","src":"1115:6:97"},"nativeSrc":"1115:12:97","nodeType":"YulFunctionCall","src":"1115:12:97"},"nativeSrc":"1115:12:97","nodeType":"YulExpressionStatement","src":"1115:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"1092:2:97","nodeType":"YulIdentifier","src":"1092:2:97"},{"kind":"number","nativeSrc":"1096:4:97","nodeType":"YulLiteral","src":"1096:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"1088:3:97","nodeType":"YulIdentifier","src":"1088:3:97"},"nativeSrc":"1088:13:97","nodeType":"YulFunctionCall","src":"1088:13:97"},{"name":"dataEnd","nativeSrc":"1103:7:97","nodeType":"YulIdentifier","src":"1103:7:97"}],"functionName":{"name":"slt","nativeSrc":"1084:3:97","nodeType":"YulIdentifier","src":"1084:3:97"},"nativeSrc":"1084:27:97","nodeType":"YulFunctionCall","src":"1084:27:97"}],"functionName":{"name":"iszero","nativeSrc":"1077:6:97","nodeType":"YulIdentifier","src":"1077:6:97"},"nativeSrc":"1077:35:97","nodeType":"YulFunctionCall","src":"1077:35:97"},"nativeSrc":"1074:55:97","nodeType":"YulIf","src":"1074:55:97"},{"nativeSrc":"1138:19:97","nodeType":"YulVariableDeclaration","src":"1138:19:97","value":{"arguments":[{"name":"_2","nativeSrc":"1154:2:97","nodeType":"YulIdentifier","src":"1154:2:97"}],"functionName":{"name":"mload","nativeSrc":"1148:5:97","nodeType":"YulIdentifier","src":"1148:5:97"},"nativeSrc":"1148:9:97","nodeType":"YulFunctionCall","src":"1148:9:97"},"variables":[{"name":"_3","nativeSrc":"1142:2:97","nodeType":"YulTypedName","src":"1142:2:97","type":""}]},{"body":{"nativeSrc":"1180:22:97","nodeType":"YulBlock","src":"1180:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1182:16:97","nodeType":"YulIdentifier","src":"1182:16:97"},"nativeSrc":"1182:18:97","nodeType":"YulFunctionCall","src":"1182:18:97"},"nativeSrc":"1182:18:97","nodeType":"YulExpressionStatement","src":"1182:18:97"}]},"condition":{"arguments":[{"name":"_3","nativeSrc":"1172:2:97","nodeType":"YulIdentifier","src":"1172:2:97"},{"name":"_1","nativeSrc":"1176:2:97","nodeType":"YulIdentifier","src":"1176:2:97"}],"functionName":{"name":"gt","nativeSrc":"1169:2:97","nodeType":"YulIdentifier","src":"1169:2:97"},"nativeSrc":"1169:10:97","nodeType":"YulFunctionCall","src":"1169:10:97"},"nativeSrc":"1166:36:97","nodeType":"YulIf","src":"1166:36:97"},{"nativeSrc":"1211:17:97","nodeType":"YulVariableDeclaration","src":"1211:17:97","value":{"arguments":[{"kind":"number","nativeSrc":"1225:2:97","nodeType":"YulLiteral","src":"1225:2:97","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"1221:3:97","nodeType":"YulIdentifier","src":"1221:3:97"},"nativeSrc":"1221:7:97","nodeType":"YulFunctionCall","src":"1221:7:97"},"variables":[{"name":"_4","nativeSrc":"1215:2:97","nodeType":"YulTypedName","src":"1215:2:97","type":""}]},{"nativeSrc":"1237:23:97","nodeType":"YulVariableDeclaration","src":"1237:23:97","value":{"arguments":[{"kind":"number","nativeSrc":"1257:2:97","nodeType":"YulLiteral","src":"1257:2:97","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1251:5:97","nodeType":"YulIdentifier","src":"1251:5:97"},"nativeSrc":"1251:9:97","nodeType":"YulFunctionCall","src":"1251:9:97"},"variables":[{"name":"memPtr","nativeSrc":"1241:6:97","nodeType":"YulTypedName","src":"1241:6:97","type":""}]},{"nativeSrc":"1269:71:97","nodeType":"YulVariableDeclaration","src":"1269:71:97","value":{"arguments":[{"name":"memPtr","nativeSrc":"1291:6:97","nodeType":"YulIdentifier","src":"1291:6:97"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nativeSrc":"1315:2:97","nodeType":"YulIdentifier","src":"1315:2:97"},{"kind":"number","nativeSrc":"1319:4:97","nodeType":"YulLiteral","src":"1319:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"1311:3:97","nodeType":"YulIdentifier","src":"1311:3:97"},"nativeSrc":"1311:13:97","nodeType":"YulFunctionCall","src":"1311:13:97"},{"name":"_4","nativeSrc":"1326:2:97","nodeType":"YulIdentifier","src":"1326:2:97"}],"functionName":{"name":"and","nativeSrc":"1307:3:97","nodeType":"YulIdentifier","src":"1307:3:97"},"nativeSrc":"1307:22:97","nodeType":"YulFunctionCall","src":"1307:22:97"},{"kind":"number","nativeSrc":"1331:2:97","nodeType":"YulLiteral","src":"1331:2:97","type":"","value":"63"}],"functionName":{"name":"add","nativeSrc":"1303:3:97","nodeType":"YulIdentifier","src":"1303:3:97"},"nativeSrc":"1303:31:97","nodeType":"YulFunctionCall","src":"1303:31:97"},{"name":"_4","nativeSrc":"1336:2:97","nodeType":"YulIdentifier","src":"1336:2:97"}],"functionName":{"name":"and","nativeSrc":"1299:3:97","nodeType":"YulIdentifier","src":"1299:3:97"},"nativeSrc":"1299:40:97","nodeType":"YulFunctionCall","src":"1299:40:97"}],"functionName":{"name":"add","nativeSrc":"1287:3:97","nodeType":"YulIdentifier","src":"1287:3:97"},"nativeSrc":"1287:53:97","nodeType":"YulFunctionCall","src":"1287:53:97"},"variables":[{"name":"newFreePtr","nativeSrc":"1273:10:97","nodeType":"YulTypedName","src":"1273:10:97","type":""}]},{"body":{"nativeSrc":"1399:22:97","nodeType":"YulBlock","src":"1399:22:97","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1401:16:97","nodeType":"YulIdentifier","src":"1401:16:97"},"nativeSrc":"1401:18:97","nodeType":"YulFunctionCall","src":"1401:18:97"},"nativeSrc":"1401:18:97","nodeType":"YulExpressionStatement","src":"1401:18:97"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1358:10:97","nodeType":"YulIdentifier","src":"1358:10:97"},{"name":"_1","nativeSrc":"1370:2:97","nodeType":"YulIdentifier","src":"1370:2:97"}],"functionName":{"name":"gt","nativeSrc":"1355:2:97","nodeType":"YulIdentifier","src":"1355:2:97"},"nativeSrc":"1355:18:97","nodeType":"YulFunctionCall","src":"1355:18:97"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1378:10:97","nodeType":"YulIdentifier","src":"1378:10:97"},{"name":"memPtr","nativeSrc":"1390:6:97","nodeType":"YulIdentifier","src":"1390:6:97"}],"functionName":{"name":"lt","nativeSrc":"1375:2:97","nodeType":"YulIdentifier","src":"1375:2:97"},"nativeSrc":"1375:22:97","nodeType":"YulFunctionCall","src":"1375:22:97"}],"functionName":{"name":"or","nativeSrc":"1352:2:97","nodeType":"YulIdentifier","src":"1352:2:97"},"nativeSrc":"1352:46:97","nodeType":"YulFunctionCall","src":"1352:46:97"},"nativeSrc":"1349:72:97","nodeType":"YulIf","src":"1349:72:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1437:2:97","nodeType":"YulLiteral","src":"1437:2:97","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1441:10:97","nodeType":"YulIdentifier","src":"1441:10:97"}],"functionName":{"name":"mstore","nativeSrc":"1430:6:97","nodeType":"YulIdentifier","src":"1430:6:97"},"nativeSrc":"1430:22:97","nodeType":"YulFunctionCall","src":"1430:22:97"},"nativeSrc":"1430:22:97","nodeType":"YulExpressionStatement","src":"1430:22:97"},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"1468:6:97","nodeType":"YulIdentifier","src":"1468:6:97"},{"name":"_3","nativeSrc":"1476:2:97","nodeType":"YulIdentifier","src":"1476:2:97"}],"functionName":{"name":"mstore","nativeSrc":"1461:6:97","nodeType":"YulIdentifier","src":"1461:6:97"},"nativeSrc":"1461:18:97","nodeType":"YulFunctionCall","src":"1461:18:97"},"nativeSrc":"1461:18:97","nodeType":"YulExpressionStatement","src":"1461:18:97"},{"body":{"nativeSrc":"1525:16:97","nodeType":"YulBlock","src":"1525:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1534:1:97","nodeType":"YulLiteral","src":"1534:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1537:1:97","nodeType":"YulLiteral","src":"1537:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1527:6:97","nodeType":"YulIdentifier","src":"1527:6:97"},"nativeSrc":"1527:12:97","nodeType":"YulFunctionCall","src":"1527:12:97"},"nativeSrc":"1527:12:97","nodeType":"YulExpressionStatement","src":"1527:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"1502:2:97","nodeType":"YulIdentifier","src":"1502:2:97"},{"name":"_3","nativeSrc":"1506:2:97","nodeType":"YulIdentifier","src":"1506:2:97"}],"functionName":{"name":"add","nativeSrc":"1498:3:97","nodeType":"YulIdentifier","src":"1498:3:97"},"nativeSrc":"1498:11:97","nodeType":"YulFunctionCall","src":"1498:11:97"},{"kind":"number","nativeSrc":"1511:2:97","nodeType":"YulLiteral","src":"1511:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1494:3:97","nodeType":"YulIdentifier","src":"1494:3:97"},"nativeSrc":"1494:20:97","nodeType":"YulFunctionCall","src":"1494:20:97"},{"name":"dataEnd","nativeSrc":"1516:7:97","nodeType":"YulIdentifier","src":"1516:7:97"}],"functionName":{"name":"gt","nativeSrc":"1491:2:97","nodeType":"YulIdentifier","src":"1491:2:97"},"nativeSrc":"1491:33:97","nodeType":"YulFunctionCall","src":"1491:33:97"},"nativeSrc":"1488:53:97","nodeType":"YulIf","src":"1488:53:97"},{"expression":{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"1589:2:97","nodeType":"YulIdentifier","src":"1589:2:97"},{"kind":"number","nativeSrc":"1593:2:97","nodeType":"YulLiteral","src":"1593:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1585:3:97","nodeType":"YulIdentifier","src":"1585:3:97"},"nativeSrc":"1585:11:97","nodeType":"YulFunctionCall","src":"1585:11:97"},{"arguments":[{"name":"memPtr","nativeSrc":"1602:6:97","nodeType":"YulIdentifier","src":"1602:6:97"},{"kind":"number","nativeSrc":"1610:2:97","nodeType":"YulLiteral","src":"1610:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1598:3:97","nodeType":"YulIdentifier","src":"1598:3:97"},"nativeSrc":"1598:15:97","nodeType":"YulFunctionCall","src":"1598:15:97"},{"name":"_3","nativeSrc":"1615:2:97","nodeType":"YulIdentifier","src":"1615:2:97"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"1550:34:97","nodeType":"YulIdentifier","src":"1550:34:97"},"nativeSrc":"1550:68:97","nodeType":"YulFunctionCall","src":"1550:68:97"},"nativeSrc":"1550:68:97","nodeType":"YulExpressionStatement","src":"1550:68:97"},{"nativeSrc":"1627:16:97","nodeType":"YulAssignment","src":"1627:16:97","value":{"name":"memPtr","nativeSrc":"1637:6:97","nodeType":"YulIdentifier","src":"1637:6:97"},"variableNames":[{"name":"value2","nativeSrc":"1627:6:97","nodeType":"YulIdentifier","src":"1627:6:97"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr_fromMemory","nativeSrc":"583:1066:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"657:9:97","nodeType":"YulTypedName","src":"657:9:97","type":""},{"name":"dataEnd","nativeSrc":"668:7:97","nodeType":"YulTypedName","src":"668:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"680:6:97","nodeType":"YulTypedName","src":"680:6:97","type":""},{"name":"value1","nativeSrc":"688:6:97","nodeType":"YulTypedName","src":"688:6:97","type":""},{"name":"value2","nativeSrc":"696:6:97","nodeType":"YulTypedName","src":"696:6:97","type":""}],"src":"583:1066:97"},{"body":{"nativeSrc":"1703:176:97","nodeType":"YulBlock","src":"1703:176:97","statements":[{"nativeSrc":"1713:17:97","nodeType":"YulAssignment","src":"1713:17:97","value":{"arguments":[{"name":"x","nativeSrc":"1725:1:97","nodeType":"YulIdentifier","src":"1725:1:97"},{"name":"y","nativeSrc":"1728:1:97","nodeType":"YulIdentifier","src":"1728:1:97"}],"functionName":{"name":"sub","nativeSrc":"1721:3:97","nodeType":"YulIdentifier","src":"1721:3:97"},"nativeSrc":"1721:9:97","nodeType":"YulFunctionCall","src":"1721:9:97"},"variableNames":[{"name":"diff","nativeSrc":"1713:4:97","nodeType":"YulIdentifier","src":"1713:4:97"}]},{"body":{"nativeSrc":"1762:111:97","nodeType":"YulBlock","src":"1762:111:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1783:1:97","nodeType":"YulLiteral","src":"1783:1:97","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"1790:3:97","nodeType":"YulLiteral","src":"1790:3:97","type":"","value":"224"},{"kind":"number","nativeSrc":"1795:10:97","nodeType":"YulLiteral","src":"1795:10:97","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"1786:3:97","nodeType":"YulIdentifier","src":"1786:3:97"},"nativeSrc":"1786:20:97","nodeType":"YulFunctionCall","src":"1786:20:97"}],"functionName":{"name":"mstore","nativeSrc":"1776:6:97","nodeType":"YulIdentifier","src":"1776:6:97"},"nativeSrc":"1776:31:97","nodeType":"YulFunctionCall","src":"1776:31:97"},"nativeSrc":"1776:31:97","nodeType":"YulExpressionStatement","src":"1776:31:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1827:1:97","nodeType":"YulLiteral","src":"1827:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"1830:4:97","nodeType":"YulLiteral","src":"1830:4:97","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"1820:6:97","nodeType":"YulIdentifier","src":"1820:6:97"},"nativeSrc":"1820:15:97","nodeType":"YulFunctionCall","src":"1820:15:97"},"nativeSrc":"1820:15:97","nodeType":"YulExpressionStatement","src":"1820:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1855:1:97","nodeType":"YulLiteral","src":"1855:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1858:4:97","nodeType":"YulLiteral","src":"1858:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1848:6:97","nodeType":"YulIdentifier","src":"1848:6:97"},"nativeSrc":"1848:15:97","nodeType":"YulFunctionCall","src":"1848:15:97"},"nativeSrc":"1848:15:97","nodeType":"YulExpressionStatement","src":"1848:15:97"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"1745:4:97","nodeType":"YulIdentifier","src":"1745:4:97"},{"name":"x","nativeSrc":"1751:1:97","nodeType":"YulIdentifier","src":"1751:1:97"}],"functionName":{"name":"gt","nativeSrc":"1742:2:97","nodeType":"YulIdentifier","src":"1742:2:97"},"nativeSrc":"1742:11:97","nodeType":"YulFunctionCall","src":"1742:11:97"},"nativeSrc":"1739:134:97","nodeType":"YulIf","src":"1739:134:97"}]},"name":"checked_sub_t_uint256","nativeSrc":"1654:225:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"1685:1:97","nodeType":"YulTypedName","src":"1685:1:97","type":""},{"name":"y","nativeSrc":"1688:1:97","nodeType":"YulTypedName","src":"1688:1:97","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"1694:4:97","nodeType":"YulTypedName","src":"1694:4:97","type":""}],"src":"1654:225:97"},{"body":{"nativeSrc":"1916:95:97","nodeType":"YulBlock","src":"1916:95:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1933:1:97","nodeType":"YulLiteral","src":"1933:1:97","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"1940:3:97","nodeType":"YulLiteral","src":"1940:3:97","type":"","value":"224"},{"kind":"number","nativeSrc":"1945:10:97","nodeType":"YulLiteral","src":"1945:10:97","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"1936:3:97","nodeType":"YulIdentifier","src":"1936:3:97"},"nativeSrc":"1936:20:97","nodeType":"YulFunctionCall","src":"1936:20:97"}],"functionName":{"name":"mstore","nativeSrc":"1926:6:97","nodeType":"YulIdentifier","src":"1926:6:97"},"nativeSrc":"1926:31:97","nodeType":"YulFunctionCall","src":"1926:31:97"},"nativeSrc":"1926:31:97","nodeType":"YulExpressionStatement","src":"1926:31:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1973:1:97","nodeType":"YulLiteral","src":"1973:1:97","type":"","value":"4"},{"kind":"number","nativeSrc":"1976:4:97","nodeType":"YulLiteral","src":"1976:4:97","type":"","value":"0x01"}],"functionName":{"name":"mstore","nativeSrc":"1966:6:97","nodeType":"YulIdentifier","src":"1966:6:97"},"nativeSrc":"1966:15:97","nodeType":"YulFunctionCall","src":"1966:15:97"},"nativeSrc":"1966:15:97","nodeType":"YulExpressionStatement","src":"1966:15:97"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1997:1:97","nodeType":"YulLiteral","src":"1997:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"2000:4:97","nodeType":"YulLiteral","src":"2000:4:97","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1990:6:97","nodeType":"YulIdentifier","src":"1990:6:97"},"nativeSrc":"1990:15:97","nodeType":"YulFunctionCall","src":"1990:15:97"},"nativeSrc":"1990:15:97","nodeType":"YulExpressionStatement","src":"1990:15:97"}]},"name":"panic_error_0x01","nativeSrc":"1884:127:97","nodeType":"YulFunctionDefinition","src":"1884:127:97"},{"body":{"nativeSrc":"2145:175:97","nodeType":"YulBlock","src":"2145:175:97","statements":[{"nativeSrc":"2155:26:97","nodeType":"YulAssignment","src":"2155:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2167:9:97","nodeType":"YulIdentifier","src":"2167:9:97"},{"kind":"number","nativeSrc":"2178:2:97","nodeType":"YulLiteral","src":"2178:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2163:3:97","nodeType":"YulIdentifier","src":"2163:3:97"},"nativeSrc":"2163:18:97","nodeType":"YulFunctionCall","src":"2163:18:97"},"variableNames":[{"name":"tail","nativeSrc":"2155:4:97","nodeType":"YulIdentifier","src":"2155:4:97"}]},{"nativeSrc":"2190:29:97","nodeType":"YulVariableDeclaration","src":"2190:29:97","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2208:3:97","nodeType":"YulLiteral","src":"2208:3:97","type":"","value":"160"},{"kind":"number","nativeSrc":"2213:1:97","nodeType":"YulLiteral","src":"2213:1:97","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"2204:3:97","nodeType":"YulIdentifier","src":"2204:3:97"},"nativeSrc":"2204:11:97","nodeType":"YulFunctionCall","src":"2204:11:97"},{"kind":"number","nativeSrc":"2217:1:97","nodeType":"YulLiteral","src":"2217:1:97","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"2200:3:97","nodeType":"YulIdentifier","src":"2200:3:97"},"nativeSrc":"2200:19:97","nodeType":"YulFunctionCall","src":"2200:19:97"},"variables":[{"name":"_1","nativeSrc":"2194:2:97","nodeType":"YulTypedName","src":"2194:2:97","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2235:9:97","nodeType":"YulIdentifier","src":"2235:9:97"},{"arguments":[{"name":"value0","nativeSrc":"2250:6:97","nodeType":"YulIdentifier","src":"2250:6:97"},{"name":"_1","nativeSrc":"2258:2:97","nodeType":"YulIdentifier","src":"2258:2:97"}],"functionName":{"name":"and","nativeSrc":"2246:3:97","nodeType":"YulIdentifier","src":"2246:3:97"},"nativeSrc":"2246:15:97","nodeType":"YulFunctionCall","src":"2246:15:97"}],"functionName":{"name":"mstore","nativeSrc":"2228:6:97","nodeType":"YulIdentifier","src":"2228:6:97"},"nativeSrc":"2228:34:97","nodeType":"YulFunctionCall","src":"2228:34:97"},"nativeSrc":"2228:34:97","nodeType":"YulExpressionStatement","src":"2228:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2282:9:97","nodeType":"YulIdentifier","src":"2282:9:97"},{"kind":"number","nativeSrc":"2293:2:97","nodeType":"YulLiteral","src":"2293:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2278:3:97","nodeType":"YulIdentifier","src":"2278:3:97"},"nativeSrc":"2278:18:97","nodeType":"YulFunctionCall","src":"2278:18:97"},{"arguments":[{"name":"value1","nativeSrc":"2302:6:97","nodeType":"YulIdentifier","src":"2302:6:97"},{"name":"_1","nativeSrc":"2310:2:97","nodeType":"YulIdentifier","src":"2310:2:97"}],"functionName":{"name":"and","nativeSrc":"2298:3:97","nodeType":"YulIdentifier","src":"2298:3:97"},"nativeSrc":"2298:15:97","nodeType":"YulFunctionCall","src":"2298:15:97"}],"functionName":{"name":"mstore","nativeSrc":"2271:6:97","nodeType":"YulIdentifier","src":"2271:6:97"},"nativeSrc":"2271:43:97","nodeType":"YulFunctionCall","src":"2271:43:97"},"nativeSrc":"2271:43:97","nodeType":"YulExpressionStatement","src":"2271:43:97"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"2016:304:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2106:9:97","nodeType":"YulTypedName","src":"2106:9:97","type":""},{"name":"value1","nativeSrc":"2117:6:97","nodeType":"YulTypedName","src":"2117:6:97","type":""},{"name":"value0","nativeSrc":"2125:6:97","nodeType":"YulTypedName","src":"2125:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2136:4:97","nodeType":"YulTypedName","src":"2136:4:97","type":""}],"src":"2016:304:97"},{"body":{"nativeSrc":"2499:235:97","nodeType":"YulBlock","src":"2499:235:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2516:9:97","nodeType":"YulIdentifier","src":"2516:9:97"},{"kind":"number","nativeSrc":"2527:2:97","nodeType":"YulLiteral","src":"2527:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"2509:6:97","nodeType":"YulIdentifier","src":"2509:6:97"},"nativeSrc":"2509:21:97","nodeType":"YulFunctionCall","src":"2509:21:97"},"nativeSrc":"2509:21:97","nodeType":"YulExpressionStatement","src":"2509:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2550:9:97","nodeType":"YulIdentifier","src":"2550:9:97"},{"kind":"number","nativeSrc":"2561:2:97","nodeType":"YulLiteral","src":"2561:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2546:3:97","nodeType":"YulIdentifier","src":"2546:3:97"},"nativeSrc":"2546:18:97","nodeType":"YulFunctionCall","src":"2546:18:97"},{"kind":"number","nativeSrc":"2566:2:97","nodeType":"YulLiteral","src":"2566:2:97","type":"","value":"45"}],"functionName":{"name":"mstore","nativeSrc":"2539:6:97","nodeType":"YulIdentifier","src":"2539:6:97"},"nativeSrc":"2539:30:97","nodeType":"YulFunctionCall","src":"2539:30:97"},"nativeSrc":"2539:30:97","nodeType":"YulExpressionStatement","src":"2539:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2589:9:97","nodeType":"YulIdentifier","src":"2589:9:97"},{"kind":"number","nativeSrc":"2600:2:97","nodeType":"YulLiteral","src":"2600:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2585:3:97","nodeType":"YulIdentifier","src":"2585:3:97"},"nativeSrc":"2585:18:97","nodeType":"YulFunctionCall","src":"2585:18:97"},{"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e","kind":"string","nativeSrc":"2605:34:97","nodeType":"YulLiteral","src":"2605:34:97","type":"","value":"ERC1967: new implementation is n"}],"functionName":{"name":"mstore","nativeSrc":"2578:6:97","nodeType":"YulIdentifier","src":"2578:6:97"},"nativeSrc":"2578:62:97","nodeType":"YulFunctionCall","src":"2578:62:97"},"nativeSrc":"2578:62:97","nodeType":"YulExpressionStatement","src":"2578:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2660:9:97","nodeType":"YulIdentifier","src":"2660:9:97"},{"kind":"number","nativeSrc":"2671:2:97","nodeType":"YulLiteral","src":"2671:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2656:3:97","nodeType":"YulIdentifier","src":"2656:3:97"},"nativeSrc":"2656:18:97","nodeType":"YulFunctionCall","src":"2656:18:97"},{"hexValue":"6f74206120636f6e7472616374","kind":"string","nativeSrc":"2676:15:97","nodeType":"YulLiteral","src":"2676:15:97","type":"","value":"ot a contract"}],"functionName":{"name":"mstore","nativeSrc":"2649:6:97","nodeType":"YulIdentifier","src":"2649:6:97"},"nativeSrc":"2649:43:97","nodeType":"YulFunctionCall","src":"2649:43:97"},"nativeSrc":"2649:43:97","nodeType":"YulExpressionStatement","src":"2649:43:97"},{"nativeSrc":"2701:27:97","nodeType":"YulAssignment","src":"2701:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2713:9:97","nodeType":"YulIdentifier","src":"2713:9:97"},{"kind":"number","nativeSrc":"2724:3:97","nodeType":"YulLiteral","src":"2724:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"2709:3:97","nodeType":"YulIdentifier","src":"2709:3:97"},"nativeSrc":"2709:19:97","nodeType":"YulFunctionCall","src":"2709:19:97"},"variableNames":[{"name":"tail","nativeSrc":"2701:4:97","nodeType":"YulIdentifier","src":"2701:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2325:409:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2476:9:97","nodeType":"YulTypedName","src":"2476:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2490:4:97","nodeType":"YulTypedName","src":"2490:4:97","type":""}],"src":"2325:409:97"},{"body":{"nativeSrc":"2913:228:97","nodeType":"YulBlock","src":"2913:228:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2930:9:97","nodeType":"YulIdentifier","src":"2930:9:97"},{"kind":"number","nativeSrc":"2941:2:97","nodeType":"YulLiteral","src":"2941:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"2923:6:97","nodeType":"YulIdentifier","src":"2923:6:97"},"nativeSrc":"2923:21:97","nodeType":"YulFunctionCall","src":"2923:21:97"},"nativeSrc":"2923:21:97","nodeType":"YulExpressionStatement","src":"2923:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2964:9:97","nodeType":"YulIdentifier","src":"2964:9:97"},{"kind":"number","nativeSrc":"2975:2:97","nodeType":"YulLiteral","src":"2975:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2960:3:97","nodeType":"YulIdentifier","src":"2960:3:97"},"nativeSrc":"2960:18:97","nodeType":"YulFunctionCall","src":"2960:18:97"},{"kind":"number","nativeSrc":"2980:2:97","nodeType":"YulLiteral","src":"2980:2:97","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"2953:6:97","nodeType":"YulIdentifier","src":"2953:6:97"},"nativeSrc":"2953:30:97","nodeType":"YulFunctionCall","src":"2953:30:97"},"nativeSrc":"2953:30:97","nodeType":"YulExpressionStatement","src":"2953:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3003:9:97","nodeType":"YulIdentifier","src":"3003:9:97"},{"kind":"number","nativeSrc":"3014:2:97","nodeType":"YulLiteral","src":"3014:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2999:3:97","nodeType":"YulIdentifier","src":"2999:3:97"},"nativeSrc":"2999:18:97","nodeType":"YulFunctionCall","src":"2999:18:97"},{"hexValue":"416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f","kind":"string","nativeSrc":"3019:34:97","nodeType":"YulLiteral","src":"3019:34:97","type":"","value":"Address: delegate call to non-co"}],"functionName":{"name":"mstore","nativeSrc":"2992:6:97","nodeType":"YulIdentifier","src":"2992:6:97"},"nativeSrc":"2992:62:97","nodeType":"YulFunctionCall","src":"2992:62:97"},"nativeSrc":"2992:62:97","nodeType":"YulExpressionStatement","src":"2992:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3074:9:97","nodeType":"YulIdentifier","src":"3074:9:97"},{"kind":"number","nativeSrc":"3085:2:97","nodeType":"YulLiteral","src":"3085:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3070:3:97","nodeType":"YulIdentifier","src":"3070:3:97"},"nativeSrc":"3070:18:97","nodeType":"YulFunctionCall","src":"3070:18:97"},{"hexValue":"6e7472616374","kind":"string","nativeSrc":"3090:8:97","nodeType":"YulLiteral","src":"3090:8:97","type":"","value":"ntract"}],"functionName":{"name":"mstore","nativeSrc":"3063:6:97","nodeType":"YulIdentifier","src":"3063:6:97"},"nativeSrc":"3063:36:97","nodeType":"YulFunctionCall","src":"3063:36:97"},"nativeSrc":"3063:36:97","nodeType":"YulExpressionStatement","src":"3063:36:97"},{"nativeSrc":"3108:27:97","nodeType":"YulAssignment","src":"3108:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"3120:9:97","nodeType":"YulIdentifier","src":"3120:9:97"},{"kind":"number","nativeSrc":"3131:3:97","nodeType":"YulLiteral","src":"3131:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"3116:3:97","nodeType":"YulIdentifier","src":"3116:3:97"},"nativeSrc":"3116:19:97","nodeType":"YulFunctionCall","src":"3116:19:97"},"variableNames":[{"name":"tail","nativeSrc":"3108:4:97","nodeType":"YulIdentifier","src":"3108:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2739:402:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2890:9:97","nodeType":"YulTypedName","src":"2890:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2904:4:97","nodeType":"YulTypedName","src":"2904:4:97","type":""}],"src":"2739:402:97"},{"body":{"nativeSrc":"3283:150:97","nodeType":"YulBlock","src":"3283:150:97","statements":[{"nativeSrc":"3293:27:97","nodeType":"YulVariableDeclaration","src":"3293:27:97","value":{"arguments":[{"name":"value0","nativeSrc":"3313:6:97","nodeType":"YulIdentifier","src":"3313:6:97"}],"functionName":{"name":"mload","nativeSrc":"3307:5:97","nodeType":"YulIdentifier","src":"3307:5:97"},"nativeSrc":"3307:13:97","nodeType":"YulFunctionCall","src":"3307:13:97"},"variables":[{"name":"length","nativeSrc":"3297:6:97","nodeType":"YulTypedName","src":"3297:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"3368:6:97","nodeType":"YulIdentifier","src":"3368:6:97"},{"kind":"number","nativeSrc":"3376:4:97","nodeType":"YulLiteral","src":"3376:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3364:3:97","nodeType":"YulIdentifier","src":"3364:3:97"},"nativeSrc":"3364:17:97","nodeType":"YulFunctionCall","src":"3364:17:97"},{"name":"pos","nativeSrc":"3383:3:97","nodeType":"YulIdentifier","src":"3383:3:97"},{"name":"length","nativeSrc":"3388:6:97","nodeType":"YulIdentifier","src":"3388:6:97"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"3329:34:97","nodeType":"YulIdentifier","src":"3329:34:97"},"nativeSrc":"3329:66:97","nodeType":"YulFunctionCall","src":"3329:66:97"},"nativeSrc":"3329:66:97","nodeType":"YulExpressionStatement","src":"3329:66:97"},{"nativeSrc":"3404:23:97","nodeType":"YulAssignment","src":"3404:23:97","value":{"arguments":[{"name":"pos","nativeSrc":"3415:3:97","nodeType":"YulIdentifier","src":"3415:3:97"},{"name":"length","nativeSrc":"3420:6:97","nodeType":"YulIdentifier","src":"3420:6:97"}],"functionName":{"name":"add","nativeSrc":"3411:3:97","nodeType":"YulIdentifier","src":"3411:3:97"},"nativeSrc":"3411:16:97","nodeType":"YulFunctionCall","src":"3411:16:97"},"variableNames":[{"name":"end","nativeSrc":"3404:3:97","nodeType":"YulIdentifier","src":"3404:3:97"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"3146:287:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3259:3:97","nodeType":"YulTypedName","src":"3259:3:97","type":""},{"name":"value0","nativeSrc":"3264:6:97","nodeType":"YulTypedName","src":"3264:6:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"3275:3:97","nodeType":"YulTypedName","src":"3275:3:97","type":""}],"src":"3146:287:97"},{"body":{"nativeSrc":"3559:275:97","nodeType":"YulBlock","src":"3559:275:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3576:9:97","nodeType":"YulIdentifier","src":"3576:9:97"},{"kind":"number","nativeSrc":"3587:2:97","nodeType":"YulLiteral","src":"3587:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"3569:6:97","nodeType":"YulIdentifier","src":"3569:6:97"},"nativeSrc":"3569:21:97","nodeType":"YulFunctionCall","src":"3569:21:97"},"nativeSrc":"3569:21:97","nodeType":"YulExpressionStatement","src":"3569:21:97"},{"nativeSrc":"3599:27:97","nodeType":"YulVariableDeclaration","src":"3599:27:97","value":{"arguments":[{"name":"value0","nativeSrc":"3619:6:97","nodeType":"YulIdentifier","src":"3619:6:97"}],"functionName":{"name":"mload","nativeSrc":"3613:5:97","nodeType":"YulIdentifier","src":"3613:5:97"},"nativeSrc":"3613:13:97","nodeType":"YulFunctionCall","src":"3613:13:97"},"variables":[{"name":"length","nativeSrc":"3603:6:97","nodeType":"YulTypedName","src":"3603:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3646:9:97","nodeType":"YulIdentifier","src":"3646:9:97"},{"kind":"number","nativeSrc":"3657:2:97","nodeType":"YulLiteral","src":"3657:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3642:3:97","nodeType":"YulIdentifier","src":"3642:3:97"},"nativeSrc":"3642:18:97","nodeType":"YulFunctionCall","src":"3642:18:97"},{"name":"length","nativeSrc":"3662:6:97","nodeType":"YulIdentifier","src":"3662:6:97"}],"functionName":{"name":"mstore","nativeSrc":"3635:6:97","nodeType":"YulIdentifier","src":"3635:6:97"},"nativeSrc":"3635:34:97","nodeType":"YulFunctionCall","src":"3635:34:97"},"nativeSrc":"3635:34:97","nodeType":"YulExpressionStatement","src":"3635:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"3717:6:97","nodeType":"YulIdentifier","src":"3717:6:97"},{"kind":"number","nativeSrc":"3725:2:97","nodeType":"YulLiteral","src":"3725:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3713:3:97","nodeType":"YulIdentifier","src":"3713:3:97"},"nativeSrc":"3713:15:97","nodeType":"YulFunctionCall","src":"3713:15:97"},{"arguments":[{"name":"headStart","nativeSrc":"3734:9:97","nodeType":"YulIdentifier","src":"3734:9:97"},{"kind":"number","nativeSrc":"3745:2:97","nodeType":"YulLiteral","src":"3745:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3730:3:97","nodeType":"YulIdentifier","src":"3730:3:97"},"nativeSrc":"3730:18:97","nodeType":"YulFunctionCall","src":"3730:18:97"},{"name":"length","nativeSrc":"3750:6:97","nodeType":"YulIdentifier","src":"3750:6:97"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"3678:34:97","nodeType":"YulIdentifier","src":"3678:34:97"},"nativeSrc":"3678:79:97","nodeType":"YulFunctionCall","src":"3678:79:97"},"nativeSrc":"3678:79:97","nodeType":"YulExpressionStatement","src":"3678:79:97"},{"nativeSrc":"3766:62:97","nodeType":"YulAssignment","src":"3766:62:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3782:9:97","nodeType":"YulIdentifier","src":"3782:9:97"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"3801:6:97","nodeType":"YulIdentifier","src":"3801:6:97"},{"kind":"number","nativeSrc":"3809:2:97","nodeType":"YulLiteral","src":"3809:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"3797:3:97","nodeType":"YulIdentifier","src":"3797:3:97"},"nativeSrc":"3797:15:97","nodeType":"YulFunctionCall","src":"3797:15:97"},{"arguments":[{"kind":"number","nativeSrc":"3818:2:97","nodeType":"YulLiteral","src":"3818:2:97","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"3814:3:97","nodeType":"YulIdentifier","src":"3814:3:97"},"nativeSrc":"3814:7:97","nodeType":"YulFunctionCall","src":"3814:7:97"}],"functionName":{"name":"and","nativeSrc":"3793:3:97","nodeType":"YulIdentifier","src":"3793:3:97"},"nativeSrc":"3793:29:97","nodeType":"YulFunctionCall","src":"3793:29:97"}],"functionName":{"name":"add","nativeSrc":"3778:3:97","nodeType":"YulIdentifier","src":"3778:3:97"},"nativeSrc":"3778:45:97","nodeType":"YulFunctionCall","src":"3778:45:97"},{"kind":"number","nativeSrc":"3825:2:97","nodeType":"YulLiteral","src":"3825:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3774:3:97","nodeType":"YulIdentifier","src":"3774:3:97"},"nativeSrc":"3774:54:97","nodeType":"YulFunctionCall","src":"3774:54:97"},"variableNames":[{"name":"tail","nativeSrc":"3766:4:97","nodeType":"YulIdentifier","src":"3766:4:97"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3438:396:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3528:9:97","nodeType":"YulTypedName","src":"3528:9:97","type":""},{"name":"value0","nativeSrc":"3539:6:97","nodeType":"YulTypedName","src":"3539:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3550:4:97","nodeType":"YulTypedName","src":"3550:4:97","type":""}],"src":"3438:396:97"}]},"contents":"{\n    { }\n    function abi_decode_address_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function copy_memory_to_memory_with_cleanup(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n    }\n    function abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_address_fromMemory(headStart)\n        value1 := abi_decode_address_fromMemory(add(headStart, 32))\n        let offset := mload(add(headStart, 64))\n        let _1 := sub(shl(64, 1), 1)\n        if gt(offset, _1) { revert(0, 0) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n        let _3 := mload(_2)\n        if gt(_3, _1) { panic_error_0x41() }\n        let _4 := not(31)\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(_3, 0x1f), _4), 63), _4))\n        if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, _3)\n        if gt(add(add(_2, _3), 32), dataEnd) { revert(0, 0) }\n        copy_memory_to_memory_with_cleanup(add(_2, 32), add(memPtr, 32), _3)\n        value2 := memPtr\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        if gt(diff, x)\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x11)\n            revert(0, 0x24)\n        }\n    }\n    function panic_error_0x01()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x01)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        let _1 := sub(shl(160, 1), 1)\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n    }\n    function abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 45)\n        mstore(add(headStart, 64), \"ERC1967: new implementation is n\")\n        mstore(add(headStart, 96), \"ot a contract\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Address: delegate call to non-co\")\n        mstore(add(headStart, 96), \"ntract\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n        end := add(pos, length)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        copy_memory_to_memory_with_cleanup(add(value0, 32), add(headStart, 64), length)\n        tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n    }\n}","id":97,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a0604052604051610ea3380380610ea3833981016040819052610022916103d2565b828161004f60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd6104a2565b600080516020610e5c8339815191521461006b5761006b6104c3565b61007782826000610128565b506100a5905060017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61046104a2565b600080516020610e3c833981519152146100c1576100c16104c3565b6001600160a01b0382166080819052600080516020610e3c8339815191528381556040805160008152602081019390935290917f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a150505050610528565b61013183610154565b60008251118061013e5750805b1561014f5761014d8383610194565b505b505050565b61015d816101c2565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101b98383604051806060016040528060278152602001610e7c60279139610263565b90505b92915050565b6001600160a01b0381163b6102345760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b600080516020610e5c83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b60606001600160a01b0384163b6102cb5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b606482015260840161022b565b600080856001600160a01b0316856040516102e691906104d9565b600060405180830381855af49150503d8060008114610321576040519150601f19603f3d011682016040523d82523d6000602084013e610326565b606091505b509092509050610337828286610343565b925050505b9392505050565b6060831561035257508161033c565b8251156103625782518084602001fd5b8160405162461bcd60e51b815260040161022b91906104f5565b80516001600160a01b038116811461039357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103c95781810151838201526020016103b1565b50506000910152565b6000806000606084860312156103e757600080fd5b6103f08461037c565b92506103fe6020850161037c565b60408501519092506001600160401b038082111561041b57600080fd5b818601915086601f83011261042f57600080fd5b81518181111561044157610441610398565b604051601f8201601f19908116603f0116810190838211818310171561046957610469610398565b8160405282815289602084870101111561048257600080fd5b6104938360208301602088016103ae565b80955050505050509250925092565b818103818111156101bc57634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052600160045260246000fd5b600082516104eb8184602087016103ae565b9190910192915050565b60208152600082518060208401526105148160408501602087016103ae565b601f01601f19169190910160400192915050565b6080516108d76105656000396000818160fc0152818161015f015281816101ee015281816102450152818161028301526102a701526108d76000f3fe6080604052600436106100435760003560e01c80633659cfe61461005a5780634f1ef2861461007a5780635c60da1b1461008d578063f851a440146100cb57610052565b36610052576100506100e0565b005b6100506100e0565b34801561006657600080fd5b5061005061007536600461074b565b6100fa565b610050610088366004610766565b61015d565b34801561009957600080fd5b506100a26101ea565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100d757600080fd5b506100a2610241565b6100e86102a5565b6100f86100f3610395565b6103d5565b565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16330361015557610152816040518060200160405280600081525060006103f9565b50565b6101526100e0565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1633036101e2576101dd8383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250600192506103f9915050565b505050565b6101dd6100e0565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16330361023657610231610395565b905090565b61023e6100e0565b90565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16330361023657507f000000000000000000000000000000000000000000000000000000000000000090565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1633036100f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b60006102317f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b3660008037600080366000845af43d6000803e8080156103f4573d6000f35b3d6000fd5b61040283610424565b60008251118061040f5750805b156101dd5761041e8383610471565b50505050565b61042d8161049d565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060610496838360405180606001604052806027815260200161087b602791396105a7565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff81163b610541576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e747261637400000000000000000000000000000000000000606482015260840161038c565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b606073ffffffffffffffffffffffffffffffffffffffff84163b61064d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e74726163740000000000000000000000000000000000000000000000000000606482015260840161038c565b6000808573ffffffffffffffffffffffffffffffffffffffff1685604051610675919061080d565b600060405180830381855af49150503d80600081146106b0576040519150601f19603f3d011682016040523d82523d6000602084013e6106b5565b606091505b50915091506106c58282866106cf565b9695505050505050565b606083156106de575081610496565b8251156106ee5782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038c9190610829565b803573ffffffffffffffffffffffffffffffffffffffff8116811461074657600080fd5b919050565b60006020828403121561075d57600080fd5b61049682610722565b60008060006040848603121561077b57600080fd5b61078484610722565b9250602084013567ffffffffffffffff808211156107a157600080fd5b818601915086601f8301126107b557600080fd5b8135818111156107c457600080fd5b8760208285010111156107d657600080fd5b6020830194508093505050509250925092565b60005b838110156108045781810151838201526020016107ec565b50506000910152565b6000825161081f8184602087016107e9565b9190910192915050565b60208152600082518060208401526108488160408501602087016107e9565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212200136fd34dfdb0d97935b77a84c836b17bf901cefa29ed5b1ef847b08c6cba8d064736f6c63430008190033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0xEA3 CODESIZE SUB DUP1 PUSH2 0xEA3 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x22 SWAP2 PUSH2 0x3D2 JUMP JUMPDEST DUP3 DUP2 PUSH2 0x4F PUSH1 0x1 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBD PUSH2 0x4A2 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xE5C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x6B JUMPI PUSH2 0x6B PUSH2 0x4C3 JUMP JUMPDEST PUSH2 0x77 DUP3 DUP3 PUSH1 0x0 PUSH2 0x128 JUMP JUMPDEST POP PUSH2 0xA5 SWAP1 POP PUSH1 0x1 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6104 PUSH2 0x4A2 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xE3C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0xC1 JUMPI PUSH2 0xC1 PUSH2 0x4C3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x80 DUP2 SWAP1 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xE3C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP4 DUP2 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE SWAP1 SWAP2 PUSH32 0x7E644D79422F17C01E4894B5F4F588D331EBFA28653D42AE832DC59E38C9798F SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP PUSH2 0x528 JUMP JUMPDEST PUSH2 0x131 DUP4 PUSH2 0x154 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT DUP1 PUSH2 0x13E JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x14F JUMPI PUSH2 0x14D DUP4 DUP4 PUSH2 0x194 JUMP JUMPDEST POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x15D DUP2 PUSH2 0x1C2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1B9 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE7C PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x263 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x234 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xE5C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE PUSH2 0x2CB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x22B JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x2E6 SWAP2 SWAP1 PUSH2 0x4D9 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x321 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x326 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x337 DUP3 DUP3 DUP7 PUSH2 0x343 JUMP JUMPDEST SWAP3 POP POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x352 JUMPI POP DUP2 PUSH2 0x33C JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x362 JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22B SWAP2 SWAP1 PUSH2 0x4F5 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x393 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3C9 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x3B1 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3F0 DUP5 PUSH2 0x37C JUMP JUMPDEST SWAP3 POP PUSH2 0x3FE PUSH1 0x20 DUP6 ADD PUSH2 0x37C JUMP JUMPDEST PUSH1 0x40 DUP6 ADD MLOAD SWAP1 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x41B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x42F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP2 DUP2 GT ISZERO PUSH2 0x441 JUMPI PUSH2 0x441 PUSH2 0x398 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x469 JUMPI PUSH2 0x469 PUSH2 0x398 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP10 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x482 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x493 DUP4 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x3AE JUMP JUMPDEST DUP1 SWAP6 POP POP POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x1BC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x4EB DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x3AE JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x514 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x3AE JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x8D7 PUSH2 0x565 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH1 0xFC ADD MSTORE DUP2 DUP2 PUSH2 0x15F ADD MSTORE DUP2 DUP2 PUSH2 0x1EE ADD MSTORE DUP2 DUP2 PUSH2 0x245 ADD MSTORE DUP2 DUP2 PUSH2 0x283 ADD MSTORE PUSH2 0x2A7 ADD MSTORE PUSH2 0x8D7 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x43 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x5A JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x7A JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0xCB JUMPI PUSH2 0x52 JUMP JUMPDEST CALLDATASIZE PUSH2 0x52 JUMPI PUSH2 0x50 PUSH2 0xE0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x50 PUSH2 0xE0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x50 PUSH2 0x75 CALLDATASIZE PUSH1 0x4 PUSH2 0x74B JUMP JUMPDEST PUSH2 0xFA JUMP JUMPDEST PUSH2 0x50 PUSH2 0x88 CALLDATASIZE PUSH1 0x4 PUSH2 0x766 JUMP JUMPDEST PUSH2 0x15D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x99 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA2 PUSH2 0x1EA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA2 PUSH2 0x241 JUMP JUMPDEST PUSH2 0xE8 PUSH2 0x2A5 JUMP JUMPDEST PUSH2 0xF8 PUSH2 0xF3 PUSH2 0x395 JUMP JUMPDEST PUSH2 0x3D5 JUMP JUMPDEST JUMP JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER SUB PUSH2 0x155 JUMPI PUSH2 0x152 DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH1 0x0 PUSH2 0x3F9 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x152 PUSH2 0xE0 JUMP JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER SUB PUSH2 0x1E2 JUMPI PUSH2 0x1DD DUP4 DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH1 0x1 SWAP3 POP PUSH2 0x3F9 SWAP2 POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x1DD PUSH2 0xE0 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER SUB PUSH2 0x236 JUMPI PUSH2 0x231 PUSH2 0x395 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x23E PUSH2 0xE0 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER SUB PUSH2 0x236 JUMPI POP PUSH32 0x0 SWAP1 JUMP JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER SUB PUSH2 0xF8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x42 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5472616E73706172656E745570677261646561626C6550726F78793A2061646D PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x696E2063616E6E6F742066616C6C6261636B20746F2070726F78792074617267 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6574000000000000000000000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x231 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH2 0x3F4 JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH2 0x402 DUP4 PUSH2 0x424 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT DUP1 PUSH2 0x40F JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x1DD JUMPI PUSH2 0x41E DUP4 DUP4 PUSH2 0x471 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x42D DUP2 PUSH2 0x49D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x496 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x87B PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x5A7 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND EXTCODESIZE PUSH2 0x541 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F74206120636F6E747261637400000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x38C JUMP JUMPDEST PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND EXTCODESIZE PUSH2 0x64D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E74726163740000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x38C JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x675 SWAP2 SWAP1 PUSH2 0x80D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x6B0 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x6B5 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x6C5 DUP3 DUP3 DUP7 PUSH2 0x6CF JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x6DE JUMPI POP DUP2 PUSH2 0x496 JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x6EE JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x38C SWAP2 SWAP1 PUSH2 0x829 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x746 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x75D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x496 DUP3 PUSH2 0x722 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x77B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x784 DUP5 PUSH2 0x722 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x7A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x7B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x7C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x7D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP5 POP DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x804 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x7EC JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x81F DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x7E9 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x848 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x7E9 JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP INVALID COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C6564A264 PUSH10 0x706673582212200136FD CALLVALUE 0xDF 0xDB 0xD SWAP8 SWAP4 JUMPDEST PUSH24 0xA84C836B17BF901CEFA29ED5B1EF847B08C6CBA8D064736F PUSH13 0x63430008190033B53127684A56 DUP12 BALANCE PUSH20 0xAE13B9F8A6016E243E63B6E8EE1178D6A717850B TSTORE PUSH2 0x336 ADDMOD SWAP5 LOG1 EXTCODESIZE LOG1 LOG3 0x21 MOD PUSH8 0xC828492DB98DCA3E KECCAK256 PUSH23 0xCC3735A920A3CA505D382BBC416464726573733A206C6F PUSH24 0x2D6C6576656C2064656C65676174652063616C6C20666169 PUSH13 0x65640000000000000000000000 ","sourceMap":"1653:3648:95:-:0;;;1976:499;;;;;;;;;;;;;;;;;;:::i;:::-;2091:6;2099:5;1050:54:86;1103:1;1058:41;1050:54;:::i;:::-;-1:-1:-1;;;;;;;;;;;1018:87:86;1011:95;;;;:::i;:::-;1116:39;1134:6;1142:5;1149;1116:17;:39::i;:::-;-1:-1:-1;2146:45:95::1;::::0;-1:-1:-1;2190:1:95::1;2154:32;2146:45;:::i;:::-;-1:-1:-1::0;;;;;;;;;;;2123:69:95::1;2116:77;;;;:::i;:::-;-1:-1:-1::0;;;;;2203:15:95;::::1;;::::0;;;-1:-1:-1;;;;;;;;;;;2392:20:95;;;2436:32:::1;::::0;;2277:12:::1;2228:34:97::0;;2293:2;2278:18;;2271:43;;;;3847:66:87;;2436:32:95::1;::::0;2163:18:97;2436:32:95::1;;;;;;;2106:369;1976:499:::0;;;1653:3648;;2188:295:87;2326:29;2337:17;2326:10;:29::i;:::-;2383:1;2369:4;:11;:15;:28;;;;2388:9;2369:28;2365:112;;;2413:53;2442:17;2461:4;2413:28;:53::i;:::-;;2365:112;2188:295;;;:::o;1902:152::-;1968:37;1987:17;1968:18;:37::i;:::-;2020:27;;-1:-1:-1;;;;;2020:27:87;;;;;;;;1902:152;:::o;6575:198:92:-;6658:12;6689:77;6710:6;6718:4;6689:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6682:84;;6575:198;;;;;:::o;1537:259:87:-;-1:-1:-1;;;;;1470:19:92;;;1610:95:87;;;;-1:-1:-1;;;1610:95:87;;2527:2:97;1610:95:87;;;2509:21:97;2566:2;2546:18;;;2539:30;2605:34;2585:18;;;2578:62;-1:-1:-1;;;2656:18:97;;;2649:43;2709:19;;1610:95:87;;;;;;;;;-1:-1:-1;;;;;;;;;;;1715:74:87;;-1:-1:-1;;;;;;1715:74:87;-1:-1:-1;;;;;1715:74:87;;;;;;;;;;1537:259::o;6959:387:92:-;7100:12;-1:-1:-1;;;;;1470:19:92;;;7124:69;;;;-1:-1:-1;;;7124:69:92;;2941:2:97;7124:69:92;;;2923:21:97;2980:2;2960:18;;;2953:30;3019:34;2999:18;;;2992:62;-1:-1:-1;;;3070:18:97;;;3063:36;3116:19;;7124:69:92;2739:402:97;7124:69:92;7205:12;7219:23;7246:6;-1:-1:-1;;;;;7246:19:92;7266:4;7246:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7204:67:92;;-1:-1:-1;7204:67:92;-1:-1:-1;7288:51:92;7204:67;;7326:12;7288:16;:51::i;:::-;7281:58;;;;6959:387;;;;;;:::o;7566:692::-;7712:12;7740:7;7736:516;;;-1:-1:-1;7770:10:92;7763:17;;7736:516;7881:17;;:21;7877:365;;8075:10;8069:17;8135:15;8122:10;8118:2;8114:19;8107:44;7877:365;8214:12;8207:20;;-1:-1:-1;;;8207:20:92;;;;;;;;:::i;14:177:97:-;93:13;;-1:-1:-1;;;;;135:31:97;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:127::-;257:10;252:3;248:20;245:1;238:31;288:4;285:1;278:15;312:4;309:1;302:15;328:250;413:1;423:113;437:6;434:1;431:13;423:113;;;513:11;;;507:18;494:11;;;487:39;459:2;452:10;423:113;;;-1:-1:-1;;570:1:97;552:16;;545:27;328:250::o;583:1066::-;680:6;688;696;749:2;737:9;728:7;724:23;720:32;717:52;;;765:1;762;755:12;717:52;788:40;818:9;788:40;:::i;:::-;778:50;;847:49;892:2;881:9;877:18;847:49;:::i;:::-;940:2;925:18;;919:25;837:59;;-1:-1:-1;;;;;;993:14:97;;;990:34;;;1020:1;1017;1010:12;990:34;1058:6;1047:9;1043:22;1033:32;;1103:7;1096:4;1092:2;1088:13;1084:27;1074:55;;1125:1;1122;1115:12;1074:55;1154:2;1148:9;1176:2;1172;1169:10;1166:36;;;1182:18;;:::i;:::-;1257:2;1251:9;1225:2;1311:13;;-1:-1:-1;;1307:22:97;;;1331:2;1303:31;1299:40;1287:53;;;1355:18;;;1375:22;;;1352:46;1349:72;;;1401:18;;:::i;:::-;1441:10;1437:2;1430:22;1476:2;1468:6;1461:18;1516:7;1511:2;1506;1502;1498:11;1494:20;1491:33;1488:53;;;1537:1;1534;1527:12;1488:53;1550:68;1615:2;1610;1602:6;1598:15;1593:2;1589;1585:11;1550:68;:::i;:::-;1637:6;1627:16;;;;;;;583:1066;;;;;:::o;1654:225::-;1721:9;;;1742:11;;;1739:134;;;1795:10;1790:3;1786:20;1783:1;1776:31;1830:4;1827:1;1820:15;1858:4;1855:1;1848:15;1884:127;1945:10;1940:3;1936:20;1933:1;1926:31;1976:4;1973:1;1966:15;2000:4;1997:1;1990:15;3146:287;3275:3;3313:6;3307:13;3329:66;3388:6;3383:3;3376:4;3368:6;3364:17;3329:66;:::i;:::-;3411:16;;;;;3146:287;-1:-1:-1;;3146:287:97:o;3438:396::-;3587:2;3576:9;3569:21;3550:4;3619:6;3613:13;3662:6;3657:2;3646:9;3642:18;3635:34;3678:79;3750:6;3745:2;3734:9;3730:18;3725:2;3717:6;3713:15;3678:79;:::i;:::-;3818:2;3797:15;-1:-1:-1;;3793:29:97;3778:45;;;;3825:2;3774:54;;3438:396;-1:-1:-1;;3438:396:97:o;:::-;1653:3648:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_21820":{"entryPoint":null,"id":21820,"parameterSlots":0,"returnSlots":0},"@_21828":{"entryPoint":null,"id":21828,"parameterSlots":0,"returnSlots":0},"@_beforeFallback_21833":{"entryPoint":null,"id":21833,"parameterSlots":0,"returnSlots":0},"@_beforeFallback_22695":{"entryPoint":677,"id":22695,"parameterSlots":0,"returnSlots":0},"@_delegate_21793":{"entryPoint":981,"id":21793,"parameterSlots":1,"returnSlots":0},"@_fallback_21812":{"entryPoint":224,"id":21812,"parameterSlots":0,"returnSlots":0},"@_getAdmin_22704":{"entryPoint":null,"id":22704,"parameterSlots":0,"returnSlots":1},"@_getImplementation_21496":{"entryPoint":null,"id":21496,"parameterSlots":0,"returnSlots":1},"@_implementation_21463":{"entryPoint":917,"id":21463,"parameterSlots":0,"returnSlots":1},"@_setImplementation_21520":{"entryPoint":1181,"id":21520,"parameterSlots":1,"returnSlots":0},"@_upgradeToAndCall_21565":{"entryPoint":1017,"id":21565,"parameterSlots":3,"returnSlots":0},"@_upgradeTo_21535":{"entryPoint":1060,"id":21535,"parameterSlots":1,"returnSlots":0},"@admin_22616":{"entryPoint":577,"id":22616,"parameterSlots":0,"returnSlots":1},"@functionDelegateCall_22381":{"entryPoint":1137,"id":22381,"parameterSlots":2,"returnSlots":1},"@functionDelegateCall_22416":{"entryPoint":1447,"id":22416,"parameterSlots":3,"returnSlots":1},"@getAddressSlot_22496":{"entryPoint":null,"id":22496,"parameterSlots":1,"returnSlots":1},"@implementation_22630":{"entryPoint":490,"id":22630,"parameterSlots":0,"returnSlots":1},"@isContract_22171":{"entryPoint":null,"id":22171,"parameterSlots":1,"returnSlots":1},"@upgradeToAndCall_22665":{"entryPoint":349,"id":22665,"parameterSlots":3,"returnSlots":0},"@upgradeTo_22648":{"entryPoint":250,"id":22648,"parameterSlots":1,"returnSlots":0},"@verifyCallResult_22447":{"entryPoint":1743,"id":22447,"parameterSlots":3,"returnSlots":1},"abi_decode_address":{"entryPoint":1826,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":1867,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_bytes_calldata_ptr":{"entryPoint":1894,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":2061,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2089,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":2025,"id":null,"parameterSlots":3,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:3607:97","nodeType":"YulBlock","src":"0:3607:97","statements":[{"nativeSrc":"6:3:97","nodeType":"YulBlock","src":"6:3:97","statements":[]},{"body":{"nativeSrc":"63:147:97","nodeType":"YulBlock","src":"63:147:97","statements":[{"nativeSrc":"73:29:97","nodeType":"YulAssignment","src":"73:29:97","value":{"arguments":[{"name":"offset","nativeSrc":"95:6:97","nodeType":"YulIdentifier","src":"95:6:97"}],"functionName":{"name":"calldataload","nativeSrc":"82:12:97","nodeType":"YulIdentifier","src":"82:12:97"},"nativeSrc":"82:20:97","nodeType":"YulFunctionCall","src":"82:20:97"},"variableNames":[{"name":"value","nativeSrc":"73:5:97","nodeType":"YulIdentifier","src":"73:5:97"}]},{"body":{"nativeSrc":"188:16:97","nodeType":"YulBlock","src":"188:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"197:1:97","nodeType":"YulLiteral","src":"197:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"200:1:97","nodeType":"YulLiteral","src":"200:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"190:6:97","nodeType":"YulIdentifier","src":"190:6:97"},"nativeSrc":"190:12:97","nodeType":"YulFunctionCall","src":"190:12:97"},"nativeSrc":"190:12:97","nodeType":"YulExpressionStatement","src":"190:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"124:5:97","nodeType":"YulIdentifier","src":"124:5:97"},{"arguments":[{"name":"value","nativeSrc":"135:5:97","nodeType":"YulIdentifier","src":"135:5:97"},{"kind":"number","nativeSrc":"142:42:97","nodeType":"YulLiteral","src":"142:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"131:3:97","nodeType":"YulIdentifier","src":"131:3:97"},"nativeSrc":"131:54:97","nodeType":"YulFunctionCall","src":"131:54:97"}],"functionName":{"name":"eq","nativeSrc":"121:2:97","nodeType":"YulIdentifier","src":"121:2:97"},"nativeSrc":"121:65:97","nodeType":"YulFunctionCall","src":"121:65:97"}],"functionName":{"name":"iszero","nativeSrc":"114:6:97","nodeType":"YulIdentifier","src":"114:6:97"},"nativeSrc":"114:73:97","nodeType":"YulFunctionCall","src":"114:73:97"},"nativeSrc":"111:93:97","nodeType":"YulIf","src":"111:93:97"}]},"name":"abi_decode_address","nativeSrc":"14:196:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"42:6:97","nodeType":"YulTypedName","src":"42:6:97","type":""}],"returnVariables":[{"name":"value","nativeSrc":"53:5:97","nodeType":"YulTypedName","src":"53:5:97","type":""}],"src":"14:196:97"},{"body":{"nativeSrc":"285:116:97","nodeType":"YulBlock","src":"285:116:97","statements":[{"body":{"nativeSrc":"331:16:97","nodeType":"YulBlock","src":"331:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"340:1:97","nodeType":"YulLiteral","src":"340:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"343:1:97","nodeType":"YulLiteral","src":"343:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"333:6:97","nodeType":"YulIdentifier","src":"333:6:97"},"nativeSrc":"333:12:97","nodeType":"YulFunctionCall","src":"333:12:97"},"nativeSrc":"333:12:97","nodeType":"YulExpressionStatement","src":"333:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"306:7:97","nodeType":"YulIdentifier","src":"306:7:97"},{"name":"headStart","nativeSrc":"315:9:97","nodeType":"YulIdentifier","src":"315:9:97"}],"functionName":{"name":"sub","nativeSrc":"302:3:97","nodeType":"YulIdentifier","src":"302:3:97"},"nativeSrc":"302:23:97","nodeType":"YulFunctionCall","src":"302:23:97"},{"kind":"number","nativeSrc":"327:2:97","nodeType":"YulLiteral","src":"327:2:97","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"298:3:97","nodeType":"YulIdentifier","src":"298:3:97"},"nativeSrc":"298:32:97","nodeType":"YulFunctionCall","src":"298:32:97"},"nativeSrc":"295:52:97","nodeType":"YulIf","src":"295:52:97"},{"nativeSrc":"356:39:97","nodeType":"YulAssignment","src":"356:39:97","value":{"arguments":[{"name":"headStart","nativeSrc":"385:9:97","nodeType":"YulIdentifier","src":"385:9:97"}],"functionName":{"name":"abi_decode_address","nativeSrc":"366:18:97","nodeType":"YulIdentifier","src":"366:18:97"},"nativeSrc":"366:29:97","nodeType":"YulFunctionCall","src":"366:29:97"},"variableNames":[{"name":"value0","nativeSrc":"356:6:97","nodeType":"YulIdentifier","src":"356:6:97"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"215:186:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"251:9:97","nodeType":"YulTypedName","src":"251:9:97","type":""},{"name":"dataEnd","nativeSrc":"262:7:97","nodeType":"YulTypedName","src":"262:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"274:6:97","nodeType":"YulTypedName","src":"274:6:97","type":""}],"src":"215:186:97"},{"body":{"nativeSrc":"512:559:97","nodeType":"YulBlock","src":"512:559:97","statements":[{"body":{"nativeSrc":"558:16:97","nodeType":"YulBlock","src":"558:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"567:1:97","nodeType":"YulLiteral","src":"567:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"570:1:97","nodeType":"YulLiteral","src":"570:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"560:6:97","nodeType":"YulIdentifier","src":"560:6:97"},"nativeSrc":"560:12:97","nodeType":"YulFunctionCall","src":"560:12:97"},"nativeSrc":"560:12:97","nodeType":"YulExpressionStatement","src":"560:12:97"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"533:7:97","nodeType":"YulIdentifier","src":"533:7:97"},{"name":"headStart","nativeSrc":"542:9:97","nodeType":"YulIdentifier","src":"542:9:97"}],"functionName":{"name":"sub","nativeSrc":"529:3:97","nodeType":"YulIdentifier","src":"529:3:97"},"nativeSrc":"529:23:97","nodeType":"YulFunctionCall","src":"529:23:97"},{"kind":"number","nativeSrc":"554:2:97","nodeType":"YulLiteral","src":"554:2:97","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"525:3:97","nodeType":"YulIdentifier","src":"525:3:97"},"nativeSrc":"525:32:97","nodeType":"YulFunctionCall","src":"525:32:97"},"nativeSrc":"522:52:97","nodeType":"YulIf","src":"522:52:97"},{"nativeSrc":"583:39:97","nodeType":"YulAssignment","src":"583:39:97","value":{"arguments":[{"name":"headStart","nativeSrc":"612:9:97","nodeType":"YulIdentifier","src":"612:9:97"}],"functionName":{"name":"abi_decode_address","nativeSrc":"593:18:97","nodeType":"YulIdentifier","src":"593:18:97"},"nativeSrc":"593:29:97","nodeType":"YulFunctionCall","src":"593:29:97"},"variableNames":[{"name":"value0","nativeSrc":"583:6:97","nodeType":"YulIdentifier","src":"583:6:97"}]},{"nativeSrc":"631:46:97","nodeType":"YulVariableDeclaration","src":"631:46:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"662:9:97","nodeType":"YulIdentifier","src":"662:9:97"},{"kind":"number","nativeSrc":"673:2:97","nodeType":"YulLiteral","src":"673:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"658:3:97","nodeType":"YulIdentifier","src":"658:3:97"},"nativeSrc":"658:18:97","nodeType":"YulFunctionCall","src":"658:18:97"}],"functionName":{"name":"calldataload","nativeSrc":"645:12:97","nodeType":"YulIdentifier","src":"645:12:97"},"nativeSrc":"645:32:97","nodeType":"YulFunctionCall","src":"645:32:97"},"variables":[{"name":"offset","nativeSrc":"635:6:97","nodeType":"YulTypedName","src":"635:6:97","type":""}]},{"nativeSrc":"686:28:97","nodeType":"YulVariableDeclaration","src":"686:28:97","value":{"kind":"number","nativeSrc":"696:18:97","nodeType":"YulLiteral","src":"696:18:97","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"690:2:97","nodeType":"YulTypedName","src":"690:2:97","type":""}]},{"body":{"nativeSrc":"741:16:97","nodeType":"YulBlock","src":"741:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"750:1:97","nodeType":"YulLiteral","src":"750:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"753:1:97","nodeType":"YulLiteral","src":"753:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"743:6:97","nodeType":"YulIdentifier","src":"743:6:97"},"nativeSrc":"743:12:97","nodeType":"YulFunctionCall","src":"743:12:97"},"nativeSrc":"743:12:97","nodeType":"YulExpressionStatement","src":"743:12:97"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"729:6:97","nodeType":"YulIdentifier","src":"729:6:97"},{"name":"_1","nativeSrc":"737:2:97","nodeType":"YulIdentifier","src":"737:2:97"}],"functionName":{"name":"gt","nativeSrc":"726:2:97","nodeType":"YulIdentifier","src":"726:2:97"},"nativeSrc":"726:14:97","nodeType":"YulFunctionCall","src":"726:14:97"},"nativeSrc":"723:34:97","nodeType":"YulIf","src":"723:34:97"},{"nativeSrc":"766:32:97","nodeType":"YulVariableDeclaration","src":"766:32:97","value":{"arguments":[{"name":"headStart","nativeSrc":"780:9:97","nodeType":"YulIdentifier","src":"780:9:97"},{"name":"offset","nativeSrc":"791:6:97","nodeType":"YulIdentifier","src":"791:6:97"}],"functionName":{"name":"add","nativeSrc":"776:3:97","nodeType":"YulIdentifier","src":"776:3:97"},"nativeSrc":"776:22:97","nodeType":"YulFunctionCall","src":"776:22:97"},"variables":[{"name":"_2","nativeSrc":"770:2:97","nodeType":"YulTypedName","src":"770:2:97","type":""}]},{"body":{"nativeSrc":"846:16:97","nodeType":"YulBlock","src":"846:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"855:1:97","nodeType":"YulLiteral","src":"855:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"858:1:97","nodeType":"YulLiteral","src":"858:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"848:6:97","nodeType":"YulIdentifier","src":"848:6:97"},"nativeSrc":"848:12:97","nodeType":"YulFunctionCall","src":"848:12:97"},"nativeSrc":"848:12:97","nodeType":"YulExpressionStatement","src":"848:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"825:2:97","nodeType":"YulIdentifier","src":"825:2:97"},{"kind":"number","nativeSrc":"829:4:97","nodeType":"YulLiteral","src":"829:4:97","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"821:3:97","nodeType":"YulIdentifier","src":"821:3:97"},"nativeSrc":"821:13:97","nodeType":"YulFunctionCall","src":"821:13:97"},{"name":"dataEnd","nativeSrc":"836:7:97","nodeType":"YulIdentifier","src":"836:7:97"}],"functionName":{"name":"slt","nativeSrc":"817:3:97","nodeType":"YulIdentifier","src":"817:3:97"},"nativeSrc":"817:27:97","nodeType":"YulFunctionCall","src":"817:27:97"}],"functionName":{"name":"iszero","nativeSrc":"810:6:97","nodeType":"YulIdentifier","src":"810:6:97"},"nativeSrc":"810:35:97","nodeType":"YulFunctionCall","src":"810:35:97"},"nativeSrc":"807:55:97","nodeType":"YulIf","src":"807:55:97"},{"nativeSrc":"871:30:97","nodeType":"YulVariableDeclaration","src":"871:30:97","value":{"arguments":[{"name":"_2","nativeSrc":"898:2:97","nodeType":"YulIdentifier","src":"898:2:97"}],"functionName":{"name":"calldataload","nativeSrc":"885:12:97","nodeType":"YulIdentifier","src":"885:12:97"},"nativeSrc":"885:16:97","nodeType":"YulFunctionCall","src":"885:16:97"},"variables":[{"name":"length","nativeSrc":"875:6:97","nodeType":"YulTypedName","src":"875:6:97","type":""}]},{"body":{"nativeSrc":"928:16:97","nodeType":"YulBlock","src":"928:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"937:1:97","nodeType":"YulLiteral","src":"937:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"940:1:97","nodeType":"YulLiteral","src":"940:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"930:6:97","nodeType":"YulIdentifier","src":"930:6:97"},"nativeSrc":"930:12:97","nodeType":"YulFunctionCall","src":"930:12:97"},"nativeSrc":"930:12:97","nodeType":"YulExpressionStatement","src":"930:12:97"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"916:6:97","nodeType":"YulIdentifier","src":"916:6:97"},{"name":"_1","nativeSrc":"924:2:97","nodeType":"YulIdentifier","src":"924:2:97"}],"functionName":{"name":"gt","nativeSrc":"913:2:97","nodeType":"YulIdentifier","src":"913:2:97"},"nativeSrc":"913:14:97","nodeType":"YulFunctionCall","src":"913:14:97"},"nativeSrc":"910:34:97","nodeType":"YulIf","src":"910:34:97"},{"body":{"nativeSrc":"994:16:97","nodeType":"YulBlock","src":"994:16:97","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1003:1:97","nodeType":"YulLiteral","src":"1003:1:97","type":"","value":"0"},{"kind":"number","nativeSrc":"1006:1:97","nodeType":"YulLiteral","src":"1006:1:97","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"996:6:97","nodeType":"YulIdentifier","src":"996:6:97"},"nativeSrc":"996:12:97","nodeType":"YulFunctionCall","src":"996:12:97"},"nativeSrc":"996:12:97","nodeType":"YulExpressionStatement","src":"996:12:97"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"967:2:97","nodeType":"YulIdentifier","src":"967:2:97"},{"name":"length","nativeSrc":"971:6:97","nodeType":"YulIdentifier","src":"971:6:97"}],"functionName":{"name":"add","nativeSrc":"963:3:97","nodeType":"YulIdentifier","src":"963:3:97"},"nativeSrc":"963:15:97","nodeType":"YulFunctionCall","src":"963:15:97"},{"kind":"number","nativeSrc":"980:2:97","nodeType":"YulLiteral","src":"980:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"959:3:97","nodeType":"YulIdentifier","src":"959:3:97"},"nativeSrc":"959:24:97","nodeType":"YulFunctionCall","src":"959:24:97"},{"name":"dataEnd","nativeSrc":"985:7:97","nodeType":"YulIdentifier","src":"985:7:97"}],"functionName":{"name":"gt","nativeSrc":"956:2:97","nodeType":"YulIdentifier","src":"956:2:97"},"nativeSrc":"956:37:97","nodeType":"YulFunctionCall","src":"956:37:97"},"nativeSrc":"953:57:97","nodeType":"YulIf","src":"953:57:97"},{"nativeSrc":"1019:21:97","nodeType":"YulAssignment","src":"1019:21:97","value":{"arguments":[{"name":"_2","nativeSrc":"1033:2:97","nodeType":"YulIdentifier","src":"1033:2:97"},{"kind":"number","nativeSrc":"1037:2:97","nodeType":"YulLiteral","src":"1037:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1029:3:97","nodeType":"YulIdentifier","src":"1029:3:97"},"nativeSrc":"1029:11:97","nodeType":"YulFunctionCall","src":"1029:11:97"},"variableNames":[{"name":"value1","nativeSrc":"1019:6:97","nodeType":"YulIdentifier","src":"1019:6:97"}]},{"nativeSrc":"1049:16:97","nodeType":"YulAssignment","src":"1049:16:97","value":{"name":"length","nativeSrc":"1059:6:97","nodeType":"YulIdentifier","src":"1059:6:97"},"variableNames":[{"name":"value2","nativeSrc":"1049:6:97","nodeType":"YulIdentifier","src":"1049:6:97"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_calldata_ptr","nativeSrc":"406:665:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"462:9:97","nodeType":"YulTypedName","src":"462:9:97","type":""},{"name":"dataEnd","nativeSrc":"473:7:97","nodeType":"YulTypedName","src":"473:7:97","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"485:6:97","nodeType":"YulTypedName","src":"485:6:97","type":""},{"name":"value1","nativeSrc":"493:6:97","nodeType":"YulTypedName","src":"493:6:97","type":""},{"name":"value2","nativeSrc":"501:6:97","nodeType":"YulTypedName","src":"501:6:97","type":""}],"src":"406:665:97"},{"body":{"nativeSrc":"1177:125:97","nodeType":"YulBlock","src":"1177:125:97","statements":[{"nativeSrc":"1187:26:97","nodeType":"YulAssignment","src":"1187:26:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1199:9:97","nodeType":"YulIdentifier","src":"1199:9:97"},{"kind":"number","nativeSrc":"1210:2:97","nodeType":"YulLiteral","src":"1210:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1195:3:97","nodeType":"YulIdentifier","src":"1195:3:97"},"nativeSrc":"1195:18:97","nodeType":"YulFunctionCall","src":"1195:18:97"},"variableNames":[{"name":"tail","nativeSrc":"1187:4:97","nodeType":"YulIdentifier","src":"1187:4:97"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1229:9:97","nodeType":"YulIdentifier","src":"1229:9:97"},{"arguments":[{"name":"value0","nativeSrc":"1244:6:97","nodeType":"YulIdentifier","src":"1244:6:97"},{"kind":"number","nativeSrc":"1252:42:97","nodeType":"YulLiteral","src":"1252:42:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1240:3:97","nodeType":"YulIdentifier","src":"1240:3:97"},"nativeSrc":"1240:55:97","nodeType":"YulFunctionCall","src":"1240:55:97"}],"functionName":{"name":"mstore","nativeSrc":"1222:6:97","nodeType":"YulIdentifier","src":"1222:6:97"},"nativeSrc":"1222:74:97","nodeType":"YulFunctionCall","src":"1222:74:97"},"nativeSrc":"1222:74:97","nodeType":"YulExpressionStatement","src":"1222:74:97"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"1076:226:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1146:9:97","nodeType":"YulTypedName","src":"1146:9:97","type":""},{"name":"value0","nativeSrc":"1157:6:97","nodeType":"YulTypedName","src":"1157:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1168:4:97","nodeType":"YulTypedName","src":"1168:4:97","type":""}],"src":"1076:226:97"},{"body":{"nativeSrc":"1481:296:97","nodeType":"YulBlock","src":"1481:296:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1498:9:97","nodeType":"YulIdentifier","src":"1498:9:97"},{"kind":"number","nativeSrc":"1509:2:97","nodeType":"YulLiteral","src":"1509:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"1491:6:97","nodeType":"YulIdentifier","src":"1491:6:97"},"nativeSrc":"1491:21:97","nodeType":"YulFunctionCall","src":"1491:21:97"},"nativeSrc":"1491:21:97","nodeType":"YulExpressionStatement","src":"1491:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1532:9:97","nodeType":"YulIdentifier","src":"1532:9:97"},{"kind":"number","nativeSrc":"1543:2:97","nodeType":"YulLiteral","src":"1543:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1528:3:97","nodeType":"YulIdentifier","src":"1528:3:97"},"nativeSrc":"1528:18:97","nodeType":"YulFunctionCall","src":"1528:18:97"},{"kind":"number","nativeSrc":"1548:2:97","nodeType":"YulLiteral","src":"1548:2:97","type":"","value":"66"}],"functionName":{"name":"mstore","nativeSrc":"1521:6:97","nodeType":"YulIdentifier","src":"1521:6:97"},"nativeSrc":"1521:30:97","nodeType":"YulFunctionCall","src":"1521:30:97"},"nativeSrc":"1521:30:97","nodeType":"YulExpressionStatement","src":"1521:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1571:9:97","nodeType":"YulIdentifier","src":"1571:9:97"},{"kind":"number","nativeSrc":"1582:2:97","nodeType":"YulLiteral","src":"1582:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1567:3:97","nodeType":"YulIdentifier","src":"1567:3:97"},"nativeSrc":"1567:18:97","nodeType":"YulFunctionCall","src":"1567:18:97"},{"hexValue":"5472616e73706172656e745570677261646561626c6550726f78793a2061646d","kind":"string","nativeSrc":"1587:34:97","nodeType":"YulLiteral","src":"1587:34:97","type":"","value":"TransparentUpgradeableProxy: adm"}],"functionName":{"name":"mstore","nativeSrc":"1560:6:97","nodeType":"YulIdentifier","src":"1560:6:97"},"nativeSrc":"1560:62:97","nodeType":"YulFunctionCall","src":"1560:62:97"},"nativeSrc":"1560:62:97","nodeType":"YulExpressionStatement","src":"1560:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1642:9:97","nodeType":"YulIdentifier","src":"1642:9:97"},{"kind":"number","nativeSrc":"1653:2:97","nodeType":"YulLiteral","src":"1653:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"1638:3:97","nodeType":"YulIdentifier","src":"1638:3:97"},"nativeSrc":"1638:18:97","nodeType":"YulFunctionCall","src":"1638:18:97"},{"hexValue":"696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267","kind":"string","nativeSrc":"1658:34:97","nodeType":"YulLiteral","src":"1658:34:97","type":"","value":"in cannot fallback to proxy targ"}],"functionName":{"name":"mstore","nativeSrc":"1631:6:97","nodeType":"YulIdentifier","src":"1631:6:97"},"nativeSrc":"1631:62:97","nodeType":"YulFunctionCall","src":"1631:62:97"},"nativeSrc":"1631:62:97","nodeType":"YulExpressionStatement","src":"1631:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1713:9:97","nodeType":"YulIdentifier","src":"1713:9:97"},{"kind":"number","nativeSrc":"1724:3:97","nodeType":"YulLiteral","src":"1724:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"1709:3:97","nodeType":"YulIdentifier","src":"1709:3:97"},"nativeSrc":"1709:19:97","nodeType":"YulFunctionCall","src":"1709:19:97"},{"hexValue":"6574","kind":"string","nativeSrc":"1730:4:97","nodeType":"YulLiteral","src":"1730:4:97","type":"","value":"et"}],"functionName":{"name":"mstore","nativeSrc":"1702:6:97","nodeType":"YulIdentifier","src":"1702:6:97"},"nativeSrc":"1702:33:97","nodeType":"YulFunctionCall","src":"1702:33:97"},"nativeSrc":"1702:33:97","nodeType":"YulExpressionStatement","src":"1702:33:97"},{"nativeSrc":"1744:27:97","nodeType":"YulAssignment","src":"1744:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"1756:9:97","nodeType":"YulIdentifier","src":"1756:9:97"},{"kind":"number","nativeSrc":"1767:3:97","nodeType":"YulLiteral","src":"1767:3:97","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"1752:3:97","nodeType":"YulIdentifier","src":"1752:3:97"},"nativeSrc":"1752:19:97","nodeType":"YulFunctionCall","src":"1752:19:97"},"variableNames":[{"name":"tail","nativeSrc":"1744:4:97","nodeType":"YulIdentifier","src":"1744:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"1307:470:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1458:9:97","nodeType":"YulTypedName","src":"1458:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1472:4:97","nodeType":"YulTypedName","src":"1472:4:97","type":""}],"src":"1307:470:97"},{"body":{"nativeSrc":"1956:235:97","nodeType":"YulBlock","src":"1956:235:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1973:9:97","nodeType":"YulIdentifier","src":"1973:9:97"},{"kind":"number","nativeSrc":"1984:2:97","nodeType":"YulLiteral","src":"1984:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"1966:6:97","nodeType":"YulIdentifier","src":"1966:6:97"},"nativeSrc":"1966:21:97","nodeType":"YulFunctionCall","src":"1966:21:97"},"nativeSrc":"1966:21:97","nodeType":"YulExpressionStatement","src":"1966:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2007:9:97","nodeType":"YulIdentifier","src":"2007:9:97"},{"kind":"number","nativeSrc":"2018:2:97","nodeType":"YulLiteral","src":"2018:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2003:3:97","nodeType":"YulIdentifier","src":"2003:3:97"},"nativeSrc":"2003:18:97","nodeType":"YulFunctionCall","src":"2003:18:97"},{"kind":"number","nativeSrc":"2023:2:97","nodeType":"YulLiteral","src":"2023:2:97","type":"","value":"45"}],"functionName":{"name":"mstore","nativeSrc":"1996:6:97","nodeType":"YulIdentifier","src":"1996:6:97"},"nativeSrc":"1996:30:97","nodeType":"YulFunctionCall","src":"1996:30:97"},"nativeSrc":"1996:30:97","nodeType":"YulExpressionStatement","src":"1996:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2046:9:97","nodeType":"YulIdentifier","src":"2046:9:97"},{"kind":"number","nativeSrc":"2057:2:97","nodeType":"YulLiteral","src":"2057:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2042:3:97","nodeType":"YulIdentifier","src":"2042:3:97"},"nativeSrc":"2042:18:97","nodeType":"YulFunctionCall","src":"2042:18:97"},{"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e","kind":"string","nativeSrc":"2062:34:97","nodeType":"YulLiteral","src":"2062:34:97","type":"","value":"ERC1967: new implementation is n"}],"functionName":{"name":"mstore","nativeSrc":"2035:6:97","nodeType":"YulIdentifier","src":"2035:6:97"},"nativeSrc":"2035:62:97","nodeType":"YulFunctionCall","src":"2035:62:97"},"nativeSrc":"2035:62:97","nodeType":"YulExpressionStatement","src":"2035:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2117:9:97","nodeType":"YulIdentifier","src":"2117:9:97"},{"kind":"number","nativeSrc":"2128:2:97","nodeType":"YulLiteral","src":"2128:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2113:3:97","nodeType":"YulIdentifier","src":"2113:3:97"},"nativeSrc":"2113:18:97","nodeType":"YulFunctionCall","src":"2113:18:97"},{"hexValue":"6f74206120636f6e7472616374","kind":"string","nativeSrc":"2133:15:97","nodeType":"YulLiteral","src":"2133:15:97","type":"","value":"ot a contract"}],"functionName":{"name":"mstore","nativeSrc":"2106:6:97","nodeType":"YulIdentifier","src":"2106:6:97"},"nativeSrc":"2106:43:97","nodeType":"YulFunctionCall","src":"2106:43:97"},"nativeSrc":"2106:43:97","nodeType":"YulExpressionStatement","src":"2106:43:97"},{"nativeSrc":"2158:27:97","nodeType":"YulAssignment","src":"2158:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2170:9:97","nodeType":"YulIdentifier","src":"2170:9:97"},{"kind":"number","nativeSrc":"2181:3:97","nodeType":"YulLiteral","src":"2181:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"2166:3:97","nodeType":"YulIdentifier","src":"2166:3:97"},"nativeSrc":"2166:19:97","nodeType":"YulFunctionCall","src":"2166:19:97"},"variableNames":[{"name":"tail","nativeSrc":"2158:4:97","nodeType":"YulIdentifier","src":"2158:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"1782:409:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1933:9:97","nodeType":"YulTypedName","src":"1933:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1947:4:97","nodeType":"YulTypedName","src":"1947:4:97","type":""}],"src":"1782:409:97"},{"body":{"nativeSrc":"2370:228:97","nodeType":"YulBlock","src":"2370:228:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2387:9:97","nodeType":"YulIdentifier","src":"2387:9:97"},{"kind":"number","nativeSrc":"2398:2:97","nodeType":"YulLiteral","src":"2398:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"2380:6:97","nodeType":"YulIdentifier","src":"2380:6:97"},"nativeSrc":"2380:21:97","nodeType":"YulFunctionCall","src":"2380:21:97"},"nativeSrc":"2380:21:97","nodeType":"YulExpressionStatement","src":"2380:21:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2421:9:97","nodeType":"YulIdentifier","src":"2421:9:97"},{"kind":"number","nativeSrc":"2432:2:97","nodeType":"YulLiteral","src":"2432:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2417:3:97","nodeType":"YulIdentifier","src":"2417:3:97"},"nativeSrc":"2417:18:97","nodeType":"YulFunctionCall","src":"2417:18:97"},{"kind":"number","nativeSrc":"2437:2:97","nodeType":"YulLiteral","src":"2437:2:97","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"2410:6:97","nodeType":"YulIdentifier","src":"2410:6:97"},"nativeSrc":"2410:30:97","nodeType":"YulFunctionCall","src":"2410:30:97"},"nativeSrc":"2410:30:97","nodeType":"YulExpressionStatement","src":"2410:30:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2460:9:97","nodeType":"YulIdentifier","src":"2460:9:97"},{"kind":"number","nativeSrc":"2471:2:97","nodeType":"YulLiteral","src":"2471:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2456:3:97","nodeType":"YulIdentifier","src":"2456:3:97"},"nativeSrc":"2456:18:97","nodeType":"YulFunctionCall","src":"2456:18:97"},{"hexValue":"416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f","kind":"string","nativeSrc":"2476:34:97","nodeType":"YulLiteral","src":"2476:34:97","type":"","value":"Address: delegate call to non-co"}],"functionName":{"name":"mstore","nativeSrc":"2449:6:97","nodeType":"YulIdentifier","src":"2449:6:97"},"nativeSrc":"2449:62:97","nodeType":"YulFunctionCall","src":"2449:62:97"},"nativeSrc":"2449:62:97","nodeType":"YulExpressionStatement","src":"2449:62:97"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2531:9:97","nodeType":"YulIdentifier","src":"2531:9:97"},{"kind":"number","nativeSrc":"2542:2:97","nodeType":"YulLiteral","src":"2542:2:97","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2527:3:97","nodeType":"YulIdentifier","src":"2527:3:97"},"nativeSrc":"2527:18:97","nodeType":"YulFunctionCall","src":"2527:18:97"},{"hexValue":"6e7472616374","kind":"string","nativeSrc":"2547:8:97","nodeType":"YulLiteral","src":"2547:8:97","type":"","value":"ntract"}],"functionName":{"name":"mstore","nativeSrc":"2520:6:97","nodeType":"YulIdentifier","src":"2520:6:97"},"nativeSrc":"2520:36:97","nodeType":"YulFunctionCall","src":"2520:36:97"},"nativeSrc":"2520:36:97","nodeType":"YulExpressionStatement","src":"2520:36:97"},{"nativeSrc":"2565:27:97","nodeType":"YulAssignment","src":"2565:27:97","value":{"arguments":[{"name":"headStart","nativeSrc":"2577:9:97","nodeType":"YulIdentifier","src":"2577:9:97"},{"kind":"number","nativeSrc":"2588:3:97","nodeType":"YulLiteral","src":"2588:3:97","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"2573:3:97","nodeType":"YulIdentifier","src":"2573:3:97"},"nativeSrc":"2573:19:97","nodeType":"YulFunctionCall","src":"2573:19:97"},"variableNames":[{"name":"tail","nativeSrc":"2565:4:97","nodeType":"YulIdentifier","src":"2565:4:97"}]}]},"name":"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2196:402:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2347:9:97","nodeType":"YulTypedName","src":"2347:9:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2361:4:97","nodeType":"YulTypedName","src":"2361:4:97","type":""}],"src":"2196:402:97"},{"body":{"nativeSrc":"2669:184:97","nodeType":"YulBlock","src":"2669:184:97","statements":[{"nativeSrc":"2679:10:97","nodeType":"YulVariableDeclaration","src":"2679:10:97","value":{"kind":"number","nativeSrc":"2688:1:97","nodeType":"YulLiteral","src":"2688:1:97","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"2683:1:97","nodeType":"YulTypedName","src":"2683:1:97","type":""}]},{"body":{"nativeSrc":"2748:63:97","nodeType":"YulBlock","src":"2748:63:97","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"2773:3:97","nodeType":"YulIdentifier","src":"2773:3:97"},{"name":"i","nativeSrc":"2778:1:97","nodeType":"YulIdentifier","src":"2778:1:97"}],"functionName":{"name":"add","nativeSrc":"2769:3:97","nodeType":"YulIdentifier","src":"2769:3:97"},"nativeSrc":"2769:11:97","nodeType":"YulFunctionCall","src":"2769:11:97"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2792:3:97","nodeType":"YulIdentifier","src":"2792:3:97"},{"name":"i","nativeSrc":"2797:1:97","nodeType":"YulIdentifier","src":"2797:1:97"}],"functionName":{"name":"add","nativeSrc":"2788:3:97","nodeType":"YulIdentifier","src":"2788:3:97"},"nativeSrc":"2788:11:97","nodeType":"YulFunctionCall","src":"2788:11:97"}],"functionName":{"name":"mload","nativeSrc":"2782:5:97","nodeType":"YulIdentifier","src":"2782:5:97"},"nativeSrc":"2782:18:97","nodeType":"YulFunctionCall","src":"2782:18:97"}],"functionName":{"name":"mstore","nativeSrc":"2762:6:97","nodeType":"YulIdentifier","src":"2762:6:97"},"nativeSrc":"2762:39:97","nodeType":"YulFunctionCall","src":"2762:39:97"},"nativeSrc":"2762:39:97","nodeType":"YulExpressionStatement","src":"2762:39:97"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"2709:1:97","nodeType":"YulIdentifier","src":"2709:1:97"},{"name":"length","nativeSrc":"2712:6:97","nodeType":"YulIdentifier","src":"2712:6:97"}],"functionName":{"name":"lt","nativeSrc":"2706:2:97","nodeType":"YulIdentifier","src":"2706:2:97"},"nativeSrc":"2706:13:97","nodeType":"YulFunctionCall","src":"2706:13:97"},"nativeSrc":"2698:113:97","nodeType":"YulForLoop","post":{"nativeSrc":"2720:19:97","nodeType":"YulBlock","src":"2720:19:97","statements":[{"nativeSrc":"2722:15:97","nodeType":"YulAssignment","src":"2722:15:97","value":{"arguments":[{"name":"i","nativeSrc":"2731:1:97","nodeType":"YulIdentifier","src":"2731:1:97"},{"kind":"number","nativeSrc":"2734:2:97","nodeType":"YulLiteral","src":"2734:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2727:3:97","nodeType":"YulIdentifier","src":"2727:3:97"},"nativeSrc":"2727:10:97","nodeType":"YulFunctionCall","src":"2727:10:97"},"variableNames":[{"name":"i","nativeSrc":"2722:1:97","nodeType":"YulIdentifier","src":"2722:1:97"}]}]},"pre":{"nativeSrc":"2702:3:97","nodeType":"YulBlock","src":"2702:3:97","statements":[]},"src":"2698:113:97"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"2831:3:97","nodeType":"YulIdentifier","src":"2831:3:97"},{"name":"length","nativeSrc":"2836:6:97","nodeType":"YulIdentifier","src":"2836:6:97"}],"functionName":{"name":"add","nativeSrc":"2827:3:97","nodeType":"YulIdentifier","src":"2827:3:97"},"nativeSrc":"2827:16:97","nodeType":"YulFunctionCall","src":"2827:16:97"},{"kind":"number","nativeSrc":"2845:1:97","nodeType":"YulLiteral","src":"2845:1:97","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2820:6:97","nodeType":"YulIdentifier","src":"2820:6:97"},"nativeSrc":"2820:27:97","nodeType":"YulFunctionCall","src":"2820:27:97"},"nativeSrc":"2820:27:97","nodeType":"YulExpressionStatement","src":"2820:27:97"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2603:250:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"2647:3:97","nodeType":"YulTypedName","src":"2647:3:97","type":""},{"name":"dst","nativeSrc":"2652:3:97","nodeType":"YulTypedName","src":"2652:3:97","type":""},{"name":"length","nativeSrc":"2657:6:97","nodeType":"YulTypedName","src":"2657:6:97","type":""}],"src":"2603:250:97"},{"body":{"nativeSrc":"2995:150:97","nodeType":"YulBlock","src":"2995:150:97","statements":[{"nativeSrc":"3005:27:97","nodeType":"YulVariableDeclaration","src":"3005:27:97","value":{"arguments":[{"name":"value0","nativeSrc":"3025:6:97","nodeType":"YulIdentifier","src":"3025:6:97"}],"functionName":{"name":"mload","nativeSrc":"3019:5:97","nodeType":"YulIdentifier","src":"3019:5:97"},"nativeSrc":"3019:13:97","nodeType":"YulFunctionCall","src":"3019:13:97"},"variables":[{"name":"length","nativeSrc":"3009:6:97","nodeType":"YulTypedName","src":"3009:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"3080:6:97","nodeType":"YulIdentifier","src":"3080:6:97"},{"kind":"number","nativeSrc":"3088:4:97","nodeType":"YulLiteral","src":"3088:4:97","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3076:3:97","nodeType":"YulIdentifier","src":"3076:3:97"},"nativeSrc":"3076:17:97","nodeType":"YulFunctionCall","src":"3076:17:97"},{"name":"pos","nativeSrc":"3095:3:97","nodeType":"YulIdentifier","src":"3095:3:97"},{"name":"length","nativeSrc":"3100:6:97","nodeType":"YulIdentifier","src":"3100:6:97"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"3041:34:97","nodeType":"YulIdentifier","src":"3041:34:97"},"nativeSrc":"3041:66:97","nodeType":"YulFunctionCall","src":"3041:66:97"},"nativeSrc":"3041:66:97","nodeType":"YulExpressionStatement","src":"3041:66:97"},{"nativeSrc":"3116:23:97","nodeType":"YulAssignment","src":"3116:23:97","value":{"arguments":[{"name":"pos","nativeSrc":"3127:3:97","nodeType":"YulIdentifier","src":"3127:3:97"},{"name":"length","nativeSrc":"3132:6:97","nodeType":"YulIdentifier","src":"3132:6:97"}],"functionName":{"name":"add","nativeSrc":"3123:3:97","nodeType":"YulIdentifier","src":"3123:3:97"},"nativeSrc":"3123:16:97","nodeType":"YulFunctionCall","src":"3123:16:97"},"variableNames":[{"name":"end","nativeSrc":"3116:3:97","nodeType":"YulIdentifier","src":"3116:3:97"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"2858:287:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"2971:3:97","nodeType":"YulTypedName","src":"2971:3:97","type":""},{"name":"value0","nativeSrc":"2976:6:97","nodeType":"YulTypedName","src":"2976:6:97","type":""}],"returnVariables":[{"name":"end","nativeSrc":"2987:3:97","nodeType":"YulTypedName","src":"2987:3:97","type":""}],"src":"2858:287:97"},{"body":{"nativeSrc":"3271:334:97","nodeType":"YulBlock","src":"3271:334:97","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3288:9:97","nodeType":"YulIdentifier","src":"3288:9:97"},{"kind":"number","nativeSrc":"3299:2:97","nodeType":"YulLiteral","src":"3299:2:97","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"3281:6:97","nodeType":"YulIdentifier","src":"3281:6:97"},"nativeSrc":"3281:21:97","nodeType":"YulFunctionCall","src":"3281:21:97"},"nativeSrc":"3281:21:97","nodeType":"YulExpressionStatement","src":"3281:21:97"},{"nativeSrc":"3311:27:97","nodeType":"YulVariableDeclaration","src":"3311:27:97","value":{"arguments":[{"name":"value0","nativeSrc":"3331:6:97","nodeType":"YulIdentifier","src":"3331:6:97"}],"functionName":{"name":"mload","nativeSrc":"3325:5:97","nodeType":"YulIdentifier","src":"3325:5:97"},"nativeSrc":"3325:13:97","nodeType":"YulFunctionCall","src":"3325:13:97"},"variables":[{"name":"length","nativeSrc":"3315:6:97","nodeType":"YulTypedName","src":"3315:6:97","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3358:9:97","nodeType":"YulIdentifier","src":"3358:9:97"},{"kind":"number","nativeSrc":"3369:2:97","nodeType":"YulLiteral","src":"3369:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3354:3:97","nodeType":"YulIdentifier","src":"3354:3:97"},"nativeSrc":"3354:18:97","nodeType":"YulFunctionCall","src":"3354:18:97"},{"name":"length","nativeSrc":"3374:6:97","nodeType":"YulIdentifier","src":"3374:6:97"}],"functionName":{"name":"mstore","nativeSrc":"3347:6:97","nodeType":"YulIdentifier","src":"3347:6:97"},"nativeSrc":"3347:34:97","nodeType":"YulFunctionCall","src":"3347:34:97"},"nativeSrc":"3347:34:97","nodeType":"YulExpressionStatement","src":"3347:34:97"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"3429:6:97","nodeType":"YulIdentifier","src":"3429:6:97"},{"kind":"number","nativeSrc":"3437:2:97","nodeType":"YulLiteral","src":"3437:2:97","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3425:3:97","nodeType":"YulIdentifier","src":"3425:3:97"},"nativeSrc":"3425:15:97","nodeType":"YulFunctionCall","src":"3425:15:97"},{"arguments":[{"name":"headStart","nativeSrc":"3446:9:97","nodeType":"YulIdentifier","src":"3446:9:97"},{"kind":"number","nativeSrc":"3457:2:97","nodeType":"YulLiteral","src":"3457:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3442:3:97","nodeType":"YulIdentifier","src":"3442:3:97"},"nativeSrc":"3442:18:97","nodeType":"YulFunctionCall","src":"3442:18:97"},{"name":"length","nativeSrc":"3462:6:97","nodeType":"YulIdentifier","src":"3462:6:97"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"3390:34:97","nodeType":"YulIdentifier","src":"3390:34:97"},"nativeSrc":"3390:79:97","nodeType":"YulFunctionCall","src":"3390:79:97"},"nativeSrc":"3390:79:97","nodeType":"YulExpressionStatement","src":"3390:79:97"},{"nativeSrc":"3478:121:97","nodeType":"YulAssignment","src":"3478:121:97","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3494:9:97","nodeType":"YulIdentifier","src":"3494:9:97"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"3513:6:97","nodeType":"YulIdentifier","src":"3513:6:97"},{"kind":"number","nativeSrc":"3521:2:97","nodeType":"YulLiteral","src":"3521:2:97","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"3509:3:97","nodeType":"YulIdentifier","src":"3509:3:97"},"nativeSrc":"3509:15:97","nodeType":"YulFunctionCall","src":"3509:15:97"},{"kind":"number","nativeSrc":"3526:66:97","nodeType":"YulLiteral","src":"3526:66:97","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"3505:3:97","nodeType":"YulIdentifier","src":"3505:3:97"},"nativeSrc":"3505:88:97","nodeType":"YulFunctionCall","src":"3505:88:97"}],"functionName":{"name":"add","nativeSrc":"3490:3:97","nodeType":"YulIdentifier","src":"3490:3:97"},"nativeSrc":"3490:104:97","nodeType":"YulFunctionCall","src":"3490:104:97"},{"kind":"number","nativeSrc":"3596:2:97","nodeType":"YulLiteral","src":"3596:2:97","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3486:3:97","nodeType":"YulIdentifier","src":"3486:3:97"},"nativeSrc":"3486:113:97","nodeType":"YulFunctionCall","src":"3486:113:97"},"variableNames":[{"name":"tail","nativeSrc":"3478:4:97","nodeType":"YulIdentifier","src":"3478:4:97"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3150:455:97","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3240:9:97","nodeType":"YulTypedName","src":"3240:9:97","type":""},{"name":"value0","nativeSrc":"3251:6:97","nodeType":"YulTypedName","src":"3251:6:97","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3262:4:97","nodeType":"YulTypedName","src":"3262:4:97","type":""}],"src":"3150:455:97"}]},"contents":"{\n    { }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n    }\n    function abi_decode_tuple_t_addresst_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        let offset := calldataload(add(headStart, 32))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n        let length := calldataload(_2)\n        if gt(length, _1) { revert(0, 0) }\n        if gt(add(add(_2, length), 32), dataEnd) { revert(0, 0) }\n        value1 := add(_2, 32)\n        value2 := length\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 66)\n        mstore(add(headStart, 64), \"TransparentUpgradeableProxy: adm\")\n        mstore(add(headStart, 96), \"in cannot fallback to proxy targ\")\n        mstore(add(headStart, 128), \"et\")\n        tail := add(headStart, 160)\n    }\n    function abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 45)\n        mstore(add(headStart, 64), \"ERC1967: new implementation is n\")\n        mstore(add(headStart, 96), \"ot a contract\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Address: delegate call to non-co\")\n        mstore(add(headStart, 96), \"ntract\")\n        tail := add(headStart, 128)\n    }\n    function copy_memory_to_memory_with_cleanup(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n        end := add(pos, length)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        copy_memory_to_memory_with_cleanup(add(value0, 32), add(headStart, 64), length)\n        tail := add(add(headStart, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 64)\n    }\n}","id":97,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"22538":[{"length":32,"start":252},{"length":32,"start":351},{"length":32,"start":494},{"length":32,"start":581},{"length":32,"start":643},{"length":32,"start":679}]},"linkReferences":{},"object":"6080604052600436106100435760003560e01c80633659cfe61461005a5780634f1ef2861461007a5780635c60da1b1461008d578063f851a440146100cb57610052565b36610052576100506100e0565b005b6100506100e0565b34801561006657600080fd5b5061005061007536600461074b565b6100fa565b610050610088366004610766565b61015d565b34801561009957600080fd5b506100a26101ea565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100d757600080fd5b506100a2610241565b6100e86102a5565b6100f86100f3610395565b6103d5565b565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16330361015557610152816040518060200160405280600081525060006103f9565b50565b6101526100e0565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1633036101e2576101dd8383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250600192506103f9915050565b505050565b6101dd6100e0565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16330361023657610231610395565b905090565b61023e6100e0565b90565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16330361023657507f000000000000000000000000000000000000000000000000000000000000000090565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1633036100f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b60006102317f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b3660008037600080366000845af43d6000803e8080156103f4573d6000f35b3d6000fd5b61040283610424565b60008251118061040f5750805b156101dd5761041e8383610471565b50505050565b61042d8161049d565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060610496838360405180606001604052806027815260200161087b602791396105a7565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff81163b610541576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e747261637400000000000000000000000000000000000000606482015260840161038c565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b606073ffffffffffffffffffffffffffffffffffffffff84163b61064d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e74726163740000000000000000000000000000000000000000000000000000606482015260840161038c565b6000808573ffffffffffffffffffffffffffffffffffffffff1685604051610675919061080d565b600060405180830381855af49150503d80600081146106b0576040519150601f19603f3d011682016040523d82523d6000602084013e6106b5565b606091505b50915091506106c58282866106cf565b9695505050505050565b606083156106de575081610496565b8251156106ee5782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038c9190610829565b803573ffffffffffffffffffffffffffffffffffffffff8116811461074657600080fd5b919050565b60006020828403121561075d57600080fd5b61049682610722565b60008060006040848603121561077b57600080fd5b61078484610722565b9250602084013567ffffffffffffffff808211156107a157600080fd5b818601915086601f8301126107b557600080fd5b8135818111156107c457600080fd5b8760208285010111156107d657600080fd5b6020830194508093505050509250925092565b60005b838110156108045781810151838201526020016107ec565b50506000910152565b6000825161081f8184602087016107e9565b9190910192915050565b60208152600082518060208401526108488160408501602087016107e9565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212200136fd34dfdb0d97935b77a84c836b17bf901cefa29ed5b1ef847b08c6cba8d064736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x43 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x5A JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x7A JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0xCB JUMPI PUSH2 0x52 JUMP JUMPDEST CALLDATASIZE PUSH2 0x52 JUMPI PUSH2 0x50 PUSH2 0xE0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x50 PUSH2 0xE0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x50 PUSH2 0x75 CALLDATASIZE PUSH1 0x4 PUSH2 0x74B JUMP JUMPDEST PUSH2 0xFA JUMP JUMPDEST PUSH2 0x50 PUSH2 0x88 CALLDATASIZE PUSH1 0x4 PUSH2 0x766 JUMP JUMPDEST PUSH2 0x15D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x99 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA2 PUSH2 0x1EA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA2 PUSH2 0x241 JUMP JUMPDEST PUSH2 0xE8 PUSH2 0x2A5 JUMP JUMPDEST PUSH2 0xF8 PUSH2 0xF3 PUSH2 0x395 JUMP JUMPDEST PUSH2 0x3D5 JUMP JUMPDEST JUMP JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER SUB PUSH2 0x155 JUMPI PUSH2 0x152 DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH1 0x0 PUSH2 0x3F9 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x152 PUSH2 0xE0 JUMP JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER SUB PUSH2 0x1E2 JUMPI PUSH2 0x1DD DUP4 DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH1 0x1 SWAP3 POP PUSH2 0x3F9 SWAP2 POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x1DD PUSH2 0xE0 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER SUB PUSH2 0x236 JUMPI PUSH2 0x231 PUSH2 0x395 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x23E PUSH2 0xE0 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER SUB PUSH2 0x236 JUMPI POP PUSH32 0x0 SWAP1 JUMP JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER SUB PUSH2 0xF8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x42 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5472616E73706172656E745570677261646561626C6550726F78793A2061646D PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x696E2063616E6E6F742066616C6C6261636B20746F2070726F78792074617267 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6574000000000000000000000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x231 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH2 0x3F4 JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH2 0x402 DUP4 PUSH2 0x424 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT DUP1 PUSH2 0x40F JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x1DD JUMPI PUSH2 0x41E DUP4 DUP4 PUSH2 0x471 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x42D DUP2 PUSH2 0x49D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x496 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x87B PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x5A7 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND EXTCODESIZE PUSH2 0x541 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F74206120636F6E747261637400000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x38C JUMP JUMPDEST PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND EXTCODESIZE PUSH2 0x64D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E74726163740000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x38C JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x675 SWAP2 SWAP1 PUSH2 0x80D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x6B0 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x6B5 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x6C5 DUP3 DUP3 DUP7 PUSH2 0x6CF JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x6DE JUMPI POP DUP2 PUSH2 0x496 JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x6EE JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x38C SWAP2 SWAP1 PUSH2 0x829 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x746 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x75D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x496 DUP3 PUSH2 0x722 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x77B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x784 DUP5 PUSH2 0x722 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x7A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x7B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x7C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x7D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP5 POP DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x804 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x7EC JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x81F DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x7E9 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x848 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x7E9 JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP INVALID COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C6564A264 PUSH10 0x706673582212200136FD CALLVALUE 0xDF 0xDB 0xD SWAP8 SWAP4 JUMPDEST PUSH24 0xA84C836B17BF901CEFA29ED5B1EF847B08C6CBA8D064736F PUSH13 0x63430008190033000000000000 ","sourceMap":"1653:3648:95:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2903:11:88;:9;:11::i;:::-;1653:3648:95;;2680:11:88;:9;:11::i;4037:134:95:-;;;;;;;;;;-1:-1:-1;4037:134:95;;;;;:::i;:::-;;:::i;4547:164::-;;;;;;:::i;:::-;;:::i;3748:129::-;;;;;;;;;;;;;:::i;:::-;;;1252:42:97;1240:55;;;1222:74;;1210:2;1195:18;3748:129:95;;;;;;;3192:96;;;;;;;;;;;;;:::i;2327:110:88:-;2375:17;:15;:17::i;:::-;2402:28;2412:17;:15;:17::i;:::-;2402:9;:28::i;:::-;2327:110::o;4037:134:95:-;5286:6;2649:25;;:10;:25;2645:99;;4110:54:::1;4128:17;4147:9;;;;;;;;;;;::::0;4158:5:::1;4110:17;:54::i;:::-;4037:134:::0;:::o;2645:99::-;2722:11;:9;:11::i;4547:164::-;5286:6;2649:25;;:10;:25;2645:99;;4656:48:::1;4674:17;4693:4;;4656:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;4699:4:95::1;::::0;-1:-1:-1;4656:17:95::1;::::0;-1:-1:-1;;4656:48:95:i:1;:::-;4547:164:::0;;;:::o;2645:99::-;2722:11;:9;:11::i;3748:129::-;3800:23;5286:6;2649:25;;:10;:25;2645:99;;3853:17:::1;:15;:17::i;:::-;3835:35;;3748:129:::0;:::o;2645:99::-;2722:11;:9;:11::i;:::-;3748:129;:::o;3192:96::-;3235:14;5286:6;2649:25;;:10;:25;2645:99;;-1:-1:-1;5286:6:95;;3748:129::o;4986:207::-;5286:6;5057:25;;:10;:25;5049:104;;;;;;;1509:2:97;5049:104:95;;;1491:21:97;1548:2;1528:18;;;1521:30;1587:34;1567:18;;;1560:62;1658:34;1638:18;;;1631:62;1730:4;1709:19;;;1702:33;1752:19;;5049:104:95;;;;;;;;1240:140:86;1307:12;1338:35;1035:66:87;1385:54;;;;1306:140;953:895:88;1291:14;1288:1;1285;1272:34;1505:1;1502;1486:14;1483:1;1467:14;1460:5;1447:60;1581:16;1578:1;1575;1560:38;1619:6;1686:66;;;;1801:16;1798:1;1791:27;1686:66;1721:16;1718:1;1711:27;2188:295:87;2326:29;2337:17;2326:10;:29::i;:::-;2383:1;2369:4;:11;:15;:28;;;;2388:9;2369:28;2365:112;;;2413:53;2442:17;2461:4;2413:28;:53::i;:::-;;2188:295;;;:::o;1902:152::-;1968:37;1987:17;1968:18;:37::i;:::-;2020:27;;;;;;;;;;;1902:152;:::o;6575:198:92:-;6658:12;6689:77;6710:6;6718:4;6689:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6682:84;6575:198;-1:-1:-1;;;6575:198:92:o;1537:259:87:-;1470:19:92;;;;1610:95:87;;;;;;;1984:2:97;1610:95:87;;;1966:21:97;2023:2;2003:18;;;1996:30;2062:34;2042:18;;;2035:62;2133:15;2113:18;;;2106:43;2166:19;;1610:95:87;1782:409:97;1610:95:87;1035:66;1715:74;;;;;;;;;;;;;;;1537:259::o;6959:387:92:-;7100:12;1470:19;;;;7124:69;;;;;;;2398:2:97;7124:69:92;;;2380:21:97;2437:2;2417:18;;;2410:30;2476:34;2456:18;;;2449:62;2547:8;2527:18;;;2520:36;2573:19;;7124:69:92;2196:402:97;7124:69:92;7205:12;7219:23;7246:6;:19;;7266:4;7246:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7204:67;;;;7288:51;7305:7;7314:10;7326:12;7288:16;:51::i;:::-;7281:58;6959:387;-1:-1:-1;;;;;;6959:387:92:o;7566:692::-;7712:12;7740:7;7736:516;;;-1:-1:-1;7770:10:92;7763:17;;7736:516;7881:17;;:21;7877:365;;8075:10;8069:17;8135:15;8122:10;8118:2;8114:19;8107:44;7877:365;8214:12;8207:20;;;;;;;;;;;:::i;14:196:97:-;82:20;;142:42;131:54;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:186::-;274:6;327:2;315:9;306:7;302:23;298:32;295:52;;;343:1;340;333:12;295:52;366:29;385:9;366:29;:::i;406:665::-;485:6;493;501;554:2;542:9;533:7;529:23;525:32;522:52;;;570:1;567;560:12;522:52;593:29;612:9;593:29;:::i;:::-;583:39;;673:2;662:9;658:18;645:32;696:18;737:2;729:6;726:14;723:34;;;753:1;750;743:12;723:34;791:6;780:9;776:22;766:32;;836:7;829:4;825:2;821:13;817:27;807:55;;858:1;855;848:12;807:55;898:2;885:16;924:2;916:6;913:14;910:34;;;940:1;937;930:12;910:34;985:7;980:2;971:6;967:2;963:15;959:24;956:37;953:57;;;1006:1;1003;996:12;953:57;1037:2;1033;1029:11;1019:21;;1059:6;1049:16;;;;;406:665;;;;;:::o;2603:250::-;2688:1;2698:113;2712:6;2709:1;2706:13;2698:113;;;2788:11;;;2782:18;2769:11;;;2762:39;2734:2;2727:10;2698:113;;;-1:-1:-1;;2845:1:97;2827:16;;2820:27;2603:250::o;2858:287::-;2987:3;3025:6;3019:13;3041:66;3100:6;3095:3;3088:4;3080:6;3076:17;3041:66;:::i;:::-;3123:16;;;;;2858:287;-1:-1:-1;;2858:287:97:o;3150:455::-;3299:2;3288:9;3281:21;3262:4;3331:6;3325:13;3374:6;3369:2;3358:9;3354:18;3347:34;3390:79;3462:6;3457:2;3446:9;3442:18;3437:2;3429:6;3425:15;3390:79;:::i;:::-;3521:2;3509:15;3526:66;3505:88;3490:104;;;;3596:2;3486:113;;3150:455;-1:-1:-1;;3150:455:97:o"},"gasEstimates":{"creation":{"codeDepositCost":"452600","executionCost":"infinite","totalCost":"infinite"},"external":{"":"infinite","admin()":"infinite","implementation()":"infinite","upgradeTo(address)":"infinite","upgradeToAndCall(address,bytes)":"infinite"},"internal":{"_admin()":"infinite","_beforeFallback()":"infinite","_getAdmin()":"infinite"}},"methodIdentifiers":{"admin()":"f851a440","implementation()":"5c60da1b","upgradeTo(address)":"3659cfe6","upgradeToAndCall(address,bytes)":"4f1ef286"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_logic\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"admin_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"admin_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"implementation_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"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\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"This contract implements a proxy that is upgradeable by an admin. To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector clashing], which can potentially be used in an attack, this contract uses the https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two things that go hand in hand: 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if that call matches one of the admin functions exposed by the proxy itself. 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the implementation. If the admin tries to call a function on the implementation it will fail with an error that says \\\"admin cannot fallback to proxy target\\\". These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due to sudden errors when trying to call a function from the proxy implementation. Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way, you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy.\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is upgraded.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"admin()\":{\"details\":\"Returns the current admin. NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}. TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`\"},\"constructor\":{\"details\":\"Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}.\"},\"implementation()\":{\"details\":\"Returns the current implementation. NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}. TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`\"},\"upgradeTo(address)\":{\"details\":\"Upgrade the implementation of the proxy. NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}.\"},\"upgradeToAndCall(address,bytes)\":{\"details\":\"Upgrade the implementation of the proxy, and then call a function from the new implementation as specified by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the proxied contract. NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol\":\"OptimizedTransparentUpgradeableProxy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (interfaces/draft-IERC1822.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified\\n * proxy whose upgrades are fully controlled by the current implementation.\\n */\\ninterface IERC1822Proxiable {\\n    /**\\n     * @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation\\n     * address.\\n     *\\n     * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\\n     * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\\n     * function revert if invoked through a proxy.\\n     */\\n    function proxiableUUID() external view returns (bytes32);\\n}\\n\",\"keccak256\":\"0x93b4e21c931252739a1ec13ea31d3d35a5c068be3163ccab83e4d70c40355f03\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/ERC1967/ERC1967Proxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../Proxy.sol\\\";\\nimport \\\"./ERC1967Upgrade.sol\\\";\\n\\n/**\\n * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\\n * implementation address that can be changed. This address is stored in storage in the location specified by\\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the\\n * implementation behind the proxy.\\n */\\ncontract ERC1967Proxy is Proxy, ERC1967Upgrade {\\n    /**\\n     * @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`.\\n     *\\n     * If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded\\n     * function call, and allows initializating the storage of the proxy like a Solidity constructor.\\n     */\\n    constructor(address _logic, bytes memory _data) payable {\\n        assert(_IMPLEMENTATION_SLOT == bytes32(uint256(keccak256(\\\"eip1967.proxy.implementation\\\")) - 1));\\n        _upgradeToAndCall(_logic, _data, false);\\n    }\\n\\n    /**\\n     * @dev Returns the current implementation address.\\n     */\\n    function _implementation() internal view virtual override returns (address impl) {\\n        return ERC1967Upgrade._getImplementation();\\n    }\\n}\\n\",\"keccak256\":\"0x6309f9f39dc6f4f45a24f296543867aa358e32946cd6b2874627a996d606b3a0\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (proxy/ERC1967/ERC1967Upgrade.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../beacon/IBeacon.sol\\\";\\nimport \\\"../../interfaces/draft-IERC1822.sol\\\";\\nimport \\\"../../utils/Address.sol\\\";\\nimport \\\"../../utils/StorageSlot.sol\\\";\\n\\n/**\\n * @dev This abstract contract provides getters and event emitting update functions for\\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.\\n *\\n * _Available since v4.1._\\n *\\n * @custom:oz-upgrades-unsafe-allow delegatecall\\n */\\nabstract contract ERC1967Upgrade {\\n    // This is the keccak-256 hash of \\\"eip1967.proxy.rollback\\\" subtracted by 1\\n    bytes32 private constant _ROLLBACK_SLOT = 0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143;\\n\\n    /**\\n     * @dev Storage slot with the address of the current implementation.\\n     * This is the keccak-256 hash of \\\"eip1967.proxy.implementation\\\" subtracted by 1, and is\\n     * validated in the constructor.\\n     */\\n    bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\\n\\n    /**\\n     * @dev Emitted when the implementation is upgraded.\\n     */\\n    event Upgraded(address indexed implementation);\\n\\n    /**\\n     * @dev Returns the current implementation address.\\n     */\\n    function _getImplementation() internal view returns (address) {\\n        return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\\n    }\\n\\n    /**\\n     * @dev Stores a new address in the EIP1967 implementation slot.\\n     */\\n    function _setImplementation(address newImplementation) private {\\n        require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");\\n        StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\\n    }\\n\\n    /**\\n     * @dev Perform implementation upgrade\\n     *\\n     * Emits an {Upgraded} event.\\n     */\\n    function _upgradeTo(address newImplementation) internal {\\n        _setImplementation(newImplementation);\\n        emit Upgraded(newImplementation);\\n    }\\n\\n    /**\\n     * @dev Perform implementation upgrade with additional setup call.\\n     *\\n     * Emits an {Upgraded} event.\\n     */\\n    function _upgradeToAndCall(\\n        address newImplementation,\\n        bytes memory data,\\n        bool forceCall\\n    ) internal {\\n        _upgradeTo(newImplementation);\\n        if (data.length > 0 || forceCall) {\\n            Address.functionDelegateCall(newImplementation, data);\\n        }\\n    }\\n\\n    /**\\n     * @dev Perform implementation upgrade with security checks for UUPS proxies, and additional setup call.\\n     *\\n     * Emits an {Upgraded} event.\\n     */\\n    function _upgradeToAndCallUUPS(\\n        address newImplementation,\\n        bytes memory data,\\n        bool forceCall\\n    ) internal {\\n        // Upgrades from old implementations will perform a rollback test. This test requires the new\\n        // implementation to upgrade back to the old, non-ERC1822 compliant, implementation. Removing\\n        // this special case will break upgrade paths from old UUPS implementation to new ones.\\n        if (StorageSlot.getBooleanSlot(_ROLLBACK_SLOT).value) {\\n            _setImplementation(newImplementation);\\n        } else {\\n            try IERC1822Proxiable(newImplementation).proxiableUUID() returns (bytes32 slot) {\\n                require(slot == _IMPLEMENTATION_SLOT, \\\"ERC1967Upgrade: unsupported proxiableUUID\\\");\\n            } catch {\\n                revert(\\\"ERC1967Upgrade: new implementation is not UUPS\\\");\\n            }\\n            _upgradeToAndCall(newImplementation, data, forceCall);\\n        }\\n    }\\n\\n    /**\\n     * @dev Storage slot with the admin of the contract.\\n     * This is the keccak-256 hash of \\\"eip1967.proxy.admin\\\" subtracted by 1, and is\\n     * validated in the constructor.\\n     */\\n    bytes32 internal constant _ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;\\n\\n    /**\\n     * @dev Emitted when the admin account has changed.\\n     */\\n    event AdminChanged(address previousAdmin, address newAdmin);\\n\\n    /**\\n     * @dev Returns the current admin.\\n     */\\n    function _getAdmin() internal view virtual returns (address) {\\n        return StorageSlot.getAddressSlot(_ADMIN_SLOT).value;\\n    }\\n\\n    /**\\n     * @dev Stores a new address in the EIP1967 admin slot.\\n     */\\n    function _setAdmin(address newAdmin) private {\\n        require(newAdmin != address(0), \\\"ERC1967: new admin is the zero address\\\");\\n        StorageSlot.getAddressSlot(_ADMIN_SLOT).value = newAdmin;\\n    }\\n\\n    /**\\n     * @dev Changes the admin of the proxy.\\n     *\\n     * Emits an {AdminChanged} event.\\n     */\\n    function _changeAdmin(address newAdmin) internal {\\n        emit AdminChanged(_getAdmin(), newAdmin);\\n        _setAdmin(newAdmin);\\n    }\\n\\n    /**\\n     * @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\\n     * This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor.\\n     */\\n    bytes32 internal constant _BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50;\\n\\n    /**\\n     * @dev Emitted when the beacon is upgraded.\\n     */\\n    event BeaconUpgraded(address indexed beacon);\\n\\n    /**\\n     * @dev Returns the current beacon.\\n     */\\n    function _getBeacon() internal view returns (address) {\\n        return StorageSlot.getAddressSlot(_BEACON_SLOT).value;\\n    }\\n\\n    /**\\n     * @dev Stores a new beacon in the EIP1967 beacon slot.\\n     */\\n    function _setBeacon(address newBeacon) private {\\n        require(Address.isContract(newBeacon), \\\"ERC1967: new beacon is not a contract\\\");\\n        require(Address.isContract(IBeacon(newBeacon).implementation()), \\\"ERC1967: beacon implementation is not a contract\\\");\\n        StorageSlot.getAddressSlot(_BEACON_SLOT).value = newBeacon;\\n    }\\n\\n    /**\\n     * @dev Perform beacon upgrade with additional setup call. Note: This upgrades the address of the beacon, it does\\n     * not upgrade the implementation contained in the beacon (see {UpgradeableBeacon-_setImplementation} for that).\\n     *\\n     * Emits a {BeaconUpgraded} event.\\n     */\\n    function _upgradeBeaconToAndCall(\\n        address newBeacon,\\n        bytes memory data,\\n        bool forceCall\\n    ) internal {\\n        _setBeacon(newBeacon);\\n        emit BeaconUpgraded(newBeacon);\\n        if (data.length > 0 || forceCall) {\\n            Address.functionDelegateCall(IBeacon(newBeacon).implementation(), data);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x17668652127feebed0ce8d9431ef95ccc8c4292f03e3b8cf06c6ca16af396633\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (proxy/Proxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM\\n * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to\\n * be specified by overriding the virtual {_implementation} function.\\n *\\n * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a\\n * different contract through the {_delegate} function.\\n *\\n * The success and return data of the delegated call will be returned back to the caller of the proxy.\\n */\\nabstract contract Proxy {\\n    /**\\n     * @dev Delegates the current call to `implementation`.\\n     *\\n     * This function does not return to its internal call site, it will return directly to the external caller.\\n     */\\n    function _delegate(address implementation) internal virtual {\\n        assembly {\\n            // Copy msg.data. We take full control of memory in this inline assembly\\n            // block because it will not return to Solidity code. We overwrite the\\n            // Solidity scratch pad at memory position 0.\\n            calldatacopy(0, 0, calldatasize())\\n\\n            // Call the implementation.\\n            // out and outsize are 0 because we don't know the size yet.\\n            let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)\\n\\n            // Copy the returned data.\\n            returndatacopy(0, 0, returndatasize())\\n\\n            switch result\\n            // delegatecall returns 0 on error.\\n            case 0 {\\n                revert(0, returndatasize())\\n            }\\n            default {\\n                return(0, returndatasize())\\n            }\\n        }\\n    }\\n\\n    /**\\n     * @dev This is a virtual function that should be overriden so it returns the address to which the fallback function\\n     * and {_fallback} should delegate.\\n     */\\n    function _implementation() internal view virtual returns (address);\\n\\n    /**\\n     * @dev Delegates the current call to the address returned by `_implementation()`.\\n     *\\n     * This function does not return to its internall call site, it will return directly to the external caller.\\n     */\\n    function _fallback() internal virtual {\\n        _beforeFallback();\\n        _delegate(_implementation());\\n    }\\n\\n    /**\\n     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other\\n     * function in the contract matches the call data.\\n     */\\n    fallback() external payable virtual {\\n        _fallback();\\n    }\\n\\n    /**\\n     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data\\n     * is empty.\\n     */\\n    receive() external payable virtual {\\n        _fallback();\\n    }\\n\\n    /**\\n     * @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback`\\n     * call, or as part of the Solidity `fallback` or `receive` functions.\\n     *\\n     * If overriden should call `super._beforeFallback()`.\\n     */\\n    function _beforeFallback() internal virtual {}\\n}\\n\",\"keccak256\":\"0xd5d1fd16e9faff7fcb3a52e02a8d49156f42a38a03f07b5f1810c21c2149a8ab\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/beacon/IBeacon.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev This is the interface that {BeaconProxy} expects of its beacon.\\n */\\ninterface IBeacon {\\n    /**\\n     * @dev Must return an address that can be used as a delegate call target.\\n     *\\n     * {BeaconProxy} will check that this address is a contract.\\n     */\\n    function implementation() external view returns (address);\\n}\\n\",\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary Address {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCall(target, data, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        require(isContract(target), \\\"Address: call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        require(isContract(target), \\\"Address: static call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(isContract(target), \\\"Address: delegate call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.delegatecall(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            // Look for revert reason and bubble it up if present\\n            if (returndata.length > 0) {\\n                // The easiest way to bubble the revert reason is using memory via assembly\\n\\n                assembly {\\n                    let returndata_size := mload(returndata)\\n                    revert(add(32, returndata), returndata_size)\\n                }\\n            } else {\\n                revert(errorMessage);\\n            }\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x3777e696b62134e6177440dbe6e6601c0c156a443f57167194b67e75527439de\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/StorageSlot.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Library for reading and writing primitive types to specific storage slots.\\n *\\n * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\\n * This library helps with reading and writing to such slots without the need for inline assembly.\\n *\\n * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\\n *\\n * Example usage to set ERC1967 implementation slot:\\n * ```\\n * contract ERC1967 {\\n *     bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\\n *\\n *     function _getImplementation() internal view returns (address) {\\n *         return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\\n *     }\\n *\\n *     function _setImplementation(address newImplementation) internal {\\n *         require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");\\n *         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\\n *     }\\n * }\\n * ```\\n *\\n * _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._\\n */\\nlibrary StorageSlot {\\n    struct AddressSlot {\\n        address value;\\n    }\\n\\n    struct BooleanSlot {\\n        bool value;\\n    }\\n\\n    struct Bytes32Slot {\\n        bytes32 value;\\n    }\\n\\n    struct Uint256Slot {\\n        uint256 value;\\n    }\\n\\n    /**\\n     * @dev Returns an `AddressSlot` with member `value` located at `slot`.\\n     */\\n    function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `BooleanSlot` with member `value` located at `slot`.\\n     */\\n    function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `Bytes32Slot` with member `value` located at `slot`.\\n     */\\n    function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `Uint256Slot` with member `value` located at `slot`.\\n     */\\n    function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xfe1b7a9aa2a530a9e705b220e26cd584e2fbdc9602a3a1066032b12816b46aca\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/transparent/TransparentUpgradeableProxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../openzeppelin/proxy/ERC1967/ERC1967Proxy.sol\\\";\\n\\n/**\\n * @dev This contract implements a proxy that is upgradeable by an admin.\\n *\\n * To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector\\n * clashing], which can potentially be used in an attack, this contract uses the\\n * https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two\\n * things that go hand in hand:\\n *\\n * 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if\\n * that call matches one of the admin functions exposed by the proxy itself.\\n * 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the\\n * implementation. If the admin tries to call a function on the implementation it will fail with an error that says\\n * \\\"admin cannot fallback to proxy target\\\".\\n *\\n * These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing\\n * the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due\\n * to sudden errors when trying to call a function from the proxy implementation.\\n *\\n * Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way,\\n * you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy.\\n */\\ncontract OptimizedTransparentUpgradeableProxy is ERC1967Proxy {\\n    address internal immutable _ADMIN;\\n\\n    /**\\n     * @dev Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and\\n     * optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}.\\n     */\\n    constructor(\\n        address _logic,\\n        address admin_,\\n        bytes memory _data\\n    ) payable ERC1967Proxy(_logic, _data) {\\n        assert(_ADMIN_SLOT == bytes32(uint256(keccak256(\\\"eip1967.proxy.admin\\\")) - 1));\\n        _ADMIN = admin_;\\n\\n        // still store it to work with EIP-1967\\n        bytes32 slot = _ADMIN_SLOT;\\n        // solhint-disable-next-line no-inline-assembly\\n        assembly {\\n            sstore(slot, admin_)\\n        }\\n        emit AdminChanged(address(0), admin_);\\n    }\\n\\n    /**\\n     * @dev Modifier used internally that will delegate the call to the implementation unless the sender is the admin.\\n     */\\n    modifier ifAdmin() {\\n        if (msg.sender == _getAdmin()) {\\n            _;\\n        } else {\\n            _fallback();\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns the current admin.\\n     *\\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}.\\n     *\\n     * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\\n     * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\\n     * `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`\\n     */\\n    function admin() external ifAdmin returns (address admin_) {\\n        admin_ = _getAdmin();\\n    }\\n\\n    /**\\n     * @dev Returns the current implementation.\\n     *\\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}.\\n     *\\n     * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\\n     * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\\n     * `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`\\n     */\\n    function implementation() external ifAdmin returns (address implementation_) {\\n        implementation_ = _implementation();\\n    }\\n\\n    /**\\n     * @dev Upgrade the implementation of the proxy.\\n     *\\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}.\\n     */\\n    function upgradeTo(address newImplementation) external ifAdmin {\\n        _upgradeToAndCall(newImplementation, bytes(\\\"\\\"), false);\\n    }\\n\\n    /**\\n     * @dev Upgrade the implementation of the proxy, and then call a function from the new implementation as specified\\n     * by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the\\n     * proxied contract.\\n     *\\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}.\\n     */\\n    function upgradeToAndCall(address newImplementation, bytes calldata data) external payable ifAdmin {\\n        _upgradeToAndCall(newImplementation, data, true);\\n    }\\n\\n    /**\\n     * @dev Returns the current admin.\\n     */\\n    function _admin() internal view virtual returns (address) {\\n        return _getAdmin();\\n    }\\n\\n    /**\\n     * @dev Makes sure the admin cannot access the fallback function. See {Proxy-_beforeFallback}.\\n     */\\n    function _beforeFallback() internal virtual override {\\n        require(msg.sender != _getAdmin(), \\\"TransparentUpgradeableProxy: admin cannot fallback to proxy target\\\");\\n        super._beforeFallback();\\n    }\\n\\n    function _getAdmin() internal view virtual override returns (address) {\\n        return _ADMIN;\\n    }\\n}\\n\",\"keccak256\":\"0xa30117644e27fa5b49e162aae2f62b36c1aca02f801b8c594d46e2024963a534\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"solidity-bytes-utils/contracts/BytesLib.sol":{"BytesLib":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ba8416569f3ebf30e54ba72e098c16507d314971d03d8376c8bc9b128ef15aa764736f6c63430008190033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBA DUP5 AND JUMP SWAP16 RETURNDATACOPY 0xBF ADDRESS 0xE5 0x4B 0xA7 0x2E MULMOD DUP13 AND POP PUSH30 0x314971D03D8376C8BC9B128EF15AA764736F6C6343000819003300000000 ","sourceMap":"370:19069:96:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;370:19069:96;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ba8416569f3ebf30e54ba72e098c16507d314971d03d8376c8bc9b128ef15aa764736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBA DUP5 AND JUMP SWAP16 RETURNDATACOPY 0xBF ADDRESS 0xE5 0x4B 0xA7 0x2E MULMOD DUP13 AND POP PUSH30 0x314971D03D8376C8BC9B128EF15AA764736F6C6343000819003300000000 ","sourceMap":"370:19069:96:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"concat(bytes memory,bytes memory)":"infinite","concatStorage(bytes storage pointer,bytes memory)":"infinite","equal(bytes memory,bytes memory)":"infinite","equalStorage(bytes storage pointer,bytes memory)":"infinite","slice(bytes memory,uint256,uint256)":"infinite","toAddress(bytes memory,uint256)":"infinite","toBytes32(bytes memory,uint256)":"infinite","toUint128(bytes memory,uint256)":"infinite","toUint16(bytes memory,uint256)":"infinite","toUint256(bytes memory,uint256)":"infinite","toUint32(bytes memory,uint256)":"infinite","toUint64(bytes memory,uint256)":"infinite","toUint8(bytes memory,uint256)":"infinite","toUint96(bytes memory,uint256)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"solidity-bytes-utils/contracts/BytesLib.sol\":\"BytesLib\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"solidity-bytes-utils/contracts/BytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: Unlicense\\n/*\\n * @title Solidity Bytes Arrays Utils\\n * @author Gon\\u00e7alo S\\u00e1 <goncalo.sa@consensys.net>\\n *\\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\\n *      The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\\n */\\npragma solidity >=0.8.0 <0.9.0;\\n\\n\\nlibrary BytesLib {\\n    function concat(\\n        bytes memory _preBytes,\\n        bytes memory _postBytes\\n    )\\n        internal\\n        pure\\n        returns (bytes memory)\\n    {\\n        bytes memory tempBytes;\\n\\n        assembly {\\n            // Get a location of some free memory and store it in tempBytes as\\n            // Solidity does for memory variables.\\n            tempBytes := mload(0x40)\\n\\n            // Store the length of the first bytes array at the beginning of\\n            // the memory for tempBytes.\\n            let length := mload(_preBytes)\\n            mstore(tempBytes, length)\\n\\n            // Maintain a memory counter for the current write location in the\\n            // temp bytes array by adding the 32 bytes for the array length to\\n            // the starting location.\\n            let mc := add(tempBytes, 0x20)\\n            // Stop copying when the memory counter reaches the length of the\\n            // first bytes array.\\n            let end := add(mc, length)\\n\\n            for {\\n                // Initialize a copy counter to the start of the _preBytes data,\\n                // 32 bytes into its memory.\\n                let cc := add(_preBytes, 0x20)\\n            } lt(mc, end) {\\n                // Increase both counters by 32 bytes each iteration.\\n                mc := add(mc, 0x20)\\n                cc := add(cc, 0x20)\\n            } {\\n                // Write the _preBytes data into the tempBytes memory 32 bytes\\n                // at a time.\\n                mstore(mc, mload(cc))\\n            }\\n\\n            // Add the length of _postBytes to the current length of tempBytes\\n            // and store it as the new length in the first 32 bytes of the\\n            // tempBytes memory.\\n            length := mload(_postBytes)\\n            mstore(tempBytes, add(length, mload(tempBytes)))\\n\\n            // Move the memory counter back from a multiple of 0x20 to the\\n            // actual end of the _preBytes data.\\n            mc := end\\n            // Stop copying when the memory counter reaches the new combined\\n            // length of the arrays.\\n            end := add(mc, length)\\n\\n            for {\\n                let cc := add(_postBytes, 0x20)\\n            } lt(mc, end) {\\n                mc := add(mc, 0x20)\\n                cc := add(cc, 0x20)\\n            } {\\n                mstore(mc, mload(cc))\\n            }\\n\\n            // Update the free-memory pointer by padding our last write location\\n            // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\\n            // next 32 byte block, then round down to the nearest multiple of\\n            // 32. If the sum of the length of the two arrays is zero then add\\n            // one before rounding down to leave a blank 32 bytes (the length block with 0).\\n            mstore(0x40, and(\\n              add(add(end, iszero(add(length, mload(_preBytes)))), 31),\\n              not(31) // Round down to the nearest 32 bytes.\\n            ))\\n        }\\n\\n        return tempBytes;\\n    }\\n\\n    function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\\n        assembly {\\n            // Read the first 32 bytes of _preBytes storage, which is the length\\n            // of the array. (We don't need to use the offset into the slot\\n            // because arrays use the entire slot.)\\n            let fslot := sload(_preBytes.slot)\\n            // Arrays of 31 bytes or less have an even value in their slot,\\n            // while longer arrays have an odd value. The actual length is\\n            // the slot divided by two for odd values, and the lowest order\\n            // byte divided by two for even values.\\n            // If the slot is even, bitwise and the slot with 255 and divide by\\n            // two to get the length. If the slot is odd, bitwise and the slot\\n            // with -1 and divide by two.\\n            let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n            let mlength := mload(_postBytes)\\n            let newlength := add(slength, mlength)\\n            // slength can contain both the length and contents of the array\\n            // if length < 32 bytes so let's prepare for that\\n            // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n            switch add(lt(slength, 32), lt(newlength, 32))\\n            case 2 {\\n                // Since the new array still fits in the slot, we just need to\\n                // update the contents of the slot.\\n                // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\\n                sstore(\\n                    _preBytes.slot,\\n                    // all the modifications to the slot are inside this\\n                    // next block\\n                    add(\\n                        // we can just add to the slot contents because the\\n                        // bytes we want to change are the LSBs\\n                        fslot,\\n                        add(\\n                            mul(\\n                                div(\\n                                    // load the bytes from memory\\n                                    mload(add(_postBytes, 0x20)),\\n                                    // zero all bytes to the right\\n                                    exp(0x100, sub(32, mlength))\\n                                ),\\n                                // and now shift left the number of bytes to\\n                                // leave space for the length in the slot\\n                                exp(0x100, sub(32, newlength))\\n                            ),\\n                            // increase length by the double of the memory\\n                            // bytes length\\n                            mul(mlength, 2)\\n                        )\\n                    )\\n                )\\n            }\\n            case 1 {\\n                // The stored value fits in the slot, but the combined value\\n                // will exceed it.\\n                // get the keccak hash to get the contents of the array\\n                mstore(0x0, _preBytes.slot)\\n                let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n                // save new length\\n                sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n                // The contents of the _postBytes array start 32 bytes into\\n                // the structure. Our first read should obtain the `submod`\\n                // bytes that can fit into the unused space in the last word\\n                // of the stored array. To get this, we read 32 bytes starting\\n                // from `submod`, so the data we read overlaps with the array\\n                // contents by `submod` bytes. Masking the lowest-order\\n                // `submod` bytes allows us to add that value directly to the\\n                // stored value.\\n\\n                let submod := sub(32, slength)\\n                let mc := add(_postBytes, submod)\\n                let end := add(_postBytes, mlength)\\n                let mask := sub(exp(0x100, submod), 1)\\n\\n                sstore(\\n                    sc,\\n                    add(\\n                        and(\\n                            fslot,\\n                            0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00\\n                        ),\\n                        and(mload(mc), mask)\\n                    )\\n                )\\n\\n                for {\\n                    mc := add(mc, 0x20)\\n                    sc := add(sc, 1)\\n                } lt(mc, end) {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } {\\n                    sstore(sc, mload(mc))\\n                }\\n\\n                mask := exp(0x100, sub(mc, end))\\n\\n                sstore(sc, mul(div(mload(mc), mask), mask))\\n            }\\n            default {\\n                // get the keccak hash to get the contents of the array\\n                mstore(0x0, _preBytes.slot)\\n                // Start copying to the last used word of the stored array.\\n                let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n                // save new length\\n                sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n                // Copy over the first `submod` bytes of the new data as in\\n                // case 1 above.\\n                let slengthmod := mod(slength, 32)\\n                let mlengthmod := mod(mlength, 32)\\n                let submod := sub(32, slengthmod)\\n                let mc := add(_postBytes, submod)\\n                let end := add(_postBytes, mlength)\\n                let mask := sub(exp(0x100, submod), 1)\\n\\n                sstore(sc, add(sload(sc), and(mload(mc), mask)))\\n\\n                for {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } lt(mc, end) {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } {\\n                    sstore(sc, mload(mc))\\n                }\\n\\n                mask := exp(0x100, sub(mc, end))\\n\\n                sstore(sc, mul(div(mload(mc), mask), mask))\\n            }\\n        }\\n    }\\n\\n    function slice(\\n        bytes memory _bytes,\\n        uint256 _start,\\n        uint256 _length\\n    )\\n        internal\\n        pure\\n        returns (bytes memory)\\n    {\\n        // We're using the unchecked block below because otherwise execution ends \\n        // with the native overflow error code.\\n        unchecked {\\n            require(_length + 31 >= _length, \\\"slice_overflow\\\");\\n        }\\n        require(_bytes.length >= _start + _length, \\\"slice_outOfBounds\\\");\\n\\n        bytes memory tempBytes;\\n\\n        assembly {\\n            switch iszero(_length)\\n            case 0 {\\n                // Get a location of some free memory and store it in tempBytes as\\n                // Solidity does for memory variables.\\n                tempBytes := mload(0x40)\\n\\n                // The first word of the slice result is potentially a partial\\n                // word read from the original array. To read it, we calculate\\n                // the length of that partial word and start copying that many\\n                // bytes into the array. The first word we copy will start with\\n                // data we don't care about, but the last `lengthmod` bytes will\\n                // land at the beginning of the contents of the new array. When\\n                // we're done copying, we overwrite the full first word with\\n                // the actual length of the slice.\\n                let lengthmod := and(_length, 31)\\n\\n                // The multiplication in the next line is necessary\\n                // because when slicing multiples of 32 bytes (lengthmod == 0)\\n                // the following copy loop was copying the origin's length\\n                // and then ending prematurely not copying everything it should.\\n                let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\\n                let end := add(mc, _length)\\n\\n                for {\\n                    // The multiplication in the next line has the same exact purpose\\n                    // as the one above.\\n                    let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\\n                } lt(mc, end) {\\n                    mc := add(mc, 0x20)\\n                    cc := add(cc, 0x20)\\n                } {\\n                    mstore(mc, mload(cc))\\n                }\\n\\n                mstore(tempBytes, _length)\\n\\n                //update free-memory pointer\\n                //allocating the array padded to 32 bytes like the compiler does now\\n                mstore(0x40, and(add(mc, 31), not(31)))\\n            }\\n            //if we want a zero-length slice let's just return a zero-length array\\n            default {\\n                tempBytes := mload(0x40)\\n                //zero out the 32 bytes slice we are about to return\\n                //we need to do it because Solidity does not garbage collect\\n                mstore(tempBytes, 0)\\n\\n                mstore(0x40, add(tempBytes, 0x20))\\n            }\\n        }\\n\\n        return tempBytes;\\n    }\\n\\n    function toAddress(bytes memory _bytes, uint256 _start) internal pure returns (address) {\\n        require(_bytes.length >= _start + 20, \\\"toAddress_outOfBounds\\\");\\n        address tempAddress;\\n\\n        assembly {\\n            tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\\n        }\\n\\n        return tempAddress;\\n    }\\n\\n    function toUint8(bytes memory _bytes, uint256 _start) internal pure returns (uint8) {\\n        require(_bytes.length >= _start + 1 , \\\"toUint8_outOfBounds\\\");\\n        uint8 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x1), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint16(bytes memory _bytes, uint256 _start) internal pure returns (uint16) {\\n        require(_bytes.length >= _start + 2, \\\"toUint16_outOfBounds\\\");\\n        uint16 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x2), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint32(bytes memory _bytes, uint256 _start) internal pure returns (uint32) {\\n        require(_bytes.length >= _start + 4, \\\"toUint32_outOfBounds\\\");\\n        uint32 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x4), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint64(bytes memory _bytes, uint256 _start) internal pure returns (uint64) {\\n        require(_bytes.length >= _start + 8, \\\"toUint64_outOfBounds\\\");\\n        uint64 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x8), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint96(bytes memory _bytes, uint256 _start) internal pure returns (uint96) {\\n        require(_bytes.length >= _start + 12, \\\"toUint96_outOfBounds\\\");\\n        uint96 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0xc), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint128(bytes memory _bytes, uint256 _start) internal pure returns (uint128) {\\n        require(_bytes.length >= _start + 16, \\\"toUint128_outOfBounds\\\");\\n        uint128 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x10), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint256(bytes memory _bytes, uint256 _start) internal pure returns (uint256) {\\n        require(_bytes.length >= _start + 32, \\\"toUint256_outOfBounds\\\");\\n        uint256 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x20), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toBytes32(bytes memory _bytes, uint256 _start) internal pure returns (bytes32) {\\n        require(_bytes.length >= _start + 32, \\\"toBytes32_outOfBounds\\\");\\n        bytes32 tempBytes32;\\n\\n        assembly {\\n            tempBytes32 := mload(add(add(_bytes, 0x20), _start))\\n        }\\n\\n        return tempBytes32;\\n    }\\n\\n    function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\\n        bool success = true;\\n\\n        assembly {\\n            let length := mload(_preBytes)\\n\\n            // if lengths don't match the arrays are not equal\\n            switch eq(length, mload(_postBytes))\\n            case 1 {\\n                // cb is a circuit breaker in the for loop since there's\\n                //  no said feature for inline assembly loops\\n                // cb = 1 - don't breaker\\n                // cb = 0 - break\\n                let cb := 1\\n\\n                let mc := add(_preBytes, 0x20)\\n                let end := add(mc, length)\\n\\n                for {\\n                    let cc := add(_postBytes, 0x20)\\n                // the next line is the loop condition:\\n                // while(uint256(mc < end) + cb == 2)\\n                } eq(add(lt(mc, end), cb), 2) {\\n                    mc := add(mc, 0x20)\\n                    cc := add(cc, 0x20)\\n                } {\\n                    // if any of these checks fails then arrays are not equal\\n                    if iszero(eq(mload(mc), mload(cc))) {\\n                        // unsuccess:\\n                        success := 0\\n                        cb := 0\\n                    }\\n                }\\n            }\\n            default {\\n                // unsuccess:\\n                success := 0\\n            }\\n        }\\n\\n        return success;\\n    }\\n\\n    function equalStorage(\\n        bytes storage _preBytes,\\n        bytes memory _postBytes\\n    )\\n        internal\\n        view\\n        returns (bool)\\n    {\\n        bool success = true;\\n\\n        assembly {\\n            // we know _preBytes_offset is 0\\n            let fslot := sload(_preBytes.slot)\\n            // Decode the length of the stored array like in concatStorage().\\n            let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n            let mlength := mload(_postBytes)\\n\\n            // if lengths don't match the arrays are not equal\\n            switch eq(slength, mlength)\\n            case 1 {\\n                // slength can contain both the length and contents of the array\\n                // if length < 32 bytes so let's prepare for that\\n                // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n                if iszero(iszero(slength)) {\\n                    switch lt(slength, 32)\\n                    case 1 {\\n                        // blank the last byte which is the length\\n                        fslot := mul(div(fslot, 0x100), 0x100)\\n\\n                        if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\\n                            // unsuccess:\\n                            success := 0\\n                        }\\n                    }\\n                    default {\\n                        // cb is a circuit breaker in the for loop since there's\\n                        //  no said feature for inline assembly loops\\n                        // cb = 1 - don't breaker\\n                        // cb = 0 - break\\n                        let cb := 1\\n\\n                        // get the keccak hash to get the contents of the array\\n                        mstore(0x0, _preBytes.slot)\\n                        let sc := keccak256(0x0, 0x20)\\n\\n                        let mc := add(_postBytes, 0x20)\\n                        let end := add(mc, mlength)\\n\\n                        // the next line is the loop condition:\\n                        // while(uint256(mc < end) + cb == 2)\\n                        for {} eq(add(lt(mc, end), cb), 2) {\\n                            sc := add(sc, 1)\\n                            mc := add(mc, 0x20)\\n                        } {\\n                            if iszero(eq(sload(sc), mload(mc))) {\\n                                // unsuccess:\\n                                success := 0\\n                                cb := 0\\n                            }\\n                        }\\n                    }\\n                }\\n            }\\n            default {\\n                // unsuccess:\\n                success := 0\\n            }\\n        }\\n\\n        return success;\\n    }\\n}\\n\",\"keccak256\":\"0xf4b07e5d8f69407bb43c6db224adfcf6c73b512dd64e85008ac3c222910c3555\",\"license\":\"Unlicense\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}}}}}